A decoder scheduling method based on the greedy algorithm

Through the decoder scheduling method based on greedy algorithm, user priority and decoding efficiency are evaluated, and user and decoder queues are generated, which solves the problem of insufficient throughput of the decoding system in the prior art, and achieves higher decoding throughput and system performance.

CN116388931BActive Publication Date: 2025-06-10SOUTHEAST UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310398833.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-04-14
Publication Date
2025-06-10
Estimated Expiration
2043-04-14

AI Technical Summary

Technical Problem

The existing decoder scheduling methods cannot meet the needs of the system's large throughput, and the traditional polling algorithm has limited throughput, which cannot effectively improve the throughput rate of the decoding system.

Method used

The decoder scheduling method based on greedy algorithm is adopted to extract user parameters, evaluate user priority and decoding efficiency, generate user queues and decoder queues, and judge whether decoding can be completed based on time redundancy, and dynamically adjust the allocation of users and decoders.

Benefits of technology

It improves the throughput of the decoding system, can make more efficient use of the working time of the decoder, ensures that multiple decoders work in parallel, clearly divide the solution modules, strong realization and reliable performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116388931B_ABST
    Figure CN116388931B_ABST
Patent Text Reader

Abstract

The present invention discloses a scheduling method based on a greedy algorithm for multiple parallel decoders. Before decoding, by obtaining the parameter configuration of the user, different transmission priorities are evaluated. At the same time, the user sorting unit sorts according to the priority and decoding efficiency to generate a user queue. After each data is allocated to the corresponding decoder, the decoder redundancy is compared one by one, and a pointer pointing to the decoder ID with the highest redundancy is maintained in the decoder ID queue in real time. The data allocation unit, according to the mechanism of the greedy algorithm, allocates the first user in the user queue to the decoder (with the highest redundancy) pointed to by the pointer in the current ID queue. The user deletion unit evaluates the decoder redundancy and the estimated decoding time of the user. If it cannot be decoded, the user is deleted from the queue and the data is reallocated to the decoder. The scheduling method proposed by the present invention realizes the parallel decoding of multiple Turbo decoders, improves the decoding throughput rate, has low complexity and is easy to implement.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of information technology, and particularly relates to a decoder scheduling method based on a greedy algorithm. Background Art

[0002] A decoder is a logic circuit that can perform decoding functions in a communication system. In a communication system, due to the complex structure of the decoder circuit, the decoding delay generated is relatively large, which is not conducive to the real-time performance of the system. Moreover, the processing capacity of a single decoder is limited. Therefore, when the user data in the system is large, multiple decoders usually work in parallel to ensure that the decoding of user data can be completed within the specified delay. In order to improve the throughput of the decoding system as much as possible, a certain scheduling algorithm needs to be adopted to schedule the input and output of the decoder.

[0003] Since the decoder usually uses an iterative feedback method for decoding work, it has a relatively high decoding delay. Traditional decoder scheduling needs to poll multiple sets of decoders, mark their idle or busy states, and then select a decoder according to the polling results. This decoder scheduling scheme has limited throughput. In the case of dealing with large throughput, where the data processing time has strict restrictions, this polling algorithm cannot meet the requirements of the system for a large throughput. Summary of the Invention

[0004] The purpose of the present invention is to provide a decoder scheduling method based on a greedy algorithm to solve the technical problem that the existing methods cannot meet the large throughput of the system.

[0005] To solve the above technical problems, the specific technical solution of the present invention is as follows:

[0006] A decoder scheduling method based on a greedy algorithm includes the following steps:

[0007] Step 1, user parameter extraction: Receive the user parameters of the input interface, and respectively extract the user channel quality parameter CQI, the number of resource blocks RB occupied by the user, and the actual transport block size TBS of each user.

[0008] Step 2, evaluate the priority of users: Calculate the decoding efficiency required for each user, where the decoding efficiency is defined as the ratio of the size TBS of the user transport block to the estimated decoding time.

[0009] Step 3, user decoding priority classification: Extract users in the order of priority.

[0010] Step 4, user sorting: Generate a user queue, compare the decoding efficiency of users with the same priority, and insert them into the user queue in descending order.

[0011] Step 5: Sort the decoders by time redundancy. Calculate the time redundancy of each decoder, generate a decoder queue, and insert the decoders into the queue in descending order of redundancy one by one.

[0012] Step 6: Determine whether decoding can be completed. Extract the first user from the user queue and the first decoder from the decoder queue, and determine whether the decoder can complete the decoding of this user within the current decoding cycle. If it cannot be completed, delete this user from the user queue. If it can be completed, allocate the data of this user to the current decoder, delete this user from the user queue, recalculate the time redundancy of the decoder, and update the decoder queue.

