Automatic operand load, modify and store
First Claim
Patent Images
1. A processor, comprising:
- decode logic coupled to an instruction cache;
a micro-sequence vector table coupled to the decode logic, wherein the micro-sequence vector table comprises one entry for each bytecode in an instruction set of the processor, wherein all fields in an entry are unique to a bytecode corresponding to the entry; and
a storage unit coupled to the decode logic,wherein the decode logic is configured to;
obtain a single bytecode from the instruction cache, wherein the single bytecode requires an immediate operand stored in the instruction cache,use the single bytecode to locate the entry corresponding to the single bytecode in the micro-sequence vector table,cause the processor to directly execute the single bytecode using the immediate operand when a first field in the entry indicates that the single bytecode is to be executed, and,when the first field in the entry indicates that a micro-sequence is to be executed instead of the single bytecode and a second field in the entry indicates that the single bytecode requires the immediate operand, obtain the immediate operand from the instruction cache, modify the immediate operand when a third field in the entry indicates that the immediate operand is to be modified, and store the modified immediate operand in the storage unit for use by the micro-sequence.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor comprising a decode logic coupled to a first storage unit and comprising a data structure. The processor also comprises a second storage unit coupled to the decode logic. The decode logic obtains a single instruction from the first storage unit and, if indicated by a first bit in the data structure, processes a group of instructions in lieu of the single instruction, where the single instruction requires an operand. If indicated by a second bit in the data structure, the decode logic obtains the operand from the first storage unit, modifies the operand, and stores the operand to the second storage unit for use by the group of instructions.
22 Citations
19 Claims
-
1. A processor, comprising:
-
decode logic coupled to an instruction cache; a micro-sequence vector table coupled to the decode logic, wherein the micro-sequence vector table comprises one entry for each bytecode in an instruction set of the processor, wherein all fields in an entry are unique to a bytecode corresponding to the entry; and a storage unit coupled to the decode logic, wherein the decode logic is configured to; obtain a single bytecode from the instruction cache, wherein the single bytecode requires an immediate operand stored in the instruction cache, use the single bytecode to locate the entry corresponding to the single bytecode in the micro-sequence vector table, cause the processor to directly execute the single bytecode using the immediate operand when a first field in the entry indicates that the single bytecode is to be executed, and, when the first field in the entry indicates that a micro-sequence is to be executed instead of the single bytecode and a second field in the entry indicates that the single bytecode requires the immediate operand, obtain the immediate operand from the instruction cache, modify the immediate operand when a third field in the entry indicates that the immediate operand is to be modified, and store the modified immediate operand in the storage unit for use by the micro-sequence. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An electronic device, comprising:
-
a first processor; and a second processor coupled to the first processor, wherein the second processor is configured to directly execute a stack-based instruction set comprising bytecodes and a complementary instruction set comprising micro-sequence instructions, and wherein the second processor comprises; an instruction cache configured to store bytecodes and micro-sequence instructions; a register dedicated for storage of an immediate operand of a bytecode; decode logic coupled to the instruction cache and the register; and a micro-sequence vector table coupled to the decode logic, wherein the micro-sequence vector table comprises one entry for each bytecode of the stack-based instruction set, and wherein each entry comprises a plurality of fields unique to a bytecode corresponding to the entry, wherein the plurality of fields comprises; a first field configured to indicate whether the corresponding bytecode is to be executed directly or a micro-sequence is to be executed rather than the corresponding bytecode; a second field configured to indicate whether the corresponding bytecode requires an immediate operand stored in the instruction cache; a third field configured to indicate whether the decode logic is to modify the immediate operand; and a fourth field configured to store a reference to the micro-sequence, wherein the decode logic is configured to; obtain a bytecode from the instruction cache, wherein the bytecode requires an immediate operand stored in the instruction cache, use the bytecode to locate the entry in the micro-sequence vector table corresponding to the bytecode, cause the second processor to directly execute the single bytecode using the immediate operand when the first field of the entry indicates that the single bytecode is to be executed, obtain the immediate operand for the bytecode from the instruction cache when the first field of the entry indicates that a micro-sequence is to be executed and the second field of the entry indicates that the bytecode requires the immediate operand, modify the immediate operand when the third field indicates the immediate operand is to be modified, and store the modified operand in the register for use by a micro-sequence referenced in the fourth field of the entry. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method, comprising:
-
fetching a single bytecode from an instruction cache, wherein the single bytecode requires an immediate operand stored in the instruction cache; using the single bytecode to locate an entry corresponding to the single bytecode in a micro-sequence vector table, wherein the micro-sequence vector table comprises one entry for each bytecode in an instruction set of a processor, wherein all fields in an entry are unique to a bytecode corresponding to the entry; causing the processor to directly execute the single bytecode using the immediate operand when a first field in the entry indicates that the single bytecode is to be executed; and when the first field in the entry indicates that a micro-sequence is to be executed instead of the single bytecode and a second field in the entry indicates that the immediate operand is required by the single bytecode, obtaining the immediate operand from the instruction cache; modifying the immediate operand when a third field in the entry indicates that the immediate operand is to be modified; and storing the modified immediate operand in a register for use by the micro-sequence. - View Dependent Claims (17, 18, 19)
-
Specification