On-demand decoding method and device

By prioritizing input codewords and scheduling decoding on demand, the problems of high decoding complexity and high power consumption in high-bandwidth optical communication systems are solved, and a low-power and high-efficiency decoding solution is implemented.

CN113890545BActive Publication Date: 2025-10-03HUAWEI TECH CO LTD

Patent Information

Application Number
CN202010631750.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-07-03
Publication Date
2025-10-03
Estimated Expiration
2040-07-03

AI Technical Summary

Technical Problem

In the prior art, forward error correction coding has high decoding complexity and high power consumption, and cannot meet the requirements of high-bandwidth optical communication systems.

Method used

By prioritizing the input codewords and scheduling decoding on demand, the syndrome is selected for decoding to avoid decoding each codeword the same number of times. The grouping and priority sorting methods are used to reduce the decoding resource requirements and system power consumption.

Benefits of technology

It realizes on-demand decoding, reduces decoding resource requirements and system power consumption, improves decoding efficiency, reduces unnecessary decoding operations, and ensures decoding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113890545B_ABST
    Figure CN113890545B_ABST
Patent Text Reader

Abstract

This application discloses a decoding method applicable to multiple scenarios, including metropolitan area networks, backbone networks, and data center interconnections, to meet the needs of optical transmission. The method comprises: obtaining a syndrome corresponding to each of a plurality of codewords; grouping the obtained syndromes and prioritizing each syndrome group; and selecting a syndrome for decoding based on the priority ranking results of each syndrome group. Because this decoding method does not perform the same decoding process on every codeword, it avoids the problem of traditional static decoding schemes requiring the same number of decoding operations regardless of the correctness of the codeword itself. This method enables on-demand decoding, reducing the demand for decoding resources and power consumption.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to a decoding technology, and in particular to a low-power on-demand decoding technology. Background Art

[0002] Forward Error Correction (FEC) technology has been widely used in wireless cellular, wireless, storage, and high-speed optical transmission systems. The principle behind FEC is to add parity bits during encoding at the transmitter. In the received bit stream, errors are corrected by calculating the parity bits, thereby reducing the receiver's signal-to-noise ratio (OSNR) tolerance. This improves the system's bit error rate performance, enhances system communication reliability, extends signal transmission distance, reduces transmitter power, and reduces system costs.

[0003] Optical communication systems have experienced rapid development in recent years, from 100Gbps to 400Gbps and on to the future 800Gbps optical communication systems. This has placed higher demands on FEC coding gain, and FEC coding is approaching the Shannon limit. Consequently, FEC decoding has become increasingly complex and power-hungry, failing to meet product requirements. Summary of the Invention

[0004] The present application provides a decoding method, which solves the problems of high decoding complexity and high decoding power consumption in the prior art by prioritizing input codewords and scheduling decoding on demand.

[0005] In a first aspect, a decoding method is provided for obtaining a syndrome corresponding to each codeword in a plurality of codewords; grouping the obtained syndromes and prioritizing the syndromes in each group; and selecting a syndrome for decoding based on the priority ranking result of each group of syndromes.

[0006] The embodiment of the present application does not perform the same decoding processing on the syndrome of each codeword, thereby avoiding the problem in traditional static decoding schemes that the same number of decoding operations must be performed regardless of whether the codeword itself is correct. This achieves on-demand decoding and reduces the demand for decoding resources and system power consumption.

[0007] In one possible implementation, non-zero syndromes have a higher priority than zero syndromes. Furthermore, non-zero syndromes that have been decoded a large number of times have a lower priority than non-zero syndromes that have been decoded a small number of times. Furthermore, the number of decoding times can be limited. When a syndrome reaches a threshold number of times it has been decoded, it will not be decoded again. For example, the threshold can be set to three times. Once the number of times a syndrome has been decoded reaches three, it will not be decoded again. This increases the chances of decoding syndromes that require decoding, thereby improving decoding efficiency.

[0008] Optionally, in the case of hard decision decoding, a non-zero syndrome always has a higher priority than a syndrome with a value of zero. In the case of soft decision decoding, a non-zero syndrome may always have a higher priority than a syndrome with a value of zero. Alternatively, priority may be based on the number of decodings. For example, regardless of whether the syndrome value is zero, a syndrome with a high number of decodings has a lower priority than a syndrome with a low number of decodings. If two syndromes have the same number of decodings, the non-zero syndrome has a higher priority than the zero syndrome. Furthermore, when soft decision decoding is employed, priority may also be sorted based on the reliability of soft information, which is not limited in this application.

[0009] In one possible implementation, the decoding method is applied to a decoding device comprising multiple decoding units. The step of selecting syndromes for decoding includes selecting at most one syndrome from each group and sending the syndromes to different decoding units for hard-decision or soft-decision decoding. The selected syndromes are all non-zero syndromes. Since zero syndromes do not need to be decoded when hard-decision decoding is used, if all syndromes in a group are 0, no syndromes in that group will be selected for decoding. Therefore, at most one syndrome is selected from each group. In this case, the storage units for each syndrome need only be connected to the corresponding decoding units, reducing wiring complexity. Alternatively, at most two or more syndromes can be selected from each group. In this case, the number of decoding units connected to the storage units for each syndrome group becomes two or more. It should be understood that in the case of soft-decision decoding, zero syndromes can be decoded to improve decoding performance, or they can be omitted to reduce decoding complexity.

[0010] In one possible implementation, the decoding method is applied to a decoding device comprising multiple decoding units. The step of selecting syndromes for decoding includes selecting one syndrome from each group and sending each syndrome to different decoding units for soft-decision decoding. In this case, the storage unit for each syndrome group only needs to be connected to the corresponding decoding unit, reducing wiring complexity. Alternatively, two or more syndromes can be selected from each group. In this case, the number of decoding units connected to each syndrome storage unit is increased to two or more.

[0011] Optionally, the number of groupings is the same as the number of decoding units to maximize the use of decoding resources.

[0012] In one possible implementation, the decoding method is applied to a decoding device including multiple decoding units; the selecting of syndromes for decoding includes: selecting at most one syndrome from each group and sending the syndromes to different decoding units for hard decision or soft decision decoding; prioritizing the syndromes again in each of two groups, and selecting at most one syndrome from each of two groups based on the sorting results, and sending the syndromes to different decoding units for hard decision or soft decision decoding, wherein the two selected syndromes are different and both selected syndromes are non-zero syndromes. In one possible implementation, the decoding method is applied to a decoding device including multiple decoding units; the selecting of syndromes for decoding includes: selecting one syndrome from each group and sending the syndromes to different decoding units for soft decision decoding; prioritizing the syndromes again in each of two groups, and selecting one syndrome from each of two groups based on the sorting results, and sending the syndromes to different decoding units for soft decision decoding, wherein the two selected syndromes are different. Furthermore, the grouping of the obtained syndromes includes: dividing the obtained syndromes into 2n / 3 groups, wherein n is the number of decoding units, and n is an integer multiple of 3.

[0013] This scheme ensures that at most one syndrome is selected each time, resulting in low algorithmic complexity. Decoding only the selected syndromes is performed, avoiding unnecessary decoding operations and reducing power consumption. The syndrome storage units only need to be connected to the corresponding decoding units, reducing wiring complexity. Optionally, two or more syndromes can be selected per group.

[0014] In addition, the current working status of the decoding unit needs to be considered. If any decoding unit is idle, try to arrange it to the idle decoding unit to avoid unbalanced decoding unit load.

[0015] In a possible implementation, each group includes the same number of syndromes to achieve uniform grouping, which can ensure that the algorithm complexity is low when selecting syndromes.

[0016] In a possible implementation, the syndromes included in each group have different numbers or addresses, and the corresponding syndromes can be identified according to the different numbers or addresses, thereby prioritizing them.

[0017] In one possible implementation, after decoding the selected syndromes, the method further includes: re-prioritizing the syndromes in each group, and selecting another syndrome for decoding based on the result of the current priority ranking. Furthermore, the priority ranking methods used in the two prioritization steps for each syndrome group may be different.

[0018] In a possible implementation, the method further includes: if decoding of the first syndrome is successful, updating the first syndrome and the codeword corresponding to the first syndrome according to a decoding result, wherein the first syndrome is one of the syndromes to be decoded.

[0019] In combination with the previous possible implementation, in this implementation, updating the first syndrome and the codeword corresponding to the first syndrome based on the decoding result specifically includes: the decoding result includes an incremental syndrome and a flipped bit corresponding to the first syndrome; superimposing the incremental syndrome with the first syndrome to obtain an updated syndrome; and flipping the bit corresponding to the flipped bit in the corresponding codeword based on the flipped bit.

[0020] In one possible implementation, each syndrome is stored for the same duration. That is, each syndrome is stored in the storage unit for the same duration, assuming 2 microseconds. After the storage duration reaches 2 microseconds, the syndrome is overwritten by the newly received syndrome. Similarly, the codeword corresponding to each syndrome is stored for the same duration. Furthermore, each syndrome has the same decoding duration, assuming 1 microsecond. Once the syndrome is stored for 1 microsecond, the address of the syndrome is deemed invalid, regardless of whether it is decoded or not. The syndrome will not be decoded again until it is overwritten by the newly stored syndrome.

[0021] The embodiments of the present application allow decoding resources to be used more for newly stored syndromes rather than syndromes that have been stored for a long time but for which accurate results have not yet been obtained, thereby achieving on-demand allocation of decoding resources and improving decoding efficiency.

[0022] In one possible implementation, the method further includes: decoding the soft information amplitude corresponding to the selected syndrome. When performing soft decision decoding, the syndrome and its corresponding soft information amplitude need to be decoded together. If the decoding is successful, in addition to the incremental syndrome and the flipped bit, an updated soft information amplitude is also obtained; the incremental syndrome is superimposed with the corresponding syndrome to obtain an updated syndrome; based on the flipped bit, the bit corresponding to the flipped bit in the corresponding codeword is flipped, and the original soft information amplitude is replaced with the updated soft information amplitude to complete the decoding.

[0023] In one possible implementation, the method further includes storing the syndromes corresponding to the first frame in groups, wherein the number of syndromes corresponding to the first frame stored in each group differs by at most one, wherein the first frame includes multiple codewords. Optionally, the number of syndromes corresponding to codewords from the same frame stored in each group is the same, that is, the number in each storage unit is the same, achieving uniform storage. In this embodiment of the present application, the load handled by each storage unit is the average of the storage load. Therefore, this design ensures that all storage units have a roughly consistent load, achieving thermal density balance and avoiding local overheating.

[0024] In a second aspect, a decoding device is provided, comprising: a controller and a decoder, wherein the controller is configured to obtain a syndrome corresponding to each codeword in a plurality of codewords and group the obtained syndromes; the controller is further configured to prioritize the syndromes in each group, and select a syndrome to be sent to the decoder based on the priority ranking result of each group of syndromes; and the decoder is configured to decode the received syndromes.

[0025] The embodiment of the present application does not perform the same decoding processing on the syndrome corresponding to each codeword, thereby avoiding the problem in traditional static decoding schemes that the same number of decoding operations must be performed regardless of whether the codeword itself is correct. This achieves on-demand decoding and reduces the demand for decoding resources and system power consumption.

[0026] In one possible implementation, non-zero syndromes have a higher priority than zero syndromes. Furthermore, non-zero syndromes that have been decoded a large number of times have a lower priority than non-zero syndromes that have been decoded a small number of times. Furthermore, the number of decoding times can be limited. When a syndrome reaches a threshold number of times it has been decoded, it will not be decoded again. For example, the threshold can be set to three times. Once the number of times a syndrome has been decoded reaches three, it will not be decoded again. This increases the chances of decoding syndromes that require decoding, thereby improving decoding efficiency.

[0027] In one possible implementation, the controller is configured to select at most one syndrome from each group and send it to different decoding units in the decoder for hard-decision or soft-decision decoding. The selected syndromes are all non-zero syndromes. Since syndromes with a value of zero do not need to be decoded when hard-decision decoding is used, if all syndromes in a group are 0, no syndromes in that group will be selected for decoding. Therefore, at most one syndrome is selected from each group. In this case, the syndrome storage units only need to be connected to the corresponding decoding units, reducing wiring complexity. Alternatively, each group can select at most two or more syndromes. In this case, the number of decoding units connected to the syndrome storage units in each group becomes two or more. It should be understood that in the case of soft-decision decoding, zero syndromes can be decoded to improve decoding performance, or they can be omitted to reduce decoding complexity.

[0028] In one possible implementation, the controller is configured to select a syndrome from each group and send it to different decoding units in the decoder for soft-decision decoding. During soft-decision decoding, any syndrome may be selected for decoding regardless of whether it is 0. In this case, the storage unit for each syndrome group only needs to be connected to the corresponding decoding unit, reducing wiring complexity. Alternatively, two or more syndromes can be selected from each group, in which case the number of decoding units connected to each syndrome storage unit becomes two or more.

[0029] Optionally, the number of groupings is the same as the number of decoding units to maximize the use of decoding resources.

[0030] In one possible implementation, the controller is further configured to select at most one syndrome from each group and send the syndromes to different decoding units in the decoder for hard decision or soft decision decoding; prioritize the syndromes again within each two groups, and based on the ranking results, select at most one syndrome from each two groups and send the syndromes to different decoding units in the decoder for hard decision or soft decision decoding, wherein the two selected syndromes are different and both selected syndromes are non-zero syndromes. In one possible implementation, the controller is further configured to select one syndrome from each group and send the syndromes to different decoding units in the decoder for soft decision decoding; prioritize the syndromes again within each two groups, and based on the ranking results, select one syndrome from each two groups and send the syndromes to different decoding units in the decoder for soft decision decoding, wherein the two selected syndromes are different. Furthermore, the controller is further configured to divide the obtained syndromes into 2n / 3 groups, where n is the number of decoding units and n is an integer multiple of 3.

[0031] This scheme ensures that at most one syndrome is selected each time, resulting in low algorithmic complexity. Decoding only the selected syndromes is performed, avoiding unnecessary decoding operations and reducing power consumption. The syndrome storage units only need to be connected to the corresponding decoding units, reducing wiring complexity. Optionally, two or more syndromes can be selected per group.

[0032] In a possible implementation, each group includes the same number of syndromes to achieve uniform grouping, which can ensure that the algorithm complexity is low when selecting syndromes.

[0033] In a possible implementation, the syndromes included in each group have different numbers or addresses, and the corresponding syndromes can be identified according to the different numbers or addresses, thereby prioritizing them.

[0034] In one possible implementation, the controller is further configured to, after sending the selected syndromes to the decoder, again prioritize the syndromes in each group, and, based on the result of this prioritization, again select a syndrome from each group and send it to the decoder. Furthermore, the prioritization methods used in the two prioritization steps for each syndrome group may be different.

[0035] In a possible implementation, the controller is configured to update the first syndrome and a codeword corresponding to the first syndrome according to a decoding result when decoding of the first syndrome is successful, wherein the first syndrome is one of the syndromes sent to the decoder.

[0036] In combination with the above possible implementation, in one possible implementation, the decoding device further includes a memory, and the decoder is further configured to, when successfully decoding the first syndrome, obtain an incremental syndrome and a flipped bit corresponding to the first syndrome; and send the incremental syndrome and the flipped bit to the memory; the controller is configured to superimpose the incremental syndrome with the first syndrome, so that the memory stores the updated syndrome; and is further configured to flip the bit corresponding to the flipped bit in the corresponding codeword based on the flipped bit, so that the memory stores the updated bit.

[0037] In one possible implementation, each syndrome is stored for the same duration. That is, each syndrome is stored in the storage unit for the same amount of time, assuming 2 microseconds. After the storage time reaches 2 microseconds, the syndrome is overwritten by the newly received syndrome. Similarly, the codewords corresponding to the syndromes are stored for the same duration. Furthermore, each syndrome is stored for the same amount of time to be decoded, assuming 1 microsecond. Once the syndrome is stored for 1 microsecond, the address of the syndrome is deemed invalid, regardless of whether it has been decoded. The syndrome will not be decoded again until it is overwritten by the newly stored syndrome.

[0038] The embodiments of the present application allow decoding resources to be used more for newly stored syndromes rather than syndromes that have been stored for a long time but for which accurate results have not yet been obtained, thereby achieving on-demand allocation of decoding resources and improving decoding efficiency.

[0039] In one possible implementation, the controller is further configured to send the soft information amplitude corresponding to the selected syndrome to the decoder; the decoder is further configured to decode the soft information amplitude. When performing soft decision decoding, the syndrome and its corresponding soft information amplitude need to be decoded together. If the decoding is successful, in addition to the incremental syndrome and flipped bit, an updated soft information amplitude is also obtained. Furthermore, the decoder sends the incremental syndrome, the flipped bit, and the updated soft information amplitude to the memory; the memory is configured to store the incremental syndrome, the flipped bit, and the updated soft information amplitude; the controller is configured to superimpose the incremental syndrome with the corresponding syndrome so that the memory stores the updated syndrome; and is further configured to flip the bit corresponding to the flipped bit in the corresponding codeword based on the flipped bit, so that the memory stores the updated bit.

[0040] In one possible implementation, the decoding device further includes a memory, the memory including multiple storage units, wherein the number of syndromes corresponding to the first frame stored in each storage unit differs by at most one, wherein the first frame includes multiple codewords. Optionally, the number of syndromes corresponding to codewords from the same frame in each storage unit is the same, achieving uniform storage. In the embodiment of the present application, for each storage unit, the load it handles is the average of the storage load. Therefore, this design ensures that all storage units have a roughly consistent load, achieving thermal density balance and avoiding local overheating.

[0041] In one possible implementation, the decoding device further includes a scheduling unit whose primary functions include: sending syndromes stored in a memory to a decoder according to instructions from a controller, and sending incremental syndromes and flipped bits output by the decoder to a memory. For soft-decision decoding, the scheduling unit further sends soft information amplitudes stored in a memory to the decoder according to instructions from the controller, and sends soft information amplitudes output by the decoder to a memory.

[0042] In particular, in actual implementation, in order to reduce power consumption, the bandwidth of the scheduling unit can be constrained. For example, the number of incremental syndromes and flip bits sent to the memory at each moment can be limited to no more than a specific threshold. At this time, the scheduling unit will cache the incremental syndromes and flip bits that exceed the threshold and send them to the memory at the next moment.

[0043] In a third aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores instructions. When the instructions are executed on a terminal device, the terminal device executes the method described in the first aspect and any possible implementation method of the first aspect.

[0044] In a fourth aspect, a computer program product comprising instructions is provided, which, when executed on a terminal device, enables the terminal device to execute the method as described in the first aspect and any possible implementation of the first aspect.

[0045] The embodiments of the present application do not perform the same decoding process on the syndrome corresponding to each codeword. This avoids the problem of traditional static decoding schemes requiring the same number of decodings regardless of the codeword's accuracy. This enables on-demand decoding, reducing decoding resource requirements and system power consumption. Furthermore, the use of a group selection approach reduces algorithm complexity, and the syndrome storage unit only needs to be connected to the corresponding decoding unit, which also reduces wiring complexity. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] Figure 1 It is the structural block diagram of the communication system;

[0047] Figure 2 The basic architecture diagram of on-demand decoding provided by this application;

[0048] Figure 3 A flowchart of an on-demand decoding method provided by this application;

[0049] Figure 4 A corresponding relationship diagram between each syndrome group and decoding unit provided in this application;

[0050] Figure 5 Another correspondence diagram between each syndrome group and decoding unit provided by this application;

[0051] Figure 6 Another correspondence diagram between each syndrome group and decoding unit provided by this application;

[0052] Figure 7 A diagram showing the correspondence between a syndrome and a storage unit provided in this application;

[0053] Figure 8 A diagram of an on-demand decoding device provided by this application;

[0054] Figure 9 This is another diagram of an on-demand decoding device provided by this application. DETAILED DESCRIPTION

[0055] Before explaining the embodiments of the present application in detail, the application scenarios of the embodiments of the present application are first explained. Figure 1The structural block diagram of the communication system is shown. At the transmitting end, the source provides the data stream to be sent; the encoder receives the data stream and encodes it, and then transmits the codeword information obtained by encoding the check bits and information bits, which is transmitted through the channel to the receiving end; after the receiving end receives the codeword information that is erroneous due to noise or other damage in the channel, it decodes it through the decoding device, recovers the original data, and sends it to the destination. Among them, the decoding method provided by this application is applied to Figure 1 The decoding device shown is a very important part of the communication system.

[0056] The decoding method provided by this application is a dynamic on-demand decoding method, and its basic structure is as follows Figure 2 As shown in FIG, the decoding architecture includes codeword sequence grouping priority sorting, decoding dynamic scheduling, decoder decoding, codeword and syndrome update. The specific steps are as follows Figure 3 Shown, including:

[0057] 301. Obtain a syndrome corresponding to each of the multiple codewords. The syndrome is obtained based on the transpose of the codeword to be decoded and the parity check matrix. Typically, the syndrome is the inner product of the transpose of the codeword to be decoded and the parity check matrix, and is used to determine error bits during the decoding process. Since errors may occur during codeword transmission due to interference, for example, if the codeword sent is A and the codeword to be decoded is B, then the bit error is E=AB, that is, the codeword to be decoded is B=A+E. At this time, S=B·H T That is the syndrome, where H is the parity check matrix. Since the transposed product of the original codeword and the H matrix is ​​zero, S = A·H T +E·H T =E·H T If the syndrome S is 0, the transmission is error-free or the error E is a legal codeword. If the syndrome S is a non-zero vector, the transmission is error-free. The decoder can determine the error pattern (i.e., flip the bits) based on the syndrome, and flip the bits at the corresponding positions in the codeword to be decoded to obtain the decoded codeword.

[0058] 302. Group the obtained syndromes and prioritize the syndromes within each group. For example, different syndromes have different numbers. Assuming there are 100 syndromes, the syndromes are numbered from 1 to 100 and grouped into different groups. If all syndromes are non-zero, they can be prioritized in ascending order of number within the different groups. Furthermore, non-zero syndromes have higher priority than zero syndromes. If there are syndromes with a value of 0, the non-zero syndromes are prioritized in ascending order within the different groups, with the zero syndrome placed last. It should be understood that non-zero syndromes can also be prioritized from largest to smallest or 1, 3, 5, etc. There are many other possible priority sorting methods that meet the requirements, and this application does not limit them. Furthermore, the numbers can also be replaced by storage addresses, and the sorting method is the same, so it will not be described in detail.

[0059] Specifically, assuming that there are 64 syndromes to be grouped, they are divided into four groups. Syndromes 1-16, 17-32, 33-48, and 49-64 are respectively divided into four groups, and each group is prioritized in ascending order. During this decoding, if all 64 syndromes are non-zero syndromes, they are prioritized in ascending order, and the syndromes with the highest priorities in each group are 1, 17, 33, and 49. If there is a syndrome with a value of zero, its priority is lowered. For example, if the value of syndrome 1 is 0 and the remaining syndromes are non-zero syndromes, the syndromes with the highest priorities in each group are 2, 17, 33, and 49. If syndrome 2 is also 0, syndrome 3 has the highest priority in the first group. If the values ​​of syndromes 1-16 in this group are all 0, they are still sorted in the preset order.

[0060] Optionally, a non-zero syndrome with a large number of decoding times has a lower priority than a non-zero syndrome with a small number of decoding times. That is, when sorting non-zero syndromes, the priority of non-zero syndromes with a small number of decoding times needs to be increased. For example, suppose a group includes 16 syndromes, syndromes 1-5 are zero syndromes, and syndromes 6-16 are non-zero syndromes. Among them, syndromes 10-16 have not been decoded at all, and the remaining non-zero syndromes have been decoded once. In this case, syndromes 10-16 have a higher priority than syndromes 6-9, and syndromes 6-9 have a higher priority than syndromes 1-5. Among the three types of syndromes, taking the order of the numbers from smallest to largest as an example, it can be concluded that the priority order in this group is 10, 11...16, 6, 7...9, 1, 2...5.

[0061] It should be understood that in the case of a hard decision, the syndrome value is zero and does not require decoding. In the case of a soft decision, every syndrome may be decoded regardless of whether the syndrome value is 0. Therefore, in the case of a hard decision, if all syndrome values ​​in a group are 0, then all syndromes in that group do not need to be decoded. In addition, in the case of a soft decision, it is also possible to only consider the number of decodings. For example, syndromes with a high number of decodings can be given a lower priority than syndromes with a low number of decodings, regardless of whether the syndrome value is 0.

[0062] 303. Select a syndrome for decoding according to the priority ranking result of each group of syndromes.

