计算机体系结构知识点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
1.5 定量分析技术基础
1.5.4 CPU的性能
1. 将程序执行的时间进行分解
(1) 计算机工作的时钟频率 计算机系统中与实现技术和工艺有关的因素。 单位是MHz(f)。 (2) 总时钟周期数 程序执行的cpu时间 : CPU时间 = 总时钟周期数 / 时钟频率
7
1.5 定量分析技术基础
2. “指令时钟数”CPI(Cycles Per Instruction)
当n >> m 时,TP ≈TPmax
◆ 第二种情况:各段时间不等
时空图
20
3.2 DLX的基本流水线
21
3.2 DLX的基本流水线
完成 n 个任务所需的时间
T流水=∑△ti+(n-1)△tj
i=1
m
△tj=max{△ti }
实际吞吐率
TP = ────────── m ∑ △ti+(n-1)△tj
(1) 最大吞吐率TPmax
最大吞吐率是指流水线在连续流动达到 稳定状态后所得到的吞吐率。
◆ 若流水线各段的时间相等,均为△t0 ,
则:
TPmax= 1 /△t0
13
3.2 DLX的基本流水线
◆ 若流水线各段的时间不等,则:
1 ───── TPmax= max{△ti }
◆ 最大吞吐率取决于流水线中最慢的一段所
9
• 例题1.1 • 课后1.7
2.3 指令集结构的功能设计
2.3.2 CISC和RISC指令集功能的设计
(1) 指令数
(2) 时钟周期
(3) CPI
4. 访问不同操作数大小的频率
整型平均 0% 字节 0% 半字 单字 双字 0% 0% 20% 40% 60% 7% 19% 31% 74% 69% 80% 浮点平均
45
46
5.2 Cache 基本知识
5. 混合Cache与分离Cache
(1) 优缺点
(2) 失效率的比较
47
失效率的比较
容 量 1 KB 2 KB 4 KB 8 KB 指令 Cache 3.06% 2.26% 1.78% 1.10% 数据 Cache 24.61% 20.57% 15.94% 10.19% 6.47% 4.82% 3.77% 2.88% 混合 Cache 13.34% 9.78% 7.24% 4.57% 2.87% 1.99% 1.36% 0.95%
ICi :在程序中第i种指令出现的次数;
则程序执行时间为 CPU时间 = (CPIi ICi) / 时钟频率
i=1
n
CPI = (CPIi ICi) / IC = (CPIi ICi / IC)
i=1 i=1
n
n
其中:(ICi / IC)反映了第i种指令在程序中所占的 比例。
48
16 KB
32 KB 64 KB 128 KB
0.64%
0.39% 0.15% 0.02%
(3) 分离Cache平均失效率的计算:
访问指令Cache的百分比×指令Cache的失效率
+访问数据Cache的百分比×数据Cache的失效率
5.2.6 Cache性能分析
1. 失效率
2. 平均访问时间 平均访问时间=命中时间+失效率×失效开销
计算机体系结构知识点
刘飞 liu.fei.ldu@gmail.com
1.5 定量分析技术基础
1.5.3 性能设计和评测的基本原则
三条基本原则和方法: 1. 大概率事件优先的原则
对于大概率事件(最常见的事件),赋予
它优先的处理权和资源使用权,以获得全局的 最优结果。 2. Amdahl定律 加快某部件执行速度所获得的系统性能 加速比,受限于该部件在系统中所占的重要性。
(解释)
23
3.2 DLX的基本流水线
24
3.2 DLX的基本流水线
T非流水 nm△t0 S= ─── = ───────── m△t0 +(n-1)△t0 T流水 mn m = ──── = ──── 1 m+n-1 1+ m- n 可以看出:当n >> m 时,S 想一想:m 越大越好?
3.效率 E
5
1.5 定量分析技术基础
3. 程序的局部性原理
程序在执行时所访问地址的分布不是随机
的,而是相对地簇聚;这种簇聚包括指令和数
据两部分。
◆ 程序的时间局部性:程序即将用到的信息很
可能就是目前正在使用的信息。
◆ 程序的空间局部性:程序即将用到的信息很
可能与目前正在使用的信息在空间上相邻或者
临近。
应用:存储相关设计上
49
5.2 Cache 基本知识
平均访存时间公式可以分为指令访问和数据 访问两部分: 平均访存时间=指令所占的百分比× (指令命中时间+指令失效率×失效开销)+ 数据所占的百分比× (数据命中时间+数据失效率×失效开销)
50
5.2 Cache 基本知识
37
•
•超长指令字
图示I(绝对值)
38
图示Ⅱ(相对值)
39
可以看出:(用数据说话!) (1) 相联度越高,冲突失效就越少; (2) 强制性失效和容量失效不受相联度的影响;
(3) 强制性失效不受Cache容量的影响,但容
量失效却随着容量的增加而减少; (4) 表中的数据符合2:1的Cache经验规则,即 大小为N 的直接映象Cache的失效率约等于 大小为N/2 的两路组相联Cache的失效率。
i=1
n
22
3.2 DLX的基本流水线
2. 加速比S 加速比是指流水线的速度与等功能非流水 线的速度之比。
S=T非流水/T流水 (其中T流水和T非流水分别为按流水和按非流水 方式处理 n 个任务所需的时间)
若流水线为 m 段,且各段时间相等,均 为△t0 ,则:
T非流水=n m△t0 T流水=m△t0+(n-1)△t0
n 个任务占用的时空区
(解释)
27
28
3.2 DLX的基本流水线
4.流水线性能分析举例
例3.1 在静态流水线上计算 ∑ AiBi ,
i=1
4
求:吞吐率,加速比,效率。
29
3.2 DLX的基本流水线
30
3.2 DLX的基本流水线
解:(1) 确定适合于流水处理的计算过程
(2) 画时空图 (3) 计算性能 吞吐率 TP=7/(20△t)
基准程序对单字和双字的数据访问具有较高的频率。
◆ 选择操作数字段的长度为32位,可以有效支持8、16、
32位整型操作数,以及32位浮点操作数的表示。
◆ 选择操作数字段长度为64位,则更具有一般性。
3.2 DLX的基本流水线
3.2.3 流水线性能分析
1. 吞吐率 吞吐率是指单位时间内流水线所完成的任 务数或输出结果的数量。
一个与计算机体系结构有关的参数。
CPI = 总时钟周期数 / IC IC:程序执行过程中所处理的指令数。 3. 程序执行的CPU时间可以写成 总CPU时间 = CPI IC / 时钟频率
8
1.5 定量分析技术基础
4. 对CPU性能公式进行进一步细化
假设:计算机系统有n种指令;
CPIi :第i种指令的处理时间;
36
4.4 多指令流出技术性能评价
一个时钟周期内流出多条指令, CPI<1。 多指令流出处理器有三种基本结构:
•
超标量(Superscalar) 每个时钟周期流出的指令数不定,它既可 以通过编译器静态调度,也可以通过记分牌或 Tomasulo算法动态调度
超流水(Super Pipeline) 将每个功能部件进一步流水化,特别是取 指令或指令流出被分解为多个段,使得一个功 能部件在一拍中可以处理多条指令。
时空图 完成 n 个任务所需的时间
T流水=m△t0+(n-1)△t0
(说明)
17
18
完成 n 个任务所需的时间
19
3.2 DLX的基本流水线
实际吞吐率
n TP = ─── = ────────── T流水 m△t0 +(n-1)△t0 n TPmax 1 = ──────── = ───── m - 1 1 (1+ n )△t0 1+ m- n TP < TPmax
总执行时间改进后=(1-可改进比例)总执行时间改进前 +
可改进比例 总执行时间 改进前 部件加速比
可改进比例 = [ (1-可改进比例) + ]总执行时间改进前 部件加速比
4
系统加速比为改进前与改进后总执行时间之比:
系统加速比 =
总执行时间 改进前 总执行时间 改进后
=
1 (1 可改进比例 ) 可改进比例 部件加速比
44
5.3 降低Cache 失效率的方法
举例: /* 修改前 */ for (i=0; i < N; i=i+1) for (j=0; j < N; j=j+1) { r=0; for (k=0; k < N; k=k+1) { r=r+y[i][k]*z[k][j]; } x[i][j]=r; } 计算过程 失效次数:2N3+N2
43
5.3 降低Cache 失效率的方法
for (i=0 ;i<N ;i=i+1) for (j=0 ; j<N ;j=j+1) d[i][j]=a[i][j]+c[i][j]; /* 修改后 */ for (i=0 ;i < N ;i=i+1) for (j=0 ;j < N ;j=j+1) { a[i][j]=1/b[i][j]*c[i][j]; d[i][j]=a[i][j]+c[i][j]; } (4)分块 把对数组的整行或整列访问改为按块进行。
需的时间,这段就成了流水线的瓶颈。
◆ 消除瓶颈的方法
(举例) (时-空图)
细分瓶颈段 重复设置瓶颈段
14
15
重复设置瓶颈段(时-空图举例)
16
3.2 DLX的基本流水线
(2) 实际吞吐率TP 流水线的实际吞吐率小于最大吞吐率。
◆ 第一种情况:各段时间相等(设为△t0)
假设流水线由 m 段组成,完成 n 个任务。
2
(1) 加速比
系统加速比 =
系统性能改进后 系统性能改进前
=
总执行时间 改进前 总执行时间 改进后
系统加速比依赖于两个因素: 可改进比例:可改进部分在原系统计算时间中所占的 比例,它总是小于等于1的。 部件加速比:可改进部分改进以后的性能提高, 一般情况下它是大于1的 。
3
总执行时间改进后 = 不可改进部分的执行时间 + 可改进部分改进后的执行时间
40
5.3 降低Cache 失效率的方法
3. 数据对存储位置的限制比指令的少,因此
更便于优化。 通过把数据重新组织,使得在一块数 据被从Cache替换出去之前,能最大限度 利用其中的数据(访问次数最多) (1) 数组合并 举例: /* 修改前 */ int val [SIZE]; int key [SIZE];
42
5.3 降低Cache 失效率的方法
/* 修改后 */ for (i=0 ;i<5000 ;i=i+1) for (j=0 ;j< 100 ;j=j+1) x[i][j]=2*x[i][j]; (3) 循环融合 举例: /* 修改前 */ for (i=0 ; i<N ;i=i+1) for (j=0 ; j<N ; j=j+1) a[i][j]=1/b[i][j]*c[i][j];
m百度文库
0
流水
整个流水线的效率为:
n△t0 n 1 E = ─── = ──── = ───── T流水 m+n-1 1 1+ m- n
当 n >> m 时,E ≈ 1 (3) 从时-空图上看,效率实际上就是 n 个任务所
占的时空区与 m 个段总的时空区之比,即:
E =━━━━━━━━━━━━━ m 个段总的时空区
41
5.3 降低Cache 失效率的方法
/* 修改后 */ struct merge { int val ; int key ; } ; struct merge merged_array[size]; (2) 内外循环交换 举例: /* 修改前 */ for (j=0 ;j<100 ;j=j+1) for (i=0 ;i<5000 ;i=i+1) x[i][j]=2*x[i][j];
加速比 S=(34△t)/(20△t)=1.7
效率 E=(4×4+3×6)/(8×20)=0.21
31
32
33
3.2 DLX的基本流水线
34
3.2 DLX的基本流水线
可以看出,在求解此问题时,该流水线的效率
不高。
(原因)
举例Ⅰ
动态流水线的时-空图
35
3.2 DLX的基本流水线
举例 Ⅱ : 这样行不行?
≈
m
效率是指流水线的设备利用率。
(1) 由于流水线有通过时间和排空时间,所以 流水线的各段并不是一直满负荷地工作。 故:E <1
25
3.2 DLX的基本流水线
26
3.2 DLX的基本流水线
(2) 若各段时间相等,则各段的效率ei相等,即 e =e =e =…… =e =n△t /T (解释)
1 2 3
1.5 定量分析技术基础
1.5.4 CPU的性能
1. 将程序执行的时间进行分解
(1) 计算机工作的时钟频率 计算机系统中与实现技术和工艺有关的因素。 单位是MHz(f)。 (2) 总时钟周期数 程序执行的cpu时间 : CPU时间 = 总时钟周期数 / 时钟频率
7
1.5 定量分析技术基础
2. “指令时钟数”CPI(Cycles Per Instruction)
当n >> m 时,TP ≈TPmax
◆ 第二种情况:各段时间不等
时空图
20
3.2 DLX的基本流水线
21
3.2 DLX的基本流水线
完成 n 个任务所需的时间
T流水=∑△ti+(n-1)△tj
i=1
m
△tj=max{△ti }
实际吞吐率
TP = ────────── m ∑ △ti+(n-1)△tj
(1) 最大吞吐率TPmax
最大吞吐率是指流水线在连续流动达到 稳定状态后所得到的吞吐率。
◆ 若流水线各段的时间相等,均为△t0 ,
则:
TPmax= 1 /△t0
13
3.2 DLX的基本流水线
◆ 若流水线各段的时间不等,则:
1 ───── TPmax= max{△ti }
◆ 最大吞吐率取决于流水线中最慢的一段所
9
• 例题1.1 • 课后1.7
2.3 指令集结构的功能设计
2.3.2 CISC和RISC指令集功能的设计
(1) 指令数
(2) 时钟周期
(3) CPI
4. 访问不同操作数大小的频率
整型平均 0% 字节 0% 半字 单字 双字 0% 0% 20% 40% 60% 7% 19% 31% 74% 69% 80% 浮点平均
45
46
5.2 Cache 基本知识
5. 混合Cache与分离Cache
(1) 优缺点
(2) 失效率的比较
47
失效率的比较
容 量 1 KB 2 KB 4 KB 8 KB 指令 Cache 3.06% 2.26% 1.78% 1.10% 数据 Cache 24.61% 20.57% 15.94% 10.19% 6.47% 4.82% 3.77% 2.88% 混合 Cache 13.34% 9.78% 7.24% 4.57% 2.87% 1.99% 1.36% 0.95%
ICi :在程序中第i种指令出现的次数;
则程序执行时间为 CPU时间 = (CPIi ICi) / 时钟频率
i=1
n
CPI = (CPIi ICi) / IC = (CPIi ICi / IC)
i=1 i=1
n
n
其中:(ICi / IC)反映了第i种指令在程序中所占的 比例。
48
16 KB
32 KB 64 KB 128 KB
0.64%
0.39% 0.15% 0.02%
(3) 分离Cache平均失效率的计算:
访问指令Cache的百分比×指令Cache的失效率
+访问数据Cache的百分比×数据Cache的失效率
5.2.6 Cache性能分析
1. 失效率
2. 平均访问时间 平均访问时间=命中时间+失效率×失效开销
计算机体系结构知识点
刘飞 liu.fei.ldu@gmail.com
1.5 定量分析技术基础
1.5.3 性能设计和评测的基本原则
三条基本原则和方法: 1. 大概率事件优先的原则
对于大概率事件(最常见的事件),赋予
它优先的处理权和资源使用权,以获得全局的 最优结果。 2. Amdahl定律 加快某部件执行速度所获得的系统性能 加速比,受限于该部件在系统中所占的重要性。
(解释)
23
3.2 DLX的基本流水线
24
3.2 DLX的基本流水线
T非流水 nm△t0 S= ─── = ───────── m△t0 +(n-1)△t0 T流水 mn m = ──── = ──── 1 m+n-1 1+ m- n 可以看出:当n >> m 时,S 想一想:m 越大越好?
3.效率 E
5
1.5 定量分析技术基础
3. 程序的局部性原理
程序在执行时所访问地址的分布不是随机
的,而是相对地簇聚;这种簇聚包括指令和数
据两部分。
◆ 程序的时间局部性:程序即将用到的信息很
可能就是目前正在使用的信息。
◆ 程序的空间局部性:程序即将用到的信息很
可能与目前正在使用的信息在空间上相邻或者
临近。
应用:存储相关设计上
49
5.2 Cache 基本知识
平均访存时间公式可以分为指令访问和数据 访问两部分: 平均访存时间=指令所占的百分比× (指令命中时间+指令失效率×失效开销)+ 数据所占的百分比× (数据命中时间+数据失效率×失效开销)
50
5.2 Cache 基本知识
37
•
•超长指令字
图示I(绝对值)
38
图示Ⅱ(相对值)
39
可以看出:(用数据说话!) (1) 相联度越高,冲突失效就越少; (2) 强制性失效和容量失效不受相联度的影响;
(3) 强制性失效不受Cache容量的影响,但容
量失效却随着容量的增加而减少; (4) 表中的数据符合2:1的Cache经验规则,即 大小为N 的直接映象Cache的失效率约等于 大小为N/2 的两路组相联Cache的失效率。
i=1
n
22
3.2 DLX的基本流水线
2. 加速比S 加速比是指流水线的速度与等功能非流水 线的速度之比。
S=T非流水/T流水 (其中T流水和T非流水分别为按流水和按非流水 方式处理 n 个任务所需的时间)
若流水线为 m 段,且各段时间相等,均 为△t0 ,则:
T非流水=n m△t0 T流水=m△t0+(n-1)△t0
n 个任务占用的时空区
(解释)
27
28
3.2 DLX的基本流水线
4.流水线性能分析举例
例3.1 在静态流水线上计算 ∑ AiBi ,
i=1
4
求:吞吐率,加速比,效率。
29
3.2 DLX的基本流水线
30
3.2 DLX的基本流水线
解:(1) 确定适合于流水处理的计算过程
(2) 画时空图 (3) 计算性能 吞吐率 TP=7/(20△t)
基准程序对单字和双字的数据访问具有较高的频率。
◆ 选择操作数字段的长度为32位,可以有效支持8、16、
32位整型操作数,以及32位浮点操作数的表示。
◆ 选择操作数字段长度为64位,则更具有一般性。
3.2 DLX的基本流水线
3.2.3 流水线性能分析
1. 吞吐率 吞吐率是指单位时间内流水线所完成的任 务数或输出结果的数量。
一个与计算机体系结构有关的参数。
CPI = 总时钟周期数 / IC IC:程序执行过程中所处理的指令数。 3. 程序执行的CPU时间可以写成 总CPU时间 = CPI IC / 时钟频率
8
1.5 定量分析技术基础
4. 对CPU性能公式进行进一步细化
假设:计算机系统有n种指令;
CPIi :第i种指令的处理时间;
36
4.4 多指令流出技术性能评价
一个时钟周期内流出多条指令, CPI<1。 多指令流出处理器有三种基本结构:
•
超标量(Superscalar) 每个时钟周期流出的指令数不定,它既可 以通过编译器静态调度,也可以通过记分牌或 Tomasulo算法动态调度
超流水(Super Pipeline) 将每个功能部件进一步流水化,特别是取 指令或指令流出被分解为多个段,使得一个功 能部件在一拍中可以处理多条指令。
时空图 完成 n 个任务所需的时间
T流水=m△t0+(n-1)△t0
(说明)
17
18
完成 n 个任务所需的时间
19
3.2 DLX的基本流水线
实际吞吐率
n TP = ─── = ────────── T流水 m△t0 +(n-1)△t0 n TPmax 1 = ──────── = ───── m - 1 1 (1+ n )△t0 1+ m- n TP < TPmax
总执行时间改进后=(1-可改进比例)总执行时间改进前 +
可改进比例 总执行时间 改进前 部件加速比
可改进比例 = [ (1-可改进比例) + ]总执行时间改进前 部件加速比
4
系统加速比为改进前与改进后总执行时间之比:
系统加速比 =
总执行时间 改进前 总执行时间 改进后
=
1 (1 可改进比例 ) 可改进比例 部件加速比
44
5.3 降低Cache 失效率的方法
举例: /* 修改前 */ for (i=0; i < N; i=i+1) for (j=0; j < N; j=j+1) { r=0; for (k=0; k < N; k=k+1) { r=r+y[i][k]*z[k][j]; } x[i][j]=r; } 计算过程 失效次数:2N3+N2
43
5.3 降低Cache 失效率的方法
for (i=0 ;i<N ;i=i+1) for (j=0 ; j<N ;j=j+1) d[i][j]=a[i][j]+c[i][j]; /* 修改后 */ for (i=0 ;i < N ;i=i+1) for (j=0 ;j < N ;j=j+1) { a[i][j]=1/b[i][j]*c[i][j]; d[i][j]=a[i][j]+c[i][j]; } (4)分块 把对数组的整行或整列访问改为按块进行。
需的时间,这段就成了流水线的瓶颈。
◆ 消除瓶颈的方法
(举例) (时-空图)
细分瓶颈段 重复设置瓶颈段
14
15
重复设置瓶颈段(时-空图举例)
16
3.2 DLX的基本流水线
(2) 实际吞吐率TP 流水线的实际吞吐率小于最大吞吐率。
◆ 第一种情况:各段时间相等(设为△t0)
假设流水线由 m 段组成,完成 n 个任务。
2
(1) 加速比
系统加速比 =
系统性能改进后 系统性能改进前
=
总执行时间 改进前 总执行时间 改进后
系统加速比依赖于两个因素: 可改进比例:可改进部分在原系统计算时间中所占的 比例,它总是小于等于1的。 部件加速比:可改进部分改进以后的性能提高, 一般情况下它是大于1的 。
3
总执行时间改进后 = 不可改进部分的执行时间 + 可改进部分改进后的执行时间
40
5.3 降低Cache 失效率的方法
3. 数据对存储位置的限制比指令的少,因此
更便于优化。 通过把数据重新组织,使得在一块数 据被从Cache替换出去之前,能最大限度 利用其中的数据(访问次数最多) (1) 数组合并 举例: /* 修改前 */ int val [SIZE]; int key [SIZE];
42
5.3 降低Cache 失效率的方法
/* 修改后 */ for (i=0 ;i<5000 ;i=i+1) for (j=0 ;j< 100 ;j=j+1) x[i][j]=2*x[i][j]; (3) 循环融合 举例: /* 修改前 */ for (i=0 ; i<N ;i=i+1) for (j=0 ; j<N ; j=j+1) a[i][j]=1/b[i][j]*c[i][j];
m百度文库
0
流水
整个流水线的效率为:
n△t0 n 1 E = ─── = ──── = ───── T流水 m+n-1 1 1+ m- n
当 n >> m 时,E ≈ 1 (3) 从时-空图上看,效率实际上就是 n 个任务所
占的时空区与 m 个段总的时空区之比,即:
E =━━━━━━━━━━━━━ m 个段总的时空区
41
5.3 降低Cache 失效率的方法
/* 修改后 */ struct merge { int val ; int key ; } ; struct merge merged_array[size]; (2) 内外循环交换 举例: /* 修改前 */ for (j=0 ;j<100 ;j=j+1) for (i=0 ;i<5000 ;i=i+1) x[i][j]=2*x[i][j];
加速比 S=(34△t)/(20△t)=1.7
效率 E=(4×4+3×6)/(8×20)=0.21
31
32
33
3.2 DLX的基本流水线
34
3.2 DLX的基本流水线
可以看出,在求解此问题时,该流水线的效率
不高。
(原因)
举例Ⅰ
动态流水线的时-空图
35
3.2 DLX的基本流水线
举例 Ⅱ : 这样行不行?
≈
m
效率是指流水线的设备利用率。
(1) 由于流水线有通过时间和排空时间,所以 流水线的各段并不是一直满负荷地工作。 故:E <1
25
3.2 DLX的基本流水线
26
3.2 DLX的基本流水线
(2) 若各段时间相等,则各段的效率ei相等,即 e =e =e =…… =e =n△t /T (解释)
1 2 3