Atomic write command support in a solid state drive
First Claim
1. A method comprising:
- receiving an atomic write command;
storing, based on the atomic write command, data in one or more logical pages (L-Pages), wherein each L-Page among the one or more L-Pages is associated with a logical address;
generating a system journal (S-Journal) entry for each of the one or more L-Pages wherein each S-Journal entry comprises a first sequence number associated with the atomic write command;
determining, based on the S-Journal entries, whether all L-Pages are stored in a non-volatile memory; and
after a power loss event, in response to determining that all L-Pages are not stored in the non-volatile memory;
determining, based on the first sequence number, a minimum L-Page number, and a maximum L-Page number, a range of L-Page numbers;
for each L-Page number in the range of L-Page numbers, determining data in the L-Page associated with the L-Page prior to receiving the atomic write command; and
generating a copy command to store the data, for the L-Pages associated with the range of L-Page numbers, in the non-volatile memory.
8 Assignments
0 Petitions
Accused Products
Abstract
A method of performing an atomic write command in a data storage device comprising a volatile memory and a plurality of non-volatile memory devices configured to store a plurality of physical pages. The method may comprise storing data in a plurality of logical pages (L-Pages), each associated with a logical address. A logical-to-physical address translation map may be maintained in the volatile memory, and may be configured to enable determination of a physical location, within one or more of the physical pages, of the data referenced by each logical address. The data specified by a received atomic write command may be stored one or more L-Pages. Updates to the entry or entries in the translation map associated with the L-Page(s) storing the data specified by the atomic write command may be deferred until all L-Pages storing data specified by the atomic write command have been written in a power-safe manner.
129 Citations
20 Claims
-
1. A method comprising:
-
receiving an atomic write command; storing, based on the atomic write command, data in one or more logical pages (L-Pages), wherein each L-Page among the one or more L-Pages is associated with a logical address; generating a system journal (S-Journal) entry for each of the one or more L-Pages wherein each S-Journal entry comprises a first sequence number associated with the atomic write command; determining, based on the S-Journal entries, whether all L-Pages are stored in a non-volatile memory; and after a power loss event, in response to determining that all L-Pages are not stored in the non-volatile memory; determining, based on the first sequence number, a minimum L-Page number, and a maximum L-Page number, a range of L-Page numbers; for each L-Page number in the range of L-Page numbers, determining data in the L-Page associated with the L-Page prior to receiving the atomic write command; and generating a copy command to store the data, for the L-Pages associated with the range of L-Page numbers, in the non-volatile memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A storage system comprising:
-
a non-volatile memory; and a controller; wherein the controller is configured to; receive an atomic write command; store, based on the atomic write command, data in one or more logical pages (L-Pages), wherein each L-Page among the one or more L-Pages is associated with a logical address; generate a system journal (S-Journal) entry for each of the one or more L-Pages, wherein each S-Journal entry comprises a first sequence number associated with the atomic write command; determine, based on the S-Journal entries, whether all L-Pages are stored in a non-volatile memory; after a power loss event, when all L-Pages are not determined to be stored in the non-volatile memory, determine, based on the first sequence number, the minimum L-Page number and the maximum L-Page number, a range of L-Page numbers; for each L-Page number in the range of L-Page numbers, determine data in the L-Page associated with the L-Page prior to receiving the atomic write command; and generate a copy command to store the data, for the L-Pages associated with the range of L-Page numbers, in the non-volatile memory. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
means for receiving an atomic write command; means for storing, based on the atomic write command, data in one or more logical pages (L-Pages), wherein each L-Page among the one or more L-Pages is associated with a logical address; means for generating a system journal (S-Journal) entry for each of the one or more L-Pages, wherein each S-Journal entry comprises a first sequence number associated with the atomic write command; means for determining, based on the S-Journal entries, whether all L-Pages are stored in a non-volatile memory; and after a power loss event, in response to determining that all L-Pages are not stored in the non-volatile memory; means for determining, based on the first sequence number, a minimum L-Page number, and a maximum L-Page number, a range of L-Page numbers; for each L-Page number in the range of L-Page numbers, means for determining data in the L-Page associated with the L-Page prior to receiving the atomic write command; and means for generating a copy command to store the data, for the L-Pages associated with the range of L-Page numbers, in the non-volatile memory. - View Dependent Claims (20)
-
Specification