JP6975234B2 - 符号絶対値データ形式で結果を生み出すための回路、方法およびコンピュータ・プログラム - Google Patents
符号絶対値データ形式で結果を生み出すための回路、方法およびコンピュータ・プログラム Download PDFInfo
- Publication number
- JP6975234B2 JP6975234B2 JP2019525996A JP2019525996A JP6975234B2 JP 6975234 B2 JP6975234 B2 JP 6975234B2 JP 2019525996 A JP2019525996 A JP 2019525996A JP 2019525996 A JP2019525996 A JP 2019525996A JP 6975234 B2 JP6975234 B2 JP 6975234B2
- Authority
- JP
- Japan
- Prior art keywords
- digit
- overflow
- carry
- result
- length
- 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.)
- Active
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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
-
- 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Description
図3は、オペランドAとオペランドBの加算を描写する。指定の結果長さlより結果Rが大きい場合、オーバーフローが発生する。10^lは、1の後にl個の末尾ゼロが続くビット・ストリングであることに留意されたい。下記の方程式(1)において、これは、所与のビット・ストリングの値を示す。以下の方程式(1)は、オペランドおよび切り捨てられた結果の最大長さn、ならびに所望の結果長さlに基づくオーバーフローの判断を示す。
OVF=1⇔A+B≧10^l (1)
⇔A+B+(10^n−10^l)≧10^n
上述のように、従来の実装形態は、2つのオペランドの和を生成し、次にlより大きい長さを結果が有するかどうかをチェックするであろう。
仮に、M(n−1,...,0)がビット・ベクトルであるとすると、k<lの場合、M(k)=0であり、k≧lの場合、M(k)=1であり、
桁kに対するg項(g-term):A(k)+B(k)+9×M(k)≧10 (2)
(桁A(k)およびB(k)ならびに潜在的な9パディングが桁上げを生成する)
桁kに対するp項(p-term):A(k)+B(k)+9×M(k)≧9 (3)
(桁kは桁上げを伝搬する)。
絶対差を計算する必要があるので、A−BまたはB−Aを計算する2つのケースは、区別される必要がある。
abs(A−B)⇒ケース1:A>Bの場合、A−B
ケース2:B≧Aの場合、B−A
OVF=1⇔R=A−B≧10^l
⇔A≧B+10^l
cout(X+!Y)=0⇔Y≧X
⇔A≧B+10^l
⇔A−B≧10^l
⇔R≧10^l
⇔OVF=1
R≧10^l⇒OVF=1
R⇔(B−A)⇔B−A≧10^l
⇔B≧A+10^l
cout(X+!Y)=0⇔Y≧X
⇔B≧A+10^l
⇔B−A≧10^l
⇔R≧10^l
⇔OVF=1
A>Bのケース1(A−B): cout(B+!A+10^l)=0⇔OVF=1
B≧Aのケース2(B−A): cout(A+!B+10^l)=0⇔OVF=1
仮に、M(n−1,...,0)がビット・ベクトルであるとすると、k!=lの場合、M(k)=0であり、k=lの場合、M(k)=1であり、
ケース1、(A−B)の場合、
桁kに対するg項:!A(k)+B(k)+1×M(k)≧16 (4)
(桁A(k)およびB(k)ならびに潜在的な1パディングが桁上げを生成する。)
桁kに対するp項:!A(k)+B(k)+1×M(k)≧15 (5)
(桁kは桁上げを伝搬する。)
ケース2、(B−A)の場合、
桁kに対するg項:A(k)+!B(k)+1×M(k)≧16 (6)
(桁A(k)およびB(k)ならびに潜在的な1パディングが桁上げを生成する。)
桁kに対するp項:A(k)+!B(k)+1×M(k)≧15 (7)
(この桁kが桁上げを伝搬する。)
上記の2つの桁上げ木の議論は、ほんの一例として提供されるにすぎないことに留意されたい。必要に応じて、循環桁上げを使用する単一の桁上げ木が、代替実施形態で採用されてよい。
Claims (18)
- 回路であって、
符号絶対値データ形式で結果を生み出すために、可変長のオペランドを加算または減算するように構成される算術計算ロジックと、
指定の結果長さlに前記結果が収まるかどうかを示すオーバーフロー信号を提供するオーバーフロー検出器であって、前記指定の結果長さlに前記結果が収まるかどうかを、前記算術計算ロジックによって生み出される前記結果とは無関係に判断するために、前記算術計算ロジックが前記結果を生み出す前に前記オペランドに対して演算を行う、前記オーバーフロー検出器と
を備え、
前記オーバーフロー検出器が、前記指定の結果長さlに基づいてパディング・ベクトルPを生成することによって、前記指定の結果長さに前記結果が収まるかどうかを判断し、桁上げ出力が存在するかどうかを判断するために、前記オペランドと前記パディング・ベクトルPの加算を評価し、前記オーバーフロー信号が前記桁上げ出力に基づく、
回路。 - 前記オーバーフロー検出器が、前記算術計算ロジックと並行してオペランドに対して演算する、請求項1に記載の回路。
- 前記オーバーフロー検出器が、前記算術計算ロジックが前記符号絶対値データ形式で前記結果を生み出す前に、または並行して前記オーバーフロー信号を提供する、請求項1に記載の回路。
- 前記オペランドが、2つのオペランドを含み、前記オーバーフロー検出器が、前記2つのオペランドと前記パディング・ベクトルPの3つの加算の前記桁上げ出力をチェックする、請求項1に記載の回路。
- 前記桁上げ出力が、n桁加算器によるものであり、nが、前記指定の結果長さlより大きく、前記パディング・ベクトルPが、前記指定の結果長さlの左にビットをパディングすることによって生み出され、前記結果長さの桁上げ出力が、前記オーバーフロー検出器によってチェックされた前記桁上げ出力を生成するために一番左の位置に伝搬される、請求項1に記載の回路。
- 前記オペランドが、オペランドAおよびオペランドBを含み、前記算術計算ロジックが、可変長の前記オペランドを加算するように構成され、前記オーバーフロー検出器が、9パディングを含む、桁生成(g項)信号および桁伝搬(p項)信号に関する以下の方程式を使用して、オペランドAおよびオペランドBに対する別々の桁上げ木を実行して、前記g項およびp項から桁上げ出力を導出し、前記オーバーフロー信号が前記桁上げ出力に基づき、
M(n−1,...,0)がビット・ベクトルであり、k<lの場合、M(k)=0であり、k≧lの場合、M(k)=1であり、
桁kに対するg項:A(k)+B(k)+9×M(k)≧10、ここで、桁A(k)およびB(k)ならびに潜在的な9パディングが、桁上げを生成し、
桁kに対するp項:A(k)+B(k)+9×M(k)≧9、前記桁kが、桁上げを伝搬する、
請求項1に記載の回路。 - 前記オペランドが、オペランドAおよびオペランドBを含み、前記算術計算ロジックが、可変長の前記オペランドを減算するように構成され、前記オーバーフロー検出器が、10lのパディングを使用することを含む、桁生成(g項)信号および桁伝搬(p項)信号に関する以下の方程式を使用して、オペランドAおよびオペランドBに対する別々の桁上げ木を実行し、ここで、lは、前記指定の結果長さlであり、
M(n−1,...,0)がビット・ベクトルであり、k!=lの場合、M(k)=0であり、k=lの場合、M(k)=1であり、
A>B(A−B)の場合、
桁kに対するg項:!A(k)+B(k)+1×M(k)≧16(桁A(k)およびB(k)ならびに潜在的な1パディングが桁上げを生成する)、
桁kに対するp項:!A(k)+B(k)+1×M(k)≧15(前記桁kが桁上げを伝搬する)、
B≧A(B−A)の場合、
桁kに対するg項:A(k)+!B(k)+1×M(k)≧16(桁A(k)およびB(k)ならびに潜在的な1パディングが桁上げを生成する)、
桁kに対するp項:A(k)+!B(k)+1×M(k)≧15(前記桁kが桁上げを伝搬する)、
請求項1に記載の回路。 - 前記オペランドが、2進化10進数形式であり、前記算術計算ロジックが、符号絶対値加算器を含む、請求項1に記載の回路。
- 方法であって、
算術演算を行う回路を提供することを含み、前記提供することが、
符号絶対値データ形式で結果を生み出すために、可変長のオペランドを加算または減算するように構成される算術計算ロジックを提供することと、
指定の結果長さlに前記結果が収まるかどうかを示すオーバーフロー信号を提供するオーバーフロー検出器を提供することであって、前記オーバーフロー検出器が、前記指定の結果長さに前記結果が収まるかどうかを、前記算術計算ロジックによって生み出される前記結果とは無関係に判断するために、前記算術計算ロジックが前記結果を生み出す前に前記オペランドに対して演算を行う、前記オーバーフロー検出器を提供することと
を含み、
前記オーバーフロー検出器が、前記指定の結果長さlに基づいてパディング・ベクトルPを生成することによって、前記指定の結果長さに前記結果が収まるかどうかを判断し、桁上げ出力が存在するかどうかを判断するために、前記オペランドと前記パディング・ベクトルPの加算を評価し、前記オーバーフロー信号が前記桁上げ出力に基づく、
方法。 - 前記オーバーフロー検出器が、前記算術計算ロジックと並行してオペランドに対して演算する、請求項9に記載の方法。
- 前記オーバーフロー検出器が、前記算術計算ロジックが前記符号絶対値データ形式で前記結果を生み出す前に、または並行して前記オーバーフロー信号を提供する、請求項9に記載の方法。
- 前記オペランドが、2つのオペランドを含み、前記オーバーフロー検出器が、前記2つのオペランドと前記パディング・ベクトルPの3つの加算の前記桁上げ出力をチェックする、請求項9に記載の方法。
- 前記桁上げ出力が、n桁加算器によるものであり、nが、前記指定の結果長さlより大きく、前記パディング・ベクトルPが、前記指定の結果長さlの左にビットをパディングすることによって生み出され、前記結果長さの桁上げ出力が、前記オーバーフロー検出器によってチェックされた前記桁上げ出力を生成するために一番左の位置に伝搬される、請求項9に記載の方法。
- 前記オペランドが、オペランドAおよびオペランドBを含み、前記算術計算ロジックが、可変長の前記オペランドを加算するように構成され、前記オーバーフロー検出器が、9パディングを含む、桁生成(g項)信号および桁伝搬(p項)信号に関する以下の方程式を使用して、オペランドAおよびオペランドBに対する別々の桁上げ木を実行して、前記g項およびp項から桁上げ出力を導出し、前記オーバーフロー信号が前記桁上げ出力に基づき、
M(n−1,...,0)がビット・ベクトルであり、k<lの場合、M(k)=0であり、k≧lの場合、M(k)=1であり、
桁kに対するg項:A(k)+B(k)+9×M(k)≧10、ここで、桁A(k)およびB(k)ならびに潜在的な9パディングが、桁上げを生成し、
桁kに対するp項:A(k)+B(k)+9×M(k)≧9、前記桁kが、桁上げを伝搬する、
請求項9に記載の方法。 - 前記オペランドが、オペランドAおよびオペランドBを含み、前記算術計算ロジックが、可変長の前記オペランドを減算するように構成され、前記オーバーフロー検出器が、10lのパディングを使用することを含む、桁生成(g項)信号および桁伝搬(p項)信号に関する以下の方程式を使用して、オペランドAおよびオペランドBに対する別々の桁上げ木を実行し、ここで、lは、前記指定の結果長さlであり、
M(n−1,...,0)がビット・ベクトルであり、k!=lの場合、M(k)=0であり、k=lの場合、M(k)=1であり、
A>B(A−B)の場合、
桁kに対するg項:!A(k)+B(k)+1×M(k)≧16(桁A(k)およびB(k)ならびに潜在的な1パディングが桁上げを生成する)、
桁kに対するp項:!A(k)+B(k)+1×M(k)≧15(前記桁kが桁上げを伝搬する)、
B≧A(B−A)の場合、
桁kに対するg項:A(k)+!B(k)+1×M(k)≧16(桁A(k)およびB(k)ならびに潜在的な1パディングが桁上げを生成する)、
桁kに対するp項:A(k)+!B(k)+1×M(k)≧15(前記桁kが桁上げを伝搬する)、
請求項9に記載の方法。 - 前記オペランドが、2進化10進数形式であり、前記算術計算ロジックが、符号絶対値加算器を含む、請求項9に記載の方法。
- 加算または減算操作のオーバーフローを検出するためのコンピュータ・プログラムであって、
符号絶対値データ形式で結果を生み出すために、可変長のオペランドを算術的に加算または減算することと、
指定の結果長さlに前記結果が収まるかどうかを示すオーバーフロー信号を生み出すことであって、前記指定の結果長さlに前記結果が収まるかどうかを、前記算術的な加算または減算によって生み出される前記結果とは無関係に判断するために、前記算術的な加算または減算が前記結果を生み出す前に前記オペランドに対して演算を行う、前記生み出すことと
を含む方法をプロセッサに行わせ、
前記オーバーフロー信号を生み出すことが、前記指定の結果長さlに基づいてパディング・ベクトルPを生成することによって、前記指定の結果長さに前記結果が収まるかどうかを判断することと、桁上げ出力が存在するかどうかを判断するために、前記オペランドと前記パディング・ベクトルPの加算を評価することとを含み、前記オーバーフロー信号が前記桁上げ出力に基づく、
コンピュータ・プログラム。 - 前記オーバーフロー信号を生み出すことは、前記算術的に加算または減算することが前記符号絶対値データ形式で前記結果を生み出す前に、または並行して前記オーバーフロー信号を提供する、請求項17に記載のコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/372,867 US10067744B2 (en) | 2016-12-08 | 2016-12-08 | Overflow detection for sign-magnitude adders |
US15/372,867 | 2016-12-08 | ||
PCT/IB2017/057532 WO2018104830A1 (en) | 2016-12-08 | 2017-11-30 | Overflow detection for sign-magnitude adders |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020513612A JP2020513612A (ja) | 2020-05-14 |
JP6975234B2 true JP6975234B2 (ja) | 2021-12-01 |
Family
ID=62489380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019525996A Active JP6975234B2 (ja) | 2016-12-08 | 2017-11-30 | 符号絶対値データ形式で結果を生み出すための回路、方法およびコンピュータ・プログラム |
Country Status (6)
Country | Link |
---|---|
US (2) | US10067744B2 (ja) |
JP (1) | JP6975234B2 (ja) |
CN (1) | CN110073328B (ja) |
DE (1) | DE112017004690T5 (ja) |
GB (1) | GB2572719B (ja) |
WO (1) | WO2018104830A1 (ja) |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4021655A (en) * | 1976-03-30 | 1977-05-03 | International Business Machines Corporation | Oversized data detection hardware for data processors which store data at variable length destinations |
JPS5674774A (en) * | 1979-11-22 | 1981-06-20 | Nec Corp | Arithmetic circuit with overflow detector |
US4366548A (en) | 1981-01-02 | 1982-12-28 | Sperry Corporation | Adder for exponent arithmetic |
JPS61239327A (ja) * | 1985-04-16 | 1986-10-24 | Nec Corp | オ−バフロ−検出方式 |
JPS6211933A (ja) * | 1985-07-09 | 1987-01-20 | Nec Corp | 演算回路 |
US4890253A (en) * | 1988-12-28 | 1989-12-26 | International Business Machines Corporation | Predetermination of result conditions of decimal operations |
US5448509A (en) * | 1993-12-08 | 1995-09-05 | Hewlett-Packard Company | Efficient hardware handling of positive and negative overflow resulting from arithmetic operations |
US5675528A (en) | 1995-06-16 | 1997-10-07 | Cyrix Corporation | Early detection of overflow and exceptional quotient/remainder pairs for nonrestoring twos complement division |
US5615113A (en) * | 1995-06-16 | 1997-03-25 | Cyrix Corporation | Early signaling of no-overflow for nonrestoring twos complement division |
US6151616A (en) | 1999-04-08 | 2000-11-21 | Advanced Micro Devices, Inc. | Method and circuit for detecting overflow in operand multiplication |
EP1102163A3 (en) * | 1999-11-15 | 2005-06-29 | Texas Instruments Incorporated | Microprocessor with improved instruction set architecture |
EP1178399B1 (en) | 2000-08-01 | 2004-10-20 | STMicroelectronics S.A. | Saturation in an arithmetic unit |
US7206800B1 (en) * | 2000-08-30 | 2007-04-17 | Micron Technology, Inc. | Overflow detection and clamping with parallel operand processing for fixed-point multipliers |
US7725522B2 (en) * | 2005-04-14 | 2010-05-25 | Texas Instruments Incorporated | High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area |
JP5014920B2 (ja) * | 2007-08-17 | 2012-08-29 | ラピスセミコンダクタ株式会社 | 回路設計方法、ならびにその方法により製造される集積回路 |
US8554822B2 (en) | 2010-06-24 | 2013-10-08 | International Business Machines Corporation | Decimal adder with end around carry |
US8930657B2 (en) * | 2011-07-18 | 2015-01-06 | Infineon Technologies Ag | Method and apparatus for realtime detection of heap memory corruption by buffer overruns |
US9348642B2 (en) * | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9213523B2 (en) * | 2012-06-29 | 2015-12-15 | Intel Corporation | Double rounded combined floating-point multiply and add |
GB2530989B (en) * | 2014-10-06 | 2016-08-17 | Ibm | Decimal and binary floating point rounding |
US9916130B2 (en) * | 2014-11-03 | 2018-03-13 | Arm Limited | Apparatus and method for vector processing |
-
2016
- 2016-12-08 US US15/372,867 patent/US10067744B2/en active Active
-
2017
- 2017-11-30 CN CN201780075729.7A patent/CN110073328B/zh active Active
- 2017-11-30 WO PCT/IB2017/057532 patent/WO2018104830A1/en active Application Filing
- 2017-11-30 DE DE112017004690.4T patent/DE112017004690T5/de active Pending
- 2017-11-30 GB GB1909646.0A patent/GB2572719B/en active Active
- 2017-11-30 JP JP2019525996A patent/JP6975234B2/ja active Active
-
2018
- 2018-05-01 US US15/967,812 patent/US10228910B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN110073328B (zh) | 2023-09-05 |
JP2020513612A (ja) | 2020-05-14 |
DE112017004690T5 (de) | 2019-07-04 |
US20180253282A1 (en) | 2018-09-06 |
GB201909646D0 (en) | 2019-08-21 |
US10067744B2 (en) | 2018-09-04 |
WO2018104830A1 (en) | 2018-06-14 |
US20180165063A1 (en) | 2018-06-14 |
US10228910B2 (en) | 2019-03-12 |
CN110073328A (zh) | 2019-07-30 |
GB2572719B (en) | 2020-05-20 |
GB2572719A (en) | 2019-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540142B2 (en) | Accuracy-conserving floating-point value aggregation | |
CN110168493B (zh) | 在128位宽的操作数上的融合乘加浮点运算 | |
US9959093B2 (en) | Binary fused multiply-add floating-point calculations | |
JP2021525403A (ja) | 改良された低精度の2進浮動小数点形式設定 | |
US9870200B2 (en) | Decimal and binary floating point rounding | |
US20160124713A1 (en) | Fast, energy-efficient exponential computations in simd architectures | |
US10140090B2 (en) | Computing and summing up multiple products in a single multiplier | |
US9430190B2 (en) | Fused multiply add pipeline | |
US6542915B1 (en) | Floating point pipeline with a leading zeros anticipator circuit | |
US10558432B2 (en) | Multiply-add operations of binary numbers in an arithmetic unit | |
US20220075595A1 (en) | Floating point computation for hybrid formats | |
US8572141B2 (en) | Execution of fixed point instructions using a decimal floating point unit | |
US10459689B2 (en) | Calculation of a number of iterations | |
JP6975234B2 (ja) | 符号絶対値データ形式で結果を生み出すための回路、方法およびコンピュータ・プログラム | |
Tsen et al. | A combined decimal and binary floating-point multiplier | |
US7739323B2 (en) | Systems, methods and computer program products for providing a combined moduli-9 and 3 residue generator | |
US11487506B2 (en) | Condition code anticipator for hexadecimal floating point | |
US11922130B2 (en) | Optimization of arithmetic expressions | |
US20130227250A1 (en) | Simd accelerator for data comparison | |
Vlăduţiu et al. | The Representation of Numbers in Computing Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200527 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210623 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210713 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211006 |
|
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: 20211102 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6975234 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |