计算机体系结构中微指令的格式是什么?
一个微指令格式总共包含20位。它们被分成四个元素,如图所示。
F1、F2、F3是微操作字段。它们确定计算机的微操作。
CD是分支条件。它们选择状态位条件。
BR是分支字段。它确定分支的类型。
AD是地址字段。它包含长度为7位的地址字段。
微操作被分成三个字段,每个字段三个位。这三个位可以定义七个不同的微操作。总共有21个操作,如表中所示。
微指令字段的二进制代码及其符号
名称 | 代码 | 符号 | |
---|---|---|---|
F1 | 000 | 无操作 | NOP |
001 | AC ← AC + DR | ADD | |
010 | AC ← 0 | CLRAC | |
011 | AC ← AC + 1 | INCAC | |
100 | AC ← DR | DRTAC | |
101 | AR ← DR(0 − 10) | DRTAR | |
110 | AR ← PC | PCTAR | |
111 | AC ← AC + DR | WRITE | |
F2 | 000 | 无操作 | NOP |
001 | AC ← AC + DR | SUB | |
010 | AC ← AC ∨ DR | OR | |
011 | AC ← AC ∧ DR | AND | |
100 | DR ← M[AR] | READ | |
101 | DR ← AC | ACTDR | |
110 | DR ← DR + 1 | INCDR | |
111 | DR(0 − 10) ← PC | PCTDR | |
F3 | 000 | 无操作 | NOP |
001 | AC ← AC ⊕ DR | XOR | |
010 | AC ← AC′ | COM | |
011 | AC ← shl AC | SHL | |
100 | AC ← shr AC | SHR | |
101 | PC ← PC + 1 | INCPC | |
110 | PC ← AR | ARTPC | |
111 | DR(0 − 10) ← PC | 保留 |
如表所示,每个微指令只能有三个微操作,每个字段一个。如果它使用少于三个,则将导致多个操作使用无操作二进制代码。
条件字段
条件字段包含2位。它们被编码以定义四个状态位条件。如表中所述,第一个条件总是为1,CD = 0。可以指示此条件的符号是“U”。该表以简单的方式显示了多个条件字段及其摘要。
条件字段符号和描述
条件 | 符号 | 注释 | |
---|---|---|---|
00 | 始终 = 1 | U | 无条件分支 |
01 | DR (15) | I | 间接地址位 |
10 | AC (15) | S | AC的符号位 |
11 | AC = 0 | Z | AC中的零值 |
如表所示,当条件00与BR(分支)字段连接时,它会导致无条件分支操作。然后从内存中读取执行,间接位I可以从DR的第15位访问。下一位的状态由AC符号位支持。如果AC中的所有位都是1,则表示为Z(其二进制值为1)。符号U、I、S和Z可以在编写微程序时指示状态位。
分支字段
BR(分支)字段包含2位。它可以通过与AD(地址)字段连接来使用。与AD字段连接的原因是选择下一条微指令的地址。该表说明了各种分支字段及其功能。
分支字段符号和描述
BR | 符号 | 注释 |
00 | JMP | 如果条件 = 1,则CAR ←AD |
如果条件 = 0,则CAR←CAR + 1 | ||
01 | CALL | 如果条件 = 1,则CAR ←AD,SBR ← CAR +1 |
如果条件 = 0,则CAR←CAR + 1 | ||
10 | RET | CAR ←SBR(从子程序返回) |
11 | MAP | CAR(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字段中的最后两个条件不依赖于CD和AD字段的值。