Hardware equipment for automatically detecting and deploying QoS (Quality of Service) strategy
Through hardware devices, the QoS strategy in the automotive communication system is managed, and the problems of network data traffic priority sorting and arbitration complexity are solved, which improves processing efficiency and reduces the manufacturing cost of ECU.
Patent Information
- Application Number
- CN202280098394.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-25
- Publication Date
- 2025-03-07
AI Technical Summary
Prioritization and arbitration of network data traffic in automotive communication systems are becoming increasingly complex, and the prior art is difficult to process efficiently, resulting in an increase in CPU processing volume of ECU and an increase in manufacturing costs.
Through hardware device management quality of service (QoS) policies, reduce CPU processing in the ECU, and integrate hardware devices in intermediate network devices to determine and execute requested QoS policies, realizing frame priority sorting and arbitration.
It improves the processing efficiency of network data traffic in the communication system, reduces the manufacturing cost of ECUs, and solves the problem of end-to-end delay of network data traffic between ECUs.
Smart Images

Figure CN119586107A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to automatically detecting quality of service (QoS) policies in frames in network data traffic in a communication system, and to automatic prioritization and arbitration of frames in the network data traffic. The present invention provides a hardware device for a communication system, wherein the hardware device is used to control the prioritization and arbitration of frames in the network data traffic. The hardware device is suitable for an automotive communication system. Background Art
[0002] The automotive industry is shifting its focus to the driving experience. Software applications have become a key differentiator, reflecting the evolution of vehicles into "smartphones on wheels". Communication between automotive ECUs (ECU = Electronic Control Unit) and prioritization of network data traffic between automotive ECUs are becoming increasingly complex due to the growing number of functions and the resulting significant increase in network data traffic. Different approaches such as Controller Area Network (CAN), Local Interconnect Network (LIN) or Automotive Ethernet are used to handle network data traffic in vehicles. Due to the significant increase in network data traffic in vehicles, more powerful technical solutions are needed to handle network data traffic efficiently. Summary of the invention
[0003] In view of the above situation, an object of the present invention is to provide a hardware implementation method for processing network data traffic in a communication system with high efficiency and low cost.
[0004] Accordingly, the management of QoS policies is delegated to hardware devices to reduce the amount of processing on the CPU in the ECU. QoS policies can be executed better and faster in the communication system. In addition, since the management of QoS policies is more efficient, it is possible to integrate a weak and low-cost CPU into the ECU, thereby reducing the manufacturing cost of the ECU.
[0005] Accordingly, a hardware device is provided that can be integrated into an intermediate network device to determine and execute the requested QoS policy. In this way, end-to-end latency of network data traffic between ECUs can be resolved even in the presence of intermediate network devices, etc. In addition, a system designer is enabled to express how multiple QoS policies should be combined and processed.
[0006] These and other objects are achieved by the technical solutions of the invention as described in the independent claims. Advantageous implementations are further defined in the dependent claims.
[0007] A first aspect of the present invention provides a hardware device for a communication system. The hardware device includes: a processor for determining a set of quality of service (QoS) policies based on network data traffic between one or more communication system participants in the communication system; a set of programmable registers configured to be programmed with a set of values and configured to be accessible by the processor, wherein the set of values defines at least one of the following: one or more QoS policies to be executed in the set of QoS policies, the order in which the one or more QoS policies in the set of QoS policies are executed, and / or a set of thresholds for executing the one or more QoS policies, wherein the processor is also used to control the priority sorting and / or arbitration of frames in the network data traffic based on the determined set of QoS policies and the set of values to execute the one or more QoS policies.
[0008] For example, the above hardware device can be implemented using the following methods:
[0009] MCU, CPU and SoC
[0010] Smart NIC
[0011] (I) IoT end nodes
[0012] ·switch
[0013] ·router
[0014] Gateway
[0015] For example, the hardware device may be implemented using standard digital circuits, which may be configured using standard registers, etc. For example, the hardware device may also be implemented using programmable hardware. For example, the programmable hardware may be a Field Programmable Gate Array (FPGA), where the hardware design may be changed at runtime.
[0016] For example, the one or more communication system participants may be used to send network data to one or more communication system participants. For example, the one or more communication system participants may be used to receive network data from one or more communication system participants. For another example, the one or more communication system participants may be used to send network data to one or more communication system participants and to receive network data from one or more communication system participants.
[0017] In an implementation of the first aspect, the processor is used to detect whether the one or more communication system participants are sending communication system participants based on the network data traffic; and / or the processor is used to determine which of the sending communication system participants participates in a specific communication of the network data traffic based on the network data traffic; and / or the processor is used to detect whether the one or more communication system participants are receiving communication system participants based on the network data traffic; and / or the processor is used to determine which of the receiving communication system participants participates in the specific communication of the network data traffic based on the network data traffic; and / or the processor is used to detect the subject of the one or more communication system participants based on the network data traffic; and / or the processor is used to further control the priority sorting and / or arbitration of the frame based on the following information: which of the sending communication system participants participates in the specific communication of the network data traffic, and / or which of the receiving communication system participants participates in the specific communication of the network data traffic, and / or the subject of the one or more communication system participants.
[0018] For example, the sending communication system participants may be one or more communication system participants for sending network data to one or more communication system participants. For example, the receiving communication system participants may be one or more communication system participants for receiving network data from one or more communication system participants.
[0019] For example, the above-mentioned subject can represent the unit of information that can be generated or used.For example, the above-mentioned subject can be limited by name, type and / or key.
[0020] In an implementation of the first aspect, the hardware device also includes one or more coprocessors, which are used to: determine the set of QoS policies based on the network data traffic between the one or more communication system participants in the communication system; and / or collect priority sorting information and time-related information from the frame; and / or use the time-related information to perform at least one of the following operations: automatically queuing, dequeuing, arbitrating and processing the ingress frame, and distributing the frame to one or more egress ports using the shared resources of the hardware device; and / or execute the set of QoS policies based on the priority sorting and / or arbitration of the frame without software intervention by the processor.
[0021] For example, the above-mentioned priority sorting information may be information indicating the priority of the frame. For example, the above-mentioned time-related information may be a timestamp, an end-to-end bounded delay and / or a frame priority.
[0022] In an implementation of the first aspect, the processor is used to determine the one or more QoS policies by deserializing the network data traffic; and / or the processor is used to determine which of the one or more communication system participants are sending communication system participants and / or receiving communication system participants by deserializing the network data traffic; and / or the processor is used to determine the subject of the one or more communication system participants by deserializing the network data traffic.
[0023] In an implementation of the first aspect, the hardware device also includes: a memory for storing the determined set of QoS policies; and / or for storing information indicating: which of the one or more communication system participants are sending communication system participants, and / or which of the one or more communication system participants are receiving communication system participants, and / or the subject of the one or more communication system participants; and / or for storing information about a specific sending communication system participant and / or a specific receiving communication system participant requesting a specific QoS policy.
[0024] In an implementation of the first aspect, the processor is used to extract the set of QoS policies from the network data traffic at runtime; and / or the processor is used to bind the set of QoS policies extracted from the network data traffic to the specific sending communication system participant and / or the specific receiving communication system participant at runtime; and / or the one or more coprocessors are used to extract the set of QoS policies from the network data traffic at runtime; and / or the one or more coprocessors are used to bind the set of QoS policies extracted from the network data traffic to the specific sending communication system participant and / or the specific receiving communication system participant at runtime.
[0025] In an implementation of the first aspect, one or more programmable registers in the set of programmable registers are memory-mapped programmable registers configured to be accessible by the processor and / or the one or more coprocessors.
[0026] In an implementation of the first aspect, one of the QoS policies in the determined set of QoS policies is an end-to-end delay QoS policy, wherein the end-to-end delay QoS policy is used to limit the end-to-end delay, and the end-to-end delay is the maximum delay time from data writing by a sending communication system participant to data reception and / or notification by a receiving communication system participant; and / or the hardware device is used to allocate the end-to-end delay to the frame.
[0027] In an implementation of the first aspect, one QoS policy in the determined set of QoS policies is a deadline QoS policy, wherein the deadline QoS policy is used to limit a maximum update time, after which a receiving communication system participant expects to regularly update the network data traffic of a sending communication system participant; and / or the hardware device is used to allocate the maximum update time to the frame.
[0028] In an implementation of the first aspect, one QoS policy in the determined set of QoS policies is a lifecycle QoS policy, wherein the lifecycle QoS policy is used to limit a maximum valid time, after which the validity of written data expires; and / or the hardware device is used to assign the maximum valid time to the frame.
[0029] In an implementation of the first aspect, one QoS policy among the determined set of QoS policies is a vitality QoS policy, wherein the vitality QoS policy is used to determine whether the one or more communication system participants are activated by receiving cyclic messages and / or event-triggered repetitive messages from the one or more communication system participants, the cyclic messages and / or the event-triggered repetitive messages including an activity counter updated in each of the cyclic messages and / or the event-triggered repetitive messages, and the update of the activity counter is interpreted by the processor as a sign of vitality.
[0030] In an implementation of the first aspect, one QoS policy among the determined set of QoS policies is a transmission priority QoS policy, wherein the transmission priority QoS policy is used to limit a transmission priority indicating the priority of the network data traffic; and / or the hardware device is used to assign the transmission priority to the frame.
[0031] In an implementation of the first aspect, the hardware device is used to assign a requested end-to-end delay and / or a requested maximum update time and / or a requested maximum validity time deadline and / or a vitality / activity counter check and / or a requested transmission priority to the frame based on a request by a communication system participant.
[0032] In an implementation of the first aspect, the processor is further used to control the priority sorting and / or arbitration of the frames in the network data traffic according to two or more QoS policies at the same time to execute the one or more QoS policies.
[0033] In an implementation of the first aspect, the network data traffic from the one or more communication system participants in the communication system operates through a communication protocol.
[0034] In an implementation manner of the first aspect, the communication protocol is a Data Distribution Service (DDS) communication protocol.
[0035] In an implementation of the first aspect, the arbitration is based on one or more arbitration strategies, and / or the one or more arbitration strategies can be combined to be executed simultaneously.
[0036] For example, the arbitration strategy may be to use a priority-based hardware queue, wherein the priority is designed according to a QoS policy requested for a specific sending communication system participant, a specific receiving communication system participant, or a specific subject matter. For example, this may be implemented by a transmission priority QoS policy and / or a deadline QoS policy and a set of parallel queues from which queue frames are dequeued at each cycle according to a sorting algorithm applied to the priority level of each frame.
[0037] As another example, the arbitration strategy may be to use a time-ordered hardware queue, wherein the queue is ordered according to an end-to-end delay QoS policy and / or according to a vitality QoS policy, and queue frames may be dequeued every cycle according to a remaining expiration time, which may be a programmed end-to-end delay or transmission time, and to use a pending transmission path across relays or hops in the network in which each queue frame resides. The pending transmission path may be an end-to-end path, and thus a path from a sending communication system participant or sender to a receiving communication system participant or receiver.
[0038] As another example, the arbitration policy may be to discard frames sent to a receiving communication system participant whose lifecycle QoS policy has expired.
[0039] The hardware device is capable of processing a set of QoS policies simultaneously and in parallel, and is capable of assigning a priority to each frame according to the set of QoS policies, and is also capable of providing a relative priority to each frame according to the priority and timing information embedded in the frame.
[0040] In an implementation of the first aspect, the processor and / or the one or more coprocessors are used to dynamically adjust the priority sorting strategy of each group of frames and / or the one or more arbitration strategies based on real-time timing information updated during execution of each frame.
[0041] For example, dynamic adjustment can be adjustment at runtime without interrupting or stopping the operation of the hardware device and / or communication system. Dynamic adjustment can also be referred to as adjustment while the hardware device and / or communication system is running. For example, the timing information can be a timestamp or a timeout.
[0042] For example, a frame may be broken down into data fields with timing information such as timestamps or timeouts. The timing information may be updated in a communication system participant of a communication network, for example, at an ingress stage or an egress stage. However, if the frame is inside a queue in a communication system participant, the timing information may also be updated to recalculate the priority in real time and at runtime.
[0043] The hardware device is capable of reading the timing information of each frame as it is transmitted from an ingress port to an egress port between different network processing stages of the communication system participants.
[0044] In an implementation of the first aspect, the prioritization strategy and / or the one or more arbitration strategies are configurable via the set of programmable registers.
[0045] In an implementation manner of the first aspect, the priority sorting strategy and / or the one or more arbitration strategies are dynamically adjusted according to environmental conditions of the network data traffic.
[0046] For example, if multiple frames (e.g., frame A and frame B) arrive at an intermediate network device, such as a gateway device, at the same time according to the timing information of the multiple frames, the processor and / or the one or more coprocessors may determine that the priority of frame A is higher than the priority of frame B. Therefore, in the first processing stage, frame A is processed first and frame B is kept in the queue. If in the second processing stage (e.g., a later processing stage) of the intermediate network device (where frame A and frame B are queued), the processor and / or the one or more coprocessors determine that the priority of frame B is higher than the priority of frame A, frame B is dequeued first and processed first. Therefore, the priority sorting strategy and / or the one or more arbitration strategies are dynamically adjusted according to changing conditions that may occur in the network data traffic and / or within the communication system participants.
[0047] Each frame may have a field including priority information that may be continuously updated. The processor and / or the one or more coprocessors may periodically check and update the priority information, for example, each time a frame is dequeued from a set of parallel frames. This may be referred to as a real-time arbitration strategy.
[0048] A second aspect of the present invention provides a communication system comprising two or more communication system participants. At least two of the two or more communication system participants are control units, each control unit comprising a hardware device; the control unit is used to communicate via a corresponding hardware device; the corresponding hardware device is used to control the priority sorting and / or arbitration of frames in the network data traffic according to a determined set of QoS policies and a set of values to implement one or more QoS policies.
[0049] For example, the two or more communication system participants may be one or more of the following devices:
[0050] MCU, CPU and SoC
[0051] Smart NIC
[0052] IoT terminal nodes
[0053] ·switch
[0054] ·router
[0055] Gateway
[0056] In an implementation of the second aspect, the communication system includes three or more communication system participants; at least one of the three or more communication system participants is an intermediate network device; the at least one intermediate network device includes a hardware device; and at least two control units are connected via one or more intermediate network devices.
[0057] In an implementation manner of the second aspect, the obtained policy is applied to one or more hardware devices of the two or more communication system participants in the communication system.
[0058] The strategy obtained above may be a combination of different strategies, for example, a combination of a priority sorting strategy and one or more arbitration strategies.
[0059] In an implementation manner of the second aspect, the two or more communication system participants are configured to communicate via a communication protocol.
[0060] In an implementation manner of the second aspect, the communication protocol is a Data Distribution Service (DDS) communication protocol.
[0061] In an implementation of the second aspect, the communication protocol is based on one or more of the following communication protocols:
[0062] -Controller Area Network (CAN);
[0063] -CAN Flexible Data Rate;
[0064] -CAN XL;
[0065] - local interconnection network;
[0066] -FlexRay;
[0067] -Media-oriented system transmission;
[0068] - Ethernet;
[0069] -Mobile industry processor interface;
[0070] - Camera serial interface 2;
[0071] -Wi-Fi;
[0072] -Bluetooth.
[0073] The third aspect of the present invention provides a method for a hardware device of a communication system. The method is performed by the hardware device and includes: a processor determines a set of quality of service (QoS) policies based on network data traffic between one or more communication system participants in the communication system; determines a set of values from a set of programmable registers, wherein the set of values defines at least one of the following: one or more QoS policies to be executed in the set of QoS policies, the order of executing the one or more QoS policies in the set of QoS policies, and / or a set of thresholds for executing the one or more QoS policies; the processor controls the priority sorting and / or arbitration of frames in the network data traffic based on the determined set of QoS policies and the set of values to execute the one or more QoS policies.
[0074] The method provided by the third aspect and its implementation achieves the same advantages and effects as the hardware device provided by the first aspect and its corresponding implementation.
[0075] It should be noted that all devices, elements, units and components described in this application can be implemented in hardware elements. All steps performed by various entities described in this application and the functions to be performed by various entities described are intended to refer to the corresponding entities for performing the corresponding steps and functions. Even in the description of the following specific embodiments, the specific functions or steps performed by external entities are not reflected in the description of the specific detailed elements of the entities performing the specific steps or functions, but the technician should be aware that these methods and functions can be implemented by corresponding hardware elements. BRIEF DESCRIPTION OF THE DRAWINGS
[0076] The following description of specific embodiments, in conjunction with the accompanying drawings, explains the above-mentioned various aspects and their implementation methods.
[0077] Figure 1 The figure shows a hardware device for a communication system provided by one embodiment of the present invention.
[0078] Figure 2 Another example of a hardware device for a communication system provided by an embodiment of the present invention is shown.
[0079] Figure 3 A communication system including communication system participants including hardware devices provided by one embodiment of the present invention is shown.
[0080] Figure 4 The invention shows a hardware device of a communication system for implementing an end-to-end delay QoS policy provided by an embodiment of the present invention.
[0081] Figure 5 The figure shows a hardware device of a communication system for implementing a deadline QoS policy provided by an embodiment of the present invention.
[0082] Figure 6 The figure shows a hardware device of a communication system for implementing a lifecycle QoS policy provided by an embodiment of the present invention.
[0083] Figure 7 The figure shows a hardware device of a communication system for implementing a transmission priority QoS policy provided by an embodiment of the present invention.
[0084] Figure 8 The diagram shows a combination of different QoS policies provided by an embodiment of the present invention.
[0085] Fig. 9 A method provided by an embodiment of the present invention is shown. DETAILED DESCRIPTION
[0086] Figure 1 A hardware device 100 for a communication system 200 provided by an embodiment of the present invention is shown. Figure 1 The hardware device 100 in the communication system 200 may include a processor 112. The processor 112 may be used to determine a set of quality of service (QoS) policies based on network data traffic 110 between one or more communication system participants 202 in the communication system 200. The hardware device 100 may include a set of programmable registers 104.
[0087] Figure 1 The set of programmable registers 104 in the QoS policy may be configured to be programmed with a set of values and configured to be accessible by the processor 112. For example, the set of values may define one or more QoS policies to be executed in a set of QoS policies. For example, the set of values may also define the order in which one or more QoS policies in a set of QoS policies are executed. The set of values may also define a set of thresholds for executing one or more QoS policies.
[0088] Figure 1The processor 112 shown in FIG. 1 may also be used to control prioritization and / or arbitration of frames in the network data traffic 110 based on a determined set of QoS policies and a set of values to enforce one or more QoS policies.
[0089] Figure 2 Another example of a hardware device 100 used in a communication system 200 provided by an embodiment of the present invention is shown. Figure 2 The hardware device 100 in the communication system 200 may include a processor 112. The processor 112 may be used to determine a set of quality of service (QoS) policies based on network data traffic 110 between one or more communication system participants 202 in the communication system 200. The hardware device 100 may include a set of programmable registers 104.
[0090] Figure 2 The set of programmable registers 104 in the QoS policy may be configured to be programmed with a set of values and configured to be accessible by the processor 112. For example, the set of values may define one or more QoS policies to be executed in a set of QoS policies. For example, the set of values may also define the order in which one or more QoS policies in a set of QoS policies are executed. The set of values may also define a set of thresholds for executing one or more QoS policies.
[0091] One or more programmable registers in the set of programmable registers 104 may be configured as memory-mapped programmable registers 104 accessible by the processor 112 and / or one or more coprocessors 114 .
[0092] Figure 2 The processor 112 shown in FIG. 1 may also be used to control prioritization and / or arbitration of frames in the network data traffic 110 based on a determined set of QoS policies and a set of values to enforce one or more QoS policies.
[0093] For example, Figure 2 The processor 112 shown in the figure can be used to detect whether one or more communication system participants are sending communication system participants based on the network data traffic 110; and / or the processor 112 can be used to determine which sending communication system participant is involved in a specific communication of the network data traffic 110 based on the network data traffic 110.
[0094] For example, Figure 2 The processor 112 shown in the figure can be used to detect whether one or more communication system participants are receiving communication system participants based on the network data traffic 110; and / or the processor 112 can be used to determine which receiving communication system participant is involved in a specific communication of the network data traffic 110 based on the network data traffic 110.
[0095] For example, the processor 112 may be configured to detect topics of one or more communication system participants 202 based on the network data traffic 110 .
[0096] exist Figure 2 For example, the processor 112 can be used to further control the priority sorting and / or arbitration of frames based on which of the sending communication system participants participates in a specific communication of the network data traffic 110, and / or which of the receiving communication system participants participates in a specific communication of the network data traffic 110, and / or the subject of one or more communication system participants 202.
[0097] Figure 2 An example is shown in which the processor 112 can be used to determine one or more QoS policies by deserializing the network data traffic (110). Then, for example, the processor 112 can be used to determine which of the one or more communication system participants 202 are sending communication system participants and / or receiving communication system participants by deserializing the network data traffic 110. In addition, Figure 2 The processor 112 shown in FIG. 1 may be configured to determine the subject matter of one or more communication system participants 202 by deserializing the network data traffic 110 .
[0098] For example, the processor 112 may also be configured to control prioritization and / or arbitration of frames in the network data traffic 110 according to two or more QoS policies simultaneously to implement one or more QoS policies.
[0099] exist Figure 2 In the example illustrated in , the hardware device 100 may also include one or more coprocessors 114 for determining a set of QoS policies based on network data traffic 110 between one or more communication system participants 202 in the communication system 200. For example, the one or more coprocessors 114 may be used to: collect priority sorting information and time-related information from frames; and / or use the time-related information to perform at least one of the following operations: automatically queue, dequeue, arbitrate, and process ingress frames, and distribute frames to one or more egress ports using shared resources of the hardware device 100.
[0100] Figure 2 One or more coprocessors 114 shown in FIG. 1 may be used to enforce a set of QoS policies based on prioritization and / or arbitration of frames without software intervention by the processor 112 .
[0101] exist Figure 2In the embodiment, the processor 112 can be used to extract a set of QoS policies from the network data traffic 110 at runtime; and / or, for example, the processor 112 can be used to bind the set of QoS policies extracted from the network data traffic 110 to a specific sending communication system participant and / or a specific receiving communication system participant at runtime. Alternatively or in addition, one or more coprocessors 114 can be used to extract a set of QoS policies from the network data traffic 110 at runtime, and / or one or more coprocessors 114 can be used to bind the set of QoS policies extracted from the network data traffic 110 to a specific sending communication system participant and / or a specific receiving communication system participant at runtime.
[0102] For example, Figure 2 The processor 112 and / or one or more coprocessors 114 in the embodiment may be configured to dynamically adjust a priority sorting strategy and / or one or more arbitration strategies for each group of frames based on real-time timing information updated during execution of each frame.
[0103] For example, the set of QoS policies may be automatically extracted from the network data traffic 110. Then, for example, the extracted set of QoS policies may be stored in a memory for subsequent use. Alternatively, for example, the set of QoS policies may be programmed by the user 102 through a set of programmable registers 104. Advantageously, this allows the user 102 to very clearly specify the thresholds of the set of QoS policies or how to combine multiple QoS policies.
[0104] For example, the memory 111 may be used to store a determined set of QoS policies. In addition, the memory 111 may be used to store information indicating which of the one or more communication system participants 202 are sending communication system participants, and / or which of the one or more communication system participants 202 are receiving communication system participants. Moreover, the memory 111 may be used to store information indicating the subject of the one or more communication system participants 202, etc. In addition, Figure 2 The memory 111 shown in FIG. 1 may be used to store information about a specific sending communication system participant and / or a specific receiving communication system participant requesting a specific QoS policy, and so on.
[0105] The hardware device provided by the present invention can be a hardware circuit architecture that can abstract the QoS policy in the DDS communication protocol in a very efficient digital implementation, which is not to execute code on a given single-core or multi-core processor, but to execute the DDS function in a hardware-centric manner on a specific processor and / or a specific coprocessor that deploys the DDS function on heterogeneous hardware resources through a finite state machine (FSM). For example, the heterogeneous hardware resources can be combinational and sequential logic resources, such as look up tables (LUTs), triggers, block RAMs, and / or DSP blocks such as adders or multipliers.
[0106] For example, QoS policies in the DDS communication protocol can be based on the effective control of timing such as hardware timers or hardware counters or queues such as buffers or FIFO memory processing.
[0107] The hardware device 100 may be implemented not using a software-centric approach, but may be implemented using a hardware-centric approach that implements the above-mentioned hardware components. The software-centric approach is to simulate timing or queues through software in a host or network CPU under a complex operating system (OS) provided by periodic tasks and interrupt-driven events.
[0108] For example, the present invention may involve porting DDS functionality across the entire hardware / software stack from the top or application layer, down to the key hardware components, timers, and FIFO memories handled by algorithms implemented directly as hardware circuits in a finite state machine (FSM). Thus, the hardware devices in the present invention are not implemented as software code running on a CPU. Advantageously, this improves performance and saves costs because dedicated hardware is implemented rather than general-purpose hardware.
[0109] As another example, the hardware device 100 may receive frames in the incoming network data traffic 110, determine a set of QoS policies based on the network data traffic 110, deserialize the frames, and determine that a transmission priority equal to 8 has been assigned to a sending communication system participant, also referred to as a sender, with a value equal to 11. The steps of receiving and determining may also be referred to as listening to the incoming data traffic. The above steps may also be referred to as inline QoS, i.e., QoS requirements injected directly into the network data traffic.
[0110] In this example, the information that the sender value is equal to 11 and the transmission priority value is equal to 8 is stored in the memory. Therefore, whenever there may be an incoming frame, the hardware device 100 can deserialize the frame to understand the sender. If the sender is the same, then internally, the frame has a higher priority than all other frames from lower priority senders.
[0111] The same behavior applies to other QoS policies that may be requested as inline QoS.
[0112] Alternatively or additionally, QoS policies may also be assigned to receiving communication system participants and / or topics. Information about who the QoS policy is assigned to (i.e., sender / receiver / topic) and the ID of the specific sender / receiver / topic may be retrieved by reading and / or deserializing frames in the incoming network data traffic 110. Thus, in the end, the stored information may be one of a set of QoS policies, senders / receivers / topics, values.
[0113] Note that there can be another embodiment where a set of QoS policies is manually set by the user 102 by writing directly to the memory mapped registers. In this case, there is no listening QoS policy, and the hardware device only performs the second part of the above steps, i.e., deserializing the incoming frame, determining the sender / receiver / subject, and if the QoS policy is set by the user 102, enforcing the QoS policy.
[0114] Figure 3 A communication system 200 including a communication system participant 202 including a hardware device 100 provided by one embodiment of the present invention is shown.
[0115] Figure 3 The exemplary communication system 200 shown may include three or more communication system participants 202. At least two of the three or more communication system participants 202 may be control units, each of which includes a hardware device 100.
[0116] from Figure 3 As can be seen in , the control unit can be used to communicate via the corresponding hardware device 100, and the corresponding hardware device 100 can be used to control the prioritization and / or arbitration of frames in the network data traffic 110 according to a determined set of QoS policies and a set of values to implement one or more QoS policies. Figure 3 In the exemplary communication system 200 shown, at least one of the three or more communication system participants 202 is an intermediate network device. For example, at least one intermediate network device may include a hardware device 100, and at least two control units may be connected via one or more intermediate network devices.
[0117] according to Figure 3 In the example shown, the derived policy may be applied to one or more hardware devices 100 of two or more communication system participants 202 in the communication system 200 .
[0118] The three or more communication system participants 202 may be configured to communicate via a communication protocol, which may be a Data Distribution Service (DDS) communication protocol.
[0119] Alternatively or additionally, the communication protocol may be based on one or more of the following communication protocols:
[0120] -Controller Area Network (CAN);
[0121] -CAN Flexible Data Rate;
[0122] -CAN XL;
[0123] - local interconnection network;
[0124] -FlexRay;
[0125] -Media-oriented system transmission;
[0126] - Ethernet;
[0127] - mobile industry processor (112) interface;
[0128] - Camera serial interface 2;
[0129] -Wi-Fi;
[0130] -Bluetooth.
[0131] For example, in Figure 3 In the embodiment, two or more automobile ECUs can communicate via the DDS communication protocol. For example, two or more automobile ECUs can be connected via an intermediate network device. For example, the intermediate network device can be a gateway, a switch, or a router. Two or more automobile ECUs and the intermediate network device can include the hardware device 100 proposed by the present invention.
[0132] Figure 4 The hardware device 100 of a communication system 200 for implementing an end-to-end delay QoS policy provided by an embodiment of the present invention is shown.
[0133] exist Figure 4 In the example shown, one of the determined set of QoS policies may be an end-to-end delay QoS policy. Figure 2As described, the processor 112 can be used to determine a set of QoS policies. For example, an end-to-end delay QoS policy can be used to limit the end-to-end delay. The end-to-end delay can be the maximum delay time from writing data by a sending communication system participant to receiving data and / or notifying by a receiving communication system participant. In this example, the hardware device 100 can be used to assign the end-to-end delay to the frame.
[0134] For example, an end-to-end delay QoS policy may thus provide a means for a hardware device and / or communication system to indicate to the middleware the urgency of a particular communication, thereby specifying a maximum delay time from when data is written to when data is received and / or notified.
[0135] For example, in the DDS software implementation, the following API can provide the above functions:
[0136] TopicQoS custom_qos;
[0137] LatencyBudgetQoSPolicy latency;
[0138] latency.duration = {..., ...};
[0139] custom_qos.latency_budget(latency);
[0140] create_topic (topic_name, topic_type, custom_qos);
[0141] exist Figure 4 In the hardware-centric technical solution described in , each frame can have metadata information related to the end-to-end delay budget requirement in absolute time from a sending communication system participant to a receiving communication system participant. The metadata information can be constructed from a determined QoS policy based on network data traffic and can be stored in a memory.
[0142] The sending communication system participant may specify an end-to-end delay budget as a bounded delay target stored within the frame when generating a frame to be transmitted, which bounded delay target is used as metadata information in the header 301. The end-to-end delay budget initially generated at the sending communication system participant (also referred to as the speaker) is then propagated with the frame between different hops of the communication network 200 until it reaches the receiving communication system participant (also referred to as the listener). In each hop, the remaining round-trip time before the bounded delay timeout expires can be dynamically calculated based on the timestamp associated with each captured frame. Therefore, the policy includes a timeout that can be evaluated in each hop and affects the manner in which the frame is arbitrated between other concurrent frames in the hop as it flows from the sending communication system participant to the receiving communication system participant, and completes the delay budget initially specified by the sending communication system participant.
[0143] Figure 5 The hardware device 100 of a communication system 200 for implementing a deadline QoS policy provided by an embodiment of the present invention is shown.
[0144] exist Figure 5 In the illustrated example, one of the determined set of QoS policies may be a deadline QoS policy. The deadline QoS policy may be used to define a maximum update time after which the receiving communication system participant expects to periodically update the network data traffic 110 of the sending communication system participant. In this example, the hardware device 100 may be used to assign the maximum update time to a frame.
[0145] The deadline QoS policy may be used to specify an agreement between a sending communication system participant and a receiving communication system participant regarding a maximum inter-arrival time of periodic updates.
[0146] For example, in the DDS software implementation, the following API can provide the above functions:
[0147] TopicQoS custom_qos;
[0148] DeadlineQoSPolicy deadline;
[0149] deadline.period = {..., ...};
[0150] custom_qos.deadline(deadline);
[0151] create_topic (topic_name, topic_type, custom_qos);
[0152] exist Figure 5In the hardware-centric technical solution described in , the expiration timeout can be calculated based on the time-related information stored in the header 301 of each frame. For example, the calculated expiration timeout can be considered in the prioritization and / or arbitration of frames in the switching structure 302. For example, the duration of the deadline can be expressed using an absolute time.
[0153] Figure 6 The figure shows a hardware device of a communication system for implementing a lifecycle QoS policy provided by an embodiment of the present invention.
[0154] exist Figure 6 In the example shown, one of the determined set of QoS policies can be a lifecycle QoS policy. The lifecycle QoS policy can be used to define a maximum validity time after which the validity of the written data expires. In this example, the hardware device 100 can be used to assign a maximum validity time to a frame. Advantageously, the lifecycle QoS policy can avoid transmitting outdated data. Advantageously, by using the lifecycle QoS policy, data samples in the network data traffic 110 can have an associated expiration time, after which the data samples in the network data traffic 110 cannot be transmitted.
[0155] For example, in the DDS software implementation, the following API can provide the above functions:
[0156] TopicQoS custom_qos;
[0157] LifespanQosPolicy lifespan;
[0158] lifespan.duration = {..., ...};
[0159] custom_qos.lifespan (lifespan);
[0160] create_topic (topic_name, topic_type, custom_qos);
[0161] Figure 7 The figure shows a hardware device of a communication system for implementing a transmission priority QoS policy provided by an embodiment of the present invention.
[0162] exist Figure 7In the illustrated example, one of the determined set of QoS policies may be a transmission priority QoS policy. The transmission priority QoS policy may be used to define a transmission priority indicating a priority of the network data traffic 110. In this example, the hardware device 100 may be used to assign a transmission priority to a frame.
[0163] For example, in the DDS software implementation, the following API can provide the above functions:
[0164] TopicQoS custom_qos;
[0165] TransportPriorityQoSPolicy priority;
[0166] priority.value = ...
[0167] custom_qos.transport_priority(priority);
[0168] create_topic (topic_name, topic_type, custom_qos);
[0169] For example, in Figure 7 In the embodiment of the present invention, the transmission priority assigned to each frame can be reported in the header 301 of the frame. The transmission priority can be constructed as metadata information in a determined set of QoS policies based on the network data traffic 110 and can be stored in a memory. The transmission priority can be considered in the arbitration and / or prioritization of the frame.
[0170] Figure 8 The diagram shows a combination of different QoS policies provided by an embodiment of the present invention.
[0171] Figure 8 The example shown illustrates how different QoS policies can be mixed. In this example, the end-to-end delay QoS policy is combined with the transport priority QoS policy. Figure 8 As can be seen in FIG, an implementation of combining an end-to-end delay QoS policy with a transmission priority QoS policy can be performed at least partially or entirely in hardware. In the example shown, for example, a set of programmable registers can enable a user 102 (e.g., a system designer) to express how different QoS policies should be mixed.
[0172] For example, in Figure 8, user 102 may wish to provide the highest priority to messages in network data traffic 110 whose requested inline QoS policy end-to-end latency is below 200 microseconds. Therefore, user 102 may set REG1 401 to 0x00030D40 in hexadecimal, i.e., 200,000. For example, user 102 may wish to consider only inline QoS transmission priority for messages whose requested end-to-end latency is above a threshold of 200 microseconds. Therefore, user 102 may set REG0 400 to 0x5 (i.e., corresponding to 0b101, indicating that two QoS policies where end-to-end latency is important are considered). In addition, user 102 may wish to perform this operation only for messages regarding a specific topic, the name of which may be written by user 102 into register REG2 402.
[0173] When an incoming frame in the network data traffic 110 arrives, for example, if the contained subject name is different from the subject name set by the user 102 in REG2 402, the output of the comparison block 5 is 0, which can be assigned as the internal priority of the priority sorting queue, and so on.
[0174] When an incoming frame in the network data traffic 110 arrives, if the topic name matches the value in REG2 402, for example, if the requested inline end-to-end delay is 0x000493E0 and the requested inline transmission priority is 0x3, then the output of block 1 411 is 0 (because 0x00030D40 < 0x000493E0) and the output of block 4 includes 0x3. For example, this value can be assigned as the internal priority of a priority sorting queue.
[0175] When an incoming frame in the network data flow 110 arrives, if the subject name matches the value in REG2 402, for example, if the requested inline end-to-end delay is 0x000000FF and the requested inline transmission priority is 0x4, the value of the end-to-end delay is inverted (becoming 0xFF000000), then extended to 64 bits, and then shifted by 4 bytes (becoming 0xFF00000000000000). This value is then added to the requested transmission priority, resulting in a value of 0xFF00000000000004. For example, this value can be assigned as the internal priority of a priority sorting queue.
[0176] Those skilled in the art will understand that Figure 8 The mechanism shown can be further generalized by adding:
[0177] Registers that specify actions to be performed on messages from specific recipients and / or to specific subscribers.
[0178] • Several registries to allow the user 102 to assign different values to different topics / recipients / subscribers.
[0179] • The possibility to express regular expressions in a register (eg, REG2 402) by using bytes with specific predefined meanings (eg, a wildcard value to specify "all possible characters").
[0180] Fig. 9 The method 900 provided by an embodiment of the present invention and applicable to the hardware device 100 of the communication system 200 is shown. The method 900 is executed by the hardware device 100.
[0181] The method 900 comprises step 901 : the processor 112 determines a set of quality of service (QoS) policies based on network data traffic 110 between one or more communication system participants 202 in the communication system 200 .
[0182] The method 900 further comprises step 902: determining a set of values from the set of programmable registers 104. The set of values defines at least one of the following: one or more QoS policies to be executed in the set of QoS policies, an order in which the one or more QoS policies in the set of QoS policies are executed, and / or a set of thresholds for executing the one or more QoS policies;
[0183] The method 900 further comprises step 903 : the processor 112 controls the prioritization and / or arbitration of frames in the network data traffic 110 according to the determined set of QoS policies and the set of values to implement the one or more QoS policies.
[0184] The present invention has been described in conjunction with various embodiments as examples and implementations. However, from a study of the drawings, the present invention and the independent claims, other variations will be understood and implemented by those skilled in the art in implementing the claimed subject matter. In the claims and in the specification, the word "comprising" does not exclude other elements or steps, and the quantifier "a" does not exclude a plurality. A single element or other unit may fulfil the functions of several entities or items described in the claims. The enumeration of certain measures in mutually different dependent claims does not imply that a combination of these measures cannot be used in an advantageous implementation.
Claims
1. A hardware device (100) for a communication system (200), characterized in that: The hardware device (100) comprises: A processor (112) configured to determine a set of quality of service (QoS) policies based on network data traffic (110) between one or more communication system participants (202) in the communication system (200); A set of programmable registers (104) configured to be programmed with a set of values and configured to be accessible by the processor (112), wherein the set of values defines at least one of the following: one or more QoS policies to be executed in the set of QoS policies, the order in which the one or more QoS policies in the set of QoS policies are executed, and / or a set of thresholds for enforcing the one or more QoS policies, The processor (112) is further configured to control the prioritization and / or arbitration of frames in the network data traffic (110) based on the determined set of QoS policies and the set of values to implement the one or more QoS policies.
2. The hardware device (100) according to claim 1, characterized in that: The processor (112) is used to detect whether the one or more communication system participants are sending communication system participants based on the network data traffic (110); and / or The processor (112) is used to determine which of the sending communication system participants is involved in a specific communication of the network data traffic (110) based on the network data traffic (110); and / or The processor (112) is used to detect whether the one or more communication system participants are receiving communication system participants based on the network data traffic (110); and / or The processor (112) is used to determine which of the receiving communication system participants is involved in a specific communication of the network data traffic (110) based on the network data traffic (110); and / or The processor (112) is configured to detect a topic of the one or more communication system participants (202) based on the network data traffic (110); and / or The processor (112) is further configured to control prioritization and / or arbitration of the frame based on the following information: which of the sending communication system participants participated in a specific communication of the network data traffic (110), and / or which of the receiving communication system participants participated in a specific communication of the network data traffic (110), and / or The subject matter of the one or more communication system participants (202).
3. The hardware device (100) according to claim 1 or 2, characterized in that: The hardware device (100) further comprises one or more coprocessors (114) for: determining the set of QoS policies based on the network data traffic (110) between the one or more communication system participants (202) in the communication system (200); and / or collecting prioritization information and time-related information from the frames; and / or Using the time-related information to perform at least one of the following operations: automatically queuing, dequeuing, arbitrating and processing the ingress frames, and distributing the frames to one or more egress ports using shared resources of the hardware device (100); and / or The set of QoS policies are executed based on prioritization and / or arbitration of the frames without software intervention of the processor (112).
4. The hardware device (100) according to any one of the above claims, characterized in that: The processor (112) is configured to determine the one or more QoS policies by deserializing the network data traffic (110); and / or The processor (112) is used to determine which of the one or more communication system participants (202) are sending communication system participants and / or receiving communication system participants by deserializing the network data traffic (110); and / or The processor (112) is configured to determine a topic of the one or more communication system participants (202) by deserializing the network data traffic (110).
5. The hardware device (100) according to any one of the preceding claims, characterized in that: The hardware device (100) further includes: A memory (111) for: storing the determined set of QoS policies; and / or Stores information indicating: which of the one or more communication system participants (202) are sending communication system participants, and / or which of the one or more communication system participants (202) are receiving communication system participants, and / or the subject matter of the one or more communication system participants (202); and / or Information is stored regarding a specific sending communication system participant and / or a specific receiving communication system participant requesting a specific QoS policy.
6. The hardware device (100) according to any one of the preceding claims, characterized in that: The processor (112) is configured to extract the set of QoS policies from the network data traffic (110) at runtime; and / or The processor (112) is used to bind the set of QoS policies extracted from the network data traffic (110) to the specific sending communication system participant and / or the specific receiving communication system participant at runtime; and / or The one or more coprocessors (114) are configured to extract the set of QoS policies from the network data traffic (110) at runtime; and / or The one or more coprocessors (114) are configured to bind the set of QoS policies extracted from the network data traffic (110) to the specific sending communication system participant and / or the specific receiving communication system participant at runtime.
7. The hardware device (100) according to any one of the preceding claims, characterized in that: One or more programmable registers (104) of the set of programmable registers (104) are memory-mapped programmable registers (104) configured to be accessible by the processor (112) and / or by the one or more coprocessors (114).
8. The hardware device (100) according to any one of the preceding claims, characterized in that: One of the determined set of QoS policies is an end-to-end delay QoS policy, wherein the end-to-end delay QoS policy is used to limit the end-to-end delay, the end-to-end delay being the maximum delay time from data writing by a sending communication system participant to data reception and / or notification by a receiving communication system participant; and / or The hardware device (100) is used to assign the end-to-end delay to the frame.
9. The hardware device (100) according to any one of the preceding claims, characterized in that: One of the determined set of QoS policies is a deadline QoS policy, wherein the deadline QoS policy is used to define a maximum update time after which the receiving communication system participant expects to regularly update the network data traffic of the sending communication system participant (110); and / or The hardware device (100) is used to allocate the maximum update time to the frame.
10. The hardware device (100) according to any one of the preceding claims, characterized in that: One of the determined set of QoS policies is a lifecycle QoS policy, wherein the lifecycle QoS policy is used to define a maximum validity time after which the validity of the written data expires; and / or The hardware device (100) is used to allocate the maximum effective time to the frame.
11. The hardware device (100) according to any one of the preceding claims, characterized in that: One of the determined set of QoS policies is a vitality QoS policy, wherein the vitality QoS policy is used to determine whether the one or more communication system participants (202) are activated by receiving a cyclic message and / or an event-triggered repetitive message from the one or more communication system participants (202), the cyclic message and / or the event-triggered repetitive message including an activity counter updated in each of the cyclic message and / or the event-triggered repetitive message, and the update of the activity counter is interpreted by the processor (112) as a sign of vitality.
12. The hardware device (100) according to any one of the preceding claims, characterized in that: One of the determined set of QoS policies is a transmission priority QoS policy, wherein the transmission priority QoS policy is used to define a transmission priority indicating a priority of the network data traffic (110); and / or The hardware device (100) is used to assign the transmission priority to the frame.
13. The hardware device (100) according to any one of the preceding claims, characterized in that: The hardware device (100) is used to assign a requested end-to-end delay and / or a requested maximum update time and / or a requested maximum validity time deadline and / or a vitality / activity counter check and / or a requested transmission priority to the frame upon request by a communication system participant.
14. The hardware device (100) according to any one of the preceding claims, characterized in that: The processor (112) is further configured to control prioritization and / or arbitration of the frames in the network data traffic (110) according to two or more QoS policies simultaneously to implement the one or more QoS policies.
15. The hardware device (100) according to any one of the preceding claims, characterized in that: The network data traffic (110) from the one or more communication system participants (202) in the communication system (200) operates via a communication protocol.
16. The hardware device (100) according to any one of the preceding claims, characterized in that: The communication protocol is a Data Distribution Service (DDS) communication protocol.
17. The hardware device (100) according to any one of the preceding claims, characterized in that: The arbitration is based on one or more arbitration strategies, and / or The one or more arbitration strategies can be combined to be executed simultaneously.
18. The hardware device (100) according to any one of the preceding claims, characterized in that: The processor (112) and / or the one or more coprocessors (114) are used to dynamically adjust the priority sorting strategy of each group of frames and / or the one or more arbitration strategies according to the real-time timing information updated when each frame is executed.
19. The hardware device (100) according to any one of the preceding claims, characterized in that: The prioritization strategy and / or the one or more arbitration strategies are configurable via the set of programmable registers (104).
20. The hardware device (100) according to any one of the preceding claims, characterized in that: The prioritization strategy and / or the one or more arbitration strategies are dynamically adjusted according to the environmental conditions of the network data traffic (110).
21. A communication system (200) comprising two or more communication system participants (202), characterized in that: At least two of the two or more communication system participants (202) are control units, each of which comprises a hardware device (100) according to any one of claims 1 to 20; The control unit is used to communicate via a corresponding hardware device (100); The corresponding hardware device (100) is used to control the prioritization and / or arbitration of frames in the network data traffic (110) according to a determined set of QoS policies and a set of values to implement one or more QoS policies.
22. The communication system (200) according to claim 21, characterized in that The communication system (200) includes three or more communication system participants (202); At least one of the three or more communication system participants (202) is an intermediate network device; The at least one intermediate network device comprises a hardware device (100) according to any one of claims 1 to 20; At least two control units are connected via one or more intermediate network devices.
23. The communication system (200) according to claim 21 or 22, characterized in that The obtained policy is applied to one or more hardware devices (100) of the two or more communication system participants (202) in the communication system (200).
24. The communication system (200) according to any one of claims 21 to 23, characterized in that: The two or more communication system participants (202) are used to communicate via a communication protocol.
25. The communication system (200) according to any one of claims 21 to 24, characterized in that: The communication protocol is a Data Distribution Service (DDS) communication protocol.
26. The communication system (200) according to any one of claims 21 to 25, characterized in that: The communication protocol is based on one or more of the following communication protocols: Controller Area Network (CAN); CAN flexible data rate; CAN XL; Local Interconnect Network; FlexRay; Media-oriented system transmission; Ethernet; Mobile industry processor (112) interface; Camera serial interface 2; Wi-Fi; Bluetooth.
27. A method for a hardware device (100) of a communication system (200), characterized in that: The method is executed by the hardware device (100) and comprises: The processor (112) determines a set of quality of service (QoS) policies based on network data traffic (110) between one or more communication system participants (202) in the communication system (200); A set of values is determined from a set of programmable registers (104), wherein the set of values defines at least one of the following: one or more QoS policies to be executed in the set of QoS policies, the order in which the one or more QoS policies in the set of QoS policies are executed, and / or a set of thresholds for enforcing the one or more QoS policies; The processor (112) controls prioritization and / or arbitration of frames in the network data traffic (110) based on the determined set of QoS policies and the set of values to implement the one or more QoS policies.