CN1860441A - 用于可重新配置环境中的高效高性能数据操作元件 - Google Patents

用于可重新配置环境中的高效高性能数据操作元件 Download PDF

Info

Publication number
CN1860441A
CN1860441A CNA028133811A CN02813381A CN1860441A CN 1860441 A CN1860441 A CN 1860441A CN A028133811 A CNA028133811 A CN A028133811A CN 02813381 A CN02813381 A CN 02813381A CN 1860441 A CN1860441 A CN 1860441A
Authority
CN
China
Prior art keywords
unit
reconfigurable
chip described
multiplexer
input
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.)
Pending
Application number
CNA028133811A
Other languages
English (en)
Inventor
J·林纳
G·赖
P·林
M·E·罗林斯
V·丁克维奇
C·B·格林伯格
C·E·菲利普斯
H·王
B·L·泰勒
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 CN1860441A publication Critical patent/CN1860441A/zh
Pending 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
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or 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 or 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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)

Abstract

一个可重新配置的芯片(20),具有多个可重新配置的功能单元,这些单元包括一个移位单元、一个算术逻辑单元,及多路复用器。数据通路与其它数据通路互相连接。该互连线路传送长度为一个字的数据。移位器使得能够对长度为一个字的数据进行调整,以便将其用于算术逻辑单元。可重新配置功能单元是通过可重新配置功能单元指令控制的。可重新配置功能单元指令被存储在一个可重新配置功能单元指令存储器中,该存储器由芯片上的一个状态机寻址。

Description

用于可重新配置环境中的高效高性能数据操作元件
相关应用/优先级
本专利要求享受2001年5月2日申请的专利No.60/288,298的优先权。
技术领域
本发明有关可重新配置逻辑芯片,特别是有关用在可重新配置计算中的可重新配置逻辑芯片。
背景技术
域可编程门阵列(FPGA)是可编程芯片,可以实现不同的配置。一般,利用设计工具来生成一个设计,并为一个具体的设计来配置一个FPGA。尽管可以更改设计,但一般来说,FPGA使用的还是单一的配置,其原因是,改变一个配置所需要的时间远比芯片的工作时间长。
最近,设计出了一种可重新配置芯片,它可以将一个算法的某些部分快速切换到一个可重新配置的芯片上。设计出这些可配置芯片的目的是,利用该芯片的可重新配置元件,为一个算法中某些部分的实现提供资源。
我们希望在一个可重新配置芯片中使用一个数据操作元件或可重新配置功能单元,以便在一个可重新配置的芯片上实现一个更有效的算法。
发明内容
本发明有关一个可重新配置芯片,其中包含用于实现不同功能的多个可重新配置功能单元(例如一个数据通路单元)。可重新配置功能单元最好包含多路复用器,至少一个移位单元和至少一个算法逻辑单元(ALU)。可重新配置功能单元是通过可重新配置功能单元指令来配置的。这些指令控制多路复用器和移位单元及ALU的配置。可重新配置芯片还包括用于将各可重新配置功能单元连接在一起的互连结构。以这种方式,数据可以在各可重新配置功能单元之间流动。
可重新配置功能单元指令最好包含一些域,分别用于多路复用器、移位单元和ALU。这些域以所要求的方式配置一个可重新配置功能单元中的相应单元。
在一个推荐实例中,每一个可重新配置功能单元都有一个相关的指令存储器。该指令存储器中为该可重新配置功能单元存储一组指令。在一个推荐实例中,状态机寻址该指令存储器,以便确定要被装入该可重新配置功能单元的下一条指令。在一个推荐实例中,可重新配置功能单元向状态机提供反馈,表明一项功能何时结束,下一项功能应在何时装入该可重新配置功能单元。
在一个实例中,采用互连单元来有选择地将一些可重新配置功能单元连接起来,以传送字长数据。所传输数据最好具有固定字长(32位或更多)。固定字长传输器能简化互连系统,其代价是损失了数据传输的灵活性。可重新配置功能单元中的移位单元使得算法逻辑单元能够对字长输入数据中不同的位进行操作,以补偿互连单元的固定结构所带来的不便。因此,若所需数据位于一个字的某一位置,移位器可以将该比特位置移动到能由算法逻辑单元操作的合适位置。
本发明的另一个实例包括使用一个多路复用器,该多路复用器具有一个延时单元输入和一个旁路该延时单元的输入。以这种方式,可重新配置功能单元可以实现一个可变的延时,以提高系统的灵活性。
附图说明
图1是本发明的一个实例中,一个可重新配置芯片的总图;
图2是本发明的一个实例中,一个可重新配置功能单元的简图;
图3是本发明的一个实例中,一个可重新配置功能单元的图形;
图4是可由本发明实例使用的一个乘法器单元的图形;
图5是图1所示可重新配置功能单元的一个slice,例证了数据通路单元之间的互连;
图6例证了数据通路单元与水平和垂直总线之间的连接;
图7例证了一个tile中的数据通路单元与另一个tile中的数据通路单元之间的互连;
图8举例说明了本发明的一个实例中,数据通路单元与本地系统存储器之间的互连;
图9举例说明了一个状态机和功能块配置存储器,该功能块配置存储器为功能块数据单元生成配置信息指令;
图10A举例说明了本发明的一个状态机、配置状态存储器和数据通路单元的互相连接,显示了数据通路单元的指令和指令域;
图10B举例说明了一个数据通路单元,该单元为指令的至少一部分使用了译码器;
图11举例说明了作为本发明的一个实例,数据通路单元处的控制系统配置存储器;
图12举例说明了本发明的一个实例中使用的一个互连逻辑单元;
图13A和13B是图表,举例说明了ALU的部分指令;
图14举例说明了本发明一个实例中系统的标志;
图15举例说明了移位器的移位模式;
图16是一个移位器实例的说明;
图17举例说明了图16中移位器的操作;
图18中显示了本发明一个实例中的逻辑系统,该系统使用多个主锁存器;
图19举例说明了本发明一个实例的背景和前景平面锁存器;
图20是本发明的一个实例中,一个数据通路的可重新配置功能单元的实例;
图21是图20的系统中输入多路复用器的实例;
图22是本发明的一个实例中,移位器的移位模式图;
图23举例说明了本发明一个实例中,移位器的一些移位模式;
图24举例说明了本发明的一个实例中,一个turbo搜索表的实现。
具体实施方式
图1举例说明了一个可重新配置芯片20。该可重新配置芯片20包括一个中央处理单元(CPU)22,推荐是一个缩减指令集(RISC)CPU。利用存储控制器24从外部存储器(未示出)传送数据。被称为路由总线的总线26用于从存储控制器向可重新配置fabric28传输数据。可重新配置fabric(构件)28被划分为一些slice(单片)。每个slice又被划分为一些tile(子片)。每个tile都包括一个数据通路单元(可重新配置功能单元)、控制单元和本地系统存储单元。本地系统存储单元按以下将要描述的方式与数据通路单元互相作用。在一个推荐实例中,每个tile还有一些多路复用器单元。
图2举例说明了本发明一个实例中的一个可重新配置功能单元。该可重新配置功能单元包括输入多路复用器30和32。如以下将要介绍的,输入多路复用器使得数据通路单元能够从不同的位置(包括邻近的数据通路单元以及数据总线)接收输入。输入多路复用器选定的输出被送给寄存器36和38。另外,多路复用器32的输出送给移位单元34。如以下将介绍的,移位单元34使得ALU 40能选择对不同的位进行操作。由于为简化互连系统,数据通路单元之间的互连使用的是固定字长连接,因此,在数据通路单元中使用移位单元,以便能够对包含在一个字中间的位进行访问。
如以下将介绍的,移位单元34最好具有一些模式,不仅仅是实现逻辑和算术左移和右移。这些不同的模式使得系统能够以一种更有效的方式进行操作。以下介绍的算法逻辑单元40,最好使用数据通路单元指令的一个域来实现一个功能。ALU 40的输出最好送给一个输出寄存器42。该输出还可以被送给一个可选的比特移位器44,以便生成一个经过移位的值。
在一个实例中,还使用了线路46上的一个旁路ALU反馈输出。这就使得在输出寄存器42控制从数据通路单元送出哪些输出的同时,数据通路单元的一些部分还能够工作。这在输出寄存器42用于寻址一个本地系统存储单元时很有用。
比特移位器44被用于实现线性反馈移位寄存器,见Peter Lam,Attorney Docket提出的专利应用No.032001-060“Modifications toReconfigurable Functional Unit in a Reconfiguable Chip toPerform Linear Feedback Shift Register Function”。
应指出,多路复用器,移位单元34和ALU 40最好是由数据通路单元的一条指令控制的。该指令被划分为一些不同的域,包括用于多路复用器的多路复用器指令域,用于移位器34的移位器单元域和用于ALU 40的ALU指令域。在一个实例中,将一个译码器用于该指令的至少一部分。
图3详细描述了本发明的一个实例。输入多路复用器50和52从邻近的单元接收输入数据。在一个例子中,来自16个单元(包括数据通路单元和乘法器单元)的数据字被用作输入。该例中使用了全局垂直和水平互连。在一个实例中,所连接有:线性反馈移位寄存器的反馈信号,一个逻辑零常量输入和一个本地系统存储单元的输入。另一个输入是前一个数据通路单元的进位输入,该输入被直接提供给ALU54。多路复用器50与移位器56相连,移位器56包括一些不同的操作模式。移位器56又与另一个多路复用器58相连,因此,多路复用器50的输出既可以避开也可以使用移位器单元56。移位器单元56还能以一些模式使用来自输入多路复用器52的A输入。多路复用器58和52的输出可分别送给寄存器60和62。寄存器60和62还可从芯片外装入。逻辑64和66使该寄存器值能够作为系统的掩模寄存器。多路复用器68和70为ALU 54选择输入。ALU的输出被送到一些不同的可能通路。应指出,多路复用器72送出的数据通路输出可以是来自输出寄存器74的值,也可以是来自多路复用器76的值(可以是ALU值或线路78上的本地系统存储器数据)。来自ALU的标志值被送给多路复用器80和82,由多路复用器来选择所要求的标志值。该标志值被存储在寄存器88和90中,寄存器88和90的值被送给多路复用器92和94,或者,使用多路复用器80和82所选定的值。CONF值是指令中的一个域,表明选定的是哪一个标记。
在一个实例中,可通过图18中所显示的多个主辅锁存器来实现寄存器60,62和74,以使得能够将背景配置数据装入寄存器中。在一个实例中,可通过可重新配置功能单元指令来控制这些寄存器的操作。
图4是一个乘法器单元的图形。乘法器单元与图3所示的可重新配置功能单元有些类似。不过,乘法器单元具有一个专用乘法器,而不是ALU。
如图5所示,在一个实例中,对于一个tile中的每七个数据通路单元或可重新配置功能单元,都有两个乘法器单元。
图6举例说明了怎样将相邻数据通路单元和乘法器连接到数据通路单元的输入中。参看图5,作为数据通路单元100的输入,数据通路单元100可以接收来自上面八个前面的数据通路单元(和乘法器)和下面七个后面的数据通路单元(和乘法器)的输出。数据通路单元100的输出还反馈给自己。利用系统的输入多路复用器,可以为A或B输入选择这些单元中任意单元的输出。
图6举例说明了怎样将一个tile的可重新配置功能单元(数据通路单元)连接到水平和垂直连接线上。借助于多路复用器,数据通路单元的输出和输入可被互连到垂直路由线路和水平路由线路上。
图7例证了怎样利用垂直互连线路将一个tile中的一个数据通路单元与另一个tile中的一个数据通路单元互连。应指出,在本发明系统中,推荐使用基于字的互连。在一个实例中,互连线路允许32位字宽数据的连接。一旦一个数据通路单元从互连系统接收到数据,其中的移位器单元就可以对该数据进行对齐处理。由于系统是以32位字发送数据的,因此就降低并简化了互连系统的复杂度,不过稍稍降低了互连的灵活性。
图8例证了数据通路单元和本地系统存储器之间连接。在一个推荐环境中,使用交替的数据通路单元来实现本地系统存储器的读和写。例如,数据通路单元102向本地系统存储器104提供读地址并从本地系统存储器104接收读出数据。数据通路单元106向本地系统存储器104提供写地址并写入数据。应指出,通过使用诸如通过门106,108,110和102之类的通过门,数据通路单元102和106可以连接到其它的本地系统存储器上,例如本地系统存储器114,数据通路单元116和118可以连接到本地系统存储器104上。在另一个实例中,数据通路单元可以对一个本地系统存储器进行读写。数据通路单元的一个作用是向本地系统存储器提供一个地址,以便从本地系统存储器获得数据,数据通路单元可被放置在水平和垂直互连总线上。图8中所显示的连接是直接连接,直接从本地系统存储器读出并写入数据。在一个推荐实例中,本地系统存储器利用存储控制系统进行全局读写。这一通用存储控制系统用于配置系统并获得由数据通路单元操作的数据。应指出,如上面所描述的,在一个推荐实例中,数据通路单元包含有这样一些指令,这些指令允许数据通路单元在执行一些其它功能的同时,向本地系统存储器提供地址和数据。
图9描述了可重新配置功能单元130的一个控制fabric单元132。在该实例中,控制fabric单元132为可重新配置功能单元130生成一个控制或指令行。在该实例中,推荐控制fabric单元132包含一个状态机单元134和一个功能块配置存储单元136。状态机134向指令存储器136中生成地址。状态机134的一种实现方式是使用一个可重新配置的可编程积-和单元136。
图10A举例说明了一个系统,该系统包括状态机配置单元136,配置状态存储器138’和数据通路单元130’。应指出,来自配置状态存储器138’的配置可被认为是数据通路单元130’的一个指令。该指令最好包括一些域,例如一个ALU配置域,移位寄存器配置域和一个多路复用器配置域。在一个实例中,来自数据通路单元130’的一些标志被送给状态机136’,以便在数据通路单元完成对一批数据的操作之后,切换数据通路单元的配置。配置状态存储器138’也可以是从来自外部存储器或来自处理器的一个外部配置装定的。
图10B举例说明了一个数据通路单元,该单元使用一个译码器来对指令的至少一部分进行译码。
图11显示了一个控制系统,该系统包括不同配置状态存储器的状态机。如以上所述,数据通路单元标志被送给控制系统。
图12举例说明了一个算法逻辑单元。该单元包括一个算术单元142,一个并行逻辑单元140和一个标志单元144。图中还显示了一个进位选择单元146。首先发送来自指令的ALU指令域,以选择ALU的操作。算术单元142使用一个进位输入。在一个推荐实例中,该进位值要么是前一个数据通路单元的进位,要么是控制信号,或一个作为指令一部分的进位值。
图13A和13B举例说明了一些Opcode的列表,这些代码用在本发明可重新配置功能单元的一个ALU的实例中。这些Opcode的详细介绍参见附录I,在此引用以供参考。
图14是本发明中标志系统的图形。标志单元位于数据通路单元中,用于生成标志,该标志被送往控制单元及下一个数据通路单元。所用标志的选择是由可重新配置功能指令的一个域来控制的。以下给出了对一些标志的描述。
每个周期驱动一次ROXR。它是由conf==1这个条件来选择的。
该操作是:
当opcode[7]==0时,flag[1]==^(B[31:0])
                    flag[0]==^(B[15:0])
当opcode[7]==1时,flag[1]==^(B[31:16])
                    flag[0]==^(B[15:0])
缩写:
CO:加/减操作的进位输出
OV:加/减操作溢出
EQ:相等(A==B)
GT:大于
LT:小于
SN:符号(结果的符号位)
前面的标志
Cin:前一行的进位
Ctrl:来自控制的进位
Max:0x7fff[fff](对于16/32位)
Min:0x8000[0000](对于16/32位)
图15举例说明了本发明一个实例中移位单元的移位模式和一些模式的操作。由于移位单元具有一些不同的模式,因此可以提高本发明系统的灵活性。
图16和17举例说明了一个使用多行多路复用器的移位单元的一种实现方式。附加逻辑也被用于生成一个专用的输出。图17举例说明了一些移位寄存器的操作。
数据通路单元中使用的这种移位器执行的不仅仅是左/右移位操作。该移位器包含一个多路复用器阵列,它们由多路复用器选择信号控制。在一个4×6路多路复用器阵列的移位器实例中,一个32位的操作数被划分为以8个信号为一组的四个组,它们被连接到第一行的四个多路复用器上。除了最后一行之外,前一行中多路复用器的输出被连接到下一行多路复用器的输入。阵列中的每一个多路复用器都是独立控制的。控制信号决定了信号怎样通过该阵列,并由此决定了对该操作数所执行的操作类型。在一个实例中,所做操作的例子有:32位逻辑右/左移位,32位算术右/左移位,低16位符号扩展到32位,常量生成,低16位复制到高16位,高16位复制到第16位,高16位和低16位交换,16位算术右移,和字节交换。
[0062]图18举例说明了本发明系统的一个实例中所用的一个多重主锁存器系统。在该例中,使用了两个主锁存器:一个用于系统的背景配置。另一个则从数据通路单元的流程或处理器中接收数据。锁存器150的输入是通过多路复用器152提供的。锁存器154与配置总线相连,用于从背景配置接收数据。多路复用器156可被用于为辅助锁存器158选择输入。在系统中使用一个背景配置存储器,可以加快本发明系统的操作速度。
图18的存储单元具有多个主锁存器,这些主锁存器通过一个多路复用器共享一个单独的辅助锁存器,从而提供一个多功能存储介质。另外,通过共享一个辅助锁存器,可以明显地节省空间(大约25%)。在使用大量存储单元的系统中,这种空间上的节省尤为明显。这种存储单元设计是基于这样一个事实,即,将配置位被装入存储单元这一事件很少发生。因此,按照本发明,不必使每一个主锁存器都有一个独立的与一个配置比特流信号相连接的辅助锁存器,而是使与配置比特流信号相连接的主锁存器与另一个主锁存器共享其辅助锁存器。因此,两个或多个主锁存器共享一个单独的辅助锁存器。在这些主锁存器与该单独的辅助锁存器之间连接一个多路复用器,用于选择将哪一个主锁存器与该辅助锁存器连接。
在一个实例中,一个主锁存器的输入与一个频繁请求存储单元功能的信号连接,另一个主锁存器的输入与一个不频繁请求存储单元功能的信号连接。第一个主锁存器与数据通路信号连接,第二个主锁存器与配置比特信号连接。在数据通路信号被送给辅助锁存器时,存储单元将数据通路流程划分为一些阶段。当配置比特流信号被送给辅助锁存器时,存储单元存储该配置比特。在另一个实例中,一个主锁存器与数据通路信号相连,多个主锁存器与一个配置比特信号相连,所有的主锁存器输出都与多路复用器相连,多路复用器用于选择并将来自主锁存器的信号之一送给共享的辅锁存器。
图18中:
.一旦出现‘RESET’或‘INIT’信号,则主锁存器复位
.只有在出现‘RESET’信号时,辅助锁存器才复位
.只要配置是启动的,A路的多路复用器就选择配置通路(还受所选的具体slice限制)
.在arc写入时,B路的多路复用器选择arc总线(还受对相应arc地址(arc_address)译码结果的限制。请参阅地址变换的ARC extspec)。
.只有在时钟为低时,主锁存器才是透明的
.只有在时钟为高时,辅助锁存器才是透明的
.在latpipe 0使能或出现了对该寄存器的arc写入时,主锁存器0是透明的
.在激活了配置装入并且相应的配置地址已被译码时,主锁存器1是透明的
.在下列情况下,辅助锁存器是透明的:
1.启动了对该slice的配置,或
2.对该寄存器进行arc写入,或
3.来自控制端的latpipe信号为高电平
.该设置是基于这样一个假设条件,即:配置和arc写入不是同时发生的。若它们同时发生,则配置的优先级更高。
本发明的另一个实例所关注的是本发明的可变延时单元。可变延时单元由一个多路复用器组成,它接收送给一个寄存器的第一单元和旁路该寄存器的第二输入。以这种方式,可以实现一个可变的延时。在图3的可重新配置功能单元中,连接到多路复用器68上的寄存器60,连接到多路复用器70上的寄存器62,连接到多路复用器92上的寄存器88,连接到多路复用器94上的寄存器90,和连接到多路复用器72上的寄存器74,可以实现这样一个可变延时。一个多路复用器可以选择一个被延时的信号或一个旁路信号;该延时信号经过一个延时单元,就像一个触发器。
这种灵活的适应性延时单元包括一个存储设备(例如触发器,锁存器),该存储设备的输入端与一个输入信号相连,其输出端连接一个多路复用器的第一输入端。该多路复用器的其它输入端与输入信号相连。其结果是,多路复用器的第一输入端与输入信号相连,其第二输入端与经过存储设备被延时了的输入信号相连。选择信号用于对延时信号和非延时信号进行选择。
图19显示了一个背景前景平面配置的另一个实例。
本发明中引用了以前的专利应用,包括“A HIGH PERFORMANCE DATAPATH UNIT FOR BEHAVIORAL DATA TRANSMISSION AND RECEPTION”,发明者是Hsinshih Wang,序列号为09/307,072,于1999年5月7日提出申请(代理案号为032001-014),“CONTROL FABRIC FOR ENABLINGDATA PATH FLOW”,发明者是Shaila Hanrahan等,序列号为09/401,194,于1999年9月23日提出申请(代理案号为032001-016),以及“CONFIGURATION STATE MEMORY FOR FOUNCTIONAL BLOCKS ON ARECONFIGURABLE CHIP”,发明者是Shaila Hanrahan和ChristopherE.Philips,序列号为09/401,312,于1999年9月23日提出申请(代理案号为032001-035)。
Vermont实例。
图20举例说明了可重新配置功能单元或数据通路单元的一个最终实例。在该实例中,在B输入通路上,在移位器之前加入了一个寄存器和多路复用器。另外,对输入多路复用器稍稍进行了改动。在图21中显示了输入多路复用器。
图22举例说明了图19所显示的新实例中,移位器模式的列表。
图23举例说明了图22所显示的新模式的实现方式。
图24举例说明了本发明系统中使用的turbo查询表。在对以对数格式存储的数据进行加法运算时,该turbo查询表很有用。该表可用于很多通信系统中。在以前的实例中,为了对以对数格式存储的数据进行乘法运算,必须首先对数据进行指数扩展,将其转化为普通格式。随后,将经过指数扩展的数据相加,再将结果信息转换回对数格式。在该推荐实例中,该turbo查询表用于生成加入一个校正因子之后的估算值。该估算过程中,将A和B中的最大值作为A与B之和的第一个估算值。A与B之差的绝对值作为查询表的输入,提供一个校正因子,加到最大值A或B中。通过向最大值A或B加入该校正因子,可以产生一个相对精确的估算值。应指出的事,查询表不必与A的输入比特数量相同。在一个推荐实例中,只需要几位的精确度。若A减B的幅值很大,则组合出来的值与A和B中的最大值并无明显差异。例如,1,000,000与0.1相加,结果近似与1,000,000。1,000,000与1,000,000相加等于最大值的两倍。
附录II和III进一步例证了可重构配置单元的Vermont实例。
对于了解本项技术的人员来说,可以在不脱离本发明实质和特性的条件下,以其它具体的形式来实现本发明。此处所列出的实例只起举例说明的作用,并不限定本发明。本发明的范围是通过附加的权利要求规定的,并不是由前面的描述所定义的。凡是在权利要求的含义和范围之内的所有变动,都涵盖在本发明范围之内。
附录I
1.9 Opcode详述
名称                           ADD
伪代码                           result=A+B
描述                            A加B
受影响标志                      CO该操作的进位
                                OV若该操作溢出
                              EQ若a==b
                              SN result[31]
名称                            ADD16
伪代码                          结果={(AH+BH),(AL+BL)}
描述                            并行A加B
受影响标志                     CO,OV,EQ,SN类似于加法运算,
                               只不过标记flag[0]有效
名称                             ADDC
伪代码                          结果=A+B+Cin
描述                            32位操作的A加B加进位
                                 Cin是低16位的进位
受影响标志                     CO,OV,EQ,SN类似于加法运算
名称                            ADDCNT
伪代码                          结果=A+B+Ctrl
描述                            32位操作的A加B加控制进位
受影响标志                     CO,OV,EQ,SN类似于加法运算
名称                           SUB
伪代码                         结果=A-B
描述                            A减B
受影响标志                      CO:操作(A+~B+1)的进位
                                OV:若操作溢出
                                GT:若A>B
                     LT:若A<B
                     EQ:若A==B
                     SN:结果的符号
名称                SUB16
伪代码              结果={(AH-BH),(AL-BL)}
描述                 并行A减B
受影响标志          CO,OV,GT,LT,EQ,SN类似于减法运算
名称                SUBC
伪代码              结果=A+~B+Cin
描述                带进位的A减B,32位操作
受影响标志          CO,OV,GT,LT,EQ,SN类似于减法运算
名称                SUBCNT
伪代码              结果=A+~B+Ctrl
描述                带控制进位的A减B
受影响标志          CO,OV,GT,LT,EQ,SN类似于减法运算
名称                SADD
伪代码              if(溢出)
                     结果=最大值
                    else if(下溢)
                     结果=最小值
                   else
                     结果=A+B
描述                带饱和的A+B
受影响标志          CO:A+B的进位输出
                   OV:A+B溢出
                   EQ:A==B
                   SN:结果的符号
名称                  SADD16
伪代码                并行16位SADD运算
描述                  带饱和的A加B
受影响标志           CO,OV,EQ,SN类似于SADD,flag[0]有效
名称                 SADDCNT
伪代码               if(溢出)
                      结果=最大值
                     else if(下溢)
                      结果=最小值
                    else
                      结果=A+B+Ctrl
描述                 带控制进位及饱和的A+B
受影响标志           CO,OV,EQ,SN类似于SADD
名称                 SSUB
伪代码               if(溢出)
                      结果=最大值
                     else if(下溢)
                      结果=最小值
                    else
                      结果=A-B
描述                带饱和的A-B
受影响标志          CO:A+~B+1的进位
                   OV:A-B溢出
                   GT:A>B
                   LT:A<B
                   EQ:A==B
                   SN:结果的符号
名称                 SSUB16
伪代码               并行16位SSUB
描述                    带饱和的A-B
受影响标志          CO,OV,GT,LT,EQ,SN类似于SSUB,flag[0]有效
名称                 SSUBCNT
伪代码               if(溢出)
                      结果=最大值
                     else if(下溢)
                       结果=最小值
                    else
                       结果=A+~B+Ctrl
描述                 带控制进位和饱和的A-B
受影响标志        CO,OV,GT,LT,EQ,SN类似于SSUB
名称                  INC
伪代码                结果=B+1
描述                  B递增
受影响标志            CO:B+1的进位
                   OV:B+1的溢出位
                   SN:B+1的符号
名称                DEC
伪代码               结果=B-1
描述                 B递减
受影响标志           CO:B+0xffffffff的进位
                   OV:B-1的溢出位
               SN:B-1的符号
名称               NEG
伪代码              结果=~B+1
描述                对B求反
受影响标志          SN:~B+1的符号
名称                     ABS
伪代码                   if(B为负)
                         结果=~B+1
                         else
                         结果=B
描述                     B的绝对值
受影响标志
名称                 ABS16
伪代码               并行16位ABS
描述                32位操作中,取B的绝对值
受影响标志
名称                 CSUB
伪代码               if(A-B>=0)
                       结果=A-B
                       else
                        结果=A
描述                   条件减
受影响标志              CO:A+~B+1的进位
                       OV:A-B溢出
                       GT:A>B
                       LT:A<B
                       EQ:A==B
                       SN:结果的符号
名称                       AND
伪代码                     结果=A&B
描述                       逐位与
受影响标志                 EQ:A==B
                           SN:结果的bit[31]
名称                    OR
伪代码                  结果=A|B
描述                    逐位或
受影响标志              EQ,SN与AND操作相同
名称                    NAND
伪代码                  结果=~(A&B)
描述                    逐位与再求反
受影响标志              EQ,SN与AND操作相同
名称                    NOR
伪代码                  结果=~(A|B)
描述                    逐位或再求反
受影响标志             EQ,SN与AND操作相同
名称                    XOR
伪代码                  结果=A^B
描述                    逐位异或
受影响标志             EQ,SN与AND操作相同
名称                    XNOR
伪代码                  结果=~(A^B)
描述                    逐位异或求反
受影响标志             EQ,SN与AND操作相同
名称                    PASSA
伪代码                  结果=A
描述                    传递A
受影响标志             EQ,SN与AND操作相同
名称                    PASSB
伪代码                  结果=B
描述                    传递B
受影响标志             EQ,SN与AND操作相同
名称                    NOTA
伪代码                  结果=~A
描述                    使A反转
受影响标志             EQ,SN与AND操作相同
名称                    NOTB
伪代码                  结果=~B
描述                    使B反转
受影响标志             EQ,SN与AND操作相同
名称                    MIN
伪代码                  if(A<B)
                          结果=A
                         else
                          结果=B
描述                    返回A和B中的较小值
受影响标志             GT:A>B
                     LT:A<B
                     EQ:A==B
                     SN:结果的bit[31]
                     CO:A+~B+1的进位
                     OV:A-B溢出
名称                  MIN16
伪代码                并行16位MIN
描述                  32位操作,返回A和B中的较小值
受影响标志           与MIN操作相同,flag[0]也有效
名称                 Max
伪代码                  if(A>B)
                          结果=A
                         else
                          结果=B
描述                    返回A和B中的较大值
受影响标志             GT:A>B
                     LT:A<B
                     EQ:A==B
                     SN:结果的bit[31]
                     CO:A+~B+1的进位
                     OV:A-B溢出
名称                   MAX16
伪代码                 并行16位MAX
描述                   32位操作,返回A和B中的较大值
受影响标志            与MIN操作相同,flag[0]也有效
名称                   PENC
伪代码                 result=0
                     for(i=31;i>=0;i++)
                {   if(B(i)==1)
                    {  result=i+1;
                       break;
                    }
                }
描述                   监测起始位1
受影响标志             无
名称                   MUXBBA
伪代码                 result=in[A[4:0]]
描述                   利用输入A的4个最低有效位乘B的16位
                输入
受影响标志                SN:结果的bit[31]
名称                      SHIFTBBA
伪代码                    if(A[5])
                            result=B<<A[4:0];
                        else
                          result=B<<A[4:0];
描述                      将B移动A位。16位或32位操作是由配
                   置存储器中的con32位决定的。在这两种情况下,
                   移出的位都被传送给标志
受影响标志               结果的bit[31]
                               1.10 DPU接口信号(32位DPU)
信号名称 宽度 方向     描述
                                         Misc信号
praddrmask [9:6] 输入 LSM地址的OR掩码
clk [0] 输入 时钟
clken [0] 输入 时钟使能
reset [0] 输入 复位
load config[a/b/o] [0] 输入 从配置总线装载abo寄存器
arc r w [0] 输入 arc读/写
arc bus [31:0] 输入 来自arc的总线
arc_access_[a/b/o] [0] 输入 arc读/写abo寄存器
                          输入数据
in0-in7 [31:0]  输入   从上面来的8路本地数据连接
in8-in14 [31:0]  输入   从下面来的7路本地数据连接
gnet0-gnet15 [31:0]  输入   全局数据连接
lsmval [31:0]  输入   LSM值
                                     输入多路复用
muxasel [2:0] 输入 选择上面的8个输出(与G0和G1
多路复用器共享)
muxbsel [2:0] 输入 选择上面的8个输出(与选择下面的7个输出和自回馈共享)
muxafgsel [1:0] 输入 为A选择上面,下面或全局的数据通路
muxbfsel [0] 输入 为B选择本地或全局数据通路
muxbcf [0] 输入 为B选择移位或不移位
muxop[a/b]sel [1:0] 输入 选择锁存、不锁存、与或非数据
                              配置总线&控制
[a/b/o]总线 [31:0] 输入 配置总线
Muxlat[a/b/o]sel [0] 输入 选择配置总线或DPU数据
Lat[a/b/o][m/s]en [0] 输入 使能辅助锁存器和主锁存器(激活并对接)
                                ALU信号
Shiftamt [4:0] 输入 位移数量
Shiftdir [0] 输入 位移方向
Shiftmode [2:0] 输入 移位器的移位模式
Ctrl [0] 输入 加法器的控制进位
ConF [2:0] 输入 标志控制
Opcode [7:0] 输入 ALU的Opcode
cin [0] 输入 上一行的进位输出
                                 输出多路复用
muxslulsmsel [0] 输入 选择ALU输出或LSM值
muxoutsel [0] 输入 选择锁存或不锁存
muxlsmsel [0] 输入 选择向lsm发送锁存数据或未锁存数据
                                    输出
flag [1:0] 输出 标志
Out [31:0] 输出 数据输出
aluOut [31:0] 输出 送给gnet以使结果值再流通
dpu lsm data [31:0] 输出 送给LSM的数据
dpu lsm addr [9:0] 输出 送给LSM的地址
1.11 DPU功能——移位器/掩码之后
                 16位              32位
算术             Add               Add
                 Sub               Sub
                 饱和Add           饱和Add
                 饱和Sub           饱和Sub
                 Inc               Inc
                 Dec               Dec
                 Neg               Neg
逻辑             AND               AND
                 OR                OR
                 XOR               XOR
                 NAND              NAND
                 NOR               NOR
                 XNOR              XNOR
                 NOT               NOT
                 PASS(NOP)         PASS(NOP)
专用函数         ABS               ABS
                 MIN               MIN
                 MAX               MAX
                 Rxor              Rxor
                 N/A               DIV
                 N/A               LFSR
                 N/A               PENC
                 N/A               MUXB_by_A(1)
                 N/A               SHIFTB_by_A(2)
注意:可以为每个slice建立一个896(28*32)位操作器
1:实现N:1多路复用器,其中2<=N<=8
2:A[4:0]是移位的数量,A[5]是移位的方向
              CS2212 ALU Opcode补充
以下的opcode将被加入CS2212:
ADD8
SUB8
ADDSUB16
SUBADD16
操作:              ADD8:8位加法运算
                    Out[7:0]=A[7:0]+B[7:0]
                    Out[15:8]=A[15:8]+B[15:8]
                    Out[23:16]=A[23:16]+B[23:16]
                    Out[31:24]=A[31:24]+B[31:24]
Opcode:
?   ?   ?   ?   ?   ?   ?   ?
比特粒度                8位操作
受影响标志              无可用标志
操作:                  SUB8:8位减法运算
                    Out[7:0]=A[7:0]+~B[7:0]+1
                    Out[15:8]=A[15:8]+~B[15:8]+1
                    Out[23:16]=A[23:16]+~B[23:16]+1
                    Out[31:24]=A[31:24]+~B[31:24]+1
Opcode:
?    ?    ?    ?    ?    ?    ?    ?
比特粒度                8位操作受影响标志              无可用标志
操作:                  ADDSUB16:16位加法和减法运算
                    Out[31:16]=A[31:16]+B[31:16]
                    Out[15:0]=A[15:0]+~B[15:0]+1
Opcode:
 ?   ?   ?   ?   ?   ?    ?   ?
比特粒度                      16位操作
受影响标志                    CO,OV,EQ,SN
操作:                        SUBADD16:16位加法和减法运算
                              Out[31:16]=A[31:16]+~B[31:16]+1
                              Out[15:0]=A[15:0]+B[15:0]
Opcode:
 ?   ?   ?   ?   ?   ?   ?   ?
比特粒度                      16位操作
受影响标志                    CO,OV,EQ,SN
            CS2212乘法器输出多路复用规范
为了使A或B操作数能被锁存在O寄存器中,在CS2212中,改变了乘法器输出的多路复用。这就有效地避开了乘法操作。不过,这要求在MULT CSM中的“muxmultlsmsel”域中加入一个比特。“muxmultlsmsel”将以下列方式选择送给O寄存器的输入:
Muxmultlsmsel[1:0] O寄存器或乘法器的输出结果
2’b00 乘法输出
2’b01 LSM读出数据
2’b10 操作数A
2’b11 操作数B
这项功能使得用户能够在不使用乘法器的主功能时,将其用做一个可以动态配置的路由资源。
              CS2212流程寄存器规范
CS2212具有一些寄存器,它们或者被用作掩模寄存器,或者被用作流程寄存器。为使用户能够在A和B操作数通路中使用流程寄存器,并使用掩模寄存器,CS2212包含一些附加的寄存器。这些寄存器被加在A和B输入之后,被称为”apipe”和”bpipe”。这些寄存器可分别被”muxapipe”和”muxbpipe”信号旁路掉。参照CS2212 DPU方框图,可以看到这些寄存器和多路复用器的布置。多路复用器是按以下方式选择的:
  “muxapipe” 操作数A “muxbpipe” 操作数B
  0 旁路寄存器 0 旁路寄存器
  1 流程寄存器 1 流程寄存器
          CS2212 LSM写数据多路复用规范
CS2212中规定,写入LSM的可以是位移器输出,也可以是ALU输出。为实现这一附加功能,在LSM写数据通路上加入一个多路复用器。该多路复用器被称为”muxlsmwd”,并可按以下方式由”muxlsmwdsel”信号选择:
    “muxlsmwd”   LSM写数据
     0   ALU输出
    1   移位器输出
参照CS2212方框图察看”muxlsmwd”的布置。
2.1概述
fabric是可以重新配置的,该过程由配置位控制。将配置位装入fabric的方法是,首先发布arc指令(通过装入存储器),随后配置控制器将配置位传送到该fabric的配置平面中。
下表提供了软件信息,这些信息有关每条配置信号对应于地址空间中的哪个地址。由于还没有确定配置的基地址,以下地址从0开始。
2.2详述
.头16位是嵌入地址
.首位(bit[127])是校验位。硬件检测每行(128位)的偶校验。
有关校验,请查阅Dani的ARC扩展协议。
.以下的地址是相对于一些基地址的。
.每行的128位中带有112位的配置数据
.在装载配置期间,硬件在每个周期最多存储112位行。
.对于某种配置来说,可以跳过该配置不需要的那些行。
.现在,slice地址将不被嵌入在当前的地址变换表中,并且可以暂时从当前的地址变换表中删除。用户可参照ARC扩展规范,察看怎样在一个操作中配置多个slice。
2.3地址变换
地址         数据
            HL   DPU/MULT寄存器   32 31                  0
 0x0            保留  row0  寄存器A
 0x1  row0  寄存器B
 0x2  row0  寄存器O
 0x3
 0x4  row1  寄存器A
 0x5  row1  寄存器B
 0x6  row1  寄存器O
 0x7
 0x1C  row7高mult寄存器A
 0x1D  row7高mult寄存器B
 0X1E  row7高mult寄存器O
 0X1F
 0X20  row7低mult寄存器A
 0X21  row7低mult寄存器B
 0X22  row7低mult寄存器O
 0X23  保留
 0X24-0X3F
 111       84|83  CSM     56  55      28|27     0
 0x40      row 0(第0行)DPU配置1     row 0 DPU 配置0
 0x41      row 0 DPU配置3     row 0 DPU 配置2
 0x42      row 0 DPU配置5     row 0 DPU 配置4
 0x43      row 0 DPU配置7     row 0 DPU 配置6
 0x44     row 1 DPU 配置1     row 1 DPU 配置0
 0x45     row 1 DPU 配置3     row 1 DPU 配置2
 0x46     row 1 DPU 配置5     row 1 DPU 配置4
 0x47     row 1 DPU 配置7     row 1 DPU 配置6
 :
 0x5C  第7行MULT高位配置3  row7 MULT高位配置2  row7 MULT高位配置1  row7 MULT高位配置0
 0X5D  row7 MULT高位配置7  row7 MULT高位配置6  row7 MULT高位配置5  row7 MULT高位配置4
 0X5E  row7 MULT低位配置3  row7 MULT低位配置2  row7 MULT低位配置1  row7 MULT高位配置0
 0X5F  row7 MULT低位配置7  row7 MULT低位配置6  row7 MULT低位配置5  row7 MULT低位配置4
 0X60-0X7F                                 保留
                                         DPU配置细节
 2:0   Muxasel
 5:3   muxbsel
 7:6   muxbfsel
 9:8   muxafgsel
 14:10   Shiftamt
 15   Shiftdir
 23:16   Opcode
 24   muxbcfsel
 25   Latapipe
 26   Latbpipe
 27   Latopipe
 29:28   muxopasel
 31:30   muxopbsel
 34:32   shiftmode
  37:35   Conf
  38   muxalulsmsel
  39   muxoutsel
  40   Ctrl
  41   Lsm读/写使能(交替地使能读和写,偶数行读,奇数行写)
  55:42   保留
                                    MULT配置详述
  2:0   Muxasel
  5:3   Muxbsel
  7:6   Muxbfsel
  9:8   Muxnfgsel
  11:10   Muxbcfsel
  12   Muxafghsel
  13   Muxopasel
  14   Muxopbsel
  15   Muxmultlsmsel
  16   Muxoutsel
  17   Latapipe
  18   Latbpipe
  19   Latopipe
  20   Lsm读/写使能(类似于editlepipe,为第6个dpu来的第3个lsm使用读使能,为高端乘法器使用写使能
  27:21   保留
                                       CONPROL配置
  0x80   Tile A PLA乘积项0
  0x81   Tile A PLA乘积项0
  0x82   .
  0x83   .
  .
  0x9D   .
  0x9e   Tile A PLA乘积项30
  0x9f     Tile A PLA乘积项31
  0xa0-0xbf     保留
  0xc0     Tile A基于tile的控制
  0xc1     Tile A基于行的控制L0
  0xc2     Tile A基于行的控制L1
  0xc3     Tile A基于行的控制L2
  0xc4     Tile A基于行的控制L3
  0xc5-0xff     保留
                PLA X乘积项Y详述(其中,X在(A,B,C,D)中,Y在[0,15]中
  15:0     使比特位置b可用,即,PLA X中的乘积项Y与~input[b]进行“与”操作
  31:16     使比特位置b可用,即,PLA X中的乘积项Y与input[(b-16)]进行“与”操作
  63:32     使比特位置b可用,即,PLA X中的结果(b-32)与乘积项Y进行“或”操作
  111:64     保留
                                    基于Tile的控制详述
  1:0     SRBDMA:muxdmasetsel
  33:2     GNET:hortnetsel:(net5,net4,...,net0)
  45:34     GNET:vertnetsel:(net2,net1,net0)
  53:46     LSMNET:读地址(transen3到4,trien3,transen2到3,trien2,transen1到2,trien1,transen0到1,trien0)
  61:54     LSMNET:读数据(transen3到4,trien3,transen2到3,trien2,transen1到2,trien1,transen0到1,trien0)
  69:62     LSMNET:写地址(transen3到4,trien3,transen2到3,trien2,transen1到2,trien1,transen0到1,trien0)
  77:70     LSMNET:写数据(transen3到4,trien3,transen2到3,trien2,transen1到2,trien1,transen0到1,trien0)
                                   基于行的控制详述
  Lx[1:0] 行(2x+1)-(2x):SRBR clken[0]x2
  Lx[7:2] 行(2x+1)-(2x):SRBR csmaddrmask[2:0]x2
  Lx[11:8] 行(2x+1)-(2x):SRBR muxinterruptsetsel[1:0]x2
  Lx[13:12] 行(2x+1)-(2x):SRBR inten[0]x2
  Lx[37:14] 行(2x+1)-(2x):PLA_in_sel[5:0]x4
  Lx[39:38] 行(2x+1)-(2x):lsmregsel[0]x2
  Lx[47:40] 行(2x+1)-(2x):HSTATE_sel[1:0]x4
  Lx[51:48] 行(2x+1)-(2x):HSTATE_regsel[0]x4
  Lx[55:52] Lsm x:addrmatch[3:0]
  Lx[59:56] Lsm x:matchen[3:0]
  Lx[61:60] Lsm x:mode[1:0]
  Lx[63:62] Lsm x:wmode[1:0]
  Lx[1:64] 行(2x+1)-(2x):SRB reginit[3:0]x2
  0x100-0x1ff Tile B配置
  0x200-0x2ff Tile C配置
                   基于slice的配置
  0x300[1:0] 完成多路复用选择
             其它slice地址(在当前实现中未使用)
  0x400-0x7ff   Slice 1的配置
  0x800-0xbf   Slice 2的配置
  0xc00-0cfff   Slice 3的配置
                   基于fabric的配置
  0x380-0x383   Slice 0选择
  0x780-0x783   Slice 1选择
  0xb80-0xb83   Slice 2选择
  0xf80-0xf83   Slice 3选择
                  基于fabric的配置详述
  L0 7:0   Tile A gnet三态使能1位x8
  L0 23:8   Tile A hctl net三态使能1位x16
  L1 7:0   Tile B gnet三态使能1位x8
  L1 23:8   Tile B hctl net三态使能1位x16
  L2 7:0  Tile C gnet三态使能1位x8
  L2 23:8  Tile C hctl net三态使能1位x16
  L3 1:0  PIO:控制输入多路复用选择(输入到fabric)2位x1
  L3 5:2  PIO:控制输出mux one hot sel(fabric的输出)1位x4
  L3 7:6  PIO:数据输入多路复用选择(输入fabric)2位x1
L3 11:8 PIO:数据输出mux one hot sel(fabric的输出)1位x4
CSMMULT  Muxasel 同dpu
 Muxbsel 同dpu
 Muxafgsel 同dpu
 Muxbfsel 同dpu
 Muxbcfsel 0:低16位1,2:高16位3:高24位(对于24位乘来说)
 Muxafghsel 0:低16位1:高16位
 Latapipe 同dpu
 Latbpipe 同dpu
 Latopipe 同dpu
 Muxopasel 0:锁存的值1:未锁存的值
 Muxopbsel
 Muxmultlsmsel 0:乘法器输出1:lsm输出
 muxoutsel 0:锁存的值1:未锁存的值
LSM  mode 0字节1字2双字3双字
 wmode
 wen 0:写禁止1:写使能
addrmatch DPU提供的4位地址与这些值相匹配,以便使能一个读/写操作
matchen 单独地使能(1)/禁止(0)这4位匹配地址
lsmregsel 来自DPU(地址/数据)和CSM(wen)的信号是有选择地可寄存的。0=寄存1=不寄存
PLA PLA_in_sel 请参阅下面的内容
GNET hortnetsel 选择来自一个tile的9个数据通路输出(7个dpu,2个mult),每个tile中有6个这种输出(有6个水平全局网和3个垂直全局网),水平全局网不仅驱动水平全局网,还驱动垂直全局网多路复用器的输入0:dpu 01:dpu 12:dpu 23:dpu 34:dpu 45:dpu 56:dpu 67:mult 7其它:mult 8
vertnetsel 从6个水平全局网或“本地”水平全局网0,1,2中选择(由于“本地”的三态可被禁止,因此这两个值可以不同)
Hortnettrien 水平全局网的三态使能。每个全局网上有4个三态驱动器。三态使能是一个单hot值,由每个slice驱动一个比特。
  单元名称 信号名称 注解
  DPU/MULT a/b/o寄存器 DPU和MULT中流程寄存器的值
  CSMDPU muxasel 与muxF,muxG0和muxG1交迭,选择:值  muxA     muxF     muxG0   muxG10   前面8个  自身     gnet0   gnet81   前面7个  后面1个  gnet1   32’h02   前面6个  后面2个  gnet2   32’h0
  3  前面5个  后面3个  gnet3    32’h04  前面4个  后面4个  gnet4    LSM值5  前面3个  后面5个  gnet5    ALU输出(寄存器0之前)6  前面的2  后面6个  gnet6    {DPU输出[30:0],cin}7  前面的1  后面7个  gnet7     32’h0
Muxbsel   与上面相同
muxafgsel   选择MuxA选择MuxF选择MuxG0选择MuxG1
Muxbfsel   同上
muxbcfsel   0 选择MuxBF1 选择移位器输出
Latapipe   0:寄存器A不锁存输入1:寄存器A锁存输入
Latbpipe   0:寄存器B不锁存输入1:寄存器B锁存输入
latopipe   0:寄存器O不锁存输入1:寄存器O锁存输入
Muxopasel   00:选择被锁存的数据01:选择未被锁存的数据10:选择经过“与”运算的数据11:选择经过“或”运算的数据
muxopbsel
Shiftamt   提供给移位器的移位数量
shiftdir   请参阅s:docteamsdpudpu_specX.doc1.12部分
shiftmode
conf   标志选择0  前面的标志1  RXOR
  2  GT3  LT4  EQ5  SN6  CO7  OV
  Ctrl   Addcnt,subcnt等操作数的控制进位
  opcode   请参阅s:/doc/teams/dpu/dpu_spec#.doc
  muxalulsmsel   0 选择ALU输出1 选择LSM数据
  muxoutsel   0 选择被锁存的数据1 选择未被锁存的数据
  4’bxxx1或4’b0000:slice 0驱动三态总线4’bxx10:slice 1驱动三态总线4’bx100:slice 2驱动三态总线4’b1000:slice 3驱动三态总线
  LSMNET   三态使能   共有4个lsmnet(本地系统存储器网络),读/写,地址/数据。由于在一个tile中有16个lsm(本地系统存储器),因此,每一个都有15个三态使能0:禁止1:使能
  传输门使能   三态使能0:禁止1:使能
  SRBDMA   muxdmasetsel   这是一个DMA请求落下之前的多路复用器控制信号。每个tile有一个该信号。它从每个tile的第0行取状态值。0  第0行状态位[3]1  第0行状态位[2]2  第0行数据通路单元标志dpuflag[1]3  地
  SRBR   每行有一个SRBR。因此,以下所有信号都是以行为基础的
Clken 这是一个以行为基础的时钟使能0:将SRB[3]用作时钟使能1:总是对SRB计时
Csmaddrmask 这是状态位驱动CSM之前的一个“与”掩码
Muxinterruptsetsel 多路复用器选择中断寄存器之前的多路复用,该信号驱动触发器的“SET”输入
Inten 中断使能0:禁止1:使能
SRB reg_initval 状态位初始值
Hstate hstate_sel 请参阅以下内容
hstate_trien 类似于水平网三态使能,从每个slics的一个位中设置该信号的值,随后按以下方式区分优先级4’bxxx1或4’b0000:slice 0驱动三态总线4’bxx10:slice 1驱动三态总线4’bx100:slice 2驱动三态总线4’b1000:slice 3驱动三态总线
Hstate_regsel 在开始pla输入之前,有选择地寄存hstate位0-寄存1-不寄存
  PIO mux sel(输入到fabric) 0:选择存储单元01:选择存储单元12:选择存储单元23:选择存储单元3
mux sel(fabric的输出) 这是一个hot编码,每一个比特都来自每个slice的fabric级配置的相应比特位置4’bxxx1或4’b0000:从slice 0输出4’bxx10:从slice 1输出4’bx100:从slice 2输出4’b1000:从slice 3输出
.input_mux Slice 0 PLA0(每一位都具有单独的使能)
.PLAin[0]是与DPU0相关的多路复用器输入
.PLAin[1]是与DPU0相关的多路复用器输入
.STATE0[n]是slice0的主状态输出
.LSTATE0[n]是slice0的次级状态输出
.FLAG[n]是slice0的主标志输出
.LSTATE0[n]是slice0的下次级标志输出
.HBIT0[n]是水平状态总线
.HBIT0[n]在输入多路复用器之前需要一个可选的寄存器
.IO[7:0]是来自与每个slice相关的管脚的8个I/O位
.bit0输入,DATA是来自数据通路的hortnet mux(水平网络多路复用)输出。每个tile有8个水平网络多路复用器。控制流程从每个tile选择低16位hortnet mux7。应注意,三态门的输入是mux7的输出值。
.去掉tile D,因此,它所提供的数据(STATE*[31:24],FLAG[27:21]...)接地PLA_in_sel是64比1的多路复用选择。每个PLA都具有其中的16个选择(每一位都是单独控制的)
 bit63:32 Bit32:4 bit3 bit2 bit1 bit0
PLAin0  STATE0[31:0] FLAG0[27:0] HBIT0[0] LSTATE0[0] IO[0] DATA[0]
PLAin2  STATE0[31:0] FLAG0[27:0] HBIT0[2] LSTATE0[1] IO[1] DATA[2]
PLAin4  STATE0[31:0] FLAG0[27:0] HBIT0[4] LSTATE0[2] IO[2] DATA[4]
PLAin6  STATE0[31:0] FLAG0[27:0] HBIT0[6] LSTATE0[3] IO[3] DATA[6]
PLAin8  STATE0[31:0] FLAG0[27:0] HBIT0[8] LSTATE0[4] IO[4] DATA[8]
PLAin10  STATE0[31:0] FLAG0[27:0] HBIT0[10] LSTATE0[5] IO[5] DATA[10]
PLAin12  STATE0[31:0] FLAG0[27:0] HBIT0[12] LSTATE0[6] IO[6] DATA[12]
PLAin14  STATE0[31:0] FLAG0[27:0] HBIT0[14] 开始 IO[7] DATA[14]
PLAin1  STATE0[31:0] FLAG0[27:0] HBIT0[1] LFLAG0[0] IRQ[0] DATA[1]
PLAin3  STATE0[31:0] FLAG0[27:0] HBIT0[3] LFLAG0[1] IRQ[1] DATA[3]
PLAin5  STATE0[31:0] FLAG0[27:0] HBIT0[5] LFLAG0[2] IRQ[2] DATA[5]
  PLAin7   STATE0[31:0]   FLAG0[27:0]   HBIT0[7]   LFLAG0[3]   IRQ[3]   DATA[7]
  PLAin9   STATE0[31:0]   FLAG0[27:0]   HBIT0[9]   LFLAG0[4]   IRQ[4]   DATA[9]
  PLAin11   STATE0[31:0]   FLAG0[27:0]   HBIT0[11]   LFLAG0[5]   IRQ[5]   DATA[11]
  PLAin13   STATE0[31:0]   FLAG0[27:0]   HBIT0[13]   LFLAG0[6]   IRQ[6]   DATA[13]
  PLAin15   STATE0[31:0]   FLAG0[27:0]   HBIT0[15]   DMA REQ   IRQ[7]   DATA[15]
.Horz_mux Slice0 PLA0(每位都具有单独的使能)
.HMUX[0]是16个水平状态行之一;
.每个mux(多路复用)也都需要三态使能。
Bit3 Bit2 Bit1 Bit0
HMUX[0] STATE0[24] STATE0[16] STATE0[8] STATE0[0]
HMUX[2] STATE0[25] STATE0[17] STATE0[9] STATE0[1]
HMUX[4] STATE0[26] STATE0[18] STATE0[10] STATE0[2]
HMUX[6] STATE0[27] STATE0[19] STATE0[11] STATE0[3]
HMUX[8] STATE0[28] STATE0[20] STATE0[12] STATE0[4]
HMUX[10] STATE0[29] STATE0[21] STATE0[13] STATE0[5]
HMUX[12] STATE0[30] STATE0[22] STATE0[14] STATE0[6]
HMUX[14] STATE0[31] STATE0[23] STATE0[15] STATE0[7]
HMUX[1] STATE0[24] STATE0[16] STATE0[8] STATE0[0]
HMUX[3] STATE0[25] STATE0[17] STATE0[9] STATE0[1]
HMUX[5] STATE0[26] STATE0[18] STATE0[10] STATE0[2]
HMUX[7] STATE0[27] STATE0[19] STATE0[11] STATE0[3]
HMUX[9] STATE0[28] STATE0[20] STATE0[12] STATE0[4]
HMUX[11] STATE0[29] STATE0[21] STATE0[13] STATE0[5]
HMUX[13] STATE0[30] STATE0[22] STATE0[14] STATE0[6]
HMUX[15] STATE0[31] STATE0[23] STATE0[15] STATE0[7]

Claims (44)

1.一个可重新配置的芯片,包括:
多个可重新配置的功能单元,用于实现不同的功能,该可重新配置的功能单元包括多路复用器,至少一个移位单元和至少一个算术逻辑单元,该可重新配置的功能单元是通过一个可重新配置功能单元指令配置的,该指令控制多路复用器,移位单元和算术逻辑单元的配置;
互连单元,用于将一些可重新配置功能单元有选择地互相连接起来。
2.权利要求1中所描述的可重新配置芯片,其中的可重新配置功能单元指令被划分为一些域,包括一个多路复用器域,一个移位单元域和一个算术逻辑单元域。
3.权利要求1中所描述的可重新配置芯片,其中的可重新配置功能单元包含数据通路单元。
4.权利要求1中所描述的可重新配置芯片,其中的互连单元用于传送字长数据。
5.权利要求4中所描述的可重新配置芯片,其中的字长数据是32位或更长。
6.权利要求1中所描述的可重新配置芯片,还包括一个指令存储器,存储可重新配置功能单元的多个指令。
7.权利要求1中所描述的可重新配置芯片,其中的移位单元可以配置为一些不同的模式。
8.权利要求7中所描述的可重新配置芯片,其中的可重新配置功能单元指令包含一个移位器单元域,控制移位器单元的模式。
9.权利要求1中所描述的可重新配置芯片,其中至少一个多路复用器与一个延时单元输入和一个旁路该延时单元的输入相联系,以实现可变延时系统。
10.权利要求1中所描述的可重新配置芯片,其中的可重新配置功能单元包含有寄存器,用于暂时存储该可重新配置功能单元中的值。
11.一个可重新配置芯片,包括:
多个可重新配置功能单元,该可重新配置功能单元包括多路复用器,至少一个移位单元和至少一个算术逻辑单元,移位器单元的作用是,使算法逻辑单元能够对可重新配置功能单元的字长输入数据中的不同的位进行操作;和
互连单元,用于将一些可重新配置功能单元有选择地互相连接起来,该互连单元用于传送字长数据。
12.权利要求11中所描述的可重新配置芯片,其中的字长数据是32位或更长。
13.权利要求12中所描述的可重新配置芯片,其中的字长数据是32位字长。
14.权利要求11中所描述的可重新配置芯片,其中可重新配置的功能单元是通过可重新配置功能单元指令配置的。该指令控制多路复用器,移位单元和算术逻辑单元的配置。
15.权利要求11中所描述的可重新配置芯片,其中还包括一个指令存储器,存储可重新配置功能单元的多个指令。
16.权利要求11中所描述的可重新配置芯片,其中的移位单元可以配置为一些不同的模式。
17.权利要求11中所描述的可重新配置芯片,其中一些多路复用器与一个延时单元输入和一个旁路该延时单元的输入相联系。
18.一个可重新配置芯片,包括:
多个可重新配置功能单元,该可重新配置功能单元包括多路复用器,至少一个移位单元和至少一个算法逻辑单元,该可重新配置的功能单元是通过一个可重新配置功能单元指令配置的,该指令控制多路复用器,移位单元和算术逻辑单元的配置;和
一个指令存储器,存储可重新配置功能单元的多个指令。
19.权利要求18中所描述的可重新配置芯片,其中一个指令存储器与每一个可重新配置功能单元相联系。
20.权利要求18中所描述的可重新配置芯片,其中的指令存储器与一个状态机相联系,该状态机为指令存储器生成一个地址。
21.权利要求18中所描述的可重新配置芯片,其中的可重新配置功能单元指令包含用于配置多路复用器的域,一个移位器单元控制域和一个算法逻辑单元控制域。
22.权利要求18中所描述的可重新配置芯片,还包括一个互连单元,用于将一些可重新配置功能单元有选择地互相连接起来。
23.权利要求22中所描述的可重新配置芯片,其中的互连单元用于传送字长数据。
24.权利要求18中所描述的可重新配置芯片,其中的移位单元可以配置为一些模式。
25.权利要求24中所描述的可重新配置芯片,其中的移位单元是由可重新配置单元指令的一个移位器单元域控制的。
26.权利要求18中所描述的可重新配置芯片,其中至少一个多路复用器与一个延时单元输入和一个旁路该延时单元的输入相联系,以实现一个可变延时。
27.一个可重新配置的芯片,包括:
多个可重新配置的功能单元,该可重新配置的功能单元包括多路复用器,至少一个移位单元和至少一个算法逻辑单元,移位器单元可被配置为一些模式;
互连单元,用于将可重新配置功能单元有选择地互相连接起来。
28.权利要求27中所描述的可重新配置芯片,其中的移位器模式包含不同于逻辑和算术左移和右移的模式。
29.权利要求27中所描述的可重新配置芯片,其中至少一种模式重新安排输入字的块。
30.权利要求27中所描述的可重新配置芯片,其中的一种模式包含一个常量生成。
31.权利要求27中所描述的可重新配置芯片,其中的一种模式包含将一组字节复制到另一组字节。
32.权利要求27中所描述的可重新配置芯片,其中的一种模式包括将一些比特足于其他比特组相交换。
33.权利要求27中所描述的可重新配置芯片,其中的可重新配置的功能单元是通过可重新配置功能单元指令配置的,可重新配置功能单元指令配置算法逻辑单元,移位单元和多路复用器。
34.权利要求33中所描述的可重新配置芯片,其中的可重新配置功能单元指令包括一个控制移位单元的域,控制移位单元的模式。
35.权利要求27中所描述的可重新配置芯片,其中的互连单元用于传送字长数据。
36.权利要求27中所描述的可重新配置芯片,还包含指令存储器,存储可重新配置功能单元的指令。
37.权利要求27中所描述的可重新配置芯片,其中至少一个多路复用器与延时单元输入和一个旁路该延时单元的输入相联系,以实现可变延时系统。
38.一个可重新配置芯片,包括:
多个可重新配置功能单元,该可重新配置功能单元包括多路复用器,至少一个移位单元和至少一个算法逻辑单元,其中至少一个多路复用器与延时单元输入和一个旁路该延时单元的输入相联系;和
互连单元,用于将可重新配置功能单元有选择地互相连接起来。
39.权利要求38中所描述的可重新配置芯片,其中的可重新配置的功能单元是通过可重新配置功能单元指令配置的,该指令配置多路复用器,移位单元,算法逻辑单元。
40.权利要求39中所描述的可重新配置芯片,其中的可重新配置功能单元指令包括一些不同的域,用于控制多路复用器,移位单元和算法逻辑单元的配置。
41.权利要求39中所描述的可重新配置芯片,其中可重新配置功能单元的一条指令的一个域表明提炼模式。
42.权利要求38中所描述的可重新配置芯片,其中的互连单元用于传送字长数据。
43.权利要求38中所描述的可重新配置芯片,还包含指令存储器,存储可重新配置功能单元的多条指令。
44.权利要求38中所描述的可重新配置芯片,其中的可重新配置功能单元包括一个移位单元,该单元可被配置为一些不同的模式。
CNA028133811A 2001-05-02 2002-05-02 用于可重新配置环境中的高效高性能数据操作元件 Pending CN1860441A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28829801P 2001-05-02 2001-05-02
US60/288,298 2001-05-02

Publications (1)

Publication Number Publication Date
CN1860441A true CN1860441A (zh) 2006-11-08

Family

ID=23106530

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA028133811A Pending CN1860441A (zh) 2001-05-02 2002-05-02 用于可重新配置环境中的高效高性能数据操作元件

Country Status (7)

Country Link
US (1) US20030088757A1 (zh)
JP (1) JP2004531149A (zh)
KR (1) KR100628448B1 (zh)
CN (1) CN1860441A (zh)
DE (1) DE10296742T5 (zh)
GB (1) GB2398653A (zh)
WO (1) WO2002103518A1 (zh)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
US7142011B1 (en) 2002-04-24 2006-11-28 Altera Corporation Programmable logic device with routing channels
US6781408B1 (en) 2002-04-24 2004-08-24 Altera Corporation Programmable logic device with routing channels
US20080195839A1 (en) * 2004-10-18 2008-08-14 Hildegarde Francisca Felix Nuyens Reconfigurable, Modular and Hierarchical Parallel Processor System
GB2423840A (en) * 2005-03-03 2006-09-06 Clearspeed Technology Plc Reconfigurable logic in processors
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8181003B2 (en) 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8549055B2 (en) * 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8805916B2 (en) * 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) * 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8645807B2 (en) * 2010-05-31 2014-02-04 National Chiao Tung University Apparatus and method of processing polynomials
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US10534608B2 (en) * 2011-08-17 2020-01-14 International Business Machines Corporation Local computation logic embedded in a register file to accelerate programs
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
CN104900260B (zh) * 2014-03-07 2018-08-24 中芯国际集成电路制造(上海)有限公司 延时选择器
EP3149600A4 (en) * 2014-05-29 2017-12-20 Altera Corporation An accelerator architecture on a programmable platform
US11797473B2 (en) * 2014-05-29 2023-10-24 Altera Corporation Accelerator architecture on a programmable platform
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication
JP7433931B2 (ja) * 2020-01-27 2024-02-20 キヤノン株式会社 情報処理装置及びその制御方法及びプログラム
JP7471913B2 (ja) * 2020-05-20 2024-04-22 キヤノン株式会社 信号処理装置及びその駆動制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761755A (en) * 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
US4862407A (en) * 1987-10-05 1989-08-29 Motorola, Inc. Digital signal processing apparatus
DE69132495T2 (de) * 1990-03-16 2001-06-13 Texas Instruments Inc., Dallas Verteilter Verarbeitungsspeicher
USH1385H (en) * 1991-10-18 1994-12-06 The United States Of America As Represented By The Secretary Of The Navy High speed computer application specific integrated circuit
US5517439A (en) * 1994-02-14 1996-05-14 Matsushita Electric Industrial Co., Ltd. Arithmetic unit for executing division
US5649174A (en) * 1994-12-09 1997-07-15 Vlsi Technology Inc. Microprocessor with instruction-cycle versus clock-frequency mode selection
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US6510510B1 (en) * 1996-01-25 2003-01-21 Analog Devices, Inc. Digital signal processor having distributed register file
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5828858A (en) * 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
FR2757973B1 (fr) * 1996-12-27 1999-04-09 Sgs Thomson Microelectronics Processeur de traitement matriciel
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
US5948098A (en) * 1997-06-30 1999-09-07 Sun Microsystems, Inc. Execution unit and method for executing performance critical and non-performance critical arithmetic instructions in separate pipelines
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US6108760A (en) * 1997-10-31 2000-08-22 Silicon Spice Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
US6128724A (en) * 1997-12-11 2000-10-03 Leland Stanford Junior University Computation using codes for controlling configurable computational circuit
DE69827589T2 (de) * 1997-12-17 2005-11-03 Elixent Ltd. Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
US6226735B1 (en) * 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements

Also Published As

Publication number Publication date
GB2398653A (en) 2004-08-25
US20030088757A1 (en) 2003-05-08
KR100628448B1 (ko) 2006-09-26
DE10296742T5 (de) 2004-04-29
JP2004531149A (ja) 2004-10-07
WO2002103518A1 (en) 2002-12-27
KR20040005944A (ko) 2004-01-16
GB0327399D0 (en) 2003-12-31

Similar Documents

Publication Publication Date Title
CN1860441A (zh) 用于可重新配置环境中的高效高性能数据操作元件
CN1186714C (zh) 高基除法器及方法
CN1153349C (zh) 多值逻辑电路体系结构:补充对称逻辑电路结构
CN101040306A (zh) 伪随机数生成装置
CN1647139A (zh) 数据变换装置和数据变换方法
CN1244051C (zh) 对于处理数据的装置和方法
CN1246772C (zh) 处理器
CN1890630A (zh) 在寄存器和存储器之间移动数据的数据处理设备和方法
CN1993709A (zh) 信号处理设备
CN1894659A (zh) 在寄存器和存储器之间移动数据的数据处理设备和方法
CN1584824A (zh) 一种基于cisc结构的微处理器构架及指令实现方式
CN1886744A (zh) 在可扩展的处理器架构中增加高级指令所用的方法和装置
CN1641567A (zh) 自堆栈快取存储器进行快速推测性弹出操作方法及装置
CN1892589A (zh) 控制移位分组数据的位校正的装置
CN1914592A (zh) 执行具有单元大小控制的紧缩数据操作的方法和设备
CN1484787A (zh) 处理器流水线中的硬件指令翻译
CN1605058A (zh) 关于嵌入式字段可编程门阵列核心的接口结构
CN1306640A (zh) 微控制器指令集
CN101044450A (zh) 处理器
CN1269052C (zh) 支持缩小代码长度的常量还原型处理器
CN1469241A (zh) 处理器、程序变换装置和变换方法以及计算机程序
CN1200571C (zh) 正交变换、逆正交变换方法及装置、编码、解码方法及装置
CN1633749A (zh) 获得循环冗余码
CN1786968A (zh) Fpga逻辑单元的功能模型和通用性逻辑单元装箱算法
CN1514345A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication