IP Library › Granted Patent US 12,531,130
Granted Patent B2
US 12,531,130 · App. 18/758,495 · Granted Jan 20, 2026

Non-volatile storage device offloading

Inventor: Devesh Kumar Rai (San Ramon, CA)
Assignee: KIOXIA CORPORATION
G11C29/42H03M13/2942G06F11/1068
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 12,531,130
App. No.
18/758,495
Granted
Jan 20, 2026
Kind
B2
Abstract

Various examples, controllers and methods are disclosed relating to parity checking. One controller can perform a plurality of read operations to read first data from the local non-volatile memory and at least one second storage device. The controller further can determine at least one first intermediate parity based on performing at least one first XOR operation of the first data, the at least one first intermediate parity. The controller further can retrieve at least one second intermediate parity of second data from at least one remote buffer of at least one third storage device. The controller further can determine at least one partial parity based on performing at least one second XOR operation of the at least one first intermediate parity and the at least one second intermediate parity. The controller further can store the at least one partial parity in at least one fourth storage device.

Claims (74)

1 . A first storage device, comprising:

a local non-volatile memory; and

a controller configured to:

perform a plurality of read operations to read first data from the local non-volatile memory and at least one second storage device;

determine at least one first intermediate parity based on performing at least one first XOR operation of the first data, the at least one first intermediate parity being stored in at least one local buffer of the first storage device;

retrieve at least one second intermediate parity of second data from at least one remote buffer of at least one third storage device, the at least one second intermediate parity being stored in the at least one remote buffer of at least one third storage device after being determined by the at least one third storage device;

determine at least one partial parity based on performing at least one second XOR operation of the at least one first intermediate parity and the at least one second intermediate parity; and

store the at least one partial parity in at least one fourth storage device, the at least one partial parity corresponds to a set of data, and the set of data comprises the first data and the second data.

2 . The first storage device of claim 1 , wherein:

the at least one second intermediate parity is retrieved from the at least one remote buffer of the at least one third storage device exposed to the first storage device for retrieval.

3 . The first storage device of claim 1 , wherein:

the first storage device is one of a plurality of storage devices of a first data node of a plurality of data nodes of a redundant array of independent disk (RAID) volume;

the first storage device is one of a set of storage devices of the plurality of data nodes;

the set of storage devices corresponding with a plurality of data segments organized into a data stripe of the RAID volume;

the data stripe comprises a set of data blocks comprising the set of data distributed across the set of storage devices; and

each of the set of storage devices is a solid-state drive (SSD) in communication with a compute node via an interface.

4 . The first storage device of claim 3 , wherein:

the at least one first intermediate parity comprises an intermediate partial P parity bit and an intermediate partial Q parity bit of the plurality of storage devices of the first data node; and

the at least one of partial parity comprises a partial P parity bit and a partial Q parity bit of the plurality of data nodes.

5 . The first storage device of claim 3 , wherein:

the at least one first intermediate parity comprises an intermediate partial PQ parity bit of the plurality of storage devices of the first data node; and

the at least one of partial parity comprises a partial PQ parity bit of the plurality of data nodes.

6 . The first storage device of claim 3 , wherein:

the at least one third storage device corresponds to a second data node of the plurality of data nodes; and

the first storage device and the at least one third storage device operatively coupled via the interface.

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

in response to performing the plurality of read operations, perform a write operation to write the stored data to one or more controller memory buffers (CMBs) of the controller; and

in response to determining the at least one first intermediate parity, store the at least one first intermediate parity in the one or more CMBs of the controller.

8 . The first storage device of claim 7 , wherein:

the at least one local buffer is the one or more CMBs of the controller; and

the at least one at least one remote buffer is one or more remote CMBs of a remote controller of the at least one third storage device.

9 . The first storage device of claim 7 , wherein:

the controller comprise the one or more CMBs;

the local non-volatile memory corresponding with the controller comprises a NAND memory device; and

the first storage device corresponding with a portion of a data segment.

10 . The first storage device of claim 1 , wherein storing the at least one partial parity in the at least one fourth storage device comprises:

performing a write operation to write the at least one partial parity to at least one remote non-volatile storage of the at least one fourth storage device.

11 . A method, comprising:

performing a plurality of read operations to read first data from a local non-volatile memory and at least one second storage device;

determining at least one first intermediate parity based on performing at least one first XOR operation of the first data, the at least one first intermediate parity being stored in at least one local buffer of the first storage device;

retrieving at least one second intermediate parity of second data from at least one remote buffer of at least one third storage device, the at least one second intermediate parity being stored in the at least one remote buffer of at least one third storage device after being determined by the at least one third storage device;

