Device and method for carrying out hybrid scheduling by using strict priority and message urgency

By adopting a hybrid scheduling method in industrial networks, combining strict priority and urgency or weight parameters, the problem of data packet deadline violation is solved, delay and jitter control is achieved, and common configuration is supported.

CN119586298APending Publication Date: 2025-03-07HUAWEI TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202280097963.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-07-08
Publication Date
2025-03-07

AI Technical Summary

Technical Problem

The prior art is difficult to effectively solve the problem of data packet deadline violations in industrial networks, especially when the application cycle time of different suppliers does not have a common cardinality.

Method used

A hybrid scheduling method is adopted, and urgency or weight/quantum value is introduced as additional parameters, which is considered together with strict priority when scheduling data packet transmission. By calculating the second indication of the transmission priority of each category, the scheduling scheme of the data packet is determined to meet the transmission deadline.

Benefits of technology

It realizes the control of delay and jitter in industrial networks, avoids the expiration time violation of data packets, supports a wider application cycle time, and reduces the implementation complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119586298A_ABST
    Figure CN119586298A_ABST
Patent Text Reader

Abstract

The invention provides a data processing device for implementing a hybrid scheduling scheme, the hybrid scheduling scheme is used for scheduling data messages in a network, the data processing device comprises one or more processors, the one or more processors are used for processing the data messages, each data message belongs to one category, and the one or more processors are used for processing the data messages. Each category has a predetermined first transmission priority associated with each category; receiving a data message of data to be transmitted for one or more categories in the plurality of categories; and calculating a second indication of the transmission priority of each of the plurality of categories, and scheduling the plurality of categories of data messages for transmission according to the first transmission priority and the calculated second indication of the transmission priority.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an apparatus and method for scheduling network messages by adopting a hybrid scheduling method, which introduces an additional parameter, namely urgency or weight / quantum value that must be considered together with strict priority when scheduling data messages for transmission. Background Art

[0002] In industrial networks, 10% to 20% of the traffic is isochronous traffic with minimal deadline and jitter requirements, and 80% to 90% of the traffic is real-time traffic with limited delay / jitter requirements. The general epoch configuration method will lead to deadline violations, that is, messages cannot be sent before their deadlines. In this way, it is difficult to ensure that data transmission meets the scheduling deadline requirements. Traditional scheduling schemes such as generalized processor scheduling, fair queuing, weighted fair queuing, round-robin, deficit round-robin, or weighted round-robin are designed to improve fairness among different data transmission flows. To achieve this goal, these schemes usually rely on mathematical tools such as queuing theory or network verification to calculate the average waiting time or maximum delay bound of the scheduling scheme. It is well known that in queuing theory, the external arrival process must follow the Poisson distribution (e.g., delay analysis of probabilistic priority schedulers), which cannot accurately describe the actual data traffic arrival. On the other hand, the delay bounds calculated by network verification are either too loose (wide), affecting network utilization, or too expensive to calculate.

[0003] Another known approach to solving the scheduling problem is to use an algorithm specifically designed to provide end-to-end (E2E) delay guarantees. Examples of such known algorithms include RSCP / WFQ / VC / Jitter-EDD / UBS. However, the scheduling optimality of these schemes is usually achieved at the cost of increased implementation complexity (e.g., per-flow queuing, sorting queues, a large number of FIFO queues, traffic state maintenance, or time / frequency synchronization), which cannot be supported by existing general-purpose hardware.

[0004] In order to solve the above scheduling problems, the Paternoster scheduling scheme was proposed to the IEEE 802.1 working group. Paternoster is a simple real-time message bandwidth reservation, supervision, queuing and transmission scheduling algorithm that provides bounded end-to-end delay without the need for clock synchronization between network nodes. This algorithm has been further developed to incorporate the concept of multi-cycle queuing and forwarding, and is a variant of the previously proposed Paternoster scheduling algorithm. The Paternoster scheduling algorithm is compatible with the differentiated services architecture, in which messages are divided into 8 priority categories. Unlike the traditional differentiated services architecture (a single queue is associated with each priority class), the Paternoster scheduling algorithm defines 4 output queues that are associated with each priority class on each output port, see Figure 1 . The four queues are defined as the Previous Queue, Current Queue, Next Queue, and Last Queue. Each priority class is associated with a unique cycle time. Data packets to be transmitted are queued according to the bandwidth reservation for each priority class. During each cycle of data transmission, only the Previous Queue can transmit data packets. The Previous Queue is used only for transmission and does not receive messages. Instead, received data packets associated with any given reservation are added to the "Current" queue. This process continues to process more received data until the added data packets exceed the bandwidth allocation for that reservation in a cycle. In this case, data packets that exceed the reserved bandwidth are added to the Next Queue and the Last Queue respectively until the reserved bandwidth of these queues is also filled. Once each queue is filled with data packets to be transmitted in the future cycle, for example, the "Last" queue is fully reserved, any additional frames of received data packets are discarded until the next cycle begins and the queues are rotated. Paternoster does not require time synchronization.

[0005] Figure 2 An example of queue rotation used in Paternoster scheduling is shown. When a new cycle begins, the "current" queue becomes the "previous" queue, and the "next" queue and the "last" queue (and the remaining allocations of each of its reservations) become the "current" queue and the "next" queue, respectively. The previous previous queue (which should now be empty because the data packets have been transmitted in the previous cycle) becomes the new "last" queue. This Paternoster operation is repeated in each cycle, so the 4 queues alternate in each cycle. However, in Paternoster scheduling, packets of different priority categories within each queue are scheduled according to the strict priority scheduling scheme inherent to each category.

[0006] The period length given by Δ does not have to be the same for each service class. However, the disadvantage of this scheduling scheme is that the original Paternoster algorithm still leads to deadline violations, such as Figure 3 as well as Figure 3a to Figure 3d To address this issue, one option is to ensure that the periods of the priority classes should be configured with multiple Δ1 values, where Δ1 is the smallest period associated with the highest priority class, as Figure 4 shown.

[0007] Figure 4 The period Δ for each class at a single output port is shown. i Situations where multiple values ​​are used. This requires a common cardinality of the cycle time between the categories so that the total time can be divided in a uniform manner. In the example where the two categories have cycle times of 200 microseconds and 125 microseconds, the two categories do not have a common cardinality and therefore cannot be represented using multiple cycle values. Figure 4 Shown with Figure 3 A similar situation occurs when four period values ​​are run simultaneously. Figure 4 In the example, the cycle time of category 6 runs with the highest priority, i.e. has the shortest cycle and can be called up for transfer the fastest. These categories are shown in Figure 4 on the right side of the Figure 4 In the example, the call rate of the cycle of category 5 is one-fourth of that of the cycle of category 6, which is reflected in the fact that the call time of one cycle of category 5 is the same as the call time of four cycles of category 6, so the buffer of category 5 runs at priority (5), which is lower than the priority of category 6 (i.e. 6). Similarly, the call rate of the cycle of category 4 is slower than that of the cycles of categories 5 and 6, and is one-eighth of that of the cycle of category 6. The same is true for category 3, which is called one-twenty-fourth of that of category 6. Figure 4 The letters in represent the class buffers that are output in each cycle (cycle / epoch). There may be 9 buffers, from "a" to "i" (buffer i is not shown). Figure 4 In the example shown in Figure 1, priority level 6 uses three buffers due to its shorter cycle time, while the other priorities use two buffers due to their longer cycle times.

[0008] However, the problem with this approach is that this configuration is not always feasible when the application cycle times used by different vendors are not common to each vendor and do not have a common base.

[0009] Figure 5An example of suppliers with different application cycle times is shown. The cycle time requirements of different suppliers may be based on the technology of those suppliers, which cannot be changed without great effort. These requirements may be based on hardware dependencies that have nothing to do with the capabilities of the communication portion of the device. Servo drives from different suppliers (A and B) may work as part of the same network, and the suppliers may be restricted in the choice of the cycle of the control loop for specific reasons. The cycle time from servo drive A1 to servo drive A2 is 31.25μs. There is no lowest common denominator between the cycle times of supplier A and supplier B. In other words, the cycle time of one supplier is not a multiple of the cycle time of another supplier, so the cycle time cannot be uniformly divided into a cycle that is suitable for all suppliers. As such, using Figure 4 The network cycle (cycle / epoch) cannot be configured with integer multiples of the Δ1 model in . Therefore, supplier A needs to modify the cycle time of its application, which requires longer configuration time and additional operational overhead to match the cycle time of supplier B. Figure 5 In the configuration, the following communication relationships are expected to exist:

[0010] Servo drive A1←→Servo drive A2, the communication cycle is 31.25 microseconds

[0011] Servo drive A1←→Servo drive A2, the communication cycle is 50 microseconds

[0012] Controller ←→ Servo drive A1, communication cycle is 125 microseconds

[0013] Controller ←→ Servo drive B1, communication cycle is 200 microseconds

[0014] Servo drive ←→ B1, the communication cycle is 1 millisecond.

[0015] Figure 6 A general approach to configuring periods for this use case is shown. In this general approach, the different periods (epochs / cycles) used for data exchange are not multiples of each other, for example, they do not have a common base, but are fractions of a common base, so it is not possible to use the integer period model discussed above. Thus, even with this general approach, datagram deadline violations still occur and datagrams are delayed.

[0016] Therefore, the present invention aims to solve the above-mentioned deadline violation problem. The general model for configuring network cycles described in the present invention is more flexible than the prior art, supports a wider range of application cycle times, and achieves lower implementation complexity. Summary of the invention

[0017] A data processing device for implementing a hybrid scheduling scheme, the hybrid scheduling scheme is used to schedule data packets in a network, the data processing device includes one or more processors, the one or more processors are used to process data packets, each data packet belongs to a category, each category has a predetermined first transmission priority associated with each category: receiving data packets of data to be transmitted for one or more categories of a plurality of categories; calculating a second indication of the transmission priority for each category of the plurality of categories, and scheduling the data packets of the plurality of categories for transmission based on the first transmission priority and the calculated second indication of the transmission priority. This achieves delay and jitter control in industrial networks with deterministic requirements by solving the problem of deadline violations.

[0018] According to the data processing device as described above, the first transmission priority is based on the strict priority of each of the multiple categories, which provides a first indicator for classifying the categories and scheduling the data packets for transmission.

[0019] According to the data processing apparatus as described above, the second indication of the transmission priority is an urgency value calculated based on the maximum delay of each of the multiple categories, the current transmission cycle time and the start time of the transmission cycle of each of the multiple categories. This provides an auxiliary method for determining priorities for categories and data messages so as to override the initial priority so as to meet the transmission deadline.

[0020] According to the data processing device as described above, the one or more processors are used to Calculate the second indication, where L i is the maximum delay of category i, t now yes and represents the time when transmission cycle k in category 1 starts, is the time at which transmission period j in class i begins. This provides an auxiliary method for prioritizing classes and datagrams so that the initial priority is overridden to meet the transmission deadline.

[0021] According to the data processing device as described above, the one or more processors are also used to: when determining a scheduling scheme for transmitting the data packets of the multiple categories, compare the second indication of the first category in the multiple categories with the second indication of the second category in the multiple categories to determine whether they are the same; then, if the second indication of the first category in the multiple categories is the same as the second indication of the second category in the multiple categories, schedule the transmission of the data packets of the multiple categories according to the first transmission priority of each category in the multiple categories; or if the second indication of the first category in the multiple categories is different from the second indication of the second category in the multiple categories, schedule the transmission of the data packets of the multiple categories according to the second indication of the transmission priority of each category in the multiple categories. This provides a method to replace the strict priority associated with each category with an auxiliary indicator based on the need to meet the transmission deadline and avoid violating the deadline.

[0022] According to the data processing apparatus as described above, the second indication of the transmission priority is a weight or quantum value assigned to each of the plurality of categories. This provides an alternative method of avoiding data message transmission violations using an alternative indicator of urgency.

[0023] According to the data processing apparatus as described above, the weight or quantum value assigned to each of the plurality of categories allocates a transmission bandwidth to each of the plurality of categories, which provides sufficient bandwidth for the transmission of data packets within each category, so that no transmission deadline violation occurs.

[0024] According to the data processing device as described above, the one or more processors are further configured to calculate the maximum number of data packets transmitted by each category in the multiple categories, wherein the maximum number is given by the expression (C.ω i .Δ1) / s, C is the transmission link capacity, ω i is the weight or quantum value of class i, Δ1 is the period of class 1, and s is the average datagram size. This provides a way to determine the correct number of datagrams that can be transmitted in each period.

[0025] According to the data processing device as described above, the one or more processors are also used to: when determining the scheduling scheme for transmitting the data packets of the multiple categories, compare the number of data packets to be transmitted in each of the multiple categories with the maximum number of data packets that can be transmitted in each of the multiple categories; if the number of data packets to be transmitted in each of the multiple categories is less than or equal to the maximum number of data packets that can be transmitted in a category, schedule all data packets of the category for transmission; if the number of data packets to be transmitted in each of the multiple categories is greater than the maximum number of data packets that can be transmitted in a category, schedule the maximum number of data packets that can be transmitted in each category for transmission. This provides a method for transmitting the maximum number of data packets in each category in each cycle, so that the transmission deadline of the data packets in each category can be met.

[0026] According to the data processing device as described above, the maximum number of data packets that can be transmitted by each of the multiple classes is determined at the beginning of the transmission cycle of the class with the highest first transmission priority. This provides a method to ensure that the maximum number of data packets that can be transmitted by each class in each cycle is updated according to the current bandwidth capacity and class priority.

[0027] According to the data processing device as described above, the one or more processors are used to allocate a cycle time for transmitting a data message of a category to each of the multiple categories, which ensures that each category has a designated time during which data messages are scheduled and transmitted.

[0028] A data processing method for scheduling transmission of data packets in a network, each data packet belonging to a class, each class having a predetermined first transmission priority associated with each class, the method comprising: receiving data packets of data to be transmitted for one or more of a plurality of classes; calculating a second indication of the transmission priority for each of the plurality of classes; determining a scheduling scheme for transmitting the data packets of the plurality of classes based on the first transmission priority and the second indication of the transmission priority. This achieves delay and jitter control in industrial networks with deterministic requirements by addressing the problem of deadline violations.

[0029] According to the method as described above, the first transmission priority is based on the strict priority of each of the multiple categories, which provides a first indicator for classifying the categories and scheduling data packets for transmission.

[0030] According to the method as described above, the second indication of the transmission priority is an urgency value calculated based on the maximum delay of each of the multiple categories, the current transmission cycle time and the start time of the transmission cycle of each of the multiple categories. This provides an auxiliary method for determining priorities for categories and data messages so as to override the initial priority so as to meet the transmission deadline.

[0031] According to the method described above, the second indication is based on the expression Calculate, where L i is the maximum delay of category i, t now yes and represents the time when transmission cycle k in category 1 starts, is the time at which transmission period j in class i begins. This provides an auxiliary method for prioritizing classes and datagrams so that the initial priority is overridden to meet the transmission deadline.

[0032] According to the method as described above, the method step of determining a scheduling scheme for transmitting the data packets of the plurality of categories includes: comparing the second indication of the first category of the plurality of categories with the second indication of the second category of the plurality of categories to determine whether they are the same; then, if the second indication of the first category of the plurality of categories is the same as the second indication of the second category of the plurality of categories, scheduling the transmission of the data packets of the plurality of categories according to the first transmission priority of each category of the plurality of categories; or if the second indication of the first category of the plurality of categories is different from the second indication of the second category of the plurality of categories, scheduling the transmission of the data packets of the plurality of categories according to the second indication of the transmission priority of each category of the plurality of categories. This provides a method to replace the strict priority associated with each category with an auxiliary metric based on the need to meet transmission deadlines and avoid deadline violations.

[0033] According to the method as described above, the second indication of the transmission priority is a weight or quantum value assigned to each of the plurality of categories. This provides an alternative method to using an alternative indicator of urgency to avoid violating data packet transmission.

[0034] According to the method as described above, the weight or quantum value assigned to each of the multiple categories allocates transmission bandwidth to each of the multiple categories. This provides sufficient bandwidth for the transmission of data packets in each category, so that the transmission deadline will not be violated.

[0035] According to the method described above, the maximum number of data packets transmitted within Δ1 for each of the multiple categories is given by the expression (C.ω i .Δ1) / s, where C is the transmission link capacity, ω i is the weight or quantum value of class i, Δ1 is the period of class 1, and s is the average datagram size. This provides a way to determine the correct number of datagrams that can be transmitted in each period.

[0036] According to the method as described above, the method steps for determining the scheduling scheme for transmitting the data packets of the multiple categories include: comparing the number of data packets to be transmitted in each of the multiple categories with the maximum number of data packets that can be transmitted in each of the multiple categories; if the number of data packets to be transmitted in each of the multiple categories is less than or equal to the maximum number of data packets that can be transmitted in a category, scheduling all data packets of the category for transmission; if the number of data packets to be transmitted in each of the multiple categories is greater than the maximum number of data packets that can be transmitted in a category, scheduling the maximum number of data packets that can be transmitted in each category for transmission. This provides a method for transmitting the maximum number of data packets in each category in each cycle, so that the transmission deadline of the data packets in each category can be met.

[0037] According to the method as described above, the maximum number of data packets that can be transmitted by each of the multiple classes is determined at the beginning of the transmission cycle of the class with the highest first transmission priority. This provides a method to ensure that the maximum number of data packets that can be transmitted by each class in each cycle is updated according to the current bandwidth capacity and class priority.

[0038] According to the method described above, each list in the plurality of categories is allocated with a cycle time for transmitting the data message of the category, which ensures that each category has a designated time during which the data message is scheduled and transmitted. BRIEF DESCRIPTION OF THE DRAWINGS

[0039] The present invention is described below by way of examples in conjunction with the accompanying drawings. In the accompanying drawings:

[0040] Figure 1 The architecture of the Paternoster scheduling scheme is shown;

[0041] Figure 2 shows the timing and queuing in the Paternoster scheduling scheme;

[0042] Figure 3 An example of class data message scheduling in the Paternoster scheduling scheme is shown;

[0043] Figure 3a to Figure 3d The scheduling priorities of data packets in four categories and the situations where deadline violations occur in four cycles in the Paternoster scheduling scheme are shown;

[0044] Figure 4 shows how to apply multiple different period values ​​to multiple categories;

[0045] Figure 5 shows a use case where the driver's application does not have a common cycle time;

[0046] Figure 6 shows a general approach to configuring service class periods for use cases where application period times do not have a common cardinality;

[0047] Figure 7 An example of class data packet scheduling using a hybrid parameter scheduling scheme including urgency is shown;

[0048] Figures 7a to 7d It shows the scheduling priorities of data packets in four categories within four periods in the hybrid scheduling scheme provided in the first embodiment of the present invention;

[0049] Figure 8a shows the simulation results of the transmission delay of each class using Omnest in a scheduling scheme that relies only on strict priority;

[0050] Figure 8b shows the simulation results of transmission delay for each class using Omnest in a hybrid scheduling scheme based on strict priority and urgency parameters;

[0051] Figure 8c The simulation results of the service time deviation of each class using Omnest in a scheduling scheme based on strict priority only are shown;

[0052] Figure 8d The simulation results of the service time deviation of each category using Omnest in a hybrid scheduling scheme based on strict priority and the second indication provided by the second embodiment of the present invention are shown;

[0053] Fig. 9 An example of class data packet scheduling using a hybrid parameter scheduling scheme that assigns weights to each class is shown;

[0054] Figures 9a to 9d The figure shows the scheduling priorities of data packets in four categories within four periods in the hybrid scheduling solution provided by the second embodiment of the present invention. DETAILED DESCRIPTION

[0055] Embodiments of the present invention solve the problems discussed in the past scheduling methods. The proposed Hybrid Scheduling using Strict priority and packet urgency or transmission weight (HSSUW) scheme is a method that can support delay guarantees for any type of epoch configuration. The scheme provides greater flexibility for the cycle time configuration of terminal stations in industrial network environments without using the previously required rule of "multiple integers" between network and application cycles as described above.

[0056] The embodiments of the present invention will be described in detail below with reference to the accompanying drawings.

[0057] The present invention Figure 3 An example of scheduling data packets for transmission using only the strict priority associated with each class is shown. In a differentiated service model with 8 priority classes, each class is assigned a cycle time Δ i (where i is the priority class). Low priority classes use a larger cycle, for example, a cycle of class 4, while high priority classes use a smaller cycle, i.e., Δ1<...<Δ8, where class 1 has a high priority as defined in the present invention. Each priority class on each egress port is configured with 4 queues: the previous queue, the current queue, the next queue, and the last queue. In each cycle, only the previous queue is sending data packets, while the other three queues are receiving packets. The queues are configured to be used in rotation, and this rotation occurs at the beginning of each cycle.

[0058] To illustrate Figure 3 For example, assuming that the link capacity C is 1 Gbps and the period of each category i is Δ i , the message size is s and is assumed to be 1000 bits. Another assumption in this example is that the number of data messages that can be transmitted per cycle is 10. Figure 3 As shown in Table 1, each class has an associated period, in which case the period has different lengths, for example, the period of class 1 data is 10 microseconds. As shown in Table 1, the data processing device can determine the number of data packets that can be transmitted in each period. Figure 3a to Figure 3d To further illustrate this point, four consecutive cycles are shown for transmitting a data message. Figure 3a to Figure 3dAs shown in the figure, when only strict priority is used to schedule data packets to be transmitted, the maximum number of data packets that can be transmitted for each category is transmitted in each cycle. For example, the maximum number of class 1 data packets that can be transmitted is 2, the maximum number of class 2 data packets that can be transmitted is 4, the maximum number of class 3 data packets that can be transmitted is 9, and the maximum number of class 4 data packets that can be transmitted is 12.

[0059] When strict priority is used, a maximum number of packets of each class are transmitted in each cycle, such as Figure 3a As shown in the figure, this results in 2 data packets in category 1 being scheduled, 4 data packets in category 2 being scheduled, and 4 data packets in category 3 being scheduled for transmission. In this example, only 10 data packets can be transmitted in each cycle, and the data packets are scheduled based on strict priority, so the data packets in category 4 are not scheduled in the first cycle. Figure 3b In the process, the other two data packets in category 1 are scheduled for transmission, but since all the 4 data packets that can be scheduled in category 2 are already in Figure 3a The class 2 data packets are scheduled for transmission and completed in the previous period, so the class 2 data packets cannot be scheduled at this stage. As a result, the class 3 data packets and class 4 data packets that have not yet been scheduled have a larger capacity. Therefore, since there are still 5 class 3 data packets left in this example, these data packets are scheduled for transmission, and the remaining 3 time slots are allocated to class 4 data packets.

[0060] exist Figure 3c In the cycle, there are again at most 2 class 1 data messages that need to be scheduled for transmission, and since class 2 enters a new cycle, there are 4 class 2 data messages that need to be scheduled for transmission. Therefore, these data messages are scheduled for transmission in the first 6 time slots. Since 9 data messages have been transmitted in the first and second cycles, there are no more class 3 data messages to be transmitted. In this way, the remaining 4 scheduled time slots can be allocated to the remaining 9 class 4 data messages. However, since there are only 4 time slots left, only 4 class 4 data messages can be allocated, so there are 5 data messages that cannot meet the transmission deadline due to their strict priority. This is because in the fourth cycle, there are additional data messages in class 1 and class 3, which take precedence over data messages in class 4, and new data messages in class 4 are also available for transmission. Using strict priority alone does not prevent deadline violations.

[0061] In a first embodiment of the present invention, in addition to the strict priority already associated with each class of datagrams, another parameter is added to specify the urgency of the datagrams. Thus, the present invention provides a novel method and apparatus for hybrid strict priority and urgency scheduling. That is, the scheduling of datagrams between different classes is based on dual parameters, namely urgency and priority. The urgency associated with each class can be based on the maximum delay of each class in a plurality of classes. In other words, the maximum time that a datagram in a class can be transmitted and meet the transmission deadline.

[0062] The urgency parameter assigned to each category γ i Defined as

[0063] Among them, L i is the maximum delay / jitter bound guaranteed for priority class i, t now is the current time (i.e. ), is the start time of the kth period of category 1, is the time when the jth period of category i begins. In this scenario, t now and are all local time, and Δ1 is the period of the highest priority category 1. The urgency value is calculated as a second indication of the priority of the transmission.

[0064] This new urgency parameter γ i is an example of a second indication of a transmission priority (second transmission priority), which is assigned to each class in scheduling and is related to the strict priority p of each class (traffic class). i The strict priority for each class is an example of a first transmission priority (a first indication of transmission priority).

[0065] In other words, the parameter γ i 、p i The apparatus may compare the second indication of each category with the first indication of each category when scheduling which data messages take precedence over other data messages. For example, one or more processors in the apparatus may compare the second indication of each category (e.g., urgency γ i ) are compared with each other and it is determined if the urgency of the two categories γ i Similarly, according to the first transmission priority (eg, strict priority p i) schedules data packets of these categories. On the other hand, if the first category and the second category have different second indications, one or more processors or schedulers are used to override the first transmission priority and preferentially schedule data packets of the category with the lower second indication, and then schedule data packets of the category with the higher second indication, without considering the strict priority of each category. In other words, the urgency parameter overrides the strict priority parameter, for example, the second indication overrides the first indication of the transmission priority. The lower the urgency parameter, the more urgent it is to transmit the data packet, because the period of the category including the data packet starts the earliest, so in order to meet the transmission deadline, the data packet usually has the shortest remaining time available for scheduling and transmission.

[0066] Figure 7 An example of a hybrid scheduling scheme of the present invention is shown, which introduces a second indication of urgency in addition to the strict priority scheme that is the basis of Paternoster scheduling. It should be understood that Figure 7 The number of categories, cycle time, etc. in the figure are used to illustrate how the data processing device determines which data packets to schedule for transmission. The configuration of network cycle, bandwidth reservation and data packet size is combined with the above Figure 3 In this embodiment, since the urgency values ​​are the same, the first three cycles are performed in the same manner as described above. Figure 3a to Figure 3c Same as described, however, the fourth network cycle Combined with the above Figure 3d The descriptions differ, especially in how Class 4 datagrams are scheduled to avoid deadline violations. At the beginning, the period Δ4 of the class 4 data message started 30 μs ago. Therefore, one or more processors in the data processing device are used to calculate the second indication (urgency) of the class 4 data message, which in this example is the second indication in the period Initially, the calculation is γ4 = 40μs – 30μs = 10μs. While calculating the urgency of the class 4 data message, one or more processors also calculate the urgency of the class 3 data message in the same manner, resulting in an urgency value of γ4 = 30μs. Then, the one or more processors determine whether to schedule the class 4 data message first or the class 3 data message based on the calculation results of the second indication of each class and the strict priority of each class. In this case, it is determined that the calculated second indication of class 4 is less than the second indication of class 3 discussed above. Therefore, in Figure 9d In the fourth cycle of , the class 4 data message is scheduled before the class 3 message. This ensures that all data messages are sent before the deadline and no deadline violation occurs.

[0067] However, if the urgency of category 3 data messages and category 4 data messages does not have the above value but is the same, one or more processors in the data processing device will prioritize the category 3 data messages according to the first indication (strict priority) of each category, and then schedule the category 4 data messages.

[0068] Figures 8a to 8d The simulation results generated using Omnest are shown, showing the results of using a data processing device that uses only the first transmission priority ( Figure 8a and Figure 8c ) and using both the first transmission priority (strict priority) and the second transmission priority (urgency) (e.g. Figure 8b and Figure 8d As shown in Figure 2, the data packets are scheduled for transmission. Figures 8a to 8d In the figure, the dashed line indicates the threshold at which a deadline violation occurs. The boundary of each block in the figure represents the service time deviation (jitter), which is defined as the difference between the network requested delay and the actual delivery time. For example, a deadline violation will result in negative jitter because (for example, in category 4) the requested delay (the period to transmit a datagram) is less than the actual time required to transmit the datagram, so the datagrams in this category miss their transmission deadlines because they are not properly scheduled. Figure 8a As shown in Figure 1, the original Paternoster scheduling algorithm using only strict priority will not only cause Category 4 data packets to violate deadlines, but also cause greater service time deviation (e.g., jitter) because Category 4 data packets are not scheduled according to strict priority in a timely manner and must wait for additional cycles before transmitting these data packets. Figure 8c , a negative service time deviation is shown for the category 4 data packets, because the data packets cannot be scheduled and transmitted within the delay requested by the network category, thus missing the deadline for transmitting these data packets.

[0069] By introducing the urgency parameter as the second indication in the present invention, the class 4 messages are not only sent within their deadlines, but also with less jitter. Figure 8b and Figure 8d It can be seen that in Figure 8b and Figure 8d In the , no deadline violations occurred in the scheduling and transmission of Class 4 datagrams, which is confirmed by the reduction of millisecond delay bounds for each class. Figure 8d As shown, the service time deviation of each category is positive, especially the service time deviation of category 4 data packets, which shows that when scheduling is performed according to the urgency parameter and strict priority, the data packets can be scheduled and transmitted within the deadline, and there is no violation of the transmission deadline.

[0070] In a second embodiment of the present invention, one or more processors in the data processing apparatus are configured to implement a hybrid scheduling scheme, wherein the second indication of the transmission priority is a weight ω assigned to each class i. i This scheduling implementation is based on the datagram or bit level. In this alternative implementation of hybrid Paternoster scheduling, a weight ω is assigned to each class i. i (Second indication of transmission priority) In this embodiment, data packet scheduling is performed according to a period Δ1 of service category 1. Fig. 9 as well as Figures 9a to 9d The method of the second embodiment is shown in each cycle. The second indication includes a calculation result based on a weight assigned to each class. The weight assigned to each class can allocate a transmission bandwidth for each class, within which the data message can be scheduled and / or transmitted.

[0071] In this embodiment, one or more processors in the data processing device are used to implement a scheduling scheme that cyclically schedules the eight categories according to their strict priorities after each period Δ1. In this process, one or more processors are used to assign a weight (such as in Weighted Round Robin (WRR)) or a quantum value (such as in Deficit Round Robin (DRR)) to each category, where: (For example, ω1+ω2+…+ω N =1). i Can be a variable, depending on the dynamic assignment of datagram priorities on each hop. Hop refers to the number of hops, which is defined as the number of intermediate network nodes between a source node and a destination node pair. Weight ω i (or quantum value) defines the bandwidth reservation share allocated to class i data packet traffic.

[0072] Once one or more processors select category i during the scheduling process, the one or more processors are used to calculate the maximum number of data packets transmitted within Δ1 for each of the multiple categories, where the maximum number is given by the expression (C.ω i .Δ1) / s, C is the transmission link capacity, ω i is the weight or quantum value of category i, Δ1 is the period of category 1, and s is the average data packet size. Then, one or more processors schedule at most (C.ω i .Δ1) / s data packets or C.ω i .Δ1 data bit is transmitted. C.ω i.Δ1 defines the maximum number of bits that a class is allowed to transmit within Δ1. In WRR and Paternoster schemes, scheduling is based on every Δ1 interval. This means that the maximum number of messages needs to be calculated based on Δ1.

[0073] If the number of data packets in the queue of category i is less than (C.ω i .Δ1) / s or less bits than C.ω i .Δ1, the scheduler will schedule every datagram (or bit) in this category. Each category that transmits after the first category (for example, i>1) must also maintain its own period Δ i and a period Δ1 of the first category. In this way, data packets in each priority category are scheduled within the time period Δ1. In other words, one or more processors are used to: when determining a scheduling scheme for transmitting data packets of multiple categories, compare the number of data packets to be transmitted in each of the multiple categories with the maximum number of data packets that can be transmitted in each of the multiple categories. Calculating the maximum number of data packets to be transmitted and / or comparing it with the number of data packets that can be transmitted within each Δ1 can be regarded as a second indication of transmission priority. The maximum number of data packets that can be transmitted for each of the multiple categories is determined at the beginning of the transmission period of the category with the highest first transmission priority. In this regard, the highest first transmission priority represents category 1, for example, the category that is scheduled first according to strict priority.

[0074] Typically, one or more processors schedule the data packets based on a strict priority ordering of the data packets and taking into account a second indication of transmission priority (e.g., the number of data packets compared to the maximum number of data packets to be transmitted in each class). This can be seen in Figures 9a to 9d It can be seen that in Figures 9a to 9d In , the data packets in each class are transmitted in each cycle according to strict priority order, but the weight is also taken into account, and therefore the number of data packets to be transmitted in each class.

[0075] Specifically, in this embodiment, one or more processors are used to determine that if the number of data packets to be transmitted in each of the multiple categories is less than or equal to the maximum number of data packets that can be transmitted in a category, all data packets in the category are scheduled for transmission. However, if the number of data packets to be transmitted in each of the multiple categories is greater than the maximum number of data packets that can be transmitted in a category, the one or more processors schedule the maximum number of data packets that can be transmitted in each category for transmission. Figures 9a to 9d In the display, Figures 9a to 9dIn this scheme, data packets from all classes are transmitted in each cycle, and each class transmits a maximum number of data packets in each cycle. This ensures that data packets from all classes are scheduled and transmitted by the above means within the requested delay, so that no data packet transmission deadline violation occurs. Adding weights may slightly increase the complexity of the system because one or more processors may need to update the weights every time the bandwidth reservation for a service class changes. In addition, one or more processors need to calculate how many data packets / bits can be transmitted in a class.

[0076] exist Figures 9a to 9d In the figure, the weight distribution method is used to draw each Δ1 k It should be noted that the implementation complexity of this approach may increase compared to the first approach (by introducing the urgency parameter) because the scheduler may need to update the weights every time the bandwidth reservation of a service class changes. The scheduler also needs to calculate how many packets / bits can be transmitted in a class.

[0077] The scheduling schemes described in the above embodiments and implemented using a data processing device including one or more processors may also be encapsulated by corresponding methods, which may be implemented by the device to provide the scheduling scheme.

[0078] Specifically, the present invention also includes a data processing method for scheduling the transmission of data packets in a network, each data packet belonging to a category, and each category having a predetermined first transmission priority associated with each category. The method in the present invention includes receiving data packets to be transmitted for one or more categories of a plurality of categories. These data packets are part of the data packets to be transmitted of each category. Then, the method includes calculating a second indication of the transmission priority of each category in the plurality of categories. As described in the above embodiment, the second indication of the transmission priority can be an urgency parameter, or it can be based on the weight assigned to each category, as described in the second embodiment. The method also includes the following steps: determining a scheduling scheme for transmitting data packets of multiple categories based on the first transmission priority (strict priority) and the second indication of the transmission priority (as described in each embodiment). Other method steps can be clearly derived from the functions of one or more processors in the above-mentioned data processing device.

[0079] These embodiments of the present invention implement delay and jitter control in industrial networks while achieving lower implementation complexity than known scheduling schemes. Various embodiments further address the deadline violation problem in the pulse queue model proposed by the IEEE 802.1Q WG, and can flexibly support a general configuration of network cycles (network cycle / network epoch) instead of the previously used "multiple integer" relationship between network cycles and application cycles. In addition, the embodiments described herein are demonstrated through specific examples, but it is easy for those skilled in the art to understand that the apparatus and method can be used to support a wider range of application cycles. In addition, embodiments of the present invention can simultaneously meet different delay requirements from hundreds of microseconds to approximately 100ms.

[0080] Applicants hereby disclose separately each individual feature described herein and any combination of two or more such features. With the common knowledge of those skilled in the art, such features or combinations can be implemented as a whole according to this specification, without considering whether such features or combinations of features can solve any problem disclosed herein; and without limiting the scope of the claims. Applicants point out that aspects of the present invention may include any such individual features or combinations of features. In view of the above description, it will be obvious to those skilled in the art that various modifications can be made within the scope of the present invention.

Claims

1. A data processing device for implementing a hybrid scheduling scheme, characterized in that: The hybrid scheduling scheme is used to schedule data packets in a network, the data processing device includes one or more processors, the one or more processors are used to process data packets, each data packet belongs to a class, each class has a predetermined first transmission priority associated with each class: receiving a data message of data to be transmitted for one or more categories of the plurality of categories; calculating a second indication of the transmission priority for each of the plurality of classes, The data packets of the plurality of categories are scheduled for transmission based on the first transmission priority and the calculated second indication of the transmission priority.

2. The data processing device according to claim 1, characterized in that: The first transmission priority is based on a strict priority of each of the plurality of classes.

3. The data processing device according to claim 1 or 2, characterized in that: The second indication of the transmission priority is an urgency value calculated based on the maximum delay of each of the plurality of categories, the current transmission cycle time, and the start time of the transmission cycle of each of the plurality of categories.

4. The data processing device according to any one of the preceding claims, characterized in that The one or more processors are used to calculate the expression Calculate the second indication, where L i is the maximum delay of category i, t now yes and represents the time when transmission cycle k in category 1 starts, is the time when transmission period j in category i starts.

5. The data processing device according to any one of the preceding claims, characterized in that The one or more processors are further configured to: when determining a scheduling scheme for transmitting the data packets of the plurality of categories, compare a second indication of a first category of the plurality of categories with a second indication of a second category of the plurality of categories to determine whether they are the same; Then, If the second indication of the first category in the multiple categories is the same as the second indication of the second category in the multiple categories, scheduling transmission of the data packets in the multiple categories according to the first transmission priority of each category in the multiple categories; or If the second indication of the first category among the multiple categories is different from the second indication of the second category among the multiple categories, the transmission of the data packets of the multiple categories is scheduled according to the second indication of the transmission priority of each category among the multiple categories.

6. The data processing device according to claim 1 or 2, characterized in that: The second indication of the transmission priority is a weight or quantum value assigned to each of the plurality of categories.

7. The data processing device according to claim 6, characterized in that: The weight or quantum value assigned to each of the plurality of classes allocates transmission bandwidth to each of the plurality of classes.

8. The data processing device according to claim 6 or 7, characterized in that: The one or more processors are further configured to calculate a maximum number of data packets transmitted by each of the multiple categories, wherein the maximum number is given by the expression (C.ω i .Δ1) / s, C is the transmission link capacity, ω i is the weight or quantum value of category i, Δ1 is the period of category 1, and s is the average data packet size.

9. The data processing device according to claim 8, characterized in that: The one or more processors are further configured to: when determining a scheduling scheme for transmitting the data packets of the plurality of categories, compare the number of data packets to be transmitted in each of the plurality of categories with the maximum number of data packets that can be transmitted in each of the plurality of categories; If the number of data packets to be transmitted in each of the plurality of categories is less than or equal to the maximum number of data packets that can be transmitted in one category, scheduling all data packets of the category for transmission, If the number of data packets to be transmitted in each of the plurality of classes is greater than the maximum number of data packets transmittable for one class, The maximum number of data packets transmittable by each class is scheduled for transmission.

10. The data processing device according to claim 9, characterized in that: The maximum number of data packets transmittable by each of the plurality of classes is determined at the beginning of a transmission cycle of the class having the highest first transmission priority.

11. The data processing device according to any one of the preceding claims, characterized in that The one or more processors are configured to allocate a cycle time for transmitting a data message of one category to each of the multiple categories.

12. A data processing method for scheduling data message transmission in a network, characterized in that: Each data packet belongs to a class, each class having a predetermined first transmission priority associated with each class, the method comprising: receiving a data message of data to be transmitted for one or more categories of the plurality of categories; calculating a second indication of the transmission priority for each of the plurality of classes; A scheduling scheme for transmitting the data packets of the plurality of categories is determined based on the first transmission priority and the second indication of the transmission priority.

13. The method according to claim 12, characterized in that The first transmission priority is based on a strict priority of each of the plurality of classes.

14. The method according to claim 12 or 13, characterized in that The second indication of the transmission priority is an urgency value calculated based on the maximum delay of each of the plurality of categories, the current transmission cycle time, and the start time of the transmission cycle of each of the plurality of categories.

15. The method according to any one of claims 12 to 14, characterized in that The second instruction is based on the expression Calculate, where L i is the maximum delay of category i, t now yes and represents the time when transmission cycle k in category 1 starts, is the time when transmission period j in category i starts.

16. The method according to any one of claims 12 to 15, characterized in that The method steps of determining a scheduling scheme for transmitting the data packets of the plurality of categories include: comparing the second indication of the first category in the plurality of categories with the second indication of the second category in the plurality of categories to determine whether they are the same; then, If the second indication of the first category in the multiple categories is the same as the second indication of the second category in the multiple categories, scheduling transmission of the data packets of the multiple categories according to the first transmission priority of each category in the multiple categories; or If the second indication of the first category among the multiple categories is different from the second indication of the second category among the multiple categories, the transmission of the data packets of the multiple categories is scheduled according to the second indication of the transmission priority of each category among the multiple categories.

17. The method according to claim 12 or 13, characterized in that The second indication of the transmission priority is a weight or quantum value assigned to each of the plurality of categories.

18. The method according to claim 17, characterized in that The weight or quantum value assigned to each of the plurality of classes allocates transmission bandwidth to each of the plurality of classes.

19. The method according to claim 17 or 18, characterized in that The maximum number of data packets transmitted by each of the multiple categories is given by the expression (C. i .Δ1) / s, where C is the transmission link capacity, ω i is the weight or quantum value of category i, Δ1 is the period of category 1, and s is the average data packet size.

20. The method according to claim 19, characterized in that The method steps of determining a scheduling scheme for transmitting the data packets of the plurality of categories include: comparing the number of data packets to be transmitted in each of the plurality of classes with the maximum number of data packets transmittable in each of the plurality of classes; If the number of data packets to be transmitted in each of the plurality of categories is less than or equal to the maximum number of data packets that can be transmitted in one category, scheduling all data packets of the category for transmission, If the number of data packets to be transmitted in each of the plurality of classes is greater than the maximum number of data packets transmittable for one class, The maximum number of data packets transmittable by each class is scheduled for transmission.

21. The method according to claim 20, characterized in that The maximum number of data packets transmittable by each of the plurality of classes is determined at the beginning of a transmission cycle of the class having the highest first transmission priority.

22. The method according to any one of claims 12 to 21, characterized in that Each list of the plurality of categories is assigned a cycle time for transmitting the data packets of the category.

Citation Information

Cited By

  • Flow scheduling method and system, medium, program and electronic terminal

    CN121619294A

  • Traffic scheduling method, system, medium, program and electronic terminal

    CN121619294B