Microcontroller Flash Memory Segmentation for Storage Expansion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microcontrollers in vehicle electronics face memory constraints due to limited FLASH ROM with EEPROM emulation, leading to increased costs and efforts when software updates or firmware changes require more storage space, often necessitating hardware upgrades or replacements.

Innovation Solution

Implementing a method that optimizes memory utilization by separating executable code into faster RAM and non-executable data into slower flash memory with EEPROM emulation, allowing for increased available storage capacity without the need for hardware changes, and using additional inexpensive memory for non-executable parts if needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If FLASH ROM with EEPROM emulation is used to reduce costs, then microcontroller cost is reduced, but available storage capacity for program code is limited

Engineering Contradiction:
Improveavailable storage capacityVSAvoidmemory management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The program code is divided into two segments: executable code stored in FLASH ROM and non-executable data stored in the EEPROM emulation area. This segmentation allows the limited FLASH ROM to be used efficiently for code execution while the larger EEPROM emulation area stores data, effectively increasing the total available storage capacity without requiring a larger FLASH ROM chip.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The FLASH ROM chip is made multi-functional by using it not only for storing executable program code but also, through EEPROM emulation, for storing non-executable data. This universal usage of the same hardware resource increases the overall storage capacity available to the application without adding additional memory chips.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If program code size increases within product cycle, then software functionality is improved, but available memory becomes insufficient

Engineering Contradiction:
Improvesoftware update capabilityVSAvoidavailable storage capacity
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system dynamically adapts to increasing software requirements by allowing the program code to grow into the EEPROM emulation area when needed. This dynamic memory allocation enables software updates and functionality improvements within the product cycle without being constrained by the original FLASH ROM size, as the system can utilize the EEPROM emulation area for additional code or data storage.

Inventive Principle:
Principle #15Dynamics

3Quantity of substance

If larger derivative microcontroller is installed to accommodate more code, then storage capacity is increased, but cost increases

Engineering Contradiction:
Improvestorage capacityVSAvoidmanufacturing cost
Core Design Contradiction:
Quantity of substanceVSEase of manufacture

Solution Approach 1:

The effective storage capacity parameter is changed by enabling EEPROM emulation functionality in the FLASH ROM chip. This parameter change allows the same physical hardware to provide increased storage capacity through software-based memory management, eliminating the need to upgrade to a more expensive microcontroller with larger built-in FLASH ROM while maintaining the required storage capacity for expanded software functionality.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3108360B1Increasing the available flash memory of a micro-controller
Publication Date: 2020.01.08 BAYERISCHE MOTOREN WERKE AG
  • EP3108360B1 patent drawingFigure 1
  • EP3108360B1 patent drawingFigure 2
  • EP3108360B1 patent drawingFigure 3

AI summary

The invention relates to a method for making optimum use of flash memories in a micro-controller having an electrically erasable programmable read-only memory emulation, said method comprising the step of dividing (400) information (100) to be deposited in a computer memory into a first piece of information (110) having executable code, and a second piece of information (120) having non-executable code. If a free storage capacity of a first memory (210) is sufficiently large to receive the first piece of information (110), the method comprises the step of depositing (31001) the first piece of information (110) in the first memory (210). If a free storage capacity of a second memory (220) is sufficiently large to receive the second piece of information (120), the method comprises the step of depositing (32002) the second piece of information (120) in the second memory (220). Or, if the free storage capacity of the second memory (220) is not sufficiently large to receive the second piece of information (120), the method comprises the steps of: switching off (420) an electrically erasable programmable read-only memory emulation of the second memory (220); freeing up (421) the storage capacity that is no longer required due to the switching off (420) of the electrically erasable programmable read-only memory emulation of the second memory (220), thereby increasing the free storage capacity of the second memory (220); and depositing (32002) the second piece of information (120) in the second memory (220). In this way, the first memory (210) permits quicker access to the information stored therein than the second memory (220).