《【大学课件】EPIC的特性及其发展应用》由会员分享,可在线阅读,更多相关《【大学课件】EPIC的特性及其发展应用(23页珍藏版)》请在金锄头文库上搜索。
1、EPIC的特性及其发展应用http:/ Parallel Explicitly Parallel Instruction Computing Instruction Computing )中文称为显示并行指令计)中文称为显示并行指令计算。本文介绍其主要特性:显示并行,断定执行算。本文介绍其主要特性:显示并行,断定执行(Predicated executionPredicated execution),捆绑分支(),捆绑分支(Unbundled Unbundled branchbranch),控制推测(),控制推测(control speculationcontrol speculation),
2、 ,数据数据预测(预测(data speculationdata speculation)。另外还介绍了其与其他)。另外还介绍了其与其他ILPILP架构的区别以及一些基本实际应用。架构的区别以及一些基本实际应用。http:/ ILPILP初步应用于一些超级计算机初步应用于一些超级计算机7070年代年代 发展陷入困境发展陷入困境8080,9090年代年代 Alan Carlesworth, Josh Fisher, Bob Alan Carlesworth, Josh Fisher, Bob Rau Rau 开始带领研究开始带领研究VLIW(very long instruction VLIW(
3、very long instruction word)word)与此同时,一些公司也在不断地研究与之相类似的与此同时,一些公司也在不断地研究与之相类似的技术,技术,“ “superscalar” superscalar” 。19891989年,年,IntelIntel推出首台推出首台superscalarsuperscalar微处理器。微处理器。19931993年年IntelIntel推出推出 superscalar Pentium. superscalar Pentium. 到了到了9090年代中期,我们使用年代中期,我们使用的的AMDAMD或或IntelIntel处理器均使用了这项技术。处
4、理器均使用了这项技术。http:/ Architecture and Software Technologies)研究计划。1994年6月,HP与Intel建立合作关系。HP使用了EPIC来形容他们预想的设计思想与结构类型,这种特定的指令集架构被命名为“IA-64”。而Intel将其命名为IPF(Itanium Processor Family)http:/ execution)捆绑分支(捆绑分支(Unbundled branch)控制推测(控制推测(Control speculation)数据预测(数据预测(data speculation) http:/ 所有指令都将被包含在所有指令都将被
5、包含在128128位的位的bundlebundle中中 0-40-4位为一个位为一个5 5位的位的template, template, 定义了指令的类型和任何定义了指令的类型和任何Instruction GroupsInstruction Groups之间的暂停之间的暂停 Instruction GroupsInstruction Groups是一组无是一组无“ “写后读写后读” ”或者或者“ “写后写写后写” ”相关,相关,并且可以并行的指令的集合并且可以并行的指令的集合 http:/ execution)断定执行就是指基于布尔操作数的操作的条件执行断定执行就是指基于布尔操作数的操作的条件
6、执行 每条指令断定为每条指令断定为truetrue值或值或falsefalse值值将为将为truetrue和和falsefalse的的指令并行执行。当判断结果出来并行执行。当判断结果出来时,再将时,再将断定错误的指令删除。删除。IPF提供了64个断定寄存器。每个断定寄存器可保存一位(true 或false)。其值由比较指令决定。分支指令使用一对存有相反结果的断定寄存器。http:/ branch) EPIC的捆绑分支有三个操作: (1)一个比较,决定是否跳转 (2)计算并提供目的地址 (3)执行。http:/ 将耗时复杂的工作提前完成, 执行不需要太多时间,使得延迟降低。http:/ spec
7、ulation) 此时,ld后将出现数据相关,造成指令执行有暂停,并行度降低 。 Ld r1, r2 Sub r3, r1,3更早启动load(或者其他可能运行时间很长的指令)指令,把他们向上移动至分支指令选出一条可能的路径(包含跳转 ) http:/ speculation) 为了能够重新安排为了能够重新安排loadload和和storestore指令,编译器必须知指令,编译器必须知道指令所指的内存地址。由于存在别名,编译器在道指令所指的内存地址。由于存在别名,编译器在编译的时候不能总是做到这一点。编译的时候不能总是做到这一点。 数据预测的数据预测的loadload被分为两部分操作:数据预测
8、被分为两部分操作:数据预测loadload(LDSLDS),数据检查(),数据检查(verifyverify)loadload(LDVLDV)。)。两个操作指向相同的内存地址和目标寄存器。当第两个操作指向相同的内存地址和目标寄存器。当第二个操作确定了正确的最终结果时,第一个操作才二个操作确定了正确的最终结果时,第一个操作才启动启动loadload。http:/ height = 9 Schedule height = 5 http:/ ILPILP执行的三大主要任务:执行的三大主要任务:执行的三大主要任务:执行的三大主要任务:(1 1)检查指令间的相关,决定并行时那些指令,)检查指令间的相关,决定并行时那些指令,可组在一起。可组在一起。(2 2)分配指令到硬件上的功能单元)分配指令到硬件上的功能单元(3 3)决定指令什么时候初始化)决定指令什么时候初始化ILPILP架构共有四种:架构共有四种:SuperscalarSuperscalarEPICEPICDynamic VLIWDynamic VLIWVLIWVLIWhttp:/ 指令的预取、译码、调用、分支处理 执行单元,寄存器 内存读取延迟 软件、硬件代价 http:/ IA-64 惠普X86-64 AMDhttp:/ Thank you !http:/