(57)【要約】【課題】動作周波数を切り替えて省電力化を図るＬＳＩにおいて、高い動作周波数から低い動作周波数に切り替えたときは、動作周波数に比例した消費電力の減少以上に消費電力を減少することができる演算装置を提供する。【解決手段】加算器１０４は下位ビットの加算を実行し、この結果に基づいて加算器１０５は上位ビットの加算を実行する。低い動作周波数において加算器１０６は加算は動作させないので、加算器１０６での消費電力が削減できる。【選択図】　図１
2004005129.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器を有し、前記複数の演算器を並列に実行する演算装置において、複数の入力データを入力し、演算を実行し、演算結果である第１の演算結果と、２値の数値である第２の演算結果とを出力する第１の演算器と、前記複数の入力データと、前記第１の演算結果および前記第２の演算結果のうち少なくとも１つと、高速演算モードあるいは低電力演算モードの制御を行う制御信号とを入力し、前記制御信号が前記高速演算モードの場合、前記第２の演算結果が出力される前に、前記第２の演算結果が２値のうちの一方の値であるとして、前記複数の入力データに対して演算を実行し、前記制御信号が前記低電力演算モードの場合、前記第１の演算結果および前記第２の演算結果が出力されると、前記第２の演算結果に対応する演算を前記複数の入力データおよび前記第１の演算結果のうち少なくとも２つのデータに対して演算を実行し、その結果を出力する第２の演算器と、前記複数の入力データと、前記制御信号を入力し、前記制御信号が前記高速演算モードの場合、前記第２の演算結果が出力される前に、前記第２の演算結果が２値のうちの他の一方の値であるとして、前記複数の入力データに対して演算を実行し、前記制御信号が前記低電力演算モードの場合、前記複数の入力データのデータ変化を抑制し演算を実行せずに、その結果を出力する第３の演算器と、前記第２の演算器および前記第３の演算器の出力と、前記制御信号と、前記第１の演算結果および前記第２の演算結果のうち少なくとも１つと、を入力し、前記制御信号が前記高速演算モードの場合、前記第２の演算結果に対応する演算を実行した第２の演算器の出力あるいは第３の演算器の出力のどちらか一方を選択し、前記制御信号が前記低電力演算モードの場合、前記第２の演算器を選択し出力するセレクタと、を備えることを特徴とする演算装置。
【請求項２】
前記制御信号は、動作周波数に応じて切り替えることを特徴とする請求項１記載の演算装置。
【請求項３】
前記第３の演算器は、前記複数の入力データと前記制御信号を入力として、前記制御信号により前記複数の入力データを保持する記憶素子を備えること特徴とする請求項１記載の演算装置。
【請求項４】
前記第３の演算器は、前記複数の入力データと前記制御信号を入力として、前記制御信号により前記複数の入力データを固定値にするゲートを備えることを特徴とする請求項１記載の演算装置。
【請求項５】
２つのＭビットデータを入力として加算を実行する演算装置において、前記２つの入力データの下位Ｎビット（Ｍ≧Ｎ）を入力として加算を実行し、その演算結果とキャリーとを出力する第１の加算器と、前記２つの入力データの上位（Ｍ−Ｎ）ビットと、第１の加算器のキャリー信号と、高速演算モードあるいは低電力演算モードの制御を行う制御信号とを入力として、前記制御信号が前記高速演算モードの場合は、前記２つの上位（Ｍ−Ｎ）ビットの入力データと前記キャリー信号が出力される前に、前記キャリー信号の２値のうちの一方の値であるとして、前記２つの上位（Ｍ−Ｎ）ビットの加算を実行し、前記制御信号が前記低電力演算モードの場合は、前記２つの上位（Ｍ−Ｎ）ビットの入力データと前記キャリー信号との加算を実行し、その結果を出力する第２の加算器と、前記２つの入力データの上位（Ｍ−Ｎ）ビットと前記制御信号を入力として、前記制御信号が前記高速演算モードの場合は、前記２つの上位（Ｍ−Ｎ）ビットの入力データと前記キャリー信号が出力される前に、前記キャリー信号の２値のうちの他の一方の値であるとして、前記２つの上位（Ｍ−Ｎ）ビットの加算を実行し、前記制御信号が前記低電力演算モード場合は、前記２つの入力データの上位（Ｍ−Ｎ）ビットのデータ変化を抑制し、出力する第１のゲートと、前記第１のゲートの２つの出力と前記キャリー信号の２値のうち他の一方の値とを入力として加算を実行し、その結果を出力する第３の加算器と、前記第２の加算器および前記第３の加算器の出力と、前記制御信号と、前記キャリー信号を入力し、前記制御信号が前記高速演算モードの場合は、前記キャリー信号の値に対応する演算を実行した第２の加算器の出力あるいは第３の加算器の出力のどちらか一方を選択し、前記制御信号が前記低電力演算モード場合は、前記第２の加算器の出力を選択し出力するセレクタと、を備えることを特徴とする演算装置。
【請求項６】
前記２つの入力データのビット幅Ｍが前記Ｎの整数倍であることを特徴とする請求項５記載の演算装置。
【請求項７】
２つの入力データと累積データを入力として差分絶対値累積演算を実行する演算装置において、前記２つの入力データを入力として減算を実行し、その演算結果と、ボロー信号を出力する第１の減算器と前記２つの入力データと、前記累積データと、前記第１の減算器の演算結果および前記ボロー信号と、高速演算モードあるいは低電力演算モードの制御を行う制御信号とを入力として、前記制御信号が前記高速演算モードの場合は、前記ボロー信号の値が２値のうちの一方の値であるとして、前記２つの入力データの差が正となる前記２つの入力の減算と前記累積データの加算とを実行し、前記制御信号が前記低電力演算モード場合は、前記第１の減算器の出力値が正となる処理を行い、その処理データと前記累積データとの加算を実行し、その結果を出力する第４の演算器と前記２つの入力データと前記累積データと前記制御信号を入力として、前記制御信号が前記高速演算モードの場合は、前記ボロー信号の値が２値のうちの他の一方の値であるとして、前記２つの入力データの差が正となる前記２つの入力の減算と前記累積データの加算とを実行し、前記制御信号が前記低電力演算モード場合は、前記２つの入力データと前記累積データのデータ変化を抑制し、出力する第２のゲートと、前記第２のゲートの３つの出力を入力として演算を実行し、その結果を出力する第５の演算器と、前記ボロー信号と前記制御信号と前記第４の演算器の出力と前記第５の演算器の出力を入力として、前記制御信号が前記高速演算モードの場合は、前記ボロー信号の値に対応した演算を実行した前記第４の演算器の出力あるいは前記第５の演算器の出力のどちらか一方を選択し、前記制御信号が前記低電力演算モード場合は、前記第４の演算器の出力を選択し出力するセレクタと、を備えることを特徴とする演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、消費電力の省力化を図れる演算装置に関する。
【０００２】
【従来の技術】
近年、製品の携帯化にともない、ＬＳＩの低消費電力化が必要になっている。低消費電力化を実現するために、主としてＣＭＯＳ回路が採用されている。ＣＭＯＳ回路は動作周波数を下げると充放電する回数が減少し消費電力が減少する。また入力信号を固定すると信号の伝達に伴う充放電が減少し消費電力が減少する。したがって、ＬＳＩに要求される処理に応じて、動作周波数を切り替えてＬＳＩを動作させるという方法が一般的に知られている。
【０００３】
図３に従来の加算器の構成図を示す。説明の便宜上、データのビット幅は３２ビットとする。図３において、１０１、１０２は入力データを保持するレジスタ１０４はレジスタ１０１、１０２に保持されたデータの下位１６ビットについて加算を実行する加算器、１０５、１０６はレジスタ１０１、１０２に保持されたデータの上位１６ビットについて加算を実行するキャリー入力付き加算器、１０７は加算器１０４のキャリー信号１１５が“０”の場合は加算器１０５の出力を選択し、キャリー信号１１５が“１”の場合は加算器１０６の出力を選択し出力するセレクタである。
【０００４】
３２ビットのデータＡとＢの加算を実行する従来の加算器について、その動作を説明する。レジスタ１０１、１０２は入力データを保持する。加算器１０４は、レジスタ１０１に保持されたデータＡとレジスタ１０２に保持されたデータＢのそれぞれ下位１６ビットを入力として加算を実行し、下位１６ビットの加算結果１１６である（Ａ［１５：０］＋Ｂ［１５：０］）と１ビットのキャリー信号１１５を出力する。
【０００５】
３２ビットの加算（Ａ＋Ｂ）における１６ビット目から１７ビット目へのキャリーがある場合は、キャリー信号１１５が“１”となり、キャリーがない場合は、キャリー信号１１５は“０”となる。
【０００６】
加算器１０５は、レジスタ１０１に保持されたデータＡとレジスタ１０２に保持されたデータＢのそれぞれ上位１６ビットを入力とし、キャリー入力が“０”としてキャリー入力付き加算を実行し、上位１６ビットの加算結果（Ａ［３１：１６］＋Ｂ［３１：１６］）を出力する。
【０００７】
加算器１０６は、レジスタ１０１に保持されたデータＡとレジスタ１０２に保持されたデータＢのそれぞれ上位１６ビットを入力とし、キャリー入力が“１”としてキャリー入力付き加算を実行し、上位１６ビットの加算結果（Ａ［３１：１６］＋Ｂ［３１：１６］＋１）を出力する。
【０００８】
セレクタ１０７は、加算器１０４の出力であるキャリー信号１１５が“０”のときは加算器１０５の出力を選択し、キャリー信号１１５が“１”のときは加算器１０６の出力を選択し出力する。
【０００９】
レジスタ１０３は、加算器１０４の加算結果１１６を下位１６ビットに格納し、セレクタ１０７の出力を上位１６ビットに格納し３２ビット加算を完了する。
【００１０】
低消費電力が要求される場合には、動作周波数を下げて消費電力を減少させる。
【００１１】
次に、図４に従来の差分絶対値累積演算器の構成図を示す。同図において、１０１、１０２は入力データを保持するレジスタ、１０３は累積データを保持するレジスタ、１０８はレジスタ１０１、１０２に保持されたデータを入力として減算を実行し、そのボロー信号１１８を出力する減算器である。
【００１２】
１０９はレジスタ１０２に保持されたデータを論理反転するゲート、１１０はレジスタ１０１に保持されたデータを論理反転するゲート、１１１はレジスタ１０１に保持されたデータとゲート１０９の出力とレジスタ１０３に保持されたデータとを入力として３入力加算を実行し、加算における２つの中間データを出力する全加算器、１１２はレジスタ１０２に保持されたデータとゲート１１０の出力とレジスタ１０３に保持されたデータとを入力として３入力加算を実行し、加算における２つの中間データを出力する全加算器である。
【００１３】
１１３は全加算器１１１の２つの出力を入力とし、キャリー入力を“１”としてキャリー入力付き加算を実行する加算器、１１４は全加算器１１２の２つの出力を入力とし、キャリー入力を“１”としてキャリー入力付き加算を実行する加算器である。
【００１４】
１０７は減算器１０８のボロー信号１１８と加算器１１３の出力と加算器１１４の出力を入力とし、減算器１０８のボロー信号１１８が“０”の場合は加算器１１３の出力を選択し、減算器１０８のボロー信号１１８が“１”の場合は加算器１１４の出力を選択し、レジスタ１０３へ出力するセレクタである。
【００１５】
２つの入力データＡ、Ｂと累積データＳの差分絶対値累積演算を実行する従来の差分絶対値累積演算器について、その動作を説明する。
【００１６】
レジスタ１０１、１０２は入力データを保持し、レジスタ１０３は累積データＳを保持する。減算器１０８はレジスタ１０１に保持されたデータＡと１０２に保持されたデータＢを入力として、減算（Ａ−Ｂ）を実行し、ボロー信号１１８を出力する。
【００１７】
減算結果が正になる場合、ボロー信号１１８は“０”となり、減算結果が負になる場合、ボロー信号１１８は“１”となる。
【００１８】
ゲート１０９はレジスタ１０２に保持されたデータＢの論理反転（以下！Ｂ）を行い、ゲート１１０はレジスタ１０１に保持されたデータＡの論理反転（以下！Ａ）を行う。
【００１９】
全加算器１１１は、３つのデータＡ、！Ｂ、Ｓを入力として全加算を実行し、加算における２つの中間データを出力する。全加算器１１２は、３つのデータ！Ａ、Ｂ、Ｓを入力として全加算を実行し、加算における２つの中間データを出力する。
【００２０】
加算器１１３は、全加算器１１１の２つの出力を入力とし、キャリー入力を“１”としてキャリー入力付き加算を実行し、その結果（Ｓ＋Ａ＋！Ｂ＋１＝Ｓ＋Ａ−Ｂ）を出力する。
【００２１】
加算器１１４は、全加算器１１２の２つの出力を入力とし、キャリー入力を“１”としてキャリー入力付き加算を実行し、その結果（Ｓ＋！Ａ＋Ｂ＋１＝Ｓ−Ａ＋Ｂ）を出力する。
【００２２】
セレクタ１０７は、減算器１０８のボロー信号１１８と加算器１１３の出力と加算器１１４の出力を入力とし、減算器１０８の減算結果が正の場合は加算器１１３の出力を選択し、減算結果が負の場合は加算器１１４の出力を選択し、その結果（Ｓ＋｜Ａ−Ｂ｜）を出力する。レジスタ１０３はセレクタ１０７の出力を保持し、差分絶対値累積演算を完了する。
【００２３】
以上のような従来の演算装置において、図５に示すクロックを用いて演算装置を動作させた場合、消費電力は動作周波数に比例するので、演算装置の消費電力は図６のようになる。したがって、バッテリー電源電圧が減少した場合、アプリケーションによっては低動作周波数でよい場合、発熱による熱暴走防止の場合などにおいて、動作周波数を下げ消費電力の削減を図ることができる。
【００２４】
【発明が解決しようとする課題】
従来の演算装置において、ＬＳＩに要求される処理に応じ、動作周波数を切り替えてＬＳＩを動作させる場合、演算に使用される回路は常に同じものであり、動作周波数とは無関係である。このため、高い動作周波数から低い動作周波数に切り替えた場合、動作周波数に比例した分だけしか演算装置で消費される電力は小さくならないという問題があった。本発明は動作周波数に比例した消費電力の減少以上に消費電力の減少を図る演算装置を提供する。
【００２５】
【課題を解決するための手段】
この課題を解決するために本発明の請求項１記載の演算装置は複数の演算器を有し、各演算器を並列に実行する演算装置において、複数の入力データを入力し、演算を実行し、演算結果である第１の演算結果と、２値の数値である第２の演算結果とを出力する第１の演算器と、前記複数の入力データと、前記第１の演算結果および前記第２の演算結果のうち少なくとも１つと、高速演算モードあるいは低電力演算モードの制御を行う制御信号とを入力し、前記制御信号が前記高速演算モードの場合、前記第２の演算結果が出力される前に、前記第２の演算結果が２値のうちの一方の値であるとして、前記複数の入力データに対して演算を実行し、前記制御信号が前記低電力演算モードの場合、前記第１の演算結果および前記第２の演算結果が出力されると、前記第２の演算結果に基づく演算を前記複数の入力データおよび前記第１の演算結果のうち少なくとも２つのデータに対して演算を実行し、その結果を出力する第２の演算器と、前記複数の入力データと、前記制御信号を入力し、前記制御信号が前記高速演算モードの場合、前記第２の演算結果が出力される前に、前記第２の演算結果が２値のうちの他の一方の値であるとして、前記複数の入力データに対して演算を実行し、前記制御信号が前記低電力演算モードの場合、前記複数の入力データのデータ変化を抑制し演算を実行せず、その結果を出力する第３の演算器と前記第２の演算器および前記第３の演算器の出力と、前記制御信号と、前記第１の演算結果および前記第２の演算結果のうち少なくとも１つと、を入力し、前記制御信号が前記高速演算モードの場合、前記第２の演算結果に対応する演算を実行した第２の演算器の出力あるいは第３の演算器の出力のどちらか一方を選択し、前記制御信号が前記低電力演算モードの場合、前記第２の演算器を選択し出力するセレクタと、を備えることを特徴とする。
【００２６】
この構成によれば、低電力演算モードにおいて、第３の演算器の入力データが固定値となることによって、第３の演算器におけるデータの変化による充放電によって発生する消費電力をゼロにすることができる。したがって、動作周波数に比例した消費電力の減少以上に消費電力の減少を図ることができる。
【００２７】
請求項２記載の演算装置は、請求項１記載の演算装置において、前記制御信号を動作周波数に応じて切り替えることを特徴とする。
【００２８】
請求項３記載の演算装置は、請求項１記載の演算装置において、前記第３の演算器に、前記複数の入力データと前記制御信号を入力として、前記制御信号により前記複数の入力データを保持する記憶素子を備える。
【００２９】
請求項４記載の演算装置は、請求項１記載の演算装置において、前記第３の演算器に前記複数の入力データと前記制御信号を入力として、前記制御信号により前記複数の入力データを固定値にするゲートを備える。
【００３０】
請求項５記載の演算装置は、２つのＭビットデータを入力として加算を実行する演算装置において、前記２つの入力データの下位Ｎビット（Ｍ≧Ｎ）を入力として加算を実行し、その演算結果とキャリーとを出力する第１の加算器と、前記２つの入力データの上位（Ｍ−Ｎ）ビットと、第１の加算器のキャリー出力と、高速演算モードあるいは低電力演算モードの制御を行う制御信号とを入力として、前記制御信号が前記高速演算モードの場合は、前記２つの上位（Ｍ−Ｎ）ビットの入力データと前記キャリーが出力される前に、前記キャリー出力の２値のうちの一方の値であるとして、前記２つの上位（Ｍ−Ｎ）ビットの加算を実行し、前記制御信号が前記低電力演算モードの場合は、前記２つの上位（Ｍ−Ｎ）ビットの入力データと前記キャリー出力との加算を実行し、その結果を出力する第２の加算器と、前記２つの入力データの上位（Ｍ−Ｎ）ビットと前記制御信号を入力として、前記制御信号が前記高速演算モードの場合は、前記２つの上位（Ｍ−Ｎ）ビットの入力データと前記キャリーが出力される前に、前記キャリー出力の２値のうちの他の一方の値であるとして、前記２つの上位（Ｍ−Ｎ）ビットの加算を実行し、前記制御信号が前記低電力演算モード場合は、前記２つの入力データの上位（Ｍ−Ｎ）ビットのデータ変化を抑制し、出力する第１のゲートと、前記第１のゲートの２つの出力と前記キャリー出力の２値のうち他の一方の値とを入力として加算を実行し、その結果を出力する第３の加算器と、前記第２の加算器および前記第３の加算器の出力と、前記制御信号と、前記キャリー出力を入力し、前記制御信号が前記高速演算モードの場合は、前記キャリー出力の値に対応する演算を実行した第２の加算器の出力あるいは第３の加算器の出力のどちらか一方を選択し、前記制御信号が前記低電力演算モード場合は、前記第２の加算器の出力を選択し出力するセレクタと、を備える。
【００３１】
請求項６記載の演算装置は、請求項５記載の演算装置において、前記２つの入力データのビット幅Ｍが前記Ｎの整数倍であることを特徴とする。
【００３２】
請求項７記載の演算装置は、２つの入力データと累積データを入力として差分絶対値累積演算を実行する演算装置において、前記２つの入力データを入力として減算を実行し、その演算結果と、ボローを出力する第１の減算器と、前記２つの入力データと、前記累積データと、前記第１の減算器の演算結果および前記ボロー出力と、高速演算モードあるいは低電力演算モードの制御を行う制御信号とを入力として、前記制御信号が前記高速演算モードの場合は、前記ボロー出力の値が２値のうちの一方の値であるとして、前記２つの入力データの差が正となる前記２つの入力の減算と前記累積データの加算とを実行し、前記制御信号が前記低電力演算モード場合は、前記第１の減算器の出力値が正となる処理を行い、その処理データと前記累積データとの加算を実行し、その結果を出力する第４の演算器と、前記２つの入力データと前記累積データと前記制御信号を入力として、前記制御信号が前記高速演算モードの場合は、前記ボロー出力の値が２値のうちの他の一方の値であるとして、前記２つの入力データの差が正となる前記２つの入力の減算と前記累積データの加算とを実行し、前記制御信号が前記低電力演算モード場合は、前記２つの入力データと前記累積データのデータ変化を抑制し、出力する第２のゲートと、前記第２のゲートの３つの出力を入力として演算を実行し、その結果を出力する第５の演算器と、前記ボロー出力と前記制御信号と前記第４の演算器の出力と前記第５の演算器の出力を入力として、前記制御信号が前記高速演算モードの場合は、前記ボロー出力の値に対応した演算を実行した前記第４の演算器の出力あるいは前記第５の演算器の出力のどちらか一方を選択し、前記制御信号が前記低電力演算モード場合は、前記第４の演算器の出力を選択し出力するセレクタと、を備える。
【００３３】
【発明の実施の形態】
以下、本発明の実施の形態について、図１〜図２を用いて説明する。
【００３４】
（実施の形態１）
図１は本発明の一実施の形態に係る演算装置の概略構成を示したものである。
【００３５】
図１において、２００は制御信号、１０１、１０２は３２ビットの入力データを保持するレジスタ、１０４は、レジスタ１０１に保持されたデータＡとレジスタ１０２に保持されたデータＢのそれぞれ下位１６ビットを入力として、加算を実行し、下位１６ビットの加算結果１１６と１ビットのキャリー信号１１５を出力する加算器である。
【００３６】
２０１は制御信号２００と加算器１０４のキャリー信号１１５を入力とし、制御信号２００が“０”の場合は“０”を選択し、制御信号２００が“１”の場合は加算器１０４のキャリー信号１１５を選択し出力するセレクタである。
【００３７】
１０５はレジスタ１０１に保持されたデータＡとレジスタ１０２に保持されたデータＢのそれぞれ上位１６ビットを入力とし、セレクタ２０１の出力をキャリー入力としてキャリー入力付き加算を実行する加算器である。
【００３８】
２０２は制御信号２００とレジスタ１０１に保持されたデータＡの上位１６ビットを入力とし、制御信号２００が“０”の場合はレジスタ１０１に保持されたデータＡの上位１６ビットを出力し、制御信号２００が“１”の場合は“０”を出力するゲート、２０３は制御信号２００とレジスタ１０２に保持されたデータＢの上位１６ビットを入力とし、制御信号２００が“０”の場合はレジスタ１０２に保持されたデータＢの上位１６ビットを出力し、制御信号２００が“１”の場合は“０”を出力するゲートである。
【００３９】
１０６はゲート２０２、２０３の出力を入力とし、キャリー入力を“１”として加算を実行する加算器である。２０４は制御信号２００と加算器１０４のキャリー信号１１５を入力とし、制御信号２００が“０”の場合は加算器１０４から出力されるキャリー信号１１５を出力し、制御信号２００が“１”の場合は“０”を出力するゲートである。１０７は加算器１０５、１０６の出力とゲート２０４の出力を入力として、ゲート２０４の出力が“０”の場合は加算器１０５の出力を選択し、ゲート２０４の出力が“１”の場合は加算器１０６の出力を選択し出力するセレクタである。１０３は加算器１０４の加算結果１１６を下位１６ビットに格納し、セレクタ１０７の出力を上位１６ビットに格納するレジスタである。
【００４０】
以上のように構成された演算装置において、以下その動作について説明する。動作周波数が低く、制御信号２００が“１”の場合を説明する。
【００４１】
図１において、加算器１０４はレジスタ１０１、１０２に保持されたデータの下位１６ビットの加算を実行し、下位１６ビットの加算結果１１６と１ビットのキャリー信号１１５を出力する。制御信号２００は“１”なので、セレクタ２０１は加算器１０４から出力されるキャリー信号１１５を出力する。加算器１０５はレジスタ１０１、１０２に保持されたデータの上位１６ビットについて、加算器１０４から出力されるキャリー信号１１５をキャリー入力としてキャリー入力付き加算を実行し、加算結果を出力する。制御信号２００は“１”なので、ゲート２０２、２０３、２０４は“０”を出力する。ゲート２０４の出力が“０”なので、セレクタ１０７は、加算器１０５の出力を選択し出力する。加算器１０４の加算結果１１６をレジスタ１０３の下位１６ビットに格納し、セレクタ１０７の出力を上位１６ビットに格納し加算を完了する。以上のように、演算装置は３２ビットの加算を実行する。
【００４２】
この３２ビット加算においては、加算器１０６は使用しておらず、ゲート２０２、２０３で加算器１０６の入力データを固定値にすることで、加算器１０６内のデータ変化を抑制している。これにより、動作周波数を低くすることによる消費電力の低下に加え、加算器１０６のデータ変化を抑制することにより消費される電力をより小さくすることができる。
【００４３】
動作周波数が高い場合は、制御信号２００が“１”となり、加算器１０５は加算器１０４からのキャリー信号１１５が“０”であるとして、レジスタ１０１、１０２の上位１６ビットの加算を実行し、加算器１０６は加算器１０４からのキャリー信号１１５が“１”であるとして、レジスタ１０１、１０２の上位１６ビットの加算を実行する。加算器１０４は、レジスタ１０１、１０２の下位１６ビットの加算を実行し、キャリー信号１１５と加算結果１１６を出力する。セレクタ１０７はキャリー信号１１５が“０”の場合、加算器１０５の出力を選択し、キャリー信号１１５が“１”の場合、加算器１０６の出力を選択する。レジスタ１０３の下位１６ビットには加算器１０４の加算結果１１６が格納され、上位１６ビットにはセレクタ１０７の出力が格納され、３２ビットの加算結果が格納される。
【００４４】
また、実施の形態１において、３２ビットの入力データの演算を示したが、１６ビットの整数倍の入力データの加算に対しても実施の形態１の演算装置を並列に置き演算することができる。
【００４５】
（実施の形態２）
図２は本発明の実施の形態２に係る演算装置の概略構成を示す。図２において、２００は制御信号、１０１、１０２は入力データを保持するレジスタ、１０３は累積データを保持するレジスタ、１０８はレジスタ１０１、１０２に保持されたデータを入力として減算を実行し、減算結果１１７とボロー信号１１８を出力する減算器である。
【００４６】
３０１は減算器の減算結果１１７とボロー信号１１８を入力として排他的論理和演算を実行するゲート、３０２はレジスタ１０２に保持されたデータと制御信号２００を入力として、論理和演算を実行するゲート、１０９はゲート３０２の出力を入力としてデータを論理反転するゲート、３０３は制御信号２００とレジスタ１０１に保持されたデータとゲート３０１の出力を入力とし、制御信号２００が“０”の場合はレジスタ１０１に保持されたデータを選択し、制御信号２００が“１”の場合はゲート３０１の出力を選択し出力するセレクタである。
【００４７】
１１１はゲート１０９の出力とセレクタ３０３の出力とレジスタ１０３に保持された累積データを入力として３入力加算を実行し、加算における２つの中間データを出力する全加算器である。
【００４８】
３０４はレジスタ１０２に保持されたデータと制御信号２００を入力として、制御信号２００が“０”の場合はレジスタ１０２に保持されたデータを出力し、制御信号２００が“１”の場合は“０”を出力するゲート、３０５はレジスタ１０１に保持されたデータと制御信号２００を入力として、制御信号２００が“０”の場合はレジスタ１０１に保持されたデータを出力し、制御信号２００が“１”の場合は“０”を出力するゲート、３０６はレジスタ１０３に保持された累積データと制御信号２００を入力として、制御信号２００が“０”の場合はレジスタ１０３に保持された累積データを出力し、制御信号２００が“１”の場合は”０”を出力するゲート、１１０はゲート３０５の出力を入力として論理反転するゲートである。
【００４９】
１１２はゲート３０４、１１０、３０６の出力を入力として３入力加算を実行し、加算における２つの中間データを出力する全加算器である。３０７は制御信号２００と減算器１０８のボロー信号１１８を入力とし、制御信号２００が“０”の場合は“１”を選択し、制御信号２００が“１”の場合は減算器１０８のボロー信号１１８を選択するセレクタである。
【００５０】
１１３は全加算器１１１の２つの出力を入力とし、セレクタ３０７の出力をキャリー入力としてキャリー入力付き加算を実行する加算器である。１１４は全加算器１１２の２つの出力を入力とし、キャリー入力を“１”としてキャリー入力付き加算を実行する加算器である。２０４は制御信号２００と減算器１０８のボロー信号１１８を入力として、制御信号２００が“０”の場合は減算器１０８のボロー信号１１８を出力し、制御信号２００が“１”の場合は“０”を出力するゲートである。
【００５１】
１０７はゲート２０４の出力と加算器１１３の出力と加算器１１４の出力を入力とし、ゲート２０４の出力が“０”の場合は加算器１１３の出力を選択し、ゲート２０４の出力が“１”の場合は加算器１１４の出力の選択し出力するセレクタである。
【００５２】
以上のように構成された演算装置において、以下その動作について説明する。動作周波数が低く、制御信号２００が“１”の場合を説明する。
【００５３】
図２において、レジスタ１０１、１０２は入力データ（共に３２ビットとする）を保持する。減算器１０８はレジスタ１０１に保持されたデータＡとレジスタ１０２に保持されたデータＢを入力として減算（Ａ−Ｂ）を実行し、減算結果１１７とボロー信号１１８を出力する。
【００５４】
ゲート３０１は、ボロー信号１１８と減算結果１１７の排他的論理和演算を実行し、減算結果が正の場合は演算結果（Ａ−Ｂ）を出力し、減算結果が負の場合は演算結果（！（Ａ−Ｂ））を出力する。
【００５５】
制御信号２００が“１”なので、ゲート３０４〜３０６は“０”を出力し、ゲート３０２は“０ｘｆｆｆｆｆｆｆｆ”（３２ビットすべてのビットが“１”）を出力する。ゲート１０９はゲート３０２の出力を論理反転し、“０ｘ００００００００”（３２ビットすべてのビットが“０”）を出力する。
【００５６】
制御信号２００が“１”なので、セレクタ３０３はゲート３０１の結果を選択し出力する。
【００５７】
全加算器１１１はゲート１０９の出力とセレクタ３０３の出力とレジスタ１０３に保持された累積データＳを入力とし全加算を実行し、加算における２つの中間データを出力する。制御信号２００が“１”なので、セレクタ３０７は減算器１０８のボロー信号１１８を選択し出力する。
【００５８】
加算器１１３は全加算器の２つの出力を入力とし、セレクタ３０７の出力をキャリー入力としてキャリー入力付き加算を実行し、減算器１０８の減算結果が正の場合は、演算結果（Ｓ＋Ａ−Ｂ）を出力し、減算結果が負の場合は、演算結果（Ｓ＋！（Ａ−Ｂ）＋１＝Ｓ−（Ａ−Ｂ））を出力する。
【００５９】
制御信号２００が“１”なのでゲート２０４は“０”を出力し、セレクタ１０７は加算器１１３の出力を選択し出力する。セレクタ１０７の出力をレジスタ１０３に格納し、差分絶対値累積演算を完了する。
【００６０】
以上のように、演算装置は３２ビットの差分絶対値累積演算を実行する。
【００６１】
制御信号２００が“１”の場合、この３２ビット差分絶対値累積演算においては、全加算器１１２、加算器１１４は使用しておらず、ゲート３０４〜３０６で全加算器１１２の入力データを固定値にすることで、全加算器１１２、加算器１１４内のデータ変化を抑制している。これにより、動作周波数を低くすることによる消費電力の低下に加え、全加算器１１２、加算器１１４のデータ変化を抑制することにより消費される電力をより小さくすることができる。
【００６２】
動作周波数が高く、制御信号２００が“０”の場合、全加算器１１１と加算器１１３は（Ａ−Ｂ）の減算結果が正であるとして（（Ａ−Ｂ）＋Ｓ）の演算を実行し、全加算器１１２と加算器１１４は（Ｂ−Ａ）の減算結果が正であるとして（（Ｂ−Ａ）＋Ｓ）の演算を実行し、減算器１０８の（Ａ−Ｂ）のボロー信号１１８が“０”の場合、加算器１１３の出力を選択し、ボロー信号１１８が“１”の場合、加算器１１３の出力を選択し、レジスタ１０３に格納し、差分絶対値累積演算を完了する。
【００６３】
実施の形態２においては、入力データは３２ビットとして説明したが、３２ビットの整数倍の入力データに対しては、この演算器を並列にならべ並列演算を行うことにより実行できる。また、入力データは３２ビットに限定するものではない。
【００６４】
【発明の効果】
本発明の演算装置において、高い動作周波数から低い動作周波数に切り替えた場合、演算に使用される回路の一部のデータ変化を抑制することにより、この部分で消費される電力を削減できる。また、動作周波数に比例した消費電力の減少分に加え、演算装置で消費される電力を小さくすることができるという有利な効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係る演算装置を示す図
【図２】本発明の実施の形態２に係る演算装置を示す図
【図３】従来の演算装置（加算器）を示す図
【図４】従来の演算装置（差分絶対値累積演算器）を示す図
【図５】従来の演算装置に係るクロック図
【図６】従来の演算装置に係る消費電力図
【符号の説明】
１０１、１０２、１０３　レジスタ
１０４、１０５、１０６、１１３、１１４　加算器
１０７、２０１、３０３、３０７　セレクタ
１０８　減算器
１０９、１１０、２０２、２０３、２０４、３０１、３０２、３０４、３０５
３０６　ゲート
１１１、１１２　全加算器
１１５　キャリー信号
１１６　加算結果
１１７　減算結果
１１８　ボロー信号
２００　制御信号
【図１】
2004005129.tif 000003
【図２】
2004005129.tif 000004
【図３】
2004005129.tif 000005
【図４】
2004005129.tif 000006
【図５】
2004005129.tif 000007
【図６】
2004005129.tif 000008