IP Library Granted Patent US 8,972,785
Granted Patent B2
US 8,972,785 · App. 13/549,040 · Granted Mar 3, 2015

Classifying processor testcases

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 8,972,785
App. No.
13/549,040
Granted
Mar 3, 2015
Kind
B2
Abstract

Embodiments of a testcase checker system are disclosed herein. Embodiments of a testcase checker system may include an instruction set simulator configured to simulate execution of instructions of a testcase on a microprocessor using a reference model associated with an architecture of the microprocessor. The instruction set simulator may generate logging data associated with the each instruction based on the simulated execution of that instruction. The testcase checker system may also include checker module comprising a set of rules. Each of these rules may be associated with a boundedly undefined condition. The checker module is configured to receive the logging data associated with an instruction from the instruction set simulator and process the logging data based on the rules to determine if any of the rules are violated.

Claims (30)

1. A testcase checker system, comprising:

a processor; and

a computer readable medium, the computer readable medium comprising instructions to be executed by the processor, the instructions include:

an instruction set simulator configured to simulate execution of each instruction of a sequence of instructions of a testcase on a microprocessor, wherein simulating the execution of each instruction includes using a reference model associated with an architecture of the microprocessor, and to generate logging data associated with each instruction of the sequence of instructions based on the simulated execution of that instruction; and

a checker module comprising a set of rules, wherein each rule is associated with a boundedly undefined condition and the checker module is configured to receive the logging data associated with each instruction from the instruction set simulator and to process the logging data associated with each instruction based on each rule to determine if each rule is violated.

2. The testcase checker system of claim 1 , wherein the checker module is configured to classify a testcase as valid or invalid, wherein the testcase is classified as invalid if any of the set of rules are violated.

3. The testcase checker system of claim 2 , wherein the instruction set simulator is configured to generate logging data associated with the simulated execution of an instruction during a fetch of the instruction, a simulated execution of the instruction and an update to an architectural state of the microprocessor.

4. The testcase checker system of claim 3 , wherein the logging data includes translation data, data on a state change, data on usage of a resource, data on a register state change or a fetch address.

5. The testcase checker system of claim 2 , wherein the set of rules comprise an endian aliasing rule, a context synchronization rule, an implicit branching rule and a cache inhibited aliasing rule.

6. The testcase checker system of claim 2 , wherein the computer readable medium further comprises instructions for a wrapper configured to invoke the instruction set simulator on the testcase.

7. The testcase checker system of claim 2 , wherein the checker module is configured to receive logging data associated with a first instruction of the sequence of instructions from the instruction set simulator and to store the logging data associated with the first instruction based on a first rule, to receive logging data associated with a second instruction of the sequence of instructions that is subsequent to the first instruction and to determine if the first rule is violated based on the stored logging data associated with the first instruction and the logging data associated with the second instruction.

8. A method for testcase classification, comprising:

simulating, by a processor, execution of each instruction of a sequence of instructions of a testcase on a microprocessor, wherein simulating the execution of each instruction includes using a reference model associated with an architecture of the microprocessor;

generating logging data associated with each instruction of the sequence of instructions based on the simulated execution of that instruction; and

processing the logging data associated with each instruction based on each of a set of rules to determine if each rule is violated, wherein each rule is associated with a boundedly undefined condition.

9. The method of claim 8 , further comprising classifying a testcase as valid or invalid, wherein the testcase is classified as invalid if any of the set of rules are violated.

10. The method of claim 9 , wherein the logging data is generated in association with the simulated execution of an instruction during a fetch of the instruction, a simulated execution of the instruction and an update to an architectural state of the microprocessor.

11. The method of claim 10 , wherein the logging data includes translation data, data on a state change, data on usage of a resource, data on a register state change or a fetch address.

12. The method of claim 11 , wherein the set of rules comprise an endian aliasing rule, a context synchronization rule, an implicit branching rule and a cache inhibited aliasing rule.

13. The method of claim 9 , further comprising invoking the instruction set simulator on the testcase with a wrapper.

14. The method of claim 9 , wherein processing the logging data associated with each instruction further comprises storing logging data associated with a first instruction based on a first rule and determining if the first rule is violated based on the stored logging data associated with the first instruction and logging data associated with a second instruction of the sequence of instructions that is subsequent to the first instruction.

15. A non-transitory computer readable medium, the computer readable medium comprising instructions for:

simulating execution of each instruction of a sequence of instructions of a testcase on a microprocessor, wherein simulating the execution of each instruction includes using a reference model associated with an architecture of the microprocessor;

generating logging data associated with each instruction of the sequence of instructions based on the simulated execution of that instruction; and

processing the logging data associated with each instruction based on each of a set of rules to determine if each rule is violated, wherein each rule is associated with a boundedly undefined condition.

16. The non-transitory computer readable medium of claim 15 , further comprising classifying a testcase as valid or invalid, wherein the testcase is classified as invalid if any of the set of rules are violated.

17. The non-transitory computer readable medium of claim 16 , wherein the logging data is generated in association with the simulated execution of an instruction during a fetch of the instruction, a simulated execution of the instruction and an update to an architectural state of the microprocessor.

18. The non-transitory computer readable medium of claim 17 , wherein the logging data includes translation data, data on a state change, data on usage of a resource, data on a register state change or a fetch address.

19. The non-transitory computer readable medium of claim 16 , wherein the set of rules comprise an endian aliasing rule, a context synchronization rule, an implicit branching rule and a cache inhibited aliasing rule.

20. The non-transitory computer readable medium of claim 16 , wherein the computer readable medium further comprises instructions for a wrapper configured to invoke the instruction set simulator on the testcase and wherein processing the logging data associated with each instruction further comprises storing logging data associated with a first instruction based on a first rule and determining if the first rule is violated based on the stored logging data associated with the first instruction and logging data associated with a second instruction of the sequence of instructions that is subsequent to the first instruction.

Assignments (28)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2025
From: NXP USA, INC.
To: TAIWAN SEMICONDUCTOR MANUFACTURING COMPANY LIMITED
Reel/Frame 072889/0939 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0614 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0633 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0652 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2012
From: KAHNE, BRIAN C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 028609/0618 →