Complex Instruction Set Computer (CISC)

Slides:



Advertisements
Similar presentations
Prozessor-Architekturen. Aktuelle Architekturen IA ,80x86,Pentium I/II/III/4, Celeron, –addon MMX/SSE/..AMD-K2,Athlon (XP) –IA32-EMT64 Athlon64,
Advertisements

Lesson 8 CPUs Used in Personal Computers.
Micro controllers introduction. Areas of use You are used to chips like the Pentium and the Athlon, but in terms of installed machines these are a small.
RAM (cont.) 220 bytes of RAM (1 Mega-byte) 20 bits of address Address
More Intel machine language and one more look at other architectures.
Memory Management Unit
Slide 1Michael Flynn EE382 Winter/99 EE382 Processor Design Stanford University Winter Quarter Instructor: Michael Flynn Teaching Assistant:
Computer Organization and Assembly Languages Yung-Yu Chuang
Computers Organization & Assembly Language Chapter 1 THE 80x86 MICROPROCESSOR.
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.
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Pentium 4 and IA-32 ISA ELEC 5200/6200 Computer Architecture and Design, Fall 2006 Lectured by Dr. V. Agrawal Lectured by Dr. V. Agrawal Kyungseok Kim.
Processor history / DX/SX SX/DX Pentium 1997 Pentium MMX
IA-32 Processor Architecture
Vacuum tubes Transistor 1948 ICs 1960s Microprocessors 1970s.
Chapter 12 Three System Examples The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander.
Vacuum tubes Transistor 1948 –Smaller, Cheaper, Less heat dissipation, Made from Silicon (Sand) –Invented at Bell Labs –Shockley, Brittain, Bardeen ICs.
RISC. Rational Behind RISC Few of the complex instructions were used –data movement – 45% –ALU ops – 25% –branching – 30% Cheaper memory VLSI technology.
CS2422 Assembly Language & System Programming September 22, 2005.
Pentium Addressing Modes
The AMD and Intel Architectures COMP Jamie Curtis.
Computer Organization and Assembly language
The Pentium: A CISC Architecture Shalvin Maharaj CS Umesh Maharaj:
Cisc Complex Instruction Set Computing By Christopher Wong 1.
How a Computer Processes Data Hardware. Major Components Involved: Central Processing Unit Types of Memory Motherboards Auxiliary Storage Devices.
Processor Organization and Architecture
An Introduction to IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008.
Computer Architecture CST 250 INTEL PENTIUM PROCESSOR Prepared by:Omar Hirzallah.
Assembly Language for Intel-Based Computers, 4 th Edition Chapter 2: IA-32 Processor Architecture (c) Pearson Education, All rights reserved. You.
Semiconductor Memory 1970 Fairchild Size of a single core –i.e. 1 bit of magnetic core storage Holds 256 bits Non-destructive read Much faster than core.
Basic Microcomputer Design. Inside the CPU Registers – storage locations Control Unit (CU) – coordinates the sequencing of steps involved in executing.
Simultaneous Multithreading: Maximizing On-Chip Parallelism Presented By: Daron Shrode Shey Liggett.
X86 Assembly Language Same Assembly Language for 8086,80286,80386,80486,Pentium I II and III Newer Processors add a few instructions but include all instructions.
The Pentium Processor.
The Pentium Processor Chapter 3 S. Dandamudi To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer,
The Pentium Processor Chapter 3 S. Dandamudi.
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
History of Microprocessor MPIntroductionData BusAddress Bus
RISC By Ryan Aldana. Agenda Brief Overview of RISC and CISC Features of RISC Instruction Pipeline Register Windowing and renaming Data Conflicts Branch.
Ramesh.B ELEC 6200 Computer Architecture & Design Fall /29/20081Computer Architecture & Design.
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
 Introduction to SUN SPARC  What is CISC?  History: CISC  Advantages of CISC  Disadvantages of CISC  RISC vs CISC  Features of SUN SPARC  Architecture.
THE BRIEF HISTORY OF 8085 MICROPROCESSOR & THEIR APPLICATIONS
Architecture of Microprocessor
RISC / CISC Architecture by Derek Ng. Overview CISC Architecture RISC Architecture  Pipelining RISC vs CISC.
The Processor & its components. The CPU The brain. Performs all major calculations. Controls and manages the operations of other components of the computer.
CISC. What is it?  CISC - Complex Instruction Set Computer  CISC is a design philosophy that:  1) uses microcode instruction sets  2) uses larger.
1 x86 Programming Model Microprocessor Computer Architectures Lab Components of any Computer System Control – logic that controls fetching/execution of.
Multi-Core CPUs Matt Kuehn. Roadmap ► Intel vs AMD ► Early multi-core processors ► Threads vs Physical Cores ► Multithreading and Multi-core processing.
EEL 4709C Prof. Watson Herman Group 4 Ali Alshamma, Derek Montgomery, David Ortiz 11/11/2008.
Chapter Overview General Concepts IA-32 Processor Architecture
William Stallings Computer Organization and Architecture 6th Edition
Lesson 8 CPUs Used in Personal Computers.
Immediate Addressing Mode
Visit for more Learning Resources
An example of multiplying two numbers A = A * B;
CISC (Complex Instruction Set Computer)
INTRODUCTION TO MICROPROCESSORS
Basic Computer Organization
Intel Microprocessor.
The Pentium: A CISC Architecture
Central Processing Unit
CISC AND RISC SYSTEM Based on instruction set, we broadly classify Computer/microprocessor/microcontroller into CISC and RISC. CISC SYSTEM: COMPLEX INSTRUCTION.
Overheads for Computers as Components 2nd ed.
Introduction to Microprocessor Programming
Evolution of ISA’s ISA’s have changed over computer “generations”.
Lesson 8 CPUs Used in Personal Computers.
Lecture 3 (Microprocessor)
Presentation transcript:

Complex Instruction Set Computer (CISC) Manish Kulkarni Department of Electrical and Computer Engineering Auburn University, Auburn, AL 36849 mmk0002@auburn.edu 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation Overview What is CISC and Why to learn? History Architecture Typical x86 design Characteristics & Addressing modes CISC Vs RISC Example Programs The Performance Equation FAQs Recent Developments & Future Scope Resources Questions 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation What is CISC? Definition: Pronounced "sisk" and standing for Complex Instruction Set Computer, is a Microprocessor Architecture that aims at achieving complex operations with single instructions and favors the richness of the instruction set (typically as many as 200 unique instructions) over the speed with which individual instructions are executed. Why should I know about CISC? Today’s computers still use processors which are based on CISC designs It has been a prominent architecture since 1978 Most Emerging Processor designs combine features of CISC and RISC to create better designs. 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation History Generation First introduced Prominent Consumer CPU brands linear / physical address space Notable (new) features 1 (IA-16) 1978 Intel 8086, Intel 8088 16-bit / 20-bit (segmented) first x86 microprocessors 2 1982 Intel 80186, Intel 80188, NEC V20 see above hardware for fast address calculations, fast mul/div etc Intel 80286 16-bit (30-bit virtual) / 24-bit (segmented) MMU, for protected mode and a larger address space 3 (IA-32) 1985 Intel386, AMD Am386 32-bit (46-bit virtual) / 32-bit 32-bit instruction set, MMU with paging 4 1989 Intel486 RISC-like pipelining, integrated FPU, on-chip cache 5 1993 Pentium, Pentium MMX superscalar, 64-bit databus, faster FPU, MMX 5/6 1996 Cyrix 6x86, Cyrix MII register renaming, speculative execution 6 1995 Pentium Pro, AMD K5 see above / 36-bit physical (PAE) μ-op translation, PAE (not K5), integrated L2 cache (not K5) Continued…. 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation Continued…. Generation First introduced Prominent Consumer CPU brands linear / physical address space Notable (new) features 6 1997 AMD K6/-2/3, Pentium II/III see above L3-cache support, 3D Now, SSE 7 1999 Athlon, Athlon XP superscalar FPU, wide design (up to three x86 instr./clock) 2000 Pentium 4 deeply pipelined, high frequency, SSE2, hyper-threading 6/7-M 2003 Pentium M optimized for low power 8 (x86-64) Athlon 64 64-bit / 40-bit physical in first impl. x86-64 instruction set, on-die memory controller 8 2004 Prescott very deeply pipelined, very high frequency, SSE3 9 2006 Intel Core, Intel Core 2 see above (some are 32-bit only) low power, multi-core, lower clock frequency 10 2007-2008 AMD Phenom monolithic quad-core, 128 bit FPUs, SSE4a Hyper Transport 3, native memory controller, on-die L3 cache 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation A typical x86 Architecture Intel 8086 Architecture, the 1st member of x86 family 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation Characteristics CISC are Mostly Von Neumann Architecture (There are few exceptions) Same bus for program memory, data memory, I/O, registers, etc Generally Micro-coded ,Variable length instructions Segmentation is possible with Segment Register s like DS, ES and an offset which can be common to all segments. Many powerful instructions are supported, making the assembly language programmer’s job much easier. Physical Memory Extension Possible Addressing modes Register Addressing Mode Memory Addressing Modes Displacement Only Addressing Mode Register Indirect Addressing Modes Indexed Addressing Modes Based Indexed Addressing Modes Based Indexed Plus Displacement Addressing 4/28/2008 Computer Architecture & Design (6200) Class Presentation

