Skip to content

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接口的主要功能

  1. 数据缓冲:设置数据缓冲寄存器(DBR),解决CPU与外设速度不匹配的问题。快速的CPU写入缓冲区后即可继续工作,慢速外设从缓冲区读取数据。

  2. 信号格式转换:完成串/并行转换、电平转换、A/D或D/A转换等。CPU内部是并行数据,某些外设需要串行数据。

  3. 设备选择:通过地址译码选择具体的I/O设备。当CPU发出I/O地址时,接口中的地址译码器判断是否选中本设备。

  4. 接收和执行CPU命令:接口中有命令寄存器,存放CPU发来的控制命令(如启动、停止、读、写等),并产生相应的控制信号发给外设。

  5. 向CPU报告设备状态:接口中有状态寄存器,反映设备当前状态(忙/闲、就绪、错误等),供CPU查询。

  6. 中断控制逻辑:当外设需要CPU服务时,接口通过中断逻辑向CPU发出中断请求。

  7. 时序控制:接口产生设备工作所需的时序信号,协调主机与外设之间的操作时序。

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指令(如 INOUT)访问I/O端口。

特点说明
优点I/O端口不占用主存地址空间;专用I/O指令使程序清晰,易于区分
缺点需要专用I/O指令和控制信号(如 IORIOW);编程灵活性较低
代表系统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、68000x86(Intel/AMD)
控制信号MEMR/MEMWIOR/IOW

四、记忆辅助

  1. I/O接口六大功能"缓转选命状断"——数据缓冲、信号转换、设备选择、命令接收、状态报告、中断控制。

  2. 三种寄存器的读写方向

    • 数据缓冲寄存器(DBR):可读可写(双向)
    • 状态寄存器(SR):只读(CPU只能读取设备状态)
    • 控制/命令寄存器(CR):只写(CPU只能写入命令)
    • 口诀:"数双状读控写"
  3. 编址方式选择

    • 统一编址 = "共用门牌号"(I/O和主存共用地址空间)
    • 独立编址 = "各自有门牌"(I/O有自己的地址空间,用专用指令访问)
  4. 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结合出综合题;编址方式的地址空间计算

七、易错点

  1. 状态寄存器只读,控制寄存器只写:这是最常见的混淆点。状态寄存器反映设备状态(CPU只能读),控制寄存器存放命令(CPU只能写)。口诀:"状读控写"。

  2. 统一编址 ≠ 不需要地址译码:统一编址下仍然需要地址译码来区分I/O端口和存储单元,只是译码逻辑更复杂(需要区分两者的地址范围)。

  3. 独立编址的I/O地址空间通常很小:x86的I/O地址空间只有64K(16位地址线),远小于主存地址空间。不要误以为独立编址的I/O空间也很大。

  4. 接口≠端口:I/O接口是一个完整的硬件模块(控制器),包含多个I/O端口(寄存器)。一个接口可以有多个端口。


八、来源标注

来源说明
《计算机组成原理》(唐朔飞)第8章 I/O系统,I/O接口
《计算机组成原理》(蒋本珊)第7章 I/O接口
408统考大纲第六章 总线与I/O系统 - I/O接口
历年真题2012/2015/2018/2021/2024年相关选择题

考研全科复习资料 - 基于2026考研统考大纲