在本文中,我们将讨论传输模式的概述,主要关注 I/O 程序控制传输与 DMA 传输之间的区别。让我们一一讨论。
先决条件 –详细的转移模式
传输方式:
CPU 执行 I/O 指令并暂时接受数据,但最终,源/目标将是任何内存单元。有多种模式可以在 CPU 和 I/O 设备之间进行数据传输。可以在以下 3 种给定模式之一中处理与外设之间的数据传输。
- 编程输入/输出
- 中断 – 驱动 I/O
- 直接内存访问 (DMA)
让我们一一讨论。
- 编程输入/输出:
在程控 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. |