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

📅  最后修改于: 2021-09-28 09:52:03             🧑  作者: Mango

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

先决条件 –详细的转移模式

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

  1. 编程输入/输出
  2. 中断 – 驱动 I/O
  3. 直接内存访问 (DMA)

让我们一一讨论。

  1. 编程输入/输出:
    在程控 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.