Appearance
408 > ### 计算机组成原理 > #### I/O接口
一、定位信息
| 项目 | 内容 |
|---|---|
| 知识单元编号 | CO-06-04 |
| 所属章节 | 第六章 总线与I/O系统 |
| 核心主题 | I/O接口的功能、类型与编址方式 |
| 考试权重 | ★★★(选择题常考,概念辨析型) |
| 前置知识 | CO-06-01~03 总线基础 |
| 后续衔接 | CO-06-05 程序查询方式、CO-06-06 中断方式、CO-06-07 DMA方式 |
二、知识点讲解
2.1 I/O接口的基本概念
I/O接口(Interface) 是主机(CPU和主存)与外部设备之间的连接部件,也称为I/O控制器或设备适配器。它是CPU与外设之间的"翻译官"和"缓冲器",负责解决CPU与外设之间在速度、信号格式、时序等方面的不匹配问题。
2.2 I/O接口的主要功能
数据缓冲:设置数据缓冲寄存器(DBR),解决CPU与外设速度不匹配的问题。快速的CPU写入缓冲区后即可继续工作,慢速外设从缓冲区读取数据。
信号格式转换:完成串/并行转换、电平转换、A/D或D/A转换等。CPU内部是并行数据,某些外设需要串行数据。
设备选择:通过地址译码选择具体的I/O设备。当CPU发出I/O地址时,接口中的地址译码器判断是否选中本设备。
接收和执行CPU命令:接口中有命令寄存器,存放CPU发来的控制命令(如启动、停止、读、写等),并产生相应的控制信号发给外设。
向CPU报告设备状态:接口中有状态寄存器,反映设备当前状态(忙/闲、就绪、错误等),供CPU查询。
中断控制逻辑:当外设需要CPU服务时,接口通过中断逻辑向CPU发出中断请求。
时序控制:接口产生设备工作所需的时序信号,协调主机与外设之间的操作时序。
2.3 I/O接口的分类
(1) 按数据传送方式分类
| 类型 | 特点 | 典型接口 |
|---|---|---|
| 并行接口 | 数据以并行方式(多位同时)传送 | 打印机接口、IDE |
| 串行接口 | 数据以串行方式(逐位)传送 | RS-232、USB |
(2) 按功能选择的灵活性分类
| 类型 | 特点 |
|---|---|
| 可编程接口 | 功能可通过程序设定(如设置工作模式、中断使能等),灵活通用 |
| 不可编程接口 | 功能固定,不能通过程序改变 |
(3) 按是否需要CPU介入数据传送分类
| 类型 | 特点 |
|---|---|
| 程序控制接口 | 数据传送需要CPU直接参与(程序查询、中断方式) |
| DMA接口 | 数据传送不经过CPU,由DMA控制器直接控制(DMA方式) |
2.4 I/O接口的基本结构
一个典型的I/O接口包含以下寄存器:
| 寄存器 | 缩写 | 作用 | CPU访问方式 |
|---|---|---|---|
| 数据缓冲寄存器 | DBR | 暂存输入/输出数据 | 可读可写 |
| 状态寄存器 | SR | 存放设备状态信息 | 只读 |
| 控制/命令寄存器 | CR | 存放CPU发来的控制命令 | 只写 |
| 设备地址寄存器 | DAR | 存放设备选择地址 | 可读可写 |
2.5 I/O端口的编址方式
I/O端口是接口中CPU可访问的寄存器的地址。I/O端口的编址方式有两种:
(1) 统一编址(存储器映射 I/O)
将I/O端口地址与主存地址统一编址,共享同一个地址空间。I/O端口被看作特殊的存储单元。
| 特点 | 说明 |
|---|---|
| 优点 | 可使用全部存储器指令访问I/O端口,编程灵活;无需专用I/O指令 |
| 缺点 | I/O端口占用主存地址空间,减少了可用主存容量;地址译码更复杂 |
| 代表系统 | Motorola 68000系列、ARM |
(2) 独立编址(I/O映射 I/O)
I/O端口有独立的地址空间,与主存地址空间分开。CPU使用专用的I/O指令(如 IN、OUT)访问I/O端口。
| 特点 | 说明 |
|---|---|
| 优点 | I/O端口不占用主存地址空间;专用I/O指令使程序清晰,易于区分 |
| 缺点 | 需要专用I/O指令和控制信号(如 IOR、IOW);编程灵活性较低 |
| 代表系统 | Intel x86系列 |
三、两种编址方式对比表
| 对比维度 | 统一编址(存储器映射I/O) | 独立编址(I/O映射I/O) |
|---|---|---|
| 地址空间 | I/O与主存共享同一地址空间 | I/O有独立的地址空间 |
| 访问指令 | 使用存储器读写指令(MOV等) | 使用专用I/O指令(IN/OUT) |
| 地址译码 | 需要区分存储器地址和I/O地址 | 通过控制信号(M/IO#)区分 |
| 编程灵活性 | 高(可用全部指令) | 较低(仅限专用指令) |
| 主存空间占用 | 占用(I/O端口减少可用主存) | 不占用 |
| 典型代表 | ARM、MIPS、68000 | x86(Intel/AMD) |
| 控制信号 | MEMR/MEMW | IOR/IOW |
四、记忆辅助
I/O接口六大功能:"缓转选命状断"——数据缓冲、信号转换、设备选择、命令接收、状态报告、中断控制。
三种寄存器的读写方向:
- 数据缓冲寄存器(DBR):可读可写(双向)
- 状态寄存器(SR):只读(CPU只能读取设备状态)
- 控制/命令寄存器(CR):只写(CPU只能写入命令)
- 口诀:"数双状读控写"
编址方式选择:
- 统一编址 = "共用门牌号"(I/O和主存共用地址空间)
- 独立编址 = "各自有门牌"(I/O有自己的地址空间,用专用指令访问)
x86用独立编址:Intel的
IN/OUT指令是典型的独立编址标志。ARM/MIPS用统一编址。
五、例题精解
例题1
题目:下列关于I/O接口的叙述中,正确的是( )。 A. I/O接口中的状态寄存器可由CPU写入 B. I/O接口中的控制寄存器可由CPU读取 C. I/O接口中的数据缓冲寄存器用于解决CPU与外设的速度不匹配 D. I/O接口只能采用独立编址方式
四步解题:
Step 1 审题:判断关于I/O接口各寄存器和编址方式的描述。
Step 2 知识定位:
- 状态寄存器:只读(CPU读取设备状态)
- 控制寄存器:只写(CPU写入控制命令)
- 数据缓冲寄存器:可读可写,用于缓冲
- 编址方式:统一编址和独立编址两种
Step 3 逐项分析:
- A:状态寄存器是只读的,CPU不能写入,错误。
- B:控制寄存器是只写的,CPU不能读取,错误。
- C:数据缓冲寄存器的核心功能就是解决速度不匹配,正确。
- D:I/O接口可以采用统一编址或独立编址,错误。
Step 4 答案:C
例题2
题目:某计算机采用统一编址方式,地址总线宽度为20位,其中高4位用于I/O端口选择,低16位用于存储器寻址。问:(1) 该系统可寻址的主存空间是多少?(2) 可寻址的I/O端口数是多少?(3) 若改为独立编址,I/O端口仍用4位地址,对主存空间有何影响?
四步解题:
Step 1 审题:20位地址线,统一编址,高4位选I/O,低16位选存储器。
Step 2 知识定位:
- 统一编址下,地址空间被I/O和主存共享
- 高4位用于区分不同的I/O区域
Step 3 计算: (1) 主存寻址用低16位 → 可寻址 2^16 = 65536 个存储单元 = 64K单元 (2) I/O端口用高4位 → 可寻址 2^4 = 16 个I/O区域(每个区域内部可进一步细分端口) (3) 若改为独立编址,I/O端口有独立的4位地址空间 → 2^4 = 16 个端口
- 主存不再需要分配地址给I/O → 20位地址全部可用于主存
- 主存空间 = 2^20 = 1M单元(相比统一编址的64K大幅增加)
Step 4 答案: (1) 可寻址主存空间为 64K单元(16位地址) (2) 可寻址I/O端口数为 16个(4位地址) (3) 改为独立编址后,主存可使用全部20位地址,空间扩展为 1M单元
六、考情分析
| 维度 | 分析 |
|---|---|
| 出题频率 | 近10年约出现8-10次 |
| 题型 | 选择题(编址方式辨析、接口功能辨析)为主 |
| 难度 | ★★★(概念理解型,需要准确区分) |
| 考查重点 | 统一编址 vs 独立编址的区别;接口中各寄存器的读写权限;接口的基本功能 |
| 命题趋势 | 常与中断、DMA结合出综合题;编址方式的地址空间计算 |
七、易错点
状态寄存器只读,控制寄存器只写:这是最常见的混淆点。状态寄存器反映设备状态(CPU只能读),控制寄存器存放命令(CPU只能写)。口诀:"状读控写"。
统一编址 ≠ 不需要地址译码:统一编址下仍然需要地址译码来区分I/O端口和存储单元,只是译码逻辑更复杂(需要区分两者的地址范围)。
独立编址的I/O地址空间通常很小:x86的I/O地址空间只有64K(16位地址线),远小于主存地址空间。不要误以为独立编址的I/O空间也很大。
接口≠端口:I/O接口是一个完整的硬件模块(控制器),包含多个I/O端口(寄存器)。一个接口可以有多个端口。
八、来源标注
| 来源 | 说明 |
|---|---|
| 《计算机组成原理》(唐朔飞) | 第8章 I/O系统,I/O接口 |
| 《计算机组成原理》(蒋本珊) | 第7章 I/O接口 |
| 408统考大纲 | 第六章 总线与I/O系统 - I/O接口 |
| 历年真题 | 2012/2015/2018/2021/2024年相关选择题 |