CN1860441A - 用于可重新配置环境中的高效高性能数据操作元件 - Google Patents
用于可重新配置环境中的高效高性能数据操作元件 Download PDFInfo
- 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
Links
- 230000006870 function Effects 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 3
- 210000002683 foot Anatomy 0.000 claims 1
- 239000004744 fabric Substances 0.000 description 17
- 229920006395 saturated elastomer Polymers 0.000 description 10
- 238000000034 method Methods 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 6
- 239000000654 additive Substances 0.000 description 5
- 230000000996 additive effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 208000033793 Neuroendocrine tumor of stomach Diseases 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 208000036506 well differentiated low or intermediate grade gastric neuroendocrine tumor Diseases 0.000 description 3
- 108091023043 Alu Element Proteins 0.000 description 2
- 241001269238 Data Species 0.000 description 2
- 101150004790 SUB8 gene Proteins 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- VILCJCGEZXAXTO-UHFFFAOYSA-N 2,2,2-tetramine Chemical compound NCCNCCNCCN VILCJCGEZXAXTO-UHFFFAOYSA-N 0.000 description 1
- JHALWMSZGCVVEM-UHFFFAOYSA-N 2-[4,7-bis(carboxymethyl)-1,4,7-triazonan-1-yl]acetic acid Chemical compound OC(=O)CN1CCN(CC(O)=O)CCN(CC(O)=O)CC1 JHALWMSZGCVVEM-UHFFFAOYSA-N 0.000 description 1
- 241001347978 Major minor Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001256 tonic effect Effects 0.000 description 1
- 229960001124 trientine Drugs 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 238000012795 verification Methods 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
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent 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/3897—Concurrent 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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/30181—Instruction operation extension or modification
-
- 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
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中所描述的可重新配置芯片,其中的可重新配置功能单元包括一个移位单元,该单元可被配置为一些不同的模式。
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)
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)
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 |
-
2002
- 2002-05-01 US US10/135,849 patent/US20030088757A1/en not_active Abandoned
- 2002-05-02 GB GB0327399A patent/GB2398653A/en not_active Withdrawn
- 2002-05-02 DE DE10296742T patent/DE10296742T5/de not_active Ceased
- 2002-05-02 KR KR1020037014350A patent/KR100628448B1/ko not_active IP Right Cessation
- 2002-05-02 CN CNA028133811A patent/CN1860441A/zh active Pending
- 2002-05-02 WO PCT/US2002/011870 patent/WO2002103518A1/en active Application Filing
- 2002-05-02 JP JP2003505770A patent/JP2004531149A/ja active Pending
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 |