io控制方式 - wolai 笔记

1. 程序直接控制方式

  • 完成一次读写过程:CPU发出IO命令后需要不断轮询
  • CPU干预频率:极高
  • 每次IO的数据传输单位:字
  • 数据流向
    • 设备 --> CPU --> 内存
    • 内存 --> CPU --> 设备
  • 优点:实现简单
  • 缺点:CPUIO设备只能串行工作,CPU需要一直轮询检查长期处于“忙等”状态,CPU占用率低

2. 中断驱动方式

  • 完成一次读写过程:CPU发出IO命令后可以做其他事,本次IO完成后设备控制器发出中断信号
  • CPU干预频率:高;每次IO操作开始之前、完成之后需要CPU介入
  • 每次IO的数据传输单位:字
  • 数据流向
    • 设备 --> CPU --> 内存
    • 内存 --> CPU --> 设备
  • 优点:CPUIO设备可以并行工作,CPU利用率得到明显提升
  • 缺点:每个字在IO设备与内存之间传输,都需要经过CPU;频繁的中断处理会消耗较多的CPU时间
注意
  • CPU会在每个指令周期的末尾检测中断
  • 中断处理过程中需要保存、恢复进程的运行环境,这个过程是需要一定时间的开销的。如果中断发生的频率太高,也会降低系统性能。

3. DMA方式

  • 完成一次读写过程:CPU发出IO命令后可以做其他事,本次IO完成后DMA控制器发出中断信号
  • CPU干预频率:中;仅在传送一个或多个数据块的开始和结束时,才需要CPU干预
  • 每次IO的数据传输单位:块;每次读写只能时连续的块且这些块读入内存后在内存中页必须是连续的
  • 数据流向
    • 设备 --> 内存
    • 内存 --> 设备
  • 优点:数据的传输不再需要先经过CPU再写入内存,效率进一步提升
  • 缺点:CPU每发出一条IO指令,只能读写一个或多个连续的数据块;若需要读写多个离散的数据块,需要多次处理
  • DR(Data Register,数据寄存器):暂存从设备到内存,或从内存到设备的数据
  • MAR(Memory Address Register,内存地址寄存器):在输入时,MBR表示数据应放到内存中的什么位置;输出时MAR表示要输出的数据放在内存中的什么位置
  • DC(Data Counter,数据计数器):表示剩余要读/写的字节数
  • CR(Command Register,命令/状态寄存器):用于存放CPU发来的IO命令,或设备的状态信息

4. 通道控制方式

  • 完成一次读写过程:CPU发出IO命令后可以做其他事;通道会执行通道程序以完成IO,完成后通道向CPU发出中断信号
  • CPU干预频率:低
  • 每次IO的数据传输单位:一组块
  • 数据流向
    • 设备 --> 内存
    • 内存 --> 设备
  • 优点:CPU、通道、IO设备可并行工作,资源利用率很高
  • 缺点:实现复杂,需要专门的通道硬件支持

Comment