解释计算机体系结构中各种DMA传输模式?
DMA代表直接内存访问 (Direct Memory Access)。它是一种硬件控制的数据传输方法。外部设备可以控制数据传输。外部设备创建地址和控制信号,这些信号是控制数据传输所必需的。外部设备还使外围设备可以直接访问内存。控制数据传输的外部设备称为DMA控制器。
DMA数据传输有三种不同的模式,如下所示:
突发模式 (Burst Mode) − 在突发模式下,整个数据块在一个连续的序列中共享。由于CPU允许DMA控制器访问系统总线,因此它在较早地将系统总线的控制权交还给CPU之前,发送数据块中的所有字节数据。此模式有利于将程序或数据记录加载到内存中,但它确实会使CPU在相当长的时间内处于非活动状态。
循环窃取模式 (Cycle Stealing mode) − 在循环窃取模式下,DMA控制器像突发模式一样获得对系统总线的访问权限,使用BR和BG信号。它可以共享一个字节的信息,然后取消断言BR,将系统总线的控制权返回给CPU。在共享其整个数据块之前,它已经通过BR发出请求,每次请求共享一个字节的信息。
通过频繁地获得和释放对系统总线的控制,DMA控制器实质上交织了指令和数据传输。CPU处理一条指令,然后DMA控制器发送一个数据值,然后CPU处理另一条指令,然后DMA控制器发送另一个数据值,等等。
透明模式 (Transparent Mode) − 透明模式需要最多时间来共享数据块,但在整个系统性能方面也很重要。在透明模式下,DMA控制器仅在CPU执行不使用系统总线的操作时才共享数据。例如,相对简单的CPU具有多个状态,这些状态仅在CPU内部更改或处理数据:
NOP1:(No Operation) LDAC5:AC←DR JUMP3:PC←DR,TR CLAC1:AC←0,Z←1
透明模式的优点是CPU永远不会停止执行其程序。DMA传输在时间上是互补的。确定CPU何时未使用总线的硬件可能非常复杂且成本相对较高。此外,更高级的CPU会重叠其内部服务并几乎在每个周期都使用系统总线。