当前位置:  开发笔记 > 编程语言 > 正文

虚拟地址大小计算

如何解决《虚拟地址大小计算》经验,为你挑选了1个好方法。

我被困在这个问题上,明天我正在为考试而学习.(我理解虚拟与物理地址,页面框架,地址总线等的概念)

如果你使用带有128K RAM和32位地址总线的4K页面,虚拟地址有多大?你有多少常规页面框架?

编辑:我相信答案是2 ^ 32和2 ^ 20.我只是不知道如何计算这个.



1> Adam Liss..:

你的答案是完全正确的.

使用32位地址总线,您可以访问2 ^ 32个唯一地址的虚拟空间.

每个4K页面使用2 ^ 12(物理)地址,因此您可以将(2 ^ 32)/(2 ^ 12)= 2 ^ 20页面放入空间.

祝你的考试顺利!


编辑以解决评论中的问题:

你怎么知道你不能访问2 ^ 32以上的地址?

32位地址总线意味着有32条线连接到RAM上的地址引脚 - 每条线由其中一个位表示.每根导线保持在高电压或低电压,这取决于相应的位是1还是0,并且由诸如0xFFFF0000的32位值表示的1和0的每个特定组合选择相应的存储器位置.使用32线,地址引脚上有2 ^ 32个独特的电压组合,这意味着您可以访问2 ^ 32个位置.

那么4K页面大小呢?

如果系统的页面大小为4K,则表示每页中的RAM芯片有12个地址位(因为2 ^ 12 = 4K).如果您的假设系统具有128K的RAM,则需要128K/4K = 32页或一组RAM芯片.因此,您可以使用12位来选择每个芯片上的物理地址,方法是将相同的12根线连接到每个RAM芯片上的12个地址引脚.然后使用另外5根电线选择32个页面中的哪一个包含您想要的地址.我们使用了12 + 5 = 17个地址位来访问2 ^ 17 = 128K的RAM.

让我们迈出最后一步,想象一下128K的RAM驻留在存储卡上.但是使用32位地址总线,您仍然有32-17 = 15个地址位!您可以使用这些位来选择2 ^ 15 = 32768个存储卡中的一个,从而为您提供总计2 ^ 32 = 4G RAM的虚拟地址空间.

这是否有用RAM和存储卡?

通常的做法是将大量位(如地址中的位)划分为较小的子组,以使其更易于管理.有时它们因物理原因而分开,例如地址引脚和存储卡; 其他时候出于逻辑原因,例如IP地址和子网.美妙之处在于实施细节与最终用户无关.如果访问地址0x48C7D3AB的存储器,只要存在存储器单元,就不关心它所在的RAM芯片或存储器的排列方式.当您浏览到67.199.15.132时,只要它接受您的upvotes,您就不在乎计算机是否在C类子网上.:-)

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有