Language agnostic 虚拟地址大小计算

Language agnostic 虚拟地址大小计算,language-agnostic,hardware,paging,Language Agnostic,Hardware,Paging,我被困在这个问题上,我正在为明天的考试而学习。(我理解虚拟地址与物理地址、页面帧、地址总线等的概念) 如果您使用的是带有128K RAM和32位地址总线的4K页面,那么虚拟地址会有多大?您可以有多少个常规页面框架? 编辑:我相信答案是2^32和2^20。我只是不知道怎么计算。你的答案完全正确 使用32位地址总线,您可以访问2^32个唯一地址的虚拟空间 每个4K页面使用2^12(物理)地址,因此您可以将(2^32)/(2^12)=2^20页放入该空间 祝你考试顺利 编辑以解决评论中的问题: 您如

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

如果您使用的是带有128K RAM和32位地址总线的4K页面,那么虚拟地址会有多大?您可以有多少个常规页面框架?
编辑:我相信答案是2^32和2^20。我只是不知道怎么计算。

你的答案完全正确

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

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

祝你考试顺利


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

您如何知道无法访问超过2^32个地址?

32位地址总线意味着有32条线连接到RAM上的地址引脚——每条线由一个位表示。根据相应位是1还是0,每条导线保持在高电压或低电压,并且由32位值(如0xFFFF0000)表示的每个特定的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内存驻留在存储卡上。但是,使用32位地址总线,您仍然有32-17=15个地址位!您可以使用这些位从2^15=32768个存储卡中选择一个,这样您的总虚拟地址空间为2^32=4G的RAM

这比RAM和存储卡更有用吗?


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

你的答案完全正确

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

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

祝你考试顺利


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

您如何知道无法访问超过2^32个地址?

32位地址总线意味着有32条线连接到RAM上的地址引脚——每条线由一个位表示。根据相应位是1还是0,每条导线保持在高电压或低电压,并且由32位值(如0xFFFF0000)表示的每个特定的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内存驻留在存储卡上。但是,使用32位地址总线,您仍然有32-17=15个地址位!您可以使用这些位从2^15=32768个存储卡中选择一个,这样您的总虚拟地址空间为2^32=4G的RAM

这比RAM和存储卡更有用吗?


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

我认为虚拟地址可能比物理地址大。您如何知道您不能访问超过2^32个唯一地址?@tianium,您的逻辑地址(2^32)大于物理地址(128K=2^17)。地址总线限制了虚拟内存(32位=2^32)。我认为虚拟地址可能比物理地址大。您如何知道您不能访问超过2^32个唯一地址?@tianium,您的逻辑(2^32)比物理(1)大