组相联映射方式租号怎么算
一个组相联映射的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有64行,采用4路组相联映射方式,主存有4K个块,每块128个字。则,主存地址多少位?
cache有64行,所以cache有64块则2^c=64,c=6由四路组相联得2^r=4,r=2组地址q=c-r=4每块128字,2^b=128,字块内地址b=7主存容量4K*128=2^19字主存字块标记为19-q-b=8