1. 由于Cache容量为16KB,每块8个字,每个字32位,所以Cache共有16KB/(84B)=512组。每组包含4个字块,所以每个组的大小为44B=16B。因此,Cache中每个字块的地址应该为tag(主存地址中剩余的位数)-2bits(组号)-4bits(块内地址),即tag=32-2-4=26bits,组号为2bits,块内地址为4bits。

  2. CPU从主存第0号单元开始连续访问100个字,即从主存地址0x00000000开始,访问到0x000003F8。由于组相联映射的Cache组织方式,每个组中有4个字块,所以主存地址中的块内地址可以直接映射到Cache中。主存地址的前20位可以用于确定组号,剩下的12位可以用于tag。具体来说,主存地址的前20位可以分为3个部分:标记位(tag)、组号(index)和块内地址(offset)。因为组相联映射的Cache组织方式中,每个组中有4个字块,所以组号应该占用2个比特位。因此,主存地址中的前20位可以这样划分:

| tag(12 bits) | index(2 bits) | offset(6 bits) |

对于每个访问的主存地址,先将其划分为tag、index和offset,然后在对应的组中查找是否有对应的tag。如果有,则说明命中,Cache中对应的字块就是需要的数据;如果没有,则说明缺失,需要从主存中读取对应的字块,并将其存入Cache中,然后再次访问该地址即可。

具体的存储访问过程如下:

第1次访问:主存地址0x00000000,tag=0x000,index=0x00,offset=0x000。Cache为空,缺失,需要从主存中读取并存入Cache中。命中率=0/1=0。

第2次访问:主存地址0x00000004,tag=0x000,index=0x00,offset=0x004。Cache为空,缺失,需要从主存中读取并存入Cache中。命中率=0/2=0。

第3次访问:主存地址0x00000008,tag=0x000,index=0x00,offset=0x008。Cache为空,缺失,需要从主存中读取并存入Cache中。命中率=0/3=0。

第4次访问:主存地址0x0000000C,tag=0x000,index=0x00,offset=0x00C。Cache为空,缺失,需要从主存中读取并存入Cache中。命中率=0/4=0。

第5次访问:主存地址0x00000010,tag=0x000,index=0x01,offset=0x000。Cache为空,缺失,需要从主存中读取并存入Cache中。命中率=0/5=0。

第6次访问:主存地址0x00000014,tag=0x000,index=0x01,offset=0x004。Cache为空,缺失,需要从主存中读取并存入Cache中。命中率=0/6=0。

第7次访问:主存地址0x00000018,tag=0x000,index=0x01,offset=0x008。Cache为空,缺失,需要从主存中读取并存入Cache中。命中率=0/7=0。

第8次访问:主存地址0x0000001C,tag=0x000,index=0x01,offset=0x00C。Cache为空,缺失,需要从主存中读取并存入Cache中。命中率=0/8=0。

第9次访问:主存地址0x00000000,tag=0x000,index=0x00,offset=0x000。Cache中有对应的tag,命中,命中率=1/9=0.111。

第10次访问:主存地址0x00000004,tag=0x000,index=0x00,offset=0x004。Cache中有对应的tag,命中,命中率=2/10=0.2。

第11次访问:主存地址0x00000008,tag=0x000,index=0x00,offset=0x008。Cache中有对应的tag,命中,命中率=3/11=0.273。

第12次访问:主存地址0x0000000C,tag=0x000,index=0x00,offset=0x00C。Cache中有对应的tag,命中,命中率=4/12=0.333。

第13次访问:主存地址0x00000010,tag=0x000,index=0x01,offset=0x000。Cache中有对应的tag,命中,命中率=5/13=0.385。

第14次访问:主存地址0x00000014,tag=0x000,index=0x01,offset=0x004。Cache中有对应的tag,命中,命中率=6/14=0.429。

第15次访问:主存地址0x00000018,tag=0x000,index=0x01,offset=0x008。Cache中有对应的tag,命中,命中率=7/15=0.467。

第16次访问:主存地址0x0000001C,tag=0x000,index=0x01,offset=0x00C。Cache中有对应的tag,命中,命中率=8/16=0.5。

因此,存储访问的命中率为0.5。

  1. 存储系统访问加速比=存储系统访问时间/Cache访问时间。假设主存访问时间为100ns,Cache访问时间为16.7ns(即主存速度的6倍),则存储系统访问加速比为:

存储系统访问加速比 = (100ns * 100 * 8) / (16.7ns * 16 * 8) ≈ 298.2

其中,主存访问时间需要乘以1008是因为CPU总共访问了100个字,每个字需要访问8次。Cache访问时间需要乘以168是因为CPU总共访问了16个Cache块,每个块需要访问8个字。

四路组相联映射Cache组织方式的设计与分析

原文地址: https://www.cveoy.top/t/topic/jzql 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录