Instruction Formats
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Type |
Opcode | Ra | Rb | Unused | 0 | Function | Rc | Integer operate | |||||||||||||||||||||||||
Opcode | Ra | Literal | 1 | Function | Rc | Integer operate, literal | ||||||||||||||||||||||||||
Opcode | Ra | Rb | Function | Rc | Floating-point operate | |||||||||||||||||||||||||||
Opcode | Ra | Rb | Displacement | Memory format | ||||||||||||||||||||||||||||
Opcode | Ra | Displacement | Branch format | |||||||||||||||||||||||||||||
Opcode | Function | CALL_PAL format |
The Alpha ISA has a fixed instruction length of 32 bits. It has six instruction formats.
The integer operate format is used by integer instructions. It contains a 6-bit opcode field, followed by the Ra field, which specifies the register containing the first operand and the Rb field, specifies the register containing the second operand. Next is a 3-bit field which is unused and reserved. A 1-bit field contains a "0", which distinguished this format from the integer literal format. A 7-bit function field follows, which is used in conjunction with the opcode to specify an operation. The last field is the Rc field, which specifies the register which the result of a computation should be written to. The register fields are all 5 bits long, required to address 32 unique locations, the 32 integer registers.
The integer literal format is used by integer instructions which use a literal as one of the operands. The format is the same as the integer operate format except for the replacement of the 5-bit Rb field and the 3 bits of unused space with an 8-bit literal field which is zero-extended to a 64-bit operand.
The floating-point operate format is used by floating-point instructions. It is similar to the integer operate format, but has an 11-bit function field made possible by using the literal and unused bits which are reserved in integer operate format.
The memory format is used mostly by load and store instructions. It has a 6-bit opcode field, a 5-bit Ra field, a 5-bit Rb field and a 16-bit displacement field.
Branch instructions have a 6-bit opcode field, a 5-bit Ra field and a 21-bit displacement field. The Ra field specifies a register to be tested by a conditional branch instruction, and if the condition is met, the program counter is updated by adding the contents of the displacement field with the program counter. The displacement field contains a signed integer and if the value of the integer is positive, if the branch is taken then the program counter is incremented. If the value of the integer is negative, then program counter is decremented if the branch is taken. The range of a branch is 1,048,576. The Alpha Architecture was designed with a large range as part of the architecture's forward-looking goal.
The CALL_PAL format is used by the CALL_PAL
instruction, which is used to call PALcode subroutines. The format retains the opcode field but replaces the others with a 26-bit function field, which contains an integer specifying a PAL subroutine.
Read more about this topic: DEC Alpha
Famous quotes containing the word instruction:
“Everything from airplanes to kitchen blendersand even chopstickscomes with an instruction manual. Children, despite all their complexity, do not.”
—Lawrence Kutner (20th century)