Methods and apparatus for multi-task deployment

By using formal description and state machine analysis, a multi-task deployment strategy for sensor systems is generated, which solves the problem of low deployment efficiency in sensor systems and achieves efficient task deployment.

CN114327842BActive Publication Date: 2025-10-28YINWANG INTELLIGENT TECHNOLOGIES CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202011047346.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-29
Publication Date
2025-10-28
Estimated Expiration
2040-09-29

AI Technical Summary

Technical Problem

Multi-task deployment of sensor systems is inefficient, making it difficult to quickly determine a reasonable deployment strategy, which affects the accuracy and robustness of the sensors.

Method used

By acquiring information about the target platform and tasks, performing formal descriptions, and using state machines for formal analysis, a multi-task deployment strategy is generated to ensure the rationality and efficiency of the strategy.

Benefits of technology

Without being affected by the actual operating environment, a reasonable multi-task deployment strategy is quickly generated, which improves the deployment efficiency of the sensor system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114327842B_ABST
    Figure CN114327842B_ABST
Patent Text Reader

Abstract

This application provides a method for multi-task deployment, the method comprising: acquiring first information of a target platform, the first information representing the attributes of the target platform; acquiring second information of multiple tasks to be deployed, the second information representing the requirements of the multiple tasks; formally describing the first information and the second information using a formal language to obtain a formal model; using a state machine to perform formal analysis based on the formal model to generate a deployment strategy for the multiple tasks; and deploying the multiple tasks according to the deployment strategy. The method in this application embodiment can improve the efficiency of multi-task deployment.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer application technology, and more specifically, to a method and apparatus for multi-task deployment. Background Technology

[0002] With the rapid development of autonomous driving technology, the requirements for the perception accuracy and robustness of sensors are becoming increasingly stringent, leading to a continuous increase in the computing power and resources required for sensors. Simultaneously, high-performance System-on-Chip (SoC) systems used for autonomous driving have gradually evolved from high-performance single-core systems to multi-core systems. Whether the processing resources of multi-core systems are fully utilized for real-time multi-tasking deployment of sensor systems directly affects the accuracy and robustness of sensors. However, the multi-tasking scenarios of sensor systems are often quite complex, making it difficult to quickly determine a reasonable deployment strategy, resulting in low efficiency in multi-tasking deployment.

[0003] Therefore, improving the efficiency of multi-task deployment has become a pressing technical problem that needs to be solved. Summary of the Invention

[0004] This application provides a method and apparatus for multi-task deployment, which can improve the efficiency of multi-task deployment.

[0005] Firstly, a method for multi-task deployment is provided, which includes:

[0006] Obtain first information about the target platform, which represents the attributes of the target platform; obtain second information about multiple tasks to be deployed, which represents the requirements of the multiple tasks; formally describe the first information and the second information using a formal language to obtain a formal model; use a state machine to perform formal analysis based on the formal model to generate a deployment strategy for the multiple tasks; and deploy the multiple tasks according to the deployment strategy.

[0007] In this embodiment of the application, the attributes of the target platform and the requirements of multiple tasks are formally described to obtain a formal model. A state machine is then used to perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks. This approach can quickly provide reasonable deployment strategies regardless of the actual operating environment, thereby improving the efficiency of multi-task deployment.

[0008] In conjunction with the first aspect, in some implementations of the first aspect, the target platform includes multiple nodes, the first information includes information indicating the number of nodes in the target platform, the type of each of the multiple nodes, the capabilities of each node, the power consumption mode of the target platform and the triggering conditions of each power consumption mode, and the second information includes information indicating the number of tasks in the multiple tasks, the dependencies between the multiple tasks, the time constraints of each of the multiple tasks and the resources required to execute each task.

[0009] In conjunction with the first aspect, in some implementations of the first aspect, the step of using a state machine to perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks includes: using a state machine to perform formal analysis based on the formal model to determine whether the deployment strategies for the multiple tasks conflict; and generating deployment strategies for the multiple tasks if the deployment strategies for the multiple tasks do not conflict.

[0010] In conjunction with the first aspect, in some implementations of the first aspect, the step of using a state machine to perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks includes: using a state machine to perform formal analysis based on the formal model to determine whether the deployment strategies for the multiple tasks conflict; if the deployment strategies for the multiple tasks conflict, determining the conflict information of the deployment strategies for the multiple tasks; and adjusting the formal model according to the conflict information.

[0011] In conjunction with the first aspect, in some implementations of the first aspect, the step of using a state machine to perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks includes: using a state machine to perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks and resource utilization information of the target platform.

[0012] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: adding tasks to the deployment strategy based on the resource utilization information; and updating the resource utilization information according to the added tasks.

[0013] In conjunction with the first aspect, in some implementations of the first aspect, the state machine includes a platform state machine and a task state machine. The platform state machine includes the power consumption mode of the platform, the switching conditions between each power consumption mode, and the resource constraints of each power consumption mode. The task state machine includes the task state and the switching conditions between each task state.

[0014] Secondly, a multi-task deployment apparatus is provided, comprising:

[0015] A first acquisition unit is used to acquire first information about a target platform, the first information representing the attributes of the target platform; a second acquisition unit is used to acquire second information about multiple tasks to be deployed, the second information representing the requirements of the multiple tasks; a formal description unit is used to perform a formal description of the first information and the second information based on a formal language to obtain a formal model; a formal analysis unit is used to perform formal analysis based on the formal model using a state machine to generate a deployment strategy for the multiple tasks; and a deployment unit is used to deploy the multiple tasks according to the deployment strategy.

[0016] In this embodiment of the application, the attributes of the target platform and the requirements of multiple tasks are formally described to obtain a formal model. A state machine is then used to perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks. This approach can quickly provide reasonable deployment strategies regardless of the actual operating environment, thereby improving the efficiency of multi-task deployment.

[0017] In conjunction with the second aspect, in some implementations of the second aspect, the target platform includes multiple nodes. The first information includes information indicating the number of nodes in the target platform, the type of each of the multiple nodes, the capabilities of each node, the power consumption mode of the target platform, and the triggering conditions of each power consumption mode. The second information includes information indicating the number of tasks in the multiple tasks, the dependencies between the multiple tasks, the time constraints of each of the multiple tasks, and the resources required to execute each task.

[0018] In conjunction with the second aspect, in some implementations of the second aspect, the formal analysis unit is specifically used to: use a state machine to perform formal analysis based on the formal model to determine whether the deployment strategies of the multiple tasks conflict; and generate the deployment strategies of the multiple tasks if the deployment strategies of the multiple tasks do not conflict.

[0019] In conjunction with the second aspect, in some implementations of the second aspect, the formal analysis unit is specifically used to: use a state machine to perform formal analysis based on the formal model to determine whether the deployment strategies of the multiple tasks conflict; if the deployment strategies of the multiple tasks conflict, determine the conflict information of the deployment strategies of the multiple tasks; and adjust the formal model according to the conflict information.

[0020] In conjunction with the second aspect, in some implementations of the second aspect, the formal analysis unit is specifically used to: use a state machine to perform formal analysis based on the formal model, and generate deployment strategies for the multiple tasks and resource utilization information for the target platform.

[0021] In conjunction with the second aspect, in some implementations of the second aspect, the apparatus further includes an updating unit for: adding tasks to the deployment strategy based on the resource utilization information; and updating the resource utilization information according to the added tasks.

[0022] In conjunction with the second aspect, in some implementations of the second aspect, the state machine includes a platform state machine and a task state machine. The platform state machine includes the power consumption modes of the platform, the switching conditions between each power consumption mode, and the resource constraints of each power consumption mode. The task state machine includes the task states and the switching conditions between each task state.

[0023] Thirdly, a multi-tasking deployment apparatus is provided, the apparatus including a storage medium and a central processing unit, the storage medium being a non-volatile storage medium storing a computer-executable program, the central processing unit being connected to the non-volatile storage medium and executing the computer-executable program to implement the method of the first aspect or any possible implementation thereof.

[0024] Fourthly, a chip is provided, the chip including a processor and a data interface, the processor reading instructions stored in a memory through the data interface to execute the method of the first aspect or any possible implementation thereof.

[0025] Optionally, as one implementation, the chip may further include a memory storing instructions, and the processor is configured to execute the instructions stored in the memory. When the instructions are executed, the processor is configured to perform the method in the first aspect or any possible implementation thereof.

[0026] Fifthly, a computer-readable storage medium is provided, the computer-readable medium storing program code for execution by a device, the program code including instructions for performing the method of the first aspect or any possible implementation thereof.

[0027] In a sixth aspect, a controller is provided, the controller including the multi-tasking deployment apparatus described in the second or third aspect above.

[0028] Alternatively, as one implementation, the controller can be an autonomous driving domain controller (DCU).

[0029] In a seventh aspect, a vehicle is provided, the vehicle including the multitasking deployment device described in the second or third aspect above, or the controller described in the sixth aspect above.

[0030] In this embodiment of the application, the attributes of the target platform and the requirements of multiple tasks are formally described to obtain a formal model. A state machine is then used to perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks. This approach can quickly provide reasonable deployment strategies regardless of the actual operating environment, thereby improving the efficiency of multi-task deployment. Attached Figure Description

[0031] Figure 1 This is a structural schematic diagram of an autonomous vehicle provided in an embodiment of this application.

[0032] Figure 2 This is a schematic diagram of the structure of an autonomous driving system provided in an embodiment of this application.

[0033] Figure 3 This is a schematic diagram of a system architecture applicable to an embodiment of this application.

[0034] Figure 4 This is a schematic block diagram illustrating a method for multitasking deployment provided in one embodiment of this application.

[0035] Figure 5 This is a schematic block diagram of a platform state machine provided in another embodiment of this application.

[0036] Figure 6 This is a schematic block diagram of a task state machine provided in another embodiment of this application.

[0037] Figure 7 This is a schematic block diagram illustrating a method for multitasking deployment provided in one embodiment of this application.

[0038] Figure 8 This is a schematic block diagram of a multi-task deployment apparatus provided in another embodiment of this application.

[0039] Figure 9 This is a schematic block diagram of a multi-task deployment apparatus provided in another embodiment of this application. Detailed Implementation

[0040] The technical solutions in this application will now be described with reference to the accompanying drawings.

[0041] The technical solutions of this application can be applied to various scenarios that require the deployment of multiple tasks on multiple cores (or multiple processors). For example, the technical solutions of this application can be applied to vehicles, deploying multiple tasks in the vehicle's sensor system on multiple processors in the controller.

[0042] The technical solutions of this application embodiment can be applied to various vehicles, specifically internal combustion engine vehicles, intelligent electric vehicles, or hybrid vehicles. Alternatively, the vehicle can be a vehicle with other power types, etc. This application embodiment does not limit this.

[0043] The vehicle in this application embodiment can be an autonomous vehicle. For example, the autonomous vehicle can be configured with an autonomous driving mode, which can be a fully autonomous driving mode or a partially autonomous driving mode. This application embodiment does not limit this.

[0044] The vehicle in this embodiment may also be configured with other driving modes, which may include one or more of various driving modes such as Sport mode, Eco mode, Standard mode, Snow mode, and Hill Climb mode. The autonomous vehicle can switch between autonomous driving mode and the above-mentioned various driving modes (driven by a driver), but this embodiment is not limited in this respect.

[0045] Figure 1 This is a functional block diagram of the vehicle 100 provided in the embodiments of this application.

[0046] In one embodiment, vehicle 100 is configured in a fully or partially autonomous driving mode.

[0047] For example, vehicle 100 can control itself while in autonomous driving mode, and can determine the current state of the vehicle and its surrounding environment through human intervention, determine the possible behaviors of at least one other vehicle in the surrounding environment, and determine the confidence level corresponding to the probability of that other vehicle performing a possible behavior, and control vehicle 100 based on the determined information. When vehicle 100 is in autonomous driving mode, vehicle 100 can be set to operate without human interaction.

[0048] Vehicle 100 may include various subsystems, such as a mobility system 102, a sensor system 104, a control system 106, one or more peripheral devices 108, a power supply 110, a computer system 112, and a user interface 116.

