300 likes | 462 Views
计算机组成原理课程设计. 实验四 简单模型机实验. 实验 7 简单模型机实验. 一、实验目的 二、实验原理 三、实验内容及要求 四、实验步骤. 一、实验目的. 掌握微程序控制器的结构和工作原理。 掌握 手动装入与修改程序 的方法。 掌握 联机装入与修改程序 的方法。 掌握整机概念和 程序的执行 过程。. 二、实验原理. 1 、简单模型机的系统结构 2 、简单模型机的指令系统 3 、简单模型机的微程序流程图 4 、简单模型机的微指令地址分配 5 、简单模型机的微代码 6 、微代码装入方法 7 、程序的机器码装入方法 8 、启动程序执行.
E N D
计算机组成原理课程设计 实验四 简单模型机实验
实验7 简单模型机实验 • 一、实验目的 • 二、实验原理 • 三、实验内容及要求 • 四、实验步骤
一、实验目的 • 掌握微程序控制器的结构和工作原理。 • 掌握手动装入与修改程序的方法。 • 掌握联机装入与修改程序的方法。 • 掌握整机概念和程序的执行过程。
二、实验原理 • 1、简单模型机的系统结构 • 2、简单模型机的指令系统 • 3、简单模型机的微程序流程图 • 4、简单模型机的微指令地址分配 • 5、简单模型机的微代码 • 6、微代码装入方法 • 7、程序的机器码装入方法 • 8、启动程序执行
2、简单模型机的指令系统 I7 I6 I5 I4 I3 I2 I1 I0 • (1)IN DR,PORTAR • 功能:输入设备(开关)数据送DR,PORTAR为输入设备的端口地址。 • (2)ADD DR, [ADDR] • 功能:(DR)+[ADDR] →DR,结果影响标志;直接寻址,直接地址ADDR在指令第二字节。 I7 I6 I5 I4 I3 I2 I1 I0
2、简单模型机的指令系统 I7 I6 I5 I4 I3 I2 I1 I0 • (3)STA [ADDR],DR • 功能:DR→[ADDR];直接寻址,DR的内容送主存ADDR地址单元。 • (4)OUT [PORTAR],[ADDR] • 功能:[ADDR]→LED;直接寻址,主存ADDR地址单元的内容送输出设备发光管显示。 I7 I6 I5 I4 I3 I2 I1 I0
2、简单模型机的指令系统 I7 I6 I5 I4 I3 I2 I1 I0 • (5)JMP ADDR • 功能:ADDR→PC,程序跳转到主存ADDR地址继续执行。
控制台操作 • 作用: • 写内存:手动从开关装入程序和数据→主存中 • 读内存:手动检查写入的程序和数据是否正确 • 执行程序:启动程序执行 • 控制:开关KB、KA • 拨CLR开关“1→0→1”后,按START微动开关
首先确定那些J1#~J5#微指令的下址字段,然后再确定它散转到的微指令的地址。首先确定那些J1#~J5#微指令的下址字段,然后再确定它散转到的微指令的地址。 然后其他顺序执行的微指令就随意安排。 本实验中只涉及J1#和J3#。 “J1#”微指令的下址字段:10H “J3#”微指令的下址字段:08H 4、简单模型机的微指令地址分配
J1#=0时,根据指令的操作码(OP)I7~I4进行散转,产生该条指令的微程序入口地址。散转规则:J1#=0时,根据指令的操作码(OP)I7~I4进行散转,产生该条指令的微程序入口地址。散转规则: 当I7I6=11时(即指令格式4的指令), MA6~MA0 = MA6~MA0 || 010I5I4I3I2 当I7I6≠11时(即指令格式1、2、3的指令) , MA6~MA0=MA6~MA0||000I7I6I5I4 4、简单模型机的微指令地址分配
J3#=0时,根据开关KB、KA状态进行转移;主要用于控制台操作指令。散转规则:J3#=0时,根据开关KB、KA状态进行转移;主要用于控制台操作指令。散转规则: MA6~MA0 = MA6~MA0 || 00000KB KA 4、简单模型机的微指令地址分配
6、微代码装入方法 • 手动装入:通过24位微代码开关和7位微地址开关 • 联机装入:通过上位机(虚拟仿真)软件 • 上位机软件工作方式: • 联机主控:可以通过软件来控制和动态显示指令在实验仪上执行过程;上下载程序、微程序 • 单步程序、单步微程序、连续执行、停止执行 • 联机从控:软件只用来上下载程序、微程序。 • 仿真方式:不使用实验仪,所有部件用软件模拟仿真实现。
7、程序的机器码装入方法 • 手动装入:执行控制台“写内存”操作,通过8位输入开关输入程序和数据 • 联机装入:通过上位机软件下载到实验仪内存
手动装入程序机器码 • 执行控制台“写内存”操作,通过8位输入开关输入程序和数据 • 将编程开关置于“RUN”状态,RUN#/STEP开关置于“STEP”状态。 • 操作CLR开关,使CLR信号“1→0→1”,程序计数器PC清零,微地址清零。 • 开关KBKA置为“0 1”,即写内存状态。
手动装入程序机器码 • 按动启动键START一次,则从控存00H单元开始执行微指令,微地址显示灯显示“0001010”,第二次按动START键,微地址显示灯显示“001111”,此时,将数据开关置为要写入的机器指令代码或数据,再按动START键两次,即完成该条指令的写入,同时PC指向下一个内存单元。继续按动START键,当且仅当微地址显示灯显示“0001111”时,才从开关上置入指令代码,直至所有的程序代码写入完毕。
手动校验程序机器码 • 执行控制台“读内存”操作,通过输出设备(8位LED显示灯)显示程序和数据代码 • 将编程开关置于“RUN”状态,RUN#/STEP开关置于“STEP”状态。 • 操作CLR开关,使CLR信号“1→0→1”,程序计数器PC清零,微地址清零。 • 开关KB KA置为“1 0”,即读内存状态。
手动校验程序机器码 • 按动启动键START一次,则从控存00H单元开始执行微指令,微地址显示灯显示“0001001”,第二次按动START键,微地址显示灯显示“0001100”, 第三次按动START键,微地址显示灯显示“0001101”, 第四次按动START键,微地址显示灯显示“0001110”,此时,输出设备(OUTPUT DEVICE)发光管上将显示内存00H号单元的内容,检查是否与写入的数据相同。 • 继续按动START键,当且仅当微地址显示灯显示“0001001”时,发光管上显示的内容才是内存的数据。每个循环PC会自动增1,由此,可检查后续单元的内容是否正确。
8、启动程序执行 • 脱机执行:执行控制台“启动程序”操作 • KB KA=00/11,编程开关(三态)= RUN • 单步执行:RUN#/STEP=STEP • 连续执行:RUN#/STEP=RUN# • CLR信号“1→0→1”,使微地址清零,PC清零,即程序首址为00H • 按动START键,单步执行(微指令)或者连续执行。 • 联机执行: • 联机主控:通过软件控制 • 联机从控:同脱机执行的控制方法
使用上位机软件装入程序和微程序 • 主控模式下: 打开文件 后缀为.yyy 从上位机装程序和微程序到实验仪 下装 KBKA=11/00,CLR=1-0-1,编程开关=RUN 运行
三、实验内容及要求 • 1、要求运行以下测试程序,观察程序执行的流程,并检验结果是否正确。
三、实验内容及要求 • 2、将程序中的R0更换为R2,应如何修改? • 3、若将微程序流程图中的“J1#”散转的微指令下址改为20H,会发生什么情况? • 4、将指令系统5条指令的格式修改为格式 1 ,指令散转地址是多少? • 5、如果指令OUT的功能修改为以下所示,则如何修改微程序流程图和微代码? I7 I6 I5 I4 I3 I2 I1 I0 • (4)OUT [PORTAR],DR • 功能:DR→LED;
四、实验步骤 • 1、按图连接实验线路,并检查。 • 2、用串口线连接实验仪和微机。 • 3、运行上位机软件,选择相应串口,选择“联机主控”工作方式。 • 4、打开文件“简单模型机的设计与实现.yyy”,并下载。 • 5、实验仪清零(CLR开关),上位机清零(点击Clr按钮),实验仪KBKA=00/11。 • 6、单步或者连续运行程序。 • 7、检查结果是否正确。 • 8、若结果正确,使用“联机从控”工作方式实验。