IP Library Granted Patent US 11,232,032
Granted Patent B2
US 11,232,032 · App. 16/937,067 · Granted Jan 25, 2022

Incomplete write group journal

Inventors: Kapil Sundrani (Bangalore, IN); Karimulla Sheik (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F12/0804G06F12/0238G06F12/0246G06F2212/1032G06F2212/217G06F2212/262
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,232,032
App. No.
16/937,067
Granted
Jan 25, 2022
Kind
B2
Abstract

Example storage systems, storage devices, and methods provide a write group journal for identifying incomplete writes. Related write request indicators are stored in a non-volatile journal in a solid state drive to identify a related write group and indicate whether the related write group has been stored in storage locations corresponding to physical page addresses. As the write requests for the related write group are processed, the related write request indicator is updated to allow incomplete write groups to be identified in the event of a failure.

Claims (61)

1. A storage device, comprising:

at least one non-volatile storage medium comprised of a plurality of storage locations addressable with physical page addresses;

a non-volatile journal configured to store a related write request indicator, wherein the related write request indicator is configured to:

identify a related write group that includes a plurality of physical page addresses corresponding to a plurality of write requests; and

indicate whether the related write group has been stored in the plurality of storage locations corresponding to the plurality of physical page addresses; and

a device controller configured to:

process the plurality of write requests to store a plurality of write data blocks corresponding to the related write group to the plurality of physical page addresses in the at least one non-volatile storage medium; and

update, responsive to processing the plurality of write requests, the related write request indicator.

2. The storage device of claim 1 , wherein the related write group is a redundant array of independent disks (RAID) stripe.

3. The storage device of claim 1 , further comprising:

a cache memory configured to store the plurality of write data blocks corresponding to the related write group prior to writing the plurality of write data blocks to the plurality of physical page addresses; and

a device manager configured to write, responsive to the plurality of write data blocks being stored in the cache memory, the related write group to the plurality of storage locations corresponding to the plurality of physical page addresses.

4. The storage device of claim 3 , wherein the cache memory is further configured to store metadata indicating a destination physical page address for each write data block of the plurality of write data blocks stored in the cache memory.

5. The storage device of claim 1 , wherein:

the related write request indicator includes a bitmap of the related write group; and

the bitmap indicates which write data blocks of the plurality of write data blocks have been stored in the plurality of storage locations corresponding to the plurality of physical page addresses.

6. The storage device of claim 5 , wherein the device controller is further configured to generate, responsive to a related write group request including the plurality of physical page addresses for the related write group, the bitmap of the related write group.

7. The storage device of claim 1 , wherein the device controller is further configured to remove, responsive to the plurality of write data blocks corresponding to the related write group being stored in the plurality of storage locations corresponding to the plurality of physical page addresses, the related write request indicator from the non-volatile journal.

8. The storage device of claim 1 , wherein the device controller is further configured to:

scan, in response to a drive power cycle, the non-volatile journal for at least one incomplete related write group;

identify an incomplete related write group by the related write request indicator indicating that the related write group has not been stored in the plurality of storage locations corresponding to the plurality of physical page addresses;

generate, in response to identifying at least one incomplete related write group, a data loss event indicator for a data loss event; and

send, responsive to the data loss event indicator, an event notification to at least one host system.

9. The storage device of claim 1 , wherein:

the device controller is further configured to receive a write group start command; and

the write group start command includes the plurality of physical page addresses corresponding to the related write group.

10. The storage device of claim 9 , wherein the write group start command is fused to a write command for a first write data block in the related write group.

11. A computer-implemented method, comprising:

receiving, in a storage device, a plurality of write requests for a plurality of storage locations addressable with physical page addresses, wherein the plurality of write requests correspond to a related write group;

storing, in a non-volatile journal of the storage device, a related write request indicator, wherein the related write request indicator is configured to:

identify the related write group that includes a plurality of physical page addresses corresponding to the plurality of write requests; and

indicate whether the related write group has been stored in the plurality of storage locations corresponding to the plurality of physical page addresses;

processing, by the storage device, the plurality of write requests to store a plurality of write data blocks corresponding to the related write group to the plurality of physical page addresses in at least one non-volatile storage medium of the storage device; and

updating, responsive to processing the plurality of write requests, the related write request indicator.

12. The computer-implemented method of claim 11 , further comprising:

storing, responsive to receiving the plurality of write requests, the plurality of write data blocks for the plurality of write requests in a cache memory of the storage device; and

writing, responsive to the plurality of write data blocks being stored in the cache memory, the related write group to the plurality of storage locations corresponding to the plurality of physical page addresses.

13. The computer-implemented method of claim 12 , further comprising:

storing, in the cache memory of the storage device, metadata indicating a destination physical page address for each write data block of the plurality of write data blocks stored.

14. The computer-implemented method of claim 11 , further comprising:

storing a bitmap of the related write group in the non-volatile journal, wherein the bitmap indicates which write data blocks of the plurality of write data blocks have been stored in the plurality of storage locations corresponding to the plurality of physical page addresses.

15. The computer-implemented method of claim 14 , further comprising:

generating, responsive to a related write group request including the plurality of physical page addresses for the related write group, the bitmap of the related write group.

16. The computer-implemented method of claim 11 , further comprising:

removing, in response to completely storing the plurality of write data blocks corresponding to the related write group in the plurality of storage locations corresponding to the plurality of physical page addresses, the related write request indicator from the non-volatile journal.

17. The computer-implemented method of claim 11 , further comprising:

scanning, in response to a drive power cycle, the non-volatile journal for at least one incomplete related write group;

identifying an incomplete related write group by the related write request indicator indicating that the related write group has not been stored in the plurality of storage locations corresponding to the plurality of physical page addresses;

generating, in response to identifying at least one incomplete related write group, a data loss event indicator for a data loss event; and

sending, responsive to the data loss event, an event notification to at least one host system.

18. The computer-implemented method of claim 11 , further comprising:

receiving a write group start command, wherein the write group start command includes the plurality of physical page addresses corresponding to the related write group.

19. The computer-implemented method of claim 18 , wherein the write group start command is fused to a first write request from the plurality of write requests corresponding to the related write group.

20. A storage device, comprising:

a non-volatile storage medium configured in a plurality of storage locations addressable with physical page addresses;

means for receiving a plurality of write requests corresponding to a related write group;

means for storing a related write request indicator, wherein the related write request indicator is configured to:

identify a related write group that includes a plurality of physical page addresses; and

indicate whether the related write group has been stored in the plurality of storage locations corresponding to the plurality of physical page addresses;

means for processing the plurality of write requests to store a plurality of write data blocks corresponding to the related write group to the plurality of physical page addresses in the non-volatile storage medium; and

means for updating, responsive to processing the plurality of write requests, the related write request indicator.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2020
From: SUNDRANI, KAPIL; SHEIK, KARIMULLA
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 053593/0546 →