Shared Code Storage for Faster ECU Overlay Loading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The challenge in autonomous vehicles with central and zone-based architectures is the significant impact of code loading time from nonvolatile memory devices on performance during runtime, particularly with software updates and function additions for zonal ECUs.
Innovation Solution
A shared storage device with a nonvolatile memory and storage controller that loads code segments into a buffer memory based on characteristic information, and a system memory device that receives and outputs these segments to ECUs for rapid execution, optimizing code loading and execution efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If code is loaded directly from nonvolatile memory device to ECU, then storage capacity is sufficient, but code loading time is excessive and affects runtime performance
Solution Approach 1:
The patent divides the entire code into multiple code segments and stores them in the nonvolatile memory device. Instead of loading the entire code at once, only the required code segments are loaded into the buffer memory and then to the ECU, significantly reducing code loading time and improving runtime performance.
Solution Approach 2:
The patent pre-loads code segments into the buffer memory during system initialization or idle periods, so that when the ECU needs to execute specific functions, the required code segments are already available in the buffer memory, eliminating wait time and improving runtime performance.
2Speed
If all code segments are loaded into buffer memory, then code execution speed improves, but memory resource consumption increases
Solution Approach 1:
The patent segments the code and loads only the necessary segments into the buffer memory based on the ECU's current execution needs. This selective loading approach maintains fast code execution speed while minimizing buffer memory usage, as only relevant code segments occupy memory resources at any given time.
Solution Approach 2:
The patent loads partial code segments into the buffer memory rather than the entire code base. This partial loading strategy provides sufficient code execution speed for current operations while avoiding the excessive memory consumption that would result from loading all code segments simultaneously.
3Productivity
If code segments are managed without characteristic information, then storage structure is simple, but code segment identification and retrieval efficiency decreases
Solution Approach 1:
The patent introduces a segment table as an intermediary data structure that stores characteristic information about each code segment (such as segment identifiers, addresses, and metadata). This segment table acts as an index that enables efficient identification and retrieval of code segments without requiring complex search algorithms, thus improving retrieval efficiency while adding only moderate structural complexity.
Data Source
Figure 1
Figure 2
Figure 3~4
AI summary
An automotive device includes an electronic control unit (ECU), a shared storage device, and a system memory device. The ECU sends a code request. The shared storage device includes a nonvolatile memory device that stores code segments forming an entire code corresponding to the code request, and a storage controller that loads one or more code segments of the stored code segments from the nonvolatile memory device into a buffer memory based on characteristic information of each code segment. The system memory device receives the one or more code segments from the buffer memory and stores the one or more code segments, and outputs the one or more code segments to the ECU. The ECU receives the one or more code segments from the system memory device and overlays the one or more code segments onto an executable code set and executes a function based on the executable code set.