IP Library Granted Patent US 11,563,570
Granted Patent B2
US 11,563,570 · App. 16/878,230 · Granted Jan 24, 2023

Storage system and method for command execution ordering by security key

Inventors: Shay Benisty (Beer Sheva, IL); Amir Segev (Meitar, IL)
Assignee: Western Digital Technologies, Inc.
H04L9/0894G06F12/121H04L9/14G06F2212/1021G06N5/04G06N20/00
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,563,570
App. No.
16/878,230
Granted
Jan 24, 2023
Kind
B2
Abstract

A storage system and method for command execution ordering by security key are provided. In one example, the storage system has a non-volatile memory, a volatile memory storing a plurality of keys, and a controller with a cache storing a subset of the plurality of keys. The storage system gives priority to a command whose key is stored in the cache in the controller over commands whose keys are stored only in the volatile memory. This avoids transferring a key from the volatile memory to the cache in the controller, thereby improving efficiency of the storage system.

Claims (37)

1. A storage system comprising:

at least one memory configured to store a plurality of keys; and

a controller comprising a cache configured to store a subset of the plurality of keys, wherein the controller is configured to:

identify a command in a plurality of commands that requires a key that is stored in the cache in the controller, wherein the plurality of commands are arranged in an order; and

execute the command even though the command is not a next command in the order, wherein the next command in the order requires a key that is stored in the memory but not in the cache.

2. The storage system of claim 1 , wherein the controller is further configured to, in response to none of the plurality of commands requiring a key that is stored in the cache of the controller:

evict a key that is stored in the cache of the controller;

retrieve a key for one of the plurality of commands from the at least one memory; and

store that key in the cache of the controller.

3. The storage system of claim 2 , wherein the controller is further configured to choose the key to evict from the cache of the controller based on a prediction that the key will not be needed.

4. The storage system of claim 1 , wherein the controller is further configured to:

generate a new key; and

store the new key in the cache in the controller.

5. The storage system of claim 1 , wherein the controller is further configured to fetch, from a submission queue in a host, commands whose keys are likely stored in the cache in the controller.

6. The storage system of claim 5 , wherein the controller is further configured to select which commands to fetch based on a history of key usage or machine learning.

7. The storage system of claim 1 , wherein the controller comprises a command fetcher, a key manager, a command selector, and a security engine.

8. The storage system of claim 1 , wherein the at least one memory comprises a three-dimensional memory.

9. The storage system of claim 1 , wherein the plurality of commands comprise read and/or write commands.

10. In a storage system comprising at least one memory storing a plurality of keys and a controller comprising a cache storing a subset of the plurality of keys, a method comprising:

receiving a plurality of commands from a host; and

giving priority to a command whose key is stored in the cache in the controller over commands whose keys are stored only in the at least one memory and not in the cache.

11. The method of claim 10 , further comprising:

evicting a key that is stored in the cache of the controller;

retrieving a key for one of the plurality of commands from the at least one memory; and

storing that key in the cache of the controller.

12. The method of claim 11 , further comprising choosing the key to evict from the cache of the controller based on a prediction that the key will not be needed.

13. The method of claim 10 , further comprising fetching, from a submission queue in a host, commands whose keys are likely stored in the cache in the controller.

14. The method of claim 13 , further comprising selecting which commands to fetch based on a history of key usage or machine learning.

15. The method of claim 10 , wherein the plurality of commands comprise read and/or write commands.

16. A storage system comprising:

at least one memory configured to store a plurality of keys;

a controller comprising a cache configured to store a subset of the plurality of keys; and

means for servicing a command whose key is stored in the at least one memory before servicing a command that requires a key to transferred from the at least one memory to the cache in the controller because that key is not in the cache.

17. The storage system of claim 1 , wherein executing the command even though the command is not the next command in the order reduces key switching.

18. The storage system of claim 1 , wherein executing the command even though the command is not the next command in the order avoids a possibility that the key required by the command will be evicted from the cache due to executing other commands located ahead of the command in the order.

19. The method of claim 10 , wherein giving priority to the command reduces key switching.

20. The method of claim 10 , wherein giving priority to the command avoids a possibility that the key required by the command will be evicted from the cache due to executing commands whose keys are stored only in the at least one memory and not in the cache.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST AT REEL 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2020
From: BENISTY, SHAY; SEGEV, AMIR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 052703/0562 →
Continuity (1)
Related Publication 20210367777A1 · Nov 25, 2021
Cited By (1)
US 12,411,961