热门搜索 :
考研考公
您的当前位置:首页正文

西安交大计算机系统结构实验报告.

来源:东饰资讯网


《计算机系统结构课内实验》

实验报告

第一次实验:记分牌算法和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。实验结果显示该段程序运行了11个时钟周期。

整个实验结果表明增加功能部件的数目对程序的执行效率基本没有影响。改变加法器的延迟时间对程序的执行效率也没有影响,乘法器的延迟时间对程序的执行效率有影响

(2)Tomsulo算法

整数保留站:1 延迟:1 加法器保留站:2 延迟:2 乘法器保留站:2 延迟:5

整数保留站:2 延迟:1 加法器保留站:2 延迟:2 乘法器保留站:2 延迟:5

增加整数保留站的数目加快了程序的执行。

整数保留站:1 延迟:1 加法器保留站:2 延迟:2 乘法器保留站:2 延迟:6

整数保留站:1 延迟:1 加法器保留站:2 延迟:2 乘法器保留站:2 延迟:10

增加乘法保留站的延迟时间对程序的执行没有影响

整数保留站:1 延迟:1 加法器保留站:2 延迟:1 乘法器保留站:2 延迟:5

整数保留站:1 延迟:1 加法器保留站:2 延迟:2 乘法器保留站:2 延迟:5 除法保留站:1 延迟:19

整数保留站:1 延迟:1 加法器保留站:2 延迟:1 乘法器保留站:2 延迟:3 除法保留站:1 延迟:10

整数保留站:1 延迟:1 加法器保留站:2 延迟:3 乘法器保留站:2 延迟:7 除法保留站:1 延迟:26

(1) 通过实验改变保留站的数目发现改变加法器或者乘法器或者除法器保留站的数目,

程序的执行效率不变,但改变增加整数保留站的数目能加快程序的执行。

(2) 通过实验改变保留站的延迟时间发现改变加法器或者乘法器或者除法器保留站的延

迟时间,程序的执行效率不变,但改变增加整数保留站的延迟时间能使程序的执行变慢 。

六、总结

Tomasulo算法的基本思想:只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中。指令的执行结果也是直接送到等待数据的其它保留站中去。因而,对于连续的寄存器写,只有最后一个才真正更新寄存器中的内容。一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)。 通过这次试验使我对Tomasulo算法的理解又加深了一步。

第二次实验:cache性能分析

一、实验目的及要求

通过实验理解Cache容量,Cache块大小,相联度,替换算法对cache的性能影响。 二、实验环境

Vmware虚拟机,ubantu 操作系统,sim-cache模拟器 三、实验内容

使用sim-cache模拟器运行simplescarlar目录下的自带测试程序,在每个程序运行前修改相应的cache配置参数(sets数量,块大小,相联度,块替换策略,每次改变一个参数,其余参数保持不变),观察运行后的失效率的变化,并记录运行结果并进行分析(一级数据cache dl1的容量配置)。 四、实验步骤

1.运行sim-cache模拟器,统计默认 Cache设置运行程序的总失效次数、容量失效与冲突失效次数,强制性失效次数三种不同种类的失效次数;

2.改变 Cache容量(*2,*4,*8,*64),统计各种失效的次数,并分析 Cache容量对 Cache 性能的影响;

3.改变 Cache 的相联度(1 路,2 路,4 路,8 路,64 路),运行程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响; 4.改变 Cache块大小(*2,*4,*8,*64) ,统计各种失效的次数,并分析 Cache块大小对 Cache性能的影响;

5.分别采用 LRU 与随机法,在不同的Cache容量、不同的相联度下,运行程序,统计 Cache总失效次数,计算失效率。分析不同的替换算法对 Cache性能的影响;

6总结Cache失效及其代价。 五、实验结果

1. 统计默认 Cache设置运行程序(32个组,Cache块大小为32个byte,相联度为2,替换策略为LRU)的总失效次数、容量失效与冲突失效次数,强制性失效次数

总失效次数 总的失效率 容量失效与冲突失效次数 强制性失效次数 1395 0.0243 1331 64 2. 改变 Cache容量(*2,*4,*8,*64),统计各种失效的次数,并分析 Cache容量对 Cache 性能的影响;

