JP2018535476A - 浮動小数点数の丸め処理 - Google Patents

浮動小数点数の丸め処理 Download PDF

Info

Publication number
JP2018535476A
JP2018535476A JP2018516742A JP2018516742A JP2018535476A JP 2018535476 A JP2018535476 A JP 2018535476A JP 2018516742 A JP2018516742 A JP 2018516742A JP 2018516742 A JP2018516742 A JP 2018516742A JP 2018535476 A JP2018535476 A JP 2018535476A
Authority
JP
Japan
Prior art keywords
rounding
input operand
floating point
operand
value
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
JP2018516742A
Other languages
English (en)
Other versions
JP6744913B2 (ja
Inventor
レイモンド ルッツ、デイビッド
レイモンド ルッツ、デイビッド
ニール ハインズ、クリストファー
ニール ハインズ、クリストファー
バージェス、ニール
Original Assignee
エイアールエム リミテッド
エイアールエム リミテッド
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 エイアールエム リミテッド, エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2018535476A publication Critical patent/JP2018535476A/ja
Application granted granted Critical
Publication of JP6744913B2 publication Critical patent/JP6744913B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

処理回路2は、制御信号14であって、仮数値を有する浮動小数点入力オペランドを処理して、丸め位置入力オペランドにより指定された浮動小数点入力オペランドの仮数内の可変丸め点を使用して浮動小数点入力オペランドを丸めることからの値に応じた出力結果を生成するように処理回路16を制御するための、制御信号14、を生成するように、丸め位置入力オペランドを有するプログラム命令の実行をサポートする。このようにして、浮動小数点オペランドおよびアンカー付き数オペランドを入力として有する処理演算が促進され得る。

Description

本開示は、データ処理システムに関する。より具体的には、本開示は、浮動小数点数の使用および操作をサポートするデータ処理システムに関する。
浮動小数点演算は、グラフィックスデータの操作の生成、物理系のモデリング/シミュレーション、および他の用途など、多くの用途を有する。
浮動小数点数の使用をサポートするデータ処理システムを提供することが知られている。
本開示の少なくとも一部の実施形態は、データを処理するための装置であって、
プログラム命令の制御下で処理演算を遂行するための処理回路と、
プログラム命令を復号して、該処理演算を遂行するように該処理回路を制御するための制御信号を生成するための復号器と、を備え、
該復号器が、所与のプログラム命令および丸め位置入力オペランドに応答して、仮数値を有する浮動小数点入力オペランドを処理して、該丸め位置入力オペランドにより指定された該浮動小数点入力オペランドの該仮数内の可変丸め点を使用して該浮動小数点入力オペランドを丸めることからの値に応じた出力結果を生成するように該処理回路を制御するための、制御信号を生成する、装置、を提供する。
本開示の少なくとも一部の実施形態は、データを処理するための装置であって、
プログラム命令の制御下で処理演算を遂行するための処理手段と、
プログラム命令を復号して、該処理演算を遂行するように該処理手段を制御するための制御信号を生成するための復号手段と、を備え、
該復号手段が、所与のプログラム命令および丸め位置入力オペランドに応答して、仮数値を有する浮動小数点入力オペランドを処理して、該丸め位置入力オペランドにより指定された該浮動小数点入力オペランドの該仮数内の可変丸め点を使用して該浮動小数点入力オペランドを丸めることからの値に応じた出力結果を生成するように該処理手段を制御するための、制御信号、を生成する、装置、を提供する。
本開示の少なくとも一部の実施形態は、データを処理する方法であって、
所与のプログラム命令および丸め位置入力オペランドを復号して、仮数値を有する浮動小数点入力オペランドを処理して、該丸め位置入力オペランドにより指定された該浮動小数点入力オペランドの該仮数内の可変丸め点を使用して丸められた該浮動小数点入力オペランドを丸めることからの値に応じた出力結果を生成するように処理回路を制御するための、制御信号、を生成することを含む、方法、を提供する。
これより、添付図面を参照しながら、例示的な実施形態をただの例として説明する。
データ処理演算を遂行するプログラム命令を実行するためのデータ処理システムを概略的に例示する。 浮動小数点数を概略的に例示する。 アンカー付き数を概略的に例示する。 浮動小数点丸めプログラム命令を概略的に例示する。 浮動小数点丸めプログラム命令の動作を概略的に例示する流れ図である。 変換加算プログラム命令の動作を概略的に例示する。 変換加算プログラム命令の動作を概略的に例示する流れ図である。 変換加算プログラム命令を実行するためのハードウェアの一例を概略的に例示する。
図1は、プロセッサコア4およびメモリ6を含むデータ処理システムを概略的に例示する。メモリ6は、実行されるべきプログラム命令8およびデータ値10を記憶する。プログラム命令は、処理演算を遂行するようにプロセッサコア4を制御する働きをする。プロセッサコア4は、メモリ6からフェッチされたプログラム命令を復号するための、およびそれらのプログラム命令により指定された処理演算を遂行するように処理回路16を制御する働きをする制御信号14を生成するための復号器12を含む。処理回路16は、レジスタストア18に連結されており、レジスタストア18は、実行されるべきプログラム命令への入力オペランドを記憶し、実行されるプログラム命令からの出力結果を記憶する複数のレジスタを含む。レジスタストア18内のレジスタは、整数レジスタ、小数点レジスタ、アンカー付き数レジスタ、ベクトルレジスタなどの様々な異なる形態をとり得る。
図2は、浮動小数点数を概略的に例示する。コンピュータシステム内の浮動小数点数は、典型的に、浮動小数点数が正かそれとも負かを示す符号ビットs、表現される浮動小数点数を提供するために仮数がそれにより乗算されるべき、2の累乗の指数を表す指数値xから形成される。仮数は、仮数の小数部を表すnビットの数b0、、・・・である。仮数は、隠れビットおよび小数b、b、b・・・から形成される。隠れビットは、(バイアス)指数により決定され、ゼロまたは1のいずれかであり得、バイアス指数についてはゼロ、他の任意の指数については1である。異なるビット幅を消費して、異なる指数範囲および仮数精度が表現されることを可能にするものなど、異なる形式の浮動小数点数表現が可能である。本技法は、このような全ての形式の浮動小数点数表現と共に使用され得る。
図3は、アンカー付き数を概略的に例示する。アンカー付き数は、ペア(i、a)であり、iが、2の補数の長整数20(アンカー付き仮数)であり、aが、整数の最下位ビットの重み(ゆえに整数の全ビットの重み)を与えるアンカー値22である。アンカー値は、2の補数の整数20のプログラマブルなオペランド重要度を提供する。アンカー付き数は、様々な異なる精度レベル(2の補数の整数20内に設けられるビット)を有し得、アンカー値22により表現され得る様々な範囲の重要度を有する。これらの様々な異なる形式のアンカー付き数が、本技法と共に使用され得る。
図4は、アンカー付き数と共に使用され得る浮動小数点丸めプログラム命令(FRANC命令)を概略的に例示する。この浮動小数点丸めプログラム命令は、操作されるべき浮動小数点数を記憶するレジスタストア18内のレジスタを与える浮動小数点入力オペランドFPregを指定する。浮動小数点丸めプログラム命令のさらなる入力オペランドは、丸めが遂行されるべき浮動小数点数内のビット位置を指定する丸め位置入力オペランドである。それゆえに、この丸め位置入力オペランドは、丸め演算中に使用されるべき浮動小数点入力オペランドの仮数内の可変丸め点を指定する。浮動小数点丸めプログラム命令は、さらなる入力オペランド(例えば、丸めモード)を有し得る。
図4に例示するように、図示する例における丸め点は、二進位置bにあり、これにより、二進桁b〜b[n−1]は、丸められて、二進桁bおよびそれより上位の浮動小数点の仮数の部分に加算される値、すなわち丸め浮動小数点数を出力結果として生成するために丸め点で加算される丸めからの値を生じさせる。よって、図4に例示するように、二進桁b〜b[n−1]は全て、出力結果においてゼロに丸められており、入力された浮動小数点数の二進桁bは、丸めからの値の加算に供されている。
様々な異なる丸めモードが使用され得ることが理解されるであろう。例えば、これらの丸めモードとしては、丸めがゼロに向かってであるモード、ゼロから離れる方向にであるモード、最も近い有意ビットに向かってであるモードなどが挙げられる。浮動小数点丸めプログラム命令FRANCは、様々なこのような丸めモードにおいて使用され得、用いられる丸めモードは、丸めモードパラメータにより指定される。このような丸めモードパラメータは、例えば、データ処理システム2の初期化の一環としてプロセッサコア4の構成レジスタ内で設定されてもよい。
一部の実施形態では、丸め位置入力オペランドが、浮動小数点丸めプログラム命令により丸めがなされるべき浮動小数点数の仮数内のビット位置(例えば、b)を直接指定してもよいことが可能である。あるいは、他の実施形態では、丸め位置入力オペランドは、操作されるべき特定の浮動小数点数の指数値から独立して、丸めが遂行されるべきビット重要度を指定してもよい。この場合、操作される浮動小数点数の仮数に適用されるべき可変丸め点を決定するために、当の浮動小数点数の指数値は、処理回路16により、所望の丸めビット重要度を指定する丸め位置入力オペランドと比較されてもよい。
この第2の手法は、浮動小数点数およびアンカー付き数の使用を混合することが望まれる状況において有用であり得る。このようなシステムでは、アンカー付き数は、それらのアンカー値22により決定される重要度を有することになる。浮動小数点丸め命令FRANCを使用して、アンカー付き数に例えば加算されるべき浮動小数点数を、浮動小数点数がアンカー付き数に一致するビット重要度を有するように、丸めてもよい。よって、浮動小数点数は、アンカー付き数に一致する重要度に丸められることにより、アンカー付き数と共に使用するために準備されてもよく、アンカー付き数の最下位ビットより下の浮動小数点数の仮数の部分は、組み合わせがなされる前に浮動小数点数のより上位の部分に対して遂行される丸めの結果として、組み合わせの結果中に表現される。この状況で、浮動小数点丸めプログラム命令に対する丸め位置入力オペランドは、浮動小数点丸めプログラム命令の出力結果になる丸められた浮動小数点数と組み合わせることが望まれるアンカー付き数のアンカー値22により(直接に、または間接にのいずれかで)提供されてもよい)。図5は、浮動小数点丸めプログラム命令の動作を概略的に例示する流れ図である。遂行される処理ステップは、処理回路16を様々な異なる方法で使用して実装され得る。図5の流れ図は、遂行される処理を直線的な演算シーケンスとして示すが、ステップの様々なが異なる順序で、または重なり合う様式で遂行されるなどの、代替的な配置が可能であることを当業者は理解するであろう。
図5のステップ24では、浮動小数点数が、レジスタストア18内の小数点レジスタから読み出される。ステップ26では、浮動小数点数の仮数内の丸め点を決定するために、浮動小数点数の指数値xを、丸め位置入力オペランドと比較する。ステップ28は、浮動小数点数の仮数をステップ26で決定された丸め点へ丸めることを、データ処理システム2の現在の丸めモードを使用して遂行する。ステップ30は、符号、指数、および小数からなる浮動小数点数である出力結果として返す。
図6は、本開示の異なる例示的な実施形態による変換加算プログラム命令の動作を概略的に例示する。アンカー付き数に一致する重要度を有するように浮動小数点数を丸めることと併せて、このような変換加算プログラム命令を使用して、浮動小数点数をアンカー付き数に加算してもよい。図6に示すように、アンカー付き数は、そのビット重要度を示す関連付けられたアンカー値34を有する2の補数の整数32を含む。アンカー付き数は、変換加算命令に対する1つの入力オペランドとして働く。変換加算命令に対する別の入力オペランドは、浮動小数点数36である。この浮動小数点数36の指数を使用して、入力浮動小数点数の仮数のどの部分が2の補数の整数32の最下位ビット端部と重なり合う重なり合い部分38であるのか、およびどれがアンカー付き数内の最下位ビットのアンカー値34により示されるビット重要度より下位のビット重要度を有する非重なり合い部分40であるのか、を判定してもよい。非重なり合い部分40を使用して、プロセッサコア4により現在使用されている丸めモードに従って丸め値Rを生成する。次いで、変換加算命令は、2の補数の整数32と、浮動小数点数の重なり合い部分38(および浮動小数点数の隠れビット)と、遂行される整数加算に対するキャリーインビットとして働く丸め値Rとの整数加算を遂行する。この整数加算の結果が、変換加算プログラム命令の出力結果である。
図6の変換加算命令の丸め位置入力オペランドは、浮動小数点数36の指数であるとみなされ得る。しかしながら、アンカー値34および浮動小数点数の指数値が両方とも可変である他の実施形態では、丸め位置入力オペランドは、これらの値の両方から、または少なくともこれらの値間の差から形成されるとみなされてもよい。
図7は、変換加算プログラム命令の動作を概略的に例示する流れ図である。前述したように、このような流れ図は、変換加算プログラム命令を実行する際に遂行される処理の概略的表現に過ぎず、本開示の異なる実施形態では他の演算のシーケンスも使用されてもよい。
ステップ42では、アンカー付き数および浮動小数点数が読み出される。ステップ44では、アンカー付き数のアンカー値を、浮動小数点数の指数値と比較して、アンカー付き数と浮動小数点数との間の重なり合いを判定する。ステップ46では、部分的に重なり合う浮動小数点数の非重なり合い部分に関して、現在の丸めモードに従って、丸めからの値Rを取得するために遂行される丸め。ステップ48では、アンカー付き数の2の補数の整数32が、浮動小数点数の重なり合い部分38に加算され、ステップ46で決定された丸めからの値Rが、加算に対するキャリーイン入力として使用される。ステップ50は、出力変換加算プログラム命令の出力結果として、ステップ48で遂行された整数加算の結果を返す。
丸めからの値Rは、丸めビットと呼ばれてもよい。この丸めビットの値は、浮動小数点数の符号と、浮動小数点数の重なり合い部分が浮動小数点数の非重なり合い部分48により示される丸めインクリメントを必要とするかまたは必要としないかとの両方に応じて変化することになる。より具体的には、丸めビットの値は、以下に従って決定されてもよい。
重なり合い部分が正であり、丸めインクリメントを必要としないとき、丸めビットは+0である。
重なり合い部分が正であり、丸めインクリメントを必要とするとき、丸めビットは+1である。
重なり合い部分が負であり、丸めインクリメントを必要としないとき、丸めビットは+1である。
重なり合い部分が負であり、丸めインクリメントを必要とするとき、丸めビットは+0である。
図8は、変換加算プログラム命令を遂行するために使用され得る変換加算ハードウェア52を概略的に例示する。この変換加算ハードウェア52は、データ処理システム2内のSIMDハードウェアと共有されてもよく、それゆえに、アンカー付き数が、複数のレーンであって、各々がそれら自身のそれぞれの2の補数の整数値およびアンカー値を有する、複数のレーン、に分割されるように形成されてもよい。これらのレーンの各々に関連付けられたレーン変換回路54、56、58、60は、それらのそれぞれの関連付けられたアンカー付き数に重なり合う入力浮動小数点数の部分を見つけ出し、これを整数レジスタ62に渡す働きをする。よって、整数レジスタ62内には、入力浮動小数点数の重なり合い部分38に対応する2の補数の整数値が形成される。レーン変換器54、56、58、60の各々は、そのローカルアンカー値を入力浮動小数点数の指数と比較することにより、それ自身の重なり合い部分を見つけ出す働きをする。
浮動小数点数の最下位ビット端部のレーン変換器62に関連付けられているのは、丸め値決定回路64である。この丸め値決定回路64は、最下位レーン変換器60に関連付けられたアンカー値anchorを入力浮動小数点数の指数と共に使用して、入力浮動小数点の仮数の非重なり合い部分40を見つけ出す。次いで、丸め値決定回路64は、この非重なり合い部分40および現在有効な丸めモードを使用して、丸めビットR(丸めからの値)を形成する。
整数加算器66は、整数レジスタ62内で組み立てられた浮動小数点数の重なり合い部分38と、アンカー付き数の仮数(2の補数の整数)と、丸めビットRから形成されるキャリーイン値との整数加算を遂行する。加算器64による加算の結果は、変換加算ハードウェア52の出力結果である。この出力結果は、それぞれのレーンであって、アンカー付き数を表し、各々がそれ自身の2の補数の整数値および関連付けられたアンカー値を有する、それぞれのレーン、から形成されてもよい。
本明細書では例示的な実施形態を添付図面を参照しながら詳細に説明したが、請求項はそれらの実施形態に厳密に限定されるものではないこと、ならびに当業者は、添付請求項の範囲および趣旨から逸脱することなしに、それらの実施形態において様々な変更、追加、および変形を成し遂げることができることが理解されるべきである。例えば、従属請求項の特徴と独立請求項の特徴との様々な組み合わせがなされ得る。

