总线是一组能为多个部件分时共享的公共信息传送线路。
为什么要用总线?
早期计算机外部设备少时大多采用分散连接方式,不易实现随时增减外部设备。
为了更好地解决I/O
设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接。
- 共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享。
- 分时是指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息。
- 机械特性:尺寸、形状、管脚数、排列顺序
- 电气特性:传输方向和有效的电平范围
- 功能特性:每根传输线的功能(地址、数据、控制)
- 时间特性:信号的时序关系
- 设备A一位一位的发,经过总线,设备B一位一位的接收
- 优点:只需要一条传输线,成本低廉,广泛应用于长距离传输;应用于计算机内部时,可以节省布线空间。
- 缺点:在数据发送和接收的时候要进行拆卸和装配,要考虑串行-并行转换的问题。
- 数据同时放到总线,同时向B传输,B同时接收
- 优点:总线的逻辑时序比较简单,电路实现起来比较容易。
- 缺点:信号线数量多,占用更多的布线空间;远距离依输成本高昂;由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作频率。
- 片内总线是芯片内部的总线。
- 它是
CPU
芯片内部寄存器与寄存器之间、寄存器与ALU
之间的公共连接线。
- 数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关。
数据通路表示的是数据流经的路径
数据总线是承载的媒介
- 地址总线用来指出数据总线上的源数据或目的数据所在的主存单元或
I/O
端口的地址,它是单向传输总线,地址总线的位数与主存地址空间的大小有关。- 控制总线传输的是控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信。
通信总线是用于计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,通信总线也称为外部总线。
- 结构:CPU、主存、I/O设备(通过I/O接口)都连接在一组总线上,允许I/O设备之间、I/O设备和CPU之间或I/O设备与主存之间直接交换信息。
注:单总线并不是指只有一根信号线,系统总线按传送信息的不同可以细分为地址总线、数据总线和控制总线。
- 优点:结构简单,成本低,易于接入新的设备。
- 缺点:带宽低、负载重,多个部件只能争用唯一的总线,且不支持并发传送操作。
- 主存总线:支持突发(猝发)传送:送出一个地址,收到多个地址连续的数据。
- 通道是具有特殊功能的处理器,能对
I/O
设备进行统一管理。通道程序放在主存中。
- 结构:双总线结构有两条总线,一条是主存总线 ,用于CPU、主存和通道之间进行数据传送;另一条是
I/O
总线 ,用于多个外部设备与通道之间进行数据传送。- 优点:将较低速的
I/O
设备从单总线上分离出来,实现存储器总线和I/O
总线分离。- 缺点:需要增加通道等硬件设备。
- 结构:三总线结构是在计算机系统各部件之间采用3条各自独立的总线来构成信息通路,这3条总线分别为主存总线、
I/O
总线 和直接内存访问DMA
总线。- 优点:提高了
I/O
设备的性能,使其更快地响应命令,提高系统吞吐量。- 缺点:系统工作效率较低。
- 1.桥接器:用于连接不同的总线,具有数据缓冲、转换和控制功能。
- 2.靠近CPU的总线速度较快。
- 3.每级总线的设计遵循总线标准。
总线的性能指标
(1)总线的传输周期(总线周期)
(2)总线时钟周期
(3)总线的工作频率
(4)总线的时钟频率
(5)总线宽度
(6)总线带宽
(7)总线复用
(8)信号线数
总线的工作通过时钟控制
一次总线操作所需的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段对应T1~T4
),通常由若干个总线时钟周期构成。
即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
总线上各种操作的频率,为总线周期的倒数。
若总线周期=N
个时钟周期,则总线的工作频率=时钟频率/N
。
实际上指一秒内传送几次数据。
即机器的时钟频率,为时钟周期的倒数。若时钟周期为
T
,则时钟频率为1/T
。
实际上指一秒内有多少个时钟周期。
又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数,如32根称为32位(bit)总线。
可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
总线带宽=总线工作频率×总线宽度(bit/s)=总线工作频率×(总线宽度/8)(B/s)
注:总线带宽是指总线本身所能达到的最高传输速率。
在计算实际的有效数据传输率时,要用实际传输的数据量除以耗时。
例题:某同步总线采用数据线和地址线复用方式,其中地址/数据线有32根,总线时钟频率为66MHz,每个时钟周期传送两次数据(上升沿和下降沿各传送一次数据)。
- 该总线的最大数据传输率(总线带宽)是多少?
- 若该总线支持突发(猝发)传输方式,传输一个地址占用一个时钟周期,则一次“主存写”总线事务传输128位数据所需要的时间至少是多少?
解答:
- 每个时钟周期传送两次数据→总线工作频率是时钟频率的两倍
总线工作频率=2×66MHz=132MHz
总线宽度=32bit=4B
总线带宽=总线工作频率×总线宽度=132×4MB/s=528MB/s- 突发(猝发)传输方式:一次总线事务中,主设备只需给出一个首地址,从设备就能从首地址开始的若干连续单元读出或写入多个数据。
发送首地址占用1个时钟周期,128位数据需传输4次,占用2个时钟周期
一个时钟周期=1/66MHz=15ns
总耗时=(1+2)×15ns=45ns
由总线带宽=总线工作频率×总线宽度(bit/s)可知:
- 工作频率相同时,串行总线传输速度比并行总线慢。
- 并行总线的工作频率无法持续提高,而串行总线可以通过不断提高工作频率来提高传输速度,最终超过并行总线。
总线复用是指一种信号线在不同的时间传输不同的息。
可以使用较少的线传输更多的信息,从而节省了空间和成本。
地址总线、数据总线和控制总线3种总线数的总和称为信号线数。
一次总线操作所需的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段),通常由若干个总线时钟周期构成。
即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
总线上各种操作的频率,为总线周期的倒数。实际上指一秒内传送几次数据。
即机器的时钟频率,为时钟周期的倒数。实际上指一秒内有多少个时钟周期。
又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数,如32根称为32位(bit)总线。
可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
总线带宽=总线工作频率×总线宽度(bit/s)=总线工作频率×(总线宽度/8)(B/s)
总线复用是指一种信号线在不同的时间传输不同的信息。可以使用较少的线传输更多的信息,从而节省了空间和成本。
地址总线、数据总线和控制总线3种总线数的总和称为信号线数。
同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。
将总线上所连接的各类设备按其对总线有无控制功能分为:
- 主设备:获得总线控制权的设备。
- 从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令。
为什么要仲裁?
总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题。
总线仲裁的定义:
多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁。
总线仲裁分类:
- 集中仲裁方式:链式查询方式、计数器定时查询方式、独立请求方式
- 分布仲裁方式:自举分布、冲突检测、并行竞争
工作流程:
- 主设备发出请求信号;
- 若多个主设备同时要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线;
- 获得总线使用权的主设备开始传送数据。
“总线忙”信号的建立者是获得总线控制权的设备
优先级:
离总线控制器越近的部件,其优先级越高;
离总线控制器越远的部件,其优先级越低。
优点:
链式查询方式优先级固定。
只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。
缺点:
对硬件电路的故障敏感,并且优先级不能改变。
当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。
结构特点:用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应线BG
;它仍共用一根总线请求线BR
。
工作方式:
- 当总线控制器收到总线请求信号,判断总线空闲时,计数器开始计数,计数值通过设备地址线发向各个部件。
- 当地址线上的计数值与请求使用总线设备的地址一致时,该设备获得总线控制权。同时,中止计数器的计数及查询。
优点:
- 计数初始值可以改变优先次序
计数每次从“0”开始,设备的优先级就按顺序排列,固定不变;
计数从上一次的终点开始,此时设备使用总线的优先级相等;
计数器的初值还可以由程序设置
- 对电路的故障没有链式敏感
缺点:
- 增加了控制线数
若设备有n个,则需 log2n+2条控制线
- 控制相对比链式查询相对复杂
结构特点:每一个设备均有一对总线请求线
BRi
和总线允许线BGi
。
当总线控制器按一定的优先次序决定批准某个部件的请求时,则给该部件发送总线响应信号。
优点:
- 响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询。
- 对优先次序的控制相当灵活。
缺点:
- 控制线数量多
若设备有n个,则需要2n+1条控制线。其中+1为BS线,其用处为,用于设备向总线控制部件反馈已经使用完毕总线。
- 总线的控制逻辑更加复杂。
注:“总线忙”信号的建立者是获得总线控制权的设备,不是总线控制器!
特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。
(1)当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上;
(2)每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较;
(3)如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号;
(4)最后,获胜者的仲裁号保留在仲裁总线上。
总线周期的四个阶段
总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或规则
- 同步通信(同步定时方式)由统一时钟控制数据传送
- 异步通信(异步定时方式) 采用应答方式,没有公共时钟标准
- 半同步通信 同步、异步结合
- 分离式通信 充分挖掘系统总线每瞬间的潜力
系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。
一个读命令执行过程:
- CPU在T1时刻的上升沿给出地址信息
- 在T2的上升沿给出读命令(低电平有效),与地址信息相符合的输入设备按命令进行一系列的内部操作,且必须在T3的上升沿来之前将CPU所需的数据送到数据总线上。
- CPU在T3时钟周期内,将数据线上的信息传送到其内部寄存器中。
- CPU在T4的上升沿撤销读命令,输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动。
- 同步定时方式是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。
- 时钟产生相等的时间间隔,每个间隔构成一个总线周期。
- 在一个总线周期中,发送方和接收方可进行一次数据传送。
- 因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始。
优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。
缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。
同步通信适用于总线长度较短及总线所接部件的存取时间比较接近的系统。
- 在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
- 主设备提出交换信息的“请求”信号,经接口传送到从设备;
- 从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。
根据“请求”和“回答”信号的撤销是否互锁,分为以下3种类型。
(1)不互锁方式
(2)半互锁方式
(3)全互锁方式
不互锁方式速度最快可靠性最差;全互锁方式最可靠速度最慢
优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。
缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。
异步定时方式-数据传输率例题:
在异步串行传输方式下,起始位为1位,数据位为7位,偶校验位为1位,停止位为1位,如果波特率为1200bit/s,求这时的有效数据传输率为多少?
补充:
波特率:单位时间内传送的二进制数据的位数,单位用bps(位/秒)表示,记作波特
比特率:单位时间内传送二进制有效数据的位数,单位用bps表示,bps即bit/s
有效数据传输率即比特率
解答:每传送(1+1+7+1)=10个二进制位,就传送了7个有效数据位
故有效数据传输率为1200×7/(1+7+1+1)=840bit/s
同步
发送方用系统时钟前沿发信号
接收方用系统时钟后沿判断、识别
异步
允许不同速度的模块和谐工作
上述三种通信的共同点:
一个总线传输周期(以输入数据为例):
- 主模块发地址、命令 使用总线
- 从模块准备数据 不使用总线总线空闲
- 从模块向主模块发数据 使用总线
分离式通信的一个总线传输周期
- 子周期1:主模块申请占用总线,使用完后放弃总线的使用权
- 子周期2:从模块申请占用总线,将各种信息送至总线上
特点:
- 各模块均有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各模块准备数据时,不占用总线
- 总线利用率提高
- 总线标准是国际上公布或推荐的互连各个模块的标准,它是把各种不同的模块组成计算机系统时必须遵守的规范。
- 按总线标准设计的接口可视为通用接口,在接口的两端,任何一方只需根据总线标准的要求完成自身方面的功能要求,而无须了解对方接口的要求。
- 系统总线标准:ISA、EISA、VESA、PCI、PCI-Express等。
- 设备总线标准:IDE、AGP、RS-232C、USB、SATA、SCSI、PCMCIA等。
- 局部总线标准:在ISA总线和CPU总线之间增加的一级总线或管理层,如PCI、PCI-E、VESA、AGP等,可以节省系统的总带宽。
- 即插即用(
Plug-and-Play
)的作用是自动配置(低层)计算机中的板卡和其他设备,然后告诉对应的设备都做了什么。把物理设备和软件(设备驱动程序)相配合,并操作设备,在每个设备和它的驱动程序之间建立通信信道。- 热插拔(
hot-plugging
或Hot Swap
)即带电插拔,热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等,例如一些面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能。
最早的PC总线是IBM公司1981年在PC/XT电脑采用的系统总线,它基于8bit的8088处理器,被称为PC总线或者PC/XT总线。
1984年,IBM推出基于16-bit Intel80286处理器的PC/AT电脑,系统总线也相应地扩展为16bit,并被称呼为PC/AT总线。而为了开发与IBMPC兼容的外围设备,行业内便逐渐确立了以IBMPC总线规范为基础的ISA(工业标准架构:Industry Standard Architecture)总线。
ISA总线最大传输速率仅为8MB/s,数据传送需要CPU或DMA接口来管理,传输速率过低、CPU占用率高、占用硬件中断资源等,很快使ISA总线在飞速发展的计算机技术中成为瓶颈。不支持总线仲裁。
因此在1988年,康柏、惠普等9个厂商协同把ISA扩展到32-bit,这就是著名的EISA(Extended ISA,扩展ISA)总线。EISA总线的工作频率仍旧仅有8MHz,并且与8/16bit的ISA总线完全兼容,带宽提高了一倍,达到了32MB/s。从CPU中分离出了总线控制权,支持多个总线主控器和突发传送。可惜的是,EISA仍旧由于速度有限,并且成本过高,在还没成为标准总线之前,在20世纪90年代初的时候,就给PCI总线给取代了。
由于ISA/EISA总线速度缓慢,造成硬盘、显示卡还有其它的外围设备只能通过慢速并且狭窄的瓶颈来发送和接受数据,使得整机的性能受到严重的影响。为了解决这个问题,1992年Intel在发布486处理器的时候,也同时提出了32-bit的PCI(周边组件互连)总线。
最早提出的PCI总线工作在33MHz频率之下,传输带宽达到了133MB/s(33MHzX32bit/8),比ISA总线有了极大的改善,基本上满足了当时处理器的发展需要。
目前计算机上广泛采用的是这种32-bit、33MHz的PCI总线,可扩展到64bit。
特点:
- 高性能:不依附于某个具体的处理器,支持突发传送。
- 良好的兼容性。
- 支持即插即用。
- 支持多主设备。
- 具有与处理器和存储器子系统完全并行操作的能力。
- 提供数据和地址奇偶校验的能力。
- 可扩充性好,可采用多层结构提高驱动能力。
- 采用多路复用技术,减少了总线引脚个数。
- USB是在1994年底由英特尔等多家公司联合在1996年推出后,已成功替代串口和并口,已成为当今电脑与大量智能设备的必配接口。USB属于设备总线,是设备和设备控制器之间的接口。
- USB所有新版本都向下兼容,可以连接鼠标、键盘、打印机、扫描仪、摄像头、充电器、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSL Modem、Cable Modem等几乎所有的外部设备。
特点:
- 可以热插拔、即插即用。
- 具有很强的连接能力和很好的可扩充性。采用菊花链形式将众多外设连接起来,可使用USB集线器链式连接127个外设。
- 标准统一。以前大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后,这些应用外设统统可以用同样的标准与个人电脑连接,这时就有了USB硬盘、USB鼠标、USB打印机等等。
- 高速传输。
- 连接电缆轻巧,可为低压(5V)外设供电。
计算机内部总线连接情况如下: