# 计算机系统概述(考研复试终极整理版) --- ## 一、冯·诺依曼体系结构 ### 1. 核心思想:存储程序原理 - **二进制存储**:指令和数据以二进制形式统一存储在存储器中 - **顺序执行**:通过程序计数器(PC)自动寻址,默认顺序执行(支持跳转指令) - **程序可编程**:通过修改存储器中的指令实现不同功能(区别于早期固定电路计算机) ### 2. 五大部件详解 | 部件 | 核心功能 | 关键组成/代表 | |--------------|-----------------------------------|-----------------------------| | **运算器** | 执行算术运算(+ - × ÷)和逻辑运算(与或非) | ALU(算术逻辑单元)、ACC(累加器) | | **控制器** | 指令控制:取指令→译码→执行 | PC(程序计数器)、IR(指令寄存器)、CU(控制单元) | | **存储器** | 存储程序和数据(内存与外存协同) | RAM(易失性)、ROM(固件)、磁盘 | | **输入设备** | 将外部信息转换为二进制数据 | 键盘(字符编码)、传感器(模拟信号→数字信号) | | **输出设备** | 将处理结果转换为人类可感知形式 | 显示器(像素映射)、打印机(位图解析) | ### 3. 核心特点 - **以存储器为中心**(现代改进) - 早期瓶颈:以运算器为中心导致数据搬运频繁(如“冯·诺依曼瓶颈”) - 解决方案:采用总线结构(数据/地址/控制总线分离)提升并行性 - **指令与数据共享存储空间** - 阶段区分:取指阶段读取指令,执行阶段读取数据(通过指令周期控制) - **顺序执行机制** - PC自动+1实现顺序执行,JUMP指令修改PC值实现分支/循环 ### 4. 哈佛结构对比(高频考点) | 对比维度 | 冯·诺依曼结构 | 哈佛结构 | |----------------|-------------------------------|------------------------------| | **存储方式** | 指令和数据共享同一存储器 | 指令和数据独立存储(物理隔离) | | **总线数量** | 单总线(指令/数据分时复用) | 双总线(指令总线+数据总线) | | **执行速度** | 存在存储器访问冲突(带宽竞争) | 并行访问,吞吐量更高 | | **典型应用** | 通用计算机(PC、服务器) | 嵌入式系统(DSP、ARM单片机) | | **代表芯片** | Intel x86、AMD处理器 | STM32、TI DSP芯片 | --- ## 二、计算机系统层次结构 ### 1. 六层模型(从底层到顶层) ``` 微程序机器层(M0) → 传统机器层(M1) → 操作系统层(M2) ↑ ↑ ↑ 硬件实现 机器指令执行 资源管理与虚拟化 ↓ ↓ ↓ 汇编语言层(M3) → 高级语言层(M4) → 应用软件层(M5) ``` ### 2. 关键层次解析 | 层级 | 核心功能 | 典型技术/工具 | |---------------------|---------------------------------|-----------------------------| | **微程序层(M0)** | 硬件直接执行微指令(控制信号序列) | 微程序控制器、控制存储器 | | **传统机器层(M1)**| 执行二进制机器指令(0101代码) | x86指令集、RISC-V指令集 | | **操作系统层(M2)**| 管理硬件资源,提供系统调用接口 | 进程调度、虚拟内存、文件系统 | | **汇编层(M3)** | 符号化指令(MOV, ADD)→机器码 | NASM汇编器、GDB调试器 | | **高级语言层(M4)**| 跨平台编程(C/Python/Java) | GCC编译器、JVM虚拟机 | | **应用层(M5)** | 面向用户的功能实现(办公/游戏软件) | Chrome浏览器、Photoshop | ### 3. 层次转换工具对比 | 工具类型 | 输入→输出 | 特点 | 典型代表 | |------------|-------------------------|---------------------------|------------------| | **汇编器** | 汇编代码 → 机器码 | 1:1翻译(符号→二进制) | MASM、GAS | | **编译器** | 高级语言 → 汇编/机器码 | 优化代码(如循环展开) | GCC、Clang | | **解释器** | 逐行翻译并执行(无中间码)| 跨平台但效率低 | Python解释器 | | **虚拟机** | 字节码 → 机器码 | 平台无关性(JVM、.NET CLR) | Java虚拟机 | --- ## 三、计算机性能指标 ### 1. 核心指标详解 | 指标 | 公式/定义 | 应用场景与考点 | |---------------|-----------------------------------|----------------------------------------| | **主频** | 时钟频率 = 1/时钟周期(单位:Hz) | 3GHz主频 → 时钟周期≈0.33ns | | **CPI** | 总时钟周期数 / 总指令数 | RISC架构CPI=1,CISC架构CPI>1(如x86) | | **MIPS** | 主频 / (CPI × 10⁶) | 例:3GHz CPU,CPI=1.2 → MIPS=2500 | | **MFLOPS** | 浮点操作次数 / (执行时间×10⁶) | 衡量科学计算性能(如超算排名) | | **存储容量** | 主存:2^地址线数 × 存储字长(bit) | 32位地址线+32位字长 → 4GB容量 | | **存储带宽** | 数据宽度 × 传输频率(单位:GB/s) | DDR4-3200(64位)带宽=25.6GB/s | ### 2. 关键计算题示例 **题目1**:某CPU主频4GHz,执行程序包含2×10⁶条指令,平均CPI=1.5,求执行时间。 **解**: 总时钟周期数 = 指令数 × CPI = 2×10⁶ × 1.5 = 3×10⁶ 执行时间 = 总时钟周期数 / 主频 = 3×10⁶ / 4×10⁹ = 0.75ms **题目2**:某32位计算机地址总线32根,数据总线64位,求最大内存容量。 **解**: 地址空间 = 2³² = 4GB 数据总线宽度 = 64位 = 8字节 最大容量 = 4GB × 8字节 = 32GB(注意:实际以地址线计算为准,此处考察概念理解) --- ## 四、高频考点与易错点 ### 1. 必背对比表 | 对比项 | 冯·诺依曼结构 | 哈佛结构 | |--------------------|---------------------------------------|-----------------------------------| | **指令/数据存储** | 共享存储空间 | 独立存储空间 | | **总线冲突** | 存在(分时复用) | 无(双总线并行) | | **适用场景** | 通用计算(灵活性强) | 实时处理(高性能嵌入式) | ### 2. 易混淆概念 - **机器字长 vs 存储字长** - 机器字长:CPU一次处理的二进制位数(决定ALU宽度) - 存储字长:存储器一次读写的数据位数(由MDR位数决定) - **主存容量计算陷阱** - 32位地址总线 → 最大寻址4GB(2³²地址 × 1字节/地址) - 若存储字长32位(4字节),实际容量=4GB × 4 = 16GB(需题目明确说明存储字长) - **MIPS与MFLOPS误区** - MIPS反映整数性能,MFLOPS反映浮点性能(i7高MIPS,GPU高MFLOPS) ### 3. 经典面试题 **Q1**:为什么现代计算机采用冯·诺依曼结构而非哈佛结构? **答**: - 通用性需求:冯·诺依曼结构灵活支持动态程序加载(如操作系统进程切换) - 成本因素:哈佛结构需要双倍存储空间和总线,成本高 - 折中方案:现代CPU内部使用改进哈佛结构(L1缓存分指令/数据),外部保持冯氏结构 **Q2**:解释“64位CPU”对计算机性能的影响。 **答**: - 更大寻址空间:支持超过4GB内存(理论16EB) - 更高数据精度:64位整数/浮点数运算 - 更多寄存器:x86-64架构新增8个通用寄存器,减少访存次数 --- **复习建议**: 1. 熟记冯·诺依曼与哈佛结构的对比表 2. 掌握MIPS/CPI计算公式(至少完成3道真题练习) 3. 结合层次结构理解“程序如何在计算机中运行”(从高级语言→机器码的全过程) 4. 注意单位换算陷阱(如1TB硬盘=10¹²B,但Windows显示为931GB)