某计算机系统中,主存容量为64K×8位,Cache容量为512×8位,每块16字节,采用直接映像。Cache存储周期为50ns,主存存储周期为250ns。 (1)主存地址分为3个字段,各个字段的位数为:主存区号___位,主存块号___位,块内地址___位。 (2)若主存地址为3280H,则该地址映像到Cache的___块;如果该Cache块所对应TAG内容为18H,访问该地址时Cache____(命中/不命中),因为3280H的区号为___H。 (3)假设CPU执行某段程序时,共访问Cache 3800次,访问主存200次,则Cache的命中率为____%,Cache-主存系统的平均等效存储周期为_______ns,访问效率为_____%
时间: 2023-08-05 17:01:53 浏览: 406
(1) 主存容量为64K×8位,即2^16 × 8位。因为采用直接映像,所以Cache容量为512×8位,即2^9 × 8位,每块16字节,即2^4个字节。由此可得:
主存区号 = 16 - 9 = 7位
主存块号 = 16 - 7 - 4 = 5位
块内地址 = 4位
所以,主存地址分为3个字段,各个字段的位数为:主存区号7位,主存块号5位,块内地址4位。
(2) 主存地址为3280H,转换成二进制为0011 0010 1000 0000B。因为主存块大小为16字节,所以主存块号为第7-4位,即0010B,转换成十进制为2。该地址映像到Cache的第2块,因此可以通过TAG内容来判断是否命中。该Cache块所对应TAG内容为18H,转换成二进制为0001 1000B,因此可以判断访问该地址时Cache不命中。因为3280H的区号为3H。
(3) Cache访问3800次,主存访问200次,命中次数为:
命中次数 = 3800 - 200 = 3600
命中率为:
命中率 = 命中次数 / 总访问次数 = 3600 / 4000 = 90%
Cache-主存系统的平均等效存储周期为:
平均等效存储周期 = 命中时间 × 命中率 + 不命中时间 × 不命中率
= 50ns × 0.9 + 250ns × 0.1
= 80ns
访问效率为:
访问效率 = 1 / 平均等效存储周期 × 100% = 1.25%
相关问题
某机主存为64K×16位,直接地址映射的Cache容量为1K字,每块4字,怎么看cache有256块
根据题目描述,这是一个直接地址映射的Cache,它的容量为1K字,每块4字,所以它的块数为1K字 / 4字 = 256块,也就是说,这个Cache具有256个块。
同时,题目还给出了主存的容量是64K×16位,也就是8个MB。因为这是一个直接地址映射的Cache,所以它的地址映射方式是通过直接取主存地址的低位来确定Cache中的块号。由于这个Cache有256个块,所以可以使用8位二进制数来表示块号。因此,这个Cache的地址空间大小为256块 * 4字/块 = 1K字,也就是说,这个Cache的地址范围是0x00000000-0x00000FFF。
若计算机主存地址为32位,按字节编址,某Cache 的数据区容量为32KB,主存块大小为64B,采用8路组相联映射方式,该Cache中比较器的个数和位数分别为
根据题目的描述,我们可以计算出Cache的参数信息。
Cache容量为32KB,即32 × 1024B = 32768B。
主存块大小为64B,即每个主存块占用64个字节。
由于采用8路组相联映射方式,每个组内有8个块。
首先,我们需要计算Cache的组数。每个组内有8个块,所以总共有32768B / (8B × 8) = 512个组。
然后,我们可以计算比较器的个数。由于采用了8路组相联映射方式,每个组需要进行8路的比较。所以比较器的个数为512 × 8 = 4096个。
最后,我们需要计算比较器的位数。每个比较器需要比较主存块的标记位,而主存块的大小为64B。根据题目中给出的信息,计算机主存地址为32位,按字节编址,那么主存地址的低6位表示字节偏移量,剩下的26位表示块号。所以每个比较器需要比较26位的标记位。
综上所述,该Cache中比较器的个数为4096个,比较器的位数为26位。
阅读全文