(三)系统总线[计组]
3.1总线的基本概念
数字计算机是由若干个系统功能部件构成的,这些系统功能部件在一起工作才能形成一个完整的计算机系统。一种连接方式是将需要通信的部件两两相连。但是现代计算机的CPU可能有很多,I/O设备也各种各样,如果采用两两相连的方式,线路将会非常复杂,这是不现实的,故推出的总线的概念。\
总线是连接各个部件的信息传输线, 是各个部件共享的传输介质
1. 定义
总线定义: 连接各个部件的信息传输线,是各个部件共享的传输介质,英文名为BUS,十分形象。
总线是构成计算机系统的互联机构,是多个系统功能部件之间进行数据传送的公共通路。
借助于总线连接,计算机在各系统功能部件之间实现地址、数据和控制信息的交换,并在争用资源的基础上进行工作。在总线上传输方式有串行和并行两种,由于线路之间会相互干扰,所以传输距离短。
2. 分类
总线可分为以下几类(根据所在位置):
-
内部总线:CPU内部连接各寄存器及运算器部件之间的总线,也叫片内总线。
-
系统总线:外部总线, 计算机各部件之间的信息传输线 , CPU和计算机系统中其他高速功能部件如存储器、输入输出接口等相互连接的总线。(根据总线上传输信号的不同)又细分为:
-
数据总线:双向(读和写),总线条数与机器字长、存储字长有关,但不一定相等 (通常小于机器字长) 。
-
地址总线:单向(只读),条数与存储地址、I/O地址有关
-
控制总线:传输控制信号,单向,但是有输出信号也有输入信号。

-
-
通信总线:用于计算机系统之间或者计算机系统与其他系统之间的通信,按照传输方式分为:串行通信和并行通信总线。
3. 特性
从物理角度来看,总线由许多导线直接印制在电路板 ( 在微型PC 机上, 又叫做主板/母板)上,延伸到各个部件。
下图形象地表示了各个部件与总线之间的物理摆放位置。

总线的特性可分为:物理特性、功能特性、电气特性、时间特性。
- 物理特性:总线的物理连接方式(尺寸、形状、管脚数、根数、插头、插座形状,引脚排列方式)
- 功能特性:每根线传输的信号以及功能(地址、数据、控制)
- 电气特性:每根线上信号的传递方向及有效电平范围 (传输方向以及有效的电平范围【高电平表示1,低电平表示0】)。
- 时间特性:规定了每根总线在什么时间有效(时序关系)。
4. 总线的性能指标
- 总线宽度 :数据线的根数
- 标准传输率 :每秒传输的最大字节数(MBps)
- 时钟同步/异步 :同步、不同步
- 总线复用: 地址线与数据线复用 => 8086/8088系统总线详解(时序解析+总线相关知识)
- 信号线数:地址线、数据线和控制线的总和
- 总线控制方式:突发、自动、仲裁、逻辑、计数
- 其他指标:负载能力
5. 标准总线
由于现代的计算机十分复杂, 为了使不同厂家生产的相同功能部件可以互换使用,就需要进行系统总线的标准化工作。目前,已经出现了很多总线标准,如PCI、ISA等PC、STD、EISA。
采用标准总线的优点:
- 简化系统设计
- 简化系统结构,提高系统可靠性
- 便于系统的扩充和更新
RS-232 : Recommended standards (推荐标准)
6. 总线带宽
总线带宽:总线本身所能达到的最高传输速率。
一次操作可以传输的数据位数。如S100为8位,ISA为16位,EISA为32位,PCI-2可达64位。总线宽度不会超过微处理器外部数据总线的宽度。取决于一次操作所花费的时间,时间越短带宽越高。一次可传递的信息量越多,带宽越高。
3.2总线结构
1.单总线结构
把所有的设备都连接到一条总线上
问题: 会严重影响CPU的执行效率 , 总线成为系统的瓶颈

2.多总线结构
以CPU为中心的双总线结构
在CPU与主存之间多了一条线, 原本的单总线结构会严重影响CPU的执行效率
- 这种结构在外部输入的时候还是会打断CPU 的任务执行

以存储器为中心的双总线结构
CPU与主存之间有专用 总线 , 相比前两种总线结构进步很多, 但是 系统总线与存储总线还是不能同时工作

三总线结构
CPU为中心, 如果有 外部的高速外设(比如网卡)进行数据的读取和写入, 我们可以通过 DMA 总线 , 而不需要通过I/O 总线来交给CPU来做

四总线结构
为了进一步提高I / O设备的性能,使其更快地响应命令,又出现了四总线结构,

3.早期总线的内部结构
如图所示,它实际上是处理器芯片引脚的延伸,是处理器与I/O设备适配器的通道。这种简单的总线一般由50~100条线组成,这些线按其功能可分为三类:地址线、数据线和控制线。
-
数据总线:双向(读和写),总线条数与机器字长、存储字长有关,但不一定相等。
-
地址总线:单向(只读),条数与存储地址、I/O地址有关
-
控制总线:传输控制信号,单向,但是有输出信号也有输入信号。

缺点:
-
CPU是总线上惟一的主控者。即使后来增加了具有简单仲裁逻辑的DMA控制器以支持DMA传送,但仍不能满足多CPU环境的要求。
-
总线信号是CPU引脚信号的延伸,故总线结构紧密与CPU相关,通用性较差。
4.当代总线的内部结构

-
数据传送总线:由地址线、数据线、控制线组成。其结构与简单总线相似,但一般是32条地址线,32或64条数据线。为了减少布线,64位数据的低32位数据线常常和地址线采用多路复用方式。
-
仲裁总线:包括总线请求线和总线授权线。
-
中断和同步总线:用于处理带优先级的中断操作,包括中断请求线和中断认可线。
-
公用线:包括时钟信号线、电源线、地线、系统复位线以及加电或断电的时序信号线等。
5总线结构实例
大多数计算机采用了分层次的多总线结构。下图它是一个三层次的多总线结构:CPU总线、PCI总线和ISA总线。


- CPU总线:也称CPU-存储器总线,包含64位数据线和32位地址线的同步总线。可以看成是CPU引脚信号的衍生。
- PCI总线:用于连接高速的I/O设备模块,如图形显示器适配器、网络接口控制器等,通过“桥”与上面更高速的CPU总线相连,与下面更低速的ISA总线相连。PCI总线是一个32(或64)位的同步总线,数据和地址是同一组线,分时复用,采用集中式仲裁方式,有专用的PCI总线仲裁器。
- ISA总线:与低速的I/O设备连接,支持7个DMA通道和15级可屏蔽硬件中断,并通过片级总线和ROM、键盘鼠标控制器等相连。


由图3.13中可见,PCI总线是通过PCI桥路(包括PCI控制器和PCI加速器)与CPU总线相连。这种结构使CPU总线与PCI 总线互相隔离,具有更高的灵活性,可以支持更多的高速运行设备;而且具有即插即用的特性。当然,挂在PCI总线上的设备都要求数据传输速率高的设备,如多媒体卡,高速局域网适配器、高性能图形卡等,与高速CPU总线是相匹配的。至于低速的FAX、Modem.打印机仍然挂在ISA、 EISA总线上。
3.3总线控制⭐
由于总线上连接着多个部件,什么时候由哪个部件发送信息,如何给信息传送定时,如何防止信息丢失,如何避免多个部件同时发送,如何规定接收信息的部件等一系列问题都需要由总线控制器统一管理。
它主要包括判优控制(或称仲裁逻辑)和通信控制。

- BR (Bus Request-总线请求线) : 所有设备通过BR 来发送总线请求 requset
- BG (Bus Grant-总线响应线) : 总线控制部件通过BG授予某个设备总线控制权 give
- BS(Bus State-总线状态线) : 该设备通过BS先发出总线被占用的信号
3.3.1.总线的判优控制
1. 链式查询方式
所有设备通过BR发出申请总线的信号,总线控制部件通过BG线授予某个设备总线控制权,该设备通过BS先发出总线被占用的信号。
当有设备发出总线请求信号后,从仲裁器一端开始查询,从左向右的顺序依次查询每个I/O设备,遇到第一个设备请求总线则授予控制权。
故离中央仲裁器最近的设备具有最高优先权,离总线控制器越远,优先权越低。
- 优点:只用很少几根线就能按照一定优先次序实现总线控制,并且这种链式结构很容易扩充设备。
- 缺点:对询问链的电路故障很敏感,某个接口电路出现故障,则后面的设备都无法获得总线控制权,优先级固定。
2.计数器定时查询方式
总线上的任一设备要求使用总线时,通过BR线发出总线请求。中央仲裁器接到请求信号以后,在BS线为“0”的情况下让计数器开始计数,计数值通过一组地址线发向各设备。每个设备接口都有一个设备地址判别电路,当地址线上的计数值与请求总线的设备地址相一致时,该设备置“1”BS线,获得了总线使用权,此时中止计数查询。 每次计数可以从“0”开始,也可以从中止点开发始。
- 如果从“0”开始,各设备的优先次序与链式查询法相同,优先级的顺序是固定的。
- 如果从中止点开始,则每个设备使用总线的优先级相等。(如上次终止点在10,则下次从11开始查询,10的优先级从高变成最低)
Data
Address

