[讨论]决定计算机系统最大内存量的是CPU的虚拟地址空间大小还是物理地址空间大小?

时间:2022-04-05 04:50:22
学IA64的时候发现它的虚拟地址字长和物理地址字长好象不一样的,因为想起了这个问题,因为虚拟地址总是要映射到物理地址才能真正用来存储信息的。那如果物理地址比虚拟地址要小的话,计算机的内存数不是被物理地址空间给限制了吗?

7 个解决方案

#1


当然是物理地址空间决定内存大小了。
正常情况下,无法安装超过物理地址空间大小的内存,就是装了多余的部分也不能用,除非使用分页(这个分页与物理地址映射到逻辑地址的分页不是一回事,是指把不同的物理内存切换映射到相同的物理地址)映射的方式切换使用。

#2


这个和chipset 有关,对不不同的chipset ,在chipset里面有设置可以使用的最大能用的 phical memory.比如是32位的系统,没有开启remap功能的话,最大的可访问的地址是4G,
4G=phical memory +logical memory(for PCIE , PCI ,APIC ,BIOS etc,的访问)

#3


DelphiGuy未尽正确, 你想想video ram, 我们只要用少许物理地址(0xb8000), 就可以控制很大很大的video ram了, 所以还是要看cpu的设计吧.

#4


那就是分页方式。

#5


关键在协议吧,如果一32位系统发两次才是一个有效地址的话……
呵呵,一切都有可能

#6


各位说的都有道理,其实就是实现小通道大容量的技术,可以考虑多种方法的结合使用。

#7


学IA64的时候发现它的虚拟地址字长和物理地址字长好象不一样的,因为想起了这个问题,因为虚拟地址总是要映射到物理地址才能真正用来存储信息的。那如果物理地址比虚拟地址要小的话,计算机的内存数不是被物理地址空间给限制了吗?
===> 物理地址跟虚拟地址 在大小上没任何关系。
那如果物理地址比虚拟地址要小的话,计算机的内存数不是被物理地址空间给限制了吗?
====>正因为物理地直比虚拟地址小,才有了 虚拟地址的概念,要不然要 virtual address来干什么?
如果在 PG 模式下,决定程序能用多少空间的在于虚拟地址大小。操作系统能用多少空间,要看总线情况及CPU,从P4开始,就支持36bit 的物理地址,而现在 EM64 使得程序可用64位的虚拟地址,当然物理地址也支持 64位了吧。

#1


当然是物理地址空间决定内存大小了。
正常情况下,无法安装超过物理地址空间大小的内存,就是装了多余的部分也不能用,除非使用分页(这个分页与物理地址映射到逻辑地址的分页不是一回事,是指把不同的物理内存切换映射到相同的物理地址)映射的方式切换使用。

#2


这个和chipset 有关,对不不同的chipset ,在chipset里面有设置可以使用的最大能用的 phical memory.比如是32位的系统,没有开启remap功能的话,最大的可访问的地址是4G,
4G=phical memory +logical memory(for PCIE , PCI ,APIC ,BIOS etc,的访问)

#3


DelphiGuy未尽正确, 你想想video ram, 我们只要用少许物理地址(0xb8000), 就可以控制很大很大的video ram了, 所以还是要看cpu的设计吧.

#4


那就是分页方式。

#5


关键在协议吧,如果一32位系统发两次才是一个有效地址的话……
呵呵,一切都有可能

#6


各位说的都有道理,其实就是实现小通道大容量的技术,可以考虑多种方法的结合使用。

#7


学IA64的时候发现它的虚拟地址字长和物理地址字长好象不一样的,因为想起了这个问题,因为虚拟地址总是要映射到物理地址才能真正用来存储信息的。那如果物理地址比虚拟地址要小的话,计算机的内存数不是被物理地址空间给限制了吗?
===> 物理地址跟虚拟地址 在大小上没任何关系。
那如果物理地址比虚拟地址要小的话,计算机的内存数不是被物理地址空间给限制了吗?
====>正因为物理地直比虚拟地址小,才有了 虚拟地址的概念,要不然要 virtual address来干什么?
如果在 PG 模式下,决定程序能用多少空间的在于虚拟地址大小。操作系统能用多少空间,要看总线情况及CPU,从P4开始,就支持36bit 的物理地址,而现在 EM64 使得程序可用64位的虚拟地址,当然物理地址也支持 64位了吧。