Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
First Claim
1. A multi-channel fragment-accumulating flash-memory system comprising:
- a multi-channel controller processor coupled to receive host data and a host address;
a plurality of channels of flash memory coupled to the multi-channel controller processor;
a plurality of Aggregating Flash Blocks (AFBs), including an AFB in each channel of the flash memory, the AFB being a physical block of the flash memory assigned for aggregating data fragments;
a page buffer for each channel that accumulates a page of the host data before writing to the flash memory;
an AFB tracking table having entries for the plurality of AFBs, an entry storing a physical block number that locates the AFB within the flash memory, a data valid flag indicating when the AFB is storing valid data, and a stored logical address;
a multi-AFB manager that compares the host address to the stored logical address in entries in the AFB tracking table to locate a matching entry in the AFB tracking table, the multi-AFB manager assigning an assigned AFB pointed to by the physical block number of the matching entry;
a combining process executed by the multi-channel controller processor when a page boundary of the page buffer is reached, the matching entry in the AFB tracking table is found by the multi-AFB manager, and the page buffer is not full, the combining process copying the host data in the page buffer and a data fragment read from the assigned AFB to a target physical block in the flash memory,whereby the data fragment stored in the assigned AFB is combined with the host data in the page buffer when writing to the target physical block.
2 Assignments
0 Petitions
Accused Products
Abstract
A flash system has multiple channels of flash memory chips that can be accessed in parallel. Host data is assigned to one of the channels by a multi-channel controller processor and accumulated in a multi-channel page buffer. When a page boundary in the page buffer is reached, the page buffer is written to a target physical block if full, or combined with old data fragments in an Aggregating Flash Block (AFB) when the logical-sector addresses (LSA'"'"'s) match. Thus small fragments are aggregated using the AFB, reducing erases and wear of flash blocks. The page buffer is copied to the AFB when a STOP command occurs. Each channel has one or more AFB'"'"'s, which are tracked by an AFB tracking table.
-
Citations
21 Claims
-
1. A multi-channel fragment-accumulating flash-memory system comprising:
-
a multi-channel controller processor coupled to receive host data and a host address; a plurality of channels of flash memory coupled to the multi-channel controller processor; a plurality of Aggregating Flash Blocks (AFBs), including an AFB in each channel of the flash memory, the AFB being a physical block of the flash memory assigned for aggregating data fragments; a page buffer for each channel that accumulates a page of the host data before writing to the flash memory; an AFB tracking table having entries for the plurality of AFBs, an entry storing a physical block number that locates the AFB within the flash memory, a data valid flag indicating when the AFB is storing valid data, and a stored logical address; a multi-AFB manager that compares the host address to the stored logical address in entries in the AFB tracking table to locate a matching entry in the AFB tracking table, the multi-AFB manager assigning an assigned AFB pointed to by the physical block number of the matching entry; a combining process executed by the multi-channel controller processor when a page boundary of the page buffer is reached, the matching entry in the AFB tracking table is found by the multi-AFB manager, and the page buffer is not full, the combining process copying the host data in the page buffer and a data fragment read from the assigned AFB to a target physical block in the flash memory, whereby the data fragment stored in the assigned AFB is combined with the host data in the page buffer when writing to the target physical block. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method for reducing wear of flash memory by aggregating writes in an Aggregating Flash Block (AFB) comprising:
-
receiving a host-write request from a host; assigning the host-write request to an assigned channel of the flash memory; storing host data from the host in a page buffer for the assigned channel; comparing a host address from the host to a plurality of stored logical addresses for a plurality of Aggregating Flash Blocks (AFBs) in the flash memory to find a matching entry; when no matching entry is found and a page boundary is reached in the page buffer, copying host data in the page buffer to a target physical block in the flash memory; when the matching entry is found and a page boundary is reached in the page buffer, and the page buffer is full, copying host data in the page buffer to the target physical block in the flash memory; and when the matching entry is found and a page boundary is reached in the page buffer, and the page buffer is not full, copying host data in the page buffer to the target physical block in the flash memory and copying old data fragments in the AFB to the target physical block to combine host data with old data fragments to reduce data fragments, whereby host data is combined with old data fragments in the AFB to reduce wear due to additional data fragments. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A page-accumulating and block-aggregating flash system comprising:
-
a multi-channel controller coupled to receive host data and a host address; a plurality of channels of flash memory coupled to the multi-channel controller; a plurality of Aggregating Flash Blocks (AFBs), including an AFB in each channel of the flash memory, the AFB being a physical block of the flash memory assigned for aggregating old data fragments; a page buffer for each channel that accumulates a page of the host data before writing to the flash memory; an AFB tracking table that stores entries for each of the plurality of AFBs, the AFB tracking table having a plurality of stored logical addresses for old data fragments stored in the plurality of AFBs and a plurality of physical block numbers that locate the plurality of AFBs within the flash memory; compare means, reading the plurality of stored logical addresses from the AFB tracking table, for comparing the host address to the plurality of stored logical addresses to find a matching entry in the AFB tracking table; a non-combining buffer-flush process, activated when no matching entry is found and a page boundary is reached in the page buffer, and also activated when the matching entry is found and a page boundary is reached in the page buffer, and the page buffer is full, that copies host data in the page buffer to a target physical block in the flash memory; and a combining buffer-flush process, activated when the matching entry is found and a page boundary is reached in the page buffer, and the page buffer is not full, that copies host data in the page buffer to the target physical block in the flash memory and copies old data fragments in the AFB to the target physical block to combine host data with old data fragments to reduce old data fragments, whereby old data fragments are accumulated in the AFB and combined with accumulated host data when flushing the page buffer to the flash memory. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification