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

用于对齐寄存器的系统、装置和方法制造方法及图纸

技术编号:16427537 阅读:50 留言:0更新日期:2017-10-21 21:54
说明了用于在计算机处理器中执行对齐指令的系统、装置和方法的实施例。在一些实施例中,对齐指令的执行使得两个串接源的数据元素的选择性存储存储在目的地中。

System, device and method for aligning registers

Embodiments of systems, devices, and methods for performing alignment instructions in a computer processor are described. In some embodiments, the execution of the alignment command makes the selective storage of the data elements of the two serially connected sources stored in the destination.

【技术实现步骤摘要】
用于对齐寄存器的系统、装置和方法本申请是2012年03月29日提交的申请号为201280026790.X的同名专利申请的分案申请。
本专利技术的领域一般涉及计算机处理器体系结构,尤其涉及当被执行时引起特定结果的指令。
技术介绍
随着处理器的单指令多数据(SIMD)宽度增加,应用程序开发者(和编译器)越来越难以充分使用SIMD硬件,因为数据元素不会自然地与全矢量的大小对齐并且通常产生高速缓冲存储行分裂,其中存储器参考位于高速缓冲存储器层级的两个不同行上。常规地,处理高速缓冲存储行分裂涉及到:检测高速缓冲存储行分裂状态,进行两次不同的TLB查找,进行两次高速缓冲存储行存取,以及因此使用两个独立的存储器端口,和/或使用专用逻辑在来自存储器途中合并来自两个连续高速缓冲存储行的数据片。附图说明在附图中通过举例的方式而不是限制的方式阐述了本专利技术,其中相似的附图标记表示相似的元件,并且其中:图1描绘了ALIGN(对齐)指令的示例性执行。图2描绘了ALIGN指令的示例性执行。图3描绘了ALIGN指令的示例性执行。图4示出了通过在处理器中执行对齐指令而对齐来自两个源的数据以及将该对齐存储到目的地位置的方法的实施例。图5示出了用于处理对齐指令的方法的实施例。图6示出了用于处理对齐指令的方法的实施例。图7示出了用于处理伪码的对齐指令的方法的实施例。图8A是示出根据本专利技术的实施例的一般矢量友好指令格式及其A类指令模板的框图。图8B是示出根据本专利技术的实施例的一般矢量友好指令格式及其B类指令模板的框图。图9A-C示出了根据本专利技术的实施例的示例性的特定矢量友好指令格式。图10是根据本专利技术的一个实施例的寄存器体系结构的框图。图11A是根据本专利技术的实施例的单CPU核心连同其与片上互连网络的连接以及其2级(L2)高速缓冲存储器的本地子集的框图。图11B是根据本专利技术的实施例的图11A中的CPU核心的部分的分解视图。图12是示出根据本专利技术的实施例的示例性的无序体系结构的框图。图13是依照本专利技术的一个实施例的系统的框图。图14是依照本专利技术的实施例的第二系统的框图。图15是依照本专利技术的实施例的第三系统的框图。图16是依照本专利技术的实施例的SoC的框图。图17是根据本专利技术的实施例的具有集成的存储器控制器和图形的单核处理器和多核处理器的框图。图18是根据本专利技术的实施例的对照将源指令集中的二进制指令转换成目标指令集中的二进制指令的软件指令转换器的使用的框图。具体实施方式在下面的说明中,阐述了多方面具体细节。然而,应当理解的是,本专利技术的实施例可在不具有这些具体细节的情况下实现。在其它实例中,为了不使得本说明的理解不清晰,未详细示出公知的电路、结构和技术。说明书中提到“一个实施例”、“实施例”、“示例性实施例”等表示所描述的实施例可包括特定的特征、结构或特点,但是每个实施例可不必包括该特定的特征、结构或特点。而且,这种术语不一定指的是同一实施例。此外,当结合实施例描述特定的特征、结构或特点时,假设结合其它实施例来实现这样的特征、结构或特点在本领域技术人员的知识范围内,无论是否做出明确说明。如之前详述的,数据元素的传统对齐要求多次处理,得到一些不期望的结果。例如,在一些情形下,用户经由特定记忆术指定可能的不对齐行为(诸如执行类似于VMOVUPS的指令),导致因假设高速缓冲存储行分裂总是将要生成而引起的更缓慢的执行。在其它情形下,硬件在运行时间检测高速缓冲存储器不对齐,导致额外的性能惩罚。对齐下文中详细说明了矢量对齐(VALIGN)指令的实施例,以及可用于执行这样的指令的系统、体系结构、指令格式等的实施例。当被执行时,矢量对齐指令使处理器串接指令的第一和第二源操作数的数据元素,基于指令的偏移(立即数)值将来自该串接数据的数据元素向右移位,并且将移位后的串接数据的一个或多个元素存储到目的地矢量寄存器中。在一些实施例中,待存储在目的地矢量寄存器中的移位后的串接数据的元素是通过写屏蔽寄存器的对应位确定的。第一和第二源均可是寄存器、存储器单元或其组合。在一些实施例中,当源为存储器单元时,其数据在串接之前被加载到寄存器中。该指令的示例为“VALIGNDzmm1{k1},zmm2,zmm3/m512,offset”,其中zmm1、zmm2、zmm3是矢量寄存器(诸如128、256、512位寄存器),m512是存储在寄存器或立即数中的512位存储器操作数,k1是写屏蔽操作数(诸如类似于之前所详细说明的16位寄存器),并且offset是立即数(例如,8位立即数),其指示在源的数据元素串接之后数据元素的32位元素的对齐,如下文详述的。从存储器取回的无论什么都是起始于存储器地址的集合连续位并且可以是多个尺寸(128位、256位、512位等)中的一个,这取决于目的地寄存器的尺寸,该尺寸通常与目的地寄存器的尺寸相同。在一些实施例中,写屏蔽也具有不同的尺寸(8位、32位等)。另外,在一些实施例中,指令并不使用写屏蔽的全部位(例如,仅使用最低有效的八位)。当然,VALIGND是指令的操作码。通常,在指令中明确地定义每个操作数。可以在指令的“前缀”中定义数据元素的尺寸,诸如通过使用类似于之前所描述的“W”的数据粒度位的指示。在大多数实施例中,W将指示每个数据元素是32位或64位的。如果数据元素的尺寸是32位,并且源的尺寸是512位,则每个源中存在十六(16)个数据元素。图1描绘了ALIGN指令的示例性执行。在该示例中,存在两个源,每个源具有16个数据元素。在大多数情况下,这些源中的一个是寄存器(对于该示例,源1101被处理为512位寄存器,诸如具有16个32位数据元素的ZMM寄存器,然而,可以使用其它的数据元素和寄存器尺寸,诸如XMM和YMM寄存器以及16或64位数据元素)。另一个源103是寄存器或存储器单元(在该示例中,源2为另一个源)。如果第二源是存储器单元,则在大多数实施例中其在源的任何混合之前被置于临时寄存器中。另外,存储器单元的数据元素可在置于临时寄存器中之前经过数据变换。数据103包括从A至P的十六个数据元素,并且数据103包括从Q至AF的十六个数据元素。如图所示,来自寄存器101和103的数据与第一数据寄存器101的最低有效数据元素串接105,A为串接数据105的最低有效数据元素。第二数据寄存器103的最低有效数据元素Q紧跟着第一数据寄存器101的最高有效数据元素。串接数据元素105移位(对齐)三(指令的立即数值),这留下了来自原始源的数据元素D至AF。当然,还可使用大端法(big-endian)方式,并且数据元素将向左移位相应的立即数值。该经移位和串接的数据的最低有效数据元素(D至S)被写入到指令的目的地寄存器中,直到在目的地寄存器中不存在更多的数据元素槽。在其它实施例中,最高有效数据元素被写入目的地寄存器107中。该写入可并行地或串行地完成。如图所示,十六个最低有效数据元素被写入目的地寄存器中,因其仅具有存储该尺寸的十六个数据元素的空间。图2示出了相同的源数据和移位,但是使用屏蔽寄存器201的内容来确定经串接和移位的数据105中的哪些最低有效数据元素应当被写入目的地寄存器中。在一些实施例中,该屏蔽寄存器是上文详述的“k”屏蔽寄存器(k1-k7)。屏蔽寄存器显本文档来自技高网...
用于对齐寄存器的系统、装置和方法

【技术保护点】
一种在计算机处理器中执行对齐指令的方法,包括:取出所述对齐指令,其中所述对齐指令包括写屏蔽操作数、目的地操作数、第一源操作数、第二源操作数和偏移值;对所取出的对齐指令进行解码;通过如下操作来执行经解码的对齐指令将所述第一源操作数的第一多个数据元素和所述第二源操作数的第二多个数据元素串接,基于所述偏移值将串接的数据元素向右移位,以及基于写屏蔽的相应位来确定向右移位的、串接的数据元素的哪些将被存储在目的地的相应位置上;以及将所述向右移位的、串接的数据元素的已被确定为应当存储到所述目的地的那些数据元素存储在所述目的地中的所述相应位置上。

【技术特征摘要】
2011.04.01 US 13/078,8681.一种在计算机处理器中执行对齐指令的方法,包括:取出所述对齐指令,其中所述对齐指令包括写屏蔽操作数、目的地操作数、第一源操作数、第二源操作数和偏移值;对所取出的对齐指令进行解码;通过如下操作来执行经解码的对齐指令将所述第一源操作数的第一多个数据元素和所述第二源操作数的第二多个数据元素串接,基于所述偏移值将串接的数据元素向右移位,以及基于写屏蔽的相应位来确定向右移位的、串接的数据元素的哪些将被存储在目的地的相应位置上;以及将所述向右移位的、串接的数据元素的已被确定为应当存储到所述目的地的那些数据元素存储在所述目的地中的所述相应位置上。2.如权利要求1所述的方法,其中所述写屏蔽是16位寄存器。3.如权利要求1所述的方法,其中所述偏移是8位立即数值。4.如权利要求1所述的方法,还包括:确定是否使用所述写屏蔽;以及如果不使用所述写屏蔽,则将所述向右移位的、串接的数据元素中的数据元素存储在所述目的地的所述相应位置上,而不基于所述写屏蔽的相应位来确定所述向右移位的、串接的数据元素中的哪些将被存储在所述目的地的相应位置上。5.如权利要求1所述的方法,其中针对所述写屏蔽的每个位位置并行地进行所述确定。6.如权利要求1所述的方法,其中所述第一源操作数和第二源操作数是512位寄存器。7.如权利要求1所述的方法,其中所述第二源操作数是512位存储器单元,并且来自所述存储器单元的数据元素在所述源的串接之前被加载到临时的512位寄存器中。8.如权利要求1所述的方法,其中所述第一操作数的数据元素是所述向右移位的、串接的数据元素中的最低有效数据元素。9.一种方法,包括:响应对齐指令,所述对齐指令包括第一和第二源操作数、目的地操作数、写屏蔽操作数和偏移,将第一源的第一数据元素集合与第二源的第二数据元素集合串接;将串接的数据元素向右移位X数据元素,其中X是在所述对齐指令中提供的立即数值;以及对于写屏蔽的第一位位置,确定所述第一位位置是否指示经移位的、串接的数据元素的相应数据元素将被存储在目的地的相应位置上,当所述写屏蔽的所述第一位位置指示所述经移位的、串接的数据元素的所述相应数据元素应当被存储时,将所述经移位的、串接的数据元素的所述相应数据元素存储在所述目的地中的相应位置上,并且当...

【专利技术属性】
技术研发人员:J·C·圣阿德里安R·E·桑斯M·B·吉尔卡尔L·K·吴D·R·布拉德福德V·W·李
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1