对用于图形处理单元的具有相关联的纹理加载指令的控制流指令的判定制造技术

技术编号:10478230 阅读:106 留言:0更新日期:2014-09-25 16:25
本发明专利技术的各方面涉及一种编译高级软件指令以产生低级软件指令的方法。在一实例中,所述方法包含使用计算装置识别具有一或多个相关联的纹理加载指令的一组高级HL控制流CF指令,其中所述组HL CF指令包括一或多个分支。所述方法还包含使用所述计算装置将所述组所识别的HL CF指令转换为具有判定结构的低级LL指令。所述方法还包含输出具有所述判定结构的所述经转换的LL指令。

【技术实现步骤摘要】
【国外来华专利技术】对用于图形处理单元的具有相关联的纹理加载指令的控制 流指令的判定 本申请案主张2012年1月20日申请的第61/589,072号美国临时专利申请案的 优先权,所述申请案的全部内容以全文引用的方式并入本文中。
本专利技术涉及计算装置,且更特定来说,涉及图形处理装置。
技术介绍
编译器是从例如根据各种所谓的1?级计算机编程语目(例如,C、C++、Java、Basic 等)界定的高级软件指令产生例如由各种机器或汇编计算机编程语言界定的低级软件指 令的计算机程序。计算机程序员通常使用高级软件指令界定计算机程序且调用编译器来产 生低级软件指令。所述低级软件指令对应于可由支持低级软件指令的执行的任何给定计算 装置执行的高级软件指令。以此方式,所述编译器编译所述高级软件指令以产生低级软件 指令,使得任何给定计算装置可执行由计算机程序员使用根据高级编程语言界定的软件指 令而界定的计算机程序。
技术实现思路
一股来说,本专利技术描述用于有效地编译包含一或多个纹理加载指令的一组控制流 指令的技术。短语控制流 一股是指根据高级编程语言而界定的一组指令,所述高级编程 语言针对于控制基于一些有条件语句而形成计算机程序的高级软件指令的执行流。也就是 说,例如,一组控制流指令的执行可导致关于应执行高级软件指令的两个或更多分支中的 何者作出选择。纹理加载指令一股是指在被执行时致使将纹理加载到图形处理单元(GPU) 的本地存储器的指令。举例来说,执行纹理加载指令可致使将纹理(例如,图像数据)从在 外部的存储器传递到GPU的本地存储器。 本专利技术的技术包含将包含纹理加载指令的一组控制流(CF)指令转换为具有判定 结构的一或多个指令。具有判定结构的指令可被串行地执行(例如,不具有分支)。通常, 将CF语句转换为具有判定结构的指令可包含移除分支及执行每一分支的所有指令。根据 本专利技术的技术,然而,可以一种方式将具有一或多个相关联的纹理加载指令的一组CF指令 转换为判定结构,使得不需要执行与每一分支相关联的所有纹理加载指令。以此方式,所述 技术可提供对包含纹理加载指令的CF语句的有效转换。 在一实例中,本专利技术的各方面针对于一种编译高级软件指令以产生低级软件指令 的方法。所述方法包含使用计算装置识别具有一或多个相关联的纹理加载指令的一组高级 (HL)控制流(CF)指令,其中所述组HL CF指令包括一或多个分支;使用所述计算装置将所 述组所识别的HLCF指令转换为具有判定结构的低级(LL)指令;及输出具有所述判定结构 的所述经转换的(LL)指令。 在另一实例中,本专利技术的各方面针对于一种用于编译高级软件指令以产生低级软 件指令的设备,所述设备包括一或多个处理单元,所述一或多个处理单元经配置以:识别具 有一或多个相关联的纹理加载指令的一组高级(HL)控制流(CF)指令,其中所述组HLCF指 令包括一或多个分支;将所述组所识别的HL CF指令转换为具有判定结构的低级(LL)指 令;及输出具有所述判定结构的所述经转换的(LL)指令。 在另一实例中,本专利技术的各方面针对于一种用于编译高级软件指令以产生低级软 件指令的计算机程序产品,所述计算机程序产品存储指令,所述指令在被执行时致使一或 多个处理器:识别具有一或多个相关联的纹理加载指令的一组高级(HL)控制流(CF)指令, 其中所述组HL CF指令包括一或多个分支;将所述组所识别的HL CF指令转换为具有判定结 构的低级(LL)指令;及输出具有所述判定结构的所述经转换的(LL)指令。 在另一实例中,本专利技术的各方面针对于一种用于编译高级软件指令以产生低级软 件指令的设备,所述设备包括:用于识别具有一或多个相关联的纹理加载指令的一组高级 (HL)控制流(CF)指令的装置,其中所述组HL CF指令包括一或多个分支;用于将所述组所 识别的HLCF指令转换为具有判定结构的低级(LL)指令的装置;及用于输出具有所述判定 结构的所述经转换的(LL)指令的装置。 一或多个实例的细节陈述于附图及以下描述中。其它特征、目标及优势将从描述 及附图和从权利要求书中显而易见。 【附图说明】 图1是说明可实施本专利技术中所描述的技术的开发系统的框图。 图2是说明可实施本专利技术中所描述的技术的计算装置的框图。 图3说明实例性伪码,其包含已在没有判定转换的情况下以及在具有判定转换的 情况下编译的控制流指令的实例性伪码。 图4说明实例性伪码,其包含具有纹理加载的控制流指令,所述指令以传统的判 定转换进行编译。 图5说明实例性伪码,其包含已根据本专利技术的技术进行转换的具有纹理加载的控 制流指令。 图6是说明在实施本专利技术中所描述的技术的各方面中的编译器的实例性操作的 流程图。 【具体实施方式】 一股来说,本专利技术描述用于有效地编译包含一或多个纹理加载指令的控制流语句 的技术。短语控制流一股是指根据高级(HL)编程语言而界定的一组指令,所述高级编 程语言针对于控制基于一些有条件声明而形成计算机程序的HL软件指令的执行流。也就 是说,控制流(CF)语句的执行可导致关于应执行HL软件指令的两个或更多分支中的何者 作出选择。在一些例子中,CF语句还可被称作流控制语句,或有条件流控制语句。 举例来说,一组HL CF语句一股涉及 if 指令继之以有条件语句的使用。此有条 件语句通常使用布尔操作符被界定为布尔语句。一个实例性有条件语句可涉及布尔比较以 确定变量的当前值是否大于给定值,其可表达为X > 10,其中在此语句中,所述变量被表 示为X,其中大于操作符被界定为符号'>'。此语句是布尔值,原因在于其返回真(其通 常被界定为一)或假(其通常被界定为零)的布尔值。在此if指令之后的是一或多 个额外指令。如果有条件语句是真,那么执行额外指令。如果有条件语句是假,那么跳过或 不执行额外指令,且执行流在额外指令之后重新开始。 其它类型的HL CF指令集包含使用if指令继之以else指令而界定的指令集 (通常被称为if-elseCF指令)、使用操作符:?而界定的指令集,以及使用多个if 语句而界定的指令集(通常被称作 if-if CFC指令)。 纹理加载指令一股是指在被执行时致使将纹理加载到本地存储器(例如,计算装 置(例如图形处理单元(GPU))的本地存储器)的指令。纹理一股是指含有全部具有相同 格式的一或多个图像的对象(例如,具有特定大小和特定格式的某一维度的像素的阵列)。 也就是说,例如,纹理可为给予对象纹理外观的像素色彩的位图。在GPU中,执行纹理加载 指令可致使将纹理(例如,图像数据)从外部存储器传递到GPU的本地存储器。所述外部 存储器可相对于GPU是芯片外的,且可经由系统总线进行存取。在一些例子中,如下文更详 细地描述,相对长的等待时间可与此数据传递相关联。举例来说,将数据从外部存储器传递 到本地存储器可消耗相对大量的时钟循环。 本专利技术的技术包含将包含纹理加载指令的控制流(CF)语句转换为具有判定结构 的一或多个指令。举例来说,本专利技术的技术可包含将包含纹理加载指令的IFCF语句转 换为具有判定结构的一或多个指令。判定执行支持提供从指令流消除分本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201280067461.html" title="对用于图形处理单元的具有相关联的纹理加载指令的控制流指令的判定原文来自X技术">对用于图形处理单元的具有相关联的纹理加载指令的控制流指令的判定</a>

