CN1744093A - 数据流图处理方法及具备可重构电路的处理装置 - Google Patents

数据流图处理方法及具备可重构电路的处理装置 Download PDF

Info

Publication number
CN1744093A
CN1744093A CN 200510095979 CN200510095979A CN1744093A CN 1744093 A CN1744093 A CN 1744093A CN 200510095979 CN200510095979 CN 200510095979 CN 200510095979 A CN200510095979 A CN 200510095979A CN 1744093 A CN1744093 A CN 1744093A
Authority
CN
China
Prior art keywords
data
dfg
control data
reconfigurable circuit
setting 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.)
Pending
Application number
CN 200510095979
Other languages
English (en)
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Publication of CN1744093A publication Critical patent/CN1744093A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种对可重构电路的动作设定所需的数据流图进行处理的技术。本发明的数据流图处理方法,将记述了所希望的运算处理的程序分割为2个以上的子程序(S16),将2个以上的子程序各自变换为表现算符的处理顺序的依存关系的数据流图(DFG)(S18)。同时,生成表示子程序的每一个所对应的DFG的处理顺序的流数据(S22)。DFG被变换为设定数据(S20),流数据被变换为控制数据(S24)。

Description

数据流图处理方法及具备可重构电路的处理装置
技术领域
本发明涉及对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理的数据流图处理方法、以及具备了能够进行功能变更的可重构电路的处理装置。
背景技术
近年来,正在进行将使用了具备多个称为ALU(Arithmetic Logic Unit)的基本运算功能的多功能元件的可重构处理器的开发(例如参照专利文献1)。在可重构处理器中,通过在ALU电路中顺次设定命令数据,从而作为整体可以实现所期望的运算处理电路。
命令数据是从以C语言等高级程序语言记述的源程序制作被称为DFG(数据流图)的数据流,作为将该DFG映射到ALU电路的数据而制作的。命令数据根据ALU电路上构成的电路的处理顺序制作,存储在地址连续的存储区域中。
【专利文献1】特开2004-220377号公报
在以往的可重构处理器中,从存储器顺次读出命令数据并供给到ALU电路,设定ALU电路的功能。因此,在源程序中存在if语句等条件判定处理的情况下,需要在ALU电路上设定执行分支的多个处理的命令数据后预先执行运算,执行完条件判定后,选择根据判定结果的运算处理结果。
该情况下,实际使用的只是分支的一方的运算处理结果,另一方的运算处理结果不被使用。因此,结果导致运算处理的时间延长为必要时间以上。
另外,在源程序中存在for语句等规定次数的循环运算的情况下,在以往的可重构处理器中,需要使存储器的连续地址存储相同循环运算的命令数据组规定次数份。
例如,若循环数为10次,则需要在存储器中存储相同的命令数据组10次,导致命令数据的数据量增大。此外,在循环数不定的情况下,命令数据的生成本身变得困难。
发明内容
本发明是鉴于以上的问题点而进行的,其目的在于,提供一种可以对可重构电路的动作设定所需的数据流图进行有效处理的数据流图处理方法。另外,本发明的目的在于,提供一种具备了可以有效执行运算处理的电路再构成功能的处理装置。
为了解决上述课题,本发明的某一形态涉及对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理的方法。该数据流图处理方法包括:将记述了所希望的运算处理的程序分割为2个以上子程序的步骤;将2个以上子程序各自变换为表现算符的处理顺序的依存关系的数据流图的步骤。分割步骤根据程序的记述内容来分割程序。此时,也可以检测程序所包含的分支处理,将分支对象的处理分别作为子程序来提取。
根据该数据流图处理方法,通过将程序分割为多个子程序,从而可以减少循环语句的执行所需的数据流图的数量。因此,可以削减变换数据流图而生成的设定数据量,可以减小存储设定数据量的存储器容量。另外,可以将可重构电路的电路规模减小设定数据量被削减的份儿,可以缩短分支语句的处理时间。
本发明的其他形态涉及对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理的方法。该数据流图处理方法具备:根据程序中所含的条件分支,将记述了所期望的运算处理的程序变换为2个以上数据流图的步骤。
根据该数据流图处理方法,通过按每个条件分支来生成数据流图,从而在将数据流图的设定数据映射到可重构电路的情况下,可以每次根据条件的判定结果来选择分支对象的数据流图。因此,可以缩短处理时间,在提高处理效果的同时可以降低消耗电力。
本发明的另一形态是一种对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理的方法,其中包括:将记述了所希望的运算处理的程序分割为2个以上子程序的步骤;生成2个以上子程序各自对应的、表示表现算符处理顺序的依存关系的数据流图的处理顺序的数据流图流数据的步骤。
根据该数据流图处理方法,通过确定多个子程序所对应的数据流图的处理顺序,从而可以将数据流图所对应的设定数据有效地映射到可重构电路。
在上述形态中,可重构电路可以具有能够选择性地执行多种的多位运算的算术逻辑电路。
本发明的其他形态是一种对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理的数据流图处理方法,其特征在于,可重构电路按照执行每一步骤来顺次执行功能所对应的处理,其中包括:根据可以执行所希望的运算处理的程序中的特定的记述内容,将该程序变换为表现算符处理顺序的依存关系的所述数据流图的步骤;根据变换后的所述数据流图所对应的所述可重构电路的所述执行步骤个数,将所述程序分割为2个以上子程序的步骤。
在上述数据流图处理方法中,在分割步骤中,也可以在变换后的数据流图所对应的可重构电路的所述执行步骤的个数超过基准数的情况下,将程序分割为2个以上子程序。该基准数可以根据可重构电路的处理能力来设定。
在上述数据流图处理方法中,在从一个运算处理分支为其他多个运算处理的情况下,特定的记述内容可以包含表示用于使运算处理移向其他多个运算处理中的任一个的条件的记述内容。
在上述数据流图处理方法中,特定的记述内容也可以包含表示用于使同一运算处理反复执行多次的条件的记述内容。
另外,本发明的又一形态提供一种处理装置,其中具备:能够进行功能变更的可重构电路;设定数据保持部,其保持用于在可重构电路上构成所希望电路的设定数据,并将设定数据供给到所述可重构电路;和定序(sequencer)装置,其选择从设定数据保持部供给到可重构电路的设定数据。
根据该处理装置,定序装置可以选择向可重构电路供给的设定数据。由此,例如在运算中进行了确定分支处理的移行对象的条件判定的情况下,能够根据条件的判定结果,选择定序装置接着执行的设定数据,可以缩短处理时间。
而且,本发明不仅适用于方法,即使作为装置、电路、系统、计算机程序也当然适用。
根据本发明,可以有效处理可重构电路的动作设定所需的数据流图。另外,根据本发明,可以提供具备了可有效执行运算处理的电路再构成功能的处理装置。
附图说明
图1是实施例涉及的处理装置的构成图。
图2是表示可重构电路的构成之一例的图。
图3是表示编译部的构成的图。
图4是本实施例中的DFG处理方法的流程图。
图5是表示源程序之一例的图。
图6是表示展开函数、归纳为一个程序的形态的图。
图7是表示次序(sequence)处理部的动作的流程图。
图8是表示在图6所示的程序的if语句之前附加了判定运算命令的程序的图。
图9是表示分割部的动作的流程图。
图10是表示分割图8所示的程序而最终生成的多个子程序的图。
图11是表示由DFG生成部生成的DFG的图。
图12是表示流数据生成部的动作的流程图。
图13是表示流用程序的图。
图14是表示DFG流数据的图。
图15是表示带有次序指定的程序的图。
图16是表示由分割部生成的多个子程序的图。
图17是由流数据生成部生成的DFG流数据。
图18是表示相对一个子程序生成的多个DFG的图。
图19是表示DFG流数据的图。
图20是表示源程序之一例的图。
图21是表示带有次序指定的程序的例子的图。
图22是表示次序处理部的动作的流程图。
图23是表示源程序之一例的图。
图24是表示子程序对应的DFG的图。
图25是表示子程序对应的DFG的图。
图26是表示附加了判定运算命令的程序的图。
图27是表示被分割后的多个子程序的图。
图28是表示由DFG生成部生成的DFG的图。
图29是表示流用数据的图。
图30是表示DFG流数据的图。
图31是表示变形例涉及的处理装置的构成图。
图32是表示设定数据及定序器控制数据的生成顺序的图。
图33是表示DFG流数据的例子的图。
图34是表示图33的DFG流数据所对应的设定数据保持部中的设定数据的存储例的图。
图35是表示定序装置的详细内容的图。
图36是表示设定数据选择部中的读出地址的生成算法的图。
图37是表示定序控制部中的动作算法的图。
图38是表示定序控制数据选择部中的动作算法的图。
具体实施方式
图1是实施例涉及的处理装置10的构成图。处理装置10具备具有能够对电路构成进行重新构成的功能的集成电路装置26。集成电路装置26构成为1个芯片,具备可重构电路12、设定数据保持部14、定序装置20、输出数据保持部30和路径部32。可重构电路12通过变更设定,从而能够进行功能变更。本实施例中的可重构电路12按照每个执行步骤(后述的图2中表示的级)顺次执行功能所对应的处理。
设定数据保持部14保持多个用于在可重构电路12中构成所希望的电路的设定数据,以规定的时间间隔向可重构电路12顺次供给设定数据。设定数据保持部14可以构成为以所指定的地址值为基础输出所存储的设定数据的命令存储器。该情况下,设定数据可以称为命令数据。定序装置20具有从存储于设定数据保持部14的多个设定数据中选择向可重构电路12供给的设定数据的功能。
路径部32起反馈通路的作用,将可重构电路12的输出连接到可重构电路12的输入上。输出数据保持部30具有用于存储从可重构电路12输出的数据信号和/或从外部输入的数据信号的存储区域。输出数据保持部30所存储的数据信号通过路径部32而传递到可重构电路12的输入,另外根据来自图中未示出的控制部的输出指示而输出到处理装置10的外部。
可重构电路12构成为具有多个能够进行功能变更的逻辑电路。具体而言,可重构电路12具有将可选择性地执行多个运算功能的逻辑电路排列为多级的构成。可重构电路12具有能够对前级的逻辑电路列的输出与后级的逻辑电路列的输入的连接关系进行设定的连接部。多个逻辑电路可以配置为矩阵状。
各逻辑电路的功能与逻辑电路间的连接关系,根据由设定数据保持部14供给的设定数据来设定。设定数据以规定的时间间隔供给到可重构电路12。因此,可重构电路12执行对应于所供给的设定数据的运算处理。
定序装置20以可重构电路12中的运算结果、具体为分支条件的判定结果为基础,管理设定数据保持部14供给到可重构电路12的设定数据。定序装置20根据从应执行的程序生成的控制数据,使所希望的设定数据从设定数据保持部14输出。设定数据及控制数据按照以下的顺序生成。
应该由集成电路装置26实现的程序保持在存储部40中。程序记述可重构电路12中的所希望的运算处理,具体为以C语言等高级语言记述了信号处理电路或信号处理算法等。
编译部50读出存储在存储部40中的程序。编译部50对读出的程序进行编译处理,生成多个数据流图(DFG)和表示DFG处理顺序的流数据。编译部50将所生成的DFG及其流数据存储在存储部40中。
DFG表现电路中的算符(运算之间)的处理顺序的依存关系,以图结构来表示输入变量及常数的运算流程。一般,DFG形成为从上向下进行运算。
多个DFG通过将一个程序分割为多个子程序并对该子程序的每一个进行变换而生成。DFG流数据生成为:决定多个子程序所对应的DFG的处理顺序,特别决定条件分支发生时的分支源与分支对象的DFG的处理顺序。
设定数据生成部51将DFG变换为对应的设定数据,并存储在设定数据保持部14中。控制数据生成部54将DFG流数据变换为控制数据并存储在定序装置20中。设定数据是用于将DFG映射到可重构电路12的数据,其决定可重构电路12中的逻辑电路的功能或逻辑电路间的连接关系。
控制数据是表现映射到可重构电路12的设定数据(DFG)的连接关系的数据。控制数据根据可重构电路12的运算执行中,作为分支条件的判定结果的分支控制数据SEQ来决定成为分支对象的DFG。
定序装置20向设定数据保持部14供给读出地址。此时,根据从可重构电路12供给的分支控制数据SEQ等的值,决定接下来供给到可重构电路12的设定数据的读出地址。设定数据保持部14如果接受读出地址,则将该地址中存储的设定数据供给到可重构电路12。
图2表示可重构电路12的构成之一例。可重构电路12具备:分别能够选择性执行多个运算功能的逻辑电路的多级排列;和可以任意设定前级的逻辑电路的输出与后级的逻辑电路的输入的连接关系的连接部52。
在可重构电路12中,根据逻辑电路的多级排列结构,运算从上级向下级进行。而且,在本说明书中,所谓的“多级”是指多个级。并且,可重构电路12的电路构成并不一定具有多级排列,但为了削减电路规模,不是使所有逻辑电路之间的连接成为可能,优选可以实现一部分逻辑电路之间的连接。
作为逻辑电路,可重构电路12具有ALU(Arithmetic Logic Unit)。ALU是能够选择性执行多种的多位运算的算术逻辑电路,通过设定能够选择性执行逻辑和、逻辑积、位移位等多种的多位运算。各ALU构成为具有用于设定多种运算功能的选择器。在图示的例子中,ALU构成为具有2个输入端子与1个输出端子。
可重构电路12构成为纵向配置了X个、横向配置了Y个ALU的X级Y列的ALU阵列。在此,示出纵向配置了3个、横向配置了6个ALU的3级6列的ALU阵列。
可重构电路12具备连接部52与ALU列53。ALU列53设置为多级,连接部52设置在前后级的ALU列53之间,设定前级的ALU的输出与后级的ALU的输入的连接关系。
在图2所示的例子中,在第1级的ALU列53a与第2级的ALU列53b之间设有构成第2级的连接部52b。在第2级的ALU列53b与第3级的ALU列53c之间设置构成第3级的连接部52c。而且,构成第1级的连接部52a设置在第1级的ALU列53a的上侧。
向第1级的ALU11、ALU12、…、ALU16输入输入变量或常数,进行所设定的规定的运算。运算结果的输出根据第2级的连接部52b所设定的连接,而输入到第2级的ALU21、ALU22、…、ALU26中。
在第2级的连接部52b中,构成连接用接线,以便可以实现第1级的ALU列53a的输出与第2级的ALU列53b的输入之间的任意连接关系或者从预先确定的连接关系的组合中选择出的连接关系,通过设定使所希望的接线有效。
向第2级的ALU21、ALU22、…、ALU26输入ALU列53a的输出,以进行所设定的规定运算。运算结果的输出根据第3级的连接部52c的连接用接线上所设定的连接,而输入到第3级的ALU31、ALU32、…、ALU36中。
来自成为最终级的第3级的ALU列53c的输出数据被输出到输出数据保持部30。输出数据保持部30经由路径部32而将输出数据输出到连接部52a。连接部52a设定连接用接线,向第1级的ALU11、ALU12、…ALU16供给数据。在生成了运算处理的最终结果的情况下,输出数据保持部30将数据输出到处理装置10的外部。
图3表示编译部50的构成。编译部50具备程序分析部100、次序处理部102、分割部104、DFG生成部106、流数据生成部108。
实施例中的数据流图处理功能,在处理装置10中可以通过CPU、存储器、装载在存储器中的DFG处理用程序等来实现,在此描述了通过这些的协同来实现的功能块。DFG处理用程序可以内置在处理装置10中,也可以以存储在记录介质中的形态从外部供给。因此,本领域的技术人员可以理解:这些功能块可以仅通过硬件、仅通过软件或者这些的组合而以各种形式来实现。
图4表示本实施例中的DFG处理方法的流程图。首先,程序分析部100读出存储在存储部40中的程序(S10),执行程序的分析(S12)。
程序分析部100是用于有效执行以后的处理的前处理部,执行程序所包含的函数的展开等。次序处理部102根据程序记述内容在程序中附加次序处理指定与分支条件的运算(S14)。
在本实施例中,次序处理是用于将程序分割为多个子程序的前处理,检测程序中的分支处理,以执行次序处理指定。分割部104根据由次序处理部102附加的次序处理指定,而将程序分割为多个子程序(S16)。此时,分割部104将分支对象的每个处理作为子程序提取。
DFG生成部106按照每个子程序,生成适于可重构电路12的电路构成的DFG(S18),并存储在存储部40中。流数据生成部108根据附加了次序处理指定与分支条件的程序和子程序,生成DFG的流数据(S22)。
设定数据生成部51从所生成的DFG生成可重构电路12用的设定数据(S20),控制数据生成部54从DFG的流数据生成用于在定序装置20中进行设定的控制数据(S24)。
图5表示源程序之一例。在该程序中,如果执行func0,则调出func1。图6表示在func0中展开func1而综合为一个程序的形式。程序分析部100执行该函数的展开处理。通过展开函数,从而能够有效地执行后面执行的次序处理指定或程序的分割处理。次序处理部102在由程序分析部100分析过的程序中附加次序处理的指定和分支条件的运算。
图7是表示次序处理部102的动作的流程图。首先,次序处理部102将m设定为程序的行数(S100)。次序处理部102参照图6所示的程序,由于程序的行数为10行,故设定为m=10。次序处理部102设定i=1(S102)。次序处理部102分析程序的第i行(S104),调查是否为执行次序处理的部分(S106)。
次序处理是用于分割程序的前处理,是在如循环数不定的循环运算那样,仅进行DFG化是不能执行运算处理的情况下,或者通过执行次序处理来提高电路规模、处理速度等特性的情况下执行的处理,是否执行是用程序中的功能或者处理内容等来判断的。
在本实施例中,在分支语句(if语句等)的语句中的运算数为2个以上、循环语句(for语句等)的循环数不定或为10次以上的情况下,执行次序处理。这样,通过根据分支对象的处理量是否超过规定量来判断次序处理的执行,从而可以有效生成供给到可重构电路12的设定数据。
在图6的程序中,程序第1行的记述内容为“int i;”由于该记述内容不是分支语句或循环语句,故次序处理部102不执行次序处理(S106的否)。此时,次序处理部102判断i与m是否相等(S114)。在此,由于i=1、m=10(S114的否),故次序处理部102在i上加1(S116),设定为i=2。
步骤返回S104,由于程序第2行的记述内容为“x+=1;”故次序处理部102同样判断为不执行次序处理(S106的否)。次序处理部102在i上加1(S116),设定为i=3。程序第3行的记述内容为“if(*y>0){}”。
如上所述,if语句的次序处理的执行条件为存在2个以上运算数。在此,若参照if语句中的运算,则为“x=x>>2”、“*y=x+3”,由于运算数为2以上,故次序处理部102判断为执行次序处理(S106的是)。
接着,次序处理部102执行程序的语法分析程序,执行次序处理的范围与分支条件的选定(S108)。该情况下,次序处理的范围为“if(){…}”,分支条件为“*y>0”。接下来,次序处理部102在程序中附加判断分支条件的运算命令(S110)。
图8表示在图6所示的程序的if语句之前附加了判断运算命令的程序。在该例中,判断运算命令为“_SEQ_=*y>0;”。分支条件为“*y>0”。因此,由于表示是执行次序处理的部分,故次序处理部102将if语句记述为“if(_SEQ_)”(S112)。
“if(_SEQ_)”是表示是执行次序处理的部分的“次序处理指定”。在此,“_SEQ_”成为相当于分支选择所需的来自可重构电路12的输出信号的变量。
在可重构电路12的运算处理的执行时,_SEQ_作为分支控制数据,从可重构电路12供给到定序装置20。定序装置20若接收分支控制数据_SEQ_,则根据保持的控制数据,生成接下来要执行的DFG的设定数据的读出地址,并供给到设定数据保持部14。
S112之后,次序处理部102判断i与m是否相等(S114)。在此,由于i=3、m=10(S114的否),故在i上加1(S116),设定为i=4。
次序处理部102,由于程序第4行的记述内容为“x=x>>2”,故不执行次序处理(S106的否)。次序处理部102在i上加1,设定为i=5(S116)。以后同样执行流程。在i=8时,程序第8行的记述内容为“for(i=0;i<100;i++){”。如上所述,for语句的次序处理的条件为循环次数不定或10次以上。在此,若参照for语句的循环次数,则循环次数为100次。因此,次序处理部102判断为执行次序处理(S106的是)。
次序处理部102执行程序的语法分析程序,执行次序处理的范围与分支条件的选定(S108)。该情况下,次序处理的范围为“for(){…}”,分支条件为“i<100”。接下来,在程序中附加判断分支条件的运算命令(S110)。由于分支条件为“i<100”,故如图8所示,次序处理部102在for语句中的最末尾处附加判断运算命令“_SEQ_=i<100”。另外,在for语句之前附加i的初始化用的“i=0;”。
而且,由于是执行次序处理的部分,故次序处理部102将for语句记述为“do{…}while(_SEQ_);”(S112)。“do{…}while(_SEQ_);”是表示为执行次序处理的部分的“次序处理指定”。该情况下,循环次数固定为100次,但例如在分支条件为“i<*y”这样的循环次数不定的情况下,在for语句中的最末尾与for语句之前附加判断运算命令“_SEQ_=i<*y;”。
接着,次序处理部102判断i与m是否相等(S114)。在此,由于i=8、m=10(S114的否),故次序处理部102在i上加1(S116),设定为i=9。以后同样执行流程,由于次序处理部102在i=10时成为i=m(S114的是),故结束次序处理部102中的处理。根据以上的次序处理,生成图8所示的附带有次序指定的程序。分割部104根据次序处理指定,将程序分割为子程序。
图9是表示分割部104的动作的流程图。首先,分割部104将m设定为次序处理指定的程序部分的总数(S200)。在图8所示的附带有次序指定的程序中,次序处理部分为“if(_SEQ_){…}”和“do{…}while(_SEQ_)”两处。因此,分割部104设定m=2。
接着,分割部104判断m是否为0(S202)。如果m=0,则分割部104将整个程序作为一个子程序(S212),结束分割处理。在此,由于m=2(S202的否),故分割部104设定为i=1(S204)。
接下来,分割部104将第1次序处理指定的程序部分作为一个子程序进行分割(S206)。参照图8,由于第1次序处理部分为“if(_SEQ_){…}”,故分割部104将该部分作为一个子程序。
图10表示分割图8所示的程序后最终生成的多个子程序,“if(_SEQ_){…}”作为图10的func02所示的子程序被分出。
程序中的“if(_SEQ_)”相当于是否执行func02的判断,但该判断可以根据从图1所示的可重构电路12输出的_SEQ_的值,由定序装置20来执行。因此,由于DFG化的运算为“x=x>>2”、“*y-=x+3”,“if(_SEQ_)”没有DFG化的必要,故不加到子程序上。
然后,分割部104判断i与m是否相等(S208)。由于i=1、m=2(S208的否),故分割部104在i上加1(S210),设定i=2。
步骤返回S206,由于第2次序处理部分为“do{…}while(_SEQ_);”,故分割部104同样将该部分作为一个子程序。“do{…}while(_SEQ_);”作为图10的func04所示的子程序被分出。
接着,分割部104判断i与m是否相等(S208)。由于i=2、m=2(S208的是),故分割部104移向S214。以到此为止的处理,次序处理指定的程序部分的子程序化结束。
接下来,分割部104执行剩下的程序部分的子程序化。首先,分割部104判断在第1次序处理指定的程序之前是否有程序(S214)。由于在第1次序处理指定的程序“if(_SEQ_){…}”之前有程序(S214的是),分割部104将该程序作为一个子程序(S216)。由此,生成图10的func01所示的子程序。
然后,分割部104判断m是否等于1(S218)。而且,在第1次序处理指定的程序之前没有程序的情况下(S214的否),分割部104直接执行S218的判断。在该例中,由于m=2(S218的否),故分割部104设定j=1(S220)。
接着,分割部104执行在第j次序处理指定的程序与第(j+1)次序处理指定的程序之间是否有程序的判断(S222)。在此,由于在第1次序处理指定的程序“if(_SEQ_){…}”与第2次序处理指定的程序“do{…}while(_SEQ_);”之间有程序(S222的是),故分割部104将该程序作为一个子程序(S224)。由此,生成图10的func03所示的子程序。
然后,分割部104判断j是否等于m-1(S226),在该例中,由于j=1、m=2,j=m-1(S226的是),故分割部104执行在第m次序处理指定的程序之后是否有程序的判断(S230)。在此,由于在第2次序处理指定的程序“do{…}while(_SEQ_);”之后没有程序(S230的否),故分割部104结束本流程。
而且,在S218中,在m=1的情况下(S218的是),分割部104移向S230,执行第1次序处理指定的程序之后是否有程序的判断。在程序存在的情况下(S230的是),分割部104将第m次序处理指定的程序之后的部分作为一个子程序进行分割(S232)。
另外,在S226中,在j不等于(m-1)的情况下(S226的否),分割部104在j上加1(S228),返回S222,执行在次序处理指定的程序之间是否有程序的判断。
根据以上的分割处理,生成图10所示的子程序。DFG生成部106将图10的子程序分别DFG化。图11表示由DFG生成部106生成的DFG。设定数据生成部51根据这些DFG,生成用于向可重构电路12供给的设定数据。
接着,流数据生成部108根据图8所示的附带有次序指定的程序和图10所示的子程序,生成DFG流数据。
图12是表示流数据生成部108的动作的流程图。首先,流数据生成部108针对图10所有的子程序调查相当于图8的附带有次序指定的程序中的哪一部分(S300)。由此,流数据生成部108调查子程序的连接关系、即DFG的连接关系。此时,流数据生成部108将图8的程序中的运算从图10的func01置换为func04图13表示将程序中的运算从func01置换为func04的流用程序。
接下来,流数据生成部108根据S300中的调查结果,从位于流用程序上游的子程序开始按顺序排列配置(S302)。由此,DFG间的执行顺序被决定,进行按照执行顺序的DFG的配置。
图14表示DFG流数据。在图13的流用程序中,由于位于最上游的子程序为func01,故如图14所示,流数据生成部108将func01配置在DFG流数据的最上级。而且,由于接下来出现的子程序是func02,故流数据生成部108如图14所示,将func02配置在第2级。以后同样,流数据生成部108将func03配置在第3级,将func04配置在第4级。
接着,流数据生成部108将m设定为子程序的总数(S304)。由于图10所示的子程序的总数为4,故流数据生成部108设定m=4。另外,流数据生成部108设定i=1(S306)。而且,流数据生成部108针对第I子程序,调查有从调查结果接着向几个子程序移行的可能性(S308)。
在此,i=1,若参照图13的流用程序,则第1子程序func01接着要执行的子程序为func02或func03。因此,有从func01移行的可能性的子程序的总数为2个,流数据生成部108设定n=2(S310)。另外,流数据生成部108设j=1(S312)。
接下来,流数据生成部108在DFG流数据中附加表示处理从第i子程序向第j移行对象的子程序进行的信息(S314)。在此,如图14所示,流数据生成部108从第1子程序func01向第1移行对象的子程序func02连线。
然后,流数据生成部108判断n是否大于1(S316)。在此,由于n=2(S316的否),故流数据生成部108在DFG流数据中附加表示移行条件的信息(S318)。若参照图13,则由于在_SEQ_=1的情况下移行到func02,故流数据生成部108,作为从func01向func02的移行条件,附加“_SEQ_=1”。
流数据生成部108判断j是否等于n(S320)。在此,由于j=1、n=2(S320的否),故流数据生成部108在j上加1(S322),使j=2。
返回S314,与上述同样,流数据生成部108执行用于表示处理从第1子程序func01向第2移行对象的子程序func03进行的连线。流数据生成部108附加表示移行条件的信息“_SEQ_=0”。流数据生成部108判断j是否等于n(S320)。由于j=2、m=2(S320的是),故流数据生成部108判断i与m是否相等(S324)。此时,由于i=1、m=4(S324的否),故流数据生成部108在i上加1(S326),设i=2。
返回S308,参照图13的流用程序,第2子程序func02仅移行到子程序func03。从func02开始的移行对象子程序的总数为1个(S310),流数据生成部108设定n=1。另外,流数据生成部108设定j=1(S312)。而且,流数据生成部108从func02向func03连线(S314)。
流数据生成部108判断n是否大于1(S316)。在此,n=1(S316的否),流数据生成部108无需附加表示移行条件的信息。流数据生成部108判断j是否等于n(S320)。此时,由于j=1、n=1(S320的是),故流数据生成部108接着判断i是否等于m(S324)。由于i=2、m=4,故流数据生成部108在i上加1(S326),使i=3。
返回S308,第3子程序func03也同样地从func03向func04连线。而且,流数据生成部108在i上加1,使i=4。第4子程序func04,如果参照图13的流用程序,则第4子程序func04接下来要执行的子程序为func04或<结束处理>。
因此,从func04开始的移行对象的子程序总数为2个,设n=2(S310)。流数据生成部108通过附加连线及移行条件,从而最终生成图14所示的DFG流数据。而且,由于i等于m(S324的是),故流数据生成部108的全部处理结束。
图14的DFG流数据是概念图,实际上可以生成将图14的信息数值数据化了的DFG流数据。控制数据生成部54根据图14的DFG流数据,生成在定序装置中用于设定数据的选择的控制数据。控制数据被供给到定序装置20并被存储。
在实施例中,虽然说明了将2个次序处理指定的程序间的程序作为子程序进行提取的处理,但编译部50即使在次序处理指定的程序中还存在次序处理指定的情况下也是可以对应的。
例如,在次序处理指定的for语句中存在次序处理指定的for语句那样的情况下,次序处理部102生成如图15所示的附带有次序指定的程序。而且,分割部104将程序<A>、<B>、<C>这3个作为次序处理指定的程序来处理、分割。图16表示由分割部生成的多个子程序。图17表示由流数据生成部108生成的DFG流数据。
另外,DFG生成部106在以适于可重构电路12的电路构成的方式从子程序生成DFG时,也能从一个子程序生成多个DFG。例如,如图18所示,DFG生成部106从图16所示的子程序开始,相对一个子程序可以生成多个DFG。
即使在这种情况下,funcA、funcB、funcC的流的关系也与图17所示的同样。此时,图17的“funcA”的部分置换为属于按照执行顺序排列的funcA的3个DFG。对于funcB、funcC来说也是同样的。因此,这种情况下,流数据生成部108针对funcA、funcB、funcC生成DFG流数据后,通过追加该置换处理而可以对应。
在属于funcA的DFG中,若将执行顺序设为DFGA-1、DFGA-2、DFGA-3,将funcB、funcC也设为同样,则DFG流数据成为如图19所示的那样。funcA、funcB、funcC内的DFG的执行与SEQ无关地被决定,在func之间发生分支的情况下,根据_SEQ_来决定下一func。
在本实施例中,程序分析部100将图5的func1展开为func0,如图6所示,使其成为1个函数。假设对func0与func1独立地进行DFG处理,则由于“x+=1;”与“_SEQ_=*y>0;”被分别子程序化,故如func01那样,并未成为一个子程序,变为子程序增加。
如果子程序增加,则最终生成的DFG增加,有导致处理效率降低、电路规模增加的可能性。因此,为了尽可能减少分割数、减少子程序,程序分析部100将多个函数汇总为一个函数来执行处理。
以上,以实施例为基础对本发明进行了说明。本领域的技术人员应该理解:实施例只是例示,这些各构成要素或各处理过程的组成能够进行各种变形例,还有这些变形例也包括在本发明的范围内。
图20表示源程序之一例。在该源程序中,在C记述中添加有“/*_SEQ_*/”这样的命令。该命令是在编写程序时作为用于指定次序处理的次序处理指定命令而由程序设计人员(programmer)插入的。
在C语言中,由2个斜线(slash)“/…/”包围的字符串作为命令而被处理,通常的编译程序在编译时忽略命令部分。在该变形例中,次序处理部102作为所希望的运算处理,判断是否存在未记述的命令部分,在添加有次序处理指定命令的情况下,将该命令部分识别为次序处理指定。
由此,用户能够自由地进行次序处理指定。另外,通过作为命令来进行次序处理指定,从而对C记述中的动作不会造成影响。
图21表示附带有次序指定的程序的例子。在如图20的“func1/*_SEQ_*/();”所示,由程序设计人员记述的次序处理指定存在于函数中的情况下,分割部104将该函数部分辨识为次序处理指定,将由命令部分确定的范围作为子程序提取出来。
在一个函数在多处被调用的情况下,以往全部展开来生成相同运算内容存在于多处的DFG,但通过在函数中进行次序处理指定,从而可以只生成函数的一个DFG,由于该DFG被多次调用,故可以减少最终生成的DFG数。
在函数中进行次序处理指定的情况下,由于函数DFG被调用时自变量的值(变量)不同,故需要执行func1的自变量数据的交接。在此,图21所示的附带有次序指定的程序“func1/*_SEQ_*/();”的上2行与下1行相当于其。在交接数据是排列的情况下,交接排列的地址,在是变量的情况下,交接变量(数值)。该数据交接运算命令的追加处理可以在图7的S110中执行。
图22是表示次序处理部102的动作的其他例子的流程图。首先,次序处理部102将m设定为程序的行数(S400)。具体是,次序处理部102参照图23所示的程序,由于程序的全部行数为14行,故设定为m=14。而且,次序处理部102设定i=1(S402)。
接着,次序处理部102分析程序第i行(S404)。次序处理部102判断程序第i行是否为特定的记述内容(S406)。另外,次序处理部102在该判断为是的情况下,移向S408的处理,在为否的情况下移向S420的处理。
该特定的记述内容包含:在从一个运算处理分支为其他的多个运算处理的情况下,表示用于使运算处理移向其他的多个运算处理的其中一个的条件的记述内容(在此为if语句等分支语句);表示用于使同一运算处理多次反复执行的条件的记述内容(在此为for语句等循环语句)等。
在S406中,由于程序第1行的记述内容为“int i;”,不是特定的记述内容(分支语句或循环语句),故次序处理部102移向S420的处理。次序处理部102判断i与m是否相等(S420)。在此,由于i=1、m=14(S420的否),故次序处理部102在i上加1(S422),设定为i=2。
返回到上述S404的处理,由于程序第2行的记述内容为“x+=1;”故次序处理部102判断为该记述内容不是特定的记述内容(分支语句或循环语句)(S406的否)。次序处理部102在i上加1(S420),设定为i=3。
返回到上述S404的处理,由于程序第3行的记述内容为表示特定的记述内容的“if(*y>0){”,故次序处理部102执行该记述内容的分析,执行次序处理的范围与分支条件的选定(S408)。该情况下,次序处理的范围为“if(){…}”、“else{…}”,分支条件为“y>0”。
该次序处理是用于分割程序的前处理,在通过分割程序,从而提高可重构电路12的电路规模、处理速度等特性的情况下被执行。
接着,次序处理部102生成特定的记述内容中的子程序所对应的DFG(S410)。在此,次序处理部102制作特定的记述内容if语句中的“x=x>>2;”、“y-=3;”、“*z+=4;”所对应的DFG1(参照图24所示的DFG1)。另外,次序处理部102制作特定的记述内容else语句中的“x=5;”所对应的DFG2(参照图24所示的DFG2)。
次序处理部102根据所制作的DFG1(或DFG2)所对应的可重构电路12的执行步骤数,判断是否执行次序处理。而且,执行步骤在本实施方式中是图2所示的每一级中执行的处理。其中,执行步骤可以是2以上的每一级中执行的处理。
在本实施方式中,次序处理部102在所生成的DFG1(DFG2)所对应的可重构电路12的执行步骤(图2所示的级)的数目超过第1基准数(在此为3)的情况下,执行次序处理,在所制作的DFG1(DFG2)所对应的可重构电路12的执行步骤的数目不超过第1基准数的情况下不执行次序处理。
例如,图24所示的DFG1中、“x=x>>2;”所对应的运算对应于可重构电路12的第1级的ALU11。另外,DFG1中、“y-=3;”所对应的运算对应于可重构电路12的第1级的ALU12。此外,DFG1中、“*z+=4;”所对应的运算对应于可重构电路12的第1级的ALU13。
因此,DFG1对应于可重构电路12的第1级的各ALU,仅对应于1个执行步骤(1级的处理)。另外,DFG2也与上述同样,仅对应于1个执行步骤。由此,由于所制作的DFG1或DFG2各自对应的可重构电路12的执行步骤的数目为1,没有超过第1基准数(在此为3),故次序处理部102判断为不执行次序处理。
接下来,次序处理部102判断i与m是否相等(S420)。在此,由于i=3、m=14(S420的否),故次序处理部102在i上加1(S422),设定为i=4。由于程序第4行的记述内容为“x=x>>2;”,不是特定的记述内容(S406的否),故在i上加1,设定为i=5(S422)。以后同样地执行流程。
返回上述步骤S404的处理,次序处理部102在i=12中,为程序第12行的记述内容表示特定的记述内容的“for(i=0;i<100;i++){”(S406的是)。次序处理部102执行程序的语法分析程序,执行次序处理的范围与分支条件的选定(S408)。该情况下,次序处理的范围为“for(){…}”,分支条件为“i<100”。
接着,次序处理部102制作for语句所包含的记述内容对应的DFG3(S410,参照图25所示的DFG3)。在DFG3中,执行100次的重复处理。
另外,DFG3中、第1次处理中的运算对应于可重构电路12的第1级的ALU11,第2次处理中运算对应于可重构电路12的第2级的ALU21。
因此,由于DFG3的100次的重复处理在可重构电路12的各级中顺序执行,故DFG3所对应的可重构电路12的级(也包括重复利用的级)的数目变为100,执行步骤数变为100。由此,由于所制作的DFG3对应的可重构电路12的执行步骤数为100,超过第2基准数(在此为10),故次序处理部102判断为执行次序处理(S414的是)。
接着,次序处理部102在程序中附加判断分支条件的判断运算命令(S416)。由于分支条件为“i<100”,故如图26所示,次序处理部102在for语句的最末尾附加判断运算命令“_SEQ_=i<100;”另外,在for语句之前附加用于i的初始化的“i=0;”。
而且,由于表示是执行次序处理的部分,故次序处理部102将for语句记述为“do{…}while(_SEQ_);”(S418)。“do{…}while(_SEQ_);”是表示是执行次序处理的部分的“次序处理指定”。
接下来,次序处理部判断i与m是否相等(S420)。在此,由于i=12、m=14(S420的否),故次序处理部102在i上加1(S422),设定为i=13。次序处理部102以后同样地执行流程,在i=14时判断为i=m(S420的是),结束次序处理部102中的次序处理。
通过以上的次序处理,生成图26所示的附带有次序指定的程序。分割部104根据次序处理指定,将程序分割为子程序。
图26表示在图23所示的程序的for语句中附加了判断运算命令的程序。在该例中,“_SEQ_=i<100;”为判断运算命令,“do{…}while(_SEQ_);”为次序处理指定。分割部104与上述图9所示的处理同样,参照图26所示的次序处理指定“do{…}while(_SEQ_);”,分割为没有附加次序处理指定的子程序(func01)和除此以外的子程序(func02)(参照图27)。
然后,DFG生成部106生成对应于子程序(func01)的DFG以及对应于子程序(func02)的DFG(参照图28)。设定数据生成部51根据所生成的DFG,生成用于向可重构电路12供给的设定数据。另外,流数据生成部108与上述图12所示的处理同样,根据图29所示的附带有次序指定的程序和图27所示的子程序,生成DFG流数据(参照图30)。关于设定数据生成部51及流数据生成部108中的详细处理,由于与上述同样,故在此省略。
在上述图22乃至图30中,生成特定的记述内容(分支语句或循环语句)所对应的DFG,根据该DFG所对应的可重构电路12的执行步骤数,将程序分割为多个子程序。
因此,上述图22乃至图30中的处理,比上述图7乃至图14中的处理更可以使DFG数增大到必要以上,可以减少DFG所对应的设定数据的存储量,可以进一步缩小电路规模。
进而,上述图22乃至图30中的处理,由于可以使DFG数增大到需要以上,故可以使可重构电路12中的处理有效地执行。因此,上述图22乃至图30中的处理由于在可重构电路12中不会执行无用的处理,故可以较低地抑制消耗电力。
图31是本发明的变形例涉及的处理装置200的构成图。处理装置200具备:可重构电路212、设定数据保持部214、定序装置220、输出数据保持部230及路径部232。处理装置200可以具有作为1个芯片而构成的集成电路装置的构成。可重构电路212通过变更设定而可以进行功能的变更。
设定数据保持部214保持多个用于在可重构电路212中构成所希望的电路的设定数据,以规定的时间间隔向可重构电路212顺次供给设定数据。设定数据保持部214,也可以构成为以所指定的地址值为基础来输出所存储的设定数据的命令存储器。该情况下,设定数据可以称为命令数据。定序装置220具有从设定数据保持部214所存储的多个设定数据中选择供给到可重构电路212的设定数据的功能。
可重构电路212构成为具有能够进行功能变更的多个逻辑电路。具体是,可重构电路212具有使可选择性执行多个运算功能的逻辑电路排列为多级的构成,包括能够设定前级的逻辑电路列的输出与后级的逻辑电路的输入的连接关系的连接部。多个逻辑电路可以配置为矩阵状。各逻辑电路的功能和逻辑电路间的连接关系根据由设定数据保持部214供给的设定数据来设定。设定数据以规定的时间间隔向可重构电路212供给,因此,可重构电路212执行所供给的设定数据对应的运算处理功能。可重构电路212也可以与图2所示的可重构电路12相同。
路径部232起反馈路径的作用,将可重构电路212的输出连接到可重构电路212的输入上。输出数据保持部230具有用于存储从可重构电路212输出的数据信号和/或从外部输入的数据信号的存储区域。输出数据保持部230所存储的数据信号通过路径部232而传达到可重构电路212的输入,另外根据来自未图示的控制部的输出指示而向处理装置200的外部输出。
定序装置220具有:定序控制数据保持部222、设定数据选择部224、定序控制部226及定序控制数据选择部228。设定数据选择部224向设定数据保持部214供给选择设定数据的第1选择信号。具体是,第1选择信号是指定设定数据保持部214的读出地址的信号,设定数据保持部214以该读出地址为基础,向可重构电路212输出所希望的设定数据。定序控制数据保持部222保持用于使设定数据选择部224生成第1选择信号的定序控制数据,并将该定序控制数据供给到设定数据选择部224。定序控制数据保持部222由RAM等存储器构成。由此,通过改写定序控制数据而可以容易地变更定序装置220的处理内容,可以执行各种控制,同时可以提高定序装置220的通用性。
定序控制数据选择部228将选择对设定数据选择部224供给的定序控制数据的第2选择信号供给到定序控制数据保持部222。具体是,第2选择信号是指定定序控制数据保持部222的读出地址的信号,定序控制数据保持部222以该读出地址为基础,向设定数据选择部224输出所希望的定序控制数据。
而且,虽然对图35进行了详述,但定序控制数据不只是包含控制设定数据选择部224的动作的数据,也包含控制定序控制部226及定序控制数据选择部228的动作的数据。定序控制数据选择部228以从定序控制数据保持部222供给的控制数据、从定序控制部226供给的数据、从可重构电路212供给的数据为基础,生成第2选择信号,并供给到定序控制数据保持部222。在本实施例中,定序控制数据选择部228接收从可重构电路212输出的分支控制数据。分支控制数据是表示在源程序中的if语句或for语句等的处理之际执行的条件判断的结果的数据。
在本实施例中,定序装置220以可重构电路212中的运算结果、具体是条件的判断结果为基础,管理设定数据保持部214向可重构电路212供给的设定数据。在本实施例中,为了使定序装置220的设定数据的管理有效,以下面的顺序生成设定数据保持部214存储的设定数据及定序控制数据保持部222存储的定序控制数据。
图32表示设定数据及定序控制数据的生成顺序。该生成流程由图中未示出的编译装置来执行。
编译装置从规定的存储区域读出应该由可重构电路212执行的程序(S500)。程序表示记述了电路中的处理动作的动作记述,用C语言等高级语言记述了信号处理电路或信号处理算法。程序构成为包括条件语句或循环语句等。而且,在条件语句与循环语句中存在用于确定运算的移行对象的条件判断处理,根据条件判断的结果来决定接下来执行的运算处理。例如,以if语句及else语句表现的条件语句在if条件成立时执行if语句,在if条件不成立时执行else语句。另外,循环语句如果所决定的次数的处理结束,则退出该循环语句开始新的运算处理,如果所决定的次数的处理没有结束,则继续重复处理。在本实施例的定序装置220中,利用决定这种分支条件的条件判定的结果,执行有效的运算处理。
编译装置编译处理已经读出的程序(S502),在变换为数据流图(DFG)的同时(S504),生成表示DFG的处理流程的流数据(S508)。DFG表现电路中的运算间的执行顺序的依存关系,以图表结构来表示输入变量与常数的运算流程。DFG流数据是以将DFG整体分解为执行规定的一系列处理的多个DFG组、组合DFG组并表示处理整体的流程的方式生成。DFG组将处理顺序确定的1个以上的DFG汇总为一个单位。而且,在DFG组中,DFG存在一个的情况下,作为仅处理该DFG的DFG组,可以认为处理顺序是确定的;在DFG存在2个以上的情况下,则需要确定2个以上的DFG间的处理顺序。DFG被变换为对应的设定数据(S506),DFG流数据被变换为对应的定序控制数据(S510)。设定数据是用于将DFG映射到可重构电路212的数据,确定可重构电路212中的逻辑电路的功能或逻辑电路间的连接关系。设定数据存储在设定数据保持部214中,定序控制数据存储在定序控制数据保持部222中。
图33表示DFG流数据的例子。以往的DFG,在存在分支处理的情况下,制作为执行两方的分支对象的处理,但在本实施例中,将处理顺序确定的连续的DFG作为一个DFG组定位,将多个DFG组的处理关系表现为DFG流数据。即,DFG组内的运算处理不依存于判断了DFG组的分支的结果而进行了确定。DFG组的条件分支的判断结果由从可重构电路212输出的分支控制数据c来表示。而且,该判断可以由DFG组内位于中间的DFG来进行,也可以由作为最后的DFG来进行。在图33中,根据分支控制数据c的值,示出决定下一DFG的流程。而且,来自可重构电路212的分支控制数据c采取标志值等数据形式,在二分支的情况下,取1或0的其中之一。
例如,参照DFG组3,在进行for语句等循环处理的情况下,在到循环结束条件成立为止的期间,分支控制数据c为1,在将分支控制数据c设定为1的期间内,反复执行DFG组3的运算处理。另一方面,在执行规定次数的循环处理、循环结束条件成立时,分支控制数据c变为0,开始DFG组4的运算处理。另外,参照DFG组1,在进行用于判断DFG组的分支的if语句等条件处理的情况下,例如在if条件成立时分支控制数据c变为1;在if条件不成立时或else条件成立时分支控制数据c变为0。相反而言,针对for语句或if语句等判断DFG组分支的条件分支判断发生的处理,预先生成供给到可重构电路212的设定数据,以便制作上述那样的分支控制数据c。如上所述,设定数据的生成由图中未示出的编译装置来进行。
例如,在DFG组1中,从DFG1-1到DFG1-12为止,是不依存分支控制数据而顺次处理的DFG,DFG1-12的接下来被处理的DFG根据通过在可重构电路212上执行运算处理而执行的分支控制数据c的值而选择为DFG2-1或DFG7-1的其中之一。这样,在本实施例中,将不依存分支控制数据c而决定处理顺序的从DFG1-1到DFG1-12设定为1个DFG组1。在DFG组中最后处理的DFG配置在DFG组的最后,对于DFG组1来说,DFG1-12配置在DFG组1的最后。同样将剩下的DFG分割到中间不包含最后要处理的DFG的DFG组中。而且,图示的DFG流数据是一例,例如也能将DFG组2与DFG组3设定为1个DFG组。在图示的例子中,在DFG组3中,形成有从最终级的DFG3-10返回到最前级的DFG3-1的自循环,但在结合了DFG组2与DFG组3的情况下,该自循环变为返回中间级的DFG。即使在这种情况下,最后处理发生的DFG也是最终级的DFG,不会从中间的DFG移向其他DFG组。
图34表示图33的DFG流数据所对应的设定数据保持部214中的设定数据的存储例。在此,一个DFG设为对应于一个设定数据,一个DFG的设定数据存储在设定数据保持部214的一个地址中。以下,也有将DFG和设定数据不进行特别区别而处理的情况。在本实施例中,如图34所示,将设定数据按DFG组、即设定数据组进行存储。
即,设定数据保持部214将供给到可重构电路212的顺序确定的1个以上的设定数据作为1个设定数据组,以设定数据组为单位保持多个设定数据。而且,在设定数据为1个的情况下,由于仅将该设定数据供给到可重构电路212,故从这方面来说,可以认为供给到可重构电路212的顺序是确定的。另外,在设定数据为2个以上的情况下,在这些设定数据之间需要确定供给到可重构电路212顺序。在此,设定数据保持部214将用于在可重构电路212上构成所希望的电路的多个设定数据分解为7个设定数据群进行保持。此时,设定数据保持部214按照向可重构电路212的供给顺序,将设定数据组中的1个以上的设定数据保持在连续的地址的存储区域内。即,DFG组内的2个以上的DFG的排列与对可重构电路212供给的顺序相同。由此,在将某个DFG组的设定数据供给到可重构电路212时,只要将设定保持部214的读出地址逐一增加即可,可以将从设定数据选择部224向设定数据保持部214供给的读出地址(第1选择信号)的生成单纯化。这样,虽然优选按照处理顺序将一个DFG组内的设定数据存储在设定数据保持部214中,但只要DFG组间的地址分配是恰当的即可。另外,设定数据保持部214保持构成可重构电路212的设定数据以外的时间调整用设定数据(E_DFG)。
图35表示定序装置220的详细内容。定序控制数据保持部222将以下数据作为定序控制数据保持:设定数据保持部214中的DFG组的前端DFG的RAM地址(COMaddr1);分支控制数据c=1的情况下,在定序控制数据保持部222中向接下来读出的地址的移动数(a);在分支控制数据c=0的情况下、在定序控制数据保持部222中向接下来读出的地址的移动数(b);DFG组的DFG数(step);DFG组内输出分支控制数据c的DFG的顺序(pos_c);对DFG组的全部DFG进行处理后增加为时间调整用的E_DFG的数(empty)。在本实施例中,将这些定序控制数据作为一个控制数据组,与DFG组(设定数据组)相对应后存储在一个地址中。示出:在图35的定序控制数据保持部222中,在一个地址内,从左开始按照顺序存储有RAM地址(COMaddr1)、移动数(a)、移动数(b)、DFG组的DFG数(step)、输出分支控制数据c的DFG的顺序(pos_c)、E_DFG的数(empty)。
定序控制数据根据图33所示的DFG流数据而生成。在图35的例子中,将DFG组1的定序控制数据组存储在定序控制数据保持部222的地址0中。同样,将DFG组2的定序控制数据组存储在地址1中,将DFG组3的定序控制数据组存储在地址2中,将DFG组4的定序控制数据组存储在地址3中,将DFG组5的定序控制数据组存储在地址4中,将DFG组6的定序控制数据组存储在地址5中,将DFG组7的定序控制数据组存储在地址6中。而且,存储定序控制数据组的地址无需按照DFG流数据中的DFG编号的顺序来存储,可以是随机的。
在定序控制数据保持部222的地址7中,存储E_DFG的定序控制数据组。该E_DFG的设定数据是对在可重构电路212中构成的所希望的电路的运算结果不会造成影响的设定数据,利用于在处理完全部的DFG组之后进行时间调整。例如,处理装置200中的时钟速率为外部时钟速率的100倍时,相对于外部的1个时钟,在可重构电路212中能够处理的DFG数变为100。外部时钟速率对外部装置与可重构电路212之间输入输出数据的定时有影响。如果处理的DFG数(设定数据数)预先决定,则可以预先确定与外部之间的数据输入输出定时,但在本实施例的运算处理中,由于发生分支处理,故根据条件的判断状况,整体的处理DFG数变化。例如,参照图33,由于在DFG组1的处理结束后,根据条件的判断结果来执行DFG组2或DFG组7的处理,所以作为结果,处理的DFG数变化。因此,在本实施例中,在处理完作为最后的DFG的DFG7-9之后,不变更所保持的运算结果,为了实现与外部装置的定时调整,使E_DFG的设定数据执行100次以内的次数,以调整处理时间。
定序控制数据COMaddr1是设定数据保持部214中的DFG组的前端DFG的地址。而且,在图35所示的例子中,虽然定序控制数据COMaddr1指定DFG组的前端DFG的地址,但例如在根据DFG组内的自循环而返回到DFG组的中间DFG的情况下,与定序控制数据COMaddr1不同,可以设定该中间的DFG的地址。定序控制数据COMaddr1是选择设定数据组的数据,也可以称为组选择控制数据。由于DFG组1中的前端DFG是DFG1-1,故定序控制数据保持部222的地址0中的COMaddr1变为1(参照图34)。即使对于其他DFG组来说也是同样的,参照图34,定序控制数据保持部222的地址1中的COMaddr1为13,地址2中的COMaddr1为16,地址3中的COMaddr1为26,地址4中的COMaddr1为32,地址5中的COMaddr1为38,地址6中的COMaddr1为48。另外,地址7存储了E_DFG所对应的定序控制数据组,COMaddr1变为0。
定序控制数据a及b是向接下来要读出的定序控制数据保持部222的地址的移动数,可以设定相对当前地址的下一DFG组的定序控制数据保持部22的地址的相对值。定序控制数据a及b根据分支控制数据c而由定序控制数据选择部228选择性地读出。参照图33,在DFG组1的处理结束后,如果分支控制数据c=1,则下一处理变为DFG组2。DFG组1的地址0与DFG组2的地址1的相对值为1,因此定序控制数据保持部222的地址0中的定序控制数据a为1。另外,如果分支控制数据c=0,则下一处理变为DFG组7,由于DFG组1的地址0与DFG组7的地址6的相对值为6,故定序控制数据b变为6。对于其他DFG组也同样。例如,在DFG组3中,c=1的情况下,由于接下来处理的DFG组是相同的DFG组3,故定序控制数据a变为0。在c=0的情况下,由于下一处理变为DFG4,故定序控制数据b变为1。另外,在DFG组6中,c=1的情况下,由于接下来处理的DFG组为DFG组2,在DFG流数据上反馈,故定序控制数据a变为-4。而且,定序控制数据a及b可以是接下来读出的定序控制数据保持部222的地址本身。
定序控制数据step是DFG组的DFG数,在DFG组1中,由于具有12个DFG,故step为12。在其他DFG组也同样。
定序控制数据pos_c是DFG组内的输出分支控制数据c的DFG的顺序。例如,在DFG组1中,若设分支控制数据c在将DFG1-5的设定数据映射了的可重构电路212中生成,则定序控制数据pos_c变为5。对于其他DFG组也同样。
定序控制数据empty是对当前的DFG组的全部DFG进行处理后增加为时间调整用的E_DFG的数。具体是,从可重构电路212输出分支控制数据c之后,定序控制数据选择部228以分支控制数据c为基础,指定定序控制数据保持部222的地址,进行所希望的定序控制数据的读出,设定数据选择部224指定设定数据保持部214的地址,比可以向可重构电路212供给所希望的设定数据的时间还提前,在将当前的设定数据组中的设定数据全部供给到可重构电路212的情况下,设定数据保持部214为了调整时间而将E_DFG的必要数的设定数据供给到可重构电路212。
例如,在DFG组4中,若参照定序控制数据pos_c,则DFG组4内的最后的DFG虽然生成并输出分支控制数据c,但根据分支控制数据c,定序控制数据选择部228生成定序控制数据保持部222的读出地址,设定数据选择部224从所读出的定序控制数据中选择设定数据,使该设定数据从设定数据保持部214向可重构电路212供给为止需要规定的时间。而且,在图35的硬件构成中,需要3个DFG的处理时间份。在此期间,如果不向可重构电路212供给设定数据,则有运算结果被覆写的可能性。因此,在到接下来的DFG组中的设定数据被供给到可重构电路212为止的期间内,通过使可重构电路212执行对运算结果没有影响的E_DFG的设定数据,从而回避运算结果被覆写的可能性。因此,在本实施例中,DFG组4中的定序控制数据empty变为3。
另外,在DFG组6中,参照定序控制数据pos_c,以DFG组6内的10个DFG中的第8DFG生成分支控制数据c,由于在到最后的DFG被处理为止的期间经过2个DFG份的时间,故需要插入一个E_DFG(3-2=1)。因此,DFG组6中的定序控制数据empty变为1。
如以上所了解的,在某个DFG组中,在输入分支控制数据c的DFG之后的DFG数为3个以上的情况下,定序控制数据empty变为0。
定序控制部226具有对DFG组的当前DFG的顺序进行计数的计数器。该计数器与从设定数据保持部214输出设定数据的定时同步,逐一增加输出。计数值在设定数据选择部224中作为选择设定数据组内的设定数据的组内选择控制数据而被利用。
计数值在与从定序控制数据保持部222读出的定序控制数据step、empty的合计值相等时复位为初始值1。例如,从定序控制数据保持部222读出的定序控制数据,在从DFG组3变为DFG组4时,计数值设定为1,计数器增量8次,在计数值变为9(step+empty=6+3)的下一个时钟,计数值复位为初始值1。若计数值变为初始值1,则定序控制数据保持部222根据由定序控制数据选择部228供给的选择信号addr,将DFG组5或DFG组6的定序控制数据读出到设定数据选择部224、定序控制部226、定序控制数据选择部228的每一个。
定序控制部226生成判断在设定数据选择部224中是否生成E_DFG的信号flag_empty。在计数值>step时将flag_empty设为1,除此以外将flag_empty设为0。flag_empty是判断了在DFG组的全部DFG被处理后作为时间调整用而需要使E_DFG插入的情况的结果,在为1时,设定数据选择部224生成E_DFG的地址。例如,在DFG组4中,step=6,计数值从1增加到9,但计数值=7、8、9时,flag_empty变为1,除此以外时flag_empty变为0。
设定数据选择部224生成从设定数据保持部214读出的设定数据的读出地址COMaddr2。在flag_empty为1时,COMaddr2被设定为E_DFG的地址(EMPTYDFG_ADDR),在flag_empty为0时、COMaddr2被设定为(COMaddr1+计数值-1)。这样,在flag_empty为0时,设定数据选择部224以COMaddr1(组选择控制数据)及计数值(组内选择控制数据)为基础,生成读出地址COMaddr2。而且,EMPTYDFG_ADDR为0(参照图34)。设定数据选择部224从定序控制部226接收计数值,(COMaddr1+计数值-1)与计数值的增量配合而逐一变大。图36表示设定数据选择部224中的读出地址的生成算法。
如针对图34所进行的说明,设定数据保持部214将1个DFG组内的DFG配合其处理顺序存储在连续的地址内。因此,设定数据选择部224将1个DFG组内的设定数据的地址以规定的定时从最初的设定数据的地址(COMaddr1)开始逐一增加,从而可以将该DFG组内的DFG顺序地供给到可重构电路212。例如,在DFG组4中,计数器一直增加到9。在计数值=7、8、9时,flag_empty变为1。由于COMaddr1=26,故设定数据选择部226是COMaddr2按顺序变化为26、27、28、29、30、31、0、0、0,并供给到设定数据保持部214。通过按照该顺序从设定数据保持部214中读出设定数据,从而在可重构电路212上,以最初的6个时钟生成DFG4-1、…、DFG4-6,以最后的3个时钟生成E_DFG。
定序控制部226生成:表示从可重构电路212向定序控制数据选择部228供给分支控制数据c的定时的信号fla_c;和表示在定序控制数据选择部228中变更为定序控制数据保持部222的下一DFG组的地址的定时的信号change_addr,并供给到定序控制数据选择部228。fla_c是生成在设定数据选择部224中生成分支控制数据c的设定数据的地址之后,加入分支控制数据c被供给到定序控制数据选择部228为止的延迟时间等(DELAYTIME1)而生成的,在计数值为(pos_c+DELAYTIME1)时,fla_c被设定为从0到1。change_addr是在定序控制数据选择部228中加入向定序控制数据保持部222输入读出地址的延迟时间等(DELAYTIME2)而生成的,在计数值为(step+empty-DELAYTIME2)时,change_addr被设定为从0到1。例如,在设为DELAYTIME1=2、DELAYTIME2=1时,在DFG组1中,由于pos_c=5,故在计数值=5+2=7时fla_c变为1。另外,由于step=12、empty=0,故在计数值=12+0-1=11时change_addr变为1。图37表示定序控制部226中的动作算法。
定序控制数据选择部228生成从定序控制数据保持部222读出的定序控制数据的读出地址addr。另外,保持有fla_c=1时的定序控制数据保持部222的定序控制数据a或b的值set_c、和当前的定序控制数据保持部222的读出地址addr。在变为从可重构电路212供给分支控制数据c的定时时(fla_c=1),定序控制数据选择部228,如果分支控制数据c为0,则使定序控制数据b保持为set_c,如果分支控制数据c为1,则使定序控制数据a保持为set_c。而且,在变为变更读出地址addr的定时时(change_addr=1),则定序控制数据选择部228,如果pos_c为0以外的值,则在addr上增加所保持的set_c。另一方面,如果pos_c为0,则是不依存于分支控制数据c的值而唯一决定接下来要读出的DFG组的情况,在addr中增加分支控制数据a。所谓pos_c为0的情况,参照图33及图35,是指DFG组2、DFG组,该情况下不供给分支控制数据,预先确定预先处理的DFG组。
在change_addr为0时,由于是不变更DFG组的时候,故定序控制数据选择部228直接保持addr的值。而且,通过将在此生成的addr设为定序控制数据保持部222的读出地址,从而可以读出所希望的定序控制数据。例如,在DFG组1中,在上述的例子中,计数值=7时fla_c为1,若此时change_addr变为1,则set_c=b=6。而且,在计数值=11时change_addr变为1,此时由于当前的addr为0、pos_c为5(!=0),故通过在addr中加入set_c(=6),从而设定新的addr(=6)。因此,接下来从定序控制数据保持部222读出的定序控制数据称为存储在定序控制数据保持部222的地址6中的DFG组7。在change_addr=0时,由于addr不会变更,故读出相同的DFG组1的定序控制数据。图38表示定序控制数据选择部228中的动作算法。
这样,如上述DFG组1的例子所示,在以DFG组的前级的DFG生成分支控制数据c的情况下,由于在将剩下的DFG的设定数据供给到可重构电路212的期间,可以生成决定下一DFG组的信号并作为set_c来保持,故在DFG组的变更时不会产生因选择而导致的延迟。因此,不仅是DFG组内,即使在DFG组之间也可以没有间断地供给DFG,可以提高处理效率,可以削减消耗电力。另外,定序控制数据保持部222的控制数据不是以DFG为单位,而是通过使其以DFG组为单位来保持,从而可以削减定序控制数据数,因此定序控制数据保持部222的存储器容量变小,可削减电路规模。
接着,以图33为例说明具备这种定序装置220的优点。
例如,在DFG组4中,根据if语句的条件分支来处理DFG组5或DFG组6的其中之一的情况下,如果存在定序装置220,则只要接收表示条件分支的方向的分支控制数据c,处理DFG组5或DFG组6的其中之一即可。在如以往的处理装置那样,定序装置220不存在的情况下,则需要处理DFG组5与DFG组6双方,根据if语句的条件分支的判断结果来选择该结果,处理时间变长。本实施例的处理装置200通过具备定序装置220,从而可以提高处理速度,削减消耗电力。另外,在分支处理中,由于即使在if语句与else语句较大不同的情况下,也可以用相同大小的DFG做成具有与处理量对应的DFG数的DFG组,顺次执行DFG,故可以削减不工作的电路部分,可以提高处理效率。
另外,例如在根据for语句的循环处理而多次调用DFG组3的情况下,本实施例的处理装置200通过具备定序装置220,从而接收表示for语句的循环判断结果的条件分支的方向的分支控制数据c,继续DFG组3的循环处理或退出循环处理而处理DFG组4。因此,在处理装置200中,通过使设定数据保持部214只具有循环处理1次份的DFG组3的设定数据,调用循环次数份的该数据,从而可以实现循环处理。另一方面,在不存在定序装置220的情况下,需要使设定数据保持部214具有全部循环次数份的设定数据并顺次处理该数据,从而设定数据的容量变大。本实施例的处理装置200通过具备定序装置220,从而可以减小设定数据保持部214的容量,可以削减电路规模。进而,循环次序由循环内的运算结果来确定的、循环次数不定的循环处理,如果不具备定序装置220,则事先确定处理顺序是非常困难的,但如果有定序装置,则使用作为循环内的运算结果的分支控制数据c,可以每次都进行是否继续进行循环处理的判断,也可以容易地实现循环次数不定的循环处理。
最后,对具备定序装置220的电路与不具备的电路的实际规模进行比较。在此,假设使用了MPEG-4的IDCT处理部的DFG的情况,将设定数据保持部214、定序控制数据保持部222都设为1端口RAM,作为1位=1.5个门电路(gate)进行换算。在不具备定序装置220的电路中,设定数据保持部214的门电路数为28.5万个门电路。与此相对,在具备定序装置220的电路中,定序装置220的门电路数为0.5万个门电路,设定数据保持部214的门电路数为6.7万个门电路,定序控制数据保持部222的门电路数为0.03万个门电路,全部为7.2万个门电路。因此,具备了定序装置220的电路与不具备的电路相比,可以将电路规模削减为0.25倍。特别是,在将处理装置200作为便携式终端装置而存在的情况下,可以削减电路规模是非常重要的,另外,即使在不是便携式的情况下,电路规模的削减也与消耗电力的削减有关系,能够实现有用性高的处理装置200。
以上,对处理装置的变形例进行了说明。在该变形例中,将分支控制数据c作为可重构电路212的输出而生成,但分支控制数据c也可以有外部装置的状态来决定。该情况下,从外部供给分支控制数据c。
应该认为这次所公开的实施例在所有方面都只是例示,并不是限制性的内容。本发明的范围并不是由上述所说明的内容来表现,而是由技术方案的范围来表现,意旨包括与技术方案的范围均等的含义及范围内所有变更。

Claims (32)

1.一种数据流图处理方法,其中对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理,其特征在于,具备:
将记述了所希望的运算处理的程序分割为2个以上的子程序的分割步骤;
将所述2个以上的子程序的每一个变换为表现算符的处理顺序的依存关系的所述数据流图的步骤。
2.根据权利要求1所述的数据流图处理方法,其特征在于,
所述分割步骤根据所述程序的记述内容来分割该程序。
3.根据权利要求2所述的数据流图处理方法,其特征在于,
所述分割步骤检测所述程序所包含的分支处理,将分支对象的处理的每一个作为所述子程序进行提取。
4.根据权利要求3所述的数据流图处理方法,其特征在于,
还具备判断分支对象的处理量是否超过规定量的步骤;
所述分割步骤在判断为分支对象的处理量超过规定量的情况下,将分支对象的处理作为所述子程序进行提取。
5.根据权利要求3所述的数据流图处理方法,其特征在于,
还具备判断作为所述所希望的运算处理、是否存在没有被记述的命令部分的步骤;
所述分割步骤在所述命令部分存在的情况下,将由该命令部分确定的范围作为所述子程序进行提取。
6.根据权利要求1所述的数据流图处理方法,其特征在于,
还具备在所述程序中追加用于选择条件分支中的分支对象的所述子程序所需的运算处理的步骤。
7.一种可重构电路,其特征在于,
该电路根据从权利要求1所述的数据流图处理方法的结果而得到的数据进行动作。
8.一种数据流图处理方法,其中对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理,其特征在于,
包括:根据记述了所希望的运算处理的程序所包含的条件分支,将该程序变换为2个以上的数据流图的步骤。
9.一种可重构电路,其特征在于,
该电路根据从权利要求8所述的数据流图处理方法的结果而得到的数据进行动作。
10.一种数据流图处理方法,其中对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理,其特征在于,具备:
将记述了所希望的运算处理的程序分割为2个以上的子程序的分割步骤;
生成所述2个以上的子程序的每一个所对应的、表现算符的处理顺序的依存关系的所述数据流图的生成步骤。
11.根据权利要求10所述的数据流图处理方法,其特征在于,
所述生成步骤具有:
确认所述数据流图的连接关系的确认步骤;和
根据确认结果,决定所述数据流图之间的执行顺序的步骤。
12.根据权利要求11所述的数据流图处理方法,其特征在于,
所述确认步骤针对一个数据流图来决定有接下来处理的可能性的全部数据流图。
13.根据权利要求12所述的数据流图处理方法,其特征在于,
还具备:在有接下来处理的可能性的所述数据流图存在多个的情况下,在该数据流图中附加分支条件的步骤。
14.一种可重构电路,其特征在于,
该电路根据从权利要求10所述的数据流图处理方法的结果而得到的数据进行动作。
15.一种数据流图处理方法,其中对能够进行功能变更的可重构电路的动作设定所需的数据流图进行处理,其特征在于,
所述可重构电路按照每个执行步骤来顺次执行与所述功能对应的处理,
该方法具备:
根据使所希望的运算处理执行的程序中的特定的记述内容,将该程序变换为表现算符的处理顺序的依存关系的所述数据流图的步骤;
根据变换后的所述数据流图所对应的所述可重构电路的所述执行步骤数,将所述程序分割为2个以上的子程序的分割步骤。
16.根据权利要求15所述的数据流图处理方法,其特征在于,
在所述分割步骤中,在变换后的所述数据流图所对应的所述可重构电路的所述执行步骤数超过基准数的情况下,将所述程序分割为2个以上的子程序。
17.根据权利要求16所述的数据流图处理方法,其特征在于,
所述基准数根据所述可重构电路的处理能力来设定。
18.根据权利要求15所述的数据流图处理方法,其特征在于,
所述特定的记述内容在从一个运算处理分支为其他多个运算处理的情况下,包括表示用于使运算处理移向该其他的多个运算处理的其中一个的条件的记述内容。
19.根据权利要求15所述的数据流图处理方法,其特征在于,
所述特定的记述内容包括表示用于使相同的运算处理反复执行多次的条件的记述内容。
20.一种可重构电路,其特征在于,
该电路根据从权利要求15所述的数据流图处理方法的结果而得到的数据进行动作。
21.一种处理装置,其特征在于,具备:
能够进行功能变更的可重构电路;
设定数据保持部,其保持用于在所述可重构电路中构成所希望的电路的设定数据,并将所述设定数据供给到所述可重构电路;和
定序装置,其选择从所述设定数据保持部向所述可重构电路供给的设定数据。
22.根据权利要求21所述的处理装置,其特征在于,
所述定序装置具备:
设定数据选择部,其向所述设定数据保持部供给选择设定数据的第1选择信号;
控制数据保持部,其保持用于使所述设定数据选择部生成第1选择信号的控制数据,并将所述控制数据供给到所述设定数据选择部。
23.根据权利要求21所述的处理装置,其特征在于,
所述设定数据保持部,将向所述可重构电路供给的顺序所确定的1个以上设定数据作为1个设定数据组,将多个设定数据以设定数据组为单位来保持。
24.根据权利要求23所述的处理装置,其特征在于,
所述设定数据保持部按照向可重构电路供给的顺序,将设定数据组中的1个以上的设定数据保持在连续地址的存储区域中。
25.根据权利要求23所述的处理装置,其特征在于,
所述控制数据保持部具有选择设定数据组的组选择控制数据。
26.根据权利要求25所述的处理装置,其特征在于,
所述设定数据选择部,以从所述控制数据保持部供给的组选择控制数据为基础,生成第1选择信号。
27.根据权利要求26所述的处理装置,其特征在于,
还具备生成选择所述设定数据组内的设定数据的组内选择控制数据的控制部;
所述设定数据选择部,以组选择控制数据与组内选择控制数据为基础,生成第1选择选择信号。
28.根据权利要求27所述的处理装置,其特征在于,
所述控制部使用对输出逐一增加的计数器来生成组内选择控制数据。
29.根据权利要求21所述的处理装置,其特征在于,
还具备以从所述可重构电路输出的分支控制数据为基础,向所述控制数据保持部供给选择控制数据的第2选择信号的控制数据选择部。
30.根据权利要求29所述的处理装置,其特征在于,
所述控制数据保持部根据所述分支控制数据,保持被所述控制数据选择部选择性读出的控制数据;
所述控制数据选择部,将读出的控制数据为基础来生成所述第2选择信号。
31.根据权利要求29所述的处理装置,其特征在于,
具备控制部,其加入所述控制数据选择部中的延迟时间,生成使所述第2选择信号从所述控制数据选择部向所述控制数据保持部供给的定时信号;
所述控制数据选择部根据从所述控制部供给的定时信号,将所述第2选择信号供给到所述控制数据保持部。
32.根据权利要求22所述的处理装置,其特征在于,
所述设定数据保持部保持对可重构电路中已构成的所希望的电路的运算结果没有影响的设定数据,
在所述分支控制数据从可重构电路输出后,基于所述分支控制数据的设定数据组中的设定数据从所述设定数据保持部供给到可重构电路为止的期间内,在将用于构成所希望的电路的设定数据全部供给到可重构电路的情况下,所述设定数据保持部将对运算结果没有影响的设定数据供给到可重构电路。
CN 200510095979 2004-08-30 2005-08-29 数据流图处理方法及具备可重构电路的处理装置 Pending CN1744093A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004250666 2004-08-30
JP2004250671 2004-08-30
JP2004250671A JP2006065788A (ja) 2004-08-30 2004-08-30 リコンフィギュラブル回路を備えた処理装置
JP2005081919 2005-03-22

Publications (1)

Publication Number Publication Date
CN1744093A true CN1744093A (zh) 2006-03-08

Family

ID=36112196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510095979 Pending CN1744093A (zh) 2004-08-30 2005-08-29 数据流图处理方法及具备可重构电路的处理装置

Country Status (2)

Country Link
JP (1) JP2006065788A (zh)
CN (1) CN1744093A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102282558A (zh) * 2008-11-14 2011-12-14 新思公司 多速率系统折叠中的非折叠算法
CN102438149A (zh) * 2011-10-10 2012-05-02 上海交通大学 一种基于可重构技术的avs反变换的实现方法
CN106648883A (zh) * 2016-09-14 2017-05-10 上海鲲云信息科技有限公司 基于 fpga 的动态可重构硬件加速方法及系统
CN107003869A (zh) * 2014-12-19 2017-08-01 英特尔公司 重构数据流应用而不进行源代码改变或重新编译

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966223B2 (en) * 2005-05-05 2015-02-24 Icera, Inc. Apparatus and method for configurable processing
JP4844406B2 (ja) * 2007-01-25 2011-12-28 富士ゼロックス株式会社 データ処理装置、画像処理装置、及びデータ処理プログラム
JP5175524B2 (ja) * 2007-11-13 2013-04-03 株式会社日立製作所 コンパイラ
JP2009187478A (ja) * 2008-02-08 2009-08-20 Sanyo Electric Co Ltd 情報処理装置、情報処理方法およびプロセッサ

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102282558A (zh) * 2008-11-14 2011-12-14 新思公司 多速率系统折叠中的非折叠算法
CN102438149A (zh) * 2011-10-10 2012-05-02 上海交通大学 一种基于可重构技术的avs反变换的实现方法
CN102438149B (zh) * 2011-10-10 2014-06-18 上海交通大学 一种基于可重构技术的avs反变换的实现方法
CN107003869A (zh) * 2014-12-19 2017-08-01 英特尔公司 重构数据流应用而不进行源代码改变或重新编译
CN107003869B (zh) * 2014-12-19 2020-11-27 英特尔公司 重构数据流应用而不进行源代码改变或重新编译
CN106648883A (zh) * 2016-09-14 2017-05-10 上海鲲云信息科技有限公司 基于 fpga 的动态可重构硬件加速方法及系统
CN106648883B (zh) * 2016-09-14 2020-02-04 深圳鲲云信息科技有限公司 基于fpga的动态可重构硬件加速方法及系统

Also Published As

Publication number Publication date
JP2006065788A (ja) 2006-03-09

Similar Documents

Publication Publication Date Title
CN1744093A (zh) 数据流图处理方法及具备可重构电路的处理装置
CN1264089C (zh) 编译设备和编译方法
CN1302380C (zh) 处理器和编译器
CN100339824C (zh) 高效执行特长指令字的处理器和方法
CN1122216C (zh) 优化器
CN1101019C (zh) 数据序列产生方法及设备、转换方法及计算机
CN1885295A (zh) 使用逻辑单元建置集成电路
CN100338568C (zh) 开发片上系统用的开发环境的生成方法
CN1253806C (zh) 仲裁电路和数据处理系统
CN1684058A (zh) 处理器
CN1482540A (zh) 编译程序、编译程序装置和编译方法
CN1226026A (zh) 数据处理装置
CN1637748A (zh) 可重配置电路、具备可重配置电路的处理装置
CN1783075A (zh) 用于显示网络数据的方法、设备、处理器配置
CN1758221A (zh) 程序处理装置
CN1485735A (zh) 指令调度方法、指令调度设备和指令调度程序
CN1918546A (zh) 程序转换装置及程序转换方法
CN1930552A (zh) 优化编码自动生成系统
CN1609796A (zh) 应用编程接口(api)的设计
CN1173931A (zh) 处理器的定制的基本操作的方法与设备
CN1849608A (zh) 由边界表示数据生成体数据的方法及其程序
CN1975662A (zh) 算术运算单元、信息处理设备和算术运算方法
CN1886744A (zh) 在可扩展的处理器架构中增加高级指令所用的方法和装置
CN1900959A (zh) 设计制造的支援装置、支援程序和支援方法
CN1421004A (zh) 利用符号语言翻译器产生软件代码的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication