[发明专利]插入用于优化的SIMD代码的操作-和-指示指令有效
申请号: | 201080036667.7 | 申请日: | 2010-07-19 |
公开(公告)号: | CN102473104A | 公开(公告)日: | 2012-05-23 |
发明(设计)人: | A·艾兴贝格尔;A·加拉;M·格施温德 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华;陈姗姗 |
地址: | 美国纽约*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 插入 用于 优化 simd 代码 操作 指示 指令 | ||
本发明是在美国政府的支持下完成的,能源部授予的合同号为B554331。美国政府具有本发明中的某些权利。
技术领域
本申请总体上涉及一种改进的数据处理装置和方法,更特别地涉及一种用于插入用于优化的单指令流多数据流(SIMD)代码的操作-和-指示指令机制。
背景技术
多媒体扩展(MME)已经成为通用微处理器的最为流行的附加物之一。现有的多媒体扩展可以被特征化为支持打包的固定长度向量的单指令流多数据流(SIMD)路径单元。传统的用于多媒体扩展的编程模型通过使用(内嵌式)汇编或者嵌入在高级编程语言中的内部函数而一直进行显式向量化编程。显式向量编程耗时且易出错。一种有希望的选择是使用向量化技术从用标准高级语言编写的程序中自动生成SIMD代码。
尽管用于传统向量处理器的向量化在几十年前就已经被广泛研究,但是由于传统向量处理器和SIMD架构二者之间的多个基础性差别,SIMD架构的向量化已经提出了新的问题。为了区分这两种类型的向量化,后者被称为SIMD向量化、或者SIMD化。一个基础性差别来自于存储单元。典型的SIMD处理器的存储器单元与传统向量处理器的存储器单元相比,更像宽标量处理器的存储器单元。在某些PowerPC微处理器(由New York,Armonk的国际商业机器公司生产)上发现的VMX指令集中,例如,加载指令从16字节对齐的存储器中加载16字节相连的存储器,忽略指令中存储器地址的最后4位。这同样适用于存储指令。
编译器技术近来出现的兴趣点是从程序中自动提取SIMD并行性。多媒体处理器和高性能计算中的SIMD架构的日益流行激励了这一高潮。这些处理器具有多个功能单元,例如,浮点单元、定点单元、整数单元等,这些功能单元可以在同一机器周期执行多于一个指令以增强单处理器性能。这些处理器中的这些功能单元典型地是流水线化的。
在执行基于编译器的循环变换以提取SIMD并行性时,重要的是确保数组引用的安全性。也就是说,在编译用于由SIMD架构执行的源代码期间,编译器可能执行不同的优化,包括确定代码中可以被并行化以供SIMD架构执行的部分。这一并行化典型地涉及对该代码部分进行向量化、或SIMD向量化、或SIMD化。这种优化之一涉及将代码中的分支转换为预测操作以便避免流水线功能单元遭遇分支误预测惩罚。这一优化涉及通过使用比较指令建立对应于分支条件的布尔判断式来将源代码中的条件分支转换为具有预测操作的预测代码。因此,现在保护指令的判断式,根据该判断式的值或者执行该指令,或者无效(nullify)该指令,这一过程通常称为“如果-转换”(if-conversion)。
总之,通过传统的“如果-转换”生成的预测代码通过执行来自两个相互排斥的执行路径的指令来生成直线型代码,抑制对应于上述两个相互排斥的执行路径中一个路径上的指令。当这些相互排斥的执行路径中的其中一个不对应于选择的路径时,该路径会生成各种各样不期望的错误执行结果,特别是非法存储器引用,这是相当普遍的。因此,如果“如果-转换”不是用于无效与“如果-转换”一致的非选择的预测指令,特别是,不是用于经“如果-转换”的代码中的存储器引用指令,那么,“如果-转换”可能导致错误的执行。
Gschwind等人在2006年3月的IEEE Micro.的“Synergistic Processing in Cell′s Multicore Architecture(Cell的多核架构中的协同处理)”一文中提出了数据并行“如果-转换”的概念,这正被日益广泛地用于数据并行SIMD架构的编译。不同于传统的标量“如果-转换”,数据并行“如果-转换”通常瞄准大部分SIMD架构支持的具有数据并行选择的代码生成,这在和本申请共同未决且共同受让的、Gschwind等人的申请日为2006年8月4日、名称为“Method and Apparatus for Generating Data Parallel Select Operations in a Pervasively Data Parallel System(用于在常见数据并行系统中生成数据并行选择操作的方法和装置)”的美国专利申请公开号US20080034357A1中进行了描述,因为数据并行SIMD架构通常不提供预测执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080036667.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:变速恒频发电机的控制方法
- 下一篇:在钎焊的制品上形成氧化物层的方法