可重构装置的制作方法

文档序号:6593247阅读:155来源:国知局
专利名称:可重构装置的制作方法
技术领域
本发明涉及一种可以重构电路的装置。
背景技术
国际公开W02003/023602公开了一种包括多个处理单元、并且还配备有第一、第 二和第三数据传送部件的数据处理系统。第一数据传送部件以网络状连接多个处理单元, 并且执行第一数据的转移。通过连接多个处理单元中的两个以上的处理单元,构造成至少 一个可重构数据流。第二数据传送部件将用于加载设置数据的控制信息和其它控制信息作 为第二数据并行地供给至多个处理单元。第三数据传送部件将设置数据供给至多个处理单 元中的各个单元。该设置数据包括通过将由第一数据传送部件所连接的其它处理单元直接 地或间接地改变为处理单元、以及/或者改变该处理单元自身的处理内容来构成不同的功 能数据流的数据。以上公开公开了,通过广播具有识别数据流的信息的控制信息,来进行由多个处 理单元(元件)构成的数据流的控制。当可以用于重构数据流的处理单元的数量是几百 个以上时,如果用于暂时停止数据流的控制信息等没有在同一时刻到达各个处理单元,则 将难以在不破坏由数据流正在处理的数据或该数据流的处理状态的情况下,暂时停止数据流。

发明内容
本发明的一个方面是一种包括可重构部分的装置,所述可重构部分包括多个处理 元件和用于连接所述多个处理元件的路由矩阵。在所述可重构部分中,使用所述多个处理 元件中的至少一些处理元件和所述路由矩阵中的至少一部分路由矩阵来重构数据流。一般 通过改变所述多个处理元件中的各处理元件的功能和/或通过改变所述路由矩阵中的至 少一部分连接来重构数据流。所述装置的所述多个处理元件被配置成或被布局成分割成多个段。另外,所述路 由矩阵包括第一级路由矩阵,用于在第一延迟的范围内连接各段中包括的处理元件;以 及第二级路由矩阵,用于以与所述第一延迟不同的延迟连接不同的段中包括的处理元件。 该装置还包括命令传递系统,用于向所述可重构部分中包括的所述多个处理元件中的各 处理元件传递命令。所述命令传递系统包括传递命令寄存器(寄存器单元),其设置在各段中;第一 级命令传递矩阵,用于在所述第一延迟的范围内将各段中的传递命令寄存器和处理元件相 连接;以及第二级命令传递矩阵,用于以与所述第一延迟不同的延迟将所述多个段的传递 命令寄存器和输出命令的命令输出单元相连接。命令寄存器典型包括多位触发器或锁存单 元,能够按时钟周期为单位输入和输出命令,并且可以用于与时钟周期同步地传递命令。在该装置中,多个处理元件被布局为或被配置为分割成多个段。在各段中,在第一 延迟(第一延迟时间、第一周期或第一等待时间)的范围内,例如在作为处理元件的操作用的最小时间间隔的一个时钟周期内,通过第一级路由矩阵连接处理元件。因此,通过针对各 段单独设置传递命令寄存器和第一级命令传递矩阵,可以在第一延迟内、例如在一个时钟 周期内,从传递命令寄存器向段内所有的处理元件传递命令。这意味着,如果在预定延迟 (延迟时间、等待时间)的范围内、例如在一个时钟周期内、使用第二级命令传递矩阵从命 令输出单元向多个段的命令寄存器传递命令,则将可以使用从命令输出单元输出的命令来 同步地(即,在相同定时的情况下)控制可重构部分中包括的所有处理元件。利用该命令传递系统,在预定(固定)延迟之后,从命令输出单元向各处理元件传 递命令。因此,尽管将消耗至少一些时钟周期来传递命令,但可以明确设置传递命令所需的 时钟周期的数量(即,等待时间)。这意味着,可以同步地向可重构部分中包括的所有处理 元件传递命令,而不仅仅向各个段中的处理元件传递命令。因此,即使当由许多处理元件构 成数据流时,通过在考虑到预定等待时间的情况下输出命令,可以同步地暂时停止(中止) 并再激活(恢复)构造成数据流的许多处理元件。可以从位于控制数据流的装置内部或外部的处理器供给命令。可以由多个处理 元件中的至少一部分处理元件(一组处理元件)生成并输出诸如要求快速反应(quick reaction)等的命令。多个处理单元中的至少一些处理元件(所述至少一部分处理元件) 优选应当包括命令生成单元。生成并输出命令的处理元件的典型例子是包括用于暂时存储 由在可重构部分中构成的数据流处理后的输出的存储单元的输出接口元件。当这种输出接 口元件不能够吸收针对存储单元(缓冲器)的数据输入和输出之间的处理速度差时,可以 经由命令传递系统输出用于暂时停止在可重构部分中构成的数据流的停止命令。也就是 说,由命令传递系统传递的典型命令是用于停止处理元件的时钟的停止命令。所述装置还包括命令收集系统,所述命令收集系统用于将由所述命令生成单元生 成的命令收集到所述命令输出单元中。所述命令收集系统包括单独设置在各段中的收集命 令寄存器,并且还包括第一级命令收集矩阵,用于在所述第一延迟的范围内将各段中的收 集命令寄存器和所述至少一部分处理元件相连接。所述命令收集系统还包括第二级命令收 集矩阵,用于以与所述第一延迟不同的延迟将所述多个段的收集命令寄存器和所述命令输 出单元相连接。通过在各段中设置收集命令寄存器和第一级命令收集矩阵,可以在第一延迟的范 围内、例如在一个时钟周期内,从段中分别包括命令生成单元的所有处理元件将命令收集 到收集命令寄存器中。这意味着,通过在预定延迟的范围内、例如在一个时钟周期内、使用 第二级命令收集矩阵来从多个段的收集命令寄存器将命令收集在命令输出单元中,可以在 预定等待时间(延迟)的情况下,从可重构部分中包括的并且分别配备有命令生成单元的 所有处理元件将命令收集到命令输出单元中。这意味着,可以使用在预定或设定等待时间 的情况下经由命令传递系统发送来的、来自命令生成单元的命令,同步地(即,在相同定时 的情况下)控制可重构部分中包括的所有处理元件。因此,可以将由可重构部分中包括的给定处理元件的命令生成单元生成的命令同 步地传递至可重构部分中包括的所有处理元件。这意味着,可以使用可重构部分中包括的 处理元件来精确地控制数据流。例如,即使已经使用许多处理元件构成了数据流,也仍可以 使用从处理元件输出的命令同步地暂时停止(中止)和再激活(恢复)构成数据流的许 处理元件。
在该装置中,经由命令收集系统和命令传递系统还向生成了命令的处理元件所属 于的同一段中的处理元件传递命令。另外,甚至生成了命令的处理元件自身也经由命令收 集系统和命令传递系统接收到该命令。因此,对于属于可重构部分的所有处理元件,从在处 理元件中生成命令直到在处理元件中接收到命令为止的等待时间是一致的。这意味着,可 以同步地向属于横跨可重构部分中包括的多个段所重构的数据流的所有处理元件传递命 令,并且由此防止利用该数据流的处理中的不一致。命令输出单元配备有作为将从至少一部分处理元件输出的命令经由第二级命令 传递矩阵传递至多个传递命令寄存器的命令中继单元的功能。通过在命令输出单元中设置 寄存器(触发器),可以以更高的精度设置向各个处理元件传递命令的等待时间。作为命令 的源的至少一部分处理元件可以在考虑到由命令收集系统和命令传递系统传递命令所需 的时钟周期的情况下输出命令,以适当地控制数据流。命令输出单元可以包括在输出接口 元件中。包括用于暂时存储输入到在可重构部分中构成的数据流的数据的存储单元的输 入接口元件可以包括在生成并输出命令的处理元件的组中。包括用于暂时存储由处理流正 在处理的中间数据的存储单元的数据存储型元件可以包括在生成并输出命令的处理元件 的组中。这是因为,出现要输入到数据流中的数据没有准备好的情况、以及需要在数据流的 中点处调整上游的数据流的处理速度和下游的数据流的处理速度的情况。当各个存储单元中剩余的数据量变为等于在使用命令收集系统和命令传递系统 传递命令时消耗的周期(时钟周期、等待时间)期间、由处理这种数据的数据流所消耗的数 据量时,输入接口元件和/或数据存储型元件中包括的命令生成单元优选应当输出停止命 令。当输入接口元件或数据存储元件向数据流提供数据时,可以暂时停止利用这种数据流 的处理以防止发生不一致,然后重新开始利用数据流的处理。当最终数据位于存储单元中 时,命令生成单元优选应当能够在不输出停止命令的情况下,输出最终数据。当在可重构部分中构成多个数据流时,可重构部分中包括的多个处理元件优选各 自应当包括包含用于识别各处理元件所属的数据流的识别信息的控制单元,并且命令包括 识别信息。还可以使用识别信息来识别多个数据流中包括的处理元件,仅使应当停止的数 据流停止,并且允许其它数据流继续工作。还优选使用于识别包括命令生成单元的处理元 件的上游的数据流的识别信息不同于用于识别该处理元件的下游的数据流的识别信息。通 过单独地控制处理元件的上游的数据流的操作和下游的数据流的操作,可以解决命令的生 成要素。


图1是可重构装置的框图。图2示出PE矩阵的配置。图3示出PE矩阵的段(segment)的配置。图4示出PE矩阵的放大布局。图5示出段内的PE的配置。图6示出段内的布线(段内布线)。图7示出段之间的布线(段间布线)。
6
图8是ALU元件的框图。图9是LDB元件的框图。图10是STB元件的框图。图11是RAMD元件的框图。图12是DLE元件的框图。图13是命令传递系统和命令收集系统的框图。图14是PE的控制单元的框图。图15示出LDB元件的存储体切换(bank switching)。图16示出生成泡的示例。图17示出通过流停止来使数据流停止的示例。图18示出LDB元件的存储体控制器(命令生成单元)。图19是输出流停止命令时的时序图。图20是没有输出流停止命令时的时序图。图21是没有输出流停止命令时的其它示例的时序图。
具体实施例方式图1示出可重构装置的一个示例。该装置1是由本申请的申请人所开发的、被称 为“DAPDNA”的半导体集成电路装置。该装置1包括被称为“DAP”的RISC核模块2和被称 为“DNA” (Distributed Network Architecture,分布式网络体系结构)的动态可重构数据 流加速器3。除DAP 2和DNA 3以外,装置1还包括用于向DNA 3直接输入和从DNA 3直 接输出的接口 4、PCI接口 5、SDRAM接口 6、DMA控制器7、另一总线接口 8和用于连接这些 组件的高速总线开关9。DAP 2包括调试接口 2a、RISC核2b、指令高速缓存器2c和数据高 速缓存器2d。装置(系统)1能够被设置为单一芯片(IC、LSI或ASIC),然而可选地,装置 1可以被设置为包括多个芯片的芯片组。DNA 3包括955个处理元件PE (在下文,还简称为“PE”)按二维方式配置的PE矩 阵(或简称为“矩阵”)10、以及存储有用于通过改变PE矩阵10中包括的多个处理元件PE 的功能和/或连接来重构PE矩阵10的配置数据的配置存储器系统11。配置存储器系统 11包括各个PE的控制单元中包括的配置寄存器系统、和将配置数据传送至寄存器系统的 传送系统。图2示出PE矩阵10的放大布局。955个PE 17在水平方向和垂直方向上配置在 PE矩阵10中,从而构造矩阵(二维阵列结构),并且形成并行处理处理器的核。在硬件方 面,PE矩阵10由按二维阵列布局的PE 17和连接这些PE 17的总线(布线矩阵)构造成。 各个PE 17仅配备有诸如运算单元和存储器等的基本功能,并且通过经由总线将PE 17连 接到一起来实现复杂的功能。可以利用软件来改变各个PE 17的功能和总线的连接,其中, 这种信息被称为“DNA配置”。为了在PE矩阵10上实现各种处理,生成并在PE矩阵10中设 置(映射)与这种处理相对应的DNA配置。可以将多个DNA配置存储在PE矩阵10内部, 并且可以动态地改变当前处理正在使用的DNA配置。后面更详细地说明这种DNA配置。如图2所示,PE矩阵10中的处理的基本操作包括对已经从外部主存储器19等取 入的数据进行处理、以及将这些数据再次发送回外部。可以经由SDRAM接口 6等向外部主存储器9输入数据并从外部主存储器9等输出数据。PE矩阵10配置有用于从外部取入(输 入)数据的两类端口。一类端口是被称为“LDB”的PE17,并且经由SDRAM接口 6等从连接 至装置1的主存储器19取入数据。另一类端口是经由直接I/O接口 4从外部连接的其它 装置18取入直接数据的、被称为“LDX”的PE 17。通过由PE矩阵10内部的多个PE 17构 造成的数据流(数据路径)对从这些PE 17取入的数据进行处理,然后输出这些数据。还 设置了用于将已经完成了处理的数据发送至外部的两类端口。一类端口是被称为“STB”的 PE 17,并且将数据写入到外部存储器19中。另一类端口是被称为“STX”的PE 17,并且将 直接数据发送至经由直接I/O接口 4所连接的外部装置18。图3 5更详细地示出PE矩阵10的配置。PE矩阵10中配置的多个PE 17包括 主要对数据进行各种处理的PE( “ePE”)、和主要形成PE之间的连接的连接用PE( “DLV” 和“DLH”)。如图3所示,将PE矩阵10中配置的多个PE 17分割成或划分成由4列和4行 构成的16个段(在下文,使用“段S”来统称这些段,并且使用“段SO S15”或段“al a4”、“bl b4”、“cl c4”和"dl d4,,来指定各个段)。各个段S包括由8列和8行构 成的数据处理用PE (ePE)、以及沿着与其它段S的边界配置的DLV和DLH。通过能够在一个 周期的延迟的范围内发送和接收数据的段内连接(段内部的连接、第一级路由矩阵)21来 连接各个段S中包括的PE 17。此外,经由DLV和DLH,通过段间连接(段之间的连接、第二 级路由矩阵)22来连接相邻的段S。注意,在以下说明中,当指定各类型的PE 17时,使用诸 如“ LDB ”和“ LDX”等的类型名称。各个段具有PE的不同布局。例如,在段al dl中配置LDB或LDX,并且在段a4 d4中配置STB或STX。在PE矩阵10中构成的数据流(数据路径)中的信号的基本流为从 段 al、bl、cl、dl 到段 a4、b4、c4、d4。图4示出段al a4和bl b4中的PE 17的布局的一个示例。图5示出段al 的放大布局。各个段内的数据处理用PE 17e的配置基本为8列和8行。也就是说,当将段 的左上方的PE编号为列c0、行r0、并且将右下方的PE编号为列c9、行r9时,在列cl c8 和行rl r8的范围内配置数据处理用PE 17e。当不考虑DLH和DLV时,离左上方最近的 PE 17e配置在列Cl、行rl处。然而,使用两列来布置诸如“MUL”、“SFT”或“RMC”等的具有 两个数据输出的PE 17e以及“RAM”,也就是说,这种PE具有与2个最小的PE 17相等的区 域。使用4列来布局“STB”和“LDB”,也就是说,这种PE具有与4个最小的PE 17相等的区 域。作为数据传送用PE 17c的DLV和DLH被布局到列c0和c9以及行r0和r9。注 意,DLV和DLH并未布置在各段的四个角处。另外,如图4所示,在位于顶端、底端、左端和 右端的段中,顶行或底行中不存在DLV,或者最左列或最右列中不存在DLH。也就是说,在位 于四角处的段al、a4、dl和d4中,顶行和底行其中之一(S卩,r0或r9)中不存在DLV,并且 最左列和最右列其中之一(即,c0或c9)中不存在DLH。在段bl、cl中,顶行r0中不存在 DLV。在段b4、c4中,底行r9中不存在DLV。在段a2、a3中,最左列c0中不存在DLH,并且 在段d2、d3中,最右列c9中不存在DLH。图6示出段内连接(第一级总线、第一级路由矩阵)21。第一级总线21包括连接 段内部的PE的水平(SP,宽度方向)总线21h和垂直(SP,高度方向)总线21v、以及用于 连接总线21h和21v的开关(“选择器”、“总线选择器”、“H到V选择器”)21s。
8
图6示出段内部的4列和2行、例如列cl c4和行rl和r2的提取区域。水平 总线21h是用于将同一行中配置的各个PE 17的输出与该段的位于左方和右方的DLH的输 出相连接的总线。垂直总线21v是用于将同一列中配置的各个选择器21s的输出与该段的 位于上方和下方的DLV的输出相连接的总线。选择器21s配置在垂直总线21v和水平总线 21h的交点处,并且如图6所示,选择器21s被构造成同一列上的奇数行和偶数行(即,行 2N-1和2N)形成对。角落处的选择器21s将来自各行(S卩,水平总线)21h的两个输出输出 到垂直总线21v。第一级总线21还包括与各个PE17相对应、并将垂直总线21v连接至各个 PE 17的选择器(“PE输入选择器”)21t。在由包括总线21h和21v的第一级总线21可以连接的范围中,也就是说,在各段 中的PE之间(即,在连接源PE的FF (触发器)或寄存器和连接目的地PE的FF或寄存器之 间),可以在一个周期(一个时钟周期)内发送和接收数据。因此,在信号传播的定时(等 待时间)方面,作为一个例子,段al中包括的所有PE均是等同的。这意味着,在同一段内, 当构成电路时,无论已经选择哪个PE且已指派了功能,都无需预先验证或研究定时。在定 时方面,可以在给定段中的多个PE上自由地进行电路的配置和布线。图7示出第二级路由矩阵22的结构。在图7中,通过第二级路由矩阵22连接相 邻的段(图7中的段al和bl)中分别包括的DLH( —类连接用PE 17c)。图7所示的各个 DLH连接至段Sl和S4内部的第一级路由矩阵(段内内部连线)21。因此,可以经由第二级 路由矩阵(段间内部连线)22连接段Sl中包括的PE 17和段S4中包括的PE 17。作为连 接用延迟元件17c的DLH用作针对第一级路由矩阵21中包括的总线的接口。因此,可以在 各段中独立地使用第一级路由矩阵21中包括的总线。另一方面,当需要在段之间输入和输 出数据时,经由连接用DLH中包括的FF(触发器、寄存器)来输入和输出数据。这意味着, 当经由第二级路由矩阵22在段之间传递信号时,新添加了与时钟同步的一个周期的延迟。 经由也作为连接用PE 17c的DLV,以相同的方式执行配置在上方和下方的段S的连接。当仅使用第一级路由矩阵21连接PE 17时,保证PE 17之间的延迟时间(延迟或 等待时间)将在一个时钟周期的范围内(“第一延迟”)。因此,无需验证时序收敛(timing closure)。另一方面,当经由第二级路由矩阵22连接PE 17时,将添加至少一个时钟周期的 额外延迟。经由第二级路由矩阵22连接时的延迟时间依赖于延迟元件DLH的设置,这使得 可以控制延迟(延迟时间)。例如,通过控制DLH的延迟,可以使使用两次第二级路由矩阵 22的信号和使用一次第二级路由矩阵22的信号同步。当经由其它的连接用延迟元件DLV 连接相邻的段S时,这也适用。图7所示的DLH具有将PE矩阵10的水平总线(H总线)21h上的信号传递至相邻 的段的功能。各个DLH具有24个输入和8个输出。24个输入包括来自成对的奇数行和偶 数行的PE 17的输出(每行8个输出的两倍,得出总共为16个)、以及同一段内位于相对侧 的DLH的4个输出的两倍(得出总共为8个)。各个DLH选择24个输入中的8个输出,并 将这8个输出经由第二级路由矩阵22输出至相邻的段的DLH。DLV的基本结构相同。在图4和5所示的PE矩阵10中配置的PE 17中,表示为“ALU”、“ALC”、“ALS,,、 “MUL”、“BTC”、“RMC”和“SFT”的这些类型的PE 17具有20种算术运算、逻辑运算和针对两 个输入的比较函数。数据输入/输出是16位数据,并且包括两个输入和一个输出。乘法器 具有16位数据的输入和32位数据的输出。这些PE 17通常被称为“ALU元件”,并且各自包括特有的运算函数。例如,ALU和ALC包括相同的运算处理,但对于内部是否存储有固定值 则是不同的。ALC存储1个16位的固定值,但ALU代替在内部存储固定值,使用相邻的ALC 的固定值。ALS在内部存储1个16位的固定值,并且支持诸如FFl (Find the First 1,找 到第一个 l)、Sm(Sum of Number of 1,1 的数量的和)、S2P(Serial To Parallel,串行至Ij 并行)和P2S (Parallel To Serial,并行到串行)等的特殊处理。MUL在内部包括乘法器。 BTC以位为单位设置输出数据。为了产生16个输出位,可以从输入32位中选择任意的单个 位作为单独的输出位。RMC是具有两个输入和两个输出的PE,并且执行位旋转、掩模处理和 比较处理。RMC还供给16位的固定值。SFT执行32位的偏移处理。表示为“DLE”的这类的PE 17是用于调整等待时间并在段之间转移数据的延迟元 件。DLE的数据输入和输出包括一个输入和一个输出。表述“延迟元件”包括作为延迟调整 用PE 17e的DLE、以及作为用于在段之间转移数据的专用PE 17c的DLH和DLV。表示为“RAM”的这类PE 17是DNA矩阵10的内部存储器。各RAM包括54个8千 字节的区域和1个16千字节的区域,总共得出448千字节的存储区域。该存储区域即使在 切换DNA配置时,也存储值。RAM元件包括命名为“RAMS”、“RAMD”和“RAMV”的这三类。表示为“C16L”、“C16S”、“C32L”、“C32S”、“C32E” 和 “C16E” 的这些类型的 PE 17 是计数器元件,并且用作为针对DNA缓冲器的地址生成器、针对主存储器的地址生成器,并 用作为通用计数器。C16L和C16S是针对DNA缓冲器的地址生成器,配备有计数器功能(2 个16位计数器),并且能够利用ALU元件生成复杂的地址模式。C32L和C32S是针对主存 储器的地址生成器,配备有计数器功能(2个32位计数器),并且能够利用ALU元件生成复 杂的地址模式。C32E和C16E分别是32位和16位的通用计数器。表示为“LDB”的这类PE 17是从主存储器19向PE矩阵10输入数据的DNA负载 缓冲器,并且与输入接口元件相对应。各LDB具有四缓冲器结构,其中,一个存储体包括容 量为8千字节的缓冲器。STB是从PE矩阵10向主存储器19输出数据的DNA存储缓冲器, 并且与输出接口元件相对应。表示为“STB”的这类PE 17各自具有两缓冲器结构,其中,一 个存储体包括容量为8千字节的缓冲器。LDX经由直接I/O从其它的DNA输入数据,并且经 由直接I/O向其它的DNA输出数据。图8是表示为“ALU”的这类PE 17 (在下文,“ALU元件”)的框图。“dix”和“diy” 是数据输入,并且指定由选择器21t从垂直总线21v选择的输入。“do”是数据输出,并且 指定到水平总线21h的输出。这还适用于其它的元件。“die”是ALU元件的输入接口,并 且指定来自作为具有大致相同的功能的元件的ALC元件的寄存器中存储的固定值(或“立 即值(immediate)”)的输入。ALC元件除具有能够存储固定值的寄存器101以外,具有与 ALU元件的结构大致相同的结构。“doc”是ALU元件的输出接口。“cix”和“ciy”是进位 输入,并且“co”是进位输出。PE矩阵10包括具有与图6和图7所示的数据总线的结构相 同的结构的进位总线。在图8中,由双线围绕的矩形表示寄存器。这在以下所述的各个PE 17的框图中也是相同的。选择器102选择数据dix和寄存器101中的常数其中之一作为ALU 113的输入X。 选择器103设置ALU 113的输入Y的延迟。选择器104设置输入Y的进位的延迟。设置选 择器105和106,以交换输入X和Y。选择器107设置输入X的反馈,并且选择交换后的输 入X的令牌(token)或输入Y的进位。选择器108选择输入X,并且能够反馈ALU的输出。选择器109用于绕过ALU 113。选择器112选择PE 17的输出。选择器110选择ALU 113 的输入侧上的进位,并且选择(包括延迟的)进位输入和(可能已经交换了的)输入X或 输入Y的令牌其中之一。选择器111选择从PE 17输出的进位,并且选择ALU 113的输入 进位、ALU 113的输出进位、ALU 113已经用作为比较器时的进位和输入Y的进位其中之一。另外,图8所示的ALU元件包括用于控制该元件内部的处理内容(功能和连接) 的控制单元15。控制单元15包括构造成配置存储器系统11的配置寄存器系统12、和命令 解码系统55。控制单元15根据已经由传送系统13传送至ALU元件的配置寄存器系统12、 并且已经变为有效的配置数据,切换并控制ALU元件的功能。例如,控制单元15基于该有 效的配置数据设置ALU元件中包括的选择器,以切换诸如ALU 113等的运算逻辑元件的功 能,并由此使ALU元件执行期望的数据处理。因此,可以根据寄存器系统12中已经变为有 效的配置数据,在一个时钟周期内改变ALU元件的功能。这同样适用于其它的PE 17。控制单元15的命令解码系统55对经由段内部的命令传递矩阵(第一级命令传递 矩阵、命令传送矩阵)51传送来的命令进行解码。该命令与配置寄存器12中的有效的配置 数据有关,并且如果该命令中包括的EID与作为用于识别数据流的信息的EID —致,则将基 于该命令来控制ALU元件。作为一个例子,对于停止命令,ALU元件的时钟停止,并且所有 的功能均停止。这同样适用于其它的PE 17。图9是示出表示为“LDB”的这类PE 17 (在下文,“LDB元件”)的框图。LDB元件 是包括用于从主存储器19向PE矩阵(DNA矩阵)10传送的数据传送缓冲器的输入接口元 件。LDB元件包括用于暂时存储到在PE矩阵10中已经重构了的数据流的输入数据的存储 区域29a。存储区域29a各自包括8千字节的4个存储体29x。这四个存储体29x其中之 一用作背景存储体(针对来自主存储器19的输入的输入存储体),并且另一个用作前景存 储体(针对到PE矩阵10的输出的输出存储体)。LDB元件包括存储体控制单元29b。存储体控制单元29b具有独立地工作的4个 存储体29x,并且与数据的输入和/或输出的结束同步地生成存储体切换,以使得可以在各 时钟周期内从PE矩阵10的PE 17或数据流存取存储区域29a。配备有存储体29x的存储 区域29a向从LDB元件接收数据的数据流顺次提供数据。此外,通过在C16L元件处生成地址,可以从DNA矩阵10向存储区域29a的存储 体29x进行随机存取。还可以使用同一 EID(数据流识别信息)在多个通道之间执行同步 操作。除了用作为针对从主存储器19到DNA矩阵10的传送的传送缓冲器以外,可以使用 LDB缓冲器作为使用回送功能(loop back function)来写入DNA矩阵10的内部数据的缓 冲器。LDB元件的存储体控制单元29b配备有作为命令生成单元的功能,并且包括生成 和输出流停止信号的功能(功能单元)。当期望停止对从LDB元件输出(读取)的数据执 行处理的数据流(数据路径)时,LDB元件的存储体控制单元29b生成并输出包括表示针对 该处理在PE矩阵10中重构了的数据流的EID、和流停止信号的流停止命令(停止命令、流 停止请求)Cs。这样,LDB元件能够停止经由输出控制单元122读出数据的期望的数据流。当期望停止对从主存储器19输入(写入)至LDB元件中的数据执行处理的数据 流(数据路径)时,LDB元件的存储体控制单元29b输出包括表示针对该处理已经在PE矩 阵10中重构了的用于读取外部存储器19的数据流的EID、以及流停止信号的命令Cs。这样,LDB元件能够停止经由输入控制单元121输入数据的期望的数据流。LDB元件还配备有 控制单元15,该控制单元15配置有与ALU元件中的功能相同的功能。为了读取和写入存储区域29a、并切换存储体29x,各LDB元件包括写入计数器 123、读取计数器126、用于存储阈值的输入计数寄存器124和输出计数寄存器125、以及用 于存储存取数据单位的寄存器127。图10是表示为“STB”的这类PE 17(在下文,“STB元件”)的框图。STB元件是包 括用于从DNA矩阵10向主存储器19传送数据的数据传送缓冲器的输出接口元件。各STB 元件包括用于暂时存储从数据流输出的数据的存储区域28a。存储区域28a包括大小分别 为8千字节的两个存储体28x。这两个存储体28x其中之一用作背景存储体(用于向主存 储器19输出的存储体),并且另一个用作前景存储体(用于从PE矩阵10输入的存储体)。STB元件包括存储体控制单元28b。存储体控制单元28b具有独立操作的两个存 储体28x,并且与数据的输入和/或输出的结束同步地生成存储体切换,以使得可以按每时 钟周期从DNA矩阵10的PE 17或数据流存取存储区域28a。STB元件的存储体控制单元28b还配备有作为命令生成单元的功能(功能单元), 并且包括生成流停止信号的功能。当期望停止对从STB元件输出(读取)至主存储器19 的数据执行处理的数据流(数据路径)时,存储体控制单元28b生成并输出包括表示针对 该处理在PE矩阵10中重构了的数据流的EID的停止命令Cs。当连接输入控制单元131、 并且期望停止执行向STB元件输入(写入)数据的处理的数据流(数据路径)时,存储体 控制单元28b生成并输出包括表示针对该处理的数据流的EID的停止命令Cs。因此,按与 LDB相同的方式,存储体控制器28b能够使用包括流停止信号和EID的停止命令Cs来停止 期望的数据流。各STB元件还包括控制单元15。STB元件的控制单元15包括配置寄存器系统12、 命令解码系统55和命令输出单元(命令中继单元)59。命令中继单元59针对在STB元件 内部生成的停止命令Cs和在LDB等内部生成的停止命令Cs计算逻辑或(OR),并将合成后 的停止命令Cs输出至段外部的命令传送矩阵(第二级命令传递矩阵)52。为了读取并写入存储区域28a并且切换存储体28x,STB元件还包括写入计数器 133、读取计数器136、用于存储阈值的输入计数寄存器134和输出计数寄存器135、以及用 于存储存取数据单位的寄存器137。图11是示出表示为“RAM”的这类PE 17 (在下文,“RAM元件”)的框图。图11所 示的RAM元件是RAMD元件。RAMD元件是PE矩阵10在内部设置的双端口存储器。RAMD元 件包括双端口 RAM 27a、读取/写入控制器27b、和根据配置数据来控制RAMD元件的功能的 控制单元15。根据配置数据,RAMD元件能够用于地址解码模式、双端口 16位模式、直方图模式、 16位FIFO模式和延迟模式。这意味着,在数据流中,RAM可以用作诸如线缓冲器或FIFO等 的暂时数据存储器,用作查找表,用于直方图处理等。另外,由于RAMD元件包含于RISC 2 的存储空间中,因此RISC 2可以单独针对在PE矩阵10中构成的数据流,直接读取和写入 RAM 27a。当同时发生通过数据流的存取和直接存取时,优先直接存取。RAMD元件包括命令生成单元69。命令生成单元69输出包括从读取/写入控制器 27b输出的停止信号、和控制单元15中的有效的配置数据所包括的EID的停止命令Cs。在FIFO模式等中,当上游的数据流的处理速度和下游的数据流的处理速度之间的速度差大 时,RAMD元件的命令生成单元69输出包括上游的数据流的EID和下游的数据流的EID的 流停止命令Cs。图12是示出表示为“DLE”的这类PE 17 (在下文,“DLE元件”)的框图。DLE元 件调整在PE矩阵10中重构的数据流中的数据和进位的延迟值。各DLE元件包括延迟电路 26a、用于控制延迟的模式控制单元26b和用于根据配置数据来控制模式的控制单元15。各DLE元件能够调整1 8个时钟的范围内的数据的延迟,并且能够调整1 16 个时钟的范围内的进位的延迟。另外,DLE元件配备有FIFO功能。因此,在PE矩阵10中, DLE元件能够用于调整数据和进位之间的定时,或用作为数据的缓冲器等。DLE元件还包括命令生成单元69。命令生成单元69输出包括从模式控制单元26b 输出的停止信号、和控制单元15中的有效的配置数据所包括的EID的停止命令Cs。在FIFO 模式等中,当上游的数据流的处理速度和下游的数据流的处理速度之间的速度差大时,DLE 元件的命令生成单元69输出包括上游的数据流的EID和下游的数据流的EID的流停止命 令Cs。装置1还包括用于向各PE 17传送命令的命令传递系统50、和用于收集由一部分 PE 17生成的命令并将这些命令传递至命令传递系统50的命令收集系统60。图13示出命 令传递系统50和命令收集系统60的概述。为了容易理解,图13示出从PE矩阵10的16个段S中提取的段al a4,但其它 段也是相同的。PE矩阵10中配置的PE 17和路由矩阵21和22构成由粗线示出的数据流 (数据路径)70。在该示例数据流70中,经由段al的LDB输入数据,并且经由段a4的STB 输出数据。为了构成数据流70,通过段内连接21来连接段内部的诸如ALU等的PE 17,并 且通过段间连接22经由DLV对来连接这些段。在PE矩阵10中重构的数据流70不限于 此,并且所重构的数据流70的数量不限于1个,并且在许多情况下,将对多个数据流进行重 构。LDB、STB、RAMD和DLE也是PE其中之一,但由于这些元件是用作流停止命令Cs的生成 器(生成源)的PE17,因此已经在图13中单独示出这些元件。命令传递系统50是用于将停止命令Cs和其它命令传递至PE矩阵10中包括的多 个PE 17中的各个PE 17的系统。命令传递系统50包括段al a4中分别设置的传递命 令寄存器(寄存器、触发器、FF) 53、以及用于将段al a4中布局的多个PE和传递命令寄 存器53相连接的第一级命令传递矩阵(命令传递连接、命令传递总线、命令传递布线)51。 命令传递系统50还包括将各段中设置的多个传递命令寄存器53和命令中继单元(命令输 出单元)59相连接的第二级命令传递矩阵52。将命令寄存器(寄存器单元)53表示为“FF”,并且一般包括由多位触发器FF或锁 存单元组成的寄存器,但还可以包括用于传送命令的其它逻辑门。命令寄存器53按时钟周 期为单位输入和输出停止命令Cs以及其它命令,并且用于与时钟周期同步地传送这些命 令。在命令传递系统50中,STB的命令输出单元59的命令寄存器59f经由第二级命 令传递矩阵52连接至段al a4的传递命令寄存器53。第二级命令传递矩阵52在一个时 钟周期的范围内,从STB的命令输出单元59的命令寄存器59f向各个段al a4的传递命 令寄存器53传递(传送)数据(命令)。
在各个段al a4中,在段中配置传递命令寄存器53,并且传递命令寄存器53经 由第一级命令传递矩阵51连接至该段中的所有的PE。在各个段al a4中,在一个时钟的 范围内,从段内的PE 17向同一段中配置的所有的PE 17传递(传送)数据。因此,通过使 用第一级命令传递矩阵51,对于各段中的PE 17,在一个时钟周期的范围内,从同一段中设 置的命令寄存器53传递(传送)数据(命令)。也就是说,通过在各段的命令寄存器53中锁存的命令,在下一时钟周期内控制段 al a4中配置的所有的PE。因此,根据命令传递系统50,在已经由STB的命令输出单元 59的命令寄存器59f对命令锁存之后的第二时钟周期中,利用命令同步地控制PE矩阵10 中配置的所有的PE。按与如上所述相同的方式,命令传递系统50能够还将从RISC模块2等供给的其 它命令同步地传递至PE矩阵10中的所有的PE。命令收集系统60是用于从PE矩阵10中生成命令的PE 17收集停止命令Cs和其 它命令的系统。命令收集系统60包括各个段al a4中设置的、用于收集命令的收集命令 寄存器(寄存器、触发器、FF)、以及将各个段al a4内部配置的多个PE 17中生成命令的 PE和用于收集命令的命令寄存器63相连接的第一级命令收集矩阵(命令收集连接、命令收 集总线、命令收集布线)61。另外,命令收集系统60包括用于将用于收集命令的并且设置在 各个段中的多个命令寄存器63、和命令中继单元(命令输出单元)59相连接的第二级命令 收集矩阵62。如同用于传递命令的命令寄存器52 —样,用于收集命令的命令寄存器63 —般可 以包括由多位触发器FF或锁存单元组成的寄存器,但还可以包括用于传送命令的其它逻 辑门。命令寄存器63按时钟周期为单位输入和输出停止命令Cs和其它命令,并且用于与 时钟周期同步地传送命令。在命令收集系统60中,在各段中配置用于收集命令的命令寄存器63,并且命令寄 存器63经由第一级命令收集矩阵61连接至这些段内生成命令的所有PE。这意味着,在段 al a4中,通过使用第一级命令收集矩阵61,可以在一个时钟周期的范围内将来自生成命 令的所有PE的数据(或停止命令)收集到同一段中设置的命令寄存器63。STB的命令输出单元59的命令寄存器59f和段al a4中用于收集命令的命令寄 存器63经由第二级命令收集矩阵62相连接。第二级命令收集矩阵62在一个时钟周期的 范围内,从段al a4中用于收集命令的命令寄存器63向STB的命令输出单元59的命令 寄存器59f传递(传送)数据(命令)。因此,在两个时钟周期内,从生成命令并且配置在 PE矩阵10中的所有PE 17向STB的命令输出单元59的命令寄存器59f传递(传送)命 令。在装置1中,经由命令收集系统60和命令传递系统50,还向位于生成命令的PE 17所属的段中的PE 17传递命令。另外,在生成命令的PE 17自身中,对于该PE 17中接收 命令的控制单元15,经由命令收集系统60和命令传递系统50传递命令。因此,属于PE矩 阵10的所有PE 17具有从由PE 17发出命令到由PE17接收到该命令的一致的等待时间。 这意味着,可以在同步定时向属于横跨PE矩阵10中包括的多个段所重构的数据流的所有 PE 17传递命令,并且可以防止数据流70的处理的不一致。命令收集系统60的第一矩阵61和第二矩阵62包括生成针对命令的逻辑或的或门61r和62r。停止命令Cs是包括EID信息的16位信号(stop[15:0]),其中,位0表示 "EID = 0”。因此,通过输出针对停止命令Cs的逻辑或,可以在同一定时停止与多个EID相 对应的多个数据流。由于该原因,即使当在PE矩阵10中构成正在执行不同的数据处理的 多个数据流时,通过使用命令收集系统60和命令传递系统50,也可以精确地且灵活地分别 控制多个数据流70。图14是各PE 17中包括的控制单元15的框图。图14示出控制单元15中包括的 配置寄存器系统12和命令解码系统55。配置寄存器系统(存储器系统)12包括由两个背 景存储器12b (即,两个存储体)和一个前景存储器12a (—个存储体)组成的总共3个存 储体的配置存储器。这三个存储体12a和12b各自能够存储一个DNA配置。寄存器系统12 还包括将来自传送系统13的DNA配置分别存储在前景存储器12a和背景存储器12b中的 电路12c、以及将背景存储器12b中存储的DNA配置传送至前景存储器12a的电路12d。在控制单元15的寄存器系统12中,由存在于前景存储器12a中的并且实际上已 经变为有效的DNA配置来控制各PE 17的功能(状态、数据路径)。可以通过重写前景存储 器12a内的指令寄存器12i来切换有效的DNA配置。为了对指令寄存器12i进行写入,存 在从背景存储器12b的存储体传送的方法(“动态配置”)、和从存储映射上的控制寄存器 (DNACFGff)直接写入的方法。可以在一个时钟内进行从背景存储器12b向前景存储器12a 传送,并且可以在一个时钟内切换PE 17的功能。在背景存储器12b的两个存储体中,可以从主存储器向不再需要的存储体加载 DNA配置。这意味着,DNA配置的数量实际上没有限制。切换前景存储器12a的DNA配置被 称为“动态重构”,并且提供了两个方法。一个方法从正在执行的DNA配置对DAP(RISC单 元)2发生中断,并且使用DAP的程序来切换存储体。另一个方法是自主地切换正在执行的 DNA配置。该后一方法特别被称为“自主动态重构”。DNA配置(配置数据)包括用于设置(切换、重构)各个PE 17的功能的电路信息、 参数等。配置数据附加包括作为用于识别包括各个PE 17的数据流70的信息的EID (数据 流识别信息)。由命令解码系统55参考正在执行的有效的DNA配置的EID 55e。命令解码 系统55包括EID解码器55d和用于接通和断开PE的操作的时钟控制单元55s。如前面所 述,停止命令Cs包括表示EID的16位信号。如果停止命令Cs中包括与当前有效的DNA配 置的EID 55e 一致的EID,则命令解码系统55停止时钟以停止PE 17的操作。例如,当EID 55e是“2”时,如果停止命令Cs的位2(即,数据的第二位)是“1”,则PE停止。如果停止 命令Cs的位0和2是“1”,则可以停止EID 55e为“0”和“2”的PE的操作,并且同时控制 多个数据流。图15示出使用LDB (LDB元件)的存储区域29a中包括的4个存储体29x、如何从 主存储器(DRAM) 19向PE矩阵10输入数据。装置1的LDB包括具有四存储体结构的存储区 域29a。通过使用该结构,可以隐藏DRAM 19的读取等待时间。在LDB中,向PE矩阵10 (矩 阵10的PE 17或数据流70)读出数据结束并且切换存储区域29a中的存储体,然后发出针 对DRAM 19的读取请求。近年来,DRAM 19的速度已经明显提高,但该速度提高的代价是存取等待时间的增 加。也就是说,从输入读取命令到读取数据的时钟周期的数量增多。这意味着,如果使用 两存储体结构、且缓冲器的深度不充足(即,当要读出的数据的量少时),存储体切换之后的读取请求将使得从读取侧存储体读取数据结束,这将停止到PE矩阵10中的输入,并且数 据流70将以空闲结束。为了避免该情形,使装置1中的存储体的数量增加到4个存储体。 通过增加存储体的数量,写入侧的存储体29x的数量变为多个(在该例子中,3个写入存储 体)。这意味着,可以在无需等待读取存储体29x为空、并且无需等待从读取存储体到写入 存储体的存储体切换的情况下,向DRAM 19输出读取请求。因此,可以隐藏对于DRAM 19的 存取等待时间。还存在由于对DRAM 19的冲突存取或其它原因、因此当LDB的读取侧存储体29x 为空时未将标准量的数据加载至写入侧存储体29x中的情况。在这种时刻,执行存储体切 换并不适当,并且期望停止从LDB读取数据、或者使在读取侧存储体29x已经为空之后读出 的数据无效。在数据流型计算机中,已知一种向各数据附加用于表示该数据是有效还是无 效的令牌的技术。由于可以通过连同数据一起传递令牌、使用令牌来控制数据流,因此硬件 结构变得简单。该系统同样适用于装置1。然而,如果仅基于令牌执行控制,则有可能数据 流执行错误的运算。图16示出一个例子。在数据流执行以下给出的等式(1)中的运算的情况下,如果 如图16所示、读取侧存储体29x在周期t(0)时为空,则第5个输入的数据将无效(被称为 “泡”)。在这种情形下,如情况1所示,当基于数据Y (t)的令牌执行运算时,由这种无效数 据产生的结果将被作为无效来处理。另一方面,如情况2所示,当基于Y (t-Ι)的令牌执行 运算时,对于由有效数据已经产生的结果将发生错误。如果仅当Y(t)的令牌和Y(t-l)的 令牌这两者均有效时、才将结果看作为有效,则有效运算结果将被作为无效结果来处理。因 此,需要根据数据流中包括的运算来选择有效令牌的处理,并且在设计数据流时需要考虑 到该处理。Y(t) = Y(t)+Y(t-1) ...(1)图17示出装置1中读取侧存储体29x在周期t(0)时变为空的状态。在装置1中, 根据命令收集系统60和命令传递系统50,将在PE 17中生成的流停止命令Cs锁存在寄存 器53中,并且将该流停止命令Cs传递到所有的PE 17。然而,从流停止命令Cs的生成到到 达需要3个时钟周期,在四个时钟周期之后所有的PE 17均参考(即,被传递了)命令Cs, 并且利用该命令Cs来控制所有的PE 17。因此,如图17所示,LDB在比读取侧存储体29x将为空的t(0)早4个周期的t(_4) 时,输出命令Cs。使用停止命令Cs,可以停止数据流70和LDB。由于LDB在负载缓冲器29a 中不存在数据时停止,因此将不输出不具有令牌的数据(即,“泡”)。另外,由于具有相应的 EID的数据流也暂时停止,因此不会基于无效的数据来执行处理。因此,可以提供无泡环境, 这意味着用户无需关注泡,并且可以在无需关注令牌的选择的情况下设计数据流并将该数 据流映射到PE矩阵上。另外,在装置1中,由于具有EID的PE的本地时钟由于流停止命令Cs将停止,因 此还出现功耗下降。当仅基于令牌执行控制时,数据流将不停止,并且在许多情况下,还对 无效的数据执行运算。这导致消耗了更多的电力,并且还有可能通过无效的运算而不必要 地重写了存储器或寄存器。然而,在装置1中,由于可以使用从PE生成的流停止命令Cs使 数据流停止,因此可以从开始就避免这种不期望的情形。当预先确定数据的数量时,诸如LDB和RAM等的元件中作为生成流停止命令的单元的存储体控制单元29b和命令生成单元69可以进一步配备有消除或不生成流停止、从而 输出最终数据的功能。这是因为,有可能由于用作FIFO的存储区域29a中的剩余数据量在 已经接收到最终数据之后没有增加,因而数据流变成死锁。由于该原因,作为LDB的命令生 成单元的存储体控制单元29b配备有在来自元件C32L的结束令牌已被锁存或这种地址的 读取数据已经恢复之后、取消或消除(即,停止)输出流停止的功能29d(参见图9)。根据 该功能29d,还将最终数据毫无问题地输出到在PE矩阵10中重构的数据流。作为消除流停 止的不同的例子,C32L在发现结束令牌时生成中断的原因,DPA2设置特定寄存器以消除流 停止。图18示出LDB元件中用于生成并输出流停止数据的结构和定时。由于存储体切 换,因此写入存储体29x变为读取存储体29x、并且读取存储器29x变为写入存储器29x。之 后,从交换后的读取存储体29x向PE矩阵10传递数据。当数据传递期间从读取存储体29x 可以读出的数据量降至寄存器125中存储的预定阈值29t以下时,作为命令生成单元的存 储体控制器29b判断出几乎为空状态S Tae,并且存储体控制器29b的流停止请求功能29s 输出用于执行流停止的流停止命令Cs。基于从由流停止请求功能29s输出命令Cs、直到该 命令Cs返回至LDB和段为止的等待时间来确定阈值29t。更具体地,在装置1中,各个PE 17参考或获得流停止命令Cs (即,命令Cs到达) 需要3个时钟,并且从命令生成到数据流70停止需要4个时钟。因此,命令Cs的等待时间 (延迟)是4个时钟周期,并且当存储区域29a的读取存储体29x中剩余的数据是4个时钟 周期的数据时,也就是说,当已经输出数据d4时将判断为几乎为空状态STae时,可以输出 流停止命令。图19是直到输出流停止命令Cs并且数据流停止为止的时序图。如果存储体控制 器29b在周期t (-4)时检测到数据d4,则存储体控制器29b判断出几乎为空状态STae。由 于该LDB元件属于具有EID “2”的数据流70 (即,正在向数据流提供数据),因此存储体控 制器29b输出具有EID “2”的流停止命令Cs。在周期t(_3)时,由命令收集系统60的各段的命令寄存器(FF) 63经由第一级命 令收集矩阵61锁存(获得)由存储体控制器29b输出的流停止命令Cs (流停止请求)。也 就是说,由命令收集系统60的寄存器63来收集命令Cs。在周期t(-2)时,由STB的命令输出单元59的输出寄存器(FF) 59f经由第二级命 令收集矩阵62获得命令收集系统60的寄存器63中所收集的命令Cs。也就是说,在寄存器 59f中收集命令Cs。在周期t(_l)时,由命令传递系统50的各段中的命令寄存器(FF)53经由第二级 命令传递矩阵52获得寄存器59f中所收集的命令Cs。也就是说,流停止命令Cs到达寄存 器53。该停止命令Cs表示下一时钟为无效。在下一周期(0)时,具有EID 2的各个PE 17经由第一级命令传递矩阵51识别各 段的命令寄存器53中的命令Cs,并且根据命令Cs而停止。因此,在周期t(0)时,具有EID 2的数据流70停止。将流停止命令Cs保持在流停止命令Cs的源LDB元件的存储体控制器29b中,直 到写入存储体29x已经达到满状态STf、存储体切换已经完成、并且读取存储体29x已被切 换为止。在这种情况下,在周期t (4)时消除流停止命令Cs。
之后,按与以上所述的方式相同的方式,由PE 17经由命令收集系统60和命令传 递系统50识别流停止命令C s的消除(取消无效)。因此,在周期t(7)时取消寄存器53 中具有EID 2的流停止命令Cs。这意味着,属于具有EID 2的数据流的所有PE 17在下一 周期t (8)时均不停止,并且处理从数据d0重新开始或恢复。在周期t(8)时,存储体切换完成,并且在数据d0之后从LDB供给数据dn。这意味 着,具有EID “2”的数据流70能够在无气泡进入该数据流的情况下,正确地继续处理。此 外,由于在从周期t(0)到周期t(8)的时间段期间、针对属于具有EID 2的数据流的PE 17 可以停止时钟,因此可以降低功耗。当正在执行属于其它EID并且与数据输入或输出等有 关的处理时,RAM元件等在这时候将不完全停止,并且有可能消耗一些电力。图20示出在不输出流停止命令Cs的情况下执行存储体切换的情况。在LDB元件 中,即使当读取存储体29x的数据处于几乎为空状态STae时,如果写入存储体29x已经处 于满状态(已写入状态)STf,则当读取存储体29x为空时将可以进行存储体切换。用作命 令生成单元的存储体控制器29b配备有取消输出流停止的功能29d,并且取消功能29d起作 用。取消功能29d响应于周期t(-4)时的几乎为空状态STae,判断为由于写入存储体29x 为满(已写入)、因此无需进行流停止,并且取消几乎为空状态STae。这意味着,不输出流 停止命令Cs。这样,可以防止不必要地停止数据流。图21示出对于最终数据不输出流停止命令Cs的情况。即使当最终数据位于读取 存储体29x中时,存储体控制器29b的取消功能29d也工作。因此,当最终数据位于读取存 储体29x中时,不输出流停止命令Cs。如果最终数据位于读取存储体29x中,则将不从主存 储器(DRAM) 19读取最终数据之后的数据。因此,将不执行存储体切换。这意味着,如果数 据流70停止,则将不读出最终数据。通过使用取消功能29d不输出流停止命令Cs,可以防 止这种情形。可以根据输出DRAM 19的读取地址的元件C32L的结束令牌的标志来判断最终数 据是否位于读取存储体29x中。由于结束令牌标志为高(H),因此取消功能29d判断为对于 周期t(_4)时的几乎为空状态STae,无需进行流停止,并取消几乎为空状态STae。由于该 原因,不输出流停止命令Cs。这样,可以防止不必要地停止数据流。尽管以上已经说明了由LDB输出流停止命令Cs的情况的例子,但数据流中包括作 为FIFO的功能的DLE元件和RAM元件也可以按相同的方式控制上游的数据流和/或下游的 数据流。例如,在被设置成用作针对上游的数据流的FIFO的DLE元件或RAM元件中,在看 上去FIFO将由于上游数据流的写入而变满时,将输出与其自身的EID或上游数据流的EID 相对应的编号的流停止请求。根据该操作,可以停止上游(写入侧)的数据流。这样,对于 下游的数据流而言,可以在无需考虑上游的数据流的状态的情况下,在下游数据流方便的 定时执行处理。DLE元件或RAM元件根据FIFO中剩余的数据量,还将具有下游的数据流的EID的 流停止请求(流停止命令)输出到下游的数据流。这使得可以从开始就防止向下游的数据 流供给泡。此外,作为一个例子,可以使用PE 17的进位信号表示是否可以进行读取。如果 进位为“1”,则这表示存在要读出到FIFO的数据。通过使用该下游的信号,可以在环境有利 时执行读取。通过使用该系统,可以从PE 17生成包括流停止的命令Cs,使用EID识别数据流,并从PE 17执行控制。发出诸如流停止等的命令的PE 17的类型不限于以上所述的例子。 例如,当在PE矩阵中构成的数据流的处理中存在反馈处理时,出现期望在多次迭代、例如 三次迭代中仅执行一次处理的情况。例如,当读取侧在三次中仅执行一次处理以处理反馈 时,可以想到将读出相同的数据三次,并且看上去在这三次中仅执行了一次处理。然而,除 前面所述的RAM和DLE以外,通过还从配备有数据输入和判断功能的诸如ALU等的类型的 PE 17输出流停止命令,在期望在三次迭代中仅执行一次处理时,可以在两个周期内停止输 入侧的数据流。通过执行这类控制,可以降低装置1中的功耗。在装置1中,可以从PE 17输出流停止命令,并且无论段如何,都与该PE 17同步 地控制所有的PE 17。因此,可以通过按识别信息(EID)为单位对数据流进行分割来执行控 制。例如,在环境对读取侧有利时,读取侧数据流可以执行读取。分段(segmentation)在设计并映射数据流时也是有效的。由于在段内保证了时 序收敛,因此分段适合于提高段内的配置和布线的自由度。另外,通过执行分段,可以在各 段中独立地使用用于发送和接收信号的总线(路由矩阵),由此实现提高布线的使用效率 的额外的优点。还可以将多个PE分割配置成多个段的(分段式)系统或结构引入包括包 含诸如ALU等的功能的、多个均一或近似均一的PE或逻辑块(LCB)的可重构装置中。本发明所包括的路由矩阵不限于诸如电气配线等的、根据电气/电子方法传递信 号的路由矩阵。本发明所包括的路由矩阵可以是使用诸如光学传递等的其它信息传递方法 的路由矩阵。同样,本发明所包括的PE的布局和段的布局不限于按二维方式、即垂直和水 平的规则配置。例如,还可以在3个方向或6个方向上规则地布局多个PE和段。另外,可 以使用诸如堆叠成层等的方法按三维方式布局PE和段。
19
权利要求
一种包括可重构部分的装置,所述可重构部分包括多个处理元件,其被布局为分割成多个段;和路由矩阵,用于连接所述多个处理元件,使用所述多个处理元件中的至少一些处理元件和所述路由矩阵中的至少一部分路由矩阵来在所述可重构部分中重构数据流,所述路由矩阵包括第一级路由矩阵,用于在第一延迟的范围内连接各段中包括的处理元件;以及第二级路由矩阵,用于以与所述第一延迟不同的延迟连接不同的段中包括的处理元件,所述装置还包括命令传递系统,所述命令传递系统用于向所述可重构部分中包括的各处理元件传递命令,以及所述命令传递系统包括传递命令寄存器,其设置在各段中;第一级命令传递矩阵,用于在所述第一延迟的范围内将各段中的传递命令寄存器和处理元件相连接;以及第二级命令传递矩阵,用于以与所述第一延迟不同的延迟将所述多个段的传递命令寄存器和输出命令的命令输出单元相连接。
2.根据权利要求1所述的装置,其特征在于,所述多个处理元件中的至少一部分处理元件包括命令生成单元,以及所述装置还包括命令收集系统,所述命令收集系统用于将由各命令生成单元生成的命 令收集到所述命令输出单元中。
3.根据权利要求2所述的装置,其特征在于,所述命令收集系统包括收集命令寄存器,其设置在各段中;第一级命令收集矩阵,用于在所述第一延迟的范围内将各段中的收集命令寄存器和所 述至少一部分处理元件相连接;以及第二级命令收集矩阵,用于以与所述第一延迟不同的延迟将所述多个段的收集命令寄 存器和所述命令输出单元相连接。
4.根据权利要求3所述的装置,其特征在于,所述至少一部分处理元件包括输出接口元件,各输出接口元件包括用于暂时存储由在 所述可重构部分中构成的数据流处理后的输出的存储单元。
5.根据权利要求4所述的装置,其特征在于,由所述命令传递系统传递的命令包括停止各处理元件的时钟的停止命令。
6.根据权利要求5所述的装置,其特征在于,所述至少一部分处理元件包括输入接口元件,各输入接口元件包括用于暂时存储输入 到在所述可重构部分中构成的数据流的数据的存储单元。
7.根据权利要求6所述的装置,其特征在于,各输入接口元件中包括的命令生成单元包括如下功能当所述存储单元中剩余的数据 量变为等于在由所述命令收集系统和所述命令传递系统传递命令时消耗的周期期间、由所 述数据流消耗的数据量时,该功能能够运行以输出所述停止命令。
8.根据权利要求6所述的装置,其特征在于,各输入接口元件中包括的命令生成单元包括如下功能当最终数据位于所述存储单元 中时,该功能能够运行以不输出所述停止命令。
9.根据权利要求6所述的装置,其特征在于,所述至少一部分处理元件包括数据存储型元件,各数据存储型元件包括用于暂时存储 由所述数据流正在处理的中间数据的存储单元,以及各数据存储型元件中包括的命令生成单元包括如下功能当所述存储单元中剩余的数 据量变为等于在由所述命令收集系统和所述命令传递系统传递命令时消耗的周期期间、由 所述数据流消耗的数据量时,该功能能够运行以输出所述停止命令。
10.根据权利要求9所述的装置,其特征在于,各数据存储型元件中包括的命令生成单元包括如下功能当最终数据位于所述存储单 元中时,该功能能够运行以不输出所述停止命令。
11.根据权利要求1所述的装置,其特征在于,所述多个处理元件包括通过改变功能来重构所述数据流的处理元件。
12.根据权利要求1所述的装置,其特征在于,所述路由矩阵包括通过改变至少一部分连接来重构所述数据流的路由矩阵。
13.根据权利要求1所述的装置,其特征在于,在所述可重构部分中能够构成多个数据流,所述可重构部分中包括的所述多个处理元件包括包含用于识别各处理元件所属的数 据流的识别信息的控制单元,以及由所述命令传递系统传递的命令包括所述识别信息。
14.根据权利要求13所述的装置,其特征在于,用于识别包括命令生成单元的处理元件的上游的数据流的识别信息不同于用于识别 该处理元件的下游的数据流的识别信息。
15.根据权利要求1所述的装置,其特征在于,所述装置还包括处理器,所述处理器用于生成经由所述第二级命令传递矩阵传递的命 令以控制在所述可重构部分中构成的数据流。全文摘要
一种装置(1),其具有可重构部分,包括多个PE(17),其配置为分割成多个段;以及命令传递系统(50),用于向各PE(17)传递命令。所述命令传递系统(50)包括传递命令寄存器(53),其配置在各个段中;第一级命令传递矩阵(51),用于以一个时钟的延迟将各个段中的PE(17)与传递命令寄存器(53)相连接;以及第二级命令传递矩阵(52),用于将多个段的传递命令寄存器(53)与输出命令的命令输出单元(59)相连接。
文档编号G06F7/00GK101983373SQ20098011186
公开日2011年3月2日 申请日期2009年1月29日 优先权日2008年1月31日
发明者松野裕之 申请人:富士施乐株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1