计算机组成原理之Cache模拟器的实现

合集下载

Cache模拟器实验报告

Cache模拟器实验报告

Cache模拟器一、实验目标:程序运行时,都会对内存进行相关操作,所访问的内存地址可以被记录下来,形成memory trace文件。

在本实验中,你将使用benchmark 程序产生的memory trace文件来测试Cache命中率,文件可以在/classes/fa07/cse240a/proj1-traces.tar.gz上获得。

每次存储器访问都包含了三个信息:1.访问类型,’l’表示Load操作,’s’表示Store操作;2.地址。

采用32位无符号的十六进制表示;3.存储器访问指令之间的间隔指令数。

例如第5条指令和第10条指令为存储器访问指令,且中间没有其他存储器访问指令,则间隔指令数为4。

通过写一段程序,模拟Cache模拟器的执行过程。

二、实验要求:写一段程序模拟Cache模拟器的执行过程,并对5个trace文件进行测试,完成以下目标:1.请统计Load类型指令和Store类型指令在这5个trace文件中的指令比例。

2.设Cache总容量为32KB,对以下所有参数进行组合(共有72种组合),测量相应5个文件的Cache命中率。

通过对命中率的分析,可以发现什么规律。

行大小:32字节、64字节、128字节相连度:8路相联、4路相联、2路相联、1路相联替换策略:FIFO,随机替换,LRU写策略:写直达、写回3. 给出5个文件的最佳Cache命中率的参数组合。

针对不同的trace 文件,最佳配置是否相同。

4. 测量各种组合下Cache和主存之间的数据传输量。

5. 给出5个文件的最小数据传输量的参数组合。

这个组合和第3问中得到的组合是否一致。

针对不同的trace文件,最佳配置是否相同。

6. Cache缺失有三种原因:1)强制缺失;2)容量缺失;3)冲突缺失。

分析这三种缺失并说明你的分析方法。

7. 请给出5个trace文件在最优Cache命中率的情况下,这三种缺失所占的比例,并和教材图C.8给出的比例进行比较。

电子科技大学中山学院计算机组成原理实验4Cache控制器设计实验

电子科技大学中山学院计算机组成原理实验4Cache控制器设计实验

实验四 Cache控制器设计实验1.实验目的(1) 掌握Cache控制器的原理及其设计方法。

(2) 熟悉CPLD应用设计及EDA软件的使用。

2.实验设备PC机一台,TD-CMA实验系统一套。

3.实验原理本实验采用的地址变换是直接映像方式,这种变换方式简单而直接,硬件实现很简单,访问速度也比较快,但是块的冲突率比较高。

其主要原则是:主存中一块只能映像到Cache 的一个特定的块中。

假设主存的块号为B,Cache的块号为b,则它们之间的映像关系可以表示为:b = B mod Cb其中,Cb是Cache的块容量。

设主存的块容量为Mb,区容量为Me,则直接映像方法的关系如图4-1所示。

把主存按Cache的大小分成区,一般主存容量为Cache容量的整数倍,主存每一个分区内的块数与Cache的总块数相等。

直接映象方式只能把主存各个区中相对块号相同的那些块映像到Cache中同一块号的那个特定块中。

例如,主存的块0只能映像到Cache 的块0中,主存的块1只能映像到Cache的块1中,同样,主存区1中的块Cb(在区1中的相对块号是0)区0区1区M e-1主存储器图4-1 直接相联映像方式也只能映像到Cache的块0中。

根据上面给出的地址映像规则,整个Cache地址与主存地址的低位部分是完全相同的。

直接映像方式的地址变换过程如图4-2所示,主存地址中的块号B与Cache地址中的块号b是完全相同的。

同样,主存地址中的块内地址W与Cache地址中的块内地址w也是完全相同的,主存地址比Cache地址长出来的部分称为区号E。

区表存储器图4-2 直接相联地址变换在程序执行过程中,当要访问Cache 时,为了实现主存块号到Cache 块号的变换,需要有一个存放主存区号的小容量存储器,这个存储器的容量与Cache 的块数相等,字长为主存地址中区号E 的长度,另外再加一个有效位。

在主存地址到Cache 地址的变换过程中,首先用主存地址中的块号去访问区号存储器(按地址访问)。

计算机组成原理之Cache模拟器的实现上课讲义

计算机组成原理之Cache模拟器的实现上课讲义

