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

一、计算机体系结构与存储系统
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访问数据时发出主存物理地址,非虚拟地址或扇区地址 | 地址类型辨析 | ⭐⭐ |

相关推荐
SHoM SSER2 小时前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
熬夜的咕噜猫2 小时前
MySQL备份与恢复
数据库·oracle
jnrjian3 小时前
recover database using backup controlfile until cancel 假recover,真一致
数据库·oracle
lifewange3 小时前
java连接Mysql数据库
java·数据库·mysql
大妮哟4 小时前
postgresql数据库日志量异常原因排查
数据库·postgresql·oracle
云原生指北4 小时前
命令行四件套:fd-rg-fzf-bat
java·大数据·elasticsearch
还是做不到嘛\.4 小时前
Dvwa靶场-SQL Injection (Blind)-基于sqlmap
数据库·sql·web安全
不写八个4 小时前
PHP教程004:php链接mysql数据库
数据库·mysql·php
Datacarts5 小时前
AI大模型时代:微店商品数据API如何重构反向海淘决策
大数据·人工智能·重构