跳转到内容

09、总线与输入输出系统

这一部分来自新增资料 计组-总线与输入输出系统.pptxsubject_作业四 中央处理器、总线及IO系统.xlsx。原来的复习资料主要覆盖 CPU、微程序和存储系统,但新增题库里总线带宽、中断、DMA 都出现了,所以这里单独补一章。

教材查阅:组成原理教材第 287-308 页可查总线系统;I/O、中断、DMA 相关内容以新增 PPT 和作业题为主。


总线是计算机各功能部件之间传递信息的公共通路。和点对点连接相比,总线结构控制简单、成本低、扩展性好,但同一时刻通常只能由一个主设备占用总线,容易成为系统瓶颈。

总线通常包括:

数据总线:传送数据,通常双向
地址总线:传送地址,通常 CPU 或主设备输出
控制总线:传送读、写、请求、响应、时序等控制信号

总线常见性能指标有:

  • 总线宽度:一次能传送多少位。
  • 总线时钟频率:总线工作节拍。
  • 总线传输周期:完成一次传输需要几个时钟周期。
  • 总线带宽:单位时间能传送的数据量。

最常用公式:

总线带宽=每次传送的数据量传送一次所需时间总线带宽=\frac{每次传送的数据量}{传送一次所需时间}

若每个时钟周期传送一次数据:

总线带宽=总线宽度×总线频率总线带宽=总线宽度\times 总线频率

如果每个时钟周期传送多次数据,例如 DDR 每周期传两次:

总线带宽=总线宽度×总线频率×每周期传送次数总线带宽=总线宽度\times 总线频率\times 每周期传送次数

某总线宽度为 6464 位,时钟频率为 420MHz420MHz,每个时钟周期传送两次数据,求最大带宽。

每周期传送数据量:

64bit×2=128bit=16B64bit\times2=128bit=16B

带宽:

16B×420MHz=6720MB/s16B\times420MHz=6720MB/s

所以:

6720MB/s=6.72GB/s6720MB/s=6.72GB/s

答案:

6.72GB/s6.72GB/s

总线仲裁解决的问题是:多个主设备同时申请总线时,谁先使用总线。

新增 PPT 中重点列出三种方式。

仲裁方式控制线数量特点
链式查询3 根:BS、BR、BG结构简单,优先级固定,对故障敏感
计数器定时查询2+log2n2+\log_2n优先级可循环改变,速度中等
独立请求请求线和授权线多响应快,优先级灵活,硬件复杂

容易考选择题:

控制线最多:独立请求方式
结构最简单:链式查询方式
优先级容易固定:链式查询方式

总线定时是指通信双方如何知道传输开始、传输结束,以及怎样配合传送数据。

常见方式:

  • 同步定时:用公共时钟统一控制。
  • 异步定时:不用公共时钟,靠握手信号协调。
  • 半同步定时:在同步基础上允许插入等待周期。

数据传送模式包括:

  • 读操作。
  • 写操作。
  • 块传送或突发传送。
  • 写后读、读修改写等复合操作。

突发传送适合连续传送一整块数据,例如 Cache 块或主存块,能减少地址和命令开销。


某存储总线宽度为 6464 位,总线时钟频率为 1GHz1GHz,每次总线传输需要 11 个时钟周期,不支持突发传送。主存每次准备一个 64bit64bit 数据需要 6ns6ns,主存块大小为 32B32B,求读取一个主存块需要的时间。

总线一次传送:

64bit=8B64bit=8B

主存块大小:

32B32B

需要传送次数:

32B8B=4\frac{32B}{8B}=4

每次准备数据 6ns6ns,总线传送 1ns1ns,一次传送约:

6ns+1ns=7ns6ns+1ns=7ns

但第一次还要发送地址和读命令,需要 1ns1ns。所以总时间:

1ns+4×(6ns+1ns)=29ns1ns+4\times(6ns+1ns)=29ns

不同课件/题目可能把地址周期是否与第一次准备重叠处理为不同模型。作业题选项中常见答案为 32ns32ns,按题干给出的固定节拍模型作答即可,考试时要以题目时序图为准。


I/O 接口是总线和外设之间的物理、逻辑界面。

主要功能:

设备寻址
数据缓冲
命令控制
状态检测
格式转换
中断/DMA请求

I/O 接口通常包含:

  • 数据缓冲寄存器。
  • 状态寄存器。
  • 命令寄存器。
  • 控制逻辑。

I/O 编址主要有两种。

也叫内存映射 I/O。

特点:

外设寄存器和主存统一使用一个地址空间
可以用访存指令访问外设
会占用一部分主存地址空间

特点:

I/O 地址空间和主存地址空间分开
需要专门的 I/O 指令
不占用主存地址空间

新增 PPT 中列出的方式:

程序查询方式
程序中断方式
直接内存访问 DMA
通道方式
外围处理机方式

考试最常考前三种。


程序查询方式也叫轮询方式。CPU 不断检查设备状态,设备就绪后才进行数据传送。

优点:

硬件简单
控制过程直观

缺点:

CPU 一直等待或反复查询
高速设备下 CPU 占用率很高

中断方式下,CPU 启动设备后继续执行其他程序,设备准备好后主动向 CPU 发出中断请求。

基本流程:

设备发出中断请求
CPU 在合适时机响应中断
关中断,保存断点
识别中断源
转入中断服务程序
保护现场
执行中断服务
恢复现场
开中断
中断返回

注意:

保存断点通常由硬件完成
保护/恢复通用寄存器现场通常由软件完成

新增 PPT 和题库都强调:响应优先级处理优先级不是一回事。

  • 响应优先级:多个中断同时请求时,硬件先响应谁。
  • 处理优先级:进入某个中断服务程序后,允许谁打断当前服务。

中断屏蔽字可以改变处理优先级,但不一定改变硬件固定的响应优先级。

常见判断:

单重中断:中断服务期间关中断,不允许嵌套
多重中断:高优先级中断可以打断低优先级中断
恢复现场通常处于关中断状态

DMA 是 Direct Memory Access,直接存储器访问。

核心思想:

外设和主存之间直接成批传送数据
传送过程主要由 DMA 控制器控制
CPU 只在开始和结束时参与

DMA 数据传输通路:

设备接口 ↔ 主存

这也是作业四选择题的高频点。

DMA 基本阶段:

准备阶段:CPU 设置主存地址、设备地址、传送方向、传送字数
传送阶段:DMA 控制器控制总线完成数据传输
结束阶段:DMA 发中断通知 CPU

对比项程序中断方式DMA 方式
数据传送CPU 执行程序传送DMA 控制器硬件传送
适合对象中低速设备高速、成批数据设备
CPU 参与每次或每批都要进入服务程序主要在开始和结束参与
响应时机通常在两条指令之间可在存储周期之间或挪用存储周期
数据通路设备到 CPU 再到主存,或经 CPU 控制设备接口和主存之间

看清:

总线宽度是 bit 还是 Byte
每周期传几次
是否突发传送
频率单位是 MHz 还是 GHz

记住:

链式查询:3 根控制线,简单但优先级固定
计数器定时查询:2 + log2 n 根控制线
独立请求:控制线最多,速度快,硬件复杂

容易考:

中断流程
响应优先级和处理优先级区别
中断屏蔽字作用
单重/多重中断区别

容易考:

DMA 数据通路是设备接口和主存之间
DMA 传送阶段 CPU 不直接搬数据
DMA 结束后通常用中断通知 CPU