高档计算机系统中Cache性能分析_潘继强 (1)
Cache性能

AMATunified = 75% × (1 + 2.87% × 50) + 25% × (1 + 1 + 2.87% × 50) = 2.685
尽管分立Cache具有较高的缺失率,但其AMAT与统 具有较高的缺失率,但其 尽管分立 具有较高的缺失率 与统 是基本相同的, 一Cache的AMAT是基本相同的,可见哈佛结构有优势。 的 是基本相同的 可见哈佛结构有优势。 大多数现代处理器都采用分立Cache技术。 技术。 大多数现代处理器都采用分立 技术
《Computer Architecture》 计算机学院
本章内容>> Cache存储系统>>Cache性能>>提高Cache性能>>降低缺失代价
2 之 1
关键字优先和提前重 启动
思想 因为CPU在同一时刻只需要块中的一个字,所以本技术 在同一时刻只需要块中的一个字, 因为 在同一时刻只需要块中的一个字 不必等到全部块装入就可以将所需字送出, 不必等到全部块装入就可以将所需字送出,然后重新启动 CPU。 。 方法 关键字优先 首先向存储器请求缺失 的字, 的字,一旦它到了就将它 发送到CPU中;让CPU继 发送到 中 继 续执行, 续执行,同时装入块中的 其他字。 其他字。
本技术的收益取决于块的大小( 本技术的收益取决于块的大小(块越 收益越大) 大,收益越大)和对块中未装入部分的访问 可能算机学院
本章内容>> Cache存储系统>>Cache性能>>提高Cache性能>>降低缺失代价
计算机组成原理中Cache性能优化

计算机组成原理中Cache性能优化在计算机组成原理中,Cache是一个非常重要的概念。
它是指CPU内部的一块高速缓存,用来存储CPU常用的数据和指令,其目的是为了加速对这些数据和指令的访问速度,提高计算机的整体性能。
然而,Cache的性能也会影响计算机的整体性能,因此,优化Cache的性能是计算机组成原理的一个重要方向。
Cache的性能优化的方法有很多种,下面我们就简单谈一谈其中的一些方法。
增加Cache的大小Cache的大小与访问速度直接相关。
一般来说,Cache大小越大,CPU访问Cache的速度就会越快。
因此,增加Cache的大小是一种有效的优化Cache性能的方法。
但是,增加Cache大小具有一定的限制,因为Cache的大小不仅会影响CPU的访问速度,还会影响CPU的成本和功耗。
因此,在增加Cache大小时,需要综合考虑各种因素,并做出合理的折衷。
使用高速Cache高速Cache是指访问速度更快的Cache。
普通的Cache通常有1级和2级。
而高速Cache主要包括3级和4级别的Cache。
相比普通的Cache,高速Cache能够更快的响应CPU的操作请求,从而提高计算机的整体性能。
使用高速Cache的方法也比较简单,只需要对Cache进行升级或者更换即可。
使用多级Cache使用多级Cache,是一个提高Cache性能的另一个有效方法。
多级Cache通常包括三层缓存:L1、L2和L3。
L1位于CPU内部,大小比较小,但速度非常快;L2位于CPU和内存之间,大小比L1大,速度比L1慢;L3位于主板上,大小比L2更大,速度比L2更慢。
多级Cache的优势在于,当L1 Cache大小有限时,数据和指令能够被传递到L2 Cache中,并在L3 Cache中更多地缓存。
这种方法能够减少L1 Cache的访问次数,从而提高CPU的性能。
使用硬件加速Cache硬件加速Cache是一种专为Cache设计的硬件,主要用于提高Cache的性能。
cache性能分析报告

《计算机系统结构课内实验》实验报告一、实验目的及要求1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;2.了解Cache的容量、相联度、块大小对Cache性能的影响;3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;4.理解Cache失效的产生原因以及Cache的三种失效;5.理解LRU与随机法的基本思想,及它们对Cache性能的影响;二、实验环境Vmware 虚拟机,redhat 9。
0 linux 操作系统,SimpleScalar模拟器三、实验内容1.运行SimpleScalar模拟器;2.在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效次数、三种不同种类的失效次数;3.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache 性能的影响;4.改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响;5.改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响;6.分别采用LRU与随机法,在不同的Cache容量、不同的相联度下,运行程序(指明所选的测试程序)统计Cache总失效次数,计算失效率.分析不同的替换算法对Cache性能的影响。
四、实验步骤1、关于simplescalar的简要说明SimpleScalar包括多个仿真器:sim—fast ,sim-safe,sim-cache,sim-cheetah,sim-profile,sim—bpred,sim-eio和sim-outorder.本次实验使用的是sim-cache,下面说明一下sim—cache。
sim—cache:在这个仿真中加入了cache,用户可以对cache及TLB 进行设置,支持两级的cache和一级的TLB,第一级cache和TLB均分为数据和指令两部分。
Cache性能分析

