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

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

I/O接口(中断和DMA模式)

当计算机需要与外部设备进行数据的传输时,需要通过I/O接口实现。在I/O接口中,主要有两种数据传输模式:中断和DMA模式。

中断模式

在中断模式中,计算机会对外部设备定期询问是否有数据需要传输,如果外部设备有数据需要传输,它会通过I/O接口发送一个中断信号给计算机,然后计算机会停止当前正在执行的程序,转而去执行中断处理程序。中断处理程序可以调用操作系统中的函数来读取或写入数据,然后再返回到中断发生之前的程序继续执行。

中断请求

外设把信号线拉低就说明它请求CPU的帮助,告诉CPU它准备好数据了,CPU就会向外部设备请求传输数据

中断向量表

每个中断信号都有一个唯一的中断向量,这是一个数字,计算机通过这个数字来确定该执行哪个中断处理程序。中断向量由操作系统初始化并维护,通常会存储在一个被称为中断向量表的数据结构中。

中断处理程序

中断处理程序是一个预先定义的函数,用于响应特定的中断信号。当中断信号发生时,计算机会跳转到与信号相关联的中断处理程序中,并执行该程序。中断处理程序可以调用操作系统中的函数来读取或写入数据,然后再返回到中断发生之前的程序继续执行。

DMA模式

在DMA模式中,外部设备会直接将数据传输到计算机的内存中,而不需要CPU的干预。在传输开始之前,CPU会初始化一个DMA控制器,告诉它从哪里将数据传输到哪里。然后,DMA控制器会控制数据的传输,直到传输完成。

DMA控制器

DMA控制器是一个专门的硬件设备,用于在DMA模式下传输数据。DMA控制器包括一个或多个通道,每个通道都可以同时传输一个数据块。在传输开始之前,CPU会初始化DMA控制器,并告诉它从哪里读取数据,将数据传输到哪里,并设置传输的数据块大小。

DMA传输模式

DMA传输模式主要有两种:单次传输和循环传输。在单次传输模式下,DMA控制器只传输一次数据块,传输完成后就停止。在循环传输模式下,DMA控制器会反复传输相同的数据块,直到CPU停止传输为止。

总结

I/O接口是计算机与外部设备进行数据传输的关键。中断模式依靠CPU周期性地轮询外部设备,实现数据的交换。而DMA模式则能大大节省CPU的开销,直接将数据存放到内存中。对于程序员来说,了解和掌握I/O接口的工作原理和两种数据传输模式的特点,能够更好地优化代码,提高程序运行效率。