IP Library Granted Patent US 9,092,567
Granted Patent B2
US 9,092,567 · App. 13/538,496 · Granted Jul 28, 2015

Systems and methods for analyzing transactions in a computer system

Inventors: Vivekananda M. Vedula (Austin, TX); Jayanta Bhadra (Austin, TX)
Assignee: Freescale Semiconductor, Inc.
G06F11/3636G06F11/0775G06F11/3068
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 9,092,567
App. No.
13/538,496
Granted
Jul 28, 2015
Kind
B2
Abstract

Transactions in a multi-component system have corresponding local identifiers uniquely identifying the transaction among transactions within a particular functional block of the device under test. For each transaction, it is determined whether the transaction is a new request, a handshake request corresponding to a previously generated request, or a response. In response to determining that a transaction of the plurality of transactions is a new request, a global identifier is assigned to the new request which uniquely identifies the new request among new requests of all functional blocks of the device under test. A global entry corresponding to the new request is stored that includes the global identifier of the new request, an indicator of a functional block of the device under test which generated the new request, and a local identifier uniquely identifying the new request within the first functional block.

Claims (77)

1. In a computer system, a method comprising:

receiving a log file from first storage circuitry, wherein the log file includes a plurality of transactions executed within a device under test, wherein each transaction of the plurality of transactions has corresponding local identifier uniquely identifying the transaction among transactions within a particular functional block of the device under test;

for each transaction of the plurality of transactions, determining whether the transaction is a new request, a handshake request corresponding to a previously generated request, or a response;

in response to determining that a transaction of the plurality of transactions is a new request:

assigning a global identifier to the new request which uniquely identifies the new request among new requests of all functional blocks of the device under test; and

storing to second storage circuitry a global entry corresponding to the new request, wherein the global entry includes the global identifier of the new request, an indicator of a functional block of the device under test which generated the new request, and a local identifier uniquely identifying the new request within the first functional block.

2. The method of claim 1 , wherein, in response to determining that the transaction is a new request, the method further comprises:

accessing mapping circuitry to initialize a mapping entry corresponding to the global identifier, wherein each mapping entry of the mapping circuitry corresponds to a unique global identifier; and

storing, in the initialized mapping entry, the indicator of the functional block of the device under test which generated the new request and the local identifier uniquely identifying the new request within the functional block which generated the new request.

3. The method of claim 2 , further comprising:

in response to determining that a transaction of the plurality of transactions is a handshake request corresponding to a previously generated request that is received at a functional block of the device under test:

using the mapping circuitry to determine a global identifier of the previously generated request;

assigning the global identifier of the previously generated request to the handshake request; and

storing to the second storage circuitry a global entry corresponding to the handshake request, wherein the global entry corresponding to the handshake request includes the global identifier corresponding to the previously generated request, an indicator of a functional block which generated the previously generated request, an indicator of the functional block which received the previously generated request, a local identifier uniquely identifying the previously generated request within the functional block which generated the previously generated request, and a local identifier uniquely identifying the handshake request within the functional block which received the previously generated request, wherein the functional block which generated the previously generated request is different from the functional block which receives the previously generated request.

4. The method of claim 3 , wherein the local identifier uniquely identifying the previously generated request within the functional block which generated the previously generated request is independent from the local identifier uniquely identifying the handshake request within the functional block which received the previously generated request.

5. The method of claim 3 , wherein the local identifier uniquely identifying the previously generated request within the functional block which generated the previously generated request and the local identifier uniquely identifying the handshake request within the functional block which received the previously generated request are obtained from the log file.

6. The method of claim 3 , wherein in response to determining that the transaction is a handshake request corresponding to a previously generated request that is received at a functional block of the device under test, the method further comprises:

updating a mapping entry of the mapping circuitry which corresponds to the global identifier of the previously generated request with information of the handshake request.

7. The method of claim 6 , wherein the step of updating the mapping entry of the mapping circuitry which corresponds to the global identifier of the previously generated request with information of the handshake request comprises:

storing, in the mapping entry which corresponds to the global identifier of the previously generated request, an indicator of the functional block which received the previously generated request and a local identifier uniquely identifying the handshake request within the functional block which received the previously generated request.

8. The method of claim 6 , further comprising:

in response to determining that a transaction of the plurality of transactions is a response generated by a functional block:

using the mapping circuitry to assign an inherited global identifier to the response, wherein the inherited global identifier corresponds to a previous handshake request which was received at the functional block which generated the response, wherein the previous handshake request has a corresponding local identifier which uniquely identifies the previous handshake request within the functional block which generated the response; and

storing to the second storage circuitry a global entry corresponding to the response, wherein the global entry corresponding to the response includes the inherited global identifier, an indicator of the functional block which generated the response, and the corresponding local identifier which uniquely identifies the previous handshake request within the functional block which generated the response.

9. The method of claim 8 , further comprising:

correlating global entries stored in the second storage circuitry which have a same global identifier; and

for each unique global identifier, determining if the correlated global entries having the unique global identifier correspond to a complete or incomplete set of transactions.

10. The method of claim 9 , further comprising:

for each unique global identifier, in response to determining that the correlated global entries having the unique global identifier correspond to an incomplete set of transactions, using the correlated global entries which correspond to the incomplete set of transactions to identify a cause of failure.

11. The method of claim 1 , wherein:

in response to determining that a transaction of the plurality of transactions is a new request, the method further comprises:

accessing mapping circuitry to initialize a mapping entry corresponding to the global identifier with information of the new request, wherein each mapping entry of the mapping circuitry corresponds to a unique global identifier; and

in response to determining that a transaction of the plurality of transactions is a handshake request corresponding to a previously generated request that is received at a functional block of the device under test, the method further comprises:

accessing the mapping circuitry to update a mapping entry of the mapping circuitry which corresponds to the global identifier of the previously generated request with information of the handshake request.

12. The method of claim 11 , wherein:

in response to determining that a transaction of the plurality of transactions is a response generated by a functional block:

using the mapping circuitry to assign an inherited global identifier to the response, wherein the inherited global identifier corresponds to a previous handshake request which was received at the functional block which generated the response.

13. The method of claim 1 , wherein the device under test is a software representation of the device under test stored in third storage circuitry, and wherein the plurality of transactions executed within the device under test are further characterized as transactions executed by a simulator.

14. A computer system, comprising:

first storage circuitry configured to store a log file, wherein the log file includes a plurality of transactions executed within a device under test, wherein each transaction of the plurality of transactions has a corresponding local identifier uniquely identifying the transaction among transactions within a particular functional block of the device under test;

second storage circuitry configured to store a plurality of global entries, each of the global entries having a corresponding assigned global identifier;

third storage circuitry configured to store a plurality of mapping entries, each mapping entry corresponding to a unique global identifier; and

a transaction analyzer coupled to the first, second, and third storage circuitries, and configured to:

for each transaction of the plurality of transactions, determine whether the transaction is a new request, a handshake request corresponding to a previously generated request, or a response; and

in response to determining that a transaction of the plurality of transactions is a new request:

assign a global identifier to the new request which uniquely identifies the new request among new requests of all functional blocks of the device under test;

store to the second storage circuitry a global entry corresponding to the new request, wherein the global entry includes the global identifier of the new request, an indicator of a functional block of the device under test which generated the new request, and a local identifier uniquely identifying the new request within the first functional block; and

create a mapping entry in the third storage circuitry, the mapping entry corresponding to the global identifier of the new request and including the indicator of the functional block of the device under test which generated the new request and the local identifier uniquely identifying the new request within the functional block which generated the new request.

15. The computer system of claim 14 , wherein the transaction analyzer is configured to:

in response to determining that a transaction of the plurality of transactions is a handshake request corresponding to a previously generated request that is received at a functional block of the device under test:

use the mapping entries to determine a global identifier of the previously generated request;

assign the global identifier of the previously generated request to the handshake request;

store to the second storage circuitry a global entry corresponding to the handshake request, wherein the global entry corresponding to the handshake request includes the global identifier corresponding to the previously generated request, an indicator of a functional block which generated the previously generated request, an indicator of the functional block which received the previously generated request, a local identifier uniquely identifying the previously generated request within the functional block which generated the previously generated request, and a local identifier uniquely identifying the handshake request within the functional block which received the previously generated request; and

updating a mapping entry of the plurality of mapping entries which corresponds to the global identifier of the previously generated request with information of the handshake request.

16. The computer system of claim 14 , wherein the transaction analyzer is configured to:

in response to determining that a transaction of the plurality of transactions is a response generated by a functional block:

use the mapping entries to assign an inherited global identifier to the response, wherein the inherited global identifier corresponds to a previous handshake request which was received at the functional block which generated the response, wherein the previous handshake request has a corresponding local identifier which uniquely identifies the previous handshake request within the functional block which generated the response; and

store to the second storage circuitry a global entry corresponding to the response, wherein the global entry corresponding to the response includes the inherited global identifier, an indicator of the functional block which generated the response, and the corresponding local identifier which uniquely identifies the previous handshake request within the functional block which generated the response.

17. The computer system of claim 14 , further comprising:

a manager coupled to the second storage circuitry which is configured to:

correlate global entries stored in the second storage circuitry which have a same global identifier; and

for each unique global identifier, determine if the correlated global entries having the unique global identifier correspond to a complete or incomplete set of transactions.

18. A non-transitory computer readable medium comprising instructions, which, when executed by a processor, perform a method comprising:

receiving a log file from first storage circuitry, wherein the log file includes a plurality of transactions executed within a device under test, wherein each transaction of the plurality of transactions has corresponding local identifier uniquely identifying the transaction among transactions within a particular functional block of the device under test;

for each transaction of the plurality of transactions, determining whether the transaction is a new request, a handshake request corresponding to a previously generated request, or a response;

in response to determining that a transaction of the plurality of transactions is a new request:

assigning a global identifier to the new request which uniquely identifies the new request among new requests of all functional blocks of the device under test; and

storing to second storage circuitry a global entry corresponding to the new request, wherein the global entry includes the global identifier of the new request, an indicator of a functional block of the device under test which generated the new request, and a local identifier uniquely identifying the new request within the first functional block.

19. The non-transitory computer readable medium of claim 18 , comprising instructions, which, when executed, perform the method further comprising:

in response to determining that a transaction of the plurality of transactions is a handshake request corresponding to a previously generated request that is received at a functional block of the device under test:

determining a global identifier of the previously generated request;

assigning the global identifier of the previously generated request to the handshake request; and

storing to the second storage circuitry a global entry corresponding to the handshake request, wherein the global entry corresponding to the handshake request includes the global identifier corresponding to the previously generated request, an indicator of a functional block which generated the previously generated request, an indicator of the functional block which received the previously generated request, a local identifier uniquely identifying the previously generated request within the functional block which generated the previously generated request, and a local identifier uniquely identifying the handshake request within the functional block which received the previously generated request.

20. The non-transitory computer readable medium of claim 19 , comprising instructions, which, when executed, perform the method further comprising:

in response to determining that a transaction of the plurality of transactions is a response generated by a functional block:

assigning an inherited global identifier to the response, wherein the inherited global identifier corresponds to a previous handshake request which was received at the functional block which generated the response, wherein the previous handshake request has a corresponding local identifier which uniquely identifies the previous handshake request within the functional block which generated the response; and

storing to the second storage circuitry a global entry corresponding to the response, wherein the global entry corresponding to the response includes the inherited global identifier, an indicator of the functional block which generated the response, and the corresponding local identifier which uniquely identifies the previous handshake request within the functional block which generated the response.

Assignments (22)
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 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 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 →
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 037357/0535 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0555 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0575 →
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 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030258/0501 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030258/0479 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 030256/0706 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2012
From: VEDULA, VIVEKANANDA M.; BHADRA, JAYANTA
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 028731/0957 →
Continuity (1)
Related Publication 20140006875A1 · Jan 2, 2014