JP3667635B2 - 演算装置 - Google Patents

演算装置 Download PDF

Info

Publication number
JP3667635B2
JP3667635B2 JP2000528924A JP2000528924A JP3667635B2 JP 3667635 B2 JP3667635 B2 JP 3667635B2 JP 2000528924 A JP2000528924 A JP 2000528924A JP 2000528924 A JP2000528924 A JP 2000528924A JP 3667635 B2 JP3667635 B2 JP 3667635B2
Authority
JP
Japan
Prior art keywords
data
output
adder
partial
outputs
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
Application number
JP2000528924A
Other languages
English (en)
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Application granted granted Critical
Publication of JP3667635B2 publication Critical patent/JP3667635B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying 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
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • 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)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【0001】
[技術分野]
本発明は、信号処理で多用される乗算、積和演算を高速に実行する演算装置及び演算方法に関する。
【0002】
[背景技術]
従来、マルチメディア・データ処理は、マイクロプロセサと専用LSIとで処理を行なっていた。しかし、近年のマイクロプロセサの飛躍的な性能向上により、一部のマルチメディア・データ処理をマイクロプロセサで実行できるようになった。この性能向上の一つの要因として、レジスタ分割演算の利用がある。また、画像処理、音声処理等では、配列データを入力として、1つの累積データを求める演算が多用されている。
【0003】
図12に従来のレジスタ分割積和演算を実行する演算装置の構成図を示す。
【0004】
同図において、105は32ビットの累積データZUを上位32ビットに保持し、32ビットの累積データZLを下位32ビットに保持するレジスタである。101は32ビットの入力データXの上位16ビット(以下XU)と32ビットの入力データYの上位16ビット(以下YU)を入力として乗算を実行し、32ビットの乗算結果を出力する乗算器である。102は入力データXの下位16ビット(以下XL)と入力データYの下位16ビット(以下YL)を入力として乗算を実行し、32ビットの乗算結果を出力する乗算器である。103は乗算器101の出力データとレジスタ105の上位32ビットに保持されたデータZUを加算し、32ビットの加算結果を出力する加算器である。104は乗算器102の出力データとレジスタ105の下位32ビットに保持されたデータZLを加算し、32ビットの加算結果を出力する加算器である。加算器103の出力データはレジスタ105の上位32ビットに保持され、加算器104の出力データはレジスタ105の下位32ビットに保持される。
【0005】
以上のように構成された演算装置において、乗算器101は乗算XU・YUを実行し、加算器103は乗算器101の乗算結果とレジスタ105の上位32ビットに保持されたZUを加算し、レジスタ105は加算器103の出力である積和演算XU・YU+ZUの結果を上位32ビットに保持する。
【0006】
同様に、乗算器102は乗算XL・YLを実行し、加算器104は乗算器102の乗算結果とレジスタ105の下位32ビットに保持されたZLを加算し、レジスタ105は加算器104の出力である積和演算XL・YL+ZLの結果を下位32ビットに保持する。
【0007】
図13で示す配列データを、iをi回目のデータ入力として、iを0からN-1に変化させながら演算装置の入力X及びYに与え、積和演算をN回実行した場合、レジスタ105の上位32ビットには(x0・y0+x2・y2+…+x2n-2・y2n-2)の演算結果が保持され、レジスタ105の下位32ビットには(x1・y1+x3・y3+…+x2n-1・y2n-1)の演算結果が保持される。
【0008】
−解決課題−
しかしながら、上記の従来の演算装置では、(x0・y0+x1・y1+x2・y2+…+x2n-2・y2n-2+x2n-1・y2n-1)を求める場合、積和演算をN回実行した後、レジスタ105の上位32ビットに格納された(x0・y0+x2・y2+…+x2n-2・y2n-2)の演算結果とレジスタ105の下位32ビットに格納された(x1・y1+x3・y3+…+x2n-1・y2n-1)の演算結果を加算しなければならなかった。
【0009】
この加算においては、レジスタ105に保持されたデータの上位32ビットだけを他のレジスタへ転送し、レジスタ105に保持されたデータの下位ビットだけを他(又は同)レジスタへ転送し、転送されたそれぞれのデータを加算する処理が必要であった。
【0010】
以上のように、従来の演算装置では、複数の分割された入力データから1つの累積演算結果を求める場合、積和演算の他に、データ転送、データ加算が必要であり、処理サイクルが大きくなるという問題があった。
【0011】
本発明は、複数の分割された入力データから1つの累積演算結果を得る場合でも、データ転送、データ加算を必要としない演算装置を提供することを目的とする。
【0012】
[発明の開示]
上記課題を解決するために、請求項1発明の演算装置は、それぞれが独立したMビットの部分データがn個含まれるn×Mビットのデータである、データXとデータYとを入力とする演算装置であって、前記データXのn個の部分データにそれぞれ対応し、前記対応する部分データと、これと同じ位取りを有する前記データYの部分データとの乗算を行 い、その結果を出力する第1から第nの乗算器と、前記第1から第nの乗算器にそれぞれ対応し、対応する乗算器の出力を各々シフトすることが可能な第1から第nのシフタと、前記第1から第nのシフタの出力を加算して出力する加算器とを備え、前記第1から第nのシフタは、それぞれ、対応する乗算器の出力に対して、前記第1から第nのシフタの出力が互いに重複しない位取りになるようにシフトを行うことと、シフトを行わないこととのうちの一方を、行われるべき演算の種類に応じて選択するものである
【0013】
上記構成により、ステップ数を削減した積和演算を実行することが可能となる。また、シフタの制御を切り替えることにより、複数の乗算を並列に実行することも可能となる。
【0014】
求項2の発明は、それぞれが独立したMビットの部分データがn個含まれるn×Mビットのデータである、データXとデータYとを入力とする演算装置であって、レジスタと、前記データXのn個の部分データにそれぞれ対応し、前記対応する部分データと、これと同じ位取りを有する前記データYの部分データとの乗算を行い、その結果を出力する第1から第nの乗算器と、前記第1から第nの乗算器の出力と前記レジスタの出力を加算して、得られた結果を出力する加算器とを備え、前記レジスタは、前記加算器の出力を保持して、演算結果として出力するものであり、前記加算器は、前記加算及びその結果の出力を複数回繰り返して行うものである
【0015】
上記構成により、多入力加算器は入力数が増えても回路規模の増加を比較的抑えることが可能なので、積和演算を回路規模の増大を抑えて実現することが可能となる。
【0016】
求項3の発明は、それぞれが独立したMビットの部分データがn個含まれるn×Mビットのデータである、データXとデータYとを入力とする演算装置であって、レジスタと、前記データXのn個の部分データにそれぞれ対応し、前記対応する部分データと、これと同じ位取りを有する前記データYの部分データとの乗算を行い、その結果を出力する第1から第nの乗算器と、前記第1から第nの乗算器にそれぞれ対応し、対応する乗算器の出力を各々シフトすることが可能な第1から第nのシフタと、前記第1から第nのシフタの出力と前記レジスタの出力を加算して、得られた結果を出力する加算器とを備え、前記レジスタは、前記加算器の出力を保持して、演算結果として出力するものであり、前記加算器は、前記加算及びその結果の出力を複数回繰り返して行うものであり、前記第1から第nのシフタは、それぞれ、対応する乗算器の出力に対して、前記第1から第nのシフタの出力が互いに重複しない位取りになるようにシフトを行うことと、シフトを行わないこととのうちの一方を、行われるべき演算の種類に応じて選択するものである
【0017】
上記構成により、ステップ数を削減した累積積和演算を実行することが可能となる。また、シフタの制御を切り替えることにより、複数の累積積和演算を並列に実行することが可能となる。
【0018】
求項4の発明は、2Mビットのデータである、データXとデータYとを入力とする演算装置であって記データXの上位Mビットを入力としデコードを行う第1のデコーダと、前記データXの下位Mビットを入力としデコードを行う第2のデコーダと、前記データYの上位Mビットと下位Mビットとのうちの一方を選択する第1及び第2のセレクタと、前記第1のデコーダの出力データ前記第1のセレクタの出力データとの間の部分積を生成する第1の部分積生成器と、前記第2のデコーダの出力データ前記第2のセレクタの出力データとの間の部分積を生成する第2の部分積生成器と、前記第1の部分積生成器により生成された部分積を加算する第1の全加算器と、前記第2の部分積生成器により生成された部分積を加算する第2の全加算器と、前記第1及び第2の全加算器の出力データを入力としてデータ拡張及びデータシフトを実行することが可能なデータ拡張シフト器と、第3のセレクタと、第4のセレクタと、前記データ拡張シフト器の出力データ、並びに 前記第3及び第4のセレクタの出力データを入力として全加算を行い、中間データとして得られたキャリーと和とを出力する第3の全加算器と、前記キャリーを保持する第1のレジスタと、前記和を保持する第2のレジスタと、前記第1のレジスタに保持されたデータと前記第2のレジスタに保持されたデータとを入力として桁上げ伝搬加算を行い、得られた結果を出力する桁上げ伝搬加算器と、前記桁上げ伝搬加算器の出力を保持して、演算結果として出力する第3のレジスタとを備え、前記第3のセレクタは、前記第3のレジスタに保持されたデータとゼロデータとのうちの一方を選択的に出力するものであり、前記第4のセレクタは、前記桁上げ伝搬加算器の出力データとゼロデータとのうちの一方を選択的に出力するものであり、前記データ拡張シフト器は、前記第1及び第2の全加算器の出力に対して、前記第1の全加算器の出力と前記第2の全加算器の出力とが互いに重複しない位取りになるようにシフトを行うことと、シフトを行わないこととのうちの一方を、行われるべき演算の種類に応じて選択するものである
【0019】
上記構成により、ステップ数の少ない累積積和演算を回路規模を削減して行うことが可能となる。また、シフタの制御を切り替えることにより、複数の累積積和演算を並列に演算したり、乗算器の入力ビット数以上のビット数を有する被乗算の乗算を回路規模を削減して行うことが可能となる。
【0020】
[発明を実施するための最良の形態]
以下、本発明の実施の形態について、図を用いて説明する。
【0021】
図1は本発明の一実施の形態に係る演算装置の概略構成を示したものである。図1において、XとYはそれぞれが独立した16ビットのデータ2個から成る32ビットの入力データ、Zは64ビットの累積データである。SとCは演算におけるビット毎の和とキャリーの各々を集めた64ビットの中間データである。中間データをS,Cを用いるのは、加算を繰り返し行う場合に、毎回全ビットの和を求めるより、各ビット単位の和とキャリーを求めて最後に全ビットの加算結果を求めた方が加算効率が良いからである。511、512はブースのデコーダであり、それぞれXU、XLをデコードし、その結果を出力する。521、522は、YU又はYLを選択し出力するセレクタである。531は、第1のデコーダ511の出力データと第1のセレクタ521で選択されたデータを入力として、乗算における部分積を生成し、その部分積を出力する部分積生成器である。532は、第2のデコーダ512の出力データと第2のセレクタ522で選択されたデータを入力として、乗算における部分積を生成し、その部分積を出力する部分積生成器である。541、542は、それぞれ第1、第2の部分積生成器531、532で生成された部分積を全加算し、その結果を出力する全加算器である。55は、第1、第2の全加算器541、542の出力データを入力として、データ拡張及びデータシフトを実行し、その結果を出力するデータ拡張シフト器である。また、523は、″0″と第3のレジスタ59に保持されたデータZとを選択し出力する第3のセレクタであり、524は、″0″と桁上げ伝搬加算器58の出力S+Cを選択し出力する第4のセレクタである。56は、データ拡張シフト器55で拡張及びシフトされたデータと第3、第4のセレクタ523、524で選択されたデータを入力として全加算を実行し、64ビット中間データCとSを出力する全加算器である。571、572は、第3の全加算器56の出力であるデータCとデータSを保持するレジスタである。58は、第1、第2のレジスタ571、572に保持されたデータCとデータSを入力として、桁上げ伝搬加算を実行し、その結果S+Cを出力する桁上げ伝搬加算器である。59は、桁上げ伝搬加算器58の出力を保持するレジスタである。
【0022】
図2にデータ拡張シフト器55の詳細な構成を示す。同図において、61はデータ拡張器611〜614で構成され、入力データについて符号拡張又はゼロ拡張を実行し、その結果を出力するデータ拡張部である。62は、データシフタ621〜624で構成され、データ拡張部の出力データを入力として、データシフトを実行し、その結果を出力するデータシフト部である。同図において、SFT1.O〜SFT4.Oは、それぞれデータシフタ621〜624の出力データである。
【0023】
次に、図3に第3の全加算器56の詳細な構成を示す。同図において、72は、データシフタ621〜624の出力データSFT1.O〜SFT4.Oの下位32ビットと第3のセレクタ523の出力データSEL1.Oの下位32ビットと第4のセレクタ524の出力データSEL2.Oの下位32ビットを入力として、全加算を実行する全加算器である。73は、第4の全加算器72の桁溢れ信号又は″0″を選択し、その結果を出力するセレクタである。第5のセレクタ73は、制御信号CTRL50が″H″の時に第4の全加算器72の桁溢れ信号を選択し、″L″の時に″0″を選択し、第5の全加算器71へ出力する。71は、データシフタ621〜624の出力データSFT1.O〜SFT4.Oの上位32ビットと第3のセレクタ523の出力データSEL1.Oの上位32ビットと第4のセレクタ524の出力データSEL2.Oの上位32ビット及び第5のセレクタ73の出力データを入力として、全加算を実行する全加算器である。図3において、CUとSUは第5の全加算器71の出力データであり、CLとSLは第4の全加算器72の出力データである。
【0024】
次に、図4に桁上げ伝搬加算器58の詳細な構成を示す。同図において、82は、第1、第2のレジスタ571、572の下位32ビットに保持されたCLとSLを入力として桁上げ伝搬加算し、その結果出力する桁上げ伝搬加算器である。83は、桁上げ伝搬加算器82の桁溢れ信号又は″0″を選択し、その結果を出力するセレクタである。第6のセレクタ83は、制御信号CTRL50が″H″の時に桁上げ伝搬加算器82の桁溢れ信号を選択し、″L″の時に″0″を選択し、桁上げ伝搬加算器81へ出力する。81は、第1、第2のレジスタ571、572の上位32ビットに保持されたCUとSUと第6のセレクタ83の出力データを入力として桁上げ伝搬加算し、その結果を出力する桁上げ伝搬加算器である。
【0025】
以上のように構成された演算装置において、以下その動作について説明する。
【0026】
(1)2つに分割された入力データから1つの独立した累積データを得る演算について、以下その動作について説明する。以下、図13に示した配列データを入力として(x0・y0+x1・y1+x2・y2+…+x2n-2・y2n-2+x2n-1・y2n-1)を求める演算について説明する。ここで説明の便宜上、演算は符号付き積和演算とする。この時、制御信号CTRL50は″H″として演算を実行する。
【0027】
図1において、1サイクル目、第1のセレクタ521はYUを選択し、第2のセレクタ522はYLを選択するので、第1の部分積生成器531は乗算XU・YUを求めるための部分積を生成し、第2の部分積生成器532は乗算XL・YLを求めるための部分積を生成する。第1の全加算器541は、第1の部分積生成器531で生成された部分積を全加算し、乗算XU・YUにおける2つの32ビット中間データを出力する。同様に第2の全加算器542は、乗算XL・YLにおける2つの32ビット中間データを出力する。
【0028】
第1の全加算器541で出力された2つの32ビット中間データは、データ拡張シフト器55のデータ拡張器611、612へ入力され、64ビットへ符号拡張される。データ拡張器611、612で符号拡張されたデータは、データシフタ621、622へ入力される。データシフタ621、622はデータシフトを行なわず、乗算XU・YUにおける2つの64ビット中間データを出力する。
【0029】
同様に、第2の全加算器542で出力された2つの32ビット中間データは、データ拡張シフト器55のデータ拡張器613、614へ入力され、64ビットへ符号拡張される。データ拡張器613、614で符号拡張されたデータは、データシフタ623、624へ入力される。データシフタ623、624はデータシフトを行なわず、演算XL・YLにおける64ビット中間データを出力する。
【0030】
第4のセレクタ524は″0″を選択し、第3のセレクタ523は第3のレジスタ59に保持された64ビットデータZを選択し、第3の全加算器56へ出力する。
【0031】
第3の全加算器56は、データ拡張シフト器の出力SFT1.O〜SFT4.Oと第3、第4のセレクタ523、524の出力SEL1.O、SEL2.Oを入力として、全加算を実行する。この時、制御信号CTRL50は″H″なので、第4の全加算器72の桁溢れ信号が第5の全加算器71へ入力され、64ビット全加算において、31ビット目から32ビット目へ桁溢れが伝搬する。
【0032】
したがって、第3の全加算器56は図5に示すように、積和演算(XU・YU+XL・YL+Z)における2つの64ビット中間データCとSを出力する。
【0033】
64ビット中間データCとSは、第1、第2のレジスタ571、572にそれぞれ格納される。
【0034】
2サイクル目、桁上げ伝搬加算器58は、第1、第2のレジスタ571、572に保持された2つの64ビット中間データCとSとを入力として、桁上げ伝搬加算を実行する。この時、制御信号CTRL50は″H″なので、桁上げ伝搬加算器82の桁溢れ信号が桁上げ伝搬加算器81へ入力され、64ビット桁上げ伝搬加算において、31ビット目から32ビット目へ桁溢れ信号が伝搬する。
【0035】
したがって、桁上げ伝搬加算器58は図5に示すように、積和演算(XU・YU+XL・YL+Z)の結果を出力する。第3のレジスタ59は、桁上げ伝搬加算器58で出力されたデータを保持する。
【0036】
以上のように、演算装置は、16ビットデータ2個から成る32ビットデータXとYを入力として積和演算を実行し、図6に示すように2サイクルで1つの64ビット累積データを求めることができる。
【0037】
したがって、演算装置は、図13に示した配列データを入力として積和演算をN回実行しただけで、(x0・y0+x1・y1+x2・y2+…+x2n-2・y2n-2+x2n-1・y2n-1)を求めることができ、従来の演算装置で必要であった、データ転送、データ加算を必要としない。
【0038】
(2)2つに分割された入力データから、2つの独立した累積データを得る演算について、以下その動作について説明する。以下、16ビットデータ2個から成る32ビットデータXとYを入力として演算を実行し、図8に示すように2サイクルで、2つの32ビットの累積データを求める場合を示す。ここで説明の便宜上、演算は符号付きデュアル積和演算とする。この時、制御信号CTRL50は″L″として演算を実行する。
【0039】
図1において、1サイクル目、第1のセレクタ521はYUを選択し、第2のセレクタ522はYLを選択するので、第1の部分積生成器531は乗算XU・YUを求めるための部分積を生成し、第2の部分積生成器532は乗算XL・YLを求めるための部分積を生成する。第1の全加算器541は、第1の部分積生成器531で生成された部分積を全加算し、乗算XU・YUにおける2つの32ビット中間データを出力する。同様に第2の全加算器542は、乗算XL・YLにおける2つの32ビット中間データを出力する。
【0040】
第1の全加算器541で出力された2つの32ビット中間データは、データ拡張シフト器55のデータ拡張器611、612へ入力され、64ビットへゼロ拡張される。データ拡張器611、612でゼロ拡張されたデータは、データシフタ621、622へ入力される。データシフタ621、622は32ビット左シフトを実行し、演算(XU・YU)<<32における2つの64ビット中間データを出力する。
【0041】
同様に、第2の全加算器542で出力された2つの32ビット中間データは、データ拡張シフト器55のデータ拡張器613、614へ入力され、64ビットへゼロ拡張される。データ拡張器613、614でゼロ拡張されたデータは、データシフタ623、624へ入力される。データシフタ623、624はデータシフトを行なわず、演算XL・YLにおける2つの64ビット中間データを出力する。
【0042】
第4のセレクタ524は″0″を選択し、第3のセレクタ523は第3のレジスタ59に保持された64ビットデータZを選択し、第3の全加算器56へ出力する。
【0043】
第3の全加算器56は、データ拡張シフト器55の出力SFT1.O〜SFT4.Oと第3、第4のセレクタ523、524の出力SEL1.O、SEL2.Oとを入力として、全加算を実行する。この時、制御信号CTRL50は″L″なので、″0″が第5の全加算器71へ入力され、64ビット全加算において、31ビット目から32ビット目へ桁溢れが伝搬しない。
【0044】
したがって、第3の全加算器56は図7に示すように、上位32ビットが演算XU・YU+ZU、下位32ビットが演算XL・YL+ZLを表す中間データCとSを出力する。64ビットの中間データCとSは、第1、第2のレジスタ571、572にそれぞれ格納される。
【0045】
2サイクル目、桁上げ伝搬加算器58は、第1、第2のレジスタ571、572に保持された2つの64ビットの中間データCとSとを入力として、桁上げ伝搬加算を実行する。この時、制御信号CTRL50は″L″なので、″0″が桁上げ伝搬加算器81へ入力され、64ビット桁上げ伝搬加算において、31ビット目から32ビット目へ桁溢れ信号が伝搬しない。
【0046】
したがって、桁上げ伝搬加算器58は図7に示すように、上位32ビットを演算XU・YU+ZUの結果、下位32ビットを演算XL・YL+ZLの結果として出力する。第3のレジスタ59は、桁上げ伝搬加算器58で出力されたデータを保持する。
【0047】
以上のように、演算装置は、16ビットデータ2個から成る32ビットデータXとYを入力として演算を実行し、図8に示すように2サイクルで、2つの32ビットの累積データを求めることができる。
【0048】
(3)入力データが分割されていない場合の演算について、以下その動作について説明する。以下、32ビットデータXとYを入力として乗算を実行し、64ビットの乗算結果を求める場合を示す。ここで説明の便宜上、演算は符号付乗算演算とする。この時、制御信号CTRL50は″H″として演算を実行する。
【0049】
図1において、1サイクル目、第1のセレクタ521はYUを選択し、第2のセレクタ522はYLを選択するので、第1の部分積生成器531は乗算XU・YUを求めるための部分積を生成し、第2の部分積生成器532は乗算XL・YLを求めるための部分積を生成する。第1の全加算器541は、第1の部分積生成器531で生成された部分積を全加算し、乗算XU・YUにおける2つの32ビット中間データを出力する。同様に第2の全加算器542は、乗算XL・YLにおける2つの32ビット中間データを出力する。
【0050】
第1の全加算器541で出力された2つの32ビット中間データは、データ拡張シフト器55のデータ拡張器611、612へ入力され、64ビットへ符号拡張される。データ拡張器611、612で符号拡張されたデータは、データシフタ621、622へ入力される。データシフタ621、622は32ビット算術左シフトを実行し、乗算(XU・YU)<<32における2つの64ビット中間データを出力する。
【0051】
同様に、第2の全加算器542で出力された2つの32ビット中間データは、データ拡張シフト器55のデータ拡張器613、614へ入力され、64ビットへ符号拡張される。データ拡張器613、614で符号拡張されたデータは、データシフタ623、624へ入力される。データシフタ623、624はデータシフトを行なわず、演算XL・YLにおける2つの64ビット中間データを出力する。
【0052】
また、第3、第4のセレクタ523、524は″0″を選択し、第3の全加算器56へ出力する。
【0053】
第3の全加算器56は、データ拡張シフト器55の出力SFT1.O〜SFT4.Oと第3、第4のセレクタ523、524の出力SEL1.O、SEL2.Oを入力として、全加算を実行する。この時、制御信号CTRL50は″H″なので、第4の全加算器72の桁溢れ信号が第5の全加算器71へ入力され、64ビット全加算において、31ビット目から32ビット目へ桁溢れが伝搬する。
【0054】
したがって、第3の全加算器56は図9に示すように、積和演算(((XU・YU)<<32)+XL・YL)における2つの64ビット中間データCとSを出力する。
【0055】
64ビット中間データCとSは、第1、第2のレジスタ571、572にそれぞれ格納される。
【0056】
2サイクル目、桁上げ伝搬加算器58は、第1、第2のレジスタ571、572に格納された2つの64ビット中間データCとSとを入力として、桁上げ伝搬加算を実行する。この時、制御信号CTRL50は″H″なので、桁上げ伝搬加算器82の桁溢れ信号が桁上げ伝搬加算器81へ入力され、64ビット桁上げ伝搬加算において、31ビット目から32ビット目へ桁溢れ信号が伝搬する。
【0057】
したがって、桁上げ伝搬加算器58は図9に示すように、積和演算(((XU・YU)<<32)+XL・YL)の結果を出力する。
【0058】
また、第1のセレクタ521はYLを選択し、第2のセレクタ522はYUを選択するので、第1の部分積生成器531は乗算XU・YLを求めるための部分積を生成し、第2の部分積生成器532は乗算XL・YUを求めるための部分積を生成する。第1の全加算器541は、第1の部分積生成器531で生成された部分積を全加算し、乗算XU・YLにおける2つの32ビット中間データを出力する。同様に第2の全加算器542は、乗算XL・YUにおける2つの32ビット中間データを出力する。
【0059】
第1の全加算器541で出力された2つの32ビット中間データは、データ拡張シフト器55のデータ拡張器611、612へ入力され、64ビットへ符号拡張される。データ拡張器611、612で符号拡張されたデータは、データシフタ621、622へ入力される。データシフタ621、622は16ビット左シフトを実行し、乗算(XU・YL)<<16における2つの64ビット中間データを出力する。
【0060】
同様に、第2の全加算器542で出力された2つの32ビット中間データは、データ拡張シフト器55のデータ拡張器613、614へ入力され、64ビットへ符号拡張される。データ拡張器613、614で符号拡張されたデータは、データシフタ623、624へ入力される。データシフタ623、624は16ビット左シフトを実行し、演算(XL・YU)<<16における2つの64ビット中間データを出力する。
【0061】
第4のセレクタ524は桁上げ伝搬加算器58の出力を選択し、第3のセレクタ523は″0″を選択し、第3の全加算器56へ出力する。
【0062】
第3の全加算器56は、データ拡張シフト器の出力SFT1.O〜SFT4.Oと第3、第4のセレクタ523、524の出力SEL1.O、SEL2.Oを入力として、全加算を実行する。この時、制御信号CTRL50は″H″なので、第4の全加算器72の桁溢れ信号が第5の全加算器71へ入力され、64ビット全加算において、31ビット目から32ビット目へ桁溢れが伝搬する。
【0063】
したがって、第3の全加算器56は図9に示すように、演算(((XU・YU)<<32)+XL・YL)+(((XU・YL)<<16)+((XL・YU)<<16))における2つの64ビット中間データCとSを出力する。64ビット中間データCとSは、第1、第2のレジスタ571、572にそれぞれ格納される。
【0064】
3サイクル目、桁上げ伝搬加算器58は、第1、第2のレジスタ571、572に格納された2つの64ビット中間データCとSとを入力として、桁上げ伝搬加算を実行する。この時、制御信号CTRL50は″H″なので、桁上げ伝搬加算器82の桁溢れ信号が桁上げ伝搬加算器81へ入力され、64ビット桁上げ伝搬加算において、31ビット目から32ビット目へ桁溢れ信号が伝搬する。
【0065】
したがって、桁上げ伝搬加算器58は図9に示すように、演算(((XU・YU)<<32)+XL・YL)+(((XU・YL)<<16)+((XL・YU)<<16))つまり乗算X・Yの結果を出力する。
【0066】
以上のように、演算装置は、32ビットデータXとYを入力として乗算を実行し、図10に示すように3サイクルで64ビットの乗算結果を求めることができる。
【0067】
また、図1に示した演算器は、先に述べた演算以外に種々の演算が実行できる。
【0068】
図11にその演算と制御を示す。同図において、第1〜第4のセレクタ521〜524には選択されたデータ、シフタ621〜624にはシフト量及び方向を示している。m<<はmビット左シフト、m>>はmビット右シフトを表す。S+Cは桁上げ伝搬加算器58の出力である。
【0069】
セレクタ及びシフタは2段パイプライン演算器の1段目に属するので、2サイクル演算については、1サイクル目の制御を記載し、3サイクル演算については、1サイクル目と2サイクル目の制御を記載している。
【0070】
尚、図1において第3、第4のセレクタ523、524の出力を第3の全加算器56に入力しているが、第1、第2の全加算器541、542に入力しても同様な結果が得られる。
【0071】
尚、図1に示した演算装置は、2段のパイプライン構成になっているが、多段のパイプライン構成しても同様な結果が得られる。
【0072】
尚、本実施例では、レジスタを2つに分割したデータを入力として、演算を行なっているが、2つ以上に分割したデータを入力としても、同様な結果が得られる。
【0073】
−効果−
以上のように本発明によれば、複数の分割された入力データから1つの独立した累積データを得る演算でも、データ転送、データ加算処理を必要としないという有利な効果が得られる。また、図11に示す各種演算を実行できるという有利な効果が得られる。
【0074】
[産業上の利用可能性]
以上のように、本発明の演算装置及び演算方法は、画像処理又は音声処理等に有用であり、これらの処理を含むマルチメディア・データ処理に適している。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る演算装置の構成図である。
【図2】本発明の実施の形態に係るデータ拡張シフト器の詳細な構成図である。
【図3】本発明の実施の形態に係る第3の全加算器の詳細な構成図である。
【図4】本発明の実施の形態に係る桁上げ伝搬加算器の詳細な構成図である。
【図5】図1の演算装置による積和演算の動作説明図である。
【図6】図1の演算装置による積和演算のタイミング図である。
【図7】図1の演算装置によるデュアル積和演算の動作説明図である。
【図8】図1の演算装置によるデュアル積和演算のタイミング図である。
【図9】図1の演算装置による乗算の動作説明図である。
【図10】図1の演算装置による乗算のタイミング図である。
【図11】図1の演算装置による各種演算を示した図である。
【図12】従来のレジスタ分割演算器の構成図である。
【図13】積和演算における配列データを示した図である。

