JP3722821B2 - 演算方法 - Google Patents

演算方法 Download PDF

Info

Publication number
JP3722821B2
JP3722821B2 JP2004117747A JP2004117747A JP3722821B2 JP 3722821 B2 JP3722821 B2 JP 3722821B2 JP 2004117747 A JP2004117747 A JP 2004117747A JP 2004117747 A JP2004117747 A JP 2004117747A JP 3722821 B2 JP3722821 B2 JP 3722821B2
Authority
JP
Japan
Prior art keywords
data
memory
stored
output
alu
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
JP2004117747A
Other languages
English (en)
Other versions
JP2004253000A (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 JP2004117747A priority Critical patent/JP3722821B2/ja
Publication of JP2004253000A publication Critical patent/JP2004253000A/ja
Application granted granted Critical
Publication of JP3722821B2 publication Critical patent/JP3722821B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、1ワードのビット幅が標準的な2のn乗ビットでないデータの演算処理を行う演算方法に関する。
画像や音声等を出力するまたは加工する装置の中には、画像や音声の品位を向上させるために、あるいは画像や音声に付加的な情報を添付するために、1ワードのビット幅が標準的な2のn乗ビットでないデータを用いるものがある。このような装置として、例えば、いわゆる第3世代携帯電話や複数階調の画像データを発生する情報処理装置等がある。このような装置は、デジタルシグナルプロセッサ(以下、DSPという)やその他の演算装置を搭載しており、これにより1ワードのビット幅を標準的な2のn乗ビットに変換して様々な演算処理を行う。
以下に、第3世代携帯電話に搭載されるDSPを例にして、従来の演算装置を説明する。
第3世代携帯電話は、常に良好な通信が行なえるように、DSPを用いて広い周波数帯域の中からいくつかの特定帯域の信号を抽出する。そして、その中から特に受信感度の高い周波数帯域を選択して通信を行なう。なお、このとき、DSPは、通常、後述のデジタルマッチドフィルタ(以下、DMFという)アルゴリズムと称される手法を用いて特定帯域の信号のパス強度を強調し、これにより特定帯域の信号を抽出する。
図19は従来の演算装置の構成を示す図、図20及び図21は2つのメモリブロックに格納されるデータの配置を示す図、図22及び図23はDMFアルゴリズムの概要を示す図、図24〜図27はDMFアルゴリズムの算術式を示す図表である。なお、ここでは、各ブロック間でのデータの伝送処理や演算手段での演算処理は32ビット単位で行われるものとして説明する。
図19中、シフター11は、演算処理を容易化させるために、後述のアキュムレータ15やメモリ17から伝送されるデータを所定ビットシフトして位相の調整を行う。演算論理ユニット(以下、ALUという)13は、シフター11から伝送されるデータや後述のアキュムレータ15から伝送されるデータに基づいて、後述のDMFアルゴリズムによる演算を実行する。アキュムレータ15はALU13による演算結果を格納するレジスタであり、Acc0とAcc1の2つのブロックからなる。なお、アキュムレータ15に格納された演算結果は、第1のルート23に沿ってメモリ17に出力される。また、図示しない制御部の制御に基づいて、所定の演算処理時に第2のルート25に沿ってALU13に伝送され、そこで後続の演算処理に供される。
メモリ17は、所定ビット(図19に示す従来例では16ビット)幅の第1のメモリブロック19と第2のメモリブロック21を備え、アキュムレータ15から伝送されるALU13による演算結果を格納する。
なお、図20にメモリ17に格納されるデータの大まかな配置を、更に図21にメモリ17に格納されるデータの詳細な配置を示す。メモリ17は、IパートデータとRパートデータの組合せによる演算結果のうち、Iパートデータを第1のメモリブロック19に、Rパートデータを第2のメモリブロック21に格納する。そして、メモリ17は、演算結果の各ワードが所定ビット(16ビット)幅未満である場合に、不足するビット幅分だけ未使用データを格納する。例えば、図20及び図21に示す例では、IパートデータとRパートデータがそれぞれ10ビット幅であるので、メモリ17は6ビット幅の未使用データを第1のメモリブロック19と第2のメモリブロック21のそれぞれに格納している。なお、図21中、「[−In−]」はIパートデータを格納している領域、「[−Rn−]」はRパートデータを格納している領域、「*」は未使用データを格納している領域を示している。
なお、16ビット幅のメモリ17に32ビット幅のALU13を接続するのは、乗算演算により演算幅が増大した場合に対応するためであるが、メモリ17は16ビット幅に限らず、4や32等、2のn乗のビット幅にすることも可能である。ただし、現時点では、16ビット幅のメモリが広く普及している上、コストも安いので、DSPのコストを低減させるには16ビット幅のものが望ましい。
以下に、DMFアルゴリズムについて説明する。図22及び図23はDMFアルゴリズムの概要を示す図、図24〜図27はDMFアルゴリズムの算術式を示す図表である。
図22中、「+」は加算演算を示し、「*」は乗算演算を示す。ただし、乗算演算*は、DMFアルゴリズムにおける乗数が1または−1であるため、実際は符号が変わらないか反転することになるだけである。なお、加算回路や乗算回路の構成については特に問わないので、ここでは説明を省略する。
18はデータの遅延値を示し、D1の出力データは128サイクル前の入力データ、D2の出力データは64サイクル前の入力データ、D3の出力データは16サイクル前の入力データ、D4の出力データは32サイクル前の入力データ、D5の出力データは8サイクル前の入力データ、D6の出力データは1サイクル前の入力データ、D7の出力データは4サイクル前の入力データ、D8の出力データは2サイクル前の入力データとなる。W18は遅延値Dに乗算される乗算係数を示し、W1は1、W2は−1、W3は1、W4は1、W5は1、W6は1、W7は1、W8は1となる。これら遅延値D18や乗算係数W18の値は、演算結果が特定な遅延値の信号(すなわち、特定帯域の信号)のパス強度を強調した値となるように、固定的に設定されている。ALU13はDMFアルゴリズムを用いた演算を行うことにより特定帯域の信号を強調することができ、これによって特定帯域の信号を抽出可能となる。
図23は図22における各演算過程の入出力を示し、図24〜図27は図23における各入出力の関係を示している。図23に示すように、各入出力A1〜A8、B1〜B8、C1〜C8、C1’〜C3’、C5’、C7’は、入力A0を起点としている。各入出力の関係を表す算術式を図24に、また、B1〜B8の値を図25に、C1〜C8の値を図26に、C1’〜C3’、C5’及びC7’の値を図27に示す。
なお、遅延値D1〜D8の各出力A1〜A8は、遅延値D1〜D8の値がそれぞれ128,64,16,32,8,1,4,2サイクルであるので、A0の値を起点にしてそれぞれ128,128+64=192,192+16=208,208+32=240,240+8=248,248+1=249,249+4=253,253+2=255サイクル遅延した値となる。例えば入力A0の値をx0とする場合に、D1の出力A1の値はx128、D2の出力A2の値はx192、D3の出力A3の値はx208、D4の出力A4の値はx240、D5の出力A5の値はx248、D6の出力A6の値はx249、D7の出力A7の値はx253、D8の出力A8の値はx255となる。
DMFアルゴリズムによる演算結果は、DMFアルゴリズムの上の段による演算結果(例えばC1〜C8の値)はアキュムレータ15のAcc1に格納され、下の段による演算結果(例えばC1’〜C3’及びC5’及びC7’の値)はアキュムレータ15のAcc0に格納される。
従来のDSPは、一度に16ビットのデータをメモリ17からALU13に出力する。しかしながら、演算処理に用いるデータは、そのうちの10ビット分だけである。そのため、従来の演算装置は、一度に6ビットのデータを無駄にALU13に出力していた。
またALU13は32ビット幅の演算器(図示せず)を内蔵するが、ALU13は、そのうちの10ビット幅分しか使用していない。そのため、従来の演算装置は、22ビット幅分の演算器を無駄にしていた。
このように、従来の演算装置は、1ワードが標準的なビット幅でないデータを用いて演算処理する場合に、IパートデータとRパートデータの間に未使用部を配置しているためALU13に内蔵される演算器やメモリ17の使用に無駄が発生し、特にDMFアルゴリズムによる演算処理を行なう際に、演算能力やメモリを有効に活用できないという問題点があった。
この発明に係る演算方法は、このような課題を解決するために、メモリの第1アドレスで指定される領域に格納されている第1及び第2のデータ列を読み出し、メモリの第2アドレスで指定される領域に格納されている第3及び第4のデータ列を読み出し、読み出されたデータ列の中の第4のデータ列レジスタに一時的に格納し、読み出されたデータ列の中の第2及び第3のデータ列をシフトし、読み出されたデータ列の中の第1のデータ列とシフトされた第2及び第3のデータ列を用いて演算し、レジスタに一時的に格納された第4のデータ列と演算により得られたデータ列とを混合し、混合されたデータ列の中の演算により得られたデータ列をメモリの第1アドレスで指定される領域に格納し、混合されたデータの中の第4のデータ列をメモリの第2アドレスで指定される領域に格納する。
この発明に係る演算方法は、DMF処理における使用メモリ量を低減できるという効果を有する。
また、この発明に係る演算方法は、例えば、読み出されたデータのうち、演算に供しない部分を第4のデータ列とすることにより、演算に供しない部分を演算するための時間を必要とせずに、簡易に出力データを生成することができるという効果、および、上書き時に未使用データをそのまま書き出すことができるという効果も有する。
本実施の形態は、16ビット幅のレジスタと混合回路を設け、制御部に特殊な制御をさせることにより、使用メモリ量(特に、DMFアルゴリズムに基づく演算処理時における使用メモリ量)を従来の2/3に低減することを目的とする。
図1は本発明に係る演算装置の構成を示す図である。
本発明に係る演算装置は、1ワードが標準的な2のn乗のビット幅でないデータの演算を、高速に少ないメモリ量で行えるように構成されている。
以下に、第3世代携帯電話に搭載されるDSPを例にして、本発明の実施の形態を説明する。なお、各図は本発明を理解できる程度に概略的に示してあるにすぎない。また、各図において、共通する要素については、同一の符号を付し、説明を省略する。
本実施の形態に係るDSPは、図1に示すように、レジスタ27と混合回路29とを備えている。レジスタ27は、メモリ17から出力されるデータを一時格納するために設けられている。混合回路29は、メモリ17から出力されるデータ(すなわち、レジスタ27に一時格納されたデータ)に対し、その一部をALU13’から出力されるデータに置き換えるために設けられている。なお、レジスタ27と混合回路29も、他の要素と同様に、図示しない制御部によって制御されている。また、本実施の形態に係るALU13’は、後述するように、分割信号Kが入力されることにより任意の位置でキャリー信号を分割する機能が付加されている。
ところで、本実施の形態は、メモリ17として、既に大量に普及している汎用的なメモリを利用可能とすることが意図されている。そこで、本実施の形態では、メモリ17に格納するデータを図2〜図12に示すように配列するとともに、ALU13’が演算し易くなるように、図示しない制御部によってメモリ17に対して特殊な制御を行っている。
図2〜図12は、2つのメモリブロックに格納されるデータの配置を示す図であり、図2にはメモリ17に格納されるデータの大まかな配置が、また図3〜図12にはメモリ17に格納されるデータの詳細な配置が示されている。なお、図3〜図12中、「[−In−]」はIパートデータを格納している領域、「[−Rn−]」はRパートデータを格納している領域、「*」は未使用データを格納している領域を示している。
図2〜図12に示すように、メモリ17は、10ビット幅のIパートデータと10ビット幅のRパートデータの組合せによるデータに4ビット幅の未使用データを付加して24ビット幅のデータとし、これらを各16ビット幅の第1及び第2のメモリブロック19、21の中に連続して格納する。本実施の形態は、データをこのように格納することにより、メモリ17の未使用領域を従来の12/32=37.5%分から4/32=12.5%分に低減している。
なお、未使用データのビット幅は、後述の理由により、後続のデータの先頭が0ビット目または8ビット目から始まるようにするのが望ましい。例えば、図2に示す例では、Iパートデータのビット幅が10ビット、Rパートデータのビット幅が10ビットであるので、未使用データのビット幅は4ビットになっている。仮に、IパートデータやRパートデータのビット幅が変われば、これに応じて後続のデータの先頭が0ビット目または8ビット目から始まるように、未使用データのビット幅も変えるのが望ましい。
本実施の形態では、図示しない制御部は、メモリ17に対して以下のような制御を行う。
すなわち、例えば、メモリ17には図3〜図12に示すようなデータが格納されているものとする。
図示しない制御部は、図22及び図23に示すDMFアルゴリズムに基づいて入力A0をALU13’に供給する。ここでは、入力A0は、I0パートデータとR0パートデータとする。I0パートデータとR0パートデータは、メモリ17のアドレス0と1に格納されている。そこで、図示しない制御部は、メモリ17のアドレス0と1に格納されていたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をアキュムレータ(以下、Accという)15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に、後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス0と1に格納させる。
また、図示しない制御部は、DMFアルゴリズムに基づいて遅延値D1の出力A1をALU13’に供給する。ここでは、出力A1は、遅延値D1の値が128サイクルであるので0+128=128サイクル遅延して格納されたデータとなる。すなわち、I128パートデータとR128パートデータとなる。I128パートデータとR128パートデータは、メモリ17のアドレス192と193に格納されている。そこで、図示しない制御部は、メモリ17のアドレス192と193に格納されたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をAcc15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス192と193に格納させる。
また、図示しない制御部は、DMFアルゴリズムに基づいて遅延値D2の出力A2をALU13’に供給する。ここでは、出力A2は、遅延値D2の値が64サイクルであるので128+64=192サイクル遅延して格納されたデータとなる。すなわち、I192パートデータとR192パートデータとなる。I192パートデータとR192パートデータは、メモリ17のアドレス288と289に格納されている。そこで、図示しない制御部は、メモリ17のアドレス288と289に格納されたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をAcc15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス288と289に格納させる。
また、図示しない制御部は、DMFアルゴリズムに基づいて遅延値D3の出力A3をALU13’に供給する。ここでは、出力A3は、遅延値D3の値が16サイクルであるので192+16=208サイクル遅延して格納されたデータとなる。すなわち、I208パートデータとR208パートデータとなる。I208パートデータとR208パートデータは、メモリ17のアドレス312と313に格納されている。そこで、図示しない制御部は、メモリ17のアドレス312と313に格納されたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をAcc15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス312と313に格納させる。
また、図示しない制御部は、DMFアルゴリズムに基づいて遅延値D4の出力A4をALU13’に供給する。ここでは、出力A4は、遅延値D4の値が32サイクルであるので208+32=240サイクル遅延して格納されたデータとなる。すなわち、I240パートデータとR240パートデータとなる。I240パートデータとR240パートデータは、メモリ17のアドレス360と361に格納されている。そこで、図示しない制御部は、メモリ17のアドレス360と361に格納されたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をAcc15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス360と361に格納させる。
また、図示しない制御部は、DMFアルゴリズムに基づいて遅延値D5の出力A5をALU13’に供給する。ここでは、出力A5は、遅延値D5の値が8サイクルであるので240+8=248サイクル遅延して格納されたデータとなる。すなわち、I248パートデータとR248パートデータとなる。I248パートデータとR248パートデータは、メモリ17のアドレス372と373に格納されている。そこで、図示しない制御部は、メモリ17のアドレス372と373に格納されたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をAcc15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス372と373に格納させる。
また、図示しない制御部は、DMFアルゴリズムに基づいて遅延値D6の出力A6をALU13’に供給する。ここでは、出力A6は、遅延値D6の値が1サイクルであるので248+1=249サイクル遅延して格納されたデータとなる。すなわち、I249パートデータとR249パートデータとなる。I249パートデータとR249パートデータは、メモリ17のアドレス373と374に格納されている。そこで、図示しない制御部は、メモリ17のアドレス373と374に格納されたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をAcc15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス373と374に格納させる。
また、図示しない制御部は、DMFアルゴリズムに基づいて遅延値D7の出力A7をALU13’に供給する。ここでは、出力A7は、遅延値D7の値が4サイクルであるので249+4=253サイクル遅延して格納されたデータとなる。すなわち、I253パートデータとR253パートデータとなる。I253パートデータとR253パートデータは、メモリ17のアドレス379と380に格納されている。そこで、図示しない制御部は、メモリ17のアドレス379と380に格納されたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をAcc15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス379と380に格納させる。
また、図示しない制御部は、DMFアルゴリズムに基づいて遅延値D8の出力A8をALU13’に供給する。ここでは、出力A8は、遅延値D8の値が2サイクルであるので253+2=255サイクル遅延して格納されたデータとなる。すなわち、I255パートデータとR255パートデータとなる。I255パートデータとR255パートデータは、メモリ17のアドレス382と383に格納されている。そこで、図示しない制御部は、メモリ17のアドレス382と383に格納されたデータを、シフター11を介してALU13’に供給するとともに、レジスタ27にも供給してそこに一時格納させる。次に、図示しない制御部は、ALU13’に一演算処理を実行させ、その演算結果をAcc15に一時格納させる。次に、レジスタ27に一時格納させたデータを混合回路29に出力させるとともに、Acc15に一時格納された演算結果を混合回路29に出力させる。次に、混合回路29に後述する制御によって両者を混合させ、混合結果をメモリ17に出力させる。次に、メモリ17に、混合結果を元のアドレスであるアドレス382と383に格納させる。
この後、アドレス383のI255パートデータとR255パートデータには、次の遅延値D1の入力A0が配置される。そして、次の演算処理時において、図示しない制御部は、アドレス383を新たなアドレス0と見なして上述した動作と同様の動作を実行する。
なお、上述した動作において、データが遷移するパターンは3通りあり、それぞれを図13(a)〜(c)に示す。なお、図13は2つのメモリブロックに格納されるデータの遷移過程を示す図である。図13中、無地の領域はデータが更新される部分を示しており、斜線を付した領域はデータが更新されない部分を示している。
図13(a)〜(c)に示す各パターンの遷移過程において、DSPの各構成は以下のように動作する。
図13(a)に示すパターン1において、まず図示しない制御部は、第1のメモリブロック19からアドレスnに格納されたデータを読み出すとともに、第2のメモリブロック21からアドレスn+1に格納されたデータを読み出し、シフター11とレジスタ27に出力する。なお、アドレスnに格納されたデータとはI0パートデータとR0パートデータの一部である。またアドレスn+1に格納されたデータとはR0パートデータの一部と未使用データとI1パートデータである。
シフター11は、アキュムレータ15やメモリ17から伝送されるデータを所定ビットシフトして位相の調整を行う。そして、その結果をALU13’に出力する。
図14は本実施の形態に係るALU13’の内部構成を示す図である。図14中、AとBはシフター11を介して第1及び第2のメモリブロック19、21から伝送されるデータ、Cはキャリー信号、Kは分割信号、Xは出力信号、FAは加算演算回路である。
ALU13’は、シフター11から伝送されるデータに対し、図示しない制御部から伝送される分割信号Kに基づいて、I0パートデータとR0パートデータの組合せによるデータ(以下、演算に供するデータという)と、それ以外のデータ(以下、演算に供しないデータという)とに分割し、演算に供するデータを取得する。なお、分割は分割信号Kが0のときに行われる。また演算に供するデータは図14に示す出力信号Xに相当する。
次に、ALU13’は、アキュムレータ15から、前回の、現在の演算処理のサイクルと同じサイクルにおける演算結果(以下、前回サイクルの演算結果という)を取得する。なお、前回サイクルの演算結果とは、IパートデータとRパートデータの組合せによるデータである。そして、ALU13’は、シフター11から取得した演算に供するデータとアキュムレータ15から取得した前回サイクルの演算結果を用いて、上述のDMFアルゴリズムによる演算を実行する。図13(a)では、このときの演算結果を、I0’パートデータとR0’パートデータの組合せによるデータとして示している。
ALU13’は、演算結果をアキュムレータ15に出力する。アキュムレータ15はALU13’による演算結果を格納するとともに、演算結果を第1のルート23に沿って混合回路29に出力する。また、図示しない制御部の制御に基づいて所定のタイミングで演算結果を第2のルート25に沿ってALU13’に出力する。
他方、レジスタ27は、図示しない制御部の制御に基づいて、所定のタイミングでメモリ17から伝送されたデータを第3のルート23’に沿って混合回路29に出力する。
混合回路29は、図示しない制御部の制御に基づいて、第3のルート23’に沿ってレジスタ27から伝送されるデータを8ビット毎に分割し、その中の演算に供する部分(すなわち、第1のメモリブロック19に格納されていた下位8ビットと上位8ビットのデータと、第2のメモリブロック21に格納されていた下位8ビットのデータ)を、第1のルート23に沿ってALU13’から伝送されるデータに置き換える。そして、これらに、演算に供しない部分(すなわち、第2のメモリブロック21に格納されていた上位8ビットのデータ)を付加して出力データを生成し、それらをメモリ17に出力する。
メモリ17は、混合回路29から伝送された出力データを元のアドレスに格納する。すなわち、出力データの下位16ビットを第1のメモリブロック19のアドレスnに格納し、上位16ビットを第2のメモリブロック21のアドレスn+1に格納する。
その結果、パターン1により、第1及び第2のメモリブロック19、21に格納されていたデータは、第2のメモリブロック21に格納されていた上位8ビットだけが元の値のままで、それ以外が新たな値に更新される。
図13(b)に示すパターン2において、まず図示しない制御部は、第2のメモリブロック21からアドレスn+1に格納されたデータを読み出すとともに、第1のメモリブロック19からアドレスn+2に格納されたデータを読み出し、シフター11とレジスタ27に出力する。なお、アドレスn+1に格納されたデータとはR0’パートデータの一部と未使用データとI1パートデータの一部である。またアドレスn+2に格納されたデータとはI1パートデータの一部とR1パートデータの一部と未使用データである。
シフター11は、アキュムレータ15やメモリ17から伝送されるデータを所定ビットシフトして位相の調整を行う。そして、その結果をALU13’に出力する。
ALU13’は、シフター11から伝送されるデータに対し、分割信号Kに基づいて、演算に供するデータと演算に供しないデータとに分割し、演算に供するデータを取得する。
次に、ALU13’は、アキュムレータ15から前回サイクルの演算結果を取得する。そして、ALU13’は、シフター11から取得した演算に供するデータとアキュムレータ15から取得した前回サイクルの演算結果を用いて、DMFアルゴリズムによる演算を実行する。図13(b)では、このときの演算結果を、I1’パートデータとR1’パートデータの組合せによるデータとして示している。
ALU13’は、演算結果をアキュムレータ15に出力する。アキュムレータ15はALU13’による演算結果を格納するとともに、演算結果を第1のルート23に沿って混合回路29に出力する。また、図示しない制御部の制御に基づいて所定のタイミングで演算結果を第2のルート25に沿ってALU13’に出力する。
他方、レジスタ27は、図示しない制御部の制御に基づいて、所定のタイミングでメモリ17から伝送されたデータを第3のルート23’に沿って混合回路29に出力する。
混合回路29は、図示しない制御部の制御に基づいて、第3のルート23’に沿ってレジスタ27から伝送されるデータを8ビット毎に分割し、その中の演算に供する部分(すなわち、第2のメモリブロック21に格納されていた上位8ビットと、第1のメモリブロック19に格納されていた上位8ビットと下位8ビットのデータ)を、第1のルート23に沿ってALU13’から伝送されるデータに置き換える。そして、これらに、演算に供しない部分(すなわち、第2のメモリブロック21に格納されていた下位8ビットのデータ)を付加して出力データを生成し、それらをメモリ17に出力する。
メモリ17は、混合回路29から伝送される出力データを元のアドレスに格納する。すなわち、出力データの下位16ビットを第2のメモリブロック21のアドレスn+1に格納し、上位16ビットを第1のメモリブロック19のアドレスn+2に格納する。
その結果、パターン2により、第1及び第2のメモリブロック19、21に格納されていたデータは、第2のメモリブロック21に格納されていた下位8ビットだけが元の値のままで、それ以外が新たな値に更新される。
図13(c)に示すパターン3において、まず図示しない制御部は、第2のメモリブロック21からアドレスn+3に格納されたデータを読み出すとともに、第1のメモリブロック19からアドレスn+4に格納されたデータを読み出し、シフター11とレジスタ27に出力する。なお、アドレスn+3に格納されたデータとはI2パートデータとR2パートデータの一部である。またアドレスn+4に格納されたデータとはR2パートデータの一部と未使用データとI3パートデータである。
シフター11は、アキュムレータ15やメモリ17から伝送されるデータを所定ビットシフトして位相の調整を行う。そして、その結果をALU13’に出力する。
ALU13’は、シフター11から伝送されるデータに対し、分割信号Kに基づいて、演算に供するデータと演算に供しないデータとに分割し、演算に供するデータを取得する。
次に、ALU13’は、アキュムレータ15から前回サイクルの演算結果を取得する。そして、ALU13’は、シフター11から取得した演算に供するデータとアキュムレータ15から取得した前回サイクルの演算結果を用いて、DMFアルゴリズムによる演算を実行する。図13(c)では、このときの演算結果を、I2’パートデータとR2’パートデータの組合せによるデータとして示している。
ALU13’は、演算結果をアキュムレータ15に出力する。アキュムレータ15はALU13’による演算結果を格納するとともに、演算結果を第1のルート23に沿って混合回路29に出力する。また、図示しない制御部の制御に基づいて所定のタイミングで演算結果を第2のルート25に沿ってALU13’に出力する。
他方、レジスタ27は、図示しない制御部の制御に基づいて、所定のタイミングでメモリ17から伝送されたデータを第3のルート23’に沿って混合回路29に出力する。
混合回路29は、図示しない制御部の制御に基づいて、第3のルート23’に沿ってレジスタ27から伝送されるデータを8ビット毎に分割し、その中の演算に供する部分(すなわち、第2のメモリブロック21に格納されていた下位8ビットと上位8ビットと、第1のメモリブロック19に格納されていた下位8ビットのデータ)を、第1のルート23に沿ってALU13’から伝送されるデータに置き換える。そして、これらに、演算に供しない部分(すなわち、第1のメモリブロック19に格納されていた上位8ビットのデータ)を付加して出力データを生成し、それらをメモリ17に出力する。
メモリ17は、混合回路29から伝送される出力データを元のアドレスに格納する。すなわち、出力データの下位16ビットを第2のメモリブロック21のアドレスn+3に格納し、上位16ビットを第1のメモリブロック19のアドレスn+4に格納する。
その結果、パターン3により、第1及び第2のメモリブロック19、21に格納されていたデータは、第1のメモリブロック19に格納されていた上位8ビットだけが元の値のままで、それ以外が新たな値に更新される。
図15は混合回路29における出力データの遷移を示す図である。図15中、左側の上段のAcc[23:0],Reg[7:0]と左側の下段のReg[15:8],Acc[23:0]は、混合回路29がAcc15とレジスタ27からの出力を混合することによって生成したデータである。また、右側のOut[31:0]は、混合回路29がメモリ17から読み出されたデータの元のアドレスに応じて左側の上段のAcc[23:0],Reg[7:0]または左側の下段のReg[15:8],Acc[23:0]のいずれかを選択してメモリ17に出力する出力データである。
ここで、Acc[x:y]はアキュムレータ15からのxビット目からyビット目の出力データを表現しており、Reg[x:y]はレジスタ27からのxビット目からyビット目の出力データを表現している。例えばAcc[23:0],Reg[7:0]は、アキュムレータ15からの0ビット目〜23ビット目までの24ビット幅の出力データとレジスタ27からの0ビット目〜7ビット目までの8ビット幅の出力データの組合せを表現している。またOut[x:y]は混合回路29からのxビット目からyビット目の出力データを表現している。例えばOut[31:0]は混合回路29からの0ビット目〜31ビット目までの32ビット幅の出力データを表現している。
なお、図示しない制御部は、一演算処理毎に、アドレス383のI255パートデータとR255パートデータに、次の遅延値D1の入力A0を配置し、次の演算処理時において、アドレス383を新たなアドレス0と見なして処理を実行する。これは、メモリ17のアドレス0とアドレス383がリング状に繋がっていると想定した場合に、基準点を1つ左に進めて処理することと同様になる。そのため、DSPは、簡易な制御で、演算に用いるデータを好適に出力することができるようになる。
このような制御について、図16を用いて以下に詳述する。図16はサイクリックなデータの配置を示す図である。図16中、斜線を付した領域はデータの入力箇所を示している。
図示しない制御部は、メモリ17のDMFアルゴリズムによって定まる所定のアドレスに格納されたデータを、遅延値D1、D2、D3、D4、D5、D6、D7、D8の出力データとしてサイクリックに用いる。そして、一演算処理毎に、これらのデータは、各遅延値D1〜D8の出力データとして、上述のパターン1〜3によって演算された演算結果に更新される。なお、最終の遅延値D8の出力データは、次の演算処理時において、先頭の遅延値D0の入力データとなる。このようにして、図22及び図23に示すDMFアルゴリズム1サイクルの演算処理が実行される。すると、図示しない制御部は、図16に示す基準点の位置を所定量(ここでは1個)だけ左回りに移動させて、次の演算処理を実行する。このときの演算処理は、上述した動作と同様の動作となる。このようにして、図示しない制御部は、メモリ17から各遅延値に対応する入出力を次々と容易に読み出すことができる。このような機能は、DSPに標準的に設けられているモデュロアドレッシングを利用することにより簡単に実現できる。
以下に、DSP内部における各構成の動作について説明する。なお、ALU13’は、分割信号Kやレジスタ値に基づいて、キャリー信号Cを任意のビット位置で切断可能としている。本実施の形態では、ALU13’は、10ビット幅で切断している。
メモリ17に格納されたデータの構成が図13(a)に示すパターン1の場合、DSP内部における各構成は以下のように動作する。
まず、図示しない制御部は、第1のメモリブロック19と第2のメモリブロック21の所定のアドレスから合計32ビット幅のデータを読み出し、シフター11とレジスタ27に出力する。シフター11は、データをシフトせずに、そのままALU13’に出力する。また、レジスタ27は、第1のメモリブロック19と第2のメモリブロック21の所定のアドレスから読み出されたデータを一時格納する。
この後、ALU13’は、演算処理を実行して、その演算結果をAcc0とAcc1に出力する。
Acc0とAcc1は、演算結果を一時格納した後、それをシフター11に出力する。シフター11は、ALU13’を介して演算結果をそのままAcc0とAcc1に出力する。Acc0とAcc1は、再び演算結果を一時格納する。
この後、レジスタ27は格納していたデータを混合回路29に出力するとともに、Acc0とAcc1はALU13’による演算結果を混合回路29に出力する。
次に、混合回路29は、最下位ビット(LSB)側の8ビットがレジスタ27に格納されていたデータとなるように、レジスタ27に格納されていたデータとAcc0とAcc1に格納されていたALU13’による演算結果とを混合し、その混合結果をメモリ17に出力する。メモリ17は、混合結果を第1のメモリブロック19と第2のメモリブロック21の元のアドレスに格納する。
メモリ17に格納されたデータの構成が図13(b)に示すパターン2の場合、DSP内部における各構成は以下のように動作する。
まず、図示しない制御部は、第2のメモリブロック21と第1のメモリブロック19の所定のアドレスから合計32ビット幅のデータを読み出し、シフター11とレジスタ27に出力する。シフター11は、データを右に8ビットシフトしてALU13’に出力する。また、レジスタ27は、第2のメモリブロック21と第1のメモリブロック19の所定のアドレスから読み出されたデータを一時格納する。
この後、ALU13’は、演算処理を実行して、その演算結果をAcc0とAcc1に出力する。Acc0とAcc1は、演算結果を一時格納した後、それをシフター11に出力する。シフター11は、演算結果を左に8ビットシフトしてALU13’を介してAcc0とAcc1に出力する。Acc0とAcc1は、左に8ビットシフトされたALU13’による演算結果を一時格納する。
この後、レジスタ27は格納していたデータを混合回路29に出力するとともに、Acc0とAcc1は左に8ビットシフトされたALU13’による演算結果を混合回路29に出力する。
次に、混合回路29は、最上位ビット(MSB)側の8ビットがレジスタ27に格納されていたデータとなるように、レジスタ27に格納されていたデータとAcc0とAcc1に格納されていたALU13’による演算結果とを混合し、その混合結果をメモリ17に出力する。メモリ17は、混合結果を第2のメモリブロック21と第1のメモリブロック19の元のアドレスに格納する。
メモリ17に格納されたデータの構成が図13(c)に示すパターン3の場合、DSP内部における各構成は以下のように動作する。
まず、図示しない制御部は、第2のメモリブロック21と第1のメモリブロック19の所定のアドレスから合計32ビット幅のデータを読み出し、シフター11とレジスタ27に出力する。シフター11は、データをシフトせずに、そのままALU13’に出力する。また、レジスタ27は、第2のメモリブロック21と第1のメモリブロック19の所定のアドレスから読み出されたデータを一時格納する。
この後、ALU13’は、演算処理を実行して、その演算結果をAcc0とAcc1に出力する。Acc0とAcc1は、演算結果を一時格納した後、それをシフター11に出力する。シフター11は、ALU13’を介して演算結果をそのままAcc0とAcc1に出力する。Acc0とAcc1は、再び演算結果を一時格納する。
この後、レジスタ27は格納していたデータを混合回路29に出力するとともに、Acc0とAcc1はALU13’による演算結果を混合回路29に出力する。
次に、混合回路29は、最下位ビット(LSB)側の8ビットがレジスタ27に格納されていたデータとなるように、レジスタ27に格納されていたデータとAcc0とAcc1に格納されていたALU13’による演算結果とを混合し、その混合結果をメモリ17に出力する。メモリ17は、混合結果を第2のメモリブロック21と第1のメモリブロック19の元のアドレスに格納する。
以下に、ALU13’内部における演算過程を説明する。図17と図18はDMFアルゴリズムの概要を示す図である。図17と図18において括弧でくくる部分の演算過程を一例として詳述する。
まず、図示しない制御部は、第1のメモリブロック19と第2のメモリブロック21のアドレス0と1から合計32ビット幅のデータを読み出し、シフター11とレジスタ27に出力する。シフター11は、データをシフトせずに、そのままALU13’に出力する。また、レジスタ27は、第1のメモリブロック19と第2のメモリブロック21のアドレス0と1から読み出されたデータを一時格納する。この後、ALU13’は、演算処理を実行する。
その際に、まず、図示しない制御部がデータの構成に基づいて分割信号Kを生成し、ALU13’は分割信号Kに基づいて第1のメモリブロック19と第2のメモリブロック21のアドレス0と1から読み出されたデータを分割して入力A0を取得する。次に、ALU13’は、図17に示すように、A1、B1、C1、C1’を算出する。これらの値は、図24〜図27に示す通りである。このようにして算出された演算結果は、図17に示すDMFアルゴリズムの概要を示す図の上の段によるもの(例えばC1)がアキュムレータ15のAcc1に格納され、下の段によるもの(例えばB1、C1’)がアキュムレータ15のAcc0に格納される。このようにして演算結果は、アキュムレータ15のAcc0及びAcc1に格納される。
特に、演算結果C1は、アキュムレータ15のAcc0及びAcc1に格納された遅延値D1に対応するデータの最後に上書きで書き込まれる。そして、演算結果C1は、データD1とデータD2が連続しているため、次の遅延値D2の入力データとなる。
なお、第1のメモリブロック19と第2のメモリブロック21のアドレス0と1から読み出されたデータのうち、演算に供しない部分は、レジスタ27に格納されている。この部分は、混合回路29によって演算結果と混合される。混合回路29は、その混合結果をメモリ17に出力し、第1のメモリブロック19と第2のメモリブロック21のアドレス0と1に格納させる。そのため、本実施の形態は、演算に供しない部分を演算するための時間を必要とせずに、簡易に出力データを生成することができる。また、上書き時に未使用データをそのまま書き出すこともできる。
次に、ALU13’は、図18に示すように、A2、B2、C2、C2’を算出する。これらの値は、図24〜図27に示す通りである。このようにして算出された演算結果は、図18に示すDMFアルゴリズムの概要を示す図の上の段によるもの(例えばC2)がアキュムレータ15のAcc1に格納され、下の段によるもの(例えばB2、C2’)がアキュムレータ15のAcc0に格納される。このようにして演算結果は、アキュムレータ15のAcc0及びAcc1に格納される。
特に、演算結果C2は、アキュムレータ15のAcc0及びAcc1に格納された遅延値D2に対応するデータの最後に上書きで書き込まれる。そして、演算結果C2は、データD2とデータD3が連続しているため、次の遅延値D3の入力データとなる。
このようにして、ALU13’は、同様の演算を連続して実行し、最終的な演算結果を得る。
その後、図示しない制御部は、図16に示す基準点の位置を、1個だけ左回りに移動させ、メモリ17に格納するデータをサイクリックに1個前進した形にして、次の演算処理を実行する。
以上詳細に説明したように、本発明は、所定ビット幅のレジスタ27と混合回路29を設けるだけで、DMF処理における使用メモリ量を低減できるという効果を有する。そのため、例えば第3世代携帯電話に用いられるDSPに適用した場合に、メモリ量を、510ワードから384ワードに、すなわち、126ワード分低減をさせることができる。
しかも、本発明は、大幅な回路の増大がないので、極めて少ないコストでこのような効果を達成できる。
本発明は上述の実施の形態に限定されることなく、本発明の要旨を逸脱しない範囲で種々の応用及び変形が考えられる。例えば、本実施の形態においては、メモリ17を32ビット幅のメモリによって構成してもよい。また、本発明は、DSPだけでなく、9〜12ビット幅を有するデータの処理を行う機器に対しても適用することができる。
本発明に係る演算装置の構成を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの遷移過程を示す図である。 本実施の形態に係るALUの内部構成を示す図である。 混合回路における出力の遷移を示す図である。 サイクリックなデータの配置を示す図である。 DMFアルゴリズムの概要を示す図である。 DMFアルゴリズムの概要を示す図である。 従来の演算装置の構成を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 2つのメモリブロックに格納されるデータの配置を示す図である。 DMFアルゴリズムの概要を示す図である。 DMFアルゴリズムの概要を示す図である。 DMFアルゴリズムの算術式を示す図表である。 DMFアルゴリズムの算術式を示す図表である。 DMFアルゴリズムの算術式を示す図表である。 DMFアルゴリズムの算術式を示す図表である。
符号の説明
11 シフター
13’ ALU
15 アキュムレータ
17 メモリ
19 第1のメモリブロック
21 第2のメモリブロック
23 第1のルート
23’ 第3のルート
25 第2のルート
27 レジスタ
29 混合回路

Claims (5)

  1. メモリの第1アドレスで指定される領域に格納されている第1及び第2のデータ列を読み出し、
    前記メモリの第2アドレスで指定される領域に格納されている第3及び第4のデータ列を読み出し、
    前記読み出されたデータ列の中の前記第4のデータ列レジスタに一時的に格納し、
    前記読み出されたデータ列の中の前記第2及び第3のデータ列をシフトし、
    前記読み出されたデータ列の中の前記第1のデータ列と前記シフトされた第2及び第3のデータ列を用いて演算し、
    前記レジスタに一時的に格納された前記第4のデータ列と、前記演算により得られたデータ列とを混合し、
    前記混合されたデータ列の中の前記演算により得られたデータ列を前記メモリの前記第1アドレスで指定される領域に格納し、
    前記混合されたデータの中の前記第4のデータ列を前記メモリの前記第2アドレスで指定される領域に格納することを特徴とする演算方法。
  2. 前記第4のデータ列は、未使用データを含むことを特徴とする請求項1に記載の演算方法。
  3. 前記第1のデータ列の長さは、前記第2及び第3のデータ列の長さを合わせた長さと同じであることを特徴とする請求項1または2に記載の演算方法。
  4. 前記第1、第2、第3及び第4のデータ列は、ビット列により構成されることを特徴とする請求項1〜3のいずれか1項に記載の演算方法。
  5. 前記読み出されたデータ列の中の前記第2及び第3のデータ列は、所定のビット数だけシフトされることを特徴とする請求項に記載の演算方法。
JP2004117747A 2004-04-13 2004-04-13 演算方法 Expired - Fee Related JP3722821B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004117747A JP3722821B2 (ja) 2004-04-13 2004-04-13 演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004117747A JP3722821B2 (ja) 2004-04-13 2004-04-13 演算方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002241371A Division JP3560596B2 (ja) 2002-08-22 2002-08-22 演算装置及びデータの読出方法

Publications (2)

Publication Number Publication Date
JP2004253000A JP2004253000A (ja) 2004-09-09
JP3722821B2 true JP3722821B2 (ja) 2005-11-30

Family

ID=33028594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004117747A Expired - Fee Related JP3722821B2 (ja) 2004-04-13 2004-04-13 演算方法

Country Status (1)

Country Link
JP (1) JP3722821B2 (ja)

Also Published As

Publication number Publication date
JP2004253000A (ja) 2004-09-09

Similar Documents

Publication Publication Date Title
JP3003467B2 (ja) 演算装置
JP3722821B2 (ja) 演算方法
JP3560596B2 (ja) 演算装置及びデータの読出方法
JP3723115B2 (ja) 単一命令多重データ処理
US6983298B2 (en) Method and apparatus for linear interpolation using gradient tables
JP4630056B2 (ja) 畳み込み演算回路
JPH10503311A (ja) ガロアフィールド多項式乗算/除算回路およびそれを組込むディジタル信号プロセッサ
WO2004088586A1 (ja) ルックアップテーブル装置及び画像生成装置
JP3565830B2 (ja) データ処理装置
JPH11317676A (ja) 有限フィ―ルドでの任意要素の逆数具現回路
JP3390599B2 (ja) 除算装置
JP3456450B2 (ja) 固定小数点乗算器および方法
JP2550597B2 (ja) 2乗器
JP3264603B2 (ja) デジタル信号処理装置
JP2508286B2 (ja) 平方根演算装置
JP3166781B2 (ja) 加算回路
JP4402523B2 (ja) データ変換方法、データ変換装置、プログラム及び記憶媒体
JP2003084972A (ja) 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法
JPH10105382A (ja) 情報処理装置および方法
JP2008021189A (ja) 除算装置および除算方法
JPS6386069A (ja) 補間回路
JPH11186876A (ja) フィルタ装置
JPH0828646B2 (ja) ディジタルフィルタ
JPH0553759A (ja) 固定小数点演算ユニツト
JP2000235481A (ja) データテーブル選択演算装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050419

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050913

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

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

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees