总线与输入输出:总线概述、接口与数据传送控制方式。
6.1 总线概述
6.1.1 总线的基本概念
总线定义:一组能为多个部件分时和共享的公共信息传送线路。
- 分时:同一时刻只允许一个部件向总线发送信息。
- 共享:总线上可挂接多个部件,多个部件可同时从总线上接收相同的信息。
总线设备:
- 主设备:发出总线请求且获得总线控制权的设备。
- 从设备:被主设备访问的设备,总能响应主设备发来的命令。
总线特性:
- 机械特性(尺寸、形状)
- 电气特性(传输方向、电平范围)
- 功能特性(每根传输线的功能)
- 时间特性(信号与时序的关系)
6.1.2 总线的分类
按功能层次分类
| 类型 | 说明 |
|---|---|
| 内部总线/片内总线 | CPU芯片内部连接各元件的总线 |
| 系统总线 | 计算机系统内CPU、主存、I/O接口之间相互连接的总线 |
| I/O总线 | 连接中低速I/O设备,通过I/O接口与系统总线相连 |
按时序控制方式分类
- 同步总线:采用统一时钟,在规定时钟节拍内完成总线操作。
- 优点:传送速度快,控制逻辑简单。
- 缺点:强制同步,可靠性较差,总线不能过长。
- 异步总线:无统一时钟,通过“握手”信号协调传输,时序不固定。
- 优点:总线周期可变,适应速度差异大的设备。
- 缺点:控制复杂,速度较慢。
按数据传输方式分类
- 串行总线:比特位串行传输,适合长距离通信。
- 并行总线:多比特位同时传输,效率高,适合近距离通信。
按组成信号线分类
- 数据总线:双向,传输数据、指令等。位数决定一次传送的数据量。
- 地址总线:单向,传输地址信息。位数决定最大寻址空间。
- 控制总线:传输控制信号(如读/写、中断、总线请求等)。
6.1.3 系统总线的结构
1. 单总线结构
- CPU、主存、I/O设备(通过接口)挂在一组总线上。
- 优点:结构简单,成本低,易于扩展。
- 缺点:带宽低,负载重,争用总线。
2. 双总线结构
- 主存总线:CPU、主存、通道之间传送数据。
- I/O总线:外设与通道之间传送数据。
- 优点:分离低速I/O设备,提高系统性能。
- 缺点:需增加通道等硬件。
3. 三总线结构
- 主存总线:CPU与内存之间。
- I/O总线:CPU与外设之间通信。
- DMA总线:内存与高速外设之间直接传送数据。
- 优点:提高I/O响应速度,系统吞吐量高。
6.1.4 总线的性能指标
| 指标 | 定义 |
|---|---|
| 总线周期 | 一次总线操作所需时间(申请、寻址、传输、结束) |
| 总线宽度 | 数据线的条数(如16位、32位) |
| 总线工作频率 | 1秒内传送数据的次数(总线周期的倒数) |
| 总线带宽 | 单位时间内最多可传输的数据量。 同步总线带宽 = 总线宽度 × 工作频率 ÷ 完成一次传送所需时钟周期数 |
| 总线传送方式 | 非突发(先地址后数据)、突发(连续传送,后续地址自动+1) |
6.2 总线事务和定时
6.2.1 总线事务
- 从请求总线到完成使用的操作序列,包括:
- 请求阶段:主设备发出总线请求。
- 仲裁阶段:总线仲裁机构决定下一个周期的总线使用权。
- 寻址阶段:主设备给出从设备地址和命令。
- 传输阶段:主从设备进行数据交换。
- 释放阶段:主设备撤除信息,释放总线。
6.2.2 总线定时
1. 同步定时方式
- 统一时钟,固定时间间隔。
- 优点:速度快,控制简单。
- 缺点:强制同步,可靠性差。
- 适用于总线长度短、部件存取时间相近的系统。
2. 异步定时方式
- 无统一时钟,依靠“请求”和“回答”握手信号。
- 优点:总线周期可变,适应速度差异大的设备。
- 缺点:控制复杂,速度较慢。
- 三种互锁方式:
- 不互锁:请求信号和回答信号分别自动撤销,无依赖。
- 半互锁:请求信号的撤销依赖回答信号的到来,回答信号自动撤销。
- 全互锁:请求信号的撤销依赖回答信号,回答信号的撤销依赖请求信号的撤销。
3. 半同步定时方式
- 采用同步时钟,但增加“等待”响应信号,当从设备速度慢时插入等待周期。
6.3 I/O 接口(I/O 控制器)
6.3.1 I/O 设备的基本概念
- 输入设备:将外部信息转换为计算机可识别的二进制代码。
- 输出设备:将计算机处理结果转换为人类可识别的形式。
6.3.2 I/O 接口
功能:
- 数据缓冲(速度匹配)。
- 地址译码和设备选择。
- 错误检测和状态检测。
- 控制和定时。
- 数据格式转换(如串-并转换)。
基本结构:
- 数据缓冲寄存器(数据端口)
- 状态/控制寄存器(状态端口/控制端口)
- 地址译码电路
- 控制逻辑
- 与主机侧的连接:数据线、地址线、控制线
端口类型:
- 数据端口:存放数据。
- 状态端口:记录设备状态(如就绪、错误)。
- 控制端口:接收CPU的控制命令。
6.3.3 I/O 端口及其编址
| 编址方式 | 特点 | 优缺点 |
|---|---|---|
| 独立编址 | I/O端口单独编址,独立地址空间,用专门的I/O指令访问 | 译码简单,速度快;但需要专用指令 |
| 统一编址 | I/O端口与主存统一编址,用访存指令访问 | 无须专用指令,灵活;但占用主存地址空间 |
6.4 I/O 数据传送控制方式
6.4.1 程序查询方式
- CPU通过程序循环查询设备状态,等待设备就绪后传送数据。
- 流程:初始化 → 启动设备 → 读取状态 → 等待就绪 → 传送数据 → 修改参数 → 判断结束。
- 分类:
- 独占查询:CPU一直查询,完全串行。
- 定时查询:CPU周期性查询,时间间隔与设备速率有关。
- 缺点:CPU效率低,与设备串行工作。
6.4.2 程序中断方式
基本概念
- 中断:CPU暂时中止现行程序,转去处理异常或特殊请求,处理完返回原程序。
- 特点:CPU与设备并行工作,每传输一个字中断一次。
中断处理流程
- 中断请求:中断源设置中断请求标记。
- 中断响应判优:硬件排队器决定响应哪个中断(优先级:不可屏蔽中断 > 内部异常 > 可屏蔽中断;DMA > I/O;高速 > 低速)。
- 中断响应(中断隐指令,硬件完成):
- 关中断
- 保存断点(PC)和程序状态字(PSW)
- 识别中断源,获得中断类型号,从中断向量表取出中断服务程序入口地址送PC
- 中断服务程序(软件完成):
- 保存现场(通用寄存器)和中断屏蔽字
- 开中断(允许中断嵌套)
- 执行中断服务
- 关中断
- 恢复现场和屏蔽字
- 开中断
- 中断返回
中断屏蔽与多重中断
- 中断屏蔽字:通过设置屏蔽字,动态调整中断处理的优先级。
- 多重中断(中断嵌套):CPU在执行中断服务程序时,允许更高优先级的中断打断。
- 条件:服务程序中开中断;高优先级中断可打断低优先级。
6.4.3 DMA 方式
基本概念
- DMA(直接存储器存取):硬件控制,在外设与主存间直接传送数据,不经过CPU。
- DMA控制器(DMAC)接管总线控制权,进行数据传送。
DMA控制器组成
- 主存地址计数器
- 传送长度计数器
- 数据缓冲寄存器
- DMA请求触发器
- 控制/状态逻辑
- 中断机构
DMA传送方式
| 方式 | 描述 |
|---|---|
| 停止CPU访存 | DMA传送期间CPU脱离总线,传送完一块数据后恢复 |
| 周期挪用 | DMA每传送一个字占用一个总线周期(一个主存周期),立即释放 |
| 交替访存 | 每个存储周期分为两个时间片,分别给CPU和DMA,适用于CPU周期 > 主存周期 |
DMA传送过程
- 预处理(CPU执行):
- 申请内存缓冲区
- 设置DMA控制器参数(主存首址、字计数、传送方向、设备地址)
- 启动DMA
- 数据传送(DMA控制):
- DMAC控制总线,传送数据
- 每传送一字,地址+1,计数器-1
- 计数器为0时传送结束
- 后处理(中断服务):
- DMA结束中断,CPU进行数据校验等
DMA与中断方式对比
| 对比项 | 中断方式 | DMA方式 |
|---|---|---|
| 数据传送 | 程序控制 | 硬件控制 |
| CPU干预 | 需要 | 不需要(除预处理和后处理) |
| 响应时机 | 指令执行结束时 | 任意机器周期结束时 |
| 适用场景 | 异常处理、低速设备 | 高速设备、成组数据传送 |
| 优先级 | 较低 | 较高 |