[0063] The embodiment of the present application does not perform the same decoding processing on each codeword, avoiding the problem in traditional static decoding schemes that the same number of decodings must be performed regardless of whether the codeword itself is correct, achieving on-demand decoding and reducing the demand for decoding resources and system power consumption.

[0064] It should be noted that decoding can adopt parallel decoding, that is, multiple decoding units decode simultaneously, and the number of parallel decoding is the same as the number of decoding units. If there are 4 decoding units, which can support 4 syndromes to be decoded simultaneously, the number of parallel decoding is 4. At this time, the number of selected syndromes should not exceed 4.

[0065] As described above, when hard decision decoding is performed on the obtained codeword, only non-zero syndromes need to be decoded. When soft decision decoding is performed on the obtained codeword, syndromes with a value of zero may also need to be decoded, and the soft information amplitude corresponding to each bit contained in the codeword is also obtained. In this case, in step 203, in addition to decoding the selected syndrome, the soft information amplitude corresponding to the syndrome also needs to be decoded.

[0066] It should be noted that, in general, the soft information amplitude and sign bit are collectively referred to as soft information. The sign bit is the value of each bit in the codeword (0 or 1), and the soft information amplitude represents the probability of each bit being 0 or 1. That is, the soft information indicates the probability of the corresponding bit being 0 or 1.

[0067] Furthermore, the number of syndromes included in each group is not limited. For example, if 10 syndromes are divided into 4 groups, two groups can include 3 syndromes and two groups can include 2 syndromes. Alternatively, one group can include 4 syndromes, and the remaining three groups can each include 2 syndromes. Optionally, each group can include the same number of syndromes, which maximizes the uniformity of the syndrome grouping and reduces the complexity of the priority sorting.

[0068] The decoding method of the present application can be applied to a decoding device including multiple decoding units, wherein the syndrome is selected for decoding in the following ways:

[0069] (1) The syndromes are divided into n groups, where n is a positive integer not greater than the number of parallel decoding operations. Optionally, n is the number of parallel decoding operations, and at most one syndrome is selected from each group and sent to different decoding units for hard-decision or soft-decision decoding. Optionally, n is the number of parallel decoding operations, and one syndrome is selected from each group and sent to different decoding units for soft-decision decoding.

[0070] In the embodiment of the present application, it is assumed that the number of syndromes is 64, and there are 4 decoding units capable of parallel decoding, that is, the number of parallel decoding is 4. The 64 syndromes are divided into 4 groups (i.e., n=4), each group having 16 syndromes. Figure 4 As shown, at most one syndrome is selected from syndromes 1-16 and sent to the first decoding unit, at most one syndrome is selected from syndromes 17-32 and sent to the second decoding unit, at most one syndrome is selected from syndromes 33-48 and sent to the third decoding unit, and at most one syndrome is selected from syndromes 49-64 and sent to the fourth decoding unit. This grouped selection approach is less complex than directly selecting four syndromes from 64. Only the selected syndromes need to be decoded, avoiding most unnecessary decoding operations and reducing power consumption. Furthermore, the syndrome storage units only need to be connected to the corresponding decoding units. For example, the storage units for syndromes 1-16 only need to be connected to the first decoding unit, and the storage units for syndromes 17-32 only need to be connected to the second decoding unit, reducing wiring complexity. The selection steps from each group can be performed in parallel, further reducing decoding time.

[0071] It should be noted that when hard-decision decoding is performed and all syndromes in each group are 0, no syndrome is selected for decoding. Therefore, one syndrome may be selected for decoding in a group, or no syndrome may be selected for decoding in a group. In the case of soft-decision decoding, one syndrome may be selected for decoding in each group. Of course, the syndrome with the highest priority within the group is selected for decoding. In subsequent embodiments, whether selecting a maximum of one syndrome for decoding from each group, from every two groups, or even from multiple groups, the above requirements must also be met, and this application will not elaborate further.

[0072] (2) Select at most one syndrome from each group and send it to different decoding units for hard decision or soft decision decoding; prioritize the syndromes again in each of the two groups, and based on the sorting results, select at most one syndrome from each of the two groups and send it to different decoding units for hard decision or soft decision decoding, wherein the two selected syndromes are different and both selected syndromes are non-zero syndromes. Optionally, select one syndrome from each group and send it to different decoding units for soft decision decoding; prioritize the syndromes again in each of the two groups, and based on the sorting results, select one syndrome from each of the two groups and send it to different decoding units for soft decision decoding, wherein the two selected syndromes are different. Specifically, the obtained syndromes are divided into 2n / 3 groups, wherein n is not greater than the number of parallel decodings and n is an integer multiple of 3; optionally, n is the number of parallel decodings and n is an integer multiple of 3. In each group, at most one syndrome is selected for decoding based on the priority sorting result, that is, at most 2n / 3 syndromes are selected for decoding; then, from every two groups, at most one syndrome is selected based on the priority sorting result obtained again, that is, at most n / 3 syndromes are selected for decoding, and a total of no more than n syndromes are selected for decoding.

[0073] For example, assuming that the number of syndromes is 64 and there are 6 decoding units capable of parallel decoding, then according to this scheme, the 64 syndromes are divided into 4 groups, each group including 16 syndromes, such as Figure 5As shown, at most one syndrome is selected from syndromes 1-16 and sent to the first decoding unit, at most one syndrome is selected from syndromes 17-32 and sent to the second decoding unit, at most one syndrome is selected from syndromes 33-48 and sent to the third decoding unit, and at most one syndrome is selected from syndromes 49-64 and sent to the fourth decoding unit. Then, the selected syndromes are removed from syndromes 1-32, and at most one more accurate syndrome is selected and sent to the fifth decoding unit. Finally, the selected syndromes are removed from syndromes 33-64, and at most one more accurate syndrome is selected and sent to the sixth decoding unit. The first to fourth decoding units are first-level decoding units, and the fifth and sixth decoding units are second-level decoding units. In this solution, it is ensured that at most one syndrome is selected each time, and the algorithm complexity is low. Moreover, only the selected syndrome needs to be decoded, avoiding most unnecessary decoding operations and reducing power consumption. The storage units of the syndromes also only need to be connected to the corresponding decoding units. For example, the storage units of syndromes 1-16 only need to be connected to the first and fifth decoding units, the storage units of syndromes 17-32 only need to be connected to the second and fifth decoding units, the storage units of syndromes 33-48 only need to be connected to the third and sixth decoding units, and the storage units of syndromes 49-64 only need to be connected to the fourth and sixth decoding units, resulting in low wiring complexity.

[0074] In particular, the steps of selecting at most one syndrome from each of the four groups can be performed in parallel, and the steps of selecting at most one syndrome from 1-32 and 33-64 can also be performed in parallel, further reducing decoding time.

[0075] (3) Based on the scheme (1) having only one level of decoding units and the scheme (2) having two levels of decoding units, there can also be three levels of decoding units. In this case, a maximum of one syndrome is selected from each group and sent to different decoding units for hard decision or soft decision decoding; the syndromes are prioritized again in every two groups, and according to the sorting results, a maximum of one syndrome is selected from every two groups and sent to different decoding units for hard decision or soft decision decoding; the syndromes are prioritized again in every four groups, and according to the sorting results, a maximum of one syndrome is selected from every four groups and sent to different decoding units for hard decision or soft decision decoding, wherein the three selected syndromes are different. In addition, when performing soft decision, one syndrome is selected from each group, every two groups, and every four groups for soft decision decoding.

[0076] Specifically, the grouping method may be to divide the syndromes into 4n / 7 groups, where n is not greater than the number of parallel decodings and is an integer multiple of 7. Alternatively, n is equal to the number of parallel decodings and is an integer multiple of 7. In each group, at most one syndrome is selected for decoding based on the priority sorting result, i.e., at most 4n / 7 syndromes are selected for decoding. Priority sorting is performed again in every two groups, and at most one syndrome is selected from each of the two groups based on the priority sorting result, i.e., at most 2n / 7 syndromes are selected for decoding. Priority sorting is performed again in every four groups, and at most one syndrome is selected based on the priority sorting result, i.e., at most n / 7 syndromes are selected again for decoding. In total, no more than n syndromes are decoded, and the syndromes selected three times are all different.

