Patent Description:
In a mobile communication system, a decoder is configured to perform bit-level processing, such as a decoder of low density parity check code (LDPC) in <NUM>, a Turbo decoder or convolutional decoder in <NUM>, and the performance of these decoders is closely related to the number of iterations.

<CIT> discloses a method for making an assumption about how many decoder iterations should be used for different code blocks of the code blocks of the transport block, the assumption is made based on a study of code block soft-bits, and decoding the transport block using different numbers of decoder iterations for the different code blocks, based on the made assumption about how many decoder iterations should be used for the different code blocks.

<CIT> discloses techniques for efficiently decoding data at a receiver. Total available decoding time of the receiver is initially allocated to a plurality of code blocks of a plurality of transport blocks to obtain initial allocated decoding times for the plurality of code blocks being given by a particular number of decoding iterations to perform for that code block. After decoding the one or more code blocks, obtaining updated allocated decoding times for the undecoded code blocks.

Patent Application <CIT> discloses a decoding apparatus including maximum decoding iteration count controller which determines maximum decoding iteration counts of respective received code words based on modulation schemes and error-correcting coding ratios which are applied to the received code words and average error ratios of the received code words before the code words are decoded, and turbo decoding engine which decodes each of the received code words according to a maximum decoding iteration count determined by maximum decoding iteration count controller.

Patent Application <CIT> discloses a method that enable high performance turbo decoding while keeping the required clock speed and the power consumption low.

The accompanying drawings illustrated herein are used for providing further understanding to the technical solutions of the present disclosure and form a part of the description. The schematic embodiments of the present disclosure and the description thereof are used for explaining the present disclosure, rather than forming improper limitation to the present disclosure. In the accompanying drawings:.

The technical solutions of the present disclosure are described in detail below with reference to the accompanying drawings and in combination with the embodiments. It should be noted that the embodiments in the present disclosure and the characteristics in the embodiments may be combined with each other if no conflict is incurred.

It should be noted that the terms "first", "second" and the like in the description and claims of the present disclosure and in the drawings described above are used for distinguishing between similar elements, and not for limiting a particular order or a sequence.

In general, the greater the number of iterations is, the better the performance of the decoder is. However, the capacity of the decoder is fixed under certain conditions, and if a strategy with a fixed number of iterations is used, the capability of the decoder may be wasted, for example, when a capacity of a system is relatively small, the maximum performance of the decoder cannot be exerted; or the number of iterations cannot be configured reasonably at first, too small or too large number of iterations may cause a reduction in capacity of the system or even a crash of the system.

Therefore, in a case where the capacity of the system is variable, it is desirable to find a better method for configuring the number of decoder iterations, so as to utilize the capability of the decoder to the maximum extent and improve the performance index of the mobile communication system.

Embodiments of the present disclosure are directed to at least the problem in existing art that how to configure the number of decoder iterations in the case where the capacity of the system is variable, to provide the technical solutions.

The method provided by the embodiment of the present disclosure may be performed in a base station, a mobile terminal, a computer terminal, or a similar computing device. Taking the method provided by the embodiment of the present disclosure operating in a base station as an example, <FIG> is a schematic diagram of a hardware structure of a base station which executes a method for determining a number of decoder iterations according to an embodiment of the present disclosure. As shown in <FIG>, a base station <NUM> may include one or more (only one is shown in <FIG>) processors <NUM> (the processor <NUM> may include, but not limited to, a processing device such as a microcontroller unit (MCU) or a field programmable gate array (FPGA)) and a storage device <NUM> for storing data. In some implementations, the base station <NUM> may further include a transmission device <NUM> for a communication function and an input/output device <NUM>. It should be understood by those of ordinary skill in the art that the structure shown in <FIG> is merely an illustration but is not intended to limit the structure of the base station. For example, the base station <NUM> may include more or fewer components than those shown in <FIG>, or may have a configuration different from that shown in <FIG>.

The storage device <NUM> can be configured to store a computer program, for example, a software program or module of an application, such as a computer program corresponding to the method for determining the number of decoder iterations in the embodiment of the present disclosure. The processor <NUM> executes the computer program stored in the storage device <NUM>, thereby executing variable functional applications and data processing, to implement the method described above. The storage device <NUM> may include a high-speed random access memory, or a non-volatile memory, such as one or more magnetic storage devices, flash memories, or other non-volatile solid-state memories. In some implementations, the storage device <NUM> may further include memories configured remotely with respect to the processor <NUM>, and these remote memories may be connected to the base station <NUM> over a network. The examples of the network described above include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations of these networks.

The transmission device <NUM> is configured to receive or transmit data via a network. A specific example of the above network may include a wireless network provided by a communication provider of the base station <NUM>. In some implementations, the transmission device <NUM> includes a network interface controller (NIC), and the NIC may be connected to other network devices through the base station so as to communicate with the internet. In some implementations, the transmission device <NUM> may be a radio frequency (RF) module which is configured to communicate with the internet in a wireless manner.

Based on the base station described above, the embodiment of the present disclosure provides a method for determining a number of decoder iterations. <FIG> is a flowchart illustrating a method for determining a number of decoder iterations according to an embodiment of the present disclosure, and as shown in <FIG>, the method includes the following operations:.

Through the above operations S202 to S206, the problem of how to configure the number of the decoder iterations in the case where the capacity of the system is variable in existing art can be solved, and the number of decoder iterations is configured for the CBs of the TBs by classifying the CBs, so that the utilization rate of throughput of the decoder is improved.

In some implementations, the operation S204 may specifically include:
classifying the virtual CBs into X types, and setting a minimum limit value of the number of iterations and a maximum limit value of the number of iterations for the X types of virtual CBs, X is an integer greater than or equal to <NUM>.

In some implementations, the operation S206 may specifically include:
determining the number of iterations for the X types of virtual CBs in the decoder according to the minimum limit value of the number of iterations and the maximum limit value of the number of iterations.

In some implementations, the operation S206 may specifically include:.

In some implementations, the operation S2061 may specifically include:.

In some implementations, the operation S2062 may specifically include:.

In some implementations, the operation S2063 may specifically include:.

In some implementations, the operation S202 may specifically include:
performing virtualization processing on CBs of the newly transmitted TB and the retransmitted TB to obtain the virtual CBs of the newly transmitted TB and the retransmitted TB.

The TBs in the embodiment of the present disclosure include the newly transmitted TB and the retransmitted TB, and performing virtualization processing on the CBs of the newly transmitted TB and the retransmitted TB to obtain the virtual CBs of the newly transmitted TB and the retransmitted TB may specifically include:.

An embodiment of the present disclosure provides an self-adaptive method for determining a number of decoder iterations, the method can better utilize the capability of the decoder, is suitable for a bit level processing in mobile communication, and includes:.

Specific implementations of the present disclosure are described in detail below by taking (m+n) TBs being scheduled in a time slot as an example.

Assuming that in the time slot, the number of newly transmitted TBs is m, the number of retransmitted TBs is n, and the number of all initial available cycles allocated for decoding in the time slot is S.

The numbers of cycles, caused by the TBs (including the newly transmitted TBs and the retransmitted TBs) successively, for the decoder processing a single iteration are X<NUM>, X<NUM>, X<NUM>,. , Xm-<NUM>, Xm, Xm+<NUM>, Xm+<NUM>,. , Xm+n-<NUM> respectively;.

As an example, the virtual factors of the newly transmitted TBs may be calculated according to a position of a time, when a first CB of each TB is started to be processed, in all initial available cycles, and assuming that the first CB of the i-th newly transmitted TB is started to be processed at a time Ti, then: <MAT>.

As an example, the virtual factors of the retransmitted TBs may be calculated according to a position of a time when a last CB of each TB, which is decoded erroneously last time, is started to be processed, in all initial available cycles, and assuming that the last CB of the i-th retransmitted TB, which is decoded erroneously last time, is started to be processed at a time Ti, then: <MAT>.

Through the embodiment of the present disclosure, adopting the method of classifying and calculating the number of iterations of the CBs after performing virtualization processing on the CBs of each TB, the number of decoder iterations can be self-adaptively configured for the TBs, so that the utilization rate of throughput of the decoder is greatly improved, and the performance of the whole mobile communication system is improved.

It should be understood that the above-described method for calculating the virtual factors is only presented as an example, and actually, the virtual factors may be calculated or configured by other methods as required. For example, for retransmitted TBs, the virtual factor may also be calculated according to a position of a time when the second-last CB of each TB or any CB of each TB, which is decoded erroneously, is started to be processed, in all initial available cycles at the time. In summary, the available processing time duration for each TB is the whole time slot in principle, however, the processing time duration actually used by each TB is not the whole time slot. Therefore, for each newly transmitted or retransmitted TB, the virtual factor of the TB can be reasonably calculated or configured in consideration of a proportion of the time duration, actually occupied by the CBs to be decoded in the TB, in the whole time slot, so that the capability of the decoder can be utilized better.

Through the description of the above embodiment, it is clear to those skilled in the art that the method according to the above embodiment may be implemented by software plus a common hardware platform, and certainly may also be implemented by hardware only, but the former is a better implementation in many cases. Based on the above understanding, the technical solutions of the present disclosure in essence or a part thereof contributing to the existing art may be embodied in the form of a product of computer software , the product of computer software may be stored in a storage medium (such as a Read-Only Memory (ROM)/Random Access Memory (RAM), a magnetic disk, and an optical disk), and includes several computer-readable instructions for enabling a terminal device (may be a mobile phone, a computer, a server, or a network device and the like) to execute the method in the embodiment of the present disclosure.

The present disclosure further provides a device for determining a number of decoder iterations, and the device is configured to implement the above embodiment and implementations, and details of which have been already described and thus are not repeated here. As used below, the term "module" may be a combination of software and/or hardware with a preset functionality. Although the device described below is better when being implemented in software, the implementations in hardware or a combination of software and hardware are also possible and contemplated.

<FIG> is a schematic diagram of a device for determining a number of decoder iterations according to the present disclosure, as shown in <FIG>, the device for determining the number of decoder iterations includes:.

In some implementations, the classification module <NUM> is further configured to:
classify the virtual CBs into X types, and setting a minimum limit value of the number of iterations and a maximum limit value of the number of iterations for the X types of virtual CBs, X is an integer greater than or equal to <NUM>.

In some implementations, the second determining module <NUM> is further configured to:
determine the number of iterations for the X types of virtual CBs in the decoder according to the minimum limit value of the number of iterations and the maximum limit value of the number of iterations.

<FIG> is a schematic diagram of an example of a device for determining a number of decoder iterations according to the present disclosure, as shown in <FIG>, the second determining module <NUM> includes:.

In some implementations, the first determining unit <NUM> is further configured to:.

In some implementations, the second determining unit <NUM> is further configured to:.

In some implementations, the third determining unit <NUM> is further configured to:.

In some implementations, the first determining module <NUM> is further configured to:
perform virtualization processing on the CBs of the newly transmitted TB and the retransmitted TB to obtain the virtual CBs of the newly transmitted TB and the retransmitted TB.

<FIG> is a schematic diagram of another example of a device for determining a number of decoder iterations according to the present disclosure, as shown in <FIG>, the first determining module <NUM> includes:.

It should be noted that the above modules may be implemented by software or hardware, and for the hardware, the following manners may be implemented, but are not limited: the modules may be all located in a same processor; alternatively, the modules may be located in different processors in any combination.

An embodiment of the present disclosure further provides a storage medium having a computer program stored therein, the computer programs, when executed, perform the method in the embodiment of the present disclosure described above.

In some implementations, the storage medium may be configured to store a computer program for performing following operations S11 to S13:.

In some implementations, the storage medium may include, but is not limited to: any other medium which can be used to store the computer programs, such as a Universal Serial Bus (USB) disk, a ROM, a RAM, a mobile hard disk, a magnetic disk, or an optical disk and the like.

An embodiment of the present disclosure further provides an electronic device, including a processor and a memory, the memory having a computer program stored therein, and the processor is configured to execute the computer program, so as to perform the method in the embodiment of the present disclosure described above.

In some implementations, the electronic device may further include a transmission device and an input/output device, the transmission device is connected to the processor described above, and the input/output device is connected to the processor described above.

In some implementations, the processor described above may be configured to perform following operations S11 to S13 through the computer program:.

The specific examples of the embodiment may be referred to the examples of the embodiment descripted above, and thus are not repeated here.

Obviously, it should be understood by those skilled in the art that, the above modules or operations of the present disclosure may be implemented by a universal computing device, they may be centralized on a single computing device or distributed on a network composed of multiple computing devices, alternatively, they may be implemented by application codes being executable by a computing device, and therefore, they may be stored in a storage device and executed by the computing device, and in some cases, the operations shown or described may be executed out of the order in the embodiment of the present disclosure, or they may be implemented by respectively fabricating them into integrated circuit modules, or by fabricating a plurality of modules or operations of them into a single integrated circuit module. The present disclosure is not limited to any specific combination of hardware and software.

Claim 1:
A method for determining a number of decoder iterations in a <NUM> or <NUM> mobile communication system, comprising:
determining virtual code blocks of a newly transmitted transport block and a retransmitted transport block to be processed by a decoder within a time slot;
classifying the virtual code blocks according to whether the transport block corresponding to the virtual code block is the newly transmitted transport block, or, according to a retransmitted error rate of the retransmitted transport block; and
determining the number of iterations for each type of virtual code blocks in the decoder;
wherein, the determining virtual code blocks of a newly transmitted transport block and a retransmitted transport block to be processed by a decoder within a time slot comprises:
calculating the number of code blocks contained in the newly transmitted transport block, and multiplying the number of code blocks, contained in the newly transmitted transport block, by a first virtual factor to obtain the number of virtual code blocks of the newly transmitted transport block, the first virtual factor is calculated or configured based on a proportion of a time duration, actually occupied by the code blocks to be decoded in the newly transmitted transport block, in the time slot; and
calculating positions and the number of code blocks actually to be processed for the retransmitted transport block, and multiplying the number of code blocks, actually to be processed for the retransmitted transport block, by a second virtual factor to obtain the number of virtual code blocks of the retransmitted transport block, the second virtual factor is calculated or configured base on a proportion of a time duration, actually occupied by the code blocks actually to be processed for the retransmitted transport block, in the time slot,
the code blocks actually to be processed for the retransmitted transport block are code blocks which were previously decoded erroneously.