JP6309196B2 - 多項式演算のための部分積発生装置及び方法 - Google Patents

多項式演算のための部分積発生装置及び方法 Download PDF

Info

Publication number
JP6309196B2
JP6309196B2 JP2013039962A JP2013039962A JP6309196B2 JP 6309196 B2 JP6309196 B2 JP 6309196B2 JP 2013039962 A JP2013039962 A JP 2013039962A JP 2013039962 A JP2013039962 A JP 2013039962A JP 6309196 B2 JP6309196 B2 JP 6309196B2
Authority
JP
Japan
Prior art keywords
encoder
output
value
carry
bit
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
Application number
JP2013039962A
Other languages
English (en)
Other versions
JP2013182619A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2013182619A publication Critical patent/JP2013182619A/ja
Application granted granted Critical
Publication of JP6309196B2 publication Critical patent/JP6309196B2/ja
Active 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/52Multiplying; Dividing
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、多項式演算のための部分積発生装置及び方法に関する。
最近のイメージプロセッシング機器または多様なマルチメディア機器は、加算、減算、乗算、除算のような基本的な演算以外に三角関数、ログ関数、及び指数関数のような超越関数の演算を必要とする。このような複雑な超越関数は、ソフトウェアのコンパイル段階で、加算、乗算などの基本演算で分解して処理するように支援されることもできる。しかし、そのような分解は、プロセッサ内部に専用の処理ユニットを設けて、超越関数を処理する方式に比べて、処理時間が非常に長い。映像情報は、処理時間が性能にかかわる重要な指標なので、一般的に専用の処理ユニットを設けたプロセッサが映像情報処理時の超越関数の演算に活用されている。
デジタル機器内で、このような超越関数が処理される方式としては、主に乗算と加算の演算とを利用した方法が使われている。すなわち、超越関数の演算は、多項式の展開によって結果を求める。この際、多項式とは、定数といくつかの変数の積からなる単項式の和からなる。これは、より基本的な演算の構成で考えてみれば、一連の連続した乗算と、これら結果の加算とで構成される。そのうち、乗算の演算は、基本的な算術演算でありながら、また、長い処理時間を要する。したがって、このような乗算の演算の展開時間を減らせれば、全体的な多項式の演算時間を減らすことができて、より高速のデジタル機器を実施することができる。
本発明は、多項式演算のための部分積発生装置及び方法を提供することである。
本発明の一態様による多項式演算のための部分積発生装置は、乗数(multiplier)と関連した2つの入力に基づいて、互いに排他的な値のうち何れか1つをそれぞれ出力する複数の第1エンコーダと、前記入力の基準ビットから提供される前記複数の第1エンコーダのうち、最初の第1エンコーダの出力、前記入力の上位ビットから提供される前記位置に対応する前記複数の第1エンコーダのうち、二番目の第1エンコーダの出力及び被乗数(multiplicand)に基づいて、2つの部分積(partial product)候補値を生成及び出力する第2エンコーダと、前記第2エンコーダから出力された前記部分積候補値のうち1つを選択するマルチプレクサと、を含みうる。
前記入力は、乗数と関連する。
前記第2エンコーダは、前記複数の第1エンコーダのうち、前記最初の第1エンコーダの出力と前記二番目の第1エンコーダの出力とに基づいて、キャリー予測値を生成及び出力する機能をさらに含みうる。
装置は、前記入力の他の基準ビット位置から提供される前記複数の第1エンコーダのうち、さらに他の最初の第1エンコーダの出力、前記入力のさらに他の上位ビット位置から提供される前記第1エンコーダのうち、さらに他の二番目の第1エンコーダの出力、前記第1エンコーダのうち、前記二番目の第1エンコーダの出力、及び前記被乗数に基づいて、さらに他の2つの部分積候補値を生成及び出力し、前記複数の第1エンコーダのうち、前記さらに他の最初の第1エンコーダの出力、前記第1エンコーダの前記さらに他の二番目の第1エンコーダの出力、及び前記第1エンコーダのうち、前記二番目の第1エンコーダの出力に基づいて、キャリー予測値を生成及び出力するさらに他の二番目の第1エンコーダと、前記二番目の第1エンコーダから出力された前記部分積候補値に基づいて、前記さらに他の二番目の第1エンコーダから出力された前記さらに他の部分積候補値のうち1つを選択するさらに他のマルチプレクサと、をさらに含みうる。
装置は、前記入力の他の基準ビット位置から提供される前記複数の第1エンコーダのうち、さらに他の最初の第1エンコーダの出力、前記入力のさらに他の上位ビット位置から提供される前記第1エンコーダのうち、さらに他の二番目の第1エンコーダの出力、及び前記第1エンコーダのうち、前記二番目の第1エンコーダの出力に基づいて、さらに他の2つの部分積候補値を生成させ、前記エンコーディング候補値のそれぞれに、前記被乗数を乗算して、さらに他の2つの部分積候補値を生成及び出力するさらに他の二番目の第1エンコーダと、前記二番目の第1エンコーダから出力された前記部分積候補値に基づいて、前記さらに他の二番目の第1エンコーダから出力された前記さらに他の部分積候補値のうち1つを選択するさらに他のマルチプレクサと、をさらに含みうる。
前記エンコーディング候補値は、キャリーが前記入力の下位ビットで発生する場合に対する第1エンコーディング候補値、及び前記キャリーが前記下位ビットで発生しない場合に対する第2エンコーディング候補値を含みうる。
前記さらに他の二番目の第1エンコーダは、Radix−4 Boothエンコーディングアルゴリズムに基づいて、前記エンコーディング候補値及び前記さらに他のキャリー予測値をさらに生成することができる。
前記二番目の第1エンコーダ及び前記さらに他の二番目の第1エンコーダのそれぞれは、前記入力の偶数ビット位置から提供されうる。
前記入力は、一連の乗算過程で生成される先行部分積(precedence partial product)のビットを受信することができる。
前記最初の第1エンコーダのそれぞれは、前記入力のビット位置に形成されうる。
前記相互排他的な値は、P(Propagation)値、G(Generation)値、及びT(Termination)値を含みうる。
前記P値は、前記入力の下位ビットでキャリーが発生すれば、前記入力の基準ビットでもキャリーが発生する状態を表わし、前記G値は、前記基準ビットで前記キャリーが発生する状態を表わし、前記T値は、前記下位ビットで前記キャリーが発生しても、前記基準ビットで前記キャリーが発生しない状態を表わすことができる。
本発明の他の態様による多項式演算のための部分積発生方法は、2つの入力に基づいて、相互排他的な値であり、入力の基準ビット位置及び上位ビット位置にそれぞれ配されるPGT値(Propagation Generation Termination value)を生成させる段階と、前記PGT値及び被乗数に基づいて、2つの部分積候補値を生成させる段階と、前記部分積候補値のうちから何れか1つを選択する段階と、を含みうる。
前記入力は、被乗数と関連する。
方法は、前記PGT値に基づいて、キャリー予測値を生成させる段階をさらに含みうる。方法は、前記入力に基づいて、相互排他的な値であり、前記入力のさらに他の基準ビット位置、さらに他の上位ビット位置、及び前記上位ビット位置に、それぞれ配されるさらに他のPGT値を生成させる段階と、前記さらに他のPGT値に基づいて、2つのエンコーディング候補値及びさらに他のキャリー予測値を生成させる段階と、前記エンコーディング候補値のそれぞれに、前記被乗数を乗算して、さらに他の2つの部分積候補値を生成させる段階と、前記キャリー予測値に基づいて、前記さらに他の部分積候補値のうち1つを選択する段階と、をさらに含みうる。
前記エンコーディング候補値は、前記入力の下位ビットでキャリーが発生する場合に対する第1エンコーディング候補値、及び前記キャリーが前記下位ビットで発生しない場合に対する第2エンコーディング候補値を含みうる。
前記相互排他的な値は、P値、G値、及びT値を含み、前記P値は、前記入力の下位ビットでキャリーが発生すれば、前記入力の基準ビットでも、キャリーが発生する状態を表わし、前記G値は、前記基準ビットで前記キャリーが発生する状態を表わし、前記T値は、前記下位ビットで前記キャリーが発生しても、前記基準ビットで前記キャリーが発生しない状態を表わすことができる。
前記入力は、一連の乗算過程で生成される先行部分積のビット値を含みうる。
方法は、コンピュータでその方法を実施するための命令語を含むプログラムを保存するコンピュータで読取り可能な非一時的な記録媒体に保存することができる。
本発明の一実施形態による多項式演算のための部分積発生装置の構成を示す図である。 本発明の一実施形態による第1エンコーダの構成を示す図である。 本発明の一実施形態による第2エンコーダの構成を示す図である。 本発明の他の実施形態による第2エンコーダの構成を示す図である。 本発明の一実施形態によるマルチプレクサの構成を示す図である。 本発明の一実施形態による多項式演算のための部分積発生方法の流れを示す図である。
以下、添付図面を参照して、本発明の実施のための具体的な例を詳しく説明する。
図1は、本発明の一実施形態による多項式演算のための部分積発生装置100の構成を示す図である。
部分積発生装置100は、第1エンコーダ101、第2エンコーダ102、及びマルチプレクサ103を含む。第1エンコーダ101は、乗数と関連した2つの入力を受信する。例えば、乗数が‘X’とする時、第1エンコーダ101は、乗数‘X’と関連した入力‘A’と‘B’とを受信することができる。それぞれの入力‘A’と‘B’は、一連の乗算過程で生成される先行部分積になりうる。例えば、乗数‘X’は、入力‘A’と‘B’との和で表現される。
第1エンコーダ101は、入力の各ビットの位置に形成されうる。もし、入力6ビット長の2つの先行部分積が入力‘A’及び‘B’である場合、第1エンコーダ101は、各ビット位置別に6つが形成されうる。例えば、n番目−第1エンコーダ101aの入力は、‘A[2]’と‘B[2]’とになりうる。入力‘A[2]’は、乗数‘X’と関連した何れか1つの先行部分積の3番目のビット値になり、入力‘B[2]’は、乗数‘X’と関連した他の1つの先行部分積の3番目のビット値になりうる。理解を助けるために、n番目のビット値に対応する位置を‘基準ビット位置’と称する。
第1エンコーダ101は、受信された2つの入力によって互いに排他的な3つの値のうち何れか1つを出力する。例えば、第1エンコーダ101は、P値、G値、及びT値のうち何れか1つの値をPGT値で出力することが可能である。PGT値は、各ビット位置でのキャリー発生と関連した値になりうる。P値は、下位ビットでキャリーが発生すれば、基準ビットでもキャリーが発生する状態を表わし、G値は、基準ビットでキャリーが発生した状態を表わし、T値は、下位ビットでキャリーが発生しても、基準ビットでキャリーが発生しない状態を表わすことができる。例えば、n番目−第1エンコーダ101aは、ビット入力である入力‘A[2]’と‘B[2]’とによって、P値(例えば、‘100’)、G値(例えば、‘010’)、またはT値(例えば、‘001’)のうち何れか1つの値を選択的に出力することができる。ここで、PGT値が、3ビットのデータであると説明したが、これは、理解を助けるための例示であって、その他にも多様な変形が可能であるということはいうまでもない。
第2エンコーダ102は、隣接した第1エンコーダ101のPGT値の出力を受信する。例えば、n番目−第2エンコーダ102aは、基準ビット位置に対応するn番目−第1エンコーダ101aのPGT値の出力、上位ビット位置に対応するn+1番目−第1エンコーダ101bのPGT値の出力、及び下位ビット位置に対応するn−1番目−第1エンコーダ101cのPGT値の出力を受信することができる。
第2エンコーダ102は、さらに、被乗数を受信する。もし、被乗数が‘Y’であれば、第2エンコーダ102は、‘Y’及び‘Yn−1’を受信することができる。ここで、Yは、元の被乗数を、Yn−1は、1ビットシフトされた被乗数を表わす。
第2エンコーダ102は、隣接した第1エンコーダ101のPGT値の出力と被乗数に基づいて、2つの部分積候補値とキャリー予測値(carry estimation)とを生成する。例えば、n番目−第2エンコーダ102aは、n番目−第1エンコーダ101aのPGT値の出力、n+1番目−第1エンコーダ101bのPGT値の出力、及びn−1番目−第1エンコーダ101cのPGT値の出力を受信する。n番目−第2エンコーダ102aは、Radix−4 Boothエンコーディングアルゴリズムに基づいて、2つのエンコーディング候補値とキャリー予測値‘e1’とを生成した後、2つのエンコーディング候補値と被乗数‘Y’とをそれぞれ乗算して、2つの部分積候補値‘pp1_0’と‘pp1_1’とを生成することができる。2つの部分積候補値‘pp1_0’と‘pp1_1’とのうち何れか1つは、下位ビットでキャリーが発生した時の部分積になり、他の1つは、下位ビットでキャリーが発生しなかった時の部分積になりうる。

