📜  I / O程序控制的传输与DMA传输

📅  最后修改于: 2021-08-25 10:22:37             🧑  作者: Mango

在本文中,我们将讨论传输模式的概述,并且主要关注I / O程序控制的传输与DMA传输之间的区别。让我们一一讨论。

先决条件–详细的传输方式

转移方式:
CPU执行I / O指令并暂时接受数据,但最后,源/目标将是任何存储单元。 CPU和I / O设备之间可以通过多种模式进行数据传输。可以在以下三种给定模式之一中处理与外围设备之间的数据传输。

  1. 编程的I / O
  2. 中断—驱动的I / O
  3. 直接内存访问(DMA)

让我们一一讨论。

  1. 编程的I / O:
    在程序控制的I / O中,处理器程序控制完整的数据传输。因此,仅当执行I / O传输指令时,才可以进行传输。在大多数情况下,需要检查设备是否准备就绪/不可以进行数据传输。通常,传输是与CPU寄存器和外设之间进行的。在此,CPU不断监视外围设备。在此,直到I / O单元指示可以传输为止,CPU等待并保持循环。由于它使CPU不必要地忙碌,因此非常耗时。
  2. 中断—驱动的I / O:
    为了克服编程I / O的缺点,即不必要地使CPU繁忙,使用了中断—驱动的I / O。用这种方法,当外设准备好传输数据时,外设就向CPU发送中断信号。这表明I / O数据传输是由外部I / O设备启动的。处理器停止当前程序的执行,并在中断时转移控制以中断服务程序。然后,中断服务程序执行数据传输。数据传输完成后,它将控制权返回到主程序,使其中断。
  3. 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.