Forth specific language microprocessor
First Claim
1. A processor adapted to receive instructions and to execute multiple operations of a single instruction in parallel, comprising:
- an instruction latch;
a main memory data port coupled to said instruction latch;
an instruction decode circuit for decoding an instruction in said instruction latch coupled to said instruction latch and having a plurality of control signal outputs;
a main memory address port coupled to a first one of said control signal outputs;
an arithmetic logic unit having a control input coupled to a second one of said control signal outputs and a first operand input;
an ALU multiplexer having an output coupled to said first operand input of said arithmetic logic unit, a first input coupled to said main memory data port via a first data path, and a select input coupled to a third one of said control signal outputs;
a top register coupled to an output of said arithmetic logic unit;
a next parameter register coupled to a second input of said ALU multiplexer via a second data path;
an index/return register coupled to a third input of said ALU multiplexer via a third data path;
a next parameter memory having a data I/O coupled to said next parameter register, said next parameter memory, next parameter register and top register forming a single parameter stack;
an index/return memory having a data I/O coupled to said index/return register for storing an index/return stack;
K stack pointer means having only a single pointer register for generating a pointer address for said next parameter memory having an output coupled to an address input of said next parameter memory and an input coupled to a fourth one of said control signal outputs; and
a J stack pointer circuit for generating a pointer address for said index/return memory having an output coupled to an address input of said index/return memory and an input coupled to a fifth one of said control signal outputs.
2 Assignments
0 Petitions
Accused Products
Abstract
A language specific microprocessor for the computer language known as FORTH is disclosed. The microprocessor includes four main registers each for holding a parameter; a L or instruction latch register for decoding instructions and activating microprocessor operation; an I or return index register for tracking returns; an N or next parameter register for operation with an arithmetic logic unit (ALU); and a T or top of parameter stack register with an appended ALU. A return stack port is connected to the I register and a parameter stack port is connected to the N register circuit, each have last in/first out (LIFO) memory stacks for reads and writes to isolated independent memory islands that are external to the microprocessor. The respective I, T and N registers are connected in respective series by paired bus connections for swapping parameters between adjacent registers. A first split 16 bit multiplexer J/K controls the LIFO stack for the I and N registers on paired 8 bit address stacks; a second 16 bit multiplexer designates the pointer to main memory with 65K addresses and an adjoining 65K for data. This addressing multiplexer receives selective input from a program counter P, the return index register I, the top of the parameter stack T and/or the instruction latch L. Movement to subroutine is handled in a single cycle with returns being handled at the end of any designated cycle. Asynchronous microprocessor operation is provided with the address multiplexer being simultaneously set up with an address to a future machine step, unloading from memory of appropriate data or instruction for the next machine step and asynchronously executing the current machine step. A two-phase clock latches data as valid on a rising edge and moves to a new memory location on a falling edge. This two phase clock is given a pulse width sufficient for all asynchronous cycles of microprocessor operations to settle. The microprocessor'"'"'s assembler language is FORTH and the stack and main memory port architecture uniquely complements FORTH to produce a small (17,000 gates) fast (40 mips) microprocess or operable on extant FORTH programs. Provision is made for an additional G port which enables the current operating state of the microprocesor to be mapped, addressing of up to 21 bits as well as the ability to operate the microprocessor in tandem with similar microprocessors.
-
Citations
12 Claims
-
1. A processor adapted to receive instructions and to execute multiple operations of a single instruction in parallel, comprising:
-
an instruction latch; a main memory data port coupled to said instruction latch; an instruction decode circuit for decoding an instruction in said instruction latch coupled to said instruction latch and having a plurality of control signal outputs; a main memory address port coupled to a first one of said control signal outputs; an arithmetic logic unit having a control input coupled to a second one of said control signal outputs and a first operand input; an ALU multiplexer having an output coupled to said first operand input of said arithmetic logic unit, a first input coupled to said main memory data port via a first data path, and a select input coupled to a third one of said control signal outputs; a top register coupled to an output of said arithmetic logic unit; a next parameter register coupled to a second input of said ALU multiplexer via a second data path; an index/return register coupled to a third input of said ALU multiplexer via a third data path; a next parameter memory having a data I/O coupled to said next parameter register, said next parameter memory, next parameter register and top register forming a single parameter stack; an index/return memory having a data I/O coupled to said index/return register for storing an index/return stack; K stack pointer means having only a single pointer register for generating a pointer address for said next parameter memory having an output coupled to an address input of said next parameter memory and an input coupled to a fourth one of said control signal outputs; and a J stack pointer circuit for generating a pointer address for said index/return memory having an output coupled to an address input of said index/return memory and an input coupled to a fifth one of said control signal outputs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
Specification