组相联映射方式 是全相联映射方式和直接相联映射方式的结合,结合两者的优点
· 方法:把Cache分为若干组,每组含有若干行。 组间直接映射,组内全相联映射。 (图7)
· 映射过程:(见图8)
① 存入Cache:快表标记中存放主存地址的区号及块号 (将块地址分为三部分: · 块(行)地址 · 组号 · 标记(区号))
② 检索: 根据访问主存地址的第二字段(组号),找到Cache中的相应组,读取该组 中的每一行标记字段与主存地址高位字段(区号)及块号比较(图8阴影区) · 符合:即数据在Cache中,形成访问Cache的地址(地址映射),访问 Cache; · 不符合:访问主存,并将该块调入Cache。
· 优点:结合上面两种的优点。
① 因为组内行数较少,比较器容易实现; ② 组内又有灵活性,冲突大大减少。
例1:设Cache有8个行,分成2个组,设访问存储器地址的块号序列为22、26、22、26、16、4、 16、18,采用组相联映射方式时,Cache行分配情况(见图9)。
|