Reading time: 15 minutes
Abstraction is a very important concept in our society.
Considering any field of study, there is a baseline or a basic set of knowledge or operations. You may see this as the level of simiplicity of the basic knowledge. For example, consider basic arithmetic, there are two possible set of operations:
- Operations such as add, subtract, multiply and divide
- Operations such as bitwise and, or, xor
With both approaches, we can achieve the same thing yet the procedure will be very different. Computers uses the second set yet we prefer to use the first set. One evident difference is the in the first set, we deal with compressed form of data yet in the second set, we deal with expanded form of data.
In this view, computers need to make similar decision such as whether to support basic operations like add only or have built-in support for high level operations such as multiplication and division. This has lead to the development of two instruction set namely:
- Reduced Instruction Set Computer (RISC)
- Complex Instruction Set Computer (CISC)
We will look into Complex Instruction Set Computer (CISC) in this article.
The performance of any computing device is denoted by the following equation:
Thus, the performance is inversely proportional to:
- time taken per cycle
- cycles per instruction
- number of instructions in a program
The time taken per CPU cycle is dependent to the hardware material to some extend and we will not concentrate over this.
The CISC architecture focuses on reducing the number of instructions per program.
The CISC Approach
The primary goal of CISC architecture is to complete a task in as few lines of assembly as possible. This is achieved by building processor hardware that is capable of understanding and executing a series of operations.
For this particular task, a CISC processor would come prepared with a specific instruction (say "MULT"). When executed, this instruction loads the two values into separate registers, multiplies the operands in the execution unit, and then stores the product in the appropriate register. Thus, the entire task of multiplying two numbers can be completed with one instruction:
MULT 2:3, 5:2
MULT is what is known as a "complex instruction." It operates directly on the computer's memory banks and does not require the programmer to explicitly call any loading or storing functions. It closely resembles a command in a higher level language. For instance, if we let "a" represent the value of 2:3 and "b" represent the value of 5:2, then this command is identical to the C statement "a = a * b."
One of the primary advantages of this system is that the compiler has to do very little work to translate a high-level language statement into assembly. Because the length of the code is relatively short, very little RAM is required to store instructions. The emphasis is put on building complex instructions directly into the hardware.
Key points of CISC architecture
- Emphasis on hardware
- multi-clock, complex instructions
- Memory to memory: "LOAD" and "STORE" are incorporated in instructions
- High cycles per second
- small code sizes
- Transistors used for storing complex instructions