主存对应的cache租号怎么求
一个组相联映射的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位)。
设主存为1MBCache容量为16Kb块大小为512B采用直接映像写出aCche和主存地址的格式……(2)块表容量大小?
主存1MB,为2的20次方,故主存地址为20位,cache为16kb为2的14次方,故cache地址位为14位,由于块大小为512B为2的9次方,故块内地址为9位,由于使用直接映射方式,综上可得出,cache的地址结构为 :cache块号(14-9 = 5位)+ 块内地址(9位);
主存的地址结构为:主存块号(标记字段6位 + cache块号5位)+块内地址(9位);
得出这些后由于cache块号为5位,因此有2的5次方个单元数量,由于每个单元中存放的是块标记,因此,块表容量为6*2的5次方的容量。