IP Library Granted Patent US 12,379,873
Granted Patent B2
US 12,379,873 · App. 18/351,318 · Granted Aug 5, 2025

Fast execution of barrier command

Inventors: Amir Segev (Meiter, IL); Shay Benisty (Beer Sheva, IL); Rotem Sela (Sunnyvale, CA)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0611G06F3/0673
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,379,873
App. No.
18/351,318
Granted
Aug 5, 2025
Kind
B2
Abstract

The present disclosure generally relates to read and write operations utilizing barrier commands. Using barrier commands and a snapshot of doorbell states of submission queues (SQs), the necessary write commands to perform a read may be identified and executed to reduce any wait time of the host. As such, host delays during reads and writes are reduced. In absence of a barrier command, the host needs to wait for writes to complete before performing a read. When a barrier command is used, the host needs to wait for the barrier command to complete before performing a read. The controller will execute the post barrier reads only after completing the pre-barrier writes. As will be discussed herein, the controller completes the barrier command as soon as a doorbell snapshot is taken even though the pre-barrier writes may not yet be completed.

Claims (61)

1. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

fetch a barrier command;

capture a snapshot of doorbell states of pre-barrier commands in at least one submission queue (SQ);

inform a host device of completion of the barrier command;

receive a new command, wherein the new command is to be completed after the pre-barrier commands; and

use a weighted round robin (WRR) arbitration scheme to determine command execution order, wherein the capturing comprises modifying the WRR arbitration scheme to intentionally select and execute a identified pre-barrier commands by the snapshot in one or more SQs.

2. The data storage device of claim 1 , wherein the barrier command is executed in relation to a single SQ.

3. The data storage device of claim 1 , wherein the controller is further configured to fetch a plurality of barrier commands.

4. The data storage device of claim 3 , wherein the controller is configured to communicate with a host as to a number of allowed and active barrier commands.

5. The data storage device of claim 4 , wherein the plurality of barrier commands are executed in relation to a single SQ per barrier command.

6. The data storage device of claim 1 , wherein the one or more barrier commands are delivered via an admin submission queue.

7. The data storage device of claim 1 , wherein the one or more barrier commands are delivered via dedicated registers bypassing queuing.

8. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

fetch a barrier command;

capture a snapshot of doorbell states of pre-barrier commands in at least one submission queue (SQ), wherein the capturing comprises storing a value corresponding to a doorbell value from the snapshot, wherein the value is identified as current doorbell;

inform a host device of completion of the barrier command; and

receive a new command, wherein the new command is to be completed after the pre-barrier commands.

9. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

fetch a barrier command;

capture a snapshot of doorbell states of pre-barrier commands in at least one submission queue (SQ);

inform a host device of completion of the barrier command;

receive a new command, wherein the new command is to be completed after the pre-barrier commands; and

identify the pre-barrier commands, wherein the identifying comprises:

fetching a value from a SQ corresponding to a number of commands last fetched; and

comparing the number of commands last fetched to a current doorbell value, wherein a difference between the values correspond to the number of commands that are pre-barrier.

10. The data storage device of claim 9 , wherein the controller is further configured to execute pre-barrier commands, wherein the executing comprises executing a number of commands equal to the difference of the current doorbell value and the number of last fetched commands for one or more SQs.

11. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

detect one or more barrier commands;

initialize a first value counter to 0 , wherein the first value counter corresponds to a number of barrier commands in one or more submission queues (SQs);

capture a snapshot of current doorbell values of pre-barrier commands of the one or more SQs, wherein the capturing comprises storing the current doorbell values;

determine a difference between a second value counter and the current doorbell value for the one or more SQs, wherein the second value counter corresponds to a number of commands last fetched from the one or more SQs;

store the difference as a third value counter;

add the third value counter to the first value counter;

execute the one or more barrier commands; and

inform a host device of barrier command completion.

12. The data storage device of claim 11 , wherein capturing a snapshot of current doorbell values of pre-barrier commands further comprises altering results from a weighted round robin (WRR) arbitration scheme to execute commands that existed before the one or more barrier commands.

13. The data storage device of claim 12 , wherein the WRR arbitration scheme comprises:

one or more low, medium, and high priority submission queues (SQs);

one or more urgent SQs, wherein the urgent SQs are given priority over the low, medium, and high priority SQs; and

an admin SQ, wherein the admin SQ has the highest priority of SQs.

14. The data storage device of claim 11 , wherein the first value counter is identified as a total barrier counter, wherein the total barrier counter accumulates a number of commands required prior to a barrier command execution for a SQ.

15. The data storage device of claim 14 , wherein the second value counter is identified as last fetched, wherein the last fetched value counter tracks the doorbell value of the last command executed from a SQ.

16. The data storage device of claim 14 , wherein the third value counter is identified as allowed fetch, wherein the allowed fetch value corresponds to the number of commands in a SQ that must be executed before a barrier command.

17. A data storage device, comprising:

memory means; and

a controller coupled to the memory means, wherein the controller is configured to:

receive one or more barrier commands;

capture a snapshot of doorbell states of one or more submission queues (SQs), wherein the capturing comprises storing a current doorbell value of the one or more SQs from the snapshot;

update a value counter in response to the snapshot, wherein the updating comprises storing a difference between a number of commands last fetched from the one or more SQs and the current doorbell value of the one or more SQs;

modify a weighted round robin (WRR) arbitration scheme to ensure commands in the one or more SQs that arrived before a barrier command of the one or more barrier commands are completed before commands that arrived after a barrier command of the one or more barrier commands;

execute the barrier command; and

inform a host system of the barrier command completion.

18. The data storage device of claim 17 , wherein the modifying a WRR arbitration scheme further comprises limiting an amount of commands to fetch from a SQ, wherein the amount of commands is determined by the value counters.

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 Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065657/0158 →
PATENT COLLATERAL AGREEMENT- A&R Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065656/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2023
From: SEGEV, AMIR; BENISTY, SHAY; SELA, ROTEM
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064652/0194 →
Continuity (2)
Provisional Application 63421250 · Nov 1, 2022
Related Publication 20240143228A1 · May 2, 2024
References Cited (15)
US 9122401B2 · Zaltsman et al. · 2015 [cited by applicant]
US 10162534B1 · Obr · 2018 [cited by applicant]
US 20140033209A1 · Lih et al. · 2014 [cited by applicant]
US 20140059270A1 · Zaltsman et al. · 2014 [cited by applicant]
US 20140068626A1 · Koker · 2014 [cited by examiner]
US 20140331001A1 · Liu · 2014 [cited by examiner]
US 20150033234A1 · Shacham et al. · 2015 [cited by applicant]
US 20180089881A1 · Johnson · 2018 [cited by examiner]
US 20190220404A1 · Hwang · 2019 [cited by applicant]
US 20200125263A1 · Walker et al. · 2020 [cited by applicant]
US 20200333975A1 · Benisty · 2020 [cited by applicant]
US 20210132968A1 · Li · 2021 [cited by examiner]
US 20220092002A1 · Yasufuku · 2022 [cited by applicant]
US 20230102089A1 · Bellubbi · 2023 [cited by examiner]
International Search Report and Written Opinion for Application No. PCT/US2023/075881 dated Feb. 13, 2024. [cited by applicant]