JP2015045968A - 浮動小数点演算処理方法 - Google Patents

浮動小数点演算処理方法 Download PDF

Info

Publication number
JP2015045968A
JP2015045968A JP2013176240A JP2013176240A JP2015045968A JP 2015045968 A JP2015045968 A JP 2015045968A JP 2013176240 A JP2013176240 A JP 2013176240A JP 2013176240 A JP2013176240 A JP 2013176240A JP 2015045968 A JP2015045968 A JP 2015045968A
Authority
JP
Japan
Prior art keywords
arithmetic
floating point
floating
format
calculation
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.)
Pending
Application number
JP2013176240A
Other languages
English (en)
Inventor
正幸 長田
Masayuki Osada
正幸 長田
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 JP2013176240A priority Critical patent/JP2015045968A/ja
Publication of JP2015045968A publication Critical patent/JP2015045968A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】
メインフレームからオープンサーバへ単純に移行する場合、浮動小数点演算を使用すると、M形式浮動小数点とIEEE形式浮動小数点ではフォーマット形式の違いにより、演算誤差が発生する場合がある。演算誤差を発生させないように、エミュレーションによるM形式互換の浮動小数点演算処理を行う方法が考えられるが、すべての浮動小数点演算をエミュレーションで処理すると、演算処理時間が遅くなる。
【解決手段】
IEEE形式の浮動小数点演算装置をもつコンピュータシステムにおいて、M形式の浮動小数点フォーマットの浮動小数点演算命令を実行する前に、演算結果に誤差が発生する可能性がある演算命令を演算データ値から判定し、演算誤差が発生する可能性がある演算命令を演算ライブラリ内のエミュレーション処理部にて演算処理を実行し、演算誤差が発生する可能性のない演算命令をハードウェアの浮動小数点演算装置にて実行する。
【選択図】 図3

Description

本発明は、異なる浮動小数点演算を実行する時の効率を向上させる演算処理方法に関する。
近年、メインフレームからオープンサーバへの移行が進んでいる。しかし、メインフレームのCOBOLで生成したプログラムソースをリコンパイルしてオープンサーバ上で実行すると、単純な四則演算のみの場合には10進浮動小数点のまま演算を行うため同一の結果が得られるが、べき乗演算等の複合演算では2進浮動小数点に変換後に浮動小数点演算命令を使用して計算を行うため、浮動小数点レジスタの表現精度や内部演算処理の差に起因した演算誤差により、演算結果に誤差が発生する場合がある。特に金融系のアプリケーションにおいては誤差が致命的な問題となってしまい、移行への妨げとなっていた。このためオープンサーバ上でソフトウェアによりメインフレームシステムのエミュレーションを行う方法があり、プログラムソースを変更せずにプラットフォームの移行が可能となっている。しかし、上記方法を行う場合はオペレーティングシステムを含めたシステム全体のエミュレーションを行うため、実行性能が劣化するという問題が存在する。このためシステム全体のエミュレーションを行うよりも効率的な方法として浮動小数点演算が同一の結果となるようにエミュレーションを行う方法が考えられる。特許文献1は、異種の浮動小数点演算命令の同時サポート方法である。これは浮動小数点演算装置を持つ計算機にて、この計算機にない他の浮動小数点演算装置に対する浮動小数点演算命令が実行された時に、その命令をオペレーティングシステムにより検出し、検出した命令を計算機がサポートしている浮動小数点演算装置に対応した浮動小数点演算命令に置き換えて再度の実行を行うことにより、この計算機にない他の浮動小数点演算装置に対する浮動小数点演算命令を含むロードモジュールを実行することを特徴とするものである。上記方法は浮動小数点演算命令のみを置き換えることが可能なため、システム全体のエミュレーションよりも効率的であるが、浮動小数点演算処理を含むロードモジュールを実行するため、計算機の持つ浮動小数点演算装置の実行速度と比較して実行速度が遅くなってしまう。このため精度誤差を保証しながら性能の劣化を最小にする方法が求められていた。
特開平5-27963
メインフレームからオープンサーバへ単純に移行する場合、オープンサーバはIEEE形式の浮動小数点演算装置のみを持ち、メインフレームで用いられるM形式の浮動小数点演算装置を持たない。オープンサーバにてIEEE形式の浮動小数点演算装置を用いて浮動小数点演算を行うと、M形式の浮動小数点演算と演算結果に誤差が発生する可能性がある。演算誤差の要素として、浮動小数点フォーマット形式の違いに起因するものがある。
図4は、倍精度浮動小数点数のフォーマット形式を表している。41は、メインフレームの浮動小数点レジスタで採用しているM形式浮動小数点フォーマットである。42は、オープンサーバの浮動小数点レジスタで採用しているIEEE形式浮動小数点フォーマットである。M形式は、符号部1ビット、指数部7ビット、仮数部56ビットで形成されている。一方、IEEE形式は、符号部1ビット、指数部11ビット、仮数部52ビットで形成されている。符号部とは数値の正負を表し、“0”なら正の数を表し、“1”なら負の数を表す。指数部とは浮動小数点数の中の累乗の部分を表す。仮数部とは指数部を表記する際の有効数字となる部分である。たとえば、A×10Bの場合、Aが仮数部となる。
2つのフォーマットを比べると、メインフレームの仮数部のビット長がオープンサーバの仮数部のビット長より4ビット多い。10進浮動小数点形式で格納された数値データを、浮動小数点演算に必要なフォーマット変換をする際や、浮動小数点演算中に桁あふれが発生した場合に、M形式とIEEE形式では丸め処理が異なるため演算誤差が発生する。このため、演算誤差を発生させないように、すべての浮動小数点演算処理をM形式互換浮動小数点演算にて行う方法が考えられるが、M形式互換浮動小数点演算をソフトウェアによるエミュレーション方式で実現すると、演算処理時間が浮動小数点演算処理装置の処理時間より遅くなる。本発明は、上記課題を解決することを目的とする。
上記課題を解決する為、本発明では、数値演算処理において浮動小数点演算を行う前に演算データ値を分析することにより誤差が発生する可能性があるかを予測し、誤差が発生する可能性がある場合は、浮動小数点演算をソフトウェアによるM形式互換浮動小数点演算処理(エミュレーション)を行う。演算結果に誤差が発生しない浮動小数点演算については、ハードウェアのもつ浮動小数点演算装置を用いて浮動小数点演算を行う。誤差が発生する可能性がある浮動小数点演算のみをエミュレーションすることにより演算性能劣化を最小限にする。
本発明により、IEEE形式の浮動小数点演算装置をもつコンピュータシステムにおいて、メインフレーム互換の浮動小数点演算結果が必要な場合、浮動小数点演算を実行する時、演算結果にM形式浮動小数点演算と誤差が発生する可能性のある演算命令のみをソフトウェアによるM形式互換浮動小数点演算処理(エミュレーション)を行い、それ以外の演算命令に対してはハードウェアの浮動小数点演算装置による浮動小数点演算を行うことにより、浮動小数点演算誤差を防止することが可能となる。また、演算性能劣化を最小限にし、高速な演算処理が可能となる。
コンピュータシステムの構成を示すブロック図である。 演算プログラムの処理を説明するためのフローチャートである。 べき乗命令処理中の加算処理を説明するためのフローチャートである。 浮動小数点フォーマットを説明するための図である。 10進2進浮動小数点の変換を説明するための例である。 IEEE形式浮動小数点の加算を説明するための例である。 IEEE形式浮動小数点への変換の説明をするための例である。 有効ビット判定部においてマスク値とのアンド演算を説明するための例である。 演算結果有効ビット判定部のマスク値生成の説明をするための例である。 主記憶装置中の変数を説明するための図である。
以下、本発明の実施形態について図面を参照して説明する。
図1は、本発明の実施例であるコンピュータシステムの構成を示すブロック図である。図1において、1は中央処理装置(CPU)、2は主記憶装置、3はIEEE形式浮動小数点演算処理装置(FPU)、4は磁気ディスク装置で構成する。また4の磁気ディスク装置は、12のオペレーティングシステム(OS)、13の実行対象となる演算プログラム(ユーザプログラム)、14の数値演算ライブラリを格納している。14の数値演算ライブラリは、各種のユーザプログラムから共通で呼び出し可能な16のべき乗命令処理等の複合演算処理群と、べき乗命令処理中に15のM形式の浮動小数点演算を処理するプログラムを含む。
次に、図1に示すコンピュータシステムにおける、異なる浮動小数点演算のサポート方式の形態について説明する。12のオペレーティングシステム(OS)が、13の演算プログラム(ユーザプログラム)の実行を指示すると、1の中央処理装置(CPU)は4の磁気ディスク装置から13の演算プログラム(ユーザプログラム)と14の数値演算ライブラリを2の主記憶装置に格納し、1の中央処理装置、2の主記憶装置および3のIEEE形式の浮動小数点演算装置を利用して13の演算プログラム(ユーザプログラム)の処理を行う。13の演算プログラム(ユーザプログラム)の実行中にべき乗命令が発生した場合には、16のべき乗命令処理が呼び出される。16のべき乗命令処理において、演算結果に誤差の可能性がないと判定された場合、3のIEEE形式浮動小数点演算装置(FPU)にて演算処理を実行し、演算結果に誤差の可能性があると判定された場合、15のM形式の浮動小数点演算(エミュレーション)処理を実行する。
図2は、13の演算プログラム(ユーザプログラム)の処理において関連する部分の処理を説明するためのフローチャートである。21はべき乗命令判定部である。13の演算プログラム(ユーザプログラム)中の複合演算命令が実行された時、複合演算命令がべき乗命令か、べき乗命令以外かを判定する。判定の結果、べき乗命令の場合は、演算結果に誤差が発生する可能性があるため、22のべき乗命令処理を実行する。また、べき乗命令以外の場合は、演算結果に誤差が発生しないため23の通常処理部を実行する。べき乗命令処理中には数値演算命令以外の処理も含まれているが、浮動小数点演算である加算の処理について説明する。
図3は、22のべき乗命令処理の内、図10に示す主記憶装置中の変数である被加算数101と加算数102に格納された値を加算し結果を加算結果103に格納する加算処理の部分を説明したフローチャートである。
図10に加算処理を行う際に主記憶装置に格納される変数を表す。101が被加算数、102が加算数、103が加算結果である。104〜106が中間値被加算数の符号部、指数部および仮数部、107〜109が中間値加算数の符号部、指数部および仮数部である。110がマスク値である。111がIEEE形式浮動小数点被加算数、112がIEEE形式浮動小数点加算数である。加算の処理を実行する際、あらかじめ主記憶装置中に10進浮動小数点の形式で被加算数101と加算数102が格納されており、この被加算数と加算数を用いて以降の加算の処理を行う。
31は10進2進浮動小数点数変換部である。10進浮動小数点形式の被加算数101の値を中間値被加算数104〜106に格納し、10進浮動小数点形式の加算数102の値を中間値被加算数107〜109に格納する。中間値に変換するのは、直接2進浮動小数点のIEEE形式浮動小数点数へ変換してしまうと、仮数部が52ビットに丸められ、仮数部の有効ビット長が53ビット以上存在するか判断ができないためである。このため、2進浮動小数点で64ビット長の中間値符号部、中間値指数部および中間値仮数部に格納する。
図5で10進浮動小数点数の値を+2.5×100として変換例を説明する。51は変換元になる10進浮動小数点数であり、符号部は“+”、仮数部が2.5、指数部が0である。
最初に51の符号部を“+”であれば“0”、“−”であれば“1”として、52の中間値符号部の右端に格納する。51の符号は“+”なので52の右端に“0”を格納する。52の値が最終的に中間値符号部に格納される値となる。
次に51の指数部を2進数に変換して53の中間値指数部に格納する。51の指数部は“0”であるので53の中間値指数部に“0”を格納する。次に51の仮数部を2進数に変換した後、仮数部の値を1以上2未満(2進数表現で(1.…)となる値)とする正規化処理を行う。51の仮数部は2.5であり、これは2進数(10.1)であるので、正規化すると2進数(1.01)×21であり、仮数部が2進数(1.01)、指数部“1”となるため、2進数(1.01)の部分は2進数(101)として56の左端に格納し、指数部が“1“であるため、53の中間値指数部に格納された2進数(0…000)に“1”を加算し、 54に示す2進数(0…001)が格納される。さらに54の値に下駄値と呼ばれる10進数で“1023“の値、2進数(1111111111)の値を加算し55の値とする。55の値が最終的に中間値仮数部に格納される値となる。
最後に仮数部の最上位ビットを省略するため、56の値2進数(101000…0)を左に1ビットシフトし57の値2進数(01000…0)とする。57の値が最終的に中間値仮数部に格納される値である。
図5の変換を被加算数101に対して行った結果を中間値被加算数104〜106に格納し、その次に加算数102を同様に変換し、中間値加算数107〜109に格納する。
32は有効ビット数判定部である。浮動小数点数の仮数部の有効ビット数が52ビット以下であるかの判定を行う。仮数部の有効ビット長が52ビット以下である場合、仮数部が左詰めで格納されているため、53ビット以降がすべて“0“であることを確認すればよく、53ビットから64ビットまでのビット値を1とした12ビットのマスク値(0000・・・0111111111111)を110のマスク値に格納した後、106の中間値被加算数仮数部および109の中間値加算数仮数部とのビット毎のアンド演算を行い、値が0であった場合52ビット以下、値が0以外の場合は53ビット以上と判断する。有効ビット数が52ビット以下の場合、33の演算結果有効ビット判定部へ進み、有効ビット数が53ビット以上の場合、37へ進む。
図8は仮数部とマスク値とのアンド演算の例を表す。81は仮数部を51ビット目までのビットを“1”としたときの例である。53ビットから64ビットまでのビット値を“1”としたマスク値とアンド演算を行うと結果は83に格納された値ですべてのビットが“0”となり52ビット以下と判断する。同様に84は仮数部を53ビット目までのビットを“1”としたときの例である。82と同じ値である85のマスク値とアンド演算を行うと、演算結果は2進数(00…100000000000)となり53ビット以上と判断する。
33は104〜106の中間値被加算数および107〜109の中間値加算数の値をもとに、IEEE形式浮動小数点演算の加算を実施した場合に、演算結果に誤差が発生するかを判定する演算結果有効ビット数判定部である。加算時の有効ビット数の減少する要因として、加算前の両者の数の指数部の値の差を考慮して仮数部を桁あわせするために発生する桁落ちと、加算後の桁上がり発生による桁落ちがある。加算前の桁あわせ実施時の桁落ち数は中間値被加算数指数部105と中間値加算数指数部108の差であり、加算後の最上位桁上がりによる桁落ち数は最大1ビットである。実際には桁上がりが発生しない場合も存在するが、今回は判定処理速度を優先し、必ず桁上がりする判定とした。さらに中間値は64ビットにしているため、IEEE形式の仮数部長52ビットを超える53ビットから64ビット分を無視するための補正値12ビット分を考慮し、これら3つを加えた数(12+1+指数の差)をビットマスク長とし、右端から“1”がビットマスク長分並んだビットマスク値として生成し、このビットマスク値を被仮算数と加算数の仮数部に対してビット毎のアンド演算を行う。
図9はビットマスク値の生成例を表す。91が中間値被加算数の指数部で値が2進数(10000000001)、92が中間値加算数の仮数部で値が2進数(10000000000)である。91と92の差分が“1”なのでこれに13を加算し14ビットがビットマスク値となる。このため、右端から14ビット分を1としたマスク値を生成し、93のマスク値に格納する。
図9の処理を105の中間値被加算数指数部および108の加算中間値加算数指数部を用いて実施し、110のマスク値に格納したあと、106の中間値被加算数仮数部および109の中間値加算数仮数部のそれぞれに対して110のマスク値とのアンド演算を行った結果、両方の値が0であった場合は34の処理に進み、どちらかの値が0以外であった場合、37の処理に進む。
図6にIEEE形式浮動小数点数で桁あふれが発生する要因について加算例を用いて説明する。演算結果に誤差が発生しない場合を例1に、誤差が発生する場合を例2に示す。例1は61が被加算数、62が加算数、63が加算結果である。被加算数と加算数の指数部の値は同じで仮数部の有効ビット数がどちらも51ビット以内なので加算結果の仮数部の有効ビット数は52ビット以内となるため、演算結果に桁上がりによる切り捨てがないため誤差は発生しない。一方、例2では、被仮算数と加算数の指数部の値は同じで加算数の有効ビット数が52ビットである。66は被仮算数に加算数を加算した結果である。加算により最上位ビットの桁あふれが発生し、IEEE形式浮動小数点数の仮数部のビット長の52ビットを超えてしまう。そのため仮数部を右へ1ビットシフトし、指数部に“1”を加算する。67が訂正後の演算結果である。シフトにより最右端の値は“1“であるが、有効ビット数を超えたため、最右端の”1“は切り捨てられる。このため演算結果に誤差が発生する。
図7は34のIEEE形式浮動小数点数変換部の処理を説明した概念図である。71の中間値符号部の右端1ビットを74の左端1ビットに格納し、72の中間値指数部の右端11ビットを74の2ビット目から12ビット目に格納し、73の中間値仮数部の1ビット目から52ビット目を74の13ビット目から64ビット目に格納する。
34はIEEE形式浮動小数点数変換部である。34の処理において104〜106の中間値被加算数と107〜109の中間値加算数のそれぞれに対して図7で示した処理を実施し、IEEE形式浮動小数点被加算数111とIEEE形式浮動小数点加算数112に格納する。
35は、IEEE形式浮動小数点演算処理部である。ハードウェアのIEEE形式浮動小数点演算装置に111と112に格納した値を被加算数と加算数として渡し加算を行う、実施した結果は111に格納される。
36は2進浮動小数点数変換部である。111に格納された値の左端1ビットを符号部、2ビット目から12ビット目を指数部、13ビット目から64ビット目を仮数部として用い、10進浮動小数点に変換し、変換した値を103の加算結果に格納する。
37はM形式浮動小数点演算処理部(エミュレーション)である。32、33の判定で仮数部の有効ビット数が53ビット以上と判定された場合、104〜106の中間値被加算数を被加算値、107〜109の加算中間値を加算値として、M形式互換浮動小数点演算(エミュレーション)を行い、加算した結果を10進浮動小数点数に変換して、103の加算結果に格納する。
本実施例ではべき乗処理に含まれる浮動小数点演算のうち加算処理の実施例を記述したが、浮動小数点演算には加減乗余算等が含まれており、誤差判定処理を追加することによりハードウェアのIEEE形式浮動小数点演算装置による処理の高速化を図ることができる。
1 中央処理装置(CPU)
2 主記憶装置
3 IEEE形式浮動小数点演算装置
4 磁気ディスク装置
12 オペレーティングシステム(OS)
13 演算プログラム(ユーザプログラム)
14 数値演算ライブラリ
15 M形式浮動小数点演算
16 べき乗命令処理
21 べき乗命令判定部
22 べき乗命令処理
23 通常処理部
31 10進2進浮動小数点変換部
32 有効ビット数判定部
33 演算結果有効ビット数判定部
34 IEEE形式浮動小数点変換部
35 IEEE形式浮動小数点演算処理部(ハードウエア)
36 10進2進浮動小数点変換部
37 M形式浮動小数点演算処理部(エミュレーション)
41 M形式浮動小数点フォーマット
42 IEEE形式浮動小数点フォーマット
51 10進浮動小数点
52 中間値符号部
53 中間値指数部
54 中間値指数部
55 中間値指数部
56 中間値仮数部
57 中間値仮数部
61 被加算数
62 加算数
63 加算結果
64 被加算数
65 加算数
66 加算結果
71 中間値符号部
72 中間値指数部
73 中間値仮数部
74 IEEE形式浮動小数点数
81 仮数部
82 マスク値
83 演算結果
84 仮数部
85 マスク値
86 演算結果
91 中間値被加算数指数部
92 中間値加算数指数部
93 マスク値
101 被加算数
102 加算数
103 加算結果
104 中間値被加算数符号部
105 中間値被加算数指数部
106 中間値被加算数仮数部
107 中間値加算数符号部
108 中間値加算数指数部
109 中間値加算数仮数部
110 マスク値
111 IEEE形式浮動小数点被加算数
112 IEEE形式浮動小数点被加算数

Claims (5)

  1. 浮動小数点演算装置を持つコンピュータシステムにおいて、前記浮動小数点演算装置が実行する浮動小数点フォーマット形式と異なるフォーマット形式の浮動小数点演算命令を実行する前に、演算結果に誤差が発生する可能性がある演算命令を演算データから判定し、演算誤差が発生する可能性がある演算命令をエミュレーションにて処理し、演算誤差が発生する可能性のない演算命令を前記浮動小数点演算装置にて実行する浮動小数点演算命令処理方法。
  2. IEEE形式の浮動小数点演算装置を持つコンピュータシステムにおいて、M形式の浮動小数点フォーマットの浮動小数点演算命令を実行する前に、演算結果に誤差が発生する可能性がある演算命令を演算データ値から判定し、演算誤差が発生する可能性がある演算命令を演算ライブラリ内のエミュレーション処理部にて演算処理を実行し、演算誤差が発生する可能性のない演算命令を前記浮動小数点演算装置にて実行する浮動小数点演算処理方法。
  3. べき乗命令中の加算処理において、処理対象の10進浮動小数点形式の数値データを2進浮動小数点形式の中間値データに変換した際、該中間値データの仮数部の有効ビット数がIEEE形式の仮数部ビット長を超えている場合に、演算ライブラリ内のエミュレーション処理部にて加算処理を実行する請求項2記載の浮動小数点演算処理方法。
  4. 前記中間値データに変換した際、該中間値データの仮数部の有効ビット数がIEEE形式の仮数部ビット長以下である場合に、加算結果の中間値データの仮数部の有効ビット数がIEEE形式の仮数部ビット長を超えるかを判定し、超えている場合に、演算ライブラリ内のエミュレーション処理部にて加算処理を実行する請求項3記載の浮動小数点演算処理方法。
  5. 前記判定の結果、加算結果の中間データの仮数部の有効ビット数がIEEE形式の仮数部ビット長以下である場合に、前記浮動小数点演算装置にて加算処理を実行する請求項4記載の浮動小数点演算処理方法。
