System and method for resource allocation in vehicles

The system addresses inefficiencies in vehicle resource allocation by dynamically allocating resources based on predefined profiles, optimizing performance and reducing complexity and unpredictability.

JP2026114907APending Publication Date: 2026-07-08TOYOTA JIDOSHA KK

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
TOYOTA JIDOSHA KK
Filing Date
2025-07-24
Publication Date
2026-07-08

AI Technical Summary

Technical Problem

Existing vehicle resource allocation methods, both static and real-time, face inefficiencies such as resource waste, underutilization, and performance suboptimality due to static allocation, and complexity and unpredictability in real-time allocation.

Method used

A system and method that dynamically allocates hardware resources in vehicles based on predefined resource profiles, correlating vehicle operating modes with resource parameters to ensure optimal performance and reduce complexity.

Benefits of technology

This approach minimizes resource waste, ensures optimal application performance, stabilizes system performance, and reduces computational demands by using predefined mappings for resource allocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026114907000001_ABST
    Figure 2026114907000001_ABST
Patent Text Reader

Abstract

To allocate hardware resources effectively and efficiently within a vehicle. [Solution] An exemplary embodiment of the present disclosure relates to resource allocation in a vehicle. According to the embodiment, a method for allocating hardware resources includes the steps of: having a processor receive information associated with the current operating mode of a vehicle, wherein the current operating mode is one of a plurality of predetermined operating modes; having the processor receive a resource profile, wherein the resource profile includes a predefined mapping between a plurality of predetermined operating modes and parameters for allocating at least one resource; and having the processor output information for allocating at least one resource to at least one relevant application based on the current operating mode and the resource profile.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Exemplary embodiments of the present disclosure relate to resource allocation in a vehicle, and more specifically, to allocation of hardware resources to one or more applications implemented in the vehicle.

Background Art

[0002] Modern vehicles rely heavily on software for operations such as vehicle performance management, safety system control, navigation, infotainment, and equivalents thereof. The rapid progress of vehicle technology has significantly increased the number of applications implemented in the vehicle, thereby escalating the demand for hardware resources within the vehicle. Considering the increasing number and complexity of applications in the vehicle, effective allocation of hardware resources in the vehicle has become important.

Summary of the Invention

[0003] Exemplary embodiments consistent with the present disclosure effectively and efficiently allocate hardware resources in a vehicle.

[0004] According to an exemplary embodiment, a method for allocating hardware resources in a vehicle includes steps of receiving, by a processor, information associated with a current operation mode of the vehicle, wherein the current operation mode is one of a plurality of predetermined operation modes; receiving, by the processor, a resource profile, wherein the resource profile includes a predefined mapping between the plurality of predetermined operation modes and parameters for allocating at least one resource; and outputting, by the processor, information for allocating at least one resource to at least one associated application based on the current operation mode and the resource profile.

[0005] According to an exemplary embodiment, a device for allocating hardware resources in a vehicle includes memory storage and a processor. The memory storage stores computer executable instructions, and the processor is communicatively coupled to the memory storage. The processor is configured to execute instructions and receive information associated with the current operating mode of the vehicle, wherein the current operating mode is one of a plurality of predetermined operating modes; receive a resource profile, wherein the resource profile includes a predefined mapping of a plurality of predetermined operating modes to parameters for allocating at least one resource; and output information for allocating at least one resource to at least one relevant application based on the current operating mode and the resource profile.

[0006] According to an exemplary embodiment, a non-temporary computer-readable recording medium records a processor-executable instruction thereon, the instruction causing the processor to execute a method for allocating hardware resources in a vehicle. The method includes the steps of: receiving information associated with the current operating mode of a vehicle, wherein the current operating mode is one of a plurality of predetermined operating modes; receiving a resource profile, wherein the resource profile includes a predefined mapping between a plurality of predetermined operating modes and parameters for allocating at least one resource; and outputting information for allocating at least one resource to at least one relevant application based on the current operating mode and the resource profile.

[0007] Additional embodiments may be partially described in the following description, partially revealed therein, or realized by the practice of the embodiments presented in this disclosure. [Brief explanation of the drawing]

[0008] [Figure 1]Figure 1 shows a diagram of an exemplary system configuration according to one or more exemplary embodiments. [Figure 2] Figure 2 shows an example of a resource profile according to one or more exemplary embodiments. [Figure 3] Figure 3 shows another example of a resource profile according to one or more exemplary embodiments. [Figure 4] Figure 4 shows a block diagram of an exemplary method for allocating hardware resources in a vehicle according to one or more exemplary embodiments. [Figure 5] Figure 5 shows a diagram of exemplary components of a device configured to implement one or more exemplary embodiments. [Modes for carrying out the invention]

[0009] The features, advantages, and significance of exemplary embodiments of this disclosure are described below with reference to the accompanying drawings. In the accompanying drawings, similar reference numerals indicate similar elements.

[0010] A detailed description of exemplary embodiments follows with reference to the accompanying drawings. The foregoing disclosure provides examples and explanations, but is not intended to be exhaustive or to limit embodiments to the exact forms disclosed. Modifications and variations are possible in light of the foregoing disclosure or can be obtained from the implementation of the embodiments. Furthermore, one or more features or components of one embodiment may be incorporated into another embodiment (or one or more features of another embodiment) or combined with another embodiment (or one or more features of another embodiment). In addition, it should be understood that in the flowcharts and descriptions of operations provided below, one or more operations may be omitted, one or more operations may be added, one or more operations may be performed (at least partially) simultaneously, and the order of one or more operations may be changed.

[0011] Even if specific combinations of features are enumerated in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of possible embodiments. In fact, many of these features can be combined in embodiments not specifically enumerated in the claims and / or not specifically disclosed in the specification. Each of the dependent claims described below may directly depend on only one claim, but the disclosure of possible embodiments includes each dependent claim in combination with all other claims in the set of claims.

