软件设计师考点详解:计算机系统知识(组成原理与存储体系)
软件设计师考点详解:计算机系统知识(组成原理与存储体系)
计算机系统知识是软件设计师考试的重要组成部分,约占上午题的12%。这部分内容涉及计算机硬件的工作原理,虽然偏向底层,但对于理解程序运行机制至关重要。本文将系统梳理这一章节的核心知识点。
一、计算机组成原理
冯·诺依曼体系结构
五大部件:
- 运算器:执行算术和逻辑运算
- 控制器:协调各部件工作,解释执行指令
- 存储器:存储程序和数据
- 输入设备:将外部信息输入计算机
- 输出设备:将处理结果输出
核心思想:
- 程序和数据以二进制形式存储在存储器中
- 指令按地址顺序执行(顺序执行)
- 采用存储程序控制方式
CPU结构与功能
CPU主要组成部分:
- 算术逻辑单元(ALU):执行运算操作
- 控制单元(CU):产生控制信号
- 寄存器组:临时存储数据和地址
- 通用寄存器:存放操作数
- 指令寄存器(IR):存放当前指令
- 程序计数器(PC):存放下一条指令地址
- 状态寄存器(PSW):存放运算状态
指令执行过程:
- 取指:从存储器取出指令到IR,PC自动加1
- 译码:分析指令操作码和地址码
- 执行:根据译码结果执行相应操作
- 回写:将结果写回寄存器或存储器
总线结构
总线分类:
- 数据总线(DB):双向,传输数据信息
- 地址总线(AB):单向,传输地址信息
- 控制总线(CB):双向,传输控制信号
总线性能指标:
- 总线宽度:数据总线的位数(如32位、64位)
- 总线频率:每秒传输次数(MHz)
- 总线带宽:总线宽度 × 总线频率 ÷ 8(MB/s)
常见总线标准:
- 内部总线:芯片内部连接(如AMBA)
- 系统总线:CPU与内存连接(如前端总线FSB)
- 扩展总线:连接外设(如PCI、USB、SATA)
二、存储体系结构
存储器层次结构
存储层次(从快到慢,从小到大):
1 | 寄存器 → Cache → 主存 → 磁盘 → 磁带 |
设计原理:
- 局部性原理:
- 时间局部性:最近访问的数据很可能再次访问
- 空间局部性:访问某地址后,其邻近地址很可能被访问
- Cache-主存层次:解决CPU与主存速度不匹配问题
- 主存-辅存层次:解决存储容量不足问题
Cache存储器
Cache工作原理:
- 利用局部性原理,将主存中频繁访问的数据复制到Cache
- CPU优先访问Cache,命中则直接使用,未命中则访问主存
映射方式:
直接映射:主存块i映射到Cache块(i mod Cache块数)
- 优点:硬件简单,查找快
- 缺点:冲突率高
全相联映射:主存块可映射到任意Cache块
- 优点:冲突率低
- 缺点:查找复杂,成本高
组相联映射:折中方案,Cache分组,组内全相联
- 常见:2路、4路、8路组相联
替换算法:
- FIFO(先进先出):替换最早进入的块
- LRU(最近最少使用):替换最久未使用的块
- LFU(最不经常使用):替换使用次数最少的块
写策略:
写直达(Write-through):同时写Cache和主存
- 优点:一致性好
- 缺点:写操作慢
写回(Write-back):只写Cache,替换时才写主存
- 优点:写操作快
- 缺点:需要脏位标记
虚拟存储器
基本概念:
- 将主存和辅存统一编址,形成虚拟地址空间
- 程序使用虚拟地址,硬件自动转换为物理地址
实现方式:
页式虚拟存储:
- 虚拟地址空间和物理地址空间都划分为固定大小的页
- 通过页表进行地址转换
- 可能产生内部碎片
段式虚拟存储:
- 按逻辑模块划分段,段长可变
- 通过段表进行地址转换
- 可能产生外部碎片
段页式虚拟存储:
- 先分段再分页,结合两者优点
- 需要段表和页表两级转换
地址转换过程:
- CPU产生虚拟地址
- MMU(内存管理单元)查询页表
- 如果页表项有效,得到物理页号
- 物理页号 + 页内偏移 = 物理地址
- 如果页表项无效(缺页),触发缺页中断
页面置换算法:
- OPT(最佳置换):理论上最优,但无法实现
- FIFO:实现简单,但可能产生Belady异常
- LRU:接近OPT性能,但硬件实现复杂
- Clock(时钟算法):LRU的近似实现
三、CISC与RISC架构对比
CISC(复杂指令集计算机)
特点:
- 指令系统复杂,指令条数多(上百条)
- 指令长度不固定
- 寻址方式多样(8-12种)
- 指令功能强大,单条指令可完成复杂操作
- 采用微程序控制
- 通用寄存器数量少(8-16个)
代表架构:Intel x86系列
优势:
- 程序代码密度高
- 对编译器要求较低
- 向后兼容性好
劣势:
- 指令执行时间差异大
- 硬件设计复杂
- 不利于流水线优化
RISC(精简指令集计算机)
特点:
- 指令系统精简,指令条数少(几十条)
- 指令长度固定
- 寻址方式简单(2-3种)
- 指令功能简单,大部分指令单周期执行
- 采用硬布线控制
- 通用寄存器数量多(32个以上)
代表架构:ARM、MIPS、PowerPC、RISC-V
优势:
- 指令执行效率高
- 硬件设计简单
- 有利于流水线和并行处理
- 功耗低,适合移动设备
劣势:
- 程序代码密度较低
- 对编译器优化要求高
关键对比总结
| 特性 | CISC | RISC |
|---|---|---|
| 指令数量 | 多(100+) | 少(30-50) |
| 指令长度 | 可变 | 固定 |
| 寻址方式 | 多样 | 简单 |
| 执行周期 | 多周期 | 单周期为主 |
| 控制方式 | 微程序 | 硬布线 |
| 寄存器数量 | 少 | 多 |
| 代码密度 | 高 | 低 |
| 编译器复杂度 | 低 | 高 |
四、I/O系统与中断
I/O控制方式
程序查询方式:
- CPU不断查询外设状态
- 实现简单,但CPU利用率低
- 适用于简单、低速设备
中断方式:
- 外设准备好后向CPU发中断请求
- CPU响应中断,执行中断服务程序
- 提高CPU利用率,但频繁中断影响性能
DMA方式:
- DMA控制器直接控制数据传输
- CPU只需初始化,传输过程不参与
- 适用于大量数据传输(如磁盘、网络)
通道方式:
- 专用处理器执行I/O指令
- CPU只需发出I/O启动命令
- 适用于大型计算机系统
中断处理过程
- 中断请求:外设向CPU发出中断信号
- 中断响应:CPU完成当前指令,保存现场
- 中断识别:确定中断源,获取中断服务程序入口
- 中断服务:执行相应的处理程序
- 中断返回:恢复现场,继续原程序执行
中断优先级:
- 硬件中断 > 软件中断
- 不可屏蔽中断 > 可屏蔽中断
- 高速设备中断 > 低速设备中断
五、常考题型与解题技巧
存储器计算题
典型问题:
- Cache命中率计算
- 虚拟地址到物理地址转换
- 存储器容量和地址线计算
解题技巧:
- 掌握地址划分方法(标志位、组索引、块内偏移)
- 熟悉页表结构和地址转换公式
- 注意字节编址和字编址的区别
CISC/RISC对比题
典型问题:
- 判断架构类型
- 分析指令特征
- 比较性能特点
解题技巧:
- 记住关键区别点(指令数量、长度、寻址方式等)
- 结合具体应用场景分析
总线带宽计算题
典型问题:
- 计算总线带宽
- 分析总线性能瓶颈
解题技巧:
- 带宽 = 总线宽度 × 频率 ÷ 8(单位:MB/s)
- 注意单位换算(bit vs Byte,MHz vs Hz)
六、学习建议
重点掌握内容
- 存储层次结构:理解Cache和虚拟存储的工作原理
- 地址转换:掌握虚拟地址到物理地址的转换过程
- CISC/RISC区别:能够准确区分两种架构的特点
- I/O控制方式:理解各种方式的适用场景
- 中断机制:掌握中断处理的基本流程
学习方法
- 画图辅助:存储器层次、地址划分等概念通过画图更容易理解
- 对比记忆:CISC/RISC、各种I/O方式等通过对比表格记忆
- 实际联系:结合现代计算机的实际架构来理解理论概念
- 真题练习:通过历年真题熟悉考试题型和难度
经验提醒:这部分内容相对抽象,建议多结合实际例子来理解。比如可以思考为什么手机处理器多采用ARM(RISC)架构,而PC多采用x86(CISC)架构。
下一篇将深入讲解操作系统知识,包括进程管理、内存管理、文件系统等核心内容。
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 API街溜子!






