CN1973260A - 用于不对称双重路径处理的设备和方法 - Google Patents

用于不对称双重路径处理的设备和方法 Download PDF

Info

Publication number
CN1973260A
CN1973260A CNA2005800176667A CN200580017666A CN1973260A CN 1973260 A CN1973260 A CN 1973260A CN A2005800176667 A CNA2005800176667 A CN A2005800176667A CN 200580017666 A CN200580017666 A CN 200580017666A CN 1973260 A CN1973260 A CN 1973260A
Authority
CN
China
Prior art keywords
instruction
data
instruction packet
treatment channel
instructions
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.)
Granted
Application number
CNA2005800176667A
Other languages
English (en)
Other versions
CN100583027C (zh
Inventor
S·诺勒斯
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.)
Icera LLC
Original Assignee
Icera LLC
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 Icera LLC filed Critical Icera LLC
Publication of CN1973260A publication Critical patent/CN1973260A/zh
Application granted granted Critical
Publication of CN100583027C publication Critical patent/CN100583027C/zh
Active 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length 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/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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Abstract

依照本发明的实施例,公开了一种计算机处理器体系结构;并且尤其公开了一种计算机处理器、一种操作相同计算机处理器的方法以及利用该计算机的指令集的计算机程序产品。在依照本发明的一个实施例中,提供了一种计算机处理器,所述处理器包括:译码部件,用于译码从保持指令分组序列的存储器中所取出的指令分组;和第一和第二处理通道,每个处理通道包括多个功能部件,其中所述第一处理通道能够执行控制操作并且包括具有相对较窄比特宽度的控制寄存器堆,并且所述第二处理通道能够执行其中至少一个输入为向量的数据处理操作并且包括具有相对较宽比特宽度的数据寄存器堆。所述译码部件可操作来对每个指令分组检测所述指令分组是定义了(i)要在所述第一处理通道上顺序执行的多个控制指令还是定义了(ii)要在所述第二执行通道上同时执行的、包括至少一个数据处理指令的多个指令,并且可操作来根据所述检测来控制所述第一和第二通道。

Description

用于不对称双重路径处理的设备和方法
技术领域
本发明涉及一种计算机处理器、一种用于操作同样计算机处理器的方法以及一种包括用于计算机的指令集的计算机程序产品。
背景技术
为了增加计算机处理器的速度,现有技术体系结构已经使用了双重执行路径来执行指令。双重执行路径处理器可以使用并行操作来增加处理器速度依照单指令多数据(single instruction multiple dataSIMD)原理来操作。
然而,尽管使用双重执行路径和SIMD处理,还需要增加处理器速度。典型的双重执行路径处理器使用两个基本上完全相同的通道(channel),以致每个通道都处理控制代码和数据路径代码。虽然已知的处理器支持32比特标准编码和16比特“密集”编码的组合,然而这种配置具有几个缺点,包括在16比特格式中可用的较少比特中缺乏语义内容。
此外,常规的通用数字信号处理器对于许多目的来说不能匹配应用特定的算法,包括执行诸如卷积、快速傅里叶变换、Trellis/Viterbi编码、相关、有限脉冲响应滤波及其它操作之类的专门操作。
发明内容
在依照本发明的一个实施例中,提供了一种计算机处理器。所述计算机处理器包括:译码部件,用于译码从用来保持指令分组序列的存储器中所取出的指令分组;和第一和第二处理通道,每个通道包括多个功能部件,其中第一处理通道能够执行控制操作并且包括具有相对较窄比特宽度的控制寄存器堆,并且第二处理通道能够执行数据处理操作,所述数据处理操作的至少一个输入是向量并且包括具有相对较宽比特宽度的数据寄存器堆;其中所述译码部件可操作来检测每个指令分组该指令分组是定义了(i)要在第一处理通道上顺序执行的多个控制指令,还是定义了(ii)要在第二执行通道上同时执行的、包括至少一个数据处理指令的多个指令,并且根据所述检测来控制所述第一和第二通道。
在进一步相关的实施例中,第一处理通道还可以包括分支部件和控制执行部件。第二处理通道还可以包括固定的数据执行部件和可配置的数据执行部件。固定的数据执行部件和可配置的数据执行部件都可以依照单指令多数据格式来操作。第一和第二处理通道可以共享加载存储部件。加载存储部件可以使用由第一处理通道所提供的控制信息和由第二处理通道所提供的数据。指令分组可以都具有相等的比特长度,诸如64比特长度。控制指令可以都具有在18比特和24比特之间的比特长度,诸如21比特长度。至少可以从控制指令、数据指令和存储器访问指令中选择指令分组中每个指令的性质。每个数据指令的比特长度例如可以是34比特;并且每个存储器访问指令的比特长度例如可以是28比特。
在进一步相关的实施例中,当译码部件检测到指令分组定义了三个控制指令时,所述译码部件可操作来向第一处理通道提供所述三个控制指令,借此顺序地执行所述三个控制指令。当所述译码部件检测到指令分组定义了包括至少一个数据指令的两个指令时,所述译码部件还可操作来向第二处理通道提供所述至少一个数据指令,借此同时执行两个指令。译码部件可操作来在序列的每个指令分组中的预定比特位置读取一组指定比特的值,以便确定a)所述指令分组是定义了多个控制指令还是其中至少一个是数据指令的多个指令;以及b)其中所述指令分组定义了其中至少一个是数据指令的多个指令,从以下指令中选择两个指令中的每个指令的性质:控制指令;数据指令和存储器访问指令。可配置的数据执行部件可以在向目的寄存器堆返回结果之前对由单个发布指令所提供的数据执行两个以上的连续操作。
在依照本发明的另一实施例中,提供了一种用于操作计算机处理器的方法,所述计算机处理器包括第一和第二处理通道,每个处理通道包括多个功能部件,其中所述第一处理通道包括具有相对较窄比特宽度的控制寄存器堆并且所述第二处理通道包括具有相对较宽比特宽度的数据寄存器堆。所述方法包括:译码指令分组以便检测所述指令分组是定义了相等长度的多个控制指令还是定义了包括至少一个数据指令的两个指令,其中至少一个是向量;当所述指令分组定义了相等长度的多个控制指令时,向第一处理通道提供所述控制指令借此顺序地执行所述控制指令;并且当所述指令分组定义了包括至少一个数据指令的多个指令时,至少向第二处理通道提供所述数据指令借此同时执行多个指令。
在依照本发明的另一实施例中,提供了一种包括程序代码装置的计算机程序产品,所述程序代码装置包括指令分组序列,所述指令分组包括具有相等长度的多个控制指令的第一类型指令分组和包括具有至少一个数据指令的多个指令的第二类型指令分组,其中所述计算机程序产品适于在计算机上运行以致由专用控制处理通道执行第一类型指令分组,并且由专用数据处理通道执行第二指令分组的至少一个数据指令,所述专用控制处理通道比所述专用数据处理通道具有相对较窄的比特宽度。
在依照本发明的另一实施例中,提供了一种用于操作计算机处理器的方法,所述计算机处理器包括第一和第二处理通道,每个处理通道包括多个功能部件,其中所述第一处理通道包括具有相对较窄比特宽度的控制寄存器堆并且所述第二处理通道包括具有相对较宽比特宽度的数据寄存器堆。所述方法包括:从程序存储器中取出指令分组序列,该指令分组的全部在预定的比特位置都包含一组指定的比特;译码每个指令分组,所述译码步骤包括读取所述指定比特的值以便确定:a)所述指令分组是定义了多个控制指令还是定义了其中至少一个是数据指令的多个指令;并且b)在所述指令分组定义了其中至少一个是数据指令的多个指令的情况下,至少从以下指令中选择两个指令中的每个的性质:控制指令;数据指令和存储器访问指令。
在依照本发明的另一实施例中,提供了一种包括程序代码装置的计算机程序产品,所述程序代码装置包括指令分组序列,所述指令分组包括具有基本上相等长度的多个控制指令的第一类型指令分组和包括具有至少一个数据指令的第一和第二指令的第二类型指令分组,所述指令分组在所述指令分组内的指定比特位置包括至少一个指示比特,其中所述计算机程序产品适于在计算机上运行以致所述指示比特适于与计算机的译码部件合作来指定:a)指令分组定义了多个控制指令还是定义了其中至少一个是数据指令的多个指令;和b)在存在包括至少一个数据指令的多个指令的情况下,从以下指令中选择两个指令中的每个的性质:控制指令;数据指令和存储器访问指令。
本发明的附加优点和新颖特征在随后的描述中将部分地得到阐明,并且在检查以下描述和附图之后对那些本领域技术人员来说将变得更加清楚,或者可以通过实施本发明来学习。
附图说明
为了更好地理解本发明,并且为了示出可以怎样实现,现在举例来说明参考附图,其中:
图1是依照本发明实施例的不对称的双重执行路径计算机处理器的框图;
图2依照本发明实施例示出了用于图1的处理器的指令类;和
图3是用于依照本发明实施例示出可配置的深度执行部件的组件。
具体实施方式
图1是依照本发明实施例的不对称的双重路径计算机处理器的框图。图1的处理器在以下两个不同的硬件执行路径之间划分单指令流100的处理:专用于处理控制代码的控制执行路径102和专用于处理数据代码的数据执行路径103。两个执行路径102、103的数据宽度、操作符及其它特性依照控制代码和数据路径代码的不同特性而不同。典型情况下,控制代码喜欢较少、较窄的寄存器,很难并行化,一般(而并不排除其它情况)用C代码或另一高级语言来编写,其代码密度通常比其速度性能更为重要。相比之下,数据路径代码一般喜欢大的宽寄存器堆,可高度并行化,用汇编语言编写,并且其性能比其代码密度更为重要。在图1的处理器中,两个不同的执行路径102和103专用于处理两种不同类型的代码,每一端具有其自己的体系结构寄存器堆,诸如控制寄存器堆104和数据寄存器堆105,差别在于寄存器的宽度和数目不同;控制寄存器具有较窄宽度,以比特来计数(在一个例子中为32比特),并且数据寄存器具有较宽宽度(在一个例子中为64比特)。因此,处理器是不对称的,不对称之处在于由于它的两个执行路径执行不同的、专门的功能这一事实而使得它们具有不同的比特宽度。
在图1的处理器中,指令流100由一系列指令分组组成。所提供的每个指令分组由指令译码部件101来译码,所述指令译码部件101把控制指令与数据指令相分离,如下面所进一步描述。控制执行路径102使用分支部件106、执行部件107和加载存储部件108来处理用于指令流的控制流操作并且管理机器的状态寄存器,在此实施例中,所述加载存储部件108与数据执行路径103共享。只有处理器的控制端需要对编译器来说可见,所述编译器诸如用于C、C++或Java语言的编译器或其它高级语言的编译器。在控制端内,分支部件106和执行部件107的操作是依照为那些本领域普通技术人员已知的常规处理器设计的。
数据执行路径103在固定的执行部件109和可配置的深度执行部件110中使用SIMD(单指令多数据)并行机制。如下面所进一步描述,可配置的深度执行部件110除由常规的SIMD处理器所使用的宽维度(width dimension)之外提供了深维度(depth dimension)的处理,以便增加每个指令的工作。
如果所译码的指令定义了控制指令,那么它被应用于机器的控制执行路径上的适当功能部件(例如分支部件106、执行部件107和加载/存储部件108)。如果所译码的指令定义了具有固定或可配置的数据处理操作的指令,那么它被提供到数据处理执行路径。在指令分组的数据指令部分内,所指定的比特表明所述指令是固定的还是可配置的数据处理指令,并且在可配置的指令的情况下,进一步指定的比特定义了配置信息。根据所译码数据处理指令的子类型,数据被提供到机器的数据处理路径的固定或可配置的执行子路径。
这里,“可配置”表示从多个预定义的(“伪静态的”)操作符配置之中选择操作符配置的能力。伪静态的操作符配置有效地使操作符(i)执行确定类型的操作或(ii)依照确定方式与关联的部件相互连接或者(iii)上述(i)或(ii)的组合。在实践中,所选择的伪静态配置可以一次确定许多操作符部件的行为和互连性。它还可以控制与数据路径相关联的切换配置。在优选实施例中,多个伪静态操作符配置中的至少一些可由数据处理指令的操作代码部分来选择,如下面所进一步图示。同样依照这里的实施例,“可配置的指令”允许所定制的操作的性能处于多比特值的级别;例如,在四个或更多比特的多比特值的级别或处于字的级别。
应当指出在各自不同的机器端上所执行的控制和数据处理指令可以定义存储器访问(加载/存储)和基本的算术运算。可以往返于控制寄存器堆104提供用于控制操作的输入/操作数,而往返于寄存器堆105提供用于数据处理操作的数据/操作数。
依照本发明实施例,每个数据处理操作的至少一个输入可以是向量。在这方面,可配置数据路径的切换电路和/或可配置的操作符可以被认为是可配置来借助于所执行操作的性质和/或它们之间的互连性来执行向量操作。例如,用于数据处理操作的64比特向量输入可以包括四个16比特的标量操作数。这里,“向量”是标量操作数的集合。向量运算可以对多个标量操作数来执行,并且可以包括转向、移动和置换标量元素。并非向量运算的所有操作数都必须是向量;例如向量运算可以兼有标量和至少一个向量作为输入;l和是标量或向量的输出结果。
这里,“控制指令”包括专用于程序流、分支和地址生成的指令,但不用于数据处理。“数据处理指令”包括用于逻辑操作或算术操作的指令,对于算术操作来说至少一个输入是向量。数据处理指令例如可以在SIMD处理中或在处理较宽、较短的数据元素向量中对多个数据指令操作。刚刚所提及的控制指令和数据指令的必需功能并不重叠;然而,通用性在于两类代码都具有逻辑和标量运算能力。
图2示出了用于图1的处理器的三种类型的指令分组。每种类型的指令分组是64比特长。指令分组211是用于密集控制代码的3标量类型并且包括三个21比特的控制指令(c21)。指令分组212和213是用于并行执行数据路径代码的LIW(long instruction word长指令字)类型。在此例子中,每个指令分组212、213包括两个指令,但是如果希望的话,可以包括不同数目的指令。指令分组212包括34比特的数据指令(d34)和28比特的存储器指令(m28);并且用于利用数据端加载-存储操作(m28指令)来并行执行数据端运算(d34指令)。可以使用来自控制端的地址从处理器的控制端或数据端读取或向其写入存储器类指令(m28)。指令分组213包括34比特的数据指令(d34)和21比特的控制指令(c21);并且用于利用控制端操作(c21指令)来并行执行数据端运算(d34指令),所述控制端操作诸如控制端运算、分支或加载-存储操作。
图1的实施例的指令译码部件101使用每个指令分组的初始标识比特或在预定比特位置另外指定的标识比特来确定正在译码哪种类型的分组。例如图2所示,初始指示比特“1”表示指令分组属于标量控制指令类型,具有三个控制指令;而初始指示比特“01”和“00”表示类型为212和213的指令分组,在分组212中具有数据和存储器指令或者在分组213中具有数据和控制指令。如果已经译码了每个指令分组的初始比特,那么图1的译码部件101依照指令分组的类型向控制执行路径102或数据执行路径103适当地传递每个分组的指令。
为了执行图2的指令分组,图1的实施例的处理器的指令译码部件101从存储器中顺序地取出程序分组;并且所述程序分组被顺序地执行。在指令分组内,分组211的指令被顺序地执行,在64比特字的最低有效端的21比特控制指令被首先执行,然后,下一21比特控制指令被执行,继而是在最高有效端的21比特控制指令。在指令分组212和213内,可以同时执行指令(尽管在依照本发明的实施例中这并非是必须的情况)。因而,在图1的实施例的处理器的程序次序中,顺序地执行程序分组;而是对于分组类型211来说可以顺序地执行分组内的指令,或者对于分组类型212和213来说可以同时执行分组内的指令。下面,类型为212和213的指令分组分别被简写为MD和CD分组(分别包含一个存储器和一个数据指令;以及一个控制指令和一个数据指令)。
在使用21比特控制指令中,图1的实施例克服了在具有其它长度指令的处理器中、并且尤其是在支持用于数据指令的32比特标准编码和用于控制代码的16比特“密集”编码的组合的处理器中所发现的许多缺点。在这种双重16/32比特处理器中,对每个指令使用双重编码或者借助分支、取出地址或其它装置在编码模式之间切换使用两个独立的译码器,来形成冗余。依照本发明实施例,通过对所有控制指令来说使用单个21比特长度来消除此冗余。此外,使用21比特控制指令消除了源于在16比特的“密集”编码模式中没有足够语义内容的缺点。由于没有足够的语义内容,所以使用16比特配置的处理器典型情况下要求某些设计混合的折中,诸如:使用两个操作数的破坏性操作,相应的代码由于拷贝而膨胀;使用对寄存器堆子集的窗口访问,代码由于溢出/填充或窗口指针操作而膨胀;或频繁地恢复到32比特格式,这是因为并非所有操作都可以用16比特格式中的非常少可用的操作码比特来表示。在本发明的实施例中,通过使用21比特控制指令来缓解这些缺点。
依照本发明实施例,可以使用多种类型的指令。例如,指令签名可以是以下中的任何一个,其中C格式、M格式和D格式分别表示控制、存储器访问和数据格式:
指令签名 参数 用于
Instr 指令没有参数 只有C格式
Instr dst 指令具有单目的地参数 只有C格式
lnstr src0 指令具有单源参数 只有C或D格式
Instr dst,src0 指令具有单目的、单源的参数 D和M格式指令
Instr dst, src0, src1 指令具有单目的地参数和两源参数 C、D和M格式指令
另外,依照本发明的一个实施例,C格式指令也都提供了SISD(single instruction single data单指令单数据)操作,而M格式和D格式指令提供了SISD或SIMD操作。例如,控制指令可以提供通用的运算、比较和逻辑指令;控制流指令;存储器加载和存储指令等。数据指令可以提供通用的运算、移位、逻辑和比较指令;混洗、分类、字节扩展和置换指令;线性反馈移位寄存器指令;以及经由可配置的深度执行部件110(下面进一步描述)的用户定义的指令。存储器指令可以提供存储器加载和存储;把所选择的数据寄存器拷贝到控制寄存器;把所广播的控制寄存器拷贝到数据寄存器;以及直接到寄存指令。
依照本发明实施例,图1的处理器特征在于第一固定的数据执行路径和第二可配置的数据执行路径。第一数据路径具有固定的SIMD执行部件,其依照与常规的SIMD处理设计类似的方式被拆分成道(lane)。第二数据路径具有可配置的深度执行部件110。“深度执行”指的是处理器在向寄存器堆返回结果之前对由单个发布指令所提供的数据执行多个连续操作的能力。在常规的MAC操作(相乘和累积)中发现了深度执行的一个例子,所述MAC操作对来自单指令的数据执行两个操作(乘法和相加),由此具有阶二的深度。深度执行还可以由等于结果输出数的操作数输入数目来表征;或者等效地,价输入(valency-in)等于价输出(valency-out)。因而,例如常规的两个操作数相加(具有一个结果)并非是此类深度执行的例子,这是因为操作数的数目不等于结果的数目;而依照优选实施例,卷积、快速傅里叶变换、Trellis/Viterbi编码、相关器、有限脉冲响应滤波器及其它信号处理算法是深度执行的例子。应用特定的数字信号处理(DSP)算法典型情况下在比特级并且依照存储映像的方式来进行深度执行。然而在MAC操作中,常规的寄存器映像的通用DSP不进行深度执行,作为替代至多以阶二的深度来执行指令。相比之下,图1的处理器提供了寄存器映像的通用处理器,其能够以大于二的阶来深度执行动态可配置的字级别的指令值。在图1的处理器中,可以借助指令自身中的配置信息来调整/定制深度执行指令的性质(要执行的数学函数的图形)。在优选实施例中,数据格式指令包含被分配给配置信息的比特位置。为了提供此能力,深度执行部件110具有可配置的执行资源,这意味着可以上传操作符模式、互连和常量以便适合每个应用。深度执行向执行的并行机制添加了深维度,所述深维度与由较早的SIMD和LIW处理的原理所表现出的宽维度正交;因此它表示附加维度来增加通用处理器的每个指令的工作。
图3依照本发明实施例示出了示例性的可配置的深度执行部件310的组件。如图1所示,可配置的深度执行部件110是数据执行路径103的一部分,并因此可以由来自图2的MD和CD指令分组212和213的数据端指令来指示。在图3中,指令314和操作数315被从图1的指令译码部件101和数据寄存器堆105提供到深度执行部件310。指令314中的多比特配置代码用来访问控制映像316,所述控制映像316把多比特代码扩展为一组相对复杂的配置信号,用于配置深度执行部件的操作符。控制映像316例如可以被具体化为查找表,其中指令的不同可能的多比特位码被映射到深度执行部件的不同可能的操作符配置。根据查阅控制映像316的查找表的结果,交叉互连317配置一组操作符318-321,在任何配置中有必要执行由多比特指令代码所表明的操作符配置。操作符例如可以包括乘操作符318、算术逻辑部件(arithmeticlogic unit ALU)操作符319、状态操作符320或交叉道换码器321。在一个实施例中,深度执行部件包含十五个操作符:一个乘操作符318、八个ALU操作符319、四个状态操作符320和两个交叉道换码器321;不过其它数目的操作符也是可能的。关于单个32比特操作数来说,被提供到深度执行部件的操作数315例如可以是两个16比特操作数、四个8比特操作数;这些操作数被提供到第二交叉互连322,所述第二交叉互连322可以向适当的操作符318-321提供操作数。第二交叉互连322还从操作符318-321接收中间结果的反馈324,其随后还被第二交叉互连322提供到适当的操作符318-321。第三交叉互连323多路复用来自操作符318-321的结果并且输出最终结果325。可以使用各个控制信号来配置操作符;例如图3的实施例的控制映像316不必被具体化为单个查找表,而是可以被具体化为一系列两个或多个级联的查找表。第一查找表中的条目可以从给定的多比特指令代码指向第二查找表,由此减少了在每个查找表中针对复杂操作符配置所需要的存储量。例如,第一查找表可以被组织成配置类别库,以便多个多比特指令代码在第一查找表中被分组在一起,每个组指向随后的查找表,所述查找表向所述组的每个多比特位码提供特定配置。
依照图3的实施例,操作符被有益地预先配置为各个操作符类。在实践中,这由硬接线的策略级别来实现,此方法的优点在于它意味着需要存储较少的预定义配置,并且控制电路可以更简单。例如,操作符318被预先配置为在乘操作符类中;操作符319被预先配置为ALU操作符;操作符320被预先配置为状态操作符;并且操作符321被预先配置为交叉道换码器;并且其它预先配置的操作符类也是可以的。然而,尽管操作符的类是预先配置的,然而用于指令的运行期灵活性能够至少布置:(i)每个类内操作符的连接;(ii)与来自其它类的操作符的连接;(iii)任何相关切换装置的连接;用于实现给定算法的特定配置的最终布置。
有经验的读者应当理解,虽然上面已经描述了什么被认为是最佳模式并且其中适于执行本发明的其它模式,然而本发明不应当被限于在此具体实施方式中所公开的具体设备配置或方法步骤。本领域技术人员还应当认识到本发明具有广泛的应用,而且在不脱离发明原理的情况下实施例允许各种各样的不同实现方式和修改。特别地是,这里所提及的示例性比特宽度并不意在进行限制,也并非是被认为是半字、字长字等的任意比特宽度选择。

Claims (21)

1.一种计算机处理器,所述处理器包括:
译码部件,用于译码从保持指令分组序列的存储器中所取出的指令分组;和
第一和第二处理通道,每个处理通道包括多个功能部件,其中所述第一处理通道能够执行控制操作并且包括具有相对较窄比特宽度的控制寄存器堆,并且所述第二处理通道能够执行其中至少一个输入为向量的数据处理操作并且包括具有相对较宽比特宽度的数据寄存器堆;
其中所述译码部件可操作来对每个指令分组检测所述指令分组定义了(i)要在所述第一处理通道上顺序执行的多个控制指令还是定义了(ii)要在所述第二执行通道上同时执行的、包括至少一个数据处理指令的多个指令,并且可操作来根据所述检测来控制所述第一和第二通道。
2.如权利要求1所述的计算机处理器,其中所述第一处理通道还包括分支部件和控制执行部件。
3.如权利要求1或2所述的计算机处理器,其中所述第二处理通道还包括固定的数据执行部件和可配置的数据执行部件。
4.如权利要求3所述的计算机处理器,其中所述固定的数据执行部件和可配置的数据执行部件都依照单指令多数据格式来操作。
5.如先前权利要求中任何一个所述的计算机处理器,其中所述第一和第二处理通道共享加载存储部件。
6.如权利要求5所述的计算机处理器,其中所述加载存储部件使用由所述第一处理通道所提供的控制信息和由所述第二处理通道所提供的数据。
7.如先前权利要求中任何一个所述的计算机处理器,其中所述指令分组都具有相等的比特长度。
8.如权利要求7所述的计算机处理器,其中所述指令分组都具有64比特长度。
9.如先前权利要求中任何一个所述的计算机处理器,其中所述控制指令都具有在18比特和24比特之间的比特长度。
10.如权利要求9所述的计算机处理器,其中所述控制指令都具有21比特长度。
11.如权利要求7所述的计算机处理器,其中至少从控制指令、数据指令和存储器访问指令中选择指令分组中每个指令的性质。
12.如权利要求11所述的计算机处理器,其中每个数据指令的比特长度是34比特。
13.如权利要求11所述的计算机处理器,其中每个存储器访问指令的比特长度是28比特。
14.如先前权利要求中任何一个所述的计算机处理器,其中当所述译码部件检测到所述指令分组定义了三个控制指令时,所述译码部件可操作来向所述第一处理通道提供所述三个控制指令,借此顺序地执行所述三个控制指令。
15.如先前权利要求中任何一个所述的计算机处理器,其中当所述译码部件检测到所述指令分组定义了包括至少一个数据指令的两个指令时,所述译码部件可操作来至少向所述第二处理通道提供所述数据指令,借此同时执行所述两个指令。
16.如先前权利要求中任何一个所述的计算机处理器,其中所述译码部件可操作来在所述序列的每个指令分组中的预定比特位置读取一组指定比特的值,以便确定:
a)所述指令分组定义了多个控制指令还是其中至少一个是数据指令的多个指令;并且
b)在所述指令分组定义了其中至少一个是数据指令的多个指令的情况下,从以下指令中选择两个指令中的每个的性质:控制指令、数据指令和存储器访问指令。
17.如权利要求3-16中任何一个所述的计算机处理器,其中可配置的数据执行部件能够在向目的寄存器堆返回结果之前对由单个发布指令所提供的数据执行两个以上的连续操作。
18.一种用于操作计算机处理器的方法,所述计算机处理器包括第一和第二处理通道,每个处理通道包括多个功能部件,其中所述第一处理通道包括具有相对较窄比特宽度的控制寄存器堆并且所述第二处理通道包括具有相对较宽比特宽度的数据寄存器堆,所述方法包括:
译码指令分组以便检测所述指令分组是定义了相等长度的多个控制指令还是包括至少一个数据指令的两个指令,其中至少一个是向量;
当所述指令分组定义了相等长度的多个控制指令时,向所述第一处理通道提供所述控制指令,借此顺序地执行所述控制指令;并且
当所述指令分组定义了包括至少一个数据指令的多个指令时,至少向所述第二处理通道提供所述数据指令,借此同时执行所述多个指令。
19.一种包括程序代码装置的计算机程序产品,所述程序代码装置包括指令分组序列,
所述指令分组包括具有相等长度的多个控制指令的第一类型指令分组和包括具有至少一个数据指令的多个指令的第二类型指令分组,
其中所述计算机程序产品适于在计算机上运行以致第一类型指令分组由专用控制处理通道执行,并且第二指令分组的至少一个数据指令由专用数据处理通道来执行,所述专用控制处理通道比所述专用数据处理通道具有相对较窄的比特宽度。
20.一种用于操作计算机处理器的方法,所述计算机处理器包括第一和第二处理通道,每个处理通道包括多个功能部件,其中所述第一处理通道包括具有相对较窄比特宽度的控制寄存器堆并且所述第二处理通道包括具有相对较宽比特宽度的数据寄存器堆,所述方法包括:
从程序存储器中取出指令分组序列,所述指令分组全部在预定的比特位置包含一组指定比特;
译码每个指令分组,所述译码步骤包括读取所述指定比特的值以便确定:
a)所述指令分组定义了多个控制指令还是其中至少一个是数据指令的多个指令;并且
b)在所述指令分组定义了其中至少一个是数据指令的多个指令的情况下,从以下指令中选择至少两个指令中的每个的性质:控制指令、数据指令和存储器访问指令。
21.一种包括程序代码装置的计算机程序产品,所述程序代码装置包括指令分组序列,
所述指令分组包括具有基本上相等长度的多个控制指令的第一类型指令分组和包括具有至少一个数据指令的第一和第二指令的第二类型指令分组,
所述指令分组在所述指令分组内指定的比特位置包括至少一个指示比特,其中所述计算机程序产品适于在计算机上运行以致所述指示比特适于与所述计算机的译码部件合作以用于指定:
a)所述指令分组定义了多个控制指令还是其中至少一个是数据指令的多个指令;并且
b)在存在包括至少一个数据指令的多个指令的情况下,从以下指令中选择两个指令中的每个的性质:控制指令、数据指令和存储器访问指令。
CN200580017666A 2004-03-31 2005-03-22 用于不对称双重路径处理的设备和方法 Active CN100583027C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/813,615 2004-03-31
US10/813,615 US9047094B2 (en) 2004-03-31 2004-03-31 Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor

Publications (2)

Publication Number Publication Date
CN1973260A true CN1973260A (zh) 2007-05-30
CN100583027C CN100583027C (zh) 2010-01-20

Family

ID=34962959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580017666A Active CN100583027C (zh) 2004-03-31 2005-03-22 用于不对称双重路径处理的设备和方法

Country Status (7)

Country Link
US (2) US9047094B2 (zh)
EP (1) EP1735697B1 (zh)
JP (1) JP5744370B2 (zh)
CN (1) CN100583027C (zh)
CA (1) CA2560469A1 (zh)
TW (1) TWI384400B (zh)
WO (1) WO2005096141A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508636A (zh) * 2011-11-02 2012-06-20 中国人民解放军国防科学技术大学 用于向量处理器的程序流控制方法及系统

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7299313B2 (en) * 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
KR100807039B1 (ko) 2006-04-07 2008-02-25 주식회사 퓨쳐시스템 비대칭 다중 프로세싱 시스템 및 그 방법
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
CN100456230C (zh) * 2007-03-19 2009-01-28 中国人民解放军国防科学技术大学 超长指令字与单指令流多数据流融合的计算群单元
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8082474B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Bit shadowing in a memory system
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US7895374B2 (en) * 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US8082475B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Enhanced microprocessor interconnect with bit shadowing
US8234540B2 (en) * 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US8493979B2 (en) 2008-12-30 2013-07-23 Intel Corporation Single instruction processing of network packets
US7979759B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Test and bring-up of an enhanced cascade interconnect memory system
US20100180154A1 (en) * 2009-01-13 2010-07-15 International Business Machines Corporation Built In Self-Test of Memory Stressor
KR101109304B1 (ko) * 2009-04-23 2012-01-31 주식회사 효성 카치온 가염형 폴리아미드 섬유의 제조방법
GB2483225B (en) 2010-08-27 2018-07-11 Nvidia Tech Uk Limited Improved processor architecture
KR101918464B1 (ko) 2011-09-14 2018-11-15 삼성전자 주식회사 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치
US9501268B2 (en) 2013-12-23 2016-11-22 International Business Machines Corporation Generating SIMD code from code statements that include non-isomorphic code statements
US9983884B2 (en) * 2014-09-26 2018-05-29 Intel Corporation Method and apparatus for SIMD structured branching
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
CN108874730B (zh) * 2018-06-14 2021-06-22 北京理工大学 一种数据处理器及数据处理方法

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228498A (en) * 1977-10-12 1980-10-14 Dialog Systems, Inc. Multibus processor for increasing execution speed using a pipeline effect
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
EP0419105B1 (en) 1989-09-21 1997-08-13 Texas Instruments Incorporated Integrated circuit formed on a surface of a semiconductor substrate and method for constructing such an integrated circuit
JPH0412361A (ja) 1990-04-28 1992-01-16 Konica Corp 感光性平版印刷版の処理方法及び処理装置
JP2523952B2 (ja) 1990-06-29 1996-08-14 松下電器産業株式会社 薄膜の形成方法および薄膜の形成装置
US5299320A (en) * 1990-09-03 1994-03-29 Matsushita Electric Industrial Co., Ltd. Program control type vector processor for executing a vector pipeline operation for a series of vector data which is in accordance with a vector pipeline
JPH05324430A (ja) 1992-05-26 1993-12-07 Toshiba Corp データ処理装置
US5423051A (en) * 1992-09-24 1995-06-06 International Business Machines Corporation Execution unit with an integrated vector operation capability
US5600801A (en) * 1993-07-15 1997-02-04 Dell Usa, L.P. Multiple function interface device for option card
US5600810A (en) * 1994-12-09 1997-02-04 Mitsubishi Electric Information Technology Center America, Inc. Scaleable very long instruction word processor with parallelism matching
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5737631A (en) * 1995-04-05 1998-04-07 Xilinx Inc Reprogrammable instruction set accelerator
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
JP3658072B2 (ja) 1996-02-07 2005-06-08 株式会社ルネサステクノロジ データ処理装置およびデータ処理方法
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
GB2311882B (en) * 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
DE19634031A1 (de) * 1996-08-23 1998-02-26 Siemens Ag Prozessor mit Pipelining-Aufbau
US6006321A (en) * 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
US5922065A (en) * 1997-10-13 1999-07-13 Institute For The Development Of Emerging Architectures, L.L.C. Processor utilizing a template field for encoding instruction sequences in a wide-word format
JP3451921B2 (ja) 1998-03-30 2003-09-29 松下電器産業株式会社 プロセッサ
EP0953898A3 (en) 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
US6226735B1 (en) * 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US6292845B1 (en) * 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
DE19843640A1 (de) * 1998-09-23 2000-03-30 Siemens Ag Verfahren zum Konfigurieren eines konfigurierbaren Hardware-Blocks
US6553414B1 (en) * 1998-10-02 2003-04-22 Canon Kabushiki Kaisha System used in plural information processing devices for commonly using peripheral device in network
EP1073951A1 (en) * 1999-02-15 2001-02-07 Koninklijke Philips Electronics N.V. Data processor with a configurable functional unit and method using such a data processor
EP1050810A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA A computer system comprising multiple functional units
GB2352066B (en) * 1999-07-14 2003-11-05 Element 14 Ltd An instruction set for a computer
AU6864400A (en) * 1999-08-30 2001-03-26 Ip Flex Inc. Control unit and recorded medium
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
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
EP1102163A3 (en) 1999-11-15 2005-06-29 Texas Instruments Incorporated Microprocessor with improved instruction set architecture
US6255849B1 (en) * 2000-02-04 2001-07-03 Xilinx, Inc. On-chip self-modification for PLDs
TW516320B (en) * 2000-02-22 2003-01-01 Intervideo Inc Implementation of quantization for SIMD architecture
JP2001306321A (ja) 2000-04-19 2001-11-02 Matsushita Electric Ind Co Ltd プロセッサ
US7120781B1 (en) 2000-06-30 2006-10-10 Intel Corporation General purpose register file architecture for aligned simd
JP4651790B2 (ja) * 2000-08-29 2011-03-16 株式会社ガイア・システム・ソリューション データ処理装置
US20020089348A1 (en) * 2000-10-02 2002-07-11 Martin Langhammer Programmable logic integrated circuit devices including dedicated processor components
US20020174266A1 (en) * 2001-05-18 2002-11-21 Krishna Palem Parameterized application programming interface for reconfigurable computing systems
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2003099397A (ja) 2001-09-21 2003-04-04 Pacific Design Kk データ処理システム
US6798239B2 (en) * 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
JP3785343B2 (ja) 2001-10-02 2006-06-14 日本電信電話株式会社 クライアントサーバシステム及びクライアントサーバシステムにおけるデータ通信方法
JP3779602B2 (ja) 2001-11-28 2006-05-31 松下電器産業株式会社 Simd演算方法およびsimd演算装置
KR100464406B1 (ko) * 2002-02-08 2005-01-03 삼성전자주식회사 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US7159099B2 (en) * 2002-06-28 2007-01-02 Motorola, Inc. Streaming vector processor with reconfigurable interconnection switch
JP3982353B2 (ja) 2002-07-12 2007-09-26 日本電気株式会社 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7024543B2 (en) * 2002-09-13 2006-04-04 Arm Limited Synchronising pipelines in a data processing apparatus
TW569138B (en) 2002-09-19 2004-01-01 Faraday Tech Corp A method for improving instruction selection efficiency in a DSP/RISC compiler
US7464254B2 (en) * 2003-01-09 2008-12-09 Cisco Technology, Inc. Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data
JP2004217989A (ja) 2003-01-14 2004-08-05 Toyota Central Res & Dev Lab Inc 水素吸蔵合金粉末、その製造方法および水素吸蔵合金粉末を用いた水素貯蔵装置
JP2004309570A (ja) 2003-04-02 2004-11-04 Seiko Epson Corp 光通信モジュール、光通信装置、及びその製造方法
US7496776B2 (en) * 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
US7176713B2 (en) * 2004-01-05 2007-02-13 Viciciv Technology Integrated circuits with RAM and ROM fabrication options
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
US8512714B2 (en) 2006-05-22 2013-08-20 Biogasol Ipr Aps Thermoanaerobacter mathranii strain BG1

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508636A (zh) * 2011-11-02 2012-06-20 中国人民解放军国防科学技术大学 用于向量处理器的程序流控制方法及系统
CN102508636B (zh) * 2011-11-02 2013-12-11 中国人民解放军国防科学技术大学 用于向量处理器的程序流控制方法及系统

