Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2887038B2 - 除算処理装置 - Google Patents
[go: Go Back, main page]

JP2887038B2 - 除算処理装置 - Google Patents

除算処理装置

Info

Publication number
JP2887038B2
JP2887038B2 JP5035246A JP3524693A JP2887038B2 JP 2887038 B2 JP2887038 B2 JP 2887038B2 JP 5035246 A JP5035246 A JP 5035246A JP 3524693 A JP3524693 A JP 3524693A JP 2887038 B2 JP2887038 B2 JP 2887038B2
Authority
JP
Japan
Prior art keywords
comparison
divisor
value
remainder
numerical value
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
Application number
JP5035246A
Other languages
English (en)
Other versions
JPH06250826A (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.)
PII EFU YUU KK
Original Assignee
PII EFU YUU KK
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 PII EFU YUU KK filed Critical PII EFU YUU KK
Priority to JP5035246A priority Critical patent/JP2887038B2/ja
Publication of JPH06250826A publication Critical patent/JPH06250826A/ja
Application granted granted Critical
Publication of JP2887038B2 publication Critical patent/JP2887038B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,除算処理装置,特に除
数が限定されている場合において除算により商と余りを
算出する除算処理装置に関する。
【0002】
【従来の技術】数値データを転送する際,転送中に生じ
る誤りに対処するために,数値データの末尾にチェック
ディジィットを付して転送している。
【0003】チェックデジットには,代表的なものとし
て,次の方法がある。 a.モジュラス7 b.モジュラス9 c.モジュラス10 d.モジュラス11 これらの方法では,数値データを7,9,10,または
11で 除算した結果得られる余りを利用してチェック
デジットを作成する。
【0004】例えば,数値データ「12345678
9」に対してモジュラス7方法によりチェックデジット
を作成する場合,次のように行う。123456789
÷7=17636684余り1したがって,チェックデ
ジットは1となり,転送データは,123456789
1のようになる。
【0005】また,数値データの受信側では,チェック
デジットチェックを行って,受信した数値データの誤り
の有無を確認している。チェックデジットチェックに
は,代表的なものとして,次の方法がある。
【0006】a.モジュラス7チェック b.モジュラス9チェック c.モジュラス10チェック d.モジュラス11チェック これらの方法においても,受信データを7,9,10,
または11で除算した結果得られる余りを利用する。
【0007】このように,数値データ処理においては,
限定された除数(上記の場合,7,9,10,または1
1)を使用する除算が頻繁に行われている。従来は,上
述したような限定された除数を使用する除算も,通常の
除算と同じく,XX÷xx(被除数÷除数)という処理
の繰り返しによって,結果である商と余りを算出してい
た。
【0008】
【発明が解決しようとする課題】上述したように,従来
は,限定された除数を使用する除算も,通常の除算と同
じく,XX÷xx(被除数÷除数)という処理の繰り返
しによって,結果である商と余りを算出していたので,
処理速度が遅い,という問題があった。
【0009】本発明は,上記の問題点を解決して,除算
の高速化を実現することのできる除算処理装置,特に除
数が限定されている場合において除算により商と余りを
算出する除算処理装置を提供することを目的とする。
【0010】
【課題を解決するための手段】上記の目的を達成するた
めに,本発明に係る除算処理装置は,次のように構成す
る。
【0011】(1)被除数を上位桁から順次除数で除算
して商および余りを算出する除算処理装置であって,
数1〜9から成るインデックスの各々ごとに、除数のイ
ンデックス倍の比較数値を対応づけた除数テーブルと、
除数テーブルから比較数値を選択する比較数値設定部
と、 被除数の先頭から1桁ずつ切りだした数値と,前回
算出された余りとを合成して次の比較対象数値を生成
る比較対象数値生成部と、 生成された比較対象数値ごと
に、該比較対象数値と除数テーブルから選択された比較
数値とを比較し、比較対象数値よりも小さくかつもっと
も比較対象数値に近い比較数値を決定する比較演算処理
部と、 決定された比較数値に対応するインデックスを商
として出力する商同定処理部と、 比較対象数値から上記
決定された比較数値を減算して余りを算出する余り算出
部とを備え、比較演算処理部は,除数テーブルのインデ
ックスの中央値に対応する、除数の倍数の数値を比較数
の初期値として選択して設定し、その後、比較演算処
理部により比較対象数値と該比較数値の初期値との比較
演算結果の大小関係に応じて、現在選択されているイン
デックスを中心としてその上側領域あるいは下側領域に
おけるいずれかの中央値の除数の倍数を次の比較数値と
して選択して設定し、以下同様にして比較演算結果に応
じて比較数値の設定を行うように構成する。
【0012】(2)前記(1)の除算処理装置におい
て、除数テーブル,予め除算処理装置内のメモリに格
納されているように構成する。
【0013】(3)前記(1)の除算処理装置におい
て,除数テーブルは、入力された除数に基づいて,メモ
リ上に作成されるように構成する。
【0014】図1は,本発明の基本構成を示す図であ
る。図中,11は除数設定部,12は被除数入力部,1
3は除算処理装置,14は除数テーブル,15は被除数
保持部,16は比較数値設定部,17は比較対象数値生
成部,18は比較演算処理部,19は商同定処理部,2
0は余り算出部,21は結果出力部である。
【0015】除数設定部11は,除数を設定するための
ものである。被除数入力部12は,被除数を入力するた
めのものである。除算処理装置13は,入力された被除
数と除数とから商および余りを算出するものであり,除
数テーブル14,被除数保持部15,比較数値設定部1
6,比較対象数値生成部17,比較演算処理部18,商
同定処理部19,および余り算出部20が設けられてい
る。
【0016】除数テーブル14は,整数1〜9から成る
インデックスに,除数の1倍の数値,除数の2倍の数
値,除数の3倍の数値,除数の4倍の数値,除数の5倍
の数値,除数の6倍の数値,除数の7倍の数値,除数の
8倍の数値,および除数の9倍の数値が対応されたもの
から成る。
【0017】被除数保持部15は,被除数入力部12か
ら入力された被除数を保持する。比較数値設定部16
は,初期値としてインデックス5に対応する,除数の5
倍の数値を比較数値として設定し,その後,比較演算処
理部18の処理結果に応じて所定のインデックスに対応
する除数の倍数を比較数値として設定する。
【0018】比較対象数値生成部17は,被除数保持部
15が保持している被除数を先頭から1桁ずつ切りだし
たものと,余り算出部20が算出する余りとから,比較
対象数値を生成する。
【0019】比較演算処理部18は,比較対象数値生成
部17が生成する比較対象数値と,比較数値設定部16
が設定する比較数値とを比較演算処理し,その比較演算
処理結果に応じて,商同定処理部19または比較数値設
定部16に制御を移す。
【0020】結果出力部21は,除算処理装置13が算
出した商および余りを出力する。
【0021】
【作用】図2は,図1に示す除算処理装置13内に設け
られた比較演算処理部18の動作フローを示す図であ
る。
【0022】以下,図1および図2を用いて,本発明に
係る除算処理装置13の動作を説明する。まず,除数設
定部11に除数7(seven)を設定する。すると,
除算処理装置13内に,図1に示す除数テーブル14が
設定される。
【0023】除数テーブル14は,整数1〜9から成る
インデックスIに,除数7の1倍の数値(7),除数7
の2倍の数値(14),除数7の3倍の数値(21),
除数7の4倍の数値(28),除数7の5倍の数値(3
5),除数7の6倍の数値(42),除数7の7倍の数
値(49),除数7の8倍の数値(56),および除数
7の9倍の数値(63)が対応されたものから成る。
【0024】以下では,煩瑣を避けて,インデックスI
に対応する除数をTBL[I]と表すことにする。(例
えば,除数テーブル14において,除数7の3倍の数値
は,TBL[3]と表される。)除数テーブル14の設
定には,次の方式がある。
【0025】(1)予め除算処理装置13内のメモリに
複数個の除数に対応する除数テーブルを格納しておき,
その中から除数7(seven)に対応するものを選択
する方式。
【0026】(2)除数設定部11から入力された除数
7(seven)に基づいて,除算処理装置13がその
内部メモリ上に除数テーブル14を作成する方式。除数
テーブル14が設定された除算処理装置13に,被除数
入力部12から被除数H=H1 2 3 ・・・Hn が入
力される。入力された被除数Hは,被除数保持部15に
「H=H1 2 3 ・・・Hn 」のように格納される。
【0027】初期値として,比較数値設定部16は,T
BL[5]を設定する。比較対象数値生成部17は,被
除数保持部15が保持する被除数Hの始めの1桁H
1 と,余り算出部20が算出する余りA(=0,初期
値)とを合成して,比較対象数値K=AH1 を生成す
る。
【0028】以下,本発明に係る除算処理装置13は,
次のように動作する。 比較演算処理部18が,比較対象数値Kと,TBL
[5]とを比較する。両者が等しい場合,その結果を商
同定処理部19に通知する。商同定処理部19は,商S
1 が5であることを結果出力部21へ出力し,余り算出
部20は,余りAが0であることを算出し,その結果を
比較対象数値生成部17へ通知する。
【0029】前者が後者より小さい場合,の処理を行
う。前者が後者より大きい場合,の処理を行う。 比較演算処理部18が,比較対象数値Kと,TBL
[3]とを比較する。
【0030】両者が等しい場合,その結果を商同定処理
部19に通知する。商同定処理部19は,商S1 が3で
あることを結果出力部21へ出力し,余り算出部20
は,余りAが0であることを算出し,その結果を比較対
象数値生成部17へ通知する。
【0031】前者が後者より小さい場合,の処理を行
う。前者が後者より大きい場合,の処理を行う。 比較演算処理部18が,比較対象数値Kと,TBL
[2]とを比較する。
【0032】両者が等しいか,または前者が後者より大
きい場合,その結果を商同定処理部19へ通知する。商
同定処理部19は,商S1 が2であることを結果出力部
21へ出力し,余り算出部20は,余りAを算出し,そ
の結果を比較対象数値生成部17へ通知する。
【0033】前者が後者より小さい場合,の処理を行
う。 比較演算処理部18が,比較対象数値Kと,TBL
[1]とを比較し,その結果を商同定処理部19へ通知
する。
【0034】商同定処理部19は,前者と後者が等しい
か,前者より後者が大きい場合,商S1 が1であること
を結果出力部21へ通知し,前者が後者より小さい場
合,商S1 が0であることを結果出力部21へ出力し,
余り算出部20は,余りAを算出し,その結果を比較対
象数値生成部17へ通知する。
【0035】 比較演算処理部18が,比較対象数値
Kと,TBL[4]とを比較し,その結果を商同定処理
部19へ通知する。商同定処理部は,前者と後者が等し
いか,前者より後者が大きい場合,商S1が4であるこ
とを結果出力部21へ通知し,前者が後者より小さい場
合,商S1が3であることを結果出力部21へ出力し,
余り算出部20は,余りAを算出し,その結果を比較対
象数値生成部17へ通知する。
【0036】 比較演算処理部18が,比較対象数値
Kと,TBL[7]とを比較する。両者が等しい場合,
その結果を商同定処理部19へ通知する。商同定処理部
19は,商S1 が7であることを結果出力部21へ出力
し,余り算出部20は,余りAが0であることを算出
し,その結果を比較対象数値生成部17へ通知する。
【0037】前者が後者より小さい場合,の処理を行
う。前者が後者より大きい場合,の処理を行う。 比較演算処理部18が,比較対象数値Kと,TBL
[6]とを比較し,その結果を商同定処理部19へ通知
する。
【0038】商同定処理部19は,前者と後者が等しい
か,前者より後者が大きい場合,商S1 が6であること
を結果出力部21へ出力し,前者が後者より小さい場
合,商S1 が5であることを結果出力部21へ出力し,
余り算出部20は,余りAを算出し,その結果を比較対
象数値生成部17へ通知する。
【0039】 比較演算処理部18が,比較対象数値
Kと,TBL[9]とを比較する。両者が等しいか,ま
たは前者が後者より大きい場合,その結果を商同定処理
部19へ通知し,商同定処理部19は,商S1 が9であ
ることを結果出力部21へ出力し,余り算出部20は,
余りAを算出し,その結果を比較対象数値生成部17へ
通知する。
【0040】前者が後者より小さい場合,の処理を行
う。 比較演算処理部18が,比較対象数値Kと,TBL
[8]とを比較し,その結果を商同定処理部19へ通知
する。
【0041】商同定処理部19は,前者と後者が等しい
か,前者より後者が大きい場合,商S1 が8であること
を結果出力部21へ出力し,前者が後者より小さい場
合,商S1 が7であることを結果出力部21へ出力し,
余り算出部20は,余りAを算出し,その結果を比較対
象数値生成部17へ通知する。
【0042】以上で,被除数Hの始めの1桁H1 に対す
る除算が終了する。上述のように,文章にすると長くな
るが,〜の処理は,最大限4段階の比較処理である
ので,従来の繰り返し除算に比べると,はるかに短時間
で処理が終了する。
【0043】以下同様に,被除数Hの2桁目以降(H2
3 ・・・Hn )の除算を行い,結果出力部21に,商
S=S1 2 3 ・・・,および余りAを得る。 (具体例)851÷7 1.1桁目 A=0 → K=8 K=8 < TBL[5]=35 K=8 < TBL[3]=21 K=8 < TBL[2]=14 K=8 > TBL[1]=7 ∴ 商S1 =1,余りA=8−7=1 2.2桁目 A=1 → K=15 K=15 < TBL[5]=35 K=15 < TBL[3]=21 K=15 > TBL[2]=14 ∴ 商S2 =2,余りA=15−14=1 3.3桁目 A=1 → K=11 K=11 < TBL[5]=35 K=11 < TBL[3]=21 K=11 < TBL[2]=14 K=11 > TBL[1]=7 ∴ 商S3 =1,余りA=11−7=4 以上の結果から, 851÷7=S1 2 3 =121余り4 が算出された。
【0044】以上の説明から分かるように,数値データ
をパック10進数で表すと,比較対象数値生成部17
が,被除数保持部15が保持する被除数Hの各桁H
i と,余り算出部20が算出する余りAとを合成して,
比較対象数値K=AHi を生成する処理が極めて簡単化
されるので,除算の処理速度がより向上する。
【0045】
【実施例】上述したように, 除数テーブル14の設定
には,次の方式がある。 (1)予め除算処理装置13内のメモリに複数個の除数
に対応する除数テーブルを格納しておき,その中から除
数に対応するものを選択する方式。
【0046】(2)除数設定部11から入力された除数
に基づいて,除算処理装置13がその内部メモリ上に除
数テーブル14を作成する方式。図3は,上記(1)に
示す方式の除数テーブルの例を示す図である。同図は,
7の倍数から成る除数テーブル,9の倍数から成る除数
テーブル,10の倍数から成る除数テーブル,および1
1の倍数から成る除数テーブルが,図1に示す除算処理
装置13内に設けられたメモリ内に格納されている様子
を示している。
【0047】図3では,4個の除数テーブルが格納され
ている場合を示したが,除数テーブル記憶部に格納され
る除数テーブルは,これらのうちの一つでも,二つで
も,適当な個数でよい。また,図示した除数(7,9,
10,11)以外の除数の倍数から成る除数テーブルを
格納してもよい。
【0048】以下,具体例を基に,本発明に係る除算処
理装置の動作を説明する。図4は,123456789
0÷7を本発明に係る除算処理装置が実行する際の具体
的な動作を説明する図である。図1に示す除算処理装置
13内に設けられた比較演算処理部18の動作フローを
示す図3と共に上記の除算をステップごとに順を追って
説明する。
【0049】使用する除数テーブルは,次のものであ
る。 seven ={7,14,21,28,35,42,49,56,63 } この場合も,以前と同じく,第I番目(インデックス=
I)の数値を TBL[I] と表す。
【0050】なお,図4の左下に記載したように,数
1,数2,および数3は,次のように定義されている。
数1は,前の繰り越しの数,すなわち前ステップの余り
である。
【0051】数2は,被除数から取り出した数である。
数3は,比較対象として生成された数,すなわち,図1
において,比較対象数値生成部17が生成する数であ
る。
【0052】(ステップ1) 数1=0,数2=1 → 数3=1 数3 < TBL[5] 数3 < TBL[3] 数3 < TBL[2] 数3 < TBL[1] ∴ 商S1 =0,余りA=1 (ステップ2) 数1=1,数2=2 → 数3=12 数3 < TBL[5] 数3 < TBL[3] 数3 < TBL[2] 数3 > TBL[1] ∴ 商S2 =1,余りA=5 (ステップ3) 数1=5,数2=3 → 数3=53 数3 > TBL[5] 数3 > TBL[7] 数3 < TBL[9] 数3 < TBL[8] ∴ 商S3 =7,余りA=4 (ステップ4) 数1=4,数2=4 → 数3=44 数3 > TBL[5] 数3 < TBL[7] 数3 > TBL[6] ∴ 商S4 =6,余りA=2 (ステップ5) 数1=2,数2=5 → 数3=25 数3 > TBL[5] 数3 < TBL[7] 数3 > TBL[6] ∴ 商S5 =3,余りA=4 (ステップ6) 数1=4,数2=6 → 数3=46 数3 > TBL[5] 数3 < TBL[7] 数3 > TBL[6] ∴ 商S6 =6,余りA=4 (ステップ7) 数1=4,数2=7 → 数3=47 数3 > TBL[5] 数3 < TBL[7] 数3 > TBL[6] ∴ 商S7 =6,余りA=5 (ステップ8) 数1=5,数2=8 → 数3=58 数3 > TBL[5] 数3 > TBL[7] 数3 < TBL[9] 数3 > TBL[8] ∴ 商S8 =8,余りA=2 (ステップ9) 数1=2,数2=9 → 数3=29 数3 < TBL[5] 数3 > TBL[3] 数3 > TBL[4] ∴ 商S9 =4,余りA=1 (ステップ10) 数1=1,数2=0 → 数3=10 数3 < TBL[5] 数3 < TBL[3] 数3 < TBL[2] 数3 > TBL[1] ∴ 商S10=1,余りA=3 以上の各ステップを経て, 1234567890÷7 の結果は,次の通りになる。
【0053】 本発明に係る除算処理装置には,種々の用途が考えられ
るが,OCR装置によって読み込んだ数値データにチェ
ックデジットを付与する際のパック除算に適用したとこ
ろ,従来の装置に比べて処理速度が大幅に向上した。
【0054】
【発明の効果】本発明によれば,除算処理装置,特に除
数が限定されている場合において除算により商と余りを
算出する除算処理装置において,除算の高速化を実現す
ることができる。
【0055】その結果,例えば,本発明に係る除算処理
装置を,OCR装置によって読み込んだ数値のパック除
算に適用すると,従来の装置に比べて処理速度の大幅な
向上が実現する。
【図面の簡単な説明】
【図1】本発明の基本構成を示す図である。
【図2】比較演算処理部の動作フローを示す図である。
【図3】除数テーブルの例を示す図である。
【図4】除算の例を示す図である。
【符号の説明】
11 除数設定部 12 被除数入力部 13 除算処理装置 14 除数テーブル 15 被除数保持部 16 比較数値設定部 17 比較対象数値生成部 18 比較演算処理部 19 商同定処理部 20 余り算出部 21 結果出力部

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 被除数を上位桁から順次除数で除算して
    商および余りを算出する除算処理装置であって, 数1〜9から成るインデックスの各々ごとに、除数の
    インデックス倍の比較数値を対応づけた除数テーブル
    と、 除数テーブルから比較数値を選択する比較数値設定部
    と、 被除数の 先頭から1桁ずつ切りだした数値と,前回算出
    された余りとを合成して次の比較対象数値を生成する比
    較対象数値生成部と、 生成された比較対象数値ごとに、該比較対象数値と除数
    テーブルから選択された比較数値とを比較し、比較対象
    数値よりも小さくかつもっとも比較対象数値に近い比較
    数値を決定する比較演算処理部と、 決定された比較数値に対応するインデックスを商として
    出力する商同定処理部と、 比較対象数値から上記決定された比較数値を減算して余
    りを算出する余り算出部とを備え、 比較数値設定部は,除数テーブルのインデックスの中央
    値に対応する、除数の倍数の数値を比較数値の初期値
    して選択して設定し、その後、比較演算処理部により比
    較対象数値と該比較数値の初期値との比較演算結果の大
    小関係に応じて、現在選択されているインデックスを中
    心としてその上側領域あるいは下側領域におけるいずれ
    かの中央値の除数の倍数を次の比較数値として選択して
    設定し、以下同様にして比較演算結果に応じて比較数値
    の設定を行うものであることを特徴とする除算処理装
    置。
  2. 【請求項2】 請求項1において, 除数テーブルは,予め除算処理装置内のメモリに格納さ
    れていることを特徴とする除算処理装置。
  3. 【請求項3】 請求項1において,除数テーブルは、 入力された除数に基づいて,メモリ上
    に作成されるものであることを特徴とする除算処理装
    置。
JP5035246A 1993-02-24 1993-02-24 除算処理装置 Expired - Fee Related JP2887038B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5035246A JP2887038B2 (ja) 1993-02-24 1993-02-24 除算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5035246A JP2887038B2 (ja) 1993-02-24 1993-02-24 除算処理装置

Publications (2)

Publication Number Publication Date
JPH06250826A JPH06250826A (ja) 1994-09-09
JP2887038B2 true JP2887038B2 (ja) 1999-04-26

Family

ID=12436484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5035246A Expired - Fee Related JP2887038B2 (ja) 1993-02-24 1993-02-24 除算処理装置

Country Status (1)

Country Link
JP (1) JP2887038B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6049920B1 (ja) * 2016-01-15 2016-12-21 株式会社 ディー・エヌ・エー 情報処理装置及び情報処理プログラム

Also Published As

Publication number Publication date
JPH06250826A (ja) 1994-09-09

Similar Documents

Publication Publication Date Title
US8793300B2 (en) Montgomery multiplication circuit
US6490608B1 (en) Fast parallel multiplier implemented with improved tree reduction schemes
JP2003288013A (ja) 楕円曲線演算装置及び楕円曲線演算方法
EP1475699B1 (en) Multiplier
US6018758A (en) Squarer with diagonal row merged into folded partial product array
EP3614257B1 (en) Float division by constant integer
JP3551113B2 (ja) 除算器
KR100756137B1 (ko) 제산 및 제곱근 연산 유닛
US7543008B1 (en) Apparatus and method for providing higher radix redundant digit lookup tables for recoding and compressing function values
JP2887038B2 (ja) 除算処理装置
US5289399A (en) Multiplier for processing multi-valued data
JPH0317132B2 (ja)
JPS58129653A (ja) 乗算方式
US6938064B1 (en) Method for computing fast Fourier transform and inverse fast Fourier transform
JP2737933B2 (ja) 除算装置
JPH10111791A (ja) 除算装置
JP5072558B2 (ja) データ処理装置
JPH0468656B2 (ja)
JP2781658B2 (ja) アドレス生成回路とそれを用いたcd―rom装置
US6701499B2 (en) Effective approximated calculation of smooth functions
JP3136709B2 (ja) べき積演算装置
JP3074910B2 (ja) 除算装置
JP2835366B2 (ja) 高速フーリエ変換用アドレス情報発生装置
JPS63254525A (ja) 除算装置
JP2708625B2 (ja) 均質ハッシング処理方式

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees