CN102693207A - 可重构装置及其方法、信息处理设备及其控制方法 - Google Patents
可重构装置及其方法、信息处理设备及其控制方法 Download PDFInfo
- Publication number
- CN102693207A CN102693207A CN2012100278978A CN201210027897A CN102693207A CN 102693207 A CN102693207 A CN 102693207A CN 2012100278978 A CN2012100278978 A CN 2012100278978A CN 201210027897 A CN201210027897 A CN 201210027897A CN 102693207 A CN102693207 A CN 102693207A
- Authority
- CN
- China
- Prior art keywords
- data flow
- processing
- configuration
- structural detail
- change
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 141
- 230000010365 information processing Effects 0.000 title abstract 2
- 238000012545 processing Methods 0.000 claims abstract description 336
- 230000008859 change Effects 0.000 claims abstract description 158
- 238000011282 treatment Methods 0.000 claims description 161
- 230000008569 process Effects 0.000 claims description 70
- 238000009826 distribution Methods 0.000 claims description 45
- 230000008676 import Effects 0.000 claims description 23
- 238000011156 evaluation Methods 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 230000009471 action Effects 0.000 claims description 3
- 238000004904 shortening Methods 0.000 abstract description 3
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 230000014509 gene expression Effects 0.000 description 63
- 230000006854 communication Effects 0.000 description 9
- 239000000654 additive Substances 0.000 description 8
- 230000000996 additive effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000002922 simulated annealing Methods 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000011221 initial treatment Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
Abstract
本发明涉及可重构装置及其方法、信息处理设备及其控制方法。根据本发明,在改变可重构装置的电路结构时,在不会由于添加机构而增大电路规模的情况下,避免对处理内容的依赖,同时缩短电路结构改变时间段。考虑到多个数据流程之间的执行顺序关系,在约束范围内降低改变处理时的电路结构改变所需的设置改变计数,从而缩短电路结构改变时间段。
Description
技术领域
本发明涉及一种可重构装置、处理分配方法、处理配置方法、信息处理设备及其控制方法。
背景技术
传统上,提出了一种包括所制造的LSI电路设备的、可以通过改变内部电路结构来改变该电路所执行的处理内容的可重构装置。由于可以改变所制造的LSI电路设备的处理,因而不必随着规格的改变而重新制造LSI。由于可以降低制造成本或缩短开发周期,因而当前在各种领域使用这类可重构装置。
代表性的可重构装置安装有许多LUT(查找表)或许多处理元件。各元件都与诸如多路复用器等的切换元件连接。注意,将用于使诸如LUT、处理元件或切换元件等的各结构元件进行动作的设置统称为电路结构信息。尽管存在用于生成电路结构信息的各种方法,但是这些方法中的许多方法顺次执行(1)被称为技术映射的逻辑分配处理的步骤、(2)在各个结构元件中物理地对处理进行配置的步骤、以及(3)对各个结构元件进行路由的步骤。通过执行这三个步骤,最终生成电路结构信息。
在逻辑处理分配步骤(1)中,将处理分配给结构元件。更具体地,在无需指定物理结构元件的情况下将各处理分配给逻辑结构元件。作为顺序改变操作用的指标,通常使用电路的面积、工作速度或功耗。在配置步骤(2)中,确定执行各处理的物理分配、即可重构装置内的结构元件。根据配置了具有数据输入/输出关系的处理的处理元件之间的距离,延迟时间(最大工作频率)由于数据通信所涉及的切换元件的数量的变化而明显改变。为缩短延迟时间,通常重要的是将具有输入/输出关系的处理配置在相互尽可能靠近的处理元件中。在路由步骤(3)中,通过具有数据通信输入/输出关系的处理元件之间的数据通信用的切换元件来确定路由。由于与配置步骤相比,进行更详细的路由,因而重要的确定路由以缩短处理元件之间的延迟时间。
近年来,随着集成程度的提高,可重构装置中可执行的处理的规模增大。另外,对处理本身的要求变得复杂和精密,因此,在一个可重构装置中可能难以一次执行所有处理。为解决该问题,存在一种用于在一个可重构装置中时分并顺次执行处理的方法。更具体地,对期望的处理进行分割,并且生成与分割后的处理相对应的电路结构信息。此后,基于该电路结构信息,顺次执行可重构装置的电路结构的改变操作和处理。这使得能够在可重构装置中执行大规模的处理。然而,在每次改变电路结构的情况下,总处理时间延长,因而使速度性能劣化。当处理分割数量大时,这也使得处理速度劣化。
作为用于解决该问题的方法,存在一种多上下文可重构装置(multicontext reconfigurable device)。上下文表示电路结构信息,并且多上下文可重构装置表示安装有用于存储多个电路结构信息的存储器的可重构装置。当改变电路结构时,可以通过切换存储器来重构装置,并且可以进行高速切换,因而显著缩短了电路的重构时间。然而,由于需要安装电路结构信息用的附加存储器,因而电路规模变大。
为解决该问题,日本专利3558119号提出了一种基于骨架电路技术(skeleton circuit technique)的方法作为用于缩短重构时间的方法。在该方法中,预先在可重构装置中生成被称为基于优先级电路的电路结构信息。注意,基于优先级电路表示下面的电路结构信息,该电路结构信息包括所有的多个电路结构信息共用的共用电路部分以及不是多个电路共用的且在可重构装置上不共享电路结构信息的非排他独立电路部分。通过仅对可重构装置的电路的不同进行部分重构,构建了进行处理所需的电路。与多上下文型相比,由于不需要配置用的附加存储器,因而该方法不会增大电路规模。
可重构装置通常可以执行各种类型的用途,并且由于用途的不同,共同部分少。要重构的电路结构信息的数量根据用途而改变。在日本专利3558119号所述的基于优先级电路生成中,在共同部分少或者电路结构信息的数量大且显著超出可重构装置的电路规模的情况下,难以有效地缩短用于改变电路结构的时间段。
发明内容
本发明是考虑到上述问题而作出的,并且提供了通过考虑电路结构改变顺序而在不增大电路规模的情况下有效地缩短电路改变时间段的可重构装置、处理分配方法、处理配置方法、信息处理设备及其控制方法。
根据本发明的第一方面,提供一种处理分配方法,用于针对包括多个结构元件的可重构装置,向各结构元件分配处理,所述处理分配方法包括以下步骤:数据流程输入步骤,用于输入至少两个不同的数据流程以及数据流程的执行顺序;约束步骤,用于输入所述结构元件的约束;以及处理分配确定步骤,用于确定处理分配,以使得基于所述结构元件的约束和所述执行顺序对所述结构元件进行重构所需的设置改变计数变小。
根据本发明的第二方面,提供一种可重构装置,其包括能够将用于实现数据流程的处理分配至的多个结构元件,所述可重构装置还包括:数据流程输入单元,用于输入至少两个不同的数据流程以及数据流程的执行顺序;约束输入单元,用于输入所述结构元件的约束;以及处理分配确定单元,用于确定处理分配,以使得基于所述结构元件的约束和所述执行顺序对所述结构元件进行重构所需的设置改变计数变小。
根据本发明的第三方面,提供一种信息处理设备,其包括能够将用于实现数据流程的处理分配至的多个结构元件,所述信息处理设备还包括:输入单元,用于输入用于通过所述多个结构元件实现第一数据流程的设置信息以及所述多个结构元件的配置信息;以及控制器,用于基于所述设置信息和所述配置信息,将用于实现所述第一数据流程的处理分配给所述多个结构元件,以使得与用于实现第二数据流程的设置之间要进行改变的结构元件的数量变小。
根据本发明的第四方面,提供一种信息处理设备的控制方法,所述信息处理设备包括输入单元、控制器以及能够将用于实现数据流程的处理分配至的多个结构元件,所述控制方法包括以下步骤:输入步骤,用于输入用于通过所述多个结构元件实现第一数据流程的设置信息以及所述多个结构元件的配置信息;以及控制步骤,用于基于所述设置信息和所述配置信息,将用于实现所述第一数据流程的处理分配给所述多个结构元件,以使得与用于实现第二数据流程的设置之间要进行改变的结构元件的数量变小。
根据本发明的第五方面,提供一种处理配置方法,用于针对包括多个结构元件的可重构装置,确定执行数据流程的各处理的结构元件,所述处理配置方法包括以下步骤:输入步骤,用于输入至少两个不同的数据流程以及数据流程的处理顺序;约束步骤,用于输入所述可重构装置的所述结构元件的约束;以及确定步骤,用于通过使用根据所述数据流程进行重构所需的设置改变计数以及基于所述数据流程的数据输入/输出的依赖关系的各结构元件之间的距离来确定所述结构元件的配置,从而确定用于执行所需处理的结构元件。
根据本发明的第六方面,提供一种可重构装置,用于基于根据上述处理配置方法所生成的设置信息而进行工作。
根据本发明,可以通过生成电路结构信息以减少重构所需的设置的数量,在不会增大电路规模的情况下,缩短可重构装置的重构时间段。
通过以下(参考附图)对典型实施例的说明,本发明的其它特征将变得明显。
附图说明
图1是示出包括可重构装置的处理设备的结构的例子的图;
图2是示出可重构装置的结构的例子的图;
图3是示出可重构装置的元件之间的数据通信过程的例子的图;
图4是示出处理元件的结构的例子的图;
图5是示出配置命令的格式的例子的图;
图6是示出存储在处理元件的配置存储器中的设置的概况的图;
图7是示出用于读取/写设置的过程的流程图;
图8是示出切换元件的结构的例子的图;
图9是示出存储在切换元件的配置存储器中的设置的概况的图;
图10是示出多个数据流程的顺次执行的时序图;
图11是示出处理分配的概况的图;
图12是示出根据第一实施例的用于执行数据流程的处理分配的概况的图;
图13是示出根据第一实施例的用于执行处理分配的处理的流程图;
图14是示出根据第二实施例的用于执行数据流程的处理分配的概况的图;
图15是示出根据第三实施例的用于执行数据流程的处理分配的概况的图;
图16是示出根据第四实施例的用于执行数据流程的处理分配的概况的图;
图17是示出根据第五实施例的处理元件中的数据流程的处理的配置例子的图;
图18是示出根据第五实施例的用于处理配置的处理元件阵列的模型例子的图;
图19是示出根据第五实施例的用于执行多个数据流程的处理配置的概况的图;
图20是示出根据第五实施例的用于执行处理配置的过程的流程图;
图21是示出根据第六实施例的用于执行数据流程的处理配置的概况的图;
图22是示出根据第七实施例的用于执行数据流程的处理配置的概况的图;
图23是示出根据第八实施例的用于执行数据流程的处理配置的概况的图;
图24是示出根据第九实施例的用于限制数据流程的处理可配置范围的概况的图;以及
图25是示出用于创建电路结构信息的设备的结构的框图。
具体实施方式
下面将参考附图来详细说明应用本发明的优选实施例。
图1是示出根据本发明实施例的具有可重构装置的系统的总体结构的例子的图。外部存储器101将电路结构信息106保持在其中。电路结构信息106包括用于使可重构装置105的元件进行动作的一组设置。配置控制器102经由连接线104从存储器101获取电路结构信息106。经由连接线103将所获取的电路结构信息106发送给可重构装置105。注意,作为可重构装置105的例子,示出了处理元件阵列。
下面将详细说明处理元件阵列的内部。然而,本发明不局限于各处理元件的以下结构或以下路由结构。
图2是示出根据本实施例的用作可重构装置105的处理元件阵列的概况的图。在可重构装置105中,以二维网格图案配置各自用作具有8个输入和8个输出的输入/输出处理部件的切换元件201,并且在切换元件201的网格内配置各自用作具有4个输入和4个输出的计算处理部件的处理元件202。在切换元件201a~201i各自的8个输入和8个输出中,通过连接线203a和203b,将四组各自的一个输入和一个输出分别与东、西、南和北(右、左、下和上)方向上的其它四个切换元件201连接。此外,通过连接线204a和204b,将其它四组各自的一个输入和一个输出分别与东北、东南、西南和西北方向上的其它四个处理元件202双向连接。切换元件201a~201i和处理元件202a~202d通过连接线205在一个方向上串联连接。
对连接线203a、203b、204a和204b进行连接,以在切换元件201和处理元件202之间对要处理的数据进行通信。使用连接线205向切换元件201和处理元件202提供设置。基于这些设置,切换元件201确定要处理的数据的输入和输出目的地,并且处理元件202确定要处理的数据的处理内容及输入和输出目的地。注意,图2中的连接线203a、203b、204a、204b和205各自的箭头的方向表示数据的方向。切换元件201a~201i具有相同结构,并且处理元件202a~202d具有相同结构。
图3示出使用有效信号和准备就绪信号的二线式握手协议作为连接线203a、203b、204a、204b和205各自的通信协议的例子。参考图3,在作为发送器侧的模块A 301和作为接收器侧的模块B 302之间连接有数据信号线303、有效信号线304和准备就绪信号线305。发送器侧经由有效信号线304针对接收器侧使用有效信号,以表示发送允许状态。接收器侧经由准备就绪信号线305针对发送器侧使用准备就绪信号,以表示数据接收允许状态。在该协议中,在模块A301的有效信号线304和模块B302的准备就绪信号线305这两者有效时的时钟的上升沿处,将数据信号线303的数据从模块A301发送至模块B302。在图3所示的波形中,分别在时刻306a、306b、306c和306d将数据A、B、C和D从模块A301传送至模块B302。
图4示出处理元件202的结构。处理元件202包括配置单元401、输入单元402、计算单元403、输出单元404和临时缓冲器405。
配置单元401对用于确定处理元件202的操作内容的设置进行管理。输入单元402基于配置单元401的设置执行输入处理。计算单元403基于配置单元401的设置执行计算处理。此外,计算单元403可以将处理结果保持在临时缓冲器405中,以再次输入给计算单元403。输出单元404基于配置单元401的设置执行输出处理。
下面将更详细地说明处理元件202的操作。输入单元402通过连接线406从配置单元401获取用于确定输入目的地的设置。所获取的设置指定与外部连接的模块进行通信所要使用的输入端口。基于该信息,通过连接线204a-ne、204a-se、204a-sw或204a-nw获取要处理的数据。注意,附图标记ne、se、sw和nw分别表示各方向。连接线204a-ne与东北方向上配置的切换元件连接。连接线204a-se与在东南方向上配置的切换元件连接。连接线204a-sw与西南方向上配置的切换元件连接。连接线204a-nw与西北方向上配置的切换元件连接。通过连接线409将所获取的数据发送给计算单元403。
计算单元403通过连接线407从配置单元401获取用于确定处理内容的设置。基于所获取的设置,计算单元403获取从输入单元402所发送的数据,并且执行所设置的处理。然后,计算单元403通过连接线410将处理后的数据发送给输出单元404。
计算单元403具有至少一个计算部件。计算部件包括例如诸如加法/减法部件、比较器、乘法器、除法器或逻辑计算部件等的计算部件、这些部件的组合、或者这些部件和其它计算部件的组合。假定作为实际例子,计算单元403可以执行积和运算及比较运算,并且可以选择性地在一个运算中执行其中一个处理。在积和运算中,单元403计算ab+cd。在比较运算中,如果a>b,则单元403输出c;否则,单元403输出d。还将计算单元403配置成能够对于一个输入重复使用计算部件。当重复使用计算部件时,通过连接线412将计算部件中所使用的处理结果临时保存在临时缓冲器中,然后通过连接线411将其再次输入给计算单元403。单元403在计算部件中对再次输入的数据执行处理。如稍后将要详细说明的那样,上述设置指定运算的类型、重复处理以及各个处理所需的变量a、b、c和d所参考的值或者变量a、b、c和d在其为固定值时的值。
输出单元404通过连接线408获取表示处理后的数据的输出目的地的设置。所获取的设置指定与切换元件进行通信要使用的输出端口。基于该信息,通过连接线204b-ne、204b-se、204b-sw或204b-nw将数据输出给切换元件。注意,连接线204b-ne与东北方向上配置的切换元件连接。连接线204b-se与东南方向上配置的切换元件连接。连接线204b-sw与西南方向上配置的切换元件连接。连接线204b-nw与西北方向上配置的切换元件连接。
接着将说明配置单元401的操作。配置单元401保持各处理元件202的唯一ID。配置单元获取从输入侧的连接线205所发送的设置,在自身内对这些设置进行处理,并且通过输出侧的连接线205输出这些设置。配置单元401具有用于存储与其自身的ID相对应的设置的配置存储器413。
图5示出发送至配置单元/从配置单元所接收到的设置的配置命令501。配置命令501包括读取/写模式502、ID503、配置地址504和设置值505。读取/写模式502是用于确定配置命令的读取/写处理的信号。ID503是用于确定要处理的处理元件202的信号。配置地址504是用于指定保持配置单元401的设置的存储器内的地址的信号。设置值505是表示实际设置值的信号。基于实际基础架构来确定图5中的位宽度M、N、O和P。
下面将更详细地说明基于上述结构的设置。参考图6,附图标记601表示与由图5的配置地址504所指定的地址相对应的配置存储器413的地址。附图标记602表示与图5的设置值505相对应的实际设置值。在本实施例中,将每一值都称为设置。然而,本发明不局限于上述单元。在图6中,将与输入单元402、计算单元403和输出单元404相关联的设置保持在配置存储器413中。
使用地址0x0000_0000(“0x”表示十六进制数)处的设置值来确定输入单元402的输入目的地,并且基于该值来确定预定输入目的地。使用地址0x0000_0004处的迭代次数来确定计算单元403中的计算迭代计数,并且基于该值来确定计算迭代计数。在本实施例中,假定多达四次计算。
使用地址0x0000_0008处的操作设置来确定第一次计算中执行的运算的类型,并且基于该值来判断是执行积和运算还是执行比较运算。
使用地址0x0000_000c处的变量设置来确定第一次计算中的变量a的值的参考目的地。参考目的地的例子包括来自输入端口的输入值、配置存储器413中所保持的固定值、以及保持之前的计算结果的临时缓冲器的值。根据该地址处的值,将这些值中的一个输入给变量a。类似于地址0x0000_000c,使用地址0x0000_0010、0x0000_0014和0x0000_0018处的变量设置来分别确定第一次计算中的变量b、c和d的值的参考目的地。当在第一次计算中,地址0x0000_000c处所指定的参考目的地是固定值时,地址0x0000_001c处的参数具有用于变量a的固定值。类似于地址0x0000_001c,在第一次计算中,对于变量b、c和d,使用地址0x0000_0020、0x0000_0024和0x0000_0028处的固定值。
类似于地址0x0000_0008~0x0000_0028处与第一次计算相关联的设置,地址0x0000_002c~0x0000_0094处的值分别表示第二次计算、第三次计算和第四次计算中的设置值。最后,地址0x0000_0098处的输出选择值是用于确定输出单元404的输出目的地的设置值,并且基于该值来确定预定输出目的地。
图7示出在配置单元中执行的处理过程。在步骤S701,输入配置命令501。在步骤S702,配置单元401判断输入的配置命令501所指定的ID503是否与其本身的ID一致。如果单元401在步骤S702判断为ID503与自身的ID不一致,则在步骤S711和S712在不执行任何处理的情况下将输入的配置命令501输出;否则,单元401在步骤S703判断读取/写模式502的值是否表示读取模式。如果该值不表示读取模式,则单元401在步骤S707判断该值是否表示写模式。如果均不表示这两个模式,则单元401在步骤S711和S712在不执行任何处理的情况下输出命令501。如果判断为该值表示读取模式,则单元401在步骤S704从配置存储器413读出由配置地址504所指定的数据。然后,单元401在步骤S705将读出的数据写入输入的配置命令501的设置值505中,并且在步骤S706输出配置命令501。如果判断为该值表示写模式,则单元401在步骤S708将输入的配置命令501的设置值505写入由配置地址504所指定的配置存储器413中。单元401在步骤S709不改变输入的配置命令501的值,并且在步骤S710原样输出该配置命令。针对一个配置命令可以改变一个设置值505。通过顺次发送配置命令,并且改变所有必要的设置值,实现了期望的处理。也就是说,基于设置的数量来确定处理内容的切换时间。
图8示出切换元件201的结构。切换元件201包括配置单元801和交叉开关802。配置单元801对用于确定数据所传送至的连接目的地的设置值进行管理。交叉开关802基于配置单元801的设置,以一一对应关系连接输入和输出。类似于处理元件202的配置单元401,配置单元801保持各切换元件201的唯一ID。配置单元801获取从输入侧的连接线205所发送的设置值,在配置单元内执行处理,并且通过输出侧的连接线205输出设置值。配置单元801将所获取的设置保持在配置存储器804中。配置单元801的配置命令和处理过程分别与图5和7所示的配置命令和处理过程相同。交叉开关802通过连接线803从配置单元801获取用于确定数据输入和输出目的地的设置。切换元件201基于所获取的设置值,通过连接线203a-w、203a-s、203b-e、203b-n、204b-ne、204b-se、204b-sw或204b-nw来获取数据。通过所连接的连接线203a-e、203a-n、203b-w、203b-s、204a-ne、204a-se、204a-sw或204a-nw传送所获取的数据。
注意,连接线203a-w和203a-s分别表示与西方向和南方向上配置的切换元件的连接线。连接线203b-e和203b-n分别表示与东方向和北方向上配置的切换元件的连接线。
连接线203a-e和203a-n分别表示与东方向和北方向上配置的切换元件的连接线。连接线203b-w和203b-s分别表示与西方向和南方向上配置的切换元件的连接线。
连接线204a-ne、204a-se、204a-sw和204a-nw分别表示与东北方向、东南方向、西南方向和西北方向上配置的处理元件的连接线。连接线204b-ne、204b-se、204b-sw和204b-nw分别表示与东北方向、东南方向、西南方向和西北方向上配置的处理元件的连接线。
图9示出配置存储器804中保持的、与切换元件201的交叉开关802的输入/输出的连接线相关联的设置。附图标记901表示与由图5的配置地址504所指定的地址相对应的存储器地址;并且附图标记902表示与图5的设置值505相对应的设置值。地址0x0000_0000处的连接设置具有用于确定来自连接线203a-w的输入被输出至的连接线203a-e、203a-n、203b-w、203b-s、204a-ne、204a-se、204a-sw或204a-nw的设置值。类似于地址0x0000_0000,使用地址0x0000_0004处的设置值来确定来自连接线203a-s的输入被输出至的连接线。类似于地址0x0000_0000,使用地址0x0000_0008处的设置值来确定来自连接线203b-e的输入被输出至的连接线。类似于地址0x0000_0000,使用地址0x0000_000c处的设置值来确定来自连接线203b-n的输入被输出至的连接线。类似于地址0x0000_0000,使用地址0x0000_0010处的设置值来确定来自连接线204b-ne的输入被输出至的连接线。类似于地址0x0000_0000,使用地址0x0000_0014处的设置值来确定来自连接线204b-se的输入被输出至的连接线。类似于地址0x0000_0000,使用地址0x0000_0018处的设置值来确定来自连接线204b-sw的输入被输出至的连接线。类似于地址0x0000_0000,使用地址0x0000_001c处的设置值来确定来自连接线204b-nw的输入被输出至的连接线。
图10示出用于通过改变上述可重构装置的多个类型的结构来实现期望处理的时序图。图10是一个可重构装置顺次执行多个不同的数据流程A~Z的时序图。在本实施例中,执行数据流程输入以输入数据流程和数据流程的执行顺序。可一次分配给可重构装置的处理单位构成了本实施例中处理的数据流程。预先生成用于处理各数据流程的设置。可重构装置是基于针对自身预先生成的设置来进行重构的,并且利用该结构执行处理。以期望的执行顺序对数据流程执行这些处理。
假定数据流程A经过了处理分配,并且数据流程B是处理分配对象。更具体地,参考用于执行经过了处理分配的数据流程A的设置值,然后确定数据流程B的处理分配。在通过参考数据流程A的处理分配而确定了数据流程B的处理分配之后,认为数据流程B经过了处理分配,并且数据流程C成为处理分配对象。更具体地,类似于数据流程B的处理分配的确定,参考用于执行经过了处理分配的数据流程B的设置值,然后确定数据流程C的处理分配。重复上述过程,使得能够对数据流程A~Z执行处理分配。
说明数据流程的处理到可重构装置的处理元件的分配。数据流程的处理到处理元件的分配表示了用于将数据流程的各个处理逻辑分配给处理元件的方法。更具体地,如图11所示,确定了执行与数据流程的各节点1105相对应的处理内容的处理元件,并且还确定了执行顺序。在图11的左侧示出数据流程A。在图11的中间示出处理分配例子。在图11的右侧示出基于处理分配的图6所示的设置。如上所述,作为本实施例所述的处理元件的功能,假定了处理迭代计数、各处理的处理内容以及处理内容所需的固定值,并且实际地确定这些设置。假定最大处理迭代计数在本实施例中为4。将组1101a~1104a分别按顺序分配给不同的处理元件202。基于组1101a~1104a,分别确定处理元件202-1~202-4的设置1101b~1104b。
根据本发明,提供了用于降低在如图10所示在一个可重构装置中切换处理内容(数据流程)时所需的、图11所示的设置的数量的处理分配方法。图12示出当将可重构装置中的处理从数据流程A切换成数据流程B时的处理元件202-1~202-4的设置改变的概况。假定数据流程1204的处理对应于时序图中的处理1201,并且已分配该处理。还假定数据流程1205的处理对应于时序图中的处理1203,并且数据流程1205是处理分配对象。数据流程1204和1205的处理被分配至的处理元件202-1~202-4表示逻辑上相同的处理元件。在数据流程A的处理中,设置1101b~1104b分别与处理元件202-1~202-4相关联。在数据流程B的处理中,设置1206~1209分别与处理元件202-1~202-4相关联。在处理元件202-1中,在该时序图的从数据流程A到数据流程B的设置改变时间段1202期间,进行从设置1101b到设置1206的设置改变1210。在处理元件202-2中,在该时序图的从数据流程A到数据流程B的设置改变时间段1202期间,进行从设置1102b到设置1207的设置改变1211。在处理元件202-3中,在该时序图的从数据流程A到数据流程B的设置改变时间段1202期间,进行从设置1103b到设置1208的设置改变1212。在处理元件202-4中,在时序图的从数据流程A到数据流程B的设置改变时间段1202期间,进行从设置1104b到设置1209的设置改变1213。在本实施例中,为执行用于数据流程B的处理分配,参考经过了处理元件202-1~202-4中的处理分配的数据流程A。然后,以降低进行设置改变1210、1211、1212和1213所需的设置改变计数为目的,对于数据流程B执行处理分配。
图25是示出用于在将数据流程A转变成数据流程B时的生成电路结构信息106的设备的结构的框图。参考图25,附图标记2501表示整体控制设备的CPU;附图标记2502表示用于存储引导程序和BIOS的ROM;附图标记2503表示用作CPU2501的工作区的用于存储OS(操作系统)和应用程序的RAM;以及附图标记2504表示用于存储OS、用于创建电路结构信息106的应用程序、和各种类型的数据的硬盘驱动器(HDD)。键盘2505和鼠标2506各自用作用户接口。附图标记2507表示包含视频存储器和显示控制器的显示控制器;以及附图标记2508表示用于接收来自显示控制器2507的视频信号并进行显示的显示装置。附图标记2509表示用于与各种类型的外部装置进行通信的接口。例如,如果接口2509与图1所示的外部存储器101连接,则可以将由该设备所创建的电路结构信息106写入外部存储器101中。
当接通具有上述结构的设备的电源时,CPU2501执行存储在ROM2502中的引导程序,将存储在HDD2504中的OS装载进RAM,然后启动用于创建电路结构信息106的应用程序,从而使该设备用作电路结构信息创建设备。
下面将参考图13所示的流程图来说明用作电路结构信息创建设备的设备的处理过程。尽管该过程是基于模拟退火的处理分配方法的例子,但是本发明不局限于此。可以使用诸如遗传算法等的近似解和各种数值最优化方法。
将参考图12说明用于解释该流程图所需的元件。假定i是表示每一数据流程的索引,j是处理元件的索引,并且k是与图6的地址601相对应的处理元件内的存储器的配置地址。然后,ui,j,k表示各存储器内的设置值。假定数据流程i0经过了处理分配,并且数据流程i1是处理分配对象。在步骤S1301,输入多个数据流程和它们的执行顺序关系(i的顺序)。对于经过了处理分配的数据流程,同样输入其设置值ui0,j,k。在本实施例中,数据流程1204已经过了处理分配,并且各处理元件的存储器内的与数据流程1204相关联的设置值是固定值。数据流程1205是处理分配对象。
在步骤S1302,输入所需规格和硬件约束。硬件约束包括诸如可重构装置内的处理元件的数量、处理元件中可处理的处理迭代计数以及计算单元的类型等的硬件配置的约束。所需规格包括诸如使用的处理元件的数量、处理迭代计数和可使用的计算单元的类型等的在硬件使用中应受限制的项。约束还包括:在处理的输入和输出之间的顺序关系中没有矛盾以及没有死锁。对于经过了处理分配的数据流程,约束包括不改变处理分配。注意,本发明不局限于上述约束。
在步骤S1303,对于作为处理分配对象的数据流程执行处理分配。作为初始处理分配方法,使用用于随机分配处理的方法或用于按照数据流程的深度方向顺序分配处理的方法。然而,本发明不局限于此。除在初始分配中以外,还基于模拟退火改变处理分配,从而随机选择和交换两个配置。在本实施例中,对于作为处理分配对象的数据流程1205执行初始处理分配或处理分配改变。对于经过了处理分配的数据流程,根据约束不进行处理分配改变。
在步骤S1304,判断处理分配结果是否满足步骤S1302输入的所需规格。
如以下等式(1)所示,如果满足约束,则在惩罚变量p0中设置0;否则,在惩罚变量p0中设置惩罚值Cp0。
在本实施例中,在违反约束时,将Cp0设为相同的常数。然而,Cp0可以是根据违反项的变量值。在步骤S1305,判断处理分配结果是否满足步骤S1302所输入的硬件约束。如以下等式(2)所示,如果满足约束,则在惩罚变量P1中设置0;否则,在惩罚变量P1中设置惩罚值Cp1。
在本实施例中,在违反约束时,将Cp1设为相同的常数。然而,Cp1可以是根据违反项的变量值。在步骤S1306,计算对象数据流程改变时的设置改变计数,从而计算评价值。参考图12的例子,评价值表示在设置改变1210、1211、1212和1213中需要改变的设置的数量。更具体地,如果经过了处理分配的数据流程i0中的设置值ui0,j,k不等于作为处理分配对象的数据流程i1中的相同地址处的设置值ui1,j,k,则将α1相加到设置改变计数;否则,不执行加法运算。对于所有处理元件j的所有存储器k执行上述计算。可以通过如下等式给出上述设置改变计数。
其中,α1通常是1。然而,可以根据处理元件的配置存储器的结构来改变设置所存储的各地址的权重。还可以针对各数据流程分配权重,以针对各数据流程分配切换时间的优先级。
如图7所示,针对一个配置命令可以改变一个设置值。因此,如果命令的数量减少,则可以缩短处理内容的切换时间。基于上述等式,通过如下等式给出该步骤中的用于计算评价值的等式。
评价值=s+p0+p1 ...(4)
也就是说,在满足所需规格和硬件约束的情况下,由于重构所需的设置改变计数较小,因而上述评价值变得较小。最后,在步骤S1307基于模拟退火判断是否达到目标。如果达到了目标,则结束该处理;否则,处理返回到步骤S1303以重复步骤S1303~S1307。这意味着重复该处理直到获得十分良好的结果或者过去了预定的计算时间为止。
结果,在HDD2504中生成电路结构信息106。因此,仅需要经由接口2509将该信息写入要使用的外部存储器101中,并且将该存储器装配在商品上。
注意,在本实施例说明了外部设备(图25)创建电路结构信息106的情况。这适用于下述的所有其它实施例。配置控制器102可以执行图13所示的处理,并且创建电路结构信息106。例如,外部存储器101保持多个数据流程中的各个数据流程的设置(所需处理器的数量和各处理器的处理参数),并且配置控制器102基于多个数据流程的设置来创建电路结构信息106。这同样适用于下述的所有其它实施例。
由于一般的可重构装置中的用于将数据流程的处理分配至处理元件的方法不考虑设置改变计数,因而在数据流程的处理改变时需要改变所有设置。本发明关注了数据流程的处理顺序,并且降低作为最小单位的设置水平的总改变计数,因而使得能够有效降低设置改变计数。
第二实施例
将说明本发明的第二实施例。图14示出根据第二实施例的处理的时序图和处理分配的概况。本实施例涉及下面的情况下的处理分配:当通过改变可重构装置的设置来执行多个数据流程的处理时,确定了各数据流程的处理内容,但是数据流程的执行顺序是不确定的,并且该执行顺序根据状况或输入数据而改变。更具体地,图14假定了下面的情况:如时序图1401所示,由可重构装置执行的处理的执行顺序不是恒定的,而是根据结果或状态而改变。
在时序图1401的时间段1402期间,执行与数据流程A相关联的处理。在时间段1404和1408期间,执行与数据流程C相关联的处理。在时间段1406期间,执行与数据流程B相关联的处理。在时间段1403期间,进行从数据流程A到数据流程C的设置改变。在时间段1405期间,进行从数据流程C到数据流程B的设置改变。在时间段1407期间,进行从数据流程B到数据流程C的设置改变。在本实施例中,由于数据流程A、B和C的执行顺序不是恒定的,因而需要考虑数据流程之间的所有设置改变来执行处理分配。所有数据流程A、B和C都是处理分配对象。
在图14中,附图标记1409、1410和1411分别表示针对数据流程A、B和C的PE202-1~202-4的设置例子,并且对于所有数据流程A、B和C一次统一执行处理分配。如第一实施例一样,设置例子1409、1410和1411对应于图6所示的设置。第二实施例关注了PE202-1~202-4中数据流程A和B、B和C以及C和A之间的数据流程改变所需的总设置改变计数。通过计算总计数作为评价值,降低了可重构装置进行重构时的设置改变计数。
注意,附图标记1412、1415、1418和1421分别表示数据流程A和B之间的PE202-1~202-4的设置改变。附图标记1413、1416、1419和1422分别表示数据流程B和C之间的PE202-1~202-4的设置改变。附图标记1414、1417、1420和1423分别表示数据流程C和A之间的PE202-1~202-4的设置改变。
第二实施例与第一实施例的不同之处在于:对于多个数据流程同时执行处理分配。在图13的步骤S1301,输入多个数据流程,并且还输入表示执行顺序为任意的信息。
对于作为处理分配对象的所有数据流程1409、1410和1411执行图13的步骤S1303的处理分配。对于图13的步骤S 1306所使用的设置改变计数,与第一实施例相比,存在以下不同。
如果作为处理分配对象的数据流程i0中的设置值ui0,j,k不等于作为处理分配对象的数据流程i1中的相同地址处的设置值ui1,j,k,则将α2相加到设置改变计数。如果作为处理分配对象的数据流程i1中的设置值ui1,j,k不等于作为处理分配对象的数据流程i2中的相同地址处的设置值ui2,j,k,则将β2相加到设置改变计数。此外,如果作为处理分配对象的数据流程i2中的设置值ui2,j,k不等于作为处理分配对象的数据流程i0中的相同地址处的设置值ui0,j,k,则将γ2相加到设置改变计数。可选地,如果这些设置值彼此相等,则不执行加法运算。如以下等式(5)所示,对于所有处理元件j的所有存储器k执行上述计算。
其中,i0表示数据流程A1409,i1表示数据流程B1410,并且i2表示数据流程C1411。确定设置值ui0,j,k、ui1,j,k和ui2,j,k,以使得上述等式所表示的值变小。此外,α2、β2和γ2通常为1。然而,可以根据处理元件的配置存储器的结构来改变设置所存储的各地址的权重。还可以针对各数据流程分配权重,以针对各数据流程分配切换时间的优先级。
根据第二实施例,通过考虑所有数据流程,可以获得如下效果:即使处理执行顺序不确定,也平均地降低设置改变计数。
第三实施例
接着说明本发明的第三实施例。图15示出根据第三实施例的处理的时序图和处理分配的概况。第三实施例假定了如下情况:多个数据流程的执行顺序和各数据流程的处理分配已确定。本实施例涉及用于在不改变插入前后的处理分配的情况下、在上述执行顺序中的任意数据流程的处理之间插入与新数据流程相对应的处理的处理分配。
对于图15所示的时序图1501,已确定了可重构装置中的执行顺序以及处理分配。在时序图1501中,在数据流程A的处理1503之后,插入将数据流程A的设置改变成数据流程C的设置的时间段1504,然后执行数据流程C的处理1505。通过在时序图1501的数据流程A和C之间新插入数据流程B而获得了时序图1502。在数据流程A的处理1503之后,插入将数据流程A的设置改变成数据流程B的设置的时间段1506,然后执行新插入的数据流程B的处理1507。然后,在将数据流程B的设置改变成数据流程C的设置的时间段1508之后,执行数据流程C的处理1505。由于此时在不改变数据流程A和C的处理分配的情况下确定数据流程B的处理分配,因而考虑与插入前后的经过了处理分配的数据流程之间的设置改变量。
在图15,附图标记1509、1510和1511分别表示数据流程A、B和C的PE202-1~202-4的设置。在本实施例中,数据流程A和C经过了处理分配,并且要对数据流程B执行处理分配。如第一实施例一样,设置1509、1510和1511对应于图6所示的设置。更具体地,在第三实施例中,确定了数据流程A和C的处理分配,并且要对数据流程B执行处理分配。
此时,关注从数据流程A到数据流程B以及从数据流程B到数据流程C的PE202-1~202-4的设置改变所需的总设置改变计数。通过计算总计数作为第一实施例的图13的附图标记S1306所表示的评价值,降低了可重构装置进行重构时的设置改变计数。
注意,附图标记1512、1514、1516和1518分别表示数据流程A和B之间的PE202-1~202-4的设置改变。附图标记1513、1515、1517和1519分别表示数据流程B和C之间的PE202-1~202-4的设置改变。第三实施例与第一实施例的不同在于:为执行用于一个数据流程的处理分配,同时参考经过了处理分配的多个其它数据流程。
对作为处理分配对象的数据流程1510执行图13的步骤S1303的处理分配。数据流程1509和1511经过了处理分配,并且不进行处理分配改变。对于图13的步骤S1306所使用的设置改变计数,与第一实施例相比,存在以下不同。
如果经过了处理分配的数据流程i0的设置值ui0,j,k不等于作为处理分配对象的数据流程i1的相同地址处的设置值ui1,j,k,则将α3相加到设置改变计数。如果作为处理分配对象的数据流程i1的设置值ui1,j,k不等于经过了处理分配的数据流程i2的相同地址处的设置值ui2,j ,k,则将β3相加到设置改变计数。如果这些设置值彼此相等,则不执行加法运算。对于处理元件j的所有存储器k执行上述计算。可以通过如下等式来表示上述设置改变计数。
...(6)
其中,i0表示数据流程A1509,i1表示数据流程B1510,并且i2表示数据流程C1511。在这些设置值中,设置值ui0,j,k和ui2,j,k经过了处理分配,并且对设置值ui1,j,k进行确定,以使得上述等式所表示的值变小。此外,α3和β3通常为1。然而,可以根据处理元件的配置存储器的结构来改变设置所存储的各地址的权重。还可以针对各数据流程分配权重,以针对各数据流程分配切换时间的优先级。如果插入新数据流程,则可以获得如下效果:降低相对于插入前后的数据流程的设置改变计数。
第四实施例
将说明本发明的第四实施例。图16示出根据第四实施例的处理的时序图和处理分配的概况。第四实施例涉及当在作为基准的数据流程的处理之后接着要执行的数据流程根据处理结果而改变时的处理分配。
在图16所示的时序图1601中,在时间段1602期间执行作为基准的数据流程X的处理,并且根据处理结果,在时间段1603期间进行从数据流程X到数据流程A、B或C的设置改变。在完成该设置操作之后,在时间段1604期间执行数据流程A、B或C的处理,并且在时间段1605期间进行从数据流程A、B或C到数据流程X的设置改变以再次执行作为基准的数据流程X的处理。尽管重复上述执行顺序,但要执行数据流程A、B和C中的哪一个是基于数据流程X的结果所确定的。
在图16中,附图标记1606、1607、1608和1609分别表示数据流程X、A、B和C的PE 202-1~202-4的设置。在第四实施例中,对于所有数据流程X、A、B和C都执行处理分配。如第一实施例一样,设置1606、1607、1608和1609对应于图6所示的设置。更具体地,在第四实施例中,对数据流程X、A、B和C执行处理分配。
为执行处理分配,考虑PE202-1~202-4中在数据流程X和A、X和B以及X和C之间的数据流程改变所需的总设置改变计数。通过计算总计数作为第一实施例的图13的附图标记S1306所表示的评价值,降低了可重构装置进行重构时的设置改变计数。注意,附图标记1610、1613、1616和1619分别表示数据流程X和A之间的PE202-1~202-4的设置改变。附图标记1611、1614、1617和1620分别表示数据流程X和B之间的PE202-1~202-4的设置改变。附图标记1612、1615、1618和1621分别表示数据流程X和C之间的PE202-1~202-4的设置改变。本实施例与第一实施例的不同在于:在执行顺序中出现分支,并且对于作为分支目的地的数据流程和作为分支源的数据流程执行处理分配。
在图13的步骤S1301,在输入多个数据流程的情况下,输入部分任意执行顺序。对于作为处理分配对象的所有数据流程1606、1607、1608和1609执行图13的步骤S1303的处理分配。尽管在第四实施例中说明了对作为处理分配对象的所有数据流程进行处理的情况,但是本发明不局限于此。第四实施例关注了数据流程的执行顺序。如果至少一个数据流程经过了处理分配,则对于其它数据流程执行处理分配。
对于图13的步骤S1306所使用的设置改变计数,与第一实施例相比,存在以下不同。如果作为处理分配对象的数据流程i0的设置值ui0,j,k不等于作为处理分配对象的数据流程i1的相同地址处的设置值ui1,j,k,则将α4相加到设置改变计数。如果作为处理分配对象的数据流程i0的设置值ui0,j,k不等于作为处理分配对象的数据流程i2的相同地址处的设置值ui2,j,k,则将β4相加到设置改变计数。此外,如果作为处理分配对象的数据流程i0的设置值ui,j,k不等于作为处理分配对象的数据流程i3的相同地址处的设置值ui3,j,k,则将γ4相加到设置改变计数。可选地,如果这些设置值彼此相等,则不执行加法运算。对于所有处理元件j的所有存储器k执行上述计算。这可以通过如下等式来表示。
其中,i0表示数据流程X1606,i1表示数据流程A1607,i2表示数据流程B1608,并且i3表示数据流程C1609。对设置值ui0,j,k、ui1,j,k、ui2,j,k和ui3,j,k进行设置,以使得上述等式所表示的值变小。此外,α4、β4和γ4通常为1。然而,可以根据处理元件的配置存储器的结构来改变设置所存储的各地址的权重。还可以针对各数据流程分配权重,以针对各数据流程分配切换时间的优先级。
根据第四实施例,即使在顺次执行多个数据流程时在执行顺序中存在分支的情况下,通过考虑作为分支源的数据流程和作为分支目的地的多个其它数据流程,也可以获得降低设置改变计数的效果。
尽管对于上述实施例中的各使用情况说明了路由方法,但是在本发明中还可以使用这些方法的组合。此外,尽管作为可重构装置的结构元件说明了处理元件,但是本发明不局限于此,并且还可以使用LUT或者LUT和处理元件的组合。设置不局限于实施例中所述的设置,并且可以使用基于LUT的可重构装置中所使用的设置。在这些实施例中,尽管将所有输入数据流程作为处理分配对象,但通过指定处理分配范围,可以对数据流程中的一部分数据流程执行处理分配。此外,在这些实施例中,尽管处理元件的数量对于各数据流程是恒定的,但是处理所分配至的处理元件的数量也可以不同。
第五实施例
在第五实施例和随后的实施例中,除如第一实施例~第四实施例那样缩短电路结构改变时间段以外,还使具有数据输入/输出关系的处理元件相互更靠近,由此缩短总处理时间段。
参考图17说明结构元件中的数据流程的配置的概况。该配置表示:确定了用于执行数据流程的各处理的、限定在预定位置处的处理元件。参考图17,数据流程1701的节点1702、1703、1704或1705表示在一个处理元件中所执行的处理。将与节点1702、1703、1704和1705相对应的处理分别配置在可重构装置105的处理元件202-1、202-2、202-3和202-4中。设置1706、1707、1708或1709包括与节点1702、1703、1704或1705的处理内容相对应的地址601和设置值602。假定分配了在各节点所执行的处理内容,并且确定了设置1706、1707、1708或1709。确定该配置,使得可以确定与设置所写入的处理元件相对应的ID 503。
用于通过改变上述可重构装置的多种类型的结构来实现期望处理的时序图如图10所示。图10是一个可重构装置顺次执行多个不同的数据流程A~Z的时序图。本实施例中处理的数据流程是由可重构装置的处理元件中可配置的单位所构成的。预先生成用于处理各数据流程的设置。可重构装置是基于针对自身预先生成的设置来进行重构的,并且利用该结构执行处理。按照预定顺序对数据流程执行处理。
假定配置了数据流程A,并且要配置数据流程B。更具体地,参考用于执行所配置的数据流程A的设置值,然后确定数据流程B的处理配置。在通过参考数据流程A的处理配置而确定了数据流程B的处理配置之后,认为配置了数据流程B并且要配置数据流程C。更具体地,类似于数据流程B的处理配置的确定,参考用于执行经过了处理配置的数据流程B的设置值,然后确定数据流程C的处理配置。重复上述过程,使得能够配置数据流程A~Z。通常,即使配置问题是仅确定配置,解空间也较大。因此,如果同时确定了详细的路由,则不仅变得无法计算良好的解,甚至无法计算解本身。在该配置方法中,没有确定详细的路由信息,并且使用基于图18所示的配置模型的近似距离来确定配置。在第五实施例中,使用基于处理元件阵列的处理元件的位置的曼哈顿模型作为配置模型。通过将处理元件之间的曼哈顿距离作为指标来计算解。注意,在本发明中,近似距离不局限于曼哈顿距离。作为指标,可以同时执行详细路由。尽管在本实施例中使用基于曼哈顿模型的配置模型,但是本发明不局限于此。可以使用基于基础架构的模型或基于欧几里德空间的模型。
如图18所示,对于包括切换元件201和处理元件202的可重构装置105,定义配置模型1801。配置模型1801仅由处理元件202构成。作为指标的距离由水平方向上的处理元件之间的距离1802和垂直方向上的处理元件之间的距离1803所表示。在第五实施例中,水平方向和垂直方向上的距离彼此相等,但是它们也可以彼此不同。尽管本发明中所处理的距离可以是物理长度或元件之间的通信所需的时间段,但是本发明不局限于此。
将使用图18的配置模型来说明关注图10的时序图所示的处理切换的用于配置处理元件的处理的方法。
图19示出根据第五实施例的配置的概况。数据流程A通过如节点1901、1902、1903和1904所表示的处理所构成,并且设置1905、1906、1907或1908表示各节点中所执行的处理的设置。流程1909表示节点1901和1902之间的数据输入/输出关系。流程1910表示节点1901和1903之间的数据输入/输出关系。流程1911表示节点1902和1904之间的数据输入/输出关系。流程1912表示节点1903和1904之间的数据输入/输出关系。
数据流程B通过如节点1913、1914、1915和1916所示的处理所构成,并且设置1917、1918、1919或1920表示各节点中所执行的处理的设置。流程1921表示节点1913和1915之间的数据输入/输出关系。流程1922表示节点1914和1915之间的数据输入/输出关系。流程1923表示节点1915和1916之间的数据输入/输出关系。
假定将数据流程A和B的处理配置在处理元件阵列的配置模型1801的区域1924中。尽管在第五实施例中将说明处理元件阵列的一部分中的配置,但是本发明不局限于此。多个部分或整个阵列中的配置也是可以的。附图标记1925表示针对数据流程A的区域1924中的处理配置,并且附图标记1926表示针对数据流程B的区域1924中的处理配置。处理配置1925或1926内的处理元件1927、1928、1929和1930表示在物理上相同的处理元件。在处理配置1925中,将数据流程A的节点1901的处理配置在处理元件1927中。将节点1902的处理配置在处理元件1929中。将节点1903的处理配置在处理元件1928中。将节点1904的处理配置在处理元件1930中。距离1931、1932、1933和1934分别表示处理元件之间的流程1909、1910、1911和1912的数据通信距离。
对于数据流程B,将节点1913的处理配置在处理元件1927中。将节点1914的处理配置在处理元件1928中。将节点1915的处理配置在处理元件1929中。将节点1916的处理配置在处理元件1930中。距离1935表示处理元件之间的流程1921的数据通信距离,距离1936和1937表示流程1922的数据通信距离,并且距离1938表示流程1923的数据通信距离。
当将处理从数据流程A切换成数据流程B时,如设置改变1939所示,在处理元件1927中将设置从设置1905改变成设置1917。在处理元件1928中,如设置改变1941所示,将设置从设置1907改变成设置1918。在处理元件1929中,如设置改变1940所示,将设置从设置1906改变成设置1919。在处理元件1930中,如设置改变1942所示,将设置从设置1908改变成设置1920。
在第五实施例中,为执行配置,考虑处理切换时的设置改变计数和基于数据流程间的依赖关系的结构元件之间的距离这两个因素。
在第五实施例所使用的图19所示的例子中,数据流程A经过了处理配置,并且各处理元件的存储器内的与数据流程A相关联的设置值是固定值。数据流程B是处理配置对象。也就是说,假定确定了数据流程的处理顺序,并且基于经过了配置的数据流程的配置信息来确定接着要处理的数据流程的配置。
将参考图20所示的流程图说明用于实现本发明的过程。该过程表示基于模拟退火的处理配置方法。然而,本发明不局限于此。可以使用诸如遗传算法等的各种近似解和诸如线性规划和非线性规划等的数值最优化方法。可以根据配置问题的规模来改变方法。
假定i是表示图19所示的各数据流程的索引,j是节点的索引,并且k是与图6的地址601或图9的地址901相对应的元件内的存储器的配置地址。此外,假定l是与节点j之间的流程相关联的索引。然后,ui,j,k可以表示各存储器内的设置值。另外,Si,1表示第i数据流程的流程1的出发侧的节点,并且di,1表示流程1的到达侧的节点。
如图18所示,假定r是表示各处理元件的索引。可以通过xi,j和yi,j表示各数据流程i的各节点j的配置位置。在本实施例中,由于一个数据流程内的不同处理并未配置在一个处理元件中,因而对于各节点j,xi,j和yi,j显然不同。也就是说,不同的处理并未配置在一个处理元件中。
假定数据流程i0经过了处理配置,并且数据流程i1是处理配置对象。在步骤S2001,输入多个数据流程和它们之间的顺序关系(i的顺序)。对于经过了处理配置的数据流程,与设置值ui0,j,k一起输入配置信息xi0,j,yi0,j。
在步骤S2002,输入所需规格和硬件约束。硬件约束包括诸如由具有异质结构的各处理元件分别保持的结构信息和处理所生成的发热量等的硬件结构的约束。所需规格包括诸如处理元件之间的距离和分配给设置改变计数或距离的优先级水平(后面将在步骤S2006进行说明)等的在硬件使用中应受限制的项。注意,本发明不局限于上述约束。
在步骤S2003,对对象数据流程执行处理配置。作为初始处理配置方法,使用用于随机配置处理的方法或者用于与处理元件阵列的输入和输出方向相关联地在数据流程的深度方向上配置处理的方法。然而,本发明不局限于这些方法。除在初始配置以外,还基于模拟退火来改变处理配置。在第五实施例中,对于作为处理配置对象的数据流程B执行初始处理配置或处理配置改变。对于经过了处理配置的数据流程A,处理配置并没有根据约束而改变。
在步骤S2004,判断处理配置结果是否满足步骤S2002输入的所需规格。如等式(1)所示,如果满足约束,则在惩罚变量p0中设置0;否则,在惩罚变量p0中设置惩罚值Cp0(参见等式(1))。
在第五实施例中,在违反约束时,将Cp0设为相同的常数。然而,Cp0可以是根据违反项的变量值。在步骤S2005,判断处理配置结果是否满足步骤S2002输入的硬件约束。
如等式(2)所示,如果满足约束,则在惩罚变量P1中设置0;否则,在惩罚变量P1中设置惩罚值Cp1。
在第五实施例中,在违反约束时,将Cp1设为相同的常数。然而,Cp1可以是根据违反项的变量值。在步骤S2006,计算对象数据流程改变时的设置改变计数和基于配置的距离,从而计算评价值。首先说明设置改变计数的计算。参考图19所示的例子,要计算的计数表示在设置改变1939、1940、1941和1942中需要改变的设置的数量。
更具体地,如果经过了处理配置的数据流程i0的设置值ui0,j,k不等于配置在作为处理配置对象的数据流程i1中的相同位置处的处理元件的相同类型的设置值ui1,j,k,则将α1相加到设置改变计数;否则,不执行加法运算。
注意,j0r表示配置在处理元件r中的数据流程i0的节点j0,并且j1r表示数据流程i1的节点j1,其中,如上所述,r代表表示各处理元件的索引。通过如下等式来获得在数据流程切换时相同位置处所配置的节点的处理内容的改变所需的设置改变计数。
其中,α1通常为1。然而,可以根据处理元件的配置存储器的结构来改变设置所存储的各地址的权重。还可以针对各数据流程分配权重,以针对各数据流程分配切换时间的优先级。如图7所示,针对一个配置命令可以改变一个设置值。因此,如果命令的数量减少,则可以缩短处理切换时间。
接着说明距离的计算。距离表示作为配置对象的数据流程B中的距离1935、1936、1937和1938的总和。基于步骤S2003的配置和数据流程的数据输入/输出关系,可以通过如下等式来表示距离。
其中,κ11和λ11分别表示节点之间的距离的x和y各自的权重。可以使权重为常数,或者可以根据诸如节点之间的距离等的基础架构来个别地改变权重。使用上述等式,在该步骤中,根据等式(10)计算评价值。
评价值=δ·s+(1-δ)d+p0+p1 ...(10)
其中,δ代表表示在步骤S2002所给出的分配给距离或设置改变计数的优先级的水平的指标。也就是说,由于在满足所需规格和硬件约束的情况下,距离变短并且重构所需的设置改变计数变小,因而评价值变小。
最后,在步骤S2007基于模拟退火判断是否达到目标。如果达到了目标,则结束该处理;否则,处理返回到步骤S2003以重复步骤S2003~S2007。这意味着重复该处理直到获得十分良好的结果或者过去了预定计算时间为止。
由于一般可重构装置中的处理元件的数据流程的处理配置方法没有考虑设置改变计数,因而在数据流程的处理改变时需要改变所有设置。
在第五实施例中,关注了数据流程的处理顺序。除距离以外,还降低总设置改变计数,这使得能够有效地降低设置改变计数。
第六实施例
将说明本发明的第六实施例。图21示出根据第六实施例的处理的时序图和处理配置的概况。第六实施例涉及在改变可重构装置的设置时、确定了各数据流程的处理内容但是处理内容的改变顺序不确定且根据状况或输入数据而改变时的处理配置。
在时序图2101中的时间段2102期间,执行与数据流程A相关联的处理。在时间段2104和2108期间,执行与数据流程C相关联的处理。在时间段2106期间,执行与数据流程B相关联的处理。在时间段2103期间,进行从数据流程A到数据流程C的设置改变。在时间段2105期间,进行从数据流程C到数据流程B的设置改变。在时间段2107期间,进行从数据流程B到数据流程C的设置改变。在本实施例中,由于数据流程A、B和C的处理改变顺序不总是相同,因而需要考虑数据流程之间的所有设置改变来执行处理配置。
在图21中,附图标记2109、2122和2131分别表示数据流程A、B和C的处理元件的配置,并且对于所有数据流程一次统一执行处理配置。注意,配置2109、2122或2131的处理元件2110、2111、2112和2113表示在物理上相同的处理元件。
设置2114、2115、2116和2117分别表示数据流程A的配置中的处理元件2110、2111、2112和2113的设置。设置2123、2124、2125和2126分别表示数据流程B的配置中的处理元件2110、2111、2112和2113的设置。设置2132、2133、2134和2135分别表示数据流程C的配置中的处理元件2110、2111、2112和2113的设置。如第一实施例一样,这些设置对应于图6所述的设置。本实施例关注了处理元件2110、2111、2112和2113中在数据流程A和B、B和C以及C和A之间的数据流程改变所需的总设置改变计数以及处理元件之间的连接的总距离。
通过基于上述总计数和距离计算图20所示的流程图的步骤S2006相加至评价值的设置改变计数作为评价值(后面说明),考虑该距离来降低可重构装置进行重构时的设置改变计数。
附图标记2139表示数据流程A和B之间的处理元件2110、2111、2112和2113的设置改变;附图标记2140表示数据流程B和C之间的处理元件2110、2111、2112和2113的设置改变;以及附图标记2141表示数据流程C和A之间的处理元件2110、2111、2112和2113的设置改变。
第六实施例与第一实施例的不同在于:对于多个数据流程同时执行处理配置。在图20的步骤S2001,输入多个数据流程,并且输入表示处理顺序为任意的信息。在图20的步骤S2003的处理配置中,对作为处理配置对象的所有数据流程A、B和C执行处理配置。对于图20的步骤S2006的处理,与第五实施例相比,存在以下不同。
如果作为处理配置对象的数据流程i0中的设置值ui0,j,k不等于作为处理配置对象的数据流程i1中的相同位置处所配置的处理元件的相同类型的设置值ui1,j,k,则将α2相加到设置改变计数。如果作为处理配置对象的数据流程i1中的设置值ui1,j,k不等于作为处理配置对象的数据流程i2中的相同位置处所配置的处理元件的相同类型的设置值ui2,j,k,则将β2相加到设置改变计数。此外,如果作为处理配置对象的数据流程i2中的设置值ui2,j,k不等于作为处理配置对象的数据流程i0中的相同位置处所配置的处理元件的相同类型的设置值ui0,j,k,则将γ2相加到设置改变计数。可选地,如果这些设置值彼此相等,则不执行加法运算。
注意,j0r表示处理元件r中所配置的数据流程i0的节点j0,j1r表示数据流程i1的节点j1,并且j2r表示数据流程i2的节点j2,其中,如上所述,r代表表示各处理元件的索引。
通过如下等式来获得在数据流程切换时的相同位置处所配置的节点的处理内容的改变所需的设置改变计数。
其中,α2、β2和γ2通常为1。然而,可以根据处理元件的配置存储器的结构来改变设置所存储的各地址的权重。还可以针对各数据流程分配权重,以针对各数据流程分配切换时间的优先级。
对于距离,存在以下不同。在图21所示的例子中,将距离表示为距离2118、2119、2120、2121、2127、2128、2129、2130、2136、2137和2138的总和。图21的处理元件的配置仅是例子,并且通过改变配置来改变总距离。在配置操作之后,可以使用如下等式基于配置和数据流程的数据输入/输出来表示该距离。
其中,κ2i,1和λ2i,1表示可以为常数或者可以根据诸如各数据流程的节点之间的距离等的基础架构进行个别地改变的权重。根据第六实施例,通过考虑所有数据流程,即使处理执行顺序不确定,也可以考虑距离而获得平均地降低设置改变计数的效果。
第七实施例
将说明本发明的第七实施例。图22示出根据第七实施例的处理的时序图和处理配置的概况。第七实施例假定已确定了多个数据流程的处理顺序和各数据流程的处理配置的情况。第七实施例涉及用于在插入前后不改变处理配置的情况下、在上述处理顺序中的任意数据流程的处理之间插入与新数据流程相对应的处理的处理配置。
对于图22所示的时序图2201,已确定了可重构装置中的处理顺序和处理配置。在时序图2201中,在数据流程A的处理2203之后,插入将数据流程A的设置改变成数据流程C的设置的时间段2204,然后执行数据流程C的处理2205。时序图2202是通过在时序图2201中的数据流程A和C之间新插入数据流程B而获得的。在数据流程A的处理2203之后,插入将数据流程A的设置改变成数据流程B的设置的时间段2206,然后执行新插入的数据流程B的处理2207。然后,在将数据流程B的设置改变成数据流程C的设置的时间段2208之后,执行数据流程C的处理2205。由于此时在不改变数据流程A和C的处理配置的情况下确定数据流程B的处理配置,因而考虑与经过了处理配置的插入前后的数据流程之间的设置改变量。
在图22中,附图标记2209、2222和2231分别表示数据流程A、B和C的处理元件的配置。在本实施例中,数据流程A和C经过了处理配置,并且对数据流程B执行处理配置。注意,配置2209、2222或2231中的处理元件2210、2211、2212和2213表示相同的处理元件。
设置2214、2215、2216和2217分别表示数据流程A的配置中的处理元件2210、2211、2212和2213的设置。设置2223、2224、2225和2226分别表示数据流程B的配置中的处理元件2210、2211、2212和2213的设置。设置2232、2233、224和2235分别表示数据流程C的配置中的处理元件2210、2211、2212和2213的设置。如第一实施例一样,这些设置对应于图6所述的设置。第七实施例关注了处理元件2210、2211、2212和2213中在数据流程A和B以及B和C之间的数据流程改变所需的总设置改变计数以及这些处理元件之间的连接的总距离。
注意,附图标记2239表示在新插入数据流程B时数据流程A和B之间的处理元件2210、2211、2212和2213的设置改变。附图标记2240表示数据流程B和C之间的处理元件2210、2211、2212和2213的设置改变。
第七实施例与第五实施例的不同在于:通过参考经过了处理配置的多个数据流程来执行对象数据流程的处理配置。
仅对数据流程B执行图20的步骤S2003中的处理配置。数据流程A和C经过了处理配置,并且不改变处理配置。对于图20的步骤S2006的处理,与第五实施例相比,存在以下不同。
如果经过了处理配置的数据流程i0的设置值ui0,j,k不等于作为处理配置对象的数据流程i1中的相同位置处所配置的处理元件的设置值ui1,j,k,则将α3相加到设置改变计数。如果作为处理配置对象的数据流程i1的设置值ui1,j,k不等于经过了处理配置的数据流程i2中的相同位置处所配置的处理元件的设置值ui2,j,k,则将β3相加到设置改变计数。如果这些设置值彼此相等,则不执行加法运算。
注意,j0r表示处理元件r中所配置的数据流程i0的节点j0,j1r表示数据流程i1的节点j1,并且j2r表示数据流程i2的节点j2,其中,如上所述,r代表表示各处理元件的索引。
通过如下等式来获得在数据流程切换时的相同位置处所配置的节点的处理内容的改变所需的设置改变计数。
其中,α3和β3通常为1。然而,可以根据处理元件的配置存储器的结构来改变设置所存储的各地址的权重。还可以针对各数据流程分配权重,以针对各数据流程分配切换时间的优先级。
对于距离,存在以下不同。在图22所示的例子中,将距离表示为距离2227、2228、2229、2230的总和。图22的处理元件的配置仅是例子,并且通过改变配置来改变总距离。在配置操作之后,可以使用如下等式基于配置和数据流程的数据输入/输出来表示该距离。
其中,κ31和λ31表示可以为常数或者可以根据诸如各数据流程的节点之间的距离等的基础架构进行个别地改变的权重。当新插入数据流程时,可以获得降低与插入前后的数据流程的设置改变计数的效果。
第八实施例
将说明本发明的第八实施例。图23示出根据第八实施例的处理的时序图和处理配置的概况。第八实施例涉及当在作为基准的数据流程的处理之后根据处理结果改变接着要执行的数据流程时的处理配置。
在图23所示的时序图2301中,在时间段2302期间执行作为基准的数据流程X的处理,并且在时间段2303期间根据处理结果进行从数据流程X到数据流程A、B或C的设置改变。在完成该设置操作之后,在时间段2304期间执行数据流程A、B或C的处理,并且在时间段2305期间进行从数据流程A、B或C向数据流程X的设置改变以再次执行作为基准的数据流程X的处理。尽管重复上述顺序,但要执行数据流程A、B和C中的哪一个是基于数据流程X的结果所确定的。
在图23中,附图标记2306、2319、2328和2337分别表示数据流程X、A、B和C的配置。在本实施例中,对所有数据流程X、A、B和C执行处理配置。注意,配置2306中的处理元件2307、2308、2309和2310表示相同的处理元件。
设置2311、2312、2313和2314分别表示数据流程X的配置中的处理元件2307、2308、2309和2310的设置。设置2320、2321、2322和2323分别表示数据流程A的配置中的处理元件2307、2308、2309和2310的设置。设置2329、2330、2331和2332分别表示数据流程B的配置中的处理元件2307、2308、2309和2310的设置。设置2338、2339、2340和2341分别表示数据流程C的配置中的处理元件2307、2308、2309和2310的设置。如第一实施例一样,这些设置对应于图6所述的设置。
更具体地,在第八实施例中,对数据流程X、A、B和C执行处理配置。为执行处理配置,关注了处理元件2307、2308、2309和2310中在数据流程X和A、X和B以及X和C之间的数据流程改变所需的总设置改变计数以及处理元件之间的连接的总距离。
注意,附图标记2345表示数据流程X和A之间的处理元件2307、2308、2309和2310的设置改变;并且附图标记2346表示数据流程X和B之间的处理元件2307、2308、2309和2310的设置改变。
附图标记2347表示数据流程X和C之间的处理元件2307、2308、2309和2310的设置改变。
第八实施例与第五实施例的不同在于:在处理顺序中存在分支,并且对于分支目的地和分支源之间的数据流程执行处理配置。
在图20的步骤S2001,在输入多个数据流程的情况下,输入包括部分任意顺序关系的处理顺序。注意,本实施例中的“部分任意”是指在执行顺序中存在分支并且仅分支源和分支目的地的执行顺序是任意的。
对于作为处理配置对象的所有数据流程X、A、B和C执行图20的步骤S2003的处理配置。尽管本实施例示出了将所有数据流程当作处理配置对象的情况,但是本发明不局限于此。本实施例关注了处理顺序。如果至少一个数据流程已经过了处理配置,则对其它数据流程执行处理配置。
对于图20的步骤S2006的处理,与第一实施例相比,存在以下不同。如果作为处理配置对象的数据流程i0的设置值ui0,j,k不等于作为处理配置对象的数据流程i1中的相同位置处所配置的处理元件的相同类型的设置值ui1,j,k,则将α4相加到设置改变计数。如果作为处理配置对象的数据流程i0的设置值ui0,j,k不等于作为处理配置对象的数据流程i2中的相同位置处所配置的处理元件的相同类型的设置值ui2,j,k,则将β4相加到设置改变计数。此外,如果作为处理配置对象的数据流程i0的设置值ui0,j,k不等于作为处理配置对象的数据流程i3中的相同位置处所配置的处理元件的相同类型的设置值ui3,j,k,则将γ4相加到设置改变计数。可选地,如果这些设置值彼此相等,则不执行加法运算。
注意,j0r表示处理元件r中所配置的数据流程i0的节点j0,j1r表示数据流程i1的节点j1,j2r表示数据流程i2的节点j2,并且j3r表示数据流程i3的节点j3,其中,如上所述,r代表表示各处理元件的索引。
通过如下等式来获得在数据流程切换时的相同位置处所配置的节点的处理内容的改变所需的设置改变计数。
其中,α4、β4和γ4通常为1。然而,可以根据处理元件的配置存储器的结构来改变设置所存储的各地址的权重。还可以针对各数据流程分配权重,以针对各数据流程分配切换时间的优先级。
对于距离,存在以下不同。在图23所示的例子中,将距离表示为距离2315、2316、2317、2318、2324、2325、2326、2327、2333、2334、2335、2336、2342、2343和2344的总和。图23的处理元件的配置仅是例子,并且通过改变配置来改变总距离。在该配置操作之后,可以使用如下等式基于配置和数据流程的数据输入/输出来表示该距离。
其中,κ4i,1和λ4i,1表示可以为常数或者可以根据诸如各数据流程的节点之间的距离等的基础架构进行个别地改变的权重。根据本实施例,即使在顺次执行多个数据流程时的执行顺序中存在分支,通过考虑作为分支源的数据流程和作为分支目的地的多个其它数据流程,也可以获得降低设置改变计数的效果。
第九实施例
将说明本发明的第九实施例。图24示出根据第九实施例的数据流程和用于限制处理配置的方法。在许多情况下,处理配置问题通常很复杂,并且需要较长的时间来计算解。当如本发明一样同时配置多个数据流程时,问题变得严重。因此,在第九实施例中,通过限制处理可配置范围来有效地缩短解计算时间。
数据流程2419包括与多个处理相对应的节点2401~2418。附图标记2420表示处理元件阵列2426的输入装置;并且附图标记2424表示输出装置。在输入装置和输出装置之间存在处理元件阵列2426。
在第九实施例中,当以配置模型1801配置数据流程2419的处理时,通过将处理元件阵列的输入/输出位置与数据流程的深度方向相关联,来有效减小解空间。更具体地,将节点2401~2404设置成仅可配置在附图标记2421所表示的范围中。将节点2405~2410设置成仅可配置在附图标记2422所表示的范围中。将节点2411~2414设置成仅可配置在范围2422中。将节点2415~2418设置成仅可配置在附图标记2423所表示的范围中。
假定在图20的步骤S2002输入限制。尽管在第九实施例中,将可配置范围与数据流程的深度和处理元件阵列的输入/输出方向相关联,但是本发明不局限于此。
尽管在上述实施例中对于各使用情况说明了处理配置方法,但是在本发明中可以使用这些方法的组合。此外,尽管作为可重构装置的结构元件说明了处理元件,但是本发明不局限于此,并且可以使用LUT或者LUT和处理元件的组合。设置不局限于这些实施例中所述的设置,并且可以使用在基于LUT的可重构装置中所使用的设置。尽管在这些实施例中将所有输入数据流程当作处理配置对象,但是通过指定数据流程的处理配置对象范围,可以仅对数据流程中的一部分数据流程执行处理配置。此外,尽管在这些实施例中处理元件的数量针对各数据流程总是相同的,但是配置处理的处理元件的数量可以是不同的。尽管在这些实施例中确定配置以使得总距离变小,但是可以确定配置以使得各距离的最大值变小。可选地,可以确定配置以使得距离的平均值变小。
在上述实施例中,假定以网格图案均匀地配置处理元件,并且处理元件之间的连接距离是恒定的。然而,本发明不局限于此。如果连接处理元件以具有树结构,则可以根据该树结构向各距离赋予权重。也就是说,可以根据处理元件的连接配置向各距离赋予权重。
还可以通过读出并执行记录在存储器装置上的程序以进行上述实施例的功能的系统或设备的计算机(或者CPU或MPU等装置)和通过下面的方法实现本发明的各方面,其中,系统或设备的计算机通过例如读出并执行记录在存储器装置上的程序以进行上述实施例的功能来进行上述方法的各步骤。为此,例如,通过网络或者通过用作存储器装置的各种类型的记录介质(例如,计算机可读存储介质)将该程序提供给计算机。
尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不局限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有这类修改、等同结构和功能。
Claims (19)
1.一种处理分配方法,用于针对包括多个结构元件的可重构装置,向各结构元件分配处理,所述处理分配方法包括以下步骤:
数据流程输入步骤,用于输入至少两个不同的数据流程以及数据流程的执行顺序;
约束步骤,用于输入所述结构元件的约束;以及
处理分配确定步骤,用于确定处理分配,以使得基于所述结构元件的约束和所述执行顺序对所述结构元件进行重构所需的设置改变计数变小。
2.根据权利要求1所述的处理分配方法,其特征在于,所输入的数据流程中的至少一个数据流程经过了处理分配,并且通过参考经过了处理分配的数据流程,对没有经过处理分配的数据流程执行处理分配。
3.根据权利要求1所述的处理分配方法,其特征在于,对于所输入的数据流程中没有经过处理分配的多个数据流程统一执行处理分配。
4.根据权利要求1所述的处理分配方法,其特征在于,针对各数据流程或者用于确定所述结构元件的处理内容的设置,对所述设置改变计数进行加权。
5.一种可重构装置,其包括能够将用于实现数据流程的处理分配至的多个结构元件,所述可重构装置还包括:
数据流程输入单元,用于输入至少两个不同的数据流程以及数据流程的执行顺序;
约束输入单元,用于输入所述结构元件的约束;以及
处理分配确定单元,用于确定处理分配,以使得基于所述结构元件的约束和所述执行顺序对所述结构元件进行重构所需的设置改变计数变小。
6.一种信息处理设备,其包括能够将用于实现数据流程的处理分配至的多个结构元件,所述信息处理设备还包括:
输入单元,用于输入用于通过所述多个结构元件实现第一数据流程的设置信息以及所述多个结构元件的配置信息;以及
控制器,用于基于所述设置信息和所述配置信息,将用于实现所述第一数据流程的处理分配给所述多个结构元件,以使得与用于实现第二数据流程的设置之间要进行改变的结构元件的数量变小。
7.根据权利要求6所述的信息处理设备,其特征在于,所述输入单元还输入用于通过所述多个结构元件实现包括所述第一数据流程和所述第二数据流程的多个数据流程的设置信息以及所述多个数据流程的执行顺序。
8.根据权利要求7所述的信息处理设备,其特征在于,所述控制器包括:
候选确定单元,用于基于所述执行顺序,针对所述多个数据流程,确定用于向所述结构元件分配处理的分配候选;
改变计数计算单元,用于基于所述设置信息和所述配置信息,计算各所述分配候选的分配的改变计数;以及
确定单元,用于确定所述结构元件的处理分配,以使得所述改变计数变小。
9.根据权利要求8所述的信息处理设备,其特征在于,所述确定单元包括:
判断单元,用于基于所述配置信息判断是否能够将所述分配候选分配给所述结构元件;
惩罚值确定单元,用于当所述判断单元判断为不能分配所述分配候选时,确定惩罚值;
评价值计算单元,用于基于所述改变计数和所述惩罚值,计算用于确定分配的评价值;以及
评价值判断单元,用于判断所述评价值是否不大于阈值,
其中,当判断为所述评价值不大于所述阈值时,所述确定单元将所述分配候选确定为所述结构元件的处理分配。
10.根据权利要求8所述的信息处理设备,其特征在于,当所述多个数据流程中的至少一个数据流程经过了所述结构元件的处理分配时,所述改变计数计算单元参考该处理分配,并且针对各所述分配候选,计算没有进行所述结构元件的处理分配的、下一要执行的数据流程的处理分配的改变计数。
11.根据权利要求8所述的信息处理设备,其特征在于,所述改变计数计算单元针对各所述分配候选,统一计算没有进行所述结构元件的处理分配的数据流程的处理分配的改变计数。
12.根据权利要求8所述的信息处理设备,其特征在于,所述输入单元还输入没有进行所述结构元件的处理分配的数据流程在所述执行顺序中的插入目的地位置,以及
所述改变计数计算单元参考要插入的数据流程的处理前后所处理的、经过了处理分配的数据流程的处理分配,并且针对各所述分配候选,计算没有进行所述结构元件的处理分配的数据流程的处理分配的改变计数。
13.根据权利要求8所述的信息处理设备,其特征在于,所述改变计数计算单元通过针对各数据流程或者各结构元件的处理赋予权重,计算所述改变计数。
14.一种信息处理设备的控制方法,所述信息处理设备包括输入单元、控制器以及能够将用于实现数据流程的处理分配至的多个结构元件,所述控制方法包括以下步骤:
输入步骤,用于输入用于通过所述多个结构元件实现第一数据流程的设置信息以及所述多个结构元件的配置信息;以及
控制步骤,用于基于所述设置信息和所述配置信息,将用于实现所述第一数据流程的处理分配给所述多个结构元件,以使得与用于实现第二数据流程的设置之间要进行改变的结构元件的数量变小。
15.一种处理配置方法,用于针对包括多个结构元件的可重构装置,确定执行数据流程的各处理的结构元件,所述处理配置方法包括以下步骤:
输入步骤,用于输入至少两个不同的数据流程以及数据流程的处理顺序;
约束步骤,用于输入所述可重构装置的所述结构元件的约束;以及
确定步骤,用于通过使用根据所述数据流程进行重构所需的设置改变计数以及基于所述数据流程的数据输入/输出的依赖关系的各结构元件之间的距离来确定所述结构元件的配置,从而确定用于执行所需处理的结构元件。
16.根据权利要求15所述的处理配置方法,其特征在于,所述约束包括用于根据所述数据流程的配置和所述可重构装置的结构来对所述数据流程的各处理限制可配置范围的约束。
17.根据权利要求15所述的处理配置方法,其特征在于,针对各数据流程或者用于确定所述结构元件的处理内容的设置,对所述设置改变计数进行加权。
18.根据权利要求15所述的处理配置方法,其特征在于,基于所述结构元件,对所述结构元件之间的连接距离进行加权。
19.一种可重构装置,用于基于根据权利要求15所述的处理配置方法所生成的设置信息而进行工作。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-025284 | 2011-02-08 | ||
JP2011025284 | 2011-02-08 | ||
JP2011-031220 | 2011-02-16 | ||
JP2011031220 | 2011-02-16 | ||
JP2011-120990 | 2011-05-30 | ||
JP2011120990A JP5798378B2 (ja) | 2011-05-30 | 2011-05-30 | 装置、処理方法、およびプログラム |
JP2012-003035 | 2012-01-11 | ||
JP2012003035A JP5907607B2 (ja) | 2011-02-16 | 2012-01-11 | 処理配置方法及びプログラム |
JP2012003497A JP5832311B2 (ja) | 2011-02-08 | 2012-01-11 | 再構成デバイス、処理割当て方法及びプログラム |
JP2012-003497 | 2012-01-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102693207A true CN102693207A (zh) | 2012-09-26 |
CN102693207B CN102693207B (zh) | 2015-04-01 |
Family
ID=46601558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210027897.8A Expired - Fee Related CN102693207B (zh) | 2011-02-08 | 2012-02-08 | 可重构装置及其方法、信息处理设备及其控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9116751B2 (zh) |
CN (1) | CN102693207B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810142A (zh) * | 2014-03-06 | 2014-05-21 | 中国人民解放军信息工程大学 | 可重构系统及其构建方法 |
US11314484B2 (en) | 2017-05-19 | 2022-04-26 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device comprising operation circuits and switch circuits |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10108516B2 (en) | 2015-01-29 | 2018-10-23 | Knuedge Incorporated | Affinity data collection in a computing system |
US10331569B2 (en) | 2016-01-05 | 2019-06-25 | Friday Harbor Llc | Packet router buffer management |
JP6713410B2 (ja) * | 2016-11-21 | 2020-06-24 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1241275A (zh) * | 1996-10-30 | 2000-01-12 | 爱特梅尔股份有限公司 | 配置逻辑器件阵列的方法和系统 |
CN101053158A (zh) * | 2005-10-05 | 2007-10-10 | 松下电器产业株式会社 | 可重构半导体集成电路及其处理分配方法 |
US20090319754A1 (en) * | 2008-06-18 | 2009-12-24 | Nec Corporation | Reconfigurable device |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0926594B1 (en) | 1997-12-17 | 2007-05-23 | Hewlett-Packard Company, A Delaware Corporation | Method of using primary and secondary processors |
JP3558119B2 (ja) | 1999-08-09 | 2004-08-25 | 富士ゼロックス株式会社 | 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法 |
JP2001202236A (ja) * | 2000-01-20 | 2001-07-27 | Fuji Xerox Co Ltd | プログラマブル論理回路装置によるデータ処理方法、プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路再構成方法 |
US6971004B1 (en) * | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7941794B2 (en) * | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
US8407429B2 (en) * | 2006-06-21 | 2013-03-26 | Element Cxi, Llc | Multi-context configurable memory controller |
JPWO2009063596A1 (ja) * | 2007-11-12 | 2011-03-31 | パナソニック株式会社 | 再構成可能回路、リセット方法、及び構成情報生成装置 |
JP5056644B2 (ja) * | 2008-07-18 | 2012-10-24 | 富士通セミコンダクター株式会社 | データ変換装置、データ変換方法及びプログラム |
JP2010114772A (ja) * | 2008-11-07 | 2010-05-20 | Nec Electronics Corp | 半導体装置、差分プログラム実施方法 |
US8407633B2 (en) * | 2009-10-26 | 2013-03-26 | International Business Machines Corporation | Dynamically reconfigurable self-monitoring circuit |
JP5504985B2 (ja) * | 2010-03-11 | 2014-05-28 | 富士ゼロックス株式会社 | データ処理装置 |
US8635571B1 (en) * | 2012-10-19 | 2014-01-21 | Altera Corporation | Integrating multiple FPGA designs by merging configuration settings |
-
2012
- 2012-01-20 US US13/354,735 patent/US9116751B2/en not_active Expired - Fee Related
- 2012-02-08 CN CN201210027897.8A patent/CN102693207B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1241275A (zh) * | 1996-10-30 | 2000-01-12 | 爱特梅尔股份有限公司 | 配置逻辑器件阵列的方法和系统 |
CN101053158A (zh) * | 2005-10-05 | 2007-10-10 | 松下电器产业株式会社 | 可重构半导体集成电路及其处理分配方法 |
US20090319754A1 (en) * | 2008-06-18 | 2009-12-24 | Nec Corporation | Reconfigurable device |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810142A (zh) * | 2014-03-06 | 2014-05-21 | 中国人民解放军信息工程大学 | 可重构系统及其构建方法 |
CN103810142B (zh) * | 2014-03-06 | 2017-04-12 | 中国人民解放军信息工程大学 | 可重构系统及其构建方法 |
US11314484B2 (en) | 2017-05-19 | 2022-04-26 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device comprising operation circuits and switch circuits |
Also Published As
Publication number | Publication date |
---|---|
CN102693207B (zh) | 2015-04-01 |
US9116751B2 (en) | 2015-08-25 |
US20120204181A1 (en) | 2012-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gai et al. | Resource management in sustainable cyber-physical systems using heterogeneous cloud computing | |
US11443217B2 (en) | Information processing apparatus and information processing method | |
Husslage et al. | Space-filling Latin hypercube designs for computer experiments | |
CN102693207A (zh) | 可重构装置及其方法、信息处理设备及其控制方法 | |
KR20210101337A (ko) | 총체적 글로벌 성능 및 전력 관리 | |
CN106126340A (zh) | 一种跨数据中心云计算系统的规约器选择方法 | |
Sattarvand | Long-term open-pit planning by ant colony optimization | |
CN103793483A (zh) | 基于时钟节点结群的时钟树生成方法和系统 | |
CN106326987A (zh) | 多目标优化方法和装置 | |
CN117408452A (zh) | 任务规划方法、装置、电子设备、存储介质及程序产品 | |
CN106155785A (zh) | 一种跨数据中心云计算系统的数据迁移方法 | |
CN109902821A (zh) | 一种数据处理方法、装置及相关组件 | |
Dabia et al. | Approximating multi-objective scheduling problems | |
Hofmann | Multi-Chip Dataflow Architecture for Massive Scale Biophyscially Accurate Neuron Simulation | |
CN109408870A (zh) | 一种基于边界约束的拓扑网格生成方法及电子设备 | |
KR101565694B1 (ko) | 무선 센서 네트워크에서 인공벌군집 클러스터링 설계 방법 및 시스템 | |
Sreedhar | Differential evolution based multiobjective optimization-A review | |
Koh et al. | A consensus dynamics with delay-induced instability can self-regulate for stability via agent regrouping | |
CN106293936A (zh) | 一种物理主机虚拟内存的局部最优解的确定方法及装置 | |
CN103646282B (zh) | 基于混合优化算法的并行处理方法 | |
Hasan et al. | An approach towards scalability for reconfigurable product flow line through unbalancing | |
CN106209975A (zh) | 一种跨数据中心云计算系统的资源供给方法 | |
Alhubail et al. | Noc design methodologies for heterogeneous architecture | |
Xu et al. | Reducing synchronization overhead with computation replication in parallel agent-based road traffic simulation | |
Grimme et al. | Combining basic heuristics for solving multi-objective scheduling problems |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150401 |