计算机组成原理之C a c h e模拟器的实现实验一 Cache模拟器的实现一.实验目的(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。

(2)掌握Cache容量、相联度、块大小对Cache性能的影响。

(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。

(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。

二、实验内容和步骤1、启动Cachesim2.根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。

Cache概念:高速缓冲存Cache工作机制:大容量主存一般采用DRAM,相对SRAM速度慢,而SRAM速度快,但价格高。

程序和数据具有局限性,即在一个较短的时间内,程序或数据往往集中在很小的存储器地址范围内。

因此,在主存和CPU之间可设置一个速度很快而容量相对较小的存储器,在其中存放CPU当前正在使用以及一个较短的时间内将要使用的程序和数据,这样,可大大加快CPU访问存储器的速度,提高机器的运行效率3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。

(1)Cache容量:启动CacheSim,提示请输入Cache容量,例如1、2、4、8......。

此处选择输入4。

(2)块容量:如下图所示,提示输入块容量,例如1、2、4、8......。

此处选择输入16。

(3)映射方式:如下图所示,提示输入主存储器和高速缓存之间的assoiativity方法(主存地址到Cache地址之间的映射方式),1代表直接映射(固定的映射关系)、2代表组相联映射(直接映射与全相联映射的折中)、3代表全相联映射(灵活性大的映射关系)。

此处选择全相联映射。

(4)替换策略:如下图所示,提示输入替换策略,1代表先进先出(First-In-First-Out,FIFO)算法、2代表近期最少使用(Least Recently Used,LRU)算法、3代表最不经常使用(Least Frequently Used,LFU)、4代表随机法(Random)。

计算机组成原理实验报告-Cache模拟器的实现

计算机组成原理实验报告-Cache模拟器的实现

计算机组成原理实验报告-Cache模拟器的实现实验内容:1、启动CacheSim。

2、根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。

3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。

Cache容量块容量映射方式替换策略写策略256KB 8 Byte 直接映射------ -------64KB 32 Byte 4路组相联 LRU -------64KB 32 Byte 4路组相联随机--------8KB 64 Byte 全相联 LRU ---------4、读取cache-traces.zip中的trace文件。

5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。

思考:1、Cache的命中率与其容量大小有何关系?2、Cache块大小对不命中率有何影响?3、替换算法和相联度大小对不命中率有何影响?实验步骤与预习:实验步骤:1、启动CacheSim。

2、根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。

3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。

4、读取cache-traces.zip中的trace文件。

5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。

预习:Cache:高速缓冲存储器高速缓冲器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。

Cache的功能是用来存放那些近期需要运行的指令与数据。

目的是提高CPU对存储器的访问速度。

工作机制:主要由三大部分组成:Cache存储器:存放由主存调入的指令与数据块。

地址转换部件:建立目录表以实现主存地址到缓存地址的转换。

替换部件:在缓存已满时按照一定的策略进行数据块替换,并修改地址转换部件。

实验结果:一般而言,cache用量越大,其cpu命中率越高,当然容量也没必要太大,当cache 容量达到一定的值时,命中率不因容量的增大而有明显的提高。

计算机体系结构cache模拟器实验报告

计算机体系结构cache模拟器实验报告

计算机体系结构——Cache模拟器实验实验报告姓名崔雪莹学号12281166班级计科1202班老师董岚2015年06月07日一、阅读分析附件模拟器代码 (4)1、关键参数 (4)2、关键算法 (5)二、课后习题 (8)1、习题内容 (8)2、题目分析 (8)3、计算及结果 (9)4、模拟器上实验结果检验 (11)三、整体分析 (15)1、三种映射方式对Cache效率的的影响 (15)2、block块大小与Cache容量对Cache效率的影响 (16)3、Cache容量与相连度对Cache效率的影响 (17)4、三种失效类型影响因素 (18)四、实验思考和感受 (21)1、关于模拟器的思考 (21)2、关于整个实验的思考 (22)一、阅读分析附件模拟器代码1、关键参数(1)用户可见参数:(用户通过命令行输入参数)(2)程序内部主要参数:(代码内部重要参数)2、关键算法注:这里不粘贴代码,只是进行简单的代码算法说明(1)块地址表示:注:图是我按照自己的想法自己画的,可能有些地方并不准确,望老师指正。

图中以一个例子来解释cache模拟器中block和数据地址的关系,以及和组地址和标志位的关系。

(2)Index与tag:由上面计算:index = blockaddress % NOofset index = 16 % 8 = 2tag = blockaddress / Noofset tag = 16/8 = 2以上例,字地址16为例,写成二进制为0001 0010 B,其中组数为8,又因为2^3=8,所以字地址取后3位为:index = 010 B = 2 ,取前29位为:tag = 0…0010 B = 2 。

所以,算法与理论是一致的。

(3)Valid:有效位。

当通过上述方式寻址找到了数据存放的数据块,接下来判断有效位:有效位为1,说明数据是有效的,可以从block提取数据;有效位为0,说明块里的数据是无效的,所以不能从block提取数据,出现miss,此时判断miss类型,同时需要访问内存或下一级存储,将数据放到cache里。

计算机组成原理之Cache模拟器的实现

计算机组成原理之Cache模拟器的实现

实验一Cache模拟器得实现一、实验目得(1)加深对Cache得基本概念、基本组织结构以及基本工作原理得理解。

(2)掌握Cache容量、相联度、块大小对Cache性能得影响。

(3)掌握降低Cache不命中率得各种方法以及这些方法对提高Cache性能得好处。

(4)理解LRU与随机法得基本思想以及它们对Cache性能得影响.二、实验内容与步骤1、启动Cachesim2、根据课本上得相关知识,进一步熟悉Cache得概念与工作机制。

Cache概念:高速缓冲存Cache工作机制:大容量主存一般采用DRAM,相对SRAM速度慢,而SRAM速度快,但价格高。

程序与数据具有局限性,即在一个较短得时间内,程序或数据往往集中在很小得存储器地址范围内。

因此,在主存与CPU之间可设置一个速度很快而容量相对较小得存储器,在其中存放CPU当前正在使用以及一个较短得时间内将要使用得程序与数据,这样,可大大加快CPU访问存储器得速度,提高机器得运行效率3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略与写策略.(1)Cache容量:启动CacheSim,提示请输入Cache容量,例如1、2、4、8、、、、、、。

此处选择输入4。

(2)块容量:如下图所示,提示输入块容量,例如1、2、4、8、、、、、、。

此处选择输入16。

(3)映射方式:如下图所示,提示输入主存储器与高速缓存之间得assoiativity方法(主存地址到Cache地址之间得映射方式),1代表直接映射(固定得映射关系)、2代表组相联映射(直接映射与全相联映射得折中)、3代表全相联映射(灵活性大得映射关系)。

此处选择全相联映射。

(4)替换策略:如下图所示,提示输入替换策略,1代表先进先出(First-In—First—Out,FIFO)算法、2代表近期最少使用(Least RecentlyUsed,LRU)算法、3代表最不经常使用(Least Frequently Used,LFU)、4代表随机法(Random)。

计组实验报告

计组实验报告

计组实验报告【实验名称】:基于MIPS的Cache设计与实现【实验目的】:通过设计、模拟和测试基于MIPS的Cache,理解和掌握Cache的基本原理和实现方法,加深对计算机组成原理的理解和应用。

【实验设备】:Xilinx ISE Design Suite 14.7、Verilog HDL仿真工具、Mars模拟器。

【实验原理】Cache是计算机系统中重要的存储器层次结构,它可以提高访问速度,降低访问延迟。

Cache是一种由高速存储器和控制电路组成的存储器,它的作用是缓存主存中最近使用过的指令和数据,当下一次需要使用这些指令和数据时,可以直接从Cache中获取,而不需要访问主存,从而提高访问速度。

计算机系统中的Cache存储器既可以用硬件实现,也可以用软件实现。

MIPS Cache包括指令Cache和数据Cache两个部分。

指令Cache用于存储CPU需要的指令,而数据Cache用于存储CPU需要的数据。

Cache中的每一个存储块叫做一个Cache 行,每一个Cache行包括若干字块,每一个字块包括若干字节。

Cache行的大小一般是2^n 个字节。

Cache使用一种叫做Cache命中的技术,通过判断当前CPU需要的数据是否在Cache中来确定是否需要访问主存。

如果当前CPU需要的数据在Cache中,则称为Cache命中,可以直接从Cache中获取数据;如果当前CPU需要的数据不在Cache中,则称为Cache未命中,需要从主存中获取数据。

Cache有三种常见的替换算法:随机替换算法、先进先出(FIFO)替换算法和最近最少使用(LRU)替换算法。

随机替换算法是最简单的方法,它实现起来比较简单,但是效率不高。

FIFO替换算法是一种比较简单的替换算法,它在实现的时候需要维护一个队列来保证替换最早进入Cache的数据,但是这种算法无法适应程序的访存局部性。

LRU替换算法是一种比较复杂的替换算法,它需要维护一个使用时间序列来记录各数据块被使用的时间,当需要替换时,选择使用时间最旧的数据块替换掉。

计算机体系结构chapter4-4

计算机体系结构chapter4-4

(块号)
(块号)
被访问的块号 (经相联比较找到)
近期最久没有 访问的块号
(块号)
比较对法


让各个块成对组合, 用一个触发器的状态 表示该比较对内两块 访问的远近次序,再 经门电路就可找到 LRU块。 适用于组内块数较少 的组相联映像Cache。
访问B
&
&
&
0
TAB
1
0
TAC
1
0
TBC
1
访问C 访问A
Cache-主存存储层次的等效速 度与命中率的关系推导
设:tc 为Cache的访问时间, tm为主存周期, Hc为访Cache的命中率。 则:Cache的等效存储周期 ta= Hc tc+(1- Hc) tm 因为:主存与CPU之间有直接通路,因此 CPU对第二级的访问时间就是tm。
地址变换的硬件容易实现; 地址变换的速度要快; 主存空间利用率要高; 发生块冲突的概率要小
四种方式

全相联映象与变换
直接映象与变换 组相联映像与变换 段相联映象



全相联映象与变换

定义及规则




映象规则:主存中的任意一块都可以映象到 Cache中的任意一块。 如果Cache的块数为Cb,主存的块数为Mb, 映象关系共有:Cb×Mb种。 用硬件实现非常复杂 在虚拟存储器中,全部用软件实现
块 0 …… G b-1 Gb …… 2G b-1 ……
组 0 组 1 0

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

实验一Cache模拟器得实现
一、实验目得
(1)加深对Cache得基本概念、基本组织结构以及基本工作原理得理解。

(2)掌握Cache容量、相联度、块大小对Cache性能得影响。

(3)掌握降低Cache不命中率得各种方法以及这些方法对提高Cache性能得好处。

(4)理解LRU与随机法得基本思想以及它们对Cache性能得影响.
二、实验内容与步骤
1、启动Cachesim
2、根据课本上得相关知识,进一步熟悉Cache得概念与工作机制。

Cache概念:高速缓冲存
Cache工作机制:大容量主存一般采用DRAM,相对SRAM速度慢,而SRAM速度快,但价格高。

程序与数据具有局限性,即在一个较短得时间内,程序或数据往往集中在很小得存储器地址范围内。

因此,在主存与CPU之间可设置一个速度很快而容量相对较小得存储器,在其中存放CPU当前正在使用以及一个较短得时间内将要使用得程序与数据,这样,可大大加快CPU访问存储器得速度,提高机器得运行效率
3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略与写策略.
(1)Cache容量:
启动CacheSim,提示请输入Cache容量,例如1、2、4、8、、、、、、。

此处选择输入4。

(2)块容量:
如下图所示,提示输入块容量,例如1、2、4、8、、、、、、。

此处选择输入16。

(3)映射方式:
如下图所示,提示输入主存储器与高速缓存之间得assoiativity方法
(主存地址到Cache地址之间得映射方式),1代表直接映射(固定得映射关系)、2代表组相联映射(直接映射与全相联映射得折中)、3代表全相联映射(灵活性大得映射关系)。

此处选择全相联映射。

(4)替换策略:
如下图所示,提示输入替换策略,1代表先进先出(First-In—First—Out,FIFO)算法、2代表近期最少使用(Least RecentlyUsed,LRU)算法、3代表最不经常使用(Least Frequently Used,LFU)、4代表随机法(Random)。

此处选择先进
先出.
(5)写策略:
如下图所示,提示输入Cache得读写操作,1代表写直达法(存直达法)即写操作时数据既写入Cache又写入主存、2代表写回法(拷回法)即写操作时只把数据写入Cache而不写入主存,但当Cache数据被替换出去时才写回主存。

此处选写回法
4、读取cache-traces、zip中得trace文件。

如下图所示,提示输入要测试得路径及名称,此处输入Cache—trace、zip得路径,以及需要读取得trace文件名,此处选择读取mcf、trace。

5、运行程序,观察cache得访问次数、读/写次数、平均命中率、读/写命中率。

如下图所示,读取mcf、trace文件,程序运行结果如下:
(1)高速缓存访问次数:727230
(2)高速缓存次数:5972
(3)cache存储次数:721258
(4)平均缓存命中率:74、8615%
(5)高速缓存命中率:60、6999%
(6)缓存命中率:74、9787%
思考:1、Cache得命中率与其容量大小有何关系?
(1)当Cache块容量为8B、Cache容量为8KB时,平均命中率为1、02017%、访问次

读出次数写入次数平均命中率读出命中率写入命中率727230 597272125

74、8
615%
60、699
9%
74、
9787%
(2)当Cache块容量为8B、Cache容量为16KB时,平均命中率为1、02334%、(3)当Cache块容量为8B、Cache容量为32KB时,平均命中率为1、03695%、(4)当Cache块容量为8B、Cache容量为64KB时,平均命中率为1、0375%、
(5)当Cache块容量为8B、Cache容量为128KB时,平均命中率为1、03791%、当Cache块容量为8B时,不同Cache容量下得命中率如下图所示:
由上述图中数据及表格数据可知,当Cache块容量一定时,Cache容量越大,其cache得命中率越高。

2、Cache块大小对不命中率有何影响?
(1)当Cache块容量为8KB、Cache容量为8B时,平均命中率为1、02017%、
(2)当Cache块容量为16KB、Cache容量为8B时,平均命中率为50、4872%、
(3)当Cache块容量为32KB、Cache容量为8B时,平均命中率为75、2232%、
(4)当Cache块容量为64KB、Cache容量为8B时,平均命中率为87、5903%、(5)当Cache块容量为128KB、Cache容量为8B时,平均命中率为93、768%、
当Cache容量为8kB时,不同Cache容量下得命中率如下图所示:
Cache块
容量
8 16 32 64128
平均命中率1、02017% 50、48
72%
75、2232% 87、
5903%
93、
768%
由上述图中数据及表格数据可知,当Cache容量一定时,Cache块容量越大,其cache得命中率越高。

则其不命中率越低。

3、替换算法与相联度大小对不命中率有何影响?
(1)当相联度大小保持一致,均为二路组相联映射时
替换策略为先进先出算法时:
当相联度为二路组相联映射,替换策略为先进先出算法时,此时cache平均命中率为0、0912598%。

替换策略为近期最少使用算法时:
当相联度为二路组相联映射,替换策略为近期最少使用算法时,此时cache平均命中率为66、6438%.
(2)当替换算法保持一致,均为先进先出算法时:
相联度大小为二路:
当替换策略为先进先出算法时,相联度大小为二路组相联映射时,此时cache平均命中率为0、0912598%.
相联度大小为四路:
当替换策略为先进先出算法时,相联度大小为四路组相联映射时,此时cache平均命中率为0、0904283%。

当替换策略为近期最少使用时,相联度大小为四路组相联映射时,此时cache 平均命中率为0、0904283%
由上述数据可知,当保持相联度大小一致时,替换策略为近期最少使用算法得命中率高于先进先出算法得命中率。

当保持替换策略一致时,相联度大小为二路组相联得命中率高于四路组相联得命中率。

三、实验结果分析
根据实验内容及上述数据结果可知:
1.Cache容量不同时它得命中率也会随之改变;
当Cache块容量一定时,Cache容量越大,其CPU得平均命中率越高
2.Cache块大小不同时对命中率也会有影响.
Cache块容量越大,其不命中率越低
3.替换算法与相联度对命中率也有影响、
由实验数据可知,当保持相联度大小一致时,替换策略为近期最少使用算法得命中率高于先进先出算法得命中率。

当保持替换策略一致时,相联度大小为二路组相联得命中率高于四路组相联得命中率。

其中替换算法对命中率得影响比较大,而相联度大小对命中率得影响小一些,在实际工作中为了提高命中率我们应该选择合适得算法。

具体实验数据如下表所示:
(1)当输入cache容量为8b,cache块容量为32kb时出现以下数据:
(2)当Cache块容量为8B时,不同Cache容量下得命中率如下图所示:
(3)当Cache容量为8kB时,不同Cache容量下得命中率如下图所示:
(4)当控制相联度为2或4时,改变替换策略cache得命中率如下图:
四、实验心得
1、通过此次得实验我发现当输入得cache容量一定时,改变cache块容量得大小则cache得命中率会改变,规律就是cache块容量得值越大,则cache命中率越高,反之亦然。

2、当cache块容量一定时,cache命中率因为cache容量变大而变大。

3、通过这次得试验我发现书本上得很多理论都就是要自己做,这样才会对实验结果及得更加牢固。

以后要好好学习多做实验争取发现书本上没有写得东西这样才可以将这门课学好。

4、准备越充分,实验越顺利.
古人云,磨刀不误砍柴工。

前期得知识储备、文献储备、材料准备、方法准备可以避免手忙脚乱,充分得预实验使您充满信心。

一步一个脚印,就不必“从头再来”.最不能容忍得就是在开始得几步偷懒,造成后面总有一些无法排除得障碍。

相关文档
最新文档