IP Library Granted Patent US 12,443,369
Granted Patent B2
US 12,443,369 · App. 17/951,993 · Granted Oct 14, 2025

Automated fast path processing

Inventors: Vijay Sivasankaran (Dublin, CA); Dinesh Agarwal (Bangalore, IN); Mikhail Palityka (Oakville, CA)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0607G06F3/0679
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,443,369
App. No.
17/951,993
Granted
Oct 14, 2025
Kind
B2
Abstract

Processing commands received from a host computing device by a storage device can require a large amount of processing overhead. This demand for ever greater processing power increases as the size of storage devices increase. Traditional methods have added an increasing number of processors or CPUs to handle these requirements. However, by utilizing a fast path accelerated processing pipeline, additional processors may not be necessary. An accelerated processing pipeline can be configured to bypass one or more steps that are required by non-priority processing pipelines. Each received command can be parsed to determine if it is suitable for accelerated processing. The command can be required to access data in a limited region of the memory device, or to have any data necessary to process the command already in a cache memory. Upon completion of verifications, commands can be placed in a priority queue that is processed before a non-priority queue.

Claims (49)

1. A device comprising:

a processor; a memory array comprising a plurality of memory devices; and

an accelerated processing logic configured to:

receive incoming commands;

parse the received incoming commands;

pass one or more parsed commands to a parallel accelerated processing pipeline, wherein the parallel accelerated processing pipeline comprising a first accelerated processing memory in a front-end and flash translation layer and a second accelerated processing memory in a physical storage layer;

perform, within the parallel accelerated processing pipeline, one or more verifications on the parsed command, to determine its eligibility for prioritized die-specific processing, wherein the one or more verifications comprise at least determining if data associated with the parsed command is accessible from one or more cache memories;

determine a die associated with the parsed command;

add, upon passing the one or more verifications, the parsed command into a priority queue among the one or more priority queues wherein the priority queue is associated with the determined die,

arbitrate the parsed command against one or more non-priority queues; and process the parsed command in the priority queue before commands within a non-priority queue.

2. The device of claim 1 , wherein the incoming commands are received from a host computing device.

3. The device of claim 2 , wherein incoming commands are read commands configured to retrieve data stored within the memory array of the device.

4. The device of claim 3 , wherein the accelerated processing logic if further configured to parse the received incoming commands to determine if the received incoming commands are suitable for accelerated processing.

5. The device of claim 4 , wherein the suitability of the parsed command is determined by a type of command received.

6. The device of claim 5 , wherein the type of command received is a read command with a size below a predetermined threshold.

7. The device of claim 6 , wherein the predetermined threshold is sixteen kilobytes.

8. The device of claim 5 , wherein the plurality of memory devices are located within one or more dies.

9. The device of claim 6 , wherein the read command is associated with memory devices located on the same die within the memory array.

10. The device of claim 1 , wherein the accelerated processing logic is further configured to determine the number of commands currently in the parallel accelerated processing pipeline prior to passing in additional commands.

11. The device of claim 10 , wherein, upon determination that the number of commands in the parallel accelerated processing pipeline is above a predetermined threshold, passing the one or more parsed commands to a non-accelerated processing pipeline.

12. The device of claim 1 , wherein, upon failing the one or more verifications, the command is passed to a non-accelerated processing pipeline.

13. The device of claim 12 , wherein a verification fails if data associated with the command is not retrievable from a cached memory.

14. A method for accelerated storage device processing, comprising:

receiving incoming commands from a host computing device;

determining if the received commands are suitable for accelerated processing;

passing the suitable commands to a parallel accelerated processing pipeline, wherein the parallel accelerated processing pipeline comprising a first accelerated processing memory in a front-end and flash translation layer and a second accelerated processing memory in a physical storage layer;

performing, within the parallel accelerated processing pipeline, one or more verifications on the parsed command, to determine its eligibility for prioritized die-specific processing, wherein the one or more verifications comprise at least determining if associated data is accessible from one or more cache memories;

determining a die associated with the at least one suitable command;

adding, upon passing the one or more verifications, the at least one suitable command into a priority queue associated with the determine die to read data from a memory array,

wherein commands in the priority queue will be processed before commands within a non-priority queue; and

arbitrating the one or more suitable commands within the priority queue against the non-priority queues.

15. The method of claim 14 , wherein suitable commands are configured to be random read commands that are smaller than a predetermined size.

16. The method of claim 14 , wherein suitable commands are configured to read data from a plurality of memory devices located within the same die within a memory array of the device.

17. The method of claim 15 , wherein the one or more verifications comprise locating data associated with the command within the one or more cache memories.

18. A device comprising:

a processor;

a memory array comprising a plurality of memory devices; and

an accelerated processing logic configured to:

establish a non-accelerated processing pipeline;

receive incoming commands;

parse the received incoming commands;

establish, upon determination that a parsed command is suitable for accelerated processing, a parallel accelerated processing pipeline, wherein the parallel accelerates processing pipeline comprising a first accelerated processing memory in a front-end and flash translation layer and a second accelerated processing memory in a physical storage layer;

pass the suitable command to the parallel accelerated processing pipeline;

perform, within the parallel accelerated processing pipeline, one or more verifications on the parsed command, to determine its eligibility for prioritized die-specific processing, wherein the one or more verifications comprise at least determining if data associated with the suitable command is accessible from one or more cache memories;

determine a die associated with the suitable command;

add, upon passing the one or more verifications, the command into a priority queue associated with the determined die, wherein commands in the priority queue will be processed before commands within a non-priority queue; and

arbitrate a read command within the priority queue.

19. The device of claim 18 , wherein the priority queue is dynamically generated upon the establishment of the parallel accelerated processing pipeline by changing one or more properties associated with a non-priority queue such that it is subsequently processed as a priority queue.

20. The device of claim 19 , wherein, upon the queue of the parallel accelerated processing pipeline becoming empty, any resources utilized to establish the accelerated processing pipeline and priority queues are released to the non-accelerated processing pipeline and non-priority queues.

Assignments (8)
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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2022
From: SIVASANKARAN, VIJAY; AGARWAL, DINESH; PALITYKA, MIKHAIL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 061199/0265 →
Continuity (1)
Related Publication 20240103762A1 · Mar 28, 2024
References Cited (49)
US 6128026A · Brothers, III · 2000 [cited by examiner]
US 6799283B1 · Tamai · 2004 [cited by examiner]
US 7546421B2 · Tsien · 2009 [cited by examiner]
US 8990509B2 · Pan · 2015 [cited by examiner]
US 9021178B2 · Guda · 2015 [cited by examiner]
US 9798493B2 · Authement · 2017 [cited by examiner]
US 9804783B1 · Bao · 2017 [cited by examiner]
US 10025522B2 · Helmick · 2018 [cited by examiner]
US 10466904B2 · Benisty · 2019 [cited by examiner]
US 11561912B2 · Shin · 2023 [cited by examiner]
US 11635898B2 · Richter · 2023 [cited by examiner]
US 11709635B2 · Benisty · 2023 [cited by examiner]
US 12229452B2 · Li · 2025 [cited by examiner]
US 20020164019A1 · Fairclough · 2002 [cited by examiner]
US 20030088591A1 · Fish · 2003 [cited by examiner]
US 20060173995A1 · Moriwaki · 2006 [cited by examiner]
US 20100045683A1 · Kim · 2010 [cited by examiner]
US 20130159609A1 · Haas · 2013 [cited by examiner]
US 20150244670A1 · Dong · 2015 [cited by examiner]
US 20160019151A1 · Venkatasubramanian · 2016 [cited by examiner]
US 20170075572A1 · Utevsky · 2017 [cited by examiner]
US 20170255563A1 · Kamruzzaman · 2017 [cited by examiner]
US 20170277366A1 · Narayanan · 2017 [cited by examiner]
US 20170285940A1 · Benisty · 2017 [cited by examiner]
US 20170300263A1 · Helmick · 2017 [cited by examiner]
US 20180300268A1 · Yang · 2018 [cited by examiner]
US 20180321844A1 · Benisty · 2018 [cited by examiner]
US 20190018805A1 · Benisty · 2019 [cited by examiner]
US 20190065072A1 · Dirik · 2019 [cited by examiner]
US 20190065384A1 · Al Sheikh · 2019 [cited by examiner]
US 20200026472A1 · Song · 2020 [cited by examiner]
US 20200310682A1 · Benisty · 2020 [cited by examiner]
US 20210026713A1 · Puttaswamy · 2021 [cited by examiner]
US 20210287750A1 · Wu · 2021 [cited by examiner]
US 20210303340A1 · Li · 2021 [cited by examiner]
US 20210349722A1 · Karve · 2021 [cited by examiner]
US 20220058146A1 · Balakrishnan · 2022 [cited by examiner]
US 20220083266A1 · Prakash · 2022 [cited by examiner]
US 20220084617A1 · Prakash · 2022 [cited by examiner]
US 20220129193A1 · Hill · 2022 [cited by examiner]
US 20220147247A1 · Ammari · 2022 [cited by examiner]
US 20220147392A1 · Choi · 2022 [cited by examiner]
US 20220404979A1 · Wu · 2022 [cited by examiner]
US 20220413719A1 · Wu · 2022 [cited by examiner]
US 20230221889A1 · Benisty · 2023 [cited by examiner]
US 20230342290A1 · Tumanova · 2023 [cited by examiner]
US 20230403030A1 · Nayak · 2023 [cited by examiner]
US 20240036736A1 · Anderson · 2024 [cited by examiner]
Stratikopoulos, A., Kotselidis, C-E., Goodacre, J., & Lujan, M. (2018). “FastPath: Towards Wire-speed NVMe SSDs.” 2018 28th International Conference on Field Programmable Logic and Applications (FPL) (2018 28th Internat… [cited by applicant]