Cache性能分析

合集下载

cache介绍

cache介绍

cache介绍前⾯已多次提到了Cache,这可是⼀个讨⼈喜欢的东西,您有必要详细了解它的作⽤与原理。

Cache是介于CPU与主内存之间、或者主内存与磁盘之间的⾼速缓冲器,其作⽤是解决系统中数据读写速度不匹配的问题。

其中介于CPU与主内存之间的缓冲器⼜称为RAM Cache,⽽介于主内存与磁盘驱动器之间的缓冲器则称之为Disk Cache,这⾥要讨论的是前者,也就通常简称的Cache。

那么,Cache是怎样⼯作的呢?您⼀定明⽩CPU的运算速度⽐主内存的读写速度要快得多,这就使得CPU在访问内存时要花很长的等待时间,从⽽造成系统整体性能的下降。

为了解决这种速度不匹配的问题,需要在CPU与主内存之间加⼊⽐主内存更快的SRAM(Static Ram,静态存储器)。

SRAM储存了主内存中的数据(专业术语称为“映象”),使CPU可以直接通过访问SRAM来读写数据。

由于SRAM的速度与CPU的速度相当,因⽽⼤⼤缩短了数据读写的等待时间,系统的整体速度也就得到了提⾼。

既然SRAM那么快,为什么不⽤来作为主内存呢?这是因为SRAM采⽤了与CPU相类似的半导体制造⼯艺,成本极⾼,只有在那些只关⼼性能不考虑价格的场合才会这样做。

这也就使得Cache粉墨登场了,它能将CPU⽤过的数据,以及结果保存起来,让CPU下次处理时先来访问Cache,如果没有可⽤的数据再去别处找,以此来提⾼运⾏速度。

Cache由标记存储器和数据存储器两个基本部分组成。

标记存储器是⽤来储存Cache的控制位与块地址标签,控制位⽤于管理Cache的读写操作,⽽块地址标签则记录着Cache中各块的地址。

这个地址包含了与主内存映射的块地址,并且都与Cache中的⼀块“数据”相对应。

⽽这块“数据”正是贮存于Cache的数据存储器中。

当CPU读取数据时,先通过地址总线把物理地址送到Cache中,与Cache中的块地址标签进⾏对⽐。

若相符合,则表⽰此数据已经存在于Cache中(此情况被戏称为“命中”),这时只需把Cache中的对应数据经由数据总线直接传送给CPU即可。

5-1 存储系统 Cache_v1.0

5-1 存储系统 Cache_v1.0

计算机系统结构
层次之间应满足的原则
一致性原则


处在不同层次存储器中的同一个信息应保持相同的值。

包含性原则

处在内层的信息一定被包含在其外层的存储器中,反 之则不成立, 即内层存储器中的全部信息,是其相邻 外层存储器中一部分信息的复制品
北京信息科技大学
计算机系统结构
“Cache主存”和“主存辅存”层次
主存块地址 tag index
北京信息科技大学
计算机系统结构
直接映像方式


直接映像方式:是指主存的一个字块只能映像 到Cache中确定的一个字块。 举例 直接映像方式特点:



主存的字块只可以和固定的Cache字块对应,方式 直接,利用率低。 标志位较短,比较电路的成本低。如果主存空间有 2m块,Cache中字块有2c块,则标志位只要有m-c 位。而且在访问Cache时候仅需要比较一次 空间利用率最低,冲突概率最高,实现最简单。
计算机系统结构
现代计算机的层次存储器系统

利用程序的局部性原理:

以最低廉的价格提供尽可能大的存储空间 以最快速的技术实现高速存储访问
Processor Control Second Level Cache (SRAM) Main Memory (DRAM) Secondary Storage (Disk)
北京信息科技大学
计算机系统结构
Cache基本知识


高速缓冲存储器:在相对容量较大而速度较慢的主存与 高速处理器之间设置的少量但快速的存储器 基本工作原理:




把Cache和主存分成若干大小相同的块( block,行、线 line,槽slot ),Cache由块目录表及快速存储器组成 对主存地址,根据映象规则生成标签和索引;根据标签和 索引查找具体的Cache块 无(失效/缺失miss)则到主存取一个块的数据(遇到 Cache没有,空间则需要替换),并给处理器需要的部分 有(命中hit)则从Cache读取数据;如果是写入操作,需 考虑与主存数据保持一致(写入策略)

3-9 CPU的性能与功耗(3)

3-9 CPU的性能与功耗(3)

第三章CPU 第三章CPU高速缓存性能分析高速缓存性能分析Caches的引入使得执行时间非确定了•依赖于执行的顺序Cache未命中损失: 由于cache未命中而需要花费的额外时间未命中的原因:强制性未命中,容量未命中,冲突未命中CPU 功耗CPU功耗在某些情况下,CPU 的功耗与其运行时间同等重要功率和能量:•功耗是能量消耗和功率消耗的简称•热量的产生取决于功率•电池的寿命取决于能量的消耗CMOS 的功耗CMOS的功耗CMOS几乎所有的数字系统都有的影响CMOS 功耗的因素电压降(Voltage drops): 功耗与V2成正比切换(Toggling): 切换越多, 功耗越多泄漏(Leakage): 消除漏电的唯一方法切断电源影响CMOS功耗的因素CPU 节能的方法CPU 在低电压下使用在低时钟频率下使用内部禁止当前执行功能不需要的功能单元允许部分CPU 部件完全与电源断开,以消除泄漏电流CPU 节能的方法电源管理的特征•由用户调用,不依赖与CPU 的活动静态电源管理特征•基于CPU活动来对功耗进行控制动态电源管理特征电源管理的特征应用:PowerPC 603 节能模式静态电源管理功能,提供三种低功耗模式小睡(doze)模式打盹(nap)模式休眠(sleep)模式动态电源管理技术关闭不用的执行单元Cache的组织,最小化活动电路的数目应用:PowerPC 603 节能模式节电模式的进入和退出进入或退出节电模式的消耗•时间•能量确定进入是否值得用能量状态机建立CPU能量模型节电模式的进入和退出应用: StrongARM SA-1100 节能模式应用: StrongARM SA-1100 节能模式处理机有2个电源VDD 主电源:3.3VVDDX 电源:1.5V三种电源模式运行(Run): 正常操作模式空闲(Idle): 通过停止CPU时钟节省功耗,但系统单元模块任然供电睡眠(Sleep): 关闭大部分芯片的活动SA-1100 能量状态机runidle sleepP run =400mWP idle =50mWP sleep =0.16mW 10μs 10μs90μs 160ms90μs SA-1100 能量状态机总结 1.Cache性能分析 2.CPU 功耗 3.CPU 的电源管理总结。

一级指令cache、一级数据cache和二级cache的关系-概述说明以及解释

一级指令cache、一级数据cache和二级cache的关系-概述说明以及解释

一级指令cache、一级数据cache和二级cache的关系-概述说明以及解释1.引言1.1 概述一级指令cache、一级数据cache和二级cache是计算机体系结构中的重要组成部分。

它们在提高计算机性能方面起着至关重要的作用。

一级指令cache和一级数据cache是位于处理器内部的高速缓存,而二级cache位于处理器和主内存之间。

一级指令cache主要用于存储指令,而一级数据cache则用于存储数据。

它们的作用是在处理器执行指令和读取或写入数据时提供快速访问。

由于它们位于处理器内部,与处理器芯片封装在一起,因此它们的访问速度非常快,可以减少处理器等待主内存的时间。

二级cache则位于一级cache和主内存之间,它的容量通常比一级cache大,但速度比一级cache慢。

它的作用是为一级cache提供额外的容量,并缓解一级cache的压力。

当一级cache无法命中时,即无法从一级cache中找到所需的数据或指令时,处理器将会访问二级cache,并将数据或指令加载到一级cache中以供后续使用。

一级指令cache、一级数据cache和二级cache之间存在着一定的关系。

一级指令cache和一级数据cache通常是独立的,它们分别用于存储指令和数据,并独立进行访问和操作。

而二级cache则用于为一级cache 提供支持,当一级cache无法命中时,处理器将访问二级cache。

如果在二级cache中找到了所需的数据或指令,则将其加载到一级cache中,以便后续使用。

这样一来,二级cache充当了一级cache的备份存储器,提高了数据和指令的访问效率。

总之,一级指令cache、一级数据cache和二级cache的存在和协作可以提高计算机的性能,减少处理器与主内存之间的数据传输时间,加快指令和数据的访问速度。

它们共同构成了计算机的存储系统,为计算机的高效运行做出了重要贡献。

1.2 文章结构文章结构部分的内容可以写为:文章结构:本文主要围绕一级指令cache、一级数据cache和二级cache的关系展开讨论。

cache的使用

cache的使用

cache的使用摘要:1.Cache 的概念和作用2.Cache 的常见类型3.Cache 的命中率4.Cache 的替换策略5.Cache 在实际应用中的优势和挑战正文:Cache 的使用在计算机系统中扮演着至关重要的角色,它能够有效地提高数据访问速度和系统性能。

本文将详细介绍Cache 的概念、作用、常见类型、命中率、替换策略以及在实际应用中的优势和挑战。

1.Cache 的概念和作用Cache 是一种高速、小容量的临时存储器,位于CPU 和主存储器之间。

其作用是存储近期访问的数据和指令,以便快速响应CPU 的请求。

通过使用Cache,可以减少CPU 与主存储器之间的访问延迟,提高数据传输速度。

2.Cache 的常见类型根据存储介质和存储方式的不同,Cache 可以分为多种类型,如L1 Cache(一级缓存)、L2 Cache(二级缓存)、内存Cache(又称虚拟Cache)等。

这些Cache 各自负责存储不同层次的数据,共同构成了多层次的Cache 体系。

3.Cache 的命中率Cache 的命中率是指CPU 从Cache 中读取指令或数据的次数与CPU 从主存储器中读取指令或数据的次数之比。

较高的命中率意味着Cache 能够有效地减少CPU 与主存储器之间的访问次数,从而提高系统性能。

4.Cache 的替换策略由于Cache 的容量有限,当存储空间不足时,需要采取一定的替换策略来腾出空间。

常见的替换策略有FIFO(先进先出)、LRU(最近最少使用)、RAND(随机替换)等。

选择合适的替换策略能够最大限度地减少因替换操作带来的性能损失。

5.Cache 在实际应用中的优势和挑战Cache 技术在实际应用中具有显著的优势,如提高系统性能、降低功耗等。

然而,随着处理器核心数的增加和数据访问模式的变化,Cache 的设计和优化也面临着诸多挑战,如多核Cache 一致性、非均匀访问等。

为了解决这些问题,研究人员不断提出新的Cache 结构和算法,以满足不断发展的计算需求。

西安交大计算机系统结构实验报告.

西安交大计算机系统结构实验报告.

《计算机系统结构课内实验》实验报告第一次实验:记分牌算法和Tomasulo算法第二次实验:cache性能分析班级:物联网21姓名:李伟东学号:2120509011日期:2015.5.21第一次实验:记分牌算法和Tomasulo算法一、实验目的及要求1. 掌握DLXview模拟器的使用方法;2. 进一步理解指令动态调度的基本思想,了解指令动态调度的基本过程与方法;3. 理解记分牌算法和Tomasulo算法的基本思想,了解它们的基本结构、运行过程;4. 比较分析基本流水线与记分牌算法和Tomasulo算法的性能及优缺点。

二、实验环境DLXview模拟器三、实验内容1.用DLX汇编语言编写代码文件*.s(程序中应包括指令的数据相关、控制相关以及结构相关),以及相关的初始化寄存器文件*.i和数据文件*.d;2.观察程序中出现的数据相关、控制相关、结构相关,并指出三种相关的指令组合;四、实验步骤将自己编写的程序*.s、*.i、*.d装载到DLXview模拟器上,(1)分别用基本流水线、记分牌算法和Tomasulo算法模拟,针对每一种模拟做如下分析:①统计程序的执行周期数和流水线中的暂停时钟周期数;②改变功能部件数目重新模拟,观察并记录性能的改变;③改变功能部件延迟重新模拟,观察并记录性能的改变;论述功能部件数目、功能部件延迟对性能的影响。

(2)记录运行记分牌算法时的功能部件状态表和指令状态表;(3)记录运行Tomasulo算法时的指令状态表和保留站信息;五、实验结果1)基本流水线原始即加法延迟2,乘法延迟5,实验结果显示该段程序运行了11个时钟周期增加了一个除法器。

加法器延迟2,乘法器延迟5,除法器延迟19。

实验结果显示该段程序运行了11个时钟周期。

增加除法器对程序的执行无影响。

加法器延迟2,乘法器延迟6,无除法器。

实验结果显示该段程序运行了12个时钟周期乘法器的延迟对程序执行有有影响。

加法器延迟1,乘法器延迟5。

高性能计算机系统中Cache的性能分析及改进

高性能计算机系统中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性能分析实验报告

cache性能分析实验报告

计算机系统结构实验报告名称: Cache性能分析学院:信息工程*名:**学号:S******专业:计算机系统结构年级:研一实验目的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模拟器的相关知识。

详见相关的文档。

2. 复习和掌握教材中相应的内容(1)可以从三个方面改进Cache的性能:降低失效率、减少失效开销、减少Cache命中时间。

(2)按照产生失效的原因不同,可以把Cache失效分为三类:①强制性失效(Compulsory miss)当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性失效。

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

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.din
Cache 容量为64KB 时:
表2 当容量为64K 时的不命中率
相联度 1 2 4 8 16 32
不命中率(%)
2.71 1.80 1.61 1.55 1.54 1.54
Cache 容量为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 512
16 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行的增加先减小后增加。

(2)在Cache行一定的情况下,Cache不命中率随着Cache容量的增加不断减小。

4.替换算法对不命中率的影响:
设置:Cache 大小设置如下,Cache 行大小:64B 预取策略:不预取 写策略:写回 写不命中的调快策略:按写分配 文件:tex.din
表5 替换算法对不命中率的影响 Cache 的容量
相联度
2路 4路 8路 LRU
FIFO RAND LRU FIFO RAND LRU FIFO RAND 16KB 0.09% 0.10% 0.37% 0.09% 0.11% 0.11% 0.10% 0.11% 0.33% 64KB 0.07% 0.08% 0.10% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 256KB 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 1MB
0.07%
0.07%
0.07%
0.07%
0.07%
0.07%
0.07%
0.07%
0.07%
结论:(1)LRU 、FIFO 、RAND 算法的不命中率随着相联度的增加而减少且随着cache 容量的增加而减少,但是当Cache 容量达到一定程度时,命中率和替换算法无关。

(2)在相联度相同,cache 容量相同时,使用LRU 替换算法的不命中率比其他的算法的不命中率小;
(3)当cache 容量增大到一定程度,相联度达到一定程度时,不命中率不会再降低,且与算法的选择关系不大。

5.降低不命中率的方法
通过以上对Cache 性能的分析,我们可以看出要提高命中率可以采取以下方法: (1)增加Cache 块大小 (2)增加cache 容量 (3)提高相联度
二、关于程序实现:
说明:程序没有实现出来,只有一些思路 (1)命中率的计算:
假设Cache 容量为16KB ,块大小为16B ,相联度为4路,那么: 1路大小为4B ,所以字地址位数为2
Cache 块数:
104142221616==B
B
B KB ,所以组号位数为10 剩下的就是tag 位了
由于所给的程序中的数据都是16进制的,那么我们要做的工作包括: ①把16进制转换为二进制
②对数据进行扩展,统一扩展为32位(不足的补0) ③截取tag 标志位
设置一个用于记录命中的count
tag 组号 字地址
命中率的计算就以tag位的比较为主:
tag位相同就表示命中(count++),否则就没命中
(2)替换算法
LRU替换算法:
可以使用计数器方法:
Step1:
被调入或者被替换的块,其计数器清“0”,而其它的计数器则加“1”。

Step2:
当访问命中时,所有块的计数值与命中块的计数值要进行比较,如果计数值小于命中块的计数值,则该块的计数值加“1”;如果块的计数值大于命中块的计数值,则数值不变。

最后将命中块的计数器清为0。

Step3:
需要替换时,则选择计数值最大的块被替换。

RAND替换算法:
随机替换算法就是用随机数发生器产生一个要替换的块号,将该块替换出去,这里需要设置一个随机数产生函数。

FIFO替换算法:
可以设置一个标志first = 1,然后给每一个数据一个sequence标志位
数据进来时:sequence = first;
first++;
那么替换的时候我们就替换带哦sequence 排在最前面的数据
(3)写回法和写直达法
写回法:
执行“写”操作时,只写入Cache,仅当Cache中相应的块被替换时,才写回主存。

这里,需要设置一个“修改位”-Dirty,当某行被换出时,根据此行修改位是1还是0,决定是将该行内容写回主存还是简单的丢弃。

如果Cache写未命中写回法的处理:为包含欲写字的贮存快在cache分配一行,将此块整个拷贝到Cache后对其进行修改。

写直达法:
写直达法不需要设置一个修改位,写cache与写主存同步进行。

相关文档
最新文档