JP2014041563A - 演算回路、演算処理装置、及び演算処理装置の制御方法 - Google Patents
演算回路、演算処理装置、及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP2014041563A JP2014041563A JP2012184594A JP2012184594A JP2014041563A JP 2014041563 A JP2014041563 A JP 2014041563A JP 2012184594 A JP2012184594 A JP 2012184594A JP 2012184594 A JP2012184594 A JP 2012184594A JP 2014041563 A JP2014041563 A JP 2014041563A
- Authority
- JP
- Japan
- Prior art keywords
- mantissa
- exponent
- value
- addition
- digit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4912—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49915—Mantissa overflow or underflow in handling floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation mentioned as feature only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
【解決手段】演算回路は、第1の指数部から第2の指数部と第1の仮数部の先行ゼロ計数値とを減算した値をシフト量として生成するとともに、第1の指数部から第1の仮数部の先行ゼロ計数値と第1の所定値とを減算した第3の指数部を生成する演算部と、シフト量に基づき第1の仮数部をシフトしたシフト後仮数部を生成するシフト部と、シフト後仮数部と第2の仮数部の一部を加算した加算値を生成するとともに、加算により生じたキャリーを生成する加算部と、シフト後仮数部とシフト量とキャリーとを入力し、桁溢れ及び桁落ちが生じる旨をそれぞれ表すフラグを生成する予測部と、加算値と第3の指数部とフラグとに基づいて、補正値仮数部と補正値指数部を生成する生成部を有する。
【選択図】図23
Description
z = fi(x + y)
zz = get_zz(x, y)
return(z, zz)
fi(x+y)と書かれた演算は、固定精度浮動小数点演算としての加算である。get_zzが新たに追加された命令である。
ここでM00、M01、M02、・・・は、最大20バイトで表現される仮数部における第1バイト、第2バイト、第3バイト、・・・の各バイトの格納データを示す。仮数部は10進2桁毎に区切られているため、100進20桁とみなすこともできる。Oracle−numberは、この100進表現でみなしたときに必ず正規化されており、M00部(仮数部第1バイト)が0になることはない。
number == 0 の場合:第1バイト = 128
それ以外の場合:第1バイト = 62 - exp
第2バイト以降の仮数部は、バイト毎にM00、M01、・・・を保持する。各バイトにおいては、表現する数値の符号に応じて、以下に示すように異なった符号化がもちいられる。
number == 0 の場合:仮数部はない
それ以外の場合:仮数部の第nバイト = 101 - M(n-1)
上記の符号化において、Mnは0以上且つ99以下であるので、仮数部バイトの値に0X00が出現することがない。表現対象の数が短い仮数部で表現可能な場合には、Oracle−numberは21バイトよりも短く切り詰められる。即ち、Oracle−numberの仮数部には後続ゼロは許されていない。なお負数の表現においては、仮数部が 20バイトよりも短い場合には、仮数の終端を示すため、最後のバイトにターミネータとして102(0X66)が格納される。
(a)演算が加算である(OP1とOP2の符号が等しい)。
(b)get_zzにおける加算処理が桁溢れをする。
(c)指数が大きいほうの仮数部のMSBからM−1(2進数ならば12、2進化10進数ならば10012)が連続する数を計数し、その値が桁合わせシフト値以上である。
この条件ならば下位の桁上げ信号が伝搬して、fi(x+y)側で桁溢れが発生する条件の全てを包含することが可能であり、非正規化数がOP1及びOP2として入力された場合も包含できる。
(a)演算が加算である、
(b)下位側加算処理で桁溢れが発生する(CLO=1)、
(c)指数部が大きいほうの仮数部のMSBからM−1の個数を計数し、その値が桁合わせシフト以上である(L(M−1)C{T1}>SA)、
を満たせば桁溢れが発生する。
(a)演算が減算である(OP1とOP2の符号が異なる)。
(b)get_zzにおける減算処理が桁落ちをする。
(c)指数が大きいほうの仮数部の先行ゼロ計数(ただし初めに現れた1は0としてカウントする)をし、その値が桁合わせシフト値以上である。
この条件ならば下位の桁落ち信号が伝搬して、fi(x+y)側で少なくとも1桁が桁落ちする条件の全てを包含することが可能であり、非正規化数がOP1、OP2として入力された場合も包含できる。
(d)桁合わせシフト値は指数が大きいほうの仮数部の先行ゼロ計数値(ただし初めに現れた1は0としてカウントする)に1を加算した値に等しい。
即ち、桁落ちが2桁以上発生した場合はget_zzからそれに応じた桁数を追い出さなければならないように思えるが、(d)の条件が絶対条件であるため、この処理はget_zzの結果から桁を全て追い出す処理に等しい。しかし(d)の条件が合致する時、桁落ちを考慮せずとも、get_zz側に残るべき桁は1桁しか残っていない。従って1桁だけ追い出せばget_zzの結果から全ての桁を追い出す処理を行ったことになる。これは少なくとも1桁が桁落ちするケースと処理が同様となる。
T[N″−1]=1である必要がある。従って桁落ちの条件は、
(a)演算が減算である、
(b)下位側減算処理で桁落ちが発生する(BL0=1)、
(c)指数部が大きいほうの仮数部のMSBから0の個数を計数し(ただし計数中に1が出現したならば1回だけ0としてカウントする)、その値が桁合わせシフト以上である(specialityLZC{T1}≧SA)、
を満たせば桁落ちが発生する。
左シフトされた仮数T1と右シフトされた仮数T2の下位14桁(56bit)が絶対値加算器268に入力される。減算の場合は、減数の仮数を反転することで1の補数を生成して入力し、絶対値加算器268にキャリーとして1を入力する。絶対値加算器268は、入力の下位14桁(56ビット)を加算し、結果を重複桁追い出し回路270に出力する。またキャリーアウトが、絶対値加算器268からOVF・UDF予測回路269に供給される。
171 メモリ
172 2次キャッシュ部
173 1次キャッシュ部
173A 命令キャッシュ
173B データキャッシュ
174 制御部
175 演算部
176 レジスタ
177 演算制御部
178 演算器
179 演算回路
Claims (7)
- N進法(Nは2以上の整数)による第1の浮動小数点数と前記N進法による前記第1の浮動小数点数以下の第2の浮動小数点数を加減算した値である加減算値に対する補正値を算出する演算回路において、
前記第1の浮動小数点数の符号部である第1の符号部と、前記第1の浮動小数点数の仮数部である第1の仮数部と、前記第1の浮動小数点数の指数部である第1の指数部を保持する第1の入力レジスタと、
前記第2の浮動小数点数の符号部である第2の符号部と、前記第2の浮動小数点数の仮数部である第2の仮数部と、前記第2の浮動小数点数の指数部である第2の指数部を保持する第2の入力レジスタと、
前記第1の指数部から前記第2の指数部を減算した値からさらに前記第1の仮数部の先行ゼロ計数値を減算した値をシフト量として生成するとともに、前記第1の指数部から前記第1の仮数部の先行ゼロ計数値を減算した値から第1の所定値を減算した第3の指数部を生成する演算部と、
生成された前記シフト量に基づき、前記第1の仮数部をシフトしたシフト後仮数部を生成するシフト部と、
生成された前記シフト後仮数部と前記第2の仮数部の一部を加算した加算値を生成するとともに、加算により生じるキャリーの有無を示すキャリー情報を生成する加算部と、
前記シフト後仮数部と前記シフト量と前記キャリー情報を基に、桁溢れ又は桁落ちを示すフラグを生成する予測部と、
前記第1の指数部から前記第1の仮数部の先行ゼロ計数値を減算した第1の値と前記第2の指数部から前記第2の仮数部の先行ゼロ計数値を減算した第2の値との差が第2の所定値以上の場合、前記第2の入力レジスタに保持される前記第2の符号部と前記第2の仮数部と前記第2の指数部とに基づいて、前記加減算値に対する正規化された補正値の仮数部である補正値仮数部と正規化された前記補正値の指数部である補正値指数部を生成するとともに、前記差が前記第2の所定値未満の場合、前記加算値と前記第3の指数部と前記シフト量と前記フラグとに基づいて、前記補正値仮数部と前記補正値指数部を生成する生成部
を有することを特徴とする演算回路。 - 前記演算回路において、前記演算部は、前記第1の仮数部の先行ゼロ計数値が奇数の場合、前記第1の指数部から前記第2の指数部を減算した値からさらに前記第1の仮数部の先行ゼロ計数値を減算した値を1減分した値を前記シフト量として生成することを特徴とする請求項1記載の演算回路。
- 前記演算回路において、前記予測部は、前記シフト後仮数部と前記シフト量と前記キャリー情報を入力し、前記シフト後仮数部の先頭桁から前記N進法による計数した1桁の所定数が連続する個数が前記シフト量以上であり、かつ、前記キャリー情報が1であり、かつ、演算が加算の場合、前記桁溢れを示す前記フラグを生成するとともに、前記シフト後仮数部の先頭桁から計数した0が連続する個数が前記シフト量以上であり、かつ、前記キャリー情報が1であり、かつ、演算が減算の場合、前記桁落ちを示す前記フラグを生成することを特徴とする請求項1記載の演算回路。
- 前記演算回路において、前記予測部は、前記シフト後仮数部の先頭桁から0が連続する個数を計数する場合に、1が出現したときは1回だけ出現した前記1を0として計数することを特徴とする請求項3記載の演算回路。
- 前記演算回路において、前記生成部は、前記第1の仮数部の桁幅と前記シフト量と前記フラグに基づきマスク量を生成し、生成された前記マスク量に基づき前記第2の仮数部又は前記加算値の上位桁を0でマスクし、前記第2の仮数部がマスクされたマスク後仮数部又は前記加算値がマスクされたマスク後加算値の先行ゼロ計数値である第3の先行ゼロ計数値を生成し、前記第3の指数部から前記第3の先行ゼロ計数値を減算した値を前記補正値指数部として生成するとともに、前記マスク後加算値の先行ゼロ計数値に基づいて前記マスク後仮数部又は前記マスク後加算値をシフトした値を前記補正値仮数部として生成することを特徴とする請求項1記載の演算回路。
- N進法(Nは2以上の整数)による第1の浮動小数点数と前記第1の浮動小数点数以下である前記N進法による第2の浮動小数点数の加減算値に対する補正値を算出する演算回路と、前記補正値を算出する修正値演算命令をデコードする命令制御部とを有する演算処理装置において、
前記演算回路は、
前記第1の浮動小数点数の符号部である第1の符号部と、前記第1の浮動小数点数の仮数部である第1の仮数部と、前記第1の浮動小数点数の指数部である第1の指数部を保持する第1の入力レジスタと、
前記第2の浮動小数点数の符号部である第2の符号部と、前記第2の浮動小数点数の仮数部である第2の仮数部と、前記第2の浮動小数点数の指数部である第2の指数部を保持する第2の入力レジスタと、
前記第1の指数部から前記第2の指数部を減算した値からさらに前記第1の仮数部の先行ゼロ計数値を減算した値をシフト量として生成するとともに、前記第1の指数部から前記第1の仮数部の先行ゼロ計数値を減算した値から第1の所定値を減算した第3の指数部を生成する演算部と、
生成された前記シフト量に基づき、前記第1の仮数部をシフトしたシフト後仮数部を生成するシフト部と、
生成された前記シフト後仮数部と前記第2の仮数部の一部を加算した加算値を生成するとともに、加算により生じるキャリーの有無を示すキャリー情報を生成する加算部と、
前記シフト後仮数部と前記シフト量と前記キャリー情報を基に、桁溢れ又は桁落ちを示すフラグを生成する予測部と、
前記第1の指数部から前記第1の仮数部の先行ゼロ計数値を減算した第1の値と前記第2の指数部から前記第2の仮数部の先行ゼロ計数値を減算した第2の値との差が第2の所定値以上の場合、前記第2の入力レジスタに保持される前記第2の符号部と前記第2の仮数部と前記第2の指数部とに基づいて、前記加減算値に対する正規化された補正値の仮数部である補正値仮数部と正規化された前記補正値の指数部である補正値指数部を生成するとともに、前記差が前記第2の所定値未満の場合、前記加算値と前記第3の指数部と前記シフト量と前記フラグとに基づいて、前記補正値仮数部と前記補正値指数部を生成する生成部
を有することを特徴とする演算処理装置。 - N進法(Nは2以上の整数)による第1の浮動小数点数の符号部である第1の符号部と、前記第1の浮動小数点数の仮数部である第1の仮数部と、前記第1の浮動小数点数の指数部である第1の指数部を保持する第1の入力レジスタと、前記N進法による第2の浮動小数点数の符号部である第2の符号部と、前記第2の浮動小数点数の仮数部である第2の仮数部と、前記第2の浮動小数点数の指数部である第2の指数部を保持する第2の入力レジスタを有し、前記第1の浮動小数点数と前記第1の浮動小数点数以下である前記第2の浮動小数点数の加減算値に対する補正値を算出する演算回路と、前記補正値を算出する補正値演算命令をデコードする命令制御部とを有する演算処理装置の制御方法において、
前記命令制御部が、補正値演算命令をデコードし、
前記演算回路が有する演算部が、前記第1の指数部から前記第2の指数部を減算した値からさらに前記第1の仮数部の先行ゼロ計数値を減算した値をシフト量として生成するとともに、前記第1の指数部から前記第1の仮数部の先行ゼロ計数値を減算した値から第1の所定値を減算した第3の指数部を生成し、
前記演算回路が有するシフト部が、生成された前記シフト量に基づき、前記第1の仮数部をシフトしたシフト後仮数部を生成し、
前記演算回路が有する加算部が、生成された前記シフト後仮数部と前記第2の仮数部の一部を加算した加算値を生成するとともに、加算により生じるキャリーの有無を示すキャリー情報を生成し、
前記演算回路が有する予測部が、前記シフト後仮数部と前記シフト量と前記キャリー情報を基に、桁溢れ又は桁落ちを示すフラグを生成し、
前記第1の指数部から前記第1の仮数部の先行ゼロ計数値を減算した第1の値と前記第2の指数部から前記第2の仮数部の先行ゼロ計数値を減算した第2の値との差が第2の所定値以上の場合、前記演算回路が有する生成部が、前記第2の入力レジスタに保持される前記第2の符号部と前記第2の仮数部と前記第2の指数部とに基づいて、前記加減算値に対する正規化された補正値の仮数部である補正値仮数部と正規化された前記補正値の指数部である補正値指数部を生成し、
前記第1の絶対値が前記第2の所定値未満の場合、前記生成部が、前記加算値と前記第3の指数部と前記シフト量と前記フラグとに基づいて、前記補正値仮数部と前記補正値指数部を生成することを特徴とする演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012184594A JP5966768B2 (ja) | 2012-08-23 | 2012-08-23 | 演算回路、演算処理装置、及び演算処理装置の制御方法 |
US13/935,610 US20140059104A1 (en) | 2012-08-23 | 2013-07-05 | Arithmetic circuit for calculating correction value |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012184594A JP5966768B2 (ja) | 2012-08-23 | 2012-08-23 | 演算回路、演算処理装置、及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014041563A true JP2014041563A (ja) | 2014-03-06 |
JP5966768B2 JP5966768B2 (ja) | 2016-08-10 |
Family
ID=50148987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012184594A Active JP5966768B2 (ja) | 2012-08-23 | 2012-08-23 | 演算回路、演算処理装置、及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140059104A1 (ja) |
JP (1) | JP5966768B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667291A (zh) * | 2021-01-08 | 2021-04-16 | 广东赛昉科技有限公司 | Risc-v指令集移位指令实现电路 |
US12010231B2 (en) * | 2021-06-23 | 2024-06-11 | Pqsecure Technologies, Llc | Computer processing architecture and method for supporting multiple public-key cryptosystems based on exponentiation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01128129A (ja) * | 1987-11-13 | 1989-05-19 | Hitachi Ltd | 浮動小数点加減算装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792087B2 (en) * | 2012-04-20 | 2017-10-17 | Futurewei Technologies, Inc. | System and method for a floating-point format for digital signal processors |
-
2012
- 2012-08-23 JP JP2012184594A patent/JP5966768B2/ja active Active
-
2013
- 2013-07-05 US US13/935,610 patent/US20140059104A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01128129A (ja) * | 1987-11-13 | 1989-05-19 | Hitachi Ltd | 浮動小数点加減算装置 |
Also Published As
Publication number | Publication date |
---|---|
US20140059104A1 (en) | 2014-02-27 |
JP5966768B2 (ja) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8788561B2 (en) | Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit | |
TWI638312B (zh) | 暫時分路融合乘積-累加運算 | |
US8601047B2 (en) | Decimal floating-point adder with leading zero anticipation | |
US8903881B2 (en) | Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit | |
US8166092B2 (en) | Arithmetic device for performing division or square root operation of floating point number and arithmetic method therefor | |
EP1857925A2 (en) | Method and apparatus for decimal number multiplication using hardware for binary number operations | |
CN104520807A (zh) | 用于具有指数按比例缩放的浮点融合乘法加法的微架构 | |
CN108351776B (zh) | 数据处理方法和装置 | |
CN108351762B (zh) | 使用重叠位的数值的冗余表示的方法和装置 | |
US10416962B2 (en) | Decimal and binary floating point arithmetic calculations | |
US7069288B2 (en) | Floating point system with improved support of interval arithmetic | |
KR100465371B1 (ko) | 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치 | |
JP5966768B2 (ja) | 演算回路、演算処理装置、及び演算処理装置の制御方法 | |
JPH10289096A (ja) | 論理回路及び浮動小数点演算装置 | |
US20060129625A1 (en) | Low latency integer divider and integration with floating point divider and method | |
JP2012221188A (ja) | 演算回路、演算処理装置、及び演算回路の制御方法 | |
KR100331846B1 (ko) | 실수 연산기 | |
US20140059106A1 (en) | Arithmetic circuit for performing division based on restoring division | |
US8219604B2 (en) | System and method for providing a double adder for decimal floating point operations | |
JPH0553765A (ja) | 先行1検出回路および浮動小数点加減算装置 | |
US6044391A (en) | Method of generating the sticky-bit from the input operands | |
US5944773A (en) | Floating-point multiplier circuit for generating the sticky-bit from the input operands | |
JP2752564B2 (ja) | 先行1予測装置及び浮動小数点加減算装置 | |
GB2615774A (en) | Method and system for calculating dot products | |
Perez | Hardware Addition Over Finite Fields Based On Booth–Karatsuba Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150512 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160530 |
|
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: 20160607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160620 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5966768 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |