← Back to Patent Explorer
US5301302A Expired / Lapsed US ⏱️ 0.0 years remaining

Memory mapping and special write detection in a system and method for simulating a CPU processor

Assignee: International Business Machines Corp
•
Filing: 1991-04-02
•
Granted: 1994-04-05
•
Expires: 2011-04-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The system and method of this invention simulates the flow of control of an application program targeted for a specific instruction set of a specific processor by utilizing a simulator running on a second processing system having a second processor with a different instruction set. The simulator reduces the number of translated instructions needed to simulate the flow of control of the first processor instructions by detecting, at the time of a store to memory, whether an instruction, data, or video is being updated. If the memory location that is being updated contains an instruction, the simulator takes additional steps to guarantee the correct execution of the modified instruction. If the simulator determines at the time of a store that the memory location being modified is data, the simulator needs to take no additional steps.

Inventors

  • 👤 Joe W. Blackard
  • 👤 Richard G. Fogg, Jr.
  • 👤 Arturo M. de Nicolas

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 04:29
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/455; G06F9/45504

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 228 words
A method for aiding in simulating a first instruction flow of control of an application, said flow of control having a plurality of first instructions of a first processor instruction set, by a plurality of second instructions of a second processor instruction set of a processing system, said method comprising: creating a table having a plurality of locations corresponding to a plurality of second processor memory locations, each one of said second processor memory locations having contents the same as a respective first processor memory location, for indicating a type of contents for any one of said second processor memory locations; storing, during a translation of an instruction of said first processor instruction set contained within any one of said second processor memory locations into an instruction of said second processor instruction set, a first indicator, in a location in said table corresponding to said second processor memory location, indicating that the type of contents of said second processor memory location is an instruction; determining, during a modification to the contents of any one of said plurality of second processor memory locations, whether an instruction is being modified by checking the corresponding location in the table for said stored first indicator; and determining whether translation is necessary for the contents in said second processor memory location being modified if said first indicator indicates an instruction is being modified.
Claim 2
Independent Claim 228 words
A method for aiding in simulating a first instruction flow of control of an application, said flow of control having a plurality of first instructions of a first processor instruction set, by a plurality of second instructions of a second processor instruction set of a processing system, said method comprising: creating a table having a plurality of locations corresponding to a plurality of second processor memory locations, each one of said second processor memory locations having contents the same as a respective first processor memory location, for indicating a type of contents for any one of said second processor memory locations; storing, during a translation of an instruction of said first processor instruction set contained within any one of said second processor memory locations into an instruction of said second processor instruction set, a first indicator, in a location in said table corresponding to said second processor memory location, indicating that the type of contents of said second processor memory location is an instruction; determining, during a modification to the contents of any one of said plurality of second processor memory locations, whether an instruction is being modified by checking the corresponding location in the table for said stored first indicator; and determining whether translation is necessary for the contents in said second processor memory location being modified if said first indicator indicates an instruction is being modified.
Claim 3
Independent Claim 234 words
A system for aiding in simulating a first instruction flow of control of an application, said flow of control having a plurality of first instructions of a first processor instruction set, by a plurality of second instructions of a second processor instruction set of a processing system, said system comprising: means for creating a table having a plurality of locations corresponding to a plurality of second processor memory locations, each one of said second processor memory locations having contents the same as a respective first processor memory location, for indicating a type of contents for any one of said second processor memory locations; means for storing, during a translation of an instruction of said first processor instruction set contained within any one of said second processor memory locations into an instruction of said second processor instruction set, a first indicator, in a location in said table corresponding to said second processor memory location, indicating that the type of contents of said second processor memory location is an instruction; means for determining, during a modification to the contents of any one of said plurality of second processor memory locations, whether an instruction is being modified by checking the corresponding location in the table for said stored first indicator; and determining whether translation is necessary for the contents in said second processor memory location being modified if said first indicator indicates an instruction is being modified.
Claim 4
Independent Claim 234 words
A system for aiding in simulating a first instruction flow of control of an application, said flow of control having a plurality of first instructions of a first processor instruction set, by a plurality of second instructions of a second processor instruction set of a processing system, said system comprising: means for creating a table having a plurality of locations corresponding to a plurality of second processor memory locations, each one of said second processor memory locations having contents the same as a respective first processor memory location, for indicating a type of contents for any one of said second processor memory locations; means for storing, during a translation of an instruction of said first processor instruction set contained within any one of said second processor memory locations into an instruction of said second processor instruction set, a first indicator, in a location in said table corresponding to said second processor memory location, indicating that the type of contents of said second processor memory location is an instruction; means for determining, during a modification to the contents of any one of said plurality of second processor memory locations, whether an instruction is being modified by checking the corresponding location in the table for said stored first indicator; and determining whether translation is necessary for the contents in said second processor memory location being modified if said first indicator indicates an instruction is being modified.
Claim 5
Independent Claim 200 words
A method for aiding in simulating a first instruction flow of control of an application, said flow of control having a plurality of first instructions of a first processor instruction set of a first processor, by a plurality of second instructions of a second processor instruction set of a second processor of a processing system, said method comprising: correlating each one of a plurality of locations in memory with a corresponding indicator indicating a type of contents for the memory location; determining, during a modification to the contents of any one of said plurality of memory locations of said processing system running said application, whether said application modified any one of said plurality of memory locations having one of said plurality of first instructions, said one of said plurality of first instructions having a translation sequence of said second instructions associated therewith, by checking if the corresponding indicator of said memory location indicates that the type of contents is an instruction; and updating said translation sequence to a new translation sequence of said second instructions, if said one of said first instructions is modified, for simulating the modified first instruction by executing said new translation sequence by said second processor.
Claim 6
Independent Claim 200 words
A method for aiding in simulating a first instruction flow of control of an application, said flow of control having a plurality of first instructions of a first processor instruction set of a first processor, by a plurality of second instructions of a second processor instruction set of a second processor of a processing system, said method comprising: correlating each one of a plurality of locations in memory with a corresponding indicator indicating a type of contents for the memory location; determining, during a modification to the contents of any one of said plurality of memory locations of said processing system running said application, whether said application modified any one of said plurality of memory locations having one of said plurality of first instructions, said one of said plurality of first instructions having a translation sequence of said second instructions associated therewith, by checking if the corresponding indicator of said memory location indicates that the type of contents is an instruction; and updating said translation sequence to a new translation sequence of said second instructions, if said one of said first instructions is modified, for simulating the modified first instruction by executing said new translation sequence by said second processor.
Claim 7
Dependent Claim 43 words
The method of claim 3 wherein the step of updating comprises the step of purging the translation sequence of one of said first instructions, and translating the modified instruction to a new sequence of said second instructions for execution by said second processor.
Claim 8
Dependent Claim 178 words
A detection method for aiding in simulating a first processor, having a first instruction set, of a first processing system, by a second processing system, said second processing system having a second processor having a second instruction set for running an application targeted for said first instruction set, said detection method comprising: mapping memory of the first processing system into memory of said second processing system; correlating each one of a plurality of locations of said memory of said second processing system mapped from said first processing system with a corresponding indicator indicating both a type of contents for the memory location and a type of action to take based on the type of contents for said memory location; and determining, at a time of a store to the memory location by said second data processing system, if the store to memory requires simulation processing, depending upon the contents of the memory location, by checking the indicator to determine the type of action to take based on the indicator contents concurrently with the store to the memory location.
Claim 9
Dependent Claim 178 words
A detection method for aiding in simulating a first processor, having a first instruction set, of a first processing system, by a second processing system, said second processing system having a second processor having a second instruction set for running an application targeted for said first instruction set, said detection method comprising: mapping memory of the first processing system into memory of said second processing system; correlating each one of a plurality of locations of said memory of said second processing system mapped from said first processing system with a corresponding indicator indicating both a type of contents for the memory location and a type of action to take based on the type of contents for said memory location; and determining, at a time of a store to the memory location by said second data processing system, if the store to memory requires simulation processing, depending upon the contents of the memory location, by checking the indicator to determine the type of action to take based on the indicator contents concurrently with the store to the memory location.
Claim 10
Dependent Claim 204 words
A detection system for aiding in simulating a first processor, having a first instruction set, of a first processing system, by a second processing system having a second processor having a second instruction set for running an application targeted for said first instruction set, said detection system comprising: means for mapping a plurality of first address locations of memory of the first processing system into a second plurality of address locations of memory of said second processing system; means for correlating each one of said second plurality of address locations of memory of said second processing system with a corresponding indicator indicating both a type of contents for each of said second plurality of address locations and a type of action to take based on the type of contents for each of said second plurality of address location; and means for determining, at a time of a store to one of the second address locations of memory by said second data processing system, if the store to memory requires simulation processing, depending upon the contents of the memory location, by checking the indicator to determine the type of action to take based on the indicator contents concurrently with the store to the memory location.
Claim 11
Dependent Claim 204 words
A detection system for aiding in simulating a first processor, having a first instruction set, of a first processing system, by a second processing system having a second processor having a second instruction set for running an application targeted for said first instruction set, said detection system comprising: means for mapping a plurality of first address locations of memory of the first processing system into a second plurality of address locations of memory of said second processing system; means for correlating each one of said second plurality of address locations of memory of said second processing system with a corresponding indicator indicating both a type of contents for each of said second plurality of address locations and a type of action to take based on the type of contents for each of said second plurality of address location; and means for determining, at a time of a store to one of the second address locations of memory by said second data processing system, if the store to memory requires simulation processing, depending upon the contents of the memory location, by checking the indicator to determine the type of action to take based on the indicator contents concurrently with the store to the memory location.
Claim 12
Dependent Claim 299 words
A detection system for aiding in simulating a first processor, having a first instruction set, of a first processing system, by a second processing system having a second processor having a second instruction set for running an application targeted for said first instruction set, said detection system comprising: means for translating a plurality of address locations of memory of the first processing system into (i) a first plurality of translated address locations of a first memory segment of said second processing system and (ii) a second plurality of translated address locations of a second memory segment of said second processing system, said second plurality of translated address locations corresponding to memory mapped I/O of an adapter; means for correlating each one of said translated address locations in said first and second memory segments with a third memory segment address location, in said second processing system, containing an indication of both a type of contents for a corresponding location in said first and second memory segment and a type of action to take based on the type of contents for said corresponding location in said first and second memory segment; means for performing an AND operation on one of said first and second plurality of translated address locations with a constant value and using this result to find the type of contents, of said one address location, from said corresponding third memory segment address location during a modification to the contents of said one address location by said second processing system; and means for determining, concurrently with the modification to the contents of the one address location, whether simulation processing is necessary for the contents in memory being modified, depending upon the type of contents of said one address location, as indicated by said corresponding third memory segment address location.
Claim 13
Dependent Claim 299 words
A detection system for aiding in simulating a first processor, having a first instruction set, of a first processing system, by a second processing system having a second processor having a second instruction set for running an application targeted for said first instruction set, said detection system comprising: means for translating a plurality of address locations of memory of the first processing system into (i) a first plurality of translated address locations of a first memory segment of said second processing system and (ii) a second plurality of translated address locations of a second memory segment of said second processing system, said second plurality of translated address locations corresponding to memory mapped I/O of an adapter; means for correlating each one of said translated address locations in said first and second memory segments with a third memory segment address location, in said second processing system, containing an indication of both a type of contents for a corresponding location in said first and second memory segment and a type of action to take based on the type of contents for said corresponding location in said first and second memory segment; means for performing an AND operation on one of said first and second plurality of translated address locations with a constant value and using this result to find the type of contents, of said one address location, from said corresponding third memory segment address location during a modification to the contents of said one address location by said second processing system; and means for determining, concurrently with the modification to the contents of the one address location, whether simulation processing is necessary for the contents in memory being modified, depending upon the type of contents of said one address location, as indicated by said corresponding third memory segment address location.
Claim 14
Dependent Claim 31 words
The system of claim 7 wherein if said corresponding third memory segment address location contains a zero value, no simulation processing is required on said contents of said one address location.
Claim 15
Dependent Claim 46 words
The system of claim 7 wherein if said corresponding third memory segment address location indicates that the type of contents is a translated instruction in said memory of said second processing system, simulation processing is necessary if the contents of the one address location is modified.
Claim 16
Dependent Claim 46 words
The system of claim 7 wherein if said corresponding third memory segment address location indicates that there is an output device of said first processing system attached to said second processing system, no simulation processing is required on said modified contents of the one address location.
Claim 17
Dependent Claim 45 words
The system of claim 7 wherein if said corresponding third memory segment address location indicates that an output device of the first processing system is not attached to said second processing system, simulation processing is needed on said modified contents of the one address location.
Claim 18
Independent Claim 273 words
A method of aiding in simulating a first processor, having a first instruction set, of a first processing system, by a second processing system, said second processing system having a second processor having a second instruction set for running an application targeted for said first instruction set, said method comprising: translating a plurality of address locations of memory of the first processing system into a translated plurality of address locations of a first memory segment of said second processing system; correlating each of said translated plurality of address locations of said first memory segment with a corresponding second memory segment address location containing an indication of both a type of contents of the corresponding translated address location of said first memory segment in said second processing system and a type of action to take based on the contents of the corresponding translated address location of said first memory segment in said second processing system; performing an instruction sequence on each one of a plurality of translations, of a first processing system instruction, which is able to modify a content of said first memory segment address location of said second processing system, to determine the type of contents, of the corresponding translated address location of said first memory segment in said second processing system, as indicated by the corresponding second memory segment address location of said second processing system; and determining if simulation processing is required on said content of said first memory segment address location depending on the type of action to take, based on the contents of said first memory segment address location, as indicated by said corresponding second memory segment location.
Claim 19
Independent Claim 273 words
A method of aiding in simulating a first processor, having a first instruction set, of a first processing system, by a second processing system, said second processing system having a second processor having a second instruction set for running an application targeted for said first instruction set, said method comprising: translating a plurality of address locations of memory of the first processing system into a translated plurality of address locations of a first memory segment of said second processing system; correlating each of said translated plurality of address locations of said first memory segment with a corresponding second memory segment address location containing an indication of both a type of contents of the corresponding translated address location of said first memory segment in said second processing system and a type of action to take based on the contents of the corresponding translated address location of said first memory segment in said second processing system; performing an instruction sequence on each one of a plurality of translations, of a first processing system instruction, which is able to modify a content of said first memory segment address location of said second processing system, to determine the type of contents, of the corresponding translated address location of said first memory segment in said second processing system, as indicated by the corresponding second memory segment address location of said second processing system; and determining if simulation processing is required on said content of said first memory segment address location depending on the type of action to take, based on the contents of said first memory segment address location, as indicated by said corresponding second memory segment location.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-04-04 1997-10-04 1998-04-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-04-04 2001-10-04 2002-04-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-04-04 2005-10-04 2006-04-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag