IP Library Granted Patent US 7,739,570
Granted Patent B2
US 7,739,570 · App. 11/779,385 · Granted Jun 15, 2010

System and method for increasing error checking performance by calculating CRC calculations after multiple test patterns for processor design verification and validation

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 7,739,570
App. No.
11/779,385
Granted
Jun 15, 2010
Kind
B2
Abstract

A system and method to reduce verification time by sharing memory between multiple test patterns and performing results checking after each test pattern executes one time is presented. A test pattern generator generates multiple test pattern sets, each of which including multiple test patterns. Each test pattern set is executed by a corresponding thread/processor until each test pattern included in the test pattern set has executed at least once. After all test patterns have executed at least once, a test pattern executor performs a memory error detection check to determine whether the system is functioning correctly. Since the invention described herein waits until all test patterns have executed before performing a memory error detection check, less time is spent on memory error detection checks, which allows more time to execute test patterns.

Claims (48)

1. A computer-implemented method comprising:

executing one of a plurality of test patterns;

after the executing of one of the plurality of test patterns, determining whether each of the plurality of test patterns has executed once;

based upon determining that each of the plurality of test patterns has not executed once, executing a different one of the plurality of test patterns;

based upon determining that each of the plurality of test patterns has executed once, computing a hardware memory error detection check value;

comparing the hardware memory error detection check value with a simulation memory error detection check value; and

setting an error flag in response to the hardware memory error detection check value not matching the simulation memory error detection check value.

2. The method of claim 1 further comprising:

simultaneously executing a first test pattern on a first thread and executing a second test pattern on a second thread, the first test pattern and the second test pattern included in the plurality of test patterns.

3. The method of claim 2 wherein the first thread is executed on a first processor and the second thread is executed on a second processor.

4. The method of claim 3 wherein the plurality of test patterns are generated by a test pattern generator residing within a user mode, and the plurality of test patterns are processed by a test pattern executor residing in a kernel mode, the test pattern executor including a scheduler, a dispatcher, and a comparator.

5. The method of claim 4 further comprising:

generating the plurality of test patterns in a false sharing mode using the test pattern generator.

6. The method of claim 4 wherein, during the generation of the plurality of test patterns, the test pattern generator tracks one or more test pattern memory pages used by each of the plurality of test patterns.

7. The method of claim 2 wherein the plurality of test patterns comprise a first set of test patterns and a second set of test patterns, and wherein the first processor executes all of the test patterns included in the first set of test patterns and the second processor executes all of the test patterns included in the second set of test patterns.

8. An information handling system comprising:

one or more processors;

a memory accessible by the processors;

one or more nonvolatile storage devices accessible by the processors; and

a set of instructions stored in the memory, wherein one or more of the processors executes the set of instructions in order to perform actions of:

executing one of a plurality of test patterns;

after the executing of one of the plurality of test patterns, determining whether each of the plurality of test patterns has executed once;

based upon determining that each of the plurality of test patterns has not executed once, executing a different one of the plurality of test patterns;

based upon determining that each of the plurality of test patterns has executed once, computing a hardware memory error detection check value;

comparing the hardware memory error detection check value with a simulation memory error detection check value; and

setting an error flag in response to the hardware memory error detection check value not matching the simulation memory error detection check value.

9. The information handling system of claim 8 further comprising an additional set of instructions in order to perform actions of:

simultaneously executing a first test pattern on a first thread and executing a second test pattern on a second thread, the first test pattern and the second test pattern included in the plurality of test patterns.

10. The information handling system of claim 9 wherein the first thread is executed on a first processor and the second thread is executed on a second processor, the first processor and the second processor included in the one or more processors.

11. The information handling system of claim 10 wherein the plurality of test patterns are generated by a test pattern generator residing within a user mode, and the plurality of test patterns are processed by a test pattern executor residing in a kernel mode, the test pattern executor including a scheduler, a dispatcher, and a comparator.

12. The information handling system of claim 11 further comprising an additional set of instructions in order to perform actions of:

generating the plurality of test patterns in a false sharing mode using the test pattern generator.

13. The information handling system of claim 11 wherein, during the generation of the plurality of test patterns, the test pattern generator tracks one or more test pattern memory pages used by each of the plurality of test patterns.

14. A computer program product stored on a computer operable media, the computer operable media containing instructions for execution by a computer, which, when executed by the computer, cause the computer to implement a method of processing test patterns, the method comprising:

executing one of a plurality of test patterns;

after the executing of one of the plurality of test patterns, determining whether each of the plurality of test patterns has executed once;

based upon determining that each of the plurality of test patterns has not executed once, executing a different one of the plurality of test patterns;

based upon determining that each of the plurality of test patterns has executed once, computing a hardware memory error detection check value;

comparing the hardware memory error detection check value with a simulation memory error detection check value; and

setting an error flag in response to the hardware memory error detection check value not matching the simulation memory error detection check value.

15. The computer program product of claim 14 wherein the method further comprises:

simultaneously executing a first test pattern on a first thread and executing a second test pattern on a second thread, the first test pattern and the second test pattern included in the plurality of test patterns.

16. The computer program product of claim 15 wherein the first thread is executed on a first processor and the second thread is executed on a second processor.

17. The computer program product of claim 16 wherein the plurality of test patterns are generated by a test pattern generator residing within a user mode, and the plurality of test patterns are processed by a test pattern executor residing in a kernel mode, the test pattern executor including a scheduler, a dispatcher, and a comparator.

18. The computer program product of claim 17 wherein the method further comprises:

generating the plurality of test patterns in a false sharing mode using the test pattern generator.

19. The computer program product of claim 17 wherein, during the generation of the plurality of test patterns, the test pattern generator tracks one or more test pattern memory pages used by each of the plurality of test patterns.

20. The computer program product of claim 15 wherein the plurality of test patterns comprise a first set of test patterns and a second set of test patterns, and wherein the first processor executes all of the test patterns included in the first set of test patterns and the second processor executes all of the test patterns included in the second set of test patterns.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Jun 16, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 056597/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2013
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 029733/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2007
From: BAG, SANDIP; CHOUDHURY, SHUBHODEEP ROY; DUSANAPUDI, MANOJ; HATTI, SUNIL SURESH; KAPOOR, SHAKTI; MOHARIL, RAHUL SHAROD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 019570/0202 →