Reading Notes : 180214 计算机的总线结构
读书《计算机组成原理》,百度百科
基本上接触过计算机的人,都多少知道计算机的具体构成,但是真正能讲明白的却说了很多,本节将讲解一下计算机的基本硬件构成和一些基本信息,简单认识,以后再深入了解。
计算机的总线结构
前面我们介绍了计算机的硬件组成,计算机由输入输出设备、中央处理器(控制器和处理器)、主存储器五部分构成。但是将这五部分孤零零的放置在哪里也是没有意义的,需要将其按照某种方式连接起来构成计算机的硬件系统,这才能使他们发挥各自作用。
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路设计、简化系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这组共用的连接线路被称为总线。
采用总线结构便于部件和设备的扩充,尤其制定了统一的总线标准则容易使不同设备间实现互连。
微机中总线一般有内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。
另外,从广义上说,计算机通信方式可以分为并行通信和串行通信,相应的通信总线被称为并行总线和串行总线。并行通信速度快、实时性好,但由于占用的口线多,不适于小型化产品;而串行通信速率虽低,但在数据通信吞吐量不是很大的微处理电路中则显得更加简易、方便、灵活。串行通信一般可分为异步模式和同步模式。---随着微电子技术和计算机技术的发展,总线技术也在不断地发展和完善,而使计算机总线技术种类繁多,各具特色。
目前许多计算机的各大基本部件之间是用总线(Bus)连接起来的。
总线的概念
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
总线分时地发送与接收各部件的信息,微型计算机是以总线结构来连接各个功能部件的。计算机中采用总线结构,可以大大减少信息传送线的数目,又可以提高计算机扩充主存及外部设备的灵活性。
总线的工作原理
如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。因此,必须同时采用多条线路才能传送更多数据,而总线可同时传输的数据数就称为宽度(width),以比特为单位,总线宽度愈大,传输性能就愈佳。总线的带宽(即单位时间内可以传输的总数据数)为:总线带宽 = 频率 x 宽度(Bytes/sec)。当总线空闲(其他器件都以高阻态形式连接在总线上)且一个器件要与目的器件通信时,发起通信的器件驱动总线,发出地址和数据。其他以高阻态形式连接在总线上的器件如果收到(或能够收到)与自己相符的地址信息后,即接收总线上的数据。发送器件完成通信,将总线让出(输出变为高阻态)。
总线特性
由于总线是连接各个部件的一组信号线。通过信号线上的信号表示信息,通过约定不同信号的先后次序即可约定操作如何实现。总线的特性如下
- 物理特性:物理特性又称为机械特性,指总线上部件在物理连接时表现出的一些特性,如插头与插座的几何尺寸、形状、引脚个数及排列顺序等。
- 功能特性:功能特性是指每一根信号线的功能,如地址总线用来表示地址码。数据总线用来表示传输的数据,控制总线表示总线上操作的命令、状态等。
- 电气特性:电气特性是指每一根信号线上的信号方向及表示信号有效的电平范围,通常,由主设备(如CPU)发出的信号称为输出信号(OUT),送入主设备的信号称为输入信号(IN)。通常数据信号和地址信号定义高电平为逻辑1、低电平为逻辑0,控制信号则没有俗成的约定,如WE表示低电平有效、Ready表示高电平有效。不同总线高电平、低电平的电平范围也无统一的规定,通常与TTL是相符的。
- 时间特性:时间特性又称为逻辑特性,指在总线操作过程中每一根信号线上信号什么时候有效,通过这种信号有效的时序关系约定,确保了总线操作的正确进行。
为了提高计算机的可拓展性,以及部件及设备的通用性,除了片内总线外,各个部件或设备都采用标准化的形式连接到总线上,并按标准化的方式实现总线上的信息传输。而总线的这些标准化的连接形式及操作方式,统称为总线标准。如ISA、PCI、USB总线标准等,相应的,采用这些标准的总线为ISA总线、PCI总线、USB总线等。
总线分类
总线按功能和规范可分为五大类型:
- 数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。
- 地址总线(Address Bus):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
- 控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为 USB Bus和1394 Bus。
- 扩展总线(Expansion Bus):可连接扩展槽和电脑。
- 局部总线(Local Bus):取代更高速数据传输的扩展总线。
其中的数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus),也统称为系统总线,即通常意义上所说的总线。
有的系统中,数据总线和地址总线是复用的,即总线在某些时刻出现的信号表示数据而另一些时刻表示地址;而有的系统是分开的。51系列单片机的地址总线和数据总线是复用的,而一般PC中的总线则是分开的。
“数据总线DB”用于传送数据信息的多根信号线。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以是指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。
常见的数据总线为ISA、EISA、VESA、PCI等。
“地址总线AB”是专门用来传送地址的多根信号线,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机(x位处理器指一个时钟周期内微处理器能处理的位数(1 、0)多少,即字长大小)的地址总线为20位,其可寻址空间为2^20=1MB。一般来说,若地址总线为n位,则可寻址空间为2^n字节。(寻址空间物理上取决于CPU的位宽和地址总线宽度,实际操作中还收到OS的影响,这三者放在一块考虑时取决于最小的宽度,这也是木桶效应)
“控制总线CB”用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的,如读/写信号,片选信号、中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,(信息)一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。
按照传输数据的方式划分,可以分为串行总线和并行总线。串行总线中,二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过2根。常见的串行总线有SPI、I2C、USB及RS232等。
按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,而异步总线的时钟信号是从数据中提取出来的。SPI、I2C是同步串行总线,RS232采用异步串行总线。
按照总线的逻辑结构来看,总线还可以分为单向和双向之分,单向总线是指总线上数据只能向一个方向传递,双向则是指总线上数据可以向两个方向传递。如上面的地址总线是单向的,数据总线则是双向的。
计算机总线种类
前面我们通过总线的功能和规范对计算机的总线进行了分类介绍,在这里还可以通过总线在计算机中的位置分为三部分。
主板的总线--前端总线
在计算机科学技术中,人们常常以MHz表示的速度来描述总线频率。计算机总线的种类很多,前端总线的英文名字是Front Side Bus,通常用FSB表示,是将CPU连接到北桥芯片的总线。计算机的前端总线频率是由CPU和北桥芯片共同决定的。
主板北桥芯片负责联系内存、显卡等数据吞吐量最大的部件,并和南桥芯片连接。CPU就是通过前端总线(FSB)连接到北桥芯片,进而通过北桥芯片和内存、显卡交换数据。前端总线是CPU和外界交换数据的最主要通道,因此前端总线的数据传输能力对计算机整体性能作用很大,如果没足够快的前端总线,再强的CPU也不能明显提高计算机整体速度。数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率,即数据带宽=(总线频率×数据位宽)÷8。目前PC机上所能达到的前端总线频率有266MHz、333MHz、400MHz、533MHz、800MHz几种,前端总线频率越大,代表着CPU与北桥芯片之间的数据传输能力越大,更能充分发挥出CPU的功能。现在的CPU技术发展很快,运算速度提高很快,而足够大的前端总线可以保障有足够的数据供给给CPU,较低的前端总线将无法供给足够的数据给CPU,这样就限制了CPU性能得发挥,成为系统瓶颈。
硬盘的总线
一般有SCSI、ATA、SATA等几种。SATA是串行ATA的缩写,为什么要使用串行ATA就要
从PATA——并行ATA的缺点说起。我们知道ATA或者说普通IDE硬盘的数据线最初就是40根的排线,这40根线里面有数据线、时钟线、控制线、地线,其中32根数据线是并行传输的(一个时钟周期可以同时传输4个字节的数据),因此对同步性的要求很高。这就是为什么从PATA-66(就是常说的DMA66)接口开始必须使用80根的硬盘数据线,其实增加的这40根全是屏蔽用的地线,而且只在主板一边接地(千万不要接反了,反了的话屏蔽作用大大降低),有了良好的屏蔽硬盘的传输速度才能达到66MB/s、100MB/s和最高的133MB/s。但是在PATA-133之后,并行传输速度已经到了极限,而且PATA的三大缺点暴露无遗:信号线长度无法延长、信号同步性难以保持、5V信号线耗电较大。那为什么SCSI-320接口的数据线能达到320MB/s的高速、而且线缆可以很长呢?你有没有注意到SCSI的高速数据线是“花线”?这可不是为了好看,那“花”的部分实际上就是一组组的差分信号线两两扭合而成,这成本可不是普通电脑系统愿意承担的。
其他的总线
计算机中其他的总线还有:通用串行总线USB(Universal Serial Bus)、IEEE1394、PCI等等。
技术指标
总线的带宽(总线数据传输速率)
总线的带宽指的是单位时间内总线上传送的数据量,即每钞钟传送MB的最大稳态数据传输率。与总线密切相关的两个因素是总线的位宽和总线的工作频率,它们之间的关系:
总线的带宽=总线的工作频率*总线的位宽/8
或者 总线的带宽=(总线的位宽/8 )/总线周期
总线的位宽
总线的位宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念。总线的位宽越宽,每秒钟数据传输率越大,总线的带宽越宽。
总线的工作频率
总线的工作时钟频率以MHZ为单位,工作频率越高,总线工作速度越快,总线带宽越宽。
单总线结构
最简单的总线结构是单总线结构,如下图所示:
各大部件都连接在单一的一组总线上,故将这个单总线称为系统总线。CPU与主存、CPU与外设之间可以直接进行信息交换,主存与外设、外设与外设之间也可以直接进行信息交换,而无须经过CPU的干预。
单总线结构提高了CPU的工作效率,而且外设连接灵活,易于扩充。但由于所有部件都挂在同一组总线上,而总线又只能分时地工作,故同一时刻只允许一对设备(或部件)之间传送信息。但是单总线并非是指只有一根信号线。仍然遵循功能和规范的分类,分为数据总线、控制总线和地址总线等。
单总线结构我们只用了解就可以,现在计算机多数使用的是多总线结构设计。
总线电路
数据在计算机上的传输其实就是通过电路,而这里边最为关键的就是总线电路了。总线电路主要由三态门组成。三态门是具有3种逻辑状态的门电路。这三种状态为逻辑“0”,逻辑“1”,以及浮空状态。所谓浮空就是三态门的输出呈现开路的高阻状态。三态门与普通门的区别之处就在于,除了正常的输入和输出端外,还有一个控制端。只有当控制端有效的时候,该三态门才满足正常的逻辑关系;否则呈现浮空状态,与外界断开联系。根据输入输出关系和控制端的有效电平,可以分为4中状态的三态门。
现代计算机广泛使用三态门。利用它可以控制传输线上信号的传送方向,同时还允许多个输出端并联使用,只要这些门的控制端不同时有效就可以了。
总线操作
总线一个操作过程是完成两个模块之间传送信息,启动操作过程的是主模块,另外一个是从模块。某一时刻总线上只能有一个主模块占用总线。
总线的操作步骤:
- 主模块申请总线控制权,总线控制器进行裁决。
- 主模块得到总线控制权后寻址从模块,从模块确认后进行数据传送。
- 数据传送的错误检查。
- 总线定时协议:定时协议可保证数据传输的双方操作同步,传输正确。定时协议有三种类型:
- 同步总线定时:总线上的所有模块共用同一时钟脉冲进行操作过程的控制。各模块的所有动作的产生均在时钟周期的开始,多数动作在一个时钟周期中完成。
- 异步总线定时:操作的发生由源或目的模块的特定信号来确定。总线上一个事件发生取决前一事件的发生,双方相互提供联络信号。
总线定时协议
- 半同步总线定时:总线上各操作的时间间隔可以不同,但必须是时钟周期的整数倍,信号的出现,采样与结束仍以公共时钟为基准。ISA总线采用此定时方法。
- 数据传输类型:分单周期方式和突发(burst)方式。
- 单周期方式:一个总线周期只传送一个数据。
- 突发方式:取得主线控制权后进行多个数据的传输。寻址时给出目的地首地址,访问第一个数据,数据2、3到数据n的地址在首地址基础上按一定规则自动寻址(如自动加1)。
优点与缺点
采用总线结构的主要优点
- 面向存储器的双总线结构信息传送效率较高,这是它的主要优点。但CPU与I/O接口都要访问存储器时,仍会产生冲突。
- CPU与高速的局部存储器和局部I/O接口通过高传输速率的局部总线连接,速度较慢的全局存储器和全局I/O接口与较慢的全局总线连接,从而兼顾了高速设备和慢速设备,使它们之间不互相牵扯。
- 简化了硬件的设计。便于采用模块化结构设计方法,面向总线的微型计算机设计只要按照这些规定制作cpu插件、存储器插件以及I/O插件等,将它们连入总线就可工作,而不必考虑总线的详细操作。
- 简化了系统结构。整个系统结构清晰。连线少,底板连线可以印制化。
- 系统扩充性好。一是规模扩充,规模扩充仅仅需要多插一些同类型的插件。二是功能扩充,功能扩充仅仅需要按照总线标准设计新插件,插件插入机器的位置往往没有严格的限制。
- 系统更新性能好。因为cpu、存储器、I/O接口等都是按总线规约挂到总线上的,因而只要总线设计恰当,可以随时随着处理器的芯片以及其他有关芯片的进展设计新的插件,新的插件插到底板上对系统进行更新,其他插件和底板连线一般不需要改。
- 便于故障诊断和维修。用主板测试卡可以很方便找到出现故障的部位,以及总线类型。
采用总线结构的缺点
由于在CPU与主存储器之间、CPU与I/O设备之间分别设置了总线,从而提高了微机系统信息传送的速率和效率。但是由于外部设备与主存储器之间没有直接的通路,它们之间的信息交换必须通过CPU才能进行中转,从而降低了CPU的工作效率(或增加了CPU的占用率。一般来说,外设工作时要求CPU干预越少越好。CPU干预越少,这个设备的CPU占用率就越低,说明设备的智能化程度越高),这是面向CPU的双总线结构的主要缺点。同时还包括:
- 利用总线传送具有分时性。当有多个主设备同时申请总线的使用是必须进行总线的仲裁。
- 总线的带宽有限,如果连接到总线上的某个硬件设备没有资源调控机制容易造成信息的延时(这在某些即时性强的地方是致命的)。
- 连到总线上的设备必须有信息的筛选机制,要判断该信息是否是传给自己的。
结束语
总线或许很不经意,但它如同人体的神经中枢一样,连接计算机的各个组件,是计算机构成的脉络所在,同时也是主板的基本内容,关于总线我们就了解到这里,更多资料可以参见百度百科。