Nothing Special   »   [go: up one dir, main page]

JP4413198B2 - 浮動小数点データの総和演算処理方法及びコンピュータシステム - Google Patents

浮動小数点データの総和演算処理方法及びコンピュータシステム Download PDF

Info

Publication number
JP4413198B2
JP4413198B2 JP2006080535A JP2006080535A JP4413198B2 JP 4413198 B2 JP4413198 B2 JP 4413198B2 JP 2006080535 A JP2006080535 A JP 2006080535A JP 2006080535 A JP2006080535 A JP 2006080535A JP 4413198 B2 JP4413198 B2 JP 4413198B2
Authority
JP
Japan
Prior art keywords
exponent
mantissa
sum
group
point data
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.)
Expired - Fee Related
Application number
JP2006080535A
Other languages
English (en)
Other versions
JP2007257269A (ja
Inventor
淳一 稲垣
正夫 小薮
宏明 石畑
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006080535A priority Critical patent/JP4413198B2/ja
Priority to US11/475,048 priority patent/US7873688B2/en
Priority to EP06253422A priority patent/EP1837754A3/en
Priority to KR1020060068362A priority patent/KR100824189B1/ko
Priority to CN2006101078051A priority patent/CN101042638B/zh
Publication of JP2007257269A publication Critical patent/JP2007257269A/ja
Application granted granted Critical
Publication of JP4413198B2 publication Critical patent/JP4413198B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F7/485Adding; Subtracting
    • 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
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、浮動小数点データの総和を演算する浮動小数点データの総和演算処理方法及びコンピュータシステムに関し、特に、複数のコンピュータノードの浮動小数点データの総和を演算する浮動小数点データの総和演算処理方法及びコンピュータシステムに関する。
コンピュータを含むノードを複数設け、これら複数のノードをネットワークで接続した並列計算型コンピュータシステムが提供されている。このような並列計算機では、1ジョブを複数のノードで並列に計算処理し、これらの処理データを、ネットワークを介し、やりとりする。このような並列計算機においては、大規模なものでは、数百〜数千ノードで構成される。
このような並列計算機においては、複数のノードの持つデータを集めて、指定された演算を実行する。これをリダクション処理という。このようなリダクション処理としては、全ノードのデータの総和を求める演算や、全ノードのデータの最大値や最小値を求める演算などがある。
一方、コンピュータの取り扱うデータ形式として、指数部と仮数部で数値を表現する浮動小数点形式は、小数点の位置が一定のところにある固定小数点形式による表現よりも広い範囲の数値が表現できる。図19は、浮動小数点形式の説明図であり、IEEE規格の浮動小数点形式を示す。
図19には、32ビットの単精度浮動小数点データと、64ビットの倍精度浮動小数点データを示す。いずれも、符号ビットと、指数部と、仮数部とからなる。符号ビットは、数値の符号を示し、「1」は負数、「0」は正数を表す。又、指数部は、2のべき乗の整数値を表し、仮数部は、1.0以上〜2.0未満の値(正規化数)を表す。そして、指数表現の結果が、仮数部と乗算され、実際の数値を表す。
このような浮動小数点データの総和演算では、3個以上の浮動小数点データを加算した場合に、3個のデータの加算順序によって、演算結果の数値が異なる。図20及び図21は、総和演算の説明図である。ここでは、倍精度浮動小数点データの値を、16進表示で示してある。
図20に示すように、指数部と仮数部からなる浮動少数点データ1,2,3,4を加算する場合に、データ1,2,3,4の順で加算すると、データ1とデータ2の加算を行い、その加算結果1とデータ3の加算を行い、更に、その加算結果2とデータ4の加算を行う。
一方、図21に示すように、データ1,3,4,2の順で加算すると、データ1とデータ3の加算を行い、その加算結果1とデータ4の加算を行い、更に、その加算結果2とデータ2の加算を行う。
図20、図21の数値例で示されるように、4個のデータの加算結果に相違が現れる。この原因は、1回毎の演算結果が正規化されるため、仮数部の桁落ちが発生するためである。
並列計算機では、1つのジョブを、複数の計算機で並列に実行するため、その並列に実行された途中結果や最終結果を集めて、総和を求める等の演算が必要になる場合がある。この時、データの形式が浮動小数点形式であると、演算順序によって、演算結果が異なることは、並列計算の正確さに影響を与える。このため、演算順序を守らなくても、演算結果の同一性を保証する方法が提案されている。
図22は、かかる従来の浮動小数点データの総和演算の説明図であり、演算順序を守らなくても、演算結果の同一性を保証する方法を示す。
図22に示すように、複数のノードの浮動小数点データの総和演算等を行うリダクション機構を、各ノードと別に設けることが、処理効率の上で、有効である。先ず、ノードの各々は、浮動小数点データの指数部のみを取り出し、その指数部の最大値を求めるように、リダクション機構に指示する。
リダクション機構は、各ノードから送られてくる指数部データを比較し、最大値の指数部のみを保持し、全ノードからの指数部データの比較が終了すると、その最大値の指数部を全ノードに返す。
各ノードは、リダクション機構から返ってきた最大値の指数部に合わせて、仮数部の桁合わせを実行する。そして、各ノードは、その桁合わせした仮数部データの総和を求めるように、リダクション機構に指示する。
リダクション機構は、各ノードから送られてくる仮数部データを加算して、全ノードからの仮数部データの加算が終了すると、その結果を全ノードに返す。
各ノードは、最大値の指数部データと仮数部データの総和から、正規化した浮動小数点データを作成する。
このように、従来技術では、各ノードで、指数部の最大値に合わせて、仮数部データの桁合わせが実行され、その桁合わせ済みのデータが、リダクション機構に送られるため、総和演算の計算順序を気にすることなく、総和演算できる(例えば、特許文献1)。
特表2005−506596号公報
しかしながら、従来技術では、浮動小数点データの総和を求める場合に、指数部の大小比較と仮数部の加算の2回の演算が必要となる。このため、各ノードとリダクション機構とのデータのやりとりも2回必要であり、リダクション処理の時間が長くなる。特に、ノード数が数百〜数千に増えると、その処理時間が長くなり、並列処理の高速化の阻害要因となる。
一方、演算順序を守るため、リダクション機構に、全ノードのデータを記憶する記憶回路を設け、全ノードのデータを受信後、順番に加算を行う方法が考えられる。しかし、ノード数が増加すると、記憶回路の規模が増大し、コスト上昇の原因となる。しかも、全てのノードのデータを受け取ってから計算を開始すると、それだけ、処理時間が長くなる。特に、ノード数が数百〜数千に増えると、その回路規模が大きくなり、且つ処理時間の長さが顕著となる。
本発明の目的は、多数のノードの浮動小数点データの総和演算を高速化するための浮動小数点データの総和演算処理方法及びコンピュータシステムを提供することにある。
又、本発明の他の目的は、演算順序を守ることなく、多数のノードの浮動小数点データの総和演算を高速化し、並列処理に有効な浮動小数点データの総和演算処理方法及びコンピュータシステムを提供することにある。
更に、本発明の他の目的は、不必要な記憶回路を設けることなく、多数のノードの浮動小数点データの総和演算を高速化するための浮動小数点データの総和演算処理方法及びコンピュータシステムを提供することにある。
この目的の達成のため、本発明は、3つ以上の浮動小数点データの総和を、コンピュータを用いて演算する浮動小数点データの総和演算処理方法において、前記浮動小数点データの指数部の上位ビットの大きさにより分けた複数のグループの前記指数部の上位ビットが最大値のグループの仮数部の総和と、前記指数部の上位ビットが2番目に最大値のグループの仮数部の総和とをコンピュータの演算回路が計算するステップと、 前記指数部の上位ビットが最大値のグループの仮数部の総和と、前記指数部の上位ビットが2番目に最大値のグループの仮数部の総和との加算を行う処理をコンピュータの演算回路が実行するステップとを有する
又、本発明のコンピュータシステムは、複数のノードと、前記各ノードから浮動小数点データを受信し、受信した浮動小数点データの総和を演算するリダクション機構とを有し、 前記リダクション機構は、前記受信した浮動小数点データの指数部の上位ビットの大きさにより分けた複数のグループの前記指数部の上位ビットが最大値のグループの仮数部の総和と、前記指数部の上位ビットが2番目に最大値のグループの仮数部の総和とを計算し、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行う。
又、複数のノードと、前記各ノードから浮動小数点データを受信し、受信した浮動小数点データの総和を演算するリダクション機構とを有し、前記各ノードは、ノード内の前記浮動小数点データの指数部の上位ビットの大きさにより分けた複数のグループの前記指数部の上位ビットが最大値のグループの仮数部の総和と、前記指数部の上位ビットが2番目に最大値のグループの仮数部の総和を計算し、前記各グループ毎に計算された計算結果を前記リダクション機構に送り、前記リダクション機構は、複数ノードから受信した浮動小数点データの指数部の上位ビットの大きさにより分けた複数のグループの中で、複数ノードから受信した浮動小数点データの指数部の上位ビットが最大値のグループの仮数部の総和と、前記複数ノードから受信した浮動小数点データの指数部の上位ビットが2番目に最大値のグループの仮数部の総和を計算し、前記リダクション機構における各グループ毎に計算された計算結果を各ノードに返し、前記各ノードは、前記リダクション機構から返ってきた前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行う。
更に、本発明は、好ましくは、前記計算ステップは、前記指数部の上位ビットを比較して、前記比較結果により、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算するステップからなる。
更に、本発明は、好ましくは、前記計算ステップは、前記指数部の下位ビットの値に応じて、前記仮数部をシフトして、データ幅を拡張した仮数部を作成するステップと、前記データ幅を拡張した仮数部を用いて、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算するステップとを有する。
更に、本発明は、好ましくは、前記加算ステップは、前記指数部が2番目に最大値のグループの仮数部の総和結果と、前記指数部が最大値のグループの仮数部の総和結果との桁合わせを行うステップと、前記指数部が最大値のグループの総和結果と、前記桁合わせされた前記指数部が2番目に最大値のグループの仮数部の総和結果とを加算するステップを有する。
更に、本発明は、好ましくは、前記仮数部の加算結果と、前記指数部の上位ビットとから前記浮動小数点データを作成するステップを有する。
本発明では、指数部が最大値のグループの演算結果には、指数値が2以上小さいグループの演算結果が、影響しないことから、指数部が最大値のグループと、指数部が2番目に最大値のグループのみの総和を演算し、指数部が最大値のグループと、指数部が2番目に最大値のグループの総和同士を加算することにより、数値の計算順序に関係なく計算しても、計算結果の同一性を保証できる。
以下、本発明の実施の形態を、コンピュータシステムの構成、リダクション機構の構成、第1の実施の形態、第2の実施の形態、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
――コンピュータシステムの構成――
図1は、本発明のコンピュータシステムの一実施の形態の構成図、図2は、図1のノードのブロック図、図3は、図1のネットワークアダプタのブロック図、図4は、図1の転送データのフレームフォーマット図である。
図1は、コンピュータシステムとして、並列計算機を示す。図1に示すように、並列計算機は、複数(ここでは、4つ)のノード10,11,12,13と、2つのクロスバースイッチ(図中、SWA,SWB)20,21と,リダクション機構22とを有する。各ノード10,11,12,13は、3つのネットワークアダプタ(図中、A,B,Cで示す)14A,14B,14Cを有する。各ノード10,11,12,13のネットワークアダプタ14A,14Bは、各々クロスバースイッチ20,21を介して、相互に通信する。又、各ノード10,11,12,13のネットワークアダプタ14Cは、リダクション機構22と通信する。即ち、各ノード10,11,12,13のネットワークアダプタ14A,14B,14Cのそれぞれは、Ethernet(登録商標)等のインターフェースで、伝送路を介し、クロスバースイッチ20,21,リダクション機構22に接続される。
このノード10(11,12,13)は、図2に示すように、CPU40と、メモリ44と、IOアダプタ46と、前述のネットワークアダプタ14A〜14Cとが、システムコントローラ42を介して接続された計算機である。又、このCPU40,メモリ44、IOアダプタ46の数は、このノードに必要な処理能力に応じて、複数設けても良い。
図1及び図2のネットワークアダプタ14A(14B,14C)は、図3に示すように、システムコントローラ42と接続するホストインターフェイス制御回路50と、送信制御回路52と、伝送路に接続されるネットワークインターフェイス制御回路54と、受信制御回路56とで構成される。このネットワークアダプタ14A(14B,14C)は、ノード間やリダクション機構22とのデータ通信を担当する。
ネットワークアダプタ14A(14B,14C)を介してデータ転送をする場合には、図4に示すようなフレーム形式で通信する。図4に示すフレーム形式は、Ethernet(登録商標)で使用されるフレーム形式を示しており、宛先アドレスと、送信元アドレスと、フレームタイプ(例えば、コマンド種別、データサイズ等)と、データ、フレームチエックサム(例えば、CRC(Cyclic Redundancy Code))とからなる。データ領域のデータ長(データサイズ)は、可変であり、転送データは、必要に応じて、複数個のフレームに分割して転送する。
――リダクション機構の構成――
図5は、図1のリダクション機構の構成図である。図5に示すように、リダクション機構22の主要部は、各ノードからの送受信を制御するネットワーク制御部22−1と、後述する各ノードからの浮動小数点データを所定のデータ形式に変換し、且つ演算結果を浮動小数点データに変換するデータ変換部22−2と、データ変換後の受信データを保持するレジスタ22−3と、リダクションの各種演算を実行する演算回路(ALU1,ALU2)22−4,22−7と、演算結果を保持するレジスタ(R1,R2)22−5,22−8と、データの比較を行う比較回路(CMP)22−6と、レジスタ22−5,22−8を選択するマルチプレクサ22−9とを有する。
データ変換部22−2で変換された受信データは、第1のレジスタ22−3に保持され、第1の演算回路22−4,第2の演算回路22−7、比較回路22−6に入力される。比較回路22−6は、後述するように、指数部の上位ビットを比較する。又、第1の演算回路22−4の演算結果は、第2のレジスタ22−5に保持され、第1の演算回路22−4、比較回路22−6、第3のレジスタ22−8に入力される。
更に、第3のレジスタ22−8の保持データは、第2の演算回路22−7に入力される。比較回路22−6の比較結果に応じて、第1、第2の演算回路22−4,22−7が、加算を行う。第2のレジスタ22−5が、指数部が最大値のグループに対応した仮数部の演算結果を保持し、第3のレジスタ22−8が、指数部が2番目に最大値のグループに対応した仮数部の演算結果を保持する。
この実施の形態では、従来のリダクション機構の構成に、データ変換部22−2、演算回路22−7、レジスタ22−8、マルチプレクサ22−9が付加されている。
――第1の実施の形態――
図6は、本発明の浮動小数点総和演算処理の第1の実施の形態の説明図、図7は、図6のデータ変換処理の説明図、図8は、図6のデータ変換処理で補数をとる場合の処理の説明図、図9は、図5、図6の比較結果による演算処理の説明図、図10と図11は、演算結果を浮動小数点データに変換する処理の説明図、図12は、指数部上位ビットと仮数部の絶対値の関係図である。
図6に示すように、ノード10,11,12,13は、リダクション処理すべき浮動小数点データをそのままリダクション機構22に送り、総和の計算を指示する。
リダクション機構22は、全ノードからの浮動小数点データを到着順に加算して、演算結果を全ノードに返す。この加算処理では、図7、図8で後述するデータ変換処理と、図9で後述する大小比較による加算処理と、図10、図11で後述する演算結果を浮動小数点データに変換する処理を実行する。そして、ノード10,11,12,13は、演算結果をリダクション機構22から受け取る。
次に、このリダクション機構22の総和演算処理を説明する。尚、以下の説明では、図19に示した64ビットの倍精度浮動小数点データを例に説明するが、32ビットの単精度浮動小数点データも同様に処理できる。
図7に示すように、総和演算のデータ幅を決める。演算するデータの最大個数を127個までとする場合には、総和を求める演算では、最大7桁(2の7乗=128)まで、有効桁が増大する可能性がある。そこで、先ず、浮動小数点データの仮数部の桁数(倍精度では、52ビット)と、この桁数(7ビット)とを合計する。即ち、52+7=59ビットとなる。
次に、指数部の下位ビットの削減するビット数を決める。削減するビット数で表現できる桁数が、前記した合計の桁数より大きいことが条件となる。削減するビット数が、5ビットで31桁、6ビットで63桁(2の6乗=64)となる。倍精度では、前記した合計の桁数が59ビットであり、合計値以上の削減ビット数は、指数部の下位6ビットで条件を満足する。
従って、必要なデータ幅は、52(仮数部)+7(増加桁数)+63(シフト量)+2(その他)=124ビットとなる。尚、その他は、仮数部の省略されている最上位桁と符号ビットの2ビットである。
このように、演算データ幅を決定すると、図7のように、浮動小数点データを、このデータ幅の変換データに変換する。即ち、倍精度浮動小数点データの124ビット幅で説明すると、仮数部の最上位桁を補填し、指数部の下位6ビットの値分、シフトした位置に、仮数部をセットする。又、仮数部以外は、「0」をセットする。尚、浮動小数点では、値がゼロ以外の場合、最上位桁の「1」が省略されているため、上述の補填が必要となる。
又、符号が負数を示している場合には、図8のように、124ビット幅に変換した後、2の補数表現に変換する。この仮数部の変換は、図5のデータ変換部22−2が実行し、第1のレジスタ22−3には、指数部上位ビット、変換された仮数部がセットされる。
次に、図9により、総和演算処理を説明する。図9において、指数1、仮数1は、新規に受信した指数部上位ビットと仮数部を表し、指数3、仮数3は、演算結果の指数部上位ビットの最大値とその仮数部を表し、仮数4は、演算結果の指数部上位ビットが2番目の最大値に対応した仮数部を表す。
尚、図5では、指数1、仮数1は、第1のレジスタ22−3に、指数3、仮数3は、第2のレジスタ22−5に、仮数4は、第3のレジスタ22−8にセットされる。第1のレジスタ22−3に、新規に受信した浮動小数点データの指数部上位ビットと仮数部がセットされると、比較回路22−6は、指数1と第2のレジスタ22−5の指数3とを比較する。
図9に示すように、比較回路22−6の比較結果が指数1>指数3+1である場合には、指数1が最大となるため、演算回路22−4を介し、第2のレジスタ22−5に、指数1、仮数1を、新指数3、新仮数3としてセットし、第3のレジスタ22−8には、指数3が、2番目の最大値でないため、「0」をセットする。
又、比較回路22−6の比較結果が指数1=指数3+1である場合には、指数1が最大となるため、演算回路22−4を介し、第2のレジスタ22−5に、指数1、仮数1を、新指数3、新仮数3としてセットし、第3のレジスタ22−8には、指数3が2番目の最大値であるため、第2のレジスタ22−5の仮数3をセットする。
比較回路22−6の比較結果が指数1=指数3である場合には、指数1と指数3が同一の最大値グループとなるため、演算回路22−4に、第2のレジスタ22−5の仮数3に、仮数1を加算するよう指示し、第2のレジスタ22−5に、指数3、仮数1+仮数3を、新指数3、新仮数3としてセットし、第3のレジスタ22−8の値(仮数4)は変更しない。
比較回路22−6の比較結果が指数1+1=指数3である場合には、指数3が最大となるため、第2のレジスタ22−5の指数3、仮数3は変更せず、指数1が、2番目の最大値であるため、演算回路22−7に、第3のレジスタ22−8の仮数4と、仮数1との加算を指示し、第3のレジスタ22−8には、仮数1+仮数4を、新仮数4としてセットする。
比較回路22−6の比較結果が指数1+1<指数3である場合には、指数3が最大となり、指数1が2番目の最大値でないため、第2のレジスタ22−5の指数3、仮数3、第3のレジスタ22−8の仮数4を変更しない。
このようにして、指数部の上位ビットの値が最大値の指数(新指数3)と、指数部の上位ビットが最大の仮数部の演算結果(新仮数3)と、指数部の上位ビットの値が2番目に最大である仮数部の演算結果(新仮数4)が得られる。
次に、この得られた新指数3、新仮数3、新仮数4の3つの値から、正規化した浮動小数点データへの変換処理を図10、図11で説明する。
先ず、図10に示すように、指数部の上位ビットの値が2番目に最大である仮数部の演算結果である仮数4を、指数部の上位ビットの値が最大である仮数部に桁合わせするため64ビット右にシフトし、上位ビットには、ビット123の値(オール“0”又は“1”)を補填する。次に、この桁合わせした仮数4の値と仮数3の値とを加算して、総和を求める。
次に、図11に示すように、指数部上位ビットの最大値である指数3と図10で求めた仮数の総和から、倍精度浮動小数点データに変換する。例えば、5ビット(ビット62〜58)の指数と、124ビットの仮数部とから、後述するように、1ビットの符号と、11ビットの指数部と、52ビットの仮数部を作成する。
図5では、データ変換部22−2が、第2のレジスタ22−5、第3のレジスタ22−8の保持値を得て、前述の桁合わせ、総和、変換を行う。
図12は、指数上位ビットと、仮数部で示される絶対値の範囲の関係図である。先ず、前述のように、指数部の下位ビットを削除し、仮数部に反映することにより、5ビット(ビット62〜58)の指数部と、124ビットの仮数部で、演算データを表現する。この仮数部は、全体の総和を求めた時にも、オーバーフローしないように、演算する最大データ数(前述の図7では、127個)を考慮して、決定する。
図12に示すように、指数の上位ビットの値が同じグループと、グループ毎の総和を演算した結果の指数部と仮数部で表される数値の絶対値の範囲から、ある指数数グループ(ここでは、n)の最下位ビットは、指数値が、2つ離れた指数値グループ(ここでは、n−2)の最上位ビットより、大きい値を示す。
即ち、指数部が最大値のグループの演算結果には、指数値が2以上小さいグループの演算結果が、影響しないことが分かる。これは、指数部の差分により、仮数部の桁合わせを実行した時に、有効桁が無くなり、ゼロを加算する場合と同じ意味である。
そして、指数部が同じグループの総和を求める演算では、指数部の下位ビット(ここでは、6ビット)に応じて、仮数部をシフトして、有効桁を増やしているため、仮数部の桁落ちが生じない。このため、図9に示した指数部が同じグループ同士の演算では、演算順序に関係なく、同じ演算結果となる。
更に、前述のように、指数部が最大値のグループの演算結果には、指数値が2以上小さいグループの演算結果が、影響しないため、指数部が最大値のグループと、2番目に最大値のグループのみの総和を演算する。そして、指数部が最大値のグループと、2番目に最大値のグループの総和を別々に計算して、最後に、桁合わせして、両方の総和を計算することにより、数値の計算順序に関係なく計算しても、計算結果の同一性を保証できる。
次に、図13、図14、図15により、実際の数値を入れた実施例を説明する。ここでは、IEEE規格の倍精度浮動小数点形式データで、指数部の下位6ビットを削除し、仮数部を拡張し、演算データが4個の例で説明する。又、数値の表現は、全て16進数値で表現し、ビット数が「4」に満たない場合は、右つめで表現する。
図13は、データ1,2,3,4の指数部の下位6ビットを削除し、仮数部を拡張した変換データを示す。尚、データ1,2,3,4は、おのおの、10進数値表現で、「2.59407338536541E+18」、「2.88230376151712E+18」、「−2.26673591177743E+23」、「2.26677049942257E+23」である。尚、「E+18」は、10の18乗を示す。
図13のように、データ1は、変換前は、指数=44Cであり、仮数=8 0018 0000 0000であり、符号は、+である。途中1で、省略されている最上位桁「1」を補填し、仮数部を124ビットに拡張する。次に、指数部の下位6ビット(=0C)により、124ビットの仮数部を、左に12ビットシフトする。指数部は、上位5ビットを記憶する。この5ビットの指数値が指数グループを示す。
データ2も同様であり、符号が負数を示すため、変換データの補数演算を追加している。以下、同様にして、データ3,4の変換データを得る。
次に、データ1,2,3,4は、それぞれ、指数値グループ毎に、演算される。図13から理解されるように、データ1と2は、同じ指数値グループであり、データ3,4は、別の同じ指数値グループである。図14に示すように、データ1の仮数部とデータ2の仮数部を加算して、指数値グループ(指数=11)の仮数3(図9参照)を得る。
次に、同様に、データ3の仮数部とデータ4の仮数部を加算して、指数値グループ(指数=10)の仮数4(図9参照)を得る。そして、仮数4は、仮数3に比べて、指数部が、64(=6ビット)違うので、図10の原理で、指数部を合わせるため、仮数4を右に64ビットシフトする。そして、そのシフトした値を、仮数3に加算して、最終演算結果を求める。
この最終演算結果を、図15のように、倍精度浮動小数点形式に変換する。途中1では、指数グループが上位5ビットで示されているため、省略されている下位6ビットにゼロを補填する。次に、途中2では、倍精度浮動小数点の仮数部の有効桁数が、53ビットのため、53ビットの仮数部に変換する。この時、仮数部の53ビットの左端が「1」になるように変換する。図15では、下位53ビットを左に、3ビットシフトした値が、仮数部となり、左に3ビットシフトしたので、指数部を「−3」の値に変更する。変換後の符号は、124ビットの仮数部の左端の値がそのまま符合ビットとなる。
途中3では、53ビットの仮数部の中で、左端の1ビットは省略するので、浮動小数点形式で使用するのは、52ビットとなる。変換後は、1ビットの符号ビットと、11ビットの指数部と、52ビットの仮数部からなる倍精度浮動小数点形式のデータが得られる。
――第2の実施の形態――
図16は、本発明の第2の実施の形態の浮動小数点総和演算処理の説明図、図17は、そのリダクション機構の構成図、図18は、図17の比較結果と演算処理の関係図である。この実施の形態は、ノード内に複数のCPU40が存在し、最初にノード内で、ノード内の浮動小数点総和演算を実施してから、次に、リダクション機構22で、全ノードの浮動小数点総和演算を実施する例である。
図16に示すように、各ノード10,11,12,13は、複数のCPUの浮動小数点データ総和演算を、前述の図7〜図9の処理により、指数値グループ毎の総和を求める。そして、求められ指数部と仮数部を、リダクション機構22に送り、ノード間の総和の計算を指示する。
リダクション機構22は、図17に示すように、図5の構成に比し、データ変換部22−2を備えていない。即ち、変換された指数部と仮数部とが送られるため、変換動作は必要ない。そして、リダクション機構22は、全ノードからの指数部と仮数部のデータを到着順に加算して、演算結果を全ノードに返す。この加算処理では、図18で後述する大小比較による加算処理を実行する。そして、ノード10,11,12,13は、演算結果をリダクション機構22から受け取り、図10と図11で示した正規化した浮動小数点データを作成する。
次に、リダクション機構22の総和演算処理を、図18で説明する。図18において、図9と同様に、指数1、仮数1は、新規に受信した指数部上位ビットと仮数部を表し、仮数2は、新規に受信したデータの指数部上位ビットが2番目の最大値に対応した仮数部、指数3、仮数3は、演算結果の指数部上位ビットの最大値とその仮数部を表し、仮数4は、演算結果の指数部上位ビットが2番目の最大値に対応した仮数部を表す。
又、図17では、指数1、仮数1、仮数2は、第1のレジスタ22−3に、指数3、仮数3は、第2のレジスタ22−5に、仮数4は、第3のレジスタ22−8にセットされる。第1のレジスタ22−3に、新規に受信した浮動小数点データの指数部上位ビットと仮数部がセットされると、比較回路22−6は、指数1と第2のレジスタ22−5の指数3とを比較する。
図18に示すように、比較回路22−6の比較結果が指数1>指数3+1である場合には、指数1が最大となるため、演算回路22−4を介し、第2のレジスタ22−5に、指数1、仮数1を、新指数3、新仮数3として、セットし、第3のレジスタ22−8には、仮数2をセットする。
又、比較回路22−6の比較結果が指数1=指数3+1である場合には、指数1が最大となるため、演算回路22−4を介し、第2のレジスタ22−5に、指数1、仮数1を、新指数3、新仮数3として、セットし、第3のレジスタ22−8には、2番目の最大値が指数3であるため、演算回路22−7で、仮数2+仮数3を演算し、仮数2+仮数3がセットされる。
比較回路22−6の比較結果が指数1=指数3である場合には、指数1と指数3が同一の最大値グループとなるため、演算回路22−4に、第2のレジスタ22−5の仮数3に、仮数1を加算するよう指示し、第2のレジスタ22−5に、指数3、仮数1+仮数3を、新指数3、新仮数3としてセットし、第3のレジスタ22−8には、演算回路22−7で、仮数2+仮数4を演算し、仮数2+仮数4がセットされる。
比較回路22−6の比較結果が指数1+1=指数3である場合には、指数3が最大となるため、第2のレジスタ22−5の指数3、仮数3を変更せず、指数1が、2番目の最大値であるため、演算回路22−4に、第3のレジスタ22−8の仮数4と、仮数1との加算を指示し、第3のレジスタ22−8に、仮数1+仮数4を、新仮数4としセットする。
比較回路22−6の比較結果が指数1+1<指数3である場合には、指数3が最大となり、指数1が2番目の最大値でないため、第2のレジスタ22−5の指数3、仮数3、第3のレジスタ22−8の仮数4を変更しない。
このようにして、指数部の上位ビットの値が最大値の指数(新指数3)と、指数部の上位ビットが最大の仮数部の演算結果(新仮数3)と、指数部の上位ビットの値が2番目に最大である仮数部の演算結果(新仮数4)が得られる。
最後に、指数3、仮数3、仮数4の3つのデータを全ノードへ返す。全ノードは、受け取った指数3、仮数3、仮数4から正規化した浮動小数点データを作成する。
このように、ノード内で、ノード内の浮動小数点総和演算を行い、リダクション機構で、ノード間の浮動小数点総和演算を行うこともできる。
――他の実施の形態――
前述の実施の形態では、64ビットの倍精度浮動小数点データで説明したが、32ビットの単精度浮動小数点データにも適用できる。この場合には、増加桁数は、データ最大個数に依存するため、7ビットと同じであるが、シフト量は、削減するビット数が5ビットで良いため、データ幅は、23(仮数部)+7+31+2=63ビットとなる。
又、4ノードの並列計算機で説明したが、2ノード以上の並列計算機に適用できる。又、ノードの構成を、CPU,メモリ等のコンピュータユニットで説明したが、他のコンピュータ構成のものでも良い。更に、伝送路のフォーマットは、Ethernet(登録商標)に限らず、他のネットワークプロトコルを適用できる。
(付記1)3つ以上の浮動小数点データの総和を演算する浮動小数点データの総和演算処理方法において、前記浮動小数点データの指数部の大きさにより分けた複数のグループの前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算するステップと、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行うステップとを有することを特徴とする浮動小数点データの総和演算処理方法。
(付記2)前記計算ステップは、前記指数部の上位ビットを比較して、前記比較結果により、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算するステップからなることを特徴とする付記1の浮動小数点データの総和演算処理方法。
(付記3)前記計算ステップは、前記指数部の下位ビットの値に応じて、前記仮数部をシフトして、データ幅を拡張した仮数部を作成するステップと、前記データ幅を拡張した仮数部を用いて、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算するステップとを有することを特徴とする付記1の浮動小数点データの総和演算処理方法。
(付記4)前記加算ステップは、前記指数部が2番目に最大値のグループの仮数部の総和結果と、前記指数部が最大値のグループの仮数部の総和結果との桁合わせを行うステップと、前記指数部が最大値のグループの総和結果と、前記桁合わせされた前記指数部が2番目に最大値のグループの仮数部の総和結果とを加算するステップを有することを特徴とする付記1の浮動小数点データの総和演算処理方法。
(付記5)前記仮数部の加算結果と、前記指数部の上位ビットとから前記浮動小数点データを作成するステップを更に有することを特徴とする付記1の浮動小数点データの総和演算処理方法。
(付記6)複数のノードと、前記各ノードの浮動小数点データの総和を演算するリダクション機構とを有し、前記リダクション機構は、前記浮動小数点データの指数部の大きさにより分けた複数のグループの前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算し、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行うことを特徴とするコンピュータシステム。
(付記7)前記リダクション機構は、前記指数部の上位ビットを比較して、前記比較結果により、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算することを特徴とする付記6のコンピュータシステム。
(付記8)前記リダクション機構は、前記指数部の下位ビットの値に応じて、前記仮数部をシフトして、データ幅を拡張した仮数部を作成し、前記データ幅を拡張した仮数部を用いて、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算することを特徴とする付記6のコンピュータシステム。
(付記9)前記リダクション機構は、前記指数部が2番目に最大値のグループの仮数部の総和結果と、前記指数部が最大値のグループの仮数部の総和結果との桁合わせを行い、前記指数部が最大値のグループの総和結果と、前記桁合わせされた前記指数部が2番目に最大値のグループの仮数部の総和結果とを加算することを特徴とする付記6のコンピュータシステム。
(付記10)前記リダクション機構は、前記仮数部の加算結果と、前記指数部の上位ビットとから前記浮動小数点データを作成することを特徴とする付記6のコンピュータシステム。
(付記11)複数のノードと、前記各ノードの浮動小数点データの総和を演算するリダクション機構とを有し、前記各ノードは、ノード内の前記浮動小数点データの指数部の大きさにより分けた複数のグループの前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和を計算し、計算結果を前記リダクション機構に送り、前記リダクション機構は、複数ノードの指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和を計算し、計算結果を各ノードに返し、前記各ノードは、前記リダクション機構から返ってきた前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行うことを特徴とするコンピュータシステム。
(付記12)前記各ノードは、前記指数部の上位ビットを比較して、前記比較結果により、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算することを特徴とする付記11のコンピュータシステム。
(付記13)前記各ノードは、前記指数部の下位ビットの値に応じて、前記仮数部をシフトして、データ幅を拡張した仮数部を作成し、前記データ幅を拡張した仮数部を用いて、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算することを特徴とする付記11のコンピュータシステム。
(付記14)前記各ノードは、前記指数部が2番目に最大値のグループの仮数部の総和結果と、前記指数部が最大値のグループの仮数部の総和結果との桁合わせを行い、前記指数部が最大値のグループの総和結果と、前記桁合わせされた前記指数部が2番目に最大値のグループの仮数部の総和結果とを加算することを特徴とする付記11のコンピュータシステム。
(付記15)前記各ノードは、前記仮数部の加算結果と、前記指数部の上位ビットとから前記浮動小数点データを作成することを特徴とする付記11のコンピュータシステム。
(付記16)複数のノードと、前記各ノードの浮動小数点データの総和を演算するリダクション機構とを有し、前記各ノードは、ノード内の前記浮動小数点データの指数部の大きさにより分けた複数のグループの前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和を計算し、その計算結果を前記リダクション機構に送り、前記リダクション機構は、複数ノードの指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和を計算し、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行う、ことを特徴とするコンピュータシステム。
(付記17)コンピュータに、3つ以上の浮動小数点データの総和を演算させるプログラムであって、前記浮動小数点データの指数部の大きさにより分けた複数のグループの前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和とを計算するステップと、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行うステップとを、前記コンピュータに実行させることを特徴とするプログラム。
指数部が最大値のグループの演算結果には、指数値が2以上小さいグループの演算結果が、影響しないことから、指数部が最大値のグループと、2番目に最大値のグループのみの総和を演算し、指数部が最大値のグループと、2番目に最大値のグループの総和同士を加算することにより、数値の計算順序に関係なく計算しても、計算結果の同一性を保証できる。
本発明の一実施の形態のコンピュータシステムの構成図である。 図1のノードの構成図である。 図1及び図2のネットワークアダプタの構成図である。 図1の伝送フレームのフォーマット図である。 図1のリダクション機構の構成図である。 本発明の第1の実施の形態の浮動小数点データの総和演算処理の説明図である。 図6のデータ変換処理の説明図である。 図7の補数データ作成処理の説明図である。 図5の比較結果と演算処理の関係図である。 図6の総和加算処理の説明図である。 図6の浮動小数点データへの変換処理の説明図である。 図6の指数の上位ビットと、仮数部の絶対値の関係図である。 図6のデータ変換処理の実施例の説明図である。 図6の総和加算処理の実施例の説明図である。 図6の浮動小数点データへの変換処理の実施例の説明図である。 本発明の第2の実施の形態の浮動小数点データの総和演算処理の説明図である。 図16のリダクション機構の構成図である。 図17の比較結果と演算処理の関係図である。 浮動小数点データのフォーマットの説明図である。 従来の浮動小数点データの総和演算処理の説明図である。 図20の計算順序を入れ替えた、従来の浮動小数点データの総和演算処理の説明図である。 従来の計算順序を守らなくても良い浮動小数点データの総和演算処理の説明図である。
符号の説明
10,11,12,13 ノード
14A,14B,14C ネットワークアダプタ
20,21 クロスバースイッチ
22 リダクション機構(浮動小数点総和演算回路)
40 CPU
42 システムコントローラ
44 メモリ
46 IOアダプタ
50 ホスト インターフェイス制御回路
52 送信制御回路
54 ネットワーク インターフェイス制御回路
56 受信制御回路

Claims (3)

  1. 3つ以上の浮動小数点データの総和を、コンピュータを用いて演算する浮動小数点データの総和演算処理方法において、
    前記浮動小数点データの指数部の上位ビットの大きさにより分けた複数のグループの前記指数部の上位ビットが最大値のグループの仮数部の総和と、前記指数部の上位ビットが2番目に最大値のグループの仮数部の総和とをコンピュータの演算回路が計算するステップと、
    前記指数部の上位ビットが最大値のグループの仮数部の総和と、前記指数部の上位ビットが2番目に最大値のグループの仮数部の総和との加算を行う処理をコンピュータの演算回路が実行するステップとを有する
    ことを特徴とする浮動小数点データの総和演算処理方法。
  2. 複数のノードと、
    前記各ノードから浮動小数点データを受信し、受信した浮動小数点データの総和を演算するリダクション機構とを有し、
    前記リダクション機構は、前記受信した浮動小数点データの指数部の上位ビットの大きさにより分けた複数のグループの前記指数部の上位ビットが最大値のグループの仮数部の総和と、前記指数部の上位ビットが2番目に最大値のグループの仮数部の総和とを計算し、前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行う
    ことを特徴とするコンピュータシステム。
  3. 複数のノードと、
    前記各ノードから浮動小数点データを受信し、受信した浮動小数点データの総和を演算するリダクション機構とを有し、
    前記各ノードは、ノード内の前記浮動小数点データの指数部の上位ビットの大きさにより分けた複数のグループの前記指数部の上位ビットが最大値のグループの仮数部の総和と、前記指数部の上位ビットが2番目に最大値のグループの仮数部の総和を計算し、前記各グループ毎に計算された計算結果を前記リダクション機構に送り、
    前記リダクション機構は、複数ノードから受信した浮動小数点データの指数部の上位ビットの大きさにより分けた複数のグループの中で、複数ノードから受信した浮動小数点データの指数部の上位ビットが最大値のグループの仮数部の総和と、前記複数ノードから受信した浮動小数点データの指数部の上位ビットが2番目に最大値のグループの仮数部の総和を計算し、前記リダクション機構における各グループ毎に計算された計算結果を各ノードに返し、
    前記各ノードは、前記リダクション機構から返ってきた前記指数部が最大値のグループの仮数部の総和と、前記指数部が2番目に最大値のグループの仮数部の総和との加算を行う
    ことを特徴とするコンピュータシステム。
JP2006080535A 2006-03-23 2006-03-23 浮動小数点データの総和演算処理方法及びコンピュータシステム Expired - Fee Related JP4413198B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006080535A JP4413198B2 (ja) 2006-03-23 2006-03-23 浮動小数点データの総和演算処理方法及びコンピュータシステム
US11/475,048 US7873688B2 (en) 2006-03-23 2006-06-27 Processing method and computer system for summation of floating point data
EP06253422A EP1837754A3 (en) 2006-03-23 2006-06-29 Processing method and computer system for summation of floating point data
KR1020060068362A KR100824189B1 (ko) 2006-03-23 2006-07-21 부동 소수점 데이터의 총합 연산 처리 방법 및 컴퓨터시스템
CN2006101078051A CN101042638B (zh) 2006-03-23 2006-07-21 浮点数求和的处理方法及计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006080535A JP4413198B2 (ja) 2006-03-23 2006-03-23 浮動小数点データの総和演算処理方法及びコンピュータシステム

Publications (2)

Publication Number Publication Date
JP2007257269A JP2007257269A (ja) 2007-10-04
JP4413198B2 true JP4413198B2 (ja) 2010-02-10

Family

ID=38197941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006080535A Expired - Fee Related JP4413198B2 (ja) 2006-03-23 2006-03-23 浮動小数点データの総和演算処理方法及びコンピュータシステム

Country Status (5)

Country Link
US (1) US7873688B2 (ja)
EP (1) EP1837754A3 (ja)
JP (1) JP4413198B2 (ja)
KR (1) KR100824189B1 (ja)
CN (1) CN101042638B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4629750B2 (ja) * 2008-03-31 2011-02-09 日立オートモティブシステムズ株式会社 組み込み制御装置
US8402075B2 (en) * 2009-03-16 2013-03-19 Advanced Micro Devices, Inc. Mechanism for fast detection of overshift in a floating point unit of a processing device
US8150902B2 (en) 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
US20110060892A1 (en) * 2009-09-09 2011-03-10 Via Technologies, Inc. Speculative forwarding of non-architected data format floating point results
CN101847087B (zh) * 2010-04-28 2012-03-28 中国科学院自动化研究所 一种支持定浮点可重构的横向求和网络结构
JP4883251B1 (ja) * 2010-06-22 2012-02-22 日本電気株式会社 半導体集積回路及び指数算出方法
CN102799411B (zh) * 2012-06-29 2015-09-09 华为技术有限公司 浮点数累加电路及其实现方法
GB2539881B (en) 2015-06-24 2018-07-25 Advanced Risc Mach Ltd An apparatus and method for processing floating point values
CN106557299B (zh) * 2016-11-30 2019-08-30 上海兆芯集成电路有限公司 浮点操作数计算方法以及使用此方法的装置
JP7159696B2 (ja) 2018-08-28 2022-10-25 富士通株式会社 情報処理装置,並列計算機システムおよび制御方法
JP2021124849A (ja) * 2020-02-04 2021-08-30 富士通株式会社 演算処理装置、演算処理装置の制御方法及び演算処理プログラム
CN114546331A (zh) * 2020-11-27 2022-05-27 中科寒武纪科技股份有限公司 累加装置、方法及可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4054787A (en) * 1975-06-06 1977-10-18 The United States Of America As Represented By The Secretary Of The Navy Apparatus for computing an arithmetically accumulated sequence of numbers
JPH0285922A (ja) 1988-09-22 1990-03-27 Fujitsu Ltd 演算回路
US5117384A (en) 1990-01-24 1992-05-26 International Business Machines Corporation Method and apparatus for exponent adder
US5359548A (en) * 1992-04-15 1994-10-25 Fujitsu Limited Floating-point arithmetic system having multiple-input addition and subtraction means
JPH0635671A (ja) * 1992-07-14 1994-02-10 Matsushita Electric Ind Co Ltd 浮動小数点加減算装置
JP4629307B2 (ja) 2001-02-24 2011-02-09 インターナショナル・ビジネス・マシーンズ・コーポレーション トーラス・ネットワークおよびツリー・ネットワークでの算術機能
ATE479147T1 (de) * 2001-02-24 2010-09-15 Ibm Neuartiger massivparalleler supercomputer
US6889241B2 (en) * 2001-06-04 2005-05-03 Intel Corporation Floating point adder
US20030154227A1 (en) 2002-02-08 2003-08-14 Intel Corporation Multi-threaded multiply accumulator

Also Published As

Publication number Publication date
US20070226288A1 (en) 2007-09-27
EP1837754A2 (en) 2007-09-26
US7873688B2 (en) 2011-01-18
KR100824189B1 (ko) 2008-04-21
CN101042638A (zh) 2007-09-26
EP1837754A3 (en) 2008-10-01
JP2007257269A (ja) 2007-10-04
KR20070096740A (ko) 2007-10-02
CN101042638B (zh) 2012-03-21

Similar Documents

Publication Publication Date Title
JP4413198B2 (ja) 浮動小数点データの総和演算処理方法及びコンピュータシステム
US9639326B2 (en) Floating-point adder circuitry
JP4546413B2 (ja) 並列計算機のリダクション処理方法及び並列計算機
JP7525237B2 (ja) 効率的パラメータ・アップデートのための削減された精度パラメータを有する機械学習ハードウェア
US9847913B2 (en) System and method for gathering information
US8051117B2 (en) Shift significand of decimal floating point data
US11328038B2 (en) Computational units for batch normalization
JP2000347832A (ja) 浮動小数点演算方式ならびに浮動小数点演算装置およびそれを備える半導体集積回路装置
US8788561B2 (en) Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit
CN112783469A (zh) 一种用于执行浮点指数运算的方法及装置
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
CN112711441A (zh) 用于转换数据类型的转换器、芯片、电子设备及其方法
JP6069690B2 (ja) 演算回路及び演算回路の制御方法
CN112711440A (zh) 用于转换数据类型的转换器、芯片、电子设备及其方法
CN101930354B (zh) 微处理器及其执行指令的方法
JP7044528B2 (ja) リーディングゼロ予想
US9128758B2 (en) Encoding densely packed decimals
CN104281433A (zh) 用于计算基于数据的函数模型的模型计算单元和控制器
CN111313906B (zh) 一种浮点数的转换电路
US10877764B2 (en) Vector processor, operation performing method, and non-transitory computer-readable recording medium for recording program
JP2002318792A (ja) データ演算処理装置及びデータ演算処理プログラム
JP2011028421A (ja) 並列計算機と並列計算機の計算方法
JP3803653B2 (ja) 乗算処理装置
KR20230090254A (ko) 부동 소수점 연산 방법 및 장치
Zhbannikov et al. Allocating the chains of consecutive additions for optimal fixed-point data path synthesis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091019

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

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

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

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4413198

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131127

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees