CN1816798B - 用于包括运算标志的单指令多数据管理的系统、方法和设备 - Google Patents

用于包括运算标志的单指令多数据管理的系统、方法和设备 Download PDF

Info

Publication number
CN1816798B
CN1816798B CN028033485A CN02803348A CN1816798B CN 1816798 B CN1816798 B CN 1816798B CN 028033485 A CN028033485 A CN 028033485A CN 02803348 A CN02803348 A CN 02803348A CN 1816798 B CN1816798 B CN 1816798B
Authority
CN
China
Prior art keywords
field
fields
processor
tokens
word
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
CN028033485A
Other languages
English (en)
Other versions
CN1816798A (zh
Inventor
奈杰尔·C·帕韦里
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 CN1816798A publication Critical patent/CN1816798A/zh
Application granted granted Critical
Publication of CN1816798B publication Critical patent/CN1816798B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • 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/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter

Abstract

一种系统、方法和设备,提取并组合在能够处理单指令多数据(SIMD)的处理器处理多数据项中使用的运算标志。在SIMD处理器中,可通过相同的指令在任何特定的时间控制几块数据。但是,执行所述指令的结果根据被控制的数据项而改变。实施例提供了这样的结构,其能够提取和组合这些运算标志,从而在节省了空间的同时使处理器效率最高,并降低了存储的功率需求和产生的热量。

Description

用于包括运算标志的单指令多数据管理的系统、方法和设备
发明领域
本发明涉及用于单指令多数据(SIMD)管理的方法和计算机程序。具体地说,本发明管理与单独的数据项相关的运算标志,使具有SIMD能力的处理器能够逻辑地组合这些运算标志,从而能够在同一时间以简单和有效的方式同时地处理多数据项。
背景技术
在计算机的迅速发展中,在处理器速度、吞吐量、通信及容错的领域取得了很多进步。初期的计算机系统是独立的装置,其中处理器、存储器和外设全部通过单总线通信。后来,为提高性能,使用一条或多条总路线将几个处理器互连到存储器和外设。而且,通过诸如共享存储器、串行及并行端口、局域网(LAN)和广域网(WAN)的不同通信结构将分离的计算机系统联接到一起。进一步,为提高处理器指令的处理,开发了流水线,使处理器能够按级来执行指令,而且一个处理器能够同时地执行不同执行级中的不同指令。
为提高处理器的性能,进一步的发展产生了被称为单指令多数据(SIMD)技术的使用。SIMD是一种在其中由处理器能够同时地访问和运算地控制几块不同数据的技术。这种能够同时控制几个数据段的能力大幅度地提高了处理器性能。但是,即使进行相同的运算操作,每个数据段的结果和状态也有可能不同。例如,数据可以为负、零、具有进位或形成溢出条件。因为SIMD处理器可以同时地控制8块或更多数据,因此要求处理器至少保持8组这些条件标志。而且,为获得SIMD处理的优点,必需逻辑地组合这些条件或运算标志,以在适当的条件下出现适当的操作。因为必需在很多可能结果的不同结合下,控制8块或更多数据,因此必须将逻辑设置于处理器内,微处理器的设计会非常复杂。而且,必须将微处理器内有价值的空间专用于该处理,从而严重地影响了处理器的速度、大小、所需功率、及产生的热量。
因此,需要一种以简单方式来组合运算或条件标志的方法和计算机程序,从而能够在适当的条件下进行适当的操作。而且,该方法和计算机程序应能允许立即以简单的方式测试所有运算功能和条件标志。另外,在必要时,该方法和计算机程序能够简单地提取单独数据项的单独运算标志。
附图说明
通过以下对解释性实施例的描述,以及结合附图对权利要求进行的阅读,本发明的上述内容将变得显而易见,且能够更好地被理解,所述上述内容的全部构成了本发明的公开。上述内容、以下内容、及示出的公开内容关注的是本发明的示例实施例,但是,应该清楚地理解以上仅作说明和举例之用,不会限制本发明的内容。本发明的精神和范围仅由所附权利要求所限定。
以下是附图的简要说明,其中
图1A是用于本发明示例性实施例的一个具体例子,其示出了存储于处理器状态寄存器(PSR)中8个数据项的SIMD字中的运算标志;
图1B是用于本发明示例性实施例的一个具体例子,其示出了存储于PSR中4个数据项的SIMD字中的运算标志;
图1C是用于本发明示例性实施例的一个具体例子,其示出了存储于PSR中2个数据项的SIMD字中的运算标志;
图1D是用于本发明示例性实施例的一个具体例子,其示出了存储于PSR中1个数据项的SIMD字中的运算标志;
图2是根据本发明一个示例性实施例的系统图;
图3是根据本发明一般实施例的流程的例子;
图4是用于本发明一个示例性实施例的“与(AND)”功能的流程图;
图5是用于本发明一个示例性实施例的“或(OR)”功能的流程图;
图6是用于本发明一个示例性实施例的“提取(EXTRACT)”功能的流程图。
具体实施方式
在开始详细地描述本发明前,先提及以下内容。当适合时,在不同的附图中,使用相同的编号来标注相同、对应或相似组件。而且,在以下详细描述中,虽然本发明不局限于此,但可能提供一些示例性的大小/模式/值/范围。最后需要注意的是,为说明和讨论的简明起见,以及不使本发明变得模糊不清,在附图中未示出计算机网络的已知组件。
图1A-1D是根据本发明一个示例性实施例的SIMD字的代表例子,该SIMD字被用于指示与由具有SIMD能力处理器控制的数据项相关的运算标志。图1A表示具有标号为120、125、130、135、140、145、150和155的8组SIMD标志的SIMD字。每个SIMD组(120、125、130、135、140、145、150和155)有指定为N、Z、C和V的4个变量。N代表具有负值的数据项。Z代表具有零值的数据项。C代表数据项中的进位条件,在具有符号位的字节或字溢出的情况下出现该进位条件。V代表溢出条件,在相关数据项出现时出现该溢出条件。应注意,N、Z、C和V仅是运算标志的例子。对于本领域普通技术人员来说,可为运算功能产生的结果创建很多这样的标志或条件。因此,图1A-1D中示出的标志仅作为举例,不应认为本发明局限于仅使用这些标志或条件。
参照图1A,所示8组运算标志(120、125、130、135、140、145、150和155)中,每组标志与一个单独的数据项相关。因此,包括了N、Z、C和V的第一组标志与第一数据项120相关,第二组125,第三组130,第四组135,至第八组155与图2进一步所示的和以上讨论的第一、第二、第三、第四至第八数据项相关。应注意,本特定SIMD字包括32位。但是,本发明不应局限于使用32位SIMD字。有可能使用64位SIMD字,其中本发明的实施例可以使用该64位SIMD字来操作。
参照图1B,注意,它所示出的SIMD字与图1A所示的SIMD字类似,但是,仅设置了4组运算标志(120、125、130和135)。与图1A相同,使用相同的N、Z、C和V标识,除了每个字节的最低有效位被零值占用。
参照图1C,本图与图1A和图1B类似,不同的是,仅表示了2组运算标志(120和125)。因此,在每个半字中不使用的每个最低有效位被填为零值。
参照图1D,本图与图1A、1B和1C类似,不同的是,仅表示了1组运算标志(120).因此,在每个字中不使用的每个最低有效位被填为零值.
图2是根据本发明一个示例性实施例的系统图。如图1B所示,在图2中示出了运算标志120、125、130和135。但是,运算标志120、125、130和135中的每个都分别与数据项100、105、110和115相关。如上所讨论的,为了使诸如处理器165的具有SIMD能力处理器能够有效地控制多块数据(100,105,110,115),有必要逻辑地组合运算标志120、125、130、135所示的数学操作结果。使用以下参照图3至图6进行的说明和进一步讨论的方法和操作,通过组合功能模块160完成该功能。由组合功能模块160进行的组合功能结果是组合的运算标志变量170。然后,利用条件检查模块175确定根据组合运算标志变量170进行的下一操作。以下将更为详细地讨论。
再参照图2,如上所讨论的,流水线是计算机体系结构的通用形式。在处理器165中,至少示出了3级流水线。第一级流水线是取指操作180,在该操作从存储器(未图示)检索执行指令。该流水线第二级是解码操作185,在该操作由处理器对该指令解码。最后,本例的最后一级处理器流水线是执行190级,在该操作根据来自条件检查模块175的输入来执行指令。本领域普通技术人员应理解,图2所示的示例性处理器流水线仅是举例。可能有更多级流水线。
在对本发明使用的逻辑进行详细讨论前,应该指出,图3-6所示的流程图表示对应于以下各项的软件、固件、硬件、处理或操作:例如,配备在诸如软盘、CD-Rom(光盘只读存储器)、EP-Rom(可擦除可编程只读存储器)、RAM(随机访问存储器)、硬盘等存储媒介上的计算机程序的编码、编码的部分、指令、命令、对象、硬件之类。而且,可以以诸如C++的任何语言来编写计算机程序,但不局限于此。而且,由图2所示的处理器165执行图3至6所示的逻辑。
图3是根据本发明通常实施例的流程的例子。可将图3所示流程图使用的逻辑用于组合、分组或提取图1A至1B所示的运算标志。可由条件检查模块175执行的功能包括,但不仅限于以下条件:
1.如果任何字段有溢出;
2.如果任何字段无溢出;
3.如果任何字段为正(或为零);
4.如果任何字段为负;
5.如果任何字段为零;
6.如果任何字段不为零;
7.如果任何字段有进位;
8.如果任何字段没有进位;
9.如果所有字段有溢出
10.如果所有字段无溢出;
11.如果所有字段为正(或为零);
12.如果所有字段为负;
13.如果所有字段为零;
14.如果所有字段不为零;
15.如果所有字段有进位;
16.如果所有字段没有进位;
本领域普通技术人员应该理解,可以增加上述功能,以包括任何数学功能,包括:小于、大于、小于等于、大于等于。而且,可将数学操作符和功能与本发明相结合。
再参照图3,在操作200处理开始,并立即进行到操作210。在操作210中,确定作为提取或组合功能的基础的字段大小。字段大小可以是,但不仅限于:半字节、字节、半字、字或双字。提取和/或组合功能可包括:上述讨论的16项中的任何一项、或描述数学操作状态或结果的任何其他功能,该数学操作是由计算机或处理器进行的。然后,处理进行到操作220,其中它确定是否进行提取过程。如果进行提取过程,则处理进行到操作230。在操作230中,根据在操作210中确定的字段大小和所需特定的数据项,来提取图1A-1D所示的标志。然后,处理进行到操作270,其中在目标寄存器中存储提取的信息。一旦存储后,处理进行到操作280,其中处理终止。以下将详细讨论图6所示示例性实施例中的提取过程。
如果在操作220确定了提取过程不是所需的,则处理进行到操作240。在操作240中确定由组合功能模块160执行的组合过程对于图1A-1D所示运算标志来说是否需要。如果组合过程不是所需的,则处理进行到操作280,其中处理再次终止。但是,如果由组合功能模块160执行的组合过程对于与图1A-1D所示几个数据项相关的标志来说是所需的,则处理进行到操作250。在操作250中,根据在操作210确定的字段大小,来提取SIMD PSR寄存器中每个数据项的标志。然后,处理进行到操作260,其中根据所需功能,来组合提取的每个数据项标志。图4和图5分别进一步详细地讨论了“与”操作和“或”操作组合功能的特定例子。然后,处理进行到操作270,其中通过处理器访问,在目标寄存器中存储组合标志的结果。然后,处理进行到操作280。
图4是用于本发明一个示例性实施例的“与”功能的流程图,并可由组合功能模块160执行。处理“与”操作开始于操作300,并立即进行到操作310。在操作310中,确定数据字段大小是否为4位(一个半字节)长度。如果数据段大小是4位长度,则处理进行到操作320。在操作320,将目标寄存器的31至28位设置为等于SIMD PSR寄存器的第31位至28位“与”27位至24位、“与”23位至20位、“与”19位至16位、“与”15位至12位、“与”11位至8位、“与”7位至4位、“与”3位至0位。然后,处理过程进行到操作320,其中将目标寄存器的其余第27位到0位设置为0。然后,处理过程进行到操作395,其中处理终止。
再参照图4,如果在操作310确定4位数据字段没有指定,则处理过程进行到操作340。在操作340,确定8位(字节)数据字段是否指定。如果图1B所示的SIMD数据字中指定了8位数据字段,则处理过程进行到操作350。在操作350,将目标寄存器的31至24位设置为等于SIMD PSR寄存器的31位至24位“与”23位至16位、“与”15位至8位、“与”7位至0位。然后,处理进行到操作360,其中将目标寄存器的第23位至0位设置为0。然后,处理终止于操作395。
再参照图4,如果在操作340确定8位数据字段没有指定,则处理进行到操作370。在操作370,确定16位(半字)数据字段是否指定。如果指定了如图1C所示的16位数据字段,则处理进行到操作380。在操作380,将目标寄存器的31至16位设置为等于SIMD PSR寄存器的31位至16位“与”15位至0位。然后,处理进行到操作390,其中将目标寄存器的15位至0位设置为0。然后,在操作395,处理终止。
图5是用于本发明一个示例性实施例的“或”功能的流程图,并可由组合功能模块160执行。处理“或”操作开始于操作400,并立即进行到操作410。在操作410中,确定数据字段大小是否为4位(一个半字节)长度。如果数据段大小是4位长度,则处理进行到操作420。在操作420,将目标寄存器的31至28位设置为等于SIMD PSR寄存器的31位至28位“或(ORD)”27位至24位、“或”23位至20位、“或”19位至16位、“或”15位至12位、“或”11位至8位、“或”7位至4位、“或”3位至0位。然后,处理过程进行到操作420,其中将目标寄存器的其余第27位到0位设置为0。然后,处理过程进行到操作495,其中处理终止。
再参照图5,如果在操作410确定4位数据字段不是指定的,则处理过程进行到操作440。在操作440,确定是否指定了8位(字节)数据字段。如果指定了图1B所示SIMD数据字的8位数据字段,则处理过程进行到操作450。在操作450,将目标寄存器的31至24位设置为等于SIMD PSR寄存器的31位至24位“或”23位至16位、“或”15位至8位、“或”7位至0位。然后,处理进行到操作460,其中将目标寄存器第23位至0位设置为0。然后,处理终止于操作495。
再参照图5,如果在操作440确定没有指定8位数据字段,则处理进行到操作470。在操作470,确定是否指定了16位(半字)数据字段。如果如图1C所示的16位数据字段是指定的,则处理进行到操作480。在操作480,将目标寄存器的31至16位设置为等于SIMD PSR寄存器的31位至16位“或”15位至0位。然后,处理进行到操作490,其中将目标寄存器的15位至0位设置为0。然后,在操作495,处理终止。
图6是用于本发明一个示例性实施例的“提取(EXTRACT)”功能的流程图,并可由组合功能模块160执行。提取功能的执行开始于操作500,并立即进行到操作510。在操作510中,确定图1A所示SIMD字的数据字段大小是否为4位(一个半字节)长度。如果在操作510,确定数据段是4位长度,则处理进行到操作520。在操作520,将目标寄存器的31至28位设置为等于SIMD PSR寄存器的选定半字节7至0之一。然后,处理过程进行到操作570,其中处理终止。
但是,如果在操作510确定数据字段不等于4位长度,则处理过程进行到操作530。在操作530,确定数据字段是否为8位(一个字节)长度。如果SIMD字中的数据字段是如图1B所示的8位长度,则处理过程进行到操作540。在操作540,将目标寄存器的31至24位设置为等于SIMD PSR寄存器的选定字节3至0之一。再一次,处理进行到操作570,其中操作终止。
再参照图6,如果在操作530确定SIMD字中的数据字段不是一个字节长度,则处理进行到操作550。在操作550,确定SIMD字中的数据字段长度是否为16位(半字)。如果SIMD字中的数据字段为16位长度,则处理进行到操作560。在操作560,将目标寄存器的31至16位设置为等于SIMD PSR寄存器的选定半字1至0之一。然后,处理进行到操作570,其中处理终止。而且,如果在操作550中确定SIMD字中的数据字段长度不是16位,则处理进行到操作570,其中处理终止。
本发明得到的有益效果是,提供了简单、可靠、快速的方法和计算机程序,其允许具有SIMD能力处理器提取和/或组合运算标志,该运算标志与作为数学操作对象的多数据项相关.所述方法和计算机程序的特征为,不需要复杂的逻辑,从而节省了空间、功率需求和由处理器产生的热量.而且,由于所需逻辑简单,因此所述方法和计算机程序允许具有SIMD能力处理器以最大效率运行.
如我们所知,以上描述和图示仅作为举例,本领域普通技术人员应该理解,本发明的示例性实施例可进行若干变化与修改。因此,我们不希望局限于本文所图示的和所描述的,所附权利要求的范围内包括了上述所有变化与修改。

Claims (21)

1.一种用于管理多个运算标志的设备,其中一组M位运算标志与在N位字内的多个可变字段长度的数据项的每一个相关,M和N为正整数,所述设备包括:
状态寄存器,其用于存储包括多组运算标志的字,每个组具有M位并且与所述多个可变字段长度的数据项中的一个相关,其中所述状态寄存器能够存储可变字段长度的组;
组合功能模块,其检验存储在所述状态寄存器中的字,以确定该字的每组运算标志的数据项字段大小,并根据确定的数据项字段大小,将在该字内的所述这些组的多个运算标志逻辑地组合为M位的单一组合运算标志变量,并且将所述单一组合运算标志变量存储在第二寄存器中;
其中所述多个运算标志代表由处理器对所述多个数据项执行的数学操作的结果状态;以及
条件检查模块,其确定所述组合运算标志变量的结果状态,并使所述处理器根据所述结果状态执行适当的操作。
2.如权利要求1所述的设备,其中所述字段大小是基于半字节、字节、半字或字长度的其中之一。
3.如权利要求2所述的设备,其中所述多个运算标志进一步包括:
在所述多数据项中一个数据项的负数据值、零数据值、数据值的进位取值、或溢出条件。
4.如权利要求3所述的设备,其中所述组合功能模块执行“与”或“或”操作。
5.如权利要求1所述的设备,其中由所述条件检查模块确定的所述结果状态进一步包括:
任何字段有溢出;
任何字段无溢出;
任何字段为正或为零;
任何字段为负;
任何字段为零;
任何字段不为零;
任何字段有进位;
任何字段没有进位;
所有字段有溢出
所有字段无溢出;
所有字段为正或为零;
所有字段为负;
所有字段为零;
所有字段不为零;
所有字段有进位;
所有字段没有进位。
6.一种组合向处理器提交的多个运算标志的方法,其包括:
确定作为组合过程基础的存储在所述处理器的状态寄存器中的多组运算标志的每一组的字段大小,其中所述多组运算标志的每一组代表由所述处理器执行数学操作后的结果状态;
根据所述字段大小,从所述状态寄存器提取所述多组运算标志;
当选择了组合过程时,根据所选择的功能,来逻辑地组合所述多组运算标志;以及
在目标寄存器中存储所述多个运算标志的组合结果,供所述处理器进行访问。
7.如权利要求6所述的方法,其中所述字段大小是基于半字节、字节、半字、字长度的其中之一。
8.如权利要求7所述的方法,其中所述多个运算标志进一步包括:
在所述多数据项中一个数据项的负数据值、零数据值、数据值的进位取值、或溢出条件。
9.如权利要求8所述的方法,其中所述功能进一步包括:“与”或“或”操作。
10.如权利要求9所述的方法,其中所述功能可用于确定所述多个数据项的结果状态,所述结果状态包括:
任何字段有溢出;
任何字段无溢出;
任何字段为正或为零;
任何字段为负;
任何字段为零;
任何字段不为零;
任何字段有进位;
任何字段没有进位;
所有字段有溢出
所有字段无溢出;
所有字段为正或为零;
所有字段为负;
所有字段为零;
所有字段不为零;
所有字段有进位;
所有字段没有进位。
11.一种装置,包括:
确定作为组合过程基础的存储在所述处理器的状态寄存器中的多组运算标志的每一组的字段大小的模块,其中所述多组运算标志的每一组代表由所述处理器执行数学操作的结果状态;
根据所述字段大小从所述状态寄存器提取所述多组运算标志的模块;
当选择了组合过程时根据所选择的功能来逻辑地组合所述多组运算标志的模块;以及
在目标寄存器中存储所述多个运算标志的组合结果供所述处理器进行访问的模块。
12.如权利要求11所述的装置,其中所述字段大小是基于半字节、字节、半字、字长度的其中之一。
13.如权利要求12所述的装置,其中所述多个运算标志进一步包括:
在所述多数据项中一个数据项的负数据值、零数据值、数据值的进位取值、或溢出条件.
14.如权利要求13所述的装置,其中所述功能进一步包括:“与”或“或”操作。
15.如权利要求14所述的装置,其中所述功能可用于确定所述多个数据项的结果状态,所述结果状态包括:
任何字段有溢出;
任何字段无溢出;
任何字段为正或为零;
任何字段为负;
任何字段为零;
任何字段不为零;
任何字段有进位;
任何字段没有进位;
所有字段有溢出
所有字段无溢出;
所有字段为正或为零;
所有字段为负;
所有字段为零;
所有字段不为零;
所有字段有进位;
所有字段没有进位。
16.一种提取向处理器提交的多个运算标志的方法,其包括:
确定作为组合过程基础的存储在所述处理器的状态寄存器中的多组运算标志的每一个的字段大小,其中所述多个运算标志的每一组代表由所述处理器执行数学操作的结果状态;
根据所述字段大小,从所述状态寄存器提取所述多组运算标志,所述多组运算标志与一个选定的数据项相关;以及
在目标寄存器中存储所述多个运算标志的提取结果,供处理器进行访问。
17.如权利要求16所述的方法,其中所述字段大小是基于半字节、字节、半字、字长度的其中之一。
18.如权利要求16所述的方法,其中所述多个运算标志进一步包括:
在所述多数据项中一个数据项的负数据值、零数据值、数据值的进位取值、或溢出条件。
19.一种用于管理多个运算标志的系统,其中一组M位运算标志与在N位字内的多个可变字段长度的数据项的每一个相关,M和N为正整数,所述系统包括:
处理器,其具有:用于存储包括多组运算标志的字的第一寄存器,每个组具有M位并且与所述多个可变字段长度的数据项中的一个相关;以及用于存储M位的单一组合运算标志变量的第二寄存器;
组合功能模块,其检验该字以确定每组运算标志的数据项字段大小,并根据确定的数据项字段大小,将在该字内的所述这些组的多个运算标志逻辑地组合为所述M位的单一组合运算标志变量并且将所述单一组合运算标志存储在所述处理器的第二寄存器中,其中所述多个运算标志的每一个代表由所述处理器执行的用于获得所述多个数据项中的一个的数学操作的结果状态;以及
所述处理器包括与所述组合功能模块耦合的条件检查模块,所述处理器接收所述单一组合运算标志变量,并根据所述单一组合运算标志变量的结果状态确定随后执行的操作。
20.如权利要求19所述的系统,其中所述处理器包括至少三级流水线。
21.如权利要求20所述的系统,其中所述至少三级流水线包括取指级、解码级和执行级。
CN028033485A 2000-12-27 2001-11-21 用于包括运算标志的单指令多数据管理的系统、方法和设备 Expired - Fee Related CN1816798B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/748,165 US20020083311A1 (en) 2000-12-27 2000-12-27 Method and computer program for single instruction multiple data management
US09/748,165 2000-12-27
PCT/US2002/020774 WO2005106646A1 (en) 2000-12-27 2001-11-21 Method and computer program for single instruction multiple data management

Publications (2)

Publication Number Publication Date
CN1816798A CN1816798A (zh) 2006-08-09
CN1816798B true CN1816798B (zh) 2010-05-12

Family

ID=25008290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN028033485A Expired - Fee Related CN1816798B (zh) 2000-12-27 2001-11-21 用于包括运算标志的单指令多数据管理的系统、方法和设备

Country Status (7)

Country Link
US (1) US20020083311A1 (zh)
JP (1) JP2006518060A (zh)
KR (1) KR100735944B1 (zh)
CN (1) CN1816798B (zh)
AU (1) AU2001298114A1 (zh)
TW (1) TWI230355B (zh)
WO (1) WO2005106646A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3793062B2 (ja) * 2001-09-27 2006-07-05 株式会社東芝 メモリ内蔵データ処理装置
US7392368B2 (en) * 2002-08-09 2008-06-24 Marvell International Ltd. Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements
WO2004015563A1 (en) 2002-08-09 2004-02-19 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
US6986023B2 (en) 2002-08-09 2006-01-10 Intel Corporation Conditional execution of coprocessor instruction based on main processor arithmetic flags
US8082419B2 (en) 2004-03-30 2011-12-20 Intel Corporation Residual addition for video software techniques
US7219213B2 (en) * 2004-12-17 2007-05-15 Intel Corporation Flag bits evaluation for multiple vector SIMD channels execution
CN101120310B (zh) 2005-02-14 2010-06-09 皇家飞利浦电子股份有限公司 一种用于并行地处理多个操作数的电子电路
EP1870803A4 (en) * 2005-03-31 2008-04-30 Matsushita Electric Ind Co Ltd PROCESSOR
JP2008071130A (ja) * 2006-09-14 2008-03-27 Ricoh Co Ltd Simd型マイクロプロセッサ
KR100834412B1 (ko) 2007-05-23 2008-06-04 한국전자통신연구원 모바일 멀티미디어 연산의 효율적인 처리를 위한 병렬 프로세서
US8458684B2 (en) * 2009-08-19 2013-06-04 International Business Machines Corporation Insertion of operation-and-indicate instructions for optimized SIMD code
KR102102166B1 (ko) 2013-04-22 2020-04-21 삼성전자 주식회사 심드 구조 기반의 쓰레드 분기 관리 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US6026484A (en) * 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589087A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Condition register architecture for a primitive instruction set machine
DE69519449T2 (de) * 1994-05-05 2001-06-21 Conexant Systems Inc Raumzeigersdatenpfad
US5903760A (en) * 1996-06-27 1999-05-11 Intel Corporation Method and apparatus for translating a conditional instruction compatible with a first instruction set architecture (ISA) into a conditional instruction compatible with a second ISA
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
US6038652A (en) * 1998-09-30 2000-03-14 Intel Corporation Exception reporting on function generation in an SIMD processor
GB2355084B (en) * 1999-07-21 2004-04-28 Element 14 Ltd Setting condition values in a computer
US6714197B1 (en) * 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US6026484A (en) * 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority

Also Published As

Publication number Publication date
KR20060103965A (ko) 2006-10-09
TWI230355B (en) 2005-04-01
JP2006518060A (ja) 2006-08-03
WO2005106646A1 (en) 2005-11-10
AU2001298114A1 (en) 2005-11-16
CN1816798A (zh) 2006-08-09
US20020083311A1 (en) 2002-06-27
KR100735944B1 (ko) 2007-07-06

Similar Documents

Publication Publication Date Title
CN100361072C (zh) 流水线处理一系列处理指令的方法和设备
CN104919416B (zh) 用于提供矢量地址冲突检测功能的方法、装置、指令和逻辑
EP0851343B1 (en) System for processing floating point operations
CN1188778C (zh) 处理指令的方法、处理器和数据处理系统
CN106648553B (zh) 用于改善连续的事务性存储器区的吞吐量的系统、方法和装置
US6609189B1 (en) Cycle segmented prefix circuits
CN104915181B (zh) 用于条件存储器错误帮助抑制的方法、处理器和处理系统
KR100323374B1 (ko) 부동소숫점유니트에서의다이나믹레지스터관리장치및그방법
CN101488083B (zh) 用于转换向量数据的方法、装置和指令
CN103959236B (zh) 用于提供向量横向多数表决功能的处理器、设备和处理系统
CN1816798B (zh) 用于包括运算标志的单指令多数据管理的系统、方法和设备
CN103827813A (zh) 用于提供向量分散操作和聚集操作功能的指令和逻辑
CN103827814A (zh) 用于提供利用跨越功能的向量加载操作/存储操作的指令和逻辑
CN105955704A (zh) 用于提供向量横向比较功能的指令和逻辑
CN101681259A (zh) 用于使用局部条件码寄存器以加速管线处理器中的条件指令执行的系统和方法
EP1228427A1 (en) Exception handling for simd floating point-instructions
CN110321159A (zh) 用于实现链式区块操作的系统和方法
CN103827815A (zh) 用于提供利用跨越和掩码功能的向量加载和存储的指令和逻辑
CN101495959A (zh) 组合微处理器内的多个寄存器单元的方法和系统
US6247117B1 (en) Apparatus and method for using checking instructions in a floating-point execution unit
CN102890624B (zh) 用于管理无序毫码控制操作的方法和系统
CN110058886A (zh) 用于计算两个区块操作数中的半字节的数量积的系统和方法
US6978358B2 (en) Executing stack-based instructions within a data processing apparatus arranged to apply operations to data items stored in registers
CN100543670C (zh) 产生扩展精度的整数除的商和余数的方法和装置
CN101438236A (zh) 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100512

Termination date: 20131121