Method And System For Storage Address Re-Mapping For A Memory Device
First Claim
1. A method of transferring data between a host system and a re-programmable non-volatile mass storage system, the method comprising:
- receiving data associated with host logical block address (LBA) addresses at the mass storage system from the host system;
allocating a block of contiguous storage LBA addresses for addressing the data associated with the host LBA addresses, the block of contiguous storage LBA addresses addressing only unwritten capacity upon allocation; and
re-mapping each of the host LBA addresses for the received data to the block of contiguous storage LBA addresses, wherein each storage LBA address is sequentially assigned in a contiguous manner to the received data in an order the received data is received regardless of the host LBA address.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for storage address re-mapping is disclosed. The method includes allocating logical addresses in blocks of clusters and re-mapping logical addresses into storage address space, where short runs of data dispersed in logical address space are mapped in a contiguous manner into blocks in storage address space. Valid data is flushed from blocks having both valid and obsolete data to make new blocks available for receiving data when an available number of new blocks falls below a desired threshold. The system includes a host file system, processor executable instructions residing on a host separately from the host file system or residing on a flash memory device such as an embedded solid state disk, or a backend memory manager of the flash memory device that is configured to map data from a logical address space to complete blocks in storage address space in a contiguous manner.
-
Citations
31 Claims
-
1. A method of transferring data between a host system and a re-programmable non-volatile mass storage system, the method comprising:
-
receiving data associated with host logical block address (LBA) addresses at the mass storage system from the host system; allocating a block of contiguous storage LBA addresses for addressing the data associated with the host LBA addresses, the block of contiguous storage LBA addresses addressing only unwritten capacity upon allocation; and re-mapping each of the host LBA addresses for the received data to the block of contiguous storage LBA addresses, wherein each storage LBA address is sequentially assigned in a contiguous manner to the received data in an order the received data is received regardless of the host LBA address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of transferring data between a host system and a re-programmable non-volatile mass storage system, the method comprising:
-
receiving data associated with host logical block address (LBA) addresses at the mass storage system from the host system; re-mapping the received host LBA addresses in an order received to a block of contiguous storage LBA addresses; allocating an additional block of contiguous storage LBA addresses, the additional block addressing only unwritten capacity upon allocation, and contiguously re-mapping remaining received host LBA addresses to the additional block only after the block of contiguous storage LBA addresses is fully programmed; and creating new blocks of contiguous storage LBA addresses addressing only unwritten capacity. - View Dependent Claims (19, 20)
-
-
21. A method of transferring data between a host system and a re-programmable non-volatile mass storage system, the method comprising:
-
receiving data associated with host logical block address (LBA) addresses at the mass storage system from the host system; contiguously re-mapping the received host LBA addresses in an order received to a block of contiguous storage LBA addresses; allocating an additional block of contiguous storage LBA addresses, the additional block addressing only unwritten capacity upon allocation, and contiguously re-mapping remaining received host LBA addresses to the additional block when the block of contiguous storage LBA addresses is full; and generating a storage address table (SAT) mapping host LBA addresses to storage LBA addresses as the data associated with the host LBA addresses is re-mapped to contiguous storage LBA addresses. - View Dependent Claims (22, 23, 24)
-
-
25. A method of transferring data between a host system and a re-programmable non-volatile mass storage system, the method comprising:
-
receiving data associated with host logical block address (LBA) addresses from the host system at an application on the mass storage system; contiguously re-mapping the received host LBA addresses in an order received to a block of contiguous storage LBA addresses; allocating an additional block of contiguous storage LBA addresses, the additional block addressing only unwritten capacity upon allocation, and contiguously re-mapping additional received host LBA addresses to the additional block when the block of contiguous storage LBA addresses is fully programmed; and identifying previously fully programmed blocks of contiguous storage LBA addresses presently addressing valid and obsolete data prior to receiving new data associated with previously received host LBA addresses; and creating new blocks of contiguous storage LBA addresses addressing only unwritten capacity from the identified previously fully programmed blocks of contiguous storage LBA addresses presently addressing valid and obsolete data. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31-140. -140. (canceled)
Specification