JPH07141208A - マルチタスク処理装置 - Google Patents

マルチタスク処理装置

Info

Publication number
JPH07141208A
JPH07141208A JP5308640A JP30864093A JPH07141208A JP H07141208 A JPH07141208 A JP H07141208A JP 5308640 A JP5308640 A JP 5308640A JP 30864093 A JP30864093 A JP 30864093A JP H07141208 A JPH07141208 A JP H07141208A
Authority
JP
Japan
Prior art keywords
task
tasks
register
bank
register bank
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.)
Granted
Application number
JP5308640A
Other languages
English (en)
Other versions
JP3644042B2 (ja
Inventor
Toshihiko Fujishiro
俊彦 藤代
Junji Oiwa
純二 大岩
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP30864093A priority Critical patent/JP3644042B2/ja
Publication of JPH07141208A publication Critical patent/JPH07141208A/ja
Application granted granted Critical
Publication of JP3644042B2 publication Critical patent/JP3644042B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 リアルタイムオペレーティングシステムを用
いたマルチタスク処理装置で、並行して実行できるタス
クの数が制限されず、ディスパッチ時間を短縮できるよ
うにする。 【構成】 各タスクT1〜T4に対応して占有される複
数のレジスタバンクB1〜B4を設ける。このため、コ
ンテキスト等の退避/復帰がレジスタバンクB1〜B4
を切り替えることにより行なえ、ディスパッチ時間が短
縮される。この複数のレジスタバンクB1〜B4を各タ
スクに動的に割り当てることにより、実行されるタスク
の数がレジスタバンクの数に制限されなくなる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、リアルタイムオペレ
ーティングシステムを用いたマルチタスク処理装置に関
する。
【0002】
【従来の技術】リアルタイムオペレーティングシステム
は、例えば組み込み機器用のオペレーティングシステム
として用いられる。リアルタイムオペレーティングシス
テムは、一定時間以内での応答を保証するようなオペレ
ーティングシステムであり、複数のタスクを並列的に実
行させるためのマルチタスク機能が不可欠である。
【0003】リアルタイムオペレーティングシステム
は、タスク管理機能、タスク付属同期機能、同期・通信
機能、メモリプール管理機能、割り込み管理機能、時間
管理機能、システム管理機能を有している。
【0004】タスク管理機能は、タスクの状態を直接操
作したり、参照したりする機能である。タスク付属同期
機能は、タスクをサスペンド状態にして一時的に実行を
停止する機能とそれを解除する機能等を含むタスクに予
め付加されている同期機能である。同期・通信機能は、
セマフォ、イベントフラグ、メールボックスを用いたタ
スクとは独立した同期機能及び通信機能である。メモリ
プール管理機能は、カーネルによってメモリブロックの
割当及びメモリプールの管理を行う機能である。割り込
み管理機能は、外部割り込みの禁止/許可及び外部割り
込みに対するハンドラの定義を行う機能である。時間管
理機能は、システムクロックの設定や参照する機能、タ
スクを遅延させる機能及び指定した時刻に起動されるハ
ンドラの定義を行う機能である。システム管理機能は、
カーネルのバージョンを参照する機能である。
【0005】オペレーティングシステムがタスクを管理
するための制御領域は、TCB(Task Control Block)
と呼ばれている。TCBは、各タスクを管理するため
に、タスク毎に必要になる。TCBには、タスクに割当
られたID番号であるタスクID、タスクの状態を示す
タスクステータス、タスク起動時のタスクの優先度を示
すタスク優先度、タスクに割り当てられたスタックポイ
ンタを示すスタックポインタ、レジスタ、プログラムス
テータスワードを示すコンテキスト、個別情報等が格納
される。
【0006】マルチタスク処理を行うためのタスクの状
態としては、実行状態(RUN)、実行可能状態(RE
ADY)、待ち状態(WAIT)、休止状態(DORM
ANT)の4状態がある。実行状態は、カーネルによっ
て実行権が渡されたタスクの状態である。待ち状態は、
カーネルから実行権が渡されれば実行状態になれるタス
クの状態である。待ち状態は、タスクが何らかの条件が
満たされるのを待っている状態であり、実行条件が整え
ば実行可能となる。休止状態は、タスクが起動されてい
ない状態又は終了後の状態である。
【0007】従来のリアルタイムオペレーティングシス
テムでは、アプリケーションのタスクから処理要求があ
ると、タスクから処理要求を行い、リアルタイムオペレ
ーティングシステムの該当する処理要求の中でコテキス
ト等の退避を行い、処理要求の処理を行い、実行可能状
態のタスクから次に実行するタスクをサーチし(スケジ
ューリング)、実際に実行するためにコンテキスト等を
復帰させ実行権を与える(ディスパッチ)ような処理が
行われる。スケジューリングを行う場合には、タスクが
持っているタスク優先度が考慮される。つまり、2つの
タスクA、Bが実行可能状態で、先にタスクBの方が実
行可能状態になったとしても、タスクAの方が高い優先
度が与えられていたなら、タスクAに実行権が与えられ
る。
【0008】
【発明が解決しようとする課題】リアルタイムオペレー
ティングシステムでは、システムコールに対する応答時
間を短縮することが重要である。システムコールに対す
る応答時間は、アプリケーションからシステムコールを
発行して、次のアプリケーションに制御が戻ってくる時
間であり、これはディスパッチ時間と呼ばれる。つま
り、数々の事象に対して最適なのは実時間に応答するこ
とであるが、システムコールには、オーバーヘッドすな
わちディスパッチ時間がある。したがって、この時間が
如何に短縮されているかにより、リアルタイムオペレー
ティングシステムの性能を評価することができる。
【0009】そこで、各タスクに対応してレジスタバン
クを用意することで、ディスパッチ時間を短縮すること
が考えられる。すなわち、従来では、システムコールが
発行されると、コンテキストの退避/復帰の処理が行わ
れる。このため、ディスパッチ時間が長くかかる。これ
に対して、各レジスタバンクを各タスクに対応して用意
しておけば、コンテキスト等の退避/復帰がレジスタバ
ンクを切り替えることにより行なえる。
【0010】しかしながら、レジスタバンクの数は有限
である。このため、各タスクを各レジスタバンクに1対
1に対応させると、並行して動作するタスクの数は、レ
ジスタバンクの数に制限され、レジスタバンクの空きが
なければ、処理を実行することができないことになる。
このことは、アプリケーションを作成する上で制限事項
となる。
【0011】したがって、この発明の目的は、並行して
実行できるタスクの数が制限されず、ディスパッチ時間
を短縮できるマルチタスク処理装置を提供することにあ
る。
【0012】
【課題を解決するための手段】この発明は、複数のタス
クが並列的に実行されるマルチタスク処理を行うマルチ
タスク処理装置において、各タスクに対応して占有され
る複数のレジスタバンクを有し、複数のレジスタバンク
が各タスクに動的に割り当てられるようにしたマルチタ
スク処理装置である。
【0013】この発明では、更に、バンクの空き待ち行
列手段を有し、各レジスタバンクは、そのレジスタバン
クのタスクの処理が終了した時点でそのタスクを解放
し、タスクを解放したバンクに空き待ち行列手段に待機
されているタスクを割り当てるようにしている。
【0014】
【作用】複数のタスクに対応してレジスタバンクが用意
される。このため、コンテキスト等の退避/復帰がレジ
スタバンクを切り替えることにより行なえる。そして、
複数あるレジスタバンクが個々にオペレーティングシス
テムにより管理され、起動時に空いているレジスタバン
クにタスクが動的に割り当てられ、タスクが終了される
と、占有されていたレジスタバンクが解放される。オペ
レーティングシステムが管理しているレジスタバンクに
空きが無ければ、起動したタスクはレジスタバンクの空
き待ちの状態となり、タスクが占有しているレジスタバ
ンクを解放するまで、待機される。このため、実行され
るタスクの数がレジスタバンクの数に制限されなくな
る。
【0015】
【実施例】以下、この発明の一実施例について図面を参
照して説明する。図1は、この発明を実現するためのハ
ードウェアの構成を示すものである。図1に示すよう
に、この発明が適用された中央処理装置1は、CPUコ
ア部2と、ROM3と、RAM4と、レジスタバンク5
−1〜5−nと、割り込みコントローラ6と、I/Oポ
ート7とを含んでいる。レジスタバンク5−1〜5−n
は、例えばバンク数が15(n=15)であり、これら
のレジスタバンクは各タスクに占有される。このレジス
タバンク5−1〜5−nを利用することで、ディスパッ
チ時間が短縮できる。
【0016】すなわち、従来では、システムコールが発
行されると、コンテキストの退避/復帰の処理が行われ
る。このため、ディスパッチ時間が長くかかる。これに
対して、各レジスタバンク5−1〜5−nを各タスクに
対応して用意しておけば、コンテキスト等の退避/復帰
がレジスタバンク5−1〜5−nを切り替えることによ
り行なえる。
【0017】しかしながら、レジスタバンク5−1〜5
−nの数は有限(例えば15)である。このため、各タ
スクを各レジスタバンク5−1〜5−nに1対1に対応
させると、並行して動作するタスクの数は、レジスタバ
ンク5−1〜5−nの数に制限され、レジスタバンク5
−1〜5−nの空きがなければ、処理を実行することが
できないことになる。
【0018】そこで、このようなレジスタバンク5−1
〜5−nの数によるタスクの数の制限を無くすために、
複数あるレジスタバンク5−1〜5−nが個々にオペレ
ーティングシステムにより管理され、起動時に空いてい
るレジスタバンク5−1〜5−nにタスクが動的に割り
当てられる。割り当てられたレジスタバンク5−1〜5
−nがそのタスク用の資源として占有される。タスクが
終了されると、占有されていたレジスタバンク5−1〜
5−nが解放される。オペレーティングシステムが管理
しているレジスタバンク5−1〜5−nに空きが無けれ
ば、起動したタスクはレジスタバンクの空き待ちの状態
となり、タスクが占有しているレジスタバンク5−1〜
5−nを解放するまで、待機される。
【0019】以下、具体例について説明する。図2にお
いて、B1〜B4は、レジスタバンクである。これらの
レジスタバンクB1〜B4は、図1におけるレジスタバ
ンク5−1〜5−nに対応している。レジスタバンク5
−1〜5−nのバンク数は例えば15であるが、ここで
は説明を簡単とするため、バンク数を4としている。こ
れらレジスタバンクB1〜B4のうち、レジスタバンク
B1〜B3は実行される各タスクに割り当てられ、レジ
スタバンクB4はオペレーティングシステムOS用に割
り当てられる。T1〜T4はタスクであり、これらのタ
スクT1〜T4は、同じ優先度のものである。Q1は、
実行されるタスクが待機される実行可能タスク行列であ
る。Q2は、レジスタバンク待ちのタスクが待機される
バンク空き待ち行列である。
【0020】4つのタスクT1〜T4は、先ず、実行可
能タスク行列Q1に待機される。これらのタスクのう
ち、先ず、タスクT1、T2の順に起動されるとする
と、タスクT1にはレジスタバンクB1が資源として割
り当てられ、タスクT2にはレジスタバンクB2が資源
として割り当てられる。各レジスタバンクB1、B2
は、処理が終了するまで、これらの各タスクT1、T2
に占有される。
【0021】次に、タスクT3、T4が起動されるとす
る。この時、レジスタバンクB3は空いている。このた
め、タスクT3にレジスタバンクB3が資源として割り
当てられる。これで、全てのレジスタバンクB1〜B4
が使われたことになり、タスクT4に割り当てるべきレ
ジスタバンクがなくなる。そこで、タスクT4は、バン
ク空き待ち行列Q2に待機される。
【0022】その後、レジスタバンクB1〜B3に割り
当てられたいずれかのタスクの処理が終了して休止状態
になったとすると、オペレーティングシステムOSは、
バンク待ち行列Q2に待機されていたタスクT4を、処
理の終了したタスクのレジスタバンクに割り当てる。
【0023】図3及び図4は、第2の例である。この例
では、5つのタスクT11、T12、T13、T14、
T15が実行可能タスク行列Q1に待機される。図3に
示すように、これらのタスクのうち、タスクT13、T
14、T15の順に起動されるとすると、タスクT13
にはレジスタバンクB1が資源として割り当てられ、タ
スクT14にはレジスタバンクB2が資源として割り当
てられ、タスクT15にはレジスタバンクB3が資源と
して割り当てられる。各レジスタバンクB1〜B3は、
処理が終了するまで、これらの各タスクT13、T1
4、T15に占有される。
【0024】次に、タスクT11、T12が起動される
とする。この時、レジスタバンクB1、B2、B3は、
タスクT13、T14、T15に占有されているため、
タスクT11、T12に割り当てるべきレジスタバンク
がない。このため、タスクT11、T12は、バンク空
き待ち行列Q2に待機される。
【0025】その後、タスクT14が処理を終了して休
止状態になったとすると、図4で破線で示すように、オ
ペレーティングシステムOSは、タスクT14に占有さ
れていたレジスタバンクB2を解放し、バンク待ち行列
Q2で待機されていたタスク(この場合にはタスクT1
1)にこのレジスタバンクB4を割り当てる。更にその
後、レジスタバンクB1〜B3に割り当てられたいずれ
かのタスクの処理が終了して休止状態になったときに、
オペレーティングシステムOSは、バンク待ち行列Q2
に待機されていたタスクT12を、処理の終了したタス
クのレジスタバンクに割り当てる。
【0026】
【発明の効果】この発明によれば、複数のタスクに対応
してレジスタバンクが用意される。このため、コンテキ
スト等の退避/復帰がレジスタバンクの切り替えること
により行なえ、ディスパッチ時間が短縮できる。そし
て、複数あるレジスタバンクが個々にオペレーティング
システムにより管理され、起動時に空いているレジスタ
バンクにタスクが動的に割り当てられ、タスクが終了さ
れると、占有されていたレジスタバンクが解放される。
オペレーティングシステムが管理しているレジスタバン
クに空きが無ければ、起動したタスクはレジスタバンク
の空き待ちの状態となり、タスクが占有しているレジス
タバンクを解放するまで、他のタスクが待機される。こ
のため、実行されるタスクの数がレジスタバンクの数に
制限されなくなる。
【図面の簡単な説明】
【図1】この発明が適用できる中央処理装置の一例のブ
ロック図である。
【図2】この発明の一実施例の動作説明図である。
【図3】この発明の一実施例の動作説明図である。
【図4】この発明の一実施例の動作説明図である。
【符号の説明】
5−1〜5−n,B1〜B4 レジスタバンク T1〜T4,T1〜T15 タスク OS オペレーティングシステム Q1 実行可能タスク行列 Q2 バンク空き待ち行列

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のタスクが並列的に実行されるマル
    チタスク処理を行うマルチタスク処理装置において、 各タスクに対応して占有される複数のレジスタバンクを
    有し、 上記複数のレジスタバンクが各タスクに動的に割り当て
    られるようにしたマルチタスク処理装置。
  2. 【請求項2】 更に、レジスタバンクの空き待ち行列手
    段を有し、 上記各レジスタバンクは、そのバンクのタスクの処理が
    終了した時点でそのタスクを解放し、タスクを解放した
    バンクに上記空き待ち行列手段に待機されているタスク
    を割り当てるようにした請求項1記載のマルチタスク処
    理装置。
JP30864093A 1993-11-15 1993-11-15 マルチタスク処理装置 Expired - Fee Related JP3644042B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30864093A JP3644042B2 (ja) 1993-11-15 1993-11-15 マルチタスク処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30864093A JP3644042B2 (ja) 1993-11-15 1993-11-15 マルチタスク処理装置

Publications (2)

Publication Number Publication Date
JPH07141208A true JPH07141208A (ja) 1995-06-02
JP3644042B2 JP3644042B2 (ja) 2005-04-27

Family

ID=17983494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30864093A Expired - Fee Related JP3644042B2 (ja) 1993-11-15 1993-11-15 マルチタスク処理装置

Country Status (1)

Country Link
JP (1) JP3644042B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004063925A1 (ja) 2003-01-09 2004-07-29 Japan Science And Technology Agency コンテキスト切り替え方法・装置・プログラム・記憶媒体、中央演算装置
US6948009B2 (en) * 2002-06-04 2005-09-20 International Business Machines Corporation Method, system, and article of manufacture for increasing processor utilization
US7412590B2 (en) 2004-09-21 2008-08-12 Sanyo Electric Co., Ltd. Information processing apparatus and context switching method
WO2009063536A1 (ja) * 2007-11-16 2009-05-22 Netcleus Systems Corporation タスク処理装置
JP2011154534A (ja) * 2010-01-27 2011-08-11 Fujitsu Semiconductor Ltd リコンフィギュラブル回路および半導体集積回路
US8266629B2 (en) 2008-12-02 2012-09-11 Hitachi, Ltd. Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system
JP2015534188A (ja) * 2012-09-28 2015-11-26 インテル・コーポレーション ユーザレベルのスレッディングのために即時のコンテキスト切り替えを可能とする新規の命令および高度に効率的なマイクロアーキテクチャ
US10949634B2 (en) 2005-06-03 2021-03-16 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US11317050B2 (en) 2005-03-11 2022-04-26 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948009B2 (en) * 2002-06-04 2005-09-20 International Business Machines Corporation Method, system, and article of manufacture for increasing processor utilization
WO2004063925A1 (ja) 2003-01-09 2004-07-29 Japan Science And Technology Agency コンテキスト切り替え方法・装置・プログラム・記憶媒体、中央演算装置
US8020169B2 (en) 2003-01-09 2011-09-13 Japan Science And Technology Agency Context switching system having context cache and a register file for the save and restore context operation
US7412590B2 (en) 2004-09-21 2008-08-12 Sanyo Electric Co., Ltd. Information processing apparatus and context switching method
US11968464B2 (en) 2005-03-11 2024-04-23 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11863897B2 (en) 2005-03-11 2024-01-02 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11323650B2 (en) 2005-03-11 2022-05-03 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11323649B2 (en) 2005-03-11 2022-05-03 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11317050B2 (en) 2005-03-11 2022-04-26 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11238252B2 (en) 2005-06-03 2022-02-01 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US12001913B2 (en) 2005-06-03 2024-06-04 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US11238251B2 (en) 2005-06-03 2022-02-01 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US12026580B2 (en) 2005-06-03 2024-07-02 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US12020111B2 (en) 2005-06-03 2024-06-25 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US12001914B2 (en) 2005-06-03 2024-06-04 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US11604933B2 (en) 2005-06-03 2023-03-14 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US11625550B2 (en) 2005-06-03 2023-04-11 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US10949634B2 (en) 2005-06-03 2021-03-16 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
WO2009063536A1 (ja) * 2007-11-16 2009-05-22 Netcleus Systems Corporation タスク処理装置
US8266629B2 (en) 2008-12-02 2012-09-11 Hitachi, Ltd. Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system
JP2011154534A (ja) * 2010-01-27 2011-08-11 Fujitsu Semiconductor Ltd リコンフィギュラブル回路および半導体集積回路
US9720879B2 (en) 2010-01-27 2017-08-01 Cypress Semiconductor Corporation Reconfigurable circuit having rows of a matrix of registers connected to corresponding ports and a semiconductor integrated circuit
JP2015534188A (ja) * 2012-09-28 2015-11-26 インテル・コーポレーション ユーザレベルのスレッディングのために即時のコンテキスト切り替えを可能とする新規の命令および高度に効率的なマイクロアーキテクチャ

Also Published As

Publication number Publication date
JP3644042B2 (ja) 2005-04-27

Similar Documents

Publication Publication Date Title
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US7925869B2 (en) Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
JP3557947B2 (ja) 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体
US6715016B1 (en) Multiple operating system control method
US20050015768A1 (en) System and method for providing hardware-assisted task scheduling
TWI454933B (zh) 管理一虛擬機器監視器中超級呼叫的裝置與方法以及虛擬機器監視器
US5666523A (en) Method and system for distributing asynchronous input from a system input queue to reduce context switches
US20060130062A1 (en) Scheduling threads in a multi-threaded computer
GB2453284A (en) Mechanism for notifying a kernel of a thread entering a critical section.
JPH06250853A (ja) プロセス・スケジューリングの管理方法およびシステム
JP3644042B2 (ja) マルチタスク処理装置
EP0052713B1 (en) A process management system for scheduling work requests in a data processing system
US11301304B2 (en) Method and apparatus for managing kernel services in multi-core system
KR20190085391A (ko) Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치
WO2004061663A2 (en) System and method for providing hardware-assisted task scheduling
JPH05108380A (ja) データ処理システム
JP2002163117A (ja) タスクスケジューリング装置
JP2693916B2 (ja) タスクスケジュール方法
Saranya et al. An implementation of partitioned scheduling scheme for hard real-time tasks in multicore linux with fair share for linux tasks
Rothberg Interrupt handling in Linux
JPH1124946A (ja) タスクスケジューリング装置および方法
JP2579008B2 (ja) 時分割マルチタスク実行装置
WO1992003783A1 (en) Method of implementing kernel functions
JP2594557B2 (ja) マルチタスク処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040826

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050124

LAPS Cancellation because of no payment of annual fees