回路の大規模化とプロセスの微細化による配線に係る抵抗,配線間容量,配線長の増大に伴い回路の遅延に対する配線の影響が大きくなってきている。クロック同期型の回路(たとえば、クロック同期式のノイマン型プロセッサ)においては、回路全体にクロックを等遅延で分配することが肝要であるが、配線による遅延量の増大に伴い、クロック遅延のスキュー(ばらつき)を抑えたクロック分配が困難になってきている。このスキューの増大によりクロック同期型回路の動作周波数の向上と、回路を正しいタイミングで動作するようにレイアウトすること(レイアウトのタイミング収束という)とが困難になってきている。
このため、回路全体にクロックを等遅延で分配する必要の無い自己同期型転送制御機能を有するデータ駆動型プロセッサが検討されている。データ駆動型プロセッサでは、並列処理を可能とするために複数段のパイプラインが順次に接続されてなるパイプライン列を有する。各段のパイプライン内のレジスタは各段のパイプライン毎に個別に設けられた自己同期型転送制御回路から出力されるクロックで駆動される。隣接する段のパイプラインの自己同期型転送制御回路どうしは局所的に信号のハンドシェイクを行ないながら複数段に接続されたパイプラインを順にクロックが伝送される。データ駆動型プロセッサでは、制御情報とデータを含むパケットが、このクロックに従い各段のパイプラインのレジスタを経由して伝送されながら、パケット内のデータはパケット内の制御情報に従って処理されていく。等遅延でのクロック分配が必要な範囲は各自己同期型転送制御回路の出力クロックにより駆動されるパイプラインのレジスタ内に局所化されるため、回路の大規模化およびプロセスの微細化に伴うクロックスキュー増大を避けることができる。その結果、動作周波数の向上とレイアウトのタイミング収束が容易になる。
このような自己同期型転送制御機能を有するデータ駆動プロセッサの一例が特許文献1に示されてる。また、自己同期型転送制御機能を有するデータ駆動プロセッサがプロセッサ外部のデバイス、例えばRAM(Random Access Memory)、ROM(Read Only Memory)、CPU(Central Processing Unit)などと信号をやり取りするために、該プロセッサに設けられる従来の信号生成取込み回路の一構成例を図14に示す。
図14を参照して従来の信号生成取込み回路1005はパイプラインP1とP2、タイミング調整用の遅延素子605、ハンドシェイク信号およびパケット情報PDに基づき出力618を生成して送出する組合せ回路からなる信号生成回路606、パケット情報PDに基づき信号入力617の取込みを行なうかどうかを判断して選択信号630を生成して出力する組合せ回路からなる出力選択回路607、および出力選択回路607から出力された選択信号630に基づいて、与えられるパケット情報PQ1(パケット情報PQまたはDの全体または一部の情報)と信号入力617とのうちの一方を選択的に入力して出力するセレクタ608を備える。出力618はIO制御出力またはそれ以外の信号出力を示す。パイプラインP1は自己同期型転送制御回路(以下、C素子という)601とレジスタ603とを対応付けて含み、パイプライン2はC素子602とレジスタ604とを対応付けて含む。パケット情報は図14の左側から右側へ転送される。
さらに信号生成取込み回路1005は、パケット情報PDを信号生成取込み回路1005に転送する元のパイプライン(以下、前段パイプラインという。図14においてパイプラインP1の左側の図示されないパイプライン)からのハンドシェイク要求/完了を信号CIの2状態で入力する端子609、端子609からのハンドシェイク要求の受領/許可を信号ROの2状態で出力する端子610、パケット情報PQを信号生成取込み回路1005から転送する先のパイプライン(以下、次段パイプラインという。図14においてパイプラインP2の右側の図示されないパイプライン)へのハンドシェイク要求/完了を信号COの2状態で出力する端子611、端子611から出力したハンドシェイク要求に対する受領/許可を次段パイプラインから信号RIの2状態で入力する端子612、信号生成取込み回路1005を初期状態にリセットするための信号MRBを入力するための端子613、前段パイプラインから転送されたパケット情報PDを入力するための端子614、、次段パイプラインへパケット情報PQを出力するための端子615および遅延素子605の遅延値を指定する信号DLYを入力するための端子616を備える。以降、本説明では便宜的に信号CIとCOそれぞれの2状態を要求=0/完了=1と割付け、信号RIとROそれぞれの2状態を受領=0/許可=1と割付けた場合の回路例を示す。またパケット情報PD、PQおよびQ1のそれぞれは、パイプライン列を転送される過程で処理されるデータと該データの処理を制御するための制御情報とを含む。
端子614、端子615および端子616ならびに信号入力617のための図示の無い端子および出力618のための図示の無い端子はバスの端子となっており、そのバス幅は任意でありシステムの要求に依存する。図14の信号生成取込み回路1005のデータ駆動プロセッサPR1への組込み例を図15に示す。図15のデータ駆動型プロセッサPR1では説明を簡単にするためにパイプラインを介してデータ転送しながら動作する他の要素(演算部、プログラム記憶部、発火制御部など)の図示は省略されている。
図15においてデータ駆動プロセッサPR1はパイプラインP0およびP3、信号生成取込み回路1005、I/Oバッファ1006、および端子1011〜1017を備える。端子1011〜1017は図14の信号生成取込み回路1005で説明した端子609〜615と同様な機能を有する。データ駆動プロセッサPR1は外部バス1010を介してRAM/ROM/CPUなどの各種デバイス1007、1008および1009を接続する。パイプラインP0はC素子1001とレジスタ1003とを対応付けて有し、パイプラインP3はC素子1002とレジスタ1004とを対応付けて有する。
図15において信号生成取込み回路1005はパイプラインP0とP3間に挿入されパイプラインを伝播して来るパケット情報PDに従って、I/Oバッファ1006と外部バス1010を介して、RAM/ROM/CPU等の各種デバイス1007〜1009からの信号入力617を取込み、または信号を生成して信号出力618として各種デバイス1007〜1009に送出する。
図14のC素子(自己同期型転送制御回路601、602)及び図15のC素子(自己同期型転送制御回路1001、1002)の内部構成を図16に示す。図16においてC素子は、端子801〜806、フリップフロップ807および808、論理回路809ならびに遅延素子810を備える。端子801〜805は図6の端子609〜613と同様な機能を有する。
端子806は前段パイプラインからの端子801を介したハンドシェイク完了の信号CIと次段パイプラインからの端子804を介してハンドシェイク許可の信号RIとを受けて当段パイプラインの対応のレジスタに端子806を介してクロックCPを供給する。フリップフロップ807は前段パイプラインから端子801を介して入力した信号CIが示すハンドシェイク要求の受付状態を保持し、フリップフロップ808は端子803を介して出力される信号COが示す次段パイプラインへのハンドシェイク要求の送出状態を保持する。論理回路809は信号CIの入力と、信号RIの入力と、フリップフロップ807およびXフリップフロップ808との間で同期を取る。遅延素子810はフリップフロップ808の出力を入力し、これを遅延させて信号COとして端子803に出力する。
ここで図16のC素子(自己同期型転送制御回路)の動作を図17のタイミングチャートで説明する。
図17のハンドシェイク許可状態901でC素子は、前段パイプラインから出力された信号CIが示すハンドシェイク要求902を端子801を介して受けると、フリップフロップ807の状態が変わり端子802を介して前段パイプラインに対して信号ROが示すハンドシェイク受領903を出力する。これを受けて前段パイプラインから一定時間後に出力された信号CIが示すハンドシェイク完了904を端子801を介して受けると、論理回路809でハンドシェイク完了且つ次段パイプラインがハンドシェイク許可状態905であることが確認され、応じてフリップフロップ807および808の状態が変わる。これにより前段パイプラインに対して信号ROのハンドシェイク許可906が出力されると共に端子806からクロックCPの立上がりエッジ907が出力される。該C素子に対応のレジスタはクロックCPの立上がりエッジ907に応答して前段パイプラインから与えられるパケットの情報を入力して保持すると同時に次段パイプラインに向けて出力される。ここまでで前段パイプラインと当段パイプラインとの間でのハンドシェイクが一通り完了する。
さらに遅延素子810により一定時間後に次段パイプラインに信号ROのハンドシェイク要求908が端子803を介して出力される。これを受けて次段パイプラインから出力されたハンドシェイク受領909を信号RIとして端子804から受けると、フリップフロップ808の状態が変わる。これにより端子806からクロックCPの立下がりエッジ910が出力される。さらに遅延素子810により一定時間後に次段パイプラインにハンドシェイク完了911が端子803を介して信号COとして出力される。これを受けて次段パイプラインから出力された信号RIのハンドシェイク許可912を端子804から受ける。ここまでで当段パイプラインと次段パイプラインとの間でのハンドシェイクが一通り完了する。
以上のような動作で前段パイプラインから当段パイプライン、そして当段パイプラインから次段パイプラインへとクロックが伝播されるとともにデータが転送されて行く。
ここで図14の信号生成取込み回路の動作を図18のタイミングチャートで説明する。図18のタイミングチャートの信号と図14の信号とにおいて同一のものには同じ符号が当てられる。前段パイプラインからのハンドシェイク要求により前段パイプラインとC素子601の間でハンドシェイクが行なわれ(状態701を参照)て、C素子601からのクロックCP1の出力(状態702を参照)によりC素子601に対応のレジスタ603にパケット情報PDが入力されて保持され、パケット情報Q1として出力される(状態703を参照)。これを受けて信号生成回路606から出力618の一部が送出される(状態704を参照)。続いてC素子601と602間で信号C1〜C3および信号Rによるハンドシェイクが行なわれて(状態705を参照)、遅延素子605で調整されたハンドシェイク要求/完了信号C2の変化を受けて、信号生成回路606から出力618の残り部分が送出される(状態706を参照)。出力618のIO制御出力と信号出力とは同タイミングで変化する。C素子601と602間でのハンドシェイク完了を受けて、C素子602からクロックCP2が出力(状態707を参照)されて、レジスタ604はレジスタ603に保持されたパケット情報の一部Q1とセレクタ608の出力情報とを入力して保持する(状態708を参照)。セレクタ608は、該パケット情報の一部Q1に従う出力選択回路607による判断に基づき、パケット情報の残りか信号入力617のいずれかを選択的に入力してレジスタ604に出力する。
最後にC素子602から次段パイプラインに対してハンドシェイク要求が出力されC素子602と次段パイプラインとの間でハンドシェイクが行なわれる(状態709を参照)。以上のような動作で前段パイプラインから転送されたパケット情報PDに応じて、信号生成(出力618)と信号取込み(信号入力617)が行なわれる。
特開2001−282765号公報
このように従来の構成では遅延素子605の遅延量を変更させることで、信号生成および取込みについて多少のタイミング調整が可能である。けれども、信号を生成するまたは信号を取込むという動作の順序を示すシーケンス自体はパイプラインのレジスタの内容と参照するハンドシェイク信号との変化タイミングに依存し、これらは回路構成上固定であるため、回路構成を変更しない限りシーケンス自体を自由に変えることはできなかった。
このため、例えばデータ駆動型プロセッサから外部デバイスのRAMをアクセスするための信号生成取込み回路では、遅延素子605の遅延量を変更させることでアクセスのタイミングの微調整程度は可能であったものの、データ駆動型プロセッサからのアクセスシーケンスがRAMのそれとは異なる他の種類のデバイスにRAMと同一の信号生成取込み回路を流用することはできなかった。そのため、ROMをアクセスするための信号生成取込み回路、CPUをアクセスするための信号生成取込み回路といった具合に、データ駆動型プロセッサが信号生成(出力618)と取込み(信号入力617)の対象とするデバイス毎に信号生成取込み回路を用意する必要があった。このように信号生成取込み回路の汎用的な利用ができないために、アクセス対象のデバイスの種類を増やすと回路規模が増大するといった問題があった。
それゆえにこの発明の目的は、自己同期型のデータ転送を制御しながら、それぞれが異なるアクセスシーケンスを有するデバイスをアクセスできるデータ転送制御装置および該データ転送制御装置を有するデータ駆動型プロセッサを提供することである。
この発明のある局面に従うデータ転送制御装置は、データ転送の許可または禁止を指示する指示信号に基づいて、前段部から与えられる前記データ転送のための要求パルスを次段部に転送する装置である。
このデータ転送制御装置は、第1および第2自己同期型転送制御回路、要求データレジスタ、与えられる情報に基づき消去指示信号を生成して第2自己同期型転送制御回路に出力する消去指示回路および入力レジスタを備える。
第1自己同期型転送制御回路は、前段部から要求パルスを入力して、与えられる個数データに基づいて複製して、複製して得られた要求パルスを順次に出力する。
要求データレジスタは、第1自己同期型転送制御回路が要求パルスを入力する毎に、転送が要求される要求データ前段部から入力して保持する。
第2自己同期型転送制御回路は、与えられる消去指示信号で示される消去期間を除く期間では、第1自己同期型転送制御回路から出力される要求パルスを受ける毎に、受けた要求パルスを次段部に出力する。一方、消去期間では第1自己同期型転送制御回路から出力される要求パルスを受ける毎に、受けた要求パルスを次段部に出力するのを抑制する。
入力レジスタは第2自己同期型転送制御回路が要求パルスを受ける毎に、当該データ転送制御装置の外部からデータを入力して保持する。第2自己同期型転送制御回路が要求パルスを次段部に出力するときには、入力レジスタの内容は要求データとして次段部に出力される。
したがって、前段部から次段部へのデータ転送時には、第1自己同期型転送制御回路が前段部から要求パルスを入力してから個数データに基づき複写した複数の要求パルスを出力する間において、消去指示信号で示される消去期間でなくなったときには、第2自己同期型転送制御回路は、そのとき入力レジスタに保持されている外部からの入力データを次段部に要求データとして転送する。消去指示回路は与えられる情報に基づき消去指示信号を生成するから、外部からの入力データを次段部に転送するタイミングは消去指示回路に与える情報により任意に調整できる。
それゆえに、デバイス毎にデータ転送制御装置からのアクセスシーケンスが異なるとしても、各デバイスからの入力データを次段部に自己同期型でデータ転送するタイミングを、個数データまたは消去指示回路に与える情報を用いてデバイス毎のアクセスシーケンスの相違に従い決定できる。
したがって、同一のデータ転送制御装置をアクセスシーケンスが異なる複数デバイス間で共用することができる。
好ましくは、前段部から入力する要求データに基づいて個数データを生成し、第1自己同期型転送制御回路に出力する個数データ生成部をさらに備える。
したがって、上述のようにデバイス毎に異なるアクセスシーケンスを相違を吸収するために用いられる個数データは、前段部から転送されて入力した要求データに基づいて決定することができる。
好ましくは、前段部から要求パルスが与えられたとき第1自己同期型転送制御回路から要求パルスが順次に出力される毎にカウントしてカウント値を出力する計数回路をさらに備える。
したがって、計数回路の出力するカウント値により、第1自己同期転送制御回路から出力される要求パルスは何個目に複製されたものであるかを示すことが出来る。
好ましくは、消去指示回路は、要求データレジスタに保持された要求データと計数回路から出力されるカウント値とに基づいて、消去指示信号を生成する。
したがって、消去指示信号が示す外部からの入力データの次段部への転送のタイミングは、前段部から入力した要求データと計数回路から出力されるカウント値とに基づき、第2自己同期型転送制御回路が要求パルスを受けるタイミングに同期するものであって、要求データに基づいて、そのタイミングを決定できる。
好ましくは、消去指示回路は、要求データレジスタに保持された要求データと計数回路から出力されるカウント値と外部から与えられる消去パラメータとに基づいて、消去指示信号を生成する。
したがって、消去指示信号が示す外部からの入力データの次段部への転送のタイミングは、前段部から入力した要求データと計数回路から出力されるカウント値とに基づき、第2自己同期型転送制御回路が要求パルスを受けるタイミングに同期するものであって、要求データとデータ転送制御装置の外部から与える消去パラメータにより、そのタイミングを任意に調整できる。
好ましくは、第2自己同期型転送制御回路が要求パルスを受ける毎に、ロード信号に基づいて、外部に出力すべき出力データを入力して保持し外部に出力する外部レジスタと、出力データとロード信号とを生成して外部レジスタに出力する信号生成部とをさらに備える。
そして、ロード信号は、外部レジスタに保持されている内容を出力データを用いて更新する否かを外部レジスタに対して指示する。
したがって、データ転送制御装置を介して前段部から次段部へ要求データを転送するときには、データ転送制御装置の外部のデバイスなどに出力すべきデータを生成して、生成したデータを外部デバイスなどに対して出力できる。
好ましくは、信号生成部は、要求データレジスタに保持される要求データと計数回路の出力するカウント値とに基づいて、出力データとロード信号とを生成して外部レジスタに出力する。
したがって、外部デバイスに与えるデータと出力のタイミングは前段部から入力した要求データと計数回路の出力するカウント値が示すタイミング、すなわち第2自己同期型転送制御回路が要求パルスを受けるタイミングに同期するタイミングに従い更新されて出力される。
好ましくは、信号生成部は、要求データレジスタに保持される要求データと計数回路の出力するカウント値と外部から与えられるロードパラメータとに基づいて、出力データとロード信号とを生成して外部レジスタに出力する。
したがって、外部デバイスに与えるデータと出力のタイミングは前段部から入力した要求データと計数回路の出力するカウント値と、すなわち第2自己同期型転送制御回路が要求パルスを受けるタイミングに同期するタイミングと、データ転送制御装置の外部から与えるロードパラメータとを用いて決定できる。
好ましくは、第2自己同期型転送制御回路が要求パルスを受ける毎に、要求データレジスタに保持された要求データを入力して保持する保持レジスタと、与えられる選択信号に基づいて、保持レジスタの内容または入力レジスタの内容を出力するためのセレクタと、選択信号を生成してセレクタに出力する選択信号生成回路とをさらに備える。
したがって、次段部に転送される要求データとして、前段部から入力して保持された要求データまたは外部から入力したデータの両方または一方を選択信号に基づいて選択して、次段部に要求パルスに従い転送できる。
好ましくは、選択信号生成回路は、保持レジスタに保持された要求データに基づき、選択信号を生成してセレクタに出力する。
したがって、選択信号は前段部から入力した要求データに基づき決定できる。
好ましくは、選択信号生成回路は、保持レジスタで保持された要求データおよび計数回路からのカウント値に基づき、選択信号を生成してセレクタに出力する。
したがって、選択信号と選択のタイミングは、前段部から入力した要求データとカウント値が示すタイミング、すなわち第2自己同期型転送制御回路が要求パルスを受けるタイミングに同期するタイミングとに基づき決定される。
好ましくは、選択信号生成回路は、保持レジスタに保持された要求データ、計数回路からのカウント値および外部から与えられる選択パラメータに基づき、選択信号を生成してセレクタに出力する。
したがって、選択信号と選択のタイミングは、前段部から入力した要求データとカウント値が示すタイミングと、データ転送制御装置の外部から与える選択パラメータとに基づき決定できる。
この発明の他の局面に従うデータ転送制御装置は、データ転送の許可または禁止を指示する指示信号に基づいて前段部から与えられるデータ転送のための要求パルスを受取る。
このデータ転送制御装置は、第1および第2自己同期型転送制御回路、要求データレジスタ、外部レジスタおよび信号生成部を備える。
第1自己同期型転送制御回路は、前段部から要求パルスを入力して、与えられる個数データに基づいて複製して、複製して得られた要求パルスを順次に出力する。
要求データレジスタは、第1自己同期型転送制御回路が要求パルスを入力する毎に、前段部から転送が要求される要求データを入力して保持する。
第2自己同期型転送制御回路は、第1自己同期型転送制御回路から出力される要求パルスを受取る。
外部レジスタは、第2自己同期型転送制御回路が要求パルスを受ける毎に、外部に出力すべき出力データをロード信号に基づいて入力して保持し外部に出力する。
信号生成部は、出力データとロード信号とを生成して外部レジスタに出力する。このロード信号は、外部レジスタに対して、保持している内容を出力データを用いて更新するか否かを指示する。
したがって、前段部から次段部に要求パルスとともにデータを受取るとき、個数データに基づき複製された複数の要求パルスが出力される期間において、前段部から入力した要求データに基づき出力データが生成されて外部デバイスに出力される。この出力データは要求データに基づくタイミングで更新される。
それゆえに、外部デバイス毎にデータ転送制御装置からのアクセスシーケンスが異なる、すなわち出力データの更新タイミングが異なるとしても、要求データに従うタイミングで更新されたデータを出力できる。したがって、要求データにより各デバイスに対して適当なタイミングでデータを出力できる。その結果、同一のデータ転送制御装置をアクセスシーケンスが異なる複数デバイス間で共用することができる。
好ましくは、データ転送制御装置は前段部から要求パルスが与えられたとき第1自己同期型転送制御回路から要求パルスが順次に出力される毎にカウントしてカウント値を出力する計数回路をさらに備える。そして、信号生成部は、要求データレジスタに保持される要求データと計数回路から出力されるカウント値とに基づいて、出力データとロード信号とを生成して外部レジスタに出力する。
したがって、出力データの値および外部に与えられる出力データの更新タイミングを、前段部から入力した要求データと、カウント値すなわち第2自己同期型転送制御回路が第1自己同期型転送制御回路から複製された要求パルスを順次に受けるタイミングとに基づいて決定できる。
好ましくは、データ転送制御装置は前段部から要求パルスが与えられたとき第1自己同期型転送制御回路から要求パルスが順次に出力される毎にカウントしてカウント値を出力する計数回路をさらに備える。そして信号生成部は、要求データレジスタに保持される要求データと計数回路から出力されるカウント値と外部から与えられるロードパラメータとに基づいて、出力データとロード信号とを生成して外部レジスタに出力する。
したがって、出力データの値および外部に与えられる出力データの更新タイミングを、前段部から入力した要求データと、カウント値すなわち第2自己同期型転送制御回路が第1自己同期型転送制御回路から複製された要求パルスを順次に受けるタイミングと、データ転送制御装置の外部から与える任意のロードパラメータに基づいて決定できる。
この発明のさらに他の局面に従うデータ駆動型プロセッサは、複数段にパイプラインを接続して構成されるパイプライン列と、パイプライン列において任意のパイプライン間に設けられて、データ転送の許可または禁止を指示する指示信号に基づいて、前段パイプラインから与えられるデータ転送のための要求パルスを次段パイプラインに転送するデータ転送制御装置とを備える。
データ転送制御装置は、第1および第2自己同期型転送制御回路、要求データレジスタ、与えられる情報に基づき消去指示信号を生成して第2自己同期型転送制御回路に出力する消去指示回路および入力レジスタを有する。
第1自己同期型転送制御回路は、前段パイプラインから要求パルスを入力して、与えられる個数データに基づいて複製して、複製して得られた要求パルスを順次に出力する。
要求データレジスタは、第1自己同期型転送制御回路が要求パルスを入力する毎に、データ駆動型処理のために転送が要求される要求データを前段パイプラインから入力して保持する。
第2自己同期型転送制御回路は、与えられる消去指示信号で示される消去期間を除く期間では、第1自己同期型転送制御回路から出力される要求パルスを受ける毎に、受けた要求パルスを次段部に出力し、消去期間では第1自己同期型転送制御回路から出力される要求パルスを受ける毎に、受けた要求パルスを次段パイプラインに出力するのを抑制する。
入力レジスタは、第2自己同期型転送制御回路が要求パルスを受ける毎に、データ駆動型プロセッサの外部からデータを入力して保持する。
そして、第2自己同期型転送制御回路が要求パルスを次段パイプラインに出力するときに、入力レジスタの内容を要求データとして次段パイプラインに出力する。
したがって、前段パイプラインから次段パイプラインに要求パルスを転送しながらデータ駆動型に従い処理される要求データを転送するとき、第1自己同期型転送制御回路から個数データに基づき複写された複数の要求パルスが出力されて第2自己同期型転送制御回路で受ける間において、消去指示信号で示される消去期間でなくなったときには、そのとき入力レジスタに保持されている外部からの入力データは要求データとして次段部に転送される。消去指示回路は消去指示信号を、与えられる情報に基づき生成するから、入力レジスタに保持されている入力データを次段部に転送するタイミングは消去指示回路に与える情報により任意に調整できる。
それゆえに、個数データまたは消去指示回路に与える情報を用いてデバイス毎のアクセスシーケンスの相違を吸収して、各デバイスからの入力データをデータ駆動型に従い処理するために次段部に自己同期型でデータ転送することができる。
したがって、同一のデータ転送制御装置をアクセスシーケンスが異なる複数デバイス間で共用することができる。この結果、データ駆動型プロセッサの構成が大規模化するのが抑制される。
この発明のさらに他の局面に従うデータ駆動型プロセッサは、複数段にパイプラインを接続して構成されるパイプライン列と、パイプライン列の末端に接続されるデータ転送制御装置とを備える。
データ転送制御装置は、第1および第2自己同期型転送制御回路、要求データレジスタ、外部レジスタおよび信号生成部を備える。
第1自己同期型転送制御回路は、処理のためのデータの転送の許可または禁止を指示する指示信号に基づいて、前段パイプラインから与えられるデータ転送のための要求パルスを入力して、与えられる個数データに基づいて複製して、複製して得られた前記要求パルスを順次に出力する。
要求データレジスタは、第1自己同期型転送制御回路が要求パルスを入力する毎に、前段パイプラインから転送が要求される要求データを入力して保持する。
第2自己同期型転送制御回路、第1自己同期型転送制御回路から出力される要求パルスを受ける毎に、受けた前記要求パルスを出力する。
外部レジスタは、第2自己同期型転送制御回路が要求パルスを受ける毎に、外部に出力すべき出力データをロード信号に基づいて入力して保持しデータ駆動型プロセッサの外部に出力する。
信号生成部は、出力データとロード信号とを生成して外部レジスタに出力する。このロード信号は、外部レジスタに対して、保持している内容を出力データを用いて更新する否かを指示する。
したがって、個数データに基づき複製された複数の要求パルスが出力される期間において、前段部から入力した要求データに基づき出力データを生成して外部デバイスに出力しており、この出力データは要求データに基づくタイミングで更新される。
それゆえに、外部デバイス毎にデータ駆動型プロセッサからのアクセスシーケンスが異なる、すなわち出力データの更新タイミングが異なるとしても、要求データを用いてデバイス毎のアクセスシーケンスの相違を吸収して、各デバイスに対して適当なタイミングで更新されたデータを出力できる。したがって、同一のデータ転送制御装置をアクセスシーケンスが異なる複数デバイス間で共用することができるから、複数種類のデバイスをアクセスするようなデータ駆動型プロセッサであっても、その構成の大規模化を抑制できる。
以下、この発明の各実施の形態について図面を参照して説明する。
(実施の形態1)
図1に実施の形態1に係る信号生成取込み回路100の構成を示す。信号生成取込み回路100は自己同期型のデータ転送制御回路はデータ転送の許可または禁止を示す転送許可信号ROまたはRIに基づいて前段のパイプライン(または前段のC素子)から与えられる信号CI(データ転送の要求パルス)を次段のパイプライン(または次段のC素子)に転送する。
図2に本実施の形態で用いられるパケットの構成が示される。図2を参照してパケット情報PDは、必要ステート数情報D1を格納するフィールドF1、ストローブ情報D2を格納するフィールドF2、ロード用情報D3を格納するフィールドF3、選択用情報D4を格納するフィールドF4およびその他情報D5を格納するフィールドF5含む。その他情報D5は命令情報、演算のためのデータ、次位の命令情報を特定するための行先情報などを含む。後述のパケット情報PQも図2と同様の構成を有する。
図1において信号生成取込み回路100は、コピー機能付きC素子(コピー機能付き自己同期型転送制御回路)101、消去機能付きC素子(消去機能付き自己同期転送制御回路)102、パケット情報PDを入力して一旦保持するためのレジスタ103、レジスタ103に保持されたパケット情報PDのうちの必要ステート数情報D1を参照するコピー数デコーダ104、シーケンスの状態を計数するためのステートカウンタ105、出力123として生成された信号を保持するためのロード機能付きレジスタ106、レジスタ107、信号入力124を信号生成取込み回路100の内部に取込むためのレジスタ108、レジスタ103に保持されたパケット情報PDのうちのストローブ用情報D2を参照するストローブデコーダ109、レジスタ103に保持されたパケット情報PDのうちのロード用情報D3を参照するロードデコーダ110、レジスタ107に一部分保持されたパケット情報PDのうちの選択用情報D4を参照する出力選択回路111、セレクタ112、端子113〜117、前段パイプラインからのパケット情報PDを入力する端子118、次段パイプラインへパケット情報PQを出力する端子119、ロードパラメータLDPを入力する端子120、ストローブパラメータSTPを入力する端子121および選択パラメータSLPを入力する端子122を備える。端子113〜117は図6の端子609〜613と同様の機能を有する。
図1の信号生成取込み回路100では、信号入力124の値(データ)を取込み、その値をパケット情報PQとして端子119を介して出力し、次段パイプラインに対してへハンドシェイク要求を送出することをストローブするという。
ロードパラメータLDP、ストローブパラメータSTPおよび選択パラメータSLPそれぞれは、ロードデコーダ110、ストローブデコーダ109および出力選択回路111それぞれの動作を外部から制御するためのパラメータである。
ストローブパラメータSTPは、例えば、ストローブデコーダ109に対してストローブ用情報D2の扱い方を指示する。ストローブパラメータSTPは、ストローブ用情報D2を用いるか否かの指示、およびストローブ用情報D2を用いない場合に代わりに使用するストローブ用情報自体を含む。
ロードパラメータLDPは、ロードデコーダ110に対してロード用情報D3の扱い方を指示する。ロードパラメータLDPは、ロード用情報D3を用いるか否かの指示、用いる場合でもロード用情報D3の全部を用いるか一部のみ用いるかの指示およびロード用情報D3を用いない場合には代わりに使用するロード用情報自体を含む。
選択パラメータSTPは、出力選択回路111に対して選択用情報D4の扱い方を指示する。選択パラメータSTPは、選択用情報D4を用いるか否かの指示、および選択用情報D4を用いない場合に代わりに使用する選択用情報自体を含む。
これら各パラメータ値の決定基準は、パケット情報PDに依らないアクセスシーケンスで信号入力124の取込みまたは出力123の送出を行いたい場合があるかどうか、そして、その場合に要求されるアクセスシーケンスに依存して決定される。
例えば、ストローブパラメータSTPは、どのタイミングで信号入力124を取込むのかにより決定される。また、ロードパラメータLDPであれば、出力が複数種類の信号を含む場合に、どのタイミングでどの種類の信号をどういった値(レベル)に設定するのかにより決定される。また、選択パラメータSLPであれば、信号入力124として取込んだ値を、出力すべきパケット情報PQに反映するのかどうかにより決定される。
カウンタ105はシーケンスのステートを計数する。ここではシーケンスのステートとは、シーケンス(信号を生成して出力123として送出するまたは信号入力124を取込む動作の順序)を区別するための各状態(ステート)を指す。この時、カウンタ105が出力するカウント値CNTは各状態を一意に特定するための番号を示す。
カウンタ105は、消去機能付きC素子102が出力するクロックCP2の立上がりエッジに応答してカウント動作してカウント値CNTを出力する。カウント値CNTの変化の仕方は、クロックCP2の立上がりエッジ毎に信号FEBに基づき決定する。信号FEBがレベルL(low)であれば初期状態の番号0(ステート0)に、信号FEBがレベルH(High)であれば次の状態の番号(前がステートNならステートN+1(ただし、Nは整数))に変わる。カウント値CNTはクロックCP2の立上がりエッジ毎に変わることから、カウント値CNTが示すステートの番号は論理的な信号変化順序の区別だけでなく、例えば、あるステートでの信号変化から数ステート後に次の信号変化をさせるなど、クロックCP2の立上がりエッジ間隔を基準にした期間の区別にも用いられる。
コピー数デコーダ104は必要ステート数情報D1を入力して、これをコピー機能付きC素子101が要求する形式に従いデコードし、デコード結果を示すデータ131をコピー機能付きC素子101に出力する。
カウンタ105のカウント値CNTは、ストローブデコーダ109、ロードデコーダ110および出力選択回路111に与えられる。
ストローブデコーダ109およびロードデコーダ110は、コピー機能付きC素子101の信号FEBとカウンタ105のカウント値CNTのペアにより、次のステート番号を取得する。具体的には、信号FEBがレベルLであれば次ステートはステート0、信号FEBがレベルHであれば次ステートはステートCNT+1というように取得する。ストローブデコーダ109は、取得した次ステート番号とストローブ用情報D2とストローブパラメータSTPに基づいてデコードして、デコード結果に基づき、次ステートが信号入力124をストローブすべきステートか否かを判断し、その判断結果を消去機能付きC素子102に消去指示EXBとして出力する。
ロードデコーダ110は、取得した次ステート番号とロード用情報D3とロードパラメータLDPに基づき、次ステートがロード機能付きレジスタ106に保持される情報の更新(情報の一部または全部の更新)すべきステートか否かを判断し、その判断結果をロード機能付きレジスタ106にロード信号133およびデータ信号132として出力する。ロード信号133は情報を更新すべきか否かをロード機能付きレジスタ106に対して指示し、データ信号132は更新に用いられる情報を示す。
コピー機能付きC素子101は、端子113を介して入力する信号CIが示すハンドシェイク要求パルスを、与えられるデコード結果データ131に基づいて、必要に応じてコピーして出力する。レジスタ107はレジスタ103に保持されて出力されるパケット情報PDの情報D1〜D5うち、当該信号生成取込み回路100をそのまま通過する(そのまま端子119に与えられる)情報を入力して保持する。
ストローブデコーダ109は、信号入力124を当該信号生成取込み回路100に取込むタイミングを示すストローブタイミングを、すなわちストローブのステートをストローブ用情報D2と前述のように取得した次ステート番号と端子121から入力するストローブパラメータSTPとに基づいて判断する。そして、判断されたストローブタイミング以外のタイミングにおいてはハンドシェイク要求パルスを該信号生成取込み回路100の外に出力しないように消去機能付きC素子102に対して消去指示EXBを出力する。ここで信号FEBは、コピー機能付きC素子101において同一のハンドシェイク要求(信号CI)を複数回コピーした結果出力される複数のハンドシェイク要求の信号Cのうち、1回目のコピーにより得られたハンドシェイク要求の信号Cが出力されていることを示す負論理のフラグ情報である。なお1回のコピーにより1個の信号Cが出力されると想定する。
出力選択回路111は、入力するカウント値CNTにより現在のステート番号が指示される。出力選択回路111は、指示される現在のステート番号と選択用情報D4と選択パラメータSLPとに基づいて、現ステートでレジスタ108に取込んで保持されている入力データ(信号入力124が示すデータ)とレジスタ107に保持された元のパケット情報PDの一部とのどちらを出力として選択するか判断して、判断結果を選択信号130としてセレクタ112に出力する。
セレクタ112は選択信号130に従って、レジスタ108に保持されるデータおよびレジスタ107に保持された元のパケット情報PDの一部のいずれかを選択的に入力して、端子119に出力する。このときレジスタ107からはクロックパルスCP2に応答して、そこに保持される情報が端子119に出力される。したがって、端子119からは、セレクタ112が出力する情報とレジスタ107が出力する情報とからなるパケット情報PQが、次段パイプラインに送出される。
図1の信号生成取込み回路100のデータ駆動プロセッサPRへの組込み例を図3に示す。その動作は図10と同様であるから説明は略す。
図1のコピー機能付きC素子101は前段パイプラインから与えられるコピー指示に従って信号CIが示すハンドシェイク要求を必要数分コピーして、信号Cが示すハンドシェイク要求を複数個、消去機能付きC素子102に出力する。そのための構成例の1つが特許文献1に示される。本実施の形態でも便宜的に該構成を用いる。
図4には本実施の形態に係るコピー機能付きC素子101の構成が示される。図4を参照してコピー機能付きC素子101は、C素子401と402、端子419〜428、コピー数デコーダ104から端子424、425および426を介して与えられる消去指示eXB、コピー指示CPYおよびハンドシェイク要求のコピー回数を指定するコピー数データNUMをそれぞれ入力して保持するレジスタ403、404および405、カウンタ406、レジスタ407、論理ゲート回路408〜416および418、およびフリップフロップ回路417を備える。消去指示eXB、コピー指示CPYおよびコピー数データNUMはデコード結果データ131により指示される。端子419と420は端子113と114に接続されて、端子423は端子117に接続されて、端子427はレジスタ103に接続され、端子428はストローブデコーダ109、ステートカウンタ105およびロードデコーダ110に接続され、端子421と422はC素子102に接続される。
端子424から与えられる消去指示eXB(負論理)がレベルLであれば、消去機能付きC素子102へのハンドシェイク要求の出力は抑制される(消去される)。消去指示EXBがレベルHで且つ端子425を介して与えられるコピー指示CPY(正論理)がレベルLであれば、消去機能付きC素子102へハンドシェイク要求が1つだけ出力される(コピーはされない)。
消去指示eXBがレベルHで且つコピー指示CPYがレベルHであれば、ハンドシェイク要求が端子426を介して与えられるコピー数データNUMに基づいてコピーされて、その結果、複数個のハンドシェイク要求が消去機能付きC素子102へ出力される(ハンドシェイク要求はコピーされる)。この場合には、(コピー数データNUMが示す値+2個)分のハンドシェィク要求が出力される。
カウンタ406はレジスタ405に保持されたコピー数データNUMが指示する値をカウントして、カウント終了後に出力ZからレベルHの信号を論理ゲート412および416に出力するが、それまでは出力ZからはレベルLの信号を出力する。レジスタ407ならびに論理ゲート415および416は、コピーが終了するまで前段パイプラインへのハンドシェイク許可を示す信号ROの出力を抑制するために、コピー中であることを示す状態を保持するように作用する。
論理ゲート408〜410はレジスタ403と404に保持された消去指示eXBとコピー指示CPYの組合せに従って、次のように作用する。まずC素子402にハンドシェイク要求の信号COを論理ゲート413を介して出力する場合(ハンドシェイク要求の消去で無くコピーの場合)か否か、C素子401からのハンドシェイク要求を次段に出力する場合(ハンドシェイク要求の消去で無い場合)かどうか、C素子401からのハンドシェイク要求を論理ゲート411を介してC素子401自身の受領信号(信号RI)としてフィードバックさせる場合(ハンドシェイク要求の消去の場合)か否かを制御する。
論理ゲート411は次段からのハンドシェイク許可の信号RR、C素子402からのハンドシェイク許可およびC素子401が出力するハンドシェイク要求のフィードバック信号を、C素子401へのハンドシェイク許可の信号RIとしてとりまとめる。
論理ゲート412および413は、カウンタ406の出力Zに従ってコピー動作中のC素子402のハンドシェイク要求出力(信号CO)を、C素子402自身へのハンドシェイク要求入力(信号CI)にフィードバックさせるように作用する。
論理ゲート414はC素子401および402のハンドシェイク要求出力(信号CO)を、消去機能付きC素子102へのハンドシェイク要求(信号C)としてとりまとめて端子421に出力する。
フリップフロップ回路417と論理ゲート418は、消去機能付きC素子102へ出力しているハンドシェイク要求(信号C)が1つ目であるかどうかを示す信号FEBを生成して端子428に与える。
図4のコピー機能付きC素子101の動作は図5のタイミングチャートに従う。このタイミングチャートは特許文献1に示されるものと同様なので、ここでは説明を省略する。
図1の消去機能付きC素子102は、前段パイプラインからの消去指示に従って、ハンドシェイク要求の次段パイプラインへの出力を抑制する機能を持つ。消去機能付きC素子102の構成を図6に示す。
図6を参照して消去機能付きC素子102は端子506〜512、C素子501、端子511を介して与えられる消去指示EXBを入力して保持するレジスタ502および論理ゲート503〜504を備える。レジスタ502に保持された消去指示EXBは論理ゲート503と504に与えられる。消去機能付きC素子102は、端子511から入力する負論理に従う消去指示EXBがレベルLであれば、次段パイプラインへのハンドシェイク要求(信号CO)の出力を抑制する(消去する)が、レベルHであれば、次段パイプラインへハンドシェイク要求を(1つ)出力する。
論理ゲート503と504は、与えられる消去指示EXBに従って、次段へハンドシェイク要求を出力する(消去で無い)か否か、C素子501からのハンドシェイク要求をC素子501自身への信号RIである受領信号としてフィードバックさせる(消去する)か否かを制御する。
論理ゲート505は次段パイプラインからのハンドシェイク許可を示す信号RIおよびC素子501のハンドシェイク要求の出力である信号COのフィードバックを、C素子501に対するハンドシェイク許可の信号RIとしてとりまとめて、C素子501に与える。
端子506〜510は、図14の端子609〜613と同様な機能を有する。
図7に従い図6の消去機能付きC素子102の動作を説明する。まず、消去動作の場合(消去指示EXBがレベルLの場合)について説明する。ハンドシェイク許可状態(状態0201を参照)でC素子501はコピー機能付きC素子101から出力された信号Cのハンドシェイク要求(状態0202を参照)を端子506から信号CIとして入力すると、ハンドシェイク受領として信号ROを端子507を介してコピー機能付きC素子101に信号RRとして与える(状態0203を参照)。
コピー機能付きC素子101は信号RRを入力すると、一定時間後にハンドシェイク完了を示す信号Cを出力する。信号Cは端子506を介してC素子501に信号CIとして与えられる(状態0204を参照)。
C素子501は信号CIを入力し且つ、次段パイプラインがハンドシェイク許可状態(0205を参照)であることを示す信号RIを入力するので、コピー機能付きC素子101に対して、ハンドシェイク許可状態(状態0206を参照)を示す信号RO(信号RR)を端子507を介して出力すると共にクロックCP(CP2)の立上がりエッジ(状態0207を参照)を端子512およびレジスタ502に出力する。レジスタ502は、このクロックCP(CP2)の立上りエッジが与えられたことに応じて、端子511から与えられている消去指示EXBのレベルL(状態0208を参照)を入力して保持する。この結果、レジスタ502の端子Qの出力信号がレベルLに確定する(状態0209を参照)となる。
さらに一定時間後、論理ゲート503はハンドシェイク要求であるC素子501の出力信号COの反転信号とレジスタ502の端子Qの信号とを入力する(状態0210と0211を参照)ので、論理ゲート503の出力する信号はレベルHである。この結果、ハンドシェイク要求の信号COは端子508を介して次段パイプラインへは出力されない(状態0212を参照)。このため、次段パイプラインからのハンドシェイク受領を示す信号RIは端子509に与えられない(状態0213を参照)。
けれども、レジスタ502の端子Qからの出力信号はレベルLであるために(状態0211を参照)、論理ゲート504と505を介してC素子501の出力するハンドシェイク要求(状態0210参照)がC素子501に対してハンドシェイク要求の受領(状態0214を参照)としてフィードバックされる。これによりC素子501からクロックCP(CP2)の立下がりエッジ(状態0215を参照)が出力される。
さらに一定時間後にC素子501からハンドシェイク完了の信号(状態0216を参照)が出力される。この信号は論理ゲート504と505を介してC素子501にハンドシェイク許可の信号(状態0217を参照)としてフィードバックされる。以上のような動作で、消去機能付きC素子102はコピー機能付きC素子101とハンドシェイクを行い、次段パイプラインへのハンドシェイク要求の送出を抑制(消去)する。
次に、ハンドシェイク要求を通常に転送する場合(消去指示EXBがレベルHである場合)の動作について説明する。
C素子501はコピー機能付きC素子101に端子507を介してハンドシェイク許可を示す信号RO(信号RR)を出力するとき(状態0218を参照)、コピー機能付きC素子101から出力されたハンドシェイク要求(状態0219を参照)を示す信号CI(信号C)を受けると、コピー機能付きC素子101に対してハンドシェイク受領(状態0220を参照)を示す信号RO(信号RR)を端子507を介し出力する。
コピー機能付きC素子101によりハンドシェイク受領の信号RO(信号RR)が受理されてから一定時間後に、C素子501はハンドシェイク完了(状態0221を参照)を信号CI(信号C)として入力して且つ、次段パイプラインから入力する信号RIに基づき次段パイプラインがハンドシェイク許可状態(状態0222を参照)であることを確認すると、コピー機能付きC素子101に対してハンドシェイク許可(状態0223)を示す信号RO(信号RR)を出力するとともに、クロックCP(CP2)の立上がりエッジ(状態0224を参照)を出力する。
レジスタ502は、このクロックCP(CP2)の立上りエッジを入力すると、与えられているレベルHの消去指示EXB(状態0225を参照)を入力して保持するので、レジスタ502の端子Qから出力される信号はレベルHに確定する(状態0226を参照)。
さらに一定時間後、C素子501からハンドシェイク要求(状態0227を参照)の信号が出力されて論理ゲート503に入力する。このときレジスタ502の端子Qから出力されて論理ゲート503に入力する信号はレベルHである(状態0228を参照)ために、論理ゲート503が出力する信号は端子508を介してハンドシェイク要求の信号CO(状態0229を参照)として次段パイプラインに与えられる。
次段パイプラインは端子508を介して与えられるハンドシェイク要求を入力するので、消去機能付きC素子102は端子509を介して次段パイプラインから、ハンドシェイク受領(状態0230を参照)を示す信号RIを入力する。入力した信号RIは論理ゲート505を介してC素子501にハンドシェイク受領(状態0231を参照)として与えられる。これによりC素子501からクロックCP(CP2)の立下がりエッジ(状態0232を参照)が出力される。さらにC素子501は一定時間後にハンドシェイク完了(状態0233を参照)の信号を論理ゲート503と504に出力する。このとき、レジスタ502からの出力信号はレベルHで(状態0228を参照)論理ゲート503に与えられるので、論理ゲート503はハンドシェイク完了を示す信号COを端子508を介し次段パイプラインに出力する(状態0234を参照)。
次段パイプラインは、端子508を介して与えられる信号COを入力すると、ハンドシェイク許可を示す信号RIを出力するので、消去機能付きC素子102は端子509を介して信号RIを入力する(状態0235を参照)。信号RIは論理ゲート505を介してC素子501にハンドシェイク受領(状態0236を参照)の信号として与えられる。
以上のような動作で、消去機能付きC素子102はコピー機能付きC素子101とハンドシェイクを行い、さらに次段パイプラインとハンドシェイクを行なうことができる。
図1の信号生成取込み回路100の動作を図8(A)〜(N)のタイミングチャートに従い説明する。タイミングチャートの各符号の信号は図1に示される同一符号の信号に対応する。ただし、出力123はタイミングチャートでは説明の便宜上、出力123に含まれる複数種類の信号、すなわちROMやRAMのメモリをアクセスする際の信号CEB(チップイネーブル信号)、信号REB(リードイネーブル信号)、信号WEB(ライトイネーブル信号)、信号ADDRESS(アドレス信号)および信号DATA(データ信号)ならびにこれらの出力を制御するIO制御信号CNを示す。
動作において、図示のない前段パイプラインからのハンドシェイク要求により前段パイプラインとコピー機能付きC素子101の間でハンドシェイクが行なわれると(状態201を参照)、コピー機能付きC素子101からクロックCP1がレジスタ103に出力される(状態202を参照)。レジスタ103はクロックCP1を入力すると、前段パイプラインから与えられるパケット情報PDを入力して保持する。これに並行してコピー数デコーダ104は、与えられる必要ステート数情報D1を入力して、入力した必要ステート数情報D1をコピー機能付きC素子101が要求する形式に従いデコードして、デコード結果データ131をコピー機能付きC素子101に出力する。デコード結果データ131は消去指示EXB、コピー指示CPYおよびコピー数データNUMを含む。ここでは、デコード結果データ131により例えばハンドシェイク要求を10個分コピーするように指示されていると想定する。
ここでは、“信号生成取込みに要求されるステート数”とは、信号生成と信号取込みというシーケンスを構成するために必要なステートの個数を指す。より具体的には消去機能付きC素子102が出力するクロックCP2の立上がりエッジどうしの間隔Tを基準にして、信号生成および信号取込みのシーケンスに必要な時間が該間隔Tの何個分に当たるかが要求されるステート数に対応する。この要求されるステート数は必要ステート数情報D1により指示される。
その後、コピー機能付きC素子101から消去機能付きC素子102に向けてコピーにより得られた複数個のハンドシェイク要求が、すなわち10個のハンドシェイク要求(信号Cの立下り)が出力される(状態203を参照)。
この時、信号FEBは、前述したように最初のハンドシェイク時のみレベルLであり(状態204を参照)、それ以外のハンドシェイク時はレベルHとなる。コピーされて出力される各ハンドシェイク要求に対応のハンドシェイクがコピー機能付きC素子101と消去機能付きC素子102間で完了する毎に、消去機能付きC素子102からクロックCP2がステートカウンタ105に出力される。ステートカウンタ105の出力するカウント値CNTはクロックCP2と信号FEBのレベルに従って変化する。
ロードデコーダ110は、レジスタ103に保持されたパケット情報PDのロード用情報D3と信号FEBとステートカウンタ105が出力するカウント値CNTと端子120を介して外部から与えられるロードパラメータLDPとを入力して、これらをデコードしてロード信号133とデータ信号132を生成してロード機能付きレジスタ106に出力する。
ロード機能付きレジスタ106は消去機能付きC素子102がハンドシェイク要求Cを入力に同期して出力されるクロックCP2を入力する毎に、ロードデコーダ110からのロード信号133が情報更新を指示していれば対応のデータ信号132を用いて保持する値(出力123)を更新して、更新後の値を出力する。これを図8(A)〜(N)のタイミングチャートで具体的に説明する。信号CEBは、カウント値CNTが示すステート0より前の期間ではレベルHであり、ステート9よりも前の期間ではレベルLである。また信号ADDRESSは同様にステート1よりも前の期間では何らかの値(パケット情報PDの一部やロードパラメータLDPの一部をそのままもしくは加工したもの)を示し、信号REBは同様にステート2よりも前の期間でレベルHでありステート4よりも前の期間でレベルLである。また信号WEBは同様にステート5より前の期間でレベルHでありステート7より前の期間でレベルLである。
また信号CEB、ADDRESS、REBおよびWEBのIO制御信号CNはレベルLで固定である。信号DATAはステート5よりも前の期間で何らかの値(パケット情報PDの一部やロードパラメータLDPの一部をそのままもしくは加工したもの)を示し、信号DATAのIO制御信号CNはステート5の直前からステート8の直前までの期間はレベルLを示し、その後はレベルHを示す。
図1の信号生成取込み回路100がデータ駆動型プロセッサに組込まれた図3の構成においては、図8(A)〜(N)のタイミングチャートに従えば、I/Oバッファ1006は出力123として与えられる信号のうち、信号CEB、ADDRESS、REBおよびWEBは常時バス1010に出力し、信号DATAはステート5〜7の間はバス1010に出力しそれ以外のステートではバス1010を介して外部デバイス1007〜1009から与えられるデータを入力して信号入力124として信号生成取込み回路100に送出可能な状態となる。
ストローブデコーダ109は、レジスタ103に保持されたパケット情報PDのうちのストローブ用情報D2と信号FEBとステートカウンタ105から出力されたカウント値CNTと外部から端子121を介して与えられたストローブパラメータSTPとを入力して、入力したこれら情報に基づいて、ストローブタイミング以外に次段パイプラインへのハンドシェイク要求が送出されるのを抑制するための消去指示EXBを生成して、消去機能付きC素子102に出力する。
図8(A)〜(N)のタイミングチャートによれば、消去機能付きC素子102は各ステート毎にクロックCP2をレジスタ108に出力するので、レジスタ108はクロックCP2を入力する毎に、与えられる信号入力124の値を入力して保持する。なお、ストローブするステート以外では、消去機能付きC素子102は与えられる消去指示EXBに基づき次段パイプラインへのハンドシェイク要求の送出を抑制する。結果として、ストローブするためのステートでのみ信号入力124の値をパケット情報PQとして次段パイプラインに出力するためのハンドシェイクが行なわれる。
図8(A)〜(N)のタイミングチャートでは、ステート6でストローブするため、消去指示EXBはステート6の直前でレベルHとなりステート7の直前でレベルLに変化する(状態205を参照)。レジスタ107はクロックCP2が与えられる毎にレジスタ103に保持されたパケットの情報の一部または全部を入力して保持し、レジスタ108はクロックCP2が与えられる毎に信号入力124を入力して保持する。
出力選択回路111はレジスタ107に保持されたパケット情報PDの一部とステートカウンタ105から出力されたカウント値CNTと外部から与えられた選択パラメータSLPとを入力して、これら入力情報に基づいた選択信号130を生成してセレクタ112に出力する。セレクタ112はレジスタ107に保持されたパケット情報の一部とレジスタ108に保持された信号入力124の値(データ)とを入力して、これら2つの入力情報のうちから、与えられる選択信号130に基づいて選択した情報を端子119を介して出力する。端子119を介して出力されるパケット情報PQのうち一部のフィールドにはセレクタ112から出力された該フィールドに対応の情報が格納されて、他のフィルードにはレジスタ107に保持されていた該フィルードに対応の情報が格納される。ストローブするタイミングに合せて消去機能付きC素子102から次段パイプラインに向けてハンドシェイク要求が出力されてハンドシェイクが行なわれて端子119を介してパケット情報PQが伝送される(状態206を参照)。以上のように、信号生成取込み回路100に与えられるパケット情報PDの内容に応じて、より自由度の高い信号生成と信号取込みが行なわれる。
(実施の形態2)
上述の実施の形態1では信号生成および信号取込みの機能を有する回路を示したけれども、本実施の形態2では信号取込み機能が省略されて信号生成機能のみを備える回路が示される。図9に実施の形態2に係る信号生成回路200を示す。
図9において信号生成回路200は、コピー機能付きC素子301、C素子302、与えられるパケット情報PDを入力して一旦保持するためのレジスタ303、コピー数デコーダ304、シーケンスの状態を計数するためのステートカウンタ305、ロードされて保持しているデータ信号326を信号出力323として出力するロード機能付きレジスタ306、ロードデコーダ310、信号CIを入力する端子313、信号ROを出力する端子314、信号MRBを入力する端子317、パケット情報PDを入力する端子318、およびロードパラメータLDPを入力する端子320を備える。端子313、314および317は、図14の端子609、610および613と同様の機能を有する。
信号生成回路200は端子318を介して前段パイプラインからパケット情報PDを入力して、端子319を介して次段パイプラインへパケット情報PQを出力する。ロードパラメータLDPは、ロードデコーダ310の動作を制御するために端子320を介して外部からロードデコーダ310に対して与えられる。コピー数デコーダ304は端子318を介して入力したパケット情報PDのうちの必要ステート数情報D1を、コピー機能付きC素子301が要求する形式でデコードして、デコード結果データ324をコピー機能付きC素子301に出力する。デコード結果データ324は、コピー数データNUM、コピー指示CPYおよび消去指示EXBを含む。
ロードデコーダ310は、レジスタ303に保持されたパケット情報PDのうちのロード用情報D3とステートカウンタ305のカウンタ値CNTとコピー機能付きC素子301から出力される信号FEBと端子320から与えられるロードパラメータLDPとに基づいてデコード動作して、ロード信号(ロード機能付きレジスタ306に対してロードするか否かを指示する信号)325とデータ信号(ロード機能付きレジスタ306にロードされるべきデータ)326を生成して、ロード機能付きレジスタ306に出力する。
コピー機能付きC素子301、レジスタ303、コピー数デコーダ304、ステートカウンタ305、ロード機能付きレジスタ306およびロードデコーダ310は実施の形態1のコピー機能付きC素子101、レジスタ103、コピー数デコーダ104、ステートカウンタ105、ロード機能付きレジスタ106およびロードデコーダ110と同様の機能を有する。
C素子302は本来は次段パイプラインに出力する信号COを、自己への信号RIとして入力している。
図9の信号生成回路200のデータ駆動プロセッサPR0への組込み例は図10に示される。信号生成回路200の動作のタイミングチャートは実施の形態1の図8(A)〜(N)のタイミングチャートで信号FEB、COおよびRIならびにパケット情報PQを除いたものとほぼ同じである。
(データ駆動型プロセッサへの適用について)
上述した信号生成取込み回路100または信号生成回路200をデータ駆動型プロセッサに搭載した場合について説明する。図11にはデータ駆動型プロセッサの一般的な構成が示されて、図12と図13には図11のデータ駆動型プロセッサに信号生成取込み回路100と信号生成回路200がそれぞれ組込まれた構成が示される。図11においてデータ駆動型プロセッサは合流部JNC、発火制御部FC、演算部FP、プログラム記憶部PSおよび分岐部BRN、ならび3つのパイプラインを備える。1つ目のパイプラインは発火制御部FCと演算部FP間に設けられてC素子2Aと対応のレジスタ3Aを有する。2つ目のパイプラインは演算部FPとプログラム記憶部PS間に設けられてC素子2Bと対応のレジスタ3Bを有する。3つ目のパイプラインはプログラム記憶部PSと分岐部BRN間に設けられてC素子2Cと対応のレジスタ3Cを有する。
実施の形態1の信号生成取込み回路100は、データ駆動型プロセッサのパイプライン間であれば何処にでも組込むことが可能である。合流部JNCの手前でも、発火制御部FCでも、演算部FPでも、プログラム記憶部PSでも、分岐部BRNの後でも組込むことができる。実施の形態2の信号生成回路200であれば、パイプライン列の末端であればどこにでも組込むことができる。図12では実施の形態1の信号生成取込み回路100が合流部JNCの手前に組込まれた構成が示されて、図13では実施の形態2の信号生成回路200が分岐部BRNの後ろに組込まれた構成が示される。図12と図13では信号MRB、パラメータSTP、LDPおよびSLPの図示は省略されている。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
100 信号生成取込み回路、101,301 コピー機能付き自己同期型転送制御回路、102 消去機能付き自己同期型転送制御回路、200,606 信号生成回路、302,401,402,501,601,602,1001,1002,2A,2B,2C 自己同期型転送制御回路、103,107,108,303,403,404,405,407,502,603,604,1003,1004,3A,3B,3C レジスタ、104,304 コピー数デコーダ,109 ストローブデコーダ,110,310 ロードデコーダ、111,607 出力選択回路、106,306 ロード機能付きレジスタ、112,608 セレクタ、105,305 ステートカウンタ、406 カウンタ、408〜416,503〜505,809 論理ゲート、417,807,808 フリップフロップ回路、418,810 遅延素子、605 遅延制御可能な遅延素子、1005 従来の信号生成取込み回路、1006 IOバッファ、1007,1008,1009 RAM/ROM/CPU等のデバイス、1010 バス、JNC 合流部、FC 発火制御部、FP 演算部、PS プログラム記憶部、BRN 分岐部。