【计算机组成原理】| 第九章 控制单元的功能 | 程序,指令,机器指令,微程序,微指令,微命令,微操作的关系

程序:
程序由一些指令组成

指令:
这里的指令指 MOV AX,BX这样的汇编指令

机器指令:
机器指令是指令翻译后的结果,比如上面的指令翻译结果为89D8

微指令:
机器指令是由数个微指令组成,且每一个时钟周期对应一个微指令,比如MOV AX,BX,应该由这些微指令组成:
取值周期:
时钟周期①:(PC)->MAR (控制信号PCout = 1,MARin = 1)
时钟周期②:M->MDR (控制信号MEMR = 1,MDRinE = 1)
时钟周期③:(PC)+1->PC (控制信号 +1(具体看逻辑设计是否直接提供自加操作,若无,就用ALU自加)
时钟周期④:MDR->IR(控制信号 MDRout = 1,IRin = 1)
时钟周期⑤:IR译码 (控制信号 根据译码寄存器提供的控制字)

因为该程序无简址操作,所以微程序中无间址周期
若指令为MOV AX,[DI]这样的指令则应有间址周期

执行周期:
时钟周期①:(BX)->BUS->AX (控制信号Bout =1 Ain = 1)
执行结束

微命令
根据微指令的设计方式(水平或垂直),一个微指令应该有数个(水平)或者一个(垂直)微命令

水平微指令有 控制字段,判断测试字段(P字段),后续地址字段
设计算机只有这些,包括PCout PCin MARout MARin MDRin MDRout MDRinE MDRoutE MEMR MEMW IRin PC+1 IR译码

那么就应该按照功能的不同分别编码
这里以水平微指令举例
比如PC,应该编为 00 无操作,01 PCin ,10 PCout ,11无操作
那么(PC)->MAR对应的控制字应该为 10(PCout) 01(MARin) 000(MDR无操作) 00(MEM无操作) 0(IR无操作) 0(PC+1无操作) 0(IR译码无操作)
即 100100000000
注:这里的编码不包括 后去的判断测试字段与后续地址字段

其中10(PCout)即一个微命令

微操作
微操作即一个微命令对应的具体操作,将微命令交予执行部件后,由执行部件具体执行
例如10(PCout)交予了PC寄存器,那么PC寄存器会根据控制字向总线上输出PC内的值

程序:
程序由一些指令组成

指令:
这里的指令指 MOV AX,BX这样的汇编指令

机器指令:
机器指令是指令翻译后的结果,比如上面的指令翻译结果为89D8

微指令:
机器指令是由数个微指令组成,且每一个时钟周期对应一个微指令,比如MOV AX,BX,应该由这些微指令组成:
取值周期:
时钟周期①:(PC)->MAR (控制信号PCout = 1,MARin = 1)
时钟周期②:M->MDR (控制信号MEMR = 1,MDRinE = 1)
时钟周期③:(PC)+1->PC (控制信号 +1(具体看逻辑设计是否直接提供自加操作,若无,就用ALU自加)
时钟周期④:MDR->IR(控制信号 MDRout = 1,IRin = 1)
时钟周期⑤:IR译码 (控制信号 根据译码寄存器提供的控制字)

因为该程序无简址操作,所以微程序中无间址周期
若指令为MOV AX,[DI]这样的指令则应有间址周期

执行周期:
时钟周期①:(BX)->BUS->AX (控制信号Bout =1 Ain = 1)
执行结束

微命令
根据微指令的设计方式(水平或垂直),一个微指令应该有数个(水平)或者一个(垂直)微命令

水平微指令有 控制字段,判断测试字段(P字段),后续地址字段
设计算机只有这些,包括PCout PCin MARout MARin MDRin MDRout MDRinE MDRoutE MEMR MEMW IRin PC+1 IR译码

那么就应该按照功能的不同分别编码
这里以水平微指令举例
比如PC,应该编为 00 无操作,01 PCin ,10 PCout ,11无操作
那么(PC)->MAR对应的控制字应该为 10(PCout) 01(MARin) 000(MDR无操作) 00(MEM无操作) 0(IR无操作) 0(PC+1无操作) 0(IR译码无操作)
即 100100000000
注:这里的编码不包括 后去的判断测试字段与后续地址字段

其中10(PCout)即一个微命令

微操作
微操作即一个微命令对应的具体操作,将微命令交予执行部件后,由执行部件具体执行
例如10(PCout)交予了PC寄存器,那么PC寄存器会根据控制字向总线上输出PC内的值

猜你喜欢

转载自blog.csdn.net/K_Xin/article/details/109473089