主存字块标记位数怎么算

主存字块标记位数怎么算,第1张

4*1024*1024=2^2*2^10*2^10=2^22。

主存1MB,为2的20次方,故主存地址为20位,cache为16kb为2的14次方,故cache地址位为14位,由于块大小为512B为2的9次方,故块内地址为9位,由于使用直接映射方式,综上可得出,cache的地址结构为:cache块号(14-9=5位)+块内地址(9位)。

主存的地址结构为:主存块号(标记字段6位+cache块号5位)+块内地址(9位);得出这些后由于cache块号为5位,因此有2的5次方个单元数量,由于每个单元中存放的是块标记,因此,块表容量为6*2的5次方的容量。

容量

在一个存储器中容纳的存储单元总数通常称为该存储器的存储容量。存储容量用字数或字节数(B)来表示,如64K字,512KB,10MB。外存中为了表示更大的存储容量,采用MB,GB,TB等单位。其中1KB=2^10B,1MB=2^20B,1GB=2^30B,1TB=2^40B。B表示字节,一个字节定义为8个二进制位,所以计算机中一个字的字长通常为8的倍数。存储容量这一概念反映了存储空间的大小。

1、页和块的对象不同:页是对逻辑地址进行分页存储,块是对实际地址进行分块存储。

2、页号是虚拟地址的划分,指向程序中的某一页,每个页号对应一个页面号。

3、块号是实际地址的划分,指向内存空间中某一个物理块。

4、页面号不是块号。

扩展资料

分页存储

1、分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。

2、相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0#块、1#块等等。

3、在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。

分段存储

1、在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例如,有主程序段MAIN、子程序段X、数据段D及栈段S等。

2、每个段都有自己的名字。为了实现简单起见,通常可用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间。

3、段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间由于是分成多个段,因而是二维的,亦即,其逻辑地址由段号(段名)和段内地址所组成。

参考文献:百度百科-存储管理

首先说下面的问题吧。每个块是32个字,一个字是16位,故一个块是32*16=512bit

回到第一个问题 :每组4个存储块就是4路组相联。一个组含有几个块就称为几路组相联。

组相联映射是全相联映射和直接映射的折中方案。它有两种方案,不同的教材有不同的说法。

最常见的的一种方案 是cache中的组直接映射到主存的块号中。怎么说呢?就是cache中有4个组,那么主存中的块就按组号来映射。举例说cache中有8块采用2路组相联,即有4组。分别是第0、1、2 、3组。主存中有16个块。块号是0~15,那么第0组中的两个块可以是主存中0、 4、 8、 12 中的任意两个块。这样cache的地址只分成 组号 块内地址 ,主存的地址 分成 主存标记 组号 快内地址 三个部分

而第二种方案要复杂一些但层次更明晰。它是将cache整个映射到主存中。它等于将主存化成了一个个区,每个区的大小和cache相同。仍是上个例子。那么第0组中的两个块分别映射为主存中的0、 1块 和8、 9块 。这样cache的地址只分成 组号 块内地址 ,主存的地址 分成 主存标记 区号 组号 快内地址 四个部分

其实我说的还是不是很透彻,自己最好按我说的画个图。就就比较好理解了

这是我以前回答较为类似的问题。 下班了没仔细看。回头回答


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/219636.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存