计算机系统结构实验四
- 格式:docx
- 大小:43.89 KB
- 文档页数:6
计算机组成实验报告计算机组成实验报告(共3篇)篇一:《计算机组成与结构》实验报告11 .实验目的:1).学习和了解TEC-2000 十六位机监控命令的用法;2).学习和了解TEC-2000 十六位机的指令系统;3).学习简单的TEC-2000 十六位机汇编程序设计;2.实验内容:1).使用监控程序的R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;2).使用 A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用G 命令连续运行该程序,用T、P 命令单步运行并观察程序单步执行情况;3、实验步骤1).关闭电源,将大板上的COM1 口与PC 机的串口相连;2).接通电源,在PC 机上运行PCEC.EXE 文件,设置所用PC 机的串口为“1”或“2”, 其它的设置一般不用改动,直接回车即可;3).置控制开关为00101(连续、内存读指令、组合逻辑、16 位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。
其它实验相同;4).按一下“RESET”按键,再按一下“START”按键,主机上显示:TEC-2000 CRT MONITOR Version 1.0 April 2001Computer Architectur Lab.,Tsinghua University Programmed by He Jia >5).用R 命令查看寄存器内容或修改寄存器的内容a.在命令行提示符状态下输入:R↙;显示寄存器的内容图片已关闭显示,点此查看图片已关闭显示,点此查看b.在命令行提示符状态下输入:R R0↙;修改寄存器R0 的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值,再用R 命令显示寄存器内容,则R0 的内容变为0036。
图片已关闭显示,点此查看6).用D 命令显示存储器内容在命令行提示符状态下输入:D 2000↙会显示从2000H 地址开始的连续128 个字的内容;连续使用不带参数的 D 命令,起始地址会自动加128(即80H)。
第四章课后题1、设二级虚拟存储器的TA1=10^(-7)s、TA2=10^(-2)s,为使存储层次的访问效率e达到最大值的80%以上,命中率H至少要求达到多少?实际上这样高的命中率是很难达到的,那么从存储层次上如何改进?解:∵e=1/[H+(1-H)r] 且r=TA2/TA1 ∴H至少达到99.9%这样的命中率很难达到,可在二级存储器间加一层电子磁盘,降低r,从而降低对H的要求。
2、程序存放在模32单字交叉存储器中,设访存申请队的转移概率λ为25%,求每个存储周期能访问到的平均字数。
当模数为16呢?由此你可得到什么结论?解:B=[ 1-(1-λ)^m] /λ由λ=0.25,m=32 求得:B=4-4*(3/4)^32=4同理,m=16时,B=4-4*(3/4)^16=3.96由此可看出,当转移概率λ为25%比较大时,采用模32与模16的每个存储周期能访问的平均字数非常相近。
就是说,此时,提高模数m对提高主存实际频宽已不显著。
实际上,模数m的进一步增大,会因工程实现上的问题,导致实际性能反而可能比模16的还要低,且价格更高。
所以模数m不宜太大。
对于λ为25%的情况,可以计算机出m=8时,其B已经接近于3.6了。
3、设主存每个分体的存取周期为2μs,宽度为4个字节。
采用模m多分体交叉存取,但实际频宽只能达到最大频宽的0.6倍。
现要求主存实际频宽为4M B/S,问主存模数m应取多少方能使两者速度基本适配?其中m取2的幂。
解:由题意已知存取周期Tm=2*10^(-6)s,宽度W=4B,B实=0.6Bm=4*2^20 B/S,Bm=W*m/Tm=6.99*10^6B/Sm=Bm*Tm/W=6.99*10^6*2*10^-6/4=3.495所以m取4能满足要求P.S.①微秒(百万分之一秒) 1μs=10^-6s②计量单位中的M(兆)是10的6次方,见到M自然想起要在该数值的后边续上六个0,即扩大一百万倍。
在二进制中,MB也表示到了百万级的数量级,但1 MB不正好等于1000000字节,而是1048576字节,即1MB = 2E+20 By tes = 1048576Bytes。
计算机组织与结构实验讲义(2014版)任国林编写东南大学计算机科学与工程学院计算机组织与结构课程实验是为巩固教学效果而设置的,学生可以通过这些实验掌握计算机部件的逻辑组成及其工作原理,熟悉数字电路芯片的使用方法,提高逻辑设计能力,为设计计算机模型机打下基础。
计算机组织与结构课程实验共有4个,分别是运算器组成实验、存储器组成实验、寄存器组成实验、CPU数据通路实验。
所有实验均基于EDA工具Quartus II进行设计和功能仿真,条件允许时基于FPGA芯片进行功能验证。
实验一运算器组成实验一、实验目的(1)熟悉加/减法器的功能及使用方法。
(2)掌握算术逻辑部件(ALU)的功能及其逻辑组成。
(3)加深对运算器工作原理的理解。
二、实验内容(1)掌握Quartus II的使用方法,能够进行数字电路的设计及仿真。
(2)验证Quartus II所提供加/减法器的功能及使用方法。
(3)设计具有加法、减法、逻辑与、逻辑非4种功能的ALU,并进行功能仿真/验证。
三、实验原理及方案运算器是计算机硬件对数据进行加工的重要部件,算术逻辑部件ALU是其核心,还包括存放操作数和运算结果的寄存器/锁存器、存放运算结果状态的触发器等器件。
根据给定控制信号的不同,运算器可以实现不同的运算功能。
为便于运算器组成设计有效进行,先介绍一下Quartus II的使用方法。
1、基于Quartus II的电路设计及仿真方法基于Quartus II,电路设计的主要过程包括:建立工程文件、编辑原理图文件、编译原理图文件,电路仿真的主要过程包括:编辑仿真波形文件、生成功能仿真网表、验证仿真波形正确性。
以功能为Z=X·Y的电路为例,使用Quartus II、采用原理图方法进行电路设计的过程如下:1)建立工程文件:通过主菜单File→New Project Wizard可建立工程文件,包含5个页面的设置。
·第1页为设置工程文件信息,包括工程文件名、工作目录名·第2页为在工程中加入文件,可将已有的GDF文件添加到工程文件中,本例中无·第3页为选择FPGA器件型号,本例中采用Cyclone系列的EP1C6Q240C8芯片·第4页为添加准备使用的EDA工具,通常直接选择Next·第5页为查看、确认工程文件信息,无误时选择Finish即可。
《计算机组织与体系结构》上机实验报告实验一一、实验内容算术逻辑运算单元ALU设计实验二、实验原理算术逻辑单元ALU的数据通路如下所示。
其中ALU181根据74LS181的功能用VHDL 硬件描述语言编辑而成,构成8位字长的ALU。
参加运算的两个八位数据分别为A[7..0]和B[7..0]。
运算模式由S[3..0]的16种组合决定,而S[3..0]的值由4位二进制计数器LPM_COUNTER产生,计数时钟是Sclk;此外,设M=0,选择算术运算,M=1位逻辑运算,CN为低位的进位位;F[7..0]为输出结果;C0为运算后的输出进位位。
两个8位数据由总线IN[7..0]分别通过两个电平锁存器74373锁入。
三、实验任务(1)按原理图所示,在此验证性示例中用A0_B1(键3)产生锁存信号,将IN[7..0]的8位数据进入对应的8位数据锁存器中;即首先使A0_B1(键3)=0,用键2、键1分别向A[7..0]置数01010101(55H),这时在数码管2/1上显示输入的数据(55H);然后用键3输入高电平1,再用键2、键1分别向B[7..0]置数10101010(AAH),这时在数码管4/3上显示输入的数据(AAH);这时表示在图中的两个8位数据锁存器lpm_dff锁存器中分别被锁入了加数55H和被加数AAH。
(2)设定键8为低电平,即M=0(允许算术操作),键6控制时钟SCLK,可设置表4-1的S[3..0]=0 ~ F。
现连续按动键6,设置操作方式选择S[3..0]=9(加法操作),使数码管8显示9,以验证ALU的算术运算功能:当键7设置cn=0(最低位无进位)时,数码管7/6/5=0FF(55H+AAH=0FFH);当键7设置cn=1(最低位有进位)时,数码管7/6/5=100(55H+AAH+1=100H);(3)若设定键8为高电平,即M=1,键KEY6控制时钟SCLK,设置S[3..0]=0~F,KEY7设置cn=0或cn=1,验证ALU的逻辑运算功能,并记录实验数据。
3.1 简述流水线技术的特点。
(1) 流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。
因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。
(2) 流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。
(3) 流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。
(4) 流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。
(5) 流水线需要有通过时间和排空时间。
在这两个时间段中,流水线都不是满负荷工作。
3.2 解决流水线瓶颈问题有哪两种常用方法?答:细分瓶颈段与重复设置瓶颈段 3.3 有一条指令流水线如下所示:(1)求连续输入10条指令的情况下,该流水线的实际吞吐率和效率。
(2)该流水线的瓶颈在哪一段?请采用两种不同的措施消除此瓶颈。
对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?解:(1)2200(ns)2009200)10050(50t )1n (t T maxm1i i pipeline =⨯++++=∆-+∆=∑=)(ns 2201T nTP 1pipeline-==45.45%1154400TP mtTP E m1i i≈=⋅=∆⋅=∑= (2)瓶颈在3、4段。
⏹ 变成八级流水线(细分)850(ns)509850t 1)(n t T maxm1i i pipeline =⨯+⨯=∆-+∆=∑=)(ns 851T nTP 1pipeline-== 58.82%17108400TP mtiTP E m1i ≈=⋅=∆⋅=∑= ⏹ 重复设置部件)(ns 851T nTP 1pipeline-==58.82%1710885010400E ≈=⨯⨯=3.4 有一个流水线由4段组成,其中每当流过第三段时,总要在该段循环一次,然后才能流到第4段。
1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一段的时间分别是△t 、2△t 和3△t 。
在下列各种情况下,分别写出连续执行n 条指令所需要的时间表达式。
⑴ 顺序执行方式。
⑵ 仅“取指令”和“执行”重叠。
⑶ “取指令”、“分析”和“执行”重叠。
答:⑴ 顺序执行方式12 ......1 2 12T =∑=++n1i i i i )t t t (执行分析取址=n(△t +2△t +3△t)=6n △t⑵ 仅“取指令”和“执行”重叠12 ......1 212T =6△t +∑=+1-n 1i i i )t t (执行分析=6△t +(n-1)(2△t +3△t)=(5n +1)△t⑶ “取指令”、“分析”和“执行”重叠12 34 ......1 2 3 41234△t2△t3△t△t2△t3△t△t2△t3△tT =6△t +∑=1-n 1i i )t (执行=6△t +(n-1)(3△t)=(3n +3)△t2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为△t 。
开始5个任务,每间隔一个△t 向流水线输入一个任务,然后停顿2个△t ,如此重复。
求流水线的实际吞吐率、加速比和效率。
答:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15...1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 56 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23我们可以看出,在(7n+1)Δt 的时间内,可以输出5n 个结果,如果指令的序列足够长(n →∞),并且指令间不存在相关,那么,吞吐率可以认为满足:)n (t75t )n /17(5t )1n 7(n 5TP ∞→∆=∆+=∆+=加速比为:)n (720n /17201n 7n 20t )1n 7(t 4n 5S ∞→=+=+=∆+∆⨯=从上面的时空图很容易看出,效率为:)n (75n /1751n 7n 5t )1n 7(4t 4n 5E ∞→=+=+=∆+⨯∆⨯=3. 用一条5个功能段的浮点加法器流水线计算∑==101i i A F 。
第 4 章 习 题 答 案3. 已知某机主存空间大小为64KB ,按字节编址。
要求: (1)若用1K×4位的SRAM 芯片构成该主存储器,需要多少个芯片? (2)主存地址共多少位?几位用于选片?几位用于片内选址? (3)画出该存储器的逻辑框图。
参考答案: (1)64KB / 1K×4位 = 64×2 = 128片。
(2)因为是按字节编址,所以主存地址共16位,6位选片,10位片内选址。
(3)显然,位方向上扩展了2倍,字方向扩展了64倍。
下图中片选信号CS 为高电平有效。
A 15A 10A 9A 0D 0D 7……WE…4. 用64K×1位的DRAM 芯片构成256K×8位的存储器。
要求:(1) 计算所需芯片数,并画出该存储器的逻辑框图。
(2) 若采用异步刷新方式,每单元刷新间隔不超过2ms ,则产生刷新信号的间隔是多少时间?若采用集中刷新方式,则存储器刷新一遍最少用多少读写周期? 参考答案:(1)256KB / 64K×1位 = 4×8 = 32片。
存储器逻辑框图见下页(图中片选信号CS 为高电平有效)。
(2)因为每个单元的刷新间隔为2ms ,所以,采用异步刷新时,在2ms 内每行必须被刷新一次,且仅被刷新一次。
因为DRAM 芯片存储阵列为64K=256×256,所以一共有256行。
因此,存储器控制器必须每隔2ms/256=7.8µs 产生一次刷新信号。
采用集中刷新方式时,整个存储器刷新一遍需要256个存储(读写)周期,在这个过程中,存储器不能进行读写操作。
A 17A 16A 15A 0D 0D 7………5. 用8K×8位的EPROM 芯片组成32K×16位的只读存储器,试问:(1)数据寄存器最少应有多少位? (2) 地址寄存器最少应有多少位? (3) 共需多少个EPROM 芯片? (4) 画出该只读存储器的逻辑框图。
《计算机系统结构课内实验》实验报告第一次实验:记分牌算法和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。
“计算机系统结构”校级精品课程建设的探索与实践摘要:精品课程的建设可以促进教学水平和教学质量的提高,本文通过对“计算机系统结构”校级精品课程建设的研究,对该课程的课程定位、教学模式、教学方法等做了有益的探索,提出创新教育、知识更新的思想。
关键词:精品课程;教学模式;创新教育精品课程建设是教育部启动的“高等学校教学质量与教学改革工程”中的一项重要内容,是提高教学质量进而提高人才培养质量的奠基性工作。
我校2008年开始启动“校级精品课程建设计划”,我院的“计算机系统结构”课程被评为首届校级精品课程。
下面就课程定位、教学体系建设、知识模块、教学模式、相关教学研究等方面介绍对该课程建设的探索与实践。
1课程的基本定位和教学目标在计算机专业人才需求越来越多的情况下,北京市对计算机硬件相关的技术人员也加大了需求量,在这样的形势下,我们建立了新的计算机硬件课程体系,对“计算机系统结构”课程的定位也越来越明确。
我校的计算机专业主要为北京市培养计算机应用型人才,学生的就业取向大多数是北京市的高新技术企业。
因此,我们从教学计划、教学大纲、教学平台、实验设计平台和工具等方面均做了改革和调整,以适应形势发展的需要。
具体措施为:(1) 通过“数字逻辑”解决数字逻辑电路的基本概念和原理;(2) 通过“数字系统设计”等课程让学生掌握现代的数字系统设计平台和工具(EDA、FPGA等),以及简单电子部件的设计技术;(3) 通过“计算机组成原理”解决计算机的基本组成原理与技术问题;(4) 通过“计算机接口技术”、“高档微机系统”课程使学生掌握微机应用系统设计和调试基本概念和方法,提高学生工程素质和设计、技术创新等方面的基本知识。
“计算机系统结构”课程的教学目标是使学生在计算机应用系统和分析设计中,理解软硬界面分配及如何最佳、最合理地分配硬件功能,即提高系统的性能价格比方面的知识;“嵌入式系统”等系列课程,让学生在“嵌入式系统”、“微机系统及接口”等面向应用的专业方向上进行学习和实践。
物电学院电子信息工程计算机网络实验报告实验一、以太网帧的构成(4学时),拓扑结构一实验二、网际协议IP(4学时),拓扑结构一实验三、Internet控制报文协议ICMP(2学时),拓扑结构二实验四、域名服务协议DNS(2学时),拓扑结构一实验五、动态主机配置协议DHCP(2学时),拓扑结构一实验六、传输控制协议TCP(4学时),拓扑结构一指导老师:年级班级:学号:姓名:实验一以太网帧的构成一、实验目的1. 掌握以太网的报文格式2. 掌握MAC地址的作用3. 掌握MAC广播地址的作用4. 掌握LLC帧报文格式5. 掌握仿真编辑器和协议分析器的使用方法二、实验原理(一)、两种不同的MAC帧格式常用的以太网MAC帧格式有两种标准,一种是DIX Ethernet V2标准;另一种是IEEE的802.3标准。
目前MAC帧最常用的是以太网V2的格式。
下图画出了两种不同的MAC帧格式。
(二)、MAC层的硬件地址1、在局域网中,硬件地址又称物理地址或MAC地址,它是数据帧在MAC层传输的一个非常重要的标识符。
2、网卡从网络上收到一个 MAC 帧后,首先检查其MAC 地址,如果是发往本站的帧就收下;否则就将此帧丢弃。
这里“发往本站的帧”包括以下三种帧:单播(unicast)帧(一对一),即一个站点发送给另一个站点的帧。
广播(broadcast)帧(一对全体),即发送给所有站点的帧(全1地址)。
多播(multicast)帧(一对多),即发送给一部分站点的帧。
三、网络结构四、实验步骤练习一:编辑并发送LLC 帧本练习将主机A 和B 作为一组,主机C 和D 作为一组,主机E 和F 作为一组。
现仅以主机A 和B 为例,说明实验步骤。
1、主机A 启动仿真编辑器,并编写一个LLC 帧。
目的MAC 地址:主机B 的MAC 地址。
源MAC 地址:主机A 的MAC 地址。
协议类型和数据长度:可以填写001F 。
类型和长度:可以填写001F 。
A.4 实验四 Cache性能分析
A.4.1 实验目的
1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
2.掌握Cache容量、相联度、块大小对Cache性能的影响。
3.掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。
4.理解LRU与随机法的基本思想以及它们对Cache性能的影响。
A.4.2 实验平台
实验平台采用Cache模拟器MyCache。
环境的建立:见A.0。
A.4.3 实验内容及步骤
首先要掌握MyCache模拟器的使用方法(见A.4.4节)。
A.4.3.1 Cache容量对不命中率的影响
1.启动MyCache。
2.用鼠标点击“复位”按钮,把各参数设置为默认值。
3.选择一个地址流文件。
方法:选择“访问地址”→“地址流文件”选项,然后点击“浏
览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。
4.选择不同的Cache容量,包括:2KB,4KB,8KB,16KB,32KB,64KB,128KB,256KB,
分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.1中记录各种情况下的不命中率。
地址流文件名:all.din
5.以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线。
并指明地址流文件名
(all.din)。
6.
(1)Cache容量越大,不命中率越低,即命中率越高。
(2)随着Cache容量的增大,不命中率降低的幅度减小,趋于平缓。
A.4.3.2 相联度对不命中率的影响
1.用鼠标单击“复位”按钮,把各参数设置为默认值。
此时的Cache容量为64KB。
2.选择一个地址流文件。
方法:选择“访问地址”→“地址流文件”选项,然后单击“浏
览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。
3.选择不同的Cache相联度,包括:直接映象,2路,4路,8路,16路,32路,分别执
行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.2中记录各种情况下的不命中率。
地址流文件名:all.din
4.把Cache的容量设置为256KB,重复(3)的工作,并填写表A.4.3。
地址流文件名:all.din
5.以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变
化的曲线。
并指明地址流文件名(all.din)。
6.根据该模拟结果,你能得出什么结论?
(1)Cache容量一定时,随着相联度增加,不命中率逐渐降低,但是当相联度增加到一定程度,不命中率保持不变。
A.4.3.3 Cache块大小对不命中率的影响
1.用鼠标单击“复位”按钮,把各参数设置为默认值。
2.选择一个地址流文件。
方法:选择“访问地址”→“地址流文件”选项,然后单击“浏
览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。
3.选择不同的Cache块大小,包括:16B,32B,64B,128B,256B,对于Cache的各种
容量,包括:2KB,8KB,32KB,128KB,512KB,分别执行模拟器(单击“执行到底”
按钮即可执行),然后在表A.4.4中记录各种情况下的不命中率。
地址流文件名:all.din
4.分析Cache块大小对不命中率的影响。
(1)对于给定的较小容量的Cache,不命中率随着块大小下降,后续又上升。
(2)Cache容量越大,使不命中率达到最低的块大小就越大。
(3)增加块大小的同时也会增加不命中的开销,若此负面效应超过了不命中率下降带来的好处,就会使平均访存时间增加。
5.变化曲线
A.4.3.4 替换算法对不命中率的影响
1.用鼠标单击“复位”按钮,把各参数设置为默认值。
2.选择一个地址流文件。
方法:选择“访问地址”→“地址流文件”选项,然后单击“浏
览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。
3.对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮
即可执行),然后在表A.4.5中记录各种情况下的不命中率。
地址流文件名:all.din
4.分析不同的替换算法对Cache不命中率的影响。
(1)LRU和随机法的不命中率随Cache容量增大降低,随相联度增加降低;在确定Cache 容量、相联度的情况下,LRU算法的不命中率更低。
(2)对于容量很大的Cache(比如1MB),LRU和随机法的不命中率不再降低。
A.4.4 MyCache模拟器使用方法
1. 启动模拟器:用鼠标双击MyCache.exe。
2. 系统会打开一个操作界面。
该界面的左边为设置模拟参数区域,右边为模拟结果显示区域。
如图A.4.1所示。
3. 可以设置的参数包括:是统一Cache还是分离Cache,Cache的容量,块大小,相联度,替换算法,预取策略,写策略,写不命中时的调块策略。
可以直接从列表里选择。
4. 访问地址可以选择来自地址流文件,也可以选择手动输入。
如果是前者,则可以通过点击“浏览”按钮,从模拟器所在文件夹下面的“地址流”文件夹中选取地址流文件(.din文件),然后进行执行。
执行的方式可以是步进,也可以是一次执行到底。
如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后点击“访问”按钮。
系统会在界面的右边显示访问类型、地址、块号以及块内地址。
5. 模拟结果包括:
(1)访问总次数,总的不命中次数,总的不命中率;
(2)读指令操作的次数,其不命中次数及其不命中率;
(3)读数据操作的次数,其不命中次数及其不命中率;
(4)写数据操作的次数,其不命中次数及其不命中率;
(5)手动输入单次访问的相关信息。
图A.4.1 MyCache模拟器的操作界面示意图
A4.5 总结
1.增加块大小不命中率先降后升的原因:
(1)增强了空间局部性,减少了强制性不命中。
(2)减少了Cache中块的数目,所以有可能会增加冲突不命中。
2.增大Cache容量会增加成本,可能增加命中时间;增加块大小,也会增加不命中开销,会使平均访存时间增加;提高相联度则是以增加命中时间为代价。
3.随机法:随机选择被替换的块。
优点:简单、易于用硬件实现;缺点:反映不了程序局部性,命中率较低。
LRU:选择最久没有被访问过的块。
优点:能较好反映程序的局部性原理;缺点:比较复杂,硬件成本高。
4.改进Cache性能从三个方面出发:(1)降低不命中率(本次实验主要部分);(2)减少不命中开销;(3)减少命中时间。