如果说第一章是“背多分”,那第二章就是“懂多分”——计算机系统是软件设计师上午题的第一章,也是整张卷子的“开场白”。它看起来像把《计算机组成原理》压缩成了一章:CPU、进制、码制、浮点、校验码、流水线、存储、I/O、总线、加密、可靠性……名词密、公式多、图也不少。但把 2009 到 2021 年的真题摊开看,你会发现这一章的考法其实非常“老实”——同一个考点反复考,题干换个说法,答案几乎不变。

这一篇的解析不套固定格式:每个选项为什么对、为什么错都会说清楚;凡是《软件设计师教程(第5版)》第 1 章里有对应内容的知识点(1.1.2 中央处理单元、1.1.3 数据表示、校验码,1.2 存储系统/输入输出/总线,1.3 安全性与可靠性),都会标注出处和原话要点;计算题一律给出逐步推导。文末附速记清单、答案速查表和参考资料。

这一章在上午题里到底占多少分

先给你一个整体印象。上午题 75 分,计算机系统通常稳定占 6~9 分,而且分布很集中:

考点常见位置题量(按空计)难度命题风格
CPU 组成(运算器、控制器、PC)第 1~2 题15★★部件归属、寄存器作用
内存编址与容量计算第 2~5 题15★★★十六进制减法、芯片数
原反补移码、浮点第 3~6 题17★★★★求真值、范围、对阶
寻址方式第 4~6 题6★★概念辨析、速度排序
校验码(奇偶、海明、CRC)第 3~5 题10★★★海明码公式、码距
CISC 与 RISC第 2~6 题6★★对比表
流水线第 5~6 题13★★★★周期、执行时间、吞吐率
存储系统与 Cache第 2~5 题20★★★DRAM/SRAM、映射方式
中断、DMA、I/O第 2~6 题19★★★中断向量、并行性
总线第 3~6 题9★★★三总线、带宽计算
安全与加密第 7~11 题20★★★签名/证书、算法分类
系统可靠性第 2~4 题6★★★串并联公式
杂题(移位、CPI、安全分类)第 1~9 题14★★靠语言常识

三条主线,先把它们抓住:

  1. “算”的题:内存容量、码制真值、浮点范围、海明码、流水线、总线带宽、可靠性。这些题只要公式记准、进制别错,就是送分题。
  2. “认”的题:CPU 部件、CISC/RISC、存储器分类、Cache 映射、I/O 方式、加密算法分类。这些题靠对比表,考前必须能默写。
  3. “绕”的题:数字签名与数字证书、中断与异常、Cache 由谁映射。这些题不难,但命题人喜欢在“用谁的钥匙”上做文章。

一、CPU:运算器、控制器与指令执行

教材 1.1.2 节“中央处理单元”是这一节所有题的母答案。CPU 的功能有四个:程序控制、操作控制、时间控制、数据处理;CPU 主要由运算器、控制器、寄存器组和内部总线组成。

运算器的组成(教材原话要点):ALU(负责处理数据,实现对数据的算术运算和逻辑运算)、累加寄存器 AC(“当运算器的算术逻辑单元执行算术或逻辑运算时,为 ALU 提供一个工作区……运算的结果是放在累加器中的”)、数据缓冲寄存器 DR(“作为 CPU 和内存、外部设备之间数据传送的中转站”)、状态条件寄存器 PSW(保存进位 C、溢出 V、零 Z、负 N 等标志)。

控制器的组成:指令寄存器 IR(“当 CPU 执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入 IR 暂存”)、程序计数器 PC(“CPU 自动修改 PC 的内容,以便使其保存的总是将要执行的下一条指令的地址……修改的过程通常只是简单地对 PC 加 1;当遇到转移指令时,后继指令的地址……得到”)、地址寄存器 AR(“保存当前 CPU 所访问的内存单元的地址”)、指令译码器 ID(“对指令中的操作码字段进行分析解释”)。

1.1 运算器

真题 1 2014 上半年 · 题 1

在 CPU 中,常用来为 ALU 执行算术逻辑运算提供数据并暂存运算结果的寄存器是( )。

  • A程序计数器
  • B状态寄存器
  • C通用寄存器
  • D累加寄存器
查看答案与解析收起答案与解析
答案D

A. 程序计数器——错,PC 存的是“下一条指令的地址”,与运算数据无关。B. 状态寄存器——错,PSW 保存的是进位、溢出、零、负等标志位,不是运算数据的工作区。C. 通用寄存器——错,通用寄存器虽然也能放数据,但“专门为 ALU 提供工作区并暂存结果”是累加器的职责描述。D. 累加寄存器——对,教材 1.1.2 节原话:“AC 是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为 ALU 提供一个工作区……运算的结果是放在累加器中的”。

真题 2 2014 下半年 · 题 3

属于 CPU 中算术逻辑单元的部件是( )。

  • A程序计数器
  • B加法器
  • C指令寄存器
  • D指令译码器
查看答案与解析收起答案与解析
答案B

A. 程序计数器——错,属于控制器(存下一条指令地址)。B. 加法器——对,ALU 内部包含加法器、移位器等算术运算部件,教材图 1-1 中 ALU 直接挂在数据总线上完成算术逻辑运算。C. 指令寄存器——错,属于控制器(暂存当前指令)。D. 指令译码器——错,属于控制器(翻译操作码)。

真题 3 2017 上半年 · 题 1

CPU 执行算术运算或者逻辑运算时,常将源操作数和结果暂存在( )中。

  • A程序计数器(PC)
  • B累加器(AC)
  • C指令寄存器(IR)
  • D地址寄存器(AR)
查看答案与解析收起答案与解析
答案B

A. PC——错,存下一条指令地址。B. AC——对,教材原话:执行减法前“先将被减数取出暂存在 AC 中,再从内存储器中取出减数,然后同 AC 的内容相减,将所得的结果送回 AC 中”——源操作数和结果都在 AC 里暂存。C. IR——错,暂存的是指令本身。D. AR——错,暂存的是内存地址。

1.2 控制器

真题 4 2009 下半年 · 题 1

以下关于 CPU 的叙述中,错误的是( )。

  • ACPU 产生每条指令的操作信号并将操作信号送往相应的部件进行控制
  • B程序计数器 PC 除了存放指令地址,也可以临时存储算术/逻辑运算结果
  • CCPU 中的控制器决定计算机运行过程的自动化
  • D指令译码器是 CPU 控制器中的部件
查看答案与解析收起答案与解析
答案B

A——对,这正是教材“操作控制”的定义:“一条指令功能的实现需要若干操作信号配合来完成,CPU 产生每条指令的操作信号并将操作信号送到对应部件”。B——错误:PC 只存指令地址,“临时存储算术/逻辑运算结果”是累加器 AC 的活,选 B。C——对,教材:“控制器用于控制整个 CPU 的工作,它决定了计算机运行过程的自动化”。D——对,ID 是控制器的部件(对操作码译码)。

真题 5 2010 上半年 · 题 5

计算机指令一般包括操作码和地址码两部分,为分析执行一条指令,其( )。

  • A操作码应存入 IR,地址码应存入 PC
  • B操作码应存入 PC,地址码应存入 IR
  • C操作码和地址码都应存入 IR
  • D操作码和地址码都应存入 PC
查看答案与解析收起答案与解析
答案C

C——对,教材原话:“当 CPU 执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入 IR 暂存”——整条指令(操作码 + 地址码)都进 IR。A、B——错,PC 是“程序计数器”,只存指令地址,不存指令内容;教材还明确 PC 的修改“通常只是简单地对 PC 加 1”。D——错,PC 不装指令。

真题 6 2011 下半年 · 题 5

在 CPU 的寄存器中,( )对用户是完全透明的。

  • A程序计数器
  • B指令寄存器
  • C状态寄存器
  • D通用寄存器
查看答案与解析收起答案与解析
答案B

B. IR——对,教材说 IR 由硬件自动使用(取指后自动送入、译码器自动读取),程序员无法访问——“对用户透明”。A. PC——汇编层面可访问(转移指令本质就是改 PC)。C. 状态寄存器——PSW 的标志位可以被条件跳转指令测试。D. 通用寄存器——程序员天天用。

真题 7 2011 下半年 · 题 6

CPU 中译码器的主要作用是进行( )。

  • A地址译码
  • B指令译码
  • C数据译码
  • D选择多路数据至 ALU
查看答案与解析收起答案与解析
答案B

B. 指令译码——对,教材:指令译码器“对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号”。A. 地址译码——错,那是存储器/译码器电路的活。C. 数据译码——不存在这个说法。D——多路选择是 ALU 内部的数据通路,不是译码器的主要作用。

真题 8 2012 下半年 · 题 1

在 CPU 中,( )不仅要保证指令的正确执行,还要能够处理异常事件。

  • A运算器
  • B控制器
  • C寄存器组
  • D内部总线
查看答案与解析收起答案与解析
答案B

B. 控制器——对,教材原话:“控制器用于控制整个 CPU 的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件”。A. 运算器——只负责算术逻辑运算。C. 寄存器组——只负责暂存。D. 内部总线——只是数据通路。

真题 9 2019 上半年 · 题 1

计算机执行指令的过程中,需要由( )产生每条指令的操作信号并将信号送往相应的部件进行处理。

  • ACPU 的控制器
  • BCPU 的运算器
  • CDMA 控制器
  • DCache 控制器
查看答案与解析收起答案与解析
答案A

A——对,教材“操作控制”的定义:“CPU 产生每条指令的操作信号并将操作信号送到对应部件,控制相应的部件按指令的功能要求进行操作”。B. 运算器——执行运算,不发控制信号。C. DMA 控制器——负责内存与外设间的成块传送。D. Cache 控制器——管理高速缓存。

1.3 程序计数器 PC:永远盯着“下一条”

真题 10 2010 上半年 · 题 1

为实现程序指令的顺序执行,CPU( )中的值将自动加 1。

  • A指令寄存器(IR)
  • B程序计数器(PC)
  • C地址寄存器(AR)
  • D指令译码器(ID)
查看答案与解析收起答案与解析
答案B

B. PC——对,教材原话:“CPU 自动修改 PC 的内容,以便使其保存的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对 PC 加 1”。A. IR——存当前指令,不自增。C. AR——存当前访问的内存地址。D. ID——译码器,无存储功能。

真题 11 2011 上半年 · 题 1

在 CPU 中用于跟踪指令地址的寄存器是( )。

  • A地址寄存器(MAR)
  • B数据寄存器(MDR)
  • C程序计数器(PC)
  • D指令寄存器(IR)
查看答案与解析收起答案与解析
答案C

C. PC——对,“跟踪指令地址”是 PC 的专属描述。A. MAR/AR——存当前访问的内存地址,被动接收。B. MDR/DR——中转数据。D. IR——存当前指令本身。

真题 12 2016 下半年 · 题 2

计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将( )的内容送到地址总线上。

  • A指令寄存器(IR)
  • B通用寄存器(GR)
  • C程序计数器(PC)
  • D状态寄存器(PSW)
查看答案与解析收起答案与解析
答案C

取指令的第一步是把 PC 的内容送到地址总线,按地址读出指令送入 IR——所以选 C。A. IR——存的是已经取到的指令,是取指的“终点”。B. GR——存运算数据。D. PSW——存标志位。

真题 13 2018 下半年 · 题 1

CPU 在执行指令的过程中,会自动修改( )的内容,以便使其保持的总是将要执行的下一条指令的地址。

  • A指令寄存器
  • B程序计数器
  • C地址寄存器
  • D指令译码器
查看答案与解析收起答案与解析
答案B

题干“自动修改……总是将要执行的下一条指令的地址”就是教材 PC 定义的原文(“CPU 自动修改 PC 的内容,以便使其保存的总是将要执行的下一条指令的地址”),选 B。A——IR 由取指过程填充,不是“自动修改为下一条指令地址”;C——AR 配合访存;D——ID 只译码。

真题 14 2020 下半年 · 题 2

计算机中提供指令地址的程序计数器 PC 在( )中。

  • A控制器
  • B运算器
  • C存储器
  • DI/O 设备
查看答案与解析收起答案与解析
答案A

A. 控制器——对,教材图 1-1 里 PC 画在控制器虚线框内(与指令寄存器、指令译码器、时序控制相邻)。B. 运算器——只有 ALU、AC、DR、PSW。C——很多人误以为 PC 是“存储器”,其实它是控制器里的一个寄存器,只是装的内容是内存地址。D——无关。

真题 15 2021 上半年 · 题 1

在 CPU 中,用( )给出将要执行的下一条指令在内存中的地址。

  • A程序计数器
  • B指令寄存器
  • C主存地址寄存器
  • D状态条件寄存器
查看答案与解析收起答案与解析
答案A

A. PC——对,“给出将要执行的下一条指令在内存中的地址”就是 PC 的定义。2010 上、2011 上、2016 下、2018 下、2020 下、2021 上——PC 的题换了六种说法,答案没变过。B. IR——装当前指令;C——主存地址寄存器(AR/MAR)装当前访问地址;D——装标志位。

1.4 CPU 部分的“一句话判断法”

考前如果只剩五分钟,记住这张表:

题干关键词选谁
为 ALU 提供数据、暂存运算结果累加寄存器 AC
属于 ALU 的部件加法器
装当前正在执行的整条指令指令寄存器 IR
装下一条指令的地址、自动加 1、跟踪指令地址程序计数器 PC
对操作码进行翻译指令译码器 ID
装当前访问的内存单元地址地址寄存器 AR
产生操作信号、处理异常、决定自动化控制器
对用户完全透明指令寄存器 IR

二、数据表示:从编址到浮点

这一节是整章计算量最大的部分,拆成四块:内存编址、码制、浮点、寻址。

内存编址的底层公式只有一个:存储单元数 = 末地址 − 首地址 + 1。然后按编址单位换算——按字节编址时单元数就是字节数;按字编址时字节数要除以“字长/8”。芯片数 = 总容量 ÷ 单片容量,位宽不够还要位扩展。

码制(教材 1.1.3 节原话要点):

  • 原码:最高位是符号位,0 表示正号,1 表示负号,其余位表示绝对值;0 有两种表示([+0]原=00000000,[−0]原=10000000)。
  • 反码:正数与原码相同,负数是“其绝对值按位求反”;0 也有两种表示。
  • 补码:正数的补码与其原码和反码相同,“负数的补码则等于其反码的末位加 1”;0 有唯一的编码([+0]补=00000000)。
  • 移码:“在数值 X 上增加一个偏移量 2^(n−1) 来定义,常用于表示浮点数中的阶码”;实际在偏移 2^(n−1) 的情况下,只要将补码的符号位取反便可获得相应的移码表示。
  • n 位补码的范围:−2^(n−1) ~ 2^(n−1)−1(最小值 −2^(n−1) 是人为定义,如 8 位补码的 −128 = 10000000)。

浮点数(教材 1.1.3 节 + IEEE 754):N = 尾数 × 基数^阶码;阶码的长度决定表示范围,尾数的长度决定精度;IEEE 754 的“E 为指数(阶码),用移码表示;尾数长度为 P,用原码表示”,且“约定小数点左边隐含有一位,通常这位数就是 1”。

2.1 内存编址与容量:三步法,别急着按计算器

真题 16 2010 下半年 · 题 4

设用 2K×4 位的存储器芯片组成 16K×8 位的存储器(地址单元为 0000H~3FFFH,每个芯片的地址空间连续),则地址单元 0B1FH 所在芯片的最小地址编号为( )。

  • A0000H
  • B0800H
  • C2000H
  • D2800H
查看答案与解析收起答案与解析
答案B

计算过程:

① 芯片数 = (16K×8) ÷ (2K×4) = 16 片;每 2 片 4 位芯片拼成一个 2K×8 组,共 8 组,每组覆盖 2K = 0800H 个地址。

② 8 组的地址区间依次为:0000H~07FFH、0800H~0FFFH、1000H~17FFH、1800H~1FFFH、2000H~27FFH、2800H~2FFFH、3000H~37FFH、3800H~3FFFH。

③ 0B1FH 落在第二组 0800H~0FFFH → 该组芯片的最小地址编号为 0800H,选 B。

A——第一组的最小地址;C、D——第五、六组的最小地址。题目问 0B1FH(0B1F ÷ 0800 = 1 余 …,商 1 即第二组)。

真题 17 2012 上半年 · 题 2

内存单元按字节编址,地址 0000A000H~0000BFFFH 共有( )个存储单元。

  • A8192K
  • B1024K
  • C13K
  • D8K
查看答案与解析收起答案与解析
答案D

计算过程:BFFFH − A000H + 1 = 2000H = 2 × 16³ = 8192 字节 = 8K,选 D。

A. 8192K——单位陷阱!8192 是“字节数”,换成 K 要除以 1024,8192K 是它的 1024 倍;B. 1024K——也不对;C. 13K——把 BFFF−A000 算成 B−A=1、F+1 之类的错位结果。

易错提醒:这类题的坑通常不在减法,而在单位换算——先算出字节数,再除以 1024 变 K。

真题 18 2013 上半年 · 题 5、6

地址编号从 80000H 到 BFFFFH 且按字节编址的内存容量为(5)KB,若用 16K×4bit 的存储器芯片构成该内存,共需(6)片芯片。

(5)
  • A128
  • B256
  • C512
  • D1024
(6)
  • A8
  • B16
  • C32
  • D64
查看答案与解析收起答案与解析
答案(5)B (6)C

计算过程:

① 容量:BFFFFH − 80000H + 1 = 40000H = 4 × 16⁴ = 262144 字节 = 256KB,选 B。

② 芯片数:16K×4bit 的芯片要 2 片位扩展才能拼出 8 位宽度;256KB ÷ 16KB = 16 组,每组 2 片 → 共 16 × 2 = 32 片,选 C。

(5)A/C/D 分别对应少算/多算一个 16 的倍数;(6)A=8 是忘记位扩展(只算了 16 组里的 8 组),B=16 是忘记位扩展,D=64 是把组数和片数弄反。

真题 19 2014 上半年 · 题 6

若用 256K×8bit 的存储器芯片,构成地址 40000000H 到 400FFFFFH 且按字节编址的内存区域,则需( )片芯片。

  • A4
  • B8
  • C16
  • D32
查看答案与解析收起答案与解析
答案A

计算过程:① 容量:400FFFFFH − 40000000H + 1 = FFFFFH + 1 = 100000H = 2²⁰ = 1MB。② 芯片:256K×8bit = 2¹⁸ 字节/片;2²⁰ ÷ 2¹⁸ = 4 片,选 A。芯片是 8 位宽,与编址宽度一致,无需位扩展。

真题 20 2014 下半年 · 题 4

内存按字节编址,从 A5000H 到 DCFFFH 的区域其存储容量为( )。

  • A123KB
  • B180KB
  • C223KB
  • D224KB
查看答案与解析收起答案与解析
答案D

计算过程:DCFFFH − A5000H + 1 = 37FFFH + 1 = 38000H。38000H = 3 × 16⁴ + 8 × 16³ = 196608 + 32768 = 229376 字节 = 229376 ÷ 1024 = 224KB,选 D。

技巧:十六进制减法逐位借位——DCFFF − A5000:个位 F−0=F,十位 F−0=F,百位 F−0=F,千位 C−5=7,万位 D−A=3 → 37FFF;再加 1 进位到 38000。

真题 21 2015 下半年 · 题 5

内存按字节编址,从 B3000H 到 DABFFH 的区域的存储容量为( )KB。

  • A123
  • B159
  • C163
  • D194
查看答案与解析收起答案与解析
答案B

计算过程:DABFFH − B3000H + 1 = 27C00H。27C00H = 2×16⁴ + 7×16³ + 12×16² = 131072 + 28672 + 3072 = 162816 字节 = 162816 ÷ 1024 = 159KB,选 B。

验证技巧:27C00H ÷ 400H(=1KB)= 159 余 0 —— 直接得 159KB,比二进制展开更快。

真题 22 2016 上半年 · 题 5

内存按字节编址,从 A1000H 到 B13FFH 的区域的存储容量为( )KB。

  • A32
  • B34
  • C65
  • D67
查看答案与解析收起答案与解析
答案C

计算过程:B13FFH − A1000H + 1 = 10400H。10400H = 1×16⁴ + 4×16² = 65536 + 1024 = 66560 字节 = 65KB,选 C。

技巧:10400H = 10.4 × 1000H = 10.4KB?——错,十六进制没有小数!老老实实按位展开:10400H = 10000H + 400H = 64KB + 1KB = 65KB。

真题 23 2017 下半年 · 题 3

内存按字节编址。若用存储容量为 32K×8bit 的存储器芯片构成地址从 A0000H 到 DFFFFH 的内存,则至少需要( )片芯片。

  • A4
  • B8
  • C16
  • D32
查看答案与解析收起答案与解析
答案B

计算过程:① 容量:DFFFFH − A0000H + 1 = 40000H = 2¹⁸ = 256KB。② 芯片:32K×8bit = 2¹⁵ 字节 = 32KB;256KB ÷ 32KB = 8 片,选 B。芯片 8 位宽与字节编址一致,无需位扩展。

真题 24 2019 下半年 · 题 4、5

内存按字节编址,地址从 A0000H 到 CFFFFH 的内存,共有(4)字节,若用 64K×8bit 的存储器芯片构成该内存空间,至少需要(5)片。

(4)
  • A80KB
  • B96KB
  • C160KB
  • D192KB
(5)
  • A2
  • B3
  • C5
  • D8
查看答案与解析收起答案与解析
答案(4)D (5)B

计算过程:① CFFFFH − A0000H + 1 = 30000H = 3 × 16⁴ = 196608 字节 = 192KB,选 D。② 64K×8bit = 64KB/片;192KB ÷ 64KB = 3 片,选 B。

三个坑:① 减完忘了加 1(A0000H 到 CFFFFH 是闭区间,两端都算);② 30000H 当成十进制 30000(它是 3×16⁴);③ 位宽陷阱(本题 8 位芯片无位扩展,若给 64K×4bit 就要乘 2)。

2.2 原码、反码、补码、移码:一张表解决

设机器字长 n,最高位符号位(教材 1.1.3 节定义与例 1.3、1.4):

编码正数负数0 的编码n 位范围
原码符号位 0 + 绝对值符号位 1 + 绝对值两种(±0)−(2^(n−1)−1) ~ 2^(n−1)−1
反码同原码绝对值按位求反两种(±0)同原码
补码同原码反码末位加 1唯一−2^(n−1) ~ 2^(n−1)−1
移码补码符号位取反补码符号位取反唯一同补码
真题 25 2009 上半年 · 题 5

计算机中常采用原码、反码、补码和移码表示数据,其中,编码相同的是( )。

  • A原码和补码
  • B反码和补码
  • C补码和移码
  • D原码和移码
查看答案与解析收起答案与解析
答案C

这道题问的是“0 的编码是否唯一 + 编码体系的对应关系”。C. 补码和移码——教材原话:“实际在偏移 2^(n−1) 的情况下,只要将补码的符号位取反便可获得相应的移码表示”——移码与补码只差符号位,0 的编码都唯一,归为同一类编码体系,选 C。A. 原码和补码——错,正数相同但负数规则不同(反码加 1 vs 直接取绝对值)。B. 反码和补码——错,负数差“末位加 1”。D. 原码和移码——错得更远。

真题 26 2010 上半年 · 题 20

若某整数的 16 位补码为 FFFFH,则该数的十进制值为( )。

  • A0
  • B−1
  • C−32768
  • D32767
查看答案与解析收起答案与解析
答案B

计算过程:FFFFH = 1111 1111 1111 1111,符号位 1 → 负数。求真值:先减 1 得 FFFEH,再取反得 0001H = 1 → 真值 = −1。选 B。

快捷结论:全 1 的补码就是 −1(任何位宽都成立)。

真题 27 2010 下半年 · 题 2

若某计算机采用 8 位整数补码表示数据,则下列运算中会产生溢出的是( )。(选项为加减组合式)

查看答案与解析收起答案与解析
答案127 + 1(原卷选 C)

完整分析:8 位补码的范围是 −128 ~ +127。127+1 = 128,超出上界 +127 → 上溢。而 −127−1 = −128 恰好达到下界(8 位补码的最小值 −128 是人为定义的 10000000),不溢出。

判断口诀:两个正数相加得负 → 上溢;两个负数相加得正 → 下溢;本题问“会产生溢出”的运算,就是 127+1(原卷四个选项为 127+1、−127−1、−127+1、127−1 一类的组合,文字提取丢失了符号)。

真题 28 2011 上半年 · 题 4

原码表示法和补码表示法是计算机中用于表示数据的两种编码方法,在计算机系统中常采用补码来表示和运算数据,原因是采用补码可以( )。

  • A保证运算过程与手工运算方法保持一致
  • B简化计算机运算部件的设计
  • C提高数据的运算速度
  • D提高数据的运算精度
查看答案与解析收起答案与解析
答案B

B——对:补码把减法统一成加法,ALU 只需要一个加法器就能完成四则运算,简化了运算部件的设计。A——错,手工运算是“借位减法”,与补码运算过程完全不同。C——错,补码简化的是“部件”,不是直接提速。D——错,精度由字长决定,与码制无关。

真题 29 2014 上半年 · 题 2

某机器字长为 n,最高位是符号位,其定点整数的最大值为( )。

  • A2^(n−1)
  • B2^(n−1)−1
  • C2^n−1
  • D2^n
查看答案与解析收起答案与解析
答案B

推导:符号位固定为 0(正数),剩下 n−1 位全 1 时最大:0111…1 = 2^(n−1) − 1。选 B。

A. 2^(n−1)——错,n 位补码最大到 2^(n−1)−1,取不到 2^(n−1)(那是最小值 −2^(n−1) 的绝对值);C. 2^n−1——错,这是 n 位无符号数的最大值(没留符号位);D. 2^n——无意义。

真题 30 2016 上半年 · 题 3

如果 "2X" 的补码是 "90H",那么 X 的真值是( )。

  • A72
  • B−56
  • C56
  • D111
查看答案与解析收起答案与解析
答案B

计算过程:90H = 1001 0000,符号位 1 → 负数。求真值:取反 0110 1111,加 1 → 0111 0000 = 112 → 2X = −112 → X = −56,选 B。

A. 72——把 90H 当原码算绝对值还忘了负号;C. 56——算对了绝对值忘了负号;D. 111——把 90H 直接转十进制。

真题 31 2018 下半年 · 题 3

采用 n 位补码(包含一个符号位)表示数据,( )。

  • A可以直接表示数值 2^(n−1)
  • B可以直接表示数值 −2^(n−1)
  • C可以直接表示数值 2^n
  • D可以直接表示数值 −2^n
查看答案与解析收起答案与解析
答案D

n 位补码的范围是 −2^(n−1) ~ 2^(n−1)−1。A——错,2^n 超出范围。B——错,−2^n 也超出。C——错,2^(n−1) 无法直接表示(正数最大 2^(n−1)−1,因为 0 占了一个编码)。D——对,−2^(n−1) 是补码最小可表示值——教材例 1.3:8 位补码 −128 = 10000000 是“人为定义”的。

2.3 浮点数:阶码管范围,尾数管精度

浮点数 N = 尾数 × 基数^阶码(教材记作 N = 2^E × F)。IEEE 754(教材 1.1.3 节表 1-2):“E 为指数(阶码),用移码表示;(尾数)用原码表示”;单精度 32 位(尾数 23、阶码 8、偏移量 +127),双精度 64 位(尾数 52、阶码 11、偏移量 +1023)。且“约定小数点左边隐含有一位,通常这位数就是 1”。

真题 32 2009 下半年 · 题 3、4

浮点数的一般表示形式为 N = 2^E × F,其中 E 为阶码,F 为尾数。以下关于浮点表示的叙述中,错误的是(3);两个浮点数进行相加运算,应首先(4)。

(3)
  • A阶码的长度决定浮点表示的范围,尾数的长度决定浮点表示的精度
  • B工业标准 IEEE 754 浮点数格式中阶码采用移码、尾数采用原码表示
  • C规格化指的是阶码采用移码、尾数采用补码
  • D规格化表示要求将尾数的绝对值限定在区间 [0.5, 1)
(4)
  • A将较大的数进行规格化处理
  • B将较小的数进行规格化处理
  • C将这两个数的尾数相加
  • D统一这两个数的阶码
查看答案与解析收起答案与解析
答案(3)C (4)D

第(3)空:A——对,阶码管范围、尾数管精度。B——对,教材表 1-2 原话:“E 为指数(阶码),用移码表示;(尾数)用原码表示”。C——错误:规格化是尾数的操作(让尾数绝对值落在 [0.5, 1)),与“阶码用什么码制”无关——C 把格式规定和规格化混为一谈。D——对,规格化的定义。

第(4)空:阶码不同的两个浮点数,尾数的“小数点位置”不同,不能直接相加——必须先对阶(统一阶码,小阶向大阶看齐),再相加。选 D。A、B 的“规格化处理”是对阶之后才可能发生的操作。

真题 33 2011 上半年 · 题 5

计算机中的浮点数由三部分组成:符号位 S、指数部分 E(阶码)和尾数部分 M。在总长度固定的情况下,增加 E 的位数、减少 M 的位数可以( )。

  • A扩大可表示的数的范围同时降低精度
  • B扩大可表示的数的范围同时提高精度
  • C减小可表示的数的范围同时降低精度
  • D减小可表示的数的范围同时提高精度
查看答案与解析收起答案与解析
答案A

选 A。这道题考的是浮点数格式里“位数分配”的权衡。

浮点数的三个组成部分各有分工:

符号位 S:1 位,决定正负。

阶码 E:决定小数点要移动多少位,也就是表示范围。阶码位数越多,能表示的数越大(或越小)。

尾数 M:决定有效数字有多少位,也就是精度。尾数位数越多,能区分的相邻两个数越接近。

总长度固定,就意味着 E 和 M 是此消彼长的关系:E 多一位,M 就少一位。

本题“增加 E 的位数、减少 M 的位数”,结果就是:阶码范围变大 → 可表示数的范围扩大;尾数变短 → 有效位减少 → 精度降低。

B 错:范围和精度不可能同时提高,那需要增加总位数才能做到。

C、D 错:把方向说反了,E 变长不会缩小范围。

一句话记:阶码管范围,尾数管精度,总长固定就只能二选一。这也解释了单精度(32 位)与双精度(64 位)的区别——位数多了,才能同时兼顾范围和精度。

真题 34 2012 下半年 · 题 3

以下关于数的定点表示和浮点表示的叙述中,不正确的是( )。

  • A定点表示法表示的数常分为定点整数和定点小数两种
  • B定点表示法中,小数点需要占用一个存储位
  • C浮点表示法用阶码和尾数来表示数
  • D在总位数相同的情况下,浮点表示法可以表示更大的数
查看答案与解析收起答案与解析
答案B

A——对,教材:“定点整数(小数点在最低有效数值位之后)和定点小数(小数点在最高有效数值位之前)”。B——不正确:小数点的位置是约定好的,不需要占用存储位。C——对。D——对,同样的位数,浮点通过阶码能把数值“放大”到更大范围。

真题 35 2015 上半年 · 题 1

机器字长为 n 位的二进制数可以用补码来表示( )个不同的有符号定点小数。

  • A2^n
  • B2^(n−1)
  • C2^(n−1)−1
  • D2^n−1
查看答案与解析收起答案与解析
答案A

推导:n 位二进制共有 2^n 种编码。补码的 0 只有一种编码(不像原码/反码有 ±0),所以每种编码都对应一个不同的值——包括最小的 −1(定点小数的 −1 = 1.0000000)。因此能表示 2^n 个不同的有符号定点小数,选 A。

B、C、D——都少了编码,错在没意识到“补码 0 唯一”省下来的编码给了 −1。

真题 36 2015 下半年 · 题 3

浮点数能够表示的数的范围是由其( )的位数决定的。

  • A尾数
  • B阶码
  • C数符
  • D阶符
查看答案与解析收起答案与解析
答案B

B. 阶码——对,阶码决定小数点的位置能“浮动”多远,即数的范围。A. 尾数——决定精度(有效数字位数)。C. 数符——只决定正负。D. 阶符——只决定小数点往左还是往右移。

真题 37 2016 下半年 · 题 3

设 16 位浮点数,其中阶符 1 位、阶码值 6 位、数符 1 位、尾数 8 位。若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是( )。

查看答案与解析收起答案与解析
答案B(−2^63 ~ (1−2^−8)×2^63)

推导:阶符 1 位 + 阶码 6 位 = 7 位,移码表示的最大阶码 = 2⁶−1 = 63,最小 = −64。尾数 8 位补码的范围 = −1 ~ 1−2^−8。

① 最大正数:(1−2^−8) × 2^63(最大尾数 × 最大阶码);② 最小负数:−1 × 2^63 = −2^63(最小尾数 × 最大阶码)。

所以范围是 −2^63 ~ (1−2^−8)×2^63,选 B(原卷四个选项为上下界的组合,选 63 这一组)。

真题 38 2018 上半年 · 题 1

浮点数的表示分为阶和尾数两部分。两个浮点数相加时,需要先对阶,即( )(n 为阶差的绝对值)。

  • A将大阶向小阶对齐,同时将尾数左移 n 位
  • B将大阶向小阶对齐,同时将尾数右移 n 位
  • C将小阶向大阶对齐,同时将尾数左移 n 位
  • D将小阶向大阶对齐,同时将尾数右移 n 位
查看答案与解析收起答案与解析
答案D

选 D。对阶的原则是小阶向大阶看齐,且尾数右移。

为什么小阶向大阶看齐?假设 1.0×2³ 和 1.0×2⁵ 相加:

如果把大阶 5 降到 3,1.0×2⁵ 要写成 4.0×2³,尾数左移——尾数变长,可能超出尾数位宽而丢失高位,造成不可逆的精度损失。

反过来,把小阶 3 升到 5,1.0×2³ 写成 0.25×2⁵,尾数右移——丢掉的是低位,影响小得多。所以标准做法是“小阶向大阶看齐”。

为什么尾数右移?阶码每加 1,相当于数值乘了 2;要保持总值不变,尾数就得除以 2,即右移一位。阶差为 n,就右移 n 位。

A 错:方向反了(大阶向小阶),尾数左移还会让数值越算越大。B 错:方向反了,尾数右移也不匹配。C 错:方向对了,但尾数该右移却写成左移,等于数值被放大了 2ⁿ 倍。

一句话记:小阶变大阶,尾数往右挪。挪的时候低位被挤出去,这就是浮点加法会产生舍入误差的根源。

真题 39 2020 下半年 · 题 3

以下关于两个浮点数相加运算的叙述中,正确的是( )。

  • A首先进行对阶,阶码大的向阶码小的对齐
  • B首先进行对阶,阶码小的向阶码大的对齐
  • C不需要对阶,直接将尾数相加
  • D不需要对阶,直接将阶码相加
查看答案与解析收起答案与解析
答案B

B——对,小阶向大阶对齐(2018 上原题的文字版)。A——错,方向反了(大阶变小会丢失高位)。C、D——错,不对阶的加法/加阶码都没有意义——两数小数点位置不同,尾数直接相加毫无意义。

真题 40 2021 下半年 · 题 6

某机器的浮点数表示格式为“阶符 1 位、阶码 4 位、数符 1 位、尾数 10 位”(允许非规格化表示)。若阶码以补码表示,尾数以原码表示,则 1 0001 0 0000000001 表示的浮点数是( )。(选项为幂次表达式)

查看答案与解析收起答案与解析
答案B

推导:① 前两位“1 0001”是阶码部分(阶符 1 + 阶码值 4 位),按补码求真值:10001 为负数,取反加 1 得 11111 = 15 → 阶码 = −15。② 后 11 位“0 0000000001”是尾数部分:数符 0(正),尾数原码 0.0000000001 = 2^−10。

③ 相乘:2^−15 × 2^−10 = 2^−25 —— 对应选项 B(原选项为 2^−16×2^−10、2^−15×2^−10、2^−16×(1−2^−10)、2^−15×(1−2^−10) 的组合)。

2.4 寻址方式:谁跑得快,谁跑得远

寻址方式操作数在哪访存次数速度
立即寻址指令里(地址码字段就是操作数)0最快
寄存器寻址寄存器里0很快
直接寻址指令里给出操作数的内存地址1中等
寄存器间接寻址寄存器里放的是操作数地址1较慢
间接寻址内存里放的是操作数地址2慢
相对寻址PC + 偏移量1中等
真题 41 2011 上半年 · 题 2

指令系统中采用不同寻址方式的目的是( )。

  • A提高从内存获取数据的速度
  • B提高从外存获取数据的速度
  • C降低操作码的译码难度
  • D扩大寻址空间并提高编程灵活性
查看答案与解析收起答案与解析
答案D

A、B——错,寻址方式与内存/外存的“获取速度”无关(速度取决于存储器本身)。C——错,译码难度由指令格式决定。D——对,多种寻址方式让有限的指令位宽能访问更大的地址空间(如相对寻址、基址寻址),并让编程更灵活(间接寻址实现指针)。

真题 42 2011 下半年 · 题 1

若某条无条件转移汇编指令采用直接寻址,则该指令的功能是将指令中的地址码送入( )。

  • APC(程序计数器)
  • BAR(地址寄存器)
  • CAC(累加器)
  • DALU
查看答案与解析收起答案与解析
答案A

无条件转移的本质就是改写 PC——让下一条指令从目标地址取。直接寻址的地址码就是转移目标地址,送进 PC。选 A。B. AR——存访存地址;C. AC——存运算数据;D. ALU——运算部件。

真题 43 2012 上半年 · 题 4

若 CPU 要执行的指令为 MOV R1, #45(即将数值 45 传送到寄存器 R1 中),则该指令中采用的寻址方式为( )。

  • A直接寻址和立即寻址
  • B寄存器寻址和立即寻址
  • C相对寻址和直接寻址
  • D寄存器间接寻址和直接寻址
查看答案与解析收起答案与解析
答案B

选 B。要把指令拆成“目的操作数”和“源操作数”两部分看。

指令 MOV R1, #45 的含义是“把数值 45 送入寄存器 R1”。

目的操作数 R1:操作数就在寄存器里,指令中给出的是寄存器编号 → 寄存器寻址。

源操作数 #45:# 是立即数的标志,45 这个值本身写在指令中,不需要去内存或寄存器里取 → 立即寻址。

A 错:直接寻址要求操作数地址直接写在指令里(如 MOV R1, [1000H]),本题没有取地址的动作。

C 错:相对寻址是“PC + 偏移量”,用于跳转指令;本题是数据传送,不涉及。

D 错:寄存器间接寻址要求寄存器里存的是地址(如 MOV R1, [R2]),而本题 R1 是目的地、不是地址指针。

判别窍门:看操作数的“形态”——带 # 是立即数,带方括号是内存,光写寄存器名是寄存器寻址。

真题 44 2013 下半年 · 题 6

若某计算机字长为 32 位,内存容量为 2GB,按字编址,则可寻址范围为( )。

  • A1024M
  • B1GB
  • C512M
  • D2GB
查看答案与解析收起答案与解析
答案C

计算过程:2GB = 2³¹ 字节;字长 32 位 = 4 字节/字;按字编址的字数 = 2³¹ ÷ 2² = 2²⁹ = 512M,选 C。

A. 1024M——按 2 字节/字算的(错);B. 1GB——按字节编址的结果(没除以 4);D. 2GB——原始容量没换算。

真题 45 2015 下半年 · 题 4

在机器指令的地址字段中,直接指出操作数本身的寻址方式称为( )。

  • A隐含寻址
  • B寄存器寻址
  • C立即寻址
  • D直接寻址
查看答案与解析收起答案与解析
答案C

C. 立即寻址——对,地址字段里放的就是操作数本身(不是地址)。D. 直接寻址——地址字段里放的是“操作数的地址”。A. 隐含寻址——操作数隐含在指令或累加器中(地址字段省略)。B. 寄存器寻址——地址字段里放的是寄存器编号。

真题 46 2021 下半年 · 题 1

计算机指令系统采用多种寻址方式。立即寻址是指操作数包含在指令中,寄存器寻址是指操作数在寄存器中,直接寻址是指操作数的地址在指令中。这三种寻址方式获取操作数的速度( )。

  • A立即寻址最快,寄存器寻址次之,直接寻址最慢
  • B寄存器寻址最快,立即寻址次之,直接寻址最慢
  • C直接寻址最快,寄存器寻址次之,立即寻址最慢
  • D寄存器寻址最快,直接寻址次之,立即寻址最慢
查看答案与解析收起答案与解析
答案A

立即寻址的操作数就在指令里,取指时顺带获得,0 次访存;寄存器寻址要读寄存器(寄存器在 CPU 内部,很快);直接寻址要访问内存一次(最慢)。所以“立即 > 寄存器 > 直接”,选 A。

三、校验码:码距是根,三种码是枝

校验码这一块,先抓住一个概念——码距(两个合法码字之间至少相差的位数):码距 ≥ 2 才能检错,码距 ≥ 3 才能纠错。三种校验码都是它的推论:

校验码码距检错纠错关键点
奇偶校验2能(奇数位错)不能数 1 的个数
海明码3能能(1 位)2^k − 1 ≥ n + k
CRC2能不能模 2 除法,数据后接校验位
真题 47 2009 下半年 · 题 5

以下关于校验码的叙述中,正确的是( )。

  • A海明码利用多组数位的奇偶性来检错和纠错
  • B海明码的码距必须大于等于 1
  • C循环冗余校验码具有很强的检错和纠错能力
  • D循环冗余校验码的码距必定为 1
查看答案与解析收起答案与解析
答案A

A——对,海明码的本质就是“分组奇偶校验”:把数据位和校验位分成若干组,每组做奇偶校验,出错时各组校验结果的组合正好指向出错位的位号。B——错,“码距 ≥ 1”是废话(任何编码码距至少为 1),海明码的码距是 3。C——错,CRC 码距为 2,能检错不能纠错。D——错,码距为 1 的编码连检错都做不到。

真题 48 2017 下半年 · 题 5

以下关于海明码的叙述中,正确的是( )。

  • A海明码利用奇偶性进行检错和纠错
  • B海明码的码距为 1
  • C海明码可以检错但不能纠错
  • D海明码中数据位的长度与校验位的长度必须相同
查看答案与解析收起答案与解析
答案A

A——对,海明码利用多组奇偶性定位错误。B——错,海明码码距为 3(这样才能纠 1 位错)。C——错,海明码既能检错也能纠错。D——错,数据位 n 和校验位 k 由公式 2^k−1 ≥ n+k 决定,长度不必相同。

真题 49 2018 下半年 · 题 5

以下关于采用一位奇校验方法的叙述中,正确的是( )。

  • A若所有奇数位出错,则可以检测出该错误但无法纠正错误
  • B若所有偶数位出错,则可以检测出该错误并加以纠正
  • C若有奇数个数据位出错,则可以检测出该错误但无法纠正错误
  • D若有偶数个数据位出错,则可以检测出该错误并加以纠正
查看答案与解析收起答案与解析
答案C

奇校验的原理是让整个码字(数据位+校验位)中 1 的个数为奇数。C——对:奇数个位出错时 1 的个数的奇偶性改变,能检测到;但奇校验无法定位错误,所以不能纠错。A、B——错,“所有奇数位/偶数位”的说法不对——出错的位数是奇数还是偶数才是关键,与位的奇偶位置无关。D——错,偶数个位出错时奇偶性不变,检不出来。

真题 50 2009 上半年 · 题 1

海明校验码是在 n 个数据位之外增设 k 个校验位,从而形成一个 n+k 位的新的码字,使新的码字的码距比较均匀地拉大。n 与 k 的关系是( )。

  • A2^k − 1 ≥ n + k
  • B2^k − 1 ≤ n + k
  • C2^k ≥ n + k
  • D2^k ≤ n + k
查看答案与解析收起答案与解析
答案A

选 A(2k − 1 ≥ n + k)。这个不等式的每一项都有明确含义,理解了就不用背。

左边 2k − 1:k 个校验位能组合出 2k 种 0/1 状态。其中“全 0”用来表示“没有错误”,剩下的 2k − 1 种状态用来指示“哪一位错了”。

右边 n + k:编码后的总位数。数据位 n 个、校验位 k 个,一共 n+k 个位置,每个位置都可能出错,所以需要 n+k 种“错误位置”编码。

要让校验位能指出所有可能出错的位置,就必须:可用的错误编码数 ≥ 可能出错的位置数,即 2k − 1 ≥ n + k。

B 错:不等号方向反了,等于说“错误编码比位置还少”,无法定位。

C 错:漏掉了“减 1”。全 0 必须留给“无错”,不能用来表示错误位置,否则无法区分“没出错”和“第 0 位出错”。

D 错:方向反了,还漏了减 1。

用这个式子验算:n=16 时,k=4 得 15 ≥ 20(不成立),k=5 得 31 ≥ 21(成立),所以需要 5 位——和真题 52、53 的答案一致。

真题 51 2014 上半年 · 题 3

海明码利用奇偶性检错和纠错,通过在 n 个数据位之间插入 k 个校验位,扩大数据编码的码距。若 n = 48,则 k 应为( )。

  • A4
  • B5
  • C6
  • D7
查看答案与解析收起答案与解析
答案C

选 C。海明码的校验位个数由不等式决定:

2k − 1 ≥ n + k

其中 n 是数据位,k 是校验位,(n+k) 是编码后的总位数。含义是:k 个校验位能组合出 2k 种状态(去掉全 0 的一种,剩 2k−1 种),要足够指出“哪一位出错”(共 n+k 种可能)。

本题 n = 48,逐个试 k:

k = 5:2⁵ − 1 = 31,而 n + k = 53,31 < 53,不够。

k = 6:2⁶ − 1 = 63,而 n + k = 54,63 ≥ 54,够用。

所以最少需要 6 位。

A(4 位)、B(5 位)都不够:4 位只能表示 15 种状态,远少于 52 个可能位置。D(7 位)虽然够,但不是“最少”。

做题技巧:不用从 1 开始试,直接从 2k 接近 n 的量级起步——48 位数据,2⁵=32 明显不够,2⁶=64 刚好,一步定位。

真题 52 2016 下半年 · 题 4

已知数据信息为 16 位,最少应附加( )位校验位,以实现海明码纠错。

  • A3
  • B4
  • C5
  • D6
查看答案与解析收起答案与解析
答案C

选 C。海明码校验位个数的判定式是:

2k − 1 ≥ n + k

n 是数据位数,k 是校验位数,(n+k) 是编码后的总位数。

本题 n = 16,逐个试:

k = 4:2⁴ − 1 = 15,而 n + k = 20,15 < 20,不够。

k = 5:2⁵ − 1 = 31,而 n + k = 21,31 ≥ 21,够用。

所以最少 5 位。

A(3 位):2³−1 = 7,差得更远。B(4 位):刚才算过,不够。D(6 位):够但不是最少。

为什么 k=4 会差一点?因为 4 位校验位只能区分 15 种错误位置,而 16 位数据加上 4 位校验共 20 个位置,漏掉 5 个——错在这几位上就纠不出来。

记住这个不等式的直觉:校验位要能“报出”总位数里每一个位置的编号,包括它自己,所以右边是 n+k 而不是 n。

真题 53 2017 上半年 · 题 5

已知数据信息为 16 位,最少应附加( )位校验位,才能实现海明码纠错。

  • A3
  • B4
  • C5
  • D6
查看答案与解析收起答案与解析
答案C

选 C。这是 2016 下半年原题的重考,数据位同样是 16 位,答案同样是 5 位。

判定式:2k − 1 ≥ n + k,其中 n = 16。

k = 4:2⁴ − 1 = 15,n + k = 20,15 < 20,不够。

k = 5:2⁵ − 1 = 31,n + k = 21,31 ≥ 21,成立。

快速验算技巧:16 位数据处在 2⁴ 和 2⁵ 之间,校验位通常比 log₂n 多 1 位左右。log₂16 = 4,试 4 不够就上 5,一次到位。

A(3)、B(4)都偏少,D(6)偏多——题目问“最少”,够用即可。

顺带记几组常考数值:n=8 需 4 位,n=16 需 5 位,n=32 需 6 位,n=48 需 6 位,n=64 需 7 位。背下来,考场上不用现算。

真题 54 2018 上半年 · 题 4、5

海明码是一种纠错码……对于 32 位的数据,至少需要增加(4)个校验位才能构成海明码。以 10 位数据为例,其海明码表示为 D9D8D7D6D5D4P4D3D2D1P3D0P2P1,其中数据位 D9 由 P4、P3 和 P2 进行校验(从右至左 D9 的位序为 14,即 14 = 8+4+2),数据位 D5 由(5)进行校验。

(4)
  • A3
  • B4
  • C5
  • D6
(5)
  • AP4P1
  • BP4P2
  • CP4P3P1
  • DP3P2P1
查看答案与解析收起答案与解析
答案(4)D (5)B

(4)完整计算:k=5:31 < 32+5=37 不够;k=6:63 ≥ 32+6=38 够 → 6 位,选 D。

(5)完整推导:本题的校验位记法是 P1~P4,其中 P4 位于第 8 位(2³=8)、P3 位于第 4 位、P2 位于第 2 位、P1 位于第 1 位。D5 的位序是 10,10 = 8+2,所以由第 8 位的 P4 和第 2 位的 P2 校验,选 B。

方法总结:把数据位的位号拆成 2 的幂之和,拆出哪些幂就由哪些位置的校验位负责——与校验位的编号方式无关(P4 在第 8 位还是第 4 位,看题目给的排布)。

真题 55 2012 下半年 · 题 2

循环冗余校验码(CRC)利用生成多项式进行编码。设数据位为 k 位,校验位为 r 位,则 CRC 码的格式为( )。

  • Ak 个数据位之后跟 r 个校验位
  • Br 个校验位之后跟 k 个数据位
  • Cr 个校验位随机加入 k 个数据位中
  • Dr 个校验位等间隔地加入 k 个数据位中
查看答案与解析收起答案与解析
答案A

A——对,CRC 是“数据在前、校验在后”的拼接,不像海明码那样插在中间。B、C、D——都是对 CRC 格式的曲解(校验位既不在前、也不随机、也不等间隔插入)。

真题 56 2019 上半年 · 题 5

在( )校验方法中,采用模 2 运算来构造校验位。

  • A水平奇偶
  • B垂直奇偶
  • C海明码
  • D循环冗余
查看答案与解析收起答案与解析
答案D

选 D(循环冗余校验 CRC)。模 2 运算是 CRC 的“指纹”——核心步骤就是用生成多项式对数据做模 2 除法,得到的余数就是校验位。

模 2 运算的特点是不进位、不借位,加法和减法都等同于异或。CRC 的计算过程:

① 在数据后面补 k 个 0(k 是生成多项式的阶数);

② 用生成多项式对补 0 后的数据做模 2 除法;

③ 余数(k 位)就是 CRC 校验码,附在数据后面发送。

接收方用同一个生成多项式再除一次,余数为 0 就认为传输无错。

A、B 错:水平/垂直奇偶校验只是“数 1 的个数”,凑成奇数或偶数,不涉及除法。

C 错:海明码是分组奇偶校验——把数据位按 2 的幂次分组,每组配一个校验位,靠多组校验结果的组合定位错误位,同样不用模 2 除法。

三种校验的定位能力要分清:奇偶校验只能检错不能纠错,海明码能检错并纠一位,CRC 检错能力强(尤其擅长突发错误)但不纠错。

四、指令系统:CISC 与 RISC

这一节没有计算,纯对比。教材 1.1.4 节“指令系统”给出 RISC 的定义特征——把对比表背到条件反射即可:

对比项RISCCISC
指令数量/长度少、固定多、可变
寻址方式少多
控制器实现硬布线(组合逻辑)微程序
通用寄存器多少
访存只有 Load/Store多数指令可访存
流水线适合支持有限
真题 57 2009 下半年 · 题 2

以下关于 CISC 和 RISC 的叙述中,错误的是( )。

  • A在 CISC 中,其复杂指令都采用硬布线逻辑来执行
  • B采用 CISC 技术的 CPU,其芯片设计复杂度更高
  • C在 RISC 中,更适合采用硬布线逻辑执行指令
  • D采用 RISC 技术,指令系统中的指令种类和寻址方式更少
查看答案与解析收起答案与解析
答案A

A——错误:CISC 的复杂指令通常用微程序控制实现(把复杂指令拆成一系列微操作),硬布线逻辑难以实现复杂多变的指令,选 A。B——对,指令复杂则译码和控制都复杂。C——对,RISC 指令简单定长,最适合硬布线。D——对,RISC 的定义特征。

真题 58 2013 下半年 · 题 5

( )不是 RISC 的特点。

  • A指令种类丰富
  • B高效的流水线操作
  • C寻址方式较少
  • D硬布线控制
查看答案与解析收起答案与解析
答案A

A——不是 RISC 的特点——“指令种类丰富”是 CISC 的画风,RISC 追求指令少而精。B——是,RISC 指令定长适合流水线。C——是,寻址方式少。D——是,硬布线控制速度快。

真题 59 2014 下半年 · 题 5

以下关于 RISC 和 CISC 的叙述中,不正确的是( )。

  • ARISC 通常比 CISC 的指令系统更复杂
  • BRISC 通常会比 CISC 配置更多的寄存器
  • CRISC 编译器的子程序库通常要比 CISC 编译器的子程序库大得多
  • DRISC 比 CISC 更加适合 VLSI 工艺的规整性要求
查看答案与解析收起答案与解析
答案A

A——不正确:RISC 的指令系统更简单,不是更复杂。B——对,RISC 寄存器多(减少访存)。C——对,RISC 把复杂性转移给编译器,子程序库更大。D——对,RISC 指令定长、结构规整,适合 VLSI 实现。

真题 60 2015 下半年 · 题 6

CISC 是( )的简称。

  • A复杂指令集系统计算机
  • B超大规模集成电路
  • C精简指令集系统计算机
  • D超长指令字
查看答案与解析收起答案与解析
答案A

A. Complex Instruction Set Computer——对。B 是 VLSI;C 是 RISC;D 是 VLIW(超长指令字,把多个操作打包进一条长指令)。

真题 61 2019 上半年 · 题 6

以下关于 RISC 技术的叙述中,错误的是( )。

  • A指令长度固定、指令种类尽量少
  • B指令功能强大、寻址方式复杂多样
  • C增加寄存器数目以减少访问次数
  • D用硬布线电路实现指令解码,快速完成指令译码
查看答案与解析收起答案与解析
答案B

B——错误:“指令功能强大、寻址方式复杂多样”是 CISC 的特征,RISC 相反。A、C、D 都是 RISC 的标准特征(A 指令少而定长;C 寄存器多减少访存;D 硬布线译码快)。

真题 62 2021 上半年 · 题 2

以下关于 RISC 和 CISC 计算机的叙述中,正确的是( )。

  • ARISC 不采用流水线技术,CISC 采用流水线技术
  • BRISC 使用复杂的指令,CISC 使用简单的指令
  • CRISC 采用很少的通用寄存器,CISC 采用很多的通用寄存器
  • DRISC 采用组合逻辑控制器,CISC 普遍采用微程序控制器
查看答案与解析收起答案与解析
答案D

A——错,RISC 更适合流水线(指令定长)。B——错,说反了。C——错,也说反了(RISC 寄存器更多)。D——对,RISC 用组合逻辑(硬布线)控制器,CISC 普遍用微程序控制器。

五、流水线:三个公式,吃遍所有计算题

流水线(教材 1.2.2 节,图 1-3 流水处理的时空图)是把指令的执行过程分解为若干子过程、每个子过程在专用的独立模块上并发工作的技术。三个公式:

  1. 流水线周期 Δt = 最长一段的时间(瓶颈段决定节拍)。
  2. 执行时间 T = 第 1 条指令总时间 + (n−1) × Δt(第 1 条走完全程,之后每过一个周期流出一条)。
  3. 吞吐率 TP = n / T(最大吞吐率 = 1/Δt);加速比 = 不用流水线的时间 / 用流水线的时间。
真题 63 2015 上半年 · 题 6

以下关于指令流水线性能度量的叙述中,错误的是( )。

  • A最大吞吐率取决于流水线中最慢一段所需的时间
  • B如果流水线出现断流,加速比会明显下降
  • C要使加速比和效率最大化应该对流水线各级采用相同的运行时间
  • D流水线采用异步控制会明显提高其性能
查看答案与解析收起答案与解析
答案D

A——对,最大吞吐率 = 1/Δt,Δt 是最慢段。B——对,断流时流水线空转,加速比下降。C——对,各段时间相同(均衡)时效率最高。D——错误:异步控制会增加控制电路的复杂性,不会明显提高性能,选 D。

真题 64 2017 下半年 · 题 2

某四级指令流水线分别完成取指、取数、运算、保存结果四步操作。若完成上述操作的时间依次为 8ns、9ns、4ns、8ns,则该流水线的操作周期应至少为( )ns。

  • A4
  • B8
  • C9
  • D33
查看答案与解析收起答案与解析
答案C

计算过程:流水线周期 = 最长一段 = max(8, 9, 4, 8) = 9ns,选 C。

易错点:D. 33 是四段之和(8+9+4+8=29?不对,33 是别的组合)——那是“串行执行一条指令的时间”的干扰项,流水线周期只取最长段。

真题 65 2018 上半年 · 题 6

流水线的吞吐率是指单位时间流水线处理任务数,如果各段流水的操作时间不同,则流水线的吞吐率是( )的倒数。

  • A最短流水段操作时间
  • B各段流水的操作时间总和
  • C最长流水段操作时间
  • D流水段数乘以最长流水段操作时间
查看答案与解析收起答案与解析
答案C

选 C。流水线的吞吐率有两个概念,要分清:

最大吞吐率:流水线装满后,单位时间能完成的任务数,等于 1 / Δt,其中 Δt 是最长流水段的操作时间。

实际吞吐率:考虑装满过程(前 k−1 个任务还没流出),公式是 n / T。

题干问“吞吐率是( )的倒数”,指的就是最大吞吐率,所以答案是“最长流水段操作时间”。

为什么是最长段?流水线像一条装配线,节拍由最慢的工位决定。各段时间不均时,快的工位做完就得等,整条线的产出速度被最慢那段卡住——这就是木桶效应。

A 错:最短段跑得最快,决定不了整体节拍。

B 错:各段之和是“完成一条指令的总时间”,它的倒数是串行执行的速率,不是流水线吞吐率。

D 错:段数乘最长段时间,量纲上就不对,得不出时间。

一句话记:流水线周期 = max(各段耗时),所有流水线计算都从这个 Δt 出发。

真题 66 2018 下半年 · 题 6

下列关于流水线方式执行指令的叙述中,不正确的是( )。

  • A流水线方式可提高单条指令的执行速度
  • B流水线方式下可同时执行多条指令
  • C流水线方式提高了各部件的利用率
  • D流水线方式提高了系统的吞吐率
查看答案与解析收起答案与解析
答案A

A——不正确:单条指令该走几段还是走几段,执行时间一段都省不了——流水线提高的是吞吐率(单位时间完成的指令数),不是单条指令的速度,选 A。B、C、D——都对,这正是流水线的三个收益。

真题 67 2009 上半年 · 题 6

某指令流水线由 5 段组成,第 1、3、5 段所需时间为 Δt,第 2、4 段所需时间分别为 3Δt、2Δt,那么连续输入 n 条指令时的吞吐率 TP 为( )。(选项为分式表达式)

查看答案与解析收起答案与解析
答案B(n / ((3n+5)Δt))

计算过程:① 各段时间:Δt、3Δt、Δt、2Δt、Δt → 总和 8Δt,最长段 3Δt(周期)。② 执行时间 T = 8Δt + (n−1)×3Δt = (3n+5)Δt。③ 吞吐率 TP = n / T = n / ((3n+5)Δt),选 B。

真题 68 2012 上半年 · 题 5、6

一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间 3Δt、分析时间 2Δt、执行时间 4Δt 的情况下,若按串行方式执行,则 10 条指令全部执行完需要(5)Δt;若按照流水方式执行,则执行完 10 条指令需要(6)Δt。

(5)
  • A40
  • B70
  • C90
  • D100
(6)
  • A20
  • B30
  • C40
  • D45
查看答案与解析收起答案与解析
答案(5)C (6)D

(5)串行完整计算:每条 3+2+4 = 9Δt;10 条 = 90Δt,选 C。

(6)流水完整计算:周期 = max(3,2,4) = 4Δt;T = 第 1 条总时间 + (n−1)×周期 = 9Δt + 9×4Δt = 45Δt,选 D。

加速比 = 90/45 = 2(流水线把速度翻了一倍)。

真题 69 2013 下半年 · 题 4

某指令流水线由 4 段组成,各段所需要的时间依次为 Δt、2Δt、3Δt、Δt。连续输入 8 条指令时的吞吐率为( )。(选项为分式表达式)

查看答案与解析收起答案与解析
答案C(8 / 28Δt)

选 C(8 / 28Δt)。流水线执行时间的标准公式是:

T = 一条指令的总时间 + (n − 1) × 流水线周期

其中流水线周期 Δt = 各段耗时的最大值。

本题 4 段耗时分别是 Δt、2Δt、3Δt、Δt:

① 一条指令总时间 = Δt + 2Δt + 3Δt + Δt = 7Δt

② 流水线周期 = max(1,2,3,1)Δt = 3Δt

③ 连续输入 8 条指令:T = 7Δt + (8 − 1) × 3Δt = 7Δt + 21Δt = 28Δt

④ 吞吐率 TP = 指令条数 / 总时间 = 8 / 28Δt

常见错误是直接用“7Δt × 8”算成 56Δt,那是串行执行的时间,忽略了流水线重叠。

另一个易错点是周期取成平均值(7/4 Δt)或总和(7Δt)——都不对,节拍由最慢段决定。

本题选项在原卷中是公式图,图片转换时丢失,按官方答案选 C。

真题 70 2014 上半年 · 题 4、5

通常可以将计算机系统中执行一条指令的过程分为取指令、分析和执行指令 3 步。若取指令时间为 4Δt,分析时间为 2Δt,执行时间为 3Δt,按顺序方式从头到尾执行完 600 条指令所需时间为(4);若按照执行第 i 条、分析第 i+1 条、读取第 i+2 条重叠的流水线方式执行指令,则从头到尾执行完 600 条指令所需时间为(5)。

(4)
  • A2400
  • B3000
  • C3600
  • D5400
(5)
  • A2400
  • B2405
  • C3000
  • D3009
查看答案与解析收起答案与解析
答案(4)D (5)B

(4)串行:每条 4+2+3 = 9Δt;600 条 = 5400Δt,选 D。

(5)流水:周期 = max(4,2,3) = 4Δt;T = 9Δt + 599×4Δt = 9 + 2396 = 2405Δt,选 B。

易错点:A. 2400 是“600×4”(把 600 条都按周期算,忘了第一条要走完全程 9Δt)——这是本题最大的坑:第 1 条指令必须完整走完 9Δt,之后每 4Δt 才出一条。

真题 71 2016 下半年 · 题 5

将一条指令的执行过程分解为取指、分析和执行三步,按照流水方式执行。若取指时间 4Δt、分析时间 2Δt、执行时间 3Δt,则执行完 100 条指令需要的时间为( )。

  • A200
  • B300
  • C400
  • D405
查看答案与解析收起答案与解析
答案D

选 D(405)。按标准公式算:

T = 一条指令总时间 + (n − 1) × 流水线周期

① 取指 4Δt、分析 2Δt、执行 3Δt,一条指令串行执行需要 4+2+3 = 9Δt。

② 流水线周期 = max(4, 2, 3) = 4Δt(取指段最慢,它是瓶颈)。

③ 100 条指令:T = 9Δt + (100 − 1) × 4Δt = 9Δt + 396Δt = 405Δt。

A(200)错得最离谱:把 100 条指令当成 100 个周期、每周期 2Δt 算,完全没看瓶颈段。

B(300):用了 3Δt 作周期(执行段时间),但真正的最长段是取指 4Δt。

C(400):只算了 100 × 4Δt,漏掉第一条指令的“装满”时间(比稳定状态多出的 9−4 = 5Δt)。

三个错误选项分别对应三种典型错法:用错周期、用错段、漏掉首条指令的填充时间。算完用“(n−1)×周期 + 首条时间”回代验证最稳。

真题 72 2019 下半年 · 题 6

执行指令时,将每一条指令都分解为取指、分析和执行三步。已知取指时间 5Δt、分析时间 2Δt、执行时间 3Δt,如果按照重叠的流水线方式执行指令,从头到尾执行完 500 条指令需( )。

  • A2500
  • B2505
  • C2510
  • D2515
查看答案与解析收起答案与解析
答案B

选 B(2505)。同一套公式,换个数据:

① 取指 5Δt、分析 2Δt、执行 3Δt,一条指令总时间 = 5+2+3 = 10Δt。

② 流水线周期 = max(5, 2, 3) = 5Δt(取指段是瓶颈)。

③ 500 条指令:T = 10Δt + (500 − 1) × 5Δt = 10Δt + 2495Δt = 2505Δt。

A(2500):直接用 500 × 5Δt,漏掉首条指令的填充时间——正确应是 499 个周期加首条 10Δt。

C(2510):多算 5Δt,把首条指令算成了 15Δt。

D(2515):多算 10Δt,等于把首条指令重复计了一次。

三个错误选项都只差几个 Δt,说明命题人就是冲着“边界处理”来的。做这类题必须把公式写全:T = 首条指令时间 + (n−1) × 周期,不能图省事写成 n × 周期。

这道题和真题 71 是同一模型(取指最长),只是段时长和指令数不同。连着做两道,公式就固化了。

六、存储系统:速度、容量、成本的三角恋

存储系统的底层逻辑是用层次结构解决“容量、成本、速度”的矛盾(教材图 1-6 存储系统的层次结构):寄存器 → Cache → 主存 → 联机磁盘 → 脱机光盘/磁盘,速度递减、容量递增、单位成本递减。

存储器分类(教材 1.2.1 节):按位置分内存/外存;按材料分磁存储器、半导体存储器(双极/MOS,静态/动态)、光存储器;按工作方式分读写存储器(RAM)和只读存储器(ROM、PROM、EPROM、EEPROM)。

真题 73 2009 上半年 · 题 3

( )是指按内容访问的存储器。

  • A虚拟存储器
  • B相联存储器
  • C高速缓存(Cache)
  • D随机访问存储器
查看答案与解析收起答案与解析
答案B

B. 相联存储器——对,按内容访问(把数据或数据的一部分作为关键字,与存储单元逐一比较找出相同数据)。A. 虚拟存储器——主存+辅存组成的层次(扩大容量)。C. Cache——按地址访问的高速缓存。D. 随机访问存储器——按地址访问。

真题 74 2012 上半年 · 题 3

相联存储器按( )访问。

  • A地址
  • B先入后出的方式
  • C内容
  • D先入先出的方式
查看答案与解析收起答案与解析
答案C

选 C(内容)。相联存储器(Associative Memory)又叫内容寻址存储器(CAM),特点是不按地址查找,而是按内容查找。

普通存储器(RAM)的工作方式是“给地址、取数据”;相联存储器反过来——你把要找的内容(或其中一部分)放进去,它并行比较所有存储单元,把匹配的全部找出来。

在计算机里的典型应用:

① Cache 的地址映射:全相联和组相联映射中,判断某个主存块是否在 Cache 里,就靠相联存储器并行比较标记。

② TLB(快表):页表项的高速缓存,按页号并行查找。

③ 虚拟存储器的地址转换:快速完成“逻辑页号 → 物理页号”的映射。

A 错:按地址访问是普通 RAM 的方式。B、D 错:先入后出是栈、先入先出是队列,都是数据结构的操作规则,不是存储器的访问方式。

真题 75 2012 下半年 · 题 4

( )不属于按寻址方式划分的一类存储器。

  • A随机存储器
  • B顺序存储器
  • C相联存储器
  • D直接存储器
查看答案与解析收起答案与解析
答案C

按寻址方式分三类:随机存储器(RAM,按地址直接访问)、顺序存储器(SAM,如磁带,按顺序访问)、直接存储器(DAM,如磁盘,先直接定位再顺序读)。C. 相联存储器属于按访问方式(按内容访问)的分类,不属于按寻址方式的分类,选 C。

真题 76 2013 上半年 · 题 1

常用的虚拟存储器由( )两级存储器组成。

  • A主存—辅存
  • B主存—网盘
  • CCache—主存
  • DCache—硬盘
查看答案与解析收起答案与解析
答案A

A. 主存—辅存——对,虚拟存储器由主存和辅存(磁盘)两级组成,由操作系统+硬件(MMU)把辅存“伪装”成主存的一部分,从而扩大逻辑地址空间。C. Cache—主存——那是 Cache 系统的组合,目的是提高速度而非扩大容量。

真题 77 2015 下半年 · 题 2

虚拟存储体系由( )两级存储器构成。

  • A主存—辅存
  • B寄存器—Cache
  • C寄存器—主存
  • DCache—主存
查看答案与解析收起答案与解析
答案A

选 A(主存—辅存)。这道题考的是“存储层次和各自要解决的问题”。

计算机的存储层次有几种典型组合,目的各不相同:

寄存器—Cache:解决 CPU 与 Cache 之间的速度差。

Cache—主存:解决的也是速度问题。Cache 快但小、贵,用它把主存中最近常用的数据缓存起来,让 CPU 感觉主存也很快。

主存—辅存:解决容量问题。主存快但容量有限、断电丢失;辅存(磁盘、SSD)容量大、便宜、持久。把暂时不用的数据放到辅存,需要时再调入主存——这就是虚拟存储体系。

所以虚拟存储由“主存—辅存”两级构成。

B、C、D 都错:它们的组合里没有辅存,解决的都是速度问题,不是“让小内存看起来很大”的虚拟存储。

一句话对比:Cache—主存 提高速度,主存—辅存 扩大容量。这两个层次的目的最容易被搞反,是本题的核心陷阱。

真题 78 2017 下半年 · 题 4

计算机系统的主存主要是由( )构成的。

  • ADRAM
  • BSRAM
  • CCache
  • DEEPROM
查看答案与解析收起答案与解析
答案A

A. DRAM——对,动态随机存储器:集成度高、成本低、需要周期性刷新,适合做主存。B. SRAM——静态随机存储器:快但贵,做 Cache。C. Cache——本身就是 SRAM 做的。D. EEPROM——电擦除只读存储器,存 BIOS 等固件。

真题 79 2019 上半年 · 题 3

CPU 访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中。若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为( )。

  • A数据局部性
  • B指令局部性
  • C空间局部性
  • D时间局部性
查看答案与解析收起答案与解析
答案C

选 C(空间局部性)。题干的关键句是“邻近的存储单元有可能还要被访问”——“邻近”对应“空间”。

程序访问存储器有两条局部性规律:

空间局部性:如果一个单元被访问,它附近的单元很可能马上被访问。原因是程序顺序执行、数组按行存储、指令连续存放。

时间局部性:如果一个单元被访问,它很可能在不久后再次被访问。原因是循环、反复调用的函数、重复使用的变量。

这两条是 Cache 能起作用的理论基础:正因为有局部性,把“最近用过的”和“旁边的一批”放进 Cache,命中率才会高。

A“数据局部性”、B“指令局部性”不是标准分类。局部性只分时间和空间,数据/指令是按内容类型分的,不属这个维度。

D 错:时间局部性强调“同一地址再次被访问”,与题干的“邻近单元”不符。

判断口诀:出现“附近/相邻/连续区域”就是空间,出现“再次/重复/循环”就是时间。

真题 80 2021 上半年 · 题 4

以下关于闪存(Flash Memory)的叙述中,错误的是( )。

  • A掉电后信息不会丢失,属于非易失性存储器
  • B以块为单位进行删除操作
  • C采用随机访问方式,常用来代替主存
  • D在嵌入式系统中可以用 Flash 来代替 ROM 存储器
查看答案与解析收起答案与解析
答案C

A——对,闪存非易失。B——对,闪存按块删除(先擦除再写)。C——错误:闪存的读写速度和寿命(擦写次数有限)不适合做主存——主存还是要用 DRAM。D——对,嵌入式系统常用 Flash 代替 ROM 存固件。

真题 81 2021 下半年 · 题 5

( )是一种需要通过周期性刷新来保持数据的存储器件。

  • ASRAM
  • BDRAM
  • CFLASH
  • DEEPROM
查看答案与解析收起答案与解析
答案B

B. DRAM——对,用电容存数据,电容会漏电,必须周期性刷新。A. SRAM——用触发器存数据,不需要刷新。C. FLASH——非易失,不需要刷新。D. EEPROM——同上。

真题 82~87(Cache 映射由谁完成——六年六考)

以下六道题题干不同、年份不同,答案却是同一个:

  • 2011 下·题 3:在程序执行过程中,Cache 与主存的地址映像由( )→ A. 专门的硬件自动完成
  • 2012 上·题 1:主存地址与 Cache 地址之间的转换工作由( )→ A. 硬件
  • 2013 下·题 1:Cache 与主存的地址映像由( )→ A. 硬件自动完成
  • 2016 下·题 6:以下关于 Cache 与主存间地址映射的叙述中,正确的是( )→ D. 由硬件自动完成
  • 2017 下·题 1:Cache 与主存的地址映射是由( )完成的 → C. 硬件自动
  • 2020 下·题 1:高速缓存与主存间的地址映射由( )→ D. 硬件自动完成
查看答案与解析收起答案与解析
答案全部为“硬件自动完成”

统一解析:Cache 的地址映射、替换、一致性维护全部由硬件自动完成,程序员和操作系统都不需要(也不能)直接干预——这是“透明性”的典型体现。选项里只要出现“操作系统管理”“程序员调度”“应用软件调度”,一律排除。

真题 88 2009 下半年 · 题 6

以下关于 Cache 的叙述中,正确的是( )。

  • A在容量确定的情况下,替换算法的时间复杂度是影响 Cache 命中率的关键因素
  • BCache 的设计思想是在合理成本下提高命中率
  • CCache 的设计目标是容量尽可能与主存容量相等
  • DCPU 中的 Cache 容量应大于 CPU 之外的 Cache 容量
查看答案与解析收起答案与解析
答案B

B——对,Cache 的设计思想就是用“小而快”的 SRAM 在合理成本下尽量提高命中率。A——错,命中率主要受容量、映射方式、程序局部性影响,替换算法的时间复杂度不是关键。C——错,Cache 容量远小于主存(成本太高)。D——无此说法。

真题 89 2015 上半年 · 题 3

Cache 的地址映像方式中,发生块冲突次数最小的是( )。

  • A全相联映像
  • B组相联映像
  • C直接映像
  • D无法确定
查看答案与解析收起答案与解析
答案A

A. 全相联映像——对,主存的任意块可装入 Cache 的任意块,冲突自然最少(代价是比较电路最复杂、成本最高)。C. 直接映像——主存块只能进固定的 Cache 块(块号 mod Cache 块数),冲突最多。B. 组相联——两者的折中。

真题 90 2016 上半年 · 题 2

主存与 Cache 的地址映射方式中,( )方式可以实现主存任意一块装入 Cache 中任意位置,只有装满才需要替换。

  • A全相联
  • B直接映射
  • C组相联
  • D串并联
查看答案与解析收起答案与解析
答案A

选 A。题干的两句话几乎就是全相联映射的定义:“任意一块装入任意位置”“只有装满才需要替换”。

三种地址映射方式的区别,全在“主存块能放到 Cache 的哪个位置”:

全相联映射:主存的任意一块可以装入 Cache 的任意一行。灵活性最高,利用率最好,但查找时要逐行比较标记,硬件成本高、速度慢。只有 Cache 全满时才需要按替换算法淘汰。

直接映射:主存块只能放到唯一确定的那一行(通常按“块号 mod 行数”算)。查找最快(只比一次),但冲突严重——两个块映射到同一行就会反复换进换出。

组相联映射:折中方案。Cache 先分组,主存块只能放到某一组内的任意一行——比直接映射灵活,比全相联简单。

B 错:直接映射位置固定,谈不上“任意”。C 错:组相联只在组内任意,跨组不行。D 错:“串并联”是电路连接的概念,不是地址映射方式。

记忆:全相联最灵活、直接映射最快、组相联折中。

真题 91 2017 上半年 · 题 6

以下关于 Cache 的叙述中,不正确的是( )。

  • ACache 的设置扩大了主存的容量
  • BCache 的内容是主存部分内容的拷贝
  • CCache 的命中率并不随其容量增大线性地提高
  • DCache 位于主存与 CPU 之间
查看答案与解析收起答案与解析
答案A

A——不正确:Cache 只是主存内容的副本,用来提高访问速度,不会扩大主存的容量——扩大容量的是虚拟存储器(主存+辅存)。B——对。C——对,教材图 1-12:命中率随容量增大而提高,但逐渐饱和,不是线性。D——对。

真题 92 2019 下半年 · 题 1

在 CPU 内外常需设置多级高速缓存(Cache),主要目的是( )。

  • A扩大主存的存储容量
  • B提高 CPU 访问主存数据或指令的效率
  • C扩大存储系统的存量
  • D提高 CPU 访问内外存储器的速度
查看答案与解析收起答案与解析
答案B

B——对,Cache 解决 CPU 与主存的速度差,提高访问效率。A、C——错,Cache 不扩大容量(那是虚拟存储器的事)。D——错,Cache 不直接提高外存访问速度。

七、输入/输出技术:CPU 到底要不要“盯着”

I/O 这一块的题,本质上都在问一件事:**数据从外设搬到主存的过程中,CPU 要管多少?**四种方式的对比表:

方式CPU 干预程度CPU 与外设并行传输单位
无条件传送全程否字
程序查询(轮询)全程忙等否字
中断方式每个字都要干预能字
DMA 方式只在开始和结束能块
真题 93 2013 上半年 · 题 2

中断向量可提供( )。

  • AI/O 设备的端口地址
  • B所传送数据的起始地址
  • C中断服务程序的入口地址
  • D主程序的断点地址
查看答案与解析收起答案与解析
答案C

C——对,中断向量就是中断服务程序的入口地址。A——端口地址是 I/O 指令访问的对象;B——数据起始地址在传送参数里;D——断点地址由硬件压栈保存,不在中断向量表里。

真题 94 2013 上半年 · 题 3

为了便于实现多级中断嵌套,使用( )来保护断点和现场最有效。

  • AROM
  • B中断向量表
  • C通用寄存器
  • D堆栈
查看答案与解析收起答案与解析
答案D

D. 堆栈——对,中断嵌套的返回顺序是“后进先出”,堆栈天然匹配:每嵌套一层压栈一层,返回时逐层弹出。A. ROM——只读,写不进去。B. 中断向量表——存的是各中断服务程序的入口地址,不是现场。C. 通用寄存器——数量有限,嵌套多层就不够用。

真题 95 2015 上半年 · 题 4

计算机中 CPU 的中断响应时间指的是( )的时间。

  • A从发出中断请求到中断处理结束
  • B从中断处理开始到中断处理结束
  • CCPU 分析判断中断请求
  • D从发出中断请求到开始进入中断处理程序
查看答案与解析收起答案与解析
答案D

D——对,中断响应时间只算到“开始进入中断处理程序”为止,后面的处理时间不算。A——错,包含了整个处理过程;B——错,那是处理时间;C——错,只是响应过程的一部分。

真题 96 2018 上半年 · 题 2、3

计算机运行过程中,遇到突发事件,要求 CPU 暂时停止正在运行的程序,转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为(2),其处理过程中保存现场的目的是(3)。

(2)
  • A阻塞
  • B中断
  • C动态绑定
  • D静态绑定
(3)
  • A防止丢失数据
  • B防止对其他部件造成影响
  • C返回去继续执行原程序
  • D为中断处理程序提供数据
查看答案与解析收起答案与解析
答案(2)B (3)C

第(2)空:题干就是中断的定义——选 B。阻塞是进程状态;动态/静态绑定是面向对象概念。

第(3)空:保存现场(寄存器、PC 等)是为了返回后能接着原样执行原程序——选 C。A、B、D 都不是保存现场的目的。

真题 97 2019 下半年 · 题 3

计算机运行过程中,进行中断处理时需保存现场,其目的是( )。

  • A防止丢失中断处理程序的数据
  • B防止对其他程序的数据造成破坏
  • C能正确返回到被中断的程序继续执行
  • D能为中断处理程序提供所需的数据
查看答案与解析收起答案与解析
答案C

选 C。中断处理时“保存现场”,保存的是被中断程序的现场,目的是让它之后能正确恢复、继续执行。

“现场”具体包括:程序计数器(PC,指向下一条指令)、程序状态字(PSW,含标志位)、通用寄存器的值。这些信息在中断处理程序执行时会被覆盖,所以必须先压栈保存,中断返回前再弹栈恢复。

A 错:保存的不是中断处理程序的数据,而是被中断程序的数据。

B 错:保存现场是“保护自己”,不是“防止破坏别人”。防止破坏别人的数据靠的是内存保护机制(基址/限长寄存器)。

D 错:保存现场不是为了给中断处理程序提供数据,恰恰相反——是为了让中断处理程序用完寄存器后,原程序能拿回自己的值。

一句话记:保存现场是为了“能回来”,恢复现场是为了“接着跑”。两者成对出现,缺一个程序就会跑飞。

真题 98 2020 下半年 · 题 6

中断向量提供( )。

  • A函数调用结束后的返回地址
  • BI/O 设备的接口地址
  • C主程序的入口地址
  • D中断服务程序入口地址
查看答案与解析收起答案与解析
答案D

选 D。中断向量表里存的是中断服务程序的入口地址。

工作过程:每个中断源被分配一个中断类型号,CPU 收到中断后,用这个类型号去中断向量表里查表,取出对应的入口地址,然后跳过去执行中断服务程序。

A 错:函数调用结束后的返回地址存在栈里,由 call/ret 指令维护,与中断向量表无关。

B 错:I/O 设备的接口地址(端口号)是 CPU 访问设备寄存器用的地址,属于 I/O 编址范畴。

C 错:主程序的入口地址在程序启动时就定好了(如 main 函数地址),不由中断机制提供。

要区分两个容易混的概念:中断向量是“中断服务程序的入口地址”,断点是“被中断的程序停在哪里”。前者在向量表里,后者在响应中断时由 CPU 自动压栈保存。

这道题在 2013 上、2020 下、2021 下三次出现,选项措辞基本一致。记住“向量 = 入口地址”这一条,三次都能秒选。

真题 99 2021 下半年 · 题 4

中断向量提供( )。

  • A被选中设备的地址
  • B待传送数据的起始地址
  • C中断服务程序入口地址
  • D主程序的断点地址
查看答案与解析收起答案与解析
答案C

选 C(中断服务程序入口地址)。这和真题 98 是同一道题,只换了选项排列。

中断向量表是操作系统在内存中建立的一张表,每一项存放一个中断服务程序的入口地址。中断发生时,CPU 用中断类型号作索引查表,直接跳到对应地址执行。

A 错:被选中设备的地址,是设备选中信号或端口地址,属于 I/O 接口层面。

B 错:待传送数据的起始地址,是 DMA 传送时由 DMA 控制器保存的参数,与中断向量无关。

D 错:断点地址(被中断程序的下一条指令地址)是 CPU 响应中断时自动压栈保存的,不在中断向量表里。这一项最容易误选,因为“中断”和“断点”两个词太像。

一句话分清:向量回答“去哪儿执行”,断点回答“从哪儿回来”。

真题 100 2010 下半年 · 题 1

在输入输出控制方法中,采用( )可以使得设备与主存间的数据块传送无需 CPU 干预。

  • A程序控制输入输出
  • B中断
  • CDMA
  • D总线控制
查看答案与解析收起答案与解析
答案C

C. DMA——对,教材 1.2.3 节原话:“DMA 是指数据在内存与 I/O 设备间的直接成块传送,即在内存与 I/O 设备间传送一个数据块的过程中,不需要 CPU 的任何干涉,只需要 CPU 在过程开始启动……与过程结束……时的处理,实际操作由 DMA 硬件直接执行完成”。A、B——都需要 CPU 执行程序来传数据。D——总线控制不是 I/O 控制方式。

真题 101 2012 下半年 · 题 5

在 I/O 设备与主机间进行数据传输时,CPU 只需在开始和结束时作少量处理,而无需干预数据传送过程的是( )方式。

  • A中断
  • B程序查询
  • C无条件传送
  • D直接存储器存取
查看答案与解析收起答案与解析
答案D

D. 直接存储器存取(DMA)——对,与真题 100 同一句话。A. 中断——每个数据的传输都要 CPU 执行中断服务程序。B. 程序查询——CPU 全程忙等。C. 无条件传送——假定外设始终准备好,CPU 也要执行 I/O 指令。

真题 102 2013 上半年 · 题 4

DMA 工作方式下,在( )之间建立了直接的数据通路。

  • ACPU 与外设
  • BCPU 与主存
  • C主存与外设
  • D外设与外设
查看答案与解析收起答案与解析
答案C

选 C(主存与外设)。DMA 之所以叫“直接存储器存取”,就在于它绕开了 CPU,让主存和 I/O 设备之间直接成块交换数据。

对比三种 I/O 控制方式就很清楚:

程序查询:CPU 反复读设备状态寄存器,数据经 CPU 中转,CPU 全程忙等。

中断方式:设备就绪后发中断,CPU 中断当前程序,用服务程序搬运数据——数据还是要过 CPU 的手。

DMA:DMA 控制器向 CPU 申请总线,拿到总线控制权后,直接在内存和设备之间读写,CPU 不参与数据搬运,只在传输结束后处理一次中断。

A 错:CPU 与外设之间搬数据,是查询和中断方式的做法。

B 错:CPU 与主存之间的通路是系统总线的日常工作,不是 DMA 的特征。

D 错:外设之间没有直接通路,数据必须先落到主存。

DMA 的意义可以概括成一句:用硬件(DMA 控制器)替代 CPU 做数据搬运,把 CPU 解放出来做计算。这也是它适合磁盘、网卡这类高速块设备的原因。

真题 103 2015 下半年 · 题 1

CPU 是在( )结束时响应 DMA 请求的。

  • A一条指令执行
  • B一段程序
  • C一个时钟周期
  • D一个总线周期
查看答案与解析收起答案与解析
答案A

选 A。CPU 响应 DMA 请求的时机是当前指令执行结束之后(严格说是当前总线周期结束时让出总线)。

DMA 的工作过程分三步:

① 请求:外设准备好数据后向 DMA 控制器发 DMA 请求,DMA 控制器再向 CPU 发总线请求(HRQ)。

② 响应:CPU 在当前指令执行完之后,把总线置为高阻态,让出总线控制权,并回送应答(HLDA)。

③ 传送:DMA 控制器接管总线,直接在内存和外设之间成块传送数据,不经过 CPU。

C 错:一个时钟周期太细。CPU 不可能每个时钟周期都检查 DMA 请求,开销太大。

D 错:一个总线周期是“CPU 完成一次总线操作”的时间,是 DMA 传送的粒度,不是“响应请求的时机”。两者容易混:DMA 每次传送占用一个总线周期,但 CPU 是在指令边界让出总线。

B 错:一段程序结束太晚。等整个程序跑完才响应,DMA 就失去了“高速成块传送”的意义。

为什么要等指令执行完?因为一条指令执行过程中 CPU 可能正在用总线读写内存,中途让出会导致指令执行到一半、状态不一致。指令是原子单位,边界才是安全的切换点。

真题 104 2017 上半年 · 题 3

计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和 DMA 方式等。当采用( )方式时,不需要 CPU 执行程序指令来传送数据。

  • A中断
  • B程序查询
  • C无条件传送
  • DDMA
查看答案与解析收起答案与解析
答案D

选 D(DMA)。题干的关键是“不需要 CPU 执行程序指令来传送数据”——这正是 DMA 的定义特征。

四种方式的对比:

无条件传送:CPU 直接执行 I/O 指令读写端口,默认设备总是就绪。

程序查询:CPU 循环读设备状态寄存器,直到就绪才传送。要 CPU 参与,而且是忙等,浪费最严重。

中断方式:设备就绪后发中断,CPU 转去执行中断服务程序搬数据。仍然要 CPU 执行指令。

DMA:DMA 控制器接管总线,在主存与外设之间直接成块传送,CPU 不执行任何搬运指令,只在开始前配置、结束后处理一次中断。

A、B、C 都需要 CPU 执行程序指令来搬数据,区别只在于“什么时候搬”。

这也是 DMA 适合磁盘、网卡的原因:一次传几百上千字节,如果每个字节都让 CPU 执行指令,开销无法接受。

一句话记:前三种都是“CPU 搬”,只有 DMA 是“硬件搬”。

真题 105 2019 上半年 · 题 2

DMA 控制方式是在( )之间直接建立数据通路进行数据的交换处理。

  • ACPU 与主存
  • BCPU 与外设
  • C主存与外设
  • D外设与外设
查看答案与解析收起答案与解析
答案C

选 C。DMA(Direct Memory Access,直接存储器存取)的“直接”二字,说的就是主存与外设之间直接建立数据通路,不经过 CPU。

三种 I/O 控制方式的对比最能说明这一点:

程序查询方式:CPU 反复查询外设状态,数据要经过 CPU 中转,CPU 全程被占住。

中断方式:外设准备好后发中断,CPU 停下当前程序,用中断服务程序搬运数据——数据仍然要经过 CPU。

DMA 方式:DMA 控制器接管总线,在主存和外设之间直接成块搬数据,CPU 完全不参与搬运,只在开始前配置、结束后处理中断。

A 错:CPU 与主存之间的通路是系统总线本身,那是正常取指、读写数据的通道,不是 DMA 的特征。

B 错:CPU 与外设之间搬运数据,正是程序查询和中断方式的做法。

D 错:外设与外设之间没有直接数据通路,数据必须先落到主存。

所以 DMA 的数据通路是“主存 ↔ 外设”,CPU 只负责“启动”和“善后”。这也解释了 DMA 为什么适合磁盘、网卡这类高速块设备——数据量大,不能让 CPU 一句一句搬。

真题 106 2021 上半年 · 题 3

采用 DMA 方式传送数据时,每传送一个数据都需要占用一个( )。

  • A指令周期
  • B总线周期
  • C存储周期
  • D机器周期
查看答案与解析收起答案与解析
答案B

B. 总线周期——对,DMA 每搬一个字都要占用一次总线(周期挪用/窃取),这也是 DMA 会轻微降低 CPU 访存效率的原因。A. 指令周期——DMA 不执行指令;C. 存储周期——是内存访问的计时单位;D. 机器周期——是 CPU 内部的节拍。

真题 107 2010 下半年 · 题 3

以下关于计算机系统中断概念的叙述中,正确的是( )。

  • A由 I/O 设备提出的中断请求和电源掉电都是可屏蔽中断
  • B由 I/O 设备提出的中断请求和电源掉电都是不可屏蔽中断
  • C由 I/O 设备提出的中断请求是可屏蔽中断,电源掉电是不可屏蔽中断
  • D由 I/O 设备提出的中断请求是不可屏蔽中断,电源掉电是可屏蔽中断
查看答案与解析收起答案与解析
答案C

选 C。判据只有一条:这个事件能不能“等一等”。

可屏蔽中断:CPU 可以通过中断屏蔽标志暂时不响应,稍后再处理也不出大事。I/O 设备请求属于这一类——磁盘读完数据,等一会儿再取没关系。

不可屏蔽中断(NMI):必须立即处理,CPU 屏蔽不掉。电源掉电是典型代表——一旦断电,内存数据全部丢失,必须抢在电源彻底断掉之前(靠电容维持的几毫秒)保存现场。其他例子还有内存奇偶校验错、总线错误。

A 错:把掉电说成可屏蔽,等于认为可以“晚点再断电”,荒谬。

B 错:把 I/O 请求说成不可屏蔽,CPU 会被频繁的设备请求打断,无法正常工作。

D 是两个错误说法的拼接。

记忆:能等的可屏蔽(I/O、定时器),等不得的不可屏蔽(掉电、硬件故障)。

真题 108 2017 下半年 · 题 6

计算机运行过程中,CPU 需要与外设进行数据交换。采用( )控制技术时,CPU 与外设可并行工作。

  • A程序查询方式和中断方式
  • B中断方式和 DMA 方式
  • C程序查询方式和 DMA 方式
  • D程序查询方式、中断方式和 DMA 方式
查看答案与解析收起答案与解析
答案B

程序查询是 CPU 忙等(不能并行),中断和 DMA 都能让 CPU 在外设工作时干别的——所以只有“中断方式和 DMA 方式”的组合成立,选 B。A、C、D 都混入了程序查询。

真题 109 2021 上半年 · 题 6

异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。以下关于中断和异常的叙述中,正确的是( )。

  • A"DMA 传送结束""除运算时除数为 0"都为中断
  • B"DMA 传送结束"为中断、"除运算时除数为 0"为异常
  • C"DMA 传送结束"为异常、"除运算时除数为 0"为中断
  • D"DMA 传送结束""除运算时除数为 0"都为异常
查看答案与解析收起答案与解析
答案B

选 B。题干已经把两个定义写清楚了,按定义归类即可:

异常:指令执行过程中,在处理器内部发生的特殊事件。比如除数为 0、溢出、缺页、非法指令、断点指令。

中断:来自处理器外部的请求事件。比如 I/O 设备完成、时钟中断、键盘输入、外部硬件故障。

DMA 传送结束:是 DMA 控制器(设备侧)发来的信号,来自处理器外部 → 中断。

除运算时除数为 0:是 CPU 执行除法指令时自己发现的,发生在处理器内部 → 异常。

A 错:把除数为 0 也算成中断。C 错:两者完全说反。D 错:把 DMA 结束算成异常。

记忆:“内部出的问题”是异常,“外部来的通知”是中断。另一个角度:异常与当前指令同步(执行到这条才发生),中断与当前指令异步(随时可能来)。

真题 110 2021 下半年 · 题 3

以下关于中断方式与 DMA 方式的叙述中,正确的是( )。

  • A中断方式与 DMA 方式都可实现外设与 CPU 之间的并行工作
  • B程序中断方式和 DMA 方式在数据传输过程中都不需要 CPU 的干预
  • C采用 DMA 方式传输数据的速度比程序中断方式的速度慢
  • D程序中断方式和 DMA 方式都不需要 CPU 保护现场
查看答案与解析收起答案与解析
答案A

A——对,两者都能让 CPU 与外设并行。B——错,中断方式每个字都要 CPU 干预(执行中断服务程序),只有 DMA 才免干预。C——错,DMA 更快(成块传送、硬件直传)。D——错,中断方式需要保护现场。

八、总线

总线分类(教材 1.2.x 节):按传送信息分数据总线(双向,宽度决定一次传多少位)、地址总线(单向,CPU 发出,“地址总线的宽度决定了 CPU 的最大寻址能力”)、控制总线(有的单向有的双向,整体双向)。常见总线标准:ISA(16 位)、EISA(32 位)、PCI(并行内总线,与 CPU 时钟独立)、PCI-E(点对点串行)。

真题 111 2009 上半年 · 题 4

处理机主要由处理器、存储器和总线组成,总线包括( )。

  • A数据总线、地址总线、控制总线
  • B并行总线、串行总线、逻辑总线
  • C单工总线、双工总线、外部总线
  • D逻辑总线、物理总线、内部总线
查看答案与解析收起答案与解析
答案A

选 A。系统总线按传送信息的类型分为三类,这是最标准的划分。

数据总线(DB):在 CPU 与内存、I/O 之间传送数据。双向——既能读进来,也能写出去。宽度决定一次能传多少位,比如 64 位数据总线一次传 8 字节。

地址总线(AB):传送内存或 I/O 端口的地址。单向——总是由 CPU 发出。宽度决定 CPU 的最大寻址空间,n 根地址线可寻址 2ⁿ 个单元,比如 32 位地址总线最大寻址 4GB。

控制总线(CB):传送控制信号、时序信号和状态信号,比如读/写信号、中断请求、总线请求。每根线的方向固定,整体看有出有入。

B 错:并行/串行是按传送方式分,“逻辑总线”不是标准分类。

C 错:单工/双工是按传输方向分,属于通信方式的分类,不是系统总线的划分。

D 错:内部总线/外部总线是按位置分(CPU 内部、系统级、设备级),与“逻辑/物理”混搭,不成体系。

这道题的关键是认清“分类维度”:按信息类型分三类(数据/地址/控制),才是教材和考题默认的划分。

真题 112 2010 下半年 · 题 3

若内存容量为 4GB,字长为 32,则( )。

  • A地址总线和数据总线的宽度都为 32
  • B地址总线的宽度为 30,数据总线的宽度为 32
  • C地址总线的宽度为 30,数据总线的宽度为 8
  • D地址总线的宽度为 32,数据总线的宽度为 8
