A time-sensitive network switching system based on flexible guard band

By introducing a flexible protection belt arbitration mechanism in time-sensitive networks, dynamically adjusting the protection belt length, the problem of no data transmission of some fragments in the protection belt in the prior art is solved, and bandwidth utilization is improved and data transmission delay is reduced.

CN118474059BActive Publication Date: 2025-03-07UNIV OF SCI & TECH BEIJING
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410656182.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-05-24
Publication Date
2025-03-07
Estimated Expiration
2044-05-24

AI Technical Summary

Technical Problem

In most cases, the protection band mechanisms in existing time-sensitive networks will cause some fragments in the protection band to be transmitted without data, resulting in increased data streaming delay and waste of bandwidth.

Method used

A time-sensitive network switching system based on flexible protection belts is designed. By introducing a flexible protection belt arbitration mechanism between the data scheduling module and the protection belt setting module, the protection belt length is dynamically adjusted according to the length of the data to be transmitted and the scheduling strategy to avoid unnecessary protection belt settings.

Benefits of technology

It effectively improves network bandwidth utilization, reduces the transmission delay of time-sensitive data in the network, and avoids additional delay and bandwidth waste caused by fixed protection band length.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118474059B_ABST
    Figure CN118474059B_ABST
Patent Text Reader

Abstract

The present invention discloses a time-sensitive network switching system based on flexible guard bands, belonging to the technical field of industrial Internet, the system comprises: an input module, a data scheduling module, a data cache module, a guard band setting module and an output module; wherein, data frames are input into the system by the input module; the data cache module is used to store the data frames; the data scheduling module is used to schedule the information elements corresponding to the data frames, and during the scheduling process, the guard band setting module is used to select whether to set the guard band and the set guard band length according to the length of the data to be transmitted and different scheduling strategies, and complete the guard band setting; after completing the scheduling of the information elements and the setting of the guard band, the output module outputs the corresponding data frames. The present invention can effectively improve the utilization rate of bandwidth, reduce the transmission delay of data streams, and improve the data scheduling efficiency and the utilization rate of cache resources.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of industrial Internet, and in particular to a time-sensitive network switching system based on flexible protection bands. Background Art

[0002] Time-Sensitive Networking (TSN) has deterministic latency guarantee and multi-service carrying capacity, which solves the problem of data transmission in the same network of the Industrial Internet and has become a research hotspot in industrial field networks.

[0003] In modern industrial and automotive control application scenarios, the data transmitted over the network includes critical control loop parameters such as factory or machinery operations. These data have periodic characteristics, and delayed data delivery may lead to instability, inaccuracy, and failure of control loop operations in the control system. At the same time, during data transmission, low-priority data may be transmitted before high-priority data, causing high-priority data to wait in the queue, increasing the transmission delay of high-priority data. If the transmission delay occurs on each hop, the accumulated delay will cause uncertainty in data transmission, which is unacceptable for high-priority control applications. Therefore, one of the main driving forces for the TSN working group to develop a time-aware shaper is to meet the transmission requirements of time-triggered traffic and to mix time-triggered traffic with other data services in the same network.

[0004] IEEE 802.1Qbv is one of the important core protocols of TSN. The Time Aware Shaper (TAS) is the most widely used shaping mechanism in the current research on time-sensitive network scheduling shaping mechanisms and device implementation.

[0005] The core of the time-aware shaping mechanism lies in the gating mechanism, which realizes the control of the gate state by time by setting the gating list associated with time. Figure 1As shown in the figure. It sets eight FIFO queues with fixed priorities (from the lowest 0 to the highest 7) ​​to cache packets to be scheduled. The IEEE 802.1Q standard specifies how to define the class to which a packet belongs based on the PCP and VLAN ID fields in the packet header. The class determines the priority of the packet and which queue it is sent to for caching. Generally speaking, the queue with the highest priority is assigned to the TT flow, the queues with the second highest priority are assigned to the AVB flow, and the remaining queues are assigned to the BE flow. All queues are connected to a TAS gate, and its switch state is controlled by the gate list GCL. As shown in the figure, packet queue Q7 is used to cache TT packets, and in the time period T0 to T1, the TAS gate of queue Q7 is in the open state while the gates of other queues are in the closed state, so in the time period T0 to T1, only the TT flow in Q7 can monopolize the port. Each item in the gate list corresponds to the TAS gate state of each queue in a certain period of time, which is called a time window. By allocating time windows of different lengths to different queues, TAS ultimately implements a special time division multiplexing. Finally, the scheduler selects the queue with the highest priority from all queues with both TAS gating and CBS gating turned on for scheduling. By planning a reasonable time window for TT flows to go offline, TAS can ensure that TT flows are scheduled and forwarded within a fixed time period of each hop switch, thereby ensuring end-to-end delay determinism.

[0006] However, this mode also has obvious defects. For example, at the beginning of the TT window, if there is low-priority traffic that has not yet been transmitted and the transmission is not allowed to be interrupted, it will occupy the time slot of the current TT flow, and the transmission of the TT flow may be delayed or even fail, which is unacceptable for high-priority queue data. To solve this problem, the 802.1Qbv standard proposes a guard band mechanism: the scheduler is stopped within the transmission time of a maximum Ethernet frame before the start of the next TT window, and no new frames are allowed to be transmitted. However, frames transmitted before the start of the guard band can continue to complete the transmission work within the guard band. Through the guard band mechanism, TAS can provide an exclusive, interference-free time window for TT flows.

[0007] The "time guard band" introduced in the time-aware shaping mechanism can ensure the "isolation" of high-priority queues and low-priority queues in the same sending port, ensuring that the transmission of real-time data is not affected by other traffic, but an inappropriate guard band length will inevitably cause a certain amount of bandwidth waste. In the currently formulated guard band mechanism, in order to ensure that the low-priority queue will not interfere with the data transmission of the high-priority queue in the worst case, the guard band time length is set to the maximum data frame length. This most conservative mechanism setting will cause some fragments in the guard band to have no data transmitted in most cases, thereby increasing the data flow transmission delay and wasting bandwidth. Summary of the invention

[0008] The present invention provides a time-sensitive network switching system based on flexible guard bands to solve the technical problem that the guard band mechanism in the prior art will in most cases cause some fragments in the guard band to have no data transmitted, thereby increasing the data stream transmission delay and wasting bandwidth.

[0009] In order to solve the above technical problems, the present invention provides the following technical solutions:

[0010] A time-sensitive network switching system based on flexible guard bands, comprising: an input module, a data scheduling module, a data cache module, a guard band setting module and an output module;

[0011] The data frame enters the time-sensitive network switching system based on the flexible protection band from the input module, the data scheduling module extracts the data frame information from the data frame, and uses the extracted data frame information to form an information element; wherein the information element includes the destination port, priority, queue number, data length and cache address of the data frame; the data cache module stores the complete data frame according to the cache address of the data frame;

[0012] After obtaining the information element corresponding to the data frame, the data scheduling module schedules the information element corresponding to the data frame. During the scheduling process, the guard band setting module selects whether to set the guard band and the set guard band length according to the length of the data to be transmitted and different scheduling strategies, and completes the guard band setting;

[0013] After completing the scheduling of the information element and the setting of the protection band, the data scheduling module takes out the stored data frame according to the cache address recorded in the information element, and outputs the corresponding data frame using the output module.

[0014] Furthermore, the input module includes a plurality of input ports.

[0015] Furthermore, the output module includes a plurality of output ports.

[0016] Further, the data scheduling module includes: a data frame parsing unit, an information mapping unit, an information element merging unit and an output scheduling unit; the data cache module includes: an input cache, a shared cache space, a cache space management unit and an output cache; the protection band setting module includes a secondary cache and a protection band arbitration unit;

[0017] The data frame parsing unit is used to parse and extract data frame information in the data frame; wherein the data frame information includes a destination MAC address, a priority, and a data length;

[0018] The information mapping unit is used to map the destination MAC address of the data frame to the corresponding destination port through the address lookup table, and map the priority of the data frame to the corresponding queue number according to the set mapping rule;

[0019] The information element merging unit is used to combine the destination port, priority, queue number, data length and cache address into an information element, and then put the information element into the corresponding queue according to the queue number; wherein the cache address is given by the cache space management unit according to the data length of the data frame; each port corresponds to multiple queues;

[0020] The next output information element of each queue is placed in the secondary cache in advance; the guard band arbitration unit judges the information element to be output in the secondary cache, and processes the guard band accordingly according to the judgment result;

[0021] The output scheduling unit is used to schedule the output of data using a preset priority algorithm to avoid conflicts when multiple queues of a port are opened simultaneously in a time slot;

[0022] After the data frame is input from the input port, it is first placed in the input buffer, waiting for the signal that the cache address allocation of the data frame in the shared cache space is completed. After the cache address allocation of the data frame in the shared cache space is completed, the data frame is stored in the shared cache space according to the allocated cache address;

[0023] The cache space management unit is used to record the usage of the shared cache space. When a data frame needs to be stored, the cache space management unit allocates a corresponding cache address to the data frame according to the data length; after the data frame is output from the shared cache space, it first enters the output cache corresponding to each port, and then is output from the corresponding output port by the output cache.

[0024] Furthermore, the guard band arbitration unit is specifically used to: for the queue currently transmitting, judge the information element to be output in the secondary cache at the end 1500 bytes of the transmission time slot, and select whether to set the guard band and the set guard band length based on the data length and scheduling strategy.

[0025] Furthermore, the shared cache space adopts a logical block design, and its internal storage space is logically divided into multiple storage blocks with a fixed byte size. When storing, data is stored separately in these storage blocks one by one, and the storage of data does not affect each other;

[0026] The cache space management unit assigns an independent and unique serial number value to each storage block in the shared cache space, and the serial number value is mapped to the first address of the storage block; when data needs to be stored, a corresponding number of storage blocks are allocated to the data according to the data length, and then all serial number values ​​of the required storage blocks are output. After obtaining the serial number value, the shared cache stores the data in the storage space of the corresponding address according to the serial number value.

[0027] Furthermore, judging the information element to be output in the secondary cache, and selecting whether to set a guard band and the length of the guard band in combination with the data length and the scheduling strategy, includes:

[0028] If there is no information element in the secondary cache, determine whether to end the current time slot in advance: when there is a switch from low-priority queue transmission to high-priority queue transmission, end the current time slot in advance, wait for the current data transmission to be completed, do not set the protection band and directly switch to the next time slot; otherwise, do not end the current time slot in advance, wait for new data to enter, if yes, determine whether the data to be transmitted needs a protection band, if not, wait for the end of the current time slot and switch to the next time slot without setting a protection band;

[0029] If there is an information element in the secondary cache, determine whether the data to be transmitted currently requires a protection band; if the data to be transmitted currently can be transmitted completely within the current time slot, determine that the data does not require a protection band, and directly perform data transmission at this time. After the transmission is completed, re-determine whether the subsequent data needs a protection band; if the data to be transmitted currently cannot be transmitted completely within the current time slot, determine whether to set a protection band. If the length is too long and exceeds the preset acceptable transmission time range, choose not to transmit and wait for the next cycle to transmit, so there is no need to set a protection band. At this time, wait for the data currently being transmitted to be transmitted to be completed and directly switch the gating state to enter the next time slot; if the data length is within the preset acceptable transmission time range, choose to transmit, and set the protection band length according to the data length. After the protection band time ends, switch to the next gating state;

[0030] Among them, the method for setting the protection band length is: before the information element in the secondary cache starts to be output, the remaining gate opening time at this time is compared with the transmission time corresponding to the data length, and the part of the data transmission time that is greater than the gate opening time is set as the protection band length. The protection band length changes with the data length.

[0031] Furthermore, the processing flow of the data frame by the time-sensitive network switching system based on the flexible protection band includes:

[0032] After a data frame is input from an input port, the data frame parsing unit parses it to obtain the data frame information, the information mapping unit maps the data frame information to obtain the information required for data scheduling, and then the information element merging unit generates an information element corresponding to the data frame; the data stream corresponding to the data frame first enters the input cache, and after the cache space management unit allocates a cache address for it according to the data length, it is stored in the shared cache space according to the cache address; the information element is stored in the priority queue of the corresponding port according to the destination port and the priority mapping rule, and the first output information element is placed in the secondary cache; according to the state of the gated list, each priority queue starts to output the information element, and when outputting, the protection band arbitration unit arbitrates the information element to be transmitted in the secondary cache and sets the protection band; after passing through the output scheduling unit, the information element outputs the complete data frame from the shared cache space to the output cache according to the cache address of the data frame, and finally outputs it from the output port.

[0033] Aiming at the core time-aware shaping mechanism in TSN, the present invention proposes a flexible guard band mechanism in a time-sensitive network, so that the guard band length is not fixed, and can be flexibly set according to the length of the data to be forwarded and the scheduling strategy, thereby improving the network bandwidth utilization rate; using shared cache and independent fifo queues of each port to implement the TAS mechanism for real-time scheduling and deterministic forwarding of data of each priority level, the shared cache adopts a logical block design to subdivide the cache resources, thereby improving the resource utilization rate. The beneficial effects brought by this include at least:

[0034] 1. Flexible guard band mechanism for time-sensitive networks: To address the problem of fixed-length guard bands set in the current implementation of time-aware shaping mechanisms, a secondary cache module and a guard band arbitration module are introduced behind each port queue. For the queue currently transmitting, the data to be transmitted in the secondary cache is judged at the end of the transmission time slot at 1500 bytes. Combined with the data length information and the scheduling strategy, it can be selected whether to set a guard band and the length of the guard band to be set, which can effectively improve bandwidth utilization and reduce the transmission delay of time-sensitive data in the network.

[0035] 2. Shared cache and independent fifo queues for each port: Based on the mechanism of scheduling the data control information in the fifo queue and using the shared cache for data caching, the data control capability and scheduling efficiency are improved. The shared cache is logically divided into small storage blocks with a fixed byte size. The corresponding number of storage blocks are called for storage according to the data length. The storage resources are subdivided and called, which improves the utilization of the cache space. BRIEF DESCRIPTION OF THE DRAWINGS

[0036] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0037] Figure 1 It is a schematic diagram of the Qbv standard scheduling structure;

[0038] Figure 2 is a diagram of the architecture of a time-sensitive network switching system based on flexible protection bands provided by an embodiment of the present invention;

[0039] Figure 3 It is a working flow diagram of a time-sensitive network switching system based on flexible protection bands provided by an embodiment of the present invention;

[0040] Figure 4 It is a schematic diagram of the constituent elements of an information element provided by an embodiment of the present invention;

[0041] Figure 5 is a flowchart of a guard band arbitration process provided by an embodiment of the present invention;

[0042] Figure 6 is a comparison diagram of the guard band mechanism provided by an embodiment of the present invention;

[0043] Figure 7 is a schematic diagram of a data transmission process with a flexible guard band provided in an embodiment of the present invention;

[0044] Figure 8 It is a schematic diagram of a data transmission process without setting a guard band provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0045] In order to make the objectives, technical solutions and advantages of the present invention more clear, the embodiments of the present invention will be further described in detail below with reference to the accompanying drawings.

[0046] First of all, it should be noted that in the embodiments of the present invention, words such as "exemplarily" and "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described as "exemplary" in the present invention should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of the word "exemplarily" is intended to present the concept in a concrete way. In addition, in the embodiments of the present invention, the meaning expressed by "and / or" can be both, or it can be either of the two.

[0047] In order to avoid the bandwidth waste of the traditional guard band mechanism, this embodiment improves the conventional time-aware shaping mechanism scheme so that it can flexibly modify the guard band according to the data frame information waiting to be transmitted in the queue. Therefore, a flexible guard band mechanism in a time-sensitive network is designed, so that the guard band length does not have to be limited by the maximum fixed length, and can adapt to the actual data transmission situation and improve the utilization of transmission resources; and based on this, a time-sensitive network switching system based on a flexible guard band is proposed. On the basis of realizing the IEEE802.1Qbv time-aware shaping mechanism, the guard band length can be flexibly adjusted according to different scheduling strategies, effectively improving the utilization of bandwidth and reducing the delay of data flow in end-to-end transmission; and the data switching architecture of shared cache plus port independent queue is used to improve data scheduling efficiency and cache resource utilization.

[0048] The time-sensitive network switching system architecture based on flexible protection bands in this embodiment is as follows: Figure 2 As shown, it includes: an input module, a data scheduling module, a data cache module, a protection band setting module and an output module; in this switching architecture, the processing of a data frame is divided into two parts: the control flow corresponding to the data frame and the data flow itself. The control flow is composed of key information extracted from a data frame, including the forwarding destination port, priority, queue number, storage address of the data in the shared cache and other information of the data. A piece of data composed of this information is called an information element. The information element contains all the key information of the corresponding data flow. At the same time, the size of an information element is 56 bytes, which can be easily scheduled inside the switch instead of the data flow itself. When the information element is scheduled and the protection band is set inside the switch for output, the data flow is output from the shared cache space according to the data storage address recorded in the information element. Among them, the functions of each module are as follows:

[0049] The data frame enters the time-sensitive network switching system based on the flexible protection band from the input module, the data scheduling module extracts the data frame information from the data frame, and uses the extracted data frame information to form an information element; wherein the information element includes the destination port, priority, queue number, data length and cache address of the data frame; the data cache module stores the complete data frame according to the cache address of the data frame;

[0050] After obtaining the information element corresponding to the data frame, the data scheduling module schedules the information element corresponding to the data frame. During the scheduling process, the guard band setting module selects whether to set the guard band and the set guard band length according to the length of the data to be transmitted and different scheduling strategies, and completes the guard band setting;

[0051] After completing the scheduling of the information element and the setting of the protection band, the data scheduling module takes out the stored data frame according to the cache address recorded in the information element, and outputs the corresponding data frame using the output module.

[0052] Specifically, in this embodiment, the input module includes multiple input ports; the output module includes multiple output ports; the data scheduling module includes: a data frame parsing unit, an information mapping unit, an information element merging unit and an output scheduling unit; the data cache module includes: an input cache, a shared cache space, a cache space management unit and an output cache; the protection band setting module includes a secondary cache and a protection band arbitration unit.

[0053] Data frame parsing unit: used to parse and extract key information in the data frame, such as destination port, priority, data length, etc.;

[0054] Information mapping unit: used to obtain the corresponding forwarding destination port by using the address lookup table to obtain the destination MAC address in the extracted data frame, obtain the corresponding queue number according to the priority of the data frame according to the set mapping rule, and the cache address in the shared cache is given by the cache space management module according to the data length;

[0055] Information element merging unit: used to obtain all key information and combine them into an information element of a data frame. The composition of the information element is as follows: Figure 4 As shown;

[0056] Port queue: put the information element into the corresponding queue according to its queue number;

[0057] L2 cache: The next output information element of each queue is placed in the L2 cache in advance. The guard band arbitration unit can make further judgments on the guard band according to the data in the L2 cache.

[0058] Guard band arbitration unit: This module judges the information elements to be output in the secondary cache and processes the guard band accordingly according to the judgment result;

[0059] Output scheduling unit: When multiple queues of a port are opened at the same time in a time slot, the data output needs to be scheduled to avoid conflicts. The output scheduling unit uses a strict priority algorithm for scheduling, and data with higher queue priority is transmitted first;

[0060] Input cache: After data enters from the input port, it is first placed in the input cache, waiting for the signal that the address allocation of the data in the shared cache is completed. After receiving the signal, the data is stored in the shared cache according to the address;

[0061] Shared cache: Shared cache is used to store all data. The storage space inside the shared cache is logically divided into storage spaces with a fixed byte size. Data is stored separately in these storage spaces, and the storage of data does not affect each other. The storage space is divided into appropriate blocks, which can greatly improve storage efficiency and resource utilization.

[0062] Cache space management unit: used to record the usage of shared cache. The cache space management unit assigns an independent and unique serial number value to each logical block in the shared cache. The serial number value is mapped to the first address of the block, that is, the corresponding cache space can be used to store data through the serial number value. When data needs to be stored, the corresponding number of storage blocks is allocated to the data according to the data length, and then all the serial number values ​​of the required storage blocks are output. After the shared cache module obtains the serial number value, it can store the data in the space of the corresponding address;

[0063] Output cache: After the data is output from the shared cache, it enters the output cache corresponding to each port, and the data is finally output from the output cache from the corresponding port.

[0064] Furthermore, the function of the guard band arbitration unit is mainly to arbitrate the next data stream to be transmitted in the queue. The arbitration result is used to set the flexible guard band. By default, the set length of the guard band is a fixed maximum Ethernet frame length to ensure that the transmission of time-sensitive streams is not affected in the worst case.

[0065] The specific arbitration method is: since there is 1500 bytes of transmission time left in the current time slot gate opening time, that is, the maximum data frame transmission time, if there is data being transmitted, it must be transmitted before the end of the time slot; if the data starts to be transmitted during this period, it is possible that it will not be transmitted at the end of the time slot and the protection band will be needed. Therefore, when the remaining time of the current gated time slot is 1500 bytes of transmission time, the secondary cache corresponding to the queue currently transmitting begins to be judged, and the judgment situation may be:

[0066] (1) If there is no information element in the L2 cache, that is, the L2 cache state is empty, determine whether to end the current time slot in advance:

[0067] 1) End the time slot in advance. After the currently transmitted data is completed, no protection band is set and the next time slot is switched directly. This judgment mode is suitable for the case where the transmission of the low-priority queue is switched to the transmission of the high-priority queue, that is, the transmission of the low-priority data that arrives in the last short period of time is sacrificed to strictly guarantee the low-latency deterministic transmission of the high-priority data.

[0068] 2) Do not end the time slot in advance. Wait for new data to enter. If yes, determine whether the data transmission needs a guard band. If no, wait for the current time slot to end and switch to the next time slot without setting a guard band.

[0069] (2) If there are information elements in the L2 cache, that is, if the L2 cache is full, determine whether the data to be transmitted in the L2 cache requires a protection band:

[0070] 1) Data does not need a guard band and can be transmitted in the current time slot. At this time, data is directly transmitted, and the subsequent incoming data is re-determined after the transmission is completed.

[0071] 2) The data requires a protection band. The data cannot be transmitted completely in the current time slot. At this time, a determination is made as to whether to set a protection band. If the length is too long and exceeds the acceptable transmission time range, you can choose not to transmit and wait for the next cycle to transmit, so there is no need to set a protection band. At this time, after waiting for the currently transmitted data stream to be completed, the gating state can be switched directly to enter the next time slot. If the data length is within an acceptable range, transmission is selected, and a flexible protection band length is set according to the data length. After the protection band time ends, switch to the next gating state. Among them, in this embodiment, the specific setting method of the protection band is as follows: before the information element in the secondary cache starts to be output, the remaining gate opening time at this time is compared with the transmission time corresponding to the data length, and the part of the data transmission time that is greater than the gate opening time is set as the protection band length. The protection band length changes with the data length. Its workflow is as follows: Figure 5 shown.

[0072] Based on the above, the data processing flow of the time-sensitive network switching system is as follows: Figure 3 As shown, it includes: after data enters from an input port, the data frame parsing unit parses to obtain key information, maps the key information to obtain the information required for data scheduling and merges it into an information element corresponding to a data frame. The data stream itself first enters the input cache, and after the cache space management unit allocates a corresponding number of cache block addresses according to the data length, it is stored in the corresponding cache block in the shared cache space according to the address. The merged information element is stored in the priority queue of the corresponding port according to the destination port and the priority mapping rule, and the first output information element is placed in the secondary cache. According to the state of the gated list, each priority queue starts to output the information element. When outputting, the protection band arbitration unit arbitrates the information element to be transmitted in the secondary cache and sets a flexible protection band. After passing through the output scheduling unit, the information element outputs the complete data frame from the shared cache space module to the output cache according to the data storage address, and finally outputs it from the output port. Among them, the protection band arbitration unit works in the corresponding time period and is inactive in the remaining time periods.

[0073] Based on the above, the flexible guard band mechanism designed in this embodiment can adjust the fixed guard band length of the conventional guard band mechanism to a variable guard band length, or directly perform internship switching without setting guard bands in two time slots as needed. The comparison between the flexible guard band mechanism and the conventional guard band mechanism is as follows: Figure 6 shown.

[0074] The following is an example of the guard band arbitration workflow of the present invention: at time slot T1, queue 1 is gated on, and when there is a maximum Ethernet frame transmission time (1500 bytes transmission time) left during the gated on time, the guard band arbitration module starts to detect and judge the secondary cache. When there is 1500 bytes of transmission time left, it is detected that the secondary cache of queue 1 is empty, and the detection state is maintained. At this time, there are two options:

[0075] (1) Stop transmitting new data and directly switch time slots after the currently transmitted data is completed. There is no need to set a protection band.

[0076] (2) Continue to check the L2 cache and make judgments on the data that arrives later. For example, when there is 800 bytes of transmission time left, it is detected that there is data in the L2 cache of queue 1. At this time, the data length information is read. At the same time, there is data in queue 1 being transmitted. There are two judgment results at this time. Result 1 is that the data length is long enough to be transmitted in the current time slot, so it is directly transmitted. After the transmission is completed, it returns to the detection state of the L2 cache; Result 2 is that the data length cannot be transmitted in the current time slot. At this time, there are two options:

[0077] 1) Set flexible guard band: After reading the data length information (700 bytes of transmission time) in the secondary cache, wait for the previous data stream to be transmitted, and compare the remaining time of the time slot (500 bytes of transmission time) with the transmission time required for the data length (700 bytes of transmission time). After calculation, it is found that a guard band with a transmission time length of 200 bytes needs to be added. After the current time slot ends, a guard band with a transmission time length of 200 bytes is added to the back. After the guard band ends, the transmission of time slot T2 starts. The process is as follows: Figure 7 shown.

[0078] 2) No guard band is set: After reading the data length information (700 bytes transmission time) in the secondary cache, choose not to transmit the next data, and wait for the data currently being transmitted to be completed when there are 500 bytes left, and then directly switch the time slot. The process is as follows: Figure 8 shown.

[0079] In summary, this embodiment provides a time-sensitive network switching system based on flexible protection bands, which improves the conventional time-aware shaping mechanism, and adds a secondary cache module and a protection band arbitration module behind each port and each priority queue in the designed time-sensitive network switching architecture, wherein the secondary cache stores the information element corresponding to a data frame to be output, and the protection band arbitration module can make a judgment in advance based on the information element of the data frame stored in the secondary cache, whether it is necessary to increase or shorten the length of the protection band when transmitting the next data stream, or choose not to transmit and directly delete the protection band. This design can make the protection band design in the time-aware shaping mechanism not limited by a fixed length, thereby effectively reducing the extra delay and bandwidth waste caused by the fixed protection band length, improving the bandwidth utilization in the network, and thus improving the transmission efficiency of the entire network.

