CN101854177B - High-throughput LDPC encoder - Google Patents

High-throughput LDPC encoder Download PDF

Info

Publication number
CN101854177B
CN101854177B CN 200910081094 CN200910081094A CN101854177B CN 101854177 B CN101854177 B CN 101854177B CN 200910081094 CN200910081094 CN 200910081094 CN 200910081094 A CN200910081094 A CN 200910081094A CN 101854177 B CN101854177 B CN 101854177B
Authority
CN
China
Prior art keywords
input
arithmetic element
output
decoding
check
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
CN 200910081094
Other languages
Chinese (zh)
Other versions
CN101854177A (en
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.)
Suzhou Esiic Technology Co ltd
Original Assignee
Institute of Microelectronics of CAS
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 Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN 200910081094 priority Critical patent/CN101854177B/en
Publication of CN101854177A publication Critical patent/CN101854177A/en
Application granted granted Critical
Publication of CN101854177B publication Critical patent/CN101854177B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

The invention discloses a high-throughput low-density parity check code encoder which comprises an input buffer, check node operation units, variable node operation units, an output buffer, a control logic unit and the internet, wherein a partially parallel decoding structure is adopted by the encoder, and x variable node operation units, y check node operation units, one input buffer and one output buffer are used, wherein the x and the y are respectively the column number and the row number of a fundamental matrix of H; each variable node operation unit comprises a channel information memory access and an external information memory access, and each check node operation unit comprises an operation unit for computing an input minimum value and an input sub-minimum value. On the basis of not increasing hardware consumption, the invention realizes the simultaneous proceeding of decoding input and output, thereby the throughput of the encoder is greatly improved. The encoder is applicable for regular/irregular LDPC codes; and the increasing action of the throughput particularly for a code word with longer code length is more remarkable.

Description

