IP Library › Granted Patent US 12,205,660
Granted Patent B2
US 12,205,660 · App. 18/226,201 · Granted Jan 21, 2025

Test controller enabling a snapshot restore and resume operation within a device under test

Inventors: Eran Moshe (Kfar Saba, IL); Pavel Teper (Kfar Saba, IL)
Assignee: Sandisk Technologies, Inc.
G11C29/1201
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,205,660
App. No.
18/226,201
Filed
Jul 25, 2023
Granted
Jan 21, 2025
Kind
B2
Art Unit
2111
USPC
714/719
Abstract

Techniques are provided for capturing a processing state snapshot of a device under test (DUT) that enable a previous test run to be restored and resumed from the same point the snapshot was taken. The techniques enable restoring the snapshot into the same or a different device to resume a previous test run. In an illustrative example, a DUT is controlled by a Joint Test Action Group (JTAG) test controller to capture a Steady State Snapshot by controlling peripheral components of the DUT to complete any on-going tasks to reach a steady state and then flush data to a memory of the DUT. The flushed steady state peripheral component data and other processing state data is transferred to the test controller for analysis and for enabling the subsequent restore and resume operation. Solid state drive (SSD) examples are provided.

Claims (48)

1. A test controller comprising:

an interface configured to connect the test controller to a device under test (DUT); and

a processing system coupled to the interface and configured to:

receive an indication of a processing point within processor code for obtaining data from the DUT for use with a subsequent resume processing operation;

control the DUT to run the processor code using a control processor of the DUT and perform a peripheral component task using a peripheral component of the DUT;

control the DUT to complete the peripheral component task in response to the control processor advancing to the processing point in the processor code; and

save, or control the DUT to save, completed peripheral component task data in a memory to enable the test controller to perform the subsequent resume processing operation.

2. The test controller of claim 1 , wherein the processing system is further configured to receive the indication of the processing point from a user of the test controller.

3. The test controller of claim 1 , wherein the peripheral component is one of a plurality of peripheral components of the DUT, each configured to perform a peripheral component task, and wherein the processing system is further configured to control the DUT to complete all peripheral component tasks of the plurality of peripheral components and save all completed peripheral component task data in the memory.

4. The test controller of claim 1 , wherein the processing system is further configured to control the peripheral component of the DUT to complete the peripheral component task by being further configured to control the peripheral component to process all pending peripheral component commands to reach a steady state.

5. The test controller of claim 4 , wherein the peripheral component includes a command queue and wherein the processing system is further configured to control the peripheral component to process pending peripheral component commands to reach the steady state by being configured to control the peripheral component to process all pending commands in its command queue.

6. The test controller of claim 4 , wherein the peripheral component commands comprise one or more of: tasks issued by the control processor of the DUT; and messages received by the DUT from an external device.

7. The test controller of claim 1 , wherein the processing system is further configured to control the peripheral component to output its completed peripheral component task data to the memory by being configured to apply a flush command to the peripheral component.

8. The test controller of claim 1 , wherein the DUT is configured for use with Joint Test Action Group (JTAG) test protocols, and wherein the processing system further is configured to apply JTAG control signals to the DUT to transfer the data to the test controller.

9. The test controller of claim 1 , wherein the memory is configured to store processing state data representative of a processing state of the control processor of the DUT, and wherein the processing system is further configured to obtain the processing state data from the memory to further enable the subsequent resume processing operation.

10. The test controller of claim 1 , wherein the processing system is further configured to process completed peripheral component task data obtained from the DUT as part of a debug procedure.

11. The test controller of claim 1 , wherein the processing system is further configured to perform the subsequent resume processing operation by being configured to:

initialize the DUT to run in a normal processing mode;

restore completed peripheral component task data obtained from the DUT into the same DUT; and

control the DUT to resume processing at the processing point using the restored data.

12. The test controller of claim 1 , wherein the DUT is a first DUT and the processing system is further configured to resume the processing operations within a second DUT.

13. The test controller of claim 12 , wherein the first DUT and the second DUT both comprise a data storage device (DSD) with a non-volatile memory (NVM), and wherein the processing system is further configured to transfer all data stored within the NVM of the first DUT to an external memory and then transfer the data to the NVM of the second DUT.

14. A method for use by a test controller, the method comprising:

receiving an indication of a processing point within processor code for obtaining data from a device under test (DUT) for use with a subsequent resume processing operation;

controlling the DUT to run the processor code using a control processor of the DUT and perform a peripheral component task using a peripheral component of the DUT;

controlling the DUT to complete the peripheral component task in response to the control processor advancing to the processing point in the processor code; and

saving, or controlling the DUT to save, completed peripheral component task data in a memory to enable the test controller to perform the subsequent resume processing operation.

15. The method of claim 14 , wherein the peripheral component is one of a plurality of peripheral components of the DUT, each configured to perform a peripheral component task, and wherein the DUT is controlled to complete all peripheral component tasks and save all completed peripheral component task data in the memory.

16. The method of claim 14 , wherein controlling the peripheral component of the DUT to complete its task comprises controlling the peripheral component to process pending commands to reach a steady state, and wherein the commands comprise one or more of: tasks issued by the control processor of the DUT; and messages received by the DUT from an external device.

17. The method of claim 14 , wherein the memory also stores processing state data representative of a processing state of the control processor of the DUT, and wherein the method further comprises transferring the processing state data from the memory to the test controller to further enable the subsequent resume operation.

18. The method of claim 14 , further comprising performing the subsequent resume processing operation by:

initializing the DUT to run in a normal processing mode;

restoring completed peripheral component task data obtained from the DUT into the DUT; and

controlling the DUT to resume processing operations at the processing point using the restored data.

19. The method of claim 14 , wherein the subsequent resume processing operation is performed using a different DUT than the DUT from which the data was obtained.

20. An apparatus comprising:

means for receiving an indication of a processing point within processor code for obtaining data from a device under test (DUT) for use with a subsequent resume processing operation;

means for controlling the DUT to run the processor code using a control processor of the DUT and perform a peripheral component task using a peripheral component of the DUT;

means for controlling the DUT to complete the peripheral component task in response to the control processor advancing to the processing point in the processor code; and

means for saving, or controlling the DUT to save, completed peripheral component task data in a memory to enable the apparatus to perform the subsequent resume processing operation.

21. A device comprising:

an interface configured to connect the device to a test controller;

a peripheral component; and

a processing system coupled to the interface and configured to:

receive an indication from the test controller of a processing point within processor code for obtaining peripheral component task data from the peripheral component for use with a subsequent resume processing operation;

run the processor code while performing a peripheral component task using the peripheral component;

control the peripheral component, in response to advancing to the processing point in the processor code, to complete the peripheral component task; and

save completed peripheral component task data in a memory to enable the test controller to perform the subsequent resume processing operation.

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 Jul 27, 2023
From: MOSHE, ERAN; TEPER, PAVEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064410/0445 →
Continuity (2)
Provisional Application 63423672 · Nov 8, 2022
Related Publication 20240153572A1 · May 9, 2024
References Cited (18)
US 7043416B1 · Lin · 2006 [cited by applicant]
US 7853425B1 · Williamson · 2010 [cited by examiner]
US 7984352B2 · Greb · 2011 [cited by applicant]
US 9785542B2 · Elston · 2017 [cited by examiner]
US 10088521B2 · Yun · 2018 [cited by examiner]
US 10902933B2 · Kalva et al. · 2021 [cited by applicant]
US 11719749B1 · Annepu · 2023 [cited by examiner]
US 20020157042A1 · Krech, Jr. · 2002 [cited by examiner]
US 20030100133A1 · Eidson et al. · 2003 [cited by applicant]
US 20070186131A1 · Goodrich · 2007 [cited by examiner]
US 20090044058A1 · Choate · 2009 [cited by examiner]
US 20190354453A1 · Hsu · 2019 [cited by examiner]
US 20210278458A1 · Su · 2021 [cited by examiner]
US 20220137130A1 · Kim · 2022 [cited by examiner]
US 20220197780A1 · Peck et al. · 2022 [cited by applicant]
US 20230176124A1 · Jin · 2023 [cited by examiner]
US 20240095137A1 · Malisic · 2024 [cited by examiner]
R. Rajsuman, N. Masuda and K. Yamashita, “Architecture and design of an open ATE to incubate the development of third-party instruments,” in IEEE Transactions on Instrumentation and Measurement, vol. 54, No. 5, pp. 1678… [cited by examiner]