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 in accordance with one or more applications executed by the external host device, and further configured to;
in response to a host NVRAM write command received from the external host device, store data to an NVRAM block specified by the host NVRAM write command;
in response to a host NVRAM read command received from the external host device, retrieve data from an NVRAM block specified by the host NVRAM read command; and
in response to a transfer command received from the external host device, transfer data in an NVRAM block specified by the transfer command 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.
547 Citations
23 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 in accordance with one or more applications executed by the external host device, and further configured to; in response to a host NVRAM write command received from the external host device, store data to an NVRAM block specified by the host NVRAM write command; in response to a host NVRAM read command received from the external host device, retrieve data from an NVRAM block specified by the host NVRAM read command; and in response to a transfer command received from the external host device, transfer data in an NVRAM block specified by the transfer command 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. 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 accordance with one or more applications executed by the external host device; in response to a host NVRAM write command received from the external host device, store data to an NVRAM block specified by the host NVRAM write command; in response to a host NVRAM read command received from the external host device, retrieve data from an NVRAM block specified by the host NVRAM read command; and in response to a transfer command received from the external host device, storing data in an NVRAM block specified by the transfer command to a corresponding persistent storage block. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
23. A method for storing data to a persistent storage device, comprising:
at a host device external to the persistent storage device and issuing commands in accordance with one or more applications executed by the host device; issuing a plurality of NVRAM write commands to store data in blocks of NVRAM in the persistent storage device specified by the NVRAM write commands, 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 blocks of NVRAM, wherein the NVRAM comprises a type of nonvolatile storage distinct from the persistent storage; issuing an NVRAM read command, instructing the persistent storage device to retrieve data from an NVRAM block in the persistent storage device specified by the NVRAM read command; issuing a predefined transfer command, instructing the persistent storage device to store data in an NVRAM block specified by the transfer command to a corresponding persistent storage block, wherein the data was previously written to the specified NVRAM block by one of the issued NVRAM write commands; and issuing a read command, instructing the persistent storage device to retrieve data from the persistent storage block to which data was stored in accordance with the predefined transfer command issued by the host device, and to convey to the host device the data retrieved from the persistent storage block to which data was stored in accordance with the predefined transfer command issued by the host device.
Specification