📅  最后修改于: 2023-12-03 15:31:25.735000             🧑  作者: Mango
IO 接口(中断和 DMA 模式)
什么是 IO 接口
IO 接口是指输入输出接口,是计算机与外设连接的桥梁。计算机通过 IO 接口将数据传输至外设,或将外设中的数据传输至计算机。
传输数据的过程需要使用到中断和 DMA 模式。
中断模式
中断是计算机处理器根据外部事件(如输入设备和输出设备)请求而发生的一种程序响应机制。在中断模式下,外设会发出一个中断请求信号,将控制权交给操作系统处理。
中断流程
- 外设发出中断请求信号
- 接口控制器发送一个中断请求给 CPU
- CPU 收到中断请求后暂停当前程序的执行,保存现场
- CPU 切换到中断服务程序处理中断,即响应
- 中断服务程序结束后,CPU 恢复被中断的进程现场,继续执行
中断的优点
- 外设无需等待 CPU 的响应,增加了 IO 设备的吞吐能力。
- CPU 在等待外设的数据传输时,处理其它任务,提高了计算机的使用效率。
中断的缺点
- 中断响应过多会导致 CPU 的过度开销。
- 若多个设备同时发出中断请求,则需要按照一定的优先级处理中断请求,增加了时间和开销。
DMA 模式
DMA(Direct Memory Access,直接内存访问)模式是指数据传输不需要 CPU 的干预,由 DMA 控制器直接和内存进行数据交换。在 DMA 模式下,CPU 只需要给出一条数据传输指令,而不需要进行每个数据的传输,由 DMA 控制器自动完成传输过程。
DMA 流程
- CPU 发出 DMA 请求
- DMA 控制器将 CPU 置于挂起状态,接管总线控制,并向 CPU 发出 DMA 信号
- DMA 控制器向外设发出请求,获取数据
- DMA 控制器放入内存中
- DMA 控制器将传输数据发送给外设
- DMA 控制器将 CPU 进行解挂,在相应的位置存放 DMA 控制器控制好的数据。
DMA 的优点
- 无需 CPU 干预就可以进行数据传输,减轻了 CPU 的负担。
- 支持高速数据传输,可以提高设备的吞吐能力。
- DMA 只需要进行一次读写操作,可以提高数据储存的效率。
DMA 的缺点
- DMA 模式下,对写入内存的数据没有进行检查,不能提供数据完整性的保证。
- DMA 控制器不能对数据进行处理,无法实现某些操作。
结论
中断模式和 DMA 模式都是计算机与外部设备交换数据的重要方式。根据设备的特点和应用情况,可选择合适的模式进行数据交换,以提高数据传输的效率。