计算机组织结构(十一) 总线

📚 文档目录 合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式

总线

芯片内部总线

连接芯片的各个部分

例如连接寄存器, ALU和 CPU 的其他部分

通信总线

连接主机和 I/O 设备或者连接不同的计算机系统

系统总线

连接 CPU, 主存, I/O 控制器和其他的功能设备

内容

总线可以分为三种功能组

  • 数据线: 在系统模块之间移动数据. 数据线的数量决定了一次能能够传送的数据的最大容量
  • 地址线: 指定数据线上的数据的来源或者去向. 地址线也用于 I/O 端口的寻址. 地址线的数量决定了寻址空间的大小
  • 控制线: 控制对数据和地址线路的访问和使用. 各种控制信号:
    • 时钟: 用于总线同步
    • 总线请求(Bus Request): 表示模块需要获得对总线的控制
    • 总线允许(Bus Grant): 表示发出请求的模块已经被允许控制总线
    • 中断请求: 表示某个中断尚未被处理
    • 中断响应: 未决的中断请求被响应
    • 存储器写: 引起总线上的数据写入被寻址的单元
    • 存储器读: 使所寻址的单元的数据放在总线上
    • I/O 读: 从 I/O 端口读取数据到总线
    • I/O 写: 将数据从总线写入到 I/O 端口

设计要素

总线类型

专用:

永久地分配给一个功能或者计算机部件的物理子集

优势:高吞吐率, 因为有更少的总线竞争

缺点: 增加了尺寸和成本

复用:

多种用途使用相同的线路

优势: 更少的线路, 节省了空间和成本

缺点: 每个模块中需要更加复杂的电路, 可能会降低共享的性能

仲裁

总线可以被多个设备监听, 但只能被一个设备发送信息

总线仲裁: 当多个设备要与总线通信的时候, 用某种策略选择一台设备

平衡:

  • 优先级: 优先级高的设备应该先得到服务
  • 公平性: 优先级最低的设备不可能永远被推迟

集中式:

一个被称为总线控制器的单独的硬件设备, 负责位总线分配时间

  • 菊花链 所有的设备串行连接, 许可从最高优先级设备传到最低优先级设备 若一个设备收到授权, 并且有总线请求, 设置总线忙并且许可不再被传递. 优势: 确定优先级很容易, 添加设备很灵活 劣势:无法兼顾公平性, 对设备故障敏感, 限制了总线速度
  • 计数器查询 移除了总线许可线, 使用设备 ID 线. 若总线不繁忙, 仲裁器将通过设备 ID 线发送计数, 若设备 ID 线上的 ID 与一设备 ID 相同, 同时该设备发出请求, 则将总线设为忙, 同时停止计数 优势:对电路故障不敏感, 可以通过灵活地报数来兼顾公平和优先性 劣势:增加了 ID 线, 需要解码和比较 ID 信号 ps: ID 线是一组而不是一根
  • 独立请求 每个设备都有它的总线请求和总线许可线 当一个设备请求总线时, 它通过总线请求先向总线仲裁器发送请求信号.由仲裁器决定哪些设备可以使用总线. 确定策略: 固定优先级, 菊花链, LRU, FIFO 优势:响应快,无等待, 优先级很灵活 劣势:控制逻辑复杂, 更多的控制线

分布式:

没有中央控制器, 而是在每个模块中包含访问控制逻辑, 这些模块共同作用, 分享总线.

  • 自举式 固定优先级 每个设备在它的总线请求线上发送请求, 最低优先级的设备没有请求线 每个设备独立决定它是否拥有最高优先级
  • 碰撞检测 当一个设备想要使用总线的时候, 检查总线是否为忙, 如果不忙, 使用总线. 若发生碰撞(冲突),即两个设备发现总线不忙, 但是它们同时发起请求. 在数据传输时, 设备会监听总线, 检查是否存在碰撞, 如碰撞发生了, 所有使用总线的设备将停止数据传输, 并在随机持续一段时间后再次请求总线.
时序

总线上协调时间的方式: 决定每个总线事务的开始和结束时间

  • 同步时序: 总线上的事件的发生由时钟决定 总线事务: 地址 + 数据 + 数据 +…+ 数据 优势:容易实现 , 测试 劣势: 所有的设备共享时钟; 无法避免时钟漂移的影响

CLK 时钟, BReq 总线请求, BG 总线许可

  • 异步时序: 总线上一个事件的发生遵循并取决于前一个事件的发生 总线事务: 地址 + 数据 + 数据 +…+ 数据 使用 握手协议 优势: 对速度不同的各种设备都很灵活 劣势: 对噪声敏感; 接口逻辑复杂

握手的样例:

  • 半同步时序: 结合同步时序(时钟)和异步时序(握手) 为了减小噪声的影响, 在异步时序中使用时钟.时钟上升沿的就绪信号和应答信号都是有效的. 额外加一条等待线, 以协调不同速度的设备, 比如图中在第三个时钟周期时, Data1 尚未准备完毕, 所以继续等待直到 Data1 准备好, 释放等待线.
  • 分割事务: 分割总线事务: 当设备准备好数据时释放总线 将一个总线事务分割成两个过程 优势:提高了总线利用率 缺点:增加了每个总线事务的持续时间和系统复杂性
总线带宽和数据传输率

总线带宽:总线的最大数据传输率

  • 不考虑总线仲裁, 地址传送

数据传输率:

  • 考虑地址传输

总线宽度:组成总线的总的线路数

  • 数据线越宽, 一次传输的位数就越大
  • 地址总线越宽, 可寻址的范围也就越大
数据传输类型