Flash Memory Counter Logging to Avoid Frequent Page Erasure
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for storing counter values in non-volatile memory, such as flash or EEPROM, face inefficiencies due to the need for frequent page erasures, which are time-consuming and incompatible with the granular programming required by counters, especially in applications with limited write time like NFC technology.
Innovation Solution
The method involves initializing multiple pages in a non-volatile memory with an initial erase value, storing the counter's initial value and subsequent operations in one page, and transferring the final value to the next page when full, allowing for efficient increment and decrement operations without frequent page erasures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional EEPROM methods are used to store counter values, then the counter can be updated, but frequent page erasures are required which are time-consuming and incompatible with limited write time applications
Solution Approach 1:
The patent segments the counter storage into multiple pages (first page and second page) with different functions. The first page stores the current counter value and can be updated without erasure, while the second page stores historical operation logs. This segmentation allows incremental updates to the counter value without requiring full page erasure, thus resolving the contradiction between update speed and erasure time.
Solution Approach 2:
The patent performs preliminary actions by pre-allocating multiple pages and establishing a logging mechanism before counter operations begin. The operation log page is prepared in advance to capture write operations, allowing the counter to be updated by simply logging the operation rather than performing immediate erasure and reprogramming, thereby eliminating time-consuming erasure operations during actual counter updates.
2Reliability
If flash memory is used to store counter values, then non-volatile storage is achieved, but the granular programming required by counters conflicts with the page-based erasure structure
Solution Approach 1:
The patent divides the flash memory into functionally distinct segments: a data page for storing the current counter value and an operation log page for storing historical operations. This segmentation allows the system to exploit flash memory's non-volatile特性 while managing page operations more efficiently by treating different pages with different update strategies, thus reducing the complexity conflict between granular counter updates and page-based erasure.
Solution Approach 2:
The operation log page serves as an intermediary between the counter update operations and the actual flash memory storage. Instead of directly updating the counter value in flash memory (which would require page erasure), the system logs the operation in the operation log page first. This intermediary mechanism allows granular counter updates to be recorded without triggering immediate page erasure, simplifying the management of flash memory's page structure.
3Adaptability or versatility
If multiple pages are used to store counter operations, then the counter can be incremented and decremented, but the number of erasure operations increases
Solution Approach 1:
The patent implements dynamic page management where the role of pages can switch. The first page and second page can be swapped, with one serving as the active data page and the other as the operation log page. This dynamic allocation allows the system to support bidirectional counter operations (increment and decrement) across multiple pages without increasing the total number of erasure operations, as pages are reused rather than continuously created and erased.
Data Source
Figure 1~3
Figure 4
AI summary
The invention relates to a method for storing a counter in at least two pages of non-volatile memory (3), comprising: a step of initializing (41) the at least two pages with an initial erase value, a step (43) storage in a portion of one of the two pages of an initial value of the counter; then on each update of the value of the counter, a step of storing (45), in said one of the two pages, an operating code (OPi) and an operand (V1) associated with this operating code chosen from a set of operation codes, the current value of the counter being given by applying successive updating operations to the initial value of the counter stored in said one of the two pages, these operations being designated by the operation codes and the associated stored operands in said page.