在微程序控制器中,各概念之间的详细关系
1. 基本定义
-
微操作(Micro-operation)
计算机中最基本的硬件操作,如寄存器间的数据传送、ALU运算、门电路开关等。例如:PC ← PC + 1
或MAR ← (PC)
。 -
微命令(Micro-command)
直接控制硬件电路的电平信号,是微操作的具体实现手段。例如:打开ALU的加法器、触发寄存器的写入信号等。
关系:一个微操作可能由多个微命令协同完成。 -
微指令(Micro-instruction)
一组微命令的集合,用于在一个微周期内并行执行多个微操作。微指令的格式通常包含:-
控制字段:发出微命令(如
ALU_ADD
,REG_WRITE
)。 -
顺序控制字段:决定下一条微指令的地址(如条件分支)。
关系:微指令是微命令的组织形式。
-
-
微周期(Micro-cycle)
执行一条微指令所需的时间,通常与CPU的时钟周期同步。每个微周期完成一组微操作。 -
微程序(Micro-program)
由微指令序列组成的程序,用于实现一条机器指令的功能。例如,ADD
指令可能对应一段包含“取操作数→运算→存结果”的微程序。
关系:微程序是机器指令的底层实现。 -
程序(Program)
由机器指令(如MOV
,JMP
)组成的软件,运行在CPU上。
关系:每条机器指令被翻译为一段微程序。
2. 层级关系
-
程序层
-
用户编写的代码(如C语言)编译为机器指令(二进制代码)。
-
例如:
ADD R1, R2
。
-
-
微程序层
-
每条机器指令对应一段微程序(存储在控制存储器中)。
-
例如:
ADD
的微程序可能包含:复制
下载
微指令1:从寄存器R2取数 → 暂存器A 微指令2:从寄存器R1取数 → 暂存器B 微指令3:ALU执行加法 → 结果存回R1
-
-
微指令层
-
每条微指令在一个微周期内发出多个微命令,控制硬件执行微操作。
-
例如:微指令1的微命令可能是
REG_R2_READ
,TEMP_A_WRITE
。
-
-
硬件层
-
微命令直接作用于数据通路(如打开寄存器输出门、ALU使能信号)。
-
3. 执行流程示例
以执行机器指令 LOAD R1, [R2]
为例:
-
程序层:CPU读取
LOAD
指令(机器码)。 -
微程序层:触发对应的微程序(如“计算地址→访存→写回”)。
-
微指令层:
-
微指令1:
MAR ← (R2)
(发出微命令R2_OUT
,MAR_IN
)。 -
微指令2:
MDR ← Memory[MAR]
(发出MEM_READ
,MDR_IN
)。 -
微指令3:
R1 ← (MDR)
(发出MDR_OUT
,R1_IN
)。
-
-
硬件层:每个微命令激活对应的电路完成数据流动。
4. 关键关系总结
概念 | 作用 | 关联性 |
---|---|---|
微操作 | 最小硬件动作 | 由微命令组合实现 |
微命令 | 控制信号(电平/脉冲) | 微指令的组成部分 |
微指令 | 一个微周期内的控制命令集合 | 微程序的执行单元 |
微周期 | 执行微指令的时间单位 | 与CPU时钟同步 |
微程序 | 实现机器指令的微指令序列 | 存储在控制存储器(CM)中 |
程序 | 机器指令序列 | 通过微程序解释执行 |
5. 附加说明
-
水平型 vs 垂直型微指令
-
水平型:微指令较长,直接控制大量微命令(并行性高)。
-
垂直型:微指令较短,类似机器指令(需译码,灵活性低)。
-
-
控制存储器:存放微程序,是微程序控制器的核心部件。
通过这种分层设计,微程序控制器将复杂的指令执行过程分解为可管理的微操作步骤,实现了灵活且规整的控制逻辑。