IP Library Granted Patent US 8,041,901
Granted Patent B2
US 8,041,901 · App. 11/682,058 · Granted Oct 18, 2011

Performance monitoring device and method thereof

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,041,901
App. No.
11/682,058
Granted
Oct 18, 2011
Kind
B2
Abstract

A performance monitoring device and method are disclosed. The device monitors performance events of a processor. A counter is adjusted in response to the occurrence of a particular performance event. The counter can be associated with a particular instruction address range, or a data address range, so that the counter is adjusted only when the performance event occurs at the instruction address range or the data address range. Accordingly, the information stored in the counter can be analyzed to determine if a particular instruction address range or data address range results in a particular performance event. Multiple counters, each associated with a different performance event, instruction address range, or data address range, can be employed to allow for a detailed analysis of which portions of a program lead to particular performance events.

Claims (38)

1. A method, comprising:

receiving a first performance event indicator associated with a first instruction;

receiving a first data address associated with the first performance event indicator; and

adjusting a first counter based on the first performance event indicator, based on a relationship between the first data address and a first criterion, and based on a relationship between a first instruction address associated with the first instruction and a second criterion.

2. The method of claim 1 , wherein the first criterion comprises a first address range and the second criterion comprises a second address range and adjusting the first counter comprises adjusting the first counter in response to the first instruction address being within the first address range and the first data address being within the second address range.

3. The method of claim 1 , wherein the first criterion comprises a first address range and a second address range and the second criterion comprises a third address range and wherein adjusting the first counter comprises adjusting the first counter in response to the first instruction address being within the first address range or the second address range and the first data address being within the third address range.

4. The method of claim 1 , wherein the first criterion comprises a first address range and the second criterion comprises a second address range and a third address range and wherein adjusting the first counter comprises adjusting the first counter in response to the first instruction address being within the first address range and the first data address being within the second address range or the third address range.

5. The method of claim 1 , wherein the first criterion comprises a first address range and a second address range and the second criterion comprises a third address range and a fourth address range and wherein adjusting the first counter comprises adjusting the first counter in response to the instruction address being within the first address range or the second address range and the data address being within the third address range or the fourth address range.

6. The method of claim 1 , further comprising:

receiving a second performance event indicator associated with a second instruction; and

adjusting a second counter based on the second performance event indicator, a relationship between a second instruction address associated with the second instruction and a third criterion, and the relationship between a second data address associated with the second instruction and a fourth criterion.

7. The method of claim 6 , wherein the first criterion comprises a first address range, the second criterion comprises a second address range, the third criterion comprises a third address range, and the fourth criterion comprises a fourth address range, and wherein adjusting the first counter comprises adjusting the first counter in response to the first instruction address being within the first address range and the first data address being within the second address range; and wherein adjusting the second counter comprises adjusting the second counter in response to the second instruction address being within the third address range and the first data address being within the fourth address range.

8. The method of claim 6 , wherein the first criterion comprises a first address range, the second criterion comprises a second address range, the third criterion comprises the first address range, and the fourth criterion comprises a third address range, and wherein adjusting the first counter comprises adjusting the first counter in response to the first instruction address being within the first address range and the first data address being within the second address range, and wherein adjusting the second counter comprises adjusting the first counter in response to the second instruction address being within the first address range and the first data address being within the third address range.

9. The method of claim 6 , wherein the first criterion comprises a first address range, the second criterion comprises a second address range, the third criterion comprises a third address range, and the fourth criterion comprises the second address range, and adjusting the first counter comprises adjusting the first counter in response to the first instruction address being within a first address range and the first data address being within a second address range; and

wherein adjusting the second counter comprises adjusting the first counter in response to the second instruction address being within a third address range and the first data address being within the second address range.

10. The method of claim 1 , further comprising generating an interrupt signal based on a relationship between a value stored in the first counter and a threshold.

11. The method of claim 1 , wherein the first performance event indicator is representative of an instruction processing performance event.

12. The method of claim 1 , wherein the first performance event indicator is representative of a branch related performance event.

13. A device, comprising:

a processor;

a first register configured to store a first address range;

a second register configured to store a second address range;

a control module comprising;

a first input configured to receive an indicator of a first performance event of the processor, the performance event associated with an execution of first instruction by the processor; and

a first output configured to provide a first adjustment indicator signal based on the indicator of the first performance event, an instruction address associated with the first instruction, a data address associated with the instruction, the first address range, and the second address range; and

a first counter comprising an input coupled to the first output of the control module, the first counter configured to adjust a stored value based on the first adjustment indicator signal being in a first select state.

14. The device of claim 13 , wherein the control module is configured to place the first adjustment indicator signal in the first select state in response to the instruction address being within the first address range and the data address being within the second address range.

15. The device of claim 13 , wherein the control module is configured to place the first adjustment indicator signal in the select state in response to the instruction address being outside of the first address range and the data address being within the second address range.

16. The device of claim 13 , further comprising:

a third register configured to store a third address range;

a fourth register configured to store a fourth address range; and

wherein the control module further comprises a fourth input coupled to the output of the third register and a fifth input coupled to the output of the fourth register.

17. The device of claim 16 , wherein the control module is configured to place the first adjustment indicator signal in the select state in response to the instruction address being within the first address range or the second address range and the data address being within the third address range.

18. The device of claim 16 , wherein the control module is configured to place the first adjustment indicator signal in the select state in response to the first instruction address being within the first address range and the first data address being within the second address range or the third address range.

19. The device of claim 16 , wherein the control module comprises a second output configured to provide a second adjustment indicator based on an indicator of a second performance event, an instruction address associated with a second instruction, a data address associated with the second instruction, the third address range, and the fourth address range and further comprising:

a second counter comprising an input coupled to the second output of the control module, the second counter configured to adjust a stored value based on the second adjustment indicator signal being in a second select state.

20. The device of claim 19 , wherein the control module is configured to place the first adjustment indicator signal in the first state in response to the first instruction address being within the first address range and the first data address being within the second address range;

and is configured to place the second adjustment indicator in the second state in response to the second instruction address being within the third address range and the second data address being within the fourth address range.

Assignments (33)
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 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 →
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 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
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 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 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 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 →
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 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
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 →
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 037354/0640 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2015
From: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 034799/0388 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: INTEL CORPORATION
Reel/Frame 034802/0847 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2015
From: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 034799/0777 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2015
From: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 034799/0664 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2015
From: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 034799/0554 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
SECURITY AGREEMENT Recorded Sep 19, 2007
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 019847/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2007
From: SNYDER, MICHAEL D.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 018960/0004 →