总线与输入输出:总线概述、接口与数据传送控制方式。

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 总线事务

  • 从请求总线到完成使用的操作序列,包括:
    1. 请求阶段:主设备发出总线请求。
    2. 仲裁阶段:总线仲裁机构决定下一个周期的总线使用权。
    3. 寻址阶段:主设备给出从设备地址和命令。
    4. 传输阶段:主从设备进行数据交换。
    5. 释放阶段:主设备撤除信息,释放总线。

6.2.2 总线定时

1. 同步定时方式

  • 统一时钟,固定时间间隔。
  • 优点:速度快,控制简单。
  • 缺点:强制同步,可靠性差。
  • 适用于总线长度短、部件存取时间相近的系统。

2. 异步定时方式

  • 无统一时钟,依靠“请求”和“回答”握手信号。
  • 优点:总线周期可变,适应速度差异大的设备。
  • 缺点:控制复杂,速度较慢。
  • 三种互锁方式
    • 不互锁:请求信号和回答信号分别自动撤销,无依赖。
    • 半互锁:请求信号的撤销依赖回答信号的到来,回答信号自动撤销。
    • 全互锁:请求信号的撤销依赖回答信号,回答信号的撤销依赖请求信号的撤销。

3. 半同步定时方式

  • 采用同步时钟,但增加“等待”响应信号,当从设备速度慢时插入等待周期。

6.3 I/O 接口(I/O 控制器)

6.3.1 I/O 设备的基本概念

  • 输入设备:将外部信息转换为计算机可识别的二进制代码。
  • 输出设备:将计算机处理结果转换为人类可识别的形式。

6.3.2 I/O 接口

  • 功能

    1. 数据缓冲(速度匹配)。
    2. 地址译码和设备选择。
    3. 错误检测和状态检测。
    4. 控制和定时。
    5. 数据格式转换(如串-并转换)。
  • 基本结构

    • 数据缓冲寄存器(数据端口)
    • 状态/控制寄存器(状态端口/控制端口)
    • 地址译码电路
    • 控制逻辑
    • 与主机侧的连接:数据线、地址线、控制线
  • 端口类型

    • 数据端口:存放数据。
    • 状态端口:记录设备状态(如就绪、错误)。
    • 控制端口:接收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与设备并行工作,每传输一个字中断一次。

中断处理流程

  1. 中断请求:中断源设置中断请求标记。
  2. 中断响应判优:硬件排队器决定响应哪个中断(优先级:不可屏蔽中断 > 内部异常 > 可屏蔽中断;DMA > I/O;高速 > 低速)。
  3. 中断响应(中断隐指令,硬件完成)
    • 关中断
    • 保存断点(PC)和程序状态字(PSW)
    • 识别中断源,获得中断类型号,从中断向量表取出中断服务程序入口地址送PC
  4. 中断服务程序(软件完成)
    • 保存现场(通用寄存器)和中断屏蔽字
    • 开中断(允许中断嵌套)
    • 执行中断服务
    • 关中断
    • 恢复现场和屏蔽字
    • 开中断
    • 中断返回

中断屏蔽与多重中断

  • 中断屏蔽字:通过设置屏蔽字,动态调整中断处理的优先级。
  • 多重中断(中断嵌套):CPU在执行中断服务程序时,允许更高优先级的中断打断。
    • 条件:服务程序中开中断;高优先级中断可打断低优先级。

6.4.3 DMA 方式

基本概念

  • DMA(直接存储器存取):硬件控制,在外设与主存间直接传送数据,不经过CPU。
  • DMA控制器(DMAC)接管总线控制权,进行数据传送。

DMA控制器组成

  • 主存地址计数器
  • 传送长度计数器
  • 数据缓冲寄存器
  • DMA请求触发器
  • 控制/状态逻辑
  • 中断机构

DMA传送方式

方式 描述
停止CPU访存 DMA传送期间CPU脱离总线,传送完一块数据后恢复
周期挪用 DMA每传送一个字占用一个总线周期(一个主存周期),立即释放
交替访存 每个存储周期分为两个时间片,分别给CPU和DMA,适用于CPU周期 > 主存周期

DMA传送过程

  1. 预处理(CPU执行):
    • 申请内存缓冲区
    • 设置DMA控制器参数(主存首址、字计数、传送方向、设备地址)
    • 启动DMA
  2. 数据传送(DMA控制):
    • DMAC控制总线,传送数据
    • 每传送一字,地址+1,计数器-1
    • 计数器为0时传送结束
  3. 后处理(中断服务):
    • DMA结束中断,CPU进行数据校验等

DMA与中断方式对比

对比项 中断方式 DMA方式
数据传送 程序控制 硬件控制
CPU干预 需要 不需要(除预处理和后处理)
响应时机 指令执行结束时 任意机器周期结束时
适用场景 异常处理、低速设备 高速设备、成组数据传送
优先级 较低 较高