Cache 性能分析一、性能分析1.不同容量下Cache 命中率:设置:选择不同的cache 容量,2k ,4k ,8k ,16k ,32k ,64k ,128k ,256k块大小:16k 相联度:直接相连 替换策略:LRU 预取策略:不预取 写策略:写回写不命中的调快策略:按写分配 文件:cc1.din表1 不同容量下Cache 命中率图1结论:在其他条件一定的情况下,随着cache 容量的增加,不命中率逐渐减小2.相联度对不命中率的影响:设置:Cache 容量:64K/256KB 块大小;16B 相联度设置:1,2,4, 8,16,32 替换策LRU 预取策略:不预取 写策略:写回 写不命中的调快策略:按写分配 文件:cc1.dinCache 容量为64KB 时:表2 当容量为64K 时的不命中率相联度 1 2 4 8 16 32不命中率(%)2.71 1.80 1.61 1.55 1.54 1.54Cache 容量为256KB 时:表3 当容量为256K 时的不命中率相联度 1 2 4 8 16 32不命中率(%)1.58 1.34 1.28 1.26 1.24 1.24 结论:Cache 的容量(KB ) 2 4 8 16 32 64 128 256不命中率(%)18.61 14.09 10.12 6.34 3.81 2.71 1.95 1.58图2结论:(1)当Cache容量一定时,随着相联度的不断增加,不命中率逐渐减小,但是当相联度增加到一定程度时,不命中率保持不变。
(2)当关联度相同时,Cache容量越大,不命中率越小,当关联度增加到一定程度时,不命中率和Cache容量大小无关。
3.Cache块大小对命中率的影响:设置:Cahce块大小(B):16,32,64,128,256 Cache容量设置(KB):2,8,32,128,512相联度:直接相联预取策略:不预取写策略:写回写不命中的调快策略:按写分配文件:eg.din表4 不同Cache行大小情况下Cache的不命中率块大小(B)Cache的容量(KB)2 8 32 128 51216 7.80% 7.40% 7.20% 7.20% 7.20%32 5.40% 5.00% 4.70% 4.70% 4.70%64 4.00% 3.40% 3.10% 3.10% 3.10%128 4.40% 3.30% 2.40% 2.40% 2.40%256 6.50% 5.10% 2.30% 1.90% 1.90%图3结论:(1)在Cache容量一定时,Cache 不命中率随着Cache行的增加先减小后增加。
Cache(高速缓存)技术详解

Cache(高速缓存)技术详解计算机系统一般都采用多级存储器结构,如寄存器、主存、磁盘、光盘、磁带等。
这种多级存储器的特点是从外存储器到CPU中的寄存器逐级向上,存储容量逐级减小,而存取速度逐级提高。
由于上下两级存储器的速度可以相差l—2个数量级或者更高,因此,上一级和下一级存储器的数据交换常常成为系统瓶颈,大大降低了系统的性能。
为了解决这个问题,通常采用的办法是在两级存储器之间增加一个高速缓冲存储器Cache。
所谓Cache是一个速度等于或者接近上一级存储器访问速度的小容量存储器,其中保存了下级存储器中部分当前所需的数据,因此CPU可以直接从Cache中取得所需的数据,而不必访问下一级存储器。
由于Cache的速度与上一级存储器相当,因此保证了系统效率不会降低。
Cache的设计依据是程序存取局部性原理,通常程序存取的一批数据总是存放在存储器相邻的单元中,只要把这一批数据同时调入cache中,即可保证近期内需要的数据都能在Caclle中访问成功。
为了实现上述目标,在设计Cache时必须做到以下两点:1.保证访问Cache有较高的命中率;2.访问Cache与访问下级存储器的方式不变、容量不减。
因此对于编程人员来说,Cache是完全透明的,也就是说,他们感觉不到Cache的存在。
由于Cache的容量比下级存储器小l-2个数量级、要做到上述两点,则必须考虑以下问题:1.如何组织Cache,使得下级存储器的每个部分都能够在需要时调入Cache2.采用何种替换策略、使得访问cache的命中率最高;3.采用什么方法使得Cache和下级存储器的数据具有—致性,即修改Cache后保证下级存储器的内容也随之修改(或者相反)。
通过上面的介绍,我们知道Cache也是一种存储器,其工作速度很高,如Ll和L2 Cache就是为了解决PU和DRAM主存之间的速度匹配而设置的。
因此主存Cache也可以看作是高速CPU和低速DRAM 之间的接口。
高性能计算机系统中Cache的性能分析及改进

包括 Cah 设 计 的 基本 问题 , ah 性 能 分 析 , ah ce C ce C ce失 效原 因的 分析 以及 C ce设计 中一 些改 进 方 法 ah
【 关键词】 ah, :C ce主存, .M, 中率 S A 命 R
O、 言 引
C U 时 间= C U执 行 时 钟 数+ 存 等 待 时 钟数 ) 时 钟周 期 P (P 访 x 在 现 代 微 型 计算 机 系统 中 ,P 的速 度 越 来 越 快 C U 主频 CU P 由 于 C c e 效 是 访 存 等 待 的 最 重 要 原 因 .我 们 假设 访 存 ah 失 的 提 升 会 带 动 系 统 性 能 的 改 善.但 系 统 性 能 的 提 高 不 仅 仅 取 决 等 待 都 是有 C ce失 效产 生 的 . 简化 分 析 ah 以 于 C U 还 与 系 统 架 构 、 令 结 构 、 息 在 各 个 部 件 之 间 的 传 送 P. 指 信 访 存 等 待 时 钟数 = 存 储器 访 问数/ 序 )失 效 率 X 效 损 失 ( 程 × 失
1 0 0年第 7期
高性能计算机 系统 中 C ce的性能分 析及 改进 ah
张
【 摘
静
(内蒙 古科 技 大 学 信 息 工 程 学 院 内蒙 古 包 头 0 4 1 10 0)
要 】 通过 高速缓冲存 储器技 术是现代处理 器设计中的核心技 术之一 。 : 本文详细讨论 了 C ce 计中的重要 内容 ah 设
~
在 执 行 的 指令 地 址 附 近 的 一部 分 指 令 或 数 据 从 主存 调入 这 个 存 对 某 存 储块 进行 第 一 次 访 问 时 . 由于 该 块 不 在 C c e中 . ah 所 储 器。 C U在 一 段 时 间 内使 用 。 对 提 高 程 序 的 运 行速 度 有 很 以必 须 首先 将 存 储 块 取 到 C c e中 这 种 情 况 又被 称 为冷 启 失 供 P 这 ah 大 的 作 用 。这 个 介 于 主存 和 C U之 问 的高 速 小 容 量 存储 器称 作 效 。 P 高 速缓 冲存 储 器 (ah 1 C c e。 (1 量 失 效 2容 C U 访 问 存 储 器 时 ,首 先 检 查 C c e P a h .如 果 访 问 的 数 据 在 如 果 C c e不 能 容 纳 某 ~ 程 序 执 行 过 程 中 的 所 有 存 储 块 . ah C ce中 , C U就 能 很 快完 成 访 问 . 种 情 况 称 之 命 中 。 中率 那 么 当 程序 又 需 使 用 某 一 曾在 C ce中 .但 现 在 已 替换 出 的存 ah 则 P 这 命 ah 越 高, 确获 取数 据 的 可靠 性 就 越 大 。一 般 来 说 ,ah 正 C c e的命 中率 储 块 时 . 会 出现 容 量 失 效 。 就 决 定 于 C ce容量 、 ah ah C ce控制 算 法 和 C c e的结 构 。设 计 较 好 ah () 3冲突 失 效 的 C ce系 统 , 中率 应 在 9 %以上 。至于 没 有 命 中的 数 据,P ah 命 O CU 在 采 用 组相 联 或 直 接 映射 替 换 策 略 的 C ce中 .许 多块 都 ah 只 好 直 接 从 主 存 中获 取 , 时 也 把 它 复 制 到 C ce中 . 备 下 次 必 须 映 射到 C c e中 的 某 一 块 中 .由 于 这 种 原 因使 得 当 程序 又 同 ah 以 ah 访 问。 需 要 使 用某 一 曾在 C ce中 . 现 在 已被 替 换 出 的存 储 块 时 , ah 但 就 2、 c e的 基 本 结 构 Ca h 会 出现 冲突 失 效 在 C c e系统 中. 存 和 C ce都 是 由 同 样 大 小 的 块 组 成 ah 主 ah 主 存 总 是 以块 为 单 位 映象 到 C ce中 ah 每一 个 存 储 块 外 ah C ce的 加 一 个 标 记 , 当于 其 主存 中的 块 号 。 访 问 C ce时 , 主 存 地 相 当 ah 将 址 和 块 号 部 分 和 每一 个 标 记 同 时 进 行 比较 .从 而 对 标 记 相 同 的 存 储 块 进 行 访 问 。C c e 三 种 基 本结 构 : ah 有 f1 接 映象 C ce 主存 的一 个 块 可 以映 象 到 C ce的 一 1直 ah 。 ah 个 位 置 。地 址 仅 需 比较 一 次 , 因而 查 找速 度 快 , 但命 中率 较 低 。 f1 相 联 C ce 主存 的一 个 块 可 以 映 象 到 C ce的 任 何 2全 ah 。 ah 位 置 每 一 次 请 求 数 据 同 C ce中 的 地址 进 行 比较 需 要 相 当 长 ah 的时 间 . 以速 度 较 慢, 是命 中率 高 。 所 但 f、 相 联 C ce 主存 的一 个 块 可 以 映 象 到 C c e的有 限 3组 ah 。 ah 的 位 置 它 是 介 于全 相 联 C ce和 直 接 映 象 C c e之 问 的 一 种 ah ah 结 构 这 种类 型 的 C ce使 用 了几 组 直 接 映 象 的块 , 于 某 一 个 ah 对 给 定 主 存 块 . C c e中 可 以允 许 有 几 个 块 位 置 , 而 可 以增 加 在 ah 因 命 中率 和 系 统 效率 。 全 相联 C ce中没 有 冲 突 失效 .但增 加 相 联 度 在意 味 着 增 ah 加 成本 . 且 可 能延 长 访 问 时 间 . 而 这样 就会 降低 处 理 器 的整 体 性 能 要 减 少 容 量失 效 , 要 增 加 C ce的 容量 。上 层 存 储 器容 量 就 ah 太小 , 就会 频 繁产 生 抖 动 现 象 . 意 昧 着 机 器将 以接 近低 级 存 储 这 器 的速 度 运 行 增 加 存储 块 的大 小 可 以减 小 突 发失 效 的数 目 , 但
高档计算机系统中Cache性能分析

C m u nwe eadTc nl y电脑 知 识 与技术 o p  ̄r o l n eh o g K 内 o
Vo . .2,A g s 2 . ]7 No 2 u u t 01 1
高档 计 算机 系统 中 C c e性 能分 析 ah
潘继强
( 西理 T学 院 汁 算 机科 学 与技 术系 . 西 汉 中 7 3 0 ) 陕 : 陕 20 0
速 度 的 提 高始 终 跟 不 上 C U 的发 展 , P 据统 计 , P 的速 度 平 均 每 年改 进 6 % , 组 成 主 存 的 动态 R M( CU 0 A 随机 存 储 器 ) 速度 平 均 每 年 只
改 进 7 , 果 是 C U和 主 仔 之 间 的 速 度 间 隙平 均 每 年 大 增 5 %。处 理 器 运 行 和 存 储 器访 问 的速 度 增 长 之 间 存 在 的差 距 越 来 越 大 , % 结 P 0 这 种 现 象 已经 成 为 影 响 计算 机 系统 性 能 最 主 要 的瓶 颈之 一 。假 设 一 台 计算 机 的 C U工 作 速 度很 快 , 配 备 的 主存 访 问速 度 相 对 较 P 而 慢 , 样 就 会造 成 C U 在 访 存 时 等待 , 低 了 处理 器 的工 作 速 度 . 而 影 响 计 算机 的整 体 性 能 。 这 P 降 进 解决 C U _ 主存 的速 度 差距 问 题在 于保持 C U的 能力 , 高 主存 的 速度 。使用 硬 件技 术 提 高存 储 芯 片 的存 取速 度 是 一 个有效 的 P I . j P 提 手段 , 可是 在慢 速 的 主存 和 快速 C U之 I 插 入一 个 容量 较 小 的高 速 存 储 器起 缓 冲 作用 ( C c e 术 ) P 开 J 即 ah 技 也是 解 决 问题 的 一 个行 之有 效 的方 法 , 得速 度 和成 本 之 间 的矛盾 得 到 较合 理 的解 决 。 自从 1 8 使 9 5年 It 8 3 6问世 以来 , ne 0 8 1 在后 续 的微 处 理 器 中都 采用 了 C c e ah 。
详述cache工作原理及其在计算机中的应用

详述cache工作原理及其在计算机中的应用一、概述Cache,即缓存,是一种广泛应用于计算机系统中的技术,主要用于提高数据访问的效率。
它通过存储数据副本,以便在后续请求时能够快速获取,从而减少访问时间,提高整体性能。
本篇文章将详细介绍Cache的工作原理,并探讨其在计算机中的应用。
二、Cache工作原理1.缓存对象:Cache存储的对象通常是数据库记录、文件、对象或网页等数据的一部分。
这些对象通常是频繁访问的,通过缓存这些对象,可以提高数据访问的效率。
2.缓存存储位置:Cache通常将缓存对象存储在靠近数据源的地方,例如服务器内存或磁盘上的特殊区域。
这种接近数据源的存储位置可以大大减少数据传输的时间,从而提高整体性能。
3.缓存替换策略:当Cache中存储的对象数量达到上限时,需要从缓存中移除一些对象以腾出空间。
常用的缓存替换策略有LRU (LeastRecentlyUsed)、FIFO(FirstInFirstOut)等。
4.数据一致性:当多个进程或线程同时访问同一个Cache时,需要保证数据的一致性。
通常需要通过一定的机制(如锁)来避免数据冲突。
5.缓存命中与未命中:当请求的数据在Cache中存在时,称为缓存命中;否则称为缓存未命中。
缓存命中时,数据可以直接从Cache 中获取,大大减少访问时间;而缓存未命中时,则需要从数据源获取数据,并将其存储在Cache中,以便后续访问。
1.网页浏览器:网页浏览器使用Cache来缓存网页内容,例如网页的HTML、图片、JavaScript等。
当用户再次访问同一个网页时,浏览器可以直接从Cache中获取数据,而不需要再次从网络上下载。
2.数据库系统:数据库系统使用Cache来缓存数据库记录和对象,以提高查询效率。
当查询涉及到的数据在Cache中存在时,可以直接从Cache中获取,减少查询时间。
3.文件系统:文件系统使用Cache来缓存文件内容,以提高文件读取和写入的效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库与信息管理本栏目责任编辑:代影Computer Knowledge and Technology 电脑知识与技术第7卷第22期(2011年8月)高档计算机系统中Cache 性能分析潘继强(陕西理工学院计算机科学与技术系,陕西汉中723000)摘要:现代计算机体系结构中广泛采用Cache 来缓解处理器运行和存储器访问的速度增长之间的巨大差距,使得Cache 已经成为影响处理器性能、功耗、价值的重要因素之一。
文章根据Cache 基本工作原理和引入Cache 后计算机系统的性能分析,介绍了一些改进Cache 性能的方法。
关键词:高速缓存;命中率;局部性原理;静态随机存储器中图分类号:TP302文献标识码:A 文章编号:1009-3044(2011)22-5285-02随着计算机技术的不断发展和进步,CPU(中央处理器)主频的不断提高对计算机系统性能的提升起到了极大的作用,但是作为一个完整的计算机系统,计算机系统性能的提高并不是仅取决于CPU 的主频,还与其他因素密切相关,例如,计算机系统结构、数据在各部件间的传送速度、存储部件的存取速度等,其中CPU 和主存之间的存取速度与计算机系统性能的提高有很大关系。
可是主存速度的提高始终跟不上CPU 的发展,据统计,CPU 的速度平均每年改进60%,而组成主存的动态RAM(随机存储器)速度平均每年只改进7%,结果是CPU 和主存之间的速度间隙平均每年大增50%。
处理器运行和存储器访问的速度增长之间存在的差距越来越大,这种现象己经成为影响计算机系统性能最主要的瓶颈之一。
假设一台计算机的CPU 工作速度很快,而配备的主存访问速度相对较慢,这样就会造成CPU 在访存时等待,降低了处理器的工作速度,进而影响计算机的整体性能。
解决CPU 与主存的速度差距问题在于保持CPU 的能力,提高主存的速度。
使用硬件技术提高存储芯片的存取速度是一个有效的手段,可是在慢速的主存和快速CPU 之间插入一个容量较小的高速存储器起缓冲作用(即Cache 技术)也是解决问题的一个行之有效的方法,使得速度和成本之间的矛盾得到较合理的解决。
自从1985年Intel80386问世以来,在后续的微处理器中都采用了Cache 。
1Cache 的工作原理在现代计算机系统中,高速缓存Cache 已经逐渐成为计算机不可缺少的一部分。
在计算机系统中设置Cache 是为了解决高速处理器和低速主存之间速度不匹配的问题,从而可以提高整机的性能。
因此要分析Cache 对计算机性能的影响,必须要了解其工作原理。
Cache 的工作原理是基于程序和数据访问的局部性。
任何程序或数据要为CPU 所使用,必须先放到主存中。
CPU 只与主存交换数据,所以主存的速度在很大程度上决定了系统的运行速度。
对大量典型程序运行情况的分析结果表明,程序运行期间,在一个较短的时间间隔内,由程序产生的内存访问地址往往集中在主存很小范围的地址空间内。
这一点不难理解。
指令地址本来就是连续分布的,再加上循环程序段和子程序段要多次重复执行。
因此,对这些地址中的内容的访问就自然具有时间上集中分布的倾向。
数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及内存变量的安排都使存储器地址相对集中。
这种在单位时间内对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。
由此可以想到,如果把在一段时间内、一定地址范围内被频繁访问的信息集合成批地从主存中读到一个能高速存取的小容量存储器中存放起来,供程序在这段时间内随时使用,从而减少或不再去访问速度较慢的主存,就可以加快程序的运行速度。
这就是Cache 的设计思想,在主存和CPU 之间设置一个小容量的高速存储器就是高速缓存Cache(其结构如图1所示),通常由SRAM(静态随机存储器)构成。
它的存取速度比构成主存的动态RAM 要快的多,故CPU 在需要访问主存中的程序和数据时,就不必多次直接访问速度较慢的主存,而是从高速缓存中以更快的速度得到必要的程序和数据,从而可以缓解CPU 和主存速度不匹配的矛盾,进而提高计算机系统的性能。
但是SRAM 的价格比较昂贵,若干设置大容量的高速缓存,就会增加计算机的成本,故Cache 的容量一般相对主存来说都比较小。
在Cache 系统中,将主存和Cache 都分成若干同样大小的块,每块内又包含若干个字,主存总是以块为单位映射到Cache 中。
根据程序访问的局部性原理,在程序运行期间系统不断地将与当前访问块相关联的后继存储单元块从主存读入到Cache ,其实质就是把主存中的程序和数据分块复制到Cache 中,然后再和CPU 进行高速传送。
当CPU 需要访问主存时就会在地址总线上发出访存地址,首先通过主存—Cache 地址变换机构判定访存地址所对应的存储单元块是否已在Cache 中。
如果在Cache 中(称为Cache 命中),则经地址变换机构将主存地址变换成Cache 地址去访问Cache 。
如果不在Cache 中(称为Cache 不命中),此时就要把要访问的字直接从主存送往CPU ,同时把包括该字的主存块调入Cache 供CPU 使用。
当然Cache 的容量是有限的,如果此刻Cache 处于未被装满的状态,则可将新的主存块直接调入Cache 。
倘若Cache 原来已被装满,即已无法将新的主存块调入Cache 时,就得采用替换策略,从Cache 中换出一个旧块,并将新块替换进Cache 。
收稿日期:2011-05-28作者简介:潘继强(1978-),男,陕西汉中人,讲师,研究方向为计算机基础理论教学。
图1缓存—主存层次结构图E-mail:jslt@ Tel:+86-551-56909635690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.7,No.22,August 2011.5285本栏目责任编辑:代影数据库与信息管理Computer Knowledge and Technology 电脑知识与技术第7卷第22期(2011年8月)2Cache 的性能分析在计算机系统中设置Cache 的目的是为了解决CPU 和主存之间速度不匹配的矛盾,从而提高计算机的性能。
尽管引入Cache 后,使用SRAM 技术的Cache 访问速度与CPU 的速度相当,可以使系统的整体性能得到提高,但由于SRAM 的制作工艺比较复杂、制作成本比较较高,从计算机系统的性价比方面来考虑,不可能将所有主存都换成SRAM ,也不可能设置大容量的Cache 。
例如,80386的主存最大容量为4GB ,与其配套的Cache 容量为16KB 或者32KB 。
从CPU 性能方面考虑,增加Cache 系统的目的就是使Cache —主存系统的平均访问时间接近Cache 访问时间。
在Cache —主存系统中,平均访问时间t 可定义如下:t=h ·t c +(1-h)·t m其中h 表示命中率(数值上等于命中次数比上命中次数与未命中次数之和。
当Cache 不命中时,CPU 就需要访问主存,故未命中次数就等于访问主存的次数),t c 表示命中Cache 时的访问时间,t m 表示未命中Cache 时访问主存的时间。
假设CPU 在执行某段程序时,共访问Cache 命中2000次,访问主存50次。
已知Cache 的存取周期为50ns ,主存的存取周期为200ns 。
则Cache 的命中率为:h=2000/(2000+50)=0.97于是可计算出Cache —主存系统的平均访问时间为:t=50ns ×0.97+2000ns ×(1-0.97)=54.5ns通过以上分析可以发现,在使用Cache 的计算机系统中,Cache —主存系统的平均访问时间非常接近于Cache 访问的时间,其数值远小于主存的存取周期,这说明增加Cache 之后,计算机系统的性能有了显著的提高。
同时也说明命中率h 是影响Cache —主存系统的平均访问时间的关键,因此提高命中率对改善Cache —主存系统的效率起着关键性的作用。
3Cache 的性能改进通过对Cache 性能分析,可知Cache 命中率是影响Cache —主存系统的平均访问时间的关键。
Cache 的命中率越高,发生不命中可能性就越小,从Cache 获取指令和数据的可能性就越大,平均访问时间也就越短,使处理器保持高效率运作,从而可以提高计算机整机性能。
通过对Cache 的基本原理的分析,Cache 不命中的原因有以下几个方面:1)当程序首次执行时,由于对应的主存块是第一次访问,故该块必然不在Cache 中,所以必须首先将主存块复制到Cache 中。
而且当CPU 顺序访问下一个主存块时依然会发生不命中,这个过程一直会持续到Cache 装满或程序全部调入Cache 为止。
此时发生不命中的次数和分块的大小有直接关系,块长越大,发生不命中的次数自然就越小。
2)若Cache 的容量太小,受此条件的限制,不可能在执行过程中将所需的指令和数据全部调入Cache ,于是程序执行期间可能会发生频繁的替换。
每当发生替换时,CPU 就要访问慢速的主存,而且发生替换的频率越高,越不利于CPU 性能的发挥。
3)采用替换策略时,由于主存的容量远大于Cache 的容量,故需替换入的主存块的个数大于Cache 可容纳的块数,在替换时极有可能会把下次访问的指令或数据替换出去,而且当块长越大,替换时传送的数据量也就越大,造成下次访问的不命中。
由于块长的增大,导致缓存中块数的减少,而新装入的块要覆盖旧块,很可能出现少数块刚刚装入就被覆盖,因此命中率反而下降。
影响Cache 性能的因素比较多,其中Cache 的容量与块长是影响Cache 效率的重要因素。
目前块长的最优值很难确定,一般每块取4至8个字或字节较好。
而在其他因素方面还有以下方法可以改进Cache 的性能。
1)增大Cache 容量,降低不命中率。
Cache 的命中率和容量有极大的关系,一般来说,Cache 的存储容量比主存容量小的多,大不能太小,太小会使命中率太低。
但是容量也没有必要太大,太大不仅会增加成本,而且当Cache 容量达到一定值后,命中率随容量的增家将不会有显著的提高,其关系如图2所示。
因此,Cache 的空间与主存空间在一定范围内应保持适当比例的映射关系,以保证Cache 有较高的命中率,并且系统成本不过大地增加。
一般情况下,可以使Cache 与主存的空间比为1:128。
2)通过Cache 的结构设计,减少不命中次数。
根据主存采用指令、数据分开存储的方案,在设计高速缓存的结构时,则相应的Cache 采用分立缓存。