Moving sectors within a block of information in a flash memory mass storage architecture
First Claim
1. A nonvolatile storage system comprising:
- a controller capable of receiving commands from a host; and
a nonvolatile memory storage coupled to said controller, said nonvolatile memory storage organized into blocks, a first block identified by a first group of logical block addresses corresponding to a predetermined group of sectors, each sector for including a sector of data and each block storing two or more sectors of data,wherein said controller, in response to receiving a command from said host to rewrite one or more sectors of data that are stored in said first block, writes said one or more sectors of data to one or more new blocks caused to be identified by said first group of logical block addresses.
7 Assignments
Litigations
0 Petitions
Accused Products
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.
-
Citations
16 Claims
-
1. A nonvolatile storage system comprising:
-
a controller capable of receiving commands from a host; and a nonvolatile memory storage coupled to said controller, said nonvolatile memory storage organized into blocks, a first block identified by a first group of logical block addresses corresponding to a predetermined group of sectors, each sector for including a sector of data and each block storing two or more sectors of data, wherein said controller, in response to receiving a command from said host to rewrite one or more sectors of data that are stored in said first block, writes said one or more sectors of data to one or more new blocks caused to be identified by said first group of logical block addresses.
-
-
2. A nonvolatile storage system comprising:
-
a host for sending commands; a controller coupled to said host for receiving host commands; and a nonvolatile memory storage, coupled to said controller, for storing sectors of data into sectors, said nonvolatile memory storage organized into blocks, a first block identified by a first group of logical block addresses corresponding to a predetermined group of sectors, and each block storing two or more sectors of data, wherein said controller receives a command from said host for writing updated one or more sectors of data into a location within the nonvolatile memory storage, said location defined by one or more blocks having previously-written sectors of data, and wherein said controller writes said updated one or more sectors of data into one or more new blocks caused to be identified by said first group of logical block addresses. - View Dependent Claims (3, 4, 5)
-
-
6. A nonvolatile storage system comprising:
-
a host for sending commands; a controller coupled to said host for receiving host commands; and a nonvolatile memory storage coupled to said controller for storing a sector of data, said nonvolatile memory storage organized into blocks, each block having two or more sectors for storing sectors of data, a first block identified by a first group of logical block addresses corresponding to a predetermined group of sectors, wherein said controller receives a command from said host for writing updated one or more, but not all, sectors of data into a location within the nonvolatile memory storage, said location defined by one or more blocks having previously-written sectors of data, and wherein said controller writes said updated one or more sectors of data into one or more new blocks caused to be identified by said first group of logical block addresses. - View Dependent Claims (7, 8, 9)
-
-
10. A method of updating information in a nonvolatile memory storage having a controller coupled to a host and the nonvolatile memory storage comprising:
-
receiving a command from the host for updating one or more sectors of data into a location within the nonvolatile memory storage, said location defined by a particular block having previously-written one or more sectors of data, said particular block caused to be identified by a first group of logical block addresses, corresponding to a predetermined group of sectors, and including two or more sectors of data, each sector for storing a sector of data; selecting one or more new blocks within the nonvolatile storage; and writing said updated one or more sectors of data to one or more new blocks caused to be identified by said first group of logical block addresses without moving and without copying the previously-written sectors of data in the particular block that are not updated. - View Dependent Claims (11, 12, 13)
-
-
14. A nonvolatile storage system comprising:
-
a controller capable of receiving commands from a host; and a nonvolatile memory storage, coupled to said controller, said nonvolatile memory storage organized into blocks, each block having two or more sectors, each sector for storing a sector of data, wherein said controller, in response to receiving a first write command from the host to rewrite a first sector of data stored in a particular block, said particular block identified by a first group of logical block addresses corresponding to a predetermined group of sectors, and including two or more sectors, writes said first sector of data to one or more new blocks, said one or more new blocks caused to be identified by said first group of logical block addresses, without moving and without copying sectors of data previously-stored in the sectors of the particular block and not specified by the host in the command to be rewritten, said controller, in response to receiving a second write command from the host to rewrite a second sector of data defined by a sector of data within the particular block that is other than the first sector of data, rewrites the second sector of data into the one or more new blocks without moving the first sector of data thereby preventing moving a sector of data every time a write command is received from the host.
-
-
15. A nonvolatile storage system comprising:
-
a controller coupled to a host for receiving host commands; and nonvolatile memory storage coupled to said controller and organized into blocks having one or more sectors for storing sectors of data, a first block identified by a first group of logical block addresses corresponding to a predetermined group of sectors having stored therein previously-written sectors of data, said controller receiving a host command for writing updated one or more, but not all, sectors of data associated with said first block into a location within the nonvolatile memory storage, said controller writing said updated one or more sectors of data to one or more new blocks caused to be identified by said first group of logical block addresses and upon receiving a subsequent command to write subsequent sectors of data associated with said first block but that are other than the updated one or more sectors of data, the controller writing said subsequent sectors of data to one or more new blocks and only moving at a later time the previously-written sectors of data in the first block if the previously-written sectors of data are not updated.
-
-
16. A nonvolatile storage system comprising:
-
a controller coupled to a host for receiving host commands; and nonvolatile memory storage coupled to said controller and organized into blocks having sectors of data, a first block identified by a first group of logical block addresses corresponding to a predetermined group of sectors having stored therein previously-written data, said controller receiving a host command for writing updated one or more, but not all, data associated with said first block into a location within the nonvolatile memory storage, said controller writing said updated one or more data to one or more new blocks caused to be identified by said first group of logical block addresses and upon receiving a subsequent command to write subsequent sectors of data associated with said first block but that are other than the updated one or more data, the controller writing said subsequent data to one or more new blocks and only moving at a later time the previously-written data in the first block if the previously-written data are not updated.
-
Specification