系统总线
总线的基本概念
为什么需要总线
- 计算机系统部件之间的连接方式:
- 分散连接:各个部件之间通过单独的连线连接
- 缺点:
- 复杂
- 拓展性差
- 延迟高且影响工作效率:IO与存储器交换信息时,需要经过运算器,导致运算器停止运算,影响效率
- 缺点:
- 总线连接:各个部件连接到一组公共信息传输线上
- 优点:
- 减少各个部件之间的连接线
- 方便系统的构成、扩充或更新
- 各个部件与总线采用挂接的形式,增加一个部件或去掉一个部件对于整个系统的结构没有影响
- 总线技术使计算机的设计、生产走向标准化
- 优点:
- 分散连接:各个部件之间通过单独的连线连接
总线
- 总线:总线是连接各个部件的信息传输线
- 是各个部件共享的传输介质
- 总线实际上是由许多传输线或通路组成,每一条线可以一位一位的传输二进制代码,一串二进制代码可以在一段时间内主义传输完成
- 总线上信息传送的方式:
- 串行:
- 并行:
- 总线的功能:沟通计算机各部件信息传递,并使不同产商提供的产品能够互相组合
- 总线标准:是系统与各个模块、模块与模块之间的一个互联的标准界面
- 规范:
- 机械结构规范
- 功能规范
- 电气规范
- 规范:
总线的组成与性能指标
- 性能指标:
- 总线周期:一次总线操作所需的时间
- 总线工作频率:协调总线上各种操作的时钟频率
- 总线宽度:数据线的根数
- 总线带宽:每秒传输的最大字节数
- \(总线带宽=(总线宽度/8)\times 总线工作频率\)
- 时钟同步/异步
- 总线复用:地址线与数据线复用
- 信号线数:地址线、数据线和控制线的综合
- 总线控制方式:突发工作、自动配置、仲裁方式
- 其他:
- 负载能力
- 电源电压
- 总线宽度拓展性
总线结构计算机举例
- 以CPU为中心的双总线结构
- 缺点:当I/O设备与主存交换信息时,会占用CPU,影响CPU的工作效率
- 单总线结构框图
- 当I/O设备与主存交换信息时,原则上不影响CPU的工作,CPU依旧可以处理不访问主存或I/O设备的操作
- 缺点:只有一组总线,当某一时刻各个部件都需要占用总线时,发生冲突
- 处理方法:设置[[系统总线#总线判优控制|总线判优控制]],让各个部件按照优先级的高低来占用总线
- 以存储器为中心的双总线结构
- 在单总线的基础上添加一条CPU与主存之间的总线
- 速度高,仅供主存与CPU之间传输信息
- 优点:
- 提高了传输效率
- 减轻了系统总线的负担
- 保留了I/O设备与存储器交换信息时不经过CPU
现代的计算机多数综合多种总线结构
- 在单总线的基础上添加一条CPU与主存之间的总线
总线的分类
总线的分类根据不同的角度可以有不同的分类方法。 按照数据传送方式,可以分为并行传输总线和串行传输总线。其中并行传输总线又可以按照传输数据的宽度来进行分类 按照总线的使用范围划分,则可以分为计算机总线、测控总线、网络通信总线。 本章主要 #计组重点 通过连接部件不同,分为三类:片内总线、系统总线、通信总线
片内总线
- 片内总线指芯片内部的总线
- CPU芯片内部
- 寄存器与寄存器之间
- 寄存器与算数逻辑单元ALU之间
系统总线
- 系统总线指 #计组重点 CPU、主存、I/O设备等部件之间的信息传输线
由于这些部件通常都安放在主板上,所以有称为板级总线
-
计组重点 系统总线按照总线上传输的信息不同,又可以分为三类:
- 数据总线
- 地址总线
- 控制总线
数据总线
- 数据总线用来传输各个功能部件之间的数据信息
- 是双向传输总线
- 其位数与机器字长、存储字长有关,称为数据总线宽度
- 是衡量系统性能的一个重要参数
地址总线
- 地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址
- 由CPU输出,单向传输
- 地址总线上的代码是用来指明CPU欲访问的存储单元或I/O端口的地址
- 地址线的位数与存储单元的个数有关
- 地址线为20根,则对应的存储单元的个数为\(2^{20}\)
控制总线
由于数据总线、地址总线都是被挂载总线上的所有部件共享的,如何使各个部件能在不同时刻占有总线的使用权,需要依靠控制总线来完成 - 控制总线是用来发出各种控制信号的传输线 - 传输是单向的 - 存储器读写命令或I/O设备读写命令都是由CPU发出的 - 但是,对于控制总线总体来说,也可以认为是双向的 - 当某设备准备就绪时,便向CPU发送中断请求;当某部件需要获得总线使用权时,也需要向CPU发出总线请求 - 控制总线还能期待监视部件状态的作用 - 可以用于查询设备处于什么状态 常见的控制信号: - 时钟:用来同步各种操作 - 复位:初始化所有部件 - 总线请求:表示某部件需要获得总线的使用权 ...
通信总线
- 用于计算机系统之间或计算机系统与其他系统之间的通信
[!串行通信与并行通信] 串行通信:指数据在单条1位宽的传输线上,一位一位的按顺序分时发送 并行通信:值数据在多条并行1位宽的传输线上,同时由源传输到目的地
总线特征及性能指标
- 总线结构的物理实现:
- CPU、主存、I/O这些插板通过插头与水平方向总线插槽连接
为了保证机械上的可靠连接,必须规定其机械特征; 为了确保电气上正确连接,必须规定其电气特性; 为保证其正确的连接不同部件,还需要规定其功能特性和时间特性
- CPU、主存、I/O这些插板通过插头与水平方向总线插槽连接
总线特征
- 机械特性:指总线在机械连接方式上的一些性能
- 如插头与插座使用的标准
- 电气特性:每根传输线上的信号的传输方向和有效的电平方位
- 功能特性:每一根传输线的功能(地址线、数据线、控制线)
- 时间特性:信号的时序关系
总线的性能指标
- 总线周期:一次总线操作所需要的时间
- 总线工作频率:协调总线上各种操作的时钟频率
-
计组重点 总线宽度:数据线的根数(单次)
-
计组重点 总线带宽:每秒传输的最大字节数
- \(\text{总线带宽} =\frac{\text{总线宽度}}{8}\times \text{总线工作频率}\)
- 时钟同步/异步:总线上的数据与时钟同步(异步)称为同步(异步)总线
-
计组重点 总线复用:地址线与数据线复用(一条信号线上分时传送两种信号)
- 为了提高总线的利用率,优化设计,将地址总线和数据总线共用一组物理线路
- 信号线数:地址线、数据线和控制线的数量的总和
- 总线控制方式:突发工作、自动配置、仲裁方式、逻辑方式、计数方式
- 其他指标:负载能力、电源电压、总线宽度拓展性
总线结构
单总线结构
- 将CPU、主存、I/O设备都挂载在一组总线上 - 简单、易于扩充 - 易于造成计算机系统的瓶颈
多总线结构
- 双总线结构:
- 特点:将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构
- 其中的通道是一个具有特殊功能的处理器,用来管理I/O设备
- 三总线结构
- DMA总在线用于高速I/O设备与主存之间直接交换信息
- 在三总线结构中,任一时刻只能使用一种总线
- 主存总线与DMA总线不能同时对主存进行存取
- 另一种三总线结构:
- 四总线结构:
#计组重点 总线控制
由于总线上连接着多个部件,什么时候由哪个部件发送信息,如何给信息传送定时,如何防止信息丢失,如何避免多个部件同时发送,如何规定接收信息的部件等一系列问题都需要总线控制器统一管理。其主要包括判优控制和通信控制。 每个总线部件一般都配有三态门电路,以避免总线访问冲突,当某个部件不占用总线时,由该电路禁止向总线输出信息。
总线判优控制
-
计组重点 基本概念:
- 当总线上的各个主设备同时要求占用总线时,通过总线控制器,按一定的优先等级顺序确定某个主设备可以占用总线
- 集中式:将控制逻辑坐在一个专门的总线控制器或总线裁决器中,通过将所有的总线请求集中起来利用一个特定的裁决算法进行裁决
- 分布式:没有专门的总线控制器,其控制逻辑分散在各个部件或设备中
- 需要总线判优控制的原因:总线传输的特点是在某一时刻,只允许一个部件向总线发送信息,如果有两个以上的部件同时向总线发送信息,会导致信号冲突,传输无效,因此,需要判优来解决
- 裁决方案应在一下两个因素间进行平衡:
- 等级性(Priority):具有高优先级的设备应该优先被服务
- 公平性(Fairness):及时具有最低优先权的设备也不能永远得不到总线使用权
链式查询方式
- 查询过程: 1. 查询信号先从优先级高的设备依次向最低优先权的设备串行连接 2. 如果到达的设备有总线请求,则查询信号就不在往下传递 3. 在该设备上建立总线忙Busy信号,表示其已经获得了总线的使用权 - #计组重点 特点: - 线数少,设备扩充容易 - 请求、忙、允许各一根 - 离总线控制器最近的设备具有最高的优先级 - 优先级低的设备难以获得请求 - 对电路故障敏感 - 菊花链的使用限制了总线速度
计数器定时查询
- 相比链式查询方式,多了一组设备地址线,少了一根BG线 - 请求方式: 1. 总线控制部件接到由BR送来的总线请求信号后,在总线未被使用的情况下,总线控制部件中的计数器开始计数 2. 通过设备地址线,向各个设备发出一组地址信号 3. 当某个请求占用总线的设备地址与计数值一致时,获得总线使用权,此时停止计数查询 - 理解:总线控制部件在空闲的情况下,收到了设备的总线请求信号后,去寻找发出总线请求信号的设备 - #计组重点 特点: - 计数从0开始:设备优先级与链式优先级相同 - 计数器从上一次的终止点开始:循环优先级,各个部件优先级相等 - 计数器的初始值也可以由程序设置 - 控制相对复杂
独立请求方式
- 每一台设备都有一对BR、BG线 - 请求过程: 1. 当设备要求使用总线时,便发出该设备的请求信号 2. 总线控制部件中有一排队电路,可以根据优先次序确定响应哪一台设备的请求 - #计组重点 特点: - 响应速度快 - 优先次序控制灵活 - 控制线数量多,总线控制更加复杂 - #计组重点 代价:增加控制线数
总线控制的复杂性(n为请求设备的数量): 链式查询中仅用2根线确定总线使用权属于哪个设备 计数器查询中大致使用\(\log_2{n}\)根线(要让设备地址线能表示所有的设备地址,需要\(\log_2{n}\)条线) 独立请求方式则需要\(2n\)根线
自举分布式裁决
- 优先级固定,各设备独立决定自己是否是最高优先级请求者 - 需请求总线的设备在各自对应的总线请求线上送出请求信号 - 在总线裁决期间每个设备将比自己优先级高的请求线上的信号取回分析 1. 若有总线请求信号,则本设备不能立即使用总线 2. 若没有,则可以立即使用总线,并通过总线忙信号阻止其他设备使用总线
冲突检测方式裁决
- 请求过程:
- 当某个设备要使用总线时,先检查是否有其他设备在使用总线
- 如果没有,则置其忙,然后使用总线
- 若两个设备同时检测到总线空闲,则可能会同时使用总线,此时发生冲突
- 一个设备在传输过程中,它会帧听总线以检测是否发生了冲突
- 当冲突发生时,两个设备都会停止传输,延迟一个随机时间后再重新使用总线
总线通信控制
- 在争夺总线使用权时,应按各部件的优先等级来解决
- 在通信时间上,应按分时方式来处理
- 即以获得总线使用权的先后顺序分时占用总线
- 即哪一个部件获得使用权,此刻就由它来传送,下一部件获得使用权,接着下一时刻传送
- 总线是众多部件共享的,在传送时间上只能用分时的方式来解决,所以通信双方必须按某种约定的方式进行通信
-
计组重点 一次总线操作的时间称为总线周期:
- 申请分配阶段:由需要使用总线的主模块提出申请,经总线仲裁机构决定下一周期的总线使用权授予某一申请者
- 寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块
- 传数阶段:主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块
- 结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权
[!note] 主模块与从模块: 主模块:对总线有控制权的模块 从模块:被主模块访问的模块,只能相应从主模块发来的各种总线命令信号
- 四种通信方式:
同步通信
- 同步式数据输入传输:
- \(T_1\)上升沿之前:
- ①:准备发出地址信息
- \(T_2\)上升沿之前:
- ②:发出读命令
- \(T_2\)周期间:
- ②~③:与地址信号相符合的输入设备按命令进行一系列内部操作,且在\(T_3\)上升沿之前将CPU所需要的数据送到数据总线上
- \(T_3\)周期间:
- ③~④:将数据线上的信息送到其内部存储器中
- \(T_4\)上升沿之前:
- ⑤:撤销读命令,输入设备不在向数据总线上传送数据,传销它对数据总线的驱动
- ⑥:撤销地址信息
- \(T_1\)上升沿之前:
- 同步式数据输出传输:
-
计组重点 特点:通信双方由统一时钟控制数据的传输
- 适用于总线长度较短,总线上各个部件存取时间比较一致的
- 优缺点:
- 优点:
- 规定明确、统一,模块间的配合简单一致
- 控制逻辑少而速度快
-
计组重点 缺点:
- 主从模块时间配合属于强制性同步
- 对于所有从模块用同一时限,则必须按照最慢的部件来设计公共时钟,影响了总线的工作效率,有局限性,缺乏灵活性
- 优点:
异步通信
- 非时钟定时,没有公共的时钟标准
- 采用应答方式,允许各个模块速度不一致
- 主模块发出请求信号时,一直等待从模块反馈的应答信号,才开始通信
- 需要主从模块之间增加两条应答线
- 分为不互锁、半互锁、全互锁
- 不互锁:主模块发出信号后,不必等待从模块的回复,自动开始数据传输
- 半互锁:主模块发出信号后,等待从模块的回复后,再开始数据传输
- 全互锁:主模块发出信号后,等待从模块的回复,从模块再等待收到主模块的确认后,才开始数据传输
-
计组重点 特点:通信双方没有公共时钟标准,采用应答方式通信
- 适用于总线上各个部件速度不一致的
- 优缺点:
- 优点:
- 灵活,可以挂接各种具有不同工作速度的设备
- 缺点:
- 对噪声较敏感
- 接口逻辑复杂
- 优点:
-
计组重点 异步通信中的一些指标:
- 异步串行通信使用波特率来衡量数据传输率:
- 波特率:每秒钟通过信道传输的码元数
- 比特率:每秒钟通过信道传输的有效数据位数(信息量)
- 异步串行通信使用波特率来衡量数据传输率:
半同步通信
- 半同步通信:同步、异步结合
- 同步:发送方用系统时钟前沿发信号;接收方用系统时钟后沿判断、识别
- 异步:允许不同速度的模块和谐工作(增加一条“等待”相应信号\(\bar{WAIT}\))
- 以输入数据为例:
- \(T_1\):主模块发地址
- \(T_2\):主模块发命令
- \(T_\omega\):若\(\bar{WAIT}\)为低电平,等待一个\(T\)
- \(T_\omega\):若\(\bar{WAIT}\)为低电平,等待一个\(T\)
- .......
- \(T_3\):从模块提供数据
- \(T_4\):从模块撤销数据,主模块撤销命令
以上三种通信的共同点: - 主设备发地址、命令:占用总线 - 从设备准备数据:不占用总线(总线空闲) - 从设备向主设备发送数据:占用总线 其中,从设备准备数据的时间较长(几十毫秒),导致了总线的利用率低,在一个周期的通讯过程中,部分时间,总线处于闲置状态,因此,使用分离式通信来解决,充分挖掘系统总线的每瞬间潜力
分离式通信
- 一个总线传输周期:
- 子周期1:主设备申请占用总线,使用完毕后,放弃总线的使用权;此时其他设备可以使用总线
- 子周期2:从设备准备好数据后,申请占用总线,将各种信息送至总线上,送至主设备
- 特点:
- 各设备有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各设备准备数据时,不占用总线
- 总线被占用时,无空闲
- 充分发挥了总线的有效占用
常见的总线标准
PCI(Peripheral Component Interconnect)
- 高性能:支持猝发工作方式
猝发式数据传输:一种总线传输方式,即在一个总线周期传输存储地址连续多个消息
- 不依附于某个具体的处理器
- 良好的兼容性
- 支持即插即用
- 支持多设备
- 具有和处理器和存储器子系统完全并行操作的能力
- 奇偶校验
- 支持两种电压
- 可扩充性和软件兼容性好
- 采用多路复用技术,减少了总线引脚的个数
PCI-E(PCI-Express)
- 点对点连接:每个设备都有自己的专用链接,不同享总线带宽
- 串行连接:更高的工作频率
- 双向传输以及全双工模式
全双工模式:通信双方能在同一时刻进行发送和接收的操作
USB(Universal Serial Bus)
- 即插即用(Plug and Play)
- 强连接能力和可扩充性:可以通过USB集线器链式连接127个外设
- 标准统一
- 高速传输
- 连接电缆轻巧,可为低压外设供电
- 生命力强:不具有专利版权的工业标准