总线
一、总线概述
1、总线概图
每个总线可能由很多根信号线组成
2、总线的物理实现
所有硬件部件都可以通过这根总线传递数据可并行发送4bit数据
同一时刻只能有一个部件发送数据,但是可有多个部件接受数据
3、总线的定义
总线是一组能为多个部件分时共享的公共信息传送线路。
共享:指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享。
分时:指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息。
4、总线的特性
- 机械特性:尺寸、形状、管脚数、排列顺序
- 电气特性:传输方向、有效的电平范围
- 功能特性:每根传输线的功能(地址、数据、控制)
- 时间特性:信号的时序关系
5、总线的分类
1)数据的传输格式
1. 串行总线
例:USB
优点:只需要一条传输线,成本低廉,广泛应用于长距离传输;应用于计算机内部时,可以节省布线空间。
缺点:在数据发送和接收的时候要进行拆卸和装配,要考虑串行-并行转换的问题。
2. 并行总线
优点:总线的逻辑时序比较简单,电路实现起来比较容易。
缺点:信号线数量多,占用更多的布线空间;远距离传输成本高昂。 (由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作频率)
2)功能
1. 片内总线
片内总线是芯片内部的总线。
它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。
2. 系统总线
系统总线是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。
系统总线传输信息内容的不同,又可分为3类:数据总线、地址总线和控制总线。
- 数据总线(DB):用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关。
- 地址总线(AB):用来指出数据总线上的源数据或目的数据所在的主存单元或I/O端口的地址,它是单向传输总线,地址总线的位数与主存地址空间的大小有关。
- 控制总线(CB):传输的是控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号。
数据通路表示的是数据流经的路径
数据总线是承载的媒介
3. 通信总线
通信总线是用于计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,通信总线也称为外部总线。
3)时序控制方式
1. 同步
2. 异步
6、系统总线的结构
1)单总线结构
优点:结构简单,成本低,易于接入新的设备。
缺点:带宽低、负载重,多个部件只能争用唯一的总线,且不支持并发(并行)传送操作
2)双总线结构
结构:主存总线 + I/O总线
优点:将较低速的I/O设备从单总线上分离出来,实现存储器总线和I/O总线分离。
缺点:需要增加通道等硬件设备。
通道是具有特殊功能的处理器,能对I/O设备进行统一管理。(通道程序放在主存中)
支持突发(猝发)传送:送出一个地址,收到多个地址连续的数据。
3)三总线结构
结构:主存总线 + I/O总线 + DMA总线(直接内存访问)
优点:提高了I/O设备的性能,使其更快地响应命令,提高系统吞吐量。
缺点:系统工作效率较低。
4)四总线结构
- 桥接器:用于连接不同的总线,具有数据缓冲、转换和控制功能
- 靠近CPU的总线速度较快
- 每级总线的设计遵循总线标准
7、总线的性能指标
1)总线周期
一次总线操作所需的时间(包括申请阶段、 寻址阶段、传输阶段和结束阶段),通常由若干个总线时钟周期构成。
总线周期与总线时钟周期的关系比较魔幻
- 大多数情况下,一个总线周期包含多个总线时钟周期
- 有的时候,一个总线周期就是一个总线时钟周期
- 有的时候,一个总线时钟周期可包含多个总线周期
2)总线时钟周期
即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
现在的计算机中,总线时钟周期也有可能由桥接器提供
3)总线的工作频率
总线上各种操作的频率,为总线周期的倒数。
若总线周期=N个时钟周期,则总线的工作频率 = 时钟频率 / N。
实际上指一秒内传送几次数据。
4)总线的时钟频率
即机器的时钟频率,为时钟周期的倒数。
若时钟周期为T,则时钟频率为1 / T。
实际上指一秒内有多少个时钟周期。
5)总线宽度
又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数,如32根称为32位(bit)总线。
6)总线带宽
可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
总线带宽 = 总线工作频率 × 总线宽度 (bit/s) = 总线工作频率 × (总线宽度/8) (B/s)
总线带宽是指总线本身所能达到的最高传输速率。
在计算实际的有效数据传输率时,要用实际传输的数据量除以耗时。
7)总线复用
总线复用是指一种信号线在不同的时间传输不同的信息。可以使用较少的线传输更多的信息,从而节省了空间和成本。
8)信号线数
地址总线、数据总线和控制总线
3种总线数的总和称为信号线数。
二、总线的仲裁
1、基本概念
同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。
将总线上所连接的各类设备按其对总线有无控制功能分为:
**主设备:**获得总线控制权的设备。
**从设备:**被主设备访问的设备,只能响应从主设备发来的各种总线命令。
2、集中仲裁方式
1)链式查询方式
“总线忙”信号的建立者是:获得总线控制权的设备
**优先级:**离总线控制器越近的部件,其优先级越高;离总线控制器越远的部件,其优先级越低。
**优点:**链式查询方式优先级固定。只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。
**缺点:**对硬件电路的故障敏感,并且优先级不能改变。 当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。
2)计数器查询方式
**结构特点:**用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应线BG;它仍共用一根总线请求线。
优点:
- 计数初始值可以改变优先次序
- 计数每次从“0”开始,设备的优先级就按顺序排列,固定不变
- 计数从上一次的终点开始,此时设备使用总线的优先级相等
- 计数器的初值还可以由程序设置
- 对电路的故障没有链式敏感
缺点:
- 增加了控制线数:若设备有n个,则需 条控制线
- 控制相对比链式查询相对复杂
3)独立请求方式
**结构特点:**每一个设备均有一对总线请求线BRi和总线允许线BGi。
优点:
- 响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询。
- 对优先次序的控制相当灵活。
缺点:
- 控制线数量多:若设备有n个,则需要2n+1条控制线。其中+1为BS线,用于设备向总线控制部件反馈已经是否正在使用总线。
- 总线的控制逻辑更加复杂
4)集中仲裁方式对比
3、分布仲裁方式
**特点:**不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。
- 当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上
- 每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较
- 如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号
- 最后,获胜者的仲裁号保留在仲裁总线上
三、总线的操作和定时
1、总线传输的四个阶段
申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定将下一传输周期的总线使用权授予某一申请者。也可将此阶段细分为传输请求和总线仲裁两个阶段。
寻址阶段:获得使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块。
传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。
结束阶段:主模块的有关信息均从系统总上撤除,让出总线使用权。
总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或规则
2、同步通信
3、异步通信
0)概述
在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。
**优点:**总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。
**缺点:**比同步控制方式稍复杂一些,速度比同步定时方式慢。
1)不互锁方式
主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间,便撤销“请求”信号。
而从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间,自动撤销“回答”信号。双方不存在互锁关系。
2)半互锁方式
主设备发出“请求”信号后,必须待接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。
而从设备在接到“请求”信号后,发出“回答”信号,但不必等 待获知主设备的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。
3)互锁方式
主设备发出“请求”信号后,必须待从设备“回答”后,才撤销“请求”信号。
从设备发出“回答”信号,必须待获知主设备“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系。
4、半同步通信
半同步通信:统一时钟的基础上,增加一个“等待”响应信号WAIT
5、分离式通信
上述三种通信的共同点,一个总线传输周期(以输入数据为例)
- 主模块发地址 、命令:使用总线
- 从模块准备数据:总线空闲、不使用总线
- 从模块向主模块发数据:使用总线
分离式通信的一个总线传输周期
- 子周期1:主模块申请占用总线,使用完后放弃总线的使用权
- 子周期2:从模块申请占用总线,将各种信息送至总线上
特点:
- 各模块均有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各模块准备数据时,不占用总线
- 总线利用率提高
四、总线的标准
1、基本概念
总线标准是国际上公布或推荐的互连各个模块的标准,它是把各种不同的模块组成计算机系统时必须遵守的规范。
- 系统总线:通常与CPU直接相连,用于连接CPU与北桥芯片、或CPU与主存等
- 局部总线:没有直接与CPU连接,通常是连接高速的北桥芯片,用于连接了很多重要的硬件部件(如显卡、声卡等)
- 设备总线、通信总线:通常由南桥芯片控制,用于连接计算机与计算机,或连接计算机与外部I/O设备
2、串行总线优势
**并行总线:**用m根线每次传送m个比特,用高/低电平表示1/0,通常采用同步定时方式,由于线间信号干扰,因此总线工作频率不能太高。另外,各条线不能有长度差,长距离并行传输时工艺难度大。
**串行总线:**用两根线每次传送一个比特,采用“差模信号”表示1/0,通常采用异步定时方式,总线工作频率可以很高。现在的串行总线通常基于包传输,如80bit为一个数据包,包与包之间有先后关系,因此可以用多个数据通路分别串行传输多个数据包。因此某种程度上现在的串行总线也有“并行”的特点