Structure of Computer Systems Course 12 RISC architecture CISC v.s. RISC CISC – Complex Instruction Set Computer RISC - Reduced Instruction Set Computer Historical perspective: at first computers had a limited instruction set because of technological limitations (number of switching elements was limited) as integration technology improved: • more instructions were included in the set of a computer • more complex operations implemented in instructions => more complex instructions consequences: • CPU became more and more complex • CPU became slower (relative to the clock frequency) • higher CPI and limited clock frequency CISC Reasons for complex instruction set computers more powerful instructions • e.g. floating point arithmetic instructions assembly language instructions closer to high level language instructions • e.g. loops, complex conditional jumps more complex addressing modes, as support for complex data structures • addressing: indexed, based, mixed, scaled, etc. Benefits: easier programming in assembly language less instructions needed to write an application easier compilation of high level languages support for complex data structures CISC Statistical measurements (during the ’70s) Surprising results which instruction types are more often used in different types of applications ? does the programmers use the available complex instructions? programmers prefer simple instructions complex instructions are used just occasionally, for some very specific operations (e.g. sine, arc tang. log, exponential, etc.) most of the time the processor is executing simple instructions from a limited set Conclusion: the speed limitation caused by a complex instruction set is not justified let’s do things simpler and faster RISC RISC = Reduced Instruction Set Computer Principle: sacrifice everything for speed reduce the number of instructions – make CPU simpler get rid of complex instructions, which may slow down the CPU use simple addressing modes – less time spent to compute the address of an operand limit the number of accesses to the memory if a given operation cannot be executed in one clock period than do not implement it in an instruction extensive use of pipeline architecture – in order to reach CPI=1 (one instruction per clock period) RISC - Main features limited number of instructions in the instruction set: no complex instructions every instruction executes only one operation instructions have fixed format 30-40 instructions v.s 100-200 in case of CISC fixed length few combinations of fields inside the instruction code instructions executed in one clock period (except Load and Store instructions) through intensive use of pipeline architecture every instruction have the same number of pipeline stages RISC - Main features Increased set of general purpose registers e.g. 32-64 registers instructions operating with registers are executed in the shortest time compensate the lack of instructions operating with the memory Use of multiple register sets fast and easy context switch use of register set windows RISC - Main features Only two instructions operate (have access) to the memory locations: Load – read data from the memory into a register Store – write the data from a register into the memory Load and Store instructions require two accesses to the memory: • one to read the instruction code • one to read or write the data Load and store instructions are the only instructions which are executed in two clock periods all the other instructions from the set are operating with registers or a register and a constant RISC - Main features Hard to write applications in assembly language A program on a RISC is more optimized than the same program written on a CISC lack of more powerful instructions and addressing modes only those operations are used which are strictly necessary More effort for programming, less time in execution it is worth to have a greater time spent on programming if at the end the program will be executed many times in a shorter time !? RISC - Main features The CPU implemented in pure hardware (no microprogramming) instructions are decoded and executed using hardware components higher speed less execution steps Compilers are more difficult to implement RISC v.s. CISC Parameter RISC CISC Instruction types Simple Complex Number of instructions Reduced (30-40) Extended (100-200) Duration of an instruction One cycle More cycles (4-120) Instruction format Fixed Variable Instruction execution In parallel (pipeline) Sequential Addressing modes Simple Complex Instructions accessing the memory Two: Load and Store Almost all from the set Register set multiple unique Complexity In compiler In CPU (micro-program) Performance of RISC v.s. CISC CISC: less 4-100 long execution time = no_instructions*CPI*Tclk RISC: more 1 short Hard to tell which is the best A combination of CISC and RISC may be the solution: RISC inside, CISC outside – see Pentium processors complex instructions translated into simple (RISC) instructions Examples of RISC architectures Academic implementations: First commercial implementations RISC I si II – Berkley University (prof. Patterson, 1980) MIPS – Univ. Stanford (prof. Hennessy, 1982) IBM 801 – compania IBM (1975) ALPHA – compania DEC SPARC – Sun Microsystems (1987) General purpose processors: PowerPC – IBM si Motorola ARM architecture Applications of RISC architectures Powerful Workstations High-end graphical stations used for control applications and peripheral devices Digital signal processors used for simulation, animation, etc. Microcontrollers used for engineering purposes (ex. Sun station) used for signal processing Mobile devices iPAD, tablet, support for Android systems RISC architecture examples MIPS MIPS – Microprocessor without Interlocking Pipe Stages or Million Instruction per Second processor: developed by Prof. Hennessy at Stanford University (1982) a classical pipeline architecture used as reference for teaching basic concepts about computers features: • 32 internal registers • reduced instruction set • instructions with fixed length (4 bytes); types: R,J, I • 3 operands instructions (source, destination, target) • (see a previous course for details) RISC architecture examples Microcontrollers Microcontroller all components of a micro-computer system in a single integrated circuit: • • • • • • • • CPU program memory data memory parallel I/O ports serial ports timers, counters converters: ADC, DAC, PWM watchdog used for control applications: • monitoring • feedback control RISC architecture examples Microcontrollers Example PIC16Fxx CPU – simple, RISC architecture Instruction format – fixed, 14 bits/instruction only 35 instructions data format: 8 bits Internal memory – inside the chip - Harvard architecture – data separated from instructions • data memory – 368 bytes SRAM, organized on banks • instruction memory – 8kinstructions Data memory • 256 bytes EEPROM (non-volatile memory) 0 Interfaces: • serial UART and SPI • Convertors: 10 bits ADC with 8 channel multiplexer • 3 timers • parallel ports ICD – In Circuit debug functionality Package: 28,40 or 44 pins 1Fh Ports area Ports area General registers General registers User data area Bank 0 User data area Bank 1 2, 3 RISC architecture examples PowerPC PowerPC = Performance Optimization With Enhanced RISC – Performance Computing designed as a competitor for the Intel X86 processor family developed by Apple, IBM and Motorola (1991) as an open architecture extension of the IBM’s Power architecture RISC and superscalar architecture initially intended for PCs, now used for embedded and high performance computers 32 and 64 bit processors many versions: PowerPC 601, 602, 604, 620,740, 74000 computers made with PowerPC: • Macintosh, Apple • RS6000, (RISC System 6000), IBM • embedded computers