浙江理工大学计算机组成原理课程设计报告_第1页
浙江理工大学计算机组成原理课程设计报告_第2页
浙江理工大学计算机组成原理课程设计报告_第3页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理课程设计报告(2013/2014 第二学期 第 19 周 )指导教师:许建龙 张芳班级: 12 计科 2 班姓名:学号:一、实验目的:深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一 步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。二、实验说明:要进行这项大型实验,必须清楚地懂得:(1)TEC-2机的功能部件及其连接关系;(2)TEC-2机每个功能部件的功能与具体组成;(3)TEC-2机支持的指令格式;(4)TEC-2机的微指令格式,AM2910芯片的用法;(5)已实现的典型指令的执行实例,即相应的微指令

2、与其执行次序的安排与衔接;(6)要实现的新指令的格式与功能。三、实验内容:选定指令格式、操作码,设计如下指令:(1) 把用绝对地址表示的内存单兀 A中的内容与内存单兀 B中的内容相加,结果存于内存单兀C中。指令格式:D4 r ADDR1 , ADDR2 , ADDR3 四字指令(控存入口100H)功能: ADDR3=ADDR1+ADDR2(2)将一通用寄存器内容减去某内存单元内容,结果放在另一寄存器中。指令格式:E0 DR SR , ADDR ( SR, DR源、目的寄存器各 4位)双字指令(控存入口130H)功能: DR=SR - ADDR(3)转移指令。判断两个通用寄存器内容是否相等,若相

3、等则转移到指定绝对地址,否则顺序执行。指令格式:E5 DR SR , ADDR 双字指令(控存入口 140H )功能: if DR=SR goto ADDR else 顺序执行。设计:利用指令的 CND字段,即IR1o8,令IR1o8=1O1,即CC=Z则当DR=SR时Z=1,微程序不跳转,接着执行MEM PC (即ADDR PC)而当DR!=SR时Z=0,微程序跳转至 A4。四、实验要求:(1) 根据内容自行设计相关指令微程序;(务必利用非上机时间设计好微程序)(2)设计测试程序、实验数据并上机调试。(3)设计报告内容:包括 1、设计目的2、设计内容3、微程序设计(含指令格式、功能、设计及微

4、程序)4、实验数据(测试所设计指令的程序及结果)。(具体要求安最新规范为准)(4) 大型实验报告必须打印成册,各班班长收齐大型实验报告于19周星期五前,交张芳老师办公室。五、上机时间安排:2014计算机组成原理课程设计安排如下:(第十九周)(地点:10-413和414机房)星期9: 00-12 : 001:00-4:0017:30 20:30备注星期三6月25日12计算机(1)12计算机(2) 12计算机(3) 电信实验班星期四6月26日12计算机(1)12计算机(2)12计算机(3) 电信实验班12计算机(1)12计算机(2)12计算机(3) 电信实验班星期五6月27日12计算机(1)12计

5、算机(2) 12计算机(3) 电信实验班12计算机(1)12计算机(2)12计算机(3) 电信实验班备注: 1.各班每 2 人一组 ,可自由组合但要固定 ,各班班长将各组组号及学生名单于第一次上机时上报指导 教师;2. 各班学生须严格按照规定的时间上机,不得无故缺席、迟到早退,指导教师会严格考勤。指导教师: 许建龙、 张芳 2014年 6月 18日计算机组成原理课程设计实验报告一、目的和要求深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识, 进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调 试。二、实验环境PC机与TEC-2

6、机模拟程序三、具体内容(一)把用绝对地址表示的内存单元A中的内容与内存单元B中的内容相加,结果存于内存单元 C中。指令格式:D4 r ADDR1 , ADDR2 , ADDR3四字指令(控存入口 100H)功能: ADDR3=ADDR1+ADDR21. 微程序:(1)PC AR,PC+仔 PC0000 0E00 A0B5 5402当前程序计数器内容送地址寄存器,为读取第一个操作数地址做准备;程序计数器指向下一单元地 址B55 B0| 0000000000001110000000001010 00001011 010101010100 I 00000010CI3-CI0(B43-B40)为111

7、0,功能为顺序执行;SCC(B39-B37)为 000, CC#=1,不发生转移;SST(B34-B32)为000,标志位不发生改变;MIO#(B31)REQ(B27)WE#(B23) 为 101,表示不操作;B 口地址(B15-B12)为 0101, BI8-BI6(B30-B28)为 010, MI5-MI3(B26-B24)为 000, MI2-MI0(B22-B20)为 011 , SCI(B11-B10为01, SA(B7为0, SB(B3为0,表示5号通用寄存器 R5,即PC通过B 口实现加1 , 再通过 B 口写回到 PC ( B+0+Cin B);0000 0000 0000

8、1 1110000000000001000011110000 1 0000 0000 1 00000010(2)MEM t AR00000E00 10F0 0002从主存读取第一个操作数地址,为读取第一个操作数做准备B55 B0B55 B0MIO# REQ WE# 为001,表示从主存储器读入数据(地址);B 口地址为 0000, BI8-BI6 为 001, MI5-MI3 为 000, MI2-MI0 为 111 , SCI为 00,表示 AM2901 不做 运算; MEM t Q0000 0E00 00F0 0000从主存读取第一个操作数B55 B00000 0000 1 0000111

9、0 1 00000000 000000001111000000000000 1 00000000 1MIO #REQ WE#(B23为001,表示从主存储器读入数据(地址);I8-6为000, MI5-3为000, MI2-0为111,表示将主存中读出的数据加上0,再将结果回送到 Q寄存器;(4)PCT AR,PC+T PC0000 0E00 A0B5 5402当前程序计数器内容送地址寄存器,为读取第二个操作数地址做准备;程序计数器指向下一单元地 址B55 B00000 0000 0000111000000000101000001011 I 010101010100I 0000 0010 1(

10、5)MEM t ar00000E0010F00002从主存读取第二个操作数地址,为读取第二个操作数做准备0000 0000 00001110000000000001000011110000 |000000001 00000010 |(6)MEM+Q t Q从主存读取第二个操作数B5500000E0000E00000B000000000 I 00001110000000000000000011100000 I000000001 0000 I0000 IMIO# REQ WE#为001 , BI8-6为000, MI5-3为000, MI2-0为110,表示将第二个操作数从主存读出 并且加上Q寄存

11、器的内容,再将结果回送到Q寄存器;(7)P3 AR,PC+仔 PC0000 0E00 A0B5 5402当前程序计数器内容送地址寄存器,为读取计算结果存储单元地址做准备;程序计数器指向下一单 元地址B55B00000 0000 0000111000000000101000001011 I 0101010101001 00000010 I(8)MEM t ar00000E0010F00002从主存读取结果存储单元地址B55 B00000 0000 000011100000 0000000100001111000000000000 I 00000010 I(9)Qt MEM,CC#=0计算结果送结

12、果存储单元B550029030010200010 B00010 1001 | 0000001100000000000100000010 | 0000 0000 | 0000 | 0001 | 0000 |MIO# REQ WE#为000, BI8-6为001, MI5-3为000, MI2-0为010,表示将 Q寄存器里面的内容存到AR存储的单元地址对应的存储单元;B55-B46 为 0010100100 (4AH),即下地址,CI3-0 为 0011 (3 号命令,条件转移),SCC为 00 ( CC# , 表示转移到4AH中断。2.输入微码>E90009000000:00000000

13、:0E000000:A0B50000:54020000:000009050000:0E000000:10F00000:00020000:00000000:0E00090A0000:00F00000:00000000:00000000:0E000000:A0B5090F0000:54020000:00000000:0E000000:10F00000:000209140000:00000000:0E010000:00E00000:00000000:000009190000:0E000000:A0B50000:54020000:00000000:0E00091E0000:10F00000:00020

14、000:00290000:03000000:102009230000:0010;将微程序的16进制代码输入到从 900H开始的内存单元中3. 查看微码>D900090000000E00A0B5540200000E0010F00002090800000E0000F0000000000E00A0B55402091000000E0010F0000200000E0100E00000091800000E00A0B5540200000E0010F00002092000290300102000100000000000000000;查看单元内容是否正确4. 加载微码>A80008000802080

15、40806MOV R1,900MOV R2,9MOV R3,100LDMC0807RET0808:>G800; 微码在内存中的首地址为 900H ;微程序一共有 9 条微指令 ;微码加载到微控存中的首地址 ;加载微码指令;返回;执行加载微码程序5. 输入程序,测试新指令>A8200820: MOV R0,00230822: MOV A00,R00824: MOV A01,R0将操作数放到寄存器 R0,这里两个操作数都是 23H将 R0 存放的操作数放到 A00 地址单元将 R0 存放的操作数放到 A01 地址单元0826: NOP0827: NOP0828: NOP0829: NO

16、P082A: RET082B:>E826编辑 0826开始到 0829 单元内容,将新指令输入0826 0000:D400 0000:0A00 0000:0A01 0000:0A02>U820查看0820: 2C00 0023MOVR0,00230822: 3400 0A00MOV0A00, R00824: 3400 0A01MOV0A01, R00826: D400DWD4000827: 0A00ADCR0,R00828: 0A01ADCR0,R10829: 0A02ADCR0,R2082A: AC00RET>G820运行6. 运算结果>DA000A000023002

17、30046 0000 00000000 00000000;0A00 单元和 0A01 单元内容为操作数,相加后结果为0046,存在 0A02 单元,正确130H)(二)将一通用寄存器内容减去某内存单元内容,结果放在另一寄存器中。 指令格式: E0 DR SR,ADDR (SR,DR 源、目的寄存器各 4 位)双字指令(控存入口 功能: DR=SR - ADDR1. 微程序(1) PSAR,PC+ PC0000 0E00 A0B5 5402当前程序计数器内容送地址寄存器,为读取操作数地址做准备;程序计数器指向下一单元地址00000000 000011100000 0000101000001011

18、010101010100I 00000010 | MEM t AR0000 0E00 10F0 0002从主存读取第一个操作数地址,为读取操作数做准备B55 B0000000000000111000000000000100001111000000000000I 00000010 |(3) SR-ADDR t dr0029030131D00088寄存器SR存放的操作数减去 ADDR单元内容,并存入 DRB55 B000101001 I 00000011 0000 000100110001110100000000000010001000 IMIO# REQ WE#为 000,BI8-6 为 011

19、, MI5-3 为 001,MI2-0 为 101,SA(B7)=1, SB(B3)=1,表示将寄存 器SR(A 口)存放的操作数减去 ADDR单元内容,并存入 DR (通过B 口);B55-B46 为 0010100100( 4AH),即下地址,CI3-0 为 0011( 3 号命令,条件转移),SCC为 00( CC#, 表示转移到4AH中断。2. 输入微码>E90009000000:00000000:0E000000:A0B50000:54020000:000009050000:0E000000:10F00000:00020000:00290000:0301090A0000:31D

20、00000:0088;将微程序的16进制代码输入到从900H开始的内存单元中3. 查看微码>D90009000000 0E00 A0B509080029 0301 31D0;查看单元内容是否正确4. 加载微码>A8000800: MOV R1,9000802: MOV R2,30804: MOV R3,1300806: LDMC0807: RET0808:>G8005. 输入程序,测试新指令>A8200820: MOV R0,00230822: MOV R3,00270824: MOV A00,R05402 0000 0E00 10F0 00020088 0000 00

21、00 0000 0000;微码在内存中的首地址为900H;微程序一共有9条微指令;微码加载到微控存中的首地址;加载微码指令;返回;执行加载微码程序将减数放到通用寄存器R0将被减数放到通用寄存器 R3 将R0中减数放到 0A00单元0826: NOP0827: NOP0828: RET0829:>E826编辑0826开始到0827单元,将新指令输入,其中SR为R3,DR 为 R208260000:E0230000:0A00>U820查看0820:2C00 0023MOVR0,00230822:2C30 0027MOVR3,00270824:3400 0A00MOV0A00, R008

22、26:E023DWE0230827:0A00ADCR0,R00828:AC00RET>G820运行6.运算结果>RR0=0023R1=090CR2=0004R3=0027 SP=FFFF PC=0820IP=0828R7=0000R8=0000R9=0000 R10=0000 R1仁0000 R12=0000 R13=0000 R14=0000 R15=0000F=000011110820: 2C00 0023 MOV R0,0023;源寄存器为R3,目的寄存器为 R2,被减数为0023,减数为0027,结果为0004存放于R2,正确(三) 转移指令。判断两个通用寄存器内容是否相等

23、,若相等则转移到指定绝对地址,否则顺序执行。 指令格式:E5 DR SR,ADDR 双字指令(控存入口 140H)功能: if DR=SR goto ADDR else 顺序执行。设计:利用指令的 CND字段,即IRs,令 収108=101,即CC=Z则当DR=SR时Z=1,微程序不跳转,接着执行MEM PC (即ADDR PC)而当DR!=SR时Z=0,微程序跳转至 A4。1微程序(1) SR-DR00000E0191900088SR内容减DR内容,若相等,则标志符Z=1,否则Z=0B55 B000000000 1 00001110 1 000000011001000110010000000

24、00000 1 10001000 1SST=01,表示接收运算结果设置标志位状态(2) P3AR,CC#=CND,PC+kPC0029 03E0 A0B5 5402当前程序计数器内容送地址寄存器,条件转移信号CC#=CND即判断Z是否为1,若为1则中断条件成立;程序计数器指向下一单元地址B55 B00010 丨 1001 0000 I 0011 I 1110 丨 0000 I 1010 I 0000 I 1011 I 0101 I 0101 I 0100 I 0000 0010 I SCC为0111,表示CC#设置条件(CND)源来自指令寄存器(即IR10-8为0101, CND=Z);B55

25、-B46为0010100100 (4AH),即下地址,CI3-0为0011 (3号命令,条件转移),表示转移到 4AH 中断。(3) MEM t PC0029030030F0 5000取内存单元 ADDR中的地址送 PCB55 B00010 1001 000000110000 0000001100001111000001010000 1 0000 1 0000 12.输入微码>E9000900 0000:00000000:0E010000:91900000:00880000:002909050000:03E00000:A0B50000:54020000:00290000:0300090A

26、0000:30F00000:50003.查看微码>D90009000000 0E019190 0088 0029 03E0 A0B55402 )T908 0029 0300 30F0 50000000 00000000 0000.).0.P4.加载微码>A8000800: MOV R1,9000802: MOV R2,30804: MOV R3,1400806: LDMC0807: RET0808:>G8005. 输入程序,测试新指令 两数相等时 ;>A8200820: MOV R1,00260822: MOV R2,00260824: NOP0825: NOP0826

27、: MOV R1,00230828: RET0829:>E82408240000:E512 0000:0828>U8200820:2C10 0026MOVR1,00260822:2C20 0026MOVR2,00260824:E512DWE5120825:0828ADCR2,R80826:2C10 0023MOVR1,00230828:AC00RET0829:0011NOP082A: AC00RET082B: 0000NOP082C:0000NOP082D: 0000NOP082E: 0000NOP082F: 0000NOP0830: 0000NOP0831: 0000NOP083

28、2: 0000NOP>G820两数不相等时:>A8200820: MOV R1,00250822: MOV R2,00240824: NOP0825: NOP0826: MOV R1,00230828: RET0829:>E8240824 0000:E512 0000:0828>U8200820:2C10 0025MOVR1,00250822:2C20 0024MOVR2,00240824:E512DWE5120825:0828ADCR2,R80826:2C10 0023MOVR1,00230828:AC00RET>G8206. 运算结果相等时:>RR8=0

29、000R8=0000R0=0000 R1=0026 R2=0026 R3=0011 SP=FFFF PC=0820 IP=0828 R7=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000F=010011110820: 2C10 0026 MOV R1, 0026;相等时转移到 0828 执行 RET ,不执行 MOV R1, 0023;该运算结果正确不相等时:>RR0=0000 R1=0023 R2=0024 R3=0011 SP=FFFF PC=0820 IP=0828 R7=0000R9=0000 R1

30、0=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000F=000011110820: 2C10 0025 MOV R1, 0025;不相等时执行 MOVR1, 0023;该运算结果正确四课程设计答辩题目设计一个新指令E0 X DR,实现功能ADD2 J DR-ADD1设计:指令格式E0 X DRADD1微指令: PSAR,PC+仔PC MEM>AR DR+SQ Q-MEM DR PC AR,PC+仔AR MEAR DF MEM,CC#=0ADD2;ADD1地址送地址寄存器;取ADD1地址;Q存被减数;计算结果回送DR;取ADD2地址送地址寄存器;取ADD2地址;DR内容送主存ADD2单元,转中断二进制微码:(1)0000 0000 00

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论