输入/输出技术
DMA
DMA控制器需要占用系统总线,以便将数据从外设传输到内存,或者从内存传输到外设(主存<->外设). 这个占用总线的过程就是一次总线周期
采用DMA方式传送数据时,每传送一个数据都需要占用一个(B)。
- (A) 指令周期
- (B) 总线周期
- (C) 存储周期
- (D) 机器周期
CPU是在(D)结束时响应DMA请求的。
- (A) 一条指令执行
- (B) 一段程序
- (C) 一个时钟周期: 是处理操作的最基本单位。
- (D) 一个总线周期: 也就是一个访存储器或I/O端口操作所用的时间。
计算机运行过程中,CPU需要与外设进行数据交换。采用( )控制技术时,CPU与外设可并行工作。
- (A) 程序查询方式和中断方式
- (B) 中断方式和DMA方式
- (C) 程序查询方式和DMA方式
- (D) 程序查询方式、中断方式和DMA方式
🔹 三种 I/O 方式对比表
特点/方式 | 程序查询方式(轮询) | 中断方式 | DMA方式(直接存储器访问) |
---|---|---|---|
CPU角色 | 全程盯着外设,亲力亲为 | 外设需要时才打断 CPU,CPU帮忙搬数据 | CPU只发起DMA请求,之后甩手不管 |
并行性 | ❌ 没有并行,CPU被绑死 | ✅ 有并行(CPU能干别的,偶尔被打断) | ✅ 强并行(CPU和DMA几乎独立工作) |
传输单位 | 一条指令一次 | 一次中断传输一个/少量数据 | 一次DMA传输一大块数据 |
速度 | 最慢 | 中等 | 最快 |
CPU是否保护现场 | 不涉及(CPU没被中断) | 需要保存和恢复现场 | 一般不需要 |
适用场景 | 低速设备,小量数据 | 中等速率设备,少量/中等数据 | 高速设备,大量连续数据 |
程序控制(查询)方式
CPU需要不断查询I/O是否完成,因此一直占用CPU。
程序中断方式
与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。
DMA方式
DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。CPU只负责初始化,不参与具体传输过程。
以下关于中断方式与DMA方式的叙述中,正确的是( )
A 中断方式与DMA方式都可实现外设与CPU之间的并行工作
B 程序中断方式和DMA方式在数据传输过程中都不需要CPU的干预
C 采用DMA方式传输数据的速度比程序中断方式的速度慢
D 程序中断方式和DMA方式都不需要CPU保护现场
在计算机中,I/O系统可以有5种不同的工作方式,分别是程序控制方式、程序中断方式、DMA工作方式、通道方式、I/O处理机。
1、程序控制方式
分为无条件查询和程序查询方式。
① 无条件传送方式,I/O端口总是准备好接受主机的输出数据,或是总是准备好向主机输入数据,而cpu在需要时,随时直接利用I/O指令访问相应的I/O端口,实现与外设的数据交换。优点是软、硬件结构简单,缺点是对时序要求高,只适用于简单的I/O控制。
② 程序查询方式
程序查询方式也称为程序轮询方式,该方式采用用户程序直接控制主机与外部设备之间输入/输出操作。CPU必须不停地循环测试I/O设备的状态端口,当发现设备处于准备好(Ready)状态时,CPU就可以与I/O设备进行数据存取操作。这种方式下的CPU与I/O设备是串行工作的。
2、中断方式
当I/O设备结束(完成、特殊或异常)时,就会向CPU发出中断请求信号,CPU收到信号就可以采取相应措施。当某个进程要启动某个设备时,CPU就向相应的设备控制器发出一条设备I/O启动指令,然后CPU又返回做原来的工作。CPU与I/O设备可以并行工作,与程序查询方式相比,大大提高了CPU的利用率。
3、DMA(直接内存存取)方式
DMA方式也称为直接主存存取方式,其思想是:允许主存储器和I/O设备之间通过“DMA控制器(DMAC)”直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无须CPU的干预。
4、通道控制方式
在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多地免去了cpu的接入,使主机和外设并行工作程度更高。
5、I/O处理机
指专门负责输入/输出的处理机。可以有独立的存储器、运算部件和指令控制部件。