内存访问使用32位地址

时间:2017-02-08 17:26:09

标签: memory

我只是检查以确保我对内存访问的工作原理有正确的理解。

假设我有一个带有64位字的字可寻址存储器系统。使用32位地址可以访问多少内存?

64位字是8字节,因此我们处理8字节字。 一个8字节的字最多可以容纳2 ^ 8(256)。

鉴于我们有一个32位地址,我们有2 ^ 32,但由于每个字占用了256个,(2 ^ 32)/ 256 = 1677216个字节。

要将其纳入公制术语,我们有2 ^ 24 =(2 ^ 4)*(2 ^ 20)= 16 Mb。

这是正确的方法吗?我无法检查答案,并且安静了几个看起来像这样的问题。很想确保我没有提交垃圾!

2 个答案:

答案 0 :(得分:1)

32位地址提供4,294,967,296个可能的地址。如果最小的可寻址元素是64位== 8字节字(相对于一个字节),那么可寻址空间的总量将是4,294,967,296 x 8 = 34,359,738,368字节= 34GB。

对于8字节字的容量,它是8字节,而不是2 ^ 8 = 256字节。

请注意,一些旧计算机确实有一个只能处理单词的基本寻址系统。字节访问需要字节索引或偏离基于字的地址。我不认为现有的计算机都使用这种方案。

答案 1 :(得分:1)

您正在使用32位地址,这意味着可以寻址2 ^ 32位但是如果您想要多少字节可以寻址,那么只需将其除以2 ^ 32/8 = 2 ^ 29,因为1字节有8位 如果你想要多少个字可以被寻址那么2 ^ 29/8因为1个字包含8个字节所以可以寻址2 ^ 26个字。

由于一个字是8字节,所以我们可以寻址(2 ^ 26)* 8字节。 希望它可能有所帮助!