软考中级软件设计师备考指南(二):计算机体系结构与指令系统

在上一篇中,我们梳理了计算机硬件基础与数据表示,本篇将深入 "计算机体系结构" 模块 ------ 这是软考的难点之一,涵盖体系分类、指令系统、流水线技术,年均考察 4-5 题,且多涉及计算与对比,需重点突破。

目录

[一、体系结构分类:从 "宏观" 到 "微观" 的划分](#一、体系结构分类:从 “宏观” 到 “微观” 的划分)

[1.1 宏观分类:按处理机数量划分](#1.1 宏观分类:按处理机数量划分)

[1.2 微观分类:Flynn 分类法(高频考点)](#1.2 微观分类:Flynn 分类法(高频考点))

[二、指令系统:软硬件交互的 "桥梁"](#二、指令系统:软硬件交互的 “桥梁”)

[2.1 指令格式:操作码 + 地址码](#2.1 指令格式:操作码 + 地址码)

[2.2 寻址方式:速度决定 "优先级"](#2.2 寻址方式:速度决定 “优先级”)

(1)核心寻址方式及速度排序

[(2)指令寻址 vs 操作数寻址](#(2)指令寻址 vs 操作数寻址)

[2.3 CISC 与 RISC:对比记忆 "核心差异"](#2.3 CISC 与 RISC:对比记忆 “核心差异”)

[三、流水线技术:提升 CPU 效率的 "关键"](#三、流水线技术:提升 CPU 效率的 “关键”)

[3.1 流水线基本原理](#3.1 流水线基本原理)

[3.2 流水线执行时间计算(高频计算题)](#3.2 流水线执行时间计算(高频计算题))

[3.3 流水线性能指标](#3.3 流水线性能指标)

[四、CPU 如何区分指令和数据?(易混淆点)](#四、CPU 如何区分指令和数据?(易混淆点))

小结:核心考点与解题技巧


一、体系结构分类:从 "宏观" 到 "微观" 的划分

软考对体系结构的考察,核心是Flynn 分类法(微观)和 "处理机数量分类"(宏观),需明确各类系统的特征及应用场景。

1.1 宏观分类:按处理机数量划分

  • 单处理系统:1 个 CPU,所有任务串行执行(比如早期 PC),特点是结构简单,效率低;
  • 并行 / 多处理系统:2 个以上 CPU,通过总线互连协同工作(比如服务器),核心优势是 "并行计算",提升复杂任务处理速度;
  • 分布式处理系统:CPU 物理上远距离(比如云计算节点),松耦合连接,特点是 "通信时间不可忽略"(相比处理时间),适用于大规模分布式任务(如大数据分析)。

1.2 微观分类:Flynn 分类法(高频考点)

1966 年 Flynn 按 "指令流(IS)" 和 "数据流(DS)" 数量划分,共 4 类,软考常考 "每类的定义 + 实例":

分类 指令流 数据流 特点 实例
SISD 指令串行、数据串行,传统冯诺依曼机 早期 PC、单片机
SIMD 一条指令操作多个数据,并行处理 GPU(图形渲染)、向量处理器
MISD 多条指令操作一个数据,理论存在,实际极少 无商用实例(软考中可理解为 "几乎不用")
MIMD 多条指令操作多个数据,完全并行 服务器(多 CPU)、超级计算机

易错点:MISD 实际无商用产品,考题若问 "以下哪类很少见",答案必是 MISD;SIMD 的核心是 "单指令多数据",比如 GPU 一次处理多个像素点,就是典型 SIMD。

二、指令系统:软硬件交互的 "桥梁"

指令系统是软件(程序)与硬件(CPU)的交互界面,软考核心考 "指令格式、寻址方式、CISC 与 RISC 对比",尤其是 "寻址方式速度排序" 和 "CISC/RISC 区别"。

2.1 指令格式:操作码 + 地址码

  • 操作码(OP):指定指令功能(比如加法、取数),长度固定或可变(CISC 常用可变长,RISC 常用固定长);
  • 地址码(A):指定操作数的位置(比如内存地址、寄存器编号),可分为零地址、一地址、二地址指令(比如二地址指令 "ADD R1, R2",R1 和 R2 是地址码)。

2.2 寻址方式:速度决定 "优先级"

寻址方式是 "找到操作数的方法",软考常考 "速度排序" 和 "操作数位置",需记住:访问次数越少,速度越快(寄存器比内存快,内存比 "内存的内存" 快)。

(1)核心寻址方式及速度排序

速度从快到慢:立即寻址 > 寄存器寻址 > 直接寻址 > 寄存器间接寻址 > 间接寻址

  • 立即寻址:操作数直接在指令中(比如 "ADD R1, #5",#5 是操作数),无需访存,速度最快;
  • 寄存器寻址:操作数在寄存器中(比如 "ADD R1, R2"),只需访问寄存器(纳秒级),速度次之;
  • 直接寻址:操作数在内存中,地址码是直接地址(比如 "ADD R1, (100H)"),需 1 次访存;
  • 寄存器间接寻址:地址码是寄存器编号,寄存器中存的是操作数的内存地址(比如 "ADD R1, (R2)"),需 1 次访存(比直接寻址稍慢,多一步寄存器解析);
  • 间接寻址:地址码是 "操作数地址的地址"(比如 "ADD R1, ((100H))"),需 2 次访存(先取地址,再取操作数),速度最慢。
(2)指令寻址 vs 操作数寻址
  • 指令寻址:找下一条指令的地址,分 "顺序寻址"(PC 自增)和 "跳跃寻址"(JMP 指令,PC 直接设为目标地址,用于循环 / 分支);
  • 操作数寻址:找操作数的地址(即上述立即、寄存器等方式)。

例题:以下寻址方式速度最快的是?(A. 直接寻址 B. 立即寻址 C. 寄存器间接寻址)答案:B(立即寻址无需访存,速度最快)。

2.3 CISC 与 RISC:对比记忆 "核心差异"

CISC(复杂指令集)和 RISC(精简指令集)是两种指令集设计思想,软考常考 "特征对比",需用表格清晰区分:

对比维度 CISC(如 x86 架构) RISC(如 ARM 架构)
指令数量 多(几百条) 少(几十条,只保留高频指令)
指令长度 可变长(1-15 字节) 固定长(如 4 字节)
寻址方式 丰富(10 + 种) 简单(3-5 种)
控制器 微程序控制(软件实现) 硬布线控制(硬件实现,速度快)
通用寄存器 少(几个) 多(32 个以上,减少访存)
运算方式 支持复杂运算(如乘法指令) 复杂运算拆为简单指令(如乘法拆为加法)
流水线 难实现(指令长且复杂) 易实现(指令简单,适合流水线)

易错点:RISC 不是 "功能弱",而是 "指令精简 + 硬件优化",实际执行效率更高(比如手机 CPU 多是 ARM 架构,即 RISC);CISC 的优势是编程灵活(指令多),但硬件复杂。

三、流水线技术:提升 CPU 效率的 "关键"

流水线技术是 "将指令执行拆分为多阶段,并行处理",类似工厂流水线,是软考的计算重点,需掌握 "执行时间计算" 和 "性能指标"。

3.1 流水线基本原理

  • 阶段划分:指令执行通常拆为 "取指(IF)→译码(ID)→执行(EX)→写回(WB)"4 个阶段,每个阶段由专用硬件处理;
  • 核心思想:前一条指令进入下阶段时,当前阶段立即处理下一条指令(比如 IF 处理第 2 条指令时,ID 处理第 1 条指令),提升并行度。

3.2 流水线执行时间计算(高频计算题)

软考常考 "非流水线" 与 "流水线" 时间对比,需记住两个公式:

  • 非流水线时间:单条指令时间 × 指令数 = T₁ × n(T₁是各阶段时间之和,比如 IF=2ns,ID=2ns,EX=1ns,WB=1ns,T₁=6ns);
  • 流水线时间:第一条指令时间 + (n-1)× 最长阶段时间 = T₁ + (n-1)×T_max(T_max 是最慢阶段的时间,即 "瓶颈",比如上述 T_max=2ns)。

例题:3 段流水线(取指 2ns、分析 2ns、执行 1ns),执行 1000 条指令,总时间是多少?计算:T₁=2+2+1=5ns,T_max=2ns → 总时间 = 5 + (1000-1)×2 = 5 + 1998 = 2003ns(2021 年真题,答案为 2003ns)。

3.3 流水线性能指标

  • 加速比:非流水线时间 / 流水线时间 = (T₁×n) / [T₁ + (n-1)×T_max](n 越大,加速比越接近 T₁/T_max);
  • 吞吐率:单位时间完成的指令数 = 指令数 / 流水线时间(瓶颈阶段越短,吞吐率越高);
  • 超标量流水线:通过增加硬件(如双取指部件、双译码部件),实现 "多条流水线并行"(比如一次处理 2 条指令),是 "空间换时间",常见于高端 CPU(如多核 CPU)。

四、CPU 如何区分指令和数据?(易混淆点)

冯诺依曼结构中,指令和数据都存在内存中(二进制 0/1),CPU 靠 "指令周期的阶段" 区分:

  • 取指阶段:从内存取的是指令(地址来自 PC),存入 IR;
  • 执行阶段:从内存取的是数据(地址来自地址码),存入 DR;
  • 对比哈佛结构:指令和数据分开存储,无需区分,但硬件复杂(如 DSP 芯片用哈佛结构)。

小结:核心考点与解题技巧

  1. 必背考点:Flynn 分类法(SIMD/MIMD 实例)、寻址方式速度排序、CISC 与 RISC 对比、流水线时间计算;
  2. 解题技巧
    • 遇到 "体系分类" 题,先看处理机数量(宏观)或指令流 / 数据流(微观);
    • 遇到 "寻址速度" 题,记住 "立即最快,间接最慢";
    • 遇到 "流水线计算" 题,先找 T_max(瓶颈),再套公式;
  3. 易错点:MISD 无商用实例、RISC 指令固定长、流水线时间计算需加 "(n-1)×T_max"。

下一篇我们将讲解 "存储系统",包括 Cache、虚拟内存、磁盘结构这些与性能密切相关的考点,帮助大家攻克 "存储速度与容量" 的难题!

相关推荐
say_fall4 小时前
C语言编程实战:每日刷题 - day2
c语言·开发语言·学习
潇冉沐晴9 小时前
div2 1052 个人补题笔记
笔记
立志成为大牛的小牛10 小时前
数据结构——四十一、分块查找(索引顺序查找)(王道408)
数据结构·学习·程序人生·考研·算法
蒙奇D索大10 小时前
【计算机网络】[特殊字符] 408高频考点 | 数据链路层组帧:从字符计数到违规编码,一文学透四大实现方法
网络·笔记·学习·计算机网络·考研
遇印记10 小时前
蓝桥java蜗牛
java·学习·蓝桥杯
格鸰爱童话11 小时前
next.js学习——react入门
学习·react.js·node.js
njsgcs11 小时前
tekla 使用笔记 切管 分割指定长度的管
笔记·tekla
B0URNE11 小时前
【Unity基础详解】Unity3D全程学习路线
学习·unity·游戏引擎