IP Library Granted Patent US 10,860,492
Granted Patent B2
US 10,860,492 · App. 16/741,050 · Granted Dec 8, 2020

Rapid side-channel access to storage devices

Inventors: Yu Du (Hangzhou, CN); Ping Zhou (San Mateo, CA); Shu Li (Santa Clara, CA)
Assignee: ALIBABA GROUP HOLDING LIMITED
G06F12/0882G06F12/0638G06F13/1663G06F3/0659G06F2212/2022
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 10,860,492
App. No.
16/741,050
Granted
Dec 8, 2020
Kind
B2
Abstract

Disclosed are systems, methods, and apparatuses for providing a high-speed data path to storage devices. In one embodiment, a method is disclosed comprising receiving, by the processor, a data access command, the data access command specifying a location in memory to access data; issuing, by the processor, the data access command to the storage device via a first datapath, the first datapath comprising a non-block datapath; and accessing, by the processor, the non-volatile storage component through the first datapath and the memory, wherein the non-volatile storage component of the storage device is mapped to memory accessible by the processor.

Claims (34)

1. A method comprising:

receiving, by a processor, a data access command, the data access command specifying a host address of a memory to access data;

determining, by the processor, that the data access command is a critical access command based on the content of the data access command;

issuing, by the processor, the data access command to a controller of a storage device via a non-block datapath; and

accessing, by the processor, a non-volatile storage component of the storage device through the non-block datapath, wherein the non-volatile storage component is mapped to the memory accessible by the processor.

2. The method of claim 1 , the determining that the data access command is a critical access command comprising determining that the data access command is a critical access command based on the content of the data access command.

3. The method of claim 2 , the determining that the data access command is a critical access command based on the content of the data access command comprising analyzing a payload of a write command and determining that a size of the payload is lower than a pre-determined threshold.

4. The method of claim 1 , the determining that the data access command is a critical access command comprising determining that the data access command was issued via a separate system call for critical data access.

5. The method of claim 4 , the determining that the data access command was issued via a separate system call for critical data access comprising analyzing a name of the separate system call.

6. The method of claim 1 , the determining that the data access command is a critical access command comprising determining that a POSIX system call associated with the data access command includes a critical flag.

7. The method of claim 1 , the determining that the data access command is a critical access command comprising determining that a filepath associated with the data access command is memory-mapped to a critical location of the storage device.

8. The method of claim 7 , the determining that a filepath associated with the data access command is memory-mapped to a critical location of the storage device comprising determining that the filepath is mapped to a controller memory buffer (CMB) window of the storage device.

9. A device comprising:

a processor; and

a storage medium for tangibly storing thereon program logic for execution by the processor, the stored program logic comprising logic causing the processor to perform the operations of:

receiving a data access command, the data access command specifying a host address of a memory to access data,

determining that the data access command is a critical access command based on the content of the data access command,

issuing the data access command to a controller of a storage device via a non-block datapath, and

accessing a non-volatile storage component of the storage device through the non-block datapath, wherein the non-volatile storage component is mapped to the memory accessible by the processor.

10. The device of claim 9 , the determining that the data access command is a critical access command comprising determining that the data access command is a critical access command based on the content of the data access command.

11. The device of claim 10 , the determining that the data access command is a critical access command based on the content of the data access command comprising analyzing a payload of a write command and determining that a size of the payload is lower than a pre-determined threshold.

12. The device of claim 9 , the determining that the data access command is a critical access command comprising determining that the data access command was issued via a separate system call for critical data access.

13. The device of claim 12 , the determining that the data access command was issued via a separate system call for critical data access comprising analyzing a name of the separate system call.

14. The device of claim 9 , the determining that the data access command is a critical access command comprising determining that a POSIX system call associated with the data access command includes a critical flag.

15. The device of claim 9 , the determining that the data access command is a critical access command comprising determining that a filepath associated with the data access command is memory-mapped to a critical location of the storage device.

16. The device of claim 15 , the determining that a filepath associated with the data access command is memory-mapped to a critical location of the storage device comprising determining that the filepath is mapped to a controller memory buffer (CMB) window of the storage device.

17. A non-transitory computer-readable storage medium for tangibly storing computer program instructions capable of being executed by a computer processor, the computer program instructions defining the steps of:

receiving, by a processor, a data access command, the data access command specifying a host address of a memory to access data;

determining, by the processor, that the data access command is a critical access command based on the content of the data access command;

issuing, by the processor, the data access command to a controller of a storage device via a non-block datapath; and

accessing, by the processor, a non-volatile storage component of the storage device through the non-block datapath, wherein the non-volatile storage component is mapped to the memory accessible by the processor.

18. The non-transitory computer-readable storage medium of claim 17 , the determining that the data access command is a critical access command comprising determining that the data access command is a critical access command based on the content of the data access command.

19. The non-transitory computer-readable storage medium of claim 17 , the determining that the data access command is a critical access command comprising determining that the data access command was issued via a separate system call for critical data access.

20. The non-transitory computer-readable storage medium of claim 17 , the determining that the data access command is a critical access command comprising determining that a filepath associated with the data access command is memory-mapped to a critical location of the storage device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2020
From: DU, YU; LI, SHU; ZHOU, PING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052059/0929 →
Continuity (2)
Continuation 15976034 · May 10, 2018
Related Publication 20200151107A1 · May 14, 2020
Cited By (1)
US 12,608,317