CN100545827C - 可重配置电路及可重配置电路的控制方法 - Google Patents
可重配置电路及可重配置电路的控制方法 Download PDFInfo
- Publication number
- CN100545827C CN100545827C CNB2004800429986A CN200480042998A CN100545827C CN 100545827 C CN100545827 C CN 100545827C CN B2004800429986 A CNB2004800429986 A CN B2004800429986A CN 200480042998 A CN200480042998 A CN 200480042998A CN 100545827 C CN100545827 C CN 100545827C
- Authority
- CN
- China
- Prior art keywords
- configuration information
- reconfigurable circuit
- configuration
- pipeline processes
- data
- 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
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)
- Advance Control (AREA)
- Image Processing (AREA)
- Microcomputers (AREA)
Abstract
为了提高处理元件实现流水线处理的效率并改善处理性能。处理元件(PE)(4a)~(4d)的电路构成可根据配置信息来重新构成,进行规定的处理。存储部(1a)、(1b)存储PE(4a)~(4d)的配置信息。存储切换部(2)切换多个存储部(1a)、(1b)来存储将要由PE(4a)~(4d)处理的流水线处理(5)的各段的配置信息。配置信息输出部(3)切换多个存储部(1a)、(1b)来将存储部(1a)、(1b)的配置信息输出给多个PE(4a)~(4d)。
Description
技术领域
本发明涉及可重配置电路及可重配置电路的控制方法,特别是涉及具有多个处理元件的可重配置电路及可重配置电路的控制方法,所述多个处理元件的构成可根据配置信息而重新构成。
背景技术
以往存在具有可重配置的计算器组的可重配置电路。可重配置电路能够根据配置数据来构成计算器群组并进行各种处理。当不能在这样的可重配置电路中实现单个流水线处理时,提出了通过按流水线段来划分可重配置电路并顺次切换各个段的处理来实现的方法。(例如,参考非专利文献1)。
图10是以往的可重配置电路的电路框图。
如图所示,可重配置电路具有处理元件(PE:Processing Element)101a~101d、以及网络102。
每个PE101a~101d例如都具有多个ALU(Arithmetic Logical Unit:算术逻辑单元)、乘法器、加法器。根据配置数据来配置PE101a~101d每一个的ALU、乘法器、加法器,以使每一个进行流水线处理的1段的处理。
网络102根据配置数据而连接PE101a~101d,使PE101a~101d能够进行流水线处理。
这里,所谓流水线处理是指对顺次输入的数据顺次进行计算的处理。例如,由有限脉冲响应滤波器(finite impulse response filter)表示的乘法和累加运算是对顺次输入的数据顺次进行乘法和累加运算的流水线处理。另外,所谓操作是指顺次进行的计算中的1个计算。例如,如果是上述的乘法和累加运算,则对顺次输入的数据顺次进行乘法和累加运算,其中的1次乘法和累加运算即为1个操作。另外,流水线处理分为多个段,在1个段中进行1个或2个以上的操作。
图11示出了流水线处理。
图中所示的流水线处理111是包括操作OP1~OP8的单个流水线处理。图中所示的箭头表示数据的流向,并假定将要处理的数据顺次输入所述操作OP1中。如果以上述的乘法和累加运算为例来进行说明,则在操作OP1~OP8中,对输入给操作OP1的数据进行8段的乘法和累加运算,OP1~OP8的每个操作都是单个的乘法和累加运算操作。
说明在图10的可重配置电路中实现流水线处理111的情形。如上所述,将流水线处理的1段的操作分配给图10所示的可重配置电路的各个PE101a~101d。对于8段的操作OP1~OP8,由于PE101a~101d为4个,所以在每个循环改变操作OP1~OP8向PE101a~101d的分配来进行流水线处理。
图12示出了图10的可重配置电路中的图11的流水线处理的流程。
图中所示的四边形示出了图10的PE101a~101d。另外,在四边形中示出了分配给PE101a~101d的操作OP1~OP8。要处理的数据被顺序输入所述操作OP1中。
在循环1中,向PE101a分配操作OP1并输入数据。在循环2中,将操作OP2分配给PE101b。此时,向PE101b输入在循环1中被处理的操作OP1的数据,向操作OP1输入接下来的数据。顺次在循环3、4中将操作OP3、OP4分配给PE101c、101d,并输入前段(前循环)的操作OP2、OP3的数据。另外,顺次向操作OP1输入数据。
在循环5中,由于不存在分配操作OP5的新的PE,所以将操作OP5分配给PE101a。然后,将由PE101d(操作OP4)处理的数据输出给PE101a(操作OP5)。
在循环6~8中,顺次向PE101b~101d分配操作OP6~OP8,并输入前段(前循环)的操作OP5~OP7的数据。在循环5~8中不输入新的数据。这是因为操作OP1~OP4没有被分配给PE101a~101d从而无法进行流水线处理的缘故。虽然图中没有示出,但在循环9中,将操作OP1分配给PE101a,并输入接下来的数据。
这样,划分为PE101a~101d并顺次切换流水线处理段来实现的方法相对于向PE101a~101d中一次性地实现可实现的流水线段的方法而言,处理时间变短。这是因为如下原因:在一次性实现的方法中,在实现的流水线段的处理完成后,必须将处理结果临时存储到存储装置中,然后再在PE101a~101d中实现后续的流水线段。与此相对,在逐次切换各段的流水线处理来实现的方法中,由于不将处理结果临时存储到存储装置中,所以处理时间变短。
下面说明在流水线处理的某个段中必须同时进行多个操作的情况。此时,需要将多个流水线段同时分配给处理元件。
图13是将多个流水线段同时分配给处理元件时的流水线处理的示意图。
在图中所示的流水线处理112中,在第1段处理操作OP1、OP2。在第2段处理操作OP3、OP4。之后,顺次在各段中处理操作OP5~OP7。图中所示的箭头表示数据的流向,并假定将要处理的数据顺次输入操作OP1、OP2。说明在图10的可重配置电路中实现流水线处理112的情形。
图14示出了图10的可重配置电路中的图13的流水线处理的流程。
图中所示的四边形表示图10的PE101a~101d。另外,在该四边形中示出了分配给PE101a~101d的操作OP1~OP7。将要处理的数据首先顺次输入操作OP1、OP2。None表示没有分配操作的状态。
图13所示的流水线处理112的第1段必须进行操作OP1、OP2这两个操作。另外,流水线处理112的第2段必须进行操作OP3、OP4这两个操作。因此,图10所示的可重配置电路需要如图14所示那样配置PE101a、101b的组合和PE101c、101d的组合以使每个组合可同时进行两个操作。
当为循环1时,向PE101a、101b分配操作OP1、OP2并分别输入数据。当为循环2时,将操作OP3、OP4分配给PE101c、101d。此时,向PE101c、101d输入在循环1中经处理的操作OP1、OP2的数据。另外,向操作OP1、OP2输入接下来的数据。当为循环3~5时,顺次向PE101a、101b和PE101c、101d分配操作OP5~OP7,并输入前段的数据。
如图13所示,由于操作OP5~OP7必须一段一个地进行处理,所以在每个PE101a、101b的组合和PE101c、101d的组合中只能实现一个操作。这是因为如上述那样PE101a、101b的组合和PE101c、101d的组合被配置成可同时进行两个处理的缘故。因此,PE101a、101b的组合和PE101c、101d的组合中有1个处理元件为空状态(none),因此实现效率变低。
在循环6中,接在循环5之后,需要在PE101a、101b中实现操作OP7。其原因在于:在循环1中输入的数据在循环5中已进行操作OP7的处理并结束,但在循环2中输入的数据在循环5中仅进行到操作OP6为止的处理,还需要在循环6中进行操作OP7的处理。另外,在循环3~循环6中不输入数据,可以接着输入数据的是接下来的循环7。
图15是示出图13的流水线处理的数据的输入输出定时的时序图。
图中所示的CLK表示进行操作的时序。IN表示向操作OP1、OP2输入的数据的时序。OUT表示从操作OP7输出的数据的时序。
如图所示,在CLK1、2(CLK对应于图14所示的循环)向操作OP1、OP2输入数据。在CLK1输入的数据如利用图14进行说明的那样在CLK5进行操作OP7的处理。因此,在CLK1输入的数据如图15所示那样在CLK6被输出。在CLK2输入的数据如利用图14进行说明的那样在CLK6进行操作OP7的处理。因此,在CLK2输入的数据如图15所示那样在CLK7被输出。操作OP1、OP2在CLK7被再次分派到PE101a、101b中,并输入接下来的数据。
非专利文献:H.Schmit,“Incremenntal Reconfiguration for PipelinedApplications”,Proceedings of the IEEE Symposium on FPGAs for CustomComputiong Machines(FCCM),P.47-55,1997
发明内容
如上所述,当在流水线处理的某个段中同时进行多个操作时,需要同时将多个操作分配给处理元件。此时,在处理元件中实现流水线处理的实现效率降低,处理性能下降。
本发明就是鉴于以上问题而完成的,其目的在于,提供一种提高在处理元件中实现流水线处理的实现效率并改善处理性能的可重配置电路及可重配置电路的控制方法。
为了解决上述问题,本发明提供一种具有多个处理元件(PE)4a~4d的可重配置电路,所述多个处理元件(PE)4a~4d的构成通过图1所示的配置信息而重新构成,所述可重配置电路的特征在于,包括:多个存储部1a、1b,存储多个PE 4a~4d的配置信息;切换部2,切换多个存储部1a、1b来存储将要由多个PE 4a~4d处理的流水线处理5的各段的配置信息;以及配置信息输出部3,切换多个存储部1a、1b来将配置信息输出给多个PE 4a~4d。
根据该可重配置电路,具有多个存储部1a、1b,并切换多个存储部1a、1b来存储流水线处理5的各段的配置信息。然后,切换多个存储部1a、1b来向多个PE 4a~4d输出配置信息。因此,可以虚拟地将流水线处理的所有段分配给PE 4a~4d。
发明效果
在本发明的可重配置电路中,具有多个存储部,切换多个存储部来存储流水线处理的各段的配置信息。并切换多个存储部来将流水线处理的各段的配置信息输出给多个处理元件。由此,可以虚拟地将流水线处理的所有段分配给处理元件,从而可以提高处理元件实现流水线处理的效率,并改善处理性能。
通过表示作为本发明示例的优选实施方式的附图和以下的相关说明来进一步明确本发明的上述和其他目的、特征、以及优点。
附图说明
图1是可重配置电路的概要说明图;
图2是第一实施方式的可重配置电路的电路框图;
图3是配置切换部的电路框图;
图4是网络的电路框图;
图5是图2的可重配置电路中的图13的流水线处理的流程示意图;
图6是示出图2的可重配置电路中的图13的流水线处理的数据的输入输出定时的时序图;
图7是图3的配置载入部的动作的说明图;
图8是用于说明第二实施方式的流水线处理的示意图;
图9是具有触发器(flip-flop)的可重配置电路中的图8的流水线处理的流程示意图;
图10是以往的可重配置电路的电路框图;
图11是流水线处理的示意图;
图12是图10的可重配置电路中的图11的流水线处理的流程示意图;
图13是将多个流水线段同时分配给处理元件时的流水线处理的示意图;
图14是图10的可重配置电路中的图13的流水线处理的流程示意图;
图15是示出图13的流水线处理的数据的输入输出定时的时序图。
具体实施方式
以下,参照附图来详细说明本发明的原理。
图1是可重配置电路的概要说明图。
如图1所示,可重配置电路具有:存储部1a、1b,存储切换部2,配置信息输出部3,以及PE 4a~4d。另外,在图1中示出了由可重配置电路处理的流水线处理5。
存储部1a、1b存储PE 4a~4b的配置信息。PE 4a~4b根据存储部1a、1b存储的配置信息来构成电路并进行规定的处理。
存储切换部2切换存储部1a、1b来从第1段开始顺次存储要由PE4a~4d处理的流水线处理5的各段的配置信息。在流水线处理5的第1段进行操作OP1、2,在第2段进行操作OP3、4。在第3段~第5段进行操作OP5~OP7。另外,向操作OP1、OP2顺次输入数据。将促使PE 4a~4d实现操作OP1~OP7的配置信息设为OPC1~OPC7。
配置信息输出部3切换存储部1a、1b来向多个PE 4a~4d中输出存储部1a、1b中所存储的配置信息。
说明图1的动作。存储切换部2首先在存储部1a中存储流水线处理5的第一段的配置信息OPC1和OPC2,并以后交替切换存储部1a、1b来存储各段的配置信息OPC3~OPC7。另外,配置信息输出部3从存储部1a向PE 4a~4d输出配置信息,并以后交替切换存储部1a、1b来输出配置信息。
首先,存储切换部2将流水线处理5的第1段的操作OP1、OP2的配置信息OPC1、OPC2存储到存储部1a中。配置信息输出部3将存储部1a的配置信息OPC1、OPC2输出给PE 4a、4b。PE 4a、4b构成基于配置信息OPC1、OPC2的电路。由此,向操作OP1、OP2输入数据并进行处理。
然后,存储切换部2将流水线处理5的第2段的操作OP3、OP4的配置信息OPC3、OPC4存储到存储部1b中。配置信息输出部3将存储部1b的配置信息OPC3、OPC4输出给PE 4a、4b。PE 4a、4b构成基于配置信息OPC3、OPC4的电路。由此,操作OP3、OP4被处理。
另外,如流水线处理5所示,操作OP3、OP4接收来自操作OP1、OP2的数据。因此,配置信息OPC3至少具有以下连接关系:PE 4a输入自己的数据(前次处理的操作OP1的数据),并输入来自PE 4b的数据(前次处理的操作OP2的数据)。另外,配置信息OPC4具有以下连接关系:PE 4b输入自己的数据(前次处理的操作OP2的数据),并输入来自PE 4a的数据(前次处理的操作OP1的数据)。
然后,存储切换部2将流水线处理5的第3段的操作OP5的配置信息OPC5存储到存储部1a中。配置信息输出部3将存储部1a的配置信息OPC1、OPC2、OPC5输出给PE 4a~4c。PE 4a~4c构成基于配置信息OPC1、OPC2、OPC5的电路。由此,操作OP5被处理。另外,由于在PE4a、4b中构成操作OP1、OP2,所以能够将接下来的数据输入操作OP1、OP2中。
然后,存储切换部2将流水线处理5的第4段的操作OP6的配置信息OPC6存储到存储部1b中。配置信息输出部3将存储部1b的配置信息OPC3、OPC4、OPC6输出给PE 4a~4c。PE 4a~4c构成基于配置信息OPC3、OPC4、OPC6的电路。由此,操作OP6被处理。另外,由于在PE4a、4b中构成操作OP3、OP4,所以可由操作OP3、OP4处理来自在前段处理的操作OP1、OP2的数据。
然后,存储切换部2将流水线处理5的第5段的操作OP7的配置信息OPC7存储到存储部1b中。配置信息输出部3将存储部1a的配置信息OPC1、OPC2、OPC5、OPC7输出给PE 4a~4d。PE 4a~4d构成基于配置信息OPC1、OPC2、OPC5、OPC7的电路。由此,操作OP7被处理。另外,由于在PE 4a~4c中构成操作OPC1、OPC2、OPC5,所以能够将接下来的数据输入操作OP1、OP2中,并且可由操作OP5处理在前段处理的操作OP3、OP4的数据。通过重复以上的动作来进行流水线处理5。
如上所述,具有多个存储部1a、1b,并切换多个存储部1a、1b来存储流水线处理5的各段的配置信息。然后,切换多个存储部1a、1b来将配置信息输出给多个PE 4a~4d。由此,能够虚拟地将流水线处理5的所有段分配给PE 4a~4d,从而能够提高在处理元件中实现流水线处理的效率,并改善处理性能。
接着,参照附图来详细说明本发明的第一实施方式。
图2是根据第一实施方式的可重配置电路的电路框图。
如图2所示,可重配置电路具有:配置切换部10、网络20、以及PE31~34。
配置切换部10具有多个存储器。配置切换部10根据配置数据来进行后述的处理,从而切换多个存储器来存储配置数据。另外,按每个循环切换多个存储器,并且被选中的存储器中的配置数据应用到PE 31~34中。
PE 31~34中的每一个例如具有多个ALU、乘法器、加法器。PE 31~34每一个的ALU、乘法器、加法器根据配置数据而构成,以能够实现流水线处理的1个操作。
网络20根据配置数据而连接PE 31~34,以使PE 31~34进行规定的流水线处理。
对配置切换部10和网络20的详细情况进行说明。首先,详细说明配置切换部10。
图3是配置切换部的电路框图。
如图3所示,配置切换部10具有:配置存储器11、定序器12、以及配置触发部13~16。
配置存储器11存储有确定PE 31~34的构成和网络20的连接关系的配置数据。
定序器12进行根据当前从配置存储器11输出的配置数据来选定接下来输出的配置数据并向配置触发部13~16输出的控制。定序器12以任务(task)为单位进行配置数据的输出切换。
配置触发部13~16与PE 31~34对应设置。配置触发部13~16根据规定的处理来将从配置存储器11输出的配置数据输出给对应的PE 31~34和网络20。
配置触发部13具有:配置载入部13a、局部配置存储器13ba~13bf、选择器13c、以及计数器13d。另外,配置触发部14~16具有与配置触发部13相同的电路构成,因此省略对它们的说明。
配置载入部13a根据从配置存储器11输出的配置数据来进行后述的处理,并切换局部配置存储器13ba~13bf来存储配置数据。
局部配置存储器13ba~13bf存储配置数据。局部配置存储器13ba~13bf中存储的配置数据通过选择器13c而输出给PE 31。
选择器13c根据从计数器13d输出的信号来选择局部配置存储器13ba~13bf中存储的配置数据并将其输出给PE 31和网络20。
计数器13d向选择器13c输出用于控制选择器13c的输出的信号。计数器13d向选择器13c输出信号,以使存储有配置数据的局部配置存储器13ba~13bf的数据被输出给PE 31。
例如,假定在局部配置存储器13ba~13bd中,从局部配置存储器13ba开始顺次存储配置数据。假定计数器13d重复计数从1到4的数,并输出给选择器13c。选择器13c输出与1~4的数对应的局部配置存储器13ba~13bd的配置数据。由此,存储有局部配置数据的局部配置存储器13ba~13bd中的配置数据被输出给PE 31。
详细地说明网络20。
图4是网络的电路框图。
如图所示,网络20具有选择器21~28。选择器21~28的输入与连接在PE 31~34上的4根信号线相连。另外,选择器21~28的输出与PE31~34连接。选择器21~28与配置触发部13~14连接,并根据配置数据来控制输入的信号的输出。由此,可以确定PE 31~34之间的连接关系。
接着,说明在图2的可重配置电路中实现图13所示的流水线处理112的情形。图2所示的可重配置电路的PE 31~34中的每一个均构成为可以进行流水线处理112的1个操作。
图5示出了图2的可重配置电路中的图13的流水线处理的流程。
图中所示的大四边形表示图2的PE 31~34。另外,在该四边形中示出了分配给PE 31~34的操作OP1~OP7。None表示没有分配操作的状态。
小四边形通过其中所示的数字示出了图2中的PE 31~34之间的连接关系。数字1~4分别表示与PE 31~34连接。例如,在循环2的S2中所示的分配了OP3的PE 31的数字1、2表示PE 31与PE 31(自己)和PE32连接。
在图中示出了从循环1到循环5的流水线处理112的流程。各个循环中的配置面S1、S2与图3所示的配置触发部13~16的局部配置存储器对应。具体地说,配置面S1对应于局部配置存储器13ba、以及配置触发部14~16的与局部配置存储器13ba对应的局部配置存储器。配置面S2对应于局部配置存储器13bb、以及配置触发部14~16的与局部配置存储器13bb对应的局部配置存储器。
配置面S1、S2,即局部配置存储器在每次循环中进行切换,在由该配置面S1、S2所示的连接关系(小四边形中的数字)中,PE 31~34被连接。另外,在循环1中执行配置面S1,在循环2中执行配置面S2。然后,交替地切换配置面S1、S2。另外,配置面数量根据流水线处理112的段数和处理元件的数量而不同,有时为2以上。后面将详细地说明配置面数量的确定方法,在图13的流水线处理112中,两个配置面S1、S2就足够了。流水线处理112的各段的操作OP1~OP7从第1段开始顺次交替地被分配给配置面S1、S2的PE 31~34。
在如图所示的循环1中,配置面S1有效,将流水线处理112的第1段的操作OP1、OP2分别分配给PE 31、32。向操作OP1、OP2输入数据并进行处理。
在循环2中,配置面S2有效,将图13所示的流水线处理112的第2段的操作OP3、OP4分别分配给PE 31、32。此时,如小四边形所示,PE31根据配置数据而与自己以及PE 32连接。PE 32与PE 31以及自己连接。由此,向操作OP3输入在循环1中处理的操作OP1、OP2的数据。向操作OP4输入在循环1中处理的操作OP1、OP2的数据。由此,完成了图13所示的流水线处理112的第2段为止的处理。
在循环3中,配置面S1有效,将操作OP5分配给PE 33。此时,如小四边形所示,PE 33根据配置数据而与PE 31、32连接。由此,向操作OP5输入在循环2中处理的操作OP3、OP4的数据。另外,当为循环3时,向分配给PE 31、32的操作OP1、OP2输入接下来的数据。
在循环4中,配置面S2有效,将操作OP6分配给PE 33。此时,如小四边形所示,PE 33根据配置数据而与PE 33连接。由此,向操作OP6输入在循环3中处理的操作OP5的数据。
在循环5中,配置面S1有效,将操作OP7分配给PE 34。此时,如小四边形所示,PE 34根据配置数据而与PE 33连接。由此,向操作OP7输入在循环4中处理的操作OP6的数据。另外,当为循环3时,向分配给PE 31、32的操作OP1、OP2输入接下来的数据。
如上所述,对PE 31~34设置配置面S1、S2。并对配置面S1、S2交替地分配流水线处理112的各段的操作(实际上,对配置面S1、S2,交替地存储流水线处理112的各段的操作的配置数据)。然后,将配置面S1、S2中存储的配置数据交替地输出给PE 31~34,进行流水线处理112。
图6是示出图2的可重配置电路中的图13的流水线处理的数据的输入输出定时的时序图。
图6中所示的CLK表示进行操作的时序。IN表示向操作OP1、OP2输入的数据的时序。OUT表示从操作OP7输出的数据的时序。
如图所示,在CLK1(CLK与图5所示的循环对应),向操作OP1、OP2输入数据。在CLK3,向操作OP1、OP2输入接下来的数据。之后,如CLK5、7、…那样每隔一个地顺次输入数据。
如通过图5所说明的那样,在CLK1输入的数据在CLK5进行操作OP7的处理。因此,在CLK1输入的数据在CLK6被输出。在CLK3输入的数据在CLK7进行操作OP7的处理。因此,在CLK3输入的数据在CLK8被输出。
如图15的时序图所示,在以往的可重配置电路中,每6个CLK输入2次数据。即,每3个CLK输入1次数据,并进行图13所示的流水线处理112。与此相对,在图2的可重配置电路中,如图6的时序图所示,每2个CLK输入1次数据,并进行图13所示的流水线处112。即,在图2的可重配置电路中,可以达到1.5倍的处理速度。其原因在于:在以往的可重配置电路中,以覆盖的方式将操作分配给处理元件,而与此相对,在图2的可重配置电路中,设置多个配置面,以将所有操作分配给处理元件,因此存在可以接收数据的操作,能够以更多的定时更输入数据。
接着,说明配置面数量的确定以及操作向处理元件的分配。
图7是说明图3的配置载入部的动作的图。
图3的配置载入部13a首先确定要处理的流水线处理所需的配置面的数量。配置载入部13a根据从配置存储器11输出的配置数据来进行Nop/Npe的除法运算。Nop是流水线处理的操作数,Npe是处理元件的数量。然后,当通过Lower()Nop/Npe可以除尽时,将除法运算的结果作为配置面的数量;当无法除尽时,将大于等于除法运算值的最小的整数值作为配置面的数量。
通过如上述确定的配置面的数量,可将流水线处理的所有操作虚拟地分配给比全部操作数少的处理元件。例如,图13所示的流水线处理112的操作数为7。图2的可重配置电路的处理元件的数量为4。为了在4个处理元件中实现7个操作,由Lower(7/4)=2可知,需要2个配置面。通过2个配置面而虚拟地准备8个处理元件,从而可以分配图13的流水线处理112的7个操作。
然后,配置载入部13a从I=1到I=流水线段数重复进行以下处理。
配置载入部13a从存储了预先通过以下步骤而生成的配置面的配置存储器11载入配置面,并将其设定在局部配置存储器13ba中。各个配置面的生成方法如下。
首先,判断第I流水线段的操作的数量是否多于配置面Si(在每次I改变时顺次切换Si)的未分派的处理元件的数量。
当第I流水线段的操作的数量少于配置面Si的未分派的处理元件的数量时,将第I流水线段的操作分派给配置面Si上未分派的处理元件中,该处理元件是可接收在前段(前循环)分派了操作的处理元件的输出信号的处理元件。然后,使I加1并进行下一个处理。另一方面,当无法将第I流水线段的操作分派给所述未分派的处理元件中时,配置载入部13a判断最初算出的配置面的数量K是否小于预先设定的最大的配置面数量M(M≥K=Lower(Nop/Npe))。当最初算出的配置面的数量K小于预先设定的最大的配置面数量M时,使配置面的数量K加1,并从I=1开始重复进行处理。如果最初算出的配置面的数量K大于等于预先设定的最大的配置面数量M,则认为无法将操作分派给处理元件,从而结束处理。
在上述第I流水线段的操作数是否多于配置面Si的未分派的处理元件数的判断中,当判断第I流水线段的操作数大于等于配置面Si的未分派的处理元件数时,无法向该配置面Si的处理元件分派操作。
此时,判断最初算出的配置面的数量K是否小于预先设定的最大的配置面数量M。当最初算出的配置面的数量K小于预先设定的最大的配置面数量M时,使配置面的数量K加1,并从I=1开始重复进行处理。另一方面,如果最初算出的配置面的数量K大于等于预先设定的最大的配置面数量M,则认为无法将操作分派给处理元件,从而结束处理。
配置载入部13a从配置存储器11载入如上述确定的配置面,并将流水线处理的操作分配给处理元件。另外,配置面的数量因流水线处理而各不相同,因此事先设置多个局部配置存储器13ba~13bf,以便能够对应各种流水线处理。
如上所述,具有多个配置面,并切换多个配置面来分配流水线处理的各段的操作。由此,可以虚拟地将流水线处理的所有段分配给处理元件,从而能够提高在处理元件中实现流水线处理的效率,并改善处理性能。
另外,通过具有多个局部配置存储器13ba~13bf,可以对应各种应用中的流水线处理。
接着,参照附图来详细地说明本发明的第二实施方式。
在第二实施方式中,当无法将流水线处理的操作分派给某个配置面的处理元件时,将操作分派给具有空的处理元件的配置面来进行流水线处理,而不增加配置面的数量。另外,根据第二实施方式的可重配置电路的电路构成具有临时存储经操作处理的数据的存储装置,例如触发器,在这一点与图2所示的根据第一实施方式的可重配置电路的电路构成不同。因此,省略对可重配置电路的电路构成的详细说明。
图8示出了用于说明第二实施方式的流水线处理。
在图8中所示的流水线处理41中,在第1段对操作OP1、OP2进行处理。在第2段对操作OP3进行处理,在第3段对操作OP4、OP5进行处理。然后,顺次对操作OP6、OP7进行处理。图8中所示的箭头表示数据的流向,向操作OP1、OP2顺次输入要处理的数据。下面说明在具有临时存储数据的触发器的图2的可重配置电路中实现所述流水线处理41的情形。
图9示出了具有触发器的可重配置电路中的图8的流水线处理的流程。
图9中所示的四边形示出了具有触发器的图2的可重配置电路的PE31~34。另外,在四边形中示出了已经分配给PE 31~34的操作OP1~OP7。
图中所示的S1、S2表示配置面。另外,FF 42表示图2的可重配置电路所具有的触发器。图8的流水线处理41的操作OP1~OP7在每次循环中交替地被分配给配置面S1、S2的PE 31~34。
在循环1中,将操作OP1、OP2分配给配置面S1的PE 31、32。
在循环2中,将操作OP3分配给配置面S2的PE 31。
在循环3中,将操作OP4、OP5分配给配置面S1的PE 33、34。
在循环4中,将操作OP6分配给配置面S2的PE 32。
在循环5中,本应将操作OP7分配给配置面S1的处理元件,但是没有空的处理元件。另一方面,配置面S2的PE 33、34还没有被分配操作,有空的处理元件,可以将操作OP7分配给PE 33。因此,在循环5中,将经操作OP6处理的数据临时存储在FF 42中。
在循环6中,将操作OP7分配给配置面S2的PE 33。此时,将FF 42的数据读入PE 33。
这样,通过具有存储数据的存储装置,从而即使在某个配置面的处理元件中无法实现流水线处理的操作时,也可以在不增加配置面的情况下进行处理。
另外,当有多个需要临时存储的数据时,设置多个FF。并且,通过FIFO向多个FF读入数据或从多个FF读出数据。
以上仅说明了本发明的原理。对于本领域的技术人员而言,可以进行多种变形和变更。本发明不限于上述说明的严格的构成和应用的示例,所对应的所有变形例和等同物均应包含在由权利要求及其等同物所确定的本发明的范围之内。
Claims (10)
1.一种可重配置电路,具有多个处理元件,所述多个处理元件的构成可根据配置信息而重新构成,所述可重配置电路的特征在于,包括:
多个存储部,存储所述多个处理元件的所述配置信息;
存储切换部,切换所述多个存储部来存储将要由所述多个处理元件处理的流水线处理的各段的所述配置信息;以及
配置信息输出部,切换所述多个存储部来向所述多个处理元件输出所述配置信息。
2.如权利要求1所述的可重配置电路,其特征在于,所述可重配置电路将所述多个存储部用于各种所述流水线处理。
3.如权利要求1所述的可重配置电路,其特征在于,所述配置信息输出部随着所述存储切换部的切换而切换所述多个存储部。
4.如权利要求1所述的可重配置电路,其特征在于,当无法将所述配置信息存储在所述多个存储部中时,所述存储切换部增加存储所述配置信息的所述多个存储部的数量。
5.如权利要求1所述的可重配置电路,其特征在于,当无法将所述配置信息存储在所述多个存储部中时,所述存储切换部将所述配置信息存储在具有空区域的所述多个存储部中。
6.如权利要求1所述的可重配置电路,其特征在于,还具有用于临时存储从所述多个处理元件输出的数据的存储装置。
7.一种可重配置电路的控制方法,所述可重配置电路具有多个处理元件,所述多个处理元件的构成可根据配置信息而重新构成,所述可重配置电路的控制方法的特征在于,
存储切换部切换用于存储多个处理元件的所述配置信息的多个存储部来存储将要由所述多个处理元件处理的流水线处理的各段的所述配置信息,
配置信息输出部切换所述多个存储部来将所述配置信息输出给所述多个处理元件。
8.一种可重配置电路的控制方法,所述可重配置电路具有多个处理元件,所述多个处理元件的构成可根据配置信息而重新构成,所述可重配置电路的控制方法的特征在于,
存储部数量计算部计算出存储部的数量,所述存储部通过将存储区域与所述多个处理元件对应地划分而得,并用于存储将要由所述多个处理元件处理的流水线处理的各段的所述配置信息,
存储区域判断部针对与所述流水线处理的各段相对应的所述存储部,判断是否存在可存储所述配置信息的所述存储区域,
配置信息输出部切换所述存储部数量计算部算出的所述数目的所述存储部来向所述多个处理元件输出所述配置信息。
9.如权利要求8所述的可重配置电路的控制方法,其特征在于,当可存储所述配置信息的所述存储区域不足时,存储区域判断部使所述数量增加1,并再次进行所述判断。
10.如权利要求8所述的可重配置电路的控制方法,其特征在于,当所述流水线处理的第n段的操作数少于与所述存储部相对应的处理元件中的未分派的处理元件的数目时,将所述第n段的所述操作分派给能够输入在前一循环中被分派所述操作的所述处理元件的输出信号的、所述未分派的处理元件,其中n为正整数。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2004/010953 WO2006011232A1 (ja) | 2004-07-30 | 2004-07-30 | リコンフィギュラブル回路およびリコンフィギュラブル回路の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1954311A CN1954311A (zh) | 2007-04-25 |
CN100545827C true CN100545827C (zh) | 2009-09-30 |
Family
ID=35785992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800429986A Expired - Fee Related CN100545827C (zh) | 2004-07-30 | 2004-07-30 | 可重配置电路及可重配置电路的控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7849288B2 (zh) |
EP (1) | EP1780644A4 (zh) |
JP (1) | JP4201816B2 (zh) |
CN (1) | CN100545827C (zh) |
WO (1) | WO2006011232A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3836109B2 (ja) * | 2004-02-19 | 2006-10-18 | 東京エレクトロン株式会社 | プログラマブル論理回路制御装置、プログラマブル論理回路制御方法及びプログラム |
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 |
JP4844406B2 (ja) * | 2007-01-25 | 2011-12-28 | 富士ゼロックス株式会社 | データ処理装置、画像処理装置、及びデータ処理プログラム |
US8055888B2 (en) * | 2008-02-28 | 2011-11-08 | Arm Limited | Initialisation of a pipelined processor |
US8078833B2 (en) * | 2008-05-29 | 2011-12-13 | Axis Semiconductor, Inc. | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions |
US8181003B2 (en) | 2008-05-29 | 2012-05-15 | Axis Semiconductor, Inc. | Instruction set design, control and communication in programmable microprocessor cores and the like |
JP5711889B2 (ja) * | 2010-01-27 | 2015-05-07 | スパンション エルエルシー | リコンフィギュラブル回路および半導体集積回路 |
JP5534426B2 (ja) | 2010-03-25 | 2014-07-02 | 富士ゼロックス株式会社 | 画像形成装置およびそのプログラム |
JP5656000B2 (ja) * | 2010-03-25 | 2015-01-21 | 富士ゼロックス株式会社 | 画像形成装置およびそのプログラム |
CN105027446B (zh) * | 2013-03-01 | 2019-06-21 | 軸子研究株式会社 | 数据处理装置及其控制方法 |
JP5775897B2 (ja) * | 2013-03-25 | 2015-09-09 | 株式会社日立システムズ | 複数の再構成可能論理回路を環状直列に接続して、パイプライン処理を実現する論理処理装置 |
JP5775896B2 (ja) * | 2013-03-25 | 2015-09-09 | 株式会社日立システムズ | 論理演算処理装置 |
US10565036B1 (en) | 2019-02-14 | 2020-02-18 | Axis Semiconductor, Inc. | Method of synchronizing host and coprocessor operations via FIFO communication |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2858602B2 (ja) | 1991-09-20 | 1999-02-17 | 三菱重工業株式会社 | パイプライン演算回路 |
US5572691A (en) * | 1993-04-21 | 1996-11-05 | Gi Corporation | Apparatus and method for providing multiple data streams from stored data using dual memory buffers |
US5742180A (en) * | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
US5646544A (en) | 1995-06-05 | 1997-07-08 | International Business Machines Corporation | System and method for dynamically reconfiguring a programmable gate array |
US6034538A (en) * | 1998-01-21 | 2000-03-07 | Lucent Technologies Inc. | Virtual logic system for reconfigurable hardware |
JP3587095B2 (ja) * | 1999-08-25 | 2004-11-10 | 富士ゼロックス株式会社 | 情報処理装置 |
JP3561506B2 (ja) * | 2001-05-10 | 2004-09-02 | 東京エレクトロンデバイス株式会社 | 演算システム |
US6883084B1 (en) * | 2001-07-25 | 2005-04-19 | University Of New Mexico | Reconfigurable data path processor |
US20040019765A1 (en) | 2002-07-23 | 2004-01-29 | Klein Robert C. | Pipelined reconfigurable dynamic instruction set processor |
JP2006018413A (ja) * | 2004-06-30 | 2006-01-19 | Fujitsu Ltd | プロセッサおよびパイプライン再構成制御方法 |
JP4546775B2 (ja) * | 2004-06-30 | 2010-09-15 | 富士通株式会社 | 時分割多重処理可能なリコンフィギュラブル回路 |
JP4536618B2 (ja) * | 2005-08-02 | 2010-09-01 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
-
2004
- 2004-07-30 EP EP04748114A patent/EP1780644A4/en not_active Withdrawn
- 2004-07-30 CN CNB2004800429986A patent/CN100545827C/zh not_active Expired - Fee Related
- 2004-07-30 JP JP2006527758A patent/JP4201816B2/ja not_active Expired - Fee Related
- 2004-07-30 WO PCT/JP2004/010953 patent/WO2006011232A1/ja active Application Filing
-
2006
- 2006-10-12 US US11/546,284 patent/US7849288B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4201816B2 (ja) | 2008-12-24 |
EP1780644A4 (en) | 2007-11-21 |
CN1954311A (zh) | 2007-04-25 |
JPWO2006011232A1 (ja) | 2008-05-01 |
US7849288B2 (en) | 2010-12-07 |
EP1780644A1 (en) | 2007-05-02 |
US20070083733A1 (en) | 2007-04-12 |
WO2006011232A1 (ja) | 2006-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100545827C (zh) | 可重配置电路及可重配置电路的控制方法 | |
CN1993677B (zh) | 任务处理的调度方法及应用该方法的装置 | |
US7353516B2 (en) | Data flow control for adaptive integrated circuitry | |
CN104899182B (zh) | 一种支持可变分块的矩阵乘加速方法 | |
EP1402348A2 (en) | Method and system for scheduling in an adaptable computing engine | |
Hartenstein et al. | A new FPGA architecture for word-oriented datapaths | |
US8296764B2 (en) | Internal synchronization control for adaptive integrated circuitry | |
CN104145281A (zh) | 神经网络计算装置和系统及其方法 | |
US20030023830A1 (en) | Method and system for encoding instructions for a VLIW that reduces instruction memory requirements | |
CN109697185A (zh) | 多瓦片处理阵列中的同步 | |
US20050066213A1 (en) | Methods and devices for treating and processing data | |
CN101861585A (zh) | 用于实时信号处理的方法和装置 | |
US20030061601A1 (en) | Data processing apparatus and method, computer program, information storage medium, parallel operation apparatus, and data processing system | |
CN107430586B (zh) | 自适应芯片和配置方法 | |
CN109697082A (zh) | 指令组 | |
CN106656103B (zh) | 一种fir滤波器组及滤波方法 | |
JP2005135411A (ja) | カスタム回路デバイスの設計方法 | |
Bondalapati et al. | Loop pipelining and optimization for run time reconfiguration | |
US10592444B2 (en) | Reconfigurable interconnected programmable processors | |
Linde et al. | Using FPGAs to implement a reconfigurable highly parallel computer | |
CN109710308A (zh) | 任务的处理方法、装置和系统 | |
Ahmad et al. | TLS: A tabu search based scheduling algorithm for behavioral synthesis of functional pipelines | |
Milik | On Mapping of DSP48 Units for Arithmetic Operation in Reconfigurable Logic Controllers | |
Sharma et al. | PipeRoute: a pipelining-aware router for reconfigurable architectures | |
US9081901B2 (en) | Means of control for reconfigurable computers |
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: 20090930 Termination date: 20160730 |
|
CF01 | Termination of patent right due to non-payment of annual fee |