全部文章

Computer Architecture

文章目录

2024-2025 计算机体系结构

绪论

课程基本信息

课程定位与目标

课程内容结构

八大章节:

  1. 绪论
  2. 基准评测集
  3. 高性能计算机体系结构
  4. 高性能处理器并行计算技术
  5. 高性能计算机存储层次
  6. 高性能计算机互连网络
  7. 异构计算体系结构
  8. 领域专用体系结构

量化设计与分析基础

重点内容:

  1. 计算机技术发展的关键转折点
  2. 丹纳德缩放定律(Dennard Scaling)及其终结
  3. 摩尔定律及其面临的挑战
  4. 单处理器性能发展历程

难点:

  1. 理解处理器性能增长放缓的深层原因
  2. 掌握能耗墙、内存墙等技术瓶颈的本质

关键概念:

  1. 摩尔定律:

    • 定义:晶体管数量每18-24个月翻倍,成本减半
    • 现状:增长开始放缓
    • 面临挑战:物理极限、成本效益、散热问题
  2. 丹纳德缩放定律:

    • 核心内容:功率密度随面积保持不变
    • 终结时间:2004年
    • 影响:推动了多核处理器的发展

高性能计算机发展史

重点内容:

  1. 高性能计算机四个发展阶段
  2. 中国超级计算机发展历程
  3. 超级计算机应用领域

实例分析:

重要里程碑机器:

  1. CDC 6600 (1964):第一台真正的超级计算机
  2. Cray-1 (1976):首次使用向量处理器架构
  3. 天河一号(2009):中国首台千万亿次超级计算机
  4. 神威·太湖之光(2016):首个使用国产芯片的世界最快超算

超级计算机应用领域:

  1. 科学计算:气候环境、天文物理、材料化工
  2. 工程应用:航空航天、石油勘探、工程设计
  3. 新兴领域:智慧城市、人工智能、精准医疗

重要图表位置标注:

  1. 超级计算机性能发展曲线:P139
  2. CPU性能发展趋势图:P140
  3. 超算应用领域分布图:P145

关键结论:

  1. “并行”是实现超级计算的唯一途径
  2. 未来发展趋势:
    • E级向Z级计算发展
    • 与AI、大数据融合
    • 探索非冯·诺依曼架构

基准评测集

计算机性能基础

性能指标

重点:CPU性能评估方法
性能度量标准:
  1. MIPS (每秒百万指令数)

    MIPS = Instructions Number/(Execution Time × 10^6)
  2. FLOPS (每秒浮点运算次数)

    MFLOPS = Float Instructions Number/(Execution Time × 10^6)

并行系统性能评估

重点概念:

  1. 加速比(Speedup):
    S = Ts/Tp
    其中:
  1. 效率(Efficiency):
    E = S/p
    其中p为处理器数量
难点:Amdahl定律
  1. 核心公式:
    S = 1/(f + (1-f)/p)
    其中:
  1. 关键结论:
Gustafson定律
  1. 公式:
    S' = p - f(p-1)
  2. 特点:

基准测试程序

主要类型:

  1. 商用基准测试(TPC系列):
  1. SPEC测试程序:
  1. HPC特定测试:

实例分析:

以龙芯3A5000处理器为例:

SPEC CPU2006测试结果:
- SPECint2006:27.87
- SPECfp2006:30.29

性能分析表明:

性能提升方法

主要策略:

  1. 利用并行性
  2. 遵循局部性原理
  3. 关注常见情况优化

并行算法设计步骤:

  1. 任务划分
  2. 通信分析
  3. 任务组合
  4. 处理器映射

重要图表位置:

高性能计算机的体系结构

超级计算机硬件组成

五大核心子系统

  1. 计算阵列:
  1. 存储阵列:
  1. 服务阵列:
  1. 互连通信子系统:
  1. 监控诊断子系统:

计算机体系结构分类

Flynn分类法

重点概念:
  1. 指令流(I):执行的指令序列
  2. 数据流(D):被处理的数据序列
  3. 多倍性(M):同时处理的指令/数据数量
四种基本类型:
  1. SISD(单指令流单数据流):
  1. SIMD(单指令流多数据流):
  1. MISD(多指令流单数据流):
  1. MIMD(多指令流多数据流):
实例分析
Cray-1向量计算机结构:

MIMD细分类型

A. 共享内存系统
  1. 集中共享内存(CSM/SMP/UMA):
  1. 分布式共享内存(DSM/NUMA):
B. 分布式内存系统
  1. MPP(大规模并行处理器):
  1. COW(工作站集群):

非冯诺依曼体系结构

主要类型:

数据流计算机特点:

重要图表位置标注:

高性能处理器的并行计算技术-指令级并行

指令级并行基础

并行性类型

  1. 数据级并行(DLP)
  1. 任务级并行(TLP)

硬件利用并行性的四种方式:

A. 指令级并行(ILP):
B. 向量架构和GPU:
C. 线程级并行:
D. 请求级并行:

指令级并行的挑战

三种基本冒险:

A. 结构冒险:
B. 数据冒险:
  1. RAW(Read After Write):

    I1: add r1,r2,r3
    I2: sub r4,r1,r3 // 等待r1
  2. WAR(Write After Read):

    I1: sub r4,r1,r3
    I2: add r1,r2,r3 // 必须等I1读完r1
  3. WAW(Write After Write):

    I1: sub r1,r4,r3
    I2: add r1,r2,r3 // 写入次序不能颠倒
C. 控制冒险:

解决数据冒险的基本方法:

A. 转发(Forward):

循环展开优化

重点概念:

  1. 循环展开目的:
  1. 基本步骤:
实例分析:
原始循环:
Loop: fld f0,0(x1)
fadd.d f4,f0,f2
fsd f4,0(x1)
addi x1,x1,-8
bne x1,x2,Loop

展开优化后:

Loop: fld f0,0(x1)
fld f6,8(x1)
fld f10,16(x1)
fld f14,24(x1)
fadd.d f4,f0,f2
fadd.d f8,f6,f2
fadd.d f12,f0,f2
fadd.d f16,f14,f2
fsd f4,0(x1)
fsd f8,8(x1)
addi x1,x1,32
fsd f12,16(x1)
bne x1,x2,Loop
fsd f16,24(x1)

优化效果:

分支预测

基本概念与重要性

重点:

分支预测技术分类

A. 静态预测:
  1. 基于编译时信息
  2. 典型方法:
B. 动态预测:
  1. 简单的1位预测器:
  1. 2位预测器:
  1. 相关预测器(两级预测器):
  1. 竞赛预测器(Tournament Predictor):

分支目标缓存(BTB)

重要组成:
  1. 基本结构:
  1. 工作流程:

    if (PC in BTB) {
    next_PC = predicted_target;
    } else {
    next_PC = PC + 4;
    }
  2. 失效代价:

    BTB失效类型   预测   实际   惩罚周期
    命中 跳转 跳转 0
    命中 跳转 不跳转 2
    未命中 - 跳转 2
    未命中 - 不跳转 0

推测执行

重排序缓冲区(ROB)

重点概念:
  1. ROB的基本功能:
  1. ROB条目构成:
重要机制:
  1. 指令发射:
  1. 指令执行:
  1. 写回结果:
  1. 提交过程:

实例分析

示例代码:
L.D F6,34(R2)
L.D F2,45(R3)
MUL.D F0,F2,F4
SUB.D F8,F6,F2
DIV.D F10,F0,F6
ADD.D F6,F8,F2
执行过程:
  1. Load指令:
  1. 计算指令:
  1. 分支预测错误处理:

【重要图表位置】

超标量(Superscalar)处理器

基本原理

  1. 核心特征:
  1. 关键组件:

主要挑战

A. 结构复杂度:
B. 性能瓶颈:
  1. 指令发射带宽限制
  2. 功能部件数量限制
  3. 转发(Forward)复杂度增加

实例分析

双发射MIPS处理器示例:

Loop: L.D F0,0(R1)
ADD.D F4,F0,F2
S.D F4,0(R1)
DADDIU R1,R1,#-8
BNE R1,R2,Loop

执行效率:

超长指令字(VLIW)

基本特征:

  1. 编译时调度:
  1. 指令包格式:

优缺点分析

优点:
  1. 硬件简单
  2. 执行效率高
  3. 功耗低
缺点:
  1. 代码膨胀
  2. 可移植性差
  3. Lock-step限制
解决方案:
  1. 代码压缩
  2. 动态调度
  3. 目标代码转换

同时多线程(SMT)

基本概念:

实现方式:

A. 细粒度多线程:
B. 粗粒度多线程:
C. 同时多线程(SMT):

ILP限制因素

理想处理器假设:

  1. 无限虚拟寄存器
  2. 完美分支预测
  3. 完美值预测
  4. 无限缓存

实际限制:

A. 指令窗口大小:
B. 分支预测:
C. 寄存器数量:
重要图表位置:
# elective# CA