JP2013176240A 2013-08-28 2013-08-28 浮動小数点演算処理方法 Pending JP2015045968A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013176240A JP2015045968A (ja) 2013-08-28 2013-08-28 浮動小数点演算処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013176240A JP2015045968A (ja) 2013-08-28 2013-08-28 浮動小数点演算処理方法

Publications (1)

Publication Number Publication Date
JP2015045968A true JP2015045968A (ja) 2015-03-12

Family

ID=52671434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013176240A Pending JP2015045968A (ja) 2013-08-28 2013-08-28 浮動小数点演算処理方法

Country Status (1)

Country Link
JP (1) JP2015045968A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109791513A (zh) * 2016-09-29 2019-05-21 英特尔公司 用于检测数值累加误差的指令和逻辑

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109791513A (zh) * 2016-09-29 2019-05-21 英特尔公司 用于检测数值累加误差的指令和逻辑
CN109791513B (zh) * 2016-09-29 2023-04-18 英特尔公司 用于检测数值累加误差的指令和逻辑

Similar Documents

Publication Publication Date Title
US10216479B2 (en) Apparatus and method for performing arithmetic operations to accumulate floating-point numbers
CN110168493B (zh) 在128位宽的操作数上的融合乘加浮点运算
US10489152B2 (en) Stochastic rounding floating-point add instruction using entropy from a register
US10579338B2 (en) Apparatus and method for processing input operand values
JP6079433B2 (ja) 移動平均処理プログラム、及びプロセッサ
US9703626B2 (en) Recycling error bits in floating point units
GB2511314A (en) Fast fused-multiply-add pipeline
US10445066B2 (en) Stochastic rounding floating-point multiply instruction using entropy from a register
US10459688B1 (en) Encoding special value in anchored-data element
JP2015045968A (ja) 浮動小数点演算処理方法
US20180276545A1 (en) Residue Prediction of Packed Data
US9940199B2 (en) Checking arithmetic computations
US10936285B2 (en) Overflow or underflow handling for anchored-data value
TWI822952B (zh) 迭代運算的處理
US10963245B2 (en) Anchored data element conversion
JP2019159440A (ja) ベクトルプロセッサ、演算実行方法、プログラム
US11669586B2 (en) Systems and methods for combining low-mantissa units to achieve and exceed FP64 emulation of matrix multiplication
JP2023089769A (ja) 演算処理装置及び演算処理方法
Fiolhais Exact Inner Product Processor in FPGA
JP2708526B2 (ja) 2進整数除算処理方法
JP2010160644A (ja) 演算装置、演算方法及び演算プログラム
JP2006163548A (ja) 不安定状態を利用する予測器、プロセッサ
JP2007257239A (ja) 計算装置、および、計算方法