determining at least one partial parity based on performing at least one second XOR operation of the at least one first intermediate parity and the at least one second intermediate parity; and

storing the at least one partial parity in at least one fourth storage device, the at least one partial parity corresponds to a set of data, and the set of data comprises the first data and the second data.

12 . The method of claim 11 , wherein:

the at least one second intermediate parity is retrieved from the at least one remote buffer of the at least one third storage device exposed to the first storage device for retrieval.

13 . The method of claim 11 , wherein:

the first storage device is one of a plurality of storage devices of a first data node of a plurality of data nodes of a redundant array of independent disk (RAID) volume;

the first storage device is one of a set of storage devices of the plurality of data nodes;

the set of storage devices corresponding with a plurality of data segments organized into a data stripe of the RAID volume;

the data stripe comprises a set of data blocks comprising the set of data distributed across the set of storage devices; and

each of the set of storage devices is a solid-state drive (SSD) in communication with a compute node via an interface.

14 . The method of claim 13 , wherein:

the at least one first intermediate parity comprises an intermediate partial P parity bit and an intermediate partial Q parity bit of the plurality of storage devices of the first data node; and

the at least one of partial parity comprises a partial P parity bit and a partial Q parity bit of the plurality of data nodes.

15 . The method of claim 13 , wherein:

the at least one first intermediate parity comprises an intermediate partial PQ parity bit of the plurality of storage devices of the first data node; and

the at least one of partial parity comprises a partial PQ parity bit of the plurality of data nodes.

16 . The method of claim 13 , wherein:

the at least one third storage device corresponds to a second data node of the plurality of data nodes; and

the first storage device and the at least one third storage device operatively coupled via the interface.

17 . The method of claim 11 , further comprising:

in response to performing the plurality of read operations, performing a write operation to write the stored data to one or more controller memory buffers (CMBs); and

in response to determining the at least one first intermediate parity, storing the at least one first intermediate parity in the one or more CMBs.

18 . The method of claim 17 , wherein:

the at least one local buffer is the one or more CMBs; and

the at least one at least one remote buffer is one or more remote CMBs of a remote controller of the at least one third storage device.

19 . The method of claim 11 , wherein storing the at least one partial parity in the at least one fourth storage device comprises:

performing a write operation to write the at least one partial parity to at least one remote non-volatile storage of the at least one fourth storage device.

20 . At least one non-transitory processor-readable medium comprising processor-readable instructions, such that, when executed by a processor of a first storage device, causes the processor to:

perform a plurality of read operations to read first data from a local non-volatile memory and at least one second storage device;

determine at least one first intermediate parity based on performing at least one first XOR operation of the first data, the at least one first intermediate parity being stored in at least one local buffer of the first storage device;

retrieve at least one second intermediate parity of second data from at least one remote buffer of at least one third storage device, the at least one second intermediate parity being stored in the at least one remote buffer of at least one third storage device after being determined by the at least one third storage device;

determine at least one partial parity based on performing at least one second XOR operation of the at least one first intermediate parity and the at least one second intermediate parity; and

store the at least one partial parity in at least one fourth storage device, the at least one partial parity corresponds to a set of data, and the set of data comprises the first data and the second data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2025
From: RAI, DEVESH KUMAR
To: KIOXIA AMERICA, INC.
Reel/Frame 070686/0749 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2025
From: KIOXIA AMERICA, INC.
To: KIOXIA CORPORATION
Reel/Frame 070686/0762 →
Continuity (2)
Provisional Application 63649124 · May 17, 2024
Related Publication 20250356938A1 · Nov 20, 2025
References Cited (10)
US 10664193B2 · Shinozuka · 2020 [cited by examiner]
US 11971782B2 · Trika · 2024 [cited by examiner]
US 12112055B2 · Wysocki · 2024 [cited by examiner]
US 20180101441A1 · Hyun · 2018 [cited by examiner]
US 20180129451A1 · Park · 2018 [cited by examiner]
US 20210081276A1 · Suzuki · 2021 [cited by examiner]
US 20210096945A1 · Kotzur et al. · 2021 [cited by applicant]
US 20210096951A1 · Kotzur et al. · 2021 [cited by applicant]
US 20230325278A1 · Desai · 2023 [cited by examiner]
R. E. Galbraith, L. D. Cleveland, J. Yu, D. Moertl and M. Zhang, “Highly automated hardware and firmware RAID SoC design optimized for memory class storage devices,” 2013 International SoC Design Conference (ISOCC), Bus… [cited by examiner]