IP Library Granted Patent US 7,908,426
Granted Patent B2
US 7,908,426 · App. 12/243,538 · Granted Mar 15, 2011

Moving sectors within a block of information in a flash memory mass storage architecture

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,908,426
App. No.
12/243,538
Granted
Mar 15, 2011
Kind
B2
Abstract

A device is disclosed for storing mapping information for mapping a logical block address identifying a block being accessed by a host to a physical block address, identifying a free area of nonvolatile memory, the block being selectively erasable and having one or more sectors that may be individually moved. The mapping information including a virtual physical block address for identifying an “original” location, within the nonvolatile memory, wherein a block is stored and a moved virtual physical block address for identifying a “moved” location, within the nonvolatile memory, wherein one or more sectors of the stored block are moved. The mapping information further including status information for use of the “original” physical block address and the “moved” physical block address and for providing information regarding “moved” sectors within the block being accessed.

Claims (48)

1. A nonvolatile storage system comprising:

a host for sending commands;

a controller coupled to the host for receiving host commands; and

nonvolatile memory storage coupled to the controller and organized into erasable blocks where one or more erasable blocks includes a particular block to be identified by a particular group of logical block addresses corresponding to a predetermined group of sectors, and each block storing two or more sectors of data;

wherein the controller is configured to write updated one or more sectors of data into one or more new blocks caused to be identified by the particular group of logical block addresses in response to receiving a command from the host for writing the updated one or more sectors of data into a location within the nonvolatile memory storage, the location defined by one or more blocks having previously written sectors of data;

wherein the controller is configured to further write sectors of data without moving the previously written sectors of data every time sectors of data are updated in response to receiving additional commands from the host; and

wherein the controller is configured to move the previously written sectors of data in the particular block that are not updated at a time later than when the controller writes the updated one or more sectors of data to the one or more new blocks.

2. The nonvolatile storage system of claim 1 , wherein the controller is further configured to erase the particular block at a time later than when the previously written sectors of data in the particular block that are not updated are moved from the particular block.

3. The nonvolatile storage system of claim 1 , wherein the controller is further configured to write the updated one or more sectors of data to the one or more new blocks caused to be identified by the particular group of logical block addresses without moving the previously written sectors of data in the particular block that are not updated.

4. The nonvolatile storage system of claim 1 , wherein the controller receives the particular group of logical block addresses from the host.

5. The nonvolatile storage system of claim 1 , wherein the controller is further configured to translate the particular group of logical block addresses into a group of physical block addresses for identifying a location in the nonvolatile memory storage where the particular block is to be stored.

6. The nonvolatile storage system of claim 5 , wherein the controller is further configured to store the particular block in more than one physical-block-address-identified location within the nonvolatile memory storage.

7. A nonvolatile storage system comprising:

a host for sending commands;

a controller coupled to the host for receiving host commands; and

nonvolatile memory storage coupled to the controller and organized into erasable blocks where one or more erasable blocks includes a particular block to be identified by a particular group of logical block addresses corresponding to a predetermined group of sectors, and each block storing two or more sectors of data;

wherein the controller is configured to write updated one or more sectors of data into one or more new blocks caused to be identified by the particular group of logical block addresses in response to receiving a first command from the host for writing the updated one or more sectors of data into a location within the nonvolatile memory storage, the location defined by the particular block having previously written sectors of data;

wherein the controller is configured to rewrite a second sector of data, defined to be a sector of data within the particular block that is other than the updated one or more sectors of data, into the one or more new blocks identified by the particular group of logical block addresses without moving and copying the previously written sectors of data in the particular block that are not updated in response to receiving a second command from the host to rewrite the second sector of data;

wherein the controller is further configured to further write sectors of data without moving the previously written sectors of data every time sectors of data are updated in response to receiving additional commands from the host; and

wherein the controller is configured to move the previously written sectors of data that are not updated from the particular block after writing the updated one or more sectors of data to one or more new blocks.

8. The nonvolatile storage system of claim 7 , wherein the controller is further configured to erase the particular block after moving the previously written sectors of data that are not updated from the particular block.

9. The nonvolatile storage system of claim 7 , wherein the controller is configured to further write the updated one or more sectors of data to the one or more new blocks caused to be identified by the particular group of logical block addresses without moving the previously written sectors of data in the particular block that are not updated.

10. The nonvolatile storage system of claim 7 , wherein the controller receives the particular group of logical block addresses from the host.

11. The nonvolatile storage system of claim 7 , wherein the controller is further configured to translate the particular group of logical block addresses into a group of physical block addresses for identifying a location in the nonvolatile memory storage where the particular block is to be stored.

12. The nonvolatile storage system of claim 11 , wherein the controller is further configured to store the particular block in more than one physical-block-address-identified location within the nonvolatile memory storage.

13. A nonvolatile storage system comprising:

a host for sending commands;

a controller coupled to the host for receiving host commands; and

nonvolatile memory storage coupled to the controller and organized into erasable blocks where one or more erasable blocks includes a particular block to be identified by a particular group of logical block addresses corresponding to a predetermined group of sectors, and each block storing two or more sectors of data;

wherein the controller is configured to write updated one or more sectors of data into one or more new blocks caused to be identified by the particular group of logical block addresses in response to receiving a command from the host for writing the updated one or more sectors of data into a location within the nonvolatile memory storage, the location defined by one or more blocks having previously written sectors of data;

wherein the controller is configured to further write sectors of data without moving the previously written sectors of data every time sectors of data are updated in response to receiving additional commands from the host;

wherein the controller is configured to move the previously written sectors of data in the particular block that are not updated at a time later than when the controller writes the updated one or more sectors of data to the one or more new blocks;

wherein the controller is further configured to erase the particular block at a time later than when the previously written sectors of data in the particular block that are not updated are moved from the particular block; and

wherein the controller is further configured to write the updated one or more sectors of data to the one or more new blocks caused to be identified by the particular group of logical block addresses without moving the previously written sectors of data in the particular block that are not updated.

14. The nonvolatile storage system of claim 13 , wherein the controller receives the particular group of logical block addresses from the host.

15. The nonvolatile storage system of claim 13 , wherein the controller is further configured to translate the particular group of logical block addresses into a group of physical block addresses for identifying a location in the nonvolatile memory storage where the particular block is to be stored.

16. A nonvolatile storage system comprising:

a host for sending commands;

a controller coupled to the host for receiving host commands; and

nonvolatile memory storage coupled to the controller and organized into erasable blocks where one or more erasable blocks includes a particular block to be identified by a particular group of logical block addresses corresponding to a predetermined group of sectors, and each block storing two or more sectors of data;

wherein the controller is configured to write updated one or more sectors of data into one or more new blocks caused to be identified by the particular group of logical block addresses in response to receiving a first command from the host for writing the updated one or more sectors of data into a location within the nonvolatile memory storage, the location defined by the particular block having previously written sectors of data;

wherein the controller is configured to rewrite a second sector of data, defined to be a sector of data within the particular block that is other than the updated one or more sectors of data, into the one or more new blocks identified by the particular group of logical block addresses without moving and copying the previously written sectors of data in the particular block that are not updated in response to receiving a second command from the host to rewrite the second sector of data;

wherein the controller is configured to further write sectors of data without moving the previously written sectors of data every time sectors of data are updated in response to receiving additional commands from the host;

wherein the controller is configured to move the previously written sectors of data that are not updated from the particular block after writing the updated one or more sectors of data to one or more new blocks;

wherein the controller is further configured to erase the particular block after moving the previously written sectors of data that are not updated from the particular block; and

wherein the controller is configured to further write the updated one or more sectors of data to the one or more new blocks caused to be identified by the particular group of logical block addresses without moving the previously written sectors of data in the particular block that are not updated.

17. The nonvolatile storage system of claim 16 , wherein the controller receives the particular group of logical block addresses from the host.

18. The nonvolatile storage system of claim 16 , wherein the controller is further configured to translate the particular group of logical block addresses into a group of physical block addresses for identifying a location in the nonvolatile memory storage where the particular block is to be stored.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
MERGER Recorded Jun 11, 2013
From: LEXAR MEDIA, INC.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 030588/0368 →
MERGER Recorded Mar 25, 2011
From: LEXAR MEDIA, INC.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 026024/0131 →