第2エンコーダ102は、Radix−4 Booth余剰エンコーディングのために、偶数ビットの位置に形成されうる。例えば、第2エンコーダ102は、n−2番目、n番目、n+2番目のビット位置にそれぞれ形成されうる。
マルチプレクサ103は、基準ビット位置に対応する第2エンコーダ102の部分積候補値の出力と下位ビット位置に対応する第2エンコーダ102のキャリー予測値の出力とを受信する。例えば、n番目−マルチプレクサ103aは、n番目−第2エンコーダ102aの部分積候補値の出力‘pp1_0’及び‘pp1_1’とn−2番目−第2エンコーダ102bのキャリー予測値の出力‘e0’とを受信することができる。
マルチプレクサ103は、下位ビット位置の第2エンコーダ102のキャリー予測値の出力に基づいて、基準ビット位置の第2エンコーダ102の部分積候補値の出力のうち何れか1つを選択する。例えば、n番目−マルチプレクサ103aは、n番目−第2エンコーダ102aの部分積候補値の出力‘pp1_0’及び‘pp1_1’のうち何れか1つをn−2番目−第2エンコーダ102bのキャリー予測値の出力‘e0’に基づいて選択することが可能である。
本発明の一態様によって、第1エンコーダ101の出力をPGT値とする時、第1エンコーダ200は、2つの入力‘A’と‘B’とに基づいて、‘P値’、‘G値’、及び‘T値’のうち何れか1つを出力する。この際、2つの入力とPGT値の関係は、次のように定義されうる。
(数式1)
=A XOR B
=A AND B
=〜(A OR B
、G、Tは、それぞれPGT値のそれぞれのビット値を表わす。
前記の数式1を表で表わせば、次の通りである。
Figure 0006309196
数式1及び表1のように、PGT値は、2つの入力に対して相互排他的な3種の値のうちから何れか1つの値のみ有することが分かる。数式1及び表1のように動作する第1エンコーダ101は、多様な方式を通じて実施可能である。
図2は、その一例を示す図である。例えば、第1エンコーダ101は、XOR論理ゲート、AND論理ゲート、NOR論理ゲートなどを含みうる。XOR論理ゲート、AND論理ゲート、及びNOR論理ゲートは、2つの入力An及びBnを受信する。XOR論理ゲートは、入力An及びBnに基づいて、PGT値の最初のビット値であるPn値を出力し、AND論理ゲートは、入力An及びBnに基づいて、PGT値の二番目のビット値であるGn値を出力し、NOR論理ゲートは、入力An及びBnに基づいて、PGT値の三番目のビット値であるTn値を出力する。図2の実施形態で、第1エンコーダ101が、XOR論理ゲート、AND論理ゲート、及びNOR論理ゲートを含むが、これは、例示に過ぎず、他の論理ゲート、例えば、OR論理ゲート、NAND論理ゲート、または当業者に知られたそれ以外の論理ゲートが使われることもある。
図3は、第2エンコーダ102の一例を示す図である。第2エンコーダ102は、エンコーディング候補値生成部301、キャリー予測値生成部302、及び部分積候補値生成部303を含みうる。
エンコーディング候補値生成部301及びキャリー予測値生成部302は、3つの隣接した第1エンコーダ(例えば、図1の101a、101b、101c)からそれぞれ出力されるPGT値であるPGTn+1、PGTn+2、PGTn+3を受信する。エンコーディング候補値生成部301は、2つのエンコーディング候補値BE及びBEをPGT値であるPGTn+1、PGTn+2、PGTn+3に基づいて生成し、キャリー予測値生成部302は、キャリー予測値eをPGT値であるPGTn+1、PGTn+2、PGTn+3に基づいて生成する。例えば、エンコーディング候補値生成部301及びキャリー予測値生成部302は、隣接したビット位置の第1エンコーダ101a、101b、101c(図1参照)のPGT値によって、次の表のようなエンコーディングを行う。
Figure 0006309196
表2の例で、PGTフィールドの値が‘PPP’であれば、これは、各ビットの位置にPGT値であるPGTn+1、PGTn+2、PGTn+3が、いずれも‘P値’で出力された場合を表わすことができる。‘BE0’及び‘BE1’は、2つのエンコーディング候補値を表わし、‘e’は、キャリー予測値を表わす。すなわち、表2のように、エンコーディング候補値生成部301は、PGT値によって、−2、−1、0、1、2のうち何れか1つの値を有する2つのエンコーディング候補値BE1、BE0を生成させ、キャリー予測値生成部302は、0、1のうち何れか1つの値を有するキャリー予測値を生成することが可能である。
部分積候補値生成部303は、2つのエンコーディング候補値‘BE’、‘BE’と被乗数‘Y’とに基づいて、2つの部分積候補値‘PP’及び‘PP’を生成する。例えば、部分積候補値生成部303は、エンコーディング候補値BE、BEのそれぞれに被乗数Yを乗算して、部分積候補値PP及びPPを生成する。
表2のように動作する第2エンコーダ102は、多様な方式を通じて実施可能である。第2エンコーダ102の実施方法を他の例として説明すれば、次の通りである。表2のようなエンコード結果を求めるのは、最終的に部分積を得るためである。したがって、エンコーディング候補値‘−2’、‘−1’、‘0’、‘1’、‘2’に基づいて、次の3種の命令を定義し、該定義された命令に基づいて部分積を生成させる設計技法が使われる。
* Shift:エンコーディング候補値+2と−2とに対応し、入力値(例えば、被乗数Y)を1ビット位置だけ移動する
* Zero:エンコーディング候補値0に対応し、0を出力する
* Negation:エンコーディング候補値−1、−2に対応し、入力値(例えば、被乗数Y)に対する補数値を得る
この3種の命令と条件(例えば、エンコーディング候補値の発生条件)とを簡略に表わせば、次の表3のようである。
Figure 0006309196
前記の表は、部分積を生成させる論理構造で使われる各Negation、Zero、Shiftの値を定義したものである。ここで、各値は、0と1との論理状態を有し、Xは、“don’t−care”条件で如何なる値を有しても良い。したがって、前記の表のような論理値でXの状態を適切に調整すれば、PGT値から各Negation、Shift、Zeroを求める論理式をより簡単にできる。これに対する1つの実施形態は、次の表4ないし表6のようになる。
Figure 0006309196
Figure 0006309196
Shift0、Shift1、Zero0、Zero1、Neg0、及びNeg1は、それぞれShiftno−carry、Shiftcarry、Zerono−carry、Zerocarry、Negationno−carry、及びNegationcarryの論理表現を表わす。
一方、PGT値のP値、G値、T値は、相互排他的であり、例えば、3種のうちただ1つの値のみActive状態である‘1’なので、各命令は、次の数式2のように簡単な論理式で表現される。
(数2)
Shiftno−carry=P XOR Tn−1
Shiftcarry=P XOR Gn−1
Zerono−carry=〜Pn+1 XOR T
Zerocarry=〜Pn+1 XOR G
Negationno−carry=Pn+1 XOR(G OR(P AND 〜Tn−1))
Negationcarry=Pn+1 XOR(G OR(P AND 〜Tn−1))
数式2及び表2ないし表6のように動作する第2エンコーダ102は、多様な方式を通じて実施可能である。第2エンコーダ102は、XOR、AND、NOR論理ゲートなどに基づいて、2つの部分積候補値PP、PPを生成させる部分401とキャリー予測値eを生成させる部分402とを含みうる。たとえ図4の実施形態で、第2エンコーダ102が、XOR、AND、及びOR論理ゲートを含むが、これは、例示に過ぎず、NOR論理ゲート、NAND論理ゲート、及び当業者に知られたそれ以外の論理ゲートが使われることもある。
より詳細には、部分401が、PGT値のビット値であるP、Pn+1、G、Gn+1、T、及びTn+1と被乗数Yとを受信して、P、Pn+1、G、Gn+1、Tに基づいて、論理表現Shiftno−carry、Shiftcarry、Zerono−carry、Zerocarry、Negationno−carry、及びNegationcarryのビット値であるS、S、Z、Z、及びNを生成することもできる。ビット値S、S、Z、Z、及びNと被乗数Y及びYn+1とに基づいて、部分401は、部分積候補値PP、PPを生成することができる。部分402は、ビット値P、Pn+1、G、Gn+1、Tを受信して、P、Pn+1、G、Gn+1、Tに基づいて、キャリー予測値eを生成することもできる。
図5は、マルチプレクサ103の一例を示す図である。マルチプレクサ103は、2つのAND論理ゲート及び1つのOR論理ゲートを含む。マルチプレクサ103は、基準ビット位置の2つの部分積候補値‘PP’、‘PP’と下位ビット位置のキャリー予測値‘en−2’とを受信し、キャリー予測値‘en−2’に基づいて、2つの部分積候補値‘PP’及び‘PP’のうち何れか1つを選択して、最終部分積‘PP’に出力することが可能である。たとえ図5の例で、マルチプレクサ103が、AND及びOR論理ゲートを含んでいるが、これは、例示であり、AND論理ゲート及び当業者に知られたそれ以外の論理ゲートも使われる。
図6は、本発明の一実施形態による多項式のための部分積発生方法を示す図である。図1及び図6を参照して、本実施形態による部分積発生方法を説明すれば、次の通りである。
まず、PGT値が生成される(601)。例えば、第1エンコーダ101が、表1及び数式1のように、乗数と関連した2つの入力に基づいて、互いに排他的な値と定義されるP値、G値、及びT値のうち何れか1つの値を生成して、PGT値として出力することが可能である。
そして、部分積候補値及びキャリー予測値が生成される(602)。例えば、第2エンコーダ102が、表2ないし表4及び数式2のように、入力のビットに対する基準ビット位置、上位ビット位置、及び下位ビット位置のPGT値に基づいて、2つのエンコーディング候補値とキャリー予測値とを生成させ、2つのエンコーディング候補値と被乗数とをそれぞれ乗算して、2つの部分積候補値を生成することが可能である。
そして、部分積候補値のうち何れか1つが選択される(603)。例えば、マルチプレクサ103が、下位ビット位置のキャリー予測値に基づいて、2つの部分積候補値のうちから何れか1つを選択することが可能である。
前述したように、開示された実施形態によれば、それぞれの部分積候補値とキャリー予測値とが基準ビット位置と隣接したPGT値にのみ依存的であり、相互独立的、並列的に求められるために、入力値のビットの長さが増加しても、キャリー伝達による遅延を減らすことができる。例えば、高速の処理のために、パイプラインステージが増加する時、分解しにくい長い処理時間を必要とするCPA(Carry Propagation Adder)に比べて、本開示の装置は、一貫性があり、小さく、論理的に分割可能な構造で構成されているので、さらに有利に作用する。さらに、提示された構造は、入力のビットの長さが大きくなっても、一定の処理時間のみを要求するので、さらに大きな乗算器に適用すれば遅延の減少効果はさらに増加する。
一方、本発明の実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして実施しうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、また、キャリアウェーブ(例えば、インターネットを介した伝送)の形態で実施するものを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータにより読み取り可能なコードとして保存されて実行可能である。そして、本発明を実施するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。
さらに、前述した実施形態は、本発明を例示的に説明するためのものであって、本発明の権利範囲が、特定の実施形態に限定されるものではない。
本発明は、多項式演算のための部分積発生装置及び方法関連の技術分野に適用可能である。
100 部分積発生装置
101 第1エンコーダ
102 第2エンコーダ
103 マルチプレクサ
301 エンコーディング候補値生成部
302 キャリー予測値生成部
303 部分積候補値生成部
401 部分積候補値を生成させる部分
402 キャリー予測値を生成させる部分

Claims (14)

  1. 多項式演算のための部分積発生装置であって、
    和が乗数(multiplier)となる2つの入力に基づいて、キャリーの発生に関する相互排他的な値のうち何れか1つをそれぞれ出力する複数の第1エンコーダと、
    前記複数の第1エンコーダのうち、前記入力の基準ビットの位置に設けられた第1の第1エンコーダの出力、前記入力の基準ビットに隣接する上位ビットの位置に設けられた第2の第1エンコーダの出力と、前記入力の基準ビットに隣接する下位ビットの位置に設けられた第3の第1エンコーダの出力と、被乗数(multiplicand)とに基づいて、2つの部分積(partial product)候補値を生成及び出力する第2エンコーダと、
    前記入力の基準ビットに隣接する下位ビットにおける前記キャリーの発生に基づいて、前記第2エンコーダから出力された前記部分積候補値のうち1つを選択するマルチプレクサと、
    含み、
    前記相互排他的な値は、P(Propagation)値、G(Generation)値、及びT(Termination)値を含み、
    前記P値は前記下位ビットでキャリーが発生すれば前記基準ビットでもキャリーが発生する状態を表わし、前記G値は前記基準ビットでキャリーが発生した状態を表わし、前記T値は前記下位ビットでキャリーが発生しても前記基準ビットでキャリーが発生しない状態を表わす、
    装置。
  2. 前記第2エンコーダは、前記第1の第1エンコーダの出力と前記第2の第1エンコーダの出力と前記第3の第1エンコーダの出力とに基づいて、キャリー予測値を生成及び出力する機能をさらに含む、請求項1に記載の装置。
  3. 前記複数の第1エンコーダのうち、前記入力の他の基準ビット位置に設けられた第4の第1エンコーダの出力、前記入力の他の基準ビットに隣接する上位ビット位置に設けられた第5の第1エンコーダの出力と、前記入力の他の基準ビットに隣接する下位ビットの位置に設けられた第6の第1エンコーダの出力と、前記被乗数に基づいて、さらに他の2つの部分積候補値を生成及び出力し、
    記第の第1エンコーダの出力前記第の第1エンコーダの出力前記第の第1エンコーダの出力に基づいて、キャリー予測値を生成及び出力するさらに他の第2エンコーダと、
    前記入力の他の基準ビットに隣接する下位ビットにおける前記キャリーの発生に基づいて、前記さらに他の第2エンコーダから出力された前記さらに他の2つの部分積候補値のうち1つを選択するさらに他のマルチプレクサと、
    を含む請求項に記載の装置。
  4. 前記部分積候補値は、前記キャリーが前記下位ビットで発生したときの第1部分積候補値、及び前記キャリーが前記下位ビットで発生しないときの第2部分積候補値を含む、請求項に記載の装置。
  5. 前記さらに他の二番目の第1エンコーダは、Radix−4 Boothエンコーディングアルゴリズムに基づいて、前記部分積候補値及び前記さらに他のキャリー予測値をさらに生成させる、請求項に記載の装置。
  6. 前記第2の第1エンコーダ及び前記第4の第1エンコーダのそれぞれは、前記入力の偶数ビット位置に設けられる、請求項に記載の装置。
  7. 前記入力は、一連の乗算過程で生成される先行部分積(precedence partial product)のビット値を受信する、請求項1乃至いずれか一項に記載の装置。
  8. 前記第1エンコーダのそれぞれは前記入力のビット位置に形成される、請求項1乃至いずれか一項に記載の装置。
  9. 多項式演算のための部分積発生方法であって、
    複数の第1エンコーダが、和が乗数(multiplier)となる2つの入力に基づいて、キャリーの発生に関する相互排他的な値のうち何れか1つをそれぞれ出力することと、
    第2エンコーダが、前記複数の第1エンコーダのうち、前記入力の基準ビットの位置に設けられた第1の第1エンコーダの出力と、前記入力の基準ビットに隣接する上位ビットの位置に設けられた第2の第1エンコーダの出力と、前記入力の基準ビットに隣接する下位ビットの位置に設けられた第3の第1エンコーダの出力と、被乗数(multiplicand)とに基づいて、2つの部分積(partial product)候補値を生成及び出力することと、
    マルチプレクサが、前記入力の基準ビットに隣接する下位ビットにおける前記キャリーの発生に基づいて、前記第2エンコーダから出力された前記部分積候補値のうち1つを選択することと、
    を含み、
    前記相互排他的な値は、P(Propagation)値、G(Generation)値、及びT(Termination)値を含み、
    前記P値は前記下位ビットでキャリーが発生すれば前記基準ビットでもキャリーが発生する状態を表わし、前記G値は前記基準ビットでキャリーが発生した状態を表わし、前記T値は前記下位ビットでキャリーが発生しても前記基準ビットでキャリーが発生しない状態を表わす、
    方法。
  10. 前記第2エンコーダが、前記第1の第1エンコーダの出力と前記第2の第1エンコーダの出力と前記第3の第1エンコーダの出力とに基づいて、キャリー予測値を生成及び出力することをさらに含む、請求項9に記載の方法。
  11. さらに他の第2エンコーダが、
    前記複数の第1エンコーダのうち、前記入力の他の基準ビット位置に設けられた第4の第1エンコーダの出力と、前記入力の他の基準ビットに隣接する上位ビット位置に設けられた第5の第1エンコーダの出力と、前記入力の他の基準ビットに隣接する下位ビットの位置に設けられた第6の第1エンコーダの出力と、前記被乗数とに基づいて、さらに他の2つの部分積候補値を生成及び出力し、
    前記第4の第1エンコーダの出力と前記第5の第1エンコーダの出力と前記第6の第1エンコーダの出力に基づいて、キャリー予測値を生成及び出力することと、
    さらに他のマルチプレクサが、前記入力の他の基準ビットに隣接する下位ビットにおける前記キャリーの発生に基づいて、前記さらに他の第2エンコーダから出力された前記さらに他の2つの部分積候補値のうち1つを選択することと、
    を含む請求項9に記載の方法。
  12. 前記部分積候補値は、前記キャリーが前記下位ビットで発生したときの第1部分積候補値、及び前記キャリーが前記下位ビットで発生しないときの第2部分積候補値を含む、請求項に記載の方法。
  13. 前記入力は、一連の乗算過程で生成される先行部分積のビット値を含む、請求項乃至12いずれか一項に記載の方法。
  14. コンピュータにより実行されたとき、前記コンピュータに請求項乃至13いずれか一項に記載の方法を実行させるコンピュータプログラム。
JP2013039962A 2012-02-29 2013-02-28 多項式演算のための部分積発生装置及び方法 Active JP6309196B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120021304A KR101861550B1 (ko) 2012-02-29 2012-02-29 다항식 연산을 위한 부분적 발생 장치 및 방법
KR10-2012-0021304 2012-02-29

Publications (2)

Publication Number Publication Date
JP2013182619A JP2013182619A (ja) 2013-09-12
JP6309196B2 true JP6309196B2 (ja) 2018-04-11

Family

ID=47757428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013039962A Active JP6309196B2 (ja) 2012-02-29 2013-02-28 多項式演算のための部分積発生装置及び方法

Country Status (5)

Country Link
US (1) US9354843B2 (ja)
EP (1) EP2634689B1 (ja)
JP (1) JP6309196B2 (ja)
KR (1) KR101861550B1 (ja)
CN (1) CN103294445B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160079051A (ko) * 2013-12-27 2016-07-05 인텔 코포레이션 이중 전압 비대칭 메모리 셀
KR102594656B1 (ko) * 2016-11-25 2023-10-26 삼성전자주식회사 보안 프로세서, 이를 포함하는 어플리케이션 프로세서 및 보안 프로세서의 동작 방법
US11159153B2 (en) 2018-03-29 2021-10-26 Nvidia Corp. Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O
US10599606B2 (en) 2018-03-29 2020-03-24 Nvidia Corp. 424 encoding schemes to reduce coupling and power noise on PAM-4 data buses
US11966348B2 (en) 2019-01-28 2024-04-23 Nvidia Corp. Reducing coupling and power noise on PAM-4 I/O interface
US10657094B2 (en) 2018-03-29 2020-05-19 Nvidia Corp. Relaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
US10466968B1 (en) * 2018-07-12 2019-11-05 Nvidia Corp. Radix-4 multiplier partial product generation with improved area and power
US10623200B2 (en) 2018-07-20 2020-04-14 Nvidia Corp. Bus-invert coding with restricted hamming distance for multi-byte interfaces

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150322A (en) * 1990-06-05 1992-09-22 Vlsi Technology, Inc. Mixed-radix serial/parallel multipliers
US5245564A (en) 1991-05-10 1993-09-14 Weitek Corporation Apparatus for multiplying operands
US5446651A (en) * 1993-11-30 1995-08-29 Texas Instruments Incorporated Split multiply operation
US5944776A (en) 1996-09-27 1999-08-31 Sun Microsystems, Inc. Fast carry-sum form booth encoder
KR100290906B1 (ko) * 1998-03-10 2001-07-12 김영환 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법
US6421699B1 (en) * 1999-03-19 2002-07-16 International Business Machines Corporation Method and system for a speedup of a bit multiplier
US6285300B1 (en) 2000-02-09 2001-09-04 Hewlett Packard Company Apparatus and method for reducing power and noise through reduced switching recording in logic devices
JP2002108606A (ja) * 2000-09-26 2002-04-12 Toshiba Corp スティッキービット生成回路及び乗算器
US6978426B2 (en) * 2002-04-10 2005-12-20 Broadcom Corporation Low-error fixed-width modified booth multiplier
US7069290B2 (en) 2002-05-06 2006-06-27 Lucent Technologies Inc. Power efficient booth recoded multiplier and method of multiplication
KR20050081407A (ko) * 2004-02-13 2005-08-19 삼성전자주식회사 부스 알고리즘을 이용한 곱셈기의 인코더
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
US7840629B2 (en) 2006-02-28 2010-11-23 Sony Computer Entertainment Inc. Methods and apparatus for providing a booth multiplier
JP4519807B2 (ja) * 2006-06-05 2010-08-04 ルネサスエレクトロニクス株式会社 乗算器及びフィルタ処理装置
US7797365B2 (en) 2006-06-27 2010-09-14 International Business Machines Corporation Design structure for a booth decoder
US8078662B2 (en) 2006-09-29 2011-12-13 Intel Corporation Multiplier product generation based on encoded data from addressable location
KR100935858B1 (ko) * 2007-12-05 2010-01-07 한국전자통신연구원 재구성 가능한 산술연산기 및 이를 구비한 고효율 프로세서
KR100953342B1 (ko) 2007-12-27 2010-04-20 주식회사 동부하이텍 곱셈기의 인코더

Also Published As

Publication number Publication date
CN103294445A (zh) 2013-09-11
KR101861550B1 (ko) 2018-05-29
CN103294445B (zh) 2018-01-30
JP2013182619A (ja) 2013-09-12
EP2634689A1 (en) 2013-09-04
KR20130099640A (ko) 2013-09-06
EP2634689B1 (en) 2015-04-08
US9354843B2 (en) 2016-05-31
US20130226982A1 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
JP6309196B2 (ja) 多項式演算のための部分積発生装置及び方法
US8965945B2 (en) Apparatus and method for performing floating point addition
JP2002108606A (ja) スティッキービット生成回路及び乗算器
JP5086466B2 (ja) 予め飽和させる固定小数点乗算器
JP2007156748A (ja) 演算処理装置,情報処理装置,及び演算処理方法
US20140358979A1 (en) GENERATING A FAST 3x MULTIPLAND TERM FOR RADIX-8 BOOTH MULTIPLICATION
CN111936965A (zh) 随机舍入逻辑
US10140090B2 (en) Computing and summing up multiple products in a single multiplier
Takagi et al. A hardware algorithm for integer division
JP4273071B2 (ja) 除算・開平演算器
JP2010079840A (ja) デジタル演算回路
Efstathiou et al. Handling zero in diminished-one modulo 2 n+ 1 adders
US9933999B2 (en) Apparatus, method and program for calculating the result of a repeating iterative sum
Araujo et al. A new floating-point adder FPGA-based implementation using RN-coding of numbers
Tenca et al. Carry-save representation is shift-unsafe: The problem and its solution
JPH0553765A (ja) 先行1検出回路および浮動小数点加減算装置
JP6302682B2 (ja) 複数データ形式を支援する加算器、及びその加算器を利用した複数データ形式の加減演算支援方法
US11922130B2 (en) Optimization of arithmetic expressions
Abraham et al. An ASIC design of an optimized multiplication using twin precision
Yeung et al. A monte-carlo floating-point unit for self-validating arithmetic
JP7183079B2 (ja) 半導体装置
Hiasat An arithmetic scaler circuit design for the expanded four-moduli set {2k− 1, 2k+ 1, 22k+ 1, 22k}
Dormiani et al. A design of online scheme for evaluation of multinomials
KR950015180B1 (ko) 고속연산형 가산기
Mohan et al. Modulo Addition and Subtraction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180314

R150 Certificate of patent or registration of utility model

Ref document number: 6309196

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250