CSC 631: High-Performance Computer Architecture
|
|
- Arthur Chapman
- 5 years ago
- Views:
Transcription
1 CSC 631: High-Performance Computer Architecture Spring 2017 Lecture 3: CISC versus RISC Instruction Set Architecture (ISA) The contract between software and hardware Typically described by giving all the programmer-visible state (registers + memory) plus the semantics of the instructions that operate on that state IBM 360 was first line of machines to separate ISA from implementation (aka. microarchitecture) Many implementations possible for a given ISA - E.g., the Soviets build code-compatible clones of the IBM360, as did Amdahl after he left IBM. - E.g.2., today can buy AMD or Intel processors that run x86 ISA. - E.g.3: many cellphones use ARM ISA with implementations from many different companies including Apple, Qualcomm, Samsung, etc. We use Berkeley RISC-V 2.0 as standard ISA in this course - 2
2 Control versus Datapath Processor designs can be split between datapath, where numbers are stored and arithmetic operations computed, and control, which sequences operations on datapath Instruction Datapath Busy? PC Control Inst. Reg. Control Lines Registers Address Main Memory ALU Data Biggest challenge for early Condition? computer designers was getting control circuitry correct Maurice Wilkes invented the idea of microprogramming to design the control unit of a processor for EDSAC-II, Foreshadowed by Babbage s Barrel and mechanisms in earlier programmable calculators 3 Microcoded CPU Busy? Opcode Condition µpc Decoder Next State Microcode ROM (holds fixed µcode instructions) Control Lines Datapath Address Data Main Memory (holds user program written in macroinstructions, e.g., x86, RISC-V) 4
3 Technology Influence When microcode appeared in 50s, different technologies for: - Logic: Vacuum Tubes - Main Memory: Magnetic cores - Read-Only Memory: Diode matrix, punched metal cards, Logic very expensive compared to ROM or RAM ROM cheaper than RAM ROM much faster than RAM 5 Microcoded CPU Busy? Opcode Condition µpc Decoder Next State Microcode ROM (holds fixed µcode instructions) Control Lines Datapath Address Data Main Memory (holds user program written in macroinstructions, e.g., x86, RISC-V) 6
4 Single Bus Datapath for Microcoded RISC-V Opcode InstLd Instruction Reg. ImmSel Immediate RegSel rs1 rs2 rd 32 (PC) RegW Register RAM PC Address Registers Data Out In BLd B A ALd Condition? ALUOp ALU MALd Mem. Address ImmEn RegEn ALUEn MemEn MemW Busy? Main Memory Microinstructions written as register transfers: MA:=PC means RegSel=PC; RegW=0; RegEn=1; MALd=1 B:=Reg[rs2] means RegSel=rs2; RegW=0; RegEn=1; BLd=1 Reg[rd]:=A+B means ALUop=Add; ALUEn=1; RegSel=rd; RegW=1 7 RISC-V Instruction Execution Phases Instruction Fetch Instruction Decode Register Fetch ALU Operations Optional Memory Operations Optional Register Writeback Calculate Next Instruction Address 8
5 Microcode Sketches (1) Instruction Fetch: ALU: ALUI: MA,A:=PC PC:=A+4 wait for memory IR:=Mem dispatch on opcode A:=Reg[rs1] B:=Reg[rs2] Reg[rd]:=ALUOp(A,B) goto instruction fetch A:=Reg[rs1] B:=ImmI //Sign-extend 12b immediate Reg[rd]:=ALUOp(A,B) goto instruction fetch 9 LW: JAL: Branch: Microcode Sketches (2) A:=Reg[rs1] B:=ImmI //Sign-extend 12b immediate MA:=A+B wait for memory Reg[rd]:=Mem goto instruction fetch Reg[rd]:=A // Store return address A:=A-4 // Recover original PC B:=ImmJ // Jump-style immediate PC:=A+B goto instruction fetch A:=Reg[rs1] B:=Reg[rs2] if (!ALUOp(A,B)) goto instruction fetch //Not taken A:=PC //Microcode fall through if branch taken A:=A-4 B:=ImmB// Branch-style immediate PC:=A+B goto instruction fetch 10
6 Pure ROM Implementation Opcode Cond? Busy? µpc Address ROM Data Next µpc Control Signals How many address bits? µaddress = µpc + opcode How many data bits? data = µpc + control signals = µpc + 18 Total ROM size = 2 µaddress x data 11 Pure ROM Contents Address Data µpc Opcode Cond? Busy? Control Lines Next µpc fetch0 X X X MA,A:=PC fetch1 fetch1 X X 1 fetch1 fetch1 X X 0 IR:=Mem fetch2 fetch2 ALU X X PC:=A+4 ALU0 fetch2 ALUI X X PC:=A+4 ALUI0 fetch2 LW X X PC:=A+4 LW0. ALU0 X X X A:=Reg[rs1] ALU1 ALU1 X X X B:=Reg[rs2] ALU2 ALU2 X X X Reg[rd]:=ALUOp(A,B) fetch0 12
7 Single-Bus Microcode RISC-V ROM Size Instruction fetch sequence 3 common steps ~12 instruction groups Each group takes ~5 steps (1 for dispatch) Total steps 3+12*5 = 63, needs 6 bits for µpc Opcode is 5 bits, ~18 control signals Total size = 2 (6+5+2) x(6+18)=2 13 x24 = ~25KB! 13 Reducing Control Store Size Reduce ROM height (#address bits) - Use external logic to combine input signals - Reduce #states by grouping opcodes Reduce ROM width (#data bits) - Restrict µpc encoding (next,dispatch,wait on memory, ) - Encode control signals (vertical µcoding, nanocoding) 14
8 Single-Bus RISC-V Microcode Engine Opcode fetch0 Decode µpc +1 Cond? Busy? µpc Jump Logic Address ROM Data µpc jump Control Signals µpc jump = next spin fetch dispatch ftrue ffalse 15 µpc Jump Types next increments µpc spin waits for memory fetch jumps to start of instruction fetch dispatch jumps to start of decoded opcode group fture/ffalse jumps to fetch if Cond? true/false 16
9 Encoded ROM Contents Address Data µpc Control Lines Next µpc fetch0 MA,A:=PC next fetch1 IR:=Mem spin fetch2 PC:=A+4 dispatch ALU0 A:=Reg[rs1] next ALU1 B:=Reg[rs2] next ALU2 Reg[rd]:=ALUOp(A,B) fetch Branch0 A:=Reg[rs1] next Branch1 B:=Reg[rs2] next Branch2 A:=PC ffalse Branch3 A:=A-4 next Branch4 B:=ImmB next Branch5 PC:=A+B fetch 17 Implementing Complex Instructions Memory-memory add: M[rd] = M[rs1] + M[rs2] Address Data µpc Control Lines Next µpc MMA0 MA:=Reg[rs1] next MMA1 A:=Mem spin MMA2 MA:=Reg[rs2] next MMA3 B:=Mem spin MMA4 MA:=Reg[rd] next MMA5 Mem:=ALUOp(A,B) spin MMA6 fetch Complex instructions usually do not require datapath modifications, only extra space for control program Very difficult to implement these instructions using a hardwired controller without substantial datapath modifications 18
10 Horizontal vs Vertical µcode Bits per µinstruction # µinstructions Horizontal µcode has wider µinstructions - Multiple parallel operations per µinstruction - Fewer microcode steps per macroinstruction - Sparser encoding Þ more bits Vertical µcode has narrower µinstructions - Typically a single datapath operation per µinstruction - separate µinstruction for branches - More microcode steps per macroinstruction - More compact Þ less bits Nanocoding - Tries to combine best of horizontal and vertical µcode 19 Nanocoding Exploits recurring control signal patterns in µcode, e.g., ALU0 A Reg[rs1]... ALUI0 A Reg[rs1]... nanoaddress mpc (state) µaddress µcode ROM nanoinstruction ROM data µcode next-state Motorola had 17-bit µcode containing either 10- bit µjump or 9-bit nanoinstruction pointer - Nanoinstructions were 68 bits wide, decoded to give 196 control signals 20
11 IBM 360: Initial Implementations Model Model 70 Storage 8K - 64 KB 256K KB Datapath 8-bit 64-bit Circuit Delay 30 nsec/level 5 nsec/level Local Store Main Store Transistor Registers Control Store Read only 1msec Conventional circuits IBM 360 instruction set architecture (ISA) completely hid the underlying technological differences between various models. Milestone: The first true ISA designed as portable hardwaresoftware interface! With minor modifications it still survives today! 21 Microprogramming in IBM 360 M30 M40 M50 M65 Datapath width (bits) µinst width (bits) µcode size (K µinsts) µstore technology CCROS TCROS BCROS BCROS µstore cycle (ns) memory cycle (ns) Rental fee ($K/month) Only the fastest models (75 and 95) were hardwired 22
12 Microcode Emulation IBM initially miscalculated the importance of software compatibility with earlier models when introducing the 360 series Honeywell stole some IBM 1401 customers by offering translation software ( Liberator ) for Honeywell H200 series machine IBM retaliated with optional additional microcode for 360 series that could emulate IBM 1401 ISA, later extended for IBM 7000 series - one popular program on 1401 was a 650 simulator, so some customers ran many 650 programs on emulated 1401s - (650 simulated on 1401 emulated on 360) 23 Microprogramming thrived in 60s and 70s Significantly faster ROMs than DRAMs were available For complex instruction sets, datapath and controller were cheaper and simpler New instructions, e.g., floating point, could be supported without datapath modifications Fixing bugs in the controller was easier ISA compatibility across various models could be achieved easily and cheaply Except for the cheapest and fastest machines, all computers were microprogrammed 24
13 Microprogramming: early Eighties Evolution bred more complex micro-machines - Complex instruction sets led to need for subroutine and call stacks in µcode - Need for fixing bugs in control programs was in conflict with read-only nature of µrom - èwritable Control Store (WCS) (B1700, QMachine, Intel i432, ) With the advent of VLSI technology assumptions about ROM & RAM speed became invalid àmore complexity Better compilers made complex instructions less important. Use of numerous micro-architectural innovations, e.g., pipelining, caches and buffers, made multiple-cycle execution of reg-reg instructions unattractive 25 Writable Control Store (WCS) Implement control store in RAM not ROM - MOS SRAM memories now almost as fast as control store (core memories/drams were 2-10x slower) - Bug-free microprograms difficult to write User-WCS provided as option on several minicomputers - Allowed users to change microcode for each processor User-WCS failed - Little or no programming tools support - Difficult to fit software into small space - Microcode control tailored to original ISA, less useful for others - Large WCS part of processor state - expensive context switches - Protection difficult if user can change microcode - Virtual memory required restartable microcode 26
14 Analyzing Microcoded Machines John Cocke and group at IBM - Working on a simple pipelined processor, 801, and advanced compilers inside IBM - Ported experimental PL.8 compiler to IBM 370, and only used simple register-register and load/store instructions similar to Code ran faster than other existing compilers that used all 370 instructions! (up to 6MIPS whereas 2MIPS considered good before) Emer, Clark, at DEC - Measured VAX-11/780 using external hardware - Found it was actually a 0.5MIPS machine, although usually assumed to be a 1MIPS machine - Found 20% of VAX instructions responsible for 60% of microcode, but only account for 0.2% of execution time! VAX Control Store: 16K*147b RAM, Unified Cache: 64K*8b RAM - 4.5x more microstore RAM than cache RAM! 27 Iron Law of Processor Performance Time = Instructions Cycles Time Program Program * Instruction * Cycle Instructions per program depends on source code, compiler technology, and ISA Cycles per instructions (CPI) depends on ISA and µarchitecture Time per cycle depends upon the µarchitecture and base technology 28
15 CPI for Microcoded Machine 7 cycles 5 cycles 10 cycles Inst 1 Inst 2 Inst 3 Time Total clock cycles = = 22 Total instructions = 3 CPI = 22/3 = 7.33 CPI is always an average over a large number of instructions. 29 IC Technology Changes Tradeoffs Logic, RAM, ROM all implemented using MOS transistors Semiconductor RAM ~ same speed as ROM 30
16 Nanocoding Exploits recurring control signal patterns in µcode, e.g., ALU 0... ALUi 0... A Reg[rs1] A Reg[rs1] nanoaddress mpc (state) µaddress µcode ROM nanoinstruction ROM data µcode next-state MC68000 had 17-bit µcode containing either 10-bit µjump or 9-bit nanoinstruction pointer - Nanoinstructions were 68 bits wide, decoded to give 196 control signals 31 From CISC to RISC Use fast RAM to build fast instruction cache of uservisible instructions, not fixed hardware microroutines - Contents of fast instruction memory change to fit what application needs right now Use simple ISA to enable hardwired pipelined implementation - Most compiled code only used a few of the available CISC instructions - Simpler encoding allowed pipelined implementations Further benefit with integration - In early 80s, could finally fit 32-bit datapath + small caches on a single chip - No chip crossings in common case allows faster operation 32
17 Berkeley RISC Chips RISC-I (1982) Contains 44,420 transistors, fabbed in 5 µm NMOS, with a die area of 77 mm 2, ran at 1 MHz. This chip is probably the first VLSI RISC. RISC-II (1983) contains 40,760 transistors, was fabbed in 3 µm NMOS, ran at 3 MHz, and the size is 60 mm 2. Stanford built some too 33 Microprogramming is far from extinct Played a crucial role in micros of the Eighties - DEC uvax, Motorola 68K series, Intel 286/386 Plays an assisting role in most modern micros - e.g., AMD Bulldozer, Intel Ivy Bridge, Intel Atom, IBM PowerPC, - Most instructions executed directly, i.e., with hard-wired control - Infrequently-used and/or complicated instructions invoke microcode Patchable microcode common for post-fabrication bug fixes, e.g. Intel processors load µcode patches at bootup 34
18 Acknowledgements These course notes were developed by: - Krste Asanovic (UCB) - Arvind (MIT) - Joel Emer (Intel/MIT) - James Hoe (CMU) - John Kubiatowicz (UCB) - David Patterson (UCB) 35
CS252 Spring 2017 Graduate Computer Architecture. Lecture 3.5: From CISC to RISC II
CS252 Spring 2017 Graduate Computer Architecture Lecture 3.5: From CISC to RISC II Lisa Wu, Krste Asanovic http://inst.eecs.berkeley.edu/~cs252/sp17 WU UCB CS252 SP17 Technology Progression Memory Technology
CS252 Graduate Computer Architecture Fall 2015 Lecture 3: CISC versus RISC
CS252 Graduate Computer Architecture Fall 2015 Lecture 3: CISC versus RISC Krste Asanovic krste@eecs.berkeley.edu http://inst.eecs.berkeley.edu/~cs252/fa15 Instruc@on Set Architecture (ISA) The contract
CS252 Graduate Computer Architecture Spring 2014 Lecture 3: CISC versus RISC
CS252 Graduate Computer Architecture Spring 2014 Lecture 3: CISC versus RISC Krste Asanovic krste@eecs.berkeley.edu http://inst.eecs.berkeley.edu/~cs252/sp14 Last Time in Lecture 2 First 130 years of CompArch,
John Wawrzynek Electrical Engineering and Computer Sciences University of California at Berkeley
CS 152 Computer Architecture and Engineering Lecture 2 - Simple Machine Implementations John Wawrzynek Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~johnw
CS 152 Computer Architecture and Engineering. Lecture 3 - From CISC to RISC
CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste!
CS 152 Computer Architecture and Engineering. Lecture 2 - Simple Machine Implementations
CS 152 Computer Architecture and Engineering Lecture 2 - Simple Machine Implementations Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste!
CS 152 Computer Architecture and Engineering. Lecture 2 - Simple Machine Implementations
CS 152 Computer Architecture and Engineering Lecture 2 - Simple Machine Implementations Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste!
CS 152 Computer Architecture and Engineering. Lecture 2 - Simple Machine Implementations
CS 152 Computer Architecture and Engineering Lecture 2 - Simple Machine Implementations Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste!
Lecture 3 - Pipelining
CS 152 Computer Architecture and Engineering CS252 Graduate Computer Architecture Lecture 3 - Pipelining Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley
Microprogramming. The DLX ISA
6.823, L4--1 Microprogramming Laboratory for Computer Science M.I.T. http://www.csg.lcs.mit.edu/6.823 The DLX ISA Processor State 32 32-bit GPRs, R0 always contains a 0 32 single precision FPRs, may also
Lecture 2 - Simple Machine Implementations, Microcode
CS 152 Computer Architecture and Engineering Lecture 2 - Simple Machine Implementations, Microcode Dr. George Michelogiannakis EECS, University of California at Berkeley CRD, Lawrence Berkeley National
Lecture 3 - From CISC to RISC
CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC John Wawrzynek Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~johnw
CS 152 Computer Architecture and Engineering. Lecture 3 - From CISC to RISC
CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste!
Lecture 3 - From CISC to RISC
CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Dr. George Michelogiannakis EECS, University of California at Berkeley CRD, Lawrence Berkeley National Laboratory http://inst.eecs.berkeley.edu/~cs152
CS 152 Computer Architecture and Engineering. Lecture 2 - Simple Machine Implementations
CS 152 Computer Architecture and Engineering Lecture 2 - Simple Machine Implementations Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste
ECE 552 / CPS 550 Advanced Computer Architecture I. Lecture 4 Reduced Instruction Set Computers
ECE 552 / CPS 550 Advanced Computer Architecture I Lecture 4 Reduced Instruction Set Computers Benjamin Lee Electrical and Computer Engineering Duke University www.duke.edu/~bcl15 www.duke.edu/~bcl15/class/class_ece252fall11.html
CS 152 Computer Architecture and Engineering. Lecture 3 - From CISC to RISC
CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste
ECE 552 / CPS 550 Advanced Computer Architecture I. Lecture 2 CISC and Microcoding
ECE 552 / CPS 550 Advanced Computer Architecture I Lecture 2 CISC and Microcoding Benjamin Lee Electrical and Computer Engineering Duke University www.duke.edu/~bcl15 www.duke.edu/~bcl15/class/class_ece252fall12.html
C 1. Last Time. CSE 490/590 Computer Architecture. ISAs and MIPS. Instruction Set Architecture (ISA) ISA to Microarchitecture Mapping
CSE 49/59 Computer Architecture ISAs and MIPS Last Time Computer Architecture >> ISAs and RTL Comp. Arch. shaped by technology and applications Computer Architecture brings a quantitative approach to the
ECE 552 / CPS 550 Advanced Computer Architecture I. Lecture 3 Early Microarchitectures
ECE 552 / CPS 550 Advanced Computer Architecture I Lecture 3 Early Microarchitectures Benjamin Lee Electrical and Computer Engineering Duke University www.duke.edu/~bcl15 www.duke.edu/~bcl15/class/class_ece252fall12.html
Lecture 4 - Pipelining
CS 152 Computer Architecture and Engineering Lecture 4 - Pipelining John Wawrzynek Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~johnw
CS 152 Computer Architecture and Engineering. Lecture 6 - Memory
CS 152 Computer Architecture and Engineering Lecture 6 - Memory Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste! http://inst.eecs.berkeley.edu/~cs152!
CS 152 Computer Architecture and Engineering. Lecture 3 - From CISC to RISC. Last Time in Lecture 2
CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste!
ECE 4750 Computer Architecture Topic 2: From CISC to RISC
ECE 4750 Computer Architecture Topic 2: From CISC to RISC Christopher Batten School of Electrical and Computer Engineering Cornell University http://www.csl.cornell.edu/courses/ece4750 slide revision:
EECE 417 Computer Systems Architecture
EECE 417 Computer Systems Architecture Department of Electrical and Computer Engineering Howard University Charles Kim Spring 2007 1 Computer Organization and Design (3 rd Ed) -The Hardware/Software Interface
Virtual Machines and Dynamic Translation: Implementing ISAs in Software
Virtual Machines and Dynamic Translation: Implementing ISAs in Software Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology Software Applications How is a software application
CS 152 Computer Architecture and Engineering. Lecture 7 - Memory Hierarchy-II
CS 152 Computer Architecture and Engineering Lecture 7 - Memory Hierarchy-II Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste
CISC Attributes. E.g. Pentium is considered a modern CISC processor
What is CISC? CISC means Complex Instruction Set Computer chips that are easy to program and which make efficient use of memory. Since the earliest machines were programmed in assembly language and memory
CS 152 Computer Architecture and Engineering. Lecture 7 - Memory Hierarchy-II
CS 152 Computer Architecture and Engineering Lecture 7 - Memory Hierarchy-II Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste!
Reduced Instruction Set Computers
Reduced Instruction Set Computers The acronym RISC stands for Reduced Instruction Set Computer. RISC represents a design philosophy for the ISA (Instruction Set Architecture) and the CPU microarchitecture
Instruction Set Architectures. Part 1
Instruction Set Architectures Part 1 Application Compiler Instr. Set Proc. Operating System I/O system Instruction Set Architecture Digital Design Circuit Design 1/9/02 Some ancient history Earliest (1940
Computer Performance. Relative Performance. Ways to measure Performance. Computer Architecture ELEC /1/17. Dr. Hayden Kwok-Hay So
Computer Architecture ELEC344 Computer Performance How do you measure performance of a computer? 2 nd Semester, 208-9 Dr. Hayden Kwok-Hay So How do you make a computer fast? Department of Electrical and
CSC 631: High-Performance Computer Architecture
CSC 631: High-Performance Computer Architecture Spring 2017 Lecture 4: Pipelining Last Time in Lecture 3 icrocoding, an effective technique to manage control unit complexity, invented in era when logic
CS252 Spring 2017 Graduate Computer Architecture. Lecture 18: Virtual Machines
CS252 Spring 2017 Graduate Computer Architecture Lecture 18: Virtual Machines Lisa Wu, Krste Asanovic http://inst.eecs.berkeley.edu/~cs252/sp17 WU UCB CS252 SP17 Midterm Topics ISA -- e.g. RISC vs. CISC
C 1. Last time. CSE 490/590 Computer Architecture. Complex Pipelining I. Complex Pipelining: Motivation. Floating-Point Unit (FPU) Floating-Point ISA
CSE 490/590 Computer Architecture Complex Pipelining I Steve Ko Computer Sciences and Engineering University at Buffalo Last time Virtual address caches Virtually-indexed, physically-tagged cache design
Micro-Operations. execution of a sequence of steps, i.e., cycles
Micro-Operations Instruction execution execution of a sequence of steps, i.e., cycles Fetch, Indirect, Execute & Interrupt cycles Cycle - a sequence of micro-operations Micro-operations data transfer between
Lecture 4: RISC Computers
Lecture 4: RISC Computers Introduction Program execution features RISC characteristics RISC vs. CICS Zebo Peng, IDA, LiTH 1 Introduction Reduced Instruction Set Computer (RISC) represents an important
Evolution of ISAs. Instruction set architectures have changed over computer generations with changes in the
Evolution of ISAs Instruction set architectures have changed over computer generations with changes in the cost of the hardware density of the hardware design philosophy potential performance gains One
Lecture 4: RISC Computers
Lecture 4: RISC Computers Introduction Program execution features RISC characteristics RISC vs. CICS Zebo Peng, IDA, LiTH 1 Introduction Reduced Instruction Set Computer (RISC) is an important innovation
ECE 486/586. Computer Architecture. Lecture # 7
ECE 486/586 Computer Architecture Lecture # 7 Spring 2015 Portland State University Lecture Topics Instruction Set Principles Instruction Encoding Role of Compilers The MIPS Architecture Reference: Appendix
Implementing the Control. Simple Questions
Simple Questions How many cycles will it take to execute this code? lw $t2, 0($t3) lw $t3, 4($t3) beq $t2, $t3, Label add $t5, $t2, $t3 sw $t5, 8($t3) Label:... #assume not What is going on during the
From CISC to RISC. CISC Creates the Anti CISC Revolution. RISC "Philosophy" CISC Limitations
1 CISC Creates the Anti CISC Revolution Digital Equipment Company (DEC) introduces VAX (1977) Commercially successful 32-bit CISC minicomputer From CISC to RISC In 1970s and 1980s CISC minicomputers became
CS 152 Computer Architecture and Engineering. Lecture 8 - Memory Hierarchy-III
CS 152 Computer Architecture and Engineering Lecture 8 - Memory Hierarchy-III Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste
Lecture 6 - Memory. Dr. George Michelogiannakis EECS, University of California at Berkeley CRD, Lawrence Berkeley National Laboratory
CS 152 Computer Architecture and Engineering Lecture 6 - Memory Dr. George Michelogiannakis EECS, University of California at Berkeley CRD, Lawrence Berkeley National Laboratory http://inst.eecs.berkeley.edu/~cs152
Chapter 13 Reduced Instruction Set Computers
Chapter 13 Reduced Instruction Set Computers Contents Instruction execution characteristics Use of a large register file Compiler-based register optimization Reduced instruction set architecture RISC pipelining
Multicycle Approach. Designing MIPS Processor
CSE 675.2: Introduction to Computer Architecture Multicycle Approach 8/8/25 Designing MIPS Processor (Multi-Cycle) Presentation H Slides by Gojko Babić and Elsevier Publishing We will be reusing functional
Computer Architecture ELEC3441
Computer Architecture ELEC3441 RISC vs CISC Iron Law CPUTime = # of instruction program # of cycle instruction cycle Lecture 5 Pipelining Dr. Hayden Kwok-Hay So Department of Electrical and Electronic
Introduction. What is Computer Architecture? Meltdown & Spectre. Meltdown & Spectre. Computer Architecture ELEC /1/17. Dr. Hayden Kwok-Hay So
Computer Architecture ELEC3441 What is Computer Architecture? Introduction 2 nd Semester, 2018-19 Dr. Hayden Kwok-Hay So Department of Electrical and Electronic Engineering Computer Architecture 2nd sem.
CS 152 Computer Architecture and Engineering. Lecture 13 - Out-of-Order Issue and Register Renaming
CS 152 Computer Architecture and Engineering Lecture 13 - Out-of-Order Issue and Register Renaming Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://wwweecsberkeleyedu/~krste
ENE 334 Microprocessors
ENE 334 Microprocessors Lecture 6: Datapath and Control : Dejwoot KHAWPARISUTH Adapted from Computer Organization and Design, 3 th & 4 th Edition, Patterson & Hennessy, 2005/2008, Elsevier (MK) http://webstaff.kmutt.ac.th/~dejwoot.kha/
Introduction. What is Computer Architecture? Design constraints. What is Computer Architecture? Computer Architecture ELEC3441
Computer Architecture ELEC3441 What is Computer Architecture? Introduction 2 nd Semester, 2016-17 Dr. Hayden Kwok-Hay So Department of Electrical and Electronic Engineering Computer Architecture 2 What
Processing Unit CS206T
Processing Unit CS206T Microprocessors The density of elements on processor chips continued to rise More and more elements were placed on each chip so that fewer and fewer chips were needed to construct
Chapter 2: Instructions How we talk to the computer
Chapter 2: Instructions How we talk to the computer 1 The Instruction Set Architecture that part of the architecture that is visible to the programmer - instruction formats - opcodes (available instructions)
Advanced Computer Architecture
ECE 563 Advanced Computer Architecture Fall 2007 Lecture 14: Virtual Machines 563 L14.1 Fall 2009 Outline Types of Virtual Machine User-level (or Process VMs) System-level Techniques for implementing all
Lecture Topics. Announcements. Today: The MIPS ISA (P&H ) Next: continued. Milestone #1 (due 1/26) Milestone #2 (due 2/2)
Lecture Topics Today: The MIPS ISA (P&H 2.1-2.14) Next: continued 1 Announcements Milestone #1 (due 1/26) Milestone #2 (due 2/2) Milestone #3 (due 2/9) 2 1 Evolution of Computing Machinery To understand
CS 152 Computer Architecture and Engineering. Lecture 10 - Complex Pipelines, Out-of-Order Issue, Register Renaming
CS 152 Computer Architecture and Engineering Lecture 10 - Complex Pipelines, Out-of-Order Issue, Register Renaming John Wawrzynek Electrical Engineering and Computer Sciences University of California at
Lecture 4 Pipelining Part II
CS 152 Computer Architecture and Engineering CS252 Graduate Computer Architecture Lecture 4 Pipelining Part II Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley
Microprogramming is a technique to implement the control system of a CPU using a control store to hold the microoperations.
CS 320 Ch. 21 Microprogrammed Control Microprogramming is a technique to implement the control system of a CPU using a control store to hold the microoperations. Microprogramming was invented by Maurice
CS 152 Computer Architecture and Engineering. Lecture 22: Virtual Machines
CS 152 Computer Architecture and Engineering Lecture 22: Virtual Machines Krste Asanovic Electrical Engineering and Computer Sciences University of California, Berkeley http://www.eecs.berkeley.edu/~krste
Simple Instruction Pipelining
Simple Instruction Pipelining Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology Processor Performance Equation Time = Instructions * Cycles * Time Program Program Instruction
Introduction. What is Computer Architecture? Meltdown & Spectre. Meltdown & Spectre. Computer Architecture ELEC3441. Dr. Hayden Kwok-Hay So
Computer Architecture ELEC3441 What is Computer Architecture? Introduction 2 nd Semester, 2017-18 Dr. Hayden Kwok-Hay So Department of Electrical and Electronic Engineering Computer Architecture 2 Meltdown
Instruction Set Principles. (Appendix B)
Instruction Set Principles (Appendix B) Outline Introduction Classification of Instruction Set Architectures Addressing Modes Instruction Set Operations Type & Size of Operands Instruction Set Encoding
CS 152, Spring 2011 Section 8
CS 152, Spring 2011 Section 8 Christopher Celio University of California, Berkeley Agenda Grades Upcoming Quiz 3 What it covers OOO processors VLIW Branch Prediction Intel Core 2 Duo (Penryn) Vs. NVidia
Micro-programmed Control Ch 15
Micro-programmed Control Ch 15 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics 1 Hardwired Control (4) Complex Fast Difficult to design Difficult to modify Lots of
Machine Instructions vs. Micro-instructions. Micro-programmed Control Ch 15. Machine Instructions vs. Micro-instructions (2) Hardwired Control (4)
Micro-programmed Control Ch 15 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics 1 Machine Instructions vs. Micro-instructions Memory execution unit CPU control memory
Micro-programmed Control Ch 15
Micro-programmed Control Ch 15 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics 1 Hardwired Control (4) Complex Fast Difficult to design Difficult to modify Lots of
Chapter 4 The Processor (Part 2)
Department of Electr rical Eng ineering, Chapter 4 The Processor (Part 2) 王振傑 (Chen-Chieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Feng-Chia Unive ersity Outline A Multicycle Implementation Mapping Control
ESE 545 Computer Architecture Instruction Set Design CA: ISA Design
Computer Architecture ESE 545 Computer Architecture Instruction Set Design 1 The Instruction Set: a Critical Interface software instruction set hardware 2 Instruction Set Design When defining a new instruction
New Advances in Micro-Processors and computer architectures
New Advances in Micro-Processors and computer architectures Prof. (Dr.) K.R. Chowdhary, Director SETG Email: kr.chowdhary@jietjodhpur.com Jodhpur Institute of Engineering and Technology, SETG August 27,
RISC, CISC, and ISA Variations
RISC, CISC, and ISA Variations CS 3410 Computer System Organization & Programming These slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, and Sirer. iclicker
CpE 442. Designing a Multiple Cycle Controller
CpE 442 Designing a Multiple Cycle Controller CPE 442 multicontroller.. Outline of Today s Lecture Recap (5 minutes) Review of FSM control (5 minutes) From Finite State Diagrams to Microprogramming (25
CS Computer Architecture
CS 35101 Computer Architecture Section 600 Dr. Angela Guercio Fall 2010 Structured Computer Organization A computer s native language, machine language, is difficult for human s to use to program the computer
Hakim Weatherspoon CS 3410 Computer Science Cornell University
Hakim Weatherspoon CS 3410 Computer Science Cornell University The slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, McKee, and Sirer. Prelim today Starts
Alternate definition: Instruction Set Architecture (ISA) What is Computer Architecture? Computer Organization. Computer structure: Von Neumann model
What is Computer Architecture? Structure: static arrangement of the parts Organization: dynamic interaction of the parts and their control Implementation: design of specific building blocks Performance:
Materials: 1. Projectable Version of Diagrams 2. MIPS Simulation 3. Code for Lab 5 - part 1 to demonstrate using microprogramming
CS311 Lecture: CPU Control: Hardwired control and Microprogrammed Control Last revised October 18, 2007 Objectives: 1. To explain the concept of a control word 2. To show how control words can be generated
What is Computer Architecture?
What is Computer Architecture? Architecture abstraction of the hardware for the programmer instruction set architecture instructions: operations operands, addressing the operands how instructions are encoded
Lecture 9: Microcontrolled Multi-Cycle Implementations. Who Am I?
18-447 Lecture 9: Microcontrolled Multi-Cycle Implementations S 10 L9-1 James C. Hoe José F. Martínez Electrical & Computer Engineering Carnegie Mellon University February 1, 2010 Who Am I? S 10 L9-2 Associate
Chapter 2 Lecture 1 Computer Systems Organization
Chapter 2 Lecture 1 Computer Systems Organization This chapter provides an introduction to the components Processors: Primary Memory: Secondary Memory: Input/Output: Busses The Central Processing Unit
Multicycle conclusion
Multicycle conclusion The last few lectures covered a lot of material! We introduced a multicycle datapath, where different instructions take different numbers of cycles to execute. A multicycle unit is
3.1 Description of Microprocessor. 3.2 History of Microprocessor
3.0 MAIN CONTENT 3.1 Description of Microprocessor The brain or engine of the PC is the processor (sometimes called microprocessor), or central processing unit (CPU). The CPU performs the system s calculating
EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture
EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture Liang Liu liang.liu@eit.lth.se 1 Outline Reiteration Instruction Set Principles The Role of Compilers MIPS 2 Main Content Computer
RISC & Superscalar. COMP 212 Computer Organization & Architecture. COMP 212 Fall Lecture 12. Instruction Pipeline no hazard.
COMP 212 Computer Organization & Architecture Pipeline Re-Cap Pipeline is ILP -Instruction Level Parallelism COMP 212 Fall 2008 Lecture 12 RISC & Superscalar Divide instruction cycles into stages, overlapped
Micro-programmed Control Ch 17
Micro-programmed Control Ch 17 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics Course Summary 1 Hardwired Control (4) Complex Fast Difficult to design Difficult to
Chapter 3 : Control Unit
3.1 Control Memory Chapter 3 Control Unit The function of the control unit in a digital computer is to initiate sequences of microoperations. When the control signals are generated by hardware using conventional
CS252 Spring 2017 Graduate Computer Architecture. Lecture 8: Advanced Out-of-Order Superscalar Designs Part II
CS252 Spring 2017 Graduate Computer Architecture Lecture 8: Advanced Out-of-Order Superscalar Designs Part II Lisa Wu, Krste Asanovic http://inst.eecs.berkeley.edu/~cs252/sp17 WU UCB CS252 SP17 Last Time
Hardwired Control (4) Micro-programmed Control Ch 17. Micro-programmed Control (3) Machine Instructions vs. Micro-instructions
Micro-programmed Control Ch 17 Micro-instructions Micro-programmed Control Unit Sequencing Execution Characteristics Course Summary Hardwired Control (4) Complex Fast Difficult to design Difficult to modify
CS 152 Computer Architecture and Engineering. Lecture 12 - Advanced Out-of-Order Superscalars
CS 152 Computer Architecture and Engineering Lecture 12 - Advanced Out-of-Order Superscalars Dr. George Michelogiannakis EECS, University of California at Berkeley CRD, Lawrence Berkeley National Laboratory
CS 152 Computer Architecture and Engineering. Lecture 13 - VLIW Machines and Statically Scheduled ILP
CS 152 Computer Architecture and Engineering Lecture 13 - VLIW Machines and Statically Scheduled ILP Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste!
Computer Systems Laboratory Sungkyunkwan University
ARM & IA-32 Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu ARM (1) ARM & MIPS similarities ARM: the most popular embedded core Similar basic set
Advanced Computer Architecture
Advanced Computer Architecture Lecture No. 22 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 5 Computer Systems Design and Architecture 5.3 Summary Microprogramming Working of a General Microcoded
Lecture 4: Instruction Set Architecture
Lecture 4: Instruction Set Architecture ISA types, register usage, memory addressing, endian and alignment, quantitative evaluation Reading: Textbook (5 th edition) Appendix A Appendix B (4 th edition)
Lecture 7 - Memory Hierarchy-II
CS 152 Computer Architecture and Engineering Lecture 7 - Memory Hierarchy-II John Wawrzynek Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~johnw
Advanced processor designs
Advanced processor designs We ve only scratched the surface of CPU design. Today we ll briefly introduce some of the big ideas and big words behind modern processors by looking at two example CPUs. The
CS 5803 Introduction to High Performance Computer Architecture: RISC vs. CISC. A.R. Hurson 323 Computer Science Building, Missouri S&T
CS 5803 Introduction to High Performance Computer Architecture: RISC vs. CISC A.R. Hurson 323 Computer Science Building, Missouri S&T hurson@mst.edu 1 Outline How to improve CPU time? Complex Instruction
ECE 252 / CPS 220 Advanced Computer Architecture I. Lecture 8 Instruction-Level Parallelism Part 1
ECE 252 / CPS 220 Advanced Computer Architecture I Lecture 8 Instruction-Level Parallelism Part 1 Benjamin Lee Electrical and Computer Engineering Duke University www.duke.edu/~bcl15 www.duke.edu/~bcl15/class/class_ece252fall11.html
COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle
Lecture 5: Instruction Set Architecture : Road Map
S 09 L5-1 18-447 Lecture 5: Instruction Set Architecture James C. Hoe Dept of ECE, CMU February 2, 2009 Announcements: HW 1 due Midterm in 2 weeks Make sure you find lab partners for Lab2, no exceptions
Lecture 12 Branch Prediction and Advanced Out-of-Order Superscalars
CS 152 Computer Architecture and Engineering CS252 Graduate Computer Architecture Lecture 12 Branch Prediction and Advanced Out-of-Order Superscalars Krste Asanovic Electrical Engineering and Computer
Chapter 17. Microprogrammed Control. Yonsei University
Chapter 17 Microprogrammed Control Contents Basic Concepts Microinstruction Sequencing Microinstruction Execution TI 8800 Applications of Microprogramming 17-2 Introduction Basic Concepts An alternative
Digital System Design Using Verilog. - Processing Unit Design
Digital System Design Using Verilog - Processing Unit Design 1.1 CPU BASICS A typical CPU has three major components: (1) Register set, (2) Arithmetic logic unit (ALU), and (3) Control unit (CU) The register