Presentation on theme: "Tuan Tran. What is CISC? CISC stands for Complex Instruction Set Computer. CISC are chips that are easy to program and which make efficient use of memory."— Presentation transcript:
What is CISC? CISC stands for Complex Instruction Set Computer. CISC are chips that are easy to program and which make efficient use of memory. Examples of CISC processors are: PDP-11 Motorola family Intel x86/Pentium CPU’s
CISC HISTORY The first PC microprocessors developed were CISC chips, because all the instructions the processor could execute were built into the chip. Memory was expensive in the early days of PCs, and CISC chips saved memory because their programming could be fed directly into the processor. CISC was developed to make compiler development simpler. It shifts most of the burden of generating machine instructions to the processor. For example, instead of having to make a compiler write long machine instructions to calculate a square-root, a CISC processor would have a built-in ability to do this.
CIS PHILOSOPHY The three decisions that led to the CISC philosophy, which drove all computer designs until the late 1980s, and is still in major use today are the use Microcode, build rich instruction sets, and build high-level instruction sets. Use Microcode: simple logic to control the data paths between the various elements of the processor. In a micro programmed system, the main processor has some built-in memory (typically ROM) that contains groups of microcode instructions which correspond with each machine-language instruction. Since the microcode memory can be much faster than main memory, an instruction set can be implemented in microcode without losing much speed over a purely hard- wired implementation.
CIS PHILOSOPHY Build rich instruction sets: By using a micro programmed design, designers could build more functionality into each instruction. This design cut down on the total number of instructions required to implement a program, so it made more efficient use of a slow main memory. Made the job for assembly-language programmer simpler The enhancements included string manipulation operations, special looping constructs, and special addressing modes for indexing through tables in memory.
CIS PHILOSOPHY Build high-level instruction sets : After the programmer-friendly instruction sets were built, designers started to build instruction sets which map directly from high-level languages. Because microprogram instruction sets can be written to match the constructs of high-level languages, the compiler does not have to be as complicated. Allows compilers to emit fewer instructions per line of source
CHARATERICTICS OF CISC DESIGN Instruction sets : CISC instruction sets have some common characteristics: A 2-operand format, where instructions have a source and a destination. Register to register, register to memory, and memory to register commands. Multiple addressing modes for memory, including specialized modes for indexing through arrays Variable length instructions where the length often varies according to the addressing mode Instructions which require multiple clock cycles to execute.
CHARATERICTICS OF CISC DESIGN Hardware architectures: CISC hardware architectures have several characteristics in common: Complex instruction-decoding logic, driven by the need for a single instruction to support multiple addressing modes. A small number of general purpose registers. This is the direct result of having instructions which can operate directly on memory and the limited amount of chip space not dedicated to instruction decoding, execution, and microcode storage. Several special purpose registers. Many CISC designs set aside special registers for the stack pointer, interrupt handling, and so on. This can simplify the hardware design. A "Condition code" register which is set as a side-effect of most instructions.
CHARATERICTICS OF CISC DESIGN CISC and the Classic Performance Equation The equation for determining performance is the sum for all instructions of (the number of cycles per instruction * instruction cycle time) = execution time. This allows you to speed up a processor in 3 different ways : use fewer instructions for a given task, reduce the number of cycles for some instructions, or speed up the clock (decrease the cycle time.) CISC tries to reduce the number of instructions for a program
THE ADVANTAGES OF CISC Microprogramming is as easy as assembly language to implement, and much less expensive than hardwiring a control unit. The ease of microcoding new instructions allowed designers to make CISC machines upwardly compatible: a new computer could run the same programs as earlier computers because the new computer would contain a superset of the instructions of the earlier computers. As each instruction became more capable, fewer instructions could be used to implement a given task. This made more efficient use of the relatively slow main memory. Because microprogram instruction sets can be written to match the constructs of high-level languages, the compiler does not have to be as complicated.
THE DISADVANTAGES OF CISC As many instructions as possible could be stored in memory with the least possible wasted space, individual instructions could be of almost any length this means that different instructions will take different amounts of clock time to execute, slowing down the overall performance of the machine. Many specialized instructions aren't used frequently enough to justify their existence --- approximately 20% of the available instructions are used in a typical program. CISC instructions typically set the condition codes as a side effect of the instruction. Setting the condition codes take time, and programmers have to remember to examine the condition code bits before a subsequent instruction changes them.