实验一 流水线中的相关
一、实验目的
1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解;
3. 进一步了解DLX基本流水线各段的功能以及基本操作;
4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停
二、实验平台
WinDLX 模拟器
三、实验内容和步骤
1.用WinDLX模拟器执行下列三个程序:
(分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行
情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。
)
? 求阶乘程序fact.s
? 步进的运行方式:
步进的运行方式是指,每次控制只执行一条语句,快捷键为F7键:
图1-1 单步运行测试
1
? 设置断点的运行方式:
鼠标点击某行,按下“Insert键”,设置断点:
图1-2 设置断点
图1-3 断点设置成功,按F5运行至断点
? 连续的运行方式:
通过按下F5键,可直接运行至断点处;按下F8键,并在对话框内键入跳跃的步数,可以直接跳转指定的步数:
图1-4 设置跳转步数
2
? 求最大公倍数程序gcm.s,观察程序在流水线中的执行情况:
? 求素数程序prim.s,观察CPU 中寄存器和存储器的内容
2. 用WinDLX运行程序structure_d.s
通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。
? 存在资源相关的指令、导致资源相关的部件
? 两条指令同时访问寄存器f4,造成资源相关:
? 两条指令同时访问ALU,造成资源相关:
3
? 由资源相关引起的暂停时钟周期数、暂停时钟周期数占总执行周期数的
百分比
由资源相关引起的暂停时钟周期数:30;总执行周期数:139; 暂停时钟周期数占总执行周期数的百分比:21.6%
3. 在采用、以及不采用定向技术的情况下,分别用 WinDLX 运行程序 data_d.s
(记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;并计算采用定向技术后性能提高的倍数)
? 采用定向技术:(左下图)
? 计算暂停时钟周期数占总执行周期数的百分比:30/128=23.4%
图3-1 采用定向技术
图3-2 不采用定向技术
? 不采用定向技术:(右上图)
? 计算暂停时钟周期数占总执行周期数的百分比:104/202=51.5%
? 采用定向技术后性能提高的倍数:202/128=1.58倍
四、实验总结
? 资源相关对CPU性能的影响、讨论解决资源相关的方法
资源相关使相关指令在流水线上停滞,降低了执行效率;
为解决这一问题,应在编写代码时尽量避免总是使用同一寄存器; 并通过指令调度,使相关的代码执行距离拉开。
4
实验二 循环展开及指令调度
一、实验目的
1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解; 2. 熟悉用指令调度技术来解决流水线中的数据相关的方法; 3. 了解循环展开、指令调度等技术对CPU性能的改进。
二、实验平台
WinDLX模拟器
三、实验内容及步骤
(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期)
.data
.global ONE ONE: .word 1 .text
.global main
main:
lf f1,ONE
cvti2f f7,f1 ;结构相关 nop nop
subf f1,f8,f7 subf f2,f1,f7 subf f13,f2,f7
addf f6,f4,f5 ;store a new value in r1
subf f10,f6,f9 ;use r1 & store new r4 addi r12,r12,#1 subi r11,r11,#8 Finish: trap 0
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机系统结构 实验报告 (截图 分析 总结)在线全文阅读。
相关推荐: