大嘴巴子的英文子翻译子英语怎么说-芳草地国际学校
2023年4月4日发(作者:找在家兼职工作)
计算机系统结构实验报告
一.流水线中的相关
实验目的:
1.熟练掌握WinDLX莫拟器的操作和使用,熟悉DLX旨令集结构及其特点;
2.加深对计算机流水线基本概念的理解;
3.进一步了解DLX基本流水线各段的功能以及基本操作;
4.加深对数据相关、结构相关的理解,了解这两类相关对CPI性能的影响;
5.了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。实验平台:
WinDLX模拟器
实验内容和步骤:
1.用WinDLX模拟器执行下列三个程序:
求阶乘程序fact.s
求最大公倍数程序gcm.s
求素数程序prim.s
分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察
CPI中寄存器和存储器的内容。熟练掌握WinDLX勺操作和使用。
2.用WinDLX!行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相
关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的
百分比;论述资源相关对CPI性能的影响,讨论解决资源相关的方法。
3.在不采用定向技术的情况下(去掉Configuration菜单中EnableForwarding选项前的勾选符),用WinDLX!
行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟凿壁偷光的含义 周期数
占总执行周期数的百分比。
在采用定向技术的情况下(勾选EnableForwarding),用WinDLX再次运行程序data_d.&重
复上述3中的工作,并计算采用定向技术后性能提高的倍数。
1.求阶乘程序
用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准
输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。实验结果:
在载入fact.s和input.s之后,不设置任何断点运行。
a不采用重新定向技术,我们得到的结果
Total:
Cycle($]executed.
IDexecutedbp145lnshuctiori($)-
2Instruction(s)currentlyinPipeline.
叮叮小文库
欢迎有需要的朋友下载!!2
Stalls:
RAW泅Is:53(22.46^ofallCycles)WAWstalls:0(0.00^ofallC^cle^)
Stiucturalstalk0(OLDO^ofallCycles]
Controlstalls:25(1(159%ofdlC^desj
Trapstals12[5L08^ofallCycles)Total:90Stall(s)(3014^ofallCycles)
b.采用定向技术,我们得到的结果:
Total:
215Cycle(s)executed
IDewecutedby145lnebuclion(*).
2Instruction(s)current^inPipeline.
Stalls:
RAWstalk1?(/.91cfallCycles),thereof:
LDstalls:3(17.65XofRAWstalls]Branch/Jump3(17.65^ofRAWstdh]Floatingpointstalls:11
(64.70當ofRAW
WAWstalls:0(0.00^ofallCycles)
Slructuralwtallw:0[^ofallCycles)
Controlstalls:25(11.63^otallCycled
Trapstalls:12(5.58^ofalCycles]
Total:54SUll(s)[25.12^ofallQdet)
从上面的数据我们可以看出定向的作用:
在定向技术存在的情况下Statistics窗口中的各种统计数字:总的周期数(215)和暂停数
(17R爱情语录经典短句唯美 AW,25Control,12Trap;54Total)
在定向技术不存在时候,控制暂停和Trap暂停仍然是同样的值,而RAW暂停从17
变成了53,总的模拟周期数增加到23春风拂槛露华浓1v1 6。所以定向技术带来的加速比:
236/215=1.098
DLXforwarded比DLXnotforwarded快9.8%。
2.数据相关
先给出一个存在数据相关的程序:
LHIR2,(A>>16)&0xFFFF
ADDUIR2,R2,A&0xFFFF
LHIR3,(B>>16)&0xFFFF
ADDUIR3,R3,B&0xFFFF
loop:
LWR1,0(R2)
ADDR1,R1,R3
SW0(R2),R1
LWR5,0(R1)
ADDIR5,R5,#10
A江南水乡风景图片 DDIR2,R2,#4
SUBR4,R3,R2
BNEZR4,loop
TRAP#0
A:.word0,4,8,12,16,20,24,28,32,36
B:.word9,8,7,6,5,4,3,2,1,0
没有采用定向技术时运行该程序:得到
叮叮小文库
欢迎有需要的朋友下载!!3
rotal:
202Cicle($)executed.
IDexecLJledbyEI5Instruction(s).
2lnstruction(s]currentlyinPipeline.
StalIs:
RAW紡瞳104(514眈afallC^des]
WAWatolls:0(0..00^ofallCycles]
Structural躺11$:0(^ofallCycles)
Contirolstalls:9(44E蛊ofalCycles)
Trapstak:3(1.48%ofallCycles]
To怕I:116Stall(s)(57.42^ofoilCycles〕
程序执行了202个周期,10个数据相关引起的时钟周期RAWstall为104个。
暂停时钟周期数占总执行周期数的百分比=51.48%
采用定向技术时运行该程序:得到
Total:
12SCycle[$)executed
IDexecutedby85Iri2hruction(s).
2InskuctionbicuirentlyinPipeline.
Stalls:
RAWst^k30(23.443:dalCycles),thereof
LD站憑:20(66.67^ofRAW期lg)BranchZJumpstalls:1D(33.33^ofRAW奴all$]
Floatingpointstall:0(0.00^ofRAWsials)
WAWslab:0(000^程颢和程颐 dallCycles)
Structuralstalls0(000^ofalCycles)
Cortralstalls:9(/.03^ofcillCycles)
Tiapstalls-3(2.34^ofallC醉里挑灯看剑妾舞阑珊 ^les]
Total:42Stal|s)(J2.81^ofalCycles)
程序执行了128个周期,共有6个数据相关引起的时钟周期RAWstall为30个。
暂停时钟周期数占总执行周期数的百分比=23.44%
可见通过定向技术,减少了数据相关,缩短了程序的执行周期,整个性能为原来的
3.结构相关下面这段程序存在结构相关
ADDIR5,R5,1
SUBIR4,R4,1
ANDR3,R3,R3
XORR7,R7,R7
ADDIR8,R8,1
ADDIR9,R9,1
MULTR1,R5,R4
MULTR2,R3,R7
执行之后得到的clockcycleprograme
IrBlrucliare/1阴:-旧卜」日丨\"II一\"tI」巳厂“I」t舟卜电I\"I*t*r彳r彳I彳I」I」addi石托血1|IF|ID~BErrMEMT~^B~|
I
subirlAjOH:|_IF|ID—EX*MEM|WP
andr3j3j3:|IF|ID|inlV|MEM|
■
norr7j7j?:|1卜|ID—L」”s|zi
li\'
addir油血1:|IF|ID|iiw|MEM|VJE|
addi占油血1:[IF|ID|in段|MEM|卫鸟
!
rrdtrlj5j4►|_『L血」imulE凶1J|MEM]W厂
rrdtr2j3j?:[IF[ID[_|imu丸1][MEM[V/E
1.57倍。
叮叮小文库
欢迎有需要的朋友下载!!4
Statistics:
total:
20Cycle中国诗歌网登录平台 ($)eKecuted.
IDexecuted14Instructior(s).
5ln^truction($)currentlvinPipeline.
Stalls:
RAWstalls:0(0.00^ofallCycles],thereof:
LDshlls:0(0.00^dRAWstalls)
BranchAlumpstalls:0(000^ofRAW咖ll$]
Floatingpointstalls:0(0L0DSofRAWstalls)
WAWstalls0[0.00S;dallCycles)
Structural旳胚:4(20.00^ofallCycles)
Controlstalk:Q(000^ofalCycles)
Tr^pstalls:0(0.00^ofallCycles)
I\'otal:4StaKsJ[20.00^ofallCycles)
可见1个结构相关引起了4个stall,占总共20个CYCLE的20%
为了避免结构相关,可以考虑采用资源重复的方法,比如,在流水线机器中设置相互独
立的指令存储器和数据存储器,也可以将CACHE分割成指令CACHE和数据CACHE。
二.循环展开及指令调度
实验目的:
1.加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;
2.熟悉用指令调度技术来解决流水线中的数据相关的方法;
3.了解循环展开、指令调度等技术对CPI性能的改进。
实验平台:
WinDLX模拟器
叮叮小文库
欢迎有需要的朋友下载!!5
实验内容和步骤:
1•用指令调度技术解决流水线中的结构相关与数据相关
(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法、乘法、除法部件各有2个,延迟时
间都是3个时钟周期)
(2)通过Configuration菜单中的Floatingpointstages\'选项,把加法、乘法、除法部件的个数设置为2个,把延迟
都设置为3个时钟周期;
(3)用如\"DLX运行程序。记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期
数;
(4)采用指令调度技术对程序进行指令调度,消除相关;
(5运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总
时钟周期数;
(6)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的意义。
2.用循环展开、寄存器换名以及指令调度提高性能
(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环;
(2运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;
(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。
然后对新的循环体进行寄存器换名和指令调度;
(4运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;
(5)根据记录结果,比较循环展开、指令调度前后的性能。
3)存在相关的程序
1.指令调度:
首先,通过Configuration菜单中的白oatingpointstages\"选项,把除法单元数设置为3,把
加法、乘法、除法的延迟设置为3个时钟周期。
给出调度前的程序sch_bef:
.data
.globalONE
ONE:.word1
.text
.globalmain
main:
lff1,ONE;turndivfintoamove
cvti2ff7,f1;bystoringinf71in
nop;floating-pointformat
divff1,f8,f7;moveY=(f8)intof1
divff2,f9,f7;moveZ=(f9)intof2
addff3,f1,f2
divff10,f3,f7;movef3intoX=(f10)
divff4,f11,f7;moveB=(f11)intof4
divff5,f12,f7;moveC=苏轼江城子前瞻马耳九仙山 (f12)intof5
multff6,f4,f5
divff13,f6,f7;movef6intoA=(f13)
Finish:
叮叮小文库
欢迎有需要的朋友下载!!6
trap0
运行之后可以得到结果:
Total:
27C}icle(s)executed.
IDexecutedby12lnshuction($].
_lnstfuction|[x]currentlyinPipeline.
Stalls:
RAWstalls:9(33.33鬼ofallCycles^thereof:
LD治陆1(111UofRAWstalls)
BranchAlumpstalls:0[0.00龛ofRAWstals)
Floatirgpointstalls:8[1QQlOOSfofRAWstals)
WAWstalls:0(0.003:ofallCvcIe^J
Structural如Ils:0(0.00^ofallCycled
Conlrdstalls:0(0.00XofdlCydes)
Trapdale1(25L92%ofdl匚yck制
Total:l6Stall(s)(59.26^ofallCycles]
调度之后的程序sch_aft:
.data
.globalONE
ONE:.word1
.text
.globalmain
main:
lff1,ONE;turndivfintoamove
cvti2ff7,f1;bystoringinf71in
nop;floating-pointformat
divff1,f8,f7;moveY=(f8)intof1
divff2,f9,f7;moveZ=(f9)intof2
divff4,f11,f7;moveB=(f11)intof4
divff5,f12,f7;moveC=(f12)intof5
addff3,f1,f2
multff6,f4,f5
divff10,f3,f7;movef3intoX=(f10)
divff13,f6,f7;movef6intoA=(f13)
Finish:
trap0
运行之后得到:
\'lota丄
21CVCIB(S)executed.
IDexecutedby12Instruction($).
2Instruction(s)currentlyinPipeline.
StalIs:
RAW献alb:3(14.2QKofalCycles),lhereaf:LDstalk1(3333^ofRAWstalk]Branch/Jumpstak:0(0.00%ofRAWsials]
Floatingpointsldk2旧6.67WofRAWstalls)
WAWstalls:0(000^nFallCycles]
Stiucturalstalls:0(0.30SofallCycles]
Controlstalls:Cl(0.00^ofallCycles]
Trapstab:E(29157Xo山有木兮歌词 fdlCycled
Total:9Stdb)(%ofallCycles)
叮叮小文库
欢迎有需要的朋友下载!!7
可以看出经过调度之后
运行周期从27减少到21,而且减少了相关。
2.循环展开:
循环展开前的程序:
LHIR2,(A>>16)&OxFFFF
ADDUIR2,R2,A&0xFFFF
LHIR3,(B>>16)&0xFFFF
ADDUIR3,R3,B&0xFFFF
ADDUR4,R0,R3
NOP
loop:
SUBIR4,R4,#8
SUBR5,R4,R2
BNEZR5,loop
TRAP#0
A:.double1,2,3,4
B:.double1,2,3,4
运行结果:
Statistics一|□|
Total:
30Cycled]^^ecuted.
IDexecutedbvI9ln$truction($).
2Instruction(s)currentlynnPipeline.
Hardwareconfiguration:
Memorysize:32768BytesfaddEX-Stages:1“requiredCycles:2fmulEX-Shges:LrequiredC>cle$:5fdivEX-Stagec:1,
requiredCycles:19Forwardingenabled.
Stalls:
RAWsC4(1333需ofallCycles),thereof:LDstalls:0(0.00^ofRAWstalls)Branch/Jumpstalls:4(100.00%ofRAWttek)
Floatingpointstals:0(0.00^ofRAWstall)
WAWstalls0[DO號of新唐书 allCycles)Strudurdstalls:L(000KofallCycled]Controltta*3(10.00^ofalCycles)Trapstalls;3
(1OOOXofallCycles)Total:10Stall(s)(33.33^ofallCycles)
循环展开后的程序:
R2,(A>>16)&OxFFFF
ADDUIR2,R2,A&OxFFFF
LHIR3,(B>>16)&0xFFFF
ADDUIR3,R3,B&0xFFFF
ADDUR4,R0,R3
SUBIR4,R4,#8
SUBIR4,R4,#8
LHI
叮叮小文库
欢迎有需要的朋友下载!!8
SUBIR4,R4,#8
SUBIR4,R4,#8
TRAP#0
A:.double1,2,3,4
B:.double1,2,3,4
运行结果:
HStatistics_|匸
Total:
14Cycle($)executed.
IDexecuteclby10lnstructior(s)?In^buctiont^]currentlyinPipeline.
Hardwareconiguration:hdemofysize:32768B^teshddEX-Stoges:1,requiredCycles:2fmulEX-Stages:requiredCycles:5
fdivEX-Stages:1,requiredCycles:13Fofwadingerabled.
Stells::
RAW鈕Ik:0(0.0u?iofallCycles),thereof:LDstalls:0(0.00S;ofRAWstalls)Branch/Jumpstalk:0(000^ofRAWs^lls)
Floatingpointstalls:0(^ofRAWstalls)WAW血k:0(0.00S;ofallCycles]
Structuralstalk0(000^ofdlCycles]Controlstalls:0(0,00站ofallCycles)Ttapstalk3[21.43^ofallCycles)Total:3Stalls)
(21.43黑ofallCycles)
可以看出经过循环展开之后运行周期从30减少到14,而且减少了相关。
三.实验总结:
通过本实验,基本掌握了WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点,对减少各种相关、提高流水线速
度的方法和技术有了更深的认识,对于体系结构这门课程的学习和后面的实验还是很有帮助的。
更多推荐
stalls是什么意思lls在线翻译读音例句
发布评论