第一节 总线的概念
计算机中有三大部件:
- CPU:用来执行各种指令,进行各种运算。
- 主存:存储数据和程序。
- I/O设备,与外界进行交互。
这三大部件之间或部件内部进行地址信息,数据,控制信息的交换,就需要总线了。
第二节 总线的分类
按照主线提供信息交换的层次,可以分为:
- 内部总线:CPU内部寄存器和ALU之间连接的总线,只用来传输数据。
- 系统总线:连接CPU,主存,I/O设备的总线,用来传输地址,数据,控制信息,依次为地址线,数据线(可以复用为地址线),控制线。
- 通信总线:连接主机和I/O设备,或系统与系统之间的总线。
北桥芯片是主存控制器的集合,南桥芯片是I/O控制器的集合。
北桥芯片与主存之间的总线为存储器总线,北桥与CPU之间为CPU(前端)总线,南桥芯片与I/O设备之间的总线为I/O总线。
Core i7之后,把控制器直接集成到了CPU中,所以存储器总线直接与CPU相连
总线按照传输方式分:
- 串行总线:只有一根数据线,一次只能传一个字节,但可以传到很快,适合远距离传输。
- 并行总线:有多根数据线,一次可以传多个字节
第三节 总线的性能指标
工作频率:现在总线一个时钟周期通常会发送2次到4次数据,所以工作频率是时钟频率的2倍或4倍。
总线带宽:每秒钟能在总线上传输的最大字节数。
各个系统总线的带宽:
- CPU总线:工作频率为时钟频率的4倍,工作频率再乘以总线宽度/8即为CPU总线的带宽。
- 存储器总线:由于现在都把北桥芯片集成到了CPU中,所以存储器总线直接将CPU和存储器相连,带宽为8*266MHZ *4=8.5GB/s。
- I/O总线:现在用PCI-express,是一种串行总线,有多条通路,每条通路包括发送数据线和接收数据线,可以同时进行,每个字节用10b表示,所以I/O总线的带宽为2 *每个通路的工作频率 *通路数/10.
第四节 总线结构
现在的总线一般都是4总线分层结构,大致有两种:
传统的3芯片4总线结构:(CPU+北桥+南桥)如上图所示,包含CPU总线,存储器总线以及高速I/O和低速I/O总线。
基于Intel Core i7的3芯片总线结构:北桥被嵌入CPU里,南桥分为告诉和低俗两个芯片,分别与高速和低速两个I/O总线相连。
在实际的实现中,总线是以插槽的形式出现的。插入内存条就是把内存接上了存储器总线,插入CPU就是把CPU接上了CPU总线。
第五节 总线裁决
因为一根总线同时只能有一个设备使用,所以当有多个设备需要用总线时,就需要总线裁决来判断谁可以使用总线。
总线裁决分为两大类:
- 集中式总线裁决,是指有一个专门的裁决器,所有的请求都送到这个裁决器里进行裁决。
- 分布式总线裁决,指裁决操作分布在各个部件中。
集中式总线裁决判优方式有3种: - 菊花链:所有设备按优先级排列,用一条链连接起来,请求允许的信号依次流过各个设备,直到找到发送请求的设备为止。优点是简单,缺点是优先级低的永远没法用总线,且一根线故障整个链崩溃。
- 计数器定时查询:多了几根设备线,通过发送不同的设备编号和各个设备进行对比来确定发送请求的设备。优点是灵活,缺点是电路更复杂了。
- 独立查询:每个设备都有自己的请求线和允许线。优点是很快,缺点是很复杂。
判优算法:在集中式裁决器中通过硬件实现,有循环的菊花链算法,最近最少用算法,先来先去算法等。
第六节 总线定时
总线定时:即当一个设备取得总线的使用权时,决定它什么时候发送数据,什么时候接收数据。
定时的方式:
- 同步:数据根据时钟周期,按照固定的时间来做动作。比如规定第一个时钟周期CPU发送地址和读命令,第五个周期主存把数据发送过来。
优点是协议简单,速度快。缺点是两个设备的工作频率必须相同,且由于时钟时延,所以总线不能太长。 - 异步:”定时约会,随时联系“。当主设备需要数据时,发送请求,然后从设备接收请求,准备数据,发送数据。优点:灵活,不同工作频率的设备可以通信。缺点:接口复杂,对噪声敏感。
分为:非互锁方式(只知道要发货了),半互锁方式(只知道发完货了),全互锁方式(类似现在的快递)。 - 半同步:同步和异步的结合,在时钟到来时才发送请求信号,减少了噪声的干扰,又能灵活的使不同工作频率的设备通信。
- 分离式:当主设备发送完地址,请求之后瞬间释放总线,让给其他人用,等从设备准备好了之后,再请求总线。优点:提高了整个系统的总有效带宽,缺点:控制非常复杂。