跳至正文

408错题日记3


错题日记 03 · 计算机组成原理

[CO] 摩尔定律的物理极限

Question

以下有关对摩尔定律的描述中,错误的是()

A. 每 18 个月,集成电路芯片上集成的晶体管数将翻一番 B. 每 18 个月,集成电路芯片的速度将提高一倍 C. 每 18 个月,集成电路芯片的价格将降低一半 D. 集成电路技术一直会遵循摩尔定律发展下去

My Answer

我的选择:C 理由:误以为价格降低一半是错误的表述。

Correct Answer

正确答案:D(集成电路技术一直会遵循摩尔定律发展下去) 正解

  1. 摩尔定律核心内容:当价格不变时,集成电路上可容纳的元器件的数目,约每隔 18-24 个月便会增加一倍,性能也将提升一倍(或成本降低一半)。
  2. 物理极限:硅基芯片的制程工艺(如 3nm、2nm)最终会触及原子的物理边界,因此摩尔定律必然会在未来失效,不可能一直遵循。

Error Pattern

逻辑跳跃——误以为价格降低一半是错误的表述。实际上摩尔定律的核心不仅仅是性能的翻倍,也包含了单位成本的减半。真正错误的是认为该定律可以”一直”发展下去,忽略了半导体工艺面临的量子隧穿效应等物理极限。

Core Concept

  • 摩尔定律

Expected Context

  • 笔记路径:数据的表示与运算、CPU 与流水线
  • 检索关键词:摩尔定律、18-24 个月翻番、量子隧穿效应、物理极限、绝对化词汇(一直/永远)

Fix Plan

看到”一直”、“永远”这类绝对化词汇在计组的发展史题目中,99% 都是错误选项。硬件发展必受物理法则制约。

变式自测:以下哪个因素最可能成为摩尔定律失效的根本原因?(提示:硅基芯片制程逼近原子尺度时,量子效应将成为不可逾越的物理屏障。答案:量子隧穿效应导致漏电流不可控(B)。)


[CO] CPU 的物理边界与地址译码器

Question

CPU 不包括()

A. 地址寄存器 B. 指令寄存器(IR) C. 地址译码器 D. 通用寄存器

My Answer

我的选择:A 理由:把地址寄存器(MAR)当成了内存的部件,而把地址译码器当成了 CPU 的部件。

Correct Answer

正确答案:C(地址译码器) 正解

  1. CPU 的组成:由运算器(ALU, 累加器, 通用寄存器)和控制器(PC, IR, CU, MAR, MDR)组成。所以 A、B、D 都在 CPU 内部。
  2. 主存的组成:由存储体、地址译码器(将 MAR 传来的地址信号转化为某根字线的片选信号)和读写控制电路组成。

Error Pattern

寄存器归属感错乱——把地址寄存器(MAR)当成了内存的部件,而把地址译码器当成了 CPU 的部件。实际上,MAR 确实是在 CPU 内部(靠近内存总线接口处),而地址译码器是主存储器内部用来激活存储单元的硬件!

Core Concept

  • CPU 结构
  • 主存结构

Expected Context

  • 笔记路径:CPU 与流水线、存储系统
  • 检索关键词:CPU 结构、运算器/控制器、地址译码器、指令译码器(ID)、主存组成、MAR

Fix Plan

“译码”二字看前缀:指令译码器(ID)在 CPU 的控制器里(翻译代码该干嘛);地址译码器在主存(RAM)里(翻译该激活哪一行内存)。

变式自测:以下哪个部件属于主存储器而不属于 CPU?(提示:区分”地址暂存”与”地址译码”两个不同阶段。答案:地址译码器(C)。)


[CO] 冯·诺依曼架构的终极拷问

Question

【2009 统考真题】冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU 区分它们的依据是()

A. 指令操作码的译码结果 B. 指令和数据的寻址方式 C. 指令周期的不同阶段 D. 指令和数据所在的存储单元

My Answer

我的选择:A 理由:致命的”马后炮”思维。

Correct Answer

正确答案:C(指令周期的不同阶段) 正解:在冯·诺依曼架构中,指令和数据同等对待,都放在主存中。CPU 只能通过时间上的节拍(指令周期)来区分:

  1. 取指周期(Fetch):CPU 明确知道自己此时要去取指令,所以把从内存读出来的二进制流送入指令寄存器(IR),当作指令解释。
  2. 执行周期(Execute):CPU 根据指令的要求去访存,此时读出的二进制流被送入数据寄存器(MDR)/ 通用寄存器,当作数据运算。

Error Pattern

因果倒置——选 A 是一种极其致命的”马后炮”思维!CPU 必须先知道取出来的是指令,然后才能送去指令译码器进行译码。在内存里,它们都是一堆 0 和 1,根本没有标签告诉你这是操作码还是数据。

Core Concept

  • 指令周期
  • 冯·诺依曼架构

Expected Context

  • 笔记路径:CPU 与流水线、指令系统
  • 检索关键词:冯·诺依曼架构、指令周期、取指周期、执行周期、区分指令和数据、IR / MDR、时间切片

Fix Plan

时间切片区分法:想象 CPU 是个盲人,他区分”饭”和”菜”不是靠看(因为长得一样都是 0/1),而是靠”现在是吃饭时间(取指周期)“还是”现在是吃菜时间(执行周期)”。

变式自测:在冯·诺依曼计算机中,CPU 在哪个阶段将从内存读出的数据送入指令寄存器(IR)?(提示:取指周期的核心任务就是从内存取出指令并装入 IR。答案:取指周期(A)。)


[CO] MAR 与 MDR 的位宽映射

Question

下列关于 MAR 和 MDR 的叙述中,正确的是()

A. MAR 的位数反映了存储单元的个数,MDR 的位数反映了存储单元的字长 B. MAR 的位数反映了存储单元的字长,MDR 的位数反映了存储单元的个数 C. MAR 的位数与存储字长相同 D. MDR 的位数与地址码的长度相同

My Answer

我的选择:B 理由:没有在脑海中把 MAR 和 MDR 翻译成中文的对应职能,导致位宽映射的因果关系选反了。

Correct Answer

正确答案:A 正解

  1. MAR(Memory Address Register)地址寄存器:它存放的是地址。如果有 n 位地址线,就能指明 2^n 个不同的位置。因此 MAR 的位数反映了存储单元的个数。
  2. MDR(Memory Data Register)数据寄存器:它存放的是每次从内存里拿出来的一整块数据。因此 MDR 的位数反映了存储器的机器字长 / 存储字长。

Error Pattern

英文缩写眩晕——没有在脑海中把 MAR 和 MDR 翻译成中文的对应职能,导致位宽映射的因果关系选反了。

Core Concept

  • MAR
  • MDR

Expected Context

  • 笔记路径:CPU 与流水线、存储系统
  • 检索关键词:MAR 位数 = 存储单元个数、MDR 位数 = 存储字长、Address = 个数、Data = 字长、地址位宽

Fix Plan

A = Address = 个数(n 位地址对应 2^n 个房间);D = Data = 字长(房间里能塞多大的床)。考场上切忌死记硬背,直接写下 MAR -> Address,MDR -> Data。