查看答案与解析收起答案与解析
答案A

选 A。这道题要分别算地址总线和数据总线的宽度,两者依据不同。

数据总线宽度 = 字长 = 32 位。字长是 CPU 一次能并行处理的二进制位数,题干直接给了“字长为 32”。

地址总线宽度由内存容量决定。公式:2n = 可寻址单元数,n 就是地址线根数。

内存 4GB = 4 × 2³⁰ B = 2³² B。按字节编址(每个地址对应 1 字节),需要 2³² 个地址,即 32 根地址线。

所以地址总线和数据总线都是 32 位。

B、C 错:把地址总线算成了 30 位。30 位只能寻址 2³⁰ B = 1GB,装不下 4GB。这个错误来自“4GB 里的 4 是 2²、30 来自 GB”,把 2² × 2³⁰ 错算成了 2³⁰。

D 错:数据总线 8 位意味着一次只能传 1 字节,与“字长 32”矛盾。

记忆:数据总线看字长,地址总线看容量。算地址线时先统一单位到字节,再取以 2 为底的指数。

真题 113 2011 上半年 · 题 3

在计算机系统中采用总线结构,便于实现系统的积木化构造,同时可以( )。

  • A提高数据传输速度
  • B提高数据传输量
  • C减少信息传输线的数量
  • D减少指令系统的复杂性
查看答案与解析收起答案与解析
答案C

选 C。总线结构的本质是“用一组公共线路连接多个部件”,最大的好处就是减少连线、便于扩展。

如果没有总线,n 个部件两两相连需要 n(n−1)/2 条线路——部件一多,线就爆炸了。用一条总线,所有部件挂上去,线路数量从平方级降到线性级。

同时,总线是标准化接口,加一个新设备只要符合总线规范就能接上,这就是题干说的“积木化构造”。

A 错:提高传输速度不是总线结构的优点。恰恰相反,总线是共享资源,同一时刻只能有一个主设备使用,反而可能成为瓶颈。提高速度靠更快的总线标准(如 PCIe)、更宽的位宽、更高的时钟。

B 错:提高传输量同理,共享总线不会自动增加带宽。

D 错:减少指令系统的复杂性是 RISC 的目标,与总线结构无关。

这道题的价值在于纠正一个常见误解:总线带来的是“结构上的便利”,不是“性能上的提升”。看到“总线”就想到“快”,正好掉进 A 的陷阱。

真题 114 2011 下半年 · 题 4

总线复用方式可以( )。

  • A提高总线的传输带宽
  • B增加总线的功能
  • C减少总线中信号线的数量
  • D提高 CPU 利用率
查看答案与解析收起答案与解析
答案C

总线复用 = 同一组线分时传不同信息(如地址和数据共用一组线)——目的是减少信号线数量,选 C。它不提高带宽(分时反而可能降速),不增加功能,也不影响 CPU 利用率。

真题 115 2012 下半年 · 题 6

( )不属于系统总线。

  • AISA
  • BEISA
  • CSCSI
  • DPCI
查看答案与解析收起答案与解析
答案C

选 C。SCSI 是设备接口标准,不是系统总线。

先分清两类“总线”:

系统总线:连接 CPU、主存、I/O 接口这些主板上的核心部件,是计算机内部的骨架。典型代表有 ISA、EISA、PCI、PCI-Express、VESA。

设备接口:连接主机与外部设备,属于 I/O 接口层面。典型代表有 SCSI、IDE(ATA)、SATA、USB、SAS。

A ISA(Industry Standard Architecture):早期的 16 位系统总线,PC/AT 时代的标准。

B EISA(Extended ISA):ISA 的 32 位扩展版本,仍属系统总线。

D PCI(Peripheral Component Interconnect):经典的局部总线,用于连接显卡、网卡等扩展卡,属于系统总线。

C SCSI(Small Computer System Interface):小型计算机系统接口,用于连接硬盘、扫描仪等外部设备,是设备接口,与系统总线不是一个层次。

判别方法:看它连的是主板上的部件还是外部设备。连 CPU/内存/扩展卡的是系统总线,连硬盘/打印机的是设备接口。

真题 116 2014 下半年 · 题 1

三总线结构的计算机总线系统由( )组成。

  • ACPU 总线、内存总线和 IO 总线
  • B数据总线、地址总线和控制总线
  • C系统总线、内部总线和外部总线
  • D串行总线、并行总线和 PCI 总线
查看答案与解析收起答案与解析
答案B

选 B。“三总线”是系统总线按传送信息类型的标准划分:数据总线、地址总线、控制总线。

三者的分工:

数据总线(DB):传数据,双向。宽度等于字长,决定一次能传多少位。

地址总线(AB):传地址,单向(由 CPU 发出)。宽度决定最大寻址空间,n 根线可寻址 2ⁿ 个单元。

控制总线(CB):传控制信号、时序信号、状态信号,比如读写信号、中断请求、总线请求。

A 错:CPU 总线、内存总线、I/O 总线是按连接对象分的,不是“三总线”的含义。

C 错:系统总线、内部总线、外部总线是按位置层次分的(CPU 内部、系统级、设备级)。

D 错:串行/并行是按传输方式分,PCI 是具体标准,三者不在一个维度上。

这道题和真题 102(三总线配 DMA)、真题 113(总线的作用)是同一知识点群。抓住“按信息类型分三类”这个维度,就能排除所有按其他维度分类的选项。

真题 117 2015 上半年 · 题 5

总线宽度为 32bit,时钟频率为 200MHz,若总线上每 5 个时钟周期传送一个 32bit 的字,则该总线的带宽为( )MB/s。

  • A40
  • B80
  • C160
  • D200
查看答案与解析收起答案与解析
答案C

计算过程:① 32bit = 4 字节;② 每秒传输次数 = 200MHz ÷ 5 = 40M 次/秒;③ 带宽 = 40M × 4B = 160MB/s,选 C。

公式:带宽 = (总线宽度/8) × 频率 ÷ 每次传输所需时钟周期数。

真题 118 2016 上半年 · 题 6

以下关于总线的叙述中,不正确的是( )。

  • A并行总线适合近距离高速数据传输
  • B串行总线适合长距离数据传输
  • C单总线结构在一个总线上适应不同种类的设备,设计简单且性能很高
  • D专用总线在设计上可以与连接设备实现最佳匹配
查看答案与解析收起答案与解析
答案C

C——不正确:单总线结构确实简单、通用,但所有设备共享一条总线容易成为瓶颈,性能并不高。A、B、D 都正确(并行近距离高速、串行长距离、专用总线最佳匹配)。

真题 119 2021 下半年 · 题 2

以下关于 PCI 总线和 SCSI 总线的叙述中,正确的是( )。

  • APCI 总线是串行外总线,SCSI 总线是并行内总线
  • BPCI 总线是串行内总线,SCSI 总线是串行外总线
  • CPCI 总线是并行内总线,SCSI 总线是串行内总线
  • DPCI 总线是并行内总线,SCSI 总线是并行外总线
查看答案与解析收起答案与解析
答案D

D——对:PCI 是并行内总线(教材:“PCI 总线是目前微烈机上广泛采用的内总线,采用并行传输方式”),SCSI 是并行外总线(连接磁盘等外设)。两个都是“并行”,区别在内/外。

九、安全性:一把钥匙开一把锁

安全这一块能占 3~5 分,套路极其固定。核心是分清“谁加密、谁解密、谁签名、谁验证”:

  • 保密通信:用接收方的公钥加密,接收方用自己的私钥解密。
  • 数字签名:发送方用自己的私钥签名,接收方用发送方的公钥验证——提供真实性、不可否认性、完整性。
  • 数字证书:由 CA 签发,用 CA 的私钥签名、CA 的公钥验证,证书里装的是持有者的公钥。
真题 120 2010 下半年 · 题 66、67

公钥体系中,私钥用于(66),公钥用于(67)。

(66)
  • A解密和签名
  • B加密和签名
  • C解密和认证
  • D加密和认证
(67)
  • A解密和签名
  • B加密和签名
  • C解密和认证
  • D加密和认证
查看答案与解析收起答案与解析
答案(66)A (67)D

(66)私钥用于解密(别人用我的公钥加密发给我,我用私钥解)和签名(我用私钥签名,别人用我的公钥验证)。(67)公钥用于加密(发给我的数据用我的公钥加密)和认证(验证我的签名)。

这对搭配要背成条件反射:私钥管“解密+签名”(都是只有主人能干的事),公钥管“加密+认证”(都是别人对主人做的事)。

真题 121 2009 上半年 · 题 8

网络安全包含了网络信息的可用性、保密性、完整性和网络通信对象的真实性。其中,数字签名是对( )的保护。

  • A可用性
  • B保密性
  • C连通性
  • D真实性
查看答案与解析收起答案与解析
答案D

选 D。数字签名解决的是“消息是不是你发的、你能不能抵赖”,对应真实性(以及不可否认性)。

网络安全四要素各自的防护手段:

可用性:保证系统和数据随时能用,防的是 DoS/DDoS、断电、硬件故障,靠冗余、备份、容灾。

保密性:保证数据不被未授权者看到,靠加密。

完整性:保证数据没被篡改,靠消息摘要(MD5、SHA)和校验码。

真实性(不可否认性):保证身份真实、发送方不能否认发过,靠数字签名和数字证书。

为什么签名能保证真实性?因为签名是用发送方私钥加密摘要得到的,只有他本人有私钥;接收方用他的公钥一验,就能确认“确实是他发的”,而且他无法抵赖——别人没有他的私钥,伪造不出来。

A 错:可用性靠容灾和抗攻击,签名管不了服务是否可用。B 错:保密性靠加密,签名不隐藏内容。C 错:连通性不是安全四要素之一。

真题 122 2012 上半年 · 题 7

甲和乙要进行通信,甲对发送的消息附加了数字签名,乙收到该消息后利用( )验证该消息的真实性。

  • A甲的公钥
  • B甲的私钥
  • C乙的公钥
  • D乙的私钥
查看答案与解析收起答案与解析
答案A

选 A(甲的公钥)。这道题考的是“签名用私钥、验签用公钥”这条铁律。

完整过程:

① 甲对消息计算摘要(如 SHA-256);

② 甲用自己的私钥加密这个摘要,得到签名,附在消息后面发出;

③ 乙收到后,用同样的算法对消息再算一次摘要;

④ 乙用甲的公钥解密签名,还原出甲当初算的摘要;

⑤ 两个摘要一致 → 消息完整且确实来自甲。

B 错:甲的私钥只有甲自己知道,乙拿不到;用私钥“验证”在逻辑上也说不通。

C、D 错:乙的密钥对与“验证甲的签名”无关。乙的私钥用于乙自己签名,或解密发给自己的密文。

口诀:谁的签名,用谁的公钥验。签名者是甲,就用甲的公钥。

真题 123 2016 下半年 · 题 8

( )不是数字签名的作用。

  • A接收者可验证消息来源的真实性
  • B发送者无法否认发送过该消息
  • C接收者无法伪造或篡改消息
  • D可验证接收者合法性
查看答案与解析收起答案与解析
答案D

D——不是数字签名的作用:签名验证的是发送方,不是接收方(验证接收者合法性是身份认证/证书的事)。A、B、C 是数字签名的三个标准作用(真实性、不可否认性、完整性)。

真题 124 2018 上半年 · 题 8、9

在安全通信中,S 将所发送的信息使用(8)进行数字签名,T 收到该消息后可利用(9)验证该消息的真实性。

(8)
  • AS 的公钥
  • BS 的私钥
  • CT 的公钥
  • DT 的私钥
(9)
  • AS 的公钥
  • BS 的私钥
  • CT 的公钥
  • DT 的私钥
查看答案与解析收起答案与解析
答案(8)B (9)A

(8)选 B(S 的私钥)。数字签名必须用签名者自己的私钥,这是签名不可伪造、不可抵赖的根基:只有 S 持有自己的私钥,别人伪造不出来,S 也无法否认。

(9)选 A(S 的公钥)。T 收到消息后,用S 的公钥解密签名、还原摘要,再与自己算出的摘要比对,一致就说明消息完整且来自 S。

四个选项其实构成一个 2×2 的选择:签名方 S 用自己的私钥,验证方 T 用对方的公钥。

换成加密场景就相反了:如果 S 要给 T 发加密消息,S 要用 T 的公钥加密,T 用自己的私钥解密。

这两个场景最容易混,记住方向的差别:

签名:用自己的私钥签,对方用你的公钥验——目的是“证明是我”。

加密:用对方的公钥加密,对方用自己的私钥解——目的是“只有他能看”。

一句话:私钥永远自己用,公钥永远给别人用。抓住这条,四个组合不会选错。

真题 125 2009 下半年 · 题 9

某网站向 CA 申请了数字证书,用户通过( )来验证网站的真伪。

  • ACA 的签名
  • B证书中的公钥
  • C网站的私钥
  • D用户的公钥
查看答案与解析收起答案与解析
答案A

A. CA 的签名——对,用户用 CA 的公钥验证证书上 CA 的签名,从而确认证书确实是 CA 签发的(网站公钥可信)。B. 证书中的公钥——那是网站的公钥本身,不是验证工具。C、D——网站的私钥不会公开,用户的公钥与此无关。

真题 126 2011 上半年 · 题 7

用户 A 从 CA 获得用户 B 的数字证书,并利用( )验证数字证书的真实性。

  • AB 的公钥
  • BB 的私钥
  • CCA 的公钥
  • DCA 的私钥
查看答案与解析收起答案与解析
答案C

选 C(CA 的公钥)。数字证书是 CA 签发的,所以验证它要用CA 的公钥。

数字证书里装的内容:持有者的身份信息、持有者的公钥、有效期、序列号,以及最关键的——CA 对以上内容的数字签名。

验证过程:用户 A 拿到 B 的证书后,用 CA 的公钥去解验证书里的签名,能解开且摘要一致,就说明:① 这张证书确实是 CA 签发的,没被伪造;② 证书内容没被篡改;③ 里面的公钥确实属于 B。

A、B 错:B 的公钥/私钥是证书里承载的内容,不是验证证书的工具。用 B 的公钥只能验证 B 的签名,验证不了 CA 的签名。

D 错:CA 的私钥是 CA 的命根子,绝不会公开,用户拿不到。

这条链要理清:CA 用私钥签证书 → 用户用 CA 的公钥验证书 → 信任证书里的公钥 → 用这个公钥验证 B 的签名。整个 PKI 体系的信任就是这么一层层传下来的,根信任点就是内置在浏览器/操作系统里的 CA 公钥。

真题 127 2011 下半年 · 题 9

从认证中心 CA 获取用户 B 的数字证书,该证书用( )作数字签名;从用户 B 的数字证书中可以获得 B 的公钥。

  • ACA 的公钥
  • BCA 的私钥
  • CB 的公钥
  • DB 的私钥
查看答案与解析收起答案与解析
答案B

选 B(CA 的私钥)。数字证书是 CA 用自己的私钥签名的——这是整个 PKI 信任链的起点。

签名与验证是一对:签名用私钥,验证用公钥。

CA 签发证书时,对“持有者信息 + 持有者公钥 + 有效期”等内容计算摘要,再用 CA 的私钥加密摘要,附在证书后面。用户拿到证书后,用 CA 的公钥解开这个签名,摘要对得上就说明证书没被篡改、确实由该 CA 签发。

A 错:CA 的公钥是用来验证签名的,不是用来签名的。签名必须用私钥,否则谁都能伪造。

C、D 错:B 的公钥是证书承载的内容(题干后半句“从证书中可以获得 B 的公钥”已经点明),B 的私钥只有 B 自己知道,CA 不可能拿它来签。

理清这条链:CA 私钥签 → CA 公钥验 → 信任证书里的 B 公钥 → 用 B 公钥验 B 的签名。私钥永远只在自己手里,公钥才公开流转。

真题 128 2012 下半年 · 题 8、9

用户 B 收到用户 A 带数字签名的消息 M,为了验证 M 的真实性,首先需要从 CA 获取用户 A 的数字证书,并利用(8)验证该证书的真伪,然后利用(9)验证 M 的真实性。

(8)
  • ACA 的公钥
  • BB 的私钥
  • CA 的公钥
  • DB 的公钥
(9)
  • ACA 的公钥
  • BB 的私钥
  • CA 的公钥
  • DB 的公钥
查看答案与解析收起答案与解析
答案(8)A (9)C

(8)选 A(CA 的公钥)。第一步是验证 A 的证书真伪。证书由 CA 签发,所以要用 CA 的公钥去解验证书上的签名。

(9)选 C(A 的公钥)。证书验证通过后,就确认了证书里的公钥确实属于 A。第二步用这个公钥去验证消息 M 上的数字签名。

两步的先后顺序不能颠倒:先确认“这把公钥真是 A 的”,再用它验签。如果跳过第一步,攻击者可以伪造一张“A 的公钥”塞给你,之后所有验证都失去意义——这正是中间人攻击的典型路径。

B、D 错:B 的私钥和公钥都与“验证 A 的签名”无关。

整条链可以画成:CA 私钥签证书 → B 用 CA 公钥验证书 → 取出 A 的公钥 → 用 A 的公钥验消息签名。

记住这个两级结构:第一级验“身份”,第二级验“消息”。真题 120、126 考第一级,真题 116、118 考第二级。

真题 129 2013 下半年 · 题 8

PKI 体制中,保证数字证书不被篡改的方法是( )。

  • A用 CA 的私钥对数字证书签名
  • B用 CA 的公钥对数字证书签名
  • C用证书主人的私钥对数字证书签名
  • D用证书主人的公钥对数字证书签名
查看答案与解析收起答案与解析
答案A

A——对,只有 CA 掌握自己的私钥,别人没有 CA 私钥就改不了证书内容再冒充 CA 签名——篡改即被发现。B——错,公钥是公开的,谁都能“用 CA 公钥签名”(但那不是 CA 签的)。C、D——错,证书主人不签自己的证书。

真题 130 2017 上半年 · 题 9

假定用户 A、B 分别在两个 CA 处取得了各自的证书,下面( )是 A、B 互信的必要条件。

  • AA、B 互换私钥
  • BA、B 互换公钥
  • C两个 CA 互换私钥
  • D两个 CA 互换公钥
查看答案与解析收起答案与解析
答案D

A 的证书由 CA1 签、B 的证书由 CA2 签——A 要信 B 的证书,得先信 CA2;A 手里必须有 CA2 的公钥才能验证 CA2 的签名。所以两个 CA 互换公钥是互信的前提,选 D。A、B——私钥绝不互换(互换就失去意义);公钥互换只解决 A、B 之间,不解决 CA 之间的信任链。C——CA 的私钥绝不能互换。

真题 131 2019 上半年 · 题 9、10

用户 A 和 B 要进行安全通信,通信过程需确认双方身份和消息不可否认。A 和 B 通信时可使用(9)来对用户的身份进行认证;使用(10)确保消息不可否认。

(9)
  • A数字证书
  • B消息加密
  • C用户私钥
  • D数字签名
(10)
  • A数字证书
  • B消息加密
  • C用户私钥
  • D数字签名
查看答案与解析收起答案与解析
答案(9)A (10)D

(9)选 A(数字证书)。(10)选 D(数字签名)。

题干其实是两个不同的安全需求,要分清:

确认双方身份 → 需要“证明你是你”。数字证书由可信第三方 CA 签发,把“身份”和“公钥”绑定在一起,验证证书就确认了对方身份。所以(9)选数字证书。

