计算机组成原理

  • 格式:docx
  • 大小:896.52 KB
  • 文档页数:27

下载文档原格式

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

计算机组成原理

实验报告

学院(系):软件学院

专业:软件设计

班级:软件设计一班

学号:

姓名:

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电路是既能完成算术运算又能完成逻辑运算的部件;

功能:运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作