JP2008181170A - 非同期式回路の制御回路 - Google Patents
非同期式回路の制御回路 Download PDFInfo
- Publication number
- JP2008181170A JP2008181170A JP2007012144A JP2007012144A JP2008181170A JP 2008181170 A JP2008181170 A JP 2008181170A JP 2007012144 A JP2007012144 A JP 2007012144A JP 2007012144 A JP2007012144 A JP 2007012144A JP 2008181170 A JP2008181170 A JP 2008181170A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- circuit
- output
- input
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
- Logic Circuits (AREA)
Abstract
【課題】特別の休止相を設けることなく、各回路ブロックの演算終了後、初期状態に復帰することにより、高速化、低消費電力化を実現する非同期式回路の制御回路を提供する。
【解決手段】複数の回路ブロックが互いに他の回路ブロックと制御信号をやり取りすることにより一連の演算を実行する、非同期式回路において、入力制御信号が“1”から“0”に遷移したことをトリガとして演算を実施し、演算中、出力制御信号として“1”を出力し、演算が終了した後、出力制御信号を“0”に復帰するようにする。ここで、“0”とは、各回路ブロックの待機状態に対応する制御信号のステートを表したものであり、具体的な電圧等を表しているものではない。
【選択図】図2
【解決手段】複数の回路ブロックが互いに他の回路ブロックと制御信号をやり取りすることにより一連の演算を実行する、非同期式回路において、入力制御信号が“1”から“0”に遷移したことをトリガとして演算を実施し、演算中、出力制御信号として“1”を出力し、演算が終了した後、出力制御信号を“0”に復帰するようにする。ここで、“0”とは、各回路ブロックの待機状態に対応する制御信号のステートを表したものであり、具体的な電圧等を表しているものではない。
【選択図】図2
Description
本発明は、プロセッサ等で用いる演算回路の制御回路に関する。更に詳しくは、複数の回路ブロックの各々が互いに他の回路ブロックとハンドシェイク信号をやりとりすることにより、一連の演算を実行する非同期式回路の制御回路に関する。
クロック信号を用いない非同期式回路は、回路全体を一つのグローバルクロック信号で制御する同期式回路に比べて、クロックスキュー、クロック信号自体の消費電力の増大、雑音干渉の問題がなく、高速性や環境やプロセスの変化に対応できる柔軟性に優れると共に、回路モジュールの再利用が可能な回路として期待されている。
図27は、従来の非同期式回路の構成を示したものである。本図は、二つの入力データa,bから(a+b)2を演算する構成の一例を示したものであり、(a+b)の演算を行う演算回路1021とその2乗を演算する演算回路1022を有する。これら複数の演算回路の集合をデータパス3と呼ぶ。各々の演算回路にはその制御を行う制御回路1011及び1012を有する。制御回路1011及び演算回路1021の組合せは一つの回路ブロック1041を構成する。制御回路1011の制御入力in1が入力されると、mux1信号によって演算回路は所定の演算(c=a+b)を実行し、演算時間に相当する所要の時間の経過後、ラッチング信号lat1を送出して、演算結果を保持する。次に、out1信号を次段の回路ブロックに送出して、d=c2の演算を実行する。即ち、隣接する回路ブロックどうしが互いにハンドシェイク信号をやり取りすることにより所定の演算を実行する。このように、非同期式回路では、演算タイミングをハンドシェイク信号により制御し、所謂グローバルクロックを用いないので、前述したグローバルクロックに伴う問題を解決できる。
一般に、演算回路では、演算終了後、次の演算開始までに演算回路の状態を初期状態にする必要がある。非同期式回路の最も簡単な制御方法として、演算を実行する“稼動相”と、演算実行後、次の演算に備えて演算回路の状態を初期状態に戻す“休止相”を交互に繰り返してデータパス3を制御する2相式制御方式がある(例えば、非特許文献1)。このような2相式制御は、例えば、Qモジュールと呼ばれる2相式制御モジュールを用いて容易に実現できる。
電子情報通信学会論文誌D−1,J78巻,第4号,pp.416−423,1995年4月
電子情報通信学会論文誌D−1,J78巻,第4号,pp.416−423,1995年4月
ところで、2相式制御方式の非同期式回路では、演算を行わない休止相の時間と稼動相の時間長が同程度となる場合があり、この休止相の存在が演算の高速化及び低消費電力化の障害となっていた。
本願発明は、上記のような事情に鑑みてなされたものであり、特別の休止相を設けることなく各回路ブロックの演算終了後、初期状態に復帰する制御回路を提供することを目的とする。
本願発明は、上記のような事情に鑑みてなされたものであり、特別の休止相を設けることなく各回路ブロックの演算終了後、初期状態に復帰する制御回路を提供することを目的とする。
上記目的を達成するために、請求項1記載の非同期式回路の制御回路は、例えば、図1に示すように、演算回路2iと制御回路1iで構成された複数の回路ブロック4iの各々が、互いに他の回路ブロックとハンドシェイク信号(ini,outi等)をやり取りすることにより、所定の演算を実行する非同期式回路の制御回路1iであって、前記制御回路1iは前段からのハンドシェイク信号を入力する入力端(ini端)、次段へのハンドシェイク信号を出力する出力端(outi端)、前記演算回路の演算実行制御信号端(muxi端)、及び前記演算回路の演算実行結果をラッチするラッチ信号端(lati端)を有し、前記各演算回路2iは、前記制御回路1iからの制御によって、演算を実行する実行モードと、演算動作を行わない待機モードで動作し、該待機モードの時の、前記入力端(ini端)、出力端(outi端)、演算実行制御信号端(muxi端)、及びラッチ信号端(lati端)の対応する信号ステートを“0”で表した場合において、前記制御回路1iは、前段からの入力端(ini端)信号が“1”から“0”に遷移したことを検出して演算実行制御信号端(muxi端)の信号ステートを“1”として前記演算回路の演算を実行せしめ、更に、出力端(outi端)、及びラッチ信号端(lati端)の信号ステートを“1”とし、前記演算終了後、前記ラッチ信号端(lati端)の信号ステートを“0”に遷移せしめて演算実行結果を保持し、更に、演算実行制御信号端(muxi端)、及び出力端(outi端)の信号ステートを“0”に遷移せしめる手段を備える。
尚、各信号端の信号は、“1”と“0”の2つのステートのいずれかを取るが、この2つのステートは、ステートの状態を区別したものであり、具体的な電圧等を表しているものではない。前記演算回路2iが演算動作を行わず、以前の演算結果を保持する待機モード(前記初期状態に対応、演算終了後、十分の時間が経過して、各信号端が定常の状態になった状態)の時の、前記入力端(ini端)、出力端(outi端)、演算実行制御信号端(muxi端)、及びラッチ信号端(lati端)の取る信号ステートを、“0”ステートと表す。
尚、各信号端の信号は、“1”と“0”の2つのステートのいずれかを取るが、この2つのステートは、ステートの状態を区別したものであり、具体的な電圧等を表しているものではない。前記演算回路2iが演算動作を行わず、以前の演算結果を保持する待機モード(前記初期状態に対応、演算終了後、十分の時間が経過して、各信号端が定常の状態になった状態)の時の、前記入力端(ini端)、出力端(outi端)、演算実行制御信号端(muxi端)、及びラッチ信号端(lati端)の取る信号ステートを、“0”ステートと表す。
このように構成すると、制御回路の入力が、演算回路の実行モードに対応する入力から待機モードに対応する入力ステートに遷移することをトリガとして演算を実行するので、演算が終了したときには制御回路の入出力の信号ステートが待機モードに対応するステートになっており、従来技術のような特別の休止相を設ける必要がなく、高速で低消費電力の特性を実現できる。
請求項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を有するように構成したものである。
請求項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を有するように構成したものである。
このように構成すると、前段にある複数の回路ブロック4iの演算の全ての終了結果を受けて次の演算を実行する回路(合流回路)を簡略な構成で実現でき、又特別の休止相を設ける必要がないので高速で低消費電力の特性を実現できる。
請求項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)から、前記演算回路2iの演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段11を有するように構成したものである。
このように構成すると、フリップフロップ回路、論理積回路、論理和回路、遅延回路を用いて制御回路を簡易に構成できる。
請求項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)から、前記演算回路2iの演算実行時間より長い“1”の持続時間を有する演算実行制御信号(mux)を得る演算実行制御信号生成手段11を有するように構成したものである。
このように、立ち下りを検出するエッジ記憶回路(ED’)13’を用いて構成すると、論理積回路を用いないで、制御回路を簡易に構成できる。
請求項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)を得る演算実行制御信号生成手段を有するように構成したものである。
前記遅延素子(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)を得る演算実行制御信号生成手段を有するように構成したものである。
このように、立ち下りを検出するエッジ記憶回路(ED’)13’を用いて構成すると、論理積回路の入力端子数を少ないもので構成でき、制御回路を簡易に構成できる。
請求項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つの入力(C1,C2)と1つの出力(CO)を有し、入力値が一致したときに出力がその入力値に遷移し、一致しないときは、それ以前の出力値を保持する記憶素子であり、前記入力端(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を有するように構成したものである。
このように構成すると、C素子(C)、論理積回路、論理和回路、遅延回路を用いて制御回路を簡易に構成できる。また、C素子(C)は、フリップフロップ回路より、その動作が高速であるので回路全体の高速動作が可能となる。
請求項8記載の非同期式回路の制御回路は、請求項2乃至請求項7において、例えば、図20(c)に示すように、演算実行制御信号生成手段11は、前記ack信号を演算実行制御信号(mux)として使用するものである。
このように構成すると、ack信号をそのまま演算実行制御信号(mux)として使用するので回路を非常に簡単に出来る。
このように構成すると、ack信号をそのまま演算実行制御信号(mux)として使用するので回路を非常に簡単に出来る。
請求項9記載の非同期式回路の制御回路は、請求項2乃至請求項7において、例えば、図20(a)に示すように、演算実行制御信号生成手段11は、前記ack信号と前記req信号の論理和の論理和を取るように構成したものである。
また、請求項10記載の非同期式回路の制御回路は、請求項2乃至請求項7おいて、例えば、図20(b)に示すように、演算実行制御信号生成手段は、前記ack信号、前記req信号、及び出力信号(out)の論理和を取るように構成したものである。
請求項9、又は請求項10のように構成すると、ack信号が立ちあがる前の期間を演算時間に繰込むことができるので演算以外の無駄な時間を減らすことが出来、高速な動作を実現することが出来る。
請求項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端)に接続したように構成したものである。
このように構成すると、次段からのストール制御信号を受けて、次段への出力信号(out)が“1”から“0”に遷移するのを保留することができ、当該段のラッチも遅らせることができるので、本発明をパイプライン方式の回路に適用することが出来る。
請求項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)の出力であるように構成したものである。
このように構成すると、C素子(C)26、論理和回路25を追加するだけで制御回路をパイプライン構成の回路に適用することが出来ると共に、C素子(C)の特徴である、高速性を活かした特性を得ることが出来る。
以上、本発明によれば、非同期式回路の制御回路において、特別の休止相を設けることなく各回路ブロックの演算終了後、初期状態に復帰する構成が簡略な構成で実現することが出来るので、回路の高速化、低消費電力化に有効となる。また、この本発明の特徴を有したまま、パイプライン処理の回路に適用することが出来るので、広い適用範囲を持つことが出来る。
以下、本発明の実施の形態について、図面を参照して説明する。なお、各図において互いに同一あるいは相当する部分については同一符号又は類似符号を付し、重複した説明は省略する。また、同一の回路が複数ある場合の下付き添え字については、これら回路に共通する説明の場合には添え字を省略する場合がある。また、本明細書において、各部端子とその端子における信号について、図面では同じ符号を用いることがある。
本明細書および特許請求の範囲について、「接続」とは、二つ以上の回路又は素子が電気的につながれたことを言い、その間に、遅延手段、パルス幅変更手段、インバータ、抵抗、リアクタンス等のエレメントが本発明の本質を変更しない範囲で介されてつながれることを含む。
また、各制御信号端の信号ステートの遷移に関し、“0”から“1”への遷移を「立ち上がり」と、“1”から“0”への遷移を「立ち下がり」と、言うことがある。
ここにおいて、各信号端の信号は、“1”と“0”の2つのステートのいずれかを取るが、この2つのステートは、ステートの状態を区別したものであり、具体的な入出力電圧を表しているものではない。前記演算回路2が演算動作を行わず、以前の演算結果を保持する待機モード(前記休止相に対応、演算終了後、十分の時間が経過して、各信号端が定常の状態になった状態)の時の、前記入力端(in端)、出力端(out端)、演算実行制御信号端(mux端)、及びラッチ信号端(lat)の取る信号ステートを、“0”ステートと表す。
本明細書および特許請求の範囲について、「接続」とは、二つ以上の回路又は素子が電気的につながれたことを言い、その間に、遅延手段、パルス幅変更手段、インバータ、抵抗、リアクタンス等のエレメントが本発明の本質を変更しない範囲で介されてつながれることを含む。
また、各制御信号端の信号ステートの遷移に関し、“0”から“1”への遷移を「立ち上がり」と、“1”から“0”への遷移を「立ち下がり」と、言うことがある。
ここにおいて、各信号端の信号は、“1”と“0”の2つのステートのいずれかを取るが、この2つのステートは、ステートの状態を区別したものであり、具体的な入出力電圧を表しているものではない。前記演算回路2が演算動作を行わず、以前の演算結果を保持する待機モード(前記休止相に対応、演算終了後、十分の時間が経過して、各信号端が定常の状態になった状態)の時の、前記入力端(in端)、出力端(out端)、演算実行制御信号端(mux端)、及びラッチ信号端(lat)の取る信号ステートを、“0”ステートと表す。
図1は、本発明に関する非同期式回路の全体構成図で、回路ブロックが3個の例を示し、制御回路11〜13と演算回路21〜23で構成される(但し、13,23は、回路ブロック43の内部回路であり図示せず)。入力信号inは前段の回路ブロックからの制御入力信号であり、出力信号outは次段への制御を引き継ぐための制御信号で、各々、ハンドシェイク信号である。尚、複数の演算結果を待ってから演算を行う場合(合流回路)は、制御回路12のように入力信号が複数(in2(1),in2(2))になる。
図1を参照してその動作を説明する。図1は、第1段目の演算回路21で(a+b)の演算を行い、その結果と、演算回路23の演算結果dとの算術積を第2段目の演算回路22で行う例を示したものである。演算回路21には、演算器7、演算結果を格納するレジスタ5、制御回路の出力mux1で入力データa及びbを各々、演算器7の入力端に接続するマルチプレクサ6a、6b、及び、演算結果をレジスタ5に接続するマルチプレクサ6cを有する。
制御回路11に制御入力信号(in1)が入力されると、その立下りをトリガにmux1信号、lat1信号、及びout1信号が立ち上り、入力データa、bが演算器7の入力端に接続され演算が実行される。また、その結果がレジスタ5に入力される。次に、演算時間に対応する時間経過後lat1信号の立ち下りでレジスタ5がラッチされ、演算結果が保持されと共に、mux1信号が立ち下がり、その後、out1信号が立ち下がる。この状態で、1段目の制御回路の信号端のすべては、信号ステートが“0”となる。尚、レジスタ5が立ち上がりでラッチされるような場合はラッチ信号latをインバータを介して接続すればよい。
次段の制御回路12では、回路ブロック41及び43での演算の双方の終了、即ち、双方の出力信号out1、out3の双方の立ち下がりを検出し、双方の演算回路の演算結果(c=a+b)、及び(d)を使って同様の演算を実行し、目的とする(e=(a+b)×d)の演算結果を得る。尚、回路ブロック42における演算時に回路ブロック41及び43で別の入力データによる演算を同時に行う、いわゆるパイプライン動作を行わせることも出来る。
尚、パイプライン動作については後述する。
制御回路11に制御入力信号(in1)が入力されると、その立下りをトリガにmux1信号、lat1信号、及びout1信号が立ち上り、入力データa、bが演算器7の入力端に接続され演算が実行される。また、その結果がレジスタ5に入力される。次に、演算時間に対応する時間経過後lat1信号の立ち下りでレジスタ5がラッチされ、演算結果が保持されと共に、mux1信号が立ち下がり、その後、out1信号が立ち下がる。この状態で、1段目の制御回路の信号端のすべては、信号ステートが“0”となる。尚、レジスタ5が立ち上がりでラッチされるような場合はラッチ信号latをインバータを介して接続すればよい。
次段の制御回路12では、回路ブロック41及び43での演算の双方の終了、即ち、双方の出力信号out1、out3の双方の立ち下がりを検出し、双方の演算回路の演算結果(c=a+b)、及び(d)を使って同様の演算を実行し、目的とする(e=(a+b)×d)の演算結果を得る。尚、回路ブロック42における演算時に回路ブロック41及び43で別の入力データによる演算を同時に行う、いわゆるパイプライン動作を行わせることも出来る。
尚、パイプライン動作については後述する。
図2は、制御回路1の内部構成を示したものである。制御回路1は、req信号生成回路8、遅延回路(D1)9、遅延回路(D3)10、及び演算実行制御信号生成手段11で構成される。演算実行制御信号生成手段11は、種々の実施の形態があり具体的には後述するが、本図では論理和回路12を用いた実施の形態(図20(a)参照)を例に以下の動作を説明する。
図3は、本発明で使用する遅延回路(D1)9,(D2)15,(D3)10の特性を示したものである。特性は、〔d0,d1〕のように表され、この場合、d0 、d1が各々、立ち上がり時間,及び立下り時間の遅れを示す。
図4は、この遅延回路を実現するための具体的な構成を示したものである。(a)は立ち上がりを遅延させる回路で、(b)は立ち下がりを遅延させる回路である。共に、ゲート遅延(遅延量:D)を利用したもので、必要な遅延量(図では、3D)が得られるように論理積回路、論理和回路の段数を設定する。尚、説明の便宜上、図中#4のゲートの遅延時間は他のゲートの遅延時間に比べて無視できる場合を表示している。このため、(a)及び(b)で、各々、立ち下がり、立ち上がりタイミングが一致する。
図3は、本発明で使用する遅延回路(D1)9,(D2)15,(D3)10の特性を示したものである。特性は、〔d0,d1〕のように表され、この場合、d0 、d1が各々、立ち上がり時間,及び立下り時間の遅れを示す。
図4は、この遅延回路を実現するための具体的な構成を示したものである。(a)は立ち上がりを遅延させる回路で、(b)は立ち下がりを遅延させる回路である。共に、ゲート遅延(遅延量:D)を利用したもので、必要な遅延量(図では、3D)が得られるように論理積回路、論理和回路の段数を設定する。尚、説明の便宜上、図中#4のゲートの遅延時間は他のゲートの遅延時間に比べて無視できる場合を表示している。このため、(a)及び(b)で、各々、立ち下がり、立ち上がりタイミングが一致する。
図5は、図2の回路ブロック1において、演算開始から終了、及び次段に対する出力信号の送出までの動作を示したものである。以下時間を追って説明する。
尚、特に断らない限りゲート間の遅延は無視して表示し、その因果関係を細い矢印付き線で示した。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号inが一旦、“1”となる。この変化は前段の演算開始を示しているが、本段での動作には無関係である(時間:t1)。
(3)前段の演算が終了すると、入力信号inが立ち下がる。これを受けて、req信号が立ち上がる(時間:t2)。この“1”のステートはt3まで継続される。尚、req信号のパルス幅(t3―t2)は、演算時間の範囲で設定する。このパルス幅はreq信号生成回路の具体的な構成で決まる。
(4)req信号は、遅延回路(D1)9を通過することによりack信号となる。遅延回路(D1)9の遅延特性は〔d1 0,d1 1〕である。従って、ack信号がd1 0に対応する時間で立ち上がり(時間:t2)、d1 1に対応する時間で立ち下がる(時間:t4)波形が得られる。時間:t2〜t4が演算時間に対応する。尚、d1 0の値は、出来るだけ小さい値を設定する。
(5)ack信号とreq信号の論理和出力からmux信号を得る(時間:t2〜t4)。この処理により、ack信号の立ち上がりが遅延する場合にも最大限の演算時間を確保することが出来る。尚、この動作は、本図で記載した、req信号とack信号を論理和回路12の入力とする、演算実行制御信号生成手段11の構成の場合に限られる。その他の実施の形態に付いては図20,図21で説明する。
(6)ack信号の立ち下り後、立ち下がるlat信号を得る(時間:t2〜t4)。
(7)ackからout信号を得る。尚、この場合、遅延回路(D3)10を介してout信号を得ると、演算結果の格納にホールドタイム(立ち下り遅延時間:d3 1に対応)を設けてからout信号の立下りが実行されるので、前段の演算結果データを確実に保持した上で次段の演算を実行することが担保される。このような点で遅延回路(D3)10を設けることが望ましいが、上で述べたack信号とout信号の時間関係が保持されていれば前記遅延回路(D3)10を特別に設けることは必ずしも必須ではない(時間:t5)。
(8)以上の動作の後、制御回路1の制御出力端in,out,mux,lat各端はすべて待機モードステートである“0”となる(時間:t6)。
尚、特に断らない限りゲート間の遅延は無視して表示し、その因果関係を細い矢印付き線で示した。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号inが一旦、“1”となる。この変化は前段の演算開始を示しているが、本段での動作には無関係である(時間:t1)。
(3)前段の演算が終了すると、入力信号inが立ち下がる。これを受けて、req信号が立ち上がる(時間:t2)。この“1”のステートはt3まで継続される。尚、req信号のパルス幅(t3―t2)は、演算時間の範囲で設定する。このパルス幅はreq信号生成回路の具体的な構成で決まる。
(4)req信号は、遅延回路(D1)9を通過することによりack信号となる。遅延回路(D1)9の遅延特性は〔d1 0,d1 1〕である。従って、ack信号がd1 0に対応する時間で立ち上がり(時間:t2)、d1 1に対応する時間で立ち下がる(時間:t4)波形が得られる。時間:t2〜t4が演算時間に対応する。尚、d1 0の値は、出来るだけ小さい値を設定する。
(5)ack信号とreq信号の論理和出力からmux信号を得る(時間:t2〜t4)。この処理により、ack信号の立ち上がりが遅延する場合にも最大限の演算時間を確保することが出来る。尚、この動作は、本図で記載した、req信号とack信号を論理和回路12の入力とする、演算実行制御信号生成手段11の構成の場合に限られる。その他の実施の形態に付いては図20,図21で説明する。
(6)ack信号の立ち下り後、立ち下がるlat信号を得る(時間:t2〜t4)。
(7)ackからout信号を得る。尚、この場合、遅延回路(D3)10を介してout信号を得ると、演算結果の格納にホールドタイム(立ち下り遅延時間:d3 1に対応)を設けてからout信号の立下りが実行されるので、前段の演算結果データを確実に保持した上で次段の演算を実行することが担保される。このような点で遅延回路(D3)10を設けることが望ましいが、上で述べたack信号とout信号の時間関係が保持されていれば前記遅延回路(D3)10を特別に設けることは必ずしも必須ではない(時間:t5)。
(8)以上の動作の後、制御回路1の制御出力端in,out,mux,lat各端はすべて待機モードステートである“0”となる(時間:t6)。
図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の遅延特性〔d2 0,d2 1〕については、req信号のパルス幅をある程度保った上で、d2 0を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はない。論理積回路14の一方の入力はエッジ検出回路(ED)13の出力に接続され、他方の入力はエッジ検出回路(ED)13の入力端とインバータ16を介して接続される。
図に示すように、前記req信号生成回路8は、立ち上がりエッジ検出回路(ED)13、論理積回路14、及び好ましくは遅延回路(D2)15で構成される。信号入力inはエッジ検出回路(ED)13の入力に接続され、req信号は論理積回路14の出力として得られる。前記エッジ検出回路(ED)13は、入力inが立ち上がった場合、その出力aのステートを“1”に保持し、リセット信号(reset)が立ち上がった場合にステート“0”に戻す回路であり、具体的にはフリップフロップで実現できる。リセット信号は、論理積回路14の出力から遅延回路(D2)15を介して供給される。遅延回路(D2)15の遅延特性〔d2 0,d2 1〕については、req信号のパルス幅をある程度保った上で、d2 0を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はない。論理積回路14の一方の入力はエッジ検出回路(ED)13の出力に接続され、他方の入力はエッジ検出回路(ED)13の入力端とインバータ16を介して接続される。
図7は、図6の構成において、演算開始から終了、次段に対する出力信号の送出までの動作を示したものである。以下時間を追って説明する。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号inが一旦、“1”となると、エッジ検出回路(ED)13の出力aは立ち上がり、“1”を保持する。この信号は論理積回路14の一方の入力端に入力される。但し、この時の他方の入力端のステートはインバータ16により、“0”である(時間:t1)。
(3)演算開始を促す入力信号inの立下りがあると、前記論理積回路14の他方の入力端が“1”になるため、論理積回路14の出力は“1”となり、req信号が立ち上がる(時間:t2)。
(4)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する(時間:t2〜t5)。
(5)req信号の遅延信号であるreset信号が立ち上がり、エッジ検出回路(ED)13の出力aは“0”にリセットされ、req信号が立ち下る(時間:t3)。
(6)req信号の立ち下りにより、遅延回路(D2)15の遅延特性に従って、reset信号が立ち下がる(時間:t3)。
(7)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t6)。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号inが一旦、“1”となると、エッジ検出回路(ED)13の出力aは立ち上がり、“1”を保持する。この信号は論理積回路14の一方の入力端に入力される。但し、この時の他方の入力端のステートはインバータ16により、“0”である(時間:t1)。
(3)演算開始を促す入力信号inの立下りがあると、前記論理積回路14の他方の入力端が“1”になるため、論理積回路14の出力は“1”となり、req信号が立ち上がる(時間:t2)。
(4)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する(時間:t2〜t5)。
(5)req信号の遅延信号であるreset信号が立ち上がり、エッジ検出回路(ED)13の出力aは“0”にリセットされ、req信号が立ち下る(時間:t3)。
(6)req信号の立ち下りにより、遅延回路(D2)15の遅延特性に従って、reset信号が立ち下がる(時間:t3)。
(7)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t6)。
図8は、前記req信号生成回路8の他の具体的な構成を示したものである。本構成は、入力信号が“1”から“0”に遷移した時に、“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す立ち下がり検出型のエッジ記憶回路13’を用いたもので、この場合は、図6の論理積回路(AND)14を省略でき、より簡易な構成で実現できる。
図9は、図8の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。これは、図7に比べて、“a”が、入力信号(in)の立ち下りに応じて立ち上がる点(時間:t2)を除いて同じであるので説明は省略する。
図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)の一方の入力端(C1)に接続される。C素子(C)の他方の入力端(C2)には、論理積回路の出力から遅延回路(D2)15及びインバータ20を介して供給される。遅延回路(D2)15の遅延特性〔d2 0,d2 1〕については、req信号のパルス幅をある程度保った上で、d2 0を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はないことは勿論である。C素子(C)の出力(CO)は前記論理積回路18の他方の入力端に接続される。前記req信号生成回路8の出力は、前記論理積回路18の出力として得られる。
図10に示すように、前記req信号生成回路8は、MullerのC素子と言われるC素子(C)17(前記、非特許文献1参照)、論理積回路18、及び好ましくは遅延回路(D2)15で構成される。入力信号inは、論理積回路18の入力の一方にインバータ19を介して接続されると共に、前記C素子(C)の一方の入力端(C1)に接続される。C素子(C)の他方の入力端(C2)には、論理積回路の出力から遅延回路(D2)15及びインバータ20を介して供給される。遅延回路(D2)15の遅延特性〔d2 0,d2 1〕については、req信号のパルス幅をある程度保った上で、d2 0を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はないことは勿論である。C素子(C)の出力(CO)は前記論理積回路18の他方の入力端に接続される。前記req信号生成回路8の出力は、前記論理積回路18の出力として得られる。
図11は、前記C素子(C)17の真理値表を示したもので、2つの入力(C1,C2)が同じ場合はその入力ステートを出力し、異なる場合は前の状態を保持する回路である。尚、本発明では出力COの初期値は“0”にセットされる。具体的なC素子(C)17の回路構成を図12に示す。
図13は、図10の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。以下時間を追って説明する。尚、C素子(C)17の入力端のうち、遅延回路(D2)15を経由した信号については、インバータ20の入力側の信号を“C2”、出力側の信号を“C2_bar”として示した。C素子(C)17の出力COの初期値は“0”である。
(1)演算開始前においては、各部(C2_barを除く)の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号inが一旦、“1”となると、C素子(C)17の2つの入力が“1”となるのでCOが立ち上がる(時間:t1)。
(3)演算開始を促す入力信号inの立下りがあると、C素子(C)17の一方の入力C1は“0”に立ち下がるが、他方の入力端のC2_barが“1”を保持しているのでC素子(C)17の出力COはその直後しばらくの間、“1”を保持する。従って、論理積回路18の出力は“1”となり、req信号も立ち上がる(時間:t2)。
(4)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する。
(5)req信号の遅延信号であるC2信号が遅延回路(D2)15の特性にしたがって立ち上がり、これに従ってC2_bar信号も立ち下がる。すると、C素子(C)の両入力が“0”となるので、COが“0”となり、req信号が立ち下がる(時間:t3)。
(6)req信号の立ち下がりを受けてC2が立ち下がり、C2_barが立ち上がる(時間:t4)。
(7)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t8)。
(1)演算開始前においては、各部(C2_barを除く)の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号inが一旦、“1”となると、C素子(C)17の2つの入力が“1”となるのでCOが立ち上がる(時間:t1)。
(3)演算開始を促す入力信号inの立下りがあると、C素子(C)17の一方の入力C1は“0”に立ち下がるが、他方の入力端のC2_barが“1”を保持しているのでC素子(C)17の出力COはその直後しばらくの間、“1”を保持する。従って、論理積回路18の出力は“1”となり、req信号も立ち上がる(時間:t2)。
(4)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する。
(5)req信号の遅延信号であるC2信号が遅延回路(D2)15の特性にしたがって立ち上がり、これに従ってC2_bar信号も立ち下がる。すると、C素子(C)の両入力が“0”となるので、COが“0”となり、req信号が立ち下がる(時間:t3)。
(6)req信号の立ち下がりを受けてC2が立ち下がり、C2_barが立ち上がる(時間:t4)。
(7)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t8)。
以上の説明は、演算が前段のみのデータを用いて行われる場合についてであるが、実際には、例えば、図1のように複数の演算結果(回路ブロック41の“c”、及び回路ブロック43の“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が立ち上がった場合、その出力aiのステートを“1”に保持し、リセット信号(reset)が立ち上がった場合にステート“0”に戻す回路である。リセット信号は、論理積回路14’の出力から遅延回路(D2)15を介して供給される。遅延回路(D2)15の遅延特性〔d2 0,d2 1〕については、req信号のパルス幅をある程度保った上で、d2 0を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はないことは勿論である。論理積回路14’のn個の入力は各エッジ検出回路(ED)13(i)の各出力に接続され、n個の入力は各エッジ検出回路(ED)13(i)の入力端とインバータ21(i)を介して各々接続される。
図15は、図14の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。図7と類似の動作を行うものであるが、すべての入力信号in(i)の立ち下がりが検出されたことを条件にreq信号が立ちあがる点に特徴がある。以下時間を追って説明する。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号in(i)が一旦、“1”となると、各エッジ検出回路(ED)13(i)の出力a(i)は立ち上がり、“1”を保持する。この信号は論理積回路14’の入力端に入力される。更に、各入力信号in(i)はインバータ21iを介して論理積回路14’の別の入力端に入力され、そのステートは、“0”である(時間:t1,t3,t5)。
(3)演算開始を促す入力信号in(i)に立下りがあると(t2、t4、t6)、インバータ21(i)を経由した信号は論理積回路の入力端で“1”になる。しかし、複数の入力信号in(i)のうち、立ち下がらないものが一つでもあると、論理積回路14’の出力は“0”となり、req信号は立ち上がらない。
(4)すべての入力端(in(i)端)で立ち下がりが検出されると、(本図の場合、in(2):t6)論理積回路14’のすべての入力端が“1”となり、req信号が立ち上がる(時間:t6)。
(5)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する(t6〜t11)。
(6)req信号の遅延信号であるreset信号が立ち上がり、エッジ検出回路(ED)13(i)の各出力a(i)は“0”にリセットされ(時間:t7)、更に、req信号が立ち下る(時間:t8)。
(7)req信号の立ち下りにより、遅延回路(D2)15の遅延特性に従って、reset信号が立ち下がる(時間:t9)。
(8)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t12)。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号in(i)が一旦、“1”となると、各エッジ検出回路(ED)13(i)の出力a(i)は立ち上がり、“1”を保持する。この信号は論理積回路14’の入力端に入力される。更に、各入力信号in(i)はインバータ21iを介して論理積回路14’の別の入力端に入力され、そのステートは、“0”である(時間:t1,t3,t5)。
(3)演算開始を促す入力信号in(i)に立下りがあると(t2、t4、t6)、インバータ21(i)を経由した信号は論理積回路の入力端で“1”になる。しかし、複数の入力信号in(i)のうち、立ち下がらないものが一つでもあると、論理積回路14’の出力は“0”となり、req信号は立ち上がらない。
(4)すべての入力端(in(i)端)で立ち下がりが検出されると、(本図の場合、in(2):t6)論理積回路14’のすべての入力端が“1”となり、req信号が立ち上がる(時間:t6)。
(5)req信号の立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。この過程は図5の構成の場合と同じであるので説明を省略する(t6〜t11)。
(6)req信号の遅延信号であるreset信号が立ち上がり、エッジ検出回路(ED)13(i)の各出力a(i)は“0”にリセットされ(時間:t7)、更に、req信号が立ち下る(時間:t8)。
(7)req信号の立ち下りにより、遅延回路(D2)15の遅延特性に従って、reset信号が立ち下がる(時間:t9)。
(8)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t12)。
図16は、複数(n個)の入力信号を持つ前記req信号生成回路8’の他の具体的な構成を示したものである。本構成は、入力信号が“1”から“0”に遷移した時に、“1”を出力して保持し、リセット信号が入力したときに出力を“0”に戻す立ち下がり検出型のエッジ記憶回路13’を用いたもので、この場合は、図14の論理積回路(AND)14’の入力端子数を少なくすることができ、より簡易な構成で実現できる。
図17は、図16の構成において、演算開始から終了、次段に対する制御信号の送出までの動作を示したものである。これは、図7に比べて、“a(i)”が、入力信号(in)の立ち下りに応じて立ち上がる点(時間:t2、t4、t6)を除いて同じであるので説明は省略する。
図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)の一方の入力端(C1)に接続される。C素子(C)17(i)の他方の入力端(C2)には、論理積回路18’の出力から遅延回路(D2)15及びインバータ23(i)を介して供給される。遅延回路(D2)15の遅延特性〔d2 0,d2 1〕については、req信号のパルス幅をある程度保った上で、d2 0を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はない。C素子(C)17(i)の出力(CO(i))は前記論理積回路18’の他方の入力端に接続される。前記req信号生成回路8’の出力は、前記論理積回路18’の出力として得られる。
図18に示すように、前記req信号生成回路8’は、n個のMullerのC素子(C)17(i)、好ましくは遅延回路(D2)15、及び、入力端の数が2nの論理積回路18’で構成される。各入力信号in(i)は、論理積回路18’の入力の一方にインバータ22(i)を介して接続されると共に、前記C素子(C)17(i)の一方の入力端(C1)に接続される。C素子(C)17(i)の他方の入力端(C2)には、論理積回路18’の出力から遅延回路(D2)15及びインバータ23(i)を介して供給される。遅延回路(D2)15の遅延特性〔d2 0,d2 1〕については、req信号のパルス幅をある程度保った上で、d2 0を演算時間より小さい値に選ぶことが望ましい。尚、具体的な回路でこのような条件が満足されていれば特段遅延回路を設ける必要はない。C素子(C)17(i)の出力(CO(i))は前記論理積回路18’の他方の入力端に接続される。前記req信号生成回路8’の出力は、前記論理積回路18’の出力として得られる。
図19は、図18の構成において、演算開始から終了、次段に対する出力信号の送出までの動作を示したものである。図13と類似の動作を行うものであるが、すべての入力信号in(i)の立ち下がりが検出されたことを条件にreq信号が立ち上がる点に特徴がある。以下時間を追って説明する。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号in(1)が一旦、“1”となると、C素子(C)の2つの入力が“1”となるのでCO(1)が立ち上がる(時間:t1)。
(3)演算開始を促す入力信号in(1)の立下りがあると、in(1)に接続された、C素子(C)17(1)の一方の入力C1は“0”に立ち下がるが、他方の入力端のC2_barが“1”を保持しているのでC素子(C)17(1)の出力CO(1)はその直後しばらくの間、“1”を保持する。しかし、他の入力信号の立ち下がりが検出されていないので、論理積回路18’の入力のすべてが“1”にならず、req信号は“0”のままである(時間:t2〜t4)。
(4)すべての入力信号のうち最後の入力信号(in(2))の立ち下がりがあると(時間:t6)、論理積回路17’のすべての入力端が“1”となり、req信号が立ちあがる(時間:t7)。この立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。尚、この過程は図5の構成の場合と同じであるので説明を省略する(t7〜t11)。
(5)req信号の遅延信号であるC2信号が遅延回路(D2)15の特性にしたがって立ち上がり、これに従ってC2_bar信号も立ち下がる。すると、各C素子(C)17(i)の二つの入力が共に“0”となるので、すべてのCO(i)が“0”となり(時間:t8)、req信号が立ち下がる(時間:t9)。
(6)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t12)。
(1)演算開始前においては、各部の信号ステートはすべて“0”である(時間:t0)。
(2)前段からの入力信号in(1)が一旦、“1”となると、C素子(C)の2つの入力が“1”となるのでCO(1)が立ち上がる(時間:t1)。
(3)演算開始を促す入力信号in(1)の立下りがあると、in(1)に接続された、C素子(C)17(1)の一方の入力C1は“0”に立ち下がるが、他方の入力端のC2_barが“1”を保持しているのでC素子(C)17(1)の出力CO(1)はその直後しばらくの間、“1”を保持する。しかし、他の入力信号の立ち下がりが検出されていないので、論理積回路18’の入力のすべてが“1”にならず、req信号は“0”のままである(時間:t2〜t4)。
(4)すべての入力信号のうち最後の入力信号(in(2))の立ち下がりがあると(時間:t6)、論理積回路17’のすべての入力端が“1”となり、req信号が立ちあがる(時間:t7)。この立ち上がり以降、ack信号、mux信号、lat信号、out信号が立ちあがる。尚、この過程は図5の構成の場合と同じであるので説明を省略する(t7〜t11)。
(5)req信号の遅延信号であるC2信号が遅延回路(D2)15の特性にしたがって立ち上がり、これに従ってC2_bar信号も立ち下がる。すると、各C素子(C)17(i)の二つの入力が共に“0”となるので、すべてのCO(i)が“0”となり(時間:t8)、req信号が立ち下がる(時間:t9)。
(6)以上の動作の後、制御回路1の制御出力in,out,mux,latはすべて待機モードステートである“0”となる(時間:t12)。
以上、演算実行制御信号生成手段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信号として使用するもので、速度の点では劣るが回路構成が簡単になるという利点がある。
図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信号として使用するもので、速度の点では劣るが回路構成が簡単になるという利点がある。
ここまでの説明は、例えば、図1のように、回路ブロック41が、c=(a+b)の演算、回路ブロック42が、e=c×dの2段階の演算(以下、タスクと言う)を行った後、次のタスクを行う、非パイプライン処理を前提に説明した。以下に、パイプライン処理に本願発明を適用する場合の構成について説明する。
図22は、本発明をパイプライン処理に適用した構成である。パイプラインとは、例えば、図23のように回路ブロック41〜43で一連の演算を行う際、回路ブロック41でタスクAの第1段の演算が終了した後、回路ブロック42でタスクAの第2段の演算を実行している間に、回路ブロック41で次のタスクBの第1段の演算を行うもので複数のタスクの演算を同時に行い全体として演算速度を向上することを目的とするものである。この場合、例えば、図23のtsのように、回路ブロック41の演算時間が42の演算時間より短い場合、42の演算が終了しないうちに41の演算が終了することがある。このような時、次段へ演算開始制御信号(out信号)を送っても、回路ブロック42では前の演算を実行中のため、回路ブロック41の動作を42の演算が終了するまで一時保留する必要がある。これをストール(stall)と言う。本発明では、図22のように、ストール制御用の信号(stall)を次段のout信号として前段の動作を制御することにより上記の問題を回避する。これは、次段のout信号が“1”のときは次段の動作が実行モードであり、out信号が“1”から“0”に推移した時、次段の演算が終了したことを示していることを利用して、次段のout信号の立ち下りを検出するまで前段のout信号、mux信号、lat信号を立ち下げないように構成する。
図22は、本発明をパイプライン処理に適用した構成である。パイプラインとは、例えば、図23のように回路ブロック41〜43で一連の演算を行う際、回路ブロック41でタスクAの第1段の演算が終了した後、回路ブロック42でタスクAの第2段の演算を実行している間に、回路ブロック41で次のタスクBの第1段の演算を行うもので複数のタスクの演算を同時に行い全体として演算速度を向上することを目的とするものである。この場合、例えば、図23のtsのように、回路ブロック41の演算時間が42の演算時間より短い場合、42の演算が終了しないうちに41の演算が終了することがある。このような時、次段へ演算開始制御信号(out信号)を送っても、回路ブロック42では前の演算を実行中のため、回路ブロック41の動作を42の演算が終了するまで一時保留する必要がある。これをストール(stall)と言う。本発明では、図22のように、ストール制御用の信号(stall)を次段のout信号として前段の動作を制御することにより上記の問題を回避する。これは、次段のout信号が“1”のときは次段の動作が実行モードであり、out信号が“1”から“0”に推移した時、次段の演算が終了したことを示していることを利用して、次段のout信号の立ち下りを検出するまで前段のout信号、mux信号、lat信号を立ち下げないように構成する。
図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の構成に限定されるものではない。
図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)の特徴である高速性を備えた特性を実現することが出来る。
以上のように、C素子(C)26と論理和回路25を用いれば簡単な構成で、前記ストール制御回路を実現できる。しかも、C素子(C)の特徴である高速性を備えた特性を実現することが出来る。
図26は、図22の構成において、回路ブロック41,42を用いた、2段のパイプライン動作(タスクA,B,Cを処理)を示したタイムチャートである。本図は、演算実行制御信号生成手段が図20の(a)に対応したもので説明する。各信号の名称は図22に対応させてある。in1の立ち下がり時点、t1、t3、t7で各々、タスクA,B,Cの演算が一段目の回路ブロック41で開始され、in2(out1)の立ち下がり時点、t2’、t4’’、t8’で各々、タスクA,B,Cの演算が二段目の回路ブロック42で開始される。回路ブロック42の演算時間は41の演算時間に比べて長いとする。in1の立ち下がり(t1)を検出し、タスクAの演算を開始し、演算終了後、lat1信号及びmux1信号をt2で、out1信号をt2’で立ち下げる。この間、次段のstall信号(out2信号)は“0”である。
回路ブロック42はt2’でタスクAの演算を開始し、演算終了後、lat2信号及びmux2信号をt5で、out2信号をt5’で立ち下げる。
次に、回路ブロック41はt3でタスクBの演算を開始し、t4で演算を終了する。しかし、この時点では次段の回路ブロック42はタスクAの演算を終了していない。即ち、out2信号(stall2信号)は“1”であり、ストール制御回路の出力は、“1”の状態を取り、lat1、mux1、out1信号はいずれも“1”を次段の演算が終了するまで保持する。次段の回路ブロック42で、タスクAの演算が終了するとt5でlat2,mux2信号が、t5’でout2信号が立ち下がり、同時にstall1信号が前段の回路ブロック41に入力される。回路ブロック41では、lat1信号及びmux1信号をt4’で、out1信号をt4’’で立ち下げる。このようにして、タスクA,B間で回路ブロック42の競合を調整する。
回路ブロック42では、t4’’からタスクBの演算を実行し、t6’でout2信号を送出し、更に次段に演算を引き継ぐ。
t7でin1信号が立ち下がり、タスクCの演算が開始され、t8までに終了するが、この場合は、図のように、次段の回路ブロック42で演算を実行しておらずstall2信号(out2)が“0”のため、t8でlat1信号及びmux1信号を、t8’でout1信号を立ち下げる。これによって次段でのCタスクの演算が実行される。
回路ブロック42はt2’でタスクAの演算を開始し、演算終了後、lat2信号及びmux2信号をt5で、out2信号をt5’で立ち下げる。
次に、回路ブロック41はt3でタスクBの演算を開始し、t4で演算を終了する。しかし、この時点では次段の回路ブロック42はタスクAの演算を終了していない。即ち、out2信号(stall2信号)は“1”であり、ストール制御回路の出力は、“1”の状態を取り、lat1、mux1、out1信号はいずれも“1”を次段の演算が終了するまで保持する。次段の回路ブロック42で、タスクAの演算が終了するとt5でlat2,mux2信号が、t5’でout2信号が立ち下がり、同時にstall1信号が前段の回路ブロック41に入力される。回路ブロック41では、lat1信号及びmux1信号をt4’で、out1信号をt4’’で立ち下げる。このようにして、タスクA,B間で回路ブロック42の競合を調整する。
回路ブロック42では、t4’’からタスクBの演算を実行し、t6’でout2信号を送出し、更に次段に演算を引き継ぐ。
t7でin1信号が立ち下がり、タスクCの演算が開始され、t8までに終了するが、この場合は、図のように、次段の回路ブロック42で演算を実行しておらずstall2信号(out2)が“0”のため、t8でlat1信号及びmux1信号を、t8’でout1信号を立ち下げる。これによって次段でのCタスクの演算が実行される。
このように、本発明の実施の形態で説明した非同期式回路の制御回路は、特別の休止相を設けることなく各回路ブロックの演算終了後、演算回路が初期状態に復帰するので、演算の高速化、消費電力の低減が可能となる。また、本発明は、パイプライン方式を簡易な回路の追加で実現できるので、その応用範囲が広いという特徴を有する。更に、本発明は、mullerのC素子(C)を用いて構成することができるので、C素子(C)の特徴である簡易な回路で高速特性が得られるという特徴を有する。
尚、本願に係る発明は以上説明した実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で適宜変更して実施することができることは勿論である。
1i 制御回路
2i 演算回路
3 データパス
4i 回路ブロック
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)
101i 制御回路
102i 演算回路
104i 回路ブロック
2i 演算回路
3 データパス
4i 回路ブロック
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)
101i 制御回路
102i 演算回路
104i 回路ブロック
Claims (12)
- 演算回路と制御回路で構成された複数の回路ブロックの各々が、互いに他の回路ブロックとハンドシェイク信号をやり取りすることにより、所定の演算を実行する非同期式回路の制御回路であって;
前記制御回路は前段からのハンドシェイク信号を入力する入力端、次段へのハンドシェイク信号を出力する出力端、前記演算回路の演算実行制御信号端、及び前記演算回路の演算実行結果をラッチするラッチ信号端を有し;
前記各演算回路は、上記制御回路からの制御によって、演算を実行する実行モードと、演算動作を行わない待機モードで動作し;
該待機モードの時の、前記入力端、出力端、演算実行制御信号端、及びラッチ信号端の対応する信号ステートを“0”で表した場合において、前記制御回路は、前段からの入力端信号が“1”から“0”に遷移したことを検出して演算実行制御信号端の信号ステートを“1”として前記演算回路の演算を実行せしめ、更に、出力端、及びラッチ信号端の信号ステートを“1”とし、前記演算終了後、前記ラッチ信号端の信号ステートを“0”に遷移せしめて演算実行結果を保持し、更に、演算実行制御信号端、及び出力端の信号ステートを“0”に遷移せしめる手段を有する;
非同期式回路の制御回路。 - 前記ハンドシェイク信号の入力端における信号(以下、入力信号(in)という)が “1”から“0”に遷移したときに“1”を出力し、所定時間経過後に“0”に復帰するreq信号生成手段と;
前記req信号が“1”に遷移した後、“0”から“1”に遷移し、所定の時間経過後、“1”から“0”に復帰するack信号を生成する手段と;
該ack信号から、前記ラッチ信号端における信号(以下、lat信号という)、及び出力端における前記ハンドシェイク出力信号(以下、出力信号(out)という)を生成し、該出力信号(out)を次段の入力信号として送出する手段と;
前記req信号、及び/又は出力信号(out)、及び/又はack信号、及び/又はlat信号から、前記演算回路の演算実行時間より長い“1”の持続時間を有する演算実行制御信号端における信号(以下、mux信号という)を得る演算実行制御信号生成手段を有する;
請求項1記載の非同期式回路の制御回路。 - 複数の入力信号(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記載の非同期式回路の制御回路。 - 前記制御回路は、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項に記載の非同期式回路の制御回路。 - 前記制御回路は、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に記載の非同期式回路の制御回路。 - 前記制御回路は、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に記載の非同期式回路の制御回路。 - 前記制御回路は、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項に記載の非同期式回路の制御回路。 - 前記演算実行制御信号生成手段は、前記ack信号を演算実行制御信号(mux)として使用する;
請求項2乃至請求項7記載のいずれか1項に記載の非同期式回路の制御回路。 - 前記演算実行制御信号生成手段は、前記ack信号と前記req信号の論理和を取り、演算実行制御信号(mux)として使用する;
請求項2乃至請求項7のいずれか1項に記載の非同期式回路の制御回路。 - 前記演算実行制御信号生成手段は、前記ack信号、前記req信号、及び前記出力信号(out)の論理和を取り、演算実行制御信号(mux)として使用する;
請求項2乃至請求項7のいずれか1項に記載の非同期式回路の制御回路。 - 請求項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の入力端、出力端、及び、ラッチ信号端に接続した;
非同期式回路の制御回路。 - 前記ストール制御回路(SC)は;
2つの論理和を取る論理和回路と、前記C素子(C)で構成され;
前記論理和回路の第1の入力端には前記ストール信号が入力され;
前記論理和回路の第2の入力端には、ack信号が接続されると共に、前記第2の入力端は、前記C素子(C)の一方の入力端に接続され;
前記論理和回路の出力端は前記C素子(C)の他方の入力端に接続され;
前記C素子(C)の出力がストール制御回路(SC)の出力である;
請求項11記載の非同期式回路の制御回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007012144A JP2008181170A (ja) | 2007-01-23 | 2007-01-23 | 非同期式回路の制御回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007012144A JP2008181170A (ja) | 2007-01-23 | 2007-01-23 | 非同期式回路の制御回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008181170A true JP2008181170A (ja) | 2008-08-07 |
Family
ID=39725052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007012144A Pending JP2008181170A (ja) | 2007-01-23 | 2007-01-23 | 非同期式回路の制御回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008181170A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012190251A (ja) * | 2011-03-10 | 2012-10-04 | Renesas Electronics Corp | 非同期式回路 |
JP2013165490A (ja) * | 2012-02-09 | 2013-08-22 | Altera Corp | 高レベル言語を用いるプログラマブルデバイスの構成 |
-
2007
- 2007-01-23 JP JP2007012144A patent/JP2008181170A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012190251A (ja) * | 2011-03-10 | 2012-10-04 | Renesas Electronics Corp | 非同期式回路 |
JP2013165490A (ja) * | 2012-02-09 | 2013-08-22 | Altera Corp | 高レベル言語を用いるプログラマブルデバイスの構成 |
US10366189B2 (en) | 2012-02-09 | 2019-07-30 | Altera Corporation | Configuring a programmable device using high-level language |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102970013B (zh) | 基于扫描链的芯片内部寄存器复位方法及复位控制装置 | |
JP5317356B2 (ja) | クロック制御信号生成回路、クロックセレクタ、及び情報処理装置 | |
JP7465848B2 (ja) | 非同期パイプラインのステージの動作速度の制御 | |
US20080054952A1 (en) | Circuit for switching between two clock signals independently of the frequency of the clock signals | |
US20200389156A1 (en) | Method and arrangement for protecting a digital circuit against time errors | |
JP7297784B2 (ja) | プログラマブル制御回路を用いた選択的なクロック信号の提供 | |
JP3604323B2 (ja) | クロック切替回路 | |
JPH10134091A (ja) | 論理エミュレーションの最適化回路生成法 | |
US7245168B2 (en) | Clock selection circuit and digital processing system for reducing glitches | |
JP2005157883A (ja) | リセット回路 | |
JP2008181170A (ja) | 非同期式回路の制御回路 | |
US8941427B2 (en) | Configurable flip-flop | |
JP5100801B2 (ja) | クロック制御回路 | |
US12095459B2 (en) | Anti-aging clock source multiplexing | |
CN117811539A (zh) | Fpga时钟无毛刺切换电路 | |
US10312886B2 (en) | Asynchronous clock gating circuit | |
US10276258B2 (en) | Memory controller for selecting read clock signal | |
CN102938642A (zh) | 基于扫描链的芯片内部寄存器的复位方法 | |
US11238910B2 (en) | Control signal generator and driving method thereof | |
JP4468564B2 (ja) | パルス幅変調回路 | |
JP2004242339A (ja) | パルス生成回路 | |
US20120229181A1 (en) | Asynchronous circuit | |
WO2005101669A1 (ja) | パスメモリ回路 | |
JPH11108995A (ja) | 関数クロック発生回路およびそれを用いたシフトレジスタ回路 | |
JP2008196917A (ja) | 非同期式カウンタ回路 |