Instruction Set Architecture is a subset of Computer Architecture which is associated to machine language programming, instructions, data types, registers, memory architecture, addressing modes, exception handling and external I/O. An Instruction Set Architecture has determination of the set of "op-codes" and the commands of an individual processor. ISA is differentiated from the set of processor design techniques used to apply the instruction set called "Microarchitecture". If some computers have different Microarchitecture, those will be different with the inside design but they can share a common instruction set.
Categories of Instruction Sets
Instruction Sets are divided into following categories:-
Complex Instruction Set Computer :- In this computer each instruction can run many low level operations and able to do multi-step operations. System/360, PDP-11, X-86 are the examples of this.
Reduced Instruction Set Computer : - In this computer small and highly modified instruction are used instead of more specialized set of instructions. DEC Alpha, AMD 29k, ARC are the examples of this.
Minimal Instruction Set Computer :-This is a computer with very small and corresponding op-codes instructions.
One Instruction Set Computer :- One instruction set computer is a computer which uses only one instruction. This is also known as "Ultimate Reduced Instruction Set Computer".
Very Long Instruction Word :-In this computer processor only allow qualified instructions which run one after another.
Machine Language
Machine language is developed from separate instructions. Passed on instructions will be applied on the processing architecture.
Specific registers for addressing arithmetic.
Specific memory locations.
Specific addressing modes.
This figure shows that programming language converts from bytes codes to assembly language by compiler and then translates to machine language.
Instruction Types
Data and Memory control
Fix the constant value by adjust a register.
Move data to a register from the memory location or the other way around.
Write and read data from hardware devices
Arithmetic and Logic
Add, Subtract, Multiply, and Divide the value in registers.
Get the Logics (Conjunction, Disjunction, and Negation) and run the bitwise operations.
Analyse two values in a register.
Control Flow
Branch to some other location and run instructions
With instructions branch to other location if there is any condition stays.
Indirectly send to other location.
Parts of an Instruction
An Instruction has two parts:
Op-code
Operand
An op-code is a single instruction that can be run by the CPU. This is a command to perform the operation. E.g. MOV, ADD.
So the op-code is MOV instruction and the remained part is called "Operand". Operands are handled by the op-codes. E.g. MOV, AL, 34H. In this example MOV is an op-code and AL, 34H are Operands.
In this picture you can see that Red area is an Op-code and rest yellow one is an operand
Instruction Formats
The Instruction has two formats, Shorter and Longer formats. Shorter instruction requires less time to bring and decode but the longer instruction takes long time. So that's why shorter instructions are more preferred than longer instructions. The instructions can be divided into following categories:-
Zero Addressed Instruction:-This instruction includes only op-code. ADD is an example of this.
One Addressed Instruction:-This includes op-code and address 1. ADD, B is an example of this.
Two Addressed Instruction:-It contains op-code and operands. Example: ADD, R1, A, B.
Instruction Length
Instruction sizes are varies widely. Size of any instruction is the multiple of 8 bits. Like in personal computers and supercomputers the instruction sizes are between 8 bits and 64 bits. In X86 instruction sizes are 120 bits which is possibly longest.
Advantages of I.S.A.
There are many benefits of Instruction Set Architecture. It is very easy for compilers to create efficient codes. With Instruction Set Architecture "Errors" can be reduced. In this you can make changes very fast and easily. The codes are very easy to read and you can follow them easily. You can integrate changes very fast and easily.
Disadvantages of I.S.A.
Programmer must have knowledge about the Instruction Set Architecture. Users have to follow many instructions to complete even little tasks. Source codes are very large and needs much time to follow. You can't port the programmes to other computers.
Conclusion
To sum up whole I can say that Instruction Set Architecture is a process in computer architecture with a set of lots of instructions about language, registers, data, memory etc. There are several types of instructions which are used in computer architecture and user must have knowledge about all of them. Performance depends on each type of instruction like if users try Complex instructions they are capable to do multi-step operations while they use Reduced instructions, they can use highly modified instructions. User must know about data and memory control, logic and mathematics usage, and control flow. Instruction sizes are varies and is a multiple of 8 bits. ISA has two parts op code and operands. It has two formats shorter and longer. All I can say that user must know all of these things while using Instruction Set Architecture in Computer Architecture.