Computer Science 104:! Y86 & Single Cycle Processor Design!
|
|
- Harold Martin
- 6 years ago
- Views:
Transcription
1 Computer Science 104: Y86 & Single Cycle Processor Design Alvin R. Lebeck Slides based on those from Randy Bryant CS:APP Administrative HW #4 Due tomorrow tonight HW #5 up soon ing: Today Review Y86 & datapath Control 2 CS:APP
2 Y86 Instruction Set Byte nop 0 0 halt 1 0 rrmovl ra, rb 2 0 ra rb irmovl V, rb rb V addl 6 0 subl 6 1 andl 6 2 xorl 6 3 rmmovl ra, D(rB) 4 0 ra rb D jmp 7 0 mrmovl D(rB), ra 5 0 ra rb D jle 7 1 OPl ra, rb 6 fn ra rb jl 7 2 jxx Dest 7 fn Dest je 7 3 call Dest 8 0 Dest jne 7 4 ret 9 0 jge 7 5 pushl ra A 0 ra 8 jg 7 6 popl ra B 0 ra 8 3 CS:APP Building Blocks fun Combinational Logic n Compute Boolean functions of inputs n Continuously respond to input changes n Operate on data and implement control A B A L U 0 MUX 1 = Storage Elements n Store bits n Addressable memories vala srca valb A Register file valw W dstw n Non-addressable registers srcb B Clock n Loaded only as clock rises Clock 4 CS:APP
3 SEQ Stages back new vale, valm valm Fetch n instruction from instruction n program registers n Compute value or address Memory n or write data Back n program registers n Update program counter Memory Fetch icode, ifun ra,rb valc Instruction increment 5 CS:APP Addr, Data Bch CC alua, alub srca, srcb dsta, dstb Data valp vale ALU vala, valb Register A B M file E Executing Arith./Logical Operation OPl ra, rb Fetch n 2 bytes n operand registers n Perform operation n Set condition codes 6 fn rarb Memory n Do nothing back n Update register Update n Increment by 2 6 CS:APP
4 Stage Computation: Arith/Log. Ops Fetch OPl ra, rb icode:ifun M 1 [] ra:rb M 1 [+1] valp +2 vala R[rA] valb R[rB] vale valb OP vala Set CC instruction byte register byte Compute next operand A operand B Perform ALU operation Set condition code register Memory R[rB] vale back result back update valp Update n Formulate instruction execution as sequence of simple steps n Use same general form for all instructions 7 CS:APP Executing call call Dest 8 0 Dest return: XX XX target: XX XX Fetch n 5 bytes n Increment by 5 n stack pointer n Decrement stack pointer by 4 Memory n incremented to new value of stack pointer back n Update stack pointer Update n Set to Dest 8 CS:APP
5 Stage Computation: call call Dest icode:ifun M 1 [] instruction byte Fetch valc M 4 [+1] valp +5 valb R[%esp] vale valb + 4 destination address Compute return point stack pointer Decrement stack pointer Memory M 4 [vale] valp return value on stack R[%esp] vale Update stack pointer back update valc Set to destination n Use ALU to decrement stack pointer n Store incremented 9 CS:APP Executing ret ret 9 0 return: XX XX Fetch n 1 byte n stack pointer n Increment stack pointer by 4 Memory n return address from old stack pointer back n Update stack pointer Update n Set to return address 10 CS:APP
6 Stage Computation: ret ret icode:ifun M 1 [] instruction byte Fetch Memory back update vala R[%esp] valb R[%esp] vale valb + 4 valm M 4 [vala] R[%esp] vale valm operand stack pointer operand stack pointer Increment stack pointer return address Update stack pointer Set to return address n Use ALU to increment stack pointer n return address from 11 CS:APP Computed Values Fetch icode ifun Instruction code Instruction function ra Instr. Register A rb Instr. Register B valc valp Instruction constant Incremented srca Register ID A srcb Register ID B dste Destination Register E dstm Destination Register M vala Register value A valb Register value B n vale n Bch Memory ALU result Branch flag n valm Value from 12 CS:APP
7 Computation Steps OPl icode,ifun OPl ra, rb icode:ifun M 1 [] instruction byte Fetch ra,rb ra:rb M 1 [+1] register byte valc [ constant word] valp valp +2 Compute next vala, srca vala R[rA] operand A valb, srcb valb R[rB] operand B vale vale valb OP vala Perform ALU operation Cond code Set CC Set condition code register Memory valm [Memory read/write] back dste dstm R[rB] vale back ALU result [ back result] update valp Update n All instructions follow same general pattern n Differ in what gets computed on each step 13 CS:APP Computation Steps Call Fetch Memory back update icode,ifun ra,rb valc valp vala, srca valb, srcb vale Cond code valm dste dstm call Dest icode:ifun M 1 [] valc M 4 [+1] valp +5 valb R[%esp] vale valb + 4 M 4 [vale] valp R[%esp] vale valc instruction byte [ register byte] constant word Compute next [ operand A] operand B Perform ALU operation [Set condition code reg.] [Memory read/write] [ back ALU result] back result Update n All instructions follow same general pattern n Differ in what gets computed on each step 14 CS:APP
8 Control for Datapath Need to design the logic to compute values Break into stages of instruction execution Fetch, Decode, Execute, Memory, back, update Lectures, text, some homework use Y86 Some homework / project will use a different instruction set (RISC) 15 CS:APP Hardware Control Language n Very simple hardware description language n Can only express limited aspects of hardware operation l Parts we want to explore and modify Data Types n n bool: Boolean l a, b, c, int: words l A, B, C, Statements l Does not specify word size---bytes, 32-bit words, n bool a = bool-expr ; n int A = int-expr ; 16 CS:APP
9 HCL Operations n Classify by type of value returned Boolean Expressions n Logic Operations l a && b, a b, a n Word Comparisons l A == B, A = B, A < B, A <= B, A >= B, A > B n Set Membership l A in { B, C, D }» Same as A == B A == C A == D Word Expressions n Case expressions l [ a : A; b : B; c : C ] l Evaluate test expressions a, b, c, in sequence l Return word expression A, B, C, for first successful test 17 CS:APP SEQ Hardware Key n Blue boxes: predesigned hardware blocks l E.g., memories, ALU n Gray boxes: control logic l Describe in HCL n White ovals: labels for signals n Thick lines: 32-bit word values n Thin lines: 4-8 bit values n Dotted lines: 1-bit values Memory Execute Decode Fetch Bch CC icode ifun ra Mem. control ALU A Instruction new New rb read write vale ALU valc Data Addr ALU B valm data out Data valp vala increment ALU fun. valb A B Register M file E dste dstm srca srcb dste dstm srca srcb back 18 CS:APP
10 Fetch Logic icode ifun ra rb valc valp Instr valid Need valc Need regids increment Split Byte 0 Instruction Align Bytes 1-5 Predefined Blocks n : Register containing n Instruction : 6 bytes ( to +5) n Split: Divide instruction byte into icode and ifun n Align: Get fields for ra, rb, and valc 19 CS:APP Fetch Logic icode ifun ra rb valc valp Instr valid Need valc Need regids increment Split Byte 0 Instruction Align Bytes 1-5 Control Logic n Instr. Valid: Is this instruction valid? n Need regids: Does this instruction have a register byte? n Need valc: Does this instruction have a constant word? 20 CS:APP
11 Fetch Control Logic nop 0 0 halt 1 0 rrmovl ra, rb 2 0 ra rb irmovl V, rb rb V rmmovl ra, D(rB) 4 0 ra rb D mrmovl D(rB), ra 5 0 ra rb D OPl ra, rb 6 fn ra rb jxx Dest 7 fn Dest call Dest 8 0 Dest ret 9 0 pushl ra A 0 ra 8 popl ra B 0 ra 8 bool need_regids = icode in { IRRMOVL, IOPL, IPUSHL, IPOPL, IIRMOVL, IRMMOVL, IMRMOVL }; bool instr_valid = icode in { INOP, IHALT, IRRMOVL, IIRMOVL, IRMMOVL, IMRMOVL, IOPL, IJXX, ICALL, IRET, IPUSHL, IPOPL }; 21 CS:APP Decode Logic Register File n ports A, B n ports E, M n Addresses are register IDs or 8 (no access) vala valb A B Register M file E dste dstm srca srcb dste dstm srca srcb valm vale Control Logic n srca, srcb: read port addresses n dsta, dstb: write port addresses icode ra rb 22 CS:APP
12 A Source OPl ra, rb vala R[rA] operand A rmmovl ra, D(rB) vala R[rA] operand A popl ra vala R[%esp] jxx Dest call Dest stack pointer No operand No operand ret vala R[%esp] stack pointer int srca = [ icode in { IRRMOVL, IRMMOVL, IOPL, IPUSHL } : ra; icode in { IPOPL, IRET } : RESP; 1 : RNONE; # Don't need register ]; 23 CS:APP E Destination -back -back -back -back -back OPl ra, rb R[rB] vale rmmovl ra, D(rB) popl ra R[%esp] vale jxx Dest call Dest R[%esp] vale back result None Update stack pointer None Update stack pointer -back ret R[%esp] vale Update stack pointer int dste = [ icode in { IRRMOVL, IIRMOVL, IOPL} : rb; icode in { IPUSHL, IPOPL, ICALL, IRET } : RESP; 1 : RNONE; # Don't need register ]; 24 CS:APP
13 Execute Logic Units n ALU n CC l Implements 4 required functions l Generates condition code values l Register with 3 condition code bits n bcond Control Logic l Computes branch flag n Set CC: Should condition code register be loaded? n ALU A: Input A to ALU n ALU B: Input B to ALU n ALU fun: What function should ALU compute? 25 CS:APP Bch bcond CC Set CC ALU A vale ALU ALU B icode ifun valc vala valb ALU fun. ALU A Input OPl ra, rb vale valb OP vala Perform ALU operation rmmovl ra, D(rB) vale valb + valc popl ra vale valb + 4 jxx Dest call Dest vale valb + 4 Compute effective address Increment stack pointer No operation Decrement stack pointer ret vale valb + 4 Increment stack pointer int alua = [ icode in { IRRMOVL, IOPL } : vala; icode in { IIRMOVL, IRMMOVL, IMRMOVL } : valc; icode in { ICALL, IPUSHL } : -4; icode in { IRET, IPOPL } : 4; 26 # Other instructions don't need ALU CS:APP ];
14 ALU Operation OPl ra, rb vale valb OP vala Perform ALU operation rmmovl ra, D(rB) vale valb + valc popl ra vale valb + 4 jxx Dest call Dest vale valb + 4 Compute effective address Increment stack pointer No operation Decrement stack pointer ret vale valb + 4 Increment stack pointer int alufun = [ icode == IOPL : ifun; 1 : ALUADD; 27 ]; CS:APP Memory Logic Memory n s or writes word Control Logic n Mem. read: should word be read? n Mem. write: should word be written? n Mem. addr.: Select address n Mem. data.: Select data icode Mem. read Mem. write read write Data Mem addr vale valm data out Mem data data in vala valp 28 CS:APP
15 Memory Address OPl ra, rb Memory No operation rmmovl ra, D(rB) Memory M 4 [vale] vala value to popl ra Memory valm M 4 [vala] from stack jxx Dest Memory No operation call Dest Memory M 4 [vale] valp return value on stack Memory ret valm M 4 [vala] return address int mem_addr = [ icode in { IRMMOVL, IPUSHL, ICALL, IMRMOVL } : vale; icode in { IPOPL, IRET } : vala; # Other instructions don't need address 29 CS:APP ]; Memory Memory OPl ra, rb No operation rmmovl ra, D(rB) Memory M 4 [vale] vala value to popl ra Memory valm M 4 [vala] from stack jxx Dest Memory No operation call Dest Memory M 4 [vale] valp return value on stack Memory ret valm M 4 [vala] return address bool mem_read = icode in { IMRMOVL, IPOPL, IRET }; 30 CS:APP
16 Update Logic New n Select next value of New icode Bch valc valm valp 31 CS:APP Update update update update update update update OPl ra, rb valp rmmovl ra, D(rB) valp popl ra valp jxx Dest Bch? valc : valp call Dest valc ret valm Update Update Update Update Set to destination Set to return address int new_pc = [ icode == ICALL : valc; icode == IJXX && Bch : valc; icode == IRET : valm; 1 : valp; ]; 32 CS:APP
17 SEQ Operation Combinational Logic CC 0x00c Data Register file State n register n Cond. Code register n Data n Register file All updated as clock rises Combinational Logic n ALU n Control logic n Memory reads l Instruction l Register file l Data 33 CS:APP SEQ Operation #2 Clock Cycle 1: Cycle 2: Cycle 3: Cycle 4: Cycle 1 Cycle 2 Cycle 3 Cycle 4 0x000: irmovl $0x100,%ebx # %ebx <-- 0x100 0x006: irmovl $0x200,%edx # %edx <-- 0x200 0x00c: addl %edx,%ebx # %ebx <-- 0x300 CC < x00e: je dest # Not taken Combinational Logic CC 100 Data Register file %ebx = 0x100 n state set according to second irmovl instruction n combinational logic starting to react to state changes 0x00c 34 CS:APP
18 SEQ Operation #3 Clock Cycle 1: Cycle 2: Cycle 3: Cycle 4: Cycle 1 Cycle 2 Cycle 3 Cycle 4 0x000: irmovl $0x100,%ebx # %ebx <-- 0x100 0x006: irmovl $0x200,%edx # %edx <-- 0x200 0x00c: addl %edx,%ebx # %ebx <-- 0x300 CC < x00e: je dest # Not taken Combinational Logic CC Data Register file %ebx = 0x100 n state still set according to second irmovl instruction n combinational logic generates results for addl instruction 0x00e 0x00c 35 CS:APP SEQ Operation #4 Clock Cycle 1: Cycle 2: Cycle 3: Cycle 4: Cycle 1 Cycle 2 Cycle 3 Cycle 4 0x000: irmovl $0x100,%ebx # %ebx <-- 0x100 0x006: irmovl $0x200,%edx # %edx <-- 0x200 0x00c: addl %edx,%ebx # %ebx <-- 0x300 CC < x00e: je dest # Not taken Combinational Logic CC 000 Data Register file %ebx = 0x300 n state set according to addl instruction n combinational logic starting to react to state changes 0x00e 36 CS:APP
19 SEQ Operation #5 Clock Cycle 1: Cycle 2: Cycle 3: Cycle 4: Cycle 1 Cycle 2 Cycle 3 Cycle 4 0x000: irmovl $0x100,%ebx # %ebx <-- 0x100 0x006: irmovl $0x200,%edx # %edx <-- 0x200 0x00c: addl %edx,%ebx # %ebx <-- 0x300 CC < x00e: je dest # Not taken Combinational Logic Data n state set according to addl instruction CC 000 n combinational logic generates Register results for je file %ebx = 0x300 instruction l y to take 0x013 effect at rising edge 0x00e 37 CS:APP SEQ Summary Implementation n Express every instruction as series of simple steps n Follow same general flow for each instruction type n Assemble registers, memories, predesigned combinational blocks n Connect with control logic Limitations n Too slow to be practical n In one cycle, must propagate through instruction, register file, ALU, and data n Would need to run clock very slowly n Hardware units only active for fraction of clock cycle 38 CS:APP
CS:APP Chapter 4 Computer Architecture Sequential Implementation
CS:APP Chapter 4 Computer Architecture Sequential Implementation Randal E. Bryant Carnegie Mellon University http://csapp.cs.cmu.edu CS:APP Y86 Instruction Set Byte 0 1 2 3 4 5 nop 0 0 halt 1 0 rrmovl
More informationGiving credit where credit is due
CSCE 230J Computer Organization Processor Architecture III: Sequential Implementation Dr. Steve Goddard goddard@cse.unl.edu http://cse.unl.edu/~goddard/courses/csce230j Giving credit where credit is due
More informationSystems I. Datapath Design II. Topics Control flow instructions Hardware for sequential machine (SEQ)
Systems I Datapath Design II Topics Control flow instructions Hardware for sequential machine (SEQ) Executing Jumps jxx Dest 7 fn Dest fall thru: XX XX Not taken target: XX XX Taken Fetch Decode Read 5
More informationCS:APP Chapter 4 Computer Architecture Sequential Implementation
CS:APP Chapter 4 Computer Architecture Sequential Implementation Randal E. Bryant Carnegie Mellon University http://csapp.cs.cmu.edu CS:APP Y86 Instruction Set Byte 0 1 2 3 4 5 nop 0 0 halt 1 0 rrmovl
More informationProcessor Architecture II! Sequential! Implementation!
Processor Architecture II! Sequential! Implementation! Lecture 6, April 14 th 2011 Alexandre David Slides by Randal E. Bryant! Carnegie Mellon University! Y86 Instruction Set! Byte! 0 1 2 3 4 5 nop 0 0
More informationComputer Science 104:! Y86 & Single Cycle Processor Design!
Computer Science 104:! Y86 & Single Cycle Processor Design! Alvin R. Lebeck! Slides based on those from Randy Bryant CS:APP! Administrative! 2! CS:APP! Y86 Instruction Set! Byte! 0 1 2 3 4 5 nop 0 0 halt
More informationChapter 4! Processor Architecture!!
Chapter 4! Processor Architecture!! Sequential Implementation! Instructor: Dr. Hyunyoung Lee! Texas A&M University! Based on slides provided by Randal E. Bryant, CMU Topics Covered! Hardware Control Language
More informationSequential Implementation
CS:APP Chapter 4 Computer Architecture Sequential Implementation Randal E. Bryant adapted by Jason Fritts http://csapp.cs.cmu.edu CS:APP2e Hardware Architecture - using Y86 ISA For learning aspects of
More informationCISC Fall 2009
Michela Taufer October 20, 2009 Powerpoint Lecture Notes for Computer Systems: A Programmer's Perspective, R. Bryant and D. O'Hallaron, Prentice Hall, 2003 Y86 Instruction Set Byte 0 1 2 3 4 5 nop 0 0
More informationStage Computation: Arith/Log. Ops
Stage Computation: Arith/Log. Ops OPl ra, rb Fetch icode:ifun M 1 [PC] ra:rb M 1 [PC+1] Read instruction byte Read register byte back valp PC+2 vala R[rA] valb R[rB] vale valb OP vala Set CC R[rB] vale
More informationCS:APP Chapter 4! Computer Architecture! Sequential! Implementation!
CS:APP Chapter 4! Computer Architecture! Sequential! Implementation! Randal E. Bryant! Carnegie Mellon University! http://csapp.cs.cmu.edu CS:APP2e! Y86 Instruction Set #1! Byte! 0 1 2 3 4 5 halt 0 0 nop
More informationGod created the integers, all else is the work of man Leopold Kronecker
Sequential Hardware God created the integers, all else is the work of man Leopold Kronecker (He believed in the reduction of all mathematics to arguments involving only the integers and a finite number
More informationGiving credit where credit is due
JDEP 284H Foundations of Computer Systems Processor rchitecture III: Sequential Implementation Dr. Steve Goddard goddard@cse.unl.edu Giving credit where credit is due Most of slides for this lecture are
More informationCS:APP Chapter 4 Computer Architecture Sequential Implementation
CS:APP Chapter 4 Computer Architecture Sequential Implementation Randal E. Bryant Carnegie Mellon University CS:APP Y86 Instruction Set Byte ra rb ra rb V rb rb V ra D rb ra rb D D rb ra ra rb D ra rb
More informationY86 Instruction Set. SEQ Hardware Structure. SEQ Stages. Sequential Implementation. Lecture 8 Computer Architecture III.
Building Blocks Combinational Logic Compute Boolean functions of inputs Continuously respond to input changes Operate on data and implement control Storage Elements Store bits Lecture 8 Computer rchitecture
More informationBackground: Sequential processor design. Computer Architecture and Systems Programming , Herbstsemester 2013 Timothy Roscoe
Background: Sequential processor design Computer Architecture and Systems Programming 252 0061 00, Herbstsemester 2013 Timothy Roscoe Overview Y86 instruction set architecture Processor state Instruction
More informationComputer Science 104:! Y86 & Single Cycle Processor Design!
Computer Science 104: Y86 & Single Cycle Processor Design Alvin R. Lebeck Slides based on those from Randy Bryant 1 CS:APP Administrative Homework #4 My office hours today 11:30-12:30 Reading: text 4.3
More informationSystems I. Datapath Design II. Topics Control flow instructions Hardware for sequential machine (SEQ)
Systems I Datapath Design II Topics Control flow instructions Hardware for sequential machine (SEQ) Executing Jumps jxx Dest 7 fn Dest fall thru: XX XX Not taken target: XX XX Taken Read 5 bytes Increment
More informationComputer Science 104:! Y86 & Single Cycle Processor Design!
Computer Science 104:! Y86 & Single Cycle Processor Design! Alvin R. Lebeck! Slides based on those from Randy Bryant 1! CS:APP! CS:APP! Administrative! 2! CS:APP! Instruction Set Architecture! Application!
More informationcmovxx ra, rb 2 fn ra rb irmovq V, rb 3 0 F rb V rmmovq ra, D(rB) 4 0 ra rb D mrmovq D(rB), ra 5 0 ra rb D OPq ra, rb 6 fn ra rb jxx Dest 7 fn Dest
Computer Architecture: Y86-64 Sequential Implementation CSci 2021: Machine Architecture and Organization Lecture #19, March 4th, 2016 Your instructor: Stephen McCamant Based on slides originally by: Randy
More informationCS429: Computer Organization and Architecture
CS429: Computer Organization and Architecture Dr Bill Young Department of Computer Sciences University of Texas at Austin Last updated: March 15, 2018 at 10:58 CS429 Slideset 13: 1 The ISA Byte 0 1 2 3
More informationSequential CPU Implementation.
Sequential CPU Implementation Y86 Instruction Set P259 Byte 0 1 2 3 4 5 nop 0 0 halt 1 0 rrmovl ra, rb 2 0 ra rb irmovl V, rb 3 0 8 rb V rmmovl ra, D(rB) 4 0 ra rb D mrmovl D(rB), ra 5 0 ra rb D OPl ra,
More informationThe ISA. Fetch Logic
The ISA CS429: Computer Organization and Architecture Dr Bill Young Department of Computer Science University of Texas at Austin Last updated: July 5, 2018 at 11:55 Byte 0 1 2 3 4 5 6 7 8 9 halt 0 0 nop
More informationWhere Have We Been? Logic Design in HCL. Assembly Language Instruction Set Architecture (Y86) Finite State Machines
Where Have We Been? Assembly Language Instruction Set Architecture (Y86) Finite State Machines States and Transitions Events Where Are We Going? Tracing Instructions at the Register Level Build a CPU!
More informationcmovxx ra, rb 2 fn ra rb irmovq V, rb 3 0 F rb V rmmovq ra, D(rB) 4 0 ra rb D mrmovq D(rB), ra 5 0 ra rb D OPq ra, rb 6 fn ra rb jxx Dest 7 fn Dest
Computer Architecture: Y86-64 Sequential Implementation CSci 2021: Machine Architecture and Organization October 31st, 2018 Your instructor: Stephen McCamant Based on slides originally by: Randy Bryant
More informationCISC: Stack-intensive procedure linkage. [Early] RISC: Register-intensive procedure linkage.
CISC: Stack-intensive procedure linkage. The stack is used for procedure arguments and return addresses. [Early] RISC: Register-intensive procedure linkage. Registers are used for procedure arguments and
More informationOverview. CS429: Computer Organization and Architecture. Y86 Instruction Set. Building Blocks
Overview CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: March 15, 2018 at 10:54 How do we build a digital computer?
More informationFoundations of Computer Systems
18-600 Foundations of Computer Systems Lecture 7: Processor Architecture & Design John P. Shen & Gregory Kesden September 20, 2017 Lecture #7 Processor Architecture & Design Lecture #8 Pipelined Processor
More informationComputer Organization Chapter 4. Prof. Qi Tian Fall 2013
Computer Organization Chapter 4 Prof. Qi Tian Fall 2013 1 Topics Dec. 6 (Friday) Final Exam Review Record Check Dec. 4 (Wednesday) 5 variable Karnaugh Map Quiz 5 Dec. 2 (Monday) 3, 4 variables Karnaugh
More informationByte. cmovle 7 1. halt 0 0 addq 6 0 nop 1 0 subq 6 1 cmovxx ra, rb 2 fn ra rb andq 6 2 irmovq V, rb 3 0 F rb V xorq 6 3. cmovl 7 2.
Y86-6 Instruc&on Set Computer rchitecture Sequen&al Implementa&on CSCI 202: Machine rchitecture and Organiza&on Byte 0 2 3 5 6 7 8 9 2 fn r rb irmovq V, rb 3 0 F rb V 0 r rb Pen- Chung Yew epartment Computer
More informationCSC 252: Computer Organization Spring 2018: Lecture 11
CSC 252: Computer Organization Spring 2018: Lecture 11 Instructor: Yuhao Zhu Department of Computer Science University of Rochester Action Items: Assignment 3 is due March 2, midnight Announcement Programming
More informationFor Tuesday. Finish Chapter 4. Also, Project 2 starts today
For Tuesday Finish Chapter 4 Also, Project 2 starts today 1 Sequential Y86 Implementation 1. Fetch From icode (4 bits) & ifun (4 bits) [valc (4bytes)] Calc valp 2. Decode: get ra [rb] [%esp] 3. Execute
More informationcs281: Introduction to Computer Systems CPUlab Datapath Assigned: Oct. 29, Due: Nov. 3
cs281: Introduction to Computer Systems CPUlab Datapath Assigned: Oct. 29, Due: Nov. 3 The objective of this exercise is to familiarize you with the Datapath of the Y86 CPU and to introduce you to the
More informationcs281: Computer Systems CPUlab ALU and Datapath Assigned: Oct. 30, Due: Nov. 8 at 11:59 pm
cs281: Computer Systems CPUlab ALU and Datapath Assigned: Oct. 30, Due: Nov. 8 at 11:59 pm The objective of this exercise is twofold to complete a combinational circuit for an ALU that we can use with
More informationReview. Computer Science 104 Machine Organization & Programming
Review Computer Science 104 Machine Organization & Programming Administrative 104/16 Processor Due today Final Sunday Dec 18, 2-5pm in D106 Today Ø high-level review Ø Q&A Alex will review sometime, watch
More informationCS:APP Chapter 4 Computer Architecture Pipelined Implementation
CS:APP Chapter 4 Computer Architecture Pipelined Implementation Part II Randal. Bryant Carnegie ellon University http://csapp.cs.cmu.edu CS:APP Overview ata Hazards ake the pipelined processor work! Instruction
More informationMichela Taufer CS:APP
ichela Taufer CS:APP Powerpoint Lecture Notes for Computer Systems: A Programmer's Perspective, R. Bryant and. O'Hallaron, Prentice Hall, 2003 Overview 2 CISC 360 Faʼ08 Pipeline Stages W_icode, W_val W
More informationSystems I. Pipelining II. Topics Pipelining hardware: registers and feedback paths Difficulties with pipelines: hazards Method of mitigating hazards
Systems I Pipelining II Topics Pipelining hardware: registers and feedback paths ifficulties with pipelines: hazards Method of mitigating hazards Adding Pipeline Registers val, valm _icode, _valm rite
More informationCS:APP Chapter 4 Computer Architecture Wrap-Up Randal E. Bryant Carnegie Mellon University
CS:APP Chapter 4 Computer Architecture Wrap-Up Randal E. Bryant Carnegie Mellon University http://csapp.cs.cmu.edu CS:APP Overview Wrap-Up of PIPE Design Performance analysis Fetch stage design Exceptional
More informationTerm-Level Verification of a Pipelined CISC Microprocessor
Term-Level Verification of a Pipelined CISC Microprocessor Randal E. Bryant December, 2005 CMU-CS-05-195 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 This work was supported
More informationCPSC 121: Models of Computation. Module 10: A Working Computer
CPSC 121: Models of Computation Module 10: A Working Computer Module 10: A Working Computer???build a computer that is?able to 1. How can we?execute a user-defined program? We are finally able to answer
More informationCS:APP Chapter 4 Computer Architecture Wrap-Up Randal E. Bryant Carnegie Mellon University
CS:APP Chapter 4 Computer Architecture Wrap-Up Randal E. Bryant Carnegie Mellon University http://csapp.cs.cmu.edu CS:APP2e Overview Wrap-Up of PIPE Design Exceptional conditions Performance analysis Fetch
More informationCPSC 121: Models of Computation. Module 10: A Working Computer
CPSC 121: Models of Computation The 10th online quiz is due Tuesday, March 26 th at 17:00. Assigned reading for the quiz: Epp, 4th edition: 6.1, 7.1 Epp, 3rd edition: 5.1, 6.1 Rosen, 6th edition: 2.1,
More informationCPSC 313, Summer 2013 Final Exam Date: June 24, 2013; Instructor: Mike Feeley
CPSC 313, Summer 2013 Final Exam Date: June 24, 2013; Instructor: Mike Feeley This is a closed-book exam. No outside notes. Electronic calculators are permitted. You may remove the last two pages of the
More informationChapter 4 Processor Architecture: Y86 (Sections 4.1 & 4.3) with material from Dr. Bin Ren, College of William & Mary
Chapter 4 Processor Architecture: Y86 (Sections 4.1 & 4.3) with material from Dr. Bin Ren, College of William & Mary 1 Outline Introduction to assembly programing Introduction to Y86 Y86 instructions,
More informationInstruction Set Architecture
CS:APP Chapter 4 Computer Architecture Instruction Set Architecture Randal E. Bryant adapted by Jason Fritts http://csapp.cs.cmu.edu CS:APP2e Hardware Architecture - using Y86 ISA For learning aspects
More informationCPSC 313, Winter 2016 Term 1 Sample Date: October 2016; Instructor: Mike Feeley
CPSC 313, Winter 2016 Term 1 Sample Date: October 2016; Instructor: Mike Feeley NOTE: This sample contains all of the question from the two CPSC 313 midterms for Summer 2015. This term s midterm will be
More informationSEQ part 3 / HCLRS 1
SEQ part 3 / HCLRS 1 Changelog 1 Changes made in this version not seen in first lecture: 21 September 2017: data memory value MUX input for call is PC + 10, not PC 21 September 2017: slide 23: add input
More informationInstruction Set Architecture
CS:APP Chapter 4 Computer Architecture Instruction Set Architecture Randal E. Bryant Carnegie Mellon University http://csapp.cs.cmu.edu CS:APP Instruction Set Architecture Assembly Language View Processor
More informationInstruction Set Architecture
CS:APP Chapter 4 Computer Architecture Instruction Set Architecture Randal E. Bryant Carnegie Mellon University http://csapp.cs.cmu.edu CS:APP Instruction Set Architecture Assembly Language View! Processor
More informationReading assignment. Chapter 3.1, 3.2 Chapter 4.1, 4.3
Reading assignment Chapter 3.1, 3.2 Chapter 4.1, 4.3 1 Outline Introduc5on to assembly programing Introduc5on to Y86 Y86 instruc5ons, encoding and execu5on 2 Assembly The CPU uses machine language to perform
More informationCS:APP Guide to Y86 Processor Simulators
CS:APP Guide to Y86 Processor Simulators Randal E. Bryant David R. O Hallaron November 4, 2004 Copyright c 2002, R. E. Bryant, D. R. O Hallaron. All rights reserved. 1 This document describes the processor
More informationChapter 4! Processor Architecture!
Chapter 4! Processor Architecture!! Y86 Instruction Set Architecture! Instructor: Dr. Hyunyoung Lee! Texas A&M University! Based on slides provided by Randal E. Bryant, CMU Why Learn Processor Design?!
More informationProcessor Architecture
Processor Architecture God created the integers, all else is the work of man Leopold Kronecker (He believed in the reduction of all mathematics to arguments involving only the integers and a finite number
More informationCS429: Computer Organization and Architecture
CS429: Computer Organization and Architecture Warren Hunt, Jr. and Bill Young Department of Computer Sciences University of Texas at Austin Last updated: October 1, 2014 at 12:03 CS429 Slideset 6: 1 Topics
More informationY86 Processor State. Instruction Example. Encoding Registers. Lecture 7A. Computer Architecture I Instruction Set Architecture Assembly Language View
Computer Architecture I Instruction Set Architecture Assembly Language View Processor state Registers, memory, Instructions addl, movl, andl, How instructions are encoded as bytes Layer of Abstraction
More informationCISC 360 Instruction Set Architecture
CISC 360 Instruction Set Architecture Michela Taufer October 9, 2008 Powerpoint Lecture Notes for Computer Systems: A Programmer's Perspective, R. Bryant and D. O'Hallaron, Prentice Hall, 2003 Chapter
More informationProcessor Architecture I. Alexandre David
Processor Architecture I Alexandre David Overview n Introduction: from transistors to gates. n and from gates to circuits. n 4.1 n 4.2 n Micro+macro code. 12-04-2011 CART - Aalborg University 2 Evolution
More informationInstruction Set Architecture
CISC 360 Instruction Set Architecture Michela Taufer October 9, 2008 Powerpoint Lecture Notes for Computer Systems: A Programmer's Perspective, R. Bryant and D. O'Hallaron, Prentice Hall, 2003 Chapter
More informationGiving credit where credit is due
CSC 230J Computer Organization Processor rchitecture V: aking the Pipelined Implementation ork r. Steve Goddard goddard@cse.unl.edu http://cse.unl.edu/~goddard/courses/csc230j Giving credit where credit
More informationFoundations of Computer Systems
18-600 Foundations of Computer Systems Lecture 8: Pipelined Processor Design John P. Shen & Gregory Kesden September 25, 2017 Lecture #7 Processor Architecture & Design Lecture #8 Pipelined Processor Design
More informationChangelog. Changes made in this version not seen in first lecture: 13 Feb 2018: add slide on constants and width
HCL 1 Changelog 1 Changes made in this version not seen in first lecture: 13 Feb 2018: add slide on constants and width simple ISA 4: mov-to-register 2 irmovq $constant, %ryy rrmovq %rxx, %ryy mrmovq 10(%rXX),
More informationWrap-Up. CS:APP Chapter 4 Computer Architecture. Overview. Performance Metrics. CPI for PIPE. Randal E. Bryant. Carnegie Mellon University
CS:APP Chapter 4 Computer Architecture rap-up Overview rap-up of PIP esign Performance analysis etch stage design xceptional conditions odern High-Performance Processors Out-of-order execution Randal.
More informationWrap-Up. Lecture 10 Computer Architecture V. Performance Metrics. Overview. CPI for PIPE (Cont.) CPI for PIPE. Clock rate
Lecture 10 Computer Architecture V Overview rap-up of PIP esign Performance analysis etch stage design xceptional conditions rap-up Performance etrics Clock rate easured in egahertz or Gigahertz unction
More informationWrap-Up. Lecture 10 Computer Architecture V. Performance Metrics. Overview. CPI for PIPE (Cont.) CPI for PIPE. Clock rate
Lecture 10 Computer Architecture V Overview rap-up of PIP esign Performance analysis etch stage design xceptional conditions odern High-Performance Processors Out-of-order execution rap-up 10 1 atorarkitektur
More informationcmovxx ra, rb 2 fn ra rb irmovl V, rb rb V rmmovl ra, D(rB) 4 0 ra rb D mrmovl D(rB), ra 5 0 ra rb D OPl ra, rb 6 fn ra rb jxx Dest 7 fn Dest
Instruction Set Architecture Instruction Set Architecture CSci 2021: Machine Architecture and Organization Lecture #16, February 25th, 2015 Your instructor: Stephen McCamant Based on slides originally
More informationSystems I. Pipelining IV
Systems I Pipelining IV Topics Implementing pipeline control Pipelining and performance analysis Implementing Pipeline Control W icode val val dst dst _icode icode Bch val vala dst dst e_bch Pipe control
More informationCS:APP3e Web Aside ARCH:HCL: HCL Descriptions of Y86-64 Processors
CS:APP3e Web Aside ARCH:HCL: HCL Descriptions of Y86-64 Processors Randal E. Bryant David R. O Hallaron December 29, 2014 Notice The material in this document is supplementary material to the book Computer
More informationbitwise (finish) / SEQ part 1
bitwise (finish) / SEQ part 1 1 Changelog 1 Changes made in this version not seen in first lecture: 14 September 2017: slide 16-17: the x86 arithmetic shift instruction is sar, not sra last time 2 bitwise
More informationGiving credit where credit is due
CSC 230J Computer Organization Processor Architecture VI: rap-up r. Steve Goddard goddard@cse.unl.edu Giving credit where credit is due ost of slides for this lecture are based on slides created by r.
More informationSystems I. Pipelining IV
Systems I Pipelining IV Topics Implementing pipeline control Pipelining and performance analysis Implementing Pipeline Control W icode val val dst dst _icode icode Bch val vala dst dst e_bch Pipe control
More informationCS 3330: SEQ part September 2016
1 CS 3330: SEQ part 2 15 September 2016 Recall: Timing 2 compute new values between rising edges compute compute compute compute clock signal registers, memories change at rising edges next value register
More informationCPSC 313, Summer 2013 Final Exam Solution Date: June 24, 2013; Instructor: Mike Feeley
CPSC 313, Summer 2013 Final Exam Solution Date: June 24, 2013; Instructor: Mike Feeley 1 (10 marks) This question is concerned with the general principles of pipelining, dependencies and hazards. First,
More informationDatorarkitektur, 2009 Tentamen
Namn: Personnummer: Datorarkitektur, 2009 Tentamen 2009-03-13 Instructions: Make sure that your exam is not missing any sheets, then write your full name on the front. Write your answers in the space provided
More informationComputer Systems: A Programmer s Perspective Instructor s Solution Manual 1
Computer Systems: A Programmer s Perspective Instructor s Solution Manual 1 Randal E. Bryant David R. O Hallaron December 4, 2003 1 Copyright c 2003, R. E. Bryant, D. R. O Hallaron. All rights reserved.
More informationMidterm Exam CSC February 2009
Midterm Exam CSC 252 26 February 2009 Directions; PLEASE READ This exam has 7 questions, all of which have subparts. Each question indicates its point value. The total is 90 points. Questions 3(d) and
More informationPipelining 4 / Caches 1
Pipelining 4 / Caches 1 1 2 after forwarding/prediction where do we still need to stall? memory output needed in fetch ret followed by anything memory output needed in exceute mrmovq or popq + use (in
More information3 (5 marks) RISC instruction sets do not allow an ALU operation (e.g., addl) to read from memory. 2a Why is the memory stage after the execute stage?
CPSC 313, Winter 2016 Term 1 Sample Solution Date: October 2016; Instructor: Mike Feeley 1 (5 marks) The classic RISC pipeline we are studying consists of 5 stages. Briefly explain the role of each stage
More informationPipelining 3: Hazards/Forwarding/Prediction
Pipelining 3: Hazards/Forwarding/Prediction 1 pipeline stages 2 fetch instruction memory, most PC computation decode reading register file execute computation, condition code read/write memory memory read/write
More informationCPSC 121: Models of Computation Lab #9: A Working Computer
CPSC 121: Models of Computation Lab #9: A Working Computer Objectives In this lab, we revisit the Y86 processor, which you saw components of in labs 4 and 6. Recall that in lab 4, you learned about the
More informationIntel x86-64 and Y86-64 Instruction Set Architecture
CSE 2421: Systems I Low-Level Programming and Computer Organization Intel x86-64 and Y86-64 Instruction Set Architecture Presentation J Read/Study: Bryant 3.1 3.5, 4.1 Gojko Babić 03-07-2018 Intel x86
More informationAssembly I: Basic Operations. Jo, Heeseung
Assembly I: Basic Operations Jo, Heeseung Moving Data (1) Moving data: movl source, dest Move 4-byte ("long") word Lots of these in typical code Operand types Immediate: constant integer data - Like C
More informationCSC 252: Processor Architecture
S 252: Processor rchitecture Hardware omponents of a omputer System Processor atapath ontrol Input and Output devices 2/21/2008 1 2/21/2008 2 The Principle of bstraction Grouping principle Levels/layers
More informationadministrivia today start assembly probably won t finish all these slides Assignment 4 due tomorrow any questions?
administrivia today start assembly probably won t finish all these slides Assignment 4 due tomorrow any questions? exam on Wednesday today s material not on the exam 1 Assembly Assembly is programming
More informationASSEMBLY I: BASIC OPERATIONS. Jo, Heeseung
ASSEMBLY I: BASIC OPERATIONS Jo, Heeseung MOVING DATA (1) Moving data: movl source, dest Move 4-byte ("long") word Lots of these in typical code Operand types Immediate: constant integer data - Like C
More informationlast time Exam Review on the homework on office hour locations hardware description language programming language that compiles to circuits
last time Exam Review hardware description language programming language that compiles to circuits stages as conceptual division not the order things happen easier to figure out wiring stage-by-stage?
More informationData Hazard vs. Control Hazard. CS429: Computer Organization and Architecture. How Do We Fix the Pipeline? Possibilities: How Do We Fix the Pipeline?
Data Hazard vs. Control Hazard CS429: Computer Organization and Architecture There are two types of hazards that interfere with flow through a pipeline. Dr. Bill Young Department of Computer Science University
More informationCS429: Computer Organization and Architecture
CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: April 4, 2018 at 07:36 CS429 Slideset 16: 1 Data Hazard vs. Control
More informationProcess Layout and Function Calls
Process Layout and Function Calls CS 6 Spring 07 / 8 Process Layout in Memory Stack grows towards decreasing addresses. is initialized at run-time. Heap grow towards increasing addresses. is initialized
More informationAssembly I: Basic Operations. Computer Systems Laboratory Sungkyunkwan University
Assembly I: Basic Operations Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Moving Data (1) Moving data: movl source, dest Move 4-byte ( long )
More informationCS241 Computer Organization Spring Addresses & Pointers
CS241 Computer Organization Spring 2015 Addresses & Pointers 2-24 2015 Outline! Addresses & Pointers! leal - load effective address! Condition Codes & Jumps! conditional statements: if-then-else! conditional
More informationSecond Part of the Course
CSC 2400: Computer Systems Towards the Hardware 1 Second Part of the Course Toward the hardware High-level language (C) assembly language machine language (IA-32) 2 High-Level Language g Make programming
More informationCS241 Computer Organization Spring 2015 IA
CS241 Computer Organization Spring 2015 IA-32 2-10 2015 Outline! Review HW#3 and Quiz#1! More on Assembly (IA32) move instruction (mov) memory address computation arithmetic & logic instructions (add,
More informationRecitation #6. Architecture Lab
18-600 Recitation #6 Architecture Lab Overview Where we are Archlab Intro Optimizing a Y86 program Intro to HCL Optimizing Processor Design Where we Are Archlab Intro Part A: write and simulate Y86-64
More informationCS 261 Fall Mike Lam, Professor. CPU architecture
CS 261 Fall 2017 Mike Lam, Professor CPU architecture Topics CPU stages and design Pipelining Y86 semantics CPU overview A CPU consists of Combinational circuits for computation Sequential circuits for
More informationCISC 360 Midterm Exam - Review Alignment
CISC 360 Midterm Exam - Review Alignment Michela Taufer October 14, 2008 Powerpoint Lecture Notes for Computer Systems: A Programmer's Perspective, R. Bryant and D. O'Hallaron, Prentice Hall, CS:APP 2003
More informationProcess Layout, Function Calls, and the Heap
Process Layout, Function Calls, and the Heap CS 6 Spring 20 Prof. Vern Paxson TAs: Devdatta Akhawe, Mobin Javed, Matthias Vallentin January 9, 20 / 5 2 / 5 Outline Process Layout Function Calls The Heap
More informationComputer Organization: A Programmer's Perspective
A Programmer's Perspective Instruction Set Architecture Gal A. Kaminka galk@cs.biu.ac.il Outline: CPU Design Background Instruction sets Logic design Sequential Implementation A simple, but not very fast
More informationComputer Architecture I: Outline and Instruction Set Architecture. CENG331 - Computer Organization. Murat Manguoglu
Computer Architecture I: Outline and Instruction Set Architecture CENG331 - Computer Organization Murat Manguoglu Adapted from slides of the textbook: http://csapp.cs.cmu.edu/ Outline Background Instruction
More informationSystem Programming and Computer Architecture (Fall 2009)
System Programming and Computer Architecture (Fall 2009) Recitation 2 October 8 th, 2009 Zaheer Chothia Email: zchothia@student.ethz.ch Web: http://n.ethz.ch/~zchothia/ Topics for Today Classroom Exercise
More information