cache结构与操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Cache的组织方式分为 全相联映射方式 直接映射方式 组相联映射方式
1.全相联映射方式
任一主存块能映射到Cache中任意行(主存块的容量等 于Cache行的容量)见图
映射过程
① 存入Cache:块表标记中存放主存的块号 ② 检索:访问主存地址的块号与所有Cache行标记比较(图2阴影 区) ·符合, 即数据在Cache中,形成访问Cache的地址(地址映射) 访问Cache; ·不符合:访问主存,并将该块调入Cache。
3.组相联映射方式
组相联映射方式: 是全相联映射方式和直接相联映射方式的结 合,结合两者的优点 ·方法:把Cache分为若干组,每组含有若干行。 组间直接映射,组内全相联映射。
映射过程
① 存入Cache:快表标记中存放主存地址的区号及块号 (将块地址分为三部分: ·块(行)地址 ·组号 ·标记(区号)) ② 检索: 根据访问主存地址的第二字段(组号),找到Cache 中的相应组,读取该组中的每一行标记字段与主存地址高位 字段(区号)及块号比较 · 符合:即数据在Cache中,形成访问Cache的地址(地址映射), 访问Cache; ·不符合:访问主存,并将该块调入Cache。 ·优点:结合上面两种的优点。 ① 因为组内行数较少,比较器容易实现; ② 组内又有灵活性,冲突大大减少。
·主要方式:
4.6.4
3. 写一次法: 上述两种方法的结合,主要用于多个Cache数据不一致 的维护,具体策略可参考体系结构的相关内容。
1、通写法
• 从CPU发出的写信号送Cache的同时也写 入主存。
Cache
CPU
主存
2、回写法
• 数据一般只写到Cache,当Cache中的数据 被再次更新时,将原更新的数据写入主存 相应单元,并接受新的数据。
直接映射方式
映射过程
① 存入Cache:快表标记中存放主存地址的区号 (将块地址分为二部分:块(行)地址 标记(区号)) ② 检索: 根据访问主存地址的中间字段(行号),找到Cache 快表中的这一行,读取该行中的标记字段与主存地址高位字 段(区号)比较(图5阴影区)
·符合:即数据在Cache中,形成访问Cache的地址(地址映 射),访问Cache; ·不符合:访问主存,并将该块调入Cache 优点:硬件简单,成本低; 缺点:容易产生冲突,易"颠簸",不能有效利用Cache空间
1. 不经常使用(LFU)算法
· 方法:每行设置一个计数器:每访问一次加“1”; 替换后清“0”。需替换时,比较各计数器值,将 最小值的行换出。 ·特点:这种算法将计数周期限定在对这些特定行 两次替换之间的时间间隔内,因而不能严格反映 近期访问情况。
2. 近期最少使用(LRU)算法:
·方法:每行设置一个计数器,每命中一次清“0”, 其它计数器加“1”。需替换时,比较各计数器值, 将最大值的行换出 ·特点:合理,符合程序访问的局部性理论。是目 前使用较多的一种策略,能够有效的提高命中率
tc tc 1 1 e t a htc (1 h)t m h (1 h)r r (1 r )h
(4-4)
其中,r=tm/tc,表示访问主存慢于访问 Cache的倍率。r的取值一般是5-10 。
例【4-1】设CPU执行一般程序时,访问 Cache次数Nc=1500,访问主存次数Nm=90,又假 设访问Cache存取周期为50ns,访问主存存取周期 为300ns,试求h、r、ta以及e的值
CPU
写入
Cache
更新
Baidu Nhomakorabea主存
3、写一次法
写一次法与回写法的写策略基本相同,写一次 法只是在第一次写命中时要同时写入主存。这是 因为CPU第一次写Cache命中时,CPU要在总线上 启动一个存储器写周期,其他Cache监听到此主 存块地址及写信号后,即把他们各自保存的主存 块该保存到主存中就拷贝,该作废的就作无效处 理,以便维护全部Cache与主存的一致性。然后 CPU对Cache的写命中则按照回写法的策略对待, 这可以节省CPU的总线周期,有利于超标量流水 线的进程,有利于提高系统的运行速度
半导体存储器的性能指标: 1.存储容量 2.存取速度(用两个时间参数表示:存取 时间,存取周期) 3.可靠性 4.性能/价格比 实现片选控制的三种方法: 1.全译码 2.部分译码(可能会产生地址重叠) 3.线选法 地址重叠----多个地址指向同一存储单元
存储器芯片同CPU连接时应注意的问题: 1. CPU总线的负载能力问题; 2. CPU的时序同存储器芯片的存取速度的配合问题; 16位微机系统中,内存储器芯片的奇偶分体: 1. 1M字节分成两个512K字节(偶存储体,奇存储体) 2.偶存储体同低8位数据总线(D7 ~ D0)相连接,奇存 储体同高8位数据总线(D15 ~ D8)相连接 3. CPU的地址总线A19 ~ A1同两个存储体中的地址线 A18 ~ A0相连接,CPU地址总线的最低位A0和BHE(低 电平)用来选择存储体 4.要访问的16位字的低8位字节存放在偶存储体中, 称为对准字,访存只需要一个总线周期;要访问的16 位字的低8位字节存放在奇存储体中,称为未对准字 ,访存需要两个总线周期
Nc h Nc Nm
假如tc表示访问Cache一次所花的时间,tm则 为访问主存一次所经历的时间, 1-h 表示未 命中率,则平均访问时间ta定义为:
ta=htc+(1-h)tm (4-2) 那么命中率h又可定义为:
ta tm h tc t m
(4-3)
Cache /主存的平均访问时间 ta越接近 tc越好, 当 ta 接近于 tc,则表示访问效率高,用 e表示 访问效率,则:
4.6 高速缓冲存 储器技术
Cache工作原理 Cache组织方式 写cache的策略与一致性
4.6.1
Cache工作原理
1、存储器系统的层次
80X86 CPU采用了高速缓冲存储器(Cache Memory)技术,习惯上简称高速缓存,或称 Cache。在80386系统中,Cache处于CPU外部 的主机板上,在80486与Pentium系统中,除 了主机板上有第2级Cache(L2)外,CPU内部还 有第1级Cache(L1)。存储器系统的层次关系如 图5-26所示
·优点:灵活,不易产生冲突; 缺点:比较电路难于实现,且效率低,速度慢
• 例:设访问存储器地址的块号序列为22、26、22、 26、16、4、16、18,采用全相联映射方式时, Cache行分配情况
2.直接映射方式
某一主存块只能能映射到Cache的特定行
i = j mod m 其中: i:Cache的行号; j:主存的块号; m:Cache的总行数
第4章 存储器及其接口内容 半导体存储器分类: 1.随机存取存储器,RAM (1)静态RAM,SRAM (HM6116,2K * 8) (2)动态RAM,DRAM,需要刷新电路(2164,64K * 1) 2.只读存储器,ROM (1) PROM,可编程ROM,一次性写入ROM (2) EPROM,可擦除可编程ROM (INTEL2732A, 4K * 8) (3) EEPROM,电可擦除可编程ROM
· 例: 在全相联方式下,访问存储器地址序列为2、11、 2、9、7、6、4、3时,采用LRU方式时,Cache内容 变化情况
3. 随机替换:
• 硬件上容易实现并且速度快,虽然表面看起来是 盲目替换,但实际表明,其性能稍逊于前两种
写cache的策略与 一致性 ·目的:维护Cache、主存数据的一致性。
存储器的字位扩展(存储器组织) 74LS138的综合应用: 1.存储器芯片的地址范围 2.地址线的连接(片内地址,片外地 址) 3.数据线的连接 4.控制线的连接(片选信号CE,写信 号WE,输出信号OE等,以上信号都为 低电平)
解:
Nc 1500 h 0.943 N c N m 1500 90
tm 300ns r 6 tc 50ns
ta=htc+(1-h)tm=0.943×50ns+(1-0.943)×300ns=64.25ns
tc 50ns e 77.82% t a 64.25ns
4.6.2 Cache组织方式
存储器系统的层次 关系
2、Cache命中率
从微机系统来看,增加Cache的目的,
就是要在性能上使主存的平均访问时间
尽可能接近Cache的访问时间,即保证 在大多数情况下,CPU访问Cache,而不 是访问主存。
在 某 一 程 序 执 行 期 间 , 设 Nc 表 示 CPU 访 问 Cache 的总次数, Nm 表示 CPU 访问主存的总 次数,h为命中率,则 (4-1)
• 例1:设Cache有8个行,分成2个组,设访问存储器地址的块 号序列为22、26、22、26、16、4、16、18,采用组相联映射 方式时,Cache行分配情况
• http://freeweb.nyist.net/~zgchen/zcyl/zjs03 3050.htm#2 • http://freeweb.nyist.net/~zgchen/zcyl/zjs03 3006-1.htm • http://freeweb.nyist.net/~zgchen/zcyl/zjs03 3007-1.htm • http://freeweb.nyist.net/~zgchen/zcyl/zjs03 3008-1.htm
•
当Cache写满时,有新的内容写入,就要替换 老的内容,正确选择替换策略与命中率直接有关。 较为简单的替换算法有FIFO,但其效果不是很 好,不符合程序的访问的局部性原则,经常出现所 谓的"颠簸" 现象。
4.6.3 三种替换策略
1.最不经常使用(LFU)算法
2.近期最少使用(LRU)算法 3.随机替换
1.全相联映射方式
任一主存块能映射到Cache中任意行(主存块的容量等 于Cache行的容量)见图
映射过程
① 存入Cache:块表标记中存放主存的块号 ② 检索:访问主存地址的块号与所有Cache行标记比较(图2阴影 区) ·符合, 即数据在Cache中,形成访问Cache的地址(地址映射) 访问Cache; ·不符合:访问主存,并将该块调入Cache。
3.组相联映射方式
组相联映射方式: 是全相联映射方式和直接相联映射方式的结 合,结合两者的优点 ·方法:把Cache分为若干组,每组含有若干行。 组间直接映射,组内全相联映射。
映射过程
① 存入Cache:快表标记中存放主存地址的区号及块号 (将块地址分为三部分: ·块(行)地址 ·组号 ·标记(区号)) ② 检索: 根据访问主存地址的第二字段(组号),找到Cache 中的相应组,读取该组中的每一行标记字段与主存地址高位 字段(区号)及块号比较 · 符合:即数据在Cache中,形成访问Cache的地址(地址映射), 访问Cache; ·不符合:访问主存,并将该块调入Cache。 ·优点:结合上面两种的优点。 ① 因为组内行数较少,比较器容易实现; ② 组内又有灵活性,冲突大大减少。
·主要方式:
4.6.4
3. 写一次法: 上述两种方法的结合,主要用于多个Cache数据不一致 的维护,具体策略可参考体系结构的相关内容。
1、通写法
• 从CPU发出的写信号送Cache的同时也写 入主存。
Cache
CPU
主存
2、回写法
• 数据一般只写到Cache,当Cache中的数据 被再次更新时,将原更新的数据写入主存 相应单元,并接受新的数据。
直接映射方式
映射过程
① 存入Cache:快表标记中存放主存地址的区号 (将块地址分为二部分:块(行)地址 标记(区号)) ② 检索: 根据访问主存地址的中间字段(行号),找到Cache 快表中的这一行,读取该行中的标记字段与主存地址高位字 段(区号)比较(图5阴影区)
·符合:即数据在Cache中,形成访问Cache的地址(地址映 射),访问Cache; ·不符合:访问主存,并将该块调入Cache 优点:硬件简单,成本低; 缺点:容易产生冲突,易"颠簸",不能有效利用Cache空间
1. 不经常使用(LFU)算法
· 方法:每行设置一个计数器:每访问一次加“1”; 替换后清“0”。需替换时,比较各计数器值,将 最小值的行换出。 ·特点:这种算法将计数周期限定在对这些特定行 两次替换之间的时间间隔内,因而不能严格反映 近期访问情况。
2. 近期最少使用(LRU)算法:
·方法:每行设置一个计数器,每命中一次清“0”, 其它计数器加“1”。需替换时,比较各计数器值, 将最大值的行换出 ·特点:合理,符合程序访问的局部性理论。是目 前使用较多的一种策略,能够有效的提高命中率
tc tc 1 1 e t a htc (1 h)t m h (1 h)r r (1 r )h
(4-4)
其中,r=tm/tc,表示访问主存慢于访问 Cache的倍率。r的取值一般是5-10 。
例【4-1】设CPU执行一般程序时,访问 Cache次数Nc=1500,访问主存次数Nm=90,又假 设访问Cache存取周期为50ns,访问主存存取周期 为300ns,试求h、r、ta以及e的值
CPU
写入
Cache
更新
Baidu Nhomakorabea主存
3、写一次法
写一次法与回写法的写策略基本相同,写一次 法只是在第一次写命中时要同时写入主存。这是 因为CPU第一次写Cache命中时,CPU要在总线上 启动一个存储器写周期,其他Cache监听到此主 存块地址及写信号后,即把他们各自保存的主存 块该保存到主存中就拷贝,该作废的就作无效处 理,以便维护全部Cache与主存的一致性。然后 CPU对Cache的写命中则按照回写法的策略对待, 这可以节省CPU的总线周期,有利于超标量流水 线的进程,有利于提高系统的运行速度
半导体存储器的性能指标: 1.存储容量 2.存取速度(用两个时间参数表示:存取 时间,存取周期) 3.可靠性 4.性能/价格比 实现片选控制的三种方法: 1.全译码 2.部分译码(可能会产生地址重叠) 3.线选法 地址重叠----多个地址指向同一存储单元
存储器芯片同CPU连接时应注意的问题: 1. CPU总线的负载能力问题; 2. CPU的时序同存储器芯片的存取速度的配合问题; 16位微机系统中,内存储器芯片的奇偶分体: 1. 1M字节分成两个512K字节(偶存储体,奇存储体) 2.偶存储体同低8位数据总线(D7 ~ D0)相连接,奇存 储体同高8位数据总线(D15 ~ D8)相连接 3. CPU的地址总线A19 ~ A1同两个存储体中的地址线 A18 ~ A0相连接,CPU地址总线的最低位A0和BHE(低 电平)用来选择存储体 4.要访问的16位字的低8位字节存放在偶存储体中, 称为对准字,访存只需要一个总线周期;要访问的16 位字的低8位字节存放在奇存储体中,称为未对准字 ,访存需要两个总线周期
Nc h Nc Nm
假如tc表示访问Cache一次所花的时间,tm则 为访问主存一次所经历的时间, 1-h 表示未 命中率,则平均访问时间ta定义为:
ta=htc+(1-h)tm (4-2) 那么命中率h又可定义为:
ta tm h tc t m
(4-3)
Cache /主存的平均访问时间 ta越接近 tc越好, 当 ta 接近于 tc,则表示访问效率高,用 e表示 访问效率,则:
4.6 高速缓冲存 储器技术
Cache工作原理 Cache组织方式 写cache的策略与一致性
4.6.1
Cache工作原理
1、存储器系统的层次
80X86 CPU采用了高速缓冲存储器(Cache Memory)技术,习惯上简称高速缓存,或称 Cache。在80386系统中,Cache处于CPU外部 的主机板上,在80486与Pentium系统中,除 了主机板上有第2级Cache(L2)外,CPU内部还 有第1级Cache(L1)。存储器系统的层次关系如 图5-26所示
·优点:灵活,不易产生冲突; 缺点:比较电路难于实现,且效率低,速度慢
• 例:设访问存储器地址的块号序列为22、26、22、 26、16、4、16、18,采用全相联映射方式时, Cache行分配情况
2.直接映射方式
某一主存块只能能映射到Cache的特定行
i = j mod m 其中: i:Cache的行号; j:主存的块号; m:Cache的总行数
第4章 存储器及其接口内容 半导体存储器分类: 1.随机存取存储器,RAM (1)静态RAM,SRAM (HM6116,2K * 8) (2)动态RAM,DRAM,需要刷新电路(2164,64K * 1) 2.只读存储器,ROM (1) PROM,可编程ROM,一次性写入ROM (2) EPROM,可擦除可编程ROM (INTEL2732A, 4K * 8) (3) EEPROM,电可擦除可编程ROM
· 例: 在全相联方式下,访问存储器地址序列为2、11、 2、9、7、6、4、3时,采用LRU方式时,Cache内容 变化情况
3. 随机替换:
• 硬件上容易实现并且速度快,虽然表面看起来是 盲目替换,但实际表明,其性能稍逊于前两种
写cache的策略与 一致性 ·目的:维护Cache、主存数据的一致性。
存储器的字位扩展(存储器组织) 74LS138的综合应用: 1.存储器芯片的地址范围 2.地址线的连接(片内地址,片外地 址) 3.数据线的连接 4.控制线的连接(片选信号CE,写信 号WE,输出信号OE等,以上信号都为 低电平)
解:
Nc 1500 h 0.943 N c N m 1500 90
tm 300ns r 6 tc 50ns
ta=htc+(1-h)tm=0.943×50ns+(1-0.943)×300ns=64.25ns
tc 50ns e 77.82% t a 64.25ns
4.6.2 Cache组织方式
存储器系统的层次 关系
2、Cache命中率
从微机系统来看,增加Cache的目的,
就是要在性能上使主存的平均访问时间
尽可能接近Cache的访问时间,即保证 在大多数情况下,CPU访问Cache,而不 是访问主存。
在 某 一 程 序 执 行 期 间 , 设 Nc 表 示 CPU 访 问 Cache 的总次数, Nm 表示 CPU 访问主存的总 次数,h为命中率,则 (4-1)
• 例1:设Cache有8个行,分成2个组,设访问存储器地址的块 号序列为22、26、22、26、16、4、16、18,采用组相联映射 方式时,Cache行分配情况
• http://freeweb.nyist.net/~zgchen/zcyl/zjs03 3050.htm#2 • http://freeweb.nyist.net/~zgchen/zcyl/zjs03 3006-1.htm • http://freeweb.nyist.net/~zgchen/zcyl/zjs03 3007-1.htm • http://freeweb.nyist.net/~zgchen/zcyl/zjs03 3008-1.htm
•
当Cache写满时,有新的内容写入,就要替换 老的内容,正确选择替换策略与命中率直接有关。 较为简单的替换算法有FIFO,但其效果不是很 好,不符合程序的访问的局部性原则,经常出现所 谓的"颠簸" 现象。
4.6.3 三种替换策略
1.最不经常使用(LFU)算法
2.近期最少使用(LRU)算法 3.随机替换