WO2024232600A1 - Method and device for ultra-low latency packet scheduling based on hardware-implemented mode - Google Patents
Method and device for ultra-low latency packet scheduling based on hardware-implemented mode Download PDFInfo
- Publication number
- WO2024232600A1 WO2024232600A1 PCT/KR2024/005972 KR2024005972W WO2024232600A1 WO 2024232600 A1 WO2024232600 A1 WO 2024232600A1 KR 2024005972 W KR2024005972 W KR 2024005972W WO 2024232600 A1 WO2024232600 A1 WO 2024232600A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mode
- packet
- module
- packet processing
- implemented
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 186
- 230000008569 process Effects 0.000 claims abstract description 20
- 230000000644 propagated effect Effects 0.000 claims abstract description 4
- 230000008859 change Effects 0.000 claims description 65
- 230000015654 memory Effects 0.000 claims description 63
- 230000006399 behavior Effects 0.000 claims description 57
- 238000012544 monitoring process Methods 0.000 claims description 36
- 230000000737 periodic effect Effects 0.000 claims description 12
- 238000005111 flow chemistry technique Methods 0.000 claims description 9
- 230000001902 propagating effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 45
- 230000009471 action Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000011160 research Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000008054 signal transmission Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Definitions
- the present invention relates to a packet scheduling device and method, and more particularly, to a mode-based ultra-low latency (ULL) packet scheduling device and method, and more particularly, to a hardware-implemented mode-based ultra-low latency packet scheduling device and method.
- UDL ultra-low latency
- the present invention was supported by the group research support of the Ministry of Science and ICT (Project Unique Number: 1711137721, Project Number: 2021R1A4A1032252, Research Project Title: Embedded Cluster Computing and Deep Learning Lightweight Technology for Low-Cost, High-Reliability Autonomous Vehicles, Project Management Agency: National Research Foundation of Korea, Project Execution Agency: Soongsil University Industry-Academic Cooperation Foundation, Research Period: 2021.06.01 ⁇ 2024.02.29) and the Information and Communication Broadcasting Innovation Talent Development (Project Unique Number: 1711174068, Project Number: IITP-2024-RS-2022-00156360, Research Project Title: Regional Intelligence Innovation Talent Development, Project Management Agency: Information and Communication Planning and Evaluation Institute, Project Execution Agency: Soongsil University Industry-Academic Cooperation Foundation, Research Period: 2022.07.01 ⁇ This is derived from research conducted as part of the 2029.12.31). Meanwhile, there is no property interest of the Korean government in any aspect of the present invention.
- SDN software-defined networking
- a network switch queries a higher-level SDN control device about the signal transmission mode, and the SDN control device then remotely controls the signal transmission mode to control the switching process.
- the software-defined network method cannot guarantee ultra-low latency (ULL) switching delay in a vehicle.
- a network switching method is required in situations where ultra-low latency switching delay must be guaranteed, such as in autonomous vehicles.
- the present invention provides a mode-based ultra-low-latency packet scheduling device and a mode-based ultra-low-latency packet scheduling method implemented in hardware.
- the present invention provides a hardware-implemented mode-based ultra-low latency packet scheduling device and a hardware-implemented mode-based ultra-low latency packet scheduling method, which are configured to perform parallel processing of a packet processing mode change of a network switch based on hardware, thereby enabling ultra-low latency mode change.
- the present invention provides a hardware-implemented mode-based ultra-low-latency packet scheduling device and a hardware-implemented mode-based ultra-low-latency packet scheduling method that can implement a safe and smooth autonomous driving process by being configured to be able to change modes immediately with almost no mode change delay in an emergency situation such as an autonomous vehicle, and that has the effect of enabling efficient network switching with limited resources.
- a hardware-implemented mode-based ultra-low-latency packet scheduling device may be configured to include an input interface module that receives a packet stream from a plurality of input devices; a packet processing module that processes the packet stream received from the input interface module; a mode management module that changes and sets a packet processing mode in real time based on a processing result of the packet stream by the packet processing module; an output decision module that sets and outputs a packet priority according to the packet processing mode changed in real time by the mode management module; an output queue module that stores packets whose priorities are set by the output decision module; and an output interface module that outputs packets stored in the output queue module to a corresponding output device according to the priorities.
- the packet processing module may be implemented as a logic circuit in an FPGA (field programmable gate array) on the NIC (network interface controller) card, and may be configured to simultaneously and in parallel parse and identify each field header of a packet stream input from the input interface module using a plurality of multiplexers provided in the FPGA.
- FPGA field programmable gate array
- NIC network interface controller
- the mode management module may be configured to request propagation of the packet processing mode set to be changed in real time to another switch device.
- the mode management module may be configured to further include a mode propagation module that propagates the mode to the other switch device at the request of the mode management module.
- control interface module that receives an OpenFlow or similar control message from an SDN (software defined network) control device and inputs it into the mode management module.
- SDN software defined network
- the mode management module may be configured to operate according to an openflow message received from the SDN control device.
- the packet processing module may be configured to include a lookup table memory in which a lookup table regarding a packet processing mode is stored; a flow behavior monitoring unit that identifies each field header to be parsed by referring to the lookup table stored in the lookup table memory, determines whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and, if the determination result is violated, generates a violation message and outputs it in real time to the mode management module.
- a lookup table memory in which a lookup table regarding a packet processing mode is stored
- a flow behavior monitoring unit that identifies each field header to be parsed by referring to the lookup table stored in the lookup table memory, determines whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and, if the determination result is violated, generates a violation message and outputs it in real time to the mode management module.
- the flow behavior monitoring unit may be configured to match each of the parsed field headers with a header of the lookup table, extract overlapping candidate rules among packet processing candidate rules (forwarding rules) specified in each matched header, and determine a packet processing rule corresponding to the current flow processing among the extracted candidate rules.
- the flow behavior monitoring unit may be configured to determine that a current packet processing mode is violated if the flow generates more messages than the conditions of the current packet processing mode.
- the above mode management module provides the guide time of the current mode.
- the above flow behavior monitoring unit In Guide time of the current mode for the th periodic message It is calculated according to the following mathematical formula, [Mathematical formula]
- the flow In is the arrival time of the second message, is the release jitter of each periodic message, is the flow
- the current mode cycle is in , and the above If the arrival time of the th message is less than the guide time, the message is determined to indicate an action in the emergency mode, or if the size of the message is greater than a size condition of the current mode, the message is determined to indicate an action in the emergency mode, and if it is determined to indicate an action in the emergency mode, it can be configured to determine a mode violation.
- the guide time of the current mode can be expressed not only by the above mathematical formula but also by any other mathematical formula that limits the arrival time of a packet.
- the mode management module may be configured to include a shadow table memory in which a shadow table corresponding to a packet processing mode is stored; and a mode change handling unit that swaps the shadow table stored in the shadow table memory with a lookup table of the lookup table memory and stores the shadow table as a lookup table in the lookup table memory to change the packet processing mode corresponding to a violation message output in real time from the flow behavior monitoring unit by referring to the shadow table stored in the shadow table memory.
- the mode management module may be configured to include a shadow table memory storing a shadow table including packet processing rules corresponding to packet processing modes; a mode change handling unit that changes the packet processing mode corresponding to a violation message output in real time from the flow behavior monitoring unit by referring to the shadow table stored in the shadow table memory, and swaps the corresponding shadow table stored in the shadow table memory with a lookup table of the lookup table memory for mode change and stores the shadow table as a lookup table in the lookup table memory.
- the mode change handling unit can be configured to, when the flow behavior monitoring unit determines a mode violation, identify a suitable change candidate mode in the flow behavior monitoring unit and change the current packet processing mode to the candidate mode.
- the output queue module may be configured to include a plurality of priority-based output queues in which packets are stored for each input device.
- the output interface module may be configured to include a plurality of output interface units that each output packet stored in an output queue of the output queue module to a corresponding output device.
- a hardware-implemented mode-based ultra-low-latency packet scheduling method may be configured to include the steps of: an input interface module provided in a network interface controller (NIC) card receiving a packet stream from a plurality of input devices; a packet processing module implemented in a field programmable gate array (FPGA) on the NIC card processing the packet stream received from the input interface module; a mode management module implemented in the FPGA on the NIC card changing and setting a packet processing mode in real time based on a processing result of the packet stream by the packet processing module; a step of an output decision module implemented in the FPGA on the NIC card setting and outputting a packet priority according to the packet processing mode changed in real time by the mode management module and storing the output in an output queue module on a memory; and a step of an output interface module provided on the NIC card outputting the packets stored in the output queue module to a corresponding output device according to the priorities.
- NIC network interface controller
- FPGA field programmable gate array
- the step of processing the packet stream input from the input interface module by the packet processing module implemented in the FPGA on the NIC card may be configured to simultaneously and in parallel parse and identify each field header of the packet stream input from the input interface module by using a plurality of multiplexers provided in the FPGA.
- a mode management module implemented in an FPGA on a NIC card may be configured to request propagation of the packet processing mode set to be changed in real time to other switching devices.
- the mode propagation module provided on the NIC card may be configured to further include a step of propagating the corresponding mode to the other switch device according to a request of the mode management module.
- the step of processing the packet stream input from the input interface module by the packet processing module implemented in the FPGA on the NIC card may be configured to identify each field header being parsed by referring to a lookup table stored in a lookup table memory, determine whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and if the determination result is violated, generate a violation message and output it to the mode management module in real time.
- the step of processing the packet stream input from the input interface module by the packet processing module implemented in the FPGA on the NIC card includes matching each of the parsed field headers with the header of the lookup table, extracting overlapping candidate rules among packet processing candidate rules specified in each matched header, determining a packet processing rule corresponding to the current flow processing among the extracted candidate rules, and determining the guide time of the current mode.
- the step of changing and setting the packet processing mode in real time based on the result of processing the packet stream of the packet processing module by the mode management module implemented in the FPGA on the NIC card may be configured to swap the shadow table stored in the shadow table memory with the lookup table of the lookup table memory and store it as a lookup table in the lookup table memory in order to change the packet processing mode to a packet corresponding to a violation message output in real time from the flow behavior monitoring unit by referring to the shadow table stored in the shadow table memory.
- the step of processing a packet stream input from the input interface module by the packet processing module implemented in the FPGA on the NIC card may be configured to determine that the current packet processing mode is violated if the flow generates more messages than the condition of the current packet processing mode.
- the packet processing module flows In Guide time of the current mode for the th periodic message It is calculated according to the following mathematical formula, [Mathematical formula] Here, is the flow In is the arrival time of the second message, is the release jitter of each periodic message, is the flow The current mode cycle can be in .
- the packet processing module is If the arrival time of the th message is less than the guide time, the message is determined to indicate an action in the emergency mode, if the size of the message is greater than a size condition of the current mode, the message is determined to indicate an action in the emergency mode, and if it is determined to indicate an action in the emergency mode, it can be configured to determine a mode violation.
- the guide time of the current mode can be expressed not only by the above mathematical formula but also by any other mathematical formula that limits the arrival time of a packet.
- a mode change of an ultra-low latency mode can be achieved by configuring a network switch to perform parallel processing based on hardware for changing the packet processing mode.
- a safe and smooth autonomous driving process can be implemented by configuring the mode to be changed immediately with almost no delay in changing the mode in an emergency situation such as an autonomous vehicle, and efficient network switching can be performed with limited resources.
- FIG. 1 is a block diagram illustrating the basic concept of a mode-based ultra-low-latency packet scheduling device in a hardware implementation manner according to one embodiment of the present invention.
- FIG. 2 is a block diagram of a mode-based ultra-low-latency packet scheduling device in a hardware implementation manner according to one embodiment of the present invention.
- FIG. 3 is a schematic diagram of a packet processing process according to one embodiment of the present invention.
- FIG. 4 is an example diagram of signal processing for mode change according to one embodiment of the present invention.
- Figure 5 is a contrast graph of the mode change delay of a single switch for slow pass.
- Figure 6 is a comparative graph of the mode change delay of a single switch for fast pass.
- Figure 7 is a comparative graph of the mode change delay of a single switch for the Berry Fast Pass.
- Figure 8 is a contrast graph of the mode change delay of the triple switch for slow pass.
- Figure 9 is a comparative graph of the mode change delay of the triple switch for the fast pass.
- Figure 10 is a contrast graph of the mode change delay of the triple switch for the Berry Fast Pass.
- Figure 11 is a contrast graph of the time until mode change after HI action detection for a fast pass.
- Figure 12 is a contrast graph of the time until mode change after HI action detection for Berry Fast Pass.
- FIG. 13 is a flowchart of a mode-based ultra-low-latency packet scheduling method in a hardware implementation manner according to one embodiment of the present invention.
- part refers to a unit that processes at least one function or operation, and may refer to, for example, software, an FPGA, or a hardware component.
- the function provided by the “part” or “module” may be performed separately by a plurality of components, or may be integrated with other additional components.
- the “part” or “module” as used herein is not necessarily limited to software or hardware, and may be configured to be on an addressable storage medium, or may be configured to cause one or more processors to reproduce.
- FIG. 1 is a block diagram illustrating the basic concept of a mode-based ultra-low-latency packet scheduling device in a hardware implementation manner according to one embodiment of the present invention.
- SDN software-defined network
- SDN software-defined network
- Ethernet switch 10A
- the Ethernet switch (10) is connected to numerous other Ethernet switches (10A)
- the SDN control device (20) is configured to control the network switching of these Ethernet switches (10) (10A).
- Ethernet switches (10)(10A) can be connected to each other in hundreds of thousands or millions to form a network, and in such cases, network management of the Ethernet switches (10)(10A) inevitably becomes difficult. Accordingly, the SDN control device (20) defines rules or policies for network switching using software, and the remote mode management unit (21) controls the switching of each Ethernet switch (10)(10A) to implement flexible and convenient network control. In this method, a packet processing process is performed through the slow path of Fig. 1, and a typical existing SDN process is understood.
- the method via the Fast Path of Fig. 1 is a method in which the Ethernet switch (10) independently sets rules or policies for network switching to perform switching more quickly.
- each Ethernet switch (10) (10A) does not depend on remote control of the SDN control device (20), and the Ethernet switch (10) itself sets rules or policies for network switching to perform packet processing more quickly.
- the Ethernet switch (10) is configured such that a local mode management unit (11) configured as a software layer performs the packet processing process.
- a local mode management unit (11) based on a software switch analyzes packets to detect emergency situations, etc., and is configured to change rules or policies for network switching in real time, and the Ethernet switch (10) is configured to immediately apply the changed rules or policies in real time. Accordingly, since the Ethernet switch (10) itself variably applies rules or policies for network switching without remote detection or remote control of the SDN control device (20), the speed for changing rules or policies can be rapidly increased.
- the local mode management unit (11) is configured to propagate all real-time changed rules or policies to other Ethernet switches (10A) so that other Ethernet switches (10A) can immediately apply the changed rules or policies and link them, thereby rapidly increasing the efficiency of the overall network process.
- the method via Fast Pass has a structural disadvantage in the packet processing process because the local mode management unit (11) is based on a software switch. Specifically, in the method via Fast Pass, it is necessary to quickly detect an emergency situation or determine the need for a change in a rule or policy by analyzing the header of packets input to the Ethernet switch (10), but there is a problem that a significant delay occurs in the parsing and analysis of a continuous packet stream.
- a network switching method using a very fast path was derived by improving the existing method using a fast pass.
- a data path mode management unit (12) based on a hardware switch rather than a local mode management unit (11) based on a software switch, is configured to analyze packet headers by processing them in parallel using hardware, and to change and apply rules or policies for network switching in real time. That is, according to an embodiment of the present invention, it is possible to quickly detect emergency situations through packet analysis or to quickly detect the need for changes to rules or policies.
- the network switching method using the very fast pass according to the embodiment of the present invention significantly improves the delay in changing rules or policies for network switching that may occur within the Ethernet switch (10) itself.
- the data path mode management unit (12) is configured to propagate all real-time changed rules or policies to other Ethernet switches (10A) so that the changed rules or policies are immediately applied and linked to other Ethernet switches (10A).
- FIG. 2 is a block diagram of a mode-based ultra-low-latency packet scheduling device in a hardware implementation manner according to one embodiment of the present invention.
- a hardware-implemented mode-based ultra-low-latency packet scheduling device may include an input interface module (110), a packet processing module (120), a mode management module (130), an output decision module (140), an output queue module (150), a mode propagation module (160), an output interface module (170), and a control interface module (180).
- the input interface module (110) may be configured to receive packet streams from a plurality of input devices.
- the input devices may be, but are not limited to, a lidar sensor, a radar sensor, a camera sensor, an ECU, a computing node, an MP3 player, etc. installed in a vehicle.
- the input interface module (110) may be equipped with a NIC (network interface controller) card.
- NIC network interface controller
- the packet processing module (120) may be configured to process a packet stream received from the input interface module (110).
- the packet processing module (120) may be configured to include a lookup table memory (121) and a flow behavior monitoring unit (122).
- the lookup table memory (121) may be configured to store a lookup table regarding packet processing modes.
- the packet processing mode may be configured as a current mode and an emergency mode.
- the current mode can be LO mode and the emergency mode can be HI mode.
- the system mode can be configured as two modes, LO and HI.
- the current mode is not necessarily limited to LO mode
- the emergency mode is not necessarily limited to HI mode.
- the LO mode can be a mode that normally switches and transmits signals for non-urgent situations, such as a signal regarding the execution of an MP3 player.
- the HI mode can be a mode that preferentially switches and transmits camera signals or braking signals in cases where braking is urgently required, such as when an obstacle is detected during autonomous driving.
- the packet processing mode may be set to more than two modes as described above, depending on the criticality of the signal.
- the packet processing mode is not limited to the distinction based on the criticality, and any form of mode distinction can be applied.
- the lookup table can be configured to specify multiple packet processing candidate modes for each signal.
- the lookup table memory (121) may be provided in a separate memory element on the NIC card.
- the flow behavior monitoring unit (122) can be implemented as a logic circuit in an FPGA (field programmable gate array) on a NIC card.
- FPGA field programmable gate array
- FIG. 3 is a schematic diagram of a packet processing process according to one embodiment of the present invention.
- the flow behavior monitoring unit (122) can be configured to parse a packet stream and identify each field header by referring to a lookup table stored in a lookup table memory (121).
- the flow behavior monitoring unit (122) can be configured to simultaneously and in parallel parse and identify each field header of a packet stream received from an input interface module (110) by using a plurality of multiplexers provided in the FPGA.
- the flow behavior monitoring unit (122) can be configured to determine whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and if so, to generate a violation message and output it in real time to the mode management module (130).
- a flow can be defined as a set of packets divided based on a shim-header in a single packet stream.
- the flow behavior monitoring unit (122) can match each field header being parsed with a header of a lookup table, and extract overlapping candidate rules from among packet processing candidate rules specified in each matched header.
- the flow behavior monitoring unit (122) can determine a packet processing rule corresponding to the current flow processing from among the extracted candidate rules.
- the flow behavior monitoring unit (122) can determine the packet processing rule corresponding to the current flow processing by determining which packet processing rule is the most suitable for processing the current flow from among the extracted candidate rules, and determining the packet processing rule that is the most suitable for processing the current flow as the packet processing rule corresponding to the current flow processing.
- the flow behavior monitoring unit (122) can be configured to match each field header of each flow with the header of the lookup table in Phase 1 of FIG. 3, and extract overlapping candidate rules from among packet processing candidate rules specified in each matched header in Phase 2 of FIG. 3.
- the packet processing candidate rules can be viewed as a set of packet processing rules on which a specific header signal can operate.
- header signals of aa, yy, and cc are extracted from each header field, and by referring to the lookup table for these, packet processing candidate rules 10, 20, and 30 of each header signal aa, packet processing candidate rule 20 of each header signal yy, and packet processing candidate rules 20, 30, and 40 of each header signal cc are extracted, respectively.
- the overlapping candidate rule is 20. Accordingly, the packet processing rule of the current input signals, that is, the signal processing rule or signal processing policy can be detected as 20.
- the flow behavior monitoring unit (122) can determine a packet processing rule corresponding to the current flow processing from among the above extracted candidate rules. For example, if candidate rules extracted overlapping each other are 20 and 30, and the packet processing rule most suitable for processing the current flow is 20, the flow behavior monitoring unit (122) can determine candidate rule 20 as the packet processing rule corresponding to the current flow processing.
- the flow behavior monitoring unit (122) may detect and determine whether a mode violation occurs by comparing the mode corresponding to packet processing rule 20 with the preset current packet processing mode. That is, if the current packet processing mode is the same as the preset current packet processing mode, the current packet processing mode is not a mode violation, but if it is different, the current packet processing mode becomes a mode violation, and the current packet processing mode may be configured to be changed to a newly extracted candidate mode. That is, it may be configured to be changed from a specific mode to a mode with higher criticality.
- a mode-based ultra-low-latency packet scheduling device (100) implemented in a hardware manner according to an embodiment can be implemented through a single shared system using mixed-criticality (MC) instead of separate systems for the high criticality mode and the low criticality mode.
- MC mixed-criticality
- the scheduling performed by the mode-based ultra-low-latency packet scheduling device (100) implemented in a hardware manner according to an embodiment is not limited to mixed-criticality (MC) packet scheduling.
- Determination of whether a mod has been violated can be made according to the following process.
- the flow behavior monitoring unit (122) may be configured to determine that if the flow generates more messages than the conditions of the current packet processing mode, it is a violation of the current packet processing mode. For example, when listening to music in a vehicle and the music signal is mainly networked, if an obstacle suddenly occurs, camera hazard signals, lidar signals, radar signals, etc. may suddenly increase. In this case, it may be determined that it is a violation of the current packet processing mode.
- the flow behavior monitoring unit (122) can be configured to determine whether the current mode is violated based on the size of the message.
- the flow behavior monitoring unit (122) In Guide time of the current mode for the th periodic message It can be configured to be calculated according to the following mathematical formula 1.
- the flow behavior monitoring unit (122) If the arrival time of the th message is less than the guide time, the message is determined to indicate an emergency mode behavior, and if the size of the message is greater than the size condition of the current mode, the message is determined to indicate an emergency mode behavior. In this case, if it is determined to indicate an emergency mode behavior, the message can be configured to be determined to be a mode violation.
- the guide time of the current mode can be expressed not only by the above mathematical formula but also by any other mathematical formula that limits the arrival time of a packet.
- the mode management module (130) may be configured to change the packet processing mode in real time based on the result of processing the packet stream of the packet processing module (120). That is, it may be set to change in real time from a specific packet processing mode to a packet processing mode with higher priority so as to give priority to the switching of a signal or message with higher priority.
- the mode management module (130) may be implemented as a logic circuit in an FPGA on a NIC card and may be implemented in a memory storage on the NIC card.
- the mode management module (130) can request the mode propagation module (160) to propagate the packet processing mode that is set to be changed in real time to other switch devices. Since the network switches must be interlocked with each other in the same packet processing mode to reduce the overall network transmission signal, they can be configured to interlock immediately through propagation and reception of the packet processing mode even if other network switches do not directly detect it.
- the mode management module (130) may be configured to include a shadow table memory (131) and a mode change handling unit (132).
- the shadow table memory (131) can be configured to store a shadow table corresponding to a packet processing mode.
- the mode change handling unit (132) may be configured to change the packet processing mode corresponding to a violation message output in real time from the flow behavior monitoring unit (122) by referring to the shadow table stored in the shadow table memory (131), swap the shadow table with the lookup table of the lookup table memory (121), and store the shadow table as a lookup table in the lookup table memory (121).
- the mode change handling unit (132) can be configured to change the candidate mode extracted from the flow behavior monitoring unit (122) to the current mode when the flow behavior monitoring unit (122) determines that a mode violation has occurred.
- the output decision module (140) can be configured to set the priority of a packet and output it according to the packet processing mode that is changed in real time in the mode management module (130).
- the output decision module (140) can be implemented as a logic circuit in an FPGA on a NIC card.
- the output queue module (150) may be configured to store packets whose priority is set in the output decision module (140).
- the output queue module (150) may be provided in a memory device on a NIC card.
- the output queue module (150) may be equipped with an output queue (151) for each input device. That is, if the input device is an MP3 player, a separate output queue (151) for the MP3 player may be equipped, and if the input device is a camera sensor, a separate output queue (151) for the camera sensor may be equipped.
- the mode propagation module (160) may be configured to propagate the corresponding mode to other switch devices according to a request from the mode management module (130).
- the mode propagation module (160) may propagate a mode propagation notification signal through a separate channel.
- the mode propagation module (160) can be implemented as a logic circuit in an FPGA on a NIC card.
- the output interface module (170) can be configured to output packets stored in the output queue module (150) to the corresponding output device according to priority.
- the output interface module (170) may be provided on a NIC card.
- the output interface module (170) may be configured to include a plurality of output interface units (171) that output packets stored in the output queue of the output queue module (150) to respective output devices.
- the output devices may be speakers, brake driving devices, wheel driving devices, engine driving devices, wiper driving devices, etc.
- the control interface module (180) may be configured to receive an OpenFlow message from an SDN (software defined network) control device (not shown) and input it to the mode management module (130). Even though the SDN control device (not shown) is not normally involved in network switching, it may be involved in changing or controlling packet processing modes through OpenFlow messages when overall network switching control is required. The SDN control device (not shown) may add or change a new packet processing mode and update a shadow table.
- SDN software defined network
- the mode management module (130) can be configured to operate according to an openflow message received from the SDN control device.
- FIG. 4 is an example diagram of signal processing for mode change according to one embodiment of the present invention.
- Figure 4 shows a signal processing diagram in which the packet processing mode is changed, expressed as a clock unit signal.
- FIGS. 5 and 6 illustrate examples of mode change delay in a single switch and a triple switch.
- FIG. 5 is a contrast graph of mode change delay of a single switch for a slow pass
- FIG. 6 is a contrast graph of mode change delay of a single switch for a fast pass
- FIG. 7 is a contrast graph of mode change delay of a single switch for a very fast pass
- FIG. 8 is a contrast graph of mode change delay of a triple switch for a slow pass
- FIG. 9 is a contrast graph of mode change delay of a triple switch for a fast pass
- FIG. 10 is a contrast graph of mode change delay of a triple switch for a very fast pass.
- Fig. 5 shows an example of a time for mode change delay to occur depending on the number of switching rules in a conventional SDN according to slow path. That is, it can be seen that the delay increases from 20 ms to 50 ms as the number of rules increases.
- Fig. 6 it can be seen that the mode change delay time increases rapidly from 200 ⁇ s to 800 ⁇ s in a software-based network switch according to Fast Pass.
- Fig. 7 shows a hardware-based network switch according to Very Fast Pass, and shows that the mode change delay time remains almost the same at 2.2 ⁇ s even though the number of rules increases.
- Figure 11 is a contrast graph of the time until mode change after HI action detection for Fast Pass
- Figure 12 is a contrast graph of the time until mode change after HI action detection for Very Fast Pass.
- Fig. 11 shows the end-to-end message transmission time according to Fast Pass
- Fig. 12 shows the end-to-end message transmission time according to Very Fast Pass.
- Each shows the end-to-end message transmission time when a mode change occurs, and when the HI behavior of the blue graph appears, it indicates that the mode change occurs immediately, transmission of messages in the current mode is stopped, and messages in the emergency mode are transmitted with priority for a much shorter time.
- Fast Pass detected the HI behavior at message 20 and the mode change occurred at message 121, but in Very Fast Pass, the mode change occurred immediately at message 21 as soon as the HI behavior was detected at message 20.
- At least one component may be added or deleted in response to the performance of the components described above.
- the mutual positions of the components may be changed in response to the performance or structure of the system.
- Fig. 13 is a flow chart of a mode-based ultra-low delay packet scheduling method in a hardware implementation manner according to one embodiment of the present invention. This is only a preferred embodiment for achieving the purpose of the present invention, and it is obvious that some configurations may be added or deleted as needed.
- an input interface module (110) equipped on a NIC (network interface controller) card can receive packet streams from multiple input devices (1001).
- a packet processing module (120) implemented in an FPGA (field programmable gate array) on a NIC card can process a packet stream received from an input interface module (110) (1002).
- the packet processing module (120) can be configured to simultaneously and in parallel parse and identify each field header of the packet stream received from the input interface module (110) by using a plurality of multiplexers provided in the FPGA.
- the packet processing module (120) can be configured to identify each field header by referring to the lookup table stored in the lookup table memory (121), determine whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and, if the determination result is violated, generate a violation message and output it in real time to the mode management module (130).
- the packet processing module (120) may be configured to match each field header with a header of a lookup table, extract overlapping candidate modes from among packet processing candidate modes specified in each matched header, and detect and determine whether a mode is violated by comparing the extracted candidate modes with the already set modes.
- the packet processing module (120) can be configured to determine that a violation of the current packet processing mode occurs when the flow generates more messages than the conditions of the current mode.
- the packet processing module (120) In Guide time of the current mode for the th periodic message It can be configured to be calculated according to the following mathematical formula 2.
- the packet processing module (120) If the arrival time of the th message is less than the guide time, the message is judged to indicate an emergency mode behavior, if the size of the message is greater than the size condition of the current mode, the message is judged to indicate an emergency mode behavior, and if it is judged to indicate an emergency mode behavior, it can be configured to determine a mode violation.
- the guide time of the current mode can be expressed not only by the above mathematical formula but also by any other mathematical formula that limits the arrival time of a packet.
- a mode management module (130) implemented in an FPGA on a NIC card changes the packet processing mode in real time based on the processing result of the packet stream of the packet processing module (120) (1003).
- the mode management module (130) may be configured to change the packet processing mode corresponding to the violation message output in real time from the flow behavior monitoring unit (122) by referring to the shadow table stored in the shadow table memory (131) and swap the shadow table with the lookup table of the lookup table memory (131) and store it as a lookup table in the lookup table memory (131).
- the output decision module (140) implemented in the FPGA on the NIC card sets the priority of packets in the packet stream processed by the packet processing module (120) and outputs the packet processing mode set to be changed in real time by the mode management module (130) and stores it in the output queue module (150) on the memory (1004).
- the output interface module (170) equipped on the NIC card outputs packets stored in the output queue module (150) to the corresponding output device according to priority (1005).
- the mode management module (130) implemented in the FPGA on the NIC card requests that the packet processing mode being changed in real time be propagated to other switch devices (1006).
- the mode propagation module (160) equipped on the NIC card propagates the corresponding mode to another switch device (1007) according to the request of the mode management module (130).
- the input interface module (110), the packet processing module (120), the mode management module (130), the output decision module (140), the output queue module (150), the mode propagation module (160), the output interface module (170), and the control interface module (180) may include any one of the processors or memories included in the hardware-implemented mode-based ultra-low-latency packet scheduling device (100).
- the control method of the hardware-implemented mode-based ultra-low-latency packet scheduling device (100) according to the embodiments of the present invention described so far and the embodiments to be described in the future may be implemented in the form of a program that can be driven by a processor.
- the program may include program commands, data files, and data structures, either singly or in combination.
- the program may be designed and produced using machine language codes or high-level language codes.
- the program may be specially designed to implement a method for controlling the above-described hardware-implemented mode-based ultra-low-latency packet scheduling device (100), or may be implemented using various functions or definitions that are known and available to those skilled in the art in computer software.
- the program for implementing the above-described hardware-implemented mode-based ultra-low-latency packet scheduling device (100) control method may be recorded on a recording medium readable by a processor. At this time, the recording medium may be a memory.
- the memory can store a program that performs the aforementioned operations and the operations described below, and the memory can execute the stored program.
- the memory can include volatile memory such as S-RAM (Static Random Access Memory) and D-RAM (Dynamic Random Access Memory) for temporarily storing data.
- the memory can include nonvolatile memory such as ROM (Read Only Memory), EPROM (Erasable Programmable Read Only Memory), and EEPROM (Electrically Erasable Programmable Read Only Memory) for long-term storing a control program and control data.
- the processor can include various logic circuits and arithmetic circuits, and can process data according to a program provided from the memory and generate a control signal according to the processing result.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 패킷 스케줄링(packet scheduling) 장치 및 방법에 관한 것으로서, 좀 더 구체적으로는 모드 기반 초저지연(ultra-low latency, ULL) 패킷 스케줄링 장치 및 방법에 관한 것이며, 좀 더 구체적으로는 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치 및 방법에 관한 것이다.The present invention relates to a packet scheduling device and method, and more particularly, to a mode-based ultra-low latency (ULL) packet scheduling device and method, and more particularly, to a hardware-implemented mode-based ultra-low latency packet scheduling device and method.
본 발명은 과학기술정보통신부의 집단연구지원(과제고유번호: 1711137721, 과제번호: 2021R1A4A1032252, 연구과제명: 저비용 고신뢰 자율주행차를 위한 임베디드 클러스터 컴퓨팅 및 딥러닝 경량화 기술, 과제관리기관: 한국연구재단, 과제수행기관: 숭실대학교산학협력단, 연구기간: 2021.06.01 ~ 2024.02.29) 및 정보통신방송혁신인재양성(과제고유번호: 1711174068, 과제번호: IITP-2024-RS-2022-00156360, 연구과제명: 지역지능화혁신인재양성, 과제관리기관: 정보통신기획평가원, 과제수행기관: 숭실대학교산학협력단, 연구기간: 2022.07.01 ~ 2029.12.31)의 일환으로 수행한 연구로부터 도출된 것이다. 한편, 본 발명의 모든 측면에서 한국 정부의 재산 이익은 없다.The present invention was supported by the group research support of the Ministry of Science and ICT (Project Unique Number: 1711137721, Project Number: 2021R1A4A1032252, Research Project Title: Embedded Cluster Computing and Deep Learning Lightweight Technology for Low-Cost, High-Reliability Autonomous Vehicles, Project Management Agency: National Research Foundation of Korea, Project Execution Agency: Soongsil University Industry-Academic Cooperation Foundation, Research Period: 2021.06.01 ~ 2024.02.29) and the Information and Communication Broadcasting Innovation Talent Development (Project Unique Number: 1711174068, Project Number: IITP-2024-RS-2022-00156360, Research Project Title: Regional Intelligence Innovation Talent Development, Project Management Agency: Information and Communication Planning and Evaluation Institute, Project Execution Agency: Soongsil University Industry-Academic Cooperation Foundation, Research Period: 2022.07.01 ~ This is derived from research conducted as part of the 2029.12.31). Meanwhile, there is no property interest of the Korean government in any aspect of the present invention.
최근 전기차, 자율 주행 차량의 기술이 점점 발전함에 따라 차량에 수많은 센서들이 구비되고 각종 전자적인 제어 프로세서와 구동 프로세스가 점점 늘어나고 있다. 이러한 차량들은 하나의 전자 부품들의 집약체라 할 수 있고, 차량 내에서 노드 간의 신호 교환도 급증하고 있다. 당연히 차량 내에는 노드들을 연결하는 네트워크 스위치의 수도 늘어나게 되어 이를 지원하기 위하여 차량용 이더넷 (Automotive Ethernet) 기반의 네트워크가 활발히 개발 및 사용되고 있다.Recently, as the technology of electric vehicles and autonomous vehicles is developing, numerous sensors are being installed in vehicles, and various electronic control processors and driving processes are increasing. These vehicles can be considered as a single electronic component, and the signal exchange between nodes within the vehicle is also rapidly increasing. Naturally, the number of network switches connecting nodes within the vehicle is also increasing, and to support this, networks based on Automotive Ethernet are being actively developed and used.
한편, 자율 주행 차량의 경우 수많은 센서 신호들을 분석하여 최적의 주행을 위한 판단을 하고 구동 제어를 하여야 하는데, 주행 중 장애물 발생과 같은 긴급한 상황의 발생에 대해 신속하게 대응할 필요가 있다. 이에, 네트워크 스위치는 수많은 센서 신호들과 구동 신호를 신속하게 전달하여야 한다. 그러나, 네트워크 스위치의 수가 늘어나고 신호의 수가 수없이 늘어남에 따라 신호 전달의 지연이 중요한 해결 과제가 되고 있다. 또한, 차량의 주행 환경 변화 등 시스템 상황에 따라 신호의 대역폭 및 타이밍 요구조건이 급격하게 변화하고 이에 따라 신호 전달 정책 (Forwarding rule) 또한 동적으로 변화할 필요가 있다.Meanwhile, in the case of autonomous vehicles, numerous sensor signals must be analyzed to make decisions for optimal driving and drive control, and there is a need to respond quickly to emergency situations such as obstacles occurring during driving. Accordingly, network switches must quickly transmit numerous sensor signals and drive signals. However, as the number of network switches and signals increases, signal transmission delay becomes a major challenge. In addition, depending on system conditions such as changes in the vehicle's driving environment, the bandwidth and timing requirements of signals change rapidly, and the signal transmission policy (forwarding rule) also needs to change dynamically.
동적인 신호 전달 정책 관리를 위하여 기존의 소프트웨어 정의 네트워크 (SDN, Software-Defined Networking) 방식을 활용할 수 있다. 하지만, 차량 내에서는 적어도 ㎲ 단위의 초저지연 (ULL, Ultra-Low Latency)이 보장되어야 하지만, 기존의 SDN 방식에서는 ms 단위의 지연이 발생할 수 있어 문제가 된다.Existing software-defined networking (SDN) methods can be utilized to manage dynamic signal transmission policies. However, while ultra-low latency (ULL) of at least ㎲ units must be guaranteed within a vehicle, existing SDN methods can cause delays of ms units, which is problematic.
소프트웨어 정의 네트워크에서는 네트워크 스위치가 상위 레벨의 SDN 제어 장치로 신호 전달 모드에 대한 질의를 하고, SDN 제어 장치는 다시 신호 전달 모드를 원격 제어하여 스위칭 프로세스를 제어한다. 즉, 소프트웨어 정의 네트워크 방식은 차량 내에서 초저지연(ULL)의 스위치 지연을 보장할 수 없다.In a software-defined network, a network switch queries a higher-level SDN control device about the signal transmission mode, and the SDN control device then remotely controls the signal transmission mode to control the switching process. In other words, the software-defined network method cannot guarantee ultra-low latency (ULL) switching delay in a vehicle.
이에, 자율 주행 차량 등에 있어서 초저지연의 스위치 지연이 보장되어야 하는 상황에 필요한 네트워크 스위칭 방식이 요구되고 있다.Accordingly, a network switching method is required in situations where ultra-low latency switching delay must be guaranteed, such as in autonomous vehicles.
본 발명은 하드웨어로 구현되는 모드 기반 초저지연 패킷 스케줄링 장치 및 모드 기반 초저지연 패킷 스케줄링 방법을 제공하기 위한 것이다.The present invention provides a mode-based ultra-low-latency packet scheduling device and a mode-based ultra-low-latency packet scheduling method implemented in hardware.
또한, 본 발명은 네트워크 스위치의 패킷 처리 모드 변경을 하드웨어에 기반하여 병렬 처리하도록 구성됨으로써, 초저지연(ultra-low latency)의 모드 변경을 할 수 있는 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치 및 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 방법을 제공하기 위한 것이다.In addition, the present invention provides a hardware-implemented mode-based ultra-low latency packet scheduling device and a hardware-implemented mode-based ultra-low latency packet scheduling method, which are configured to perform parallel processing of a packet processing mode change of a network switch based on hardware, thereby enabling ultra-low latency mode change.
또한, 본 발명은 자율 주행 차량과 같이 긴급한 상황에서 모드 변경 지연이 거의 없이 즉시 모드를 변경할 수 있도록 구성됨으로써, 안전하고 원활한 자율 주행 프로세스를 구현할 수 있으며, 한정된 자원으로 효율적인 네트워크 스위칭을 할 수 있는 효과가 있는 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치 및 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 방법을 제공하기 위한 것이다.In addition, the present invention provides a hardware-implemented mode-based ultra-low-latency packet scheduling device and a hardware-implemented mode-based ultra-low-latency packet scheduling method that can implement a safe and smooth autonomous driving process by being configured to be able to change modes immediately with almost no mode change delay in an emergency situation such as an autonomous vehicle, and that has the effect of enabling efficient network switching with limited resources.
개시된 발명의 일 측면에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치는, 다수의 입력 장치로부터 패킷 스트림(packet stream)을 입력받는 입력 인터페이스 모듈; 상기 입력 인터페이스 모듈에서 입력받은 패킷 스트림을 처리하는 패킷 처리 모듈; 상기 패킷 처리 모듈의 패킷 스트림의 처리 결과에 기반하여 패킷 처리 모드를 실시간 변경 설정하는 모드 관리 모듈; 상기 모드 관리 모듈에서 실시간 변경 설정되는 패킷 처리 모드에 따라 패킷의 우선 순위를 설정하고 출력하는 출력 결정 모듈; 상기 출력 결정 모듈에서 우선 순위가 설정된 패킷이 저장되는 출력 큐 모듈; 상기 출력 큐 모듈에 저장된 패킷을 우선 순위에 따라 해당 출력 장치로 출력하는 출력 인터페이스 모듈을 포함하도록 구성될 수 있다.A hardware-implemented mode-based ultra-low-latency packet scheduling device according to one aspect of the disclosed invention may be configured to include an input interface module that receives a packet stream from a plurality of input devices; a packet processing module that processes the packet stream received from the input interface module; a mode management module that changes and sets a packet processing mode in real time based on a processing result of the packet stream by the packet processing module; an output decision module that sets and outputs a packet priority according to the packet processing mode changed in real time by the mode management module; an output queue module that stores packets whose priorities are set by the output decision module; and an output interface module that outputs packets stored in the output queue module to a corresponding output device according to the priorities.
또한, 상기 패킷 처리 모듈은, 상기 NIC(network interface controller) 카드 상의 FPGA(field programmable gate array)에 논리 회로로 구현되며, 상기 FPGA에 구비되는 다수의 멀티플렉서(multiplexer)를 이용하여 상기 입력 인터페이스 모듈에서 입력받은 패킷 스트림의 각 필드 헤더(field header)를 병렬적으로 동시에 각각 파싱(parsing)하여 파악하도록 구성될 수 있다.In addition, the packet processing module may be implemented as a logic circuit in an FPGA (field programmable gate array) on the NIC (network interface controller) card, and may be configured to simultaneously and in parallel parse and identify each field header of a packet stream input from the input interface module using a plurality of multiplexers provided in the FPGA.
또한, 상기 모드 관리 모듈은, 상기 실시간 변경 설정되는 패킷 처리 모드를 다른 스위치 장치로 전파하도록 요청하도록 구성될 수 있다.Additionally, the mode management module may be configured to request propagation of the packet processing mode set to be changed in real time to another switch device.
또한, 상기 모드 관리 모듈의 요청에 따라 해당 모드를 상기 다른 스위치 장치로 전파하는 모드 전파 모듈을 더 포함하도록 구성될 수 있다.Additionally, the mode management module may be configured to further include a mode propagation module that propagates the mode to the other switch device at the request of the mode management module.
또한, SDN(software defined network) 제어 장치의 오픈플로우(OpenFlow) 또는 이와 유사한 제어 메시지를 수신하여 상기 모드 관리 모듈로 입력하는 제어 인터페이스 모듈을 더 포함하도록 구성될 수 있다.In addition, it may be configured to further include a control interface module that receives an OpenFlow or similar control message from an SDN (software defined network) control device and inputs it into the mode management module.
또한, 상기 모드 관리 모듈은, 상기 SDN 제어 장치에서 수신되는 오픈플로우 메시지에 따라 운용되도록 구성될 수 있다.Additionally, the mode management module may be configured to operate according to an openflow message received from the SDN control device.
또한, 상기 패킷 처리 모듈은, 패킷 처리 모드에 관한 룩업 테이블이 저장되는 룩업 테이블 메모리; 상기 파싱되는 각 필드 헤더를 상기 룩업 테이블 메모리에 저장된 룩업 테이블을 참조하여 파악하고, 해당 플로우의 행동이 상기 룩업 테이블 상의 현재 패킷 처리 모드에 위반하는지 판단하고, 판단 결과 위반하는 경우 위반 메시지를 생성하여 상기 모드 관리 모듈로 실시간 출력하는 플로우 행동 모니터링부를 포함하도록 구성될 수 있다.In addition, the packet processing module may be configured to include a lookup table memory in which a lookup table regarding a packet processing mode is stored; a flow behavior monitoring unit that identifies each field header to be parsed by referring to the lookup table stored in the lookup table memory, determines whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and, if the determination result is violated, generates a violation message and outputs it in real time to the mode management module.
또한, 상기 플로우 행동 모니터링부는, 상기 파싱되는 각 필드 헤더를 상기 룩업 테이블의 헤더와 각각 매칭하고, 각각 매칭된 헤더에 지정된 패킷 처리 후보 규칙들(forwarding rules) 중에서 서로 중복되는 후보 규칙을 추출하고, 추출된 후보 규칙 중에서 현재의 플로우 처리에 대응되는 패킷 처리 규칙을 결정하도록 구성될 수 있다.In addition, the flow behavior monitoring unit may be configured to match each of the parsed field headers with a header of the lookup table, extract overlapping candidate rules among packet processing candidate rules (forwarding rules) specified in each matched header, and determine a packet processing rule corresponding to the current flow processing among the extracted candidate rules.
또한, 상기 플로우 행동 모니터링부는, 상기 플로우가 현재의 패킷 처리 모드의 조건보다 더 많은 메시지를 생성하는 경우 현재의 패킷 처리 모드의 위반으로 판단하도록 구성될 수 있다.Additionally, the flow behavior monitoring unit may be configured to determine that a current packet processing mode is violated if the flow generates more messages than the conditions of the current packet processing mode.
또한, 상기 모드 관리 모듈은, 현재 모드의 가이드 타임(guide time) 를 패킷의 도착 시간을 제한하는 형태의 수학식에 따라 산출하도록 구성될 수 있다.In addition, the above mode management module provides the guide time of the current mode. can be configured to produce a mathematical expression that limits the arrival time of packets.
또한, 상기 플로우 행동 모니터링부는, 플로우 에서의 번째 주기적 메시지에 대하여 현재 모드의 가이드 타임(guide time) 를 하기 수학식에 따라 산출하고, [수학식] 여기서, 는 플로우 에서의 번째 메시지의 도착 시간이고, 는 각 주기적 메시지의 릴리스 지터(release jitter)이고, 는 플로우 에서의 현재 모드 주기이고, 상기 번째 메시지의 도착 시간이 상기 가이드 타임보다 작은 경우 해당 메시지가 긴급 모드의 행동을 나타내는 것으로 판단하고, 또는 상기 메시지의 크기가 현재 모드의 크기 조건보다 더 큰 경우 상기 메시지가 긴급 모드의 행동을 나타내는 것으로 판단하고, 긴급 모드의 행동을 나타내는 것으로 판단하는 경우 모드 위반으로 판단하도록 구성될 수 있다.In addition, the above flow behavior monitoring unit, In Guide time of the current mode for the th periodic message It is calculated according to the following mathematical formula, [Mathematical formula] Here, is the flow In is the arrival time of the second message, is the release jitter of each periodic message, is the flow The current mode cycle is in , and the above If the arrival time of the th message is less than the guide time, the message is determined to indicate an action in the emergency mode, or if the size of the message is greater than a size condition of the current mode, the message is determined to indicate an action in the emergency mode, and if it is determined to indicate an action in the emergency mode, it can be configured to determine a mode violation.
또한, 현재 모드의 가이드 타임(guide time) 은 상기 수학식 뿐만 아니라 패킷의 도착 시간을 제한하는 다른 어떠한 형태의 수학식으로 표현 가능할 수 있다.Also, the guide time of the current mode can be expressed not only by the above mathematical formula but also by any other mathematical formula that limits the arrival time of a packet.
또한, 상기 모드 관리 모듈은, 패킷 처리 모드에 대응되는 그림자 테이블이 저장되는 그림자 테이블 메모리; 상기 그림자 테이블 메모리에 저장된 그림자 테이블을 참조하여 상기 플로우 행동 모니터링부에서 실시간 출력되는 위반 메시지에 해당되는 패킷 처리 모드로 변경하기 위해 해당 그림자 테이블을 상기 룩업 테이블 메모리의 룩업 테이블과 스왑하여 상기 룩업 테이블 메모리에 룩업 테이블로서 저장하는 모드 변경 핸들링부를 포함하도록 구성될 수 있다.In addition, the mode management module may be configured to include a shadow table memory in which a shadow table corresponding to a packet processing mode is stored; and a mode change handling unit that swaps the shadow table stored in the shadow table memory with a lookup table of the lookup table memory and stores the shadow table as a lookup table in the lookup table memory to change the packet processing mode corresponding to a violation message output in real time from the flow behavior monitoring unit by referring to the shadow table stored in the shadow table memory.
또한, 상기 모드 관리 모듈은, 패킷 처리 모드에 대응되는 패킷 처리 규칙을 포함하는 그림자 테이블이 저장되는 그림자 테이블 메모리; 상기 그림자 테이블 메모리에 저장된 그림자 테이블을 참조하여 상기 플로우 행동 모니터링부에서 실시간 출력되는 위반 메시지에 해당되는 패킷 처리 모드로 변경하며, 모드 변경을 위해 상기 그림자 테이블 메모리에 저장된 해당 그림자 테이블을 상기 룩업 테이블 메모리의 룩업 테이블과 스왑하여 상기 룩업 테이블 메모리에 룩업 테이블로서 저장하는 모드 변경 핸들링부를 포함하도록 구성될 수 있다.In addition, the mode management module may be configured to include a shadow table memory storing a shadow table including packet processing rules corresponding to packet processing modes; a mode change handling unit that changes the packet processing mode corresponding to a violation message output in real time from the flow behavior monitoring unit by referring to the shadow table stored in the shadow table memory, and swaps the corresponding shadow table stored in the shadow table memory with a lookup table of the lookup table memory for mode change and stores the shadow table as a lookup table in the lookup table memory.
또한, 상기 모드 변경 핸들링부는, 상기 플로우 행동 모니터링부에서 모드 위반으로 판단된 경우, 상기 플로우 행동 모니터링부에서 적합한 변경 후보 모드를 파악하여 현재의 패킷 처리 모드를 후보 모드로 변경하도록 구성할 수 있다.In addition, the mode change handling unit can be configured to, when the flow behavior monitoring unit determines a mode violation, identify a suitable change candidate mode in the flow behavior monitoring unit and change the current packet processing mode to the candidate mode.
또한, 상기 출력 큐 모듈은, 상기 입력 장치 별로 패킷이 저장되는 다수의 우선순위 기반 출력 큐를 포함하도록 구성될 수 있다.Additionally, the output queue module may be configured to include a plurality of priority-based output queues in which packets are stored for each input device.
또한, 상기 출력 인터페이스 모듈은, 상기 출력 큐 모듈의 출력 큐에 저장된 패킷을 해당 출력 장치로 각각 출력하는 다수의 출력 인터페이스부를 포함하도록 구성될 수 있다.Additionally, the output interface module may be configured to include a plurality of output interface units that each output packet stored in an output queue of the output queue module to a corresponding output device.
본 발명의 다른 목적에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 방법은, NIC(network interface controller) 카드에 구비되는 입력 인터페이스 모듈이 다수의 입력 장치로부터 패킷 스트림(packet stream)을 입력받는 단계; 상기 NIC 카드 상의 FPGA(field programmable gate array)에 구현되는 패킷 처리 모듈이 상기 입력 인터페이스 모듈에서 입력받은 패킷 스트림을 처리하는 단계; 상기 NIC 카드 상의 FPGA에 구현되는 모드 관리 모듈이 상기 패킷 처리 모듈의 패킷 스트림의 처리 결과에 기반하여 패킷 처리 모드를 실시간 변경 설정하는 단계; 상기 NIC 카드 상의 FPGA에 구현되는 출력 결정 모듈이 상기 모드 관리 모듈에서 실시간 변경 설정되는 패킷 처리 모드에 따라 패킷의 우선 순위를 설정하고 출력하여 메모리 상의 출력 큐 모듈에 저장하는 단계; 상기 NIC 카드 상에 구비되는 출력 인터페이스 모듈이 상기 출력 큐 모듈에 저장된 패킷을 우선 순위에 따라 해당 출력 장치로 출력하는 단계를 포함하도록 구성될 수 있다.According to another object of the present invention, a hardware-implemented mode-based ultra-low-latency packet scheduling method may be configured to include the steps of: an input interface module provided in a network interface controller (NIC) card receiving a packet stream from a plurality of input devices; a packet processing module implemented in a field programmable gate array (FPGA) on the NIC card processing the packet stream received from the input interface module; a mode management module implemented in the FPGA on the NIC card changing and setting a packet processing mode in real time based on a processing result of the packet stream by the packet processing module; a step of an output decision module implemented in the FPGA on the NIC card setting and outputting a packet priority according to the packet processing mode changed in real time by the mode management module and storing the output in an output queue module on a memory; and a step of an output interface module provided on the NIC card outputting the packets stored in the output queue module to a corresponding output device according to the priorities.
또한, 상기 NIC 카드 상의 FPGA에 구현되는 패킷 처리 모듈이 상기 입력 인터페이스 모듈에서 입력받은 패킷 스트림을 처리하는 단계는, 상기 FPGA에 구비되는 다수의 멀티플렉서(multiplexer)를 이용하여 상기 입력 인터페이스 모듈에서 입력받은 패킷 스트림의 각 필드 헤더(field header)를 병렬적으로 동시에 각각 파싱(parsing)하여 파악하도록 구성될 수 있다.In addition, the step of processing the packet stream input from the input interface module by the packet processing module implemented in the FPGA on the NIC card may be configured to simultaneously and in parallel parse and identify each field header of the packet stream input from the input interface module by using a plurality of multiplexers provided in the FPGA.
또한, NIC 카드 상의 FPGA에 구현되는 모드 관리 모듈이 상기 실시간 변경 설정되는 패킷 처리 모드를 다른 스위치 장치로 전파하도록 요청하도록 구성될 수 있다.Additionally, a mode management module implemented in an FPGA on a NIC card may be configured to request propagation of the packet processing mode set to be changed in real time to other switching devices.
또한, 상기 NIC 카드 상에 구비되는 모드 전파 모듈이 상기 모드 관리 모듈의 요청에 따라 해당 모드를 상기 다른 스위치 장치로 전파하는 단계를 더 포함하도록 구성될 수 있다.In addition, the mode propagation module provided on the NIC card may be configured to further include a step of propagating the corresponding mode to the other switch device according to a request of the mode management module.
또한, 상기 NIC 카드 상의 FPGA에 구현되는 패킷 처리 모듈이 상기 입력 인터페이스 모듈에서 입력받은 패킷 스트림을 처리하는 단계는, 상기 파싱되는 각 필드 헤더를 룩업 테이블 메모리에 저장된 룩업 테이블을 참조하여 파악하고, 해당 플로우의 행동이 상기 룩업 테이블 상의 현재 패킷 처리 모드에 위반하는지 판단하고, 판단 결과 위반하는 경우 위반 메시지를 생성하여 상기 모드 관리 모듈로 실시간 출력하도록 구성될 수 있다.In addition, the step of processing the packet stream input from the input interface module by the packet processing module implemented in the FPGA on the NIC card may be configured to identify each field header being parsed by referring to a lookup table stored in a lookup table memory, determine whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and if the determination result is violated, generate a violation message and output it to the mode management module in real time.
또한, 상기 NIC 카드 상의 FPGA에 구현되는 패킷 처리 모듈이 상기 입력 인터페이스 모듈에서 입력받은 패킷 스트림을 처리하는 단계는, 상기 파싱되는 각 필드 헤더를 상기 룩업 테이블의 헤더와 각각 매칭하고, 각각 매칭된 헤더에 지정된 패킷 처리 후보 규칙들 중에서 서로 중복되는 후보 규칙을 추출하고, 추출된 후보 규칙 중에서 현재의 플로우 처리에 대응되는 패킷 처리 규칙을 결정하고, 현재 모드의 가이드 타임(guide time) 를 패킷의 도착 시간을 제한하는 형태의 수학식에 따라 산출하도록 구성될 수 있다.In addition, the step of processing the packet stream input from the input interface module by the packet processing module implemented in the FPGA on the NIC card includes matching each of the parsed field headers with the header of the lookup table, extracting overlapping candidate rules among packet processing candidate rules specified in each matched header, determining a packet processing rule corresponding to the current flow processing among the extracted candidate rules, and determining the guide time of the current mode. can be configured to produce a mathematical expression that limits the arrival time of packets.
또한, 상기 NIC 카드 상의 FPGA에 구현되는 모드 관리 모듈이 상기 패킷 처리 모듈의 패킷 스트림의 처리 결과에 기반하여 패킷 처리 모드를 실시간 변경 설정하는 단계는, 그림자 테이블 메모리에 저장된 그림자 테이블을 참조하여 상기 플로우 행동 모니터링부에서 실시간 출력되는 위반 메시지에 해당되는 패킷 처리 모드로 변경하기 위해 해당 그림자 테이블을 상기 룩업 테이블 메모리의 룩업 테이블과 스왑하여 상기 룩업 테이블 메모리에 룩업 테이블로서 저장하도록 구성될 수 있다.In addition, the step of changing and setting the packet processing mode in real time based on the result of processing the packet stream of the packet processing module by the mode management module implemented in the FPGA on the NIC card may be configured to swap the shadow table stored in the shadow table memory with the lookup table of the lookup table memory and store it as a lookup table in the lookup table memory in order to change the packet processing mode to a packet corresponding to a violation message output in real time from the flow behavior monitoring unit by referring to the shadow table stored in the shadow table memory.
또한, 상기 NIC 카드 상의 FPGA에 구현되는 패킷 처리 모듈이 상기 입력 인터페이스 모듈에서 입력받은 패킷 스트림을 처리하는 단계는, 상기 플로우가 현재의 패킷 처리 모드의 조건보다 더 많은 메시지를 생성하는 경우 현재의 패킷 처리 모드의 위반으로 판단하도록 구성될 수 있다.In addition, the step of processing a packet stream input from the input interface module by the packet processing module implemented in the FPGA on the NIC card may be configured to determine that the current packet processing mode is violated if the flow generates more messages than the condition of the current packet processing mode.
또한, 패킷 처리 모듈이 플로우 에서의 번째 주기적 메시지에 대하여 현재 모드의 가이드 타임(guide time) 를 하기 수학식에 따라 산출하고, [수학식] 여기서, 는 플로우 에서의 번째 메시지의 도착 시간이고, 는 각 주기적 메시지의 릴리스 지터(release jitter)이고, 는 플로우 에서의 현재 모드 주기가 될 수 있다.Additionally, the packet processing module flows In Guide time of the current mode for the th periodic message It is calculated according to the following mathematical formula, [Mathematical formula] Here, is the flow In is the arrival time of the second message, is the release jitter of each periodic message, is the flow The current mode cycle can be in .
또한, 패킷 처리 모듈은 상기 번째 메시지의 도착 시간이 상기 가이드 타임보다 작은 경우 해당 메시지가 긴급 모드의 행동을 나타내는 것으로 판단하고, 상기 메시지의 크기가 현재 모드의 크기 조건보다 더 큰 경우 상기 메시지가 긴급 모드의 행동을 나타내는 것으로 판단하고, 긴급 모드의 행동을 나타내는 것으로 판단하는 경우 모드 위반으로 판단하도록 구성될 수 있다.In addition, the packet processing module is If the arrival time of the th message is less than the guide time, the message is determined to indicate an action in the emergency mode, if the size of the message is greater than a size condition of the current mode, the message is determined to indicate an action in the emergency mode, and if it is determined to indicate an action in the emergency mode, it can be configured to determine a mode violation.
또한, 현재 모드의 가이드 타임(guide time) 은 상기 수학식 뿐만 아니라 패킷의 도착 시간을 제한하는 다른 어떠한 형태의 수학식으로 표현 가능할 수 있다.Also, the guide time of the current mode can be expressed not only by the above mathematical formula but also by any other mathematical formula that limits the arrival time of a packet.
개시된 발명의 일 측면에 따르면, 네트워크 스위치의 패킷 처리 모드 변경을 하드웨어에 기반하여 병렬 처리하도록 구성됨으로써, 초저지연(ultra-low latency)의 모드 변경을 할 수 있다.According to one aspect of the disclosed invention, a mode change of an ultra-low latency mode can be achieved by configuring a network switch to perform parallel processing based on hardware for changing the packet processing mode.
또한, 본 발명의 실시예에 의하면, 자율 주행 차량과 같이 긴급한 상황에서 모드 변경 지연이 거의 없이 즉시 모드를 변경할 수 있도록 구성됨으로써, 안전하고 원활한 자율 주행 프로세스를 구현할 수 있으며, 한정된 자원으로 효율적인 네트워크 스위칭을 할 수 있다.In addition, according to an embodiment of the present invention, a safe and smooth autonomous driving process can be implemented by configuring the mode to be changed immediately with almost no delay in changing the mode in an emergency situation such as an autonomous vehicle, and efficient network switching can be performed with limited resources.
도 1은 본 발명의 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치의 기본 개념을 설명하기 위한 블록 구성도이다.FIG. 1 is a block diagram illustrating the basic concept of a mode-based ultra-low-latency packet scheduling device in a hardware implementation manner according to one embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치의 블록 구성도이다.FIG. 2 is a block diagram of a mode-based ultra-low-latency packet scheduling device in a hardware implementation manner according to one embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 패킷 처리 프로세스의 모식도이다.FIG. 3 is a schematic diagram of a packet processing process according to one embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 모드 변경에 관한 신호 처리 예시도이다.FIG. 4 is an example diagram of signal processing for mode change according to one embodiment of the present invention.
도 5는 슬로우 패스에 대한 싱글 스위치의 모드 변경 딜레이의 대비 그래프이다.Figure 5 is a contrast graph of the mode change delay of a single switch for slow pass.
도 6은 패스트 패스에 대한 싱글 스위치의 모드 변경 딜레이의 대비 그래프이다.Figure 6 is a comparative graph of the mode change delay of a single switch for fast pass.
도 7은 베리 패스트 패스에 대한 싱글 스위치의 모드 변경 딜레이의 대비 그래프이다.Figure 7 is a comparative graph of the mode change delay of a single switch for the Berry Fast Pass.
도 8은 슬로우 패스에 대한 트리플 스위치의 모드 변경 딜레이의 대비 그래프이다.Figure 8 is a contrast graph of the mode change delay of the triple switch for slow pass.
도 9는 패스트 패스에 대한 트리플 스위치의 모드 변경 딜레이의 대비 그래프이다.Figure 9 is a comparative graph of the mode change delay of the triple switch for the fast pass.
도 10은 베리 패스트 패스에 대한 트리플 스위치의 모드 변경 딜레이의 대비 그래프이다.Figure 10 is a contrast graph of the mode change delay of the triple switch for the Berry Fast Pass.
도 11은 패스트 패스에 대한 HI 행동 감지 후 모드 변경까지의 시간의 대비 그래프이다.Figure 11 is a contrast graph of the time until mode change after HI action detection for a fast pass.
도 12는 베리 패스트 패스에 대한 HI 행동 감지 후 모드 변경까지의 시간의 대비 그래프이다.Figure 12 is a contrast graph of the time until mode change after HI action detection for Berry Fast Pass.
도 13은 본 발명의 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 방법의 흐름도이다.FIG. 13 is a flowchart of a mode-based ultra-low-latency packet scheduling method in a hardware implementation manner according to one embodiment of the present invention.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 개시된 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '~부' 또는 '~모듈'이라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '~부' 또는 '~모듈'이 하나의 구성요소로 구현되거나, 하나의 '~부' 또는 '~모듈'이 복수의 구성요소들을 포함하는 것도 가능하다.Like reference numerals refer to like elements throughout the specification. This specification does not describe all elements of the embodiments, and general contents in the technical field to which the disclosed invention belongs or contents that are duplicated between the embodiments are omitted. The term '~ section' or '~ module' used in the specification can be implemented by software or hardware, and according to the embodiments, multiple '~ sections' or '~ modules' can be implemented as a single component, or a single '~ section' or '~ module' can include multiple elements.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 본 명세서에서 사용되는 '~부' 또는 '~모듈'은 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 하드웨어 구성요소를 의미할 수 있다. '~부' 또는 '~모듈'에서 제공하는 기능은 복수의 구성요소에 의해 분리되어 수행되거나, 다른 추가적인 구성요소와 통합될 수도 있다. 본 명세서의 '~부' 또는 '~모듈'은 반드시 소프트웨어 또는 하드웨어에 한정되지 않으며, 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.Also, when a part is said to "include" a component, this does not mean that other components are excluded, unless otherwise specifically stated, but rather that other components may be included. The term "part" or "module" as used herein refers to a unit that processes at least one function or operation, and may refer to, for example, software, an FPGA, or a hardware component. The function provided by the "part" or "module" may be performed separately by a plurality of components, or may be integrated with other additional components. The "part" or "module" as used herein is not necessarily limited to software or hardware, and may be configured to be on an addressable storage medium, or may be configured to cause one or more processors to reproduce.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다. 각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다. 이하 첨부된 도면들을 참고하여 개시된 발명의 작용 원리 및 실시예들에 대해 설명한다.Singular expressions include plural expressions unless the context clearly indicates otherwise. The identification codes in each step are used for convenience of explanation and do not describe the order of each step. Each step may be performed in a different order from the stated order unless the context clearly indicates a specific order. Hereinafter, the operating principle and embodiments of the disclosed invention will be described with reference to the attached drawings.
도 1은 본 발명의 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치의 기본 개념을 설명하기 위한 블록 구성도이다.FIG. 1 is a block diagram illustrating the basic concept of a mode-based ultra-low-latency packet scheduling device in a hardware implementation manner according to one embodiment of the present invention.
도 1을 참조하면, 먼저 SDN(software-defined network) 제어 장치(20)와 이더넷 스위치(ethernet switch)(10)(10A)로 구성되는 기존의 SDN(software-defined network)의 구성이 도시되어 있다. 이더넷 스위치(10)는 수많은 다른 이더넷 스위치(10A)와 연결되어 있으며, SDN 제어 장치(20)는 이러한 이더넷 스위치(10)(10A)들의 네트워크 스위칭을 제어하도록 구성된다.Referring to FIG. 1, first, the configuration of an existing software-defined network (SDN) is illustrated, which is comprised of an SDN (software-defined network) control device (20) and an Ethernet switch (10) (10A). The Ethernet switch (10) is connected to numerous other Ethernet switches (10A), and the SDN control device (20) is configured to control the network switching of these Ethernet switches (10) (10A).
이더넷 스위치(10)(10A)들은 수십만개 내지 수백만개가 서로 연결되어 네트워킹을 할 수 있으며, 이러한 경우 이더넷 스위치(10)(10A)들의 네트워크 관리가 어려워질 수밖에 없다. 이에, SDN 제어 장치(20)는 네트워크 스위칭에 대한 규칙(rule) 내지는 정책(policy)을 소프트웨어를 이용하여 정의하고, 원격 모드 관리부(21)가 각 이더넷 스위치(10)(10A)의 스위칭을 제어하여 유연하고 편리하게 네트워크 제어를 구현할 수 있다. 이러한 방식은 도 1의 슬로우 패스(Slow path)를 통해 패킷 처리 프로세스가 이루어지며, 기존의 전형적인 SDN 프로세스가 이해 해당된다.Ethernet switches (10)(10A) can be connected to each other in hundreds of thousands or millions to form a network, and in such cases, network management of the Ethernet switches (10)(10A) inevitably becomes difficult. Accordingly, the SDN control device (20) defines rules or policies for network switching using software, and the remote mode management unit (21) controls the switching of each Ethernet switch (10)(10A) to implement flexible and convenient network control. In this method, a packet processing process is performed through the slow path of Fig. 1, and a typical existing SDN process is understood.
한편, 좀 더 발전된 방식으로서, 도 1의 패스트 패스(Fast path)를 통한 방식은, 이더넷 스위치(10) 내에서 자체적으로 네트워크 스위칭에 대한 규칙 내지는 정책을 정하여 좀 더 빠르게 스위칭을 수행할 수 있는 방식이다. 패스트 패스를 통한 방식에서는 각각의 이더넷 스위치(10)(10A)가 SDN 제어 장치(20)의 원격 제어에 의존하지 않으며, 이더넷 스위치(10) 자체적으로 네트워크 스위칭에 대한 규칙 내지는 정책을 설정하여 좀 더 빠르게 패킷 처리 프로세스를 할 수 있도록 구성된다. 패스트 패스를 통한 방식에서는 이더넷 스위치(10)가 소프트웨어 레이어(software layer)로 구성되는 로컬 모드 관리부(11)가 패킷 처리 프로세스를 수행하도록 구성된다.Meanwhile, as a more advanced method, the method via the Fast Path of Fig. 1 is a method in which the Ethernet switch (10) independently sets rules or policies for network switching to perform switching more quickly. In the method via the Fast Path, each Ethernet switch (10) (10A) does not depend on remote control of the SDN control device (20), and the Ethernet switch (10) itself sets rules or policies for network switching to perform packet processing more quickly. In the method via the Fast Path, the Ethernet switch (10) is configured such that a local mode management unit (11) configured as a software layer performs the packet processing process.
패스트 패스를 통한 방식에서는 소프트웨어 스위치 기반의 로컬 모드 관리부(11)가 패킷을 분석하여 긴급 상황 등을 감지하고, 네트워크 스위칭에 대한 규칙 내지는 정책을 실시간으로 변경하도록 구성되며, 해당 이더넷 스위치(10)에서는 이러한 실시간 변경된 규칙 내지는 정책을 즉시 적용하도록 구성된다. 이에, SDN 제어 장치(20)의 원격 감지나 원격 제어가 없이도 이더넷 스위치(10) 자체적으로 네트워크 스위칭에 대한 규칙 내지는 정책을 가변 적용하기 때문에 규칙이나 정책을 변경하는 데 있어서 속도를 급격하게 높일 수 있게 된다. 아울러, 로컬 모드 관리부(11)는 실시간 변경된 규칙 내지는 정책을 다른 이더넷 스위치(10A)로도 모두 전파하여 다른 이더넷 스위치(10A)에서도 변경된 규칙 내지는 정책을 즉시 적용하여 연동하도록 구성됨으로써, 전체적인 네트워크 프로세스의 효율성이 급격하게 상승하게 된다.In the method via Fast Pass, a local mode management unit (11) based on a software switch analyzes packets to detect emergency situations, etc., and is configured to change rules or policies for network switching in real time, and the Ethernet switch (10) is configured to immediately apply the changed rules or policies in real time. Accordingly, since the Ethernet switch (10) itself variably applies rules or policies for network switching without remote detection or remote control of the SDN control device (20), the speed for changing rules or policies can be rapidly increased. In addition, the local mode management unit (11) is configured to propagate all real-time changed rules or policies to other Ethernet switches (10A) so that other Ethernet switches (10A) can immediately apply the changed rules or policies and link them, thereby rapidly increasing the efficiency of the overall network process.
그러나, 패스트 패스를 통한 방식은 로컬 모드 관리부(11)가 소프트웨어 스위치에 기반하기 때문에 패킷 처리 프로세스에서의 구조적인 단점을 안고 있다. 구체적으로, 패스트 패스를 통한 방식에서는 이더넷 스위치(10)로 입력되는 패킷들의 헤더(header) 분석을 통해 긴급 상황을 감지하거나 규칙 내지는 정책의 변경을 필요성을 빠르게 파악해야 하지만, 지속적인 패킷 스트림(packet stream)의 파싱(parsing)과 분석에 상당한 지연(delay)이 발생하게 되는 문제점이 있다.However, the method via Fast Pass has a structural disadvantage in the packet processing process because the local mode management unit (11) is based on a software switch. Specifically, in the method via Fast Pass, it is necessary to quickly detect an emergency situation or determine the need for a change in a rule or policy by analyzing the header of packets input to the Ethernet switch (10), but there is a problem that a significant delay occurs in the parsing and analysis of a continuous packet stream.
이에, 본 발명에서 기존의 패스트 패스를 통한 방식을 개선하여 베리 패스트 패스(Very fast path)를 통한 네트워크 스위칭 방식을 도출하였다.Accordingly, in the present invention, a network switching method using a very fast path was derived by improving the existing method using a fast pass.
본 발명에서는 소프트웨어 스위치 기반의 로컬 모드 관리부(11)가 아닌 하드웨어 스위치에 기반한 데이터 경로 모드 관리부(12)가 하드웨어를 이용하여 패킷 헤더를 병렬적으로 처리하여 분석하고, 네트워크 스위칭에 대한 규칙 내지는 정책을 실시간 변경하여 적용하도록 구성된다. 즉, 본 발명의 실시예에 따르면 패킷 분석에 의한 긴급 상황 감지나 규칙 내지는 정책의 변경의 필요성을 빠르게 할 수 있다.In the present invention, a data path mode management unit (12) based on a hardware switch, rather than a local mode management unit (11) based on a software switch, is configured to analyze packet headers by processing them in parallel using hardware, and to change and apply rules or policies for network switching in real time. That is, according to an embodiment of the present invention, it is possible to quickly detect emergency situations through packet analysis or to quickly detect the need for changes to rules or policies.
이에, 본 발명의 실시예에 따른 베리 패스트 패스를 통한 네트워크 스위칭 방식을 통해 이더넷 스위치(10) 자체 내부에서 발생될 수 있는 네트워크 스위칭에 대한 규칙이나 정책의 변경에 있어서의 지연을 상당폭 개선하였다.Accordingly, the network switching method using the very fast pass according to the embodiment of the present invention significantly improves the delay in changing rules or policies for network switching that may occur within the Ethernet switch (10) itself.
또한, 데이터 경로 모드 관리부(12)는 실시간 변경된 규칙 내지는 정책을 다른 이더넷 스위치(10A)로도 모두 전파하여 다른 이더넷 스위치(10A)에서도 변경된 규칙 내지는 정책을 즉시 적용하여 연동하도록 구성된다.In addition, the data path mode management unit (12) is configured to propagate all real-time changed rules or policies to other Ethernet switches (10A) so that the changed rules or policies are immediately applied and linked to other Ethernet switches (10A).
도 2는 본 발명의 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치의 블록 구성도이다.FIG. 2 is a block diagram of a mode-based ultra-low-latency packet scheduling device in a hardware implementation manner according to one embodiment of the present invention.
도 2를 참조하면, 본 발명의 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치(100)는 입력 인터페이스(input interface) 모듈(110), 패킷 처리(packet processing) 모듈(120), 모드 관리(mode management) 모듈(130), 출력 결정(output decision) 모듈(140), 출력 큐(output queue) 모듈(150), 모드 전파(mode propagation) 모듈(160), 출력 인터페이스(output interface) 모듈(170), 제어 인터페이스(control interface) 모듈(180)을 포함할 수 있다.Referring to FIG. 2, a hardware-implemented mode-based ultra-low-latency packet scheduling device (100) according to one embodiment of the present invention may include an input interface module (110), a packet processing module (120), a mode management module (130), an output decision module (140), an output queue module (150), a mode propagation module (160), an output interface module (170), and a control interface module (180).
입력 인터페이스 모듈(110)은 다수의 입력 장치로부터 패킷 스트림(packet stream)을 입력받도록 구성될 수 있다. 입력 장치는 차량에 구비되는 라이다(lidar) 센서, 레이더(radar) 센서, 카메라 센서, ECU, 컴퓨팅 노드, MP3 플레이어 등이 될 수 있으나, 이에 한정되지 않는다.The input interface module (110) may be configured to receive packet streams from a plurality of input devices. The input devices may be, but are not limited to, a lidar sensor, a radar sensor, a camera sensor, an ECU, a computing node, an MP3 player, etc. installed in a vehicle.
입력 인터페이스 모듈(110)은 NIC(network interface controller) 카드에 구비될 수 있다.The input interface module (110) may be equipped with a NIC (network interface controller) card.
패킷 처리 모듈(120)은 입력 인터페이스 모듈(110)에서 입력받은 패킷 스트림을 처리하도록 구성될 수 있다. 패킷 처리 모듈(120)은 룩업 테이블(lookup table) 메모리(121), 플로우 행동(flow behavior) 모니터링부(122)를 포함하도록 구성될 수 있다.The packet processing module (120) may be configured to process a packet stream received from the input interface module (110). The packet processing module (120) may be configured to include a lookup table memory (121) and a flow behavior monitoring unit (122).
룩업 테이블 메모리(121)는 패킷 처리 모드에 관한 룩업 테이블이 저장되도록 구성될 수 있다. 여기서, 패킷 처리 모드는 현재 모드와 긴급 모드로 구성될 수 있다.The lookup table memory (121) may be configured to store a lookup table regarding packet processing modes. Here, the packet processing mode may be configured as a current mode and an emergency mode.
중요도에 따라 패킷을 스케줄링을 한 경우, 현재 모드는 LO 모드일 수 있고 긴급 모드는 HI 모드일 수 있다. 예를 들어, 패킷을 중요도 (Criticality) 모드에 따라 스케줄링 하는 경우, 시스템 모드를 LO와 HI의 두가지 모드로 구성할 수 있다. 하지만, 현재 모드가 반드시 LO 모드로 한정되는 것은 아니며, 긴급 모드가 반드시 HI 모드로 한정되는 것은 아니다. LO 모드는 MP3 플레이어의 실행에 관한 신호와 같이 긴급하지 않은 상황의 신호들을 정상적으로 스위칭하여 전달하는 모드일 수 있다. HI 모드는 자율 주행 중 장애물 발견과 같이 긴급하게 제동을 할 필요가 있는 경우, 카메라 신호라든가 제동 신호 등을 우선적으로 스위칭하여 전달하는 모드일 수 있다.When packets are scheduled according to importance, the current mode can be LO mode and the emergency mode can be HI mode. For example, when packets are scheduled according to importance (Criticality) mode, the system mode can be configured as two modes, LO and HI. However, the current mode is not necessarily limited to LO mode, and the emergency mode is not necessarily limited to HI mode. The LO mode can be a mode that normally switches and transmits signals for non-urgent situations, such as a signal regarding the execution of an MP3 player. The HI mode can be a mode that preferentially switches and transmits camera signals or braking signals in cases where braking is urgently required, such as when an obstacle is detected during autonomous driving.
여기서, 패킷 처리 모드는 신호의 중요도(criticality)에 따라 전술한 바와 같이 2가지가 아니라 더 많은 수의 모드로 설정될 수도 있다. 또한, 패킷 처리 모드는 중요도에 따른 구분에 국한되지 아니하여 어떠한 형태의 모드 구분이라도 적용 가능하다.Here, the packet processing mode may be set to more than two modes as described above, depending on the criticality of the signal. In addition, the packet processing mode is not limited to the distinction based on the criticality, and any form of mode distinction can be applied.
룩업 테이블은 신호마다 여러 가지 패킷 처리 후보 모드들이 지정되어 있도록 구성될 수 있다.The lookup table can be configured to specify multiple packet processing candidate modes for each signal.
룩업 테이블 메모리(121)는 NIC 카드 상의 별도의 메모리(memory) 소자에 구비될 수 있다.The lookup table memory (121) may be provided in a separate memory element on the NIC card.
플로우 행동 모니터링부(122)는 NIC 카드 상의 FPGA(field programmable gate array)에 논리 회로로 구현될 수 있다.The flow behavior monitoring unit (122) can be implemented as a logic circuit in an FPGA (field programmable gate array) on a NIC card.
도 3은 본 발명의 일 실시예에 따른 패킷 처리 프로세스의 모식도이다.FIG. 3 is a schematic diagram of a packet processing process according to one embodiment of the present invention.
도 3을 참조하면, 플로우 행동 모니터링부(122)는, 패킷 스트림을 파싱(parsing)하여 각 필드 헤더(field header)를 룩업 테이블 메모리(121)에 저장된 룩업 테이블을 참조하여 파악하도록 구성될 수 있다.Referring to FIG. 3, the flow behavior monitoring unit (122) can be configured to parse a packet stream and identify each field header by referring to a lookup table stored in a lookup table memory (121).
구체적으로, 도 3에 도시된 바와 같이 플로우 행동 모니터링부(122)는 FPGA에 구비되는 다수의 멀티플렉서(multiplexer)를 이용하여 입력 인터페이스 모듈(110)에서 입력받은 패킷 스트림의 각 필드 헤더(field header)를 병렬적으로 동시에 각각 파싱(parsing)하여 파악하도록 구성될 수 있다.Specifically, as illustrated in FIG. 3, the flow behavior monitoring unit (122) can be configured to simultaneously and in parallel parse and identify each field header of a packet stream received from an input interface module (110) by using a plurality of multiplexers provided in the FPGA.
FPGA의 멀티플렉서가 패킷 스트림 내의 모든 필드 헤더를 동시에 파싱하기 때문에 기존의 소프트웨어 레이어 기반의 패스트 패스를 통한 방식에 비해 패킷 처리 속도가 획기적으로 높아진다.Because the FPGA's multiplexer parses all field headers within a packet stream simultaneously, packet processing speed is dramatically increased compared to conventional software layer-based fast pass methods.
그리고 플로우 행동 모니터링부(122)는 해당 플로우의 행동이 룩업 테이블 상의 현재 패킷 처리 모드에 위반하는지 판단하고, 판단 결과 위반하는 경우 위반 메시지를 생성하여 모드 관리 모듈(130)로 실시간 출력하도록 구성될 수 있다.And the flow behavior monitoring unit (122) can be configured to determine whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and if so, to generate a violation message and output it in real time to the mode management module (130).
여기서, 플로우는 하나의 패킷 스트림에서 심-헤더(shim-header)를 기준으로 나누어지는 패킷들의 집합으로 정의될 수 있다.Here, a flow can be defined as a set of packets divided based on a shim-header in a single packet stream.
플로우 행동 모니터링부(122)는 파싱되는 각 필드 헤더를 룩업 테이블의 헤더와 각각 매칭하고, 각각 매칭된 헤더에 지정된 패킷 처리 후보 규칙들 중에서 서로 중복되는 후보 규칙을 추출할 수 있다. 플로우 행동 모니터링부(122)는 추출된 후보 규칙 중에서 현재의 플로우 처리에 대응되는 패킷 처리 규칙을 결정할 수 있다. 이때, 플로우 행동 모니터링부(122)가 현재의 플로우 처리에 대응되는 패킷 처리 규칙을 결정하는 것은, 추출된 후보 규칙들 중에서 현재의 플로우를 처리하는데 가장 적합한 패킷 처리 규칙이 무엇인지 판단하고, 현재의 플로우를 처리하는데 가장 적합한 패킷 처리 규칙을 현재의 플로우 처리에 대응되는 패킷 처리 규칙으로 결정하는 것일 수 있다.The flow behavior monitoring unit (122) can match each field header being parsed with a header of a lookup table, and extract overlapping candidate rules from among packet processing candidate rules specified in each matched header. The flow behavior monitoring unit (122) can determine a packet processing rule corresponding to the current flow processing from among the extracted candidate rules. At this time, the flow behavior monitoring unit (122) can determine the packet processing rule corresponding to the current flow processing by determining which packet processing rule is the most suitable for processing the current flow from among the extracted candidate rules, and determining the packet processing rule that is the most suitable for processing the current flow as the packet processing rule corresponding to the current flow processing.
플로우 행동 모니터링부(122)는 도 3의 Phase 1에서 각 플로우의 각 필드 헤더를 룩업 테이블의 헤더와 각각 매칭하고, 도 3의 Phase 2에서는 각각 매칭된 헤더에 지정된 패킷 처리 후보 규칙들 중에서 서로 중복되는 후보 규칙을 추출하도록 구성될 수 있다. 여기서, 패킷 처리 후보 규칙은 특정 헤더 신호가 동작할 수 있는 패킷 처리 규칙들의 집합이라고 볼 수 있다.The flow behavior monitoring unit (122) can be configured to match each field header of each flow with the header of the lookup table in
도 3에서는 각 헤더 필드로부터 aa, yy, cc의 헤더 신호가 추출되었으며, 이에 대한 룩업 테이블을 참조하여 각 헤더 신호 aa의 패킷 처리 후보 규칙 10, 20, 30, 헤더 신호 yy의 패킷 처리 후보 규칙 20, 헤더 신호 cc의 패킷 처리 후보 규칙 20, 30, 40이 각각 추출되었다. 이때, 각 패킷 처리 후보 규칙 중에서 중복되는 후보 규칙은 20이 된다. 이에, 현재 입력 신호들의 패킷 처리 규칙 즉, 신호 처리 규칙 내지는 신호 처리 정책을 20으로 감지할 수 있다.In Fig. 3, header signals of aa, yy, and cc are extracted from each header field, and by referring to the lookup table for these, packet processing candidate rules 10, 20, and 30 of each header signal aa, packet
추출된 후보 규칙이 복수개인 경우, 플로우 행동 모니터링부(122)는 위 추출된 후보 규칙 중에서 현재의 플로우 처리에 대응되는 패킷 처리 규칙을 결정할 수 있다. 예를 들어, 서로 중복되어서 추출된 후보 규칙들이 20 및 30인데, 이 중에서 현재의 플로우를 처리하는데 가장 적합한 패킷 처리 규칙이 20이면, 플로우 행동 모니터링부(122)는 후보 규칙 20을 현재의 플로우 처리에 대응되는 패킷 처리 규칙으로 결정할 수 있다.If there are multiple extracted candidate rules, the flow behavior monitoring unit (122) can determine a packet processing rule corresponding to the current flow processing from among the above extracted candidate rules. For example, if candidate rules extracted overlapping each other are 20 and 30, and the packet processing rule most suitable for processing the current flow is 20, the flow behavior monitoring unit (122) can determine
이때, 플로우 행동 모니터링부(122)는 패킷 처리 규칙 20에 대응되는 모드를 미리 설정된 현재의 패킷 처리 모드와 대비하여 모드 위반 여부를 감지하여 판단할 수도 있다. 즉, 미리 설정된 현재의 패킷 처리 모드와 동일하면 현재의 패킷 처리 모드는 모드 위반이 아니지만, 이와 다르면 현재의 패킷 처리 모드는 모드 위반이 되어, 현재의 패킷 처리 모드를 새로 추출된 후보 모드로 변경하도록 구성될 수 있다. 즉, 특정 모드에서 그 보다 중요도(criticality)가 더 높은 모드로 변경하도록 구성될 수 있다.At this time, the flow behavior monitoring unit (122) may detect and determine whether a mode violation occurs by comparing the mode corresponding to
일반적으로 차량의 주행 제어와 같은 중요도가 높은(High criticality) 모드의 경우 예측 가능 시스템(predictable system)에서 구현되고, 음악 출력과 같은 중요도가 낮은(Low criticality) 모드는 별개의 시스템에서 구현된다. 이때, 각각의 모드의 구현이 별개의 시스템에서 이루어지기 때문에 비용 및 자원 낭비가 심할 수 있다. 하지만, 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치(100)는 중요도가 높은(High criticality) 모드 및 낮은(Low criticality) 모드에 대해서 별개의 시스템이 아닌 다중 중요도(Mixed-Criticality; MC)를 이용하는 공유 시스템 하나를 통해서 구현할 수 있다. 하지만, 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치(100)가 수행하는 스케줄링이 다중 중요도(MC) 패킷 스케줄링으로 한정되는 것은 아니다.In general, high criticality modes, such as vehicle driving control, are implemented in a predictable system, and low criticality modes, such as music output, are implemented in a separate system. At this time, since the implementation of each mode is performed in a separate system, cost and resource waste may be severe. However, a mode-based ultra-low-latency packet scheduling device (100) implemented in a hardware manner according to an embodiment can be implemented through a single shared system using mixed-criticality (MC) instead of separate systems for the high criticality mode and the low criticality mode. However, the scheduling performed by the mode-based ultra-low-latency packet scheduling device (100) implemented in a hardware manner according to an embodiment is not limited to mixed-criticality (MC) packet scheduling.
모드 위반 여부의 판단은 다음의 프로세스에 따라 이루어질 수 있다.Determination of whether a mod has been violated can be made according to the following process.
플로우 행동 모니터링부(122)는 플로우가 현재의 패킷 처리 모드의 조건보다 더 많은 메시지를 생성하는 경우, 현재의 패킷 처리 모드의 위반으로 판단하도록 구성될 수 있다. 예를 들어, 차량 내에서 음악을 듣고 있어서 음악 신호가 주로 네트워킹되는 과정에서, 갑작스럽게 장애물이 발생하면 카메라의 위험 신호, 라이다 신호, 레이더 신호 등이 갑자기 많아질 수 있다. 이러한 경우 현재의 패킷 처리 모드에 대한 위반으로 판단할 수 있다.The flow behavior monitoring unit (122) may be configured to determine that if the flow generates more messages than the conditions of the current packet processing mode, it is a violation of the current packet processing mode. For example, when listening to music in a vehicle and the music signal is mainly networked, if an obstacle suddenly occurs, camera hazard signals, lidar signals, radar signals, etc. may suddenly increase. In this case, it may be determined that it is a violation of the current packet processing mode.
또한, 플로우 행동 모니터링부(122)는 메시지의 크기에 따라서도 현재의 모드의 위반 여부를 판단하도록 구성될 수 있다.Additionally, the flow behavior monitoring unit (122) can be configured to determine whether the current mode is violated based on the size of the message.
구체적으로는 플로우 행동 모니터링부(122)는 플로우 에서의 번째 주기적 메시지에 대하여 현재 모드의 가이드 타임(guide time) 를 하기 수학식 1에 따라 산출하도록 구성될 수 있다.Specifically, the flow behavior monitoring unit (122) In Guide time of the current mode for the th periodic message It can be configured to be calculated according to the following
여기서, 는 플로우 에서의 번째 메시지의 도착 시간이고, 는 각 주기적 메시지의 릴리스 지터(release jitter)이고, 는 플로우 에서의 현재 모드 주기이다.Here, is the flow In is the arrival time of the second message, is the release jitter of each periodic message, is the flow is the current mode cycle.
플로우 행동 모니터링부(122)는 번째 메시지의 도착 시간이 가이드 타임보다 작은 경우 해당 메시지가 긴급 모드의 행동을 나타내는 것으로 판단하고, 메시지의 크기가 현재 모드의 크기 조건보다 더 큰 경우 메시지가 긴급 모드의 행동을 나타내는 것으로 판단하도록 구성될 수 있다. 이때, 긴급 모드의 행동을 나타내는 것으로 판단하는 경우 모드 위반으로 판단하도록 구성될 수 있다.The flow behavior monitoring unit (122) If the arrival time of the th message is less than the guide time, the message is determined to indicate an emergency mode behavior, and if the size of the message is greater than the size condition of the current mode, the message is determined to indicate an emergency mode behavior. In this case, if it is determined to indicate an emergency mode behavior, the message can be configured to be determined to be a mode violation.
이 때, 현재 모드의 가이드 타임(guide time) 은 상기 수학식 뿐만 아니라 패킷의 도착 시간을 제한하는 다른 어떠한 형태의 수학식으로 표현 가능할 수 있다.At this time, the guide time of the current mode can be expressed not only by the above mathematical formula but also by any other mathematical formula that limits the arrival time of a packet.
한편, 모드 관리 모듈(130)은 패킷 처리 모듈(120)의 패킷 스트림의 처리 결과에 기반하여 패킷 처리 모드를 실시간 변경 설정하도록 구성될 수 있다. 즉, 특정 패킷 처리 모드에서 그 보다 더 중요도가 높은 패킷 처리 모드로 실시간 변경 설정하여 중요도가 높은 신호 내지는 메시지의 스위칭을 우선적으로 처리하도록 설정할 수 있다.Meanwhile, the mode management module (130) may be configured to change the packet processing mode in real time based on the result of processing the packet stream of the packet processing module (120). That is, it may be set to change in real time from a specific packet processing mode to a packet processing mode with higher priority so as to give priority to the switching of a signal or message with higher priority.
모드 관리 모듈(130)은 NIC 카드 상의 FPGA에 논리 회로로 구현되고 NIC 카드 상의 메모리 소장에 구현될 수 있다.The mode management module (130) may be implemented as a logic circuit in an FPGA on a NIC card and may be implemented in a memory storage on the NIC card.
그리고 모드 관리 모듈(130)은 실시간 변경 설정되는 패킷 처리 모드를 다른 스위치 장치로 전파하도록 모드 전파 모듈(160)로 요청할 수 있다. 네트워크 스위치는 서로 동일한 패킷 처리 모드로 연동되어야 전체적인 네트워크 전달 신호가 줄어들기 때문에 다른 네트워크 스위치가 이를 직접 감지하지 않아도 패킷 처리 모드의 전파와 수신을 통해 즉시 연동하도록 구성될 수 있다.And the mode management module (130) can request the mode propagation module (160) to propagate the packet processing mode that is set to be changed in real time to other switch devices. Since the network switches must be interlocked with each other in the same packet processing mode to reduce the overall network transmission signal, they can be configured to interlock immediately through propagation and reception of the packet processing mode even if other network switches do not directly detect it.
모드 관리 모듈(130)은 그림자 테이블 메모리(131), 모드 변경 핸들링부(132)를 포함하도록 구성될 수 있다.The mode management module (130) may be configured to include a shadow table memory (131) and a mode change handling unit (132).
그림자 테이블 메모리(131)는 패킷 처리 모드에 대응되는 그림자 테이블이 저장되도록 구성될 수 있다.The shadow table memory (131) can be configured to store a shadow table corresponding to a packet processing mode.
모드 변경 핸들링부(132)는 그림자 테이블 메모리(131)에 저장된 그림자 테이블을 참조하여 플로우 행동 모니터링부(122)에서 실시간 출력되는 위반 메시지에 해당되는 패킷 처리 모드로 변경하기 위해 해당 그림자 테이블을 룩업 테이블 메모리(121)의 룩업 테이블과 스왑(swap)하여 룩업 테이블 메모리(121)에 룩업 테이블로서 저장하도록 구성될 수 있다.The mode change handling unit (132) may be configured to change the packet processing mode corresponding to a violation message output in real time from the flow behavior monitoring unit (122) by referring to the shadow table stored in the shadow table memory (131), swap the shadow table with the lookup table of the lookup table memory (121), and store the shadow table as a lookup table in the lookup table memory (121).
모드 변경 핸들링부(132)는 플로우 행동 모니터링부(122)에서 모드 위반으로 판단된 경우, 플로우 행동 모니터링부(122)에서 추출된 후보 모드를 현재의 모드로 변경하도록 구성될 수 있다.The mode change handling unit (132) can be configured to change the candidate mode extracted from the flow behavior monitoring unit (122) to the current mode when the flow behavior monitoring unit (122) determines that a mode violation has occurred.
출력 결정 모듈(140)은 모드 관리 모듈(130)에서 실시간 변경 설정되는 패킷 처리 모드에 따라 패킷의 우선 순위를 설정하여 출력하도록 구성될 수 있다.The output decision module (140) can be configured to set the priority of a packet and output it according to the packet processing mode that is changed in real time in the mode management module (130).
출력 결정 모듈(140)은 NIC 카드 상의 FPGA에 논리 회로로 구현될 수 있다.The output decision module (140) can be implemented as a logic circuit in an FPGA on a NIC card.
출력 큐 모듈(150)은 출력 결정 모듈(140)에서 우선 순위(priority)가 설정된 패킷이 저장되도록 구성될 수 있다. 출력 큐 모듈(150)은 NIC 카드 상의 메모리 소자에 구비될 수 있다.The output queue module (150) may be configured to store packets whose priority is set in the output decision module (140). The output queue module (150) may be provided in a memory device on a NIC card.
출력 큐 모듈(150)은 입력 장치 별로 출력 큐(151)가 구비될 수 있다. 즉, 입력 장치가 MP3 플레이어이면 MP3 플레이어를 위한 출력 큐(151)가 별도로 구비되고, 입력 장치가 카메라 센서이면 카메라 센서를 위한 출력 큐(151)가 별도로 구비될 수 있다.The output queue module (150) may be equipped with an output queue (151) for each input device. That is, if the input device is an MP3 player, a separate output queue (151) for the MP3 player may be equipped, and if the input device is a camera sensor, a separate output queue (151) for the camera sensor may be equipped.
모드 전파 모듈(160)은 모드 관리 모듈(130)의 요청에 따라 해당 모드를 른 스위치 장치로 전파하도록 구성될 수 있다. 모드 전파 모듈(160)은 별도의 채널(channel)을 통해 모드 전파 통지 신호를 전파할 수 있다. 그리고 다른 스위치 장치들이 모드 전파 통지 신호를 수신하면, 출력 큐를 모두 비우고, 새로 전파되는 패킷 처리 모드에 따라 네트워크 스위칭을 수행하도록 구성될 수 있다.The mode propagation module (160) may be configured to propagate the corresponding mode to other switch devices according to a request from the mode management module (130). The mode propagation module (160) may propagate a mode propagation notification signal through a separate channel. When other switch devices receive the mode propagation notification signal, they may be configured to empty all output queues and perform network switching according to the newly propagated packet processing mode.
모드 전파 모듈(160)은 NIC 카드 상의 FPGA에 논리 회로로 구현될 수 있다.The mode propagation module (160) can be implemented as a logic circuit in an FPGA on a NIC card.
출력 인터페이스 모듈(170)은 출력 큐 모듈(150)에 저장된 패킷을 우선 순위에 따라 해당 출력 장치로 출력하도록 구성될 수 있다.The output interface module (170) can be configured to output packets stored in the output queue module (150) to the corresponding output device according to priority.
출력 인터페이스 모듈(170)은 NIC 카드 상에 구비될 수 있다.The output interface module (170) may be provided on a NIC card.
출력 인터페이스 모듈(170)은 출력 큐 모듈(150)의 출력 큐에 저장된 패킷을 해당 출력 장치로 각각 출력하는 다수의 출력 인터페이스부(171)를 포함하도록 구성될 수 있다. 여기서, 출력 장치는 스피커, 브레이크 구동 장치, 휠 구동기, 엔진 구동 장치, 와이퍼 구동 장치 등이 될 수 있다.The output interface module (170) may be configured to include a plurality of output interface units (171) that output packets stored in the output queue of the output queue module (150) to respective output devices. Here, the output devices may be speakers, brake driving devices, wheel driving devices, engine driving devices, wiper driving devices, etc.
제어 인터페이스 모듈(180)은 SDN(software defined network) 제어 장치(미도시)의 오픈플로우(OpenFlow) 메시지를 수신하여 모드 관리 모듈(130)로 입력하도록 구성될 수 있다. SDN 제어 장치(미도시)는 평상시에는 네트워크 스위칭에 관여하지 않더라도 전체적인 네트워크 스위칭을 제어가 필요할 때 오픈플로우 메시지를 통해 패킷 처리 모드의 변경이나 제어에 관여할 수 있다. SDN 제어 장치(미도시)는 새로운 패킷 처리 모드를 추가하거나 변경할 수도 있으며, 그림자 테이블을 업데이트할 수도 있다.The control interface module (180) may be configured to receive an OpenFlow message from an SDN (software defined network) control device (not shown) and input it to the mode management module (130). Even though the SDN control device (not shown) is not normally involved in network switching, it may be involved in changing or controlling packet processing modes through OpenFlow messages when overall network switching control is required. The SDN control device (not shown) may add or change a new packet processing mode and update a shadow table.
모드 관리 모듈(130)은 SDN 제어 장치에서 수신되는 오픈플로우 메시지에 따라 운용되도록 구성될 수 있다.The mode management module (130) can be configured to operate according to an openflow message received from the SDN control device.
도 4는 본 발명의 일 실시예에 따른 모드 변경에 관한 신호 처리 예시도이다.FIG. 4 is an example diagram of signal processing for mode change according to one embodiment of the present invention.
도 4에는 패킷 처리 모드가 변경되는 신호 처리도가 클럭(clock) 단위 신호로 표현되어 있다.Figure 4 shows a signal processing diagram in which the packet processing mode is changed, expressed as a clock unit signal.
도 4를 참조하면, 입력 신호 In_1, In_2가 입력되는데, In_1에서 A_2가 입력될 때, 패킷 처리 모드 위반이 1 클럭 신호만에 감지되었음을 알 수 있으며, 다시 1 클럭 신호 만에 긴급 모드로 모드가 변환되는 것을 알 수 있다. 초저지연(ULL) 스위칭에 의해 모드 변경이 이루어짐을 알 수 있다.Referring to Fig. 4, input signals In_1 and In_2 are input, and when A_2 is input from In_1, it can be seen that packet processing mode violation is detected with just 1 clock signal, and the mode is changed to emergency mode with just 1 clock signal again. It can be seen that the mode change is made by ultra-low latency (ULL) switching.
한편, 도 5 및 도 6은 싱글 스위치(single switch)와 트리플 스위치(triple switch)에서의 모든 변경 딜레이(mode change delay)의 예시를 도시하고 있다.Meanwhile, FIGS. 5 and 6 illustrate examples of mode change delay in a single switch and a triple switch.
도 5는 슬로우 패스에 대한 싱글 스위치의 모드 변경 딜레이의 대비 그래프이고, 도 6은 패스트 패스에 대한 싱글 스위치의 모드 변경 딜레이의 대비 그래프이고, 도 7은 베리 패스트 패스에 대한 싱글 스위치의 모드 변경 딜레이의 대비 그래프이고, 도 8은 슬로우 패스에 대한 트리플 스위치의 모드 변경 딜레이의 대비 그래프이고, 도 9는 패스트 패스에 대한 트리플 스위치의 모드 변경 딜레이의 대비 그래프이고, 도 10은 베리 패스트 패스에 대한 트리플 스위치의 모드 변경 딜레이의 대비 그래프이다.FIG. 5 is a contrast graph of mode change delay of a single switch for a slow pass, FIG. 6 is a contrast graph of mode change delay of a single switch for a fast pass, FIG. 7 is a contrast graph of mode change delay of a single switch for a very fast pass, FIG. 8 is a contrast graph of mode change delay of a triple switch for a slow pass, FIG. 9 is a contrast graph of mode change delay of a triple switch for a fast pass, and FIG. 10 is a contrast graph of mode change delay of a triple switch for a very fast pass.
도 5에서는 슬로우 패스에 따른 기존의 SDN에 관한 것이며, 스위칭 룰(rule)의 수에 따라 모드 변경 딜레이가 발생하는 시간의 예시를 도시하고 있다. 즉, 룰의 수가 늘어남에 따라 20㎳에서 50 ㎳까지 지연이 증가함을 알 수 있다.Fig. 5 shows an example of a time for mode change delay to occur depending on the number of switching rules in a conventional SDN according to slow path. That is, it can be seen that the delay increases from 20 ms to 50 ms as the number of rules increases.
도 6에서는 패스트 패스에 따른 소프트웨어 기반의 네트워크 스위치에서 200㎲에서 800㎲까지 모드 변경 지연 시간이 급격하게 증가함을 알 수 있다. 그러나, 도 7에서는 베리 패스트 패스에 따른 하드웨어 기반의 네트워크 스위치를 나타내며, 룰의 개수가 늘어남에도 불구하고, 모드 변경 지연 시간이 2.2㎲에서 거의 동일하게 유지되는 것을 나타낸다.In Fig. 6, it can be seen that the mode change delay time increases rapidly from 200 μs to 800 μs in a software-based network switch according to Fast Pass. However, Fig. 7 shows a hardware-based network switch according to Very Fast Pass, and shows that the mode change delay time remains almost the same at 2.2 μs even though the number of rules increases.
마찬가지로 도 8에서는 룰의 개수에 따라 40 ㎳에서 100 ㎳까지 발생하며, 도 9에서는 룰의 개수에 따라 2000㎲에서 조금씩 더 증가함을 알 수 있다. 그러나, 도 10에서는 룰의 개수가 변하여도 4.5㎲에서 유지됨을 알 수 있다. 본 발명에 따른 베리 패스트 패스를 따르면, 기본적으로 모드 변경 지연의 시간 자체가 다른 방식에 비해 현저히 낮을 뿐만 아니라, 모드 전파에 의해 룰의 개수가 늘어나도 모드 변경 지연의 시간 자체가 그대로 유지되고 있음을 알 수 있다.Likewise, in Fig. 8, it can be seen that it occurs from 40 ms to 100 ms depending on the number of rules, and in Fig. 9, it increases slightly from 2000 μs depending on the number of rules. However, in Fig. 10, it can be seen that it is maintained at 4.5 μs even if the number of rules changes. By following the very fast pass according to the present invention, not only is the time of the mode change delay itself significantly lower than other methods, but it can also be seen that the time of the mode change delay itself is maintained the same even if the number of rules increases due to mode propagation.
도 11은 패스트 패스에 대한 HI 행동 감지 후 모드 변경까지의 시간의 대비 그래프이며, 도 12는 베리 패스트 패스에 대한 HI 행동 감지 후 모드 변경까지의 시간의 대비 그래프이다.Figure 11 is a contrast graph of the time until mode change after HI action detection for Fast Pass, and Figure 12 is a contrast graph of the time until mode change after HI action detection for Very Fast Pass.
도 11은 패스트 패스에 따른 종단간(end-to-end) 메시지 전송 시간이고, 도 12는 베리 패스트 패스에 따른 종단간 메시지 전송 시간을 나타낸다. 각각 모드 변경이 발생했을 경우의 종단간 메시지 전송 시간을 나타내며, 파란색 그래프의 HI 행동(HI behavior)이 나타나는 경우, 즉시, 모드 변경이 이루어지고 현재 모드의 메시지들의 전송이 중단되고 긴급 모드의 메시지들이 우선적으로 훨씬 더 짧은 시간동안 전송되고 있음을 나타낸다. 이때, 패스트 패스는 20 메시지에서 HI 행동을 감지하여 121 메시지에서 모드 변경이 이루어졌으나, 베리 패스트 패스에서는 20 메시지에서 HI 행동을 감지하자마자 21 메시지에서 즉시 모드 변경이 이루어졌음을 알 수 있다.Fig. 11 shows the end-to-end message transmission time according to Fast Pass, and Fig. 12 shows the end-to-end message transmission time according to Very Fast Pass. Each shows the end-to-end message transmission time when a mode change occurs, and when the HI behavior of the blue graph appears, it indicates that the mode change occurs immediately, transmission of messages in the current mode is stopped, and messages in the emergency mode are transmitted with priority for a much shorter time. At this time, it can be seen that Fast Pass detected the HI behavior at
이상에서 설명된 구성요소들의 성능에 대응하여 적어도 하나의 구성요소가 추가되거나 삭제될 수 있다. 또한, 구성요소들의 상호 위치는 시스템의 성능 또는 구조에 대응하여 변경될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.At least one component may be added or deleted in response to the performance of the components described above. In addition, it will be readily understood by those skilled in the art that the mutual positions of the components may be changed in response to the performance or structure of the system.
도 13은 본 발명의 일 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 방법의 흐름도이다. 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 구성이 추가되거나 삭제될 수 있음은 물론이다.Fig. 13 is a flow chart of a mode-based ultra-low delay packet scheduling method in a hardware implementation manner according to one embodiment of the present invention. This is only a preferred embodiment for achieving the purpose of the present invention, and it is obvious that some configurations may be added or deleted as needed.
도 13을 참조하면, NIC(network interface controller) 카드에 구비되는 입력 인터페이스 모듈(110)이 다수의 입력 장치로부터 패킷 스트림(packet stream)을 입력받을 수 있다(1001).Referring to FIG. 13, an input interface module (110) equipped on a NIC (network interface controller) card can receive packet streams from multiple input devices (1001).
다음으로, NIC 카드 상의 FPGA(field programmable gate array)에 구현되는 패킷 처리 모듈(120)이 입력 인터페이스 모듈(110)에서 입력받은 패킷 스트림을 처리할 수 있다(1002).Next, a packet processing module (120) implemented in an FPGA (field programmable gate array) on a NIC card can process a packet stream received from an input interface module (110) (1002).
여기서, 패킷 처리 모듈(120)은 FPGA에 구비되는 다수의 멀티플렉서(multiplexer)를 이용하여 입력 인터페이스 모듈(110)에서 입력받은 패킷 스트림의 각 필드 헤더(field header)를 병렬적으로 동시에 각각 파싱(parsing)하여 파악하도록 구성될 수 있다.Here, the packet processing module (120) can be configured to simultaneously and in parallel parse and identify each field header of the packet stream received from the input interface module (110) by using a plurality of multiplexers provided in the FPGA.
이때, 패킷 처리 모듈(120)은 각 필드 헤더를 룩업 테이블 메모리(121)에 저장된 룩업 테이블을 참조하여 파악하고, 해당 플로우의 행동이 룩업 테이블 상의 현재 패킷 처리 모드에 위반하는지 판단하고, 판단 결과 위반하는 경우 위반 메시지를 생성하여 모드 관리 모듈(130)로 실시간 출력하도록 구성될 수 있다.At this time, the packet processing module (120) can be configured to identify each field header by referring to the lookup table stored in the lookup table memory (121), determine whether the behavior of the corresponding flow violates the current packet processing mode on the lookup table, and, if the determination result is violated, generate a violation message and output it in real time to the mode management module (130).
그리고 패킷 처리 모듈(120)은 각 필드 헤더를 룩업 테이블의 헤더와 각각 매칭하고, 각각 매칭된 헤더에 지정된 패킷 처리 후보 모드들 중에서 서로 중복되는 후보 모드를 추출하고, 추출된 후보 모드를 이미 설정된 모드와 대비하여 모드 위반 여부를 감지하여 판단하도록 구성될 수 있다.In addition, the packet processing module (120) may be configured to match each field header with a header of a lookup table, extract overlapping candidate modes from among packet processing candidate modes specified in each matched header, and detect and determine whether a mode is violated by comparing the extracted candidate modes with the already set modes.
그리고 패킷 처리 모듈(120)은 플로우가 현재의 모드의 조건보다 더 많은 메시지를 생성하는 경우 현재의 패킷 처리 모드의 위반으로 판단하도록 구성될 수 있다.And the packet processing module (120) can be configured to determine that a violation of the current packet processing mode occurs when the flow generates more messages than the conditions of the current mode.
한편, 패킷 처리 모듈(120)은 플로우 에서의 번째 주기적 메시지에 대하여 현재 모드의 가이드 타임(guide time) 를 하기 수학식 2에 따라 산출하도록 구성될 수 있다.Meanwhile, the packet processing module (120) In Guide time of the current mode for the th periodic message It can be configured to be calculated according to the following
여기서, 는 플로우 에서의 번째 메시지의 도착 시간이고, 는 각 주기적 메시지의 릴리스 지터(release jitter)이고, 는 플로우 에서의 현재 모드 주기이다.Here, is the flow In is the arrival time of the second message, is the release jitter of each periodic message, is the flow is the current mode cycle.
그리고 패킷 처리 모듈(120)은 번째 메시지의 도착 시간이 가이드 타임보다 작은 경우 해당 메시지가 긴급 모드의 행동을 나타내는 것으로 판단하고, 메시지의 크기가 현재 모드의 크기 조건보다 더 큰 경우 메시지가 긴급 모드의 행동을 나타내는 것으로 판단하고, 긴급 모드의 행동을 나타내는 것으로 판단하는 경우 모드 위반으로 판단하도록 구성될 수 있다.And the packet processing module (120) If the arrival time of the th message is less than the guide time, the message is judged to indicate an emergency mode behavior, if the size of the message is greater than the size condition of the current mode, the message is judged to indicate an emergency mode behavior, and if it is judged to indicate an emergency mode behavior, it can be configured to determine a mode violation.
이 때, 현재 모드의 가이드 타임(guide time) 은 상기 수학식 뿐만 아니라 패킷의 도착 시간을 제한하는 다른 어떠한 형태의 수학식으로 표현 가능할 수 있다.At this time, the guide time of the current mode can be expressed not only by the above mathematical formula but also by any other mathematical formula that limits the arrival time of a packet.
다음으로, NIC 카드 상의 FPGA에 구현되는 모드 관리 모듈(130)이 패킷 처리 모듈(120)의 패킷 스트림의 처리 결과에 기반하여 패킷 처리 모드를 실시간 변경 설정한다(1003).Next, a mode management module (130) implemented in an FPGA on a NIC card changes the packet processing mode in real time based on the processing result of the packet stream of the packet processing module (120) (1003).
이때, 모드 관리 모듈(130)은 그림자 테이블 메모리(131)에 저장된 그림자 테이블을 참조하여 플로우 행동 모니터링부(122)에서 실시간 출력되는 위반 메시지에 해당되는 패킷 처리 모드로 변경하기 위해 해당 그림자 테이블을 룩업 테이블 메모리(131)의 룩업 테이블과 스왑하여 룩업 테이블 메모리(131)에 룩업 테이블로서 저장하도록 구성될 수 있다.At this time, the mode management module (130) may be configured to change the packet processing mode corresponding to the violation message output in real time from the flow behavior monitoring unit (122) by referring to the shadow table stored in the shadow table memory (131) and swap the shadow table with the lookup table of the lookup table memory (131) and store it as a lookup table in the lookup table memory (131).
다음으로, NIC 카드 상의 FPGA에 구현되는 출력 결정 모듈(140)이 패킷 처리 모듈(120)에서 처리되는 패킷 스트림에서 패킷의 우선 순위를 설정하고 모드 관리 모듈(130)에서 실시간 변경 설정되는 패킷 처리 모드를 출력하여 메모리 상의 출력 큐 모듈(150)에 저장한다(1004).Next, the output decision module (140) implemented in the FPGA on the NIC card sets the priority of packets in the packet stream processed by the packet processing module (120) and outputs the packet processing mode set to be changed in real time by the mode management module (130) and stores it in the output queue module (150) on the memory (1004).
다음으로, NIC 카드 상에 구비되는 출력 인터페이스 모듈(170)이 출력 큐 모듈(150)에 저장된 패킷을 우선 순위에 따라 해당 출력 장치로 출력한다(1005).Next, the output interface module (170) equipped on the NIC card outputs packets stored in the output queue module (150) to the corresponding output device according to priority (1005).
다음으로, NIC 카드 상의 FPGA에 구현되는 모드 관리 모듈(130)이 실시간 변경 설정되는 패킷 처리 모드를 다른 스위치 장치로 전파하도록 요청한다(1006).Next, the mode management module (130) implemented in the FPGA on the NIC card requests that the packet processing mode being changed in real time be propagated to other switch devices (1006).
다음으로, NIC 카드 상에 구비되는 모드 전파 모듈(160)이 모드 관리 모듈(130)의 요청에 따라 해당 모드를 다른 스위치 장치로 전파한다(1007).Next, the mode propagation module (160) equipped on the NIC card propagates the corresponding mode to another switch device (1007) according to the request of the mode management module (130).
입력 인터페이스 모듈(110), 패킷 처리 모듈(120), 모드 관리 모듈(130), 출력 결정 모듈(140), 출력 큐 모듈(150), 모드 전파 모듈(160), 출력 인터페이스 모듈(170) 및 제어 인터페이스 모듈(180)은 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치(100)에 포함된 복수개의 프로세서 및 메모리 중 어느 하나의 프로세서 또는 메모리를 포함할 수 있다. 또한, 지금까지 설명된 본 발명의 실시예 및 앞으로 설명할 실시예에 따른 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치(100)의 제어 방법은, 프로세서에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다.The input interface module (110), the packet processing module (120), the mode management module (130), the output decision module (140), the output queue module (150), the mode propagation module (160), the output interface module (170), and the control interface module (180) may include any one of the processors or memories included in the hardware-implemented mode-based ultra-low-latency packet scheduling device (100). In addition, the control method of the hardware-implemented mode-based ultra-low-latency packet scheduling device (100) according to the embodiments of the present invention described so far and the embodiments to be described in the future may be implemented in the form of a program that can be driven by a processor.
여기서 프로그램은, 프로그램 명령, 데이터 파일 및 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 프로그램은 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치(100)의 제어를 위한 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 전술한 하드웨어 구현 방식의 모드 기반 초저지연 패킷 스케줄링 장치(100)의 제어 방법을 구현하기 위한 프로그램은, 프로세서에 의해 판독 가능한 기록매체에 기록될 수 있다. 이때, 기록매체는 메모리일 수 있다.Here, the program may include program commands, data files, and data structures, either singly or in combination. The program may be designed and produced using machine language codes or high-level language codes. The program may be specially designed to implement a method for controlling the above-described hardware-implemented mode-based ultra-low-latency packet scheduling device (100), or may be implemented using various functions or definitions that are known and available to those skilled in the art in computer software. The program for implementing the above-described hardware-implemented mode-based ultra-low-latency packet scheduling device (100) control method may be recorded on a recording medium readable by a processor. At this time, the recording medium may be a memory.
메모리는 전술한 동작 및 후술하는 동작을 수행하는 프로그램을 저장할 수 있으며, 메모리는 저장된 프로그램을 실행시킬 수 있다. 프로세서와 메모리가 복수인 경우에, 이들이 하나의 칩에 집적되는 것도 가능하고, 물리적으로 분리된 위치에 마련되는 것도 가능하다. 메모리는 데이터를 일시적으로 기억하기 위한 S램(Static Random Access Memory, S-RAM), D랩(Dynamic Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다. 또한, 메모리는 제어 프로그램 및 제어 데이터를 장기간 저장하기 위한 롬(Read Only Memory), 이피롬(Erasable Programmable Read Only Memory: EPROM), 이이피롬(Electrically Erasable Programmable Read Only Memory: EEPROM) 등의 비휘발성 메모리를 포함할 수 있다. 프로세서는 각종 논리 회로와 연산 회로를 포함할 수 있으며, 메모리로부터 제공된 프로그램에 따라 데이터를 처리하고, 처리 결과에 따라 제어 신호를 생성할 수 있다.The memory can store a program that performs the aforementioned operations and the operations described below, and the memory can execute the stored program. In the case where there are a plurality of processors and memories, they can be integrated into a single chip or provided in physically separate locations. The memory can include volatile memory such as S-RAM (Static Random Access Memory) and D-RAM (Dynamic Random Access Memory) for temporarily storing data. In addition, the memory can include nonvolatile memory such as ROM (Read Only Memory), EPROM (Erasable Programmable Read Only Memory), and EEPROM (Electrically Erasable Programmable Read Only Memory) for long-term storing a control program and control data. The processor can include various logic circuits and arithmetic circuits, and can process data according to a program provided from the memory and generate a control signal according to the processing result.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.As described above, the disclosed embodiments have been described with reference to the attached drawings. Those skilled in the art to which the present invention pertains will understand that the present invention can be implemented in forms other than the disclosed embodiments without changing the technical idea or essential features of the present invention. The disclosed embodiments are exemplary and should not be construed as limiting.
Claims (20)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2023-0059469 | 2023-05-08 | ||
KR20230059469 | 2023-05-08 | ||
KR1020230086376A KR20240162412A (en) | 2023-05-08 | 2023-07-04 | Mode-based ultra-low latency packet scheduling apparatus and method of hardward implementation |
KR10-2023-0086376 | 2023-07-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024232600A1 true WO2024232600A1 (en) | 2024-11-14 |
Family
ID=93430323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2024/005972 WO2024232600A1 (en) | 2023-05-08 | 2024-05-03 | Method and device for ultra-low latency packet scheduling based on hardware-implemented mode |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024232600A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085978A1 (en) * | 2002-11-04 | 2004-05-06 | Bly Keith Michael | System and method for prioritizing and queuing traffic |
US6938097B1 (en) * | 1999-07-02 | 2005-08-30 | Sonicwall, Inc. | System for early packet steering and FIFO-based management with priority buffer support |
US20070248110A1 (en) * | 2006-04-20 | 2007-10-25 | Cisco Technology, Inc., A California Corporation | Dynamically switching streams of packets among dedicated and shared queues |
US7346000B1 (en) * | 2002-07-03 | 2008-03-18 | Netlogic Microsystems, Inc. | Method and apparatus for throttling selected traffic flows |
CN105634986A (en) * | 2014-11-30 | 2016-06-01 | 中国科学院沈阳自动化研究所 | Switch implementation method and system |
-
2024
- 2024-05-03 WO PCT/KR2024/005972 patent/WO2024232600A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938097B1 (en) * | 1999-07-02 | 2005-08-30 | Sonicwall, Inc. | System for early packet steering and FIFO-based management with priority buffer support |
US7346000B1 (en) * | 2002-07-03 | 2008-03-18 | Netlogic Microsystems, Inc. | Method and apparatus for throttling selected traffic flows |
US20040085978A1 (en) * | 2002-11-04 | 2004-05-06 | Bly Keith Michael | System and method for prioritizing and queuing traffic |
US20070248110A1 (en) * | 2006-04-20 | 2007-10-25 | Cisco Technology, Inc., A California Corporation | Dynamically switching streams of packets among dedicated and shared queues |
CN105634986A (en) * | 2014-11-30 | 2016-06-01 | 中国科学院沈阳自动化研究所 | Switch implementation method and system |
Non-Patent Citations (1)
Title |
---|
PARK TAEJUNE; LEE KILHO: "Supporting ultra-low latency mixed-criticality communication using hardware-based data plane architecture", JOURNAL OF NETWORK AND COMPUTER APPLICATIONS, vol. 204, 5 May 2022 (2022-05-05), US , XP087090892, ISSN: 1084-8045, DOI: 10.1016/j.jnca.2022.103401 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3573546B2 (en) | Parallel process scheduling method for parallel computer and processing device for parallel computer | |
US6697870B1 (en) | Method and apparatus for real-time protocol analysis using an auto-throttling front end process | |
USRE43825E1 (en) | System and method for data forwarding in a programmable multiple network processor environment | |
WO2020184827A1 (en) | Electronic device and method of controlling same | |
WO2021075671A1 (en) | Centralized network configuration entity and time-sensitive network control system comprising same | |
WO2012026679A2 (en) | Power consumption prediction method for clock-gating integrated circuit device | |
WO2020096282A1 (en) | Service-aware serverless cloud computing system | |
Lv et al. | Formal analysis of TSN scheduler for real-time communications | |
WO2016148449A1 (en) | Shared resource access arbitration method, and shared resource access arbitration device and shared resource access arbitration system for performing same | |
WO2020171472A1 (en) | Electronic device and control method thereof | |
WO2022158799A1 (en) | Server for controlling data transmission through data pipeline and operating method thereof | |
WO2024232600A1 (en) | Method and device for ultra-low latency packet scheduling based on hardware-implemented mode | |
WO2023163372A1 (en) | Method for implementing and evaluating tsn traffic scheduling | |
EP4388793A1 (en) | A method and a system for power management of the one or more base stations in a wireless communication network | |
Frühwirth et al. | TTEthernet SW-based end system for AUTOSAR | |
WO2019203512A1 (en) | Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor | |
WO2020159269A1 (en) | Processing computational models in parallel | |
WO2022114900A1 (en) | Method and device for determining order guarantee unit in multi-instruction queue storage | |
EP3918477A1 (en) | Processing computational models in parallel | |
KR100321274B1 (en) | Pipeline-type multi-processor system | |
WO2023063802A1 (en) | A method and a system for power management of the one or more base stations in a wireless communication network | |
WO2020080718A1 (en) | Electronic device for controlling data processing of modularized neural network, and method for controlling same | |
WO2021002523A1 (en) | Neuromorphic device | |
Park et al. | Supporting ultra-low latency mixed-criticality communication using hardware-based data plane architecture | |
Leyrer et al. | Analysis and implementation of multi-protocol gigabit Ethernet switch for real-time control systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24803654 Country of ref document: EP Kind code of ref document: A1 |