Hobo Chen

Note of Computer Structure(TBD)

这是我在复习计算机体系结构这门课时写的笔记。

基本概念

层次结构

  • 应用语言级,6级
  • 高级语言级,5级
  • 汇编语言级,4级
  • 操作系统级,3级

这是软硬件界面

  • 传统机器级,2级
  • 微程序机器级,1级
  • 电子线路,0级

定量分析

Amadahl 定律

加速比 = 改进后系统性能 / 改进后系统性能 = 改进前总执行时间 / 改进后总执行时间

依赖于:

  • 可改进比例
  • 部件加速比

CPU性能公式

CPU时间 = 执行程序所需要的时钟周期数 × 时钟周期时间

CPU时钟周期数 = sum (CPI_i * IC_i)

MIPS = 指令总数 / 执行指令所需要的时间;指令总数为1E6为单位

MFLOPS 指美妙百万次浮点操作次数。

MTTF MTBF

一个系统无故障的概率函数是:

$$
R(t) = e^{-\lambda t}, \quad \lambda \text{ is failure rate}
$$

$$
MTTF = \frac 1 \lambda
$$

MTTR is average time for recovering failure.

$$
MTBF = MTTF + MTTR = 1 / \lambda + 1 / u
$$

指令集架构(ISA)

  • 累加器( - 1960)
  • 栈(1960 - 1970)
  • 内存 - 内存(1970 - 1980)
  • 寄存器 - 内存(1970 - )
  • 寄存器 - 寄存器(1960 - )

通用寄存器后来成了主流结构。

操作码

  • 定长表示
  • 哈弗曼表示
  • 扩展编码

MIPS架构

一个典型的RISC架构。

  • 有32个64位通用寄存器。
  • 32个双精度浮点寄存器

数据寻址方式只有立即数寻址和偏移量寻址。

指令分为几种类型,I, J, R.

流水线

指标

吞吐率:

$$
TP=\frac{n}{T_k}
$$

线性流水线的吞吐率:

$$
TP = \frac{n}{(k + n - 1)\Delta t}
$$

$$
TP_{max} = \frac{1}{\Delta t}
$$

瓶颈流水线的吞吐率:

$$
TP = \frac{n}{\sum_{i = 1}^{k}\Delta t_i + (n - 1) \max {\Delta t_i}}
$$

加速比:

$$
S = \frac{nk}{k + n - 1}
$$

线性流水线最佳段数

流水线的段数增加,加速比和吞吐率都增加,但价格和延迟也都增加。
设某任务的执行时间为t,则k段流水线上的执行时间为t / k + d,d为锁存器延迟时间。

总价格估计为 C = a + bk, a为所有功能段的总价格,b为每个锁存器的价格。

$$
PCR = \frac PC = \frac{1}{t/k + d}*\frac{1}{a + bk}
$$

最佳段数:

$$
k = \sqrt{\frac{t a}{d b}}
$$

相关与流水线冲突

结构冲突

资源不够引发的冲突,可以放置流水线气泡。

数据冲突

i位于j之前进入流水线。

  • RAW, i写了某个寄存器,j读这个寄存器;j读到了旧的值。是真数据冲突。
  • WAW, j在i之前写入了寄存器,导致寄存器内留下了i的值。
  • WAR, 没有读取到正确的值。

控制冲突

启动向量

一些神奇的做法。

指令级并行

动态调度

动态分支预测

有两种做法,分支历史表、预测缓冲器。

存储层次

存储器层次

  • 通用寄存器
  • 高速缓冲存储器(缓存)
  • 主存(内存)
  • 辅助存储器
  • 脱机大容量存储器(磁带)

性能参数

价格:
$$
C = \frac{C_1 S_1 + C_2 S_2}{S_1 + S_2}
$$

命中率:

$$
H = \frac{N_1}{N_1 + N_2}
$$

Cache

映像规则与地址转换

  • 全相联映像
  • 直接映像
  • 组相联映像

全相联

维护一个块表。

直接映像

RAM地址(区号A,块号B,块内地址)
Cache地址(Cache块号,块内地址)

组相联

RAM的组和Cache的组采用直接相联;
组内全相联。

缓存地址:(组号,块号,块内地址)
主存地址:(区号,组号,块号,块内地址)
相关存储器:(区号,块号,缓存块号,有效位),大小和缓存的块数一样。

IO

RAID

RAID 0+1 先分块后镜像
RAID 1+0 先镜像后分块

RAID 5 是 RAID 4的校验磁盘打碎到每个磁盘上。

通道