Portable electronic device having a log-structured file system in flash memory
First Claim
1. A portable electronic device, including:
- a flash memory store comprising a plurality of erase blocks;
a log-structured file system for storing a plurality of logs of contiguous data records in the flash memory store, for reading data from the flash memory store using a plurality of memory mapped pointers that point to the individual data records, and for cleaning inactive records from the flash memory store in order to make room for additional data, wherein at least one of the logs of contiguous data records stores records that change frequently, and at least one other log stores data records that change infrequently, and wherein the log-structured file system is configured to determine whether a current erase block into which a data record is to be stored includes available space to store the data record, and to clean inactive records from a next erase block adjacent to the current erase block in the flash memory store where the current erase block does not include available space to store the data record;
wherein the log-structured file system further includes a plurality of pointers for managing the storing of data to the flash memory store and the cleaning of inactive records from the flash memory store;
wherein the plurality of pointers includes a log point indicating a position in the current erase block at which the data record is to be stored, and an erase point indicating a beginning of the next erase block; and
wherein the log-structured file system is further configured to determine an amount of available space in the current erase block by comparing the erase point and the log point.
2 Assignments
0 Petitions
Accused Products
Abstract
A portable electronic device includes a log-structured file system implemented in flash memory, The log-structured file system includes a write function for storing contiguous data records to the flash memory in the form of at least one data log, although the system may write data records to the flash memory using a plurality of data logs. The log-structured file system also includes a read function for retrieving data records from the one or more logs using a plurality of memory mapped pointers, which may be stored in an associated RAM index, or which may be implemented as an index stored in the flash memory. A clean-log function is also provided for eliminating inactive records from the log so that new data can be appended to the end of the log. The various functions associated with the log-structured file system are implemented as at least three software modules, a read module, a write module and a clean-log module, although other configurations are possible. The portable electronic device may include a two-way RF transceiver for sending and receiving data from the device, and may also include a plurality of application programs that are configured to interact with the log-structured file system, as well as other software modules for controlling the operation of the portable electronic device.
-
Citations
12 Claims
-
1. A portable electronic device, including:
-
a flash memory store comprising a plurality of erase blocks;
a log-structured file system for storing a plurality of logs of contiguous data records in the flash memory store, for reading data from the flash memory store using a plurality of memory mapped pointers that point to the individual data records, and for cleaning inactive records from the flash memory store in order to make room for additional data, wherein at least one of the logs of contiguous data records stores records that change frequently, and at least one other log stores data records that change infrequently, and wherein the log-structured file system is configured to determine whether a current erase block into which a data record is to be stored includes available space to store the data record, and to clean inactive records from a next erase block adjacent to the current erase block in the flash memory store where the current erase block does not include available space to store the data record;
wherein the log-structured file system further includes a plurality of pointers for managing the storing of data to the flash memory store and the cleaning of inactive records from the flash memory store;
wherein the plurality of pointers includes a log point indicating a position in the current erase block at which the data record is to be stored, and an erase point indicating a beginning of the next erase block; and
wherein the log-structured file system is further configured to determine an amount of available space in the current erase block by comparing the erase point and the log point. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of managing a log-structured file system in a flash memory comprising a plurality of erase blocks, the log-structured file system storing a plurality of logs of contiguous records in the flash memory store, the method comprising the steps of:
-
receiving a data record to be written into a current erase block in the flash memory store;
determining whether the current erase block includes available space to write the data record; and
cleaning inactive records from a next erase block adjacent to the current erase block in the flash memory store where the current erase block does not include available space to write the data record;
wherein the log-structured file system further comprises a plurality of pointers, the plurality of pointers including a log point indicating a position in the current erase block at which the data record is to be written, and an erase point indicating a beginning of the next erase block, and wherein the step of determining whether the current erase block includes available space to write the data record comprises the step of determining an amount of available space between the erase point and the log point. - View Dependent Claims (8, 9, 10, 11, 12)
determining whether the next erase block includes active records; and
cleaning inactive records in the next erase block where the next erase block includes no active records.
-
Specification