当前位置: 首页 > 专利查询>英特尔公司专利>正文

利用指针来再排序指令的方法和装置制造方法及图纸

技术编号:2952575 阅读:192 留言:0更新日期:2012-04-11 18:40
实施例包括在原始顺序的存储器中的地址处存储图形指令,并在存储器中存储与指向原始顺序的指令地址的每个指令相关的指针。与第一图形指令相关的第一指针可以接着从指向第一图形指令的第一地址,被移动到指向第二图形指令的第二地址。同样的,通过在移动第一指针之前访问第一指针,与第二图形指令相关的第二指针可以接着从指向第二地址被移动到指向第一地址,以确定第二指针是指向第一地址的(例如,在被移动之前的第一指令指向的地址)。然后,通过根据指针来转换它们到不同的地址,指令可以被再排序为优化的顺序,以用于编译。

【技术实现步骤摘要】

本领域通常涉及在应用程序执行期间的实时编译图形着色器指令。
技术介绍
计算机图形硬件的一个重要的测试是编程的执行速度。例如,如果图形硬件不能执行部分应用程序以实时显示更新的视频或图像,则会影响显示质量,例如不显得平滑以及要求观测器。特别地,在图像或视频数据的当前帧中出现的对象的运动可以具有适当的形状、颜色,或者可以具有到随后帧的“跳动”转换。尽管各种因素都会影响程序的执行速度,但是一个最重要的因素是由图形着色器的实时(JIT)编译器提供的执行最优化水平。图形“着色器”可以被描述为图形着色器代码、指令、程序和/或软件的次序、序列、顺序、区域和/或部分。在很多情况中,可以获得的最优化水平很大程度上是由在编译前的物理存储器中的着色器代码指令的存储器布局确定的。在许多存储器布局中,在编译之前,指令的原始顺序按次序布局,在单个树结构中,和/或在“n元树数据结构”中。然而,这些布局不必提供JIT编译器的最有效顺序来将着色器代码编译为机器可执行代码。因此,希望可以从原始顺序(例如,在程序或应用程序中指令的顺序或次序)到更有效编译的再排序顺序来再排序着色器代码指令,同时减少执行这种再排序所要求的存储器的数量。附图说明从以下详细的说明、一组权利要求和相应的附图,各种特征、方面和优点会变得更加明显,其中附图1是利用着色器来显示图形对象的过程的流程图。附图2是利用指针来再排序和编译图形着色器代码指令的过程的流程图。附图3是利用指针来再排序图形着色器代码指令的第一个例子。附图4示出了利用指针来再排序图形着色器代码指令的第二个例子。附图5是利用指针来再排序和编译着色器代码指令的系统。附图6是简化的存储器着色器代码编译器。具体实施例方式这里的描述包括一种利用指针来从原始顺序到再排序顺序再排序图形着色器代码指令的方法和存储器布局,以便编译器可以快速和有效地编译再排序指令为中间语言或机器语言代码。例如,附图1是利用着色器来显示图形对象的过程的流程图。附图1示出了利用着色器代码来显示应用程序的图形对象的过程100。在框110,加载具有可执行代码和着色器代码的应用程序,例如通过操作系统将应用程序存储在计算机设备的存储器中。设想的计算设备包括个人计算机(PC)、桌面计算机、计算系统、便携式计算设备、手持计算设备、电话、蜂窝电话、游戏设备、相关计算设备的互联网、服务器、数字视频磁盘(DVD)播放器、置顶盒、以及视频存储器和编辑设备。在某些情况中,计算机设备可以具有连接到处理器的主存储器、由处理器执行的操作系统,以及存储编译的着色器代码的指令在寄存器中以在监视器或屏幕上显示应用程序的对象的图形电路。设想的具有着色器代码的应用程序包括具有一个或多个图形着色器的那些着色器代码;或着色器代码的部分,或区域。每个着色器可以包括着色器代码、着色器代码指令和/或着色器指令,例如在高级语言、文本或其它在工业中已知的着色器语言或协议中。着色器代码提供如何在监视器或屏幕上显示图形对象、形状、图元的形状、颜色、阴影等的“规则”或信息。例如,应用程序可以是游戏或其它软件程序或应用程序,它们具有随时间要在计算机屏幕或监视器上显示的图形对象以显得平滑,且吸引用户去查看那些图形。图形“对象”可以是部分的、全部的、或者包括图形、形状、颜色、底纹、帧、阴影、图元等。应用程序可以具有能够在许多操作系统上执行或运行的可执行代码(例如,以机器语言),例如发送对象、形状、颜色等到图形驱动器、操作系统和/或要在监视器上显示的图形电路。应用程序还可以包括着色器代码,例如除了应用程序执行或运行的计算设备的图形电路之外的图形电路所特有的高级语言。这种着色器代码,或者包括这种着色器代码的应用程序,可以被描述为第三方代码或应用程序。在框120,执行应用程序的可执行代码。例如,其中加载了应用程序的计算设备的处理器可以执行那个应用程序的可执行代码部分。可执行代码部分可以包括用于显示对象、形状或图元的信息。在框130,图形对象和显示图形对象的着色器代码被发送到图形驱动器,例如作为计算设备的操作系统的一部分的驱动器。框130可以包括发送图形对象和用于显示该对象的图形着色器(或图形着色器代码)的处理器或操作系统(例如,根据框120的可执行代码)。图形对象和着色器代码可以与识别用于绘制该对象的着色器代码的消息和信息一起发送。这种图形驱动器的一个例子是通过加利福尼亚的Cupertino的Inter公司的Extreme Graphics Drive。在判定框140中,确定转换表是否相对代码中的着色器而存在。例如,框140可能包括图形驱动器或操作系统,其确定转换表是否已经事先被存储在主存储器中,以便转换着色器代码到编译的代码。同样,框140可以包括存储由以下相对于框160和170而描述的过程而产生的表。如果框140确定转换表不存在,则过程继续到框160。在框160,着色器代码利用指针被再排序并被编译为编译的代码。指针可以是位置指针,例如指向在存储器中地址的指针,和/或指向着色器或着色器指令次序、序列、顺序、区域,和/或部分的位置的指针。同样,指针可以是识别或包含存储器中位置的地址的变量,例如哪个位置是分配的对象或分配的数据的开始点,例如对象、值类型、位或字节长度、或阵列的元素。变量可以是符号或代表值的名字,例如数值、字符、字符串、虚拟存储地址或物理硬件存储器地址。在某些情况中,指针可以指向数据结构,例如能够以简单阵列或顺序存储例如在存储器中的数据结构,且该数据结构能够被递增、更新或变化,而不改变在其阵列或序列中的指针的位置。更新指针可以包括在现有的值上执行算术操作、创建新值,或者以新的值代替当前的或旧的值。框160可以包括如这里所描述的利用软件、操作系统代码、数据结构、转换代码、存储器、指针、再排序算法、图形驱动器、编译器以及实时编译器,例如以下附图2-6所描述的。例如,着色器是以特定顺序的着色器来指令的序列。指令的原始顺序可以根据一算法来再排序,例如根据“Linear Scan Registration Allocation”,计算机科学实验室的Massimiliano Poletto,国际商用机器公司(IBM)的密歇根州技术学院(MIT)Vivek Sakar的Thomas J.华盛顿研究中心,ACM Transactions on Programming Language andSystems(TOPLAS),第21卷,1999年9月提交的,第895到913页,ISSN0164-0925(这里“MIT算法”)。再排序指令之后,着色器代码指令的再排序顺序或次序可以被编译,例如在显示该对象之前,通过实时(JIT)编译为由计算设备的图形电路执行的编译代码。例如,着色器代码可以是在通过实时(JIT)编译器编译为由例如图形芯片、图形卡、图形处理单元(GPU)等执行的图形硬件机器语言之前,被再排序为优化的或更有效顺序的着色器指令。编译的代码可以使用一种图形电路特定的语言(例如,机器语言,图形电路能够执行),同时未编译的着色器代码对于图形电路不是特定的或自然的(例如,不同图形电路的语言,或者当前图形电路例如在不用编译的情况下不能执行的语言)。同样要考虑的是,指令可以是着色器指令和/或图形程序的其本文档来自技高网...

【技术保护点】
一种方法,包括:在存储器中存储多个地址上的多个指令;在存储器中存储指向该多个地址的多个指针,每个指针与一指令相关;从指向第一地址到指向第二指令的第二地址,移动与第一指令相关的第一指针;从指向第二地址到指向第一 地址,移动与第二指令相关的第二指针,其中移动第二指针包括在移动第一指针之前访问第一指针,以确定第二指针是指向第一地址的。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:S斯瓦米O海姆
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利