Implicit Global Pointer Relative Addressing for Global Memory Access
Instruction set architectures (ISAs) and apparatus and methods related thereto comprise an instruction set that includes one or more instructions which identify the global pointer (GP) register as an operand (e.g., base register or source register) of the instruction. Identification can be implicit. By implicitly identifying the GP register as an operand of the instruction, one or more bits of the instruction that were dedicated to explicitly identifying the operand (e.g., base register or source register) can be used to extend the size of one or more other operands, such as the offset or immediate, to provide longer offsets or immediates.
1 - 25 . (canceled)
26 . A method comprising:
receiving, at a decode unit, an instruction (1) specifying an operation to be performed and (2) implicitly identifying a base register as an operand of the operation;
determining, by the decode unit, the identification of the base register implicitly identified as the base register in the instruction;
output, by the decode unit, one or more control signals that cause an execution unit coupled to the decode unit to perform the operation specified by the instruction using the operand implicitly identified by the instruction.
27 . The method of claim 26 , wherein the base register comprises a GP register.
28 . The method of claim 26 , wherein the base register comprises a PC register.
29 . The method of claim 26 , wherein the instruction comprises a load instruction.
30 . The method of claim 26 , wherein the instruction comprises a store instruction.
31 . The method of claim 26 , wherein the instruction comprises an add instruction.
32 . The method of claim 26 , wherein the instruction comprises a memory access instruction.
33 . The method of claim 26 , wherein the instruction comprises at least two load instructions, each load instruction having different bit lengths.
34 . The method of claim 26 , further comprising:
determining, by the decode unit, whether the received instruction implicitly identifies a GP register as the base register; and
in response to a determination that the received instruction does not implicitly identify a GP register as a base register, then determining, by the decode unit, whether the received instruction implicitly identifies a PC register as the base register.
35 . The method of claim 34 , further comprising:
receiving, at the decode unit, a second instruction; and
in response to a determination by the decode unit that the second instruction does not implicitly identify a GP register or a PC register as a base register, then outputting, by the decode unit, one or more control signals that cause the execution unit to perform an operation specified by the second instruction using an operand explicitly identified by the second instruction.
36 . An apparatus comprising:
a decode unit configured to:
receive an instruction (1) specifying an operation to be performed and (2) implicitly identifying a base register as an operand of the operation;
determine the identification of the base register implicitly identified as the base register in the instruction; and
output one or more control signals that cause an execution unit coupled to the decode unit to perform the operation specified by the instruction using the operand implicitly identified by the instruction; and
an execution unit configured to, in response to the one or more control signals, perform the operation specified by the instruction.
37 . The apparatus of claim 36 , wherein the base register comprises a GP register.
38 . The apparatus of claim 36 , wherein the base register comprises a PC register.
39 . The apparatus of claim 36 , wherein the instruction comprises a load instruction.
40 . The apparatus of claim 36 , wherein the instruction comprises a store instruction.
41 . The apparatus of claim 36 , wherein the instruction comprises an add instruction.
42 . The apparatus of claim 36 , wherein the instruction comprises at least two load instructions, each load instruction having different bit lengths.
43 . The apparatus of claim 36 , wherein the instruction comprises a memory access instruction.
44 . The apparatus of claim 36 , wherein the decode unit is further configured to:
determine whether the received instruction implicitly identifies a GP register as the base register; and
in response to a determination that the received instruction does not implicitly identify a GP register as a base register, then determine whether the received instruction implicitly identifies a PC register as the base register.
45 . The apparatus of claim 44 , wherein the decode unit is further configured to:
receive a second instruction; and
in response to a determination by the decode unit that the second instruction does not implicitly identify a GP register or a PC register as a base register, then output one or more control signals that cause the execution unit to perform an operation specified by the second instruction using an operand explicitly identified by the second instruction.