A kind of ldpc decoder of high-throughput
Technical field
The present invention relates to high-speed wireless digital communication, technical field of optical fiber communication, be specifically related to a kind of low density parity check code (LDPC) decoder of high-throughput.
Background technology
Data always can be introduced various noises, for example synchronization loss in random noise, the demodulating process, and the multipath effect in the wireless transmission etc. in the process of transmission and storage.Because the existence of these noises has limited message transmission rate and transmission quality under certain bandwidth greatly.
Along with the continuous progress of modern communication technology, communication system gradually, capacity higher to throughput reaches more greatly the higher future development of reliability, and error control coding also thereby be widely used.Low density parity check code (LDPC) is a very important class code in the error control code, added glug (RobertGallager) at [R.G.Gallager in 1963 by the Robert, Low-DensityParity-Check Codes.Cambridge, MA:MIT Press, 1963.] propose.Empirical tests, the LDPC code can reach the error performance apart from shannon limit 0.0045dB, and simultaneously ldpc decoder is because check matrix structural, and has intrinsic decoding concurrency, can satisfy the requirement of high speed high-throughput.Thereby at aspects such as expansion new generation of wireless communication system service range, raising video broadcast system throughputs, the LDPC code table has revealed excellent performance and application prospect.
Ldpc decoder is the structure according to check matrix H, finishes decoding by iterative decoding algorithm.Because the H matrix is usually huge and sparse, thereby the structure of LDPC decoding is usually complicated, and hardware consumption is larger.And the decoding delay of iterative algorithm is also larger, so improve the emphasis that the throughput of LDPC decoding always is research.
For improving throughput, [Part 16:Air Interface for Fixed and MobileBroadbandWireless AccessSystems Amendment for Physical and MediumAccess Control Layers for Combined Fixed and Mobile Operation in LicensedBands, IEEE P802.16e-2005,2005] once used full parallel organization to make throughput reach 1Gb/s, but the hardware consumption of this method is very big; The relative complex that connects up simultaneously often can cause the problem of routing congestion for the larger code word of code length.
And famous hierarchical algorithm (is also referred to as the TDMP algorithm, with reference to M.M.Mansour and N.R.Shanbhag, " High-throughput LDPC decoders; " IEEE Trans.Very Large ScaleIntegr. (VLSI) Syst., vol.11, no.6, pp.976-996, Dec.2003.), although the fine use that reduces memory, total iterations also reduces to some extent, but a traditional iteration is divided into the little iteration of several times, thereby decoding delay is multiplied with the increase of the number of times of the little iteration of cutting apart, simultaneously since in its decode procedure be spreading factor with basis matrix as degree of parallelism, thereby the raising of the throughput of decoding is to increase hardware spending as cost.
Summary of the invention
The technical problem that (one) will solve
In view of this, main purpose of the present invention is to provide a kind of ldpc decoder, to realize improving the throughput of ldpc decoder on the basis that increases hardly any hardware spending.
(2) technical scheme
For achieving the above object, the invention provides a kind of low-density parity code transcoder, this decoder comprises input-buffer, check-node arithmetic element, variable node arithmetic element, output buffer memory, control logic unit and internet, wherein: this decoder adopts the part parallel decoding architecture, use x variable node arithmetic element, a y check-node arithmetic element, x and y are respectively columns and the line number of the basis matrix of H, 1 input-buffer, 1 output buffer memory; Each variable node arithmetic element is made of channel information memory access and external information memory, and each check-node arithmetic element is made of 1 arithmetic element of calculating input minimum value and input sub-minimum.
In the such scheme, described check-node arithmetic element adopts minimum-sum algorithm, consisted of by 1 arithmetic element of calculating input minimum value and input sub-minimum, each computing has the parallel input of a plurality of inputs, the check-node arithmetic element will calculate each input in the situation that do not comprise the minimum input of itself, and by the internet check information be passed to described variable node arithmetic element.
In the such scheme, described variable node arithmetic element is made of 1 channel information memory and 1 external information memory, channel information by described input-buffer output is not directly to enter described channel information memory access, but enters described external information memory as the initial value of external information; When iteration begins, described external information memory by the internet to described check-node arithmetic element transmission of information, and simultaneously channel information is deposited in the described channel information memory access, receive again afterwards the information of the described check-node arithmetic element of process verification by the internet, and by certain computing renewal external information, thereby finish iterative decoding one time.
In the such scheme, described input-buffer and described output buffer memory are used for finishing serial and parallel mutual conversion, consist of by several registers.
In the such scheme, described control logic unit is used for realizing whole decoder s operation control, realizes by state machine, and its decode procedure specifically comprises:
Step 1, beginning enter code word;
Step 2, after code word input is finished, enter the iterative decoding link;
Step 3, check-node arithmetic element and variable node arithmetic element replace computing;
Step 4, the decode results that when decoding finishes, begins to export;
Step 5, after decoding output is finished, the new code word of input was carried out the decoding of a new round when whole low-density parity code transcoder entered idle condition.
In the such scheme, the channel information of described input-buffer input not only is stored in the described channel information memory access, and the while also is stored in the described external information memory as the initial value of external information; And be stored in the described channel information memory access through the hard decision information that iterative decoding is exported each bit by described output buffer memory, when finally finishing decoding, will be by described channel information memory access by described output buffer memory output decode results.
In the such scheme, beginning when output decoding when previous code word, but next word input channel information to be decoded it only is stored in the external information memory, in the time of decoding output, can read in a new group code word; Because the information bit code length of decoding output is necessarily short than total code length, so when new code word end of input, old code word has necessarily been finished output, thereby can carry out the iterative decoding of a new round.
In the such scheme, the decode procedure of this decoder specifically comprises:
Step 1: beginning enter code word;
Step 2: after the code word input is finished, enter the iterative decoding link;
Step 3: check-node arithmetic element and variable node arithmetic element replace computing;
Step 4: when decoding finishes, begin to export decode results;
Step 5: when output is carried out, if new enter code word is arranged, then will carry out simultaneously input and output;
Step 6: when input was finished, already end of old code word output then entered the check-node arithmetic element and the variable node arithmetic element replaces computing;
Step 7: when output is carried out, if do not have new enter code word until end of output then returns idle condition.
(3) beneficial effect
Can find out from technique scheme, the present invention has following beneficial effect:
1, the present invention proposes this high-throughput ldpc decoder, the ldpc decoder that improves in the past can only be after a codeword decoding output be finished, just can carry out the sequential restriction of next code word input, when adding hardly any hardware complexity, finish the time-multiplexed of decoding input and output, make whole decode procedure will decipher output time fully and " hide ", thereby improved greatly the throughput of decoder.
2, this ldpc decoder structure of the present invention's proposition, when being applied in the certain system of throughput, traditional decoder can by methods such as increase maximum iteration time, obtain better error performance.
3, ldpc decoder provided by the invention on the basis that does not increase hardware consumption, carries out when realizing the decoding input and output, thereby has greatly improved the throughput of decoder.This decoder goes for rule/irregular LDPC codes; Especially long to code length code word, the raising effect of throughput is more obvious.
Description of drawings
The present invention is further described below in conjunction with drawings and Examples:
Fig. 1 is the structural representation of the high-throughput ldpc decoder that provides according to the embodiment of the invention;
Fig. 2 is the structural representation of the variable node arithmetic element VNU in the high-throughput ldpc decoder that provides according to the embodiment of the invention;
Fig. 3 is the schematic diagram of the state of a control conversion of input and output traditional ldpc decoder that can not carry out simultaneously;
Fig. 4 is the state of a control transition diagram of high-throughput ldpc decoder provided by the invention, can realize the concurrency of input and output;
Fig. 5 is the sequential chart of input, iterative decoding and the output of input and output traditional ldpc decoder that can not carry out simultaneously;
Fig. 6 is the sequential chart of input, iterative decoding and the output of high-throughput ldpc decoder provided by the invention.
Embodiment
For making the purpose, technical solutions and advantages of the present invention clearer, below in conjunction with specific embodiment, and with reference to accompanying drawing, the present invention is described in more detail.
The ldpc decoder that (9216,4608) rule is provided according to embodiments of the invention shown in Figure 1, wherein the row of check matrix heavily is 6, column weight is 3.This decoder is made of input-buffer, check-node arithmetic element (CNU), variable node arithmetic element (VNU), output buffer memory, control logic and internet.The present embodiment adopts the part parallel decoding architecture, uses altogether 36 VNU, 18 CNU, 1 output buffer memory, 1 output buffer memory.Each VNU is made of channel information memory access (in_mem) and external information memory (ex_mem); Each CNU is made of 1 arithmetic element of calculating input minimum value and input sub-minimum.
Shown in Figure 2 is the basic structure of the variable node arithmetic element (VNU) of the present embodiment, is made of channel information memory and external information memory.For satisfying the needs of high-throughput, realize that decoding input decoding output carries out simultaneously, the interative computation in decode procedure finishes, will be by in_mem to output buffer memory output decode results; And if this is when inputting simultaneously the channel information of a new word to be decoded, this input channel information is not directly to enter in_mem, but enters ex_mem as the initial value of external information.When iteration began, ex_mem will be by the internet to the CNU transmission of information, and deposits channel information in in_mem simultaneously, has also stored so necessary channel information among the in_mem.After ex_mem finishes the renewal computing of a check-node, just can carry out the renewal computing of variable node by the channel information in in_mem, thereby finish iterative decoding one time.
The state transition diagram of the ldpc decoder that not use decoding input and output shown in Figure 3 are carried out simultaneously, the decode procedure of its decoder is as follows:
Step 1, beginning enter code word;
Step 2, after code word input is finished, enter the iterative decoding link;
Step 3, check-node arithmetic element and variable node arithmetic element replace computing;
Step 4, the decode results that when decoding finishes, begins to export;
Step 5, after decoding output is finished, the new code word of input was carried out the decoding of a new round when whole low-density parity code transcoder entered idle condition.
For reaching the requirement that improves data throughput, carry out when realizing the decoding input with output, the present embodiment improves Fig. 3, the state transition diagram that the control unit of the present embodiment adopts when circuit is realized as shown in Figure 4, as can be seen from the figure, the decode procedure of the ldpc decoder of the present embodiment:
Step 1: beginning enter code word;
Step 2: after the code word input is finished, enter the iterative decoding link;
Step 3: check-node arithmetic element and variable node arithmetic element replace computing;
Step 4: when decoding finishes, begin to export decode results;
Step 5: when output is carried out, if new enter code word is arranged, then will carry out simultaneously input and output;
Step 6: when input was finished, already end of old code word output then entered the check-node arithmetic element and the variable node arithmetic element replaces computing;
Step 7: when output is carried out, if do not have new enter code word until end of output then returns idle condition.
Fig. 5 and Fig. 6 represent respectively be input and output traditional ldpc decoder that can not carry out simultaneously input, iterative decoding and output sequential chart and according to the sequential chart of input, iterative decoding and the output of embodiments of the invention ldpc decoder.Wherein because the present embodiment adopts (9126,4608) 1/2 code check, all output times are half of input time, thereby in Fig. 6, the decoding input and output are carried out simultaneously, when new code word end of input, the output of a upper code word finishes already, can carry out the iterative decoding computing of new code word.
Fig. 5 and Fig. 6 are compared as can be known, and the present embodiment can greatly reduce decoding time, only has the output of last code word to take decoding time, and the decoding of other code word output is hidden fully.So that within the regular hour, mode more shown in Figure 5 can be finished the decoding of more code words, thereby improved greatly the throughput of decoder.
Above-described specific embodiment; purpose of the present invention, technical scheme and beneficial effect are further described; institute is understood that; the above only is specific embodiments of the invention; be not limited to the present invention; within the spirit and principles in the present invention all, any modification of making, be equal to replacement, improvement etc., all should be included within protection scope of the present invention.

