JP3583800B2 - 連想メモリ - Google Patents
連想メモリ Download PDFInfo
- Publication number
- JP3583800B2 JP3583800B2 JP01677194A JP1677194A JP3583800B2 JP 3583800 B2 JP3583800 B2 JP 3583800B2 JP 01677194 A JP01677194 A JP 01677194A JP 1677194 A JP1677194 A JP 1677194A JP 3583800 B2 JP3583800 B2 JP 3583800B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- stored
- search
- 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
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【産業上の利用分野】
本発明は、複数の格納データを記憶しておき、検索データを入力し、入力された検索データに対応する格納データを検索する連想メモリに関する。
【0002】
【従来の技術】
従来より、上記のような検索機能を備えた連想メモリ(Associative Memory,内容アドレス式メモリ;Content Addressable Memory)が提案されている。
図2は、連想メモリの一例を表わした回路ブロック図である。
【0003】
この連想メモリ10には、例えば32ビットを1ワードとする、互いに図の横方向に並ぶ32ビットのメモリセルからなるメモリワード11_1,11_2,…,11_nが多数備えられている。またこの連想メモリ10は、1ワードの検索データREF_DATAが入力されラッチされる検索データレジスタ12および検索データをビット毎にマスクするマスクデータが格納されるマスクレジスタ13を備え、検索データレジスタ12にラッチされた検索データのうち、マスクレジスタ13に格納されたマスクデータによりマスクされていない全部もしくは所定の一部のビットパターンと、各メモリワード11_1,11_2,…,11_nに記憶された格納データのうち上記ビットパターンと対応する部分のビットパターンとの一致不一致が比較され、各メモリワード11_1,11_2,…,11_nそれぞれに対応して備えられた一致線14_1,14_2,…,14_nのうちビットパターンが一致したメモリワード11_1,11_2,…,11_nに対する一致線14_1,14_2,…,14_nに論理‘1’の一致信号が出力される。それ以外の一致線14_1,14_2,…,14_nは論理‘0’にとどまる。
【0004】
これらの一致線14_1,14_2,…,14_nに出力された信号は、各一致フラグレジスタ15_1,15_2,…,15_nに格納される。ここでは、一例として、図示のように、各一致フラグレジスタ15_1,15_2,…,15_nにそれぞれ‘0’,‘1’,‘1’,‘0’,…,‘0’,‘0’が格納されたものとする。これらの一致フラグレジスタ15_1,15_2,…,15_nに格納された信号はアドレスエンコーダ16に入力され、このアドレスエンコーダ16からは、論理‘1’の信号が格納された一致フラグレジスタ(ここでは一致フラグレジスタ15_2と一致フラグレジスタ15_3の2つ)のうちの優先度の最も高い一致フラグレジスタに対応するアドレス信号が出力される。ここでは、添字が若いほど優先順位が高いものとし、従ってここでは一致フラグレジスタ15_2に対応するメモリアドレスが出力される。このアドレスエンコーダ16から出力されたアドレス信号ADは、必要に応じてデコーダ17に入力される。デコーダ17ではこの入力されたアドレス信号ADをデコードして各メモリワード11_1,11_2,…,11_nのそれぞれに対応して備えられたワード線18_1,18_2,…,18_nのうちの入力されたアドレス信号ADに対応するいずれか1本のワード線(ここではワード線18_2)にアクセス信号を出力する。これによりアクセス信号の出力されたワード線18_2に対応するメモリワード11_2に記憶されているデータが出力レジスタ19に読み出される。
【0005】
図3は、図2に示す連想メモリ中の1つのメモリワードを表わした詳細回路図である。
このメモリワード11は、同一構成の32個のメモリセル11_1,11_2,…,11_32から構成されている。各メモリセル11_1,11_2,…,11_32には、互いの出力が互いの入力に接続された、第1インバータ20_1,20_2,…,20_32と第2インバータ21_1,21_2,…,21_32が備えられており、これらのインバータ20_1,21_1;20_2,21_2;…;20_32,21_32により各メモリセル11_1,11_2,…,11_32に論理‘1’もしくは論理‘0’の1ビットの情報が記憶される。
【0006】
また各メモリセル11_1,11_2,…,11_32において、第1のインバータ20_1,20_2,…,20_32の出力はトランジスタ22_1,22_2,…,22_32を介してビット線23_1,23_2,…,23_32と接続されており、このトランジスタ22_1,22_2,…,22_32のゲートはワード線24に接続されている。また第2のインバータ21_1,21_2,…,21_32の出力はトランジスタ25_1,25_2,…,25_32を介してビットバー線26_1,26_2,…,26_32と接続されており、このトランジスタ25_1,25_2,…,25_32のゲートもワード線24に接続されている。さらに各メモリセル11_1,11_2,…,11_32において、ビット線23_1,23_2,…,23_32とビットバー線26_1,26_2,…,26_32との間をつなぐように互いにシリーズに接続された2つのトランジスタ27_1,28_1;27_2,28_2;…;27_32,28_32が配置されており、これら2つのトランジスタ27_1,28_1;27_2,28_2;…;27_32,28_32のうちの一方のトランジスタ27_1,27_2,…,27_32のゲートは第1のインバータ20_1,20_2,…,20_32の出力、他方のトランジスタ28_1,28_2,…,28_32のゲートは第2のインバータ21_1,21_2,…,21_32の出力と接続されている。
【0007】
また一致線140には、各メモリセル11_1,11_2,…,11_32に対応して1つずつトランジスタ290_1,290_2,…,290_32が備えられており、それらのトランジスタ290_1,290_2,…,290_32は互いにシリーズに接続され、それらのトランジスタ290_1,290_2,…,290_32の各ゲートは、各2つのトランジスタ27_1,28_1;27_2,28_2;…;27_32,28_32の中点と接続されている。
【0008】
またこの一致線140にはもう1つのトランジスタ290_0がシリーズに接続されており、この一致線140の図5の左端はこのトランジスタ290_0を介して接地されている。このトランジスタ290_0のゲートは制御線300に接続されている。さらにこの一致線の図5の右側にはインバータ310が備えられており、一致線140はこのインバータ310の出力側にも延びて各一致フラグレジスタ15_1,15_2,…,15_n(図2参照)と接続されている。このインバータ310の入力と電源VDDとの間には2つのP型トランジスタ320,330が備えられており、それらのうちの一方のP型トランジスタ320のゲートは制御線300と接続され、他方のP型トランジスタ330のゲートはインバータ310の出力と接続されている。
【0009】
このような構造のメモリワード及びその周辺回路を備えた連想メモリにおいて、一致検索は以下のようにして行なわれる。
先ず制御線300が論理‘0’となりP型トランジスタ320が導通状態となって一致線140がプリチャージされる。この際、トランジスタ290_0は非導通状態となって一致線140が確実に接地ラインから切り離され、これにより確実にプリチャージが行なわれる。このようにして一致線140が先ずプリチャージされた後検索が行なわれる。
【0010】
ここで、メモリセル11_1には、論理‘1’の情報が記憶されているものとする。即ちこの場合第1のインバータ20_1の出力側が論理‘1’、第2のインバータ21_1の出力側が論理‘0’の状態にある。
このメモリセル11_1に対して論理‘1’の検索が行なわれるものとする。即ち、ビット線23_1が論理‘1’、ビットバー線26_1が論理‘0’とされる。ワード線24は論理‘0’のままの状態に保持されている。また制御線300が論理‘1’となり、トランジスタ290_0が導通状態となる。この場合トランジスタ27_1のゲートには論理‘1’の電圧が印加され、ビット線23_1の論理‘1’の信号がトランジスタ290_1のゲートに印加され、これによりトランジスタ290_1が導通状態となる。即ちメモリセル11_1に記憶されたビット情報とビット線23_1、ビットバー線26_1を経由して入力された検索データ中のビット情報が一致する場合に、対応するトランジスタ290_1が導通状態となる。
【0011】
また、メモリセル11_2には論理‘0’の情報が記憶されているものとする。この場合第1のインバータ20_2の出力側が論理‘0’、第2のインバータ21_2の出力側が論理‘1’の状態にある。
このメモリセル11_2に対してやはり論理‘1’の検索が行なわれるものとする。即ち、ビット線23_2が論理‘1’、ビットバー線26_2が論理‘0’とされ、制御線300が論理‘1’とされる。この場合、トランジスタ28_2を経由して論理‘0’の状態にあるビットバー線26_2の信号がトランジスタ290_2のゲートに印加され、したがってこのトランジスタ290_2は非導通状態にととどまることになる。即ち不一致の場合、一致線14にプリチャージされていた電荷はディスチャージされない。
【0012】
また、マスクをかけたビットについては、メモリセル11_32に示すように、ビット線23_32、ビットバー線26_32の双方とも論理‘1’とされる。この場合このメモリセル11_32に論理‘1’の情報が記憶されているか論理‘0’の情報が記憶されているかに応じてトランジスタ27_32もしくはトランジスタ28_32のいずれかが導通状態となり、いずれの場合もトランジスタ290_32は導通状態となる。
【0013】
このように、図3に示すメモリワードでは、メモリワードに記憶されたビットパターンとビット線23_1,23_2,…,23_32、ビットバー線26_1,26_2,…,26_32を経由して入力された検索データのビットパターンとが一致する(マスクのかけられたビットについては、上述のように一致しているものとみなされる)場合、一致線140にプリチャージされた電荷がトランジスタ290_32,…,290_2,290_1,290_0を経由して流れ出し、これにより一致線140がディスチャージされ、この一致線140のうち図3におけるインバータ310の左側の部分は論理‘0’の状態となる。この論理‘0’がインバータ310で反転され、論理‘1’の一致信号がこのインバータ310から出力され、各一致フラグレジスタ15_1,15_2,…,15_32(図2参照)に入力される。
【0014】
またメモリワードに記憶されたビットパターンとビット線23_1,23_2,…,23_32、ビットバー線26_1,26_2,…,26_32を経由して入力された検索データのビットパターンとが不一致の場合には、一致線140はプリチャージによる論理‘1’の状態にとどまり、この論理‘1’がインバータ310で反転され、論理‘0’の不一致信号が出力される。
【0015】
このように、図3に示すメモリワードは、検索に先立って一致線140がP型トランジスタ320を経由してプリチャージされ、検索により一致した場合にだけトランジスタ290_0,290_1,290_2,…,290_32を経由してディスチャージされるように構成したため、各検索毎にディスチャージされるのは、ほとんどの場合多数の一致線のうちの極く一部であって、大部分の一致線はプリチャージされた状態にとどまり、したがって次の検索に先立ってプリチャージする必要のある一致線の本数は少なくて済み、検索に伴う消費電力が低く押えられる。
【0016】
尚、図3に示す回路構成は一例に過ぎず、種々の構造のものが知られ、あるいは考えられている。
【0017】
【発明が解決しようとする課題】
例えば上記のように、1ワードが32ビットで構成された連想メモリを用いて、通信回線等を経由してきたデータをその連想メモリに入力して検索を行なうことを考える。
図4は、通信回線等を経由して送信されてきたデータの構造図である。
【0018】
例えば8ビットパラレルの通信回路を経由して各時刻 …,ti ,ti+1 ,ti+2 ,… に、例えばそれぞれ8ビットのデータ …,Di ,Di+1 ,Di+2 ,… が送信されてきたものとする。この場合、典型的には4つのデータ、例えばデータDi ,Di+1 ,Di+2 ,Di+3 の組合せにより、1ワードが32ビットの連想メモリにおける検索データが構成されるが、データDi ,Di+1 ,Di+2 ,Di+3 をそれらの送信の順序に配列することにより検索データが構成されるとは限らず、例えば検索データREF_DATAとして、
REF_DATA={Di+1 ,Di ,Di+3 ,Di+2 } …(1)
等、それらのデータDi ,Di+1 ,Di+2 ,Di+3 の順序が入れ替わったデータを検索データREF_DATAとする必要を生じる場合がある。
【0019】
そのような場合、従来は、連想メモリとは別にマイクロプロセッサを備え、順次入力されてくるデータ…,Di ,Di+1 ,Di+2 ,…をそのマイクロプロセッサの内部バッファに一旦格納し、そのマイクロプロセッサで格納されたデータ…,Di ,Di+1 ,Di+2 ,…の順序を入れ替えて検索データREF_DATAを合成した後に、その検索データを連想メモリに入力していた。このため、システムの複雑化、検索速度の低下を招いていた。
【0020】
本発明は、上記事情に鑑み、上記のように、検索データが複数のデータに跨り、しかもそれら複数のデータの順序を入れ替える必要が生じる場合であっても高速検索を可能とする連想メモリを提供することを目的とする。
【0021】
【課題を解決するための手段】
上記目的を達成する連想メモリは、各格納データをそれぞれ記憶する複数のメモリワードを備え、これら複数のメモリワードそれぞれに各格納データを記憶しておき、検索データを入力し、入力された検索データに対応する格納データが記憶されたメモリワードを検索する連想メモリにおいて、
(1)入力された前記検索データを構成するビットパターンの配列順を変更する配列変換回路
(2)上記配列変換回路から出力された検索データを上記複数のメモリワードに入力して、該検索データに対応する格納データが記憶されたメモリワードを検索する検索回路
を備えたことを特徴とする。
【0022】
ここで、上記本発明の連想メモリにおいて、ビットパターンの配列順序を定義する順序入替データを書き換え自在に格納する順序入替データレジスタを備え、上記配列変換回路が、前記順序入替データレジスタに格納された順序入替データに基づいてビットパターンの配列順を変更するものであることが好ましい。
【0023】
【作用】
上記本発明の連想メモリは、上記(1)の配列変換回路を備えたものであるため、データの順序入替えのためのマイクロプロセッサを備える必要がなく、システムの簡単化、検索速度の向上が図られる。
また、上記本発明の連想メモリにおいて、上記順序入替データレジスタを備え、その順序入替データレジスタに格納された順序入替えデータに基づいてビットパターンの順序を入れ替えるように構成すると、順序入替データレジスタに格納する順序入替データに応じてビットパターンの順序を入れ替えることができ、柔軟性の高い連想メモリが実現する。
【0024】
【実施例】
以下、本発明の実施例について説明する。
図1は、本発明の一実施例の、本発明に特徴的な部分を示した部分回路図である。
この連想メモリは32ビットで1ワードが構成されており、この連想メモリの検索データレジスタ120には、各時刻ti ,ti+1 ,…に入力された8ビットパラレルの各データDi ,Di+1 ,…が、それら各データDi ,Di+1 ,…の入力と同期して入力されるライトイネーブル信号WE_の各立ち下がりのタイミングで、図示のように、入力された順序に格納される。この検索データレジスタ120は、図2に示す検索データレジスタ12に相当する。
【0025】
検索データレジスタ120に検索のためのデータDi ,Di+1 ,Di+2 ,Di+3 が格納されると、以下に説明するように、必要に応じてそれらのデータDi ,Di+1 ,Di+2 ,Di+3 が入れ替えられ、その入れ替えられたデータが図2に示すマスクデータ13を経由して各メモリワード11_1,11_2,…,11_nに入力され、前述したようにして一致検索が実行される。
【0026】
図1に示す実施例では、データの入れ替えは以下のようにして行なわれる。
図1に示す連想メモリには、順序入替フラグレジスタ110とセレクタ130が備えられている。
本実施例では、順序入替フラグレジスタ110,130が、それぞれ、本発明にいう順序入替データレジスタ、配列変換回路に相当する。
【0027】
順序入替フラグレジスタ110は、4個の、それぞれが4ビットのレジスタ110_1,110_2,110_3,110_4で構成されており、各レジスタ110_1,110_2,110_3,110_4は、32ビットの検索データレジスタ120を8ビットずつに4つに分けたとき、自分が担当する8ビットのデータをどの位置に移動させるかを示す順序入替フラグを格納するものである。この順序入替フラグレジスタ110には、データDi ,Di+1 ,…が入力されるに先立つ準備段階において、この連想メモリの使用者により定義された順序入替えフラグが書き込まれる。
【0028】
例えば、右端のレジスタ110_1は、検索データレジスタ120の下位(右端)の8ビットのデータを担当するレジスタであり、そのレジスタ110_1に’0010’という順序入替フラグが格納されているため、その下位8ビットのデータは、8ビットずつに分けたときの右から2番目の位置に移動される。
また、セレクタ130は、図示のように、多数のトライステートバッファ130_1,130_2,…,130_16により構成されている。尚、ここに図示する各トライステートバッファ130_1,130_2,…,130_16は、図示の煩雑さを避けるため8ビット分ずつまとめて図示したものであり、実際にはこの8倍のトライステートバッファで構成される。各トライステートバッファ130_1,130_2,…,130_16は、順序入替フラグレジスタ110の各ビットにより制御されており、各ビットが’1’のときは対応するトライステートバッファ130_1,130,…,130_16はオン状態となり、各ビットが’0’のときは、対応するトライステートバッファ130_1,130_2,…,130_16はオフ状態となる。したがって、図示の場合、検索データレジスタ120の下位8ビット(右端)に格納されたDi は、トライステートバッファ130_5を経由して右から2番目から出力され、検索データレジスタ120の右から2番目の8ビットのデータはDi+1 は、トライステートバッファ130_5を経由して右端から出力され、検索データレジスタ120の右から3番目の8ビットのデータDi+2 は、トライステートバッファ130_12を経由して左端から出力され、検索データレジスタ120の左端の8ビットのデータDi+ 3 はトライステートバッファ130_15を経由して右から3番目から出力される。
【0029】
このようにして、前述した(1)式のように入れ替えが行なわれ、検索データREF_DATAが生成される。
尚、上記実施例は、送信されてきたデータDi ,Di+1 ,Di+2 ,…を一旦その入力された順序のまま検索データレジスタ120に格納し、その後そのデータの順序を入れ替えるようにした例であるが、各データDi ,Di+1 ,Di+2 ,…が送信されてくるたびに、その送信されてきたデータの格納先を変更しながら検索データレジスタに格納するようにしてもよい。
【0030】
また、上記実施例は、8ビットを単位としてデータの順序を入れ替えるように構成した例であるが、データ入れ替えの単位は8ビットに限られるものではなく、4ビット単位、あるいは16ビット単位等、必要に応じて構成することができる。また、必要に応じて、1ビット毎に順序を入れ替えるように構成してもよい。
【0031】
【発明の効果】
以上説明したように、本発明の連想メモリによれば、入力されたデータを入れ替えて検索データを生成し、その検索データを用いて検索を行なうことができるため、連想メモリとは別にマイクロプロセッサ等を備えてデータの順序を入れ替える必要がなく、システムの簡単化、検索の高速化に寄与する。
【図面の簡単な説明】
【図1】本発明の一実施例の、本発明に特徴的な部分を示した部分回路図である。
【図2】連想メモリの一例を表わした回路ブロック図である。
【図3】図2に示す連想メモリ中の1つのメモリワードを表わした詳細回路図である。
【図4】通信回線等を経由して送信されてきたデータの構造図である。
【符号の説明】
10 連想メモリ
11_1,11_2,…,11_n メモリワード
12 検索データレジスタ
13 マスクレジスタ
110 順序入替フラグレジスタ
120 検索データレジスタ
130 セレクタ
Claims (2)
- 各格納データをそれぞれ記憶する複数のメモリワードを備え、これら複数のメモリワードそれぞれに各格納データを記憶しておき、検索データを入力し、入力された検索データに対応する格納データが記憶されたメモリワードを検索する連想メモリにおいて、
入力された前記検索データを構成するビットパターンの配列順を変更する配列変換回路と、
前記配列変換回路から出力された検索データを前記複数のメモリワードに入力して、該検索データに対応する格納データが記憶されたメモリワードを検索する検索回路とを備えたことを特徴とする連想メモリ。 - ビットパターンの配列順序を定義する順序入替データを書き換え自在に格納する順序入替データレジスタを備え、
前記配列変換回路が、前記順序入替データレジスタに格納された順序入替データに基づいてビットパターンの配列順を変更するものであることを特徴とする請求項1記載の連想メモリ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01677194A JP3583800B2 (ja) | 1994-02-10 | 1994-02-10 | 連想メモリ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01677194A JP3583800B2 (ja) | 1994-02-10 | 1994-02-10 | 連想メモリ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07226092A JPH07226092A (ja) | 1995-08-22 |
JP3583800B2 true JP3583800B2 (ja) | 2004-11-04 |
Family
ID=11925484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01677194A Expired - Fee Related JP3583800B2 (ja) | 1994-02-10 | 1994-02-10 | 連想メモリ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3583800B2 (ja) |
-
1994
- 1994-02-10 JP JP01677194A patent/JP3583800B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07226092A (ja) | 1995-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6961810B2 (en) | Synchronous content addressable memory | |
US6243281B1 (en) | Method and apparatus for accessing a segment of CAM cells in an intra-row configurable CAM system | |
US6137707A (en) | Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device | |
US6381673B1 (en) | Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device | |
US7630230B2 (en) | Static random access memory architecture | |
US6081440A (en) | Ternary content addressable memory (CAM) having fast insertion and deletion of data values | |
US6188629B1 (en) | Low power, static content addressable memory | |
US7113415B1 (en) | Match line pre-charging in a content addressable memory having configurable rows | |
JP2004295967A (ja) | 連想メモリ | |
WO1999023663A1 (en) | Synchronous content addressable memory with single cycle operation | |
US6868475B2 (en) | Content addressable memory having data width extension capability | |
US6799243B1 (en) | Method and apparatus for detecting a match in an intra-row configurable cam system | |
US6236585B1 (en) | Dynamic, data-precharged, variable-entry-length, content addressable memory circuit architecture with multiple transistor threshold voltage extensions | |
US6813680B1 (en) | Method and apparatus for loading comparand data into a content addressable memory system | |
JP3583800B2 (ja) | 連想メモリ | |
US6801981B1 (en) | Intra-row configurability of content addressable memory | |
US20050083719A1 (en) | Semiconductor memory device used for cache memory | |
US6795892B1 (en) | Method and apparatus for determining a match address in an intra-row configurable cam device | |
US7230839B2 (en) | Magnitude content addressable memory | |
Mahendra et al. | Design and Implementation of Drivers and Selectors for Content Addressable Memory (CAM) | |
JP3573779B2 (ja) | 連想メモリ | |
EP1271548A1 (en) | Associative memory with AND gate match signal combining circuitry | |
JP3597881B2 (ja) | 連想メモリ | |
US20010005373A1 (en) | Virtual channel DRAM | |
JPH08124387A (ja) | 連想メモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040610 |
|
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: 20040727 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040730 |
|
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: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100806 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |