RISC microprocessor architecture implementing multiple typed register sets
First Claim
1. An apparatus configured to execute a set of instructions, the instructions including one or more fields, wherein a field of a given instruction specifies a source or an operand of the given instruction or a destination of a result of the given instruction, and wherein the apparatus comprises:
- an execution unit configured to execute the instructions; and
a register file, coupled to the execution unit, configured to store operands and results of the instructions, wherein,the register file includes a plurality of register sets, each of the register sets including;
a first register set having a plurality of registers each of which is configured to store data of a single data type; and
a second register set having a plurality of registers, each of which is configured to store data of a plurality of data types, andwherein the register file is responsive to one or more of the fields in a given instruction to retrieve an operand of the given instruction from, or store a result of the given instruction into, a given register in a given one of the register sets as identified by the one or more fields of the given instruction.
7 Assignments
0 Petitions
Accused Products
Abstract
A register system for a data processor which operates in a plurality of modes. The register system provides multiple, identical banks of register sets, the data processor controlling access such that instructions and processes need not specify any given bank. An integer register set includes first (RA[23:0]) and second (RA[31:24]) subsets, and a shadow subset (RT[31:24]). While the data processor is in a first mode, instructions access the first and second subsets. While the data processor is in a second mode, instructions may access the first subset, but any attempts to access the second subset are re-routed to the shadow subset instead, transparently to the instructions, allowing system routines to seemingly use the second subset without having to save and restore data which user routines have written to the second subset. A re-typable register set provides integer width data and floating point width data in response to integer instructions and floating point instructions, respectively. Boolean comparison instructions specify particular integer or floating point registers for source data to be compared, and specify a particular Boolean register for the result, so there are no dedicated, fixed-location status flags. Boolean combinational instructions combine specified Boolean registers, for performing complex Boolean comparisons without intervening conditional branch instructions, to minimize pipeline disruption.
-
Citations
12 Claims
-
1. An apparatus configured to execute a set of instructions, the instructions including one or more fields, wherein a field of a given instruction specifies a source or an operand of the given instruction or a destination of a result of the given instruction, and wherein the apparatus comprises:
-
an execution unit configured to execute the instructions; and a register file, coupled to the execution unit, configured to store operands and results of the instructions, wherein, the register file includes a plurality of register sets, each of the register sets including; a first register set having a plurality of registers each of which is configured to store data of a single data type; and a second register set having a plurality of registers, each of which is configured to store data of a plurality of data types, and wherein the register file is responsive to one or more of the fields in a given instruction to retrieve an operand of the given instruction from, or store a result of the given instruction into, a given register in a given one of the register sets as identified by the one or more fields of the given instruction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for executing an instruction in an instruction execution unit, comprising:
-
decoding the instruction having one or more fields, wherein a field of a given instruction specifies a source or an operand of the given instruction or a destination of a result of the given instruction; accessing a register file coupled to the instruction execution unit, wherein the register file includes a plurality of register sets to store operands to execute the instruction and a result of executing the instruction, the register sets including; a first register set having a plurality of registers each of which is configured to store data of a first data type, and a second register set having a plurality of registers each of which is configured to store data of the first data type or data of a second data type; retrieving an operand of the given instruction from a given register in a given one of the register sets as identified by decoding the instruction; and storing a result of the given instruction into a given register in a given one of the register sets as identified by the decoding of the instruction. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification