总线概念

计算机总线:

  • 共享的信息通道
  • 用于连接计算机多个子系统(部件)
  • 总线也是连接复杂巨系统的一种基本工具

优势:

  • 解决外部设备“多而杂”的问题:
    • 容易增添新的设备
    • 使用相同总线标准的外设容易在不同计算机间兼容
  • 降低成本:
    • 总线可供多个设备共享
  • 简化设计

不足:

  • 容易成为信息通道的瓶颈
    • 总线带宽限制了整条总线的吞吐量
  • 总线的最高速度主要由下列因素决定:
    • 总线长度
    • 总线负载的设备数
    • 负载设备的特性
    • 延迟是否差异较大?
    • 数据传输率差异较大?

总线分类

单总线计算机

  • 使用一条总线:
    • 处理器和主存储器之间通信
    • 主存储器和输入/输出设备之间通信
  • 优点:简单、成本低
  • 缺点:速度慢,总线将成为系统瓶颈
  • 应用: IBM PC – ISA EISA、PDP-1

双总线系统

  • 输入/输出总线通过适配器和处理器-主存总线相连:
    • 处理器-主存总线:主要用于处理器和主存储器之间的通信
    • 输入/输出总线:为输入/输出设备提供信息
  • 应用举例:Apple Macintosh II
    • NuBus:处理器、主存和选定的少量 I/O 设备
    • SCSI 总线:其余 I/O 设备

三总线系统

  • 主板总线连接到处理器-主存总线
    • 处理器-主存总线主要用于处理器和主存之间数据交换
    • I/O 总线连接到主板总线
  • 优点:大大减少处理器-主存总线负载
  • 例:现代 PC 基本采用的结构

总线组成

总线类型

  • 处理器-主存总线(专用)

    • 传输距离短、速度高
    • 主存储器专用:保证主存储器-处理器之间的高带宽
    • 直接和处理器连接
    • 优化处理使之适应 Cache 块传送
  • 输入/输出总线(行业标准)

    • 通常距离较长,速度较慢
    • 需要适应多种输入/输出设备
    • 和处理器-主存总线通过桥连接(或通过主板总线)
  • 主板总线(行业标准或专门设计)

    • 主板:连接各部件器件的底盘
    • 应允许处理器、主存储器和输入/输出设备互连
    • 应有价格优势:所有组件连接在一条总线上

总线的一般组成

控制线:

  • 总线请求信号及数据接收信号
  • 指明数据线上传输信息的类型

数据线

  • 在源设备和目标设备间传送信息
  • 数据和地址
  • 复杂的命令

总线标准

  • 设备用于人机交互,总线定义了交互的通信协议/标准:
    • PCI
    • EISA
    • SCSI:Small Computer System Interface
    • USB:Universal Serial Bus
    • Bluetooth…

  • 标准十分重要:
    • 不同公司设计的外部设备,应该能在同一计算机上安 装使用。
    • 不同公司的计算机也应该可以使用某一外部设备。
    • 外部设备的通讯速度差异很大
    • 标准是抽象的设计
    • 标准可以影响性价比, 可靠性等

总线结构

相关设备

  • 总线主设备:有能力控制总线,发起总线事务
  • 总线从设备:响应主设备请求
  • 总线通信协议:定义总线传输中的事件顺序和时序要求
  • 异步总线传输:控制信号(请求,应答)作为总控信号
  • 同步总线传输:使用共同的时钟信号

总线事务包括两个部分:

  1. 发起命令(和地址)
  2. 传输数据

主设备是总线事务的发起者:发出命令(和地址) 从设备是总线事务的响应者:若主设备发出的是读命令,则将数据发送到主设备;否则,接收主设备发来的写入数据

设计总线的关键问题

总线仲裁

  • 总线设计中重要问题之一:如何为需要使用总线的设备保留总线?

  • 可通过主—从设备的安排来避免冲突:

    • 只允许总线主设备发起总线事务,控制所有总线请求
    • 从设备响应主设备的读写请求
    • 最简单的设计:
      • 处理器作为唯一的总线主设备
      • 所有总线请求均由处理器控制
      • 主要缺点:处理器被卷入到每一个总线事务中
    • 多个总线主设备
      • 总线仲裁的基本要求:
      • 某总线主设备使用总线前应发出总线请求
      • 只有得到授权后,主设备才能使用总线
      • 使用完毕后,主设备应通知仲裁器
  • 总线仲裁器在以下两方面取得平衡:

    • 优先权:优先级高的设备应该得到优先服务
    • 公平性:最低优先级的设备也不能永远被排除在总线服务之外

