IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】データフロー制御装置
(51)【国際特許分類】
   G06F 5/00 20060101AFI20241217BHJP
   G06F 5/06 20060101ALI20241217BHJP
【FI】
G06F5/00
G06F5/06
【請求項の数】 7
(21)【出願番号】P 2023526718
(86)(22)【出願日】2021-06-09
(86)【国際出願番号】 JP2021021895
(87)【国際公開番号】W WO2022259411
(87)【国際公開日】2022-12-15
【審査請求日】2023-11-22
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100153006
【弁理士】
【氏名又は名称】小池 勇三
(74)【代理人】
【識別番号】100064621
【弁理士】
【氏名又は名称】山川 政樹
(74)【代理人】
【識別番号】100121669
【弁理士】
【氏名又は名称】本山 泰
(72)【発明者】
【氏名】有川 勇輝
(72)【発明者】
【氏名】田仲 顕至
(72)【発明者】
【氏名】伊藤 猛
(72)【発明者】
【氏名】竹谷 勉
(72)【発明者】
【氏名】坂本 健
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開平10-327210(JP,A)
【文献】特開2010-283490(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 5/00
G06F 5/06
(57)【特許請求の範囲】
【請求項1】
データ処理を行う2つ以上のファンクション部の間に設けられ、前段のファンクション部と後段のファンクション部の入出力インタフェースが異なる場合に、前段のファンクション部の出力データを後段のファンクション部に入力できるように変換するように構成された入出力インタフェース変換部と、
複数の前記ファンクション部間の接続関係を示すシステム構成情報に基づいて、ファンクション部間の入出力インタフェースが適合するように、各ファンクション部間に前記入出力インタフェース変換部を配置するように構成された配置部とを備え
各ファンクション部が通信ネットワークを介して接続され、前記通信ネットワーク上に前記入出力インタフェース変換部が配置されることを特徴とするデータフロー制御装置。
【請求項2】
請求項1記載のデータフロー制御装置において、
前記入出力インタフェース変換部は、
前記前段と後段のファンクション部の入出力インタフェース情報に基づいて、前記前段のファンクション部の出力データを変換するか否かを判定するように構成された変換判定部と、
前記前段のファンクション部の出力データを前記後段のファンクション部に入力できるように変換するように構成された変換部と、
前記変換判定部の判定結果に基づいて、前記変換部によって変換された出力データと前記前段のファンクション部から出力された未変換の出力データのいずれかを前記後段のファンクション部に選択的に出力するように構成された出力選択部とを備えることを特徴とするデータフロー制御装置。
【請求項3】
請求項2記載のデータフロー制御装置において、
前記変換判定部と前記変換部とは、前記前段のファンクション部が複数の場合に、前記前段のファンクション部毎に設けられることを特徴とするデータフロー制御装置。
【請求項4】
請求項2記載のデータフロー制御装置において、
前記変換判定部と前記変換部と前記出力選択部とは、前記後段のファンクション部が複数の場合に、前記後段のファンクション部毎に設けられることを特徴とするデータフロー制御装置。
【請求項5】
請求項2乃至4のいずれか1項に記載のデータフロー制御装置において、
前記変換判定部は、前記前段と後段のファンクション部の入出力インタフェース情報に基づいて、前記前段のファンクション部の出力データのクロック周波数を変換するか否かを判定するように構成されたクロック周波数載せ替え判定部であり、
前記変換部は、前記前段のファンクション部の出力データのクロック周波数から前記後段のファンクション部の入力データのクロック周波数に変換するように構成されたクロック載せ替え部であり、
前記出力選択部は、前記クロック周波数載せ替え判定部の判定結果に基づいて、前記クロック載せ替え部によってクロック周波数が変換された出力データと前記前段のファンクション部から出力された未変換の出力データのいずれかを前記後段のファンクション部に選択的に出力することを特徴とするデータフロー制御装置。
【請求項6】
請求項2乃至4のいずれか1項に記載のデータフロー制御装置において、
前記変換判定部は、前記前段と後段のファンクション部の入出力インタフェース情報に基づいて、前記前段のファンクション部の出力データ幅を変換するか否かを判定するように構成されたデータ幅変換判定部であり、
前記変換部は、前記前段のファンクション部の出力データ幅を前記後段のファンクション部の入力データ幅に適合するように変換するように構成されたデータ幅変換部であり、
前記出力選択部は、前記データ幅変換判定部の判定結果に基づいて、前記データ幅変換部によってデータ幅が変換された出力データと前記前段のファンクション部から出力された未変換の出力データのいずれかを前記後段のファンクション部に選択的に出力することを特徴とするデータフロー制御装置。
【請求項7】
請求項2乃至4のいずれか1項に記載のデータフロー制御装置において、
前記変換判定部は、前記前段と後段のファンクション部の入出力インタフェース情報に基づいて、前記前段のファンクション部の出力データのフォーマットを変換するか否かを判定するように構成された入出力情報変換判定部であり、
前記変換部は、前記前段のファンクション部の出力データのフォーマットを前記後段のファンクション部の入力データのフォーマットに適合するように変換するように構成された入出力情報変換部であり、
前記出力選択部は、前記入出力情報変換判定部の判定結果に基づいて、前記入出力情報変換部によってフォーマットが変換された出力データと前記前段のファンクション部から出力された未変換の出力データのいずれかを前記後段のファンクション部に選択的に出力することを特徴とするデータフロー制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置などのコンピュータシステムにおけるデータフロー制御装置に関するものである。
【背景技術】
【0002】
機械学習、人工知能(AI:Artificial Intelligence)、IoT(Internet of Things)など多くの分野で技術革新が進み、様々な情報やデータを活用することで、サービスの高度化、付加価値の提供が盛んに行われている。これらの分野の処理では、大量の計算をする必要があり、そのための情報処理基盤が必須である。
【0003】
例えば、非特許文献1には、既存の情報処理基盤をアップデートしようとする試みが開示されている。しかしながら、急速に増えていくデータに対して現代のコンピュータシステムが対応しきれていないのも事実である。非特許文献1においても、今後さらなる進化を遂げていくためには、ムーアの法則を超える技術が確立されなければいけないと指摘している。
【0004】
ムーアの法則を超える技術として、例えば、非特許文献2には、フローセントリックコンピューティングという技術が開示されている。フローセントリックコンピューティングでは、データのある場所で処理を行うというこれまでのコンピューティングの考え方ではなく、計算機能が存在する場所にデータを移動して処理を行うという新たな概念を導入した。
【0005】
上記のようなフローセントリックコンピューティングを実現するためには、データ移動に必要な広帯域な通信ネットワークが必要になるだけでなく、計算リソースを効率よく制御しないと、所望の演算性能が得られない可能性がある。
【0006】
一般に、フローセントリックコンピューティングでは、ファンクション同士を接続して所望の演算処理を行う例が提案されている。しかしながら、ファンクション同士の入出力インタフェースが異なり直接接続できない場合に、ファンクション間のインタフェースの差異を吸収するようなデータフロー制御方法は開示されていない。
【先行技術文献】
【非特許文献】
【0007】
【文献】“NTT Technology Report for Smart World 2020”,日本電信電話株式会社,2020年,<https://www.rd.ntt/_assets/pdf/techreport/NTT_TRFSW_2020_EN_W.pdf>
【文献】R.Takano and T.Kudoh,“Flow-centric computing leveraged by photonic circuit switching for the post-moore era”,Tenth IEEE/ACM International Symposium on Networks-on-Chip (NOCS),Nara,pp.1-3,2016,<https://ieeexplore.ieee.org/abstract/document/7579339>
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の目的は、前段のファンクション部と後段のファンクション部の入出力インタフェースが異なる場合に入出力インタフェースの差異を吸収することができるデータフロー制御装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明のデータフロー制御装置は、データ処理を行う2つ以上のファンクション部の間に設けられ、前段のファンクション部と後段のファンクション部の入出力インタフェースが異なる場合に、前段のファンクション部の出力データを後段のファンクション部に入力できるように変換するように構成された入出力インタフェース変換部と、複数の前記ファンクション部間の接続関係を示すシステム構成情報に基づいて、ファンクション部間の入出力インタフェースが適合するように、各ファンクション部間に前記入出力インタフェース変換部を配置するように構成された配置部とを備え、各ファンクション部が通信ネットワークを介して接続され、前記通信ネットワーク上に前記入出力インタフェース変換部が配置されることを特徴とするものである。
【0010】
また、本発明のデータフロー制御装置の1構成例において、前記入出力インタフェース変換部は、前記前段と後段のファンクション部の入出力インタフェース情報に基づいて、前記前段のファンクション部の出力データを変換するか否かを判定するように構成された変換判定部と、前記前段のファンクション部の出力データを前記後段のファンクション部に入力できるように変換するように構成された変換部と、前記変換判定部の判定結果に基づいて、前記変換部によって変換された出力データと前記前段のファンクション部から出力された未変換の出力データのいずれかを前記後段のファンクション部に選択的に出力するように構成された出力選択部とを備えることを特徴とするものである。
【0011】
また、本発明のデータフロー制御装置の1構成例において、前記変換判定部と前記変換部とは、前記前段のファンクション部が複数の場合に、前記前段のファンクション部毎に設けられることを特徴とするものである。
また、本発明のデータフロー制御装置の1構成例において、前記変換判定部と前記変換部と前記出力選択部とは、前記後段のファンクション部が複数の場合に、前記後段のファンクション部毎に設けられることを特徴とするものである。
【0012】
また、本発明のデータフロー制御装置の1構成例において、前記変換判定部は、前記前段と後段のファンクション部の入出力インタフェース情報に基づいて、前記前段のファンクション部の出力データのクロック周波数を変換するか否かを判定するように構成されたクロック周波数載せ替え判定部であり、前記変換部は、前記前段のファンクション部の出力データのクロック周波数から前記後段のファンクション部の入力データのクロック周波数に変換するように構成されたクロック載せ替え部であり、前記出力選択部は、前記クロック周波数載せ替え判定部の判定結果に基づいて、前記クロック載せ替え部によってクロック周波数が変換された出力データと前記前段のファンクション部から出力された未変換の出力データのいずれかを前記後段のファンクション部に選択的に出力することを特徴とするものである。
【0013】
また、本発明のデータフロー制御装置の1構成例において、前記変換判定部は、前記前段と後段のファンクション部の入出力インタフェース情報に基づいて、前記前段のファンクション部の出力データ幅を変換するか否かを判定するように構成されたデータ幅変換判定部であり、前記変換部は、前記前段のファンクション部の出力データ幅を前記後段のファンクション部の入力データ幅に適合するように変換するように構成されたデータ幅変換部であり、前記出力選択部は、前記データ幅変換判定部の判定結果に基づいて、前記データ幅変換部によってデータ幅が変換された出力データと前記前段のファンクション部から出力された未変換の出力データのいずれかを前記後段のファンクション部に選択的に出力することを特徴とするものである。
【0014】
また、本発明のデータフロー制御装置の1構成例において、前記変換判定部は、前記前段と後段のファンクション部の入出力インタフェース情報に基づいて、前記前段のファンクション部の出力データのフォーマットを変換するか否かを判定するように構成された入出力情報変換判定部であり、前記変換部は、前記前段のファンクション部の出力データのフォーマットを前記後段のファンクション部の入力データのフォーマットに適合するように変換するように構成された入出力情報変換部であり、前記出力選択部は、前記入出力情報変換判定部の判定結果に基づいて、前記入出力情報変換部によってフォーマットが変換された出力データと前記前段のファンクション部から出力された未変換の出力データのいずれかを前記後段のファンクション部に選択的に出力することを特徴とするものである。
【発明の効果】
【0016】
本発明によれば、前段と後段のファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部間の入出力データを変換する。これにより、前段と後段のファンクション部の入出力インタフェースが異なる場合でも、ファンクション部間を接続可能とする。本発明では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本発明では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本発明では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本発明では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【図面の簡単な説明】
【0017】
図1図1は、従来のデータフロー制御装置の構成を示すブロック図である。
図2図2は、本発明の第1の実施例に係るデータフロー制御装置の基本構成を示すブロック図である。
図3図3は、本発明の第1の実施例に係るデータフロー制御装置の具体例を示すブロック図である。
図4図4は、本発明の第1の実施例に係るデータフロー制御装置の動作を説明するフローチャートである。
図5図5は、本発明の第2の実施例に係るデータフロー制御装置の構成を示すブロック図である。
図6図6は、本発明の第2の実施例に係るデータフロー制御装置の動作を説明するフローチャートである。
図7図7は、本発明の第3の実施例に係るデータフロー制御装置の構成を示すブロック図である。
図8図8は、本発明の第3の実施例に係るデータフロー制御装置の動作を説明するフローチャートである。
図9図9は、本発明の第4の実施例に係るデータフロー制御装置の基本構成を示すブロック図である。
図10図10は、本発明の第4の実施例に係るデータフロー制御装置の具体例を示すブロック図である。
図11図11は、本発明の第4の実施例に係るデータフロー制御装置の動作を説明するフローチャートである。
図12図12は、本発明の第5の実施例に係るデータフロー制御装置の基本構成を示すブロック図である。
図13図13は、本発明の第5の実施例に係るデータフロー制御装置の具体例を示すブロック図である。
図14図14は、本発明の第5の実施例に係るデータフロー制御装置の具体例を示すブロック図である。
図15図15は、本発明の第5の実施例に係るデータフロー制御装置の具体例を示すブロック図である。
図16図16は、本発明の第5の実施例に係るデータフロー制御装置の具体例を示すブロック図である。
図17図17は、本発明の第5の実施例に係るデータフロー制御装置の動作を説明するフローチャートである。
図18図18は、本発明の第6の実施例に係るデータフロー制御装置の構成を示すブロック図である。
図19図19は、本発明の第6の実施例に係るデータフロー制御装置の動作を説明するフローチャートである。
図20図20は、本発明の第7の実施例に係るデータフロー制御装置の構成を示すブロック図である。
図21図21は、本発明の第7の実施例に係るデータフロー制御装置の配置部の動作を説明するフローチャートである。
図22図22は、本発明の第7の実施例に係るデータフロー制御装置の動作を説明するフローチャートである。
図23図23は、本発明の第1~第7の実施例に係るデータフロー制御装置を実現するコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0018】
[従来の構成]
まず、図1を参照して、従来のデータフロー制御装置の構成について説明する。従来のデータフロー制御装置100は、演算処理などのデータ処理を行う演算デバイスであるファンクション部101-1,101-2と、ファンクション部101-1,101-2間を接続するメモリ102とを備えている。ファンクション部101-1,101-2としては、例えばCPU(Central Processing Unit)、GPU(graphics processing units)、FPGA(Field Programmable Gate Array)などがある。
【0019】
図1に示すように、従来のデータフロー制御装置100は、一般にデータ幅が固定で、データの書き込み速度および読み出し速度も固定のメモリ102を介してファンクション部101-1,101-2間を接続している。
【0020】
[第1の実施例の構成]
次に、図2図3を参照して、本発明の第1の実施例に係るデータフロー制御装置の構成について説明する。図2は本実施例に係るデータフロー制御装置の基本構成を示すブロック図、図3は本実施例に係るデータフロー制御装置の具体例を示すブロック図である。
【0021】
本実施例のデータフロー制御装置100aは、データフロー型のコンピューティングシステムにおいて、演算処理などのデータ処理を行う演算デバイスであるファンクション部101-1,101-2と、入出力インタフェースが異なるファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する入出力インタフェース変換部103とを備えている。
【0022】
入出力インタフェース変換部103は、ファンクション部101-1の出力データを変換するか否かを判定する変換判定部104と、ファンクション部101-1の出力データをファンクション部101-2に入力できるように変換する変換部105と、変換後の出力データとファンクション部101-1から出力された未変換の出力データのいずれかをファンクション部101-2に選択的に出力する出力選択部106とを備えている。
【0023】
入力データの変換について具体的に説明する。例えばファンクション部101-1,101-2で扱うデータのクロック周波数が異なる場合、前段のファンクション部101-1のクロックに同期した入力データを、後段のファンクション部101-2のクロックに同期したデータとして出力するクロック載せ替えが必要になる。この場合、図2の変換部105の具体例として、ファンクション部101-1,101-2の速度の違いを吸収するFIFO(First In, First Out)バッファからなるクロック載せ替え部1050を設ける。また、図2の変換判定部104の具体例として、クロック周波数載せ替え判定部1040を設ける。
【0024】
ファンクション部101-1の出力データ幅とファンクション部101-2の入力データ幅とが同じで、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも高い場合、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0025】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0026】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0027】
また、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が大きい場合、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数より高い場合でも、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなる可能性がある。この場合は、必ずしもクロック周波数を載せ替えなくともよい。
【0028】
一方、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が大きい場合でも、ファンクション部101-1の出力データのクロック周波数が高く、ファンクション部101-2の入力データのクロック周波数との差が大きい場合には、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0029】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0030】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0031】
また、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数より低い場合でも、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が小さく、ファンクション部101-2の入力データのクロック周波数とファンクション部101-1の出力データのクロック周波数との差が十分でない場合には、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0032】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0033】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも十分低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0034】
以上のように、使用するファンクション部101-1,101-2が定まった時点で、ファンクション部101-1,101-2の入出力インタフェースの仕様が定まる。この入出力インタフェースの仕様に基づいてファンクション部101-1,101-2間を接続する入出力インタフェース変換部103を設ける。
【0035】
図1に示した従来のデータフロー制御装置100との違いは、本実施例のデータフロー制御装置100aが入出力インタフェース変換部103を備える点である。入出力インタフェース変換部103は、ファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。これにより、ファンクション部101-1,101-2の入出力インタフェースが異なる場合でも、ファンクション部101-1,101-2間を接続可能とする。
【0036】
従来のデータフロー制御装置100は、ファンクション部101-1,101-2間の接続にメモリ102を使用していた。一方、本実施例では、ファンクション部101-1,101-2間の入出力データを変換する入出力インタフェース変換部103を設けることにより、ファンクション部101-1,101-2の入出力インタフェースが異なる場合でも、メモリを介すことなくファンクション部101-1,101-2間を接続可能とする。
【0037】
本実施例では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本実施例では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本実施例では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本実施例では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【0038】
[第1の実施例の動作]
次に、図4を参照して、本実施例のデータフロー制御装置100aの動作について説明する。本実施例のデータフロー制御装置100aは、データフロー型のコンピューティングシステムにおいて、2つ以上のファンクション部の入出力インタフェースが異なる場合に、ファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく入出力データを変換する。
【0039】
まず、ファンクション部101-1は、演算処理などのデータ処理を行った後に、処理結果のデータを出力する。
【0040】
次に、入出力インタフェース変換部103は、入出力インタフェースが異なるファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。
【0041】
具体的には、入出力インタフェース変換部103のクロック周波数載せ替え判定部1040は、ファンクション部101-1,101-2の入出力インタフェース情報を取得する(図4ステップS100)。入出力インタフェース情報(通信プロトコル)としては、例えばデータフォーマット、データのクロック周波数、データの通信手順の情報などがある。
【0042】
クロック周波数載せ替え判定部1040は、入出力インタフェース情報をファンクション部101-1,101-2からそれぞれ取得可能な場合には、ファンクション部101-1,101-2から取得すればよい。また、クロック周波数載せ替え判定部1040は、ファンクション部101-1,101-2の入出力インタフェース情報が外部の管理装置(不図示)に登録されている場合には、管理装置から入出力インタフェース情報を取得すればよい。
【0043】
続いて、クロック周波数載せ替え判定部1040は、取得した入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図4ステップS101)。本実施例では、ファンクション部101-1,101-2で扱うデータのクロック周波数が異なる場合について説明する。
【0044】
クロック周波数載せ替え判定部1040は、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも高い場合(ステップS101においてYES)、ファンクション部101-1の出力データを変換すると判定する(図4ステップS102)。また、クロック周波数載せ替え判定部1040は、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数以下の場合(ステップS101においてNO)、ファンクション部101-1の出力データを変換しないと判定する(図4ステップS103)。
【0045】
FIFOバッファからなるクロック載せ替え部1050は、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換するクロック載せ替えを行う(図4ステップS104)。なお、クロック載せ替え部1050は、入出力インタフェース情報に基づいて様々なクロック周波数に対応するため、FIFOバッファへの入力クロック周波数をファンクション部101-1の出力データのクロック周波数に設定可能で、かつFIFOバッファからの出力クロック周波数をファンクション部101-2の入力データのクロック周波数に設定可能な可変クロック発振器を内部に備えることが望ましい。
【0046】
出力選択部106は、クロック周波数載せ替え判定部1040の判定結果に基づいて、クロック載せ替え部1050によってクロック周波数が変換された出力データと、ファンクション部101-1から出力された未変換の出力データのいずれかを選択的に出力する(図4ステップS105)。出力選択部106は、クロック周波数載せ替え判定部1040がファンクション部101-1の出力データを変換すると判定した場合、クロック載せ替え部1050によってクロック周波数が変換された出力データをファンクション部101-2に出力する。また、出力選択部106は、クロック周波数載せ替え判定部1040がファンクション部101-1の出力データを変換しないと判定した場合、ファンクション部101-1から出力された未変換の出力データをファンクション部101-2に出力する。
【0047】
ファンクション部101-2は、入出力インタフェース変換部103から入力されたデータに対して、演算処理などのデータ処理を行う。
【0048】
[第1の実施例の効果]
以上のように、本実施例の入出力インタフェース変換部103は、ファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。これにより、ファンクション部101-1,101-2の入出力インタフェースが異なる場合でも、ファンクション部101-1,101-2間を接続可能とする。
【0049】
本実施例では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本実施例では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本実施例では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本実施例では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【0050】
なお、本実施例では、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも高い場合のみ、ファンクション部101-1の出力データを変換すると判定しているが、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合についても、ファンクション部101-1の出力データを変換してもよいことは言うまでもない。
【0051】
[第2の実施例の構成]
次に、本発明の第2の実施例について説明する。図5は本実施例に係るデータフロー制御装置の構成を示すブロック図である。本実施例のデータフロー制御装置100bは、データフロー型のコンピューティングシステムにおいて、演算処理などのデータ処理を行う演算デバイスであるファンクション部101-1,101-2と、入出力インタフェースが異なるファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する入出力インタフェース変換部103bとを備えている。
【0052】
入出力インタフェース変換部103bは、ファンクション部101-1の出力データを変換するか否かを判定する変換判定部(図2の104)と、ファンクション部101-1の出力データをファンクション部101-2に入力できるように変換する変換部(図2の105)と、変換後の出力データとファンクション部101-1から出力された未変換の出力データのいずれかをファンクション部101-2に選択的に出力する出力選択部106bとを備えている。
【0053】
入力データの変換について具体的に説明する。ファンクション部101-1の出力データ幅とファンクション部101-2の入力データ幅が異なる場合、ファンクション部101-1の出力データ幅をファンクション部101-2の入力データ幅に調整する必要がある。この場合、図2の変換部105の具体例として、ファンクション部101-1の出力データ幅をファンクション部101-2の入力データ幅に適合するようにデータ幅を変換する例えばFIFOバッファからなるデータ幅変換部1051を設ける。また、図2の変換判定部104の具体例として、データ幅変換判定部1041を設ける。
【0054】
ファンクション部101-1の出力データのクロック周波数とファンクション部101-2の入力データのクロック周波数とが同じで、ファンクション部101-1の出力データ幅がファンクション部101-2の入力データ幅よりも大きい場合、ファンクション部101-1が1クロックサイクルで出力するデータを複数クロックサイクルに分割してファンクション部101-2へ入力するために、その速度差を吸収するFIFOバッファを設けることでデータ幅変換を行う。
【0055】
また、ファンクション部101-1の出力データのクロック周波数とファンクション部101-2の入力データのクロック周波数とが同じで、ファンクション部101-1の出力データ幅がファンクション部101-2の入力データ幅よりも小さい場合、ファンクション部101-1が複数クロックサイクルで出力するデータを1クロックサイクルに集約してファンクション部101-2へ入力するために、その速度差を吸収するFIFOバッファを設けることでデータ幅変換を行う。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0056】
以上のように、使用するファンクション部101-1,101-2が定まった時点で、ファンクション部101-1,101-2の入出力インタフェースの仕様が定まる。この入出力インタフェースの仕様に基づいてファンクション部101-1,101-2間を接続する入出力インタフェース変換部103bを設ける。
【0057】
[第2の実施例の動作]
次に、図6を参照して、本実施例のデータフロー制御装置100bの動作について説明する。本実施例のデータフロー制御装置100bは、データフロー型のコンピューティングシステムにおいて、2つ以上のファンクション部の入出力インタフェースが異なる場合に、ファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく入出力データを変換する。
【0058】
まず、ファンクション部101-1は、演算処理などのデータ処理を行った後に、処理結果のデータを出力する。
【0059】
次に、入出力インタフェース変換部103bは、入出力インタフェースが異なるファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。
【0060】
具体的には、入出力インタフェース変換部103bのデータ幅変換判定部1041は、ファンクション部101-1,101-2の入出力インタフェース情報を取得する(図6ステップS200)。第1の実施例と同様に、データ幅変換判定部1041は、ファンクション部101-1,101-2から入出力インタフェース情報を取得してもよいし、外部の管理装置から取得してもよい。
【0061】
続いて、データ幅変換判定部1041は、取得した入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図6ステップS201)。本実施例では、入出力インタフェース情報のデータフォーマットで規定されるデータ幅がファンクション部101-1とファンクション部101-2で異なる場合について説明する。
【0062】
データ幅変換判定部1041は、ファンクション部101-1の出力データ幅とファンクション部101-2の入力データ幅とが等しくない場合(ステップS201においてYES)、ファンクション部101-1の出力データを変換すると判定する(図6ステップS202)。また、データ幅変換判定部1041は、ファンクション部101-1の出力データ幅とファンクション部101-2の入力データ幅とが等しい場合(ステップS201においてNO)、ファンクション部101-1の出力データを変換しないと判定する(図6ステップS203)。
【0063】
FIFOバッファからなるデータ幅変換部1051は、ファンクション部101-1の出力データ幅をファンクション部101-2の入力データ幅に適合するようにデータ幅を変換する(図6ステップS204)。なお、データ幅変換部1051は、入出力インタフェース情報に基づいて様々なデータ幅に対応するため、FIFOバッファへの書き込み制御とFIFOバッファからの読み出し制御とを行うコントローラを内部に備えることが望ましい。
【0064】
出力選択部106bは、データ幅変換判定部1041の判定結果に基づいて、データ幅変換部1051によってデータ幅が変換された出力データと、ファンクション部101-1から出力された未変換の出力データのいずれかを選択的に出力する(図6ステップS205)。出力選択部106bは、データ幅変換判定部1041がファンクション部101-1の出力データを変換すると判定した場合、データ幅変換部1051によってデータ幅が変換された出力データをファンクション部101-2に出力する。また、出力選択部106bは、データ幅変換判定部1041がファンクション部101-1の出力データを変換しないと判定した場合、ファンクション部101-1から出力された未変換の出力データをファンクション部101-2に出力する。
【0065】
ファンクション部101-2は、入出力インタフェース変換部103bから入力されたデータに対して、演算処理などのデータ処理を行う。
【0066】
[第2の実施例の効果]
以上のように、本実施例の入出力インタフェース変換部103bは、ファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。これにより、ファンクション部101-1,101-2の入出力インタフェースが異なる場合でも、ファンクション部101-1,101-2間を接続可能とする。
【0067】
本実施例では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本実施例では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本実施例では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本実施例では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【0068】
[第3の実施例の構成]
次に、本発明の第3の実施例について説明する。図7は本実施例に係るデータフロー制御装置の構成を示すブロック図である。本実施例のデータフロー制御装置100cは、データフロー型のコンピューティングシステムにおいて、演算処理などのデータ処理を行う演算デバイスであるファンクション部101-1,101-2と、入出力インタフェースが異なるファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する入出力インタフェース変換部103cとを備えている。
【0069】
入出力インタフェース変換部103cは、ファンクション部101-1の出力データを変換するか否かを判定する変換判定部(図2の104)と、ファンクション部101-1の出力データをファンクション部101-2に入力できるように変換する変換部(図2の105)と、変換後の出力データとファンクション部101-1から出力された未変換の出力データのいずれかをファンクション部101-2に選択的に出力する出力選択部106cとを備えている。
【0070】
入力データの変換について具体的に説明する。ファンクション部101-1の出力データのフォーマットとファンクション部101-2の入力データのフォーマットが異なる場合、ファンクション部101-1の出力データのフォーマットをファンクション部101-2の入力データのフォーマットに適合するように調整する必要がある。この場合、図2の変換部105の具体例として、ファンクション部101-1の出力データをファンクション部101-2の入力データのフォーマットに適合するようにフォーマットを変換する入出力情報変換部1052を設ける。また、図2の変換判定部104の具体例として、入出力情報変換判定部1042を設ける。
【0071】
ファンクション部101-1の出力データのうち全ての情報をファンクション部101-2の入力データとしない場合、入出力情報変換部1052は、ファンクション部101-1の出力データのうち、ファンクション部101-2の入力データとして必要な箇所を抽出(パーサ)して、ファンクション部101-2の入力データのフォーマットに適合するように変換する。
【0072】
また、入出力情報変換部1052は、ファンクション部101-1の出力データの順番の入れ替え、例えばファンクション部101-1から出力された128ビット幅のデータのうち、上位64ビットと下位64ビットの入れ替えが必要な場合、データを入れ替えてファンクション部101-2の入力データのフォーマットに適合するように変換する。
【0073】
以上のように、使用するファンクション部101-1,101-2が定まった時点で、ファンクション部101-1,101-2の入出力インタフェースの仕様が定まる。この入出力インタフェースの仕様に基づいてファンクション部101-1,101-2間を接続する入出力インタフェース変換部103cを設ける。
【0074】
[第3の実施例の動作]
次に、図8を参照して、本実施例のデータフロー制御装置100cの動作について説明する。本実施例のデータフロー制御装置100cは、データフロー型のコンピューティングシステムにおいて、2つ以上のファンクション部の入出力インタフェースが異なる場合に、ファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく入出力データを変換する。
【0075】
まず、ファンクション部101-1は、演算処理などのデータ処理を行った後に、処理結果のデータを出力する。
【0076】
次に、入出力インタフェース変換部103cは、入出力インタフェースが異なるファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。
【0077】
具体的には、入出力インタフェース変換部103cの入出力情報変換判定部1042は、ファンクション部101-1,101-2の入出力インタフェース情報を取得する(図8ステップS300)。第1の実施例と同様に、入出力情報変換判定部1042は、ファンクション部101-1,101-2から入出力インタフェース情報を取得してもよいし、外部の管理装置から取得してもよい。
【0078】
続いて、入出力情報変換判定部1042は、取得した入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図8ステップS301)。本実施例では、ファンクション部101-1,101-2で扱うデータのフォーマットが異なる場合について説明する。
【0079】
入出力情報変換判定部1042は、ファンクション部101-1の出力データのフォーマットとファンクション部101-2の入力データのフォーマットとが等しくない場合(ステップS301においてYES)、ファンクション部101-1の出力データを変換すると判定する(図8ステップS302)。また、入出力情報変換判定部1042は、ファンクション部101-1の出力データのフォーマットとファンクション部101-2の入力データのフォーマットとが等しい場合(ステップS301においてNO)、ファンクション部101-1の出力データを変換しないと判定する(図8ステップS303)。
【0080】
入出力情報変換部1052は、ファンクション部101-1の出力データをファンクション部101-2の入力データのフォーマットに適合するようにフォーマットを変換する(図8ステップS304)。
【0081】
なお、データフォーマットの相違のうち、ファンクション部101-1の出力データ幅とファンクション部101-2の入力データ幅が異なる場合については第2の実施例で対応する。本実施例では、例えばファンクション部101-1の出力データの全てをファンクション部101-2の入力データとしない場合、あるいはファンクション部101-1の出力データとファンクション部101-1の入力データの順番が異なる場合に対応する。ただし、ファンクション部101-1の出力データ幅とファンクション部101-2の入力データ幅が異なる場合について、入出力情報変換部1052が対応できるようにしてもよい。
【0082】
また、入出力情報変換部1052は、例えばファンクション部101-1の出力データだけでは、ファンクション部101-2の入力データとして不足しているデータがある場合には、ファンクション部101-2の入力データのフォーマットで規定されたデフォルト値を設定すればよい。
【0083】
出力選択部106cは、入出力情報変換判定部1042の判定結果に基づいて、入出力情報変換部1052によってフォーマットが変換された出力データと、ファンクション部101-1から出力された未変換の出力データのいずれかを選択的に出力する(図8ステップS305)。出力選択部106cは、入出力情報変換判定部1042がファンクション部101-1の出力データを変換すると判定した場合、入出力情報変換部1052によってフォーマットが変換された出力データをファンクション部101-2に出力する。また、出力選択部106cは、入出力情報変換判定部1042がファンクション部101-1の出力データを変換しないと判定した場合、ファンクション部101-1から出力された未変換の出力データをファンクション部101-2に出力する。
【0084】
ファンクション部101-2は、入出力インタフェース変換部103cから入力されたデータに対して、演算処理などのデータ処理を行う。
【0085】
[第3の実施例の効果]
以上のように、本実施例の入出力インタフェース変換部103cは、ファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。これにより、ファンクション部101-1,101-2の入出力インタフェースが異なる場合でも、ファンクション部101-1,101-2間を接続可能とする。
【0086】
本実施例では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本実施例では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本実施例では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本実施例では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【0087】
[第4の実施例の構成]
次に、本発明の第4の実施例について説明する。図9は本実施例に係るデータフロー制御装置の基本構成を示すブロック図、図10は本実施例に係るデータフロー制御装置の具体例を示すブロック図である。
【0088】
本実施例のデータフロー制御装置100dは、データフロー型のコンピューティングシステムにおいて、演算処理などのデータ処理を行う演算デバイスであるファンクション部101-1,101-2と、入出力インタフェースが異なるファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する入出力インタフェース変換部103dとを備えている。
【0089】
入出力インタフェース変換部103dは、ファンクション部101-1の出力データを変換するか否かを判定する変換判定部104d-1,104d-2と、ファンクション部101-1の出力データをファンクション部101-2に入力できるように変換する変換部105d-1,105d-2と、変換後の出力データとファンクション部101-1から出力された未変換の出力データのいずれかをファンクション部101-2に選択的に出力する出力選択部106dとを備えている。
【0090】
第1~第3の実施例との違いは、図9図10に示すように、入出力インタフェース変換部103dが、ファンクション部101-1の出力データをファンクション部101-2へ入力できるように変換する機能を複数備えている点である。
【0091】
入力データの変換について具体的に説明する。ファンクション部101-1の出力データのフォーマットとファンクション部101-2の入力データのフォーマットが異なる場合、ファンクション部101-1の出力データのフォーマットをファンクション部101-2の入力データのフォーマットに適合するように調整する必要がある。この場合、図9の変換部105d-1の具体例として、ファンクション部101-1の出力データをファンクション部101-2の入力データのフォーマットに適合するようにフォーマットを変換する入出力情報変換部1052を設ける。また、図9の変換判定部104d-1の具体例として、入出力情報変換判定部1042を設ける。
【0092】
また、ファンクション部101-1,101-2で扱うデータのクロック周波数が異なる場合、ファンクション部101-1のクロックに同期した入力データを、ファンクション部101-2のクロックに同期したデータとして出力するクロック載せ替えが必要になる。この場合、図9の変換部105d-2の具体例として、ファンクション部101-1,101-2の速度の違いを吸収するFIFOバッファからなるクロック載せ替え部1050を設ける。また、図9の変換判定部104d-2の具体例として、クロック周波数載せ替え判定部1040を設ける。
【0093】
このように、第1~第3の実施例との違いは、ファンクション部101-1,101-2のデータフォーマットの相違を調整する機能と、ファンクション部101-1,101-2とのクロック周波数の差を吸収する機能の両方を備える点である。
【0094】
ファンクション部101-1の出力データのうち全ての情報をファンクション部101-2の入力データとしない場合、入出力情報変換部1052は、ファンクション部101-1の出力データのうち、ファンクション部101-2の入力データとして必要な箇所を抽出(パーサ)して、ファンクション部101-2の入力データのフォーマットに適合するように変換する。
【0095】
また、入出力情報変換部1052は、ファンクション部101-1の出力データの順番の入れ替え、例えばファンクション部101-1から出力された128ビット幅のデータのうち、上位64ビットと下位64ビットの入れ替えが必要な場合、データを入れ替えてファンクション部101-2の入力データのフォーマットに適合するように変換する。
【0096】
一方、ファンクション部101-1の出力データ幅とファンクション部101-2の入力データ幅とが同じで、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも高い場合、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0097】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0098】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0099】
また、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が大きい場合、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数より高い場合でも、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなる可能性がある。この場合は、必ずしもクロック周波数を載せ替えなくともよい。
【0100】
一方、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が大きい場合でも、ファンクション部101-1の出力データのクロック周波数が高く、ファンクション部101-2の入力データのクロック周波数との差が大きい場合には、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0101】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0102】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0103】
また、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数より低い場合でも、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が小さく、ファンクション部101-2の入力データのクロック周波数とファンクション部101-1の出力データのクロック周波数との差が十分でない場合には、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0104】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0105】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも十分低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0106】
以上のように、使用するファンクション部101-1,101-2が定まった時点で、ファンクション部101-1,101-2の入出力インタフェースの仕様が定まる。この入出力インタフェースの仕様に基づいてファンクション部101-1,101-2間を接続する入出力インタフェース変換部103dを設ける。
【0107】
[第4の実施例の動作]
次に、図11を参照して、本実施例のデータフロー制御装置100dの動作について説明する。本実施例のデータフロー制御装置100dは、データフロー型のコンピューティングシステムにおいて、2つ以上のファンクション部の入出力インタフェースが異なる場合に、ファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく入出力データを変換する。
【0108】
まず、ファンクション部101-1は、演算処理などのデータ処理を行った後に、処理結果のデータを出力する。
【0109】
次に、入出力インタフェース変換部103dは、入出力インタフェースが異なるファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。
【0110】
具体的には、入出力インタフェース変換部103dの入出力情報変換判定部1042とクロック周波数載せ替え判定部1040とは、ファンクション部101-1,101-2の入出力インタフェース情報を取得する(図11ステップS400)。第1の実施例と同様に、入出力情報変換判定部1042とクロック周波数載せ替え判定部1040とは、ファンクション部101-1,101-2から入出力インタフェース情報を取得してもよいし、外部の管理装置から取得してもよい。
【0111】
入出力情報変換判定部1042は、取得した入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図11ステップS401)。入出力情報変換判定部1042は、ファンクション部101-1の出力データのフォーマットとファンクション部101-2の入力データのフォーマットとが等しくない場合(ステップS401においてYES)、ファンクション部101-1の出力データを変換すると判定する(図11ステップS402)。また、入出力情報変換判定部1042は、ファンクション部101-1の出力データのフォーマットとファンクション部101-2の入力データのフォーマットとが等しい場合(ステップS401においてNO)、ファンクション部101-1の出力データを変換しないと判定する(図11ステップS403)。
【0112】
第3の実施例と同様に、入出力情報変換部1052は、ファンクション部101-1の出力データをファンクション部101-2の入力データのフォーマットに適合するようにフォーマットを変換する(図11ステップS404)。なお、入出力情報変換部1052は、ファンクション部101-1の出力データ幅をファンクション部101-2の入力データ幅に適合するようにデータ幅を変換してもよい。
【0113】
また、入出力情報変換部1052は、例えばファンクション部101-1の出力データだけでは、ファンクション部101-2の入力データとして不足しているデータがある場合には、ファンクション部101-2の入力データのフォーマットで規定されたデフォルト値を設定すればよい。
【0114】
次に、クロック周波数載せ替え判定部1040は、取得した入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図11ステップS405)。クロック周波数載せ替え判定部1040は、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも高い場合(ステップS405においてYES)、ファンクション部101-1の出力データを変換すると判定する(図11ステップS406)。また、クロック周波数載せ替え判定部1040は、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数以下の場合(ステップS405においてNO)、ファンクション部101-1の出力データを変換しないと判定する(図11ステップS407)。
【0115】
クロック載せ替え部1050は、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換するクロック載せ替えを行う(図11ステップS408)。
【0116】
出力選択部106dは、入出力情報変換判定部1042とクロック周波数載せ替え判定部1040の判定結果に基づいて、入出力情報変換部1052によってフォーマットのみが変換された出力データと、クロック載せ替え部1050によってクロック周波数のみが変換された出力データと、入出力情報変換部1052によってフォーマットが変換され、クロック載せ替え部1050によってクロック周波数が変換された出力データと、ファンクション部101-1から出力された未変換の出力データとのうちいずれかを選択的に出力する(図11ステップS409)。
【0117】
出力選択部106dは、入出力情報変換判定部1042がファンクション部101-1の出力データを変換すると判定し、クロック周波数載せ替え判定部1040がファンクション部101-1の出力データを変換しないと判定した場合、入出力情報変換部1052によってフォーマットが変換され、クロック周波数が未変換の出力データをファンクション部101-2に出力する。また、出力選択部106dは、入出力情報変換判定部1042がファンクション部101-1の出力データを変換しないと判定し、クロック周波数載せ替え判定部1040がファンクション部101-1の出力データを変換すると判定した場合、クロック載せ替え部1050によってクロック周波数が変換され、フォーマットが未変換の出力データをファンクション部101-2に出力する。
【0118】
また、出力選択部106dは、入出力情報変換判定部1042とクロック周波数載せ替え判定部1040の両方がファンクション部101-1の出力データを変換すると判定した場合、入出力情報変換部1052によってフォーマットが変換され、クロック載せ替え部1050によってクロック周波数が変換された出力データをファンクション部101-2に出力する。また、出力選択部106dは、入出力情報変換判定部1042とクロック周波数載せ替え判定部1040の両方がファンクション部101-1の出力データを変換しないと判定した場合、ファンクション部101-1から出力された未変換の出力データをファンクション部101-2に出力する。
【0119】
ファンクション部101-2は、入出力インタフェース変換部103dから入力されたデータに対して、演算処理などのデータ処理を行う。
【0120】
[第4の実施例の効果]
以上のように、本実施例の入出力インタフェース変換部103dは、ファンクション部101-1,101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-2間の入出力データを変換する。これにより、ファンクション部101-1,101-2の入出力インタフェースが異なる場合でも、ファンクション部101-1,101-2間を接続可能とする。
【0121】
本実施例では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本実施例では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本実施例では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本実施例では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【0122】
[第5の実施例の構成]
次に、本発明の第5の実施例について説明する。図12は本実施例に係るデータフロー制御装置の基本構成を示すブロック図、図13図16は本実施例に係るデータフロー制御装置の具体例を示すブロック図である。
【0123】
本実施例のデータフロー制御装置100eは、データフロー型のコンピューティングシステムにおいて、演算処理などのデータ処理を行う3つ以上の演算デバイスであるファンクション部101-1~101-3と、入出力インタフェースが異なるファンクション部101-1,101-3とファンクション部101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-3とファンクション部101-2間の入出力データを変換する入出力インタフェース変換部103eとを備えている。
【0124】
入出力インタフェース変換部103eは、ファンクション部101-1,101-3の出力データを変換するか否かを判定する変換判定部104e-1,104e-2と、ファンクション部101-1,101-3の出力データをファンクション部101-2に入力できるように変換する変換部105e-1,105e-2と、変換後の出力データとファンクション部101-1,101-3から出力された未変換の出力データのいずれかをファンクション部101-2に選択的に出力する出力選択部106eとを備えている。
変換判定部104e-1,104e-2と変換部105e-1,105e-2とは、前段のファンクション部101-1,101-3毎に設けられる。
【0125】
第1~第4の実施例との違いは、図12図16に示すように、入出力インタフェース変換部103eが、2つ以上のファンクション部101-1,101-3の出力データをそれぞれ独立にファンクション部101-2の入力データとして調整する機能を備えている点である。
【0126】
例えばファンクション部101-1,101-3とファンクション部101-2で扱うデータのクロック周波数が異なる場合、ファンクション部101-1,101-3のクロックに同期した入力データを、ファンクション部101-2のクロックに同期したデータとして出力するクロック載せ替えが必要になる。この場合、図13に示すように、図12の変換部105e-1,105e-2の具体例として、ファンクション部101-1,101-3とファンクション部101-2の速度の違いを吸収するFIFOバッファからなるクロック載せ替え部1050-1,1050-2を設ける。また、図12の変換判定部104e-1,104e-2の具体例として、クロック周波数載せ替え判定部1040-1,1040-2を設ける。
【0127】
ファンクション部101-1,101-3の出力データ幅とファンクション部101-2の入力データ幅とが同じで、ファンクション部101-1,101-3の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも高い場合、ファンクション部101-1,101-3のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0128】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1,101-3の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1~101-3の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0129】
なお、ファンクション部101-1,101-3の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合には、ファンクション部101-1,101-3から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0130】
また、ファンクション部101-1,101-3の出力データ幅よりもファンクション部101-2の入力データ幅が大きい場合、ファンクション部101-1,101-3の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数より高い場合でも、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなる可能性がある。この場合は、必ずしもクロック周波数を載せ替えなくともよい。
【0131】
一方、ファンクション部101-1,101-3の出力データ幅よりもファンクション部101-2の入力データ幅が大きい場合でも、ファンクション部101-1,101-3の出力データのクロック周波数が高く、ファンクション部101-2の入力データのクロック周波数との差が大きい場合には、ファンクション部101-1,101-3のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0132】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1,101-3の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1~101-3の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0133】
なお、ファンクション部101-1,101-3の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0134】
また、ファンクション部101-1,101-3の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数より低い場合でも、ファンクション部101-1,101-3の出力データ幅よりもファンクション部101-2の入力データ幅が小さく、ファンクション部101-2の入力データのクロック周波数とファンクション部101-1,101-3の出力データのクロック周波数との差が十分でない場合には、ファンクション部101-1,101-3のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0135】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1,101-3の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1~101-3の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0136】
なお、ファンクション部101-1,101-3の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも十分低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0137】
また、ファンクション部101-1,101-3の出力データ幅とファンクション部101-2の入力データ幅が異なる場合、ファンクション部101-1,101-3の出力データ幅をファンクション部101-2の入力データ幅に調整する必要がある。この場合、図14に示すように、図12の変換部105e-1,105e-2の具体例として、ファンクション部101-1,101-3の出力データ幅をファンクション部101-2の入力データ幅に適合するようにデータ幅を変換する例えばFIFOバッファからなるデータ幅変換部1051-1,1051-2を設ける。また、図12の変換判定部104e-1,104e-2の具体例として、データ幅変換判定部1041-1,1041-2を設ける。
【0138】
ファンクション部101-1,101-3の出力データのクロック周波数とファンクション部101-2の入力データのクロック周波数とが同じで、ファンクション部101-1,101-3の出力データ幅がファンクション部101-2の入力データ幅よりも大きい場合、ファンクション部101-1,101-3が1クロックサイクルで出力するデータを複数クロックサイクルに分割してファンクション部101-2へ入力するために、その速度差を吸収するFIFOバッファを設けることでデータ幅変換を行う。
【0139】
また、ファンクション部101-1,101-3の出力データのクロック周波数とファンクション部101-2の入力データのクロック周波数とが同じで、ファンクション部101-1,101-3の出力データ幅がファンクション部101-2の入力データ幅よりも小さい場合、ファンクション部101-1,101-3が複数クロックサイクルで出力するデータを1クロックサイクルに集約してファンクション部101-2へ入力するために、その速度差を吸収するFIFOバッファを設けることでデータ幅変換を行う。FIFOバッファの深さは、ファンクション部101-1~101-3の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0140】
また、ファンクション部101-1,101-3の出力データのフォーマットとファンクション部101-2の入力データのフォーマットが異なる場合、ファンクション部101-1,101-3の出力データのフォーマットをファンクション部101-2の入力データのフォーマットに適合するように調整する必要がある。この場合、図15に示すように、図12の変換部105e-1,105e-2の具体例として、ファンクション部101-1,101-3の出力データをファンクション部101-2の入力データのフォーマットに適合するようにフォーマットを変換する入出力情報変換部1052-1,1052-2を設ける。また、図12の変換判定部104e-1,104e-2の具体例として、入出力情報変換判定部1042-1,1042-2を設ける。
【0141】
ファンクション部101-1,101-3の出力データのうち全ての情報をファンクション部101-2の入力データとしない場合、入出力情報変換部1052-1,1052-2は、ファンクション部101-1,101-3の出力データのうち、ファンクション部101-2の入力データとして必要な箇所を抽出(パーサ)して、ファンクション部101-2の入力データのフォーマットに適合するように変換する。
【0142】
また、入出力情報変換部1052-1,1052-2は、ファンクション部101-1,101-3の出力データの順番の入れ替え、例えばファンクション部101-1,101-3から出力された128ビット幅のデータのうち、上位64ビットと下位64ビットの入れ替えが必要な場合、データを入れ替えてファンクション部101-2の入力データのフォーマットに適合するように変換する。
【0143】
また、ファンクション部101-1,101-2で扱うデータのクロック周波数が異なる場合、ファンクション部101-1のクロックに同期した入力データを、ファンクション部101-2のクロックに同期したデータとして出力するクロック載せ替えが必要になる。この場合、図16に示すように、図12の変換部105e-1の具体例として、ファンクション部101-1,101-2の速度の違いを吸収するFIFOバッファからなるクロック載せ替え部1050を設ける。また、図12の変換判定部104e-1の具体例として、クロック周波数載せ替え判定部1040を設ける。
【0144】
さらに、ファンクション部101-3の出力データのフォーマットとファンクション部101-2の入力データのフォーマットが異なる場合、ファンクション部101-3の出力データのフォーマットをファンクション部101-2の入力データのフォーマットに適合するように調整する必要がある。この場合、図16に示すように、図12の変換部105e-2の具体例として、ファンクション部101-3の出力データをファンクション部101-2の入力データのフォーマットに適合するようにフォーマットを変換する入出力情報変換部1052を設ける。また、図12の変換判定部104e-2の具体例として、入出力情報変換判定部1042を設ける。
【0145】
ファンクション部101-3の出力データのうち全ての情報をファンクション部101-2の入力データとしない場合、入出力情報変換部1052は、ファンクション部101-3の出力データのうち、ファンクション部101-2の入力データとして必要な箇所を抽出(パーサ)して、ファンクション部101-2の入力データのフォーマットに適合するように変換する。
【0146】
また、入出力情報変換部1052は、ファンクション部101-3の出力データの順番の入れ替え、例えばファンクション部101-3から出力された128ビット幅のデータのうち、上位64ビットと下位64ビットの入れ替えが必要な場合、データを入れ替えてファンクション部101-2の入力データのフォーマットに適合するように変換する。
【0147】
また、ファンクション部101-1の出力データ幅とファンクション部101-2の入力データ幅とが同じで、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも高い場合、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0148】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0149】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0150】
また、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が大きい場合、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数より高い場合でも、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなる可能性がある。この場合は、必ずしもクロック周波数を載せ替えなくともよい。
【0151】
一方、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が大きい場合でも、ファンクション部101-1の出力データのクロック周波数が高く、ファンクション部101-2の入力データのクロック周波数との差が大きい場合には、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0152】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0153】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0154】
また、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数より低い場合でも、ファンクション部101-1の出力データ幅よりもファンクション部101-2の入力データ幅が小さく、ファンクション部101-2の入力データのクロック周波数とファンクション部101-1の出力データのクロック周波数との差が十分でない場合には、ファンクション部101-1のデータの出力速度がファンクション部101-2で規定されている入力データの速度よりも速くなる場合がある。このため、ファンクション部101-2へ入力する前段でデータがオーバフローする可能性がある。
【0155】
データのオーバフローを抑制するために、例えば所定の深さを持つFIFOバッファを用いて、FIFOバッファへの入力クロック周波数とFIFOバッファからの出力クロック周波数とを変更することで、ファンクション部101-1の出力データのクロック周波数からファンクション部101-2の入力データのクロック周波数に変換する。FIFOバッファの深さは、ファンクション部101-1,101-2の入出力条件に基づいて、データのオーバフローが発生しないように調整する。
【0156】
なお、ファンクション部101-1の出力データのクロック周波数がファンクション部101-2の入力データのクロック周波数よりも十分低い場合には、ファンクション部101-1から出力されるデータの速度がファンクション部101-2で規定されている入力データの速度よりも遅くなるため、必ずしもクロック周波数を載せ替えなくともよい。
【0157】
また、本実施例のように、複数のファンクション部101-1,101-3の出力データを1つのファンクション部101-2の入力データとする際に、入力タイミングを揃える必要がある場合がある。このようにタイミングを揃える必要がある場合には、入出力インタフェース変換部103eに、複数のファンクション部101-1,101-3の出力データを変換する機能に加えて、タイミングを揃える機能を持たせることもある。具体的には、出力選択部106eに出力バッファを設け、出力選択部106eからの出力タイミングを揃えるようにすればよい。
【0158】
以上のように、使用するファンクション部101-1~101-3が定まった時点で、ファンクション部101-1~101-3の入出力インタフェースの仕様が定まる。この入出力インタフェースの仕様に基づいてファンクション部101-1~101-3間を接続する入出力インタフェース変換部103eを設ける。
【0159】
[第5の実施例の動作]
次に、図17を参照して、本実施例のデータフロー制御装置100eの動作について説明する。本実施例のデータフロー制御装置100eは、データフロー型のコンピューティングシステムにおいて、3つ以上のファンクション部の入出力インタフェースが異なる場合に、ファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく入出力データを変換する。
なお、以下の説明では、図13図16の代表例として、図12の基本構成で動作を説明する。
【0160】
まず、ファンクション部101-1,101-3は、演算処理などのデータ処理を行った後に、処理結果のデータを出力する。
【0161】
次に、入出力インタフェース変換部103eは、入出力インタフェースが異なるファンクション部101-1,101-3とファンクション部101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-3とファンクション部101-2間の入出力データを変換する。
【0162】
具体的には、入出力インタフェース変換部103eの変換判定部104e-1,104e-2は、ファンクション部101-1~101-3の入出力インタフェース情報を取得する(図17ステップS500)。第1の実施例と同様に、変換判定部104e-1,104e-2は、ファンクション部101-1~101-3から入出力インタフェース情報を取得してもよいし、外部の管理装置から取得してもよい。
【0163】
変換判定部104e-1は、取得した入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図17ステップS501)。変換判定部104e-1は、ファンクション部101-1とファンクション部101-2の入出力インタフェースが異なる場合(ステップS501においてYES)、ファンクション部101-1の出力データを変換すると判定する(図17ステップS502)。また、変換判定部104e-1は、ファンクション部101-1とファンクション部101-2の入出力インタフェースが等しい場合(ステップS501においてNO)、ファンクション部101-1の出力データを変換しないと判定する(図17ステップS503)。
【0164】
変換判定部104e-1の具体的な動作は、第1~第4の実施例で説明したクロック周波数載せ替え判定部1040、データ幅変換判定部1041、入出力情報変換判定部1042のいずれかの動作となる。クロック周波数載せ替え判定部1040について説明したとおり、ファンクション部101-1の出力データのクロック周波数とファンクション部101-2の入力データのクロック周波数が異なっている場合でも、ファンクション部101-1の出力データを変換しないと判定する場合も有り得る。
【0165】
変換部105e-1は、ファンクション部101-1の出力データをファンクション部101-2に入力できるように変換する(図17ステップS504)。変換部105e-1の具体的な動作は、第1~第4の実施例で説明したクロック載せ替え部1050、データ幅変換部1051、入出力情報変換部1052のいずれかの動作となる。
【0166】
一方、変換判定部104e-2は、取得した入出力インタフェース情報に基づいて、ファンクション部101-3の出力データを変換するか否かを判定する(図17ステップS505)。変換判定部104e-2は、ファンクション部101-3とファンクション部101-2の入出力インタフェースが異なる場合(ステップS505においてYES)、ファンクション部101-3の出力データを変換すると判定する(図17ステップS506)。また、変換判定部104e-2は、ファンクション部101-3とファンクション部101-2の入出力インタフェースが等しい場合(ステップS505においてNO)、ファンクション部101-3の出力データを変換しないと判定する(図17ステップS507)。
【0167】
変換判定部104e-2の具体的な動作は、第1~第4の実施例で説明したクロック周波数載せ替え判定部1040、データ幅変換判定部1041、入出力情報変換判定部1042のいずれかの動作となる。クロック周波数載せ替え判定部1040について説明したとおり、ファンクション部101-3の出力データのクロック周波数とファンクション部101-2の入力データのクロック周波数が異なっている場合でも、ファンクション部101-3の出力データを変換しないと判定する場合も有り得る。
【0168】
変換部105e-2は、ファンクション部101-3の出力データをファンクション部101-2に入力できるように変換する(図17ステップS508)。変換部105e-2の具体的な動作は、第1~第4の実施例で説明したクロック載せ替え部1050、データ幅変換部1051、入出力情報変換部1052のいずれかの動作となる。
【0169】
次に、出力選択部106eは、前段のファンクション部101-1,101-3の全てについて変換判定が終了したかどうかを判定し(図17ステップS509)、終了していない場合には変換判定が終了するまで待機する。
【0170】
出力選択部106eは、前段のファンクション部101-1,101-3の全てについて変換判定が終了した場合、変換判定部104e-1,104e-2の判定結果に基づいて、ファンクション部101-1,101-3から出力され変換部105e-1,105e-2によって変換された出力データと、ファンクション部101-1,101-3から出力された未変換の出力データとのうちいずれかを選択的に出力する(図17ステップS510)。
【0171】
出力選択部106eは、変換判定部104e-1,104e-2がファンクション部101-1,101-3の出力データを変換すると判定した場合、変換部105e-1,105e-2によって変換された出力データをファンクション部101-2に出力する。また、出力選択部106eは、変換判定部104e-1がファンクション部101-1の出力データを変換すると判定し、変換判定部104e-2がファンクション部101-3の出力データを変換しないと判定した場合、変換部105e-1によって変換された出力データとファンクション部101-3から出力された未変換の出力データとをファンクション部101-2に出力する。
【0172】
また、出力選択部106eは、変換判定部104e-1がファンクション部101-1の出力データを変換しないと判定し、変換判定部104e-2がファンクション部101-3の出力データを変換すると判定した場合、ファンクション部101-1から出力された未変換の出力データと変換部105e-2によって変換された出力データとをファンクション部101-2に出力する。また、出力選択部106eは、変換判定部104e-1,104e-2がファンクション部101-1,101-3の出力データを変換しないと判定した場合、ファンクション部101-1,101-3から出力された未変換の出力データをファンクション部101-2に出力する。
【0173】
ファンクション部101-2は、入出力インタフェース変換部103eから入力されたデータに対して、演算処理などのデータ処理を行う。
【0174】
なお、上記では、前段の全てのファンクション部101-1,101-3について出力データの変換判定および変換を実施する例を示したが、必ずしも前段の全てのファンクション部101-1,101-3について出力データの変換判定および変換を行わなくともよい。例えば、出力データの変換判定および変換が不要な前段のファンクション部が外部からの設定により既知である場合、このファンクション部についての出力データの変換判定および変換を行わなくともよい。
【0175】
[第5の実施例の効果]
以上のように、本実施例の入出力インタフェース変換部103eは、ファンクション部101-1,101-3とファンクション部101-2間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1,101-3とファンクション部101-2間の入出力データを変換する。これにより、ファンクション部101-1,101-3とファンクション部101-2の入出力インタフェースが異なる場合でも、ファンクション部101-1,101-3とファンクション部101-2間を接続可能とする。
【0176】
本実施例では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本実施例では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本実施例では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本実施例では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【0177】
なお、前段のファンクション部が2つの場合について説明したが、前段のファンクション部が3つ以上の場合についても容易に本実施例を適用できることは言うまでもない。
【0178】
[第6の実施例の構成]
次に、本発明の第6の実施例について説明する。図18は本実施例に係るデータフロー制御装置の構成を示すブロック図である。本実施例のデータフロー制御装置100fは、データフロー型のコンピューティングシステムにおいて、演算処理などのデータ処理を行う演算デバイスであるファンクション部101-1,101-2,101-4と、入出力インタフェースが異なるファンクション部101-1とファンクション部101-2,101-4間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1とファンクション部101-2,101-4間の入出力データを変換する入出力インタフェース変換部103fとを備えている。
【0179】
入出力インタフェース変換部103fは、ファンクション部101-1の出力データを変換するか否かを判定する変換判定部104f-1,104f-2と、ファンクション部101-1の出力データをファンクション部101-2,101-4に入力できるように変換する変換部105f-1,105f-2と、変換後の出力データとファンクション部101-1から出力された未変換の出力データのいずれかをファンクション部101-2,101-4に選択的に出力する出力選択部106f-1,106f-2とを備えている。
【0180】
変換判定部104f-1,104f-2と変換部105f-1,105f-2と出力選択部106f-1,106f-2とは、後段のファンクション部101-2,101-4毎に設けられる。
【0181】
第1~第5の実施例との違いは、図18に示すように、入出力インタフェース変換部103fが、ファンクション部101-1の出力を2つ以上のファンクション部101-2,101-4の各々への入力として独立に入出力インタフェース変換を実施する機能を備える点である。
【0182】
[第6の実施例の動作]
次に、図19を参照して、本実施例のデータフロー制御装置100fの動作について説明する。本実施例のデータフロー制御装置100fは、データフロー型のコンピューティングシステムにおいて、3つ以上のファンクション部の入出力インタフェースが異なる場合に、ファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく入出力データを変換する。
【0183】
まず、ファンクション部101-1は、演算処理などのデータ処理を行った後に、処理結果のデータを出力する。
【0184】
次に、入出力インタフェース変換部103fは、入出力インタフェースが異なるファンクション部101-1とファンクション部101-2,101-4間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1とファンクション部101-2,101-4間の入出力データを変換する。
【0185】
具体的には、入出力インタフェース変換部103fの変換判定部104f-1,104f-2は、ファンクション部101-1,101-2,101-4の入出力インタフェース情報を取得する(図19ステップS600)。第1の実施例と同様に、変換判定部104f-1,104f-2は、ファンクション部101-1,101-2,101-4から入出力インタフェース情報を取得してもよいし、外部の管理装置から取得してもよい。
【0186】
変換判定部104f-1は、取得した入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図19ステップS601)。変換判定部104f-1は、ファンクション部101-1とファンクション部101-2の入出力インタフェースが異なる場合(ステップS601においてYES)、ファンクション部101-1の出力データを変換すると判定する(図19ステップS602)。また、変換判定部104f-1は、ファンクション部101-1とファンクション部101-2の入出力インタフェースが等しい場合(ステップS601においてNO)、ファンクション部101-1の出力データを変換しないと判定する(図19ステップS603)。
【0187】
変換判定部104f-1の具体的な動作は、第1~第4の実施例で説明したクロック周波数載せ替え判定部1040、データ幅変換判定部1041、入出力情報変換判定部1042のいずれかの動作となる。クロック周波数載せ替え判定部1040について説明したとおり、ファンクション部101-1の出力データのクロック周波数とファンクション部101-2の入力データのクロック周波数が異なっている場合でも、ファンクション部101-1の出力データを変換しないと判定する場合も有り得る。
【0188】
変換部105f-1は、ファンクション部101-1の出力データをファンクション部101-2に入力できるように変換する(図19ステップS604)。変換部105f-1の具体的な動作は、第1~第4の実施例で説明したクロック載せ替え部1050、データ幅変換部1051、入出力情報変換部1052のいずれかの動作となる。
【0189】
一方、変換判定部104f-2は、取得した入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図19ステップS605)。変換判定部104f-2は、ファンクション部101-1とファンクション部101-4の入出力インタフェースが異なる場合(ステップS605においてYES)、ファンクション部101-1の出力データを変換すると判定する(図19ステップS606)。また、変換判定部104f-2は、ファンクション部101-1とファンクション部101-4の入出力インタフェースが等しい場合(ステップS605においてNO)、ファンクション部101-1の出力データを変換しないと判定する(図19ステップS607)。
【0190】
変換判定部104f-2の具体的な動作は、第1~第4の実施例で説明したクロック周波数載せ替え判定部1040、データ幅変換判定部1041、入出力情報変換判定部1042のいずれかの動作となる。クロック周波数載せ替え判定部1040について説明したとおり、ファンクション部101-1の出力データのクロック周波数とファンクション部101-4の入力データのクロック周波数が異なっている場合でも、ファンクション部101-1の出力データを変換しないと判定する場合も有り得る。
【0191】
変換部105f-2は、ファンクション部101-1の出力データをファンクション部101-4に入力できるように変換する(図19ステップS608)。変換部105f-2の具体的な動作は、第1~第4の実施例で説明したクロック載せ替え部1050、データ幅変換部1051、入出力情報変換部1052のいずれかの動作となる。
【0192】
次に、出力選択部106f-1,106f-2は、後段のファンクション部101-2,101-4の全てについて変換判定が終了したかどうかを判定し(図19ステップS609)、終了していない場合には変換判定が終了するまで待機する。
【0193】
出力選択部106f-1,106f-2は、後段のファンクション部101-2,101-4の全てについて変換判定が終了した場合、変換判定部104f-1,104f-2の判定結果に基づいて、ファンクション部101-1から出力され変換部105f-1,105f-2によって変換された出力データと、ファンクション部101-1から出力された未変換の出力データとのうちいずれかを選択的に出力する(図19ステップS610)。
【0194】
出力選択部106f-1は、変換判定部104f-1がファンクション部101-1の出力データを変換すると判定した場合、変換部105f-1によって変換された出力データをファンクション部101-2に出力する。出力選択部106f-2は、変換判定部104f-2がファンクション部101-1の出力データを変換すると判定した場合、変換部105f-2によって変換された出力データをファンクション部101-4に出力する。
【0195】
また、出力選択部106f-1は、変換判定部104f-1がファンクション部101-1の出力データを変換しないと判定した場合、ファンクション部101-1から出力された未変換の出力データをファンクション部101-2に出力する。出力選択部106f-2は、変換判定部104f-2がファンクション部101-1の出力データを変換しないと判定した場合、ファンクション部101-1から出力された未変換の出力データをファンクション部101-4に出力する。
【0196】
ファンクション部101-2,101-4は、入出力インタフェース変換部103fから入力されたデータに対して、演算処理などのデータ処理を行う。
【0197】
なお、上記では、後段の全てのファンクション部101-2,101-4についてデータの変換判定および変換を実施する例を示したが、必ずしも後段の全てのファンクション部101-2,101-4についてデータの変換判定および変換を行わなくともよい。例えば、データの変換判定および変換が不要な後段のファンクション部が外部からの設定により既知である場合、このファンクション部についてのデータの変換判定および変換を行わなくともよい。
【0198】
[第6の実施例の効果]
以上のように、本実施例の入出力インタフェース変換部103fは、ファンクション部101-1とファンクション部101-2,101-4間をインタフェースの不整合なくデータの授受が可能な接続とすべく、ファンクション部101-1とファンクション部101-2,101-4間の入出力データを変換する。これにより、ファンクション部101-1とファンクション部101-2,101-4の入出力インタフェースが異なる場合でも、ファンクション部101-1とファンクション部101-2,101-4間を接続可能とする。
【0199】
本実施例では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本実施例では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本実施例では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本実施例では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【0200】
なお、後段のファンクション部が2つの場合について説明したが、後段のファンクション部が3つ以上の場合についても容易に本実施例を適用できることは言うまでもない。
【0201】
[第7の実施例の構成]
次に、本発明の第7の実施例について説明する。図20は本実施例に係るデータフロー制御装置の構成を示すブロック図である。本実施例のデータフロー制御装置100gは、データフロー型のコンピューティングシステムにおいて、演算処理などのデータ処理を行う演算デバイスであるファンクション部101-1~101-7と、ファンクション部101-1とファンクション部101-2間の入出力データを変換する入出力インタフェース変換部103g-1と、ファンクション部101-3とファンクション部101-4間の入出力データを変換する入出力インタフェース変換部103g-2と、ファンクション部101-2,101-4とファンクション部101-5,101-6間の入出力データを変換する入出力インタフェース変換部103g-3と、ファンクション部101-5,101-6とファンクション部101-7間の入出力データを変換する入出力インタフェース変換部103g-4とを備えている。
【0202】
第1~第6の実施例との違いは、図20に示すように、複数のファンクション部101-1~101-7を接続してファンクションチェーンを作成する際に、前段のファンクション部と後段のファンクション部の入出力インタフェースが適合するように、入出力インタフェース変換部103g-1~103g-4をファンクション部間に自動的に配置する点である。入出力インタフェース変換部103g-1~103g-4の具体的な構成は、第1~第6の実施例で説明した入出力インタフェース変換部103,103b~103fと同様なので、詳しい説明は割愛する。
【0203】
入出力インタフェース変換部103g-1~103g-4の配置は、配置部107が行う。図21は配置部107の動作を説明するフローチャートである。
まず、コンピュータシステムの設計者は、所望の処理(サービスやアプリケーション)の実現に必要なファンクション部101-1~101-7を多段に接続した構成を定める。
【0204】
配置部107は、コンピュータシステムの設計者が作成した、ファンクション部101-1~101-7間の接続関係を示すシステム構成情報を取得する(図21ステップS700)。そして、配置部107は、設計者がインタフェース変換を明示的に指定しなくても、異なる入出力インタフェースを有するファンクション部間を接続できるように、各ファンクション部間に入出力インタフェース変換部103g-1~103g-4を配置する(図21ステップS701)。
【0205】
図20の例では、ファンクション部101-1,101-2間に入出力インタフェース変換部103g-1を配置し、ファンクション部101-3,101-4間に入出力インタフェース変換部103g-2を配置し、ファンクション部101-2,101-4とファンクション部101-5,101-6間に入出力インタフェース変換部103g-3を配置し、ファンクション部101-5,101-6とファンクション部101-7間に入出力インタフェース変換部103g-4を配置している。
【0206】
図20では図示していないが、各ファンクション部間は例えば通信ネットワークを介して接続されており、これらネットワーク上に入出力インタフェース変換部103g-1~103g-4を配置することが可能である。
【0207】
[第7の実施例の動作]
次に、図22を参照して、入出力インタフェース変換部103g-1~103g-4の配置後の本実施例のデータフロー制御装置100gの動作について説明する。本実施例のデータフロー制御装置100gは、データフロー型のコンピューティングシステムにおいて、2つ以上のファンクション部の入出力インタフェースが異なる場合に、ファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく入出力データを変換する。
【0208】
入出力インタフェース変換部103g-1の変換判定部は、ファンクション部101-1~101-7の入出力インタフェース情報を取得する(図22ステップS800)。
【0209】
入出力インタフェース変換部103g-1の変換判定部は、ファンクション部101-1,101-2の入出力インタフェース情報に基づいて、ファンクション部101-1の出力データを変換するか否かを判定する(図22ステップS801)。この変換判定部の具体的な動作は、第1~第4の実施例で説明したクロック周波数載せ替え判定部1040、データ幅変換判定部1041、入出力情報変換判定部1042のいずれかの動作となる。
【0210】
入出力インタフェース変換部103g-1の変換部は、ファンクション部101-1の出力データをファンクション部101-2に入力できるように変換する(図22ステップS804)。この変換部の具体的な動作は、第1~第4の実施例で説明したクロック載せ替え部1050、データ幅変換部1051、入出力情報変換部1052のいずれかの動作となる。
【0211】
なお、第1~第6の実施例では具体的に説明していないが、例えば各ファンクション部101-1~101-7に割り当てられている固有のIDを取得することにより、入出力インタフェース変換部103g-1は、前段のファンクション部101-1と後段のファンクション部101-2とを特定することが可能である。
【0212】
入出力インタフェース変換部103g-1の出力選択部は、入出力インタフェース変換部103g-1の変換判定部の判定結果に基づいて、ファンクション部101-1から出力され入出力インタフェース変換部103g-1の変換部によって変換された出力データと、ファンクション部101-1から出力された未変換の出力データとのうちいずれかを選択的に出力する。
【0213】
入出力インタフェース変換部103g-2は、前段のファンクション部101-3と後段のファンクション部101-4とについて入出力インタフェース変換部103g-1と同様の処理を実施すればよい。
【0214】
入出力インタフェース変換部103g-3は、前段のファンクション部101-2,101-4と後段のファンクション部101-5,101-6とについて処理を実施すればよい。この処理は、第5の実施例の入出力インタフェース変換部103eと第6の実施例の入出力インタフェース変換部103fとを組み合わせた処理となる。
【0215】
入出力インタフェース変換部103g-4は、前段のファンクション部101-5,101-6と後段のファンクション部101-7について処理を実施すればよい。この処理は、第5の実施例の入出力インタフェース変換部103eと同様の処理となる。
【0216】
なお、上記では、全てのファンクション部間に入出力インタフェース変換部103g-1~103g-4を配置したが、配置部107は、例えばデータの変換判定および変換が不要なファンクション部間が外部からの設定により既知である場合、このファンクション部間に入出力インタフェース変換部を配置しなくてもよい。
【0217】
[第7の実施例の効果]
以上のように、本実施例の入出力インタフェース変換部103g-1~103g-4は、前段のファンクション部と後段のファンクション部間をインタフェースの不整合なくデータの授受が可能な接続とすべく、前段のファンクション部と後段のファンクション部間の入出力データを変換する。これにより、前段のファンクション部と後段のファンクション部の入出力インタフェースが異なる場合でも、前段のファンクション部と後段のファンクション部間を接続可能とする。
【0218】
本実施例では、任意の入出力インタフェースのファンクション部を設計して使用することができ、既存のファンクション部を再利用することもできる。また、本実施例では、入出力インタフェースが異なるファンクション部同士をそれぞれの入出力インタフェースを変更することなく接続可能なため、ファンクション部の再利用が可能である。また、本実施例では、入出力インタフェースの変更に伴うファンクション部の検証が不要となるため、検証コストを低減できる。さらに、本実施例では、メモリを介さずにファンクション部同士を接続できるため、メモリのデータ幅とデータの書き込み速度と読み出し速度とによって処理速度が制約されることがなくなり、低遅延化、高スループット化が可能となる。
【0219】
[実施例の拡張]
以上、実施例を参照して本発明を説明したが、本発明は上記実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施例については、矛盾しない範囲で任意に組み合わせて実施することができる。
【0220】
第1~第7の実施例で説明したファンクション部101-1~101-7と入出力インタフェース変換部103,103b~103f,103g-1~103g-4の各々は、CPU(Central Processing Unit)、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図23に示す。コンピュータは、CPU200と、記憶装置201と、インタフェース装置(I/F)202とを備えている。
【0221】
I/F202には、通信ネットワーク等が接続される。このようなコンピュータにおいて、本発明のデータフロー制御方法を実現させるためのプログラムは、記憶装置201に格納される。CPU200は、記憶装置201に格納されたプログラムに従って第1~第7の実施例で説明した処理を実行する。
【産業上の利用可能性】
【0222】
本発明は、コンピュータシステムに適用することができる。
【符号の説明】
【0223】
100a~100g…データフロー制御装置、101-1~101-7…ファンクション部、103,103b~103f,103g-1~103g-4…入出力インタフェース変換部、104,104d-1,104d-2,104e-1,104e-2,104f-1,104f-2…変換判定部、105,105d-1,105d-2,105e-1,105e-2,105f-1,105f-2…変換部、106,106b,106c,106d,106e,106f-1,106f-2…出力選択部、107…配置部、1040,1040-1,1040-2…クロック周波数載せ替え判定部、1050,1050-1,1050-2…クロック載せ替え部、1041,1041-1,1041-2…データ幅変換判定部、1051,1051-1,1051-2…データ幅変換部、1042,1042-1,1042-2…入出力情報変換判定部、1052,1052-1,1052-2…入出力情報変換部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23