【技术保护点】
一种编译高级软件指令以产生低级软件指令的方法,所述方法包括:使用计算装置识别具有一或多个相关联的纹理加载指令的一组高级HL控制流CF指令,其中所述组HL CF指令包括一或多个分支;使用所述计算装置将所述组所识别的HL CF指令转换为具有判定结构的低级LL指令;及输出具有所述判定结构的所述经转换的LL指令。

【技术特征摘要】
【国外来华专利技术】2012.01.20 US 61/589,072;2012.03.07 US 13/414,4021. 一种编译高级软件指令以产生低级软件指令的方法,所述方法包括: 使用计算装置识别具有一或多个相关联的纹理加载指令的一组高级HL控制流CF指 令,其中所述组HL CF指令包括一或多个分支; 使用所述计算装置将所述组所识别的HL CF指令转换为具有判定结构的低级LL指令; 及 输出具有所述判定结构的所述经转换的LL指令。2. 根据权利要求1所述的方法,其中所述一或多个纹理加载指令的执行致使将图像数 据传递到图形处理单元的本地存储器。3. 根据权利要求1所述的方法,其中转换所述HL CF指令包括移除所述一或多个分支 以允许所述经转换的低级指令的无条件串行执行。4. 根据权利要求1所述的方法,其中识别所述组HL CF指令包括识别所述一或多个相 关联的纹理加载指令是否关于所述组HL CF指令对称,且进一步包括在所述一或多个相关 联的纹理加载指令不对称的情况下制止转换所述组所识别的HL CF指令。5. 根据权利要求1所述的方法,其中转换所述组所识别的HL CF指令包括产生一组LL 指令,其中所述组LL指令的执行致使将地址指派给选择语句的结果且从所述所指派的地 址加载纹理。6. 根据权利要求1所述的方法,其中识别所述组HLCF指令包括识别具有条件的 IF-ELSE语句,其中如果所述条件是真,那么所述组HL CF指令致使从第一存储器地址加载 纹理,且如果所述条件是假,那么所述组HL CF指令致使从第二存储器地址加载所述纹理。7. 根据权利要求6所述的方法,其中转换所述组HL CF指令包括产生一组LL指令,其 中所述组LL指令致使基于所述条件的结果而保留地址且从所述所保留的地址加载所述纹 理。8. 根据权利要求1所述的方法,其中输出所述经转换的LL指令包括将所述经转换的 LL指令存储到存储器。9. 根据权利要求1所述的方法,其中转换所述HL指令包括对所述HL指令进行运行时 间编译以产生所述LL指令,且进一步包括在图形处理单元上执行所述所输出的LL指令。10. 根据权利要求9所述的方法,其中执行所述所输出的LL指令包括调度所述经编译 的指令以在所述HL CF指令的条件和所述所输出的LL指令的坐标不相依的指令之前执行。11. 一种用于编译高级软件指令以产生低级软件指令的设备,所述设备包括一或多个 处理单元,所述一或多个处理单元经配置以: 识别具有一或多个相关联的纹理加载指令的一组高级HL控制流CF指令,其中所述组 HL CF指令包括一或多个分支; 将所述组所识别的HL CF指令转换为具有判定结构的低级LL指令;及 输出具有所述判定结构的所述经转换的LL指令。12. 根据权利要求11所述的设备,其进一步包括本地存储器,其中所述一或多个纹理 加载指令的执行致使将图像数据传递到所述设备的本地存储器。13. 根据权利要求11所述的设备,其中为了转换所述HL CF指令,所述一或多个处理器 经配置以移除所述一或多个分支以允许所述经转换的低级指令的无条件串行执行。14. 根据权利要求11所述的设备,其中为了识别所述组HL CF指令,所述一或多个处理 器经配置以识别所述一或多个相关联的纹理加载指令是否关于所述组HL CF指令对称,且 进一步经配置以在所述一或多个相关联的纹理加载指令不对称的情况下制止转换所述组 所识别的HLCF指令。15. 根据权利要求11所述的设备,其中为了转换所述组所识别的HL CF指令,所述一或 多个处理器经配置以产生一组LL指令,其中所述组LL指令的执行致使将地址指派给选择 语句的结果且从所述所指派的地址加载纹理。16. 根据权利要求11所述的设备,其中为了识别所述组HLCF指令,所述一或多个处理 器经配置以识别具有条件的IF-ELSE语句,其中如果所述条件是真,那么所述组HL CF指令 致使从第一存储器地址加载纹理,且如果所述条件是假,那么所述组HL CF指令致使从第二 存储器地址加载所述纹理。17. 根据权利要求16所述的设备,其中为了转换所述组HL CF指令,所述一或多个处理 器经配置以产生一组LL指令,其中所述组LL指令致使基于所述条件的结果而保留地址且 从所述所保留的地址加载所述纹理。18. 根据权利要求11所述的设备,其中为了输出所述经转换的LL指令,所述一或多个 处理器经配置以将所述经转换的LL指令存储到存储器。19. 根据权利要求11所述的设备,其中为了转换所述HL指令,所述一或多个处理器经 配置以对所述HL指令进行运行时间编译以产生所述LL指令,且进一步包括执行所述所输 出的LL指令。20. 根据权利要求19所述的设备,其中为了执行所述所输出的LL指令,所述一或多...

【专利技术属性】
技术研发人员:伟峰·张张弛红
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1