什么是字块内地址?什么是主存块地址?什么是缓存块地址?什么是组地址?

如题。希望用简单易懂的话回答我,谢谢!
复制粘贴党哪凉快哪呆着去
还有是怎么算的,为什么要这样算。
例如这道题:
主存容量512KB,Cache容量4KB,每个字快16个字,每个字32位。
答案是在直接映射方式下字块内地址6位(4位表示16个字,2位表示每字32位)//为什么??//,缓存共64块,故缓存子块地址为6位,主存字块为7位。
关键给我解释下字块内地址,我一直搞不懂

字块内地址: 一个块含有几个字,数据位于第几个字就是字块内地止。

主存块地址:将主存分块存储,位于第几块就是主存块地址。

缓存块地址:将cache分块存储,位于第几块就是主存块地址。

组地址:将cache的块分组,位于第几组就是组地址。

具体关系如图所示:

扩展资料:

cache(缓存)与主存映射有三种映射:

全相联映射:主存的一块可以映射到cache的任意一行中。

直接相联映射 :根据cache的大小将主存划分为若干个区,每个区中的块与cache中的行一一对应。主存的一块只能存放到cache的某一特定行中。

组相联映射:

1、首先将cache的划分为若干组(U组),每组有V行(称为V路组相联)。

2、主存按每U块划分为一组,每组有U块。

3、主存的第j块按模U映射到cache的第i组中的任意一行。          

4、组间直接映射,组内全相联映射 

参考资料:百度百科-块映射策略

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-05

上面字块内地址的计算方法:

    每个字32位,每个字节8位,那么每个字对应4个字节;

    一个字块16个字,那么一个字块对应64个字节;

    64=2^6,即字块内地址为6位


4位表示16个字,2位表示每字32位-->这个的意思是:在取值的时候,地址指向的空间是八位八位的,不是一下子就取出32位,整四个字节,2位(00,01,10,11)表示每字32位的意思是:这一个字的四个字节的序号(可以这么理解,嘿嘿),每一次取出就是这16个字的第一个字节、第二个字节、第三个字节、第四个字节。

本回答被网友采纳
第2个回答  2018-08-02
补充一下最佳答案里的说法。
参考《计算机组成原理(第二版:唐朔飞教授)》P73
【关于主存中存储单元地址的分配】:
”通常计算机即可按字寻址,也可按字节寻址。若按字节寻址,即它的每一个存储字包含n个可独立寻址的字节。“(拓展了原话)
套用到本题:题目默认可按字节寻址,主存每个字块内有16个字,每个字32位——则主存中每个字块的每一个存储字都包含32位/8位=4个可独立寻址的字节,即这四个可独立寻址的字节需用2位二进制编码表示。
字块内地址会锁定到该字块内某一存储字内可独立寻址字节的地址,编制每个字块内的16个存储字需要四位二进制数,再在这四位二进制数所指定的存储字内按字节寻址(如上,需要2位二进制编码),于是总共需编制6位二进制数。
第3个回答  2019-10-17

应该说是地址长度。

    字块内地址长度,就是问字块内有多少字节。例题说每个字块16字,每字32位(每8位1字节),也就是每字块内有16*32/8=64字节=2^6B,这个指数是6,即字块内地址长度为6。

4位表示16个字,2位表示每字32位:说的是上面这个算式,16即2^4,32/8即2^2,中间是乘号,2^4 * 2^2=2^(4+2)B。个人觉得这个说法很绕口,不如说字块内包含2的6次方字节,长度就为6。

    该题说的不是主存块地址,说的是“主存字块标记”,等于主存地址长度缓存地址长度之差。

主存容量为512KB=2^9 * 2^10 B=2^19B,主存地址长度就为19

缓存容量为    4KB=2^2 * 2^10 B=2^12B,缓存地址长度就为12

主存字块标记就是19-12=7

    缓存字块地址长度,就是问缓存有多少块。如题,每字32位即4B,每块16字,缓存容量为4KB,那么4KB/4B/16=2^10 / 2^4=2^6块。所以缓存字块地址长度为6。

第4个回答  2013-06-12
B=2的b次方,B为块长,b为字块内地址。这题每个字块内十六字则B=16.b=4。这是计算方法
相似回答