2017-06-20 38 views
0

有人可以帮助我理解这个问题:努力摆脱存储位置的最大范围

处理器提供的寻址主64GB内存,如AMD FX8350 下列哪项是主存储器位置的正确maximun范围对于这样的处理器?

A.0x000为0x3FF

B.0x0 0000到0x3F FFFF

C.0x000 0000为0x3FF FFFF

D.0x0 0000 0000到0x3F FFFF FFFF

E. 0x0 000 000 000 TO 0x3F FFFF FFFF FFFF

+0

这是一个非常简单的作业。我的经验是,如果你失败了,那么这样简单的练习最好是退后一步,然后刷上基本素材。例如,当你用十进制转换这些地址并使用千兆二进制尺度时会发生什么? –

+0

实际情况并非如此简单,物理内存映射有漏洞(其中一些非常大),因此,例如,如果您有4GB的RAM,它将会延伸到0xFFFFFFFF以上。 – harold

+0

我不认为这是一个真实世界的例子@harold,我相信这是在转换中训练OP的功课。当细节缺乏这通常是一个简单的场景作业:)。而且,它是可寻址的内存,因此漏洞不计算在内。 –

回答

0

恐怕这个问题没有简单的答案。微处理器将有不同的addressing modes,并将实际内存映射到页面中的虚拟地址空间,通常为4k大小。所以虚拟地址空间甚至可能不是连续的。

+0

AMD FX8350仅仅作为一个例子,这可以用于任何提供64gm主内存的处理器,我确信它的一个简单的计算我只是不记得了。 – user3185534

0

首先,没有“处理器提供xx内存”这样的东西。处理器可以指定它可以操作的地址数量。最常见的情况是32位和64位。具有32位寻址的处理器能够访问2^32个位置= 4GB。理论上64位寻址的处理器能够处理2^64个位置。但是,其中大多数仅支持48位寻址,提供256 TB的可寻址空间。

现在为了使用这种功能,您还需要操作系统的支持,如果您有64位处理器和32位操作系统,则只能访问32位地址。