JP3745673B2 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP3745673B2
JP3745673B2 JP2001328227A JP2001328227A JP3745673B2 JP 3745673 B2 JP3745673 B2 JP 3745673B2 JP 2001328227 A JP2001328227 A JP 2001328227A JP 2001328227 A JP2001328227 A JP 2001328227A JP 3745673 B2 JP3745673 B2 JP 3745673B2
Authority
JP
Japan
Prior art keywords
address
circuit
update
addressing
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.)
Expired - Fee Related
Application number
JP2001328227A
Other languages
English (en)
Other versions
JP2003131868A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001328227A priority Critical patent/JP3745673B2/ja
Publication of JP2003131868A publication Critical patent/JP2003131868A/ja
Application granted granted Critical
Publication of JP3745673B2 publication Critical patent/JP3745673B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般にアドレス生成回路を備えたプロセッサに関し、詳しくは音声・画像データの処理に適したアドレッシング機能を有するアドレス生成回路を備えたプロセッサに関する。
【0002】
【従来の技術】
移動通信端末等の携帯マルチメディア情報機器等においては、音声・画像処理等の複雑なアルゴリズムに対応するメディア・プロセッサが広く使用されている。これらのメディア・プロセッサにはアドレス生成回路が設けられ、音声・画像処理等に適したアドレッシング機能を提供する。音声・画像処理等に適したアドレッシング機能としては、サーキュラアドレッシング、2次元アドレッシング、及びビットリバースアドレッシング等が挙げられる。
【0003】
サーキュラアドレッシングとは、メモリの任意の区間において、その最上位アドレスが最下位アドレスに連続して繋がっている様にアクセスできるアドレッシング方法である。これを実現するためには、アドレッシングによりアドレスレジスタの値を更新した際に、更新した値が予め設定された値を超えた場合には、アドレスレジスタの値を自動的にジャンプさせ、最上位アドレスから最下位アドレスに戻るように構成すればよい。
【0004】
2次元アドレッシングとは、画像処理の場合、1次元アドレスを持つメモリを仮想的に2次元メモリと見なして、画像データをリードとライトする時に必要なアドレスを生成する2次元アドレッシングの方法である。
【0005】
ビットリバースアドレッシングとは、高速フーリエ変換アルゴリズムに使用するビットリバースしたアドレスを生成するアドレッシング方法である。これにより、高速フーリエ変換アルゴリズムの実行速度を高めると共に、プログラムメモリを節約することが出来る。
【0006】
音声・画像のようなディジタル信号処理アルゴリズムでは、単位時間内に処理するデータ量が多く、メディア・プロセッサコアとメモリとの間におけるデータ転送量が多くなる。最近の音声・画像信号処理プロセッサでは、専用のハードウェアによるアドレス演算機能としてアドレス生成回路を用意し、アドレス演算とデータ演算とを並列に実行することで高速化を図っている。このようにアドレス生成回路は、メディア・プロセッサにとって非常に重要な構成要素である。
【0007】
従来、サーキュラアドレッシング、2次元アドレッシング、及びビットリバースアドレッシングは、それぞれ専用の演算ブロックを設けることで実現している。
【発明が解決しようとする課題】
携帯メディア機器においては、低コスト化且つ低消費電力化が近年のシステムLSI時代の重要な要請となっている。従って、メディア・プロセッサに対しても、従来以上の低コスト化・低消費電力化が要求されている。
【0008】
従来のメディア・プロセッサのアドレス生成回路は、各アドレッシング方式に対して専用の演算ブロックを設けるので、アドレス更新機能の回路やアドレスレジスタ演算機能の回路を別個に独立して用意することになり、多くの演算器(加算器又は減算器)を必要とする。演算器は一般的に回路規模が比較的大きなハードウェアであるので、このようなアドレス生成回路は、メディア・プロセッサの面積を増大させると共に消費電力を大きくするという問題がある。
【0009】
また音声・画像信号処理プログラムを実行する場合、アルゴリズムによっては、必ずしもサーキュラアドレッシングや2次元アドレッシングを使用するとは限らない。例えば、2次元アドレッシングを使用していない状態で、他のアドレス更新機能やアドレスレジスタ演算機能を使う時には、2次元アドレッシング関係の回路を動作させてしまったのでは、消費電力の増大に繋がるという問題がある。更に、2次元アドレッシングを使用する場合であっても、例えば2次元更新回路部分は常時動作する必要があるとは限らない。
【0010】
以上を鑑みて、本発明は、サーキュラアドレッシングと、2次元アドレッシングと、ビットリバースアドレッシングとを備え、回路規模の縮小と消費電力の低減を実現するメディア・プロセッサを提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明によるプロセッサは、アドレスレジスタと、該アドレスレジスタのアドレス値を更新するアドレス更新回路と、該アドレスレジスタのアドレス値からメモリをアクセスする実効アドレスを生成する実効アドレス計算回路を含み、該アドレス更新回路はサーキュラアドレッシング更新及び2次元アドレッシング更新更新処理が共用する単一の演算回路を少なくとも1つ含むことを特徴とする。
【0012】
また上記プロセッサにおいて、該演算回路は、ビットリバースアドレッシングを実行中には動作しないことを特徴とする。
【0013】
上記発明によれば、プロセッサのアドレス更新回路において、サーキュラアドレッシング更新、2次元アドレッシング更新、及び通常のアドレス演算による更新のうち少なくとも2つの更新処理が演算回路を共用するので、回路規模を縮小することが可能になる。またその演算回路の機能が必要でない場合には演算回路の動作を停止することで消費電力を削減することが可能になる。
【0014】
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0015】
図1は、本発明によるアドレス生成回路の第1の実施例の概略構成図を示す。
【0016】
本発明によるメディア・プロセッサのアドレス生成回路10は、アドレス用レジスタ11、アドレス更新回路12、及び実効アドレス計算回路13を含む。以下の説明で、全てのレジスタのクロックはゲーテッドクロックに駆動され、また全ての値は2の補数で表現される。
【0017】
アドレス用レジスタ11は、アドレスレジスタ14−0乃至14−nを含む。アドレス更新回路12は、カウンタ21、ゼロ検出回路22、マスク回路23、特殊機能更新回路24、通常更新回路25、制御セレクタ回路26、及びセレクタ27を含む。また実効アドレス計算回路13は、ビットリバース回路41、マスク回路42、演算器43、OR回路44、パイプライン構成のレジスタ45、及びセレクタ47乃至49を含む。またレジスタ31乃至34がアドレス更新回路12に対して設けられると共に、レジスタ51乃至53が実効アドレス計算回路13に対して設けられる。
【0018】
ここでアドレスレジスタ14−0乃至14−nの内容は、アドレス値X0乃至Xnとして示される。レジスタ34の△は、アドレス更新時におけるアドレス増加/減少の増減値である。レジスタ32のMD及びレジスタ52のCPは、サーキュラアドレッシング用に指定されたブロックサイズとべースポインタである。レジスタ33のTD及びレジスタ31のCTは、2次元アドレッシング用に指定されたオフセットとカウンタ初期値である。レジスタ51のBITC及びレジスタ53のBPは、ビットリバースアドレッシング用に指定されたリバースのビット数とべースポインタである。
【0019】
信号MDSはサーキュラアドレッシングを指示する信号であり、1の場合にサーキュラアドレッシングを示し、0の場合に別のアドレッシングを示す。信号TDSは2次元アドレッシングを指示する信号であり、1の場合に2次元アドレッシングを示し、0の場合に別のアドレッシングを示す。信号BRSはビットリバースアドレッシングを指示する信号であり、1の場合にビットリバースアドレッシングを示し、0の場合に別のアドレッシングを示す。
【0020】
以下に、サーキュラアドレッシング、2次元アドレッシング、ビットリバースアドレッシングの場合の動作について説明する。
【0021】
まずサーキュラアドレッシングの場合について説明する。
【0022】
サーキュラアドレッシングの場合、信号MDSは1であり、信号TDS及びBRSは0である。図1において、セレクト信号SELにより例えばアドレスレジスタ14−nが選択され、アドレス値Xnがマスク回路23に供給される。更にアドレス増減値Δが、マスク回路23に供給される。またセレクタ27は、信号TDSが0であることに応じて、サーキュラアドレッシングのブロックサイズMDを選択してマスク回路23に供給する。更にマスク回路23は、信号MDS及びTDSを受け取る。
【0023】
マスク回路23は、サーキュラアドレッシング時に、特殊機能更新回路24にサーキュラアドレッシングのアドレス更新計算をさせる。制御セレクタ回路26は、特殊機能更新回路24或いは通常更新回路25の更新アドレスを選択して、アドレス用レジスタ11に供給する。これにより、アドレス用レジスタ11の選択されたアドレスレジスタ14−nの内容が更新される。
【0024】
サーキュラアドレッシングのアルゴリズムを以下に示す。
【0025】
Figure 0003745673
更新方向が増加方向の場合には、アドレス増減値を加える方向にアドレスレジスタを自動更新し、アドレスレジスタ14−nの値Xnがレジスタ32のMD値以上になった場合、アドレスレジスタ14−nには自動的に(Xn+Δ−MD)の値を格納する。減少方向の自動更新の時は、アドレスレジスタ14−nの値Xnが0より小さくなると、アドレスレジスタ14−nには自動的に(Xn+Δ+MD)の値を格納する。ここでサーキュラアドレッシングにおいて、単純にアドレス増減値を加算或いは減算するアドレス更新の場合には通常更新回路25の更新結果を用い、ブロックサイズMD分のジャンプによる更新の場合には特殊機能更新回路24の更新結果を用いる。
【0026】
アドレス更新回路12では、通常のアドレス演算は、通常更新回路25を使って実行される。この場合、サーキュラアドレッシング或いは2次元アドレッシングしない命令に対しては、マスク回路23により特殊機能更新回路24を動作させないので、消費電力を低減することが出来る。
【0027】
またサーキュラアドレッシングでは、実効アドレスを生成する際に、オフセット値としてべースポインタCPを用いる。図1の実効アドレス計算回路13において、信号BRSが0である場合、セレクタ47により選択されるサーキュラアドレッシングのベースポインタCPは、マスク回路42を介して演算器43に供給される。またアドレス用レジスタ11の選択されたアドレスレジスタから供給されるアドレス値は、マスク回路42とセレクタ48とを介して、演算器43に供給される。演算器43は、ベースポインタCPとアドレス値とを加算する。加算により得られた実効アドレスは、信号BRS或いは信号MDSが1の場合に演算器43を選択するセレクタ49により選択され、レジスタ45に格納される。レジスタ45の内容が、アドレス信号として出力される。
【0028】
以下に、2次元アドレッシングの場合について説明する。
【0029】
2次元アドレッシングの場合、信号TDSは1であり、信号MDS及びBRSは0である。図1において、セレクト信号SELにより例えばアドレスレジスタ14−nが選択され、アドレス値Xnがマスク回路23に供給される。更にアドレス増減値Δが、マスク回路23に供給される。またセレクタ27は、信号TDSが1であることに応じて、2次元アドレッシングのオフセットTDを選択してマスク回路23に供給する。更にマスク回路23は、信号MDS及びTDSを受け取ると共に、2次元アドレッシング用にゼロ検出回路22からカウンタ21がゼロになったか否かを示す信号を受け取る。
【0030】
マスク回路23は、2次元アドレッシング時に、特殊機能更新回路24に2次元アドレッシングのアドレス更新計算をさせる。制御セレクタ回路26は、特殊機能更新回路24或いは通常更新回路25の更新アドレスを選択して、アドレス用レジスタ11に供給する。これにより、アドレス用レジスタ11の選択されたアドレスレジスタ14−nの内容が更新される。
【0031】
2次元アドレッシングのアルゴリズムを以下に示す。
【0032】
(Counter ≠ 0): Xn+△→Xn, Counter - 1 → Counter
(Counter = 0): Xn+TD+△→Xn, CT→ Counter
このアドレッシングではカウンタ21のカウント値Counterが0でない場合、アドレスレジスタの内容は増減値△が加算されるように自動更新され(同時にCounterを1デクリメント)、次のサイクルのアドレスを生成する。カウント値Counterの値が0の場合、アドレスレジスタには自動的に(Xn+Δ+TD)の値が入り、次のサイクルのアドレスを生成する(同時にCounterにCTを初期値として設定)。なおカウント値Counterの値が0の場合、(Xn+Δ+TD)ではなく、(Xn+TD)の値をアドレスレジスタに自動的に格納して更新するようにしてもよい。ここで2次元アドレッシングにおいて、単純にアドレス増減値を加算するアドレス更新の場合には通常更新回路25の更新結果を用い、オフセットTD分のジャンプによる更新の場合には特殊機能更新回路24の更新結果を用いる。
【0033】
アドレス更新回路12では、通常のアドレス演算は、通常更新回路25を使って実行される。この場合、サーキュラアドレッシング或いは2次元アドレッシングしない命令に対しては、マスク回路23により特殊機能更新回路24を動作させないので、消費電力を低減することが出来る。
【0034】
実効アドレス計算回路13においては、2次元アドレッシングの場合、セレクタ49がアドレス用レジスタ11の出力を直接選択することで、アドレス用レジスタ11の選択アドレスレジスタから供給されるアドレス値が、レジスタ45に格納される。レジスタ45の内容が、アドレス信号として出力される。
【0035】
実効アドレス計算回路13では、通常のアドレッシング或いは2次元アドレッシングの場合、マスク回路42によって、ビットリバース回路41や演算器43等を動作させない。このように、サーキュラアドレッシングやビットリバース関連の回路を動作させないことによって、消費電力を低減することが出来る。
【0036】
以下に、ビートリバースアドレッシングの場合について説明する。
【0037】
ビートリバースアドレッシングの場合、信号BRSは1であり、信号TDS及びMDSは0である。図1において、アドレス更新回路12の部分は通常更新回路25だけが動作する。
【0038】
セレクト信号SELにより例えばアドレスレジスタ14−nが選択されると、アドレス値Xnが、実効アドレス計算回路13のマスク回路42に供給される。実効アドレス計算回路13において、信号BRSが1である場合、セレクタ47により選択されるビットリバースアドレッシングのベースポインタBPは、マスク回路42を介して演算器43に供給される。またアドレス値Xnは、マスク回路42を介して、ビットリバース回路41に供給される。ビットリバース回路41は、リバースビット数BITCに応じてアドレス値Xnのビットリバース演算を実行し、その結果を出力する。セレクタ48は、信号BRSの1に応じて、ビットリバース回路41の出力を選択して、演算器43に供給する。演算器43は、ビットリバース後のアドレス値とベースポインタBPとを加算する。加算により得られた実効アドレスは、信号BRS或いは信号MDSが1の場合に演算器43を選択するセレクタ49により選択され、レジスタ45に格納される。レジスタ45の内容が、アドレス信号として出力される。
【0039】
ビットリバースアドレッシングは各種基数を使用するFFTアルゴリズムの実行速度を高めると共に、プログラムメモリを節約することが出来る。
【0040】
図1の構成では、アドレス更新回路12でインデックスXnをビットリバースするのではなく、実効アドレス計算回路13でインデックスXnをビットリバースし、ベースポインタBPと演算した結果を実効アドレスとして出力している。
【0041】
図2には、ビットリバース動作の詳細を示す。図2において、BITCは、リバースするビット数を2進数で示す。Xn’[31:0]はリバース前の32ビットのアドレスビットパターンであり、Xn’’[31:0]はリバース後の32ビットのアドレスビットパターンである。リバースするビット数がIである場合、Xn’[31:0]の下位ビットであるビット0〜ビットIの並びを反転させ、上位ビットであるビット(I+1)〜ビット31にはゼロを配置する。リバース後のアドレスXn’’をインデックスとしてベースポインタBPと加算することで、容易にベースポインタとインデックスとを組み合せることが出来る。
【0042】
図3は、本発明によるアドレス生成回路の第1の実施例について詳細な構成を示す図である。以下の説明において、全てのレジスタのサイズは32ビット構成で2の補数形式で表現される。
【0043】
以下に、信号MDSが1で信号TDS及びBRSが0の場合、即ちサーキュラアドレッシング命令を実行する時の動作を説明する。
【0044】
セレクト信号SEL1で選択されたインデックスXn’が、アドレス用レジスタ11から供給される。また増減値△は、レジスタ(FF)34を経由してstepとして供給される。信号MDSは1であるので、stepとXn’はAND回路202及び203を経由し、それぞれ信号MB及び信号MAとして全加算器204に供給される。増減値stepの符号ビットMSBはAND回路201を経由し、信号M1として出力される。
【0045】
更新値Δ≧0の場合(更新方向が正)、信号M1は0である。反転制御205はブロックサイズMDの符号を反転し、MCとして出力する。サーキュラアドレッシングの場合に信号TDSは0であるので、セレクタ210はMCを選択し、MTとして出力する。信号TDSの0に応答して、セレクタ212はインバター211の出力である“1”を選択して出力する。この“1”が、全加算器204の出力OBに0ビット目として付加されると共に、出力OAに33ビット目として付加される。全加算器204と33bit加算器206により、(Xn+Δ−MD)を計算する。セレクタ信号生成回路208は、MDSの“1”、M1の“0”、TDSの“0”に応答して、33bit加算器206の出力Add21の符号ビットMSBに応じた信号を、選択信号Sel20として出力する。
【0046】
Add21の符号ビットMSBが1の場合には選択信号Sel20が1となり、選択回路209は、32bit加算器207の出力Add20を選択する。Add21の符号ビットMSBが0の場合には選択信号Sel20が0となり、33bit加算器206の出力Add21の下位32ビットを選択する。選択回路209の選択出力をアドレス用レジスタ11に送り、指定したアドレスレジスタの更新を行う。
【0047】
更新値Δ<0の場合(更新方向が負)、信号M1は1である。反転制御205は、ブロックサイズMDを、符号を反転することなくそのままMCとして出力する。サーキュラアドレッシングの場合に信号TDSは0であるので、セレクタ210はMCを選択し、MTとして出力する。セレクタ212はインバター211の出力である“0”を選択して出力する。この“0”が、全加算器204の出力OBに0ビット目として付加されると共に、出力OAに33ビット目として付加される。全加算器204と33bit加算器206により(Xn+Δ+MD)を計算する。セレクタ信号生成回路208は、MDSの“1”、M1の“1”、TDSの“0”に応答して、32bit加算器207の出力Add20の符号ビットMSBに応じた信号を、選択信号Sel20として出力する。
【0048】
Add20の符号ビットMSBが1の場合には選択信号Sel20が0となり、選択回路209は、加算器206の出力Add21の下位32ビットを選択する。Add20の符号ビットMSBが0の場合には選択信号Sel20が1となり、32bit加算器207の出力Add20を選択する。選択回路209の選択出力をアドレス用レジスタ11に送り、指定したアドレスレジスタの更新を行う。
【0049】
以下に、信号TDSが1で信号MDSが0の場合、即ち2次元アドレッシング命令を実行する時の動作を示す。
【0050】
ゼロ検出回路22は、カウンタ21のカウント値Counterが0の場合1を出力し、0でない場合には0を出力する。ゼロ検出回路22の出力が0の場合、AND回路201、202、及び203の出力M1、MB、及びMAは0に固定される。信号TDSが1であるので、セレクタ210の出力MTはTDに固定となり、セレクタ212の出力は“0”に固定となる。従って、全加算器204と33bit加算器206において、全ての入力信号には変化が無くなるので、消費電力を低減することが出来る。ゼロ検出回路22の出力が0であり、TDS=1且つMDS=0であるので、セレクタ信号生成回路208の出力Sel20は1になる。これに応じて、選択回路209は、32bit加算器207の出力Add20を選択する。
【0051】
ゼロ検出回路22の出力が1の場合、“1”である信号TDSはAND回路214及びOR回路215を介して、AND回路202及び203に供給される。従って、stepとXn’はAND回路202及び203を経由して、それぞれ信号MB及び信号MAとして全加算器204に供給される。また信号MDSがゼロであるので、AND回路201の出力は0に固定される。“1”である信号TDSに応答して、セレクタ210はTDを選択する。またセレクタ212は“0”を選択して出力する。全加算器204及び33bit加算器206の演算結果はXn+TD+△であり、Add21として出力される。ゼロ検出回路22の出力が1であり、TDS=1且つMDS=0であるので、セレクタ信号生成回路208の出力Sel20は0となる。これに応じて、選択回路209は、33bit加算器206の出力Add21の下位32ビットを選択し出力する。
【0052】
以上説明したように、2次元アドレッシングの場合には、ゼロ検出回路22の出力が1の時だけ2次元更新回路(全加算器204及び33bit加算器206)を動作させるので、消費電力を削減することが出来る。
【0053】
また、通常のポストアドレス更新、ビットリバースアドレッシング、アドレスレジスタ演算の場合、全加算器204と33bit加算器206の動作を停止させ、32bit加算器207だけを動作させるので、消費電力を減らすことができる。
【0054】
アドレスレジスタ演算命令を実行する場合、TDSとMDSは0であり、32bit加算器207だけを動作させる。その演算結果Add20を、選択回路209を経由して、アドレス用レジスタ11に送り、指定したアドレスレジスタの更新を行う。
【0055】
図3の実効アドレス計算回路13では、サーキュラアドレッシング命令を実行する時、MDS=1且つBRS=0であり、セレクタ47はCPを選択する。またセレクタ48は、AND回路303の出力を選択する。32bit加算器306が、ベースポイントCPとインデックスXn’を加算することで、メモリをアクセスする実効アドレスを生成する。この実効アドレスは、セレクタ49を介して、レジスタ45に格納される。図3の回路では、ブロックサイズMDとCPとXn’は、メモリ空間の範囲内で任意の値をとることが出来る。
【0056】
ビットリバースアドレッシング命令を実行する時、BRS=1且つMDS=0であり、セレクタ47はBPを選択する。セレクタ48はビットリバース回路41の出力を選択する。32bit加算器306が、ベースポイントBPとインデックスXn’のビットリバース値とを加算することで、メモリをアクセスする実効アドレスを生成する。この実効アドレスは、セレクタ49を介して、レジスタ45に格納される。図3の回路では、BPとXn’は、メモリ空間の範囲内で任意の値をとることが出来る。
【0057】
サーキュラアドレッシング命令とビットリバース命令の何れも実行しない場合、MDS及びBRSは0となり、OR回路44の出力は0となる。従って、AND回路303の出力は0に固定となり、ビットリバース回路41及び32bit加算器306での動作を停止させ、消費電力を低減できる。このとき、Xn’の値は直接にセレクタ49で選択され、実効アドレスとして出力される。
【0058】
図4は、図3のアドレス生成回路における実効アドレス計算回路部分の変形例を示す図である。
【0059】
図4の構成において、サーキュラアドレッシングの場合には、ブロックサイズMDの値は32ビットの下位ビットであるビットI〜ビット0で指定される。MDのビット31〜ビット(I+1)は0にする。インデックスXn’は、0〜(MD−1)間に値を取る。ベースポイントCPは、32ビットの下位ビットであるビットI〜ビット0を0にし、上位ビットであるビット31〜ビット(I+1)に値を設定することでベースの位置を指定する。サーキュラアドレッシング命令を実行する時(MDS=1&BRS=0)、OR回路404により、ベースポイントCPとインデックスXn’の論理和演算を実行し、メモリをアクセスする実効アドレスを生成する。
【0060】
同様に、ビットリバースアドレッシングの場合、インデックスXn’の値は下位ビットI〜ビット0においてビットリバースする。Xn’のビット31〜ビット(I+1)は0にする。ベースポイントBPは、32ビットの下位ビットであるビットI〜ビット0を0にし、上位ビットであるビット31〜ビット(I+1)に値を設定することでベースの位置を指定する。ビットリバースアドレッシング命令を実行する時(BRS=1&MDS=0)、OR回路404により、ベースポイントBPとビットリバース回路41の出力との論理和演算を実行し、メモリをアクセスする実効アドレスを生成する。
【0061】
このように図4の変形例では、ベースポイントのベース値を設定するビット位置においては、アドレスインデックスの各ビットに0を配置し、逆にアドレスインデックスのインデックス値を設定するビット位置においては、ベースポイントの各ビットに0を配置することで、アドレスインデックスとベースポイントを論理和演算するだけで、加算演算と同等の処理を実行することが可能となる。これにより、回路規模と消費電力を削減することが可能となる。
【0062】
図5は本発明によるアドレス生成回路の第2の実施例を示す図である。
【0063】
以下に、TDSが1の場合、即ち2次元アドレッシング命令を実行する時の動作を説明する。第2の実施例では、2次元アドレッシング命令の実行中において、全加算器204と33ビット加算器206の動作を停止する。
【0064】
ゼロ検出回路22は、カウンタ21のカウント値Counterが0の場合1を出力し、0でない場合には0を出力する。ゼロ検出回路22の出力が0の場合、AND回路214の出力は0となり、セレクタ212は△を選択する。MDS=0に応答して、セレクタ信号生成回路208の出力Sel20は1となる。これにより、選択回路209は、32bit加算器207の出力Add20(=Xn+△)を選択する。
【0065】
ゼロ検出回路22の出力が1の場合、セレクタ212は、TDを選択する。MDS=0に応答して、セレクタ信号生成回路208の出力Sel20は1となる。これにより、選択回路209は、32bit加算器207の出力Add20(Xn+TD)を選択する。
【0066】
以上のように、2次元アドレッシングの場合、全加算器204と33ビット加算器206を利用しないので、消費電力を削減することが出来る。なお全加算器204と33ビット加算器206は、サーキュラアドレッシング時の更新のための専用回路である。図5の第2の実施例の構成において、サーキュラアドレッシング時の動作は、第1の実施例の構成の動作と基本的に同一であるので、説明は省略する。
【0067】
なお図5の構成は、実効アドレス計算回路の部分においても、図3の構成と若干異なり、AND回路303の代わりにAND回路304及び305が設けられる。AND回路304は、ビットリバースアドレッシング時(BRS=1)のみビットリバース回路41を動作させるマスク回路であり、サーキュラアドレッシング時(MDS=1)のみアドレスを通過させるマスク回路であるAND回路305とは、別個の独立した回路としても受けられている。図3の構成では、ビットリバースアドレッシング時以外にサーキュラアドレッシング時にもビットリバース回路41が動作していたが、図4の構成では、ビットリバースアドレッシング時のみビットリバース回路41を動作させることが可能となり、更なる消費電力の削減を図ることができる。
【0068】
図6は本発明によるメディア・プロセッサ用アドレス生成回路の第3の実施例を示す図である。図6には、アドレス用レジスタ11の部分と、アドレス更新回路12に対応する部分のみを示し、図示されない実効アドレス計算回路13の構成は第1或いは第2の実施例と同一である。
【0069】
まずMDSが1の場合、即ちサーキュラアドレッシング命令を実行する時の動作について説明する。
【0070】
セレクト信号SEL1で選択されたインデックスXn’が、アドレス用レジスタ11から供給される。また増減値△は、レジスタ(FF)34を経由してstepとして供給される。信号MDSは1であるので、増減値stepの符号ビットMSBは、AND回路501からM1として出力される。
【0071】
更新値Δ≧0の場合(更新方向が正)、M1は0である。反転制御502では、ブロックサイズMDの符号を反転し、MBとして出力する。TDSは0であるので、セレクタ509はMBを選択し、MTとして出力する。キャリー入力生成回路504は、0であるM1を反転して、1である信号CIを出力する。TDS=0に応答して、セレクタ508はCIを選択し、32bit加算器へキャリー入力として供給する。データマスク503は、MDSの1、TDSの0、増減値stepのMSBの0に応答して、32ビット加算器500の出力Add30(Xn+Δ)をそのままMAとして出力する。32bit加算器505は、(Xn+Δ−MD)を計算する。
【0072】
セレクタ生成回路506は、MDSの1、TDSの0、及びM1の0に応答して、32bit加算器505の出力Add31の符号ビットMSBを参照して、選択信号Sel31を生成する。Add31の符号ビットMSBが1の場合にSel31は1となり、選択回路507は、32bit加算器500の出力Add30を選択する。Add31の符号ビットMSBが0の場合にSel31は0となり、選択回路507は、32bit加算器505の出力Add31を選択する。選択回路507の出力をアドレス用レジスタ11に送り、指定したアドレスレジスタの更新を行う。
【0073】
更新値Δ<0の場合(更新方向が負)、M1は1である。反転制御502は、ブロックサイズMDを、符号を反転することなくそのままMBとして出力する。TDSは0であるので、セレクタ509はMBを選択し、MTとして出力する。キャリー入力生成回路504は、1であるM1を反転して、0であるCIを生成する。セレクタ508はCIを選択し、32bit加算器にキャリー入力として供給する。データマスク503は、MDSの1、TDSの0、増減値stepのMSBの1に応答して、32ビット加算器500の出力Add30(Xn+Δ)が負の場合、Add30をそのままMAとして出力する。32bit加算器505は、MAとMTとに基づいて、(Xn+Δ+MD)を計算する。なお32ビット加算器500の出力Add30(Xn+Δ)が正の場合には、データマスク503は、MAとして0を出力する。データマスク503としてラッチを使用する場合には、前にラッチした値を出力するように構成してよい。
【0074】
このように、更新方向が負で且つ範囲外の場合には32bit加算器505を動作させるが、その以外の場合には、32bit加算器505を動作させない。これにより、消費電力を減らすことができる。
【0075】
セレクタ生成回路506は、MDSの1、TDSの0、及びM1の1に応答して、32bit加算器500の出力Add30の符号ビットMSBを参照して、選択信号Sel31を生成する。Add30の符号ビットMSBが1の場合にSel31は0となり、選択回路507は、32bit加算器505の出力Add31を選択する。Add30の符号ビットMSBが0の場合にSel31は1となり、選択回路507は、32bit加算器500の出力Add30を選択する。選択回路507の出力をアドレス用レジスタ11に送り、指定したアドレスレジスタの更新を行う。
【0076】
以下に、信号TDSが1で信号MDSが0の場合、即ち2次元アドレッシング命令を実行する時の動作を示す。
【0077】
ゼロ検出回路22は、カウンタ21のカウント値Counterが0の場合1を出力し、0でない場合には0を出力する。ゼロ検出回路22の出力が0の場合、データマスク503の出力MAは、0の値(ラッチの場合は直前のラッチ値)に固定される。TDSは1であるので、セレクタ509はTDを選択し、固定値MTとして出力する。またセレクタ508は0を選択し、その出力は0に固定される。このように32bit加算器505において、入力信号MA及びMT及びキャリー入力に変化が無いので、消費電力を低減することが出来る。ゼロ検出回路22の出力が0、TDSが1、MDSが0である場合、セレクタ信号生成回路506の出力Sel31は1になる。これに応じて、選択回路507は、32bit加算器500の出力Add30(Xn+△)を選択する。
【0078】
ゼロ検出回路22の出力が1の場合、TDSは1であるので、AND回路511の出力は1となる。これに応じて、データマスク503は、32ビット加算器500の出力Add30を、そのままMAとして出力する。セレクタ509は、TDを選択し、MTとして出力する。セレクタ508は0を選択し、32bit加算器にキャリー入力として供給する。32bit加算器505は、MT及びMAに基づいて、(Xn+Δ+TD)を計算する。セレクタ生成回路506では、TDSが1、MDSが0、ゼロ検出回路22の出力が1である場合に、Sel31が0になり、32bit加算器505の出力Add31が選択される。
【0079】
MDSとTDSの何れもが0の場合、つまりサーキュラアドレッシング命令と2次元アドレッシング命令の何れも実行しない場合、即ち通常のポストアドレス更新、ビットリバース、及びアドレスレジスタ演算の場合、データマスク回路503の出力MAが0の値(或いは直前のラッチ値)に固定され、反転制御502は固定値MBを出力し、またCIが固定値である。従って、32bit加算器305において、入力信号MA及びMTには変化が無くなり、消費電力を低減することが出来る。
【0080】
上述のように、第3の実施例においては、サーキュラアドレッシングを使う命令があっても、サーキュラ更新値を選択していない時、サーキュラ更新回路を動作させない。従って、非常に低消費電力のアプリケーションに適した構成を提供することが出来る。
【0081】
図7は本発明によるメディア・プロセッサ用アドレス生成回路の第4の実施例を示す図である。図7には、アドレス用レジスタ11の部分と、アドレス更新回路12に対応する部分のみを示し、図示されない実効アドレス計算回路13の構成は第1或いは第2の実施例と同一である。
【0082】
まずMDSが1の場合、即ちサーキュラアドレッシング命令を実行する時の動作について説明する。
【0083】
セレクト信号SEL1で選択されたインデックスXn’が、アドレス用レジスタ11から供給される。また増減値△は、レジスタ(FF)34を介してセレクタ510に供給される。TDSが0であるのでAND回路509の出力は0であり、セレクタ510は、増減値△を選択してstepとして供給する。信号MDSは1であるので、増減値stepの符号ビットMSBは、AND回路501からM1として出力される。
【0084】
更新値Δ≧0の場合(更新方向が正)、M1は0である。反転制御502では、ブロックサイズMDの符号を反転し、MBとして出力する。キャリー入力生成回路504は、0であるM1を反転して1である信号CIを生成し、32bit加算器へキャリー入力として供給する。データマスク503は、MDSの1及び増減値stepのMSBの0に応答して、32ビット加算器500の出力Add30(Xn+Δ)をそのままMAとして出力する。32bit加算器505は、(Xn+Δ−MD)を計算する。
【0085】
セレクタ生成回路506は、MDSの1及びM1の0に応答して、32bit加算器505の出力Add31の符号ビットMSBを参照して、選択信号Sel31を生成する。Add31の符号ビットMSBが1の場合にSel31は1となり、選択回路507は、32bit加算器500の出力Add30を選択する。Add31の符号ビットMSBが0の場合にSel31は0となり、選択回路507は、32bit加算器505の出力Add31を選択する。選択回路507の出力をアドレス用レジスタ11に送り、指定したアドレスレジスタの更新を行う。
【0086】
更新値Δ<0の場合(更新方向が負)、M1は1である。反転制御502は、ブロックサイズMDを、符号を反転することなくそのままMBとして出力する。キャリー入力生成回路504は、1であるM1を反転して0であるCIを生成し、32bit加算器にキャリー入力として供給する。データマスク503は、MDSの1及び増減値stepのMSBの1に応答して、32ビット加算器500の出力Add30(Xn+Δ)が負の場合、Add30をそのままMAとして出力する。32bit加算器505は、MAとMBとに基づいて、(Xn+Δ+MD)を計算する。なお32ビット加算器500の出力Add30(Xn+Δ)が正の場合には、データマスク503は、MAとして0を出力する。データマスク503としてラッチを使用する場合には、前にラッチした値を出力するように構成してよい。
【0087】
このように、更新方向が負で且つ範囲外の場合には32bit加算器505を動作させるが、その以外の場合には、32bit加算器505を動作させない。これにより、消費電力を減らすことができる。
【0088】
セレクタ生成回路506は、MDSの1及びM1の1に応答して、32bit加算器500の出力Add30の符号ビットMSBを参照して、選択信号Sel31を生成する。Add30の符号ビットMSBが1の場合にSel31は0となり、選択回路507は、32bit加算器505の出力Add31を選択する。Add30の符号ビットMSBが0の場合にSel31は1となり、選択回路507は、32bit加算器500の出力Add30を選択する。選択回路507の出力をアドレス用レジスタ11に送り、指定したアドレスレジスタの更新を行う。
【0089】
以下に、信号TDSが1で信号MDSが0の場合、即ち2次元アドレッシング命令を実行する時の動作を示す。この時、32bit加算器505の動作を停止する。
【0090】
ゼロ検出回路22は、カウンタ21のカウント値Counterが0の場合1を出力し、0でない場合には0を出力する。ゼロ検出回路22の出力が0の場合、AND回路509の出力は0となり、セレクタ510は△を選択して出力する。MDS=0に応答して、セレクタ信号生成回路506の出力Sel31は1となり、選択回路507は、32bit加算器500の出力Add30を選択する(Xn+△)。
【0091】
ゼロ検出回路22の出力が1の場合、AND回路509の出力は1となり、セレクタ510はTDを選択して出力する。MDS=0に応答して、セレクタ信号生成回路506の出力Sel31は1となり、選択回路507は、32bit加算器500の出力Add30を選択する(Xn+TD)。
【0092】
上述のように、第4の実施例においては、2次元アドレッシングの場合に32ビット加算器505を利用しないので、消費電力を更に削減することが出来る。なお32ビット加算器505は、サーキュラアドレッシング時の更新のための専用回路である。
【0093】
図8は、本発明によるメディア・プロセッサの概略構成を示す図である。
【0094】
本発明によるメディア・プロセッサ70は、シーケンサ制御部71、データ演算部72、メモリバスインターフェース部73、及びアドレス生成回路部74を含む。シーケンサ制御部71は、プログラムの命令をフェッチするプログラムアドレスを生成し、外部に接続されるメモリ80からメモリバスインターフェース部73を介してプログラムを読み込む。シーケンサ制御部71は、読み込んだプログラムの命令をデコードし、デコード結果に応じて制御信号を生成することで、データ演算部72、メモリバスインターフェース部73、及びアドレス生成回路部74の動作を制御する。ここでアドレス生成回路部74は、本発明によるアドレス生成回路であり、第1乃至第4の実施例の何れの構成であってもよい。
【0095】
アドレス生成回路部74は、シーケンサ制御部71の制御に基づいて動作し、メモリ80をアクセスするアドレスを生成する。例えば、アドレス生成回路部74が生成したアドレスにアクセスすることで、メモリ80のデータを読み込んで、データ演算部72でデータ処理を実行する。またアドレス生成回路部74が生成したアドレスにアクセスすることで、データ演算部72でデータ処理を実行したデータをメモリ80に書き込む。
【0096】
ここで本発明によるアドレス生成回路10を2つ設けて並列に動作させ、図8に示されるように、2つの実効アドレスを同時に生成するように構成してよい。また並列に設けられるアドレス生成回路10の数は、2個以上であってもよい。
【0097】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【0098】
【発明の効果】
以上説明したように本発明によれば、メディア・プロセッサのアドレス生成回路において、サーキュラアドレッシング機能、2次元アドレッシング機能、ビットリバースアドレッシング機能、ポストアドレス更新機能及びアドレスレジスタ演算機能の回路を共用化することにより、アドレス生成回路の回路規模を縮小することが出来る。
【0099】
またプログラムの一部がビットリバースアドレッシングを使用しない時にはビットリバース生成回路を停止させ、サーキュラアドレッシング機能と2次元アドレッシング機能を使用しない時にはサーキュラ更新回路と2次元更新回路及びサーキュラ生成回路の動作を停止させ、更に、サーキュラ更新値と2次元更新値を選択していない時にはサーキュラ更新回路と2次元更新回路の動作を停止させるように構成することにより、アドレス生成回路の低消費電力化を実現することが出来る。
【図面の簡単な説明】
【図1】本発明によるアドレス生成回路の第1の実施例の概略構成図である。
【図2】ビットリバース動作の詳細を説明するための図である。
【図3】本発明によるアドレス生成回路の第1の実施例について詳細な構成を示す図である。
【図4】図3のアドレス生成回路における実効アドレス計算回路部分の変形例を示す図である。
【図5】本発明によるアドレス生成回路の第2の実施例を示す図である。
【図6】本発明によるメディア・プロセッサ用アドレス生成回路の第3の実施例を示す図である。
【図7】本発明によるメディア・プロセッサ用アドレス生成回路の第4の実施例を示す図である。
【図8】本発明によるメディア・プロセッサの概略構成を示す図である。
【符号の説明】
10 アドレス生成回路
11 アドレス用レジスタ
12 アドレス更新回路
13 実効アドレス計算回路

