IP Library Granted Patent US 10,521,306
Granted Patent B2
US 10,521,306 · App. 15/661,431 · Granted Dec 31, 2019

Methods, systems and devices for restarting data processing units

Inventors: Viacheslav Anatolyevich Dubeyko (San Jose, CA); Luis Vitorio Cargnini (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G06F11/1441G06F11/079G06F11/0724G06F11/0757G06F2201/805
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 10,521,306
App. No.
15/661,431
Granted
Dec 31, 2019
Kind
B2
Abstract

Systems and methods are disclosed for maintaining a status of a respective data processing unit (DPU) of a plurality of data processing units, each coupled to non-volatile memory. In some embodiments a first DPU is configured to execute one or more persistent processes, wherein the one or more processes persist in the non-volatile memory over power cycles, generate a first broadcast message upon completion of a first persistent process, transmit the first broadcast message to a set of DPUs associated with monitoring the first DPU, receive a second broadcast message from a second DPU of the set of DPUs and assign a value indicating an active status for the second DPU in a status table to track the status of each DPU of the set of DPUs.

Claims (65)

1. A computing system comprising:

a plurality of data processing units (DPUs) each coupled to non-volatile memory, wherein a first DPU of the plurality of DPUs is configured to:

execute one or more persistent processes, wherein the one or more processes persist in the non-volatile memory over power cycles;

generate a first broadcast message upon completion of a first persistent process;

transmit the first broadcast message to a set of DPUs associated with monitoring the first DPU;

receive a second broadcast message from a second DPU of the set of DPUs;

assign a value indicating an active status for the second DPU in a status table to track a status of each DPU of the set of DPUs;

determine a failure to receive the second broadcast message from the second DPU after a period of time exceeding a timing threshold;

assign a value indicating an inactive status for the second DPU in the status table, and

transmit a status inquiry request to the second DPU in response to determining the failure to receive the second broadcast message after a period of time exceeding a timing threshold.

2. The computing system of claim 1 , wherein the first broadcast message indicates an active state of the first DPU.

3. The computing system of claim 1 , wherein the first DPU is further configured to:

transmit a restart command to the second DPU in response to determining the failure to receive a response to the status inquiry request.

4. The computing system of claim 1 , wherein the first DPU is further configured to:

determine a failure to receive a response to the status inquiry request from the second DPU after a period of time exceeding the timing threshold; and

transmit a restart command to the second DPU in response to determining the failure to receive the response to the status inquiry request.

5. The computing system of claim 1 , wherein the first DPU is further configured to:

receive a response to the status inquiry request from the second DPU; and

assign the value indicating an active status for the second DPU in the status table to track the status of each DPU of the set of DPUs.

6. The computing system of claim 1 , wherein the first DPU is further configured to:

receive a restart command; and

perform a self-restart operation in response to receiving the restart command.

7. The computing system of claim 6 , wherein the first DPU is further configured to:

transmit a third broadcast message to the set of DPUs associated with monitoring the first DPU upon successful completion of the self-restart operation.

8. A first data processing unit (DPU) of a plurality of DPUs, each coupled to non-volatile memory, wherein the first DPU is configured to:

execute one or more persistent processes, wherein the one or more processes persist in the non-volatile memory over power cycles;

generate a first broadcast message upon completion of a first persistent process;

transmit the first broadcast message to a set of DPUs associated with monitoring the first DPU;

receive a second broadcast message from a second DPU of the set of DPUs;

assign a value indicating an active status for the second DPU in a status table to track a status of each DPU of the set of DPUs;

determine a failure to receive the second broadcast message from the second DPU after a period of time exceeding a timing threshold;

assign a value indicating an inactive status for the second DPU in the status table; and

transmit a status inquiry request to the second DPU in response to determining the failure to receive the second broadcast message after a period of time exceeding a timing threshold.

9. The first DPU of claim 8 , wherein the first broadcast message indicates an active state of the first DPU.

10. The first DPU of claim 8 further configured to: transmit a restart command to the second OPU in response to determining the failure to receive a response to the status inquiry request.

11. The first DPU of claim 8 further configured to: determine a failure to receive a response to the status inquiry request from the second DPU after a period of time exceeding the timing threshold; and transmit a restart command to the second DPU in response to determining the failure to receive the response to the status inquiry request.

12. The first DPU of claim 8 further configured to: receive a response to the status inquiry request from the second DPU; and assign the value indicating an active status for the second DPU in the status table to track the status of each DPU of the set of DPUs.

13. The first DPU of claim 8 further configured to:

receive a restart command; and

perform a self-restart operation in response to receiving the restart command.

14. The first DPU of claim 13 further configured to:

transmit a third broadcast message to the set of DPUs associated with monitoring the first DPU upon successful completion of the self-restart operation.

15. A method of maintaining status of a respective data processing unit (DPU) of a plurality of DPUs, each coupled to non-volatile memory, the method at a first DPU comprising:

executing one or more persistent processes, wherein the one or more processes persist in the non-volatile memory over power cycles;

generating a first broadcast message upon completion of a first persistent process;

transmitting the first broadcast message to a set of DPUs associated with monitoring the first DPU;

receiving a second broadcast message from a second DPU of the set of DPUs;

assigning a value indicating an active status for the second DPU in a status table to track a status of each DPU of the set of DPUs;

determining a failure to receive the second broadcast message from the second DPU after a period of time exceeding a timing threshold;

assigning a value indicating an inactive status for the second DPU in the status table; and

transmitting a status inquiry request to the second DPU in response to determining the failure to receive the second broadcast message after a period of time exceeding a timing threshold.

16. The method of claim 15 , wherein the first broadcast message indicates an active state of the first DPU.

17. The method of claim 15 further comprising:

transmitting a restart command to the second DPU in response to determining the failure to receive a response to the status inquiry request.

18. The method of claim 15 further comprising:

determining a failure to receive a response to the status inquiry request from the second DPU after a period of time exceeding the timing threshold; and

transmitting a restart command to the second DPU in response to determining the failure to receive the response to the status inquiry request.

19. The method of claim 15 further comprising:

receiving a response to the status inquiry request from the second DPU; and

assigning the value indicating an active status for the second DPU in the status table to track the status of each DPU of the set of DPUs.

20. The method of claim 15 further comprising:

receiving a restart command; and

performing a self-restart operation in response to receiving the restart command.

21. The method of claim 20 further comprising:

transmitting a third broadcast message to the set of DPUs associated with monitoring the first DPU upon successful completion of the self-restart operation.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2017
From: DUBEYKO, VIACHESLAV ANATOLYEVICH; CARGNINI, LUIS VITORIO
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043352/0552 →
Continuity (1)
Related Publication 20190034281A1 · Jan 31, 2019