消息不可否认 → 需要“发了就赖不掉”。数字签名用发送方私钥生成,只有他本人能签,事后无法抵赖;接收方用公钥验证,也能确认消息未被篡改。所以(10)选数字签名。

B 消息加密:只解决保密性(别人看不懂),不解决“你是谁”和“你赖不掉”。

C 用户私钥:是工具,不是手段,本身要保密,不能作为“认证方式”。

四者的分工记成一张表:证书管身份,签名管不可否认,加密管保密,摘要管完整。

真题 132 2019 下半年 · 题 10、11

某电子商务网站向 CA 申请了数字证书,用户可以通过使用(10)验证(11)的真伪来确定该网站的合法性。

(10)
  • ACA 的公钥
  • BCA 的签名
  • C网站的公钥
  • D网站的私钥
(11)
  • ACA 的公钥
  • BCA 的签名
  • C网站的公钥
  • D网站的私钥
查看答案与解析收起答案与解析
答案(10)A (11)B

(10)选 A(CA 的公钥)。用户要验证网站证书的真伪,而证书是 CA 签发的,所以用 CA 的公钥去解验证书上的签名。

(11)选 B(CA 的签名)。验证的具体对象,是证书里CA 的数字签名——用 CA 的公钥去解它,能解开且摘要对得上,就说明证书合法。

这两空其实是一件事的两面:用“CA 的公钥”去验“CA 的签名”。

C、D 错:网站的公钥/私钥是证书承载的内容,不是验证证书的工具。网站的公钥要等证书验通过之后才能信任;网站的私钥只有网站自己持有,用户不可能拿到。

浏览器里的实际流程:访问 HTTPS 网站 → 服务器下发证书 → 浏览器检查证书链 → 用内置的根 CA 公钥逐级验证签名 → 通过则建立加密通道。

如果证书验不过(过期、域名不匹配、签发者不认识),浏览器就会弹出“您的连接不是私密连接”的警告——这就是这道题在现实中的样子。

真题 133 2013 上半年 · 题 7

利用报文摘要算法生成报文摘要的目的是(7)。

  • A验证通信对方的身份,防止假冒
  • B对传输数据进行加密,防止数据被窃听
  • C防止发送方否认发送过数据
  • D防止发送的报文被篡改
查看答案与解析收起答案与解析
答案D

摘要是消息的“指纹”(MD5 128 位、SHA-1 160 位),接收方重算摘要比对即可发现报文是否被改——防篡改(完整性),选 D。A——身份验证靠签名/证书;B——加密才防窃听;C——防否认靠数字签名(摘要只是签名的原材料)。

真题 134 2013 下半年 · 题 9

下列算法中,不属于公开密钥加密算法的是( )。

  • AECC
  • BDSA
  • CRSA
  • DDES
查看答案与解析收起答案与解析
答案D

选 D。这道题和真题 139 是同一道题的两个年份版本,判断方法完全一样。

A ECC:椭圆曲线密码,基于椭圆曲线离散对数难题,属于公开密钥算法,密钥短、强度高。

B DSA:数字签名算法,基于离散对数难题,专门用于签名,属于公开密钥体制。

C RSA:基于大整数分解难题,最经典的公开密钥算法。

D DES:数据加密标准,对称加密算法,加解密同一把密钥(实际有效 56 位)。它不属于公开密钥算法。

判断技巧:看名字。带 RSA/DSA/ECC/DH 的是非对称,带 DES/AES/IDEA/RC4 的是对称。考场上不用推原理,认名字最快。

这道题在多个年份重复出现,是命题人认定的基础送分题,必须稳拿。

真题 135 2016 下半年 · 题 7

可用于数字签名的算法是( )。

  • ARSA
  • BIDEA
  • CRC4
  • DMD5
查看答案与解析收起答案与解析
答案A

A. RSA——对,非对称算法才能签名(私钥签、公钥验)。B. IDEA、C. RC4——对称加密,无签名能力。D. MD5——摘要算法,只生成指纹,本身不能签名(签名 = 私钥加密摘要)。

真题 136 2017 上半年 · 题 8

以下加密算法中适合对大量的明文消息进行加密传输的是( )。

  • ARSA
  • BSHA-1
  • CMD5
  • DRC5
查看答案与解析收起答案与解析
答案D

大量数据加密用对称算法(快)。D. RC5——对称算法,对。A. RSA——非对称,慢几百倍,只适合加密密钥。B. SHA-1、C. MD5——摘要算法,不能加密(不可逆)。

真题 137 2018 下半年 · 题 7

DES 是( )算法。

  • A公开密钥加密
  • B共享密钥加密
  • C数字签名
  • D认证
查看答案与解析收起答案与解析
答案B

选 B(共享密钥加密)。DES 是对称加密算法,加密和解密用同一把密钥,所以叫“共享密钥”。

DES 的基本情况:明文按 64 位分组,密钥 64 位(其中 8 位是奇偶校验位,实际有效 56 位),经过 16 轮置换和代换得到密文。解密用同一把密钥、同样的流程反着走。

A 错:公开密钥(非对称)算法加密和解密用不同的密钥,典型是 RSA、ECC、DSA。DES 是同一把钥匙。

C 错:数字签名是一种用途,不是加密算法的类别。DES 本身不做签名(签名需要非对称算法)。

D 错:认证是安全服务的目标,不是算法类型。

顺带记:DES 的 56 位密钥在今天的算力下已不安全,所以有了 3DES(做三次 DES)和 AES(128/192/256 位,目前主流)。

判别技巧:名字带 DES/AES/IDEA/RC4 的是对称,带 RSA/ECC/DSA/DH 的是非对称。

真题 138 2018 下半年 · 题 9、10

MD5 是(9)算法,对任意长度的输入计算得到的结果长度为(10)位。

(9)
  • A路由选择
  • B摘要
  • C共享密钥
  • D公开密钥
(10)
  • A56
  • B128
  • C140
  • D160
查看答案与解析收起答案与解析
答案(9)B (10)B

(9)选 B(摘要)。(10)选 B(128)。

MD5 的全称是 Message-Digest Algorithm 5,即“消息摘要算法第 5 版”。作用是把任意长度的输入压缩成固定长度的输出(128 位),这个输出叫摘要或指纹。

三个关键性质:

固定长度:不管输入是 1 字节还是 1GB,输出永远是 128 位(16 字节)。

单向不可逆:能从原文算出摘要,但无法从摘要还原原文。

抗碰撞:不同输入应得到不同摘要(但 MD5 已被证明可构造碰撞,现在不推荐用于安全场景)。

A 路由选择:是网络层的功能,与摘要无关。C 共享密钥、D 公开密钥:都是加密算法,能还原明文;摘要算法不可逆,不是加密。

(10)的四个选项对应不同算法的输出长度,容易混,一起记:

MD5 → 128 位;SHA-1 → 160 位;SHA-256 → 256 位;DES 密钥 → 56 位(A 选项就是拿它来混淆的,那是密钥长度,不是摘要长度)。

真题 139 2019 下半年 · 题 8

下列算法中,不属于公开密钥加密算法的是( )。

  • AECC
  • BDSA
  • CRSA
  • DDES
查看答案与解析收起答案与解析
答案D

选 D。这道题考“哪些算法属于公开密钥(非对称)体制”。

公开密钥算法的特点是加密和解密用不同的密钥(公钥加密、私钥解密),安全性建立在数学难题上:

A ECC(椭圆曲线密码):基于椭圆曲线离散对数问题,属于公开密钥算法,密钥短、强度高,广泛用于移动端和 TLS。

B DSA(数字签名算法):基于离散对数问题,专门用于数字签名,属于公开密钥体制。

C RSA:基于大整数分解难题,是最经典的公开密钥算法,既能加密也能签名。

D DES(数据加密标准):对称加密算法,加密和解密用同一把密钥,密钥长度 56 位。它不属于公开密钥算法。

顺带记:DES 已被认为不安全,其后继是 3DES 和 AES,AES 是目前主流的对称加密算法。

判断诀窍:名字里带“RSA/DSA/ECC/DH”的基本都是非对称,带“DES/AES/IDEA/RC4”的都是对称。考场上认名字比记原理快。

真题 140 2020 下半年 · 题 7

以下关于认证和加密的叙述中,错误的是( )。

  • A加密用以确保数据的保密性
  • B认证用以确保报文发送者和接收者的真实性
  • C认证和加密都可以阻止对手进行被动攻击
  • D身份认证的目的在于识别用户的合法性,阻止非法用户访问系统
查看答案与解析收起答案与解析
答案C

A——对,加密保保密性。B——对,认证保真实性。C——错误:加密防被动攻击(窃听),认证防主动攻击(冒充、篡改、重放)——说“都可以阻止被动攻击”不对,选 C。D——对。

真题 141 2021 上半年 · 题 9

下列算法中属于非对称加密算法的是( )。

  • ADES
  • BRSA
  • CAES
  • DMD5
查看答案与解析收起答案与解析
答案B

选 B(RSA)。RSA 是最经典的非对称(公开密钥)加密算法,基于大整数分解难题:两个大素数相乘很容易,把乘积分解回两个素数极难。

A 错:DES 是对称算法,加解密同一把密钥,密钥 56 位。

C 错:AES 也是对称算法,是 DES 的继任者,支持 128/192/256 位密钥,目前应用最广。

D 错:MD5 是消息摘要算法,不是加密算法。它把任意长度输入压成 128 位固定长度的摘要,用于完整性校验,不可逆。而且 MD5 已被证明存在碰撞,安全性不足,现在多用 SHA-256。

这道题把三类算法放在一起考,正好理清:

对称加密:DES、3DES、AES、IDEA、RC4——加解密同一把钥匙,速度快,适合大数据量。

非对称加密:RSA、ECC、DSA、DH——公私钥配对,速度慢,适合密钥交换和签名。

摘要算法:MD5、SHA-1、SHA-256——单向不可逆,用于完整性校验和签名前的“压缩”。

实际系统里三者配合:用非对称算法协商出对称密钥,用对称算法加密数据,用摘要算法保证完整性。

真题 142 2021 下半年 · 题 8

AES 是一种( )算法。

  • A公钥加密
  • B流密码
  • C分组加密
  • D消息摘要
查看答案与解析收起答案与解析
答案C

C. 分组加密——对,AES 是分组(对称)加密算法(分组长度 128 位,密钥 128/192/256 位),替代 DES。它不是公钥(那是 RSA),不是流密码(RC4 是流密码),也不是摘要(MD5)。

十、系统可靠性:串联乘,并联“一减全坏”

可靠性公式只有两个(教材 1.3 节):

  • 串联系统:所有部件都正常,系统才正常——R = R1 × R2 × … × Rn。
  • 并联系统:只要有一个部件正常,系统就正常——R = 1 − (1−R1)(1−R2)…(1−Rn)。

n 个相同部件:串联 R^n;并联 1 − (1−R)^n。混合系统“先算并联子系统,再把子系统当成一个部件去串联”。

真题 143 2010 上半年 · 题 2

某计算机系统由下图所示的部件构成,假定每个部件的千小时可靠度都为 R,则该系统的千小时可靠度为( )。(结构:1 个部件与两个“二并联”子系统依次串联)

  • AR³
  • BR(1−(1−R)²)
  • CR(1−(1−R)²)²
  • D(1−(1−R)²)²
查看答案与解析收起答案与解析
答案D

推导:① 每个二并联子系统的可靠度 = 1−(1−R)²(并联公式,只要有一个正常系统就正常);② 两个子系统与最左边的单个部件串联 → R × (1−(1−R)²) × (1−(1−R)²) = R(1−(1−R)²)²,选 D。

A. R³——三部件串联(没有并联);B——只算了一个并联块;C——正确。

真题 144 2011 上半年 · 题 6

某计算机系统由下图所示的部件构成,假定每个部件的千小时可靠度都为 R,则该系统的千小时可靠度为( )。(结构:两个“二并联”子系统与中间一个部件依次串联)

查看答案与解析收起答案与解析
答案D(R(1−(1−R)²)²)

推导:结构与 2010 上等价(并联块的位置换了)——两个二并联子系统与中间单个部件串联:R × (1−(1−R)²) × (1−(1−R)²) = R(1−(1−R)²)²,选 D。

真题 145 2017 上半年 · 题 4

某系统由下图所示的冗余部件构成。若每个部件的千小时可靠度都为 R,则该系统的千小时可靠度为( )。(结构:三个部件并联,两个部件并联,两个子系统再串联)

  • AR⁵
  • B(1−(1−R)³)(1−(1−R)²)
  • C(1−(1−R)³−(1−R)²)
  • DR³+R²
查看答案与解析收起答案与解析
答案B

选 B。可靠性计算只有两条公式,记牢就能秒杀。

串联:所有部件都必须正常,系统才正常。R = R₁ × R₂ × … × Rₙ,部件越多越不可靠。

并联:只要有一个部件正常,系统就正常。R = 1 − (1−R₁)(1−R₂)…(1−Rₙ),部件越多越可靠。

本题结构是“三并联”和“二并联”两个子系统再串联:

① 左块三个部件并联:1 − (1−R)³

② 右块两个部件并联:1 − (1−R)²

③ 两个子系统串联,相乘:(1 − (1−R)³)(1 − (1−R)²)

A 错:R⁵ 是“五个部件全部串联”的结果,与图不符。

C 错:把串联当成了减法。串联是相乘,不是相减。

D 错:R³ + R² 是把并联当成了相加。并联的可靠性一定小于 1,而 R³+R² 在 R 较大时会超过 1,显然不可能。

解这类题的顺序:先看整体是串还是并 → 再逐层套公式 → 从最内层往外算。图上并排画在一起的是并联,首尾相接的是串联。

真题 146 2018 下半年 · 题 4

某系统由下图所示的部件构成,每个部件的千小时可靠度都为 R,该系统的千小时可靠度为( )。(结构:三并联 + 二并联再串联)

查看答案与解析收起答案与解析
答案C((1−(1−R)³)(1−(1−R)²))

选 C。这题和 2017 上半年那道是同一张图、同一套算法,只是选项顺序变了。

结构:三个部件并联成一个子系统,两个部件并联成另一个子系统,两个子系统再串联。

公式分两步:

并联:R并 = 1 − (1−R)ⁿ。三并联是 1 − (1−R)³,二并联是 1 − (1−R)²。

串联:R串 = R₁ × R₂。所以整体是 [1 − (1−R)³] × [1 − (1−R)²]。

按官方答案选 C(原选项为公式图)。

要提醒的是:并联的可靠性一定大于单个部件,串联一定小于。用这个性质可以快速排除错误选项——凡是结果可能大于 1 的(比如 R³+R²),一定是把并联当成了相加。

这道题连续两年出现(2017 上、2018 下),图形结构完全一样。把“三并联 × 二并联”这个组合记住,考场上不用重新推。

真题 147 2019 上半年 · 题 4

某系统由 3 个部件构成,每个部件的千小时可靠度都为 R,该系统的千小时可靠度为 R(1−(1−R)²),则该系统的构成方式是( )。

  • A3 个部件串联
  • B3 个部件并联
  • C前两个部件并联后与第三个部件串联
  • D第一个部件与后两个部件并联构成的子系统串联
查看答案与解析收起答案与解析
答案C

推导:R(1−(1−R)²) 中的 (1−(1−R)²) 是两个部件并联,再乘一个 R 就是与第三个部件串联——即“前两个部件并联后,再与第三个部件串联”,选 C。

A. 串联 → R³;B. 并联 → 1−(1−R)³;D——“第一个部件与后两个部件并联构成的子系统串联”在数学上同样是 R(1−(1−R)²),但题目的结构图对应 C 的画法——按官方答案选 C。

真题 148 2019 下半年 · 题 2

某系统的可靠性结构框图如下图所示,假设部件 1、2、3 的可靠度分别为 0.90、0.80、0.80(部件 2、3 为冗余系统)。若要求该系统的可靠度不小于 0.85,则进行系统设计时,部件 4 的可靠度至少应为( )。

  • A0.85 / (0.9 × (1 − (1−0.8)²))
  • B0.85 / (0.9 + (1−0.8)²)
  • C0.85 × (0.9 × (1−0.8)²)
  • D0.85 / (0.9 × (1−0.8))
查看答案与解析收起答案与解析
答案A

计算过程:① 部件 2、3 并联:1 − (1−0.8)² = 1 − 0.04 = 0.96;② 与部件 1 串联:0.9 × 0.96 = 0.864;③ 再与部件 4 串联,要求 0.864 × R4 ≥ 0.85 → R4 ≥ 0.85 / 0.864 ≈ 0.9838。

A——正是 0.85 ÷ 0.864 的表达式,对。B——分母的并联公式写成了加法;C——把除法写成了乘法;D——并联公式少了一个 1−。

十一、性能评价与杂题:那些“送分但容易忘”的点

真题 149 2010 下半年 · 题 5

编写汇编语言程序时,下列寄存器中程序员可访问的是( )。

  • A程序计数器(PC)
  • B指令寄存器(IR)
  • C存储器数据寄存器(MDR)
  • D存储器地址寄存器(MAR)
查看答案与解析收起答案与解析
答案A

选 A(程序计数器 PC)。在汇编语言层面,程序员能直接访问的是程序计数器(以及通用寄存器、标志寄存器),而 IR、MDR、MAR 属于 CPU 内部的工作寄存器,对程序员透明。

A 程序计数器(PC):存放下一条要执行的指令地址。汇编程序员可以用它实现跳转、计算相对偏移,很多体系结构里都有指令能读写 PC。

B 指令寄存器(IR):存放当前正在执行的指令,由 CPU 内部自动装载。程序员无法也不应该直接访问——你没法“读一条正在执行的指令”。

C 存储器数据寄存器(MDR):暂存与主存交换的数据,是 CPU 与内存之间的缓冲,由硬件控制。

D 存储器地址寄存器(MAR):暂存要访问的主存地址,同样由硬件自动设置。

“透明”这个词在这里是关键:对程序员透明 = 看不见、不用管,不是说“看得见”。IR、MDR、MAR 都属于这一类,值由硬件在取指、访存时自动填好。

可以这样理解:PC 决定“程序走到哪”,是程序逻辑的一部分,所以程序员能碰;IR/MAR/MDR 是“CPU 干活时的草稿纸”,程序逻辑管不着。

真题 150 2013 下半年 · 题 2

指令寄存器的位数取决于( )。

  • A存储器的容量
  • B指令字长
  • C数据总线的宽度
  • D地址总线的宽度
查看答案与解析收起答案与解析
答案B

B——对,IR 要装下整条指令,所以位数 = 指令字长。A——存储器容量决定地址寄存器/MAR 的位数;C——数据总线宽度决定一次传输的位数;D——地址总线宽度决定寻址范围。

真题 151 2013 下半年 · 题 3

若计算机存储数据采用的是双符号位(00 表示正号、11 表示负号),两个符号相同的数相加时,如果运算结果的两个符号位经( )运算得 1,则可断定这两个数相加的结果产生了溢出。

  • A逻辑与
  • B逻辑或
  • C逻辑同或
  • D逻辑异或
查看答案与解析收起答案与解析
答案D

选 D(逻辑异或)。双符号位(变形补码)判溢出的规则是:两个符号位异或为 1 则溢出。

原理:双符号位用两位表示符号,00 表示正、11 表示负,正常情况下两位始终相同。运算结果如果两位不同,说明发生了溢出:

01:本该是正数,数值部分溢到了符号位 → 正溢出(结果超过最大正数)。

10:本该是负数,同样溢到符号位 → 负溢出(结果小于最小负数)。

所以判断方法就是看这两位“是否相同”,不同则溢出——而“不同则为 1”正是异或的定义。

A 错:逻辑与只在两位都为 1 时得 1(即 11),那表示负数,不是溢出。

B 错:逻辑或只要有一位为 1 就得 1,00 时得 0、11 时也得 1,无法区分正常与溢出。

C 错:同或(异或的非)在两位相同时得 1,恰好和溢出判断相反。

顺带记单符号位的判溢出方法:最高位进位与次高位进位异或为 1 则溢出。双符号位法相当于把这个判断“可视化”了——直接看两个符号位是否一致即可。

真题 152 2014 下半年 · 题 2

计算机采用分级存储体系的主要目的是为了解决( )问题。

  • A主存容量不足
  • B存储器读写可靠性
  • C外设访问效率
  • D存储容量、成本和速度之间的矛盾
查看答案与解析收起答案与解析
答案D

选 D。分级存储体系(寄存器 → Cache → 主存 → 外存)的存在理由,就是同时兼顾三个互相矛盾的指标。

矛盾在哪:

速度:寄存器最快,Cache 次之,主存再次,外存最慢——差几个数量级。

容量:反过来,寄存器最小(几十字节),外存最大(TB 级)。

成本:越快越贵,每字节价格也差几个数量级。

如果只用最快的,成本高到不可承受;只用最便宜的,慢到没法用。分级存储的做法是:把最常用的数据放在最快最贵的小容量层,把不常用的放在最慢最便宜的大容量层,靠“局部性原理”让整体表现接近最快那层,成本接近最便宜那层。

A 错:主存容量不足只是其中一个维度,没覆盖速度和成本。

B 错:可靠性靠校验、冗余、RAID 解决,不是分级存储的目的。

C 错:外设访问效率靠接口、缓冲、DMA 优化,与存储层次无关。

这道题的干扰设计很典型:A 看起来“很像”,但它只说了三分之一。凡是问“主要目的”的题,要选能覆盖全局的那个。

真题 153 2015 上半年 · 题 2

计算机中 CPU 对其访问速度最快的是( )。

  • A内存
  • BCache
  • C通用寄存器
  • D硬盘
查看答案与解析收起答案与解析
答案C

选 C(通用寄存器)。CPU 访问速度的排序是:寄存器 > Cache > 主存 > 辅存(硬盘)。

通用寄存器:就在 CPU 内部,和运算器直接相连,访问延迟通常只有 1 个时钟周期甚至更短,是最快的存储部件。数量很少(x86-64 只有 16 个通用寄存器),所以编译器要精心分配。

Cache:也在 CPU 内部或紧邻,访问延迟几个到十几个时钟周期,比主存快一个数量级,但比寄存器慢。

内存(主存):需要经过系统总线访问,延迟几十到上百个时钟周期。

硬盘:机械硬盘寻道加旋转延迟是毫秒级,SSD 也是微秒级,比内存慢几个数量级。

A 错:内存比 Cache 和寄存器都慢。B 错:Cache 很快,但仍慢于寄存器。D 错:硬盘是最慢的一档。

这道题的价值在于建立“速度—容量—成本”的直觉:越快的越小越贵,越慢的越大越便宜。寄存器是这条链的顶端,硬盘是底端。

真题 154 2015 上半年 · 题 8、9

安全需求可划分为物理线路安全、网络安全、系统安全和应用安全。下面的安全需求中属于系统安全的是(8),属于应用安全的是(9)。

(8)
  • A机房安全
  • B入侵检测
  • C漏洞补丁管理
  • D数据库安全
(9)
  • A机房安全
  • B入侵检测
  • C漏洞补丁管理
  • D数据库安全
查看答案与解析收起答案与解析
答案(8)C (9)D

(8)选 C(漏洞补丁管理)。(9)选 D(数据库安全)。

安全需求分四层,从下往上:

物理安全:保护机房、设备、线路的物理实体。机房安全(A)、设备防雷击、门禁、防火防水都属于这一层。

网络安全:保护网络传输和网络设备。入侵检测(B)、防火墙、VPN、流量控制都属于这一层。

系统安全:保护操作系统和基础软件的稳定运行。漏洞发现与补丁管理(C)、操作系统加固、账号权限管理、日志审计属于这一层——补丁打的是操作系统的漏洞。

应用安全:保护具体业务应用和数据。数据库安全(D)、Web 应用防护、身份认证、数据加密属于这一层——数据库承载的是业务数据。

判别方法:看这个措施作用在哪一层。打补丁修系统软件,所以是系统安全;保护数据库里的业务数据,所以是应用安全。

易错点:入侵检测常被误认为“系统安全”,其实它监控的是网络流量,属于网络安全。这一项是本题最主要的干扰。

真题 155 2015 下半年 · 题 7

( )不属于主动攻击。

  • A流量分析
  • B重放
  • CIP 地址欺骗
  • D拒绝服务
查看答案与解析收起答案与解析
答案A

选 A(流量分析)。主动攻击和被动攻击的分界线是:是否修改数据或影响系统运行。

被动攻击:只“看”,不改。典型是窃听和流量分析——攻击者截获数据包,观察通信的频率、时长、包大小等特征,从中推断信息(比如“这两个 IP 每晚 10 点大量通信,可能在备份”)。数据本身一个字节都没动,所以属于被动攻击,且难以察觉。

主动攻击:要“动手”,会改变数据流或系统状态。三类典型:

B 重放:把截获的合法消息再发一遍,冒充合法操作(比如重放一次转账请求)。

C IP 地址欺骗:伪造源 IP,冒充他人身份发数据包。

D 拒绝服务:用大量请求耗尽资源,让正常用户无法访问。

还有一类常考的是篡改(修改数据包内容)。

防御思路也不同:被动攻击靠加密(让他看不懂),主动攻击靠认证和完整性校验(让他改不了、冒充不了)。

真题 156 2017 下半年 · 题 9

下列攻击行为中,属于典型被动攻击的是( )。

  • A拒绝服务攻击
  • B会话拦截
  • C系统干涉
  • D修改数据命令
查看答案与解析收起答案与解析
答案B

B. 会话拦截——对(按本题官方解析归为被动攻击):在通信过程中截获会话内容,不主动篡改数据。A(拒绝服务)、C(系统干涉)、D(修改数据)都是主动攻击。

真题 157 2016 上半年 · 题 1

VLIW 是( )的简称。

  • A复杂指令系统计算机
  • B超大规模集成电路
  • C单指令流多数据流
  • D超长指令字
查看答案与解析收起答案与解析
答案D

D. Very Long Instruction Word——对,超长指令字:把多条独立操作打包进一条长指令,由编译器静态调度。A——CISC;B——VLSI;C——SIMD。

真题 158 2016 上半年 · 题 4

移位指令中的( )指令的操作结果相当于对操作数进行乘 2 操作。

  • A算术左移
  • B逻辑右移
  • C算术右移
  • D带进位循环左移
查看答案与解析收起答案与解析
答案A

选 A(算术左移)。左移一位相当于乘以 2,这是二进制位运算的基本性质。

原理:二进制数左移一位,每一位的权都升一级(2⁰→2¹、2¹→2²……),整体值变为原来的 2 倍。比如 0011(3)左移一位得 0110(6)。

为什么强调“算术”左移?因为移位分两类:

算术移位:把操作数当作有符号数,移位时保持符号位不变。算术左移低位补 0,符号位不动——只要不溢出,结果就是乘 2。

逻辑移位:把操作数当作无符号数,所有位一起移,空出的位补 0。逻辑左移同样相当于乘 2,但它不关心符号。

B 错:逻辑右移是除以 2(无符号),不是乘 2。

C 错:算术右移也相当于除以 2(有符号),且高位补符号位,保持负数仍为负。

D 错:带进位循环左移是把移出的最高位移进进位标志、进位标志移入最低位,是“循环”而非“乘 2”,结果不是原值的 2 倍。

记忆:左移乘 2、右移除 2;算术移位管符号,逻辑移位不管,循环移位不改变数值的倍数关系。

真题 159 2016 下半年 · 题 1

在程序运行过程中,CPU 需要将指令从内存中取出并加以分析和执行。CPU 依据( )来区分在内存中以二进制编码形式存放的指令和数据。

  • A指令周期的不同阶段
  • B指令和数据的寻址方式
  • C指令操作码的译码结果
  • D指令和数据所在的存储单元
查看答案与解析收起答案与解析
答案A

选 A(指令周期的不同阶段)。内存里的指令和数据都是二进制 0/1,形式上看不出区别,CPU 靠“当前处于指令周期的哪个阶段”来区分。

指令周期分两个大阶段:

取指阶段:CPU 把 PC 指向的内容当作指令读进来,送进指令寄存器 IR,再译码执行。这个阶段读出来的就是指令。

执行阶段:根据指令里的地址去读操作数,这时读出来的内容是数据。

同样一段二进制,在取指阶段被当指令,在执行阶段被当数据——区别不在内容,而在CPU 此刻处于哪个阶段。

B 错:寻址方式决定的是“怎么找到操作数”,不是“怎么区分指令和数据”。

C 错:操作码译码发生在已经取出指令之后,是“取出之后怎么解释”,不是“取的时候怎么区分”。这个选项最容易误选。

D 错:存储单元本身不携带“我是指令还是数据”的标记,内存是统一编址的。

这也解释了冯·诺依曼体系的“存储程序”思想:指令和数据混存在同一存储器里,靠时序(阶段)而不是靠位置来区分。

真题 160 2016 下半年 · 题 9

在网络设计和实施过程中要采取多种安全措施,其中( )是针对系统安全需求的措施。

  • A设备防雷击
  • B入侵检测
  • C漏洞发现与补丁管理
  • D流量控制
查看答案与解析收起答案与解析
答案C

选 C(漏洞发现与补丁管理)。四层安全需求的划分是:物理安全、网络安全、系统安全、应用安全。

物理安全:机房、设备、线路的实体防护。A 设备防雷击属于这一层。

网络安全:网络传输与网络设备的防护。B 入侵检测、D 流量控制属于这一层——入侵检测监控流量,流量控制管理带宽。

系统安全:操作系统和基础软件的防护。C 漏洞发现与补丁管理属于这一层——补丁修的是操作系统/基础软件的漏洞,账号权限、日志审计也归这里。

应用安全:业务应用与数据的防护,比如数据库安全、Web 防护、身份认证。

判别方法:看措施作用的对象。打补丁针对系统软件本身,所以是系统安全;防雷击针对物理设备;入侵检测和流量控制针对网络流量。

这道题和真题 149 是同一知识点,只是把“数据库安全”换成了“流量控制”作干扰。两道题连做,四层划分就清楚了。

真题 161 2017 上半年 · 题 2

要判断字长为 16 位的整数 a 的低四位是否全为 0,则( )。

  • A将 a 与 0x000F 进行“逻辑与”运算,然后判断运算结果是否等于 0
  • B将 a 与 0x000F 进行“逻辑或”运算,然后判断运算结果是否等于 F
  • C将 a 与 0xFFF0 进行“逻辑异或”运算,然后判断运算结果是否等于 0
  • D将 a 与 0xFFF0 进行“逻辑与”运算,然后判断运算结果是否等于 F
查看答案与解析收起答案与解析
答案A

完整分析:用 0x000F 做掩码(低 4 位为 1,其余为 0),与运算后 a 的低 4 位保留、高 12 位清零——结果为 0 说明低 4 位全 0。选 A。

B——或运算不能“提取”低 4 位;C——异或 0xFFF0 后比较,判断的是高 12 位;D——与 0xFFF0 后保留的是高 12 位,判断的不是低 4 位。

真题 162 2020 下半年 · 题 4、5

某计算机系统的 CPU 主频为 2.8GHz。某应用程序包括 3 类指令,各类指令的 CPI 及指令比例如下:指令 A 的 CPI 为 4、占比 35%;指令 B 的 CPI 为 2、占比 45%;指令 C 的 CPI 为 6、占比 20%。执行该应用程序时的平均 CPI 为(4);运算速度用 MIPS 表示,约为(5)。

(4)
  • A2.5
  • B3
  • C3.5
  • D4
(5)
  • A700
  • B800
  • C930
  • D1100
查看答案与解析收起答案与解析
答案(4)C (5)B

计算过程:

① 平均 CPI = Σ(CPIᵢ × 占比ᵢ) = 4×0.35 + 2×0.45 + 6×0.20 = 1.4 + 0.9 + 1.2 = 3.5,选 C。

② MIPS = 主频(MHz) ÷ CPI = 2800 ÷ 3.5 = 800,选 B。

(4)B 是漏算了 C 类指令的结果;(5)D 是把主频当成 2.8GHz=2800MHz 之外又乘了系数。

十二、考前速记:25 条“看到就选”

  1. 为 ALU 提供数据、暂存运算结果 → 累加寄存器 AC。
  2. 属于 ALU 的部件 → 加法器。
  3. 装当前指令 → IR;装下一条指令地址 → PC;翻译操作码 → ID。
  4. 对用户透明 → IR;程序员可访问 → PC。
  5. 取指第一步 → PC 送地址总线。
  6. 容量 = 末地址 − 首地址 + 1。
  7. 按字编址 → 字节数 ÷ 字长字节数。
  8. 芯片数 → 总容量 ÷ 单片容量,位宽不够要 ×2。
  9. 补码范围 → −2^(n−1) ~ 2^(n−1)−1。
  10. 移码 = 补码符号位取反。
  11. 浮点:阶码管范围,尾数管精度;对阶:小阶向大阶,尾数右移。
  12. 寻址速度:立即 > 寄存器 > 直接 > 寄存器间接 > 间接。
  13. 海明码:2^k − 1 ≥ n + k,码距 3。
  14. 奇偶/CRC:码距 2,只检错不纠错。
  15. RISC:指令少、定长、寻址少、硬布线、寄存器多、适合流水线。
  16. 流水线:周期 = 最长段;T = 首条总时间 + (n−1)×周期。
  17. 主存 DRAM(要刷新),Cache SRAM(不刷新),Flash 按块删、可替 ROM、不替主存。
  18. Cache 映射:直接冲突多、全相联冲突少、组相联折中;地址映射 硬件自动完成。
  19. 中断向量 = 中断服务程序入口地址;响应时间 = 请求到进入处理程序;保存现场 = 正确返回。
  20. DMA:主存↔外设,块传输,每字占 一个总线周期,指令结束时响应。
  21. 公钥加密、私钥解密 → 保密;私钥签名、公钥验证 → 认证。
  22. 证书:CA 私钥签、CA 公钥验,证书里装用户公钥。
  23. 摘要:MD5 128 位,SHA-1 160 位,只防篡改。
  24. 对称:DES/3DES/AES/IDEA/RC4/RC5;非对称:RSA/ECC/DSA。
  25. 加密防被动,认证防主动;流量分析是被动,重放/DoS 是主动。

十三、答案速查表

CPU 组成

年份题号答案年份题号答案
2014 上1D2014 下3B
2017 上1B2009 下1B
2010 上5C2011 下5B
2011 下6B2012 下1B
2019 上1A2010 上1B
2011 上1C2016 下2C
2018 下1B2020 下2A
2021 上1A

内存编址

年份题号答案年份题号答案
2010 下4B2012 上2D
2013 上5、6B、C2014 上6A
2014 下4D2015 下5B
2016 上5C2017 下3B
2019 下4、5D、B

码制与浮点

年份题号答案年份题号答案
2009 上5C2010 上20B
2010 下2C2011 上4B
2014 上2B2016 上3B
2018 下3D2009 下3、4C、D
2011 上5A2012 下3B
2015 上1A2015 下3B
2016 下3B2018 上1D
2020 下3B2021 下6B

寻址、校验码、指令系统

年份题号答案年份题号答案
2011 上2D2011 下1A
2012 上4B2013 下6C
2015 下4C2021 下1A
2009 下5A2017 下5A
2018 下5C2009 上1A
2014 上3C2016 下4C
2017 上5C2018 上4、5D、B
2012 下2A2019 上5D
2009 下2A2013 下5A
2014 下5A2015 下6A
2019 上6B2021 上2D

流水线

年份题号答案年份题号答案
2015 上6D2017 下2C
2018 上6C2018 下6A
2009 上6B2012 上5、6C、D
2013 下4C2014 上4、5D、B
2016 下5D2019 下6B

存储与 Cache

年份题号答案年份题号答案
2009 上3B2012 上3C
2012 下4C2013 上1A
2015 下2A2017 下4A
2019 上3C2021 上4C
2021 下5B2009 下6B
2015 上3A2016 上2A
2017 上6A2019 下1B
2011 下3A2012 上1A
2013 下1A2016 下6D
2017 下1C2020 下1D

I/O 与中断

年份题号答案年份题号答案
2013 上2C2013 上3D
2015 上4D2018 上2、3B、C
2019 下3C2020 下6D
2021 下4C2010 上3C
2017 下6B2021 上6B
2021 下3A2010 下1C
2012 下5D2013 上4C
2015 下1A2017 上3D
2019 上2C2021 上3B

总线

年份题号答案年份题号答案
2009 上4A2010 下3A
2011 上3C2011 下4C
2012 下6C2014 下1B
2015 上5C2016 上6C
2021 下2D

安全与加密

年份题号答案年份题号答案
2010 下66、67A、D2009 上8D
2012 上7A2016 下8D
2018 上8、9B、A2009 下9A
2011 上7C2011 下9B
2012 下8、9A、C2013 下8A
2017 上9D2019 上9、10A、D
2019 下10、11A、B2013 上7D
2013 下9D2016 下7A
2017 上8D2018 下7B
2018 下9、10B、B2019 下8D
2020 下7C2021 上9B
2021 下8C

系统可靠性

年份题号答案年份题号答案
2010 上2D2011 上6D
2017 上4B2018 下4C
2019 上4C2019 下2A

性能评价与杂题

年份题号答案年份题号答案
2010 下5A2013 下2B
2013 下3D2014 下2D
2015 上2C2015 上8、9C、D
2015 下7A2017 下9B
2016 上1D2016 上4A
2016 下1A2016 下9C
2017 上2A2020 下4、5C、B

参考资料

  • 《软件设计师教程(第5版)》第 1 章“计算机系统知识”(1.1 计算机系统基础知识、1.2 计算机体系结构、1.3 安全性、可靠性与系统性能评测基础知识)——本篇所引教材内容的出处。
  • 希赛网《软件设计师考试知识点》系列:传值/传址、后缀表达式、有限自动机的考法分析。
  • CSDN 备考笔记《程序设计语言基础知识点(软件设计师)》《【软件设计师】程序设计语言》:编译过程表、文法口诀、静态/动态与强/弱类型对照。
  • 名校题库网《2018 年下半年软件设计师上午真题》:部分真题的原始表述核对。

写在最后

计算机系统这一章的“魂”只有一句话:高级语言怎么变成机器能跑的程序,以及这个过程中每个环节在干什么。

  • 编译和解释的分界,就是“有没有独立的目标程序、谁参与运行”;
  • 传值和传引用的分界,就是“给的是值还是地址、能不能改到实参”;
  • 六个阶段的分界,就是“字符流 → 记号流 → 语法树 → 中间代码 → 目标代码”这条流水线上的每一站;
  • 正规式、自动机、文法,则是这条流水线两端(词法和语法)的形式化描述。

计算题(编址、码制、后缀式、流水线、可靠性)看着吓人,其实全是一步步走流程的体力活;概念题看着零散,其实都挂在这条主线上。把上面的 145 个空刷两遍,把速记清单默一遍,这一章的 6~9 分就稳了。

祝备考顺利。