一、Flynn分类法
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流 SISD | 控制器:一个 处理器:一个 主存:一个 | 单处理器系统 | |
单指令流多数据流 SIMD | 控制器:一个 处理器:多个 主存:多个 | 各处理器以异步的形式执行同一条指令 | 并行处理机 阵列处理器 超级向量处理机 |
多指令流单数据流 MISD | 控制器:多个 处理器:一个 主存:多个 | 被证明不可能,至少是不实际 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流 MIMD | 控制器:多个 处理器:多个 主存:多个 | 能够实现作业、任务、指令等各级全面并行 | 多处理机系统 多计算机 |
二、CISC和RISC
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC(复杂) | 数量多,使用频率差别大,可变长格式(根据不同需求,设计不同指令) | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC(精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线 | 优化编译,有效支持高级语言 |
三、流水线的基本概念
- 流水线:是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度
- 过程: 取指——分析——执行
四、流水线周期及流水线执行时间计算
-
流水线周期为执行时间最长的一段
-
理论公式:流水线计算公式为:1条指令执行时间 + (指令条数-1)*流水线周期
( t 1 + t 2 + . . + t k ) + ( n − 1 ) ∗ Δ t (t1+t2+..+tk) + (n-1) * \Delta{t} (t1+t2+..+tk)+(n−1)∗Δt -
实践公式:流水线计算公式:(将每段指令的执行时间都假定为流水线周期)+ (指令条数-1)*流水线周期
( k + n − 1 ) ∗ Δ t (k+n-1)*\Delta{t} (k+n−1)∗Δt
五、流水线吞吐率计算
-
吞吐率(TP):是指单位时间内流水线所完成的任务数量或输出的结果数量。
-
公式:
T P = 执 行 条 数 流 水 线 执 行 时 间 TP = \frac{执行条数}{流水线执行时间} TP=流水线执行时间执行条数 -
最大吞吐率:
T P m a x = lim n → ∞ n ( k + n − 1 ) Δ t = 1 Δ t TP_{max}=\lim_{n \to \infty}{\frac {n}{(k+n-1)\Delta{t}}}=\frac{1}{\Delta{t}} TPmax=n→∞lim(k+n−1)Δtn=Δt1
六、流水线加速比计算
-
加速比:完成同一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比
-
公式:
S = 不 使 用 流 水 线 的 执 行 时 间 使 用 流 水 线 的 执 行 时 间 S = \frac{不使用流水线的执行时间}{使用流水线的执行时间} S=使用流水线的执行时间不使用流水线的执行时间 -
效率:流水线的设备使用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比
-
公式:
E = n 个 任 务 占 用 的 时 空 区 k 个 流 水 段 的 总 的 时 空 区 = T 0 k T k E=\frac{n个任务占用的时空区}{k个流水段的总的时空区}=\frac{T_{0}}{kT_{k}} E=k个流水段的总的时空区n个任务占用的时空区=kTkT0
七、计算机层次化存储结构
- 外存(硬盘、光盘等)——内存——Cache(非必须)——CPU(寄存器),存取速度由慢到快,容量由大到小
八、Cache的基本概念
-
Cache功能:提高CPU数据输入输出的速率,突破冯诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。
-
计算机存储体系中,Cache是访问速度最快的层次**(非最快存储,最快存储是寄存器)**。
-
Cache能改善系统性能的依据是——程序的局部性原理。
-
如果以h代表对Cache的访问命中率, t 1 t_{1} t1表示Cache的周期时间, t 2 t_{2} t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为 t 3 t_{3} t3,则:
t 3 = h ∗ t 1 + ( 1 − h ) ∗ t 2 t_{3} = h * t_{1} + (1-h) * t_{2} t3=h∗t1+(1−h)∗t2
其中,(1-h)又称为失效率(未命中率)。
九、时间局部性与空间局部性
- 工作集理论:工作集是进程运行时被频繁访问的页面集合。
十、Cache写直达、写回、标记法
- Cache页面淘汰算法——先进先出算法、近期最少使用算法
- Cache的读写过程——写直达、写回、标记法
十一、Cache的全相联、直接相联、组相联
- 地址映像:将主存与Cache的存储空间划分为若干个大小相同的页(或称为块)。例如,某机主存容量为1GB,划分为2048页,每页512KB;Cache容量为8MB,划分为16页,每页512KB。
- 全相联:主存页标记(11位,即主存页号)+页内地址(19位)。
- 直接相联:主存标记(7位,主存区号)+Cache页号(4位,区内页号)+页内地址(19位)。
- 组相联:主存标记(7位,主存区号)+Cache组号(3位)+组内页号(1位)+页内地址(19位)。
- 相联存储器是根据所访问的内容来决定要访问的存储单元。
十二、随机存储器与只读存储器
- 随机存取存储器:DRAM(Dynamic RAM,动态RAM),SRAM(Static RAM,静态)。
- 只读存储器:MROM(Mask ROM,掩模式ROM),PROM(Programmable ROM,一次可编程ROM),EPROM(Erasable PROM,可擦出的PROM),闪速存储器(flash memory,闪存)。
- ROM类存储器通过累加和校验进行自检。
十三、磁盘工作原理
- 存取时间:寻道时间+等待时间(平均定位时间+转动延迟)
- 寻道时间:指磁头移动到磁道所需的时间。
- 等待时间:为等待读写的扇区转到磁头下方所用的时间。
十四、校验码的概念
- 码距:一个编码系统的码距是整个编码系统中任意(所有)两个码子的最小距离。比如用2位长度的二进制编码,若以A=11,B=00为例,A、B之间的最小码距为2。
- 检错:一个码组内为了检测e个误码,要求最小码距d应该满足:d>=e+1
- 纠错:一个码组内为了纠正t个误码,要求最小码距d应该满足:d>=2t+1
十五、循环校验码(CRC)
- 模2除法:指在做除法运算的过程中不计其进位的除法。
十六、海明校验码
- 海明校验码: 2 r > = 4 ( 信 息 的 位 数 ) + r ( 校 验 码 的 位 数 ) + 1 2^{r}>=4(信息的位数)+r(校验码的位数)+1 2r>=4(信息的位数)+r(校验码的位数)+1,确定校验码为3位: 2 3 > = 4 + 3 + 1 2^{3}>=4+3+1 23>=4+3+1,校验位分别放在 2 0 = 1 2^0=1 20=1, 2 1 = 2 2^1=2 21=2, 2 2 = 4 2^2=4 22=4位。
十七、浮点数运算
- 浮点数: N = M ∗ R e N = M*R^{e} N=M∗Re,其中M成为尾数,e是指数,R为基数。
- **计算过程:**对阶(低阶转为高阶)——尾数计算——结果格式化(尾数必须大于1,小于10)。
十八、多处理机系统
大规模并行处理计算机(MPP):
- 概念:由大量通用微处理器构成的多处理机系统,适合多指令流多数据流处理。
- 大多数MPP系统使用标准的CPU作为它们的处理器。
- MPP系统使用高性能的定制的高速互联网络及网络接口,可以在低延迟和高带宽的条件下传递消息。
- MPP是一种异步的分布式存储器结构的MIMD系统。
- MPP中使用特殊的软硬件来监控系统、检测错误。
并行性分类:
- 粗粒度并行性:指在多处理机上分别运行多个进程,由多台处理机合作完成一个程序,属于作业级和任务级的并行处理。
- 细粒度并行性:指在一个进程中进行操作级和指令级的并行处理。