US 12,282,438 B2
Scalable storage using NVMe communication
Marc Timothy Jones, Longmont, CO (US); Jason Wayne Kinsey, Longmont, CO (US); Benjamin James Scott, Longmont, CO (US); and Robert William Dixon, Longmont, CO (US)
Assigned to SEAGATE TECHNOLOGY LLC, Fremont, CA (US)
Filed by Seagate Technology LLC, Fremont, CA (US)
Filed on Jan. 28, 2022, as Appl. No. 17/587,285.
Prior Publication US 2023/0244613 A1, Aug. 3, 2023
Int. Cl. G06F 13/28 (2006.01); G06F 12/02 (2006.01); G06F 13/16 (2006.01); G06F 13/40 (2006.01); G06F 13/42 (2006.01)
CPC G06F 13/1668 (2013.01) [G06F 12/0253 (2013.01); G06F 13/28 (2013.01); G06F 13/4022 (2013.01); G06F 13/4221 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method, comprising:
selecting one of a plurality of NVMe devices as principal device to control communication with a host via a PCle switch;
designating remainder of the plurality of NVMe devices as subordinate devices;
exposing an I/O queue of the principal device to the host such that the host communicates with the subordinate devices without the subordinate devices being exposed to the host;
controlling the communication between the host and the subordinate devices using a PCI peer-to-peer direct memory access (PCI P2P DMA) between the principal device and the subordinate devices;
changing class codes of the remainder of the plurality of NVMe devices such that an NVMe driver of the host does not attach to the remainder of the plurality of NVMe devices; and
storing the changed class codes in a memory of the host such that the changed class codes cannot be changed by the host.