计算机组成原理之Cache模拟器的实现
- 格式:doc
- 大小:389.50 KB
- 文档页数:13
实验四 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 地址的变换过程中,首先用主存地址中的块号去访问区号存储器(按地址访问)。
计算机组成原理之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模拟器的实现实验内容: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模拟器实验实验报告姓名崔雪莹学号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模拟器得实现一、实验目得(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替换算法是一种比较复杂的替换算法,它需要维护一个使用时间序列来记录各数据块被使用的时间,当需要替换时,选择使用时间最旧的数据块替换掉。
延安大学计算机学院实验报告专用纸学号1110218014074 姓名王楠班级计科18 课程名称计算机组成原理实验项目名称Cache控制器设计实验任课教师指导教师实验组别第组同组者教师评语及成绩:实验成绩:教师签字:(请按照实验报告的有关要求书写,一般必须包括:1、实验目的;2、实验内容;3、实验步骤与方法;4、实验数据与程序清单;5、出现的问题及解决方法;6、实验结果、结果分析与体会等内容。
)【1】实验目的(1)掌握Cache控制器的原理及其设计方法。
(2)熟悉CPLD应用设计及EDA软件的使用。
【2】实验原理1、采用直接映像方式的cache控制器图1直接映像方式2、采用CPU首先访问Cache,若在Cache中找不到目标地址,则从MEM单元中读入到Cache。
图2 Cache系统框图3、按区号、块号、块内地址访问目标地址,系统默认存储每个块的首地址,若同时访问同一块中的其他地址,将出现新访问的地址覆盖与之在同一块的另一块号。
【3】实验步骤(1)使用Quartus II 软件编辑实现相应的逻辑并进行编译,直到编译通过,Cache 控制器在EPM1270芯片中对应的引脚如图2-2-5所示,框外文字表示IO号,框内文字表示该引脚的含义(本实验例程见‘安装路径\Cpld \CacheCtrl\CacheCtrl.qpf’工程)(2)关闭实验系统电源,按图2-2-6连接实验电路,并检查无误,图中将用户需要连接的信号用圆圈标明(3)打开实验系统电源,将生成的POF文件下载到EMP1270中去,CPLD单元介绍见实验1.2。
(4)将时序与操作台单元的开关KK3置为‘运行’档,CLR信号由CON单元的CLR模拟给出,按动CON单元的CLR按钮,清空区表。
(5)预先往主存写入数据:联机软件提供了机器程序下载功能,以代替手动读写主存,机器程序以指定的格式写入到以TXT为后缀的文件中,机器指令的格式如下:如$P 1F 11,表示机器指令的地址为1FH,指令值为11H,本次实验只初始化00-0FH共16个单元,初始数据如下,程序中分号‘;'为注释符,分号后面的内容在下载时将被忽略掉。
Cache 模拟实验1、原理在计算机系统中,缓存技术无处不在。
在整个存储系统中,寄存器是高速缓存的缓存,高速缓存是内存的缓存,内存又是硬盘的缓存,而硬盘又是网络设备的缓存。
在空间上,靠近CPU 的存储器是远离CPU 的缓存,而且越靠近CPU 存储器的速度越快,容量越小,单位存储的价格越高,这些存储器构成的计算机存储系统更像一座山——存储器山,图中仅展示了3级存储,如下图:靠近CPU 方向速度高容量小单位存储价格高速度低容量大单位存储价格低远离CPU 方向当CPU 访问存储器时,是从最靠近它的存储器来查找,如果要存储的内容不在靠近它的存储器中,再从下一级存储器中读取一块,如果下一级存储器中也没有找到要存储的内容,就再在下下一级存储器中读取一块,这个过程将一直延续到最底层存储器。
当要存储的内容调入到靠近它的存储器中之后,CPU再从其中存取所需的内容。
这个过程就叫Cache。
Cache是以块为单位进行的,块的大小有上层存储的大小来决定,一般Cache用一个4元组来描述——(S,E,B,m),S是上层存储器的分组数,用s来表示S占用的位数,E是每个组中包含的行数,B是一行中真正存储数据的字节数,用b来表示B占用的位置,m是存储系统的地址线的宽度。
为了便于Cache的管理还要有一个标志位,用来标识本行数据是否有效,这个有效标志不会出现在内存地址中;除此之外,还有标志位,这个标志位是出现在内存地址中的,我们用t 来表示。
内存地址,包含t,s和b。
如下图:t bits 标志s bits 组索引上图就是Cache的一行的单独内容,整个Cache就是这样的数据结构的集合,现在举个例子来综合进行说明,假如m=8,b=2,E=1,s=2,那么t就等于m-b-s,也就是t=4。
此外E=1,也就是每一个组中包含一行。
CPU假如读取0x00地址的内容,从Cache中读取要分3步进行,首先,确定组,地址0x00的二进制表示 0000 0000B,bit2和bit3,就是组的索引,可以确定是第0组。
主存由2n个可编址的字组成,每个字有惟一的n位地址。
为了与映射,将主存与缓存都分成若干块,每块内又包含若干个字,小相同(即块内的字数相同)。
这就将主存的地址分成两段:高它主要由 Cache存储体、地址映射变换机构、 Cache替换机构几大模块组成。
①Cache存储体:以块为单位与主存交换信息,为加速 Cache与主存之间的调动,主存大多采用多体结构,且 Cache访存的优先级最高。
②地址映射变换机构:是将CPU送来的主存地址转换为 Cache地址。
由于主存和 Cache的块大小相同,块内地址都是相对于块的起始地址的偏移量(即低位地址相同),因此地址变换主要是主存的块号(高位地址)与 Cache块号间的转换。
而地址变换又与主存地址以什么样的函数关系映射到 Cache中(称为地址映射)有关,这些内容可详见4.3.2节。
如果转换后的 Cache块已与CPU欲访问的主存块建立了对应关系,即已命中,则CPU可直接访问 Cache存储体。
如果转换后的 Cache块与CPU欲访问的主存块未建立对应关系,即不命中,此刻CPU在访问主存时,不仅将该图中每个主存块只与一个缓存块相对应,映射关系式为:总之,这种方式所需的逻辑电路甚多,成本较高,实际的 Cache还要采用各种措施来减少地处的比较次数。
组相联映射组相联映射是对直接映射和全相联映射的一种折中。
它把 Cache分为每组有R块,并有以下关系:i=j mod Q其中,i为援存的组号,j为主存的块号。
某一主存块按模Q将其映射到缓存的第i组内,如图4.56所示。
组相联映射的主存地址各段与直接映射(参见图4.54)相比,还是有区别的。
图4.54 Cache字块地址字段由c位变为组地址字段q位,且q=C-r,其中2c表示 Cache的总块数,2q表示 Cache的分组个数,2r表示组内包含的块数。
主存字块标记字段由t 位变为s=t+r位。
为了便于理解,假设c=5,q=4,则r=c-q=1。
北京科技大学计算机与通信工程学院实验报告实验名称:简单模型机与Cache控制器学生姓名:专业:计算机科学与技术班级:学号:指导教师:实验成绩:实验地点:机电楼301实验时间:2015 年 6 月10 日一、实验目的与实验要求1、实验目的(1)掌握一个简单CPU 的组成原理。
(2)在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
(3)为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
(4)掌握Cache 控制器的原理及其设计方法。
(5)熟悉FPGA应用设计及EDA 软件的使用。
(6)熟悉QuartusII软件的使用及FPGA应用设计。
2、实验要求(1)验证性实验:简单模型机设计实验(2)掌握cache控制器的原理和方法二、实验设备(环境)及要求实验箱,Window 8,QuartusⅡ软件三、实验内容与步骤1、实验1(1)实验原理本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。
CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图3.32所示。
这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
本模型机共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下表3.12所示(高4位为操作码):其中,JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。
微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行。
(2)实验步骤CPU采用微程序控制器作为控制器构建的简单模型机实验步骤如下:①写入实验程序,并进行校验,分两种方式,手动写入和联机写入。
实验一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。