Claims (16)

  1. データを処理するための装置であって、
    プログラム命令の制御下で処理演算を遂行するための処理回路と、
    プログラム命令を復号して、前記処理演算を遂行するように前記処理回路を制御するための制御信号を生成するための復号器と、を備え、
    前記復号器が、所与のプログラム命令および丸め位置入力オペランドに応答して、仮数値を有する浮動小数点入力オペランドを処理して、前記丸め位置入力オペランドにより指定された前記浮動小数点入力オペランドの前記仮数内の可変丸め点を使用して前記浮動小数点入力オペランドを丸めることからの値に応じた出力結果を生成するように前記処理回路を制御するための制御信号を生成する、装置。
  2. 前記所与のプログラム命令が、前記浮動小数点入力オペランドおよび前記丸め位置入力オペランドを含む入力オペランドを指定する浮動小数点丸めプログラム命令である、請求項1に記載の装置。
  3. 前記丸めからの値および前記出力結果が、前記可変点に丸められた前記浮動小数点入力オペランドである、請求項2に記載の装置。
  4. 前記浮動小数点入力オペランドが、指数値を有し、前記処理回路が、前記丸め位置入力オペランドを前記指数値と比較して、前記可変丸め点を決定する、請求項2および3のいずれか一項に記載の装置。
  5. 前記処理回路が、丸めモードパラメータにより指定された丸めモードに従って前記丸めを遂行する、請求項2、3、および4のいずれか一項に記載の装置。
  6. 前記所与のプログラム命令が、プログラマブルなオペランド重要度を有するアンカー付き入力オペランドに前記浮動小数点入力オペランドを加算する変換加算命令である、請求項1〜5のいずれか一項に記載の装置。
  7. 前記浮動小数点入力オペランドの前記仮数が、前記アンカー付き入力オペランドの最下位ビットから前記アンカー付き入力オペランドの前記最下位ビットより下位に延在するビットを含む重要度範囲を有するとき、前記処理回路が、前記アンカー付き入力オペランドと前記アンカー付き入力オペランドの前記最下位ビットに対応する丸め点に丸められた前記浮動小数点入力オペランドの前記仮数との和に対応する前記出力結果を生成する、請求項6に記載の装置。
  8. 前記処理回路が、前記アンカー付き入力オペランドと重要度が重なり合う前記浮動小数点入力オペランドの前記仮数の部分と、前記アンカー付き入力オペランドの仮数と、前記アンカー付き入力オペランドの前記最下位ビットの重要度を有する丸めビットとの整数加算を遂行し、前記丸めビットが、前記丸めからの値である、請求項7に記載の装置。
  9. 前記部分が正であり、丸めインクリメントを必要としないとき、前記丸めビットが+0であり、
    前記部分が正であり、丸めインクリメントを必要とするとき、前記丸めビットが+1であり、
    前記部分が負であり、丸めインクリメントを必要としないとき、前記丸めビットが+1であり、
    前記部分が負であり、丸めインクリメントを必要とするとき、前記丸めビットが+0である、請求項8に記載の装置。
  10. 前記丸め位置オペランドが、前記プログラマブルなオペランド重要度に応じたものである、請求項6〜9のいずれか一項に記載の装置。
  11. 前記プログラマブルなオペランド重要度が、前記アンカー付き入力オペランドの最下位ビット位置を指定する、請求項10に記載の装置。
  12. 前記浮動小数点入力オペランドが、指数値を有し、前記処理回路が、前記プログラマブルなオペランド重要度を前記指数値と比較して、前記可変丸め点を決定する、請求項11に記載の装置。
  13. 前記処理回路が、それぞれの重要度部分前記変換加算命令を実行するための複数の加算器を含み、前記複数の加算器中の最下位加算器が、前記浮動小数点入力オペランドのためのいかなる丸めも提供するための丸め回路を含む、請求項6〜12のいずれか一項に記載の装置。
  14. 前記処理回路が、丸めモードパラメータにより指定された丸めモードに従って前記丸めを遂行する、請求項6〜13のいずれか一項に記載の装置。
  15. データを処理するための装置であって、
    プログラム命令の制御下で処理演算を遂行するための処理手段と、
    プログラム命令を復号して、前記処理演算を遂行するように前記処理手段を制御するための制御信号を生成するための復号手段と、を備え、
    前記復号手段が、所与のプログラム命令および丸め位置入力オペランドに応答して、仮数値を有する浮動小数点入力オペランドを処理して、前記丸め位置入力オペランドにより指定された前記浮動小数点入力オペランドの前記仮数内の可変丸め点を使用して前記浮動小数点入力オペランドを丸めることからの値に応じた出力結果を生成するように前記処理手段を制御するための制御信号を生成する、装置。
  16. データを処理する方法であって、
    所与のプログラム命令および丸め位置入力オペランドを復号して、仮数値を有する浮動小数点入力オペランドを処理して、前記丸め位置入力オペランドにより指定された前記浮動小数点入力オペランドの前記仮数内の可変丸め点を使用して丸められた前記浮動小数点入力オペランドを丸めることからの値に応じた出力結果を生成するように処理回路を制御するための制御信号を生成することを含む、方法。
