MMIO是会占用大量的地址,但这个地址是物理地址,不是虚拟地址,32位程序4G地址空间指的是虚拟地址,这完全是两回事,所以不会影响应用程序运行。
但MMIO确实会影响32位的性能,会导致可用的物理内存总数变小,比如下面的问题就是一个例子:
不可用的内存,就是被MMIO占用了。
另外,显卡显存并不是全部都能被CPU访问的。是采用一个类似映射窗口的机制,只映射其中的某一部分,然后通过寄存器来操纵具体哪部分被映射出来。
具体占用了多少,可以在设备管理器里,找到显卡,看属性-资源里就有显示占用的内存情况。我这个老机器的显存是2G,但占用的MMIO空间只有170M左右