**计数器的初值也可用程序来设置,**这可以方便地改变优先次序,但这种灵活性是 以增加线数为代价的。
3. 独立请求方式
在独立请求方式中,每一个共享总线的主设备均有一对总线请求线BRi和总线授权线BGi。当设备要求使用总线时,便发出该设备的请求信号。总线仲裁器中有一个排队电路,它根据一定的优先次序决定首先响应哪个设备的请求,给设备以授权信号BGi。当代总线标准普遍采用独立请求方式。

优点
- 响应时间快,即确定优先响应的设备所花费的时间少,用不着一个设备接一个设备地查询。
- 对优先次序的控制相当灵活。优先级可以预先固定,也可以通过程序来改变优先次序,还可以用屏蔽(禁止)某个请求的办法,不响应来自无效设备的请求。
缺点
- 控制线数量多,总线控制更复杂
对比
控制灵活(通过程序改变),但控制线数量多,总线控制更复杂。
- 链式查询中仅用两根线确定总线使用权属于哪个设备,
- 在计数器查询中大致用log2n根线,其中n是允许接纳的最大设备数,
- 而独立请求方式需采用.2n根线。
3.3.2.总线通信控制
众多部件共享总线,在争夺总线使用权时,应按各部件的优先等级来解决。
在通信时间上,则应按分时方式来处理,即以获得总线使用权的先后顺序分时占用总线,
即哪一个部件获得使用权,此刻就由它传送,下一部件获得使用权,接着下一时刻传送。这样一个接一个轮流交替传送。
通常将完成一次总线操作的时间称为总线周期,可分为以下4个阶段。
- 申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下
一传输周期的总线使用权授于某一申请者。 - 寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址
及有关命令,启动参与本次传输的从模块。 - 传数阶段:主模块和从模块进行数据交换,数据由源模块发出,经数据总线流人目的
模块。 - 结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。
总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。
通常用四种方式:同步通信、异步通信、半同步通信和分离式通信。
同步通信
- 由统一时标控制数据传送

异步通信
- 采用应答方式,没有公共时钟标准

半同步通信
- 同步、异步结合

上面三种通信方式的共同点
- 主模块发送地址, 命令 => 占用总线
- 从模块准备地址, 命令 => 不占用总线 => 总线空闲
- 从模块向主模块发送数据 => 占用总线
分离式通信
- 充分挖掘系统总线每个瞬间的潜力
基本思想是将一个传输周期(或总线周期)分解为两个子周期。
- 在第一个子周期中,主模块A在获得总线使用权后将命令、地址以及其他有关信息,包括该主模块编号(当有多个主模块时,此编号尤为重要) 发到系统总线上,经总线传输后,由有关的从模块B接收下来。主模块A向系统总线发布这些信息只占用总线很短的时间,一旦发送完,立即放弃总线使用权,以便其他模块使用。
- 在第二个子周期中,当B模块收到A模块发来的有关命令信号后,经选择、译码、读取等一系列内部操作,将A模块所需的数据准备好,便由B模块申请总线使用权,一旦获准,B模块便将A模块的编号、B模块的地址、A模块所需的数据等一系列信息送到总线上,供A模块接收。很明显,上述两个传输子周期都只有单方向的信息流,每个模块都变成了主模块。
- 各个模块都有权利去申请占用总线
- 采用同步方式通信 , 不等对方应答
- 各个模块准备数据的时候, 不会占用总线
- 总线无空闲
**【例】**某CPU采用集中式仲裁方式,使用独立请求与菊花链查询相结合的二维总线控制结构。每一对请求线BRi和授权线BGi组成一对菊花链查询电路。每一根请求线可以被若干个传输速率接近的设备共享。当这些设备要求传送时通过BRi线向仲裁器发出请求,对应的BGi线则串行查询每个设备,从而确定哪个设备享有总线控制权。请分析说明图6.14所示的总线仲裁时序图。

解:从时序图看出,该总线采用异步定时协议。
当某个设备请求使用总线时,在该设备所属的请求线上发出申请信号BRi(1)。
CPU按优先原则同意后给出授权信号BGi作为回答(2)。
BGi链式查询各设备,并上升从设备回答SACK信号证实已收到BGi信号(3)。
CPU接到SACK信号后下降BG作为回答(4)。
在总线“忙”标志BBSY为“0”情况该设备上升BBSY,表示该设备获得了总线控制权,成为控制总线的主设备(5)。
在设备用完总线后,下降BBSY和SACK(6)释放总线。
在上述选择主设备过程中,可能现行的主从设备正在进行传送。此时需等待现行传送结束,即现行主设备下降BBSY信号后(7),新的主设备才能上升BBSY,获得总线控制权。
需要记笔记 , 怎么搞?
听课









