JP3574693B2 - 命令処理プロセッサ - Google Patents
命令処理プロセッサ Download PDFInfo
- Publication number
- JP3574693B2 JP3574693B2 JP10718795A JP10718795A JP3574693B2 JP 3574693 B2 JP3574693 B2 JP 3574693B2 JP 10718795 A JP10718795 A JP 10718795A JP 10718795 A JP10718795 A JP 10718795A JP 3574693 B2 JP3574693 B2 JP 3574693B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- processing
- cache
- processor
- 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
Links
- 238000012545 processing Methods 0.000 claims description 83
- 239000000872 buffer Substances 0.000 claims description 39
- 238000000034 method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 14
- 230000003111 delayed effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【産業上の利用分野】
本発明は、キャッシュメモリを利用する命令処理プロセッサに関し、特に、高速動作中にキャッシュミスによる命令処理の停止を減少させる命令処理プロセッサに適用して有効な技術に関するものである。
【0002】
【従来の技術】
従来、RISCなどの高機能情報処理装置の命令処理プロセッサの性能向上の手段として、キャッシュメモリが使用されている。
【0003】
キャッシュメモリについては、「ヘネシー&パターソン コンピュータ・アーキテクチャ設計・実現・評価の定量的アプローチ、John L.Hennessy、David A.Patterson著、日経BP社」等の多くの文献に記載されており、その概要は次の通りである。
【0004】
キャッシュメモリは、主記憶装置と命令処理プロセッサの間に存在する小容量で高速な記憶装置であり、実行中のプログラムが局所的に参照しているアドレスの内容を保持している。
【0005】
このキャッシュメモリを使用し、実行中のプログラムが、主記憶装置よりも高速な記憶装置であるキャッシュメモリを参照して、メモリへのアクセスを行うことによって、実行中のプログラムのメモリアクセスに要する時間を短縮し、その結果として、命令処理プロセッサの性能を向上させることが可能である。
【0006】
キャッシュメモリを利用する場合、キャッシュメモリの記憶容量が少ないため、必要情報がキャッシュメモリの中に入っていない状態が、発生する可能性がある。この状態を、キャッシュミスという。
【0007】
前記キャッシュミスの間に、キャッシュメモリが主記憶装置からキャッシュミスとなった情報を読み出すため、その間に命令処理装置がキャッシュメモリの情報を読み出すことはできない。
【0008】
【発明が解決しようとする課題】
本発明者は、前記従来技術を検討した結果、以下の問題点を見いだした。
【0009】
すなわち、従来の命令処理プロセッサにおいて、キャッシュミスが発生した場合、命令アドレスを変更する命令とその後続命令の処理を止める必要があるという問題があった。
【0010】
クロックがますます高速化する命令処理プロセッサでは、命令アドレスを変更する命令とその後続命令の処理を止める処理の時間的負担のため、キャッシュミス中の処理が重要な課題になり、これからの命令処理プロセッサの性能向上に大きな影響を与えることになる。
【0011】
本発明の目的は、命令処理手段から命令記憶手段へのアクセスができない期間に、前記命令処理手段から前記命令記憶手段に命令読み出し要求がある場合、前記命令処理手段での命令処理の状態を保持する時間的負担を軽減することが可能な技術を提供することにある。
【0012】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかになるであろう。
【0013】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。
【0014】
(1)少数の命令を保持する命令記憶手段と、命令処理手段を備える命令処理プロセッサにおいて、前記命令処理手段から前記命令記憶手段へのアクセスができない期間に、前記命令処理手段が命令を実行したことにより前記命令記憶手段に命令読み出し要求が発生した場合、前記命令読み出しの読み出し先アドレスを保持する命令アドレス保持手段を備える。
【0015】
(2)命令アドレス保持手段に保持されるアドレスが、そのアドレスの実行順において、1つ前の命令と比べ、不連続である前記命令処理プロセッサ。
【0016】
(3)前記命令記憶手段が、キャッシュメモリである前記命令処理プロセッサ。
【0017】
【作用】
前記各手段によれば、まず、前記命令処理手段にて、前記命令記憶手段から供給される命令を処理する。
【0018】
次に、前記命令処理手段での次の命令の実行に備え、前記命令記憶手段から命令を供給する。
【0019】
この時、もし、前記命令処理手段へ供給する命令が、前記命令記憶手段に存在しないという状態が発生すると、主記憶装置から前記命令記憶手段に命令の供給を行う。
【0020】
前記主記憶装置から、前記命令記憶手段へ命令を転送している間に、前記命令処理手段から前記命令記憶手段に命令読み出しがある場合、前記命令処理手段からの命令読み出しの読み出し先アドレスを、前記命令アドレス保持手段に保持する。
【0021】
前記主記憶装置から、前記命令記憶手段への命令の転送が終了した後、前記命令アドレス保持手段に保持されているアドレスの命令を、前記命令記憶手段から読み出して、前記命令処理手段にて実行する。
【0022】
この結果、前記命令処理手段での命令処理の状態を保持する時間的負担を軽減することが可能となる。
【0023】
【実施例】
以下、図面を参照して本発明の実施例を詳細に説明する。
【0024】
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
【0025】
(実施例1)
図1は、本発明の一実施例(実施例1)である命令処理プロセッサの概念を示す図である。図1において、10は命令記憶手段、30は命令処理手段、40は命令アドレス保持手段である。
【0026】
命令処理手段30での命令の実行に必要な命令と、そのいくつかの後続命令が、命令記憶手段10から読み出され、信号線11を通して命令処理手段30に送られ、命令処理手段30が命令の処理を行う。
【0027】
命令処理手段30での命令処理に必要な命令が、命令記憶手段10に保持されていなければ、必要な命令が主記憶装置から命令記憶手段10に送られる。
【0028】
命令記憶手段10が、主記憶装置から命令の読み出し中の状態で、命令処理手段30から、信号線31を通して、命令の読み出し信号が送られたら、読み出しの対象となる命令アドレスを命令アドレス保持手段40に一時的に保持する。
【0029】
次に、命令記憶手段10が、主記憶装置から行っている命令の読み出しが終了したら、命令アドレス保持手段40に一時的に保持された命令アドレスが、信号線41を通してセレクタ50に選択され、信号線51を通して命令記憶手段10から読み出される。
【0030】
図2は、本発明の一実施例(実施例1)である命令処理プロセッサの概略構成と主記憶装置を示す図である。図2において、100は主記憶装置、102は命令記憶手段である命令キャッシュ、104は命令発行バッファ、106は命令処理手段である命令処理ユニット、120は命令アドレス保持手段である命令アドレスバッファ、135は命令アドレスバッファ制御ユニットである。
【0031】
図2では、後述する図6に示す命令キャッシュ102を制御するキャッシュ制御ユニット109は省略している。
【0032】
本実施例1の命令処理プロセッサでは、4命令が命令キャッシュ102から同時に命令発行バッファ104に書き込まれ、命令処理ユニット106により、最大2命令を並列に処理することが可能である。
【0033】
命令処理ユニット106が、必要な命令をアドレス線107を通して命令キャッシュ102から読み出す。
【0034】
読み出す命令が命令キャッシュ102に保持されていれば、バス103を通して、読み出す命令とそのいくつかの連続アドレスの後続命令が、命令発行バッファ104に送られる。
【0035】
命令発行バッファ104が、最大2命令をバス105を通して命令処理ユニット106に送る。
【0036】
もし、プログラムの流れにより、不連続アドレスの命令が必要な場合、命令を読み出す信号が、アドレス線107を通してセレクタ122に選択され、アドレス線123により命令キャッシュ102を読み出す。
【0037】
要求された命令が、命令キャッシュ102に保持されていなければ、アドレス線124を通して主記憶装置100に命令の要求が出され、バス101を通して命令キャッシュ102に書き込まれる。
【0038】
もし、命令要求がアドレス線123を通して行われている最中に、命令キャッシュ102がアドレス線124を通して主記憶装置100に命令を要求していれば、命令アドレスバッファ制御ユニット135が、命令キャッシュ102から主記憶装置処理中信号131と、命令処理ユニット106から命令キャッシュ要求発生信号132より、アドレスバッファ書き込みイネーブル信号134を命令アドレスバッファ120に送り、命令アドレスバッファ120に、要求された命令アドレスを書き込む。
【0039】
バス101を通して主記憶装置100から命令キャッシュ102への処理が終了すれば、命令アドレスバッファ制御ユニット135が、主記憶装置処理中信号131と命令アドレスバッファ保持中信号133より命令アドレスバッファ出力信号選択信号136をセレクタ122に送り、命令アドレスバッファ出力121を選択し、アドレス線123を通して、命令キャッシュ102を読み出す。
【0040】
図3は、本実施例1の命令処理プロセッサでの命令処理の概要を示すパイプライン図である。図3において、パイプラインのステージ数は6であり、各ステージの処理概要が、次の様に定義される。
【0041】
PCは命令アドレスを変更するステージ、IFは命令を命令キャッシュ102から持ってくるステージ、Dは命令のデコードを行うステージ、Eは演算を行うステージ、Aは演算用データを処理するステージ、Wは演算結果をレジスタに書き込むステージである。
【0042】
また、図3において、100、110、120等の記号は、命令キャッシュ102から持ってくる4命令を示し、0、1、2等の記号は、2命令の処理を示している。
【0043】
キャッシュミスが命令5がD−ステージの時に生じ、キャッシュミスが発生した時点の処理中の命令2、3の処理が終了可能である。その後続命令4が、アドレスを変更する分岐命令であり、A−ステージで分岐先アドレスであるターゲットアドレスを出す。
【0044】
命令処理ユニット106の出力ラッチから分岐先のターゲットアドレスが出力される時、命令アドレスバッファ制御ユニット135が、主記憶装置処理中信号131と命令キャッシュ要求発生信号132からアドレスバッファ書き込みイネーブル信号134を生成し、命令アドレスバッファ120に書き込みの許可が行われ、アドレス線107のアドレスが書き込まれる。
【0045】
キャッシュミスの処理が終了すれば、命令アドレスバッファ制御ユニット135が、主記憶装置処理中信号131と命令アドレスバッファ保持中信号133により命令アドレスバッファ出力信号選択信号136を生成し、セレクタ122を制御し、命令アドレスバッファ120のアドレスをアドレス線123に出す。
【0046】
図6は、従来の命令処理プロセッサの概略構成と主記憶装置を示す図である。図6において、109はキャッシュ制御ユニットである。
【0047】
命令処理ユニット106が、アドレス線107を用い、キャッシュ制御ユニット109を通じて、命令キャッシュ102に該当命令を読み出させ、読み出された命令をバス103を通し、命令発行バッファ104に送らせる。
【0048】
命令発行バッファ104が、受け取った命令を同時処理可能であるかを判定し、命令処理ユニット106に命令を発行する。
【0049】
キャッシュミスが発生したら、命令キャッシュ102が、キャッシュ制御ユニット109を通じて、主記憶装置100に必要な命令を要求する。キャッシュ制御ユニット109が、その間に命令処理ユニット106からのアドレス線107を受け付けることはできない。
【0050】
従来の命令処理プロセッサにおいて、キャッシュミスが発生し、命令キャッシュ102が、キャッシュ制御ユニット109を通じて、主記憶装置100に必要な命令を要求する間、命令キャッシュ102が、キャッシュ制御ユニット109を通じて、命令処理ユニット106からのアドレス線107を受け付けることができない。
【0051】
前記命令処理プロセッサにおいて、キャッシュミスが発生しても、命令発行バッファ104に命令が、キャッシュミス以前から保持されていたら、その命令を命令処理ユニット106に供給可能であるが、キャッシュミス中に命令処理ユニット106により処理可能である命令は連続命令に限り、分岐命令等の命令アドレスを変更する命令を処理することはできない。
【0052】
このため、命令アドレスを変更する命令とその後続命令の処理を止める必要があり、その処理を行うための時間的負担が大きいという問題があった。
【0053】
図7は、従来の命令処理プロセッサで命令処理中に、キャッシュミスが発生した時の処理概要を示すパイプライン図である。
【0054】
図7に示す命令処理の例において、キャッシュミスは命令150がD−ステージに入った段階で発生するが、後続命令が命令発行バッファ104に保持されていれば、その後続命令が連続である限り処理可能である。
【0055】
この例では、命令4が分岐命令であり、A−ステージで命令アドレスを変更するため、命令アドレスを変更する命令とその後続命令の処理を止めるために、A、E、とD−ステージをロックする必要がある。
【0056】
しかし、このパイプラインロックを行うためには、命令4、5と6の情報を保持するラッチをすべて止める必要があり、これを実行するための時間的負担が大きい。
【0057】
以上説明した様に、本実施例1の命令処理プロセッサにおいては、分岐先アドレスを命令アドレスバッファ120に保持するので、パイプラインをロックする必要がなくなり、高速な処理が可能となる。
【0058】
(実施例2)
図4は、本発明の他の実施例(実施例2)である命令処理プロセッサの概略構成と主記憶装置を示す図である。図4において、本実施例2の命令処理プロセッサは、命令アドレスを保持する手段である命令アドレスバッファとして、命令アドレスバッファ−1(120A)と命令アドレスバッファ−2(120B)の2つ備えるものである。
【0059】
図4では、図6に示す命令キャッシュ102を制御するキャッシュ制御ユニット109は省略している。
【0060】
ディレイドブランチを持つコンピュータアーキテクチャでは、現在実行している命令のアドレスであるフロントの命令アドレスと、次に実行する命令のアドレスであるバックの命令アドレスの保証が必要であるため、フロント用の命令アドレスとバック用の命令アドレスを保持することが必要である。
【0061】
図5は、本実施例2の命令処理プロセッサでの命令処理の概要を示すパイプライン図である。図5において、命令5のD−ステージでキャッシュミスが発生するが、ディレイドブランチに分岐命令がさらにあるため、命令4のA−ステージでターゲットアドレスt1を出してから、命令5のA−ステージでターゲットアドレスt2を出す。
【0062】
最初の分岐命令である命令4に対し、命令アドレスバッファ制御ユニット135が、主記憶装置処理中信号131と命令キャッシュ要求発生信号132からアドレスバッファ−1書き込みイネーブル信号134Aを生成し、命令アドレスバッファ−1(120A)に書き込みの許可が行われ、命令4のターゲットアドレスt1が書き込まれる。
【0063】
次の分岐命令である命令5に対し、命令アドレスバッファ制御ユニット135が、主記憶装置処理中信号131と命令キャッシュ要求発生信号132と命令アドレスバッファ−1保持中信号133Aからアドレスバッファ−2書き込みイネーブル信号134Bを生成し、命令アドレスバッファ−2(120B)に書き込みの許可が行われ、命令5のターゲットアドレスt2が書き込まれる。
【0064】
キャッシュミスの処理が終了すれば、命令アドレスバッファ制御ユニット135が、主記憶装置処理中信号131と命令アドレスバッファ−1保持中信号133Aにより命令アドレスバッファ出力信号選択信号136を生成し、セレクタ122を制御し、命令アドレスバッファ−1(120A)に保持されたターゲットアドレスt1をアドレス線123に出す。
【0065】
次のサイクルで命令アドレスバッファ制御ユニット135が、主記憶装置処理中信号131と命令アドレスバッファ−2保持中信号133Bにより命令アドレスバッファ出力信号選択信号136を生成し、セレクタ122を制御し、命令アドレスバッファ−2(120B)に保持されたターゲットアドレスをアドレス線123に出す。
【0066】
以上説明した様に、本実施例2の命令処理プロセッサにおいては、キャッシュミス中に命令4により不連続アドレスが1つ出力され、そのディレイドスロットにある命令5で、もう1つの不連続アドレスが出力されても、それらの不連続アドレスを命令アドレスバッファ−1(120A)と命令アドレスバッファ−2(120B)に保持するので、パイプラインをロックする必要がなくなり、高速な処理が可能となる。
【0067】
以上、本発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【0068】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記のとおりである。
【0069】
(1)少数の命令を保持する命令記憶手段と、命令処理手段を備える命令処理プロセッサにおいて、前記命令処理手段から前記命令記憶手段へのアクセスが可能でない期間に、前記命令処理手段から前記命令記憶手段に命令読み出し要求がある場合、前記命令読み出しの読み出し先アドレスを命令アドレス保持手段に保持するので、前記命令処理手段での命令処理の状態を保持する時間的負担を軽減することが可能である。
【図面の簡単な説明】
【図1】本発明の一実施例(実施例1)である命令処理プロセッサの概念を示す図である。
【図2】本発明の一実施例(実施例1)である命令処理プロセッサの概略構成と記憶装置を示す図である。
【図3】実施例1の命令処理プロセッサでの命令処理の概略を示すパイプライン図である。
【図4】本発明の他の実施例(実施例2)である命令処理プロセッサの概略構成と記憶装置を示す図である。
【図5】実施例2の命令処理プロセッサでの命令処理の概略を示すパイプライン図である。
【図6】従来の命令処理プロセッサの概略構成を示す図である。
【図7】従来の命令処理プロセッサでの命令処理の概略を示すパイプライン図である。
【符号の説明】
10…命令記憶手段、30…命令処理手段、40…命令アドレス保持手段、100…主記憶装置、102…命令キャッシュ、104…命令発行バッファ、106…命令処理ユニット、120…命令アドレスバッファ、120A…命令アドレスバッファ−1、120B…命令アドレスバッファ−2、135…命令アドレスバッファ制御ユニット。
Claims (3)
- 主記憶装置から読み出した少数の命令を保持する命令記憶手段と、
前記命令記憶手段から命令を読み込み命令発行バッファに保持し、前記命令発行バッファに保持した命令をパイプライン処理する命令処理手段を備える命令処理プロセッサにおいて、
前記命令処理手段から前記命令記憶手段へのアクセスができない期間に、前記命令処理手段が分岐命令を実行したことにより前記命令記憶手段に命令読み出し要求が発生した場合、前記命令読み出しの読み出し先アドレスを保持する命令アドレス保持手段をパイプラインの外に備え、
前記命令処理手段は、前記命令処理手段から前記命令記憶手段へのアクセスができない期間中であっても、前記命令発行バッファに保持済みの命令の命令処理を継続することを特徴とする命令処理プロセッサ。 - 前記命令アドレス保持手段に保持されるアドレスが、そのアドレスの実行順において、1つ前の命令と比べ、不連続であることを特徴とする請求項1に記載された命令処理プロセッサ。
- 前記命令記憶手段が、キャッシュメモリであることを特徴とする請求項1または請求項2に記載された命令処理プロセッサ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10718795A JP3574693B2 (ja) | 1995-05-01 | 1995-05-01 | 命令処理プロセッサ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10718795A JP3574693B2 (ja) | 1995-05-01 | 1995-05-01 | 命令処理プロセッサ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08305562A JPH08305562A (ja) | 1996-11-22 |
| JP3574693B2 true JP3574693B2 (ja) | 2004-10-06 |
Family
ID=14452684
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10718795A Expired - Fee Related JP3574693B2 (ja) | 1995-05-01 | 1995-05-01 | 命令処理プロセッサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3574693B2 (ja) |
-
1995
- 1995-05-01 JP JP10718795A patent/JP3574693B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH08305562A (ja) | 1996-11-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5526508A (en) | Cache line replacing system for simultaneously storing data into read and write buffers having multiplexer which controls by counter value for bypassing read buffer | |
| JPH04367936A (ja) | スーパースカラープロセッサ | |
| JPH05342084A (ja) | データ記憶装置及びデータ記憶方法 | |
| JP3574693B2 (ja) | 命令処理プロセッサ | |
| JP3164732B2 (ja) | データ処理装置 | |
| CN117055811A (zh) | 一种总线访问命令处理方法、装置、芯片及存储介质 | |
| JP3145545B2 (ja) | メモリアクセス装置 | |
| JPH08272608A (ja) | パイプライン処理装置 | |
| JP2668987B2 (ja) | データ処理装置 | |
| JPH0447350A (ja) | 主記憶読み出し応答制御方式 | |
| JP3169878B2 (ja) | メモリ制御回路 | |
| JPH0321941B2 (ja) | ||
| JP2806690B2 (ja) | マイクロプロセッサ | |
| JPS6391756A (ja) | 記憶装置の部分書き込み命令処理方式 | |
| JP2001022581A (ja) | データ処理装置及びコンピュータ読み取り可能な記憶媒体 | |
| JPH04107634A (ja) | メモリデータバイパス制御方式 | |
| JP3134811B2 (ja) | データ処理装置 | |
| JPH05257807A (ja) | キャッシュメモリ制御装置 | |
| JP2966038B2 (ja) | ディジタルデータ処理ユニット調停装置及び方法 | |
| JPH0337216B2 (ja) | ||
| JPH09146769A (ja) | パイプライン処理装置 | |
| JP2004240520A (ja) | ノンキャッシュ領域内高速メモリアクセス方法 | |
| JPH03134754A (ja) | データ処理装置 | |
| JPS60159958A (ja) | デ−タ転送制御回路 | |
| JPH06324940A (ja) | メモリ制御方法および装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20031216 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040213 |
|
| A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040315 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040406 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040604 |
|
| 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: 20040629 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040705 |
|
| 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: 20080709 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080709 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
| LAPS | Cancellation because of no payment of annual fees |