[0077] For example, assuming that the number of syndromes is 64 and there are 7 decoding units capable of decoding in parallel, then according to this scheme, the 64 syndromes are divided into 4 groups, each group including 16 syndromes, such as Figure 6 As shown, at most one syndrome is selected from syndromes 1-16 and sent to the first decoding unit, at most one syndrome is selected from syndromes 17-32 and sent to the second decoding unit, at most one syndrome is selected from syndromes 33-48 and sent to the third decoding unit, and at most one syndrome is selected from syndromes 49-64 and sent to the fourth decoding unit. The first through fourth decoding units are first-level decoding units. Then, the selected syndromes are removed from syndromes 1-32, and at most one better syndrome is selected and sent to the fifth decoding unit. The selected syndromes are removed from syndromes 33-64, and at most one better syndrome is selected and sent to the sixth decoding unit. The fifth and sixth decoding units are second-level decoding units. The selected syndromes are removed from syndromes 1-64, and at most one syndrome is selected and sent to the seventh decoding unit. The seventh decoding unit is third-level decoding unit.

[0078] This scheme ensures that at most one syndrome is selected each time, ensuring low algorithmic complexity. It only needs to decode the selected syndrome, avoiding most unnecessary decoding operations and reducing power consumption. Storage units only need to be connected to corresponding decoding units, reducing wiring complexity. Compared to the previous two schemes, decoding time is slightly longer, but decoding performance is also better.

[0079] Furthermore, the steps for selecting syndromes for decoding based on priority are divided into three levels. In the first level, the steps of selecting a maximum of one syndrome from each of the four groups can be performed in parallel. In the second level, the steps of selecting a maximum of one syndrome from each of the groups 1-32 and 33-64 can also be performed in parallel. Finally, in the third level, a maximum of one syndrome from each of the groups 1-64 is selected, increasing the parallelism of the selection process and reducing decoding time.

[0080] The above-mentioned solutions are only several implementation methods provided in this application. Other methods are also possible, for example, dividing into more levels, or when grouping, each group includes a different number of syndromes.

[0081] Furthermore, more than one syndrome can be selected from each group. For example, assuming the number of syndromes is 64 and there are six decoding units capable of decoding in parallel, the 64 syndromes can be divided into four groups, each containing 16 syndromes. In this case, a maximum of two syndromes can be selected from each of two groups for decoding, and a maximum of one syndrome can be selected from each of the remaining two groups for decoding. In this case, the storage units for the two syndrome groups are connected to the corresponding two decoding units, and the storage units for the remaining two syndrome groups are connected to the corresponding one decoding unit. Alternatively, a maximum of three syndromes can be selected from one group for decoding, and a maximum of one syndrome can be selected from each of the remaining three groups for decoding. In this case, the storage units for one syndrome group are connected to the corresponding three decoding units, and the storage units for the remaining three syndrome groups are connected to the corresponding one decoding unit. In addition, one syndrome may be selected from each group, and then two syndromes may be selected from three groups of syndromes, or two syndromes may be selected from two groups of syndromes, to obtain a total of six syndromes for decoding. There are many similar selection methods, all of which are within the scope of protection of this application.

[0082] Furthermore, in the case of soft decision, decoding is required regardless of whether the syndrome is 0 or not, and there is no situation where no syndrome needs to be decoded. In this case, the selection method becomes: two syndromes are selected from each of two groups for decoding, and one syndrome is selected from each of the remaining two groups for decoding; or three syndromes are selected from one group for decoding, and one syndrome is selected from each of the remaining three groups for decoding. In addition, if there are multiple levels of decoding units, for example, according to the above method (2), more than one syndrome can be selected from each of the two groups.

[0083] Optionally, at the next decoding moment, the priority order preset within each group is different from the priority order at the previous decoding moment. For example, if the priority order within each group is 1, 2, 3, ... during the current decoding, the priority order at the next decoding moment may be 2, 3, 4, ..., 1, forming a cyclic shift relationship with the priority order at the previous decoding moment. Optionally, at any decoding moment, a non-zero syndrome has a higher priority than a zero syndrome.

[0084] Specifically, assuming the number of syndromes is 64, syndromes 1-16, 17-32, 33-48, and 49-64 are divided into four groups, respectively. During this decoding, the syndromes are selected in the order of (1, 2…16), (17, 18…32), (33, 34…48), and (49, 50…64), and syndromes 1, 17, 33, and 49 are selected for decoding. At the next decoding moment, there is an incomplete sequence with the previous one. The 64 identical syndromes are still numbered 1-64. Syndromes 1-16, 17-32, 33-48, and 49-64 are also divided into four groups. The priority order becomes (2, 3...16, 1), (18, 19...32, 17), (34, 35...48, 33), and (50, 51...64, 49). Syndromes 2, 18, 34, and 50 are selected for decoding, and so on. Furthermore, assuming that during this decoding, syndromes 1-3 and 17-20 are all zero syndromes, then according to the same priority order, with non-zero syndromes taking precedence over zero syndromes, syndromes 4, 21, 33, and 49 are selected for decoding. At the next decoding moment, among the 64 syndromes, syndromes 4-6 and 18 are zero syndromes. Based on the changed priority order and the fact that non-zero syndromes take precedence over zero syndromes, syndromes 2, 19, 34, and 50 are selected for decoding.

[0085] Of course, at two decoding moments, the priority order of selecting at most one syndrome from each group may not follow the cyclic shift relationship. For example, under the condition that the priority of the non-zero syndrome is higher than that of the zero syndrome, the priority order of the non-zero syndrome is randomly set each time, etc. This application does not make any specific limitations.

[0086] It should be understood that the syndrome corresponding to each of the multiple codewords obtained can be selected from the syndromes stored in the memory. For example, if the number of syndromes obtained is 64 and the memory includes 64 storage cells, then one syndrome can be selected from each storage cell to obtain 64 syndromes. Of course, if there are 32 storage cells, it is also possible to select two syndromes from each storage cell, and this is not specifically limited in this application. Moreover, the syndromes obtained at the two decoding times can be different. That is, during the subsequent decoding, 64 new syndromes will be obtained. It is possible that the syndrome selected is exactly the same as the previous one, or some of the syndromes may be different, or even completely different syndromes may be obtained.

[0087] When decoding the selected syndromes, taking one of the syndromes (the first syndrome) as an example, if the decoding fails, no operation is performed, or the corresponding soft information amplitude is updated; if the decoding is successful, the first syndrome and the codeword corresponding to the first syndrome are updated according to the decoding result.

[0088] If hard decision decoding is performed on the obtained codeword, the decoding result includes the incremental syndrome corresponding to the first syndrome and the flip bit. The incremental syndrome is superimposed on the first syndrome to obtain an updated syndrome, which replaces the original first syndrome. Then, based on the flip bit, the bit corresponding to the flip bit in the corresponding codeword is flipped. Assuming that the codeword corresponding to the first syndrome includes 100 bits and the flip bit indicates the 30th bit, the 30th bit in the codeword is flipped, that is, 0 becomes 1, or 1 becomes 0.

[0089] If soft-decision decoding is performed on the obtained codeword, the soft information amplitude corresponding to the syndrome is also decoded. For the first syndrome, if decoding is successful, the incremental syndrome corresponding to the first syndrome is obtained, the flipped bit, and the updated soft information amplitude are obtained. The incremental syndrome is superimposed on the first syndrome to obtain an updated syndrome, which replaces the original first syndrome. Based on the flipped bit, the bits corresponding to the flipped bit in the corresponding codeword are flipped. The updated soft information amplitude is then used to replace the original soft information amplitude, completing the decoding.

[0090] There are several different mechanisms for outputting codewords and their corresponding syndromes. For example, each syndrome can be stored for a fixed time, say 2 microseconds. After the storage time reaches 2 microseconds, the syndrome is overwritten by the newly received syndrome. Similarly, the storage time of the codeword corresponding to each syndrome is also the same. For another example, each syndrome can be decoded for a fixed time, say 1 microsecond. Once the syndrome is stored for 1 microsecond, the address of the syndrome is considered invalid, regardless of whether it has been decoded. The syndrome will not be decoded again until it is overwritten by the newly stored syndrome.

[0091] While ensuring that the storage time or decoding time remain the same, the number of times a syndrome can be decoded can be further limited. For example, if the threshold for the number of decoding times is set to 3, each syndrome can be decoded a maximum of three times. If a syndrome has been decoded three times, it will no longer be selected for decoding. Alternatively, the storage time or decoding time can be set independently, with only the number of decoding times being limited. Once a syndrome has been decoded a threshold number of times, the address of that syndrome is deemed invalid until it is overwritten by a newly stored syndrome, at which point the corresponding codeword is output from the corresponding storage unit.

[0092] The present embodiment also simulates decoding performance using a spatially coupled Bose-Chaudhuri-Hocquenghem (BCH) code with a code rate of 444 / 484 = 0.917. Using the BCH code with a code rate of 0.917, 64 cyclic BCH (968, 928) codes with a code length of 968, an information length of 928, and a 4-bit error correction capability were constructed. In other words, each codeword contains 968 information bits and 40 check bits. Half of the bits in each BCH (968, 928) code come from the previously generated codeword. Then, after obtaining the syndrome corresponding to each codeword (a total of 64 syndromes), a maximum of 6 non-zero syndromes are selected for hard decision decoding in the manner of scheme (2) in the above embodiment. The results show that when the input bit error rate is 6.05E-3, the bit error rate (also called output bit error rate) of the decoding using the dynamic decoding provided by the present application is approximately 1E-15, and the performance meets the requirements. At the same time, the algorithm complexity of this scheme is low; only the selected syndromes need to be decoded, which avoids most unnecessary decoding operations and has low power consumption; moreover, the storage unit does not need to be connected to all decoding units, and the wiring complexity is also low.

[0093] Another embodiment of the present application provides a storage load balancing solution that groups and stores syndromes corresponding to a first frame. The number of syndromes stored in each group for the first frame differs by at most one, where the first frame includes multiple codewords. Optionally, each group stores the same number of syndromes corresponding to codewords belonging to the same frame. The following description uses the example of each group storing the same number of syndromes corresponding to codewords from the same frame.

[0094] For example, a data frame includes k codewords, each codeword corresponds to a syndrome, and the syndromes corresponding to the codewords in the data frame are stored in k groups, with each group storing one syndrome; the decoding window length of the decoder is b frames, and k and b are both positive integers. In this case, the storage unit needs to store k*b syndromes in total. In a load balancing solution, there are a total of k storage units, such as Figure 7As shown, Ci,j represents the syndrome of the jth codeword in the i-th frame, i = 1, 2…b, and j = 1, 2…k. The j-th storage unit 701 stores the syndromes of the j-th codewords of different frames, with frame numbers cyclically accumulated from 1 to b. Assuming the current input frame is frame number 1, since the codewords in this frame contain the most bit errors and therefore require the most decoding and storage updates, this solution evenly distributes the syndromes corresponding to all codewords in current frame 1 across all storage units 701. Similarly, the syndromes corresponding to all codewords in frames 2, 3…b are also evenly distributed across all storage units 701, but they have fewer bit errors than frame 1 and require fewer decoding and storage updates. For each storage unit 701, the load it handles is the average storage load within the decoding window length of n frames. Therefore, this design ensures that all storage units 701 have a roughly consistent load, achieving uniform heat density and preventing local overheating.

[0095] Furthermore, the number of groups stored can also differ from the number of codewords contained in a data frame. For example, if each data frame contains 11 codewords and they are stored in 10 groups, one group needs to store the syndromes corresponding to two codewords, and the remaining nine groups each store the syndrome corresponding to one codeword, ensuring uniform storage and avoiding high local power consumption. It should be understood that the storage of codewords can also meet the above conditions to ensure uniform storage of the codewords contained in each frame, thereby reducing local power consumption.

[0096] The on-demand decoding solution provided by the aforementioned embodiment achieves the correspondence between syndrome storage units and decoding units. Therefore, the decoding load of the decoding unit is also the average decoding load within the decoding window length of a total of b frames. Since the number of decodings participated in by each decoding unit is balanced, the power consumption generated by the chip area where each decoding unit is located is also similar, which can significantly improve the thermal density balance level and reduce the engineering difficulty of chip implementation.

[0097] This application provides a decoding device, such as Figure 8 As shown, a controller 801 and a decoder 802 are provided. The controller 801 is configured to obtain a syndrome corresponding to each codeword from a plurality of codewords and group the obtained syndromes. The controller 801 is further configured to prioritize the syndromes in each group and select a syndrome based on the priority ranking result of each group of syndromes to send to the decoder 802. The decoder 802 is configured to decode the received syndromes.

[0098] The decoding device disclosed in the embodiment of the present application does not perform the same decoding processing on each codeword, avoiding the problem in traditional decoding schemes that the same number of decoding operations must be performed regardless of whether the codeword itself is correct, achieving on-demand decoding and reducing the demand for decoding resources and system power consumption.

[0099] Optionally, a non-zero syndrome has a higher priority than a syndrome with a value of zero; further, a non-zero syndrome with a high number of decoding times has a lower priority than a non-zero syndrome with a low number of decoding times. That is, when sorting the non-zero syndromes, the priority of the non-zero syndrome with a low number of decoding times needs to be increased, and the syndrome with a low number of decoding times has a higher priority. Specific examples are described in the previous method embodiments and will not be repeated in this embodiment. Furthermore, there are multiple ways to select syndromes for decoding, which have been described in detail in the previous method embodiments and will not be repeated in this embodiment.

[0100] Furthermore, the number of syndromes included in each group is not limited. For example, if 10 syndromes are divided into 4 groups, two groups can include 3 syndromes and two groups can include 2 syndromes. Alternatively, one group can include 4 syndromes, and the remaining three groups can each include 2 syndromes. Optionally, each group can include the same number of syndromes, which maximizes the uniformity of the syndrome grouping and reduces the complexity of the priority sorting.

[0101] When hard-decision decoding is performed on the obtained codeword, only non-zero syndromes need to be decoded. When soft-decision decoding is performed on the obtained codeword, syndromes with a value of zero may also need to be decoded. Furthermore, the decoding device also receives the soft information amplitude corresponding to each bit contained in the codeword. In this case, the controller 801 not only sends the selected syndrome to the decoder 802 for decoding, but also sends the corresponding soft information amplitude to the decoder 802. Generally, the soft information amplitude and the sign bit are collectively referred to as soft information. The sign bit represents the value of each bit in the codeword (0 or 1), while the soft information amplitude represents the probability of each bit being 0 or 1. In other words, the soft information indicates the probability of the corresponding bit being 0 or 1.

[0102] Optionally, at the next decoding moment, the priority order preset within each group is different from the priority order at the previous decoding moment. For example, if the priority order within each group is 1, 2, 3, ... during the current decoding, the priority order at the next decoding moment may be 2, 3, 4, ..., 1, forming a cyclic shift relationship with the priority order at the previous decoding moment. Optionally, at any decoding moment, a non-zero syndrome has a higher priority than a zero syndrome.

[0103] Specifically, assuming the number of syndromes is 64, syndromes 1-16, 17-32, 33-48, and 49-64 are divided into four groups, respectively. During this decoding, the syndromes are selected in the order of (1, 2…16), (17, 18…32), (33, 34…48), and (49, 50…64), and syndromes 1, 17, 33, and 49 are selected for decoding. At the next decoding moment, there is an incomplete sequence with the previous one. The 64 identical syndromes are still numbered 1-64. Syndromes 1-16, 17-32, 33-48, and 49-64 are also divided into four groups. The priority order becomes (2, 3...16, 1), (18, 19...32, 17), (34, 35...48, 33), and (50, 51...64, 49). Syndromes 2, 18, 34, and 50 are selected for decoding, and so on. Furthermore, assuming that during this decoding, syndromes 1-3 and 17-20 are all zero syndromes, then according to the same priority order, with non-zero syndromes taking precedence over zero syndromes, syndromes 4, 21, 33, and 49 are selected for decoding. At the next decoding moment, among the 64 syndromes, syndromes 4-6 and 18 are zero syndromes. Based on the changed priority order and the fact that non-zero syndromes take precedence over zero syndromes, syndromes 2, 19, 34, and 50 are selected for decoding.

[0104] Of course, at two decoding moments, the priority order of selecting at most one syndrome from each group may not follow the cyclic shift relationship. For example, under the condition that the priority of the non-zero syndrome is higher than that of the zero syndrome, the priority order of the non-zero syndrome is randomly set each time, etc. This application does not make any specific limitations.

