《计算机系统结构》读书笔记(五)
第三章 存储、中断、总线与I/O系统
3.3 总线系统
总线是用于互连计算机、CPU、存储器、I/O接口及外围设备、远程通信设备间信息传送通路的集合。
总线与其配合的附属控制电路统称为总线系统。
按信息传送功能、性能的不同,有数据线,地址线,命令、时序和中断信号等控制/状态线,电源线,备用线等。
数据线根数决定同时传送的数据位数,即数据通路宽度。
地址线根数决定直接寻址的范围。
控制/状态线决定总线的功能和只用能力。
备用线用于系统功能的扩充。
3.3.1 总线的分类
总线按在系统中的位置分芯片级(CPU芯片内的总线)、板级(连接插件板内的各个组件,也称局部总线或内部总线)和系统级(系统间或主机与I/O接口或设备之间的总线)。
总线有单向传输、双向传输两种。
双向传输又有半双向和全双向两种。半双向可沿相反方向传送,但同时只能向一个方向传送,全双向允许同时两个方向传送。全双向速度快,造价高,结构复杂。
总线按用法可分为专用和非专用两类。
只连接一堆物理部件的总线称专用总线,其优点是多个部件可以同时收/发信息,不用争总线,系统流量高,通信时不用指明源和目的,控制简单,任何总线的失效只影响连接于该总线的设备。但受影响设备还可以通过其他部件简介通信,系统可靠。
专用总线的缺点是总线数多,如N个部件用双向专用总线将所有可能路径互连,则需要
组总线。N比较大时,总线数将与部件数N成平方倍关系。不仅增加了转接头,难以小型化,集成电路刷,而且总线较长时,成本高。
专用总线的时间利用率低,不利于系统模块化,增加一个部件就需要增加许多新的接口和连线。
非专用总线可以被多种功能或多个部件分时共享,同一时间只有一对部件可以使用总线进行通信。
非专用总线的优点是:总线数量少,造价低,总线接口标准化,模块性强。可扩展能力强,部件增加不会是电缆、接口和驱动电路激增。易用多重总线来提高总线带宽和可靠性,使故障弱化。
非专用总线的缺点是:系统流量小,经常出现争用总线的情况,使未获得总线使用权的部件不得不等待而降低效率。若处理不当,总线有可能成为系统速度性能的瓶颈,对单总线结构尤其如此,共享总线失效会导致系统崩溃。
I/O系统适宜使用非专用总线。
3.3.2 总线的控制方式
非专用总线上所挂多个设备或部件如果同时请求使用总线,由总线控制机构按优先次序裁决,保证只有一个高优先级的申请者首先取得对总线的使用权。
总线控制机构基本集中在一起,无论是在连接到总线的一个部件中,还是在单独的硬件中,都称为集中式控制。
总线控制逻辑分散连到总线的各个的部件时,就称为分布式总线控制。
优先次序的确定可以有船型链接、定时查询和独立请求三种方式,也可是三种方式的结合。
采用何种方式取决于控制线数目、总线分配速度、灵活性、可靠性等因素综合权衡。
集中式串行链接
所有部件都经公共的“总线请求”线想总线控制发出要求使用总线的申请。
串行链接方式获得使用总线权的优先次序是由“总线可用”线所接部件的物理位置来决定的,离总线控制器越近的部件其优先级越高。
优点:
- 选择算法简单
- 用于解决总线控制分配的控制线的线数少,只需要3根,且不取决部件数量。
- 部件的增减容易
- 可扩展性好
- 逻辑简单,容易通过重复设置提高可靠性。
缺点:
- 对“总线可用”线及其有关电路的失效敏感。如果部件i不能正确传送“总线可用”信号,则i之后的所有部件都无法取得使用权。
- 优先级是线连固定,不能由程序改变,不灵活。
- 高优先级频繁使用总线,则离总线控制器远的部件难得到总线使用权。
- 因“总线可用”信号必须顺利脉动地通过各个部件,限制了总线分配速度。
- 因总线长度限制,增减或移动部件也收到限制。

集中式串行链接
集中式定时查询
总线上的每个部件通过“总线请求”线发出请求,若总线处于空闲,“总线忙”信号未建立,则总线控制器收到请求后,计数器开始计数,定时查询各部件以确定是谁发出的请求。当查询线上的计数值与发出请求的部件号一致时,该部件就建立“总线忙”,使计数器停止计数,也即控制器种植查询。同时去除该部件的“总线请求”,让该部件获得总线使用权。
优点:
- 因计数器初值、部件号由程序制定,优先次序可用程序控制,灵活性强。
- 不会因为某个部件失效而影响其他部件对总线的使用,可靠性高。
缺点:
- 控制线线数多,需要
根。
- 可共享总线的部件数受限于定时查询线的线数(编址能力)。
- 扩展性稍差
- 控制较为复杂
- 总线分配的速递取决于技术信号的频率和部件数,不能提高。

集中式定时查询
集中式独立请求
共享总线的每个部件各自有一对“总线请求”和“总线准许”线。当部件请求使用总线时,送“总线请求”信号到总线控制器。只要总线空闲,总线控制器根据算法对同时送来的多个请求进行仲裁,以确定那个部件可以使用总线,并立即通过相应“总线准许”线送回该部件,去除其请求,建立“总线已被分配”,该部件获得总线使用权,总线分配结束。
优点:
- 总线分配速度快,所有部件的总线请求同时送到总线控制器。
- 控制器可以使用程序可控的预订方式、自适应方式、循环方式或它们的混合方式灵活确定下一个使用总线的部件
- 能方便地隔离失效部件的请求。
缺点:
- 控制线数量过大,为控制N个设备必须2N+1根控制线。
- 总线控制器复杂。

集中独立式请求
3.3.3 总线的通信技术
当获得总线控制权后,需要给出通信的是“源”还是“目的”部件,以及传送信息的类型和方向等信息。之后才能开始真正的数据信息传送。
信息在总线上的传送方法为同步和异步两种。
1.同步通信
部件间信息传送由定宽、定距的系统时标同步。传送速率高,受总线长度影响小,时钟在总线上的时滞可能会造成同步误差,时钟线上的干扰信号易引起误同步。
为提高可靠性,一种解决办法是正常时目的部件不作回答,出错时目的部件在同步时间片过去之后,发回源部件一个错误信号。这样做不会降低正常时总线的传送速率。但需要设置大缓存保留已发送但未经证实正确的数据以备重发。
2.异步通信
I/O总线一般为不同速度的设备共享,因此采用异步通信。
异步通信又分为单向源控制和请求/回答双向控制。
通信过程只由源或目的部件之一控制称为单向源控制或单向目控制。
源、目的共同控制的称为请求/回答双向控制。
异步单向源控制
源部件将数据放在数据总线上,延迟t1后再在控制器上发送数据准备信号,给目的部件作为接受数据的选通信号。
延迟t1是为了防止数据准备信号先于数据到达部件而出错。t2是源部件输出寄存器再装入新的待发数据或是总线重新分配所需时间.
优点:
- 简单、高速
缺点:
- 没有来自目的原件指明传送是否有效的回答。
- 不同速度部件通信困难
- 需要设置缓冲器来缓冲来不及处理的数据
- 效率低,高速部件难以发挥性能
- 要求数据准备信号干扰小
异步单向目控式
解决传送有效性校验的问题。
由目的不见建立数据请求,经二次延迟传递,数据的到达目的部件,由其检验数据有效性。如果有错,目的部件回送“数据出错”代替下一个数据请求。
总线传送速率随源。目的之间距离的增加而下降。
缺点:不能保证下一个数据传送之前让所有数据线和控制线的电平信号恢复初始状态,从而可能造成错误。

异步单向控制通信
非互锁方式异步双向控制通信
源数据放在总线上,经t1延迟发出数据准备,目的部件在t1+td1时刻接收数据后经校验未发现出错就发数据接收响应,并返回源部件,在t1+td1+td2时刻去除原数据,经过t2时间吧新的数据放在数据线上。
目的部件发现数据有错,则发出数据出错代替数据接受。
提供了出错控制,也便于实现不同速度的部件之间的通信。代价是降低传送速率。
异步双向互锁方式
增加信号沿总线来回传送的速度,使硬件控制变得复杂,可以适应不同速度的I/O设备,保证数据传送的正确性,且有较高的数据传送速率。
以所接源和目的部件中相对低速来通信,比同步方式以所有部件中最低速率通信效率高。
I/O常用异步双向互锁方式
3.3.4 数据宽度与总线线数
1.数据宽度
数据宽度是I/O设备取得I/O总线后所传送数据的总量。不同于数据通路宽度。
数据通路宽度是数据总线的物理宽度,即一个时钟周期所传送的信息量。
采用何种数据宽度与总线上设备特点、控制方式、通信技术有关。
数据宽度有单字(单字节)、定长块、可变长块、单字加定长块和单字加可变长块等之分
2.总线线数
总线要有收发电路、传输导线或线缆、转接插头和电源等、成本比逻辑线路搞。转接器占去了系统中相当大的物理空间。是系统中可靠性较低的部分。
总线线数越多,成本越高,干扰越大,可靠性越低,但传送速率和流量越高
总线越长,成本越高,干扰越大,波形畸变严重。可靠性越低。
总线越长,线数应减少。数据总线的宽度有位、字节、字或双字。
满足条件尽可能减少线数,可以用线的组合、编码及并/串——串/并转换来减少,但会减低总线流量。