[0080] In addition, it should be noted that the present invention can be provided as a method, an apparatus or a computer program product. Therefore, the embodiment of the present invention can be in the form of a full or partial hardware embodiment, a full or partial software embodiment or an embodiment combining software and hardware. Moreover, when implemented using software, the embodiment of the present invention can be in the form of a computer program product implemented on one or more computer-usable storage media containing computer-usable program codes. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, the process or function described in the embodiment of the present invention is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center by wired (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center containing one or more available media sets. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium. The semiconductor medium may be a solid state drive.

[0081] The embodiments of the present invention are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0082] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device, so that a series of operation steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable terminal device provide for implementing the process in the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0083] It should also be noted that, in this article, the terms "include", "comprise" or any other variant thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "include one..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements. In addition, the term "and / or" is only a description of the association relationship of the associated objects, indicating that there may be three relationships, for example, A and / or B, which can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. In addition, the character " / " in this article generally indicates that the associated objects before and after are in an "or" relationship, but it may also indicate an "and / or" relationship, which can be understood by referring to the context before and after. "At least one" means one or more, and "more" means two or more. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, c can be single or plural.

[0084] In addition, it can be understood that in various embodiments of the present invention, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.

[0085] Those skilled in the art will appreciate that the units and algorithm steps of each example 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 performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention.

[0086] In several embodiments provided by the present invention, it should be understood that the disclosed equipment, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic, for example, the division of functional modules / units is only a logical function division, and there may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed. Another point, the coupling or direct coupling or communication connection between each other shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms. The unit described as a separate component may or may not be physically separated, and the component displayed as a unit may or may not be a physical unit, that is, it may be located in one place, or it may be distributed on multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the scheme of this embodiment. In addition, each functional unit in each embodiment of the present invention can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit.

[0087] If the method is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0088] Finally, it should be noted that the above is only a preferred embodiment of the present invention. It should be pointed out that although the preferred embodiment of the present invention has been described, for ordinary technicians in this technical field, once the basic creative concept of the present invention is known, several improvements and modifications can be made without departing from the principles of the present invention. These improvements and modifications should also be regarded as the protection scope of the present invention. Therefore, the attached claims are intended to be interpreted as including the preferred embodiment and all changes and modifications that fall within the scope of the embodiments of the present invention.

Claims

1. A time-sensitive network switching system based on flexible guard bands, characterized in that: include: Input module, data scheduling module, data cache module, guard band setting module and output module; The data frame enters the time-sensitive network switching system based on the flexible protection band from the input module, the data scheduling module extracts the data frame information from the data frame, and uses the extracted data frame information to form an information element; wherein the information element includes the destination port, priority, queue number, data length and cache address of the data frame; the data cache module stores the complete data frame according to the cache address of the data frame; After obtaining the information element corresponding to the data frame, the data scheduling module schedules the information element corresponding to the data frame. During the scheduling process, the guard band setting module selects whether to set the guard band and the set guard band length according to the length of the data to be transmitted and different scheduling strategies, and completes the guard band setting; After completing the scheduling of the information element and the setting of the protection band, the data scheduling module takes out the stored data frame according to the cache address recorded in the information element, and uses the output module to output the corresponding data frame.

2. The time-sensitive network switching system based on flexible protection band according to claim 1, characterized in that: The input module includes a plurality of input ports.

3. The time-sensitive network switching system based on flexible protection band according to claim 2, characterized in that: The output module includes a plurality of output ports.

4. The time-sensitive network switching system based on flexible protection band according to claim 3, characterized in that: The data scheduling module includes: a data frame parsing unit, an information mapping unit, an information element merging unit and an output scheduling unit; the data cache module includes: an input cache, a shared cache space, a cache space management unit and an output cache; the protection band setting module includes a secondary cache and a protection band arbitration unit; The data frame parsing unit is used to parse and extract data frame information in the data frame; wherein the data frame information includes a destination MAC address, a priority, and a data length; The information mapping unit is used to map the destination MAC address of the data frame to the corresponding destination port through the address lookup table, and map the priority of the data frame to the corresponding queue number according to the set mapping rule; The information element merging unit is used to combine the destination port, priority, queue number, data length and cache address into an information element, and then put the information element into the corresponding queue according to the queue number; wherein the cache address is given by the cache space management unit according to the data length of the data frame; each port corresponds to multiple queues; The next output information element of each queue is placed in the secondary cache in advance; the guard band arbitration unit judges the information element to be output in the secondary cache, and performs corresponding processing on the guard band according to the judgment result; The output scheduling unit is used to schedule the output of data using a preset priority algorithm to avoid conflicts when multiple queues of a port are opened simultaneously in a time slot; After the data frame is input from the input port, it is first placed in the input buffer, waiting for the signal that the cache address allocation of the data frame in the shared cache space is completed. After the cache address allocation of the data frame in the shared cache space is completed, the data frame is stored in the shared cache space according to the allocated cache address; The cache space management unit is used to record the usage of the shared cache space. When a data frame needs to be stored, a corresponding cache address is allocated to the data frame according to the data length. After the data frame is output from the shared cache space, it first enters the output cache corresponding to each port and then is output from the corresponding output port.

5. The time-sensitive network switching system based on flexible protection band according to claim 4, characterized in that: The guard band arbitration unit is specifically used to: for the queue currently transmitting, judge the information element to be output in the secondary cache at the end of the transmission time slot 1500 bytes, and select whether to set the guard band and the set guard band length in combination with the data length and scheduling strategy.

6. The time-sensitive network switching system based on flexible protection band according to claim 4, characterized in that: The shared cache space adopts a logical block design, and its internal storage space is logically divided into multiple storage blocks with a fixed byte size. When storing, data is stored separately in these storage blocks one by one, and the storage of data does not affect each other; The cache space management unit assigns an independent and unique serial number value to each storage block in the shared cache space, and the serial number value is mapped to the first address of the storage block; when data needs to be stored, a corresponding number of storage blocks are allocated to the data according to the data length, and then all serial number values ​​of the required storage blocks are output. After obtaining the serial number value, the data is stored in the storage space of the corresponding address according to the serial number value.

7. The time-sensitive network switching system based on flexible protection band according to claim 5, characterized in that: The step of judging the information element to be output in the secondary cache and selecting whether to set a guard band and the length of the guard band in combination with the data length and the scheduling strategy includes: If there is no information element in the secondary cache, determine whether to end the current time slot in advance: when there is a switch from low-priority queue transmission to high-priority queue transmission, end the current time slot in advance, wait for the current data transmission to be completed, do not set the protection band and directly switch to the next time slot; otherwise, do not end the current time slot in advance, wait for new data to enter, if yes, determine whether the data to be transmitted needs a protection band, if not, wait for the end of the current time slot and switch to the next time slot without setting a protection band; If there is an information element in the secondary cache, determine whether the data to be transmitted currently requires a protection band; if the data to be transmitted currently can be transmitted completely within the current time slot, determine that the data does not require a protection band, and directly perform data transmission at this time. After the transmission is completed, re-determine whether the subsequent data needs a protection band; if the data to be transmitted currently cannot be transmitted completely within the current time slot, determine whether to set a protection band. If the data length exceeds the preset acceptable transmission time range, choose not to transmit and wait for the next cycle to transmit, so there is no need to set a protection band. At this time, wait for the data currently being transmitted to be transmitted to be completed and directly switch the gating state to enter the next time slot; if the data length is within the preset acceptable transmission time range, choose to transmit, and set the protection band length according to the data length. After the protection band time ends, switch to the next gating state; Among them, the method for setting the protection band length is: before the information element in the secondary cache starts to be output, the remaining gate opening time at this time is compared with the transmission time corresponding to the data length, and the part of the data transmission time that is greater than the gate opening time is set as the protection band length. The protection band length changes with the data length.

8. The time-sensitive network switching system based on flexible guard band according to claim 6, characterized in that: The processing flow of the data frame by the time-sensitive network switching system based on the flexible protection band includes: After a data frame is input from an input port, the data frame parsing unit parses it to obtain the data frame information, the information mapping unit maps the data frame information to obtain the information required for data scheduling, and then the information element merging unit generates an information element corresponding to the data frame; the data stream corresponding to the data frame first enters the input cache, and after the cache space management unit allocates a cache address for it according to the data length, it is stored in the shared cache space according to the cache address; the information element is stored in the priority queue of the corresponding port according to the destination port and the priority mapping rule, and the first output information element is placed in the secondary cache; according to the state of the gated list, each priority queue starts to output the information element, and when outputting, the protection band arbitration unit arbitrates the information element to be transmitted in the secondary cache and sets the protection band; after passing through the output scheduling unit, the information element outputs the complete data frame from the shared cache space to the output cache according to the cache address of the data frame, and finally outputs it from the output port.

Citation Information

Patent Citations

  • Time-sensitive network switching architecture based on virtual queue

    CN113821516A

  • Data transmission method and device based on time-sensitive network, and electronic equipment

    CN114205310A