计算机组成原理
- 格式:docx
- 大小:896.52 KB
- 文档页数:27
计算机组成原理
实验报告
学院(系):软件学院
专业:软件设计
班级:软件设计一班
学号:
姓名:
2017年12月4日
实验1 Cache模拟器的实现
一.实验目的
(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
(2)掌握Cache容量、相联度、块大小对Cache性能的影响。
(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。
(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。
二、实验内容和步骤
1、启动CacheSim。
2、根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。
3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。
4、读取cache-traces.zip中的trace文件。
5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。思考:
1、Cache的命中率与其容量大小有何关系?
回答:Cache 的容量与块长是影响cache效率的重要因素;Cache 容量越大,其CPU命中率就越高,当然容量过大,增加成本,而且cache容量达到一定值时,命中率已不因容量的增加而又明显的提高;
2、Cache块大小对不命中率有何影响?
回答:Cache 当块由小到大,在已被访问字的附近,近期也可能访问,增大块长,可将更多有用字存入缓存,提高命中率;但是继续增大块长,命中率可能下降,因为所装入缓存的有用数据反而少于被替换掉的有用数据,由于块长增大,块数减少,装入新的块要覆盖旧块,很可能出现少数块刚装入就被覆盖,故命中率可能下降;
3、替换算法和相联度大小对不命中率有何影响?
回答:替换算法中:LRU算法的平均命中率比FIFO的高。LRU算法比较好地利用
访存局部性原理,替换出近期用得最少的字块,它需要随时记录cache 各个字块使用情况。FIFO不需要记录各个字块的使用情况,比较容易实现开销小,但是没有根据访存的局部性原理,最早调入的信息可能以后还要用到,或经常用到例如循环程序;Cache 容量一定时,随着相联度的不断增加,不命中率渐渐减小,但是当相连度增加到一定程度时,不命中率保持不变;
三.实验结果分析
1,Cache的命中率与其容量大小的关系
将所有测试的数据绘制成折线图,更清晰的展现,如下:
2,Cache块大小对不命中率的影响
3,替换算法对命中率影响数据分析
4,FIFO
5,LRU
6,Random
7,相关度大小对命中率的影响
折线图
四.实验心得
对实验所需要的重点名词,进行了理解;命中率,访问效率,平均访问时间例题进行了理解,从而分析了Cache容量,相关度,块大小,替换算法对命中率的影响;
因为LRU 、FIFO 、RANDOM替换算法对命中率也有这一些影响;
看了主存地址映射:有直接映射,全相连映射,感觉有一些迷糊了;
不是太容易理解了,然后百度搜了一些相连度大小对命中率影响,然后运用CacheSim 模拟器,仅仅从一个数值中值看出来简单的变化;
但是并不能看出有什么规律;然后把它们用excel做成折线图,发现其中存在的规律;然后翻阅书籍;解释为什么会存在着现象;这种实践让在学习知识点的过程中,更加有说服性了;
、
实验2 运算器的编程实现
一、实验目的
1、加深对计算机中运算器的基本概念、运算方法和基本原理的理解。
2、提高学生对计算机编程语言掌握的熟练程度。
二、实验内容
运用一种编程语言实现计算器的基本功能。
思考:
1、计算机中数据是如何表示的?
回答:计算机中数据都是以二进制形式表示的;
实际数表示方法:符号(正负数)
数值处理(数制转换)
小数点的处理(定点浮点)
机器数的表示方法:原码反码补码
2、计算机中二进制数的加、减、乘、除四则运算如何实现?
回答:全部采用的是二进制,因为它只使用0,1两个数字符号,非常简单方便,易于用电子方式实现,计算机内部处理的信息,都是采用二进制数来表示,二进制(binary)数用0和1两个数字及其组合来表示任何数,进位规则是逢“2进1”数字1在不同的位上代表不同的值,按从右至左的次序,这个值以二倍递增。
3、运算器的基本结构和功能有哪些?
回答:对于有符号的数而言
1:二进制的最高位是符号位:0表示正数;1表示负数
2:正数的原码、反码、补码都一样
3:负数的反码=它的原码符号位不变,其他位取反1->0
4:负数的补码= 它的反码+1
5: 0的反码,补码都是0;
6:在计算机运算时,都是以补码的方式来运算的;
三.实验结果分析
简单补码反码原码运算图形表示:
4个位运算:分别是& | ^ ~
按位与& :两位都为1,结果为1
按位或| :两位有一个为1,结果为1;
按位异或^:两位一个为0,一个为1,结果为1;
按位取反~:0->1; 1->0
运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成;针对没一种算术运算,都必须有一个相对应的基本硬件配置,其核心部件是加法器和寄存器,当需要完成逻辑运算时,势必需要配置相应的逻辑电离能,而ALU电路是既能完成算术运算又能完成逻辑运算的部件;
功能:运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作