Resource scheduling method, domain controller, storage medium and vehicle
By monitoring the utilization rate of the main SoC in the domain controller and calling the slave SoC resources to perform tasks, the problem of low utilization of SoC resources in the domain controller is solved, and resource maximization utilization and system stability are achieved.
Patent Information
- Application Number
- CN202510089761.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-20
- Publication Date
- 2025-06-03
AI Technical Summary
When integrating two or more system-on-chips (SoCs) into a domain controller, the resource utilization rate of the SoC module is not high, resulting in waste of resources.
By monitoring the GPU and CPU utilization of the main SoC, the resources in the slave SoC are called to execute tasks when specific conditions are met, including GPU computing, CPU computing, raw data storage and hot backup tasks.
The GPU computing pressure, CPU computing pressure and original data storage pressure of the main SoC are reduced, and the resource utilization rate of the slave SoC is maximized, and the system stability and reliability of the domain controller are improved.
Smart Images

Figure CN120086012A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to autonomous driving technology, and particularly to a resource scheduling method, a domain controller, a storage medium, and a vehicle. Background Art
[0002] With the wide application of autonomous driving technology, the domain controller deployed in a vehicle needs to complete many tasks such as perception, positioning, decision-making, planning, and control functions. Therefore, two or more system-on-chips (SoCs) with different computing powers can be integrated in a domain controller to meet the requirements of high-performance computing and data processing in vehicle intelligence. This design can provide higher flexibility and efficiency, especially when dealing with complex vehicle electronic systems such as intelligent cockpits, autonomous driving assistance systems, and vehicle infotainment systems.
[0003] However, when two or more SoCs are integrated in a domain controller, the resource utilization rate of the SoC module is often not very high, resulting in resource waste. Summary of the Invention
[0004] In view of this, the present disclosure provides a resource scheduling method, a domain controller, a storage medium, and a vehicle.
[0005] According to a first aspect of the present disclosure, there is provided a resource scheduling method, which is applied to a domain controller. The domain controller includes a main system-on-chip (SoC) and a slave SoC, and the main SoC and the slave SoC communicate through a PCIe channel. The method includes: monitoring the GPU utilization rate and CPU utilization rate of the main SoC; when one or more of the following conditions are met, invoking the resources in the slave SoC to execute the task corresponding to the condition: the slave SoC has not received a status message from the main SoC for N consecutive frames, where N is a set value; the GPU utilization rate of the main SoC exceeds a first predetermined threshold; the CPU utilization rate of the main SoC exceeds a second predetermined threshold; it is necessary for the slave SoC to record original data.
[0006] In some embodiments of the first aspect of the present disclosure, the method further includes: when none of the conditions are met, putting the slave SoC into sleep.
[0007] In some embodiments of the first aspect of the present disclosure, the task includes one or more of the following: GPU computing task, CPU computing task, original data storage task, hot backup task.
[0008] In some embodiments of the first aspect of the present disclosure, the invocation to execute the task corresponding to the condition from the resources in the SoC includes one or more of the following: when it is detected that status messages from the main SoC have not been received for N consecutive frames, determining that the main SoC is in an abnormal state, waking up the slave SoC by itself and taking over the control right, and executing the tasks being executed by the main SoC using its own resources; when the GPU utilization rate of the main SoC exceeds a first predetermined threshold, the CPU utilization rate of the main SoC exceeds a second predetermined threshold, and / or the slave SoC needs to record original data, the slave SoC executes a GPU computing task, a CPU computing task, and / or an original data storage task in response to a request from the main SoC.
[0009] In some embodiments of the first aspect of the present disclosure, the request from the main SoC and / or the status message from the main SoC are transmitted to the slave SoC through a PCIe channel.
[0010] In some embodiments of the first aspect of the present disclosure, the data fields of the request include wake-up information, the GPU utilization status of the main SoC, the CPU utilization status of the main SoC, and / or information indicating that the slave SoC needs to record original data; the data fields of the status message include wake-up information and status information for indicating whether the main SoC is in a normal state or an abnormal state.
[0011] In some embodiments of the first aspect of the present disclosure, the slave SoC executes an original data storage task in response to a request from the main SoC, including: after the slave SoC receives and successfully identifies an original data recording request from the main SoC, obtaining sensor data from a peripheral sensor component through its own connection link and recording it in the memory of the slave SoC.
[0012] According to a second aspect of the present disclosure, there is provided a domain controller, including: a main SoC, a slave SoC, and a memory storing a program, the program including instructions, and the instructions, when executed by the main SoC and the slave SoC, implement the above method.
[0013] According to a third aspect of the present disclosure, there is provided a computer-readable storage medium storing a program, the program including instructions, and the instructions, when executed by one or more processors of a computing device, cause the computing device to execute the above method.
[0014] According to a fourth aspect of the present disclosure, there is provided a vehicle, the vehicle including the above domain controller.
[0015] It can be seen from the above technical solutions that the embodiments of the present disclosure reduce the GPU computing pressure, CPU computing pressure, and original data storage pressure of the main SoC by invoking the resources in the slave SoC, maximize the resource utilization rate of the slave SoC, and at the same time improve the system stability and reliability of the domain controller. Brief Description of the Drawings
[0016] To more clearly illustrate the technical solutions in the embodiments of the present disclosure or the prior art, the following will briefly introduce the drawings required in the embodiments. Obviously, the drawings in the following description are only some embodiments of the present disclosure. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.
[0017] Figure 1 Structural schematic diagram of the domain controller provided by the embodiment of the present disclosure;
[0018] Figure 2 Flow schematic diagram of the resource scheduling method provided by the embodiment of the present disclosure;
[0019] Figure 3 Structural schematic diagram of the message sent from the main SoC to the slave SoC involved in the embodiment of the present disclosure. Detailed Description of the Embodiments
[0020] The following will clearly and completely describe the technical solutions in the embodiments of the present disclosure in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only some embodiments of the present disclosure, rather than all embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the scope of protection of the present disclosure.
[0021] The terms used in the embodiments of the present disclosure are only for the purpose of describing specific embodiments, and are not intended to limit the present disclosure. The singular forms "a", "the", and "said" used in the embodiments of the present disclosure and the appended claims are also intended to include the plural forms, unless the context clearly indicates otherwise.
[0022] Depending on the context, words such as "if" and "when" used herein can be interpreted as "when...", "when...", "in response to determining", or "in response to detecting". Similarly, depending on the context, the phrase "if determined" or "if detected (stated condition or event)" can be interpreted as "when determined", "in response to determining", "when detecting (stated condition or event)", or "in response to detecting (stated condition or event)".
[0023] As described above, when two or more SoC modules are integrated in the domain controller, the resource utilization rate of the slave SoC module is often not very high, resulting in waste of resources.
[0024] In view of this, the embodiments of the present disclosure provide the following resource scheduling methods, domain controllers, memories, and vehicles. The embodiments of the present disclosure can flexibly call resources from the SoC to reduce the GPU computing pressure, CPU computing pressure, and original data storage pressure of the main SoC, and maximize the resource utilization rate of the slave SoC.
[0025] The embodiments of the present disclosure can be applied to scenarios such as ports, highways, logistics, mines, farms, closed parks, and urban transportation, and are applicable to many aspects such as logistics distribution, unmanned transportation, last-mile delivery, ride-hailing, automated agricultural operations, and automated sanitation. Of course, the embodiments of the present disclosure can also be applied to any other intelligent control scenarios involving devices such as vehicles. The present disclosure does not limit the application scenarios and applicable fields of the embodiments of the present disclosure.
[0026] The embodiments of the present disclosure can be applied to the control of various devices such as multiple wheeled mobile robots, wheeled mobile robots, mobile robots, vehicles, aircraft, ships, and intelligent rail rapid transit systems (ART, Autonomous rail Rapid Transit). The vehicle can be, but is not limited to, a passenger vehicle, a commercial vehicle (e.g., a truck, a bus, a freight vehicle, etc.), a special-purpose vehicle (e.g., an ambulance, a fire truck, an engineering vehicle, a rescue vehicle, etc.), an agricultural and industrial vehicle (e.g., a harvester, a forklift, etc.), a transportation and logistics vehicle (e.g., a container truck, a refrigerated truck, etc.), a new energy vehicle (e.g., an electric vehicle, a hybrid vehicle), a special carrier (e.g., a garbage truck, a sprinkler truck, etc.). In other words, the "vehicle", "container truck", etc. involved in the embodiments of the present disclosure can be replaced by any of the foregoing devices.
[0027] Figure 1 The structural schematic diagram of the domain controller provided by the embodiments of the present disclosure is shown. Refer to Figure 1 , the domain controller 100 may include: a main SoC 110, a slave SoC 120, and a memory storing a program, and the program includes instructions that, when executed by the main SoC 110 and the slave SoC 120, implement the following resource scheduling method.
[0028] The main SoC 110 and the slave SoC 120 may adopt SoCs with different architectures or the same architecture. Since the SoC integrates multiple processing cores such as a CPU, a GPU, a DSP, etc., and can process a large amount of data and complex computing tasks, the main SoC 110 and the slave SoC 120 can respectively execute complex tasks such as perception, positioning, path planning, decision-making, lane keeping, automatic vehicle speed adjustment, automatic joining of a formation, and autonomous driving, and at the same time manage electronic control units (ECUs) in specific fields.
[0029] Refer to Figure 1, the main SoC 110 and the slave SoC 120 can communicate through the Peripheral Component Interconnect Express (PCIe). PCIe is a high-speed serial computer expansion bus standard that uses a serial connection and supports 1 to 32 lanes to provide higher transmission speeds and greater bandwidth. PCIe uses different numbers of lanes (or "Lanes") to achieve data transmission, with 1, 4, 8, 16, or 32 lanes. Each PCIe lane contains a pair of differential signal pairs for full-duplex bidirectional transmission. This design can improve data transmission efficiency and reduce the possibility of signal interference and electromagnetic interference.
[0030] In some examples, the main SoC 110 and the slave SoC 120 can be connected through a PCIe x8 connection. The main SoC manages and exchanges data with the slave SoC through PCIe lanes. PCIe x8 connection refers to a link width configuration of the PCI Express (Peripheral Component Interconnect Express) bus interface, where "x8" indicates that the interface has 8 lanes.
[0031] The main SoC 110 and the slave SoC 120 can be respectively connected to peripheral sensor components to obtain data collected by each sensor in the peripheral sensor components and perform complex tasks such as perception and path planning based on this data, thereby realizing the autonomous driving of the vehicle.
[0032] See Figure 1 , the main SoC 110 and the slave SoC 120 can respectively connect to the SGMII connection switching unit, and the switching unit connects to the industrial Ethernet interface through the MDI to connect to the peripheral sensor components;
[0033] See Figure 1 , the main SoC 110 and the slave SoC 120 can respectively connect to the MIPI connection deserializer, and the deserializer connects to the camera interface through the GMSL to connect to cameras and other components in the peripheral sensor components.
[0034] Specifically, the main SoC 110 and the slave SoC are respectively connected to the switching unit through the Serial Gigabit Media Independent Interface (SGMII), and the switching unit is connected to the industrial Ethernet interface through the Media Dependent Interface (MDI).
[0035] The switching unit can be implemented as but not limited to an Ethernet switch or other similar devices.
[0036] SGMII is a standard for connecting Gigabit Ethernet (GbE) MAC (Media Access Control) and PHY (Physical Layer) chips. SGMII uses a serial interface for data transmission, which helps reduce the number of pins required for communication between the MAC and PHY by less than half, making it suitable for high-density designs.
[0037] MDI is the media-dependent interface defined by Fast Ethernet 100BASE-T. MDI defines the transmission specifications of signals on the physical medium, including signal levels, encoding, and timing. MDI is an important interface standard in network communication, which ensures that data can be transmitted between different devices in a standardized manner.
[0038] Specifically, the main SoC 110 and the slave SoC can respectively connect to the deserializer through the Mobile Industry Processor Interface (MIPI), and the deserializer connects to the camera interface through the Gigabit Multimedia Serial Link (GMSL).
[0039] A deserializer is a device used in high-speed serial data transmission technology. Its main function is to convert the received serial data stream into a parallel data stream. Through the deserializer, data can be transmitted efficiently and reliably between different systems and devices.
[0040] The camera interface refers to the interface that connects the camera module to the image processing or application processor.
[0041] MIPI is a high-performance, low-power interface standard designed specifically for mobile devices. The MIPI interface supports high-bandwidth data transmission and has the characteristics of low power consumption. Using differential signal transmission helps reduce signal interference and electromagnetic interference while reducing power consumption. The MIPI interface can be used for transmitting camera images, touch screen inputs, audio, and video transmissions, etc.
[0042] GMSL is a high-speed serial interface technology mainly used for the transmission of video, audio, and control signals. As a high-performance SerDes technology, GMSL provides a reliable and efficient data transmission solution for modern automotive and industrial applications.
[0043] The domain controller 100 communicates and connects with the powertrain system, chassis system, body system, electrical system, safety system, fuel system, emission control system, intelligent cockpit system, etc. respectively through the Controller Area Network (CAN) bus. Specifically, see Figure 1, the main SoC 110 and the slave SoC 120 can be respectively connected to various vehicle systems such as the power system, chassis system, body system, electrical system, safety system, fuel system, emission control system, and intelligent cockpit system through the CAN bus and their own connectors.
[0044] See Figure 1 , the domain controller 100 may further include: an MCU 130, and the main SoC 110, the slave SoC 120, and the MCU 130 communicate with each other in pairs.
[0045] See Figure 1 , the main SoC 110 and the MCU 130 can communicate through (Controller Area Network, CAN), the slave SoC 120 and the MCU 130 can communicate through CAN, and the MCU 130 is mainly responsible for implementing the control of the low-speed signals of the domain controller. Exemplarily, the MCU 130 can be responsible for managing the electronic control units (ECUs) in a specific domain, controlling the components in the domain controller, and powering on and off the devices that are communicatively connected and / or electrically connected to the MCU.
[0046] In a specific application, the functions of the main SoC 110, the slave SoC 120, and the MCU 130 and the vehicle control tasks that they can execute can all be flexibly adjusted as needed. For the specific functions of the main SoC 110, the slave SoC 120, and the MCU 130 and the specific control tasks that they execute, the embodiments of the present disclosure do not make limitations.
[0047] It should be noted that the communication methods between the main SoC 110, the slave SoC 120, and the MCU 130 in the domain controller 100 are not limited to the above methods, and any other applicable communication methods can also be adopted. In this regard, the embodiments of the present disclosure do not make limitations.
[0048] Figure 2 The flowchart of the resource scheduling method provided by the embodiments of the present disclosure is shown. See Figure 2 As shown, the resource scheduling method of the embodiments of the present disclosure may include:
[0049] Step 201, monitor the GPU utilization rate and CPU utilization rate of the main SoC;
[0050] Step 202, when one or more of the following conditions are met, call the resources in the slave SoC to execute the task corresponding to the currently met condition: the slave SoC has not received the status message from the main SoC for N consecutive frames, where N is a set value; the GPU utilization rate of the main SoC exceeds the first predetermined threshold; the CPU utilization rate of the main SoC exceeds the second predetermined threshold; it is necessary for the slave SoC to record the original data.
[0051] Further, the method according to the embodiments of the present disclosure may further include: Step 203, when none of the above conditions are met, put the slave SoC into sleep. Specifically, when none of the above conditions are met, the master SoC may send a sleep message to the slave SoC, and in response to the sleep message, the slave SoC enters the sleep mode. Thus, when the resources of the master SoC can meet the requirements, the slave SoC can be in the standby sleep state, so that the standby power consumption of the slave SoC can be saved by 80% or more.
[0052] The resources in the slave SoC called in Step 202 may be part of the resources of the slave SoC or all of the resources of the slave SoC. These resources may include, but are not limited to, the software and hardware resources related to the GPU, CPU, memory, input / output devices, and / or memory devices of the slave SoC.
[0053] The tasks in Step 202 may include one or more of the following: GPU computing tasks, CPU computing tasks, raw data storage tasks, and hot backup tasks. Among them, the condition "the GPU utilization rate of the master SoC exceeds the first predetermined threshold" corresponds to the GPU computing task, the condition "the CPU utilization rate of the master SoC exceeds the second predetermined threshold" corresponds to the CPU computing task, "it is necessary for the slave SoC to record raw data" corresponds to the raw data storage task, and "the slave SoC has not received the status message from the master SoC for N consecutive frames" corresponds to the hot backup task.
[0054] The hot backup task means that while the master SoC is running normally, the slave SoC is also in the running state as a backup system and is ready to take over the work of the master SoC at any time. This backup method has high availability. Since the slave SoC is always in the active state, once the master SoC fails or malfunctions, the slave SoC can take over immediately with almost no downtime, which is suitable for the autonomous driving scenario with extremely high requirements for system availability.
[0055] "GPU computing task" and "CPU computing task" refer to different types of computing tasks. The GPU computing task refers to a task that depends on the graphics processing unit (GPU) to execute, and the CPU computing task is a task that depends on the central processing unit (CPU) to execute. For specific examples of GPU computing tasks and CPU computing tasks, refer to the relevant records below and will not be elaborated here.
[0056] The raw data storage task refers to the task of storing raw data, and these raw data can be used to trace back problems. For raw data and raw data storage tasks, refer to the relevant records below and will not be elaborated here.
[0057] In Step 202, the slave SoC is awakened through self-awakening or in response to a request from the master SoC to call its own resources to execute corresponding tasks. Specifically, Step 202 may include one or more of the following steps:
[0058] In step a1, when it is detected that status messages from the main SoC have not been received for N consecutive frames, it is determined that the main SoC is in an abnormal state. The slave SoC wakes up by itself and takes over the control, and uses its own resources to execute the tasks that the main SoC is performing. Thus, the slave SoC can act as a hot backup for the main SoC. When the main SoC is abnormal, the slave SoC can actively take over the control, thereby avoiding affecting the normal driving of the vehicle due to the abnormality of the main SoC.
[0059] In step a2, when the GPU utilization rate of the main SoC exceeds a first predetermined threshold, the CPU utilization rate of the main SoC exceeds a second predetermined threshold, and / or the slave SoC needs to record original data, the slave SoC executes GPU computing tasks, CPU computing tasks, and / or original data storage tasks in response to a request from the main SoC. Thus, problems such as insufficient GPU resources, insufficient CPU resources, and low original data storage efficiency of the main SoC can be solved by invoking the resources in the slave SoC, while maximizing the resource utilization rate of the slave SoC and improving the efficiency and performance of the domain controller.
[0060] In step a1, the slave SoC acts as a hot backup for the main SoC. The main SoC can periodically send status messages to the slave SoC through the PCIe channel to notify the slave SoC of its own status. If the slave SoC does not receive the status message of the main SoC for N consecutive frames, it can confirm that the main SoC is abnormal. The slave SoC wakes up by itself, switches from the sleep state to the working state, and takes over the control. After taking over the control, the slave SoC replaces the main SoC to obtain the original data collected by each sensor in the peripheral sensor component in real time through the aforementioned industrial Ethernet interface and camera interface, and executes all tasks such as data processing, computing tasks, and logic control of the domain controller.
[0061] In specific applications, "N" involved in this article is a set value, which can be pre-configured and can be flexibly adjusted according to factors such as application requirements and specific scenarios. In some examples, this set value can be "2", "3" or other values.
[0062] In step a2, when the GPU utilization rate of the main SoC exceeds the first predetermined threshold, the main SoC sends a GPU resource request to the slave SoC. In response to the GPU resource request, the slave SoC activates its own GPU to cooperate with the GPU of the main SoC to execute GPU computing tasks. Thus, when the GPU resources of the main SoC are insufficient or cannot meet the requirements of the current computing tasks, the computing pressure of the GPU in the main SoC can be shared by scheduling the GPU resources of the slave SoC, while maximizing the utilization of the GPU resources of the slave SoC, improving the efficiency and performance of the domain controller while avoiding resource waste, and solving the problem of low efficiency caused by excessive data volume and overloading of the GPU in the main SoC, so as to better meet the real-time requirements in the autonomous driving scenario.
[0063] Specifically, the main SoC can send a GPU resource request to the slave SoC through a PCIe channel. After the slave SoC receives and recognizes the GPU resource request, it activates its own GPU to cooperate with the GPU of the main SoC to execute GPU computing tasks.
[0064] The GPU of the main SoC is mainly responsible for implementing complex tasks of the domain controller. Exemplarily, the GPU of the slave SoC can cooperate with the GPU of the main SoC to process any one or more of the following GPU computing tasks: real-time data processing and analysis of multiple sensors such as cameras, lidar, and radars to achieve environmental perception and model construction, image processing and recognition, complex path planning and decision-making, image stitching, 3D image rendering, video encoding and decoding, running various deep learning networks, sensor data fusion, large-scale parallel computing, and multi-threaded computing of big data.
[0065] The first predetermined threshold can be pre-configured. The specific value of the second predetermined threshold can be flexibly adjusted according to various factors such as actual requirements, application scenarios, and CPU performance. Exemplarily, the second predetermined threshold can be set to 80%, 90%, or other values.
[0066] In step a2, when the CPU utilization rate of the main SoC exceeds the second predetermined threshold, the main SoC sends a CPU resource request to the slave SoC. In response to the CPU resource request, the slave SoC activates its own CPU to cooperate with the CPU of the main SoC to execute CPU computing tasks. Thus, when the CPU computing resources of the main SoC are insufficient or cannot meet the current requirements, the main SoC can send a CPU resource request through the PCIe channel to call the CPU of the slave SoC to cooperate in processing some CPU computing tasks, thereby alleviating the computing pressure on the CPU in the main SoC, while maximizing the utilization of the CPU resources of the slave SoC, improving the efficiency and performance of the domain controller while avoiding resource waste.
[0067] Specifically, the CPU of the main SoC is mainly responsible for implementing the decision-making and planning services of the domain controller. Exemplarily, the CPU of the slave SoC can cooperate with the CPU of the main SoC to process any one or more of the following CPU computing tasks: logical operation and decision control, environmental perception and deep learning, functional safety and vehicle control, data interface management, status monitoring, and execution of the minimum safety risk strategy.
[0068] The second predetermined threshold can be pre-configured. The specific value of the second predetermined threshold can be flexibly adjusted according to various factors such as actual requirements, application scenarios, and CPU performance. Exemplarily, the second predetermined threshold can be set to 80%, 90%, or other values.
[0069] In step a2, when it is necessary to record original data from the SoC, the main SoC sends an original data recording request to the slave SoC. In response to the original data recording request, the slave SoC calls its own storage resources to cooperate with the main SoC to execute the original data recording. Thus, the slave SoC can be called to execute the recording of the original data when needed, which can reduce the pressure of the main SoC for recording the original data and maximize the utilization of the resources in the slave SoC to improve the efficiency of recording the original data.
[0070] Specifically, the need to record original data from the SoC may include one or more of the following: 1) the available storage space of the original data is lower than a predetermined size; 2) the amount of original data recorded by the main SoC has reached a predetermined upper limit; 3) the predetermined recording method of the original data is to record simultaneously by the main SoC and the slave SoC. Among them, the available storage space of the original data, the amount of original data recorded by the main SoC, the predetermined recording method of the original data, etc. can all be monitored in real time by the main SoC. When the main SoC determines that one of the above conditions is met based on the monitored information, it can send an original data recording request to the SoC through the PCIe channel to call the resources in the slave SoC to execute the original data storage task.
[0071] Specifically, the main SoC can send an original data recording request to the slave SoC through the PCIe channel. After the slave SoC receives and identifies the original data recording request, it cooperates with the main SoC to record the original data and stores it in its own memory.
[0072] The original data can be used to trace back problems. Exemplarily, the original data may include, but is not limited to: sensor data, vehicle status and control commands, system logs and events (such as system startup, shutdown, error messages, warning messages, etc., which are very useful for diagnosing system problems and understanding the system operating status), etc.
[0073] The sensor data may include, but is not limited to, the original perception data collected by sensors such as cameras and radars. These data are the basis for the autonomous driving system to perform environmental perception and decision-making, and are crucial for analyzing the system behavior and performance.
[0074] The vehicle status and control commands may include: real-time status information of the vehicle such as speed, acceleration, steering angle, etc. and control commands such as acceleration, deceleration, and steering issued by the domain controller. These data help to analyze the vehicle behavior and the accuracy of the system response.
[0075] The system logs and events may include, but are not limited to, system startup, shutdown, error messages, warning messages, etc. These logs are very useful for diagnosing system problems and understanding the system operating status.
[0076] In some embodiments, the cooperation with the main SoC to execute the original data recording by invoking its own storage resources from the SoC in response to an original data recording request may include: after receiving and successfully identifying the original data recording request from the SoC, obtaining sensor data from the peripheral sensor components through its own connection link (i.e., the switching unit, Ethernet interface, deserialiser, and camera interface on the SoC described above) and recording it into the memory of the slave SoC (e.g., SSD or other hard disk). Thus, when performing the original data storage task, the peripheral sensors can be split into two paths, one path accessing the main SoC and the other path accessing the slave SoC, without changing the internal circuit of the domain controller, which can further improve the execution efficiency of the domain controller for the original data storage task.
[0077] In some embodiments, the messages sent from the main SoC to the slave SoC (i.e., the status messages, sleep messages, GPU resource requests, CPU resource requests, original data recording requests, etc. described herein) may adopt the same message format. Figure 3 An exemplary structural diagram of the message format is shown. Refer to Figure 3 , the message sent from the main SoC to the slave SoC may include 6 fields, namely frame delimiter, random code, start, data, CRC, and end. The data field may include one or more of the following: sleep information or wake-up information, the GPU utilization status of the main SoC, the CPU utilization status, the indication information for the slave SoC to record the original data, and the status information indicating whether the current state of the main SoC is normal or abnormal. Thus, when multiple conditions are met simultaneously, the main SoC can instruct the slave SoC to perform multiple corresponding tasks through one message. Alternatively, when multiple conditions are met simultaneously, the main SoC can parallelly send status messages, GPU resource requests, CPU resource requests, and original data recording requests through different PCIe channels, and the slave SoC responds to these messages or requests to parallelly perform multiple corresponding tasks.
[0078] Specifically, the status message may include wake-up information and the status information indicating whether the main SoC is in a normal or abnormal state. The sleep message may include sleep information. The GPU resource request may include wake-up information and the GPU utilization status of the main SoC. The CPU resource request may include wake-up information and the CPU utilization status of the main SoC. The original data recording request may include wake-up information and the indication information for the slave SoC to record the original data.
[0079] Table 1 below shows an exemplary definition method of the data field in the message sent from the main SoC to the slave SoC through PCIe.
[0080]
[0081] Table 1
[0082] In some embodiments, the messages sent from the main SoC to the slave SoC can be transmitted through the PCIe channel. That is, the status messages, sleep messages, GPU resource requests, CPU resource requests, and raw data record requests described herein can all be transmitted to the slave SoC through the PCIe channel. Transmitting these messages or requests between the main SoC and the slave SoC via PCIe enables these messages or requests to be transmitted in parallel, with high efficiency and low latency, and can better meet the real-time requirements in the field of autonomous driving.
[0083] As can be seen from the above, in the resource scheduling method provided by the embodiments of the present disclosure, the GPU computing pressure, CPU computing pressure, and raw data storage pressure of the main SoC can be reduced by invoking the resources in the slave SoC, while maximizing the resource utilization rate of the slave SoC and improving the system stability and reliability of the domain controller.
[0084] In addition, the embodiments of the present disclosure also provide a computer-readable storage medium, on which a computer program is stored. The program includes instructions that, when executed by one or more processors of a computing device, perform the steps of the aforementioned resource scheduling method.
[0085] The computer-readable storage medium can be, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples (non-exhaustive list) of the computer-readable storage medium include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above. Herein, the computer-readable storage medium can be any tangible medium that contains or stores a program, which can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0086] The embodiments of the present disclosure also provide a vehicle, which may include the aforementioned domain controller 100. The vehicle can implement, but is not limited to, various devices such as multiple wheeled mobile robots, wheeled mobile robots, mobile robots, vehicles, aircraft, ships, and intelligent rail rapid transit systems (ART, Autonomous rail Rapid Transit).
[0087] The above has introduced the technical solutions provided by the present disclosure in detail. Specific examples are used herein to elaborate on the principles and implementation manners of the present disclosure. The description of the above embodiments is only used to help understand the method and its core idea of the present disclosure; at the same time, for those of ordinary skill in the art, according to the idea of the present disclosure, there will be changes in the specific implementation manners and application scopes. In summary, the content of this specification should not be construed as a limitation to the present disclosure.
[0088] The foregoing is only a preferred embodiment of the present disclosure and is not intended to limit the present disclosure. Any modification, equivalent replacement, etc. made within the spirit and principle of the present disclosure shall be included within the protection scope of the present disclosure.
Claims
1. A resource scheduling method, characterized in that: The method is applied to a domain controller, wherein the domain controller includes a master system-on-chip (SoC) and a slave SoC, and the master SoC and the slave SoC communicate via a PCIe channel; The method comprises: Monitor the GPU utilization and CPU utilization of the main SoC; When one or more of the following conditions are met, the resources in the slave SoC are called to execute the tasks corresponding to the conditions: The slave SoC has not received the status message from the master SoC for N consecutive frames, where N is the set value; The GPU utilization of the master SoC exceeds a first predetermined threshold; The CPU utilization of the master SoC exceeds a second predetermined threshold; The raw data needs to be recorded from the SoC.
2. The method according to claim 1, characterized in that The method further includes: hibernating the slave SoC when any of the conditions is not met.
3. The method according to claim 1, characterized in that The tasks include one or more of the following: GPU computing tasks, CPU computing tasks, original data storage tasks, and hot backup tasks.
4. The method according to claim 1 or 3, characterized in that: The calling to execute the task corresponding to the condition from the resources in the SoC includes one or more of the following: When it is detected that no status message is received from the master SoC for N consecutive frames, it is determined that the master SoC is in an abnormal state, and the slave SoC wakes itself up and takes over control, using its own resources to execute the task being executed by the master SoC; When the GPU utilization of the master SoC exceeds a first predetermined threshold, the CPU utilization of the master SoC exceeds a second predetermined threshold and / or the original data needs to be recorded from the SoC, the slave SoC performs GPU computing tasks, CPU computing tasks and / or original data storage tasks in response to a request from the master SoC.
5. The method according to claim 4, characterized in that The request from the master SoC and / or the status message from the master SoC are transmitted to the slave SoC via a PCIe channel.
6. The method according to claim 4 or 5, characterized in that: The data field of the request includes wake-up information, GPU utilization status of the main SoC, CPU utilization status of the main SoC, and / or information that requires recording raw data from the SoC; The data field of the status message includes wake-up information and status information indicating whether the status of the main SoC is normal or abnormal.
7. The method according to claim 4, characterized in that The slave SoC executes the original data storage task in response to the request from the master SoC, including: after the slave SoC receives and successfully identifies the original data recording request from the master SoC, it obtains the sensor data from the peripheral sensor component through its own connection link and records it into the memory of the slave SoC.
8. A domain controller, characterized in that: The method comprises: a master SoC, a slave SoC and a memory storing a program, wherein the program comprises instructions, and the instructions implement the method according to any one of claims 1 to 7 when executed by the master SoC and the slave SoC.
9. A computer-readable storage medium storing a program, wherein the program comprises instructions, and when the instructions are executed by one or more processors of a computing device, the instructions cause the computing device to execute the method according to any one of claims 1 to 7.
10. A vehicle, characterized in that: The vehicle comprises the domain controller of claim 8.