IP Library Granted Patent US 7,162,401
Granted Patent B1
US 7,162,401 · App. 10/402,817 · Granted Jan 9, 2007

Monitoring of resources that are being modeled by simulation or emulation

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,162,401
App. No.
10/402,817
Granted
Jan 9, 2007
Kind
B1
Abstract

Whenever a resource being modeled is accessed, an indication about the access is stored in a number of memory locations of a corresponding number of applications that are interested in monitoring the resource. The memory locations (also called “monitoring memory locations”) are individually identified for each application when allocating a location in main memory. At this time, a pointer to the monitoring memory location is supplied to the application and also added to a group of pointers of locations to be updated when accessing the resource. In addition, in certain embodiments, a bit is allocated within a bitmap for each monitoring memory location for any given application. Such a bit is set at the time of updating the corresponding monitoring memory location and cleared when the application reads the monitoring memory location. Just checking the bitmap as a whole can inform an application if there is any change in any monitoring memory locations of that application. Moreover, the application may use individual bits of the bitmap to identify (and cycle through) only those monitoring memory locations that have changed. Update of monitoring memory locations may be implemented via overloading of operators that access each resource.

Claims (41)

1. A computer-implemented method, the method comprising:

modeling a plurality of resources in a simulator;

wherein at least one resource being modeled in said simulator includes at least one of logic, storage and microcontroller;

said simulator receiving, from a first application, a first indication of interest in monitoring an access to a first resource in said simulator;

said simulator storing a first address of a first location in memory in response to receipt of said first indication;

said simulator receiving, from a second application, a second indication of interest in monitoring said first resource;

said simulator storing a second address of a second location in memory in response to receipt of said second indication;

in response to said access to said first resource, said simulator updating each of said first location and said second location;

wherein said first location is checked by the first application to determine if said first resource is accessed; and

wherein said second location is checked by the second application to determine if said first resource is accessed.

2. The method of claim 1 wherein the first resource comprises a register modeled in said simulator, and the access to the first resource comprises a write operation which changes a value held in the register.

3. The method of claim 1 wherein the first resource being modeled comprises a memory that comprises a plurality of locations hereinafter referred to as “data memory locations” and the access to the first resource comprises a write operation which changes a value held in a data memory location.

4. The method of claim 3 wherein:

the first location identified by said first address comprises a bitmap, and each bit in the bitmap corresponds to a data memory location;

an active bit in the bitmap indicates that a value in the corresponding data memory location has changed; and

an inactive bit in the bitmap indicates that a value in the corresponding data memory location remains unchanged.

5. The method of claim 1 wherein:

said microcontroller is included in a second resource being modeled in said simulator;

the access to the first resource is performed by the microcontroller in the second resource, in response to a statement of a computer program comprising an operator in a high level language; and

said simulator performs said updating by invoking a predetermined method while simulating operation of the microcontroller, in response to the operator being overloaded.

6. The method of claim 1 wherein the first resource comprises a register and the access to the first resource comprises a read operation which maintains unchanged a value held in the register.

7. A computer-implemented method, the method comprising:

modeling a plurality of resources in an emulator;

a first resource in said plurality of resources receiving an access from at least another resource in said plurality of resources;

said emulator receiving, from a first application, a first indication of interest in monitoring said first resource in said emulator;

said emulator storing a first address of a first location in memory used by said first application to check if said first resource is accessed;

said emulator receiving, from a second application, a second indication of interest in monitoring said first resource;

said emulator storing a second address of a second location in memory used by said second application to check if said first resource is accessed;

in response to said access to said first resource, said emulator updating each of said first location and said second location.

8. The method of claim 7 wherein the plurality of resources are modeled in hardware by said emulator.

9. The method of claim 7 wherein the plurality of resources are modeled in software by said emulator.

10. A computer-implemented system, the system comprising:

a memory encoded with a plurality of applications, each application comprising:

means for generating an indication of interest in monitoring a resource; and

means for checking a location known to said application to determine if said resource is accessed; and

a simulator for modeling the resource, the simulator comprising:

means for storing an address of said location, in response to receipt of said indication of interest from said means for generating; and

means for updating a plurality of locations known to said plurality of applications, in response to access of said resource.

11. The system of claim 10 wherein:

each application further comprises means for receiving a pointer to a set of memory locations including said location; and

said simulator further comprises means for supplying said pointer if not previously identified.

Assignments (6)
PATENT SECURITY AGREEMENT Recorded May 13, 2021
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 056241/0453 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2021
From: MICRO DESIGN LLC
To: RPX CORPORATION
Reel/Frame 055756/0964 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2016
From: NET NAVIGATION SYSTEMS, LLC
To: CLEARWATER INNOVATIONS, LLC
Reel/Frame 037485/0238 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2013
From: NET NAVIGATION SYSTEMS, LLC
To: CLEARWATER INNOVATIONS, LLC
Reel/Frame 031719/0375 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2011
From: APPLIED MICRO CIRCUITS CORPORATION
To: NET NAVIGATION SYSTEMS, LLC
Reel/Frame 026714/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2003
From: ABELES, ROBERT EMIL
To: APPLIED MICRO CIRCUITS CORPORATION
Reel/Frame 013927/0290 →