Claims (4)

  1. それぞれが独立したMビットの部分データがn個含まれるn×Mビットのデータである、データXとデータYとを入力とする演算装置であって
    前記データXのn個の部分データにそれぞれ対応し、前記対応する部分データと、これと同じ位取りを有する前記データYの部分データとの乗算を行い、その結果を出力する第1から第nの乗算器と、
    前記第1から第nの乗算器にそれぞれ対応し、対応する乗算器の出力を各々シフトすることが可能な第1から第nのシフタと、
    前記第1から第nのシフタの出力を加算して出力する加算器とを備え、
    前記第1から第nのシフタは、それぞれ、
    対応する乗算器の出力に対して、前記第1から第nのシフタの出力が互いに重複しない位取りになるようにシフトを行うことと、シフトを行わないこととのうちの一方を、行われるべき演算の種類に応じて選択するものである
    ことを特徴とする演算装置。
  2. それぞれが独立したMビットの部分データがn個含まれるn×Mビットのデータである、データXとデータYとを入力とする演算装置であって
    ジスタと、
    前記データXのn個の部分データにそれぞれ対応し、前記対応する部分データと、これと同じ位取りを有する前記データYの部分データとの乗算を行い、その結果を出力する第1から第nの乗算器と、
    前記第1から第nの乗算器の出力と前記レジスタの出力を加算して、得られた結果を出力する加算器とを備え、
    前記レジスタは、
    前記加算器の出力を保持して、演算結果として出力するものであり、
    前記加算器は、
    前記加算及びその結果の出力を複数回繰り返して行うものである
    ことを特徴とする演算装置。
  3. それぞれが独立したMビットの部分データがn個含まれるn×Mビットのデータである、データXとデータYとを入力とする演算装置であって
    ジスタと、
    前記データXのn個の部分データにそれぞれ対応し、前記対応する部分データと、これと同じ位取りを有する前記データYの部分データとの乗算を行い、その結果を出力する第1から第nの乗算器と、
    前記第1から第nの乗算器にそれぞれ対応し、対応する乗算器の出力を各々シフトすることが可能な第1から第nのシフタと、
    前記第1から第nのシフタの出力と前記レジスタの出力を加算して、得られた結果を出力する加算器とを備え、
    前記レジスタは、
    前記加算器の出力を保持して、演算結果として出力するものであり、
    前記加算器は、
    前記加算及びその結果の出力を複数回繰り返して行うものであり、
    前記第1から第nのシフタは、それぞれ、
    対応する乗算器の出力に対して、前記第1から第nのシフタの出力が互いに重複しない位取りになるようにシフトを行うことと、シフトを行わないこととのうちの一方を、行われるべき演算の種類に応じて選択するものである
    ことを特徴とする演算装置。
  4. 2Mビットのデータである、データXとデータYとを入力とする演算装置であって
    記データXの上位Mビットを入力としデコードを行う第1のデコーダと、
    前記データXの下位Mビットを入力としデコードを行う第2のデコーダと、
    前記データYの上位Mビットと下位Mビットとのうちの一方を選択する第1及び第2のセレクタと、
    前記第1のデコーダの出力データ前記第1のセレクタの出力データとの間の部分積を生成する第1の部分積生成器と、
    前記第2のデコーダの出力データ前記第2のセレクタの出力データとの間の部分積を生成する第2の部分積生成器と、
    前記第1の部分積生成器により生成された部分積を加算する第1の全加算器と、
    前記第2の部分積生成器により生成された部分積を加算する第2の全加算器と、
    前記第1及び第2の全加算器の出力データを入力としてデータ拡張及びデータシフトを実行することが可能なデータ拡張シフト器と、
    第3のセレクタと、
    第4のセレクタと、
    前記データ拡張シフト器の出力データ、並びに前記第3及び第4のセレクタの出力データを入力として全加算を行い、中間データとして得られたキャリーと和とを出力する第3の全加算器と、
    前記キャリーを保持する第1のレジスタと、
    前記和を保持する第2のレジスタと、
    前記第1のレジスタに保持されたデータと前記第2のレジスタに保持されたデータとを入力として桁上げ伝搬加算を行い、得られた結果を出力する桁上げ伝搬加算器と、
    前記桁上げ伝搬加算器の出力を保持して、演算結果として出力する第3のレジスタとを備え、
    前記第3のセレクタは、
    前記第3のレジスタに保持されたデータとゼロデータとのうちの一方を選択的に出力するものであり、
    前記第4のセレクタは、
    前記桁上げ伝搬加算器の出力データとゼロデータとのうちの一方を選択的に出力するものであり、
    前記データ拡張シフト器は、
    前記第1及び第2の全加算器の出力に対して、前記第1の全加算器の出力と前記第2の全加算器の出力とが互いに重複しない位取りになるようにシフトを行うことと、シフトを行わないこととのうちの一方を、行われるべき演算の種類に応じて選択するものである
    ことを特徴とする演算装置。
JP2000528924A 1998-01-21 1999-01-21 演算装置 Expired - Fee Related JP3667635B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP937198 1998-01-21
PCT/JP1999/000237 WO1999038088A1 (fr) 1998-01-21 1999-01-21 Procede et dispositif pour operation arithmetique

Publications (1)

Publication Number Publication Date
JP3667635B2 true JP3667635B2 (ja) 2005-07-06

Family

ID=11718622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000528924A Expired - Fee Related JP3667635B2 (ja) 1998-01-21 1999-01-21 演算装置

Country Status (6)

Country Link
US (1) US6609143B1 (ja)
EP (1) EP1049025B1 (ja)
JP (1) JP3667635B2 (ja)
CN (1) CN1109990C (ja)
DE (1) DE69941287D1 (ja)
WO (1) WO1999038088A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587582B1 (en) * 1998-12-03 2009-09-08 Sun Microsystems, Inc. Method and apparatus for parallel arithmetic operations
JP3338043B2 (ja) * 2000-11-02 2002-10-28 株式会社ソニー・コンピュータエンタテインメント 並列演算装置、エンタテインメント装置、演算処理方法、コンピュータプログラム、半導体デバイス
US7107305B2 (en) * 2001-10-05 2006-09-12 Intel Corporation Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions
CN101156130B (zh) * 2005-03-31 2010-05-19 Nxp股份有限公司 正则符号数字乘法器
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8645451B2 (en) * 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9122517B2 (en) * 2012-06-11 2015-09-01 International Business Machines Corporation Fused multiply-adder with booth-encoding
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
CN106528046B (zh) * 2016-11-02 2019-06-07 上海集成电路研发中心有限公司 长位宽时序累加乘法器
JP7129857B2 (ja) * 2018-09-07 2022-09-02 ルネサスエレクトロニクス株式会社 積和演算装置、積和演算方法、及びシステム
CN113805840B (zh) * 2021-11-18 2022-05-03 南京风兴科技有限公司 快速累加器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636155A (en) 1993-04-27 1997-06-03 Matsushita Electric Industrial Co., Ltd. Arithmetic processor and arithmetic method
JPH0744533A (ja) * 1993-07-27 1995-02-14 Kawasaki Steel Corp 演算装置
FR2718866B1 (fr) * 1994-04-19 1996-05-15 Sgs Thomson Microelectronics Dispositif de calcul arithmétique et logique et procédé de commande.
JP3579087B2 (ja) * 1994-07-08 2004-10-20 株式会社日立製作所 演算器およびマイクロプロセッサ
PL325231A1 (en) * 1995-08-31 1998-07-06 Intel Corp Apparatus for performing multiplying/adding operations of packed data
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US5751622A (en) 1995-10-10 1998-05-12 Chromatic Research, Inc. Structure and method for signed multiplication using large multiplier having two embedded signed multipliers
US5784306A (en) * 1996-06-28 1998-07-21 Cirrus Logic, Inc. Parallel multiply accumulate array circuit
JP3092534B2 (ja) * 1996-12-13 2000-09-25 日本電気株式会社 ブロックiirプロセッサ
US5941940A (en) * 1997-06-30 1999-08-24 Lucent Technologies Inc. Digital signal processor architecture optimized for performing fast Fourier Transforms
US6078939A (en) * 1997-09-30 2000-06-20 Intel Corporation Apparatus useful in floating point arithmetic
US6085213A (en) * 1997-10-23 2000-07-04 Advanced Micro Devices, Inc. Method and apparatus for simultaneously multiplying two or more independent pairs of operands and summing the products
DE69927075T2 (de) * 1998-02-04 2006-06-14 Texas Instruments Inc Rekonfigurierbarer Koprozessor mit mehreren Multiplizier-Akkumulier-Einheiten

Also Published As

Publication number Publication date
EP1049025A1 (en) 2000-11-02
EP1049025B1 (en) 2009-08-19
WO1999038088A1 (fr) 1999-07-29
US6609143B1 (en) 2003-08-19
DE69941287D1 (de) 2009-10-01
CN1288545A (zh) 2001-03-21
EP1049025A4 (en) 2005-03-30
CN1109990C (zh) 2003-05-28

Similar Documents

Publication Publication Date Title
JP3667635B2 (ja) 演算装置
JP5273866B2 (ja) 乗算器/アキュムレータ・ユニット
JP3479438B2 (ja) 乗算回路
US7774400B2 (en) Method and system for performing calculation operations and a device
JP2004501416A (ja) 結合された積和演算器を備えたデジタル信号プロセッサ
KR19980041798A (ko) 영상처리를 위한 명령을 지원하는 모듈 계산구조
JP5640081B2 (ja) 飽和を伴う整数乗算および乗算加算演算
US8234326B2 (en) Processor core and multiplier that support both vector and single value multiplication
US20020040378A1 (en) Single instruction multiple data processing
Stelling et al. Implementing multiply-accumulate operation in multiplication time
JPH0474219A (ja) 高速乗算器
JPH07121354A (ja) 倍精度・単精度・内積演算および複素乗算が可能な乗算器
US10929101B2 (en) Processor with efficient arithmetic units
US5870322A (en) Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
EP0474246A2 (en) Image signal processor
US7260711B2 (en) Single instruction multiple data processing allowing the combination of portions of two data words with a single pack instruction
JP3982965B2 (ja) 繰り返し型乗算器とアレイ型乗算器
JP2765516B2 (ja) 積和演算器
JPH01251133A (ja) 乗算回路及び方法
KR100251547B1 (ko) 디지탈신호처리기(Digital Sgnal Processor)
JP2654062B2 (ja) 情報処理装置
Li et al. A reconfigurable architecture of a high performance 32-bit MAC unit for embedded DSP
KR100246472B1 (ko) 디지탈신호처리기
JP3456450B2 (ja) 固定小数点乗算器および方法
KR19990021768A (ko) 디지탈신호처리기

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050406

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080415

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090415

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100415

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110415

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120415

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130415

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees