可重配置的集成电路器件的制作方法

文档序号:6554619阅读:237来源:国知局
专利名称:可重配置的集成电路器件的制作方法
技术领域
本发明涉及可重配置的集成电路器件,更具体地说,涉及被安装在可重配置集成电路器件中的内部存储器的新颖配置,用于执行与外部存储器之间的数据传输。
背景技术
可重配置集成电路器件包括多个处理器元件和用于互连这些处理器元件的网络,其中定序器响应于外部或内部事件来向处理器元件和网络提供配置数据,并根据该配置数据,利用处理器元件和网络来配置任意运算状态或运算电路。传统的可编程微处理器顺序地读取存储在存储器中的指令,并顺序地处理它们。由于一个处理器同时执行的指令数是有限的,因此微处理器的处理能力也受到某种限制。
另一方面,在最近提出的可重配置集成电路器件中,具有加法器、乘法器、比较器等功能的ALU和例如延迟电路、计数器等多种处理器元件被预先安装,并且用于连接这些处理器元件的网络也被安装,然后,根据从具有定序器的状态转换控制部件而来的配置数据,所述多个处理器元件和网络被重新配置为所需配置,而且在该运算状态下执行预定的运算。当在一种运算状态下的数据处理完成时,根据其他配置数据来构造另一种运算状态,而且在该状态下执行不同的数据处理。
通过以此方式动态地构造不同运算状态,可提高对大量数据的数据处理能力,并且可提高整体处理效率。这种可重配置集成电路器件例如在日本专利申请早期公开No.2001-312481中公开。

发明内容
在传统的可重配置集成电路器件中,多个处理器元件的阵列被连接在处理器之间的开关包围,状态转换控制部件向处理器元件和开关组提供配置数据,以设置任意运算状态。在处理器元件组中,数据从外部存储器输入,被设置为运算状态的处理器元件组对输入数据执行预定数据处理,如此获得的数据被输出。
在上述集成电路器件中,数据处理所需的数据从外部存储器被成批读取,并被存储在内部存储器中,然后被设置为某种运算状态的处理器元件组和开关组对读取的所有数据执行数据处理。
但是,可重配置的集成电路器件利用动态配置的预定数量的处理器元件执行不同的应用。因此,每个处理器元件需要在所需的定时上向外部存储器写或从外部存储器读取所需数量的数据。在现有技术中,经由使用连接处理器元件的开关组的数据路径来传输数据,并且仅能在预定的定时上与外部存储器进行数据传输。
此外,用于存储从外部存储器读取的数据或要被写到外部存储器的数据的预定数量的内部存储器被安装用于多个处理器元件,但是将由用户配置的运算状态是可变的,因此很难估计需要多少个内部存储器以及内部存储器需要何种输入/输出特性。因此在可重配置集成电路器件中,内部存储器的配置和操作需要很高的灵活度。
鉴于上述原因,本发明的目的在于提供一种可重配置的集成电路器件,其允许内部存储器的高度灵活的配置和操作。
为了达到此目的,本发明的第一方面是一种可重配置的集成电路器件,该器件基于配置数据被动态构建为任意运算状态,该器件包括多个群集,所述群集包括多个分别具有计算单元的运算处理器元件、与外部存储器之间进行数据传输的具有存储器的存储器处理器元件、以及用于在任意状态下连接运算处理器元件和存储器处理器元件的处理器元件间开关组;群集间开关组,用于在任意状态下构建群集之间的数据路径;以及外部存储器总线,用于执行存储器处理器元件和外部存储器之间的数据传输,其中所述运算处理器元件、存储器处理器元件、处理器元件间开关组和群集间开关组基于配置数据而被动态改变,此外还提供了直接存储器访问控制部件,其响应于从多个群集的存储器处理器元件而来的访问请求,通过直接存储器访问来执行存储器处理器元件和外部存储器之间的数据传输。
根据第一方面,安装在群集中的存储器处理器元件可经由与群集间开关组不同的外部存储器总线,通过直接存储器访问与外部存储器之间进行数据传输,而且可以在适于重配置后的运算状态的定时上,对外部存储器中的数据执行重配置后的运算。
在本发明的第一方面中,优选地,所述群集还包括用于存储所述配置数据的配置数据存储器,以及定序器,所述定序器响应于从所述运算处理器元件和存储器处理器元件而来的结束信号,从所述配置数据存储器输出用于构建下一运算状态的配置数据。
在本发明的第一方面中,优选地,所述可重配置的集成电路器件还包括数据流控制部件,该数据流控制部件被安装为所述多个存储器处理器元件的公用部件,用于接受来自所述多个存储器处理器元件的直接存储器访问请求,并向用于所述多个存储器处理器元件的直接存储器访问控制部件指示同步的直接存储器访问请求。
在第一方面中,优选地,所述可重配置的集成电路器件还包括数据流控制部件,该数据流控制部件被安装为所述多个存储器处理器元件的公用部件,用于接受来自所述多个存储器处理器元件的直接存储器访问请求,并向用于所述多个存储器处理器元件的直接存储器访问控制部件指示同步的直接存储器访问请求。通过该数据流控制部件,来自所述多个存储器处理器元件的访问请求可被同步执行。
在第一方面中,所述存储器处理器元件还包括与连接到所述处理器元件间开关组的内部总线之间的内侧接口,以及与所述外部存储器总线之间的外侧接口,其中在所述存储器处理器元件经由所述外侧接口通过直接存储器访问来访问所述外部存储器的同时,所述运算处理器元件经由内侧接口来访问存储器处理器元件。根据该方面,可无缝地在外部存储器和运算处理器元件之间进行数据传输。
在第一方面中,同样优选地,存储器处理器元件在通过直接存储器访问与外部存储器之间进行数据传输的同时,接受与运算处理器元件之间的数据传输,当通过直接存储器访问的数据传输跟不上与运算处理器元件之间的数据传输时断言(assert)一个停顿(stall)信号,以停止所述多个运算处理器元件的运算,并且在能够跟上时取消所述停顿信号。根据该方面,当不能在所述外部存储器和所述运算处理器元件之间进行无缝数据传输时,运算处理器元件的运算可被停止,以避免误操作。
为了达到该目的,本发明的第二方面是一种可重配置的集成电路器件,该器件基于配置数据被动态配置为预定运算状态,该器件包括多个群集,所述群集包括具有计算单元的运算处理器元件、与外部存储器之间进行数据传输的具有存储器的存储器处理器元件、以及用于在任意状态下连接运算处理器元件和存储器处理器元件的处理器元件间开关组;群集间开关组,用于在任意状态下构建群集之间的数据路径;以及外部存储器总线,用于执行存储器处理器元件和外部存储器之间的数据传输,其中所述运算处理器元件、存储器处理器元件、处理器元件间开关组和群集间开关组基于配置数据而被动态改变,此外还提供了直接存储器访问控制部件,其响应于从多个群集的存储器处理器元件而来的访问请求,通过直接存储器访问来执行存储器处理器元件和外部存储器之间的数据传输,所述存储器处理器元件包括第一和第二存储器库,其中当所述第一和第二存储器库中的一个正在通过直接存储器访问与外部存储器进行数据传输时,所述第一和第二存储器库中的另一个与运算处理器元件进行数据传输。
根据第二方面,可经由不同于所述群集间开关组的外部存储器总线,在任意定时上执行所述外部存储器和所述运算处理器元件之间的无缝数据传输。
根据本发明,安装在每个群集中的存储器处理器元件使得可独立于群集之间的数据路径,通过对外部存储器的直接存储器访问实现数据传输,从而增加向可重配置集成电路器件中的存储器处理器元件进行数据传输的灵活性,并且可以高效地完成数据传输。


图1是描述了构成根据本实施例的可重配置集成电路器件的一部分的一个群集(cluster)的框图;图2是描述了根据本实施例的PE网络部件的配置示例的示意图;图3是描述了根据本实施例的根据PE网络部件的配置数据配置的电路的配置示例的示意图;图4是描述了根据本实施例的根据PE网络部件的配置数据配置的电路的配置示例的示意图;图5是描述了根据本实施例的可重配置集成电路器件的框图;图6是描述了根据本实施例的存储器处理器元件的示例的框图;图7A-7C是描述了根据本实施例的存储器处理器元件中的两个存储器库(memory bank)的切换操作的示意图;图8A-8C是描述了根据本实施例的存储器处理器元件中的两个存储器库的切换操作的示意图;图9A-9C是描述了根据本实施例的存储器处理器元件中的两个存储器库的切换操作的示意图;图10A-10C是描述了根据本实施例的存储器处理器元件中的两个存储器库的切换操作的示意图;图11A-11C是描述了根据本实施例的存储器处理器元件中的两个存储器库的切换操作的示意图;图12是描述了根据本实施例的存储器处理器元件的控制部件的框图;图13是根据本实施例的存储器处理器元件的控制部件的状态转换图;图14A-14B是描述了访问结束寄存器的标志改变控制的示意图;图15A-15B是描述了存储器PE中的外侧接口的示意图;以及图16是描述了存储器PE中的外侧接口的示意图。
具体实施例方式
现在参照附图描述本发明的实施例。但是,本发明的技术范围将不局限于这些实施例,而是延伸到权利要求及其等同物的内容。
图1是构成了根据本实施例的可重配置集成电路器件的一部分的一个群集的框图。群集10包括定序器SEQ,用于执行状态管理;配置数据存储器14,用于存储配置数据CD;以及将根据配置数据CD而被配置为任意电路配置的处理器元件网络部件16。在配置数据存储器14中,配置数据CD是从配置数据加载部件(未示出)加载的。
处理器元件网络部件16包括多个处理器元件(此后常称为PE)PE0-PE5;PE间开关20,这一组开关是用于连接PE的选择器;以及输入端口部件22和输出端口部件24,它们是与其他群集之间进行数据传输的接口。输入端口部件22和输出端口部件24连接到群集间开关组30。根据图1中的示例,处理器元件PE0-PE3都是运算PE,并且每一个的内部具有ALU、加法器、比较器。处理器元件PE4是另一个PE,例如延迟电路或计数器,而处理器元件PE5是内部具有RAM的存储器PE。
配置数据CD0-CD5从配置数据存储器14被提供给处理器元件PE0-PE5,并且配置数据被存储在这些PE中的寄存器(未示出)中。基于在这些寄存器中设置的配置数据CD0-CD5,每个PE中的电路被动态地配置。同样地,配置数据CD还从配置数据存储器14被提供到PE间开关组20,而且基于该数据,所需的内部开关组结构被配置并且PE之间的数据路径被动态配置。群集间开关组30也基于配置数据CD被动态配置,而且群集之间的数据路径也被配置。
群集中的存储器处理器元件PE5可经由PE间开关组20与PE0-PE4中每一个进行数据传输。因此,存储器处理器元件PE5连接到内部总线I-BUS。存储器处理器元件PE5可经由外部总线E-BUS1和E-BUS2与外部存储器E-MEM直接进行数据传输,该存储器访问是通过直接存储器访问控制部件DMAC的控制,经由与群集间开关组30不同的总线而直接进行的。因此,存储器处理器元件PE5可与外部存储器E-MEM直接进行数据传输,而且可以在与群集间的数据路径操作无关的定时上进行数据传输。
每个结束信号CS0-CS5分别从每个处理器元件PE0-PE5输出,切换信号生成部件12基于这些结束信号输出切换信号SW1。响应于该切换信号SW1,定序器SEQ输出新地址Add和切换信号SW2到配置数据存储器14,响应于此,新配置数据被输出,PE网络部件16中的电路配置被重新配置。
图2是示出了根据本实施例的PE网络部件的配置示例的示意图。运算处理器元件PE0-PE3、存储器处理器元件PE5和其他处理器元件PE4可经由选择器41(PE间开关组20中的一个开关)连接。在该配置中,每个处理器元件PE0-PE5可基于配置数据CD0-CD5被配置为任意一种配置,PE间开关组20的选择器41也可基于配置数据CD被配置为任意一种配置。
如图2右下角所例示的那样,选择器41包括寄存器42,用于存储配置数据CD;选择器电路43,用于根据寄存器42的数据来选择输入;以及触发器44,其与时钟CK同步地锁存选择器电路43的输出。
图3和图4是根据本实施例描述了根据PE网络部件的配置数据配置的电路配置示例的示意图。在图3和图4中,可动态配置运算电路的运算处理器元件PE0-PE3和PE6被PE间开关组20连接,并且被配置为高速执行预定运算的专用运算电路。处理器元件PE6未在图1和图2中示出。
图3中的示例是当对输入数据a、b、c、d、e和f执行下列算术表达式的专用运算电路被配置时的示例。
(a+b)+(c-d)+(e+f)根据该配置的示例,处理器元件PE0被配置为A=a+b运算电路,处理器元件PE1被配置为B=c-d运算电路,处理器元件PE2被配置为C=e+f运算电路,处理器元件PE3被配置为D=A+B运算电路,处理器元件PE6被配置为E=D+C运算电路。数据a~f中的每一个从存储器处理器元件和外部群集(未示出)被提供,处理器元件PE6的输出作为运算结果E被输出到存储器处理器元件和外部群集。
处理器元件PE0、PE1和PE2并行执行运算,处理器元件PE3对上面的运算结果执行运算D=A+B,最后处理器元件PE6执行运算E=D+C。以此方式,通过配置专用运算电路实现了并行运算,从而提高了运算处理效率。
每个运算处理器元件都具有内建的ALU、加法器、乘法器和比较器,并且可基于配置数据CD被重配置为任意运算电路。通过如图3所示进行配置,可配置用于执行上述专用运算的专用运算电路。并且通过配置这样的专用运算电路,多个运算可被并行执行,从而可提高运算效率。
图4的示例是当对输入数据a~d执行(a+b)*(c-d)运算的专用运算电路被配置时的示例。处理器元件PE0被配置为A=a+b运算电路,处理器元件PE1被配置为B=c-d运算电路,处理器元件PE3被配置为C=A*B运算电路,运算结果C被输出到存储器处理器元件或外部群集。在此情形下,同样地,处理器元件PE0和PE1并行执行运算,处理器元件PE3对其运算结果A和B执行运算C=A*B。因此,通过配置专用运算电路,上述运算效率可被提高,而且对大量数据的运算效率也可提高。
图5是描述根据本实施例的可重配置集成电路器件的框图。在图5中,安装了多个群集CLS0-CLS3,用于连接这些群集的群集间开关组30被安置在这些群集之间。通过根据配置数据CD来配置该群集间开关组30,可动态地配置一个组合了多个群集的任意运算电路。
在图5的示例中,存储器处理器元件PE-RAM被安装在群集CLS0-CLS3的每一个中。在一个群集中,可根据情况安装多个存储器处理器元件或不安装存储器处理器元件。这些存储器处理器元件经由外部总线E-BUS1连接到直接访问控制部件DMAC,并经由访问控制部件DMAC通过直接存储器访问来执行与外部存储器E-MEM之间的数据传输。关于外部存储器E-MEM,例如DDR-SDRAM(双数据率同步DRAM)被用作高速存储器的示例。此外,安装一个公共数据流控制部件40用于多个存储器处理器元件PE-RAM。每个存储器处理器元件发出访问请求DR0-DR3,响应于该访问请求,数据流控制部件40发送访问命令到控制部件DMAC,从而通过DMA与发送了访问请求的存储器处理器元件执行数据传输。
数据流控制部件40接受来自多个存储器处理器元件的访问请求,并同步地执行多个存储器处理器元件和外部存储器之间的DMA数据传输。换言之,访问控制部件DMAC基于来自数据流控制部件40的访问命令ACMD,通过轮转方式(round-robin)来同步执行与多个存储器处理器元件之间的DMA数据传输。
以此方式,群集中的存储器处理器元件以DMA方式从外部存储器E-MEM传输数据,该数据将被利用群集中的运算处理器元件配置的运算电路处理,并将处理后的数据以DMA方式传输到外部存储器E-MEM。这种DMA方式的传输由外部总线E-BUS1和E-BUS2直接执行,所述外部总线独立于用于连接群集的群集间开关组30。因此,在可重配置集成电路器件中,即使群集间开关组30的连接结构是动态改变的,也可以在每个存储器处理器元件所需的定时上,经由独立于群集间开关组30的路径来在每个存储器处理器元件和外部存储器之间进行数据传输,并且可以为动态配置的群集或者为多个群集实现最优数据传输。
图6是描述了根据本实施例的存储器处理器元件的示例的框图。为了实现在外部存储器和群集中的运算处理器元件之间的无缝数据传输,存储器处理器元件包括第一存储器库BNK0和第二存储器库BNK1,还包括这些存储器库和PE间开关组20之间的内侧接口50,以及这些存储器库和外部总线E-BUS1之间的外侧接口52。存储器库BNK0和BNK1分别包括四个16位宽RAM。内侧接口50连接到与PE间开关组20相连接的内部总线I-BUS,基于配置数据CD被动态配置为不同的输入/输出总线接口结构。外侧接口52连接到外部总线E-BUS1,并且也基于配置数据CD而被动态配置为不同的输入/输出总线接口结构。有关将被配置的输入/输出总线接口结构的细节将在后面描述。
在第一存储器库BNK0和第二存储器库BNK1中,当一个存储器库正在与内部运算处理器元件PE/ALU进行数据传输时,另一个则与外部存储器E-MEM进行数据传输,而且两个存储器库还可以交替执行数据传输。因此,选择器SEL被安装在存储器库BNK0、BNK1与内侧接口50、外侧接口52之间,这些选择器SEL根据配置数据CD被设置。于是,第一和第二存储器库可被交替连接到内侧和外侧接口。接口50和52与每个存储器库BNK0和BNK1之间的信号线都包括16位数据线、地址线和所有其他必要的控制线。
存储器处理器元件内部包括存储器控制部件54,用于控制存储器库的切换和控制DMA请求;以及运算控制部件56,用于执行对内部运算处理器元件PE/ALU的运算执行控制。存储器控制部件54监视存储器库的状态,并执行对存储器库的切换控制、DMA请求、以及对用于停止运算处理器元件的操作的停顿信号STR的断言和取消,从而实现外部存储器和内部运算处理器元件之间的无缝数据传输。响应于该停顿信号STR,运算控制部件56控制运算处理器元件操作的开始和停止。
图7A-7C和图8A-8C是描述了本实施例的存储器处理器元件中的两个存储器库的切换操作的示意图。在图7A-7C和图8A-8C中,在存储器处理器元件PE/RAM中示出了两个存储器库BNK0、BNK1和访问结束寄存器END-REG,其中访问结束控制器被存储器控制部件54(见图6)用来控制存储器库的切换。存在两个访问结束寄存器END-REG,其中分别存储用于指示第一和第二存储器库的访问状态的标志,例如,当存储器访问结束并且接收到结束信号时,该标志被设置为结束状态“0”,而当存储器库进入访问使能状态(就绪)时,该标志被设置为就绪状态“1”。通过监视这两个寄存器值,存储器控制部件54(见图6)控制两个存储器库BNK0和BNK1的切换。
现在参照图6、图7A-7C和图8A-8C描述初始启动后的操作。在启动时,定序器SEQ在复位被清零后输出对应于初始启动的地址,并且用于初始启动的配置数据从配置数据存储器14(图6)输出,群集中的处理器元件PE和PE间开关组20被配置为初始电路配置。通过该初始启动,初始值被设置在访问结束寄存器END-REG中,如图7A所示。在该示例中,第一存储器库BNK0的寄存器处于就绪状态(标志是“0”),而第二存储器库BNK1的寄存器处于访问结束状态(标志是“1”)。通过该初始启动,选择器SEL被配置以使得第一存储器库BNK0连接到外侧接口52,而第二存储器库BNK1连接到内侧接口50。
在初始启动之后,存储器控制部件54查阅访问结束寄存器,并输出对外部存储器的访问请求DMAR。如上所述,访问请求DMAR经由数据流控制部件40(图5)被发送到直接存储器访问控制部件DMAC,在外部存储器E-MEM和第一存储器库BNK0之间开始了直接数据传输。具体而言,从外部存储器E-MEM读取的数据经由外部总线被直接传输和写入第一存储器库BNK0。如上所述,初始启动时的访问请求DMAR从多个存储器处理器元件输出,因此利用多个直接存储器访问的数据传输被同步执行。
然后,如图7B所示,当从外部存储器E-MEM到第一存储器库BNK0的数据传输结束时,从DMA控制部件DMAC发送访问结束信号END1,响应于此,访问结束寄存器END-REG中对应于第一存储器库的位变为访问结束状态(标志“1”)。以此方式,当两个寄存器都变为访问结束状态(标志“1”)时,存储器控制部件54发出状态结束信号CS,使得定序器SEQ输出下一地址Add并使得配置数据存储器14输出新的配置数据CD,从而切换第一存储器库BNK0和第二存储器库BNK1。换言之,第二存储器库BNK1连接到外侧接口52,第一存储器库BNK0连接到内侧接口50。
然后,如图7C所示,当两个存储器库被切换时,存储器控制部件54清零访问结束寄存器END-REG,从而将两个存储器库都设置为就绪状态(标志“0”)。响应于该状态,存储器控制部件54输出访问请求DMAR到外部存储器,基于该访问请求,DMA控制部件DMAC控制外部存储器E-MEM和第二存储器库BNK1之间的数据传输。在此情形下的访问控制DMAR是在存储器处理器元件需要进行访问的定时上发出的,这与初始启动时是不同的,因此数据传输根据需要而执行。同时,存储器控制部件54输出信号ALU-EN,该信号指示了内部运算处理器元件可被执行,响应于此,运算控制部件56输出运算开始信号ALU-ST到内部运算处理器元件PE/ALU,并开始运算处理器元件的运算处理。于是,内部运算处理器元件PE/ALU访问第一存储器库BNK0,读取数据,并对读取的数据执行运算处理。
然后,如图8A所示,当第二存储器库BNK1和外部存储器E-MEM之间的数据传输结束时,响应于访问结束信号END1,访问结束寄存器END-REG被设置为访问结束状态(标志“1”)。通常,与外部存储器之间的直接存储器访问具有较宽的数据总线宽度,因此是高速数据传输,并且在与内部运算处理器元件间的数据传输之前结束。
如图8B所示,来自内部运算处理器元件PE/ALU的访问也结束了,访问结束寄存器END-REG的另一标志也被访问结束信号END2设置为访问结束状态(标志“1”)。响应于此,存储器控制部件54输出状态结束信号CS,并根据从配置数据存储器14输出的配置数据CD,替换第一存储器库BNK0和第二存储器库BNK1与内侧和外侧接口之间的连接。
如图8C所示,存储器控制部件54再次输出直接存储器访问请求DMAR,开始第一存储器库BNK0和外部存储器E-MEM之间的数据传输,运算控制部件56输出运算开始信号ALU-ST并开始从内部运算处理器元件PE/ALU到第2存储器库BNK1的访问。
如上所述,通过交替切换第一和第二存储器库,存储器控制部件54实现从外部存储器E-MEM到内部运算处理器元件的无缝数据传输。具体而言,与外部存储器之间的直接存储器访问比内部运算处理器元件的访问快,因此运算处理器元件可无缝地读取和处理数据。
图9A-9C是描述了根据本实施例的存储器处理器元件中的两个存储器库的切换操作的示意图。这里将描述在无缝数据传输出现问题时的控制。由于与外部存储器之间的直接数据传输以高速进行,因此通常一个存储器库在另一个存储器库结束与内部运算PE间的数据传输之前就结束了与外部存储器间的数据传输。当与内部运算PE间的数据传输完成时,执行存储器库切换控制,于是可实现在外部存储器和内部运算PE之间的无缝数据传输。但是由于某些原因,有些情形下与内部运算PE之间的数据传输先完成。
如图9A所示,如果从第一存储器库BNK0到内部运算PE的数据传输先结束,则访问结束寄存器END-REG被结束信号END2设置为访问结束状态(标志“1”)。响应于此,存储器控制部件54向运算控制部件56断言一个停顿信号STR,于是运算PE阵列暂时停止其流水线处理。换言之,当不能从存储器PE读取数据时,运算PE阵列的流水线处理无法进行,运算处理开始出现问题。
如图9B所示,当第二存储器库BNK1的数据传输完成时,访问结束寄存器END-REG被结束信号END1设置为访问结束状态。于是,存储器控制部件54输出状态结束信号CS,并根据配置数据CD切换存储器库。然后,如图9C所示,存储器控制部件54输出访问请求DMAR,使得第一存储器库BNK0开始与外部存储器之间的数据传输,取消停顿信号STR,并重新开始内部运算PE阵列的操作,于是,第二存储器库BNK1开始与内部运算PE之间的数据传输。
以此方式,专用运算电路被配置,并且数据运算处理被流水线式处理,于是在存储器控制部件54监视两个存储器库的访问状态并且数据的无缝传输被禁止时,存储器控制部件54断言一个停顿信号STR,以停止对内部运算PE的流水线处理。这样,可以避免流水线处理可能出现的问题。当无缝传输被使能时,存储器控制部件54取消停顿信号STR,并重新开始流水线处理。
图10A-10C和图11A-11C是描述了存储器处理器元件中的两个存储器库的切换操作的示意图。这是在执行经由存储器PE从内部运算PE到外部存储器E-MEM的数据传输时的示例。
在图10A中,运算PE向第一存储器库BNK0写数据。在图10B中,当数据写完成时,两个访问结束寄存器END-REG都变为访问结束状态(标志“1”)。响应于此,存储器控制部件54输出状态结束信号CS,并基于配置数据CD来切换两个存储器库。如图10C所示,第一存储器库BNK0通过访问请求DMAC开始与外部存储器之间的直接数据传输,通过到运算PE的运算开始信号ALU-ST开始从运算PE到第二存储器库BNK1的数据写。
然后,如图11A所示,第一存储器库BNK0的数据传输首先完成,从运算PE的数据写如图11B所示结束。于是,存储器控制部件54切换两个存储器库,交换后的存储器库的数据传输如图11C所示分别开始。
如上所述,从运算PE到外部存储器的数据传输也经由存储器PE被无缝执行。如果无缝数据传输被中途禁止,则停顿信号STR被取消,运算PE阵列停止流水线处理,并且在数据传输被使能时重新开始流水线处理。
图12是描述了根据本实施例的存储器处理器元件的控制部件的框图。图13是其控制部件的状态转换图。在图12的示例中,同一群集中的存储器单元60具有多个存储器处理器元件RAM-PE0~PEn,运算处理器元件的阵列PE/ALU阵列被配置为与存储器处理器元件RAM-PE0~PEn中的每一个相对应。每个存储器PE包括作为存储器控制部件54的库切换控制部件541和DMA传输执行判断部件542,还具有作为运算控制部件56的ALU运算执行判断部件561。多个存储器PE共享作为运算控制部件56的ALU运算控制部件562,DMA传输控制部件543被提供为存储器控制部件54。存储器PE中的第一存储器库BNK0和第二存储器库BNK1被配置为经由外部总线交替地与访问控制部件DMAC进行数据传输,以及经由群集中的PE间开关组PE-SW交替地与运算处理器元件阵列PE/ALU阵列进行数据传输。
下面将参照图13中的状态转换图描述控制流。如上所述,第一存储器处理器元件RAM-PE启动,并基于配置数据CD被配置为所需电路配置(C10)。通过所述启动,访问结束寄存器END-REG被设置为初始值标志,存储器库通过该标志状态变为初始状态(C12)。
在存储器处理器元件RAM-PE启动之后的操作期间,库切换控制部件541根据访问结束寄存器END-REG的状态(都是标志“1”)来控制存储器库的切换(C12),从而切换存储器库(C14)。当存储器库被切换时,运算PE的电路配置可被相应地转换(C12、C14)。
当存储器库被切换时,DMA传输执行判断部件542判断到外部存储器的数据传输是否可能,如果数据传输可被执行,则DMA传输执行判断部件542向安装在存储器PE外部的DMA传输控制部件543输出DMA传输使能信号DMA-EN(C16)。是否可以进行数据传输取决于指示存储器库状态的访问结束寄存器END-REG的状态。相应的DMA传输控制部件543经由数据流控制部件40(未示出,见图5)输出访问请求到访问控制部件DMAC(C18),数据传输被执行(C20)。当与外部存储器的数据传输结束时,DMA传输控制部件543接收数据传输结束信号END1,数据传输结束信号END10被发送到库切换控制部件541。然后,根据访问结束寄存器END-REG的状态执行上述库切换控制(C12)。
另一方面,当存储器库被切换时,ALU运算执行判断部件561基于访问结束寄存器END-REG来监视存储器库的状态,并判断从运算PE的访问是否可能,即,运算PE是否可执行运算处理(C22)。如果执行是可能的,则ALU运算执行判断部件561输出运算执行使能信号ALU-EN。
仅当从所有存储器处理器元件RAM-PE0~PEn都接收到运算执行使能信号ALU-EN时,ALU运算控制部件562输出运算开始信号ALU-ST到群集中的所有运算PE阵列(C24),并使得所有运算PE阵列同步执行运算处理(C26)。换言之,群集中的多个运算PE阵列必须在执行与多个存储器PE的数据传输的同时同步执行流水线处理,因此一个ALU运算控制部件562被安装为多个存储器PE的公用部件,并且仅当从所有存储器PE接收到运算执行使能信号ALU-EN时,ALU运算控制部件562才向多个运算PE阵列输出运算开始信号ALU-ST。ALU运算执行判断部件561监视存储器库的状态,如果数据传输不能无缝地进行,则ALU运算执行判断部件561断言一个停顿信号STR,并停止运算PE阵列的流水线处理。停顿信号STR如上所述。
当运算处理完成时,到运算PE侧的存储器库的访问结束,于是从运算PE接收结束信号END2,ALU运算执行判断部件561取消运算执行使能信号ALU-EN。通过该结束信号END2,访问结束寄存器END-REG的标志状态被改变,存储器库被切换或者运算PE的配置改变被相应地控制和执行(C12、C14)。
在图13中,虚线那的状态转换示出了存储器PE的状态转换,其左侧示出了DMA传输控制部件543和直接存储器访问控制部件DMAC的状态,其右侧示出了ALU运算控制部件562和运算PE阵列的状态。
在图12和图13中,DMA传输控制部件543基于DMA传输执行判断部件542输出的DMA传输使能信号DMA-EN输出DMA请求,但是DMA传输控制部件543可检查直接存储器访问控制部件DMAC接受的信道状态,从而判断DMA传输是否可被执行,即DMA传输执行定时是否合适,如果合适的话则输出DMA请求。这样,当直接存储器访问控制部件DMAC的信道数量超过预定数量而且定时不适于发送DMA请求时,可停止对DMA请求的发送,直到信道数量变为预定数量或少于预定数量,并且DMA传输定时可被延迟。DMA传输使能信号DMA-EN是根据访问结束寄存器END-REG的状态生成的,因此对延迟DMA传输定时的这一控制是很重要的。
在图13中,当运算处理器元件阵列的操作结束时(C26),新的配置数据从定序器输出,运算PE的配置数据被改变(C12)。在必要时,配置数据被切换。
图14A-14B是描述了访问结束寄存器的标志改变控制的示意图。图14A示出了当存储器库BNK0/1连接到内侧(运算PE阵列侧)时的标志改变控制。用于访问的地址Add从运算PE阵列侧被提供给存储器库BNK,相应的访问被执行。该访问地址Add也被提供给存储器控制部件54中的比较器70。当电路被基于配置数据配置时将被访问的结束地址E-Add已被预先设置在比较器70中。每次地址有效信号Valid(该信号指示附接到访问地址的地址是否有效)变为有效,比较器70就比较访问地址Add和结束地址E-Add,并且如果它们匹配则将访问结束寄存器END-REG的标志变为“1”。
作为另一控制方法,响应于来自运算PE阵列的结束信号END2,访问结束寄存器END-REG的标志可被变为结束状态“1”。在任一情形下,当内侧和外侧存储器库被切换时,访问结束寄存器END-REG的标志都被设置为就绪状态“0”。
图14B示出了当存储器库0/1连接到外侧(外部存储器E-MEM侧)时的标志改变控制。在此情形下,访问地址Add被从访问控制部件DMAC提供。响应于来自访问控制部件DMAC的结束信号END1,存储器控制部件54将访问结束寄存器END-REG的标志变为结束状态“1”,当存储器库的内侧和外侧被切换时,存储器控制部件54响应于切换结束信号END-SW将访问结束寄存器END-REG的标志设置为就绪状态“0”。
此外,访问结束寄存器END-REG的结束状态通过重置被清零并且被设置为就绪状态。
图15A-15B和16是描述了存储器PE中的外侧接口的示意图。外侧接口52连接到外部总线E-BUS1,并基于配置数据CD被动态配置为不同的输入/输出总线接口结构。通常,用于直接存储器访问的外部总线E-BUS1具有较宽的总线宽度。例如,在外部存储器E-MEM是32位DDR-SDRAM时,数据在一个时钟周期内被输出两次,因此外部总线E-BUS1的总线宽度是64位。在此情形下,外侧接口52的电路被配置为使得64位数据并行地输入到存储器库BNK中的四个16位RAM,或并行地从存储器库BNK中的四个16位RAM输出。
图15A示出了当外部总线E-BUS1的总线宽度是16位时的外侧接口。如上所述,64位数据被并行地输入到四个16位RAM,或并行地从四个16位RAM输出。
图15B示出了当总线宽度为32位时的情形,接口被配置为使得32位数据被并行地输入两组RAM,或并行地从这两组RAM输出,其中每组由两个16位RAM构成。向每组的两个RAM输入16位数据和从每组的两个RAM输出16位数据的接口是串行的。
图16示出了当总线带宽是16位并且接口被配置为使得16位数据被串行输入四个16位RAM或被串行输出四个16位RAM。图16中接口52的配置与内侧接口的配置相同。换言之,内侧接口被配置为图16所示的配置,因为运算PE阵列侧的内部总线宽度较窄,即16位。因此,内侧接口50被配置为使得16位数据被串行输入四个16位RAM或被串行输出四个16位RAM。
以此方式,对存储器PE中的接口50和52进行配置,以和基于配置数据CD而连接的总线的配置相匹配。
如上所述,根据本实施例,包括多个运算PE和存储器PE的多组群集被布置在可通过动态改变电路配置而被配置的集成电路器件中,群集通过连接状态被动态改变的开关组互连,独立于该群集间开关组,群集中的存储器PE与外部存储器连接。存储器PE可执行与外部存储器的DMA传输。存储器PE例如还是双缓冲器配置,从而可在外部存储器和运算PE之间进行无缝数据传输,如果数据传输出现问题,则运算PE阵列的流水线操作暂时停止。
本发明基于2005年8月2日提交的在先日本专利申请No.2005-224208并要求享受其优先权,该在先申请的全部内容通过引用而包含于此。
权利要求
1.一种可重配置的集成电路器件,该器件基于配置数据被动态配置为任意运算状态,该器件包括多个群集,所述群集还包括多个分别具有计算单元的运算处理器元件、与外部存储器之间进行数据传输的具有存储器的存储器处理器元件、以及用于在任意状态下连接所述运算处理器元件和所述存储器处理器元件的处理器元件间开关组;群集间开关组,用于在任意状态下配置所述群集之间的数据路径;以及外部存储器总线,用于执行所述存储器处理器元件和所述外部存储器之间的数据传输,其中所述运算处理器元件、所述存储器处理器元件、所述处理器元件间开关组和所述群集间开关组基于所述配置数据而被动态改变,所述器件还包括直接存储器访问控制部件,其响应于从所述多个群集的存储器处理器元件而来的访问请求,通过直接存储器访问来执行所述存储器处理器元件和所述外部存储器之间的数据传输。
2.如权利要求1所述的可重配置的集成电路器件,其中所述群集还包括用于存储所述配置数据的配置数据存储器,以及定序器,该定序器响应于从所述运算处理器元件和存储器处理器元件而来的结束信号,从所述配置数据存储器输出用于配置下一运算状态的配置数据。
3.如权利要求1所述的可重配置的集成电路器件,还包括数据流控制部件,该数据流控制部件被安装为所述多个存储器处理器元件的公用部件,用于接受从所述多个存储器处理器元件而来的直接存储器访问请求,并向用于所述多个存储器处理器元件的所述直接存储器访问控制部件指示同步的直接存储器访问请求。
4.如权利要求1所述的可重配置的集成电路器件,还包括数据流控制部件,该数据流控制部件被安装为所述多个存储器处理器元件的公用部件,用于接受从所述多个存储器处理器元件而来的直接存储器访问请求,并向用于所述多个存储器处理器元件的所述直接存储器访问控制部件指示同步的直接存储器访问请求,其中当直接存储器访问请求是从单个存储器处理器元件接受的时,所述数据流控制部件响应于所述接受操作,向所述直接存储器访问控制部件指示所述直接存储器访问请求。
5.如权利要求1所述的可重配置的集成电路器件,其中所述存储器处理器元件还包括与连接到所述处理器元件间开关组的内部总线之间的内侧接口、以及与所述外部存储器总线之间的外侧接口,其中在所述存储器处理器元件经由所述外侧接口通过直接存储器访问正在访问所述外部存储器的同时,所述运算处理器元件经由所述内侧接口访问所述存储器处理器元件。
6.如权利要求5所述的可重配置的集成电路器件,其中所述存储器处理器元件还包括第一和第二存储器库,其中所述第一和第二存储器库基于所述配置数据被交替连接到所述内侧和外侧接口。
7.如权利要求6所述的可重配置的集成电路器件,其中所述存储器处理器元件在所述外部存储器和所述第一或第二库之间的数据传输完成之后,允许所述运算处理器元件和所述第一或第二存储器库之间的数据传输,并且如果所述外部存储器和所述第一或第二存储器库之间的数据传输未完成,则所述存储器处理器元件断言一个停顿信号,以向所述多个运算处理器元件指示停止操作,并且当所述外部存储器和所述第一或第二存储器库之间的数据传输完成时,取消所述停顿信号。
8.如权利要求3所述的可重配置的集成电路器件,其中所述存储器处理器元件监视所述直接存储器访问控制部件的操作状态,并基于所述操作状态将所述访问请求提供给所述数据流控制部件。
9.如权利要求8所述的可重配置的集成电路器件,其中所述存储器处理器元件基于所述操作状态,可变地控制所述访问请求的定时。
10.如权利要求1所述的可重配置的集成电路器件,其中所述存储器处理器元件在通过直接存储器访问与所述外部存储器之间进行数据传输的同时接受与所述运算处理器元件之间的数据传输,在通过直接存储器访问的数据传输跟不上与所述运算处理器元件之间的数据传输时,断言一个停顿信号以停止所述多个运算处理器元件的运算,并且在能够跟上时取消所述停顿信号。
11.如权利要求5所述的可重配置的集成电路器件,其中所述存储器处理器元件的外侧接口基于所述配置数据被构建为对应于所述多个数据总线宽度的接口状态。
12.如权利要求1所述的可重配置的集成电路器件,其中所述存储器处理器元件还包括第一和第二存储器库,并且所述存储器处理器元件基于配置数据将所述第一和第二存储器库中的一个设置为使能在启动时对外部总线侧进行访问的状态,并输出所述访问请求。
13.如权利要求12所述的可重配置的集成电路器件,其中在所述第一和第二存储器库中的一个完成通过直接存储器访问的数据传输时,所述存储器处理器元件向所述运算处理器元件断言一个运算执行使能信号,以促使所述运算处理器元件执行运算。
14.如权利要求13所述的可重配置的集成电路器件,其中在所述第一和第二存储器库都进入数据传输禁止状态时,所述存储器处理器元件断言一个停顿信号,以请求所述运算处理器元件停止操作。
15.如权利要求13所述的可重配置的集成电路器件,其中所述群集还包括多个存储器处理器元件以及所述存储器处理器元件公用的一个运算执行控制部件,该部件响应于从所述多个存储器处理器元件而来的运算执行使能信号的断言,向所述多个运算处理器元件请求同步的运算执行。
16.一种可重配置的集成电路器件,该器件基于配置数据被动态配置为预定的运算状态,该器件包括多个群集,所述群集包括具有计算单元的运算处理器元件、与外部存储器之间进行数据传输的具有存储器的存储器处理器元件、以及用于在任意状态下连接所述运算处理器元件和所述存储器处理器元件的处理器元件间开关组;群集间开关组,用于在任意状态下配置所述群集之间的数据路径;以及外部存储器总线,用于执行所述存储器处理器元件和所述外部存储器之间的数据传输,其中所述运算处理器元件、所述存储器处理器元件、所述处理器元件间开关组和所述群集间开关组基于所述配置数据而被动态改变,所述器件还包括直接存储器访问控制部件,其响应于从所述多个群集的存储器处理器元件而来的访问请求,通过直接存储器访问来执行所述存储器处理器元件和所述外部存储器之间的数据传输,其中所述存储器处理器元件包括第一和第二存储器库,其中当所述第一和第二存储器库中的一个正在通过直接存储器访问与所述外部存储器进行数据传输时,所述第一和第二存储器库中的另一个与所述运算处理器元件进行数据传输。
全文摘要
本发明提供了一种可重配置的集成电路器件,其基于配置数据被动态构建为任意运算状态,该器件包括多个群集,所述群集包括运算处理器元件、存储器处理器元件、以及用于在任意状态下连接所述元件的处理器元件间开关组;群集间开关组,用于在任意状态下构建群集之间的数据路径;以及外部存储器总线,用于执行存储器处理器元件和外部存储器之间的数据传输。此外还提供了直接存储器访问控制部件,其响应于从所述多个群集的存储器处理器元件而来的访问请求,通过直接存储器访问来执行存储器处理器元件和外部存储器之间的数据传输。
文档编号G06F15/76GK1908927SQ200610008349
公开日2007年2月7日 申请日期2006年2月17日 优先权日2005年8月2日
发明者笠间一郎, 鹤田徹, 西田克 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1