CN100390729C - 利用规格字段指令编码的处理器 - Google Patents
利用规格字段指令编码的处理器 Download PDFInfo
- Publication number
- CN100390729C CN100390729C CNB988114925A CN98811492A CN100390729C CN 100390729 C CN100390729 C CN 100390729C CN B988114925 A CNB988114925 A CN B988114925A CN 98811492 A CN98811492 A CN 98811492A CN 100390729 C CN100390729 C CN 100390729C
- Authority
- CN
- China
- Prior art keywords
- instruction
- processor
- bundles
- type
- performance element
- 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
Links
- 230000003068 static effect Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 abstract description 4
- 238000000034 method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明所开发的具有大寄存器堆(10)的处理器利用规格字段将一组最常用的指令序列编码成长指令字格式。处理器的指令集包括一些各自属于多个不同类型的指令。处理器的执行单元类似地也分为一些不同类型,每个类型的指令可以在一个或多个类型的执行单元上执行。这些指令组合到一些称为指令束的128位长的排列好的容纳槽中,每个指令束包括多个指令隙和一个规定指令隙与执行单元类型之间的对应关系的规格字段。
Description
本发明涉及处理器体系结构技术领域,具体地说,与可提高处理器操作效率的指令编码方法和装置有关。
在高速计算机处理器技术领域,已有各种途径来解决怎样使指令编码最好的问题。早期,Intel公司制造的处理器采用可变长度编码,不同的指令用不同的位长度编码。虽然这个途径在计算机工业中得到广泛的采纳,但这种Intel体系结构(iA)编码方法是通过精简指令集计算(RISC)机器加以改善的。
在一个RISC机器中,所有的字段均匀编码,每个指令具有固定的长度(例如32个位)。对于编码采用三个操作数的指令这些固定的指令字段的32位长度提供了足够的位置,或者说“空间”,其中每个操作数含有一个5位的寄存器标识符。因此,RISC途径对操作码位组、立即值、偏置等编码提供了的足够空间。
近来,在计算机工业中已经研究了对具有在单个机器周期内处理许多指令能力的高效率并行处理机器的要求。这些机器通常称为超长指令字(VLIW)或宽字计算机处理器,能同时处理几个指令。举例来说,在美国专利No.4,833,599中所揭示的一种VLIW多处理器每个时钟周期能处理1024位的指令。
在VLIW或宽字机器中所出现的问题之一是怎样对要访问大寄存器堆(例如有128个寄存器)的指令编码。一种方法是Hewlett-Packard公司在他们初创的宽字设计中所采用的,将指令组合在含有三个42位指令的单个128位的条目内(剩余2个位)。这128位的条目内的三个指令每个在类型上都有限制。也就是说,第一个指令限制为存储器型指令,第二个指令必需是整数型指令,而第三个指令限制为浮点型指令。
这种宽字、固定的128位格式的根本问题是大大地扩展了码字,从而导致对一些指令字节打包很不经济。例如,一个LOAD指令可能只有一、两个字节长,但是在这种现有技术的宽字格式中仍然必需占用42个位。在一些指令序列中,每个相继的128位指令条目内只使用一、两个指令,因此这种低效率就更为严重。
熟悉超标量处理器的人员可以理解,RISC机器在需要同时处理大量指令时也遇到困难。例如,一个设计成并行处理许多指令的RISC处理器需要大量的多路复用器和相关的布线,以将各种指令传送给适当的功能单元。这实际上也就限制了能予以并行处理的指令的数目。
因此,有必要开发一种处理器,这种处理器能减少过去这些指令编码方法和装置中的浪费,并提高效率。正如下面将看到的那样,本发明提供了一种能同时执行经高效率对指令编码的多个接连的指令的处理器。
这里所揭示的处理器用规格(template)字字段在长指令字格式下对一些最有用的指令序列进行编码。在一个实施例中,本发明的处理器包括一个具有128个寄存器的寄存器堆。处理器的指令组包括一些对这128个寄存器定址的指令,其中每个指令是多种不同指令类型中的一种。处理器的各执行单元同样也分为几种不同类型,其中每种指令可以用一种或几种执行单元执行。
按照本发明,指令组合到称为指令束(bundle)的长为128位的排列好的容纳槽(container)中。每个指令束包括第一、第二、第三三个指令隙(instruction slot)和一个规定这些指令隙与执行单元类型对应关系的规格字段。本发明所采用的改进的指令编码方案与现有技术的相比具有较大的灵活性和较高的效率。
下面将结合附图对本发明进行详细说明,但这只是说明性的,这些具体的实施例不应认为是对本发明的限制。在这些附图中:
图1例示了按照本发明的处理器的一个实施例的一种体系结构寄存器模型;
图2示出了本发明的一个实施例的指令类型与执行单元类型之间的关系;
图3为示出按照本发明的一个实施例的一种用于指令编码的指令束格式的示意图;以及
图4示出了对于本发明的一个实施例的对指令隙映射进行编码的规格字段。
本发明包括利用规格字段进行指令编码的处理器。以下的说明中,设定了一些具体的细节,例如寄存器堆模型、位长度、具体编码方案等,以便清楚、透彻地了解本发明。然而熟悉数据处理技术的人员将能理解,本发明的实现并不需要符合这些细节。在其它例子中,对于众所周知的信号、器件和电路没有进行详细说明,以免反而不能突出本发明的主题。
图1例示了在本发明的处理器的一实施例中所用的体系结构寄存器模型。熟悉处理器设计领域的人员可以理解,一个处理器的体系结构状态包括各个处理器寄存器和存储器的内容。按照隐埋在处理器内的控制执行次序的一组规则,指令执行的结果在体系结构上是可以反映出来的。如图所示,体系结构寄存器模型10包括一个为所有的整数和多媒体计算提供中心资源的通用寄存器堆12。这些通用寄存器是一组共128个(64位)寄存器,编号为gr0至gr127,可为所有程序和所有特权级别所用。
应用寄存器模型10还包括一个用于所有浮点运算的浮点寄存器组14。这些浮点寄存器编号为fr0至fr127,在本发明的处理器的一种实现方式中类似地构成了一个有128个(82位)寄存器的组。图1中还示出了编号为pr0至pr63的判定寄存器15。判定寄存器15是一些用于判断和分支的单位寄存器。这些寄存器用来保持比较指令的结果,通常用于指令的条件执行。
分支寄存器堆17用来保持分支信息。例如,分支寄存器br0至br7都是64位寄存器,可以用来规定间接分支的分支目标地址。
图1中还示出了一个指令指针18,用来保持含有当前正在执行的指令的“指令束”地址。正如稍后将详细说明的那样,术语“指令束”是指组名在一个128位的字段内的三个指令和一个规格字段。
最后,寄存器模型10还包括一个应用寄存器堆19,它包括一些用于应用可视处理器功能的专用数据寄存器和控制寄存器。通常,这些寄存器由应用软件访问。可以理解,图1所示的寄存器模型可以包括其他一些类型的实现各种处理器功能的寄存器。列出本发明的处理器内所用的各种寄存器对于理解本文所揭示的新颖概念来说并不是实质性的。
现在参见图2,图中示出了表20,其列出本发明的一个实施例中的指令类型和执行指令的执行单元类型。每个指令归于六个不同类型中的一个类型。这六个不同类型的指令为:整数算术逻辑单元(ALU)指令,非ALU整数指令,存储器指令,浮点指令,分支指令,以及长立即指令。可执行这些不同类型的指令的相应类型的执行单元示于表20的最右边的那一列。这些不同类型的执行单元为:整数执行单元(I单元),存储器执行单元(M单元),浮点执行单元(F单元),以及分支执行单元(B单元)。
图3示出了在本发明的处理器内是怎样对指令编码的。图3例示了一个128位(排列成16个字节)指令束30,含有三个41位的指令隙、一个4位的规格字段和一个结束位(5位)。图3这种指令束30的格式示为结束位占用位位置0,规格字段占用位位置1-4,而指令隙1、2和3分别占用位位置5-45、46-86和87-127。
按照图3所示的指令格式,处理器指令集内的所有指令都是41位长。4位的规格字段允许对多种由不同类型的指令构成的指令序列进行编码。也就是说,规格字段规定各指令隙与执行单元类型的一一对应关系。规格字段还规定了指令束内的指令组边界。一个指令组是一组可同时执行的静连续指令(statically coniguous instruction)。例如,一个指令组没有读后写或写后写寄存器寄存器的相互依赖关系。一个指令组含有至少一个指令,而对最大的指令数没有体系结构上的限制。熟悉这技术的人员因此可理解,指令组的边界与指示束的边界没有固定的关系,它们直接由规格字段和S位静态地指出。
S位规定在当前指令束的最后一个指令(即指令隙2)后是否出现一个指令组边界。例如,在一种当前的实现方式中,如果S位置为“0”,就表示当前这个指令组将延伸入紧接的下个指令束的第一个指令(即指令隙0)。也就是说,在这个指令束的最后一个指令后没有指令组边界。相反,如果S位设置为“1”,就表示在指令束内的最后一个指令后出来一个指令组边界。
现在参见图4,图中示出了为本发明的处理器的一个实施例设计的规格字段编码和指令隙映射。如上面所述,规格字段规定了两个属性:指令束内的指令组边界,以及指令隙至执行单元类型的映射。应注意的是,并不是这两个属性的所有组合都是允许的。在本实施例中所规定的组合方式例示于图4的表40。熟悉计算机技术的人员可以理解,表40提供了对于通常在现代计算机程序中所遇到的最有用的一些指令序列的指令编码。
表40的右边三列相应于一个指令束内的三个指令隙。右边三列的每一列内列出的是受指令隙控制的执行单元类型。例如,规格6规定在指令隙0内的指令由处理器的存储器执行单元执行,在指令隙1内的指令由浮点执行单元执行,而在指令隙2内的指令由整数执行单元执行。
注意,表40包括分别与规格1和规格5关联的分开两个指令隙的双线42和43。双线42分开规格1内的指令隙1和2,而双线43分开规格5内的指令隙0和1。这些双线表示在这一点出现一个指令组边界。基本上,双线起着一个在两个相邻指令之间的结束位的作用。这意味着,例如在规格5的情况下,指令隙0的指令允许取决于指令隙1的指令。通过对规格字段编码来规定一个指令束内的两个指令之间的结束点,使编译器可以向硬件指出在代码内哪里有依从关系。熟悉计算机体系结构的人员可以理解,除了可以规定指令束间的指令组边界(通过S位)外还可以规定指令束内的指令组边界(通过规格字段1和5)是一个极有价值的处理器功能。
在一个指令束内,执行次序是从指令隙0至指令隙2。如果S位为0,含有当前指令束内最后一个指令(指令隙2)的指令组就要延续到紧接着的下个指令束内的第一个指令(指令隙0)。但是,如果S位为1,在当前指令束的最后一个指令后就出现一个指令组边界。可以理解,使用结束位在执行一个高度连贯的代码中是很有益的。例如,一个包括一个LOAD后接一个ADD再接一个STORE操作的序贯代码可以简单地依次列出,再在这三个操作后用一个S位。过去,对于序列中的每个指令都必需占用一个完全的128位条目,即使是对这个指令的编码可能只要占用一个或两个字节。
还应理解的是,按照本发明得到的程序包括一系列指令,它们按束封装并组织成由S位静态分界各指令组并且用规格规定一个指令束内的S位。指令组和指令组内的指令排序如下。指令束按最低到最高的存储器地址的次序排列。对于指令束内的指令,较低存储器地址的排在较高存储器地址的前面。
存储器内指令束的字节次序是小的在前。这意味着规格字段和S位包含在指令束的字节0内。在一个指令束内,指令和指令组按从指令隙0至指令隙2的次序排列,如图3所示。
可以将一个普通的编译器与本发明的处理器配合使用。然而,很明显要将它加以修改,以便利用上述指令编码方案的优点。概括地说,这个编译器应设计成利用规格字段来提供尽可能紧凑的代码。
熟悉该技术领域的专业人员可以理解,在图4的表40中呈现的没有使用的规格值是在所例示的实施例中所保留的。这些未使用的规格值呈现为规格3、A、D和F的一些空行。这些空的规格可用于对处理器体系结构的进一步扩展。在处理器内规定这些未使用的规格值将引起非法操作故障。
还应指出的是,对于规格2来说,在指令隙1的列中的L单元标志表示一个长立即型指令的位置标志符。此外,对于本发明的一个实施例来说,在规格2的指令隙2的列内的I单元标志限制在这个特定指令隙内只可以编入movl、break和nop这些操作。在这个指令隙内编入其他指令会导致非法操作故障。另一个限制是,在所列举的这个实施例中,如果将一个movl指令码编入一个规格2之外的I单元指令隙,就会导致非法操作故障。
Claims (31)
1.一种处理器,包括:
一个具有多个寄存器的寄存器堆;
多个执行单元,每个执行单元是多个类型中的一个类型,其中:所述执行单元被配置为接收指令集,该指令集包括访问这些寄存器的指令,每个指令是多个指令类型中的一个类型,其中每个类型的指令在一个或多个类型的执行单元上执行;以及
其中还把这些指令编码成一些指令束,每个指令束包括组合在一个N位字段内的多个指令和一个规格字段,这些指令分别配置在这个N位字段的一些指令隙内,而规格字段规定指令隙与执行单元类型之间对应关系,以便在指令束内的具有特定指令类型的指令被与该指令束相关联的规格字段所指定的适当执行单元所执行。
2.权利要求1的处理器,其中:所述规格字段还规定在指令束内的指令组的边界,其中一个指令组包括一组同时执行的静态接连的指令。
3.权利要求2的处理器,其中:所述指令类型包括整数算术逻辑单元、存储器、浮点和分支指令。
4.权利要求3的处理器,其中:所述指令类型还包括非算术逻辑单元整数和长立即指令。
5.权利要求4的处理器,其中:所述执行单元类型包括整数、存储器、浮点和分支执行单元。
6.权利要求5的处理器,其中:所述规格字段包括一个4位字段。
7.任何权利要求1、2、3、4、5或6的处理器,其中:所述指令束包括第一、第二和第三指令隙,每个指令束有128位长。
8.权利要求7的处理器,其中:所述第一、第二和第三指令隙各有41位长。
9.权利要求7的处理器,其中:所述指令束还包括一个规定一个指令束间指令组边界的结束位。
10.权利要求9的处理器,其中:如果所述结束位处在一个第一状态,那么当前指令束的最后一个指令后就出现一个指令组边界。
11.权利要求10的处理器,其中:如果所述结束位处在一个第二状态,那么一个含有当前指令束的最后一个指令的指令组延伸入与紧接的下个指令束有关的第一指令隙。
12.权利要求11的处理器,其中:所述当前指令束的最后一个指令包括第三指令隙。
13.权利要求9的处理器,还包括一个存储指令束的存储器,这些指令束在存储器内排列的字节次序以低地址的在前为格式,规格字段和结束位包含在指令束的第一个字节内。
14.权利要求13的处理器,其中:所述指令束在存储器内按从最低到最高存储器地址的次序排列。
15.权利要求14的处理器,其中:所述指令束内具有最低存储器地址的指令排在所述指令束内具有最高存储器地址的指令之前。
16.权利要求1的处理器,其中:所述多个寄存器包括128个寄存器。
17.一种处理器,包括:
一个具有多个寄存器的寄存器堆;
多个执行单元,每个执行单元是多个类型中的一个类型,其中:所述执行单元被配置为接收指令集,该指令集包括访问这些寄存器的指令,每个指令是多个指令类型中的一个类型,其中每个类型的指令在一个或多个类型的执行单元上执行;以及
并且其中还把这些指令编码成一些指令束,每个指令束包括组合在一个N位字段内的多个指令和一个规格字段,这些指令分别配置在这个N位字段的一些指令隙内,规格字段规定指令隙与执行单元类型之间的对应关系,规格字段的至少一个编码还规定本指令束内指令组的边界,而一个指令组包括一组同时执行的静态接连的指令,以便在指令束内的具有特定指令类型的指令被与该指令束相关联的规格字段所指定的适当执行单元所执行。
18.权利要求17的处理器,其中:所述指令束各有128位长,包括第一、第二和第三指令隙。
19.权利要求17的处理器,其中:所述指令类型包括整数算术逻辑单元、存储器、浮点和分支指令。
20.权利要求19的处理器,其中:所述指令类型还包括非算术逻辑单元整数和长立即指令。
21.权利要求20的处理器,其中:所述执行单元类型包括整数、存储器、浮点和分支执行单元。
22.权利要求17的处理器,其中:每个指令束还包括一个规定一个指令束间指令组边界的结束位。
23.权利要求22的处理器,其中:如果所述结束位处在一个第一状态,那么当前指令束的最后一个指令后就出现一个指令组边界。
24.权利要求23的处理器,其中:如果所述结束位处在一个第二状态,那么一个含有当前指令束的最后一个指令的指令组延伸入紧接的下个指令束有关的第一指令隙。
25.权利要求24的处理器,其中:所述当前指令束的最后一个指令包括第三指令隙。
26.权利要求22的处理器,还包括:一个存储指令束的存储器,这些指令束在存储器内排列的字节次序以低地址的在前为格式,规格字段和结束位包含在指令束的第一个字节内。
27.权利要求26的处理器,其中:所述指令束在存储器内按从最低到最高存储器地址的次序排列。
28.权利要求27的处理器,其中:所述指令束内具有最低存储器地址的指令排在所述指令束内具有最高存储器地址的指令之前。
29.权利要求17的处理器,其中:所述多个寄存器包括128个寄存器。
30.一种处理器,包括:
一个具有多个寄存器的寄存器堆;
多个执行单元,每个执行单元是多个类型中的一个类型,其中:所述执行单元被配置为接收指令集,该指令集包括访问这些寄存器的指令,每个指令是多个指令类型中的一个类型,其中每个类型的指令在一个或多个类型的执行单元上执行;以及
这些指令编码成一些指令束,每个指令束包括组合在一个N位字段内的多个指令、一个结束位和一个规格字段,这些指令分别配置在这个N位字段的一些指令隙内,规格字段规定指令隙与执行单元类型之间的对应关系,规格字段的至少一个编码还规定本指令束内指令组的边界,一个指令组包括一组同时执行的静态接连的指令,结束位规定指令束间指令组边界,以便在指令束内的具有特定指令类型的指令被与该指令束相关联的规格字段所指定的适当执行单元所执行。
31.一种处理器,包括:
一个具有多个寄存器的寄存器堆;
多个执行单元,每个执行单元是多个类型中的一个类型,其中:所述执行单元被配置为接收指令集,该指令集包括访问这些寄存器的指令,每个指令是多个指令类型中的一个类型,其中每个类型的指令在一个或多个类型的执行单元上执行;以及
这些指令还编码成一些指令束,每个指令束包括组合在一个N位字段内的多个指令和一个规格字段,这些指令分别配置在这个N位字段的一些指令隙内,规格字段规定指令隙与执行单元类型之间的对应关系,而未使用的规格字段的编码可用于处理器的进一步扩展,以便在指令束内的具有特定指令类型的指令被与该指令束相关联的规格字段所指定的适当执行单元所执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/949,279 | 1997-10-13 | ||
US08/949,279 US5922065A (en) | 1997-10-13 | 1997-10-13 | Processor utilizing a template field for encoding instruction sequences in a wide-word format |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1279783A CN1279783A (zh) | 2001-01-10 |
CN100390729C true CN100390729C (zh) | 2008-05-28 |
Family
ID=25488837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB988114925A Expired - Fee Related CN100390729C (zh) | 1997-10-13 | 1998-10-08 | 利用规格字段指令编码的处理器 |
Country Status (8)
Country | Link |
---|---|
US (1) | US5922065A (zh) |
EP (1) | EP1023660B1 (zh) |
CN (1) | CN100390729C (zh) |
AU (1) | AU9796498A (zh) |
DE (1) | DE69833008T2 (zh) |
GB (1) | GB0009284D0 (zh) |
HK (1) | HK1034333A1 (zh) |
WO (1) | WO1999019793A1 (zh) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6360313B1 (en) | 1993-11-05 | 2002-03-19 | Intergraph Corporation | Instruction cache associative crossbar switch |
EP1186995B1 (en) * | 1993-11-05 | 2003-09-03 | Intergraph Corporation | Instruction memory with associative cross-bar switch |
JP3790607B2 (ja) * | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
US6081884A (en) * | 1998-01-05 | 2000-06-27 | Advanced Micro Devices, Inc. | Embedding two different instruction sets within a single long instruction word using predecode bits |
JP3541669B2 (ja) * | 1998-03-30 | 2004-07-14 | 松下電器産業株式会社 | 演算処理装置 |
US7111231B1 (en) | 1999-02-24 | 2006-09-19 | Intellisync Corporation | System and methodology for dynamic application environment employing runtime execution templates |
US7039790B1 (en) * | 1999-11-15 | 2006-05-02 | Texas Instruments Incorporated | Very long instruction word microprocessor with execution packet spanning two or more fetch packets with pre-dispatch instruction selection from two latches according to instruction bit |
US6618801B1 (en) * | 2000-02-02 | 2003-09-09 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing two architectures in a chip using bundles that contain microinstructions and template information |
US6721875B1 (en) * | 2000-02-22 | 2004-04-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing a single-syllable IP-relative branch instruction and a long IP-relative branch instruction in a processor which fetches instructions in bundle form |
US6351796B1 (en) | 2000-02-22 | 2002-02-26 | Hewlett-Packard Company | Methods and apparatus for increasing the efficiency of a higher level cache by selectively performing writes to the higher level cache |
US7181595B1 (en) * | 2000-05-11 | 2007-02-20 | Mindspeed Technologies, Inc. | Method for decoding composite VLIW packets utilizing a tree structure |
US6687806B1 (en) * | 2000-06-15 | 2004-02-03 | Advanced Micro Devices, Inc. | Apparatus and method for generating 64 bit displacement and immediate values |
US6415376B1 (en) | 2000-06-16 | 2002-07-02 | Conexant Sytems, Inc. | Apparatus and method for issue grouping of instructions in a VLIW processor |
US6799262B1 (en) * | 2000-09-28 | 2004-09-28 | International Business Machines Corporation | Apparatus and method for creating instruction groups for explicity parallel architectures |
US6779106B1 (en) | 2000-09-28 | 2004-08-17 | International Business Machines Corporation | Apparatus and method for an enhanced integer divide in an IA64 architecture |
US6912647B1 (en) * | 2000-09-28 | 2005-06-28 | International Business Machines Corportion | Apparatus and method for creating instruction bundles in an explicitly parallel architecture |
US6886094B1 (en) | 2000-09-28 | 2005-04-26 | International Business Machines Corporation | Apparatus and method for detecting and handling exceptions |
US6883165B1 (en) | 2000-09-28 | 2005-04-19 | International Business Machines Corporation | Apparatus and method for avoiding deadlocks in a multithreaded environment |
US7330830B1 (en) * | 2000-10-25 | 2008-02-12 | Thomson Financial Inc. | Distributed commerce system |
US7305360B1 (en) | 2000-10-25 | 2007-12-04 | Thomson Financial Inc. | Electronic sales system |
US7028164B2 (en) * | 2000-12-29 | 2006-04-11 | Stmicroelectronics, Inc. | Instruction fetch apparatus for wide issue processors and method of operation |
GB2374950B (en) * | 2001-04-23 | 2005-11-16 | Imagination Tech Ltd | Expanded functionality of processor operations within a fixed width instruction encoding |
JP4542722B2 (ja) * | 2001-04-25 | 2010-09-15 | 富士通株式会社 | 命令処理方法 |
US7062634B1 (en) * | 2002-01-29 | 2006-06-13 | Stmicroelectronics Limited | Processor and a method for handling and encoding no-operation instructions |
US6948053B2 (en) | 2002-02-25 | 2005-09-20 | International Business Machines Corporation | Efficiently calculating a branch target address |
US7577944B2 (en) * | 2002-03-18 | 2009-08-18 | Hewlett-Packard Development Company, L.P. | Unbundling, translation and rebundling of instruction bundles in an instruction stream |
EP1367484B1 (en) | 2002-05-31 | 2013-07-24 | STMicroelectronics Limited | Instruction encoding |
US7203821B2 (en) * | 2003-01-08 | 2007-04-10 | Sun Microsystems, Inc. | Method and apparatus to handle window management instructions without post serialization in an out of order multi-issue processor supporting multiple strands |
US8484441B2 (en) * | 2004-03-31 | 2013-07-09 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths |
US9047094B2 (en) * | 2004-03-31 | 2015-06-02 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor |
US7949856B2 (en) * | 2004-03-31 | 2011-05-24 | Icera Inc. | Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit |
GB2414308B (en) * | 2004-05-17 | 2007-08-15 | Advanced Risc Mach Ltd | Program instruction compression |
US20060174089A1 (en) * | 2005-02-01 | 2006-08-03 | International Business Machines Corporation | Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture |
US20080162819A1 (en) * | 2006-02-03 | 2008-07-03 | Luick David A | Design structure for self prefetching l2 cache mechanism for data lines |
US7447879B2 (en) * | 2006-02-09 | 2008-11-04 | International Business Machines Corporation | Scheduling instructions in a cascaded delayed execution pipeline to minimize pipeline stalls caused by a cache miss |
US8812822B2 (en) * | 2006-02-09 | 2014-08-19 | International Business Machines Corporation | Scheduling instructions in a cascaded delayed execution pipeline to minimize pipeline stalls caused by a cache miss |
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
EP2523101B1 (en) | 2006-11-14 | 2014-06-04 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
US20080162894A1 (en) * | 2006-12-11 | 2008-07-03 | Luick David A | structure for a cascaded delayed execution pipeline |
US8756404B2 (en) * | 2006-12-11 | 2014-06-17 | International Business Machines Corporation | Cascaded delayed float/vector execution pipeline |
US20080141252A1 (en) * | 2006-12-11 | 2008-06-12 | Luick David A | Cascaded Delayed Execution Pipeline |
US8001361B2 (en) * | 2006-12-13 | 2011-08-16 | International Business Machines Corporation | Structure for a single shared instruction predecoder for supporting multiple processors |
US7945763B2 (en) * | 2006-12-13 | 2011-05-17 | International Business Machines Corporation | Single shared instruction predecoder for supporting multiple processors |
US20080148020A1 (en) * | 2006-12-13 | 2008-06-19 | Luick David A | Low Cost Persistent Instruction Predecoded Issue and Dispatcher |
US20090198976A1 (en) * | 2008-02-06 | 2009-08-06 | Austel Vernon R | Method and structure for high-performance matrix multiplication in the presence of several architectural obstacles |
US20090210669A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Prioritizing Floating-Point Instructions |
US8108654B2 (en) * | 2008-02-19 | 2012-01-31 | International Business Machines Corporation | System and method for a group priority issue schema for a cascaded pipeline |
US8095779B2 (en) * | 2008-02-19 | 2012-01-10 | International Business Machines Corporation | System and method for optimization within a group priority issue schema for a cascaded pipeline |
US20090210672A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US7877579B2 (en) * | 2008-02-19 | 2011-01-25 | International Business Machines Corporation | System and method for prioritizing compare instructions |
US7984270B2 (en) * | 2008-02-19 | 2011-07-19 | International Business Machines Corporation | System and method for prioritizing arithmetic instructions |
US20090210666A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US7865700B2 (en) * | 2008-02-19 | 2011-01-04 | International Business Machines Corporation | System and method for prioritizing store instructions |
US20090210677A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline |
US7870368B2 (en) * | 2008-02-19 | 2011-01-11 | International Business Machines Corporation | System and method for prioritizing branch instructions |
US7882335B2 (en) * | 2008-02-19 | 2011-02-01 | International Business Machines Corporation | System and method for the scheduling of load instructions within a group priority issue schema for a cascaded pipeline |
US7996654B2 (en) * | 2008-02-19 | 2011-08-09 | International Business Machines Corporation | System and method for optimization within a group priority issue schema for a cascaded pipeline |
KR101645001B1 (ko) | 2009-02-18 | 2016-08-02 | 삼성전자주식회사 | Vliw 명령어 생성 장치 및 그 방법과 vliw 명령어를 처리하는 vliw 프로세서 및 그 방법 |
KR101685247B1 (ko) | 2010-09-17 | 2016-12-09 | 소프트 머신즈, 인크. | 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측 |
CN108376097B (zh) | 2011-03-25 | 2022-04-15 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
KR101966712B1 (ko) | 2011-03-25 | 2019-04-09 | 인텔 코포레이션 | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
EP2689327B1 (en) | 2011-03-25 | 2021-07-28 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
CN103649931B (zh) | 2011-05-20 | 2016-10-12 | 索夫特机械公司 | 用于支持由多个引擎执行指令序列的互连结构 |
KR101639853B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당 |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
WO2013179085A1 (en) * | 2012-05-29 | 2013-12-05 | Freescale Semiconductor, Inc. | Processing system and method of instruction set encoding space utilization |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
WO2014151043A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
WO2014151018A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for executing multithreaded instructions grouped onto blocks |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
EP2866138B1 (en) * | 2013-10-23 | 2019-08-07 | Teknologian tutkimuskeskus VTT Oy | Floating-point supportive pipeline for emulated shared memory architectures |
FR3021427B1 (fr) * | 2014-05-22 | 2016-06-24 | Kalray | Structure de paquet d'instructions de type vliw et processeur adapte pour traiter un tel paquet d'instructions |
US10606587B2 (en) * | 2016-08-24 | 2020-03-31 | Micron Technology, Inc. | Apparatus and methods related to microcode instructions indicating instruction types |
FR3056782B1 (fr) * | 2016-09-26 | 2019-12-13 | Airbus Operations | Generation de codes applicatifs a partir d'une specification formelle |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600810A (en) * | 1994-12-09 | 1997-02-04 | Mitsubishi Electric Information Technology Center America, Inc. | Scaleable very long instruction word processor with parallelism matching |
US5669001A (en) * | 1995-03-23 | 1997-09-16 | International Business Machines Corporation | Object code compatible representation of very long instruction word programs |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4833599A (en) * | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US5057837A (en) * | 1987-04-20 | 1991-10-15 | Digital Equipment Corporation | Instruction storage method with a compressed format using a mask word |
CA2038264C (en) * | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
DE69431998T2 (de) * | 1993-11-05 | 2004-08-05 | Intergraph Hardware Technologies Co., Las Vegas | Superskalare Rechnerarchitektur mit Softwarescheduling |
JP2931890B2 (ja) * | 1995-07-12 | 1999-08-09 | 三菱電機株式会社 | データ処理装置 |
US5826054A (en) * | 1996-05-15 | 1998-10-20 | Philips Electronics North America Corporation | Compressed Instruction format for use in a VLIW processor |
US5819058A (en) * | 1997-02-28 | 1998-10-06 | Vm Labs, Inc. | Instruction compression and decompression system and method for a processor |
-
1997
- 1997-10-13 US US08/949,279 patent/US5922065A/en not_active Expired - Lifetime
-
1998
- 1998-10-08 EP EP98952211A patent/EP1023660B1/en not_active Expired - Lifetime
- 1998-10-08 CN CNB988114925A patent/CN100390729C/zh not_active Expired - Fee Related
- 1998-10-08 DE DE69833008T patent/DE69833008T2/de not_active Expired - Lifetime
- 1998-10-08 WO PCT/US1998/021388 patent/WO1999019793A1/en active IP Right Grant
- 1998-10-08 AU AU97964/98A patent/AU9796498A/en not_active Abandoned
-
2000
- 2000-04-17 GB GBGB0009284.1A patent/GB0009284D0/en not_active Ceased
-
2001
- 2001-07-10 HK HK01104751.0A patent/HK1034333A1/xx not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600810A (en) * | 1994-12-09 | 1997-02-04 | Mitsubishi Electric Information Technology Center America, Inc. | Scaleable very long instruction word processor with parallelism matching |
US5669001A (en) * | 1995-03-23 | 1997-09-16 | International Business Machines Corporation | Object code compatible representation of very long instruction word programs |
Also Published As
Publication number | Publication date |
---|---|
WO1999019793A1 (en) | 1999-04-22 |
DE69833008T2 (de) | 2006-08-31 |
US5922065A (en) | 1999-07-13 |
DE69833008D1 (de) | 2006-02-02 |
HK1034333A1 (en) | 2001-10-19 |
EP1023660A1 (en) | 2000-08-02 |
GB0009284D0 (en) | 2000-05-31 |
CN1279783A (zh) | 2001-01-10 |
AU9796498A (en) | 1999-05-03 |
EP1023660B1 (en) | 2005-12-28 |
EP1023660A4 (en) | 2001-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100390729C (zh) | 利用规格字段指令编码的处理器 | |
EP0454985B1 (en) | Scalable compound instruction set machine architecture | |
US5465377A (en) | Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel | |
US7366874B2 (en) | Apparatus and method for dispatching very long instruction word having variable length | |
US7953955B2 (en) | Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture | |
EP0073424B1 (en) | Central processing unit for executing instructions of variable length | |
US20060174089A1 (en) | Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture | |
EP1247196A1 (en) | System for dynamic vliw sub-instruction selection for execution time parallelism in an indirect vliw processor | |
CN110321159A (zh) | 用于实现链式区块操作的系统和方法 | |
WO2000038082A1 (en) | Methods and apparatus for scalable instruction set architecture with dynamic compact instructions | |
WO2004053718A1 (en) | Cellular engine for a data processing system | |
US7574583B2 (en) | Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor | |
US5265258A (en) | Partial-sized priority encoder circuit having look-ahead capability | |
WO2003058433A1 (en) | Multiple function unit processor using distributed variable length instruction words | |
EP0206653B1 (en) | Method and means for loading and storing data in a reduced instruction set computer | |
US6105126A (en) | Address bit decoding for same adder circuitry for RXE instruction format with same XBD location as RX format and dis-jointed extended operation code | |
EP0843848A2 (en) | Vliw processor which processes compressed instruction format | |
CA1254661A (en) | Method and means for instruction combination for code compression | |
EP0363174A2 (en) | Branch on bit processing | |
CN112130899A (zh) | 一种堆栈计算机 | |
CN109918339B (zh) | 一种针对粗粒度可重构结构的基于相似性的指令压缩方法 | |
CA2040637C (en) | Compounding preprocessor for cache | |
JPH01133138A (ja) | 並列計算機及びその制御方法 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1034333 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080528 Termination date: 20171008 |
|
CF01 | Termination of patent right due to non-payment of annual fee |