计算机组成与系统结构课程设计题目:流水线指令设计及页面置换算法在WinDLX软件中的应用学校:专业:学号:姓名:指导教师:吉伟明2011年6月22号1目录1、实验一.....................21.1实验目的.......................21.2实验平台.......................21.3预备知识.......................21.4实验内容和步骤....................21.5实验程序.......................41.6实验报告要求.....................62、实验二.........................92.1实验目的.......................92.2实验平台.......................102.3预备知识.......................102.4实验内容和步骤....................102.5实验程序.......................102.5.1源程序.....................112.5.2程序分析.....................112.5.3结果截图.....................112.6实验报告要求.....................123、实验三.........................133.1实验目的.......................133.2实验平台.......................133.3预备知识.......................133.4实验内容和步骤....................133.5实验程序.......................133.5.1源程序......................143.5.2没有采用定向技术分析...............143.5.3采用定向技术分析.................143.5.4结果截图.....................153.6实验报告要求.....................154、实验四.........................164.1实验目的.......................164.2实验平台......................164.3预备知识.......................164.3.1调页策略.....................164.3.2页面置换算法...................174.4实验内容和步骤....................184.5实验程序.......................194.5.1源程序......................194.5.2程序流程图....................224.5.3结果截图.....................234.6实验报告要求.....................235、实验总结........................236、参考资料.......................232实验一WinDLX模拟器与DLX指令的使用1.1实验目的1.1.1.熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;1.1.2.加深对计算机流水线基本概念的理解;1.1.3.了解DLX基本流水线各段的功能以及基本操作;1.2实验平台WinDLX模拟器1.3预备知识1.3.1.WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。有关WinDLX的详细介绍,见附录(WinDLX教程)。1.3.2.熟悉WinDLX指令集和WinDLX源代码的编写1.4实验内容和步骤用WinDLX模拟器执行求最大公倍数程序gcm.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。注意:gcm.s中调用了input.s中的输入子程序。load程序时,要两个程序一起装入(都select后再点击load)。如:给出两组数6、3和6、1,分别在main+0x8(addr2,r1,r0)、gcm.loop(segr3,r1,r2)和result+0xc(trap0x0)设置断点,采用单步和连续混合执行的方法完成程序,注意中间过程和寄存器的变化情况,然后单击主菜单execute/displaydlx-i/o,观察结果。343211.5实验程序实验源程序见文件gcm.s和input.s结果截图如下:561.6实验报告要求实验报告中应包含:实验目的、实验内容、实验步骤(要有程序清单并以注释的形式对定义的变量和使用的寄存器进行说明)、实验结果等内容。gcm.s;***********WINDLXEx.1:Greatestcommonmeasure*************;***********(c)1991G黱therRaidl*************;***********Modified1992MaziarKhosravipour*************;------------------------------------------------------------------------;Programbeginsatsymbolmain;requiresmoduleINPUT;Readtwopositiveintegernumbersfromstdin,calculatethegcm;andwritetheresulttostdout;------------------------------------------------------------------------.data;***PromptsforinputPrompt1:.asciizFirstNumber:7Prompt2:.asciizSecondNumber:;***Dataforprintf-TrapPrintfFormat:.asciizgcM=%d\n\n.align2PrintfPar:.wordPrintfFormatPrintfValue:.space4.text.globalmainmain:;***ReadtwopositiveintegernumbersintoR1andR2addir1,r0,Prompt1jalInputUnsigned;readuns.-integerintoR1addr2,r1,r0;R2-R1addir1,r0,Prompt2jalInputUnsigned;readuns.-integerintoR1Loop:;***CompareR1andR2seqr3,r1,r2;R1==R2?bnezr3,Resultsgtr3,r1,r2;R1R2?bnezr3,r1Greaterr2Greater:;***subtractr1fromr2subr2,r2,r1jLoopr1Greater:;***subtractr2fromr1subr1,r1,r2jLoopResult:;***Writetheresult(R1)swPrintfValue,r1addir14,r0,PrintfPartrap5;***endtrap0input.s8;***********WINDLXEx.1:Readapositiveintegernumber*************;***********(c)1991G黱therRaidl*************;***********Modified1992MaziarKhosravipour*************;-----------------------------------------------------------------------------;SubprogramcallbysymbolInputUnsigned;expecttheaddressofazero-terminatedpromptstringinR1;returnsthereadvalueinR1;changesthecontentsofregistersR1,R13,R14;-----------------------------------------------------------------------------.data;***DataforRead-TrapReadBuffer:.space80ReadPar:.word0,ReadBuffer,80;***DataforPrintf-TrapPrintfPar:.space4SaveR2:.space4SaveR3:.space4SaveR4:.space4SaveR5:.space4.text.globalInputUnsignedInputUnsigned:;***saveregistercontentsswSaveR2,r2swSaveR3,r3swSaveR4,r4swSaveR5,r5;***PromptswPrintfPar,r1addir14,r0,PrintfPartrap5;***callTrap-3toreadlineaddir14,r0,ReadPar9trap3;***determinevalueaddir2,r0,ReadBufferaddir1,r0,0addir4,r0,10;DecimalsystemLoop:;***readsdigitstoendoflinelbur3,0(r2)seqir5,r3,10;LF-Exitbnezr5,Finishsubir3,r3,48;??multur1,r1,r4;Shiftdecimaladdr1,r1,r3addir2,r2,1;incrementpointerjLoopFinish:;***restoreoldregistercontentslwr2,SaveR2lwr3,SaveR3lwr4,SaveR4lwr5,SaveR5jrr31;Return实验二流水线中的结构相关2.1实验目的:1.近一步熟悉DLX指令集结构及其特点;2.通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。2.2实验平台WinDLX模拟器2.3预备知识2.3.1.进一步熟悉WinDLX指令集和WinDLX源代码的编写102.3.2.复习和掌握教材中相应的内容DLX基本流水线流水线的结构相关与数据相关结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。2.4实验内容和步骤1.用WinDLX模拟器运行程序structure_d.s。2.通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。存在结构相关的程序如下:1.LDF0,0(R2)ADDDF2,F0,F2;-Astallisfound(anexampleofhowtoansweryourquestions)2.ADDIR2,R2,#8ADDIR3,R3,#83.ADDIR3,R3,#8SUBR5,R4,R24.SUBR5,R4,R2BNEZR5,3.记录由结构相关引起的暂停时钟周期数9,计算暂停时钟周期数占总执行周期数的百分比。9/139=6.475%