IP Library › Granted Patent US 12,197,287
Granted Patent B2
US 12,197,287 · App. 17/947,075 · Granted Jan 14, 2025

Exception handling using security subsystem in storage device

Inventors: Dattatreya Nayak (Bangalore, IN); Rohit Prasad (Bangalore, IN); Vinod Sasidharan (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F11/1438G06F3/0619G06F3/0659G06F3/0679G06F11/0772G06F11/0787G06F21/572G06F2221/034
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,197,287
App. No.
17/947,075
Granted
Jan 14, 2025
Kind
B2
Abstract

A data storage device includes a host interface for coupling the data storage device to a host system. The data storage device also includes a device memory for storing or providing data in response to commands receive from the host system. The data storage device also includes a controller comprising a storage subsystem and a security subsystem. The storage subsystem is configured to receive a host command from the host interface, and process the host command for the device memory. The security subsystem includes a device recovery circuit configured to monitor the storage subsystem for an exception state, and reinitialize pending operations for the storage subsystem after the exception state. Methods and systems are also disclosed.

Claims (60)

1. A data storage device, comprising:

a host interface for coupling the data storage device to a host system;

a device memory for storing or providing data in response to commands received from the host system; and

a controller comprising:

a storage subsystem configured to:

receive a host command from the host interface; and

process the host command for the device memory; and

a security subsystem comprising:

a device recovery circuit configured to:

monitor the storage subsystem for an exception state; and

reinitialize pending operations for the storage subsystem after the exception state,

wherein the data storage device is configured to include a plurality of power domains that includes a first power domain to supply power to the storage subsystem that is different from a second power domain to supply power to the security subsystem,

wherein the data storage device is configured to continue to power the security subsystem, using the second power domain, after the storage subsystem enters the exception state or during recovery of the storage subsystem from the exception state, and

wherein the device recovery circuit is further configured to copy, during the exception state, a plurality of pending operations for the storage subsystem in a same order as the commands received from the host system, and to store, after the exception state, the plurality of pending operations for the storage subsystem in the same order in a front-end memory.

2. The data storage device of claim 1 , wherein the device recovery circuit is further configured to:

cause throttling the host system if the storage subsystem takes longer than a predetermined threshold time to recover from the exception state.

3. The data storage device of claim 2 , wherein the security subsystem is further configured to control the host interface when the storage subsystem recovers from the exception state.

4. The data storage device of claim 1 , wherein the exception state is caused by at least one of: a processor failure, a hardware error, a firmware deadlock, or a firmware assert.

5. The data storage device of claim 1 , wherein the device recovery circuit is further configured to monitor the storage subsystem for the exception state at periodic time intervals.

6. The data storage device of claim 1 , wherein the device recovery circuit is further configured to cause transmitting a crash dump to the host system and receive updates.

7. The data storage device of claim 1 , wherein the device recovery circuit is further configured to store pending operations for the storage subsystem at periodic time intervals.

8. The data storage device of claim 1 , wherein the security subsystem further comprises a host queue, and the device recovery circuit is further configured to store pending operations for the storage subsystem in the host queue.

9. The data storage device of claim 1 , wherein the controller includes the front-end memory configured to store the commands received from the host system.

10. The data storage device of claim 1 , wherein the controller is further configured to provide a state of the storage subsystem to the device recovery circuit during initialization of the storage subsystem, and wherein the device recovery circuit is further configured to use the state of the storage subsystem to reinitialize pending operations for the storage subsystem.

11. The data storage device of claim 1 , wherein the device recovery circuit is further configured to cause throttling the host system based on the exception state.

12. The data storage device of claim 8 , wherein the security subsystem further comprises a static memory and the host queue is disposed in the static memory.

13. The data storage device of claim 1 , wherein the device recovery circuit is further configured to:

determine a category of the exception state;

in accordance with a determination that the category of the exception state is a firmware assert or a deadlock due to software errors, cause a warm reboot of the storage subsystem; and

in accordance with a determination that the category of the exception state is a processor halt or a crash due to hardware errors, cause a cold boot that includes a complete reboot of the storage subsystem.

14. The data storage device of claim 1 , wherein the device recovery circuit is further configured to generate a crash report based on the exception state.

15. A method performed in a data storage device, the method comprising:

storing or providing data, at a device memory, in response to commands received from a host system; and

at a storage subsystem:

receiving a host command from a host interface that couples the data storage device to the host system; and

processing the host command for the device memory; and

at a device recovery circuit of a security subsystem:

monitoring the storage subsystem for an exception state; and

reinitialize pending operations for the storage subsystem after the exception state,

wherein the data storage device includes a plurality of power domains that includes a first power domain to supply power to the storage subsystem that is different from a second power domain to supply power to the security subsystem,

wherein the data storage device continues to power the security subsystem, using the second power domain, after the storage subsystem enters the exception state or during recovery of the storage subsystem from the exception state, and

wherein the device recovery circuit copies, during the exception state, a plurality of pending operations for the storage subsystem in a same order as the commands received from the host system, and stores, after the exception state, the plurality of pending operations for the storage subsystem in the same order in a front-end memory.

16. The method of claim 15 , further comprising:

at the device recovery circuit of the security subsystem:

generating a crash report that includes an origin of the exception state, a type of the exception state, information related to a failing command for the exception state, or a command serviced during the exception state, or a timestamp for the exception state.

17. The method of claim 15 , further comprising:

at the device recovery circuit of the security subsystem:

copying, from the storage subsystem, information related to garbage collection, write or read exception handling, or firmware control block updates to the device memory, based on the exception state.

18. A system, comprising:

means for coupling a host system to a data storage device;

means for storing or providing data in response to commands received from the host system;

means for receiving a host command from a host interface in a storage subsystem;

means for processing the host command in the storage subsystem;

means for monitoring the storage subsystem for an exception state;

means for reinitialize pending operations for the storage subsystem after the exception state;

means for a plurality of power domains that includes a first power domain to supply power to the storage subsystem that is different from a second power domain to supply power to a security subsystem;

means for continuing to power the security subsystem, using the second power domain, after the storage subsystem enters the exception state or during recovery of the storage subsystem from the exception state;

means for copying, during the exception state, a plurality of pending operations for the storage subsystem in a same order as the commands received from the host system; and

means for storing, after the exception state, the plurality of pending operations for the storage subsystem in the same order in a front-end memory.

19. The data storage device of claim 1 , wherein the device recovery circuit is further configured to transmit, via Bluetooth or another communication mechanism, a crash dump to the host system, when the storage subsystem crashes.

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 Oct 11, 2022
From: NAYAK, DATTATREYA; PRASAD, ROHIT; SASIDHARAN, VINOD
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 061381/0548 →
Continuity (1)
Related Publication 20240094920A1 · Mar 21, 2024
References Cited (7)
US 8935464B2 · Sutardja et al. · 2015 [cited by applicant]
US 11182232B2 · Ozturk et al. · 2021 [cited by applicant]
US 20170220354A1 · Valdez · 2017 [cited by examiner]
US 20210294501A1 · Kageyama et al. · 2021 [cited by applicant]
US 20210390022A1 · Siluvainathan · 2021 [cited by examiner]
US 20220012117A1 · Esposito et al. · 2022 [cited by applicant]
CN 106527651A · 2017 [cited by applicant]