US 12,079,521 B2
Direct memory access data path for RAID storage
Guo-Fu Tseng, New Taipei (TW); Tsung-Lin Yu, Luodong (TW); and Cheng-Yue Chang, New Taipei (TW)
Assigned to GRAID Technology Inc., Santa Clara, CA (US)
Filed by GRAID Technology Inc., Santa Clara, CA (US)
Filed on Feb. 24, 2023, as Appl. No. 18/174,487.
Application 18/174,487 is a continuation of application No. 17/486,643, filed on Sep. 27, 2021, granted, now 11,662,955.
Prior Publication US 2023/0221899 A1, Jul. 13, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01); G06F 11/10 (2006.01); G06F 15/173 (2006.01)
CPC G06F 3/0689 (2013.01) [G06F 3/0619 (2013.01); G06F 3/0659 (2013.01); G06F 11/1076 (2013.01); G06F 15/17331 (2013.01)] 14 Claims
OG exemplary drawing
 
1. A system, comprising;
a plurality of storage devices; and
a Redundant Array of Independent Disks (RAID) controller configured to:
receive a request to read data distributed among the plurality of storage devices;
identify a first subset of the plurality of storage devices to which data associated with the request was written based at least in part on a RAID mode implemented by the RAID controller;
cause the first subset of the plurality of storage devices to:
locally read the data associated with the request from the first subset of the plurality of storage devices; and
directly write the read data associated with the request to a memory that is remote to the RAID controller;
determine that a storage device in the first subset of the plurality of storage devices has become unavailable based on;
sending a read command to the storage device in the first subset of the plurality of storage devices, wherein the read command includes a respective designated location at the memory that is remote to the RAID controller at which the storage device is to write read data, wherein the respective designated location was prescribed within the request to read data that was received by the RAID controller; and
capturing a direct memory access (DMA) error from polling a completion queue associated with the storage device;
identify a second subset of the plurality of storage devices to which parity information was written based at least in part on the RAID mode; and
cause the second subset of the plurality of storage devices to:
locally read the parity information; and
directly write the parity information to the memory that is remote to the RAID controller.