题目:
已知某高速缓存Cache采用组相联映像方式,即组间直接映像,组内全相联映像。假设主存容量为4096块,每块256字节,高速缓存包含32块,分8组,每组4块。高速缓存的地址变换表应包含( )个存储单元;每个存储单元应能存放( )位二进制数;每次参与比较的是( )个存储单元。
A.8 B.16 C.32 D.48
A.7 B.8 C.9 D.10
A.4 B.8 C.12 D.16
第一空,高速缓存的地址变换表中存储单元的数量,对应高速缓存的块数。题干中“高速缓存包含32块”,故地址变换表共包含32个存储单元。
第一空选C。
第二空,这32个存储单元中每个存储单元中应能存放的二进制数的位数,这个计算相对复杂一些。
我们得先搞清楚存储单元的组成。每个存储单元中存放的内容由两部分组成,一部分是主存块所在的区号,一部分是主存块在组内的位置。即第几块主存放在了组内的第几块的位置。
4096块主存被分散映像到32块高速缓存中,即主存被分拆成为4096/32 = 128块。用二进制表示,2^7 = 128,即用 7 个二进制数可以表示。
在组内的位置,和每组有几块有关,题干中提到“高速缓存包含32块,分8组,每组4块”,所以我们主要关注 4 可以用几位二进制表示即可,这个比较简单,2^2 = 4,故组内位置用 2 个二进制数可以表示。
将两