我试图计算最大内存大小,知道地址的位长和内存单元的大小。
我的理解是,如果地址是 n 位,则有 2^n 个内存位置。但是要计算机器的实际内存大小,您需要将地址数乘以内存单元的大小。那是对的吗?
换一种方式,
步骤1:以位为单位计算地址的长度(n位)
第二步:计算内存位置的数量 2^n(bits)
第 3 步:将内存位置的数量乘以内存单元的字节大小。
例如,如果每个单元格是 2 个字节,我是否会将 2^n 位(地址长度)乘以每个存储单元的 2 个字节。
那么总内存将是 2^n 位(地址大小)* x 字节(单元格大小)?
最佳答案
"actual memory size of the machine"
我在这里假设您指的是所讨论机器的物理地址空间,忽略虚拟寻址等。
大多数现代机器都是字节可寻址的(8 位),这意味着每个地址指 1 个字节。在这种情况下,假设您有一个具有匹配 n 位地址总线的 n 位处理器(有些情况下它们不相同,例如奔腾处理器),可能的内存位置数量是 2^n 字节。
如果您有更专业的硬件(嵌入式微 Controller 等),可以按字寻址(16 位、32 位),那么您将乘以 2^n *(以位为单位的字长)/(8) 是正确的= # 字节数。
话虽如此,当您考虑可能与处理器地址线不同的虚拟寻址和物理总线大小时,您必须查看该特定机器的“理论限制”。
关于memory - 根据地址位长和内存单元内容计算内存大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47187340/