Claims Analysis
Total Claims: 22
Claim 1
Independent Claim
227 words
A data processing system which runs under a first operating system and emulates execution of instructions within a second data processing system under a second operating system, said data processing system comprising: a bus; a memory coupled to said bus, wherein said memory stores at least a portion of said first operating system, said memory including a mass storage data area that stores at least a portion of a program written to execute under said second operating system, said program including a plurality of instructions, wherein said mass storage data area simulates a mass storage device within said second data processing system, said memory further including a main memory data area that simulates a main memory within said second data processing system, wherein data and instructions are mapped to said mass storage data area and said main memory data area from respective non-overlapping address ranged in a virtual memory address space of said data processing system; an emulator stored within said memory, wherein said emulator includes a plurality of routines which each emulate an instruction utilized by said second operating system; and a processor coupled to said bus, wherein said processor executes instructions within said program under said first operating system by emulation, wherein said emulator accesses instructions of said program directly from said mass storage data area within said memory, such that emulation overhead is minimized.
Claim 2
Dependent Claim
227 words
A data processing system which runs under a first operating system and emulates execution of instructions within a second data processing system under a second operating system, said data processing system comprising: a bus; a memory coupled to said bus, wherein said memory stores at least a portion of said first operating system, said memory including a mass storage data area that stores at least a portion of a program written to execute under said second operating system, said program including a plurality of instructions, wherein said mass storage data area simulates a mass storage device within said second data processing system, said memory further including a main memory data area that simulates a main memory within said second data processing system, wherein data and instructions are mapped to said mass storage data area and said main memory data area from respective non-overlapping address ranged in a virtual memory address space of said data processing system; an emulator stored within said memory, wherein said emulator includes a plurality of routines which each emulate an instruction utilized by said second operating system; and a processor coupled to said bus, wherein said processor executes instructions within said program under said first operating system by emulation, wherein said emulator accesses instructions of said program directly from said mass storage data area within said memory, such that emulation overhead is minimized.
Claim 3
Dependent Claim
38 words
The data processing system of claim 1, said data processing system further comprising a pointer maintained by said processor which indicates an address of a next instruction to be emulated among said plurality of instructions within said program.
Claim 4
Dependent Claim
66 words
The data processing system of claim 1, wherein said virtual memory address space is subdivided into a plurality of virtual memory pages, said data processing system further comprising: a mass storage device which stores said program, wherein virtual memory pages containing portions of said program required for emulation are paged in from said mass storage device to only said mass storage data area within said memory.
Claim 5
Dependent Claim
89 words
The data processing system of claim 1, said data processing system further comprising: a cache memory having a plurality of cache lines, wherein addresses within said memory are mapped to said plurality of cache lines according to a predetermined rule, and wherein said plurality of routines are stored within said memory such that a first instruction within each of said plurality of routines is aligned with one of said plurality of cache lines when mapped to said plurality of cache lines when mapped to said plurality of cache lines.
Claim 6
Independent Claim
213 words
A method for emulating a program within a data processing system, said data processing system including a memory, a processor that executes a first operating system, and a virtual memory address space, said method comprising: creating, in said memory, a mass storage data area simulating a mass storage device within a second data processing system and a main memory data area simulating a main memory within said second data processing system, wherein data and instructions are mapped to said mass storage data area and said main memory data area of said memory from respective non-overlapping address ranges in said virtual memory address space of said data processing system; storing at least a portion of a program written to execute under said second operating system within said mass storage data area in said memory, said program including a plurality of instructions; storing within said memory at least a portion of said first operating system and an emulator, wherein said emulator includes a plurality of routines that each emulate an instruction utilized by said second operating system; and accessing an instruction among said plurality of instructions within said program directly from said mass storage data area within said memory; and executing said instruction under said first operating system by emulation, wherein emulation overhead is minimized.
Claim 7
Independent Claim
213 words
A method for emulating a program within a data processing system, said data processing system including a memory, a processor that executes a first operating system, and a virtual memory address space, said method comprising: creating, in said memory, a mass storage data area simulating a mass storage device within a second data processing system and a main memory data area simulating a main memory within said second data processing system, wherein data and instructions are mapped to said mass storage data area and said main memory data area of said memory from respective non-overlapping address ranges in said virtual memory address space of said data processing system; storing at least a portion of a program written to execute under said second operating system within said mass storage data area in said memory, said program including a plurality of instructions; storing within said memory at least a portion of said first operating system and an emulator, wherein said emulator includes a plurality of routines that each emulate an instruction utilized by said second operating system; and accessing an instruction among said plurality of instructions within said program directly from said mass storage data area within said memory; and executing said instruction under said first operating system by emulation, wherein emulation overhead is minimized.
Claim 8
Dependent Claim
40 words
The method for emulating a program within a data processing system of claim 5, said method further comprising: maintaining a pointer which indicates an address of a next instruction to be emulated among said plurality of instructions within said program.
Claim 9
Dependent Claim
90 words
The method for emulating a program within a data processing system of claim 5, said data processing system further including a cache memory having a plurality of cache lines, wherein addresses within said memory are mapped to said plurality of cache lines according to a predetermined rule, and said method further comprising: storing said plurality of routines within said memory such that a first instruction within each of said plurality of routines is aligned with one of said plurality of cache lines when mapped to said plurality of cache lines.
Claim 10
Dependent Claim
161 words
A data processing system, comprising: a bus; a main memory coupled to said bus, wherein said main memory stores at least a portion of a first operating system; a cache memory having a plurality of cache lines, wherein addresses within said main memory are mapped to said plurality of cache lines according to a predetermined rule; an emulator stored within said main memory, said emulator including a plurality of routines that each emulate an instruction utilized by a second operating system, wherein said plurality of routines are stored within said main memory such that a first instruction within each of said plurality of routines is aligned with one of said plurality of cache lines when mapped to said plurality of cache lines; and a processor coupled to said bus, wherein said processor executes instructions within said plurality of routines under said first operating system to emulate a program written to execute under said second operating system, wherein emulation efficiency is enhanced.
Claim 11
Dependent Claim
161 words
A data processing system, comprising: a bus; a main memory coupled to said bus, wherein said main memory stores at least a portion of a first operating system; a cache memory having a plurality of cache lines, wherein addresses within said main memory are mapped to said plurality of cache lines according to a predetermined rule; an emulator stored within said main memory, said emulator including a plurality of routines that each emulate an instruction utilized by a second operating system, wherein said plurality of routines are stored within said main memory such that a first instruction within each of said plurality of routines is aligned with one of said plurality of cache lines when mapped to said plurality of cache lines; and a processor coupled to said bus, wherein said processor executes instructions within said plurality of routines under said first operating system to emulate a program written to execute under said second operating system, wherein emulation efficiency is enhanced.
Claim 12
Dependent Claim
47 words
The data processing system of claim 8, said memory further including a simulated mass storage data area which stores at least a portion of said program, wherein during emulation of said program said emulator directly accesses instructions of said program from said simulated mass storage data area.
Claim 13
Dependent Claim
58 words
The data processing system of claim 8, wherein a portion of a routine among said plurality of routines which cannot be stored within a single cache line is stored within said main memory such that said portion is mapped to a cache line associated with an invalid instruction in an instruction set utilized by said first operating system.
Claim 14
Independent Claim
146 words
A method for emulating a program within a data processing system, said data processing system including a processor, a main memory, and a cache memory, wherein said cache memory has a plurality of cache lines to which addresses within said main memory are mapped according to a predetermined rule, said method comprising: storing at least a portion of a first operating system and an emulator within said main memory, said emulator including a plurality of routines which each emulate an instruction utilized by a second operating system, wherein a first instruction within each of said routines is aligned with a different one of said plurality of cache lines when mapped to said plurality of cache lines; and executing instructions within said plurality of routines under said first operating system to emulate a program written to execute under said second operating system, wherein emulation efficiency is enhanced.
Claim 15
Independent Claim
146 words
A method for emulating a program within a data processing system, said data processing system including a processor, a main memory, and a cache memory, wherein said cache memory has a plurality of cache lines to which addresses within said main memory are mapped according to a predetermined rule, said method comprising: storing at least a portion of a first operating system and an emulator within said main memory, said emulator including a plurality of routines which each emulate an instruction utilized by a second operating system, wherein a first instruction within each of said routines is aligned with a different one of said plurality of cache lines when mapped to said plurality of cache lines; and executing instructions within said plurality of routines under said first operating system to emulate a program written to execute under said second operating system, wherein emulation efficiency is enhanced.
Claim 16
Dependent Claim
57 words
The method for emulating a program within a data processing system of claim 11, wherein at least a portion of said program is stored within a simulated mass storage data area within said memory, wherein during said executing step, said emulator accesses instructions within said program directly from said simulated mass storage data area within said memory.
Claim 17
Dependent Claim
65 words
The method for emulating a program within a data processing system of claim 11, wherein a portion of a routine among said plurality of routines which cannot be stored within a single cache line is stored within said main memory such that said portion is mapped to a cache line associated with an invalid instruction in an instruction set utilized by said first operating system.
Claim 18
Independent Claim
138 words
A method within a data processing system for emulating a program, wherein said data processing system has a memory and a processor, said method comprising: storing a program to be emulated within said memory, said program including a plurality of program instructions; storing a plurality of routines within said memory, wherein said processor executes a first routine among said plurality of routines to emulate execution of a first program instruction, said first routine including a prefetch code which indicates that a second program instruction is to be fetched from said memory; detecting said prefetch code during execution of instructions within said first routine; and in response to a detection of said prefetch code within said first routine, fetching said second program instruction prior to completion of execution of instructions within said first routine, wherein emulation efficiency is maximized.
Claim 19
Independent Claim
138 words
A method within a data processing system for emulating a program, wherein said data processing system has a memory and a processor, said method comprising: storing a program to be emulated within said memory, said program including a plurality of program instructions; storing a plurality of routines within said memory, wherein said processor executes a first routine among said plurality of routines to emulate execution of a first program instruction, said first routine including a prefetch code which indicates that a second program instruction is to be fetched from said memory; detecting said prefetch code during execution of instructions within said first routine; and in response to a detection of said prefetch code within said first routine, fetching said second program instruction prior to completion of execution of instructions within said first routine, wherein emulation efficiency is maximized.
Claim 20
Dependent Claim
31 words
The method for emulating a program of claim 14, said method further comprising: decoding said second program instruction; and fetching instructions within a second routine corresponding to said second program instruction.
Claim 21
Dependent Claim
35 words
The data processing system of claim 1, said virtual memory address space including a plurality of address segments, all of said program being stored in addresses within a single one of said plurality of segments.
Claim 22
Dependent Claim
39 words
The method of claim 5, said virtual memory address space including a plurality of address segments, said method further comprising the step of storing all of said program in addresses within a single one of said plurality of segments.