JP2018516742A 2015-10-07 2016-06-08 浮動小数点数の丸め処理 Active JP6744913B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/877,003 US9817661B2 (en) 2015-10-07 2015-10-07 Floating point number rounding
US14/877,003 2015-10-07
PCT/GB2016/051678 WO2017060667A1 (en) 2015-10-07 2016-06-08 Floating point number rounding

Publications (2)

Publication Number Publication Date
JP2018535476A true JP2018535476A (ja) 2018-11-29
JP6744913B2 JP6744913B2 (ja) 2020-08-19

Family

ID=56137452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018516742A Active JP6744913B2 (ja) 2015-10-07 2016-06-08 浮動小数点数の丸め処理

Country Status (5)

Country Link
US (1) US9817661B2 (ja)
EP (1) EP3341833B1 (ja)
JP (1) JP6744913B2 (ja)
CN (1) CN108139885B (ja)
WO (1) WO2017060667A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018533799A (ja) * 2015-11-12 2018-11-15 エイアールエム リミテッド ベクトルの処理のためのレーン位置情報

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489152B2 (en) * 2016-01-28 2019-11-26 International Business Machines Corporation Stochastic rounding floating-point add instruction using entropy from a register
US10671347B2 (en) 2016-01-28 2020-06-02 International Business Machines Corporation Stochastic rounding floating-point multiply instruction using entropy from a register
WO2018154494A1 (en) 2017-02-23 2018-08-30 Cerebras Systems Inc. Accelerated deep learning
WO2018189728A1 (en) * 2017-04-14 2018-10-18 Cerebras Systems Inc. Floating-point unit stochastic rounding for accelerated deep learning
WO2018193353A1 (en) 2017-04-17 2018-10-25 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
EP3607503B1 (en) 2017-04-17 2022-03-09 Cerebras Systems Inc. Task activating for accelerated deep learning
WO2020044152A1 (en) 2018-08-28 2020-03-05 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
US11328208B2 (en) 2018-08-29 2022-05-10 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
WO2020044208A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Isa enhancements for accelerated deep learning
JP7087918B2 (ja) * 2018-10-31 2022-06-21 富士通株式会社 演算処理装置及びその制御方法
US20210175899A1 (en) * 2019-12-09 2021-06-10 Sap Se Error-bound floating point data compression system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070282938A1 (en) * 2006-06-06 2007-12-06 Mohammad Abdallah Integer rounding operation
JP2010027049A (ja) * 2008-07-22 2010-02-04 Internatl Business Mach Corp <Ibm> 浮動小数点実行ユニットを用いる回路装置、集積回路装置、プログラム製品、および方法(動的値域調整浮動小数点実行ユニット)
US20110055307A1 (en) * 2009-08-28 2011-03-03 Kevin Hurd Method for floating point round to integer operation
US20120215822A1 (en) * 2011-02-22 2012-08-23 Arm Limited Number format pre-conversion instructions

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295203A (en) * 1979-11-09 1981-10-13 Honeywell Information Systems Inc. Automatic rounding of floating point operands
JPS61213927A (ja) * 1985-03-18 1986-09-22 Hitachi Ltd 浮動小数点演算処理装置
JPH0776911B2 (ja) * 1988-03-23 1995-08-16 松下電器産業株式会社 浮動小数点演算装置
US5548544A (en) * 1994-10-14 1996-08-20 Ibm Corporation Method and apparatus for rounding the result of an arithmetic operation
US5696711A (en) * 1995-12-22 1997-12-09 Intel Corporation Apparatus and method for performing variable precision floating point rounding operations
JP3778489B2 (ja) * 2001-06-04 2006-05-24 インターナショナル・ビジネス・マシーンズ・コーポレーション プロセッサ、演算装置及び演算方法
US20060179096A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation System and method for a fused multiply-add dataflow with early feedback prior to rounding
US9223751B2 (en) * 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
US8443029B2 (en) * 2007-03-01 2013-05-14 International Business Machines Corporation Round for reround mode in a decimal floating point instruction
CN101174200B (zh) * 2007-05-18 2010-09-08 清华大学 一种具有五级流水线结构的浮点乘加融合单元
US8386755B2 (en) * 2009-07-28 2013-02-26 Via Technologies, Inc. Non-atomic scheduling of micro-operations to perform round instruction
CN101650642B (zh) * 2009-09-11 2011-01-05 杭州中天微系统有限公司 基于补码舍入的浮点加法装置
US10209986B2 (en) * 2011-12-22 2019-02-19 Intel Corporation Floating point rounding processors, methods, systems, and instructions
US9059726B2 (en) * 2012-05-11 2015-06-16 Arm Limited Apparatus and method for performing a convert-to-integer operation
US9405728B2 (en) * 2013-09-05 2016-08-02 Altera Corporation Floating-point adder circuitry
US9348557B1 (en) * 2014-02-21 2016-05-24 Altera Corporation Fused floating point datapath with correct rounding
US9483232B2 (en) * 2014-03-07 2016-11-01 Arm Limited Data processing apparatus and method for multiplying floating point operands

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070282938A1 (en) * 2006-06-06 2007-12-06 Mohammad Abdallah Integer rounding operation
JP2010027049A (ja) * 2008-07-22 2010-02-04 Internatl Business Mach Corp <Ibm> 浮動小数点実行ユニットを用いる回路装置、集積回路装置、プログラム製品、および方法(動的値域調整浮動小数点実行ユニット)
US20110055307A1 (en) * 2009-08-28 2011-03-03 Kevin Hurd Method for floating point round to integer operation
US20120215822A1 (en) * 2011-02-22 2012-08-23 Arm Limited Number format pre-conversion instructions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018533799A (ja) * 2015-11-12 2018-11-15 エイアールエム リミテッド ベクトルの処理のためのレーン位置情報

