我有一个非常简单(n00b)的问题。
20位外部地址总线提供1 MB物理地址空间(2 ^ 20 = 1,048,576)。(维基百科)
为什么1 MByte?
2^20 = 1,048,576 bit = 1Mbit = 128KByte not 1MB
我误解了一些事情。
答案 0 :(得分:5)
如果您有20位,则最多可以解决2^20
。这是您的范围,而不是位数。
即。如果你有8位,你的范围最多为255(无符号)而不是2 ^ 8位。
因此,对于20位,您可以寻址最多2 ^ 20个字节,即1MB
即。使用20位,您可以表示从0到2^20
= 1,048,576的地址。即你可以参考最多1MB的内存。
答案 1 :(得分:2)
1 << 20
个地址,即1,048,576
个字节可寻址。因此,1 MB的物理地址空间。
答案 2 :(得分:2)
因为存储器的最小可寻址单元(通常 - 某些架构具有小的可寻址存储器)是字节,而不是位。也就是说,每个地址都指一个字节,而不是一个字节。
为什么,你问?几乎不需要直接访问各个位 - 如果需要,您仍然可以加载周围的字节并使用位掩码和移位来获取该位。增加每个地址的位数使您可以使用相同的地址范围寻址更多内存。
请注意,严格来说,一个字节 不是8位,尽管它现在无处不在。但无论字节大小如何,您都要将位分组在一起以便能够处理更大量的数据。