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

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

计算机体系结构——

Cache模拟器实验

实验报告

雪莹

学号 12281166

班级计科1202班

老师董岚

2015年 06月07日

一、阅读分析附件模拟器代码 (3)

1、关键参数 (3)

2、关键算法 (4)

二、课后习题 (6)

1、习题容 (6)

2、题目分析 (7)

3、计算及结果 (7)

4、模拟器上实验结果检验 (9)

三、整体分析 (12)

1、三种映射方式对Cache效率的的影响 (12)

2、block块大小与Cache容量对Cache效率的影响 (12)

3、Cache容量与相连度对Cache效率的影响 (13)

4、三种失效类型影响因素 (14)

四、实验思考和感受 (16)

1、关于模拟器的思考 (16)

2、关于整个实验的思考 (17)

一、阅读分析附件模拟器代码

1、关键参数

(1)用户可见参数:(用户通过命令行输入参数)

(2)程序部主要参数:(代码部重要参数)

2、关键算法

注:这里不粘贴代码,只是进行简单的代码算法说明

(1)块地址表示:

注:图是我按照自己的想法自己画的,可能有些地方并不准确,望老师指正。图中以一个例子来解释cache模拟器中block和数据地址的关系,以及和组地址和标志位的关系。

(2)Index与tag:

由上面计算:index = blockaddress % NOofset index = 16 % 8 = 2

tag = 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里。

(4)失效类型及判断方法:

判断失效类型,函数misstype(int ba ,int nb ,int l)。

Compulsory miss(强制性失效,冷启动):当第一次访问某一个块的时候,数据是肯定不在块中的,此时出现强制性失效,或者说是冷启动

失效。

Capacity miss(容量失效):所需的数据不能全部调入cache中,块被替换后又被重新访问,意思就是当所有的块都被占满了,这样又有数据

希望被调入缓存时,就出现了容量失效。

Conflict miss(冲突失效):在组相联或直接映像中,数据想要替换进某一组中,组的块都被占满了,但是别的组的块有空余,数据只能替换

这一组,尽管别的组有空余也不能替换。这样就出现了冲突失效。(5)LRU算法实现替换:

LRU替换算法是采用最近最久未使用的块,其中Lru[][]数组存放最近多少次未被使用,因为是采用循环访问,当循环访问到这一组时,把这

组所有的块的Lru[][]值都加1,如果成功访问到这一块,数据能从其中取

出来,就把这一块的Lru[][]值置0,退出循环。

(6)直接映射、组相联映射、全相联映射:

直接映射:是特殊的组相联映射,就是相联度为1的组相联映射。

所以采取和组相联一样的程序和算法,当识别该组第一块失效时,直接

进行替换,因为有且只有一块。

组相联映射:当识别该组某块失效时,如果块都被占满,要根据Lru[][]值的大小,判断哪一块被替换掉。

全相联映射:从上到下cache块存数据,则从上到下循环即可,遇到失效时,要根据Lru[][]值的大小,判断哪一块被替换掉。

二、课后习题

1、习题容

在CacheSimulator模拟器上模拟如下程序的运行过程:

int i,j,c stride,array[256]

for(i=0;i<10000;i++)

for(j=0;j<256;j=j+stride)

c = array[j]+5;

假设Cache总大小是256个字节,且块大小为16字节(4个字)。

同时假设存当中只有这一个程序在运行,而且整形数字的长度为一个字长(字长为32位),在直接相连映射下,stribe分别等于132、131时程序的运行结果,并分析原因。而当采用两路组相连时又会有什么结果并分析原因。

2、题目分析

当stribe = 132/131 时,程序相当于循环访问存偏移地址为0和地址132/131的容,循环10000次,也就是访问了2000次存储。

结合cache机制,cache大小为256个字节,块大小为16个字节,所以块的个数为256/16 = 16个。若为2路组相连,则有16/2 = 8组。

当第一次访问块时,一定会发生强制性失效,计一次miss。

3、计算及结果

1)直接映像时:

●stride=132

array[0]的块地址为0,映射到cache的块号为0:

0 mod 16 = 0

array[132]的块地址为132/4 = 33,映射到cache的块号为1:

33 mod 16 = 1

因为第一次访问cache,0和1一定会发生强制性失效,之后因为调入

cache,不会发生失效。则失效次数为2,则失效率为:

2/20000 = 0.01%

命中次数为19998次,命中率为:

19998/20000 = 99.99% = 1(近似)

失效类型为强制性失效,次数为2。

●stride=131

array[0]的块地址为0,映射到cache的块号为0:

0 modulo 16 = 0

array[131]的块地址为131/4 = 32,映射到cache的块号为0:

32 modulo 16 = 0

因为第一次访问cache,0一定会发生强制性失效,之后cache里块号为

0的块不断地被替换写入替换写入,此时发生冲突失效。则失效次数为

20000,则失效率为:

20000/20000 = 1 = 100%

命中率为0。失效类型为强制性失效次数1,冲突失效次数为19999。2)2路组相联:

●stride=132

array[0]的块地址为0,映像到cache的组号为0:

0 modulo 8 = 0

array[132]的块地址为132/4 = 33,映像到cache组号为1:

33 modulo 8 = 1

因为第一次访问cache,0和1一定会发生强制性失效,之后因为调入

cache,不会发生失效。则失效次数为2,则失效率为:

2/20000 = 0.01%

命中次数为19998次,命中率为:

19998/20000 = 99.99% = 1(近似)

失效类型为强制性失效,次数为2。

●stride=131

array[0]的块地址为0,映像到cache组号为:

0 modulo 8 = 0

array[131]的块地址为131/4 = 32,映像到cache组号为:

32 modulo 8 = 0

因为第一次访问cache,0和1一定会发生强制性失效,之后因为是2路

组相联,array[0]与array[131]都在0组,不会发生失效,则失效次数为2,失效率为:

2/20000 = 0.01%

命中次数为19998次,命中率为:

19998/20000 = 99.99% = 1(近似)

失效类型为强制性失效,次数为2。

4、模拟器上实验结果检验

注:因为例题的循环次数为10000,为了便于实验,我将循环次数设置为100,结果参照100的计算,原理是一致的。因为实际131/132都是字地址,而project.txt设置的是字节地址,所以将project.txt里值设置为

0 和132*4/131*4 循环100次,设置cache大小为256,block大小为4,

可以分别看到直接映射和2路组相连映射的结果为:

可以看到实验结果与计算是一致的(因为循环次数100,所以实验结果小数点要后移两位)。同时对习题1的思考(见后)也证明是正确的。

(1)直接映射:stride = 132 截图

(2)直接映射:stride = 131 截图

(3)2路组相连:stride = 132 截图

(4)2路组相连:stride = 131 截图

三、整体分析

1、三种映射方式对Cache效率的的影响

其他相同条件:block大小为2,组相连相连度为4,project.txt为200

个0~1000的随机数。

cache容量(字节)

映射方式

直接映射组相连全相连

64 0.94 0.935 0.925

128 0.87 0.875 0.865

256 0.79 0.79 0.785

512 0.68 0.63 0.61

1024 0.50 0.50 0.50 生成图表:

此时可以看到:

1.直接映射的失效率高,组相连失效率中等,全相连失效率最低

2.随着cache容量的增加,失效率越小。

3.当cache容量为1024时,因为数据取值的原因,三种方式失效率

相等,说明当cache容量足够大,三种方式失效率是一样的。

2、bl ock块大小与Cache容量对Cache效率的影响

其他相同条件:直接映射,相连度为1,project.txt为200个0~1000

的随机数。

块大小(字)

Cache容量(字节)

64 128 256 512 1024

1 0.94 0.885 0.83 0.77 0.69

2 0.94 0.87 0.79 0.68 0.50

4 0.9

5 0.905 0.80 0.635 0.30

8 0.945 0.89 0.785 0.575 0.155

生成图表:

此时可以看到:

1.对于给定的cache容量如64字节,当块大小增加时,失效率先是

下降,后来反而上升了。

2.Cache容量越大,使其失效率达到最低的块的大小就越大。

3.因为取得数据样本是随机的,不是连续的,实验数据并不是十分

准确,比如cache容量128时,块大小出现两次失效率

3、Cache容量与相连度对Cache效率的影响

其他相同条件:组相连,块大小2,project.txt为200个0~1000的随

机数。

Cache容量(字节)

相连度/路

1 2 4 8

64 0.94 0.93 0.915 0.905

128 0.875 0.87 0.86 0.87

256 0.785 0.765 0.80 0.78

512 0.645 0.64 0.67 0.66

1024 0.535 0.535 0.535 0.535

生成图表:

此时可以看到:

1.提高相连度会使失效率下降。

2.因为取得数据样本是随机的,不是连续的,实验数据并不是十分

准确。

3.当容量为1024时,也就是cache一定大时,失效率没什么区别。

4、三种失效类型影响因素

(1)相连度对三种失效类型影响:

其他相同条件:cache大小为256,block大小为2,组相连,project.txt

为200个0~1000的随机数。

相连度(路)总失效率

总失效

次数

失效类型

强制性

失效

容量失

冲突失效

1 0.78 156 107 38 11

2 0.80 160 107 40 13

4 0.76

5 153 107 41 5

8 0.785 157 107 45 5

16 0.785 157 107 46 4

可以看出:

1.强制性失效,即冷启动,不受相连度的影响。

2.容量失效基本不受相连度影响,但因为数据偶然性,出现增大趋

势。

3.冲突失效随着相连度的增加而降低。

(2)Cache容量对三种失效类型影响:

其他相同条件:block大小为2,组相连度为4,project.txt为200个0~1000的随机数。

cache容量(字节)

总失

效率

总失

效次

失效类型(相对百分比)

强制性失效容量失效冲突失效

64 0.93 186 107 78 1

128 0.87 174 107 65 2

256 0.765 153 107 41 5

512 0.64 128 107 13 8

1024 0.535 107 107 0 0

可以看出:

1.容量越大,失效率越小。

2.强制性失效不受容量大小的影响。

3.容量失效随着容量的增加而大大减小。

4.冲突失效不受容量大小的影响。

四、实验思考和感受

1、关于模拟器的思考

○1Cache大小可选为16/64/128/256,因为代码写了,但是没有增加选项。但是,我考虑因为16实在太小了,没什么意义。

○2打开文件名字为project.txt,修改文件名。

○3个人感觉有地方不太合适,因为直接映像就是特殊的组相联映射,所以相联度一定为1,但是代码中并没有设计这一点,当一个完全不懂得人使用时,很有可能设置相联度大于1,造成错误。另外我觉得可以把三种方式各封装在一个自己的函数里,这样代码更加清晰。

○4有困惑我的问题,我是通过阅读代码才比较清晰的理解cache实现的,

但是模拟器给出的地址映射的方法是将数据字节地址转换为字地址,又将字地址转换为块地址,对块地址进行取模运算。而习题1是直接对字地址进行取模运算,方法明显不一致。通过我重新阅读习题1的题目,发现实际习题1的132/131是字地址,因为定义的int array[]数组定义的是整数字长,所以132/131指的是地址为字地址,例如两个地址之间是一个整数字长。

2、关于整个实验的思考

这次实验是我大学做的最用心的一次实验,没有之一。我在仔细的阅读实验代码后,知道了存的物理地址是怎样转换为cache的块号或组号的。我根据自己的理解,画了一个模拟寻址图,更加清晰的知道原理,理顺清楚到底是怎么一回事,收获很大。

在做整体分析时,我采用图表折线图的方式,更加直观的看出数据的走势。但是我最初的设想采样样本是像一条平滑的曲线一样,自动的生成一组相对连续的数据,但是我只会生成随机数。而随机数是离散的,所以,以后有机会,我希望采用连续数据的样本,重新得出更加准确的结果。

总体来说,实验还是相对简单的,但是注重理解。理论与实践结合起来,加深了我对cache部分学习的理解,同时,也锻炼了我自主思考,自主学习的能力。比如,整体分析部分,采用不同变量结果比较方法等等。希望在今后的学习当中,继续保持,继续进步。

计算机体系结构试题库—简答题

计算机体系结构试题库 简答题(100题) 1.简述CISC结构计算机的缺点。 答: ●在CISC结构的指令系统中,各种指令的使用频率相差悬殊。据统计,有20%的指 令使用频率最大,占运行时间的80%。也就是说,有80%的指令在20%的运行时 间内才会用到。 ●CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制 时间和成本,而且还容易造成设计错误。 ●CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 ●CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 ●在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计 算机体系结构技术(如流水技术)来提高系统的性能。 2.RISC结构计算机的设计原则。 答: A.选取使用频率最高的指令,并补充一些最有用的指令; B.每条指令的功能应尽可能简单,并在一个机器周期内完成; C.所有指令长度均相同; D.只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行; E.以简单有效的方式支持高级语言。 3.影响现代微处理器主频提升的主要原因由哪些? 答:线延迟、功耗。 4.指令集格式设计时,有哪三种设计方法? 答:固定长度编码、可变长编和混合编码)三种设计方法。

5.简述存储程序计算机(冯·诺依曼结构)的特点。 答: (1)机器以运算器为中心。 (2)采用存储程序原理。 (3)存储器是按地址访问的、线性编址的空间。 (4)控制流由指令流产生。 (5)指令由操作码和地址码组成。 (6)数据以二进制编码表示,采用二进制运算。 6.在进行计算机系统设计时,一个设计者应该考虑哪些因素对设计的影响? 答: 在进行计算机系统设计时,设计者应该考虑到如下三个方面因素的影响: ●技术的发展趋势; ●计算机使用的发展趋势; ●计算机价格的发展趋势。 7.简述程序翻译技术的特点。 答: 翻译技术是先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。 8.简述程序解释技术的特点。 答: 解释技术是每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。 9.经典体系结构的定义是什么? 计算机体系结构是机器级程序员所看到的计算机的属性,即概念性结构与功能特性。10.“线延迟墙”指的是什么?

模式识别第二次上机实验报告

北京科技大学计算机与通信工程学院 模式分类第二次上机实验报告 姓名:XXXXXX 学号:00000000 班级:电信11 时间:2014-04-16

一、实验目的 1.掌握支持向量机(SVM)的原理、核函数类型选择以及核参数选择原则等; 二、实验内容 2.准备好数据,首先要把数据转换成Libsvm软件包要求的数据格式为: label index1:value1 index2:value2 ... 其中对于分类来说label为类标识,指定数据的种类;对于回归来说label为目标值。(我主要要用到回归) Index是从1开始的自然数,value是每一维的特征值。 该过程可以自己使用excel或者编写程序来完成,也可以使用网络上的FormatDataLibsvm.xls来完成。FormatDataLibsvm.xls使用说明: 先将数据按照下列格式存放(注意label放最后面): value1 value2 label value1 value2 label 然后将以上数据粘贴到FormatDataLibsvm.xls中的最左上角单元格,接着工具->宏执行行FormatDataToLibsvm宏。就可以得到libsvm要求的数据格式。将该数据存放到文本文件中进行下一步的处理。 3.对数据进行归一化。 该过程要用到libsvm软件包中的svm-scale.exe Svm-scale用法: 用法:svmscale [-l lower] [-u upper] [-y y_lower y_upper] [-s save_filename] [-r restore_filename] filename (缺省值:lower = -1,upper = 1,没有对y进行缩放)其中,-l:数据下限标记;lower:缩放后数据下限;-u:数据上限标记;upper:缩放后数据上限;-y:是否对目标值同时进行缩放;y_lower为下限值,y_upper为上限值;(回归需要对目标进行缩放,因此该参数可以设定为–y -1 1 )-s save_filename:表示将缩放的规则保存为文件save_filename;-r restore_filename:表示将缩放规则文件restore_filename载入后按此缩放;filename:待缩放的数据文件(要求满足前面所述的格式)。缩放规则文件可以用文本浏览器打开,看到其格式为: y lower upper min max x lower upper index1 min1 max1 index2 min2 max2 其中的lower 与upper 与使用时所设置的lower 与upper 含义相同;index 表示特征序号;min 转换前该特征的最小值;max 转换前该特征的最大值。数据集的缩放结果在此情况下通过DOS窗口输出,当然也可以通过DOS的文件重定向符号“>”将结果另存为指定的文件。该文件中的参数可用于最后面对目标值的反归一化。反归一化的公式为: (Value-lower)*(max-min)/(upper - lower)+lower 其中value为归一化后的值,其他参数与前面介绍的相同。 建议将训练数据集与测试数据集放在同一个文本文件中一起归一化,然后再将归一化结果分成训练集和测试集。 4.训练数据,生成模型。 用法:svmtrain [options] training_set_file [model_file] 其中,options(操作参数):可用的选项即表示的涵义如下所示-s svm类型:设置SVM 类型,默

吉林大学 计算机系统结构题库 第二章

第二章计算机指令集结构 知识点汇总: 指令集设计、堆栈型机器、累加器型机器、通用寄存器型机器、CISC、RISC、寻址方式、数据表示 简答题 1.增强CISC机器的指令功能主要从哪几方面着手?(CISC) (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 2.简述CISC存在的主要问题。(知识点:CISC) 答:(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 3.简述RISC的优缺点及设计RISC机器的一般原则。(知识点:RISC) 答:(1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 4.根据CPU内部存储单元类型,可将指令集结构分为哪几类?(知识点:堆栈型机器、累加器型机器、通用寄存器型机器) 答:堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 5.常见的三种通用寄存器型指令集结构是什么?(知识点:通用寄存器型机器) 答:(1)寄存器-寄存器型。 (2)寄存器-存储器型。 (3)存储器-存储器型。

计算机体系结构期末考试试题及答案

填空题 1.从2002年以来,计算机性能的年增长率下降到了约30%。其主要原因是:①大功耗问题; ②可以进一步有效地开发的指令级并行性已经很少;③存储器访问速度的提高缓慢。 2. 可移植性是指一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行。实现可移植性的常用方法有3种:系列机,模拟和仿真,统一高级语言。 2.通用寄存器型指令集结构计算机在灵活性和提高性能方面有明显的优势。主要体现在①寄存器的访问 速度比存储器快;②对编译器而言,能更加容易有效地分配和使用寄存器;③寄存器可以用来存放变量。 3.MIPS的数据寻址方式只有立即数寻址和偏移量寻址。 4.向量处理机的结构由所采用的向量处理方式决定。有两种典型的结构;存储器-存储器型结构和寄存器-寄存器型结构。 5.Cache-主存层次的工作由硬件实现,对系统程序员是透明的。 6.降低Cache不命中率最直接的方法是增加Cache的容量。不过,这种方法不但会增加成本,而且还可能增加命中时间,这种方法在片外Cache中用得比较多。 7.大多数磁盘阵列的组成可以由以下两个特征来区分:数据交叉存放的粒度、冗余数据的计算方法以及在磁盘阵列中的存放方式。 8.时延和带宽是用来评估互连网络性能的两个基本指标。时延包括通信时延和网络时延。 9.计算机系统可分为SISD、SIMD、MISD和MIMD四类,许多早期并行处理机是SIMD计算机,近年来,MIMD已经成为通用多处理机系统结构的选择。这是因为MIMD具有灵活性,并且MIMD 能充分利用现有微处理器的性价比优势。 判断题 1.从计算机语言的角度,系统结构把计算机系统按功能划分成多级层次结构,其中,第2级是操作系统虚拟机,第3级是汇编语言虚拟机。(错) 2.计算机系统中提高并行性的3种途径中,资源重复是在并行性概念中引入时间因素,加快硬件周转而赢得时间。(错) 3.指令集结构中采用多种寻址方式可能会增加实现的复杂度和使用这些寻址方式的指令的CPI。(对) 4.指令条数多,通常超过200条,是设计RISC的原则之一。(错) 5.根据流水线中各功能段之间是否有反馈回路,可把流水线分为线性流水线和非线性流水线。(对) 6.在多级存储体系中,“主存一辅存”层次的存储管理实现主要由软件实现。(对) 7.失效率和平均访存时间都可评价存储系统的性能,它们都和机器的硬件速度有关。(错) 8.RAID的特点有容量大,速度快、可靠性高,同时保存数据无冗余信息。(对) 9.在多处理机的互连网络中,交叉开关网络属于动态互连网络。(对) 10.机群是一种价格低廉、易于构建、可扩缩性极强的并行计算机系统。(对) 名词解释 1.RISC 精简指令集计算机是一种执行较少类型计算机指令的微处理器 2.请求字优先 调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立即送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。 3.单一系统映像

实验1 Cache性能分析

实验1 Cache性能分析 1 实验目的 (1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2)掌握Cache容量、相联度、块大小对Cache性能的影响。 (3)掌握降低Cache 2 实验平台 采用MyCache模拟器。 MyCache模拟器的使用方法: (1) 双击MyCache.exe,启动模拟器。 (2) 系统打开操作界面,如下图所示: (3) 写不命中时的调块策略。可以直接从列表中选择。 (4) 访问地址可以选择来自地址流文件,也可以选择手动输入。如果是前者,则可以通过单击“浏览”按钮,从模拟器所在文件夹下的“地址流”文件夹中选取地址流文件(.din)文件,然后执行。执行得方式可以是单步,也可以选择一次执行结束。如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后单击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。 3 实验内容和步骤 3.1 Cache容量对不命中率的影响 (1) 启动MyCache。 (2) 单击“复位”按钮,将各参数设置为默认值。 (3) 选择一个地址流文件。具体方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 (4) 选择不同的Cache容量,包括2KB,4 KB,8 KB,16 KB,32 KB,64 KB,128 KB和256 KB,分别执行模拟器(单击“执行到底”按钮就可执行),然后在表1.1中记录各种情况下的不命中率。 地址流文件名:all.din 表1.1 不同容量下Cache的不命中率

(5)指明地址流文件名,以容量为横坐标,画出不命中率虽Cache容量变化而变化的曲线 (6) 根据该模拟结果,能得出什么结论? 相同的地址流文件,Cache容量越大,Cache的不命中率越低,命中率越高,但当Cache 容量达到一定程度时,Cache的命中率将不变。 3.2 相联度对不命中率的影响 (1) 单击“复位”按钮,将各参数设置为默认值。此时的Cache容量为64KB。 (2) 选择一个地址流文件。具体方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 (3) 选取不同的Cache相联度,包括直接映像、2路、4路、8路、16路和32路。分别执行模拟器(单击“执行到底”按钮),然后再表1.2中记录各种情况下的不命中率。 地址流文件名:all.din (4) 把Cache的容量设置为256KB,重复(3)步骤填表1.3。

Java网上订餐系统与分析大型实验报告

Java系统与分析大型实验报告设计题目:基于JavaEE的网上订餐系统 班级:软件801 姓名:*** 学号:*** 指导老师:*** 2011年12月

1、需求分析 网上订餐系统需要提供客户快捷、方便的订餐服务,开发本系统的具体要求如下: (1)在系统首页需要提供推荐菜单、热门菜单已经菜单搜索功能,方便用户快速选购自己喜欢的菜单。 (2)系统要求用户进行注册和登录。 (3)在用户订餐完毕后,需要能够自动计算菜单价格。同时在用户提交订单时,需要用户确定订单无误,同时还将自动生成订单号,并保存到系统的剪贴板中,方便用户保存订单号。 (4)系统还需要提供会员服务功能,会员每消费一块钱将增加一积分。同时在系统首页将显示积分榜,鼓励会员消费。 (5)系统需要提供菜单分类查看功能,从而方便用户选购。 2、功能分析 模块: 餐店简介模块:用来介绍餐店信息,例如餐店名称、联系人、地址、电话等。 美食分类模块:用来分类显示美食信息,可以通过单击菜单来查看菜单详细信息,可以发表评论信息。 订餐模块:点击菜单的订餐按钮,进入购物车,提供订餐功能。 会员中心模块:用来显示会员身份信息,并提供会员信息更新功能。 订单查询模块:负责订单的查询功能,提供订单时间、订单号查询功能。 功能说明用例图: 用户 查询菜单 提交订单 删除订单图1 用户用例图

管理员 查询菜单 添加菜单 删除菜单 查询订单 删除订单 图2 管理员用例图 3、系统设计 系统流程图: 身份识别 是否合法后台订餐页面 是查看美事信息放入购物车查看购物车提交订单查看订单否 评价美食 图3 前台系统流程图 身份识别 是否合法 后台订餐页面 是增加美食删除美事查看订单删除订单修改美事信息 否 图4 后台系统流程图

计算机体系结构第二章练习题参考解答

第二章 2.13 在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译码需要一个时钟周期,MOVE、ADD和MUL操作分别需要2个、3个和4个时钟周期,每个操作都在第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。 k: MOVE R1,R0 ;R1← (R0) k+1: MUL R0,R2,R1 ;R0← (R2)×(R1) k+2: ADD R0,R2,R3 ;R0← (R2)+(R3) (1)就程序本身而言,可能有哪几种数据相关? (2)在程序实际执行过程中,哪几种数据相关会引起流水线停顿? (3)画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期? 解:(1)就程序本身而言,可能有三种数据相关。若3条指令顺序流动,则k指令对R1寄存器的写与k+1指令对R1寄存器的读形成的“先写后读”相关。若3条指令异步流动,则k指令对R0寄存器的读与k+1指令对R0寄存器的写形成的“先读后写”相关,k+2指令对R0寄存器的写与k+1指令对R0寄存器的写形成的“写—写”相关。 (2)在程序实际执行过程中,二种数据相关会引起流水线停顿。一是“先写后读”相关,k指令对R1的写在程序执行开始后的第四个时钟;k+1指令对R1的读对指令本身是第三个时钟,但k+1指令比k指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟要读R1。不能在同一时钟周期内读写同一寄存器,因此k+1指令应推迟一个时钟进入流水线,产生了流水线停顿。二是“写—写”相关,k+1指令对R0的写对指令本身是第六个时钟,而要求该指令进入流水线应在程序执行开始后的第三个时钟,所以对R0的写是在程序执行开始后的第八个时钟。k+2指令对R0的写对指令本身是第五个时钟,而k+2指令比k+1指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟,所以对R0的写是在程序执行开始后的第八个时钟。不能在同一时钟周期内写写同一寄存器,因此k+2指令应推迟一个时钟进入流水线,产生了流水线停顿。另外,可分析“先读后写”相关不会产生流水线的停顿。 (3)由题意可认位该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行过程的流水线时空图如下图所示。若3条指令顺序流动,共需要9个 空间 存数 K存数 K+1存数 K+2存数 运二 K+1运二 运一 K+1运一 K+2运一 取数 K取数 K+1取数 K+2取数 译码 K译码 K+1译码 K+2译码 取指 K取指 K+1取指 K+2取指时间 0 1 2 3 4 5 6 7 8 9

计算机体系结构试题汇总

计算机系统结构 姓名:学号: 一、简答题(每小题10分,共20分) 1.简述使用物理地址进行DMA存在的问题,及其解决办法。 2.从目的、技术途径、组成、分工方式、工作方式等5个方面对同构型多处理机和异构型多处理机做一比较(列表)。 二、(60分)现有如下表达式: Y=a ×X 其中:X和Y是两个有64个元素的32位的整数的向量,a为32位的整数。假设在存储器中,X和Y的起始地址分别为1000和5000,a的起始地址为6000。 1.请写出实现该表达式的MIPS代码。 2.假设指令的平均执行时钟周期数为5,计算机的主频为500 MHz,请计算上述MIPS 代码(非流水化实现)的执行时间。 3.将上述MIPS代码在MIPS流水线上(有正常的定向路径、分支指令在译码段被解析出来)执行,请以最快执行方式调度该MIPS指令序列。注意:可以改变操作数,但不能改变操作码和指令条数。画出调度前和调度后的MIPS代码序列执行的流水线时空图,计算调度前和调度后的MIPS代码序列执行所需的时钟周期数,以及调度前后的MIPS流水线执行的加速比。 4.根据3的结果说明流水线相关对CPU性能的影响。 三、(20分)请分析I/O对于性能的影响有多大?假设: 1.I/O操作按照页面方式进行,每页大小为16 KB,Cache块大小为64 B;且对应新页的地址不在Cache中;而CPU不访问新调入页面中的任何数据。 2.Cache中95%被替换的块将再次被读取,并引起一次失效;Cache使用写回方法,平均50%的块被修改过;I/O系统缓冲能够存储一个完整的Cache块。 3.访问或失效在所有Cache块中均匀分布;在CPU和I/O之间,没有其他访问Cache 的干扰;无I/O时,每1百万个时钟周期中,有15,000次失效;失效开销是30个时钟周期。如果替换块被修改过,则再加上30个周期用于写回主存。计算机平均每1百万个周期处理一页。

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

实验一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容量、块容量、映射方式、替换策略和写策略。Cache容量块容量映射方式替换策略写策略 8 32 全相联映射先进先出算法写回法(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)。此处选择先进先出。 (5)写策略: 如下图所示,提示输入Cache的读写操作,1代表写直达法(存直达法)即写操作时数据既写入Cache又写入主存、2代表写回法(拷回法)即写操作时只把数据写入Cache而不写入主存,但当Cache数据被替换出去时才写回主存。

计算机系统结构第二章自考练习题答案

计算机系统结构第二章自考练习题答案

第二章数据表示与指令系统 历年真题精选 1. 计算机中优先使用的操作码编码方法是( C )。 A. BCD码 B. ASCII码 C. 扩展操作码 D. 哈夫曼编码 2.浮点数尾数基值r m=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值为( D )。 A. 1/2 B. 15/16 C. 1/256 D. 255/256 3. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。 4. 引入数据表示的两条基本原则是:一看系统 的效率是否有提高;二看数据表示的(通

用)性和(利用)率是否高。 5. 简述设计RISC的一般原则。 6. 简述程序的动态再定位的思想。 7. 浮点数表示,阶码用二进制表示,除阶符之外 的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时, (1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。 8. (1)要将浮点数尾数下溢处理成K—1位结 果,则ROM表的单元数和字长各是多少? 并简述ROM表各单元所填的内容与其地址之间的规则。 (2)若3位数,其最低位为下溢处理前的附 加位,现将其下溢处理成2位结果,设

计使下溢处理平均误差接近于零的 ROM表,以表明地址单元与其内容的 关系。 同步强化练习 一.单项选择题。 1. 程序员编写程序时使用的地址是( D )。 A.主存地址B.有效地址C.辅存实地址D.逻辑地址 2. 在尾数下溢处理方法中,平均误差最大的是( B )。 A.舍入法B.截断法C.恒置“1”法D.ROM查表法 3. 数据表示指的是( C )。A.应用中要用到的数据元素之间的结构关系

计算机系统结构期末考试试题及其答案

计算机系统结构期末考试试题及其答案

《计算机系统结构》期末考试试卷A 卷第 2 页 共 24 页 计算机科学系《计算机系统结构》期末考试试卷(A 卷) 2、此试卷适用于计算机科学与技术本科专业。 一 单选题:(10分,每题1分) 1、 ."启动I/O"指令是主要的输入输出指 令,是属于( B ) A.目态指令 B.管态指令 C.目态、管态都能用的指令 D.编译程序只能用的指令 2、 输入输出系统硬件的功能对(B )是透 明的 A.操作系统程序员 B.应用程序员 C.系统结构设计人员 D.机器语言程序设计员 3、 全相联地址映象是指(A ) A.任何虚页都可装入主存中任何实页的位置 B.一个虚页只装进固定的主存实页位置 C.组之间固定,组内任何虚页可装入任何实页位

置 D.组间可任意装入,组内是固定装入 4、( C ) 属于MIMD系统结构 A.各处理单元同时受一个控制单元的管理 B.各处理单元同时受同个控制单元送来的指令 C.松耦合多处理机和多计算机系统 D.阵列处理机 5、多处理机上两个程序段之间若有先写 后读的数据相关,则(B ) A.可以并行执行 B.不可能并行 C.任何情况均可交换串行 D.必须并行执行 6、计算机使用的语言是(B) A.专属软件范畴,与计算机体系结构无关 B.分属于计算机系统各个层次 C.属于用以建立一个用户的应用环境 D.属于符号化的机器指令 7、指令执行结果出现异常引起的中断是 (C ) A.输入/输出中断 B.机器校验中断 C.程序性中断 D.外部中断 《计算机系统结构》期末考试试卷A卷第 3 页共 24 页

根据spim的cache实验

汕头大学实验报告 学院: 工学院系: 计算机系专业: 计算机科学与技术年级: 13实验时间: 2015.6.16 姓名: 林子伦学号: 2013101030实验名称:基于SPIM-CACHE的Cache实验 一.实验目的: (1)熟悉SPIM-CACHE模拟器环境 (2)深入认识CACHE的工作原理及其作用。 二.实验内容: (1)阅读实验指导书资料(虚拟教室提供了英文论文的电子版本); (2)下载SPIM-CACHE软件,理解英文论文的基本内容之后,给出几种典型的cache配置,运行英文论文提供的代码,记录运行时CACHE命中率等重要数据;(3)运行Fig.4代码,了解mapping functions 即映射规则 (4)运行Fig.7代码,了解temporal and spatial locality 即时空局部性,进一步理解cache的工作原理; (5)运行Fig.8代码,运行学习replacement algorithms 即替代算法,理解其工作原理。 三.实验地点,环境 实验地点:软件工程实验室 实验环境: 操作系统:Microsoft Windows 8 中文版 处理器:Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz 2.50GHz 内存: 4.00GB(3.82GB 可用) 四.实验记录及实验分析(80%): 4.1实验前配置: 1) 按下图配置好Spim设置

2)关于实验中cache设置如下(具体配置根据下面实验要求) ——》 ——》 Cache size ——cache大小 Block size ——块大小 Mapping ——组相连 4.2实验一:fig4.s 实验目的:Algorithm and corresponding code to study mapping functions Cache配置:256-B size, 16-B line size, four-way set associative 实验操作: 1) Ctrl+O 打开运行代码fig4.s 代码如下: .data 0x10000480 Array_A: .word 1,1,1,1,2,2,2,2 .data 0x10000CC0 Array_B: .word 3,3,3,3,4,4,4,4 .text .globl _start _start: la $2,Array_A li $6,0 li $4,8 loop: lw $5,0($2) add $6,$6,$5 addi $2,$2,4

Cache命中率分析工具的使用(附源代码)

题目:安装一种Cache命中率分析工具,并现场安装、演示。 一、什么是CPU-Cache CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容 量比内存小的多但是交换速度却比内存要快得多。高速缓存的出现主要是为了解 决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读 写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。 在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可先缓存中调用,从而加快读取速度。CPU包 含多个核心,每个核心又有独自的一级缓存(细分成代码缓存和数据缓存)和二 级缓存,各个核心之间共享三级缓存,并统一通过总线与内存进行交互。 二、关于Cache Line 整个Cache被分成多个Line,每个Line通常是32byte或64byte,Cache Line 是Cache和内存交换数据的最小单位,每个Cache Line包含三个部分 Valid:当前缓存是否有效 Tag:对应的内存地址 Block:缓存数据 三、Cache命中率分析工具选择 1、Linux平台:Valgrind分析工具; 2、Windows平台如下: java的Jprofiler; C++的VisualStudio2010及以后的版本中自带profile工具; Application Verifier; intel vtune等。 四、选用Valgrind分析工具在Linux-Ubuntu14.04环境下实验 1.Valgrind分析工具的常用命令功能: memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。 callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。 cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。 helgrind:用于检查多线程程序的竞态条件。 massif:堆栈分析器,指示程序中使用了多少堆内存等信息。 2.Valgrind分析工具的安装: 使用Ubuntu统一安装命令:sudo apt-get install valgrind 之后等待安装完成即可。 安装界面如图(由于我已经安装了此工具,而且没有更新的版本,图上结果为无可用升级)。

计算机系统结构-第二章(习题解答)

1. 数据类型、数据表示和数据结构之间是什么关系?在设计一个计算机系统 时,确定数据表示的原则主要有哪几个? 答: 略 2. 假设有A 和B 两种不同类型的处理机,A 处理机中的数据不带标志位,其 指令字长和数据字长均为32位。B 处理机的数据带有标志位,每个数据的字长增加至36位,其中有4位是标志符,它的指令条数由最多256条减少至不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在A 处理机和B 处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发? 答: 我们可以计算出数据的总数量: ∵ 程序有1000条指令组成,且每条指令平均要访问两个操作数 ∴ 程序访问的数据总数为:1000×2=2000个 ∵ 每个数据平均访问8次 ∴ 程序访问的不同数据个数为:2000÷8=250 对于A 处理机,所用的存储空间的大小为: bit 4000032250321000Mem Mem Mem data n instructio A =?+?=+= 对于B 处理机,指令字长由32位变为了30位(条数由256减少到64),这样,所用的存储空间的大小为: bit 3900036250301000Mem Mem Mem data n instructio B =?+?=+=

由此我们可以看出,由于数据的平均访问次数要大于指令,所以,采用带标志符的数据表示不会增加总的存储空间大小。 3. 对于一个字长为64位的存储器,访问这个存储器的地址按字节编址。假设 存放在这个存储器中的数据中有20%是独立的字节数据(指与这个字节数据相邻的不是一个字节数据),有30%是独立的16位数据,有20%是独立的32位数据,另外30%是独立的64位数据;并且规定只能从一个存储字的起始位置开始存放数据。 ⑴计算这种存储器的存储空间利用率。 ⑵给出提高存储空间利用率的方法,画出新方法的逻辑框图,并计算这种方法 的存储空间利用率。 答: ⑴ 由于全是独立数据,有20%浪费56位(7/8);30%浪费48位(6/8);20%浪费32位(4/8);30%浪费0位(0/8)。 总共浪费:0.2×7/8+0.3×6/8+0.2×4/8+0.3×0/8=0.5 即:存储器的存储空间利用率为50%,浪费率为50%。 ⑵ 方案为:数据从地址整数倍位置开始存储,即,双字地址000结尾,单字地址00结尾,半字地址0结尾,字节地址结尾任意。 可能出现的各种情况如下:

计算机体系结构模拟试题二汇总

模拟试题二 课程名称计算机系统结构适用班级: 考试时间120分钟班级学 号姓名 一、单项选择题(本大题共10小题,每小题2分,共20分。在每小题的四个备选答案中选出一个符合题意的,并将其前面的序号填在题后的括号内。) 1.输入输出系统硬件的功能对()是透明的。 ①操作系统程序员②应用程序员③系统结构设计人员④机器语言程序设计员 2."启动I/O"指令是主要的输入输出指令,是属于() ①目态指令②管态指令③目态、管态都能用的指令④编译程序只能用的指令 3.全相联地址映象是指() ①任何虚页都可装入主存中任何实页的位置 ②一个虚页只装进固定的主存实页位置 ③组之间是固定的,而组内任何虚页可以装入任何实页位置 ④组间可任意装入,组内是固定装入 4.()属于MIMD系统结构。 ①各处理单元同时受同一个控制单元的管理 ②各处理单元同时接受同一个控制单元送来的指令 ③多处理机和多计算机系统 ④阵列处理机 5.在下列方法中,指令并行度不能大于1的是()。 ①超级流水②超标量③超长指令字④标量流水线 6.设16个处理器编号分别为0,1,2,…,15用Cube3互联函数时,第10号处理机与第( )

号处理机相连. ①11 ②8 ③l4 ④2 7.若输入流水线的指令既无局部性相关,也不存在全局性相关,则() ①可获得高的吞吐率和效率②流水线的效率和吞吐率恶化 ③出现瓶颈④可靠性提高 8.对于共享主存的多处理机系统,在各个CPU都带有自己的Cache的情况下,为保证处理机所带Cache的一致性,可采用的方法有() ①写直达法②写回法③播写法④堆栈法 9.下面哪种相关不是流水线顺序流动方式所具有的() ①数据相关②指令相关③先读后写④先写后读 10.下面关于Omega网络和多级立方体网络的说法错误的是() ①Omega网络采用四功能单元 ②Omega网络和多级立方体网络的控制方式是不一样的 ③Omega网络可以实现一个处理单元与多个处理单元的同时连接 ④Omega网络和多级立方体网络的级编号顺序正好相反。 二、填空题(本大题共10小题,每小题1分,共10分。把答案填在题中横线上。) 1.为提高计算机系统的并行性,可通过的技术途径有__________、资源重复和资源共享。 2.按弗林(Michael J.Flynn)的观点,计算机系统可分为SISD、、MISD 和MIMD四大类。 3.为提高访Cache的命中率,Cache的预取算法可以有恒预取法和___________预取法。 4.衡量主存性能的指标是访问时间、存储周期和__________。 5.要实现两条指令在时间上重叠解释,首先是以增加硬件为代价的,其次,还要处理好指令之间可能存在的。 6.互连网络的交换方法主要有线路交换、包交换、线路/包交换,SIMD互连网络多采用交换,多处理机常采用包交换。 7.为同时解释相邻两条或多条指令,常用的控制方式是重叠和____________。 8.数组多路通道与设备之间的数据传送的基本单位是_____。 9.多级互连网络的交换开关控制方式主要有三种,分别是______、单元控制和部分级控制。 10.多处理机系统按照连接的紧密程度主要分两大类,分别是___________和松散耦合多处理

Cache模拟器实验报告

Cache模拟器 一、实验目标: 程序运行时,都会对内存进行相关操作,所访问的内存地址可以被记录下来,形成memory trace文件。在本实验中,你将使用benchmark 程序产生的memory trace文件来测试Cache命中率,文件可以在https://www.360docs.net/doc/9617704979.html,/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给出的比例进行比较。 三、程序设计与实现: 本程序我打算采用java进行编写,因为java能够很好地体现面向对象编程的优点。首先需要定义相关的数据类型。 将指令定义为一个单独的指令类,好方便操作和记录统计,其中属性包括该指令的类型,比如是Load指令还是Store指令,还包括指令的地址。 class Instruction { String type; String addrs; }

大连理工大学计算机系统结构实验-实验四

大连理工大学实验报告计算机系统结构实验 实验四Cache性能分析 学院(系):电子信息与电气工程学部专业:计算机科学与技术 学生姓名: 班级: 学号: 大连理工大学 Dalian University of Technology

实验四Cache性能分析 一、实验目的和要求 (1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2)掌握Cache容量、相联度、块大小对Cache性能的影响。 (3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。 (4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。 二、实验步骤与操作方法 1、Cache容量对不命中率的影响。 (1)启动MyCache。 (2)用鼠标单击“复位”按钮,把各参数设置为默认值。 (3)选择一个地址流文件。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。 (4)选择不同的Cache容量,包括2KB、4KB、8KB、16KB、32KB、64KB、128KB和256KB。分别执行模拟器(单击“执行到底”按钮即可执行),然后在下表中记录各种情况下的不命中率。 表不同容量下Cache的不命中率 (5)以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线,并指明地址流文件名。

(6)根据该模拟结果,你能得出什么结论? 答:随着Cache容量的增大,不命中率降低,但是降低的幅度由较大差别,Cache容 量足够大以后,不命中率降到一定程度以后,降低效果不再明显。 2.相联度对不命中率的影响 (1)用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache容量为64KB。 (2)选择一个地址流文件。 (3)选择不同的Cache相联度,包括2路、4路、8路、16路和32路。分别执行模拟器,然后在下表中记录各种情况下的不命中率。 表当容量为64KB时,不同相联度下Cache的不命中率 (4)把Cache的容量设置为256KB,重复(3)的工作,并填写下表。 表当容量为256KB时,不同相联度下Cache的不命中率 (5)以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线,并指明地址流文件名。

计算机组成与系统结构第二章习题及答案

一、填空题(20每空2分) 1.计数制中使用的数据个数被称为。(基) 2.移码常用来表示浮点数的部分,移码和补码比较,它们除外,其他各位都相同。(阶码,符号位) 3.码值80H: 若表示真值0,则为;若表示-128,则为; 若表示-127,则为;若表示-0,则为。(移码补码反码原码) 4. 在浮点运算过程中,如果运算结果的尾数部分不是形式,则需要进行规格化处理。设尾数采用补码表示形式,当运算结果时,需要进行右规操作;当运算结果时,需要进行左规操作。 (规格化溢出不是规格化数) 二、选择题(20每题2分) 1.以下给出的浮点数,______是规格化浮点数。(B) A.2^-10×0.010101 B.2^-11×0.101010 C.2^-100×1.010100 D.2^-1×0.0010101 2.常规乘除法器乘、除运算过程采用部分积、余数左移的做法,其好处是______。(C) A.提高运算速度 B. 提高运算精度 C. 节省加法器的位数 D. 便于控制 3.逻辑异运算10010011和01011101的结果是。(B) A.01001110 B.11001110

C.11011101 D.10001110 4.浮点数尾数基值rm=8,尾数数值部分长6位,可表示的规格化最小正尾数为。(C) 1.A.0.5 B.0.25 C.0.125 D.1/64 5.当浮点数尾数的基值rm=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值是。(D) A.1/2 B.15/16 C.1/256 D.255/256 6.两个补码数相加,采用1位符号位,当时表示结果溢出。(D) A、符号位有进位 B、符号位进位和最高数位进位异或结果为0 C、符号位为1 D、符号位进位和最高数位进位异或结果为1 7.运算器的主要功能时进行。(C) A、逻辑运算 B、算术运算 C、逻辑运算和算术运算 D、只作加法 8.运算器虽有许多部件组成,但核心部件是。(B) A、数据总线 B、算术逻辑运算单元 C、多路开关 D、累加寄存器 9.在定点二进制运算中,减法运算一般通过来实现。(D) A、原码运算的二进制减法器 B、补码运算的二进制减法器 C、补码运算的的十进制加法器 D、补码运算的的二进制加法器 10.ALU属于部件。(A) A、运算器 B、控制器 C、存储器 D、寄存器 三、判断题(10每题2分) 1.计算机表示的数发生溢出的根本原因是计算机的字长有限。(错误)

相关文档
最新文档