Skip to main content

输入输出技术

内存与接口编址

  • 独立编址
    • 用于接口的指令太少,功能很弱
  • 统一编址
    • 原则上用于内存的指令可全部用于接口
    • 导致内存地址不连续
    • 难以区分指令具体用于接口还是内存

直接程序控制

指对外设的输入输出过程是由 CPU 执行的程序控制的。

  • 无条件传送
    • 外设一直是就绪的,随时准备接受 CPU 传来的数据,随时准备向 CPU 发送数据
  • 程序查询方式
    • 通过 CPU 执行的程序查询外设的状态,从而判断外设是否准备好传输数据。
    • 降低 CPU 效率
    • 无法对外部突发事件作出实时响应

中断方式

当 I/O 系统与外设交换数据时,CPU 无需等待,也无需查询 I/O 状态,当 I/O 系统准备完毕则发出中断信号通知 CPU。

中断处理方法

flowchart TB
subgraph 1
direction TB
cpu([CPU])
cpu---|IR|s1
cpu---|IR|s2
cpu---|IR|s3
cpu---|IR|sn
end
subgraph 2
direction TB
Cpu([CPU])
subgraph one [Sources]
direction TB
S1
S2
S3
Sn
end
one -->|IR| Cpu
Cpu -->|check| S1
Cpu -->|check| S2
Cpu -->|check| S3
Cpu -->|check| Sn
end
flowchart TB
subgraph 3
direction TB
CPu([CPU])
subgraph two [Sources]
direction LR
3s1[S1] -->|RE| 3s2[S2] -->|RE| 3s3[S3] -->|RE| 3sn[Sn]
end
CPu-->|RE|two
two-->|IR|CPu
end
subgraph 4
direction BT
4s1[S1] -->|hold| Bus
4s2[S2] -->|hold| Bus
4s3[S3] -->|hold| Bus
4sn[Sn] -->|hold| Bus
Bus -->|IR| CPU
end
flowchart LR
subgraph 5
direction LR
Sources -->|IR| INTC -->|IC| IVT --> CPU
end
  1. 多中断信号线
  2. 中断软件查询法
  3. 菊花链法
  4. 总线仲裁法
  5. 中断向量表法
    • 中断向量: 提供中断服务程序的入口地址
    • 中断向量表: 保存各个中断源的中断服务程序入口

中断优先级控制

  • 紧急优先
  • 中断嵌套

直接存储器 I/O

DMA 是指数据在内存与 I/O 设备间的直接成块传送,传输过错无需 CPU 干涉,CPU 只需向设备传输发送数据块命令,然后询问传输是否结束或是否准备就绪。

一般过程

  1. 请求
flowchart LR;
OD[outer device] -->|IR| DMAC -->|IR| CPU -->|HLDA| DMAC;
CPU -->|abandon| Bus;
  1. 传输
flowchart LR;
DMAC-->|address/control| OD[outer device] -->|data block| DMAC;
  1. 结束
flowchart LR;
DMAC -->|cancel HOLD| CPU -->|cancel HLDA| DMAC;
CPU -->|control| Bus;

输入输出处理机

DMA 减轻了 CPU 对 I/O 的控制,IOP 则进一步提高了 CPU 的效率,PPU 是通道方式的进一步发展。