计算机组成原理课程设计报告(2013/2014第二学期------第19周)指导教师:许建龙张芳班级:12计科2班姓名:学号:计算机组成原理大型实验任务书(计算机12级1、2、3班和实验班)一、实验目的:深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。二、实验说明:要进行这项大型实验,必须清楚地懂得:(1)TEC-2机的功能部件及其连接关系;(2)TEC-2机每个功能部件的功能与具体组成;(3)TEC-2机支持的指令格式;(4)TEC-2机的微指令格式,AM2910芯片的用法;(5)已实现的典型指令的执行实例,即相应的微指令与其执行次序的安排与衔接;(6)要实现的新指令的格式与功能。三、实验内容:选定指令格式、操作码,设计如下指令:(1)把用绝对地址表示的内存单元A中的内容与内存单元B中的内容相加,结果存于内存单元C中。指令格式:D4××,ADDR1,ADDR2,ADDR3四字指令(控存入口100H)功能:[ADDR3]=[ADDR1]+[ADDR2](2)将一通用寄存器内容减去某内存单元内容,结果放在另一寄存器中。指令格式:E0DRSR,ADDR(SR,DR源、目的寄存器各4位)双字指令(控存入口130H)功能:DR=SR-[ADDR](3)转移指令。判断两个通用寄存器内容是否相等,若相等则转移到指定绝对地址,否则顺序执行。指令格式:E5DRSR,ADDR双字指令(控存入口140H)功能:ifDR==SRgotoADDRelse顺序执行。设计:利用指令的CND字段,即IR10~8,令IR10~8=101,即CC=Z则当DR==SR时Z=1,微程序不跳转,接着执行MEMPC(即ADDRPC)而当DR!=SR时Z=0,微程序跳转至A4。四、实验要求:(1)根据内容自行设计相关指令微程序;(务必利用非上机时间设计好微程序)(2)设计测试程序、实验数据并上机调试。(3)设计报告内容:包括1、设计目的2、设计内容3、微程序设计(含指令格式、功能、设计及微程序)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计算机(2)12计算机(3)电信实验班12计算机(1)12计算机(2)12计算机(3)电信实验班备注:1.各班每2人一组,可自由组合但要固定,各班班长将各组组号及学生名单于第一次上机时上报指导教师;2.各班学生须严格按照规定的时间上机,不得无故缺席、迟到早退,指导教师会严格考勤。指导教师:许建龙、张芳2014年6月18日计算机组成原理课程设计实验报告一、目的和要求深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。二、实验环境PC机与TEC-2机模拟程序三、具体内容(一)把用绝对地址表示的内存单元A中的内容与内存单元B中的内容相加,结果存于内存单元C中。指令格式:D4××,ADDR1,ADDR2,ADDR3四字指令(控存入口100H)功能:[ADDR3]=[ADDR1]+[ADDR2]1.微程序:(1)PC→AR,PC+1→PC00000E00A0B55402当前程序计数器内容送地址寄存器,为读取第一个操作数地址做准备;程序计数器指向下一单元地址B55----------------------------------------------------------------------------------------------------------------B000000000000011100000000010100000101101010101010000000010CI3-CI0(B43-B40)为1110,功能为顺序执行;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);(2)MEM→AR00000E0010F00002从主存读取第一个操作数地址,为读取第一个操作数做准备B55-----------------------------------------------------------------------------------------------------------------B000000000000011100000000000010000111100000000000000000010MIO#REQWE#为001,表示从主存储器读入数据(地址);B口地址为0000,BI8-BI6为001,MI5-MI3为000,MI2-MI0为111,SCI为00,表示AM2901不做运算;(3)MEM→Q00000E0000F00000从主存读取第一个操作数B55--------------------------------------------------------------------------------------------------------------------B000000000000011100000000000000000111100000000000000000000MIO#REQWE#(B23)为001,表示从主存储器读入数据(地址);I8-6为000,MI5-3为000,MI2-0为111,表示将主存中读出的数据加上0,再将结果回送到Q寄存器;(4)PC→AR,PC+1→PC00000E00A0B55402当前程序计数器内容送地址寄存器,为读取第二个操作数地址做准备;程序计数器指向下一单元地址B55--------------------------------------------------------------------------------------------------------------------B000000000000011100000000010100000101101010101010000000010(5)MEM→AR00000E0010F00002从主存读取第二个操作数地址,为读取第二个操作数做准备B55--------------------------------------------------------------------------------------------------------------------B000000000000011100000000000010000111100000000000000000010(6)MEM+Q→Q00000E0000E00000从主存读取第二个操作数B55--------------------------------------------------------------------------------------------------------------------B000000000000011100000000000000000111000000000000000000000MIO#REQWE#为001,BI8-6为000,MI5-3为000,MI2-0为110,表示将第二个操作数从主存读出并且加上Q寄存器的内容,再将结果回送到Q寄存器;(7)PC→AR,PC+1→PC00000E00A0B55402当前程序计数器内容送地址寄存器,为读取计算结果存储单元地址做准备;程序计数器指向下一单元地址B55--------------------------------------------------------------------------------------------------------------------B000000000000011100000000010100000101101010101010000000010(8)MEM→AR00000E0010F00002从主存读取结果存储单元地址B55--------------------------------------------------------------------------------------------------------------------B000000000000011100000000000010000111100000000000000000010(9)Q→MEM,CC#=00029030010200010计算结果送结果存储单元B55--------------------------------------------------------------------------------------------------------------------B000101001000000110000000000010000001000000000000000010000MIO#REQWE#为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: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:00020000:00290000:03000000:102009230000:0010;将微程序的16进制代码输入到从900H开始的内存单元中3.查看微码D900090000000E00A0B5540200000E0010F00002090800000E0000F0000000000E00A0B55402091000000E0010F0000200000E0100E00000091800000E00A0B5540200000E0010F00002092000290300102000100000000000000000;查看单元内容是否正确4.加载微码A8000800:MOVR