IP Library › Granted Patent US 10,241,880
Granted Patent B2
US 10,241,880 · App. 15/429,052 · Granted Mar 26, 2019

Efficient validation/verification of coherency and snoop filtering mechanisms in computing systems

Inventors: Manoj Dusanapudi (Bangalore, IN); Shakti Kapoor (Austin, TX)
Assignee: International Business Machines Corporation
G06F11/263G06F11/2242G06F11/2247
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,241,880
App. No.
15/429,052
Granted
Mar 26, 2019
Kind
B2
Abstract

Embodiments disclose techniques for scheduling test cases without regeneration to verify and validate a computing system. In one embodiment, a testing engine generates a test case for a plurality of processors. Each test case includes streams of instructions. The testing engine also allocates at least one cache line associated with the streams of instructions of the generated test case such that each of the plurality of processors accesses different memory locations within the at least one cache line. The testing engine further schedules the generated test case for execution by the plurality of processors to achieve at least a first test coverage among the plurality of processors. The testing engine further re-schedules the generated test case for re-execution by the plurality of processors to achieve at least a second test coverage among the plurality of processors.

Claims (41)

1. A computer-implemented method, comprising:

generating, by a first computing system, a test case for a plurality of processors in a second computing system, wherein the test case comprises streams of instructions;

allocating, by the first computing system, at least one cache line associated with the streams of instructions of the test case such that each of the plurality of processors accesses different memory locations within the at least one cache line; and

scheduling, by the first computing system, the test case for execution by the plurality of processors to achieve at least a first test coverage among the plurality of processors, wherein scheduling the test case comprises spreading the test case across a plurality of different configurations of the plurality of processors without regenerating the test case for each of the plurality of different configurations, each of the plurality of different configurations specifying a number of hardware threads for one or more of the plurality of processors that have access to the at least one cache line associated with the test case.

2. The computer-implemented method of claim 1 , wherein spreading the test case across the plurality of different configurations comprises:

executing the test case for a first configuration of the plurality of different configurations, wherein the first configuration specifies that a first number of hardware threads for each of at least a first one or more processors of the plurality of processors accesses the at least one cache line associated with the test case.

3. The computer-implemented method of claim 2 , wherein the first number of hardware threads comprises four hardware threads, and wherein the first one or more processors comprises at least two processors.

4. The computer-implemented method of claim 2 , wherein after executing the test case for the first configuration, the computer-implemented method further comprising:

executing the test case for a second configuration of the plurality of different configurations, wherein the second configuration specifies that a second number of hardware threads for each of at least a second one or more processors of the plurality of processors accesses the at least one cache line associated with the test case.

5. The computer-implemented method of claim 4 , wherein the second number of hardware threads comprises two hardware threads, and wherein the second one or more processors comprises at least four processors.

6. The computer-implemented method of claim 4 , wherein after executing the test case for the second configuration, the computer-implemented method further comprising:

executing the test case for a third configuration of the plurality of different configurations, wherein the third configuration specifies that a third number of hardware threads for each of the plurality of processors accesses the at least one cache line associated with the test case.

7. The computer-implemented method of claim 6 , wherein the third number of hardware threads comprises a single hardware thread.

8. A system, comprising:

a processor; and

a memory storing program code, which, when executed on the processor, performs an operation comprising:

generating a test case for a plurality of processors, wherein the test case comprises streams of instructions;

allocating at least one cache line associated with the streams of instructions of the test case such that each of the plurality of processors accesses different memory locations within the at least one cache line; and

scheduling the test case for execution by the plurality of processors to achieve at least a first test coverage among the plurality of processors, wherein scheduling the test case comprises spreading the test case across a plurality of different configurations of the plurality of processors without regenerating the test case for each of the plurality of different configurations, each of the plurality of different configurations specifying a number of hardware threads for one or more of the plurality of processors that have access to the at least one cache line associated with the test case.

9. The system of claim 8 , wherein spreading the test case across the plurality of different configurations comprises:

executing the test case for a first configuration of the plurality of different configurations, wherein the first configuration specifies that a first number of hardware threads for each of at least a first one or more processors of the plurality of processors accesses the at least one cache line associated with the test case.

10. The system of claim 9 , wherein the first number of hardware threads comprises four hardware threads, and wherein the first one or more processors comprises at least two processors.

11. The system of claim 9 , wherein after executing the test case for the first configuration, the operation further comprising:

executing the test case for a second configuration of the plurality of different configurations, wherein the second configuration specifies that a second number of hardware threads for each of at least a second one or more processors of the plurality of processors accesses the at least one cache line associated with the test case.

12. The system of claim 11 , wherein the second number of hardware threads comprises two hardware threads, and wherein the second one or more processors comprises at least four processors.

13. The system of claim 11 , wherein after executing the test case for the second configuration, the operation further comprising:

executing the test case for a third configuration of the plurality of different configurations, wherein the third configuration specifies that a third number of hardware threads for each of the plurality of processors accesses the at least one cache line associated with the test case.

14. The system of claim 13 , wherein the third number of hardware threads comprises a single hardware thread.

15. A computer program product, comprising:

a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to perform an operation, the operation comprising:

generating a test case for a plurality of processors, wherein the test case comprises streams of instructions;

allocating at least one cache line associated with the streams of instructions of the test case such that each of the plurality of processors accesses different memory locations within the at least one cache line; and

scheduling the test case for execution by the plurality of processors to achieve at least a first test coverage among the plurality of processors, wherein scheduling the test case comprises spreading the test case across a plurality of different configurations of the plurality of processors without regenerating the test case for each of the plurality of different configurations, each of the plurality of different configurations specifying a number of hardware threads for one or more of the plurality of processors that have access to the at least one cache line associated with the test case.

16. The computer program product of claim 15 , wherein spreading the test case across the plurality of different configurations comprises:

executing the test case for a first configuration of the plurality of different configurations, wherein the first configuration specifies that a first number of hardware threads for each of at least a first one or more processors of the plurality of processors accesses the at least one cache line associated with the test case.

17. The computer program product of claim 16 , wherein the first number of hardware threads comprises four hardware threads, and wherein the first one or more processors comprises at least two processors.

18. The computer program product of claim 16 , wherein after executing the test case for the first configuration, the operation further comprising:

executing the test case for a second configuration of the plurality of different configurations, wherein the second configuration specifies that a second number of hardware threads for each of at least a second one or more processors of the plurality of processors accesses the at least one cache line associated with the test case.

19. The computer program product of claim 18 , wherein the second number of hardware threads comprises two hardware threads, and wherein the second one or more processors comprises at least four processors.

20. The computer program product of claim 18 , wherein after executing the test case for the second configuration, the operation further comprising:

executing the test case for a third configuration of the plurality of different configurations, wherein the third configuration specifies that a single hardware thread for each of the plurality of processors accesses the at least one cache line associated with the test case.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2017
From: DUSANAPUDI, MANOJ; KAPOOR, SHAKTI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041219/0344 →
Continuity (2)
Continuation 14994453 · Jan 13, 2016
Related Publication 20170220440A1 · Aug 3, 2017