(57)【要約】  論理回路(14)とストレージ素子(12)とを備える連鎖状の処理素子(10a,10,10b)が与えられる。連鎖における末端の処理素子(10b)を除くすべてのストレージ素子(12)は、連鎖における次の処理素子(10a,10,10b)の論理回路(14)に結合される１つ又は複数の出力を持つ。タイミング回路(16)は、処理素子(10a,10,10b)の個別の１つにおいてストレージ素子(12)が論理回路(14)からデータをロードする個別のローディングの時間点を制御する。データは、連鎖において連続的に互いに先行する処理素子(10a,10,10b)で連続的に遅れてロードされる。末端の処理素子(10b)における連続的なローディングの時間点間の時間間隔は、末端の処理素子(10)以外のすべての処理素子(10a,10)をロードするローディングの時間点を含む。
2007506297.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも３つの処理素子の連鎖であって、各処理素子が、論理回路と、前記論理回路により出力されるデータを格納するストレージ素子とを含み、前記連鎖における末端の処理素子を除くすべてにおける前記ストレージ素子は、前記連鎖における次の処理素子の前記論理回路に結合される１つ又は複数の出力を持つ、連鎖と、
データが、前記連鎖において互いに連続的に先行する処理素子で連続的に遅れてロードされるよう、前記処理素子の個々の１つにおける前記論理回路から前記ストレージ素子がデータをロードする個別のローディングの時間点を制御するタイミング回路とを有し、前記末端の処理素子の連続的なローディングの時間点間の時間間隔が、前記末端の処理素子以外のすべての処理素子をロードするローディングの時間点を含む、電子回路。
【請求項２】
前記タイミング回路は、個別の周期的クロック信号を生成する同期クロック生成器であり、前記個別の周期的クロック信号はそれぞれ、前記処理素子の個々の１つに対するローディングの時間点を制御するためのものであり、前記個別のクロック信号は、等しい繰り返し周波数及び相互に異なる位相を持つ、請求項１に記載の電子回路。
【請求項３】
前記タイミング回路は、前記末端の処理素子の前記ストレージ素子によるローディングを除き、前記連鎖における前記処理素子の個々の１つに続く前記処理素子の次の１つがロードされたデータを持つ信号に応じて毎回、前記処理素子の個々の１つにおけるストレージ素子によるローディングを可能にする非同期回路であり、該非同期回路は、前記処理素子の最初の１つがロードされたデータを持つ信号に応じて、毎回データをロードすることを可能にする、請求項１に記載の電子回路。
【請求項４】
前記処理素子の少なくとも１つにおける前記ストレージ素子は、前記少なくとも１つの前記処理素子における前記論理回路と、前記連鎖における次の連続的な処理素子との間のラッチを有し、前記ラッチは、前記ローディングの時間点をマークするパルスの間、前記次の連続的な処理素子へ渡すため、前記少なくとも１つの前記処理素子における前記論理回路により生成される信号変化を許容し、前記ラッチは、前記パルスの外側で最後の入力データ値を保持する、請求項１に記載の電子回路。
【請求項５】
前記連鎖は、連鎖に対して要求される構造を備える処理素子の追加的な連鎖により先行され、前記追加的な連鎖における前記末端の処理素子の前記ストレージ素子は、前記連鎖における前記処理素子の最初の１つに結合され、
前記タイミング回路は、前記追加的な連鎖において連続的に互いに先行する処理素子でデータが連続的に遅れてロードされるよう、前記追加的な連鎖の前記ローディングの時間点を制御し、前記連鎖と前記追加的な連鎖とにおける末端の処理素子の前記ストレージ素子は、実質的に一致するローディングの時間点を持つ、請求項１に記載の電子回路。
【請求項６】
それぞれの入力信号に関し個別の論理演算を行うことにより、それぞれ個別の出力信号を生成し、
前記個別の出力信号を格納し、前記格納された信号を前記入力信号として用いて、前記論理演算の連鎖が行われ、前記演算はそれぞれ、前記連鎖における先行するものからの出力信号を入力信号として用いて行われており、
前記連鎖における末端の論理演算を除く各特定の論理演算に対して前記特定の論理演算の前記出力信号が、前記出力信号を用いる次の論理演算の追加的な出力信号が格納された後でのみ毎回格納されるよう、前記出力信号の格納のタイミングをとり、及び、前記連鎖における前記末端の論理演算の前記出力信号が、前記連鎖における最初の論理演算の前記出力信号が格納された後でのみ毎回格納されるよう、前記連鎖における前記末端の論理演算の前記出力信号の格納のタイミングをとることを有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連鎖状の処理素子を持つ電子回路に関する。
【背景技術】
【０００２】
パイプライン化は、電子回路のスループットを増加するための従来技術である。パイプライン化された回路において、論理回路はセクションに分割され、連続するセクションがストレージ素子を介して結合される。クロック信号は、セクションにより生み出される結果が、クロック期間の最後のタイミングでそのセクションの末端にあるストレージ素子にロードされることをもたらす。次のクロック期間の間、各セクションの結果は、次のセクションに与えられる。
【０００３】
このようなパイプライン化された回路は、ストレージ素子へのデータのロード及び続く新しい結果の作成に対して、クロックエッジの周辺で電力消費ピークを示す。電流ピークは、干渉問題を引き起こし、電力供給に高い要求を課す可能性がある。干渉問題を回避し、電力消費を減らす１つの方法は、非同期回路を用いることである。非同期回路においては、ローディングの時間点は中央制御されないが、一旦先行するデータの処理結果が得られればデータがロードされることを許容するハンドシェイクを用いることにより連鎖に沿って伝播する。しかしながら、連鎖に対するデータの負荷が重くなると、非同期ハンドシェイクは、同様な電流ピーク効果を生み出す。
【０００４】
処理素子の連鎖を備える電子回路は、非特許文献１(Papachristou et al)に説明される。Papachristou et alは、処理素子の連鎖における連続的な処理素子で連続的な計算ステップを実現することにより、どのように電子回路の電力消費が減少されることができるかを説明する。Papachristouの開始点は、計算の異なるステップを実行するために、つまり直近のステップの結果を用いて少なくとも１つのステップを実行するために、同じ処理素子が繰り返し使用される回路にある。Papachristouは、どの処理素子も直近の処理ステップで生み出した結果を用いる必要がなくなるように、追加的な処理素子を与えることを提案する。こうして、各処理素子において、データのローディングは２クロックサイクル毎にスキップされることができ、連続的な処理素子は、偶数クロックサイクル及び奇数クロックサイクルのそれぞれにおいてローディングを必要とする。処理素子のクロック周波数が半分にされる結果として、電力消費を減らす効果を伴う。
【０００５】
Papachristouは、電力消費におけるこの削減を、連鎖における別の処理素子からそれぞれデータをロードするのに２つの非オーバーラップクロックを利用する回路を用いて説明する。Papachristouはまた、連鎖における連続する処理素子のグループがそれぞれ、個別のクロック信号の制御の下にデータをロードするよう、非オーバーラップクロックを２つ以上用いることができることも述べる。しかしながら、これに対する例示は何ら与えられていない。P pachristouは、計算ステップがタイムスロット”t”(t = 0,1,2,3...)に割り当てられるという計算スケジュールを立てる(taking)ことによって、どのようにしてこのような回路がデザインされることができるかを説明する。時間点 t = M*n+k(Mは、任意の整数)においてロードパルスを生み出す非オーバーラップクロックPk(k = 0,1,..n-1; nは非オーバーラップクロックの数)が規定される。時間tでスケジュールされる各計算ステップは、クロックPkでクロックされる(clocked)処理素子に割り当てられる。ここで、k = t mod nである。こうして、連鎖に沿って離れているかのように、連続的な処理素子が連続的にクロックされる。結果として、電流ピークが減少される。
【０００６】
Papachristouの回路は、連鎖の処理能力の次善最適な使用を生み出す。Papachristouが示すように、これは、１つの系列の処理ステップにおける末端の実行を、次の系列の処理ステップにおける先頭とオーバーラップさせることにより改善されることができる。こうして、連鎖の先頭に位置する多数の処理素子がすでに計算ステップを実行し、一方、連鎖における多数の末端処理素子(final processing element)が以前の計算ステップをまだ実行中であるという、パイプラインの部分的な形式が実現される。これは、処理スピードを増加させ、また、処理スピードが同じに保たれるようクロック周波数が減じられるとき、電力消費を減少させる。
【非特許文献１】Christos A. Papachristou et al., titled “A multiple clocking scheme for low power RTL design”, and published in the IEEE transactions on very large scale integration(VLSI) systems, Vol. 7 No 2 (June 1999), pages 266-276
【発明の開示】
【発明が解決しようとする課題】
【０００７】
とりわけ、本発明の目的は、高い電流ピークが減らされ、処理能力を一層効率的に活用する電子データ処理回路を提供することにある。
【課題を解決するための手段】
【０００８】
本発明による電子回路が、請求項１に説明される。本発明によれば、処理回路の連鎖におけるストレージ素子のローディングの時間点は、連鎖における末端の処理素子の次のローディングの時間点より前に、少なくとも３つの処理素子の連鎖に沿って逆行する向きに進む。末端の処理素子が再度ロードされる前に連続的にロードされる処理素子が多くなればなるほど、電流ピークは低くなる。他方、時間点の逆行進行を用いることにより、処理素子における結果を作成するための最大時間間隔が実現される。これは、処理能力の効率的な利用を容易にする。更に、ローディングパルスの間１つの処理回路における論理回路から次へ通過する信号をブロックしないラッチが、ストレージ素子として使用されることができる。これは、回路を簡略化し、その電力消費を減らし、及び／又はそのスピードを増加させる。
【０００９】
実施形態において、同じ周波数だが、連続的に遅延される位相を持つの複数の周期クロック信号を生成し、かつ、これらのクロック信号を処理素子に適用する同期クロック回路によって、ローディングの時間点が制御される。別の実施形態において、ローディングの時間点は、連鎖に沿って逆行する向きに通過するハンドシェイク信号と、ローディングの時間点の次の波(wave)を開始するよう、連鎖の先頭から末端の処理素子へ戻るハンドシェイク信号とを用いて非同期的に制御される。
【００１０】
要求される連鎖(claimed chain)は、実際は、連鎖に沿って逆行するよう移動するにつれ、連続的により遅延されたローディングの時間点を持つ、処理素子の一層大きな連鎖の副鎖(sub-chain)であってよいことは理解されたい。この場合、一旦以前の波がその副鎖の最初の処理素子を通り過ぎて進行してしまうと、波からのローディングの時間点が、以前の波がその一層大きな連鎖の先頭に進行する前に副鎖における末端の処理素子で生じる可能性がある。
【発明を実施するための最良の形態】
【００１１】
本発明のこれら及び他の目的並びに有利な側面は、以下図面を用いて説明されるであろう。
【００１２】
図１は、タイミング回路１６と連鎖状の処理素子１０ａ、１０、１０ｂとを含むデータ処理回路を示す。各処理素子は、ストレージ素子１２と論理回路１４とを含む。各ストレージ素子は、入力と出力とを持つ。入力は、処理素子の論理回路１４の出力に結合される。出力は、連鎖での次の処理素子における論理回路１４の入力に結合される。入力と出力とを示すのに単一の線が使用されているが、各ストレージ素子１２は、その自身の複数ビットを並列に受信及び出力するものを与えることができることは理解されるべきである。タイミング回路１６は、ストレージ素子のそれぞれの１つの入力を制御するよう結合される出力を持つ。
【００１３】
動作において、論理回路１４は、その入力に適用される入力信号の機能として出力信号を形成する。例えば、NANDゲート、NORゲート、インバータ等（図示省略）を用いて、任意の種類の論理動作が実現されることができる。タイミング回路１６からのタイミング信号に応じて、処理素子１０のストレージ素子１２は、処理素子の論理回路１４からデータ出力信号を格納し、これらの信号を次の処理素子へ与える。
【００１４】
図２は、回路で使用されるタイミング信号を示す。この図は、連続的な処理素子１０のストレージ素子に適用されるタイミング信号の４つのトレース２０ａ−ｄを示す。つまり、最初のトレース２０ａは、最初の処理素子１０ａのタイミング信号を示し、第２のトレース２０ｂは、最初の処理素子の論理回路１４から直接データを受信する第２の処理素子１０のタイミング信号を示し、第３のトレース２０ｃは、第２の処理素子の論理回路１４から直接データを受信する第３の処理素子１０のタイミング信号を示し、という具合に連鎖の末端の処理素子１０ｂまで続く。見て分かるように、連鎖の下流で信号の流れの方向に沿って遠ざかるよう連続的に位置する処理素子１０が、連続的に初期のパルスを受信するよう、タイミング信号はパルス２２を含む。
【００１５】
ストレージ素子１２は、好ましくは、ラッチ、即ち、パルスが適用されるとき、その入力からその出力へ信号を通過させ、パルス２２間では、パルス２２の終わりに存在していた値に出力信号を保持する、知られた回路である。これは、オーバーヘッドの少ない回路を確実にする。しかしながら、一層大きな回路、例えば適用されるパルス２２のエッジでデータをロードするフリップフロップなどが同様に使用されてもよい。
【００１６】
最初のデータが連鎖における末端の処理素子１０ｂのストレージ素子１２にロードされ、それから、次に先行する処理素子１０という具合に、データが最初の処理素子１０ａにロードされるまで続くという効果を、パルスのタイミングが持つことは理解されるであろう。新しいデータのみが、末端の処理素子１０ｂに連続的にロードされ、その後、より上流の処理素子１０においてローディングデータの新しい波が連続的に始まる。こうして、論理回路１４は、続く処理素子１０においてこれらの出力信号がラッチされる（又は格納される）前に、出力信号を作成するための全体時間間隔をほぼ得る。
【００１７】
本発明は、４つの処理素子１０の連鎖に対して実現されるが、連鎖は任意数ｎの処理素子１０を含んでよく、その場合、連続的に更に下流にある処理素子が連続的に初期パルス２２を受信し、かつ末端の処理素子１０ｂが次のパルス２２を受信する前にすべての処理素子１０がパルスを受信するよう、ｎ個の異なるタイミング信号が存在することは理解されるであろう。
【００１８】
例えば、中央クロック回路と、中央クロックの連続的なクロックサイクルにおいて、連続的な出力でクロックパルスを生成するジョンソンカウンタとを用いて、タイミング信号２０ａ−ｄが生成されてもよい。また、それぞれが、異なる位相で中央クロックを固定する(lock onto)ようデザインされるｎ個のフェーズロックループ(phase locked loop)が使用されることもできる。
【００１９】
図３は、非同期回路がタイミング信号を生成するのに使用される実施形態を示す。図は、４つの処理素子１０、１０ａ、１０ｂを持つ連鎖と、その連鎖に先行し、かつその連鎖の最初の処理素子１０に結合されるストレージ素子１２の出力を持つ追加的な処理回路３２とを示す。追加的な処理回路３２は、追加的な連鎖（図示省略）の末端の処理素子である。
【００２０】
回路は、遅延を伴いパルスを通過させる系列状のローカルタイミング回路３０を含む。各ローカルタイミング回路３０は、処理素子１０の個別の１つのストレージ素子１２に結合されるタイミング出力を持つ。ローカルタイミング回路３０は、データが処理素子１０の連鎖を通過する方向の反対方向へタイミング信号を通過させるよう連鎖に相互に結合される。それは、各ローカルタイミング回路３０が、入ってくるタイミング信号をまず遅延させ、それからその対応する処理素子１０のストレージ素子１２がデータをロードすることをもたらし、続いて、その連鎖における次の先行する処理素子１０のためにタイミング信号をローカルタイミング回路３０に渡すようにするためである。最初の処理素子１０ａのローカルタイミング回路３０は、次の波を開始するため、タイミング信号を連鎖における末端の処理素子１０ｂのローカルタイミング回路３０にフィードバックする。最初の処理素子１０ａのローカルタイミング回路３０はまた、末端の処理素子１０ｂからの次の波のタイミング信号と共に、タイミング信号が追加的な連鎖に沿って一斉に上流に伝播するよう、タイミング信号を追加的な処理素子３２に与える。
【００２１】
好ましくは、追加的な処理素子３２のローカルタイミング回路３０は、追加的な連鎖の先頭とその連鎖における最初の処理素子１０ａのローカルタイミング回路３０との両方からのパルスが受信されるまで、パルスが上流に通過するよう、パルスを維持するようになされる。好ましくは、末端の処理素子１０ｂのローカルタイミング回路３０は、連鎖の最初の処理素子１０ａのローカルタイミング回路３０と外部のタイミング信号との両方からのパルスが受信されるまで、パルスが上流に通過するよう、パルスを維持するようになされることができる。
【００２２】
ローカルタイミング回路３０は、遅延回路として実現されることができる。例えば、オプションとして末端の処理素子１０ｂでパルス２２を維持する論理ゲートを含む、インバータの連鎖として実現される。別の実施形態において、ローカルタイミング回路の一部又は全部は、処理素子１０で処理されるデータに依存して動作することができる。
【００２３】
図３ａは、サイクルの開始を指示し、かつ、処理素子がそのサイクルでのデータの処理を完了するとき、処理されるデータに依存して信号を受信する処理素子１４にローカルタイミング回路３０が結合される例を示す。例えば、乗算のような演算又はパイプラインにおける他の段でデータ依存通信を行うための時間は、処理されるデータ値に依存してよい。この場合、ローカルタイミング回路３０は、好ましくは、一旦特定の現在データ値に対する動作が完了した場合パルスが通過するよう遅延に適応する。必要な時間間隔は、データ値から推定され、又は何らかの処理結果から検出されることができる。こうして、遅延は変動する場合があり、同期回路を用いる場合よりも全体的に一層の高速さを実現することを可能にする。そのことは、最悪の場合における遅延の原因とならなくてはならない。
【００２４】
パルス２２を生成するようリクエスト信号を受信し、パルスが生成されるときそのリクエスト信号に応答する別のハンドシェイク回路が使用されることができる。処理素子１０のハンドシェイク回路は、そのハンドシェイク回路が先行するリクエストに応答した場合、連鎖における次の処理素子１０のハンドシェイク回路に対するリクエストを生成する。
【００２５】
図４は、図１に示されるタイプの連続的な副鎖（各副鎖は、n = 3個の処理素子１０、１０ａ、１０ｂを含む）を含む処理素子１０、１０ａ、１０ｂの一層大きな連鎖を備える回路の例を示す。この例において、ｎ個おきの処理素子１０、１０ａ、１０ｂは、同じタイミング信号を受信する。各副鎖は、図１に説明されるように動作する。この場合、タイミングパルスの複数の波がより大きな連鎖を一斉に下流に向けて通過する。代替例として、このような連鎖は、異なる処理素子１０に対して別々にタイミング信号を生成する非同期回路を用いて制御されてよいことは理解されるであろう。
【００２６】
各副鎖は、同数ｎ個の処理素子を含むように描かれているが、異なる副鎖における処理素子の数が互いに異なってもよいことは理解されるであろう。同期回路の場合、これは、そのより大きな副鎖に存在する処理素子と同じくらい多くの異なるクロック信号が利用可能であることを必要とする。処理素子の数が少ない副鎖は、これらのクロック信号の部分集合を用いる。
【００２７】
本発明は、データが連鎖の前方にのみ通過するフィードフォワード連鎖として示されてきたが、データの一部を連鎖に沿って逆行する向きに通過させるフィードバック接続が存在しても構わないことは理解されるであろう。しかしながら、この場合、任意の特定の処理素子からのデータが、好ましくは、特定の処理素子から連鎖に沿ってｎ個の処理素子の複数分逆行する位置にある１つ又は複数の処理素子の入力にのみ、及び／又は、特定の処理素子と同じタイミング信号を受信するデータ処理素子に直接続くデータ処理素子にのみフィードバックされる。このようなオプションのフィードバックの例が図４に示される。
【図面の簡単な説明】
【００２８】
【図１】データ処理回路を示す図である。
【図２】データ処理回路で使用されるクロック信号を示す図である。
【図３】追加的なデータ処理回路を示す図である。
【図３ａ】別の追加的なデータ処理回路を示す図である。
【図４】処理素子の連鎖を示す図である。
【図１】
2007506297.tif 000003
【図２】
2007506297.tif 000004
【図３】
2007506297.tif 000005
【図３ａ】
2007506297.tif 000006
【図４】
2007506297.tif 000007
【国際調査報告】
2007506297.tif 000008
2007506297.tif 000009
2007506297.tif 000010