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

使用写掩码将两个源操作数混合进单个目的地的处理器制造技术

技术编号:15391270 阅读:35 留言:0更新日期:2017-05-19 04:40
公开了使用写掩码将两个源操作数混合进单个目的地的系统、装置和方法。在一些实施例中,混合指令的执行导致使用写掩码的相对应位位置作为第一和第二操作数之间的选择器来进行对第一和第二源操作数的数据元素的逐数据元素的选择,及将所选择的数据元素在目的地的相对应位置处存储进目的地。

System, device, and method for mixing two source operands into a single destination using a write mask

Systems, devices, and methods for mixing two source operands into a single destination using a write mask are disclosed. In some embodiments, the mixed execution resulting in the corresponding position as between the first and the second operand selector by data elements on the data elements of the first and second source operand of the selected write mask, and select the data elements in the destination corresponding to the position of storage enter the destination.

【技术实现步骤摘要】
使用写掩码将两个源操作数混合进单个目的地的系统、装置和方法本申请是国际申请日为2011年12月12日、中国国家阶段申请号为201180069936.4、题为“使用写掩码将两个源操作数混合进单个目的地的系统、装置和方法”的专利技术专利申请的分案申请。
本专利技术的领域一般涉及计算机处理器架构,以及更具体地涉及当被执行时导致特定结果的指令。
技术介绍
基于控制流信息合并来自向量源的数据是基于向量的架构的普遍问题。例如,为了将以下代码向量化,需要:1)生成指示a[i]>0是否为真的布尔向量的方法和2)基于该布尔向量从两个源(A[i]或B[i])中选择任一值并将内容写入不同目的地(C[i])的方法。附图说明作为示例而非限制,在附图中示出了本专利技术,附图中相似的附图标记指示相似的元素,附图中:图1示出了混合指令执行的示例。图2示出了混合指令执行的另一个示例。图3示出了混合指令的伪代码的示例。图4示出了在处理器中使用混合指令的实施例。图5示出了用于处理混合指令的方法的实施例。图6示出了用于处理混合指令的方法的实施例。图7A是示出根据本专利技术实施例的通用向量友好指令格式和其A类指令模板的框图。图7B是示出根据本专利技术实施例的通用向量友好指令格式和其B类指令模板的框图。图8A-C示出了根据本专利技术实施例的示例性特定向量友好指令格式。图9是根据本专利技术一实施例的寄存器架构的框图。图10A是根据本专利技术实施例的单个CPU核以及它与管芯上互连网络的连接和它的2级(L2)高速缓存本地子集的框图。图10B是根据本专利技术实施例的图10A中的CPU核的一部分的分解图。图11是示出根据本专利技术实施例的示例性乱序架构的框图。图12是根据本专利技术一实施例的系统的框图。图13是根据本专利技术实施例的第二系统的框图。图14是根据本专利技术实施例的第三系统的框图。图15是根据本专利技术实施例的SoC的框图。图16是根据本专利技术实施例的具有集成存储器控制器和图形器件的单核处理器和多核处理器的框图。图17是对比根据本专利技术实施例使用软件指令转换器将源指令集的二进制指令转换成目标指令集的二进制指令的框图。具体实施方式在以下描述中阐述了众多具体细节。然而应理解,可以在没有这些具体细节的情况下实践本专利技术的实施例。在其它实例中,为了不妨碍对本描述的理解,没有详细示出公知的电路、结构和技术。说明书中对“一实施例”、“实施例”、“示例实施例”等等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是,并不一定每个实施例都包括该特定特征、结构或特性。此外,这些短语不一定指同一实施例。此外,当结合实施例来描述特定特征、结构或特性时,不管是否被明确描述,结合其他实施例来实现该特征、结构或特性被认为是在本领域技术人员的知识范围内。混合下面是通常称为“混合”的指令的实施例,以及可以用来执行在包括
技术介绍
中所描述过的数个不同区域中有益的这种指令的系统、架构、指令格式等等的实施例。混合指令的执行有效地应付之前所描述的问题的第二部分,因为它占用包含来自元素向量的比较结果的真/假位的一个掩码寄存器,并且基于这些位,它能够在两个不同的向量源的元素之间选择。换言之,混合指令的执行导致处理器通过使用写掩码作为这些源之间的选择器,执行两个源之间逐个元素的混合。结果被写入目的地寄存器。在一些实施例中,源中的至少一个是寄存器,诸如128-、256-、512-位向量寄存器等。在一些实施例中,源操作数中的至少一个是与起始存储器位置相关联的数据元素的集合。另外,在一些实施例中,一个或两个源的数据元素在任何混合之前经过诸如调和(swizzle)、广播、转换等数据变换(本文将讨论示例)。稍后将详述写掩码寄存器的示例。这个指令的示例性格式为“VBLENDPSzmm1{k1},zmm2,zmm3/m512,offset”,其中操作数zmm1、zmm2和zmm3是向量寄存器(诸如128-、256-、512-位寄存器等),k1是写掩码操作数(诸如那些稍后详述的16-位寄存器),且m512是在寄存器中或作为即值存储的存储器操作数。ZMM1是目的地操作数且ZMM2和ZMM3/m512是源操作数。如果有的话,偏移(offset)用来从寄存器中的值或即值确定存储器地址。从存储器检索的任何内容都是从存储器地址开始的连续位的集合,且可以是依赖于目的地寄存器的大小的数个大小(128-、256-、512-位等)中的一个——该大小通常是与目的地寄存器相同的大小。在一些实施例中,写掩码也有不同的大小(8位、32位等)。另外,在一些实施例中,如以下将详述,不是写掩码位的所有位都被指令利用。VBLENDMPS是指令的操作码。通常每个操作数都在指令中明确地定义。数据元素的大小可以在指令的“前缀”中定义,诸如通过使用如稍后描述的类似“W”的数据粒度位的指示。在大多数实施例中,W指示每个数据元素是32位或64位。如果数据元素的大小是32位且源的大小是512位,那么每个源有十六(16)个数据元素。图1中示出了混合指令执行的示例。在此示例中,有两个各自有16个数据元素的源。在大多数情况下,这些源中的一个是寄存器(就此示例,源1作为512-位寄存器(诸如有16个32位数据元素的ZMM寄存器)来对待,然而也可以使用其它数据元素和寄存器大小,诸如XMM和YMM寄存器和16-或64-位数据元素)。另一源是寄存器或存储器位置(在此图示中源2是另一源)。如果第二源是存储器位置,那么在大多数实施例中它在源的任何混合之前被放入临时寄存器中。此外,存储器位置的数据元素可以在放入临时寄存器之前经历数据变换。所示的掩码模式是0x5555。在此示例中,对有“1”值的写掩码的每一个位位置,这指示第一源(源1)的相对应数据元素应被写入目的地寄存器的相对应数据元素位置。因此,源1的第一、三、五等等位位置(A0、A2、A4等)被写入目的地的第一、三、五等等数据元素位置。当写掩码有“0”值时,第二源的数据元素被写入目的地的相对应数据元素位置。当然,依据实现,“1”和“0”的使用可以翻转。此外,尽管此图和以上描述考虑相应的第一位置为最低有效位置,在一些实施例中第一位置是最高有效位置。图2示出了混合指令执行的另一个示例。本图与图1的区别是每个源只有8个数据元素(例如,各源是每个有8个64-位数据元素的512-位寄存器)。在此情形下,对于16-位写掩码,不是该写掩码的所有位都被使用。在此实例中只使用了最低有效位,因为每个源没有16个数据元素要合并。图3示出了混合指令的伪代码的示例。图4示出了在处理器中使用混合指令的实施例。在401,提取具有目的地操作数、两个源操作数和偏移(如果有的话)的混合指令。在一些实施例中,目的地操作数是512-位向量寄存器(诸如ZMM1)且写掩码是16-位寄存器(诸如稍后详述的“k”写掩码寄存器)。源操作数中的至少一个可以是存储器源操作数。在403,将混合指令解码。依据指令的格式,可以在这个阶段解释各种数据,诸如如果将有数据变换,对哪个寄存器写入和检索、访问什么存储器地址等。在405,检索/读取源操作数的值。如果两个源都是寄存器则读取这些寄存器。如果源操作数中的一个或两个是存储器操作数则检索与该操作数相关联的数据元素。在一些实施例中,将来自存储器的数据元素存储到临时寄本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201611035320.html" title="使用写掩码将两个源操作数混合进单个目的地的处理器原文来自X技术">使用写掩码将两个源操作数混合进单个目的地的处理器</a>

【技术保护点】
在计算机处理器中执行混合指令的方法,所述方法包括:提取所述混合指令,其中所述混合指令包括写掩码操作数、目的地操作数、第一源操作数和第二源操作数;解码所提取的混合指令;执行所解码的混合指令以使用所述写掩码的相对应位位置作为所述第一和第二操作数之间的选择器来执行对第一和第二源操作数的数据元素的逐数据元素选择;以及将所选择的数据元素在所述目的地的相对应位置处存储到目的地。

【技术特征摘要】
2011.04.01 US 13/078,8641.在计算机处理器中执行混合指令的方法,所述方法包括:提取所述混合指令,其中所述混合指令包括写掩码操作数、目的地操作数、第一源操作数和第二源操作数;解码所提取的混合指令;执行所解码的混合指令以使用所述写掩码的相对应位位置作为所述第一和第二操作数之间的选择器来执行对第一和第二源操作数的数据元素的逐数据元素选择;以及将所选择的数据元素在所述目的地的相对应位置处存储到目的地。2.如权利要求1所述的方法,其特征在于,所述写掩码是16-位寄存器。3.如权利要求1所述的方法,其特征在于,所述写掩码是16-位寄存器且仅八个最低有效位位置被用作选择器且所述数据元素的大小是64位。4.如权利要求1所述的方法,其特征在于,所述第一源是512-位寄存器且所述第二源是存储器。5.如权利要求4所述的方法,其特征在于,所述第二源的数据元素是从16-位上转换到32-位的。6.如权利要求1所述的方法,其特征在于,所述第一和第二源是512-位寄存器。7.如权利要求1所述的方法,其特征在于,其中所述判断对所述写掩码的每个位位置并行进行。8.如权利要求1所述的方法,其特征在于,其中所述第一和第二源操作数是512-位寄存器。9.如权利要求1所述的方法,其特征在于,其中所述第二源操作数是512-位存储器位置且来自该存储器位置的数据元素在所述源的串接之前被加载进临时512-位寄存器。10.如权利要求1所述的方法,其特征在于,所述数据元素是32-位的。11.一种方法,所述方法包括:响应于包括第一和第二源操作数、目的地操作数、写掩码操作数的混合指令,评估所述写掩码在第一位位置处的值,判断所述第一位位置处的值是否指示所述第一源的相对应第一数据元素应被保存在所述目的地的相对应第一数据元素位置或是否所述第二源的相对应第一数据元素应被保存在所述目的地的相对应第一数据元素位置,且将由所述第一位位置处的值所指示的所述第一数据元素存储进所述...

【专利技术属性】
技术研发人员:J·C·三额詹B·L·托尔R·C·凡伦天J·G·韦德梅耶S·萨姆德若拉M·B·吉尔卡尔A·T·福塞斯E·乌尔德阿迈德瓦尔D·R·布拉德福德L·K·吴
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1