软考-系统架构设计师 计算机系统基础知识详细讲解
个人博客:blogs.wurp.top
一、计算机系统组成与多级层次结构
1. 冯·诺依曼体系结构 (核心考点)
这是所有现代计算机的理论基础。核心思想是 “存储程序” 。
- 五大部件:运算器、控制器、存储器、输入设备、输出设备。
- 工作流程:指令驱动。CPU从存储器中取指、译码、执行,周而复始。
- 关键特征:以运算器为中心;指令和数据以二进制形式并存于存储器中,按地址寻址。
- 软考深化:
- 哈佛结构:一种改进结构,将指令存储和数据存储在物理上分开,使用独立的总线。这提高了并行性,常用于CPU内部缓存设计(L1 Cache分I-Cache和D-Cache)和DSP、嵌入式系统中。
- 现代计算机的实际结构:以存储器为中心,通过系统总线(数据、地址、控制) 连接CPU、内存和I/O设备。
2. 计算机的多级层次结构
计算机系统通过分层来管理复杂性,下层是上层的实现基础,上层是下层的抽象。
- 典型层次 (从下到上):
- 微程序/硬逻辑层 -> 机器语言层 -> 操作系统层 -> 汇编语言层 -> 高级语言层 -> 应用层
- 软考视角:架构师工作在高级语言层和应用层,但必须理解下层(尤其是操作系统和机器语言层)的机制和性能特征,才能做出最优设计。
二、硬件系统核心组件 (重点中的重点)
1. 中央处理器 (CPU)
- 核心组件:
- 运算器 (ALU):执行算数和逻辑运算。
- 控制器 (CU):取指、译码、发出控制信号。
- 寄存器组:CPU内部的高速存储单元。
- 关键寄存器:PC (程序计数器)、IR (指令寄存器)、ACC (累加器)、MAR (内存地址寄存器)、MDR (内存数据寄存器)、PSW (程序状态字)。
- 指令系统:
- CISC (复杂指令集) vs RISC (精简指令集):必考对比点。
特性 CISC (e.g., x86) RISC (e.g., ARM, MIPS) 指令数目 多,复杂 少,精简 指令长度 可变长 定长 寻址方式 复杂多样 简单 实现方式 微程序控制 硬布线控制为主 设计哲学 硬件完成复杂功能 编译器优化生成高效代码 寄存器 较少 大量通用寄存器 代表 Intel, AMD CPUs Apple M系列, 手机芯片 - 指令执行过程:取指 -> 译码 -> 取操作数 -> 执行 -> 写回结果。流水线技术 是为了让这些阶段并行,提高吞吐率。
- CISC (复杂指令集) vs RISC (精简指令集):必考对比点。
- 流水线 (Pipeline):
- 概念:将指令处理过程分解为多个阶段,重叠执行。
- 主要风险:
- 资源冲突:解决方法:增加资源、流水线调度。
- 数据相关:写后读(RAW) 是最常见的数据相关。解决方法:转发/旁路 (Forwarding/Bypassing)、流水线暂停(冒泡)。
- 控制相关:由转移指令(分支、跳转) 引起。解决方法:分支预测(静态预测、动态预测)、延迟槽。
- 性能计算:
- 执行n条指令所需时间:
建立时间 + (指令数 - 1) * 时钟周期
- 吞吐率:
指令条数 / 执行时间
- 执行n条指令所需时间:
- 多处理器系统 (Flynn分类法):
- SISD:单指令流单数据流(传统单核CPU)。
- SIMD:单指令流多数据流(向量处理器、GPU核心思想)。
- MISD:多指令流单数据流(不常见)。
- MIMD:多指令流多数据流(现代多核CPU、分布式系统)。
2. 存储系统
核心矛盾:速度、容量、价格无法同时满足。解决方案:多级存储体系。
- 层次结构:CPU寄存器 -> Cache (SRAM) -> 主存 (DRAM) -> 外存 (磁盘/SSD)
- 速度从快到慢,容量从小到大,价格从高到低。
- 局部性原理:是缓存技术的理论基础。
- 时间局部性:刚被访问的内容很可能再次被访问。(循环、栈)
- 空间局部性:刚被访问的内容的相邻内容很可能被访问。(顺序执行、数组遍历)
- 高速缓存 (Cache):
- 工作过程:CPU先访问Cache,若找到数据则为“命中”,否则为“缺失”,需从主存调入。
- 命中率:
命中次数 / 总访问次数
。是衡量Cache性能的关键指标。 - 映射机制:必考。
- 直接相联:主存块只能放入Cache的唯一位置。冲突率高,速度快。
- 全相联:主存块可放入Cache的任意位置。冲突率低,查找慢(成本高)。
- 组相联:折中方案。将Cache分组,主存块映射到特定组,但可放入该组内任意行。是当前最主流的方式(如n路组相联)。
- 写策略:
- 写直达 (Write-through):同时写Cache和主存。简单,一致性好,但速度慢。
- 写回 (Write-back):只写Cache,仅当该块被替换时才写回主存。速度快,但一致性控制复杂。
- 虚拟存储器:
- 目的:给用户提供比实际物理内存大得多的地址空间。
- 实现方式:分页系统。由MMU (内存管理单元) 负责虚拟地址到物理地址的转换。
- 页表:存储映射关系。快表 (TLB) 是页表的Cache,用于加速地址转换。
- 缺页中断:当访问的页面不在物理内存中时,由操作系统将其从外存(交换区)调入。
3. 输入/输出技术 (I/O)
- I/O控制方式 (CPU参与度从高到低):
- 程序查询方式:CPU轮询I/O设备状态,效率极低。
- 中断方式:I/O完成后主动通知CPU,CPU中断当前程序进行处理。提高了CPU利用率。
- DMA方式:必考。由DMA控制器在主存和I/O设备之间直接建立数据通路,无需CPU干预。仅在传输开始和结束时需要CPU参与。极大解放了CPU。
- 通道方式:功能更强的DMA,可执行通道程序,管理多个I/O设备。
- 总线系统:
- 数据总线:宽度决定了一次能传输的数据量(位宽)。
- 地址总线:宽度决定了CPU的寻址能力(如32位总线最大寻址4GB)。
- 控制总线:传送控制信号(读、写、中断等)。
三、操作系统核心机制 (架构师必须理解)
1. 进程与线程
- 进程:资源分配的基本单位。拥有独立的地址空间、文件描述符等。
- 线程:CPU调度的基本单位。共享进程的资源,但有自己的栈和寄存器。
- 软考重点:
- 对比:多线程共享数据简单,但同步复杂,一个线程崩溃可能导致整个进程崩溃;多进程更安全稳定,但通信(IPC)开销大。
- 状态转换:运行、就绪、阻塞(等待)。要能画出状态转换图。
- 进程调度算法:先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)、优先级调度、多级反馈队列。要理解各自的特点和适用场景。
2. 存储管理
- 分区管理:固定分区、可变分区(会产生外部碎片)。
- 分页管理:解决外部碎片问题。可能产生内部碎片(最后一页未用满)。
- 分段管理:按逻辑单元(代码段、数据段、堆栈段)划分,利于共享和保护。可能产生外部碎片。
- 段页式管理:分段和分页的结合,综合两者优点。是现代操作系统的通用方案。
3. 设备与文件管理
- SPOOLing技术:假脱机技术,将独占设备改造为共享设备(如打印池)。
- 磁盘调度算法:先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN/电梯算法)、循环扫描算法(C-SCAN)。目的是减少磁头移动距离,提高I/O效率。
四、系统性能评估与可靠性 (高频考点)
1. 性能指标
- 时钟频率 (主频):基本指标,但并非唯一。
- CPI:执行一条指令所需的平均时钟周期数。
CPU执行时间 = 指令数 * CPI * 时钟周期
- MIPS:每秒百万条指令。MIPS=指令数/(执行时间∗106)=主频/(CPI∗106)MIPS = 指令数 / (执行时间 * 10^6) = 主频 / (CPI * 10^6)MIPS=指令数/(执行时间∗106)=主频/(CPI∗106)
- MFLOPS:每秒百万次浮点操作。
- 吞吐率与响应时间:吞吐率是单位时间内完成的任务数;响应时间是单个任务从提交到完成的时间。通常两者相互影响。
2. 可靠性
- 平均无故障时间 (MTBF):系统平均能正常运行多长时间。
- 平均修复时间 (MTTR):出故障后平均需要多长时间修复。
- 可用性:A=MTBF/(MTBF+MTTR)A = MTBF / (MTBF + MTTR)A=MTBF/(MTBF+MTTR)
- 系统可靠性模型:
- 串联系统:可靠性 R=R1∗R2∗...∗RnR = R1 * R2 * ... * RnR=R1∗R2∗...∗Rn。一个失效,全部失效。
- 并联系统:可靠性 R=1−(1−R1)(1−R2)...(1−Rn)R = 1 - (1-R1)(1-R2)...(1-Rn)R=1−(1−R1)(1−R2)...(1−Rn)。所有部件都失效,系统才失效。
- N模冗余系统:由N个(通常为奇数)相同的子系统进行多数表决。
3. 阿姆达尔定律 (Amdahl’s Law)
必考公式。用于计算对系统某部分性能进行优化后,整体系统性能的提升倍数。
S=1/[(1−F)+F/k]S = 1 / [(1 - F) + F / k]S=1/[(1−F)+F/k]
- SSS:系统加速比
- FFF:可改进部分所占比例(0 < F < 1)
- kkk:可改进部分的性能提升倍数
应用:此定律揭示了优化系统瓶颈的重要性。即使对非瓶颈部分做巨大优化(k很大),整体效果(S)也微乎其微。
总结与应试技巧
- 抓住核心:Cache、指令系统(CISC/RISC)、流水线、存储层次、I/O方式(DMA)、可靠性计算、阿姆达尔定律是绝对的重中之重,必须彻底理解并能进行计算和分析。
- 理解对比:软考偏爱考查对比,如CISC vs RISC,各种映射算法、调度算法的优缺点对比。
- 联系实际:将理论知识与现代计算机架构(如多核、GPU、SSD)联系起来思考,这在案例分析题中至关重要。
- 刷题巩固:务必找到历年真题中的相关题目进行练习,深刻体会出题思路和考查方式。