大叔自由人

软考 / 架构师 / 第1章

计算机组成与体系结构

章节概述

本章从计算机硬件组成、指令系统、存储体系和流水线技术四个维度,系统阐述计算机底层原理。系统架构设计师必须理解硬件与操作系统的交互机制,才能规避安全与性能隐患。核心聚焦于冯·诺依曼体系结构、CISC/RISC 对比、Cache 映射机制与流水线性能计算。

知识结构框架

  • 1.1 计算机系统组成
    • 1.1.1 计算机硬件的组成(控制器、运算器、主存、辅存、输入/输出设备)
    • 1.1.2 计算机系统结构的分类(存储程序概念、Flynn 分类法)
    • 1.1.3 复杂指令集(CISC)与精简指令集(RISC)
    • 1.1.4 总线(内部/外部总线,地址/数据/控制总线)
  • 1.2 存储器系统
    • 1.2.1 主存储器(RAM/ROM、编址方法)
    • 1.2.2 辅助存储器(磁带、硬盘结构)
    • 1.2.3 Cache 存储器(映射机制、替换算法、写操作)
  • 1.3 流水线
    • 1.3.1 流水线周期
    • 1.3.2 流水线执行时间(理论公式与实际公式)
    • 1.3.3 流水线吞吐率
    • 1.3.4 流水线加速比

核心概念定义

冯·诺依曼体系结构

1946 年由冯·诺依曼提出,核心为"存储程序"概念:计算机由运算器、存储器、控制器、输入设备、输出设备五大部件组成;内部采用二进制表示指令和数据;程序和数据预先存入存储器后启动执行。早期以运算器为中心,现代转向以存储器为中心。

Flynn 分类法

1966 年 Michael J. Flynn 按指令流和数据流的多倍性对计算机系统分类:

  • SISD(单指令流单数据流):传统单处理器,顺序执行
  • SIMD(单指令流多数据流):并行处理机/矩阵处理机
  • MISD(多指令流单数据流):实际很少见,流水线计算机有文献归为此类
  • MIMD(多指令流多数据流):多核处理器、多处理机系统

CISC 与 RISC

特性CISCRISC
指令数量100~250 条,数量众多少,仅保留高频指令
寻址方式5~20 种寄存器/立即数/相对寻址
指令长度变长固定长度
控制方式微程序控制为主硬布线逻辑为主
内存访问指令可直接处理主存数据仅 LOAD/STORE 访存
寄存器数量较少32 个以上
流水线难以高效利用单周期执行,流水线友好

局部性原理

程序执行呈现局部性规律,是 Cache 和多级存储体系的理论基础:

  • 时间局部性:某指令一旦执行,不久后可能再次执行(如循环)
  • 空间局部性:访问某存储单元后,其附近单元也将被访问(如顺序执行)

Cache 三种映射方式

映射方式映射规则地址构成冲突率灵活性
直接映射主存每页只能复制到固定 Cache 页区号+页号+页内地址
全相联映射主存每页可映像到 Cache 任一页主存页标记+页内地址高(速度慢)
组相联映射组间直接映射,组内全相联区号+组号+页号+页内地址

关键公式与模型

Cache 平均周期(命中率公式)
t₃ = t₁ × h + t₂ × (1 - h)
其中 t₁ = Cache 周期时间,t₂ = 主存周期时间,h = 访问命中率,(1-h) = 失效率
磁盘访问时间
磁盘访问时间 = 寻道时间 + 旋转延迟时间
定位磁道 + 平均旋转半圈到目标扇区
流水线执行时间(理论公式)
理论流水线执行时间 = 第1条指令的完整时间 + (n - 1) × 流水线周期
= (t₁ + t₂ + ... + tₖ) + (n - 1) × max(t₁, t₂, ..., tₖ)
流水线周期 = 最长阶段耗时;考试 80%+ 概率用理论公式
流水线执行时间(实际公式)
实际流水线执行时间 = k × 流水线周期 + (n - 1) × 流水线周期
= (k + n - 1) × 流水线周期
将每阶段统一为流水线周期;仅当理论公式结果无对应选项时使用
流水线吞吐率(TP)
TP = 指令条数 / 流水线总执行时间
单位时间内完成的任务数量
流水线加速比(Speedup)
S = T₀ / Tₖ
T₀ = 不使用流水线的顺序执行时间,Tₖ = 使用流水线的执行时间