JP2507071B2 - バスロック制御方式 - Google Patents
バスロック制御方式Info
- Publication number
- JP2507071B2 JP2507071B2 JP18418389A JP18418389A JP2507071B2 JP 2507071 B2 JP2507071 B2 JP 2507071B2 JP 18418389 A JP18418389 A JP 18418389A JP 18418389 A JP18418389 A JP 18418389A JP 2507071 B2 JP2507071 B2 JP 2507071B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- signal
- request
- released
- semaphore
- 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
Landscapes
- Multi Processors (AREA)
- Bus Control (AREA)
Description
【発明の詳細な説明】 [概要] セマフォ操作命令をもつマルチプロセッサシステムに
おけるバスロック制御方式に関し、 最初のサイクルでリトライ要求があった場合にはバス
を開放することで、システムのデッドロックを回避する
ようにしたバスロック制御方式を提供することを目的と
し、 CPUおよびローカルメモリ部をそれぞれ有する複数の
プロセッサと、共通メモリ部とがシステムバスを介して
接続され、前記プロセッサの間にシステムバス調停回路
を備えるとともに前記共通メモリ部または前記ローカル
メモリ部にセマフォ操作命令部を有するマルチプロセッ
サシステムにおいて、 前記CPU内にバス権開放手段を設けて、バスロック信
号がオンでアクセスしたセマフォ操作命令の最初のリー
ドサイクルでリトライ要求があったときは、バスロック
信号がオンであってもバスリクエスト信号に応答してバ
ス権を開放するように構成した。
おけるバスロック制御方式に関し、 最初のサイクルでリトライ要求があった場合にはバス
を開放することで、システムのデッドロックを回避する
ようにしたバスロック制御方式を提供することを目的と
し、 CPUおよびローカルメモリ部をそれぞれ有する複数の
プロセッサと、共通メモリ部とがシステムバスを介して
接続され、前記プロセッサの間にシステムバス調停回路
を備えるとともに前記共通メモリ部または前記ローカル
メモリ部にセマフォ操作命令部を有するマルチプロセッ
サシステムにおいて、 前記CPU内にバス権開放手段を設けて、バスロック信
号がオンでアクセスしたセマフォ操作命令の最初のリー
ドサイクルでリトライ要求があったときは、バスロック
信号がオンであってもバスリクエスト信号に応答してバ
ス権を開放するように構成した。
[産業上の利用分野] 本発明は、セマフォ操作命令をもつマルチプロセッサ
システムにおけるバスロック制御方式に関する。
システムにおけるバスロック制御方式に関する。
セマフォとは、複数のプロセッサで共有されるメモリ
の使用権を調停されるビットのことである。あるプロセ
ッサが前記メモリにアクセスする際に、メモリ領域毎に
対応したセマフォを読み取り、“0"であれば、“1"をセ
ットする。その後、前記メモリ領域にアクセスする。
“1"であった場合は、アクセスは許されない。即ち、
“1"のときは他のプロセッサがアクセスしているからで
ある。その後、前記アクセスしたプロセッサがアクセス
を終了する際は、再びセマフォを読み取り、“0"を書き
込む。
の使用権を調停されるビットのことである。あるプロセ
ッサが前記メモリにアクセスする際に、メモリ領域毎に
対応したセマフォを読み取り、“0"であれば、“1"をセ
ットする。その後、前記メモリ領域にアクセスする。
“1"であった場合は、アクセスは許されない。即ち、
“1"のときは他のプロセッサがアクセスしているからで
ある。その後、前記アクセスしたプロセッサがアクセス
を終了する際は、再びセマフォを読み取り、“0"を書き
込む。
以上のセマフォを操作する命令をセマフォ操作命令と
呼び、test and set命令(“0"を読み取り“1"を書き込
む)、test and clear命令(“1"を読み取り“0"を書
く)等がある。
呼び、test and set命令(“0"を読み取り“1"を書き込
む)、test and clear命令(“1"を読み取り“0"を書
く)等がある。
複数のプロセッサをシステムバスを介して接続したマ
ルチプロセッサシステムにおいては、セマフォ操作命令
の実行サイクルで、最初のデータリードでリトライ要求
が応答されてバスサイクルのアイドル期間であっても、
バスロック中であるときは、外部からのバスリクエスト
に対してバス権を開放しない。この場合には、複数のCP
Uが同時にセマフォ操作命令を実行しはじめた時は、バ
スが開放されず、システムがデットロックしてしまう。
ルチプロセッサシステムにおいては、セマフォ操作命令
の実行サイクルで、最初のデータリードでリトライ要求
が応答されてバスサイクルのアイドル期間であっても、
バスロック中であるときは、外部からのバスリクエスト
に対してバス権を開放しない。この場合には、複数のCP
Uが同時にセマフォ操作命令を実行しはじめた時は、バ
スが開放されず、システムがデットロックしてしまう。
したがって、初めのデータリードでリトライ要求が応
答されたときは、バスロック中であってもバスを開放す
ることが必要となる。
答されたときは、バスロック中であってもバスを開放す
ることが必要となる。
[従来の技術] 第5図は従来のCPU内部の一部を示す図である。
第5図において、1はCPU2内に設けられた命令実行部
であり、命令実行部1は共通メモリ部内に格納されてい
るセマフォ操作命令を実行するもので、システムバス調
停回路に対してバスロック信号を出力する。バスロック
信号はノット回路3を介してナンド回路4に入力し、バ
スリクエスト信号はノット回路5を介してナンド回路4
に入力する。ナンド回路4の出力はフリップフロップ6
に与えられ、フリップフロップ6はバスグラント信号を
出力する。
であり、命令実行部1は共通メモリ部内に格納されてい
るセマフォ操作命令を実行するもので、システムバス調
停回路に対してバスロック信号を出力する。バスロック
信号はノット回路3を介してナンド回路4に入力し、バ
スリクエスト信号はノット回路5を介してナンド回路4
に入力する。ナンド回路4の出力はフリップフロップ6
に与えられ、フリップフロップ6はバスグラント信号を
出力する。
したがって、第6図に示すように、初めのデタリード
でリトライ要求が応答されていても、バスロック信号が
オンであるときは、バスリクエスト信号に対してバスを
開放しない。すなわち、第5図において、バスロック信
号がHレベルで、バスリクエスト信号がLレベルのとき
は、ナンド回路4の出力はHレベルとなり、フリップフ
ロップ6の出力もHレベルとなるので、バスグラント信
号は有効とならない。
でリトライ要求が応答されていても、バスロック信号が
オンであるときは、バスリクエスト信号に対してバスを
開放しない。すなわち、第5図において、バスロック信
号がHレベルで、バスリクエスト信号がLレベルのとき
は、ナンド回路4の出力はHレベルとなり、フリップフ
ロップ6の出力もHレベルとなるので、バスグラント信
号は有効とならない。
なお、その後、第6図に示すように、データライトの
バスサイクルでバスロック信号がオフとなると、バスグ
ランド信号がLレベルとなり、バス権が開放される。
バスサイクルでバスロック信号がオフとなると、バスグ
ランド信号がLレベルとなり、バス権が開放される。
[発明が解決しようとする課題] しかしながら、このような従来のバスロック方式にあ
っては、リトライ要求が応答されてもバスロック中には
バスリクエストに対してバスを開放しないようになって
いたため、複数のCPUが同時にセマフォ操作命令を実行
しはじめた時はどちらもバスを開放することができない
ので、システムがデットロックしてしまうという問題点
があった。
っては、リトライ要求が応答されてもバスロック中には
バスリクエストに対してバスを開放しないようになって
いたため、複数のCPUが同時にセマフォ操作命令を実行
しはじめた時はどちらもバスを開放することができない
ので、システムがデットロックしてしまうという問題点
があった。
本発明はこのような従来の問題点に鑑みてなされたも
のであって、最初のサイクルでのリトライ要求があった
場合にはバスを開放することで、システムのデットロッ
クを回避するようにしたバスロック制御方式を提供する
ことを目的としている。
のであって、最初のサイクルでのリトライ要求があった
場合にはバスを開放することで、システムのデットロッ
クを回避するようにしたバスロック制御方式を提供する
ことを目的としている。
[課題を解決するための手段] 第1図は本発明の原理説明図である。
第1図において、11,12はCPU13,14およびローカルメ
モリ部15,16をそれぞれ有する複数のプロセッサ、22は
システムバス19を介してプロセッサ11,12に接続された
共通メモリ部、25は前記プロセッサ11,12の間に設けら
れたシステムバス調停回路、24は前記共通メモリ部22ま
たは前記ローカルメモリ部15,16に設けられたセマフォ
操作命令部、28は前記CPU11,12内に設けられ、バスロッ
ク信号がオンでアクセスしたセマフォ操作命令の最初の
リードサイクルでリトライ要求があったときは、バスロ
ック信号がオンであってもバスリクエスト信号に応答し
てバス権を開放するバス権開放手段である。
モリ部15,16をそれぞれ有する複数のプロセッサ、22は
システムバス19を介してプロセッサ11,12に接続された
共通メモリ部、25は前記プロセッサ11,12の間に設けら
れたシステムバス調停回路、24は前記共通メモリ部22ま
たは前記ローカルメモリ部15,16に設けられたセマフォ
操作命令部、28は前記CPU11,12内に設けられ、バスロッ
ク信号がオンでアクセスしたセマフォ操作命令の最初の
リードサイクルでリトライ要求があったときは、バスロ
ック信号がオンであってもバスリクエスト信号に応答し
てバス権を開放するバス権開放手段である。
[作用] 本発明においては、最初のバスサイクルでリトライ要
求があった場合には、バスロック中であってもバスリク
エストに応じてバス権開放手段によりバス権を開放す
る。
求があった場合には、バスロック中であってもバスリク
エストに応じてバス権開放手段によりバス権を開放す
る。
したがって、複数個のCPUが同時にセマフォ操作命令
を実行しはじめた時でもバス権開放手段によりバス権を
開放するので、システムがデッドロックしてしまうこと
がない。
を実行しはじめた時でもバス権開放手段によりバス権を
開放するので、システムがデッドロックしてしまうこと
がない。
[実施例] 以下、本発明の実施例を図面に基づいて説明する。
第2図〜第4図は本発明の一実施例を示す図である。
第2図において、11,12は複数のプロセッサであり、
これらのプロセッサ11,12はCPU13,14およびローカルメ
モリ部15,16をそれぞれ有している。また、プロセッサ1
1,12はレシーバおよびドライバーからなる入出力部17,1
8を介してシステムバス19にそれぞれ接続されている。
システムバス19には入出力装置20,21がそれぞれ接続さ
れるとともに共通メモリ部22が接続され、共通メモリ部
22には占有表示グラフ23を有するセマフォ操作命令部24
が設けられている。セマフォ操作命令部24にはセマフォ
操作命令が格納されている。セマフォ操作命令部24は、
ここでは共通メモリ部22上に設けられているが、OSの作
り方またはアプリケーションプログラムによってはCPU1
1,12のローカルメモリ部15,16に設けられる場合もあ
る。
これらのプロセッサ11,12はCPU13,14およびローカルメ
モリ部15,16をそれぞれ有している。また、プロセッサ1
1,12はレシーバおよびドライバーからなる入出力部17,1
8を介してシステムバス19にそれぞれ接続されている。
システムバス19には入出力装置20,21がそれぞれ接続さ
れるとともに共通メモリ部22が接続され、共通メモリ部
22には占有表示グラフ23を有するセマフォ操作命令部24
が設けられている。セマフォ操作命令部24にはセマフォ
操作命令が格納されている。セマフォ操作命令部24は、
ここでは共通メモリ部22上に設けられているが、OSの作
り方またはアプリケーションプログラムによってはCPU1
1,12のローカルメモリ部15,16に設けられる場合もあ
る。
25はプロセッサ11とプロセッサ12との間に設けられた
システムバス調停回路であり、システムバス調停回路25
は入出力装置20,21に接続されるとともに入出力部17,18
に接続され、入出力装置20,21および入出力部17,18を制
御する。また、システムバス調停回路25はCPU13,14から
バスロック信号およびバスグランド信号を受け、CPU13,
14にリトライ信号およびバスリクエスト信号を出力す
る。
システムバス調停回路であり、システムバス調停回路25
は入出力装置20,21に接続されるとともに入出力部17,18
に接続され、入出力装置20,21および入出力部17,18を制
御する。また、システムバス調停回路25はCPU13,14から
バスロック信号およびバスグランド信号を受け、CPU13,
14にリトライ信号およびバスリクエスト信号を出力す
る。
次に、CPUの内部回路を第3図に基づいて説明する。
第3図において、13は一方のCPUであり、CPU13の内部
にはセマフォ操作命令を実行するための命令実行部26が
設けられている。命令実行部26は共通メモリ部22上のセ
マフォ操作命令部24のセマフォデータのリード・モディ
ファイ・ライトのバスサイクル中においてバス権を固定
するバスロック信号を出力する。27はCPU13の内部に設
けられたバスコントロール部であり、バスコントロール
部27はバスサイクルの応答においてリトライ信号(再実
行要求応答)がアサートされた場合に必要に応じてバス
サイクルを再実行する。28はバスコントロール部27の一
部を構成するバス権開放手段であり、バス権開放手段28
は、バスロック信号がオンでアクセスしたセマフォの最
初のリードサイクルがリトライ要求応答によってバスサ
イクルを集結した場合、バスロック信号がオンであって
もバスリクエスト信号に応答してバス権を開放するもの
である。
にはセマフォ操作命令を実行するための命令実行部26が
設けられている。命令実行部26は共通メモリ部22上のセ
マフォ操作命令部24のセマフォデータのリード・モディ
ファイ・ライトのバスサイクル中においてバス権を固定
するバスロック信号を出力する。27はCPU13の内部に設
けられたバスコントロール部であり、バスコントロール
部27はバスサイクルの応答においてリトライ信号(再実
行要求応答)がアサートされた場合に必要に応じてバス
サイクルを再実行する。28はバスコントロール部27の一
部を構成するバス権開放手段であり、バス権開放手段28
は、バスロック信号がオンでアクセスしたセマフォの最
初のリードサイクルがリトライ要求応答によってバスサ
イクルを集結した場合、バスロック信号がオンであって
もバスリクエスト信号に応答してバス権を開放するもの
である。
バス権開放手段28は、バスロック信号とリトライ信号
が入力するアンド回路29と、アンド回路29の出力が入力
するフリップフロップ30と、フリップフロップ30の出力
がノット回路31を介して入力するとともにバスリクエス
ト信号がノット回路32を介して入力するナンド回路33
と、ナンド回路33の出力を受けてバスグランド信号を出
力するフリップフロップ34と、により構成されている。
が入力するアンド回路29と、アンド回路29の出力が入力
するフリップフロップ30と、フリップフロップ30の出力
がノット回路31を介して入力するとともにバスリクエス
ト信号がノット回路32を介して入力するナンド回路33
と、ナンド回路33の出力を受けてバスグランド信号を出
力するフリップフロップ34と、により構成されている。
次に、動作を説明する。
第4図(A),(B)は動作を説明するためのタイム
チャートである。
チャートである。
第4図(A),(B)において、(A)はアドレスの
サイクルを、(B)はデータのリードサイクルおよびラ
イトサイクルを、(C)はリトライ信号を、(D)はバ
スロック信号を、(E)はバスリクエスト信号を、
(F)はバスグランド信号を、それぞれ示す。
サイクルを、(B)はデータのリードサイクルおよびラ
イトサイクルを、(C)はリトライ信号を、(D)はバ
スロック信号を、(E)はバスリクエスト信号を、
(F)はバスグランド信号を、それぞれ示す。
ここで、バスロック信号がオンであるとき、リトライ
信号がアサートされ、バスリクエスト信号がアサートさ
れたときは、アンド回路29の出力はLレベル、ナンド回
路33の出力はLレベルとなるので、フリップフロップ34
の出力はLレベルとなり、バスグランド信号は有効とな
り、バス権が開放される(第4図(A)、参照)。
信号がアサートされ、バスリクエスト信号がアサートさ
れたときは、アンド回路29の出力はLレベル、ナンド回
路33の出力はLレベルとなるので、フリップフロップ34
の出力はLレベルとなり、バスグランド信号は有効とな
り、バス権が開放される(第4図(A)、参照)。
すなわち、バスロック中であっても、バスリクエスト
信号に応答してバス権を開放することができる。
信号に応答してバス権を開放することができる。
一方、この状態において、バスリクエスト信号がHレ
ベルに戻ると、ナンド回路33の出力はHレベルとなり、
フリップフロップ34の出力もHレベルとなるので、バス
グランド信号はHレベルとなり、バス権は開放されな
い。すなわち、バスリクエスト信号がアサートされない
ときは、バス権は開放されない。
ベルに戻ると、ナンド回路33の出力はHレベルとなり、
フリップフロップ34の出力もHレベルとなるので、バス
グランド信号はHレベルとなり、バス権は開放されな
い。すなわち、バスリクエスト信号がアサートされない
ときは、バス権は開放されない。
一方、第4図(B)に示すように、データライトサイ
クルにおいては、バスロック信号がLレベルとなると、
バスグランド信号はLレベルとなり、バス権が開放され
る。
クルにおいては、バスロック信号がLレベルとなると、
バスグランド信号はLレベルとなり、バス権が開放され
る。
このように、バスロック中であっても最初のサイクル
でのリトライ要求があったときは、バスリクエストに応
答してバス権を開放するようにしたため、CPU13とCPU14
が同時にセマフォ操作命令を実行しはじめた時でもバス
を開放することができ、システムがデットロックしてし
まうことがない。
でのリトライ要求があったときは、バスリクエストに応
答してバス権を開放するようにしたため、CPU13とCPU14
が同時にセマフォ操作命令を実行しはじめた時でもバス
を開放することができ、システムがデットロックしてし
まうことがない。
[発明の効果] 以上説明してきたように、本発明によれば、最初のサ
イクルのリトライ要求があった場合にバスロック中であ
ってもバスリクエストに応答してバス権を開放するよう
にしたため、複数のCPUが同時にセマフォ操作命令を実
行しはじめた時でもバスを開放することができ、システ
ムのデッドロックを回避することができる。
イクルのリトライ要求があった場合にバスロック中であ
ってもバスリクエストに応答してバス権を開放するよう
にしたため、複数のCPUが同時にセマフォ操作命令を実
行しはじめた時でもバスを開放することができ、システ
ムのデッドロックを回避することができる。
第1図は本発明の原理説明図、 第2図は本発明の一実施例を示すブロック図、 第3図は要部説明図、 第4図(A),(B)はタイムチャート、 第5図は従来例の説明図、 第6図は従来のタイムチャートである。 図中、 11,12…プロセッサ、13,14…CPU、15,16…ローカルメモ
リ部、17,18…入出力部、19…システムバス、20,21…入
出力装置、22…共通メモリ部、23…占有表示フラグ、24
…セマフォ操作命令部、25…システムバス調停回路、26
…命令実行部、27…バスコントロール部、28…バス権開
放手段、29…アンド回路、30,34…フリップフロップ、3
1,32…ノット回路、33…ナンド回路。
リ部、17,18…入出力部、19…システムバス、20,21…入
出力装置、22…共通メモリ部、23…占有表示フラグ、24
…セマフォ操作命令部、25…システムバス調停回路、26
…命令実行部、27…バスコントロール部、28…バス権開
放手段、29…アンド回路、30,34…フリップフロップ、3
1,32…ノット回路、33…ナンド回路。
Claims (1)
- 【請求項1】CPU(13),(14)およびローカルメモリ
部(15),(16)をそれぞれ有する複数のプロセッサ
(11),(12)と、共通メモリ部(22)とがシステムバ
ス(19)を介して接続され、前記プロセッサ(11),
(12)の間にシステムバス調停回路(25)を備えるとと
もに前記共通メモリ部(22)または前記ローカルメモリ
部(15),(16)にセマフォ操作命令部(24)を有する
マルチプロセッサシステムにおいて、 前記CPU(13),(14)内にバス権開放手段(28)を設
けて、バスロック信号がオンでアクセスしたセマフォ操
作命令の最初のリードサイクルでリトライ要求があった
ときは、バスロック信号がオンであってもバスリクエス
ト信号に応答してバス権を開放するようにしたことを特
徴とするバスロック制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18418389A JP2507071B2 (ja) | 1989-07-17 | 1989-07-17 | バスロック制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18418389A JP2507071B2 (ja) | 1989-07-17 | 1989-07-17 | バスロック制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0348962A JPH0348962A (ja) | 1991-03-01 |
JP2507071B2 true JP2507071B2 (ja) | 1996-06-12 |
Family
ID=16148814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18418389A Expired - Fee Related JP2507071B2 (ja) | 1989-07-17 | 1989-07-17 | バスロック制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2507071B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE37618E1 (en) | 1987-07-24 | 2002-04-02 | Richard J. Helferich | Analog/digital data storage system |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850529A (en) * | 1995-08-11 | 1998-12-15 | Kabushiki Kaisha Toshiba | Method and apparatus for detecting a resource lock on a PCI bus |
JPH0981507A (ja) * | 1995-09-08 | 1997-03-28 | Toshiba Corp | コンピュータシステム |
US6973521B1 (en) * | 2000-05-16 | 2005-12-06 | Cisco Technology, Inc. | Lock controller supporting blocking and non-blocking requests |
US7921250B2 (en) * | 2004-07-29 | 2011-04-05 | International Business Machines Corporation | Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions |
-
1989
- 1989-07-17 JP JP18418389A patent/JP2507071B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE37618E1 (en) | 1987-07-24 | 2002-04-02 | Richard J. Helferich | Analog/digital data storage system |
Also Published As
Publication number | Publication date |
---|---|
JPH0348962A (ja) | 1991-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4933845A (en) | Reconfigurable bus | |
US5283870A (en) | Method and apparatus for avoiding processor deadly embrace in a multiprocessor system | |
US5611058A (en) | System and method for transferring information between multiple buses | |
JP2830116B2 (ja) | マルチプロセッサシステムにおけるロック制御機構 | |
US5442755A (en) | Multi-processor system with lock address register in each processor for storing lock address sent to bus by another processor | |
US6792497B1 (en) | System and method for hardware assisted spinlock | |
JPH05158890A (ja) | 多重プロセッサ・データ処理システム及びその動作方法 | |
JPH0760427B2 (ja) | デュアル・プロセッサを備えたデ−タ処理システム | |
JP4874165B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 | |
JP2003050789A (ja) | 回路、プロセッサ、及びマルチプロセッサシステム | |
JP2507071B2 (ja) | バスロック制御方式 | |
US5778441A (en) | Method and apparatus for accessing split lock variables in a computer system | |
JPH05173985A (ja) | プログラマブルコントローラ | |
JPS6321941B2 (ja) | ||
WO1992006432A1 (en) | Device for controlling bus | |
JPH0196746A (ja) | キヤツシユ装置 | |
JPS63298555A (ja) | 共有メモリ制御方式 | |
JP2806700B2 (ja) | マルチ・プロセッシング・システム | |
JPH0679306B2 (ja) | マルチプロセツサの制御方法 | |
JP3237569B2 (ja) | メモリアクセス制御装置 | |
JP2503287B2 (ja) | 生存確認機能を持つ複合計算機 | |
JPH01310466A (ja) | マルチプロセッサシステム | |
JPH0581211A (ja) | プロセツサ間通信方式 | |
JPS62546B2 (ja) | ||
JPH0374759A (ja) | マルチプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |