Flash management system using only sequential write
First Claim
1. A system comprising:
- (a) a flash memory system comprising at least one flash device, said flash device featuring memory comprising a plurality of blocks, each block comprising a plurality of pages;
(b) a flash management system for managing page write requests from outside of said flash memory system and said flash management system regardless of an order in which said page write requests are received; and
(c) a module for converting said order of receiving said page write requests into a writing order, such that data in said page write requests alone with associated control data are written as physically sequential pages within each block, regardless of said order of receiving said page write requests, and such that, in fulfilling each said page write request, copying previously written pages to a new location is optional.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and method for managing flash devices that are limited to performing only sequential write operations. After a write request has been received, a physical portion of the flash device is located for writing the data, according to the location of a previously written physical portion which was the last such portion to be written in the same block, such that the physical portion is physically at a higher address within the block than the previously written physical portion. In other words, the write operation is performed in a place that does not violate the sequential write limitation, rather than being performed at a randomly chosen location. This portion is preferably a location in a block, such as a page for example, such that if a page is available for writing in the same block, the data is written to that page. Again, this page is preferably at a higher address than any previously written page in that block.
177 Citations
53 Claims
-
1. A system comprising:
-
(a) a flash memory system comprising at least one flash device, said flash device featuring memory comprising a plurality of blocks, each block comprising a plurality of pages;
(b) a flash management system for managing page write requests from outside of said flash memory system and said flash management system regardless of an order in which said page write requests are received; and
(c) a module for converting said order of receiving said page write requests into a writing order, such that data in said page write requests alone with associated control data are written as physically sequential pages within each block, regardless of said order of receiving said page write requests, and such that, in fulfilling each said page write request, copying previously written pages to a new location is optional. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for performing write operations to a flash device which allows only sequential write operations within a block, regardless of an order of receiving write requests for performing said write operations, the method comprising:
-
receiving a write request from outside the flash device to write data of a predetermined fixed length to a portion of the flash device, said portion containing a plurality of addresses;
locating an address in said portion to write said data from said write request and associated control data according to a previously written address within said portion, such that said address is physically sequential to said previously written address; and
writing said data from said write request and said control data to said portion. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51)
copying at least one physical page into a new physical location if necessary to free at least one physical block.
-
-
33. The method of claim 32, wherein said new physical location is in a newly allocated physical block or a most recently allocated block of said virtual block.
-
34. The method of claim 32, wherein said at least one physical page is copied when a new physical block is required and a number of free physical blocks is below some preset number.
-
35. The method of claim 32, wherein said at least one physical page is copied when a size of the group of physical blocks corresponding to a virtual block would become larger than a preset number if not compacted.
-
36. The method of claim 35, wherein said preset number is one, such that said group of physical blocks contains only one block, such that said virtual blocks map to said physical blocks according to one-la-one mapping.
-
37. The method of claim 25, wherein said virtual addresses are mapped to said physical addresses by mapping each virtual page into one or more physical pages.
-
38. The method of claim 37, wherein said plurality of write requests for a plurality of virtual addresses is received in a random order, and wherein data for said plurality of write requests is written sequentially by writing each newly written page into a next free physical page within at least a portion of said physical addresses, regardless of a virtual address to be written.
-
39. The method of claim 38, wherein said at least a portion of said physical addresses includes at least two non-contiguous physical addresses.
-
40. The method of claim 38, in which each physically written page is accompanied by a corresponding virtual page number.
-
41. The method of claim 40, wherein said virtual page number identifies most recently written data corresponding to a requested virtual page.
-
42. The method of claim 41, wherein if two physical pages have an identical virtual page number, said physical page corresponding to said requested virtual page is said physical page to which data has been most recently written.
-
43. The method of claim 38, wherein said at least a portion of said physical addresses does not have an available page for writing data from a write request, such that a new portion is allocated for being added to said portion, wherein said data is written to a first page of said new portion.
-
44. The method of claim 43, further comprising:
copying at least one physical page into a new physical location if necessary to free at least one physical page.
-
45. The method of claim 44, wherein said new physical location is in a newly allocated physical block or in a block already contained in said portion.
-
46. The method of claim 45, wherein said at least one physical page is copied when a new physical page is required and a number of free physical pages is below some preset number.
-
47. The method of claim 45, wherein said at least one physical page is copied when a size of said portion would become larger than a preset number if not compacted.
-
48. The method of claim 22, wherein data from at least one write request is written without copying previously written data in order to maintain a sequential order of said physical locations of written data.
-
49. The method of claim 22, wherein, in said writing of said data from said write request and said control data to said portion, copying previously written pages to a new location is optional.
-
51. The method of claim 22, wherein, in said writing of said data from said write request to said portion, no previously written pages are copied to a new location.
-
50. A system comprising:
-
(a) a flash memory system comprising at least one flash device, said flash device featuring memory comprising a plurality of blocks, each block comprising a plurality of pages;
(b) a flash management system for managing page write requests from outside of said flash memory system and said flash management system regardless of an order in which said page write requests are received; and
(c) a module for converting said order of receiving said page write requests into a writing order, such that data in said page write requests along with associated control data are written as physically sequential pages within each block, regardless of said order of receiving said page write requests, and such that, in fulfilling each said page write request, previously written pages of a block are copied to a new location only if said block, in which said previously written pages are written, and in which said data in said each page write request would otherwise be written, lacks a page available for writing.
-
-
52. A method for performing write operations to a flash device which allows only sequential write operations within a block, regardless of an order of receiving write requests for performing said write operations, the method comprising:
-
receiving a write request from outside the flash device to write data of a predetermined fixed length to a portion of the flash device, said portion containing a plurality of addresses;
seeking an address in said portion to write said data from said write request and associated control data according to a previously written address within said portion, such that said address is physically sequential to said previously written address; and
if said address is found;
writing said data from said write request and said control data to said portion;
otherwise;
writing said data from said write request and said control data to a different portion of the flash device.- View Dependent Claims (53)
-
Specification