问题
问答题
设主存容量1MB,有16KB直接相联映像的Cache,假定该Cache的块为8个32位的字。解答下列问题:
主存地址为DE8F8H的单元在Cache中的什么位置。
答案
参考答案:Cache有16×1024/32=512个块。因为主存地址DE8F8=1101 1110 1000 1111 1000,主存地址中前6位是块标记,标记字段的值是110111,中间9位为块号=101000111,最后5位为块内地址=11000。在直接映像方式下,Cache地址即为块号+块内地址=10100011111000,所以主存地址DE8F8H转换成Cache地址为28F8H。
解析: 根据主存容量1MB,Cache容量16KB,可知主存地址为20位,Cache地址为14位。而Cache的块为8个32位的字,即32个字节,故块内地址5位。
直接映射是指主存中的每一个块只能被放置到Cache中唯一的一个指定位置,若这个位置已有内容,则产生块冲突,原来的块将无条件地被替换出去。直接映射是最简单的映射方式,成本低,易实现,地址变换速度快,但不够灵活,Cache的块冲突概率最高、空间利用率最低。
直接映射的关系可定义为K=I mod 2c
式中:K为Cache的块号;I为主存的块号;2c为Cache块数。