説明

演算装置、演算方法及び演算プログラム

【課題】浮動小数点演算でアンダーフロー例外及びオーバーフロー例外が発生した場合に消費電力を抑えることができる演算装置を提供する。
【解決手段】指数演算手段81は、浮動小数点数の指数に対して演算を行う。仮数演算手段82は、浮動小数点数の仮数に対して演算を行う。演算例外検知手段83は、指数演算手段81が演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する。演算停止手段84は、演算例外検知手段83が演算例外を検知したときに、仮数演算手段82の演算を停止させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算処理で発生する消費電力を抑える演算装置、演算方法及び演算プログラムに関する。
【背景技術】
【0002】
LSI(Large Scale Integration )は、駆動電圧低下限界が見えており、低電圧駆動が困難になってきている。また、LSIの大規模化、クロック周波数の高速化により消費電力が著しく増加してきている。そのため、消費電量を抑えるための方法が各種提案されている。
【0003】
LSIを使用する装置としては、入力値や演算結果の値を考慮せず演算回路に演算動作を繰り返させる演算装置が存在する。
【0004】
また、特許文献1には、除算を出来るだけ低消費電力で行う除算器が記載されている。特許文献1に記載された除算器は、除数D及び被除数Nが非数、ゼロ、無限大、デノーマル等、所定のパターン(以下、非演算パターンと記す。)であることを検知すると、後続の除算処理を停止させ、演算結果として規定パターンを出力する。
【0005】
また、特許文献2には、命令を複数の処理単位に分割し、連続する命令を同時に複数処理する情報処理装置において、先行する浮動小数点命令で演算例外が生じた場合に、同時に処理されている後続の命令の実行を抑止する方法が記載されている。特許文献2に記載された方法は、まず、複数の命令を解釈して演算例外の発生を予測する。先行する命令で演算例外の発生を予測した場合、後続する命令の以降の処理を中止する。先行する命令の処理を続行した結果、演算例外の発生が通知された場合には後続する命令の以降の処理を中止し、演算例外の発生が通知されなかった場合には後続する命令の以降の処理を再開する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平4−283831号公報(段落0011、図1)
【特許文献2】特開平9−212363号公報(段落0052、0063、0067、図2)
【発明の概要】
【発明が解決しようとする課題】
【0007】
入力値や演算結果の値を考慮せず演算回路に演算動作を繰り返させる演算装置では、その演算装置が常に一定の電力を消費し、低電力を実現できないという課題があった。
【0008】
特許文献1に記載された除算機は、入力オペランドの値を考慮して演算処理を停止させるため、消費電力を抑えることができる。しかし、演算処理を停止させるためには、入力オペランドに非数、ゼロ、無限大、デノーマルという非演算パターンが与えられた場合に限定される。そのため、入力オペランドが非演算パターンでない場合には演算結果に関わらず処理が実施されるため、この場合、消費電力を抑えることができないという課題があった。
【0009】
また、特許文献2に記載された方法は、複数の浮動小数点演算(又は整数演算)の命令間で例外処理が発生した場合に、後続の処理もしくは例外処理(トラップルーチン)を早く実行させるための方法である。そのため、上記方法では、1つの命令で実行される浮動小数点演算内で例外処理が発生した場合に、その例外処理自身に対しては早く処理を進めることが出来ず、消費電力を抑えることができないという課題があった。
【0010】
そこで、本発明は、浮動小数点演算で例外発生時における場合に消費電力を抑えることができる演算装置、演算方法及び演算プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明による演算装置は、浮動小数点数の指数に対して演算を行う指数演算手段と、浮動小数点数の仮数に対して演算を行う仮数演算手段と、指数演算手段が演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知手段と、演算例外検知手段が演算例外を検知したときに、仮数演算手段の演算を停止させる演算停止手段とを備えたことを特徴とする。
【0012】
本発明による演算方法は、浮動小数点数の指数に対して演算を行い、浮動小数点数の仮数に対して演算を行い、指数に対して演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知し、演算例外を検知したときに、仮数演算ステップの演算を停止することを特徴とする。
【0013】
本発明による演算プログラムは、コンピュータに、浮動小数点数の指数に対して演算を行う指数演算処理、浮動小数点数の仮数に対して演算を行う仮数演算処理、指数演算処理で演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知処理、および、演算例外検知処理で演算例外を検知したときに、仮数演算処理の演算を停止させる演算停止処理を実行させることを特徴とする。
【発明の効果】
【0014】
本発明によれば、浮動小数点演算で例外発生時における消費電力を抑えることができる。
【図面の簡単な説明】
【0015】
【図1】浮動小数点のデータ形式の例を示す説明図である。
【図2】一般的な演算装置の例を示すブロック図である。
【図3】本発明による演算装置の一実施形態を示すブロック図である。
【図4】演算例外発生時に仮数演算部の処理を停止させる処理の例を示すシーケンス図である。
【図5】例外演算結果の処理の例を示すシーケンス図である。
【図6】本発明における演算装置の最小構成を示すブロック図である。
【発明を実施するための形態】
【0016】
まずは、一般的なIEEE(Institute of Electrical and Electronics Engineers )規格による浮動小数点数のデータ形式、演算方法及び演算結果出力について説明する。
【0017】
IEEE浮動小数点のデータ形式によれば、浮動小数点数は図1に示す倍精度データの例のように、符号、指数及び仮数に分けて表現される。上記形式で表現される2つの入力データ(オペランドと記すこともある。)に対して加減算、積算、もしくは除算等の演算を行う場合を考える。この場合、通常、2つのオペランドそれぞれの符号、指数及び仮数ごとに演算が行われる。符号、指数及び仮数ごとに分けて行われた演算結果は、再び上記データ形式の浮動小数点数にまとめられ、まとめられた浮動小数点数を最終演算結果として決定する。
【0018】
ただし、少なくとも一方のオペランドが非数、ゼロ、無限大、デノーマル等の非演算パターンである場合、そのオペランドの内容に応じて所定のパターンを演算結果として出力する。また、2つのオペランドが非演算パターンでない場合であっても、演算の結果がオーバーフロー又はアンダーフローの場合には、それぞれ浮動小数点オーバーフロー例外又はアンダーフロー例外とし、それぞれ所定のパターンを演算結果として出力する。
【0019】
以下の説明では、浮動小数点数が図1に示すIEEE規格に基づく倍精度データの形式で表現されている場合を例に説明する。また、オーバーフロー例外又はアンダーフロー例外を演算例外と記すこともある。
【0020】
一般的な演算装置の例として、図2に示す構成が考えられる。図2に例示する一般的な演算装置は、第1オペランドレジスタ10と、第2オペランドレジスタ20と、符号演算部30と、指数演算部40と、仮数演算部50と、演算レジスタ60と、型判定部70と、既定値出力セレクタ80と、演算結果最終セレクタ部90とを備えている。
【0021】
第1オペランドレジスタ10及び第2オペランドレジスタ20は、それぞれ浮動小数点数を記憶するレジスタである。以下、第1オペランドレジスタ10に記憶される浮動小数点数を第1オペランド、第2オペランドレジスタ20に記憶される浮動小数点数を第2オペランドと記す。例えば、第1オペランド及び第2オペランドは、演算装置が備える入力部(図示せず)から入力され、第1オペランドレジスタ10及び第2オペランドレジスタ20にそれぞれ記憶される。
【0022】
符号演算部30、指数演算部40及び仮数演算部50は、第1オペランドレジスタ10及び第2オペランドレジスタ20から、それぞれ符号11、指数12、仮数13を読み取り、読み取った2つの値に対して浮動小数点演算を実行する。
【0023】
演算レジスタ60は、符号演算部30、指数演算部40及び仮数演算部50がそれぞれ符号、指数、仮数に対して実行した演算の結果をまとめて記憶するレジスタである。演算レジスタ60は、浮動小数点数の形式で演算結果を記憶する。演算レジスタ60に記憶された浮動小数点数は、通常の演算処理で算出された結果であるため、通常演算結果と呼ぶことができる。
【0024】
型判定部70は、第1オペランド又は第2オペランドの形式が非演算パターンである場合に、それを検出し、以下に示す既定値出力セレクタ80に選択させたパターンを演算結果として出力するよう、演算結果最終セレクタ部90に指示する。
【0025】
既定値出力セレクタ80は、型判定部70の指示に応じ、型判定部70が第1オペランド又は第2オペランドの形式が非演算パターンであることを検知したときに、その形式に応じて予め定められたパターン(以下、例外演算結果と記す。)を選択する。例外演算結果の内容は、例えば、「ゼロ」、「無限大」、「非数」などである。
【0026】
演算結果最終セレクタ部90は、型判定部70の指示に応じ、演算の最終結果として演算レジスタ60に記憶された演算結果(すなわち、通常演算結果)を出力するか、既定値出力セレクタ80が選択したパターン(すなわち、例外演算結果)を演算結果として出力するかを選択する。演算結果最終セレクタ部90が選択した演算結果が、最終的な演算結果となるため、この演算結果は最終演算結果と呼ぶことができる。
【0027】
次に、動作について説明する。符号演算部30、指数演算部40及び仮数演算部50は、第1オペランドレジスタ10及び第2オペランドレジスタ20に記憶された浮動小数点数を、符号11、指数12、仮数13ごとにそれぞれ読み取って浮動小数点演算を実行する。演算結果は演算レジスタ60に記憶され、演算結果最終セレクタ部90は、その演算結果を出力部(図示せず)に出力させる。一方、第1オペランドレジスタ10及び第2オペランドレジスタ20に記憶された浮動小数点数が非演算パターンである場合がある。型判定部70がこれを検知すると、既定値セレクタ部80は、非演算パターンに応じて予め定めたパターンを選択する。入力オペランドが非演算パターンであることを型判定部70が検知した場合、演算結果最終セレクタ部90は、既定値セレクタ部80によって選択されたパターンを演算結果として出力する。
【0028】
なお、浮動小数点数の演算は、仮数演算部が行う処理に最も実行時間(T数)を要する。すなわち、浮動小数点数を符号、仮数、指数ごとに演算を実行する場合、仮数演算部の演算より指数演算部の演算が早く(つまり上流で)終了する。また、仮数演算部が最もゲート量を占めることが多い。
【0029】
以上のことを踏まえ、本発明による演算装置について以下説明する。
【0030】
図3は、本発明による演算装置の一実施形態を示すブロック図である。本実施形態における演算装置は、第1オペランドレジスタ10と、第2オペランドレジスタ20と、符号演算部30と、指数演算部41と、仮数演算部51と、演算レジスタ60と、型判定部71と、既定値出力セレクタ80と、演算結果最終セレクタ部90とを備える。なお、図3に示す構成部のうち、図2に示す内容と同一の構成部については、図2と同一の符号を付与し、説明を省略する。
【0031】
指数演算部41は、指数演算部40と同様に第1オペランドレジスタ10及び第2オペランドレジスタ20から、それぞれ指数12を読み取り、読み取った2つの値に対して浮動小数点演算を実行する。また、指数演算部41は、例外報告通知部100を備える。
【0032】
例外報告通知部100は、指数演算部41が算出した演算結果が演算例外(すなわち、オーバーフロー例外又はアンダーフロー例外)か否か判断する。また、例外報告通知部100は、指数演算部41が算出した演算結果が演算例外であると判断すると、演算例外が発生した旨を型判定部70に通知する。なお、上記説明では、例外報告通知部100が、指数演算部41の一部として動作する場合について説明しているが、例外報告通知部100が指数演算部41とは別に設けられていてもよい。
【0033】
例外報告通知部100が演算例外(すなわち、オーバーフロー例外及びアンダーフロー例外)を検知する方法について、具体例を用いて以下に詳述する。例えば、浮動小数点数がIEEE倍精度形式で表現される場合、表現可能な最大の有限数である最大正規数は、16進表示で「7fefffff ffffffff」と表わされる。よって、指数演算部41が2つの指数に対して演算を実行した結果、その実行結果が、2進数で「11111111110」を越えた場合にオーバーフロー例外と判定する。同様に、IEEE倍精度形式のアンダーフローしきい値は、16ビット表示で「00100000 00000000」と表わされる。よって、指数演算部41が2つの指数に対して演算を実行した結果、その実行結果が、2進数で「00000000001」を下回った場合にアンダーフロー例外と判定する。
【0034】
なお、上記説明では浮動小数点数がIEEE倍精度形式で表現される場合の演算例外を検知する方法について説明したが、浮動小数点数のデータ形式はIEEE倍精度形式に限定されない。また、演算例外を検知する方法も、上述の方法に限定されない。
【0035】
型判定部71は、型判定部70と同様に、入力オペランドの形式が非演算パターンである場合に既定値出力セレクタ80に選択させたパターンを演算結果として出力するよう、演算結果最終セレクタ部90に指示する。このとき、既定値出力セレクタ80は、図2に示す構成と同様に、型判定部71の指示に応じ、入力オペランド形式が非演算パターンであることを型判定部71が検知したときに例外演算結果選択する。また、型判定部71は、動作停止通知部200を備える。
【0036】
動作停止通知部200は、型判定部71が演算例外の発生を検知すると、仮数演算部51の演算処理を停止するよう、後述の動作停止部300に対して通知する。さらに、動作停止通知部200は、演算例外が発生した旨の通知を例外報告通知部100から受けた場合にも、既定値出力セレクタ80に例外演算結果を選択させ、その選択させたパターンを演算結果として出力するよう、演算結果最終セレクタ部90に指示する。
【0037】
このとき、既定値出力セレクタ80は、動作停止通知部200の指示に応じて例外演算結果を選択する。例えば、演算例外がオーバーフローである場合、既定値出力セレクタ80が例外演算結果として「無限」を選択してもよい。もしくは、演算例外がアンダーフローである場合、既定値出力セレクタ80が例外演算結果として「ゼロ」を選択してもよい。ただし、演算結果がオーバーフローもしくはアンダーフローの場合に選択する例外演算結果は、上記内容に限定されない。例えば、オーバーフローもしくはアンダーフローを示す演算例外を別途選択するようにしてもよい。
【0038】
なお、上記説明では、動作停止通知部200が、型判定部71の一部として動作する場合について説明しているが、動作停止通知部200が型判定部71とは別に設けられていてもよい。
【0039】
仮数演算部51は、仮数演算部50と同様に第1オペランドレジスタ10及び第2オペランドレジスタ20から、それぞれ仮数13を読み取り、読み取った2つの値に対して浮動小数点演算を実行する。また、仮数演算部51は、動作停止部300を備える。
【0040】
動作停止部300は、動作停止通知部200から動作停止の通知を検知して、仮数演算部51の仮数演算動作を停止させる。なお、上記説明では、動作停止部300が、仮数演算部51の一部として動作する場合について説明しているが、動作停止部300が仮数演算部51とは別に設けられていてもよい。
【0041】
本実施形態では、このように指数演算部41が指数に対して実行した演算結果がオーバーフロー又はアンダーフローの場合に仮数演算部51の演算を停止させる。これは、例外報告通知部100がオーバーフロー例外又はアンダーフロー例外を検知した場合、仮数演算部51が仮数に対して実行した演算結果に依らず、演算結果はオーバーフロー又はアンダーフローとなるためである。すなわち、指数演算部41が指数に対して実行した演算結果がオーバーフロー又はアンダーフローの場合に仮数演算部51の演算を停止させることで、仮数演算部51の消費電力を抑え、効果的に低電力化を実現できる。
【0042】
符号演算部30と、指数演算部41と、仮数演算部51と、型判定部71と、既定値出力セレクタ80と、演算結果最終セレクタ部90と、例外報告通知部100と、動作停止通知部200と、動作停止部300とは、例えば、プログラム(演算プログラム)に従って動作する演算装置のCPUによって実現される。例えば、プログラムは、演算装置の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み取り、プログラムに従って符号演算部30、指数演算部41、仮数演算部51、型判定部71、既定値出力セレクタ80、演算結果最終セレクタ部90、例外報告通知部100、動作停止通知部200及び動作停止部300として動作してもよい。また、符号演算部30、例外報告通知部100を備えた指数演算部41、動作停止通知部200を備えた型判定部71、動作停止部300を備えた仮数演算部51、既定値出力セレクタ80、演算結果最終セレクタ部90がそれぞれ別々のハードウェアであってもよい。
【0043】
次に動作について説明する。図4は、演算例外発生時に仮数演算部51の処理を停止させる処理の例を示すシーケンス図である。例えば、演算装置の使用者の指示により、2つのオペランドが第1オペランドレジスタ10及び第2オペランドレジスタ20に記憶される(ステップS101)と、符号演算部30、指数演算部41及び仮数演算部51は、第1オペランドレジスタ10及び第2オペランドレジスタ20からそれぞれ符号11、指数12及び仮数13を読み取る(ステップS102)。指数演算部41は、第1オペランドレジスタ10及び第2オペランドレジスタ20からそれぞれ読み取った指数12に対して指数演算を行う(ステップS103)。例外報告通知部100は、指数演算部41が算出した演算結果が演算例外であるか否か判断する(ステップS104)。
【0044】
演算結果が演算例外であると判断した場合(ステップS104におけるYES)、例外報告通知部100は、型判定部71に対して演算例外が発生した旨を通知する(ステップS105)。型判定部71は、演算例外が発生した旨を検知する(ステップS106)と、動作停止通知部200は、仮数演算部51の演算処理を停止させるよう動作停止部300に対して動作停止の通知を行う(ステップS107)。動作停止部300が動作停止通知部200から動作停止の通知を検知すると、仮数演算部51は自身の仮数演算動作を停止する(ステップS108)。なお、指数演算部41が算出した演算結果が演算例外であると例外報告通知部100が判断しなかった場合は(ステップS104におけるNO)、ステップS105以降の処理は行わない。
【0045】
図5は、例外演算結果の処理の例を示すシーケンス図である。図4に示すステップS106において、型判定部71が、演算例外が発生した旨を検知すると(ステップS106)、型判定部71は、例えば、仮数演算部51が動作を停止しなかった場合に演算結果を出力するタイミング(すなわち、通常演算完了時)に合わせて既定値出力セレクタ部80に演算例外が発生した旨を通知して、例外演算結果を選択させる(ステップS201)。既定値出力セレクタ部80は、演算例外が発生した旨を検知すると、例外演算結果を選択(ステップS202)し、演算結果最終セレクタ部90に例外演算結果を通知する(ステップS203)。また、型判定部71は、例えば、既定値出力セレクタ部80が例外演算結果を演算結果最終セレクタ部90に通知するタイミングで、演算例外が発生した旨を演算結果最終セレクタ部90に通知する(ステップS204)。演算結果最終セレクタ部90は、型判定部71が通知した演算例外の発生と既定値出力セレクタ部80が通知した例外演算結果とを検知して、例外演算結果を最終演算結果として選択する(ステップS205)。そして、演算結果最終セレクタ部90は、その最終演算結果を出力部(図示せず)に出力させる(ステップS206)。このように、演算例外が発生した場合には、仮数演算部51の処理を停止させたまま最終演算結果として例外演算結果を選択し、また例外演算結果を出力することができる。
【0046】
本発明によれば、まず、指数演算部41が浮動小数点数の指数に対して演算を行い、仮数演算部51が浮動小数点数の仮数に対して演算を行う。指数演算部41が演算を実行したときに、例外報告通知部100がその演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知すると、型判定部71及び動作停止通知部200を介して、動作停止部300が仮数演算部51の演算を停止させる。そのため、浮動小数点演算でアンダーフロー例外及びオーバーフロー例外が発生した場合に消費電力を抑えることができる。
【0047】
すなわち、例外報告通知部100がオーバーフロー例外又はアンダーフロー例外を検知した場合、仮数演算部51が仮数に対して実行した演算結果に依らず、演算結果はオーバーフロー又はアンダーフローとなる。そのため、指数演算部41が指数に対して実行した演算結果がオーバーフロー又はアンダーフローの場合に仮数演算部51の演算を停止させることで、仮数演算部51の消費電力を抑え、効果的に低電力化を実現できる。
【0048】
また、例外報告通知部100が演算例外を検知した場合に、型判定部71及び動作停止通知部200を介して、既定値出力セレクタ部80が演算例外の内容に応じて予め定められた例外演算結果を選択する。そのため、上記効果に加え、演算例外が発生した場合には、仮数演算部51の処理を停止させたまま最終演算結果として例外演算結果を選択することができる。
【0049】
図6は、本発明における演算装置の最小構成を示すブロック図である。本発明による演算装置は、浮動小数点数(例えば、IEEE規格に基づく倍精度データ)の指数(例えば、指数12)に対して演算を行う指数演算手段81(例えば、指数演算部41)と、浮動小数点数の仮数(例えば、仮数13)に対して演算を行う仮数演算手段82(例えば、仮数演算部51)と、指数演算手段81が演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知手段83(例えば、例外報告通知部100)と、演算例外検知手段83が演算例外を検知したときに、仮数演算手段82の演算を停止させる演算停止手段84(例えば、型判定部71、動作停止通知部200)とを備えている。
【0050】
そのような構成により、浮動小数点演算で例外発生時における消費電力を抑えることができる。
【0051】
すなわち、演算例外検知手段83がオーバーフロー例外又はアンダーフロー例外を検知した場合、仮数演算手段82が仮数に対して実行した演算結果に依らず、演算結果はオーバーフロー又はアンダーフローとなる。そのため、指数演算手段81が指数に対して実行した演算結果が演算例外であるオーバーフロー又はアンダーフローの場合に仮数演算手段82の演算を停止させることで、仮数演算手段82の消費電力を抑え、効果的に低電力化を実現できる。
【0052】
また、上記実施形態には、演算例外の内容に応じて予め定められた例外演算結果を選択する選択手段(例えば、既定値出力セレクタ部80)と、演算例外検知手段83が演算例外を検知した場合に、選択手段に例外演算結果を選択させる選択指示手段(例えば、型判定部71)とを備えた構成が開示されている。
【0053】
このような構成により、演算例外が発生した場合には、仮数演算部51の処理を停止させたまま最終演算結果として例外演算結果を選択することができる。
【0054】
また、上記実施形態には、演算例外検知手段83が演算例外を検知しなかった場合における演算結果である通常演算結果と例外演算結果のいずれを最終演算結果とするか選択する最終演算結果選択手段(例えば、演算結果最終セレクタ部90)を備え、最終演算結果選択手段が、演算例外検知手段83が演算例外を検知した場合に、例外演算結果を最終演算結果として選択する構成が開示されている。
【0055】
このような構成により、演算例外が発生した場合には、仮数演算部51の処理を停止させたまま最終演算結果として例外演算結果を出力することができる。
【0056】
また、上記実施形態には、選択指示手段が、演算例外検知手段83が演算例外を検知した場合、演算例外検知手段83が演算例外を検知しなかった場合における仮数演算手段82の演算完了のタイミングである通常演算完了時に例外演算結果を選択手段に選択させ(例えば、ステップS201において、型判定部71が既定値出力セレクタ部80に例外演算結果を選択させる)、最終演算結果選択手段が、演算例外検知手段83が演算例外を検知した場合、通常演算完了時に例外演算結果を最終演算結果として選択する(例えば、ステップS205において、演算結果最終セレクタ部90が例外演算結果を最終演算結果とする)構成が開示されている。
【0057】
また、演算例外検知手段83が、指数演算手段が演算した演算結果が、予め定めた第1の閾値(例えば、IEEE倍精度形式表現可能な最大の有限数における指数の値)を超えた場合にオーバーフローであることを検知し、予め定めた第2の閾値(例えば、IEEE倍精度形式のアンダーフローしきい値における指数の値)を下回った場合にアンダーフローであることを検知してもよい。
【産業上の利用可能性】
【0058】
本発明は、演算処理で発生する消費電力を抑える演算装置に好適に適用される。
【符号の説明】
【0059】
10 第1オペランドレジスタ
11、61 符号
12、62 指数
13、63 仮数
20 第2オペランドレジスタ
30 符号演算部
40、41 指数演算部
50、51 仮数演算部
60 演算レジスタ
70、71 型判定部
80 既定値出力セレクタ部
90 演算結果最終セレクタ部
100 例外報告通知部
200 動作停止通知部
300 動作停止部

