计算机系统结构

第1章 概述

Flynn’s 分类,市场分类

系统结构的原始定义和现在的定义

原始定义:

程序员看见的系统属性,即结构及行为,区分数据流动和控制逻辑,及物理实现

现在定义:

是在满足功能、性能和价格目标的条件下,设计、选择和互连硬件部件构成计算机。

了解实现技术、功耗、成本的趋势,可靠性

  • 摩尔定律
  • 带宽增加速度与响应时间改进的平方成比例
  • 带宽改进优于时延
  • 多核有更高的功率利用率
  • 模块可用性:
  • $\frac{平均无故障时间}{平均故障间隔时间}$

性能评价指标:响应时间、CPU时间、吞吐量

性能评价方法:

基准测试程序,SPEC测试程序集及指标( SPEC Ratio、 Spec mark )

SPEC:

提供基于现有应用程序的一套标准化源代码作为基准测试程序(SM为SPEC速率的几何平均值)

  • $SM = \sqrt[n] {\prod_{i-1}^{n} SPECRatio_i}$
  • $SPECRatio_i = \frac{参考计算机执行时间}{A机执行时间}$
TPC:

测试每秒处理的事务数

量化:Amdahl定律,CPU时间计算

CPU时间:执行一组指令用的时间

  • $Instruction_Num * \overline{Instruction_Time}$

  • $\overline{Instruction_Time}=CPI * Clock_Cycle_Time$

Amdahl定律

  • $S_e(加速比) = \frac{改进后的性能/(未改进执行时间)}{未改进的性能/(改进后的执行时间)}$

  • $改进后的执行时间 = \frac{改进部分执行时间}{加速比}+不可改进部分执行时间$

$F_e$:改进部分所占执行时间比例

  • $T_n = T_0(1 - F_e + \frac{F_e}{S_e})$
  • 改进后系统加速比为:
  • $\frac{1}{1 - F_e + \frac{F_e}{S_e}}$

了解性价比:桌面机,服务器

第2章 指令系统

指令集系统结构分类及特点

堆栈、累加器、通用寄存器

通用寄存器系统结构的分类及特点

  • r-m

  • r-r/load-store

存储器寻址:基本单位、小端与大端模式、对齐访问

最常用寻址方式

常用操作数类型

  • 用操作码编码指定
  • 用硬件解释字段表示数据类型

常用指令操作

常用指令系统编码方式

  • 变长编码:代码长度可以减少
  • 定长编码:性能提高,利用流水线
  • 混合方法:折中方式

MIPS系统结构的指令格式、寻址方式特点。

32位定长指令

第3章 流水线技术

流水线定义

利用执行指令操作间的并行性,实现多条指令重叠执行的技术

流水线的三种冒险及解决方法

控制冒险

  • WB先写,ID后读
  • 分离指令寄存器和数据寄存器
  • 增加硬件资源或功能部件完全流水
  • 停顿流水线

数据冒险

  • WB先写,ID后读
  • Forwarding
  • Load数据冒险
  • 停顿

控制冒险

  • 停顿流水线
  • 预测转移不发生
  • 预测转移发生
  • 转移延迟

流水线模型机指令系统、无相关流水线模型机多条指令执行过程,流水线模型机的控制信号的产生

流水线模型机中结构相关处理,数据前推、load前推实现, 控制相关处理,指令执行的时序图

精确异常与非精确异常

精确异常

  • 异常发生之前的指令正常结束,之后的指令暂停,并在处理完异常之后能重新启动。
  • 要求顺序处理异常
  • 设置异常向量,异常发生,记录异常,禁止写操作。
  • 一条指令将离开流水线,检测异常向量
  • 若多个异常,响应最早流水段的异常

非精确异常

  • 异常乱序

经典5段流水线扩展浮点流水线,涉及到的写冲突、相关及处理

除法部件不参与流水线

RAW

  • ID级检测源寄存器是否和EX/A/DIV/M各级流水线的目的寄存器相同

WAW

  • ID级检测目的寄存器是否和EX/A/DIV/M各级流水线的目的寄存器相同

WAR

异常处理

  • 忽略这个异常
  • 缓存结果,cpu执行完之前不改变任何状态(中间寄存器或历史文件未来文件)
  • 确认无异常,才继续流水线

第4章 指令级并行及限制

静态调度的循环展开方法,名相关,寄存器换名(编译器实现)

动态调度,记分牌算法, Tomasulo算法

记分牌

  • IS: 无WAW & 无结构冒险
  • RO源操作数就绪 & 无 RAW
  • EXE
  • WR无WAR
  • 等待此寄存器的R即为yes

Tomasulo

IS

进入条件:有空闲保留栈/缓冲

浮点操作:

  • 若源操作数有效,写数据,否则写产生源操作数的部件
  • 本保留栈busy
  • 送结果寄存器的表

存取操作

  • 若地址基址寄存器有效写$V_j$,否则将产生基址寄存器的部件写$Q_j$
  • 本保留栈busy
  • A存偏移
  • 取:将取缓冲送至寄存器表
  • 存:若存结果有效写$V_k$,否则写$Q_k$

EXE

进入条件:源操作数就绪 & 基址寄存器有效(LD|SD) & 到达缓冲队首(LD|SD)

浮点操作:

  • 产生结果

存取操作

  • 计算A
    • 取:读数

WR

进入条件:CDB空闲 & 结果有效 & 要存入的数据准备好

  • 写寄存器/存储器
  • 寄存器表相应位置清
  • 找源操作是本保留栈的将数据填入

动态转移预测,BPB,BTB,前瞻执行的 基本概念

branch prediction buffer:减少判断跳转的停顿

branch target buffer:记录转移地址在buffer中,转移成功,直接取buffer中的目标地址

前瞻执行:ROB存放未确认结果

第5章 存储系统

Cache存储器的三种映像方式(全相联、直接映像,组相联)

物理地址与Cache地址的映射计算

Cache的映像规则,块标识,替换算法,写策略

写策略

  • 写直达:缺失时不按写分配
  • 写回:缺失时写分配

Cache性能优化的方法

减少缺失率$^4$

  • 增加块大小

  • 增大cache容量

  • 更高相联度

  • 编译优化

减少缺失代价$^5$

  • 多级caches

  • 关键字优先

  • 读缺失优于写缺失

  • 合并写缓冲

  • 牺牲缓冲

并行减少缺失率与缺失代价$^3$

  • 非阻塞caches

  • 硬件预取

  • 编译预取

减少命中时间 $^5$

  • 小和简单的caches
  • 避免地址转换
  • 流水线cache访问
  • 路预测
  • 踪迹 caches

主存储器优化性能的技术

  • 增加带宽
  • 交叉访问存储器

虚拟存储器基本概念,页式虚拟存储器,映像规则,查找方法,替换算法,写策略,快表TLB的结构与作用 虚拟存储器与cache的综合

  • 全相联

第6章 多线程和多处理器

ILP与TLP的基本概念

ILP:指令级并行

TLP:线程级并行

超标量、粗粒度、细粒度和SMT的基本概念。

超标量:单线程

粗粒度:仅在长空闲周期才切换线程

细粒度:可在每个周期切换线程

同时多线程:SMT,一个周期内发射不同线程的指令

多处理器的两种分类结构。

  • 集中共享存储器架构
  • 分布式存储器架构

同构多核与异构多核的基本概念。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!