An instruction set is a collection of machine code instructions which enable a processor to carry out all its tasks. A high level program is compiled into a number of machine instructions ~one high level instruction (for example, a print command issued by a programming software like, Visual Basic) must be changed into a series of low-level machine instructions (or machine language) which perform that single operation. The total number of instructions in an instruction set can be up to 200. Processors use one of two instruction set types.

Most personal computers use a CISC (Complex Instruction Set Computer) architecture, in which the CPU supports as many as two hundred instructions. An alternative architecture, used by many workstations and also by some personal computers, is RISC (Reduced Instruction Set Computer), which supports fewer instructions. Reduced Instruction Set Computer (RISC) is a type of instruction set for a microprocessor that recognizes a relatively limited number of instructions. Until the mid-1980s, the tendency among computer manufacturers was to build increasingly complex CPUs that had ever-larger sets of instructions.

However, a number of computer manufacturers decided to reverse this trend by building crus capable of executing only a very limited set of instructions. One advantage of RISC is that it can execute their instructions very fast because the instructions are so simple. Another, perhaps more important, advantage is that RISC chips require fewer transistors, which makes them cheaper to design and produce. To some extent, CISe and RISe implementations are becoming more and more alike. Many of today's RISC chips support as many instructions as yesterday's CISC chips. And today's CISC chips use many techniques formerly associated with RISC chips.

Superscalar describes a microprocessor design that makes it possible for more than one instruction at a time to be executed during a single clock cycle. In a superscalar design, the processor or the instruction compiler is able to determine whether an instruction can be carried out independently of other sequential instructions, or whether it has a dependency on another instruction and must be executed in sequence with it. The processor then uses multiple execution units to simultaneously carry out two or more independent instructions at a time. Superscalar design is sometimes called "second generation RISC."