JP3556252B2 - オフセット合計を計算するデータ処理システムとその方法 - Google Patents

オフセット合計を計算するデータ処理システムとその方法 Download PDF

Info

Publication number
JP3556252B2
JP3556252B2 JP28880693A JP28880693A JP3556252B2 JP 3556252 B2 JP3556252 B2 JP 3556252B2 JP 28880693 A JP28880693 A JP 28880693A JP 28880693 A JP28880693 A JP 28880693A JP 3556252 B2 JP3556252 B2 JP 3556252B2
Authority
JP
Japan
Prior art keywords
offset
value
instruction
sign
address
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 - Lifetime
Application number
JP28880693A
Other languages
English (en)
Other versions
JPH06222982A (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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH06222982A publication Critical patent/JPH06222982A/ja
Application granted granted Critical
Publication of JP3556252B2 publication Critical patent/JP3556252B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • 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/3832Less usual number representations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Description

【0001】
【産業上の利用分野】
本発明は一般にデータ処理システムに関し、具体的にはデータ処理システムにおけるオフセットの計算に関する。
【0002】
【従来の技術】
マイクロコントローラおよびマイクロプロセッサの動作中、よりフレキシビリティを与えるために多種多様なアドレス指定方式が開発されている。たとえばインデックス・アドレッシングは、プログラマが一つのテーブルまたはアレイの各要素にもっと簡単にアクセスできるようにするために開発された。一般にインデックス・アドレッシングでは、データ処理装置のCPUは、一つの命令と共に供給されるオフセットにインデックス・レジスタの内容を加算して有効アドレスを形成する。ある種の実施形態では、インデックス・レジスタ以外にポインタ・レジスタを使用してもよい。
【0003】
モトローラ社MC6809マイクロプロセッサでは、インデックス・アドレッシングは、定オフセット・モードを含めるよう拡張された。MC6809マイクロプロセッサはテキサス州オースティンのモトローラ社が市販している。定オフセット動作モードでは、2の補数形式のオフセットが複数のポインタ・レジスタの中の一つの内容に加算されて有効アドレスを形成する。5ビット(−16から+15),8ビット(−128から+127)および16ビット(−32768から+32767)のオフセット・サイズが使用できる。またノー・オフセットも指定できる。5ビットのオフセット値は一つのポストバイトの中に入れられている。ポストバイトは、オペランドの後に含まれているバイトで、一般には5ビット・オフセット値の他に、実行する演算の種類とポインタ・レジスタを示す符号化情報を含んでいる。実行する演算の種類およびポインタ・レジスタもこのポストバイトの中で指定しなければならないので、オフセット値は通常、最大値が5ビットに限定されている。8ビットおよび16ビットのオフセット値は、ポストバイトのすぐ後のバイトの中に入れられている。
【0004】
アキュムレータ・オフセット動作モードも、マイクロコントローラおよびマイクロプロセッサで実行できる。アキュムレータ・オフセット動作モードでは、ポインタ・レジスタの内容が、アキュムレータの中に入っているオフセット値に加算されて、有効アドレスを形成する。
【0005】
マイクロプロセッサで一般に使用できるインデックス・アドレッシング動作モードは、特にそのアドレスが一つのテーブルもしくは配列を形成する場合に、アドレスへのアクセスがフレキシブルに行える方法を提供する。しかしながら符号付きオフセットの場合には、オフセット範囲はゼロを中心にして対称になっていない。前述のように、オフセットは−16から+15,−128から+127,または−32768から+32767の範囲をとる。このオフセットには符号が付いているので、オフセット範囲の正の限界と負の限界は符号ビットを反映しなければならない。このため+15の値は2進形式01111をとる。2進値100000は、最上位ビットがオフセットの符号を反映しなければならないので、10進値の+16ではなく、10進値の−16を表している。
【0006】
したがって、マイクロプロセッサのユーザが符号付きのインデックス・アドレッシングを使用する場合、オフセット範囲の正の限界は2(n−1) −1であり、ここでnはオフセット値のビット数を指し、これは一般にはあまり使用されない値である。大抵の用途では、8もしくは16など2の累乗のバイト数の増分(increment) が必要である。そのためユーザが一つのテーブルにおいて16バイト刻みで増分しなければならない場合には、5ビットのオフセットは正の最大範囲が15バイトとなるので、16のオフセットを提供するには8ビットのオフセットを使用しなければならない。前述のように、8ビットのオフセットは一般に、符号化命令の中でさらに1バイトを必要とする。そのため16バイトの正のオフセット値を指定するには、さらに1バイトのプログラミング空間を使用しなければならない。多くのマイクロコントローラおよびマイクロプロセッサの用途では、内部プログラミング・メモリの量が制限されており、プログラミング空間の各バイトは非常に貴重である。
【0007】
【発明が解決しようとする課題】
定オフセット動作モードまたはアキュムレータ・オフセット動作モードを用いて有効アドレスを計算する他に、2の補数のオフセットは、ポインタ・レジスタの増分もしくは減分(decrement) を自動的に行える。自動的に増分(オートインクリメント)を行う場合には、ポインタ・レジスタの内容が1もしくは2ずつ増分される。自動的に減分(オートデクリメント)を行う場合には、ポインタ・レジスタの内容は通常1もしくは2ずつ減分される。オートインクリメントやオートデクリメントは、情報を格納するテーブルにアクセスするのに有用である。しかしながらポインタ・レジスタ内の値は1もしくは2バイトずつしか変更できない。そのためオートインクリメント動作およびオートデクリメント動作は一般に、次に必要な一片の情報が現在、演算の実行に使用されるポインタ・レジスタ内の1もしくは2バイトのアドレス内にあるような限られた状況でのみ有用である。
【0008】
【課題を解決するための手段】
本発明は上記の必要性を満足する。したがってオフセット合計を計算するデータ処理システムの一形態が提供される。このデータ処理システムは、オフセット値を有する命令を受け取るインタフェース回路を含んでいる。この命令は、実行する演算を指定するための第1の部分、および符号部分と絶対値部分の両方を有するオフセット値を指定するための第2の部分を有する。インタフェース回路はまた第1アドレス値を受け取る。命令デコード回路もデータ処理システム内に含まれていて、命令をデコードして複数の制御信号を与える。命令デコード回路は、命令を受け取るために入力回路に接続されている。命令の実行中に第1アドレス値を格納するレジスタは、第1アドレス値を受け取るためにインタフェース回路に接続されている。論理演算回路は、第1アドレス値の一部分を受け取るためにレジスタに接続されている。論理演算回路は、オフセット値を受けとるために入力回路に接続されており、複数の制御信号の一部分を受け取るために命令デコード回路に接続されている。論理演算回路は、オフセット符号部分を反転して、反転オフセット符号値を提供する。論理演算回路は、第1アドレス値のそれぞれに、オフセット値の符号部分および絶対値部分、ならびに反転オフセット符号値を加算して、オフセット合計を生成する。このオフセット合計は第1アドレス値の対称的な範囲内にはあるが、第1アドレス値とは等しくない。第2の形態では、オフセット合計を計算する方法が提供される。第1の段階では、オフセット値を有する命令を受け取る。この命令は、実行する演算を指定する第1部分、および符号部分と絶対値部分の両方を有するオフセット値を指定するための第2部分を有する。第1アドレス値も受け取る。命令を受け取ったことに応答して、この命令がデコードされて複数の制御信号を与える。第1アドレス値は、命令の実行中に格納される。オフセット値の符号部分が反転されて、反転オフセット符号値を与える。第1アドレス値のそれぞれ、オフセット値の符号部分と絶対値部分、および反転オフセット符号値が加算されて、オフセット合計を生成する。オフセット合計は第1アドレス値の対称的な範囲内にあるが、第1アドレス値とは等しくない。
【0009】
上記およびその他の特徴ならびに利点は、添付図面と合わせて以下の詳細な説明からより明確に理解されよう。注意すべき重要なことは、図面は本発明の唯一の形態を表すことを意図していないことである。
【0010】
【実施例】
本発明は、一般に使用されるバイト境界に基づき、インデックス・アドレッシング,オートインクリメントおよびオートデクリメントを実行する回路とその方法を提供する。一般に使用される境界は、8,16,128など2の累乗である。またオフセット範囲は、可能な限り小さいビット数で符号化されており、正と負の両方の限界を有する。本発明のこの実現のユーザは、一つのテーブルもしくはアレイの中を正と負の両方向に2の累乗サイズの境界に基づき進むことができる。たとえば5ビットのオフセットでは、ユーザは、一つのテーブルもしくはアレイの中を、前方もしくは後方に一度に16バイトずつ進むことができる。5ビットは、ポストバイト内のオフセットを符号化するのに使用され、プログラミング空間を節約できる。また8ビットのオフセットは、−128から+128バイトのオフセット範囲を提供でき、16ビットのオフセットは、−32768から+32768バイトの範囲を提供できる。どちらの場合も、メモリ・プログラミング空間が節約される。しかしながらこの節約は小さなオフセット値のときに最も顕著になる。
【0011】
本発明は、アドレス計算に使用される演算ハードウェアを修正変更することによって、符号付きオフセットを用いて、ゼロを中心に対称なアドレス指定範囲を達成する。その結果、−2(n−1) から+2(n−1) のアドレス指定範囲が得られ、ここでnはオフセット値のビット数を指す。しかしながら本発明のアドレス計算ハードウェアは、基準アドレス値からゼロのオフセットを提供できない。ほとんどのデータ処理装置は、基準アドレス値からノーオフセット・アドレスを提供できるような代替的なアドレス計算を提供している。そのため本発明は、このようなプロセッサにおいて機能性を損なうことなく使用できる。
【0012】
本発明の実現に関する以下の説明では、「アサート」「ニゲート」という語は、論理信号「アクティブ・ハイ」「アクティブ・ロー」と混ぜて使用する場合に混乱を割けるために使用する。「アサート」は論理信号もしくはレジスタ・ビットを能動状態または論理真の状態と解釈することを指すのに用いる。「ニゲート」は、論理信号もしくはレジスタ・ビットを非能動状態もしくは論理偽の状態と解釈することを指すのに用いる。
【0013】
本発明の一つの実現および前述した動作モードは、MC68HC11マイクロコントローラの修正変更形態で実現される。MC68HC11は、16ビット・アドレスおよび記憶レジスタを含む8ビットのマイクロコントローラであり、テキサス州オースティンのモトローラ社が市販している。この実現をより詳細に示したのが図1である。図1はデータ処理システム10を示しており、このシステムでは前述したインデックス・アドレッシング,オートインクリメント動作,オートデクリメント動作を実現できる。データ処理システム10は一般に中央処理装置(CPU)12,発振器24,電源回路26,タイミング回路28,外部バス・インタフェース30,および内部メモリ32を含む。CPU12は一般に、実行装置14,バス制御論理回路16,命令デコード論理回路18,制御装置20,およびシーケンサ22を有する。
【0014】
演算中、「Osc1」信号が、水晶など外部ソースを介して発振器24に与えられる。水晶はOsc1信号とOsc2信号の間に接続されて水晶を発振可能にする。Osc1は「クロック」信号をデータ処理システム10の残りの部分に与える。水晶発振器の動作はデータ処理技術では周知のものであり、当業者には自明であろう。
【0015】
電源回路26は外部電源から「Vdd」信号と「Vss」信号の両方を受け取る。Vdd信号は正の電圧を与え、Vss信号は基準電圧もしくは大地電圧を与える。Vdd信号およびVss信号は、データ処理システム10の残りの各構成要素に与えられる。これらの信号の経路設定はデータ処理技術では周知のものであり、当業者には自明であろう。
【0016】
タイミング回路28はクロック信号を受信し、ついでタイミング制御バス38を介してCPU12,外部バス・インタフェース30,および内部メモリ32のそれぞれに然るべきタイミング信号を与える。
【0017】
外部バス・インタフェース30から外部アドレス・バス35へと、複数のアドレス値が与えられる。同様に複数のデータ値は、外部バス・インタフェース30によって外部データ・バス33を介して伝達される。外部バス・インタフェース30は、外部ユーザとデータ処理システム10との間でのアドレス値とデータ値の受信および伝送を制御する。外部バス・インタフェース30は複数のアドレス値およびデータ値を、それぞれ内部アドレス・バス36および内部データ・バス34を介してデータ処理システム10の残りの部分に伝達する。
【0018】
内部メモリ32は、データ処理システム10が正しく動作するために必要な情報を格納する働きをする。また、内部アドレス・バス36および内部データ・バス34を介して与えられるユーザ・プログラムで指定された場合には、他のデータ値を格納できる。
【0019】
CPU12はデータ処理システム10の動作中、複数の命令を実行する。データ処理システム10では多くの形式の命令を実行できるが、ここでは、インデックス・アドレッシング,オートインクリメント動作およびオートデクリメント動作を中心に考察する。内部アドレス・バス36および内部データ・バス34は、実行装置14と、データ処理システム10の残りの部分との間で情報を伝達する。バス制御論理回路16が複数の命令を取り込む。ついで各命令は命令デコード論理回路18によってデコードされ、制御装置20およびシーケンサ22に与えられる。制御装置20およびシーケンサ22は複数の命令の実行順序を維持して、データ処理システム10の計算機能を最大限有効に利用する。また制御装置20はMicro−ROMメモリ(図示せず)を含んでおり、これはMicro−ROM制御バス65を介して、実行装置14,バス制御論理回路16,命令デコード論理回路18のそれぞれに制御情報を与える。制御情報は、命令を正しく実行するために必要である。
【0020】
実行装置14をより詳細に示したのが図2である。実行装置14は一般に、データ・バッファ40,A入力制御回路48,A入力マルチプレクサ50,論理演算装置(ALU)52,B入力制御回路54,B入力マルチプレクサ56,スタック・ポインタ58,およびインデックス・レジスタ60を含む。スタック・ポインタ58およびインデックス・レジスタ60のほかに、実行装置14内で他の記憶レジスタを実現できる。たとえば条件付きコード・レジスタもしくはスタック・ポインタも含んでもよい。上記記憶レジスタの実現および用途は当業者には周知のものであり、当業者には自明であろう。
【0021】
外部情報バス41はアドレス情報およびデータ情報をデータ・バッファ40に与える。外部情報バス41は内部アドレス・バス36および内部データ・バス34のそれぞれから、アドレス情報およびデータ情報を受け取る。データ・バッファ40は外部情報バス41を介して転送された値を、情報バスA66および情報バスB64を介して、実行装置14の残りの部分に与える。ここでは詳細に示さないが、情報バスA66および情報バスB64は共に16ビット幅である。
【0022】
スタック・ポインタ58の第1入力および第2入力はそれぞれ情報バスA66および情報バスB64に双方向に結合されている。同様にインデックス・レジスタ60の第1入力および第2入力はそれぞれ情報バスA66および情報バスB64に双方向に結合されている。スタック・ポインタおよび条件付きコード・レジスタなどの付加レジスタも同様に、情報バスA66および情報バスB64に結合されている。
【0023】
複数の制御信号は、Micro−ROM制御バス65を介してA入力制御論理48およびB入力制御論理54の両方に与えられる。Micro−ROM制御バス65は、制御装置20内のMicro−ROMメモリ(図示せず)が与える情報に応答して、複数の制御信号を与える。Micro−ROMメモリは一般に、複数の命令の中の一つの実行を制御するために必要な情報を与える。
【0024】
A入力制御回路48は、A入力マルチプレクサ50の制御入力に「制御A」信号を与える。情報バスA66は、A入力マルチプレクサ50のデータ入力に接続されている。A入力マルチプレクサ50は、「A入力」と称される出力をALU52の第1入力に与えている。B入力制御回路54はB入力マルチプレクサ56の制御入力に「制御B」信号を与える。情報バスB64は、B入力マルチプレクサ56のデータ入力に接続されている。B入力マルチプレクサ56は「B入力」と称される出力を、ALU52の第2入力に与える。
【0025】
ALU52は各入力を処理して複数の結果を出し、これらの結果は結果バス120を介して転送される。結果バス120は、情報バスB64を介してデータ・バッファ40,スタック・ポインタ58,またはインデックス・レジスタ60に複数の結果を与える。
【0026】
ALU52をより詳細に示したのが図3である。図3に示す本発明の実施例では、ALU52は、オフセット値の計算に必要な演算を実行するように構成されている。これらの演算は、定オフセット・モード動作,オートインクリメント,およびオートデクリメントを含む。ALU52が上記の演算の一つを実行していない場合には、ALU52は、他の演算を実行するのにもっと役立つ別の方法で構成してもよい。通常、マルチプレクサ(図示せず)を使用すると、ALU52は、用途に応じて異なる多様な構成を有することができる。当業者には、ALU52が多様な構成を有することができることは自明であろう。
【0027】
図3で、ALU52は一般に、インバータ98,および第1の複数の加算器回路(100,102,104,106,108)を含んでいる。A入力信号は、それぞれ「A0」「A1」「A2」「A14」「A15」と称される第1の複数ビットを与える。ビットA0は加算器100の第1入力に与えられる。同様にビットA1〜A15はそれぞれ加算器102,加算器104,加算器106,加算器108の第1入力に与える。B入力信号は、それぞれ「B0」「B1」「B2」「B14」「B15」と称される第2の複数ビットを与える。ビットB0は、加算器100の第2入力に与えられる。同様にビットB1〜B15はそれぞれ加算器102,加算器104,加算器106,加算器108の第2入力に与えられる。A15信号はインバータ98の入力に接続されている。図3には詳細に示していないが、A3〜A13およびB3〜B13の各ビットは、第2の複数の加算器(図示せず)の内の一つにそれぞれ与えられる。第2の複数の各加算器(図示せず)は加算器100〜加算器108と同じ働きをしており、そのため同様の構成をとる。
【0028】
「Cin」と称される信号はインバータ98によって出力され、加算器100の第3入力に与えられる。加算器100は「S0」と称される合計信号を出力する。また加算器100は「C1」と称される信号を加算器102の第3入力に与える。加算器102は「S1」と称される合計信号を与える。加算器102はまた「C2」と称される信号を生成し、この信号は加算器104の第3入力に与えられる。加算器104は「S2」と称される合計出力および「C3」と称される信号を与える。C3信号は、次の加算器(図示せず)の第3入力に与えられる。最終的に、複数の加算器(図示せず)によって形成される桁上げチェーン(carrychain) が、「C14」と称される桁上げ信号を、加算器106の第3入力に伝搬する。加算器106は「S14」と称される合計信号および「C15」と称される桁上げ信号を出力する。C15信号は加算器108の第3入力に与えられる。加算器108は「S15」と称される合計信号、および「Cout 」と称される桁上げ信号を出力する。S0からS15の各合計信号は、結果バス120を介して実行装置14の残りの部分に与えられる。図3では詳細に示していないが、前記第2の複数の加算器はそれぞれ合計信号S3〜S13を結果バス120に与える。また第2の複数の加算器はそれぞれ桁上げ信号を複数の加算器の中の次の加算器に与える。第2の複数の加算器(図示せず)はそれぞれ加算器100〜108と同じ働きをするため、同様の構成をとる。
【0029】
インデックス・アドレッシング,オートインクリメント動作,またはオートデクリメント動作の実行中、ユーザはデータ処理システム10に対応する命令を与える。通常、インデックス・アドレッシングを使用する命令はニーモニック形式をとり、この形式は実行する演算の種類を示す演算コード、および当該演算コードによって演算を行う一つもしくは複数のデータ値を示すオペランドの両方を提供する。ここに示す例では、インデックス・アドレッシング・モードの命令は、演算コード,オフセット値,(初期アドレス値を格納する)ポインタ・レジスタを含むフォーマットを有すると想定する。前記フォーマットはデータ処理技術では周知のものであり、ここでは詳細に述べない。
【0030】
オフセットは通常、定オフセット値、またはアキュムレータ内に格納された値である。ポインタ・レジスタはインデックス・レジスタ,スタック・ポインタ,またはプログラム・カウンタ・レジスタとして実現してもよい。データ処理技術では一般に知られている付加的アキュムレータおよびその他のレジスタも、ポインタ・レジスタとして使用してもよい。ポインタ・レジスタの内容は一般に、インデックス・アドレッシング,オートインクリメント動作,またはオートデクリメント動作を実行する前に、データ処理システム10のユーザによってデータ処理システム内に格納される。オートインクリメント動作およびオートデクリメント動作はまた所定の命令フォーマットを有し、このフォーマットはシステムの設計者が決定する。加算もしくは減算するオフセット値は通常、オートインクリメント動作およびオートデクリメント動作のための所定の命令フォーマットで与えられる。
【0031】
前述の通り、オフセット値の計算に必要な演算の実行中、ユーザは外部メモリもしくは内部メモリ32に格納されたソフトウェア・プログラムを介して然るべき命令を与える。データ処理システム10の外部ソースから命令が与えられる場合には、その命令は外部データ・バス33を介して外部バス・インタフェース30に入力される。ついで外部バス・インタフェース30は内部データ・バス34を介してCPU12に命令を与える。内部メモリ32内のソフトウェア・プログラムが命令を与える場合には、命令は内部データ・バス34を介してCPU12に与えられる。CPU12において、実行装置14は、バス制御論理回路16,制御装置20,およびシーケンサ22のそれぞれから受信した制御信号に応答して、命令デコード論理回路18に命令を与える。ついで命令デコード論理回路18は命令をデコードして、命令を正しく実行するために必要な複数の制御信号および情報信号を与える。複数の制御信号および情報信号には、インデックス・アドレッシング,オートインクリメント動作およびオートデクリメント動作に必要な変更された2の補数形式のオフセット値が含まれる。
【0032】
命令を受け取ってデコードし次第、実行装置14は、インデックス・アドレッシング,オートインクリメントまたはオートデクリメントに関連する演算を実行するために必要なステップを開始する。前述のように、データ処理システム10のユーザは初期値を格納する。スタック・ポインタ58およびインデックス・レジスタ60の一つまたは両方の中で、この初期値にオフセット値が加算される。第1の例では、データ処理システム10のユーザは、5ビット幅の符号付き定オフセットを有するインデックス・アドレッシングを用いる命令を与えると想定する。この命令は、初期アドレス値を実行装置14のインデックス・レジスタ60内に格納すること、またこの初期値に加算すべきオフセットの符号化値の両方を指定する。オフセット値は外部情報バス41を介してデータ・バッファ40に与えられる。データ・バッファ40は情報バスA66を介してオフセット値をA入力マルチプレクサ50に与える。
【0033】
ユーザの命令の中で指定される演算の実行中の然るべきポイントにおいて、複数のタイミング信号および制御信号が、Micro−ROM制御バス65を介してA入力制御回路48とB入力制御回路54の両方に与えられる。また複数の制御信号を、スタック・ポインタ58およびインデックス・レジスタ60にそれぞれ与えて、命令実行中の然るべき時間点において、ある値を格納もしくは与えることができる。スタック・ポインタ58およびインデックス・レジスタ60などのレジスタに複数の制御信号を経路設定することは、データ処理技術では周知のことであり、ここでは詳しく述べない。
【0034】
然るべき複数の制御信号を受信次第、インデックス・レジスタ60は初期アドレス値をB入力マルチプレクサ56に与える。Micro−ROM制御バス65を介して複数のタイミング信号および制御信号を受信次第、A入力制御回路48がイネーブルにされて、制御A信号をA入力マルチプレクサ50に与える。同様にB入力制御回路54がイネーブルにされて、制御B信号をB入力マルチプレクサ56に与える。
【0035】
A入力マルチプレクサ50は、制御A信号によってイネーブルにされるとオフセット値をA入力値としてALU52の第1入力に与える。同様にB入力マルチプレクサ56は初期アドレス値をALU52の第2入力に与える。
【0036】
A入力値とB入力値の両方を受け取り次第、加算器100はオフセット値のビット0を初期アドレス値のビット0に加算する。また両方のビット0の合計にCin値を加算して、合計値のビット0と桁上げ値の両方を与える。合計値のビット0はS0と称され、桁上げ値は「C1」と称される。Cin値はオフセット値の符号を反転したものである。Cin値の計算については後で詳しく述べる。ついでオフセット値の各ビットを、初期アドレス値のそれぞれ対応するビットに加算する。オフセット値は5ビット幅しかなく、初期アドレス値は16ビット幅であるので、オフセット値は16ビットに符号拡張される。ついでオフセット値と有効アドレスの合計が結果バス120を介してデータ・バッファ40に与えられる。データ・バッファ40はこの合計を、外部情報バス41を介してCPU12の残りの部分に与える。
【0037】
図3に示すように、正のオフセットがA入力信号を介して与えられる場合には、オフセットの符号はゼロになり、これはオフセットの最下位ビットから最上位ビットまで符号拡張される。そのためゼロがインバータ98に与えられる。ついでインバータ98は1の値を有するCin信号を加算器100に与え、これはA0信号およびB0信号の合計に加算される。同様に負のオフセットが与えられる場合には、インバータ98は加算器100にゼロの値を与え、これはA0信号およびB0信号の合計に加算される。オフセットの符号ビットの反転を加算することによって、オフセット範囲が拡張されて、有効アドレス値を計算する場合に大きなフレキシビリティが得られる。
【0038】
オフセットの符号はCin信号として拡張、反転、使用されて、5ビット幅の定オフセットを使用する場合には16バイトの正のオフセットが可能になる。先行技術の実現では、5ビット値を用いて可能な最大の符号付き正のオフセットは15バイトだった。オフセット値の符号を反転し、反転符号値をオフセットと初期アドレスの合計に加算することによって、オフセットの正の範囲は効果的に1だけ増加する。すなわち、本発明のこの実現では正のオフセットは(n−1)として格納され、ここでnは1から16の正の数を指す。そのため2進値10000は10進値の+1と解釈する。同様に2進値0111は10進値の+8と解釈し、2進値01111は値+16と解釈する。この方法を使用する場合にはゼロのオフセットを不可能である。しかしながらデータ処理システム10のユーザがゼロのオフセットを所望する場合には、この必要性を反映するために演算を異なる方法で符号化してもよい。通常は、ノー・オフセットを指定する命令のために特殊命令コードが存在する。そのため機能性が損なわれることはない。
【0039】
オフセットを必要とする演算の実行を示す第2の例では、データ処理システム10のユーザが、4ビット幅の符号付き定オフセットを有するオートインクリメントを必要とする命令を与えると想定している。この命令は、増分する初期値を実行装置14のスタック・ポインタ58内に格納することと、当該初期値に加算すべきオフセットの符号付き値の両方を指定する。インデックス・アドレッシングに関連した第1の例と同様、オフセット値は外部情報バス41を介してデータ・バッファ40に与えられる。データ・バッファ40は情報バスA66を介してオフセット値をA入力マルチプレクサ50に与える。
【0040】
ユーザの命令の中で指定される、演算実行中の然るべきポイントにおいて、複数のタイミング信号および制御信号がMicro−ROM制御バス65を介してA入力制御回路48およびB入力制御回路54の両方に与えられる。またスタック・ポインタ58が、オートインクリメント命令の実行中の然るべき時間点において初期値を格納もしくは与えられるように、複数の制御信号が与えられる。
【0041】
然るべき複数の制御信号を受信次第、スタック・ポインタ58は初期値をB入力マルチプレクサ56に与える。A入力制御回路48をイネーブルにして、複数のタイミング信号および制御信号に応答して、Micro−ROM制御バス65を介して制御A信号をA入力マルチプレクサ50に与える。A入力マルチプレクサ50はA入力値としてオフセット値をALU52の第1入力に与える。同様にB入力制御回路54をイネーブルにして、制御B信号をB入力マルチプレクサ56に与える。ついでB入力マルチプレクサ56は初期アドレス値をALU52の第2入力に与える。
【0042】
A入力値およびB入力値の両方を受け取り次第、加算器100はオフセット値のビット0を初期アドレス値のビット0に加算する。またオフセット値の符号の反転であるCin値も、オフセット値およびアドレス値のそれぞれのビット0の合計に加算される。インデックス・アドレッシングの例でも分かるように、オフセット値の各ビットは初期アドレス値のそれぞれ対応するビットに加算される。オフセット値は4ビット幅しかなく、初期アドレス値は16ビット幅であるので、オフセット値は16ビットに符号拡張されている。ついでオフセット値および有効アドレスの合計を、後で使用するためにスタック・ポインタ58に格納する。
【0043】
図3に示すように、正のオフセットがA入力信号を介して与えられる場合、オフセットの符号はゼロとなり、これはオフセットの最下位ビットから最上位ビットに符号拡張される。したがってゼロがインバータ98に与えられる。ついでインバータ98は、値1を有するCin信号を加算器100に与えて、これにA0信号およびB0信号の合計が加算される。同様に、負のオフセットが与えられる場合には、インバータ98はゼロの値を加算器100に与えて、これにA0信号およびB0信号の合計が加算される。オフセットの符号ビットの反転を加算することによって、オートインクリメント動作またはオートデクリメント動作を実行する場合により大きなフレキシビリティを可能にするように拡張されている。
【0044】
オフセットの符号に応答してCin信号を計算することによって、4ビット幅の定オフセットを使用する場合に8バイトの正のオフセットが可能になる。前述のように、オフセット値の符号を反転し、反転符号値をオフセットと初期アドレスの合計に加算することによって、オフセットの正の範囲を1だけ効果的に増加する。したがって2進値0111は10進値+8と解釈する。ここでも、この方法を使用する場合はゼロのオフセットは不可能である。
【0045】
ここに記載した第2の例では、プレインクリメントが説明されおり、このプレインクリメントでは、オフセットを、次のデータ処理動作で使用する前に予め、ポインタ・レジスタ(スタック・ポインタ58)内に格納された値に加算する。オートインクリメント動作およびオートデクリメント動作では多くのバリエーションが存在する。たとえば演算がある結果を生成し、この結果をポインタ・レジスタ内に格納した後、その結果がオフセットだけ増分される。これをポストインクリメントという。同様にポインタ・レジスタに格納された値からオフセットを差し引いてもよい。ポインタ・レジスタ内の値を使用して演算のオペランドにアクセスする前に減算が発生する場合には、その演算をプレデクリメントという。ポインタ・レジスタ内の値を使用して演算のオペランドにアクセスした後に減算が発生する場合には、この演算をポスト・デクリメントという。同様に第2の例ではスタック・ポインタ58を使用しているが、前述のポインタ・レジスタのいずれを使用してもよい。たとえばもう一つのインデックス・レジスタまたは汎用レジスタを使用してもよい。
【0046】
ここに記載する本発明の実施例では、5ビット・オフセット値の正の範囲は、より意味のあるオフセット値を使用して情報にアクセスできるように1だけ効果的に増加する。たとえばオフセットを計算するシステムの先行技術の実現では、−16から+15バイトの範囲が命令に対する最大範囲であり、これは符号化のために1ポストバイトのみを必要とした。前述のように、オフセットをポストバイトの中で提供する場合には、ポストバイトを形成するビットの一部分を使用して、ポインタ・レジスタと実行する演算の種類を指定しなければならない。ビットの残りの部分はオフセット値を指定するのに使用できる。一般的であり、またここに記載する本発明の実施例で示しているように、ポストバイト内でオフセット値を指定するには、5ビットのみが使用できる。
【0047】
デジタル処理システム内のデータが15バイト増分で配列されていることは稀である。むしろ、8や16などの2の累乗のバイトが通常使用される。したがって先行技術の実現では、16バイトのオフセットを符号化するのにさらに1バイトのプログラミング空間を必要とする。本発明では、ユーザが貴重なプログラミング空間をさらに1バイト使用せずに、最大16バイトのオフセットまで計算できるようにしている。8ビットのオフセットを使用する場合には、さらに1バイトのプログラミング空間を必要とせずに、+128バイトのオフセットを使用できる。またALU52の構造を改良することによって、本発明の実施例はまた、+32768などより大きな2進の複数バイトのオフセット範囲を拡張するのに使用できる。
【0048】
また先行技術の実現では、オートインクリメント動作およびオートデクリメント動作は、ポインタ・レジスタの内容が、1もしくは2バイト増加もしくは減少できるようにしているだけであった。したがってインクリメント動作もしくはデクリメント動作中の移動範囲が厳しく制限されていた。ここに記載する本発明の実施例では、ポインタ・レジスタ内の一つの値は最高8バイト増加もしくは減少できる。また2の累乗である境界を有するインクリメント動作およびデクリメント動作を可能にすることによって、データはより簡単に、また大量のプログラミング空間を消費せずにアクセスできる。オートインクリメント動作およびオートデクリメント動作の有用な正の範囲が増加する。前述したように、デジタル処理システム内のデータは通常、8や16などの2の累乗のバイトで配列される。そのため先行技術の実現は、データの中をテーブル形式で進行するために便利な実現は可能になっていない。ここに記載する本発明では、一つの命令により8バイトおよび16バイト増分で、何テーブルものデータを読み取ることができ、この命令は迅速に実行されて、過度のプログラミング空間を必要としない。
【0049】
ユーザはゼロのオフセットを指定する機能は持たないが、「ノー・オフセット」演算を実行するために、通常は他の演算コードおよび演算方法もシステム内に存在する。たとえば特殊命令コードは一般にほとんどのデータ処理装置内に存在し、ノー・オフセットを有する演算の実行を開始する。そのため先行技術のシステムでノーオフセット演算を実行するために通常使用されるコードは冗長性があり、データ処理装置の機能性を損なわずにこれを排除できる。このことは、インデックス・アドレッシング,オートインクリメント動作およびオートデクリメント動作に等しく適用できる。
【0050】
ここに記載する本発明の実現は例示目的で提示している。しかしながらここに記載する機能を実行するには、他にも多くの実現が存在し得る。たとえばここではインデックス・アドレッシング,オートインクリメント動作およびオートデクリメント動作のみを詳細に説明しているが、本発明はいくつかの分岐型演算を含むように拡張できる。分岐演算を実行する際に必要なオフセットは、ここに記載する方法および回路、または本発明の別の実施例を用いて計算してもよい。そのため分岐命令のオフセット範囲は、2の累乗である境界を有するように拡張できる。
【0051】
ここでは本発明の原理を説明してきたが、この説明が例示目的だけのためであって、本発明の範囲を限定するものでないことを当業者は明確に理解しよう。したがって添付請求の範囲は、本発明の真正の意図および範囲に属する本発明のすべての変形をカバーすることを意図している。
【図面の簡単な説明】
【図1】本発明に基づくデータ処理システムのブロック図を示す。
【図2】図1の実行装置のブロック図を示す。
【図3】図2の論理演算装置のブロック図を示す。
【符号の説明】
10 データ処理システム
12 CPU
14 実行装置
16 バス制御論理回路
18 命令デコード論理回路
20 制御装置
22 シーケンサ
24 発振器
26 電源回路
28 タイミング回路
30 外部バス・インタフェース
32 内部メモリ
33 外部データ・バス
34 内部データ・バス
36 内部アドレス・バス
38 タイミング制御バス
40 データ・バッファ
41 外部情報バス
48 A入力制御回路
50 A入力マルチプレクサ
52 論理演算装置(ALU)
54 B入力制御回路
56 B入力マルチプレクサ
58 スタック・ポインタ
60 インデックス・レジスタ
65 Micro−ROM制御バス
66 情報バスA
98 インバータ
100,102,104,106,108 加算器
120 結果バス

Claims (2)

  1. オフセット合計を計算するためのデータ処理システム(10)であって:
    オフセット値を有する命令を受け取るためのインタフェース手段(40)であって、前記命令は実行する演算を指定するための第1部分、および符号部分と絶対値部分の両方を有するオフセット値を指定するための第2部分を有し、また前記インタフェース手段は第1アドレス値を受け取る、ところのインタフェース手段;
    前記命令をデコードして、複数の制御信号を与えるための命令デコード(18)手段は、前記命令を受け取るために前記インタフェース手段に結合されている、命令デコード手段;
    前記命令の実行中に前記第1アドレス値を格納するためのレジスタ(60)であって、前記第1アドレス値を受け取るために前記インタフェース手段に結合されているレジスタ;および
    前記第1アドレス値を受け取るために前記レジスタに結合された論理演算回路(52)であって、前記論理演算回路は前記オフセット値を受け取るために前記インタフェース手段に結合されており、前記論理演算回路は前記複数の制御信号の一部分を受け取るために前記命令デコード手段に結合されており、前記論理演算回路は前記オフセット値の前記符号部分を反転して反転オフセット符号値を提供し、前記論理演算回路は前記第1アドレス値,前記オフセット値の前記符号部分と前記絶対値部分,および前記反転オフセット符号値のそれぞれを加算してオフセット合計を生成し、前記オフセット合計は前記第1アドレス値の対称的範囲内にあるが、前記第1アドレス値には等しくない、論理演算回路(52);
    によって構成されることを特徴とするデータ処理システム。
  2. オフセット合計を計算する方法であって:
    オフセット値を有する命令を受け取る段階(18)であって、前記命令は実行する演算を指定する第1部分、および符号部分と絶対値部分の両方を有する前記オフセット値を指定するための第2部分を有する、ところの段階;
    第1アドレス値を受け取る段階(60);
    前記命令を受け取ることに応答して、複数の制御信号を与えるために前記命令をデコードする段階(18);
    前記命令の実行中に前記第1アドレス値を格納する段階(60);
    前記オフセット値の前記符号部分を反転して、反転オフセット符号値を提供する段階(98);および
    前記第1アドレス値,前記オフセット値の前記符号部分と前記絶対値部分,および前記反転オフセット符号値のそれぞれを加算して、オフセット合計を生成する段階であって、前記オフセット合計は前記第1アドレス値の対称的範囲内にあるが、前記第1アドレス値には等しくない段階;
    によって構成されることを特徴とする方法。
JP28880693A 1992-10-27 1993-10-26 オフセット合計を計算するデータ処理システムとその方法 Expired - Lifetime JP3556252B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US967295 1992-10-27
US07/967,295 US5386534A (en) 1992-10-27 1992-10-27 Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value

Publications (2)

Publication Number Publication Date
JPH06222982A JPH06222982A (ja) 1994-08-12
JP3556252B2 true JP3556252B2 (ja) 2004-08-18

Family

ID=25512589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28880693A Expired - Lifetime JP3556252B2 (ja) 1992-10-27 1993-10-26 オフセット合計を計算するデータ処理システムとその方法

Country Status (5)

Country Link
US (1) US5386534A (ja)
EP (1) EP0594969B1 (ja)
JP (1) JP3556252B2 (ja)
KR (1) KR100285142B1 (ja)
DE (1) DE69324992T2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5512958A (en) * 1994-04-29 1996-04-30 Matsushita Electric Corporation Of America System for controlling the effects of noise in television receivers
US5784534A (en) * 1995-03-31 1998-07-21 Motorola, Inc. Circuit and method for representing fuzzy rule weights during a fuzzy logic operation
JPH0934866A (ja) * 1995-07-18 1997-02-07 Nec Corp マイクロコンピュータ
US5819056A (en) * 1995-10-06 1998-10-06 Advanced Micro Devices, Inc. Instruction buffer organization method and system
KR100290869B1 (ko) * 1998-01-14 2001-06-01 구자홍 복조기의주파수오프셋부호판별장치
KR100574929B1 (ko) * 1999-12-29 2006-05-02 삼성전자주식회사 허미션 대칭 데이터를 위한 주소 발생기
GB2375625B (en) * 2001-05-18 2005-08-31 At & T Lab Cambridge Ltd Microprocessors with improved power efficiency
GB2402757B (en) * 2003-06-11 2005-11-02 Advanced Risc Mach Ltd Address offset generation within a data processing system
GB2488980B (en) 2011-03-07 2020-02-19 Advanced Risc Mach Ltd Address generation in a data processing apparatus

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
JPS5734251A (en) * 1980-08-07 1982-02-24 Toshiba Corp Address conversion and generating system
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
US4538223A (en) * 1982-09-29 1985-08-27 Microdata Corporation Computer operand address computation
US4531200A (en) * 1982-12-02 1985-07-23 International Business Machines Corporation Indexed-indirect addressing using prefix codes
JPS6015746A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd デ−タ処理装置
JPS62145326A (ja) * 1985-12-20 1987-06-29 Toshiba Corp マイクロプログラム制御回路
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
US5226129A (en) * 1986-10-30 1993-07-06 Nec Corporation Program counter and indirect address calculation system which concurrently performs updating of a program counter and generation of an effective address
US4819165A (en) * 1987-03-27 1989-04-04 Tandem Computers Incorporated System for performing group relative addressing
US5276819A (en) * 1987-05-01 1994-01-04 Hewlett-Packard Company Horizontal computer having register multiconnect for operand address generation during execution of iterations of a loop of program code
JPH01204138A (ja) * 1988-02-09 1989-08-16 Nec Corp 演算回路
US5155818A (en) * 1988-09-28 1992-10-13 Data General Corporation Unconditional wide branch instruction acceleration
US5150471A (en) * 1989-04-20 1992-09-22 Ncr Corporation Method and apparatus for offset register address accessing
US5204953A (en) * 1989-08-04 1993-04-20 Intel Corporation One clock address pipelining in segmentation unit
US5148538A (en) * 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
JPH03180933A (ja) * 1989-12-08 1991-08-06 Matsushita Electric Ind Co Ltd スタックメモリ
US5283874A (en) * 1991-10-21 1994-02-01 Intel Corporation Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee

Also Published As

Publication number Publication date
EP0594969B1 (en) 1999-05-19
KR100285142B1 (ko) 2001-03-15
EP0594969A1 (en) 1994-05-04
KR940009819A (ko) 1994-05-24
DE69324992D1 (de) 1999-06-24
DE69324992T2 (de) 1999-11-11
JPH06222982A (ja) 1994-08-12
US5386534A (en) 1995-01-31

Similar Documents

Publication Publication Date Title
JP3711422B2 (ja) 情報処理回路
US5901301A (en) Data processor and method of processing data
US5390307A (en) Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation
JP3505266B2 (ja) プログラム実行装置
US6560692B1 (en) Data processing circuit, microcomputer, and electronic equipment
EP0813144A2 (en) Data processing system and method utilising multiple instruction sets
JPH03218523A (ja) データプロセッサ
US6430684B1 (en) Processor circuits, systems, and methods with efficient granularity shift and/or merge instruction(s)
JPH0470662B2 (ja)
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
JPH1049368A (ja) 条件実行命令を有するマイクロプロセッサ
JP3556252B2 (ja) オフセット合計を計算するデータ処理システムとその方法
JP3789583B2 (ja) データ処理装置
US5613143A (en) Programmable controller for high-speed arithmetic operations
US5396610A (en) Register address specifying circuit for simultaneously accessing two registers
JPH1091395A (ja) プロセッサ
JP3570287B2 (ja) マイクロコンピュータ
US5519881A (en) Priority encoder for accessing multiple registers simultaneously and a data processing system which uses it
JP2000039995A (ja) 高性能マイクロプロセッサで使用するためのフレキシブル累算レジスタファイル
EP0265948A2 (en) Data processor capable of immediately calculating branch address in relative address branch
JP2001216136A (ja) 加算回路およびプロセッサ
JPH04195629A (ja) 演算フラグ生成装置
JP4015411B2 (ja) 演算装置及びその演算装置を用いた情報処理装置
EP0650614B1 (en) Digital signal processor architecture
US7580967B2 (en) Processor with maximum and minimum instructions

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040413

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040512

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090521

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20140521

Year of fee payment: 10

EXPY Cancellation because of completion of term