Mapping between registers used by multiple instruction sets
First Claim
1. Apparatus for processing data comprising:
- a plurality of registers configured to store data values to be processed;
processing circuitry coupled to said plurality of registers and configured to perform data processing operations upon data values stored in said plurality of registers;
an instruction decoder coupled to said processing circuitry and responsive to a stream of program instructions to control said processing circuitry to perform said data processing operations;
whereinsaid instruction decoder is responsive to program instructions of a first instruction set to control said processing circuitry to perform said data processing operations using N-bit architectural registers provided by said plurality of registers, where N is a positive integer value;
said instruction decoder is responsive to program instructions of a second instruction set to control said processing circuitry to perform said data processing operations using M-bit architectural registers provided by said plurality of registers, where M is a positive integer value and at least some of said plurality of registers are shared by program instructions of said first instruction set and program instructions of said second instruction set;
said instruction decoder is configured to decode a register specifying field within a program instruction of said first instruction set when determining which of said plurality of registers to access as part of a first set of N-bit architectural registers presented for use by program instructions of said first instruction set;
said instruction decoder is configured to decode a register specifying field within a program instruction of said second instruction set when determining which of said plurality of registers to access as part of a second set of M-bit architectural registers presented for use by program instructions of said second instruction set; and
said instruction decoder is configured to provide a first mapping between values of said register specifying field within program instructions of said first instruction set and said plurality of registers and a second mapping between values of said register specifying field within program instructions of said second instruction set and said plurality of registers, said first mapping being different to said second mapping and said first mapping and said second mapping being such that each register of said first set has a predetermined one-to-one mapping to a register of said second set, shares with said register of said second set a shared part of a common register within said plurality of registers, an unshared part of said common register being unaccessible using instructions of said first instruction set, and stores a value that is accessible using a register of said second set.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor 4 is provided which supports a first instruction set specifying 32-bit architectural registers and a second instruction set specifying 64-bit architectural registers. Each of these instruction sets is presented with its own set of architectural registers for use. The first set of registers presented to the first instruction set has a one-to-one mapping to the second set of registers presented to this second instruction set. The registers which are provided in hardware are 64-bit registers. In some embodiments, when executing program instructions of the first instruction set, only the least significant portion of these 64-bit registers are accessed and manipulated with the remaining most significant portion of the registers being left unaltered. Register specifying fields within instructions of the first instruction set are decoded together with a current exception mode to determine which architectural register to use whereas the second instruction set uses register specifying fields without a dependence upon exception mode to determine which architectural register are to be used.
34 Citations
48 Claims
-
1. Apparatus for processing data comprising:
-
a plurality of registers configured to store data values to be processed; processing circuitry coupled to said plurality of registers and configured to perform data processing operations upon data values stored in said plurality of registers; an instruction decoder coupled to said processing circuitry and responsive to a stream of program instructions to control said processing circuitry to perform said data processing operations;
whereinsaid instruction decoder is responsive to program instructions of a first instruction set to control said processing circuitry to perform said data processing operations using N-bit architectural registers provided by said plurality of registers, where N is a positive integer value; said instruction decoder is responsive to program instructions of a second instruction set to control said processing circuitry to perform said data processing operations using M-bit architectural registers provided by said plurality of registers, where M is a positive integer value and at least some of said plurality of registers are shared by program instructions of said first instruction set and program instructions of said second instruction set; said instruction decoder is configured to decode a register specifying field within a program instruction of said first instruction set when determining which of said plurality of registers to access as part of a first set of N-bit architectural registers presented for use by program instructions of said first instruction set; said instruction decoder is configured to decode a register specifying field within a program instruction of said second instruction set when determining which of said plurality of registers to access as part of a second set of M-bit architectural registers presented for use by program instructions of said second instruction set; and said instruction decoder is configured to provide a first mapping between values of said register specifying field within program instructions of said first instruction set and said plurality of registers and a second mapping between values of said register specifying field within program instructions of said second instruction set and said plurality of registers, said first mapping being different to said second mapping and said first mapping and said second mapping being such that each register of said first set has a predetermined one-to-one mapping to a register of said second set, shares with said register of said second set a shared part of a common register within said plurality of registers, an unshared part of said common register being unaccessible using instructions of said first instruction set, and stores a value that is accessible using a register of said second set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 26)
-
-
13. Apparatus for processing data comprising:
-
a plurality of register means for storing data values to be processed; processing means for performing data processing operations upon data values stored in said plurality of register means; instruction decoding means for controlling said processing circuitry to perform said data processing operations in response to a stream of program instructions;
whereinsaid instruction decoding means is responsive to program instructions of a first instruction set to control said processing means to perform said data processing operations using N-bit architectural register means provided by said plurality of register means, where N is a positive integer value; said instruction decoding means is responsive to program instructions of a second instruction set to control said processing means to perform said data processing operations using M-bit architectural register means provided by said plurality of register means, where M is a positive integer value and at least some of said plurality of register means are shared by program instructions of said first instruction set and program instructions of said second instruction set; said instruction decoding means is configured to decode a register specifying field within a program instruction of said first instruction set when determining which of said plurality of register means to access as part of a first set of N-bit architectural register means presented for use by program instructions of said first instruction set; said instruction decoding means is configured to decode a register specifying field within a program instruction of said second instruction set when determining which of said plurality of register means to access as part of a second set of M-bit architectural register means presented for use by program instructions of said second instruction set; and said instruction decoding means is configured to provide a first mapping between values of said register specifying field within program instructions of said first instruction set and said plurality of register means and a second mapping between values of said register specifying field within program instructions of said second instruction set and said plurality of register means, said first mapping being different to said second mapping and said first mapping and said second mapping being such that each register means of said first set has a predetermined one-to-one mapping to a register means of said second set, shares with said register means of said second set a shared part of a common register means within said plurality of register means, an unshared part of said common register means being unaccessible using instructions of said first instruction set, and stores a value that is accessible using a register means of said second set.
-
-
14. A method of processing data comprising the steps of:
-
storing data values to be processed in a plurality of registers; performing data processing operations upon data values stored in said plurality of registers; decoding a stream of program instructions to control said performing of said data processing operations;
whereinsaid decoding is responsive to program instructions of a first instruction set to control said performing of said data processing operations using N-bit architectural registers provided by said plurality of registers, where N is a positive integer value; said decoding is responsive to program instructions of a second instruction set to control said performing of said data processing operations using M-bit architectural registers provided by said plurality of registers, where M is a positive integer value and at least some of said plurality of registers are shared by program instructions of said first instruction set and program instructions of said second instruction set; said decoding decodes a register specifying field within a program instruction of said first instruction set when determining which of said plurality of registers to access as part of a first set of N-bit architectural registers presented for use by program instructions of said first instruction set; said decoding decodes a register specifying field within a program instruction of said second instruction set when determining which of said plurality of registers to access as part of a second set of M-bit architectural registers presented for use by program instructions of said second instruction set; and said decoding provides a first mapping between values of said register specifying field within program instructions of said first instruction set and said plurality of registers and a second mapping between values of said register specifying field within program instructions of said second instruction set and said plurality of registers, said first mapping being different to said second mapping and said first mapping and said second mapping being such that each register of said first set has a predetermined one-to-one mapping to a register of said second set, shares with said register of said second set a shared part of a common register within said plurality of registers, an unshared part of said common register being unaccessible using instructions of said first instruction set, and stores a value that is accessible using a register of said second set. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
27. Apparatus for processing data comprising:
-
a plurality of registers configured to store data values to be processed; processing circuitry coupled to said plurality of registers and configured to perform data processing operations upon data values stored in said plurality of registers; an instruction decoder coupled to said processing circuitry and responsive to a stream of program instructions to control said processing circuitry to perform said data processing operations;
whereinsaid instruction decoder is responsive to program instructions of a first instruction set to control said processing circuitry to perform said data processing operations using a first set of architectural registers provided by said plurality of registers; said apparatus when executing program instructions of said first instruction set is configured to operate in a plurality of exception states and said instruction decoder is configured to decode said register specifying field within a program instruction of said first instruction set together with a current exception state of said plurality of exception states when determining which architectural register to use; said instruction decoder is responsive to program instructions of a second instruction set to control said processing circuitry to perform said data processing operations using a second set of architectural registers provided by said plurality of registers and shared with program instructions of said first instruction set; and said instruction decoder is configured to decode a register specifying field within a program instruction of said second instruction set without a dependence upon exception state when determining which architectural register to use. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 48)
-
-
37. Apparatus for processing data comprising:
-
a plurality of register means for storing data values to be processed; processing means for performing data processing operations upon data values stored in said plurality of register means; instruction decoding means for controlling said processing circuitry to perform said data processing operations in response to a stream of program instructions;
whereinsaid instruction decoder means is responsive to program instructions of a first instruction set to control said processing means to perform said data processing operations using a first set of architectural registers provided by said plurality of register means; said apparatus when executing program instructions of said first instruction set is configured to operate in a plurality of exception states and said instruction decoder means is configured to decode said register specifying field within a program instruction of said first instruction set together with a current exception state of said plurality of exception states when determining which architectural register to use; said instruction decoder means is responsive to program instructions of a second instruction set to control said processing means to perform said data processing operations using a second set of architectural registers provided by said plurality of register means and shared with program instructions of said first instruction set; and said instruction decoder means is configured to decode a register specifying field within a program instruction of said second instruction set without a dependence upon exception state when determining which of architectural register to use.
-
-
38. A method of processing data comprising the steps of:
-
storing data values to be processed in a plurality of registers; performing data processing operations upon data values stored in said plurality of registers; decoding a stream of program instructions to control said performing of said data processing operations;
whereinsaid decoding is responsive to program instructions of a first instruction set to control said performing of said data processing operations using a first set of architectural registers provided by said plurality of registers; when executing program instructions of said first instruction set, operating in one of a plurality of exception states and decoding a register specifying field within a program instruction of said first instruction set together with a current exception state of said plurality of exception states to determine which architectural register to use; said decoding is responsive to program instructions of a second instruction set to control said performing of said data processing operations using a second set of architectural registers provided by said plurality of registers and shared with program instructions of said first instruction set; and said decoding decodes a register specifying field within a program instruction of said second instruction set without a dependence upon exception state when determining which architectural register to use. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47)
-
Specification