[0049] Optionally, vehicle 100 may include more or fewer subsystems, and each subsystem may include multiple components. Additionally, each subsystem and component of vehicle 100 may be interconnected via wired or wireless means.

[0050] The propulsion system 102 may include components that provide powered motion to the vehicle 100. In one embodiment, the propulsion system 102 may include an engine 118, an energy source 119, a transmission 120, and wheels / tires 121. The engine 118 may be an internal combustion engine, an electric motor, an air-compressed engine, or other types of engine combinations, such as a hybrid engine consisting of a gasoline engine and an electric motor, or a hybrid engine consisting of an internal combustion engine and an air-compressed engine. The engine 118 converts the energy source 119 into mechanical energy.

[0051] Examples of energy sources 119 include gasoline, diesel, other petroleum-based fuels, propane, other compressed gas-based fuels, ethanol, solar panels, batteries, and other sources of electricity. Energy source 119 may also provide energy to other systems of vehicle 100.

[0052] The transmission 120 can transmit mechanical power from the engine 118 to the wheels 121. The transmission 120 may include a gearbox, a differential, and a drive shaft.

[0053] In one embodiment, the transmission 120 may also include other components, such as a clutch. The drive shaft may include one or more shafts that can be coupled to one or more wheels 121.

[0054] The sensor system 104 may include several sensors that sense information about the environment surrounding the vehicle 100.

[0055] For example, sensor system 104 may include positioning system 122 (which may be a GPS system, a BeiDou system, or another positioning system), inertial measurement unit (IMU) 124, radar 126, laser rangefinder 128, and camera 130. Sensor system 104 may also include sensors for the internal systems of the monitored vehicle 100 (e.g., in-vehicle air quality monitor, fuel gauge, oil temperature gauge, etc.). Sensor data from one or more of these sensors can be used to detect objects and their corresponding characteristics (position, shape, orientation, speed, etc.). This detection and identification is a key function for the safe operation of autonomous vehicle 100.

[0056] The positioning system 122 can be used to estimate the geographic location of the vehicle 100. The IMU 124 is used to sense changes in the position and orientation of the vehicle 100 based on inertial acceleration. In one embodiment, the IMU 124 can be a combination of an accelerometer and a gyroscope.

[0057] Radar 126 can use radio signals to sense objects in the surrounding environment of vehicle 100. In some embodiments, in addition to sensing objects, radar 126 can also be used to sense the speed and / or direction of travel of objects.

[0058] The laser rangefinder 128 can use lasers to sense objects in the environment in which the vehicle 100 is located. In some embodiments, the laser rangefinder 128 may include one or more laser sources, a laser scanner, and one or more detectors, as well as other system components.

[0059] Camera 130 can be used to capture multiple images of the surrounding environment of vehicle 100. Camera 130 can be a still camera or a video camera.

[0060] The control system 106 controls the operation of the vehicle 100 and its components. The control system 106 may include various elements, including a steering system 132, a throttle 134, a braking unit 136, a sensor fusion algorithm 138, a computer vision system 140, a route control system 142, and an obstacle avoidance system 144.

[0061] The steering system 132 is operable to adjust the forward direction of the vehicle 100. For example, in one embodiment, it may be a steering wheel system.

[0062] Throttle 134 is used to control the operating speed of engine 118 and thus the speed of vehicle 100.

[0063] Braking unit 136 is used to control the deceleration of vehicle 100. Braking unit 136 can use friction to slow down wheel 121. In other embodiments, braking unit 136 can convert the kinetic energy of wheel 121 into electric current. Braking unit 136 may also take other forms to slow down the rotational speed of wheel 121 to control the speed of vehicle 100.

[0064] Computer vision system 140 is operable to process and analyze images captured by camera 130 to identify objects and / or features in the environment surrounding vehicle 100. The objects and / or features may include traffic signals, road boundaries, and obstacles. Computer vision system 140 may use object recognition algorithms, structure from motion (SFM) algorithms, video tracking, and other computer vision techniques. In some embodiments, computer vision system 140 may be used to map the environment, track objects, estimate object velocities, and so on.

[0065] The route control system 142 is used to determine the driving route of the vehicle 100. In some embodiments, the route control system 142 may combine data from sensor 138, GPS 122 and one or more predetermined maps to determine the driving route of the vehicle 100.

[0066] The obstacle avoidance system 144 is used to identify, assess and avoid or otherwise traverse potential obstacles in the environment of the vehicle 100.

[0067] Of course, in one instance, the control system 106 may include additional or alternative components besides those shown and described. Alternatively, some of the components shown above may be reduced.

[0068] Vehicle 100 interacts with external sensors, other vehicles, other computer systems, or users via peripheral devices 108. Peripheral devices 108 may include a wireless communication system 146, an on-board computer 148, a microphone 150, and / or a speaker 152.

[0069] In some embodiments, peripheral device 108 provides a means for a user of vehicle 100 to interact with user interface 116. For example, on-board computer 148 may provide information to a user of vehicle 100. User interface 116 may also operate on-board computer 148 to receive user input. On-board computer 148 may be operated via a touchscreen. In other cases, peripheral device 108 may provide a means for vehicle 100 to communicate with other devices located within the vehicle. For example, microphone 150 may receive audio (e.g., voice commands or other audio input) from a user of vehicle 100. Similarly, speaker 152 may output audio to a user of vehicle 100.

[0070] The wireless communication system 146 can communicate wirelessly with one or more devices directly or via a communication network. For example, the wireless communication system 146 can use 3G cellular communication, such as CDMA, EVDO, GSM / GPRS, or 4G cellular communication, such as LTE, or 5G cellular communication. The wireless communication system 146 can communicate using WiFi and a wireless local area network (WLAN). In some embodiments, the wireless communication system 146 can communicate directly with devices using an infrared link, Bluetooth, or ZigBee. Other wireless protocols, such as various vehicle communication systems, are also possible. For example, the wireless communication system 146 may include one or more dedicated short-range communications (DSRC) devices that can enable public and / or private data communication between vehicles and / or roadside stations.

[0071] Power source 110 can provide power to various components of vehicle 100. In one embodiment, power source 110 can be a rechargeable lithium-ion or lead-acid battery. One or more such battery packs can be configured to provide power to various components of vehicle 100. In some embodiments, power source 110 and energy source 119 can be implemented together, as is the case in some fully electric vehicles.

[0072] Some or all of the functions of vehicle 100 are controlled by computer system 112. Computer system 112 may include at least one processor 113, which executes instructions 115 stored in a non-transitory computer-readable medium such as data storage device 114. Computer system 112 may also be multiple computing devices that control individual components or subsystems of vehicle 100 in a distributed manner.

[0073] Processor 113 can be any conventional processor, such as a commercially available CPU. Alternatively, the processor can be a special-purpose device such as an ASIC or other hardware-based processor. Although Figure 1 The processor, memory, and other components of computer 110 within the same block are functionally illustrated; however, those skilled in the art will understand that the processor, computer, or memory may actually include multiple processors, computers, or memories within the same physical housing. For example, memory may be a hard disk drive or other storage media located in a housing different from computer 110. Therefore, references to processors or computers will be understood to include references to a collection of processors or computers or memories that may or may not operate in parallel. Unlike using a single processor to perform the steps described herein, some components, such as steering and deceleration components, may each have their own processor that performs calculations only related to the component's specific function.

[0074] In the various aspects described herein, the processor may be located remotely from the vehicle and communicate wirelessly with the vehicle. In other aspects, some of the processes described herein are executed on a processor located within the vehicle, while others are executed by a remote processor, including taking the necessary steps to perform a single operation.

[0075] In some embodiments, the data storage device 114 may include instructions 115 (e.g., program logic) that can be executed by the processor 113 to perform various functions of the vehicle 100, including those described above. The data storage device 114 may also include additional instructions, including instructions to send data to, receive data from, interact with, and / or control one or more of the propulsion system 102, sensor system 104, control system 106, and peripheral devices 108.

[0076] In addition to instruction 115, data storage device 114 may also store data such as road maps, route information, vehicle position, direction, speed, and other vehicle data, as well as other information. This information can be used by vehicle 100 and computer system 112 during operation of vehicle 100 in autonomous, semi-autonomous, and / or manual modes.

[0077] User interface 116 is used to provide information to or receive information from users of vehicle 100. Optionally, user interface 116 may include one or more input / output devices within a set of peripheral devices 108, such as wireless communication system 146, vehicle-to-everything (V2X) computer 148, microphone 150, and speaker 152.

[0078] Computer system 112 can control the functions of vehicle 100 based on input received from various subsystems (e.g., driving system 102, sensor system 104, and control system 106) and from user interface 116. For example, computer system 112 can utilize input from control system 106 to control steering unit 132 to avoid obstacles detected by sensor system 104 and obstacle avoidance system 144. In some embodiments, computer system 112 is operable to provide control over many aspects of vehicle 100 and its subsystems.

[0079] Alternatively, one or more of these components may be installed separately from or associated with vehicle 100. For example, data storage device 114 may exist partially or completely separately from vehicle 100. The components may be communicatively coupled together in a wired and / or wireless manner.

[0080] Optionally, the components described above are merely examples. In actual applications, components in each of the above modules may be added or removed as needed. Figure 1 This should not be construed as a limitation on the embodiments of this application.

[0081] Autonomous vehicles traveling on roads, such as vehicle 100 above, can identify objects in their surrounding environment to determine adjustments to their current speed. These objects can be other vehicles, traffic control equipment, or other types of objects. In some examples, each identified object can be considered independently, and based on the object's individual characteristics, such as its current speed, acceleration, and distance from the vehicle, the speed adjustment to be made by the autonomous vehicle can be determined.

[0082] Optionally, the vehicle 100 or a computing device associated with the vehicle 100 (such as...) Figure 1The computer system 112, computer vision system 140, and data storage device 114 can predict the behavior of the identified objects based on the characteristics of the identified objects and the state of the surrounding environment (e.g., traffic, rain, ice on the road, etc.). Optionally, each identified object depends on the behavior of each other, so all identified objects can also be considered together to predict the behavior of a single identified object. The vehicle 100 can adjust its speed based on the predicted behavior of the identified objects. In other words, the autonomous vehicle can determine what steady state the vehicle will need to adjust to (e.g., accelerate, decelerate, or stop) based on the predicted behavior of the objects. In this process, other factors can also be considered in determining the speed of the vehicle 100, such as the lateral position of the vehicle 100 in the road, the curvature of the road, the proximity of static and dynamic objects, etc.

[0083] In addition to providing instructions to adjust the speed of the autonomous vehicle, the computing device can also provide instructions to modify the steering angle of the vehicle 100 so that the autonomous vehicle follows a given trajectory and / or maintains a safe lateral and longitudinal distance from objects near the autonomous vehicle (e.g., cars in adjacent lanes on the road).

[0084] The aforementioned vehicle 100 can be a car, truck, motorcycle, bus, ship, airplane, helicopter, lawnmower, recreational vehicle, amusement park vehicle, construction equipment, tram, golf cart, train, and handcart, etc., and this application embodiment does not impose any special limitations.

[0085] Figure 2 This is a schematic diagram of an autonomous driving system provided in an embodiment of this application.

[0086] like Figure 2The illustrated autonomous driving system includes a computer system 101, which includes a processor 103 coupled to a system bus 105. The processor 103 can be one or more processors, each of which may include one or more processor cores. A video adapter 107 drives a display 109, which is coupled to the system bus 105. The system bus 105 is coupled to an input / output (I / O) bus 113 via a bus bridge 111. An I / O interface 115 is coupled to the I / O bus. The I / O interface 115 communicates with various I / O devices, such as input devices 117 (e.g., keyboard, mouse, touchscreen), a media tray 121 (e.g., CD-ROM, multimedia interface), a transceiver 123 (capable of sending and / or receiving radio communication signals), a camera 155 (capable of capturing still and moving digital video images), and an external USB interface 125. Optionally, the interface connected to the I / O interface 115 may be a USB interface.

[0087] The processor 103 can be any conventional processor, including a reduced instruction set computer (RISC) processor, a complex instruction set computer (CISC) processor, or a combination thereof. Optionally, the processor can be a special-purpose device such as an application-specific integrated circuit (ASIC). Optionally, the processor 103 can be a neural network processor or a combination of a neural network processor and the conventional processors described above.

[0088] Optionally, in the various embodiments described herein, computer system 101 may be located remotely from the autonomous vehicle (e.g., computer system 101 may be located in the cloud or on a server) and may communicate wirelessly with the autonomous vehicle. In other aspects, some of the processes described herein are executed on a processor located within the autonomous vehicle, while others are executed by a remote processor, including taking actions necessary to perform a single manipulation.

[0089] Computer 101 can communicate with software deployment server 149 via network interface 129. Network interface 129 is a hardware network interface, such as a network interface card (NIC). Network 127 can be an external network, such as the Internet, or an internal network, such as Ethernet or a virtual private network (VPN). Optionally, network 127 can also be a wireless network, such as a WiFi network or a cellular network.

[0090] The hard disk drive interface is coupled to the system bus 105. The hardware drive interface is connected to the hard disk drive. The system memory 135 is coupled to the system bus 105. The data running in the system memory 135 may include the operating system 137 and applications 143 of the computer 101.

[0091] An operating system consists of an interpreter (shell) 139 and a kernel 141. The shell is an interface between the user and the operating system kernel. The shell is the outermost layer of the operating system. The shell manages the interaction between the user and the operating system: it waits for user input, interprets the user input for the operating system, and processes various operating system outputs.

[0092] The kernel 141 consists of the parts of the operating system used to manage memory, files, peripherals, and system resources. Interacting directly with the hardware, the operating system kernel typically runs processes and provides inter-process communication, CPU time-slice management, interrupts, memory management, I / O management, and so on.

[0093] Application 143 may also reside on the system of software deployment server 149. In one embodiment, when application 143 needs to be executed, computer system 101 may download application 143 from software deployment server 149.

[0094] Sensor 153 is associated with computer system 101. Sensor 153 is used to detect the environment surrounding computer 101. For example, sensor 153 can detect animals, cars, obstacles, and pedestrian crossings, etc. Furthermore, the sensor can also detect the environment around these objects, such as the environment around the animal (e.g., other animals nearby), weather conditions, ambient light levels, etc. Sensor 153 can also be used to acquire vehicle status information. For example, sensor 153 can detect vehicle status information such as vehicle position, vehicle speed, vehicle acceleration, and vehicle attitude. Optionally, if computer 101 is located on an autonomous vehicle, the sensor can be a camera, infrared sensor, chemical detector, microphone, etc.

[0095] The technical solutions in this application can be applied to the task deployment (or task orchestration) of the onboard sensor system of the aforementioned vehicles (e.g., autonomous vehicles).

[0096] Figure 3This is a schematic diagram of the architecture of a sensor system applicable to embodiments of this application. It should be understood that... Figure 3 The architecture 300 shown is merely an example and not a limitation. Architecture 300 may include more or fewer steps, and this application embodiment does not limit this.

[0097] like Figure 3 As shown, architecture 300 may include vehicle 310, controller 320 and sensor system 330.

[0098] Among them, vehicle 310 can be the above-mentioned Figure 1 The vehicle 100; the controller 320 can be a domain control unit (DCU) for autonomous driving, and the controller 320 may include one or more processors, which may be high-performance multi-core processors; the sensor system 330 may include Figure 1 The sensors shown include a global positioning system 122, an inertial measurement unit 124, a radar 126, a laser rangefinder 128, and a camera 130. The radar 126 can be a millimeter-wave radar, a lidar, an ultrasonic radar, or other radars. The sensor system 330 may also include other sensors, but this application embodiment does not limit the specific sensors included.

[0099] According to the multi-task deployment method in the embodiments of this application, it is possible to... Figure 3 The multitasking deployment of the sensor system 330 is carried out on the controller 320 (e.g., on multiple processors in the controller 320), thereby improving the efficiency of multitasking deployment.

[0100] Figure 4 This is a schematic flowchart of a multi-task deployment method 400 provided in an embodiment of this application.

[0101] Figure 4 The method 400 shown may include steps 410, 420, 430, 440, and 450. It should be understood that... Figure 4 The method 400 shown is merely an example and not a limitation. Method 400 may include more or fewer steps, which is not limited in this embodiment. The steps are described in detail below.

[0102] Figure 4 The method 400 shown can be derived from Figure 1 The processor 113 in vehicle 100 executes the method, or method 400 may also be executed by... Figure 2 The method can be executed by processor 103 in the autonomous driving system, or method 400 can also be executed by... Figure 3 The controller 320 in the middle executes.

[0103] S410, obtains the first information about the target platform.

[0104] The target platform may include multiple nodes, and the first information may be used to represent the attributes of the target platform.

[0105] Optionally, the target platform may be an in-vehicle platform of a vehicle (e.g., the vehicle may be an autonomous vehicle), and the multiple nodes in the target platform may include computing nodes (e.g., chips or processors), storage nodes (e.g., hard disks, memory or other storage devices), and transmission nodes (e.g., interfaces or ports for transmission).

[0106] It should be noted that the above embodiments are merely examples and not limitations. The target platform may also include other types of nodes, which are not limited in this application embodiment.

[0107] For example, the target platform can be a system-on-a-chip (SoC) for autonomous vehicles.

[0108] Optionally, the target platform can be used to deploy the vehicle's sensor platform, or in other words, the vehicle's sensor platform can be deployed on the target platform.

[0109] Furthermore, the first information may include information indicating the number of nodes in the target platform, the type of each of the plurality of nodes, the capabilities of each node, the power consumption mode of the target platform, and the triggering conditions of each power consumption mode.

[0110] For example, the first information can be used to indicate that the number of nodes in the target platform is 10, including 4 computing nodes (e.g., chip 1, chip 2, chip 3 and chip 4), 4 storage nodes (e.g., hard disk 1, hard disk 2, hard disk 3 and hard disk 4) and 2 transmission nodes (e.g., I / O interface 1 and I / O interface 2).

[0111] S420, obtains secondary information about multiple tasks to be deployed.

[0112] The second information can be used to represent the requirements of the multiple tasks.

[0113] The multiple tasks can be tasks obtained after each sensor in the vehicle's sensor system has been activated.

[0114] The sensor system may include multiple sensors. For example, the sensor system may include a global positioning system, an inertial measurement unit, a millimeter-wave radar, a lidar, an ultrasonic radar, a laser rangefinder, a camera, or other sensors. This application embodiment does not limit the types of sensors used.

[0115] Furthermore, the second information may include information indicating the number of tasks in the plurality of tasks, the dependencies between the plurality of tasks, the time constraints of each of the plurality of tasks, and the resources required to execute each of the plurality of tasks.

[0116] For example, the number of tasks in the plurality of tasks is four (e.g., task A, task B, task C, and task D); the dependencies between the plurality of tasks may include: task B needs to run task A first and can only start running after task A has finished running, and tasks C and D need to run simultaneously; the time constraints of each of the plurality of tasks may include: task A can only start running 100 milliseconds (ms) after the sensor system is started; the resources required by each task may include: the computing resources required by task A to run on each computing node, as well as the corresponding storage resources and transmission resources.

[0117] The resources required for each task can be obtained by powering on the target platform and running each task.

[0118] It should be noted that, since the capabilities of multiple nodes in the target platform may differ, the resources required for each task may vary on different nodes.

[0119] For example, chip 1 has stronger computing power than chip 2. Task A requires fewer computing resources to run on chip 1 than it does on chip 2. Correspondingly, task A may also require fewer storage resources to run on chip 1 and fewer transmission resources to run on chip 1.

[0120] Optionally, the second information may further include information indicating the execution time of each task, the periodic constraints of each task, the prerequisites of each task, and the mutual exclusion properties between each task and other tasks (among the plurality of tasks).

[0121] Alternatively, the second information may also include other information used to represent the requirements of the plurality of tasks, which is not limited in this embodiment of the application.

[0122] S430, The first information and the second information are formally described using a formal language to obtain a formal model.

[0123] The formal language can refer to a language defined using precise mathematics or machine-processable formulas.

[0124] For example, the formal language can be formally described using regular grammars, context-free grammars, context-dependent grammars, and unconstrained grammars.

[0125] Alternatively, the formal language can also be formally described in other ways (or other forms), which is not limited in this embodiment.

[0126] Optionally, the formal model may include a formal description of the attributes of the target platform and the requirements of the multiple tasks.

[0127] For example, the formal model may include formal descriptions of computing nodes (e.g., chips or processors), storage nodes (e.g., hard disks, memory or other storage devices), and transmission nodes (e.g., interfaces or ports for transmission).

[0128] For example, the formal model may also include: a formal description of the number of tasks in the plurality of tasks, the dependencies between the plurality of tasks, the time constraints of each task in the plurality of tasks, the resources required to execute each task, the execution time of each task, the periodic constraints of each task, the prerequisites of each task, and the mutual exclusion properties between each task and other tasks (in the plurality of tasks).

[0129] It should be noted that the above embodiments are merely examples and not limitations. The formal model may also include formal descriptions of other types of information, which are not limited in this application embodiment.

[0130] S440, using a state machine, perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks.

[0131] The state machine may include a platform state machine and a task state machine.

[0132] Optionally, the platform state machine may include the platform's power consumption modes, the switching conditions between power consumption modes, and the resource constraints of each power consumption mode. The platform state machine may be a finite state machine (FSM).

[0133] For example, such as Figure 5 As shown, the power consumption modes of the platform may include normal mode, low power mode, sleep mode, etc. The switching conditions between power consumption modes may include ambient temperature, domain controller active initiation, etc. The resource constraints of each power consumption mode may include compute node sleep, compute node frequency reduction, etc.

[0134] It should be noted that the above Figure 5 The platform state machine described is merely an example and not a limitation. The platform state machine may also include other power consumption modes, and the switching conditions between power consumption modes may also include other switching conditions. The resource constraints of each power consumption mode may also include other resource constraints. This application embodiment does not limit this.

[0135] Meanwhile, the platform state machine may also include other states or conditions, and the specific form of the platform state machine is not limited in this embodiment.

[0136] Optionally, the task state machine may include task states and transition conditions between task states. The task state machine may be a finite state machine (FSM).

[0137] For example, such as Figure 6 As shown, the task status may include waiting state, ready state, running state, abnormal state and completed state, etc., and the switching conditions between tasks may include timeout, previous task status, resource node status, etc.

[0138] It should be noted that the above Figure 6 The task state machine in the example is merely an example and not a limitation. The task state machine may also include other task states, and the task switching conditions may also include other switching conditions. This application embodiment does not limit this.

[0139] Meanwhile, the task state machine may also include other states or conditions, and the specific form of the task state machine is not limited in this embodiment.

[0140] Optionally, whether the deployment strategies of the multiple tasks generated in S440 conflict can be divided into the following two cases.

[0141] Case 1:

[0142] Using a state machine, formal analysis is performed based on the formal model to determine whether there is a conflict in the deployment strategies of the multiple tasks; if there is no conflict in the deployment strategies of the multiple tasks, the deployment strategies of the multiple tasks are generated.

[0143] In other words, if there is no conflict in the deployment strategies of the multiple tasks, the deployment strategies of the multiple tasks can be generated directly.

[0144] For example, such as Figure 7 As shown, if there is no conflict in the deployment strategies of the multiple tasks, the deployment strategy of the multiple tasks can be directly generated, and the multiple tasks can be deployed according to the deployment strategy.

[0145] Case 2:

[0146] Using a state machine, formal analysis is performed based on the formal model to determine whether the deployment strategies of the multiple tasks conflict; if the deployment strategies of the multiple tasks conflict, the conflict information of the deployment strategies of the multiple tasks is determined; and the formal model is adjusted according to the conflict information.

[0147] The conflict information may include the conflicting task, the type of conflicting task, the time of the conflict, and the scope of the conflict.

[0148] In other words, when the deployment strategies of the multiple tasks conflict, the conflict information of the deployment strategies of the multiple tasks can be determined, and the formal model can be adjusted according to the conflict information.

[0149] Alternatively, the attributes of the target platform and / or the requirements of the sensor system (or the requirements of the multiple tasks) can be adjusted based on the conflict information, that is, the content of the first information or the content of the second information can be adjusted based on the conflict information.

[0150] For example, such as Figure 7 As shown, in the event of a conflict in the deployment strategies of the multiple tasks, the attributes of the target platform and / or the requirements of the sensor system (or the requirements of the multiple tasks) can be adjusted based on the conflict information.

[0151] Optionally, the step of using a state machine to perform formal analysis based on the formal model to generate deployment strategies for the multiple tasks may include:

[0152] Using a state machine, formal analysis is performed based on the formal model to generate deployment strategies for the multiple tasks and resource utilization information for the target platform.

[0153] That is, while generating the deployment strategy, the resource utilization information of the target platform is also generated.

[0154] Optionally, the resource utilization information can be used to represent the resource utilization status of the target platform.

[0155] For example, the resource utilization information may include the start and end times of each node's operation in the target platform and the resource utilization rate of each node. It should be noted that the specific content of the resource utilization information is not limited in this embodiment.

[0156] Furthermore, the method 400 may also include step 442.

[0157] S442, Based on the resource utilization information, add tasks to the deployment strategy; update the resource utilization information according to the added tasks.

[0158] For example, idle nodes in the target platform can be determined based on the resource utilization information, and tasks can be added in a formalized manner. Then, tasks can be added on the idle nodes to generate a new deployment strategy, while simultaneously updating the resource utilization information.

[0159] S450, deploy the multiple tasks according to the deployment strategy.

[0160] Figure 8 This is a schematic block diagram of a multi-task deployment apparatus 800 provided in one embodiment of this application. It should be understood that... Figure 8 The illustrated multi-tasking deployment device 800 is merely an example; the device 800 of this application embodiment may also include other modules or units. It should be understood that the device 800 is capable of performing… Figure 4 To avoid repetition, the steps in the method will not be described in detail here.

[0161] In one possible implementation of this application embodiment, the multi-task deployment apparatus 800 may include:

[0162] The first acquisition unit 810 is used to acquire first information of the target platform, wherein the first information is used to represent the attributes of the target platform;

[0163] The second acquisition unit 820 is used to acquire second information of multiple tasks to be deployed, the second information being used to represent the requirements of the multiple tasks;

[0164] The formal description unit 830 is used to perform a formal description of the first information and the second information based on a formal language to obtain a formal model;

[0165] Formal analysis unit 840 is used to perform formal analysis based on the formal model using a state machine to generate deployment strategies for the multiple tasks;

[0166] Deployment unit 850 is used to deploy the plurality of tasks according to the deployment strategy.

[0167] Optionally, the target platform includes multiple nodes. The first information includes information indicating the number of nodes in the target platform, the type of each node in the multiple nodes, the capabilities of each node, the power consumption mode of the target platform, and the triggering conditions of each power consumption mode. The second information includes information indicating the number of tasks in the multiple tasks, the dependencies between the multiple tasks, the time constraints of each task in the multiple tasks, and the resources required to execute each task.

[0168] Optionally, the formal analysis unit 840 is specifically used to: use a state machine to perform formal analysis based on the formal model to determine whether the deployment strategies of the multiple tasks conflict; and generate the deployment strategies of the multiple tasks if the deployment strategies of the multiple tasks do not conflict.

[0169] Optionally, the formal analysis unit 840 is specifically used to: use a state machine to perform formal analysis based on the formal model to determine whether the deployment strategies of the multiple tasks conflict; if the deployment strategies of the multiple tasks conflict, determine the conflict information of the deployment strategies of the multiple tasks; and adjust the formal model according to the conflict information.

[0170] Optionally, the formal analysis unit 840 is specifically used to: use a state machine to perform formal analysis based on the formal model, and generate deployment strategies for the multiple tasks and resource utilization information for the target platform.

[0171] Optionally, the apparatus further includes an update unit 860, configured to: add tasks to the deployment strategy based on the resource utilization information; and update the resource utilization information according to the added tasks.

[0172] Optionally, the state machine includes a platform state machine and a task state machine. The platform state machine includes the power consumption modes of the platform, the switching conditions between each power consumption mode, and the resource constraints of each power consumption mode. The task state machine includes the task states and the switching conditions between each task state.

[0173] It should be understood that the multi-tasking deployment device 800 described here is embodied in the form of functional modules. The term "module" here can be implemented in software and / or hardware, without specific limitation. For example, a "module" can be a software program, hardware circuit, or a combination of both that implements the above-described functions. The hardware circuit may include application-specific integrated circuits (ASICs), electronic circuits, a processor (e.g., a shared processor, a proprietary processor, or a group processor, etc.) and memory for executing one or more software or firmware programs, combined logic circuitry, and / or other suitable components supporting the described functions.

[0174] As an example, the multi-task deployment apparatus 800 provided in this application embodiment may be a vehicle-mounted unit (or processor) in an autonomous driving system, or it may be a controller (e.g., a domain controller) in an autonomous vehicle, or it may be a chip configured in the vehicle-mounted unit to execute the methods described in this application embodiment.

[0175] Figure 9 This is a schematic block diagram of a multi-tasking deployment apparatus 900 according to an embodiment of this application. Figure 9 The illustrated device 900 includes a memory 901, a processor 902, a communication interface 903, and a bus 904. The memory 901, processor 902, and communication interface 903 are interconnected via the bus 904.

[0176] The memory 901 can be a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 901 can store programs. When the program stored in the memory 901 is executed by the processor 902, the processor 902 performs various steps of the multi-tasking deployment method of this embodiment. For example, it can execute... Figure 4 The various steps of the illustrated embodiment.

[0177] The processor 902 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, used to execute relevant programs to implement the multi-task deployment method of the method embodiments of this application.

[0178] The processor 902 can also be an integrated circuit chip with signal processing capabilities. In implementation, each step of the multi-task deployment method of this application embodiment can be completed by the integrated logic circuitry in the processor 902 or by software instructions.

[0179] The processor 902 described above can also be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor.

[0180] The steps of the method disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory 901. The processor 902 reads information from memory 901 and, in conjunction with its hardware, completes the functions required by the units included in the multi-task deployment apparatus in the embodiments of this application, or executes the multi-task deployment method of the method embodiments of this application. For example, it can execute... Figure 4 The various steps / functions of the illustrated embodiment.

[0181] The communication interface 903 can use, but is not limited to, transceivers to enable communication between the device 900 and other devices or communication networks.

[0182] Bus 904 may include a pathway for transmitting information between various components of device 900 (e.g., memory 901, processor 902, communication interface 903).

[0183] It should be understood that the device 900 shown in the embodiments of this application may be a vehicle infotainment system (or processor) in an autonomous driving system, or it may be a controller (e.g., a domain controller) in an autonomous vehicle, or it may be a chip configured in the vehicle infotainment system for executing the methods described in the embodiments of this application.

[0184] It should be understood that the processor in the embodiments of this application can be a central processing unit (CPU), but it can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor.

[0185] It should also be understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of random access memory (RAM) are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDR SDRAM), enhanced synchronous DRAM (ESDRAM), synchronous linked DRAM (SLDRAM), and direct rambus RAM (DR RAM).

[0186] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive.

[0187] It should be understood that the term "and / or" in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. A and B can be singular or plural. Additionally, the character " / " in this article generally indicates an "or" relationship between the preceding and following related objects, but it can also represent an "and / or" relationship. Please refer to the context for a more accurate understanding.

[0188] In this application, "at least one" means one or more, and "more than one" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0189] It should be understood that in the various embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

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

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

[0192] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

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

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

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

[0196] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

Claims

1. A method for multi-task deployment, characterized in that, include: First information of the target platform is obtained. The first information is used to represent the attributes of the target platform. The target platform includes multiple nodes. The first information includes information indicating the number of nodes in the target platform, the type of each node in the multiple nodes, the capability of each node, the power consumption mode of the target platform, and the triggering conditions of each power consumption mode. Obtain second information about multiple tasks to be deployed. The second information is used to represent the requirements of the multiple tasks. The second information includes information indicating the number of tasks in the multiple tasks, the dependencies between the multiple tasks, the time constraints of each task in the multiple tasks, and the resources required to execute each task. The first information and the second information are formally described using a formal language to obtain a formal model; Using a state machine, formal analysis is performed based on the formal model to generate deployment strategies for the multiple tasks. The state machine includes a platform state machine and a task state machine. The platform state machine includes the power consumption mode of the platform, the switching conditions between each power consumption mode, and the resource constraints of each power consumption mode. The task state machine includes the task state and the switching conditions between each task state. The multiple tasks are deployed according to the deployment strategy. The use of a state machine, based on the formal model, to perform formal analysis and generate deployment strategies for the multiple tasks includes: Using a state machine, formal analysis is performed based on the formal model to determine whether the deployment strategies of the multiple tasks conflict. In the event of a conflict in the deployment strategies of the multiple tasks, conflict information of the deployment strategies of the multiple tasks is determined, and the conflict information includes the types of tasks that are in conflict. The formal model is adjusted based on the conflict information.

2. The method according to claim 1, characterized in that, The use of a state machine, based on the formal model, to perform formal analysis and generate deployment strategies for the multiple tasks includes: Using a state machine, formal analysis is performed based on the formal model to generate deployment strategies for the multiple tasks and resource utilization information for the target platform.

3. The method according to claim 2, characterized in that, The method further includes: Based on the resource utilization information, add tasks to the deployment strategy; Update the resource utilization information based on the added tasks.

4. A multi-task deployment device, characterized in that, include: The first acquisition unit is used to acquire first information of the target platform. The first information is used to represent the attributes of the target platform. The target platform includes multiple nodes. The first information includes information indicating the number of nodes in the target platform, the type of each node among the multiple nodes, the capability of each node, the power consumption mode of the target platform, and the triggering conditions of each power consumption mode. The second acquisition unit is used to acquire second information of multiple tasks to be deployed. The second information is used to represent the requirements of the multiple tasks. The second information includes information indicating the number of tasks in the multiple tasks, the dependencies of the multiple tasks, the time constraints of each task in the multiple tasks, and the resources required to execute each task. A formal description unit is used to formally describe the first information and the second information based on a formal language to obtain a formal model; The formal analysis unit is used to perform formal analysis based on the formal model using a state machine to generate deployment strategies for the multiple tasks. The state machine includes a platform state machine and a task state machine. The platform state machine includes the power consumption mode of the platform, the switching conditions between each power consumption mode, and the resource constraints of each power consumption mode. The task state machine includes the task state and the switching conditions between each task state. A deployment unit is configured to deploy the plurality of tasks according to the deployment strategy; The formal analysis unit is specifically used for: Using a state machine, formal analysis is performed based on the formal model to determine whether the deployment strategies of the multiple tasks conflict. In the event of a conflict in the deployment strategies of the multiple tasks, conflict information of the deployment strategies of the multiple tasks is determined, and the conflict information includes the types of tasks that are in conflict. The formal model is adjusted based on the conflict information.

5. The apparatus according to claim 4, characterized in that, The formal analysis unit is specifically used for: Using a state machine, formal analysis is performed based on the formal model to generate deployment strategies for the multiple tasks and resource utilization information for the target platform.

6. The apparatus according to claim 5, characterized in that, The device further includes an updating unit for: Based on the resource utilization information, add tasks to the deployment strategy; Update the resource utilization information based on the added tasks.

7. A multi-task deployment device, characterized in that, It includes a processor and a memory, the memory being used to store program instructions, and the processor being used to invoke the program instructions to execute the method of any one of claims 1 to 3.

8. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores program instructions that, when executed by a processor, implement the method of any one of claims 1 to 3.

9. A chip, characterized in that, The chip includes a processor and a data interface. The processor reads instructions stored in the memory through the data interface to execute the method as described in any one of claims 1 to 3.

Citation Information

Cited By

  • Multi-task deployment method and apparatus

    WO2022068643A1