[0012] Any element, action, or command used herein should not be construed as essential or mandatory unless expressly stated otherwise. Furthermore, when used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more.” When only one item is intended, the term “one” or similar wording is used. Also, when used herein, terms such as “have,” “possess,” “include,” and “contain” are intended to be open-ended. Furthermore, the phrase “based on” is intended to mean “based at least partially” unless expressly stated otherwise. Additionally, expressions such as "[A] and / or [B]," “at least one of [A] and [B],” or "[A] or [B]" should be understood as including only A, only B, or both A and B.

[0013] Expressions such as "at least one processor" that implement multiple operations or execute multiple instructions should be understood as either a single processor that implements multiple operations, or multiple processors that implement at least some (not necessarily all) of multiple operations.

[0014] Throughout this specification, references to “one embodiment,” “embodiment,” “non-limiting exemplary embodiment,” or similar language mean that certain features, structures, or characteristics described in relation to the embodiments shown are included in at least one embodiment of this disclosure. Therefore, throughout this specification, the phrases “one embodiment,” “in an embodiment,” “non-limiting exemplary embodiment,” and similar language may, but not necessarily, refer to the same embodiment.

[0015] Furthermore, the features, advantages, and characteristics described herein can be combined in any suitable manner in one or more embodiments. Those skilled in the art will recognize, in light of the description herein, that the disclosure can be implemented without having one or more of the specific features or advantages of a particular embodiment. In other examples, additional features and advantages that may not be present in all embodiments of the disclosure may be recognized in certain embodiments.

[0016] Furthermore, as used herein, the term “vehicle” refers to any suitable type of vehicle on which exemplary embodiments of the present disclosure may be implemented. For example, “vehicle” refers to a car, truck, bus, motorcycle, or any other suitable type of motor vehicle powered by an engine, motor, or other mechanical means. Alternatively or in addition, “vehicle” as used herein may, without departing from the scope of the present disclosure, refer to a bicycle, skateboard, and any other suitable type of non-electric vehicle.

[0017] As mentioned above, the increasing number of applications implemented in vehicles and the growing demand for hardware resources in vehicles have made the effective allocation of hardware resources in vehicles increasingly important. In related technologies, there are two main types of resource allocation in vehicles: static resource allocation and real-time resource allocation.

[0018] Static resource allocation means allocating resources based on predefined settings, regardless of the vehicle's operating status. For example, a predefined fixed amount of resources is always reserved for an application that operates when the vehicle is in driving mode, regardless of whether the reserved and allocated resources are needed by the application and fully utilized by the application. This type of resource allocation is inefficient and ineffective in resource utilization. That is, resources are allocated to applications / functions that do not require the amount of resources allocated, resulting in resource waste and underutilization of the allocated resources. Furthermore, static resource allocation results in suboptimal performance for vehicle applications and / or vehicle functions, as the allocated resources may not be sufficient to achieve optimal performance.

[0019] Real-time resource allocation refers to the allocation of resources based on real-time monitoring and measurement. For example, resources are allocated based on real-time measurement of time (e.g., time since a vehicle entered a specific operating mode), real-time measurement of available resources in response to real-time operational load, real-time measurement of application processing time / execution time, and equivalent factors. This type of resource allocation is more complex than static resource allocation because real-time measurement requires the continuous collection and processing of data from multiple sources (e.g., sensors, ECUs, etc.) in real time (or near real time), which increases the complexity in designing, testing, and implementing the resource allocation mechanism. Furthermore, because this type of resource allocation relies on real-time measurement of conditions, it is difficult to control and predict. As a result, resource allocation can change excessively dynamically (e.g., resource allocation can change abruptly based on sensor inputs and environmental factors), which can cause fluctuations in system performance and increase the risk of failing to guarantee quality of service (QoS) to users. In addition, this type of resource allocation requires real-time measurement and real-time decision-making regarding, for example, whether resource allocation should be performed and how much resource should be allocated. Therefore, continuous processing is required, and since a portion of the resources is needed for resource allocation, the amount of resources available for allocation may be reduced.

[0020] Exemplary embodiments of this disclosure provide systems, methods, apparatus, and equivalents for efficiently and effectively allocating hardware resources in a vehicle. Specifically, the exemplary embodiments of this disclosure utilize a controller (or a processor implementing related operations) which interoperates with other vehicle components (e.g., sensors) to determine the current operating mode of the vehicle, and then dynamically allocates resources to vehicle applications based on the current operating mode of the vehicle using a predefined resource profile.

[0021] Compared to static resource allocation in related technologies, exemplary embodiments of this disclosure dynamically allocate resources to vehicle applications according to the vehicle's current operating mode, thereby avoiding underutilization and waste of allocated resources. In addition, sufficient resources are allocated to vehicle applications (since the applications operating under each operating mode are predetermined and the amount of resources allocated to the applications is predetermined based on best practices / past performance), thereby ensuring optimal performance of the vehicle applications.

[0022] On the one hand, the exemplary embodiments of the present disclosure also address problems in real-time resource allocation of related technologies. Specifically, the exemplary embodiments reduce the complexity of resource allocation. This is because the resource allocation is based on a predefined resource profile, which can be designed and configured according to specific non-real-time scenarios (i.e., the design, testing, and implementation of the resource allocation mechanism are simplified compared to real-time resource allocation based on real-time measurements in related technologies). Further, the exemplary embodiments provide predictable resource allocation and improved performance stability. This is because the resource allocation is based on a resource profile, which provides a clear and predefined mapping of which resources are allocated across various operating modes, thereby reducing the risk of sudden / unexpected changes in resource allocation and ensuring consistent and predictable performance under specific operating modes. In addition, since the exemplary embodiments allocate resources based on a resource profile, the resource allocation requires significantly less real-time operation (e.g., real-time measurement, real-time decision-making, etc.), thereby reducing the computational requirements for resource allocation and enabling more resources (e.g., resources previously required for real-time measurement and real-time decision-making) to be allocated to applications / functions.

