在本文中,我们将讨论传输模式的概述,并且主要关注I / O程序控制的传输与DMA传输之间的区别。让我们一一讨论。
先决条件–详细的传输方式
转移方式:
CPU执行I / O指令并暂时接受数据,但最后,源/目标将是任何存储单元。 CPU和I / O设备之间可以通过多种模式进行数据传输。可以在以下三种给定模式之一中处理与外围设备之间的数据传输。
- 编程的I / O
- 中断—驱动的I / O
- 直接内存访问(DMA)
让我们一一讨论。
- 编程的I / O:
在程序控制的I / O中,处理器程序控制完整的数据传输。因此,仅当执行I / O传输指令时,才可以进行传输。在大多数情况下,需要检查设备是否准备就绪/不可以进行数据传输。通常,传输是与CPU寄存器和外设之间进行的。在此,CPU不断监视外围设备。在此,直到I / O单元指示可以传输为止,CPU等待并保持循环。由于它使CPU不必要地忙碌,因此非常耗时。 - 中断—驱动的I / O:
为了克服编程I / O的缺点,即不必要地使CPU繁忙,使用了中断—驱动的I / O。用这种方法,当外设准备好传输数据时,外设就向CPU发送中断信号。这表明I / O数据传输是由外部I / O设备启动的。处理器停止当前程序的执行,并在中断时转移控制以中断服务程序。然后,中断服务程序执行数据传输。数据传输完成后,它将控制权返回到主程序,使其中断。 - DMA —直接内存访问:
DMA传输用于大型数据传输。在此,接口使用存储总线将数据传入或传出存储单元。 CPU提供要传输到接口的起始地址和字节数,以启动传输,然后继续执行其他任务。进行传输时,DMA通过存储总线请求一个存储周期。当内存控制器批准请求后,DMA会将数据直接传输到内存中。为了允许直接内存传输(I / O),CPU会延迟其内存访问操作。因此,DMA允许I / O设备以较少的CPU干预直接访问内存。
I / O程序控制的传输和DMA传输之间的区别:
在这里,我们将讨论I / O程序控制的传输与DMA传输之间的区别。
S.No. | I/O Program Controlled Transfer | DMA Transfer |
---|---|---|
1. | It is software control data transfer | It is hardware control data transfer |
2. | Data transfer speed is slow | Data transfer speed is fast. |
3. | CPU is involved incomplete transfer. | CPU is not involved incomplete transfer. |
4. | Extra hardware is not required. | DMA controller is required for data transfer. |
5. | Data is routed through the processor, during the data transfer. | Data is not routed through the processor, during the data transfer. |
6. | Used for small data transfer. | Used for large data transfer. |