计算机体系结构中微指令的格式是什么?


一个微指令格式总共包含20位。它们被分成四个元素,如图所示。

F1、F2、F3是微操作字段。它们确定计算机的微操作。

CD是分支条件。它们选择状态位条件。

BR是分支字段。它确定分支的类型。

AD是地址字段。它包含长度为7位的地址字段。

微操作被分成三个字段,每个字段三个位。这三个位可以定义七个不同的微操作。总共有21个操作,如表中所示。

微指令字段的二进制代码及其符号


名称代码符号
F1000无操作NOP
001AC ← AC + DRADD
010AC ← 0CLRAC
011AC ← AC + 1INCAC
100AC ← DRDRTAC
101AR ← DR(0 − 10)DRTAR
110AR ← PCPCTAR
111AC ← AC + DRWRITE
F2000无操作NOP
001AC ← AC + DRSUB
010AC ← AC ∨ DROR
011AC ← AC ∧ DRAND
100DR ← M[AR]READ
101DR ← ACACTDR
110DR ← DR + 1INCDR
111DR(0 − 10) ← PCPCTDR
F3000无操作NOP
001AC ← AC ⊕ DRXOR
010AC ← AC′COM
011AC ← shl ACSHL
100AC ← shr ACSHR
101PC ← PC + 1INCPC
110PC ← ARARTPC
111DR(0 − 10) ← PC保留

如表所示,每个微指令只能有三个微操作,每个字段一个。如果它使用少于三个,则将导致多个操作使用无操作二进制代码。

条件字段

条件字段包含2位。它们被编码以定义四个状态位条件。如表中所述,第一个条件总是为1,CD = 0。可以指示此条件的符号是“U”。该表以简单的方式显示了多个条件字段及其摘要。

条件字段符号和描述


条件符号注释
00始终 = 1U无条件分支
01DR (15)I间接地址位
10AC (15)SAC的符号位
11AC = 0ZAC中的零值

如表所示,当条件00与BR(分支)字段连接时,它会导致无条件分支操作。然后从内存中读取执行,间接位I可以从DR的第15位访问。下一位的状态由AC符号位支持。如果AC中的所有位都是1,则表示为Z(其二进制值为1)。符号U、I、SZ可以在编写微程序时指示状态位。

分支字段

BR(分支)字段包含2位。它可以通过与AD(地址)字段连接来使用。与AD字段连接的原因是选择下一条微指令的地址。该表说明了各种分支字段及其功能。

分支字段符号和描述

BR符号注释
00JMP如果条件 = 1,则CAR ←AD

如果条件 = 0,则CAR←CAR + 1
01CALL如果条件 = 1,则CAR ←AD,SBR ← CAR +1

如果条件 = 0,则CAR←CAR + 1
10RETCAR ←SBR(从子程序返回)
11MAPCAR(2-5) ←DR(11-14), CAR(0,1,6) ←0

如表所示,当BR = 00时,实现JMP操作;当BR = 01时,调用子程序。这两个指令之间的唯一区别是,当保存微指令时,返回地址保存在子程序寄存器(SBR)中。

这两个操作取决于CD字段的值。当CD字段的状态位条件定义为1时,下一个地址被传输到CAR。否则,它会递增。如果指令需要从子程序返回,则其BR字段确定为10

这导致返回地址从SBR传输到CAR。如果BR字段为11,则指令的opcode位可以与CAR的地址映射。它们存在于从内存读取指令后DR (11 - 14)中。BR字段中的最后两个条件不依赖于CDAD字段的值。

更新于:2021年7月24日

29K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告