CN1983235B - 设置向量屏蔽的方法、设备、系统和处理器 - Google Patents

设置向量屏蔽的方法、设备、系统和处理器 Download PDF

Info

Publication number
CN1983235B
CN1983235B CN2006100640836A CN200610064083A CN1983235B CN 1983235 B CN1983235 B CN 1983235B CN 2006100640836 A CN2006100640836 A CN 2006100640836A CN 200610064083 A CN200610064083 A CN 200610064083A CN 1983235 B CN1983235 B CN 1983235B
Authority
CN
China
Prior art keywords
vector mask
instruction
vector
value
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2006100640836A
Other languages
English (en)
Other versions
CN1983235A (zh
Inventor
R·埃斯帕萨
R·格拉蒙特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1983235A publication Critical patent/CN1983235A/zh
Application granted granted Critical
Publication of CN1983235B publication Critical patent/CN1983235B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Image Analysis (AREA)

Abstract

一种生成向量屏蔽的技术。特别是,本发明的至少一个实施例匹配至少两个指令,该至少两个指令被用于生成向量屏蔽,以及如果发现相关性,则阻止这两个指令中的至少一个被执行。

Description

设置向量屏蔽的方法、设备、系统和处理器
技术领域
本发明的实施例涉及微处理器结构。更特别地,本发明的实施例涉及设置由指令集结构使用的向量屏蔽。
背景技术
在不同处理器中的不同指令集结构(ISA)中所使用的指令可包括涉及任一或二者都生成屏蔽值的操作,该屏蔽值在逻辑上与另一值组合来产生合成值。屏蔽值可被存储在存储单元中,诸如被存储在寄存器(“向量屏蔽”)中,并且屏蔽值可包含多个位,这些位与另一值的相对应数量的位被用于布尔逻辑运算(例如:“与”运算)。例如,图1示出了向量屏蔽101,该向量屏蔽101的位将经由布尔“与”运算与被存储在另一寄存器105中的另一值的多个位进行逻辑组合,以产生被存储在合成寄存器110中的合成值。
在一些ISA中,指令可以被指定为使用屏蔽值来生成结果的指令。例如,如果指令被指定为“在屏蔽之下”被执行,则由该指令所使用或所产生的数据值可被存储在处理器寄存器(诸如“向量寄存器”)中。对被存储在向量寄存器元件中的数据所执行的操作又可检查向量屏蔽中的相对应的位,该向量屏蔽可被存储到“向量屏蔽寄存器”中。如果相对应的位被设置为某个值,则该操作可被实现,而不考虑该向量屏蔽。在另一方面,如果该位被设置为另一值,则例如该操作可被忽略,并且针对该操作不产生例外和/或结果。向量屏蔽内的位的数量和向量屏蔽中的每个位的意义可以根据其中实施该向量屏蔽的处理器结构而变化。
向量屏蔽能够通过不同的技术被初始化或被“设置”,这些技术包括使用操作或操作序列,诸如从指令(“微指令”)中解码得到的操作,以设置来自其它寄存器(诸如标量寄存器)的向量屏蔽。可替换地,一些现有技术隐含地通过执行其它操作来设置向量屏蔽,这些操作诸如“比较”操作。在一种现有技术中,使用第一操作来设置向量屏蔽,以将屏蔽值与诸如“零”值向量的另一值进行比较(例如:“veq”操作),从而产生随后通过执行第二操作能够被存储到向量屏蔽中的值,以设置该向量屏蔽(例如:“setvm”操作)。
一些现有技术已经使用一次或多次操作来生成向量屏蔽值,并使用其它一次或多次操作来将该向量屏蔽存储到诸如寄存器的存储单元中,来自该存储单元的向量屏蔽可被应用到使用该向量屏蔽的不同的指令中。
现有技术的一个不足(诸如上面所描述的不足)是,在该向量屏蔽能够被使用之前,必须执行两次或更多次的操作来最终设置该向量屏蔽,这需要额外的处理周期,从而影响了处理性能。
发明内容
本发明说明一种用于设置向量屏蔽的处理器,其包括:
第一逻辑部件,用于检测存储向量屏蔽值的第一操作;
第二逻辑部件,用于识别最新的第二操作,所述第二操作用于生成与第一操作相同且早于第一操作的向量屏蔽值;
第三逻辑部件,如果所述第二操作被识别,则所述第三逻辑部件阻止所述第一操作被执行,并将所述向量屏蔽值存储到向量屏蔽寄存器中。
本发明说明一种用于设置向量屏蔽的系统,其包括:
存储器,用于存储第一指令和第二指令,所述第一指令用于生成向量屏蔽值,并且所述第二指令用于将所述向量屏蔽值存储到向量屏蔽寄存器中;
处理器,如果所述第一指令对应于与所述第二指令相同的向量屏蔽寄存器,则所述处理器阻止所述第二指令被执行,并直接使用所述第一指令的向量屏蔽寄存器。
本发明说明一种用于设置向量屏蔽的方法,其包括:
在队列中存储用于存储向量屏蔽值的第一操作;
对队列搜索生成所述向量屏蔽值的最新的第二操作,所述第一操作晚于第二操作;
如果发现第二操作,则从队列中去除所述第一操作,并直接使用所述第二操作的向量屏蔽值。
本发明还说明一种用于设置向量屏蔽的设备,其包括:
向量寄存器组,所述向量寄存器组包括至少两个源寄存器,以存储至少两个源操作数;
被耦合到向量寄存器组的向量屏蔽寄存器组,所述向量屏蔽寄存器组包括至少一个向量屏蔽寄存器,以存储至少一个向量屏蔽值;
被耦合到向量寄存器组和向量屏蔽寄存器组的算术逻辑单元ALU,以对至少两个源操作数执行布尔“与”运算,如果所述布尔“与”运算的结果包含的并不都是零,则所述结果将被存储到向量屏蔽寄存器中;
存储第一指令的部件,所述第一指令用于生成向量屏蔽值,其中所述部件还存储第二指令,所述第二指令用于将向量屏蔽值存储到向量屏蔽寄存器中,而且所述第一指令要在第二指令之前被执行,如果所述第一和第二指令对应于相同的向量屏蔽寄存器,则所述第二指令不被执行。
附图说明
本发明的实施例通过例子来说明并且不限于附图中的图,在附图中,相同的参考符号表示相同的元件,并且其中:
图1示出了一种用于生成向量屏蔽值的现有技术。
图2示出了一种根据一个实施例来设置向量屏蔽的技术。
图3是说明本发明的至少一个实施例的至少一个方面的流程图。
图4示出了能够被用来实施参考本发明的至少一个实施例所讨论的至少一些操作的硬件逻辑。
图5示出了其中可使用本发明的一个实施例的前端总线(FSB)计算机系统。
图6示出了以点对点(PtP)配置来布置的计算机系统。
具体实施方式
本发明的实施例属于微处理器结构。更特别地,本发明的实施例属于设置向量屏蔽的技术,该向量屏蔽由处理器或处理系统内的一个或多个指令操作所使用。
在本发明的至少一个实施例中,配置(“设置”)向量屏蔽,以便通过将设置屏蔽值的至少一个指令与设置向量屏蔽的至少一个指令相匹配来允许或禁止与在处理器或处理系统内操作的一个或多个指令相关联的不同的功能。在至少一个实施例中,通过在操作列表中搜寻要被执行的最新的操作来执行匹配,该最早的操作是在执行用向量屏蔽值设置向量屏蔽的操作之前设置向量屏蔽值。此外,本发明的至少一个实施例省却(或至少忽略)执行设置向量屏蔽的指令(多个指令),而是执行设置屏蔽值的指令,以便将向量屏蔽设置为相对应的值。
例如,图2示出了根据一个实施例的设置向量屏蔽的技术。在图2中示出了指令队列200(诸如调度程序),以存储要由处理逻辑所执行的指令或微指令。在图2中所示的例子中,各种指令/微指令在不同时刻被存储在队列中,并且按照这些指令/微指令进入队列的顺序进行存储(也就是从“最早的”到“最新的”)。例如,在图2中,通过操作码(“opcode”)“vadd”来标识的指令或微指令已首先进入该队列,并且因此被存储在条目201处,其后是被存储在条目203处的、由操作码“vand”标识的指令/微指令和在条目205处的、由操作码“vmul”所标识的指令/微指令。在其它实施例中,指令/微指令可以或可以不按照它们到达队列中的顺序进行存储,或者可替换地,这些指令/微指令可被存储在不同的位置,诸如从队列的“顶部”到“底部”。
图2的队列中的每条指令/微指令具有相对应的操作码207,如上面所讨论的那样,以及具有相对应的源位置标识符209,该源位置标识符209标识的存储单元内的位置(诸如寄存器),将要由指令/微指令操作的数据被定位在该位置。类似地,图2的队列中的每条指令/微指令具有相对应的第一目的地位置标识符211,该第一目的地位置标识符211标识存储区内的位置(诸如寄存器),通过执行相对应的指令/微指令所产生的数据将被存储在该位置。在至少一个实施例中,队列内的每个条目也存储相对应的第二目的地位置标识符213,该第二目的地位置标识符213标识存储区内的位置(诸如寄存器),通过指令/微指令所产生的向量屏蔽将被存储在该位置。特别是如果相对应的微指令/指令在其被执行之后并不产生向量屏蔽值,则一些微指令/指令可以不具有在其队列条目的向量屏蔽域内所存储的任何信息。
在图2中,例如vand指令/微指令要在对应于该指令/微指令条目的源域和目的地域的数据之间执行布尔“与”运算,并将该结果存储到由该指令/微指令的队列条目的目的地域所标识的位置中。也在图2中,第四指令/微指令已进入到队列的条目215处,由操作码“setvm”标识。该setvm指令/微指令是一种操作,当执行该操作时,该操作将其位置由向量屏蔽标识符域所标识的向量屏蔽值存储到由源标识符域所标识的向量屏蔽中。
在图2中所示的例子中,对应于该setvm指令/微指令的屏蔽值的位置与对应于vand指令/微指令的屏蔽值的位置相同。本发明的至少一个实施例将图2中的setvm与vand之间的关系识别为对应于相同的向量屏蔽值,并然后或者从队列中去除该setvm指令/微指令,或者否则并不执行该setvm指令/微指令,并且将该vand指令/微指令的目的地标识符用作要由指令/微指令所使用的向量屏蔽的位置。
在一个实施例中,当在图2的队列内检测到图2中所示的setvm指令/微指令时,搜索逻辑或搜索软件或是其某些组合通过查找一组内容可寻址存储器(CAM)能够在队列中定位相对应的vand操作,例如,对应于队列的每个条目。在一个实施例中,被设置到第一值(例如,逻辑“1”)的CAM可以指示vand指令/微指令队列中的位置,该vand指令/微指令生成和存储将由该setvm指令/微指令使用的向量屏蔽值。在其它实施例中,可使用其它的技术来识别vand指令/微指令的队列内的位置。
图3是示出本发明的至少一个实施例的至少一个方面的流程图。特别是,图3示出了要被执行的操作,以检测队列(诸如调度程序)内的setvm指令/微指令的存在,并且定位相对应的生成屏蔽的指令/微指令(例如,在一个实施例中是vand),以致该setvm指令/微指令不必被执行。在操作301,setvm指令/微指令被存储在要由处理逻辑所执行的指令/微指令队列中。在操作303,搜索比setvm指令/微指令更早的队列条目,以在对应于与setvm指令/微指令相同的向量屏蔽值的队列中找到最新的vand指令/微指令。在操作305,在定位了最新的相对应的vand指令之后,从队列中去除setvm或者否则标记setvm,以致不执行setvm,并且该vand操作的结果将被用作其它指令/微指令的向量屏蔽。
在一个实施例中,该队列是处理器中的调度程序,而在其它实施例中,该队列可以是位于处理器内部或外部的另一队列,以存储要由处理逻辑所执行的指令或微指令。此外,虽然迄今为止已经参考了setvm和vand指令/微指令,但是在其它实施例中,取决于其中使用本发明的实施例的指令集结构,其它指令/微指令可被用来生成向量屏蔽值和利用该值来设置向量屏蔽。
本发明的实施例可以用不同的方式来实施,这些方式包括软件、硬件、或其某种组合。例如,图4示出了能被用来实施参考本发明的至少一个实施例所讨论的至少一些操作的硬件逻辑。特别是,图4示出了向量寄存器文件401,该向量寄存器文件401包括被用来存储对应于诸如setvm和vand的指令/微指令的操作数和结果的源和目的地寄存器。另外,图4示出了向量屏蔽寄存器文件405,以存储由本发明的一个或多个实施例所生成的向量屏蔽。例如,vand指令/微指令可使得算术逻辑单元(ALU)410在被存储在向量寄存器文件中的两个或更多个源寄存器中的数据之间执行布尔“与”运算,并且将结果存储在向量寄存器文件内的目的地寄存器中和/或向量屏蔽寄存器文件内的向量屏蔽寄存器中。
在一个实施例中,如果向量屏蔽值包含的并不都是零,则通过利用比较逻辑403执行比较操作,该vand指令/微指令的结果是只将结果存储到向量屏蔽寄存器文件中。在一些实施例中,如通过从向量屏蔽寄存器文件到ALU的连接来推动的那样,被存储在向量屏蔽寄存器文件中的向量屏蔽值可被用于在ALU中所执行的其它逻辑运算中。在一个实施例中,由vand操作所使用的源寄存器之一包括至少一个非零位,该至少一个非零位与包括全零的源寄存器值进行“与”操作,以致所生成的向量屏蔽值将反映被存储在第一源寄存器中的非零位的寄存器位置。通过存取来自该向量屏蔽寄存器文件的屏蔽,随后的指令能够使用这个屏蔽值。
图5示出前端总线(FSB)计算机系统,本发明的一个实施例可被用于该前端总线计算机系统中。处理器505存取来自一级(L1)超高速缓冲存储器510和主存储器515的数据。在本发明的其它实施例中,超高速缓冲存储器可以是计算机系统存储器分层结构内的二级(L2)高速缓冲存储器或其它存储器。此外,在一些实施例中,图5的计算机系统可包含L1高速缓冲存储器和L2高速缓冲存储器。
在图5的处理器内示出针对机器状态的存储区506。在一个实施例中,存储区可以是寄存器集合,而在其它实施例中,该存储区可以是其它的存储器结构。根据一个实施例,在图5中也示出了针对保存区段的存储区“存储器/图形控制器”。在其它实施例中,该保存区段可以在其它装置或存储器结构中。处理器可具有任意数量的处理核。然而,本发明的其它实施例可在系统内的其它装置内被实施,诸如在独立的总线代理内被实施,或者遍及用硬件、软件、或者硬件和软件的某种组合形成的系统分布。
主存储器可以用不同的存储源来实施,这些存储源诸如动态随机存取存储器(DRAM)、硬盘驱动器(HDD)520或者经由网络接口530而远离该计算机系统所定位的存储源,该网络接口530包含不同的存储装置和技术。超高速缓冲存储器可位于处理器内部或者接近处理器,诸如位于处理器的本地总线507上。
此外,超高速缓冲存储器可以包含诸如六晶体管(6T)单元相对快速的存储单元或者包含具有近似等于或更快的存取速度的存其它储单元。图5的计算机系统可以是总线代理的点对点(PtP)网络(诸如微处理器),这些微处理器经由专用于PtP网络上的每个代理的总线信号进行通信。图6示出了用点对点(PtP)配置来布置的计算机系统。特别地,图6示出了一系统,其中,处理器、存储器和输入/输出装置通过多个点对点接口互连。
图6的系统也可包括几个处理器,为了清楚起见,只示出了其中的两个处理器670、680。处理器670、680中的每一个都可以包括与存储器22、24连接的本地存储器控制器中枢(MCH)672、682。处理器670、680可经由点对点(PtP)接口650使用PtP接口电路678、688来交换数据。处理器670、680可以分别经由单独的PtP接口652、654使用点对点接口电路676、694、686、698来与芯片集690交换数据。芯片集690也可经由高性能图形接口639与高性能图形电路638交换数据。本发明的实施例可位于具有任意数量处理核的任何处理器之内,或者位于图6的每个PtP总线代理之内。
然而,本发明的其它实施例可存在于图6的系统内的其它电路、逻辑单元或装置中。而且,在本发明的其它实施例中,可以遍及图6中所示的几个电路、逻辑单元或装置分布。
本发明实施例的各种方面可以使用互补金属氧化物半导体(CMOS)电路和逻辑装置(硬件)来实施,而其它方面可以使用被存储在机器可读介质(软件)上的指令来实施,如果处理器执行这些指令,则这些指令将导致处理器执行方法来实现本发明的实施例。而且,本发明的一些实施例可单独用硬件来执行,而其它实施例可单独用软件来执行。
虽然已经参照所示的实施例对本发明进行了说明,但是本说明书并不意图在限制的意义上来构造。该说明性实施例的各种修改方案以及对于本发明所属技术领域的技术人员来说是显而易见的其它实施例被认为位于本发明的精神和范围之内。

Claims (25)

1.一种用于设置向量屏蔽的处理器,其包括:
第一逻辑部件,用于检测存储向量屏蔽值的第一操作;
第二逻辑部件,用于识别最新的第二操作,所述第二操作用于生成与第一操作相同且早于第一操作的向量屏蔽值;
第三逻辑部件,如果所述第二操作被识别,则所述第三逻辑部件阻止所述第一操作被执行,并将所述向量屏蔽值存储到向量屏蔽寄存器中。
2.根据权利要求1所述的处理器,其中,所述第二操作包括布尔“与”运算,所述布尔“与”运算的操作数通过两个源寄存器标识符来识别,并且所述布尔“与”运算的结果被存储在向量屏蔽寄存器中。
3.根据权利要求2所述的处理器,其中,所述第一操作将所述向量屏蔽值存储到所述向量屏蔽寄存器中。
4.根据权利要求3所述的处理器,其中,所述第二逻辑部件包括内容可寻址存储器,用于存储将第二操作标识为最新的操作的位,所述最新的操作用于生成早于第一操作的向量屏蔽值。
5.根据权利要求4所述的处理器,包括调度器,用于以要被执行的顺序来存储第一和第二操作。
6.根据权利要求5所述的处理器,其中,所述调度器还存储向量屏蔽寄存器标识符。
7.根据权利要求6所述的处理器,其中,如果第二操作被识别出,则第一操作将从调度器中被去除。
8.一种用于设置向量屏蔽的系统,其包括:
存储器,用于存储第一指令和第二指令,所述第一指令用于生成向量屏蔽值,并且所述第二指令用于将所述向量屏蔽值存储到向量屏蔽寄存器中;
处理器,如果所述第一指令对应于与所述第二指令相同的向量屏蔽寄存器,则所述处理器阻止所述第二指令被执行,并直接使用所述第一指令的向量屏蔽寄存器。
9.根据权利要求8所述的系统,其中,所述处理器包括调度器,用于调度第一和第二指令用于执行,其中所述调度器存储先进先出队列,所述队列用于按照第一和第二指令要被执行的顺序存储对应于所述第一和第二指令的信息。
10.根据权利要求9所述的系统,其中,所述第一指令要在第二指令之前被执行。
11.根据权利要求10所述的系统,其中,对应于第一和第二指令的信息包括操作码、源操作数寄存器指示符、目的地寄存器指示符和向量屏蔽寄存器指示符。
12.根据权利要求11所述的系统,其中,所述第一指令的操作码对应于布尔“与”运算。
13.根据权利要求12所述的系统,其中,所述第二指令的操作码对应于向量屏蔽值存储操作。
14.根据权利要求13所述的系统,其中,所述第一和第二指令中的每一个都对应于相同的向量屏蔽寄存器指示符。
15.根据权利要求14所述的系统,其中,所述第一指令对应于生成向量屏蔽的操作,所述向量屏蔽在对应于第一指令的操作之后最近被存储在调度器中。
16.根据权利要求8所述的系统,其进一步包括搜索逻辑部件,用于在第一指令被存储到处理器之后找到所述第一指令。
17.一种用于设置向量屏蔽的方法,其包括:
在队列中存储用于存储向量屏蔽值的第一操作;
对队列搜索生成所述向量屏蔽值的最新的第二操作,所述第一操作晚于第二操作;
如果发现第二操作,则从队列中去除所述第一操作,并直接使用所述第二操作的向量屏蔽值。
18.根据权利要求17所述的方法,其中,所述第一操作对应于setvm操作码,用于将向量屏蔽值存储到向量屏蔽寄存器中。
19.根据权利要求18所述的方法,其中,所述第二操作对应于vand操作码,用于生成向量屏蔽值。
20.根据权利要求17所述的方法,进一步包括在两个操作数之间执行布尔“与”运算,以生成要被存储到第一向量屏蔽寄存器中的向量屏蔽值。
21.根据权利要求20所述的方法,进一步包括将向量屏蔽值存储到第一向量屏蔽寄存器中。
22.根据权利要求17所述的方法,其中,搜索包括读取多个内容可寻址存储器CAM,每个CAM对应于队列中的条目。
23.根据权利要求22所述的方法,其中,所述最新的第二操作通过被存储在CAM中的第一值来指示,所述CAM对应于包含最新的第二操作的条目。
24.一种用于设置向量屏蔽的设备,其包括:
向量寄存器组,所述向量寄存器组包括至少两个源寄存器,以存储至少两个源操作数;
被耦合到向量寄存器组的向量屏蔽寄存器组,所述向量屏蔽寄存器组包括至少一个向量屏蔽寄存器,以存储至少一个向量屏蔽值;
被耦合到向量寄存器组和向量屏蔽寄存器组的算术逻辑单元ALU,以对至少两个源操作数执行布尔“与”运算,如果所述布尔“与”运算的结果包含的并不都是零,则所述结果将被存储到向量屏蔽寄存器中;
存储第一指令的部件,所述第一指令用于生成向量屏蔽值,其中所述部件还存储第二指令,所述第二指令用于将向量屏蔽值存储到向量屏蔽寄存器中,而且所述第一指令要在第二指令之前被执行,如果所述第一和第二指令对应于相同的向量屏蔽寄存器,则所述第二指令不被执行。
25.根据权利要求24所述的设备,进一步包括被耦合到ALU和向量屏蔽寄存器组的比较器,用于将由ALU所生成的向量屏蔽值和零值向量进行比较,每个零值对应于向量屏蔽值内的位的位置。
CN2006100640836A 2005-11-22 2006-11-22 设置向量屏蔽的方法、设备、系统和处理器 Expired - Fee Related CN1983235B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/286,735 US9436468B2 (en) 2005-11-22 2005-11-22 Technique for setting a vector mask
US11/286735 2005-11-22
US11/286,735 2005-11-22

Publications (2)

Publication Number Publication Date
CN1983235A CN1983235A (zh) 2007-06-20
CN1983235B true CN1983235B (zh) 2010-06-16

Family

ID=38054829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100640836A Expired - Fee Related CN1983235B (zh) 2005-11-22 2006-11-22 设置向量屏蔽的方法、设备、系统和处理器

Country Status (4)

Country Link
US (1) US9436468B2 (zh)
JP (2) JP2007141246A (zh)
CN (1) CN1983235B (zh)
TW (1) TWI395136B (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529592B2 (en) 2007-12-27 2016-12-27 Intel Corporation Vector mask memory access instructions to perform individual and sequential memory access operations if an exception occurs during a full width memory access operation
US8862932B2 (en) * 2008-08-15 2014-10-14 Apple Inc. Read XF instruction for processing vectors
US8938642B2 (en) * 2008-08-15 2015-01-20 Apple Inc. Confirm instruction for processing vectors
US8271832B2 (en) * 2008-08-15 2012-09-18 Apple Inc. Non-faulting and first-faulting instructions for processing vectors
US9009528B2 (en) * 2008-08-15 2015-04-14 Apple Inc. Scalar readXF instruction for processing vectors
CN102262205B (zh) * 2010-05-31 2015-08-26 无锡中星微电子有限公司 一种测试向量源文件的测试点的屏蔽方法和屏蔽装置
CN104303141A (zh) * 2011-12-22 2015-01-21 英特尔公司 用于从寄存器提取写掩码的系统、装置和方法
US20140201499A1 (en) * 2011-12-23 2014-07-17 Elmoustapha Ould-Ahmed-Vall Systems, apparatuses, and methods for performing conversion of a list of index values into a mask value
CN104350461B (zh) * 2011-12-23 2017-10-27 英特尔公司 具有不同的读和写掩码的多元素指令
CN104011616B (zh) * 2011-12-23 2017-08-29 英特尔公司 改进置换指令的装置和方法
CN108241504A (zh) 2011-12-23 2018-07-03 英特尔公司 经改进的提取指令的装置和方法
CN104126167B (zh) * 2011-12-23 2018-05-11 英特尔公司 用于从通用寄存器向向量寄存器进行广播的装置和方法
US9619236B2 (en) 2011-12-23 2017-04-11 Intel Corporation Apparatus and method of improved insert instructions
CN104081341B (zh) 2011-12-23 2017-10-27 英特尔公司 用于多维数组中的元素偏移量计算的指令
US9946540B2 (en) 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
CN107220029B (zh) 2011-12-23 2020-10-27 英特尔公司 掩码置换指令的装置和方法
CN107025093B (zh) 2011-12-23 2019-07-09 英特尔公司 用于指令处理的装置、用于处理指令的方法和机器可读介质
US9459867B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a specified memory boundary indicated by the instruction
US9588762B2 (en) 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9454367B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Finding the length of a set of character data having a termination character
US9715383B2 (en) 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
US9459868B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a dynamically determined memory boundary
US9280347B2 (en) 2012-03-15 2016-03-08 International Business Machines Corporation Transforming non-contiguous instruction specifiers to contiguous instruction specifiers
US9710266B2 (en) 2012-03-15 2017-07-18 International Business Machines Corporation Instruction to compute the distance to a specified memory boundary
US9459864B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Vector string range compare
US9454366B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Copying character data having a termination character from one memory location to another
US9268566B2 (en) 2012-03-15 2016-02-23 International Business Machines Corporation Character data match determination by loading registers at most up to memory block boundary and comparing
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9778932B2 (en) * 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9715385B2 (en) 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9471308B2 (en) * 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9645820B2 (en) * 2013-06-27 2017-05-09 Intel Corporation Apparatus and method to reserve and permute bits in a mask register
US20150186137A1 (en) * 2013-12-27 2015-07-02 Tal Uliel Systems, apparatuses, and methods for vector bit test
US9996350B2 (en) 2014-12-27 2018-06-12 Intel Corporation Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array
US10203955B2 (en) * 2014-12-31 2019-02-12 Intel Corporation Methods, apparatus, instructions and logic to provide vector packed tuple cross-comparison functionality
US20170177350A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Set-Multiple-Vector-Elements Operations
US10977033B2 (en) * 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
US5761476A (en) 1993-12-30 1998-06-02 Intel Corporation Non-clocked early read for back-to-back scheduling of instructions
US5634118A (en) * 1995-04-10 1997-05-27 Exponential Technology, Inc. Splitting a floating-point stack-exchange instruction for merging into surrounding instructions by operand translation
US5940625A (en) * 1996-09-03 1999-08-17 Cray Research, Inc. Density dependent vector mask operation control apparatus and method
US5925124A (en) * 1997-02-27 1999-07-20 International Business Machines Corporation Dynamic conversion between different instruction codes by recombination of instruction elements
US5903769A (en) * 1997-03-31 1999-05-11 Sun Microsystems, Inc. Conditional vector processing
JPH10301791A (ja) 1997-04-30 1998-11-13 Toshiba Corp オブジェクトコード最適化装置、オブジェクトコード最適化方法、オブジェクトコード最適化プログラムを記録した機械読み取り可能な記録媒体、及び、コンパイラ
US6366999B1 (en) 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US6237086B1 (en) * 1998-04-22 2001-05-22 Sun Microsystems, Inc. 1 Method to prevent pipeline stalls in superscalar stack based computing systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
全文.

Also Published As

Publication number Publication date
JP5539432B2 (ja) 2014-07-02
TW200802083A (en) 2008-01-01
JP2007141246A (ja) 2007-06-07
US20070118720A1 (en) 2007-05-24
US9436468B2 (en) 2016-09-06
JP2012142021A (ja) 2012-07-26
CN1983235A (zh) 2007-06-20
TWI395136B (zh) 2013-05-01

Similar Documents

Publication Publication Date Title
CN1983235B (zh) 设置向量屏蔽的方法、设备、系统和处理器
US11687345B2 (en) Out-of-order block-based processors and instruction schedulers using ready state data indexed by instruction position identifiers
CN104204990B (zh) 在使用共享虚拟存储器的处理器中加速操作的装置和方法
US5659722A (en) Multiple condition code branching system in a multi-processor environment
US6862677B1 (en) System and method for eliminating write back to register using dead field indicator
CN111868702A (zh) 用于可配置空间加速器中的远程存储器访问的装置、方法和系统
WO1990014629A2 (en) Parallel multithreaded data processing system
US9304774B2 (en) Processor with a coprocessor having early access to not-yet issued instructions
EP3350706A1 (en) Generation and use of memory access instruction order encodings
CN104937541A (zh) 用于调用多线程加速器的装置和方法
US5864689A (en) Microprocessor configured to selectively invoke a microcode DSP function or a program subroutine in response to a target address value of branch instruction
TW201610842A (zh) 管理處理器流水線中的指令順序
WO2018169919A1 (en) Precise exceptions for edge processors
US11726912B2 (en) Coupling wide memory interface to wide write back paths
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
CN108182082A (zh) 一种流水处理双发射处理器记分板电路
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
CN104516726A (zh) 一种指令处理的方法及装置
Biswas et al. Introduction of architecturally visible storage in instruction set extensions
JP2008269114A (ja) マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
CN109683959B (zh) 处理器的指令执行方法及其处理器
US20140365751A1 (en) Operand generation in at least one processing pipeline
CN112559037B (zh) 一种指令执行方法、单元、装置及系统
WO2021061483A1 (en) Instruction processing apparatus, processor, and processing method for instruction ordering

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100616

Termination date: 20181122