Message scheduling method and device, equipment and storage medium

By employing a port group priority scheduling strategy and a round-robin mechanism, the response lag problem of the scheduling polling mechanism in switching chip data communication products was solved, achieving low latency and low jitter scheduling, thus meeting the application requirements of time-sensitive networks.

CN120881029APending Publication Date: 2025-10-31WXILICON TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511131799.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-13
Publication Date
2025-10-31

AI Technical Summary

Technical Problem

In existing technologies, the scheduling polling mechanism of switching chip data communication products lacks effective correlation with port queue requests, resulting in uncertainty and volatility in port queue packet dequeue latency, which cannot meet the needs of time-sensitive networks and application scenarios with strict requirements for latency jitter.

Method used

A scheduling strategy based on port group priority is adopted to ensure that high-priority port groups get scheduling resources first and do not participate in scheduling for a set period of time after completing message transmission, so as to release resources to other ports. Combined with the ROUND-ROBIN scheduling mechanism, resource allocation is balanced.

Benefits of technology

It effectively avoids the response lag problem caused by the polling mechanism, meets the requirements of time-sensitive networks for low latency and low jitter, and ensures timely response to high-priority services and fair allocation of resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120881029A_ABST
    Figure CN120881029A_ABST
Patent Text Reader

Abstract

The invention relates to a message scheduling method and device, equipment and a storage medium. The method comprises the following steps: receiving scheduling requests from a plurality of ports; determining a port group to which each port belongs and the priority of the port group; sequentially providing scheduling services for the port groups according to the priorities of the port groups; in the port group provided with the scheduling service, sequentially responding to the scheduling request of each port in the port group; and after the scheduled port completes message sending, the port does not participate in scheduling within a set duration so as to release the scheduling opportunity to other ports. Thus, a traditional port polling scheduling mechanism is cancelled, a scheduling strategy based on the priority among the port groups is adopted, it is ensured that the port groups with the high priority can preferentially obtain the scheduling resources, the response lag problem caused by the polling mechanism is effectively avoided, and the scheduling efficiency is improved. And the requirements of application scenes with strict requirements on low time delay and low jitter, such as a time sensitive network TSN and the like, are met.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of network communication technology, and in particular to a message scheduling method, apparatus, device and storage medium. Background Technology

[0002] In the current field of data communication products using switching chips, to achieve effective management and transmission of data packets, a method of independently storing packets in each port queue is typically adopted. Specifically, each port has its own independent queue for storing data packets to be sent. When the scheduler receives a packet dequeue request from a port, it will respond to the scheduling requests of each port queue in sequence according to the scheduling polling mechanism pre-configured by the host computer.

[0003] However, this scheduling method has a significant technical flaw: the scheduling polling mechanism lacks an effective correlation with the actual requests from the port queues. In other words, when a port queue generates a packet dequeue request, if it's not currently in a polling cycle targeting that port, the scheduling request will not receive a timely response and must wait until the next polling cycle. This increases the latency uncertainty of packet dequeueing, significantly amplifying the time variability of packet dequeueing. Consequently, it fails to meet the requirements of Time-Sensitive Networking (TSN) or applications with extremely stringent latency and jitter requirements, such as industrial automation and real-time video streaming, which have extremely strict requirements for network latency and jitter. Summary of the Invention

[0004] In view of the above problems of the prior art, this application provides a message scheduling method, apparatus, device and storage medium. This application adopts a scheduling strategy based on port group priority, which ensures that high-priority port groups can obtain scheduling resources first, effectively avoiding the response lag problem caused by the polling mechanism, and meeting the application scenarios such as Time Sensitive Network (TSN) that have strict requirements for low latency and low jitter.

[0005] To achieve the above objectives, the first aspect of this application provides a message scheduling method, comprising:

[0006] Scheduling requests were received from multiple ports;

[0007] Determine the port group to which each port belongs, and the priority of the port group;

[0008] The scheduling service is provided to each port group according to its priority.

[0009] Within the port group that is provided with scheduling services, the scheduling requests of each port in the port group are responded to in sequence.

[0010] Once the scheduled port has finished sending the message, it will not participate in scheduling for a set period of time in order to release the scheduling opportunity to other ports.

[0011] Thus, this application eliminates the traditional port polling scheduling mechanism and instead adopts a scheduling strategy based on port group priority. This ensures that high-priority port groups receive scheduling resources first, effectively avoiding the response lag problem caused by the polling mechanism and meeting the requirements of application scenarios such as Time-Sensitive Networking (TSN) that have strict requirements for low latency and low jitter. Furthermore, once a port completes a packet transmission, it will not participate in scheduling for a set period of time, reserving sufficient scheduling opportunities for other ports, balancing resource allocation among different ports, and avoiding resource monopoly.

[0012] As one possible implementation of the first aspect, the transmission rates of all ports included in the same port group are the same;

[0013] The priority order of each port group is positively correlated with the transmission rate of the ports within each port group.

[0014] In this way, by dividing ports with different transmission rates into different priority groups, it is ensured that high-speed or high-priority services can get scheduling opportunities first, thereby meeting the requirements of low latency and low jitter in scenarios such as industrial control and audio and video transmission.

[0015] As one possible implementation of the first aspect, the sequential response to the scheduling requests of each port within the port group includes:

[0016] The ROUND-ROBIN scheduling mechanism is used to respond to the scheduling requests of each port in the port group in sequence.

[0017] Thus, within each port group, a round-robin scheduling mechanism is used to handle scheduling requests between ports, ensuring that all ports within the same port group have a scheduling opportunity, preventing some ports from being unserviced for a long time, and enhancing the fairness and efficiency of the scheduling process.

[0018] As one possible implementation of the first aspect, the set duration, when calculated in units of clock cycles, is calculated using the following formula:

[0019]

[0020] Where min_gap is the number of clock cycles, sys_freq is the system clock frequency, IPG is the inter-packet interval, PREMBLE is the preamble used to synchronize the receiver's clock frequency, port_rate is the port's transmission rate, packet_size is the parameter for the packet size, and 8 is the multiplier factor for converting bytes to bits.

[0021] Thus, in this invention, by reasonably setting the set duration, it is ensured that each port can receive scheduling services within an appropriate time period, preventing a single port from frequently preempting scheduling resources and avoiding the inability of other ports to be scheduled due to a port occupying the channel for a long time.

[0022] To achieve the above objectives, a second aspect of this application provides a message scheduling apparatus, comprising:

[0023] The receiving unit is used to receive scheduling requests from multiple ports;

[0024] The determination unit is used to determine the port group to which each port belongs and the priority of the port group;

[0025] The unit provides scheduling services to each port group according to its priority.

[0026] The response unit is used to sequentially respond to the scheduling requests of each port in the port group that is provided with scheduling services.

[0027] The release unit is used to release scheduling opportunities to other ports after the scheduled port has completed sending a message, so that the port will not participate in scheduling for a set period of time.

[0028] As one possible implementation of the second aspect, the transmission rates of all ports within the same port group are the same;

[0029] The priority order of each port group is positively correlated with the transmission rate of the ports within each port group.

[0030] As one possible implementation of the second aspect, the providing unit is configured to:

[0031] The ROUND-ROBIN scheduling mechanism is used to respond to the scheduling requests of each port in the port group in sequence.

[0032] As one possible implementation of the second aspect, the set duration, when calculated in units of clock cycles, is calculated using the following formula:

[0033]

[0034] Where min_gap is the number of clock cycles, sys_freq is the system clock frequency, IPG is the inter-packet interval, PREMBLE is the preamble used to synchronize the receiver's clock frequency, port_rate is the port's transmission rate, packet_size is the parameter for the packet size, and 8 is the multiplier factor for converting bytes to bits.

[0035] To achieve the above objectives, a third aspect of this application provides a computing device, comprising:

[0036] processor, and

[0037] A memory having program instructions stored thereon, which, when executed by the processor, cause the processor to perform the scheduling method described in any of the first aspects above.

[0038] To achieve the above objectives, a fourth aspect of this application provides a computer-readable storage medium having program instructions stored thereon, which, when executed by a computer, cause the computer to implement the scheduling method described in any of the first aspects above. Attached Figure Description

[0039] Figure 1 This is a flowchart of the main steps of a message scheduling method provided in this application;

[0040] Figure 2 This is a schematic diagram of the structure of Embodiment 1 provided in this application;

[0041] Figure 3 This is a schematic diagram of the structure of a message scheduling device provided in this application;

[0042] Figure 4 This is a structural schematic diagram of a computing device provided in this application.

[0043] It should be understood that the dimensions and shapes of the blocks in the above structural diagrams are for reference only and should not constitute an exclusive interpretation of the embodiments of the present invention. The relative positions and inclusion relationships between the blocks presented in the structural diagrams are only schematic representations of the structural relationships between the blocks, and are not intended to limit the physical connection methods of the embodiments of the present invention. Detailed Implementation

[0044] The technical solutions provided in this application will be further described below with reference to the accompanying drawings and embodiments. It should be understood that the system architecture and business scenarios provided in the embodiments of this application are mainly for illustrating possible implementations of the technical solutions of this application and should not be construed as the sole limitation on the technical solutions of this application. Those skilled in the art will recognize that the technical solutions provided in this application are equally applicable to similar technical problems as system architectures evolve and new business scenarios emerge.

[0045] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. In case of any inconsistency, the meaning set forth in this specification or derived from the content described herein shall prevail. Furthermore, the terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit the scope of this application.

[0046] 1) The Round-Robin (PP) scheduling mechanism is a scheduling algorithm that fairly allocates resources. Its core concept is to ensure that all participants (such as ports) have an equal opportunity to receive services, thereby achieving efficient resource utilization and load balancing.

[0047] 2) Strict Priority (SP) scheduling mechanism is a scheduling algorithm in which tasks or processes are executed according to a preset priority order, and high-priority tasks are processed before low-priority tasks.

[0048] This application provides a message scheduling method, such as... Figure 1 As shown, it includes:

[0049] S101, Receive scheduling requests from multiple ports;

[0050] S102. Determine the port group to which each port belongs and the priority of the port group;

[0051] S103. Provide scheduling services to each port group according to its priority.

[0052] S104. Within the port group where scheduling services are provided, respond sequentially to the scheduling requests of each port within the port group;

[0053] S105. After the scheduled port completes the message transmission, the port will not participate in scheduling for a set period of time in order to release the scheduling opportunity to other ports.

[0054] Thus, this application eliminates the traditional port polling scheduling mechanism and instead adopts a scheduling strategy based on port group priority. This ensures that high-priority port groups receive scheduling resources first, effectively avoiding the response lag problem caused by the polling mechanism and meeting the requirements of application scenarios such as Time-Sensitive Networking (TSN) that have strict requirements for low latency and low jitter. Furthermore, once a port completes a packet transmission, it will not participate in scheduling for a set period of time, reserving sufficient scheduling opportunities for other ports, balancing resource allocation among different ports, and avoiding resource monopoly.

[0055] In some embodiments, the transmission rates of all ports included in the same port group are the same;

[0056] The priority order of each port group is positively correlated with the transmission rate of the ports within each port group.

[0057] Specifically, in this invention, all ports belonging to the same port group have the same transmission rate. For example, all ports supporting a 1Gbps transmission rate can be grouped into one group, and all ports supporting a 10Gbps transmission rate can be grouped into another group. This classification method simplifies the grouping approach and ensures relatively consistent quality of service when using the ROUND-ROBIN scheduling mechanism within the same port group.

[0058] Furthermore, the priority of port groups is determined based on the transmission rate of the ports within that group. Specifically, port groups with higher transmission rates will be assigned higher priority. For example, if there are three port groups A, B, and C, corresponding to transmission rates of 1Gbps, 10Gbps, and 40Gbps respectively, then the priority order from highest to lowest should be: C>B>A. This priority setting method ensures that applications with high bandwidth requirements can obtain scheduling resources as soon as possible, thereby meeting their requirements for low latency.

[0059] In this way, by dividing ports with different transmission rates into different priority groups, it is ensured that high-speed or high-priority services can get scheduling opportunities first, thereby meeting the requirements of low latency and low jitter in scenarios such as industrial control and audio and video transmission.

[0060] In some embodiments, the step of sequentially responding to the scheduling requests of each port within the port group includes:

[0061] The ROUND-ROBIN scheduling mechanism is used to respond to the scheduling requests of each port in the port group in sequence.

[0062] Thus, within each port group, a round-robin scheduling mechanism is used to handle scheduling requests between ports, ensuring that all ports within the same port group have a scheduling opportunity, preventing some ports from being unserviced for a long time, and enhancing the fairness and efficiency of the scheduling process.

[0063] In some embodiments, the set duration, when calculated in clock cycles, is calculated using the following formula:

[0064]

[0065] Where min_gap is the number of clock cycles, sys_freq is the system clock frequency, IPG is the inter-packet interval, PREMBLE is the preamble used to synchronize the receiver's clock frequency, port_rate is the port's transmission rate, packet_size is the parameter for the packet size, and 8 is the multiplier factor for converting bytes to bits.

[0066] It is worth noting that the data transmission involved in each scheduling is not limited to the packet itself of length packet_size, but also needs to include a preamble for synchronizing the clock frequencies of the sender and receiver, and an IPG as the necessary interval between frames. In other words, the packet size parameter (packet_size), plus the necessary interval (IPG) and preamble (PREMBLE), constitute the minimum amount of data that needs to be processed in a single scheduling.

[0067] Thus, in this invention, by reasonably setting the set duration, it is ensured that each port can receive scheduling services within an appropriate time period, preventing a single port from frequently preempting scheduling resources and avoiding the inability of other ports to be scheduled due to a port occupying the channel for a long time.

[0068] To more clearly illustrate the above scheduling method, this application provides the following specific embodiments.

[0069] The first embodiment, combined with Figure 2 As shown, the example is n=3.

[0070] The four ports are PORT0 (10G), PORT1 (2.5G), PORT2 (1G), and PORT3 (1G).

[0071] Step 1: Receive scheduling requests from PORT0, PORT1, PORT2 and PORT3;

[0072] Step 2: Group the ports according to their transmission rates to determine the port group to which each port belongs; ports with the same transmission rate are grouped together.

[0073] Specifically, the ports are grouped as follows:

[0074] Group 0 (first port): includes the 10G PORT0 port;

[0075] Second port group (Group 1): includes the 2.5G PORT1 port;

[0076] Group 2 (third port): includes 1G PORT2 and 1G PORT3.

[0077] Step 3: Determine the priority of the port group;

[0078] Since PORT0 has the highest transmission rate, PORT1 has the second highest transmission rate, and PORT2 and PORT3 have the lowest transmission rates (i.e., 10G is greater than 2.5G is greater than 1G), the priorities of the first port group, the second port group, and the third port group are set as the first priority port group, the second priority port group, and the third priority port group, respectively.

[0079] Among them, PORT0, which has the highest transmission rate, has a greater demand for network bandwidth, meaning it needs to handle a large amount of data transmission. Therefore, in order to ensure that PORT0 can respond immediately when there is a scheduling request and will not be delayed due to resource contention, it is set to the highest priority.

[0080] Step 4: Provide scheduling services to each port group according to their priority.

[0081] Specifically, when the scheduler needs to process requests from multiple port groups, it will first respond to port requests from the first priority port group, and then the second priority port group and the third priority port group in turn.

[0082] Step 5: Within the port group where scheduling services are provided, use the ROUND-ROBIN scheduling mechanism to respond to the scheduling requests of each port in the port group in sequence.

[0083] For example, in the third priority port group, PORT2 and PORT3 will take turns getting scheduling opportunities to avoid any single port being unable to receive service for an extended period of time.

[0084] It is worth noting that, Figure 2 In this context, RR stands for Round-Robin scheduling. SP stands for Strict Priority scheduling.

[0085] Step 6: After the scheduled port completes message transmission, calculate the set duration for that port;

[0086] The calculation formula is as follows:

[0087]

[0088] Parameter description:

[0089] packet_size is a parameter for packet size.

[0090] sys_freq: System clock frequency, representing the number of system clock cycles per second.

[0091] IPG: Inter Packet Gap, a parameter defined in the Ethernet standard to ensure that network devices have enough time to process each packet.

[0092] PREMBLE: Preamble, used for receiver synchronization signals.

[0093] port_rate: The port's transmission rate, representing the amount of data that the port can transmit per second.

[0094] Multiplying by 8 is because it converts from bytes to bits, and 1 byte = 8 bits.

[0095] More specifically, the calculation of the minimum scheduling interval is illustrated using the 10G PORT0 port included in the first priority port group as an example.

[0096] For example, packet_size is 64 bytes, sys_freq is 1 GHz, IPG is 12 bytes, PREMBLE is 8 bytes, and the port speed of PORT0 is 10G.

[0097] To ensure that PORT0 can still meet the 10Gbps line-rate forwarding requirement under the most demanding scenarios, the minimum packet length must be used as the analysis benchmark. In extreme cases, the scheduler may output only the shortest packet (64 bytes) in a single scheduling operation. In this case, the packet transmission time is the shortest, and the requirement for scheduling frequency is the highest. Since longer packet transmissions take longer, their scheduling intervals are relatively more flexible, making it easier to meet the rate requirements. Therefore, as long as the system can guarantee the continuous transmission capability of the minimum 64-byte packet, the line-rate forwarding of all longer packets can be guaranteed. Therefore, in this example, packet_size is calculated based on 64 bytes.

[0098] Substituting the above data into the formula, we can calculate:

[0099]

[0100] The calculated min_gap is 67.2. This value represents the maximum allowed scheduling interval between two adjacent packets when the scheduler sends the minimum packet (64 bytes) to the 10G PORT0 port under the current configuration; that is, the upper limit of the "set duration".

[0101] If the actual scheduling interval exceeds 67.2 clock cycles, PORT0 will wait after sending a packet, resulting in a "traffic hole" on the link, with an average rate below 10Gbps, which cannot meet the line-speed forwarding requirement. Therefore, in a practical system, the scheduler can be set to a clock cycle less than 67.2, such as 60, indicating that it has the ability to schedule at a higher frequency, thereby speeding up packet scheduling when resources allow.

[0102] This application provides a message scheduling device 300, such as... Figure 3 As shown, it includes:

[0103] The receiving unit 301 is used to receive scheduling requests from multiple ports;

[0104] The determining unit 302 is used to determine the port group to which each port belongs and the priority of the port group;

[0105] The providing unit 303 is used to provide scheduling services to each port group in sequence according to the priority of the port group;

[0106] The response unit 304 is used to sequentially respond to the scheduling requests of each port in the port group that is provided with scheduling services.

[0107] Release unit 305 is used to release scheduling opportunities to other ports by not participating in scheduling for a set period of time after the scheduled port has completed sending a message.

[0108] In some embodiments, the transmission rates of all ports included in the same port group are the same;

[0109] The priority order of each port group is positively correlated with the transmission rate of the ports within each port group.

[0110] In some embodiments, the providing unit is configured to:

[0111] The ROUND-ROBIN scheduling mechanism is used to respond to the scheduling requests of each port in the port group in sequence.

[0112] In some embodiments, the set duration, when calculated in clock cycles, is calculated using the following formula:

[0113]

[0114] Where min_gap is the number of clock cycles, sys_freq is the system clock frequency, IPG is the inter-packet interval, PREMBLE is the preamble used to synchronize the receiver's clock frequency, port_rate is the port's transmission rate, packet_size is the parameter for the packet size, and 8 is the multiplier factor for converting bytes to bits.

[0115] Figure 4 This is a structural schematic diagram of a computing device 600 provided in an embodiment of this application. The computing device performs the methods described above, such as... Figure 4 As shown, the computing device 600 includes: a processor 610, a memory 620, and a communication interface 630.

[0116] It should be understood that Figure 4 The communication interface 630 in the computing device 600 shown can be used to communicate with other devices, and may specifically include one or more transceiver circuits or interface circuits.

[0117] The processor 610 can be connected to the memory 620. The memory 620 can be used to store the program code and data. Therefore, the memory 620 can be a storage unit inside the processor 610, an external storage unit independent of the processor 610, or a component that includes both the storage unit inside the processor 610 and the external storage unit independent of the processor 610.

[0118] Optionally, the computing device 600 may also include a bus. The memory 620 and communication interface 630 can be connected to the processor 610 via the bus. The bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 4 The symbol is represented by a line without an arrow, but this does not mean that there is only one bus or one type of bus.

[0119] It should be understood that in the embodiments of this application, the processor 610 may be a central processing unit (CPU). The processor may also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor. Alternatively, the processor 610 may employ one or more integrated circuits to execute relevant programs to implement the technical solutions provided in the embodiments of this application.

[0120] The memory 620 may include read-only memory and random access memory, and provides instructions and data to the processor 610. A portion of the processor 610 may also include non-volatile random access memory. For example, the processor 610 may also store device type information.

[0121] When the computing device 600 is running, the processor 610 executes computer execution instructions stored in the memory 620 to perform any of the operational steps of the above method and any of the optional embodiments thereof.

[0122] It should be understood that the computing device 600 according to the embodiments of this application can correspond to the corresponding subject in executing the methods according to the various embodiments of this application, and the above and other operations and / or functions of each module in the computing device 600 are respectively for implementing the corresponding processes of the methods of this embodiment. For the sake of brevity, they will not be described in detail here.

[0123] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0124] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0125] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0126] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0127] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0128] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0129] This application also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, is used to perform the above-described method, which includes at least one of the schemes described in the above embodiments.

[0130] The computer storage medium in this application embodiment can be any combination of one or more computer-readable media. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. For example, a computer-readable storage medium can be, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this document, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0131] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of sending, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device.

[0132] The program code contained on a computer-readable medium may be transmitted using any suitable medium, including, but not limited to, wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.

[0133] Computer program code for performing the operations of this application can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0134] Furthermore, the terms "first, second, third, etc." or similar terms such as module A, module B, and module C used in the specification and claims are only used to distinguish similar objects and do not represent a specific ordering of objects. It is understood that, where permissible, a specific order or sequence may be interchanged so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0135] In the above description, the labels of the steps involved, such as S110, S120, etc., do not mean that the steps will necessarily be executed. The order of the steps can be interchanged or executed simultaneously if permitted.

[0136] The term "comprising" as used in the specification and claims should not be construed as limiting itself to what follows; it does not exclude other elements or steps. Therefore, it should be interpreted as specifying the presence of the mentioned feature, integral, step, or component, but does not exclude the presence or addition of one or more other features, integrals, steps, or components, or groups thereof. Thus, the statement "device comprising means A and B" should not be limited to a device consisting solely of components A and B.

[0137] The terms "an embodiment" or "an embodiment" as used in this specification mean that a particular feature, structure, or characteristic described in conjunction with that embodiment is included in at least one embodiment of this application. Therefore, the terms "in one embodiment" or "in an embodiment" appearing throughout this specification do not necessarily refer to the same embodiment, but may refer to the same embodiment. Furthermore, in one or more embodiments, the particular features, structures, or characteristics can be combined in any suitable manner, as will be apparent to those skilled in the art from this disclosure.

[0138] Note that the above are merely preferred embodiments and the technical principles employed in this application. Those skilled in the art will understand that this application is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions can be made without departing from the scope of protection of this application. Therefore, although this application has been described in detail through the above embodiments, this application is not limited to the above embodiments, and may include many other equivalent embodiments without departing from the concept of this application, all of which fall within the scope of protection of this application.

Claims

1. A message scheduling method, characterized in that, include: Scheduling requests were received from multiple ports; Determine the port group to which each port belongs, and the priority of the port group; The scheduling service is provided to each port group according to its priority. Within the port group that is provided with scheduling services, the scheduling requests of each port in the port group are responded to in sequence; Once the scheduled port has finished sending the message, it will not participate in scheduling for a set period of time in order to release the scheduling opportunity to other ports.

2. The scheduling method according to claim 1, characterized in that, All ports within the same port group have the same transmission rate; The priority order of each port group is positively correlated with the transmission rate of the ports within each port group.

3. The scheduling method according to claim 1, characterized in that, The sequential response to the scheduling requests of each port within the port group includes: The ROUND-ROBIN scheduling mechanism is used to respond to the scheduling requests of each port in the port group in sequence.

4. The scheduling method according to claim 1, characterized in that, The set duration, calculated in clock cycles, is determined using the following formula: Where min_gap is the number of clock cycles, sys_freq is the system clock frequency, IPG is the inter-packet interval, PREMBLE is the preamble used to synchronize the receiver's clock frequency, port_rate is the port's transmission rate, packet_size is the parameter for the packet size, and 8 is the multiplier factor for converting bytes to bits.

5. A message scheduling device, characterized in that, include: The receiving unit is used to receive scheduling requests from multiple ports; The determination unit is used to determine the port group to which each port belongs and the priority of the port group; A providing unit is used to provide scheduling services to each port group in sequence according to the priority of the port groups; The response unit is used to respond sequentially to the scheduling requests of each port in the port group that is provided with scheduling services. The release unit is used to release scheduling opportunities to other ports after the scheduled port has completed sending a message, so that the port will not participate in scheduling for a set period of time.

6. The scheduling device according to claim 5, characterized in that, All ports within the same port group have the same transmission rate; The priority order of each port group is positively correlated with the transmission rate of the ports within each port group.

7. The scheduling device according to claim 5, characterized in that, The providing unit is used for: The ROUND-ROBIN scheduling mechanism is used to respond to the scheduling requests of each port in the port group in sequence.

8. The scheduling device according to claim 5, characterized in that, The set duration, calculated in clock cycles, is determined using the following formula: Where min_gap is the number of clock cycles, sys_freq is the system clock frequency, IPG is the inter-packet interval, PREMBLE is the preamble used to synchronize the receiver's clock frequency, port_rate is the port's transmission rate, packet_size is the parameter for the packet size, and 8 is the multiplier factor for converting bytes to bits.

9. A computing device, characterized in that, include: processor, and A memory having program instructions stored thereon, which, when executed by the processor, cause the processor to perform the scheduling method according to any one of claims 1 to 4.

10. A storage medium, characterized in that, It stores program instructions that, when executed by a computer, cause the computer to perform the scheduling method according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • Polling method and device thereof

    CN101753246A

  • Priority grouping polling arbiter and arbitration method thereof, crossbar switch and chip

    CN114968866A