(57)【特許請求の範囲】
【請求項１】
リクエスト信号線とアクノリッジ信号線の対からなるハンドシェーク信号線によりデータ転送のタイミングを制御する非同期式回路であって、タスクレジスタと、ハンドシェーク生成部と、非同期式有限状態機械とを有し、上記タスクレジスタは、外部のクライアントからの計算要求を受けるとオン状態となり、上記クライアントにアクノリッジを返すとともに、上記ハンドシェーク生成部が上記非同期式有限状態機械と繰り返しハンドシェークをとることを許可する機能、および上記非同期式有限状態機械から停止要求を受けると上記非同期式有限状態機械に上記停止要求に対するアクノリッジを返しかつオフ状態となり、上記クライアントへのアクノリッジを取り下げることで次の上記計算要求の受け付けを許可するとともに、上記ハンドシェーク生成部の動作を禁止する機能を有し、上記非同期式有限状態機械は、上記ハンドシェーク生成部と毎回ハンドシェークをとりながら上記クライアントから受け取ったデータを引数として複数ステップの計算を行ない、上記計算の最終ステップでは上記タスクレジスタを停止させる上記停止要求を送る機能を有することを特徴とする非同期計算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は非同期式回路によるディジタル計算を行なう非同期計算装置に関するものである。
【０００２】
【従来の技術】
有限状態機械（ＦＳＭ；Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）は有限個の状態をもち、その上での状態遷移の規則が定義された計算機構である。この有限状態機械はハードウェアによる最も基本的な計算機構の一つであり、今日のディジタル計算装置を構成する上で欠くことのできない要素となっている。
【０００３】
通常、有限状態機械を実現する場合には、状態の保持はフリップフロップによって行ない、またその状態の遷移は論理回路（組み合せ論理）によって実行し、状態遷移のタイミングをグローバルクロックによって一律に制御する同期式の構成法が採られる。
【０００４】
しかし近年、グローバルクロックの存在を前提とする同期式回路では、プロセスの微細化が進むにつれ、クロック信号を同じタイミングで回路内のフリップフロップに分配することが難しくなっていることから、グローバルクロックを用いない非同期式回路が注目されている。
【０００５】
この非同期式回路では、フリップフロップの書き込みのタイミングをとるのにグローバルクロックを用いる代りに、データの送り手と受け手との間でリクエスト信号とアクノリッジ信号をやりとりして、データの送信や受信のタイミングを制御する。すなわち、送り手はデータを受け手に送ることをリクエスト信号により通知し、受け手はデータを受け取ったことをアクノリッジ信号により送り手に返すというハンドシェークに基づいたデータ転送制御を行なう。
【０００６】
非同期式有限状態機械（ＡＦＳＭ；Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）は同期式の有限状態機械にタイミング制御を行なうためのハンドシェーク回路を加えて構成される。
【０００７】
図８は従来の非同期式有限状態機械の回路構成の一例を示す図である。図に示すように、非同期式有限状態機械は状態レジスタ１０、遅延素子２０、組み合せ論理３０、４０を有する。そして、ハンドシェーク回路はデータ転送の依存関係に基づき付加されなくてはならないが、通常有限状態機械の次状態出力は現状態出力に依存して決まるため、非同期式有限状態機械のハンドシェーク回路は自分自身とハンドシェークをとるような構成となる。また、非同期式有限状態機械が入力や出力を持つ場合には更に、入力元や出力先それぞれに対してハンドシェークを行なう回路を付加する必要がある。
【０００８】
【発明が解決しようとする課題】
しかし、入出力をもつ非同期式有限状態機械では、１ステップの計算を行なうのに、基本的に全ての入出力先と１回ずつハンドシェークをとらなくてはならない。このため、入力データが来なかったり、出力先の処理が滞っていると実行が進められない。
【０００９】
ただし、ハンドシェークの相手を選ぶセレクタを構成することは可能であるので、これを用いて非同期式有限状態機械の内部状態に基づいてデータを出力するかしないかを制御することはできる。
【００１０】
しかし、非同期式有限状態機械だけでは、ワンショットの入力で複数ステップの計算を行ない、また非同期式有限状態機械の状態に基づいて計算を停止させることができるような、柔軟な実行制御が可能な非同期計算装置を実現することはできない。
【００１１】
本発明は上述の課題を解決するためになされたもので、１ステップ毎にクライアントから計算を行なう指示を与えなくとも複数ステップの計算を行なうことができる非同期計算装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
この目的を達成するため、本発明においては、リクエスト信号線とアクノリッジ信号線の対からなるハンドシェーク信号線によりデータ転送のタイミングを制御する非同期式回路であって、タスクレジスタと、ハンドシェーク生成部と、非同期式有限状態機械とを有し、上記タスクレジスタは、外部のクライアントからの計算要求を受けるとオン状態となり、上記クライアントにアクノリッジを返すとともに、上記ハンドシェーク生成部が上記非同期式有限状態機械と繰り返しハンドシェークをとることを許可する機能、および上記非同期式有限状態機械から停止要求を受けると上記非同期式有限状態機械に上記停止要求に対するアクノリッジを返しかつオフ状態となり、上記クライアントへのアクノリッジを取り下げることで次の上記計算要求の受け付けを許可するとともに、上記ハンドシェーク生成部の動作を禁止する機能を有し、上記非同期式有限状態機械は、上記ハンドシェーク生成部と毎回ハンドシェークをとりながら上記クライアントから受け取ったデータを引数として複数ステップの計算を行ない、上記計算の最終ステップでは上記タスクレジスタを停止させる上記停止要求を送る機能を有するように構成した。
【００１３】
【発明の実施の形態】
図１は本発明に係る非同期計算装置を示す概略図、図２は図１に示した非同期計算装置を示す詳細図、図３は図２に示した非同期計算装置のレジスタを示す図である。図に示すように、非同期計算装置は外部のクライアント１００から計算を行なう指示すなわち計算要求（リクエスト）を受け、また非同期計算装置はタスクレジスタ２００、ハンドシェーク生成部３００および非同期式有限状態機械４００を有しており、非同期式有限状態機械４００は組み合せ論理４１０、状態レジスタ４２０、ハンドシェーク切り替え器４３０および遅延素子４４０を有している。そして、非同期式有限状態機械４００としては出力をもたない４ビットの（すなわち最大で２４＝１６状態の状態数を持つことが可能な）非同期式有限状態機械が用いられている。また、非同期計算装置はリクエスト信号線（ｇｅｎ＿ｒｅｑ信号線、ｆｓｍ＿ｒｅｑ信号線、ｆｉｎ＿ｒｅｑ信号線）とアクノリッジ信号線（ｇｅｎ＿ａｃｋ信号線、ｆｓｍ＿ａｃｋ信号線、ｆｉｎ＿ａｃｋ信号線）の対からなるハンドシェーク信号線によりデータ転送のタイミングを制御する非同期式回路である。
【００１４】
また、タスクレジスタ２００はマラー（Ｍｕｌｌｅｒ）Ｃ素子ｇ１、ｇ２から構成され、ハンドシェーク生成部３００はゲート（スイッチ）ｇ３、マラーＣ素子ｇ４から構成されている。そして、マラーＣ素子ｇ１、ｇ２、ｇ４は非同期式回路の基本論理素子であり、マラーＣ素子ｇ１、ｇ２、ｇ４は全ての入力がローレベル（偽値）のときにはローレベルの信号を出力し、全ての入力がハイレベル（真値）のときにはハイレベルの信号を出力し、それ以外のときには直前の出力信号の値を出力する。マラーＣ素子ｇ１、ｇ２、ｇ４の真理値を図４に示す。図４ではローレベルを「０」で表し、ハイレベルを「１」で表している。なお、マラーＣ素子ｇ１、ｇ４では入力の一方に白丸が付いているが、これはインバータを意味し、図４の定義に対して入力の極性が反転していることを表す。そして、マラーＣ素子ｇ１、ｇ２、ｇ４は非同期式回路において同じ方向の信号遷移、すなわちローレベルからハイレベルへの変化同士、ハイレベルからローレベルの変化同士を待ち合せる働きをする。また、ゲートｇ３はマラーＣ素子ｇ４に対する直近のフィードバックループ信号であるｆｂｋ信号を接続するための論理素子である。
【００１５】
また、遅延素子４４０は、非同期式有限状態機械４００において、状態レジスタ４２０の現状態の出力から組み合せ論理４１０を介して次状態を計算し、その値を状態レジスタ４２０に書き戻す際に、次状態の値が安定してから書き込みが行なわれるよう十分な時間を確保するために設けられている。
【００１６】
また、ハンドシェーク切り替え器４３０はセレクタｇ５、ｇ６を有しており、セレクタｇ５はｓｅｌ信号の値（レベル）に基づいてハンドシェーク信号を分岐する論理素子であり、セレクタｇ６はｓｅｌ信号の値に基づいて通過させるハンドシェーク信号を選択する論理素子である。このセレクタｇ５、ｇ６はそれぞれｓｅｌ信号がローレベルのときには「０」と書かれた側の接続が有効になり、ｓｅｌ信号がハイレベルのときには「１」と書かれた側の接続が有効になる。そして、ハンドシェーク切り替え器４３０では、ｓｅｌ信号がローレベルのときにはリクエスト信号をハンドシェーク切り替え器４３０内で単純に折り返すだけであるが、ｓｅｌ信号がハイレベルのときにはタスクレジスタ２００に停止要求を出し、そのアクノリッジで応答するようなハンドシェーク回路を形成する。
【００１７】
また、状態レジスタ４２０は４つのレジスタＲ０、Ｒ１、Ｒ２、Ｒ３を含み、レジスタＲ０、Ｒ１、Ｒ２、Ｒ３はそれぞれ１ビット（計４ビット）の情報を保持することができる。また、レジスタＲ０、Ｒ１、Ｒ２、Ｒ３の各々は図３に示されるように構成されており、４つのデータラッチＤ１、Ｄ２、Ｄ３、Ｄ４を有する。ここで、データラッチＤ１、Ｄ２、Ｄ３、Ｄ４は、入力端子であるＧ端子の信号がローレベルのときには直前の出力値を保ち、Ｇ端子の信号がハイレベルのときには入力端子であるＤ端子の信号の値を出力する記憶素子である。また、データラッチＤ１、Ｄ２、Ｄ３、Ｄ４の真理値を図５に示す。なお、図３において信号線の分岐点に書かれている記号「＜＜」は、レジスタＲ０、Ｒ１、Ｒ２、Ｒ３のタイミング信号であるｔｉ１信号もしくはｔｉ２信号が通過してｔｏ１信号もしくはｔｏ２信号の接続先の入力信号の値を変化させるより十分前にデータラッチＤ１、Ｄ２、Ｄ３、Ｄ４のＧ端子の信号の値が確定しなければならないというタイミングの制約を表している。
【００１８】
また、ｔｉ１端子の信号、ｔｉ２端子の信号とレジスタＲ０、Ｒ１、Ｒ２、Ｒ３でのデータ授受の関係を図６に示す。図６において、データラッチＤ１、Ｄ２、Ｄ３、Ｄ４に×印が付いているのはＧ端子の信号がローレベルで、データが保持された状態にあることを示し、×印のないものはＧ端子の信号がハイレベルで、データがスルーになっていることを表している。また、「ｔｉ１＝Ｌ」はｔｉ１端子の信号がローレベルであることを表し、「ｔｉ１＝Ｈ」はｔｉ１端子の信号がハイレベルであることを表す。
【００１９】
以下に本実施の形態の動作について説明する。
【００２０】
予め、マラーＣ素子ｇ１、ｇ２、ｇ４の出力信号はローレベルに初期化され、またレジスタＲ０、Ｒ１、Ｒ２、Ｒ３の出力信号はハイレベルかローレベルに初期化されており、回路全体がその出力により安定しているものとする。このとき、ゲートｇ３の入力信号であるｅｎａ信号はローレベルで抑えられているので、マラーＣ素子ｇ４の出力信号はローレベルのままであり（マラーＣ素子ｇ４は停止しており）、ハンドシェーク生成部３００はｆｓｍ＿ｒｅｑ信号を変化させない。つまり、ｅｎａ信号をローレベルに保てば、ハンドシェーク生成部３００は停止するから、非同期式有限状態機械４００は停止している。
【００２１】
この状態で、クライアント１００がｇｅｎ＿ｒｅｑ信号をハイレベルにしてタスクレジスタ２００にタスクの生成を指示すると、マラーＣ素子ｇ２の出力信号はローレベルなので、マラーＣ素子ｇ１の出力信号であるｔａｓｋ信号はハイレベルに変化する。すなわち、タスクレジスタ２００は外部のクライアント１００からの計算要求を受けるとオン状態となる機能を有する。この場合、ｇｅｎ＿ａｃｋ信号がハイレベルになるとともに、ｅｎａ信号がハイレベルになり、フィードバックループｆｂｋが開通して、停止していたハンドシェーク生成器３００の動作が可能になる。つまり、ゲートｇ３の入力信号であるｅｎａ信号をハイレベルにすれば、ハンドシェーク生成部３００は動作可能となる。すなわち、タスクレジスタ２００は、タスクレジスタ２００がオン状態となったときには、クライアント１００にアクノリッジを返すとともに、ハンドシェーク生成部３００が非同期式有限状態機械４００と繰り返しハンドシェークをとることを許可する機能を有する。
【００２２】
動作可能となったハンドシェーク生成器３００は、マラーＣ素子ｇ４のｆｓｍ＿ｒｅｑ信号をハイレベルにして、非同期式有限状態機械４００の動作を開始させる。このｆｓｍ＿ｒｅｑ信号は各レジスタＲ０、Ｒ１、Ｒ２、Ｒ３のｔｉ１−ｔｏ１を貫通し、各レジスタＲ０、Ｒ１、Ｒ２、Ｒ３の保持する値を出力端子であるｄｏ端子から組み合せ論理４１０に送る。組み合せ論理４１０は、現状態の値とクライアント１００から渡される引数ｇｅｎ＿ｄａｔａ信号を元に次状態の値を算出して、引数ｇｅｎ＿ｄａｔａ信号を各レジスタＲ０、Ｒ１、Ｒ２、Ｒ３の入力端子であるｄｉ端子に返す。また同時に、組み合せ論理４１０はタスクレジスタ２００を停止させる停止要求を出すか出さないかを決めるｓｅｌ信号を確定して、ハンドシェーク切り替え器４３０に送る。
【００２３】
計算を次のステップでも継続する場合には、非同期式有限状態機械４００からローレベルのｓｅｌ信号が出力される。この場合、状態レジスタ４２０を通ったリクエスト信号（ローレベルからハイレベルへの遷移）は、ハンドシェーク切り替え器４３０内部で折り返され、アクノリッジ信号として状態レジスタ４２０に戻される。この状態レジスタ４２０に戻されたアクノリッジ信号は各レジスタＲ０、Ｒ１、Ｒ２、Ｒ３のｔｉ２−ｔｏ２を貫通し、各レジスタＲ０、Ｒ１、Ｒ２、Ｒ３においてｄｉ端子から新しい信号の値を取り込ませるとともに、ｆｓｍ＿ａｃｋ信号をハイレベルにして、ハンドシェーク生成器３００に最初のリクエスト信号に対する応答を返す。ここまでで、１ステップの半分が済んだことになる。
【００２４】
ｆｓｍ＿ａｃｋ信号がハイレベルになると、マラーＣ素子ｇ４の出力は反転し、ｆｓｍ＿ｒｅｑ信号はローレベルになる。この遷移も先程と同様に状態レジスタ２００の各レジスタＲ０、Ｒ１、Ｒ２、Ｒ３のｔｉ１−ｔｏ１を貫通し、ハンドシェーク切り替え器４３０で折り返され、再び各レジスタＲ０、Ｒ１、Ｒ２、Ｒ３のｔｉ２−ｔｏ２を通ってｆｓｍ＿ａｃｋ信号をローレベルにするが、ｔｉ２をローレベルに戻す際にｄｉ端子から取り込んでいる次状態の信号の値が保持される。ここまでで１ステップの動作が済んだことになる。
【００２５】
そして、ｆｓｍ＿ａｃｋ信号がローレベルになると、マラーＣ素子ｇ４の出力信号は反転して再びハイレベルになるので、以降上記の動作が繰り返され、非同期式有限状態機械４００における計算は複数ステップ継続することができる。すなわち、非同期式有限状態機械４００は、ハンドシェーク生成部３００と毎回ハンドシェークをとりながらクライアント１００から受け取ったデータを引数として複数ステップの計算を行なう機能を有する。
【００２６】
なお、ハンドシェーク切り替え器４３０が正しく動作するためには、状態レジスタ４２０を貫通したリクエスト信号がローレベルからハイレベルに変化しそしてまたハイレベルからローレベルに変化する期間はｓｅｌ信号の値は一定に保たれなければならない。しかし、ｄｏ端子の信号の値が変わるのはｔｉ１端子の信号がハイレベルになる図６（２）の契機であるので、リクエスト信号より先にｓｅｌ信号の値が確定するよう遅延素子４４０の遅延を十分に大きくとることで、この条件は満たすことができる。
【００２７】
また、非同期式有限状態機械４００の動作をある状態で停止させたい場合には、その状態でｓｅｌ信号がハイレベルになるように組み合せ論理４１０を構成しておく。すなわち、非同期式有限状態機械４００は計算の最終ステップではタスクレジスタ２００を停止させる停止要求を送る機能を有する。
【００２８】
ｓｅｌ信号がハイレベルになった場合、ｆｉｎ＿ｒｅｑ信号がハイレベルになり、この場合にはマラーＣ素子ｇ２の出力信号はハイレベルに遷移することが可能になり、ｆｉｎ＿ａｃｋ信号がハイレベルになる。同時に、ｇｅｎ−ｒｅｑ信号がローレベルになっていればマラーＣ素子ｇ１がローレベルに遷移することも可能になり、この場合タスクレジスタ２００のｔａｓｋ信号がローレベルになる。すなわち、タスクレジスタ２００は非同期式有限状態機械４００から停止要求を受けると、非同期式有限状態機械４００に停止要求に対するアクノリッジを返しかつオフ状態となる機能を有している。
【００２９】
このように、タスクレジスタ２００のｔａｓｋ信号がローレベルになると、ｇｅｎ−ａｃｋ信号がローレベルになる。
【００３０】
また、ｆｉｎ＿ａｃｋ信号がハイレベルに遷移すると、非同期式有限状態機械４００を介してｆｓｍ＿ａｃｋ信号がハイレベルに遷移する。このとき、ｆｂｋ信号がハイレベルに確定していれば、ｅｎａ信号の値に関係なくゲートｇ３の出力信号はローレベルである。この仮定はｆｂｋ信号の遅延を相対的に小さくすることで満たすことができる。したがって、マラーＣ素子ｇ４の出力信号はやはりローレベルに反転可能で、タスクレジスタ２００の状態とは関わりなくｆｓｍ＿ｒｅｑ信号、ｆｉｎ＿ｒｅｑ信号は安全にローレベルに遷移する。
【００３１】
ｆｉｎ＿ｒｅｑ信号がローレベルになると、マラーＣ素子ｇ１の出力信号がローレベルになっていさえすれば、マラーＣ素子ｇ２の出力信号もローレベルに反転でき、ｆｉｎ＿ａｃｋ信号がローレベルに遷移できる。逆に、ｇｅｎ＿ｒｅｑ信号がローレベルに下がるのが遅れ、マラーＣ素子ｇ１の出力信号がハイレベルのままであれば、マラーＣ素子ｇ２でこの遷移は待たされる。
【００３２】
ｆｉｎ＿ａｃｋ信号がローレベルになると、非同期式有限状態機械４００を通ってｆｓｍ＿ａｃｋ信号もローレベルになる。このとき、既にｅｎａ信号がローレベルに下げられ、ゲートｇ３の出力信号がローレベルに確定していれば、次にｅｎａ信号がハイレベルになるまでマラーＣ素子ｇ４は待たされることになり、ハンドシェーク生成器３００は停止し、その結果非同期式有限状態機械４００も停止する。この仮定は、マラーＣ素子ｇ１からｅｎａ信号線を通ってマラーＣ素子ｇ４に至るまでの信号の遅延を、マラーＣ素子ｇ１からマラーＣ素子ｇ２、非同期式有限状態機械４００を通ってマラーＣ素子ｇ４に至るまでのアクノリッジ信号の遅延より十分小さくすることで満たすことができる。
【００３３】
すなわち、タスクレジスタ２００は、タスクレジスタ２００がオフ状態となると、クライアント１００へのアクノリッジを取り下げることでクライアント１００からの次の計算要求の受け付けを許可するとともに、ハンドシェーク生成部３００の動作を禁止する機能を有する。
【００３４】
そして、ハンドシェーク生成器３００が停止する際には、マラーＣ素子ｇ１、ゲートｇ３、マラーＣ素子ｇ４は初期状態と同じ状態になっており、その出力によるハンドシェーク回路もローレベルで安定している。したがって、ｇｅｎ＿ｒｅｑ信号を再びハイレベルにすることで、非同期式有限状態機械４００の実行を再開することが可能である。
【００３５】
タスクレジスタ２００において、クライアント１００とのハンドシェークと非同期式有限状態機械４００とのハンドシェークの順序関係が異なる場合でも動作が正しいことを示すために、図７にタスクレジスタ２００のＳＴＧ（Ｓｉｇｎａｌ  Ｔｒａｎｓｉｔｉｏｎ  Ｇｒａｐｈ）を示す。このＳＴＧは非同期式回路における信号遷移の依存関係を示すグラフである。図７において、例えばｆｉｎ＿ｒｅｑ＋はｆｉｎ＿ｒｅｑ信号のローレベルからハイレベルへの信号遷移を表しており、ｆｉｎ＿ｒｅｑ−はｆｉｎ＿ｒｅｑ信号のハイレベルからローレベルへの信号遷移を表している。そして、これら信号遷移間の矢印は信号遷移の依存関係を表しており、入力元の信号遷移が全て成立したときにその信号遷移が可能（発火可能）になることを表している。
【００３６】
図中で矢印の上に書かれたトークン（黒丸）は、この条件の成立状態を表している。例えば、ｇｅｎ＿ｒｅｑ＋に入力される矢印にはトークンがあるので、ｇｅｎ＿ｒｅｑ＋は遷移（発火）可能である。一方、ｔａｓｋ＋に入力される矢印を見ると、ｇｅｎ＿ｒｅｑ＋からのものにトークンがないので、この信号遷移はまだ遷移（発火）可能でない。
【００３７】
信号遷移が実際に起こったことは、入力元の矢印のトークンを全て取り除き、出力先に向かう全ての矢印の上に新たなトークンを置く操作としてモデル化される。したがって、ｇｅｎ＿ｒｅｑ＋の遷移（発火）の後、ｔａｓｋ＋が遷移（発火）可能となり、ｔａｓｋ＋の遷移（発火）の後、ｆｉｎ＿ｒｅｑ＋とｇｅｎ＿ｒｅｑ−が遷移（発火）可能になる。
【００３８】
ＳＴＧは全ての閉路（矢印と信号遷移のノードにより形成される閉じたループ）に最低１個トークンがある場合にはデッドロックしないことが知られているが、この条件は満たされている。また、全ての閉路に高々１個しかトークンが存在しないので、信号遷移の追い越しは起こりえない。図７により、待合せが正しく行なわれおり、遷移（発火）可能な信号遷移が複数ある場合でも、その順番によらず結果が同じであることが分かる。
【００３９】
このように、図１〜図３に示した非同期計算装置においては、１ステップ毎にクライアントから計算を行なう指示を与えなくとも複数ステップの計算を行なうことができ、柔軟な非同期計算装置を構成することができる。また、対象となる処理を複数の有限状態機械を組み合せて空間的に展開し、それぞれを必要に応じて駆動するような、ハードウェアの利点を生かした非同期システムの構成が容易になる。
【００４０】
なお、本実施の形態では、非同期式有限状態機械４００の状態レジスタ４２０のレジスタＲ０、Ｒ１、Ｒ２、Ｒ３の数（ビット数）は４とし、外部への出力はもたないように構成しているが、このレジスタＲ０、Ｒ１、Ｒ２、Ｒ３の数は任意に変更可能で、また外部への出力をもたせるなど、種々の非同期式有限状態機械に適用できる。
【００４１】
また、本実施の形態で使用した状態レジスタ４２０の各レジスタＲ０、Ｒ１、Ｒ２、Ｒ３は４段のデータラッチＤ１、Ｄ２、Ｄ３、Ｄ４により構成されているが、段数が３段以上のものであれば、ハンドシェーク回路の構成に変更が必要ではあるが、置き換えて使用することができる。
【００４２】
また、本実施の形態では、クライアント１００は一つと仮定しているが、アービタを用いることで複数のクライアントからの計算要求を競合して受け付けたり、マラーＣ素子を用いることで複数のクライアントからの計算要求を待合せて受け付けることができる。
【００４３】
さらに、本実施の形態では、タスクレジスタ２００とハンドシェーク生成器３００と非同期式有限状態機械４００とを有する計算装置を単体で用いているが、本発明に係る非同期計算装置を複数用い、それらをパイプライン状に接続したり、またその接続の間に演算回路を挿入したり、さらに複数のパイプラインを分岐、合流させたりと、様々なトポロジーで接続して利用することも可能である。
【００４４】
【発明の効果】
本発明に係る非同期計算装置においては、１ステップ毎にクライアントから計算を行なう指示を与えなくとも複数ステップの計算を行なうことができる。
【図面の簡単な説明】
【図１】本発明に係る非同期計算装置を示す概略図である。
【図２】図１に示した非同期計算装置を示す詳細図である。
【図３】図２に示した非同期計算装置のレジスタを示す図である。
【図４】マラーＣ素子の真理値を示す図である。
【図５】データラッチの真理値を示す図である。
【図６】レジスタでのデータ授受の関係を示す図である。
【図７】タスクレジスタのＳＴＧを示す図である。
【図８】従来の非同期式有限状態機械の回路構成の一例を示す図である。
【符号の説明】
１００…クライアント
２００…タスクレジスタ
３００…ハンドシェーク生成部
４００…非同期式有限状態機械
【図１】
0003570985.tif 000002
【図２】
0003570985.tif 000003
【図３】
0003570985.tif 000004
【図４】
0003570985.tif 000005
【図５】
0003570985.tif 000006
【図６】
0003570985.tif 000007
【図７】
0003570985.tif 000008
【図８】
0003570985.tif 000009