JP3540807B2 - 加算器,乗算器,及び集積回路 - Google Patents

加算器,乗算器,及び集積回路 Download PDF

Info

Publication number
JP3540807B2
JP3540807B2 JP2002246629A JP2002246629A JP3540807B2 JP 3540807 B2 JP3540807 B2 JP 3540807B2 JP 2002246629 A JP2002246629 A JP 2002246629A JP 2002246629 A JP2002246629 A JP 2002246629A JP 3540807 B2 JP3540807 B2 JP 3540807B2
Authority
JP
Japan
Prior art keywords
carry
adder
input
output
multiplexer
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
JP2002246629A
Other languages
English (en)
Other versions
JP2004086561A (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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2002246629A priority Critical patent/JP3540807B2/ja
Priority to US10/648,373 priority patent/US7159004B2/en
Publication of JP2004086561A publication Critical patent/JP2004086561A/ja
Application granted granted Critical
Publication of JP3540807B2 publication Critical patent/JP3540807B2/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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/507Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
    • 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/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は,加算器,乗算器,及びこれらのいずれかを用いた集積回路に関し,特に,従来のキャリセレクト方式を改良して回路量を減らし,かつ,高速化した加算器,乗算器,及びこれを用いた集積回路に関する。
【0002】
【従来の技術】
近年のDSP(Digital Signal Processing)の発達はめざましく,その中核技術として32ビット乗算器等が採用されている。その構成には全加算器をN個用いた単純な乗算器は採用されず,多くは2次ブース乗算器(Booth Multiplier)が採用される。加算器を経由するキャリ(Carry)の遅れが大きいことから,部分積(ブース積;Booth Muxes)の個数を減らして,回路量の削減や乗算速度の向上を追求するためである。部分積の寄せ集めについては,CPA(Carry Propagation Adder)を用いる方法もあるが,キャリの遅れを考慮して,ワレスツリー(Wallace Tree)を採用することが多い。
【0003】
ワレスツリーは,CSA(Carry Save Adder)のツリー構造で構成される。CSAはキャリ別加算を行うのでキャリの伝搬が起こらず,キャリの遅延も少なくて済む。しかし,寄せ集めたブース積は最終段で65ビット加算器により通常の加算が行われるので,その部分のキャリの遅れが乗算器の高速化のネックになっていた。また,64ビット乗算器においても129ビットの高速加算器が要求されるため,このことが64ビット乗算器を実現する際の障害になっていた。
【0004】
この事情は暗号の分野では特に深刻である。暗号の秘匿性を向上させるためには多ビットの加減乗除を行う必要があり,場合により剰余演算も必要である。今日では,RSA方式の暗号では1024ビットの数を,楕円曲線暗号方式では224ビットの数を扱う必要がある。暗号を生成し,若しくは復号し,更に署名やその検証を行うためには,このような多ビットの計算を高速で行わなければならない。
【0005】
加算器を高速化する方法には様々なものが知られている。なかでも,キャリルックアヘッド方式加算器(Carry Look−Ahead Adder),キャリスキップ方式加算器(Carry−Skip Adder),及び,キャリセレクト方式加算器(Carry−select Adder)がよく知られている。これらの方式は,いずれも加算器を経由するキャリの遅れが大きいことに着目し,これを高速化するアイデアを採用している。このうち「キャリセレクト方式加算器」は,従来あまり採用されていなかった。この方式では,回路量が増大してLSIのコストが高くなり,多ビットの加算器に向いていなかったからである。
【0006】
従来の4ビットのキャリセレクト方式加算器は,仮想キャリVCを入力とする4ビット加算器と,仮想キャリVCを入力とする4ビット加算器と,これら2つの4ビット加算器のそれぞれの加算値SとSとを選択する第1のマルチプレクサと,これら2つの4ビット加算器のそれぞれのキャリ出力CとCとを選択する第2のマルチプレクサとで構成される。
【0007】
2つの4ビット加算器の構成については特に制約はなく,上記キャリルックアヘッド方式加算器等を採用することができる。仮想キャリVCは‘0’,仮想キャリVCは‘1’と定めることができるが,その逆であっても良い。
【0008】
この従来のキャリセレクト方式加算器では,真のキャリ入力Cinを第1,第2のマルチプレクサの選択信号とし,真の加算値S,若しくはキャリ出力Coutを選択する。2つの4ビット加算器は,いずれも4ビット入力P及びQを共通にするので,必ず加算値S若しくはSのいずれかが真の加算値Sになり,対応するキャリ出力C若しくはCのいずれかが真のキャリ出力Coutになる。
【0009】
このような構成の従来のキャリセレクト方式加算器は,計算速度の面では大きな利点を有している。予め入力P及びQが確定していると,この加算器を継続接続した場合には,ほぼ同時に計算が終了する。このため,その後は真のキャリを選択するだけで済み,加算に要する計算時間を節約できる。即ち,キャリの伝搬を考慮しなくてもよい。
【0010】
【発明が解決しようとする課題】
しかし,従来のキャリセレクト方式加算器は,単なる4ビット加算器と比べると2倍以上の回路量を必要とした。
【0011】
従来のキャリセレクト方式加算器で使用される2つの全加算器(Full Adder)は,同一の入力値P及びQを入力し,それぞれ加算値SまたはS及びキャリCout1またはCout2を出力する。加算の際のキャリ入力は,Cin1またはCin2であって,上記キャリ出力Cout1またはCout2に対応して互いに独立したキャリの経路を作る。そして,マルチプレクサにより,上記加算値SまたはSのいずれかをキャリ選択信号Csに従って選択し,加算値Sとして出力する。このような従来のキャリセレクト方式加算器の回路は,全加算器の加算後に,上記マルチプレクサでそれらの加算値を選択するので,回路の無駄が多かった。
【0012】
そこで,本発明の第1の目的は,従来のキャリセレクト方式加算器を改良して,必要とする回路量を減らし,多ビット乗算器や暗号技術などにおける多ビットの加算に最適な回路構成を提供することにある。また,本発明の第2の目的は,従来の単純なキャリセレクト方式加算器を改良してより高速な加算器を提供することにある。
【0013】
【課題を解決するための手段】
本発明の第1の目的を達成するために,本発明では加算値の選択をそれぞれの加算器で加算した後に行うのではなく,先に選択したキャリを使って加算する方式を採用し,併せて共通する回路を削減する。
【0014】
また,本発明の第2の目的を達成するために,本発明では「適応キャリセレクト方式(Adaptive Carry Select Adder)」と呼ぶ新しい方式を採用し,多ビット値の高速加算を達成する。
【0015】
即ち,上記目的を達成するための本発明の加算器は,第1と第2の2つのデータ入力と,第1と第2の2つのキャリ入力と,キャリ選択入力とを入力とし,第1と第2の2つのデータ入力のXOR出力を生成する第1のXOR素子と,このXOR出力を選択信号として第1のキャリ入力と第1のデータ入力とのいずれかを選択する第1のマルチプレクサと,第2のキャリ入力と第2のデータ入力とのいずれかを選択する第2のマルチプレクサと,キャリ選択入力を選択信号として第1と第2の2つのキャリ入力のいずれかを選択する第3のマルチプレクサと,第3のマルチプレクサの出力とXOR出力とのXOR出力を生成する第2のXOR素子とを有する。そして,第1のマルチプレクサの出力を第1のキャリ出力とし,第2のマルチプレクサの出力を第2のキャリ出力とし,第3のマルチプレクサの出力を加算値としたことを特徴とする。
【0016】
このような構成により,従来のキャリセレクト方式加算器よりも必要とする回路量(ゲート数)が少なく,しかも演算速度が高速なキャリセレクト方式の加算器が得られる。
【0017】
また,上記目的を達成するための本発明の他の加算器は,上記構成の加算器が複数段継続接続され,前段の第1のキャリ出力を後段の第1のキャリ入力とし,前段の第2のキャリ出力を後段の第2のキャリ入力とし,複数の加算器のキャリ選択入力を全段で共通とし,初段の加算器の真のキャリ入力をキャリ選択入力とし,第1のキャリ入力を第1の仮想キャリとし,第2のキャリ入力を第2の仮想キャリとしている。そして,キャリ選択入力により最終段の加算器の第1と第2の2つのキャリ出力のいずれかを選択する第4のマルチプレクサを有し,第4のマルチプレクサの出力をキャリ出力としたことを特徴とする。
【0018】
上記構成では,初段の加算器の第3のマルチプレクサを省き,初段の加算器の第3のマルチプレクサの出力の替わりにキャリ選択入力を用いることができる。
【0019】
また,上記目的を達成するための本発明の他の加算器は,上記いずれかの構成の加算器を複数個継続接続し,前段のキャリ出力を後段のキャリ入力とする構成の加算器であって,最終段の加算器を除き,各段の加算器の処理可能なビット数は,その1つ前段の加算器の処理可能なビット数と等しいか,または大きくしたことを特徴とする。
【0020】
上記構成の加算器では,初段の加算器を除き,各段の加算器の処理可能なビット数と,その1つ前段の加算器の処理可能なビット数との差を一定にすることが望ましい。
【0021】
また,上記目的を達成するための本発明のブース乗算器は,ツリー構造で構成されるブース乗算器であって,最終段の加算器に,上記複数段の構成の加算器のうちのいずれかを用いたことを特徴とする。
【0022】
【発明の実施の形態】
以下に,本発明のいくつかの実施の形態を,図面を用いて説明する。なお,本明細書及び図面において,実質的に同一の機能構成を有する構成要素については,同一の符号を付することにより重複説明を省略する。
【0023】
図1は,本発明の第1の実施の形態によるキャリセレクト方式加算器の1ビット分の構成を示すブロック回路図である。以下,図1に示す構成単位を,RCSA(Reduced Carry Select Adder)という。
【0024】
本発明の第1の実施の形態によるキャリセレクト方式加算器(RCSA)(100)は,第1と第2の2つのデータ入力(P,Q)と,第1と第2の2つのキャリ入力(Cin1,Cin2)と,キャリ選択入力(C)とを入力とする。
【0025】
そして,第1と第2の2つのデータ入力(P,Q)のXOR出力(P@Q)を生成する第1のXOR素子(XOR)(102)と,このXOR出力(P@Q)を選択信号として第1のキャリ入力(Cin1)と第1のデータ入力(P)とのいずれかを選択する第1のマルチプレクサ(MPX)(104)と,第2のキャリ入力(Cin2)と第2のデータ入力(Q)とのいずれかを選択する第2のマルチプレクサ(MPX)(105)と,キャリ選択入力(C)を選択信号として第1と第2の2つのキャリ入力(Cin1,Cin2)のいずれかを選択する第3のマルチプレクサ(MPX)(101)と,第3のマルチプレクサ(MPX)(101)の出力(C)とXOR出力(P@Q)とのXOR出力を生成する第2のXOR素子(XOR)(103)とを有する。
【0026】
そして,第1のマルチプレクサ(MPX)(104)の出力を第1のキャリ出力(Cout1)とし,第2のマルチプレクサ(MPX)(105)の出力を第2のキャリ出力(Cout2)とし,第3のマルチプレクサ(MPX)(101)の出力を加算値(S)とする(図1)。なお,ここで記号「@」は,XOR(eXclusive OR)論理演算子である。
【0027】
図1に示す本発明の第1の実施の形態によるキャリセレクト方式加算器RCSA(100)では,先にキャリを選択し,その後,選択されたキャリを用いて加算値を計算する方式を採用する。図1に示すように,素子XOR(102)によって出力される,入力Pと入力Qとの排他論理和P@Qは,第1のマルチプレクサMPX(104)と第2のマルチプレクサMPX(105)のキャリ選択信号として機能する。他方,第3のマルチプレクサMPX(101)は,キャリ入力Cin1またはCin2のいずれかを選択し,その選択には,キャリ選択信号Cが用いられる。
【0028】
選択されたキャリCは,上記出力P@Qと共に素子XOR(103)への入力となり,当該ビットにおける加算値Sを出力する。また,第1のマルチプレクサMPX(104)は,キャリ入力Cin1または入力Qのいずれかを選択してキャリCout1として出力する。そして,第2のマルチプレクサMPX(105)は,キャリ入力Cin2または入力Qのうちのいずれかを選択してキャリCout2として出力する。
【0029】
論理記号で考察した場合,通常,加算値SとキャリCoutとの関係は,
S=P@Q@Cin ・・・ 式1
out=PQ+QCin+PCin ・・・ 式2
と表現される。しかし,Coutについては上記の式2ではなく,次式の,
out=Cin(P@Q)+P(P@Q)_ ・・・ 式3
若しくは,
out=Cin(P@Q)+Q(P@Q)_ ・・・ 式4
を使用する方がよい。但し,ここで記号「_」は否定論理である。
【0030】
その第1の理由は,式2では,3入力ANDOR論理を取る必要があり,回路が複雑化するからである。そして第2の理由は,図1のマルチプレクサMPX(104)と第2のマルチプレクサMPX(105)のキャリ選択信号として排他論理和P@Qを用いることに関連するが,キャリセレクト方式加算器では,入力PやQはキャリCinより先に定まるので,マルチプレクサで選択する方式が速度的にも回路量的にも有利だからである。
【0031】
図1の回路を実際にLSIで実現する場合には,トランスミッションゲート(Transmission Gate)を用いれば回路量が削減できることが知られている。トランスミッションゲートを用いる論理(以下,「TG論理」という。)では,見かけ上ゲート数が少なくて済む。しかし,ドライブ能力を欠くことがあるので,設計上注意が必要である。例えば,必要に応じてインバータを追加し,若しくは負論理で動作させるなどの工夫が効果的である。
【0032】
図2は,TG論理によるXOR論理回路であって,図1の素子XOR(102)で使用することができる。回路的には,2つのインバータと1つのTGから構成されるが,一方のインバータINVは,そのソース側が入力Q若しくはQ_に接続されるのが通常と異なる点である。図2で,基盤に矢印を持つトタンジスタがPチャンネルMOSであり,矢印のないものがNチャンネルMOSである。この様にTG論理を使うとゲート数を削減できるのは,トランスミッションゲートとトグルスイッチとの類似性にあると考えられる。図2の回路では,式1の前半部分,及び,式3,若しくは,式4の選択信号P@Qを計算することができる。
【0033】
図3は,TG論理によるXOR論理回路であって,図1の素子XOR(103)で使用することができる。回路的には,2つのインバータと2つのTGから構成される。キャリ選択信号P@Qにより,キャリC若しくはC_が選択されるので,結果的に式1の加算値Sを計算することができる。
【0034】
図4は,TG論理によるマルチプレクサであって,図1のマルチプレクサMPX(104),または,マルチプレクサMPX(105)で使用することができる。回路的には,キャリ選択信号P@Qによりキャリ入力Cin1若しくはキャリ入力Cin2かQかを選択することにより,式4によるキャリ出力Cout1若しくはCout2を計算することができる。入力をQではなくPとすることにより,式3へ適用することもできる。
【0035】
図5は,TG論理によるマルチプレクサであって,図1の第3のマルチプレクサMPX(101)で使用することができる。真のキャリCをキャリ選択信号として用いて,仮想キャリ入力Cin1若しくはCin2のいずれかを真のキャリCとして選択することができる。
【0036】
本発明の第1の実施の形態による図1の回路構成の加算器を,従来の回路構成の加算器と比較した場合に,単純にTG論理で構成したとするときの対照表を表1に示す。単なる加算器は20ゲートで構成できるで,TG論理の優秀性は明らかである。但し,配線容量で遅延量が大きく,ドライブ能力が欠けることがあるので設計上は注意が必要である。表1に示すように,従来の回路構成による加算器では46ゲートを要したが,本発明の第1の実施の形態による図1の回路構成による加算器では,32ゲートで済ませることができ,3割程度の回路量を削減することができた。また,従来の回路構成による4ビット加算器では190ゲートを要したが,本発明の第1の実施の形態の回路構成による4ビット加算器では,134ゲートで済ませることができ,ここでも3割程度の回路量を削減することができた。
【0037】
【表1】
Figure 0003540807
【0038】
計算速度の面では,キャリ入力からキャリ出力に至るまでにマルチプレクサ1段分の遅延しか要しないことは重要である。この事実は,後述する本発明の第2の実施の形態の基礎を与える。キャリセレクト方式加算器では,入力PやQはキャリCinより先に定まるので,マルチプレクサのキャリ選択信号P@Qは,キャリの伝搬に殆ど関与しない。TG論理によれば,わずか1段分のゲート遅延でキャリは1つの加算器を伝搬することができる。インバータを追加し,若しくは負論理で動作させたとしても,ゲート遅延2段分で十分である。
【0039】
図1の本発明の第1の実施の形態によるキャリセレクト方式加算器の1ビット分の回路から,多ビットの加算器を容易に構成することができる。図6は,本発明の第1の実施の形態によるRCSA(100)を採用した,4ビットキャリセレクト方式加算器の構成図である。この加算器(204)は,第1の実施の形態によるRCSA(201〜204)が,4ビット分継続接続されている。キャリセレクト方式加算器では真のキャリCinの値は’0’または’1’のいずれかであるので,仮想キャリを用いて加算を先に進めておき,最後に真のキャリ入力Cinで真のキャリ出力Cout,及び加算値S,S,またはSを選択する。このような構成では,加算値S,S,またはSの選択がそれらの加算後に行われるのではなく,選択されたキャリCを使う加算が行われるところが従来と異なる。これは,加算値の計算はキャリの生成と比べて遅くても良いと言う事情を利用している。
【0040】
図6において,RCSA(201),RCSA(202),RCSA(203),及びRCSA(204)は,図1の構成を持つ本発明の実施の形態による簡易キャリセレクト方式加算器であり,RCSA〜RCSA(201〜204)は,順に継続接続されている。この加算器では,仮想キャリを定めて仮のキャリ出力Cout1若しくはCout2を計算し,真のキャリ入力Cinであるキャリ選択信号Cを用いて,マルチプレクサMPX(205)において真のキャリ出力Coutを選択する。なお,初段の加算器RCSA(201)において,図1の第3のマルチプレクサMPX(101)を省略し,直接真のキャリ入力Cinを選択後のキャリCとすることができる。また,仮想キャリVCは,値’0’,仮想キャリVCは値’1’と決めておくが,その逆であってもよい。VCとVCの値を逆にしたときはマルチプレクサMPX(205)において,上記と逆の選択をすればよい。
【0041】
図7は,本発明の第1の実施の形態による4ビット加算器を採用した16ビットキャリセレクト方式加算器の一実施形態である。この加算器は図7に示すように,図6の4ビットキャリセレクト方式加算器(4RCSA)を継続接続して,16ビットキャリセレクト方式加算器を構成している。この実施形態では,継続する4RCSAは3段のみで,初段は通常の4ビット加算器(301)を使用している。この実施形態は4ビット加算器による一種の並列演算であって,初段の加算器はキャリ選択回路が不要なことから回路量を減らす工夫をしている。従って,4ビット加算器(301)の方式は特に制限されず,通常のCPAであっても,キャリルックアヘッド方式加算器,若しくは,キャリスキップ方式加算器であってもよい。
【0042】
4ビット加算器(301)において,Xbus(305)からの4ビット入力P3:0(0ビットから3ビットまでの入力を表す。以下同様。)と,Ybus(306)からの4ビット入力Q3:0とを,キャリ入力Cinを受けて加算し,加算値として4ビット出力S3:0と,キャリを出力する。この出力されたキャリは,次段の加算器4RCSA(302)のキャリ入力となる。次段の加算器4RCSA(302)は,図6のキャリセレクト方式加算器であって,Xbus(305)からの4ビット入力P7:4と,Ybus(306)からの4ビット入力Q7:4とを,キャリ入力Cを受けて加算し,加算値として4ビット出力S7:4と,キャリCを出力する。このキャリCは,3段目の加算器4RCSA(303)のキャリ入力となる。
【0043】
3段目の加算器4RCSA(303)は,図6のキャリセレクト方式加算器であって,Xbus(305)からの4ビット入力P11:8と,Ybus(306)からの4ビット入力Q11:8とを,キャリ入力Cを受けて加算し,加算値として4ビット出力S11:8と,キャリCを出力する。このキャリCは,3段目の加算器4RCSA(303)のキャリ入力となる。4段目の加算器4RCSA(304)は,図6のキャリセレクト方式加算器であって,Xbus(305)からの4ビット入力P15:12と,Ybus(306)からの4ビット入力Q15:12とを,キャリ入力Cを受けて加算し,加算値として4ビット出力S15:12と,キャリ出力Coutを出力する。
【0044】
図8は,図7に示す本発明の実施形態によるキャリセレクト方式加算器を用いた16ビット加算器の動作を説明するための,出力端子等の波形変化の形で遅延時間を表示したタイムチャートである。図8では,RD_信号によってXbusとYbusのデータが確定し,加算結果が遅延時間Tdの後,Zbus上に現れるまでの変化により,本実施形態によるキャリセレクト方式加算器の高速性が示されている。図8で加算キャリの遅延時間をTaとした場合,4ビット加算器4RCSA(301)の出力S3:0(0ビットから3ビットまでの出力を表す。以下同様。)は,遅延時間4Taで加算が終了する。また,選択キャリのマルチプレクサでの遅延時間をTsとした場合,加算器4RCSA(302)の出力S7:4は,遅延時間4Ta+Tsで加算が終了する。また,加算器4RCSA(303)の出力S11:8は,遅延時間4Ta+2Tsで加算が終了する。また,加算器4RCSA(304)の出力S15:12は,遅延時間4Ta+3Tsで加算が終了する。従って,加算結果がZbus上に現れるまでの遅延時間Tdは,最大で4Ta+3Ts程度である。なお,通常の16ビット加算器の出力の加算時間は,16Taである。
【0045】
本実施形態のポイントは,データが確定した後に,4つの加算器(301〜304)が仮想キャリによって同時に加算を始めることができる点にある。このようなことが可能になった結果,4ビット分の加算に要する時間はとられてしまうが,その後は選択キャリがマルチプレクサを通過する遅延時間Tsだけで桁数の多い加算を実行することができるという利点を享受できる。本実施形態では,キャリは加算器上ではなく,マルチプレクサ上を伝搬して行くと捉えることもできる。
【0046】
以上示したように,本発明の第1の実施の形態によれば,RCSAの簡易なキャリセレクト方式加算器によって,従来のキャリセレクト方式加算器と比べて3割程度回路量を削減することができる。計算速度の面では,キャリ入力からキャリ出力に至るのにマルチプレクサ1段分の遅延しか要しない。
【0047】
(第2の実施の形態)
本発明による第2の実施の形態は,本明細書で適応キャリセレクト方式(Adaptive Carry−select Adder)と呼ぶ新しい方式に関する。この方式は,キャリ選択信号Csを用いるマルチプレクサ(例えば,図6のMPX)の遅延時間Tsと,本実施形態によるキャリセレクト方式加算器のキャリ遅延時間Taとが,ほぼ同等である事実に基礎をおいている。これは加算器を通過するキャリ(以下,加算キャリという。)が,図1の第1のマルチプレクサMPXまたは第2のマルチプレクサMPXの1段分の遅延(Ta)を有し,キャリ選択信号Cが,図6のマルチプレクサMPXの1段分の遅延(Ts)を有し,TaとTsがほぼ同等である。このことから,多ビットの加算において,次段のキャリセレクト方式加算器のビット数を増やしても,キャリ生成の遅延時間は変わらないことを利用している。この遅延時間は変わらないが,処理できるビット数は漸次増やしていけるので,全体の加算時間は短縮することになる。
【0048】
図9は,本発明の第2の実施の形態による多ビット加算器の回路構成である。この加算器は,上述の適応キャリセレクト方式で構成したことを特徴とする。この加算器は,第1の実施の形態による加算器(A〜A)が複数段継続接続されている。前段の第1のキャリ出力を後段の第1のキャリ入力とし,前段の第2のキャリ出力を後段の第2のキャリ入力とし,複数の加算器のキャリ選択入力を全段で共通とする。そして,初段の加算器の真のキャリ入力をキャリ選択入力とし,第1のキャリ入力を第1の仮想キャリとし,第2のキャリ入力を第2の仮想キャリとし,キャリ選択入力により最終段の加算器の第1と第2の2つのキャリ出力のいずれかを選択する第4のマルチプレクサを有する。そして,第4のマルチプレクサの出力をキャリ出力としている。なお,初段の加算器の第3のマルチプレクサは省かれ,初段の加算器の第3のマルチプレクサの出力の替わりにキャリ選択入力を用いている。
【0049】
図9で,初段のMビット加算器Aは,第1の実施の形態によるRCSAである。そして,次段のMビット加算器A〜最終段のMビット加算器Aも,全て第1の実施の形態によるRCSAで構成されている。
【0050】
従って,Nビット加算器を対象とした場合,
N=ΣM (k=0,・・・,n) ・・・ 式5
が成立する。但し,最終段加算器Aのビット数Mは,必ずしも前段のビット数より大きいとは限らない。数Nが丁度良い値でなければ,通常はMは端数になるからである。
【0051】
ここで,M=Mのように構成すると,最初のマルチプレクサに加算器AとAのキャリをほぼ同時に入力することができる。これは入力側での最適化を意味する。また,最終段加算器の1つ手前の加算器An−1において,その出力側のマルチプレクサに加算器を経由したキャリとキャリセレクト信号が同時に入力することができれば,全体の加算時間(Tt)を最適化することができる。これは出力側での最適化を意味し,上記入力側での最適化と区別できる。最終段加算器Aを対象にしなかったのは,そのビット数Mが通常端数になるからである。
【0052】
上記選択キャリ,即ち,加算器An−1に至るキャリセレクト信号Cの遅れTdは,
Td=MTa+(n−2)Ts ・・・ 式6
で与えられる。他方,加算器An−1を経由した前記加算キャリの遅れが同じくTdであれば,出力側での最適化を達成することができ,
Td=Mn−1・Ta ・・・ 式7
で与えられる。なお,全体の加算時間Ttは,
Tt=Td+2Ts ・・・ 式8
である。
【0053】
第2の実施の形態において,漸次増やした加算器のビット数を等差数列で構成してみる。すると,公差をhビットとした場合,
=M+h(k−1)(k=l,・・・,n−1) ・・・ 式9
と表現することができる。
【0054】
式6及び式7より公差hを求めると,
h=Ts/Ta ・・・ 式10
となる。そして,式5及び式9よりnを求めると,
n={−(2M−3h)+√{(2M−3h)+8h(N−M−h)}}/2h ・・・ 式11
となる。
【0055】
また,全体の加算時間Ttを最小化するために初期値Mをどのように定めるのが良いかを計算すると,
=3h/2 ・・・ 式12
となり,このときキャリを選択するマルチプレクサの個数nは,
n=√{2(N−M−h)/h} ・・・ 式13
と求まる。そして,Ttの最小値(Tt)minは,式13のnを用いて,
(Tt)min=(n+3/2)h・Ta ・・・ 式14
で与えられる。
【0056】
公差hは式10で与えられるので,上記考察に基づき1に近い値であると推定できる。第1の実施の形態によるRCSAを採用した場合には,選択キャリのファンアウトが多いので,加算キャリの遅延時間Taよりも選択キャリの遅延時間Tsの方が大きくなることがある。従って,公差hは1に近く,かつ,1より大きい数になることがある。しかし,第1の実施の形態によるRCSAを採用しない場合は,加算キャリが選択キャリよりも遅いのが通常で,従ってhは通常1よりも小さくなる。
【0057】
実際の回路では必ずしも全体の加算時間Ttを最小化するように上記変数を定めることはできない。変数hは,1とか,2とか,0.5とか,整数若しくは整数分の1を採用しなければならず,また,初段の加算器Aのビット数Mも整数でなければならない。従って,上記最適化に沿った最善の設計が必要になる。
【0058】
図10,図11は,上記観点から,多ビット加算器での本実施形態による具体的構成を例示したものである。図10(a)は,64ビット加算器及び128ビット加算器について従来の構成法を例示してある。ここでは単純に4ビット加算器を継続接続し,その都度真のキャリを選択する。この方式では,選択キャリの遅延時間が単純に加算されていくので無駄が多い。
【0059】
図10(b)は,本発明の第2の実施の形態であって,初期値M=1で,公差h=1の場合である。初期値M=1であることから,初段の加算器Aは1ビット,次段の加算器Aも1ビットである。以下,公差1で加算器のビット数が増加する構成を採用する。64ビット加算器の場合(N=64),n=10.7であるので,A10は10ビット加算器で,最後の加算器A11は端数ビット,M=8になる。64ビット加算器の場合(N=128),n=15.4であるので,A15は15ビット加算器で,最後の加算器A16は端数ビット,M=7になる。Mを最初から定めることができないので,実際には式11からnを求めることはできず,およそのnの値しか知ることはできない。実際にMを定めるには,nを求めた後,式5により再計算することになる。
【0060】
図10(c)は,本発明の第2の実施の形態であって,初期値M=1で,公差h=0.5の場合である。公差h=0.5を実現するために加算器のビット数を加算器2個毎に1ビットづつ増加させている。公差が1/2の場合は,3番目の加算器Aの出力側のマルチプレクサにおいて,選択キャリよりも加算器Aの加算キャリの方が遅くなり,この事情は後段の加算器でも同様である。そこで,全体の計算時間Ttを求めるに際し,端数Mが出る場合は加算器An−1の遅延時間に基づいて計算し,その値はMn−1・Ta+2Tsである。幸いにして,キャリセレクト方式加算器においては遅延時間の累積は起こらない。即ち,一種の並列計算であるので,前段の計算で生じた遅延が後段の計算時間を積み増すことはない。
【0061】
図11(d)は,本発明の第2の実施の形態であって,初期値M=1で,公差h=2の場合である。公差h=2,即ち選択キャリの方が加算キャリよりも倍も遅いという事態は,本実施の形態の構成を採用する限り,余り起こらない。但し,キャリ選択信号Cのファンアウトが大きく,長い配線が想定されるので,全く起こらないとも言い切れない。ここでは比較のために例示した。
【0062】
図11(e)は,本発明の第2の実施の形態であって,初期値M=2で,公差h=1の場合である。上述の如く,全加算時間Ttを最小化するための初期値Mの値は式12で与えられ,公差h=1の場合M=1.5とするのが最適である。しかし,Mは整数を選ばなければならないので,初期値M=2とする設計を採用することもできる。図10(b)のM=1の場合と比べると,全加算時間Ttは殆ど同じである。図11(f)や図11(g)でも同様のことが言える。表2では,全加算時間Ttに関し,例えばh=1の場合,理論上の最適値と最善の設計の値との差は1%以下であり,この様な設計の有効性を示している。
【0063】
表2に,図10,図11で掲げた本発明の第2の実施の形態について,全加算時間Ttを計算した値を列挙した。図10(a)の従来例と比べると,64ビット加算器で4割程度,128ビット加算器で5割程度,全加算時間Ttを減らすことができる。勿論通常のCPAと比べると格段に速い。全加算時間Ttは最終段の1つ手前の加算器An−1の加算キャリの遅延時間程度であり,より正確には,h=1の場合CPAの全加算時間との比はおよそ, N/(Mn−1−2)である。この値は64ビット加算器で8倍,128ビット加算器で10倍程度である。
【0064】
【表2】
Figure 0003540807
【0065】
表2において,公差hが1/2の場合は,3番目の加算器Aの出力側のマルチプレクサにおいて,選択キャリよりも加算器Aの加算キャリの方が遅くなる。この事情は後段の加算器でも同様である。
【0066】
回路量でみた場合,図10(a)の従来例と比べると,加算器の総ビット数Nは同じであるが,キャリの選択に要するマルチプレクサの数を減らせることができる。具体的には,64ビット加算器で4個程度,128ビット加算器で15個程度減らせる。
【0067】
以上示したように,本発明の第2の実施の形態によれば,本明細書で適応キャリセレクト方式と呼ぶ新しい方式を採用し,多ビット値の高速加算が達成され,併せて回路量の削減をすることができる。
【0068】
(第3の実施の形態)
図12は,本発明の第2の実施形態の適応キャリセレクト方式を,32ビットブース乗算器(Booth Multiplier)に応用した第3の実施の形態の構成を示すブロック回路図である。図12では,2次ブース乗算器のワレスツリー(Wallace Tree)を,CSA(Carry Save Adder)で構成している。P16〜Pの17個の値は,2次ブース乗算器の部分積であって,それぞれ33ビットで構成される。3−2CSA(148)は,3つの数値を2つにまとめることができるCSAであり,これによって加算に要する数値の削減を行う。また,4−2CSA(141,142,143,144,145,146,147)は,4つの数値を2つにまとめることができるCSAであり,3−2CSAを継続接続して構成する。
【0069】
通常の2次ブース乗算器のワレスツリーでは,最終段加算器の位置にはACSA(149)ではなく,CPA(Carry Propagation Adder)が用いられ,2つの数値の加算が行われる。このCPAは最終的に残った2つの64ビット値を加算するためのもので,65ビット構成であり,唯一キャリの伝搬で大きな遅延が発生し,乗算器の高速化のネックとなっていた部分である。第3の実施形態は,適応キャリセレクト方式加算器(ACSA)をこのCPAの替わりに採用したもので,32ビット乗算器の高速化に著しい寄与をなしている。なお,2の補数表示により32ビット値の先頭ビット(MSB)を符号にした場合も同様である。
【0070】
将来の64ビット乗算器等を視野に入れた場合に,多ビット値の高速加算は必須の技術に成りつつあり,本発明の第3の実施の形態によるACSAを採用した高速乗算器は,単なる構成要素の置き換えに留まらない効果を発揮する。例えば,64ビット乗算器を2次のブース乗算器で構成した場合,上記ACSA(149)は,32ビット乗算器の場合のおよそ2倍の多ビット値を取り扱うことになる。これを従来通りのCPAで構成した場合,そのキャリの遅延時間は乗算器の高速化の大きな障害となるであろうし,64ビット乗算器そのものの採用意義を失わせることにもなりかねない。
【0071】
以上示したように,本発明の第3の実施の形態によれば,2次ブース乗算器のワレスツリーへの応用により,乗算器の高速化に著しく寄与することができる。
【0072】
なお,上記説明した実施形態の加算器,乗算器は,単独ではもちろん,集積回路の一部として組み込まれてもその効果を発揮することはいうまでもない。
【0073】
以上,添付図面を参照しながら本発明の加算器,乗算器,及びこれを用いた集積回路の好適な実施形態について説明したが,本発明はこれらの例に限定されない。いわゆる当業者であれば,特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり,それらについても当然に本発明の技術的範囲に属するものと了解される。
【0074】
【発明の効果】
本発明により,従来のキャリセレクト方式加算器を改良して,多ビット乗算器や暗号技術などにおける多ビットの加算に最適な,回路量を減らし,より高速とした加算器,乗算器の回路構成が提供できた。
【図面の簡単な説明】
【図1】図1は,本発明の第1の実施の形態によるキャリセレクト方式加算器の1ビット分の構成を示すブロック回路図である。
【図2】図2は,TG論理によるXOR論理回路である。
【図3】図3は,TG論理によるXOR論理回路である。
【図4】図4は,TG論理によるマルチプレクサである。
【図5】図5は,TG論理によるマルチプレクサである。
【図6】図6は,本発明の第1の実施の形態によるRCSAを採用した4ビットキャリセレクト方式加算器の構成図である。
【図7】図7は,本発明の第1の実施形態による4ビット加算器を採用した16ビットキャリセレクト方式加算器の回路構成図である。
【図8】図8は,図7に示すキャリセレクト方式加算器を用いた16ビット加算器の動作を説明するための,出力端子等の波形変化の形で遅延時間を表示したタイムチャートである。
【図9】図9は,本発明の第2の実施の形態による多ビット加算器の回路構成図である。
【図10】図10は,(a)従来の構成と,(b),(c)本発明の第2の実施の形態による多ビット加算器の具体的構成を例示した回路図である。
【図11】図11(d)〜(g)は,本発明の第2の実施の形態による多ビット加算器の具体的構成を例示した回路図である。
【図12】図12は,本発明の第3の実施の形態による32ビットブース乗算器の一例を示す構成図である。
【符号の説明】
100 RCSA
第1のデータ入力
第2のデータ入力
in1 第1のキャリ入力
in2 第2のキャリ入力
キャリ選択入力
out キャリ出力
101 第3のマルチプレクサ(MPX
102 第1のXOR素子(XOR
103 第2のXOR素子(XOR
104 第1のマルチプレクサ(MPX
105 第2のマルチプレクサ(MPX
201 RCSA
202 RCSA
203 RCSA
204 RCSA
205 マルチプレクサ
S 加算値
out1,Cout2 仮のキャリ出力
301 通常の4ビット加算器
302 加算器4RCSA1
303 加算器4RCSA2
304 加算器4RCSA3
305 Xbus
306 Ybus
307 Zbus
キャリ
〜A 加算器
400 4ビットキャリセレクト方式加算器
401,402 4ビット加算器
403,404 マルチプレクサ
500 1ビット分の回路
501,502 全加算器
503 マルチプレクサ
141〜147 4−2CSA
148 3−2CSA
149 ACSA

Claims (8)

  1. 第1と第2の2つのデータ入力と,第1と第2の2つのキャリ入力と,キャリ選択入力とを入力とし,
    前記第1と第2の2つのデータ入力のXOR出力を生成する第1のXOR素子と,
    前記XOR出力を選択信号として前記第1のキャリ入力と前記第1のデータ入力とのいずれかを選択する第1のマルチプレクサと,
    前記第2のキャリ入力と前記第2のデータ入力とのいずれかを選択する第2のマルチプレクサと,
    前記キャリ選択入力を選択信号として前記第1と第2の2つのキャリ入力のいずれかを選択する第3のマルチプレクサと,
    前記第3のマルチプレクサの出力と前記XOR出力とのXOR出力を生成する第2のXOR素子とを有し,
    前記第1のマルチプレクサの出力を第1のキャリ出力とし,
    前記第2のマルチプレクサの出力を第2のキャリ出力とし,
    前記第3のマルチプレクサの出力を加算値としたことを特徴とする加算器。
  2. 請求項1に記載の加算器が複数段継続接続され,
    前段の第1のキャリ出力を後段の第1のキャリ入力とし,
    前段の第2のキャリ出力を後段の第2のキャリ入力とし,
    前記複数の加算器のキャリ選択入力を全段で共通とし,
    初段の加算器の真のキャリ入力を前記キャリ選択入力とし,第1のキャリ入力を第1の仮想キャリとし,第2のキャリ入力を第2の仮想キャリとし,
    前記キャリ選択入力により最終段の加算器の第1と第2の2つのキャリ出力のいずれかを選択する第4のマルチプレクサを有し,
    前記第4のマルチプレクサの出力をキャリ出力としたことを特徴とする加算器。
  3. 前記初段の加算器の前記第3のマルチプレクサを省き,前記初段の加算器の前記第3のマルチプレクサの出力の替わりに前記キャリ選択入力を用いることを特徴とする請求項2に記載の加算器。
  4. 請求項2または請求項3のうちのいずれか1項に記載の加算器を複数個継続接続し,前段のキャリ出力を後段のキャリ入力とする構成の加算器であって,
    最終段の加算器を除き,各段の加算器の処理可能なビット数は,その1つ前段の加算器の処理可能なビット数と等しいか,または大きくしたことを特徴とする加算器。
  5. 初段の加算器を除き,各段の加算器の処理可能なビット数と,その1つ前段の加算器の処理可能なビット数との差が一定であることを特徴とする請求項4に記載の加算器。
  6. ツリー構造で構成されるブース乗算器であって,最終段の加算器に,請求項4または請求項5に記載の加算器を用いたことを特徴とするブース乗算器。
  7. 請求項1,2,3,4,または5のうちのいずれか1項に記載の加算器を含む集積回路。
  8. 請求項6に記載の乗算器を含む集積回路。
JP2002246629A 2002-08-27 2002-08-27 加算器,乗算器,及び集積回路 Expired - Fee Related JP3540807B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002246629A JP3540807B2 (ja) 2002-08-27 2002-08-27 加算器,乗算器,及び集積回路
US10/648,373 US7159004B2 (en) 2002-08-27 2003-08-27 Adder, multiplier and integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002246629A JP3540807B2 (ja) 2002-08-27 2002-08-27 加算器,乗算器,及び集積回路

Publications (2)

Publication Number Publication Date
JP2004086561A JP2004086561A (ja) 2004-03-18
JP3540807B2 true JP3540807B2 (ja) 2004-07-07

Family

ID=32054475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002246629A Expired - Fee Related JP3540807B2 (ja) 2002-08-27 2002-08-27 加算器,乗算器,及び集積回路

Country Status (2)

Country Link
US (1) US7159004B2 (ja)
JP (1) JP3540807B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626325B2 (en) * 2000-10-06 2017-04-18 Pact Xpp Technologies Ag Array processor having a segmented bus system
KR100935858B1 (ko) * 2007-12-05 2010-01-07 한국전자통신연구원 재구성 가능한 산술연산기 및 이를 구비한 고효율 프로세서

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3323607A1 (de) * 1983-06-30 1985-01-03 Siemens AG, 1000 Berlin und 8000 München Digitales rechenwerk
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
US5027311A (en) * 1989-10-31 1991-06-25 Intel Corporation Carry select multiplexer
US5337269A (en) 1993-03-05 1994-08-09 Cyrix Corporation Carry skip adder with independent carry-in and carry skip paths
US5581497A (en) 1994-10-17 1996-12-03 Intel Corporation Carry skip adder with enhanced grouping scheme
US5875123A (en) 1995-04-18 1999-02-23 International Business Machines Corporation Carry-select adder with pre-counting of leading zero digits
US5898596A (en) 1996-01-24 1999-04-27 Synopsys, Inc. Adder which employs both carry look-ahead and carry select techniques
JPH11143685A (ja) 1997-06-24 1999-05-28 Internatl Business Mach Corp <Ibm> キャリー・スキップ・アダー

Also Published As

Publication number Publication date
US20050076074A1 (en) 2005-04-07
US7159004B2 (en) 2007-01-02
JP2004086561A (ja) 2004-03-18

Similar Documents

Publication Publication Date Title
Ding et al. High-speed ECC processor over NIST prime fields applied with Toom–Cook multiplication
Saxena et al. Analysis of low power, area-efficient and high speed fast adder
Gudala et al. Implementation of high speed and low power carry select adder with BEC
CN110633068A (zh) 行波进位加法器
US20050203983A1 (en) Arithmetic circuit with balanced logic levels for low-power operation
JP3540807B2 (ja) 加算器,乗算器,及び集積回路
JPH09501528A (ja) 高速算術演算装置のけた上げ先見加算器段の数を減少させる構造及び方法
Timarchi et al. A unified addition structure for moduli set {2 n− 1, 2 n, 2 n+ 1} based on a novel RNS representation
JP2700876B2 (ja) 並列乗算器
Armand et al. Low power design of binary signed digit residue number system adder
US9405730B1 (en) Systems and methods for a signed magnitude adder in one&#39;s complement logic
JPH0467213B2 (ja)
JP4290203B2 (ja) リダクションアレイの装置および方法
Gupta et al. Design and Implementation of Area-Power Efficient Generic Modular Adder using Flagged Prefix Addition Approach
Manjunatha et al. Low Power VLSI Design for Power and Area Effective Utilisation of Carry Select Adder
JP2002014804A (ja) 三値ディジタル回路
Kamalakannnan et al. Low power and reduced area carry select adder
Thamizharasi Design and implementation of efficient carry select adder using novel logic algorithm
KR970001370B1 (ko) 54비트 곱셈기
Veeramachaneni Design of efficient VLSI arithmetic circuits
Rao et al. An area efficient Q-format multiplier with high performance for digital processing applications
Aathilakshmi et al. FPGA implementation of energy efficient Vedic multiplier using CSA architecture
Chen et al. Enhancing parallel-prefix structures using carry-save notation
Meruguboina Efficient Design of Carry Select Adder Using Domino Manchester Carry Chain
Jose et al. Redundant binary partial product generators for compact accumulation in Booth multipliers

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20040206

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20040303

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040325

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120402

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees