输入输出技术
内存与接口编址
- 独立编址
- 用于接口的指令太少,功能很弱
- 统一编址
- 原则上用于内存的指令可全部用于接口
- 导致内存地址不连续
- 难以区分指令具体用于接口还是内存
直接程序控制
指对外设的输入输出过程是由 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
- 多中断信号线
- 中断软件查询法
- 菊花链法
- 总线仲裁法
- 中断向量表法
- 中断向量: 提供中断服务程序的入口地址
- 中断向量表: 保存各个中断源的中断服务程序入口
中断优先级控制
- 紧急优先
- 中断嵌套
直接存储器 I/O
DMA 是指数据在内存与 I/O 设备间的直接成块传送,传输过错无需 CPU 干涉,CPU 只需向设备传输发送数据块命令,然后询问传输是否结束或是否准备就绪。
一般过程
- 请求
flowchart LR;
OD[outer device] -->|IR| DMAC -->|IR| CPU -->|HLDA| DMAC;
CPU -->|abandon| Bus;
- 传输
flowchart LR;
DMAC-->|address/control| OD[outer device] -->|data block| DMAC;
- 结束
flowchart LR;
DMAC -->|cancel HOLD| CPU -->|cancel HLDA| DMAC;
CPU -->|control| Bus;
输入输出处理机
DMA 减轻了 CPU 对 I/O 的控制,IOP 则进一步提高了 CPU 的效率,PPU 是通道方式的进一步发展。