I/O 接口是 CPU 与外部设备之间的桥梁,负责数据格式转换、速度匹配、信号转换等功能。接口设计直接影响 I/O 系统的性能与可靠性。
数据寄存器:存放输入/输出数据,可读可写,宽度通常等于数据总线宽度。
状态寄存器(典型位):D0=Ready、D1=Busy、D2=Error、D3=IRQ Enable、D4=Done。CPU 读取了解设备状态(通常只读)。
控制寄存器:CPU 写入控制命令(D0=Start、D1=Stop、D2=IRQ Enable、D3=Direction 等)。
I/O 端口有独立地址空间,与内存分离
内存 0x0000~0xFFFF;I/O 0x00~0xFF(256 端口)
专用指令:IN AL, port ; OUT port, AL
应用:x86
I/O 端口映射到内存地址空间,用访存指令访问
例:0x0000-0x7FFF 内存;0x8000-0x8FFF I/O
MOV R1, [0x8000] ; 读 I/O 端口
应用:MIPS、ARM、RISC-V
| 特性 | 独立编址 | 统一编址 |
|---|---|---|
| 地址空间 | 独立(小) | 共享内存(大) |
| 访问指令 | 专用 I/O 指令 | 访存指令 |
| 硬件区分 | I/O / MEM 信号 | 地址范围 |
| 灵活性 | 低 | 高 |
| 典型架构 | x86 | MIPS / ARM |
| 芯片 | 类型 | 要点 |
|---|---|---|
| 8255A | 并行接口 | 3 个 8 位端口 PA/PB/PC;方式 0/1/2;写控制字设定 |
| 8251A | 串行接口 | 同步/异步,可编程波特率,全双工 |
| 8259A | 中断控制器 | 8 级(可级联 64 级),优先级与屏蔽,提供类型号 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。