Contents

计算机组成(第六章)

总线系统

总线的概念和结构形态

总线的基本概念

  1. 总线:构成计算机系统的互连机构,是多个系统功能部件之间进行数据传送的公共通路

  2. 总线支持不同部件之间的地址、数据、控制三类信息的传送总线支持不同部件之间的地址、数据、控制三类信息的传送

  3. 一个单处理器系统中的总线,大致分为三类:

    1. 内部总线

      CPU内,连接各寄存器及运算器。

    2. 系统总线

      连接CPU与存储器、I/O通道等。

    3. I/O总线

      连接各I/O设备。

  4. 总线的特性

    1. 物理特性

      1. 指物理连接方式的规定。
      2. 如总线的根数、插头插座的形状和尺寸等。
    2. 功能特性

      1. 指总线中每一根的功能。
      2. 如它是数据、地址,还是控制线?

      功能特性中,如果描述了n根地址线,则可直接访存的地址范围为0~($2^n$﹣1)。

    3. 电气特性

      1. 规定每根线上信号的传递方向有效电平范围。
      2. 从CPU发出的信号,称输出信号(OUT);
      3. 送入CPU的信号,称输入信号(IN)。
      4. 数据线可传送双向信号,地址、控制线只单向传送信号。
    4. 时间特性

      1. 规定每根线上的信号什么时间有效

      https://cdn.jsdelivr.net/gh/adan-ning/images/202405231505371.png

    5. 系统总线的标准化

      1. PC中,系统总线布设在主板上。

      2. 为什么主板能支持很多厂家的显卡?

        原因是,系统总线是按标准制作的

      3. 总线标准规定总线的物理特性、功能特性、电气特性和时间特性。

      4. 微机中的标准总线:ISA总线 、 EISA总线、 VESA总线、 PCI总线。

    6. 总线的主要参数

      1. 总线的带宽 (MB/s)

        一定时间内总线上可传送的数据量

      2. 总线的位宽

        1. 总线能同时传送的数据位数。

          即我们常说的32位、64位等总线宽度的概念。

      3. 总线的工作时钟频率 (MHz)

        1. 总线的时钟频率

          https://cdn.jsdelivr.net/gh/adan-ning/images/202405231507914.png

    7. 总线带宽

      1. **总线传输数据的速度。单位:MB/**s

      2. 例:

        (1)某总线在一个总线周期中并行传送4个字节的数据,假设一个总线周期等于一个总线时钟周期,总线时钟频率为33MHz,则总线带宽是多少?

        (2)如果一个总线周期中并行传送64位数据,总线时钟频率升为66MHz,则总线带宽是多少?

        解:(1)带宽= $\frac{4}{T}$=4×f =4B×33×$10^6$ /s =132MB/s。

        ​ (2) 带宽=64×f =8B×66×$10^6$ /s = 528MB/s。

总线的连接方式

  1. I/O设备的种类有很多。

    1. 键盘、鼠标、软盘、硬盘、显示器等。
  2. I/O设备的结构、数据传送速度都有差别。

  3. I/O设备直接连到总线是不可以的。

  4. 适配器(又称接口)

    1. 可使CPU、设备分别以自己的速度工作;
    2. 完成CPU与设备的数据传送和控制
  5. 单机系统中总线结构的两种基本类型:

    1. 单总线和多总线。(定义,特点)
  6. 单总线结构

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405231511083.png

  7. 多总线:在CPU、主存、I/O之间互联采用多条总线

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405231511677.png

  8. 总线结构对计算机系统性能的影响 

    1. 最大存储容量

      在单总线系统中,最大主存容量必须小于由计算机字长所决定的可能的地址总数。

      在双总线系统中,对主存和外设进行存取的判断是利用各自的指令操作码。由于主存地址和外设地址出现于不同的总线上,所以存储容量不会受到外围设备多少的影响。

    2. 指令系统

      双总线系统中,CPU对存储总线和系统总线必须有不同的指令系统

      单总线系统中,访问主存和I/O传送可使用相同的指令,但它们使用不同的地址。

    3. 吞吐量

      计算机系统的吞吐量是指流入、处理和流出系统的信息的速率。它取决于信息能够多快地输入内存,CPU能够多快地取指令,数据能够多快地从内存取出或存入,以及所得结果能够多快地从内存送给一台外围设备。

      系统的呑吐率主要取决于主存的存取周期。

总线的内部结构

  1. 早期的单总线可看作CPU引脚的延伸

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405231516733.png

  2. “CPU"引脚延伸”的缺陷

    1. CPU是总线控制的主角;
    2. 现在接口中增加DMA控制器,但仍无法支持多个CPU的系统;
    3. 总线与CPU引脚相关,通用性差。

总线结构实例

追求与结构、CPU、技术无关的开发标准

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231517222.png

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231517910.png

总线接口

信息的传送方式

  1. 位信息的表示方法

    1. 用持续的高电位(或低电位)表示1(或0)

      https://cdn.jsdelivr.net/gh/adan-ning/images/202405231520564.png

    2. 用有(或无)脉冲表示1(或0)

      https://cdn.jsdelivr.net/gh/adan-ning/images/202405231520881.png

  2. 信息传送的三种方式

    1. 串行传送
      1. 沿一根线,用“有无脉冲”顺序地传送数据的各个位
    2. 并行传送
      1. 用一组线,各位同时沿不同的线传送
      2. 系统总线上传送信息必须采用并行传送!
    3. 分时传送
      1. 不同性质或不同部件的二进制数在不同的总线周期里传送。

串行传送

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231522200.png

当信息以串行方式传送时,只有一条传输线,且采用脉冲传送。在串行传送时,按顺序来传送表示一个数码的所有二进制位(bit)的脉冲信号,每次一位,通常以第一个脉冲信号表示数码的最低有效位,最后一个脉冲信号表示数码的最高有效位。

在串行传送时,被传送的数据需要在发送部件进行并--串变换,这称为拆卸;而在接收部件又需要进行串--并变换,这称为装配

串行传送主要优点是只需要一条传输线,这一点对长距离传输显得特重要,不管传送的数据量有多少,只需要一条传输线,成本比较低廉。

并行传送

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231524518.png

用并行方式传送二进制信息时,对每个数据位都需要单独一条传输线。信息有多少二进制位组成,就需要多少条传输线,从而使得二进制数“0”或“1”在不同的线上同时进行传送。

并行传送一般采用电位传送。由于所有的位同时被传送,所以并行数据传送比串行数据传送快得多。

分时传送

两种概念:

  1. 总线复用方式,某个传输线上既传送地址信息,又传送数据信息。
  2. 共享总线的部件分时使用总线

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231525314.png

接口的基本概念

  1. 接口是CPU、内存、外设与总线之间的转换器

  2. 内存、外设有自己的控制器

    1. 对于内存条,有DRAM控制器;
    2. 对于磁盘,有磁盘转动、磁头移动等控制电路,与磁盘制作在一起;
  3. 要连到总线上,还需要接口(电路)。

    1. 对于磁盘,插在主板上的多功能卡是其接口(卡)
    2. 对于CPU,接口(电路)在CPU内部
  4. 外围设备的连接方法

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405231527643.png

  5. 为什么要设置接口?

    1. 实现设备的选择
    2. 实现数据缓冲达到速度匹配
    3. 实现数据串并格式转换
    4. 实现电平转换
    5. 传送控制命令
    6. 反映设备的状态(“t忙”、 " 就绪”、" 中断请求" )
  6. 部件、控制器、接口、总线的关系

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405231528741.png

  7. 接口的功能

    1. 控制
      1. 接收总线传来的控制信息,控制器发指示
      2. 例:磁盘接口收到R请求,向控制器发出找道、找扇区指示
    2. 缓冲
      1. 缓冲总线传来的数据,或部件传来的数据
    3. 状态
      1. 保存部件的工作状态,供其他部件查询
      2. 例:磁盘已将数据放置在数据总线上
    4. 转换
      1. 例:总线和接口之间为并行传送,而接口与控制器之间是串行传送,则从总线收到的数据变为串行数据再发给控制器。
    5. 整理
      1. 例:接口中可能包含计数器,完成一次数据传送后计数器加1;接口中可能保存访存地址,一次访存后需要修改地址,准备下次访存。
    6. 程序中断
      1. 外设请求CPU服务时,接口发出中断请求
  8. 接口的“两面性”

    1. 与系统总线的“一面”;

      一般是并行传送

    2. 与外设控制器的“一面”。

      1. 也采用并行传送时,称接口为并行数据接口
      2. 采用串行传送时,称接口为串行数据接口

    例:串行传送时,每秒传送的位数称波特率。若数据传送速率为120字符/秒,每字符包含10位(1个起始位、8个数据位和1个停止位)。计算波特率,以及位传送周期

    解:波特率为10位×120字符/秒=1200波特。

    ​ 位传送周期为1/1200 =0.000833(秒)。

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405231533800.png

总线的仲裁

  1. 对于总线的两个部件,一个为主方,另一个为从方
  2. 只有主方有权启动一个总线周期,从方只能响应主方的请求
  3. 任何时刻,只有一个主方,但可有多个从方
  4. 主方可放弃总线控制权,让位于请求总线控制权的部件。
  5. 不是任何部件都可成为主方,例如,存储器只能作为从方

总线仲裁

当多个可作主方的设备请求总线控制,谁优先呢?

  1. 公平策略

    例,多CPU系统中,CPU之间是平等的。

  2. 优先级策略

    I/O设备之间一般有不同的总线请求优先级。

  3. 主方持续控制总线的时间,称为总线占用期

  4. 总线的仲裁方式分为集中式仲裁分布式仲裁两类。

什么是集中式仲裁?

  1. 总线仲裁部件 ——中央仲裁器
  2. 每个功能模块有两根线连到中央仲裁器。
    1. 送仲裁器的总线请求线(BR, Bus Request);
    2. 仲裁器送来的总线授权线(BG,Bus Grant)
  3. 实现方案
    1. 链式查询方式;
    2. 计数器定时查询方式;
    3. 独立请求方式。

链式查询方式

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231538793.png

计数器定时查询方式

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231538236.png

独立请求方式

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231538178.png

什么是分布式仲裁?

  1. 没有中央仲裁器

  2. 每个潜在的主方都有仲裁器;

  3. 共用一个“仲裁总线”;

  4. 有总线请求时,将自己仲裁器的编号放在“仲裁总线”上;

  5. 发现自己的编号小,则撤消自己的编号

  6. 最后,获胜者的编号留在“仲裁总线”上

  7. 集中式仲裁

    总线仲裁部件 ——中央仲裁器

  8. 分布式仲裁(逻辑结构)

    没有中央仲裁器;每个潜在的主方都有仲裁器

总线的定时和数据传送模式

总线的定时

  1. 总线的一次信息传送,大致分5个阶段
    1. 请求总线
    2. 总线仲裁
    3. 寻址(即发送地址到地址总线)
    4. 信息传送(即发送数据到数据总线);
    5. 状态返回(或错误报告)
  2. 主方和从方的动作有时序关系
    1. 规定事件出现在总线上的时序关系,称总线定时

同步定时

  1. 无论主方、从方,事件出现的时刻由总线时钟确定。

例:CPU读内存。约定事件出现在时钟上跳前沿,多数事件持续一个时钟周期

  1. CPU先发读命令,并发存储单元地址;
  2. 存储器延迟1个时钟将数据放在数据总线

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231543362.png

同步定时的特点

  1. 各模块何时做何种动作,都按时钟规定
  2. 适用于总线长度较短、各模块存取时间接近的系统
  3. 由于同步总线按最慢的模块设计公共时钟,当各模块存取时间相差很大时,会大大损失总线效率

异步定时

  1. 在异步定时协议中,后一事件出现在总线上的时刻取决于前一事件的出现,即建立在应答式互锁机制基础上
  2. 取消公共时钟,总线周期长度可变

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231545769.png

异步定时的特点

  1. 总线周期可变,不强限制功能模块的响应时间
  2. 允许快速和慢速的模块连到同一总线
  3. 增加总线的复杂性和成本

例:CPU采用集中式总线仲裁,采用独立请求和链式查询相结合的结构。每一对BRi和BGi连接速度相近的一组设备。画出总线仲裁时序图

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231546237.png

总线仲裁时序图

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231547405.png

总线的数据传送模式

  1. 读、写操作 —— 主方与从方间的数据传送
  2. 块传送操作
    1. 给出块的起始地址,顺序读(写)多个数据。
    2. 例:CPU-存储器之间的猝发式传送
  3. “写后读”、“读后写”操作
    1. 给出地址后,先写入后读出,用于校验
    2. 给出地址后,先读出后写入,用于共享资源的保护。
  4. 广播、广集操作
    1. 广播:主方向多个从方传送数据(写);
    2. 广集:多个从方向主方传送数据(读),例:检测中断源

PCI总线

  1. PCI是与CPU无关的外围总线(局部总线
  2. 连接到PCI总线的设备,称PCI设备
  3. 使用PCI/PCI桥或HOST/PCI桥,系统中可包含多个PCI总线

多总线结构的示意图

https://cdn.jsdelivr.net/gh/adan-ning/images/202405231550639.png

PCI总线特点

  1. 总线定时方式采用同步时序协议,总线时钟为方波信号
  2. 总线仲裁方式采用集中式仲裁。每个PCI主设备都有总线请求线和总线授权线与中央仲裁器相连
  3. PCI总线的基本传输机制是猝发式传送