Also Published As

Publication number Publication date
JP2007531134A (ja) 2007-11-01
CN100583027C (zh) 2010-01-20
US20150234659A1 (en) 2015-08-20
US20050223196A1 (en) 2005-10-06
TW200540706A (en) 2005-12-16
TWI384400B (zh) 2013-02-01
US9047094B2 (en) 2015-06-02
WO2005096141A2 (en) 2005-10-13
EP1735697A2 (en) 2006-12-27
CA2560469A1 (en) 2005-10-13
JP5744370B2 (ja) 2015-07-08
EP1735697B1 (en) 2016-07-06
WO2005096141A3 (en) 2006-06-01
US9477475B2 (en) 2016-10-25

Similar Documents

Publication Publication Date Title
CN100583027C (zh) 用于不对称双重路径处理的设备和方法
TWI413935B (zh) 用於在雙路徑處理器中之控制處理的裝置及方法
KR100464406B1 (ko) 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US9965275B2 (en) Element size increasing instruction
CN101963897B (zh) 用于双数据路径处理的装置和方法
JP3737573B2 (ja) Vliwプロセッサ
KR20070022239A (ko) 비대칭 듀얼 경로 프로세싱용 장치 및 방법
KR20010091132A (ko) 마이크로 프로세서의 데이터 연산 처리기

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
ASS Succession or assignment of patent right

Owner name: HUIDA TECHNOLOGY ENGLAND CO., LTD.

Free format text: FORMER OWNER: ICERA INC.

Effective date: 20130121

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130121

Address after: London, England

Patentee after: ICERA Inc.

Address before: Bristol

Patentee before: Icera Inc.

Effective date of registration: 20130121

Address after: Bristol

Patentee after: Icera Inc.

Address before: Bristol

Patentee before: Icera Inc.