説明

非同期式回路の制御回路

【課題】特別の休止相を設けることなく、各回路ブロックの演算終了後、初期状態に復帰することにより、高速化、低消費電力化を実現する非同期式回路の制御回路を提供する。
【解決手段】複数の回路ブロックが互いに他の回路ブロックと制御信号をやり取りすることにより一連の演算を実行する、非同期式回路において、入力制御信号が“1”から“0”に遷移したことをトリガとして演算を実施し、演算中、出力制御信号として“1”を出力し、演算が終了した後、出力制御信号を“0”に復帰するようにする。ここで、“0”とは、各回路ブロックの待機状態に対応する制御信号のステートを表したものであり、具体的な電圧等を表しているものではない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセッサ等で用いる演算回路の制御回路に関する。更に詳しくは、複数の回路ブロックの各々が互いに他の回路ブロックとハンドシェイク信号をやりとりすることにより、一連の演算を実行する非同期式回路の制御回路に関する。
【背景技術】
【0002】
クロック信号を用いない非同期式回路は、回路全体を一つのグローバルクロック信号で制御する同期式回路に比べて、クロックスキュー、クロック信号自体の消費電力の増大、雑音干渉の問題がなく、高速性や環境やプロセスの変化に対応できる柔軟性に優れると共に、回路モジュールの再利用が可能な回路として期待されている。
【0003】
図27は、従来の非同期式回路の構成を示したものである。本図は、二つの入力データa,bから(a+b)を演算する構成の一例を示したものであり、(a+b)の演算を行う演算回路102とその2乗を演算する演算回路102を有する。これら複数の演算回路の集合をデータパス3と呼ぶ。各々の演算回路にはその制御を行う制御回路101及び101を有する。制御回路101及び演算回路102の組合せは一つの回路ブロック104を構成する。制御回路101の制御入力inが入力されると、mux信号によって演算回路は所定の演算(c=a+b)を実行し、演算時間に相当する所要の時間の経過後、ラッチング信号latを送出して、演算結果を保持する。次に、out信号を次段の回路ブロックに送出して、d=cの演算を実行する。即ち、隣接する回路ブロックどうしが互いにハンドシェイク信号をやり取りすることにより所定の演算を実行する。このように、非同期式回路では、演算タイミングをハンドシェイク信号により制御し、所謂グローバルクロックを用いないので、前述したグローバルクロックに伴う問題を解決できる。
【0004】
一般に、演算回路では、演算終了後、次の演算開始までに演算回路の状態を初期状態にする必要がある。非同期式回路の最も簡単な制御方法として、演算を実行する“稼動相”と、演算実行後、次の演算に備えて演算回路の状態を初期状態に戻す“休止相”を交互に繰り返してデータパス3を制御する2相式制御方式がある(例えば、非特許文献1)。このような2相式制御は、例えば、Qモジュールと呼ばれる2相式制御モジュールを用いて容易に実現できる。
【非特許文献1】電子情報通信学会論文誌D−1,J78巻,第4号,pp.416−423,1995年4月
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、2相式制御方式の非同期式回路では、演算を行わない休止相の時間と稼動相の時間長が同程度となる場合があり、この休止相の存在が演算の高速化及び低消費電力化の障害となっていた。
本願発明は、上記のような事情に鑑みてなされたものであり、特別の休止相を設けることなく各回路ブロックの演算終了後、初期状態に復帰する制御回路を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、請求項1記載の非同期式回路の制御回路は、例えば、図1に示すように、演算回路2と制御回路1で構成された複数の回路ブロック4の各々が、互いに他の回路ブロックとハンドシェイク信号(in,out等)をやり取りすることにより、所定の演算を実行する非同期式回路の制御回路1であって、前記制御回路1は前段からのハンドシェイク信号を入力する入力端(in端)、次段へのハンドシェイク信号を出力する出力端(out端)、前記演算回路の演算実行制御信号端(mux端)、及び前記演算回路の演算実行結果をラッチするラッチ信号端(lat端)を有し、前記各演算回路2は、前記制御回路1からの制御によって、演算を実行する実行モードと、演算動作を行わない待機モードで動作し、該待機モードの時の、前記入力端(in端)、出力端(out端)、演算実行制御信号端(mux端)、及びラッチ信号端(lat端)の対応する信号ステートを“0”で表した場合において、前記制御回路1は、前段からの入力端(in端)信号が“1”から“0”に遷移したことを検出して演算実行制御信号端(mux端)の信号ステートを“1”として前記演算回路の演算を実行せしめ、更に、出力端(out端)、及びラッチ信号端(lat端)の信号ステートを“1”とし、前記演算終了後、前記ラッチ信号端(lat端)の信号ステートを“0”に遷移せしめて演算実行結果を保持し、更に、演算実行制御信号端(mux端)、及び出力端(out端)の信号ステートを“0”に遷移せしめる手段を備える。
尚、各信号端の信号は、“1”と“0”の2つのステートのいずれかを取るが、この2つのステートは、ステートの状態を区別したものであり、具体的な電圧等を表しているものではない。前記演算回路2が演算動作を行わず、以前の演算結果を保持する待機モード(前記初期状態に対応、演算終了後、十分の時間が経過して、各信号端が定常の状態になった状態)の時の、前記入力端(in端)、出力端(out端)、演算実行制御信号端(mux端)、及びラッチ信号端(lat端)の取る信号ステートを、“0”ステートと表す。
【0007】
このように構成すると、制御回路の入力が、演算回路の実行モードに対応する入力から待機モードに対応する入力ステートに遷移することをトリガとして演算を実行するので、演算が終了したときには制御回路の入出力の信号ステートが待機モードに対応するステートになっており、従来技術のような特別の休止相を設ける必要がなく、高速で低消費電力の特性を実現できる。
【0008】
請求項2記載の非同期式回路の制御回路は、請求項1において、例えば、図2に示すように、前記ハンドシェイク信号の入力端(in端)における信号(以下、入力信号(in)という)が “1”から“0”に遷移したときに“1”を出力し、所定時間経過後に“0”に復帰するreq信号生成手段8と前記req信号が“1”に遷移した後、“0”から“1”に遷移し、所定の時間経過後、“1”から“0”に復帰するack信号を生成する手段9と、該ack信号から、前記ラッチ信号端における信号(以下、lat信号という)、及び出力端(out端)における前記ハンドシェイク出力信号(以下、出力信号(out)という)を生成し、該出力信号(out)を次段の入力信号として送出する手段と、前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号端における信号(以下、mux信号という)を得る演算実行制御信号生成手段11を有するように構成したものである。
【0009】
請求項3記載の非同期式回路の制御回路は、請求項1において、例えば、図14、図18に示すように、複数の入力信号(in(1)〜in(n))、に対し、全ての入力信号が“1”から“0”に遷移したことを検出して、“1”を出力し、所定時間経過後に“0”に復帰する、req信号を生成する手段8’と、前記req信号が“1”に遷移した後、“0”から“1”に遷移し、所定の時間経過後、“1”から“0”に復帰するack信号を生成する手段9と、該ack信号から、前記lat信号、及び前記出力信号を生成し、該出力信号(out)を次段の入力信号として送出する手段と、前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段11を有するように構成したものである。
【0010】
このように構成すると、前段にある複数の回路ブロック4の演算の全ての終了結果を受けて次の演算を実行する回路(合流回路)を簡略な構成で実現でき、又特別の休止相を設ける必要がないので高速で低消費電力の特性を実現できる。
【0011】
請求項4記載の非同期式回路の制御回路は、請求項1乃至請求項3において、例えば、図6、図14に示すように、前記制御回路1は、req信号生成手段8(又は8’)と、遅延素子(D1)9、及び演算実行制御信号生成手段11を備え、前記遅延素子(D1)9は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり、前記req信号生成手段8(又は8’)は、エッジ記憶回路(ED)13、及び論理積回路(AND)14(又は14’)を有し、 前記エッジ記憶回路(ED)13は、入力信号が“0”から“1”に遷移したときに“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す記憶回路であり、前記入力端(in端)は、エッジ記憶回路(ED)13の入力端に接続されると共に、前記論理積回路(AND)14(または14’)の一方の入力端にインバータ回路16(又は21)を介して接続され、前記論理積回路(AND)14(または14’)の他方の入力端は、エッジ記憶回路(ED)13の出力端に接続され、前記論理積回路(AND)14(または14’)の出力端は、前記エッジ記憶回路(ED)13のリセット制御入力端に接続され、前記論理積回路(AND)14(または14’)の出力端からreq信号が出力され、該req信号は、遅延素子(D1)9の入力端に接続され、該遅延素子(D1)9の出力端からack信号が出力され、前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号(lat)から、前記演算回路2の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段11を有するように構成したものである。
【0012】
このように構成すると、フリップフロップ回路、論理積回路、論理和回路、遅延回路を用いて制御回路を簡易に構成できる。
【0013】
請求項5に記載の非同期式回路の制御回路は、請求項1または請求項2において、例えば、図8に示すように、前記制御回路1は、req信号生成手段8と、遅延素子(D1)9、及び演算実行制御信号生成手段11を備え、前記遅延素子(D1)9は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり、前記req信号生成手段8は、エッジ記憶回路(ED’)13’を有し、 前記エッジ記憶回路(ED’)13’は、入力信号が“1”から“0”に遷移したときに“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す記憶回路であり、前記入力端(in端)は、エッジ記憶回路(ED’)13’の入力端に接続されると共に、該エッジ記憶回路(ED’)13’の出力端は、該エッジ記憶回路(ED’)13’のリセット制御入力端に接続され、前記エッジ記憶回路(ED’)13’の出力端からreq信号が出力され、該req信号は、遅延素子(D1)9の入力端に接続され、該遅延素子(D1)9の出力端からack信号が出力され、前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号(lat)から、前記演算回路2の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段11を有するように構成したものである。
【0014】
このように、立ち下りを検出するエッジ記憶回路(ED’)13’を用いて構成すると、論理積回路を用いないで、制御回路を簡易に構成できる。
【0015】
請求項6記載の非同期式回路の制御回路は、請求項1または請求項3において、例えば、図16に示すように、前記制御回路は、req信号生成手段8’と、遅延素子(D1)9、及び演算実行制御信号生成手段11を備え;
前記遅延素子(D1)9は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり;
前記req信号生成手段8’は、エッジ記憶回路(ED’)13’、及び論理積回路(AND)14’’を有し、
前記エッジ記憶回路(ED’)13’は、入力信号が“1”から“0”に遷移したときに“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す記憶回路であり;
前記入力端(in端)は、エッジ記憶回路(ED’)13’の入力端に接続され;
前記論理積回路(AND)14’’の入力端は、エッジ記憶回路(ED’)13’の出力端に接続され;
前記論理積回路(AND)14’’の出力端は、前記エッジ記憶回路(ED’)13’のリセット制御入力端に接続され;
前記論理積回路(AND)14’’の出力端からreq信号が出力され;
該req信号は、遅延素子(D1)9の入力端に接続され、該遅延素子(D1)9の出力端からack信号が出力され;
前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号(lat)から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段を有するように構成したものである。
【0016】
このように、立ち下りを検出するエッジ記憶回路(ED’)13’を用いて構成すると、論理積回路の入力端子数を少ないもので構成でき、制御回路を簡易に構成できる。
【0017】
請求項7記載の非同期式回路の制御回路は、請求項1乃至請求項3において、例えば、図10、図18に示すように、前記制御回路1は、req信号生成回路8(又は8’)と、遅延素子(D1)9、及び演算実行制御信号生成手段11を備え、前記遅延素子(D1)9は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり、前記req信号生成回路8(又は8’)は、C素子(C)17、論理積回路(AND)18(又は8’)を有し、前記C素子(C)17は、2つの入力(C,C)と1つの出力(C)を有し、入力値が一致したときに出力がその入力値に遷移し、一致しないときは、それ以前の出力値を保持する記憶素子であり、前記入力端(in端)は、前記C素子(C)17の一方の入力端に接続されると共に、前記論理積回路(AND)18(又は18’)の一方の入力端にインバータ回路19(又は22)を介して接続され、前記論理積回路(AND)18(又は18’)の他方の入力端は、前記C素子(C)17の出力端に接続され、前記論理積回路(AND)18(又は18’)の出力端は、前記C素子(C)17の他方の入力端にインバータ回路19(又は22)を介して接続され、前記論理積回路(AND)18(又は18’)の出力端からreq信号が出力され、該req信号は、遅延素子(D1)9の入力端に接続され、該遅延素子(D1)9の出力端からack信号が出力され、前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号(lat)から、前記演算回路2の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段11を有するように構成したものである。
【0018】
このように構成すると、C素子(C)、論理積回路、論理和回路、遅延回路を用いて制御回路を簡易に構成できる。また、C素子(C)は、フリップフロップ回路より、その動作が高速であるので回路全体の高速動作が可能となる。
【0019】
請求項8記載の非同期式回路の制御回路は、請求項2乃至請求項7において、例えば、図20(c)に示すように、演算実行制御信号生成手段11は、前記ack信号を演算実行制御信号(mux)として使用するものである。
このように構成すると、ack信号をそのまま演算実行制御信号(mux)として使用するので回路を非常に簡単に出来る。
【0020】
請求項9記載の非同期式回路の制御回路は、請求項2乃至請求項7において、例えば、図20(a)に示すように、演算実行制御信号生成手段11は、前記ack信号と前記req信号の論理和の論理和を取るように構成したものである。
【0021】
また、請求項10記載の非同期式回路の制御回路は、請求項2乃至請求項7おいて、例えば、図20(b)に示すように、演算実行制御信号生成手段は、前記ack信号、前記req信号、及び出力信号(out)の論理和を取るように構成したものである。
【0022】
請求項9、又は請求項10のように構成すると、ack信号が立ちあがる前の期間を演算時間に繰込むことができるので演算以外の無駄な時間を減らすことが出来、高速な動作を実現することが出来る。
【0023】
請求項11記載の非同期式回路の制御回路は、請求項2乃至請求項10において、例えば、図24に示すように、2つの入力端、及び1つの出力端を有し、第1の入力端(#1)が“0”のときは第2の入力端(#2)に接続されたack信号をそのまま出力し、前記第1の入力端(#1)が“1”のときであって第2の入力端(#2)の信号が“1”から“0”に遷移するときは、前記第1の入力端(#1)が“1”から“0”に遷移するまで、“1”を出力して保持するストール制御回路(SC)24を有し、前記ack信号を前記ストール制御回路(SC)24の第2の入力端(#2)に、次段が演算中である時“1”で、待機中の時“0”のストール信号を前記第1の入力端(#2)に接続し、該ストール制御回路(SC)24の出力(#3)を前記論理和回路12の第2の入力端(#4)、出力端(out端)、及び、ラッチ信号端(lat端)に接続したように構成したものである。
【0024】
このように構成すると、次段からのストール制御信号を受けて、次段への出力信号(out)が“1”から“0”に遷移するのを保留することができ、当該段のラッチも遅らせることができるので、本発明をパイプライン方式の回路に適用することが出来る。
【0025】
請求項12記載の非同期式回路の制御回路は、請求項11において、例えば、図24及び図25に示すように、前記ストール制御回路(SC)24は、2つの論理和を取る論理和回路25と、C素子(C)26で構成され、前記論理和回路25の第1の入力端(#1)には前記ストール信号(stall)が入力され、前記論理和回路25の第2の入力端(#2)には、ack信号が接続されると共に、前記第2の入力端(#2)は、前記C素子(C)26の一方の入力端に接続され、前記論理和回路25の出力端は前記C素子(C)26の他方の入力端に接続され、前記C素子(C)26の出力がストール制御回路(SC)24(#3)の出力であるように構成したものである。
【0026】
このように構成すると、C素子(C)26、論理和回路25を追加するだけで制御回路をパイプライン構成の回路に適用することが出来ると共に、C素子(C)の特徴である、高速性を活かした特性を得ることが出来る。
【発明の効果】
【0027】
以上、本発明によれば、非同期式回路の制御回路において、特別の休止相を設けることなく各回路ブロックの演算終了後、初期状態に復帰する構成が簡略な構成で実現することが出来るので、回路の高速化、低消費電力化に有効となる。また、この本発明の特徴を有したまま、パイプライン処理の回路に適用することが出来るので、広い適用範囲を持つことが出来る。
【発明を実施するための最良の形態】
【0028】
以下、本発明の実施の形態について、図面を参照して説明する。なお、各図において互いに同一あるいは相当する部分については同一符号又は類似符号を付し、重複した説明は省略する。また、同一の回路が複数ある場合の下付き添え字については、これら回路に共通する説明の場合には添え字を省略する場合がある。また、本明細書において、各部端子とその端子における信号について、図面では同じ符号を用いることがある。
本明細書および特許請求の範囲について、「接続」とは、二つ以上の回路又は素子が電気的につながれたことを言い、その間に、遅延手段、パルス幅変更手段、インバータ、抵抗、リアクタンス等のエレメントが本発明の本質を変更しない範囲で介されてつながれることを含む。
また、各制御信号端の信号ステートの遷移に関し、“0”から“1”への遷移を「立ち上がり」と、“1”から“0”への遷移を「立ち下がり」と、言うことがある。
ここにおいて、各信号端の信号は、“1”と“0”の2つのステートのいずれかを取るが、この2つのステートは、ステートの状態を区別したものであり、具体的な入出力電圧を表しているものではない。前記演算回路2が演算動作を行わず、以前の演算結果を保持する待機モード(前記休止相に対応、演算終了後、十分の時間が経過して、各信号端が定常の状態になった状態)の時の、前記入力端(in端)、出力端(out端)、演算実行制御信号端(mux端)、及びラッチ信号端(lat)の取る信号ステートを、“0”ステートと表す。
【0029】
図1は、本発明に関する非同期式回路の全体構成図で、回路ブロックが3個の例を示し、制御回路1〜1と演算回路2〜2で構成される(但し、1,2は、回路ブロック4の内部回路であり図示せず)。入力信号inは前段の回路ブロックからの制御入力信号であり、出力信号outは次段への制御を引き継ぐための制御信号で、各々、ハンドシェイク信号である。尚、複数の演算結果を待ってから演算を行う場合(合流回路)は、制御回路1のように入力信号が複数(in2(1),in2(2))になる。
【0030】
図1を参照してその動作を説明する。図1は、第1段目の演算回路2で(a+b)の演算を行い、その結果と、演算回路2の演算結果dとの算術積を第2段目の演算回路2で行う例を示したものである。演算回路2には、演算器7、演算結果を格納するレジスタ5、制御回路の出力muxで入力データa及びbを各々、演算器7の入力端に接続するマルチプレクサ6a、6b、及び、演算結果をレジスタ5に接続するマルチプレクサ6cを有する。
制御回路1に制御入力信号(in)が入力されると、その立下りをトリガにmux信号、lat信号、及びout信号が立ち上り、入力データa、bが演算器7の入力端に接続され演算が実行される。また、その結果がレジスタ5に入力される。次に、演算時間に対応する時間経過後lat信号の立ち下りでレジスタ5がラッチされ、演算結果が保持されと共に、mux信号が立ち下がり、その後、out信号が立ち下がる。この状態で、1段目の制御回路の信号端のすべては、信号ステートが“0”となる。尚、レジスタ5が立ち上がりでラッチされるような場合はラッチ信号latをインバータを介して接続すればよい。
次段の制御回路1では、回路ブロック4及び4での演算の双方の終了、即ち、双方の出力信号out、outの双方の立ち下がりを検出し、双方の演算回路の演算結果(c=a+b)、及び(d)を使って同様の演算を実行し、目的とする(e=(a+b)×d)の演算結果を得る。尚、回路ブロック4における演算時に回路ブロック4及び4で別の入力データによる演算を同時に行う、いわゆるパイプライン動作を行わせることも出来る。
尚、パイプライン動作については後述する。
【0031】
図2は、制御回路1の内部構成を示したものである。制御回路1は、req信号生成回路8、遅延回路(D1)9、遅延回路(D3)10、及び演算実行制御信号生成手段11で構成される。演算実行制御信号生成手段11は、種々の実施の形態があり具体的には後述するが、本図では論理和回路12を用いた実施の形態(図20(a)参照)を例に以下の動作を説明する。
図3は、本発明で使用する遅延回路(D1)9,(D2)15,(D3)10の特性を示したものである。特性は、〔d,d〕のように表され、この場合、d 、dが各々、立ち上がり時間,及び立下り時間の遅れを示す。
図4は、この遅延回路を実現するための具体的な構成を示したものである。(a)は立ち上がりを遅延させる回路で、(b)は立ち下がりを遅延させる回路である。共に、ゲート遅延(遅延量:D)を利用したもので、必要な遅延量(図では、3D)が得られるように論理積回路、論理和回路の段数を設定する。尚、説明の便宜上、図中#4のゲートの遅延時間は他のゲートの遅延時間に比べて無視できる場合を表示している。このため、(a)及び(b)で、各々、立ち下がり、立ち上がりタイミングが一致する。
【0032】
図5は、図2の回路ブロック1において、演算開始から終了、及び次段に対する出力信号の送出までの動作を示したものである。以下時間を追って説明する。
尚、特に断らない限りゲート間の遅延は無視して表示し、その因果関係を細い矢印付き線で示した。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t)。
(2)前段からの入力信号inが一旦、“1”となる。この変化は前段の演算開始を示しているが、本段での動作には無関係である(時間:t)。
(3)前段の演算が終了すると、入力信号inが立ち下がる。これを受けて、req信号が立ち上がる(時間:t)。この“1”のステートはtまで継続される。尚、req信号のパルス幅(t―t)は、演算時間の範囲で設定する。このパルス幅はreq信号生成回路の具体的な構成で決まる。
(4)req信号は、遅延回路(D1)9を通過することによりack信号となる。遅延回路(D1)9の遅延特性は〔d,d〕である。従って、ack信号がdに対応する時間で立ち上がり(時間:t)、dに対応する時間で立ち下がる(時間:t)波形が得られる。時間:t〜tが演算時間に対応する。尚、dの値は、出来るだけ小さい値を設定する。
(5)ack信号とreq信号の論理和出力からmux信号を得る(時間:t〜t)。この処理により、ack信号の立ち上がりが遅延する場合にも最大限の演算時間を確保することが出来る。尚、この動作は、本図で記載した、req信号とack信号を論理和回路12の入力とする、演算実行制御信号生成手段11の構成の場合に限られる。その他の実施の形態に付いては図20,図21で説明する。
(6)ack信号の立ち下り後、立ち下がるlat信号を得る(時間:t〜t)。
(7)ackからout信号を得る。尚、この場合、遅延回路(D3)10を介してout信号を得ると、演算結果の格納にホールドタイム(立ち下り遅延時間:dに対応)を設けてからout信号の立下りが実行されるので、前段の演算結果データを確実に保持した上で次段の演算を実行することが担保される。このような点で遅延回路(D3)10を設けることが望ましいが、上で述べたack信号とout信号の時間関係が保持されていれば前記遅延回路(D3)10を特別に設けることは必ずしも必須ではない(時間:t)。
(8)以上の動作の後、制御回路1の制御出力端in,out,mux,lat各端はすべて待機モードステートである“0”となる(時間:t)。
【0033】
図6は、前記req信号生成回路8の更に具体的な構成を示したものである。図6には、理解の便宜のため、演算実行制御信号生成手段11とmux信号端、lat信号端、及びout信号端との関係も示した。尚、図6では、図2の場合と同様、演算実行制御信号生成手段11として、二つの入力端の論理和回路12を用いる実施の形態(図20(a)参照)を図示してあるが、この形態に限定することはなく、後述の種々の実施の形態が適用できることは明らかである
図に示すように、前記req信号生成回路8は、立ち上がりエッジ検出回路(ED)13、論理積回路14、及び好ましくは遅延回路(D2)15で構成される。信号入力inはエッジ検出回路(ED)13の入力に接続され、req信号は論理積回路14の出力として得られる。前記エッジ検出回路(ED)13は、入力inが立ち上がった場合、その出力aのステートを“1”に保持し、リセット信号(reset)が立ち上がった場合にステート“0”に戻す回路であり、具体的にはフリップフロップで実現できる。リセット信号は、論理積回路14の出力から遅延回路(D2)15を介して供給される。遅延回路(D2)15の遅延特性〔d,d〕については、req信号のパルス幅をある程度保った上で、dを演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はない。論理積回路14の一方の入力はエッジ検出回路(ED)13の出力に接続され、他方の入力はエッジ検出回路(ED)13の入力端とインバータ16を介して接続される。
【0034】
図7は、図6の構成において、演算開始から終了、次段に対する出力信号の送出までの動作を示したものである。以下時間を追って説明する。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t)。
(2)前段からの入力信号inが一旦、“1”となると、エッジ検出回路(ED)13の出力aは立ち上がり、“1”を保持する。この信号は論理積回路14の一方の入力端に入力される。但し、この時の他方の入力端のステートはインバータ16により、“0”である(時間:t)。
(3)演算開始を促す入力信号inの立下りがあると、前記論理積回路14の他方の入力端が“1”になるため、論理積回路14の出力は“1”となり、req信号が立ち上がる(時間:t)。
(4)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する(時間:t〜t)。
(5)req信号の遅延信号であるreset信号が立ち上がり、エッジ検出回路(ED)13の出力aは“0”にリセットされ、req信号が立ち下る(時間:t)。
(6)req信号の立ち下りにより、遅延回路(D2)15の遅延特性に従って、reset信号が立ち下がる(時間:t)。
(7)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t)。
【0035】
図8は、前記req信号生成回路8の他の具体的な構成を示したものである。本構成は、入力信号が“1”から“0”に遷移した時に、“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す立ち下がり検出型のエッジ記憶回路13’を用いたもので、この場合は、図6の論理積回路(AND)14を省略でき、より簡易な構成で実現できる。
【0036】
図9は、図8の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。これは、図7に比べて、“a”が、入力信号(in)の立ち下りに応じて立ち上がる点(時間:t)を除いて同じであるので説明は省略する。
【0037】
図10は、前記req信号生成回路8の他の具体的な構成を示したものである。図10では、図6と同様に、理解の便宜のため、演算実行制御信号生成手段11とmux信号端、lat信号端、及びout信号端との関係も示した。
図10に示すように、前記req信号生成回路8は、MullerのC素子と言われるC素子(C)17(前記、非特許文献1参照)、論理積回路18、及び好ましくは遅延回路(D2)15で構成される。入力信号inは、論理積回路18の入力の一方にインバータ19を介して接続されると共に、前記C素子(C)の一方の入力端(C)に接続される。C素子(C)の他方の入力端(C)には、論理積回路の出力から遅延回路(D2)15及びインバータ20を介して供給される。遅延回路(D2)15の遅延特性〔d,d〕については、req信号のパルス幅をある程度保った上で、dを演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はないことは勿論である。C素子(C)の出力(C)は前記論理積回路18の他方の入力端に接続される。前記req信号生成回路8の出力は、前記論理積回路18の出力として得られる。
【0038】
図11は、前記C素子(C)17の真理値表を示したもので、2つの入力(C,C)が同じ場合はその入力ステートを出力し、異なる場合は前の状態を保持する回路である。尚、本発明では出力Cの初期値は“0”にセットされる。具体的なC素子(C)17の回路構成を図12に示す。
【0039】
図13は、図10の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。以下時間を追って説明する。尚、C素子(C)17の入力端のうち、遅延回路(D2)15を経由した信号については、インバータ20の入力側の信号を“C”、出力側の信号を“C2_bar”として示した。C素子(C)17の出力Cの初期値は“0”である。
(1)演算開始前においては、各部(C2_barを除く)の信号ステートはすべて“0”である(時間:t)。
(2)前段からの入力信号inが一旦、“1”となると、C素子(C)17の2つの入力が“1”となるのでCが立ち上がる(時間:t)。
(3)演算開始を促す入力信号inの立下りがあると、C素子(C)17の一方の入力Cは“0”に立ち下がるが、他方の入力端のC2_barが“1”を保持しているのでC素子(C)17の出力Cはその直後しばらくの間、“1”を保持する。従って、論理積回路18の出力は“1”となり、req信号も立ち上がる(時間:t)。
(4)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する。
(5)req信号の遅延信号であるC信号が遅延回路(D2)15の特性にしたがって立ち上がり、これに従ってC2_bar信号も立ち下がる。すると、C素子(C)の両入力が“0”となるので、Cが“0”となり、req信号が立ち下がる(時間:t)。
(6)req信号の立ち下がりを受けてCが立ち下がり、C2_barが立ち上がる(時間:t)。
(7)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t)。
【0040】
以上の説明は、演算が前段のみのデータを用いて行われる場合についてであるが、実際には、例えば、図1のように複数の演算結果(回路ブロック4の“c”、及び回路ブロック4の“d”)を受けて演算を行う場合がある。図14は、複数(n個)の回路ブロック1の全ての終了結果を受けて次の論理演算を実行する合流回路に使用される、req信号生成回路8’の具体的な構成を示したものである。図14には、理解の便宜のため、演算実行制御信号生成手段11とmux信号端、lat信号端、及びout信号端との関係も示した。図に示すように、前記req信号生成回路8’は、各々n個の立ちあがりエッジ検出回路(ED)13(i)、及び好ましくは遅延回路(D2)15と、2n個の入力端数を持つ論理積回路14’で構成される。各信号入力in(i)はエッジ検出回路(ED)13(i)の入力に接続され、req信号は論理積回路14’の出力として得られる。前記エッジ検出回路(ED)13(i)は、入力inが立ち上がった場合、その出力aのステートを“1”に保持し、リセット信号(reset)が立ち上がった場合にステート“0”に戻す回路である。リセット信号は、論理積回路14’の出力から遅延回路(D2)15を介して供給される。遅延回路(D2)15の遅延特性〔d,d〕については、req信号のパルス幅をある程度保った上で、dを演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はないことは勿論である。論理積回路14’のn個の入力は各エッジ検出回路(ED)13(i)の各出力に接続され、n個の入力は各エッジ検出回路(ED)13(i)の入力端とインバータ21(i)を介して各々接続される。
【0041】
図15は、図14の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。図7と類似の動作を行うものであるが、すべての入力信号in(i)の立ち下がりが検出されたことを条件にreq信号が立ちあがる点に特徴がある。以下時間を追って説明する。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t)。
(2)前段からの入力信号in(i)が一旦、“1”となると、各エッジ検出回路(ED)13(i)の出力a(i)は立ち上がり、“1”を保持する。この信号は論理積回路14’の入力端に入力される。更に、各入力信号in(i)はインバータ21を介して論理積回路14’の別の入力端に入力され、そのステートは、“0”である(時間:t,t,t)。
(3)演算開始を促す入力信号in(i)に立下りがあると(t、t、t)、インバータ21(i)を経由した信号は論理積回路の入力端で“1”になる。しかし、複数の入力信号in(i)のうち、立ち下がらないものが一つでもあると、論理積回路14’の出力は“0”となり、req信号は立ち上がらない。
(4)すべての入力端(in(i)端)で立ち下がりが検出されると、(本図の場合、in(2):t)論理積回路14’のすべての入力端が“1”となり、req信号が立ち上がる(時間:t)。
(5)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する(t〜t11)。
(6)req信号の遅延信号であるreset信号が立ち上がり、エッジ検出回路(ED)13(i)の各出力a(i)は“0”にリセットされ(時間:t)、更に、req信号が立ち下る(時間:t)。
(7)req信号の立ち下りにより、遅延回路(D2)15の遅延特性に従って、reset信号が立ち下がる(時間:t)。
(8)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t12)。
【0042】
図16は、複数(n個)の入力信号を持つ前記req信号生成回路8’の他の具体的な構成を示したものである。本構成は、入力信号が“1”から“0”に遷移した時に、“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す立ち下がり検出型のエッジ記憶回路13’を用いたもので、この場合は、図14の論理積回路(AND)14’の入力端子数を少なくすることができ、より簡易な構成で実現できる。
【0043】
図17は、図16の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。これは、図7に比べて、“a(i)”が、入力信号(in)の立ち下りに応じて立ち上がる点(時間:t、t、t)を除いて同じであるので説明は省略する。
【0044】
図18は、複数(n個)の入力信号を持つreq信号生成回路8’の他の具体的な構成を示したものである。図18には、理解の便宜のため、演算実行制御信号生成手段11とmux信号端、lat信号端、及びout信号端との関係も示した。
図18に示すように、前記req信号生成回路8’は、n個のMullerのC素子(C)17(i)、好ましくは遅延回路(D2)15、及び、入力端の数が2nの論理積回路18’で構成される。各入力信号in(i)は、論理積回路18’の入力の一方にインバータ22(i)を介して接続されると共に、前記C素子(C)17(i)の一方の入力端(C)に接続される。C素子(C)17(i)の他方の入力端(C)には、論理積回路18’の出力から遅延回路(D2)15及びインバータ23(i)を介して供給される。遅延回路(D2)15の遅延特性〔d,d〕については、req信号のパルス幅をある程度保った上で、dを演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はない。C素子(C)17(i)の出力(CO(i))は前記論理積回路18’の他方の入力端に接続される。前記req信号生成回路8’の出力は、前記論理積回路18’の出力として得られる。
【0045】
図19は、図18の構成において、演算開始から終了、次段に対する出力信号の送出までの動作を示したものである。図13と類似の動作を行うものであるが、すべての入力信号in(i)の立ち下がりが検出されたことを条件にreq信号が立ち上がる点に特徴がある。以下時間を追って説明する。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t)。
(2)前段からの入力信号in(1)が一旦、“1”となると、C素子(C)の2つの入力が“1”となるのでCO(1)が立ち上がる(時間:t)。
(3)演算開始を促す入力信号in(1)の立下りがあると、in(1)に接続された、C素子(C)17(1)の一方の入力Cは“0”に立ち下がるが、他方の入力端のC2_barが“1”を保持しているのでC素子(C)17(1)の出力CO(1)はその直後しばらくの間、“1”を保持する。しかし、他の入力信号の立ち下がりが検出されていないので、論理積回路18’の入力のすべてが“1”にならず、req信号は“0”のままである(時間:t〜t)。
(4)すべての入力信号のうち最後の入力信号(in(2))の立ち下がりがあると(時間:t)、論理積回路17’のすべての入力端が“1”となり、req信号が立ちあがる(時間:t)。この立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。尚、この過程は図5の構成の場合と同じであるので説明を省略する(t〜t11)。
(5)req信号の遅延信号であるC信号が遅延回路(D2)15の特性にしたがって立ち上がり、これに従ってC2_bar信号も立ち下がる。すると、各C素子(C)17(i)の二つの入力が共に“0”となるので、すべてのCO(i)が“0”となり(時間:t)、req信号が立ち下がる(時間:t)。
(6)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t12)。
【0046】
以上、演算実行制御信号生成手段11については、ack信号とreq信号の論理和を取る実施の形態を例に説明を行ってきたが、その他、種々の形態が可能である。即ち、mux信号は、演算の実施を制御するものであり、演算回路の稼動率を上げるためできるだけ演算実行を行わない時間長を短くする必要がある。前記req信号からack信号等を得る時の遅延回路等の立ち上がり時間は短い方が望ましいが現実には有限であり、req信号からack信号等の立ち上がりまでの時間差が無駄な時間となることがある。本発明の演算実行制御信号生成手段では、以下のように、このような無駄を省略するような構成を取っている。
図20は、演算実行制御信号生成手段11の種々の構成を示したものである。(a)は、2入力の論理和回路12を用いたもの、(b)は、3入力の論理和回路12’を用いたもの、(c)は、論理和回路を用いない構成である。
図21は、上記(a)乃至(c)の構成の各部信号を示したものである。(a)では、req信号及びack信号の論理和を取ることによってmux信号を得る。このようにすると、req信号が立ち上がり、ack信号が立ちあがっていない部分(図中、tlossとして示した)も演算時間として使用できるので高速な動作が実現できる。(b)の構成は、(a)に加えて、更にout信号との論理和を得るもので、ホールドタイムを確保できる。(c)は、ack信号をそのままmux信号として使用するもので、速度の点では劣るが回路構成が簡単になるという利点がある。
【0047】
ここまでの説明は、例えば、図1のように、回路ブロック4が、c=(a+b)の演算、回路ブロック4が、e=c×dの2段階の演算(以下、タスクと言う)を行った後、次のタスクを行う、非パイプライン処理を前提に説明した。以下に、パイプライン処理に本願発明を適用する場合の構成について説明する。
図22は、本発明をパイプライン処理に適用した構成である。パイプラインとは、例えば、図23のように回路ブロック4〜4で一連の演算を行う際、回路ブロック4でタスクAの第1段の演算が終了した後、回路ブロック4でタスクAの第2段の演算を実行している間に、回路ブロック4で次のタスクBの第1段の演算を行うもので複数のタスクの演算を同時に行い全体として演算速度を向上することを目的とするものである。この場合、例えば、図23のtのように、回路ブロック4の演算時間が4の演算時間より短い場合、4の演算が終了しないうちに4の演算が終了することがある。このような時、次段へ演算開始制御信号(out信号)を送っても、回路ブロック4では前の演算を実行中のため、回路ブロック4の動作を4の演算が終了するまで一時保留する必要がある。これをストール(stall)と言う。本発明では、図22のように、ストール制御用の信号(stall)を次段のout信号として前段の動作を制御することにより上記の問題を回避する。これは、次段のout信号が“1”のときは次段の動作が実行モードであり、out信号が“1”から“0”に推移した時、次段の演算が終了したことを示していることを利用して、次段のout信号の立ち下りを検出するまで前段のout信号、mux信号、lat信号を立ち下げないように構成する。
【0048】
図24は、本発明をパイプライン処理に適合するようにした構成例である。(a)、(b)、(c)は、各々、前述の演算実行制御信号生成手段が図20の(a)〜(c)に対応したものである。図24のように、遅延回路(D1)9の出力であるack信号とlat信号の間にストール制御回路(SC)24を挿入したものである。該ストール制御回路(SC)24は、例えば、図24のように、論理和回路25とC素子(C)26で構成され、stall信号が“0”の時(即ち、次段の演算が待機モードの時)、ack信号はそのままlat信号端に送出され、stall信号が“1”の時(即ち、次段の演算が実行モードの時)であって、ack信号が“1”の時は、所定の演算時間を経過した後も“1”を保持し、stall信号が“0”に遷移した後にack信号をlat信号に送出、即ち、lat信号を“0”として、前段の演算結果を保留する。尚、ストール制御回路(SC)24の具体的構成は、上記機能が実現できれば、図24の構成に限定されるものではない。
【0049】
図25は、図24で示したストール制御回路(SC)24の動作を示したものである。#1端子、#2端子、#3端子は、各々、stall信号、ack信号、及びlat信号端子に接続される。尚、C素子(C)の出力の初期値は“0”である。図で、(1)〜(4)は静的な状態、(5)〜(6)は、(5)から(6)の順に、stall信号又はack信号が矢印のように変化した時の出力を示したものである。尚、状態(5)〜(6)のような動的な変化については、ここで挙げたもの以外にも考えられるが、本願発明の動作に直接関連するもののみを示した。stall信号(#1)が“0”の時(状態:(1)、(2))、出力信号(#3)と#2の信号と同一であり、ack信号端とlat信号端が接続されたのと同じになる。stall信号(#1)が“1”で、ack信号(#2)が“1”の時(状態:(4))、出力信号は“1”であり、この状態で#2のack信号が“0”に遷移しても出力信号#3は“1”を保持する(状態:(5))。この状態で#1のstall信号が“0”に遷移すると出力信号#3は“0”に遷移する(状態:(6))。
以上のように、C素子(C)26と論理和回路25を用いれば簡単な構成で、前記ストール制御回路を実現できる。しかも、C素子(C)の特徴である高速性を備えた特性を実現することが出来る。
【0050】
図26は、図22の構成において、回路ブロック4,4を用いた、2段のパイプライン動作(タスクA,B,Cを処理)を示したタイムチャートである。本図は、演算実行制御信号生成手段が図20の(a)に対応したもので説明する。各信号の名称は図22に対応させてある。inの立ち下がり時点、t、t、tで各々、タスクA,B,Cの演算が一段目の回路ブロック4で開始され、in(out)の立ち下がり時点、t’、t’’、t’で各々、タスクA,B,Cの演算が二段目の回路ブロック4で開始される。回路ブロック4の演算時間は4の演算時間に比べて長いとする。inの立ち下がり(t)を検出し、タスクAの演算を開始し、演算終了後、lat信号及びmux信号をtで、out信号をt’で立ち下げる。この間、次段のstall信号(out信号)は“0”である。
回路ブロック4はt’でタスクAの演算を開始し、演算終了後、lat信号及びmux信号をtで、out信号をt’で立ち下げる。
次に、回路ブロック4はtでタスクBの演算を開始し、tで演算を終了する。しかし、この時点では次段の回路ブロック4はタスクAの演算を終了していない。即ち、out信号(stall信号)は“1”であり、ストール制御回路の出力は、“1”の状態を取り、lat、mux、out信号はいずれも“1”を次段の演算が終了するまで保持する。次段の回路ブロック4で、タスクAの演算が終了するとtでlat,mux信号が、t’でout信号が立ち下がり、同時にstall信号が前段の回路ブロック4に入力される。回路ブロック4では、lat信号及びmux信号をt’で、out信号をt’’で立ち下げる。このようにして、タスクA,B間で回路ブロック4の競合を調整する。
回路ブロック4では、t’’からタスクBの演算を実行し、t’でout信号を送出し、更に次段に演算を引き継ぐ。
でin信号が立ち下がり、タスクCの演算が開始され、tまでに終了するが、この場合は、図のように、次段の回路ブロック4で演算を実行しておらずstall信号(out)が“0”のため、tでlat信号及びmux信号を、t’でout信号を立ち下げる。これによって次段でのCタスクの演算が実行される。
【0051】
このように、本発明の実施の形態で説明した非同期式回路の制御回路は、特別の休止相を設けることなく各回路ブロックの演算終了後、演算回路が初期状態に復帰するので、演算の高速化、消費電力の低減が可能となる。また、本発明は、パイプライン方式を簡易な回路の追加で実現できるので、その応用範囲が広いという特徴を有する。更に、本発明は、mullerのC素子(C)を用いて構成することができるので、C素子(C)の特徴である簡易な回路で高速特性が得られるという特徴を有する。
【0052】
尚、本願に係る発明は以上説明した実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で適宜変更して実施することができることは勿論である。
【図面の簡単な説明】
【0053】
【図1】本発明に関する非同期式回路の全体構成図
【図2】制御回路1の内部構成図
【図3】遅延回路(D1),(D2),(D3)の特性を示した図
【図4】遅延回路を実現するための具体的な構成図
【図5】図2の回路ブロックの動作を説明した図
【図6】req信号生成回路8の具体的な構成図
【図7】図6の構成の動作を説明した図
【図8】req信号生成回路8の他の具体的な構成図
【図9】図8の構成の動作を説明した図
【図10】req信号生成回路8の他の具体的な構成図
【図11】C素子(C)17の真理値表を示した図
【図12】C素子(C)17の具体的構成図
【図13】図10の構成の動作を説明した図
【図14】合流回路に使用される、req信号生成回路8’の具体的な構成図
【図15】図14の構成の動作を説明した図
【図16】req信号生成回路8’の他の具体的な構成図
【図17】図16の構成の動作を説明した図
【図18】合流回路に使用される、req信号生成回路8’の他の具体的な構成図
【図19】図18の構成の動作を説明した図
【図20】演算実行制御信号生成手段の構成図
【図21】演算実行制御信号生成手段の各部信号を説明した図
【図22】本発明をパイプライン処理に適用した場合の構成図
【図23】各回路ブロックにおけるパイプライン処理の動作を説明する図
【図24】本発明をパイプライン処理に適用した場合の具体的回路図
【図25】ストール制御回路(SC)の動作を示した図
【図26】図22の構成で3段のパイプライン動作を行った場合のタイムチャート
【図27】従来の非同期式回路の構成
【符号の説明】
【0054】
制御回路
演算回路
3 データパス
回路ブロック
5 レジスタ
6a,6b,6c マルチプレクサ
7 演算器
8,8’ req信号生成回路
9 遅延回路(D1)
10 遅延回路(D3)
11 演算実行制御信号生成手段
12,12’ 論理和回路
13 立ち上がりエッジ検出回路(ED)
13’ 立ち下がりエッジ検出回路(ED’)
14,14’,14’’ 論理積回路
15 遅延回路(D2)
16 インバータ
17 C素子(C)
18,18’ 論理積回路
19〜23 インバータ
24 ストール制御回路(SC
25 論理和回路
26 C素子(C)
101制御回路
102演算回路
104回路ブロック


【特許請求の範囲】
【請求項1】
演算回路と制御回路で構成された複数の回路ブロックの各々が、互いに他の回路ブロックとハンドシェイク信号をやり取りすることにより、所定の演算を実行する非同期式回路の制御回路であって;
前記制御回路は前段からのハンドシェイク信号を入力する入力端、次段へのハンドシェイク信号を出力する出力端、前記演算回路の演算実行制御信号端、及び前記演算回路の演算実行結果をラッチするラッチ信号端を有し;
前記各演算回路は、上記制御回路からの制御によって、演算を実行する実行モードと、演算動作を行わない待機モードで動作し;
該待機モードの時の、前記入力端、出力端、演算実行制御信号端、及びラッチ信号端の対応する信号ステートを“0”で表した場合において、前記制御回路は、前段からの入力端信号が“1”から“0”に遷移したことを検出して演算実行制御信号端の信号ステートを“1”として前記演算回路の演算を実行せしめ、更に、出力端、及びラッチ信号端の信号ステートを“1”とし、前記演算終了後、前記ラッチ信号端の信号ステートを“0”に遷移せしめて演算実行結果を保持し、更に、演算実行制御信号端、及び出力端の信号ステートを“0”に遷移せしめる手段を有する;
非同期式回路の制御回路。
【請求項2】
前記ハンドシェイク信号の入力端における信号(以下、入力信号(in)という)が “1”から“0”に遷移したときに“1”を出力し、所定時間経過後に“0”に復帰するreq信号生成手段と;
前記req信号が“1”に遷移した後、“0”から“1”に遷移し、所定の時間経過後、“1”から“0”に復帰するack信号を生成する手段と;
該ack信号から、前記ラッチ信号端における信号(以下、lat信号という)、及び出力端における前記ハンドシェイク出力信号(以下、出力信号(out)という)を生成し、該出力信号(out)を次段の入力信号として送出する手段と;
前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号端における信号(以下、mux信号という)を得る演算実行制御信号生成手段を有する;
請求項1記載の非同期式回路の制御回路。
【請求項3】
複数の入力信号(in(1)〜in(n))、に対し、全ての入力信号が“1”から“0”に遷移したことを検出して、“1”を出力し、所定時間経過後に“0”に復帰するreq信号を生成する手段と;
前記req信号が“1”に遷移した後、“0”から“1”に遷移し、所定の時間経過後、“1”から“0”に復帰するack信号を生成する手段と;
該ack信号から、前記lat信号、及び前記出力信号(out)を生成し、該出力信号(out)を次段の入力信号として送出する手段と;
前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段を有する;
請求項1記載の非同期式回路の制御回路。
【請求項4】
前記制御回路は、req信号生成手段と、遅延素子(D1)、及び演算実行制御信号生成手段を備え;
前記遅延素子(D1)は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり;
前記req信号生成手段は、エッジ記憶回路(ED)、及び論理積回路(AND)を有し、
前記エッジ記憶回路(ED)は、入力信号が“0”から“1”に遷移したときに“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す記憶回路であり;
前記入力端は、エッジ記憶回路(ED)の入力端に接続されると共に、前記論理積回路(AND)の一方の入力端にインバータ回路を介して接続され;
前記論理積回路(AND)の他方の入力端は、エッジ記憶回路(ED)の出力端に接続され;
前記論理積回路(AND)の出力端は、前記エッジ記憶回路(ED)のリセット制御入力端に接続され;
前記論理積回路(AND)の出力端からreq信号が出力され;
該req信号は、遅延素子(D1)の入力端に接続され、該遅延素子(D1)の出力端からack信号が出力され;
前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号(lat)から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段を有する;
請求項1乃至請求項3のいずれか1項に記載の非同期式回路の制御回路。
【請求項5】
前記制御回路は、req信号生成手段と、遅延素子(D1)、及び演算実行制御信号生成手段を備え;
前記遅延素子(D1)は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり;
前記req信号生成手段は、エッジ記憶回路(ED’)を有し、
前記エッジ記憶回路(ED’)は、入力信号が“1”から“0”に遷移したときに“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す記憶回路であり;
前記入力端は、エッジ記憶回路(ED’)の入力端に接続され、該エッジ記憶回路(ED’)の出力端は、該エッジ記憶回路(ED’)のリセット制御入力端に接続され;
前記エッジ記憶回路(ED’)の出力端からreq信号が出力され;
該req信号は、遅延素子(D1)の入力端に接続され、該遅延素子(D1)の出力端からack信号が出力され;
前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号(lat)から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段を有する;
請求項1または請求項2に記載の非同期式回路の制御回路。
【請求項6】
前記制御回路は、req信号生成手段と、遅延素子(D1)、及び演算実行制御信号生成手段を備え;
前記遅延素子(D1)は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり;
前記req信号生成手段は、エッジ記憶回路(ED’)、及び論理積回路(AND)を有し、
前記エッジ記憶回路(ED’)は、入力信号が“1”から“0”に遷移したときに“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す記憶回路であり;
前記入力端は、エッジ記憶回路(ED)の入力端に接続され;
前記論理積回路(AND)の入力端は、エッジ記憶回路(ED’)の出力端に接続され;
前記論理積回路(AND)の出力端は、前記エッジ記憶回路(ED’)のリセット制御入力端に接続され;
前記論理積回路(AND)の出力端からreq信号が出力され;
該req信号は、遅延素子(D1)の入力端に接続され、該遅延素子(D1)の出力端からack信号が出力され;
前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号(lat)から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段を有する;
請求項1又は請求項3に記載の非同期式回路の制御回路。
【請求項7】
前記制御回路は、req信号生成回路と、遅延素子(D1)、及び論理和回路(OR)を備え;
前記遅延素子(D1)は、その入力信号のパルス幅を所定の時間だけ保持して出力する素子であり;
前記req信号生成回路は、C素子(C)、論理積回路(AND)を有し;
前記C素子(C)は、2つの入力と1つの出力を有し、入力値が一致したときに出力がその値に遷移し、一致しないときはそれ以前の出力値を保持する記憶素子であり;
前記入力端は、前記C素子(C)の一方の入力端に接続されると共に、前記論理積回路(AND)の一方の入力端にインバータ回路を介して接続され;
前記論理積回路(AND)の他方の入力端は、前記C素子(C)の出力端に接続され;
前記論理積回路(AND)の出力端は、前記C素子(C)の他方の入力端にインバータ回路を介して接続され;
前記論理積回路(AND)の出力端からreq信号が出力され;
該req信号は、遅延素子(D1)の入力端に接続され、該遅延素子(D1)の出力端からack信号が出力され;
前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号(lat)から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段を有する;
請求項1乃至請求項3のいずれか1項に記載の非同期式回路の制御回路。
【請求項8】
前記演算実行制御信号生成手段は、前記ack信号を演算実行制御信号(mux)として使用する;
請求項2乃至請求項7記載のいずれか1項に記載の非同期式回路の制御回路。
【請求項9】
前記演算実行制御信号生成手段は、前記ack信号と前記req信号の論理和を取り、演算実行制御信号(mux)として使用する;
請求項2乃至請求項7のいずれか1項に記載の非同期式回路の制御回路。
【請求項10】
前記演算実行制御信号生成手段は、前記ack信号、前記req信号、及び前記出力信号(out)の論理和を取り、演算実行制御信号(mux)として使用する;
請求項2乃至請求項7のいずれか1項に記載の非同期式回路の制御回路。
【請求項11】
請求項2乃至請求項10記載に非同期式回路の制御回路において;
2つの入力端及び1つの出力端を有し、第1の入力端が“0”のときは第2の入力端の信号をそのまま出力し、前記第1の入力端が“1”のときであって第2の入力端の信号が“1”から“0”に遷移するときは、前記第1の入力端が“1”から“0”に遷移するまで、“1”を出力して保持するストール制御回路(SC)を有し;
前記ack信号を前記ストール制御回路(SC)の第2の入力端に、次段が演算中である時“1”で、待機中の時“0”のストール信号を前記第1の入力端に接続し、該ストール制御回路(SC)の出力を前記論理和回路の第2の入力端、出力端、及び、ラッチ信号端に接続した;
非同期式回路の制御回路。
【請求項12】
前記ストール制御回路(SC)は;
2つの論理和を取る論理和回路と、前記C素子(C)で構成され;
前記論理和回路の第1の入力端には前記ストール信号が入力され;
前記論理和回路の第2の入力端には、ack信号が接続されると共に、前記第2の入力端は、前記C素子(C)の一方の入力端に接続され;
前記論理和回路の出力端は前記C素子(C)の他方の入力端に接続され;
前記C素子(C)の出力がストール制御回路(SC)の出力である;
請求項11記載の非同期式回路の制御回路。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2008−181170(P2008−181170A)
【公開日】平成20年8月7日(2008.8.7)
【国際特許分類】
【出願番号】特願2007−12144(P2007−12144)
【出願日】平成19年1月23日(2007.1.23)
【出願人】(504202472)大学共同利用機関法人情報・システム研究機構 (119)
【Fターム(参考)】