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

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

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

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

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

具体关系如图所示:

扩展资料:

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

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

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

组相联映射:

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

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

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

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

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

补充一下最佳答案里的说法。

参考《计算机组成原理(第二版:唐朔飞教授)》P73

【关于主存中存储单元地址的分配】:

”通常计算机即可按字寻址,也可按字节寻址。若按字节寻址,即它的每一个存储字包含n个可独立寻址的字节。“(拓展了原话)

套用到本题:题目默认可按字节寻址,主存每个字块内有16个字,每个字32位——则主存中每个字块的每一个存储字都包含32位/8位=4个可独立寻址的字节,即这四个可独立寻址的字节需用2位二进制编码表示。

字块内地址会锁定到该字块内某一存储字内可独立寻址字节的地址,编制每个字块内的16个存储字需要四位二进制数,再在这四位二进制数所指定的存储字内按字节寻址(如上,需要2位二进制编码),于是总共需编制6位二进制数。

上面字块内地址的计算方法:每个字32位,每个字节8位,那么每个字对应4个字节;

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

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

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

应该说是地址长度。字块内地址长度,就是问字块内有多少字节。例题说每个字块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。