【技术实现步骤摘要】
【国外来华专利技术】别名化缓冲区背景1.背景和相关技术计算机系统及相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。现在,计算机系统通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排、帐目管理等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统及其他电子设备可在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境中。一些运行时环境使用缓冲区别名化(aliasing)来提供编程抽象。缓冲区别名化将一个或多个物理缓冲区抽象成逻辑缓冲区,所述逻辑缓冲区每个都表示底层物理缓冲区的子集。缓冲区别名化使得程序员能够开发出算法,而不必关心作为(例如输入或输出)参数传递给算法的缓冲区是属于不同物理缓冲区还是相同物理缓冲区。然而,其他运行时环境不允许单独定义的缓冲区之间的运行时缓冲区别名化。在这些环境中,缓冲区访问是通过引用底层物理缓冲区来进行的。另外,情况可能是,为一个运行时环境开发的软件的部分最终是在不同的软件环境中执行的,比如例如在具有不同类型的处理器的多处理器环境中执行。因此,包括缓冲区别名化指令的代码的一部分可以被开发以供在支持缓冲区别名化的第一运行时环境(例如通用中央处理单元“CPU”)中执行。然而在运行时,代码的该部分可能例如被分配给不允许缓冲区别名化的不同的第二运行时环境(例如图形处理单元(“GPU”))。第二运行时环境不知道如何执行缓冲区别名化指令。因此,在遇到缓冲区别名化指令时,第二运行时环境可能导致代码的该部分停止按预期工作并且可能导致异常 ...
【技术保护点】
在包括多个处理器和系统存储器的计算机系统处的一种用于将缓冲区别名化的方法,所述多个处理器包括第一处理器类型和不同的第二处理器类型,针对不同的第二处理器类型的运行时环境阻止物理数据缓冲区的别名化,该方法包括:访问程序的动作,所述程序包括编程语言的源代码,所述源代码被配置为用于在第一处理器类型和不同的第二处理器类型上的混合执行,所述源代码定义物理缓冲区,所述源代码还包括用于通过多个逻辑视图在逻辑上访问所述物理缓冲区的指令,每个逻辑视图都对应于所述物理缓冲区中的数据的子集,所述源代码的至少一部分是以不同的第二处理器类型为目标的;将所述源代码的至少一部分转换成针对不同的第二处理器类型的第二代码的动作,第二代码定义所述逻辑缓冲区访问与所述物理缓冲区之间的间接等级;将第二代码的执行配置在不同的第二处理器类型的运行时环境内以使用所定义的间接等级将逻辑缓冲区访问绑定到物理缓冲区的动作;以及使用所定义的间接等级来在第二代码的执行期间将所述逻辑缓冲区访问绑定到所述物理缓冲区的动作。
【技术特征摘要】
【国外来华专利技术】2011.06.14 US 13/160,3731.在包括多个处理器和系统存储器的计算机系统处的一种用于将缓冲区别名化的方法,所述多个处理器包括第一处理器类型和不同的第二处理器类型,针对不同的第二处理器类型的运行时环境阻止物理数据缓冲区的别名化,该方法包括: 访问程序的动作,所述程序包括编程语言的源代码,所述源代码被配置为用于在第一处理器类型和不同的第二处理器类型上的混合执行,所述源代码定义物理缓冲区,所述源代码还包括用于通过多个逻辑视图在逻辑上访问所述物理缓冲区的指令,每个逻辑视图都对应于所述物理缓冲区中的数据的子集,所述源代码的至少一部分是以不同的第二处理器类型为目标的; 将所述源代码的至少一部分转换成针对不同的第二处理器类型的第二代码的动作,第二代码定义所述逻辑缓冲区访问与所述物理缓冲区之间的间接等级; 将第二代码的执行配置在不同的第二处理器类型的运行时环境内以使用所定义的间接等级将逻辑缓冲区访问绑定到物理缓冲区的动作;以及 使用所定义的间接等级来在第二代码的执行期间将所述逻辑缓冲区访问绑定到所述物理缓冲区的动作。2.如权利要求1所述的方法,其特征在于,访问程序的动作包括访问C++程序的动作,所述C++是针对并行环境扩展的。3.如权利要求1所述的方法,其特征在于,访问程序的动作包括访问如下程序的动作:所述程序被配置为用于在中央处理单元(“CPU”)运行时和图形处理单元(“GPU”)运行时中的混合执行。4.如权利要求1所述的方法,其特征在于,访问程序的动作包括访问包括用于在逻辑上访问下列各项之一的指令的程序的动作:随机存取存储器(“RAM”)和盘上的虚拟存储器。5.如权利要求1所述的方法,其特征在于,将所述源代码的至少一部分转换成针对不同的第二处理器类型的第二代码的动作包括将所述源的至少一部分转换成用于在图形处理单元(“GPU”)上执行的高级着色器语言(“HLSL”)代码的动作。6.如权利要求1所述的方法,其特征在于,还包括: 分析第二代码以创建针对并行环境阵列缓冲区扩展的C++与相应的高级着色器语言(“HLSL”)缓冲区变量之间的映射的动作;并且其中 使用所定义的间接等级来将所述逻辑缓冲区访问绑定到所述物理缓冲区的动作包括使用所述映射来将所述逻辑缓冲区访问绑定到所述物理缓冲区访问的动作。7.如权利要求1所述的方法,其特征在于,将源代码的至少一部分转换成针对不同的第二处理器类型的第二代码的动作,其中第二代码定义所述逻辑缓冲区访问与所述物理缓冲区之间的间接等级,包括转换源代码的所述至少一部分以使用动态标签来实现所述逻辑缓冲区访问与所述物理缓冲区之间的间接等级的动作。8.如权利要求7所述的方法,其特征在于,在第二代码的执行期间使用所定义的间接等级来将所述逻辑缓冲区访问绑定到所述物理缓冲区的动作包括使用所述动态标签来将逻辑缓冲区访问复用到合适的物理缓冲区访问的动作。9.如权利要求1所述的方法,其特征在于,将源代码的至少一部分转换成针对不同的第二处理器类型的第二代码的动作,其中第二代码定义所述逻辑缓冲区访问与所述物理缓冲区之间的间接等级,包括转换源代码的所述至少一部分以将抽象接口...
【专利技术属性】
技术研发人员:A·K·阿加瓦尔,W·朱,Y·莱瓦诺尼,
申请(专利权)人:微软公司,
类型:
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。