系统总线
一、基本概念
1. 总线
概念:是连接各个部件的信息传输线,是各个部件共享的传输介质
在某一时刻,只允许有一个部件向总线发送信息否则导致信号冲突,传输无效。多个部件可以同时从总线上接收相同的信息。
2. 总线上信息传送
串行:把要传输的信息一位一位的放到总线上,接收方一位一位的进行接收,支持传输距离比较长
并行:要传输的数据多位同时放到总线上进行传输,接收方也同时接收多位数据。需要多条数据线进行传输,通常情况并行的传输距离比较短
高速信号传输主要使用串行方式。并行传输虽然可以一次传输多个数据位,但其时钟信号通常低于串行传输
3. 总线结构
- 单总线
缺点:
- 若不采取特殊的技术措施,如果主存有数据向外输出或外部设备有数据向主存当中进行写入,那么CPU执行程序的过程就会停止,会严重的影响CPU的运行效率
- 如果设备很多,系统总线则会比较长。若主存将信息向远端的I/O设备进行写或远端的I/O设备向主存传输信息的话,时间的延迟会比较长
- 面向CPU的双总线
缺点:
外部设备和主存之间进行信息传输,会导致CPU计算任务、执行程序的任务会被打断
- 以存储器为中心的双总线
二、总线分类 - 总线位置分类
1. 片内总线
指芯片内部的总线
2. 系统总线
计算机各部件之间的信息传输线
传输信号不同再分类:
- 数据总线:传输数据信号的总线 双向 与机器字长、存储字长有关
- 地址总线:单向 与存储地址、I/O地址有关
- 控制总线:有出(存储器读写,总线允许,中断确认)、有入(中断请求,总线请求)
3. 通信总线
用于计算机系统之间或计算机系统与其它系统之间的通信
传输方式:
- 串行通信总线
- 并行通信总线
三、总线性能及性能指标
1. 总线物理实现
2. 特性
- 机械特性 尺寸、形状、管脚数及排列顺序
- 电气特性 传输方向 和 有效的电平范围
- 功能特性 每根传输线的功能:地址信号、数据信号、控制信号、状态反馈信号
- 时间特性 信号的时序关系
3. 性能指标
- 总线宽度 : 数据线的根数 —— 同时传输多少位数据
- 标准传输率 : 每秒传输的最大字节数(MB/s)
- 时钟同步/异步 : 同步、不同步
- 总线复用 : 地址线 与 数据线 复用 — 减少芯片的管脚数(8086:20根地址线, 其中16根也是数据线)
- 信号线数 :地址线、数据线和控制线对的总和
- 总线控制方式 :突发、自动、仲裁、逻辑、计数
- 其他指标 : 负载能力(挂载I/O设备的数量)
4. 标准
ISA 总线
ISA (industrial Standard Architecture)总线是IBM为了采用全16位的CPU 而推出的,又称AT总线。
它不能支持多台主设备(不支持多台具有申请总线控制权的设备)系统;
而且ISA上的所有数据的传送必须通过CPU或DMA(直接存储器存取)接口来管理,因此使 CPU花费了大量时间来控制与外部设备交换数据。
ISA总线时钟频率为8MHz,最大传输率为16MBps,数据线为16位,地址线为24位。
EISA 总线
EISA(Extended Industrial Standard Architecture)是一种在 ISA基础上扩充开放的总线标准与ISA可以完全兼容。
能支持多个总线主控器和突发方式(总线上可进行成块的数据传送)的传输。
EISA总线的时钟频率为8MHz.最大传输率可达33MBps,数据总线为32位,地址总线为32位。
VESA(VL-BUS)总线
VESA 总线是由VESA(Video Electronic Standard Association,视频电子标准协会)提出的局部总线标准,又称为 VL-BUS(Local BUS)总线。
所谓局部总线,是指在系统外为两个以上模块提供的高速传输信息通道。
VL-BUS是由CPU总线演化而来的,采用CPU的时钟频率达33MHz、数据线为32位,可通过扩展槽扩展到64位,配有局部控制器,最大传输率达133MBps。通过局部总线控制器,将高速I/0设备直接挂在CPU上,实现CPU与高速 I/O设备之间的高速数据交换
PCI总线
①高性能。PCI总线是一种不依附于某个具体处理器的局部总线。它为系统提供了高速的数据传输通道,与CPU时钟频率无关,自身采用33MHz和66MHz的总线时钟,数据线为32位,可扩展到64位,传输速率从132MBps(33MHz时钟,32位数据通路)可升级到528 MBps(66MHz时钟,64位数据通路)。
②良好的兼容性。PCI总线部件和插件接口相对于处理器是独立的。PCI总线与ISA、EISA总线均可兼容,可以转换为标准的ISA、EISA。
③支持即插即用(Plug and Play),即任何扩展卡只要插入系统便可工作。
④支持多主设备能力。
⑤具有与处理器和存储器子系统完全并行操作的能力。
⑥提供数据和地址奇偶校验功能,保证了数据的完整和准确。
⑦ 支持两种电压标准:5V和3.3V。3.3~5V的组件技术可以使电压平滑过渡。3.3V电压的 PCI总线可用于便携式微型计算机中。
⑧可扩充性好。
⑨软件兼容性好。
⑩采用多路复用技术,减少了总线引脚个数。
AGP 总线
AGP(Accelerated Graphics Port,加速图形端口),采用点对点通道方式,以66.7MHz的频率直接与主存联系,以主存作为帧缓冲器,实现了高速存取。最大数据传输率(数据宽度为32位)为266MBps,是传统PCI总线带宽的2倍。ACP还定义了一种“双激励”(Double Pumping)的传输技术,能在一个时钟的上、下沿双向传递数据,这样,AGP实现的传输频率为66.7MHz x 2,即133 MHz,最大数据传输率可增为533 MBps。RS-232C 总线
RS-232C(RS即Recommended Standard的缩写,232为标识号,C表示修改次数)是由美国电子工业协会EIA(Electronic Industries Association)推荐的一种串行通信总线标准,它是应用于串行二进制交换的数据终端设备(DTE)-计算机和数据通信设备(DCE)-Modem调制解调器之间的标准接口。USB 总线
USB(Universal Serial Bus)通用串行总线, 是串行接口总线标准
①具有真正的即插即用特征。
②具有很强的连接能力。
③ 数据传输率(USB 1.0版)有两种,即采用普通无屏蔽双绞线,速度可达 1.5 Mbps,若用带屏蔽的双绞线,速度可达12Mbps。USB2.0版的数据传输率最高可达480Mbps。
④ 标准统一。
⑤ 连接电缆轻巧,电源体积缩小。
⑥生命力强。
四、总线结构
1. 单总线
2. 多总线
- 其他双总线
通道:具有特殊功能的处理器,由通道对I/O统一管理
- 三总线结构
DMA:直接存储器访问,外部设备直接访问主存
缺点:影响外部设备工作速度
- 四总线结构
3. 举例
- 传统微型机总线
- VL-BUS局部总线结构
- PCI总线结构
- 多层PCI总线结构
五、总线控制
1. 总线判优控制
1.1 基本概念
主设备(模块):对总线有控制权 —— 可以提出总线占用申请,并且在占用总线之后可以控制和另外一台设备之间进行通信
从设备(模块):响应从主设备发来的总线命令
总线判优控制 - 仲裁:
- 集中式:总线的判优逻辑坐在一个部件上
- 链式查询方式
- 计数器定时查询方式
- 独立请求方式
- 分布式:判优逻辑分布到各个设备或各个设备的端口上
1.2 链式查询方式
BS - 总线忙、BR - 总线请求、BG - 总线同意
过程:
如果挂接在总线上的I/O接口有总线占用请求的话
- 通过BR这条线向总线控制部件提出占用请求
- 如果总线控制部件接收到请求以后并确定可以将控制权交给I/O设备使用,通过BG查询第一个提出总线占用请求的接口(所有I/O设备都是通过一条BR线提出的请求,不知道哪个设备优先权更高,总线的控制权交给哪个设备,只能靠BG这条线逐个的向下进行查询)
- 该接口通过BS这条线设置总线忙,则该接口获得了使用权
特征:
- 各个设备占用总线的优先级和BG线的查询顺序有直接关系,该优先权是连接方式事先已经设定,如果优先权比较低很可能提出的总线占用请求一直都不会得到应答
- 缺点:对电路故障很敏感,尤其BG线在向下传送的过程中,如果某一个接口电路出现故障,该信号无法向下传送,后面设备再也获得不了总线使用权
- 缺点:速度慢
- 优点:结构简单,增删设备很容易,优先级算法简单,进行可靠性设计比较容易实现
- 用于微型计算机和简单嵌入式系统中
1.3 计数器定时查询方式
过程:
如果挂接在总线上的I/O接口有总线占用请求的话
- 通过BR这条线向总线控制部件提出占用请求
- 如果总线控制部件接收到请求以后并确定可以将控制权交给I/O设备使用,启动计数器
- 计数器的值是通过设备地址线向外输出,设备地址线给出信号后,对接口进行查询,如果没有提出请求,计数器自动加1,并继续向下一个接口进行查询
- 直到找到提出请求的接口,接口进行响应,通过BS线设置总线忙,则该接口获得了使用权
特征:
优点:优先级确定很灵活
- 若每次查询计数器从0开始到n结束的话,各个部件也从I/O接口0开始到n结束查询
- 若从上一次停止计数开始,优先级变成循环优先级
- 若可以通过软件方式给计数器设定初值k的话,I/O接口k的优先级则为最高
除数据线和地址线,相比链式没有BG线,多了设备地址线。设备地址线的宽度与设备数有关
总线 = log2n向上取整 + 2 (n为设备数)
1.4 独立请求方式
特征:
- 优先级的排队是在总线控制部件集中电路-排队器完成
- 除数据线和地址线,总线 = 2n (n为设备数)
2. 总线通信控制
2.1 基本概念
目的:解决通信双方协调配合问题
总线的传输周期:
- 申请分配阶段 —— 主模块申请,总线仲裁决定
- 寻址阶段 —— 主模块向从模块给出地址和命令(通过地址找到从模块,通过命令控制从模块)
- 传数阶段 —— 主模块和从模块交换数据
- 结束阶段 —— 主模块和从模块撤销有关信息
2.2 总线通信的四种方式
2.2.1 同步通信
由统一时标控制数据传送
说明:统一的定宽、定距的时标控制数据传送,每一个信号的给出都是在固定的时间点由这个时标控制
应用场景:一般用于总线长度较短、各部件存取时间比较一致的场合
- 公共时钟信号的需求:同步通信需要所有参与通信的设备共享一个公共的时钟信号,以确保数据在预定的时间内被发送和接收。当总线长度较短时,所有的设备更容易保持时钟信号的同步,因为信号传播延迟较小,从而更容易维持时钟的一致性。
- 传输延迟的考虑:在同步通信中,必须考虑到总线上最远两个设备之间的传输延迟。如果总线长度较长,那么信号在总线上的传播时间就会增加,这可能导致数据同步的困难,从而降低通信效率。较短的总线长度意味着较小的传输延迟,有助于保持数据同步,提高通信效率。
总线传输周期是连接在总线上的两个部件完成一次完整且可靠的信息传输时间,它包含4个时钟周期 T1、T2、T3、T4。输入通常是指从模块向主模块输入数据。
过程:
- CPU在T1上升沿准备发出地址信息;
- T1时钟周期主模块发地址;
- 在T2上升沿准备发出读命令;
- T2时钟周期主模块发读命令、与地址信号相符合的输人设备按命令进行一系列内部操作;
- 在T3上升沿到来之前将CPU所需的数据送到数据总线上,在T3上升沿准备发出数据;
- T3时钟周期从模块提供数据、CPU将数据线上的信息送到其内部寄存器中;
- 在T4上升沿撤销读命令,输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动;
- T4时钟周期主模块撤销读命令,从模块撤销数据。
输出通常是指主模块向从模块发送数据。
过程:
- 在T1上升沿准备发出地址信息;
- T1时钟周期主模块发地址;
- 在T1下降沿到来之前将数据送到数据总线上,在T1下降沿准备发出数据;
- T1下降沿主模块提供数据;
- 在T2上升沿准备发出读命令;
- T2时钟周期主模块发出写命令,从模块接收到命令后,必须在规定时间内将数据总线上的数据写到地址总线所指明的单元中。
- 在T4上升沿撤销读命令,输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动;
- T4时钟周期主模块撤销写命令和数据等信号。
2.2.2 异步通信
采用应答方式(又称握手方式),没有公共时钟标准
说明:主设备发送请求,从设备给出应答信号,再传输信息。【当主模块发出请求(Request)信号时,一直等待从模块反馈回来“响应“(Ac-knowledge)信号后,才开始通信。需要主、从模块之间增加两条应答线(握手交互信号线 Handshaking)。】
应答方式:
-
不互锁
主模块发出请求信号后, 确认从模块已收到请求信号后并发送应答信号, 主模块接收到应答信号撤销其请求信号, 从模块撤销其应答信号;
过程中,主模块无论是否接收到应答信号,经过一段时间(这段时间的设置对不同设备而言是不同的)之后,主模块都会撤销其请求信号;从模块无论主模块是否已收到应答信号, 经过一段时间都会撤销其应答信号。
-
半互锁
主模块发出请求信号后, 确认从模块已收到请求信号后并发送应答信号, 主模块接收到应答信号撤销其请求信号, 从模块撤销其应答信号;
过程中,主模块如果接收不到应答信号,或一直保持;从模块发送应答信号之后无论主模块是否已收到应答信号, 经过一段时间都会撤销其应答信号。
-
全互锁
主模块发出请求信号后, 确认从模块已收到请求信号后并发送应答信号, 主模块接收到应答信号撤销其请求信号, 从模块撤销其应答信号;
过程中,主模块接收到应答信号才能撤销请求信号;只有主模块请求信号被撤销后,从模块才能撤销其应答信号。
2.2.3 半同步通信
同步、异步结合
同步:发送方 用系统时钟前沿发信号;接收方 用系统时钟后沿判断、识别
异步:允许不同速度的模块和谐工作,增加一条”等待“响应信号 ( WAIT ‾ \overline{\text{WAIT}} WAIT)- 等待信号是从模块给出的
主从模块速度不匹配,主模块发送读命令后,从模块还没来得及将数据放到数据总线上,这时候就需要从模块发出 WAIT ‾ \overline{\text{WAIT}} WAIT信号
过程:
- T1 主模块发出地址信息。
- T2 主模块发出读命令。
- Tw 当 WAIT ‾ \overline{\text{WAIT}} WAIT为低电平时,进人等待,Tw 的宽度与T的宽度一致。
- …(直到 WAIT ‾ \overline{\text{WAIT}} WAIT为高电平,把此刻的下一个时钟周期当作正常周期)
- T3 从模块提供数据
- T4 主模块撤销读命令,从模块撤销数据。
上述三种通信的共同点(输入数据)
- 主模块发地址、命令 占用总线
- 从模块准备数据 不占用总线 总线空闲
- 从模块向主模块发数据 占用总线
2.2.4 分离式通信
分成两个子周期:
- 子周期1 —— 主模块申请占用总线,使用完后即放弃总线的使用权
- 子周期2 —— 从模块申请占用总线,将各种信息送到总线上
特点:
- 各模块有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各模块准备数据时,不占用总线
- 总线被占用时,无空闲
参考:
教材:计算机组成原理 (唐朔飞).pdf
视频:https://www.bilibili.com/video/BV1wU4y1674L/?spm_id_from=333.337.search-card.all.click&vd_source=a89593e8d33b31a56b894ca9cad33d33
https://www.bilibili.com/video/BV1t4411e7LH?p=15&vd_source=a89593e8d33b31a56b894ca9cad33d33