[0023] It is intended that the features, advantages, and significance of the exemplary embodiments described herein are only a part of the present disclosure and are not intended to be exhaustive or to limit the scope of the present disclosure. Further descriptions of the features, components, configurations, operations, and implementations of the exemplary embodiments of the present disclosure are provided below.

[0024] <Exemplary System Configuration> FIG. 1 shows a block diagram of an exemplary system configuration according to one or more exemplary embodiments. As shown in FIG. 1, the vehicle system 100 includes a controller 110, a plurality of sensors 120, and a plurality of applications 130. The number of controllers, sensors, and applications shown in FIG. 1 is merely an example simplified for purposes of illustration and description, and it is contemplated that any suitable number of such components may be implemented. For example, the vehicle system 100 may include more than one controller 110, the sensors 120 may include more / fewer than three sensors, the applications 130 may include more / fewer than three applications, and so on.

[0025] The controller 110 is communicatively coupled to the plurality of sensors 120 and the plurality of applications 130 (or components / devices implementing the plurality of sensors 120 and / or components / devices implementing the plurality of applications 130) via, for example, a controller area network (CAN) bus, a FlexRay bus, an automotive Ethernet, and / or other suitable types of communication components.

[0026] Controller 110 refers to the main processor that implements the operations described herein, and includes a processor (e.g., CPU), a vehicle control unit (VCU), and any other suitable type of controller or processing unit. For this purpose, Controller 110 is also referred to herein as “processor” or “processing unit.” In some exemplary embodiments, Controller 110 further includes a mode detection module (which receives input from Sensor 120 and determines the current operating mode of the vehicle) and a resource manager module (which obtains a resource profile, determines the appropriate resources to be allocated, and outputs information for allocating resources). These modules are implemented in dedicated hardware components (e.g., a first processing unit / core dedicated to implementing the operation of the mode detection module, and a second processing unit / core dedicated to implementing the operation of the resource manager module). Alternatively or in addition, these modules may be virtualized software modules, presented in the form of computer-readable instructions. In this regard, these modules may be executed by one or more processing units when the associated computer-readable instructions are executed.

[0027] The controller 110 is implemented in devices or equipment that may be mounted or installed in the vehicle system 100, such as a system-on-a-chip (SoC), vehicle accessories, aftermarket devices, and equivalents thereof. An exemplary device in which the controller 110 is implemented is described below with reference to Figure 5.

[0028] The multiple sensors 120 include devices or components configured to detect, measure, and capture the respective data (referred to herein as “sensor data”). A non-limiting list of examples of sensors 120 includes: accelerometers that measure and capture data associated with vehicle acceleration / deceleration, vehicle speed, vehicle mileage and equivalents; image sensors (e.g., cameras) that detect and capture image data inside, outside, around, or near the vehicle; light detection and ranging (LiDAR) sensors that detect and capture data associated with light in one or more light spectra such as the visible spectrum, infrared spectrum, ultraviolet spectrum and / or other light spectra; sound sensors (e.g., microphones) that detect and capture sound data inside and / or outside the vehicle; temperature sensors that measure and capture data associated with temperature inside and / or outside the vehicle; position sensors (e.g., Global Positioning System (GPS), Inertial Measurement Unit (IMU)) that measure and capture data associated with vehicle movement, location, position and / or orientation; and data between parts of the vehicle and objects. This includes contact sensors (pressure detectors, impact detectors, etc.) that measure and capture the following: air sensors that measure and capture data associated with the air inside and / or outside the vehicle (e.g., oxygen level, pollution level, humidity level, etc.); radar sensors that detect and capture the distance from surrounding objects to the vehicle; steering angle sensors that detect and capture steering input, steering position and equivalents; occupancy sensors that detect and capture the empty / occupied state of the passenger compartment; gear position sensors that detect and capture the current position of the gear (e.g., parking, manual, drive, etc.); parking brake sensors that detect and capture the operation and engagement of the parking brake; seat occupancy sensors that detect and capture the occupancy state of the vehicle seat; brake pedal sensors that detect and capture the operation and engagement of the brake pedal; engine ignition sensors that detect and capture information associated with the vehicle's engine; and other sensors suitable for deployment in the vehicle.

[0029] Sensor data is captured periodically, continuously, intermittently, or based on trigger events (e.g., activation of a driving mode switching button, determination that the vehicle has been stationary for a predetermined period of time, or reception of a connection request from an external device).

[0030] The sensor data captured by the sensor 120 is stored permanently or semi-permanently in the vehicle system 100 for a predetermined period (for example, stored in memory and / or storage components implemented in the vehicle system 100). Alternatively or in addition, the sensor 120 may be an Internet of Things (IoT) based sensor that enables the vehicle system 100 to communicate with one or more external storage media to store the measured sensor data in one or more external storage media.

[0031] Application 130 includes a wide range of applications that can be implemented in the vehicle system 100 to enhance vehicle performance, safety and security, and user experience. For example, Application 130 includes safety-critical applications such as advanced driver-assistance systems (ADAS) applications, electronic stability control (ESC) applications, tire pressure monitoring applications and equivalents, vehicle control and management applications such as heating, ventilation and air conditioning (HVAC) applications, shadow mode applications, powertrain control applications and equivalents, cockpit applications, in-vehicle infotainment (IVI) applications, entertainment applications and equivalents, recording applications, vehicle security applications, intrusion detection applications and equivalents. Application 130 is intended to include other appropriate types of applications without departing from the scope of this disclosure.

[0032] Application 130 is implemented in various forms based on deployment and execution requirements. For example, Application 130 may be implemented as a containerized application, a virtualized application, a bare-metal application, a real-time operating system (RTOS) based application, a middleware-based application, and equivalents thereof. According to an exemplary embodiment, one or more of Application 130 are controlled or managed by an associated electronic control unit (ECU). For example, an ADAS application is implemented, controlled, and managed by an ADASECU. Alternatively or in addition, one or more of Application 130 may be implemented in a virtual machine (VM), and the VM may be controlled or managed by a hypervisor. Alternatively or in addition, one or more of Application 130 may be implemented in an OS. Alternatively or in addition, one or more of Application 130 may be controlled or managed by a resource manager (or associated middleware). Furthermore, Application 130 may utilize one or more artificial intelligence (AI) / machine learning (ML) models or technologies to further enhance performance and enrich associated functionality.

[0033] According to an exemplary embodiment, the controller 110 is configured to interoperate with the sensor 120 to allocate hardware resources to the application 130. Specifically, the controller 110 receives information from the sensor 120 that is associated with the vehicle's current operating mode / information indicating the vehicle's current operating mode. The current operating mode consists of a primary operating mode (e.g., driving mode, parking mode, etc.) and a secondary operating mode (e.g., ADAS mode, shadow mode, navigation mode, entertainment mode, gaming mode, etc.). Therefore, the controller 110 receives the resource profile and then allocates resources to the application 130 based on the current operating mode and the resource profile. For example, based on the resource profile, the controller 110 determines predetermined resource allocation parameters for allocating resources to the application associated with the current operating mode (e.g., how many CPU / GPU cores to allocate to the ADAS application under the current driving mode, etc.). The controller 110 then outputs information for allocating resources to the application.

[0034] According to an exemplary embodiment, a resource profile includes a predefined mapping between a number of predetermined operating modes and parameters for allocating resources in each of the operating modes. Figure 2 shows an example of a resource profile 200 according to one or more exemplary embodiments. As shown in Figure 2, the resource profile 200 includes a mapping between four operating modes (i.e., driving mode 1, driving mode 2, parking mode 1, and parking mode 2) and corresponding resource allocation parameters. In a non-limiting example, driving mode 1 is "sport mode" and driving mode 2 is "eco mode". Therefore, four resources (i.e., resources A and B) are pre-allocated to driving mode 1 to ensure that sufficient resources are allocated to enhance driving performance and responsiveness when the vehicle is in "sport mode", while two resources (e.g., resources A and B) are pre-allocated to driving mode 2 to ensure that sufficient resources are allocated for normal driving operation and performance while interacting with the resources when the vehicle is in "eco mode".

[0035] Figure 3 shows another example of a resource profile 300 according to one or more exemplary embodiments. As shown in Figure 3, the resource profile 300 includes more specific information associated with resource allocation under each operating mode. Specifically, the resource profile 300 includes information on a plurality of primary operating modes (e.g., driving mode, parking mode, etc.), at least one secondary mode associated with at least one of the plurality of primary operating modes (e.g., ADAS mode, shadow mode, navigation mode, entertainment mode, gaming mode, etc.), at least one application associated with at least one secondary mode (e.g., ADAS application, shadow mode application, cockpit application, recording application, etc.), and parameters for allocating at least one resource to at least one application.

[0036] According to an exemplary embodiment, the hardware resources allocated by the controller 110 include at least one of the following: a central processing unit (CPU), a graphics processing unit (GPU), a neural processing unit (NPU), memory (e.g., RAM), storage, network bandwidth, and equivalents thereof.In this regard, resource profiles are parameters for allocating resources, such as a predefined number of CPU cores (e.g., the number of CPU cores allocated to the corresponding operating mode), a predefined CPU clock speed (e.g., the CPU frequency allocated to the corresponding operating mode (e.g., GHz, MHz)), a predefined number of GPU cores (e.g., the number of GPU cores allocated to the corresponding operating mode), a predefined GPU clock speed (e.g., the GPU frequency allocated to the corresponding operating mode (e.g., GHz, MHz)), a predefined GPU memory bandwidth (e.g., the amount of GPU graphics memory allocated to the corresponding operating mode (e.g., GB, MB)), a predefined number of NPU cores (e.g., the number of NPU cores allocated to the corresponding operating mode), a predefined NPU clock speed (e.g., the NPU frequency allocated to the corresponding operating mode (e.g., This includes, for example, GHz, MHz, etc., a predefined amount of memory (e.g., the amount of RAM allocated to the corresponding operating mode (e.g., GB, MB), etc.), a predefined privilege for using memory (e.g., permission for direct memory access to RAM under the corresponding operating mode, permission to use cache memory under the corresponding operating mode, high priority for accessing memory under the corresponding operating mode, etc.), a predefined amount of storage (e.g., for temporary / periodic storage, the amount of storage allocated to the corresponding operating mode (e.g., GB, MB), etc.), a predefined privilege for using storage (e.g., permission to read / write to storage under the corresponding operating mode, high priority for accessing storage under the corresponding operating mode, etc.), a predefined amount of network bandwidth (e.g., the amount of bandwidth allocated to the corresponding operating mode (e.g., Gbps, Mbps)), and equivalents thereof.

[0037] Resource profiles are predefined by the vehicle manufacturer (for example, based on best practices or historical data for a particular vehicle mode, or the preferences of a particular driver) and stored in a storage medium (e.g., a storage component, memory, etc.) accessible by the controller 110. The controller 110 accesses the storage medium storing the resource profiles and manages them (e.g., using, updating, etc.).

[0038] According to exemplary embodiments, the controller 110 is configured to periodically update the resource profile. For example, the controller 110 receives a command to update the resource profile from user equipment (e.g., a vehicle manufacturer's device / system) via over-the-air (OTA). Thus, the controller 110 updates the resource profile based on the received command. In some exemplary embodiments, the update is a delta / incremental update. That is, instead of downloading and replacing the entire resource profile, the controller 110 determines the difference (e.g., "delta") between the existing resource profile and the updated resource profile and downloads and installs / updates only the portion that differs from the existing resource profile. According to exemplary embodiments, the controller 110 periodically (or continuously) provides the user equipment (e.g., a vehicle manufacturer's device / system) via OTA information associated with or indicating the driver's driving habits or preferences. Therefore, the user (e.g., a vehicle manufacturer) customizes the resource profile based on the driver's driving habits or preferences (for example, a driver who frequently uses the navigation application is provided with a resource profile that prioritizes frequently used navigation applications), and then provides the customized resource profile to the controller 110. The controller 110 then updates the existing resource profile to match the customized resource profile. In some exemplary embodiments, the controller 110 uses an AI / ML model to determine or update the resource profile based on inputs such as the driver's driving habits.

[0039] Once the resources to be allocated are determined, the controller 110 is configured to output information for allocating the resources. For example, the controller 110 generates an instruction to allocate the resources to an application and then outputs that instruction to one or more of the following: the ECU associated with the application, the OS implementing the application, the hypervisor managing the VM implementing the application, and the resource manager managing the resources. According to an exemplary embodiment, the controller 110 generates an instruction by determining the mapping associated with the current operating mode from among the resource profile mappings, determining the parameters for allocating resources from the determined mapping, and generating an instruction that includes the parameters for allocating at least one resource.

[0040] <Example Action> As described above, various operations are performed by the controller 110 (or the device implementing the controller 110) to allocate hardware resources in the vehicle system 100. Several exemplary operations according to one or more exemplary embodiments are described below with reference to Figure 4. Since one or more operations (or data relating thereto) are the same as those described above with reference to Figures 1-3, please understand that (unless otherwise stated) the described operations / data also apply to the operations in Figure 4, and related redundant explanations may be omitted for the sake of brevity.

[0041] For illustrative purposes, the operations are described as being performed primarily by the controller 110, or a processor implementing the operations of the controller 110. Specifically, according to exemplary embodiments, the controller 110 includes (or is implemented in) one or more hardware components or devices, and one or more operations described below are performed by the one or more hardware components. For example, the vehicle system 100 includes (or implements) a processor and memory / storage, and the memory / storage includes computer-executable instructions that, when executed by the processor, cause the processor to perform one or more operations described herein.

[0042] Figure 4 shows a block diagram of an exemplary method 400 for allocating hardware resources in a vehicle according to one or more exemplary embodiments.

[0043] In operation S410, the controller 110 (or associated processor) is configured to receive information associated with the vehicle's current operating mode. For example, the controller 110 (or associated processor) receives sensor data associated with the vehicle from one or more of the sensors 120, and then determines the current operating mode based on that sensor data. In this regard, the current operating mode is one of a plurality of predetermined operating modes (e.g., driving mode, parking mode, etc.). In some exemplary embodiments, the current operating mode consists of a primary operating mode and a secondary operating mode. For example, the current operating mode includes a driving mode (i.e., primary operating mode) with ADAS mode (i.e., secondary operating mode) enabled, a parking mode (i.e., primary operating mode) with gaming mode (i.e., secondary operating mode) enabled, and equivalents thereof.

[0044] In operation S420, the controller 110 (or associated processor) is configured to receive a resource profile. As described above with reference to Figure 2, the resource profile includes a predefined mapping between a plurality of predetermined operating modes and parameters for allocating at least one resource. Furthermore, as described above with reference to Figure 3, the plurality of predetermined operating modes are a plurality of primary operating modes, and the resource profile may include a mapping between the plurality of primary operating modes, a plurality of secondary operating modes (each associated with at least one of the plurality of primary operating modes), at least one application associated with at least one of the plurality of secondary operating modes, and parameters for allocating at least one resource.

[0045] Furthermore, as described above with reference to Figure 3, according to an exemplary embodiment, at least one resource includes at least one of the following: a central processing unit (CPU), a graphics processing unit (GPU), a neural processing unit (NPU), memory, storage, network bandwidth, and equivalents thereof. In addition, the resource profile includes parameters for allocating at least one resource, such as a predefined number of CPU cores, a predefined clock speed for the CPU, a predefined number of GPU cores, a predefined clock speed for the GPU, a predefined memory bandwidth for the GPU, a predefined number of NPU cores, a predefined clock speed for the NPU, a predefined amount of memory, predefined privileges for using memory, a predefined amount of storage, predefined privileges for using storage, a predefined amount of network bandwidth, and equivalents thereof.

[0046] Without departing from the scope of this disclosure, operations S410 and S420 are intended to be performed in any suitable order. For example, operation 410 may be performed before operation 420, simultaneously with operation S420, and / or after operation S420.

[0047] Referring again to Figure 4, in operation S430, the controller 110 is configured to output information for allocating at least one resource to at least one associated application based on the current operating mode and resource profile. For example, the controller 110 (or associated processor) generates an instruction for allocating at least one resource to at least one application and then outputs that instruction to a component that implements / manages at least one application (e.g., an ECU associated with at least one application, an OS implementing at least one application, a hypervisor managing a VM implementing at least one application, a resource manager managing at least one resource, etc.). In some exemplary embodiments, the controller 110 (or associated processor) selects a mapping associated with the current operating mode from among the resource profile mappings, selects parameters for allocating at least one resource from the selected mapping, and then generates an instruction containing the parameters for allocating at least one resource.

[0048] When operation S430 is executed, method 400 terminates. Alternatively, method 400 may return to operation S410 so that the controller 110 (or associated processor) repeats operations S410–S430 for at least a predetermined period of time.

[0049] The operations shown in Figure 4 are merely examples, and it is intended that the scope of this disclosure should not be limited thereto. Specifically, Method 400 may include more / fewer operations than those shown and / or perform operations in any suitable order without departing from the scope of this disclosure. For example, in some exemplary embodiments, concurrently with the operations of Method 400, the controller 110 (or associated processor) may be configured to manage a resource profile (e.g., receiving instructions from a user device via OTA to update the resource profile, updating at least a portion of the resource profile based on the received instructions, etc.).

[0050] <Example component> Figure 5 shows a diagram of exemplary components of the device 500 according to one or more exemplary embodiments. In some exemplary embodiments, the device 500 is an in-vehicle device that implements the controller 110 (or one or more operations associated with the controller 110). The device 500 includes any devices or equipment that may be mounted or implemented in the vehicle to interoperate with other components of the vehicle, such as vehicle sensors. For example, the device 500 includes an SoC, vehicle accessories, aftermarket devices (e.g., devices that may be mounted or added to the vehicle after the vehicle has been sold), and equivalents thereof.

[0051] As shown in Figure 5, the device 500 includes at least one bus 501, at least one processor 502, at least one memory 503, at least one storage component 504, at least one input component 505, at least one output component 506, and at least one communication interface 507.

[0052] The device 500 is intended to include more or fewer components than those shown in Figure 5, without departing from the scope of the present disclosure. For example, in some embodiments, the device 500 may include a plurality of storage components 504, the input component 505 and the output component 506 may be implemented as transceiver components, the memory 503 and the storage component 504 may be implemented as memory storage, and so on.

[0053] Bus 501 is configured to facilitate or enable communication between components of the device 500. Specifically, bus 501 connects components in a communicative manner and provides means for data transfer and control signal flow between components. Bus 501 includes one or more of the following suitable types of buses that may be implemented in the device 500 to enable real-time (or near real-time) communication and cooperation between components within the device 500.

[0054] The processor 502 is implemented in hardware, firmware, or a combination of hardware and software, and is configured to perform real-time (or near real-time) data processing and control of the control device 500. The processor 502 includes one or more of the following: a central processing unit (CPU), a graphics processing unit (GPU), a neural processing unit (NPU), a tensor processing unit (TPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or other types of processing or computing components that may be implemented in the device 500. In some implementations, the processor 502 is programmable to perform one or more operations described herein. Furthermore, the processor 502 includes multiple processing units, each of which is specialized to perform a particular operation.

[0055] Memory 503 includes one or more media for storing temporary data, runtime variables, program instructions, and buffers necessary for the operation of the control device 500. Memory 503 includes one or more of the following: flash memory, read-only memory (ROM), random access memory (RAM), dynamic or static storage devices (e.g., flash memory, magnetic memory, and / or optical memory), and other suitable types of memory that may be implemented in the device 500 for storing information and / or instructions used by the processor 502.

[0056] The storage component 504 is configured to store non-volatile data such as firmware, configuration settings, calibration data, information, and / or software related to the operation and use of the device 500. For example, the storage component 504 includes a hard disk (e.g., magnetic disk, optical disk, magneto-optical disk, and / or solid-state disk), a compact disk (CD), a digital multipurpose disk (DVD), a floppy disk, a cartridge, magnetic tape, and / or another type of non-temporary computer-readable media, along with a corresponding drive.

[0057] According to the embodiment, the memory 503 and / or storage component 504 are configured to store computer-readable or computer-executable instructions for implementing one or more operations of the device 500. The memory 503 and / or storage component 504 provide the stored information to the memory 503 for the execution of the processor 502. Furthermore, the memory 503 and / or storage component 504 include data or information used by the processor 502 to allocate resources, such as resource profiles as described herein. Furthermore, the memory 503 and / or storage component 504 are configured to store one or more data relating to the operation of the device 500, such as resource profiles, sensor data, information associated with the operating mode of the vehicle, information for allocating resources, and equivalents thereof.

[0058] The input component 505 includes one or more input components (e.g., a touchscreen display, keyboard, keypad, mouse, buttons, switches, and / or microphone) that enable the device 500 to receive information, for example, via user input. The output component 506 includes one or more output components (e.g., a display, speaker, navigation device, one or more light-emitting diodes (LEDs), etc.) that provide output information from the device 500. According to the embodiment, the input component 505 and / or the output component 506 are optional and may be excluded from the device 500.

[0059] At least one communication interface 507 includes a transceiver-like component (e.g., a transceiver and / or separate receivers and transmitters) that enables the device 500 to communicate with other components (e.g., ECUs, user devices, etc.) via, for example, a wired connection, a wireless connection, or a combination of wired and wireless connections. For example, the communication interface 507 includes a Controller Area Network (CAN) bus interface, an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a Universal Serial Bus (USB) interface, a Wi-Fi interface, a cellular network interface, or equivalents thereof.

[0060] According to one or more embodiments, the communication interface 507 includes at least one input / output (I / O) interface, at least one network interface, at least one storage interface, or equivalents thereof, enabling components 502-506 to communicate with other components. Furthermore, the communication interface 507 may include one or more application programming interfaces (APIs) that enable the device 500 (or one or more components included in the device 500) to communicate with one or more software applications (e.g., software applications managed by an ECU).

[0061] Computer executable instructions (e.g., software instructions) are read into memory 503 and / or storage component 504 from another computer-readable medium or another device (e.g., a remote server, external storage, etc.) via, for example, a communication interface 507. When the computer executable instructions stored in memory 503 and / or storage component 504 are executed, they cause the processor 502 to execute one or more processes described herein. In addition or alternatively, hardwired circuits may be used instead of or in combination with software instructions to execute one or more processes described herein. For this reason, the implementations described herein are not limited to any particular combination of hardware circuits and software.

[0062] <Various embodiments of the model> The features, advantages, and significance of the exemplary embodiments described herein are only a part of the disclosure and are not intended to be exhaustive or to limit the scope of the disclosure. Further descriptions of the features, components, configurations, operations, and implementations of the exemplary embodiments of the disclosure, as well as the related technical advantages and technical significance, are provided below.

[0063] It should be understood that the specific order or hierarchy of blocks in the processes / flowcharts disclosed herein is an example of an exemplary approach. It should be understood that the specific order or hierarchy of blocks in the processes / flowcharts may be rearranged based on design preferences. Furthermore, some blocks may be combined or omitted. The claims of the appended methods present elements of various blocks in a sample order and do not mean to limit the user to the specific order or hierarchy presented.

[0064] Some embodiments relate to systems, methods, and / or computer-readable media in integration at any possible level of technical detail. Furthermore, as described herein, one or more of the above-described components may be implemented as instructions stored in a computer-readable medium and executable by at least one processor (and / or include at least one processor). The computer-readable medium includes a non-temporary computer-readable storage medium having computer-readable program instructions thereon for causing a processor (or more processors) to perform an operation.

[0065] A computer-readable storage medium is a tangible device capable of holding and storing instructions used by an instruction execution device. Computer-readable storage mediums include, but are not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage mediums includes, namely, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital multipurpose disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved raised structures on which instructions are stored, and any suitable combination thereof. When used herein, a computer-readable storage medium should not be construed as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse passing through an optical fiber cable), or a transient signal itself, such as an electrical signal transmitted through a wire.

[0066] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network such as the Internet, a local area network, a wide area network, and / or a wireless network. The network includes copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.

[0067] Computer-readable program code / instructions for performing an operation may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-independent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++ or equivalents, and procedural programming languages ​​such as the C programming language or similar programming languages. Computer-readable program instructions may be fully executed on the user's computer, partially executed on the user's computer as a standalone software package, partially executed on the user's computer and partially on a remote computer, or fully executed on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or the connection may be made to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) executes computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform an action or operation.

[0068] These computer-readable program instructions are provided to a processor of a SoC, general-purpose computer, special-purpose computer, or other programmable data processing device, so that the instructions, executed via the processor of a computer or other programmable data processing device, generate means for implementing functions / actions specified in blocks or blocks of a flowchart and / or block diagram. These computer-readable program instructions may be stored in a computer-readable storage medium that can instruct a computer, programmable data processing device, and / or other device to function in a particular manner so that the storage medium containing the instructions therein comprises a product containing instructions that implements modes of functions / actions specified in blocks or blocks of a flowchart and / or block diagram.

[0069] Computer-readable program instructions may be loaded into a computer, other programmable data processing device, or other device so that instructions executed on a computer, other programmable device, or other apparatus implement functions / actions specified in blocks or blocks of a flowchart and / or block diagram, thereby causing a series of operational steps on the computer, other programmable device, or other apparatus to generate a computer implementation process.

[0070] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in a flowchart or block diagram represents a module, segment, or portion of instructions, comprising one or more executable instructions for implementing a specified logical function. Methods, computer systems, and computer-readable media may include additional blocks, fewer blocks, different blocks, or blocks in a different arrangement than those depicted in the figures. In some alternative embodiments, the functions described in the blocks may occur outside the order shown in the figures. For example, two consecutively shown blocks may actually be executed simultaneously or nearly simultaneously, and blocks may sometimes be executed in reverse order depending on the functions involved. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in a block diagram and / or flowchart, may be implemented by a special-purpose hardware-based system that performs a specified function or action or a combination of special-purpose hardware and computer instructions.

[0071] It will be apparent that the systems and / or methods described herein may be implemented in different forms of hardware, firmware, or combinations of hardware and software. The specific control hardware or software code used to implement these systems and / or methods is not limiting to the implementation. For this reason, the operation and behavior of the systems and / or methods are described herein without reference to specific software code. It will be understood that software and hardware can be designed to implement the systems and / or methods based on the descriptions herein.

Claims

1. A method for allocating hardware resources in a vehicle, A step of receiving information associated with the current operating mode of the vehicle by a processor, wherein the current operating mode is one of a plurality of predetermined operating modes; The step of receiving a resource profile by the processor, wherein the resource profile includes a predefined mapping between a plurality of predetermined operating modes and parameters for allocating at least one resource. The processor outputs information for allocating the at least one resource to the relevant application based on the current operating mode and the resource profile. Methods that include...

2. The aforementioned plurality of predetermined operating modes are a plurality of main operating modes, The aforementioned resource profile is The aforementioned multiple main operating modes, A plurality of secondary operating modes, each of which is associated with at least one of the plurality of primary operating modes, The at least one application associated with at least one of the plurality of secondary operating modes, The parameter for allocating at least one resource and The method according to claim 1, including mapping of

3. The method according to claim 2, wherein the plurality of primary operating modes include a driving mode and a parking mode, and the plurality of secondary operating modes include an advanced driver-assistance system (ADAS) mode, a shadow mode, a navigation mode, an entertainment mode, and a gaming mode.

4. The method according to any one of claims 1 to 3, wherein the at least one resource includes at least one of a central processing unit (CPU), a graphics processing unit (GPU), a neural processing unit (NPU), memory, storage, and network bandwidth.

5. The method according to claim 4, wherein the parameter for allocating the at least one resource includes at least one of the following: a predetermined number of CPU cores, a predetermined clock speed of the CPU, a predetermined number of GPU cores, a predetermined clock speed of the GPU, a predetermined memory bandwidth of the GPU, a predetermined number of NPU cores, a predetermined clock speed of the NPU, a predetermined amount of memory, a predetermined privilege for using the memory, a predetermined amount of storage, a predetermined privilege for using the storage, and a predetermined amount of network bandwidth.

6. The step of outputting the information for allocating at least one resource is: The processor generates instructions for allocating the at least one resource to the at least one application, The processor outputs the instructions to at least one of the following: an electronic control unit (ECU) associated with the at least one application, an operating system (OS) implementing the at least one application, a hypervisor that manages a virtual machine (VM) implementing the at least one application, and a resource manager that manages the at least one resource. The method according to any one of claims 1 to 3, including

7. Generating the aforementioned instruction means The processor determines, from among the mappings of the resource profile, the mapping associated with the current operating mode. The processor determines, from the determined mapping, the parameters for allocating at least one resource, The processor generates the instruction which includes the parameters for allocating the at least one resource. The method according to claim 6, including the method described in claim 6.

8. The processor receives a command from the user device via over-the-air (OTA) to update the resource profile. The processor updates at least a portion of the resource profile based on the received instruction. The method according to any one of claims 1 to 3, further comprising:

9. A device for allocating hardware resources in a vehicle, Memory storage for storing computer executable instructions, A processor that is communicatively coupled to the memory storage, and which executes the instructions, A step of receiving information associated with the current operating mode of the vehicle, wherein the current operating mode is one of a plurality of predetermined operating modes; A step of receiving a resource profile, wherein the resource profile includes a predefined mapping between a plurality of predetermined operating modes and parameters for allocating at least one resource, A step of outputting information for allocating the at least one resource to the at least one related application, based on the current operating mode and the resource profile. A processor configured to perform the following actions A device equipped with the following features.

10. The aforementioned plurality of predetermined operating modes are a plurality of main operating modes, The aforementioned resource profile is The aforementioned multiple main operating modes, A plurality of secondary operating modes, each of which is associated with at least one of the plurality of primary operating modes, The at least one application associated with at least one of the plurality of secondary operating modes, The parameter for allocating at least one resource and The apparatus according to claim 9, including mapping of

11. The apparatus according to claim 10, wherein the plurality of primary operating modes include a driving mode and a parking mode, and the plurality of secondary operating modes include an advanced driver-assistance system (ADAS) mode, a shadow mode, a navigation mode, an entertainment mode, and a gaming mode.

12. The apparatus according to any one of claims 9 to 11, wherein the at least one resource includes at least one of a central processing unit (CPU), a graphics processing unit (GPU), a neural processing unit (NPU), memory, storage, and network bandwidth.

13. The apparatus according to claim 12, wherein the parameter for allocating the at least one resource includes at least one of the following: a predetermined number of CPU cores, a predetermined clock speed of the CPU, a predetermined number of GPU cores, a predetermined clock speed of the GPU, a predetermined memory bandwidth of the GPU, a predetermined number of NPU cores, a predetermined clock speed of the NPU, a predetermined amount of memory, a predetermined privilege for using the memory, a predetermined amount of storage, a predetermined privilege for using the storage, and a predetermined amount of network bandwidth.

14. The aforementioned processor executes the instruction, To generate an instruction for allocating the at least one resource to the at least one application, Outputting the command to at least one of the following: an electronic control unit (ECU) associated with the at least one application, an operating system (OS) implementing the at least one application, a hypervisor that manages a virtual machine (VM) implementing the at least one application, and a resource manager that manages the at least one resource. The apparatus according to any one of claims 9 to 11, configured to perform the step of outputting the information for allocating the at least one resource.

15. The aforementioned processor executes the instruction, From the mappings of the resource profile, determine the mapping associated with the current operating mode, From the determined mapping, determine the parameters for allocating at least one resource, To generate the instruction which includes the parameters for allocating at least one resource. The apparatus according to claim 14, configured to generate the aforementioned instructions.

16. The aforementioned processor executes the instruction, The steps include receiving a command from a user device via Over-the-Air (OTA) to update the resource profile, The steps include updating at least a portion of the resource profile based on the received command, and The apparatus according to any one of claims 9 to 11, further configured to perform the following:

17. A computer program that causes a processor to perform a method for allocating hardware resources in a vehicle, The aforementioned method, The step of receiving information associated with the current operating mode of the vehicle by the processor, wherein the current operating mode is one of a plurality of predetermined operating modes, The step of receiving a resource profile by the processor, wherein the resource profile includes a predefined mapping between a plurality of predetermined operating modes and parameters for allocating at least one resource. The processor outputs information for allocating the at least one resource to the relevant application based on the current operating mode and the resource profile. A computer program that includes [this].

18. The aforementioned plurality of predetermined operating modes are a plurality of main operating modes, The aforementioned resource profile is The aforementioned multiple main operating modes, A plurality of secondary operating modes, each of which is associated with at least one of the plurality of primary operating modes, The at least one application associated with at least one of the plurality of secondary operating modes, The parameter for allocating at least one resource and A computer program according to claim 17, including a mapping of

19. The computer program according to claim 18, wherein the plurality of primary operating modes include a driving mode and a parking mode, and the plurality of secondary operating modes include an advanced driver-assistance system (ADAS) mode, a shadow mode, a navigation mode, an entertainment mode, and a gaming mode.

20. The computer program according to any one of claims 17 to 19, wherein the at least one resource includes at least one of a central processing unit (CPU), a graphics processing unit (GPU), a neural processing unit (NPU), memory, storage, and network bandwidth.