IP Library Granted Patent US 7,100,152
Granted Patent B1
US 7,100,152 · App. 09/494,765 · Granted Aug 29, 2006

Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use 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 7,100,152
App. No.
09/494,765
Granted
Aug 29, 2006
Kind
B1
Abstract

A software analysis system having a filter for selectively collecting tags generated by a target system during execution of a software program under analysis in accordance to a programmable filtering criteria. The system includes a decoder for decoding the tag type of the tags captured from the data bus of the target system, and a comparator for comparing the tag types to the programmable filtering criteria to determine whether the tag should be collected. The programmable filtering criteria may be programmed by collecting filter tags from the target system, or directly programmed by a software developer using a filtering user interface. The programmable filtering criteria is implemented by a filter table that stores a flag associated with each tag type. The flag is indicative of whether tag data of a respective tag type should be collected. Tag data of the tag types meeting the programmable filtering criteria have timestamp information appended to the tag data and are collected in a tag buffer.

Claims (43)

1. A system for analyzing a software program executing on a target system, the target system accessing a predetermined memory location and applying tags to the data bus of the target system, each of the tags having a tag type and tag data when an executable tag statement instrumented in the software program is executed, the system comprising:

a tag detection circuit coupled to an address bus of the target system to detect access of the predetermined memory location, and generate in response thereto a detection signal indicative of emission of a tag by the target system;

a trace filter coupled to the tag detection circuit and the data bus of the target system to capture one of the tags in response to receiving the detection signal, the trace filter having a decoder circuit to decode the tag type of the captured tag, and a comparator circuit coupled to the decoder circuit to receive the tag type and determine whether the captured tag is collectable according to filtering criteria, wherein the trace filter is adapted to implement a filter table for storing the filtering criteria, the filter table having a list of tag types and associated collection flags indicating that the respective tag type is collectable when set; and

a collection device coupled to the trace filter and structured to collect the tag data of collectable tags.

2. The system of claim 1 wherein the trace filter is programmable to allow the filtering criteria to be programmed.

3. The system of claim 1 , further comprising a probe through which the tag detection circuit is coupled to the address bus and the trace filter is coupled to the data bus.

4. The system of claim 1 , further comprising a host processor coupled to the collection device to receive and process the tag data of collectable tags.

5. The system of claim 1 wherein the collection device comprises a tag buffer to temporarily store the tag data of collectable tags.

6. The system of claim 5 , further comprising a timestamp generator coupled to the tag buffer to append timestamp data to the tag data of collectable tags when stored in the buffer.

7. The system of claim 1 wherein the collection device comprises a processor to collect and process the tag data of collectable tags.

8. A system for analyzing a software program executing on a target system, the target system generating tags having a tag type and tag data in response to executing tag statements presents in the software program, the system comprising:

a probe coupled to a data bus of the target system;

a trace buffer coupled to the probe to capture tags generated by the target system, the trace buffer comprising:

a decoder coupled to the data bus through the probe to decode the tag type of the captured tags;

a tag filter coupled to the decoder to filter out non-collectable tag types and collect the tag data of collectable tag types in accordance to a programmable filtering criteria, wherein the programmable filtering criteria is implemented by a filter table having a collection flag associated with each tag type, the collection flag indicative of whether the respective tag type is collectable; and

a buffer coupled to the tag filter to store the collected tag data; and

a processor coupled to the trace buffer to process the collected tag data.

9. The system of claim 8 wherein the trace buffer further comprises a timestamp generator coupled to the buffer to append timestamp information to the stored tag data.

10. A system for analyzing software executing in a target system, the target system emitting tags having a tag type and tag data when an executable tag statement instrumented in the software program is executed, the system comprising:

a detection means detecting tags emitted from the target system;

a tag filtering means filtering the emitted tags according to a filtering criteria;

a collecting means collecting tags satisfying the filtering criteria;

a processing means processing the collected tags; and

wherein the tag filtering means includes a programmable means to program the filtering criteria and the programmable means comprises a filter tag collected by the collecting means, the filter tag having tag data reprogramming the filtering criteria in accordance with the tag data of the filter tag.

11. The system of claim 10 wherein the tag filtering means comprises:

a decoding means decoding the tag type of the emitted tags; and

a comparator means comparing the decoded tag type of the filtering criteria, the comparator means further disregarding tags having tag types determined to be not collectable, and selecting tags having tag types determined to be collectable.

12. The system of claim 10 wherein the collection means comprises a tag buffer for temporarily storing collected tags prior to processing by the processing means.

13. The system of claim 12 , further comprising a timestamp generator for appending timestamp data to the tag data when stored in the tag buffer.

14. The system of claim 10 wherein the processing means comprises a host processor.

15. A method for analyzing software executing in a target system, the target system generating tags having a tag type and tag data when an executable tag statement instrumented in the software program is executed, the method comprising:

detecting tags generated by the target system;

filtering the detected tags according to a programmable filtering criteria;

collecting tags satisfying the programmable filtering criteria; and

reprogramming the programmable filtering criteria, wherein reprogramming the programmable filtering criteria comprises collecting a filter tag and setting a collection flag for the tag types in accordance with the tag data of the filter tag.

16. The method of claim 15 , further comprising processing the collected tags.

17. The method of claim 15 wherein filtering the emitted tags comprises:

decoding the tag type of the detected tags;

determining a programmable collection status for each of the tag types in accordance with the programmable filtering criteria;

disregarding tags having tag types determined to be not collectable; and

selecting tags having tag types determined to be collectable.

18. The method of claim 15 wherein collecting tags comprises storing the tag data in a tag buffer.

19. The method of claim 18 , further comprising appending timestamp data to the tag data when stored in the tag buffer.

Assignments (23)
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 →
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 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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
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 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
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/0225 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
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 Feb 2, 2007
From: FREESCALE SEMICONDUCTOR, INC.; FREESCALE ACQUISITION CORPORATION; FREESCALE ACQUISITION HOLDINGS CORP.; FREESCALE HOLDINGS (BERMUDA) III, LTD.
To: CITIBANK, N.A. AS COLLATERAL AGENT
Reel/Frame 018855/0129 →
MERGER Recorded Dec 19, 2005
From: METROWERKS CORPORATION
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 016914/0044 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2003
From: APPLIED MICROSYSTEMS CORPORATION
To: METROWERKS CORPORATION
Reel/Frame 013609/0862 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2000
From: BIRUM, DERRICK JASON; ELLIS, RICHAD DONALD; TINKER, JEFFREY LEE
To: APPLIED MICROSYSTEMS CORPORATION
Reel/Frame 010533/0680 →