JP4858794B2 - 浮動小数点除算器、及びそれを用いた情報処理装置 - Google Patents
浮動小数点除算器、及びそれを用いた情報処理装置 Download PDFInfo
- Publication number
- JP4858794B2 JP4858794B2 JP2009274930A JP2009274930A JP4858794B2 JP 4858794 B2 JP4858794 B2 JP 4858794B2 JP 2009274930 A JP2009274930 A JP 2009274930A JP 2009274930 A JP2009274930 A JP 2009274930A JP 4858794 B2 JP4858794 B2 JP 4858794B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- mantissa
- subtraction
- partial
- floating
- 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
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/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5353—Restoring division
Description
R(j+1)=r×R(j)−q(j)×D ・・・(1)
ここで、jは漸化式の指数、rは基数、Dは除数、q(j)は商の小数点以下j桁目、R(j)は前回(j回目)に算出された部分剰余、R(j+1)は今回算出される部分剰余である。ここで、部分剰余R(j+1)と除数Dの間には、以下の制約が存在する。
0≦R(j+1)<D ・・・(2)
上記(2)式を満たすように商q(j)を定めて、(1)式を実行して部分剰余R(j+1)を求めるのが減算シフト型除算の実行手順である。
D≦2×R(j) → q(j)=1
0≦2×R(j)<D → q(j)=0
このことから、(1)式も考慮すると、基数2の減算シフト型除算の実行手順としては、以下のようにまとめることができる。
2×R(j)−D≧0 → q(j)=1、R(j+1)=2×R(j)−D
2×R(j)−D<0 → q(j)=0、R(j+1)=2×R(j)
第1の課題は、除算結果を得るために、非常に長い演算TAT(Turn Around Time)が必要であるということである。その第1の理由は以下のとおりである。浮動小数点除算器の場合、倍精度の演算結果が必要な場合には丸め処理も含めて56bitの商が必要になる。しかし、図1に示したような基数2の減算シフト型浮動小数点除算器では、減算シフト1回に付き1bitの商しか求めることができない。そのため、56bitの商を得るためには56回の減算シフト処理を繰り返す必要がある。また、その第2の理由は以下とおりである。この減算シフト処理には、56bitの部分剰余から56bitの除数を減算して、その結果の符合から減算結果と何も処理をしていない部分剰余のいずれかを、次回の減算シフト処理のための部分剰余として選択する処理が含まれている。そのため、この処理が動作周波数を決定するためのクリティカルパスになっている。
本発明の第1の実施の形態に係る浮動小数点除算器、及びそれを用いた情報処理装置ついて、添付図面を参照して説明する。
図4は、一般的な2進数減算シフト型浮動小数点除算器の全体構成を示すブロック図である。この2進数減算シフト型浮動小数点除算器において、入力された2つの浮動小数点入力オペランドは、それぞれレジスタ(FF)で受信される。その後、その2つの浮動小数点入力オペランドは、それぞれその全bitもしくは一部のbitが非通常数検出部110、符号処理部120、指数処理部130、仮数前処理部140に入力される。符号処理部120、指数処理部130、仮数前処理部140には、それぞれの浮動小数点入力オペランドが、そのbit位置に応じて定まっている符号、指数、仮数に分割されて入力される。仮数前処理部140に入力された仮数は、必要な前処理を行った後に、減算シフト処理を行う仮数繰り返し処理部150に入力され、求める演算精度によって決まる回数だけ繰り返し処理を行った後に、仮数後処理/丸め処理部160に入力される。仮数後処理/丸め処理部160には、非通常数検出部110、符号処理部120、指数処理部130の結果も入力され、最終的な浮動小数点除算結果を出力する。また、仮数後処理/丸め処理部160からは、仮数丸め処理における指数桁上げ情報も出力され、非通常数検出部110、符号処理部120、指数処理部130からの出力と共に、例外処理部170にて演算例外の検出処理が行われる。また、これら浮動小数点除算処理を実行するために各処理部の動作を制御するための演算実行制御シーケンサ100があり、各処理部に対して実行シーケンスに応じて必要な制御信号を送出する。
第1の効果は、2進数の減算シフト型浮動小数点除算器において、本来、減算シフト処理回数は基数と求める演算精度で一意に決定されるのに対して、本願発明では、演算入力オペランドの値に依存することにはなるが、減算シフト処理回数を削減することができ、その結果、除算の演算TAT短縮により演算性能向上ができることである。
本発明の第2の実施の形態に係る浮動小数点除算器、及びそれを用いた情報処理装置ついて、添付図面を参照して説明する。
図7A及び図7Bは、本発明の第2の実施の形態に係る浮動小数点除算器における主に仮数繰り返し処理部とその周辺の構成を示すブロック図である。本実施の形態では、その基本的構成は第1の実施の形態と同様であるが、図5の構成が図7A及び図7Bの構成に変更されている点、すなわち、基数を4にすると共に、減算シフト回数の削減についてさらに判定論理を追加している点で、第1の実施の形態と異なる。以下、具体的に説明する。
605 選択制御信号
606 ストローブ信号
610 1bit左シフタ
615 第1のセレクタ
620 レジスタ
621 レジスタ
630 減算器
634 インバータ
635 第2のセレクタ
640、641 Unpacker
650 仮数繰り返し処理部
680 商レジスタ
681 剰余レジスタ
660 丸め処理部
800 演算実行制御シーケンサ
805 選択制御信号
806 ストローブ信号
815 第2のセレクタ
816 第1のセレクタ
820 レジスタ
821 レジスタ
822 レジスタ
810、811 1bit左シフタ
830、831 冗長2進数加算器
833 冗長2進数→通常2進数変換器
834 商決定論理器
835、836 セレクタ
840、841 Unpacker
850 第1の仮数繰り返し処理部
860 丸め処理部
870、871 1bit左シフタ
872 インバータ
890、891 冗長2進数加算器
893 冗長2進数→通常2進数変換器
894 商決定論理器
895 SIGNデジットセレクタ
896 SUMデジットセレクタ
851 第2の仮数繰り返し処理部
880 SIGNデジットレジスタ
881 SUMデジットレジスタ
882 SIGNデジットレジスタ
883 SUMデジットレジスタ
100 演算実行制御シーケンサ
110 非通常数検出部
120 符号処理部
130 指数処理部
140 仮数前処理部
150 仮数繰り返し処理部
160 仮数後処理/丸め処理部
170 例外処理部
200 演算実行制御シーケンサ
205 選択制御信号
206 ストローブ信号
210 1bit左シフタ
211 2bit左シフタ
215 第1のセレクタ
220 レジスタ
221 レジスタ
230 減算器
234 インバータ
235 第2のセレクタ
236 特定bit情報
240、241 Unpacker
250 仮数繰り返し処理部
260 丸め処理部
280 商レジスタ
281 剰余レジスタ
400 演算実行制御シーケンサ
405 選択制御信号
406 ストローブ信号
407 演算実行終了予告信号
410 2bit左シフタ
411 4bit左シフタ
415 第1のセレクタ
420 被除数レジスタ
421 除数レジスタ
422 除数3倍数レジスタ
430、431、432 減算器
434 商決定論理器
435 第2のセレクタ
436 出力信号
437 検出論理器
440、441 Unpacker
442 加算器
443 加算器
445 セレクタ
450 仮数繰り返し処理部
460 丸め処理部
480 商レジスタ
481 剰余レジスタ
482 論理和器
483 インバータ
486 検出信号
490 非通常数検出部
496 非通常数検出信号
Claims (10)
- 2進数の減算シフト型浮動小数点除算器であって、
入力オペランドにおける被除数の仮数の減算シフト処理により商と部分剰余とを生成する仮数繰り返し処理部と、
前記部分剰余に関して、演算実行処理における基数によって一意に決定される特定の位置のビット値を判定する演算実行制御部と
を具備し、
前記仮数繰り返し処理部は、前記演算実行制御部の判定結果に基づいて、前記減算シフト処理の1回につき生成される商のビット数と部分剰余の左シフトビット数に対して、それぞれ2倍の商生成及び前記部分剰余の左シフト処理を行うことで、減算シフト処理回数を削減する
浮動小数点除算器。 - 請求項1に記載の浮動小数点除算器において、
前記演算実行制御部は、前記減算シフト処理が終了して丸め処理に移行したタイミングで、固定時間経過後に演算実行が終了することを予告する信号を、演算器外部に対して通知する
浮動小数点除算器。 - 請求項2に記載の浮動小数点除算器において、
前記部分剰余に関して、全ビット値が0になったかどうかを判定する判定部を更に具備し、
前記演算実行制御部は、前記判定部の判定結果に基づいて、前記部分剰余の全ビット値が0になった場合、前記減算シフト処理を中止して丸め処理に移行する
浮動小数点除算器。 - 請求項2に記載の浮動小数点除算器において、
前記入力オペランドが非数か否かを検出する被数検出部を更に具備し、
前記演算実行制御部は、前記入力オペランドのどちらか一方でも非数であることが判明した場合、前記減算シフト処理を中止して丸め処理に移行する
浮動小数点除算器。 - 請求項1乃至4のいずれか一項に記載の浮動小数点除算器において、
前記仮数繰り返し処理部は、
前記部分余剰を1ビット左シフトして出力する1ビット左シフタと、
前記部分余剰を2ビット左シフトして出力する2ビット左シフタと、
選択信号に基づいて、前記被除数の仮数、前記1ビット左シフタの出力した前記部分余剰、及び前記2ビット左シフタの出力した前記部分余剰のいずれかを第1の部分剰余として選択する第1のセレクタと、
前記第1の部分余剰と前記入力オペランドの除数とに基づいて減算処理を実行して、桁上げビットと減算結果とを出力する減算器と、
前記桁上げビットに基づいて、前記第1の部分余剰及び前記減算結果のいずれか一方を、新たに前記部分余剰として、前記1ビット左シフタと、前記2ビット左シフタと、前記演算実行制御部に出力する第2のセレクタと
を備え、
前記仮数繰り返し処理部は、前記部分余剰に基づいて、演算実行処理で規定する基数の値により一意に決定される前記特定ビット位置のビット値を前記演算実行制御部に送出し、
前記演算実行制御部は、前記前記特定ビット位置のビット値に基づいて、前記選択信号を生成し、前記第1のセレクタへ出力する
浮動小数点除算器。 - 請求項1乃至4のいずれか一項に記載の浮動小数点除算器において、
前記仮数繰り返し処理部は、
前記部分余剰を2ビット左シフトして出力する2ビット左シフタと、
前記部分余剰を4ビット左シフトして出力する4ビット左シフタと、
選択信号に基づいて、前記被除数の仮数、前記2ビット左シフタの出力した前記部分余剰、及び前記4ビット左シフタの出力した前記部分余剰のいずれかを第1の部分剰余として選択する第1のセレクタと、
前記第1の部分余剰と前記入力オペランドの除数とに基づいて減算処理を実行して、第1の桁上げビットと第1の減算結果とを出力する第1の減算器と、
前記第1の部分余剰と前記入力オペランドの除数の2倍の値とに基づいて減算処理を実行して、第2の桁上げビットと第2の減算結果とを出力する第2の減算器と、
前記第1の部分余剰と前記入力オペランドの除数の3倍の値とに基づいて減算処理を実行して、第3の桁上げビットと第3の減算結果とを出力する第3の減算器と、
前記第1の桁上げビットと第2の桁上げビットと第3の桁上げビットとに基づいて、前記第1の部分余剰、前記第1の減算結果、第2の減算結果、及び第3の演算結果のいずれか一つを、新たに前記部分余剰として、前記2ビット左シフタと、前記4ビット左シフタと、前記演算実行制御部に出力する第2のセレクタと、
を備え、
前記仮数繰り返し処理部は、前記部分余剰に基づいて、演算実行処理で規定する基数の値により一意に決定される前記特定ビット位置のビット値を前記演算実行制御部に送出し、
前記演算実行制御部は、前記前記特定ビット位置のビット値に基づいて、前記選択信号を生成し、前記第1のセレクタへ出力する
浮動小数点除算器。 - 請求項1乃至6のいずれか一項に記載の浮動小数点除算器を具備する
情報処理装置。 - 2進数の減算シフト型浮動小数点除算方法であって、
入力オペランドにおける被除数の仮数の減算シフト処理により商と部分剰余とを生成するステップと、
前記部分剰余に関して、演算実行処理における基数によって一意に決定される特定の位置のビット値を判定するステップと
前記ビット値の判定結果に基づいて、前記減算シフト処理の1回につき生成される商のビット数と部分剰余の左シフトビット数に対して、それぞれ2倍の商生成及び前記部分剰余の左シフト処理を行うことで、減算シフト処理回数を削減するステップと
を具備する
浮動小数点除算方法。 - 請求項8に記載の浮動小数点除算方法において、
前記減算シフト処理が終了して丸め処理に移行したタイミングで、固定時間経過後に演算実行が終了することを予告する信号を、演算器外部に対して通知するステップを更に具備する
浮動小数点除算方法。 - 請求項9に記載の浮動小数点除算方法において、
前記部分剰余に関して、全ビット値が0か否かを判定するステップと、
前記0か否かの判定結果に基づいて、前記部分剰余の全ビット値が0になった場合、前記減算シフト処理を中止して丸め処理に移行するステップと
を更に具備する
浮動小数点除算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009274930A JP4858794B2 (ja) | 2009-12-02 | 2009-12-02 | 浮動小数点除算器、及びそれを用いた情報処理装置 |
US12/957,907 US20110131262A1 (en) | 2009-12-02 | 2010-12-01 | Floating point divider and information processing apparatus using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009274930A JP4858794B2 (ja) | 2009-12-02 | 2009-12-02 | 浮動小数点除算器、及びそれを用いた情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011118633A JP2011118633A (ja) | 2011-06-16 |
JP4858794B2 true JP4858794B2 (ja) | 2012-01-18 |
Family
ID=44069648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009274930A Expired - Fee Related JP4858794B2 (ja) | 2009-12-02 | 2009-12-02 | 浮動小数点除算器、及びそれを用いた情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110131262A1 (ja) |
JP (1) | JP4858794B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120059866A1 (en) * | 2010-09-03 | 2012-03-08 | Advanced Micro Devices, Inc. | Method and apparatus for performing floating-point division |
US20130124594A1 (en) * | 2011-11-15 | 2013-05-16 | Lsi Corporation | Divider circuitry with quotient prediction based on estimated partial remainder |
KR20200135059A (ko) | 2019-05-24 | 2020-12-02 | 삼성전자주식회사 | 데이터를 처리하는 방법 및 장치 |
JP2022121055A (ja) | 2021-02-08 | 2022-08-19 | キオクシア株式会社 | 演算装置及び演算回路 |
CN115033205B (zh) * | 2022-08-11 | 2022-10-28 | 深圳市爱普特微电子有限公司 | 一种低延迟高精度定值除法器 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5617435A (en) * | 1979-07-23 | 1981-02-19 | Fujitsu Ltd | Dividing circuit device |
US4381550A (en) * | 1980-10-29 | 1983-04-26 | Sperry Corporation | High speed dividing circuit |
DE68927398T2 (de) * | 1988-08-29 | 1997-05-28 | Nec Corp | Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen |
JPH0264730A (ja) * | 1988-08-31 | 1990-03-05 | Nec Corp | 演算装置 |
JPH02252023A (ja) * | 1989-03-24 | 1990-10-09 | Mitsubishi Electric Corp | 引き去り法または引き戻し法アルゴリズムで除算を行う除算器 |
JP2835153B2 (ja) * | 1990-06-25 | 1998-12-14 | 株式会社東芝 | 高基数除算器 |
JPH0731592B2 (ja) * | 1990-11-29 | 1995-04-10 | 株式会社東芝 | 除算回路 |
JPH05224889A (ja) * | 1992-02-12 | 1993-09-03 | Nec Corp | 乗算装置 |
US5301139A (en) * | 1992-08-31 | 1994-04-05 | Intel Corporation | Shifter circuit for multiple precision division |
JPH06103033A (ja) * | 1992-09-18 | 1994-04-15 | Fujitsu Ltd | 複数固定倍率器 |
US5696712A (en) * | 1995-07-05 | 1997-12-09 | Sun Microsystems, Inc. | Three overlapped stages of radix-2 square root/division with speculative execution |
US5946223A (en) * | 1995-12-08 | 1999-08-31 | Matsushita Electric Industrial Co. Ltd. | Subtraction/shift-type dividing device producing a 2-bit partial quotient in each cycle |
US5805489A (en) * | 1996-05-07 | 1998-09-08 | Lucent Technologies Inc. | Digital microprocessor device having variable-delay division hardware |
JP2001034472A (ja) * | 1999-07-16 | 2001-02-09 | Mitsubishi Electric Corp | データ処理装置および除算、剰余算アルゴリズム |
US7660842B2 (en) * | 2003-05-12 | 2010-02-09 | Sun Microsystems, Inc. | Method and apparatus for performing a carry-save division operation |
KR100853787B1 (ko) * | 2004-12-31 | 2008-08-25 | 동부일렉트로닉스 주식회사 | 가변 진법 나눗셈 연산기 |
US8713084B2 (en) * | 2008-02-25 | 2014-04-29 | International Business Machines Corporation | Method, system and computer program product for verifying floating point divide operation results |
-
2009
- 2009-12-02 JP JP2009274930A patent/JP4858794B2/ja not_active Expired - Fee Related
-
2010
- 2010-12-01 US US12/957,907 patent/US20110131262A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20110131262A1 (en) | 2011-06-02 |
JP2011118633A (ja) | 2011-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8965945B2 (en) | Apparatus and method for performing floating point addition | |
JP3689183B2 (ja) | 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算 | |
US6904446B2 (en) | Floating point multiplier/accumulator with reduced latency and method thereof | |
KR100242274B1 (ko) | 제산 및 제곱근 계산 기능을 갖고 있는 부동 소숫점/정수 프로세서 | |
US8489663B2 (en) | Decimal floating-point adder with leading zero anticipation | |
JP4500358B2 (ja) | 演算処理装置および演算処理方法 | |
KR20080055985A (ko) | 선택가능 준정밀도를 가진 부동―소수점 프로세서 | |
US8166092B2 (en) | Arithmetic device for performing division or square root operation of floating point number and arithmetic method therefor | |
JP2002108606A (ja) | スティッキービット生成回路及び乗算器 | |
KR102200913B1 (ko) | 풀 인-라인 비정규 서포트를 수반하는 높은 성능의 부동 소수점 덧셈기 | |
JP4858794B2 (ja) | 浮動小数点除算器、及びそれを用いた情報処理装置 | |
KR100203468B1 (ko) | 부동소수점수를 위한 산술연산장치 | |
Wahba et al. | Area efficient and fast combined binary/decimal floating point fused multiply add unit | |
US8060551B2 (en) | Method and apparatus for integer division | |
JPH04283831A (ja) | 除算器 | |
US8019805B1 (en) | Apparatus and method for multiple pass extended precision floating point multiplication | |
US8554819B2 (en) | System to implement floating point adder using mantissa, rounding, and normalization | |
Nannarelli | Tunable floating-point for energy efficient accelerators | |
JP2010238011A (ja) | ベクトル乗算処理装置および方法ならびにプログラム | |
Lang et al. | Division unit for binary integer decimals | |
Li et al. | Design of a fully pipelined single-precision multiply-add-fused unit | |
JP3793505B2 (ja) | 演算器及びそれを用いた電子回路装置 | |
US20220357925A1 (en) | Arithmetic processing device and arithmetic method | |
US9519458B1 (en) | Optimized fused-multiply-add method and system | |
JP5376659B2 (ja) | 積和演算装置及び積和演算装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20111006 |
|
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: 20111019 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4858794 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: 20141111 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |