计算机中级-数据库系统工程师-计算机体系结构与存储系统

一、计算机体系结构与存储系统
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)地址位数计算
  • 计算方法:地址位数=log⁡2(内存字节数)。例如:
    • 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:
        • 正确描述:准确指出了两种架构在控制器实现上的差异
    • 正确答案
      • 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工作时给出的是主存的物理地址,需要进行地址映射转换成对应的缓存地址。
      • 其他选项如高速缓存地址、硬盘的扇区地址、虚拟地址均为干扰项。
四、知识小结

|-------------|---------------------------------------------|------------------------|------|
| 知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
| 内存编制基础 | 内存按字节编制,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访问数据时发出主存物理地址,非虚拟地址或扇区地址 | 地址类型辨析 | ⭐⭐ |

相关推荐
m0_734949796 小时前
MySQL如何配置定时清理过期备份文件_find命令与保留周期策略
jvm·数据库·python
m0_514520576 小时前
MySQL索引优化后性能没提升_通过EXPLAIN查看索引命中率
jvm·数据库·python
NaMM CHIN6 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
不瘦80斤不改名7 小时前
深入浅出 MySQL(一):一文理清 SQL 核心规范与五大分类
数据库·sql·mysql
woniu_buhui_fei7 小时前
MySQL知识整理二
数据库·mysql
Polar__Star8 小时前
如何在 AWS Lambda 中正确使用临时凭证生成 S3 预签名 URL
jvm·数据库·python
Lucifer三思而后行8 小时前
zCloud 中 Oracle 实例状态未知问题记录
数据库·oracle
island13148 小时前
最详细VMware Workstation 17 上安装 Ubuntu 系统
linux·数据库·ubuntu
小小AK8 小时前
钉钉与金蝶云星空无缝集成方案
大数据·人工智能·钉钉
卢傢蕊8 小时前
MongoDB
数据库·mongodb