(57)【要約】【課題】浮動小数点演算でアンダーフロー例外及びオーバーフロー例外が発生した場合に消費電力を抑えることができる演算装置を提供する。【解決手段】指数演算手段８１は、浮動小数点数の指数に対して演算を行う。仮数演算手段８２は、浮動小数点数の仮数に対して演算を行う。演算例外検知手段８３は、指数演算手段８１が演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する。演算停止手段８４は、演算例外検知手段８３が演算例外を検知したときに、仮数演算手段８２の演算を停止させる。【選択図】図６
2010160644.tif 000002
【特許請求の範囲】
【請求項１】
浮動小数点数の指数に対して演算を行う指数演算手段と、
浮動小数点数の仮数に対して演算を行う仮数演算手段と、
前記指数演算手段が演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知手段と、
前記演算例外検知手段が前記演算例外を検知したときに、前記仮数演算手段の演算を停止させる演算停止手段とを備えた
ことを特徴とする演算装置。
【請求項２】
演算例外の内容に応じて予め定められた例外演算結果を選択する選択手段と、
演算例外検知手段が演算例外を検知した場合に、前記選択手段に例外演算結果を選択させる選択指示手段とを備えた
請求項１記載の演算装置。
【請求項３】
演算例外検知手段が演算例外を検知しなかった場合における演算結果である通常演算結果と例外演算結果のいずれを最終演算結果とするか選択する最終演算結果選択手段を備え、
前記最終演算結果選択手段は、演算例外検知手段が演算例外を検知した場合に、例外演算結果を最終演算結果として選択する
請求項２記載の演算装置。
【請求項４】
選択指示手段は、演算例外検知手段が演算例外を検知した場合、演算例外検知手段が演算例外を検知しなかった場合における仮数演算手段の演算完了のタイミングである通常演算完了時に例外演算結果を選択手段に選択させ、
最終演算結果選択手段は、演算例外検知手段が演算例外を検知した場合、前記通常演算完了時に例外演算結果を最終演算結果として選択する
請求項３記載の演算装置。
【請求項５】
演算例外検知手段は、指数演算手段が演算した演算結果が、予め定めた第１の閾値を超えた場合にオーバーフローであることを検知し、予め定めた第２の閾値を下回った場合にアンダーフローであることを検知する
請求項１から請求項４のうちのいずれか１項に記載の演算装置。
【請求項６】
浮動小数点数の指数に対して演算を行い、
浮動小数点数の仮数に対して演算を行い、
前記指数に対して演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知し、
前記演算例外を検知したときに、前記仮数演算ステップの演算を停止する
ことを特徴とする演算方法。
【請求項７】
演算例外を検知した場合に、演算例外の内容に応じて予め定められた例外演算結果を選択する
請求項６記載の演算方法。
【請求項８】
コンピュータに、
浮動小数点数の指数に対して演算を行う指数演算処理、
浮動小数点数の仮数に対して演算を行う仮数演算処理、
前記指数演算処理で演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知処理、および、
前記演算例外検知処理で前記演算例外を検知したときに、前記仮数演算処理の演算を停止させる演算停止処理
を実行させるための演算プログラム。
【請求項９】
コンピュータに、
演算例外の内容に応じて予め定められた例外演算結果を選択する選択処理、および、
演算例外検知処理で演算例外を検知した場合に、前記選択処理で例外演算結果を選択させる選択指示処理を実行させる
請求項８記載の演算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理で発生する消費電力を抑える演算装置、演算方法及び演算プログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration ）は、駆動電圧低下限界が見えており、低電圧駆動が困難になってきている。また、ＬＳＩの大規模化、クロック周波数の高速化により消費電力が著しく増加してきている。そのため、消費電量を抑えるための方法が各種提案されている。
【０００３】
ＬＳＩを使用する装置としては、入力値や演算結果の値を考慮せず演算回路に演算動作を繰り返させる演算装置が存在する。
【０００４】
また、特許文献１には、除算を出来るだけ低消費電力で行う除算器が記載されている。特許文献１に記載された除算器は、除数Ｄ及び被除数Ｎが非数、ゼロ、無限大、デノーマル等、所定のパターン（以下、非演算パターンと記す。）であることを検知すると、後続の除算処理を停止させ、演算結果として規定パターンを出力する。
【０００５】
また、特許文献２には、命令を複数の処理単位に分割し、連続する命令を同時に複数処理する情報処理装置において、先行する浮動小数点命令で演算例外が生じた場合に、同時に処理されている後続の命令の実行を抑止する方法が記載されている。特許文献２に記載された方法は、まず、複数の命令を解釈して演算例外の発生を予測する。先行する命令で演算例外の発生を予測した場合、後続する命令の以降の処理を中止する。先行する命令の処理を続行した結果、演算例外の発生が通知された場合には後続する命令の以降の処理を中止し、演算例外の発生が通知されなかった場合には後続する命令の以降の処理を再開する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−２８３８３１号公報（段落００１１、図１）
【特許文献２】特開平９−２１２３６３号公報（段落００５２、００６３、００６７、図２）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
入力値や演算結果の値を考慮せず演算回路に演算動作を繰り返させる演算装置では、その演算装置が常に一定の電力を消費し、低電力を実現できないという課題があった。
【０００８】
特許文献１に記載された除算機は、入力オペランドの値を考慮して演算処理を停止させるため、消費電力を抑えることができる。しかし、演算処理を停止させるためには、入力オペランドに非数、ゼロ、無限大、デノーマルという非演算パターンが与えられた場合に限定される。そのため、入力オペランドが非演算パターンでない場合には演算結果に関わらず処理が実施されるため、この場合、消費電力を抑えることができないという課題があった。
【０００９】
また、特許文献２に記載された方法は、複数の浮動小数点演算（又は整数演算）の命令間で例外処理が発生した場合に、後続の処理もしくは例外処理（トラップルーチン）を早く実行させるための方法である。そのため、上記方法では、１つの命令で実行される浮動小数点演算内で例外処理が発生した場合に、その例外処理自身に対しては早く処理を進めることが出来ず、消費電力を抑えることができないという課題があった。
【００１０】
そこで、本発明は、浮動小数点演算で例外発生時における場合に消費電力を抑えることができる演算装置、演算方法及び演算プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明による演算装置は、浮動小数点数の指数に対して演算を行う指数演算手段と、浮動小数点数の仮数に対して演算を行う仮数演算手段と、指数演算手段が演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知手段と、演算例外検知手段が演算例外を検知したときに、仮数演算手段の演算を停止させる演算停止手段とを備えたことを特徴とする。
【００１２】
本発明による演算方法は、浮動小数点数の指数に対して演算を行い、浮動小数点数の仮数に対して演算を行い、指数に対して演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知し、演算例外を検知したときに、仮数演算ステップの演算を停止することを特徴とする。
【００１３】
本発明による演算プログラムは、コンピュータに、浮動小数点数の指数に対して演算を行う指数演算処理、浮動小数点数の仮数に対して演算を行う仮数演算処理、指数演算処理で演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知処理、および、演算例外検知処理で演算例外を検知したときに、仮数演算処理の演算を停止させる演算停止処理を実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、浮動小数点演算で例外発生時における消費電力を抑えることができる。
【図面の簡単な説明】
【００１５】
【図１】浮動小数点のデータ形式の例を示す説明図である。
【図２】一般的な演算装置の例を示すブロック図である。
【図３】本発明による演算装置の一実施形態を示すブロック図である。
【図４】演算例外発生時に仮数演算部の処理を停止させる処理の例を示すシーケンス図である。
【図５】例外演算結果の処理の例を示すシーケンス図である。
【図６】本発明における演算装置の最小構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
まずは、一般的なＩＥＥＥ（Institute of Electrical and Electronics Engineers ）規格による浮動小数点数のデータ形式、演算方法及び演算結果出力について説明する。
【００１７】
ＩＥＥＥ浮動小数点のデータ形式によれば、浮動小数点数は図１に示す倍精度データの例のように、符号、指数及び仮数に分けて表現される。上記形式で表現される２つの入力データ（オペランドと記すこともある。）に対して加減算、積算、もしくは除算等の演算を行う場合を考える。この場合、通常、２つのオペランドそれぞれの符号、指数及び仮数ごとに演算が行われる。符号、指数及び仮数ごとに分けて行われた演算結果は、再び上記データ形式の浮動小数点数にまとめられ、まとめられた浮動小数点数を最終演算結果として決定する。
【００１８】
ただし、少なくとも一方のオペランドが非数、ゼロ、無限大、デノーマル等の非演算パターンである場合、そのオペランドの内容に応じて所定のパターンを演算結果として出力する。また、２つのオペランドが非演算パターンでない場合であっても、演算の結果がオーバーフロー又はアンダーフローの場合には、それぞれ浮動小数点オーバーフロー例外又はアンダーフロー例外とし、それぞれ所定のパターンを演算結果として出力する。
【００１９】
以下の説明では、浮動小数点数が図１に示すＩＥＥＥ規格に基づく倍精度データの形式で表現されている場合を例に説明する。また、オーバーフロー例外又はアンダーフロー例外を演算例外と記すこともある。
【００２０】
一般的な演算装置の例として、図２に示す構成が考えられる。図２に例示する一般的な演算装置は、第１オペランドレジスタ１０と、第２オペランドレジスタ２０と、符号演算部３０と、指数演算部４０と、仮数演算部５０と、演算レジスタ６０と、型判定部７０と、既定値出力セレクタ８０と、演算結果最終セレクタ部９０とを備えている。
【００２１】
第１オペランドレジスタ１０及び第２オペランドレジスタ２０は、それぞれ浮動小数点数を記憶するレジスタである。以下、第１オペランドレジスタ１０に記憶される浮動小数点数を第１オペランド、第２オペランドレジスタ２０に記憶される浮動小数点数を第２オペランドと記す。例えば、第１オペランド及び第２オペランドは、演算装置が備える入力部（図示せず）から入力され、第１オペランドレジスタ１０及び第２オペランドレジスタ２０にそれぞれ記憶される。
【００２２】
符号演算部３０、指数演算部４０及び仮数演算部５０は、第１オペランドレジスタ１０及び第２オペランドレジスタ２０から、それぞれ符号１１、指数１２、仮数１３を読み取り、読み取った２つの値に対して浮動小数点演算を実行する。
【００２３】
演算レジスタ６０は、符号演算部３０、指数演算部４０及び仮数演算部５０がそれぞれ符号、指数、仮数に対して実行した演算の結果をまとめて記憶するレジスタである。演算レジスタ６０は、浮動小数点数の形式で演算結果を記憶する。演算レジスタ６０に記憶された浮動小数点数は、通常の演算処理で算出された結果であるため、通常演算結果と呼ぶことができる。
【００２４】
型判定部７０は、第１オペランド又は第２オペランドの形式が非演算パターンである場合に、それを検出し、以下に示す既定値出力セレクタ８０に選択させたパターンを演算結果として出力するよう、演算結果最終セレクタ部９０に指示する。
【００２５】
既定値出力セレクタ８０は、型判定部７０の指示に応じ、型判定部７０が第１オペランド又は第２オペランドの形式が非演算パターンであることを検知したときに、その形式に応じて予め定められたパターン（以下、例外演算結果と記す。）を選択する。例外演算結果の内容は、例えば、「ゼロ」、「無限大」、「非数」などである。
【００２６】
演算結果最終セレクタ部９０は、型判定部７０の指示に応じ、演算の最終結果として演算レジスタ６０に記憶された演算結果（すなわち、通常演算結果）を出力するか、既定値出力セレクタ８０が選択したパターン（すなわち、例外演算結果）を演算結果として出力するかを選択する。演算結果最終セレクタ部９０が選択した演算結果が、最終的な演算結果となるため、この演算結果は最終演算結果と呼ぶことができる。
【００２７】
次に、動作について説明する。符号演算部３０、指数演算部４０及び仮数演算部５０は、第１オペランドレジスタ１０及び第２オペランドレジスタ２０に記憶された浮動小数点数を、符号１１、指数１２、仮数１３ごとにそれぞれ読み取って浮動小数点演算を実行する。演算結果は演算レジスタ６０に記憶され、演算結果最終セレクタ部９０は、その演算結果を出力部（図示せず）に出力させる。一方、第１オペランドレジスタ１０及び第２オペランドレジスタ２０に記憶された浮動小数点数が非演算パターンである場合がある。型判定部７０がこれを検知すると、既定値セレクタ部８０は、非演算パターンに応じて予め定めたパターンを選択する。入力オペランドが非演算パターンであることを型判定部７０が検知した場合、演算結果最終セレクタ部９０は、既定値セレクタ部８０によって選択されたパターンを演算結果として出力する。
【００２８】
なお、浮動小数点数の演算は、仮数演算部が行う処理に最も実行時間（Ｔ数）を要する。すなわち、浮動小数点数を符号、仮数、指数ごとに演算を実行する場合、仮数演算部の演算より指数演算部の演算が早く（つまり上流で）終了する。また、仮数演算部が最もゲート量を占めることが多い。
【００２９】
以上のことを踏まえ、本発明による演算装置について以下説明する。
【００３０】
図３は、本発明による演算装置の一実施形態を示すブロック図である。本実施形態における演算装置は、第１オペランドレジスタ１０と、第２オペランドレジスタ２０と、符号演算部３０と、指数演算部４１と、仮数演算部５１と、演算レジスタ６０と、型判定部７１と、既定値出力セレクタ８０と、演算結果最終セレクタ部９０とを備える。なお、図３に示す構成部のうち、図２に示す内容と同一の構成部については、図２と同一の符号を付与し、説明を省略する。
【００３１】
指数演算部４１は、指数演算部４０と同様に第１オペランドレジスタ１０及び第２オペランドレジスタ２０から、それぞれ指数１２を読み取り、読み取った２つの値に対して浮動小数点演算を実行する。また、指数演算部４１は、例外報告通知部１００を備える。
【００３２】
例外報告通知部１００は、指数演算部４１が算出した演算結果が演算例外（すなわち、オーバーフロー例外又はアンダーフロー例外）か否か判断する。また、例外報告通知部１００は、指数演算部４１が算出した演算結果が演算例外であると判断すると、演算例外が発生した旨を型判定部７０に通知する。なお、上記説明では、例外報告通知部１００が、指数演算部４１の一部として動作する場合について説明しているが、例外報告通知部１００が指数演算部４１とは別に設けられていてもよい。
【００３３】
例外報告通知部１００が演算例外（すなわち、オーバーフロー例外及びアンダーフロー例外）を検知する方法について、具体例を用いて以下に詳述する。例えば、浮動小数点数がＩＥＥＥ倍精度形式で表現される場合、表現可能な最大の有限数である最大正規数は、１６進表示で「７ｆｅｆｆｆｆｆ  ｆｆｆｆｆｆｆｆ」と表わされる。よって、指数演算部４１が２つの指数に対して演算を実行した結果、その実行結果が、２進数で「１１１１１１１１１１０」を越えた場合にオーバーフロー例外と判定する。同様に、ＩＥＥＥ倍精度形式のアンダーフローしきい値は、１６ビット表示で「００１０００００  ００００００００」と表わされる。よって、指数演算部４１が２つの指数に対して演算を実行した結果、その実行結果が、２進数で「００００００００００１」を下回った場合にアンダーフロー例外と判定する。
【００３４】
なお、上記説明では浮動小数点数がＩＥＥＥ倍精度形式で表現される場合の演算例外を検知する方法について説明したが、浮動小数点数のデータ形式はＩＥＥＥ倍精度形式に限定されない。また、演算例外を検知する方法も、上述の方法に限定されない。
【００３５】
型判定部７１は、型判定部７０と同様に、入力オペランドの形式が非演算パターンである場合に既定値出力セレクタ８０に選択させたパターンを演算結果として出力するよう、演算結果最終セレクタ部９０に指示する。このとき、既定値出力セレクタ８０は、図２に示す構成と同様に、型判定部７１の指示に応じ、入力オペランド形式が非演算パターンであることを型判定部７１が検知したときに例外演算結果選択する。また、型判定部７１は、動作停止通知部２００を備える。
【００３６】
動作停止通知部２００は、型判定部７１が演算例外の発生を検知すると、仮数演算部５１の演算処理を停止するよう、後述の動作停止部３００に対して通知する。さらに、動作停止通知部２００は、演算例外が発生した旨の通知を例外報告通知部１００から受けた場合にも、既定値出力セレクタ８０に例外演算結果を選択させ、その選択させたパターンを演算結果として出力するよう、演算結果最終セレクタ部９０に指示する。
【００３７】
このとき、既定値出力セレクタ８０は、動作停止通知部２００の指示に応じて例外演算結果を選択する。例えば、演算例外がオーバーフローである場合、既定値出力セレクタ８０が例外演算結果として「無限」を選択してもよい。もしくは、演算例外がアンダーフローである場合、既定値出力セレクタ８０が例外演算結果として「ゼロ」を選択してもよい。ただし、演算結果がオーバーフローもしくはアンダーフローの場合に選択する例外演算結果は、上記内容に限定されない。例えば、オーバーフローもしくはアンダーフローを示す演算例外を別途選択するようにしてもよい。
【００３８】
なお、上記説明では、動作停止通知部２００が、型判定部７１の一部として動作する場合について説明しているが、動作停止通知部２００が型判定部７１とは別に設けられていてもよい。
【００３９】
仮数演算部５１は、仮数演算部５０と同様に第１オペランドレジスタ１０及び第２オペランドレジスタ２０から、それぞれ仮数１３を読み取り、読み取った２つの値に対して浮動小数点演算を実行する。また、仮数演算部５１は、動作停止部３００を備える。
【００４０】
動作停止部３００は、動作停止通知部２００から動作停止の通知を検知して、仮数演算部５１の仮数演算動作を停止させる。なお、上記説明では、動作停止部３００が、仮数演算部５１の一部として動作する場合について説明しているが、動作停止部３００が仮数演算部５１とは別に設けられていてもよい。
【００４１】
本実施形態では、このように指数演算部４１が指数に対して実行した演算結果がオーバーフロー又はアンダーフローの場合に仮数演算部５１の演算を停止させる。これは、例外報告通知部１００がオーバーフロー例外又はアンダーフロー例外を検知した場合、仮数演算部５１が仮数に対して実行した演算結果に依らず、演算結果はオーバーフロー又はアンダーフローとなるためである。すなわち、指数演算部４１が指数に対して実行した演算結果がオーバーフロー又はアンダーフローの場合に仮数演算部５１の演算を停止させることで、仮数演算部５１の消費電力を抑え、効果的に低電力化を実現できる。
【００４２】
符号演算部３０と、指数演算部４１と、仮数演算部５１と、型判定部７１と、既定値出力セレクタ８０と、演算結果最終セレクタ部９０と、例外報告通知部１００と、動作停止通知部２００と、動作停止部３００とは、例えば、プログラム（演算プログラム）に従って動作する演算装置のＣＰＵによって実現される。例えば、プログラムは、演算装置の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み取り、プログラムに従って符号演算部３０、指数演算部４１、仮数演算部５１、型判定部７１、既定値出力セレクタ８０、演算結果最終セレクタ部９０、例外報告通知部１００、動作停止通知部２００及び動作停止部３００として動作してもよい。また、符号演算部３０、例外報告通知部１００を備えた指数演算部４１、動作停止通知部２００を備えた型判定部７１、動作停止部３００を備えた仮数演算部５１、既定値出力セレクタ８０、演算結果最終セレクタ部９０がそれぞれ別々のハードウェアであってもよい。
【００４３】
次に動作について説明する。図４は、演算例外発生時に仮数演算部５１の処理を停止させる処理の例を示すシーケンス図である。例えば、演算装置の使用者の指示により、２つのオペランドが第１オペランドレジスタ１０及び第２オペランドレジスタ２０に記憶される（ステップＳ１０１）と、符号演算部３０、指数演算部４１及び仮数演算部５１は、第１オペランドレジスタ１０及び第２オペランドレジスタ２０からそれぞれ符号１１、指数１２及び仮数１３を読み取る（ステップＳ１０２）。指数演算部４１は、第１オペランドレジスタ１０及び第２オペランドレジスタ２０からそれぞれ読み取った指数１２に対して指数演算を行う（ステップＳ１０３）。例外報告通知部１００は、指数演算部４１が算出した演算結果が演算例外であるか否か判断する（ステップＳ１０４）。
【００４４】
演算結果が演算例外であると判断した場合（ステップＳ１０４におけるＹＥＳ）、例外報告通知部１００は、型判定部７１に対して演算例外が発生した旨を通知する（ステップＳ１０５）。型判定部７１は、演算例外が発生した旨を検知する（ステップＳ１０６）と、動作停止通知部２００は、仮数演算部５１の演算処理を停止させるよう動作停止部３００に対して動作停止の通知を行う（ステップＳ１０７）。動作停止部３００が動作停止通知部２００から動作停止の通知を検知すると、仮数演算部５１は自身の仮数演算動作を停止する（ステップＳ１０８）。なお、指数演算部４１が算出した演算結果が演算例外であると例外報告通知部１００が判断しなかった場合は（ステップＳ１０４におけるＮＯ）、ステップＳ１０５以降の処理は行わない。
【００４５】
図５は、例外演算結果の処理の例を示すシーケンス図である。図４に示すステップＳ１０６において、型判定部７１が、演算例外が発生した旨を検知すると（ステップＳ１０６）、型判定部７１は、例えば、仮数演算部５１が動作を停止しなかった場合に演算結果を出力するタイミング（すなわち、通常演算完了時）に合わせて既定値出力セレクタ部８０に演算例外が発生した旨を通知して、例外演算結果を選択させる（ステップＳ２０１）。既定値出力セレクタ部８０は、演算例外が発生した旨を検知すると、例外演算結果を選択（ステップＳ２０２）し、演算結果最終セレクタ部９０に例外演算結果を通知する（ステップＳ２０３）。また、型判定部７１は、例えば、既定値出力セレクタ部８０が例外演算結果を演算結果最終セレクタ部９０に通知するタイミングで、演算例外が発生した旨を演算結果最終セレクタ部９０に通知する（ステップＳ２０４）。演算結果最終セレクタ部９０は、型判定部７１が通知した演算例外の発生と既定値出力セレクタ部８０が通知した例外演算結果とを検知して、例外演算結果を最終演算結果として選択する（ステップＳ２０５）。そして、演算結果最終セレクタ部９０は、その最終演算結果を出力部（図示せず）に出力させる（ステップＳ２０６）。このように、演算例外が発生した場合には、仮数演算部５１の処理を停止させたまま最終演算結果として例外演算結果を選択し、また例外演算結果を出力することができる。
【００４６】
本発明によれば、まず、指数演算部４１が浮動小数点数の指数に対して演算を行い、仮数演算部５１が浮動小数点数の仮数に対して演算を行う。指数演算部４１が演算を実行したときに、例外報告通知部１００がその演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知すると、型判定部７１及び動作停止通知部２００を介して、動作停止部３００が仮数演算部５１の演算を停止させる。そのため、浮動小数点演算でアンダーフロー例外及びオーバーフロー例外が発生した場合に消費電力を抑えることができる。
【００４７】
すなわち、例外報告通知部１００がオーバーフロー例外又はアンダーフロー例外を検知した場合、仮数演算部５１が仮数に対して実行した演算結果に依らず、演算結果はオーバーフロー又はアンダーフローとなる。そのため、指数演算部４１が指数に対して実行した演算結果がオーバーフロー又はアンダーフローの場合に仮数演算部５１の演算を停止させることで、仮数演算部５１の消費電力を抑え、効果的に低電力化を実現できる。
【００４８】
また、例外報告通知部１００が演算例外を検知した場合に、型判定部７１及び動作停止通知部２００を介して、既定値出力セレクタ部８０が演算例外の内容に応じて予め定められた例外演算結果を選択する。そのため、上記効果に加え、演算例外が発生した場合には、仮数演算部５１の処理を停止させたまま最終演算結果として例外演算結果を選択することができる。
【００４９】
図６は、本発明における演算装置の最小構成を示すブロック図である。本発明による演算装置は、浮動小数点数（例えば、ＩＥＥＥ規格に基づく倍精度データ）の指数（例えば、指数１２）に対して演算を行う指数演算手段８１（例えば、指数演算部４１）と、浮動小数点数の仮数（例えば、仮数１３）に対して演算を行う仮数演算手段８２（例えば、仮数演算部５１）と、指数演算手段８１が演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知手段８３（例えば、例外報告通知部１００）と、演算例外検知手段８３が演算例外を検知したときに、仮数演算手段８２の演算を停止させる演算停止手段８４（例えば、型判定部７１、動作停止通知部２００）とを備えている。
【００５０】
そのような構成により、浮動小数点演算で例外発生時における消費電力を抑えることができる。
【００５１】
すなわち、演算例外検知手段８３がオーバーフロー例外又はアンダーフロー例外を検知した場合、仮数演算手段８２が仮数に対して実行した演算結果に依らず、演算結果はオーバーフロー又はアンダーフローとなる。そのため、指数演算手段８１が指数に対して実行した演算結果が演算例外であるオーバーフロー又はアンダーフローの場合に仮数演算手段８２の演算を停止させることで、仮数演算手段８２の消費電力を抑え、効果的に低電力化を実現できる。
【００５２】
また、上記実施形態には、演算例外の内容に応じて予め定められた例外演算結果を選択する選択手段（例えば、既定値出力セレクタ部８０）と、演算例外検知手段８３が演算例外を検知した場合に、選択手段に例外演算結果を選択させる選択指示手段（例えば、型判定部７１）とを備えた構成が開示されている。
【００５３】
このような構成により、演算例外が発生した場合には、仮数演算部５１の処理を停止させたまま最終演算結果として例外演算結果を選択することができる。
【００５４】
また、上記実施形態には、演算例外検知手段８３が演算例外を検知しなかった場合における演算結果である通常演算結果と例外演算結果のいずれを最終演算結果とするか選択する最終演算結果選択手段（例えば、演算結果最終セレクタ部９０）を備え、最終演算結果選択手段が、演算例外検知手段８３が演算例外を検知した場合に、例外演算結果を最終演算結果として選択する構成が開示されている。
【００５５】
このような構成により、演算例外が発生した場合には、仮数演算部５１の処理を停止させたまま最終演算結果として例外演算結果を出力することができる。
【００５６】
また、上記実施形態には、選択指示手段が、演算例外検知手段８３が演算例外を検知した場合、演算例外検知手段８３が演算例外を検知しなかった場合における仮数演算手段８２の演算完了のタイミングである通常演算完了時に例外演算結果を選択手段に選択させ（例えば、ステップＳ２０１において、型判定部７１が既定値出力セレクタ部８０に例外演算結果を選択させる）、最終演算結果選択手段が、演算例外検知手段８３が演算例外を検知した場合、通常演算完了時に例外演算結果を最終演算結果として選択する（例えば、ステップＳ２０５において、演算結果最終セレクタ部９０が例外演算結果を最終演算結果とする）構成が開示されている。
【００５７】
また、演算例外検知手段８３が、指数演算手段が演算した演算結果が、予め定めた第１の閾値（例えば、ＩＥＥＥ倍精度形式表現可能な最大の有限数における指数の値）を超えた場合にオーバーフローであることを検知し、予め定めた第２の閾値（例えば、ＩＥＥＥ倍精度形式のアンダーフローしきい値における指数の値）を下回った場合にアンダーフローであることを検知してもよい。
【産業上の利用可能性】
【００５８】
本発明は、演算処理で発生する消費電力を抑える演算装置に好適に適用される。
【符号の説明】
【００５９】
１０  第１オペランドレジスタ
１１、６１  符号
１２、６２  指数
１３、６３  仮数
２０  第２オペランドレジスタ
３０  符号演算部
４０、４１  指数演算部
５０、５１  仮数演算部
６０  演算レジスタ
７０、７１  型判定部
８０  既定値出力セレクタ部
９０  演算結果最終セレクタ部
１００  例外報告通知部
２００  動作停止通知部
３００  動作停止部
【図１】
2010160644.tif 000003
【図２】
2010160644.tif 000004
【図３】
2010160644.tif 000005
【図４】
2010160644.tif 000006
【図５】
2010160644.tif 000007
【図６】
2010160644.tif 000008