IP Library Granted Patent US 7,451,073
Granted Patent B2
US 7,451,073 · App. 10/178,967 · Granted Nov 11, 2008

System and method for increasing performance in multi-CPU simulation

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,451,073
App. No.
10/178,967
Granted
Nov 11, 2008
Kind
B2
Abstract

A system and method for increasing performance in a simulator environment operable to simulate a multiprocessor platform with program code running thereon. A set of processors are initialized upon instantiating the simulator environment on a host machine for executing the program code instructions. Code execution on a simulated processor is suspended by executing a simulator API routine which is called when the program code is to enter an idle state. The host resources that would otherwise have been spent on the processor running the idle loops are therefore conserved for use by the remaining processors.

Claims (31)

1. A method of improving performance in a simulator environment operable to simulate a multiprocessor platform with a program running thereon, comprising:

initializing a list of simulated processors in said simulator environment for executing said program, said simulator environment being effectuated on a host machine having finite computing resources; and

suspending execution of said program on a particular simulated processor when said program is to enter an idle state on said particular simulated processor, said operation of suspending being effectuated via a simulator application program interface (API), whereby said host machine's computing resources are conserved.

2. The method of improving performance in a simulator environment as set forth in claim 1 , wherein said simulator API comprises a routine that is executed on said particular simulated processor.

3. The method of improving performance in a simulator environment as set forth in claim 1 , wherein said simulator API comprises a routine that is executed on another simulated processor.

4. The method of improving performance in a simulator environment as set forth in claim 1 , wherein said list of simulated processors is modified to indicate that said particular simulated processor is suspended.

5. The method of improving performance in a simulator environment as set forth in claim 4 , wherein said list of processors includes an indication that said particular simulated processor is operable to be re-activated responsive to an external event.

6. The method of improving performance in a simulator environment as set forth in claim 5 , wherein said external event comprises an interrupt.

7. The method of improving performance in a simulator environment as set forth in claim 4 , further comprising the step of re-activating said particular simulated processor.

8. The method of improving performance in a simulator environment as set forth in claim 1 , wherein said host machine includes at least one host processor and said simulator environment comprises a single-threaded simulator environment.

9. The method of improving performance in a simulator environment as set forth in claim 1 , further comprising the step of continuing to execute said program on remaining simulated processors in said simulator environment.

10. A system for improving performance in a host machine operable to simulate a multiprocessor platform with a program running thereon, comprising:

means to initialize a list of simulated processors in a simulator environment for executing said program, said simulator environment being effectuated on said host machine having finite computing resources; and

means for suspending execution of said program on a particular simulated processor when said program is to enter an idle state on said particular simulated processor, wherein said means for suspending includes a simulator application program interface (API) routine, whereby said host machine's computing resources are conserved.

11. The system for improving performance in a host machine as set forth in claim 10 , wherein said simulator API routine is operable to be executed on said particular simulated processor.

12. The system for improving performance in a host machine as set forth in claim 10 , wherein said simulator API routine is operable to be executed on another simulated processor.

13. The system for improving performance in a host machine as set forth in claim 10 , further including means to indicate that said particular simulated processor is suspended.

14. The system for improving performance in a host machine as set forth in claim 13 , further including means to indicate that said particular simulated processor is operable to be reactivated responsive to an external event.

15. The system for improving performance in a host machine as set forth in claim 14 , wherein said external event comprises an interrupt.

16. The system for improving performance in a host machine as set forth in claim 10 , further including means for re-activating said particular simulated processor.

17. The system for improving performance in a host machine as set forth in claim 10 , wherein said host machine includes at least one host processor and said simulator environment comprises a single-threaded simulator environment.

18. The system for improving performance in a host machine as set forth in claim 10 , further including means for continuing to execute said program on remaining simulated processors in said simulator environment.

19. A resource distribution method operable in a host machine having finite computing resources, said host machine for simulating a multiprocessor platform with a program running thereon, said method comprising:

initializing a list of simulated processors for executing said program;

commencing execution of said program on said simulated processors, wherein each of said simulated processors consumes a portion of said host machine's computing resources pursuant to executing said program; and

suspending execution of said program on a particular simulated processor when said program is to enter an idle state on said particular simulated processor, said operation of suspending being effectuated via a simulator application program interface (API), thereby releasing for distribution said host machine's computing resources otherwise consumed by said particular simulated processor.

20. The resource distribution method as set forth in claim 19 , wherein said simulator API comprises a routine that is executed on said particular simulated processor.

21. The resource distribution method as set forth in claim 19 , wherein said simulator API comprises a routine that is executed on another simulated processor.

22. The resource distribution method as set forth in claim 19 , wherein said list of simulated processors is modified to indicate that said particular simulated processor is suspended.

23. The resource distribution method as set forth in claim 22 , wherein said list of processors includes an indication that said particular simulated processor is operable to be re-activated responsive to an external event.

24. The resource distribution method as set forth in claim 23 , wherein said external event comprises an interrupt.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 056157/0492 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2003
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.
Reel/Frame 014061/0492 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2003
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 013776/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2002
From: TORMEY, DANIEL; BOLDING, JOE
To: HEWLETT PACKARD COMPANY
Reel/Frame 013455/0263 →