总线仲裁方式:

  • 集中仲裁和分布仲裁
    • 集中仲裁: 例如,交通警察在路口指挥交通
      • 菊链仲裁: 所有设备共用一个总线请求信号
      • 集中平行仲裁: 通过集中的仲裁器进行
    • 分布仲裁: 路口没有交通警察,所有车辆先停下,确认其他方向没有来车后通行
      • 通过自我选择进行分布式仲裁: 每个要使用总线的设备将自己的标识放在总线上
      • 碰撞检测: 以太网
  • 按优先级仲裁或轮循仲裁
    • 优先级仲裁:例如,救护车在道路上有高优先级

同步和异步总线

  • 同步总线:
    • 控制线中包含有一根时钟信号线
    • 传输协议根据时钟信号制定:
      • 例如:主设备提出总线请求后 5 个时钟周期,可以获得能否使用总线的信号。
    • 优点:逻辑简单、高速
    • 缺点:
      • 总线上所有设备必须按时钟频率工作
      • 为防止时钟信号扭曲,高速工作时,总线距离必须足够短
  • 异步总线:
    • 不使用统一的时钟
    • 可适应设备的不同速度
    • 不用担心时钟信号扭曲,距离可较长
    • 使用握手协议

总线带宽

  • 增加总线的宽度
    • 可增加每个周期传送数据的量
    • 提高了成本
  • 分别设置数据总线和地址总线
    • 可同时传送数据和地址
    • 提高了成本
  • 采用成组传送方式
    • 一个总线事务传送多个数据
    • 每次只需要在开始的时候传送一个地址
    • 直到数据传送完毕才释放总线
    • 代价
      • 复杂度提高
      • 延长后续总线请求的等待时间

多主设备总线如何提高事务数量?

  • 仲裁重叠:
    • 在当前事务时,为下一总线事务进行仲裁
  • 总线占用:
    • 在没有其他主设备请求总线的情况下,某主设备一直占用总线,完成多个总线事务
  • 地址、数据传送重叠
  • 在现代内存总线上,应用了上述全部技术

总线举例:PCI

  • 外部组件互连总线
  • 时钟频率:33MHz 或 66MHz(CLK)
  • 集中仲裁方式(REQ#、GNT#)
    • 和上一事务重叠
  • 32 位地址和数据线互用(AD)
    • V2.1 为 64 位
  • 总线协议
    • 总线周期:内存读、内存写、内存成组读等(C/BE#)
    • 地址握手和保持(FRAME#、IRDY#)
    • 数据宽度(C/BE# )
    • 通过 IRDY# 和 TRDY# 握手信号传输变长的数据块
  • 最大带宽达 133MB(33MHz)或 528MB(66MHz)

读/写 事务

  • 所有信号在时钟正边沿采样
  • 集中平行仲裁
    • 和上一事务重叠
  • 所有事务可无限制成组传送
  • 地址段起始于 FRAME# 信号有效
  • 第一时钟周期主设备发出 cmd 和 address
  • 数据传送
    • 当主设备准备好传输数据,主设备发出 IRDY# 信号
    • 从设备准备好传输数据,发出 TRDY# 信号
    • 上述两个信号均有效时的时钟上升沿开始传送数据
  • 主设备准备结束数据传送时,将 FRAME# 信号失效

Read Cycle

  • 总线主设备得到授权后,将 FRAME# 置为有效 ,开始读事务。并通过 AD 发送要读的地址,C/BE# 发送读命令
  • 从设备根据 AD 上识别是否被选中
  • 主设备释放对 AD 的控制,同时,在 C/BE# 上给出 AD 上哪些位是有用的(1~4Byetes)。并置 IRDY# 为有效,表示已准备好,可以接收数据。
  • 被选中的从设备置 DEVSEL 信号,表示已收到命令并可响应。将读出的数据送 AD,并置 TRDY# 通知主设备接收。
  • 主设备可在周期 4 读到第一个数据。并根据需要决定是否要改变 C/BE# 的值 。
  • 如果从设备的速度不高,则需要插入等待周期。
  • 主设备通过 FRAME 信号通知从设备结束数据传输,并将 IRDY 置高。
  • 从设备相应地将 TRDY 和 DEVSEL 信号置高,总线返 回到空闲状态。

Write Cycle

PCI 优化

  • 尽量使总线有效传输
    • 可采用类似 RISC 的流水线技术,仲裁和数据传输并行进行
  • 总线占用
    • 为上一主设备保留总线授权,直到有其他主设备申请使用总线
    • 得到授权的主设备可在不仲裁的情况下直接开始下一传送过程
  • 仲裁时长
    • 主设备和从设备尽力延长传输流(使用 xRDY)
    • 从设备使用 STOP (abort or retry)信号终止连接
    • 主设备通过 FRAME 信号终止连接
    • 仲裁器通过 GNT 信号终止连接
  • 延迟 (挂起, 时段分离)事务
    • 对慢速设备,在请求后暂时释放总线

总线其他问题

  • 中断:用于支持控制 I/O 设备
  • Cache 一致性:用于支持 I/O 和多处理器
  • 加锁:支持分时操作, I/O 和多处理器
  • 可配置地址空间

总线参数选择