1、1JPLA依指令码转移15 14 130 0 00 0 10 1 00NO1置“0”NO1周期0 1 1(R) LA1 0 0(R) LB1 0 1DBUSR1 1 0DBUSIR1 1 1CLEARCLEAR LA和LB12 110 00 1JM依寻址方式转移1 0JC依C标志转移1 1JZ依Z标志转移16(PC)+1PC21 20 19S2 S1 S0A加BABA取反A与BA或BA减118 17DBUSLADBUSLBDBUSPC221C025 24 23SH2 SH1 SH0数据左移(不循环)数据右移(不循环)数据带C循环左移数据带C循环右移数据直通DR移位器送AR(PC)AR28 27
2、 26MRMWIORIOW293031(DR)DBUS(AR)ABUS1NO1置“1”NO1周期一指令格式本机器采用16长指令字:其中操作码占6位(b15b10);操作数1(简称NO1)地址占6位(b9b5);操作数2(简称NO2)地址占6位(b4b0)。b15 b14 b13 b12 b11 b10b9 b8 b7 b6 b5b4 b3 b2 b1 b0操作码操作数1地址操作数2地址其中b9 b8和b4 b3分别代表操作数1和操作数2的寻址方式:寻址方式b9 (或b4)b8 (或b3)立即数方式存储器方式寄存器直接方式寄存器间接方式二指令编码指令名称(转移及控制类)相应机器指令示例HALT0
3、0000000000 00000000001JNZ000010000011JNC00010001000以上两行代表“JNC #08H”JMP000101(算术运算类)MOV00011010000 10001以上两行代表“MOV R0,11H”ADD00011110000上行代表“ADD R0,R1”SUB001000CMP001001INC001010DEC001011(逻辑运算类)AND00110010011上行代表“AND R3,R1”OR001101COM001110NEG001111ROR010000ROL010001ASR010010ASL010011(输入输出类)IN010100O
4、UT01010100100以上两行代表“OUT R1,04H”所有“门控”均指三态逻辑,当相应微命令为“1”时,该部件连通,否则为高阻态(相当于断开)。第二节锁存器或寄存器(软件类专业的学生可不看本段)所有带“器”字的部件均指锁存器或寄存器,为时序部件,具有记忆能力,它们的左下角均标有一个粗点,表示需要时钟。 工作描述:“微指令锁存器” 每周期一开始将新内容锁入,然后输出微命令,且生成下一条微指令地址。“微地址寄存器”在每周期中间时钟下沿,将下一条微指令地址锁存。“程序计数器PC”如果本周一开始就送来了“(PC)+1PC”,则下跳沿时即可实现PC加1。本模型机采用按字编址。即每16位才有一个地
5、址。“程序状态字PSW”周期的正半周ALU和移位器等完成运算,下降沿时存入PSW。“指令寄存器IR”如果本周期正半周送来了“DBUSIR”,则新指令码经IR立即送出,且负跳沿时将其锁入IR。“通用寄存器Ri”如果本周一开始就送来了DBUSR,则负跳沿时将其锁入Ri。 “地址暂存器AR”如果本周一开始就送来了SH2=1和SH1=1,则新值(PC的内容或移位器的输出)立即送出,且负跳沿时锁存该新值。“数据暂存器DR”如果本周一开始就送来了SH五组合的任意一种,则新值经DR立即送出,且负跳沿时将其锁入DR。“锁存器A”如果本周一开始就送来了(R)LA或DBUSLA之一,则新值经A立即送出,且负跳沿时
6、将其锁入A。“锁存器B”类似于锁存器A。取指(完毕时置“1”NO1)置“1”NO1周期寄存器CZ型转移分析(只有JC和JZ时需要本节拍)*指依据JC JZ NO1的寻址方式分析(JM型)更新微地址寄存器,选择Rn取NO1根据NO1寻址方式,取NO1清“0”NO1,分析NO2的寻址方式(JM型)清“0”NO1周期寄存器 取NO2根据NO2寻址方式,取NO2执行指令 本设计只用到NO1即可。一般指令周期流程大致安排如下表。第四节微地址产生逻辑(软件类专业的学生只需看“JM=1”对应的一栏)JZ=1时Z=0JZ指令时:回取指;或先PC再+1,再回取指。下址字段总是000H。JNZ指令时:下址字段依据
7、“寻址方式”变(转移)Z=1JC=1C=0JC指令时:JNC指令时:下址字段依据“寻址方式”变(转移) C=1JM=1时(即依据“寻址方式”变)立即方式下址字段固定加0下址字段固定加1 下址字段固定加2 下址字段固定加3NO1=1选择NO1中的寻址方式选择NO1中的RnNO1=0选择NO2中的寻址方式选择NO2中的Rn当微指令“PLA”=1时,根据指令码转去相应的微程序首地址。取指微指令占000H和001H单元,HALT对应002H(全零)和003单元(全零)。其余指令分配如下表:编码CROM中的微程序首址002H004H (共32个单元)024H (共32个单元)044H (共32个单元)0
8、64H (共32个单元)084H (共32个单元)0A4H (共64个单元)0E4H (共64个单元)124H (共64个单元)164H (共64个单元)1A4H (共32个单元)1C4H (共32个单元) CROM中的微程序首址1E4H (共64个单元)224H (共64个单元)264H (共32个单元)284H (共32个单元)2A4H (共32个单元)2C4H (共32个单元)2E4H (共32个单元)304H (共32个单元)324H (共32个单元)344H (共32个单元) 为简化模型设计,假定MR在周期一开始就有效,并在正半周结束时可以得到稳定输出;MW在周期中间开始有效,此时数
9、据和地址已稳定准备在总线上。第八节输入输出设备(软件类专业的学生可不看本段)这里一共模拟4个设备:输入设备0#查寻方式状态口口地址0数据口口地址1输入设备1#无条件方式口地址2输出设备0#口地址3输出设备1#口地址4特别说明:本章后3节仅供参考,以给学生实验时提供思路。第一节微指令设计举例ADD R0,R1:(机器码:000111 10000 10001)28 27262524232120191817151413121198765432十六进制0x0000x438000010x0010xc401c4000x0e4(JM)0x000008e50x0e50x0e60x0e70x000060e90x
10、0e80x0e9(JM)0x000048ea0x0ea0x0eb0x0ec0x000080ee0x0ed0x0ee0x228800ef0x0ef0x2000a0000x0f0流程描述:1送出(PC),参见短过程1SH2=SH1=SH0=1(pcAR),(AR)ABUS。2指令入IR,参见短过程2(AR)ABUS,MR,DBUSIR,(PC)+1PC,JPLA,“1”NO1。3NO1的寻址方式分析(要JM),参见短过程144寄存器送LA,参见短过程4(R0)LA5.(要“0”NO1,JM),参见短过程156寄存器送LB,参见短过程4(R1)LB7ALU数据运算并送出,参见短过程11选择S2、S1
11、、S0(001),选择SH2、SH1、SH0(101),发出(DR)DBUS。8从DR写入R,参见短过程6 (DR)DBUS,DBUSR。实验运行步骤:1将上述微代码逐行按微地址写入(如果没有的话)a.txt 文件,写好后关闭a.txt 。注意a.txt必须与CPU(设计).exe在同一文件目录下);2打开CPU(设计版).exe,单击“复位”。然后将“ADD R0,R1”的机器码IE11H(即000111 10000 10001的16进制码)手工放在主存储器的00H单元,手工在R0中放入一数(如十六进制1),R1中放入另一个数(如十六进制2);3逐次单击“运行”,直到在R1中得到所求和值(如
12、3)。MOV R0,11H;000110 10000 01000 0000 0000 0001 0001)0x0a4(JM)0x000008a50x0a5(+0)0x0a6(+1)0x0a7(+2)0x000060ae0x0a8(+3)0x0a9(JM)0x000048aa0x0aa(+0)0x0ab(+1)0x438000af0x0ac(+2)0x0ad(+3)0x0ae0x029000a90x0af0x440400b00x0b00x431900b10x0b10x680000000x0b2SH2=SH1=SH0=1(pcar),(AR)ABUS。3NO1的寻址方式分析,参见短过程145ALU数据运算并送出,参见短过程11选择S2、S1、S0(010),选择SH2、SH
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1