IP Library Granted Patent US 7,536,500
Granted Patent B2
US 7,536,500 · App. 11/540,718 · Granted May 19, 2009

Header blocks for flash memory writes

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,536,500
App. No.
11/540,718
Granted
May 19, 2009
Kind
B2
Abstract

Embodiments of header management for a file system of flash memory are presented herein. In one or more implementations, a data write is performed using a header block to cache a plurality of headers associated with data which is written to a data block of the flash memory. The headers are then compacted from the header block to the data block.

Claims (40)

1. An apparatus comprising:

a file system to define a plurality of sectors of a flash memory; and

a module wherein the module:

designates a block of sectors of the flash memory as a data block, the data block stores a plurality of data fragments of a data file;

designates a block of sectors of the flash memory as a header block, the header block caches a plurality of headers, each header associated with a respective one of the plurality of data fragments written to the plurality of sectors of the data block;

writes each header to the header block, each header comprising attributes of the respective data fragment, wherein the attributes comprise:

fragment sequence data; and

an indication of the data file that is to include the respective data fragment; and

writes the plurality of data fragments to the data block.

2. The apparatus as recited in claim 1 , wherein the module is to compact the plurality of headers from the header block into a single section of the data block, such that the plurality of data fragments and the plurality of headers are stored in the data block in the flash memory.

3. The apparatus as recited in claim 2 , wherein the plurality of headers is to be compacted to the data block via a single write.

4. The apparatus as recited in claim 1 , wherein the module is to reserve a single sector in the data block during the write of the plurality of data fragments such that the plurality of headers cached in the header block are transferable to the reserved single sector of the data block.

5. The apparatus as recited in claim 1 , wherein the module is to:

compact the plurality of headers cached in the header block into the data block; and

perform a reclaim of the header block to prepare the header block to use in another data write.

6. The apparatus as recited in claim 1 , wherein the module is to write the plurality of headers cached in the header block into sectors of the data block without use of bit twiddling.

7. The apparatus as recited in claim 1 , wherein the module is to write the plurality of headers cached in the header block into sectors of the data block without performance of a reclaim operation of the data block.

8. The apparatus as recited in claim 1 , wherein each sector of the data block is configured for a single write before a reclaim of the data block.

9. The apparatus as in claim 1 , wherein the file system and module are incorporated with the flash memory.

10. The apparatus as in claim 1 , wherein the flash memory is NOR flash memory.

11. The apparatus as recited in claim 1 further comprising:

the flash memory; and

an input/output (I/O) device communicatively coupled to the flash memory to input/output data stored via the flash memory.

12. The apparatus as recited in claim 11 , wherein the input/output (I/O) device is a cursor control device.

13. A method comprising:

allocating a data block and a header block in a file system of a flash memory to perform a write of file data into the flash memory;

caching a plurality of headers associated with the file data utilizing the header block, each header comprising attributes of a respective file data fragment, wherein the attributes comprise:

fragment sequence data; and

an indication of a data file, which corresponds to the file data, that is to include a the respective file data fragment; and

compacting the headers from the header block into the data block.

14. A method as recited in claim 13 further comprising reclaiming the header block after the headers have been compacted to the data block.

15. A method as recited in claim 13 , wherein: the data block comprises a plurality of sectors; and

the compacting comprises forming the plurality of headers cached in the header block into one or more portions and writing the one or more portions into one or more sectors of the data block.

16. A method as recited in claim 13 , wherein the caching of the plurality of headers in the header block is performed without bit twiddling.

17. A method as recited in claim 13 further comprising writing the file data to the data block as a plurality of data fragments wherein:

each of the plurality of headers corresponds to a respective one of the plurality of fragments;

the header block and data block each comprise a plurality of sectors; and

for each of the plurality of data file fragments:

a fragment is written to a single sector of the data block; and

a corresponding header is cached in a single sector of the header block.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2023
From: INTEL CORPORATION
To: INTEL NDTM US LLC
Reel/Frame 064928/0832 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2008
From: WANG, HONGYU (JEFFREY)
To: INTEL CORPORATION
Reel/Frame 021125/0378 →