六、总线
文章目录
1.总线概论
总线被刻蚀在主板上
总线是一组能为多个部件分时共享的公共信息传送线路。
- 共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享。
- 分时是指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息。
CPU和主存、硬盘、外部设备之间通过一组总线相连,总线中有**地址(AB)、控制(CB)、数据(DB)**3组信号线。
一根总线可能由很多根信号线组成,同一时刻只能有一个部件发送数据,但是可有多个部件接受数据(一对多)。
MAR中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元。
控制线中有读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU,根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。
特性:
- 机械特性:尺寸、形状、管脚数、排列顺序
- 电气特性:传输方向和有效的电平范围
- 功能特性:每根传输线的功能(地址、数据、控制)
- 时间特性:信号的时序关系
2.分类
数据通路表示的是数据流经的路径;
数据总线是承载的媒介。
2.1按数据传输格式
-
串行总线:一次可以传输一位bit
USB
- 优点:只需要一条传输线。成本低廉,广泛应用于长距离传输;应用于计算机内部时,可以节省布线空间。
- 缺点:在数据发送和接收的时候要进行拆卸和装配,要考虑串行-并行转换的问题。
-
并行总线:一次可以传输多位bit
主存→CPU
- 优点:总线的逻辑时序比较简单,电路实现起来比较容易。
- 缺点:信号线数量多,占用更多的布线空间;远距离传输成本高昂;由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作频率。
2.2按总线功能(连接的部件)
- 片内总线
片内总线是CPU芯片内部的总线。
它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。
- 系统总线
系统总线是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。
按系统总线传输信息内容的不同,又可分为3类:数据总线(DB)、地址总线(AB)和控制总线(CB)。
- 数据总线(DB):
- 双向;
- 传输各功能部件之间的数据信息,包括指令和操作数;
- 位数(根数)与机器字长、存储字长有关。
- 地址总线(AB):
- 单向;
- 传输地址信息,包括主存单元或I/O端口的地址;
- 位数(根数)与主存地址空间大小及设备数量有关。
- 控制总线(CB):
- 双向传输控制信息;
- 一根控制线传输一个信号;
- 有出:CPU送出的控制命令;
- 有入:主存(或外设)返回CPU的反馈信号。
- 通信总线(网线)
通信总线是用于计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,通信总线也称为外部总线。
2.3按时序控制方式
- 同步总线
- 异步总线
2.2-2系统总线的结构
- 单总线结构
- 结构:CPU、主存、IO设备(通过I/O接口)都连接在**一组总线(数地控3根)**上,允许IO设备之间、I/O设备和CPU之间或I/O设备与主存之间直接交换信息。
- 优点:结构简单,成本低,易于接入新的设备。
- 缺点:带宽低、负载重,多个部件只能争用唯一的总线,且不支持并发(并行)送操作。外设的速度比内部慢很多,但是都接在一根总上,所以效率很低。
- 双总线结构
-
结构:双总线结构有两条总线,一条是主存总线,用于CPU、主存和通道之间进行数据传送;另一条是I/O总线,用于多个外部设备与通道之间进行数据传送。
相当于快车道慢车道。
- 主存总线中添加通道,用于控制I/O总线及其设备。通道是具有特殊功能的处理器CPU,能对I/O设备进行统一管理。通道程序放在主存中。
- 主存总线支持突发(猝发)传送:送出一个地址,收到多个地址连续的数据。
-
优点:将较低速的I/O设备从单总线上分离出来,实现存储器总线和I/O总线分离。
-
缺点:需要增加通道等硬件设备。
- 三总线结构
- 结构:三总线结构是在计算机系统各部件之间采用3条各自独立的总线来构成信息通路,这3条总线分别为主存总线、I/O总线和直接内存访问DMA总线。
- DMA:Direct Memory Access,直接内存访问。因为I/O设备中磁盘的速度明显比其他输入输出设备要快,所以之间将磁盘与内存使用DMA总线连接。
- 优点:提高了I/O设备的性能,使其更快地响应命令,提高系统吞吐量。
- 缺点:系统工作效率较低。因为这3根总线在同一时刻只能有一根工作。
- 四总线结构
408不考,但是这是现代计算机的结构
3.性能指标
- 总线的传输周期(总线周期)
一次总线操作所需的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段),通常由若干个总线时钟周期构成。
- 总线时钟周期
即机器(CPU、桥接器)的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
总线周期与总线时钟周期的关系比较魔幻:
一对多,一对一,多对一。
大多数情况下,一个总线周期包含多个总线时钟周期;
有的时候,一个总线周期就是一个总线时钟周期;
有的时候,一个总线时钟周期可包含多个总线周期。
- 总线的工作频率
总线上各种操作的频率,为总线周期的倒数。实际上指一秒内传送几次数据。
工作频率
=
1
总线周期
若总线周期
=
N
个时钟周期,
则总线的工作频率
=
时钟频率
N
。
工作频率=\frac 1{总线周期}\\\\ 若总线周期 = N个时钟周期,\\则总线的工作频率 = \frac{时钟频率}N。
工作频率=总线周期1若总线周期=N个时钟周期,则总线的工作频率=N时钟频率。
- 总线的时钟频率
即机器的时钟频率,为时钟周期的倒数。实际上指一秒内有多少个时钟周期。
时钟频率
=
1
时钟周期
时钟频率=\frac 1{时钟周期}
时钟频率=时钟周期1
- 总线宽度
又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数,如32根称为32位(bit)总线。
- 总线带宽
可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
总线带宽
=
总线工作频率
×
总线宽度
(
b
i
t
/
s
)
=
总线工作频率
×
(
总线宽度
/
8
)
(
B
/
s
)
=
宽度
总线周期
(
b
i
t
/
s
)
=
宽度
/
8
总线周期
(
B
/
s
)
\begin{split} 总线带宽&= 总线工作频率×总线宽度\ (bit/s)\\ &= 总线工作频率×(总线宽度/8)\ (B/s)\\ &=\frac {宽度}{总线周期}\ (bit/s)\\ &=\frac {宽度/8}{总线周期}\ (B/s)\\ \end{split}
总线带宽=总线工作频率×总线宽度 (bit/s)=总线工作频率×(总线宽度/8) (B/s)=总线周期宽度 (bit/s)=总线周期宽度/8 (B/s)
【注意】总线带宽是指总线本身所能达到的最高传输速率。在计算实际的有效数据传输率时,要用**实际传输的数据量(如果有冗余位、校验位,要减去这些)**除以耗时。
例:某同步总线采用数据线和地址线复用方式,其中地址/数据线有32根,总线时钟频率为66MHz,每个时钟周期传送两次数据(上升沿和下降沿各传送一次数据)。
1)该总线的最大数据传输率(总线带宽)是多少?
2)若该总线支持突发(猝发)传输方式,传输一个地址占用一个时钟周期,则一次
“主存写”总线事务传输128位数据所需要的时间至少是多少?解:
1)每个时钟周期传送两次数据→1个时钟周期包含2个总线周期→总线工作频率是时钟频率的两倍。
总线工作频率=2×66MHz =132MHz
总线宽度= 32bit = 4B
总线带宽=总线工作频率×总线宽度=132×4 MB/s = 528 MB/s2)突发(猝发)传输方式:一次总线事务中,主设备只需给出一个首地址从设备就能从首地址开始的若干连续单元读出或写入多个数据。
发送首地址占用1个时钟周期,传送数据128位数据需传输4次,占用2个时钟周期。
一个时钟周期=1/66MHz = 15ns
总耗时=(1+2) × 15ns = 45ns
- 总线复用
总线复用是指一种信号线在不同的时间传输不同的信息。可以使用较少的线传输更多的信息,从而节省了空间和成本。
一根总线即使地址总线,也是数据总线。
- 信号线数
地址总线、数据总线和控制总线3种总线数的总和称为信号线数。
4.仲裁
解决多个设备争用总线的问?
同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备接收数据。
将总线上所连接的各类设备按其对总线有无控制功能分为:
-
主设备:获得总线控制权的设备。
-
从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令。
-
为什么要仲裁?
总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题。
- 总线仲裁的定义:
多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁。总线判优控制。
- 总线仲裁分类:
- 集中仲裁方式
- 链式查询方式
- 计数器定时查询方式
- 独立请求方式
- 分布仲裁方式
- 集中仲裁方式
工作流程:
- 主设备发出请求信号;
- 若多个主设备同时要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线;
- 获得总线使用权的主设备开始传送数据。
4.1集中仲裁方式
【注意】“总线忙”信号的建立者是获得总线控制权的设备。
4.1.1链式查询方式
在控制总线中,有3根信号线:
BG:总线允许;
BR:总线请求;
BS:总线忙。
用来控制仲裁。
BR→BS→BG
优先级:离总线控制器越近的部件,其优先级越高;离总线控制器越远的部件,其优先级越低。
优点:链式查询方式优先级固定。只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。
缺点:对破件电路的故障敏感,并且优先级不能改变,容易出现“饥饿”。当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。
4.1.2计数器定时查询方式
结构特点:用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应线BG;它仍共用一根总线请求线。
优点:
-
计数初始值可以改变优先次序;
- 计数每次从“0”开始,设备的优先级就按顺序排列,固定不变;
- 计数从上一次的终点开始,此时设备使用总线的优先级相等;
- 计数器的初值还可以由程序设置。
-
对电路的故障没有链式敏感。
缺点:
- 增加了控制线数。若设备有n个,则需 ⌈ log2n ⌉ + 2 条控制线。
- 控制相对比链式查询相对复杂。
4.1.3独立请求方式
结构特点:每一个设备均有一对总线请求线 BRi 和总线允许线 BGi。
优点:
- 响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询。
- 对优先次序的控制相当灵活。
缺点:
-
控制线数量多;
-
若设备有n个,则需要2n+1条控制线。
其中 +1为BS线,用于设备向总线控制部件反馈已经是否正在使用总线。
-
-
总线的控制逻辑更加复杂。
4.2分布仲裁方式
特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。
- 当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上;
- 每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较;
- 如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号;
- 最后,获胜者的仲裁号保留在仲裁总线上。
5.操作和定时
2.3按时序控制方式
- 同步总线
- 异步总线
5.1总线传输的四个阶段
总线周期:
-
申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定将下一传输周期的总线使用权授予某一申请者。也可将此阶段细分为传输请求和总线仲裁两个阶段。
- 总线请求
- 总线仲裁
实际进行3阶段:
-
寻址阶段:获得使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块。
-
传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。
-
结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。
5.2总线定时
总线定时:是指总线在双方交换数据的过程(4个周期内)中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或规则。这里介绍4种:
- 同步通信(同步定时方式):由统一时钟控制数据传送。
- 异步通信(异步定时方式):采用应答方式,没有公共时钟标准。
- 半同步通信:同步、异步结合。
- 分离式通信:充分挖掘系统总线每瞬间的潜力。
5.2.1同步通信
总线控制器采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。
若干个时钟产生相等的时间间隔,每个间隔构成一个总线周期。
在一个总线周期中,发送方和接收方可进行一次数据传送。
因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始。因为固定,那么当一个模块慢了也没人等他,那么就会出问题。
- 优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。
- 缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。
同步通信适用于:总线长度较短及总线所接部件的存取时间比较接近的系统。
5.2.2异步通信
在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。
根据**“请求”和“回答”信号的撤销是否受到对方的制约**(互锁),分为以下3种:
- 不互锁方式(速度最快、可靠性最差)
主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间,便自动撤销“请求”信号。
从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间,自动撤销“回答”信号。
双方不存在互锁关系。
- 半互锁方式
主设备发出“请求”信号后,必须待接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。
从设备在接到“请求”信号后,发出“回答”信号,但不必等待获知主设备的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。
主设备的“请求”信号受到制约,从设备“回答”不受制约。
- 全互锁方式(速度最慢、最可靠)
主设备发出“请求”信号后,必须待从设备“回答”后,才撤销“请求”信号。
从设备发出“回答”信号,必须待获知主设备“请求”信号已撤销后,再撤销其“回答”信号。
双方存在互锁关系。
- 优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。
- 缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。
5.2.3半同步通信
半同步通信:统一时钟(同步通信)的基础上,增加一个“等待”响应信号WAIT。
同步:发送方用系统时钟前沿发信号;接收方用系统时钟后沿判断、识别。
异步:允许不同速度的模块和谐工作。
当有快慢区别之时,可以通过WAIT等待来调控各个模块之间的速度差异。
5.2.4分离式通信
6.总线标准
什么数据传输格式?并行?串行?
几根数据线?几根地址线?
用哪种总线仲裁方式?
用哪种总线定时方式?
总线工作频率?
电气特性?
…
总线标准是国际上公布或推荐的互连各个模块的标准,它是把各种不同的模块组成计算机系统时必须遵守的规范。按总线标准设计的接口可视为通用接口,在接口的两端,任何一方只需根据总线标准的要求完成自身方面的功能要求,而无须了解对方接口的要求。
根据总线在计算机系统中的位置,可分为:
6.1系统总线
系统总线:通常与CPU直接相连,用于连接CPU与北桥芯片、或CPU与主存等。
并行传输:
ISA、EISA、FBS(前端总线)、QPI
6.2局部总线
局部总线:没有直接与CPU连接,通常是连接高速的北桥芯片,用于连接了很多重要的硬件部件(如显卡、声卡等)。
并行:
VESA(依附于CPU)、PCI(不受CPU控制)、AGP(PCI二代)、
2001改为串行传输:
PCI-E(串行传输、PCI三代)
6.3设备总线、通信总线
设备总线、通信总线:通常由南桥芯片控制,用于连接计算机与计算机,或连接计算机与外部I/O设备。
RS-232C(串行,通信总线)、
SCSI(并行,智能通用接口)
PCMCIA(存储卡,便携设备接口)
USB(串行,Universal Serial Bus):
USB接口定义:
红 - 白 - 绿 - 黑
VCC -D +D GND
1 2 3 4
1、4供电。
差模信号:根据2、3的压差来确定1bit数据,差模信号的抗干扰能力很强,因此工作频率可以很高。但是USB每次只能传输1bit数据。
连接硬盘的总线标准:
IDE(ATA、PATA)(并行,硬盘光驱接口)
SATA(串行硬盘接口)
6.4为何串行总线取代并行总线?
并行总线:用m根线每次传送m个比特,用高/低电平表示1/0。
通常采用同步定时方式,由于线间信号扰,因此总线工作频率不能太高。
另外,各条线不能有长度差,长距离并行传输时工艺难度大。
串行总线:用两根线每次传送一个比特,采用**“差模信号”表示1/0**。
通常采用异步定时方式,总线工作频率可以很高。
现在的串行总线通常基于包传输,如80bit为一个数据包,包与包之间有先后关系,因此可以用多个数据通路分别串行传输多个数据包。因此某种程度上现在的串行总线也有“并行”的特点。