假定某处理器带有一个数据区容量为128B的数据cache,采用直接映射方式,块大小为 32B,主存容量32K。以下C 语言程序段运行在该处理器上,设sizeof(int)=4,编译器将 变量i, j, k, sum都分配在通用寄存器中,因此,只要考虑数组元素的访存情况,假定数 组a 从第一个主存块开始处存放。请回答下列问题: (1)该cache有多少组?主存地址中的标记位、组索引和块偏移字段分别占几位? (2)当k=15 和k=16 时,执行以下程序的过程中,数据访问不命中率分别是多少? int i, j, k,sum; int a[64]; for ( i = 0; i < 100; i++ ){ for ( j = 0; j < 64; j=j+k ){ sum+=a[j]; } }
时间: 2024-03-31 14:32:31 浏览: 22
(1) 该cache共有4个组,因为32K / 32B = 1024,而 1024 / 4 = 256,所以该cache共有256个块,每组包含4个块。
主存地址中的标记位需要占用 (32K / 32B) / 4 = 256 / 4 = 64 位,因为一个块大小为32B,所以块偏移字段需要占用5位,剩下的7位用于组索引。
(2) 当k=15时,sum的访问不命中率为 100%,因为数组a被映射到了cache的第一组中,而该组只有4个块,而数组a有64个元素,所以一定会发生冲突不命中。
当k=16时,sum的访问不命中率为 0%,因为数组a的每个元素都被映射到了不同的组中,所以不会发生冲突不命中。
相关问题
假定 某系统主存容量为8KB,高速缓存容量为256B,数据块大小为64B,按字节编址,高速缓存采用直接映像方式。
采用直接映像方式的高速缓存,每个数据块只能映射到高速缓存中的一个固定位置,因此需要计算出数据块和高速缓存中的位置之间的映射关系。
首先确定高速缓存中的块数,即 $256B / 64B = 4$,也就是说高速缓存中可以存储4个数据块。然后确定每个数据块在主存中的位置,假设数据块编号从0开始,那么第i个数据块的起始地址为 $i * 64B$。
接下来,确定每个数据块在高速缓存中的位置,即将主存地址映射到高速缓存中的哪个块。由于采用直接映像方式,每个数据块只能映射到高速缓存中的一个固定位置,因此需要确定映射函数。假设高速缓存中每个块的大小也是64B,那么第i个数据块映射到高速缓存中的位置为 $i \mod 4$。
例如,第0个数据块的起始地址为0,它映射到高速缓存中的位置为0;第1个数据块的起始地址为64,它映射到高速缓存中的位置为1;第2个数据块的起始地址为128,它映射到高速缓存中的位置为2;第3个数据块的起始地址为192,它映射到高速缓存中的位置为3。
如果要访问某个主存地址,需要先找到对应的数据块和高速缓存位置,然后判断该数据块是否已经在高速缓存中。如果已经在高速缓存中,直接从高速缓存中读取数据;否则,需要将该数据块从主存中读取到高速缓存中再进行访问。
假定主存地址为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为4个字,每字32位,采用回写(Write Back)方式,则能存放4K字数据的Cache的总容量至少是多少位
一个字为32位,主存块大小为4个字,即一个块大小为4*32=128位,4K字数据的总块数为4K/4=2^20/2^2=2^18个块。由于采用直接映射方式,所以Cache的总块数为2^12个块。
因此,一个4K字数据的Cache总容量为:
2^12 x 128 x 2^6 = 2^18 x 2^6 = 2^24字节
将2^24字节转换为位数的形式,得到:
2^24 x 8 = 2^27 bits
因此,能存放4K字数据的Cache的总容量至少是27位。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![sh](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)