Solid state drive power safe wear-leveling
First Claim
1. A solid state drive comprising:
- a first flash memory device logically divided into a first plurality of blocks, each of the first plurality of blocks being logically divided into addressable pages;
a second flash memory device logically divided into a second plurality of blocks, each of the second plurality of blocks being logically divided into addressable pages;
a memory controller coupled to the first flash memory device and the second flash memory device, the memory controller configured to logically associate a first block of the first plurality of blocks with a second block of the second plurality of blocks to form a first zip code, the first zip code associated with a first erase counter, and configured to logically associate a first source block of the first plurality of blocks with a second source block of the second plurality of blocks to form a second zip code, the second zip code associated with a second erase counter;
a processor coupled to the memory controller and operable to execute instructions; and
a computer-readable memory having instructions stored thereon that are executable by the processor in order to cause the processor to perform a wear-leveling operation, by;
determining that the first block and the second block in the first zip code have been erased;
based at least in part on the determination, incrementing the first erase counter associated with the first zip code;
after incrementing the first erase counter, determining that the second erase counter associated with the second zip code is low relative to at least one other erase counter; and
based at least in part on determining that the second erase counter is low, writing data from the first source block and the second source block in the second zip code to a first target block of the first plurality of blocks and a second target block of the second plurality of blocks as part of the wear-leveling operation.
8 Assignments
0 Petitions
Accused Products
Abstract
A solid state drive includes a plurality of flash memory devices, and a memory controller coupled to the plurality of flash memory devices. The memory controller is configured to logically associate blocks from the plurality of flash memory devices to form zip codes, the zip codes associated with corresponding erase counters. The solid state drive further includes a processor and a computer-readable memory having instructions stored thereon. The processor may perform a wear-leveling operation by determining that blocks in a first zip code have been erased and incrementing a first erase counter associated with the first zip code. It may then be determined that a second erase counter associated with a second zip code is low relative to at least one other erase counter, and based on this determination, data from blocks in the second zip code may be written to new blocks as part of a wear-leveling operation.
-
Citations
34 Claims
-
1. A solid state drive comprising:
-
a first flash memory device logically divided into a first plurality of blocks, each of the first plurality of blocks being logically divided into addressable pages; a second flash memory device logically divided into a second plurality of blocks, each of the second plurality of blocks being logically divided into addressable pages; a memory controller coupled to the first flash memory device and the second flash memory device, the memory controller configured to logically associate a first block of the first plurality of blocks with a second block of the second plurality of blocks to form a first zip code, the first zip code associated with a first erase counter, and configured to logically associate a first source block of the first plurality of blocks with a second source block of the second plurality of blocks to form a second zip code, the second zip code associated with a second erase counter; a processor coupled to the memory controller and operable to execute instructions; and a computer-readable memory having instructions stored thereon that are executable by the processor in order to cause the processor to perform a wear-leveling operation, by; determining that the first block and the second block in the first zip code have been erased; based at least in part on the determination, incrementing the first erase counter associated with the first zip code; after incrementing the first erase counter, determining that the second erase counter associated with the second zip code is low relative to at least one other erase counter; and based at least in part on determining that the second erase counter is low, writing data from the first source block and the second source block in the second zip code to a first target block of the first plurality of blocks and a second target block of the second plurality of blocks as part of the wear-leveling operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A solid state drive comprising:
-
a flash memory device logically divided into a plurality of blocks, each of the plurality of blocks being logically divided into addressable pages; a memory controller coupled to the flash memory device; a processor coupled to the memory controller and operable to execute instructions; and a computer-readable memory having instructions stored thereon that are executable by the processor in order to cause the processor to perform a wear-leveling operation, by; determining that an erase counter associated with a source block of the plurality of blocks is low relative to at least one other erase counter; based at least in part on the determination, writing a header to the flash memory device, the header including information indicative of the source block and a target block of the plurality of blocks; based at least in part on the determination, writing data from the source block to the target block as part of the wear-leveling operation; suspending the wear-leveling operation; and based at least in part on suspending the wear-leveling operation, writing a footer to the flash memory device, the footer including information indicative of progress made on the wear-leveling operation prior to the suspension. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method of operating a solid state drive having a first flash memory device logically divided into a first plurality of blocks, each of the first plurality of blocks being logically divided into addressable pages, a second flash memory device logically divided into a second plurality of blocks, each of the second plurality of blocks being logically divided into addressable pages, and a memory controller coupled to the first flash memory device and to the second flash memory device, the method comprising:
-
logically associating a first block of the first plurality of blocks with a second block of the second plurality of blocks to form a first zip code, the first zip code associated with a first erase counter; logically associating a first source block of the first plurality of blocks with a second source block of the second plurality of blocks to form a second zip code, the second zip code associated with a second erase counter; determining that the first block and the second block in the first zip code have been erased; based at least in part on the determination, incrementing the first erase counter associated with the first zip code; after incrementing the first erase counter, determining that the second erase counter associated with the second zip code is low relative to at least one other erase counter; and based at least in part on determining that the second erase counter is low, writing data from the first source block and the second source block in the second zip code to a first target block of the first plurality of blocks and a second target block of the second plurality of blocks as part of a wear-leveling operation. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method of operating a solid state drive having a flash memory device logically divided into a plurality of blocks, each of the plurality of blocks being logically divided into addressable pages, and a memory controller coupled to the flash memory device, the method comprising:
-
determining that an erase counter associated with a source block of the plurality of blocks is low relative to at least one other erase counter; based at least in part on the determination, writing a header to the flash memory device, the header including information indicative of the source block and a target block of the plurality of blocks; based at least in part on the determination, writing data from the source block to the target block as part of a wear-leveling operation; suspending the wear-leveling operation; and based at least in part on suspending the wear-leveling operation, writing a footer to the flash memory device, the footer including information indicative of progress made on the wear-leveling operation prior to the suspension. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
Specification