IP Library Granted Patent US 11,822,793
Granted Patent B2
US 11,822,793 · App. 17/657,844 · Granted Nov 21, 2023

Complete and fast protection against CID conflict

Inventors: Shay Benisty (Beer Sheva, IL); Ariel Navon (Revava, IL); Judah Gamliel Hahn (Ofra, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0619G06F3/0656G06F3/0659G06F3/0679G06F11/08G06F11/1004G06F11/1068
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 11,822,793
App. No.
17/657,844
Granted
Nov 21, 2023
Kind
B2
Abstract

The present disclosure generally relates to detecting command identification (CID) collisions in host commands. Host commands stored in submission queues are supposed to have unique CIDs. The host device selects the CID and attaches the CID to the command. Once the command is executed, the host device may reuse the CID. Sometimes, the host device reuses a CID before a command already using the CID is executed, which is a collision. Rather than search all CIDs to find a collision, redundancy bits can be created for each command, and the redundancy can be the same for multiple pending commands. The redundancy bits can be checked first to see if there is a match, followed by comparing CIDs for only those commands that have matching redundancy bits. In so doing, CID collisions are detected earlier and easier.

Claims (40)

1. A data storage device, comprising:

a memory device; and

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

calculate redundancy bits for a first host command;

compare the calculated redundancy bits to redundancy bits for at least one additional host command;

determine that the calculated redundancy bits for the first host command match the redundancy bits for the at least one additional host command; and

compare command identifications (CIDs) for the first host command and the at least one additional host command.

2. The data storage device of claim 1 , wherein the controller is configured to send a notification to a host device that the CID of the first host command conflicts with the CID of the at least one additional host command.

3. The data storage device of claim 1 , wherein the controller is configured to store the redundancy bits in registers in the controller and store the CIDs in the memory device.

4. The data storage device of claim 1 , wherein the controller is configured to attach calculated redundancy bits to the CIDs within a CID field of each received host command.

5. The data storage device of claim 1 , wherein the controller is configured to determine whether an index of host commands maintained by the controller is equal to a number of maximum outstanding commands.

6. The data storage device of claim 5 , wherein the controller is configured to determine whether there is a pending host command in a slot identified for the first host command.

7. The data storage device of claim 1 , wherein the controller is configured to determine whether there is a match between CIDs for the first host command and the at least one additional host command.

8. The data storage device of claim 1 , wherein the redundancy bits are parity bits.

9. The data storage device of claim 1 , wherein the controller is configured to fetch redundancy bits for the at least one additional host command.

10. The data storage device of claim 1 , wherein the controller is configured to fetch CIDs for the at least one additional host command upon determining that the calculated redundancy bits match the redundancy bits for the at least one additional host command.

11. A data storage device, comprising:

a memory device; and

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

monitor a submission queue for host commands;

capture command identifications (CIDs) for each host command in the submission queue;

log the CIDs for each host command;

determine whether there is a CID collision between host commands in the submission queue; and

receive a doorbell ringing indication from a host device, wherein the determining occurs prior to receiving the doorbell ringing indication.

12. The data storage device of claim 11 , wherein the submission queue is disposed in a controller memory buffer (CMB).

13. The data storage device of claim 11 , wherein the controller comprises a CID monitor that is coupled between a host interface module and a controller memory buffer (CMB).

14. The data storage device of claim 11 , wherein the controller comprises redundancy flops for storing redundancy information for incoming host commands.

15. The data storage device of claim 11 , wherein the controller comprises random access memory (RAM) for storing the CIDs.

16. The data storage device of claim 11 , wherein the controller is configured to notify the host device of the CID collision prior to receiving the doorbell ringing indication.

17. The data storage device of claim 1 , wherein the controller is configured to mimic host device operation in collision detection logic upon determining a pattern in host command CID allocation by the host device.

18. A data storage device, comprising:

memory means; and

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

detect command identification (CID) collisions for host commands, wherein the detecting comprises either:

detecting the CID collisions prior to the host command informing the controller that host commands are disposed in a submission queue; or

detecting a redundancy bit match for multiple host commands and then detecting a CID collisions for host commands having matching redundancy bits.

19. The data storage device of claim 18 , wherein the controller comprises multiple submission queues and wherein the detecting CID collisions is performed per submission queue.

20. The data storage device of claim 19 , wherein:

the redundancy bits are cyclic redundancy check (CRC) bits and are stored in SRAM, and the CIDs are stored in DRAM; or

the redundancy bits are CRC bits stored in flops, and the CIDs are stored in RAM.

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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2022
From: BENISTY, SHAY; NAVON, ARIEL; HAHN, JUDAH GAMLIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059492/0812 →