一、计算机体系结构与存储系统
1. 考点分析
- 核心内容:本节重点包含三大考点:计算机体系结构分类、流水线技术、存储系统
- 考察趋势:流水线技术曾在2015年前高频考察(计算题形式),2016年后较少出现
2. 计算机体系结构分类
- 宏观分类:
- 单处理系统:单一处理机系统
- 并行处理系统:多处理机协同工作
- 分布式系统:地理分散的计算机系统
- 微观分类:
- Flynn分类法:按指令流和数据流维度分类
- 冯泽云分类法:基于并行处理特征分类
- Handler分类法:按硬件并行度分级
- 指令集架构:
- CISC:复杂指令集计算机(教材P14-16)
- RISC:精简指令集计算机
- 学习建议:该部分内容以了解为主,重点关注分类标准而非细节
3. 流水线技术
1)流水线周期
- 本质:类比工厂流水线,将任务分解为子任务并行处理
- 示例说明:
- 指令执行分为三阶段:取指令(1ns)、分析指令(2ns)、执行指令(3ns)
- 关键概念:流水线周期取最长子任务时间(本例为3ns)
- 效率对比:
-
串行执行100条指令耗时: 100×(1+2+3)=600ns
-
流水线执行显著提升效率
-
2)流水线执行时间公式
-
通用公式: T=k+(n−1)×tmax
- k:单条指令总执行时间(示例中1+2+3=6ns)
- n:指令总数
- tmax:流水线周期(示例3ns)
-
计算实例:
-
100条指令耗时: 6+(100−1)×3=303ns
-
较串行执行效率提升约50%
-
3)吞吐率
- 定义:单位时间内完成的指令数
- 两种计算方式:
-
实际吞吐率: p=n/Tn
(示例:100/303≈0.33条/ns)
-
理论最大吞吐率: p=1/tmax
(示例:1/3≈0.33条/ns)
-
- 考试注意:
- 优先采用教材公式(最大吞吐率)
- 当选项不匹配时考虑实际吞吐率计算
- 数值关系:当n较大时,两种计算结果趋近
4. 存储系统
1)存储器的分类
- 位置分类:
- 内存:直接与CPU交换数据
- 外存:需通过I/O系统与CPU交换数据
- 材料分类:
- 磁存储器:如硬盘、磁带
- 半导体存储器:如内存条、SSD
- 光存储器:如CD、DVD
- 工作方式分类:
- 读写存储器(RAM):可随机读写
- 只读存储器(ROM):仅能读取
- 访问方式分类:
- 按地址访问:通过地址定位数据
- 按内容访问:如相联存储器
- 寻址方式分类:
- 随机存储器:可随机访问任一单元
- 顺序存储器:必须按顺序访问
- 直接存储器:如磁盘,通过磁道定位
2)高速缓存
- 基本概念:
- 位于CPU与主存之间的小容量高速存储器
- 速度比主存快5-10倍,容量远小于主存
- 核心作用:
- 解决CPU与主存速度不匹配问题
- 基于程序局部性原理(时间局部性和空间局部性)
- 工作流程:
- CPU访问数据时先在Cache中查找(命中检测)
- 未命中时按替换算法从主存调入数据块
- 替换算法:
- 随机替换(RAND):简单但效率低
- 先进先出(FIFO):可能淘汰常用数据
- 近期最少使用(LRU):效果较好但实现复杂
- 优化替换(OPT):理论最优但无法实际实现
- 直接映像
-
映射规则:
- 主存分区(区大小=Cache总容量)
- 主存块号与Cache块号严格对应
- 公式: Cache块号=主存块号mod Cache块数
-
地址结构:
- 主存地址=区号+区内块号+块内地址
- Cache地址=块号+块内地址
-
特点:
- 优点:地址转换简单快速
- 缺点:冲突率高,Cache利用率低
-
典型场景:
- 主存第0区第3块只能放入Cache第3块
- 不同区的同名块会竞争同一Cache位置
-
- 全相联映像
- 映射规则:
- 主存不分区,仅分块(块大小=Cache块大小)
- 主存任意块可放入Cache任意位置
- 地址结构:
- 主存地址=块号+块内地址
- 需要全相联目录表记录映射关系
- 特点:
- 优点:冲突率最低,Cache利用率高
- 缺点:地址转换复杂,需要并行比较
- 典型场景:
- 主存第2016块可放入Cache任意空闲块
- 需要额外存储空间记录块对应关系
- 映射规则:
- 组相联映像
-
映射规则:
- 主存先分区,区内分组(组大小=Cache组大小)
- 组间直接映射,组内全相联映射
- 公式: 组号=块号mod 组数
-
地址结构:
- 主存地址=区号+组号+块号+块内地址
- Cache地址=组号+组内块号+块内地址
-
特点:
- 折中方案:组间冲突率低于直接映像
- 实现复杂度低于全相联映像
-
典型场景:
- 2路组相联:每组包含2个Cache块
- 主存第63区第15组块可放入Cache第15组任意位置
-
3)Cache的性能分析
-
等效访问时间公式: ta=Hctc+(1−Hc)tm,其中Hc为命中率,tc为Cache存取时间,tm为主存访问时间
-
命中与未命中:
- 命中:CPU访问数据时在Cache中找到所需数据
- 未命中:CPU访问数据时未在Cache中找到,需从主存调取
-
性能分析原理:
- 命中时直接使用Cache存取时间tc
- 未命中时需要额外加上主存访问时间tm
- 通过命中率对两种情况进行加权平均
4)相关存储器的介绍
- 虚拟存储器:
- 本质特征: 是一种逻辑存储器而非物理实体
- 实现方式: 通过软件和硬件结合模拟出的存储空间
- 相联存储器:
- 访问方式: 按内容访问(Content-addressable memory)
- 与传统区别: 不同于按地址访问的传统存储器
二、知识小结
|-----------------|----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|------|
| 知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
| 计算机体系结构分类 | 教材第14-16页,简单了解分类方式(如指令集体系结构CISC/RISC) | 非重点考点,仅需基础认知 | ⭐ |
| 流水线技术 | 类比工厂流水线,将指令执行分为取指、分析、执行子任务并行处理 | 计算题高频考点: - 流水线周期(最慢子任务时间) - 总时间公式:(1条指令时间) + (n-1)*流水线周期 - 吞吐率(实际vs教材公式差异) | ⭐⭐⭐ |
| 存储系统(高速缓存Cache) | - 作用:调和CPU与主存速度差异 - 局部性原理:近期访问数据可能再次访问 - 地址映射方式: - 直接映像(块号固定,冲突率高) - 全相连映像(任意存放,灵活性高但转换慢) - 组相连映像(折中方案,组固定块任意) | 核心考点: - 三种映射方式对比(冲突率/灵活性) - 命中率计算:等效访问时间 = hc*tc + (1-hc)*tm | ⭐⭐⭐⭐ |
| 虚拟存储器与相连存储器 | - 虚拟存储器:逻辑存储器(非物理实体) - 相连存储器:按内容访问(非地址) | 需区分物理/逻辑存储特性 | ⭐⭐ |
三、编址的相关计算
1. 内存编制
1)基本概念
- 存储单位:计算机以二进制存储数据,1位(bit)存储1个0或1,8位=1字节(Byte)
- 内存结构:存储器由芯片组成,每个芯片包含若干存储单元,每个单元存储1位数据
- 编址方式:内存按字节编址,每个字节分配一个唯一地址(不同于按位编址)
2)地址位数计算
- 计算方法:地址位数=log2(内存字节数)。例如:
- 8字节内存:8=2^3→ 需要3位地址
- 4KB内存:4096=2^{12}→ 需要12位地址
- 常见误区:地址位数≠数据总位数(如8字节≠64位地址)
- 类比说明:类似十进制房间编号,4096个房间需要4位十进制编号
3)例题:内存编制计算
- 题目解析
- 题目背景:主存1MB,Cache 16KB,块大小512B,求主存地址位数
- 解题步骤:
-
区号计算:主存分区数=主存大小/Cache大小= 1MB/16KB=64=261MB/16KB=64=2^61MB/16KB=64=26
→ 区号占6位
-
区内块号:每区块数=Cache大小/块大小= 16KB/512B=32=2516KB/512B=32=2^516KB/512B=32=25
→ 块号占5位
-
块内地址:块大小= 512B=29512B=2^9512B=29
→ 块内地址占9位
-
- 最终答案:总地址位数=6(区号)+5(块号)+9(块内)=20位
4)组相联映像
- 结构特点:
- 组间采用直接映像(固定映射)
- 组内采用全相联映像(自由映射)
- 地址组成:
- 主存地址=区号+组号+主存块号+块内地址
- Cache地址=组号+组内块号+块内地址
- 优势:平衡了直接映像的简单性和全相联映像的灵活性
- 实例说明:主存第0区的0组只能映射到Cache的0组,但组内块可自由存放
- 计算要点:区号、组号、块号的位数都需通过容量比例计算得出
2. 应用案例
1)例题:内存容量计算
-
地址编号与容量计算
- 16进制标识:地址编号后的"h"表示16进制数,如80000H表示80000_{16}
- 字节编址特性:按字节编址时,每个地址编号对应1个字节(8bit)的存储空间。
- 容量计算公式:内存容量=末地址-首地址+1。类比学号从22到56的学生人数计算: 56−22+1=35人。
-
解题步骤详解
-
地址差值计算
- 计算过程:
-
将BFFFFH转换为数字:B=11,F=15
-
列竖式计算: BFFFF16H−8000016H=3FFFF16H
-
加1得总字节数: 3FFFF16H+1H=4000016H
-
- 计算过程:
-
进制转换
-
转换方法:
-
4000016=4×16^4=2^2×2^16=2^18字节
-
转换为KB: 2^18÷2^10=2^8=256KB
-
-
单位换算:1KB=2^10B=1024字节
-
-
-
存储器芯片需求计算
- 芯片规格:16K×4bit表示每个芯片有16K个存储单元,每个单元4bit
- 计算步骤:
- 总容量:256KB=256×8Kbit=2048Kbit
- 单芯片容量:16K×4bit=64Kbit
- 芯片数量:2048÷64=32片
-
关键注意事项
- 单位统一:计算时必须统一单位,特别注意bit与Byte的换算(1Byte=8bit)
- 进制转换技巧:将16进制数转换为2的幂次形式便于计算,如16=2^4
- 地址计数规则:末地址-首地址后必须+1,这与离散数学中的区间计数原理一致
2)例题:主存与Cache地址转换
- 真题解析(2012年第1题)
- 题目解析
- 转换机制: 主存地址与Cache地址之间的转换工作完全由硬件自动完成
- 特点: 该过程不需要程序员或用户的参与,属于计算机系统的底层硬件功能
- 正确答案: A选项(硬件)
- 题目解析
3)例题:内存单元计算
- 真题解析(2012年第2题)
- 题目解析
-
计算方法: 终止地址0000BFFFH减去起始地址0000A000H再加1
-
简化计算: 将1加到终止地址变为0000C000H再相减
-
进制转换:
-
C−A=2(16进制)
-
转换为十进制:2×16^3=2^13
-
单位换算:2^13=8×2^10=8K
-
-
存储单位:
-
1KB=2^10B=1024B
-
1MB=2^10KB
-
1GB=2^10MB
-
-
正确答案: D选项(8K)
-
- 题目解析
4)例题:相联存储器访问方式
- 真题解析(2012年第3题)
- 题目解析
- 访问方式: 相联存储器按照内容访问(教材25页原话)
- 特点: 区别于传统存储器按地址访问的方式
- 正确答案: C选项(内容)
- 题目解析
5)例题:指令执行过程
- 真题解析(2012年第56题)
- 题目解析
- 串行执行:
- 单条指令时间:3Δt+2Δt+4Δt=9Δt
- 十条指令时间:9Δt×10=90Δt
- 流水线执行:
- 公式:(最长段执行时间)×(指令数−1)+(各段执行时间之和)
- 计算:(3+2+4)Δt+(10−1)×4Δt=9Δt+36Δt=45Δt
- 正确答案:
- 串行:C选项(90)
- 流水线:无正确选项(应为45)
- 串行执行:
- 题目解析
6)例题:虚拟存储器组成
- 真题解析(2013年第1题)
- 题目解析
- 组成原理: 虚拟存储器由主存和辅存两级存储器组成
- 工作方式: 主存和辅存密切配合,为用户提供比实际主存更大的存储空间
- 错误选项分析:
- B选项(网盘)和D选项(硬盘)不是标准术语
- C选项(Cache)属于高速缓存,不属于虚拟存储系统
- 正确答案: A选项(主存-辅存)
- 题目解析
7)例题:流水线计算
- 流水线执行计算
- 题目解析
- 串行执行公式:(取指时间+分析时间+执行时间)×指令数
- 流水线执行公式:(各阶段时间之和)+(指令数−1)×最长阶段时间
- 实例计算:
- 串行:(4+2+3)×600=5400Δt
- 流水线:(4+2+3)+(600−1)×4=2405Δt
- 题目解析
8)例题:存储计算
- 存储芯片需求计算
- 题目解析
-
地址空间计算:
- 终止地址4FFFFFH减去起始地址400000H加1
- 结果为100000H=2^20个存储单元
-
容量换算:
-
2^20B=1MB
-
256KB=2^8×2^{10}B=2^{18}B
-
-
芯片数量:
- 2^20B÷2^18B=4片
-
单位注意:
-
1B=8bit
-
计算时需统一单位
-
-
- 题目解析
9)例题:CPU访问速度最快的
- 题型
- 题目解析
- 知识点: CPU访问速度最快的是通用寄存器。
- 解析: 寄存器位于CPU内部,因此CPU对其访问速度最快。相比之下,Cache虽然位于CPU和主存之间,但并非CPU内部,所以访问速度不如寄存器快。
- 答案: C. 通用寄存器
- 题目解析
10)例题:Cache地址映像方式
- 题型
- 题目解析
- 知识点: Cache的地址映像方式中,发生块冲突次数最小的是全相联映像。
- 解析: 全相联映像方式下,主存中的任意一块都可以映射到Cache中的任意一块,因此发生块冲突的次数最小。直接映像方式下,主存的块只能放到指定的Cache块中,容易发生冲突。组相联映像是介于两者之间的方式。
- 答案: A. 全相联映像
- 题目解析
11)例题:VLIW简称
- 题型
- 题目解析
- 知识点: VLIW是超长指令字的简称。
- 解析: VLIW(Very Long Instruction Word)即超长指令字,是一种计算机体系结构中的指令格式。
- 答案: D. 超长指令字
- 题目解析
12)例题:主存与Cache地址映射方式
- 题型
- 题目解析
- 知识点: 主存与Cache的地址映射方式中,全相联方式可以实现主存任意一块装入Cache中任意位置。
- 解析: 全相联映射方式下,主存的任意一块都可以装入Cache中的任意位置,没有固定的对应关系,只有装满才需要替换。
- 答案: A. 全相联
- 题目解析
13)例题:存储容量计算
- 题型
- 题目解析
- 知识点: 存储容量的计算。
- 解析: 需要根据给定的地址范围,计算出存储容量。具体计算方法是将地址范围转换为十进制数,再根据单位换算成KB。
- 答案: 需要根据具体地址范围计算得出。
- 题目解析
14)例题:Cache作用
- 题型
- 题目解析
- 知识点: Cache的作用及不正确叙述的识别。
- 解析: Cache位于CPU和主存之间,用于缓解CPU和主存速度不匹配的问题。Cache的内容是主存部分内容的拷贝,命中率并不随其容量增大线性提高。设置Cache并不能扩大主存的容量。
- 答案: A. Cache的设置扩大了主存的容量(不正确)
- 题目解析
15)例题:流水线吞吐率定义
- 题型
- 题目解析
- 知识点: 流水线吞吐率的定义。
- 解析: 流水线的吞吐率是指单位时间流水线处理的任务数。如果各段流水的操作时间不同,则吞吐率是最长子过程所用时间的导数,即取决于最慢的那个子过程。
- 答案: 最长流水段操作时间的导数。
- 题目解析
16)例题:外存储器
- 题型
- 题目解析
- 题目内容: 在计算机的存储系统中,哪一个属于外存储器?
- 选项分析:
- a. 硬盘:正确,硬盘属于外存储器。
- b. 寄存器:错误,寄存器位于CPU内部,不属于外存储器。
- c. 高速缓存:错误,高速缓存位于主存和CPU之间,不属于外存储器,而是主存的一部分扩展。
- d. (未提及,但根据讲解应为其他非外存选项):错误。
- 答案: a. 硬盘
- 考点: 外存储器的识别。
- 易错点: 寄存器与高速缓存的位置和功能易混淆,需明确它们不属于外存储器。
- 题目解析
17)例题:Cache设置目的
- 题型
- 题目解析
- 题目内容: 在CPU和主存之间设置高速缓存的目的是什么?
- 答案: 为了解决主存和CPU速度不匹配的问题。
- 考点: 高速缓存(Cache)的设置目的。
- 解析:
- 主存(内存)的速度虽然较快,但仍然无法与CPU的速度完全匹配。
- 高速缓存(Cache)位于主存和CPU之间,作为主存的一部分高速扩展,用于存储CPU近期可能访问的数据,从而加快CPU的访问速度,解决主存与CPU之间的速度不匹配问题。
- 记忆点: Cache的设置是为了缓解主存与CPU之间的速度差距,提高数据访问效率。
- 题目解析
18)例题:RISC和CISC计算机叙述判断
- 基本概念
- 名称来源:
- RISC(Reduced Instruction Set Computer): 精简指令集计算机,名称中的"Reduced"表示简化、减少
- CISC(Complex Instruction Set Computer): 复杂指令集计算机,"Complex"表示复杂
- 核心区别:
- RISC使用简单指令,CISC使用复杂指令
- 这与它们的名称直接对应:精简指令集计算机自然使用简单指令,复杂指令集计算机使用复杂指令
- 名称来源:
- 关键技术对比
- 流水线技术:
- RISC采用超流水线技术(属于流水线技术的增强版)
- 常见误区:认为RISC不用流水线技术(实际是采用的)
- 寄存器使用:
- RISC使用大量通用寄存器
- 优化编译技术主要用于合理分配这些寄存器,提高使用效率
- 控制器类型:
- RISC采用组合逻辑控制器
- CISC普遍采用微程序控制器
- 流水线技术:
- 题目解析
- 选项分析
- 选项A:
- 错误点:RISC确实使用流水线技术(超流水线技术)
- 记忆技巧:RISC追求高效,流水线是提高效率的重要手段
- 选项B:
- 完全相反:RISC用简单指令,CISC用复杂指令
- 关键记忆:名称直接反映了指令特点
- 选项C:
- 错误点:RISC使用大量寄存器而非很少
- 教材依据:优化编译技术的存在就是为了管理大量寄存器
- 选项D:
- 正确描述:准确指出了两种架构在控制器实现上的差异
- 选项A:
- 正确答案
- D选项:RISC采用组合逻辑控制器,CISC普遍采用微程序控制器
- 记忆要点
- 名称即特征:R(精简)-简单指令,C(复杂)-复杂指令
- 选项分析
|-------|---------|--------|
| 特征 | RISC | CISC |
| 指令特点 | 简单指令 | 复杂指令 |
| 流水线技术 | 超流水线技术 | 不特定 |
| 寄存器数量 | 大量 | 相对较少 |
| 控制器类型 | 组合逻辑控制器 | 微程序控制器 |
19)例题:流水线指令执行时间
- 题目
- 题目解析
- 流水线执行时间计算:
- 一条指令完整执行时间:取值时间Δt+ 分析时间Δt+ 执行时间Δt=3Δt。
- 连续执行20条指令,需加上(n-1)个流水线周期,n=20,所以总时间:3Δt+(20−1)Δt=22Δt。
- 因此选择C选项。
- 流水线执行时间计算:
20)例题:三级存储体系地址
- 题目
- 题目解析
- DMA控制器和中断CPU发出的数据地址:
- 在由高速缓存、主存和硬盘构成的三级存储体系中,CPU执行指令时需要读取数据。
- DMA控制器和中断CPU发出的数据地址是主存物理地址。
- 选择B选项,因为CPU工作时给出的是主存的物理地址,需要进行地址映射转换成对应的缓存地址。
- 其他选项如高速缓存地址、硬盘的扇区地址、虚拟地址均为干扰项。
- DMA控制器和中断CPU发出的数据地址:
四、知识小结
|-------------|---------------------------------------------|------------------------|------|
| 知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
| 内存编制基础 | 内存按字节编制,1字节=8位(1B=8bit);地址位数计算:内存容量=2^地址位数 | 地址位数计算(如8字节内存需3位地址) | ⭐⭐ |
| 存储层次结构 | CPU→寄存器→高速缓存→主存→外存;速度递减,容量递增 | 寄存器访问速度最快(优于catch) | ⭐⭐ |
| 高速缓存(catch) | 解决CPU与主存速度不匹配;内容为主存部分拷贝 | catch不扩大主存容量(易错点) | ⭐⭐⭐ |
| 地址映射方式 | 全相连/直接/组相连映射;全相连冲突最小,直接映射冲突最大 | 映射方式与块冲突关系 | ⭐⭐⭐⭐ |
| 存储容量计算 | 16进制地址转容量:终止地址-起始地址+1→转十进制→换算单位(如KB) | 16进制减法与单位换算 | ⭐⭐⭐ |
| 流水线计算 | 流水线时间公式:总时间=首条指令完整时间+(n-1)×最长子过程时间 | 常规标量单流水线例题(20条指令需22Δt) | ⭐⭐⭐⭐ |
| 虚拟存储器 | 主存+辅存构成,扩展用户可用内存空间 | 组成结构 | ⭐⭐ |
| RISC与CISC对比 | RISC:精简指令集,大量寄存器,组合逻辑控制器;CISC:复杂指令集,微程序控制器 | RISC关键技术(超流水线、优化编译) | ⭐⭐⭐ |
| DMA与中断 | CPU访问数据时发出主存物理地址,非虚拟地址或扇区地址 | 地址类型辨析 | ⭐⭐ |