| 项目 | 值 |
|---|---|
| 功能 | 取指令、分析指令、执行指令的控制 |
| 类型 | 硬布线控制器、微程序控制器 |
控制器发出的最基本控制信号,如 PCout, MARin(PC 送 MAR)、MDRout, IRin(MDR 送 IR)、ALU_add、MemRead。
将控制器看作纯组合逻辑电路,用逻辑门直接产生微操作命令。输入包括:指令操作码、时序信号、状态标志、外部信号。
PCout = FE·T0 + FE·T1 + …,其中 $FE =$ 取指周期,$EX =$ 执行周期,$T0/T1 =$ 节拍。将每条机器指令分解为微程序,由各微指令组成,每条微指令包含若干微命令。所有微程序存储在控制存储器(CM)中。
机器指令 → 微程序 → 微指令 → 微命令(微操作)
| 概念 | 说明 |
|---|---|
| 微程序 | 实现一条机器指令的一系列微指令的有序集合 |
| 微指令 | 控制存储器中的一个字,包含一组同时执行的微命令 |
| 微命令 | 控制器发出的最基本控制信号(微操作命令) |
| 控制存储器 CM | 存放所有微程序的 ROM,CPU 内部 |
| 微地址寄存器 CMAR | 存放当前要读取的微指令地址 |
| 微指令寄存器 CMDR/μIR | 存放当前正在执行的微指令 |
1. 取指阶段(公共微程序):取指令 → 送 IR → 操作码送 CMAR
2. 执行阶段:按操作码找微程序入口 → 逐条执行微指令
3. 最后一条微指令指回取指微程序入口
| 比较项目 | 硬布线控制器 | 微程序控制器 |
|---|---|---|
| 实现方式 | 组合逻辑电路 | 控制存储器 + 微指令 |
| 速度 | 快(无读 CM 延迟) | 较慢(需访问 CM) |
| 灵活性 | 差(改电路) | 好(改微程序) |
| 可扩展性 | 差 | 好(增指令只需增微程序) |
| 应用场景 | RISC | CISC |
| 设计 / 调试 | 难 | 容易 |
| 概念 | 定义 |
|---|---|
| 微操作 | CPU 最基本的不可再分的操作 |
| 微命令 | 控制器发出的控制微操作的信号 |
| 微指令 | 控制存储器中的一条指令,含微命令和下地址 |
| 微程序 | 实现一条机器指令功能的微指令序列 |
| 控制存储器 CM | CPU 内部存放微程序的高速 ROM |
| 取指周期 FE | 所有指令公共的取指令阶段 |
| 执行周期 EX | 各指令独立的执行阶段 |
给定 ADD、SUB、MOV 三条指令,取指与执行各节拍操作如题。求"PC→MAR"与"(ACC)+(MDR)→ACC"的表达式。
8 条指令(操作码 3 位),取指微程序入口 00H,各指令入口 08H~0FH。ADD 操作码 001,求 ADD 入口。
15 个微命令:组1(a,b,c,d 互斥)、组2(e,f,g 互斥)、组3(h,i,j 互斥),k,l,m,n,o 相容。求字段直接编码字长。
| 指标 | 硬布线 | 微程序 |
|---|---|---|
| 时钟周期 | 不含 CM 访问时间 | 含 CM 读取时间(通常 1 拍) |
| 指令扩展 | 需重新设计逻辑电路 | 增加微程序即可 |
| 存储开销 | 无 CM,纯门电路 | CM 容量 = 微指令数 $\times$ 微指令字长 |
| 设计时间 | 指令多时指数增长 | 近乎线性增长 |
★ 演示级:水平型 vs 垂直型微指令 —— 以「ALU: R1←R1+R2」为例,两种编码逐步对比。
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。