【特許請求の範囲】
【請求項1】
浮動小数点数の指数に対して演算を行う指数演算手段と、
浮動小数点数の仮数に対して演算を行う仮数演算手段と、
前記指数演算手段が演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知手段と、
前記演算例外検知手段が前記演算例外を検知したときに、前記仮数演算手段の演算を停止させる演算停止手段とを備えた
ことを特徴とする演算装置。
【請求項2】
演算例外の内容に応じて予め定められた例外演算結果を選択する選択手段と、
演算例外検知手段が演算例外を検知した場合に、前記選択手段に例外演算結果を選択させる選択指示手段とを備えた
請求項1記載の演算装置。
【請求項3】
演算例外検知手段が演算例外を検知しなかった場合における演算結果である通常演算結果と例外演算結果のいずれを最終演算結果とするか選択する最終演算結果選択手段を備え、
前記最終演算結果選択手段は、演算例外検知手段が演算例外を検知した場合に、例外演算結果を最終演算結果として選択する
請求項2記載の演算装置。
【請求項4】
選択指示手段は、演算例外検知手段が演算例外を検知した場合、演算例外検知手段が演算例外を検知しなかった場合における仮数演算手段の演算完了のタイミングである通常演算完了時に例外演算結果を選択手段に選択させ、
最終演算結果選択手段は、演算例外検知手段が演算例外を検知した場合、前記通常演算完了時に例外演算結果を最終演算結果として選択する
請求項3記載の演算装置。
【請求項5】
演算例外検知手段は、指数演算手段が演算した演算結果が、予め定めた第1の閾値を超えた場合にオーバーフローであることを検知し、予め定めた第2の閾値を下回った場合にアンダーフローであることを検知する
請求項1から請求項4のうちのいずれか1項に記載の演算装置。
【請求項6】
浮動小数点数の指数に対して演算を行い、
浮動小数点数の仮数に対して演算を行い、
前記指数に対して演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知し、
前記演算例外を検知したときに、前記仮数演算ステップの演算を停止する
ことを特徴とする演算方法。
【請求項7】
演算例外を検知した場合に、演算例外の内容に応じて予め定められた例外演算結果を選択する
請求項6記載の演算方法。
【請求項8】
コンピュータに、
浮動小数点数の指数に対して演算を行う指数演算処理、
浮動小数点数の仮数に対して演算を行う仮数演算処理、
前記指数演算処理で演算を実行したときに、その演算結果がオーバーフロー又はアンダーフローを示す演算例外であることを検知する演算例外検知処理、および、
前記演算例外検知処理で前記演算例外を検知したときに、前記仮数演算処理の演算を停止させる演算停止処理
を実行させるための演算プログラム。
【請求項9】
コンピュータに、
演算例外の内容に応じて予め定められた例外演算結果を選択する選択処理、および、
演算例外検知処理で演算例外を検知した場合に、前記選択処理で例外演算結果を選択させる選択指示処理を実行させる
請求項8記載の演算プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−160644(P2010−160644A)
【公開日】平成22年7月22日(2010.7.22)
【国際特許分類】
【出願番号】特願2009−1849(P2009−1849)
【出願日】平成21年1月7日(2009.1.7)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】