组相联映射怎么求租号
一个组相联映射的Cache,有128块,每组4块,主存共有16384块,每块64个字,则主存地址共几位,要详细分配?
20位。 先将Cache分组,组数=128/4=32,故Cache组地址占5位,块内地址占6位,块地址占两位,故Cache地址共5+6+2=13位。主存=16384*64=2^20字;故按字编制,主存地址为(20)位。 由于采用的是第一种组相连映射,即组相连映射关系为:i=j mod Q(i为Cache组号,j为主存块号,Q为Cache组数,故组地址为(5位)(如果按字节编址,块内地址位数增1,Cache地址位数增1,主存位数也增1) 。 如果采用第二种全相连映射方法,则先将主存按照Cache大小分区,共128个区,故区号占7位,再将每个区分组,每个区内的组数和Cache的组数相等(32组)故组地址占5位,每组有4个块,故块地址为2位。 块内地址同第一种全相连映射方法中块内地址长度相同,主存地址=区号+组号+组内块号+块内地址.故按字编址,主存地址=7+5+2+6=20(位)(按字节编址时块内地址为6位,故主存地址为21位)Cache地址=组号+组内块号+块内地址=5+2+6=13位(按字节编址时为14位)。
某计算机的cache采用四路组相联映射,已知cache容量为4kb,主存容量为1mb,每个字块32?
我把b当做Byte来算。4kb/32b=128个cacheline。共4组cacheset。组地址2位,组内块号7位。其实这问题本身就有问题,cache的访问是通过Tag和index,blockoffset来得到。
Cache组相联映射到底应该怎么算法?
我先确认你的题目细节:block = 1B,就是1个字节。(主存交换大小)cache4行,因为是二路组关联,所以每行2个block。因此cache一共4*2B = 8字节。cache一共2个字,这种题目没法做的,因为你是字编址!!所谓我认为你的题目是有问题的!下面假设交换大小是1W来做!!!!!!(或者字节编址)4行,索引号需要2位;表示为00,01,10,11访问:0: 就是00,所以存放在第00行,缺失4:就是100,也存放在00行,和0一行,缺失,但是lru标记在08:就是1000,存放在00行(看最后2位),因为lru标记,所以把0地址内容冲掉,lru在42:就是10,存放在10行,缺失0:存放在00行,吧4冲掉,lru标记在8,缺失6:110 ,存放在10行,缺失8:1000,命中,lru标记在06:110,命中4:100,缺失,吧0冲掉,lru在88:1000,命中,lru到4