■7.2.2 Cache存储器的地址映像 ■为了把信息放到 Cache存储器中,必 须应用某种函数把主存地址映像到 Cache,称作地址映像。在信息按照这 种映像关系装入 Cache后,执行程序时, 应将主存地址变换成 Cache地址,这个 变换过程叫做地址变换
7.2.2 Cache存储器的地址映像 为了把信息放到Cache存储器中,必 须应用某种函数把主存地址映像到 Cache,称作地址映像。在信息按照这 种映像关系装入Cache后,执行程序时, 应将主存地址变换成Cache地址,这个 变换过程叫做地址变换
■1.直接地址映像方式 ■在直接映像方式中,映像函数可定为: j=imod2° 其中,j是 Cache的字块号,i是主存的 字块号。在这种映像方式中,主存的第0 块,第2块,第2中1块,…,只能映像到 Cache的第0块,而主存的第l块,第2c+1 块,第2c++1块..,只能映像到 Cache的 第l块
1. 直接地址映像方式 在直接映像方式中,映像函数可定为: j=i mod 2c 其中,j是Cache的字块号,i是主存的 字块号。在这种映像方式中,主存的第0 块,第2c块,第2c+1块,…,只能映像到 Cache的第0块,而主存的第l块,第2c+1 块,第2c+1+1块…,只能映像到Cache的 第l块。
■例1设主存容量1MB,高缓容量16KB,块的 大小为512字节 (1) Cache地址格式 ■(2)写出主存地址格式 (3)块表的容量为多大? ■(4)画出直接方式地址映像及变换示意图 (5)主存地址为cDE8FH的单元在 cache中的什 么位置? ■【例题解答】 ■(1) Cache容量16KB,16KB=214,所以 Cache 地址为14位;块的大小为512字节,所以块内 地址为9位,块地址为5位
例1 设主存容量1MB,高缓容量16KB,块的 大小为512字节。 (1)Cache地址格式 (2)写出主存地址格式 (3)块表的容量为多大? (4)画出直接方式地址映像及变换示意图 (5)主存地址为CDE8FH的单元在cache中的什 么位置? 【例题解答】 (1) Cache容量16KB,16KB=214,所以Cache 地址为14位;块的大小为512字节,所以块内 地址为9位,块地址为5位
■ Cache地址格式为: 13980 块地址块内地址 (2)主存容量1MB,1MB=220,所以主存地址为20位; 块的大小为512字节,所以块内地址为9位,块地址为 5位,块标记为6位。 主存地址格式为: 191413 980 块标记块地址块内地址 (3) Cache的每一块在块表中有一项, Cache的块地址 为5位,所以块表的单元数为25;块表中存放的是块标 记,由于块标记为6位,所以块表的字长为6位 故块表的容量为:25字×6位
Cache地址格式为: 13 9 8 0 块地址 块内地址 (2)主存容量1MB,1MB=220,所以主存地址为20位; 块的大小为512字节,所以块内地址为9位,块地址为 5位,块标记为6位。 主存地址格式为: 19 14 13 9 8 0 块标记 块地址 块内地址 (3)Cache的每一块在块表中有一项,Cache的块地址 为5位,所以块表的单元数为25;块表中存放的是块标 记,由于块标记为6位,所以块表的字长为6位。 故块表的容量为: 25字×6位
(4)直接方式地址映像及变换示意图如图429所示: MM 主存地址 第0块 主存区号区内块号块内地 第1块 6位 位 9位 第0区 地址 第31块 比较 Cache 第0块 第0块 第1块 第1块 2 第31块 第0块 区号Y← 第Y块 第1块 第2区 30 第30块 第31块 第31块 第0块 第1块 图4.29例48直接映像方式的变换示意图 第63区 第31块
(4)直接方式地址映像及变换示意图如图4.29所示: MM 主存地址 第 0 块 主存区号 区内块号 块内地址 第 1 块 6 位 5 位 9 位 ……… 第 0 区 Cache 地址 第 31 块 比较 命中 Cache 第 0 块 0 第 0 块 第 1 块 1 第 1 块 ……… 第 1 区 2 第 31 块 第 0 块 区号 Y 第 Y 块 第 1 块 ……… 第 2 区 30 第 30 块 第 31 块 31 第 31 块 第 0 块 第 1 块 图 4 . 29 例 4.8 直接映像方式的变换示意图 ……… 第 63 区 第 31 块