JP2004157684A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2004157684A JP2004157684A JP2002321637A JP2002321637A JP2004157684A JP 2004157684 A JP2004157684 A JP 2004157684A JP 2002321637 A JP2002321637 A JP 2002321637A JP 2002321637 A JP2002321637 A JP 2002321637A JP 2004157684 A JP2004157684 A JP 2004157684A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- processing unit
- pipeline
- packet
- 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
Landscapes
- Multi Processors (AREA)
Abstract
【課題】データの滞留を回避する。
【解決手段】空検出/分岐部7は転送要求信号FWDを複数パケット処理部91A、…、9nAに並行して出力して、複数パケット処理部91A、…、9nAのいずれかからアクノリッジ信号ACKを受信すると、データ転送許可状態にあるパケット処理部が存在することを検出して、応じてこれら複数パケット処理部に対して前段のパイプライン処理単位3Aから受理したデータパケットPAを並行して与える。このとき、データ転送許可状態にあるパケット処理部のみが与えられたデータパケットPAを受理して処理する。その処理結果データは合流部11を介して後段のパイプライン処理単位3Cに出力される。それゆえにデータ転送許可状態のパケット処理部が存在しているのにデータパケットPAが処理待ちとなって滞留するのを回避できる。
【選択図】 図1
【解決手段】空検出/分岐部7は転送要求信号FWDを複数パケット処理部91A、…、9nAに並行して出力して、複数パケット処理部91A、…、9nAのいずれかからアクノリッジ信号ACKを受信すると、データ転送許可状態にあるパケット処理部が存在することを検出して、応じてこれら複数パケット処理部に対して前段のパイプライン処理単位3Aから受理したデータパケットPAを並行して与える。このとき、データ転送許可状態にあるパケット処理部のみが与えられたデータパケットPAを受理して処理する。その処理結果データは合流部11を介して後段のパイプライン処理単位3Cに出力される。それゆえにデータ転送許可状態のパケット処理部が存在しているのにデータパケットPAが処理待ちとなって滞留するのを回避できる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はパイプライン処理を実行する情報処理装置に関し、特に、データの滞留を回避できる情報処理装置に関する。
【0002】
【従来の技術】
本来的に自然な情報処理方式であると考えられるデータ駆動原理を基本原理とするデータ駆動型プロセッサは、実行可能な高位仕様記述から直接変換して得られた対象プログラムを効果的に実行するような一連のプロセッサの総称である。
【0003】
データ駆動型プロセッサは演算処理機構と発火制御機構を有して、予め準備されたデータフロープログラムを実行する。データフロープログラムは複数の命令から構成される。命令はそれぞれの実行に必要な全ての情報が揃うと、すなわち引き数データあるいは次位に実行すべき命令を指示する宛先情報などがデータパケットの形ですべて揃うと実行可能な状態になる(この動作を発火と称する)。実行可能な状態になった命令は、実行結果を必要とする次位の命令の宛先情報および引き数データとともに、演算処理機構に送られる。ここで発火制御機構は、命令が実行可能な状態か否かを判定する処理および実行可能な状態になった命令を、引き数データと宛先情報とを対応付けて演算処理機構に送る処理を実現する。
【0004】
演算処理機構では発火制御機構から到着した命令が実行され、実行結果は該命令に対応の宛先情報により指示される次位に実行すべき命令の引き数データとしてデータパケットの形で送出される。演算処理機構ではデータパケットの到着によって命令の実行が駆動されることから、このような計算機構はデータ駆動方式として提案されている(例えば、特許文献1参照)。
【0005】
以下に、特許文献1に示された従来のデータ駆動型プロセッサについて説明する。まず図5(A)と(B)を参照してデータ駆動原理を説明する。図5(A)において命令ICが割当てられたノードNDに左右の入力枝LBおよびRBからデータパケットPAが到着すると、命令ICについて発火して、図5(B)において命令ICの演算結果(命令実行結果)のデータはデータパケットPAとして出力枝OBに送出される。
【0006】
このデータ駆動原理を実装したデータ駆動型プロセッサの主要部構成が図6に示される。データ駆動型プロセッサは基本機能部として発火制御(待合せ)機構FC(FC:Firing Control unit)、演算処理機構FP(FP:Function Processor)、プログラム記憶機構PS(PS:Program Storage unit)、およびデータパケットの入力INとデータパケットの出力OUTを制御するデータ入出力制御部I/O(I/O:Input Output controller)を備えて、これら基本機能部が環状に接続される巡回パイプライン構造を採る。また各基本機能部の内部もパイプライン構造を有する。
【0007】
図7には従来のデータ駆動型プロセッサ1Cの部分構成であって、図6に示した各基本機能部の内部構成が示される。後に詳述するように、各基本機能部は機能を実現する処理段に対応して複数の自己タイミング型データ転送処理機構(以下、パイプライン処理単位と称する)を有し、それらは縦続接続されパイプラインを構成する。図7ではデータパケットPAの入力IN側から出力OUT側にパイプライン処理単位3A、3Bおよび3Cからなる3段パイプラインが示される。
【0008】
パイプライン処理単位3A、3Bおよび3Cそれぞれの内部は、ハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続からなるパイプライン構成を採る。具体的には図8に示すように、ハンドシェイク型データ転送制御を司るC素子(自己タイミング型転送制御素子)201と290および対応するパイプラインレジスタ(データラッチ回路)221と225の組合せと、通常組合せ回路からなるデータ処理部9A(ハードウェアプリミティブ)とを備える。
【0009】
C素子201と290の転送要求信号FWDと転送要求信号FWDを受理したことを示すアクノリッジ信号ACKの通信による制御の下に、パイプラインレジスタ221から出力されたデータパケットPAは、データ処理部9Aで処理され、パイプラインレジスタ225へ転送される。図8に示す構成が、ハンドシェイク型転送制御によるデータ転送およびパイプライン処理を行なうための基本構成となっている。
【0010】
図8の構成から分かるようにデータ駆動型プロセッサの処理速度は、本質的に、図8におけるC素子201と290内部の回路構成およびC素子201と290を構成する図示されない論理ゲート回路あるいはトランジスタなどの各デバイスの信号遅延時間などの電気的特性により決まる。このため、C素子201と290内部の回路構成を決定すれば、ハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続網の各段で処理の可能な時間は決定する。
【0011】
図9および図10を参照してC素子の内部回路構成および動作を説明する。図9においてC素子は、図示されない前段のC素子から転送要求信号FWDを入力するCI信号端子91、CI信号端子91を介して転送要求信号FWDを受理したことを示すアクノリッジ信号ACKを前段のC素子に出力するRO信号端子92、CI信号端子91を介して転送要求信号FWDを受理したとき対応するパイプラインレジスタへクロックパルスを送出するCP信号端子93、前段のC素子から受理した転送要求信号FWDを後段に伝えるためのCO信号端子94、CO信号端子94から出力した転送要求信号FWDが図示されない後段のC素子により受理されたことを示すアクノリッジ信号ACKを後段のC素子から受理するためのRI信号端子95、前段のC素子からの転送要求の受付状態を保持するフリップフロップ96、後段への転送要求の送出状態を保持するフリップフロップ98、およびフリップフロップ96と98との同期をとる論理回路97を備える。
【0012】
時間Tの経過に従うCI信号端子91、RO信号端子92、CP信号端子93、CO信号端子94およびRI信号端子95についてのタイミングチャートが図10に示される。図10を参照すると、時間T1においてC素子のCI信号端子91にレベル「L」の転送要求信号FWDが入力されると、すなわち前段からデータ転送が要求されると、フリップフロップ96はセットされ、その出力ノード99からレベル「H」の信号が出力される。
【0013】
これにより、RO信号端子92からはレベル「L」のアクノリッジ信号ACKが出力され、前段に対してさらなるデータ転送をするのを禁止する。一定時間後の時間T2において、CI信号端子91に対して前段からレベル「H」の転送要求信号FWDが入力され、前段から当該C素子へのデータのセットが終了する。この状態であり、かつRI信号端子95に対してレベル「H」のアクノリッジ信号ACKが入力されている、すなわち後段からデータ転送を許可されている状態で、かつCO信号端子94からレベル「H」の転送要求信号FWDを出力しているならば、すなわち後段へデータ転送している途中ではない状態であるならば、NANDゲートの論理回路97はアクティブとなりレベル「L」の信号を出力する。
【0014】
その結果、フリップフロップ96と98は共にリセットされて、CP信号端子93からレベル「H」のクロックパルスがパイプラインレジスタに出力されて、後段に対してCO信号端子94からレベル「L」の転送要求信号FWDを出力する、すなわち後段に対してデータ転送を要求する。後段のC素子では、CI信号端子91によりこのレベル「L」の転送要求信号FWDを受理するので、前段のC素子(該転送要求FWDの送信元のC素子)に対して、更なるデータ転送を行なわないように禁止を示すレベル「L」のアクノリッジ信号ACKを送信する。前段のC素子ではRI信号端子95から、このレベル「L」のアクノリッジ信号ACKが入力されるのでフリップフロップ98がセットされる。
【0015】
その結果、CP信号端子93からレベル「L」の信号が対応のパイプラインレジスタに対して出力され、またCO信号端子94から後段に対してレベル「H」の転送要求信号FWDが出力され、データ転送は終了する。
【0016】
図10を参照して示した動作は、図8においては次のようになる。つまり、C素子201のCP信号端子93から出力されるレベル「H」のパルス信号によりパイプラインレジスタ221がデータパケットPAをラッチし、ラッチしたデータパケットPAはデータ処理部9Aで処理される。その処理結果を格納したデータパケットPAは上述したC素子201と290間のアクノリッジ信号ACKと転送要求信号FWDによるハンドシェイク制御に従ってパイプラインレジスタ221から出力される。出力されたデータパケットPAは、C素子290のCP信号端子93から出力されるレベル「H」のパルス信号により、パイプラインレジスタ225によりラッチされて、さらに後段へ転送される。
【0017】
このようにデータ駆動型プロセッサはC素子によるハンドシェイク制御を基本とした階層的なパイプライン構造を有する。
【0018】
データパケットPAの流れに着目してデータ駆動型プロセッサの動作を説明する。外部からデータ駆動型プロセッサに入力されたデータパケットPAは、自身が持つ宛先情報に基づく自己経路選択機能により適切な基本機能部への経路を自律的に選択する。それによりデータパケットPAは図8に示した自己タイミング型データ転送処理機構(パイプライン処理単位)からなる各基本機能部でC素子のハンドシェイク制御に従って順次処理を受けつつ、それを通過することにより、情報処理の実行も自律的に進行する。自己タイミング型データ転送処理機構の導入により、データ駆動型プロセッサではシステムバス、システムクロック、集中制御機構などがすべて排除され制御が完全に分散化されている。
【0019】
次に、データパケットPAが各パイプライン処理単位を通過する動作を述べる。通常の演算処理においては、演算を、それを構成する複数の演算要素に分割し、そして複数の演算要素を何段かに分けて各演算要素を順次処理するようにパイプラインが構成される。このような処理をここではパイプライン分割処理という。
【0020】
データ駆動型プロセッサに入力されたデータパケットPAは、直列に接続されたパイプライン処理単位3A、3Bおよび3Cを含む各基本機能部にて処理される。データパケットPAは各基本機能部においてはパイプライン処理単位3Aにて処理されて、パイプライン処理単位3Bに出力される。パイプライン処理単位3Bはパイプライン処理単位3Aより出力されたデータパケットPAを受理して、受理したデータパケットPAを処理して処理結果を格納したデータパケットPAをパイプライン処理単位3Cへ出力する。パイプライン処理単位3Cはパイプライン処理単位3Bより出力されたデータパケットPAを受理して、受理したデータパケットPAを処理して処理結果を格納したデータパケットPAを出力する。
【0021】
データ駆動型プロセッサ内部の基本機能部においては、他のパイプライン処理単位と比して相対的に長い処理時間を必要とするパイプライン処理単位であって、かつパイプライン分割処理が困難な場合、または本質的にパイプライン分割処理が困難な場合がある。
【0022】
パイプライン分割処理が困難な場合としては、たとえば、演算処理機構FP内におけるパイプライン処理単位において、外部仕様が分かっているが、その外部仕様を具現化した具体的回路構成が不明である様な回路を使用する場合が挙げられる。この典型例としては次の場合がある。つまり他の設計者から受け入れたIP(Intellectual Property)コア(再利用可能な機能回路ブロック)をパイプライン処理単位に適用する場合において、より細分化された処理単位に分割が困難な場合または内部の具体的回路構成が開示されない場合である。
【0023】
図11には、より細分化された処理単位に分割が困難でかつ他のパイプライン処理単位と比べて相対的に長い処理時間を必要とする処理を行なうパイプライン処理単位の論理回路例が示される。図11の論理回路は例えば図7のパイプライン処理単位3Bの内部構成に相当する。図11の論理回路はC素子901、911、902および903、これらC素子のそれぞれに対応したパイプラインレジスタ921、922、923および924、ならびにデータパケットPAを処理するデータ処理部931を備える。図11にはこれらの論理回路に関連してCI信号端子971、RO信号端子973、CO信号端子979、RI信号端子981、ならびにデータ端子群977と983が示される。C素子901、911、902および903はマスタリセット信号MRSが与えられる。マスターリセット信号MRSは、パイプライン処理単位3Bを含むデータ駆動型プロセッサが起動される時にプロセッサを初期化するために用いられる。
【0024】
C素子と対応のパイプラインレジスタの組それぞれは、すなわちC素子901とパイプラインレジスタ921の組、C素子911とパイプラインレジスタ922の組、C素子902とパイプラインレジスタ923の組、およびC素子903とパイプラインレジスタ924の組のそれぞれはハンドシェイク型データ転送制御方式による一時記憶機構を構成し、データ処理部931は図8に示したデータ処理部9Aに相当する。
【0025】
図11の各C素子はアクノリッジ信号ACKを入力および出力する端子RIおよびRO、転送要求信号FWDを入力および出力する端子CIおよびCO、マスタリセット信号MRSを入力する端子MRおよび対応のパイプラインレジスタにパルスを出力する端子CPを有する。パイプラインレジスタ921、922および924のそれぞれは対応のC素子からパルスを入力する端子CK、データパケットPAの情報を入力および出力する端子群DおよびQを有する。パイプラインレジスタ923は端子CKおよび端子群Qと、データパケットPAの情報を入力する端子群DIとDOを有する。
【0026】
データ端子群977、983、D、Q、DIおよびDCそれぞれは複数の端子を有して、複数端子のそれぞれには、データパケットPAの情報として必要なレベル「L」あるいはレベル「H」の信号が与えられる。
【0027】
データ処理部931は一般的なデータ処理部よりも長いデータ処理時間を要する例えば乗除算演算器のような回路を有する。データ処理部931によるデータ処理時間経過後、データ処理が完了する時点で処理結果データが後段のパイプラインレジスタ923にラッチされるようにC素子911には遅延機能が設けられている。
【0028】
図11のパイプライン処理単位3Bでは処理は次のように行なわれる。パイプライン処理単位3Bがデータ端子群977を介してデータパケットPAを受理する。すなわち、C素子901のRO信号端子973を介してアクノリッジ信号ACKがレベル「H」で出力されている状態で、CI信号端子971を介してレベル「L」の転送要求信号FWDが与えられているとともに、データ端子群977にデータパケットPAの情報が与えられる。そしてC素子901の内部回路構成により定まるある時間を経過した後、C素子901の端子CPよりパイプラインレジスタ921の端子CKにレベル「H」のパルスが出力されるので、パイプラインレジスタ921はデータ端子群977を介して入力したデータパケットPAの情報を一時保持(ラッチ)する。
【0029】
さらに後段のC素子911の端子ROからアクノリッジ信号ACKがレベル「H」(本段(C素子911の段)にデータパケットPAが存在しない)であれば、すなわち、C素子901の端子RIにアクノリッジ信号ACKがレベル「H」で与えられていれば、C素子901の端子COからC素子911の端子CIに対してレベル「L」の転送要求信号FWDが出力される。転送要求信号FWDがレベル「L」であるとき、データの転送が要求されている状態を示す。
【0030】
C素子911は該転送要求信号FWDを入力すると、C素子901と同様のある時間経過の後、端子CPからパイプラインレジスタ922の端子CKに対してレベル「H」のパルスを出力するので、パイプラインレジスタ921に保持されていたデータパケットPAの情報は出力されてパイプラインレジスタ922に入力されて一時保持される。これによりデータパケットPAは転送される。
【0031】
データ処理部931はパイプラインレジスタ922に保持されたデータパケットPAの情報のうち必要な情報を、端子群Dを介して入力して、入力した内容について処理を実行し、実行結果を端子群Qを介してパイプラインレジスタ923へ出力する。C素子911についてはデータ処理部931の処理時間に応じた遅延時間が予め設定されている。したがって、データ処理部931がパイプラインレジスタ923へ実行結果の送出を完了したとき、C素子911は端子COからC素子902に対してレベル「L」の転送要求信号FWDを出力して端子ROからレベル「H」のアクノリッジ信号ACKを出力する。これによりC素子911はC素子902に対してはデータの転送を要求して、C素子901に対しては次のデータパケットPAの転送が可能であることを知らせる。
【0032】
C素子903以降の回路(図11のC素子903の右側の回路(図示せず))では、C素子901の段からC素子911の段へのデータパケットPA転送のための信号通信手順と同様の手順に従いデータパケットPAが転送される。
【0033】
なお、図11においてデータパケットPAの入力部となるC素子901とパイプラインレジスタ921及び出力部となるC素子903とパイプラインレジスタ924からなるハンドシェイク型データ転送制御方式による一時記憶機構は、図11に示すパイプライン処理単位3Bの周辺回路とタイミングを調整するために有用であるが、ここでは特段設けなくても良い。
【0034】
また、図11においてはパイプライン処理単位3Bの後段(パイプライン処理単位3C)においてデータ処理部931による処理前と処理後のデータ両方を必要とする場合を想定して、パイプラインレジスタ923はパイプラインレジスタ922から出力されるデータパケットPAの全体の情報、例えば54ビット長のデータとデータ処理部931から出力された演算結果、例えば54ビット長のデータとの両方を端子群DIとDCから入力し、108ビット長のデータとして端子群Qを介して出力する機能を有する。
【0035】
上述のように図11では、データ処理部931の処理に長時間を要すると、本段(パイプライン処理単位3B)は前段(パイプライン処理単位3A)からデータパケットPAを受付けることのできない時間が他の段に比して長くなる。受付けることのできない時間の長さは処理時間の長さに応じて決まる。
【0036】
このような課題を解決するために、特許文献1の方法が提案されている。この提案方法を図12に基づいて説明する。
【0037】
図12のデータ駆動型プロセッサ1Aはパイプライン処理単位3A、パイプライン処理単位であるインタリーブ処理部5Aおよびパイプライン処理単位3Cを備える。パイプライン処理単位3Aと3CはデータパケットPAを入力して、入力したデータパケットPAについて処理して、処理結果を示すデータパケットPAを出力する。
【0038】
インタリーブ処理部5Aは図示されない複数個の出力ポートを有する入力制御処理部7A、図示されない複数の入力ポートを有する出力制御処理部11A、カウンタ13および入力制御処理部7Aの複数個の出力ポートに並列に接続されたパケット処理部91A、92A、93A、…、9nAを有する。
【0039】
入力制御処理部7Aは、パイプライン処理単位3Aから入力したデータパケットPAを受理すると、受理したデータパケットPAを、複数出力ポートのうちから所定の振分け方式に従って選択されたひとつの出力ポートを介して出力する。カウンタ13は入力制御処理部7AにデータパケットPAが入力するごとにカウントアップして、カウント値は入力制御処理部7Aにより参照される。
【0040】
出力制御処理部11Aはパケット処理部91A、92A、93A、…、9nAが出力するデータパケットPAを複数の入力ポートを介して入力して、パイプライン処理単位3Cへ出力する。
【0041】
入力制御処理部7Aによる所定の振分け方式とは、カウンタ13のカウント値に基づいて、パケット処理部91A、92A、93A、…、9nAのうちからひとつのパケット処理部を順番に選択する方式を指す。すなわち、データパケットPAの処理要求(転送要求)が入力される毎に処理対象のデータパケットPAを、カウンタ13のカウント値に対応するパケット処理部91A、92A、…、9nAへ順次与えることにより、連続して入力されるデータパケットPAを各パケット処理部で並列に処理する。
【0042】
このように図12の構成では、処理対象のデータパケットPAの転送先となるパケット処理部をカウンタ13で順番に切り替えて選択するという簡便な制御手順で処理性能を向上できる。
【0043】
【特許文献1】
特開平9−26949号公報の明細書と図面
【0044】
【発明が解決しようとする課題】
しかしながら、図12のデータ駆動型プロセッサ1Aにおいて選択されたパケット処理部が長時間を要する処理を行なっていた場合、他のパケット処理部は転送可能状態であったとしても、選択されたパケット処理部が現在の処理を完了するまでは、次のデータパケットPAについての処理は待たされることとなり、パケット処理部91A〜9nAによる処理の並列性を維持できなくなる。その結果、データ駆動型プロセッサ1Aにおいては局所的にデータパケットPAが滞留し、処理時間が増大し、スループットも低下することとなった。
【0045】
このような課題を解消するには、データ駆動型プロセッサの複数のパイプライン処理単位において、より細分化された処理単位に分割が困難かつ他のパイプライン処理単位と比較して、相対的に長い処理時間を必要とするパイプライン処理単位が存在する場合であっても、データパケットPAを滞留させずに、処理の並列性を有効活用することが望まれる。
【0046】
それゆえに、この発明の目的は、局所的なデータの滞留を回避する情報処理装置を提供することである。
【0047】
この発明の他の目的は処理の並列性を維持できる情報処理装置を提供することである。
【0048】
【課題を解決するための手段】
この発明のある局面に従う情報処理装置は、複数のパイプライン処理単位が直列に配置されて構成される部分を備える。複数パイプライン処理単位のうち少なくともひとつのパイプライン処理単位は、前段のパイプライン処理単位から出力されたデータを受理して出力する入力部と、与えられる複数のデータを受理して合流させて出力する合流部と、入力部と合流部との間に並列に接続されて、かつデータ転送許可状態において、入力部から与えられたデータを受理して処理し処理結果データを合流部に与える複数のデータ処理部とを有する。
【0049】
入力部は、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出したとき、前段のパイプライン処理単位から受理したデータを複数のデータ処理部に並行して与える検出部を含む。
【0050】
したがって、入力部の検出部は、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出したとき、前段のパイプライン処理単位から受理したデータを複数のデータ処理部に並行して与えると、データ転送許可状態にあるデータ処理部は与えられたデータを受理して処理する。その処理結果データは合流部を介して後段のパイプライン処理単位に出力される。
【0051】
それゆえに、前段のパイプライン処理単位から順次入力されるデータは、データ転送許可状態にあるデータ処理部が検出される限りは、該データ処理部において処理される。言換えると、データ転送許可状態にあるそれぞれのデータ処理部で並行してデータを処理できる。その結果、データが処理待ちとなって滞留するのを回避できる。
【0052】
上述の情報処理装置では好ましくは、複数のデータ処理部それぞれには異なる優先順位が予め設定されており、複数データ処理部においてデータ転送許可状態にあるデータ処理部が2つ以上存在するとき、2つ以上のデータ処理部のうち優先順位が最も高いデータ処理部が、入力部から与えられたデータを受理できる。
【0053】
したがって、データ転送許可状態にあるデータ処理部が2つ以上存在したとしても、そのうちの最高優先順位のデータ処理部のみがデータを受理して処理できる。
【0054】
上述の検出部は好ましくは、前段のパイプライン処理単位からデータを受理するとき、データ転送要求を複数のデータ処理部に並行して出力し、応じてアクノリッジ信号を受信する要求部を含む。そして複数のデータ処理部それぞれは、データ転送要求を受理できたとき、応じてアクノリッジ信号を要求部に送信する要求受理部を含む。そして、検出部は、要求部によりアクノリッジ信号が受信されたときに、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出する。
【0055】
したがって、検出部は、要求部によりデータ転送要求を出力したことに応じてアクノリッジ信号を受信すれば、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出できる。それゆえに、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを簡単に検出できる。
【0056】
上述の情報処理装置では好ましくは、優先順位が最も高いデータ処理部からアクノリッジ信号が送信される。
【0057】
したがって、データ転送許可状態にあるデータ処理部が2つ存在した場合には、最高優先順位のデータ処理部のみがデータを受理して処理できる。
【0058】
上述の情報処理装置では好ましくは、2つ以上のデータ処理部のうち優先順位が最も高いデータ処理部を除く1つ以上のデータ処理部の要求受理部は、データ転送要求を受理するのが不可能な要求受理不可能状態に設定される。
【0059】
したがって、複数のデータ処理部に対して並行にデータが与えられたとしても、データ転送許可状態にあり、かつ最高優先順位のデータ処理部のみが与えられるデータを受理して処理する。
【0060】
上述の情報処理装置は好ましくは、複数のデータ処理部すべてがデータ転送許可状態でないときは、入力部は前段のパイプライン処理単位に対して当該パイプライン処理単位へのデータ転送を禁止する。
【0061】
したがって、パイプライン処理単位においてデータが処理待ちのために滞留するのを回避できる。
【0062】
上述の情報処理装置においてデータ転送許可状態にあるデータ処理部の要求受理部がアクノリッジ信号を送信したことに応じて、優先順位が下位のデータ処理部は要求受理不可能状態が解除される。
【0063】
したがって、データ転送許可状態であり、かつ最高優先順位のデータ処理部が与えられるデータについてのデータ転送要求を受理したことに応じて、優先順位が下位のデータ処理部はデータ転送許可状態に速やかに復帰する。それゆえに、データ転送許可状態に復帰したデータ処理部において次のデータを受理して処理できる。その結果、複数のデータについての並列処理できる。
【0064】
上述の情報処理装置は好ましくは、データ駆動型情報処理装置であってよい。
【0065】
【発明の実施の形態】
本発明の実施の形態を図面を参照しながら説明する。なお、本実施の形態ではデータ駆動型プロセッサを例にして説明しているが、これに限定されず直列に接続された複数のパイプライン処理単位を有するプロセッサであればよい。また処理対象のデータはパケット形式のデータパケットPAとしているが、処理対象データはパケット形式を有するものに限定されず、任意形式のデータであってよい。図1には本実施の形態に係るデータ駆動型プロセッサの構成が示される。
【0066】
図1を参照してデータ駆動型プロセッサ1は、パイプライン接続された複数のパイプライン処理単位、すなわち図8の構成を有するパイプライン処理単位3Aおよび3C、ならびにパイプライン処理単位5を備える。図1には図6に示したプログラム記憶機構PS、発火制御機構FCおよび演算処理機構FPの基本機能部を構成する一部が示される。本発明の主要部は、パイプライン処理単位5である。図1において図12に示されるものと同一の要素には同一の参照番号を付しており、ここではそれらについての詳しい説明は繰返さない。
【0067】
図2には図1のパイプライン処理単位5の論理回路の図面の構成が示されて、パイプライン処理単位5の論理回路の左半分が図3に、右半分が図4にそれぞれ示される。図2、図3および図4により示される回路はデータ駆動型プロセッサ1におけるIPコアに対応するデータ処理部を含む論理回路に相当する。なお、図3の論理回路と図4の論理回路とは便宜上別個に示しているにすぎず、本来は、両者は接続されて一体的に動作するものである。図3及び図4の要素のうち図1の要素と同一部分には同一の符号を付している。
【0068】
パイプライン処理単位5は、前段のパイプライン処理単位3AからのデータパケットPAの入力部として機能する空検出/分岐部7とデータ処理部として機能するパケット処理部91A、92A、…、9nAと、データパケットPAの出力部として機能する合流部11とを含む。パケット処理部91A、92A、…、9nAは空検出/分岐部7と合流部11間において並列に接続される。具体的にはパケット処理部91A、92A、…、9nAそれぞれの入力は空検出/分岐部7の出力に並列に接続されて、それぞれの出力は合流部11の入力に並列に接続される。空検出/分岐部7の入力はパイプライン処理単位3Aの出力と接続されている。合流部11の出力はパイプライン処理単位3Cの入力と接続されている。
【0069】
図3と図4とを参照して、パイプライン処理単位5は、C素子200と、C素子1010、1020、1030、…、10n0と、C素子1011、1021、1031、…、10n1と、C素子1012、1022、1032、…、10n2と、C素子101n、102n、103n、…、10nnと、C素子10(n+1)0とを含む。またパイプライン処理単位5は、パイプラインレジスタ210および230と、パイプラインレジスタ1001、1002、1003、…、100nと、パイプラインレジスタ1111、1112、…、111nとを含む。さらにパイプライン処理単位5は、IPコアに対応するデータ処理部1131、1132、…、113nと、演算結果合流部280と、論理ゲート回路250と、論理ゲート回路1241、1242、…、124nと、論理ゲート回路1252および1251とを含む。
【0070】
パイプライン処理単位5にはパイプライン処理単位3Aから転送要求信号FWDを入力するためのCI信号端子201、データパケットPAを入力するためのデータ端子群204、パイプライン処理単位3Aに対してアクノリッジ信号ACKを出力するためのRO信号端子202、マスタリセット信号MRSを入力するための端子203、パイプライン処理単位3Cに転送要求信号FWDを出力するCO端子205、パイプライン処理単位3Cからアクノリッジ信号ACKを入力するためのRI端子206、およびデータパケットPAを出力するデータ端子群207が接続される。
【0071】
図3と図4のC素子のそれぞれは図9に示す構成を有して、転送要求信号FWDの入力および出力の端子CIおよびCO(図9の端子91と94に対応)、アクノリッジ信号ACKの入力および出力の端子RIおよびRO(図9の端子95と92に対応)、マスタリセット信号MRSを入力するための端子MR、およびパルス出力の端子CP(図9の端子93に対応)を有する。パイプラインレジスタ230を除くパイプラインレジスタのそれぞれは、パルス入力の端子CK、データ入力および出力の端子群DおよびQを含む。パイプラインレジスタ230は端子CK、ならびに端子群DT、DCおよびQを含む。
【0072】
データ処理部のそれぞれは、データ入力および出力の端子群DおよびQを含む。演算結果処理部280は端子CO、RIおよびMR、端子群Q、C素子10n1、10n2、…、10nnのそれぞれの端子COから転送要求信号FWDを入力する端子CI1、CI2、…、CInおよびC素子10n1、10n2、…、10nnのそれぞれの端子RIにアクノリッジ信号ACKを出力するための端子RO1、RO2、…、ROn、データ処理部1131、1132、…、113nのそれぞれの端子群Qからデータを入力する端子群D1、D2、…、Dn、ならびにパイプラインレジスタ230の端子群DCに接続されてパイプラインレジスタ230にデータを出力する端子群Qを含む。
【0073】
端子群204、207、D、Q、DTおよびDCならびに端子群D1、D2、…Dnそれぞれは複数の端子を有して、複数端子のそれぞれには、データパケットPAの情報として必要なレベル「L」あるいはレベル「H」の信号が与えられる。
【0074】
C素子200の端子CIとROにはCI信号端子201とRO信号端子202が接続されて、パイプラインレジスタ210の端子群Dにはデータ端子群204が接続されて、パイプラインレジスタ230の端子群Qにはデータ端子群207が接続されて、C素子10(n+1)0の端子COと端子RIにはCO信号端子205とRI信号端子206がそれぞれ接続される。C素子それぞれの端子MRには端子203が接続される。C素子200の端子CPはパイプラインレジスタ210の端子CKに接続されて、C素子1010、1020、1030、…、10n0のそれぞれの端子CPはパイプラインレジスタ1001、1002、1003、…、100nそれぞれの端子CKが接続されて、C素子1011、1012、…、101nそれぞれの端子CPはパイプラインレジスタ1111、1112、…、111nそれぞれの端子CKが接続される。なお、各C素子は図9と図10で示したように動作する。
【0075】
空検出/分岐部7はC素子200、パイプラインレジスタ210、論理ゲート回路1241、1242、…、124n、ならびに論理ゲート回路1251および1252を有する。パケット処理部91A、92A、…、9nAのそれぞれは、C素子1011、1012、…、101nのそれぞれ、C素子1021、1022、…、102nのそれぞれ、C素子1031、1032、…、103nのそれぞれ、およびC素子10n1、10n2、…、10nnのそれぞれ、パイプラインレジスタ1111、1112、…、111nのそれぞれ、およびデータ処理部1131、1132、…、113nのそれぞれを有する。
【0076】
合流部11はパイプラインレジスタ230、論理ゲート回路250および演算結果合流部280を有して、パイプラインレジスタ230から出力されたデータは後段(直後)のパイプライン処理単位3Cに与えられる。
【0077】
C素子とパイプラインレジスタからなる組の縦続接続部は、すなわちC素子1010とパイプラインレジスタ1001、C素子1020とパイプラインレジスタ1002、C素子1030とパイプラインレジスタ1003、およびC素子10n0とパイプラインレジスタ100nからなるハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続部は、データ処理部は有さずに、パイプラインレジスタ210の端子群Dから出力されたデータパケットPAを入力して、パイプラインレジスタ230の端子群DTへそのまま転送する(スルーパスする)。この構成は図11で説明したパイプラインレジスタ922、データ処理部931、およびパイプラインレジスタ923の構成に相当する。パイプラインレジスタ230の端子群Qからは、演算が施されていないデータ(端子群DTに入力したデータパケットPA)とデータ処理部91A、92A、…、9nAのいずれかによる演算結果のデータ(端子群DCに入力したデータパケットPA)とがパラレルに出力される。なお、このようなデータパケットPAのスルーパスを有するパイプライン処理単位では演算を施す前後のデータが同時に得られるため、例えば(y(x+Δx)−y(x))/Δx)形式の微分演算などを処理するのに適している。
【0078】
パイプラインレジスタ210とパイプラインレジスタ1011、1012、…、101nの接続態様は、空検出/分岐部7が前段のパイプライン処理単位3Aから入力したデータパケットはパケット処理部91A、92A、…、9nAに並行して与えるための簡単な接続態様である。これは後述のように、データ転送許可状態にあり、かつ最高優先順位のパケット処理部のみが与えられるデータを受理して処理するように構成されているからである。
【0079】
次に図1〜図4を参照しながらデータ駆動型プロセッサ1の動作を説明する。パイプライン処理単位5の空検出/分岐処理部7は、データ駆動型プロセッサ1へ入力されてパイプライン処理単位3Aにより処理されたデータパケットPAを、データ端子群204を介して受理する。
【0080】
パイプライン処理単位5にデータパケットPAが入力された場合の動作を説明する。すなわち、RO信号端子202からアクノリッジ信号ACKがレベル「H」で出力されて、CI信号端子201にレベル「L」の転送要求信号FWDが与えられるとともに、データ端子群204にデータパケットPAが与えられた場合の動作を説明する。ここでは、説明の便宜上、パケット処理部91A、92A、…、9nAの全てが空き状態、即ち、C素子1011、1012、…、101nそれぞれの端子ROがレベル「H」(パケット処理部91A、92A、…、9nAがすべて転送許可状態)であるとする。
【0081】
C素子200の端子COからC素子1010の端子CIに対してレベル「L」の転送要求信号FWDが出力されると、C素子1011の端子CIに対して論理ゲート回路1241を介してレベル「L」の信号が与えられる。C素子1010、1020、…、10n0で制御される経路はパイプラインレジスタ210から出力されたデータパケットPAを、そのまま(演算を施さず)にパイプラインレジスタ100nへ転送のみするように作用する。以下に、パケット処理部91A、92A、…、9nAの動作について説明する。
【0082】
論理ゲート回路1241から出力されたレベル「L」の信号は論理ゲート回路1242、…、124nそれぞれの入力端子に与えられるので、論理ゲート回路1242、…、124nそれぞれの出力信号はレベル「H」に固定される。したがって、C素子1012、…、101nそれぞれの端子CIはレベル「H」の信号を入力するのでC素子200の端子COから出力されるレベル「L」の転送要求信号FWDは、これらC素子には伝達されずに、C素子1011にのみ伝達される。したがって、C素子1012、…、101nを有するパケット処理部92A、…、9nAはデータ転送要求受理不可能状態に設定されて、C素子1011を有するパケット処理部91Aのみがデータ転送要求受付状態となる。
【0083】
パケット処理部91Aが転送要求受付状態になると、C素子1011の端子ROを介してレベル「L」のアクノリッジ信号ACKが出力される。該アクノリッジ信号ACKは、パイプライン処理単位3Aからパケット処理部91Aに対して更なるデータパケットPAが転送されるのを禁止するために、空検出/分岐部7に与えられる。すなわち、該アクノリッジ信号ACKは論理ゲート回路1252と1251を経由してC素子200の端子RIに与えられる。該アクノリッジ信号ACKの入力により、空検出/分岐部7はパケット処理部91A、92A、…、9nAにおいてデータ転送許可状態にあるパケット処理部が存在するのを検出できる。
【0084】
このときパイプラインレジスタ210の端子群Qから出力されたデータパケットPAはパケット処理部91A、92A、…、9nAに並行して与えられるけれども、データ転送許可状態であるパケット処理部91A(パイプラインレジスタ1111)のみが与えられたデータパケットPAを入力できる。入力したデータパケットPAはデータ処理部1131で処理されて、その後、演算結果合流部280を介してパイプラインレジスタ230に与えられる。パイプラインレジスタ230はパイプラインレジスタ100nから出力された演算が施されていないデータパケットPAと演算結果合流部280から出力のデータパケットPAとを端子群DTとDCとを介してそれぞれ入力し、これら入力データパケットPAを1つのデータパケットPAにして端子群Qを介して出力する。
【0085】
上述のように、C素子1011はC素子200の端子COから転送要求信号FWDを受入れると端子ROからレベル「L」のアクノリッジ信号ACKを出力してデータ転送許可状態が解除される。出力されたアクノリッジ信号は論理ゲート回路1241の入力端子へ与えられて、論理ゲート回路1241の出力信号はレベル「H」となり論理ゲート回路1242、…、124nそれぞれの入力端に与えられるので、C素子1012、…、101nそれぞれは端子CIがレベル「L」となり応じてC素子1012、…、101nを有するパケット処理部92A、…、9nAは、前述の要求受理不可能状態から解放される。つまり、C素子200からデータパケットPAの転送要求を受入可能な(データ転送許可)状態に復帰する。このとき、C素子1012、…、101nそれぞれは端子ROからレベル「L」のアクノリッジ信号ACKを出力する。該アクノリッジ信号ACKは論理ゲート回路1252と1251を介してC素子200の端子RIに入力する。この結果、空検出/分岐部7はパケット処理部91A、92A、…、9nAのうちにデータ転送許可状態にあるパケット処理部(この場合には、パケット処理部92A、…、9nA)が存在するのを検出できる。
【0086】
このとき、転送要求を受入可能な状態になったことに応じてパケット処理部92AのC素子1012の端子ROから出力されたレベル「L」のアクノリッジ信号ACKは、論理ゲート回路1242の入力端に入力するので論理ゲート回路1242からレベル「L」の信号が出力される。この出力信号はパケット処理部93A(図示せず)…、パケット処理部9nAに対応の論理ゲート回路1243(図示せず)、…、論理ゲート回路124nの入力端に与えられるので、論理ゲート回路1243(図示せず)、…、論理ゲート回路124nからはレベル「H」の信号が出力される。論理ゲート回路1243(図示せず)、…、論理ゲート回路124nそれぞれの出力信号はパケット処理部93A(図示せず)…、パケット処理部9nAのC素子1013(図示せず)、…、C素子101nそれぞれの端子CIに与えられる。その結果、C素子1013(図示せず)、…、C素子101nそれぞれにはC素子200の端子COから出力された転送要求信号FWDのレベル「L」を与えることができない状態になる。言換えると、パケット処理部93A(図示せず)…、パケット処理部9nAは転送要求信号FWDを受理できない状態に設定されて、データパケットPAが与えられても、これを受理できない状態に設定される。
【0087】
したがって、パイプラインレジスタ210の端子群Qから出力された次のデータパケットPAはパケット処理部91A、92A、…、9nAに並行して与えられるけれども、データ転送許可状態であるパケット処理部92A(パイプラインレジスタ1112)のみが与えられたデータパケットPAを入力(ラッチ)できる。入力したデータパケットPAはデータ処理部1132で処理されて、その後、演算結果合流部280を介してパイプラインレジスタ230に与えられる。パイプラインレジスタ230はパイプラインレジスタ100nから出力された演算が施されていないデータパケットPAと演算結果合流部280から出力のデータパケットPAとを端子群DTとDCを介して入力し、1つのデータパケットPAにして端子群Qを介して出力する。
【0088】
図3と図4に示すように、C素子200から出力されるデータパケットPAの転送要求信号FWDは、パケット処理部91A、92A、…、9nAの順で示される優先順位に従い受け入れられるように予め回路構成されている。パケット処理部91A、92A、…、9nAが全てデータ転送許可状態にあるときは、この中の最高(最上位)の優先順位である所定のパケット処理部が転送要求FWDを受入れることができる。つまり、所定のパケット処理部が転送要求FWDを受入れると、一旦、所定パケット処理部よりも優先順位が下位のパケット処理部は転送要求受け入れが禁止されて、要求受理不可能状態に設定される。そして、所定パケット処理部が転送要求を受け入れた後に対応のパイプラインレジスタがデータパケットPAをラッチするために、所定パケット処理部のデータ転送許可状態は解除されて、所定パケット処理部よりも優先順位が下位のパケット処理部は転送要求受理不可能状態が解除されて、次の転送要求を受け入れ可能な状態(転送許可状態)に復帰する。
【0089】
このように、所定パケット処理部がデータパケットPAを受入れてデータ処理中であっても、空検出/分岐部7によりデータ転送許可状態にある他のパケット処理部が存在していることが検知されると、他のパケット処理部に対して次のデータパケットPAを転送できる。その結果、所定パケット処理部における処理時間が長くても、次のデータパケットPAの処理は待機させられることなく(データパケットPAは滞留することなく)、複数のデータパケットPAを複数のパケット処理部で並列に処理することが可能となる。
【0090】
なお、すべてのパケット処理部91A、92A、…、9nAがデータ処理中であるために次のデータパケットPAを受入れることができないときは、すなわちC素子1011、1012、…、101nの端子ROからレベル「L」のアクノリッジ信号ACKが出力されているときは、論理ゲート回路1252の出力信号はレベル「L」となる。該出力信号は論理ゲート回路1252および1251を介してC素子200の端子RIにアクノリッジ信号ACKとして入力される。その結果、パイプライン処理単位5の前段(直前)のパイプライン処理単位3Aに対して次のデータパケットPAをパイプライン処理単位5に転送するのを禁止できる。
【0091】
パケット処理部91A、92A、…、9nAのデータ処理部1131、1132、…、113nのそれぞれでデータパケットPAを処理した結果データ(データパケットPA)は、演算結果合流部280の端子群D1、D2、…、Dnに出力される。演算結果合流部280は、与えられる演算結果データを入力して、入力順に従い端子群Qを介してパイプラインレジスタ230の端子群DCに出力する。パイプラインレジスタ230は入力するデータパケットPAの演算結果を、端子CKに対応のC素子10(n+1)0からパルスを入力したことに応答して、端子群Qから出力する。なお、図3の端子群204から入力するデータパケットPAはここでは54ビット長を有し、パイプラインレジスタ230の端子群Qおよび端子群207から出力されるデータパケットPAは108ビット長を有するとしているが、ビット長はこれらに限定されず、任意であってよい。
【0092】
以上のようにパイプライン処理単位5に連続してデータパケットPAが入力しながら、あるパケット処理部であるデータパケットPAについてのデータ処理に長時間を要しても、そのデータ処理の期間に別のパケット処理部で別のデータパケットPAをデータ処理できる。その結果、データパケットPAについてデータ処理の並列性を維持できるとともに、データパケットPAが滞留するのを回避できて高いスループットを得ることができる。なお、ここではパイプライン処理単位5について説明したが、パイプライン接続されたパイプライン処理単位3A、3Bおよび5の少なくとも1つが図5と同様な構成を有して、同様な効果を奏するようにしてもよい。
【0093】
このように本実施の形態では、データ駆動型プロセッサ1において、より細分化された処理単位に分割が困難かつ他の処理要素に比較して、相対的に長い処理時間を必要とする処理要素が存在する場合であっても、局所的なデータパケットPAの滞留、処理時間の増大、スループットの低下を効果的に解消することができ、データ駆動型プロセッサ1において高速処理が可能となる。
【0094】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0095】
【発明の効果】
この発明によれば、前段のパイプライン処理単位から当該パイプライン処理単位に順次入力されるデータは、当該パイプライン処理単位においてデータ転送許可状態にあるデータ処理部が検出される限りは、該データ処理部において処理される。言換えると、データ転送許可状態にあるそれぞれのデータ処理部で並行してデータを処理できる。その結果、データが処理待ちとなって滞留するのを回避できる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るデータ駆動型プロセッサの主要部構成図である。
【図2】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における論理回路についての図面の構成を示す図である。
【図3】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における要部詳細を示す論理回路図である。
【図4】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における要部詳細を示す論理回路図である。
【図5】(A)と(B)はデータ駆動原理の説明図である。
【図6】従来のデータ駆動型プロセッサの主要部構成図である。
【図7】従来のデータ駆動型プロセッサの部分構成図である。
【図8】自己タイミング型データ転送処理機構を示す図である。
【図9】C素子の内部回路構成を示す図である。
【図10】C素子の動作を示すタイミングチャートである。
【図11】従来のパイプライン処理単位の構成を示す図である。
【図12】従来のデータ駆動型プロセッサを示す図である。
【符号の説明】
1A,1B,1C データ駆動型プロセッサ、3A,3B,3C,5 パイプライン処理単位、7 空検出/分岐部、91A,92A,…,9nA パケット処理部、11 合流部、PA データパケット。
【発明の属する技術分野】
本発明はパイプライン処理を実行する情報処理装置に関し、特に、データの滞留を回避できる情報処理装置に関する。
【0002】
【従来の技術】
本来的に自然な情報処理方式であると考えられるデータ駆動原理を基本原理とするデータ駆動型プロセッサは、実行可能な高位仕様記述から直接変換して得られた対象プログラムを効果的に実行するような一連のプロセッサの総称である。
【0003】
データ駆動型プロセッサは演算処理機構と発火制御機構を有して、予め準備されたデータフロープログラムを実行する。データフロープログラムは複数の命令から構成される。命令はそれぞれの実行に必要な全ての情報が揃うと、すなわち引き数データあるいは次位に実行すべき命令を指示する宛先情報などがデータパケットの形ですべて揃うと実行可能な状態になる(この動作を発火と称する)。実行可能な状態になった命令は、実行結果を必要とする次位の命令の宛先情報および引き数データとともに、演算処理機構に送られる。ここで発火制御機構は、命令が実行可能な状態か否かを判定する処理および実行可能な状態になった命令を、引き数データと宛先情報とを対応付けて演算処理機構に送る処理を実現する。
【0004】
演算処理機構では発火制御機構から到着した命令が実行され、実行結果は該命令に対応の宛先情報により指示される次位に実行すべき命令の引き数データとしてデータパケットの形で送出される。演算処理機構ではデータパケットの到着によって命令の実行が駆動されることから、このような計算機構はデータ駆動方式として提案されている(例えば、特許文献1参照)。
【0005】
以下に、特許文献1に示された従来のデータ駆動型プロセッサについて説明する。まず図5(A)と(B)を参照してデータ駆動原理を説明する。図5(A)において命令ICが割当てられたノードNDに左右の入力枝LBおよびRBからデータパケットPAが到着すると、命令ICについて発火して、図5(B)において命令ICの演算結果(命令実行結果)のデータはデータパケットPAとして出力枝OBに送出される。
【0006】
このデータ駆動原理を実装したデータ駆動型プロセッサの主要部構成が図6に示される。データ駆動型プロセッサは基本機能部として発火制御(待合せ)機構FC(FC:Firing Control unit)、演算処理機構FP(FP:Function Processor)、プログラム記憶機構PS(PS:Program Storage unit)、およびデータパケットの入力INとデータパケットの出力OUTを制御するデータ入出力制御部I/O(I/O:Input Output controller)を備えて、これら基本機能部が環状に接続される巡回パイプライン構造を採る。また各基本機能部の内部もパイプライン構造を有する。
【0007】
図7には従来のデータ駆動型プロセッサ1Cの部分構成であって、図6に示した各基本機能部の内部構成が示される。後に詳述するように、各基本機能部は機能を実現する処理段に対応して複数の自己タイミング型データ転送処理機構(以下、パイプライン処理単位と称する)を有し、それらは縦続接続されパイプラインを構成する。図7ではデータパケットPAの入力IN側から出力OUT側にパイプライン処理単位3A、3Bおよび3Cからなる3段パイプラインが示される。
【0008】
パイプライン処理単位3A、3Bおよび3Cそれぞれの内部は、ハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続からなるパイプライン構成を採る。具体的には図8に示すように、ハンドシェイク型データ転送制御を司るC素子(自己タイミング型転送制御素子)201と290および対応するパイプラインレジスタ(データラッチ回路)221と225の組合せと、通常組合せ回路からなるデータ処理部9A(ハードウェアプリミティブ)とを備える。
【0009】
C素子201と290の転送要求信号FWDと転送要求信号FWDを受理したことを示すアクノリッジ信号ACKの通信による制御の下に、パイプラインレジスタ221から出力されたデータパケットPAは、データ処理部9Aで処理され、パイプラインレジスタ225へ転送される。図8に示す構成が、ハンドシェイク型転送制御によるデータ転送およびパイプライン処理を行なうための基本構成となっている。
【0010】
図8の構成から分かるようにデータ駆動型プロセッサの処理速度は、本質的に、図8におけるC素子201と290内部の回路構成およびC素子201と290を構成する図示されない論理ゲート回路あるいはトランジスタなどの各デバイスの信号遅延時間などの電気的特性により決まる。このため、C素子201と290内部の回路構成を決定すれば、ハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続網の各段で処理の可能な時間は決定する。
【0011】
図9および図10を参照してC素子の内部回路構成および動作を説明する。図9においてC素子は、図示されない前段のC素子から転送要求信号FWDを入力するCI信号端子91、CI信号端子91を介して転送要求信号FWDを受理したことを示すアクノリッジ信号ACKを前段のC素子に出力するRO信号端子92、CI信号端子91を介して転送要求信号FWDを受理したとき対応するパイプラインレジスタへクロックパルスを送出するCP信号端子93、前段のC素子から受理した転送要求信号FWDを後段に伝えるためのCO信号端子94、CO信号端子94から出力した転送要求信号FWDが図示されない後段のC素子により受理されたことを示すアクノリッジ信号ACKを後段のC素子から受理するためのRI信号端子95、前段のC素子からの転送要求の受付状態を保持するフリップフロップ96、後段への転送要求の送出状態を保持するフリップフロップ98、およびフリップフロップ96と98との同期をとる論理回路97を備える。
【0012】
時間Tの経過に従うCI信号端子91、RO信号端子92、CP信号端子93、CO信号端子94およびRI信号端子95についてのタイミングチャートが図10に示される。図10を参照すると、時間T1においてC素子のCI信号端子91にレベル「L」の転送要求信号FWDが入力されると、すなわち前段からデータ転送が要求されると、フリップフロップ96はセットされ、その出力ノード99からレベル「H」の信号が出力される。
【0013】
これにより、RO信号端子92からはレベル「L」のアクノリッジ信号ACKが出力され、前段に対してさらなるデータ転送をするのを禁止する。一定時間後の時間T2において、CI信号端子91に対して前段からレベル「H」の転送要求信号FWDが入力され、前段から当該C素子へのデータのセットが終了する。この状態であり、かつRI信号端子95に対してレベル「H」のアクノリッジ信号ACKが入力されている、すなわち後段からデータ転送を許可されている状態で、かつCO信号端子94からレベル「H」の転送要求信号FWDを出力しているならば、すなわち後段へデータ転送している途中ではない状態であるならば、NANDゲートの論理回路97はアクティブとなりレベル「L」の信号を出力する。
【0014】
その結果、フリップフロップ96と98は共にリセットされて、CP信号端子93からレベル「H」のクロックパルスがパイプラインレジスタに出力されて、後段に対してCO信号端子94からレベル「L」の転送要求信号FWDを出力する、すなわち後段に対してデータ転送を要求する。後段のC素子では、CI信号端子91によりこのレベル「L」の転送要求信号FWDを受理するので、前段のC素子(該転送要求FWDの送信元のC素子)に対して、更なるデータ転送を行なわないように禁止を示すレベル「L」のアクノリッジ信号ACKを送信する。前段のC素子ではRI信号端子95から、このレベル「L」のアクノリッジ信号ACKが入力されるのでフリップフロップ98がセットされる。
【0015】
その結果、CP信号端子93からレベル「L」の信号が対応のパイプラインレジスタに対して出力され、またCO信号端子94から後段に対してレベル「H」の転送要求信号FWDが出力され、データ転送は終了する。
【0016】
図10を参照して示した動作は、図8においては次のようになる。つまり、C素子201のCP信号端子93から出力されるレベル「H」のパルス信号によりパイプラインレジスタ221がデータパケットPAをラッチし、ラッチしたデータパケットPAはデータ処理部9Aで処理される。その処理結果を格納したデータパケットPAは上述したC素子201と290間のアクノリッジ信号ACKと転送要求信号FWDによるハンドシェイク制御に従ってパイプラインレジスタ221から出力される。出力されたデータパケットPAは、C素子290のCP信号端子93から出力されるレベル「H」のパルス信号により、パイプラインレジスタ225によりラッチされて、さらに後段へ転送される。
【0017】
このようにデータ駆動型プロセッサはC素子によるハンドシェイク制御を基本とした階層的なパイプライン構造を有する。
【0018】
データパケットPAの流れに着目してデータ駆動型プロセッサの動作を説明する。外部からデータ駆動型プロセッサに入力されたデータパケットPAは、自身が持つ宛先情報に基づく自己経路選択機能により適切な基本機能部への経路を自律的に選択する。それによりデータパケットPAは図8に示した自己タイミング型データ転送処理機構(パイプライン処理単位)からなる各基本機能部でC素子のハンドシェイク制御に従って順次処理を受けつつ、それを通過することにより、情報処理の実行も自律的に進行する。自己タイミング型データ転送処理機構の導入により、データ駆動型プロセッサではシステムバス、システムクロック、集中制御機構などがすべて排除され制御が完全に分散化されている。
【0019】
次に、データパケットPAが各パイプライン処理単位を通過する動作を述べる。通常の演算処理においては、演算を、それを構成する複数の演算要素に分割し、そして複数の演算要素を何段かに分けて各演算要素を順次処理するようにパイプラインが構成される。このような処理をここではパイプライン分割処理という。
【0020】
データ駆動型プロセッサに入力されたデータパケットPAは、直列に接続されたパイプライン処理単位3A、3Bおよび3Cを含む各基本機能部にて処理される。データパケットPAは各基本機能部においてはパイプライン処理単位3Aにて処理されて、パイプライン処理単位3Bに出力される。パイプライン処理単位3Bはパイプライン処理単位3Aより出力されたデータパケットPAを受理して、受理したデータパケットPAを処理して処理結果を格納したデータパケットPAをパイプライン処理単位3Cへ出力する。パイプライン処理単位3Cはパイプライン処理単位3Bより出力されたデータパケットPAを受理して、受理したデータパケットPAを処理して処理結果を格納したデータパケットPAを出力する。
【0021】
データ駆動型プロセッサ内部の基本機能部においては、他のパイプライン処理単位と比して相対的に長い処理時間を必要とするパイプライン処理単位であって、かつパイプライン分割処理が困難な場合、または本質的にパイプライン分割処理が困難な場合がある。
【0022】
パイプライン分割処理が困難な場合としては、たとえば、演算処理機構FP内におけるパイプライン処理単位において、外部仕様が分かっているが、その外部仕様を具現化した具体的回路構成が不明である様な回路を使用する場合が挙げられる。この典型例としては次の場合がある。つまり他の設計者から受け入れたIP(Intellectual Property)コア(再利用可能な機能回路ブロック)をパイプライン処理単位に適用する場合において、より細分化された処理単位に分割が困難な場合または内部の具体的回路構成が開示されない場合である。
【0023】
図11には、より細分化された処理単位に分割が困難でかつ他のパイプライン処理単位と比べて相対的に長い処理時間を必要とする処理を行なうパイプライン処理単位の論理回路例が示される。図11の論理回路は例えば図7のパイプライン処理単位3Bの内部構成に相当する。図11の論理回路はC素子901、911、902および903、これらC素子のそれぞれに対応したパイプラインレジスタ921、922、923および924、ならびにデータパケットPAを処理するデータ処理部931を備える。図11にはこれらの論理回路に関連してCI信号端子971、RO信号端子973、CO信号端子979、RI信号端子981、ならびにデータ端子群977と983が示される。C素子901、911、902および903はマスタリセット信号MRSが与えられる。マスターリセット信号MRSは、パイプライン処理単位3Bを含むデータ駆動型プロセッサが起動される時にプロセッサを初期化するために用いられる。
【0024】
C素子と対応のパイプラインレジスタの組それぞれは、すなわちC素子901とパイプラインレジスタ921の組、C素子911とパイプラインレジスタ922の組、C素子902とパイプラインレジスタ923の組、およびC素子903とパイプラインレジスタ924の組のそれぞれはハンドシェイク型データ転送制御方式による一時記憶機構を構成し、データ処理部931は図8に示したデータ処理部9Aに相当する。
【0025】
図11の各C素子はアクノリッジ信号ACKを入力および出力する端子RIおよびRO、転送要求信号FWDを入力および出力する端子CIおよびCO、マスタリセット信号MRSを入力する端子MRおよび対応のパイプラインレジスタにパルスを出力する端子CPを有する。パイプラインレジスタ921、922および924のそれぞれは対応のC素子からパルスを入力する端子CK、データパケットPAの情報を入力および出力する端子群DおよびQを有する。パイプラインレジスタ923は端子CKおよび端子群Qと、データパケットPAの情報を入力する端子群DIとDOを有する。
【0026】
データ端子群977、983、D、Q、DIおよびDCそれぞれは複数の端子を有して、複数端子のそれぞれには、データパケットPAの情報として必要なレベル「L」あるいはレベル「H」の信号が与えられる。
【0027】
データ処理部931は一般的なデータ処理部よりも長いデータ処理時間を要する例えば乗除算演算器のような回路を有する。データ処理部931によるデータ処理時間経過後、データ処理が完了する時点で処理結果データが後段のパイプラインレジスタ923にラッチされるようにC素子911には遅延機能が設けられている。
【0028】
図11のパイプライン処理単位3Bでは処理は次のように行なわれる。パイプライン処理単位3Bがデータ端子群977を介してデータパケットPAを受理する。すなわち、C素子901のRO信号端子973を介してアクノリッジ信号ACKがレベル「H」で出力されている状態で、CI信号端子971を介してレベル「L」の転送要求信号FWDが与えられているとともに、データ端子群977にデータパケットPAの情報が与えられる。そしてC素子901の内部回路構成により定まるある時間を経過した後、C素子901の端子CPよりパイプラインレジスタ921の端子CKにレベル「H」のパルスが出力されるので、パイプラインレジスタ921はデータ端子群977を介して入力したデータパケットPAの情報を一時保持(ラッチ)する。
【0029】
さらに後段のC素子911の端子ROからアクノリッジ信号ACKがレベル「H」(本段(C素子911の段)にデータパケットPAが存在しない)であれば、すなわち、C素子901の端子RIにアクノリッジ信号ACKがレベル「H」で与えられていれば、C素子901の端子COからC素子911の端子CIに対してレベル「L」の転送要求信号FWDが出力される。転送要求信号FWDがレベル「L」であるとき、データの転送が要求されている状態を示す。
【0030】
C素子911は該転送要求信号FWDを入力すると、C素子901と同様のある時間経過の後、端子CPからパイプラインレジスタ922の端子CKに対してレベル「H」のパルスを出力するので、パイプラインレジスタ921に保持されていたデータパケットPAの情報は出力されてパイプラインレジスタ922に入力されて一時保持される。これによりデータパケットPAは転送される。
【0031】
データ処理部931はパイプラインレジスタ922に保持されたデータパケットPAの情報のうち必要な情報を、端子群Dを介して入力して、入力した内容について処理を実行し、実行結果を端子群Qを介してパイプラインレジスタ923へ出力する。C素子911についてはデータ処理部931の処理時間に応じた遅延時間が予め設定されている。したがって、データ処理部931がパイプラインレジスタ923へ実行結果の送出を完了したとき、C素子911は端子COからC素子902に対してレベル「L」の転送要求信号FWDを出力して端子ROからレベル「H」のアクノリッジ信号ACKを出力する。これによりC素子911はC素子902に対してはデータの転送を要求して、C素子901に対しては次のデータパケットPAの転送が可能であることを知らせる。
【0032】
C素子903以降の回路(図11のC素子903の右側の回路(図示せず))では、C素子901の段からC素子911の段へのデータパケットPA転送のための信号通信手順と同様の手順に従いデータパケットPAが転送される。
【0033】
なお、図11においてデータパケットPAの入力部となるC素子901とパイプラインレジスタ921及び出力部となるC素子903とパイプラインレジスタ924からなるハンドシェイク型データ転送制御方式による一時記憶機構は、図11に示すパイプライン処理単位3Bの周辺回路とタイミングを調整するために有用であるが、ここでは特段設けなくても良い。
【0034】
また、図11においてはパイプライン処理単位3Bの後段(パイプライン処理単位3C)においてデータ処理部931による処理前と処理後のデータ両方を必要とする場合を想定して、パイプラインレジスタ923はパイプラインレジスタ922から出力されるデータパケットPAの全体の情報、例えば54ビット長のデータとデータ処理部931から出力された演算結果、例えば54ビット長のデータとの両方を端子群DIとDCから入力し、108ビット長のデータとして端子群Qを介して出力する機能を有する。
【0035】
上述のように図11では、データ処理部931の処理に長時間を要すると、本段(パイプライン処理単位3B)は前段(パイプライン処理単位3A)からデータパケットPAを受付けることのできない時間が他の段に比して長くなる。受付けることのできない時間の長さは処理時間の長さに応じて決まる。
【0036】
このような課題を解決するために、特許文献1の方法が提案されている。この提案方法を図12に基づいて説明する。
【0037】
図12のデータ駆動型プロセッサ1Aはパイプライン処理単位3A、パイプライン処理単位であるインタリーブ処理部5Aおよびパイプライン処理単位3Cを備える。パイプライン処理単位3Aと3CはデータパケットPAを入力して、入力したデータパケットPAについて処理して、処理結果を示すデータパケットPAを出力する。
【0038】
インタリーブ処理部5Aは図示されない複数個の出力ポートを有する入力制御処理部7A、図示されない複数の入力ポートを有する出力制御処理部11A、カウンタ13および入力制御処理部7Aの複数個の出力ポートに並列に接続されたパケット処理部91A、92A、93A、…、9nAを有する。
【0039】
入力制御処理部7Aは、パイプライン処理単位3Aから入力したデータパケットPAを受理すると、受理したデータパケットPAを、複数出力ポートのうちから所定の振分け方式に従って選択されたひとつの出力ポートを介して出力する。カウンタ13は入力制御処理部7AにデータパケットPAが入力するごとにカウントアップして、カウント値は入力制御処理部7Aにより参照される。
【0040】
出力制御処理部11Aはパケット処理部91A、92A、93A、…、9nAが出力するデータパケットPAを複数の入力ポートを介して入力して、パイプライン処理単位3Cへ出力する。
【0041】
入力制御処理部7Aによる所定の振分け方式とは、カウンタ13のカウント値に基づいて、パケット処理部91A、92A、93A、…、9nAのうちからひとつのパケット処理部を順番に選択する方式を指す。すなわち、データパケットPAの処理要求(転送要求)が入力される毎に処理対象のデータパケットPAを、カウンタ13のカウント値に対応するパケット処理部91A、92A、…、9nAへ順次与えることにより、連続して入力されるデータパケットPAを各パケット処理部で並列に処理する。
【0042】
このように図12の構成では、処理対象のデータパケットPAの転送先となるパケット処理部をカウンタ13で順番に切り替えて選択するという簡便な制御手順で処理性能を向上できる。
【0043】
【特許文献1】
特開平9−26949号公報の明細書と図面
【0044】
【発明が解決しようとする課題】
しかしながら、図12のデータ駆動型プロセッサ1Aにおいて選択されたパケット処理部が長時間を要する処理を行なっていた場合、他のパケット処理部は転送可能状態であったとしても、選択されたパケット処理部が現在の処理を完了するまでは、次のデータパケットPAについての処理は待たされることとなり、パケット処理部91A〜9nAによる処理の並列性を維持できなくなる。その結果、データ駆動型プロセッサ1Aにおいては局所的にデータパケットPAが滞留し、処理時間が増大し、スループットも低下することとなった。
【0045】
このような課題を解消するには、データ駆動型プロセッサの複数のパイプライン処理単位において、より細分化された処理単位に分割が困難かつ他のパイプライン処理単位と比較して、相対的に長い処理時間を必要とするパイプライン処理単位が存在する場合であっても、データパケットPAを滞留させずに、処理の並列性を有効活用することが望まれる。
【0046】
それゆえに、この発明の目的は、局所的なデータの滞留を回避する情報処理装置を提供することである。
【0047】
この発明の他の目的は処理の並列性を維持できる情報処理装置を提供することである。
【0048】
【課題を解決するための手段】
この発明のある局面に従う情報処理装置は、複数のパイプライン処理単位が直列に配置されて構成される部分を備える。複数パイプライン処理単位のうち少なくともひとつのパイプライン処理単位は、前段のパイプライン処理単位から出力されたデータを受理して出力する入力部と、与えられる複数のデータを受理して合流させて出力する合流部と、入力部と合流部との間に並列に接続されて、かつデータ転送許可状態において、入力部から与えられたデータを受理して処理し処理結果データを合流部に与える複数のデータ処理部とを有する。
【0049】
入力部は、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出したとき、前段のパイプライン処理単位から受理したデータを複数のデータ処理部に並行して与える検出部を含む。
【0050】
したがって、入力部の検出部は、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出したとき、前段のパイプライン処理単位から受理したデータを複数のデータ処理部に並行して与えると、データ転送許可状態にあるデータ処理部は与えられたデータを受理して処理する。その処理結果データは合流部を介して後段のパイプライン処理単位に出力される。
【0051】
それゆえに、前段のパイプライン処理単位から順次入力されるデータは、データ転送許可状態にあるデータ処理部が検出される限りは、該データ処理部において処理される。言換えると、データ転送許可状態にあるそれぞれのデータ処理部で並行してデータを処理できる。その結果、データが処理待ちとなって滞留するのを回避できる。
【0052】
上述の情報処理装置では好ましくは、複数のデータ処理部それぞれには異なる優先順位が予め設定されており、複数データ処理部においてデータ転送許可状態にあるデータ処理部が2つ以上存在するとき、2つ以上のデータ処理部のうち優先順位が最も高いデータ処理部が、入力部から与えられたデータを受理できる。
【0053】
したがって、データ転送許可状態にあるデータ処理部が2つ以上存在したとしても、そのうちの最高優先順位のデータ処理部のみがデータを受理して処理できる。
【0054】
上述の検出部は好ましくは、前段のパイプライン処理単位からデータを受理するとき、データ転送要求を複数のデータ処理部に並行して出力し、応じてアクノリッジ信号を受信する要求部を含む。そして複数のデータ処理部それぞれは、データ転送要求を受理できたとき、応じてアクノリッジ信号を要求部に送信する要求受理部を含む。そして、検出部は、要求部によりアクノリッジ信号が受信されたときに、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出する。
【0055】
したがって、検出部は、要求部によりデータ転送要求を出力したことに応じてアクノリッジ信号を受信すれば、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出できる。それゆえに、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを簡単に検出できる。
【0056】
上述の情報処理装置では好ましくは、優先順位が最も高いデータ処理部からアクノリッジ信号が送信される。
【0057】
したがって、データ転送許可状態にあるデータ処理部が2つ存在した場合には、最高優先順位のデータ処理部のみがデータを受理して処理できる。
【0058】
上述の情報処理装置では好ましくは、2つ以上のデータ処理部のうち優先順位が最も高いデータ処理部を除く1つ以上のデータ処理部の要求受理部は、データ転送要求を受理するのが不可能な要求受理不可能状態に設定される。
【0059】
したがって、複数のデータ処理部に対して並行にデータが与えられたとしても、データ転送許可状態にあり、かつ最高優先順位のデータ処理部のみが与えられるデータを受理して処理する。
【0060】
上述の情報処理装置は好ましくは、複数のデータ処理部すべてがデータ転送許可状態でないときは、入力部は前段のパイプライン処理単位に対して当該パイプライン処理単位へのデータ転送を禁止する。
【0061】
したがって、パイプライン処理単位においてデータが処理待ちのために滞留するのを回避できる。
【0062】
上述の情報処理装置においてデータ転送許可状態にあるデータ処理部の要求受理部がアクノリッジ信号を送信したことに応じて、優先順位が下位のデータ処理部は要求受理不可能状態が解除される。
【0063】
したがって、データ転送許可状態であり、かつ最高優先順位のデータ処理部が与えられるデータについてのデータ転送要求を受理したことに応じて、優先順位が下位のデータ処理部はデータ転送許可状態に速やかに復帰する。それゆえに、データ転送許可状態に復帰したデータ処理部において次のデータを受理して処理できる。その結果、複数のデータについての並列処理できる。
【0064】
上述の情報処理装置は好ましくは、データ駆動型情報処理装置であってよい。
【0065】
【発明の実施の形態】
本発明の実施の形態を図面を参照しながら説明する。なお、本実施の形態ではデータ駆動型プロセッサを例にして説明しているが、これに限定されず直列に接続された複数のパイプライン処理単位を有するプロセッサであればよい。また処理対象のデータはパケット形式のデータパケットPAとしているが、処理対象データはパケット形式を有するものに限定されず、任意形式のデータであってよい。図1には本実施の形態に係るデータ駆動型プロセッサの構成が示される。
【0066】
図1を参照してデータ駆動型プロセッサ1は、パイプライン接続された複数のパイプライン処理単位、すなわち図8の構成を有するパイプライン処理単位3Aおよび3C、ならびにパイプライン処理単位5を備える。図1には図6に示したプログラム記憶機構PS、発火制御機構FCおよび演算処理機構FPの基本機能部を構成する一部が示される。本発明の主要部は、パイプライン処理単位5である。図1において図12に示されるものと同一の要素には同一の参照番号を付しており、ここではそれらについての詳しい説明は繰返さない。
【0067】
図2には図1のパイプライン処理単位5の論理回路の図面の構成が示されて、パイプライン処理単位5の論理回路の左半分が図3に、右半分が図4にそれぞれ示される。図2、図3および図4により示される回路はデータ駆動型プロセッサ1におけるIPコアに対応するデータ処理部を含む論理回路に相当する。なお、図3の論理回路と図4の論理回路とは便宜上別個に示しているにすぎず、本来は、両者は接続されて一体的に動作するものである。図3及び図4の要素のうち図1の要素と同一部分には同一の符号を付している。
【0068】
パイプライン処理単位5は、前段のパイプライン処理単位3AからのデータパケットPAの入力部として機能する空検出/分岐部7とデータ処理部として機能するパケット処理部91A、92A、…、9nAと、データパケットPAの出力部として機能する合流部11とを含む。パケット処理部91A、92A、…、9nAは空検出/分岐部7と合流部11間において並列に接続される。具体的にはパケット処理部91A、92A、…、9nAそれぞれの入力は空検出/分岐部7の出力に並列に接続されて、それぞれの出力は合流部11の入力に並列に接続される。空検出/分岐部7の入力はパイプライン処理単位3Aの出力と接続されている。合流部11の出力はパイプライン処理単位3Cの入力と接続されている。
【0069】
図3と図4とを参照して、パイプライン処理単位5は、C素子200と、C素子1010、1020、1030、…、10n0と、C素子1011、1021、1031、…、10n1と、C素子1012、1022、1032、…、10n2と、C素子101n、102n、103n、…、10nnと、C素子10(n+1)0とを含む。またパイプライン処理単位5は、パイプラインレジスタ210および230と、パイプラインレジスタ1001、1002、1003、…、100nと、パイプラインレジスタ1111、1112、…、111nとを含む。さらにパイプライン処理単位5は、IPコアに対応するデータ処理部1131、1132、…、113nと、演算結果合流部280と、論理ゲート回路250と、論理ゲート回路1241、1242、…、124nと、論理ゲート回路1252および1251とを含む。
【0070】
パイプライン処理単位5にはパイプライン処理単位3Aから転送要求信号FWDを入力するためのCI信号端子201、データパケットPAを入力するためのデータ端子群204、パイプライン処理単位3Aに対してアクノリッジ信号ACKを出力するためのRO信号端子202、マスタリセット信号MRSを入力するための端子203、パイプライン処理単位3Cに転送要求信号FWDを出力するCO端子205、パイプライン処理単位3Cからアクノリッジ信号ACKを入力するためのRI端子206、およびデータパケットPAを出力するデータ端子群207が接続される。
【0071】
図3と図4のC素子のそれぞれは図9に示す構成を有して、転送要求信号FWDの入力および出力の端子CIおよびCO(図9の端子91と94に対応)、アクノリッジ信号ACKの入力および出力の端子RIおよびRO(図9の端子95と92に対応)、マスタリセット信号MRSを入力するための端子MR、およびパルス出力の端子CP(図9の端子93に対応)を有する。パイプラインレジスタ230を除くパイプラインレジスタのそれぞれは、パルス入力の端子CK、データ入力および出力の端子群DおよびQを含む。パイプラインレジスタ230は端子CK、ならびに端子群DT、DCおよびQを含む。
【0072】
データ処理部のそれぞれは、データ入力および出力の端子群DおよびQを含む。演算結果処理部280は端子CO、RIおよびMR、端子群Q、C素子10n1、10n2、…、10nnのそれぞれの端子COから転送要求信号FWDを入力する端子CI1、CI2、…、CInおよびC素子10n1、10n2、…、10nnのそれぞれの端子RIにアクノリッジ信号ACKを出力するための端子RO1、RO2、…、ROn、データ処理部1131、1132、…、113nのそれぞれの端子群Qからデータを入力する端子群D1、D2、…、Dn、ならびにパイプラインレジスタ230の端子群DCに接続されてパイプラインレジスタ230にデータを出力する端子群Qを含む。
【0073】
端子群204、207、D、Q、DTおよびDCならびに端子群D1、D2、…Dnそれぞれは複数の端子を有して、複数端子のそれぞれには、データパケットPAの情報として必要なレベル「L」あるいはレベル「H」の信号が与えられる。
【0074】
C素子200の端子CIとROにはCI信号端子201とRO信号端子202が接続されて、パイプラインレジスタ210の端子群Dにはデータ端子群204が接続されて、パイプラインレジスタ230の端子群Qにはデータ端子群207が接続されて、C素子10(n+1)0の端子COと端子RIにはCO信号端子205とRI信号端子206がそれぞれ接続される。C素子それぞれの端子MRには端子203が接続される。C素子200の端子CPはパイプラインレジスタ210の端子CKに接続されて、C素子1010、1020、1030、…、10n0のそれぞれの端子CPはパイプラインレジスタ1001、1002、1003、…、100nそれぞれの端子CKが接続されて、C素子1011、1012、…、101nそれぞれの端子CPはパイプラインレジスタ1111、1112、…、111nそれぞれの端子CKが接続される。なお、各C素子は図9と図10で示したように動作する。
【0075】
空検出/分岐部7はC素子200、パイプラインレジスタ210、論理ゲート回路1241、1242、…、124n、ならびに論理ゲート回路1251および1252を有する。パケット処理部91A、92A、…、9nAのそれぞれは、C素子1011、1012、…、101nのそれぞれ、C素子1021、1022、…、102nのそれぞれ、C素子1031、1032、…、103nのそれぞれ、およびC素子10n1、10n2、…、10nnのそれぞれ、パイプラインレジスタ1111、1112、…、111nのそれぞれ、およびデータ処理部1131、1132、…、113nのそれぞれを有する。
【0076】
合流部11はパイプラインレジスタ230、論理ゲート回路250および演算結果合流部280を有して、パイプラインレジスタ230から出力されたデータは後段(直後)のパイプライン処理単位3Cに与えられる。
【0077】
C素子とパイプラインレジスタからなる組の縦続接続部は、すなわちC素子1010とパイプラインレジスタ1001、C素子1020とパイプラインレジスタ1002、C素子1030とパイプラインレジスタ1003、およびC素子10n0とパイプラインレジスタ100nからなるハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続部は、データ処理部は有さずに、パイプラインレジスタ210の端子群Dから出力されたデータパケットPAを入力して、パイプラインレジスタ230の端子群DTへそのまま転送する(スルーパスする)。この構成は図11で説明したパイプラインレジスタ922、データ処理部931、およびパイプラインレジスタ923の構成に相当する。パイプラインレジスタ230の端子群Qからは、演算が施されていないデータ(端子群DTに入力したデータパケットPA)とデータ処理部91A、92A、…、9nAのいずれかによる演算結果のデータ(端子群DCに入力したデータパケットPA)とがパラレルに出力される。なお、このようなデータパケットPAのスルーパスを有するパイプライン処理単位では演算を施す前後のデータが同時に得られるため、例えば(y(x+Δx)−y(x))/Δx)形式の微分演算などを処理するのに適している。
【0078】
パイプラインレジスタ210とパイプラインレジスタ1011、1012、…、101nの接続態様は、空検出/分岐部7が前段のパイプライン処理単位3Aから入力したデータパケットはパケット処理部91A、92A、…、9nAに並行して与えるための簡単な接続態様である。これは後述のように、データ転送許可状態にあり、かつ最高優先順位のパケット処理部のみが与えられるデータを受理して処理するように構成されているからである。
【0079】
次に図1〜図4を参照しながらデータ駆動型プロセッサ1の動作を説明する。パイプライン処理単位5の空検出/分岐処理部7は、データ駆動型プロセッサ1へ入力されてパイプライン処理単位3Aにより処理されたデータパケットPAを、データ端子群204を介して受理する。
【0080】
パイプライン処理単位5にデータパケットPAが入力された場合の動作を説明する。すなわち、RO信号端子202からアクノリッジ信号ACKがレベル「H」で出力されて、CI信号端子201にレベル「L」の転送要求信号FWDが与えられるとともに、データ端子群204にデータパケットPAが与えられた場合の動作を説明する。ここでは、説明の便宜上、パケット処理部91A、92A、…、9nAの全てが空き状態、即ち、C素子1011、1012、…、101nそれぞれの端子ROがレベル「H」(パケット処理部91A、92A、…、9nAがすべて転送許可状態)であるとする。
【0081】
C素子200の端子COからC素子1010の端子CIに対してレベル「L」の転送要求信号FWDが出力されると、C素子1011の端子CIに対して論理ゲート回路1241を介してレベル「L」の信号が与えられる。C素子1010、1020、…、10n0で制御される経路はパイプラインレジスタ210から出力されたデータパケットPAを、そのまま(演算を施さず)にパイプラインレジスタ100nへ転送のみするように作用する。以下に、パケット処理部91A、92A、…、9nAの動作について説明する。
【0082】
論理ゲート回路1241から出力されたレベル「L」の信号は論理ゲート回路1242、…、124nそれぞれの入力端子に与えられるので、論理ゲート回路1242、…、124nそれぞれの出力信号はレベル「H」に固定される。したがって、C素子1012、…、101nそれぞれの端子CIはレベル「H」の信号を入力するのでC素子200の端子COから出力されるレベル「L」の転送要求信号FWDは、これらC素子には伝達されずに、C素子1011にのみ伝達される。したがって、C素子1012、…、101nを有するパケット処理部92A、…、9nAはデータ転送要求受理不可能状態に設定されて、C素子1011を有するパケット処理部91Aのみがデータ転送要求受付状態となる。
【0083】
パケット処理部91Aが転送要求受付状態になると、C素子1011の端子ROを介してレベル「L」のアクノリッジ信号ACKが出力される。該アクノリッジ信号ACKは、パイプライン処理単位3Aからパケット処理部91Aに対して更なるデータパケットPAが転送されるのを禁止するために、空検出/分岐部7に与えられる。すなわち、該アクノリッジ信号ACKは論理ゲート回路1252と1251を経由してC素子200の端子RIに与えられる。該アクノリッジ信号ACKの入力により、空検出/分岐部7はパケット処理部91A、92A、…、9nAにおいてデータ転送許可状態にあるパケット処理部が存在するのを検出できる。
【0084】
このときパイプラインレジスタ210の端子群Qから出力されたデータパケットPAはパケット処理部91A、92A、…、9nAに並行して与えられるけれども、データ転送許可状態であるパケット処理部91A(パイプラインレジスタ1111)のみが与えられたデータパケットPAを入力できる。入力したデータパケットPAはデータ処理部1131で処理されて、その後、演算結果合流部280を介してパイプラインレジスタ230に与えられる。パイプラインレジスタ230はパイプラインレジスタ100nから出力された演算が施されていないデータパケットPAと演算結果合流部280から出力のデータパケットPAとを端子群DTとDCとを介してそれぞれ入力し、これら入力データパケットPAを1つのデータパケットPAにして端子群Qを介して出力する。
【0085】
上述のように、C素子1011はC素子200の端子COから転送要求信号FWDを受入れると端子ROからレベル「L」のアクノリッジ信号ACKを出力してデータ転送許可状態が解除される。出力されたアクノリッジ信号は論理ゲート回路1241の入力端子へ与えられて、論理ゲート回路1241の出力信号はレベル「H」となり論理ゲート回路1242、…、124nそれぞれの入力端に与えられるので、C素子1012、…、101nそれぞれは端子CIがレベル「L」となり応じてC素子1012、…、101nを有するパケット処理部92A、…、9nAは、前述の要求受理不可能状態から解放される。つまり、C素子200からデータパケットPAの転送要求を受入可能な(データ転送許可)状態に復帰する。このとき、C素子1012、…、101nそれぞれは端子ROからレベル「L」のアクノリッジ信号ACKを出力する。該アクノリッジ信号ACKは論理ゲート回路1252と1251を介してC素子200の端子RIに入力する。この結果、空検出/分岐部7はパケット処理部91A、92A、…、9nAのうちにデータ転送許可状態にあるパケット処理部(この場合には、パケット処理部92A、…、9nA)が存在するのを検出できる。
【0086】
このとき、転送要求を受入可能な状態になったことに応じてパケット処理部92AのC素子1012の端子ROから出力されたレベル「L」のアクノリッジ信号ACKは、論理ゲート回路1242の入力端に入力するので論理ゲート回路1242からレベル「L」の信号が出力される。この出力信号はパケット処理部93A(図示せず)…、パケット処理部9nAに対応の論理ゲート回路1243(図示せず)、…、論理ゲート回路124nの入力端に与えられるので、論理ゲート回路1243(図示せず)、…、論理ゲート回路124nからはレベル「H」の信号が出力される。論理ゲート回路1243(図示せず)、…、論理ゲート回路124nそれぞれの出力信号はパケット処理部93A(図示せず)…、パケット処理部9nAのC素子1013(図示せず)、…、C素子101nそれぞれの端子CIに与えられる。その結果、C素子1013(図示せず)、…、C素子101nそれぞれにはC素子200の端子COから出力された転送要求信号FWDのレベル「L」を与えることができない状態になる。言換えると、パケット処理部93A(図示せず)…、パケット処理部9nAは転送要求信号FWDを受理できない状態に設定されて、データパケットPAが与えられても、これを受理できない状態に設定される。
【0087】
したがって、パイプラインレジスタ210の端子群Qから出力された次のデータパケットPAはパケット処理部91A、92A、…、9nAに並行して与えられるけれども、データ転送許可状態であるパケット処理部92A(パイプラインレジスタ1112)のみが与えられたデータパケットPAを入力(ラッチ)できる。入力したデータパケットPAはデータ処理部1132で処理されて、その後、演算結果合流部280を介してパイプラインレジスタ230に与えられる。パイプラインレジスタ230はパイプラインレジスタ100nから出力された演算が施されていないデータパケットPAと演算結果合流部280から出力のデータパケットPAとを端子群DTとDCを介して入力し、1つのデータパケットPAにして端子群Qを介して出力する。
【0088】
図3と図4に示すように、C素子200から出力されるデータパケットPAの転送要求信号FWDは、パケット処理部91A、92A、…、9nAの順で示される優先順位に従い受け入れられるように予め回路構成されている。パケット処理部91A、92A、…、9nAが全てデータ転送許可状態にあるときは、この中の最高(最上位)の優先順位である所定のパケット処理部が転送要求FWDを受入れることができる。つまり、所定のパケット処理部が転送要求FWDを受入れると、一旦、所定パケット処理部よりも優先順位が下位のパケット処理部は転送要求受け入れが禁止されて、要求受理不可能状態に設定される。そして、所定パケット処理部が転送要求を受け入れた後に対応のパイプラインレジスタがデータパケットPAをラッチするために、所定パケット処理部のデータ転送許可状態は解除されて、所定パケット処理部よりも優先順位が下位のパケット処理部は転送要求受理不可能状態が解除されて、次の転送要求を受け入れ可能な状態(転送許可状態)に復帰する。
【0089】
このように、所定パケット処理部がデータパケットPAを受入れてデータ処理中であっても、空検出/分岐部7によりデータ転送許可状態にある他のパケット処理部が存在していることが検知されると、他のパケット処理部に対して次のデータパケットPAを転送できる。その結果、所定パケット処理部における処理時間が長くても、次のデータパケットPAの処理は待機させられることなく(データパケットPAは滞留することなく)、複数のデータパケットPAを複数のパケット処理部で並列に処理することが可能となる。
【0090】
なお、すべてのパケット処理部91A、92A、…、9nAがデータ処理中であるために次のデータパケットPAを受入れることができないときは、すなわちC素子1011、1012、…、101nの端子ROからレベル「L」のアクノリッジ信号ACKが出力されているときは、論理ゲート回路1252の出力信号はレベル「L」となる。該出力信号は論理ゲート回路1252および1251を介してC素子200の端子RIにアクノリッジ信号ACKとして入力される。その結果、パイプライン処理単位5の前段(直前)のパイプライン処理単位3Aに対して次のデータパケットPAをパイプライン処理単位5に転送するのを禁止できる。
【0091】
パケット処理部91A、92A、…、9nAのデータ処理部1131、1132、…、113nのそれぞれでデータパケットPAを処理した結果データ(データパケットPA)は、演算結果合流部280の端子群D1、D2、…、Dnに出力される。演算結果合流部280は、与えられる演算結果データを入力して、入力順に従い端子群Qを介してパイプラインレジスタ230の端子群DCに出力する。パイプラインレジスタ230は入力するデータパケットPAの演算結果を、端子CKに対応のC素子10(n+1)0からパルスを入力したことに応答して、端子群Qから出力する。なお、図3の端子群204から入力するデータパケットPAはここでは54ビット長を有し、パイプラインレジスタ230の端子群Qおよび端子群207から出力されるデータパケットPAは108ビット長を有するとしているが、ビット長はこれらに限定されず、任意であってよい。
【0092】
以上のようにパイプライン処理単位5に連続してデータパケットPAが入力しながら、あるパケット処理部であるデータパケットPAについてのデータ処理に長時間を要しても、そのデータ処理の期間に別のパケット処理部で別のデータパケットPAをデータ処理できる。その結果、データパケットPAについてデータ処理の並列性を維持できるとともに、データパケットPAが滞留するのを回避できて高いスループットを得ることができる。なお、ここではパイプライン処理単位5について説明したが、パイプライン接続されたパイプライン処理単位3A、3Bおよび5の少なくとも1つが図5と同様な構成を有して、同様な効果を奏するようにしてもよい。
【0093】
このように本実施の形態では、データ駆動型プロセッサ1において、より細分化された処理単位に分割が困難かつ他の処理要素に比較して、相対的に長い処理時間を必要とする処理要素が存在する場合であっても、局所的なデータパケットPAの滞留、処理時間の増大、スループットの低下を効果的に解消することができ、データ駆動型プロセッサ1において高速処理が可能となる。
【0094】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0095】
【発明の効果】
この発明によれば、前段のパイプライン処理単位から当該パイプライン処理単位に順次入力されるデータは、当該パイプライン処理単位においてデータ転送許可状態にあるデータ処理部が検出される限りは、該データ処理部において処理される。言換えると、データ転送許可状態にあるそれぞれのデータ処理部で並行してデータを処理できる。その結果、データが処理待ちとなって滞留するのを回避できる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るデータ駆動型プロセッサの主要部構成図である。
【図2】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における論理回路についての図面の構成を示す図である。
【図3】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における要部詳細を示す論理回路図である。
【図4】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における要部詳細を示す論理回路図である。
【図5】(A)と(B)はデータ駆動原理の説明図である。
【図6】従来のデータ駆動型プロセッサの主要部構成図である。
【図7】従来のデータ駆動型プロセッサの部分構成図である。
【図8】自己タイミング型データ転送処理機構を示す図である。
【図9】C素子の内部回路構成を示す図である。
【図10】C素子の動作を示すタイミングチャートである。
【図11】従来のパイプライン処理単位の構成を示す図である。
【図12】従来のデータ駆動型プロセッサを示す図である。
【符号の説明】
1A,1B,1C データ駆動型プロセッサ、3A,3B,3C,5 パイプライン処理単位、7 空検出/分岐部、91A,92A,…,9nA パケット処理部、11 合流部、PA データパケット。
Claims (7)
- 複数のパイプライン処理単位が直列に配置されて構成される部分を備えて、前記複数パイプライン処理単位のうち少なくともひとつのパイプライン処理単位は、
前段の前記パイプライン処理単位から出力されたデータを受理して出力する入力部と、与えられる複数のデータを受理して合流させて出力する合流部と、前記入力部と前記合流部との間に並列に接続されて、かつデータ転送許可状態において、前記入力部から与えられたデータを受理して処理し処理結果データを前記合流部に与える複数のデータ処理部とを有し、
前記入力部は、
前記複数データ処理部のうちに前記データ転送許可状態にあるデータ処理部が存在することを検出したとき、前段の前記パイプライン処理単位から受理したデータを前記複数のデータ処理部に並行して与える検出部を含む、情報処理装置。 - 前記複数のデータ処理部それぞれには異なる優先順位が予め設定されており、
前記複数データ処理部において前記データ転送許可状態にある前記データ処理部が2つ以上存在するとき、前記2つ以上の前記データ処理部のうち前記優先順位が最も高い前記データ処理部が、前記入力部から与えられた前記データを受理できることを特徴とする、請求項1に記載の情報処理装置。 - 前記検出部は、前段の前記パイプライン処理単位からデータを受理するとき、データ転送要求を前記複数のデータ処理部に並行して出力し、応じてアクノリッジ信号を受信する要求部を含み、
前記複数のデータ処理部それぞれは、前記データ転送要求を受理できたとき、応じて前記アクノリッジ信号を前記要求部に送信する要求受理部を含み、
前記検出部は、前記要求部により前記アクノリッジ信号が受信されたときに、前記複数データ処理部のうちに前記データ転送許可状態にある前記データ処理部が存在することを検出することを特徴とする、請求項1または2に記載の情報処理装置。 - 前記優先順位が最も高い前記データ処理部から前記アクノリッジ信号が送信されることを特徴とする、請求項3に記載の情報処理装置。
- 前記2つ以上の前記データ処理部のうち前記優先順位が最も高い前記データ処理部を除く1つ以上の前記データ処理部の前記要求受理部は、前記データ転送要求を受理するのが不可能な要求受理不可能状態に設定されることを特徴とする、請求項3または4に記載の情報処理装置。
- 前記複数のデータ処理部すべてが前記データ転送許可状態でないときは、前記入力部は前段の前記パイプライン処理単位に対して当該パイプライン処理単位へのデータ転送を禁止することを特徴とする、請求項1から請求項5のいずれか1項に記載の情報処理装置。
- 前記データ転送許可状態にある前記データ処理部の前記要求受理部が前記アクノリッジ信号を送信したことに応じて、前記優先順位が下位の前記データ処理部は前記要求受理不可能状態が解除されることを特徴とする、請求項5または6に記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002321637A JP2004157684A (ja) | 2002-11-05 | 2002-11-05 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002321637A JP2004157684A (ja) | 2002-11-05 | 2002-11-05 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004157684A true JP2004157684A (ja) | 2004-06-03 |
Family
ID=32802118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002321637A Pending JP2004157684A (ja) | 2002-11-05 | 2002-11-05 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004157684A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008242895A (ja) * | 2007-03-28 | 2008-10-09 | Nodc:Kk | ツリー型分流路及び合流路を備えたデータ駆動型処理装置用通信路装置及びデータ駆動型処理装置用パケット転送方式 |
-
2002
- 2002-11-05 JP JP2002321637A patent/JP2004157684A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008242895A (ja) * | 2007-03-28 | 2008-10-09 | Nodc:Kk | ツリー型分流路及び合流路を備えたデータ駆動型処理装置用通信路装置及びデータ駆動型処理装置用パケット転送方式 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6850092B2 (en) | Low latency FIFO circuits for mixed asynchronous and synchronous systems | |
US6590424B2 (en) | High-throughput asynchronous dynamic pipelines | |
JP3869726B2 (ja) | 大容量非同期パイプライン処理の回路および方法 | |
US8766667B2 (en) | Asynchronous digital circuits including arbitration and routing primatives for asynchronous and mixed-timing networks | |
JP2011170868A (ja) | 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法 | |
US7971038B2 (en) | Asynchronous ripple pipeline | |
JP4331617B2 (ja) | 決定的または調停された制御による非同期クロスバー | |
US20040151209A1 (en) | Asynchronous system-on-a-chip interconnect | |
JP2003344506A (ja) | テスト回路を有する自己同期型論理回路および自己同期型論理回路のテスト方法 | |
Brej et al. | Early output logic using anti-tokens | |
US6823443B2 (en) | Data driven type apparatus and method with router operating at a different transfer rate than system to attain higher throughput | |
US11294687B2 (en) | Data bus with multi-input pipeline | |
JPH10508132A (ja) | 非同期に制御されるパイプラインを具えるデータ処理システム | |
Felicijan et al. | An asynchronous low latency arbiter for quality of service (QoS) applications | |
JP2004157684A (ja) | 情報処理装置 | |
US7096375B2 (en) | Data transfer circuit between different clock regions | |
US7995618B1 (en) | System and a method of transmitting data from a first device to a second device | |
US20100315886A1 (en) | Data transfer apparatus, and method, and semiconductor circuit | |
JP2002141922A (ja) | ループ型バスシステム | |
WO2000004664A1 (en) | Node transmission allocation in sci switching networks | |
Komatsu et al. | Interacting self-timed pipelines and elementary coupling control modules | |
US8677103B1 (en) | Asynchronous pipelined data path with data transition | |
US9928202B2 (en) | Time-division multiplexing data bus | |
JPH1173389A (ja) | データ伝送路 | |
EP2515443A1 (en) | Data serializer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20050615 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080606 |
|
A131 | Notification of reasons for refusal |
Effective date: 20080610 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Effective date: 20081014 Free format text: JAPANESE INTERMEDIATE CODE: A02 |