CN100492343C - 可重配置运算装置 - Google Patents

可重配置运算装置 Download PDF

Info

Publication number
CN100492343C
CN100492343C CNB2005100593385A CN200510059338A CN100492343C CN 100492343 C CN100492343 C CN 100492343C CN B2005100593385 A CNB2005100593385 A CN B2005100593385A CN 200510059338 A CN200510059338 A CN 200510059338A CN 100492343 C CN100492343 C CN 100492343C
Authority
CN
China
Prior art keywords
unit
data
arithmetic
output
operation apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100593385A
Other languages
English (en)
Other versions
CN1722130A (zh
Inventor
齐藤美寿
藤沢久典
吉沢英树
谷泽哲
笠间一郎
河野哲雄
今福和章
古川浩
瓜生士郎
若吉光春
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN1722130A publication Critical patent/CN1722130A/zh
Application granted granted Critical
Publication of CN100492343C publication Critical patent/CN100492343C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Logic Circuits (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

一种可重配置运算装置,包括:多个能够通过使用一条给定的第一配置数据来对自身进行重配置并能够彼此同时工作的运算单元;多个RAM;构成运算装置所需的各种处理器元件;对所述运算单元、RAM和各种处理器元件进行互连的资源间网络,其在连接到此的资源之间,以不依赖于所述资源的位置和种类的统一传输时间来执行数据传输,并且能够通过使用给定的第二配置数据对自身进行重配置;用于存储所述第一和第二配置数据的存储单元。从外部存储装置向所述配置存储器加载所述配置数据,并且基于从所述多个运算单元获得的数据,以适当的顺序和定时来向所述可重配置处理器资源提供所述第一和第二配置数据。

Description

可重配置运算装置
技术领域
本发明涉及一种动态可重配置运算装置,其能够通过对自身进行动态重配置来执行不同的处理。
背景技术
使得可重配置运算装置能够执行多个任务的方法传统上被分为两类:一类是空间并行,其中电路在空间上被分割,而且任务被分配给每个电路;第二类是时间并行,即其配置被转变为用于执行不同任务的时分系统。本发明涉及一种运算装置及其动态重配置,所述运算装置属于上述分类中的后一种,其通过与机器时钟同步地改变配置来在时分多路访问中实现多种任务。
日本专利申请公开No.2001-312481中公开了这种运算装置的一个示例。图1图示了上述公开中提出的阵列处理器的处理器元件阵列部件的示例。在图1中,处理器元件阵列(此后称为“PE阵列”)部件被构成为使得每个处理器元件990被8个可编程开关元件991所包围。在相邻的可编程开关元件之间,以及相邻的可编程开关元件991和处理器元件990之间,分别由数据总线992进行了电连接。而且,可编程开关元件991和处理器元件990被运算控制总线993硬线连接。一个处理器元件990连接了多个可编程开关元件991,从而在与从其输入和输出的外部数据的连接方面获得了更高的自由度。
图2A和2B描述了图1所示的传统PE阵列中的数据传输延迟问题。图2A示出了正在进行PE阵列处理的处理器元件的操作,而图2B示出了每个处理周期的操作进展方式。图2A和2B采用的例子是对式子(a+b)+(c-d)+(e+f)的运算,并且数据是从PE阵列的左侧部分输入的。在图2A中,当以一次输入两个值的方式将六个值a、b、c、d、e和f输入左侧的三个连续的开关PE1、PE2和PE3时,位于输入了数据的各个开关元件右下方的各处理器元件在周期1分别执行加法a+b(=A)、减法c-d(=B)以及加法e+f(=C)。在周期2,开关元件PE4执行加法A+B(=D),同时对值C执行数据传输1。在周期3对值C执行数据传输2,在周期4开关元件PE5执行加法D+C(=E),在周期5和6分别对运算结果E执行数据传输3和4,在周期7输出运算结果E。
从上面所述可以很明显地看出,在周期3发生的数据传输造成了被延迟的处理,而尽管在周期4完成了处理,但是分别发生在周期5和6中的数据传输3和4还是造成了另一被延迟的处理,导致运算结果E的被延迟的输出。
即,如同在日本专利申请公开No.2001-312481中可看出的那样,在这样的结构中,处理器元件和用于处理器元件之间的数据传输的开关元件都有极大的可能造成与数据传输相关联的被延迟的处理。
以式子(a+b)*(c-d)为例,图3A到3D中的每一个都示出了在传统运算装置中,由于对构成PE阵列的处理器元件的功能分配而造成的依赖于处理内容的问题出现的可能性。图3A和3B示出了无问题发生情形下的用于处理的PE阵列的操作和用于相同处理的每个处理周期的操作,而图3C和3D则示出了有问题发生情形下的用于处理的PE阵列的操作和用于相同处理的每个处理周期的操作。在图3A和3C所示的PE阵列中,假设算术逻辑单元(此后称为“ALU”)和乘法器的排列分别如图所示。对ALU和乘法器进行不同的定义,其原因在于它们在物理上完全不同。
在图3A所示的情形下,由于各个ALU和乘法器被适当地排列以用于对式子(a+b)*(c-d)进行运算,所以在2个周期内完成了运算,并且上述数据传输在3个周期内完成,因此整个处理在6个周期内完成。与之相比较,在图3C所示的情形下,由于各个ALU和乘法器没有被适当地排列以用于计算给出的式子,所以,因为输入数据-c和-d必须被传输到用于计算的处理器元件,因此运算本身就需要5个周期,并且由于执行处理的处理器元件到输出开关元件的距离很远,因此需要4个周期来传输数据以用于输出,这样的结果是整个处理总共需要10个周期。
PE阵列中的处理器元件分配是在制造过程中建立的,其不能在以后改变。因此,如果一个PE阵列试图包括以在相邻开关元件之间传输数据的运算装置为形式的相异ALU模块,那么处理的效率将依赖于算法而有很大的变化,因为根据传统技术,在制造阶段不可能预先选择一系列适用于任意算法的ALU模块。
同样地,很难使用用于PE阵列的相异运算元件,来构成通过开关元件的二维阵列在运算元件之间传输数据的PE阵列可重配置运算装置。
图4A和4B还示出了传统运算装置中进行反馈处理的方式,其假设处理1被如下执行。
D[0]=1;
for(i=0;i<5;i++){
aa[i]=D[i]+a[i];
B[i]=b[i]+aa[i];
cc[i]=c[i]+d[i];
D[i+1]=B[i]-cc[i];
}               --(称为处理1)
为了便于理解,构成PE阵列的开关元件的垂直列从左到右依次被编号为0,1,2,…,M((M+1)是列数),而水平行从上到下依次被编号为0,1,2,…,N((N+1)是行数),于是位于第j列第k行的开关元件S就被标记为S(j,k)。而且,位于第j列第k行的处理器元件(可推知地标记为PE(j,k))将可被开关元件S(j,k)、S(j,k-1)、S(j-1,k)和S(j-1,k-1)访问,它们的位置都与PE(j,k)相邻。
为了执行上述处理1,从开关元件S(0,0)输入数据b[0],从S(0,1)输入数据D[0]和a[0],从S(0,2)输入数据d[0]和c[0]。现在,在周期1,在处理器元件PE(0,1)执行加法运算aa[0](=D[0]+a[0]),接下来在处理器元件PE(1,1)处执行加法运算cc[0](=c[0]+d[0]),如图4所示。然后在周期2,在处理器元件PE(1,0)处执行加法运算B[0](=b[0]+aa[0])。然后在周期3,在处理器元件PE(2,1)处执行减法运算D[0+1](=B[0]-cc[0]),并执行对值B[0]的从开关元件S(2,1)到S(3,1)的数据传输1。同样在周期3中,随后,值B[0]的从开关元件S(3,1)到S(4,1)的数据传输1和同时的处理器元件PE(2,1)处的处理结果D[1]被反馈到PE(0,1)。同样,循环处理需要反馈周期。虽然上述示例仅有一个反馈周期,但是随着循环返回前周期数的增加,反馈中的返回距离变长,因此处理效率损失的问题将相应恶化。
如上所述,处理控制体系结构也密切影响通过二维开关元件阵列而在处理器元件之间传输数据的PE阵列可重配置运算装置的处理效率,因此会导致处理效率的取决于循环处理的进一步损失。
存在一个与ALU模块的重配置所需的时间相关联的问题,其出现在改变处理内容时和检测条件分支时,等等。因此这种切换时间和重配置发生的次数的累加可能造成整体的性能下降。
在日本专利申请公开No.2001-312481中公开的几种方法中,有一种方法是用于缩短切换时间的,如图5所示。图5所示的运算装置示出了这样的部件,其中对由二维排列的多个ALU模块单元990a组成的ALU模块组进行重配置。每个ALU模块单元990a由ALU模块996、用于存储发射到ALU模块的多条指令的指令存储器994,以及用于对所选择的指令进行译码的指令译码器995组成。对ALU模块组进行重配置的所述部件由状态控制管理器997、状态转换表998以及选择器999组成。使用当前状态号对状态转换表998进行查找,并选择下一状态号和对ALU模块组中的所有ALU模块都相同的指令地址。在每个ALU模块单元990a中,根据从ALU模块组外部接收到的指令地址来从指令存储器中读出指令,所述指令被指令译码器995解释,并且为ALU模块996建立处理内容,以执行指令所指示的处理。图6示出了图5所示的运算装置的操作定时。在图6中,定义为“算术和逻辑运算”的周期实际上包括“指令存储器读出”和“指令译码”,并且实际的“运算”被执行。注意,图6所示的情形中,当发射指令地址时使用了当前状态号。在用于“当发射指令时使用下一状态号的情形”的操作定时中,虽然用于指令地址发射的定时本身可能提前,但是“指令存储器读出”、“指令译码”以及实际的“运算”必须执行,因为算术和逻辑运算的定时与上述日本专利申请公开No.2001-312481中的定时相同。因此,状态转换表中的查找和实际的算术和逻辑运算之间的延迟就成了一个问题。而且,状态转换表条目具有下一状态号和指令地址。状态转换表是这样的存储器,其大小随着条目的数量而增大,这继而造成占用空间变大的问题。
发明内容
本发明的目的在于解决如在相关现有技术中所述的各种问题。
本发明的另一目的在于提供一种可重配置运算装置,其能够获得不依赖于处理元件分配或处理控制体系结构的统一性以及良好的处理效率。
本发明的另一目的在于提供一种运算装置,其能够在其中包括可选的相异处理器元件并对其进行快速重配置。
本发明提供了用于达到上述目的的可重配置运算装置。根据本发明的可重配置运算装置由下列几部分组成:多个运算单元,能够通过使用给定的第一配置数据对自身进行重配置并能够彼此同时工作;自由部署的用于从其读出和向其写入的至少一个存储器单元;构成运算装置所需的多种处理器元件;资源间网络连接单元,其可以使来自所述多个运算单元和存储器单元的任意输出数据成为用于所述多个运算单元的任意输入数据,其还在由所述多个运算单元、存储器单元以及多种处理器元件所组成的资源之间,以实际上不依赖于资源的位置和种类的统一传输时间来执行数据传输,其还能够通过使用给定的第二配置数据对自身进行重配置;用于存储所述第一和第二配置数据的存储单元;用于从外部存储装置向所述存储单元加载所述配置数据的加载单元;以及用于基于从所述多个运算单元获得的数据,以适当的顺序和定时来向可重配置单元提供所述第一和第二配置数据的供给单元。
同时,本发明的另一方面在于提供一种这样的运算装置,其由以下部分组成:多个能够彼此同时工作的ALU模块、用于控制所述多个ALU模块的定序器,以及存储作为每个ALU模块的设置数据的配置的配置存储器。根据本发明的运算装置具有一个连接单元,使得来自所述多个ALU模块中的任意ALU模块的输出成为到其它多个ALU模块的输入。
根据本发明的可重配置运算装置提供不依赖于处理器元件分配或控制体系结构的统一的高处理效率。
而且根据本发明,可以包括多种处理器元件并完成快速重配置。
附图说明
参照附图并根据下面的描述将使本发明变得更加清楚。
图1示出了根据日本专利申请公开No.2001-312481的阵列处理器的处理器元件(PE)阵列的示例;
图2A描述了图1所示的传统PE阵列中的数据传输延迟问题,还示出了图1所示的PE阵列的操作;
图2B描述了图1所示的传统PE阵列中的数据传输延迟问题,还示出了每个周期的操作;
图3A示出了由组成PE阵列的处理器元件的功能分配造成的依赖于处理内容的问题出现可能性,表明了PE阵列的操作和无问题出现的情形下每个周期的操作;
图3B示出了由组成PE阵列的处理器元件的功能分配造成的依赖于处理内容的问题出现可能性,表明了图1所示的PE阵列的操作和无问题出现的情形下每个周期的操作;
图3C示出了由组成PE阵列的处理器元件的功能分配造成的依赖于处理内容的问题出现可能性,表明了图1所示的PE阵列的操作和有问题出现的情形下每个周期的操作;
图3D示出了由组成PE阵列的处理器元件的功能分配造成的依赖于处理内容的问题出现可能性,表明了图1所示的PE阵列的操作和有问题出现的情形下每个周期的操作;
图4A描述了在图1所示的PE阵列的包括反馈循环的处理中发生的问题,还示出了所述PE阵列的操作;
图4B描述了在图1所示的PE阵列的包括反馈循环的处理中发生的问题,还示出了所述PE阵列的操作;
图5示出了传统的可重配置阵列处理器;
图6示出了图5所示的可重配置阵列处理器的状态转换的操作定时;
图7示出了根据本发明的可重配置运算装置的概要原理方框图;
图8示出了图7所示的处理器元件网络10的体系结构,其中子图8A是处理器元件网络10的整体体系结构的方框图,子图8B是构成处理器元件网络10的选择器41的原理基本体系结构;
图9示出了图7所示的处理器元件网络10的实施例的方框图;
图10A的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于ALU模块PE0(20)的输入a0的选择器的设置;
图10B的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于ALU模块PE0(20)的输入a1的选择器的设置;
图10C的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于ALU模块PE0(20)的输入b0的选择器的设置;
图10D的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于ALU模块PE0(20)的输入b1的选择器的设置;
图10E的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于RAM0(242)的外部数据输入部分D0和外部地址输入部件A0的选择器的设置;
图10F的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于RAM0(242)的外部数据输入部分D0和外部地址输入部件A0的选择器的设置;
图10G的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于数据输出部分OD0到OD3的选择器的设置;
图10H的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于延迟FF群集256中的外部数据输入部分FF0和FF1的选择器的设置;
图10I的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于延迟FF群集256中的外部数据输入部分FF0和FF1的选择器的设置;
图10J的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于计数器0(254)的输入部分的选择器的设置;
图10K的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于循环移位器252的输入部分的选择器的设置;
图10L的实施例示出了构成图9所示的处理器元件间网络40a的一系列选择器,以及用于地址输出部分)OA0的选择器的设置;
图11A是图7所示的定序器的第一实施例的概要原理方框图;
图11B是图7所示的定序器的第二实施例的概要原理方框图;
图12的实施例示出了分别用于图11A和11B的定序器70和70a的状态表;
图13示出了在可重配置运算装置1中使用定序器70或70a时,重配置和执行之间的操作定时;
图14A示出了根据本发明来克服“与数据传输相关联的处理周期延迟”这一传统问题的方法,以及一个示例性配置;
图14B示出了根据本发明来克服“与数据传输相关联的处理周期延迟”这一传统问题的方法,以及一个示出了上述配置中的处理周期的表格;
图15A所示的等效电路示出了在根据本发明的可重配置运算装置1中包括相异处理器元件的配置;
图15B示出了用于图15A所示的配置的处理周期表;
图16A所示的等效电路示出了在根据本发明的可重配置运算装置1中包括反馈的配置;
图16B示出了用于图16A所示的配置的处理周期表;
图17A示出了典型RISC(精简指令集计算机)处理器的原理方框图;
图17B的状态流程图示出了常用RISC处理器的并行处理操作;
图17C的状态流程图示出了包括常用RISC处理器的转发的处理流程;
图17D的状态流程图示出了不包括常用RISC处理器的转发的处理流程;
图18A的等效电路所示的配置执行根据本发明的可重配置运算装置1中的并行操作;
图18B示出了用于图18A所示的配置的处理周期表;
图18C的等效电路所示的配置执行根据本发明的可重配置运算装置1中的流水线处理;
图18D示出了用于图18C所示的配置的处理周期表;
图19示出了运算装置1中的重配置示例;
图20A对传统RISC(精简指令集计算机)处理器(图20A所示)和根据本发明的运算装置1(图20B所示)的可扩展性进行了比较;
图20B对传统RISC(精简指令集计算机)处理器(图20A所示)和根据本发明的运算装置1(图20B所示)的可扩展性进行了比较;
图21是根据本发明的优选实施例的处理器元件网络10b的概要方框图;
图22示出了图21所示的切换条件信号产生器60的实施例的方框图;
图23的概要方框图示出了根据使用了图21所示的处理器元件网络10b和图22所示的切换条件信号产生器60的优选实施例的运算装置的整体构成,以及一个定序器的实际示例;
图24示出了用于图23所示的定序器70b的状态表78的实施例;
图25的概要方框图示出了执行状态表78的前瞻的定序器的实施例;
图26的处理状态图示出了图25所示的定序器70c的操作定时;
图27的概要方框图示出了配备了配置寄存器的运算装置的实施例;
图28的处理状态图示出了图27所示的运算装置1c的操作定时;
图29A的概要方框图示出了配备了配置寄存器的运算装置的实施例的变体,还示出了对每个处理器元件集群设置配置寄存器的示例;
图29B的概要方框图示出了配备了配置寄存器的运算装置的实施例的变体,还示出了对每个处理器元件设置配置寄存器的示例;
图30A的概要方框图示出了对每个处理器元件部署存储器的示例性构成;
图30B的概要方框图示出了对被划分为多个集群的处理器元件网络的每个集群安排配置存储器的示例性构成;
图31的实施例示出了ALU模块或处理器元件如图7、8、9、21、22、29A和29B,以及30A和30B所示,对所接收的配置数据的部分或全部进行译码的方法;以及
图32的概要方框图示出了根据另一实施例的处理器元件网络的示例性构成。
具体实施方式
以下通过使用根据本发明的优选实施例以及附图来详细描述本发明。注意,这里的多个附图中所示的相同元件被指定了相同的标号。
[实施例]
图7是根据本发明的可重配置运算装置的概要原理方框图。
在图7中,可重配置运算装置1配备了处理器元件网络10,其中的各种处理器元件由处理器元件间网络40相互连接。所述由处理器元件间网络40相互连接的各种处理器元件例如包括多个(图7所示的示例中为4个)ALU模块20、数据存储器240、数据输入端口220、数据输出端口230、各种处理器元件250,等等。不仅ALU模块20,而且其它各种处理器元件都可以被设置来执行与从外部提供的配置数据有关的功能。而且,处理器元件间网络40还实现了相应于从外部提供的配置数据,在由处理器元件间网络40相互连接的各种处理器元件之间进行数据传输。
注意,图7为了简单起见仅示出了4个ALU模块,但是当然可以包括几十个或更多ALU模块。其它元件或信号的数量在本上下文中也是如此。
可重配置运算装置1还配备了以下部件:配置存储器50,其存储相应于处理器元件网络10中的各种可重配置元件的配置数据CD0到CD6;配置数据加载部件(CD加载部件)55,其从外部存储装置(未示出)向配置存储器50加载配置数据(CD);切换条件信号产生器60,其接收基本是从构成处理器元件网络10的多种可重配置元件中的ALU模块发送的条件形成信号CS1、CS2等,基于上述信号产生并发出切换条件信号;以及定序器70,其基于由切换条件信号产生器60发送的切换条件信号,提供用于随后读出配置存储器50的地址。所述条件形成信号(将在后面详述)是这样的信号,其当ALU模块20中包括的每个ALU(算术逻辑单元)的比较运算的结果变为相同时被输出,并至少被用于产生表明配置的切换定时的切换条件信号。注意,可重配置运算装置1还最好配备状态表加载部件57,用于从未示出的外部存储装置向定序器70提供状态表。
<确保数据传输一致性的元件间网络>
图8的概要原理方框图示出了图7所示的处理器元件网络10的构成,其中子图8A示出了整个处理器元件网络10的方框图,子图8B所示的电路示出了构成处理器元件网络10的选择器41的原理性基本构成。在子图8A中,当连接到处理器元件间网络40的处理器元件(即子图8A的示例中的ALU模块20、数据输出端口230、数据存储器240和各种处理器元件250)的输入端和处理器元件间网络40被连接时,处理器元件间网络40通过选择器41、41a和41b发出数据(注意,当这些选择器不需要被分类时,它们仅被集体地标以“选择器41”)。例如,通过选择器41来提供到每个ALU模块的输入,其中,所有ALU模块20、数据输入端口220、各种处理器元件250以及数据存储器240的所有输出线都被视为到此的输入。类似地,处理器元件间网络40通过选择器41a向各种处理器元件250发出数据,通过选择器41b向数据存储器240发出数据,通过选择器41c向数据输出端口230发出数据。
虽然理想的情况是,将连接到处理器元件间网络40的所有处理器元件的所有输出与每个选择器41的输入端相连接,以获得重配置中的更高灵活性,但是,如果处理元的数量变大,那么就很难实现这样的设计。但是,希望例如至少将所有ALU模块20和数据存储器240的输出与相应于每个ALU模块20的输入的选择器41的输入端相连接。下面这样的做法是可行的:考虑系统使用和处理器元件间连接的必要性或可能性,确定何种处理器元件及其输出端与相应于到其它处理器元件的输入的选择器41相连接。
这样,根据本发明,与处理器元件间网络40相连接的处理器元件20、220、230、240和250高度自由地通过单一的选择器41而相互连接。因此,没有在开关元件和处理器元件呈二维排列的阵列运算装置中看到的那种由于处理器元件的位置而造成的处理器元件间数据传输速度的改变。数据传输在任何处理器元件之间都是以相同的时间(即如下所述的1个时钟)而被执行的。这然后将使得设计可包括相异处理器元件、显著提高的系统灵活性和广泛的使用多样性。
如图8的子图8B所示,每个选择器41由如下部件组成:一个单个的选择器元件或多个选择器元件的组合(简称“选择器元件”)490;与选择器元件490的输出端相连接的锁存触发器(此后称为“FF”)492;以及存储部件494,其嵌入或连接到选择器元件490,并保持这样的数据,该数据表明了将要输出与选择器相连接的哪个输入的数据(即配置数据的一部分)。从配置存储器50提供的配置数据CD0被加载到构成处理器元件间网络40的选择器41的存储部件494上,并且,每个选择器基于其处的存储部件494中存储的数据,选择到其的输入之一以用于从其的输出。
时钟信号CK被提供给选择器41的锁存FF492,并且来自选择器元件490的输出被保持并与时钟CK同步地被输出。这样,由于构成处理器元件间网络40的选择器41建立了与相同CK同步的输出,因此对通过处理器元件间网络40连接的处理器元件执行同步数据传输,并因此根据本发明,上述处理器元件作为一个整体形成了流水线。
如上所述,根据本发明的元件间网络确保了统一的数据传输,使得它们在一个时钟内进行,而不考虑其中处理器元件的位置。
图9的方框图是图7所示的处理器元件网络10a的实施例。在图9中,处理器元件网络10a配备了处理器元件间网络40,其连接了4个ALU模块20、两个256字RAM(随机访问存储器)242、两个4048字RAM243、一个循环移位器252、四个计数器254以及一个延迟FF部件256。处理器元件网络10a还连接了外部数据输入线ID0、ID1、ID2、ID3等,以及外部地址输入线IA0、IA1等。
每个ALU模块20由以下部件组成:a系列输入端a0和a1;b系列输入端b0和b1;选择器22,其与作为到其的输入的输入端a0和b0相连接;选择器21,其与作为到其的输入的输入端a1和b1相连接;ALU a24,其与作为到其的输入的输入端a0和b0相连接;ALU b 23,其与作为到其输入的选择器21和22的输出相连接;加法器(ADD)25,其与作为到其输入的ALU a 24和ALU b 23的输出相连接;选择器26,其与作为到其输入的ALU b 23和加法器25的输出相连接;选择器27,其与作为到其输入的ALU a 24和加法器25的输出相连接;累加器(ACC)28,其与作为到其输入的选择器26和27的输出相连接。注意,累加器(ACC)28是可选元件,因此其可以省略。
图10A到10L示出了图9所示的构成处理器元件间网络40a的一系列选择器的实施例。在图10A到10L中,在每个选择器的角落处由实心黑色矩形标出的部分表示上述配置存储器部件494。配置存储器部件494中的数据长度相应于选择器的输入数量而变化:2输入时为1比特,4输入时为2比特,8输入时为3比特,16输入时为4比特,等等。同时,所有的选择器电路402、404、406、408、410、420、430、430a、450、460和47a都在其输出阶段具有上述锁存FF 492。
图10A到10D分别示出了用于ALU模块PE0(20)的输入a0、a1、b0、b1的选择器电路。图10A到10D所示的选择器电路402到408分别具有相同的结构。选择器电路402和404由以下部件组成:两个(或更多)输入选择器484;五个(或更多)输入选择器482;以及14个(或更多)输入选择器480。选择器484的输入端连接了外部数据输入ID0和ID1,选择器482的输入端连接了计数器0和1的输出、延迟FF0和FF1的输出,以及循环移位器252的输出。选择器480的输入端连接了选择器482和484的输出,另外还连接了4个ALU模块PE0到PE3中的每一个的输出C0和C1,还连接了RAM0到RAM3的所有输出。因此,ALU模块PE0的输入端a0和b0可以连接来自除了计数器2和3、延迟FF部件256的FF2和FF3以及外部数据输入ID2或其后的外部数据输入以外的所有处理器元件的所有输出。注意,图10C所示的选择器电路406与图10A所示的选择器电路402相同,除了在前一电路中,输入选择器484的外部数据输入是ID3而不是ID1。
在图10B中,选择器电路404与选择器电路402相同,除了在选择器电路404中,到选择器484的输入是外部数据输入ID2和ID3,而到选择器482的输入是计数器2和3的输出以及延迟FF2和FF3的输出。因此,除了计数器0和1、延迟FF部件256的FF0和FF1,以及外部数据输入ID0和ID1之外,所有处理器元件的所有输出都可以连接到ALU模块PE0的输入端a1。
在图10D中,选择器电路408与选择器电路404相同,除了在前一电路中,到选择器484的输入是外部数据输入ID1和ID3。因此,除了计数器0和1、延迟FF部件256的FF0和FF1以外,所有处理器元件的所有输出以及外部数据输入ID2和ID3都可以连接到ALU模块PE0的输入端b1。每个选择器480、482和484的一个角落处所示的实心黑色矩形标出了配置存储器部件494。
在图10E中,用于RAM0外部数据输入D0的选择器电路410由以下部件组成:四个(或更多)输入选择器507和508,以及14个(或更多)输入选择器506。选择器507的输入端连接了计数器2、延迟FF部件256的FF0和FF1、以及循环移位器252的输出。选择器508的输入端连接了外部数据输入ID0到ID3。选择器506的输入端连接了四个ALU模块PE0到PE3中每一个的输出C0和C1、RAM1到3的输出,以及选择器507和508的所有输出。
图10F示出了用于RAM0的外部地址输入的选择器电路412。选择器电路412的输入端连接了选择器497,其具有作为到其的输入的外部地址输入OA0和OA1,还连接了延迟FF2和FF3的输出,以及循环移位器252的输出。选择器496的输入端连接了ALU模块PE0和PE1中每一个的输出C0,以及RAM1到RAM3的输出。
用于RAM输出、计数器输出和延迟FF输出的组件识别号分别随着用于RAM1到3的外部数据输入选择器410a、410b和410c,以及外部地址输入选择器412a、412b和412c而循环改变。
图10G示出了用于数据输出部件OD0到OD3的选择器电路420。选择器电路420由以下部件组成:选择器503,其连接了作为到其的输入的RAM0到3的输出;选择器504,其连接了作为到其的输入的延迟FF0到3的输出;选择器505,其连接了作为到其的输入的计数器2和3的输出;选择器502,其连接了作为到其的输入的ALU模块PE0到PE3中每一个的输出C0和C1,以及选择器503、504和505的输出。用于输出数据ID1到ID3的计数器号循环改变。
图10H示出了用于延迟FF0输入部件的选择器电路430。选择器电路430由以下部件组成:选择器511,其连接了作为到其的输入的RAM2和3的输出、计数器0和1的输出,以及循环移位器252的输出;选择器512,其接收作为到其的输入的数据输ID0到ID3;选择器513,其接收作为到其的输入的外部地址输入IA0和IA1;以及选择器510,其连接了作为到其的输入的选择器511、512和513的输出以及ALU模块PE0和PE1中每一个的输出C0和C1。
图10I示出了用于延迟FF1输入部件的选择器电路430a。选择器电路430a与选择器电路430相同,除了在前一电路中,用选择器512代替了选择器511。选择器521的输入端连接了RAM0和1的输出和计数器2和3的输出。而且,对于延迟FF2和FF3,计数器号循环改变,余者同上。
图10J示出了用于计数器0输入的选择器电路450。在图10J中,选择器电路450由以下部件组成:选择器531,其连接了除了计数器0以外的计数器1到3的输出,以作为到其的输入;选择器532,其连接了作为到其的输入的ALU模块PE0到PE3中每一个的输出C0;选择器533,其连接了作为到其的输入的延迟FF0到3的输出;以及选择器530,其连接了作为到其的输入的选择器531、532和533的输出。与计数器1到3相同,它自身的输出未输入选择器531。
图10K示出了用于循环移位器252输入的选择器电路460。选择器电路460由以下部件组成:选择器541,其连接了作为到其的输入的RAM0到3的输出;选择器542,其接收作为到其的输入的外部数据输入ID0到3;以及选择器460,其连接了作为到其的输入的选择器541和542的输出,以及ALU模块PE0到PE3中每一个的输出C0和C1。
图10L示出了用于地址输出OA0的选择器电路47a。选择器电路47a由以下部件组成:选择器547,其连接了作为到其的输入的RAM2和3的输出以及计数器0和2的输出;选择器548,其连接了作为到其的输入的延迟FF0和2的输出;以及选择器546,其连接了作为到其的输入的选择器547和548的输出,以及ALU模块PE0和PE2中每一个的输出C0和C1。分别用于其它地址输出OA1到3的选择器47b、47c和47d是类似的,只是除了RAM的输入之外的输入是循环改变的。
到目前为止已描述了图9所示的处理器元件网络10a中使用的处理器元件间网络40a的优选实施例。如现在已经明了的那样,由于在ALU模块20和数据存储器(即RAM0到3)之间至少互连了它们的输入和输出端,而且其它处理器元件也根据需要与ALU模块和其它处理器元件彼此互连,并且此处还包括了各种处理器元件,因此可以包括高度灵活的系统配置并执行不依赖于处理控制体系结构的有效的流水线处理。
图11A是图7所示的定序器的第一实施例的概要原理方框图。在图11A中,定序器70由以下部件组成:用于保持状态号的状态号寄存器76;用于存储预设转换后(即下一个)状态号的状态表74;以及状态控制部件72,其在来自切换条件信号产生器60的切换条件信号变为有效时,根据由状态号寄存器76所表明的状态号来从状态表74中读出。当前状态号寄存器76的输出被用于定序器70的输出。根据本发明,当前状态号被用作为配置存储器50的地址,从而提高除了效率,如下所述。
图12是状态转换表74的原理性构成。在图12中,状态转换表74由以下部件组成:转换后状态号存储器部件742,其存储n个可能状态的转换后状态号1到n;以及地址译码器740,其通过译码由当前状态号寄存器76提供的当前状态号,来寻址与当前状态号有关的转换后状态号“i”(其中i=1~n,n表示可能的状态数)。状态转换表74输出由地址译码器740寻址得到的转换后状态号“i”(其等于配置存储器地址(此后称为“CMA”))。
图13示出了切换配置的操作定时。在图13中,当切换条件信号中出现一个脉冲,表明由当前配置进行的处理(ST0)期间出现配置切换时,状态控制部件72响应于上述脉冲,将当前状态号寄存器76中的当前状态号移交给状态转换表74。在状态ST1,状态转换表74基于所接收的当前状态号来输出转换后状态号(即下一CMA)。在状态ST2,通过使用该CMA,从配置存储器50中读出配置数据(CD),并将所读出的CD相应于构成处理器元件网络10的各个处理器元件而逐个部分地存储在各个处理器元件的配置数据(CD)存储器部件中,并且同时,响应于新存储的CD而重新配置各个处理器元件。在状态ST3,处理器元件网络10根据重配置的配置开始操作。
这样,与联系图6所描述的传统运算装置相比,根据本发明,不仅简化了状态转换表74,而且通过使得状态号与CMA相一致,还减少了用于从配置存储器读出的步骤数,从而缩短了用于重配置的时间。更加明显的是,图12所示的根据本发明的转换后状态号存储部件742与图5所示的状态号转换表相比,在状态数相同的情况下具有更少数量的数据。
图11B是图7所示的定序器的第二实施例的概要原理方框图。图11B所示的定序器70a与定序器70相同,除了前者包括了连接了作为到其的输入的状态转换表74和当前状态号寄存器76的输出的开关75,并输出这两个输出中的一个。通过包括被设置用来在配置切换时选择状态转换表74的输出(即转换后编号等于下一CMA)的开关75,从而可更快地输出状态表74中的转换后状态号s,并相应地缩短配置切换时间。
然后通过比较与传统技术相关的问题,如下描述本发明的特性。
<消除由于数据传输而造成的处理周期延迟>
在传统阵列运算装置中,如图2A和2B所示,由于数据传输1到4而出现延迟。图14A的等效电路示出了根据本发明的可重配置运算装置的配置,其执行与图2A和2B所示的处理相同的处理。在这里的包括图14A在内的示出了等效电路的图中,虚线表示作为相应于配置数据而设置处理器元件间网络40中的选择器电路(未示出)的结果,各个处理器元件之间的连接状态。插入ALU模块的输入端的其长边呈水平方向的阴影矩形表示上述触发器492。
在图14A中,ALU模块A、B和C被重配置为分别运算加法a+b、减法c-d和加法e+f的处理器元件,其中“a”到“f”是输入信号。ALU模块D被重配置为用于通过使用ALU模块A和B的输出来运算加法A+B的加法器;而ALU模块E被重配置为用于通过使用ALU模块D和C的输出来运算加法D+C的加法器。
图14B的周期状态表示出了由图14A所示的配置所执行的处理。如图14B所示,周期1中的加法A=a+b、减法B=c-d和加法C=e+f,周期2中的加法D=A+B,以及周期3中的加法E=D+C被分别运算,并在周期4输出运算结果E。这样,在根据本发明的可重配置运算装置中不出现由于数据传输而造成的处理周期延迟。作为比较请见图2A和2B所示的处理中出现的3周期延迟。
<处理器元件的独立>
在其中具有相异处理器元件的传统阵列运算装置中,处理效率受到处理器元件和处理内容的影响,如图3A到3D所示。下面将解释这一点。图15A和15B描述了由根据本发明的可重配置运算装置1执行的对与图3A到3D中处理的式子(a+b)*(c-d)相同的式子的运算的方法。图15A示出了被重配置以运算式子(a+b)*(c-d)的处理器元件网络10的等效电路。图15B示出了图15A的处理的周期状态表。在处理周期1中,ALU模块A和B分别运算加法a+b(=A)和减法c-d(=B),接着由从右面数第二个位置处的乘法器在第二周期运算A*B,并且乘法器的运算结果被输出。
如通过图15A可理解的那样,根据本发明,可以通过处理器元件间网络40来形成与图15A所示相同的不依赖于ALU模块位置的拓扑。这样,根据本发明的可重配置运算装置能够形成不依赖于处理器元件位置的相同拓扑,并因此可将相异处理器元件添加到可选位置。
<反馈操作>
在由相异处理器元件组成的传统阵列运算装置中,当处理包括如图4A和4B所示的循环的重复操作时,处理效率会受到影响。下面将解释这一点。图16A和16B描述了由根据本发明的可重配置运算装置1执行的对与图4A和4B中的式子相同的式子的运算(即上述处理1)的方法。图16A示出了被重配置以运算上述处理周期1的处理器元件网络10的等效电路。图16B是图16A所示的处理的周期状态表。在处理周期1中,左侧最远处的加法器aa[i]和中央位置的加法器cc[i]分别运算加法D[0]+a[0](=aa[0])和加法c[0]+d[0](=cc[0]);接下来从左数第二位置的加法器B[i]在周期2运算加法b[0]+aa[0];在周期3,从右数第二位置的减法器D[i+1]运算减法B[0]-cc[0]并与此同时输出加法器B[i]的运算结果;从而结束第一次循环。然后在周期4,加法器aa[i]和cc[i]分别运算加法D[1]+a[1](=aa[1])和加法c[1]+d[1](=cc[1]);接下来加法器B[i]在周期5运算加法b[1]+aa[1];在周期6,减法器D[i+1]运算减法B[1]-cc[1]并与此同时输出加法器B[i]的运算结果;从而结束第二次循环。
如通过图16B所示的周期状态表可理解的那样,在根据本发明的可重配置运算装置中,不存在与循环处理相关联的用于反馈的数据传输。因此根据本发明,不存在由循环处理引起的处理效率损失。
<与RISC处理器的比较>
·独立并行处理
图17A示出了典型传统RISC处理器的原理方框图。在图17A中,典型RISC处理器由以下部件组成:多个ALU模块980;连接了ALU模块980的输入和输出的寄存器文件982;指令存储器984;和用于对来自指令存储器984的指令进行译码并将其提供给ALU模块980的指令译码器986。
图17B是当图17所示的RISC处理器执行以下并行处理时的周期状态表。
for(i=0;i<5;i++){
     A[i]=a1[i]+a2[i];——运算(a)
     B[i]=b1[i]+b2[i];——运算(b)
     C[i]=c1[i]+c2[i];——运算(c)
     D[i]=d1[i]+d2[i];——运算(d)
     }                        ——(处理2)
即,当通过令图17A所示的两个ALU模块分别运算加法A[i]和B[i],而令另外两个ALU模块分别运算乘法C[i]和D[i]来并行处理上述处理2时,周期状态表如图17B所示。在图17B中,“F”表示取指令周期,用于从指令存储器984读出指令;“D”表示译码周期,其中指令译码器986对读出的指令进行译码;“a”、“b”、“c”和“d”表示执行周期,其中每一个都分别执行运算;“W”表示写周期,用于写处理结果。由于RISC处理器是每次每个ALU模块980执行处理时取指令并译码的von Neuman处理器,因此每个处理需要4个周期。因此,所需的指令数为20(即4个并行处理乘以5等于20)。
作为比较,考察根据本发明的可重配置运算装置1对上述处理2的执行,如下所述。图18A示出了为了执行处理2而对处理器元件网络10进行重配置的结果的等效电路,而图18B示出了当图18A所示的配置执行处理2时的周期状态表。由于根据本发明的可重配置运算装置基本被分类为数据驱动处理器而非von Neuman处理器,因此像处理2那样,当每个ALU模块20独立地重复相同的处理时(即每个ALU模块20不受其它ALU模块的运算结果的影响),一旦最初如图18A所示地进行了重配置之后,就不需要在处理中进行重配置。
在图18A中,每个ALU模块(a)、(b)、(c)、(d)的两个输入端和一个输出端都连接到数据存储器240;ALU模块(a)、(b)被设置为加法器,而ALU模块(c)、(d)被设置为乘法器。
在图18B中,“R”表示读周期,用于从存储器240中读出数据a1[i]、a2[i]、b1[i]、b2[i]、c1[i]、c2[i]、d1[i]和d2[i];“N”表示从存储器240读出的数据在处理器元件间网络40中时的周期;“a”、“b”、“c”和“d”表示其中每个ALU模块20都分别执行处理的周期;“W”表示其中处理结果被写入数据存储器240的周期。简单并行处理例如上述处理2可以由根据本发明的可重配置运算装置以与传统RISC处理器相同的周期完成。
·互相关(interdependent)并行处理
在上述处理2中,四个运算是独立执行的,没有用到其它运算的运算结果,因此很简单。下面考察其它运算结果被用于特定运算的处理示例。
for(i=0;i<5;i++){
      A[i]=a1[i]+a2[i];——运算(a’)
      B[i]=b1[i]+A[i];——运算(b’)
      C[i]=A1[i]*B[i];——运算(c’)
      D[i]=d1[i]*C[i];——运算(d’)
      }                      ——(处理3)
图17C示出了在执行在高性能RISC处理器中进行的转发或旁路(即在运算结果被写入寄存器文件982的同时,旁路寄存器文件982而将该运算结果移交到需要该结果的ALU模块)的同时,执行处理3的周期状态表。在此情形下,所需指令数是4个并行处理乘以8,而且处理在11个周期中完成。
图17D示出了在不进行转发的情况下执行处理3的周期状态表。在此情形下,由于当运算结果被用于其它运算时将运算结果通过寄存器文件982移交到需要该结果的ALU模块,因此其处理效率低于转发的情况。在此情形下,所需指令数是4个并行处理乘以11,处理在14个周期中完成。
图18C示出了被重配置以用于执行处理3的处理器元件网络10的等效电路。ALU模块(a’)、(b’)被设置为加法器,而ALU模块(c’)、(d’)被设置为乘法器。ALU模块(a’)的输入端连接了数据存储器240,以读取数据a1[i]和a2[i];ALU模块(a’)的输出A[i]连接了ALU模块(b’)和(c’)中每一个的一个输入;ALU模块(b’)的另一个输入连接了数据存储器240,以读取数据b1[i];ALU模块(b’)的输出B[i]连接了ALU模块(c’)的另一个输入端;ALU模块(c’)的输出C[i]连接了ALU模块(d’)的一个输入端;ALU模块(d’)的另一个输入和输出连接了数据存储器240,以读取作为到此的输入的数据d1[i],并向数据存储器240写入运算结果D[i]。
图18D的周期状态表示出了由图18C所示的配置所进行的对处理3的运算。包括了读周期(R)、网络周期(N)和写周期(W)的一个循环处理周期需要7个时钟,有五个循环处理周期被并行处理,而每个后续周期依次落后一个时钟。
根据本发明的流水线处理需要11个时钟以完成处理3。这意味着其与进行转发的传统RISC处理器具有相同的性能,而比不进行转发的处理器具有更高的性能。
虽然传统RISC处理器需要由8或11次取指令、指令译码和ALU模块中的指令设置组成的8条指令(进行转发)或11条指令(不进行转发),但是根据本发明只需要进行一次配置,因此在处理开始前进行的一次重配置可以被保持直到处理完成。这接下来可以减小操作点数和功耗。
在处理3的示例中,循环的次数是5。而在1000的情形下,传统方法需要1003次(进行转发)或1006次指令发射,而根据仅在开始处理前进行重配置并将其保持直到处理结束的本发明,则只需要一次配置,减少了操作点数和功耗。
而且根据本发明,并不是对于每次运算都将数据写入存储器,而是使用处理器元件间网络40中的锁存FF492对其进行保存,因此与RISC处理器相比,减小了对寄存器文件的访问数。
如上所述,根据本发明的可重配置运算装置在互相关并行处理中提供比RISC处理器更好的性能。
<重配置中更高自由度的可能性>
图19示出了在对根据本发明的可重配置运算装置1的处理器元件网络10进行的重配置中的高度灵活性。在图19中,很容易从用于执行处理“A”(即上述处理2)的一种配置,重配置到用于执行处理“B”的另一种配置,在处理“B”中,上述处理3中的式子B[i]=b1[i]+A[i]改变为B[i]=b1[i]-A[i]。这样,根据本发明,可以以很高的自由度来从独立并行处理重配置到互相关并行处理。
<可扩展性>
图20A和20B示出了对传统RISC处理器(图20A所示)和根据本发明的运算装置1(图20B所示)的可扩展性的比较。在图20A所示的RISC处理器中,寄存器文件的存储器端口必须随着能够同时进行运算的ALU模块的数目增加而增加。一个这样的ALU模块使得需增加两个读端口和一个写端口。寄存器文件在处理器中占用的空间很大,对于端口数的n倍增长,寄存器文件占用的空间大小增加n2,因此很难增加ALU模块的数量。这个问题出现在RISC处理器的并行处理或流水线处理中。
与之相比较,在根据本发明的处理器元件网络10中,ALU模块的数量可以在用于并行处理的存储器或者输入或输出资源的实际安装范围之内被增加。对于流水线处理,由于处理过程中的结果被保持在处理器元件间网络40的FF492中,消除了对将处理过程中的结果重写在存储器240中并从其读出这一步骤的需要,因此存储器大小或寄存器文件所需的端口数即使在流水线的段数更多时(即当用于同时运算的ALU模块数量增加时)也不会增加。相应地,这方便了对ALU模块的增加,因为存储器大小或寄存器文件所需的端口数并不随ALU模块的数量而增加。ALU模块数量的增加将提高每单位时间的处理效率。
[优选实施例]
图21是根据本发明的优选实施例的处理器元件网络10b的概要原理方框图。由于图21所示的处理器元件网络10b与图9所示的处理器元件网络10a基本相同,因此这里仅描述它们的不同之处。所述不同之处在于处理器元件网络10b配备了以下部件:分别用于每条外部数据输入线ID0到ID3的数据使能线DE0到DE3,以获得用于产生切换条件信号的使能信号ES;分别用于到RAM0到RAM3的输入的用于每个外部地址输入A0到A3的地址使能信号AE0到AE3;连接了作为到其的输入的数据使能DE0到DE3以及地址使能AE0到AE3的选择器62;以及为选择器62配备的配置数据存储器部件64。
选择器62基于存储在配置数据存储部件64中的数据,选择数据使能DE0到DE3之一或地址使能AE0到AE3之一,并将其作为使能信号ES发送。
其间,使用用于RAM读出数据的使能信号和用于RAM写入数据的使能信号之间的组合来代替RAM地址使能信号AE0到AE3。
图22示出了切换条件信号产生器60的优选实施例的方框图。在图22中,在每个ALU模块PEi(图21所示的示例中i=0,1,2,3)中,ALUb 23和ALU a 24中的每一个都输出条件形成信号,当比较运算产生相同结果时,该信号变为逻辑1。在图22所示的示例中,来自ALU模块PE0的两个条件形成信号CS0a和CS0b被集成为CS0,而来自ALU模块PE1的两个条件形成信号CS1a和CS1b被集成为CS1。切换条件信号产生器60由以下部件组成:循环结束检测部件610,其通过使用来自配置存储器50的配置数据和使能信号ES,产生表明切换条件形成的切换条件出现信号;切换条件码产生单元630,其基于分别来自ALU模块PE0和PE1的条件形成信号CS0a、CS0b和CS1a、CS1b,产生预切换条件出现通知信号和切换条件码,并输出切换条件码信号。
切换条件码产生单元630由以下部件组成:选择器632、634、636和638,它们接收分别来自ALU模块PE0和PE1的条件形成信号CS0a、CS0b和CS1a、CS1b,并从上述4个条件形成信号中选择并发出其中的一个;CD存储器部件640,其存储用于上述选择器的配置数据;切换条件码产生部件642、644、646和648,当输入信号变为逻辑1时,它们发出预设2位码00、01、10和01;优先权号选择器650,其响应于条件形成信号CS0和CS1,发出来自切换条件码产生部件642到648的输出之一以作为切换条件码信号;以及或门652,其发送条件形成信号CS0a、CS0b、CS1a和CS1b的逻辑和。
检测循环处理结束(即处理已经从循环中出来了)的循环结束检测部件610由以下部件组成:数据使能计数器612,其对从处理器元件网络10b发送的使能信号ES进行计数;预期循环周期保持部件614,其保持循环处理的预期周期;比较器616,其对来自使能计数器612的输出和预期循环周期保持部件614的输出进行比较;周期计数器618,其对来自比较器616的输出进行计数;循环结束偏移值保持部件620,其保持完成当前处理且从流水线完全清除当前处理所需的时钟周期数;比较器622,其对周期计数器618和循环结束偏移值保持部件620进行比较;选择器624,其连接比较器622的输出和来自切换条件码产生单元630的预切换条件出现通知信号,并发出上述两个信号之一;以及CD保持部件626,其保持用于指示选择器624的选择的配置数据。
下面描述具有上述构成的切换条件信号产生器60的操作。假设配置数据存储在选择器632到638的CD存储器部件640中,以使得上述选择器中的每一个分别选择条件形成信号例如CS0a、CS0b、CS1a和CS1b中的一个。由选择器632、634、636和638分别选择的信号CS0a、CS0b、CS1a和CS1b中的多个可以同时变为逻辑1。当来自选择器632、634、636和638的信号是逻辑1时,切换条件码产生部件642、644、646和648如上所述地发送预设2位码。假设在优先权号选择器650中,来自切换条件码产生部件642、644、646和648的输出,以及作为到此的其它输入的条件形成信号CS0a、CS0b、CS1a和CS1b被置为相关的对,而且来自切换条件码产生部件642、644、646和648的输出(或条件形成信号CS0a、CS0b、CS1a和CS1b)中的每一个都被给予预设的优先权号。当接收来自多个切换条件码产生部件(即642、644、646和648)的输出时,优先权号选择器650从条件形成信号CS0a、CS0b、CS1a和CS1b中已变为逻辑1的信号中,发出与给定了最高的预设优先权号的条件形成信号有关的2位码,作为切换条件码信号。当条件形成信号CS0a、CS0b、CS1a和CS1b中至少有一个为逻辑1时,连接了作为到其的输入的条件形成信号CS0a、CS0b、CS1a和CS1b的四输入OR门652发出“逻辑1”。
同时,在循环结束部件610中,数据使能计数器612对所接收的使能信号ES的数量进行计数和发送。比较器616对来自数据使能计数器612的输出和预期循环周期保持部件614的值进行比较,如果二者相同,则发出表明“相同”的信号。在接收到来自比较器616的“相同”信号后,周期计数器618开始对可重配置运算装置1中的处理周期(例如时钟)的数量进行计数。在循环结束偏移值保持部件620中,存储完成当前处理(即从流水线中清除所有当前处理的处理数据)所需的时钟周期数。因此,比较器622在周期计数器618的值等于循环结束偏移值保持部件620的值时发出“相同”信号,意味着当使能信号ES等于预期循环周期时,在当前处理完成的定时处输出“相同”信号。相应于CD存储器部件626的1位内容,选择器622发出来自比较器622的输出或来自4输入OR门652的输出。
如上所述,切换条件信号产生器60发出表明配置切换定时的切换条件出现信号(即选择器624的输出)和2位切换条件码信号。
注意,优选地,配备优先权号选择器650,用于保持由配置存储器50提供的配置数据或从其它输入单元输入的设置数据,以使得用户可设置优先权。
图23的概要方框图示出了使用了图21所示的处理器元件网络10b和图22所示的切换信号产生器60的优选实施例的运算装置的整体构成,以及定序器的实际示例。在图23中,处理器元件网络10b、配置存储器50、CD加载部件55和切换条件信号产生器60已经被描述过。
定序器70b由以下部件组成:状态控制部件72;状态表78,其输出与来自状态控制部件72的输出有关的转换后状态号的候选值;选择器79,其基于来自切换条件信号产生器60的切换条件码信号来选择由状态控制部件72发出的候选值,并将其作为下一状态号(等于配置存储器地址)输出;以及状态号寄存器76,其保持来自选择器79的输出。来自切换条件信号产生器60的切换条件出现信号被提供给状态控制部件72和配置存储器50。如上所述,可重配置运算装置1还配备了状态表加载部件57,以使得状态表78从未示出的外部存储装置被加载到定序器70或70b的存储装置上。
图24示出了状态表78的实施例。在图24中,状态表78由图12已经描述过的地址译码器740和状态转换表742a组成,其中状态转换表742a由一列相应于可能状态的转换后状态号的候选值构成。
下面参照图23和24来描述定序器70b的操作。
状态控制部件72a同步于来自切换条件信号产生器60的切换条件出现信号,将保持在当前状态号寄存器76中的当前状态号(即当前配置存储器地址)发送到状态表78。接收到当前状态号后,状态表78中的地址译码器740通过对当前状态号进行译码,对相应于当前状态号的转换后状态号指定一列候选值“i”(其中i=1到n;n表示可能的状态数)的列表。状态转换表742a发出用于被指定的转换后状态号的一列候选值“i”。在图24所示的示例中,候选值“i”的列表中包括四个用于转换后状态号的候选值。接收到转换后状态号的一列候选值“i”后,选择器79发出相应于来自切换条件信号产生器60的切换条件码信号的转换后状态号。例如,提供了一种方法,用于将用于转换后状态号的候选值“i”的列表按顺序排列,例如切换条件码信号00、01、10、11。可以考虑如上所述的各种用于对应的方法。从选择器79发出的下一状态号(即下一CMA)被提供给当前状态号寄存器76和配置存储器50。当前状态号寄存器76保持所接收的下一状态号。与来自切换条件信号产生器60的切换条件出现信号相同步地读出配置存储器50中对应于下一CMA的配置数据,然后将所读出的配置数据分发到每个接收方。这样被分发到每个处理器元件的配置数据就完成了重配置。
<预设置下一CMA>
图25的概要方框图示出了执行状态表78的前瞻的定序器的实施例。图25所示的定序器70c与图23所示的定序器70b相同,除了定序器70c配备了状态切换部件80,其通过选择器79发出当前状态号,该当前状态号是基于来自当前状态号寄存器76的输出以及切换条件出现信号而根据下一状态号切换得到的。
图26的处理状态图示出了图25所示的定序器70c的操作定时。在图26所示的状态2(即当前状态)中,状态切换部件80预先从状态表78读出用于转换后状态号的候选值,响应于切换条件出现信号,从上述候选值中选择下一状态号,并立刻读出配置存储器,从而完成高速切换。也就是说,由于在状态2(即当前状态)中出现状态切换定时之前已经读出了下一状态号(即下一配置存储器地址(CMA)),因此在状态切换定时出现时读出了配置存储器地址,从配置存储器中读出了下一配置数据,这样就启用了对操作的执行。虽然本示例中似乎配置存储器读出和操作的执行分别需要1个时钟,但是操作执行的开始可以与配置存储器的读出在同一时钟周期内进行。而且根据本发明,可以在定序器内包含用于将配置数据从外部存储装置(未示出)加加载配置存储器50的配置加载部件55。
<各种修改>
图27的概要方框图示出了配备了配置寄存器的运算装置的实施例。图27所示的可重配置运算装置1b与图7所示的可重配置运算装置1相同,除了在前者中,在配置存储器50和处理器元件网络10之间插入了配置寄存器82,而且来自切换条件信号产生器60的切换条件信号也被提供给处理器元件网络10。
图28的处理状态图示出了图27所示的可重配置运算装置1b的配置切换操作。在图28中,在状态2(即当前状态)中,从定序器70输出状态号3(即下一CMA),如上所述。通过使用下一CMA,从配置存储器50读出下一配置数据,并存储在配置寄存器82中。因此,在状态2(即当前状态)中,配置存储器82中已经存储了下一配置数据。然后,响应于来自切换条件信号产生器60的变为活动的切换条件信号,处理器元件网络10中的每个可重配置处理器元件都从配置寄存器82中分别分配的位置处获取配置数据,从而完成重配置并启动实际处理。这样,配备配置寄存器82实现了快速配置切换。
图29A和29B示出了对分配配置寄存器82的实施例的变体。图29A示出了对包括处理器元件间网络40的各种处理器元件20、250进行分组,并对每个处理器元件组分配各个配置寄存器82a1、82a2、…82aN(其中N表示处理器元件组的数量)的示例。
图29B示出了对每个处理器元件包括处理器元件间网络40分配各个配置寄存器82b1、82b2、…82bM(其中M表示可重配置处理器元件的数量)的示例。
图30A和30B示出了以分布式方式分配配置存储器50的实施例。图30A所示的配置存储器50a被配置给每个可重配置处理器元件。图30B示出了将处理器元件网络10划分为集群并对每个集群配备配置存储器50b的实施例。在两种情况的每一种中,每个存储器50a或50b分别接收来自配置数据加载部件55和定序器70的数据。
图31示出了图7、8、9、21、22、29A、29B、30A、30B所示的ALU模块或处理器元件对所接收的配置数据的部分或全部进行译码的方法的实施例。对部分配置数据的译码实现了快速状态切换。
图32的概要方框图示出了根据另一实施例的处理器元件网络的示例性构成。在图32中,处理器元件网络10c由以下部件组成:8个ALU模块20;2个选择器(即SEL模块)252;4个MUL/MAC模块254;多个计数器264;寄存器文件256;2组双缓冲器266;以及连接上述处理器元件的处理器元件间网络40c。而且,包括2个2048字RAM258和4个512字RAM259的处理器元件网络10c还包括连接到每个RAM258和RAM259的仲裁器260,以不仅实现来自ALU模块20和MUL/MAC模块254的访问,也实现来自未示出的CPU的访问,并且,处理器元件间网络40c以及选择器/地址译码器262的访问通过仲裁器260而连接到上述RAM。这样的构成使得系统可以与擅长过程处理的CPU(未示出)联合起来工作,从而可以实现集成了过程处理和流水线处理的操作,因而适应于多种用途。
上面仅列出了用于描述本发明的实施例。因此,本发明的发明者很容易根据与本发明相关的技术的想法或原理来改变、修改或增加上述实施例。
根据图8和图10A到10L所示的网络体系结构,已经很清楚地表明,由于网络中的各个处理器元件或资源之间用于将它们互连的互连结构仅是通过其输出连接到各个资源的输入的选择器元件490(以及FF492),而不是通过用于连接其它资源的选择器来实现的,因此可以很容易地在设计的中间增加或去掉元件或资源。
虽然上述实施例采用了运算装置的示例,但是根据本发明的可重配置运算装置可以通过集成电路,由所谓的处理器来获得。

Claims (24)

1.一种可重配置运算装置,包括:
多个运算单元,能够通过使用给定的第一配置数据来对自身进行重配置并能够彼此同时工作;
至少一个用于从自身读出和向自身写入的自由部署的存储器单元;
构成运算装置所需的处理器元件;
资源间网络连接单元,所述资源间网络连接单元可以使来自所述多个运算单元和所述存储器单元的任意输出数据成为用于所述多个运算单元的任意输入数据,并且在由所述多个运算单元、所述存储器单元和所述处理器元件组成的资源之间,以实际上不依赖于所述资源的位置和种类的统一传输时间来执行数据传输,并且能够通过使用给定的第二配置数据对自身进行重配置;
用于存储所述第一和第二配置数据的存储单元;
用于从外部存储装置向所述存储单元加载所述第一和第二配置数据的加载单元;以及
用于基于从所述多个运算单元获得的数据,向所述多个运算单元提供所述第一和第二配置数据的供给单元,所述供给单元包括:
基于从所述多个运算单元获得的数据来产生表明重配置的定时的定时信号的定时单元;
用于存储相应于预设状态数的状态号的表单元;
用于保持当前状态号的保持单元;
用于将所述当前状态号与存储在所述表单元中的状态号之一进行关联的关联单元;以及
用于响应于所述定时信号来输出所述相关联的状态号的输出单元,其中所述状态号是所述存储单元中的地址。
2.如权利要求1所述的可重配置运算装置,其中所述资源间网络连接单元包括使得来自所述多个运算单元中的任意运算单元的输出数据成为到所述多个运算单元中的所述任意运算单元的输入的选择器单元。
3.如权利要求1所述的可重配置运算装置,其中所述资源间网络连接单元包括选择器电路,所述选择器电路的输出与所连接的所述资源的输入端相连接;
输出与每个运算单元的输入相连接的选择器电路的输入与所述多个运算单元的所有输出相连接;并且
每个选择器电路都在其输出阶段配备了触发器。
4.如权利要求1所述的可重配置运算装置,其中所述供给单元包括读出单元,用于预先准备所述相关联的状态号,并响应于所述定时信号,通过所述相关联的状态号从所述存储单元中读出一条配置数据。
5.如权利要求1所述的可重配置运算装置,包括保持单元,用于保持通过使用所述相关联的状态号而从所述存储单元中预先读出的配置数据;还包括分发单元,用于响应于所述定时信号,向所述多个运算单元分发由所述保持单元保持的配置数据。
6.如权利要求1所述的可重配置运算装置,包括配备在所述多个运算单元的每个中的保持单元,用于保持分配到每个运算单元的配置数据;以及
设置单元,用于响应于所述定时信号,在与所述保持单元相对应的所述运算单元中设置由所述保持单元保持的配置数据。
7.如权利要求1所述的可重配置运算装置,包括:
配备在所述多个运算单元的每个运算单元组中的保持单元,用于保持分配到所述每个运算单元组的配置数据;以及
设置单元,用于响应于所述定时信号,在与所述保持单元相对应的运算单元组中设置由所述保持单元保持的配置数据。
8.如权利要求1所述的可重配置运算装置,其中所述存储单元被配备在所述多个运算单元的每个中,
并且所述加载单元将分配到每个运算单元的配置数据加载到每个运算单元中配备的所述存储单元上。
9.如权利要求1所述的可重配置运算装置,其中所述存储单元配备在所述多个运算单元的每个运算单元组中,并且
所述加载单元将分配到每个运算单元组的配置数据加载到每个运算单元组中配备的所述存储单元上。
10.如权利要求1所述的可重配置运算装置,其中所述多个运算单元通过对所接收的配置数据的至少一部分进行译码使用所述所接收的数据。
11.如权利要求1所述的可重配置运算装置是集成电路。
12.一种可重配置运算装置,包括:
多个运算单元,能够通过使用给定的第一配置数据来对自身进行重配置并能够彼此同时工作;
至少一个用于从自身读出和向自身写入的自由部署的存储器单元;
构成运算装置所需的处理器元件;
资源间网络连接单元,所述资源间网络连接单元可以使来自所述多个运算单元和所述存储器单元的任意输出数据成为用于所述多个运算单元的任意输入数据,并且在由所述多个运算单元、所述存储器单元和所述处理器元件组成的资源之间,以实际上不依赖于所述资源的位置和种类的统一传输时间来执行数据传输,并且能够通过使用给定的第二配置数据对自身进行重配置;
用于存储所述第一和第二配置数据的存储单元;
用于从外部存储装置向所述存储单元加载所述第一和第二配置数据的加载单元;以及
用于基于从所述多个运算单元获得的数据,向所述多个运算单元提供所述第一和第二配置数据的供给单元,其中所述供给单元包括:
码产生单元,用于产生与一个“相同”信号相关联的预设码,所述“相同”信号表明从所述多个运算单元中的每一个所包括的每个比较器单元输出的比较结果彼此相同;
用于当产生了多个所述预设码时选择所述多个预设码中的一个预设码的选择单元;
用于产生表明重配置的定时的定时信号的定时单元;
表单元,用于存储状态号列表,以使得每个相应于某状态数的状态号列表都包括相应于所述预设码的多个状态号;
用于保持当前状态号的保持单元;
用于将所述当前状态号与存储在所述表单元中的状态号之一进行关联的关联单元;以及
输出单元,用于响应于所述定时信号,从所述状态号的关联列表中输出相应于所述被选择的预设码的状态号,其中所述状态号是所述存储单元中的地址。
13.如权利要求12所述的可重配置运算装置,其中所述资源间网络连接单元包括使得来自所述多个运算单元中的任意运算单元的输出数据成为到所述多个运算单元中的所述任意运算单元的输入的选择器单元。
14.如权利要求12所述的可重配置运算装置,其中所述资源间网络连接单元包括选择器电路,所述选择器电路的输出与所连接的所述资源的输入端相连接;
输出与每个运算单元的输入相连接的选择器电路的输入与所述多个运算单元的所有输出相连接;并且
每个选择器电路都在其输出阶段配备了触发器。
15.如权利要求12所述的可重配置运算装置,其中所述定时单元包括定时信号产生单元,用于与由所述多个运算单元中的任意运算单元的任意比较器单元输出的所述“相同”信号的定时同步地产生所述定时信号。
16.如权利要求12所述的可重配置运算装置,其中所述定时单元包括检测单元,用于检测由上述可重配置运算装置处理的循环处理的结束;以及
定时信号输出单元,用于当所述检测单元输出表明结束的信号时,与从用于当前配置的资源清除一条处理数据同步地输出所述定时信号。
17.如权利要求16所述的可重配置运算装置,其中所述检测单元包括条件形成信号单元,其通过监视数据总线和地址总线来输出表明条件形成的条件形成信号;
循环周期保持单元,用于保持循环周期的预期数量;以及
判断单元,用于判断所述条件形成信号的出现周期是否等于所述循环周期的预期数量。
18.如权利要求15所述的可重配置运算装置,其中所述定时单元包括检测由上述可重配置运算装置处理的循环处理的结束的检测单元;
定时信号输出单元,用于当所述检测单元输出表明结束的信号时,与从用于当前配置的资源清除处理数据同步地输出所述定时信号;以及
选择单元,用于基于给定的配置数据,选择来自所述定时信号产生单元或所述定时信号输出单元的输出之一。
19.如权利要求12所述的可重配置运算装置,其中所述存储单元被配备在所述多个运算单元的每个中,
并且所述加载单元将分配到每个运算单元的配置数据加载到每个运算单元中配备的所述存储单元上。
20.如权利要求12所述的可重配置运算装置,其中所述存储单元配备在所述多个运算单元的每个运算单元组中,并且
所述加载单元将分配到每个运算单元组的配置数据加载到每个运算单元组中配备的所述存储单元上。
21.如权利要求12所述的可重配置运算装置,其中所述多个运算单元通过对所接收的配置数据的至少一部分进行译码使用所述所接收的数据。
22.如权利要求12所述的可重配置运算装置是集成电路。
23.一种具有运算资源网络的可重配置流水线处理器,包括:
多个能够通过使用给定的第一配置数据来对自身进行重配置并能够彼此同时工作的运算单元;
用于从自身读出和向自身写入的自由部署的存储器单元;
构成运算装置所需的处理器元件;
资源间网络连接单元,所述资源间网络连接单元对所述运算单元、所述存储器单元和所述处理器元件进行互连,在连接到此的资源之间,以不依赖于所述资源的位置和种类的统一传输时间来执行数据传输,并且能够通过使用给定的第二配置数据对自身进行重配置。
24.如权利要求23所述的可重配置流水线处理器是集成电路。
CNB2005100593385A 2004-07-12 2005-03-28 可重配置运算装置 Expired - Fee Related CN100492343C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP205332/2004 2004-07-12
JP2004205332A JP4594666B2 (ja) 2004-07-12 2004-07-12 再構成可能な演算装置

Publications (2)

Publication Number Publication Date
CN1722130A CN1722130A (zh) 2006-01-18
CN100492343C true CN100492343C (zh) 2009-05-27

Family

ID=35508271

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100593385A Expired - Fee Related CN100492343C (zh) 2004-07-12 2005-03-28 可重配置运算装置

Country Status (6)

Country Link
US (1) US7774580B2 (zh)
EP (2) EP2278496A1 (zh)
JP (1) JP4594666B2 (zh)
KR (1) KR100740081B1 (zh)
CN (1) CN100492343C (zh)
TW (1) TWI282924B (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571303B2 (en) 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
JP2006011825A (ja) * 2004-06-25 2006-01-12 Fujitsu Ltd 再構成可能演算装置および半導体装置
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
JP4353052B2 (ja) 2004-10-04 2009-10-28 株式会社日立製作所 半導体集積回路
KR100821918B1 (ko) * 2005-05-27 2008-04-16 전자부품연구원 데이터 경로의 재구성이 가능한 디지털 신호 처리기
JP4838009B2 (ja) 2006-02-22 2011-12-14 富士通セミコンダクター株式会社 リコンフィグラブル回路
JP4646840B2 (ja) * 2006-03-22 2011-03-09 富士通セミコンダクター株式会社 回路構成を動的に切り替える並列処理装置
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
KR100893527B1 (ko) * 2007-02-02 2009-04-17 삼성전자주식회사 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
JP5046779B2 (ja) * 2007-07-31 2012-10-10 三菱電機株式会社 動的再構成プロセッサ
JP5141151B2 (ja) * 2007-09-20 2013-02-13 富士通セミコンダクター株式会社 動的再構成回路およびループ処理制御方法
US8276120B2 (en) * 2007-10-30 2012-09-25 Coreworks, S.A. Reconfigurable coprocessor architecture template for nested loops and programming tool
JP5115307B2 (ja) * 2008-04-25 2013-01-09 富士通セミコンダクター株式会社 半導体集積回路
KR100960148B1 (ko) 2008-05-07 2010-05-27 한국전자통신연구원 데이터 프로세싱 회로
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
US9170816B2 (en) * 2009-01-15 2015-10-27 Altair Semiconductor Ltd. Enhancing processing efficiency in large instruction width processors
JP2010231645A (ja) * 2009-03-27 2010-10-14 Fujitsu Ltd 演算処理装置
JP5431003B2 (ja) 2009-04-03 2014-03-05 スパンション エルエルシー リコンフィギュラブル回路及びリコンフィギュラブル回路システム
JP5785357B2 (ja) * 2009-06-25 2015-09-30 スパンション エルエルシー リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置
JP5815717B2 (ja) 2010-10-15 2015-11-17 コーヒレント・ロジックス・インコーポレーテッド マルチプロセッサシステムにおける通信の無効化
JP5953876B2 (ja) * 2012-03-29 2016-07-20 株式会社ソシオネクスト リコンフィグ可能な集積回路装置
JP2013222364A (ja) * 2012-04-18 2013-10-28 Renesas Electronics Corp 信号処理回路
US9507541B2 (en) 2012-12-25 2016-11-29 Nec Corporation Computation device, computation method, and medium
JP6143577B2 (ja) * 2013-06-26 2017-06-07 サイプレス セミコンダクター コーポレーション 半導体集積回路および半導体集積回路の動作方法
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US10776077B2 (en) * 2016-01-20 2020-09-15 Samsung Electronics Co., Ltd. Method, apparatus and recording medium for processing division calculation
JP6786955B2 (ja) 2016-08-25 2020-11-18 富士ゼロックス株式会社 再構成可能論理回路
GB2553010B (en) * 2017-01-16 2019-03-06 Imagination Tech Ltd Efficient data selection for a processor
CN110728364A (zh) * 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
CN109523019B (zh) * 2018-12-29 2024-05-21 百度在线网络技术(北京)有限公司 加速器、基于fpga的加速系统及控制方法、cnn网络系统
US10698853B1 (en) 2019-01-03 2020-06-30 SambaNova Systems, Inc. Virtualization of a reconfigurable data processor
US11169822B2 (en) 2019-02-14 2021-11-09 Xilinx, Inc. Configuring programmable logic region via programmable network
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
JP7346235B2 (ja) * 2019-10-16 2023-09-19 ルネサスエレクトロニクス株式会社 半導体装置
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59132070A (ja) * 1983-01-18 1984-07-30 Mitsubishi Electric Corp アレイ演算用デ−タ処理装置
JPH02158214A (ja) * 1988-12-12 1990-06-18 Hamamatsu Photonics Kk 論理回路装置
JPH03116225A (ja) * 1989-09-29 1991-05-17 Nec Corp 状態遷移回路
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
JPH04364525A (ja) * 1991-06-11 1992-12-16 Gijutsu Kenkyu Kumiai Kokusai Fuajii Kogaku Kenkyusho 並列演算装置
JPH06290158A (ja) * 1993-03-31 1994-10-18 Fujitsu Ltd 再構成可能なトーラス・ネットワーク方式
US5583450A (en) 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
JPH1185463A (ja) * 1997-09-01 1999-03-30 Mitsubishi Electric Corp 演算ネットワーク装置
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
JP3611714B2 (ja) * 1998-04-08 2005-01-19 株式会社ルネサステクノロジ プロセッサ
JP3674515B2 (ja) * 2000-02-25 2005-07-20 日本電気株式会社 アレイ型プロセッサ
US7325123B2 (en) * 2001-03-22 2008-01-29 Qst Holdings, Llc Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements
WO2003009125A1 (fr) * 2001-07-19 2003-01-30 Sony Corporation Dispositif de calcul et dispositif de traitement d'images
JP3723775B2 (ja) 2002-01-10 2005-12-07 松下電器産業株式会社 データ処理装置
US6920545B2 (en) * 2002-01-17 2005-07-19 Raytheon Company Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster
JP4002151B2 (ja) * 2002-07-31 2007-10-31 富士通株式会社 情報処理装置
US20040025004A1 (en) 2002-08-02 2004-02-05 Gorday Robert Mark Reconfigurable logic signal processor (RLSP) and method of configuring same
CN1639690A (zh) * 2002-09-13 2005-07-13 株式会社日立制作所 半导体装置
CA2502306A1 (en) 2002-10-24 2004-05-06 Telecom Italia S.P.A. A reconfigurable state machine architecture and related method of execution
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置

Also Published As

Publication number Publication date
KR20060005292A (ko) 2006-01-17
TWI282924B (en) 2007-06-21
EP1632868A3 (en) 2009-07-22
EP1632868A2 (en) 2006-03-08
EP2278496A1 (en) 2011-01-26
KR100740081B1 (ko) 2007-07-18
CN1722130A (zh) 2006-01-18
TW200602893A (en) 2006-01-16
JP4594666B2 (ja) 2010-12-08
JP2006031127A (ja) 2006-02-02
US7774580B2 (en) 2010-08-10
US20060010306A1 (en) 2006-01-12

Similar Documents

Publication Publication Date Title
CN100492343C (zh) 可重配置运算装置
Zheng et al. A cooperative coevolution algorithm for multi-objective fuzzy distributed hybrid flow shop
CN1103951C (zh) 用于自定时算法执行的装置和方法
Shi et al. A quantitative survey of communication optimizations in distributed deep learning
CN114781632B (zh) 基于动态可重构脉动张量运算引擎的深度神经网络加速器
CN106227507A (zh) 计算系统及其控制器
Geng et al. O3BNN: An out-of-order architecture for high-performance binarized neural network inference with fine-grained pruning
US20210349847A1 (en) Embedding Rings on a Toroid Computer Network
CN111783966A (zh) 一种深度卷积神经网络硬件并行加速器的硬件装置及方法
CN102306141A (zh) 一种描述动态可重构阵列配置信息的方法
CN102567279A (zh) 一种动态可重构阵列时序配置信息的生成方法
Yang et al. Towards efficient inference: Adaptively cooperate in heterogeneous iot edge cluster
RU2294561C2 (ru) Устройство аппаратной реализации вероятностных генетических алгоритмов
US20080195839A1 (en) Reconfigurable, Modular and Hierarchical Parallel Processor System
US20240256475A1 (en) Batch matrix multiplication operations in a machine learning accelerator
US20240143525A1 (en) Transferring non-contiguous blocks of data using instruction-based direct-memory access (dma)
CN110457648A (zh) 一种用于lu分解的脉动阵列结构的实现方法
US20220326988A1 (en) Explicit scheduling of on-chip operations
CN115208954A (zh) 用于分布式数据处理的并行策略预置系统及其方法
Sun et al. Minimizing communication conflicts in network-on-chip based processing-in-memory architecture
EP1576490B1 (en) Scalable processing network for searching and adding in a content addressable memory
US12124783B2 (en) Initializing on-chip operations
US20220277125A1 (en) Initializing on-chip operations
CN102207892B (zh) 一种动态可重构处理器内子单元间进行同步的方法
JP7357767B2 (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090527

Termination date: 20160328

CF01 Termination of patent right due to non-payment of annual fee