CN1716229A - 可重配置处理器和半导体器件 - Google Patents
可重配置处理器和半导体器件 Download PDFInfo
- Publication number
- CN1716229A CN1716229A CN200510001829.4A CN200510001829A CN1716229A CN 1716229 A CN1716229 A CN 1716229A CN 200510001829 A CN200510001829 A CN 200510001829A CN 1716229 A CN1716229 A CN 1716229A
- Authority
- CN
- China
- Prior art keywords
- register
- alu
- group
- registers
- window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种精细控制操作而不会对其他功能施加影响的可重配置处理器。寄存器组经由选择器连接到ALU的输入端口。在定序器的控制下,输入到ALU的数据被保持在选择器所选择的寄存器中。例如,假定一个寄存器被选择用于执行应用。为了将此应用切换到下一应用,在应用终止之后,选择器根据来自定序器的指令将寄存器切换到要被使用的另一寄存器。在这种情况下,在应用正被执行时所输入的数据继续留在寄存器中,从而下一应用可以被立刻执行而无需在应用终止之后导出数据。
Description
技术领域
本发明涉及可重配置处理器和半导体器件,更具体而言,涉及包括算术逻辑单元组和序列器的可重配置处理器和半导体器件,所述算术逻辑单元组包含多个算术逻辑单元,所述序列器用于控制算术逻辑单元组的操作。
背景技术
产品发货之后可能进行规格变更、功能添加、新服务添加等等。传统地,提供了可重配置处理器以在不重新制造器件的条件下改变功能。传统的可重配置处理器可以仅通过替换电路配置信息就满足上述情形。
例如,IP-Flex公司制造的数字应用处理器/分布式网络体系结构(注册商标)(DAP/DNA)和NEC公司制造的动态可重配置处理器(DRP)是公知的这类可重配置处理器。
DAP/DNA包含二维布置的多个复合的算术逻辑单元模块以及其中描述了算术逻辑单元之间的连接和每个模块中的配置的多条信息,并且通过对这些条信息进行切换来操纵不同的算法。
DRP包括二维布置的多个算术逻辑单元模块,每个算术逻辑单元模块包含指令存储器、指令译码器和算术逻辑单元。多个算术逻辑单元模块的操作由状态转移管理部件管理。状态转移管理部件具有状态转移表。通过根据状态转移表指定指令存储器中要被每个算术逻辑单元模块执行的地址,状态转移管理部件选择任何指令并且让每个算术逻辑单元模块执行该指令。
如上所述,传统的可重配置处理器具有算术逻辑单元组,该算术逻辑单元组包含布置的多个算术逻辑单元(ALU)。可以根据设置信息重新配置包含于算术逻辑单元组中的每个算术逻辑单元的操作以及算术逻辑单元之间的连接。用于保持输入值的寄存器连接到每个算术逻辑单元。图7示出了传统的可重配置处理器中含有的算术逻辑单元和寄存器的结构。
传统可重配置处理器中含有的ALU 901和902经由总线910交换数据并且进行预定的操作处理。用于保持经由总线910输入的输入值的寄存器903和904固定地连接到ALU 901。类似地,用于保持经由总线910输入的输入值的寄存器905和906固定地连接到ALU 902。即,寄存器903和904分别固定地连接到ALU 901的两个输入端口,而寄存器905和906分别固定地连接到ALU 902的两个输入端口。采用传统的可重配置处理器,一个寄存器以这种方式固定地连接到ALU的一个输入端口。
同时,作为其中多个寄存器被连接到ALU的示例,公开了一种精简指令集计算机(RISC)处理器,在所述RISC处理器中,能够被外部协处理器访问的多组寄存器文件被连接到ALU(例如,参见PCT国际公布专利申请No.2002-512399已公布的日文译文,图3)。
采用传统的可重配置处理器,在消耗时间的情况下切换正在运行的算术逻辑单元组的配置使性能降低。图8示出了传统的可重配置处理器中进行配置切换的时序。算术逻辑单元组的配置根据应用1和2进行的处理的内容而被切换。
采用传统的可重配置处理器,为每个算术逻辑单元置备的寄存器的数目总是一。从而,为了从用于应用1(921)的配置切换到用于应用2(922)的配置,在应用1(921)终止之后,作为导出数据(931)的结果,要从寄存器输出应用1(921)产生的数据,然后进行到用于应用2(922)的配置的切换。为了从用于应用2(922)的配置切换到用于应用1(921)的配置,要进行同样的处理然后进行到用于应用1(921)的配置的切换。
如上所述,当切换应用时,额外的时间对导出数据是必要的。结果,在精细时间划分的基础上切换应用降低了性能。此外,为了保持通过执行应用1获得的结果从而在再次执行该应用1时使用该数据,数据必须被保存在诸如存储器之类的存储设备中。这对性能具有很大的影响。
此外,采用传统的可重配置处理器,很难调试算术逻辑单元组。在某些情况下,为了调试,需要知道任意时刻下输入到算术逻辑单元或者从算术逻辑单元输出的状态。但是,要取出数据,操作必须完全停止或者停止后的数据和电路的状态必须全部丢弃。但是,采用传统的可重配置处理器,寄存器被置于算术逻辑单元之间,所以寄存器的值只能经由算术逻辑单元输出到外部。每个算术逻辑单元连接一个寄存器。因此,为了在某时刻将寄存器的数据取出到外部,所发给所有算术逻辑单元的操作必需暂时改变到无操作(NOP)以使得数据顺序流动。在这种情况下,在操作改变之前由操作获得的数据进行流动。从而,在取出用于调试的数据之后,不可能恢复操作。
同时,采用其中通过进行上下文切换而对多组寄存器文件进行切换的传统器件,在一个块(block)中所有寄存器文件被同时切换。从而,不可能根据算术逻辑单元、算术逻辑单元组等进行精细切换。
发明内容
本发明提供了一种具有算术逻辑单元组和定序器的可重配置处理器,其中算术逻辑单元组包含多个算术逻辑单元,定序器用于控制算术逻辑单元组的操作。该可重配置处理器包括:寄存器组,该寄存器组位于多个算术逻辑单元的输入端口和数据被从其输入到多个算术逻辑单元的前级(preceding stage)之间,并且每个寄存器组包含多个寄存器,所述多个寄存器用于保持从前级输入到多个算术逻辑单元的数据;以及选择器,用于根据来自定序器的指令从寄存器组中选择要被连接到多个算术逻辑单元的寄存器,以及用于将所选择的寄存器连接到多个算术逻辑单元的输入端口。
此外,本发明提供了一种半导体器件,该半导体器件具有包含多个算术逻辑单元的算术逻辑单元组和用于控制算术逻辑单元组操作的定序器,其中算术逻辑单元组的操作状态由所述定序器重新配置。该半导体器件包括:寄存器组,该寄存器组位于多个算术逻辑单元的输入端口和数据被从其输入到多个算术逻辑单元的前级之间,并且每个寄存器组包含多个寄存器,所述多个寄存器用于保持从前级输入到多个算术逻辑单元的数据;以及选择器,用于根据来自定序器的指令从寄存器组中选择要被连接到多个算术逻辑单元的寄存器,以及用于将所选择的寄存器连接到多个算术逻辑单元的输入端口。
由下面的说明以及接合附图,本发明的上述和其他目标、特征和优点将变得清楚,其中附图通过示例图示了本发明的优选实施例。
附图说明
图1是应用到实施例上的本发明的示意图。
图2是示出了根据本发明实施例的可重配置处理器的整体结构的框图。
图3示出了根据本发明实施例的配置存储器的结构的示例。
图4示出了根据实施例的窗口寄存器部件的结构的示例。
图5示出了根据实施例的窗口结构的示例。
图6是示出了根据实施例的窗口寄存器部件切换示例的时序图。
图7示出了在传统的可重配置处理器中包含的算术逻辑单元和寄存器的结构。
图8示出了在传统的可重配置处理器中进行配置切换的时序。
具体实施方式
本发明的目标是提供一种可重配置处理器和半导体器件,该可重配置处理器和半导体器件可以在以时间划分为基础切换应用的时候或者调试的时候,精细地控制操作而不会对其他功能施加影响。
现将参考附图描述本发明的实施例。首先将给出应用到实施例上的本发明的概述,然后将描述实施例的具体内容。
图1是应用到实施例上的本发明的示意图。根据本发明实施例的可重配置处理器包括算术逻辑单元(ALU)组和用于控制ALU组操作的定序器2,其中算术逻辑单元组包含例如象矩阵那样布置的多个ALU。例如,包含于ALU组中的ALU 1的两个输入端口分别经由选择器4和6连接到寄存器组3和5。
ALU 1在定序器2的控制下经由寄存器组3和5以及选择器4和6接受从前级输出的数据,并且进行诸如算术运算和逻辑运算等预定操作。输出数据的前级例如是由定序器2连接到ALU 1的另一ALU。
定序器2保持多条设置信息,通过切换设置信息来切换ALU组的状态,以及执行期望的应用,在所述多条设置信息中描述了为执行任何应用所必需的ALU组的配置,所述ALU组的配置例如是包含于ALU组中的每个ALU的操作和ALU之间的连接。此外,定序器2根据所选择的状态控制选择器4和6,并且选择要被连接到ALU 1的包含于寄存器组3和5中的寄存器。
寄存器组3和5中的每个包含可以彼此独立操作的多个寄存器。寄存器组3包含寄存器1(3a)、寄存器2(3b)和寄存器3(3c)。寄存器组5包含寄存器1(5a)、寄存器2(5b)和寄存器3(5c)。包含于寄存器组3中的寄存器之一被选择器4选择并且被连接到ALU 1。类似地,包含于寄存器组5中的寄存器之一被选择器6选择并且被连接到ALU 1。所选择的寄存器连接于ALU 1的输入端口和前级之间,保持从前级输出的数据(输入到ALU 1的数据),并且将数据输出到ALU 1。在下一操作计时前此数据一直被保持。寄存器的长度对应于输入到与该寄存器相连接的ALU1的数据的长度。即,如果输入到ALU 1的数据长度是八位,则寄存器的长度是八位。如果输入到ALU 1的数据长度是十六位,则寄存器的长度是十六位。如果输入到ALU 1的数据长度是三十二位,则寄存器的长度是三十二位。每个寄存器组可以包含任意数目的寄存器。
在定序器2的控制下,选择器4和6分别从它们所连接的寄存器组3和5选择一个寄存器,并且将所选择的寄存器连接到ALU 1。即,选择器4连接到寄存器组3并且将寄存器1(3a)、寄存器2(3b)和寄存器3(3c)中的一个连接到ALU 1。选择器6连接到寄存器组5并且将寄存器1(5a)、寄存器2(5b)和寄存器3(5c)中的一个连接到ALU 1。
现将描述具有上述结构的可重配置处理器的操作。
在ALU组的各种状态下要被选择并且被连接到ALU 1的两个输入端口的寄存器被注册在定序器2所保持的设置信息中。定序器2不仅控制ALU组的操作状态而且根据所选择的状态控制寄存器的切换。现在将描述当ALU组的状态被切换时进行的寄存器切换。
在切换之前ALU组正在执行应用。在定序器2的控制下,此时,选择器4和6分别从寄存器组3和5选择任何寄存器并且将所选择的寄存器连接到ALU 1。例如,包含于寄存器组3中的寄存器1(3a)和包含于寄存器组5中的寄存器1(5a)被选择,并且形成下述数据流,通过该数据流,从恰好在ALU 1之前的级(stage)输出的数据(输入到ALU 1的数据)经由寄存器1(3a)和寄存器1(5a)被输入到ALU 1。
当定序器2确定切换ALU组的状态时,切换寄存器的指令也被发出。根据定序器2所发出的指令,选择器4和6断开当前连接的寄存器并且把所指定的寄存器连接到ALU 1。例如,包含于寄存器组3中的寄存器2(3b)和包含于寄存器组5中的寄存器2(5b)被选择。结果,从恰好在ALU 1之前级输出的数据经由寄存器2(3b)和寄存器2(5b)被输入到ALU 1,从而形成了通过新寄存器的数据流。这使得在在前数据流终止之后不必导出所产生的数据。即,数据流可以在切换应用的时刻立刻被切换。从而,性能不会下降。
当寄存器被切换时,在切换之前输入的最后数据被遗留在寄存器1(3a)和寄存器1(5a)中。该数据由定位锁存(locating latch)机制保持。该数据可以通过预先形成专用数据通路从外部取出。结果,在数据流被切换以及进行了预定的处理之后,ALU组可以恢复到切换之前的状态。并且,取出数据以用于例如调试可以被更容易地进行。此外,为从调试返回,应该选择原始寄存器。因此,调试并不对其他功能施加影响。
现将参考附图详细描述本发明的实施例。
图2是示出了根据本发明实施例的可重配置处理器的整体结构的框图。
可重配置处理器包括ALU组10和定序器20,其中ALU组10包含所布置的多个ALU,定序器20用于控制包含于ALU组10中的每个ALU模块的操作。
ALU组10包含配置存储器11、布线与开关(wiring and switch)12、ALU 13a、13b、…和13C、数据存储设备13d、13e等、计数器13f和窗口寄存器部件14。
配置存储器11存储用于设置ALU组10的操作的设置信息,诸如要由包含于ALU组10中的每个ALU模块执行的内容、ALU模块之间的布线路径以及操作所需的数据。一条信息对应于ALU组10的一个电路配置的“状态”。在配置存储器11中设置了多个状态。ALU组10在定序器20指定的状态下操作。每个ALU和布线与开关12根据配置存储器11中所设置的内容进行操作。布线与开关12包含布线部件和开关部件,布线部件用于根据配置存储器11中设置的内容在ALU之间进行连接,开关部件用于根据配置存储器11中设置的内容来切换连接。ALU 13a、13b、…和13C中的每个对经由布线与开关12和窗口寄存器部件14而输入的输入信号进行预定的操作,并且经由布线与开关12输出结果。每个ALU模块包含存储用于数据处理的数据的数据存储设备13d、13e等和计数器13f,该数据存储设备为存储器或者寄存器。此外,每个ALU模块包含用于和外部单元交换数据和地址的接口、地址产生器等等。窗口寄存器部件14包含寄存器组和选择器,该寄存器组由用于保持数据的多个寄存器组成,选择器用于从寄存器组中选择一个寄存器并且将所选择的寄存器连接到ALU。窗口寄存器部件14位于包含于ALU组10中的ALU的输入端口的对面。窗口寄存器部件14根据配置存储器11中设置的内容为全部ALU、一个ALU或者一组ALU切换寄存器。
在图2中,窗口寄存器部件14位于布线与开关12和ALU 13a、13b、…和13C之间。但是,窗口寄存器部件14可以位于布线与开关12或者ALU 13a、13b、…和13C之内。此外,窗口寄存器部件14可以被拆分以使之位于布线与开关12和ALU 13a、13b、…和13C之内。在图2中,配置存贮器11位于ALU组10中。但是,配置存储器11可以位于定序器20中或者位于ALU组10和定序器20的外部。此外,配置存储器11可以被拆分以使之位于ALU组10和定序器20之内。
定序器20包含状态控制部件21、状态表22、当前状态地址寄存器23以及窗口设置控制部件24。
状态控制部件21设置下述状态,ALU组10将响应于从ALU组10输入的切换条件信号而接下来进行到该状态的转移。该切换条件信号包括切换条件码和切换条件发生的通知。状态表22中使用的地址和配置存储器11中使用的地址相同。状态表22中的每个条目存贮操作码和可能被选择的条目的地址,其中操作码指示在转移到下一条目时的行为。当前状态地址寄存器23存储指示当前状态的地址(在状态表22和配置存储器11中)。窗口设置控制部件24根据状态控制部件21设置的状态来控制由窗口寄存器部件24选择的寄存器。
在上述可重配置处理器中,ALU组10在基于下述设置信息的状态下操作,其中该设置信息位于由定序器20所指定的配置存储器11中的特定地址处。当ALU组10确定切换条件已成立时,ALU组10向定序器20发送切换条件码和切换条件信号。在定序器20中,状态控制部件21被切换条件信号启动,由切换条件码和状态表22中的条目确定ALU组10接下来要转移到的状态,计算指示状态的设置信息被注册的地址(目标地址),并且在当前状态地址寄存器23、状态表22和配置存储器11中设置所计算出的目标地址。结果,配置存储器11中的特定地址被改变为目标地址并且ALU组10转移到该状态。此时,窗口设置控制部件24根据状态控制部件21设置的状态发出指令以切换寄存器并且指定要被选择的寄存器。这些指令被发出以切换包含于窗口寄存器部件14中的所有寄存器、对应于预先设置的每组ALU的多个寄存器、或者特殊场合下对应于每个ALU的寄存器。
现将描述配置存储器11。在配置存储器11中,描述了用于执行应用的ALU组10和寄存器中的数据流。图3示出了根据本发明实施例的配置存储器的结构示例。
配置存储器11存储配置数据,其确定在每种状态下ALU组10的操作。在此示例中,配置数据111、112、113、114等根据状态而被存储。每种状态由地址来管理。
对于每种状态存储有操作模式111a、可重配置电路设计信息111b、状态1(111c)、状态2(111d)、状态3(111e)和状态4(111f)。操作模式111a是用于标识该状态的信息。可重配置电路设计信息111b是用于指示在此操作模式下ALU之间的连接和可重配置电路中每个ALU的操作的设计信息。当产生了设计信息时,自动且唯一地确定为特定数据流使用的特定寄存器。此电路配置的下一状态的候选者被描述为状态1(111c)、状态2(111d)、状态3(111e)和状态4(111f)。实际上,直接描述了配置存储器11中的地址或者描述了通过进行操作从其可以直接产生这些地址的数据。每个候选状态和切换条件相关联。当切换条件成立时,进行转移到对应状态的处理。在这种情况下,根据存储于配置存储器11中的信息来设置每个ALU的操作、ALU之间的连接以及连接到每个ALU的寄存器。被注册为候选者的状态的数目可以任意选择。
现在将描述窗口寄存器部件14的结构。图4示出了根据实施例的窗口寄存器的结构示例。在图4中,和图2中所示相同的组件用相同的标号来标记,并且省略了对它们的说明。
在窗口寄存器部件14中,为ALU 13a和13b置备了多个寄存器组和选择器,该选择器用于从每个寄存器组选择一个寄存器并且将所选择的寄存器连接到ALU。在此示例中,ALU 13a和13b中的每个具有两个输入端口。寄存器组和选择器连接到这些端口中的每个。即,包含窗口1(141a)、窗口2(142a)和窗口3(143a)的寄存器组和选择器144a连接到ALU 13a的第一输入端口。包含窗口1(141b)、窗口2(142b)和窗口3(143b)的寄存器组和选择器144b连接到ALU 13a的第二输入端口。包含窗口1(141c)、窗口2(142c)和窗口3(143c)的寄存器组和选择器144c连接到ALU 13b的第一输入端口。包含窗口1(141d)、窗口2(142d)和窗口3(143d)的寄存器组和选择器144d连接到ALU 13b的第二输入端口。
这些寄存器组中被同时选择的寄存器形成集合。例如,如果窗口1(141a)、窗口1(141b)、窗口1(141c)和窗口1(141d)被选择用于执行应用,则这些窗口形成集合。类似地,如果窗口2(142a)、窗口2(142b)、窗口2(142c)和窗口2(142d)形成集合,以及窗口3(143a)、窗口3(143b)、窗口3(143c)和窗口3(143d)形成集合。可以任意选择这些寄存器组中形成集合的窗口。形成集合的窗口被串联起来。在下文中,通过将形成集合的寄存器串联而形成的路径被称作虚路径(dummy path)。通过将包含于同一集合中的寄存器串联而预先形成虚路径,不仅预定数据可以根据配置存储器11中描述的数据流被发送,而且存储于未被选作数据流的寄存器中的数据也可以经由虚路径被发送。
现在将描述包含于窗口寄存器部件14中的每个窗口的详细结构。图5示出了根据实施例的窗口的结构示例。图5示出了包含于窗口寄存器部件中的窗口之一。
窗口1(141a)包含寄存器1412a和用于切换输入的开关1411a。总计3条信号线被连接到开关1411a的输入侧,共3条信号线被连接到开关1411a的输入侧,所述3条信号线为来自连接到邻近ALU的窗口151中的寄存器1512的信号线、来自布线与开关12的信号线、以及连接到寄存器1412a输出侧的信号线。彼此连接的寄存器1512和寄存器1412a被包含于同一集合中。
开关1411a根据窗口1(141a)和ALU 13之间连接的状态来选择将其自身连接到何处。例如,当窗口1(141a)由选择器连接到ALU 13并且处于活动状态时,开关1411a的输入侧连接到布线与开关12。通过如此做法,经由布线与开关12输入的数据可以被输出到ALU 13并且被保存于寄存器1412a中。当窗口1(141a)与ALU 13断开连接并且进入不活动状态时,开关1411a的输入侧连接到寄存器1412a的输出侧。通过如此做法,在窗口1(141a)处于活动状态期间最后输入的数据被保持于窗口1(141a)中。当窗口1(141a)处于不活动状态时,开关1411a的输入侧可以连接到寄存器1512的输出侧。寄存器1512和寄存器1412a被包含于同一集合中并且相互串联。当特定条件成立时,诸如当控制调试的调试块或者定序器给出调试指令时,开关1411a的输入侧连接到寄存器1512的输出侧。通过如此做法,在处于不活动状态的窗口1(141a)中保持的数据可以被经由虚路径输出到外部,其中虚路径是通过将寄存器1512和寄存器1412a串联而形成的。
窗口2和窗口3的结构和窗口1(141a)的结构相同。
现将描述具有上述结构的窗口寄存器部件14的操作。
例如,配置数据被预先设置在配置存储器11中,使得寄存器窗口1将被用于执行应用1并且使得寄存器窗口2将被用于执行应用2。每次预定条件成立时,进行切换并且交替执行应用1和应用2。
首先,执行应用1,并且窗口寄存器部件14中的选择器144a、144b、144c和144d分别选择寄存器窗口1(141a)、窗口1(141b)、窗口1(141c)和窗口1(141d)。当执行应用1时,窗口1被以这种方式加入到数据流中,并且进行处理。
如果在应用1正被执行期间切换条件成立,则定序器20将配置存储器11中的地址指定切换到应用2,并且改变ALU组的配置以执行应用2。这时选择器144a、144b、144c和144d直接从定序器20或者经由配置存储器11被给予指令,分别断开寄存器窗口1(141a)、窗口1(141b)、窗口1(141c)和窗口1(141d),并且分别将寄存器窗口2(142a)、窗口2(142b)、窗口2(142c)和窗口2(142d)连接到ALU 13a和13b。被断开的寄存器窗口1(141a)、窗口1(141b)、窗口1(141c)和窗口1(141d)中的每个进入不活动状态,转移到输入自身输出的锁存模式,从而保持在执行应用1时最后输入的数据。
接下来,在正在执行应用2时切换条件成立,从而进行从应用2到应用1的切换。此时,断开寄存器窗口2(142a)、窗口2(142b)、窗口2(142c)和窗口2(142d),并且将寄存器窗口1(141a)、窗口1(141b)、窗口1(141c)和窗口1(141d)连接到ALU 13a和13b。这是为从应用1切换到应用2而进行的操作的反过程。进入活动状态的寄存器窗口1(141a)、窗口1(141b)、窗口1(141c)和窗口1(141d)中的每个再次保持在应用1被执行时最后输入的数据从而可以在特殊场合需要时使用该数据。寄存器窗口2(142a)、窗口2(142b)、窗口2(142c)和窗口2(142d)中的每个转移到锁存模式。这和上面的从应用1到应用2的切换相同。从而,当应用1被再次切换到应用2时,可以使用保持在寄存器窗口2(142a)、窗口2(142b)、窗口2(142c)和窗口2(142d)中的数据。
现在将使用时序图来说明上述切换操作。图6是示出了根据实施例的窗口寄存器部件的切换示例的时序图。在此示例中,周期性地进行应用1(使用寄存器窗口1(141a)、窗口1(141b)、窗口1(141c)和窗口1(141d))和应用2(使用寄存器窗口2(142a)、窗口2(142b)、窗口2(142c)和窗口2(142d))之间的切换。
如上所述,定序器可以在其切换应用(ALU组的状态)的同时发出切换寄存器的指令。在这种情况下,无需进行临时保存数据的处理。在图6中,当开始一个序列块的处理时,切换寄存器,选择窗口1(W1),并且立刻执行应用1。类似地,在开始下一序列块时,选择窗口2(W2)并且立刻执行应用2。如上所述,多个数据流随时间流逝轮流出现从而可以高速执行应用。
在上述示例中,切换是在寄存器窗口1和寄存器窗口2之间进行的。但是,可以使用例如寄存器窗口3。如同上述示例一样,通过切换寄存器可以容易地对应用进行切换。
在上述示例中,对形成集合的所有寄存器进行切换。但是,取决于应用,对于每个ALU可以产生若干寄存器组,并且可以由寄存器组来控制寄存器切换。对于一个ALU可以产生多个寄存器组。
为了进行例如调试,可以通过使用由将包含于同一集合中的寄存器串联形成的虚路径来传递数据。该虚路径不同于基于配置存储器11的数据流。
在本发明中,置备了用于保持输入到ALU的数据的多个寄存器,并且根据来自定序器的指令来选择寄存器。结果,可以根据定序器的操作状态动态地切换所使用的寄存器。即,根据例如来自定序器用以切换操作状态的指令,动态地进行从下述切换:从在一种操作状态下被用于数据流的寄存器切换到在该操作状态被切换之后要使用的寄存器。结果,在前数据流中的数据可以被保持从而可以立刻改变数据流。此外,可以根据ALU来操作寄存器组和选择器,可以只有数据流上的特定数据路径被动态改变,而改变之前数据路径上的数据可以被保持。操作可以通过这种方式被精细控制,而不会对其他功能施加影响。
前述内容仅被视作本发明原理的解释性说明。此外,由于本领域技术人员可以容易地想出多种修改和改变,所以不要将本发明限定于所示出和描述的确切构造和应用,因此,所有适当的修改和等价物都可以被视为落入权利要求和权利要求的等价物中的本发明范围内。
Claims (8)
1.一种具有算术逻辑单元组和定序器的可重配置处理器,其中所述算术逻辑单元组包含多个算术逻辑单元,所述定序器用于控制所述算术逻辑单元组的操作,所述处理器包括:
寄存器组,所述寄存器组位于所述多个算术逻辑单元的输入端口与数据被从其输入到所述多个算术逻辑单元的前级之间,并且每个所述寄存器组包含多个寄存器,用于保持从所述前级输入到所述多个算术逻辑单元的数据;和
选择器,所述选择器用于根据来自所述定序器的指令,从所述寄存器组选择要被连接到所述多个算术逻辑单元的寄存器,并且用于将所述被选择的寄存器连接到所述多个算术逻辑单元的所述输入端口。
2.根据权利要求1所述的可重配置处理器,其中:
根据设置信息要从所述寄存器组选择的寄存器是预先确定的,在所述设置信息中,描述了用于执行任何应用的所述算术逻辑单元组的状态;以及
所述选择器根据由所述定序器设置的所述算术逻辑单元组的状态的切换来选择所述寄存器。
3.根据权利要求1所述的可重配置处理器,其中:
被包含在寄存器组中的寄存器与被包含在所有其他寄存器组中并且与被包含在所述寄存器中的所述寄存器同时被选择的寄存器相关联,并且与被包含在所述所有其他寄存器组中的所述被选择的寄存器一起形成集合;以及
所有所述选择器根据来自所述定序器的指令来选择形成所述集合的所述寄存器。
4.根据权利要求1所述的可重配置处理器,其中:
被包含在寄存器组中的寄存器与被包含在其他寄存器组中并且与被包含在所述寄存器中的所述寄存器同时被选择的寄存器相关联,并且与被包含在所述其他寄存器组中的所述被选择的寄存器一起形成集合,其中所述其他寄存器组被包含在预定的更大组中;以及
与被包含在所述预定的更大组中的所述寄存器组相连接的选择器根据来自所述定序器的指令来选择形成所述集合的所述寄存器。
5.根据权利要求1所述的可重配置处理器,其中,被包含在所述寄存器组中的每个寄存器在所述寄存器没有被选择器连接到算术逻辑单元的状态下,选择来自所述寄存器的输出作为输入。
6.根据权利要求1所述的可重配置处理器,其中:
被包含在寄存器组中的寄存器和被包含在邻近寄存器组中的预定寄存器相串联;以及
被包含在所述寄存器组中的所述寄存器在所述寄存器被选择器连接到算术逻辑单元的状态下,被连接到所述前级,并且在所述寄存器没有被所述选择器连接到所述算术逻辑单元的状态下,与所述邻近寄存器组串联。
7.根据权利要求1所述的可重配置处理器,其中,被包含在所述寄存器组中的每个寄存器的长度对应于被输入到与所述寄存器组相连接的所述多个算术逻辑单元中的每个的数据长度。
8.一种具有算术逻辑单元组和定序器的半导体器件,其中所述算术逻辑单元组包含多个算术逻辑单元,所述定序器用于控制所述算术逻辑单元组的操作,所述算术逻辑单元组的操作状态由所述定序器重新配置,所述器件包括:
寄存器组,所述寄存器组位于所述多个算术逻辑单元的输入端口与数据被从其输入到所述多个算术逻辑单元的前级之间,并且每个所述寄存器组包含多个寄存器,用于保持从所述前级输入到所述多个算术逻辑单元的数据;和
选择器,所述选择器用于根据来自所述定序器的指令,从所述寄存器组选择要被连接到所述多个算术逻辑单元的寄存器,并且用于将所述被选择的寄存器连接到所述多个算术逻辑单元的所述输入端口。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP189503/2004 | 2004-06-28 | ||
JP2004189503A JP2006011924A (ja) | 2004-06-28 | 2004-06-28 | 再構成可能演算装置および半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1716229A true CN1716229A (zh) | 2006-01-04 |
CN100464323C CN100464323C (zh) | 2009-02-25 |
Family
ID=34993254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100018294A Expired - Fee Related CN100464323C (zh) | 2004-06-28 | 2005-01-13 | 可重配置处理器和半导体器件 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050289328A1 (zh) |
EP (1) | EP1612693B1 (zh) |
JP (1) | JP2006011924A (zh) |
CN (1) | CN100464323C (zh) |
DE (1) | DE602005001900T2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100440192C (zh) * | 2006-12-28 | 2008-12-03 | 北京时代民芯科技有限公司 | 粗粒度可重配置计算结构中算术单元结构 |
WO2009155761A1 (zh) * | 2008-06-27 | 2009-12-30 | 北京大学深圳研究生院 | 一种阵列算术逻辑单元结构 |
WO2010057375A1 (zh) * | 2008-11-19 | 2010-05-27 | 北京大学深圳研究生院 | 一种可配置处理器体系结构和控制方法 |
CN109447892A (zh) * | 2017-03-31 | 2019-03-08 | 三星电子株式会社 | 半导体装置 |
CN111158756A (zh) * | 2019-12-31 | 2020-05-15 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5711889B2 (ja) | 2010-01-27 | 2015-05-07 | スパンション エルエルシー | リコンフィギュラブル回路および半導体集積回路 |
JP5821332B2 (ja) | 2011-06-30 | 2015-11-24 | 株式会社ソシオネクスト | リコンフィグ可能な集積回路装置 |
US9203397B1 (en) * | 2011-12-16 | 2015-12-01 | Altera Corporation | Delaying start of user design execution |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4811413A (en) * | 1987-10-22 | 1989-03-07 | International Business Machines Corp. | System of reconfigurable pipelines of generalized neighborhood function morphic image processors |
US5513366A (en) * | 1994-09-28 | 1996-04-30 | International Business Machines Corporation | Method and system for dynamically reconfiguring a register file in a vector processor |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
US5915123A (en) * | 1997-10-31 | 1999-06-22 | Silicon Spice | Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements |
US6092174A (en) * | 1998-06-01 | 2000-07-18 | Context, Inc. | Dynamically reconfigurable distributed integrated circuit processor and method |
AU2001268629A1 (en) * | 2000-06-21 | 2002-01-02 | Derivation Systems, Inc. | Dynamically configurable processor core and method for making the same |
US6883084B1 (en) * | 2001-07-25 | 2005-04-19 | University Of New Mexico | Reconfigurable data path processor |
TW200504592A (en) * | 2003-07-24 | 2005-02-01 | Ind Tech Res Inst | Reconfigurable apparatus with high hardware efficiency |
US7072320B2 (en) * | 2003-11-12 | 2006-07-04 | Morpho Technologies | Apparatus for spreading, scrambling and correlation in a reconfigurable digital signal processor |
US7268786B2 (en) * | 2004-05-14 | 2007-09-11 | Nvidia Corporation | Reconfigurable pipeline for low power programmable processor |
-
2004
- 2004-06-28 JP JP2004189503A patent/JP2006011924A/ja active Pending
- 2004-12-23 US US11/019,366 patent/US20050289328A1/en not_active Abandoned
-
2005
- 2005-01-13 DE DE602005001900T patent/DE602005001900T2/de not_active Expired - Fee Related
- 2005-01-13 EP EP05250139A patent/EP1612693B1/en not_active Not-in-force
- 2005-01-13 CN CNB2005100018294A patent/CN100464323C/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100440192C (zh) * | 2006-12-28 | 2008-12-03 | 北京时代民芯科技有限公司 | 粗粒度可重配置计算结构中算术单元结构 |
WO2009155761A1 (zh) * | 2008-06-27 | 2009-12-30 | 北京大学深圳研究生院 | 一种阵列算术逻辑单元结构 |
WO2010057375A1 (zh) * | 2008-11-19 | 2010-05-27 | 北京大学深圳研究生院 | 一种可配置处理器体系结构和控制方法 |
CN109447892A (zh) * | 2017-03-31 | 2019-03-08 | 三星电子株式会社 | 半导体装置 |
CN109447892B (zh) * | 2017-03-31 | 2023-11-28 | 三星电子株式会社 | 半导体装置 |
CN111158756A (zh) * | 2019-12-31 | 2020-05-15 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
DE602005001900T2 (de) | 2007-12-06 |
EP1612693B1 (en) | 2007-08-08 |
DE602005001900D1 (de) | 2007-09-20 |
JP2006011924A (ja) | 2006-01-12 |
US20050289328A1 (en) | 2005-12-29 |
EP1612693A1 (en) | 2006-01-04 |
CN100464323C (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1716229A (zh) | 可重配置处理器和半导体器件 | |
EP0197103B1 (en) | Load balancing for packet switching nodes | |
US20030154357A1 (en) | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements | |
US8429385B2 (en) | Device including a field having function cells and information providing cells controlled by the function cells | |
US8686475B2 (en) | Reconfigurable elements | |
US8686549B2 (en) | Reconfigurable elements | |
JP2021528764A (ja) | ニューラルプロセッサ | |
US10885996B2 (en) | Processor having a programmable function unit | |
JP4484756B2 (ja) | リコンフィギュラブル回路および処理装置 | |
US8194653B2 (en) | Data switching using soft configuration | |
EP1208422A1 (en) | Apparatus and method for programmable datapath arithmetic arrays | |
CN102567279B (zh) | 一种动态可重构阵列时序配置信息的生成方法 | |
EP1496618A2 (en) | Semiconductor integrated unit | |
CN108874730B (zh) | 一种数据处理器及数据处理方法 | |
US7716458B2 (en) | Reconfigurable integrated circuit, system development method and data processing method | |
EP1998258A1 (en) | Method and apparatus for connecting multiple multimode processors | |
JP3987782B2 (ja) | アレイ型プロセッサ | |
GB2395298A (en) | Reconfigurable multi processor array in which the result registers are selectively connected to the processing elements | |
CN1248417C (zh) | 使用具有可重新配置结构的可重新配置的芯片实现无线通信系统的系统和方法 | |
US8890215B2 (en) | Reconfigurable elements | |
CN111597138B (zh) | 一种x型链路结构的多并发ram数据传输方法及结构 | |
CN109948785B (zh) | 一种高效的神经网络电路系统和方法 | |
US6768336B2 (en) | Circuit architecture for reduced-synchrony on-chip interconnect | |
CN113795831B (zh) | 一种多功能的数据重组网络 | |
JP2002288147A (ja) | 分散メモリ型並列計算機およびコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090225 Termination date: 20100222 |