IP Library Granted Patent US 12,475,009
Granted Patent B1
US 12,475,009 · App. 18/894,242 · Granted Nov 18, 2025

Continuing to test a hardware component after occurrence of a checkstop

Inventors: Divya Kumudprakash Joshi (Hobli, IN); Edward J. Kaminski, Jr. (Wynnewood, PA); Kyle Davis (Pflugerville, TX); Shaun Thomas Uldrikis (Hyde Park, NY)
Assignee: International Business Machines Corporation
G06F11/261
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,475,009
App. No.
18/894,242
Granted
Nov 18, 2025
Kind
B1
Abstract

A computer-implemented method, system, and computer program product for testing hardware in an environment involving a checkstop. Errors are injected into a model of a design under test (DUT), which includes a first hardware component interfaced with a second hardware component, at various states causing an occurrence of a checkstop in the first hardware component. A simulation of the model of the DUT is then performed with the injected errors for a number of cycles after the checkstop based on a quiesce time where the injected errors are suppressed. Furthermore, a post-processing script is executed to test a model of the DUT which ignores the errors of the first hardware component that were identified after the checkstop in the simulation of the model of the DUT. Any non-ignored errors from the execution of the post-processing script are detected and analyzed to determine if the second hardware component failed the test.

Claims (46)

1 . A computer-implemented method for testing hardware in an environment involving a checkstop, the method comprising:

injecting errors into a model of a design under test comprising a first hardware component and a second hardware component at various states causing an occurrence of a checkstop in said first hardware component, wherein said first hardware component is interfaced with said second hardware

performing a simulation of said model of said design under test with said injected errors for a number of cycles after said checkstop based on a quiesce time where said injected errors are suppressed;

executing a post-processing script to test said model of said design under test which ignores errors of said first hardware component that were identified after said checkstop in said simulation of said model of said design under test;

analyzing a non-ignored error from said execution of said post-processing script; and

outputting an indication that said second hardware component failed said test after said occurrence of said checkstop in response to said analyzed error causing said model of said design under test to fail said test.

2 . The method as recited in claim 1 , wherein said injected errors are injected using dynamic-link library injection to run code within another process.

3 . The method as recited in claim 1 , wherein said injected errors are injected at random times to cover a state space.

4 . The method as recited in claim 1 further comprising:

outputting an indication that said second hardware component did not fail said test after said occurrence of said checkstop in response to said analyzed error not causing said model of said design under test to fail said test.

5 . The method as recited in claim 1 further comprising:

stopping a clock signal from being applied to said first hardware component after said occurrence of said checkstop.

6 . The method as recited in claim 5 further comprising:

driving random inputs on an interface from said second hardware component to said first hardware component to confirm that said first hardware component has been checkstopped.

7 . The method as recited in claim 1 , wherein said first hardware component corresponds to a coherence fabric and said second hardware component corresponds to a level 3 cache.

8 . A computer program product for testing hardware in an environment involving a checkstop, the computer program product comprising one or more computer readable storage mediums having program code embodied therewith, the program code comprising programming instructions for:

injecting errors into a model of a design under test comprising a first hardware component and a second hardware component at various states causing an occurrence of a checkstop in said first hardware component, wherein said first hardware component is interfaced with said second hardware

performing a simulation of said model of said design under test with said injected errors for a number of cycles after said checkstop based on a quiesce time where said injected errors are suppressed;

executing a post-processing script to test said model of said design under test which ignores errors of said first hardware component that were identified after said checkstop in said simulation of said model of said design under test;

analyzing a non-ignored error from said execution of said post-processing script; and

outputting an indication that said second hardware component failed said test after said occurrence of said checkstop in response to said analyzed error causing said model of said design under test to fail said test.

9 . The computer program product as recited in claim 8 , wherein said injected errors are injected using dynamic-link library injection to run code within another process.

10 . The computer program product as recited in claim 8 , wherein said injected errors are injected at random times to cover a state space.

11 . The computer program product as recited in claim 8 , wherein the program code further comprises the programming instructions for:

outputting an indication that said second hardware component did not fail said test after said occurrence of said checkstop in response to said analyzed error not causing said model of said design under test to fail said test.

12 . The computer program product as recited in claim 8 , wherein the program code further comprises the programming instructions for:

stopping a clock signal from being applied to said first hardware component after said occurrence of said checkstop.

13 . The computer program product as recited in claim 12 , wherein the program code further comprises the programming instructions for:

driving random inputs on an interface from said second hardware component to said first hardware component to confirm that said first hardware component has been checkstopped.

14 . The computer program product as recited in claim 8 , wherein said first hardware component corresponds to a coherence fabric and said second hardware component corresponds to a level 3 cache.

15 . A system, comprising:

a memory for storing a computer program for testing hardware in an environment involving a checkstop; and

a processor connected to said memory, wherein said processor is configured to execute program instructions of the computer program comprising:

injecting errors into a model of a design under test comprising a first hardware component and a second hardware component at various states causing an occurrence of a checkstop in said first hardware component, wherein said first hardware component is interfaced with said second hardware component;

performing a simulation of said model of said design under test with said injected errors for a number of cycles after said checkstop based on a quiesce time where said injected errors are suppressed;

executing a post-processing script to test said model of said design under test which ignores errors of said first hardware component that were identified after said checkstop in said simulation of said model of said design under test;

analyzing a non-ignored error from said execution of said post-processing script; and

outputting an indication that said second hardware component failed said test after said occurrence of said checkstop in response to said analyzed error causing said model of said design under test to fail said test.

16 . The system as recited in claim 15 , wherein said injected errors are injected using dynamic-link library injection to run code within another process.

17 . The system as recited in claim 15 , wherein said injected errors are injected at random times to cover a state space.

18 . The system as recited in claim 15 , wherein the program instructions of the computer program further comprise:

outputting an indication that said second hardware component did not fail said test after said occurrence of said checkstop in response to said analyzed error not causing said model of said design under test to fail said test.

19 . The system as recited in claim 15 , wherein the program instructions of the computer program further comprise:

stopping a clock signal from being applied to said first hardware component after said occurrence of said checkstop.

20 . The system as recited in claim 19 , wherein the program instructions of the computer program further comprise:

driving random inputs on an interface from said second hardware component to said first hardware component to confirm that said first hardware component has been checkstopped.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2024
From: JOSHI, DIVYA KUMUDPRAKASH; KAMINSKI, EDWARD J., JR.; DAVIS, KYLE; ULDRIKIS, SHAUN THOMAS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 068675/0333 →
References Cited (19)
US 6550022B1 · Faver · 2003 [cited by applicant]
US 7827443B2 · Eisen et al. · 2010 [cited by applicant]
US 7958392B2 · Armstrong et al. · 2011 [cited by applicant]
US 7966536B2 · Ludewig et al. · 2011 [cited by applicant]
US 8073668B2 · Kellington et al. · 2011 [cited by applicant]
US 8949101B2 · Bose et al. · 2015 [cited by applicant]
US 10223186B2 · Hollaway, Jr. et al. · 2019 [cited by applicant]
US 10318406B2 · Erez et al. · 2019 [cited by applicant]
US 10579499B2 · Engler et al. · 2020 [cited by applicant]
US 11822675B2 · Das et al. · 2023 [cited by applicant]
US 11989071B2 · Webel et al. · 2024 [cited by applicant]
US 20060184840A1 · Floyd et al. · 2006 [cited by applicant]
US 20080235454A1 · Duron et al. · 2008 [cited by applicant]
US 20130096902A1 · Bose · 2013 [cited by examiner]
Barbosa et al., “Assembly-Level Pre-Injection Analysis for Improving Fault Injection Efficiency,” Lecture Notes in Computer Science, 2005, pp. 246-262. [cited by applicant]
Kudva et al., “Fault Injection Verification of IBM Power6 Soft Error Resilience,” Workshop on Architectural Support for Gigascale Integration (ASGI), 2007, pp. 1-4. [cited by applicant]
Rivers et al., “Phaser: Phased Methodology for Modeling the System-Level Effects of Soft Errors,” IBM Journal of Research and Development, vol. 52, No. 3, May 2008, pp. 293-306. [cited by applicant]
Ramachandran et al., “Statistical Fault Injection,” International Conference on Dependable Systems & Networks, Anchorage, Alaska, Jun. 24-27, 2008, pp. 122-127. [cited by applicant]
Cher et al., “Understanding Soft Error Resiliency of BlueGene/Q Compute Chip Through Hardware Proton Irradiation and Software Fault Injection,” International Conference for High Performance Computing, Networking, Storag… [cited by applicant]