可编程逻辑电路装置和可编程逻辑电路重配置方法

文档序号:7508909阅读:99来源:国知局
专利名称:可编程逻辑电路装置和可编程逻辑电路重配置方法
技术领域
本发明涉及一种可以动态重配置的可编程逻辑电路装置和一种可编程逻辑电路重配置方法。本发明尤其涉及一种可以进行包括分支操作的处理的可编程逻辑电路装置和一种可以配置包括分支处理的单元电路的可编程逻辑电路重配置方法。
背景技术
作为一种可以动态重配置的逻辑电路,动态可编程门阵列(DPGA)是众所周知的(参见日本专利申请公开号2001-202236;Yuichiro SHIBATA et.al.,“A data driving virtual hardware using anFPGA intergated with DRAM”,Journal of Information ProcessingSociety of Japan,Vol.40,否.5,May 1999,pP.1935-1945;和XiaopingLING et.al.,“WASMIIA multifunction programmable logicdevice(MPLD)with data driven control”,Journal of the Institute ofElectronics,Information and Communication Engineers,D-I,Vol.J77-D-1,否.4,April 1994,pp.309-317)。DPGA包括例如按矩阵排列的多个逻辑块以及连接这些块的多个逻辑块间连接器。每个逻辑块都提供了比较简单的逻辑电路,这种逻辑电路基于外部设备所提供的电路块信息和状态信息。
具体地说,这种逻辑块包括可以提供取块于电路块信息的查用表(LUT),以及由状态信息所初始化并保持LUT的输出的触发器。
每个逻辑块间连接器根据外部设备所提供的连接信息连接在一个逻辑块的输出与一个不同的逻辑块的输入之间。换言之,逻辑块间连接器通过连接这些逻辑块构成一个复杂的逻辑电路。
以前,要利用DPGA实现的电路被分为多个电路块,这样,电路的处理可以通过流水线处理来实现。只构成单一电路块的DPGA实质上通过在非常短的时间内重配置电路块来实现流水线处理,从而提供所要实现的电路功能。
然而,常规DPGA适合于提供含有简单顺序处理的电路,而且常规DPGA不能主动适应复杂的处理,诸如由于发生频繁电路块切换使整个电路吞吐量下降的分支处理。

发明内容
根据本发明的一个方面,提供了一种可编程逻辑电路装置,该装置包括动态切换和操作多个电路块的可编程逻辑电路。这些电路块包括执行分支处理的分支电路块和有选择地对分支电路块所得到的数据进行多种处理的多个子电路块。该装置还包括存储单元,它存储分支电路块所得到的数据以及被输入了该数据的子电路块的标识符。标识符与数据相关联。该装置还包括控制器,它使得可编程逻辑电路在处理存储单元中所存储的数据时,处理与与正在可编程逻辑电路中运行的子电路块的标识符相同的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
根据本发明的另一方面,提供了一种可编程逻辑电路重配置方法,该方法用于重配置动态切换和操作多个电路块的可编程逻辑电路。这些电路块包括执行分支处理的分支电路块和有选择地对分支电路块所得到的数据进行多种处理的多个子电路块。该方法包括在存储单元中存储分支电路块所得到的数据以及被输入了该数据的子电路块的标识符,标识符与数据相关联;和使得可编程逻辑电路在处理存储单元中所存储的数据时,处理与与正在可编程逻辑电路中运行的子电路块的标识符相同的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
在本发明的以下详述中,结合附图具体阐述了本发明的其他目的、特征和优点,或从中可以看出本发明的其他目的、特征和优点。


图1是根据第一实施例的可编程逻辑电路装置的框图;图2是在根据第一实施例的可编程逻辑电路装置中输入/输出数据存储单元的内部配置和控制器的部分内部配置的框图;图3示出了在根据第一实施例的可编程逻辑电路装置中含有分支处理的目标电路中所进行的流水线处理的一个例子;图4是在根据第一实施例的可编程逻辑电路装置中所进行的电路块确定处理的流程图;图5是在根据第一实施例的可编程逻辑电路装置中分支处理存储器上所进行的数据处理的流程图;图6A示出了存储区中所存储的数据的一个例子;图6B示出了图6A中所示的存储器的更新结果;图7示出了在根据第二实施例的可编程逻辑电路装置中含有分支处理的目标电路中所进行的流水线处理的一个例子;图8A示出了图7中所示的存储区中所存储的数据的一个例子;图8B示出了分支后在电路块C3中所启动的一连串顺序处理所处理的数据的一个例子;图8C示出了分支后在电路块C5中所启动的一连串顺序处理所处理的数据的一个例子;图8D示出了按编号递减次序重新排列的数据的一个例子;图9示出了在根据第三实施例的可编程逻辑电路装置中含有分支处理的目标电路中所进行的流水线处理的一个例子;
图10A示出了分支后输入到电路块C3中的数据的一个例子;图10B示出了分支后输入到电路块C5中的数据的一个例子;图11是可编程逻辑电路(DPGA)的功能性框图;图12是起电路A作用的可编程逻辑电路装置的示意性框图;图13是起电路B作用的可编程逻辑电路装置的示意性框图;图14是起电路C作用的可编程逻辑电路装置的示意性框图;图15是起电路D作用的可编程逻辑电路装置的示意性框图;图16是可编程逻辑电路的内部配置的框图;和图17是图16中所示的可编程逻辑电路操作期间重配置过程的流程图。
具体实施例方式
下面,将描述可以动态重配置的普通可编程逻辑电路装置中所进行的简单流水线处理。
图11是普通可编程逻辑电路的功能性框图。在图11所示的例子中,在某一可编程逻辑电路装置1000中进行包括从步骤A到步骤D的四个步骤的简单流水线处理。
通常,象这样含有不同步骤的一连串处理可以容易地利用包括与各个步骤相关的专用电路A、B、C和D的专用电路群1100与临时存储各个专用电路的输入/输出的先进先出(FIFO)存储器1111至1115的组合来实现。然而,在图11所示的可编程逻辑电路装置1000中,这四个专用电路利用包括可编程逻辑电路1010以及电路信息A、B、C和D的可编程逻辑电路装置1000来实现。在此假定用一个可编程逻辑电路1010来简化描述。
可编程逻辑电路1010是DPGA,它是一种可动态重配置的逻辑电路。可编程逻辑电路1010根据外部设备所提供的电路信息实现任意逻辑电路。例如,如果提供了电路信息A,那么可编程逻辑电路1010起电路A(电路块A)的作用。如果提供了电路信息B,那么可编程逻辑电路1010起电路B(电路块B)的作用。如果提供了电路信息C,那么可编程逻辑电路1010起电路C(电路块C)的作用。如果提供了电路信息D,那么可编程逻辑电路1010起电路D(电路块D)的作用。
一般而言,当提供了电路信息X时,可编程逻辑电路1010起电路X(电路块X)的作用。换言之,可编程逻辑电路1010起到与提供给可编程逻辑电路1010的电路信息相应的电路(电路块)的作用。
可编程逻辑电路1010的电路配置可以重配置。改变提供给可编程逻辑电路1010的电路信息可以改变可编程逻辑电路1010的电路配置。例如,如图12中所示,可编程逻辑电路1010根据电路信息A可以起电路A的作用。如果提供了电路信息B,那么可编程逻辑电路1010起电路B的作用,如图13中所示。如果为可编程逻辑电路1010提供了电路信息C或D,可编程逻辑电路1010可以起电路C或电路D的作用,如图14或15中所示。
换言之,如图12-15所示,可以使可编程逻辑电路1010有时起电路A的作用,有时电路B的作用,有时起电路C的作用,而有时起电路D的作用。因此,有时只进行电路A中的处理而停止其他电路(B-D)中的处理。因此,当即刻改变可编程逻辑电路1010中所实现的电路时,执行步骤A、B、C和D中的处理。
如图12-15所示,可编程逻辑电路装置1000还包括FIFO切换器1020。为了改变可编程逻辑电路1010中所实现的电路,FIFO切换器1020改变与可编程逻辑电路1010连接的FIFO存储器。例如,当使可编程逻辑电路1010起电路C的作用时,FIFO切换器1020将FIFO 1113连接到可编程逻辑电路1010的输入端并将FIFO 1114连接到输出端。当使可编程逻辑电路1010起电路D的作用时,FIFO切换器1020将FIFO1114连接到可编程逻辑电路1010的输入端并将FIFO 1115连接到输出端。
使可编程逻辑电路1010起电路A、B、C和D的作用的次序可以预先确定,或者可以动态确定。
图16是可编程逻辑电路1010的内部配置的框图。可编程逻辑电路1010包括多个单元块2000和多个连接在单元块之间的单元块间连接器2010。每个单元块2000包括对输入数据进行逻辑操作的LUT 2001和当将LUT 2001的计算结果输出到另一个单元块时为该计算结果提供同步的D触发器2002。
每个单元块2000还包括存储多个电路信息段的随机存取存储器(RAM)2003和切换提供给LUT 2001的电路信息段的切换器2004。可编程逻辑电路1010上所配置的单元电路的电路信息包括每个单元块2000的电路信息段。通常,RAM 2003为互不相同的单元电路存储电路信息段,但RAM 2003还可以为同一单元电路存储电路信息段。
每个单元块2000还包括当切换提供给LUT 2001的电路信息段时保存和恢复D触发器2002中的状态信息段的RAM 2005和切换所保存和恢复的状态信息段的切换器2006。可编程逻辑电路1010上所配置的单元电路的状态信息包括每个单元块2000的状态信息段。通常,RAM2005为互不相同的单元电路存储状态信息段,但RAM 2005还可以为同一单元电路存储状态信息段。
每个单元块间连接器2010包括根据关于单元块之间的连接关系的电路信息段将单元块2000的输出输出到不同单元块2000的连接器2011,存储多个电路信息段以规定单元块之间的连接关系的RAM2012,和切换提供给连接器2011的电路信息段的切换器2013。可编程逻辑电路1010上所配置的单元电路的电路信息还包括每个单元块间连接器2010的电路信息段。通常,RAM 2012为互不相同的单元电路存储电路信息段,但RAM 2012还可以为同一单元电路存储电路信息段。
RAM 2003接收多个来自外部设备的关于逻辑计算的电路信息段,并存储这些电路信息段。RAM 2012接收多个来自外部设备的关于单元块之间的连接关系的电路信息段,并存储这些电路信息段。RAM 2005与外部设备交换多个状态信息段。切换器2004、2006和2013每个都接收来自外部设备的控制信号并执行切换操作。
在上述说明中,LUT 2001执行逻辑操作。然而,LUT 2001还可以执行算术运算和简单程序。
图17是可编程逻辑电路1010操作期间重配置过程的流程图。这里,假定重配置的控制由一个置于可编程逻辑电路1010之外的控制器(未示出)来执行。
该控制器针对可编程逻辑电路1010上的每个单元块2000将与随后要操作的单元电路相应的电路信息段2003-2和电路信息段2012-2从外部设备分别提供给RAM 2003和RAM 2012,并针对可编程逻辑电路1010上的每个单元块间连接器2010将与随后要操作的单元电路相应的状态信息段2005-2从外部设备提供给RAM 2005(步骤S2101)。
控制器停止向可编程逻辑电路1010提供时钟信号以停止处理(步骤S2102)。
控制器将与随后要操作的电路相应的FIFO(未示出)连接到可编程逻辑电路1010(步骤S2103)。
控制器向切换器2006发送一个控制信号以将D触发器2002中所保持的状态信息段保存到RAM 2005中(步骤S2104)。所保存的状态信息段作为状态信息段2005-1存储在RAM 2005中。
控制器将电路信息段写入到LUT 2001中并将状态信息段写入到D触发器2002中(步骤S2105)。具体地说,控制器向切换器2004发送一个控制信号。切换器2004将关于随后要操作的电路的配置的电路信息段2003-2从RAM 2003复制到LUT 2001中。控制器向切换器2013发送一个控制信号。切换器2013将关于随后要操作的电路的连接关系的电路信息段2012-2从RAM 2012复制到连接单元2011中。控制器向切换器2006发送一个控制信号。切换器2006在D触发器2002上恢复与随后要操作的电路相应的状态信息段2005-2。
连接器恢复提供时钟信号(步骤S2106)。必要的话,步骤S2104中保存在RAM 2005中的状态信息段2005-1可以存储到外部存储器(未示出)中(步骤S2107)。
上述过程实现了逻辑配置的重配置。如果必要的数据已存储在RAM 2003、2005和2012中,那么可以省略步骤S2101。以上描述了当进行简单流水线处理时所完成的可编程逻辑电路装置1000的基本操作。
下面,将参照附图详述根据本发明的可编程逻辑电路装置和可编程逻辑电路重配置方法的典型实施例。
根据第一实施例的可编程逻辑电路装置利用可编程逻辑电路配置了一种涉及分支处理的目标电路。具体地说,本装置在可编程逻辑电路上通过动态切换通过划分目标电路所得到的电路块来配置目标电路。本装置的基本配置和基本操作遵循DPGA。特别地,根据第一实施例的可编程逻辑电路装置具有以下特性为要传送给分支目的地的电路块的数据提供了该电路块的标识符,并且用该标识符作为关键字来优先处理要传送给当前配置在可编程逻辑电路上的电路块(以下称为“当前电路块”)的数据。这里,目标电路是指由多个电路块构成的逻辑电路,因而它是可编程逻辑电路装置所提供的功能性电路。
图1是根据第一实施例的可编程逻辑电路装置的框图。图1中,可编程逻辑电路装置100包括可编程逻辑电路10、控制器20、输入/输出数据存储单元30、状态信息存储单元40和电路块信息存储单元50。
可编程逻辑电路10是以DPGA提供的集成电路。电路块信息存储单元50存储可编程逻辑电路10上所配置的各个电路块的电路信息。具体地说,为每个电路块安排和存储分别提供给可编程逻辑电路10中的多个逻辑块的LUT信息。
状态信息存储单元40存储可编程逻辑电路10上所配置的各个电路块的状态信息。具体地说,为每个电路块安排和存储可编程逻辑电路10中的多个逻辑块中所含的各个触发器的状态。由于状态信息存储单元40,在可编程逻辑电路10上可以配置特定状态的电路块。
输入/输出数据存储单元30存储输入到可编程逻辑电路10的数据和从可编程逻辑电路10输出的数据。换言之,输入/输出数据存储单元30起到了在流水线处理中的电路块之间进行连接的接口的作用。具体地说,输入/输出数据存储单元30包括用作分支处理的分支处理存储器31,还包括用作不含分支处理的处理(以下称为“顺序处理”)的顺序处理存储器32。更具体地说,顺序处理存储器32存储输入到进行顺序处理的电路块的数据或从该电路块输出的数据。分支处理存储器31存储从含有分支处理的电路块输出的数据。顺序处理存储器32还存储从本可编程逻辑电路装置100的外部输入到可编程逻辑电路10所实现的目标电路的数据和从该目标电路输出到可编程逻辑电路装置100的外部的数据。
控制器20根据规定流水线处理的预定程序进行以下处理停止可编程逻辑电路10的操作;将状态信息保存在状态信息存储单元40中;从电路块信息存储单元50和状态信息存储单元40中获得随后要配置的电路块的电路块信息和状态信息,以配置一个新电路块;切换分支处理存储器或顺序处理存储器;和恢复可编程逻辑电路10的操作。
图2是输入/输出数据存储单元30的内部配置和控制器20的部分内部配置的框图。分支处理存储器31包括逻辑上分为N个存储区60-1至60-N的RAM。这里,N表示目标电路中所含的分支处理个数(即含有分支处理的电路块个数)。顺序处理存储器32包括FIFO存储器70-1至70-M、用于外部输入的FIFO存储器71和用于外部输出的FIFO存储器72。这里M表示进行顺序处理的电路块个数。
图3示出了在根据第一实施例的可编程逻辑电路装置中含有分支处理的目标电路的流水线处理的一个例子。图3中,可编程逻辑电路装置100在可编程逻辑电路10上配置处于流水线处理的第一阶段的电路块C1。此时,输入存储器选择器21将用于外部输入的FIFO存储器71连接到电路块C1的输入端口,而输出存储器选择器23将用于顺序处理-A的FIFO存储器70-1连接到电路块C1的输出端口。结果,电路块C1对FIFO存储器71中所存储的数据进行电路块C1特有的顺序处理,并将其结果输出到FIFO存储器70-1。
可编程逻辑电路装置100在可编程逻辑电路10上配置处于流水线处理的第二阶段的电路块C2。此时,输入存储器选择器21将用于顺序处理-A的FIFO存储器70-1连接到电路块C2的输入端口,而输出存储器选择器23将用于分支处理-A的RAM中的存储区60-1连接到电路块C2的输出端口。结果,电路块C2对FIFO存储器70-1中所存储的数据进行电路块C2特有的分支处理,并将其结果与指示分支目的地的电路块的标识符一起输出到RAM中的存储区60-1。
分支处理数据管理单元22获取位于RAM中的存储区60-1的头指针中的数据以及所存储的与该数据相关联的电路块标识符,并在可编程逻辑电路10上配置该标识符所指示的电路块。例如,如果电路块标识符指示电路块C3,那么在可编程逻辑电路10上配置电路块C3。此时,输出存储器选择器23将用于顺序处理-B的FIFO存储器70-2连接到电路块C3的输出端口,而分支处理数据管理单元22以适当的定时将位于RAM中的存储区60-1的头指针中的数据发送到电路块C3的输入端口。如果电路块标识符指示电路块C5,那么同样地在可编程逻辑电路10上配置电路块C5。以分支处理为条件的其他处理(可以是顺序处理也可以是分支处理)可以在该分支处理之后进行。在图3所示的例子中,分支到电路块C3,然后利用电路块C3中所进行的处理的结果来进行其他顺序处理-C。
如果分支后完成了至少一连串的顺序处理,那么可编程逻辑电路100在可编程逻辑电路10上配置随后要执行的电路块C6。此时,输入存储器选择器21将分支后处于多个连串顺序处理的最后阶段的FIFO存储器70-3和70-4连接到电路块C6的输入端口,而输出存储器选择器23将用于外部输出的FIFO存储器72连接到电路块C6的输出端口。结果,电路块C6对FIFO存储器70-3和70-4中所存储的数据进行电路块C6特有的顺序处理,并将其结果输出到用于外部输出的FIFO存储器72。用于外部输出的FIFO存储器72中所存储的数据以预定定时由与可编程逻辑电路装置100连接的外部装置取出。
如上所述,控制器20基本上根据图3中所示的流水线处理的次序来切换电路块。然而,在将给定数量或更多的数据作为外部输入被输入到可编程逻辑电路装置100后,根据电路块之间的输出数据数量以及处理时间的不同,数据被相继累积到输入/输出数据存储单元30中。换言之,将导致存在许多等待处理的数据的状态,每个电路块的吞吐量下降。如果只是按分支处理后输出分支处理的结果的次序来确定电路块切换,那么切换将频繁地发生。这种电路块切换次数的增加将降低整个可编程逻辑电路装置100的吞吐量。如果存在能采取大量分支目的地的分支处理,那么这一问题尤其突出。
因此,在根据本实施例的可编程逻辑电路装置100中的控制器20监视输入/输出数据存储单元30,切换电路块,以便将存储了至少预定数量的数据的RAM中的存储区或FIFO存储器优先连接到可编程逻辑电路10。在处理分支处理存储器31中所存储的数据时,优先处理RAM中各存储区所存储的数据当中与被设为分支目的地的当前电路块具有相同分支目的地的数据。
图4是在根据第一实施例的可编程逻辑电路装置100中所进行的电路块确定处理的流程图。可编程逻辑电路装置100以预定定时定期监视分支处理存储器31中的RAM中的各个存储区和顺序处理存储器32中的FIFO存储器(步骤S101)。作为监视结果,确定满足预定条件的RAM存储区或FIFO存储器(步骤S102)。满足预定条件的RAM存储区例如是存储了至少预定数量的数据的存储区,或者是存储了至少预定数量的分配有相同标识符的数据的存储区。满足预定条件的FIFO存储器例如是存储了至少预定数量的数据的FIFO存储器。即使不存在满足预定条件的存储区或FIFO存储器,也确定最接近该条件的存储区或FIFO存储器。
如果在步骤S102中确定了FIFO存储器(步骤S103中为“是”),那么确定要与作为输入存储器的FIFO存储器连接的电路块(步骤S104)。如果所确定的电路块与当前电路块不同(步骤S105中为“是”),那么将可编程逻辑电路10上所配置的电路块切换到步骤S104中所确定的电路块(步骤S106)。如果所确定的电路块与当前电路块相同(步骤S105中为“否”),那么再监视分支处理存储器31中的RAM存储区和顺序处理存储器32中的FIFO存储器(步骤S101)。如果在步骤S102中确定了RAM中的存储区(步骤S103中为“否”),那么执行用于分支处理存储器31的数据处理(步骤S110)。
图5是在根据第一实施例的可编程逻辑电路装置中分支处理存储器上所进行的数据处理的流程图。如果确定了满足预定条件的RAM存储区(图4中的步骤S102),那么分支处理数据管理单元22判断当前电路块的标识符是否在该存储区中(步骤S201)。图6A示出了存储区中所存储的数据的一个例子。如图6A中所示,每个存储区都有指针所标识的记录。每个记录都有存储电路块的标识符的标识符字段和存储分支处理所处理的数据的数据字段。图6A中,指针“addr1”是头指针。
含有分支处理的电路块产生一对标识符和数据。具体地说,含有分支处理的电路块为分支处理输出的数据分配一个指示分支处理所确定的分支目的地的电路块标识符,并将这一对数据和电路块标识符写到空闲的并且指针最接近头指针的记录中。
如果在步骤S201中确定当前电路块的标识符在该存储区中,那么进一步判断在与当前电路块连接的输出存储器(输出FIFO)中是否有至少预定量的空闲空间(步骤S202)。如果有至少预定量的空闲空间(步骤S202中为“是”),那么按离头指针距离递增的次序从该存储区中取出与该标识符相应的数据即分配有当前电路块的标识符的数据,并将该数据提供给当前电路块(步骤S203)。删除所取出数据所属的记录,并更新主存储器,以便按从头指针开始的次序为存储区填充剩余的记录(步骤S204)。图6B示出了更新图6A中所示的存储区所得到的结果。在图6A和6B所示的例子中,当前电路块用标识符SB来标识。
另一方面,如果在步骤S201中确定当前电路块的标识符不在该存储区中,那么将可编程逻辑电路10上所配置的电路块切换到具有位于该存储区中的头指针上的标识符的电路块(步骤S211)。在图6B所示的例子中,将该电路块切换到标识符SE所标识的电路块。电路块切换后,再一次进行步骤S202中的判断。
如果在步骤S202中确定没有至少预定量的空闲空间(步骤S202中为“否”),那么将可编程逻辑电路10上所配置的电路块切换到具有该存储区中所存储的不同标识符的一个电路块(步骤S212)。作为不同的标识符,例如可以选择存储区中最多的标识符。电路块切换后,再一次进行步骤S202中的判断。
如上所述,根据第一实施例的可编程逻辑电路装置将分支处理后得到的数据和指示分支目的地的电路块的标识符成对地存储到分支处理存储器31中,并且优先处理分配有与当前电路块的标识符相同的标识符的数据。换言之,优先处理要输入到当前电路块的输入端口的数据。结果,可以将分支处理所导致的电路块切换的次数减至最少,同时可以提高整个可编程逻辑电路装置100的吞吐量。
根据第二实施例的可编程逻辑电路装置具有以下特性为要传送给分支目的地的电路块的数据提供了该电路块的标识符和指示输出次序的编号,并且用该标识符和编号作为关键字来优先处理要传送给当前电路块的数据。
根据第二实施例的可编程逻辑电路装置的配置类似于图1和2中所示的装置的配置。不过,分支处理数据管理单元所进行的处理与第一实施例中分支处理数据管理单元22所进行的处理有部分不同。具体地说,根据第二实施例的可编程逻辑电路装置中的分支处理数据管理单元除了第一实施例中分支处理数据管理单元22的功能之外,还在存储数据和标识符时将指示与数据和标识符相关联的数据输出次序的编号存储在分支处理存储器31中。指示数据输出次序的编号可以由执行分支处理的电路块来提供,而不用分支处理数据管理单元22来提供。指示数据输出次序的编号可以是单调递增的序号,也可以是预定数值范围内的循环编号。
图7示出了在根据第二实施例的可编程逻辑电路装置中含有分支处理的目标电路的流水线处理的一个例子。图7中所示的流水线处理与图3中所示的流水线处理的不同之处在于用于分支处理-A的RAM中的第一存储区60-1的内容,在于电路块C4和C5输出的数据被存储在用于分支处理-A的RAM中的第二存储区60-2中,还在于存储区60-2中所存储的数据根据与那些数据相关联的编号被重新排列并且结果得到的数据被存储在FIFO存储器70-5中。
换言之,相对于根据第一实施例的可编程逻辑电路装置而言,根据第二实施例的可编程逻辑电路装置具有以下特性确保了分支处理后数据的处理次序。
图8A示出了图7中所示的存储区60-1中所存储的数据的一个例子。如图8A中所示,每个存储区都有指针所标识的记录。每个记录都有指示数据输出次序的编号字段、存储电路块标识符的标识符字段和存储分支处理所处理的数据的数据字段。图8B示出了分支后从电路块C3开始的一连串顺序处理所处理的数据的一个例子。图8C示出了分支后从电路块C5开始的一连串顺序处理所处理的数据的一个例子。如图8B和8C中所示,每个电路块都可以输入一对编号和数据,并以类似的成对形式输出其处理结果。
图8B和8C中所示的数据被存储在用于分支处理-A的RAM中的第二存储区60-2中,并按编号次序重新排列。图8D示出了其结果(存储在FIFO存储器70-5中)。
如上所述,根据第二实施例的可编程逻辑电路装置将分支处理后得到的数据、指示数据输出次序的编号和指示分支目的地的电路块的标识符按组形式存储到分支处理存储器31中,优先处理所存储的数据当中分配有与当前电路块的标识符相同的标识符的数据,并且在分支处理后的一连串顺序处理之后按编号次序重新排列那些数据。结果,除了上述第一实施例的效果之外,还可以在分支处理前后确保数据输出次序。
可以将用于存储分支处理的层次号的层次字段加到分支处理存储器31中的每一存储区的记录中。因此,即使在分支处理后在一连串顺序处理中再一次出现分支处理,也能确保数据输出次序。此时,层次号由分支处理数据管理单元22产生。
根据第三实施例的可编程逻辑电路装置是根据第二实施例的可编程逻辑电路装置的一种改进例子。根据第三实施例的可编程逻辑电路装置具有以下特性将要传送到分支目的地的电路块的数据和指示数据输出次序的编号的组合暂时存储在用于分支目的地的电路块的FIFO存储器中。
图9示出了在根据第三实施例的可编程逻辑电路装置中含有分支处理的目标电路的流水线处理的一个例子。图9与图7的不同之处在于将存储用于分支处理-A的RAM中的存储区60-1中所存储的数据当中与作为分支目的地的电路块C3相关联的数据(即数据和数据输出次序的组合)的FIFO存储器70-12连接到分支后所执行的电路块C3的输入端口;以及将存储用于分支处理-A的RAM中的存储区60-1中所存储的数据当中与作为分支目的地的电路块C5相关联的数据(即数据和数据输出次序的组合)的FIFO存储器70-14连接到分支后所执行的电路块C5的输入端口。图9中,FIFO 70-13的功能类似于图7中所示的FIFO70-2的功能。
例如,如果图8A中所示的数据已存储在图9中的存储区60-1中,那么将图10A中所示的数据存储在FIFO存储器70-12中,并将图10B中所示的数据存储在FIFO存储器70-14中。换言之,电路块C3输入图10A中所示的数据,并通过FIFO 70-13从电路块C4输出图8B中所示的数据。电路块C5输入图10B中所示的数据,并输出图8C中所示的数据。将这些输出数据存储在用于分支处理-A的RAM中的第二存储区60-2中,并将按数据输出次序重新排列所得到的结果存储在FIFO存储器70-5中。
因此,在第三实施例中,同样可以带来如第二实施例中那样的效果。
本发明并不局限于上述具体实施例。熟练技术人员可以容易地得出更多的效果和改进型例子。换言之,在不背离根据附属权利要求及其等价要求的本发明的思想的前提下,可以对根据本发明的实施例作出各种改变。
如上所述,根据本发明的可编程逻辑电路装置和可编程逻辑电路重配置方法可用于在可编程逻辑电路上动态重配置含有许多分支处理的目标电路,尤其适合于提供一种执行数据通信处理和图像压缩处理的电路。
熟练技术人员还容易想到另外一些优点和修改。因此,从更广泛的意义上来说,本发明并不局限于本文所示和所述的具体细节和典型实施例。因此,在不背离附属权利要求及其等价要求所规定的总体发明概念的思想或范围的前提下,可以作出多种修改。
权利要求
1.一种可编程逻辑电路装置,包括动态切换和操作多个电路块的可编程逻辑电路,这些电路块包括执行分支处理的分支电路块和有选择地对分支电路块所得到的数据进行多种处理的多个子电路块;存储单元,它存储分支电路块所得到的数据以及被输入了该数据的子电路块的标识符,所述标识符与所述数据相关联;和控制器,它使得可编程逻辑电路处理在存储单元中所存储的数据当中与与正在可编程逻辑电路中运行的子电路块的标识符相同的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
2.如权利要求1所述的可编程逻辑电路装置,其中存储单元还存储指示数据从存储单元的输出次序的编号;和控制器根据这些编号,将所述分支电路块所进行的分支处理后所执行的其他子电路块和其他分支电路块中至少一个所得到的数据重新排列。
3.如权利要求1所述的可编程逻辑电路装置,其中,如果正在可编程逻辑电路中运行的子电路块的标识符没有存储在存储单元中,那么控制器将使由存储在存储单元的预定位置的标识符所指示的子电路块在可编程逻辑电路中运行。
4.如权利要求1所述的可编程逻辑电路装置,其中控制器计算存储单元中所存储的数据的数量;和如果所述数据的数量超过预定数量,那么控制器使得可编程逻辑电路处理与存储单元中所存储的标识符当中的、正在可编程逻辑电路中运行的子电路块的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
5.如权利要求1所述的可编程逻辑电路装置,其中控制器计算存储单元中所存储的数据的数量;和如果这些数据当中与同一标识符相关联的数据的数量超过预定数量,那么控制器使得可编程逻辑电路处理与存储单元中所存储的标识符当中的、正在可编程逻辑电路中运行的子电路块的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
6.如权利要求1所述的可编程逻辑电路装置,其中,存储单元包括用于分支电路块的随机存取存储器以及用于与分支电路块不同的电路块的先进先出存储器。
7.一种重配置用于动态切换和操作多个电路块的可编程逻辑电路的方法,这些电路块包括执行分支处理的分支电路块和有选择地对分支电路块所得到的数据进行多种处理的多个子电路块,该方法包括在存储单元中存储分支电路块所得到的数据以及被输入了该数据的子电路块的标识符,所述标识符与所述数据相关联;和使得可编程逻辑电路处理在存储单元中所存储的数据当中与与正在可编程逻辑电路中运行的子电路块的标识符相同的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
8.如权利要求7所述的方法,还包括根据指示数据输出次序的编号,将分支电路块所进行的分支处理后所执行的其他子电路块和其他分支电路块中至少一个所得到的数据重新排列。
9.如权利要求7所述的方法,还包括如果正在可编程逻辑电路中运行的子电路块的标识符不在存储单元所存储的标识符中,使由存储在存储单元的预定位置的标识符所指示的子电路块在可编程逻辑电路中运行。
10.如权利要求7所述的方法,还包括如果数据的数量超过预定数量,那么使得可编程逻辑电路处理与存储单元中所存储的标识符当中的、正在可编程逻辑电路中运行的子电路块的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
11.如权利要求7所述的方法,还包括如果所述数据当中与同一标识符相关联的数据的数量超过预定数量,那么使得可编程逻辑电路处理与存储单元中所存储的标识符当中的、正在可编程逻辑电路中运行的子电路块的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
12.如权利要求7所述的方法,其中,存储单元包括用于分支电路块的随机存取存储器以及用于与分支电路块不同的电路块的先进先出存储器。
全文摘要
一种可编程逻辑电路装置包括动态切换和操作多个电路块的可编程逻辑电路。这些电路块包括执行分支处理的分支电路块和有选择地对分支电路块所得到的数据进行多种处理的多个子电路块。该装置还包括存储单元,它存储分支电路块所得到的数据以及被输入了该数据的子电路块的标识符。标识符与数据相关联。该装置还包括控制器,它使得可编程逻辑电路在处理存储单元中所存储的数据时,处理与与正在可编程逻辑电路中运行的子电路块的标识符相同的标识符相关联的数据优先于处理与其他子电路块的标识符相关联的数据。
文档编号H03K19/173GK1725642SQ200510066820
公开日2006年1月25日 申请日期2005年4月26日 优先权日2004年7月20日
发明者菅野伸一, 樽家昌也, 大根田拓, 小川陆 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1