Claims (7)

1. a low-density parity code transcoder is characterized in that, this decoder comprises input-buffer, check-node arithmetic element, variable node arithmetic element, output buffer memory, control logic unit and internet, wherein:
This decoder adopts the part parallel decoding architecture, uses x variable node arithmetic element, a y check-node arithmetic element, and x and y are respectively columns and the line number of the basis matrix of H, 1 input-buffer, 1 output buffer memory; Each variable node arithmetic element is made of channel information memory access and external information memory, and each check-node arithmetic element is made of 1 arithmetic element of calculating input minimum value and input sub-minimum;
Described variable node arithmetic element is made of 1 channel information memory and 1 external information memory, channel information by described input-buffer output is not directly to enter described channel information memory access, but enters described external information memory as the initial value of external information; When iteration begins, described external information memory by the internet to described check-node arithmetic element transmission of information, and simultaneously channel information is deposited in the described channel information memory access, receive again afterwards the information of the described check-node arithmetic element of process verification by the internet, and by certain computing renewal external information, thereby finish iterative decoding one time.
2. low-density parity code transcoder according to claim 1, it is characterized in that, described check-node arithmetic element adopts minimum-sum algorithm, consisted of by 1 arithmetic element of calculating input minimum value and input sub-minimum, each computing has the parallel input of a plurality of inputs, the check-node arithmetic element will calculate each input in the situation that do not comprise the minimum input of itself, and by the internet check information be passed to described variable node arithmetic element.
3. low-density parity code transcoder according to claim 1 is characterized in that, described input-buffer and described output buffer memory are used for finishing serial and parallel mutual conversion, consist of by several registers.
4. low-density parity code transcoder according to claim 1 is characterized in that, described control logic unit is used for realizing whole decoder s operation control, realizes by state machine, and its decode procedure specifically comprises:
Step 1, beginning enter code word;
Step 2, after code word input is finished, enter the iterative decoding link;
Step 3, check-node arithmetic element and variable node arithmetic element replace computing;
Step 4, the decode results that when decoding finishes, begins to export;
Step 5, after decoding output is finished, the new code word of input was carried out the decoding of a new round when whole low-density parity code transcoder entered idle condition.
5. low-density parity code transcoder according to claim 1, it is characterized in that, the channel information of described input-buffer input not only is stored in the described channel information memory access, and the while also is stored in the described external information memory as the initial value of external information; And be stored in the described channel information memory access through the hard decision information that iterative decoding is exported each bit by described output buffer memory, when finally finishing decoding, will be by described channel information memory access by described output buffer memory output decode results.
6. low-density parity code transcoder according to claim 1, it is characterized in that, when beginning decoding output when previous code word, but next word input channel information to be decoded, it only is stored in the external information memory, in the time of decoding output, can reads in a new group code word; Because the information bit code length of decoding output is necessarily short than total code length, so when new code word end of input, old code word has necessarily been finished output, thereby can carry out the iterative decoding of a new round.
7. low-density parity code transcoder according to claim 1 is characterized in that, the decode procedure of this decoder specifically comprises:
Step 1: beginning enter code word;
Step 2: after the code word input is finished, enter the iterative decoding link;
Step 3: check-node arithmetic element and variable node arithmetic element replace computing;
Step 4: when decoding finishes, begin to export decode results;
Step 5: when output is carried out, if new enter code word is arranged, then will carry out simultaneously input and output;
Step 6: when input was finished, already end of old code word output then entered the check-node arithmetic element and the variable node arithmetic element replaces computing;
Step 7: when output is carried out, if do not have new enter code word until end of output then returns idle condition.
CN 200910081094 2009-04-01 2009-04-01 High-throughput LDPC encoder Expired - Fee Related CN101854177B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910081094 CN101854177B (en) 2009-04-01 2009-04-01 High-throughput LDPC encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910081094 CN101854177B (en) 2009-04-01 2009-04-01 High-throughput LDPC encoder

