解释计算机架构中的各种 DMA 传输模式?
DMA 代表直接内存访问 (Direct Memory Access)。它是一种硬件控制的数据传输方法。外部设备可以控制数据传输。外部设备会创建控制数据传输所需的地址和控制信号。外部设备还允许外设直接访问内存。控制数据传输的外部设备称为 DMA 控制器。
DMA 数据传输有三种不同的模式,如下所示 −
突发模式 − 在突发模式下,整个数据块以一个连续的序列共享。由于 CPU 允许 DMA 控制器访问系统总线,因此它会提前发送数据块中的所有数据字节,从而将系统总线的控制权交还给 CPU。此模式有利于将程序或数据记录加载到内存中,但它会导致 CPU 长时间处于非活动状态。
周期窃取模式 − 在周期窃取模式下,DMA 控制器像在突发模式下一样使用 BR 和 BG 信号访问系统总线。它可以共享一个字节的信息,然后置低 BR,将系统总线的控制权交还给 CPU。它已经通过 BR 发出请求,每次请求共享一个字节的信息,就在它共享整个数据块之前。
通过频繁获取和释放对系统总线的控制,DMA 控制器基本上交错执行指令和数据传输。CPU 处理一条指令,然后 DMA 控制器发送一个数据值,因此 CPU 处理另一条指令,然后 DMA 控制器发送另一个数据值,依此类推。
透明模式 −透明模式共享数据块所需的时间最长,但就整个系统性能而言,它同样重要。在透明模式下,DMA 控制器仅在 CPU 执行不使用系统总线的操作时共享数据。例如,相对简单的 CPU 具有多个状态,这些状态仅在 CPU 内部更改或处理数据 −
NOP1:(No Operation) LDAC5:AC←DR JUMP3:PC←DR,TR CLAC1:AC←0,Z←1
透明模式的优势在于 CPU 永远不会停止执行其程序。DMA 传输在时间方面是互补的。硬件需要决定 CPU 何时不使用总线,这可能非常复杂且成本相对昂贵。此外,更先进的 CPU 会重叠其内部服务,几乎每个周期都会使用系统总线。