Claims (9)

  1. アドレスレジスタと、
    該アドレスレジスタのアドレス値を更新するアドレス更新回路と、
    該アドレスレジスタのアドレス値からメモリをアクセスする実効アドレスを生成する実効アドレス計算回路
    を含み、該アドレス更新回路はサーキュラアドレッシング更新及び2次元アドレッシング更新更新処理が共用する単一の演算回路を少なくとも1つ含むことを特徴とするプロセッサ。
  2. 該アドレス更新回路は、該演算回路である第1の演算回路に加え、通常のアドレス演算による更新を実行する第2の演算回路を更に含み、該第1の演算回路は2次元アドレッシングにおいて現在のアドレス値にオフセット分を加える演算を実行し、該第2の演算回路が該2次元アドレッシングにおいて現在のアドレス値に増減分を加える演算を実行する間は該第1の演算回路は動作しないことを特徴とする請求項1記載のプロセッサ。
  3. 該演算回路は、ビットリバースアドレッシングを実行中には動作しないことを特徴とする請求項1記載のプロセッサ。
  4. アドレスレジスタと、
    該アドレスレジスタのアドレス値を更新するアドレス更新回路と、
    該アドレスレジスタのアドレス値からメモリをアクセスする実効アドレスを生成する実効アドレス計算回路
    を含み、該アドレス更新回路はサーキュラアドレッシング更新、2次元アドレッシング更新、及び通常のアドレス演算による更新のうち少なくとも2つの更新処理が共用する単一の演算回路を少なくとも1つ含み、該演算回路は該2次元アドレッシング更新及び該通常のアドレス演算による更新により共用され、該アドレス更新回路は、該演算回路である第1の演算回路に加え、該サーキュラアドレッシング更新を専用に実行する第2の演算回路を更に含み、該第2の演算回路は、該サーキュラアドレッシング以外のアドレッシング中には動作しないことを特徴とするプロセッサ。
  5. サーキュラアドレッシングにおいて現在のアドレス値からブロックサイズ分シフトさせる際には該演算回路を動作させ、該サーキュラアドレッシングにおいて現在のアドレス値から増減分を変化させる際には該演算回路の動作を停止して別の演算回路を使用することを特徴とする請求項1記載のプロセッサ。
  6. アドレスレジスタと、
    該アドレスレジスタのアドレス値を更新するアドレス更新回路と、
    該アドレスレジスタのアドレス値からメモリをアクセスする実効アドレスを生成する実効アドレス計算回路
    を含み、該アドレス更新回路はサーキュラアドレッシング更新、2次元アドレッシング更新、及び通常のアドレス演算による更新のうち少なくとも2つの更新処理が共用する単一の演算回路を少なくとも1つ含み、該実効アドレス計算回路は、ビットリバースアドレッシングとサーキュラアドレッシングとが共用する単一の演算回路を含むことを特徴とするプロセッサ。
  7. 該ビットリバースアドレッシング及び該サーキュラアドレッシング以外のアドレッシングの場合には該実効アドレス計算回路の該演算回路は動作しないことを特徴とする請求項6記載のプロセッサ。
  8. 該実効アドレス計算回路の該演算回路は、該アドレスレジスタのアドレス値と該アドレスレジスタのアドレス値のビットリバース値との何れか一方をインデックスとしてベースポインタに加えることで該ビットリバースアドレッシング及び該サーキュラアドレッシングにおける該実効アドレスを生成することを特徴とする請求項6記載のプロセッサ。
  9. 該実効アドレス計算回路は該アドレスレジスタのアドレス値をビットリバースするビットリバース回路を更に含み、該ビットリバースアドレッシング以外のアドレッ シングの場合には該ビットリバース回路は動作しないことを特徴とする請求項1記載のプロセッサ。
