PowePC Instructions - muneeb-mbytes/computerArchitectureCourse GitHub Wiki

POWER PC INSTRUCTIONS

There are namely 3 instructions in POWER PC architecture which follows as

  1. Immediate /base addressing
  2. Register addressing
  3. Indexed addressing

Immediate /base addressing

MIPS1 drawio

It has a 6-bit opcode, 5-bit register fields and 16 bit constant. The structure resembles immediate addressing or base addressing in MIPS, having identical formats. Also, Base addressing is used for memory access, while immediate addressing used for arithmetic and logical operations.

Register addressing

MIPS2 drawio

Here it has 6 bit opcode, 5-bit register fields along with opcode extension of 10 bit and a single bit condition register R. When there is a need of extending instructions, so with this opcode extension it can be done which actually is a group of instructions have same opcode.

Next comes a condition register where a single bit which is used to control the condition of instruction by enabling it. This is helpful when we have some instruction which is not needed to be performed now, so that will be disabled and enabled for later testing.

Indexed addressing

MIPS3 drawio

This particular mode is used for accessing memory. Here it has got opcode, reg fields and size, sign, updata bits. Basically there is a constant and a value which is coming from a register the two are added up. Now the question arises how to distinguish the two values are different. The indexing mode comes here to solve as this mode has a base register and index register.

The base register which might carry the start address of an array while the index register carries the value which is specified to that index. Here as the data is being accessed as array of bytes or array of words, a feature of size is mentioned which specifies the size of the data.

Also a sign feature which helps in choosing which operation to be performed like addition or subtraction. And finally when the operation is done, if it needs to be updated to the base register or not to be decided by update feature.

So basically something like autoincrementing and autodecrementing happens where addresses get modified and new values were added which goes back to base register which is all in control which make it more versatile.