Inherently micro programmable high level language processor
OwnerAndrew M. Welininventor
Life of this patent
Estimating the term…
Abstract
An inherently micro programmable high level language processor and a micro programming language which permits the micro programmer to program in terms of constructs related to the process of interpretation is disclosed. Such constructs include, but are not limited to, character extraction and stack manipulation. A method of interpretation which embodies the methods of sequential extraction and linear decoding at the micro programming level is also presented.
Claims25
An inherently microprogrammable high level language processor which includes an electrical interconnection with a storage device for executing an interpretable language string stored in said storage device, wherein said string includes machine level operation codes, and for executing one of a plurality of elementary language programs stored in said storage device, each program being represented by a machine level operation code, comprising:
- a. first extration means for extracting a machine level operation code via said electrical interconnection from said interpretable language string stored in said storage device for use in locating the one of the elementary language programs stored in said storage device which is represented by the extracted code;
- b. second extraction means for extracting an elementary language operation code via said electrical interconnection from said one elementary language program stored in said storage device;
- c. decoding means for decoding the extracted elementary language operation code;
- and
- d. logic means connected to said decoding means for executing the elementary operation which is represented by the elementary language operation code.
A method for executing an interpretable language string and for executing one of a plurality of stored elementary language programs which is represented by a machine level code contained in said interpretable language string, comprising the steps of:
- a. extracting a machine level operation code from said stored interpretable language string;
- b. locating the stored elementary language program which is represented by the extracted code;
- c. extracting an elementary language operation code from said elementary language program as located;
- d. decoding the extracted elementary language operation code;
- and
- e. executing the elementary operation which is represented by the elementary language operation code.
A method for executing an interpretable language string and for executing one of a plurality of stored elementary language programs which is represented by a machine level code contained in said interpretable language string, comprising the steps of:
- a. storing a word address and a bit address within said word in a first register which indicates the machine level operation code to be extracted from the interpretable language string;
- b. storing the word which is identified by the word address in a second register;
- c. extracting the machine level operation code from the stored word;
- d. locating the stored elementary language program which is represented by the extracted machine level operation code;
- e. extracting an elementary language operation code from said elementary language program as located;
- f. decoding the extracted elementary language operation code;
- and
- g. executing the elementary operation which is represented by the elementary language operation code.
A method for executing an interpretable language string and for executing one of a plurality of stored elementary language programs which is represented by a machine level code contained in said interpretable language string, comprising the steps of:
- a. storing in a first register a word address and a bit address within said word which represents the machine level operation code to be extracted from said interpretable language string;
- b. storing the word thus identified in a second register;
- c. shifting bits of the stored word from said second register to a third register and simultaneously incrementing said bit address in said first register;
- d. outputting the machine level operation code from said third register when a predetermined shift of said bits has occurred;
- e. locating the stored elementary language program which is represented by the extracted machine level code;
- f. extracting an elementary language operation code from said elementary language program as located;
- g. decoding the extracted elementary language operation code;
- and
- h. executing the elementary operation which is represented by the elementary language operation code.
A method for executing an elementary language program comprising the steps of:
- a. storing in a first register a word address and a bit group address within said word which identifies the elementary level operation code to be extracted from said program;
- b. storing a first and second word in a second and third register respectively which words are uniquely identified by said word address;
- c. shifting bit groups of the stored words in said second and third registers and simultaneously incrementing said bit group address in said first register;
- d. outputting the elementary level operation code from the third register when a predetermmned shift of said bit groups has occurred;
- e. decoding the extracted elementary language operation code;
- and
- executing the elementary operation which is represented by the elementary language operation code.
A method for executing an interpretable language string and for executing one of a plurality of stored elementary programs which is represented by a machine level code contained in said interpretable language string, comprising the steps of:
- a. storing said interpretable language strings in a memory;
- b. addressing said interpretable language strings with a program character counter in such a way as to maintain in said counter the word address in said memory and the bit address within said word for the first bit of the program character sought to be extracted;
- c. transferring the word addressed by said counter into a first shift register;
- d. loading a bit counter with the bit address of the field to be extracted for the word transferred to said first shift register;
- e. shifting left the bits of said transferred word from said first shift register into a second shift register by a number of bits corresponding to the value of the bit address loaded into said bit counter;
- f. decrementing said bit counter with each left shift;
- g. updating the word and bit address in said program character counter with each left shift by incrementing said bit address by one unit which in turn will cause the word address to be incremented by one unit whenever the bit address is indicative of a word boundary being transcended;
- h. terminating shifting when the value within said bit counter reaches zero thereby leaving the character to be extracted left justified in said first shift register;
- i. clearing said second shift register;
- j. loading said bit counter with the number of bits to be extracted;
- k. shifting left the bits in said first shift register while decrementing said bit counter by one unit for each left shift thereby separating the field to be extracted from said interpretable language string;
- 1. continuing said left shift operation until the count in said bit counter reaches zero indicating that the field to be extracted is separated and in said second shift register;
- m. interrupting said left shifting whenever said first shift register becomes depleted as indicated by the bit trace in said program character counter passing through zero, to transfer the new word addressed by said program character counter to said first shift register;
- n. restoring the left shifting procedure interrupted until said bit counter reaches zero;
- o. transferring the separated right justified character from said second shift register to an auxiliary register for further processing;
- p. storing an address table with the characteristic that each entry in said table constitutes the starting address for elementary language program;
- q. indexing said table with the contents of said auxiliary register to be able to retrieve the starting address of the represented elementary language program;
- r. retrieving said starting address;
- and
- s. outputting said address for use in extracting the elementary language codes of said elementary language program as located;
- t. storing in an elementary language character counter a word address and a bit group address within said word which identifies the elementary level operation code to be extracted from said program;
- u. storing a first and second word in a third and fourth shift registers respectively, which words are identified by said word address;
- v. shifting bit groups of the stored words in said third and fourth registers and simultaneously incrementing said bit group address in said elementary counter;
- w. outputting the elementary level operation code from the fourth register when a predetermined shift of said bit groups has occured;
- x. decoding the extracted elementary language operation code;
- and
- y. executing the elementary operation which is represented by the elementary language operation code.
An inherently microprogrammable high level language processor which includes an electrical interconnection with a storage device for executing an interpretable language string stored in said storage device wherein said string includes machine level operation codes, for executing one of a plurality of elementary language programs stored in said storage device, each program being represented by a machine level operation code, and each program having elementary language codes certain of which having parameters associated therewith, said processor comprising:
- a. first extraction means for extracting a machine level operation code via said electrical interconnection from said interpretable language string stored in said storage device for use in locating the one of the elementary language programs stored in said storage device which is represented by the extracted code, said first extraction means including a register;
- b. second extraction means for extracting an elementary language operation code via said electrical interconnection from said one elementary language program stored in said storage device including means for extracting parameters associated with the extracted one of the elementary language operation codes;
- and
- c. means connecting the parameters associated with the extracted one of said codes to said register in said first means for controlling a further machine level sequential extraction.
An inherently microprogrammable high level language processor which includes an electrical interconnection with a storage device for executing interpretable language string stored in said storage device wherein said string includes machine level operation codes, and for executing one of a plurality of elementary language programs stored in said storage device, each program being represented by a machine level operation code comprising:
- a. first extraction means for extracting a machine level operation code via said electrical interconnection from said interpretable language string stored in said storage device for use in locating the one of the elementary language programs stored in said storage device which is represented by the extracted code;
- and
- b. second extraction means for extracting an elementary language operation code via said electrical interconnection from said one elementary language program stored in said storage device for use in the execution of the elementary operation which is represented by the elementary language operation code.
Dependencies are inferred from the claim text.