组成原理课程2.ppt
计算机组成原理实验办公室:C区110实验中心组成原理课题组1授课教师及实验课地点介绍l张政凯l刘善射l迟宗正l办公室电话:87571629或87571561l实验课地点:C区108(硬件实验室)2为什么要做组成原理实验?l在学习过计算机组成之后,需要通过实验的实践部分了解计算机的各硬件部分的工作原理,诸如:运算器的工作原理,存储器的工作原理,串口等外设的工作原理,CPU的两种控制逻辑(硬布线控制逻辑和微程序控制逻辑)l通过实验实现:l加深对理论的理解l提高实践的能力3教学目标l通过实验更加深刻的理解计算机的组成 l加深对计算机各个部件功能的认识以及各个部件之间的协同关系l掌握运算器.控制器的工作原理,掌握微程序控制逻辑下的控制器并了解基于硬布线逻辑的控制器4课程主要内容l清华实验箱l基础汇编语言程序设计l脱机运算器实验l存储器扩展实验l中断实验l复旦实验箱l微程序控制器部件教学实验共计5个实验:(分两个实验箱完成)5课程主要内容安排原因l1 采用清华实验箱做简单部件实验,是因为各部件的开关和信号灯十分完善能够清楚的观察到实验的结果;但对于微程序控制器实验的设计存在一定的不可操作性,对大家理解微程序控制下的控制器工作不够明确。l2 采用复旦实验箱完成微程序控制器部件实验,能够充分利用实验箱上的键盘和微型打印机得到所见即所得的打印结果,并且能够细致观察到微程序下每条微指令的控制信号,能够将运算器工作更加细化。6课程的评分l本课程共36学时,1.5学分,共9个单元。l期末成绩由平时成绩累加l没有考试l实验报告l实验结果检查l课堂表现、考勤、遵守实验室纪律情况7教材与参考书l教材为自编讲义l讲稿(PPT文件)并附带各实验内容l课程网站:ftp:/210.30.96.2l参考书l计算机组成与设计(第二版)实验指导(针对清华实验箱)l计算机组成原理及系统结构实验指导书(针对复旦实验箱)l大家上学期学过的计算机组成原理教材 8对大家的期望和要求l实验前要作充分的准备l阅读相关的文献资料,找出完成实验题目的方法l强调自学自学的能力l实验中要勤于动手动脑l强调独立解决问题独立解决问题的能力l实验后要作深入的总结l强调写作写作的能力9特别强调的一些规则1 实验报告如有抄袭现象,一经发现取消当次实验成绩,两次及两次以上抄袭者取消课程成绩。2 禁止在实验室内进食,饮用水必须放在教师指定位置,严禁将水带至实验台及饮用,违者取消课程成绩并处纪律处分。3 禁止穿拖鞋进入实验室,禁止在实验课上上网聊天及游戏,违者取消课程成绩并处纪律处分。4 实验结束后,必须将实验箱及桌椅复位,告知教师检查后方可离开,否则取消全组当次实验课堂成绩。10特别强调的一些规则(续)5 迟到30分钟及早退将被视为旷课处理,病事假持假条请假,旷课3次取消课程成绩。6 在实验过程中必须积极配合教师对实验结果的检查。7 认真阅读实验室墙上的各项相关规定,了解实验室安全知识。8 未经教师授权或同意,不得动用实验平台内外一切设备(尤其是电源),违者取消课程成绩并处纪律处分。9 实验课程期间在实验室内保持肃静!11实验箱的介绍l复旦大学实验箱l清华实验箱TEC-XP12 实验一 微程序控制的计算机实验 存储器扩展实验13 实验目的实验目的l学习和掌握微程序控制计算机的工作原理及实现方法;l初步学会程序的流程图画法及程序的模块化设计、调试方法。l学会建立文本文件、表格、图形文件。14 实验要求 l1)建立指令集文件(*.DEF 指令系统)l2)建立微程序文件(*.M19)l3)编写二位乘法程序,通过调试观察汇编指令在微程序控制计算机中的实施过程,学会程序设计中的流程图,模块化设计及调试方法。15冯诺依曼计算机设计思想 l美国科学家冯诺依曼于1946年提出了“存储程序”的设计思想,其后开发的计算机大多采用这种方式,此类计算机被称为冯诺依曼计算机。l存储程序概念:为了告诉计算机做什么事,以及按怎样的顺序去做,这就需要编制程序,使计算机能按人们所规定的顺序自动地工作。通常将程序以代码的形式事先存入计算机中,使计算机在工作时能自动高速地逐一取出并加以执行16冯诺依曼计算机构成 l计算机硬件基本构成计算机硬件基本构成l按照冯诺依曼计算机的设计思想,计算机硬件基本上由运算器、控制器、存储器、运算器、控制器、存储器、输入设备和输出设备五大部件构成。输入设备和输出设备五大部件构成。通常我们把组成计算机的这些功能部件称为硬件。178位单累加器计算机基本结构 18实验原理图 19控制信号lS2S2、S1S1、S0S0:ALUALU功能选择功能选择l S2S2 S1 S1S0S0ALUALU功能功能l 0 0 0 F=A+B0 0 0 F=A+Bl 0 0 1 F=A-B 0 0 1 F=A-Bl 0 1 0 F=A 0 1 0 F=A(带加法(带加法进位)进位)l 0 1 1 F=B0 1 1 F=Bl 1 0 0 F=001111110 1 0 0 F=001111110l 1 0 1 F=A 1 0 1 F=A(带减法(带减法借位)借位)l 1 1 1 F=0000000001 1 1 F=000000000lCINCIN:进位位进位位lX1X1、X0X0:累加器累加器A A功能选择功能选择 X1 X0 X1 X0 累加器累加器A A功能功能l 1 1 1 1 累加器累加器A A允许接允许接数数l 0 1 0 1 累加器累加器A A右移操右移操作作l 1 0 1 0 累加器累加器A A左移操左移操作作lCGCG:暂存器接数允许。暂存器接数允许。lCP CP 进位位进位位CYCY接数允许。接数允许。lWRE WRE 寄存器写入允许。寄存器写入允许。20控制信号lOBOB:ALUALU输出允许输出允许lGIGI:指令寄存器指令寄存器IRIR接数允许。接数允许。lGA1GA1:低位地址寄存器接数允许。低位地址寄存器接数允许。lGA2GA2:高位地址寄存器接数允许。高位地址寄存器接数允许。lPINCPINC:PCPC加加1 1信号。信号。lPL2PL2、1 1、0 0:PCPC接数控制,接数控制,PL2 PL1 PL0PL2 PL1 PL0 操作操作l 0 00 0 1 CY 1 CYl 0 1 0 1 0 0 必转必转l 0 1 1 not KRIX0 1 1 not KRIXl 1 0 0 not PRIX 1 0 0 not PRIX l 1 0 1 1 0 1 禁用禁用 l 1 X X 1 X X 备用备用21控制信号lMXA1:地址多路开关选择l 0:PC送至地址总线ABl 1:ADR送至地址总线ABlCWR:写存储器lCRD:读存储器lMPLD:MPC接数允许。l图中的寄存器选择信号(图中的寄存器选择信号(RCRC、RBRB、RARA)应直接)应直接来自指令码(来自指令码(I2I2、I1I1、I0I0)。以上的各个微操)。以上的各个微操作信号,除了已标明的,可统一取为作信号,除了已标明的,可统一取为0 0有效。有效。22实验原理微程序定义实验原理微程序定义 l微程序:微程序:每条指令实际上分解成一系列微操作序列。因而指令的执行过程实际上就是相当于该条指令的微操作序列的执行过程。如果把统一节拍中要执行的微操作作为一条“微指令”,则一条机器指令可看做是由若干条微指令组成的。与一条机器指令相对应的微指令组成的微指令序列就叫做“微程序微程序”。23实验原理微命令和微操作定义实验原理微命令和微操作定义 l微命令和微操作:微命令和微操作:从微操作的角度出发可将计算机分成两部分:控制部分和执行部分。例如控制器即控制部分,而运算器、存储器及输入输出设备等相对于控制器而言即执行部分。微命令微命令即由控制部分向执行部分发出的最基本的控制信号。微操作微操作即是上述执行部分受到微命令后所执行的最基本的操作。可以看出,微命令与微操作实质上是同一个信号:从控制部分角度看它是微命令;从执行部分看它是微操作。可以称微命令是微操作的控制信号;而微操作是微命令控制的操作过程。24实验原理实验原理微指令定义微指令定义 微指令:微指令:微指令就是若干微命令的组合常将要在同一节拍内执行的微操作所对应的微命令组合在一条微指令中。25实验原理实验原理-指令系统指令系统l汇编码汇编码 操作操作 指令码指令码lMOV A,Ri (A)Ri 00000iiilMOV Ri,A (Ri)A 00001iiilADD A,Ri (A)+(Ri)A 00100iiilSUB A,Ri (A)-(Ri)A 00101iiilMOV A,data8 data8 A 00110000 ddddddddlMOV Ri,data8 data8 Ri 00111iii ddddddddlLDA addr (addr)A 01000000 aaaaaaaa aaaaaaaalSTA addr (A)addr 01001000 aaaaaaaa aaaaaaaalJC addr if CY=1 then addr PC else (PC)+3PCl 01010000 aaaaaaaa aaaaaaaalJMP addr addr PC 01011000 aaaaaaaa aaaaaaaalJKB addr if KRIX=0 then addrPC else (PC)+3PCl 01100000 aaaaaaaa aaaaaaaalJPB addr if PRIX=0 then addrPC else (PC)+3PCl 01101000 aaaaaaaa aaaaaaaa26实验原理实验原理-指令流程指令流程lMOV A,Ri T0:(PC)AB,(,(M)IR,(,(PC)+1 PC,(,(A)ACTl T1:(Ri)ALU DB AlMOV A,#data8 T0:(PC)AB,(,(M)IR,(,(PC)+1 PC,(,(A)ACTl T1:(PC)AB,(,(M)DB A,(,(PC)+1 PClLDA addr:T0:(PC)AB,(,(M)IR,(,(PC)+1 PC,(,(A)ACTl T1:(PC)AB,(,(M)ADRH,(,(PC)+1 PCl T2:(PC)AB,(,(M)ADRL,(,(PC)+1 PCl T3:(ADR)AB(M)A27实验原理实验原理-微指令微指令lMOV A,Ri 3724E007 l 00257004lMOV Ri,A 2120E007 l 00257004lADD A,Ri 0704E007 l 00257004lSUB A,Ri 1704E007 l 00257004lMOV A,data8 0725F005 l 00257004lMOV Ri,data8 0121F005 00257004lLDA addr 0125D005 l 0125B005 l 0725E085l 00257004 28实验原理实验原理-微指令微指令STA addr 0125D005 0125B005 2124E083 00257004JC addr 0125D005 0125B005 0124E287 00257004JMP addr 0125D005 0125B005 0124E487 00257004JKB addr 0125D005 0125B005 0124E687 00257004JPB addr 0125D005 0125B005 0124E887 0025700429实验原理实验原理-微地址实现方法微地址实现方法l本实验计算机控存为K,地址线宽度30实验原理实验原理-微地址实现方法实例微地址实现方法实例l 汇编码汇编码 指令码指令码 微地址微地址lMOV A,Ri 00000iii 00000111lMOV A,data8 00110000 00110111lJKB addr 01000000 01000111l从上面各例可以看出指令码的高位决定从上面各例可以看出指令码的高位决定微程序的入口地址微程序的入口地址31打印机工作原理l打印机工作原理图打印机工作原理图PRIX打印完成打印启动打印机 数据缓冲器DB70打印机SRQIOW图2-5 打印机等效框图初始状态,PRIX为1,允许打印。在需要输出数据打印时,IOW发一个写脉冲(低有效),把数据总线低8位(DB70)上的数据打入打印机数据缓冲器中,并启动打印机从缓冲器取出数据开始打印,同时使PRIX=0(这时不允许再向打印机输出数据)。打印完成后,打印机状态PRIX置1,CPU可再次向打印机输出数据。32打印机工作原理字轮l 打印机共有三个字轮三个字轮,右边两个字轮为字符和符号,左边一个字符为数字。下表给出这三个字符的字符编码:ll 编码 左 中 右l0 0 0 G l1 1 1 K X l2 2 2 l 3 3 3 P l4 4 4 D *l5 5 5%Sl6 6 6 M Tl7 7 7 Ml8 8 8 +Cl9 9 9 =l A A l B B ,R l C C 。%l D D#A E33打印机工作原理l打印机开始位置在最右边。打印时,从右到左,打印机开始位置在最右边。打印时,从右到左,先打印一个右边字轮的字符,第二个中轮的字先打印一个右边字轮的字符,第二个中轮的字符,以后打印的均为左轮的字符。符,以后打印的均为左轮的字符。打印的编码见上表。如输出的数据的高如输出的数据的高4 4位不等于位不等于0 0,则在,则在打印完低打印完低4 4位的数字后自动回车换行(这也是使位的数字后自动回车换行(这也是使打印机回车的唯一方法)。所以要输出某数字打印机回车的唯一方法)。所以要输出某数字后回车换行,可以输出此数字加后回车换行,可以输出此数字加10H10H。例如要输。例如要输出出“3”3”后回车,只要输出后回车,只要输出“13H”13H”即可。对于即可。对于只需回车换行,不打印数据时,可输出只需回车换行,不打印数据时,可输出1AH1AH。l注:打印机打印机具体用法可参看程序实例34实验操作步骤(一)建立汇编指令集建立汇编指令集l打开自己编做汇编自己编做汇编v1.0v1.0l文件文件菜单中选择新建,弹出如下图所示对话框,选择汇编指令集,点OK。35实验步骤l生成空白def文件,输入指令定义格式 36l在操作操作菜单中选择改变参数,改变参数,可以定义2类指令系统,每类指令都可以选l择寄存器的长度和类型输入完后要对输入的指令集格式进行检查载入(单累加器,多累加器),对操作选项设定和更改。设定完毕后可进行检查载入。实验步骤37实验步骤l注:注:在指令集文件中的最后需要加上-ENDDEFl检查载入成功后显示下图信息,如有错误可按错误提示修改。38实验操作步骤(二)l 编写汇编程序编写汇编程序l在文件文件菜单中选择新建,弹出如下图所示对话框,选择汇编程序汇编程序,点OK,将生成空白ASM文件,输入汇编程序:39实验步骤40汇编程序实例l ORG 0 伪指令用来指出文件在内存中存放的起始位置lSTRT:l JKB STRTl LDA 8001H l MOV R7,A 输入第一操作数给R7 lL1:l JKBL1 l LDA 8001Hl MOV R6,A 输入第二操作数给R6 l MOV A,#0l STA8002H lL2:l JPBL2 打印+l MOV A,#0AHl STA8002H lL3:l JPBL3 打印空格l MOV A,#10Hl ADD A,R7 l STA8002HlL4:l JPBL4 打印第一操作数后回车换行l l MOV A,#9l STA 8002H41汇编程序实例lL5:l JPBL5 打印=l MOV A,#0AHl STA8002HlL6:l JPBL6 打印空格l MOV A,#10Hl ADD A,R6l STA8002HlL7:l JPBL7 打印第二操作数后回车换行l MOV A,#3l STA8002HlL8:l JPBL8 打印菱型符号 l MOVA,#0AHl STA8002HlL9:JPBL9 打印空格l MOVA,R6l ADDA,R7l MOVR0,#10l SUBA,R0 将两数相加,再进行减10处理l JCOVER 判断结果是否大于10,是跳转到OVER,否顺序执行l STA8002H42汇编程序实例lL10:l JPBL10 打印个位l MOVA,#11HlOUT:l STA8002HlL11:l JPBL11 打印十位l JMPSTRTlOVER:l ADDA,R0l MOVR1,#10Hl ADDA,R1l JMPOUT 恢复运算结果,跳转到打印个位l注:第一列为标号地址,43实验步骤下载调试下载调试l 下载调试下载调试l点击桌面impactimpact来下载cpu的目标程序bit文件。双击impact出现如下对话框,选择Configure DevicesConfigure Devices,点击下一步 44l选Slave Serial Mode,点击完成后选择CPU8BV.bit文件。实验步骤45l右击生成的cpu图标,执行Programming操作,进行下载。实验步骤46l下载成功后提示Programming Succeeded,下载完成。实验步骤47lFPGA经下载烧录后成为了一颗cpu,使用通用调试器(Unidebugger)把计算机与实验仪连接,下载微指令集和汇编好的目标程序,进行联机调试。l双击Unidebugger.exe程序,即启动通用调试器。程序启动界面如下:实验步骤48l在这个界面下有如下三个窗口:实验步骤数据区数据区跟踪数据区跟踪数据区编辑区编辑区49实验步骤l在该界面下首先点击系统,系统,选择实验方式:实验方式:l然后会出现如下的系统设置对话框:50l对本实验,实验方式为8位微程序方式,晶振频率为2MHz。总线方式为8位。按下确定确定后计算机与实验仪进行连接,读取微程序存储器以及RAM中的数据在数据区显示。l按每条汇编指令汇编指令所对应的微地址微地址,将微程序微程序输入到控存控存中:实验步骤MOV A,Ri 0007H 3724E007 0008H 00257004MOV Ri,A 000FH 2120E007 0010H 00257004ADD A,Ri 0027H 0704E007 0028H 00257004SUB A,Ri 002FH 1704E007 0030H 00257004MOV A,data8 0037H 0725F005 0038H 00257004MOV Ri,data8 003FH 0121F005 0040H 00257004LDA addr 0047H 0125D005 0048H 0125B005 0049H 0725E085 004AH 0025700451lSTA addr 004FH 0125D005l 0050H 0125B005l 0051H 2124E083l 0052H 00257004lJC addr 0057H 0125D005l 0058H 0125B005l 0059H 0124E287l 005AH 00257004lJMP addr 005FH 0125D005 l 0060H 0125B005l 0061H 0124E487l 0062H 00257004lJKB addr 0067H 0125D005l 0068H 0125B005l 0069H 0124E687 l 006AH 00257004lJPB addr 006FH 0125D005l 0070H 0125B005l 0071H 0124E887l 0072H 00257004实验步骤52l本实验是微程序控制计算机实验,要在MicroMicro窗口中直接输入设计的微程序。首次使用时,在微程序窗口中按照地址地址分配输入微微程序程序代码。l微程序全部输入完后点文件,文件,选保存微程序,保存微程序,取一个文件名文件名将文件保存,以后每次实验都要用到该文件。实验步骤53实验步骤54实验步骤 在保存时,应先输入起始地址(一般为0)和结束地址(稍大于微程序的最后一条微指令的地址,保证能够将所要保存的数据都包括在内)。以后再次上机时,可用File菜单读出该微程序并下载至实验仪中。注意注意:微程序和汇编程序重新下载后都需要对该窗口刷新,方法是将鼠标放置到该区域,右键选刷新数据刷新数据55实验步骤如何观察执行过程56实验步骤57实验步骤58l 实验步骤59实验步骤60实验步骤61实验步骤62实验步骤63实验步骤64实验步骤65实验步骤66实验步骤67