Wednesday, February 26, 2014

Difference between CISC and RISC Architecture

CISC | Complex instruction set Computing.

1.very large instruction sets reaching up to and above three hundred seperate instructions.

2. Performance was improved by allowing the simplification of program compilers, as the range of more advanced instructions available led to less refinements having to be made at the compilation process. However, the complexity of the processor hardware and architecture that resulted can cause such chips to be difficult to understand and program for, and also means they can be expensive to produce.

3. more specialized addressing modes and registers also being implemented, with variable length instruction codes.

4. Instruction pipelining can not be implemented easily.

5. Many complex instructions can access memory, such as direct addition between data in two memory locations. 


6. 
Mainly used in normal PC’s, Workstations and servers .

7. CISC systems shorten execution time by reducing the
number of instructions per program.

8. Examples of CISC Processors: Intel x86.


RISC | Reduced instruction set Computing.


1. Small set of instructions.


2. simplified and reduced instruction set, numbering one hundred instructions or less. because of simple instructions, RISC chips requires fewer transistors to produce processors. Also the reduced instruction set means that the processor can execute the instructions more quickly, potentially allowing for greater speeds. However, only allowing such simple instructions means a greater burden is placed upon the software itself. Less instructions in the instruction set means a greater emphasis on the efficient writing of software with the instructions that are available.

3. Addressing modes are simplified back to four or less, and the length of the codes is fixed in order to allow standardization across the instruction set.

4. Instruction pipelining can be implemented easily.

5. Only LOAD/STORE instructions can access memory.

6. Mainly used for real time applications.

7. RISC systems shorten execution time by reducing the clock
cycles per instruction (i.e. simple instructions take less time
to interpret).

8. Examples of RISC Processors: Atmel AVR, PIC, ARM.



Summary:


               CISC                                                                             RISC 


Large (100 to 300)                  
Instruction Set                  Small (100 or less)

Complex (8 to 20)                  
Addressing Modes                 Simple (4 or less) 

Specialized and complex         
Instruction Format                               Simple

Variable                               
Instruction Lengths                                Fixed

Variable                               
Execution Cycles                  Standard for most

Higher                                 
Cost / CPU Complexity                           Lower

Compilation                         
Simplifies                              Processor design

Processor design                  
Complicates                                      Software

Difficult                              Instruction Pipeline                                  Easy


8085 architecture

Acumulator:-It is a 8-bit register which is used to perform arithmetical and logical operation. It stores the output of any operation. It also works as registers for i/o accesses.

Temporary Register:-It is a 8-bit register which is used to hold the data on which the acumulator is computing operation. It is also called as operand register because it provides operands to ALU.

Registers:-These are general purposes registers. Microprocessor consists 6 general purpose registers of 8-bit each named as B,C,D,E,H and L.   Generally theses registers are not used for storing the data permanently. It carries the 8-bits data. These are used only during the execution of the instructions.
These registers can also be used to carry the 16 bits data by making the pair of 2 registers. The valid register pairs available are BC,DE HL. We cannot use other pairs except BC,DE and HL. These registers are programmed by user.


ALU:-ALU performs the arithmetic operations and logical operation.

Flag Registers:-It consists of 5 flip flop which changes its status according to the result stored in an accumulator. It is also known as status registers. It is connected to the ALU.
There are five flip-flops in the flag register are as follows:
1.Sign(S)
2.zero(z)
3.Auxiliary carry(AC)
4.Parity(P)
5.Carry(C)
The bit position of the flip flop in flag register is:           

                              



All of the three flip flop set and reset according to the stored result in the accumulator.
1.Sign- If D7 of the result is 1 then sign flag is set otherwise reset. As we know that a number on the D7 always desides the sign of the number.
if D7 is 1: the number is negative.
if D7 is 0: the number is positive.

2.Zeros(Z)-If the result stored in an accumulator is zero then this flip flop is set otherwise it is reset.

3.Auxiliary carry(AC)-If any carry goes from D3 to D4 in the output then it is set otherwise it is reset.

4.Parity(P)-If the no of 1's is even in the output stored in the accumulator then it is set otherwise it is reset for the odd.

5.Carry(C)-If the result stored in an accumulator generates a carry in its final output then it is set otherwise it is reset.

Instruction registers(IR):-It is a 8-bit register. When an instruction is fetched from memory then it is stored in this register.

Instruction Decoder:- Instruction decoder identifies the instructions. It takes the informations from instruction register and decodes the instruction to be performed.

Program Counter:-It is a 16 bit register used as memory pointer. It stores the memory address of the next instruction to be executed. So we can say that this register is used to sequencing the program. Generally the memory have 16 bit addresses so that it has 16 bit memory.
The program counter is set to 0000H.

Stack Pointer:-It is also a 16 bit register used as memory pointer. It points to the memory location called stack. Generally stack is a reserved portion of memory where information can be stores or taken back together.

Timing and Control Unit:-It provides timing and control signal to the microprocessor to perform the various operation.It has three control signal. It controls all external and internal circuits. It operates with reference to clock signal.It synchronizes all the data transfers.
There are three control signal:
1.ALE-Airthmetic Latch Enable, It provides control signal to synchronize the components of microprocessor.
2.RD- This is active low used for reading operation.
3.WR-This is active low used for writing operation.

There are three status signal used in microprocessor S0, S1 and IO/M. It changes its status according the provided input to these pins.
                               

Serial Input Output Control-There are two pins in this unit. This unit is used for serial data communication.

Interrupt Unit-There are 6 interrupt pins in this unit. Generally an external hardware is connected to these pins. These pins provide interrupt signal sent by external hardware to microprocessor and microprocessor sends acknowledgement for receiving the interrupt signal. Generally INTA is used for acknowledgement.


Hardware Interrupt:-
As i have already discussed that there are 6 interrupt pins in the microprocessor used as Hardware Interrupts given below:
TRAP
RST7.5
RST6.5
RST5.5
INTR
INTA is not an interrupt. INTA is used by the Microprocessor for sending
 the acknowledgement. TRAP has highest priority and RST7.5 has second highest priority and so on.