有诗云:苔花如米小,也学牡丹开。——袁枚
本篇笔记整理:Code_流苏(CSDN)
★观前提示:本专栏笔记内容适合有一定的基础或复习时观看,内容如有错,还请大家评论指出!非常感谢!
0. 思维导图
1. 主存与Cache地址映射概述
前两节内容解决了如何查找,那么我们应该怎么把主存中的数据映射到Cache中呢?如何搬迁才能实现快速查找?
★Cache三种常见的地址映射方式
1️⃣全相联映射
2️⃣直接映射
3️⃣组相联映射
不同的映射方式,对应的搬迁时的规则和方法不同。下面来一起看一下三种映射的特点和原理。
2. 全相联映射的工作原理
- 主存分块,Cache行 (Line),两者
大小相同
; - 设每块4个字,主存大小为1024个字,则第61个字的主存地址为:
00001111 01 (块号 块内地址) - 主存分块后地址就从
一维变成二维
; - 映射算法:主存的数据块可映射到Cache任意行,同时将该数据块地址对应行的标记存储体中保存。
工程观视图如下:
①全相联映射的特点
Cache利用率高
块冲突率低
淘汰算法复杂
②应用场合
小容量Cache
3. 直接映射的工作原理
- 主存分块,Cache行 (Line),两者
大小相同
; - 主存分块后还将以
Cache行数
为标准进行分区, - 设每块4个字,主存大小为1024个字,
Cache分为4行,第61个字的主存地址为:
000011 11 01 (区号,区内块号,块内地址)
主存地址从一维变成三维
; - 映射算法:
Cache共n行,主存第j块号映射到Cache 的行号为:i=j mod n
即主存的数据块映射到Cache特定行
工程观视图如下:
映射方式 | 映射特点 | 应用场合 |
---|---|---|
全相联映射 | Cache利用率高 块冲突率低 淘汰算法复杂 |
小容量Cache |
直接映射 | Cache利用率低 块冲突率高 淘汰算法简单 |
大容量Cache |
★附文字表述:
1️⃣直接映射
①特点
Cache利用率低
块冲突率高
淘汰算法简单
②应用场合
大容量Cache
2️⃣全相联映射
①特点
Cache利用率高
块冲突率低
淘汰算法复杂
②应用场合
小容量Cache
4. 组相联映射的工作原理
- 主存分块,Cache行 (Line),两者
大小相同
; - Cache分组(每组中包含k行),本例假定K=4
- 主存分块后还将以
Cache组数
为标准进行分组; - 设每块4个字,主存大小为1024个字,
Cache分为2组,第61个字的主存地址为:
0000111 1 01 (主存组号,Cache组号,块内地址)
主存地址从一维变成三维
; - 映射算法:
Cache共n组,主存第j块号映射到Cache 的组号为:i=j mod n
即主存的数据块映射到Cache特定组的任意行
工程观视图如下:
三种映射方式的联系与比较
★小总结:在上一节的学习中,学习到了相联储存器,这节内容去了解Cache地址映射与变换方法,了解到了起映射的三种方式:全相联映射、直接映射、组相联映射,并对其特点等做了总结。通过本节内容的学习与记录,认识到了Cache地址映射与变换方法,也了解了它们的特点与联系,收获颇多。
笔记内容学习资料:计算机组成原理微课版(谭志虎、秦磊华等编著)
课件资料及视频学习:MOOC计算机组成原理(华中科大)
计算机组成原理专栏——笔记及测验练习都在这
如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心。