Claims Analysis
Total Claims: 28
Claim 1
Independent Claim
393 words
An apparatus for issuing instructions during emulation routines to a central processing unit (CPU) of a host computer system, the host computer system also having a memory, a control bus, a data bus, an address bus, and an address instruction bus, said apparatus comprising: an emulated program counter having a control input, a load input, and an output, for storing an address of a next emulation routine to be executed from the data bus in response to a first control signal on the control input of the emulated program counter, the control input of the emulated program counter coupled to the control bus, the load input of the emulated program counter coupled to the data bus, and the output of the emulated program counter coupled to the address bus; a pointer storage means having a control input, a data input, and an output, for storing a pointer to the next emulation routine in response to a second control signal on the control input of the pointer storage means, the control input of the pointer storage means coupled to the control bus, the data input of the pointer storage means coupled to the data bus; a virtual counter generation circuit having a first control input, a second control input, a first data input, a second data input, an address output, and a data output for generating and storing a virtual program counter value, the first control input of the virtual counter generation circuit coupled to the control bus, the first data input of the virtual counter generation circuit coupled to the data bus, the second data input of the virtual counter generation circuit coupled to the output of the pointer storage means, the address output of the virtual counter generation circuit coupled to the instruction address bus, and the data output of the virtual counter generation circuit coupled to the data bus; and a state machine having a control input, an increment input, and a first control output, for detecting when the emulated program counter has been updated, for controlling the retrieval of a pointer to the next emulation routine to be executed from memory, and for issuing the virtual program counter value to the instruction address bus, the control input and the first control output of the state machine coupled to the control bus, and the increment input coupled to the address bus.
Claim 2
Independent Claim
393 words
An apparatus for issuing instructions during emulation routines to a central processing unit (CPU) of a host computer system, the host computer system also having a memory, a control bus, a data bus, an address bus, and an address instruction bus, said apparatus comprising: an emulated program counter having a control input, a load input, and an output, for storing an address of a next emulation routine to be executed from the data bus in response to a first control signal on the control input of the emulated program counter, the control input of the emulated program counter coupled to the control bus, the load input of the emulated program counter coupled to the data bus, and the output of the emulated program counter coupled to the address bus; a pointer storage means having a control input, a data input, and an output, for storing a pointer to the next emulation routine in response to a second control signal on the control input of the pointer storage means, the control input of the pointer storage means coupled to the control bus, the data input of the pointer storage means coupled to the data bus; a virtual counter generation circuit having a first control input, a second control input, a first data input, a second data input, an address output, and a data output for generating and storing a virtual program counter value, the first control input of the virtual counter generation circuit coupled to the control bus, the first data input of the virtual counter generation circuit coupled to the data bus, the second data input of the virtual counter generation circuit coupled to the output of the pointer storage means, the address output of the virtual counter generation circuit coupled to the instruction address bus, and the data output of the virtual counter generation circuit coupled to the data bus; and a state machine having a control input, an increment input, and a first control output, for detecting when the emulated program counter has been updated, for controlling the retrieval of a pointer to the next emulation routine to be executed from memory, and for issuing the virtual program counter value to the instruction address bus, the control input and the first control output of the state machine coupled to the control bus, and the increment input coupled to the address bus.
Claim 3
Dependent Claim
136 words
The apparatus of claim 1, further comprising: a bus signal router having a first data input, a second data input, a control input and an output for selectively connecting one from the group of the first data input and the second data input to the instruction address bus, the first data input of the bus signal router coupled to output of the virtual counter generation circuit, the second data input of the bus signal router coupled to an output of the CPU to receive a program counter, the output of the bus signal router coupled to the instruction address bus, and wherein the state machine has a bus control output for providing a bus control signal, and the bus control output of the state machine is coupled to the control input of the bus signal router.
Claim 4
Dependent Claim
16 words
The apparatus of claim 2 wherein the bus signal router is a two to one multiplexor.
Claim 5
Dependent Claim
126 words
The apparatus of claim 1, further comprising: a summing means having a first input, a second input, and an output, for incrementing the address stored in the emulated program counter in response to an increment signal from the state machine, the first input of the summing means coupled to the output of the emulated program counter, and the output of the summing means coupled to the load input of the emulated program counter; and wherein the state machine has an increment input, an increment output for receiving an address, decoding the address to generate an increment value, the increment input of the state machine coupled to the address bus, and the increment output of the state machine coupled to the second input of the summing means.
Claim 6
Dependent Claim
16 words
The apparatus of claim 4 wherein the emulated program counter is a decoder and a register.
Claim 7
Dependent Claim
68 words
The apparatus of claim 1, further comprising an opcode storage means, having a control input, an opcode input, and an output, for receiving an opcode and outputting an address corresponding to the opcode received, the control input of the opcode storage means coupled to the control bus, the opcode input coupled to the data bus, and the output of the opcode storage means coupled to the address bus.
Claim 8
Dependent Claim
41 words
The apparatus of claim 6, wherein the data bus has a plurality of data bits and the opcode input is coupled to a subset of the plurality of data bits forming the data bus, the subset being representative of the opcode.
Claim 9
Dependent Claim
43 words
The apparatus of claim 3, wherein the opcode storage means is a buffer having a plurality of registers, and wherein the state machine performs a burst memory read operation that allows a plurality of opcodes to be stored in the opcode storage means.
Claim 10
Dependent Claim
349 words
The apparatus of claim 1, wherein the state machine comprises: a decoding circuit having an input, a first decode output, a second decode output, and an acknowledgment output, for detecting an update to the emulated program counter and for generating an increment signal specifying the amount to increment the PC, an instruction offset signal indicating the number of instructions to a final source instruction for the routine, and an acknowledgment signal indicating a reserved address has been addressed, the input of the decoding circuit coupled to the address bus, and the first decode output coupled to the data bus; a final address register having a first input, a second input, a control input, and an output, for generating an address for a final host instruction of an emulation routine, the first input of the final address register coupled to the virtual counter generation circuit to receive the virtual program counter value, and the second input of the final address register coupled to the second decode output of the decoding circuit to receive the offset signal; a comparison means having an first input, a second input and an output, for generating an execution complete signal when a signal at the first input of the comparison means is greater than another signal at the second input of the comparison means, the first input of the comparison means coupled to the virtual counter generation circuit to receive the virtual program counter value, the second input of the comparison means coupled to the output of the final address register; and a control circuit having a first input, a second input, a third input and a command output, for issuing a sequence of state control commands in response to signals from the decoding circuit and the comparison means, the first input of the control circuit coupled to the acknowledgment output of the decoding circuit, the second input of the control circuit coupled to the output of the comparison means, the third input of the control circuit coupled to the control bus, and the command output of the control circuit coupled to the control bus.
Claim 11
Dependent Claim
65 words
The apparatus of claim 9, wherein the decoding circuit is a digital decoder having a plurality of inputs, each of the inputs of the decoder coupled to a respective one of the lines forming the address bus, and wherein the address for the emulated program counter is predetermined, and the decoder output asserts the acknowledgment signal when the predetermined address is on the address bus.
Claim 12
Dependent Claim
27 words
The apparatus of claim 9 wherein the final address register comprises an adder and a register with outputs of the adder coupled to inputs of the register.
Claim 13
Dependent Claim
24 words
The apparatus of claim 9, wherein the comparison means is binary comparator having a plurality of first inputs and a plurality of second inputs.
Claim 14
Dependent Claim
59 words
The apparatus of claim 9, wherein the control circuit comprises combinational logic coupled to form a state machine that sequentially asserts signals for prefetching the next emulation routine pointer, the signals including: a NERP valid signal, a EPC load command, a first DMA read command, a load opcode command, a second DMA read command, and a load pointer command.
Claim 15
Dependent Claim
53 words
The apparatus of claim 9, wherein the control circuit comprises combinational logic coupled to form a state machine that sequentially asserts signals for a jump operation with the execution of an emulation routine, the signals including: the load data command, the increment control signal, the VPC update command, and the VPC output command.
Claim 16
Dependent Claim
52 words
The apparatus of claim 9, wherein the control circuit comprises combinational logic coupled to form a state machine that sequentially asserts signals to provide the next host instruction directly to the CPU, the signals including: the VPC output command, the NERP valid signal, the VPC NERP command, and the VPC update command.
Claim 17
Dependent Claim
285 words
The apparatus of claim 1, wherein the virtual counter generation circuit further comprises: a jump increment storage means having a data input, a control input and an output 216, for storing an value by which the VPC value must be adjusted for a jump operation, the data input coupled to the data bus, the control input of the jump increment steerage means coupled to the control bus; a signal selection means having a first data input, a second data input, a control input and an output for providing the appropriate value by adjust the VPC value, the first data input of the signal selection means coupled to the output of the jump increment storage means, the second data input of the signal selection means coupled to receive a constant, and the control input of the signal selection coupled to the an increment control output of the state machine; a summing means having a first input, a second input and an output for adding the current VPC value to the output of the signal selection, the second input of the summing means coupled to the output of the first selection means; and a virtual program counter (VPC) having a control input, a first data input, a second data input, and an output for storing the virtual program counter value, the control input of the VPC coupled to the control bus, the first data input of the VPC coupled to the output of the summing means, the second data input of the VPC coupled to the output of the pointer storage means, the output of the VPC coupled to the first input of the summing means, the output of the VPC coupled to the address instruction bus.
Claim 18
Dependent Claim
83 words
The apparatus of claim 16, further comprising an output driver means having a data input, a control input, a first output, and a second output for selectively outputting the virtual program counter value to one from the group of the data bus and the instruction address bus, the data input coupled to the output of the VPC, the control input coupled to the control bus, the first output coupled to the data bus, and the second output coupled to the instruction address bus.
Claim 19
Dependent Claim
24 words
The apparatus of claim 16, wherein the summing means is an arithmetic logic unit capable of adding positive and negative values to the constant.
Claim 20
Dependent Claim
16 words
The apparatus of claim 16, wherein the VPC comprises a decoder, a multiplexor and a register.
Claim 21
Independent Claim
302 words
A method for issuing instructions during the execution of emulation routines, each emulation routine comprising one or more host instructions, the method issuing the host instructions directly to a central processing unit (CPU) of a host computer system, the host computer system also having a memory, a control bus, a data bus, an address bus, and an address instruction bus, the method comprising the steps of: fetching a first emulation routine pointer from the memory, the first emuilation routine pointer corresponding a first emulation routine; loading the first emulation routine pointer into a virtual program counter determining if a next host instruction request has been made by the CPU; outputting the VPC to the instruction address bus; executing a host instruction located at the address output by the VPC using the CPU; prefetching a next emulation routine pointer (NERP) concurrent with the execution of the host instructions of a current emulation routine; determining whether the host instruction being executed is the final host instruction in the current emulation routine; in the event that the host insturction being executed is not the final host instruction in the current emulation routine, performing the step of incrementing the VPC; in the event that the host instruction being executed is the final host instruction in the current emulation routine, performing the step of loading the VPC with the NERP; coupling an output of the VPC to the instruction address bus, and disconnecting a program counter of the CPU from the instruction address bus at a time prior to the execution of a first host instruction within the first emulation routine; and disconnecting the output of the VPC from the instruction address bus, and coupling the program counter of the CPU to the instruction address bus at a time after a final emulation routine has been executed.
Claim 22
Independent Claim
302 words
A method for issuing instructions during the execution of emulation routines, each emulation routine comprising one or more host instructions, the method issuing the host instructions directly to a central processing unit (CPU) of a host computer system, the host computer system also having a memory, a control bus, a data bus, an address bus, and an address instruction bus, the method comprising the steps of: fetching a first emulation routine pointer from the memory, the first emuilation routine pointer corresponding a first emulation routine; loading the first emulation routine pointer into a virtual program counter determining if a next host instruction request has been made by the CPU; outputting the VPC to the instruction address bus; executing a host instruction located at the address output by the VPC using the CPU; prefetching a next emulation routine pointer (NERP) concurrent with the execution of the host instructions of a current emulation routine; determining whether the host instruction being executed is the final host instruction in the current emulation routine; in the event that the host insturction being executed is not the final host instruction in the current emulation routine, performing the step of incrementing the VPC; in the event that the host instruction being executed is the final host instruction in the current emulation routine, performing the step of loading the VPC with the NERP; coupling an output of the VPC to the instruction address bus, and disconnecting a program counter of the CPU from the instruction address bus at a time prior to the execution of a first host instruction within the first emulation routine; and disconnecting the output of the VPC from the instruction address bus, and coupling the program counter of the CPU to the instruction address bus at a time after a final emulation routine has been executed.
Claim 23
Dependent Claim
65 words
The method of claim 20, wherein the step of prefetching the next emulation routine pointer comprises the steps of: retrieving a next source instruction from the memory using an address stored in an emulated program counter; retrieving the next emulation routine pointer from the memory using the next source instruction retrieved; and storing the pointer to the next emulation routine in a pointer storage means.
Claim 24
Dependent Claim
49 words
The method of claim 21, wherein the steps of retrieving the next source instruction and retrieving a pointer are direct memory access read operations; and wherein a plurality of bits of the next source instruction is used to indicate a memory location corresponding to the next emulation routine pointer.
Claim 25
Dependent Claim
34 words
The method of claim 21 further comprising the step of loading the opcode of the next source instruction into an opcode storage means after the step of retrieving the next source instruction from memory.
Claim 26
Dependent Claim
66 words
The method of claim 20 further comprising the steps of: determining whether an exception has occurred during the execution of the instruction at the address output by the VPC; and in the event that an exception has occurred, performing the additional steps of: outputting the VPC on the data bus; asserting a dedicated address on the address bus; and storing the VPC at the dedicated address.
Claim 27
Dependent Claim
33 words
The method of claim 20 further comprising the step of determining whether a reference to a reserved address has occurred during the execution of the instruction at the address output by the VPC.
Claim 28
Dependent Claim
83 words
The method of claim 20 further comprising the steps of: determining whether a reference to a dedicated address has occurred during the execution of the instruction at the address output by the VPC; and in the event that a reference to a dedicated address has occurred, performing the additional steps of: retrieving a jump increment from the data bus; updating the VPC with the jump increment retrieved from the data bus; outputting the VPC to the instruction address bus; and updating the VPC.