📜  DMA控制器的内部寄存器

📅  最后修改于: 2021-06-28 15:18:17             🧑  作者: Mango

直接内存访问(DMA)控制器的内部寄存器为:-

1. Base Address Register (16 bit)
2. Base Word Count Register (16 bit)
3. Current Address Register (16 bit)
4. Current Word Count Register (16 bit)
5. Temporary Address Register (16 bit)
6. Temporary Word Count Register (16 bit)
7. Status Register (8 bit)
8. Command Register (8 bit)
9. Temporary Register (8 bit)
10. Mode Register (8 bit)
11. Mask Register (4 bit)
12. Request Register (4 bit) 

这些解释如下。

  1. 基址寄存器:
    它是一个16位寄存器,用于存储DMA控制器中将从其进行数据传输的初始地址。每次操作后,它用于重新加载当前地址寄存器。
  2. 基本字数寄存器:
    它是一个16位寄存器,用于存储操作期间要执行的传输次数。每次操作后,它用于重新加载当前字数寄存器。
  3. 当前地址寄存器:
    它是一个16位寄存器,用于存储DMA数据传输的存储器地址。每次操作后,该值都会根据其编程方式自动增加或减少。每个通道都有自己的当前地址寄存器。
  4. 当前字数寄存器:
    它是一个16位寄存器,用于存储操作期间剩余要执行的传输次数。每次操作后,该值都会自动减小。
  5. 临时地址寄存器:
    它是一个16位寄存器,用于在DMA控制器中存储从存储器到存储器的传输期间存储数据的地址。
  6. 临时字数寄存器:
    它是一个16位寄存器,用于存储DMA控制器在存储器到存储器的传输期间要执行的传输次数。
  7. 状态寄存器:
    它是一个8位寄存器,用于指示哪个通道当前处于DMA服务之下或哪个通道已达到其终端计数。它基本上给出了通道的状态。终端计数(TC)位指示通道是否已达到其终端计数。如果达到终端计数,则传输将终止。

  8. 命令寄存器:
    它是一个8位寄存器,用于编程DMA操作并初始化要用于数据传输的通道。
  9. 临时注册:
    它是一个8位寄存器,在存储器到存储器的数据传输期间保存数据。它始终包含前一个内存中传输到内存传输操作的最后一个字节。
  10. 模式寄存器:
    它是一个8位寄存器,用于确定通道的工作模式,即传输模式和其他传输参数。每个通道都有自己的模式寄存器,该寄存器由位0和1选择。

  11. 屏蔽寄存器:
    它是一个4位寄存器,用于屏蔽通道以请求DMA服务。当通道上的屏蔽设置为SET时,该通道被禁用。它仅需一个命令即可设置或清除所有通道上的所有掩码。

  12. 要求注册:
    它是一个4位寄存器,用于通过软件请求DMA数据传输。它确定哪个通道正在请求数据传输。