CISC Vs RISC Example Program Main Memory General Purpose Registers ALU 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation Consider following task of Multiplication 15 20 Operands: M[2:3] = operand 1 (15) M[5:2] = operand 2(20) Task : Multiplication Result: M[2:3] <= result 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation The CISC Approach Instruction : MULT 2:3, 5:2 Operations: Loads the two operands into separate registers Multiplies the operands in the execution unit Then stores the product in the some temporary register Stores value back to memory location 2:3 MULT is what is known as a "complex instruction." Operates directly on the computer's memory banks Does not require the programmer to explicitly call any loading or storing functions. closely resembles a command in a higher level language. e.g. a ‘C’ statement "a = a * b." 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation The RISC Approach Instructions : LW A, 2:3 LW B, 5:2 MULT A, B SW 2:3, A Operations: Load operand1 into register A Load operand2 into register B Multiply the operands in the execution unit and store result in A Store value of A back to memory location 2:3 These set of Instructions is known as a “Reduced Instructions." Cannot Operate directly on the computer's memory banks Requires the programmer to explicitly call any loading or storing functions. RISC processors only use simple instructions that can be executed within one clock cycle 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation CISC RISC Primary goal is to complete a task in as few lines of assembly as possible Emphasis on hardware Includes multi-clock complex instructions Memory-to-memory: "LOAD" and "STORE" incorporated in instructions Small code sizes High cycles per second Variable length Instructions Primary goal is to speedup individual instruction Emphasis on software Single-clock, reduced instruction only Register to register: "LOAD" and "STORE" are independent instructions Large code sizes Low cycles per second Equal length instructions which make pipelining possible 4/28/2008 Computer Architecture & Design (6200) Class Presentation

The Performance Equation The following equation is commonly used for expressing a computer's performance ability: The CISC approach minimizes the number of instructions per program (2) sacrificing the number of cycles per instruction. (1) RISC does the opposite reduces the cycles per instruction (1) sacrificing number of instructions per program (2) 1 2 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation FAQs Which one is faster? Well, it is commonly accepted that RISC ISA's should make computers faster. The main reason why is because RISC computers figure out more words in a shorter amount of time due to pipelining. So why isn't my computer a RISC? CISC ISA's were implemented in the first personal computers With more people buying computers, CISC isa's became more prominent Software (especially OS) was developed and "translated" so that personal computers speaking x86 would be able to interact with its users Because there was so much software written for computers "speaking" x86, people continued to buy those computers. If we tried to switch to another ISA, we would not have all of the software choices we have now. 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation So why would someone want to develop another ISA? x86 (and CISC) make poor use of the faster hardware we have now. Another problem with x86 is that people have been trying to make it faster for a long time, at least 20 years, and after a while you have found most of the ways to speed the computer up significantly Why don't we just switch to RISC? Although it is not used on your desktop PC, RISC ISA's are implemented in many mainframe computers. Programmers have been trying to make RISC faster for a long time, and they have found many of the areas in which it is able to be sped up significantly. 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation Where are we running into problems speeding up RISC and CISC? We are running into problems with speeding up the computer in 2 areas Branching Decisions and predictions consume good amount of processing time Access to memory to fetch instruction and data So What we are going to do? 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Recent Developments & Future Scope The terms RISC and CISC have become less meaningful with the continued evolution of both CISC and RISC designs and implementations. Modern x86 processors also decode and split more complex instructions into a series of smaller internal "micro-operations" which can thereby be executed in a pipelined (parallel) fashion, thus achieving high performance on a much larger subset of instructions. Attempts have been made to combine features of both RISC and CISC to develop a new approach Intel has teamed up with Hewlett-Packard to design a new type of ISA. They are calling it IA-64 (Intel Architecture 64) 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation IA-64 What is IA-64? IA-64 is a new instruction set architecture. IA-64 seeks to address: branch delays and memory latency. What main principles is IA-64 designed around? IA-64 seeks to exploit instruction level parallelism to the highest degree. Intel and HP have called their method of exploiting this parallelism in IA-64 EPIC (Explicitly Parallel Instruction Computing). EPIC simulates parallelism by having the compiler find what instructions can be executed in parallel and "explicitly" package them for the CPU. How does IA-64 help with branch delays? IA-64 takes a unique approach of prediction to reduce the consequences of branch delays. The compiler can append a predicate to any instruction it chooses. The compiler will append predicates to instructions that depend on the outcome of a branch in order to help reduce branch penalties. 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation How does IA-64 deal with memory latency issues? Memory latency occurs because CPU processing speed is significantly faster than the speed of fetching data from memory. IA-64 suggests a new way to eliminate some memory latency problems, speculative loading. IA-64 Realities: "A study in ISCA '95 by S. Malhlke, et. al. demonstrated that predication removed over 50% of the branches and 40% of the mis-predicted branches from several popular benchmark programs." ( http://www.hp.com/esy/technology/ia_64/products/isapress.html ) IA-64 lack compatibility with Intel x86 and HP PA-RISC architectures, so this additional compatibility logic will take lot of die space. Presently, the compilers are in experiment phase and IA-64 has no OS support. 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation Resources http://www.pctechguide.com/glossary/WordFind.php?wordInput=CISC http://www.cs.umd.edu/class/fall2001/cmsc411/projects/IA64/ http://cse.stanford.edu/class/sophomore-college/projects-00/risc/risccisc/index.html http://en.wikipedia.org/wiki/Complex_instruction_set_computer http://en.wikipedia.org/wiki/X86 http://arstechnica.com/cpu/4q99/risc-cisc/rvc-6.html 4/28/2008 Computer Architecture & Design (6200) Class Presentation

Computer Architecture & Design (6200) Class Presentation Questions ?? 4/28/2008 Computer Architecture & Design (6200) Class Presentation