[0013] Further, in step 2, when evaluating the priority of users, the users need to be rated according to the quality of the channel quality indicator CQI extracted in step 1; the users are numbered in descending order of priority.

[0014] Further, in step 2, when estimating the decoding time, multiply the number of resource blocks RB occupied by the user extracted in step 1 by the average time required for the actual decoder to decode a single resource block as the estimation of the decoding time for each user.

[0015] Further, in step 4, for the user queue, a pointer pointing to the first element of the queue is preset. When the elements in the queue change, the pointer is dynamically updated; an empty element is fixedly inserted at the end of the queue. When the pointer points to this element, it means the queue is empty.

[0016] Further, in step 5, when calculating the time redundancy of the decoder, take one decoding cycle as the total time, and then subtract the total estimated decoding time of the users currently allocated to each decoder. The difference is used as the current time redundancy of this decoder; for each decoder in the decoder queue, if a new user is allocated, the time redundancy of this decoder needs to be recalculated and updated.

[0017] Further, in step 5, when sorting the decoders by time redundancy, the order of the elements in the queue is maintained in real time. If the time redundancy of a decoder in the queue is updated, the elements in the queue need to be sorted again.

[0018] Further, in step 5, for the decoder queue, a pointer pointing to the first element of the queue is preset. When the elements in the queue change, the pointer is dynamically updated.

[0019] Further, in step 6, when extracting the first user from the user queue, extract it according to the element pointed to by the pointer set in the user queue; if the pointer points to an empty element, end the decoding scheduling for the current decoding cycle.

[0020] Further, in step 6, the pointer set in the current user queue is deleted, the element pointed to by the pointer is deleted from the queue, and the pointer is redirected to the first element in the queue; if the pointer points to a null element, the decoding scheduling of the current decoding cycle ends.

[0021] Further, determining whether the decoder can complete the decoding of the user within the current decoding cycle in step 6 includes the following steps: if the time redundancy of the current decoder is greater than the estimated decoding time of the user, it is determined that the decoding can be completed, otherwise it cannot.

[0022] A decoder scheduling method based on a greedy algorithm of the present invention has the following advantages: based on the greedy algorithm, the present invention comprehensively considers the CQI of different users and proposes a decoder scheduling method.

[0023] Before decoding, by obtaining the parameter configuration of the user, different transmission priorities are evaluated, and at the same time, the user sorting unit sorts according to the priority and decoding efficiency to generate a user queue. In the user queue generation scheme, first, the users within a decoding cycle are determined according to their channel quality parameters. Under this strategy, the decoding success rate of users with higher transmission requirements is more guaranteed than that of the traditional polling scheduling scheme. In the data allocation unit, the user with the highest priority and decoding efficiency is assigned to the decoder with the highest current time redundancy for decoding. Its essence is a mechanism of the greedy algorithm. Through performance analysis, the decoder scheduling scheme based on this algorithm has a higher decoding throughput than the traditional polling scheduling scheme. In the user deletion unit, users that cannot be decoded by the decoder with the highest current time redundancy are deleted to ensure that the decoder can complete the decoding of other users under the remaining time redundancy. This deletion strategy removes the strict time limit on the original decoder and can make full use of the working duration of the decoder. Under the scheduling method proposed in the present invention, multiple decoders can work in parallel strategically, and the module division of the scheme itself is clear, with strong feasibility, reliable performance, and is suitable for the hardware implementation of the system. Description of the Drawings

[0024] Figure 1 It is a flowchart of the method for scheduling multiple decoders in the present invention;

[0025] Figure 2 It is a schematic diagram of the module for scheduling multiple sets of decoders in the present invention;

[0026] Figure 3 It is a schematic diagram of the method for generating a user queue in the specific implementation steps of the present invention. Detailed Embodiments

[0027] In order to better understand the purpose, structure, and function of the present invention, the following further describes in detail a decoder scheduling method based on a greedy algorithm of the present invention with reference to the accompanying drawings.

[0028] Figure 1 This is the flowchart of the method for scheduling multiple decoders in the present invention. As Figure 1 shown, it includes:

[0029] Step 1: Extract the user parameter configuration specified by the upper layer, receive the user parameters of the input interface, and respectively extract the user channel quality parameter (CQI), the number of resource blocks (RB) occupied by the user, and the actual transport block size (TBS) of each user;

[0030] Step 2: Evaluate the priority of the users, and calculate the decoding efficiency required for each user. The decoding efficiency is defined as the ratio of the size of the user's transport block (TBS) to the estimated decoding time. The evaluation criterion for the priority is: Rate the users according to the quality of the channel quality parameter (CQI) in Step 1 and label the users in descending order of priority. The method for estimating the decoding time is: Multiply the number of resource blocks (RB) occupied by the user by the average time required for the actual decoder to decode a single resource block.