Also Published As

Publication number Publication date
CN108139885B (zh) 2023-04-07
CN108139885A (zh) 2018-06-08
EP3341833B1 (en) 2020-01-15
US20170102939A1 (en) 2017-04-13
JP6744913B2 (ja) 2020-08-19
EP3341833A1 (en) 2018-07-04
WO2017060667A1 (en) 2017-04-13
US9817661B2 (en) 2017-11-14

Similar Documents

Publication Publication Date Title
JP6744913B2 (ja) 浮動小数点数の丸め処理
CN107077416B (zh) 用于以选择性舍入模式进行向量处理的装置和方法
JP6487097B2 (ja) 命令に応じた丸め処理の実行
KR102447636B1 (ko) 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법
US11175891B2 (en) Systems and methods to perform floating-point addition with selected rounding
KR102318494B1 (ko) 곱셈 가산기
EP3447634B1 (en) Non-linear function computing device and method
US9104479B2 (en) Apparatus and method for rounding a floating-point value to an integral floating-point value
US9678716B2 (en) Apparatus and method for performing absolute difference operation
US20180307489A1 (en) Apparatus and method for performing multiply-and-accumulate-products operations
JP2012022691A (ja) 精度制御反復算術論理演算ユニット
US20220107805A1 (en) Floating Point Number Format
KR102560424B1 (ko) 와이드 데이터 타입들의 비교
JP4476210B2 (ja) 逆数演算の結果値の初期推定値を求めるデータ処理装置および方法
JP2006228190A (ja) 入力値に逆数演算を実施して結果値を作り出すデータ処理装置および方法
CN110506255B (zh) 节能型可变功率加法器及其使用方法
US8924447B2 (en) Double precision approximation of a single precision operation
Gustafson RISC-V proposed extension for 32-bit posits
US9141586B2 (en) Method, apparatus, system for single-path floating-point rounding flow that supports generation of normals/denormals and associated status flags
KR102706124B1 (ko) 부동 소수점 연산 방법 및 장치
JP2010049611A (ja) Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ
JPH04328630A (ja) 浮動小数点乗除算装置
JPS60254231A (ja) 浮動小数点演算制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200623

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: 20200708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200731

R150 Certificate of patent or registration of utility model

Ref document number: 6744913

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250