变式自测:若 MAR 为 32 位,MDR 为 64 位,则该计算机的最大主存容量为?(提示:MAR 32 位寻址空间为 2^32 个存储单元,每个存储单元为 8 字节(MDR 64 位),总容量为 2^32 × 8B = 32GB。答案:A。注:原题答案标 A(4GB)与解析(32GB)存在矛盾,此处如实保留,按字节编址时 32 位地址最多 4GB。


[CO] 计算机语言的翻译壁垒

Question

【2016 年统考真题】将高级语言源程序转换为机器级目标代码文件的程序是()

A. 汇编程序 B. 链接程序 C. 编译程序 D. 解释程序

My Answer

我的选择:A 理由:误以为”目标代码”等于机器指令,而汇编程序负责生成机器指令。忽略了源头是”高级语言”。

Correct Answer

正确答案:C(编译程序) 正解

  1. 编译程序(Compiler):将高级语言(如 C/C++)一次性全部翻译成汇编语言或机器语言(即目标代码 .obj / .o)。
  2. 汇编程序(Assembler):将汇编语言翻译成机器语言。它的输入必须是汇编代码,绝不能是高级语言!
  3. 解释程序(Interpreter):将高级语言逐句翻译并立即执行,不生成目标代码文件(如 Python/JavaScript)。

Error Pattern

翻译层级断层——误以为”目标代码”等于机器指令,而汇编程序负责生成机器指令,于是选了 A。但忽略了源头是”高级语言”!高级语言的翻译官是编译器,而不是汇编器。

Core Concept

  • 编译程序
  • 汇编程序
  • 系统软件

Expected Context

  • 笔记路径:指令系统
  • 检索关键词:编译程序 Compiler、汇编程序 Assembler、解释程序 Interpreter、高级语言 → 目标代码、链接程序

Fix Plan

语言处理程序的考试口诀:看到”高级 → 目标文件” → 编译;看到”高级 → 不留文件直接跑” → 解释;看到”汇编 → 机器” → 汇编。

变式自测:以下哪个程序负责将汇编语言源程序翻译成机器语言目标程序?(提示:输入是汇编语言,输出是机器语言。答案:汇编程序(B)。)


[CO] 软件系统的最高层级分类

Question

一个完整的计算机系统包括硬件和软件。软件又分为()

A. 操作系统和语言处理程序 B. 系统软件和应用软件 C. 操作系统和高级语言 D. 低级语言程序和高级语言程序

My Answer

我的选择:A 理由:将子概念误当成了父概念。操作系统和语言处理程序(如编译器)都仅仅是系统软件的子集。

Correct Answer

正确答案:B(系统软件和应用软件) 正解

  1. 系统软件(System Software):用于管理整个计算机系统,作为硬件和应用软件之间的桥梁。典型代表:操作系统、DBMS、语言处理程序、服务性程序(如装配程序)。
  2. 应用软件(Application Software):按任务需要编制的各种程序。典型代表:微信、Word、各种科学计算包。

Error Pattern

逻辑降维——将子概念误当成了父概念。操作系统和语言处理程序(如编译器)都仅仅是系统软件的子集。软件分类的最顶层抽象,必须是”系统软件”与”应用软件”的二元对立。

Core Concept

  • 计算机系统层次结构

Expected Context

  • 笔记路径:指令系统
  • 检索关键词:系统软件、应用软件、操作系统、DBMS、语言处理程序、软件分类

Fix Plan

看到分类题,先找最宏观的”界限”。计算机世界里,软件的第一刀永远是切开”为机器打工的(系统软件)“和”为用户打工的(应用软件)”。

变式自测:以下哪个属于系统软件?(提示:DBMS 是管理数据的系统软件,而非直接面向终端用户的应用软件。答案:数据库管理系统(B)。)


[CO] 运算器的真正灵魂

Question

运算器虽有许多部件组成,但核心部件是()

A. 数据总线 B. 算术逻辑运算单元 C. 多路开关 D. 累加器

My Answer

我的选择:A 理由:混淆了核心与周边。

Correct Answer

正确答案:B(算术逻辑运算单元) 正解

  1. 运算器的主要功能是进行算术运算(加减乘除)和逻辑运算(与或非)。
  2. 在硬件电路中,真正执行这些运算操作的物理逻辑门阵列被称为 ALU(算术逻辑单元),它是运算器绝对的核心。

Error Pattern

核心与周边的混淆——数据总线只是负责”搬运数据”的高速公路,累加器(ACC)只是负责”暂存结果”的仓库。它们都不是真正执行”计算”动作的执行体。

Core Concept

  • 运算器
  • ALU

Expected Context

  • 笔记路径:CPU 与流水线、数据的表示与运算
  • 检索关键词:运算器、ALU 算术逻辑单元、数据总线、累加器 ACC、算术运算、逻辑运算

Fix Plan

把运算器想象成一个加工厂。总线是传送带,累加器是临时货架,而 ALU 才是那台真正的加工机器。

变式自测:运算器中负责执行算术逻辑运算的核心部件是?(提示:ALU 是真正执行加减乘除和逻辑运算的硬件单元。答案:ALU(C)。)


[CO] PC 与 IR 的时序交接

Question

在 CPU 中,保存当前指令的寄存器是()

A. 主存地址寄存器 B. 程序计数器 C. 指令寄存器 D. 状态标志寄存器

My Answer

我的选择:A(曾选) 理由:极其容易混淆 PC 与 IR 的职责边界。

Correct Answer

正确答案:C(指令寄存器) 正解

  1. PC(程序计数器):存放的是下一条要执行的指令在主存中的地址。它具有自动加 1 的功能。
  2. IR(指令寄存器):存放的是当前正在执行的指令本身(包含操作码和地址码)。
  3. MAR(主存地址寄存器):仅仅负责在访存时充当地址的暂存器,它根本不管当前传的是指令还是数据。

Error Pattern

寄存器职能错位——极其容易混淆 PC 与 IR 的职责边界。PC 指向的是”未来”,而 IR 掌握的是”现在”。

Core Concept

  • CPU 寄存器
  • PC
  • IR

Expected Context

  • 笔记路径:CPU 与流水线、指令系统
  • 检索关键词:PC 程序计数器(下一条地址)、IR 指令寄存器(当前指令)、MAR、自动加 1、指令周期

Fix Plan

指令周期流水线记法:取指周期结束的标志,就是从主存拿到的指令顺利被存入了 IR 中;与此同时,PC 已经悄悄加 1,指向了下一条指令。

变式自测:程序计数器(PC)中存放的是?(提示:PC 指向”未来”,IR 掌握”现在”。答案:下一条将要执行的指令的地址(B)。)


[CO] 微程序层的虚实之辩

Question

关于计算机系统层次结构的叙述,下列错误的是()

I. 汇编语言和机器语言都是机器级语言 II. 对于微程序机器层来说,它是一个实实在在的硬件层面,由微程序解释机器指令

A. 仅 I | B. 仅 II | C. I 和 II | D. 均正确

My Answer

我的选择:原文未明确我当时的具体选项 理由:被”微程序”这个带有底层色彩的词汇骗了,潜意识认为微程序是纯硬件层面。

Correct Answer

正确答案:B(仅 II) 正解

  1. 机器级语言:机器语言(0/1)和汇编语言(助记符)都与具体的硬件架构强绑定,两者统称为机器级语言,所以 I 是正确的表述。
  2. 微程序机器层(M0):这是传统硬布线控制器的进化产物。它将一条极其复杂的机器指令,拆解为一段微小的代码(微程序),并把这段代码烧录在只读存储器(Control Memory)中。
  3. 虚实边界:既然是存放于存储器中的代码,它就是一种软件(通常被称为固件 Firmware),具有软件的灵活性,因此它绝不是一个实实在在的纯硬件层面。故 II 错误。

Error Pattern

固件的物理属性认知错误——被”微程序”这个带有底层色彩的词汇骗了。微程序虽然跑在 CPU 内部,但它本质上依然是”代码”,而不是硅晶体硬件。

Core Concept

  • 微程序控制
  • 系统层次结构

Expected Context

  • 笔记路径:CPU 与流水线、指令系统
  • 检索关键词:微程序、固件 Firmware、微程序机器层 M0、控制存储器 ROM、软件与硬件交界面、系统层次结构

Fix Plan

408 中只要看到”微程序”、“微指令”,立刻在脑海里打上”软件与硬件的交界面”、“固件”的标签。它不是纯电路!

变式自测:微程序机器层的微程序存储在什么介质中?(提示:微程序固化在 CPU 内部的控制存储器中,属于固件范畴。答案:控制存储器(ROM)(B)。)


[CO] 性能指标的全局视野

Question

对于计算机系统的性能指标,以下可用于评价的是()

I. IPC | II. MIPS | III. 字长 | IV. CPI

A. I、III B. II、III、IV C. I、III、IV D. I、II、III、IV

My Answer

我的选择:B 理由:漏认了 IPC。在 408 考纲中,通常重点强调 CPI,导致对 IPC 感到陌生而不敢选。

Correct Answer

正确答案:D(I、II、III、IV) 正解

  1. CPI(Cycles Per Instruction):执行一条指令所需的平均时钟周期数。
  2. IPC(Instructions Per Clock):每个时钟周期能执行的平均指令条数。它是 CPI 的倒数(IPC = 1 / CPI),在多发射流水线(超标量 CPU)中极为常用(IPC 通常大于 1)。
  3. MIPS:每秒执行多少百万条指令。
  4. 字长:一次能处理的二进制数据位数(如 64 位 CPU)。字长越长,计算精度越高,自然是重要的性能评价指标。 所以四者全部是合法且常用的性能指标。

Error Pattern

指标遗漏——漏认了 IPC。在 408 考纲中,通常重点强调 CPI,导致对 IPC 感到陌生而不敢选。

Core Concept

  • 计算机性能指标
  • CPI
  • IPC

Expected Context

  • 笔记路径:CPU 与流水线、数据的表示与运算
  • 检索关键词:性能指标、CPI、IPC = 1/CPI、MIPS、字长、超标量多发射流水线

Fix Plan

互为倒数的孪生兄弟:看到 CPI 就要想到 IPC。在现代 CPU(多核、超标量)的宣传中,IPC 提升往往比主频提升更能代表架构的实质性进步。

变式自测:某 CPU 的 CPI 为 0.5,则其 IPC 为?(提示:IPC = 1 / CPI。答案:2(C)。)


[CO] 硬件执行的唯一法则

Question

计算机硬件能直接执行的只有()

A. 符号语言 B. 机器语言 C. 汇编语言 D. 机器语言和汇编语言

My Answer

我的选择:C 理由:误以为汇编语言已经足够底层,硬件可以直接”看懂”如 MOV AX, 1 这样的代码。这是一种没有真正理解硅基半导体工作原理的错觉。

Correct Answer

正确答案:B(机器语言) 正解

  1. 硬件的物理本质:CPU 是由成千上万个逻辑门构成的,它只能识别电压的高与低(即逻辑上的 0 和 1)。
  2. 机器语言:就是纯粹的二进制 01 序列,它是唯一能直接驱动逻辑门电平翻转的语言,因此是硬件唯一直接执行的语言。
  3. 汇编语言:是机器语言的”拼音化/助记符化”(即选项 A 的符号语言),虽然与机器指令一一对应,但只要是英文字母,硬件就绝对看不懂,必须经过汇编程序翻译成 01 序列。

Error Pattern

汇编语言的幻觉——误以为汇编语言已经足够底层,硬件可以直接”看懂”如 MOV AX, 1 这样的代码。这是一种没有真正理解硅基半导体工作原理的错觉。

Core Concept

  • 机器语言
  • 汇编语言

Expected Context

  • 笔记路径:指令系统
  • 检索关键词:机器语言(二进制)、汇编语言(助记符)、逻辑门、硬件直接执行、翻译过程

Fix Plan

“直接执行” ⇒ 必须是 0 和 1。其他任何带有英文字母的语言(即使是极其底层的汇编),都必须经历翻译过程。

变式自测:以下哪种语言能被 CPU 硬件直接识别并执行?(提示:只有二进制形式的机器语言才能直接驱动逻辑门电路。答案:机器语言(C)。)


[CO] 汇编语言与硬件的强耦合

Question

关于各类级别语言的描述中,正确的是()

I. 可用高级语言和低级语言编写出功能等效的程序 II. 低级语言的执行效率一般是高于高级语言的 III. 机器语言源程序可以直接在机器上执行,而高级语言和汇编语言不可以 IV. 汇编语言与机器结构无关

A. I、III、IV B. I、II、III C. II、III、IV D. I、II、IV

My Answer

我的选择:A 理由:将 IV(汇编语言与机器结构无关)当作了正确选项,这是极其离谱的常识性错误。

Correct Answer

正确答案:B(I、II、III) 正解

  1. 等效性与效率:任何图灵完备的语言都能实现相同的功能(I 对)。低级语言直接操作硬件,没有编译器生成的冗余代码,效率通常更高(II 对)。
  2. 执行条件:只有机器语言(0 和 1)能被硬件直接执行(III 对)。
  3. 与硬件的耦合度:汇编语言充斥着大量的通用寄存器名(如 x86 的 EAX、ARM 的 R0),不同的 CPU 拥有完全不同的 ISA(指令集架构),因此汇编语言与机器结构高度相关/完全绑定(IV 错)。

Error Pattern

致命选项组合失误——将 IV(汇编语言与机器结构无关)当作了正确选项,这是极其离谱的常识性错误。高级语言才是与硬件无关的。

Core Concept

  • 汇编语言
  • ISA
  • 语言层级

Expected Context

  • 笔记路径:指令系统
  • 检索关键词:汇编语言与 ISA 绑定、语言层级、图灵完备、执行效率、高级语言与硬件无关

Fix Plan

排除法秒杀:做多选题时,只要一眼判定”汇编语言绝对依赖于底层机器指令集架构”,直接排除所有包含 IV 的选项,瞬间锁定答案 B。

变式自测:汇编语言与机器结构的关系是?(提示:不同的 CPU 架构(x86、ARM、RISC-V)有完全不同的汇编指令集。答案:高度依赖具体的 ISA(B)。)


术语表

  • 摩尔定律:当价格不变时,集成电路上可容纳的元器件数目约每隔 18-24 个月增加一倍,性能提升一倍(或成本降低一半)。
  • 量子隧穿效应:半导体工艺逼近原子尺度时,电子可能穿越势垒的量子现象,是摩尔定律失效的物理根源之一。
  • 地址译码器:主存储器内部的硬件单元,将 MAR 传来的地址信号转化为某根字线的片选信号。
  • CPU 结构:CPU 由运算器和控制器组成,包括 ALU、通用寄存器、PC、IR、CU、MAR、MDR 等部件。
  • 主存结构:主存由存储体、地址译码器和读写控制电路组成。
  • 冯·诺依曼架构:指令和数据以二进制形式存放在同一存储器中,CPU 通过指令周期的不同阶段(取指/执行)来区分二者。
  • 指令周期:CPU 从取指令到执行完毕所经过的时间,包括取指周期、间址周期、执行周期和中断周期。
  • MAR(Memory Address Register):地址寄存器,存放访存地址,其位数决定最大可寻址的存储单元个数。
  • MDR(Memory Data Register):数据寄存器,存放从内存读出或写入内存的数据,其位数反映存储字长。
  • 运算器:CPU 中负责算术运算和逻辑运算的部件,核心是 ALU。
  • 控制器:CPU 中负责指令译码和发出控制信号的部件,包括 PC、IR、CU 等。
  • ALU(算术逻辑单元):运算器的核心部件,真正执行加减乘除和逻辑运算的硬件电路。
  • PC(程序计数器):存放下一条要执行的指令在主存中的地址,具有自动加 1 功能。
  • IR(指令寄存器):存放当前正在执行的指令本身(操作码 + 地址码)。
  • CPU 寄存器:CPU 内部的高速存储单元,包括通用寄存器、PC、IR、MAR、MDR 等。
  • 微程序:将复杂机器指令拆解为微指令序列,存储在控制存储器中,属于固件范畴。
  • 微程序控制:用微程序解释执行机器指令的控制方式,硬布线控制的替代方案。
  • 编译程序:将高级语言一次性全部翻译成汇编或机器语言(目标代码)的程序。
  • 汇编程序:将汇编语言翻译成机器语言的程序。
  • 系统软件:管理计算机系统、为应用软件提供服务的软件,包括操作系统、DBMS、编译器等。
  • 计算机系统层次结构:从微程序机器层到应用层的多层次抽象结构。
  • CPI(Cycles Per Instruction):执行一条指令所需的平均时钟周期数。
  • IPC(Instructions Per Clock):每个时钟周期能执行的平均指令条数,CPI 的倒数。
  • 计算机性能指标:评价计算机性能的指标集合,包括 CPI、IPC、MIPS、主频、字长等。
  • 逻辑门:实现基本逻辑运算(与、或、非)的电子电路,是 CPU 的基本构成单元。
  • 机器语言:二进制 01 序列,是硬件唯一能直接执行的语言。
  • 汇编语言:机器语言的助记符表示,与具体的 ISA 强绑定,需经汇编程序翻译后才能执行。
  • ISA(指令集架构):CPU 能够识别和执行的指令集合,决定了汇编语言的格式和功能。

相关链接


cd ..