JP2007188424A - 計算装置、計算方法、および、計算プログラム - Google Patents

計算装置、計算方法、および、計算プログラム Download PDF

Info

Publication number
JP2007188424A
JP2007188424A JP2006007675A JP2006007675A JP2007188424A JP 2007188424 A JP2007188424 A JP 2007188424A JP 2006007675 A JP2006007675 A JP 2006007675A JP 2006007675 A JP2006007675 A JP 2006007675A JP 2007188424 A JP2007188424 A JP 2007188424A
Authority
JP
Japan
Prior art keywords
operand
calculation
bit amount
unit
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006007675A
Other languages
English (en)
Other versions
JP4490925B2 (ja
Inventor
Hidekazu Morita
秀和 森田
Nobuyuki Hamaguchi
信行 浜口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006007675A priority Critical patent/JP4490925B2/ja
Publication of JP2007188424A publication Critical patent/JP2007188424A/ja
Application granted granted Critical
Publication of JP4490925B2 publication Critical patent/JP4490925B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】どの演算でどれだけのロストビットが発生したかを算出すること。
【解決手段】計算装置は、第1被演算子、第2被演算子、および、演算の種別の入力を受け付ける入力部104と、入力部104に入力されたデータを記憶するメモリ102と、メモリ102に記憶された第1被演算子および第2被演算子の演算により演算結果を計算し、演算結果について所定のビット量より下位のビットを省略することによって演算結果を所定のビット量に収めるCPU103と、CPU103により省略された下位のビットのビット量を、ロストビット量として出力する出力部105と、を有することを特徴とする。
【選択図】図1

Description

本発明は、計算装置、計算方法、および、計算プログラムに関する。
一般に、コンピュータなどの演算装置において、加減算などの演算を行う場合、2進数で表現される数値について、所定の桁の切捨てや切上げなどを行うことで、数値の一部を省略してからメモリに格納する。情報を省略する要因は、無理数などの情報量の多い数値について、数値の一部がメモリに入りきらないためである。
また、コンピュータが実数を扱う方式として、固定小数点形式および浮動小数点形式が知られている。浮動小数点形式は、小数点の位置を任意に定義できるため、扱う数値の範囲が固定小数点形式よりも広い。そのため、浮動小数点形式で表現された数値同士の演算結果は、数値の取りうる範囲が広くなるため、情報量が多くなる。
なお、浮動小数点形式は、規格化されている。例えば、非特許文献1に示されるIEEE(Institute of Electrical and Electronic Engineers)754では、単精度および倍精度について浮動小数点形式を規定している。単精度とは、1つの数値を32ビット長(符号部が1ビット長、指数部が8ビット長、仮数部が23ビット長)で表現するものであり、倍精度とは、1つの数値を64ビット長(符号部が1ビット長、指数部が11ビット長、仮数部が52ビット長)で表現するものである。また、単精度および倍精度に対する拡張形式(拡張単精度形式および拡張倍精度形式)が演算に用いられる場合もある。
このように、IEEE754では浮動小数点形式が規定されているが、これらの規格に準拠している浮動小数点数を用いた演算では、演算結果の情報量がメモリに入りきらないなどの理由により、丸め、情報落ち、および、桁落ちなどの計算誤差が生じる。
IEEE Standard for binary Floating−Point Arithmetic、ANSI/IEEE Standard 754−1985.Institute of Electrical and Electronics Engineers, New York,1985.Reprinted in SIGPLAN Notices 22(2),9-25,1987.
高精度な浮動小数点数演算を実施する場合、どの浮動小数点数演算で計算誤差が生じたか否か、および、その計算誤差によってどれだけビット量が失われたか(以下、ロストビット量という)を把握することが重要である。例えば、8ビット長の2進数値「01010001」の下位3ビットを切り捨てることにより、5ビット長の2進数値「01010」となる。このとき、ロストビット量は、3ビット長(8−5)となる。
なお、ロストビットが発生したか否かという情報、および、発生したときのロストビット量は、浮動小数点数演算の再計算をするか否かを判断するための有益な情報である。例えば、ロストビット量が多ければ、より精度の高い再計算を行うことにより、再計算前の演算結果の精度を大きく改善できる見込みがある。一方、ロストビット量が少なければ、より精度の高い再計算を行っても、演算結果について再計算前と再計算後とであまり変化がない。つまり、ロストビット量は、再計算のための指標である。
しかしながら、コンピュータなどの演算装置では、計算誤差が生じた場合、どの演算でどれだけロストビット量が発生したかという情報は得られない。その結果、効果の小さい再計算を行う、または、精度の高い演算結果を得られないといった問題が生じる。
そこで、本発明は、前記問題点に鑑みて発明されたものであり、どの演算でどれだけのロストビットが発生したかを算出することを目的とする。
前記課題を解決するために、本発明の計算装置は、第1被演算子、第2被演算子、および、演算の種別の入力を受け付ける入力部と、前記入力部に入力されたデータを記憶する記憶部と、前記記憶部に記憶された前記第1被演算子および前記第2被演算子の演算により演算結果を計算し、前記演算結果について所定のビット量より下位のビットを省略することによって前記演算結果を所定のビット量に収める演算部と、前記演算部により省略された前記下位のビットのビット量を、ロストビット量として出力する出力部と、を有することを特徴とする。その他の手段は、後記する。
本発明によれば、どの浮動小数点数演算で、計算誤差によりどれだけのロストビットが生じたかを把握することが可能となる。その結果、効率的な浮動小数点数演算の再計算を支援できる。
以下、本発明に係るデータ処理装置(演算装置)について、適宜図面を参照しながら説明する。
まず、図1を参照しながら、データ処理装置の構成について説明する。データ処理装置1は、補助記憶装置101、メモリ(記憶部)102、処理部としてのCPU(Central Processing Unit)103、入力部104、出力部105および入出力インタフェース106を備えて構成される。
補助記憶装置101は、各種情報を記憶するものであり、例えば、ハードディスク、ROM(Read Only Memory)などにより実現される。補助記憶装置101は、プログラム111、コンパイラ112および実行モジュール113を記憶している。
プログラム111は、図2で示すフローチャート上の処理が記述されているプログラム(以下、ソースプログラムという)である。コンパイラ112は、プログラム111をコンパイルおよびリンクするものである。実行モジュール113は、コンパイラ112によって、コンパイルおよびリンクされたモジュールである。
メモリ102は、各種情報を記憶する一時記憶手段であり、たとえばRAM(Random Access Memory)により実現される。CPU103は、加減算などの各種演算処理を行うものであり、メモリ102、入出力インタフェース106を介して実行モジュール113を実行する役割を果たす。入力部104は、各種実行コマンドなどを入力する入力装置である。出力部105は、各種実行結果などを出力する出力装置である。入出力インタフェース106は、図1に示すように、各構成間の入出力を仲介する。
前記のように構成されるデータ処理装置1は、次のように動作する。まず、操作者により、入力部104から入力されたコンパイルコマンドは、入出力インタフェース106を介して、メモリ102にストアされる。メモリ102では、補助記憶装置101のプログラム111が、コンパイラ112によってコンパイルおよびリンクされ、機械語コードである実行モジュール113が生成される。
次に、操作者により、入力部104から実行コマンドが入力されると、CPU103がメモリ102に実行モジュール113をロードする。実行モジュール113がメモリ102にロードされると、CPU103によって、図2または図7に示すフローチャート上の各処理がメモリ102からCPU103に逐次呼び出され、各処理が実行された後、その実行結果がメモリ102にストアされる。メモリ102にストアされた実行結果は、CPU103によって、入出力インタフェース106を介して、出力部105に出力される。
続いて、図2を参照しながら、データ処理装置のロストビット量算出処理について説明する(適宜図1参照)。図2は、データ処理装置のロストビット量算出処理を示したフローチャートである。以下、被演算子(オペランド)である第1浮動小数点数(第1被演算子)および第2浮動小数点数(第2被演算子)は、IEEE754に準拠した正規化された浮動小数点数とし、符号部(S)が1ビット長、指数部(E)が15ビット長、仮数部(M)がnビット長で表現される場合((−1)**S*(1.M)*2**E)を例として説明する。ここで、Sは符号を表し、0の場合、正の浮動小数点数を、1の場合、負の浮動小数点数を示す。Eは、e1e2…e15(ei∈(0,1))、i=1,…,15を表す。Mは、m1m2…mn(mi∈(0,1))、i=1,…,nを表す。
なお、本実施形態において、「A*B」はAとBとの乗算を示し、「A**B」はAのB乗を示し、「(1.A)」は整数部が1で小数部がAである実数を示す。また、特に但し書きのないときには、数値は10進数で表現する。
初めに入力処理S201を実現するための実行モジュール113が、メモリ102からCPU103に呼び出される。この入力処理S201では、図3に示すように、S301において、操作者により入力部104から入力されたデータAI、BIおよびフラグrをメモリ102にロードさせる。なお、データAI、BIは、第1,第2被演算子であり、フラグrは、加算や減算などの演算子の識別情報である。ここで、ロストビット量を得たい浮動小数点数演算が加算であれば、rに0が、減算であれば、rに1が、操作者により入力部104から入力される。
入力処理S201が終了すると、ロストビット量算出処理S202を実現するための実行モジュール113が、メモリ102からCPU103に呼び出される。図5は、図2に示したロストビット量算出処理S202の詳細図である。
このS202では、図5に示すように、まず、S501において、「AI=0」、「BI=0」、「AI=BI」という3つの条件のうち、いずれか1つを満たす場合、ロストビットは生じないため、S502において、LBに0を代入する。なお、LBはロストビットに関する変数であり、LBの符号(正負)が計算誤差の種別を、LBの絶対値が計算誤差のロストビット量を示す。計算誤差の種別は、正が桁落ちに、負が丸め誤差に対応する。また、LBが0のときには、計算誤差は発生していない。
AI=0またはBI=0またはAI=BIではない場合、S503に進む。S503では、AIおよびBIを正規化された2進数で表現し、AIおよびBIの符号部の値を変数T1、T2にそれぞれ代入する。
AI=(−1)**T1*(1.F1)*2**D1
BI=(−1)**T2*(1.F2)*2**D2
S503が実行されると、S504において、AIとBIの符号が異なるかどうかを調査するため、(T1+T2)/2の余りを変数Qに代入する。ここで、AIとBIが異符号である場合、Qには1が代入される。AIとBIが同符号である場合、Qには0が代入される。
S504が実行されると、共通処理S505において、被演算子である第1浮動小数点数AJと第2浮動小数点数BJが、AJ>BJ>0の条件で、演算を実行されるようにする。図6は、図5に示した共通処理S505の詳細図である。
このS505では、図6に示すように、まず、S601において、AI>BI>0の場合を条件分岐する。AI>BI>0である場合、S602において、AIおよびBIをそれぞれ、変数AJおよびBJに代入する。AI>BI>0でない場合、S603に進む。
S603では、BI>AI>0の場合を条件分岐する。BI>AI>0である場合、S604において、AIおよびBIをそれぞれ、変数BJおよびAJに代入する。BI>AI>0でない場合、S605に進む。
S605では、AI>0かつBI<0かつ|AI|>|BI|の場合を条件分岐する。ここで、|AI|および|BI|はAIおよびBIの絶対値である。AI>0かつBI<0かつ|AI|>|BI|である場合、S606において、AIおよび−BIをそれぞれ、変数AJおよびBJに代入する。AI>0かつBI<0かつ|AI|>|BI|でない場合、S607に進む。
S607では、AI>0かつBI<0かつ|AI|<|BI|の場合を条件分岐する。AI>0かつBI<0かつ|AI|<|BI|である場合、S608において、AIおよび−BIをそれぞれ、変数BJおよびAJに代入する。AI>0かつBI<0かつ|AI|<|BI|でない場合、S609に進む。
S609では、AI<0かつBI>0かつ|AI|>|BI|の場合を条件分岐する。AI<0かつBI>0かつ|AI|>|BI|である場合、S610において、−AIおよびBIをそれぞれ、変数AJおよびBJに代入する。AI<0かつBI>0かつ|AI|>|BI|でない場合、S611に進む。
S611では、AI<0かつBI>0かつ|AI|<|BI|の場合を条件分岐する。AI<0かつBI>0かつ|AI|<|BI|である場合、S612において、−AIおよびBIをそれぞれ、変数BJおよびAJに代入する。AI<0かつBI>0かつ|AI|<|BI|でない場合、S613に進む。
S613では、AI<0かつBI<0かつ|AI|>|BI|の場合を条件分岐する。AI<0かつBI<0かつ|AI|>|BI|である場合、S614において、−AIおよび−BIをそれぞれ、変数AJおよびBJに代入する。AI<0かつBI<0かつ|AI|>|BI|でない場合、S615に進む。
S615は、AI<0かつBI<0かつ|AI|<|BI|の場合に該当し、−AIおよび−BIをそれぞれ、変数BJおよびAJに代入する。
S505が実行されると、S506において、AJおよびBJを正規化された2進数で表現し、AJおよびBJの絶対値を変数AおよびBに代入する。
AJ=(−1)**S1*(1.M1)*2**E1
BJ=(−1)**S2*(1.M2)*2**E2
M1=f1f2…fm(fi∈(0,1)),i=1,…,m
M2=g1g2…gm(bi∈(0,1)),i=1,…,m
E1=a1a2…a15(ai∈(0,1)),i=1,…,15
E2=b1b2…b15(bi∈(0,1)),i=1,…,15
A=(1.M1)*2**E1
B=(1.M2)*2**E2
S506が実行されると、S507において、演算を実施するために、桁合わせのためのシフト数P=E1−E2を算出する。ここで、Pはシフト数を格納するための変数である。
S507が実行されると、加算処理S510または減算処理S511のどちらを実行すればよいかを判定するために、S508において、AIとBIが同符号であるか、異符号であるかを条件分岐する。Qが0、すなわち、AIとBIが同符号である場合は、S509に進む。Qが1、すなわち、AIとBIが異符号である場合は、S512に進む。
S509では、ロストビット量を得たい浮動小数点数演算が加算であるか、減算であるか判定するために、S301で入力されたフラグrが0であるか1であるかを条件分岐する。rが0であれば、加算処理S510を実行する。rが1であれば、減算処理S511を実行する。これは、AIとBIが同符号のため、操作者により指定された演算をそのまま実行するためである。
S512では、ロストビット量を得たい浮動小数点数演算が加算であるか、減算であるか判定するために、rが0であるか1であるかを条件分岐する。rが0であれば、減算処理S511を実行する。rが1であれば、加算処理S510を実行する。これは、AIとBIが異符号のため、A+(−B)をA−Bとするなど、操作者により指定された演算をひっくり返して実行するためである。
加算処理S510、減算処理S511のどちらを実行すればよいかが決定されると、加算処理S510か減算処理S511のどちらか一方が、メモリ102からCPU103に呼び出される。まずは、加算処理S510から説明する。図7は、図5に示した加算処理S510の詳細図である。
このS510では、図7に示すように、まず、S701において、(1.M1)*2**(m+1)を変数IAに代入する。これにより、浮動小数点数AJを正整数で表現することが可能となる。S701が実行されると、S702において、(1.M2)*2**(m+1)に対して、Pビット右シフトした結果を変数IBに代入する。これにより、浮動小数点数AJと桁合わせ後の浮動小数点数BJを正整数で表現することが可能となる。
S702が実行されると、S703において、ロストビット量が0の場合を条件分岐する。E1=E2(P=0)の場合、ロストビット量は0であるため、S704において、LBに0を代入する。P=0でない場合はS705に進む。
S705において、ロストビット量がm+1の場合を条件分岐する。P>=m+2の場合、ロストビット量はm+1であるため、S706において、LBにm+1を代入する。P>=m+2ではない場合はS707に進む。
S707において、ロストビット量がPの場合とP−1の場合を条件分岐する。IA+IB>=2**(m+2)の場合、桁上がりが生じるため、ロストビット量が1増加し、ロストビット量はPになる。そのため、S708において、LBにPを代入する。IA+IB<2**(m+2)の場合、ロストビット量はP−1であるため、S709において、LBにP−1を代入する。これにより、加算処理の場合のロストビット量を得ることが可能となる。
次に、減算処理S511を説明する。図8は、減算処理S511の詳細図である。
このS511では、図8に示すように、まず、S801において、(1.M1)*2**(m+2)を変数IAに代入する。これにより、浮動小数点数AJを正整数で表現することが可能となる。
S801が実行されると、S802において、(1.M2)*2**(m+2)に対して、Pビット右シフトした結果を変数IBに代入する。これにより、浮動小数点数AJと桁合わせ後の浮動小数点数BJを正整数で表現することが可能となる。
S802が実行されると、S803において、ロストビット量が0の場合とm+2−kの場合を条件分岐する。P>=2の場合、ロストビット量は0であるため、S804において、LBに0を代入する。P<2の場合、ロストビット量はAとA−Bの指数部の差となるため、まず、S805において、2**k<=IA−IB<2**(k+1)を満たす整数kを求め、S806において、LBにm+2−kを代入する。これにより、減算処理の場合のロストビット量を得ることが可能となる。
最後に、出力処理S203(図2参照)が、メモリ102からCPU103に呼び出される。この出力処理S203では、図4に示すように、S401において、LBの値を算出結果として出力部105に出力する。
このように、S201〜S203(図2参照)の各処理を行うことで、演算のロストビット量を得ることが可能となる。
また、ロストビット量を得ることにより、高精度な浮動小数点演算を必要とする産業(例えば、ニューラルネットワーク、敏感な数値シミュレーションを必要とする物理学分野)に本発明を応用することができる。
続いて、ロストビット量算出の具体例について説明する(適宜各図参照)。ここでは、演算式「AI+BI」におけるロストビット量算出処理を例にとり説明する。また、データ処理装置1(図1参照)が各演算で使用する浮動小数点数については、符号部が1ビット長、指数部が15ビット長、仮数部が240ビット長とする。
前記条件のもとで、第1被演算子と第2被演算子に対応する浮動小数点数AI、BIを次のように設定する。
a=77617.0
b=33096.0
AI=333.75*b**6+a**2*(11.0*a**2*b**2−b**6−121.0*b**4−2.0)
BI=5.5*b**8
まず、入力処理S201により、S301のように、入力部104からデータを入力する。その結果、AI、BIが以下のように初期化される。
AI=−7917111340668961361101134701524942850.0
BI=+7917111340668961361101134701524942848.0
また、ロストビット量を得たい浮動小数点数演算が加算であるため、rに0が入力部104から入力される。入力処理S201が実行されると、ロストビット量算出処理S202が実行される。まず、S501において、AI≠0、BI≠0、AI≠BIであるため、S503に進む。S503により、T1=1,T2=0になる。
S503が実行されると、S504により、Q=1になる。
S504が実行されると、共通処理S505が実行される。まず、S601において、AI>BI>0でないため、S603に進む。S603において、BI>AI>0でないため、S605に進む。S605において、AI>0かつBI<0かつ|AI|>|BI|ではないため、S607に進む。S607により、AI>0かつBI<0かつ|AI|<|BI|ではないため、S609に進む。S609において、AI<0かつBI>0かつ|AI|>|BI|であるため、S612に進む。S612により、AJ、BJは以下のようになる(AJ>BJ)。
AJ=7917111340668961361101134701524942850.0
BJ=7917111340668961361101134701524942848.0
S505が実行されると、S506により、AJ、BJは以下のように表現される。
AJ=(−1)**S1*(1.M1)*2**E1
BJ=(−1)**S2*(1.M2)*2**E2
S1…第1符号部
S2…第2符号部
M1…第1仮数部
M2…第2仮数部
E1…第1指数部
E2…第2指数部
ここで、S1=0、S2=0、E1=122、E2=122であり、M1、M2、は2進数でそれぞれ以下の表1の通りである。なお、表による2進数表現において、データを8ビットごとに区切っている。データは、左上のセルの最も左の値が最上位ビットとなり、左上のセルの右のセル、その右のセル、…、右上のセル、左上のセルの下のセル、…、左下のセルの順に上位ビットから下位ビットのデータが格納される。
Figure 2007188424
S506が実行されると、S507により、P=0になる。
S507が実行されると、S508が実行される。S508において、Q=1であるため、S512に進む。S512により、r=0であるため、減算処理S511が実行される。
S511では、まず、S801により、変数IAは以下のようになる。S801が実行されると、S802により、変数IBは以下の表2のようになる。
Figure 2007188424
S802が実行されると、S803において、P=0より、S805に進む。
S805において、IA−IBは2**121であるため、k=121となる。S806により、変数LBは121になる。従って、前記条件では、桁落ちにより121ビット長のロストビット量が生じることがわかる。
Figure 2007188424
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。ハードウェア構成や処理手順などの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば、本実施形態の処理手順を実現するための構成として、実行モジュール113というソフトウェアを用いる代わりに、CPUに追加された新たな命令セットや、ASIC(Application Specific Integrated Circuit)などのハードウェアにより実現してもよい。
本発明の一実施形態に関するデータ処理装置を示す構成図である。 本発明の一実施形態に関するデータ処理装置のロストビット量算出処理を示すフローチャートである。 本発明の一実施形態に関する入力処理(S201)の詳細を示すフローチャートである。 本発明の一実施形態に関する出力処理(S203)の詳細を示すフローチャートである。 本発明の一実施形態に関するロストビット量算出処理(S202)の詳細を示すフローチャートである。 本発明の一実施形態に関する共通処理(S505)の詳細を示すフローチャートである。 本発明の一実施形態に関する加算処理(S510)の詳細を示すフローチャートである。 本発明の一実施形態に関する減算処理(S511)の詳細を示すフローチャートである。
符号の説明
101 補助記憶部
102 メモリ
103 CPU
104 入力部
105 出力部
111 プログラム
112 コンパイラ
113 実行モジュール

Claims (5)

  1. 第1被演算子、第2被演算子、および、演算の種別の入力を受け付ける入力部と、
    前記入力部に入力されたデータを記憶する記憶部と、
    前記記憶部に記憶された前記第1被演算子および前記第2被演算子の演算により演算結果を計算し、前記演算結果について所定のビット量より下位のビットを省略することによって前記演算結果を所定のビット量に収める演算部と、
    前記演算部により省略された前記下位のビットのビット量を、ロストビット量として出力する出力部と、
    を有することを特徴とする計算装置。
  2. 前記第1被演算子は、第1符号部、第1仮数部、および、第1指数部により浮動小数点形式で表現され、
    前記第2被演算子は、第2符号部、第2仮数部、および、第2指数部により浮動小数点形式で表現され、
    前記演算部は、前記第1指数部と前記第2指数部との差分量、および、前記第1仮数部のビット量をもとに、前記下位のビットのビット量を計算すること
    を特徴とする請求項1に記載の計算装置。
  3. 入力部、記憶部、演算部、および、出力部を有する計算装置による計算方法であって、
    前記入力部が、第1被演算子、第2被演算子、および、演算の種別の入力を受け付ける手順と、
    前記記憶部が、前記入力部に入力されたデータを記憶する手順と、
    前記演算部が、前記記憶部に記憶された前記第1被演算子および前記第2被演算子の演算により演算結果を計算し、前記演算結果について所定のビット量より下位のビットを省略することによって前記演算結果を所定のビット量に収める手順と、
    前記出力部が、前記演算部により省略された前記下位のビットのビット量を、ロストビット量として出力する出力手順と、
    を実行することを特徴とする計算方法。
  4. 前記第1被演算子は、第1符号部、第1仮数部、および、第1指数部により浮動小数点形式で表現され、
    前記第2被演算子は、第2符号部、第2仮数部、および、第2指数部により浮動小数点形式で表現され、
    前記演算部は、前記第1指数部と前記第2指数部との差分量、および、前記第1仮数部のビット量をもとに、前記下位のビットのビット量を計算すること
    を特徴とする請求項3に記載の計算方法。
  5. 請求項3または請求項4に記載の計算方法を、計算装置に実行させるための計算プログラム。
JP2006007675A 2006-01-16 2006-01-16 計算装置、計算方法、および、計算プログラム Active JP4490925B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006007675A JP4490925B2 (ja) 2006-01-16 2006-01-16 計算装置、計算方法、および、計算プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006007675A JP4490925B2 (ja) 2006-01-16 2006-01-16 計算装置、計算方法、および、計算プログラム

Publications (2)

Publication Number Publication Date
JP2007188424A true JP2007188424A (ja) 2007-07-26
JP4490925B2 JP4490925B2 (ja) 2010-06-30

Family

ID=38343534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006007675A Active JP4490925B2 (ja) 2006-01-16 2006-01-16 計算装置、計算方法、および、計算プログラム

Country Status (1)

Country Link
JP (1) JP4490925B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101843243B1 (ko) 2015-10-30 2018-03-29 세종대학교산학협력단 제로값을 피연산자로 갖는 연산자에 대한 연산을 스킵하는 연산 방법 및 연산 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61256436A (ja) * 1985-05-10 1986-11-14 Hitachi Ltd 演算装置
JPS63229521A (ja) * 1987-03-19 1988-09-26 Matsushita Electric Ind Co Ltd シフト回路
JPS63298435A (ja) * 1987-05-28 1988-12-06 Matsushita Electric Ind Co Ltd 浮動小数点演算装置
JPH03211617A (ja) * 1990-01-17 1991-09-17 Nec Corp ブロック論理和回路とシフト方式
JP2004252554A (ja) * 2003-02-18 2004-09-09 Yaskawa Electric Corp 数値演算プロセッサの丸め処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61256436A (ja) * 1985-05-10 1986-11-14 Hitachi Ltd 演算装置
JPS63229521A (ja) * 1987-03-19 1988-09-26 Matsushita Electric Ind Co Ltd シフト回路
JPS63298435A (ja) * 1987-05-28 1988-12-06 Matsushita Electric Ind Co Ltd 浮動小数点演算装置
JPH03211617A (ja) * 1990-01-17 1991-09-17 Nec Corp ブロック論理和回路とシフト方式
JP2004252554A (ja) * 2003-02-18 2004-09-09 Yaskawa Electric Corp 数値演算プロセッサの丸め処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101843243B1 (ko) 2015-10-30 2018-03-29 세종대학교산학협력단 제로값을 피연산자로 갖는 연산자에 대한 연산을 스킵하는 연산 방법 및 연산 장치

Also Published As

Publication number Publication date
JP4490925B2 (ja) 2010-06-30

Similar Documents

Publication Publication Date Title
US9665347B2 (en) Apparatus and method for performing conversion operation
US6049865A (en) Method and apparatus for implementing floating point projection instructions
US10019231B2 (en) Apparatus and method for fixed point to floating point conversion and negative power of two detector
US9608662B2 (en) Apparatus and method for converting floating-point operand into a value having a different format
CN104899004A (zh) 一种用于将浮点操作数相乘的数据处理装置和方法
JP2015506022A (ja) 浮動小数点値を整数浮動小数点値に丸めるための装置および方法
JP2003196079A (ja) 積和演算装置、及び積和演算方法
CN108694037B (zh) 用于在执行浮点减法时估计移位量的装置和方法
US20170010863A1 (en) Apparatus and method for controlling rounding when performing a floating point operation
US7752250B2 (en) Rounding floating point division results
TW200532552A (en) Methods and apparatus for performing mathematical operations using scaled integers
JP4490925B2 (ja) 計算装置、計算方法、および、計算プログラム
KR102459011B1 (ko) 선두 제로 예측
US20200183650A1 (en) Radix-1000 decimal floating-point numbers and arithmetic units using a skewed representation of the fraction
JP2558669B2 (ja) 浮動小数点演算装置
KR101922462B1 (ko) 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법
CN114691082A (zh) 乘法器电路、芯片、电子设备及计算机可读存储介质
US20230147929A1 (en) Exact versus inexact decimal floating-point numbers and computation system
LaMeres Floating-Point Systems
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
Jeannerod et al. The Classical Relative Error Bounds for Computing Sqrt (a^ 2+ b^ 2) and c/sqrt (a^ 2+ b^ 2) in Binary Floating-Point Arithmetic are Asymptotically Optimal
Arnold Fundamentals of Floating-Point Arithmetic
JP3124286B2 (ja) 浮動小数点数演算装置
CN112214196A (zh) 浮点异常处理方法及装置
Muller et al. Algorithms for the Basic Operations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100402

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4490925

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4