WO2024103339A1 - 功能迁移方法、装置和智能驾驶设备 - Google Patents

功能迁移方法、装置和智能驾驶设备 Download PDF

Info

Publication number
WO2024103339A1
WO2024103339A1 PCT/CN2022/132539 CN2022132539W WO2024103339A1 WO 2024103339 A1 WO2024103339 A1 WO 2024103339A1 CN 2022132539 W CN2022132539 W CN 2022132539W WO 2024103339 A1 WO2024103339 A1 WO 2024103339A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
sub
area
domain
cross
Prior art date
Application number
PCT/CN2022/132539
Other languages
English (en)
French (fr)
Inventor
余加强
丁涛
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2022/132539 priority Critical patent/WO2024103339A1/zh
Publication of WO2024103339A1 publication Critical patent/WO2024103339A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Definitions

  • the present application relates to the field of intelligent driving, and more specifically, to a function migration method, device and intelligent driving equipment.
  • dependent functions developers or users will split and migrate functions based on business needs. Due to the horizontal dependencies between functions and the downward dependencies of some functions, it may be necessary to migrate the functions that have dependencies on the functions (hereinafter referred to as dependent functions) to the security domain during the function migration process. However, some dependent functions cannot be called across domains. Therefore, these dependent functions need to be deployed repeatedly in the security domain and the ordinary domain. If the granularity of function splitting and migration is large, repeated deployment of functions will result in large data redundancy. In addition, after the function is migrated and deployed, if the deployment of the function cannot meet business needs, the cost of changing the deployment of the function is also relatively high.
  • the present application provides a function migration method, device and intelligent driving equipment, which can solve the problem of difficult deployment change caused by large-granularity function migration and data redundancy caused by multiple deployments of the same function in multiple domains, help reduce the complexity of domain controller function deployment and improve the efficiency of function deployment.
  • the method provided in the present application can be applied to an intelligent driving device, which can be a vehicle in a broad sense, such as a means of transportation (such as commercial vehicles, passenger cars, trucks, motorcycles, airplanes, flying cars, trains, ships, etc.), industrial vehicles (such as forklifts, trailers, tractors, etc.), engineering vehicles (such as excavators, bulldozers, cranes, etc.), agricultural equipment (such as mowers, harvesters, etc.), amusement equipment, toy vehicles, etc.
  • a means of transportation such as commercial vehicles, passenger cars, trucks, motorcycles, airplanes, flying cars, trains, ships, etc.
  • industrial vehicles such as forklifts, trailers, tractors, etc.
  • engineering vehicles such as excavators, bulldozers, cranes, etc.
  • agricultural equipment such as mowers, harvesters, etc.
  • amusement equipment toy vehicles, etc.
  • toy vehicles etc.
  • the present application does not specifically limit the type of vehicle.
  • the present application provides a function migration method, which can be executed by a vehicle-mounted domain controller of a vehicle, or can also be executed by a chip set in the vehicle-mounted domain controller.
  • the vehicle-mounted domain controller includes a first area and a second area.
  • the method includes: generating first cross-domain call information, the first cross-domain call information indicating the call information of the first sub-function to the function and/or data in the second area; the first sub-function belongs to the first function, and the first sub-function is located in the first area; storing the first cross-domain call information, and the stored first cross-domain call information is used to migrate the first sub-function from the first area to the second area.
  • the relatively small granularity of sub-functions is used to avoid multi-domain deployment caused by migrating functions with larger granularity, which helps to reduce data redundancy caused by multi-domain deployment of the same function.
  • the first sub-function to be migrated can be determined based on the stored first cross-domain call information, so that after the function is migrated and deployed, when there is a deviation between the actual operation of the function and the business requirements (for example, the actual security level of the function does not reach the expected security level), the user does not need to re-analyze according to business requirements, and can determine which sub-functions caused the above deviations, which facilitates the adjustment of function deployment (i.e., further migration of sub-functions or re-migration of sub-functions), and helps to reduce the complexity and labor costs of function migration.
  • the vehicle-mounted domain controller (sometimes referred to as the domain controller) involved in the present application may include an electronic control unit (ECU) of the vehicle; or may also include a vehicle-mounted computing platform, such as an advanced driving domain controller (ADC), or a mobile data center (MDC); a vehicle domain controller (VDC); and at least one of a chassis domain controller (CDC).
  • the vehicle-mounted domain controller may also include other computing platforms, such as an in-car application-server (ICAS) controller, a body domain controller (BDC), a special equipment system (SAS), a media graphics unit (MGU), a body super core (BSC), an ADAS super core (ADAS super core), etc., which is not limited in the present application.
  • the ICAS may include at least one of the following: a vehicle control server ICAS1, an intelligent driving server ICAS2, an intelligent cockpit server ICAS3, and an infotainment server ICAS4.
  • storing the first cross-domain call information may include: controlling the storage of the first cross-domain call information.
  • a module in the vehicle domain controller that controls the sub-function to perform a cross-domain call e.g., a cross-domain call control module
  • controls the storage of the first cross-domain call information e.g., a cross-domain call control module
  • a module in the vehicle domain controller that manages a cache area e.g., a cache area management module
  • the calling information of the first sub-function on the function and/or data in the second region may include: information indicating that the cross-domain cost of the first sub-function is greater than or equal to a preset threshold.
  • the first sub-function's call to the function of the second area may include: a call to a sub-function of the first function in the second area, or may also include a call to other functions deployed in the second area; the first sub-function's call to data in the second area may include a call to cross-domain shared data in the second area.
  • generating the first cross-domain call information includes: recording cross-domain data of sub-functions in the first area and the second area in a first cache area; when the cross-domain data of the first sub-function meets the set business requirements, obtaining the cross-domain data of the first sub-function from the first cache area; and generating the first cross-domain call information based on the cross-domain data of the first sub-function and information about the business accessed by the first sub-function.
  • a cross-domain cache area is set, and cross-domain calls of functions to be migrated (or sub-functions) and/or migrated functions (or sub-functions) are implemented through the cross-domain cache area, so that there is no need to deploy the same function in multiple domains during function migration, which helps to reduce data redundancy caused by multi-domain deployment of the same function.
  • the recording and analysis of cross-domain data is implemented based on the cross-domain cache area, so that when the cross-domain data of a function meets certain conditions, cross-domain call information can be generated to instruct the user or the vehicle domain controller to migrate the function.
  • the sub-functions can be adaptively split according to the actual business needs (based on cross-domain data analysis), which can reduce the workload caused by manual splitting.
  • storing the first cross-domain call information includes: storing the first cross-domain call information in a second cache area.
  • storing the first cross-domain call information includes: controlling storage of the first cross-domain call information in a second cache area.
  • the first area and the second area are areas with different security levels, for example, the security level of the first area is higher than that of the second area. If a sub-function of the first area needs to frequently call functions and/or data of the second area, when the sub-function cannot be quickly migrated due to business needs (for example, the sub-function requires a higher security level), the cross-domain call of the sub-function can be implemented through the first cache area, which helps to ensure the overall performance of the first function. In addition, when the cross-domain call information of the sub-function is stored in the second cache area, it means that the sub-function can be migrated and needs to be migrated, and the sub-function can be controlled to migrate according to the cross-domain call information of the second cache area. After the sub-function is migrated, the overall performance of the first function can be improved due to the reduction of cross-domain call pressure.
  • the cross-domain call information stored in the second cache area indicates the migration of the sub-function. After the sub-function is migrated, the cross-domain call pressure of the sub-function within the first function is reduced, thereby helping to improve the performance of the first function while ensuring the security level or security requirements of the first function.
  • the vehicle domain controller only calculates the cross-domain cost for the cross-domain data of the sub-function stored in the second cache area, and when the cross-domain cost corresponding to a sub-function (such as the first sub-function) is greater than or equal to a preset threshold, the cross-domain call information is generated for the sub-function, and the cross-domain call information is stored in the second cache area.
  • the cross-domain data of a certain sub-function is stored in the second cache area, the cross-domain data of the sub-function is deleted in the first cache area.
  • the first cache area is used to store the cross-domain data of all sub-functions that need to be called across domains
  • the second cache area is used to store the cross-domain data of sub-functions that may need to be migrated, so that when the vehicle-mounted domain controller determines the sub-function that needs to be migrated, it only needs to pay attention to whether the sub-function corresponding to the cross-domain data in the second cache area needs to be migrated (for example, the cross-domain cost of the corresponding sub-function is calculated based on the cross-domain data in the second cache area), without having to judge whether all sub-functions of the cross-domain call need to be migrated one by one, which helps to reduce the computational complexity during the function migration process.
  • the cross-domain data of the first sub-function includes at least one of the following: the frequency, delay tolerance, and data volume of the first sub-function accessing the second area.
  • cross-domain cache area records cross-domain data
  • users can use the cross-domain data analysis sub-function to analyze the frequency and amount of shared data access, thereby providing a reliable basis for users to weigh the security and performance of the function.
  • the method before generating the first cross-domain call information, the method also includes: determining a first dependency of the first function, the first function includes M sub-functions, the M sub-functions include the first sub-function, the first dependency indicates a calling relationship between each of the M sub-functions and the second function, and the first function and the second function are deployed in the first area; the first dependency is used to control the migration of N of the M sub-functions to the second area; wherein the security level of the second area is higher than the security level of the first area, M is an integer greater than 1, and N is an integer greater than or equal to 1.
  • the M sub-functions other than N sub-functions include a first sub-function.
  • the first sub-function may need to call functions and/or data in the second area, and thus may generate the first cross-domain call information.
  • the N sub-functions include a first sub-function, and when determining the first dependency of the first function, the first cross-domain call information may be generated.
  • the first dependency is associated with a function migration scenario.
  • the function migration scenario may be: migrate the first function as a whole to the second area, and then migrate the above-mentioned sub-functions with lower security level requirements back to the first area.
  • the function migration scenario may be: migrate the first function to the second area, and then migrate the sub-functions other than N sub-functions among M sub-functions back to the first area.
  • the dependency relationship of the functions to be migrated can be determined to indicate the specific scenario of function migration (that is, after the overall migration of the function, individual sub-functions are migrated back to the initial deployment area, or one or more sub-functions in the function are migrated from the initial deployment area to the area to be migrated).
  • the initial deployment area and the area to be migrated are both for the state before the first function performs function migration.
  • the area to be migrated can be the migrated area of one or some sub-functions of the first function.
  • the method further includes: migrating the first sub-function from the first area to the second area according to the first dependency relationship and the first cross-domain call information.
  • the first sub-function is migrated from the first area to the second area.
  • the complexity level of the first sub-function dependency can be determined according to at least one of the following: the complexity of the dependency between the first sub-function and the function in the first area, the complexity of the dependency between the first sub-function and the data in the first area, the complexity of the dependency between the first sub-function and the function in the second area, the complexity of the dependency between the first sub-function and the data in the second area, and the difficulty of migrating the dependent functions of the first sub-function.
  • the complexity can be determined according to the number of horizontally dependent functions, vertically dependent functions, etc.
  • the above complexity level may also be related to the service characteristics implemented by the first sub-function.
  • the first cache area is generated for the demand that the first sub-function calls the second area in the first area.
  • the first cache area can be deleted (or formatted).
  • the method further includes: using a keyword to mark the cross-domain call application interface and/or cross-domain data access pointer of the first sub-function; generating a scheduling function based on the keyword, and the scheduling function is used to adjust the behavior of the first sub-function accessing the second area.
  • the first sub-function is cross-domain scheduled through the scheduling function, which can realize cross-domain migration (or deployment) of functions and isolation of the first sub-function code, so that users do not need to manually change the cross-domain scheduling function of the first sub-function, which helps to reduce manual workload.
  • a function migration device which is arranged in a vehicle-mounted domain controller, the vehicle-mounted domain controller includes a first area and a second area, and the device includes a generation unit and a storage unit, wherein: the generation unit is used to generate first cross-domain call information, the first cross-domain call information indicates the call information of the first sub-function to the function and/or data in the second area, the first sub-function belongs to the first function, and the first sub-function is located in the first area; the storage unit is used to store the first cross-domain call information, and the stored first cross-domain call information is used to migrate the first sub-function from the first area to the second area.
  • the storage unit includes a first cache area
  • the device also includes a recording unit, which is used to record cross-domain data of sub-functions in the first area and the second area in the first cache area; the generation unit is used to obtain the cross-domain data of the first sub-function from the first cache area when the cross-domain data of the first sub-function meets the set business requirements, and generate the first cross-domain call information based on the cross-domain data of the first sub-function and information about the business accessed by the first sub-function.
  • the storage unit further includes a second cache area, and the second cache area is used to store the first cross-domain call information.
  • the cross-domain data of the first sub-function includes at least one of the following: the frequency, delay tolerance, and data volume of the first sub-function accessing the second area.
  • the device also includes a determination unit, which is used to: determine a first dependency of the first function, the first function includes M sub-functions, the M sub-functions include the first sub-function, the first dependency indicates a calling relationship between each of the M sub-functions and the second function, and the first function and the second function are deployed in the first area; wherein the first dependency is used to control the migration of N of the M sub-functions to the second area; the security level of the second area is higher than the security level of the first area, M is an integer greater than 1, and N is an integer greater than or equal to 1.
  • the device also includes a migration unit, which is used to: migrate the first sub-function from the first area to the second area according to the first dependency and the first cross-domain call information.
  • the device also includes a marking unit, which is used to use a keyword to mark the cross-domain call application interface and/or cross-domain data access pointer of the first sub-function; the generation unit is also used to generate a scheduling function based on the keyword, and the scheduling function is used to adjust the behavior of the first sub-function accessing the second area.
  • a marking unit which is used to use a keyword to mark the cross-domain call application interface and/or cross-domain data access pointer of the first sub-function
  • the generation unit is also used to generate a scheduling function based on the keyword, and the scheduling function is used to adjust the behavior of the first sub-function accessing the second area.
  • a function migration device which includes: a memory for storing a computer program; and a processor for executing the computer program stored in the memory, so that the device performs a method as in any possible implementation of the first aspect.
  • a domain controller comprising a device as in any possible implementation of the second aspect or the third aspect.
  • an intelligent driving device which includes an apparatus as in any possible implementation of the second aspect or the third aspect, or a domain controller as in any possible implementation of the fourth aspect.
  • the intelligent driving device is a vehicle.
  • a computer program product comprising: a computer program code, when the computer program code is run on a computer, the computer executes the method in any possible implementation of the first aspect.
  • the above-mentioned computer program code may be stored in whole or in part on a first storage medium, wherein the first storage medium may be packaged together with the processor or may be packaged separately from the processor.
  • a computer-readable medium stores instructions, and when the instructions are executed by a processor, the processor implements the method in any possible implementation manner of the first aspect.
  • a chip comprising a circuit, the circuit being used to execute the method in any possible implementation manner of the first aspect above.
  • FIG1 is a schematic diagram of a function migration scenario
  • FIG2 is a functional block diagram of an intelligent driving device provided in an embodiment of the present application.
  • FIG3 is a schematic diagram of a system framework required for function migration provided by an embodiment of the present application.
  • FIG4 is a schematic flow chart of a function migration method provided in an embodiment of the present application.
  • FIG5 is another schematic flow chart of the function migration method provided in an embodiment of the present application.
  • FIG6 is a schematic diagram of an application scenario of a function migration method provided in an embodiment of the present application.
  • FIG7 is another schematic diagram of an application scenario of the function migration method provided in an embodiment of the present application.
  • FIG8 is another schematic diagram of an application scenario of the function migration method provided in an embodiment of the present application.
  • FIG9 is a schematic block diagram of a function migration device provided in an embodiment of the present application.
  • FIG. 10 is another schematic block diagram of the function migration device provided in an embodiment of the present application.
  • At least one of a, b, or c can mean: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c can be single or multiple.
  • prefixes such as "first" and “second” used in the embodiments of the present application are only used to distinguish different description objects, and have no limiting effect on the position, order, priority, quantity or content of the described objects.
  • the use of prefixes such as ordinal numbers used to distinguish description objects in the embodiments of the present application does not constitute a limitation on the described objects. For the statement of the described objects, please refer to the description in the context of the claims or embodiments, and the use of such prefixes should not constitute an unnecessary limitation.
  • Function It can be understood as a function implemented by a software program.
  • a software program can be divided into one or more functional modules, each of which can complete a sub-function of the software program, and the one or more functional modules as a whole can realize the function of the entire software program.
  • the functional migration involved in this application may include: the migration of a software program, and/or the migration of one or more functional modules in the software program.
  • the function of the domain controller is the path planning function.
  • the path planning function can be further divided into one or more sub-functions, for example, it can include one or more of the decision preprocessing sub-function, the priori preprocessing sub-function, the path generation sub-function, the obstacle processing sub-function, and the trajectory generation sub-function.
  • Function migration can be to migrate the path planning function from the ordinary domain to the security domain; or, it can also be to migrate one or more sub-functions in the path planning function from the ordinary domain to the security domain; or, it can also be to migrate one or more sub-functions in the path planning function from the security domain to the ordinary domain.
  • the security level requirements of multiple sub-functions in a function may be different.
  • the security level of the common domain can meet their security level requirements; while for other sub-functions, the security level of the security domain is required to meet their security level requirements.
  • the above situation may result in that for the function as a whole, the security level of the security domain is required to meet its security level requirements.
  • Horizontal dependency The interaction relationship (or calling relationship) between the functions of the domain controller, or the interaction relationship between the sub-functions within a function of the domain controller. Furthermore, the functions that have horizontal dependency on the function to be migrated are called horizontal dependency functions.
  • Cross-domain call A call from a function (or sub-function) deployed in a first area to a function (or sub-function) and/or data in a second area, where the first area and the second area are different areas within a domain controller.
  • the static dependencies of the functions are mainly analyzed. After the dependencies are determined, the functions that need to be migrated are manually split according to the security level requirements of the functions and the complexity of the dependencies; for functions with larger scale, the dependencies of the functions are identified through hotspot paths, and the shared data access code on some hotspot paths is automatically generated by tools to split the functions that need to be migrated. Since there are horizontal dependencies between the functions that need to be migrated and other functions, and there are vertical dependencies between each function and the underlying hardware, it is necessary to migrate the dependent functions to the security domain during the process of migrating the functions from the ordinary domain to the security domain.
  • Region 1 retains functions A, B, C, D, and X
  • region 2 deploys migrated functions A’, B’, C’, D’, and X’. It should be understood that functions A’, B’, C’, D’, and X’ are the same as functions A, B, C, D, and X, respectively.
  • the re-splitting and migration of the function not only requires manpower costs, but also lacks a more reliable basis;
  • the function needs to provide services for two or more domains at the same time, that is, one or more functions in two or more domains need to call the function, then it is necessary to maintain two or more sets of the same or similar function deployments in two or more domains at the same time, and for some functions that do not need to be migrated (for example, business requirements of the domain to which the migrated function is not required), its multi-domain deployment will bring great data redundancy, and it is also more likely to cause errors during the development and deployment of the function.
  • the degree of functional splitting often depends on the difference in the degree of trust of the function in the shared data access in the business flow.
  • the more complex the data flow generated by cross-domain calls and the more shared data the greater the mutual influence between the security of the function and the cross-domain access performance.
  • this relationship cannot be derived and determined through business needs, which makes it difficult for users to weigh the security and performance of the function when splitting the function.
  • the data used by each function exists as a business abstraction and is a black box to the outside world. The data can be shared within a function but cannot be shared externally (that is, data cannot be shared between functions). Therefore, when splitting the function, it is also necessary to consider data sharing or multi-domain deployment, resulting in a large workload for function migration.
  • the embodiments of the present application provide a function migration method, device and intelligent driving equipment.
  • the function is migrated from the initial deployment area to the area to be migrated, the sub-functions within the function are migrated as units, and the cross-domain call of the function is realized by setting a cross-domain cache area.
  • the same function or sub-function does not need to be repeatedly deployed in two or more domains, thereby solving the problem of data redundancy caused by repeated deployment.
  • the cross-domain call feature of the function is determined by the data recorded in the cross-domain cache area during the cross-domain call of the function, and the further migration of the function is indicated by the cross-domain call feature, for example, indicating that a sub-function of the function is migrated from the initial deployment area to the area to be migrated, or indicating that a sub-function of the function that has been migrated to the area to be migrated is migrated back to the initial deployment area, so that after the function is deployed, when the actual operation of the function deviates from the business demand, the function can be redeployed more conveniently, which helps to improve the efficiency of function migration and deployment.
  • FIG2 is a functional block diagram of an intelligent driving device provided by an embodiment of the present application.
  • the intelligent driving device 100 may include a perception system 120 and a computing platform 150, wherein the perception system 120 may include several sensors for sensing information about the environment around the intelligent driving device 100.
  • the perception system 120 may include a positioning system, and the positioning system may be a global positioning system (GPS), or a Beidou system or other positioning systems.
  • the perception system 120 may also include one or more of an inertial measurement unit (IMU), a laser radar, a millimeter wave radar, an ultrasonic radar, and a camera device.
  • IMU inertial measurement unit
  • the millimeter wave radar can be divided into a long-range radar and a medium/short-range radar.
  • the sensing range of the laser radar is about 80 to 150 meters
  • the sensing range of the long-range millimeter wave radar is about 1 to 250 meters
  • the sensing range of the medium/short-range millimeter wave radar is about 30 to 120 meters
  • the sensing range of the camera is about 50 to 200 meters
  • the sensing range of the ultrasonic radar is about 0 to 5 meters.
  • the computing platform 150 may include processors 151 to 15n.
  • the processor is a circuit with signal processing capability.
  • the processor may be a circuit with instruction reading and running capability, such as a central processing unit (CPU), a microprocessor, a graphics processing unit (GPU) (which can be understood as a microprocessor), or a digital signal processor (DSP); in another implementation, the processor may implement certain functions through the logical relationship of a hardware circuit, and the logical relationship of the hardware circuit is fixed or reconfigurable, such as a hardware circuit implemented by a processor as an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), such as a field programmable gate array (FPGA).
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the process of the processor loading a configuration document to implement the hardware circuit configuration can be understood as the process of the processor loading instructions to implement the functions of some or all of the above units.
  • the processor may also be a hardware circuit designed for artificial intelligence, which may be understood as an ASIC, such as a neural network processing unit (NPU), a tensor processing unit (TPU), a deep learning processing unit (DPU), etc.
  • the computing platform 150 may also include a memory, the memory is used to store instructions, and some or all of the processors 151 to 15n may call instructions in the memory to implement corresponding functions.
  • the intelligent driving device 100 may include an advanced driving assistant system (ADAS).
  • ADAS utilizes a variety of sensors on the intelligent driving device (including but not limited to: lidar, millimeter wave radar, camera device, ultrasonic sensor, global positioning system, inertial measurement unit) to obtain information from the surroundings of the intelligent driving device, and analyzes and processes the obtained information to achieve functions such as obstacle perception, target recognition, intelligent driving device positioning, path planning, driver monitoring/reminder, etc., thereby improving the safety, automation and comfort of driving the intelligent driving device.
  • sensors on the intelligent driving device including but not limited to: lidar, millimeter wave radar, camera device, ultrasonic sensor, global positioning system, inertial measurement unit
  • ADAS systems generally include three main functional modules: perception module, decision module and execution module.
  • the perception module perceives the environment around the vehicle body through sensors and inputs corresponding real-time data into the decision module.
  • the perception module mainly includes on-board cameras/ultrasonic radars/millimeter-wave radars/lidar, etc.; the decision module uses computing devices and algorithms to make corresponding decisions based on the information obtained from the perception module; the execution module takes corresponding actions after receiving the decision signal from the decision module, such as driving, changing lanes, steering, braking, warnings, etc.
  • ADAS can achieve different levels of automatic driving assistance based on artificial intelligence algorithms and information obtained by multiple sensors.
  • the above intelligent driving levels (L0-L5) are based on the grading standards of the Society of Automotive Engineers (SAE). Among them, L0 is no automation; L1 is driving assistance; L2 is partial automation; L3 is conditional automation; L4 is highly automated; L5 is fully automated. The tasks of monitoring road conditions and responding to L1 to L3 are completed by the driver and the system together, and the driver needs to take over the dynamic driving tasks. L4 and L5 levels allow the driver to completely transform into the role of a passenger.
  • SAE Society of Automotive Engineers
  • ADAS can achieve mainly include but are not limited to: adaptive cruise, automatic emergency braking, automatic parking, blind spot monitoring, front intersection traffic warning/braking, rear intersection traffic warning/braking, front vehicle collision warning, lane departure warning, lane keeping assist, rear vehicle collision avoidance warning, traffic sign recognition, traffic congestion assistance, highway assistance, etc.
  • L0-L5 intelligent driving levels
  • the safety levels (or other business requirements) of various functional modules in ADAS or various functional requirements that ADAS can implement may be different. For example, some functions may require a higher safety level. Therefore, in the ADAS development process, all functions are usually debugged in a common domain first, and then those functions with higher safety requirements are split out and migrated to the safety domain.
  • An embodiment of the present application provides a function migration method, which performs function migration with one sub-function as a migration unit according to the dependency relationship of sub-functions within the function.
  • a sub-function may need to call the sub-function of the function in other domains across domains, and/or call other functions and data in other domains.
  • Figure 3 shows a schematic diagram of the system framework required for function migration provided by an embodiment of the present application, which can realize cross-domain calls and can indicate further function migration.
  • FIG. 3a In (a) of Figure 3 (hereinafter referred to as Figure 3a), sub-functions 3 to 5 in function 1 have been migrated from the initial deployment area (area 1) of function 1 in the domain controller to the area to be migrated (area 2). After sub-functions 3 to 5 migrate to area 2, it is necessary to call the functions and/or data of area 1. Therefore, a cross-domain call control module 301 and a cache area management module 302 are set in area 2. In addition, a cross-domain second cache module 303 and a first cache module 304 are set.
  • the cache area management module 302 sets a cross-domain cache area for the sub-function to perform a cross-domain call in the first cache module 304 for the sub-function in area 2 that has a function and/or data requirement to call area 1. Further, the cross-domain call control module 301 controls the above-mentioned sub-function to perform a cross-domain call. In addition, the cross-domain cache area set for the sub-function in the first cache module 304 records the cross-domain data of the sub-function, and when the cross-domain data meets the preset conditions, the cross-domain data is stored in the second cache module 303.
  • the cache area management module 302 determines and stores the cross-domain call information of the sub-function according to the cross-domain data of the sub-function stored in the second cache module 303, so as to indicate to migrate the sub-function from area 2 back to area 1. It should be noted that after the sub-function is migrated back to area 1, the cache area management module 302 can delete the cross-domain cache area set for the sub-function in the first cache module 304.
  • FIG. 3b In (b) of Figure 3 (hereinafter referred to as Figure 3b), sub-functions 3 to 5 in function 1 have been migrated from the initial deployment area (area 1) of function 1 in the domain controller to the area to be migrated (area 2). After the migration of sub-functions 3 to 5, sub-functions 1 and/or sub-functions 2 of area 1 need to call the functions and/or data of area 2. Therefore, a cross-domain call control module 305 and a cache area management module 306 are set in area 1. The cache area management module 306 sets a cross-domain cache area for the sub-function to perform cross-domain calls in the first cache module 304 for the sub-function that has the function and/or data requirements of calling area 2 in area 1.
  • the cross-domain call control module 305 controls the above-mentioned sub-function to perform cross-domain calls.
  • the cross-domain cache area set for the sub-function in the first cache module 304 records the cross-domain data of the sub-function, and when the cross-domain data meets the preset conditions, the cross-domain data is stored in the second cache module 303.
  • the cache area management module 306 determines and stores the cross-domain call information of the sub-function according to the cross-domain data of the sub-function stored in the second cache module 303, so as to indicate the migration of the sub-function from area 1 to area 2. It should be noted that after the sub-function is migrated to area 2, the cache area management module 306 can delete the cross-domain cache area set for the sub-function in the first cache module 304.
  • the first cache module 304 may include one or more cross-domain cache areas.
  • the second cache module 303 also includes one or more cross-domain cache areas.
  • the cache area management module 302 can set a cross-domain cache area for the sub-function to perform a cross-domain call in the second cache module 303 for the sub-function with a cross-domain call requirement.
  • the above-mentioned function 1 can be any one of the functions such as path planning function, perception function, fusion function, etc.
  • sub-functions 1 to 5 can be decision preprocessing sub-function, prior preprocessing sub-function, path generation sub-function, obstacle processing sub-function, and trajectory generation sub-function, respectively.
  • Area 1 and area 2 can be the ordinary domain and security domain mentioned in the above-mentioned embodiment, respectively; or, area 1 and area 2 can also be other areas that meet different business needs, which are not specifically limited in the embodiments of the present application.
  • cross-domain call control module 301 (and/or the cross-domain call control module 305) shown in FIG. 3 may be implemented by a server-client (client-server, C/S) structure, or may also be implemented by other forms.
  • FIG3 is only for illustrative purposes.
  • the above system may include more or fewer modules or nodes, and the above modules or nodes may be deleted or added according to actual conditions.
  • the first cache module 304 and the second cache module 303 may be combined into one cache module.
  • FIG3 takes two areas, area 1 and area 2, as an example for illustration.
  • the domain controller may also include more areas, and the first cache module 304 and the second cache module 303 may also be deployed across multiple domains.
  • system architecture shown in FIG3 can be applied to the following two scenarios:
  • the security level of area 2 is higher than that of area 1.
  • Function 1 is migrated from area 1 to area 2, but the dependent functions of Function 1 do not require a higher security level. Therefore, the dependent functions of Function 1 are not migrated to area 2, so some sub-functions in Function 1 need to call the functions and/or data of Area 1.
  • the security level of area 2 is higher than that of area 1.
  • Some sub-functions of function 1 are migrated from area 1 to area 2.
  • Some sub-functions of function 1 located in area 1 need to call functions and/or data of area 2, or some sub-functions of function 1 located in area 2 need to call functions and/or data of area 1.
  • FIG4 is a schematic flow chart of a function migration method provided in an embodiment of the present application.
  • Method 400 can be executed by a vehicle-mounted domain controller, or can also be executed by a chip used in a vehicle-mounted domain controller.
  • the vehicle-mounted domain controller may include the computing platform 150 shown in FIG2, and the method can also be executed by the computing platform 150.
  • the method can also be executed by the cross-domain call control module 301 and/or the cache area management module 302 shown in FIG3, or can also be executed by the cross-domain call control module 305 and/or the cache area management module 306, or can also be executed by the cross-domain call control module 301, the first cache module 304 and the second cache module 303, or can also be executed by the cross-domain call control module 305, the first cache module 304 and the second cache module 303.
  • the following takes the execution of the vehicle-mounted domain controller as an example to introduce the method 400, which includes a first area and a second area, and the method 400 can include S401 and S402.
  • S401 generate first cross-domain calling information, where the first cross-domain calling information indicates calling information of a first sub-function on a function and/or data in a second area; the first sub-function belongs to the first function, and the first sub-function is located in the first area.
  • the first area is the initial deployment area of the first function
  • the second area is the area to be migrated to for the first function or at least some sub-functions of the first function.
  • the first area may be the common area in the above embodiment
  • the second area may be the security area in the above embodiment
  • the first area may be area 1 in the above embodiment
  • the second area may be area 2 in the above embodiment.
  • the first area is the area where the first function or at least some sub-functions in the first function have been migrated
  • the second area is the initial deployment area of the first function.
  • the first area can be the security area in the above embodiment
  • the second area can be the ordinary area in the above embodiment
  • the first area can be area 2 in the above embodiment
  • the second area can be area 1 in the above embodiment.
  • the first area and the second area may also be other areas in the vehicle domain controller that can respectively meet different business requirements.
  • the first function may be function 1 in the above embodiment, or the first function may be other functions that need to be migrated.
  • the first sub-function may be one or more of sub-functions 1 to 5 in the above embodiment, or may be other sub-functions in the first function that need to cross-domain call functions and/or data in the second region.
  • the first sub-function may be at least one of sub-functions 3 to 5.
  • the first function is function 1 shown in FIG. 3b
  • the first area is area 1 shown in FIG. 3b
  • the second area is area 2 shown in FIG. 3b
  • the first sub-function may be sub-function 1 and/or sub-function 2.
  • the first sub-function may be a business unit (or business segment) divided within the first function according to actual business requirements.
  • the first sub-function may be a business unit.
  • the calling information of the first sub-function to the function in the second area may include the calling information of the first sub-function to the sub-function of the first function in the second area, or may also include the calling information of the first sub-function to other dependent functions of the first function in the second area.
  • the calling information of the first sub-function to the data in the second area may include the calling information to the cross-domain shared data in the second area.
  • the first cross-domain call information may be information indicating that the cross-domain cost of the first sub-function is greater than or equal to a preset threshold.
  • the cross-domain cost of the first sub-function is greater than or equal to the preset threshold, it indicates that the cross-domain call of the first sub-function may cause the security and/or performance of the vehicle-mounted domain controller to be reduced, so the first sub-function needs to be migrated from the first area to the second area.
  • the cross-domain cost can be determined according to the frequency, data volume, delay tolerance of the first sub-function calling the second area, the number of cross-domain calls of the first sub-function, the migration priority of the first sub-function, and at least one of the cohesion factor of the first sub-function.
  • the number of cross-domain calls of the first sub-function can be understood as the number of functions (and/or sub-functions) called by the first sub-function across domains; the cohesion factor of the first sub-function is used to indicate the closeness of the collaboration between the first sub-function and other sub-functions in the first function, or it can also be understood as the degree of dependence of the first sub-function on other sub-functions in the first function, and the other sub-functions in the first function include sub-functions located in the first area and/or sub-functions located in the second area.
  • the migration priority of the first sub-function may be set by the user, or may be determined based on the dependency of the first sub-function and/or the security level requirement of the first sub-function. For example, if there is a more complex dependency between the first sub-function and the sub-functions of the second area and/or the security level requirement of the first sub-function is higher, then the first sub-function has a higher migration priority.
  • the cross-domain cost of the i-th sub-function can be determined according to the following formula:
  • ⁇ 1 to ⁇ 6 respectively represent the frequency of the i-th sub-function calling the second area, the amount of data, the delay tolerance, the number of cross-domain calls of the i-th sub-function, the migration priority of the i-th sub-function, and the cohesion factor of the i-th sub-function, and ⁇ 0 to ⁇ 5 are the weights of ⁇ 1 to ⁇ 6 respectively.
  • the preset threshold may be 1, or may be other thresholds, which is not specifically limited in the embodiments of the present application.
  • cross-domain data of sub-functions in the first area and the second area are recorded in a first cache area; when the cross-domain data of the first sub-function meets the set business requirements, the cross-domain data of the first sub-function is obtained from the first cache area; and the first cross-domain call information is generated based on the cross-domain data of the first sub-function and information about the business accessed by the first sub-function.
  • the cross-domain data of the sub-functions in the first area and the second area may include: data generated when the sub-function in the first area calls the function and/or data of the second area, and/or data generated when the sub-function in the second area calls the function and/or data of the first area.
  • the cross-domain data of the sub-functions in the first area and the second area includes the cross-domain data of the first sub-function
  • the cross-domain data of the first sub-function may include at least one of the following: the frequency of the first sub-function accessing the second area, the delay tolerance, and the data volume.
  • the service accessed by the first sub-function may include: the service corresponding to the function called by the first sub-function; and “the first sub-function accessing the second area” may include: the first sub-function calling the function and/or data of the second area.
  • setting business requirements may include at least one of the following: the cross-domain call frequency of the first sub-function is greater than or equal to the preset frequency, the security level required by the first sub-function is less than or equal to the preset level, the cross-domain call data volume of the first sub-function is greater than or equal to the preset data volume, the migration priority of the first sub-function is greater than or equal to the preset priority threshold, the delay tolerance of the first sub-function is greater than or equal to the preset tolerance, and the number of cross-domain calls of the first sub-function is greater than or equal to the preset number.
  • the cross-domain data of the first sub-function is obtained from the first cache area.
  • the cross-domain call frequency of the first sub-function is greater than or equal to the preset frequency
  • the cross-domain data of the first sub-function is obtained from the first cache area.
  • the cross-domain data of the first sub-function is obtained from the first cache area.
  • the cross-domain call frequency of the first sub-function is greater than or equal to the preset frequency, and the security level required by the first sub-function is less than or equal to the preset level, the cross-domain data of the first sub-function is obtained from the first cache area.
  • the first cross-domain call information is generated in combination with the cross-domain data of the first sub-function. For example, according to the information of the first sub-function accessing the service, the weight of each cross-domain data item when calculating the cross-domain cost is determined, such as the specific values of ⁇ 0 to ⁇ 5 in formula (1). Further, the cross-domain cost is calculated according to the weight of each cross-domain data item determined, and when the cross-domain cost is greater than or equal to the preset threshold, the first cross-domain call information is generated.
  • the first cache area may be a cache area in the first cache module 304 shown in FIG. 3a or FIG. 3b.
  • the cross-domain data recorded in the first cache area can be processed by a cache replacement algorithm.
  • a cache replacement algorithm may include, but is not limited to: a first-in first-out (FIFO) algorithm, a least recently used (LRU) algorithm, and a least frequently used (LFU) algorithm.
  • acquiring the cross-domain data of the first sub-function from the first cache area may include: acquiring the cross-domain data of the first sub-function from the first cache area via the second cache area.
  • the cross-domain data of the first sub-function meets the set business requirements, the cross-domain data of the first sub-function is stored in the second cache area, and the cross-domain data of the first sub-function in the first cache area is erased.
  • the second cache area may be a cache area in the second cache module 303 shown in FIG. 3a or FIG. 3b .
  • S402 Store the first cross-domain calling information, where the stored first cross-domain calling information is used to migrate the first sub-function from the first area to the second area.
  • storing the first cross-domain call information may include: controlling the storage of the first cross-domain call information.
  • the storage of the first cross-domain call information may be controlled by the cross-domain call control module 301 in FIG. 3a or the cross-domain call control module 305 in FIG. 3b.
  • storing the first cross-domain call information may include: storing the first cross-domain call information in the second cache area.
  • the cache area management module 302 in FIG. 3a or the cache area management module 306 in FIG. 3b may write the first cross-domain call information into the cache area in the second cache module 303.
  • the cross-domain cost is calculated for each sub-function of the cross-domain call, and when the cross-domain cost of a sub-function is greater than or equal to a preset threshold, the corresponding cross-domain call information is generated and stored for the sub-function.
  • each sub-function called across domains its cross-domain data is recorded in the first cache area.
  • the cross-domain data meets the corresponding set business requirements, the cross-domain data is stored in the second cache area.
  • the vehicle-mounted domain controller then calculates the cross-domain cost only for the cross-domain data of the sub-function stored in the second cache area.
  • the cross-domain cost of a sub-function is greater than or equal to a preset threshold, the corresponding cross-domain call information is generated and stored for the sub-function.
  • the stored first cross-domain call information may be in the form of a list to be migrated.
  • the relevant information of the first sub-function is stored in the list to be migrated to indicate that the first sub-function needs to be migrated from the first area to the second area.
  • the relevant information of the first sub-function may include a cross-domain call application interface and/or a cross-domain data access pointer of the first sub-function; or, the relevant information of the first sub-function may include: information for determining the cross-domain call application interface and/or cross-domain data access pointer of the first sub-function.
  • the method further includes: marking the cross-domain calling application program interface and/or the cross-domain data access pointer of the first sub-function with a keyword; generating a scheduling function according to the keyword, wherein the scheduling function is used to adjust the behavior of the first sub-function accessing the second area.
  • cross-domain calling application program interface and/or the cross-domain data access pointer of the first sub-function is used for the first sub-function to implement the cross-domain calling.
  • the scheduling function is used to adjust the behavior of the first sub-function accessing the second area, which may include: implementing a cross-domain call after the migration of the first sub-function through the scheduling function, and/or adjusting the cross-domain call priority after the migration of the first sub-function through the scheduling function.
  • the above cross-domain call priority may indicate the priority of the first sub-function when calling other functions and/or data across domains.
  • the scheduling function is implemented by a Dispatcher function.
  • the scheduling function when the first sub-function needs to be migrated from the first area to the second area, the scheduling function sends the code corresponding to the dependent function of the first sub-function from the first area to the second area for execution.
  • the cross-domain call application interface and/or the cross-domain data access pointer of the first sub-function is marked with a keyword, and the scheduling function is generated based on the keyword.
  • the first sub-function is migrated from the first area to the second area according to the stored first cross-domain call information.
  • the function migration method provided in the embodiment of the present application sets a cross-domain cache area, and implements cross-domain calls of the functions to be migrated and/or the migrated functions through the cross-domain cache area, so that there is no need to perform multi-domain deployment during function migration, which helps to reduce the data redundancy caused by multi-domain deployment of functions. Further, based on the cross-domain cache area, the recording and analysis of cross-domain data is realized, so that when the cross-domain data of a certain function meets certain conditions, cross-domain call information can be generated to indicate the migration of the function. In addition, the embodiment of the present application proposes the concept of sub-functions of the functions to be migrated.
  • FIG5 shows a schematic flow chart of a function migration method 500 provided in an embodiment of the present application, and method 500 is an extension of method 400.
  • method 500 may be executed in parallel with method 400, or may be executed after method 400.
  • the method may be executed by a vehicle-mounted domain controller, or may be executed by a chip for a vehicle-mounted domain controller.
  • the following describes method 500 by taking the execution of a vehicle-mounted domain controller as an example, and method 500 may include steps S501 and S502.
  • S501 determine a first dependency relationship of a first function, the first function includes M sub-functions, the M sub-functions include a first sub-function, the first dependency relationship indicates a calling relationship between each of the M sub-functions and a second function, and the first function and the second function are deployed in a first area of a vehicle domain controller.
  • the first dependency is used to control the migration of N sub-functions among the M sub-functions to the second area, where M is an integer greater than 1, and N is an integer greater than or equal to 1.
  • the first area and the second area may be areas in the above embodiments, for example, the first area is an initial deployment area of the first function, and the second area is an area to be migrated to the first function or a sub-function of the first function.
  • the security level of the second area is higher than the security level of the first area.
  • the "security level" of a certain area can be understood as the security level that the area can provide (or achieve).
  • the security level of the security domain is higher than the security level of the common domain.
  • the first function may be the first function in the above embodiment, or the first function may be other functions that need to be migrated; the first sub-function may be the first sub-function in the above embodiment.
  • the second function includes a horizontally dependent function and/or a vertically dependent function of the first function (or the M sub-functions).
  • a first dependency relationship of the first function is determined.
  • the first dependency of the first function is determined.
  • the first function is deployed in the first area of the vehicle domain controller includes: the remaining sub-functions of the first function are deployed in the first area.
  • determining the first dependency of the first function can be divided into two steps, including: first, determining the dependency of the first function; second, determining the dependency of each sub-function of the first function.
  • the dependency may include horizontal dependency and vertical dependency.
  • the method of determining the dependency relationship of the first function is described: assuming that the functions with horizontal dependencies on the first function include the radar sensor function, the fusion position function and the sensor fusion function, and the functions with vertical dependencies on the first function include the underlying function A and the underlying function B, and the underlying function A also needs to depend on the underlying function C and the underlying function D.
  • the horizontal dependency function of the first function (i.e., the function with horizontal dependencies on the first function) can be determined through tools such as TopicMonitor, RefGraph, and RosGraph, and the vertical dependency function of the first function (i.e., the function with vertical dependencies on the first function) can be determined through the dynamic link library dependency scanning method combined with the depth first search (DFS) algorithm.
  • the dependency relationship of the first function can be recorded in the form of a table. For example, Table 1 shows the dependency relationship of the radar detection function determined based on the above method.
  • the radar detection function serving the automatic driving control as an example, the method of determining the dependency relationship of each sub-function of the first function is explained:
  • the radar detection function includes multiple sub-functions, such as data preprocessing sub-function, data smoothing sub-function, road processing sub-function, and trajectory planning sub-function.
  • the road processing sub-function has a horizontal dependency with the data preprocessing sub-function and the trajectory planning sub-function, and a vertical dependency with the underlying function A;
  • the data preprocessing sub-function has a horizontal dependency with the data smoothing sub-function and the fusion position function, and a vertical dependency with the underlying function A, the underlying function B, and the underlying function C.
  • the dependency relationship of the sub-functions of the first function can be determined. Furthermore, the dependency relationship of the sub-functions of the first function can be recorded in the form of a table. For example, Table 2 shows the dependency relationship of the sub-functions of the radar detection function determined based on the above method.
  • the first dependency is output to indicate the migration of the first function.
  • S502 Migrate the first sub-function from the first area to the second area according to the first dependency relationship and the first cross-domain calling information.
  • the first sub-function is migrated from the first area to the second area according to the complexity level of the first sub-function dependency indicated by the first dependency and the first cross-domain call information.
  • the complexity level of the dependency relationship of the first sub-function may include at least one of the following: the complexity level of the dependency relationship between the first sub-function and the function in the first region, the complexity level of the dependency relationship between the first sub-function and the data in the first region, the complexity level of the dependency relationship between the first sub-function and the function in the second region, and the complexity level of the dependency relationship between the first sub-function and the data in the second region.
  • the complexity level may be determined according to the number of horizontally dependent functions and vertically dependent functions, etc.
  • a function migration method provided in an embodiment of the present application can determine the dependency relationship of a function, and migrate the first sub-function from the first area to the second area according to the dependency relationship, or according to the dependency relationship and the first cross-domain call information, thereby reducing the workload of manual function migration.
  • controlling the migration of the first sub-function according to the dependency relationship and the first cross-domain call information also helps to improve the matching degree between the actual operation of the first function and the business requirements, thereby reducing the number of function migrations.
  • FIG6 shows a schematic diagram of an application scenario of the function migration method provided in an embodiment of the present application.
  • region 1 is the first region in method 400
  • region 2 is the second region in method 400
  • sub-function 2 in region 1 is the first sub-function in method 400
  • first cross-domain call information may be generated and stored, and further, sub-function 2 may be migrated from region 1 to region 2 according to the stored cross-domain call information. It should be understood that after migrating sub-function 2 from region 1 to region 2, region 1 may no longer deploy sub-function 2.
  • region 2 is the first region in method 400
  • region 1 is the second region in method 400
  • sub-function 3 in region 2 is the first sub-function in method 400
  • first cross-domain call information may be generated and stored
  • sub-function 3 may be migrated from region 2 to region 1 according to the stored cross-domain call information. It should be understood that after migrating sub-function 3 from region 2 to region 1, region 2 may no longer deploy sub-function 3.
  • the area 1 shown in (a) or (b) in FIG. 6 may be a normal domain, and the area 2 may be a security domain; alternatively, the "area 1" and "area 2" may also be other domains that can meet different business requirements.
  • FIG7 shows another application scenario schematic diagram of the function migration method provided in an embodiment of the present application.
  • function X, function A, function B, function C and function D were originally deployed in the common domain.
  • function A is a function (i.e., the first function) that needs to be migrated from the common domain to the security domain
  • function X is a function that has a horizontal dependency on function A
  • function B, function C, and function D are underlying functions that have a vertical dependency on function A.
  • function B, function C, function D, and function X only function C needs to meet security requirements (i.e., needs to be migrated to the security domain).
  • function A and function C only functions with security requirements (i.e., function A and function C) can be migrated to the security domain, and after migration, the calls of functions A and function C to functions and/or data of the common domain can be realized through the cross-domain cache area.
  • function A' in the security domain needs to call function D and function X of the common domain, which can be realized through the cross-domain cache area.
  • some sub-functions of function A can be migrated to the security domain, and the remaining sub-functions are retained in the common domain; after the function migration, some sub-functions of function A are retained in function A', and function A can retain some sub-functions.
  • function A can be migrated as a whole to the security domain, and after the function migration, function A is no longer deployed in the common domain, and function A' in the security domain is the same function as function A. It should be noted that the above two situations are also applicable to function C.
  • FIG8 shows another application scenario schematic diagram of the function migration method provided in an embodiment of the present application.
  • the migration of the first function (or some sub-functions of the first function) can be achieved through steps 801 to 806.
  • the function migration methods 400 and 500 provided in the present application can be applied to 802', 804 and 805.
  • a user determines a function to be migrated in a vehicle controller.
  • the function to be migrated may include the first function in the above embodiment.
  • the function to be migrated may be determined according to business requirements, such as security level requirements, load balancing requirements, delay performance requirements, and other business requirements of the function.
  • the user determines dependencies of the functions to be migrated.
  • the vehicle-mounted domain controller may also determine the dependency of the functions to be migrated (as shown in 802'), and further, the vehicle-mounted domain controller notifies the user of the dependency of the functions to be migrated.
  • the method for determining the dependency of the functions to be migrated may refer to the description in method 500 , which will not be described in detail here.
  • the user performs initial migration, and migrates the functions to be migrated from the initial deployment area to the area to be migrated.
  • the initial deployment area may include area 1 in the above embodiment, and the area to be migrated to may include area 2 in the above embodiment.
  • the initial migration may be determined by the user based on the dependency relationship and the capacity of the function to be migrated.
  • the initial migration method may include the following two methods: first, migrating the function to be migrated as a whole to the area to be migrated into; second, migrating some sub-functions of the function to be migrated to the area to be migrated into.
  • the capacity of the function to be migrated is small, for example, it contains fewer sub-functions, and some of the sub-functions in the function to be migrated do not need the business requirements of the area to be migrated (such as the need to meet security requirements), and there are complex dependencies between the above-mentioned sub-functions and the functions of the initial deployment area, then the initial migration of the function to be migrated can be achieved by the first method mentioned above.
  • the initial migration of the function to be migrated can be implemented by the second method mentioned above.
  • the vehicle domain controller records their cross-domain data.
  • the sub-function with cross-domain call requirements may be a sub-function deployed in an initial deployment area, or may be a sub-function that has been migrated to an area to be migrated;
  • the cross-domain data may be the cross-domain data in the above-mentioned embodiment.
  • the specific method for the vehicle domain controller to record its cross-domain data can refer to the description in the above method 400, which will not be repeated here.
  • the vehicle-mounted domain controller determines the sub-functions that need to be migrated to the area to be migrated to and/or need to be migrated back from the area to be migrated to based on the cross-domain data of each sub-function that has a cross-domain call requirement.
  • cross-domain call information is generated and stored.
  • the stored cross-domain call information is used to migrate the sub-function to the area to be migrated to, or to migrate the sub-function from the area to be migrated to the initial deployment area.
  • the specific method of generating cross-domain call information according to the cross-domain data and storing the cross-domain call information can refer to the description in the above method 400, which will not be repeated here.
  • the vehicle-mounted domain controller notifies the user of information about sub-functions that need to be migrated to the area to be migrated, and/or need to be migrated back from the area to be migrated (e.g., cross-domain call information).
  • the user may be notified of the information about the sub-function through the operation log of the vehicle-mounted domain controller, or may be notified to the user through other means.
  • the user adjusts the deployment of the sub-function.
  • the user migrates to the area to be migrated according to needs, and/or performs migration of sub-functions based on information of sub-functions that need to be migrated back from the area to be migrated, for example, performs migration of sub-functions based on cross-domain call information to adjust the deployment of sub-functions.
  • the migration of sub-functions may also be performed by the vehicle-mounted domain controller to adjust the deployment of the sub-functions.
  • steps 804 to 806 are continued to be executed until no sub-functions need to be migrated (eg, no stored cross-domain call information is detected), and the migration step is completed.
  • function migration method is not only applicable to scenarios where functions are migrated between two or more domains of a vehicle-mounted domain controller, but can also be applied to scenarios where the initial deployment area of the function to be migrated and the area to be migrated are isolated by hardware.
  • FIG9 shows a schematic block diagram of a function migration device 900 provided in an embodiment of the present application.
  • the device 900 includes a generation unit 910 and a storage unit 920 .
  • the device 900 may include units for executing the method in Fig. 4. Moreover, each unit in the device 900 is for implementing a corresponding process of the method embodiment in Fig. 4.
  • the generating unit 910 may be used to execute S401 in the method 400
  • the storing unit 920 may be used to execute S402 in the method 400 .
  • the generation unit 910 is used to: generate first cross-domain call information, the first cross-domain call information indicating the call information of the first sub-function to the function and/or data in the second area of the vehicle domain controller; the first sub-function belongs to the first function, and the first sub-function is located in the first area of the vehicle domain controller; the storage unit 920 is used to store the first cross-domain call information, and the stored first cross-domain call information is used to migrate the first sub-function from the first area to the second area.
  • the storage unit includes a first cache area
  • the device 900 also includes a recording unit, which is used to record cross-domain data of sub-functions in the first area and the second area in the first cache area; the generation unit is used to obtain the cross-domain data of the first sub-function from the first cache area when the cross-domain data of the first sub-function meets the set business requirements, and generate the first cross-domain call information based on the cross-domain data of the first sub-function and information about the business accessed by the first sub-function.
  • the storage unit 920 further includes a second cache area, and the second cache area is used to store the first cross-domain call information.
  • the cross-domain data of the first sub-function includes at least one of the following: frequency, delay tolerance, and data volume of the first sub-function accessing the second area.
  • the device 900 also includes a determination unit, which is used to: determine a first dependency of the first function, the first function includes M sub-functions, the M sub-functions include the first sub-function, the first dependency indicates a calling relationship between each of the M sub-functions and the second function, and the first function and the second function are deployed in the first area; wherein the first dependency is used to control the migration of N of the M sub-functions to the second area; the security level of the second area is higher than the security level of the first area, M is an integer greater than 1, and N is an integer greater than or equal to 1.
  • the device 900 further includes a migration unit, which is used to migrate the first sub-function from the first area to the second area according to the first dependency relationship and the first cross-domain call information.
  • a migration unit which is used to migrate the first sub-function from the first area to the second area according to the first dependency relationship and the first cross-domain call information.
  • the device 900 also includes a marking unit, which is used to use a keyword to mark the cross-domain call application interface and/or cross-domain data access pointer of the first sub-function; the generation unit 910 is also used to generate a scheduling function based on the keyword, and the scheduling function is used to adjust the behavior of the first sub-function accessing the second area.
  • a marking unit which is used to use a keyword to mark the cross-domain call application interface and/or cross-domain data access pointer of the first sub-function
  • the generation unit 910 is also used to generate a scheduling function based on the keyword, and the scheduling function is used to adjust the behavior of the first sub-function accessing the second area.
  • the generation unit 910 and the storage unit 920 may be arranged in the computing platform 150 shown in FIG. 2; the generation unit 910 may be arranged in the cross-domain call management module 301 and/or the cross-domain call control module 305 shown in FIG. 3, and the storage unit 920 may be arranged in the second cache module 303 shown in FIG. 3.
  • the above-mentioned recording unit may be arranged in the computing platform 150 shown in FIG. 2, or may also be arranged in the cache area management module 302 or the cache area management module 306 shown in FIG. 3.
  • the above-mentioned acquisition unit, determination unit, migration unit and marking unit may be arranged in the computing platform 150 shown in FIG. 2, or may also be arranged in the cross-domain call control module 301 and/or the cross-domain call control module 305 shown in FIG. 3.
  • the division of the units in the above device is only a division of logical functions. In actual implementation, they can be fully or partially integrated into one physical entity, or they can be physically separated.
  • the units in the device can be implemented in the form of a processor calling software; for example, the device includes a processor, the processor is connected to a memory, and instructions are stored in the memory.
  • the processor calls the instructions stored in the memory to implement any of the above methods or realize the functions of the units of the device, wherein the processor is, for example, a general-purpose processor, such as a CPU or a microprocessor, and the memory is a memory in the device or a memory outside the device.
  • the units in the device can be implemented in the form of hardware circuits, and the functions of some or all of the units can be realized by designing the hardware circuits.
  • the hardware circuit can be understood as one or more processors; for example, in one implementation, the hardware circuit is an ASIC, and the functions of some or all of the above units are realized by designing the logical relationship of the components in the circuit; for another example, in another implementation, the hardware circuit can be implemented by PLD.
  • FPGA as an example, it can include a large number of logic gate circuits, and the connection relationship between the logic gate circuits is configured through the configuration file, so as to realize the functions of some or all of the above units. All units of the above device may be implemented entirely in the form of a processor calling software, or entirely in the form of a hardware circuit, or partially in the form of a processor calling software and the rest in the form of a hardware circuit.
  • Each unit in the above device may be one or more processors (or processing circuits) configured to implement the above method, such as a CPU, a GPU, an NPU, a TPU, a DPU, a microprocessor, a DSP, an ASIC, an FPGA, or a combination of at least two of these processor forms.
  • processors or processing circuits configured to implement the above method, such as a CPU, a GPU, an NPU, a TPU, a DPU, a microprocessor, a DSP, an ASIC, an FPGA, or a combination of at least two of these processor forms.
  • SOC system-on-a-chip
  • the SOC may include at least one processor for implementing any of the above methods or implementing the functions of each unit of the device.
  • the type of the at least one processor may be different, for example, including a CPU and an FPGA, a CPU and an artificial intelligence processor, a CPU and a GPU, etc.
  • the operations performed by the above-mentioned generation unit 910 can be performed by a processor, which controls the storage of relevant data and/or information in the storage unit 920.
  • the above-mentioned generation unit 910 and the operations performed by the determination unit, the migration unit and the marking unit can be performed by the same processor, or they can also be performed by different processors.
  • the above-mentioned one or more processors can be processors set in the computing platform 150 shown in Figure 2; or, the above-mentioned device 900 can be a chip set in the intelligent driving device 100.
  • FIG10 is a schematic block diagram of a function migration device provided by an embodiment of the present application.
  • the function migration device 1000 shown in FIG10 may include: a processor 1010, a transceiver 1020, and a memory 1030.
  • the processor 1010, the transceiver 1020, and the memory 1030 are connected via an internal connection path, the memory 1030 is used to store instructions, and the processor 1010 is used to execute the instructions stored in the memory 1030 to implement the function migration method in the above-mentioned embodiments.
  • the memory 1030 can be coupled to the processor 1010 via an interface, or integrated with the processor 1010.
  • transceiver 1020 may include but is not limited to a transceiver device such as an input/output interface to achieve communication between the device 1000 and other devices or communication networks.
  • Memory 1030 can be a read-only memory (ROM), a static storage device, a dynamic storage device or a random access memory (RAM).
  • ROM read-only memory
  • RAM random access memory
  • the transceiver 1020 uses a transceiver device such as but not limited to a transceiver to implement communication between the device 1000 and other devices or a communication network to receive/send data/information used to implement the function migration method in the above-mentioned embodiments.
  • a transceiver device such as but not limited to a transceiver to implement communication between the device 1000 and other devices or a communication network to receive/send data/information used to implement the function migration method in the above-mentioned embodiments.
  • the device 1000 may be arranged in the computing platform 150 shown in FIG. 2 , or the device 1000 may also be arranged in the cross-domain call control module 301 and/or the cross-domain call control module 305 shown in FIG. 3 .
  • An embodiment of the present application further provides a domain controller, which includes the above-mentioned device 900 or the above-mentioned device 1000.
  • An embodiment of the present application also provides an intelligent driving device, which includes the above-mentioned device 900, or the above-mentioned device 1000, or may also include the above-mentioned domain controller.
  • the intelligent driving device may be a vehicle.
  • An embodiment of the present application also provides a computer program product, which includes a computer program code.
  • the computer program code runs on a computer, the computer implements the function migration method in the above embodiments of the present application.
  • An embodiment of the present application also provides a computer-readable storage medium, which stores computer instructions.
  • the computer instructions When the computer instructions are executed on a computer, the computer implements the function migration method in the above embodiments of the present application.
  • An embodiment of the present application also provides a chip, including a circuit, for executing the function migration method in the above embodiments of the present application.
  • each step of the above method can be completed by an integrated logic circuit of hardware in a processor or an instruction in the form of software.
  • the method disclosed in conjunction with the embodiment of the present application can be directly embodied as a hardware processor for execution, or a combination of hardware and software modules in a processor for execution.
  • the software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or a power-on erasable programmable memory, a register, etc.
  • the storage medium is located in a memory, and the processor reads the information in the memory and completes the steps of the above method in conjunction with its hardware. To avoid repetition, it is not described in detail here.
  • the disclosed systems, devices and methods can be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the units is only a logical function division. There may be other division methods in actual implementation, 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.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种功能迁移方法(400,500)、装置(900)和智能驾驶设备(100)。功能迁移装置(900)设置于车载域控制器中,车载域控制器包括第一区域和第二区域。功能迁移装置(900)可以生成第一跨域调用信息,第一跨域调用信息指示第一功能的第一子功能对第二区域中的功能和/或数据的调用信息,第一子功能位于第一区域(S401);功能迁移装置(900)存储第一跨域调用信息,存储的第一跨域调用信息用于将第一子功能从第一区域迁移到第二区域(S402)。本方法可以应用于智能车辆、电动车辆等智能驾驶设备中,能够解决大粒度功能迁移导致的部署不易更改、以及同一功能在多个域多重部署导致的数据冗余的问题,有助于降低域控制器功能部署的复杂度,提升功能部署的效率。

Description

功能迁移方法、装置和智能驾驶设备 技术领域
本申请涉及智能驾驶领域,更具体地,涉及一种功能迁移方法、装置和智能驾驶设备。
背景技术
在智能车辆领域,为提升智能车辆控制系统的可靠性和安全性,通常会将一个域控制器的多个功能分别部署在不同的域。例如,将功能安全需求较低的功能部署在安全等级较低的区域(以下简称普通域),将功能安全需求较高的功能部署在安全等级较高的区域(以下简称安全域)。但在开发阶段,为提高效率,则是在一个普通域对所有功能先完成调试,再将安全需求高的功能拆分出来迁移到安全域。
开发者或使用者会基于业务需求对功能进行拆分和迁移,由于功能间存在横向依赖,部分功能还存在向下依赖,导致在功能迁移的过程中,可能需要将与该功能存在依赖关系的功能(以下简称依赖功能)也迁移到安全域。但是,有些依赖功能无法跨域调用,因此,对这些依赖功能需要在安全域和普通域重复部署。若功能拆分和迁移的粒度较大,对功能重复部署会导致较大的数据冗余。此外,在功能迁移并部署后,若功能的部署无法满足业务需求,对功能的部署进行更改的成本也比较高。
鉴于此,一种方便更改功能的部署,且能够降低数据冗余的功能迁移方案亟待开发。
发明内容
本申请提供一种功能迁移方法、装置和智能驾驶设备,能够解决大粒度功能迁移导致的部署不易更改、以及同一功能在多个域多重部署导致的数据冗余的问题,有助于降低域控制器功能部署的复杂度,提升功能部署的效率。
本申请提供的方法可以应用于智能驾驶设备中,该智能驾驶设备可以为广义概念上的车辆,可以是交通工具(如汽车商用车、乘用车、卡车、摩托车、飞机飞行车、火车、轮船等),工业车辆(如:叉车、挂车、牵引车等),工程车辆(如挖掘机、推土车、吊车等),农用设备(如割草机、收割机等),游乐设备,玩具车辆等,本申请对车辆的类型不作具体限定。
第一方面,本申请提供了一种功能迁移方法,该方法可以由车辆的车载域控制器执行,或者也可以由设置于车载域控制器中的芯片执行。其中,该车载域控制器包括第一区域和第二区域。该方法包括:生成第一跨域调用信息,该第一跨域调用信息指示第一子功能对该第二区域中的功能和/或数据的调用信息;该第一子功能属于第一功能,该第一子功能位于该第一区域;存储该第一跨域调用信息,该存储的第一跨域调用信息用于将该第一子功能从该第一区域迁移到该第二区域。
上述技术方案中,在功能迁移时,以子功能这个相对较小的粒度进行,能够避免以较大粒度的功能进行迁移引起的多域部署的情况,有助于降低同一功能多域部署导致的数据 冗余。此外,在检测到存储的第一跨域调用信息时,可以根据该存储的第一跨域调用信息确定迁移第一子功能,以使得在功能进行迁移以及部署后,功能的实际运行情况与业务需求存在偏差(例如,功能的实际安全等级未达到预想安全等级)时,无需用户根据业务需求重新分析,即可确定哪些子功能导致了上述偏差,便于功能部署的调整(即子功能进一步迁移或子功能再次迁移),有助于降低功能迁移的复杂度和人力成本。
示例性地,本申请涉及的车载域控制器(有时简称为域控制器)可以包括车辆的电子控制单元(electronic control unit,ECU);或者也可以包括车载计算平台,例如可以包括自动驾驶域控制器(advanced driving domain controller,ADC),或称移动数据中心(mobile data center,MDC);车辆域控制器(vehicle domain controller,VDC);以及底盘域控制器(chassis domain controller,CDC)中的至少一个。或者车载域控制器还可以包括其他计算平台,例如车载应用服务(in-car application-server,ICAS)控制器,车身控制器(body domain controller,BDC),特殊装备系统(special equipment system,SAS),媒体图形单元(media graphics unit,MGU),车身超级核心(body super core,BSC),ADAS超级核心(ADAS super core)等,本申请对此不做限定。其中,ICAS可以包括如下至少一项:车辆控制服务器ICAS1、智能驾驶服务器ICAS2、智能座舱服务器ICAS3、信息娱乐服务器ICAS4。
示例性地,存储该第一跨域调用信息可以包括:控制存储该第一跨域调用信息。例如,车载域控制器中的控制子功能进行跨域调用的模块(例如,跨域调用控制模块)控制存储该第一跨域调用信息;或者,车载域控制器中的管理缓存区域的模块(例如,缓存区域管理模块)控制存储该第一跨域调用信息。
示例性地,第一子功能对该第二区域中的功能和/或数据的调用信息可以包括:用于指示第一子功能的跨域代价大于或等于预设阈值的信息。
示例性地,第一子功能对第二区域的功能的调用可以包括:对第一功能在第二区域的子功能的调用,或者也可以包括对部署在第二区域的其他功能的调用;第一子功能对第二区域的数据的调用可以包括对第二区域的跨域共享数据的调用。
结合第一方面,在第一方面的某些实现方式中,该生成第一跨域调用信息包括:在第一缓存区域记录该第一区域与该第二区域中的子功能的跨域数据;当该第一子功能的跨域数据满足设定业务需求时,从该第一缓存区域获取该第一子功能的跨域数据;根据该第一子功能的跨域数据以及该第一子功能访问的业务的信息,生成该第一跨域调用信息。
上述技术方案中,设置跨域缓存区域,通过该跨域缓存区域实现待迁移功能(或子功能)和/或已迁移功能(或子功能)的跨域调用,使得在功能迁移时无需将同一功能分别部署在多个域中,有助于降低同一功能多域部署导致的数据冗余。进一步地,基于跨域缓存区域实现跨域数据的记录和分析,使得在某个功能的跨域数据满足一定条件时,可以生成跨域调用信息,以指示用户或车载域控制器进行该功能的迁移。并且,基于上述方案,可以实现子功能按照业务实际需要(基于跨域数据分析)进行自适应拆分,能够降低人工拆分带来的工作量。
结合第一方面,在第一方面的某些实现方式中,该存储该第一跨域调用信息包括:在第二缓存区域存储该第一跨域调用信息。
示例性地,该存储该第一跨域调用信息包括:控制在第二缓存区域存储该第一跨域调 用信息。
在一些可能的实现方式中,第一区域和第二区域分别为安全等级不同的区域,例如第一区域的安全等级高于第二区域的安全等级,若第一区域的某个子功能需要频繁调用第二区域的功能和/或数据,在针对该子功能因业务需求(例如该子功能需要较高安全等级)无法实现快速迁移的情况下,可以通过第一缓存区域实现该子功能的跨域调用,有助于保证该第一功能的整体性能;此外,在第二缓存区域存储有该子功能的跨域调用信息时,说明该子功能可以被迁移且需要被迁移,则可以根据第二缓存区域的跨域调用信息控制该子功能进行迁移,该子功能迁移后,由于跨域调用压力减小,能够提高第一功能的整体性能。
上述技术方案中,通过第二缓存区域存储的跨域调用信息,指示该子功能的迁移,在该子功能迁移后,第一功能内子功能的跨域调用压力减小,因而在保证第一功能的安全等级或安全诉求的情况下,有助于提高第一功能的性能。
在一些可能的实现方式中,针对有跨域调用需求的每个子功能,在第一缓存区域记录其跨域数据,在跨域数据满足其对应的设定业务需求时,将该跨域数据存入第二缓存区域中。进一步地,车载域控制器仅针对第二缓存区域存储的子功能的跨域数据计算跨域代价,在某个子功能(例如第一子功能)对应的跨域代价大于或等于预设阈值时,针对该子功能生成跨域调用信息,并在第二缓存区域存储该跨域调用信息。
在一些可能的实现方式中,在某子功能的跨域数据存入第二缓存区域之后,在第一缓存区域中删除该子功能的跨域数据。
上述技术方案中,通过设置第一缓存区域和第二缓存区域,可以实现对跨域调用过程中产生的复杂数据流的分别管理。其中,第一缓存区域用于存储所有需要跨域调用的子功能的跨域数据,第二缓存区域中用于存储可能需要被迁移的子功能的跨域数据,使得车载域控制器在确定需要迁移的子功能时,只需关注第二缓存区域中的跨域数据对应的子功能是否需要迁移(例如根据第二缓存区域的跨域数据计算对应子功能的跨域代价),而无需一一判断跨域调用的所有子功能是否需要迁移,有助于减小功能迁移过程中的计算复杂度。
结合第一方面,在第一方面的某些实现方式中,该第一子功能的跨域数据包括如下至少一种:该第一子功能访问该第二区域的频率、时延容忍度、数据量。
在上述技术方案中,由于跨域缓存区域记录有跨域数据,使得用户可以通过跨域数据分析子功能对共享数据访问的频率以及数据量等信息,进而为用户权衡功能的安全和性能提供可靠依据。
结合第一方面,在第一方面的某些实现方式中,该生成第一跨域调用信息之前,该方法还包括:确定该第一功能的第一依赖关系,该第一功能包括M个子功能,该M个子功能包括该第一子功能,该第一依赖关系指示该M个子功能中每个子功能与第二功能之间的调用关系,该第一功能和该第二功能部署在该第一区域;该第一依赖关系用于控制该M个子功能中的N个子功能迁移到该第二区域;其中,该第二区域的安全等级高于该第一区域的安全等级,M为大于1的整数,N为大于或等于1的整数。
在一些可能的实现方式中,该M个子功能中除了N个子功能以外的子功能中包括第一子功能,则在根据第一依赖关系将N个子功能迁移到第二区域之后,第一子功能可能需要调用第二区域的功能和/或数据,进而可能生成该第一跨域调用信息。
在一些可能的实现方式中,该N个子功能包括第一子功能,则确定该第一功能的第一 依赖关系时,可能生成该第一跨域调用信息。
在一些可能的实现方式中,第一依赖关系与功能迁移场景相关联,例如,第一依赖关系指示部分安全等级需求较低的子功能与第一区域之间的依赖关系较为复杂时,则功能迁移场景可以为:将第一功能整体迁移到第二区域,再将上述部分安全等级需求较低的子功能迁回至第一区域。例如,M个子功能中除了N个子功能以外的子功能的安全等级需求较低,且与第一区域之间的依赖关系较为复杂,则功能迁移场景可以为:将第一功能迁移到第二区域,再将M个子功能中除了N个子功能以外的子功能迁回至第一区域。
上述技术方案中,能够确定待迁移功能的依赖关系,以指示功能迁移的具体场景(即,在功能整体迁移后将个别子功能迁回至初始部署区域,或者,将功能中的一个或多个子功能由初始部署区域迁移到待迁入区域)。
需要说明的是,在本申请中,初始部署区域和待迁入区域均是针对第一功能未执行功能迁移前的状态而言。在第一功能迁移过程中,该待迁移区域可以为第一功能的某个或某些子功能的已迁入区域。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:根据该第一依赖关系以及该第一跨域调用信息,将该第一子功能从该第一区域迁移到该第二区域。
示例性地,根据第一依赖关系指示的第一子功能依赖关系的复杂等级和该第一跨域调用信息,将该第一子功能从该第一区域迁移到该第二区域。示例性地,该第一子功能依赖关系的复杂等级可以根据如下至少一项确定:第一子功能与第一区域中的功能之间依赖关系的复杂程度、第一子功能与第一区域中的数据之间依赖关系的复杂程度、第一子功能与第二区域中的功能之间依赖关系的复杂程度、第一子功能与第二区域中的数据之间依赖关系的复杂程度、第一子功能的依赖功能的迁移难度。其中,复杂程度可以根据横向依赖功能、纵向依赖功能的个数等确定。
在一些可能的实现方式中,上述复杂等级还可以与第一子功能实现的业务特性有关。
在上述技术方案中,结合第一依赖关系和第一跨域调用信息,控制第一子功能迁移,有助于提高第一功能的实际运行情况与业务需求之间的匹配程度,进而减少功能迁移次数。
在一些可能的实现方式中,第一缓存区域为针对第一子功能在第一区域调用第二区域的需求生成,则在将该第一子功能从该第一区域迁移到该第二区域时,可以删除(或格式化)该第一缓存区域。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:使用关键字标记该第一子功能的跨域调用应用程序接口和/或跨域数据访问指针;根据该关键字生成调度功能,该调度功能用于调整该第一子功能访问该第二区域的行为。
上述技术方案中,使得第一子功能通过调度功能进行跨域调度,能够实现功能跨域迁移(或部署)和第一子功能代码的隔离,使得无需用户手动更改第一子功能的跨域调度函数,有助于减少人工工作量。
第二方面,提供一种功能迁移装置,该装置设置于车载域控制器,该车载域控制器包括第一区域和第二区域,该装置包括生成单元和存储单元,其中:该生成单元用于生成第一跨域调用信息,该第一跨域调用信息指示第一子功能对该第二区域中的功能和/或数据的调用信息,该第一子功能属于第一功能,该第一子功能位于该第一区域;该存储单元用于存储该第一跨域调用信息,该存储的第一跨域调用信息用于将该第一子功能从该第一区 域迁移到该第二区域。
结合第二方面,在第二方面的某些实现方式中,该存储单元包括第一缓存区域,该装置还包括记录单元,该记录单元用于在第一缓存区域中记录该第一区域与该第二区域中的子功能的跨域数据;该生成单元用于当该第一子功能的跨域数据满足设定业务需求时,从该第一缓存区域获取该第一子功能的跨域数据,并根据该第一子功能的跨域数据以及该第一子功能访问的业务的信息,生成该第一跨域调用信息。
结合第二方面,在第二方面的某些实现方式中,该存储单元还包括第二缓存区域,该第二缓存区域用于存储该第一跨域调用信息。
结合第二方面,在第二方面的某些实现方式中,该第一子功能的跨域数据包括如下至少一种:该第一子功能访问该第二区域的频率、时延容忍度、数据量。
结合第二方面,在第二方面的某些实现方式中,该装置还包括确定单元,该确定单元用于:确定该第一功能的第一依赖关系,该第一功能包括M个子功能,该M个子功能包括该第一子功能,该第一依赖关系指示该M个子功能中每个子功能与第二功能之间的调用关系,该第一功能和该第二功能部署在该第一区域;其中,该第一依赖关系用于控制该M个子功能中的N个子功能迁移到该第二区域;该第二区域的安全等级高于该第一区域的安全等级,M为大于1的整数,N为大于或等于1的整数。
结合第二方面,在第二方面的某些实现方式中,该装置还包括迁移单元,该迁移单元用于:根据该第一依赖关系以及该第一跨域调用信息,将该第一子功能从该第一区域迁移到该第二区域。
结合第二方面,在第二方面的某些实现方式中,该装置还包括标记单元,该标记单元用于使用关键字标记该第一子功能的跨域调用应用程序接口和/或跨域数据访问指针;该生成单元还用于根据该关键字生成调度功能,该调度功能用于调整该第一子功能访问该第二区域的行为。
第三方面,提供了一种功能迁移装置,该装置包括:存储器,用于存储计算机程序;处理器,用于执行该存储器中存储的计算机程序,以使得该装置执行如第一方面任一种可能实现方式中的方法。
第四方面,提供了一种域控制器,该域控制器包括如第二方面或第三方面任一种可能实现方式中的装置。
第五方面,提供了一种智能驾驶设备,该智能驾驶设备包括如第二方面或第三方面任一种可能实现方式中的装置,或者如第四方面任一种可能实现方式中的域控制器。
结合第五方面,在第五方面的某些实现方式中,该智能驾驶设备为车辆。
第六方面,提供了一种计算机程序产品,上述计算机程序产品包括:计算机程序代码,当上述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
需要说明的是,上述计算机程序代码可以全部或部分存储在第一存储介质上,其中第一存储介质可以与处理器封装在一起的,也可以与处理器单独封装。
第七方面,提供了一种计算机可读介质,上述计算机可读介质存储有指令,当上述指令被处理器执行时,使得处理器实现上述第一方面中任一种可能实现方式中的方法。
第八方面,提供了一种芯片,该芯片包括电路,该电路用于执行上述第一方面中任一 种可能实现方式中的方法。
附图说明
图1是一种功能迁移场景的示意图;
图2是本申请实施例提供的智能驾驶设备的功能框图示意;
图3是本申请实施例提供的功能迁移所需系统框架的示意图;
图4是本申请实施例提供的功能迁移方法的示意性流程图;
图5是本申请实施例提供的功能迁移方法的又一示意性流程图;
图6是本申请实施例提供的功能迁移方法应用场景的示意图;
图7是本申请实施例提供的功能迁移方法应用场景的又一示意图;
图8是本申请实施例提供的功能迁移方法应用场景的再一示意图;
图9是本申请实施例提供的功能迁移装置的示意性框图;
图10是本申请实施例提供的功能迁移装置的又一示意性框图。
具体实施方式
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本申请实施例中采用诸如“第一”、“第二”的前缀词,仅仅为了区分不同的描述对象,对被描述对象的位置、顺序、优先级、数量或内容等没有限定作用。本申请实施例中对序数词等用于区分描述对象的前缀词的使用不对所描述对象构成限制,对所描述对象的陈述参见权利要求或实施例中上下文的描述,不应因为使用这种前缀词而构成多余的限制。
为了方便理解本申请实施例的方案,首先介绍本申请涉及的概念:
1.功能:可以理解为通过一个软件程序实现的功能,一个软件程序可以被划分为一个或多个功能模块,每个功能模块可以完成软件程序的一个子功能,该一个或多个功能模块组成的整体可以实现的整个软件程序的功能。本申请涉及的功能迁移可以包括:一个软件程序的迁移,和/或软件程序中一个或多个功能模块的迁移。
以车载域控制器为车辆的路径规划控制器为例,则该域控制器的功能为路径规划功能。在本申请中,可以将路径规划功能进一步划分为一个或多个子功能,例如,可以包括决策预处理子功能、先验预处理子功能、路径生成子功能、障碍物处理子功能、轨迹生成子功能中的一个或多个。功能迁移可以为将路径规划功能由普通域迁移到安全域;或者,也可以为将路径规划功能中的一个或多个子功能,由普通域迁移到安全域;或者,还可以为将路径规划功能中的一个或多个子功能,由安全域迁移到普通域。
需要说明的是,一个功能中的多个子功能对安全等级的需求可能不同,例如,对于一些子功能,普通域的安全等级即可满足其安全等级需求;而对于另一些子功能,需要安全 域的安全等级才可以满足其安全等级需求。上述情况可能导致对于该功能整体而言,需要安全域的安全等级才可以满足其安全等级需求。
2.横向依赖:域控制器各功能之间存在的交互关系(或称调用关系),或者也可以为域控制器一个功能内各子功能之间存在的交互关系。进一步地,将与待迁移功能存在横向依赖的功能称为横向依赖功能。
3.纵向依赖:域控制器的功能和/或子功能的实现需要对某功能的函数进行调用,则该函数对应的功能与域控制器的功能和/或子功能之间存在纵向依赖。进一步地,将与待迁移功能存在纵向依赖的功能称为纵向依赖功能。
4.依赖关系:包括上述横向依赖和/或纵向依赖。
5.业务需求:实现功能所需的条件,例如可以包括安全等级需求、负载均衡需求、时延性能需求等一项或多项。
6.跨域调用:部署在第一区域的功能(或子功能)对第二区域的功能(或子功能)和/或数据的调用,其中,第一区域和第二区域为域控制器内的不同区域。
如上所述,在智能车辆领域,为提升智能车辆控制系统的可靠性和安全性,通常会采用功能多域部署的方法。例如,将安全需求较低的功能部署在普通域,将安全需求较高的功能部署在安全域。但在开发阶段,为提高效率,则是在一个普通域对所有功能先完成调试,再将安全需求高的功能拆分出来迁移到安全域。
在当前技术背景下,对于规模较小(例如依赖关系简单)的功能,主要通过对功能的静态依赖关系进行分析,确定依赖关系后由人工根据功能的安全等级需求及依赖关系的复杂程度,对需要迁移的功能进行拆分;对于规模较大的功能,通过热点路径识别功能的依赖关系,辅以工具自动生成部分热点路径上的共享数据访问代码,对需要迁移的功能进行拆分。由于需要迁移的功能与其他功能间存在横向依赖,各功能与底层硬件之间还存在纵向依赖,导致在将功能由普通域迁移到安全域的过程中,可能需要将依赖功能也迁移到安全域。由于有些依赖功能无法跨域调用,因此,在进行功能迁移时,对于依赖功能可能需要将在普通域和安全域均进行部署。此外,功能进行迁移以及部署后,功能的实际运行情况可能与业务需求存在偏差。因此,在功能的实际开发以及部署到车辆量产的过程中,可能需要根据功能的实际运行情况与业务需求的匹配程度,多次调整功能部署,也就是说,在车辆量产之前,可能需要进行多次功能拆分和迁移的过程。
以图1中所示的功能拆分和迁移场景为例,其中功能A为需要迁移的功能,功能X为与功能A存在横向依赖的功能,功能B、C、D为与功能A存在纵向依赖的功能。则在当前技术背景下,功能的拆分和迁移步骤如下:
1、确定需要从区域1迁移到区域2的待迁移功能(即功能A);
2、确定与待迁移功能有横向依赖的横向依赖功能(即功能X),根据横向依赖将待迁移的功能进行横向拆分;
3、确定横向依赖功能是否支持跨域调用,如果支持跨域调用,则将该横向依赖功能的调用修改为跨域调用;如果不支持跨域调用,则需要将该横向依赖功能与待迁移功能之间的依赖关系解除,或者在区域1和区域2均部署该横向依赖功能;
4、确定与待迁移功能有纵向依赖的纵向依赖功能(即功能B、C、D),根据纵向依赖将待迁移功能进行纵向拆分。
5、确定纵向依赖功能是否支持跨域调用,如果支持跨域调用,则将该纵向依赖功能的调用修改为跨域调用;如果不支持跨域调用,则需要将该纵向依赖功能与待迁移功能之间的依赖关系解除,或者在区域1和区域2均部署该纵向依赖功能;
6、将待迁移功能迁移到区域2,并且确定区域1是否仍需使用该待迁移功能,若区域1仍需使用该待迁移功能,则在区域1上也保留该待迁移功能。
假设功能A、功能B、功能C、功能D以及功能X均无法跨域调用,则在区域1和区域2需要各部署一套功能,区域1保留功能A、功能B、功能C、功能D以及功能X,区域2部署迁移的功能A’、功能B’、功能C’、功能D’以及功能X’。应理解,功能A’、功能B’、功能C’、功能D’、功能X’分别为与功能A、功能B、功能C、功能D、功能X相同。
可见,上述技术方案存在以下弊端:首先,功能的拆分和迁移是以大粒度功能为单位进行的,即以路径规划功能、感知功能、融合功能等为拆分和迁移对象。拆分过程中,会有多个拆分方案并存,这导致对功能进行迁移以及部署后,功能的实际运行情况可能与业务需求存在偏差。并且,在功能运行与业务需求存在偏差时,进行功能的重新拆分和迁移不仅需要耗费人力成本,而且也缺少较为可靠的依据;其次,如果功能需要为两个或以上域同时提供服务,即两个或以上域中的一个或多个功能均需调用该功能,则需要在两个或以上域同时维护两套或多套相同或者类似的功能部署,而对于某些不需要迁移的功能(例如,无需待迁移功能所迁入的域的业务需求),其多域部署将带来极大的数据冗余,在功能的开发和部署过程中也更容易导致错误的发生。除上述弊端之外,当前技术背景下,功能拆分的程度往往依赖于功能对业务流中共享数据访问的信任程度的差异,跨域调用产生的数据流越复杂,共享数据越多,功能的安全和跨域访问性能之间的相互影响越大,然而这个关系无法通过业务需求进行推导确定,导致在进行功能拆分时,用户难以权衡功能的安全和性能;此外,各功能使用的数据是作为业务抽象而存在,对外而言是黑盒,该数据在一个功能内部可以共享,无法从外部进行共享(即功能之间无法进行数据共享),使得进行功能拆分时,还需要考虑数据的共享或多域部署,导致功能迁移的工作量较大。
鉴于此,本申请实施例提供一种功能迁移方法、装置和智能驾驶设备,在功能由初始部署区域迁移到待迁入区域时,以功能内部的子功能为单位进行迁移,通过设置跨域缓存区域,实现功能的跨域调用。这样,对于同一功能(或子功能)无需在两个或以上域中重复部署,从而解决重复部署导致的数据冗余问题。进一步地,通过跨域缓存区域记录的功能跨域调用过程中的数据,确定功能的跨域调用特征,并通过该跨域调用特征指示功能的进一步迁移,例如,指示功能的某一个子功能由初始部署区域迁移到待迁入区域,或者,指示功能的某一个已迁移到待迁入区域的子功能迁回至初始部署区域,以使得在功能部署后,功能的实际运行情况与业务需求存在偏差时,能够较方便的进行功能的重新部署,有助于提高功能迁移和部署的效率。
下面将结合附图,对本申请实施例中的技术方案进行描述。
图2是本申请实施例提供的智能驾驶设备的一个功能框图示意。如图2所示,该智能驾驶设备100可以包括感知系统120和计算平台150,其中,感知系统120可以包括用于感测智能驾驶设备100周边的环境的信息的若干种传感器。例如,感知系统120可以包括定位系统,定位系统可以是全球定位系统(global positioning system,GPS),也可以是北 斗系统或者其他定位系统。又例如,感知系统120还可以包括惯性测量单元(inertial measurement unit,IMU)、激光雷达、毫米波雷达、超声波雷达以及摄像装置中的一种或者多种。其中,毫米波雷达可以分为长距雷达和中/短距雷达。目前,激光雷达的感测范围约在80至150米,长距毫米波雷达的感测范围约为1至250米,中/短距毫米波雷达的感测范围约在30至120米,摄像头的感测范围约在50至200米,超声波雷达的感测范围约在0至5米。
智能驾驶设备100的部分或所有功能可以由计算平台150控制。计算平台150可包括处理器151至15n,处理器是一种具有信号的处理能力的电路,在一种实现中,处理器可以是具有指令读取与运行能力的电路,例如中央处理单元(central processing unit,CPU)、微处理器、图形处理器(graphics processing unit,GPU)(可以理解为一种微处理器)、或数字信号处理器(digital signal processor,DSP)等;在另一种实现中,处理器可以通过硬件电路的逻辑关系实现一定功能,该硬件电路的逻辑关系是固定的或可以重构的,例如处理器为专用集成电路(application-specific integrated circuit,ASIC)或可编程逻辑器件(programmable logic device,PLD)实现的硬件电路,例如现场可编程门阵列(field programmable gate array,FPGA)。在可重构的硬件电路中,处理器加载配置文档,实现硬件电路配置的过程,可以理解为处理器加载指令,以实现以上部分或全部单元的功能的过程。此外,处理器还可以是针对人工智能设计的硬件电路,其可以理解为一种ASIC,例如神经网络处理单元(neural network processing unit,NPU)、张量处理单元(tensor processing unit,TPU)、深度学习处理单元(deep learning processing unit,DPU)等。此外,计算平台150还可以包括存储器,存储器用于存储指令,处理器151至15n中的部分或全部处理器可以调用存储器中的指令,以实现相应的功能。
智能驾驶设备100可以包括高级驾驶辅助系统(advanced driving assistant system,ADAS),ADAS利用在智能驾驶设备上的多种传感器(包括但不限于:激光雷达、毫米波雷达、摄像装置、超声波传感器、全球定位系统、惯性测量单元)从智能驾驶设备周围获取信息,并对获取的信息进行分析和处理,实现例如障碍物感知、目标识别、智能驾驶设备定位、路径规划、驾驶员监控/提醒等功能,从而提升智能驾驶设备驾驶的安全性、自动化程度和舒适度。
从逻辑功能上来说,ADAS系统一般包括三个主要功能模块:感知模块,决策模块和执行模块,感知模块通过传感器感知车身周围环境,输入相应实时数据至决策模块,感知模块主要包括车载摄像头/超声波雷达/毫米波雷达/激光雷达等;决策模块根据从感知模块获取的信息,使用计算装置和算法做出相应决策;执行模块从决策模块接收到决策信号后采取相应行动,如驾驶、变道、转向、刹车、警示等。
在不同的智能驾驶等级(L0-L5)下,基于人工智能算法和多传感器所获取的信息,ADAS可以实现不同等级的自动驾驶辅助,上述的智能驾驶等级(L0-L5)是基于汽车工程师协会(society of automotive engineers,SAE)的分级标准的。其中,L0级为无自动化;L1级为驾驶支援;L2级为部分自动化;L3级为有条件自动化;L4级为高度自动化;L5级为完全自动化。L1至L3级监测路况并做出反应的任务都由驾驶员和系统共同完成,并需要驾驶员接管动态驾驶任务。L4和L5级可以让驾驶员完全转变为乘客的角色。目前,ADAS可以实现的功能主要包括但不限于:自适应巡航、自动紧急刹车、自动泊车、盲点 监测、前方十字路口交通警示/制动、后方十字路口交通警示/制动、前车碰撞预警、车道偏离预警、车道保持辅助、后车防撞预警、交通标识识别、交通拥堵辅助、高速公路辅助等。应当理解的是:上述的各种功能在不同的智能驾驶等级(L0-L5)下可以有具体的模式,智能驾驶等级越高,对应的模式越智能,需要的感知算法、规控算法的精度越高。
在一些可能的实现方式中,ADAS中的各功能模块,或者ADAS可以实现的各功能需求的安全等级(或者其他业务需求)可能不同,例如,有些功能可能需要较高的安全等级。因此,在ADAS开发过程中,通常在一个普通域对所有功能先完成调试,然后将这些安全需求较高的功能拆分出来迁移到安全域。
本申请实施例提供一种功能迁移方法,根据功能内子功能的依赖关系,以一个子功能为一个迁移单元进行功能迁移。在一次迁移结束,可能存在一个功能的多个子功能部署在两个及以上域的情况。因此,子功能可能需要跨域调用其他域的该功能的子功能,和/或调用其他域的其他功能及数据。图3示出了本申请实施例提供的功能迁移所需系统框架的示意图,能够实现跨域调用,并且能够指示进一步的功能迁移。
在图3中的(a)(以下简称为图3a)中,功能1中的子功能3至子功能5,已由功能1在域控制器的初始部署区域(区域1)迁移到待迁入区域(区域2)。在子功能3至子功能5在迁移到区域2后,需要调用区域1的功能和/或数据。因此,在区域2设置跨域调用控制模块301和缓存区域管理模块302。此外,设置跨域的第二缓存模块303和第一缓存模块304。其中,缓存区域管理模块302针对区域2中有调用区域1的功能和/或数据需求的子功能,在第一缓存模块304设置用于该子功能进行跨域调用的跨域缓存区域。进一步地,跨域调用控制模块301控制上述子功能进行跨域调用。此外,第一缓存模块304中为该子功能设置的跨域缓存区域记录该子功能的跨域数据,在该跨域数据满足预设条件时,将该跨域数据存入进第二缓存模块303。缓存区域管理模块302根据第二缓存模块303存储的该子功能的跨域数据,确定并存储该子功能的跨域调用信息,以指示将该子功能从区域2迁移回区域1。需要说明的是,在该子功能迁移回区域1后,缓存区域管理模块302可以删除在第一缓存模块304中为该子功能设置的跨域缓存区域。
在图3中的(b)(以下简称为图3b)中,功能1中的子功能3至子功能5,已由功能1在域控制器的初始部署区域(区域1)迁移到待迁入区域(区域2)。在子功能3至子功能5迁移后,区域1的子功能1和/或子功能2需要调用区域2的功能和/或数据。因此,在区域1设置跨域调用控制模块305和缓存区域管理模块306。缓存区域管理模块306针对区域1中有调用区域2的功能和/或数据需求的子功能,在第一缓存模块304设置用于该子功能进行跨域调用的跨域缓存区域。进一步地,跨域调用控制模块305控制上述子功能进行跨域调用。此外,第一缓存模块304中为该子功能设置的跨域缓存区域记录该子功能的跨域数据,在该跨域数据满足预设条件时,将该跨域数据存入进第二缓存模块303。缓存区域管理模块306根据第二缓存模块303存储的该子功能的跨域数据,确定并存储该子功能的跨域调用信息,以指示将该子功能从区域1迁移到区域2。需要说明的是,在该子功能迁移到区域2后,缓存区域管理模块306可以删除在第一缓存模块304中为该子功能设置的跨域缓存区域。
可以理解的是,第一缓存模块304中可以包括一个或多个跨域缓存区域。
在一些可能的实现方式中,第二缓存模块303也包括一个或多个跨域缓存区域。示例 性地,缓存区域管理模块302可以针对有跨域调用需求的子功能,在第二缓存模块303设置用于该子功能进行跨域调用的跨域缓存区域。
示例性地,上述功能1可以为路径规划功能、感知功能、融合功能等功能中任意一个。以功能1为路径规划功能为例,子功能1至子功能5可以分别为决策预处理子功能、先验预处理子功能、路径生成子功能、障碍物处理子功能、轨迹生成子功能。区域1和区域2可以分别为上述实施例中提到的普通域和安全域;或者,区域1和区域2也可以为其他分别满足不同业务需求的区域,本申请实施例对此不作具体限定。
示例性地,图3所示的跨域调用控制模块301(和/或跨域调用控制模块305)可以由服务器-客户机(client-server,C/S)结构实现,或者也可以通过其他形式实现。
应理解,图3所示的系统架构仅为示例性说明,在具体实现过程中,上述系统可能包括更多或更少的模块或节点,并且可以根据实际情况对上述模块或节点进行删减或增加。例如,第一缓存模块304和第二缓存模块303可以合并为一个缓存模块。此外,图3中以区域1和区域2两个区域为例进行说明,在具体实现过程中,域控制器还可以包括更多的区域,第一缓存模块304和第二缓存模块303还可以跨多个域部署。
在一些可能的实现方式中,图3所示系统架构可以应用于如下两个场景中:
其一,区域2的安全等级高于区域1的安全等级,将功能1由区域1迁移到区域2,但是功能1的依赖功能无需较高的安全等级,因此未将功能1的依赖功能迁移到区域2,使得功能1中的部分子功能需要调用区域1的功能和/或数据。
其二,区域2的安全等级高于区域1的安全等级,将功能1的部分子功能由区域1迁移到区域2,功能1中位于区域1的部分子功能需要调用区域2的功能和/或数据,或者,功能1中位于区域2的部分子功能需要调用区域1的功能和/或数据。
图4所示为本申请实施例提供的功能迁移方法的示意性流程图,方法400可以由车载域控制器执行,或者也可以由用于车载域控制器中的芯片执行。示例性地,该车载域控制器可以包括图2所示的计算平台150,则该方法也可以由计算平台150执行。或者,该方法也可以由图3中所示的跨域调用控制模块301和/或缓存区域管理模块302执行,或者也可以由跨域调用控制模块305和/或缓存区域管理模块306执行,或者也可以由跨域调用控制模块301、第一缓存模块304以及第二缓存模块303执行,或者还可以由跨域调用控制模块305、第一缓存模块304以及第二缓存模块303执行。下面以车载域控制器执行为例介绍该方法400,该车载域控制器包括第一区域和第二区域,该方法400可以包括S401和S402。
S401,生成第一跨域调用信息,该第一跨域调用信息指示第一子功能对第二区域中的功能和/或数据的调用信息;该第一子功能属于第一功能,该第一子功能位于第一区域。
示例性地,第一区域为第一功能的初始部署区域,第二区域为第一功能或者第一功能中的至少部分子功能的待迁入区域。例如,该第一区域可以为上述实施例中的普通域,该第二区域可以为上述实施例中的安全域。又例如,该第一区域可以为上述实施例中的区域1,该第二区域可以为上述实施例中的区域2。
示例性地,第一区域为第一功能或者第一功能中的至少部分子功能的已迁入区域,第二区域为第一功能的初始部署区域。例如,该第一区域可以为上述实施例中的安全域,该第二区域可以为上述实施例中的普通域。又例如,该第一区域可以为上述实施例中的区域 2,该第二区域可以为上述实施例中的区域1。
在一些可能的实现方式中,该第一区域和该第二区域也可以为车载域控制器中其他能够分别满足不同业务需求的区域。
示例性地,该第一功能可以为上述实施例中的功能1,或者,该第一功能也可以为其他需要迁移的功能。该第一子功能可以为上述实施例中的子功能1至5中的一个或多个,或者也可以为第一功能中其他需要跨域调用第二区域中的功能和/或数据的子功能。
一示例中,在该第一功能为图3a所示的功能1,该第一区域为上述图3a所示的区域2,该第二区域为图3a所示的区域1时,该第一子功能可以为子功能3至5中的至少一个。
又一示例中,在该第一功能为图3b所示的功能1,该第一区域为图3b所示的区域1,该第二区域为图3b所示的区域2时,该第一子功能可以为子功能1和/或子功能2。
在一些可能的实现方式中,第一子功能可以为根据业务实际需求在第一功能内划分的业务单元(或称业务片段),例如,第一子功能可以为一个业务单元。
示例性地,第一子功能对第二区域中的功能的调用信息,可以包括第一子功能对第二区域中第一功能的子功能的调用的信息,或者也可以包括第一子功能对第二区域中第一功能的其他依赖功能的调用的信息。第一子功能对第二区域中的数据的调用信息,可以包括对第二区域的跨域共享数据的调用的信息。
在一些可能的实现方式中,第一跨域调用信息可以为用于指示第一子功能的跨域代价(cost)大于或等于预设阈值的信息,在第一子功能的跨域cost大于或等于预设阈值时,说明第一子功能的跨域调用可能会导致车载域控制器的安全性和/或性能降低,因此需要将第一子功能由第一区域迁移到第二区域。示例性地,跨域cost可以为根据第一子功能调用第二区域的频率、数据量、时延容忍度,以及第一子功能的跨域调用个数、第一子功能的迁移优先级、第一子功能的内聚因子中的至少一个确定。其中,第一子功能的跨域调用个数可以理解为第一子功能跨域调用的功能(和/或子功能)的个数;第一子功能的内聚因子用于指示第一子功能与第一功能中其他子功能协作的紧密程度,或者也可以理解为第一子功能对第一功能中其他子功能的依赖程度,该第一功能中的其他子功能包括位于第一区域的子功能和/或位于第二区域的子功能。第一子功能的迁移优先级可以为用户设定的,或者也可以为根据第一子功能的依赖关系和/或第一子功能的安全等级需求确定的,例如,第一子功能与第二区域的子功能的之间存在较复杂依赖关系和/或第一子功能的安全等级需求较高,则第一子功能具有较高的迁移优先级。
示例性地,第i子功能的跨域cost可以根据如下公式确定:
cost 跨域i=β 0α 11α 22α 33α 44α 55α 6,   (1)
其中,α 1至α 6分别表示第i子功能调用第二区域的频率、数据量、时延容忍度、第i子功能的跨域调用个数、第i子功能的迁移优先级、第i子功能的内聚因子中的评分,β 0至β 5分别为α 1至α 6所占权重。
示例性地,预设阈值可以为1,或者也可以为其他阈值,本申请实施例对此不作具体限定。
在一些可能的实现方式中,在第一缓存区域记录该第一区域与该第二区域中的子功能的跨域数据;当该第一子功能的跨域数据满足设定业务需求时,从该第一缓存区域获取该第一子功能的跨域数据;根据该第一子功能的跨域数据以及该第一子功能访问的业务的信 息,生成该第一跨域调用信息。
示例性地,该第一区域与该第二区域中的子功能的跨域数据可以包括:第一区域中的子功能调用第二区域的功能和/或数据时生成的数据,和/或第二区域中的子功能调用第一区域的功能和/或数据时生成的数据。
示例性地,该第一区域与该第二区域中的子功能的跨域数据包括第一子功能的跨域数据,第一子功能的跨域数据可以包括如下至少一项:第一子功能访问第二区域的频率、时延容忍度、数据量。
需要说明的是,“第一子功能访问的业务”可以包括:第一子功能调用的功能对应的业务;“第一子功能访问第二区域”可以包括:第一子功能调用第二区域的功能和/或数据。
示例性地,设定业务需求可以包括如下至少一项:第一子功能的跨域调用频率大于或等于预设频率、第一子功能所需的安全等级小于或等于预设等级、第一子功能的跨域调用数据量大于或等于预设数据量、第一子功能的迁移优先级大于或等于预设优先级阈值、第一子功能的时延容忍度大于或等于预设容忍度、第一子功能的跨域调用个数大于或等于预设个数。
在一些可能的实现方式中,在上述某一项满足时,从第一缓存区域获取该第一子功能的跨域数据。例如,第一子功能的跨域调用频率大于或等于预设频率时,从第一缓存区域获取该第一子功能的跨域数据。或者,在上述某几项满足时,从第一缓存区域获取该第一子功能的跨域数据。例如,第一子功能的跨域调用频率大于或等于预设频率,且第一子功能所需的安全等级小于或等于预设等级时,从第一缓存区域获取该第一子功能的跨域数据。进一步地,根据该第一子功能访问的业务的信息,结合第一子功能的跨域数据生成第一跨域调用信息。例如,根据第一子功能访问业务的信息,确定计算跨域cost时跨域数据各项所占权重,如公式(1)中β 0至β 5的具体数值。进一步地,根据确定的跨域数据各项所占权重计算跨域cost,在跨域cost大于或等于预设阈值时,生成第一跨域调用信息。
示例性地,该第一缓存区域可以为图3a或图3b中所示的第一缓存模块304中的一个缓存区域。
在一些可能的实现方式中,可以通过缓存置换算法处理第一缓存区域所记录的跨域数据。例如,在某个子功能的跨域数据出现频率较低时,擦除该子功能在第一缓存区域的跨域数据。示例性地,缓存置换算法可以包括但不限于:先进先出(first-in first-out,FIFO)算法、最近最少使用(least-recently-used,LRU)算法、最不经常使用(least-frequently-used,LFU)算法。
在一些可能的实现方式中,从第一缓存区域获取该第一子功能的跨域数据,可以包括:经由第二缓存区域从第一缓存区域获取该第一子功能的跨域数据。
示例性地,当该第一子功能的跨域数据满足设定业务需求时,该第一子功能的跨域数据存入第二缓存区域,同时擦除第一缓存区域的该第一子功能的跨域数据。
示例性地,第二缓存区域可以为图3a或图3b中所示的第二缓存模块303中的一个缓存区域。
S402,存储该第一跨域调用信息,该存储的第一跨域调用信息用于将该第一子功能从该第一区域迁移到该第二区域。
在一些可能的实现方式中,存储该第一跨域调用信息,可以包括:控制存储该第一跨域调用信息。例如,可以由图3a中的跨域调用控制模块301或图3b中跨域调用控制模块305控制存储该第一跨域调用信息。
在一些可能的实现方式中,存储该第一跨域调用信息,可以包括:在第二缓存区域存储该第一跨域调用信息。例如,可以由图3a中的缓存区域管理模块302或图3b中的缓存区域管理模块306将第一跨域调用信息写入第二缓存模块303中的缓存区域。
在一些可能的实现方式中,针对每个跨域调用的子功能,均计算跨域cost,在某个子功能的跨域cost大于或等于预设阈值时,针对该子功能生成并存储其对应的跨域调用信息。
在一些可能的实现方式中,针对每个跨域调用的子功能,在第一缓存区域记录其跨域数据,在跨域数据满足对应的设定业务需求时,将其跨域数据存入第二缓存区域中,则车载域控制器仅针对第二缓存区域存储的子功能的跨域数据计算跨域cost,在某个子功能跨域cost大于或等于预设阈值时,针对该子功能生成并存储其对应的跨域调用信息。
在一些可能的实现方式中,该存储的第一跨域调用信息的形式可以为待迁移列表。例如,在第一子功能的跨域cost大于或等于预设阈值时,在待迁移列表中存入第一子功能的相关信息,以指示需要将该第一子功能从该第一区域迁移到该第二区域。示例性地,该第一子功能的相关信息可以包括该第一子功能的跨域调用应用程序接口和/或跨域数据访问指针;或者,该第一子功能的相关信息可以包括:用于确定该第一子功能的跨域调用应用程序接口和/或跨域数据访问指针的信息。
在一些可能的实现方式中,该方法还包括:使用关键字标记该第一子功能的跨域调用应用程序接口和/或跨域数据访问指针;根据该关键字生成调度功能,该调度功能用于调整该第一子功能访问该第二区域的行为。
可以理解的是,第一子功能的跨域调用应用程序接口和/或跨域数据访问指针,用于第一子功能实现跨域调用。
示例性地,该调度功能用于调整该第一子功能访问该第二区域的行为可以包括:通过该调度功能实现第一子功能迁移后的跨域调用,和/或通过该调度功能调整第一子功能迁移后的跨域调用优先级。示例性地,上述跨域调用优先级可以指示第一子功能跨域调用其他功能和/或数据时的优先级。
示例性地,该调度功能由Dispatcher函数实现。
示例性地,在第一子功能需要由第一区域迁移至第二区域时,调度功能将第一子功能的依赖功能对应的代码从第一区域下发到第二区域中执行。
在一些可能的实现方式中,检测到存储的第一跨域调用信息时,例如,在待迁移列表中检测到第一子功能的相关信息时,使用关键字标记该第一子功能的跨域调用应用程序接口和/或跨域数据访问指针,并根据该关键字生成该调度功能。
在一些可能的实现方式中,根据该存储的第一跨域调用信息,将第一子功能由第一区域迁移到第二区域。
本申请实施例提供的功能迁移方法,设置跨域缓存区域,通过该跨域缓存区域实现待迁移功能和/或已迁移功能的跨域调用,使得在功能迁移时无需进行多域部署,有助于降低功能多域部署导致的数据冗余。进一步地,基于跨域缓存区域实现跨域数据的记录和分析,使得在某个功能的跨域数据满足一定条件时,可以生成跨域调用信息以指示进行该功 能的迁移。此外,本申请实施例提出待迁移功能的子功能概念,在跨域调用以及进行迁移指示时,以相对于功能的粒度更小的子功能进行,以使得在功能进行迁移以及部署后,功能的实际运行情况可能与业务需求存在偏差时,便于功能部署的调整(即子功能进一步迁移或子功能再次迁移),有助于降低功能迁移的复杂度和成本。
图5示出了本申请实施例提供的功能迁移方法500的示意性流程图,方法500是对方法400的扩展。例如,该方法500可以与方法400并行执行,或者也可以在方法400之后执行。示例性地,该方法可以由车载域控制器执行,或者也可以由用于车载域控制器的芯片执行。以下以车载域控制器执行为例介绍方法500,该方法500可以包括步骤S501和S502。
S501,确定第一功能的第一依赖关系,该第一功能包括M个子功能,该M个子功能包括第一子功能,该第一依赖关系指示该M个子功能中每个子功能与第二功能之间的调用关系,该第一功能和第二功能部署在车载域控制器的第一区域。
在一些可能的实现方式中,该第一依赖关系用于控制该M个子功能中的N个子功能迁移到该第二区域,M为大于1的整数,N为大于或等于1的整数。
示例性地,第一区域和第二区域可以为上述实施例中的区域,例如,第一区域为第一功能的初始部署区域,第二区域为第一功能或者第一功能中的子功能的待迁入区域。
在一些可能的实现方式中,该第二区域的安全等级高于该第一区域的安全等级。
其中,某个区域的“安全等级”可以理解为,该区域能够提供(或实现)的安全等级。示例性地,安全域的安全等级高于普通域的安全等级。
示例性地,该第一功能可以为上述实施例中的第一功能,或者,该第一功能也可以为其他需要迁移的功能;该第一子功能可以为上述实施例中的第一子功能。
示例性地,第二功能包括第一功能(或M个子功能)的横向依赖功能和/或纵向依赖功能。
一示例中,在确定第一功能为待迁移功能(即需要由第一区域迁移到第二区域的功能)时,确定第一功能的第一依赖关系。
又一示例中,在将第一功能的部分子功能迁移到第二区域(第一功能的剩余子功能仍部署在第一区域,该剩余子功能包括M个子功能),且检测到第一跨域调用信息时,确定第一功能的第一依赖关系。需要说明的是,在上述情况下,第一功能部署在车载域控制器的第一区域包括:第一功能的剩余子功能部署在第一区域。
示例性地,确定第一功能的第一依赖关系可以分为两个步骤,包括:其一,确定第一功能的依赖关系;其二,确定第一功能的每个子功能的依赖关系。其中,依赖关系可以包括与横向依赖和纵向依赖。
以第一功能为服务于自动驾驶控制的雷达探测功能为例,说明确定第一功能的依赖关系的方法:假设与第一功能之间存在横向依赖的功能包括雷达传感器功能、融合位置功能以及传感器融合功能,与第一功能之间存储纵向依赖的功能包括底层功能A和底层功能B,并且底层功能A还需依赖底层功能C和底层功能D。基于自动驾驶开发框架中间件,可以通过TopicMonitor、RefGraph、RosGraph等工具确定第一功能的横向依赖功能(即与第一功能存在横向依赖的功能),通过动态链接库依赖扫描方法结合深度优先算法(depth first search,DFS)确定第一功能的纵向依赖功能(即与第一功能存在纵向依赖的功能),进 一步地,可以以表格的形式记录第一功能的依赖关系。示例性地,表1所示为基于上述方法确定的雷达探测功能的依赖关系。
表1雷达探测功能的依赖关系示意图
Figure PCTCN2022132539-appb-000001
以第一功能为服务于自动驾驶控制的雷达探测功能为例,说明确定第一功能的每个子功能的依赖关系的方法:假设雷达探测功能包括多个子功能,例如数据预处理子功能、数据平滑子功能、道路处理子功能、轨迹规划子功能。其中,道路处理子功能与数据预处理子功能、轨迹规划子功能之间存在横向依赖,与底层功能A之间存在纵向依赖;数据预处理子功能与数据平滑子功能、融合位置功能之间存在横向依赖,与底层功能A、底层功能B、底层功能C之间存在纵向依赖。则基于上述方法可以确定第一功能的子功能的依赖关系。进一步地,可以以表格的形式记录第一功能的子功能的依赖关系。示例性地,表2所示为基于上述方法确定的雷达探测功能的子功能的依赖关系。
表2雷达探测功能的子功能的依赖关系示意图
Figure PCTCN2022132539-appb-000002
在一些可能的实现方式中,在确定第一依赖关系后,输出该第一依赖关系,以指示第一功能的迁移。
S502,根据该第一依赖关系和该第一跨域调用信息,将第一子功能从该第一区域迁移到该第二区域。
在一些可能的实现方式中,根据第一依赖关系指示的第一子功能依赖关系的复杂等级和该第一跨域调用信息,将该第一子功能从该第一区域迁移到该第二区域。
其中,该第一子功能依赖关系的复杂等级可以包括如下至少一项:第一子功能与第一区域中的功能之间依赖关系的复杂等级、第一子功能与第一区域中的数据之间依赖关系的复杂等级、第一子功能与第二区域中的功能之间依赖关系的复杂等级、第一子功能与第二区域中的数据之间依赖关系的复杂等级。示例性地,复杂等级可以根据横向依赖功能、纵向依赖功能的个数等确定。
在具体实现过程中,有可能并非要执行图5中的全部操作,例如可以只执行S501。需要说明的是,在车载域控制器只执行S501时,将第一子功能从该第一区域迁移到该第二区域的操作可以由用户执行。
本申请实施例提供的一种功能迁移方法,能够确定功能的依赖关系,并根据该依赖关系,或者根据该依赖关系和第一跨域调用信息,将第一子功能从该第一区域迁移到该第二 区域,能够减少人工进行功能迁移的工作量。此外,根据该依赖关系和第一跨域调用信息,控制第一子功能迁移,还有助于提高第一功能的实际运行情况与业务需求之间的匹配程度,进而减少功能迁移次数。
图6示出了本申请实施例提供的功能迁移方法的应用场景示意图。
一示例中,如图6中的(a)所示,若区域1为方法400中的第一区域,区域2为方法400中的第二区域,区域1中的子功能2为方法400中的第一子功能,则在区域1中的子功能2调用区域2的功能和/或数据时,可以生成并存储第一跨域调用信息,进一步地,根据存储的跨域调用信息将子功能2由区域1迁移到区域2。应理解,将子功能2由区域1迁移到区域2后,区域1可以不再部署子功能2。
又一示例中,如图6中的(b)所示,若区域2为方法400中的第一区域,区域1为方法400中的第二区域,区域2中的子功能3为方法400中的第一子功能,则在区域2中的子功能3调用区域1的功能和/或数据时,可以生成并存储第一跨域调用信息,进一步地,根据存储的跨域调用信息将子功能3由区域2迁移到区域1。应理解,将子功能3由区域2迁移到区域1后,区域2可以不再部署子功能3。
示例性地,图6中的(a)或(b)所示的区域1可以为普通域,区域2可以为安全域;或者,该“区域1”和“区域2”也分别为可以满足不同业务需求的其他域。
图7示出了本申请实施例提供的功能迁移方法的又一应用场景示意图。如图7所示,普通域中原本部署有功能X、功能A、功能B、功能C和功能D。其中,功能A为需要从普通域迁移到安全域的功能(即第一功能),功能X为与功能A存在横向依赖的功能,功能B、功能C、功能D为与功能A存在纵向依赖的底层功能。并且,功能B、功能C、功能D、功能X中只有功能C需要满足安全需求(即需要迁移到安全域)。则通过本申请实施例提供的功能迁移方法,可以只将有安全需求的功能(即功能A和功能C)迁移到安全域,迁移后功能A和功能C对普通域的功能和/或数据的调用可以通过跨域缓存区域实现。例如,在功能迁移后,安全域中的功能A’需要调用普通域的功能D和功能X,则可以通过跨域缓存区域实现。
在一些可能的实现方式中,可以将功能A中部分子功能迁移到安全域,剩余子功能保留在普通域;在功能迁移后,功能A’中保留有功能A的部分子功能,功能A可以保留部分子功能。或者,可以将功能A整体迁移到安全域,则在功能迁移后,普通域不再部署功能A,安全域中的功能A’为与功能A相同的功能。需要说明的是,上述两种情况同样适用于功能C。
由图7可知,通过本申请提供的功能迁移方法,在将待迁移功能迁移到待迁入区域时,在待迁移功能的依赖功能(包括横向依赖功能和/或纵向依赖功能)不需要满足待迁入区域提供的业务要求,如安全等级限制等要求(例如功能B、功能D、功能X不需要安全域提供的安全等级)时,无需将该依赖功能迁移进待迁入区域,避免了不必要的多域部署,有助于降低数据冗余。
图8示出了本申请实施例提供的功能迁移方法的再一应用场景示意图。如图8所示,在需要将部署在普通域的第一功能迁移到第二区域时,可以通过步骤801至806实现第一功能(或第一功能的部分子功能)的迁移。其中,本申请提供的功能迁移方法400和500可以应用于802’、804以及805中。
801,用户确定车载控制器中的待迁移功能。
示例性地,该待迁移功能可以包括上述实施例中的第一功能。其中,该待迁移功能可以是根据业务需求确定的,例如根据功能的安全等级需求、负载均衡需求、时延性能需求等业务需求确定。
802,用户确定待迁移功能的依赖关系。
在一些可能的实现方式中,也可以由车载域控制器确定待迁移功能的依赖关系(如802’所示),进一步地,车载域控制器将待迁移功能的依赖关系通知给用户。
示例性地,确定待迁移功能的依赖关系的方法可以参考方法500中的描述,在此不再赘述。
803,用户执行初始迁移,将待迁移功能由初始部署区域迁移到待迁入区域。
示例性地,初始部署区域可以包括上述实施例中的区域1,待迁入区域可以包括上述实施例中的区域2。
在一些可能的实现方式,该初始迁移可以为用户根据依赖关系以及待迁移功能的容量大小确定的。
示例性地,初始迁移方式可以包括如下两种:第一,将待迁移功能整体迁移到待迁入区域;第二,将待迁移功能中的部分子功能迁移到待迁入区域。
一示例中,待迁移功能的容量较小,例如包含的子功能较少,且待迁移功能中部分子功能不需要待迁入区域提供业务需求(如无需满足安全需求),且上述部分子功能与初始部署区域的功能之间存在复杂依赖关系时,待迁移功能的初始迁移可以由上述第一种方式实现。
又一示例中,待迁移功能的容量较大,不适合采用待迁移功能整体迁移方式时,待迁移功能的初始迁移可以由上述第二种方式实现。
804,针对有跨域调用需求的子功能,车载域控制器记录其跨域数据。
示例性地,该有跨域调用需求的子功能可以为部署在初始部署区域的子功能,或者,也可以为已经迁移到待迁入区域的子功能;该跨域数据可以为上述实施例中的跨域数据。
示例性地,以该有跨域调用需求的子功能为上述实施例中的第一子功能为例,车载域控制器记录其跨域数据的具体方法可以参考上述方法400中的描述,在此不再赘述。
805,车载域控制器根据每个有跨域调用需求的子功能的跨域数据,确定需要迁移到待迁入区域,和/或需要由待迁入区域迁回的子功能。
在一些可能的实现方式中,对于需要迁移到待迁入区域的子功能,和/或需要由待迁入区域迁回初始部署区域的子功能,生成跨域调用信息,并存储该跨域调用信息,该存储的跨域调用信息用于将该子功能迁移到待迁入区域,或者将该子功能由待迁入区域迁回初始部署区域。
示例性地,根据跨域数据生成跨域调用信息,并存储该跨域调用信息的具体方法可以参考上述方法400中的描述,在此不再赘述。
进一步地,车载域控制器将需要迁移到待迁入区域,和/或需要由待迁入区域迁回的子功能的信息(例如跨域调用信息)通知给用户。示例性地,可以通过车载域控制器的运行日志向用户通知该子功能的信息,或者也可以通过其他方式向用户通知。
806,用户调整子功能的部署。
示例性地,用户根据需要迁移到待迁入区域,和/或需要由待迁入区域迁回的子功能的信息执行子功能的迁移,例如根据跨域调用信息执行子功能的迁移,以调整子功能的部署。
在一些可能的实现方式中,也可以由车载域控制器执行子功能的迁移,以调整子功能的部署。
在一些可能的实现方式中,调整子功能的部署后,再继续执行804至806,直至没有子功能需要迁移(例如检测不到存储的跨域调用信息)时,即完成迁移步骤。
需要说明的是,使用本申请提供的功能迁移方法完成迁移后,对于该待迁移功能,可能仍有部分子功能存在跨域调用需求,但是这些子功能的跨域调用是符合业务需求的,例如跨域调用的频率、数据量、时延容忍度等均低于设定业务需求,符合待迁移功能的性能和安全需求。
可以理解的是,在迁移之前,由于待迁移功能没有跨域调用需求,因此在车载域控制器中可以没有与待迁移功能对应的跨域缓存区域;在迁移完成后,对于上述存在跨域调用需求的部分子功能,在车载域控制器会设置有用于部分子功能跨域调用的跨域缓存区域。
还需说明的是,本申请提供的功能迁移方法,不仅适用于功能在一个车载域控制器的两个及以上域之间迁移的场景,还可以应用于待迁移功能的初始部署区域和待迁入区域由硬件隔离的场景中。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,各个实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
上文中结合图1至图8详细说明了本申请实施例提供的方法。下面将结合图9至图10详细说明本申请实施例提供的装置。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
图9示出了本申请实施例提供的功能迁移装置900的示意性框图,该装置900包括生成单元910和存储单元920。
该装置900可以包括用于执行图4中的方法的单元。并且,该装置900中的各单元分别为了实现图4中的方法实施例的相应流程。
其中,当该装置900用于执行图4中的方法400时,生成单元910可用于执行方法400中的S401,存储单元920可用于执行方法400中的S402。
具体地,该生成单元910用于:生成第一跨域调用信息,该第一跨域调用信息指示第一子功能对车载域控制器的第二区域中的功能和/或数据的调用信息;该第一子功能属于第一功能,该第一子功能位于该车载域控制器的第一区域;该存储单元920用于存储该第一跨域调用信息,该存储的第一跨域调用信息用于将该第一子功能从该第一区域迁移到该第二区域。
可选地,该存储单元包括第一缓存区域,该装置900还包括记录单元,该记录单元用于在第一缓存区域中记录该第一区域与该第二区域中的子功能的跨域数据;该生成单元用于当该第一子功能的跨域数据满足设定业务需求时,从该第一缓存区域获取该第一子功能的跨域数据,并根据该第一子功能的跨域数据以及该第一子功能访问的业务的信息,生成该第一跨域调用信息。
可选地,该存储单元920还包括第二缓存区域,该第二缓存区域用于存储该第一跨域调用信息。
可选地,该第一子功能的跨域数据包括如下至少一种:该第一子功能访问该第二区域的频率、时延容忍度、数据量。
可选地,该装置900还包括确定单元,该确定单元用于:确定该第一功能的第一依赖关系,该第一功能包括M个子功能,该M个子功能包括该第一子功能,该第一依赖关系指示该M个子功能中每个子功能与第二功能之间的调用关系,该第一功能和该第二功能部署在该第一区域;其中,该第一依赖关系用于控制该M个子功能中的N个子功能迁移到该第二区域;该第二区域的安全等级高于该第一区域的安全等级,M为大于1的整数,N为大于或等于1的整数。
可选地,该装置900还包括迁移单元,该迁移单元用于:根据该第一依赖关系以及该第一跨域调用信息,将该第一子功能从该第一区域迁移到该第二区域。
可选地,该装置900还包括标记单元,该标记单元用于使用关键字标记该第一子功能的跨域调用应用程序接口和/或跨域数据访问指针;该生成单元910还用于根据该关键字生成调度功能,该调度功能用于调整该第一子功能访问该第二区域的行为。
示例性地,生成单元910和存储单元920可以设置在图2所示的计算平台150中;该生成单元910可以设置在图3所示的跨域调用管理模块301和/或跨域调用控制模块305中,该存储单元920设置在图3所示的第二缓存模块303中。示例性地,上述记录单元可以设置在图2所示的计算平台150中,或者也可以设置在图3所示的缓存区域管理模块302或缓存区域管理模块306中。示例性地,上述获取单元、确定单元、迁移单元和标记单元可以设置在图2所示的计算平台150中,或者也可以设置在图3所示的跨域调用控制模块301和/或跨域调用控制模块305中。
应理解,以上装置中各单元的划分仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。此外,装置中的单元可以以处理器调用软件的形式实现;例如装置包括处理器,处理器与存储器连接,存储器中存储有指令,处理器调用存储器中存储的指令,以实现以上任一种方法或实现该装置各单元的功能,其中处理器例如为通用处理器,例如CPU或微处理器,存储器为装置内的存储器或装置外的存储器。或者,装置中的单元可以以硬件电路的形式实现,可以通过对硬件电路的设计实现部分或全部单元的功能,该硬件电路可以理解为一个或多个处理器;例如,在一种实现中,该硬件电路为ASIC,通过对电路内元件逻辑关系的设计,实现以上部分或全部单元的功能;再如,在另一种实现中,该硬件电路为可以通过PLD实现,以FPGA为例,其可以包括大量逻辑门电路,通过配置文件来配置逻辑门电路之间的连接关系,从而实现以上部分或全部单元的功能。以上装置的所有单元可以全部通过处理器调用软件的形式实现,或全部通过硬件电路的形式实现,或部分通过处理器调用软件的形式实现,剩余部分通过硬件电路的形式实现。
以上装置中的各单元可以是被配置成实施以上方法的一个或多个处理器(或处理电路),例如:CPU、GPU、NPU、TPU、DPU、微处理器、DSP、ASIC、FPGA,或这些处理器形式中至少两种的组合。
此外,以上装置中的各单元可以全部或部分可以集成在一起,或者可以独立实现。在 一种实现中,这些单元集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。该SOC中可以包括至少一个处理器,用于实现以上任一种方法或实现该装置各单元的功能,该至少一个处理器的种类可以不同,例如包括CPU和FPGA,CPU和人工智能处理器,CPU和GPU等。
在具体实现过程中,上述生成单元910执行的操作可以由一个处理器执行,该处理器控制在存储单元920中存储相关数据和/或信息。此外,上述生成单元910,与确定单元、迁移单元和标记单元所执行的各项操作可以由同一个处理器执行,或者,也可以由不同的处理器执行。在具体实现过程中,上述一个或多个处理器可以为设置在图2所示的计算平台150中的处理器;或者,上述装置900可以为设置在智能驾驶设备100中的芯片。
图10是本申请实施例提供的功能迁移装置的示意性框图。图10所示的功能迁移装置1000可以包括:处理器1010、收发器1020以及存储器1030。其中,处理器1010、收发器1020以及存储器1030通过内部连接通路相连,该存储器1030用于存储指令,该处理器1010用于执行该存储器1030存储的指令,以实现上述各实施例中的功能迁移方法。可选地,存储器1030既可以和处理器1010通过接口耦合,也可以和处理器1010集成在一起。
需要说明的是,上述收发器1020可以包括但不限于输入/输出接口(input/output interface)一类的收发装置,来实现装置1000与其他设备或通信网络之间的通信。
存储器1030可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。
收发器1020使用例如但不限于收发器一类的收发装置,来实现装置1000与其他设备或通信网络之间的通信,以接收/发送用于实现上述各实施例中的功能迁移方法的数据/信息。
在具体实现过程中,该装置1000可以设置于图2所示的计算平台150中,或者该装置1000也可以设置于图3所示的跨域调用控制模块301和/或跨域调用控制模块305中。
本申请实施例还提供一种域控制器,该域控制器包括上述装置900,或者上述装置1000。
本申请实施例还提供一种智能驾驶设备,该智能驾驶设备包括上述装置900,或者上述装置1000,或者还可以包括上述域控制器。
在一些可能的实现方式中,该智能驾驶设备可以为车辆。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机实现本申请上述各实施例中的功能迁移方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机实现本申请上述各实施例中的功能迁移方法。
本申请实施例还提供一种芯片,包括电路,用于执行本申请上述各实施例中的功能迁移方法。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、 只读存储器,可编程只读存储器或者上电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

  1. 一种功能迁移方法,其特征在于,所述方法由车载域控制器执行,所述车载域控制器包括第一区域和第二区域,所述方法包括:
    生成第一跨域调用信息,所述第一跨域调用信息指示第一子功能对所述第二区域中的功能和/或数据的调用信息,所述第一子功能属于第一功能,所述第一子功能位于所述第一区域;
    存储所述第一跨域调用信息,所述存储的第一跨域调用信息用于将所述第一子功能从所述第一区域迁移到所述第二区域。
  2. 如权利要求1所述的方法,其特征在于,所述生成第一跨域调用信息包括:
    在第一缓存区域记录所述第一区域与所述第二区域中的子功能的跨域数据;
    当所述第一子功能的跨域数据满足设定业务需求时,从所述第一缓存区域获取所述第一子功能的跨域数据;
    根据所述第一子功能的跨域数据以及所述第一子功能访问的业务的信息,生成所述第一跨域调用信息。
  3. 如权利要求2所述的方法,其特征在于,所述存储所述第一跨域调用信息包括:
    在第二缓存区域存储所述第一跨域调用信息。
  4. 根据权利要求2或3所述的方法,其特征在于,所述第一子功能的跨域数据包括如下至少一种:所述第一子功能访问所述第二区域的频率、时延容忍度、数据量。
  5. 根据权利要求1至4中任一项所述的方法,其特征在于,所述生成第一跨域调用信息之前,所述方法还包括:
    确定所述第一功能的第一依赖关系,所述第一功能包括M个子功能,所述M个子功能包括所述第一子功能,所述第一依赖关系指示所述M个子功能中每个子功能与第二功能之间的调用关系,所述第一功能和所述第二功能部署在所述第一区域;
    其中,所述第一依赖关系用于控制所述M个子功能中的N个子功能迁移到所述第二区域,所述第二区域的安全等级高于所述第一区域的安全等级,M为大于1的整数,N为大于或等于1的整数。
  6. 根据权利要求5所述的方法,其特征在于,所述方法还包括:
    根据所述第一依赖关系以及所述第一跨域调用信息,将所述第一子功能从所述第一区域迁移到所述第二区域。
  7. 如权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
    使用关键字标记所述第一子功能的跨域调用应用程序接口和/或跨域数据访问指针;
    根据所述关键字生成调度功能,所述调度功能用于调整所述第一子功能访问所述第二区域的行为。
  8. 一种功能迁移装置,其特征在于,所述装置设置于车载域控制器,所述车载域控制器包括第一区域和第二区域,所述装置包括生成单元和存储单元,其中:
    所述生成单元用于生成第一跨域调用信息,所述第一跨域调用信息指示第一子功能对所述第二区域中的功能和/或数据的调用信息,所述第一子功能属于第一功能,所述第一 子功能位于所述第一区域;
    所述存储单元用于存储所述第一跨域调用信息,所述存储的第一跨域调用信息用于将所述第一子功能从所述第一区域迁移到所述第二区域。
  9. 如权利要求8所述的装置,其特征在于,所述存储单元包括第一缓存区域,所述装置还包括记录单元,
    所述记录单元用于在所述第一缓存区域中记录所述第一区域与所述第二区域中的子功能的跨域数据;
    所述生成单元具体用于当所述第一子功能的跨域数据满足设定业务需求时,从所述第一缓存区域获取所述第一子功能的跨域数据,并根据所述第一子功能的跨域数据以及所述第一子功能访问的业务的信息,生成所述第一跨域调用信息。
  10. 如权利要求9所述的装置,其特征在于,所述存储单元还包括第二缓存区域,所述第二缓存区域用于存储所述第一跨域调用信息。
  11. 根据权利要求9或10所述的装置,其特征在于,所述第一子功能的跨域数据包括如下至少一种:所述第一子功能访问所述第二区域的频率、时延容忍度、数据量。
  12. 根据权利要求8至11中任一项所述的装置,其特征在于,所述装置还包括确定单元,所述确定单元用于:
    确定所述第一功能的第一依赖关系,所述第一功能包括M个子功能,所述M个子功能包括所述第一子功能,所述第一依赖关系指示所述M个子功能中每个子功能与第二功能之间的调用关系,所述第一功能和所述第二功能部署在所述第一区域;
    其中,所述第一依赖关系用于控制所述M个子功能中的N个子功能迁移到所述第二区域,所述第二区域的安全等级高于所述第一区域的安全等级,M为大于1的整数,N为大于或等于1的整数。
  13. 根据权利要求12所述的装置,其特征在于,所述装置还包括迁移单元,所述迁移单元用于:
    根据所述第一依赖关系以及所述第一跨域调用信息,将所述第一子功能从所述第一区域迁移到所述第二区域。
  14. 如权利要求8至13中任一项所述的装置,其特征在于,所述装置还包括标记单元,
    所述标记单元用于使用关键字标记所述第一子功能的跨域调用应用程序接口和/或跨域数据访问指针;
    所述生成单元还用于根据所述关键字生成调度功能,所述调度功能用于调整所述第一子功能访问所述第二区域的行为。
  15. 一种功能迁移装置,其特征在于,包括:
    存储器,用于存储计算机程序;
    处理器,用于执行所述存储器中存储的计算机程序,以使得所述装置执行如权利要求1至7中任一项所述的方法。
  16. 一种域控制器,其特征在于,包括如权利要求8至15中任一项所述的装置。
  17. 一种智能驾驶设备,其特征在于,包括如权利要求16所述的域控制器,或者如权利要求8至15中任一项所述的装置。
  18. 如权利要求17所述的智能驾驶设备,其特征在于,所述智能驾驶设备为车辆。
  19. 一种计算机可读存储介质,其特征在于,其上存储有指令,所述指令被处理器执行时,以使得处理器实现如权利要求1至7中任一项所述的方法。
  20. 一种芯片,其特征在于,所述芯片包括电路,所述电路用于执行如权利要求1至7中任一项所述的方法。
PCT/CN2022/132539 2022-11-17 2022-11-17 功能迁移方法、装置和智能驾驶设备 WO2024103339A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/132539 WO2024103339A1 (zh) 2022-11-17 2022-11-17 功能迁移方法、装置和智能驾驶设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/132539 WO2024103339A1 (zh) 2022-11-17 2022-11-17 功能迁移方法、装置和智能驾驶设备

Publications (1)

Publication Number Publication Date
WO2024103339A1 true WO2024103339A1 (zh) 2024-05-23

Family

ID=91083577

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/132539 WO2024103339A1 (zh) 2022-11-17 2022-11-17 功能迁移方法、装置和智能驾驶设备

Country Status (1)

Country Link
WO (1) WO2024103339A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040049553A1 (en) * 2002-09-05 2004-03-11 Takashige Iwamura Information processing system having data migration device
CN113867828A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种运行进程的方法及装置
CN114095358A (zh) * 2021-11-23 2022-02-25 南方电网深圳数字电网研究院有限公司 一种面向动态网络的虚拟网络功能部署方法及设备
CN114265737A (zh) * 2021-11-16 2022-04-01 阿里巴巴(中国)有限公司 系统迁移完整度检测方法、装置及电子设备
CN115145472A (zh) * 2021-03-31 2022-10-04 华为技术有限公司 一种功能迁移方法和装置
CN115328065A (zh) * 2022-09-16 2022-11-11 中国核动力研究设计院 一种应用于工业控制系统的控制单元功能自动迁移的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040049553A1 (en) * 2002-09-05 2004-03-11 Takashige Iwamura Information processing system having data migration device
CN113867828A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种运行进程的方法及装置
CN115145472A (zh) * 2021-03-31 2022-10-04 华为技术有限公司 一种功能迁移方法和装置
CN114265737A (zh) * 2021-11-16 2022-04-01 阿里巴巴(中国)有限公司 系统迁移完整度检测方法、装置及电子设备
CN114095358A (zh) * 2021-11-23 2022-02-25 南方电网深圳数字电网研究院有限公司 一种面向动态网络的虚拟网络功能部署方法及设备
CN115328065A (zh) * 2022-09-16 2022-11-11 中国核动力研究设计院 一种应用于工业控制系统的控制单元功能自动迁移的方法

Similar Documents

Publication Publication Date Title
US12072442B2 (en) Object detection and detection confidence suitable for autonomous driving
US11335132B2 (en) Partial sensor data sharing for connected vehicles
WO2019168869A1 (en) Real-time detection of lanes and boundaries by autonomous vehicles
US12086208B2 (en) Measuring the effects of augmentation artifacts on a machine learning network
DE112020001400T5 (de) Iterative erzeugung räumlicher graphen
US20230096502A1 (en) System task management for computing systems
US20210304611A1 (en) Detection of cyclists near ego vehicles
US12008895B2 (en) Vehicle-to-everything (V2X) misbehavior detection using a local dynamic map data model
US20240053749A1 (en) Parallel processing of vehicle path planning suitable for parking
KR20220154783A (ko) 지도 데이터 수집 방법, 장치 및 시스템
US20220341750A1 (en) Map health monitoring for autonomous systems and applications
US20220374428A1 (en) Simulation query engine in autonomous machine applications
WO2024103339A1 (zh) 功能迁移方法、装置和智能驾驶设备
CN111038503B (zh) 车辆自适应巡航控制方法、装置、车辆及存储介质
US11222213B2 (en) Vehicle behavior detection system
US20240051553A1 (en) Sensor performance monitoring for autonomous systems and applications
US20230360255A1 (en) Joint 2d and 3d object tracking for autonomous systems and applications
US20230341234A1 (en) Lane planning architecture for autonomous machine systems and applications
JP2023076393A (ja) レーダー・ベースの車線変更安全システム
WO2024124445A1 (zh) 计算资源的调用方法、调用装置及智能驾驶设备
US20240272943A1 (en) System task management for computing systems
US20240160913A1 (en) Allocating responsibility for autonomous and semi-autonomous machine interactions and applications
US20240232050A1 (en) Software program error testing for autonomous systems and applications
US20240338292A1 (en) In-Vehicle Processing Device
US20220355822A1 (en) Method for enumerating homotopies for maneuvers using a hierarchy of tolerance relations

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22965522

Country of ref document: EP

Kind code of ref document: A1