[0031] Step 3: Classify the user decoding priorities, and extract the users in the order of priority; see the specific operation process in Figure 3 and Figure 3 for the description.

[0032] Step 4: Sort the users to generate a user queue. Compare the decoding efficiencies of the users with the same priority and insert them into the user queue in descending order; a pointer pointing to the first element of the queue needs to be set in the queue. When the elements in the queue change, update this pointer dynamically; fix an empty element at the end of the queue. When the pointer points to this element, it means the queue is empty.

[0033] Step 5: Sort the time redundancy of the decoders, calculate the time redundancy of each decoder, generate a decoder queue, and insert the decoders into the queue in descending order of redundancy; the calculation method of the time redundancy: Take a decoding cycle as the total time, and then subtract the total estimated decoding time of the users currently assigned to each decoder. The difference is used as the current time redundancy of this decoder. Maintain the order of the elements in the decoder queue in real time. If the time redundancy of a decoder in the queue is updated, re-sort the elements in the queue. A pointer pointing to the first element of the queue is preset in the queue. When the elements in the queue change, update this pointer dynamically.

[0034] Step 6: Determine whether decoding can be completed. Extract the first user from the user queue and the first decoder from the decoder queue. Determine whether the decoder can complete the decoding of this user within the current decoding cycle. If it cannot be completed, delete this user from the user queue. If it can be completed, allocate the data of this user to the current decoder, delete this user from the user queue, recalculate the time redundancy of the decoder, and update the decoder queue. When extracting a user, extract the element pointed to by the pointer in the user queue; if the pointer points to an empty element, end the decoding scheduling of the current decoding cycle. The criterion for determining whether decoding can be completed: If the time redundancy of the current decoder is greater than the estimated decoding time of this user, it is determined that it can be completed, otherwise it cannot. When deleting a user that has been judged or allocated in the queue, the pointer needs to be redirected to the first element in the queue after deletion. If the pointer points to an empty element, end the decoding scheduling of the current decoding cycle.

[0035] Figure 2 This is a schematic diagram of the module for scheduling multiple decoders in the present invention;

[0036] The module of the method of the present invention can be divided as follows, including a user parameter extraction unit, a user decoding priority classification unit, a user decoding priority classification unit, a user sorting unit, a decoder time redundancy comparison unit, a decoder working judgment unit, a data allocation unit, and a user deletion unit.

[0037] The user parameter extraction unit receives the user parameters of the input interface, extracts the user priority information, and outputs it to the user decoding priority classification unit. Calculate the decoding benefit of the user and output the decoding benefit information to the user sorting unit;

[0038] The user decoding priority classification unit receives the priority label information output by the user parameter extraction unit, extracts users in the order of the labels, and packs and outputs the users to the user sorting unit according to the labels;

[0039] The user sorting unit receives the decoding benefit information output by the user parameter extraction unit, sorts the user packets output by the user decoding priority classification unit in descending order of decoding benefit. The sorted user packets generate a user queue in descending order of priority;

[0040] The decoder time redundancy comparison unit sorts the decoders in descending order of the time redundancy of the decoders and generates a decoder queue. After receiving the start signal output by the data allocation unit, recalculate and compare the decoder time redundancy and update the decoder queue;

[0041] The decoder operation judgment unit compares the decoding time required by the first user in the user queue with the time redundancy of the first decoder in the decoder queue to determine whether decoding can be completed. If it can be completed, the data distribution unit is started. If it cannot be completed, the user deletion unit is started;

[0042] The data distribution unit assigns the first user in the current user queue to the first decoder in the decoder queue and starts the user deletion unit and the decoder time redundancy comparison unit;

[0043] The user deletion unit ends if the user queue is empty. If the data queue is not empty, the first user in the current user queue is deleted.

[0044] Figure 3 It is a schematic diagram of the user queue generation method in the specific implementation steps of the present invention;

[0045] Corresponding to Steps 3 and 4, the specific process is as follows:

[0046] 300: As Figure 3 shown, in the figure, 300 represents all users within a decoding time limit with a whole rectangle. The user parameter extraction unit sequentially marks the calculated priority information and decoding benefit for each user. As shown in the figure, each rectangle within the rectangle bar represents the data of a single user. The priority number and decoding benefit marked on the rectangle block are calculated and output by the user parameter extraction unit. The priorities shown in the figure are numbered from high to low as ① - ⑩.

[0047] 301: The user data enters the user decoding priority classification unit, and this module extracts users in the order of the user's priority label and packs the users according to the label. As Figure 3 shown, in the figure, 301 is that the data is divided into several user groups by block according to the priority number.

[0048] 302: The user groups packed by priority enter the user sorting unit in sequence, and this module sorts each group of users according to the decoding benefit of the users (in descending order of decoding benefit). As Figure 3 shown, in the figure, 302 is that under each priority number, the user data is rearranged in descending order of decoding benefit.

[0049] 303: The users are inserted into the user queue in sequence according to the order of the priority number. As Figure 3 shown, in the figure, 303 is the finally generated user queue.

[0050] It will be understood that the present invention is described by way of some embodiments, and those skilled in the art will be aware that various changes or equivalent substitutions can be made to these features and embodiments without departing from the spirit and scope of the present invention. Additionally, under the teachings of the present invention, these features and embodiments can be modified to adapt to specific circumstances and materials without departing from the spirit and scope of the present invention. Therefore, the present invention is not limited by the specific embodiments disclosed herein, and all embodiments falling within the scope of the claims of this application belong to the scope protected by the present invention.

Claims

1. A decoder scheduling method based on the greedy algorithm, characterized in that, it includes the following steps: Step 1, User parameter extraction: Receive the user parameters of the input interface, and respectively extract the user channel quality parameter CQI, the number of resource blocks RB occupied by the user, and the actual transport block size TBS of each user; Step 2, Evaluate the priority of users: Calculate the decoding efficiency required for each user, where the decoding efficiency is defined as the ratio of the size TBS of the user's transport block to the estimated decoding time; Step 3, User decoding priority classification: Extract users in the order of priority; Step 4, User sorting: Generate a user queue, compare the decoding efficiency of users with the same priority, and insert them into the user queue in descending order; Step 5, Decoder time redundancy sorting: Calculate the time redundancy of each decoder, generate a decoder queue, and insert the decoders into the queue in descending order of redundancy; Step 6, Determine whether decoding can be completed: Extract the first user in the user queue and the first decoder in the decoder queue, and determine whether the decoder can complete the decoding of this user within the current decoding cycle; If it cannot be completed, delete this user from the user queue; if it can be completed, allocate the data of this user to the current decoder, delete this user from the user queue, recalculate the time redundancy of the decoder, and update the decoder queue.

2. The decoder scheduling method based on the greedy algorithm according to claim 1, characterized in that, in step 2, when evaluating the priority of users, the users need to be rated according to the quality of the channel quality parameter CQI extracted in step 1; the users are numbered in descending order of priority.

3. The decoder scheduling method based on the greedy algorithm according to claim 2, characterized in that, in step 2, the estimated decoding time is calculated by multiplying the number of resource blocks RB occupied by the user extracted in step 1 by the average time required for the actual decoder to decode a single resource block as the estimate of the decoding time for each user.

4. The decoder scheduling method based on the greedy algorithm according to claim 3, characterized in that, for the user queue in step 4, a pointer pointing to the first element of the queue is preset, and when the elements in the queue change, the pointer is dynamically updated; an empty element is fixedly inserted at the end of the queue, and when the pointer points to this element, it means the queue is empty.

5. The decoder scheduling method based on the greedy algorithm according to claim 4, characterized in that, in step 5, when calculating the time redundancy of the decoder, taking a decoding cycle as the total time, and then subtracting the total estimated decoding time of the users currently assigned to each decoder, the difference is used as the current time redundancy of this decoder; for each decoder in the decoder queue, if a new user is assigned, the time redundancy of this decoder needs to be recalculated and updated.

6. The decoder scheduling method based on the greedy algorithm according to claim 5, characterized in that, in step 5, for the decoder time redundancy sorting, the order of the elements in the queue is maintained in real time. If the time redundancy of a decoder in the queue is updated, the elements in the queue need to be sorted again.

7. The decoder scheduling method based on the greedy algorithm according to claim 6, wherein, in the decoder queue in step 5, a pointer pointing to the first element of the queue is preset, and when the elements in the queue change, the pointer is dynamically updated.

8. The decoder scheduling method based on the greedy algorithm according to claim 7, wherein, in step 6, the first user in the user queue is extracted according to the pointer set in the user queue, and the extraction is performed according to the element pointed to by the pointer; if the pointer points to an empty element, the decoding scheduling of the current decoding cycle ends.

9. The decoder scheduling method based on the greedy algorithm according to claim 8, wherein, in step 6, the pointer set in the current user queue is deleted, the element pointed to by the pointer is deleted from the queue, and the pointer is redirected to the first element in the queue; if the pointer points to an empty element, the decoding scheduling of the current decoding cycle ends.

10. The decoder scheduling method based on the greedy algorithm according to claim 9, wherein, judging whether the decoder can complete the decoding of the user within the current decoding cycle in step 6 includes the following steps: if the time redundancy of the current decoder is greater than the estimated decoding time of the user, it is determined that the decoding can be completed, otherwise it cannot.