- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
标志寄存器.ppt
1
第2章 Intel IA-32/Intel 64处理器结构与原理
2
衡量CPU的性能指标可以是单位时间CPU完成的指令数,其计算公式如下:
CPU性能 = CPU的主频×IPC
也可用CPU完成应用程序所需的总时间。其计算公式如下::
IPC:每时钟执行的指令条数。
CPI:每指令平均时钟数
思考:根据公式要提高CPU性能,可采用什么办法?
2.1 提高处理器的性能
2.1.1 问题的分析
3
如何提高主频:
要提高主频→减少每个流水级的执行周期→减小每个流水级的任务量→将任务再分解→增加流水线深度
IA-32的流水线级数
型号
Pentium
P6架构
Pentium 4
Core
Nehalem
流水级数
5
12-13
20~31
14
16
主频MHz
66
200
2000~3600
2667
思考:流水线级数变多后,有没有副作用?
4
思考:从图上可以得到哪些结论?
5
如果各指令之间不存在相关性,那么它们在流水线中是可以并行执行的,这种指令间潜在的重叠就是指令级并行(Thread-Level Parallelism, ILP)。
1.指令间的相关性
(1)结构相关
所谓结构相关(也称为名相关)是指不同指令同时存取相同的寄存器或存储器,但这些指令间不存在数据流。
在冯·诺依曼存储结构中,数据和程序放在同一存储器,如果此时一条指令要读或写数据,而刚好取指单元要取指令,就出现结构相关
2.1.2 提高处理器指令级并行性的技术
6
1.指令间的相关性
(2)数据相关
某条指令的操作数依赖前一条或前几条指令的运行结果,这就是所谓的数据相关。
① 写后读相关(RAW,Read After Write)
A=B+C
D=3*A // 在数据A上写后读
② 读后写相关(WAR,Write After Read)
A=B+C
B=D*2 // 在数据B上读后写
② 写后写相关(WAW,Write After Write)
A=B+C
A=D*2 // 在数据A上写后写
思考:C语言里的 i+=2 包含了哪些数据相关?
7
1.指令间的相关性
(3)控制相关
控制相关可以看作是对指令指针寄存器的RAW相关问题。
取指阶段需要读指令指针寄存器,而分支语句会在执行阶段计算出新的转移地址写入指令指针寄存器,于是当分支条件满足的时候,就出现下条指令读指令指针寄存器(取指阶段)早于分支语句写该寄存器(执行阶段)的情况。
8
2.超标量技术
所谓超标量是指处理器中含有多条流水线,每个时钟能够译码、发射、执行多条指令。显然,超标量技术提高了处理器的IPC,也进而减少了理想流水线CPI。在超标量流水线中,并行执行的流水线条数称为超标度。从Pentium到Ivy Bridge处理器的超标度为2~4。
IF
ID
OF
EX
WB
IF
ID
OF
EX
WB
WB
EX
OF
ID
IF
I1
I2
I3
I4
I5
I6
I7
I8
I9
IF
ID
OF
EX
WB
IF
ID
OF
EX
WB
IF
ID
OF
EX
WB
IF
ID
OF
EX
WB
IF
ID
OF
EX
WB
IF
ID
OF
EX
WB
思考:超标度为几?
9
3. 动态执行技术的使用(P6架构开始)
A=B+C
P=A*2
Q=D-E
非乱序执行演示
乱序执行演示
R=F-7
A=B+C
P=A*2
Q=D-E
R=F-7
乱序可解决什么问题?
执行方向
执行方向
乱序执行技术
为了提高指令流的执行效率,乱序执行核心分析多条指令的数据相关性和资源可用性,然后在不损失数据完整性的前提下,采用能充分发挥多个处理部件并行工作的指令顺序来执行。这个指令顺序可能和原始程序的不一样。
10
3. 动态执行技术的使用(P6架构开始)
分支预测
预测分支未来的方向,为处理器预先译码分支之后的指令提供依据
静态分支预测
预测无条件转移指令发生分支
预测向前分支的条件转移指令不发生转移
预测向后分支的条件转移指令发生转移
动态分支预测
使用分支目标缓冲器BTB记录分支转移历史信息
BTB中缓存了先前执行过的分支语句的指令地址BIA,分支跳转的目的地址BTA,以及分支历史记录
取指时,同时检索L1 Cache和BTB
如最终分支结果与预测相符,则避免了流水线的停顿
如最终分支结果与预测不符合,那么将刷新BTB的有关记录,并进行分支误预测的恢复操作
11
3. 动态执行技术的使用(P6架构开始)
推测执行
在分支预测基础上,推测分支路径,并按推测执行。
一旦证实分支预测正确,已提前建立的“预测结果”立即变成“最终结果”并及时修改机器的
文档评论(0)