Decoding instructions from multiple instructions sets
AssigneeArm Limited
InventorSimon John Craske
Life of this patent
Estimating the term…
Abstract
A data processing apparatus, method and computer program are described that are capable of decoding instructions from different instruction sets. The method comprising: receiving an instruction; if an operation code of said instruction is an operation code of an instruction from a base set of instructions decoding said instruction according to decode rules for said base set of instructions; and if said operation code of said instruction is an operation code of an instruction from at least one further set of instructions decoding said instruction according to a set of decode rules determined by an indicator value indicating which of said at least one further set of instructions is currently to be decoded.
Claims22
A data processing apparatus comprising:
- an instruction decoder configured to decode instructions;
- and
- a processor configured to process data in response to instructions decoded by said instruction decoder;
- said instruction decoder being configured to decode instructions from a plurality of different instruction sets, said instruction sets including a base instruction set and at least two further instruction sets;
- said base instruction set comprising a plurality of base instructions, each base instruction comprising a predefined operation code for uniquely identifying said base instruction, and each of said at least two further instruction sets comprising a plurality of further instructions, each further instruction comprising an operation code for identifying said further instruction within said at least two further instruction sets;
- said instruction decoder configured when operational to have access to a base set of decode rules independent of an indicator value, and further to have access to a set of decode rules determined by said indicator value, said indicator value being specified separately to the further instructions of said at least two further instruction sets and indicating which one of said at least two further instruction sets is currently being used in addition to said base instruction set, such that said instruction decoder is configured to decode a base instruction having one of said plurality of predefined operation codes according to said base set of decode rules, and to decode a further instruction having one of said operation codes of said at least two further instruction sets according to said set of decode rules determined by said indicator value,
- wherein each instruction has its operation code specified by a sequence of bits forming an encoding space, the encoding space including a base encoding space and an extension encoding space, and
- wherein said predefined operation codes for base instructions within said base set of instructions lie within the base encoding space and do not lie within the extension encoding space, and said operation codes for further instructions of said at least two further instruction sets lie within the extension encoding space and do not lie within the base encoding space, said indicator value indicating which one of said at least two further instruction sets is currently being represented within said extension encoding space.
A method of decoding instructions from different instruction sets, said instruction sets including a base instruction set and at least two further instruction sets, the method comprising:
- receiving an instruction;
- when an operation code of said instruction is an operation code of a base instruction from said base instruction set, decoding said base instruction according to a base set of decode rules accessed independent of an indicator value;
- and
- when said operation code of said instruction is an operation code of a further instruction from said at least two further instruction sets, decoding said further instruction according to a set of decode rules accessed in dependence on said indicator value, said indicator value being specified separately to the further instructions of said at least two further instruction sets and indicating which one of said at least two further instruction sets is currently being used in addition to said base instruction set,
- wherein each instruction has its operation code specified by a sequence of bits forming an encoding space, the encoding space including a base encoding space and an extension encoding space, and
- wherein said predefined operation codes for base instructions within said base set of instructions lie within the base encoding space and do not lie within the extension encoding space, and said operation codes for further instructions of said at least two further instruction sets lie within the extension encoding space and do not lie within the base encoding space, said indicator value indicating which one of said at least two further instruction sets is currently being represented within said extension encoding space.
A non-transitory computer readable storage medium comprising an instruction set update instruction which when run on a data processor controls said data processor to set an indicator value in a status register to a value indicated by said instruction set update instruction, a decoder of said data processor decoding instructions having operation codes indicating base instructions from a base instruction set according to a base set of decoding rules accessed independent of said indicator value, and decoding further instructions having operation codes indicating instructions from at least two further instruction sets according to a set of decode rules accessed in dependence on said indicator value, said indicator value being specified separately to the further instructions of said at least two further instruction sets and indicating which one of said at least two further instruction sets is currently being used in addition to said base instruction set,
- wherein each instruction has its operation code specified by a sequence of bits forming an encoding space, the encoding space including a base encoding space and an extension encoding space, and
- wherein said predefined operation codes for base instructions within said base set of instructions lie within the base encoding space and do not lie within the extension encoding space, and said operation codes for further instructions of said at least two further instruction sets lie within the extension encoding space and do not lie within the base encoding space, said indicator value indicating which one of said at least two further instruction sets is currently being represented within said extension encoding space.
An apparatus for processing data comprising
- means for decoding instructions;
- and
- means for processing data in response to instructions decoded by said means for decoding;
- said means for decoding being for decoding instructions from a plurality of different instruction sets, said instruction sets including a base instruction set and at least two further instruction sets;
- said base instruction set comprising a plurality of base instructions, each base instruction comprising a predefined operation code for uniquely identifying said base instruction, and each of said at least two further instruction sets comprising a plurality of further instructions, each further instruction comprising an operation code for identifying said further instruction within said at least two further instruction sets;
- said means for decoding for having access when operational to a base set of decode rules independent of an indicator value, and further for having access to a set of decode rules determined by said indicator value, said indicator value being specified separately to the further instructions of said at least two further instruction sets and indicating which one of said at least two further instruction sets is currently being used in addition to said base instruction set, such that said means for decoding is for decoding a base instruction having one of said plurality of predefined operation codes according to said base set of decode rules, and for decoding further instructions having one of said operation codes of said at least two further instruction sets according to said set of decode rules determined by said indicator value,
- wherein each instruction has its operation code specified by a sequence of bits forming an encoding space, the encoding space including a base encoding space and an extension encoding space, and
- wherein said predefined operation codes for base instructions within said base set of instructions lie within the base encoding space and do not lie within the extension encoding space, and said operation codes for further instructions of said at least two further instruction sets lie within the extension encoding space and do not lie within the base encoding space, said indicator value indicating which one of said at least two further instruction sets is currently being represented within said extension encoding space.
Dependencies are inferred from the claim text.