📜  IO 接口(中断和 DMA 模式)(1)

📅  最后修改于: 2023-12-03 15:31:25.735000             🧑  作者: Mango

IO 接口(中断和 DMA 模式)

什么是 IO 接口

IO 接口是指输入输出接口,是计算机与外设连接的桥梁。计算机通过 IO 接口将数据传输至外设,或将外设中的数据传输至计算机。

传输数据的过程需要使用到中断和 DMA 模式。

中断模式

中断是计算机处理器根据外部事件(如输入设备和输出设备)请求而发生的一种程序响应机制。在中断模式下,外设会发出一个中断请求信号,将控制权交给操作系统处理。

中断流程
  1. 外设发出中断请求信号
  2. 接口控制器发送一个中断请求给 CPU
  3. CPU 收到中断请求后暂停当前程序的执行,保存现场
  4. CPU 切换到中断服务程序处理中断,即响应
  5. 中断服务程序结束后,CPU 恢复被中断的进程现场,继续执行
中断的优点
  • 外设无需等待 CPU 的响应,增加了 IO 设备的吞吐能力。
  • CPU 在等待外设的数据传输时,处理其它任务,提高了计算机的使用效率。
中断的缺点
  • 中断响应过多会导致 CPU 的过度开销。
  • 若多个设备同时发出中断请求,则需要按照一定的优先级处理中断请求,增加了时间和开销。
DMA 模式

DMA(Direct Memory Access,直接内存访问)模式是指数据传输不需要 CPU 的干预,由 DMA 控制器直接和内存进行数据交换。在 DMA 模式下,CPU 只需要给出一条数据传输指令,而不需要进行每个数据的传输,由 DMA 控制器自动完成传输过程。

DMA 流程
  1. CPU 发出 DMA 请求
  2. DMA 控制器将 CPU 置于挂起状态,接管总线控制,并向 CPU 发出 DMA 信号
  3. DMA 控制器向外设发出请求,获取数据
  4. DMA 控制器放入内存中
  5. DMA 控制器将传输数据发送给外设
  6. DMA 控制器将 CPU 进行解挂,在相应的位置存放 DMA 控制器控制好的数据。
DMA 的优点
  • 无需 CPU 干预就可以进行数据传输,减轻了 CPU 的负担。
  • 支持高速数据传输,可以提高设备的吞吐能力。
  • DMA 只需要进行一次读写操作,可以提高数据储存的效率。
DMA 的缺点
  • DMA 模式下,对写入内存的数据没有进行检查,不能提供数据完整性的保证。
  • DMA 控制器不能对数据进行处理,无法实现某些操作。
结论

中断模式和 DMA 模式都是计算机与外部设备交换数据的重要方式。根据设备的特点和应用情况,可选择合适的模式进行数据交换,以提高数据传输的效率。