Claims
- 1. A method of executing a program written for a target instruction set architecture on a host computing system having a plurality of processors designed to process instructions of a second instruction set architecture, comprising:
representing each portion of the program designed to run on a processor of a target computing system as one or more program threads to be executed on the host computing system.
- 2. The method of claim 1, further comprising:
scheduling each thread for execution on one or more processors in the host system.
- 3. The method of claim 1, further comprising:
representing functions of the target system that are not specific to one processor of the target system as one or more threads to be executed by one or more processors on the host system.
- 4. The method of claim 2, further comprising:
representing functions of the target system that are not specific to one processor of the target system as one or more threads to be executed by one or more processors on the host system.
- 5. The method of claim 1, wherein a number of threads exceeds a number of processors in the host system.
- 6. The method of claim 1, wherein after a given group of instructions has been interpreted a predetermined number of times, translating the group of instructions from the first instruction set to the second instruction set.
- 7. The method of claim 6, wherein the process of interpretation is performed as a thread in a multiprocessor system.
- 8. The method of claim 1, wherein a plurality of functions of said processor at a given time are represented as multiple threads.
- 9. The method of claim 1, further comprising:
dynamically creating threads.
- 10. The method of claim 1, further comprising:
simultaneously identifying a translation of a first thread and executing a second thread.
- 11. The method of claim 1, further comprising:
simultaneously translating a first thread and executing a second thread.
- 12. The method of claim 1, wherein a many-to-many mapping is performed of said threads to said processors.
- 13. The method of claim 1, wherein a host application thread is running while an emulation thread is being performed.
- 14. A method of emulation of a multiprocessor system, comprising:
representing portions of a target system as threads for execution on a host system; and scheduling each of said threads for execution on said host system.
- 15. A method of emulation of a multiprocessor system, comprising:
mapping hardware resources of a target system into software threads; mapping said software threads to hardware resources of a host system; mapping state information of the target system into a memory of the host system; and improving performance of emulation by partitioning emulation tasks into a larger number of threads.
- 16. A system for emulation of a multiprocessor system, comprising:
means for mapping hardware resources of a target system into software threads; means for mapping said software threads to hardware resources of a host system; means for mapping state information of the target system into a memory of the host system; and means for improving performance of emulation by partitioning emulation tasks into a larger number of threads.
- 17. A system for executing a program written for a target instruction set architecture on a host computing system having a plurality of processors designed to process instructions of a second instruction set architecture, comprising:
a representation unit for representing each portion of the program designed to run on a processor of the target computing system as one or more program threads to be executed on the host computing system.
- 18. A system for emulation for a multiprocessor system, comprising:
a first mapping module for mapping hardware resources of a target system into software threads; a second mapping module for mapping said software threads to hardware resources of a host system; a third mapping module for mapping state information of the target system into a memory of the host system; and a partitioning module for partitioning emulation tasks into a larger number of threads.
- 19. A thread processing structure for a host computing system of a multiprocessor system, comprising:
a thread pool for holding threads; a thread processor for accessing a memory of said host computing system, and for determining which thread in the thread pool to select for emulation; a thread creator for creating new threads and placing said new threads in said thread pool; and a thread scheduler for scheduling said threads held in said thread pool, said scheduler scanning waiting threads and allocating a next thread in priority order to an available processor of said multiprocessor system.
- 20. A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method of executing a program written for a target instruction set architecture on a host computing system having a plurality of processors designed to process instructions of a second instruction set architecture, said method comprising:
representing each portion of the program designed to run on a processor of a target computing system as one or more program threads to be executed on the host computing system.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is related to U.S. Patent Application No. 10/______, filed on ______, to Nair et al., entitled “METHOD AND SYSTEM FOR EFFICIENT EMULATION OF MULTIPROCESSOR MEMORY CONSISTENCY” having IBM Docket No. YOR920010532US1, to U.S. Patent Application No. 10/______, filed on ______, to Nair et al., entitled“HYBRID MECHANISM FOR MORE EFFICIENT EMULATION AND METHOD THEREFOR” having IBM Docket No. YOR920010534US1, and to U.S. Patent Application No. 10/______, filed on ______, to Nair et al., entitled“METHOD AND SYSTEM FOR EFFICIENT EMULATION OF MULTIPROCESSOR ADDRESS TRANSLATION ON A MULTIPROCESSOR HOST” having IBM Docket No. YOR920010535US1, and to U.S. Patent Application No. 10/______, filed on ______, to Nair et al., entitled“METHOD AND SYSTEM FOR TRANSPARENT DYNAMIC OPTIMIZATION IN A MULTIPROCESSING ENVIRONMENT” having IBM Docket No. YOR920020056US1, each assigned to the present assignee, and incorporated herein by reference.