(57)【要約】【課題】特別の休止相を設けることなく、各回路ブロックの演算終了後、初期状態に復帰することにより、高速化、低消費電力化を実現する非同期式回路の制御回路を提供する。【解決手段】複数の回路ブロックが互いに他の回路ブロックと制御信号をやり取りすることにより一連の演算を実行する、非同期式回路において、入力制御信号が“１”から“０”に遷移したことをトリガとして演算を実施し、演算中、出力制御信号として“１”を出力し、演算が終了した後、出力制御信号を“０”に復帰するようにする。ここで、“０”とは、各回路ブロックの待機状態に対応する制御信号のステートを表したものであり、具体的な電圧等を表しているものではない。【選択図】図２
2008181170.tif 000002
【特許請求の範囲】
【請求項１】
演算回路と制御回路で構成された複数の回路ブロックの各々が、互いに他の回路ブロックとハンドシェイク信号をやり取りすることにより、所定の演算を実行する非同期式回路の制御回路であって；
前記制御回路は前段からのハンドシェイク信号を入力する入力端、次段へのハンドシェイク信号を出力する出力端、前記演算回路の演算実行制御信号端、及び前記演算回路の演算実行結果をラッチするラッチ信号端を有し；
前記各演算回路は、上記制御回路からの制御によって、演算を実行する実行モードと、演算動作を行わない待機モードで動作し；
該待機モードの時の、前記入力端、出力端、演算実行制御信号端、及びラッチ信号端の対応する信号ステートを“０”で表した場合において、前記制御回路は、前段からの入力端信号が“１”から“０”に遷移したことを検出して演算実行制御信号端の信号ステートを“１”として前記演算回路の演算を実行せしめ、更に、出力端、及びラッチ信号端の信号ステートを“１”とし、前記演算終了後、前記ラッチ信号端の信号ステートを“０”に遷移せしめて演算実行結果を保持し、更に、演算実行制御信号端、及び出力端の信号ステートを“０”に遷移せしめる手段を有する；
非同期式回路の制御回路。
【請求項２】
前記ハンドシェイク信号の入力端における信号（以下、入力信号（ｉｎ）という）が “１”から“０”に遷移したときに“１”を出力し、所定時間経過後に“０”に復帰するｒｅｑ信号生成手段と；
前記ｒｅｑ信号が“１”に遷移した後、“０”から“１”に遷移し、所定の時間経過後、“１”から“０”に復帰するａｃｋ信号を生成する手段と；
該ａｃｋ信号から、前記ラッチ信号端における信号（以下、ｌａｔ信号という）、及び出力端における前記ハンドシェイク出力信号（以下、出力信号（ｏｕｔ）という）を生成し、該出力信号（ｏｕｔ）を次段の入力信号として送出する手段と；
前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号端における信号（以下、ｍｕｘ信号という）を得る演算実行制御信号生成手段を有する；
請求項１記載の非同期式回路の制御回路。
【請求項３】
複数の入力信号（ｉｎ（１）〜ｉｎ（ｎ））、に対し、全ての入力信号が“１”から“０”に遷移したことを検出して、“１”を出力し、所定時間経過後に“０”に復帰するｒｅｑ信号を生成する手段と；
前記ｒｅｑ信号が“１”に遷移した後、“０”から“１”に遷移し、所定の時間経過後、“１”から“０”に復帰するａｃｋ信号を生成する手段と；
該ａｃｋ信号から、前記ｌａｔ信号、及び前記出力信号（ｏｕｔ）を生成し、該出力信号（ｏｕｔ）を次段の入力信号として送出する手段と；
前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段を有する；
請求項１記載の非同期式回路の制御回路。
【請求項４】
前記制御回路は、ｒｅｑ信号生成手段と、遅延素子（Ｄ１）、及び演算実行制御信号生成手段を備え；
前記遅延素子（Ｄ１）は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり；
前記ｒｅｑ信号生成手段は、エッジ記憶回路（ＥＤ）、及び論理積回路（ＡＮＤ）を有し、
前記エッジ記憶回路（ＥＤ）は、入力信号が“０”から“１”に遷移したときに“１”を出力して保持し、リセット信号が入力したときに出力を“０”に戻す記憶回路であり；
前記入力端は、エッジ記憶回路（ＥＤ）の入力端に接続されると共に、前記論理積回路（ＡＮＤ）の一方の入力端にインバータ回路を介して接続され；
前記論理積回路（ＡＮＤ）の他方の入力端は、エッジ記憶回路（ＥＤ）の出力端に接続され；
前記論理積回路（ＡＮＤ）の出力端は、前記エッジ記憶回路（ＥＤ）のリセット制御入力端に接続され；
前記論理積回路（ＡＮＤ）の出力端からｒｅｑ信号が出力され；
該ｒｅｑ信号は、遅延素子（Ｄ１）の入力端に接続され、該遅延素子（Ｄ１）の出力端からａｃｋ信号が出力され；
前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号（ｌａｔ）から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段を有する；
請求項１乃至請求項３のいずれか１項に記載の非同期式回路の制御回路。
【請求項５】
前記制御回路は、ｒｅｑ信号生成手段と、遅延素子（Ｄ１）、及び演算実行制御信号生成手段を備え；
前記遅延素子（Ｄ１）は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり；
前記ｒｅｑ信号生成手段は、エッジ記憶回路（ＥＤ’）を有し、
前記エッジ記憶回路（ＥＤ’）は、入力信号が“１”から“０”に遷移したときに“１”を出力して保持し、リセット信号が入力したときに出力を“０”に戻す記憶回路であり；
前記入力端は、エッジ記憶回路（ＥＤ’）の入力端に接続され、該エッジ記憶回路（ＥＤ’）の出力端は、該エッジ記憶回路（ＥＤ’）のリセット制御入力端に接続され；
前記エッジ記憶回路（ＥＤ’）の出力端からｒｅｑ信号が出力され；
該ｒｅｑ信号は、遅延素子（Ｄ１）の入力端に接続され、該遅延素子（Ｄ１）の出力端からａｃｋ信号が出力され；
前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号（ｌａｔ）から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段を有する；
請求項１または請求項２に記載の非同期式回路の制御回路。
【請求項６】
前記制御回路は、ｒｅｑ信号生成手段と、遅延素子（Ｄ１）、及び演算実行制御信号生成手段を備え；
前記遅延素子（Ｄ１）は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり；
前記ｒｅｑ信号生成手段は、エッジ記憶回路（ＥＤ’）、及び論理積回路（ＡＮＤ）を有し、
前記エッジ記憶回路（ＥＤ’）は、入力信号が“１”から“０”に遷移したときに“１”を出力して保持し、リセット信号が入力したときに出力を“０”に戻す記憶回路であり；
前記入力端は、エッジ記憶回路（ＥＤ）の入力端に接続され；
前記論理積回路（ＡＮＤ）の入力端は、エッジ記憶回路（ＥＤ’）の出力端に接続され；
前記論理積回路（ＡＮＤ）の出力端は、前記エッジ記憶回路（ＥＤ’）のリセット制御入力端に接続され；
前記論理積回路（ＡＮＤ）の出力端からｒｅｑ信号が出力され；
該ｒｅｑ信号は、遅延素子（Ｄ１）の入力端に接続され、該遅延素子（Ｄ１）の出力端からａｃｋ信号が出力され；
前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号（ｌａｔ）から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段を有する；
請求項１又は請求項３に記載の非同期式回路の制御回路。
【請求項７】
前記制御回路は、ｒｅｑ信号生成回路と、遅延素子（Ｄ１）、及び論理和回路（ＯＲ）を備え；
前記遅延素子（Ｄ１）は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり；
前記ｒｅｑ信号生成回路は、Ｃ素子（Ｃ）、論理積回路（ＡＮＤ）を有し；
前記Ｃ素子（Ｃ）は、２つの入力と１つの出力を有し、入力値が一致したときに出力がその値に遷移し、一致しないときはそれ以前の出力値を保持する記憶素子であり；
前記入力端は、前記Ｃ素子（Ｃ）の一方の入力端に接続されると共に、前記論理積回路（ＡＮＤ）の一方の入力端にインバータ回路を介して接続され；
前記論理積回路（ＡＮＤ）の他方の入力端は、前記Ｃ素子（Ｃ）の出力端に接続され；
前記論理積回路（ＡＮＤ）の出力端は、前記Ｃ素子（Ｃ）の他方の入力端にインバータ回路を介して接続され；
前記論理積回路（ＡＮＤ）の出力端からｒｅｑ信号が出力され；
該ｒｅｑ信号は、遅延素子（Ｄ１）の入力端に接続され、該遅延素子（Ｄ１）の出力端からａｃｋ信号が出力され；
前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号（ｌａｔ）から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段を有する；
請求項１乃至請求項３のいずれか１項に記載の非同期式回路の制御回路。
【請求項８】
前記演算実行制御信号生成手段は、前記ａｃｋ信号を演算実行制御信号（ｍｕｘ）として使用する；
請求項２乃至請求項７記載のいずれか１項に記載の非同期式回路の制御回路。
【請求項９】
前記演算実行制御信号生成手段は、前記ａｃｋ信号と前記ｒｅｑ信号の論理和を取り、演算実行制御信号（ｍｕｘ）として使用する；
請求項２乃至請求項７のいずれか１項に記載の非同期式回路の制御回路。
【請求項１０】
前記演算実行制御信号生成手段は、前記ａｃｋ信号、前記ｒｅｑ信号、及び前記出力信号（ｏｕｔ）の論理和を取り、演算実行制御信号（ｍｕｘ）として使用する；
請求項２乃至請求項７のいずれか１項に記載の非同期式回路の制御回路。
【請求項１１】
請求項２乃至請求項１０記載に非同期式回路の制御回路において；
２つの入力端及び１つの出力端を有し、第１の入力端が“０”のときは第２の入力端の信号をそのまま出力し、前記第１の入力端が“１”のときであって第２の入力端の信号が“１”から“０”に遷移するときは、前記第１の入力端が“１”から“０”に遷移するまで、“１”を出力して保持するストール制御回路（ＳＣ）を有し；
前記ａｃｋ信号を前記ストール制御回路（ＳＣ）の第２の入力端に、次段が演算中である時“１”で、待機中の時“０”のストール信号を前記第１の入力端に接続し、該ストール制御回路（ＳＣ）の出力を前記論理和回路の第２の入力端、出力端、及び、ラッチ信号端に接続した；
非同期式回路の制御回路。
【請求項１２】
前記ストール制御回路（ＳＣ）は；
２つの論理和を取る論理和回路と、前記Ｃ素子（Ｃ）で構成され；
前記論理和回路の第１の入力端には前記ストール信号が入力され；
前記論理和回路の第２の入力端には、ａｃｋ信号が接続されると共に、前記第２の入力端は、前記Ｃ素子（Ｃ）の一方の入力端に接続され；
前記論理和回路の出力端は前記Ｃ素子（Ｃ）の他方の入力端に接続され；
前記Ｃ素子（Ｃ）の出力がストール制御回路（ＳＣ）の出力である；
請求項１１記載の非同期式回路の制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ等で用いる演算回路の制御回路に関する。更に詳しくは、複数の回路ブロックの各々が互いに他の回路ブロックとハンドシェイク信号をやりとりすることにより、一連の演算を実行する非同期式回路の制御回路に関する。
【背景技術】
【０００２】
クロック信号を用いない非同期式回路は、回路全体を一つのグローバルクロック信号で制御する同期式回路に比べて、クロックスキュー、クロック信号自体の消費電力の増大、雑音干渉の問題がなく、高速性や環境やプロセスの変化に対応できる柔軟性に優れると共に、回路モジュールの再利用が可能な回路として期待されている。
【０００３】
図２７は、従来の非同期式回路の構成を示したものである。本図は、二つの入力データａ，ｂから（ａ＋ｂ）２を演算する構成の一例を示したものであり、（ａ＋ｂ）の演算を行う演算回路１０２１とその２乗を演算する演算回路１０２２を有する。これら複数の演算回路の集合をデータパス３と呼ぶ。各々の演算回路にはその制御を行う制御回路１０１１及び１０１２を有する。制御回路１０１１及び演算回路１０２１の組合せは一つの回路ブロック１０４１を構成する。制御回路１０１１の制御入力ｉｎ１が入力されると、ｍｕｘ１信号によって演算回路は所定の演算（ｃ＝ａ＋ｂ）を実行し、演算時間に相当する所要の時間の経過後、ラッチング信号ｌａｔ１を送出して、演算結果を保持する。次に、ｏｕｔ１信号を次段の回路ブロックに送出して、ｄ＝ｃ２の演算を実行する。即ち、隣接する回路ブロックどうしが互いにハンドシェイク信号をやり取りすることにより所定の演算を実行する。このように、非同期式回路では、演算タイミングをハンドシェイク信号により制御し、所謂グローバルクロックを用いないので、前述したグローバルクロックに伴う問題を解決できる。
【０００４】
一般に、演算回路では、演算終了後、次の演算開始までに演算回路の状態を初期状態にする必要がある。非同期式回路の最も簡単な制御方法として、演算を実行する“稼動相”と、演算実行後、次の演算に備えて演算回路の状態を初期状態に戻す“休止相”を交互に繰り返してデータパス３を制御する２相式制御方式がある（例えば、非特許文献１）。このような２相式制御は、例えば、Ｑモジュールと呼ばれる２相式制御モジュールを用いて容易に実現できる。
【非特許文献１】電子情報通信学会論文誌Ｄ−1，Ｊ７８巻，第４号，ｐｐ．４１６−４２３，１９９５年４月
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、２相式制御方式の非同期式回路では、演算を行わない休止相の時間と稼動相の時間長が同程度となる場合があり、この休止相の存在が演算の高速化及び低消費電力化の障害となっていた。
本願発明は、上記のような事情に鑑みてなされたものであり、特別の休止相を設けることなく各回路ブロックの演算終了後、初期状態に復帰する制御回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１記載の非同期式回路の制御回路は、例えば、図１に示すように、演算回路２ｉと制御回路１ｉで構成された複数の回路ブロック４ｉの各々が、互いに他の回路ブロックとハンドシェイク信号（ｉｎｉ，ｏｕｔｉ等）をやり取りすることにより、所定の演算を実行する非同期式回路の制御回路１ｉであって、前記制御回路１ｉは前段からのハンドシェイク信号を入力する入力端（ｉｎｉ端）、次段へのハンドシェイク信号を出力する出力端（ｏｕｔｉ端）、前記演算回路の演算実行制御信号端（ｍｕｘｉ端）、及び前記演算回路の演算実行結果をラッチするラッチ信号端（ｌａｔｉ端）を有し、前記各演算回路２ｉは、前記制御回路１ｉからの制御によって、演算を実行する実行モードと、演算動作を行わない待機モードで動作し、該待機モードの時の、前記入力端（ｉｎｉ端）、出力端（ｏｕｔｉ端）、演算実行制御信号端（ｍｕｘｉ端）、及びラッチ信号端（ｌａｔｉ端）の対応する信号ステートを“０”で表した場合において、前記制御回路１ｉは、前段からの入力端（ｉｎｉ端）信号が“１”から“０”に遷移したことを検出して演算実行制御信号端（ｍｕｘｉ端）の信号ステートを“１”として前記演算回路の演算を実行せしめ、更に、出力端（ｏｕｔｉ端）、及びラッチ信号端（ｌａｔｉ端）の信号ステートを“１”とし、前記演算終了後、前記ラッチ信号端（ｌａｔｉ端）の信号ステートを“０”に遷移せしめて演算実行結果を保持し、更に、演算実行制御信号端（ｍｕｘｉ端）、及び出力端（ｏｕｔｉ端）の信号ステートを“０”に遷移せしめる手段を備える。
尚、各信号端の信号は、“１”と“０”の２つのステートのいずれかを取るが、この２つのステートは、ステートの状態を区別したものであり、具体的な電圧等を表しているものではない。前記演算回路２ｉが演算動作を行わず、以前の演算結果を保持する待機モード（前記初期状態に対応、演算終了後、十分の時間が経過して、各信号端が定常の状態になった状態）の時の、前記入力端（ｉｎｉ端）、出力端（ｏｕｔｉ端）、演算実行制御信号端（ｍｕｘｉ端）、及びラッチ信号端（ｌａｔｉ端）の取る信号ステートを、“０”ステートと表す。
【０００７】
このように構成すると、制御回路の入力が、演算回路の実行モードに対応する入力から待機モードに対応する入力ステートに遷移することをトリガとして演算を実行するので、演算が終了したときには制御回路の入出力の信号ステートが待機モードに対応するステートになっており、従来技術のような特別の休止相を設ける必要がなく、高速で低消費電力の特性を実現できる。
【０００８】
請求項２記載の非同期式回路の制御回路は、請求項１において、例えば、図２に示すように、前記ハンドシェイク信号の入力端（ｉｎ端）における信号（以下、入力信号（ｉｎ）という）が “１”から“０”に遷移したときに“１”を出力し、所定時間経過後に“０”に復帰するｒｅｑ信号生成手段８と前記ｒｅｑ信号が“１”に遷移した後、“０”から“１”に遷移し、所定の時間経過後、“１”から“０”に復帰するａｃｋ信号を生成する手段９と、該ａｃｋ信号から、前記ラッチ信号端における信号（以下、ｌａｔ信号という）、及び出力端（ｏｕｔ端）における前記ハンドシェイク出力信号（以下、出力信号（ｏｕｔ）という）を生成し、該出力信号（ｏｕｔ）を次段の入力信号として送出する手段と、前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号端における信号（以下、ｍｕｘ信号という）を得る演算実行制御信号生成手段１１を有するように構成したものである。
【０００９】
請求項３記載の非同期式回路の制御回路は、請求項１において、例えば、図１４、図１８に示すように、複数の入力信号（ｉｎ（１）〜ｉｎ（ｎ））、に対し、全ての入力信号が“１”から“０”に遷移したことを検出して、“１”を出力し、所定時間経過後に“０”に復帰する、ｒｅｑ信号を生成する手段８’と、前記ｒｅｑ信号が“１”に遷移した後、“０”から“１”に遷移し、所定の時間経過後、“１”から“０”に復帰するａｃｋ信号を生成する手段９と、該ａｃｋ信号から、前記ｌａｔ信号、及び前記出力信号を生成し、該出力信号（ｏｕｔ）を次段の入力信号として送出する手段と、前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段１１を有するように構成したものである。
【００１０】
このように構成すると、前段にある複数の回路ブロック４ｉの演算の全ての終了結果を受けて次の演算を実行する回路（合流回路）を簡略な構成で実現でき、又特別の休止相を設ける必要がないので高速で低消費電力の特性を実現できる。
【００１１】
請求項４記載の非同期式回路の制御回路は、請求項１乃至請求項３において、例えば、図６、図１４に示すように、前記制御回路１は、ｒｅｑ信号生成手段８（又は８’）と、遅延素子（Ｄ１）９、及び演算実行制御信号生成手段１１を備え、前記遅延素子（Ｄ１）９は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり、前記ｒｅｑ信号生成手段８（又は８’）は、エッジ記憶回路（ＥＤ）１３、及び論理積回路（ＡＮＤ）１４（又は１４’）を有し、  前記エッジ記憶回路（ＥＤ）１３は、入力信号が“０”から“１”に遷移したときに“１”を出力して保持し、リセット信号が入力したときに出力を“０”に戻す記憶回路であり、前記入力端（ｉｎ端）は、エッジ記憶回路（ＥＤ）１３の入力端に接続されると共に、前記論理積回路（ＡＮＤ）１４（または１４’）の一方の入力端にインバータ回路１６（又は２１）を介して接続され、前記論理積回路（ＡＮＤ）１４（または１４’）の他方の入力端は、エッジ記憶回路（ＥＤ）１３の出力端に接続され、前記論理積回路（ＡＮＤ）１４（または１４’）の出力端は、前記エッジ記憶回路（ＥＤ）１３のリセット制御入力端に接続され、前記論理積回路（ＡＮＤ）１４（または１４’）の出力端からｒｅｑ信号が出力され、該ｒｅｑ信号は、遅延素子（Ｄ１）９の入力端に接続され、該遅延素子（Ｄ１）９の出力端からａｃｋ信号が出力され、前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号（ｌａｔ）から、前記演算回路２ｉの演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段１１を有するように構成したものである。
【００１２】
このように構成すると、フリップフロップ回路、論理積回路、論理和回路、遅延回路を用いて制御回路を簡易に構成できる。
【００１３】
請求項５に記載の非同期式回路の制御回路は、請求項１または請求項２において、例えば、図８に示すように、前記制御回路１は、ｒｅｑ信号生成手段８と、遅延素子（Ｄ１）９、及び演算実行制御信号生成手段１１を備え、前記遅延素子（Ｄ１）９は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり、前記ｒｅｑ信号生成手段８は、エッジ記憶回路（ＥＤ’）１３’を有し、  前記エッジ記憶回路（ＥＤ’）１３’は、入力信号が“１”から“０”に遷移したときに“１”を出力して保持し、リセット信号が入力したときに出力を“０”に戻す記憶回路であり、前記入力端（ｉｎ端）は、エッジ記憶回路（ＥＤ’）１３’の入力端に接続されると共に、該エッジ記憶回路（ＥＤ’）１３’の出力端は、該エッジ記憶回路（ＥＤ’）１３’のリセット制御入力端に接続され、前記エッジ記憶回路（ＥＤ’）１３’の出力端からｒｅｑ信号が出力され、該ｒｅｑ信号は、遅延素子（Ｄ１）９の入力端に接続され、該遅延素子（Ｄ１）９の出力端からａｃｋ信号が出力され、前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号（ｌａｔ）から、前記演算回路２ｉの演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段１１を有するように構成したものである。
【００１４】
このように、立ち下りを検出するエッジ記憶回路（ＥＤ’）１３’を用いて構成すると、論理積回路を用いないで、制御回路を簡易に構成できる。
【００１５】
請求項６記載の非同期式回路の制御回路は、請求項１または請求項３において、例えば、図１６に示すように、前記制御回路は、ｒｅｑ信号生成手段８’と、遅延素子（Ｄ１）９、及び演算実行制御信号生成手段１１を備え；
前記遅延素子（Ｄ１）９は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり；
前記ｒｅｑ信号生成手段８’は、エッジ記憶回路（ＥＤ’）１３’、及び論理積回路（ＡＮＤ）１４’’を有し、
前記エッジ記憶回路（ＥＤ’）１３’は、入力信号が“１”から“０”に遷移したときに“１”を出力して保持し、リセット信号が入力したときに出力を“０”に戻す記憶回路であり；
前記入力端（ｉｎ端）は、エッジ記憶回路（ＥＤ’）１３’の入力端に接続され；
前記論理積回路（ＡＮＤ）１４’’の入力端は、エッジ記憶回路（ＥＤ’）１３’の出力端に接続され；
前記論理積回路（ＡＮＤ）１４’’の出力端は、前記エッジ記憶回路（ＥＤ’）１３’のリセット制御入力端に接続され；
前記論理積回路（ＡＮＤ）１４’’の出力端からｒｅｑ信号が出力され；
該ｒｅｑ信号は、遅延素子（Ｄ１）９の入力端に接続され、該遅延素子（Ｄ１）９の出力端からａｃｋ信号が出力され；
前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号（ｌａｔ）から、前記演算回路の演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段を有するように構成したものである。
【００１６】
このように、立ち下りを検出するエッジ記憶回路（ＥＤ’）１３’を用いて構成すると、論理積回路の入力端子数を少ないもので構成でき、制御回路を簡易に構成できる。
【００１７】
請求項７記載の非同期式回路の制御回路は、請求項１乃至請求項３において、例えば、図１０、図１８に示すように、前記制御回路１は、ｒｅｑ信号生成回路８（又は８’）と、遅延素子（Ｄ１）９、及び演算実行制御信号生成手段１１を備え、前記遅延素子（Ｄ１）９は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり、前記ｒｅｑ信号生成回路８（又は８’）は、Ｃ素子（Ｃ）１７、論理積回路（ＡＮＤ）１８（又は８’）を有し、前記Ｃ素子（Ｃ）１７は、２つの入力（Ｃ１，Ｃ２）と１つの出力（ＣＯ）を有し、入力値が一致したときに出力がその入力値に遷移し、一致しないときは、それ以前の出力値を保持する記憶素子であり、前記入力端（ｉｎ端）は、前記Ｃ素子（Ｃ）１７の一方の入力端に接続されると共に、前記論理積回路（ＡＮＤ）１８（又は１８’）の一方の入力端にインバータ回路１９（又は２２）を介して接続され、前記論理積回路（ＡＮＤ）１８（又は１８’）の他方の入力端は、前記Ｃ素子（Ｃ）１７の出力端に接続され、前記論理積回路（ＡＮＤ）１８（又は１８’）の出力端は、前記Ｃ素子（Ｃ）１７の他方の入力端にインバータ回路１９（又は２２）を介して接続され、前記論理積回路（ＡＮＤ）１８（又は１８’）の出力端からｒｅｑ信号が出力され、該ｒｅｑ信号は、遅延素子（Ｄ１）９の入力端に接続され、該遅延素子（Ｄ１）９の出力端からａｃｋ信号が出力され、前記ｒｅｑ信号、及び／又は出力信号（ｏｕｔ）、及び／又はａｃｋ信号、及び／又はｌａｔ信号（ｌａｔ）から、前記演算回路２の演算実行時間より長い“１”の持続時間を有する演算実行制御信号（ｍｕｘ）を得る演算実行制御信号生成手段１１を有するように構成したものである。
【００１８】
このように構成すると、Ｃ素子（Ｃ）、論理積回路、論理和回路、遅延回路を用いて制御回路を簡易に構成できる。また、Ｃ素子（Ｃ）は、フリップフロップ回路より、その動作が高速であるので回路全体の高速動作が可能となる。
【００１９】
請求項８記載の非同期式回路の制御回路は、請求項２乃至請求項７において、例えば、図２０（ｃ）に示すように、演算実行制御信号生成手段１１は、前記ａｃｋ信号を演算実行制御信号（ｍｕｘ）として使用するものである。
このように構成すると、ａｃｋ信号をそのまま演算実行制御信号（ｍｕｘ）として使用するので回路を非常に簡単に出来る。
【００２０】
請求項９記載の非同期式回路の制御回路は、請求項２乃至請求項７において、例えば、図２０（ａ）に示すように、演算実行制御信号生成手段１１は、前記ａｃｋ信号と前記ｒｅｑ信号の論理和の論理和を取るように構成したものである。
【００２１】
また、請求項１０記載の非同期式回路の制御回路は、請求項２乃至請求項７おいて、例えば、図２０（ｂ）に示すように、演算実行制御信号生成手段は、前記ａｃｋ信号、前記ｒｅｑ信号、及び出力信号（ｏｕｔ）の論理和を取るように構成したものである。
【００２２】
請求項９、又は請求項１０のように構成すると、ａｃｋ信号が立ちあがる前の期間を演算時間に繰込むことができるので演算以外の無駄な時間を減らすことが出来、高速な動作を実現することが出来る。
【００２３】
請求項１１記載の非同期式回路の制御回路は、請求項２乃至請求項１０において、例えば、図２４に示すように、２つの入力端、及び１つの出力端を有し、第１の入力端（＃１）が“０”のときは第２の入力端（＃２）に接続されたａｃｋ信号をそのまま出力し、前記第１の入力端（＃１）が“１”のときであって第２の入力端（＃２）の信号が“１”から“０”に遷移するときは、前記第１の入力端（＃１）が“１”から“０”に遷移するまで、“１”を出力して保持するストール制御回路（ＳＣ）２４を有し、前記ａｃｋ信号を前記ストール制御回路（ＳＣ）２４の第２の入力端（＃２）に、次段が演算中である時“１”で、待機中の時“０”のストール信号を前記第１の入力端（＃２）に接続し、該ストール制御回路（ＳＣ）２４の出力（＃３）を前記論理和回路１２の第２の入力端（＃４）、出力端（ｏｕｔ端）、及び、ラッチ信号端（ｌａｔ端）に接続したように構成したものである。
【００２４】
このように構成すると、次段からのストール制御信号を受けて、次段への出力信号（ｏｕｔ）が“１”から“０”に遷移するのを保留することができ、当該段のラッチも遅らせることができるので、本発明をパイプライン方式の回路に適用することが出来る。
【００２５】
請求項１２記載の非同期式回路の制御回路は、請求項１１において、例えば、図２４及び図２５に示すように、前記ストール制御回路（ＳＣ）２４は、２つの論理和を取る論理和回路２５と、Ｃ素子（Ｃ）２６で構成され、前記論理和回路２５の第１の入力端（＃１）には前記ストール信号（ｓｔａｌｌ）が入力され、前記論理和回路２５の第２の入力端（＃２）には、ａｃｋ信号が接続されると共に、前記第２の入力端（＃２）は、前記Ｃ素子（Ｃ）２６の一方の入力端に接続され、前記論理和回路２５の出力端は前記Ｃ素子（Ｃ）２６の他方の入力端に接続され、前記Ｃ素子（Ｃ）２６の出力がストール制御回路（ＳＣ）２４（＃３）の出力であるように構成したものである。
【００２６】
このように構成すると、Ｃ素子（Ｃ）２６、論理和回路２５を追加するだけで制御回路をパイプライン構成の回路に適用することが出来ると共に、Ｃ素子（Ｃ）の特徴である、高速性を活かした特性を得ることが出来る。
【発明の効果】
【００２７】
以上、本発明によれば、非同期式回路の制御回路において、特別の休止相を設けることなく各回路ブロックの演算終了後、初期状態に復帰する構成が簡略な構成で実現することが出来るので、回路の高速化、低消費電力化に有効となる。また、この本発明の特徴を有したまま、パイプライン処理の回路に適用することが出来るので、広い適用範囲を持つことが出来る。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態について、図面を参照して説明する。なお、各図において互いに同一あるいは相当する部分については同一符号又は類似符号を付し、重複した説明は省略する。また、同一の回路が複数ある場合の下付き添え字については、これら回路に共通する説明の場合には添え字を省略する場合がある。また、本明細書において、各部端子とその端子における信号について、図面では同じ符号を用いることがある。
本明細書および特許請求の範囲について、「接続」とは、二つ以上の回路又は素子が電気的につながれたことを言い、その間に、遅延手段、パルス幅変更手段、インバータ、抵抗、リアクタンス等のエレメントが本発明の本質を変更しない範囲で介されてつながれることを含む。
また、各制御信号端の信号ステートの遷移に関し、“０”から“１”への遷移を「立ち上がり」と、“１”から“０”への遷移を「立ち下がり」と、言うことがある。
ここにおいて、各信号端の信号は、“１”と“０”の２つのステートのいずれかを取るが、この２つのステートは、ステートの状態を区別したものであり、具体的な入出力電圧を表しているものではない。前記演算回路２が演算動作を行わず、以前の演算結果を保持する待機モード（前記休止相に対応、演算終了後、十分の時間が経過して、各信号端が定常の状態になった状態）の時の、前記入力端（ｉｎ端）、出力端（ｏｕｔ端）、演算実行制御信号端（ｍｕｘ端）、及びラッチ信号端（ｌａｔ）の取る信号ステートを、“０”ステートと表す。
【００２９】
図１は、本発明に関する非同期式回路の全体構成図で、回路ブロックが３個の例を示し、制御回路１１〜１３と演算回路２１〜２３で構成される（但し、１３，２３は、回路ブロック４３の内部回路であり図示せず）。入力信号ｉｎは前段の回路ブロックからの制御入力信号であり、出力信号ｏｕｔは次段への制御を引き継ぐための制御信号で、各々、ハンドシェイク信号である。尚、複数の演算結果を待ってから演算を行う場合（合流回路）は、制御回路１２のように入力信号が複数（ｉｎ２（１），ｉｎ２（２））になる。
【００３０】
図１を参照してその動作を説明する。図１は、第１段目の演算回路２１で（ａ＋ｂ）の演算を行い、その結果と、演算回路２３の演算結果ｄとの算術積を第２段目の演算回路２２で行う例を示したものである。演算回路２１には、演算器７、演算結果を格納するレジスタ５、制御回路の出力ｍｕｘ１で入力データａ及びｂを各々、演算器７の入力端に接続するマルチプレクサ６ａ、６ｂ、及び、演算結果をレジスタ５に接続するマルチプレクサ６ｃを有する。
制御回路１１に制御入力信号（ｉｎ１）が入力されると、その立下りをトリガにｍｕｘ１信号、ｌａｔ１信号、及びｏｕｔ１信号が立ち上り、入力データａ、ｂが演算器７の入力端に接続され演算が実行される。また、その結果がレジスタ５に入力される。次に、演算時間に対応する時間経過後ｌａｔ１信号の立ち下りでレジスタ５がラッチされ、演算結果が保持されと共に、ｍｕｘ１信号が立ち下がり、その後、ｏｕｔ１信号が立ち下がる。この状態で、１段目の制御回路の信号端のすべては、信号ステートが“０”となる。尚、レジスタ５が立ち上がりでラッチされるような場合はラッチ信号ｌａｔをインバータを介して接続すればよい。
次段の制御回路１２では、回路ブロック４１及び４３での演算の双方の終了、即ち、双方の出力信号ｏｕｔ１、ｏｕｔ３の双方の立ち下がりを検出し、双方の演算回路の演算結果（ｃ＝ａ＋ｂ）、及び（ｄ）を使って同様の演算を実行し、目的とする（ｅ＝（ａ＋ｂ）×ｄ）の演算結果を得る。尚、回路ブロック４２における演算時に回路ブロック４１及び４３で別の入力データによる演算を同時に行う、いわゆるパイプライン動作を行わせることも出来る。
尚、パイプライン動作については後述する。
【００３１】
図２は、制御回路１の内部構成を示したものである。制御回路１は、ｒｅｑ信号生成回路８、遅延回路（Ｄ１）９、遅延回路（Ｄ３）１０、及び演算実行制御信号生成手段１１で構成される。演算実行制御信号生成手段１１は、種々の実施の形態があり具体的には後述するが、本図では論理和回路１２を用いた実施の形態（図２０（ａ）参照）を例に以下の動作を説明する。
図３は、本発明で使用する遅延回路（Ｄ１）９，（Ｄ２）１５，（Ｄ３）１０の特性を示したものである。特性は、〔ｄ０，ｄ１〕のように表され、この場合、ｄ０  、ｄ１が各々、立ち上がり時間，及び立下り時間の遅れを示す。
図４は、この遅延回路を実現するための具体的な構成を示したものである。（ａ）は立ち上がりを遅延させる回路で、（ｂ）は立ち下がりを遅延させる回路である。共に、ゲート遅延（遅延量：Ｄ）を利用したもので、必要な遅延量（図では、３Ｄ）が得られるように論理積回路、論理和回路の段数を設定する。尚、説明の便宜上、図中＃４のゲートの遅延時間は他のゲートの遅延時間に比べて無視できる場合を表示している。このため、（ａ）及び（ｂ）で、各々、立ち下がり、立ち上がりタイミングが一致する。
【００３２】
図５は、図２の回路ブロック１において、演算開始から終了、及び次段に対する出力信号の送出までの動作を示したものである。以下時間を追って説明する。
尚、特に断らない限りゲート間の遅延は無視して表示し、その因果関係を細い矢印付き線で示した。
（１）演算開始前においては、各部の信号ステートはすべて“０”である（時間：ｔ０）。
（２）前段からの入力信号ｉｎが一旦、“１”となる。この変化は前段の演算開始を示しているが、本段での動作には無関係である（時間：ｔ１）。
（３）前段の演算が終了すると、入力信号ｉｎが立ち下がる。これを受けて、ｒｅｑ信号が立ち上がる（時間：ｔ２）。この“１”のステートはｔ３まで継続される。尚、ｒｅｑ信号のパルス幅（ｔ３―ｔ２）は、演算時間の範囲で設定する。このパルス幅はｒｅｑ信号生成回路の具体的な構成で決まる。
（４）ｒｅｑ信号は、遅延回路（Ｄ１）９を通過することによりａｃｋ信号となる。遅延回路（Ｄ１）９の遅延特性は〔ｄ１０，ｄ１１〕である。従って、ａｃｋ信号がｄ１０に対応する時間で立ち上がり（時間：ｔ２）、ｄ１１に対応する時間で立ち下がる（時間：ｔ４）波形が得られる。時間：ｔ２〜ｔ４が演算時間に対応する。尚、ｄ１０の値は、出来るだけ小さい値を設定する。
（５）ａｃｋ信号とｒｅｑ信号の論理和出力からｍｕｘ信号を得る（時間：ｔ２〜ｔ４）。この処理により、ａｃｋ信号の立ち上がりが遅延する場合にも最大限の演算時間を確保することが出来る。尚、この動作は、本図で記載した、ｒｅｑ信号とａｃｋ信号を論理和回路１２の入力とする、演算実行制御信号生成手段１１の構成の場合に限られる。その他の実施の形態に付いては図２０，図２１で説明する。
（６）ａｃｋ信号の立ち下り後、立ち下がるｌａｔ信号を得る（時間：ｔ２〜ｔ４）。
（７）ａｃｋからｏｕｔ信号を得る。尚、この場合、遅延回路（Ｄ３）１０を介してｏｕｔ信号を得ると、演算結果の格納にホールドタイム（立ち下り遅延時間：ｄ３１に対応）を設けてからｏｕｔ信号の立下りが実行されるので、前段の演算結果データを確実に保持した上で次段の演算を実行することが担保される。このような点で遅延回路（Ｄ３）１０を設けることが望ましいが、上で述べたａｃｋ信号とｏｕｔ信号の時間関係が保持されていれば前記遅延回路（Ｄ３）１０を特別に設けることは必ずしも必須ではない（時間：ｔ５）。
（８）以上の動作の後、制御回路１の制御出力端ｉｎ，ｏｕｔ，ｍｕｘ，ｌａｔ各端はすべて待機モードステートである“０”となる（時間：ｔ６）。
【００３３】
図６は、前記ｒｅｑ信号生成回路８の更に具体的な構成を示したものである。図６には、理解の便宜のため、演算実行制御信号生成手段１１とｍｕｘ信号端、ｌａｔ信号端、及びｏｕｔ信号端との関係も示した。尚、図６では、図２の場合と同様、演算実行制御信号生成手段１１として、二つの入力端の論理和回路１２を用いる実施の形態（図２０（ａ）参照）を図示してあるが、この形態に限定することはなく、後述の種々の実施の形態が適用できることは明らかである
図に示すように、前記ｒｅｑ信号生成回路８は、立ち上がりエッジ検出回路（ＥＤ）１３、論理積回路１４、及び好ましくは遅延回路（Ｄ２）１５で構成される。信号入力ｉｎはエッジ検出回路（ＥＤ）１３の入力に接続され、ｒｅｑ信号は論理積回路１４の出力として得られる。前記エッジ検出回路（ＥＤ）１３は、入力ｉｎが立ち上がった場合、その出力ａのステートを“１”に保持し、リセット信号（ｒｅｓｅｔ）が立ち上がった場合にステート“０”に戻す回路であり、具体的にはフリップフロップで実現できる。リセット信号は、論理積回路１４の出力から遅延回路（Ｄ２）１５を介して供給される。遅延回路（Ｄ２）１５の遅延特性〔ｄ２０，ｄ２１〕については、ｒｅｑ信号のパルス幅をある程度保った上で、ｄ２０を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はない。論理積回路１４の一方の入力はエッジ検出回路（ＥＤ）１３の出力に接続され、他方の入力はエッジ検出回路（ＥＤ）１３の入力端とインバータ１６を介して接続される。
【００３４】
図７は、図６の構成において、演算開始から終了、次段に対する出力信号の送出までの動作を示したものである。以下時間を追って説明する。
（１）演算開始前においては、各部の信号ステートはすべて“０”である（時間：ｔ０）。
（２）前段からの入力信号ｉｎが一旦、“１”となると、エッジ検出回路（ＥＤ）１３の出力ａは立ち上がり、“１”を保持する。この信号は論理積回路１４の一方の入力端に入力される。但し、この時の他方の入力端のステートはインバータ１６により、“０”である（時間：ｔ１）。
（３）演算開始を促す入力信号ｉｎの立下りがあると、前記論理積回路１４の他方の入力端が“１”になるため、論理積回路１４の出力は“１”となり、ｒｅｑ信号が立ち上がる（時間：ｔ２）。
（４）ｒｅｑ信号の立ち上がり以降、ａｃｋ信号、ｍｕｘ信号、ｌａｔ信号、ｏｕｔ信号が立ちあがる。この過程は図５の構成の場合と同じであるので説明を省略する（時間：ｔ２〜ｔ５）。
（５）ｒｅｑ信号の遅延信号であるｒｅｓｅｔ信号が立ち上がり、エッジ検出回路（ＥＤ）１３の出力ａは“０”にリセットされ、ｒｅｑ信号が立ち下る（時間：ｔ３）。
（６）ｒｅｑ信号の立ち下りにより、遅延回路（Ｄ２）１５の遅延特性に従って、ｒｅｓｅｔ信号が立ち下がる（時間：ｔ３）。
（７）以上の動作の後、制御回路１の制御出力ｉｎ，ｏｕｔ，ｍｕｘ，ｌａｔはすべて待機モードステートである“０”となる（時間：ｔ６）。
【００３５】
図８は、前記ｒｅｑ信号生成回路８の他の具体的な構成を示したものである。本構成は、入力信号が“１”から“０”に遷移した時に、“１”を出力して保持し、リセット信号が入力したときに出力を“０”に戻す立ち下がり検出型のエッジ記憶回路１３’を用いたもので、この場合は、図６の論理積回路（ＡＮＤ）１４を省略でき、より簡易な構成で実現できる。
【００３６】
図９は、図８の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。これは、図７に比べて、“ａ”が、入力信号（ｉｎ）の立ち下りに応じて立ち上がる点（時間：ｔ２）を除いて同じであるので説明は省略する。
【００３７】
図１０は、前記ｒｅｑ信号生成回路８の他の具体的な構成を示したものである。図１０では、図６と同様に、理解の便宜のため、演算実行制御信号生成手段１１とｍｕｘ信号端、ｌａｔ信号端、及びｏｕｔ信号端との関係も示した。
図１０に示すように、前記ｒｅｑ信号生成回路８は、ＭｕｌｌｅｒのＣ素子と言われるＣ素子（Ｃ）１７（前記、非特許文献１参照）、論理積回路１８、及び好ましくは遅延回路（Ｄ２）１５で構成される。入力信号ｉｎは、論理積回路１８の入力の一方にインバータ１９を介して接続されると共に、前記Ｃ素子（Ｃ）の一方の入力端（Ｃ１）に接続される。Ｃ素子（Ｃ）の他方の入力端（Ｃ２）には、論理積回路の出力から遅延回路（Ｄ２）１５及びインバータ２０を介して供給される。遅延回路（Ｄ２）１５の遅延特性〔ｄ２０，ｄ２１〕については、ｒｅｑ信号のパルス幅をある程度保った上で、ｄ２０を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はないことは勿論である。Ｃ素子（Ｃ）の出力（ＣＯ）は前記論理積回路１８の他方の入力端に接続される。前記ｒｅｑ信号生成回路８の出力は、前記論理積回路１８の出力として得られる。
【００３８】
図１１は、前記Ｃ素子（Ｃ）１７の真理値表を示したもので、２つの入力（Ｃ１，Ｃ２）が同じ場合はその入力ステートを出力し、異なる場合は前の状態を保持する回路である。尚、本発明では出力ＣＯの初期値は“０”にセットされる。具体的なＣ素子（Ｃ）１７の回路構成を図１２に示す。
【００３９】
図１３は、図１０の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。以下時間を追って説明する。尚、Ｃ素子（Ｃ）１７の入力端のうち、遅延回路（Ｄ２）１５を経由した信号については、インバータ２０の入力側の信号を“Ｃ２”、出力側の信号を“Ｃ２＿bar”として示した。Ｃ素子（Ｃ）１７の出力ＣＯの初期値は“０”である。
（１）演算開始前においては、各部（Ｃ２＿barを除く）の信号ステートはすべて“０”である（時間：ｔ０）。
（２）前段からの入力信号ｉｎが一旦、“１”となると、Ｃ素子（Ｃ）１７の２つの入力が“１”となるのでＣＯが立ち上がる（時間：ｔ１）。
（３）演算開始を促す入力信号ｉｎの立下りがあると、Ｃ素子（Ｃ）１７の一方の入力Ｃ１は“０”に立ち下がるが、他方の入力端のＣ２＿barが“１”を保持しているのでＣ素子（Ｃ）１７の出力ＣＯはその直後しばらくの間、“１”を保持する。従って、論理積回路１８の出力は“１”となり、ｒｅｑ信号も立ち上がる（時間：ｔ２）。
（４）ｒｅｑ信号の立ち上がり以降、ａｃｋ信号、ｍｕｘ信号、ｌａｔ信号、ｏｕｔ信号が立ちあがる。この過程は図５の構成の場合と同じであるので説明を省略する。
（５）ｒｅｑ信号の遅延信号であるＣ２信号が遅延回路（Ｄ２）１５の特性にしたがって立ち上がり、これに従ってＣ２＿bar信号も立ち下がる。すると、Ｃ素子（Ｃ）の両入力が“０”となるので、ＣＯが“０”となり、ｒｅｑ信号が立ち下がる（時間：ｔ３）。
（６）ｒｅｑ信号の立ち下がりを受けてＣ２が立ち下がり、Ｃ２＿barが立ち上がる（時間：ｔ４）。
（７）以上の動作の後、制御回路１の制御出力ｉｎ，ｏｕｔ，ｍｕｘ，ｌａｔはすべて待機モードステートである“０”となる（時間：ｔ８）。
【００４０】
以上の説明は、演算が前段のみのデータを用いて行われる場合についてであるが、実際には、例えば、図１のように複数の演算結果（回路ブロック４１の“ｃ”、及び回路ブロック４３の“ｄ”）を受けて演算を行う場合がある。図１４は、複数（ｎ個）の回路ブロック１の全ての終了結果を受けて次の論理演算を実行する合流回路に使用される、ｒｅｑ信号生成回路８’の具体的な構成を示したものである。図１４には、理解の便宜のため、演算実行制御信号生成手段１１とｍｕｘ信号端、ｌａｔ信号端、及びｏｕｔ信号端との関係も示した。図に示すように、前記ｒｅｑ信号生成回路８’は、各々ｎ個の立ちあがりエッジ検出回路（ＥＤ）１３（ｉ）、及び好ましくは遅延回路（Ｄ２）１５と、２ｎ個の入力端数を持つ論理積回路１４’で構成される。各信号入力ｉｎ（ｉ）はエッジ検出回路（ＥＤ）１３（ｉ）の入力に接続され、ｒｅｑ信号は論理積回路１４’の出力として得られる。前記エッジ検出回路（ＥＤ）１３（ｉ）は、入力ｉｎが立ち上がった場合、その出力ａｉのステートを“１”に保持し、リセット信号（ｒｅｓｅｔ）が立ち上がった場合にステート“０”に戻す回路である。リセット信号は、論理積回路１４’の出力から遅延回路（Ｄ２）１５を介して供給される。遅延回路（Ｄ２）１５の遅延特性〔ｄ２０，ｄ２１〕については、ｒｅｑ信号のパルス幅をある程度保った上で、ｄ２０を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はないことは勿論である。論理積回路１４’のｎ個の入力は各エッジ検出回路（ＥＤ）１３（ｉ）の各出力に接続され、ｎ個の入力は各エッジ検出回路（ＥＤ）１３（ｉ）の入力端とインバータ２１（ｉ）を介して各々接続される。
【００４１】
図１５は、図１４の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。図７と類似の動作を行うものであるが、すべての入力信号ｉｎ（ｉ）の立ち下がりが検出されたことを条件にｒｅｑ信号が立ちあがる点に特徴がある。以下時間を追って説明する。
（１）演算開始前においては、各部の信号ステートはすべて“０”である（時間：ｔ０）。
（２）前段からの入力信号ｉｎ（ｉ）が一旦、“１”となると、各エッジ検出回路（ＥＤ）１３（ｉ）の出力ａ（ｉ）は立ち上がり、“１”を保持する。この信号は論理積回路１４’の入力端に入力される。更に、各入力信号ｉｎ（ｉ）はインバータ２１ｉを介して論理積回路１４’の別の入力端に入力され、そのステートは、“０”である（時間：ｔ１，ｔ３，ｔ５）。
（３）演算開始を促す入力信号ｉｎ（ｉ）に立下りがあると（ｔ２、ｔ４、ｔ６）、インバータ２１（ｉ）を経由した信号は論理積回路の入力端で“１”になる。しかし、複数の入力信号ｉｎ（ｉ）のうち、立ち下がらないものが一つでもあると、論理積回路１４’の出力は“０”となり、ｒｅｑ信号は立ち上がらない。
（４）すべての入力端（ｉｎ（ｉ）端）で立ち下がりが検出されると、（本図の場合、ｉｎ（２）：ｔ６）論理積回路１４’のすべての入力端が“１”となり、ｒｅｑ信号が立ち上がる（時間：ｔ６）。
（５）ｒｅｑ信号の立ち上がり以降、ａｃｋ信号、ｍｕｘ信号、ｌａｔ信号、ｏｕｔ信号が立ちあがる。この過程は図５の構成の場合と同じであるので説明を省略する（ｔ６〜ｔ１１）。
（６）ｒｅｑ信号の遅延信号であるｒｅｓｅｔ信号が立ち上がり、エッジ検出回路（ＥＤ）１３（ｉ）の各出力ａ（ｉ）は“０”にリセットされ（時間：ｔ７）、更に、ｒｅｑ信号が立ち下る（時間：ｔ８）。
（７）ｒｅｑ信号の立ち下りにより、遅延回路（Ｄ２）１５の遅延特性に従って、ｒｅｓｅｔ信号が立ち下がる（時間：ｔ９）。
（８）以上の動作の後、制御回路１の制御出力ｉｎ，ｏｕｔ，ｍｕｘ，ｌａｔはすべて待機モードステートである“０”となる（時間：ｔ１２）。
【００４２】
図１６は、複数（ｎ個）の入力信号を持つ前記ｒｅｑ信号生成回路８’の他の具体的な構成を示したものである。本構成は、入力信号が“１”から“０”に遷移した時に、“１”を出力して保持し、リセット信号が入力したときに出力を“０”に戻す立ち下がり検出型のエッジ記憶回路１３’を用いたもので、この場合は、図１４の論理積回路（ＡＮＤ）１４’の入力端子数を少なくすることができ、より簡易な構成で実現できる。
【００４３】
図１７は、図１６の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。これは、図７に比べて、“ａ（ｉ）”が、入力信号（ｉｎ）の立ち下りに応じて立ち上がる点（時間：ｔ２、ｔ４、ｔ６）を除いて同じであるので説明は省略する。
【００４４】
図１８は、複数（ｎ個）の入力信号を持つｒｅｑ信号生成回路８’の他の具体的な構成を示したものである。図１８には、理解の便宜のため、演算実行制御信号生成手段１１とｍｕｘ信号端、ｌａｔ信号端、及びｏｕｔ信号端との関係も示した。
図１８に示すように、前記ｒｅｑ信号生成回路８’は、ｎ個のＭｕｌｌｅｒのＣ素子（Ｃ）１７（ｉ）、好ましくは遅延回路（Ｄ２）１５、及び、入力端の数が２ｎの論理積回路１８’で構成される。各入力信号ｉｎ（ｉ）は、論理積回路１８’の入力の一方にインバータ２２（ｉ）を介して接続されると共に、前記Ｃ素子（Ｃ）１７（ｉ）の一方の入力端（Ｃ１）に接続される。Ｃ素子（Ｃ）１７（ｉ）の他方の入力端（Ｃ２）には、論理積回路１８’の出力から遅延回路（Ｄ２）１５及びインバータ２３（ｉ）を介して供給される。遅延回路（Ｄ２）１５の遅延特性〔ｄ２０，ｄ２１〕については、ｒｅｑ信号のパルス幅をある程度保った上で、ｄ２０を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はない。Ｃ素子（Ｃ）１７（ｉ）の出力（ＣＯ（ｉ））は前記論理積回路１８’の他方の入力端に接続される。前記ｒｅｑ信号生成回路８’の出力は、前記論理積回路１８’の出力として得られる。
【００４５】
図１９は、図１８の構成において、演算開始から終了、次段に対する出力信号の送出までの動作を示したものである。図１３と類似の動作を行うものであるが、すべての入力信号ｉｎ（ｉ）の立ち下がりが検出されたことを条件にｒｅｑ信号が立ち上がる点に特徴がある。以下時間を追って説明する。
（１）演算開始前においては、各部の信号ステートはすべて“０”である（時間：ｔ０）。
（２）前段からの入力信号ｉｎ（１）が一旦、“１”となると、Ｃ素子（Ｃ）の２つの入力が“１”となるのでＣＯ（１）が立ち上がる（時間：ｔ１）。
（３）演算開始を促す入力信号ｉｎ（１）の立下りがあると、ｉｎ（１）に接続された、Ｃ素子（Ｃ）１７（１）の一方の入力Ｃ１は“０”に立ち下がるが、他方の入力端のＣ２＿barが“１”を保持しているのでＣ素子（Ｃ）１７（１）の出力ＣＯ（１）はその直後しばらくの間、“１”を保持する。しかし、他の入力信号の立ち下がりが検出されていないので、論理積回路１８’の入力のすべてが“１”にならず、ｒｅｑ信号は“０”のままである（時間：ｔ２〜ｔ４）。
（４）すべての入力信号のうち最後の入力信号（ｉｎ（２））の立ち下がりがあると（時間：ｔ６）、論理積回路１７’のすべての入力端が“１”となり、ｒｅｑ信号が立ちあがる（時間：ｔ７）。この立ち上がり以降、ａｃｋ信号、ｍｕｘ信号、ｌａｔ信号、ｏｕｔ信号が立ちあがる。尚、この過程は図５の構成の場合と同じであるので説明を省略する（ｔ７〜ｔ１１）。
（５）ｒｅｑ信号の遅延信号であるＣ２信号が遅延回路（Ｄ２）１５の特性にしたがって立ち上がり、これに従ってＣ２＿bar信号も立ち下がる。すると、各Ｃ素子（Ｃ）１７（ｉ）の二つの入力が共に“０”となるので、すべてのＣＯ（ｉ）が“０”となり（時間：ｔ８）、ｒｅｑ信号が立ち下がる（時間：ｔ９）。
（６）以上の動作の後、制御回路１の制御出力ｉｎ，ｏｕｔ，ｍｕｘ，ｌａｔはすべて待機モードステートである“０”となる（時間：ｔ１２）。
【００４６】
以上、演算実行制御信号生成手段１１については、ａｃｋ信号とｒｅｑ信号の論理和を取る実施の形態を例に説明を行ってきたが、その他、種々の形態が可能である。即ち、ｍｕｘ信号は、演算の実施を制御するものであり、演算回路の稼動率を上げるためできるだけ演算実行を行わない時間長を短くする必要がある。前記ｒｅｑ信号からａｃｋ信号等を得る時の遅延回路等の立ち上がり時間は短い方が望ましいが現実には有限であり、ｒｅｑ信号からａｃｋ信号等の立ち上がりまでの時間差が無駄な時間となることがある。本発明の演算実行制御信号生成手段では、以下のように、このような無駄を省略するような構成を取っている。
図２０は、演算実行制御信号生成手段１１の種々の構成を示したものである。（ａ）は、２入力の論理和回路１２を用いたもの、（ｂ）は、３入力の論理和回路１２’を用いたもの、（ｃ）は、論理和回路を用いない構成である。
図２１は、上記（ａ）乃至（ｃ）の構成の各部信号を示したものである。（ａ）では、ｒｅｑ信号及びａｃｋ信号の論理和を取ることによってｍｕｘ信号を得る。このようにすると、ｒｅｑ信号が立ち上がり、ａｃｋ信号が立ちあがっていない部分（図中、ｔｌｏｓｓとして示した）も演算時間として使用できるので高速な動作が実現できる。（ｂ）の構成は、（ａ）に加えて、更にｏｕｔ信号との論理和を得るもので、ホールドタイムを確保できる。（ｃ）は、ａｃｋ信号をそのままｍｕｘ信号として使用するもので、速度の点では劣るが回路構成が簡単になるという利点がある。
【００４７】
ここまでの説明は、例えば、図１のように、回路ブロック４１が、ｃ＝（ａ＋ｂ）の演算、回路ブロック４２が、ｅ＝ｃ×ｄの２段階の演算（以下、タスクと言う）を行った後、次のタスクを行う、非パイプライン処理を前提に説明した。以下に、パイプライン処理に本願発明を適用する場合の構成について説明する。
図２２は、本発明をパイプライン処理に適用した構成である。パイプラインとは、例えば、図２３のように回路ブロック４１〜４３で一連の演算を行う際、回路ブロック４１でタスクＡの第１段の演算が終了した後、回路ブロック４２でタスクＡの第２段の演算を実行している間に、回路ブロック４１で次のタスクＢの第１段の演算を行うもので複数のタスクの演算を同時に行い全体として演算速度を向上することを目的とするものである。この場合、例えば、図２３のｔｓのように、回路ブロック４１の演算時間が４２の演算時間より短い場合、４２の演算が終了しないうちに４１の演算が終了することがある。このような時、次段へ演算開始制御信号（ｏｕｔ信号）を送っても、回路ブロック４２では前の演算を実行中のため、回路ブロック４１の動作を４２の演算が終了するまで一時保留する必要がある。これをストール（ｓｔａｌｌ）と言う。本発明では、図２２のように、ストール制御用の信号（ｓｔａｌｌ）を次段のｏｕｔ信号として前段の動作を制御することにより上記の問題を回避する。これは、次段のｏｕｔ信号が“１”のときは次段の動作が実行モードであり、ｏｕｔ信号が“１”から“０”に推移した時、次段の演算が終了したことを示していることを利用して、次段のｏｕｔ信号の立ち下りを検出するまで前段のｏｕｔ信号、ｍｕｘ信号、ｌａｔ信号を立ち下げないように構成する。
【００４８】
図２４は、本発明をパイプライン処理に適合するようにした構成例である。（ａ）、（ｂ）、（ｃ）は、各々、前述の演算実行制御信号生成手段が図２０の（ａ）〜（ｃ）に対応したものである。図２４のように、遅延回路（Ｄ１）９の出力であるａｃｋ信号とｌａｔ信号の間にストール制御回路（ＳＣ）２４を挿入したものである。該ストール制御回路（ＳＣ）２４は、例えば、図２４のように、論理和回路２５とＣ素子（Ｃ）２６で構成され、ｓｔａｌｌ信号が“０”の時（即ち、次段の演算が待機モードの時）、ａｃｋ信号はそのままｌａｔ信号端に送出され、ｓｔａｌｌ信号が“１”の時（即ち、次段の演算が実行モードの時）であって、ａｃｋ信号が“１”の時は、所定の演算時間を経過した後も“１”を保持し、ｓｔａｌｌ信号が“０”に遷移した後にａｃｋ信号をｌａｔ信号に送出、即ち、ｌａｔ信号を“０”として、前段の演算結果を保留する。尚、ストール制御回路（ＳＣ）２４の具体的構成は、上記機能が実現できれば、図２４の構成に限定されるものではない。
【００４９】
図２５は、図２４で示したストール制御回路（ＳＣ）２４の動作を示したものである。＃１端子、＃２端子、＃３端子は、各々、ｓｔａｌｌ信号、ａｃｋ信号、及びｌａｔ信号端子に接続される。尚、Ｃ素子（Ｃ）の出力の初期値は“０”である。図で、（１）〜（４）は静的な状態、（５）〜（６）は、（５）から（６）の順に、ｓｔａｌｌ信号又はａｃｋ信号が矢印のように変化した時の出力を示したものである。尚、状態（５）〜（６）のような動的な変化については、ここで挙げたもの以外にも考えられるが、本願発明の動作に直接関連するもののみを示した。ｓｔａｌｌ信号（＃１）が“０”の時（状態：（１）、（２））、出力信号（＃３）と＃２の信号と同一であり、ａｃｋ信号端とｌａｔ信号端が接続されたのと同じになる。ｓｔａｌｌ信号（＃１）が“１”で、ａｃｋ信号（＃２）が“１”の時（状態：（４））、出力信号は“１”であり、この状態で＃２のａｃｋ信号が“０”に遷移しても出力信号＃３は“１”を保持する（状態：（５））。この状態で＃１のｓｔａｌｌ信号が“０”に遷移すると出力信号＃３は“０”に遷移する（状態：（６））。
以上のように、Ｃ素子（Ｃ）２６と論理和回路２５を用いれば簡単な構成で、前記ストール制御回路を実現できる。しかも、Ｃ素子（Ｃ）の特徴である高速性を備えた特性を実現することが出来る。
【００５０】
図２６は、図２２の構成において、回路ブロック４１，４２を用いた、２段のパイプライン動作（タスクＡ，Ｂ，Ｃを処理）を示したタイムチャートである。本図は、演算実行制御信号生成手段が図２０の（ａ）に対応したもので説明する。各信号の名称は図２２に対応させてある。ｉｎ１の立ち下がり時点、ｔ１、ｔ３、ｔ７で各々、タスクＡ，Ｂ，Ｃの演算が一段目の回路ブロック４１で開始され、ｉｎ２（ｏｕｔ１）の立ち下がり時点、ｔ２’、ｔ４’’、ｔ８’で各々、タスクＡ，Ｂ，Ｃの演算が二段目の回路ブロック４２で開始される。回路ブロック４２の演算時間は４１の演算時間に比べて長いとする。ｉｎ１の立ち下がり（ｔ１）を検出し、タスクＡの演算を開始し、演算終了後、ｌａｔ１信号及びｍｕｘ１信号をｔ２で、ｏｕｔ１信号をｔ２’で立ち下げる。この間、次段のｓｔａｌｌ信号（ｏｕｔ２信号）は“０”である。
回路ブロック４２はｔ２’でタスクＡの演算を開始し、演算終了後、ｌａｔ２信号及びｍｕｘ２信号をｔ５で、ｏｕｔ２信号をｔ５’で立ち下げる。
次に、回路ブロック４１はｔ３でタスクＢの演算を開始し、ｔ４で演算を終了する。しかし、この時点では次段の回路ブロック４２はタスクＡの演算を終了していない。即ち、ｏｕｔ２信号（ｓｔａｌｌ２信号）は“１”であり、ストール制御回路の出力は、“１”の状態を取り、ｌａｔ１、ｍｕｘ１、ｏｕｔ１信号はいずれも“１”を次段の演算が終了するまで保持する。次段の回路ブロック４２で、タスクＡの演算が終了するとｔ５でｌａｔ２，ｍｕｘ２信号が、ｔ５’でｏｕｔ２信号が立ち下がり、同時にｓｔａｌｌ１信号が前段の回路ブロック４１に入力される。回路ブロック４１では、ｌａｔ１信号及びｍｕｘ１信号をｔ４’で、ｏｕｔ１信号をｔ４’’で立ち下げる。このようにして、タスクＡ，Ｂ間で回路ブロック４２の競合を調整する。
回路ブロック４２では、ｔ４’’からタスクＢの演算を実行し、ｔ６’でｏｕｔ２信号を送出し、更に次段に演算を引き継ぐ。
ｔ７でｉｎ１信号が立ち下がり、タスクＣの演算が開始され、ｔ８までに終了するが、この場合は、図のように、次段の回路ブロック４２で演算を実行しておらずｓｔａｌｌ２信号（ｏｕｔ２）が“０”のため、ｔ８でｌａｔ１信号及びｍｕｘ１信号を、ｔ８’でｏｕｔ１信号を立ち下げる。これによって次段でのＣタスクの演算が実行される。
【００５１】
このように、本発明の実施の形態で説明した非同期式回路の制御回路は、特別の休止相を設けることなく各回路ブロックの演算終了後、演算回路が初期状態に復帰するので、演算の高速化、消費電力の低減が可能となる。また、本発明は、パイプライン方式を簡易な回路の追加で実現できるので、その応用範囲が広いという特徴を有する。更に、本発明は、ｍｕｌｌｅｒのＣ素子（Ｃ）を用いて構成することができるので、Ｃ素子（Ｃ）の特徴である簡易な回路で高速特性が得られるという特徴を有する。
【００５２】
尚、本願に係る発明は以上説明した実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で適宜変更して実施することができることは勿論である。
【図面の簡単な説明】
【００５３】
【図１】本発明に関する非同期式回路の全体構成図
【図２】制御回路１の内部構成図
【図３】遅延回路（Ｄ１），（Ｄ２），（Ｄ３）の特性を示した図
【図４】遅延回路を実現するための具体的な構成図
【図５】図２の回路ブロックの動作を説明した図
【図６】ｒｅｑ信号生成回路８の具体的な構成図
【図７】図６の構成の動作を説明した図
【図８】ｒｅｑ信号生成回路８の他の具体的な構成図
【図９】図８の構成の動作を説明した図
【図１０】ｒｅｑ信号生成回路８の他の具体的な構成図
【図１１】Ｃ素子（Ｃ）１７の真理値表を示した図
【図１２】Ｃ素子（Ｃ）１７の具体的構成図
【図１３】図１０の構成の動作を説明した図
【図１４】合流回路に使用される、ｒｅｑ信号生成回路８’の具体的な構成図
【図１５】図１４の構成の動作を説明した図
【図１６】ｒｅｑ信号生成回路８’の他の具体的な構成図
【図１７】図１６の構成の動作を説明した図
【図１８】合流回路に使用される、ｒｅｑ信号生成回路８’の他の具体的な構成図
【図１９】図１８の構成の動作を説明した図
【図２０】演算実行制御信号生成手段の構成図
【図２１】演算実行制御信号生成手段の各部信号を説明した図
【図２２】本発明をパイプライン処理に適用した場合の構成図
【図２３】各回路ブロックにおけるパイプライン処理の動作を説明する図
【図２４】本発明をパイプライン処理に適用した場合の具体的回路図
【図２５】ストール制御回路（ＳＣ）の動作を示した図
【図２６】図２２の構成で３段のパイプライン動作を行った場合のタイムチャート
【図２７】従来の非同期式回路の構成
【符号の説明】
【００５４】
１ｉ    制御回路
２ｉ    演算回路
３    データパス
４ｉ    回路ブロック
５    レジスタ
６ａ，６ｂ，６ｃ    マルチプレクサ
７    演算器
８，８’  ｒｅｑ信号生成回路
９    遅延回路（Ｄ１）
１０    遅延回路（Ｄ３）
１１    演算実行制御信号生成手段
１２，１２’    論理和回路
１３    立ち上がりエッジ検出回路（ＥＤ）
１３’  立ち下がりエッジ検出回路（ＥＤ’）
１４，１４’，１４’’    論理積回路
１５    遅延回路（Ｄ２）
１６    インバータ
１７    Ｃ素子（Ｃ）
１８，１８’    論理積回路
１９〜２３    インバータ
２４    ストール制御回路（ＳＣ
２５    論理和回路
２６    Ｃ素子（Ｃ）
１０１ｉ    制御回路
１０２ｉ    演算回路
１０４ｉ    回路ブロック
【図１】
2008181170.tif 000003
【図２】
2008181170.tif 000004
【図３】
2008181170.tif 000005
【図４】
2008181170.tif 000006
【図５】
2008181170.tif 000007
【図６】
2008181170.tif 000008
【図７】
2008181170.tif 000009
【図８】
2008181170.tif 000010
【図９】
2008181170.tif 000011
【図１０】
2008181170.tif 000012
【図１１】
2008181170.tif 000013
【図１２】
2008181170.tif 000014
【図１３】
2008181170.tif 000015
【図１４】
2008181170.tif 000016
【図１５】
2008181170.tif 000017
【図１６】
2008181170.tif 000018
【図１７】
2008181170.tif 000019
【図１８】
2008181170.tif 000020
【図１９】
2008181170.tif 000021
【図２０】
2008181170.tif 000022
【図２１】
2008181170.tif 000023
【図２２】
2008181170.tif 000024
【図２３】
2008181170.tif 000025
【図２４】
2008181170.tif 000026
【図２５】
2008181170.tif 000027
【図２６】
2008181170.tif 000028
【図２７】
2008181170.tif 000029