[0105] Typically, the decoding device also includes a memory 803. The syndrome corresponding to each of the multiple codewords obtained can be selected from the syndromes stored in the memory 803. For example, if the number of syndromes obtained is 64, and the memory 803 includes 64 storage cells, 64 syndromes can be obtained by selecting one syndrome from each storage cell. Of course, if there are 32 storage cells, selecting two syndromes from each storage cell is also possible, and this application does not specifically limit this. The storage cells can be different locations in the same memory or multiple memories; or one memory can be a storage cell, and this application does not limit this.

[0106] Furthermore, the syndromes obtained at the two decoding moments may be different. That is, during the second decoding, 64 new syndromes will be obtained. It is possible that the syndrome selected is exactly the same as the previous one, or some of the syndromes may be different, or even completely different syndromes may be obtained.

[0107] When the decoder 802 decodes the received syndrome, if the decoding is successful, the first syndrome and the codeword corresponding to the first syndrome are updated according to the decoding result; if the decoding fails, no operation is performed.

[0108] Decoder 803 performs hard-decision decoding on the received syndromes. Taking one of the syndromes (the first syndrome) as an example, if the decoding is successful, an incremental syndrome and a flipped bit corresponding to the first syndrome are obtained, and the incremental syndrome and the flipped bit are then sent to memory 803. Controller 801 is configured to superimpose the incremental syndrome with the first syndrome, causing memory 803 to store the updated syndrome. Controller 801 is further configured to flip the bits corresponding to the flipped bits in the corresponding codeword based on the flipped bits, causing memory 803 to store the updated bits. Assuming the codeword corresponding to the first syndrome includes 100 bits and the flipped bit indicates the 30th bit, the 30th bit in the codeword is flipped, i.e., changed from 0 to 1 or from 1 to 0.

[0109] If decoder 802 performs soft-decision decoding on the received syndrome, the soft information amplitude corresponding to the syndrome must also be decoded. For the first syndrome, if decoding is successful, the incremental syndrome corresponding to the first syndrome, the flipped bit, and the updated soft information amplitude are obtained. The incremental syndrome, flipped bit, and updated soft information amplitude are sent to memory 803. Controller 801 is configured to superimpose the incremental syndrome with the first syndrome, causing memory 803 to store the updated syndrome. Based on the flipped bit, the controller flips the bit corresponding to the flipped bit in the corresponding codeword, causing memory 803 to store the updated bit.

[0110] It should be noted that the memory 803 may include different storage units, for example, a syndrome storage unit, a data storage unit and a soft information storage unit, which are used to store syndromes, codewords and corresponding soft information respectively.

[0111] Optionally, the decoding device further includes a scheduling unit 804, such as Figure 9 As shown, its main functions include: sending the syndrome in memory 803 to decoder 802 according to the instructions of controller 801, and sending the incremental syndrome and flipped bits output by decoder 802 to memory 803. For soft decision decoding, scheduling unit 804 also sends the soft information amplitude in memory 803 to decoder 802 according to the instructions of controller 801, and sends the soft information amplitude output by decoder 802 to memory 803.

[0112] In particular, in actual implementation, in order to reduce power consumption, the bandwidth of the scheduling unit 804 can be constrained. For example, the number of incremental syndromes and flip bits sent to the memory 803 at each moment is limited to not exceed a specific threshold. In this case, the scheduling unit 804 will cache the incremental syndromes and flip bits that exceed the threshold and send them to the memory at the next moment.

[0113] There are several different mechanisms for outputting codewords and their corresponding syndromes. For example, each syndrome can be stored for the same duration. That is, each syndrome can only be stored in memory 803 for a fixed duration, say 2 microseconds. Once the storage duration reaches 2 microseconds, the syndrome will be overwritten by the newly received syndrome. Similarly, the storage duration of the codeword corresponding to each syndrome is also the same. For another example, each syndrome can be decoded for the same duration, say 1 microsecond. Once the syndrome is stored for 1 microsecond, the address of the syndrome is deemed invalid, regardless of whether it has been decoded. The syndrome will not be decoded again until it is overwritten by the newly stored syndrome.

[0114] While ensuring that the storage time or decoding time remain the same, the number of times a syndrome can be decoded can be further limited. For example, if the threshold for the number of decoding times is set to 3, each syndrome can be decoded a maximum of three times. If a syndrome has been decoded three times, it will no longer be selected for decoding. Alternatively, the storage time or decoding time can be set independently, with only the number of decoding times being limited. Once a syndrome has been decoded a threshold number of times, the address of the syndrome in memory 803 is deemed invalid until it is overwritten by a newly stored syndrome. The corresponding codeword is then output from the corresponding memory.

[0115] Optionally, the memory includes multiple storage units, and the number of syndromes corresponding to the first frame stored in each storage unit differs by at most one, thereby achieving uniform storage, wherein the first frame includes multiple codewords. Furthermore, each storage unit stores the same number of syndromes corresponding to codewords belonging to the same frame. The following description uses the example of each storage unit storing the same number of syndromes corresponding to codewords from the same frame.

[0116] Assume that the decoding window length of decoder 802 is b frames, each data frame contains k codewords, k and b are both positive integers, then the memory 803 needs to store k*b syndromes in total. The embodiment of the present application provides a load balancing solution, the memory includes k storage units, each of size b, such as Figure 6As shown in Figure 1, where Ci,j represents the codeword information for the jth codeword in the i-th frame, i = 1, 2…b, and j = 1, 2…k. The j-th storage unit stores the syndromes for the j-th codewords of different frames, with frame numbers cyclically accumulated from 1 to b. Assuming the current input frame is frame number 1, since the codewords in this frame contain the most bit errors and therefore require the most decoding and storage updates, this scheme evenly distributes the syndromes corresponding to all codewords in current frame 1 across all storage units. Similarly, the syndromes corresponding to all codewords in frames 2, 3…b are also evenly distributed across all storage units, but they have fewer bit errors than frame 1 and require fewer decoding and storage updates. Each storage unit handles the average storage load within the decoding window length of n frames. This design ensures that all storage units have a roughly uniform load, achieving uniform heat density and preventing local overheating.

[0117] In addition, the number of storage units can also be different from the number of codewords contained in the data frame. For example, if each data frame contains 100 codewords and the number of storage units is 10, then each storage unit stores the syndromes corresponding to the 10 codewords in the data frame. If each data frame contains 11 codewords and the number of storage units is still 10, then one storage unit stores the syndromes corresponding to two codewords, and the remaining 9 storage units each store the syndrome corresponding to one codeword. This embodiment can ensure uniform storage and avoid high local power consumption. It should be understood that the received codewords and syndromes are stored in different storage units, and the scheme for storing codewords can also be stored according to the above-mentioned syndrome storage scheme. If it is a soft decision, the soft information amplitude corresponding to each bit in the codeword is also received, and the soft information amplitude can also be stored according to the above-mentioned syndrome storage scheme.

[0118] The on-demand decoding solution provided by the aforementioned embodiment achieves a correspondence between the storage unit storing the syndrome and the decoding unit. Therefore, the decoding load of the decoding unit is also the average decoding load within the decoding window length of a total of b frames. Since the number of decoding operations participated in by each decoding unit is balanced, the power consumption generated by the chip area where each decoding unit is located is also similar, which can significantly improve the thermal density balance level and reduce the engineering difficulty of chip implementation.

[0119] It should be noted that the decoding device involved in this application can be composed of an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA), wherein each functional device, including memory, scheduling unit, etc., can be implemented by ASIC or FPGA, ultimately constituting a decoding device.

[0120] An embodiment of the present application provides a computer-readable storage medium or a computer program product for storing a computer program, which is used to execute the decoding method disclosed in the method embodiment of the present application.

[0121] It should be understood that the references to "one embodiment" or "an embodiment" throughout the specification mean that the specific features, structures, or characteristics associated with the embodiment are included in at least one embodiment of the present invention. Therefore, the references to "in one embodiment" or "in an embodiment" throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the various embodiments of the present invention, the sequence numbers of the above-mentioned processes do not imply a sequence of execution. The execution order of the processes should be determined by their functions and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.

[0122] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units is merely a logical functional division. In actual implementation, other division methods may be used, such as combining or integrating multiple units or components into another system, or ignoring or not implementing certain features.

[0123] In addition, the functional units in the various embodiments of the present invention may be integrated into a single processing unit, each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0124] In short, the above description is only a preferred embodiment of the technical solution of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included in the scope of protection of the present invention.

Claims

1. A decoding method, characterized in that: Obtaining a syndrome corresponding to each codeword in a plurality of codewords; Grouping the obtained syndromes, and prioritizing each group of syndromes; According to the priority ranking result of each group of syndromes, a syndrome is selected for decoding.

2. The decoding method according to claim 1, wherein: Non-zero syndromes have higher priority than syndromes with a value of zero.

3. The decoding method according to claim 2, wherein: The priority of a non-zero syndrome with a large number of decoding times is lower than that of a non-zero syndrome with a small number of decoding times.

4. The decoding method according to any one of claims 1 to 3, characterized in that: The decoding method is applied to a decoding device comprising a plurality of decoding units; The selecting of syndromes for decoding includes: selecting at most one syndrome from each group, and sending the syndromes to different decoding units for hard decision or soft decision decoding, wherein the selected syndromes are all non-zero syndromes.

5. The decoding method according to any one of claims 1 to 3, characterized in that: The decoding method is applied to a decoding device comprising a plurality of decoding units; The selecting of syndromes for decoding includes: selecting a syndrome from each group and sending the syndromes to different decoding units for soft decision decoding.

6. The decoding method according to claim 4 or 5, characterized in that: The number of groupings is the same as the number of decoding units.

7. The decoding method according to any one of claims 1 to 3, characterized in that: The decoding method is applied to a decoding device comprising a plurality of decoding units; The step of selecting a syndrome for decoding includes: Select at most one syndrome from each group and send it to different decoding units for hard decision or soft decision decoding; The syndromes are prioritized again in each of the two groups. Based on the sorting results, at most one syndrome is selected from each of the two groups and sent to different decoding units for hard decision or soft decision decoding. The syndromes selected twice are different and both are non-zero syndromes.

8. The decoding method according to any one of claims 1 to 3, characterized in that: The decoding method is applied to a decoding device comprising a plurality of decoding units; The step of selecting a syndrome for decoding includes: A syndrome is selected from each group and sent to different decoding units for soft decision decoding; The syndromes are prioritized again in every two groups. Based on the ranking results, one syndrome is selected from each of the two groups and sent to different decoding units for soft decision decoding. The syndromes selected twice are different.

9. The decoding method according to claim 7 or 8, characterized in that: The grouping of the obtained syndromes includes: dividing the obtained syndromes into 2n / 3 groups, where n is the number of decoding units and n is an integer multiple of 3.

10. The decoding method according to any one of claims 1 to 9, characterized in that: Each group includes the same number of syndromes.

11. The decoding method according to any one of claims 1 to 10, characterized in that: After decoding the selected syndrome, the method further includes: The syndromes of each group are prioritized again, and based on the priority ranking result, syndromes are selected again for decoding.

12. The decoding method according to claim 11, wherein: In the two processes of prioritizing the syndromes of each group, the priority sorting methods are different.

13. The decoding method according to any one of claims 1 to 12, characterized in that: The method further comprises: If the first syndrome is successfully decoded, an incremental syndrome and a flipped bit corresponding to the first syndrome are obtained, wherein the first syndrome is one of the syndromes to be decoded; Superimposing the incremental syndrome with the first syndrome to obtain an updated syndrome; According to the flipped bit, the bit corresponding to the flipped bit in the corresponding codeword is flipped.

14. The decoding method according to any one of claims 1 to 13, characterized in that: Each syndrome is stored for the same amount of time.

15. The decoding method according to any one of claims 1 to 14, characterized in that: The method further comprises: The syndromes corresponding to the first frame are stored in groups, and the number of syndromes corresponding to the first frame stored in each group differs by at most one, wherein the first frame includes a plurality of codewords.

16. A decoding device, characterized in that: include: Controller and decoder, The controller is configured to obtain a syndrome corresponding to each codeword in a plurality of codewords, group the obtained syndromes, and prioritize each group of syndromes, and select a syndrome to be sent to the decoder based on the priority ranking result of each group of syndromes; The decoder is used to decode the received syndrome.

17. The decoding device according to claim 16, wherein: Non-zero syndromes have higher priority than syndromes with a value of zero.

18. The decoding device according to claim 17, wherein: The priority of a non-zero syndrome with a large number of decoding times is lower than that of a non-zero syndrome with a small number of decoding times.

19. The decoding device according to any one of claims 16 to 18, characterized in that: The controller is used for selecting at most one syndrome from each group and sending the syndromes to different decoding units in the decoder for hard decision or soft decision decoding, wherein the selected syndromes are all non-zero syndromes.

20. The decoding device according to any one of claims 16 to 18, characterized in that: The controller is used to select a syndrome from each group and send the syndromes to different decoding units in the decoder for soft decision decoding.

21. The decoding device according to claim 19 or 20, characterized in that The number of groupings is the same as the number of decoding units.

22. The decoding device according to any one of claims 16 to 18, characterized in that: The controller is further configured to select a syndrome from each group and send the syndromes to different decoding units in the decoder for hard decision or soft decision decoding; prioritize the syndromes again in every two groups, and select another syndrome from every two groups based on the sorting results, and send the syndromes to different decoding units in the decoder for hard decision or soft decision decoding, wherein the syndromes selected twice are different and both selected syndromes are non-zero syndromes.

23. The decoding device according to any one of claims 16 to 18, characterized in that: The controller is further configured to select a syndrome from each group and send the syndromes to different decoding units in the decoder for soft decision decoding; prioritize the syndromes again in every two groups, and select another syndrome from every two groups based on the sorting results, and send the syndromes to different decoding units in the decoder for soft decision decoding, wherein the syndromes selected twice are different.

24. The decoding device according to claim 22 or 23, characterized in that: The controller is further configured to divide the obtained syndromes into 2n / 3 groups, where n is the number of decoding units and n is an integer multiple of 3.

25. The decoding device according to any one of claims 16 to 24, characterized in that: Each group includes the same number of syndromes.

26. The decoding device according to any one of claims 16 to 25, characterized in that: The controller is further configured to prioritize the syndromes of each group again after sending the selected syndromes to the decoder, and select syndromes again based on the result of this prioritization and send them to the decoder.

27. The decoding device according to claim 26, wherein: In the two processes of prioritizing the syndromes of each group, the priority sorting methods are different.

28. The decoding device according to any one of claims 16 to 27, characterized in that: The decoding device further includes a memory, The decoder is further configured to obtain an incremental syndrome and a flipped bit corresponding to the first syndrome when the first syndrome is successfully decoded; and send the incremental syndrome and the flipped bit to the memory; The controller is configured to superimpose the incremental syndrome with the first syndrome so that the memory stores the updated syndrome; and is further configured to flip the bit corresponding to the flipped bit in the corresponding codeword according to the flipped bit so that the memory stores the updated bit.

29. The decoding device according to any one of claims 16 to 28, characterized in that: Each syndrome is stored for the same amount of time.

30. The decoding device according to any one of claims 16 to 27, characterized in that: The decoding device further includes a memory, When the decoder successfully decodes the first syndrome and the corresponding soft information amplitude, it obtains an incremental syndrome corresponding to the first syndrome, a flipped bit, and an updated soft information amplitude, and sends the incremental syndrome, the flipped bit, and the updated soft information amplitude to the memory, wherein the first syndrome is one of the syndromes sent to the decoder; The memory is used to store the incremental syndrome, flipped bits and updated soft information amplitude; The controller is configured to superimpose the incremental syndrome with the first syndrome so that the memory stores the updated syndrome; and is further configured to flip the bit corresponding to the flipped bit in the corresponding codeword according to the flipped bit so that the memory stores the updated bit.

31. The decoding device according to any one of claims 16 to 30, characterized in that: The decoding device further includes a memory including a plurality of storage units, wherein the number of syndromes stored in each storage unit corresponding to the first frame differs by at most one, wherein the first frame includes a plurality of codewords.

32. A computer-readable storage medium, characterized in that The computer-readable storage medium stores instructions, and when the instructions are executed on a terminal device, the terminal device executes the method according to any one of claims 1 to 15.

33. A computer program product comprising instructions, characterized in that When running on a terminal device, the terminal device is caused to execute the method according to any one of claims 1 to 15.

Citation Information

Patent Citations

  • Fast self-adapting confidence degree propagation interpretation method for Reed-Solomon code

    CN101431340A

  • Method of encoding / decoding using low density check matrix

    CN101553989A

Cited By

  • On-demand decoding method and device

    WO2022002272A1