JP2001328227A 2001-10-25 2001-10-25 プロセッサ Expired - Fee Related JP3745673B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001328227A JP3745673B2 (ja) 2001-10-25 2001-10-25 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001328227A JP3745673B2 (ja) 2001-10-25 2001-10-25 プロセッサ

Publications (2)

Publication Number Publication Date
JP2003131868A JP2003131868A (ja) 2003-05-09
JP3745673B2 true JP3745673B2 (ja) 2006-02-15

Family

ID=19144324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001328227A Expired - Fee Related JP3745673B2 (ja) 2001-10-25 2001-10-25 プロセッサ

Country Status (1)

Country Link
JP (1) JP3745673B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5311008B2 (ja) * 2008-08-11 2013-10-09 セイコーエプソン株式会社 信号処理プロセッサ及び半導体装置
JP5327432B2 (ja) * 2008-08-11 2013-10-30 セイコーエプソン株式会社 信号処理プロセッサ及び半導体装置
CN102163141B (zh) * 2011-03-22 2013-11-06 上海交通大学 实现数字信号处理器的寻址模块

Also Published As

Publication number Publication date
JP2003131868A (ja) 2003-05-09

Similar Documents

Publication Publication Date Title
US6327605B2 (en) Data processor and data processing system
US20060250397A1 (en) Graphics processing unit and graphics processing system
KR20080027454A (ko) 명령어에 응답하여 라운딩 연산을 수행하는 방법, 장치, 시스템 및 머신-판독가능 매체
JP2006146644A (ja) プロセッサ
CN117132450B (zh) 一种可实现数据共享的计算装置和图形处理器
JP3745673B2 (ja) プロセッサ
KR100834412B1 (ko) 모바일 멀티미디어 연산의 효율적인 처리를 위한 병렬 프로세서
KR20180055447A (ko) 데이터 처리 방법 및 장치
JPH07295787A (ja) 演算処理装置
JP3305406B2 (ja) プログラム制御のプロセッサ
US7308560B2 (en) Processing unit
JP2807170B2 (ja) 演算装置
JP2001216136A (ja) 加算回路およびプロセッサ
JP4339468B2 (ja) 消費電力を低減したアドレス生成回路
JP5266651B2 (ja) ローカル分岐履歴を用いた分岐予測装置及び分岐予測方法
JP3928730B2 (ja) 半導体装置、マイクロコンピュータ及び電子機器
JPWO2002029546A1 (ja) 演算器及びそれを用いた電子回路装置
US10157164B2 (en) Hierarchical synthesis of computer machine instructions
JP2001043084A (ja) プロセッサ装置
JP3441847B2 (ja) データメモリを有するプロセッサ
JP2003084972A (ja) 条件付減算命令の実行速度を改善し、命令が正しく実行されるオペランドの範囲を拡大する方法
JP2520484B2 (ja) 除算回路
JP2862969B2 (ja) プロセッサ
JP2013210837A (ja) 演算回路及び演算方法
JP2835366B2 (ja) 高速フーリエ変換用アドレス情報発生装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051021

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051117

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091202

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101202

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111202

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111202

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121202

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121202

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131202

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees