IP Library Granted Patent US 9,176,821
Granted Patent B2
US 9,176,821 · App. 14/067,920 · Granted Nov 3, 2015

Watchpoint support system for functional simulator

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,176,821
App. No.
14/067,920
Granted
Nov 3, 2015
Kind
B2
Abstract

A functional simulator with watchpoint support includes a CPU having a first-level DMI cache, a watchpoint manager having a second-level DMI cache, an interconnect module, and a memory controller. The simulator is operated by a front-end tool. Watchpoints corresponding to a predetermined memory addresses are set by the front-end tool and stored as a watchpoint address list in the watchpoint manager. When a memory access request is received by the first-level DMI cache, after a failure to complete the memory access request, the CPU transmits the request to the watchpoint manager. The watchpoint manager searches for a memory address associated with the memory access request in the watchpoint address list. If a match is found, the watchpoint manager generates a watchpoint hit signal and notifies the front-end tool.

Claims (22)

1. A functional simulator with watchpoint support and operated by a front-end tool, the functional simulator comprising:

a central processing unit (CPU) including a first-level direct memory interface (DMI) cache for storing a first plurality of memory pages and associated memory addresses, wherein the CPU receives a memory access request for a first memory address;

a watchpoint manager, connected to the CPU, for storing a watchpoint address list comprising a second plurality of memory pages and associated memory addresses, wherein for the watchpoint address list, a corresponding plurality of watchpoints are assigned by the front-end tool,

wherein the watchpoint manager receives the memory access request if the first-level DMI cache fails to complete the memory access request, searches the first memory address associated with the memory access request in the watchpoint address list, generates a watchpoint hit signal when the first memory address is present in the watchpoint address list, and notifies the front-end tool when the watchpoint hit signal is generated.

2. The functional simulator of claim 1 , wherein the CPU invalidates a DMI access to the first-level DMI cache corresponding to the second plurality of memory pages and associated memory addresses.

3. The functional simulator of claim 1 , wherein the watchpoint manager further includes a second-level DMI cache for storing a third plurality of memory pages and associated memory addresses of the second plurality of memory pages, and associated memory addresses that are present in the first-level DMI cache.

4. The functional simulator of claim 3 , wherein the watchpoint manager searches the first memory address in the second-level DMI cache when the first memory address is not present in the watchpoint address list.

5. The functional simulator of claim 4 , further comprising a memory controller, connected to the watchpoint manager, for receiving the memory access request from the watchpoint manager, and completing the memory access request when the first memory address is not present in the second-level DMI cache.

6. The functional simulator of claim 5 , further comprising an interconnect module, connected to the watchpoint manager and the memory controller, for simulating a bus system.

7. A method for operating a functional simulator with watchpoint support, wherein the functional simulator is run by a front-end tool, the functional simulator including a central processing unit (CPU) having a first-level direct memory interface (DMI) cache, a watchpoint manager having a second-level DMI cache, and a memory controller, the method comprising:

assigning a plurality of watchpoints to a first plurality of memory addresses by the front-end tool;

adding the plurality of watchpoints to a watchpoint address list by the watchpoint manager, wherein the watchpoint address list is stored in the second-level DMI cache;

invalidating a DMI access to the first-level DMI cache corresponding to a first plurality of memory pages associated with the first plurality of memory addresses, wherein the CPU invalidates the DMI access;

setting a plurality of access bits negative to prevent the DMI access to the first plurality of memory pages during execution of a subsequent memory access request, wherein the plurality of access bits is set by the CPU;

receiving a memory access request by the first-level DMI cache for a first memory address;

transmitting the memory access request to the watchpoint manager by the CPU if the first-level DMI caches fails to complete the memory access request;

searching for the first memory address associated with the memory access request in the watchpoint address list by the watchpoint manager;

generating a watchpoint hit signal when the first memory address is present in the watchpoint address list;

searching for the first memory address in the second-level DMI cache when the first memory address is not present in the watchpoint address list, wherein the second-level DMI cache stores a second plurality of memory pages and associated memory addresses of the first plurality of memory pages and associated memory addresses that are present in the first-level DMI cache; and

transmitting the memory access request to the memory controller for completing the memory access request when the first memory address is absent from the second-level DMI cache.

8. The method of claim 7 , further comprising the watchpoint manager notifying the front-end tool when the watchpoint hit signal is generated.

9. The method of claim 7 , wherein the memory access request is transmitted to the memory controller by way of an interconnect module, wherein the interconnect module simulates a bus system.

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 →
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 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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FILING AND REMOVE APPL. NO. 14085520 REPLACE IT WITH 14086520 PREVIOUSLY RECORDED AT REEL: 037515 FRAME: 0390. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Mar 1, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037926/0642 →
CORRECTIVE ASSIGNMENT OF INCORRECT APPL. NO. 14/085,520 PREVIOUSLY RECORDED AT REEL: 037515 FRAME: 0390. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 11, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037792/0227 →
CORRECTIVE ASSIGNMENT OF INCORRECT NUMBER 14085520 PREVIOUSLY RECORDED AT REEL: 037458 FRAME: 0420. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTON OF SECURITY INTEREST IN PATENTS. Recorded Feb 11, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037785/0568 →
CORRECTIVE ASSIGNMENT OF INCORRECT PATENT APPLICATION NUMBER 14085520 ,PREVIOUSLY RECORDED AT REEL: 037458 FRAME: 0399. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 11, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037785/0454 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT APPL. NO. 14/085,520 PREVIOUSLY RECORDED AT REEL: 037515 FRAME: 0420. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 11, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037879/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 037458 FRAME 0420. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Jan 14, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037515/0420 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 037458 FRAME 0399. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Jan 14, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037515/0390 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FOUNDING, INC.
Reel/Frame 037458/0420 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FOUNDING, INC.
Reel/Frame 037458/0399 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0790 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Mar 13, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., COLLATERAL AGENT
Reel/Frame 032445/0689 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Mar 13, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032445/0577 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Mar 13, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032445/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2013
From: JAIN, SANDEEP
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 031514/0914 →