这一直令人费解,所以我会把它全部放在这里。显然,通过MMIO,您可以使用某个内存映射地址访问外部设备,然后将其重新路由到该设备本身(通过写入、命令包等)。但是,我一直听到对硬件寄存器(例如 CPU/GPU 寄存器,甚至声音芯片)和可互换使用的内存映射寄存器的混合描述。它们是一样的吗?
当您说“内存映射寄存器”时,您是不是指数据字节重新路由到该设备内的特定地址的地址(例如,理论上:GPU 的 0x500 地址用于寄存器 TEXTURE_BUFFER)。但是,内存映射设备无法映射 RAM 内的物理寄存器。
那么基本上,内存映射寄存器和硬件寄存器之间有什么区别?