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

用于访问寄存器文件区域中的信息的方法、装置和系统制造方法及图纸

技术编号:2920374 阅读:142 留言:0更新日期:2012-04-11 18:40
根据一些实施方式,可以为操作数描述寄存器文件中的动态区域。所描述的区域例如可以存储多个数据元素,每个数据元素与执行引擎的执行通道有关。然后根据所描述的区域而将信息存储到寄存器文件中和/或从寄存器文件中取出。

【技术实现步骤摘要】

技术介绍
为了改善处理系统的性能,在单个的指令周期中对多个操作数同时执行单指令多数据(Single Instruction Multiple Data,SIMD)指令。例如,八通道的SIMD执行引擎可以同时对八个32位操作数数据执行指令,每一个操作数被映射到SIMD执行引擎的唯一计算通道。此外,SIMD指令可利用寄存器文件中的一个或多个寄存器,并且每个寄存器可以具有与执行通道有关的固定位置(例如,可以为八通道SIMD执行引擎提供多个八字寄存器,寄存器中的每个字被分配给不同的执行通道)。以不同的方式高效并灵活地存取寄存器信息的能力可进一步改善SIMD执行引擎的性能。附图说明图1和2是处理系统的方框图。图3举例说明了处理系统的指令和寄存器文件。图4是根据一些实施方式的方法的流程图。图5举例说明了根据一些实施方式的处理系统的指令和寄存器文件。图6举例说明了根据一些实施方式的在寄存器文件中的执行通道映射。图7举例说明了根据一些实施方式的包括水平跨距(stride)的区域描述。图8举例说明了根据一些实施方式的包括零水平跨距的区域描述。图9举例说明了根据一些实施方式的字类型数据元素的区域描述。图10举例说明了根据一些实施方式的包括垂直跨距的区域描述。图11举例说明了根据一些实施方式的包括零垂直跨距的区域描述。图12举例说明了根据一些实施方式的区域描述。图13举例说明了根据一些实施方式的区域描述,其中在所述区域描述中水平跨距和垂直跨距均为零。图14举例说明了根据一些实施方式的区域描述。图15是根据一些实施方式的系统的方框图。具体实施例方式在此描述的一些实施方式与“处理系统”有关。如在此所使用的,词组“处理系统”可以涉及处理数据的任何设备。处理系统例如可以与用于处理图形数据和/或其他种类的媒体信息的图形引擎有关。在某些情况中,可以借助于SIMD执行引擎来改善处理系统的性能。例如,SIMD执行引擎可以同时对多通道数据执行单浮点SIMD指令(例如,加速三维几何形状的变换和/或绘制)。处理系统的其他实例包括中央处理器(Central Processing Unit,CPU)和数字信号处理器(Digital Signal Processor,DSP)。图1举例说明了一种包括SIMD执行引擎110的处理系统100。在这种情况下,执行引擎110连同四分量数据矢量(例如,矢量分量X、Y、Z和W,每个矢量分量具有编排用于在SIMD执行引擎110的相应通道0至3上进行处理的位)一起接收指令(例如,来自指令存储单元)。引擎110而后可以同时对矢量中的所有分量执行指令。这样的方法被称作“水平”、“并行通道(channel-parallel)”或者“结构数组(Array Of Structures,AOS)”实现。图2举例说明了另一种包括SIMD执行引擎210的处理系统200。在这种情况下,执行引擎210连同四个操作数数据一起接收指令,其中每个操作数与不同的矢量有关(例如,来自矢量V0至V3的四个X分量)。每个矢量例如可以包括与三维图形位置有关的三个位置值(例如,X、Y和Z)。引擎210然后可以在单个指令周期中对所有的操作数同时执行指令。这样的方法被称作“垂直”、“串行通道(channel-serial)”或者“数组结构(Structure OfArrays,SOA)”实现。尽管在此描述的一些实施方式与四通道和八通道SIMD执行引擎有关,但是应该注意的是SIMD执行引擎可以具有大于一的任何数目的通道(例如,实施方式可以与三十二通道执行引擎有关)。图3举例说明了具有八通道SIMD执行引擎310的处理系统300。执行引擎310可以包括诸如芯片级通用寄存器文件(General Register File,GRF)之类的八字节寄存器文件320,其能够利用汇编语言和/或机器代码指令进行存取。特别地,图3中的寄存器文件320包括五个寄存器(R0至R4)且执行引擎310正在执行以下的硬件指令add(8)R1 R3 R4“(8)”表明将在所有的八个执行通道的操作数上执行所述指令。“R1”是目的操作数(DEST),以及“R3”和“R4”是源操作数(分别为SRC0和SRC1)。因此,将R4中的八个单字节数据元素的每一个与R3中的相应数据元素相加。然后将八个结果存储在R1中。具体地,R4的第一个字节与R3的第一个字节相加,并且该结果存储在R1的第一个字节中。同样地,R4的第二个字节与R3的第二个字节相加,并且该结果存储在R1的第二个字节中等等。在一些应用程序中,以多种方式存取寄存器文件中的信息是有益的。例如,在图形应用程序中将部分寄存器文件看作为矢量、标量和/或值的数组有时是有益的。这样的方法可以有助于减少指令和/或数据移动、打包(packing)、解包(unpacking)和/或搬动(shuffling)的数量,并有助于改善系统的性能。图4是根据一些实施方式的方法的流程图。在此描述的流程图未必表示动作的固定次序,而可以以任何可实行的次序来执行实施方式。应当注意的是在此描述的任何方法可以由硬件、软件(包括微码)、固件或者这些手段的任何组合来执行。例如,根据在此所描述的任何实施方式,硬件指令映射引擎可用于简化操作。在402,为操作数描述了寄存器文件区域。操作数例如可以是要由SIMD执行引擎来执行的机器代码指令的目的操作数或者源操作数。根据一些实施方式,所描述的区域是“动态的”在于寄存器文件中的不同区域是在不同时间定义的。区域的描述例如可以被编码到机器代码指令中。需要注意的是一个时间内可以描述不止一个的寄存器文件区域。在404,根据所描述的区域而安排信息存储到寄存器文件中(或者从寄存器文件中检索信息)。例如,将来自第一区域的数据与第二区域中的数据相比较,并且可以将结果存储在高通道基区域(per-channel basis)上的第三区域中。图5举例说明了根据一些实施方式的具有八通道SIMD执行引擎510的处理系统500。在该实例中,对于具有五个八字节寄存器(R0至R4)的寄存器文件520来说描述了三个区域目标区域(DEST)和两个源区域(SRC0和SRC1)。所述区域例如可以已经由机器代码加法指令定义。此外,在该实例中所有的执行通道正在被使用,并且数据元素被假设为数据的字节(例如,八个SRC1字节的每一个将被加到相应的SRC0字节中,并且所述结果将被存储在寄存器文件520中的八个DEST字节中)。每个区域描述包括寄存器标识符和“子寄存器标识符”,所述子寄存器标识符表明寄存器文件520中的第一数据元素的位置(在图5中举例说明的作为RegNum.SubRegNum的“起始地址”)。子寄存器标识符例如可以表明距寄存器起始处的偏移量(例如,以及可以利用位或者字节或者多个数据元素的物理号码(physical number)来表示)。例如,图5中的DEST区域具有R0.2的起始地址,表明DEST区域中的第一数据元素位于第一寄存器(R0)的字节二。同样地,SRC0区域开始于R2的字节三(R2.3),SCR1区域起始于R4的第一个字节(R4.0)。需要注意的是所描述的区域可能不与寄存器文件520相对齐(例如,区域不需要起始于一个寄存器的字节0并终止于字节7)。注意起始本文档来自技高网...

【技术保护点】
一种方法,包括:为操作数描述寄存器文件中的动态区域,其中所描述的区域用于存储多个数据元素,每个数据元素与执行引擎的执行通道相关联;以及根据所描述的区域而安排将信息存储到寄存器文件中或者从寄存器文件中取出。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:H江V库克
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

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