JP3891997B2 - 可変幅の符号付きおよび符号なしオペランドのためのモジュラ2進乗算器 - Google Patents
可変幅の符号付きおよび符号なしオペランドのためのモジュラ2進乗算器 Download PDFInfo
- Publication number
- JP3891997B2 JP3891997B2 JP2004141968A JP2004141968A JP3891997B2 JP 3891997 B2 JP3891997 B2 JP 3891997B2 JP 2004141968 A JP2004141968 A JP 2004141968A JP 2004141968 A JP2004141968 A JP 2004141968A JP 3891997 B2 JP3891997 B2 JP 3891997B2
- Authority
- JP
- Japan
- Prior art keywords
- multiplicand
- multiplier
- data
- bit
- register
- 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 OR CALCULATING; 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/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5324—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3816—Accepting numbers of variable word length
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5332—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
符号なし乗算(完全結果表現について4ビット×4ビット−>8ビット)
1110 被乗数 14
0111 乗数 07
−−−− −−
1110 pp1 98
1 110 pp2 00
1 1 10 pp2 −−
000 0 pp3
−−−−−−−
01100010 積 98
符号付き乗算(オペランドを8に符号拡張 4ビット×4ビット−>8ビット)
1111 1110 被乗数 −2
0000 0111 乗数 +7
−−−− −−
1111 1110 pp1 −14
1111 110 pp2
1111 10 pp3
0000 0 pp4
0000 pp5
000 pp6
00 pp7
0 pp8
−−−−−
1111 0010 積 −14
このモジュラ2進乗算器10は、6個の一次入力を含むが、6個には限定されない。すなわち、第1のオペランドは1として示されている被乗数として使用される64ビットデータであり、第2のオペランドは、2として示されている乗数または乗数サブグループとして使用される15ビットデータである。3として示され、Z_BITとも呼ぶ乗数サブグループ間の重複ビットは、1つの乗数サブグループから次の乗数サブグループへの連続性をもたせ、ブースの記録アルゴリズムを使用する際に必要なストリング検出に使用される。4として示され、MCAND_64とも呼ぶ演算制御信号は、演算で32ビットと64ビットのいずれの被乗数1を使用するかを2進乗算器10に示し、UNSIGNEDとも表記する「符号なし」制御信号5は、2進乗算器10を符号付きまたは符号なし演算用に準備するために使用され、MTERM_SHIFT信号6は、2進乗算器10のモジュラ積出力を、他のモジュラ積と適切に桁合わせする追加のサイクルを必要としないようにシフトするために使用される。表2に、2つの制御信号MCAND_64 4およびUNSIGNED5のデコード論理の概略を示す。
図2に、一実施例による3パイプライン・スーパースケーラ固定小数点プロセッサ・アーキテクチャ200の略ブロック図とデータの流れを示す。3本のパイプライン50は、それぞれXパイプ50a、Yパイプ50b、およびZパイプ50cとも呼ぶ。3本のパイプ50a、50b、および50cはそれぞれ、バスとインタフェースし、少なくとも2個の64ビット・オペランド・レジスタを含む。Xパイプ50aのオペランド・レジスタをA1およびB1(51および52)、Yパイプ50bのオペランド・レジスタをA2およびB2(53および54)、Zパイプ50cのオペランド・レジスタをA3およびB3(55および56)で示す。Xパイプ50aとYパイプ50bは両方ともそれぞれ、マルチプレクサ60および62を介してデータが供給される出力Cレジスタを有し、それぞれC157およびC258で示す。この2つの出力レジスタC157およびC258は、それぞれ、汎用レジスタ・ファイル90にデータを書き込むために使用される。汎用レジスタ・ファイル90は、REGISTER_DATAバスを介してオペランドレジスタにデータを供給する。オペランド・レジスタには、STORAGE_DATAバスによってオペランド・バッファ92を介してメモリからもデータを供給することができる。レジスタ・ファイルからは1回のサイクルで2つの値を書き込むことができ、4つの値を読み取ることができる。先行ゼロの検出や有効データの検査などのデータ処理を行うために、図示されていない追加の論理を組み込むこともできる。マルチプレクサ60および62にはそれぞれ、X50aおよびY50bパイプの、Bin164およびBin266で示す2進加算器ユニットと、Blu172およびBlu274で示すビット論理ユニットから、データが供給される。ビット論理ユニットBlu172およびBlu274には、それぞれrot176およびrot278で示すローテータからデータが供給される。ローテータrot176およびrot278は、ビット論理ユニットBlu172およびBlu274と共に使用し、マスキングを効果的に使用して、シフト操作にも使用される。説明を簡単・簡潔にするために、本明細書では、ビット論理ユニットあるいはBlu172またはBlu274と言う場合、ローテータrot176およびrot278と、ビット論理ユニットBlu172およびBlu274を含むものとみなすことがある。レジスタB152およびB254の内容は、それぞれ、Xパイプ50aおよびYパイプ50bの先行ゼロ検出論理82および84ともインタフェースし、早期終了のためにこの実施例のハードウェア・アーキテクチャ200で実施される一部の命令で使用される。
上述の乗算のモジュラ的性質のため、特定のアーキテクチャおよび環境において選択された演算を実施するために多くのアルゴリズムを考えることができることがわかるであろう。本明細書では、前述の固定小数点スーパースケーラ・プロセッサの環境において実施される演算に関する方法について説明する。この方法は、乗算器10の使用の特定の利点と、図2に示すサポート・ハードウェアにおいて利用可能な機能を明確に示す。
図4を参照すると、様々なサイズの被乗数1を使用した一実施態様を示す例が図示されている。一実施例では、乗算器10は、16ビット×64ビットの有損失2進乗算を処理して、可能な80ビットの下位64ビットを生成するように構成されている。これによって、ハードウェア・アーキテクチャ200は、積の下位32ビットが生成される16ビット×32ビットの演算と、積の下位64ビットが生成される16ビット×64ビットの演算とを同じサイクル数で処理することができる。MCAND_64を32ビット演算の場合はゼロに設定し、64ビット演算の場合には1に設定することによって、同じアルゴリズムを使用して両方のタイプの乗算演算を容易に行うことができる。必要な追加の変更は、結果を記憶しておくことだけである。制御は、最初の演算、たとえば16ビット×32ビット乗算については32ビット・ワードに設定し、後の演算、たとえば16ビット×64ビット乗算については完全長に設定する。
本開示の各実施態様の柔軟性を示す他の例は、MSGおよびMSGRアルゴリズムの実施態様に基づくものである。両者は、64ビットの有損失積を生成する64×64演算であり、相違点は、MSGRがその乗数データ2を汎用レジスタ、たとえばレジスタ・ファイル90から入手するのに対し、MSGはそのデータを、この実施態様では、オペランド・バッファ92を介してメモリから入手することである。有損失64ビット結果を得るために、制御信号MCAND_64 4が1に設定される。このアルゴリズムのサイクルごとの動作を、以下の表7に示し、命令サブグループ処理順序を図5に示す。この図には、乗数が4個の乗数サブグループに分割されている様子が示されており、この演算は有損失演算であるため、完全な最初のオペランドが64ビット被乗数データとして保持される。
2 乗数
3 重複ビット
4 MCAND_64制御信号
5 UNSIGNED制御信号
6 MTERM_SHIFT制御信号
10 乗算器
11 被乗数ハイワード変換
12 被乗数入力マージ(被乗数倍数生成論理)
13 左シフタ(被乗数倍数生成論理)
14 1の補数モジュール(被乗数倍数生成論理)
15 1の補数モジュール(被乗数倍数生成論理)
12 被乗数倍数生成論理
13 被乗数倍数生成論理
14 被乗数倍数生成論理
15 被乗数倍数生成論理
16 ブース記録論理
17 選択論理
18 加算器
19 桁上げレジスタ
20 合計レジスタ
21 桁上げ伝播加算器
22 マルチプレクサ
50a パイプライン
50b パイプライン
50c パイプライン
51 オペランド・レジスタ
52 オペランド・レジスタ
53 オペランド・レジスタ
54 オペランド・レジスタ
55 オペランド・レジスタ
56 オペランド・レジスタ
57 出力レジスタ
58 出力レジスタ
59 作業用レジスタ
60 マルチプレクサ
62 マルチプレクサ
64 2進加算器ユニット
66 2進加算器ユニット
72 ビット論理ユニット
74 ビット論理ユニット
76 ローテータ
78 ローテータ
82 先行ゼロ検出論理
84 先行ゼロ検出論理
86 バッファ
90 汎用レジスタ・ファイル
92 オペランド・バッファ
100 プロセッサ
102 媒体
103 データ信号
200 3パイプライン・スーパースケーラ固定小数点プロセッサ
Claims (11)
- スーパースケーラ・プロセッサのための2進乗算器であって、
mビットが、前記プロセッサのレジスタの全幅と選択された2進乗算命令のオペランド・データの最大幅とのうちの少なくとも一方を含み、最大mビット長の被乗数データを含む第1のオペランドを受け取るように構成された第1のレジスタ入力と、
乗数値と、nビット長の前記乗数値の一区分を含む乗数値サブグループとのうちの一方を含む第2のオペランドを受け取るように構成され、nが選択された2進乗算命令のオペランド・データの最大幅以下である、第2のレジスタ入力と、
前記乗算器が前記被乗数データ入力から該当ビットを選択して有効な被乗数を生成し、前記被乗数データ入力の不使用ビットをゼロ設定することができるようにする、前記被乗数データのサイズを示す第1の制御信号を受け取るように構成された制御信号入力と、
前記被乗数演算が符号付きであるか符号なしであるかを示す第2の制御信号を受け取るように構成され、前記乗算器が前記有効被乗数の符号拡張を行えるようにするように構成された第2の制御信号入力と、
前記乗算器が前記被乗数に基づいて複数の被乗数倍数を設定し、前記乗数値または乗数値サブグループを走査グループに区分化し、前記走査グループごとに複数ビット信号を生成し、前記複数ビット信号を使用して前記被乗数倍数を選択して複数の部分積を生成し、前記複数の部分積を合計して生成されたモジュラ積をシフトして、他のモジュラ積と桁合わせすることができるようにするように構成された第3の制御信号入力とを含む2進乗算器。 - 前記第2の制御信号は、乗算が符号付き演算と符号なし演算のいずれとして認められるかを制御するとともに、負の表現として2の補数形式を使用することにより、前記被乗数データが符号付きと符号なしのうちのいずれの一方として扱われるかを制御する、請求項1に記載の乗算器。
- 2つの乗数値サブグループ間に連続性をもたせ、それによってnビットを超える長さの乗数による乗算への対応を可能にする重複ビットを受け取るように構成された入力をさらに含む、請求項1に記載の乗算器。
- 前記複数ビット信号は、少なくとも1ビットを使用して前記被乗数データのいずれの倍数を選択するかを示し、他の1ビットを使用して前記被乗数データの正または負の倍数を示す、請求項1に記載の乗算器。
- 前記複数ビット信号は3ビット信号であり、2ビットが前記被乗数データの±1x倍数と±2x倍数とのうちの少なくとも一方を選択するか否かを示し、第3のビットが正または負の倍数を示す、請求項1に記載の乗算器。
- 加算器の出力に動作可能に接続され、乗数値と乗数値サブグループとのうちの一方のそれぞれのサイズに基づいて、前記他のモジュラ積との桁合わせのために、前記モジュラ積をシフトさせる必要があるか否かを判定するマルチプレクサと、前記シフトさせる必要があるとの判定した場合に、前記モジュラ積をnビット左にシフトさせるシフタとをさらに含む、請求項1に記載の乗算器。
- スーパースケーラ・プロセッサにおける2進乗算のためのシステムであって、
2進乗算器と、
前記2進乗算器と動作可能に通信し、乗数データと被乗数データをシフトさせて、選択されたサブグループを前記2進乗算器に送ると共に、被乗数のサブグループに基づいて複数の被乗数倍数を設定し、乗数値のサブグループを走査グループに区分化し、前記走査グループごとに複数ビット信号を生成し、前記複数ビット信号を使用して前記被乗数倍数を選択して複数の部分積を生成し、前記複数の部分積を合計して生成されたモジュラ積を他の1つのモジュラ積と累積モジュラ積のうちの少なくとも一方と桁合わせするために、前記モジュラ積をシフトさせるデータ幅シフタと、
前記シフタと動作可能に通信し、前記乗数データと前記被乗数データを前記シフタに入力するために保持するレジスタと、
前記レジスタと動作可能に通信し、モジュラ積を、他のモジュラ積と累算モジュラ積とのうちの少なくとも一方と累算する加算器と、
前記加算器と動作可能に通信し、前記モジュラ積および前記累算モジュラ積を前記加算器への入力のためと、前記累算モジュラ積の出力とのために保持する複数のレジスタとを含むシステム。 - 前記乗数データと前記被乗数データとをシフトする他のデータ幅シフタをさらに含む、請求項7に記載のシステム。
- 2進乗算の方法であって、
被乗数を入手するステップと、
乗数を入手するステップと、
前記乗数が選択された長さを超える場合、前記乗数を複数の乗数サブグループに区分化するステップと、
前記被乗数が選択された長さを超える場合、前記被乗数を複数の被乗数サブグループに区分化し、前記被乗数サブグループの符号なしビットをゼロ設定することと前記被乗数サブグループのより小さい部分を符号拡張することとのうちの少なくとも一方を行うステップと、
前記複数の被乗数サブグループのうちの選択された被乗数サブグループと、前記被乗数とのうちの少なくとも一方に基づいて、複数の被乗数倍数を設定するステップと、
前記複数の乗数サブグループの各前記乗数サブグループを走査グループに区分化し、前記走査グループごとに複数ビット信号を生成するステップと、
1つの前記走査グループに対する前記複数ビット信号を使用して、前記被乗数倍数を選択してモジュラ積を生成するステップと、
他の前記走査グループに対する前記複数ビット信号を使用して、前記被乗数倍数を選択して他のモジュラ積を生成するステップと、
前記モジュラ積と前記他のモジュラ積とを桁合わせして結果積を生成するステップと含む方法。 - 前記複数ビット信号は、少なくとも1ビットを使用して、前記被乗数のどの倍数を選択するかを示し、他の1ビットを使用して前記被乗数の正の倍数または負の倍数を示す、請求項9に記載の方法。
- 前記複数ビット信号が3ビット信号であり、2ビットが前記被乗数の0x、±1x、および±2x倍数のうちの1つの倍数を選択するために使用され、第3のビットが前記被乗数の正または負の倍数を示すために使用される、請求項9に記載の方法。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/435,976 US7266580B2 (en) | 2003-05-12 | 2003-05-12 | Modular binary multiplier for signed and unsigned operands of variable widths |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004342106A JP2004342106A (ja) | 2004-12-02 |
| JP3891997B2 true JP3891997B2 (ja) | 2007-03-14 |
Family
ID=33417058
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004141968A Expired - Fee Related JP3891997B2 (ja) | 2003-05-12 | 2004-05-12 | 可変幅の符号付きおよび符号なしオペランドのためのモジュラ2進乗算器 |
Country Status (2)
| Country | Link |
|---|---|
| US (3) | US7266580B2 (ja) |
| JP (1) | JP3891997B2 (ja) |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100458031B1 (ko) * | 2003-03-14 | 2004-11-26 | 삼성전자주식회사 | 몽고메리 유형의 모듈라 곱셈 장치 및 방법 |
| US20060059221A1 (en) * | 2004-09-10 | 2006-03-16 | Cavium Networks | Multiply instructions for modular exponentiation |
| US20060242219A1 (en) * | 2005-04-20 | 2006-10-26 | Chin-Yung Chen | Asynchronous multiplier |
| US20070100924A1 (en) * | 2005-10-31 | 2007-05-03 | Chin-Yung Chen | Asynchronous signed multiplier and algorithm thereof |
| US8073892B2 (en) * | 2005-12-30 | 2011-12-06 | Intel Corporation | Cryptographic system, method and multiplier |
| US20090030963A1 (en) * | 2006-02-15 | 2009-01-29 | Kouichi Nagano | Multiplication circuit, digital filter, signal processing device, synthesis device, synthesis program, and synthesis program recording medium |
| US20080077647A1 (en) * | 2006-09-06 | 2008-03-27 | Fam Adly T | Parameterized VLSI Architecture And Method For Binary Multipliers |
| US8321489B2 (en) | 2006-09-15 | 2012-11-27 | National Semiconductor Corporation | Software reconfigurable digital phase lock loop architecture |
| US20080140753A1 (en) * | 2006-12-08 | 2008-06-12 | Vinodh Gopal | Multiplier |
| US8667046B2 (en) * | 2008-02-21 | 2014-03-04 | Ecole Polytechnique Federale De Lausanne/Service Des Relations Industrielles | Generalized programmable counter arrays |
| US20090292756A1 (en) * | 2008-05-23 | 2009-11-26 | Elliot Gibson D | Large-factor multiplication in an array of processors |
| US8577952B2 (en) * | 2008-12-08 | 2013-11-05 | International Business Machines Corporation | Combined binary/decimal fixed-point multiplier and method |
| US8495125B2 (en) * | 2009-05-27 | 2013-07-23 | Microchip Technology Incorporated | DSP engine with implicit mixed sign operands |
| US8566385B2 (en) * | 2009-12-02 | 2013-10-22 | International Business Machines Corporation | Decimal floating point multiplier and design structure |
| FR2974202B1 (fr) * | 2011-04-18 | 2013-04-12 | Inside Secure | Procede de multiplication de montgomery |
| US9069624B1 (en) * | 2012-07-23 | 2015-06-30 | Altera Corporation | Systems and methods for DSP block enhancement |
| US9519460B1 (en) * | 2014-09-25 | 2016-12-13 | Cadence Design Systems, Inc. | Universal single instruction multiple data multiplier and wide accumulator unit |
| CN105786444B (zh) * | 2014-12-26 | 2018-10-12 | 联想(北京)有限公司 | 一种浮点数尾数前导零检测方法及装置 |
| US9727399B1 (en) | 2016-09-29 | 2017-08-08 | International Business Machines Corporation | Residue-based checking of a shift operation |
| CN108364065B (zh) * | 2018-01-19 | 2020-09-11 | 上海兆芯集成电路有限公司 | 采布斯乘法的微处理器 |
| CN111090413A (zh) * | 2018-10-23 | 2020-05-01 | 成都鼎桥通信技术有限公司 | 一种累加数字序列的方法和装置 |
| CN113031912B (zh) * | 2019-12-24 | 2024-08-16 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、装置及芯片 |
| CN112416294B (zh) * | 2020-11-20 | 2022-09-16 | 安谋科技(中国)有限公司 | 处理器及其二进制累加方法和计算机可读介质 |
| US12147783B2 (en) | 2021-04-28 | 2024-11-19 | International Business Machines Corporation | Pipelined hardware to accelerate modular arithmetic operations |
| CN113867685A (zh) * | 2021-09-27 | 2021-12-31 | 山东云海国创云计算装备产业创新中心有限公司 | 一种乘法器转换方法、装置、设备及可读存储介质 |
| CN115857873B (zh) * | 2023-02-07 | 2023-05-09 | 兰州大学 | 乘法器、乘法计算方法、处理系统及存储介质 |
| US20260004870A1 (en) * | 2024-06-26 | 2026-01-01 | Macronix International Co., Ltd. | Repairing defective columns of compute-in-memory and near-memory computing devices |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4390961A (en) * | 1980-12-24 | 1983-06-28 | Honeywell Information Systems Inc. | Data processor performing a decimal multiply operation using a read only memory |
| US4484300A (en) * | 1980-12-24 | 1984-11-20 | Honeywell Information Systems Inc. | Data processor having units carry and tens carry apparatus supporting a decimal multiply operation |
| US4809212A (en) * | 1985-06-19 | 1989-02-28 | Advanced Micro Devices, Inc. | High throughput extended-precision multiplier |
| US5262976A (en) * | 1989-11-13 | 1993-11-16 | Harris Corporation | Plural-bit recoding multiplier |
| JP2830566B2 (ja) * | 1992-01-13 | 1998-12-02 | 日本電気株式会社 | 十進数乗算器 |
| DE4218769A1 (de) * | 1992-06-06 | 1993-12-09 | Philips Patentverwaltung | Verfahren und Anordnung zum Bilden der Summe einer Kette von Produkten |
| US5579253A (en) * | 1994-09-02 | 1996-11-26 | Lee; Ruby B. | Computer multiply instruction with a subresult selection option |
| US5764558A (en) * | 1995-08-25 | 1998-06-09 | International Business Machines Corporation | Method and system for efficiently multiplying signed and unsigned variable width operands |
| US5684731A (en) * | 1995-08-31 | 1997-11-04 | National Semiconductor Corporation | Booth multiplier using data path width adder for efficient carry save addition |
| DE19637369C2 (de) * | 1996-09-13 | 2001-11-15 | Micronas Gmbh | Digitaler Signalprozessor mit Multipliziereinrichtung und -Verfahren |
| KR100222032B1 (ko) * | 1996-12-24 | 1999-10-01 | 윤종용 | 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법 |
| US6233597B1 (en) * | 1997-07-09 | 2001-05-15 | Matsushita Electric Industrial Co., Ltd. | Computing apparatus for double-precision multiplication |
| US6035318A (en) * | 1998-03-31 | 2000-03-07 | Intel Corporation | Booth multiplier for handling variable width operands |
| US6434584B1 (en) * | 1998-06-04 | 2002-08-13 | Texas Instruments Incorporated | Flexible accumulator register file for use in high performance microprocessors |
| US6523055B1 (en) * | 1999-01-20 | 2003-02-18 | Lsi Logic Corporation | Circuit and method for multiplying and accumulating the sum of two products in a single cycle |
| US6330660B1 (en) * | 1999-10-25 | 2001-12-11 | Vxtel, Inc. | Method and apparatus for saturated multiplication and accumulation in an application specific signal processor |
| US6611856B1 (en) * | 1999-12-23 | 2003-08-26 | Intel Corporation | Processing multiply-accumulate operations in a single cycle |
-
2003
- 2003-05-12 US US10/435,976 patent/US7266580B2/en not_active Expired - Fee Related
-
2004
- 2004-05-12 JP JP2004141968A patent/JP3891997B2/ja not_active Expired - Fee Related
-
2007
- 2007-05-16 US US11/749,239 patent/US7490121B2/en not_active Expired - Lifetime
- 2007-05-16 US US11/749,224 patent/US7853635B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US7266580B2 (en) | 2007-09-04 |
| JP2004342106A (ja) | 2004-12-02 |
| US20040230631A1 (en) | 2004-11-18 |
| US20070233773A1 (en) | 2007-10-04 |
| US7490121B2 (en) | 2009-02-10 |
| US20070214205A1 (en) | 2007-09-13 |
| US7853635B2 (en) | 2010-12-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3891997B2 (ja) | 可変幅の符号付きおよび符号なしオペランドのためのモジュラ2進乗算器 | |
| EP1293891B2 (en) | Arithmetic processor accomodating different finite field size | |
| US10255041B2 (en) | Unified multiply unit | |
| EP3374853B1 (en) | Multiplication of first and second operands using redundant representation | |
| US9916131B2 (en) | Techniques and devices for performing arithmetic | |
| US5631859A (en) | Floating point arithmetic unit having logic for quad precision arithmetic | |
| US6360241B1 (en) | Computer method and apparatus for division and square root operations using signed digit | |
| JP6694880B2 (ja) | 有効度整合 | |
| JP3761977B2 (ja) | 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法 | |
| KR102557657B1 (ko) | 중첩 비트를 이용한 수치 값의 중복 표현 | |
| JPH0414366B2 (ja) | ||
| US6295597B1 (en) | Apparatus and method for improved vector processing to support extended-length integer arithmetic | |
| WO2017081435A1 (en) | Lane position information for processing of vector | |
| JPH07168697A (ja) | 倍精度除算回路および方法 | |
| US8554822B2 (en) | Decimal adder with end around carry | |
| US20020040379A1 (en) | Wide word multiplier using booth encoding | |
| JP5193358B2 (ja) | 多項式データ処理演算 | |
| EP3516500A1 (en) | Distributed double-precision floating-point multiplication | |
| JP7601776B2 (ja) | アンカーデータ要素の変換 | |
| US7174015B1 (en) | Methods and apparatus for variable radix scalable modular multiplication | |
| US6813628B2 (en) | Method and apparatus for performing equality comparison in redundant form arithmetic | |
| US7412476B2 (en) | Decimal multiplication for superscaler processors | |
| WO2000038047A1 (en) | Circuit and method of cryptographic multiplication | |
| JP3579087B2 (ja) | 演算器およびマイクロプロセッサ | |
| US20040049528A1 (en) | Apparatus and method for adding multiple-bit binary-strings |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060404 |
|
| RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20060427 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060427 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060626 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060630 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061003 |
|
| 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: 20061121 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20061121 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061205 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3891997 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091215 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111215 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111215 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121215 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121215 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131215 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |
