Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory management DMA控制器有自己的寄存器吗?_Memory Management_Cpu Registers_Dma - Fatal编程技术网

Memory management DMA控制器有自己的寄存器吗?

Memory management DMA控制器有自己的寄存器吗?,memory-management,cpu-registers,dma,Memory Management,Cpu Registers,Dma,我试图了解DMA控制器如何工作的细节 我在看8237 DMA控制器。某些信息包含一些带有寄存器值的表 这些是DMA自己的寄存器,还是CPU的寄存器?DMA控制器寄存器不同于CPU寄存器(在8237的情况下,它实际上是一个具有不同硅的不同芯片)。编程时,您可以使用链接页面(即“I/O端口”列)上所述的CPUIN和OUT指令访问DMA控制器寄存器 不同的硬件体系结构可能提供访问DMA控制器寄存器的不同方法,例如,它们可以是“内存映射”而不是I/O端口。并且您还应该注意,“IO端口”号是DMA控制器所

我试图了解DMA控制器如何工作的细节

我在看8237 DMA控制器。某些信息包含一些带有寄存器值的表


这些是DMA自己的寄存器,还是CPU的寄存器?

DMA控制器寄存器不同于CPU寄存器(在8237的情况下,它实际上是一个具有不同硅的不同芯片)。编程时,您可以使用链接页面(即“I/O端口”列)上所述的CPU
IN
OUT
指令访问DMA控制器寄存器


不同的硬件体系结构可能提供访问DMA控制器寄存器的不同方法,例如,它们可以是“内存映射”而不是I/O端口。

并且您还应该注意,“IO端口”号是DMA控制器所关心的数字。CPU的数量取决于芯片如何映射到CPU的I/O空间。因此,如果芯片映射为400H,那么芯片寄存器87H将是CPU I/O端口487H。