Cache地址映射1

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

17
直接映射的优点是实现简单,速度快。 直接映射的优点是实现简单,速度快。 直接映射方式的缺点是不够灵活, 即主存的2 直接映射方式的缺点是不够灵活 , 即主存的 2t 个字块 只能对应唯一的Cache 存储器字块, 因此,即使Cache Cache存储器字块 只能对应唯一的 Cache 存储器字块 , 因此 , 即使 Cache 存储器别的许多块/行空着也不能使用, 存储器别的许多块/行空着也不能使用,块冲突的概率 Cache未装满 也可能会反复调入、调出块, 未装满, 大。当Cache未装满,也可能会反复调入、调出块,降 低了命中率。 低了命中率。
3
其中Cache容量最小 速度最快;辅存容量最大, 其中 Cache容量最小, 速度最快 ; 辅存容量最大, Cache容量最小, 速度最慢。 速度最慢。这种多层次结构已成为现代计算机的 典型存储结构。 典型存储结构。
Cache
CPU 寄存器组 高速缓冲 存储器 主 存 主机 外 存
Cache-主存- 图1 Cache-主存-辅存三级存储系统
6
2.3 Cache 基本原理
Cache与主存的数据交换以块Block/行Line为单位, Cache与主存的数据交换以块Block/行Line为单位, 与主存的数据交换以块Block/ 为单位 一个块由若干字组成。 一个块由若干字组成。块长一般取若干个主存周期所能 调出的信息长度。 调出的信息长度。 CPU访问主存时,将访存地址与Cache中的地址检索 CPU访问主存时,将访存地址与Cache中的地址检索 访问主存时 Cache 项内容/标记/标签/Tag比较,有相同项表示“命中” /Tag比较 项内容/标记/标签/Tag比较,有相同项表示“命中”, 直接从Cache中获得访问数据。 Cache中获得访问数据 直接从Cache中获得访问数据。 无相同项表示“脱靶” 插入访存周期, 无相同项表示“脱靶”,插入访存周期,从主存读 出所需数据, 出所需数据,并将含有该数据的整个数据块从主存读出 行填充。 Cache,称为行填充 送Cache,称为行填充。
18
4.2 全相联映射 .
全相联映射方式是最灵活但成本最高的一种方式, 全相联映射方式是最灵活但成本最高的一种方式 , 如 所示。 图 6、 图 7所示 。 它允许主存中的每一个字块映射到 、 所示 Cache存储器的任何一个字块上 , 也允许从已被占满 存储器的任何一个字块上, 存储器的任何一个字块上 存储器中替换出某一个旧字块。 的Cache存储器中替换出某一个旧字块。 存储器中替换出某一个旧字块
思考:多级缓存如何影响命中率? 思考:多级缓存如何影响命中率?
9
Cache存储器基本结构 3. Cache存储器基本结构
设主存有2 个单元,则地址为n 将主存分块, 设主存有2n个单元,则地址为n位;将主存分块,每块 个字; 含2b个字; 则可得出: 主存包含的块数M 设 n = m + b , 则可得出 : 主存包含的块数 M = 2m , 块内 字数= 字数=2b; 若 Cache 地址为 (c + b) 位 , 则 Cache 的块数为 2c , 块内 Cache地址为 (c+ b)位 地址为(c Cache的块数为 的块数为2 字数2 与主存相同,如图2所示。 字数2b与主存相同,如图2所示。
19
图6
全相联映射的 Cache 组织
20
图7
Cache的地址变换 全相联映射 Cache的地址变换
21
全相联地址映射是一个理想的方案, 全相联地址映射是一个理想的方案,但实际上由于它的 成本太高而难以采用: 成本太高而难以采用 *与直接映射相比,其Cache块标记位数从 -c位增加 与直接映射相比, 块标记位数从m- 位增加 与直接映 块标记位数从 标记容量加大; 到m位,使Cache标记容量加大; 位 标记容量加大 *在访问 在访问Cache时,需要和 的全部块标记进行“ 在访问 时 需要和Cache的全部块标记进行“比 的全部块标记进行 才能判断出是否命中。由于Cache速度要求高,所 速度要求高, 较”才能判断出是否命中。由于 速度要求高 以全部“比较”操作都要用硬件实现,通常由“ 以全部“比较”操作都要用硬件实现,通常由“按内容 寻址的”相联存储器完成,仅适于小容量的Cache应用 寻址的”相联存储器完成,仅适于小容量的 应用 。
5
Cache存储器的理论依据 2.2 Cache存储器的理论依据
程序访问的局部性原理: 程序访问的局部性原理: 局部性原理 在一个较短的时间间隔内,CPU对局部范围的存储器地 在一个较短的时间间隔内,CPU对局部范围的存储器地 址频繁访问,而对此地址范围之外的地址访问很少, 址频繁访问 , 而对此地址范围之外的地址访问很少 , 这种现象称程序访问的局部性。 这种现象称程序访问的局部性。 设置Cache就是为了将主存的局部性数据块提前调度到 设置Cache就是为了将主存的局部性数据块提前调度到 Cache Cache中 在较大的概率/命中率保证下, CPU直接访 Cache中,在较大的概率/命中率保证下,被CPU直接访 而节省了访问主存的时间。 问,而节省了访问主存的时间。
10
主存的地址 主存块号 高位地址
Cache 块号
m 位 c位
块内地址 b位 b位
Cache 的地址格式
图2
Cache地址和主存地址的格式 Cache地址和主存地址的格式 地址
11
Cache存储器组织主要包含数据块、标签块和属性信 存储器组织主要包含数据块、 存储器组织主要包含数据块 息块,一种典型的Cache存储器结构(Intel 80486片 存储器结构( 息块,一种典型的 存储器结构 片 所示。 内Cache)如图 所示。 )如图3所示 其中,数据块用于存放来自主存的所有数据信息, 其中,数据块用于存放来自主存的所有数据信息,以 行为基本调度单位; 块/行为基本调度单位; 行为基本调度单位 每个Cache数据块对应一个标签 数据块对应一个标签Tag,用于标明该块 每个 数据块对应一个标签 , 来自主存的某个位置; 来自主存的某个位置; 每个Cache数据块还对应一个属性说明信息,用于记 数据块还对应一个属性说明信息, 每个 数据块还对应一个属性说明信息 录该块是否有效等信息。 录该块是否有效等信息。
h=
Nc Nc + Nm
8
表示命中时的Cache访问时间, Cache访问时间 若tc表示命中时的Cache访问时间,tm表示未命中时 的主存访问时间, 表示未命中率, Cache系统的 系统的平 的主存访问时间,1-h表示未命中率,则Cache系统的平 均访问时间t 均访问时间ta为:
ta = htc+(1 - h)tm ( )
Cache 存储器地址映射
计算机学院 涂国庆
2010/05/10
本讲内容
知识回顾 Cache存储器概述 存储器概述 Cache存储器基本结构 存储器基本结构 Cache存储器地址映射 存储器地址映射 小结
1.回顾:计算机存储系统的层次结构 1.回顾: 回顾
计算机存储系统要求: 计算机存储系统要求: 容量大、速度快、成本低。 容量大、速度快、成本低。 计算机系统中,通常采用三级存储系统结构,即使用 计算机系统中,通常采用三级存储系统结构, 高速缓冲存储器、主存储器和外(/辅 高速缓冲存储器、主存储器和外 辅)存储器组成的结 如图1所示 所示。 构如图 所示。
14
4.1 直接地址映射
如图4 所示,在直接映射方式中, 如图 4 、 图 5 所示 , 在直接映射方式中 , 映射函数可定 为: j=i mod 2c = 其中,j是Cache的块号,i是主存的块号。 其中, 是 的块号, 是主存的块号。 的块号 是主存的块号
+ *这种映射方式中,主存的第 块,第2c块,第2c+1块, 这种映射方式中,主存的第0块 这种映射方式中 …,只能映射到 的第0块 而主存的第l块 ,只能映射到Cache的第 块,而主存的第 块,第2c 的第 的第l块 +1块,第2c+1+1块…,只能映射到 块 块 ,只能映射到Cache的第 块。 的第
22
4.3 组相联地址映射
组相联映射 方式是直接映射 和全相联映射 组相联映 射 方式是直接映 射 和全相联映 射 方式的一种 折衷方案,如图8 折衷方案,如图8、图9所示。 所示。 它把Cache字块分为 c’组,每组包含 r个字块,于是有 字块分为2 每组包含2 个字块,于是有c 它把 字块分为 可以用下列映射 =c’+r。则主存字块 m(i)(0≤i≤2m-1)可以用下列映射 + 。则主存字块M 可以用下列映 函数映射 字块M 函数映射到Cache字块 c(j) (0≤j≤2c-1)上: 字块 上 j=(i mod 2 c’)× 2 r+k = × ( 0≤k≤2 r-1) )
4
Cache存储器概述 2. Cache存储器概述
2 .1 Cache的功能 Cache的功能
Cache是介于CPU和主存之间的小容量高速缓冲区, Cache是介于CPU和主存之间的小容量高速缓冲区, 是介于CPU和主存之间的小容量高速缓冲区 其存取速度比主存快,用于解决CPU与主存的速度差异, 其存取速度比主存快,用于解决CPU与主存的速度差异, CPU与主存的速度差异 以提高CPU访存速度。 CPU访存速度 以提高CPU访存速度。 Cache全部功能由硬件实现,且对程序员透明。 Cache全部功能由硬件实现,且对程序员透明。 全部功能由硬件实现 *目前在微机中通常配置2级高速缓存,L1 Cache位于 目前在微机中通常配置2级高速缓存, Cache位于 内部, CPU同频 同频。 Cache可位于主板上 CPU电 可位于主板上、 CPU 内部,与CPU同频。L2 Cache可位于主板上、CPU电 路板上或CPU内部,运行频率为系统频率、 CPU内部 CPU频率 路板上或CPU内部,运行频率为系统频率、1/2 CPU频率 CPU频率 频率。 或CPU频率。
设e表示Cache访问效率,则有: 表示Cache访问效率,则有: Cache访问效率
e=
tc ta
=
1 h + (1-h) tm/tc
可见,为提高访问效率,命中率h越接近1越好; 可见,为提高访问效率,命中率h越接近1越好;而h Cache容量 级数、组织方式、块的大小有关 容量、 有关。 与Cache容量、级数、组织方式、块的大小有关。
12
图3
Cache存储器基本结构示例 Cache存储器基本结构示例
13
Cache存储器地址映射 4. Cache存储器地址映射
为了把主存信息放到Cache存储器中,必须应用某种 存储器中, 为了把主存信息放到 存储器中 函数把主存地址映射 地址, 地址映射。 函数把主存地址映射到Cache地址,称作地址映射。 地址 称作地址映射 在信息块按照这种映射关系装入到Cache后,执行访 后 在信息块按照这种映射关系装入到 存操作时,应先将主存地址同样变换成Cache地址, 地址, 存操作时, 应先将主存地址同样变换成 地址 并和对应的标签Tag进行比较,以确定是否命中。 进行比较, 并和对应的标签 进行比较 以确定是否命中。
7
2.4 Cache 的命中率
要提高主存访问速度, 要提高主存访问速度,应使主存平均读出时间尽可 能接近Cache读出时间,即应使Cache命中率接近于1 Cache读出时间 Cache命中率接近于 能接近Cache读出时间,即应使Cache命中率接近于1。 在一段程序执行期间, 表示命中时存取Cache Cache的 在一段程序执行期间,设Nc表示命中时存取Cache的 总次数, 表示不命中时存取主存的总次数, 定义为命 总次数,Nm表示不命中时存取主存的总次数,h定义为命 中率,则有: 中率,则有:
15
Байду номын сангаас
内存
B0 B1
行号 L0 L1 L2 L3 L4 L5 L6 L7 1 …
Cache TAG 0 … x DATA … … … … …

: : B7 B8 B9
第0区

: : B15
第 1区
: : Bn8
Bn7

: : Bn1
第 m-1 区
图4
直接映射的 Cache 组织
16
图5
直接映射Cache的地址变换 直接映射Cache的地址变换 Cache
相关文档
最新文档