Persistent Storage Device with NVRAM for Staging Writes
First Claim
1. A persistent storage device, comprising:
- persistent storage, comprising a set of persistent storage blocks;
NVRAM, comprising a type of nonvolatile storage distinct from the persistent storage and comprising a set of NVRAM blocks;
a storage controller configured to receive commands from an external host device and further configured to;
in response to a transfer command, transfer data in a specified NVRAM block to a corresponding persistent storage block, wherein the data was previously written to the specified NVRAM block.
3 Assignments
0 Petitions
Accused Products
Abstract
A persistent storage device includes both persistent storage, which includes a set of persistent storage blocks, and NVRAM, and in particular a set of NVRAM blocks. The persistent storage device also typically includes a storage controller. The persistent storage device, in addition to responding to commands to write data directly to and to read data directly from persistent storage blocks is also configured to write data to specified NVRAM blocks (e.g., specified by a host NVRAM write command) and to transfer data from a specified NVRAM block to a specified persistent storage block. As a result, multiple writes to a particular persistent storage block can be replaced with multiple writes to an NVRAM block and a subsequent single write to the particular persistent storage block. This reduces the number of writes to persistent storage and also reduces the number of corresponding block erase operations.
61 Citations
25 Claims
-
1. A persistent storage device, comprising:
-
persistent storage, comprising a set of persistent storage blocks; NVRAM, comprising a type of nonvolatile storage distinct from the persistent storage and comprising a set of NVRAM blocks; a storage controller configured to receive commands from an external host device and further configured to; in response to a transfer command, transfer data in a specified NVRAM block to a corresponding persistent storage block, wherein the data was previously written to the specified NVRAM block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for managing a persistent storage device, comprising:
at the persistent storage device comprising persistent storage and NVRAM, the persistent storage comprising a set of persistent storage blocks and the NVRAM, comprising a type of nonvolatile storage distinct from the persistent storage and comprising a set of NVRAM blocks; receiving commands from an external host device; in response to a transfer command, storing data in a NVRAM block specified by the transfer command to a corresponding persistent storage block. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
25. A method for storing data to a persistent storage device, comprising:
-
at a host device external to the persistent storage device; issuing a plurality of NVRAM write commands to store data in a specified block of NVRAM in the persistent storage device, the persistent storage device comprising persistent storage and NVRAM, the persistent storage comprising a set of persistent storage blocks and the NVRAM comprising a set of NVRAM blocks that includes the specified block of NVRAM, wherein the NVRAM comprises a type of nonvolatile storage distinct from the persistent storage; issuing a predefined transfer command, instructing the persistent storage device to store data in the specified NVRAM block to a corresponding persistent storage block; and issuing a read command, instructing the persistent storage device to retrieve data from the persistent storage block corresponding the specified NVRAM block, and to convey to the host device the data retrieved from the persistent storage block corresponding the specified NVRAM block.
-
Specification