JP2006221226A - データ駆動型情報処理装置およびその制御方法 - Google Patents
データ駆動型情報処理装置およびその制御方法 Download PDFInfo
- Publication number
- JP2006221226A JP2006221226A JP2005031427A JP2005031427A JP2006221226A JP 2006221226 A JP2006221226 A JP 2006221226A JP 2005031427 A JP2005031427 A JP 2005031427A JP 2005031427 A JP2005031427 A JP 2005031427A JP 2006221226 A JP2006221226 A JP 2006221226A
- Authority
- JP
- Japan
- Prior art keywords
- data packet
- data
- output
- processing apparatus
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】 処理性能の限界近くまでマージンを削減したソフトウェア設計を行なうことが可能なデータ駆動型情報処理装置を提供すること。
【解決手段】 データパケット状態取得部22は、データパケット分岐部21によってデータパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれると判定された場合に、データメモリ23を参照してデータパケット群に含まれる他のデータパケットの履歴情報を取得してデータパケットの待機時間を決定してデータメモリ23に格納する。出力データパケット生成部26は、データメモリ23に記憶された待機時間が経過したときにデータパケットを出力する。したがって、データ駆動型情報処理装置内のデータパケットの処理量のゆらぎが減少し、処理性能の限界近くまでマージンを削減したソフトウェア設計を行なうことが可能となる。
【選択図】 図2
【解決手段】 データパケット状態取得部22は、データパケット分岐部21によってデータパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれると判定された場合に、データメモリ23を参照してデータパケット群に含まれる他のデータパケットの履歴情報を取得してデータパケットの待機時間を決定してデータメモリ23に格納する。出力データパケット生成部26は、データメモリ23に記憶された待機時間が経過したときにデータパケットを出力する。したがって、データ駆動型情報処理装置内のデータパケットの処理量のゆらぎが減少し、処理性能の限界近くまでマージンを削減したソフトウェア設計を行なうことが可能となる。
【選択図】 図2
Description
本発明は、データパケットを入出力しながら演算処理を行なうことによって並列処理を可能としたデータ駆動型情報処理装置に関し、特に、処理されるデータパケットを一定間隔または指定した間隔で出力することにより演算処理を効率的に、および高速に行なうことが可能なデータ駆動型情報処理装置およびその制御方法に関する。
近年、マルチメディア処理や高精細画像処理などの大容量データの高速処理が要求される様々な分野で、プロセッサ性能の向上に対する要求が高まっている。しかし、現在のLSI(Large Scale Integrated circuit)製造技術ではデバイスの高速化にも限度がある。そこで、並列処理が注目を浴びており、並列処理に関する研究、開発が盛んに行なわれている。
並列処理向きのコンピュータ・アーキテクチャの中でも、特にデータ駆動型アーキテクチャが注目されている。データ駆動型処理方式においては、「ある処理に必要な入力データが全て揃い、かつその処理に必要な演算装置などの資源が割当てられたときに処理が行なわれる。」という規則にしたがって、処理が並列に進められる。
図10は、従来のデータ駆動型情報処理装置の概略構成を示すブロック図である。このデータ駆動型情報処理装置においては、合流部116と、プログラム記憶部111と、待ち合わせ部112と、演算処理部113と、分岐部114とが周回パイプライン117によってループ状に結合されている。
合流部116は、データパケット入力部118を介して入力されたデータパケットを所定の順序に並べ替え、プログラム記憶部111に送出する。プログラム記憶部111は、合流部116から受けたデータパケットに、必要な演算命令やノード番号を付加し、所定のビットフィールドによって構成されるデータパケットを生成して待ち合わせ部112に送出する。
待ち合わせ部112は、プログラム記憶部111からデータパケットを受けると、演算すべき2つのデータパケットが揃うまで待ち合わせを行ない、データパケットが揃い次第これらのデータパケットを演算処理部113に送出する。
演算処理部113は、待ち合わせ部112から受けたデータパケットに含まれる演算命令に応じて、2つのデータパケットに含まれるデータに算術演算、論理演算などの演算を実行し、送り先ノード番号を付加したデータパケットにその演算結果を格納して分岐部114に送出する。
分岐部114は、演算処理部113から受けたデータパケットに付加された送り先ノード番号によって行き先を決定し、データパケットを振り分ける。すなわち、データパケットの行き先が他のデータ駆動型情報処理装置であれば、データパケット出力部119を介してデータパケットを送出する。また、データパケットの行き先が自身のデータ駆動型情報処理装置であれば、パイプライン115を介して合流部116にデータパケットを送出する。
これに関連する技術として、特開2002−189710号公報に開示された発明がある。図11は、特開2002−189710号公報に開示されたデータ駆動型プロセッサのオーバフロー回避装置の概略構成を示すブロック図である。このオーバフロー回避装置は、図10に示す従来のデータ駆動型情報処理装置の構成に、遅延命令処理ブロック127が付加された構成を有している。
遅延命令処理ブロック127は、図10に示す合流部116からの周回パイプライン117に入力部121を介して接続され、さらに、プログラム記憶部111およびその出力側の周回パイプライン117に出力部126を介して接続される。
図12は、遅延命令処理ブロック127の詳細を示すブロック図である。この遅延命令処理ブロック127は、プログラム記憶部111の周囲に配置される命令フェッチ部122と、遅延トークン記憶用メモリ123と、遅延処理用タイマ124と、遅延命令処理部125とを含む。
命令フェッチ部122は、遅延命令を有するデータパケットを受けると、この遅延命令の次にフェッチされる命令のデータパケットと共に遅延命令のパラメータである遅延時間データを遅延命令処理部125に送出する。
遅延トークン記憶用メモリ123は、遅延命令の次にフェッチされる命令を記憶する。また、遅延処理用タイマ124は、遅延時間データに基づいて遅延時間を計時する。そして、遅延命令処理部125は、遅延処理用タイマ124が計時する遅延時間が経過した後に、遅延トークン記憶用メモリ123から命令を取出して周回パイプライン117に送出する。このようにして、遅延命令の次にフェッチされる命令のデータパケットを所定時間遅らせることによって、周回パイプライン117に同時に伝送されるデータパケット数を減らすことができ、周回パイプライン117のオーバフローを回避することができる。
図13は、特開2002−189710号公報に開示されたフローグラフの静的解析を説明するための図である。このフローグラフは、プログラムの各命令ノードのうち、同時に実行可能な命令ノードを各ランクにおいて横方向に配列し、実行順に上から下へ並べ替えて実行順にノード番号を付したものである。図13に示すフローグラフにおいては、ランク3とランク4とのトークン数が上限値4以上である5となっているので、上述した遅延命令によって周回パイプライン117に同時に伝送されるデータパケット数を減らし、周回パイプライン117のオーバフローを回避する。
特開2002−189710号公報
上述したフローグラフの静的解析は、データパケットが一定の間隔でデータ駆動型情報処理装置内を巡回することを想定している。しかしながら、実際のデータ駆動型情報処理装置内のデータパケットの出力間隔には、様々な要因によるゆらぎが存在する。この出力間隔のゆらぎの要因には、データパケット同士の待ち合わせ時のミクロな時間差による出力時のタイミングのずれ、データフローグラフにおける条件分岐により、データパケットの動作が変化することによって生じるデータパケットの流れの乱れ、データパケットのコピー、消滅などによって生じるデータパケットの出力間隔の変化などがある。
この時間的な出力間隔のゆらぎは、データ駆動型情報処理装置の処理能力内でまかなえるのであれば問題はない。しかし、データ駆動型情報処理装置をその処理性能の限界付近で動作させるケースが多い。その場合、ゆらぎが大きいと、瞬間的にデータパケットがパイプライン上に増加し、データ駆動型情報処理装置の処理能力を超えて停止に至ることになる。
このような事態をさけるため、フローグラフの静的解析においてはデータ駆動型情報処理装置の最大処理性能に対して、ある程度のマージンを持たせたソフトウエア設計をすることが一般的である。しかし、このような設計ではデータ駆動型情報処理装置の処理性能を十分に活用することができず、性能を低下させるといった問題点があった。
本発明は、上記問題点を解決するためになされたものであり、その目的は、処理性能の限界近くまでマージンを削減したソフトウェア設計を行なうことが可能なデータ駆動型情報処理装置を提供することである。
本発明のある局面に従えば、データパケットを入出力しながら演算処理を行なうデータ駆動型情報処理装置であって、データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、データパケットに必要となる待機時間を決定し、待機時間が経過したときにデータパケットを出力するための制御手段と、データパケットに含まれる演算命令に応じて演算処理を行なうための演算処理手段とを含む。
好ましくは、制御手段は、データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを判定し、判定結果に応じてデータパケットを分岐させるための分岐手段と、データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、データパケット群に含まれる他のデータパケットの履歴情報を取得してデータパケットの待機時間を決定するための取得手段と、取得手段によって決定された待機時間を記憶するための記憶手段と、記憶手段に記憶された待機時間が経過したときにデータパケットを出力するための出力手段と、分岐手段によって所定の時間間隔で出力することが要求されるデータパケット群に含まれないと判定されたデータパケット、取得手段によって待機する必要がないと判定されたデータパケットおよび出力手段から出力されたデータパケットを合流させるための合流手段とを含む。
好ましくは、データパケット群は、同じ行き先情報を有する複数のデータパケットである。
さらに好ましくは、分岐手段は、所定命令のデータパケットに含まれる行き先情報をレジスタに保持し、データパケットの行き先情報がレジスタに保持される行き先情報と同じであるか否かによって、データパケット群に含まれるか否かを判定する。
さらに好ましくは、所定の時間間隔は所定命令のデータパケットに含まれる。
好ましくは、所定の時間間隔は一定の時間間隔である。
好ましくは、データパケット群が複数ある場合、出力手段は、複数のデータパケット群を所定の順序で出力する。
好ましくは、出力手段は、データパケット群に含まれるデータパケットを世代番号が小さい順番に出力する。
好ましくは、データパケットは、所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを示すフラグを含み、取得手段は、フラグを参照してデータパケットが所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを判定する。
本発明の別の局面に従えば、データパケットを入出力しながら演算処理を行なうデータ駆動型情報処理装置の制御方法であって、データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、データパケットに必要となる待機時間を決定し、待機時間が経過したときにデータパケットを出力するステップと、データパケットに含まれる演算命令に応じて演算処理を行なうステップとを含む。
好ましくは、データパケットを出力するステップは、データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを判定し、判定結果に応じてデータパケットを分岐させるステップと、データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、データパケット群に含まれる他のデータパケットの履歴情報を取得してデータパケットの待機時間を決定するステップと、決定された待機時間を記憶するステップと、記憶された待機時間が経過したときにデータパケットを出力するステップと、所定の時間間隔で出力することが要求されるデータパケット群に含まれないと判定されたデータパケット、待機する必要がないと判定されたデータパケットおよび出力されたデータパケットを合流するステップとを含む。
本発明のある局面によれば、制御手段は、データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、データパケットに必要となる待機時間を決定し、待機時間が経過したときにデータパケットを出力するので、データ駆動型情報処理装置内のデータパケットの処理量のゆらぎが減少し、処理性能の限界近くまでマージンを削減したソフトウェア設計を行なうことが可能となった。
また、取得手段は、データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、データパケット群に含まれる他のデータパケットの履歴情報を取得してデータパケットの待機時間を決定するので、データパケット群に含まれるデータパケットを所定の時間間隔で正確に出力することが可能となった。
また、データパケット群は、同じ行き先情報を有する複数のデータパケットであるので、データパケットの行き先情報を参照することによりデータパケットがデータパケット群に含まれるか否かを容易に判定することが可能となった。
また、分岐手段が、所定命令のデータパケットに含まれる行き先情報をレジスタに保持し、データパケットの行き先情報がレジスタに保持される行き先情報と同じであるか否かによって、データパケット群に含まれるか否かを判定するので、データパケット群の設定を容易に行なうことが可能となった。
また、所定の時間間隔は所定命令のデータパケットに含まれるので、時間間隔を容易に変更することが可能となった。
また、所定の時間間隔は一定の時間間隔であるので、時間間隔を設定する手間を省くことが可能となった。
また、データパケット群が複数ある場合、出力手段は、複数のデータパケット群を所定の順序で出力するので、データの到着順序が決められた命令の実行を容易に行なうことが可能となった。
また、出力手段は、データパケット群に含まれるデータパケットを世代番号が小さい順番に出力するので、命令の実行順序を容易に制御することが可能となった。
また、取得手段は、フラグを参照してデータパケットが所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを判定するので、容易に判定を行なうことが可能となった。
図1は、本発明の実施の形態におけるデータ駆動型情報処理装置の概略構成を示すブロック図である。このデータ駆動型情報処理装置は、合流部16と、プログラム記憶部11と、パケット制御部20と、待ち合わせ部12と、演算処理部13と、分岐部14とが周回パイプライン17によってループ状に結合されている。
合流部16は、データパケット入力部18を介して入力されたデータパケットを所定の順序に並べ替え、プログラム記憶部11に送出する。プログラム記憶部11は、合流部16から受けたデータパケットに、必要な演算命令やノード番号を付加し、所定のビットフィールドによって構成されるデータパケットを生成してパケット制御部20に送出する。
パケット制御部20は、データパケットの出力間隔を変更して待合わせ部12に送出する。待ち合わせ部12は、パケット制御部20からデータパケットを受けると、演算すべき2つのデータパケットが揃うまで待ち合わせを行ない、データパケットが揃い次第これらのデータパケットを演算処理部13に送出する。
演算処理部13は、待ち合わせ部12から受けたデータパケットに含まれる演算命令に応じて、2つのデータパケットに含まれるデータに算術演算、論理演算などの演算を行ない、送り先ノード番号を付加したデータパケットにその演算結果を格納して分岐部14に送出する。
分岐部14は、演算処理部13から受けたデータパケットに付加された送り先ノード番号によって行き先を決定し、データパケットを振り分ける。すなわち、データパケットの行き先が他のデータ駆動型情報処理装置であれば、データパケット出力部19を介してデータパケットを送出する。また、データパケットの行き先が自身のデータ駆動型情報処理装置であれば、パイプライン15を介して合流部16にデータパケットを送出する。
なお、図1においてはパケット制御部20がプログラム記憶部11と待ち合わせ部12との間に設けられているが、パケット制御部20はデータ駆動型情報処理装置のパイプラインを構成する回路のどの部分に配置されていてもよい。
図2は、図1に示すパケット制御部20の詳細を説明するためのブロック図である。パケット制御部20は、データパケット分岐部21と、データパケット状態取得部22と、データメモリ23と、クロック生成部24と、待機時間デクリメンタ25と、出力データパケット生成部26と、データパケット合流部27とを含む。なお、各部の機能の説明は後述する。
図3は、本発明の実施の形態におけるデータ駆動型情報処理装置内を流れるデータパケットのフォーマットの一例を示す図である。このデータパケットは、命令コード31と、ノード番号32と、世代番号33と、データ34とを含む。
命令コード31は、図1に示すデータ駆動型情報処理装置の演算処理部13で実行される命令を数値で表現するフィールドである。ノード番号32は、データパケットの行き先を示すものであり、このノード番号32をアドレスとして図1に示すプログラム記憶部11から次の命令が取得される。
世代番号33は、演算を実施するデータパケットの集まりごとにつけられた番号で、同一の行き先であっても、別々の演算が実施されるときに、それを区別するために付加する番号である。また、データ34には、実際に周回させるデータ値が格納される。
簡単な例として、図4に示すフローグラフを考える。このフローグラフにおいて、SWBITGEN(右入力データ値=1)41は、世代番号33の値によってTRUE側およびFALSE側のいずれかにデータパケットを分岐させる命令である。分岐条件は、世代番号33の値と右入力データ値(この場合は1)との論理積の結果である。演算結果が0の場合にはTRUE側にデータパケットを出力し、1の場合はFALSE側にデータパケットを出力する。
したがって、世代番号33が昇順に1ずつ増えるようにデータパケットが入力されれば、1データパケットごとにTRUE側、FALSE側に交互に出力されることになる。FALSE側に出力されたデータパケットは消滅し、TRUE側に出力されたデータパケットはNOP42へ流れる。すなわち、NOP42に流れるデータパケットは、入力時のデータパケットに対して1つおきとなる。
次に、NOP42の出力において、データパケットが2つにコピーされる。コピーされたそれぞれのデータパケットのうち、ADDGEN(右入力データ値=0)43側に流れたデータパケットは世代番号33の値に0が加算され、すなわち、そのまま出力される。また、ADDGEN(右入力データ値=1)44側に流れたデータパケットは世代番号33の値に1が加算されて出力される。これらのデータパケットはNOP45で1つにマージされ、最終的に入力時と同じように世代番号33が昇順に1つずつ増えるようなデータパケット群として出力される。
図5は、図4に示すデータフローグラフ上をデータパケットが流れるときの時間変化を示す図である。図5(a)は、SWBITGEN41の入力Aにおけるデータパケットの時間変化を示している。図5(b)は、NOP42の入力Bにおけるデータパケットの時間変化を示している。また、図5(c)は、NOP45の出力Cにおけるデータパケットの時間変化を示している。
図5(a)においては、規則正しい時間間隔でデータパケットが投入されている。図5(b)においては、SWBITGEN命令41によって、データパケットがTRUE側、FALSE側に交互に出力されるので、ちょうど、1つおきにデータパケットが出力される。図5(c)においては、2つを1つにしたデータパケットをコピーし、さらに、世代番号33を元の1つずつの昇順になるように付加して合流させているので、データパケットの世代番号33は元の通りになるが、NOP45の出力Cにおけるデータパケットの時間変化を見ると、データパケットのコピーによって出力間隔が2つずつかたまって出力されるようになる。このようにデータパケットの消滅およびコピーによって、データパケットの出力間隔を意図的に変更することができる。
しかし、図5(c)におけるデータパケットの出力間隔では、図4に示すNOP45以降にデータフローグラフの処理が存在する場合、データパケットの出力間隔が一定ではないため、データパケットが連続して出力されている部分において、データ駆動型情報処理装置の処理が集中し、瞬間的にデータパケットがオーバーフローを起こすことが考えられる。すなわち、図1に示すようなプログラム記憶部11と、待ち合わせ部12と、演算処理部13と、分岐部14と、合流部16とで構成される周回パイプライン17上でデータパケットが動けなくなり、システム全体が停止する場合がある。
そこで、本発明の実施の形態においては、図4に示すNOP命令ノード45のノード番号を、予め図2に示すデータパケット分岐部21内のレジスタに登録しておく。
図6は、本発明の実施の形態におけるデータ駆動型情報処理装置の処理を説明するためのデータフローグラフである。入力Pから、設定したいデータ出力間隔の値をデータとして持つデータパケットを1つ流しておき、レジスタセット命令46が予め実行されるようにする。
データパケット分岐部21は、プログラム記憶部11から出力されデータパケットがレジスタセット命令46であるかの判定を行なう。データパケットがレジスタセット命令であれば、データパケット分岐部21は、そのデータパケットの行き先情報、すなわちノード番号32の値と、データ出力間隔の値、すなわちデータ34の値とを内部のレジスタに記憶する。
実際の処理としては、入力Qから一定間隔のデータパケットを流す。ADDGEN43の出力E、ADDGEN44の出力Fを流れるデータパケットが、データパケット分岐部21に入力されると、データパケット分岐部21は内部のレジスタの値とそのデータパケットのノード番号32とを比較する。そして、それらのパケットの行き先がNOP命令45であれば、データパケット状態取得部22へデータパケットを流す。なお、データパケット分岐部21は、それ以外のデータパケットをデータパケット合流部27に流し、外部へ出力する。
データパケット分岐部21は、ADDGEN43の出力Eのデータパケットを入力すると、このデータパケットをデータパケット状態取得部22へ流す。データパケット状態取得部22は、このデータパケットと同じノード番号を持つデータパケットがデータメモリ23に保存されているか、または何クロックか前に保存若しくは通過したかの情報を取得する。
データメモリ23は、データパケット待機時間テーブルと、データパケット待ち行列とを含む。図7は、データパケット待機時間テーブルのデータ構造を示す図である。データパケット待機時間テーブルは、ノード番号をアドレスとするテーブルであり、テーブルの内容はそのノード番号を持つデータパケットのその時点における待機時間を示している。このデータパケット待機時間は待機時間デクリメンタ25によって、クロックごとに値がデクリメントされる。また、データパケット待機時間テーブルは、新たにあるノード番号のアドレスを持つデータパケットが通過または保存される場合に、データパケット待機時間にデータ出力間隔の値を加算した値で更新される。
図8は、データパケット待ち行列のデータ構造を示す図である。データパケット待ち行列は、データパケットの実体を格納する行列であり、そのデータパケットのその時点における待機時間をデータパケットの実体ごとに格納している。このデータパケット待機時間は、待機時間デクリメンタ25によって、クロックごとに値がデクリメントされる。データパケット待ち行列内のデータパケット待機時間は減少する一方であり、0になった時点でデータパケットの実体が出力データパケット生成部26へ出力される。
データパケット状態取得部22は、データパケットのノード番号をアドレスとしてデータパケット待機時間テーブルに格納されるデータパケット待機時間を取得する。このデータパケット待機時間は、そのノード番号を持つデータパケットが、どれだけの時間データメモリ23で待機する必要があるかを示している。ここではクロックを単位とするが、時間の単位は何でも構わない。
たとえば、データパケット待機時間が0であれば、データパケットをデータメモリ23に保存する必要がないので、データパケット状態取得部22はデータパケットをそのままデータパケット合流部27へ出力する。また、データパケット状態取得部22は、データパケット合流部27に出力したデータパケットのノード番号をアドレスとしてデータパケット待機時間テーブルからデータパケット待機時間を取得し、データパケット待機時間にデータ出力間隔の値を合計してデータパケット待機時間テーブルの値を書き換える。
データパケット待機時間が0でない場合、データパケット状態取得部22は、そのときのデータパケット待機時間とともにデータパケットの実体をデータパケット待ち行列に保存する。また、データパケット待ち行列にデータパケットが保存されるため、そのデータパケットのノード番号をアドレスとしてデータパケット待機時間の値を取得し、データパケット待機時間をレジスタに保存されているデータ出力間隔の値を合計した値で書き換える。
図6のADDGEN43の出力Eのデータパケットがデータパケット分岐部21に到着した後、すぐにADDGEN44の出力Fのデータパケットがデータパケット分岐部21に到着する。これは、図6のNOP命令ノード42のコピー操作により、パイプラインの最小間隔でデータパケットがコピーされるからである。
データパケット分岐部21は、ADDGEN44の出力Fのデータパケットを受けると、このデータパケットの行き先がNOP命令ノード45であるので、データパケット状態取得部22にデータパケットを出力する。データパケット状態取得部22は、データメモリ23を参照することにより、このデータパケットと同じノード番号を持つデータパケットが現在保存されているか、または何クロックか前に保存若しくは通過したかの情報を取得する。
具体的には、データパケット状態取得部22は、データパケットのノード番号をアドレスとして、データメモリ23内のデータパケット待機時間テーブルからデータパケット待機時間を取得する。この場合は、直前にADDGEN43の出力Eのデータパケットが通過しているので、データパケット待機時間はnクロック経過しており、(データ出力間隔の値−n)となっている。この値とともにデータメモリ23へデータパケットを流す。なお、nクロックはコピー操作による最小間隔の時間とする。
そして、データパケット状態取得部22は、データメモリ23内のデータパケット待ち行列にデータパケット待機時間として(データ出力間隔の値−n)の値を保存し、同時にデータパケットの実体も保存する。
クロック生成部24は常にクロックを生成しており、待機時間デクリメンタ25にそれを供給する。なお、このクロックは任意のクロック幅を設定できるようにしてもよい。
待機時間デクリメンタ25は、クロック生成部24から供給されるクロックをトリガとし、データメモリ23のデータパケット待機時間テーブルのすべての値をデクリメントする。
同様に、待機時間デクリメンタ25は、データパケット待ち行列のデータパケット待機時間のすべての値もデクリメントする。そして、データパケット待ち行列においては、デクリメントした値が0である場合、出力データパケット生成部26にそのアドレスを転送する。
出力データパケット生成部26は、データパケット待ち行列から転送されたアドレスに応じて、データパケット待ち行列からデータパケットの実体を読出す。そして、データパケットの実体をデータパケット合流部27へ転送すると共に、データパケット待ち行列からデータパケット待機時間とデータパケットの実体とを消去する。
データパケット合流部27は、データパケット分岐部21、データパケット状態取得部22および出力データパケット生成部26からのデータパケットを合流させて出力する。
図6において、ADDGEN43の出力Eのデータパケットと、ADDGEN44の出力Fのデータパケットとが最小間隔で入力される。しかし、ADDGEN44の出力Fのデータパケットがデータメモリ23に保存され、データパケット待機時間が(データ出力間隔の値−n)となってからデクリメントされて0になった時点で、データパケットが出力データパケット生成部26から出力される。そのため、ADDGEN43の出力Eのデータパケットと、ADDGEN44の出力Fのデータパケットとがデータ出力間隔の値分の間隔で出力される。
同様に、ADDGEN44の出力Fのデータパケットと、次の世代番号33を持つADDGEN43の出力Eのデータパケットとの間隔もデータ出力間隔の値となる。このようにして、データパケットの出力間隔は一定となる。
図9は、本発明の実施の形態におけるデータ駆動型情報処理装置のパケット制御部20から出力されるデータパケットの時間変化を示す図である。図9に示すように、図5(c)に示す間隔で出力されていたデータパケット群が、一定の出力間隔で出力されているのが分かる。
以上の説明は、レジスタセット命令を1つだけ使用した場合についてであったが、レジスタセット命令を複数箇所で使用するようにしてもよい。この場合、複数のレジスタセット命令によって複数のノード番号が指定されることになるが、複数のレジスタセット命令に順序を設定し、同じ世代番号のデータパケットを所定の順序で出力するようにすることも可能である。たとえば、データパケット待ち行列のデータパケット待ち時間が0になった場合でも、所定のノード番号を持ったデータパケットが到着するまでそのデータパケットを出力しないようにする。そして、所定のノード番号を持ったデータパケットが到着して出力されてから所定時間経過した後に、待機していたデータパケットを出力する。
もちろん、複数のレジスタセット命令に順序を設定せずに、データパケット待ち行列のデータパケット待ち時間が0になった時点でノード番号に関係なくデータパケットを出力するようにしてもよい。
また、データパケット待ち行列のデータパケット待ち時間が0になった時点でデータパケット待ち行列を検索し、同じ行き先情報を持ったデータパケットが他にある場合には、同じ行き先情報を持ったデータパケットの中で世代番号が一番小さいデータパケットとデータパケット待機時間が0となったデータパケットとを交換し、世代番号が一番小さいデータパケットを出力するようにしてもよい。この場合、データパケット待機時間が0となったデータパケットの待機時間として、世代番号が一番小さいデータパケットのデータパケット待機時間の値が設定される。
また、レジスタセット命令への入力データパケットのデータ34にデータ出力間隔の値が設定されているため、この値を異なる値にして異なる出力間隔でデータパケットを出力するようにすることも可能である。
また、命令コード31の最下位ビットを条件判定のためのフラグフィールドとし、データパケット分岐部21はこのフラグが1の場合にのみデータパケットをデータパケット状態取得部22に出力するようにしてもよい。
また、図2に示すデータパケット分岐部21を削除し、データパケットが全てデータパケット状態取得部22に入力されるようにしてもよい。この場合、データパケット合流部27は、データパケット状態取得部22および出力データパケット生成部26から出力されるデータパケットを合流させる。
また、パケット制御部20を演算処理部13内に設けることも可能である。この場合、データパケット分岐部21は命令コード31をデコードし、一定時間滞在命令であればそのデータパケットをデータパケット状態取得部22へ出力する。
以上説明したように、本発明の実施の形態におけるデータ駆動型情報処理装置においては、同一の行き先情報を持ったデータパケット群が所定の時間間隔で出力されるようにデータパケット待機時間を決定し、このデータパケット待機時間をデータパケットの実体と共にデータパケット待ち行列に格納し、データパケット待機時間をデクリメントして0となったときに出力データパケット生成部26がデータパケットの実体を出力するようにしたので、データ駆動型情報処理装置内のデータパケットの処理量のゆらぎが減少し、静的解析においてもデータ駆動型情報処理装置の処理性能の限界近くまでマージンを削減したソフトウェア設計を行なうことが可能となり、データ駆動型情報処理装置の処理性能を向上させることが可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
11 プログラム記憶部、12 待ち合わせ部、13 演算処理部、14 分岐部、15 パイプライン、16 合流部、17 周回パイプライン、20 パケット制御部、21 データパケット分岐部、22 データパケット状態取得部、23 データメモリ、24 クロック生成部、25 待機時間デクリメンタ、26 出力データパケット生成部、27 データパケット合流部、31 命令コード、32 ノード番号、33 世代番号、34 データ。
Claims (11)
- データパケットを入出力しながら演算処理を行なうデータ駆動型情報処理装置であって、
前記データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、前記データパケットに必要となる待機時間を決定し、該待機時間が経過したときに前記データパケットを出力するための制御手段と、
前記データパケットに含まれる演算命令に応じて演算処理を行なうための演算処理手段とを含む、データ駆動型情報処理装置。 - 前記制御手段は、前記データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを判定し、判定結果に応じて前記データパケットを分岐させるための分岐手段と、
前記データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、前記データパケット群に含まれる他のデータパケットの履歴情報を取得して前記データパケットの待機時間を決定するための取得手段と、
前記取得手段によって決定された待機時間を記憶するための記憶手段と、
前記記憶手段に記憶された待機時間が経過したときに前記データパケットを出力するための出力手段と、
前記分岐手段によって所定の時間間隔で出力することが要求されるデータパケット群に含まれないと判定されたデータパケット、前記取得手段によって待機する必要がないと判定されたデータパケットおよび前記出力手段から出力されたデータパケットを合流させるための合流手段とを含む、請求項1記載のデータ駆動型情報処理装置。 - 前記データパケット群は、同じ行き先情報を有する複数のデータパケットである、請求項1または2記載のデータ駆動型情報処理装置。
- 前記分岐手段は、所定命令のデータパケットに含まれる行き先情報をレジスタに保持し、前記データパケットの行き先情報が前記レジスタに保持される行き先情報と同じであるか否かによって、前記データパケット群に含まれるか否かを判定する、請求項3記載のデータ駆動型情報処理装置。
- 前記所定の時間間隔は前記所定命令のデータパケットに含まれる、請求項4記載のデータ駆動型情報処理装置。
- 前記所定の時間間隔は一定の時間間隔である、請求項1〜4のいずれかに記載のデータ駆動型情報処理装置。
- 前記データパケット群が複数ある場合、前記出力手段は、前記複数のデータパケット群を所定の順序で出力する、請求項2〜6のいずれかに記載のデータ駆動型情報処理装置。
- 前記出力手段は、前記データパケット群に含まれるデータパケットを世代番号が小さい順番に出力する、請求項2〜7のいずれかに記載のデータ駆動型情報処理装置。
- 前記データパケットは、所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを示すフラグを含み、
前記取得手段は、前記フラグを参照して前記データパケットが所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを判定する、請求項2〜8のいずれかに記載のデータ駆動型情報処理装置。 - データパケットを入出力しながら演算処理を行なうデータ駆動型情報処理装置の制御方法であって、
前記データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、前記データパケットに必要となる待機時間を決定し、該待機時間が経過したときに前記データパケットを出力するステップと、
前記データパケットに含まれる演算命令に応じて演算処理を行なうステップとを含む、データ駆動型情報処理装置の制御方法。 - 前記データパケットを出力するステップは、前記データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれるか否かを判定し、判定結果に応じて前記データパケットを分岐させるステップと、
前記データパケットが、所定の時間間隔で出力することが要求されるデータパケット群に含まれる場合に、前記データパケット群に含まれる他のデータパケットの履歴情報を取得して前記データパケットの待機時間を決定するステップと、
前記決定された待機時間を記憶するステップと、
前記記憶された待機時間が経過したときに前記データパケットを出力するステップと、
前記所定の時間間隔で出力することが要求されるデータパケット群に含まれないと判定されたデータパケット、待機する必要がないと判定されたデータパケットおよび前記出力されたデータパケットを合流するステップとを含む、請求項10記載のデータ駆動型情報処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005031427A JP2006221226A (ja) | 2005-02-08 | 2005-02-08 | データ駆動型情報処理装置およびその制御方法 |
US11/347,374 US20060176812A1 (en) | 2005-02-08 | 2006-02-06 | Data-driven-type information processor outputting data packet to be processed at prescribed interval and method of controlling the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005031427A JP2006221226A (ja) | 2005-02-08 | 2005-02-08 | データ駆動型情報処理装置およびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006221226A true JP2006221226A (ja) | 2006-08-24 |
Family
ID=36779806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005031427A Pending JP2006221226A (ja) | 2005-02-08 | 2005-02-08 | データ駆動型情報処理装置およびその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060176812A1 (ja) |
JP (1) | JP2006221226A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2128772A4 (en) * | 2006-12-22 | 2014-11-12 | Ibm | MESSAGE CONCENTRATOR, PROGRAM AND METHOD |
US20160286013A1 (en) * | 2015-03-24 | 2016-09-29 | General Electric Company | Management of stream metadata during high volume real-time data streams |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2779032B2 (ja) * | 1990-01-23 | 1998-07-23 | 株式会社日立製作所 | 情報処理装置 |
JP3312039B2 (ja) * | 1992-01-08 | 2002-08-05 | シャープ株式会社 | データ駆動型情報処理装置 |
US5317564A (en) * | 1992-12-30 | 1994-05-31 | Intel Corporation | Merging network for collection of data from multi-computers |
JP3706397B2 (ja) * | 1994-06-06 | 2005-10-12 | シャープ株式会社 | データ駆動型情報処理装置 |
JP2001285296A (ja) * | 2000-03-29 | 2001-10-12 | Fujitsu Ltd | 中継装置 |
JP3766779B2 (ja) * | 2000-03-31 | 2006-04-19 | シャープ株式会社 | 自己同期型データ伝送装置およびこれを用いたデータ駆動型情報処理装置 |
-
2005
- 2005-02-08 JP JP2005031427A patent/JP2006221226A/ja active Pending
-
2006
- 2006-02-06 US US11/347,374 patent/US20060176812A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20060176812A1 (en) | 2006-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102497178B1 (ko) | 재진입 큐를 사용하는 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 루프 실행 제어 | |
KR102545047B1 (ko) | 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 중지 신호를 사용한 역압 제어 | |
US20200050453A1 (en) | Apparatus and methods for matrix multiplication | |
KR102175044B1 (ko) | 인공 신경망 역방향 트레이닝 실행용 장치와 방법 | |
KR101766183B1 (ko) | 벡터 소팅 알고리즘 및 다른 알고리즘들을 지원하기 위한 트리 구조를 갖춘 기능 유닛 | |
US20220253399A1 (en) | Instruction Set | |
US9658853B2 (en) | Techniques for increasing instruction issue rate and reducing latency in an out-of order processor | |
US8832712B2 (en) | System and method for synchronizing threads using shared memory having different buffer portions for local and remote cores in a multi-processor system | |
US9239712B2 (en) | Software pipelining at runtime | |
JP2014216021A (ja) | バッチスレッド処理のためのプロセッサ、コード生成装置及びバッチスレッド処理方法 | |
US20190042946A1 (en) | Triggered operations to improve allreduce overlap | |
Sharma et al. | Fast Lagrangian relaxation based gate sizing using multi-threading | |
JP2006221226A (ja) | データ駆動型情報処理装置およびその制御方法 | |
JP5580404B2 (ja) | 半導体装置 | |
KR102145457B1 (ko) | 방향 인디케이터 | |
US10423607B2 (en) | Method and apparatus for modulo scheduling | |
US9383981B2 (en) | Method and apparatus of instruction scheduling using software pipelining | |
US10031753B2 (en) | Computer systems and methods for executing contexts with autonomous functional units | |
GB2366414A (en) | A method of identifying false paths in circuit synthesis | |
KR102161742B1 (ko) | 피드백 경로를 포함하는 파이프 라인 시스템 및 그 동작방법 | |
JP3990537B2 (ja) | 先行制御による階層化カウンターフロー・パイプライン・プロセッサ | |
Al-Zu'bi et al. | FPGA implementation of data flow graphs for digital signal processing applications | |
JP2009069960A (ja) | 分岐予測装置、分岐予測方法、及びマイクロプロセッサ | |
JP5544856B2 (ja) | 調停装置、調停方法及びプログラム | |
Fernandes et al. | Packet-driven general purpose instruction execution on communication-based architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080610 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081014 |