零基础入门计算机组成原理:控制器章节全考点汇总 | 寄存器 + 控制存储器 + 微指令

CPU 核心寄存器功能(权威正确版・含教材常见错误辨析)

原题目

权威标准答案

教材常见错误辨析

寄存器缩写 全称 核心功能 程序员可见
IR 指令寄存器 保存当前正在执行的指令
AR 地址寄存器 保存当前正在访问的主存地址(即当前指令地址)
PC 程序计数器 保存下一条将要执行的指令地址
ACC 累加器 存放 ALU 的操作数和运算结果
MDR/DR 数据寄存器 CPU 与主存之间的数据缓冲
PSW 程序状态字寄存器 保存程序运行状态(进位、溢出、中断等标志)
寄存器 全称 唯一核心功能 位置 程序员能否直接访问
ACC(累加器) Accumulator 存放 ALU 的操作数运算结果 运算器内部 ✅ 可以
通用寄存器(R0~Rn) General Purpose Register 灵活存放运算数据、地址、中间结果 运算器内部 ✅ 可以
MDR(数据寄存器,也叫 DR) Memory Data Register CPU 与主存之间的数据缓冲 CPU 与主存的接口上 ❌ 不能(由硬件自动控制)

保存当前正在执行的指令地址的寄存器是地址寄存器(AR)。程序计数器(PC)保存的是下一条将要执行的指令地址。

对比维度 程序计数器(PC) 地址寄存器(AR)
保存的地址 下一条将要执行的指令地址 当前正在执行的指令地址
时间点 指向未来 指向现在
核心功能 控制程序的执行流程,实现顺序执行和跳转 CPU 与主存之间的地址接口,负责向主存发送地址
程序员可见性 ✅ 可见,汇编指令可以直接修改(如 JMP、CALL) ❌ 不可见,完全由硬件自动控制
值的变化时机 指令取出后立即自动加 1,或被跳转指令修改 每次取指时被 PC 赋值,在指令执行期间保持不变

控制存储器容量估算(含考试必看向上取整考点)

一、题目描述

假设某机器有 80 条指令,平均每条指令由 4 条微指令组成,其中有一条取指微指令是所有指令公用的。已知微指令长度为 32 位,请估算控制存储器容量。


二、前置核心概念

在解题前,必须明确两个决定答案正确性的关键概念:

  1. 控制存储器(CM):存放所有微程序的只读存储器(ROM),容量 = 微指令总条数 × 每条微指令的位数。
  2. 半导体存储器的铁律所有存储器的容量必须是 2 的整数次幂。这是由地址译码电路决定的:n 位地址线最多只能译码出 2^n 个唯一的存储单元,不存在能寻址 241 个单元的译码器。

三、完整满分解答步骤

项目 理论估算值 工程实际值 & 考试满分答案
微指令条数 241 条 256 条
总容量 7712 位(964 字节) 8192 位(1KB)

考试避坑指南

微指令控制字段编码(字段直接编码法・标准正确例题解析)

某机有 8 条微指令I1~I8,每条微指令所含的微命令控制信号如下表所示:

微指令 a b c d e f g h i j
I1​
I2​
I3​
I4​
I5​
I6​
I7​
I8​

为 a、b、c、d、e、f、g、h、i、j 这 10 个微命令设计格式并安排编码。

步骤 1:严格分析微命令的互斥性

字段直接编码法的核心是将两两互斥(从未在同一条微指令中同时出现)的微命令放在同一个字段中。我们逐一分析:

  • 第一组(互斥组 1):b、c、d观察所有微指令,b、c、d 从未同时出现,满足互斥条件。
  • 第二组(互斥组 2):e、f、ge、f、g 也从未在同一条微指令中同时出现,满足互斥条件。
  • 第三组(互斥组 3):h、i、j h、i、j 同样从未同时出现,满足互斥条件。
  • 微命令 a:与所有其他微命令都有同时出现的记录(如I1中 a 与 d 同时出现),属于全局相容微命令,必须单独作为一个字段。
相关推荐
城管不管6 小时前
重生——第十一次面试之挖财一面2026.8.19已OC
java·服务器·jvm·数据库·spring·面试·职场和发展
重生之后端学习8 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
ITmaster073111 小时前
天天 AI Coding 的你,如果出去面试,你的竞争力是什么?
人工智能·面试·职场和发展
HY小宝F12 小时前
树莓派 FFmpeg 实战笔记(二):命令行、源码编译与硬件编码的真相
学习·职场和发展·ffmpeg
程序员三藏13 小时前
浅谈性能测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
2601_9672642818 小时前
React教程全家桶实战redux+antd+React Hooks前端js视频,2025徐老师React18&19课程含项目实战(完结)
职场和发展
鹿角片ljp1 天前
LeetCode 46. 全排列|吃透回溯
算法·leetcode·职场和发展
程序员三藏1 天前
Python+requests实现接口自动化测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
.道阻且长.1 天前
11.LeetCode算法习题讲解--滑动窗口--将x减到0的最小操作数
算法·leetcode·职场和发展
小欣加油1 天前
leetcode3069 将元素分配到两个数组中I
数据结构·c++·算法·leetcode·职场和发展