(57)【要約】【課題】    従来のシリアル演算パイプラインを、その性能の劣化を最小限にしつつ、消費電力を抑えた演算パイプラインを提供する。【解決手段】  構成素子の性能を動的に変化させることが可能なＳＡＬＣ３、及びＳＡＬＣ３による処理結果をリタイミング又はスルーするためのリタイミング回路５が交互にカスケード接続されて成るＳＡＬＰ２と、リタイミング回路５にリタイミング又はスルーさせるための制御データを、リタイミング回路５毎に生成するパイプラインコントローラ４と、を備える演算パイプライン１を提供する。パイプラインコントローラ４は、所定の個数のリタイミング手段が処理結果のリタイミングを行うように制御データを供給する。【選択図】      図１
2006053652.tif 000002
【特許請求の範囲】
【請求項１】
処理能力を動的に変化させることが可能な処理手段、及び入力されたデータをリタイミング又はスルーするためのリタイミング手段が交互にカスケード接続されて成る演算機構と、
各リタイミング手段に、前段に接続された処理手段による処理結果をリタイミング又はスルーさせるための制御データを供給するパイプラインコントローラと、を備えており、
前記パイプラインコントローラは、所定の個数のリタイミング手段が処理結果のリタイミングを行うとともに残りのリタイミング手段が処理結果をスルーするように、各リタイミング手段に制御データを供給するように構成されており、
リタイミングを行うリタイミング手段の個数により、前記演算機構のレイテンシを決めるように構成されている、
演算パイプライン。
【請求項２】
前記パイプラインコントローラは、複数の前記制御データを各処理手段の処理能力に応じて生成するように構成されている、
請求項１記載の演算パイプライン。
【請求項３】
前記処理手段は、供給される動作電圧値及び／又は基板バイアス値の変化に応じて処理能力が変化するように構成されており、
前記パイプラインコントローラは、前記動作電圧値及び／又は前記基板バイアス値に応じて前記複数の制御データを生成するように構成されている、
請求項２記載の演算パイプライン。
【請求項４】
各処理手段は、性能を変化させることが可能な素子により構成されて、素子の性能の変化により処理能力が動的に変化するように構成されており、
前記パイプラインコントローラは、複数の前記制御データを、前記素子の性能に応じて生成するように構成されている、
請求項２記載の演算パイプライン。
【請求項５】
前記処理手段を構成する前記素子は、供給される動作電圧値及び／又は基板バイアス値の変化に応じて処理能力が変化するように構成されており、
前記パイプラインコントローラは、前記動作電圧値及び／又は前記基板バイアス値に応じて前記複数の制御データを生成するように構成されている、
請求項４記載の演算パイプライン。
【請求項６】
前記パイプラインコントローラは、前記複数の制御データを交番データまたは一定値を取るデータとして生成するように構成されており、
前記リタイミング手段は、前記制御データが交番データのときは前記処理結果をリタイミングし、前記制御データが一定値を取るときは前記処理結果をスルーするように構成されている、
請求項１〜５のいずれかに記載の演算パイプライン。
【請求項７】
性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、各リタイミング回路に、前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給する装置により実行される方法であって、
前記装置が、
前記素子の性能に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する段階を含んでいる、
演算パイプラインによる処理方法。
【請求項８】
性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、各リタイミング回路に、前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給するための半導体装置であって、
前記素子の性能に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する手段を備える、
半導体装置。
【請求項９】
性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、前記リタイミング回路に前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給するコンピュータに、
前記素子の性能に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する処理を実行させるようにするための、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に半導体装置による演算パイプラインについての消費電力を抑制するための技術に関する。
【背景技術】
【０００２】
半導体装置は、微細加工技術の進歩により、トランジスタなどの素子の微細化、高密度化が進んでいる。そのために、チップ面積を小さくしつつ、大規模で高機能な電子回路を持つ半導体装置が作られるようになっている。半導体装置の大規模化により、従来よりも大量の素子を動作させる必要がある。半導体装置は、大量の素子が動作することで消費電力が増大し、ひいてはコンシューマで用いることが困難になるくらいの熱が発生することになる。
【０００３】
このような半導体装置の消費電力増大による発熱に対して、動作電圧を低減することで対処することがある。動作電圧を低減させる場合には、トランジスタの動作自体を保証するために、スレッショルド電圧を下げる必要がある。しかし、スレッショルド電圧を下げると、リーク電流が増大するという別の問題が発生する。また、将来的には更に微細化が進むことが予測されており、動作電圧を低減する対処方法では、動作電流よりもリーク電流が多くなることが予測される。
【０００４】
最近は、基板バイアス技術の進歩により、動作電圧を下げる他に、基板バイアスを変化させて消費電力を抑えることも行われている。基板バイアスを変化させることでスレッショルド電圧をコントロールしたり、基板バイアススイッチによって停止しているトランジスタのリーク電流を抑えることができる。
【０００５】
動作電圧を低減するなどの電圧制御にたよる方法では、上記のように様々な問題が顕在化してきており、すべての問題を解決することが困難になっている。また、基板バイアス技術を用いても、アーキテクチャ的には主にスリープモードのような実動作ではない状況を改善させるにとどまっている。
【０００６】
本願出願人は、特開２００３−２９６０９６号に示すように、シリアル演算パイプラインについての発明を出願している。このようなシリアル演算パイプラインは、頻繁に動くオブジェクトをコンピュータ・グラフィクスによって表現するような、突発的かつ爆発的に膨らむ離散演算を必要とする用途に適しており、命令取り出し（fetch）、命令解読（decode）、その実行（execute）のような、別々の作業を順次同時に行うことによって処理の高速化を図るものであり、少数の命令群を扱う演算器をカスケード接続して構成される。カスケード接続された複数の演算器のうち使用するものの組み合わせを適宜変えることにより、加減算、浮動小数点演算、比較、ブール代数、選択（IF文）等、様々な演算処理を実現することができる。
このようなシリアル演算パイプラインは、演算器を大量に用いることから消費電力が大きくなりがちである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、このような従来の演算パイプラインを、その性能の劣化を最小限にしつつ、消費電力を抑えるようにする技術を提供することを課題とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決する本発明の演算パイプラインは、処理能力を動的に変化させることが可能な処理手段、及び入力されたデータをリタイミング又はスルーするためのリタイミング手段が交互にカスケード接続されて成る演算機構と、各リタイミング手段に、前段に接続された処理手段による処理結果をリタイミング又はスルーさせるための制御データを供給するパイプラインコントローラと、を備えており、前記パイプラインコントローラは、所定の個数のリタイミング手段が処理結果のリタイミングを行うとともに残りのリタイミング手段が処理結果をスルーするように、各リタイミング手段に制御データを供給するように構成されており、リタイミングを行うリタイミング手段の個数により、前記演算機構のレイテンシを決めるように構成されている。
【０００９】
電気回路は、通常、処理能力が低くなるほど消費電力が少なくなる。上記のような本発明では、パイプラインコントローラから演算機構に供給される制御データにより、リタイミングを行うリタイミング手段の個数が決まる。リタイミングすることによりレイテンシは大きくなる。リタイミングを行うリタイミング手段の個数を制御することで、演算機構のレイテンシを制御することができるので、性能変化を最小限に抑えつつ、消費電力を抑えることができるようになる。
【００１０】
前記パイプラインコントローラは、例えば、複数の前記制御データを各処理手段の処理能力に応じて生成するように構成される。この場合には、処理手段の処理能力の変化に応じて、演算機構のレイテンシが変化するようになる。
例えば、前記処理手段が、供給される動作電圧値及び／又は基板バイアス値の変化に応じて処理能力が変化するように構成されている場合には、前記パイプラインコントローラは、前記動作電圧値及び／又は前記基板バイアス値に応じて前記複数の制御データを生成するように構成される。
このような構成では、パイプラインコントローラが、実際に処理手段に供給される動作電圧値及び／又は基板バイアス値に応じて、レイテンシとスレッショルド電圧を動的に変化させて、処理装置の性能変化を抑えつつ、消費電力を最小にすることができる。
【００１１】
各処理手段が、例えば、性能を変化させることが可能な素子により構成され、素子の性能の変化により処理能力が動的に変化するように構成されている場合には、前記パイプラインコントローラは、例えば、複数の前記制御データを、前記素子の性能に応じて生成するように構成される。
例えば、前記処理手段を構成する前記素子は、供給される動作電圧値及び／又は基板バイアス値の変化に応じて処理能力が変化するように構成されている場合には、前記パイプラインコントローラは、前記動作電圧値及び／又は前記基板バイアス値に応じて前記複数の制御データを生成するように構成される。
このような構成でも、パイプラインコントローラが、実際に処理手段の素子に供給される動作電圧値及び／又は基板バイアス値に応じて、レイテンシとスレッショルド電圧を動的に変化させて、処理装置の性能変化を抑えつつ、諸費電力を最小にすることができる。
【００１２】
前記パイプラインコントローラは、例えば、前記複数の制御データを交番データまたは一定値を取るデータとして生成するように構成されている。このとき前記リタイミング手段は、前記制御データが交番データのときは前記処理結果をリタイミングし、前記制御データが一定値を取るときは前記処理結果をスルーするように構成される。
例えばリタイミング手段は、制御データの「１」、「０」の変化に合わせて処理結果をリタイミングする。
【００１３】
本発明の演算パイプラインによる処理方法は、性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、各リタイミング回路に、前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給する装置により実行される方法である。前記装置が、前記素子の性能に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する。
【００１４】
本発明の半導体装置は、性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、各リタイミング回路に、前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給するための半導体装置であって、前記素子の性能に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する手段を備える。
【００１５】
本発明のコンピュータプログラムは、性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、前記リタイミング回路に前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給するコンピュータに、前記素子の性能に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する処理を実行させるようにするための、コンピュータプログラムである。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を詳細に説明する。
この実施形態では、演算機構の一例となるシリアル演算パイプラインを、レイテンシの変動に強いアーキテクチャにより構成して、動的にレイテンシの制御を行うようにする。さらに基板バイアス技術により動的にスレッショルド電圧を制御する。動作周波数を変えずにレイテンシとスレッショルド電圧を動的に変化させることで、性能の劣化を最小限に抑えつつ消費電力をコントロールすることが可能となる。
【００１７】
シリアル演算パイプラインのレイテンシは、シリアル演算パイプライン内でカスケード接続される演算器の出力について、リタイミングを行う回数によって決まる。例えば、カスケード接続された演算器でリタイミングを１回行うと、レイテンシは２になる。リタイミングを２回行うとレイテンシは３になる。本発明では、シリアル演算パイプライン内でリタイミングを行う回数を動的に変化させることで、レイテンシの変動を行うようにする。
【００１８】
図１は、本発明を適用した演算パイプライン１の構成例を示した図である。
この演算パイプライン１には、複数のシリアル算術論理演算回路（Serial-ALCell、以下「ＳＡＬＣ」と称する）３をカスケード接続してなるシリアル演算パイプライン（Serial - ALPipeline、以下、「ＳＡＬＰ」と称する）２が設けられており、ＳＡＬＰ２には、カスケード接続されるＳＡＬＣ３の段数を調整するための制御データを供給するパイプラインコントローラ４が接続されている。ＳＡＬＰ２には、動作電圧供給装置６からＳＡＬＣ３内の各素子の動作電圧が供給されるとともに、基板バイアス供給装置７からＳＡＬＣ３内の各素子の基板バイアスが供給される。
【００１９】
図１では、説明を簡単にするためにＳＡＬＰ２を１つ設けた構成とするが、ＳＡＬＰ２は、複数備えられていてもかまわない。演算パイプライン１がＳＡＬＰ２を複数備える場合には、各ＳＡＬＰ２に対してパイプラインコントローラ４から制御データが供給され、動作電圧供給装置６から各ＳＡＬＰ２に動作電圧が供給され、基板バイアス供給装置７からＳＡＬＰ２に基板バイアスが供給される。
【００２０】
ＳＡＬＰ２は、様々な多ビット演算命令を単純なシリアル命令の組み合わせで実現するものである。ＳＡＬＰ２は、カスケード接続された複数のＳＡＬＣ３と、各ＳＡＬＣ３の後段に設けられてＳＡＬＣ３からの出力データをラッチ（latch）してリタイミングするためのリタイミング回路５を備えている。ＳＡＬＣ３とリタイミング回路５とは、交互にカスケード接続される。
【００２１】
図１に示すＳＡＬＰ２は、９段カスケード接続可能な９個のＳＡＬＣ３を備え、各ＳＡＬＣ３の後段にリタイミング回路５が設けられている。
リタイミング回路５は、パイプラインコントローラ４から供給される制御データにより、ＳＡＬＣ３からの出力データをラッチしてリタイミングするか、或いはスルーするかが決められるように構成されている。リタイミング回路５は、ＳＡＬＣ３の出力データのリタイミングを行う場合、ＳＡＬＣ３の出力データをラッチして、次の動作タイミングで、ラッチした出力データを出力する。ＳＡＬＣ３の出力データをスルーする場合は、ＳＡＬＣ３の出力データをラッチせずにそのまま出力することになるので、リタイミング回路５は単なる配線と同じになり、出力データの入力から出力までを同じ動作タイミングで行う。このようなリタイミング回路５は、ラッチ回路と同様の機能を実現できる、例えば、ＦＦ（Flip-flop）を用いて構成することができる。ＦＦをＳＡＬＣ３の出力端子の数と同数用いることで構成される。
【００２２】
リタイミング回路５がすべてスルーの状態にある場合、このＳＡＬＰ２は、ＳＡＬＣ３が９段カスケード接続されて構成されることになる。この場合、１段目のＳＡＬＣ３にデータが入力されると、９段目のＳＡＬＣ３からデータが出力されるので、レイテンシは「１」になる。このようにリタイミングを行うリタイミング回路５の個数が「０」の場合は、レイテンシが「１」になる。
【００２３】
データ入力側から４段目と５段目のＳＡＬＣ３の間に設けられたリタイミング回路５のみがリタイミングの状態にあるときは、このＳＡＬＰ２は、４段カスケード接続されたＳＡＬＣ３と５段カスケード接続されたＳＡＬＣ３とにより構成されることになる。１段目のＳＡＬＣ３にデータが入力されると、４段目のＳＡＬＣ３からデータが出力され、この出力されたデータはリタイミング回路５によりラッチされる。次の動作タイミングでリタイミング回路５から５段目のＳＡＬＣ３にデータが入力されると、９段目のＳＡＬＣ３からデータが出力される。このように１段目のＳＡＬＣ３へのデータの入力から９段目のＳＡＬＣ３からのデータの出力まで２つの動作タイミングが必要になるために、レイテンシは「２」になる。リタイミングを行うリタイミング回路５の個数が「１」の場合は、レイテンシが「１」になる。
【００２４】
このように、各ＳＡＬＣ３の間にリタイミング回路５を設けて、どのリタイミング回路５に出力データをリタイミングさせるかを決めることにより、カスケード接続されるＳＡＬＣ３の段数を調節して、レイテンシを自在に制御することが可能となる。
ＳＡＬＣ３の段数を多くしてリタイミングを行うリタイミング回路５の間隔を長く（レイテンシを短く）すれば、クリティカルパスが伸びるためにＳＡＬＣ３に用いる素子には高性能のものが必要となる。逆に、ＳＡＬＣ３の段数を少なくしてリタイミングを行うリタイミング回路５の間隔を短く（レイテンシを長く）すれば、ＳＡＬＣ３に用いる素子は低性能のものですむ。低性能の素子を用いれば消費電力を抑えることが可能となる。
この実施形態では、ＳＡＬＣ３の性能を、動作電圧及び／又は基板バイアスを変動させて素子の性能を変動させることでることで変化させる。
【００２５】
動作電圧供給装置６は、ＳＡＬＣ３を構成する素子に動作電圧を供給する装置である。供給する動作電圧値は可変であり、動作電圧供給装置６の外部から操作することができるようになっている。動作電圧値の操作は人為的に行ってもよいが、例えば、ＳＡＬＰ２で処理する内容に応じて適切な素子性能が得られるように、図外の制御装置により操作するようにしてもよい。
【００２６】
基板バイアス供給装置７は、ＳＡＬＣ３を構成する素子に基板バイアスを供給する装置である。供給する基板バイアス値は可変であり、基板バイアス供給装置６の外部から操作することができるようになっている。基板バイアス値の操作は、動作電圧供給装置６と同様に、人為的に行ってもよく、また例えば、ＳＡＬＰ２で処理する内容に応じて適切な素子性能が得られるように、図外の制御装置により操作するようにしてもよい。
【００２７】
ＳＡＬＣ３に用いる素子は、動作電圧供給装置６により動作電圧値を変化させたり、或いは基板バイアス供給装置７により基板バイアス値を変化させることで、その性能を変化させることができる。順方向或いは逆方向に基板バイアスを印加したり、基板バイアス値を変化させることで、ＳＡＬＣ３に用いる素子のスレッショルド電圧や、リーク電流量などを変化させ、素子の性能を変化させる。
【００２８】
逆方向に基板バイアスを印加すると、スレッショルド電圧を上げ、リーク電流を減少させることができる。しかし、ゲートのスイッチング性能が低下する。そのために、カスケード接続するＳＡＬＣ３の段数を減らして、同一クロック周波数でも動作可能になるようにする。
【００２９】
順方向に基板バイアスを印加すると、スレッショルド電圧が下がり、性能を向上させることができる。そのために、カスケード接続するＳＡＬＣ３の段数を増やすことができる。しかし、順方向への基板バイアスの印加は、基板バイアス値を大きくし過ぎるとラッチアップが起きてしまうため、ラッチアップが発生しない範囲に基板バイアス値をとどめる必要がある。
【００３０】
図２、図３は、それぞれＳＡＬＣ３を８段カスケード接続した場合と、４段カスケードした場合と、を表す図である。図２では、ＳＡＬＣ３が８段毎のリタイミング回路５がリタイミングの状態にある。図３では、ＳＡＬＣ３が４段毎のリタイミング回路５がリタイミングの状態にある。他のリタイミング回路５は、スルーの状態にある。図２の方が図３よりもＳＡＬＣ３がカスケード接続される段数が多く、リタイミングの回数が少なくなるので、レイテンシが短くなる。また、図２の方が図３よりもリタイミングの間隔が長いので、図２のＳＡＬＣ３に用いられる素子の方が、図３のＳＡＬＣ３に用いられる素子よりも高性能である。
【００３１】
ＳＡＬＣ３の構成例を図４に示す。図４からわかるように、この実施形態によるＳＡＬＣ３は、３系統のデータ入力端D1i、D2i、D3i及び３系統のデータ出力端D1o、D2o、D3oを有し、前段（図の左側）から後段（図の右側）へ３系統のデータを出力するための順方向ラインが形成されている。すべてのラインが順方向に接続されているために、すべてのＳＡＬＰ３間でリタイミングを行う必要がなくなり、１サイクルで処理できるだけの数のＳＡＬＰ３を挿入することが可能となる。以後の説明では、データ出力端D1oから出力されるライン上のデータを「出力データ」、データ出力端D2oから出力されるライン上のデータを「参照データ」、データ出力端D3oから出力されるライン上のデータを「イネーブルデータ」とする。
【００３２】
ＳＡＬＣ３は、また、命令入力端CONから入力される命令の内容をデコードし、デコード結果に応じた処理を実行するとともに、実行結果を出力するラインの選定等を行うためのデコーダ３１を有する。処理の例としては、例えば、四則演算、論理演算のような演算処理のほか、パス制御、ラッチ制御、条件付命令等の制御処理が挙げられる。他の複数のＳＡＬＣ３のデコーダとの協働によって、マクロ命令の実行を行うことができる。命令は、図外の命令入力装置などから入力される。この命令入力装置は、ＳＡＬＰ２で実行される処理に応じて、各ＳＡＬＣ３に所定の命令を入力するものである。
【００３３】
デコーダ３１には、上記の演算等を容易にするための種々のラッチ回路、すなわち、シフトラッチ回路３３と、イネーブルラッチ回路３４と、キャリーラッチ回路３２とが接続されている。シフトラッチ回路３３は、出力データのラインよりも参照データのラインが所定時間だけ遅れるようにするために、参照データをラッチし、例えば演算の際に次の桁でこれを出力するように動作する。キャリーラッチ回路３２は、演算結果のキャリーを次の桁の演算時までラッチする。イネーブルラッチ回路３４は、前段のＳＡＬＣ３から入力されるイネーブルデータをラッチする。イネーブルデータはデコーダ３１で実行される処理についてイネーブル、ディスエーブルを指示するためのデータである。
【００３４】
図１のパイプラインコントローラ４には、ＳＡＬＰ２のリタイミングの間隔を決めるためのレイテンシデータ、及びクロックが入力される。レイテンシデータは、ＳＡＬＰ２による処理の内容、ＳＡＬＣ３に用いる素子の性能などにより決まり、例えば基板バイアス供給装置７、動作電圧供給装置６から供給される基板バイアス値、動作電圧値等により決まる。パイプラインコントローラ４は、これらのデータにより、リタイミング回路５と同数の制御データを生成する。各制御データは、対応するリタイミング回路５に供給される。
【００３５】
図５は、このようなパイプラインコントローラ４の例示図である。このパイプラインコントローラ４は、レイテンシレジスタ４１と、リタイミング回路５と同数の制御データ生成部４２とを備えている。この実施形態では、パイプラインコントローラ４が半導体装置などのハードウエアにより構成された例を示すが、所定のＣＰＵに本発明のコンピュータプログラムを実行させてソフトウエア的に構成するようにしてもよい。
【００３６】
レイテンシレジスタ４１は、例えば、レイテンシデータから、カスケード接続するＳＡＬＣ３の段数を表す段数値を導出する。レイテンシレジスタ４１は、導出した段数値を制御データ生成部４２に送る。なお、レイテンシデータをそのまま段数値として用いるようにしてもよい。
【００３７】
制御データ生成部４２は、減算器４３、セレクタ４４、判別器４５、及びＯＲ回路４６を備えており、クロック及びレイテンシレジスタ４１から送られる段数値から、制御データを生成する。
減算器４３は、入力された値を１減算するように構成されてる。１段目の制御データ生成部４２の減算器４３には、レイテンシレジスタ４１から段数値が入力される。２段目以降の制御データ生成部４２の減算器４３には、前段の制御データ生成部４２のセレクタ４４の出力が入力される。
【００３８】
判別器４４は、減算器４３による減算結果が「０」か否かを判別して、判別結果をセレクタ４５及びＯＲ回路４６に入力するように構成されている。
【００３９】
セレクタ４５は、減算器４３による減算結果とレイテンシレジスタ４１から送られる段数値とのいずれか一方を、判別器４４からの判別結果に応じて出力するように構成されている。セレクタ４５は、判別器４４からの判別結果が、減算器４３による減算結果が「０」であることを示している場合に、レイテンシレジスタ４１から送られる段数値を出力し、「０」でないことを示している場合に、減算器４３による減算結果を出力するようになっている。
【００４０】
ＯＲ回路４６は、クロックと判別器４４からの判別結果とをＯＲ演算して、その出力を制御データとしてリタイミング回路５に入力するように構成されている。ＯＲ回路４６は、判別器４４からの判別結果が、減算器４３による減算結果が「０」であることを示している場合に、交番データとなる制御データを出力し、「０」でないことを示している場合に、一定値の制御データを出力するようになっている。
【００４１】
例えば、判別器４４が、減算器４３による減算結果が「０」であれば判別結果「１」を出力し、「０」でなければ判別結果「０」を出力する場合には、セレクタ４５及びＯＲ回路４６は、次のように動作する。
セレクタ４５は、判別器４４からの判別結果が「１」のときには、レイテンシレジスタ４１から出力される段数値を出力し、「０」のときには、減算器４３による減算結果を出力する。
ＯＲ回路４６は、判別器４４からの判別結果を反転して受け取る。つまり、ＯＲ回路４６には、判別結果が「０」のときは「１」が、「１」のときは「０」が入力される。判別器４４からの判別結果が「１」のときには、反転して「０」が入力され、クロックの「０」、「１」が制御データとしてそのまま出力される。判別器４４からの判別結果が「０」のときには、反転して「１」が入力され、制御データとして一定値「１」が出力される。
【００４２】
このような制御データ生成部４２により、段数値に応じた段数のＳＡＬＣ３がカスケード接続されるような制御データが、パイプラインコントローラ４からＳＡＬＰ２に供給される。例えば、段数値が「４」の場合には、３段目までの制御データ生成部４２から出力される制御データが一定値であり、４段目の制御データ生成部４２から出力される制御データが交番データになる。
ＳＡＬＰ２のリタイミング回路５は、制御データが一定値（例えば「１」）のときはスルーの状態になり、制御データが交番データのときはリタイミングの状態になる。段数値が「４」の場合は、４個毎のリタイミング回路５に入力される制御データが交番データになり、他は一定値の制御データになる。
【００４３】
次に、このような演算パイプライン１を用いた処理を説明する。図６は、使用する演算パイプライン１のＳＡＬＰ２を示している。このＳＡＬＰ２は、ＳＡＬＣ３が６段であり、４段目と５段目のＳＡＬＣ３の間のリタイミング回路５がリタイミングの状態にあり、他のリタイミング回路５はスルーの状態にある。スルーの状態にあるリタイミング回路５は単なる配線と同等なので、図示を省略している。また、各ＳＡＬＣ３を区別するために、初段のＳＡＬＣをＳＡＬＣ３Ａとし、２段目以降をそれぞれＳＡＬＣ３Ｂ、ＳＡＬＣ３Ｃ、ＳＡＬＣ３Ｄ、ＳＡＬＣ３Ｅ、ＳＡＬＣ３Ｆとする。
ＳＡＬＣ３は、命令入力端CONから入力される命令により、以下のような処理を行う。
【００４４】
i)デコーダ３１は、データ入力端子D1iに入力されるデータＡとデータ入力端子D2iに入力される参照データＢとを加算し、その結果をデータ出力端子D1oに送る。データ入力端子D3iに入力されるイネーブルデータＣは、データ出力端子D3oに送られるとともに、イネーブルラッチ回路３４にラッチされる。デコーダ３１は、データ出力端子D3oに送られたイネーブルデータＣに応じて、上記のような加算処理を行う。シフトラッチ回路３３にラッチされている参照データＢ１はデータ出力端子D2oに送られ、データ入力端子D2iに入力された新たな参照データＢが、デコーダ３１を介してシフトラッチ回路３３に送られる。シフトラッチ回路３３は、送られてきた新たな参照データＢをラッチする（図７）。
【００４５】
ii)デコーダ３１は、データ入力端子D1iに入力されるデータＡとデータ入力端子D2iに入力される参照データＢとを加算し、その結果をデータ出力端子D1oに送る。データ入力端子D3iに入力されるイネーブルデータＣは、データ出力端子D3oに送られる。デコーダ３１は、イネーブルラッチ回路３４にラッチされたイネーブルデータＣ１に応じて、上記のような加算処理を行う。シフトラッチ回路３３にラッチされている参照データＢ１はデータ出力端子D2oに送られ、データ入力端子D2iに入力された新たな参照データＢが、デコーダ３１を介してシフトラッチ回路３３に送られる。シフトラッチ回路３３は、送られてきた新たな参照データＢをラッチする（図８）。
【００４６】
iii)デコーダ３１は、データ入力端子D1iに入力されるデータＡをそのままデータ出力端子D1oに送る。データ入力端子D3iに入力されるイネーブルデータＣは、データ出力端子D3oに送られる。デコーダ３１は、イネーブルラッチ回路３４にラッチされたイネーブルデータＣ１に応じて、上記のようにデータ入力端子D1iに入力されるデータＡをデータ出力端子D1oに送る。シフトラッチ回路３３にラッチされている参照データＢ１はデータ出力端子D2oに送られ、データ入力端子D2iに入力された新たな参照データＢが、デコーダ３１を介してシフトラッチ回路３３に送られる。シフトラッチ回路３３は、送られてきた新たな参照データＢをラッチする（図９）。
【００４７】
iv)デコーダ３１は、データ入力端子D1iに入力されるデータＡをそのままデータ出力端子D1oに送る。データ入力端子D3iに入力されるイネーブルデータＣは、データ出力端子D3oに送られるとともに、イネーブルラッチ回路３４にラッチされる。デコーダ３１は、データ出力端子D3oに送られたイネーブルデータＣに応じて、上記のようにデータ入力端子D1iに入力されるデータＡをデータ出力端子D1oに送る。シフトラッチ回路３３にラッチされている参照データＢ１はデータ出力端子D2oに送られ、データ入力端子D2iに入力された新たな参照データＢが、デコーダ３１を介してシフトラッチ回路３３に送られる。シフトラッチ回路３３は、送られてきた新たな参照データＢをラッチする（図１０）。
【００４８】
以上のi)〜iv)の処理では、デコーダ３１がデータ出力端子D3oまたはイネーブルラッチ回路３４のイネーブルデータに応じて、加算処理またはデータ入力端子D1iに入力されるデータをデータ出力端子D1oに送る処理を行うことになる。以下の説明では、イネーブルデータが「１」のときにデコーダ３１が加算処理を行い、「０」のときにデコーダがデータ入力端子D1iに入力されるデータをそのままデータ出力端子D1oに送る処理を行うようにする。
【００４９】
図１１はデータ入力端子D1i、D2i、D3iに入力されるデータを表している。データ入力端子D1iにはデータ「100000」、データ入力端子D2iには参照データ「010000」、データ入力端子D3iにはイネーブルデータ「110000」が、この順に入力される。これにより、（２×３＋１）の演算を実行することができる。各ＳＡＬＣ３Ａ〜Ｆは、命令入力端CONから入力される命令により上記i)〜iv)のいずれかの処理を実行して、演算の解を最終段のＳＡＬＣ３のデータ出力端子D1oから出力する。
【００５０】
図１２は、最初のサイクル（０サイクル）で最初のデータ（1,0,1）が初段のＳＡＬＣ３Ａに入力された状態を表している。ＳＡＬＣ３Ａは、データ（1,0,1）が入力されると、命令入力端CONから入力される命令によりi)の処理を実行する。ＳＡＬＣ３Ａのデータ出力端子D1o、D2o、D3oには（1,0,1）が出力される。ＳＡＬＣ３Ｂは、ＳＡＬＣ３Ａからデータ（1,0,1）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｂのデータ出力端子D1o、D2o、D3oには（1,0,1）が出力される。３段目、４段目のＳＡＬＣ３Ｃ、Ｄは、ＳＡＬＣ３Ｂと同じ処理を実行する。このサイクルでは、リタイミング回路５以降にはデータが送られず、初期状態のままである。
【００５１】
図１３は、１サイクル目で２番目のデータ（0,1,1）が初段のＳＡＬＣ３Ａに入力された状態を表している。ＳＡＬＣ３Ａは、データ（0,1,1）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ａのデータ出力端子D1o、D2o、D3oには（1,0,1）が出力される。ＳＡＬＣ３Ｂは、ＳＡＬＣ３Ａからデータ（1,0,1）が入力されると、命令入力端CONから入力される命令によりi)の処理を実行する。ＳＡＬＣ３Ｂのデータ出力端子D1o、D2o、D3oには（1,0,1）が出力される。ＳＡＬＣ３Ｃは、ＳＡＬＣ３Ｂからデータ（1,0,1）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｃのデータ出力端子D1o、D2o、D3oには（1,0,1）が出力される。ＳＡＬＣ３Ｄは、ＳＡＬＣ３Ｃと同じ処理を実行する。
【００５２】
リタイミング回路５には、ＳＡＬＣ３Ｄからデータ（1,0,1）が供給される。リタイミング回路５は、供給されたデータを、パイプラインコントローラ４から供給される制御データに応じて次段のＳＡＬＣ３Ｅに送る。ＳＡＬＣ３Ｅは、リタイミング回路５からデータ（1,0,1）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1o、D2o、D3oには（1,0,1）が出力される。ＳＡＬＣ３Ｆは、ＳＡＬＣ３Ｅと同じ処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1oからは「１」が出力される。
【００５３】
図１４は、２サイクル目で３番目のデータ（0,0,0）が初段のＳＡＬＣ３Ａに入力された状態を表している。ＳＡＬＣ３Ａは、データ（0,0,0）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ａのデータ出力端子D1o、D2o、D3oには（0,1,0）が出力される。ＳＡＬＣ３Ｂは、ＳＡＬＣ３Ａからデータ（0,1,0）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ｂのデータ出力端子D1o、D2o、D3oには（1,0,0）が出力される。ＳＡＬＣ３Ｃは、ＳＡＬＣ３Ｂからデータ（1,0,0）が入力されると、命令入力端CONから入力される命令によりiv)の処理を実行する。ＳＡＬＣ３Ｃのデータ出力端子D1o、D2o、D3oには（1,0,0）が出力される。ＳＡＬＣ３Ｄは、ＳＡＬＣ３Ｃからデータ（1,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｄのデータ出力端子D1o、D2o、D3oには（1,0,0）が出力される。
【００５４】
リタイミング回路５には、前サイクルのＳＡＬＣ３Ｄの出力がそのままラッチされている。この場合は、（1,0,1）がラッチされる。リタイミング回路５の後段のＳＡＬＣ３Ｅのデータ入力端子D1i、D2i、D3iには、リタイミング回路５にラッチされた（1,0,1）が入力される。ＳＡＬＣ３Ｅは、リタイミング回路５からデータ（1,0,1）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1o、D2o、D3oには（1,0,1）が出力される。ＳＡＬＣ３Ｆは、ＳＡＬＣ３Ｅからデータ（1,0,1）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1oからは「１」が出力される。
【００５５】
図１５は、３サイクル目で４番目のデータ（0,0,0）が初段のＳＡＬＣ３Ａに入力された状態を表している。ＳＡＬＣ３Ａは、データ（0,0,0）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ａのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｂは、ＳＡＬＣ３Ａからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ｂのデータ出力端子D1o、D2o、D3oには（0,1,0）が出力される。ＳＡＬＣ３Ｃは、ＳＡＬＣ３Ｂからデータ（0,1,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｃのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｄは、ＳＡＬＣ３Ｃからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiv)の処理を実行する。ＳＡＬＣ３Ｄのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。
【００５６】
リタイミング回路５には、前サイクルのＳＡＬＣ３Ｄの出力がそのままラッチされている。この場合は、（1,0,0）がラッチされる。リタイミング回路５の後段のＳＡＬＣ３Ｅのデータ入力端子D1i、D2i、D3iには、リタイミング回路５にラッチされた（1,0,0）が入力される。ＳＡＬＣ３Ｅは、リタイミング回路５からデータ（1,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1o、D2o、D3oには（1,0,0）が出力される。ＳＡＬＣ３Ｆは、ＳＡＬＣ３Ｅからデータ（1,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1oからは「１」が出力される。
【００５７】
図１６は、４サイクル目で５番目のデータ（0,0,0）が初段のＳＡＬＣ３Ａに入力された状態を表している。ＳＡＬＣ３Ａは、データ（0,0,0）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ａのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｂは、ＳＡＬＣ３Ａからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ｂのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｃは、ＳＡＬＣ３Ｂからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｃのデータ出力端子D1o、D2o、D3oには（0,1,0）が出力される。ＳＡＬＣ３Ｄは、ＳＡＬＣ３Ｃからデータ（0,1,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｄのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。
【００５８】
リタイミング回路５には、前サイクルのＳＡＬＣ３Ｄの出力がそのままラッチされている。この場合は、（0,0,0）がラッチされる。リタイミング回路５の後段のＳＡＬＣ３Ｅのデータ入力端子D1i、D2i、D3iには、リタイミング回路５にラッチされた（0,0,0）が入力される。ＳＡＬＣ３Ｅは、リタイミング回路５からデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiv)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｆは、ＳＡＬＣ３Ｅからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1oからは「０」が出力される。
【００５９】
図１７は、５サイクル目で６番目のデータ（0,0,0）が初段のＳＡＬＣ３Ａに入力された状態を表している。ＳＡＬＣ３Ａは、データ（0,0,0）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ａのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｂは、ＳＡＬＣ３Ａからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりii)の処理を実行する。ＳＡＬＣ３Ｂのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｃは、ＳＡＬＣ３Ｂからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｃのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｄは、ＳＡＬＣ３Ｃからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｄのデータ出力端子D1o、D2o、D3oには（0,1,0）が出力される。
【００６０】
リタイミング回路５には、前サイクルのＳＡＬＣ３Ｄの出力がそのままラッチされている。この場合は、（0,0,0）がラッチされる。リタイミング回路５の後段のＳＡＬＣ３Ｅのデータ入力端子D1i、D2i、D3iには、リタイミング回路５にラッチされた（0,0,0）が入力される。ＳＡＬＣ３Ｅは、リタイミング回路５からデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｆは、ＳＡＬＣ３Ｅからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiv)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1oからは「０」が出力される。
【００６１】
図１８は、６サイクル目ですべてのデータが入力された後の状態を表している。ＳＡＬＣ３Ａ〜ＳＡＬＣ３Ｄは、入力されるデータがないので処理が終了している。
リタイミング回路５には、前サイクルのＳＡＬＣ３Ｄの出力がそのままラッチされている。この場合は、（0,1,0）がラッチされる。リタイミング回路５の後段のＳＡＬＣ３Ｅのデータ入力端子D1i、D2i、D3iには、リタイミング回路５にラッチされた（0,1,0）が入力される。ＳＡＬＣ３Ｅは、リタイミング回路５からデータ（0,1,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1o、D2o、D3oには（0,0,0）が出力される。ＳＡＬＣ３Ｆは、ＳＡＬＣ３Ｅからデータ（0,0,0）が入力されると、命令入力端CONから入力される命令によりiii)の処理を実行する。ＳＡＬＣ３Ｅのデータ出力端子D1oからは「０」が出力される。
【００６２】
以上のように本実施形態の演算パイプライン１は、パイプラインコントローラ４からの制御データにより、ＳＡＬＰ２内でカスケード接続されているＳＡＬＣ３の段数を調整可能となっている。そのために、ＳＡＬＰ２のレイテンシを動的に変化させることができるようになる。また、ＳＡＬＣ３を構成する各素子は、操作電圧供給装置６から供給される動作電圧、及び基板バイアス供給装置７から供給される基板バイアスにより、スレッショルド電圧を動的に変化させることができ、各素子の性能が可変となっている。
動作電圧、基板バイアス、及びＳＡＬＣ３の段数を適切にすることで、演算パイプライン１の動作周波数を変えることなく、性能の劣化を最小限にしつつ、消費電力をコントロールすることができるようになる。
【００６３】
カスケード接続されたＳＡＬＣ３の段数が多いと、命令間のデータ依存性によってはインターロックを起こして動作が止まり、性能劣化の原因となる。例えば、加算処理の後に、その換算結果を用いて減算処理を行うような場合、加算処理にレイテンシがあるようではそのまま加算結果を減算命令で使えず、加算処理の結果を待って減算処理を実行することになる。しかし、処理間に依存性が少ないプログラムの場合は、レイテンシが長くても実効性能に影響はない。もしくはハイパースレッディング技術や命令インタリーブ技術のようにレイテンシが性能に与える影響を軽減する技術もある。以上より、プログラムなどの状況に応じてスレッショルド電圧やパイプラインレイテンシ（ＳＡＬＣ３の接続された段数）を最適に設定することで、性能を劣化させることなく最新のプロセス技術を適用させることが可能となる。
【図面の簡単な説明】
【００６４】
【図１】本発明を適用した演算パイプラインの構成例を示す図。
【図２】ＳＡＬＣを８段カスケード接続した場合のＳＡＬＰを示す図。
【図３】ＳＡＬＣを４段カスケード接続した場合のＳＡＬＰを示す図。
【図４】ＳＡＬＣの例示図。
【図５】パイプラインコントローラの例示図。
【図６】演算パイプラインを用いた処理を説明するための図。
【図７】ＳＡＬＣによる処理を説明するための図。
【図８】ＳＡＬＣによる処理を説明するための図。
【図９】ＳＡＬＣによる処理を説明するための図。
【図１０】ＳＡＬＣによる処理を説明するための図。
【図１１】演算パイプラインを用いた処理を説明するための図。
【図１２】演算パイプラインを用いた処理を説明するための図。
【図１３】演算パイプラインを用いた処理を説明するための図。
【図１４】演算パイプラインを用いた処理を説明するための図。
【図１５】演算パイプラインを用いた処理を説明するための図。
【図１６】演算パイプラインを用いた処理を説明するための図。
【図１７】演算パイプラインを用いた処理を説明するための図。
【図１８】演算パイプラインを用いた処理を説明するための図。
【符号の説明】
【００６５】
１  演算パイプライン
２  シリアル演算パイプライン（ＳＡＬＰ）
３、３Ａ〜３Ｆ  シリアル算術論理演算回路（ＳＡＬＣ）
４  パイプラインコントローラ
５  リタイミング回路
６  動作電圧供給装置
７  基板バイアス供給装置
３１  デコーダ
３２  キャリーラッチ回路
３３  シフトラッチ回路
３４  イネーブルラッチ回路
４１  レイテンシレジスタ
４２  制御データ生成部
４３  減算器
４４  判別器
４５  セレクタ
４６  ＯＲ回路
【図１】
2006053652.tif 000003
【図２】
2006053652.tif 000004
【図３】
2006053652.tif 000005
【図４】
2006053652.tif 000006
【図５】
2006053652.tif 000007
【図６】
2006053652.tif 000008
【図７】
2006053652.tif 000009
【図８】
2006053652.tif 000010
【図９】
2006053652.tif 000011
【図１０】
2006053652.tif 000012
【図１１】
2006053652.tif 000013
【図１２】
2006053652.tif 000014
【図１３】
2006053652.tif 000015
【図１４】
2006053652.tif 000016
【図１５】
2006053652.tif 000017
【図１６】
2006053652.tif 000018
【図１７】
2006053652.tif 000019
【図１８】
2006053652.tif 000020
【手続補正書】
【提出日】平成17年6月3日(2005.6.3)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
データ入力側から４段目と５段目のＳＡＬＣ３の間に設けられたリタイミング回路５のみがリタイミングの状態にあるときは、このＳＡＬＰ２は、４段カスケード接続されたＳＡＬＣ３と５段カスケード接続されたＳＡＬＣ３とにより構成されることになる。１段目のＳＡＬＣ３にデータが入力されると、４段目のＳＡＬＣ３からデータが出力され、この出力されたデータはリタイミング回路５によりラッチされる。次の動作タイミングでリタイミング回路５から５段目のＳＡＬＣ３にデータが入力されると、９段目のＳＡＬＣ３からデータが出力される。このように１段目のＳＡＬＣ３へのデータの入力から９段目のＳＡＬＣ３からのデータの出力まで２つの動作タイミングが必要になるために、レイテンシは「２」になる。リタイミングを行うリタイミング回路５の個数が「１」の場合は、レイテンシが「２」になる。
【手続補正書】
【提出日】平成17年11月10日(2005.11.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
供給される動作電圧値及び／又は基板バイアス値の変化に応じて処理能力を動的に変化させることが可能な処理手段、及び入力されたデータをリタイミング又はスルーするためのリタイミング手段が交互にカスケード接続されて成る演算機構と、
前段に接続された処理手段による処理結果をリタイミング又はスルーさせるための制御データを前記動作電圧値及び／又は前記基板バイアス値に応じて生成するとともに、生成した前記制御データを各リタイミング手段に供給するパイプラインコントローラと、を備えており、
前記パイプラインコントローラは、所定の個数のリタイミング手段が処理結果のリタイミングを行うとともに残りのリタイミング手段が処理結果をスルーするように、各リタイミング手段に制御データを供給するように構成されており、
リタイミングを行うリタイミング手段の個数により、前記演算機構のレイテンシを決めるように構成されている、
演算パイプライン。
【請求項２】
各処理手段は、性能を変化させることが可能な素子により構成されて、素子の性能の変化により処理能力が動的に変化するように構成されており、
前記パイプラインコントローラは、複数の前記制御データを、前記素子の性能に応じて生成するように構成されている、
請求項１記載の演算パイプライン。
【請求項３】
前記処理手段を構成する前記素子は、供給される動作電圧値及び／又は基板バイアス値の変化に応じて処理能力が変化するように構成されており、
前記パイプラインコントローラは、前記動作電圧値及び／又は前記基板バイアス値に応じて前記複数の制御データを生成するように構成されている、
請求項２記載の演算パイプライン。
【請求項４】
前記パイプラインコントローラは、前記複数の制御データを交番データまたは一定値を取るデータとして生成するように構成されており、
前記リタイミング手段は、前記制御データが交番データのときは前記処理結果をリタイミングし、前記制御データが一定値を取るときは前記処理結果をスルーするように構成されている、
請求項１〜３のいずれかに記載の演算パイプライン。
【請求項５】
供給される動作電圧値及び／又は基板バイアス値の変化に応じて性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、前記処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、各リタイミング回路に、前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給する装置により実行される方法であって、
前記装置が、
前記動作電圧値及び／又は前記基板バイアス値に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する段階を含んでいる、
演算パイプラインによる処理方法。
【請求項６】
供給される動作電圧値及び／又は基板バイアス値の変化に応じて性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、前記処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、各リタイミング回路に、前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給するための半導体装置であって、
前記動作電圧値及び／又は前記基板バイアス値に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する手段を備える、
半導体装置。
【請求項７】
供給される動作電圧値及び／又は基板バイアス値の変化に応じて性能を変化させることが可能な素子により構成されて、前記素子の変化に応じて処理能力が動的に変化する処理器と、前記処理器による処理結果をリタイミング又はスルーするリタイミング回路とが、交互にカスケード接続されて成る演算機構に接続されており、前記リタイミング回路に前段に接続された処理器による処理結果をリタイミング又はスルーさせるための制御データを供給するコンピュータに、
前記動作電圧値及び／又は前記基板バイアス値に応じて、所定の個数のリタイミング回路が処理結果のリタイミングを行うとともに残りのリタイミング回路が処理結果をスルーするように、リタイミング手段毎の前記制御データを生成する処理を実行させるようにするための、
コンピュータプログラム。