为什么我的 CPU 有 39 个地址位却只支持 32GB RAM?

为什么我的 CPU 有 39 个地址位却只支持 32GB RAM?

以下是输出cat /proc/cpuinfo

user@localhost:~$ cat /proc/cpuinfo 
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 60
model name  : Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz
stepping    : 3
microcode   : 0x12
cpu MHz     : 800.000
cache size  : 3072 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 6784.48
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

现在,39 位应该能给我 512GiB 可寻址物理内存。然而,Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz仅支持 32GiB。这是为什么?我该如何协调这个计算?

我并不是在问主板上的插槽数量、最大 RAM/DIMM 卡数量等。我在寻找物理位、地址线和最大物理 RAM 数量如何适应。

另外,48 位应该占 256TiB 的虚拟地址空间。这是真的吗?

答案1

由于内存控制器的原因,它仅支持 32GB RAM。它在设计时就存在这个限制。同样,它的带宽限制为 25.6 GB/s。

答案2

因为芯片组支持的物理地址位数是 DRAM 控制器支持的地址位数的超集。

如果您将系统的 DRAM 容量最大化,仍然需要有空间将其他内容映射到物理地址空间:PCIe 配置空间、显卡和其他控制器的 MMIO 空间。DRAM 控制器仅映射到物理空间的一小部分。DRAM 系统支持的最大 DRAM 大小必须小于系统的物理地址空间大小。

我所说的 DRAM 系统是指 DRAM 控制器支持的地址大小、控制器的物理引脚接口所针对的单个 DDR 代、通道数、外部接线(芯片选择可能在物理上断开,限制了每个通道的等级数 - DDR4 支持每个通道 4 个等级,可以是 4 个单等级 DIMM(是的,是 DIMM 不是 SIMM)、2 个双等级模块或 1 个四等级模块)、DRAM 控制器引脚接口所针对的 DIMM 类型(如果是 LRDIMM,则它支持最多 32 个总等级的逻辑等级)、支持的存储体和存储体组数(应该是 4 个存储体和 4 个存储体组,但它可以更少,并且可能只有一根银行组线而不是 2 根),行选择引脚的数量(控制器只能有 16 个而不是 17 个)。

答案3

所有英特尔 LGA 1150 插槽 CPU 均限制为 32GB。

相关内容