Claims Analysis
Total Claims: 13
Claim 1
Independent Claim
284 words
An emulation method for executing individual source instructions in a target processor to execute source programs requiring source processor features not built into the target processor, comprising the steps of: inputting instructions of a source processor program to an emulation target processor having significant excess virtual addressing capacity compared to a virtual addressing capacity required for a source processor to natively execute the source processor program, and supporting multiple source virtual address spaces in the operation of the source processor, building a virtual ITM (instruction translation map) in a target virtual address space supported by the target processor, the virtual ITM containing an ITM entry for each source instruction addressable unit, each source instruction addressable unit beginning on a source storage instruction boundary, structuring each ITM entry for containing a translation address to a target translation program that executes a source instruction having a source address associated with the ITM entry, determining a ratio R by dividing the length of each ITM entry by the length of each source instruction addressable unit, accessing an ITM entry for an executing source instruction by: generating a source aggregate virtual address for the source instruction by combining the source address of the source instruction with a source address space identifier of a source virtual address space containing the instruction, multiplying the source aggregate virtual address by R to obtain a target virtual address component, and inserting the target virtual address component into a predetermined component location in a target virtual address to generate an ITM entry target virtual address for locating an ITM entry associated with the source instruction in order to obtain a one-to-one addressing relationship between ITM entry target virtual addresses and source instruction addresses.
Claim 2
Dependent Claim
284 words
An emulation method for executing individual source instructions in a target processor to execute source programs requiring source processor features not built into the target processor, comprising the steps of: inputting instructions of a source processor program to an emulation target processor having significant excess virtual addressing capacity compared to a virtual addressing capacity required for a source processor to natively execute the source processor program, and supporting multiple source virtual address spaces in the operation of the source processor, building a virtual ITM (instruction translation map) in a target virtual address space supported by the target processor, the virtual ITM containing an ITM entry for each source instruction addressable unit, each source instruction addressable unit beginning on a source storage instruction boundary, structuring each ITM entry for containing a translation address to a target translation program that executes a source instruction having a source address associated with the ITM entry, determining a ratio R by dividing the length of each ITM entry by the length of each source instruction addressable unit, accessing an ITM entry for an executing source instruction by: generating a source aggregate virtual address for the source instruction by combining the source address of the source instruction with a source address space identifier of a source virtual address space containing the instruction, multiplying the source aggregate virtual address by R to obtain a target virtual address component, and inserting the target virtual address component into a predetermined component location in a target virtual address to generate an ITM entry target virtual address for locating an ITM entry associated with the source instruction in order to obtain a one-to-one addressing relationship between ITM entry target virtual addresses and source instruction addresses.
Claim 3
Dependent Claim
76 words
A source emulation system for executing source instructions in a target processor as defined in claim 1, further comprising the step of: structuring each ITM entry with at least two fields: a pointer field for containing a target instruction translation address, and a span field for containing a span indication that indicates if the ITM entry is part of a set of ITM entries associated with the same source instruction for handling source variable length instructions.
Claim 4
Dependent Claim
130 words
A source emulation system for executing source instructions in a target processor as defined in claim 2, further comprising the step of: using the source real address of a source instruction represented by an ITM entry to determine if an ITM section exists for the virtual ITM section containing the entry, and translating an ITM entry target virtual address to a backing ITM entry target real address of a backing ITM entry in an assigned target page frame (PF) in real storage of a target processor, the target PF containing a subset of backing ITM entries for backing a section of the virtual ITM in target real storage, each backing ITM entry in the target PF supporting the pointer field and the span field in a corresponding virtual ITM entry.
Claim 5
Dependent Claim
186 words
A source emulation system for executing source instructions in a target processor as defined in claim 3, further comprising the step of: signalling a page fault if the ITM section target virtual address has no backing target PF, using source DAT to determine the source real address of the currently executing instruction, using the source real address of the instruction to index to an entry in the real ITM directory to determine if a real ITM cache section is already defined for the source real storage section which includes the currently executing source instruction, allocating a target PF from the real ITM cache if one does not exist, initializing the target PF when it is assigned to back the ITM target virtual address by setting each pointer field in the target PF to a value interpreted as a translator address for locating a translator program in the target virtual storage for generating target translations which are target programs that execute source instructions, and indicating the target PF in the real ITM directory entry associated with the source real storage section containing the currently executing source instruction.
Claim 6
Dependent Claim
117 words
A source emulation system for executing source instructions in a target processor as defined in claim 4, further comprising the step of: signalling a page fault if the ITM section target virtual address has no backing target PF, using source DAT to determine the source real address of the currently executing instruction, using the source real address of the instruction to index to an entry in the real ITM directory to determine if a real ITM cache section is already defined for the source real storage section which includes the currently executing source instruction, and backing the virtual section ITM section for the currently executing source instruction with the same real ITM cache section if one exists.
Claim 7
Dependent Claim
241 words
A source emulation system for executing source instructions in a target processor as defined in claim 5, further comprising the steps of: accessing the pointer field of the backing ITM entry for obtaining a translator address to enter the translator program, assigning a virtual instruction translation region (virtual ITR) in target virtual storage for locating the translator program and instruction translations of previously executed source instructions, executing the translator program for generating a target translation for a currently executing source instruction when the backing ITM entry does not contain a pointer to an instruction translation, storing the target translation in a page within a virtual ITR section, associated with the source section containing the instruction and located by a translation target virtual address, writing the translation target virtual address in the pointer field of the backing ITM entry for the executing source instruction to overlay the translator address to enable a direct access of the target translation from the backing ITM entry for enabling a later execution of the source instruction to bypass the translator program, and setting the span field in the backing ITM entry to a span indication indicating if the ITM entry is part of a set of consecutive backing ITM entries associated with the executing source instruction, and setting the span field in each other backing ITM entry in the set to a span indication that indicates which backing ITM entries are part of the consecutive set.
Claim 8
Dependent Claim
107 words
A source emulation system for an executing source instruction in a target processor as defined in claim 6, further comprising the steps of: accessing the translation target virtual address in the pointer field in the backing ITM entry when subsequently executing a previously executed source instruction associated with the ITM entry, performing dynamic address translation (DAT) on the translation target virtual address to locate a backing target PF in target real storage containing at least the beginning of the target translation for the previously executed source instruction, and executing target instructions of the target translation in the target PF to emulate execution of the executing source instruction.
Claim 9
Dependent Claim
42 words
A source emulation system for executing source instructions in a target processor as defined in claim 7, further comprising the step of: signalling an ITR page fault if the translation target virtual address has no backing target PF for the ITR page.
Claim 10
Dependent Claim
102 words
An emulation system for an executing source instructions in a target processor as defined in claim 2, further comprising the step of: accessing the backing ITM entry in the backing section target PF at the target real address associated with the source instruction located at a different source virtual address location by using a source DAT process, wherein the backing section of the target PF is used to back multiple copies of the same instruction in different source virtual locations to avoid having multiple copies of the backing section in target real storage for multiple source copies of the same source instruction.
Claim 11
Dependent Claim
96 words
A source emulation system for executing source instructions in a target processor as defined in claim 6, further comprising the steps of: determining if an existing ITR virtual pointer in an existing real ITM entry in a backing PF locates an existing instruction translation previously determined for the same source instruction as the currently executing source instruction but at a different source virtual address, and backing the ITM section for the currently executing source instruction by the same PF, and the same instruction translation being used for multiple source virtual addresses containing the same source instruction.
Claim 12
Dependent Claim
218 words
A source emulation system for executing source instructions in a target processor as defined in claim 7, further comprising the steps of: protecting target page frames (PFs) in target storage which contain previously translated source instructions from being stored into by the target processor, detecting each source real storage address of each source instruction subject to a source store operation, determining all target virtual addresses of all ITM entries associated with previously translated source instructions detected as being stored into, using the span field of the ITM entry associated with the first source byte store into to determine the first source byte of the first source instruction unit affected by a store operation, setting the ITM entry for that first affected source instruction to an untranslated state, setting to an untranslated state the pointer field in a first ITM entry associated with the first instruction unit of each other translated instruction affected by a store operation, also setting the span field to an unassociated state in all ITM entries associated with each source instruction stored into, the settings in the pointer and span fields of all ITM entries associated with all stored-into source instructions being set to indicate no association with any source instruction, and then performing corresponding store operations in target real storage for the same instructions.
Claim 13
Dependent Claim
91 words
A source emulation system for executing source instructions in a target processor as defined in claim 7, further comprising the step of: maintaining a fixed allocation relationship of ITR virtual sections to source real storage sections, using the fixed allocation relationship to directly access an ITR virtual section given a source real storage section address, and using the real ITR pages as needed to back virtual ITR pages to hold instruction translations for efficiently using real storage, while using target virtual storage to provide direct addressing access of the ITR pages.