# 总线概述
一根总线由多根信号线组成,所有硬件部件都可以通过这根总线传递数据,可并行发送多个 bit 数据。同一时刻只能有一个部件发送数据,但是可有多个部件接受数据
总线的定义
总线是一组能为多个部件分时共享的公共信息传送线路
为什么要用总线:
- 早期计算机外部设备少时大多采用分散连接方式,不易实现随时增减外部设备
- 为了更好地解决 I/O 设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接
共享:共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息可以通过这组线路分时共享
分时:分时是指同一时刻只允许一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息
总线的特性
- 机械特性:尺寸、形状、管脚数、排列顺序
- 电气特性:传输方向和有效的电平范围
- 功能特性:每根传输线的功能 (地址、数据、控制)
- 时间特性:信号的时序关系
总线的分类
按数据传输方式:
- 串行总线:数据传输中,每次只能传一位数据 (例如:USB)
- 优点:只需要一条传输线,成本低廉,广泛应用于长距离传输;应用与计算机内部时,可以节省布线空间
- 缺点:在数据发送和接收的时候要进行拆卸和装配,要考虑串行 - 并行转换的问题
- 并行总线:数据传输中,每次可以传多位数据 (例如:数据总线)
- 优点:总线的逻辑时序比较简单,电路实现比较容易
- 缺点:信号线数量多,占用更多布线空间;远距离传输成本高昂;由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作效率
- 串行总线:数据传输中,每次只能传一位数据 (例如:USB)
按总线功能 (连接的部件)
片内总线
- 片内总线是芯片内部的总线。
- 它是 CPU 芯片内部寄存器与寄存器之间、寄存器与 ALU 之间的公共连接线
系统总线
- 系统总线是计算机系统内各功能部件 (CPU、主存、I/O 接口) 之间相互连接的总线
- 按照系统总线传输信息内容的不同,又可分为:数据总线 (DB)、地址总线 (AB) 和控制总线 (CB)
- 数据总线:传输各功能部件之间的数据信息,包括指令和操作数;位数 (根数) 与机器字长、存储字长有关;双向
- 地址总线:传输地址信息,包括主存单元或 I/O 端口的地址;位数 (根数) 与主存地址空间大小及设备数量有关;单向
- 控制总线:一根控制线传输一个信号;有出:CPU 送出的控制命令;有入:主存 (或外设) 返回 CPU 的反馈信号
- 数据通路表示的是数据流经的路径、数据总线是承载的媒介
通信总线
- 通信总线是用于计算系统之间或计算机系统与其他系统 (如远程通信设备、测试设备) 之间信息传送的总线,通信总线也称为外部总线
按时序控制方式
- 同步总线
- 异步总线
系统总线的结构
单总线结构
- 结构:CPU、主存、I/O 设备 (通过 I/O 接口) 都连接在一组总线上,允许 I/O 设备之间,I/O 设备和 CPU 之间或 I/O 设备与主存之间直接交换信息
- 优点:结构简单。成本低,易于接入新的设备
- 缺点:带宽低、负载重,多个部件只能争用唯一的总线,且不支持并发传送的操作
双总线结构
- 结构:双总线结构有两条总线,一条是主存总线,用于 CPU、主存和通道之间进行数据传送;另一条是 I/O 总线,用于多个外部设备与通道之间进行数据传送
- 通道式具有特殊功能的处理器,能对 I/O 设备进行统一管理。通道程序放在主存中
- 支持突发 (猝发) 传送:送出一个地址,收到多个地址连续的数据
- 优点:将较低速的 I/O 设备从单总线上分离出来,实现存储器总线和 I/O 总线分离
- 缺点:需要增加通道等硬件设备
三总线结构
- 结构:三总线结构是计算机系统各个部件之间采用 3 条各自独立的总线来构成信息通路这 3 条总线分别为主存总线、I/O 总线和直接内存访问 DMA 总线
- 优点:提高了 I/O 设备的性能、使其更快地响应命令,提高系统吞吐量
- 缺点:系统工作效率较低
四总线结构
桥接器:用于连接不同的总线,具有数据缓冲、转换和控制功能
靠近 CPU 的总线速度较快
每级总线的设计遵循总线标准
# 总线的性能指标
总线的传输周期 (总线周期)
- 一次总线操作所需的时间 (包括申请阶段、寻址阶段、传输阶段和结束阶段),通常由若干个总线时钟周期构成
总线时钟周期
- 即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制
大多数情况下,一个总线周期包含多个总线时钟周期
有的时候,一个总线周期就是一个总线时钟周期
有的时候,一个总线时钟周期可能包含多个总线周期
现在计算机中,总线的时钟周期也有可能是由桥接器提供
- 总线的工作频率
- 总线上各个操作的频率,为总线周期的倒数
- 若总线周期 = N 个时钟周期,则总线的工作频率 = 时钟频率 / N
- 实际上指一秒内传送几次数据
- 总线的时钟频率
- 即机器的时钟频率,为时钟周期的倒数
- 若时钟周期为 T,则时钟频率为 1/T
- 实际上指一秒内有多个时钟周期
- 总线宽度
- 又称总线位宽,它是总线上同时能传输的数据位数,通常是指数据总线的根数,如 32 根称为 32 位总线
- 总线带宽
- 可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节 / 秒表示
总线带宽 = 总线工作频率 * 总线宽度 (bit/s)= 总线工作频率 *(总线宽度 / 8)(B/s)= 总线宽度 / 总线周期
注:总线带宽是指总线本身所能达到的最高传输速率,在计算机实际的有效数据传输率时,要用实际传输的数据量除以耗时。
工作频率相同时,串行总线传输速度比并行总线慢
并行总线的工作频率无法持续提高,而串行总线可以通过不断提高工作频率来提高传输速度,最终超过并行总线
- 总线复用
- 总线复用是指一种信号线在不同的时间传输不同的信息。可以使用较少的线传输更多的信息。从而节省了空间和成本
- 信号线数
- 地址总线、数据总线和控制总线 3 种总线的总和称为信号线数
# 总线仲裁 (简单了解,不考)
将总线上所连接的各类设备按其对总线有无控制功能分为:
- 主设备:获得总线控制权的设备
- 从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令
为什么要仲裁
- 总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题
总线仲裁的定义:
- 多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁
总线仲裁分类:
- 集中仲裁方式:链式查询方式、计数器定时查询方式、独立请求方式
- 分布仲裁方式:
集中仲裁方式
工作流程:
- 主设备发出请求信号
- 若多个主设备同时要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级确定哪个主设备能使用总线
- 获得总线使用权的主设备开始传送数据
链式查询
有三根线,总线忙 BS,总线允许 BG,总线请求 BR
优先级:离总线控制越近的部件,其优先级越高;离总线控制器远的部件,其优先级越低
优点:链式查询方式优先级固定。只需很少几根控制线就能按一定优先级次序实现总线控制,结构简单,扩充容易
缺点:对硬件电路的故障敏感,并且优先级不能改变。当优先级高的部件频繁使用总线时,会使优先级低的部件长时间不能使用总线
计数器查询方式
结构特点:用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应线 BG;它仍公用一根总线请求线
当总线控制器收到总线请求信号,判断总线空闲时,计数器开始计数,计数值通过设备地址线发向各个部件
当地址线上的计数器值与请求使用总线设备的地址一致时,该设备获得总线控制权。同时,中止计数器的计数及查询
优点:
- 计数初始值可以改变优先次序
- 计数每次从 "0" 开始,设备的优先级就按顺序排列,固定不变
- 计数从上一次的终点开始,此时设备使用总线的优先级相等
- 计数器的初值还可以由程序设置
- 对电路的故障没有链式敏感
缺点:
- 增加了控制线数
- 若设备有 n 个,则需 ceil (log2n)+2 条控制线
- 控制相对比链式查询相对复杂
独立请求方式
结构特点:每一个设备均有一对总线请求线 BRi 和总线允许线 BGi
当总线上的部件需要使用总线时,经各自的总线请求线发送总线请求线发送总线请求信号,在总线控制器中排队
当总线控制器按一定的优先次序决定批准某个部件的请求时,则给该部件发送总线响应信号
优点:
- 响应速度快,总线允许信号 BG 直接从控制器发出到有关设备,不必在设备间传递或者查询
- 对优先次序的控制相当灵活
缺点:
- 控制线数量多
- 若设备为 n 个,则需要 2n+1 条控制线,其中 + 1 为 BS 线,用于设备向总线控制部件反馈已经是否正在使用总线
- 总线的控制逻辑更加复杂
分布式仲裁方式
特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线
当设备有总线请求时,它们就把各自唯一的仲裁号发到共享的仲裁总线上;
每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较
如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号
最后,获胜者的仲裁号保留在仲裁总线上