【发布时间】:2011-03-12 22:04:56
【问题描述】:
我正在阅读http://duartes.org/gustavo/blog/post/motherboard-chipsets-memory-map,具体来说,是以下部分:
在主板中,CPU 的网关到 世界是前端的公共汽车 连接到北桥。 每当 CPU 需要读取或 它通过这条总线写内存。 它使用一些引脚来传输 它想要的物理内存地址 写或读,而其他引脚发送 要写入或接收的值 正在读取的值。英特尔酷睿 2 QX6600有33个引脚传输 物理内存地址(所以有 2^33 个内存位置选择)和 64针发送或接收数据(所以 数据以 64 位数据传输 路径或 8 字节块)。这允许 CPU 物理寻址 64 千兆字节的内存(2^33 个位置 * 8 字节)虽然大多数芯片组只 处理多达 8 GB 的 RAM。
现在上面的数学表明,由于有 33 个用于寻址的引脚,2^33 * 8 字节 = 64 GB。一切都很好,但现在我有点困惑。假设我安装了 64 位操作系统,我将能够解决总共 64 GB 或 2^64Gb * 8 = 2^64GB(更多)?另外,假设我在 32 位 cpu 上使用上述相同的 cpu,我仍然只能寻址 4 GB(2^32 位 = 4Gb * 8 = 4GB)?
我认为物理与“允许的操作系统”让我感到困惑。
谢谢!
【问题讨论】:
-
这个计算没有 OP 错误:
2^33 * 8 bytes = 64 GB。我的意思是,有 33 个可寻址引脚,最小可寻址单元是一个字节。因此,2^33 = 8GB 内存。乘法因子 8 是从哪里来的? -
@claws: OP 没有错,因为实际上有 36 个地址行(=> 2^36 = 64GB;)但只能使用 [0-32] 行(即 33 行)把地址。由于 DataBus 是 64 位(= 8 字节),因此它会获取所有 8 个字节,这些字节可以用放置在这 33 个(共 36 个)行上的地址构成。
标签: memory memory-management 64-bit