Cache容量*2

Cache容量*4

Cache容量*8

Cache容量*64

cache容量 总的失效次数 32KB 64KB 128KB 256KB 2048KB 从上表得出,随着cache容量的不断增加,程序的失效率不断降低。容量失效和冲突失效的次数随着cache容量的增加不断地减少,而强制性失效次数则不断地增加。

1395 840 669 558 542 总的失效率 0.0243 0.0146 0.0116 0.0097 0.0094 容量失效和冲强制性失效次突失效总次数 数 1331 712 413 124 0 64 128 256 434 542

3. 改变 Cache 的相联度(1 路,2 路,4 路,8 路,64 路),运行程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响;

Cache 的相联度1路,

Cache 的相联度2 路,

Cache 的相联度4 路,

Cache 的相联度8 路,

Cache 的相联度64 路, Cache相联度 总的失效次数 容量失效和冲突失效总次数 4071 1331 强制性失效次数 32 64 1路 2路 4103 1395

4路 8路 64路 717 575 542 589 319 0 128 256 542 从上表得出,随着相联度的增加,总的失效次数减小,程序的失效率逐渐降低,但降低的幅度比较小。容量失效和冲突失效的次数随着相联度的增加不断地减少,而强制性的失效次数则不断地增加。

4. 改变 Cache块大小(*2,*4,*8,*64) ,统计各种失效的次数,并分析 Cache块大小对 Cache性能的影响;

Cache块大小64KB

Cache块大小128KB

Cache块大小256KB

Cache块大小2048KB Cache块大小 总的失效次数 32KB 1395 容量失效和冲突失效总次数 1331 强制性失效次数 64

64KB 128KB 256KB 2048KB 733 1 1 1 669 0 0 0 64 1 1 1 从上表得出,随着块大小的增加,总的失效次数不断降低,容量失效和冲突失效的次数也不断降低,强制性的失效次数也不断地降低,且幅度都比较大。 5. 分别采用 LRU 与随机法,在不同的Cache容量、不同的相联度下,运行程序,统计 Cache总失效次数,计算失效率。分析不同的替换算法对 Cache性能的影响;

随机法,cache容量32KB,2路相联

随机法,cache容量64KB,2路相联

随机法,cache容量128KB,2路相联

随机法,cache容量256KB,2路相联

随机法,cache容量32KB,1路相联

随机法,cache容量32KB,4路相联

随机法,cache容量32KB,8路相联

随机法,cache容量32KB,64路相联

替换策略 总的失效次数 LRU 随机法 LRU 32KB 32KB 64KB 2路 2路 2路 1395 1443 840 容量失效和冲突失效总次数 1331 1379 712 64 64 128 强制性失效的次数 Cache容量 相联度

随机法 LRU 随机法 LRU 随机法 LRU 随机法 LRU 随机法 LRU 随机法 LRU 随机法 64KB 128KB 128KB 256KB 256KB 32KB 32KB 32KB 32KB 32KB 32KB 32KB 32KB 2路 2路 2路 2路 2路 1路 1路 4路 4路 8路 8路 64路 64路 894 669 697 558 585 4103 4103 717 803 575 617 542 550 768 413 458 124 219 4071 4071 589 675 319 388 0 62 126 256 239 434 366 32 32 128 128 256 227 542 488 从上表我们可以分析得出,最近最少使用策略(LRU)相对较好,比随机法总的失效次数少,容量失效和冲突失效次数比随机法少,但强制性失效次数比使用随机法替换策略多。

6. 总结Cache失效及其代价。 从Cache容量,Cache块大小,相联度,替换算法等方面能改善cache的性能。随着cache容量的不断增加,总的失效次数减少。容量失效和冲突失效的次数减少,而强制性失效次数则不断地增加。随着相联度的增加,总的失效次数减少,容量失效和冲突失效的次数减少,而强制性的失效次数则增加。随着块大小的增加,总的失效次数减少,容量失效和冲突失效的次数减少,强制性的失效次数也不断地降低。LRU策略比随机法好。 六、总结

通过这次实验,我了解cache容量、大小、相联度、替换算法对cache性能的影响。加深了对课本知识的理解。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top