Publications (2)

Publication Number Publication Date
CN101854177A CN101854177A (en) 2010-10-06
CN101854177B true CN101854177B (en) 2013-01-02

Family

ID=42805477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910081094 Expired - Fee Related CN101854177B (en) 2009-04-01 2009-04-01 High-throughput LDPC encoder

Country Status (1)

Country Link
CN (1) CN101854177B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106911336B (en) * 2017-01-17 2020-07-07 清华大学 High-speed parallel low-density parity check decoder with multi-core scheduling and decoding method thereof
CN107124187B (en) * 2017-05-05 2020-08-11 南京大学 LDPC code decoder based on equal-difference check matrix and applied to flash memory
CN108462496B (en) * 2018-04-24 2021-04-02 成都吉纬科技有限公司 LDPC decoder based on random bit stream updating
CN111211790B (en) * 2020-02-25 2023-09-29 重庆邮电大学 High throughput LDPC decoding algorithm and architecture for 5G terminal
CN112134570A (en) * 2020-08-16 2020-12-25 复旦大学 Multi-mode LDPC decoder applied to deep space communication
CN112187286A (en) * 2020-09-24 2021-01-05 复旦大学 Multi-mode LDPC decoder applied to CCSDS satellite deep space communication
CN112636767B (en) * 2020-12-03 2023-04-07 重庆邮电大学 Layered semi-parallel LDPC decoder system with single replacement network
CN113055028B (en) * 2021-03-18 2022-05-17 北京得瑞领新科技有限公司 LDPC decoding method, decoder, decoding device and storage medium
CN113612581B (en) * 2021-08-03 2022-03-11 浙江极传信息技术有限公司 Universal LDPC decoding method and system with high throughput rate

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1822510A (en) * 2006-01-23 2006-08-23 南京大学 High speed storage demand reducing low density correction code decoder
CN101047392A (en) * 2007-03-23 2007-10-03 北京航空航天大学 Decoder device of multi-code LDPC code and decoding method
CN101350625A (en) * 2007-07-18 2009-01-21 北京泰美世纪科技有限公司 High-efficiency all-purpose decoder for QC-LDPC code and decoding method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1822510A (en) * 2006-01-23 2006-08-23 南京大学 High speed storage demand reducing low density correction code decoder
CN101047392A (en) * 2007-03-23 2007-10-03 北京航空航天大学 Decoder device of multi-code LDPC code and decoding method
CN101350625A (en) * 2007-07-18 2009-01-21 北京泰美世纪科技有限公司 High-efficiency all-purpose decoder for QC-LDPC code and decoding method thereof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张金贵 等.一种提高LDPC译码器吞吐率的译码算法.《无线电工程》.2008,第38卷(第6期),第49-51页. *
李刚等.WiMAX中多码率LDPC解码器的设计与实现.《宽带网络》.2008,第32卷(第2期),第59-61页. *

Also Published As

Publication number Publication date
CN101854177A (en) 2010-10-06

Similar Documents

Publication Publication Date Title
CN101854177B (en) High-throughput LDPC encoder
EP3381128B1 (en) Memory management and path sorting in a polar code successive cancellation list decoder
CN101951264B (en) Multiple-rate, quasi-cycling and low density decoder for parity check codes
CN102075198B (en) Quasi-cyclic low-density parity check convolution code coding-decoding system and coding-decoding method thereof
Yen et al. A 5.79-Gb/s energy-efficient multirate LDPC codec chip for IEEE 802.15. 3c applications
CN101931416A (en) Parallel hierarchical decoder for low density parity code (LDPC) in mobile digital multimedia broadcasting system
CN101800559B (en) High-speed configurable QC-LDPC code decoder based on TDMP
Ho et al. A 520k (18900, 17010) array dispersion LDPC decoder architectures for NAND flash memory
CN103501210B (en) High-performance multistandard FEC (Forward Error Correction) decoder
CN101777921B (en) Structured LDPC code decoding method and device for system on explicit memory chip
CN100555879C (en) A kind of encoder apparatus of LDPC sign indicating number and coding method
CN104092470A (en) Turbo code coding device and method
CN101969310A (en) QPP (Quadratic Permutation Polynomial) inner interleaver of Turbo code parallel decoder and interleaving method thereof
CN102739261B (en) Heterogeneous Gabi selection forward back Viterbi decoder
CN101262230A (en) A design method for low-density odd/even check code matrix
CN1822510A (en) High speed storage demand reducing low density correction code decoder
CN113328756A (en) Method for improving hardware processing performance of layered QC-LDPC decoder
CN102201817B (en) Low-power-consumption LDPC (low density parity check) decoder based on optimization of folding structure of memorizer
CN105515588B (en) A kind of LDPC CC high speed decoders
CN101958718B (en) Improved semi-parallel decoder for low density parity check (LDPC) code and decoding method
CN103812510A (en) Decoding method and device
WO2020108306A1 (en) Decoding method, decoding device, and decoder
CN101075812A (en) Method for constructing system low-density code with parallel cascade
CN111431543B (en) Variable code length and variable code rate QC-LDPC decoding method and device
CN116073839A (en) Method and device for improving decoding efficiency of LDPC decoder short codes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180917

Address after: No. 3, North Tu Cheng West Road, Chaoyang District, Beijing

Patentee after: Beijing Zhongke micro Investment Management Co.,Ltd.

Address before: No. 3, North Tu Cheng West Road, Chaoyang District, Beijing

Patentee before: Institute of Microelectronics, Chinese Academy of Sciences

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180927

Address after: 215600 B 305, science and Technology Pioneer Park, 1 Guotai North Road, Zhangjiagang, Jiangsu

Patentee after: SUZHOU ESIIC TECHNOLOGY CO.,LTD.

Address before: No. 3, North Tu Cheng West Road, Chaoyang District, Beijing

Patentee before: Beijing Zhongke micro Investment Management Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130102

CF01 Termination of patent right due to non-payment of annual fee