Embedded Boot Logging in Flash Without Repeated Erase Cycles
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing boot loaders in embedded systems have limited ability to persistently log boot and abnormal operation data due to the limited endurance of flash memory, necessitating a method to efficiently append logs while minimizing erasures.
Innovation Solution
A method and system that partitions non-volatile memory into startup and abnormal operation log partitions, using a boot loader to store records with defined headers and employing binary search to locate free blocks for logging, avoiding duplicate entries and minimizing erasures by updating record states rather than erasing sectors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If flash memory is used to store boot logs, then persistent logging capability is achieved, but flash memory endurance is reduced due to repeated erasures
Solution Approach 1:
The flash memory is segmented into multiple log pages (first log page, second log page, etc.), each with dedicated status bits (first log page status bit, second log page status bit). This segmentation allows the system to rotate through multiple pages, writing logs to one page while another page is being read or is available for overwriting, thereby reducing the frequency of erasures on any single page and extending overall flash memory endurance.
Solution Approach 2:
The system recycles log pages by detecting when a page has been fully read or is no longer needed (using status bits to track read completion) and making it available for new log entries. This discarding and recovering mechanism ensures continuous logging capability without requiring constant erasure of active log pages, thus preserving flash memory lifespan.
2Reliability
If entire flash sectors are erased to write log data, then data integrity is ensured, but device life is reduced
Solution Approach 1:
Instead of erasing entire flash sectors, the system performs localized updates only on specific bytes or words within a sector where log data needs to be written. The status bits and page management mechanism enable precise tracking of which portions of flash memory contain valid log data, allowing the system to modify only the necessary local regions while leaving the rest of the sector intact, thereby minimizing erasure operations and extending device life.
3Extent of automation
If boot logs are stored in non-volatile memory, then logging during boot process is enabled, but memory management complexity increases
Solution Approach 1:
The boot loader implements self-service memory management by automatically tracking the state of log pages through status bits, detecting when pages are ready for writing, managing the rotation between pages, and handling the erasure and recovery processes. This self-service approach enables automated logging during boot without requiring complex external memory management systems or file system dependencies.
Data Source
AI summary
A system for efficient boot logging in embedded systems that records boot event logs and failure operation logs in flash storage and optimizing write operations for longevity. Defined regions in flash reserve space for data blocks organized into fixed sizes. Logs are appended by locating free blocks without erase operations. A state machine limits logging duplicate failure events. The system comprises a boot loader, flash memory, and logic to manipulate data regions. The method manages defined flash regions, locates free blocks, writes record headers and log payloads, and updates record states when logging repetitive failures. Binary search algorithms efficiently find last written blocks. Embodiments can be used for embedded systems that use boot loaders to initialize system hardware and load operating systems.


