CS:APP Chapter 4 Computer Architecture Sequential Implementation
|
|
- Osborn Ferguson
- 6 years ago
- Views:
Transcription
1 CS:APP Chapter 4 Computer Architecture Sequential Implementation Randal E. Bryant Carnegie Mellon University CS:APP
2 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 fn ra rb Dest fn Dest Dest Dest ra ra ra ra 2 CS:APP
3 Building Blocks fun Combinational Logic Compute Boolean functions of inputs Continuously respond to input changes Operate on data and implement control A B A L U 0 MUX 1 = Storage Elements Store bits Addressable memories vala srca valb A Register file W valw dstw Non-addressable registers srcb B Clock Loaded only as clock rises Clock 3 CS:APP
4 Hardware Control Language Very simple hardware description language Can only express limited aspects of hardware operation Parts we want to explore and modify Data Types : Boolean,,, : words,,, Statements Does not specify word size---bytes, 32-bit words, 4 CS:APP
5 HCL Operations Classify by type of value returned Boolean Expressions Logic Operations,, Word Comparisons,,,,, Set Membership Word Expressions» Same as Case expressions Evaluate test expressions,,, in sequence Return word expression,,, for first successful test 5 CS:APP
6 SEQ Hardware Structure new vale, valm Write back valm State Program counter register () Condition code register (CC) Register File Memories Access same memory space Data Data memory memory Addr, Data vale Bch CC CC alua, alub Data: for reading/writing program data Instruction: for reading instructions Instruction Flow Read instruction at address specified by Process through stages Update program counter ALU ALU vala, valb srca, srcb dsta, dstb A B Register RegisterM file file E icode ifun ra, rb valc valp, Fetch Instruction Instruction memory memory increment increment 6 CS:APP
7 new SEQ Stages vale, valm Write back valm Fetch Read instruction from instruction memory Data Data memory memory Addr, Data Read program registers vale Bch CC CC alua, alub Compute value or address vala, valb Read or write data icode ifun ra, rb valc B valp, Fetch A Register RegisterM file file E Write program registers srca, srcb dsta, dstb Write Back ALU ALU Instruction Instruction memory memory increment increment Update program counter 7 CS:APP
8 Instruction Decoding Optional Optional ra rb D icode ifun ra rb valc Instruction Format Instruction byte Optional register byte Optional constant word icode:ifun ra:rb valc 8 CS:APP
9 Executing Arith./Logical Operation ra rb fn ra rb Fetch Read 2 bytes Read operand registers Perform operation Set condition codes Do nothing Write back Update register Update Increment by 2 9 CS:APP
10 Stage Computation: Arith/Log. Ops Fetch OPl ra, rb icode:ifun M 1 [] ra:rb M 1 [+1] Read instruction byte Read register byte Write back update valp +2 vala R[rA] valb R[rB] vale valb OP vala Set CC R[rB] vale valp Compute next Read operand A Read operand B Perform ALU operation Set condition code register Write back result Update Formulate instruction execution as sequence of simple steps Use same general form for all instructions 10 CS:APP
11 Executing ra D rb) ra rb D Fetch Read 6 bytes Read operand registers Compute effective address Write to memory Write back Do nothing Update Increment by 6 11 CS:APP
12 Stage Computation: Fetch ra, D(rB) icode:ifun M 1 [] ra:rb M 1 [+1] valc M 4 [+2] valp +6 vala R[rA] valb R[rB] vale valb + valc Read instruction byte Read register byte Read displacement D Compute next Read operand A Read operand B Compute effective address Write back update M 4 [vale] vala valp Write value to memory Update Use ALU for address computation 12 CS:APP
13 Executing ra ra Fetch Read 2 bytes Read stack pointer Increment stack pointer by 4 Read from old stack pointer Write back Update stack pointer Write result to register Update Increment by 2 13 CS:APP
14 Stage Computation: Fetch ra icode:ifun M 1 [] ra:rb M 1 [+1] Read instruction byte Read register byte Write back update valp +2 vala R[ ] valb R [ ] vale valb + 4 valm M 4 [vala] R[ ] vale R[rA] valm valp Compute next Read stack pointer Read stack pointer Increment stack pointer Read from stack Update stack pointer Write back result Update Use ALU to increment stack pointer Must update two registers Popped value New stack pointer 14 CS:APP
15 Executing Jumps Dest fn Dest fall thru: Not taken target: Taken Fetch Read 5 bytes Increment by 5 Do nothing Determine whether to take branch based on jump condition and condition codes Do nothing Write back Do nothing Update Set to Dest if branch taken or to incremented if not branch 15 CS:APP
16 Stage Computation: Jumps jxx Dest icode:ifun M 1 [] Read instruction byte Fetch valc M 4 [+1] valp +5 Read destination address Fall through address Write back update Bch Cond(CC,ifun) Bch? valc : valp Take branch? Update Compute both addresses Choose based on setting of condition codes and branch condition 16 CS:APP
17 Executing Dest Dest return: target: Fetch Read 5 bytes Increment by 5 Read stack pointer Decrement stack pointer by 4 Write incremented to new value of stack pointer Write back Update stack pointer Update Set to Dest 17 CS:APP
18 Stage Computation: Dest icode:ifun M 1 [] Read instruction byte Fetch Write back update valc M 4 [+1] valp +5 valb R[ ] vale valb + 4 M 4 [vale] valp R[ ] vale valc Read destination address Compute return point Read stack pointer Decrement stack pointer Write return value on stack Update stack pointer Set to destination Use ALU to decrement stack pointer Store incremented 18 CS:APP
19 Executing return: Fetch Read 1 byte Read stack pointer Increment stack pointer by 4 Read return address from old stack pointer Write back Update stack pointer Update Set to return address 19 CS:APP
20 Stage Computation: Fetch icode:ifun M 1 [] Read instruction byte Write back update vala R[ ] valb R[ ] vale valb + 4 valm M 4 [vala] R[ ] vale valm Read operand stack pointer Read operand stack pointer Increment stack pointer Read return address Update stack pointer Set to return address Use ALU to increment stack pointer Read return address from memory 20 CS:APP
21 Computation Steps Fetch Write back update icode,ifun ra,rb valc valp vala, srca valb, srcb vale Cond code valm dste dstm 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 R[rB] vale valp Read instruction byte Read register byte [Read constant word] Compute next Read operand A Read operand B Perform ALU operation Set condition code register [ read/write] Write back ALU result [Write back memory result] Update All instructions follow same general pattern Differ in what gets computed on each step 21 CS:APP
22 Computation Steps Dest icode,ifun icode:ifun M 1 [] Read instruction byte Fetch ra,rb valc valc M 4 [+1] [Read register byte] Read constant word valp valp +5 Compute next vala, srca valb, srcb valb R[ ] [Read operand A] Read operand B vale Cond code vale valb + 4 Perform ALU operation [Set condition code reg.] Write valm dste M 4 [vale] valp R[ ] vale [ read/write] [Write back ALU result] back update dstm valc Write back memory result Update All instructions follow same general pattern Differ in what gets computed on each step 22 CS:APP
23 Computed Values Fetch icode ifun ra rb valc valp srca srcb dste dstm vala valb Instruction code Instruction function Instr. Register A Instr. Register B Instruction constant Incremented Register ID A Register ID B Destination Register E Destination Register M Register value A Register value B vale Bch ALU result Branch flag valm Value from memory 23 CS:APP
24 SEQ Hardware Key Blue boxes: predesigned hardware blocks E.g., memories, ALU Gray boxes: control logic Describe in HCL White ovals: labels for signals Thick lines: 32-bit word values Thin lines: 4-8 bit values Dotted lines: 1-bit values Fetch Bch CC icode ifun ra Mem. control ALU A Instruction memory new New rb read write vale ALU valc Data memory Addr ALU B valm data out Data valp vala increment ALU fun. valb A B M Register file E dste dstm srca srcb dste dstm srca srcb Write back 24 CS:APP
25 Fetch Logic icode ifun ra rb valc valp Instr valid Need valc Need regids increment Split Byte 0 Align Bytes 1-5 Instruction memory Predefined Blocks : Register containing Instruction memory: Read 6 bytes ( to +5) Split: Divide instruction byte into icode and ifun Align: Get fields for ra, rb, and valc 25 CS:APP
26 Fetch Logic icode ifun ra rb valc valp Instr valid Need valc Need regids increment Split Byte 0 Align Bytes 1-5 Instruction memory Control Logic Instr. Valid: Is this instruction valid? Need regids: Does this instruction have a register bytes? Need valc: Does this instruction have a constant word? 26 CS:APP
27 Fetch Control Logic ra rb ra rb V rb rb V ra D rb ra rb D D rb ra ra rb D ra rb fn ra rb Dest fn Dest Dest Dest ra ra ra ra 27 CS:APP
28 Logic Register File Read ports A, B Write ports E, M Addresses are register IDs or 8 (no access) vala valb A B M Register file E dste dstm srca srcb valm vale dste dstm srca srcb Control Logic srca, srcb: read port addresses icode ra rb dsta, dstb: write port addresses 28 CS:APP
29 A Source OPl ra, rb vala R[rA] ra, D(rB) vala R[rA] ra vala R[ ] jxx Dest Dest vala R[ ] Read operand A Read operand A Read stack pointer No operand No operand Read stack pointer 29 CS:APP
30 E Destination Write-back Write-back Write-back Write-back Write-back Write-back OPl ra, rb R[rB] vale ra, D(rB) ra R[ ] vale jxx Dest Dest R[ ] vale R[ ] vale Write back result None Update stack pointer None Update stack pointer Update stack pointer 30 CS:APP
31 Logic Units ALU CC Implements 4 required functions Generates condition code values Register with 3 condition code bits bcond Control Logic Computes branch flag Set CC: Should condition code register be loaded? ALU A: Input A to ALU ALU B: Input B to ALU ALU fun: What function should ALU compute? 31 CS:APP Bch bcond CC Set CC ALU A vale ALU ALU B icode ifun valc vala valb ALU fun.
32 ALU A Input OPl ra, rb vale valb OP vala ra, D(rB) vale valb + valc ra vale valb + 4 jxx Dest Dest vale valb + 4 Perform ALU operation Compute effective address Increment stack pointer No operation Decrement stack pointer vale valb + 4 Increment stack pointer 32 CS:APP
33 ALU Operation OPl ra, rb vale valb OP vala Perform ALU operation ra, D(rB) vale valb + valc ra vale valb + 4 jxx Dest Dest vale valb + 4 Compute effective address Increment stack pointer No operation Decrement stack pointer vale valb + 4 Increment stack pointer 33 CS:APP
34 Logic valm Reads or writes memory word Control Logic Mem. read: should word be read? Mem. write: should word be written? Mem. addr.: Select address icode Mem. read Mem. write read write Data memory Mem addr vale data out Mem data data in vala valp Mem. data.: Select data 34 CS:APP
35 Address OPl ra, rb No operation ra, D(rB) M 4 [vale] vala ra valm M 4 [vala] jxx Dest Dest M 4 [vale] valp valm M 4 [vala] Write value to memory Read from stack No operation Write return value on stack Read return address 35 CS:APP
36 Read OPl ra, rb ra, D(rB) M 4 [vale] vala ra valm M 4 [vala] jxx Dest Dest M 4 [vale] valp valm M 4 [vala] No operation Write value to memory Read from stack No operation Write return value on stack Read return address 36 CS:APP
37 Update Logic New Select next value of New icode Bch valc valm valp 37 CS:APP
38 Update update update OPl ra, rb valp ra, D(rB) valp Update Update ra update valp Update update jxx Dest Bch? valc : valp Update Dest update valc Set to destination update valm Set to return address 38 CS:APP
39 SEQ Operation State register Combinational Logic CC Read Read Ports Data memory Register file Write Write Ports Cond. Code register Data memory Register file All updated as clock rises Combinational Logic ALU Control logic reads Instruction memory Register file Data memory 39 CS:APP
40 SEQ Operation #2 Clock Cycle 1: Cycle 2: Cycle 3: Cycle 4: Cycle 1 Cycle 2 Cycle 3 Cycle 4 Combinational Logic CC Read Read Ports Data memory Register file Write Write Ports state set according to second instruction combinational logic starting to react to state changes 40 CS:APP
41 SEQ Operation #3 Clock Cycle 1: Cycle 2: Cycle 3: Cycle 4: Cycle 1 Cycle 2 Cycle 3 Cycle 4 Combinational Logic CC Read Read Ports Data memory Register file Write Write Ports state set according to second instruction combinational logic generates results for instruction 41 CS:APP
42 SEQ Operation #4 Clock Cycle 1: Cycle 2: Cycle 3: Cycle 4: Cycle 1 Cycle 2 Cycle 3 Cycle 4 Combinational Logic CC Read Read Ports Data memory Register file Write Write Ports state set according to instruction combinational logic starting to react to state changes 42 CS:APP
43 SEQ Operation #5 Clock Cycle 1: Cycle 2: Cycle 3: Cycle 4: Cycle 1 Cycle 2 Cycle 3 Cycle 4 Combinational Logic CC Read Write Data memory Read Write Ports Ports Register file state set according to instruction combinational logic generates results for instruction 43 CS:APP
44 SEQ Summary Implementation Express every instruction as series of simple steps Follow same general flow for each instruction type Assemble registers, memories, predesigned combinational blocks Connect with control logic Limitations Too slow to be practical In one cycle, must propagate through instruction memory, register file, ALU, and data memory Would need to run clock very slowly Hardware units only active for fraction of clock cycle 44 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 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 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 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 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 HW #4 Due tomorrow tonight HW #5 up soon ing: 4.1-4.3 Today Review
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 informationMeltdown and Spectre: Complexity and the death of security
Meltdown and Spectre: Complexity and the death of security May 8, 2018 Meltdown and Spectre: Wait, my computer does what? May 8, 2018 Meltdown and Spectre: Whoever thought that was a good idea? May 8,
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 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 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 informationSEQ without stages. valc register file ALU. Stat ZF/SF. instr. length PC+9. R[srcA] R[srcB] srca srcb dstm dste. Data in Data out. Instr. Mem.
Exam Review 1 SEQ without stages 2 0xF 0xF %rsp valc register file PC+9 PC + Instr. Mem. instr. length ra rb %rsp 0xF 0xF %rsp srca srcb dstm dste R[srcA] R[srcB] next R[dstM] next R[dstE] 0 8 ALU alua
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 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 informationMulti-cycle Approach. Single cycle CPU. Multi-cycle CPU. Requires state elements to hold intermediate values. one clock cycle or instruction
Multi-cycle Approach Single cycle CPU State element Combinational logic State element clock one clock cycle or instruction Multi-cycle CPU Requires state elements to hold intermediate values State Element
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 informationComputer Architecture 2/26/01 Lecture #
Computer Architecture 2/26/01 Lecture #9 16.070 On a previous lecture, we discussed the software development process and in particular, the development of a software architecture Recall the output of the
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 informationInstruction Set Principles and Examples. Appendix B
Instruction Set Principles and Examples Appendix B Outline What is Instruction Set Architecture? Classifying ISA Elements of ISA Programming Registers Type and Size of Operands Addressing Modes Types of
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 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 adapted by Jason Fritts http://csapp.cs.cmu.edu CS:APP2e Hardware Architecture - using Y86 ISA For learning aspects
More informationDigital 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
More informationLecture 12: Single-Cycle Control Unit. Spring 2018 Jason Tang
Lecture 12: Single-Cycle Control Unit Spring 2018 Jason Tang 1 Topics Control unit design Single cycle processor Control unit circuit implementation 2 Computer Organization Computer Processor Memory Devices
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 informationProcessor (multi-cycle)
CS359: Computer Architecture Processor (multi-cycle) Yanyan Shen Department of Computer Science and Engineering Five Instruction Steps ) Instruction Fetch ) Instruction Decode and Register Fetch 3) R-type
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 informationF28HS Hardware-Software Interface: Systems Programming
F28HS Hardware-Software Interface: Systems Programming Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 2 2017/18 0 No proprietary software has
More informationCO Computer Architecture and Programming Languages CAPL. Lecture 18 & 19
CO2-3224 Computer Architecture and Programming Languages CAPL Lecture 8 & 9 Dr. Kinga Lipskoch Fall 27 Single Cycle Disadvantages & Advantages Uses the clock cycle inefficiently the clock cycle must be
More informationCENG 450: Instruction Set (16-bit)
CENG 450: Instruction Set (16-bit) In this lab, you will design and implement a pipelined 16-bit processor on FPGA. The instructions set of the processor is as follows: Instructions Set We use a RISC-like
More informationCPU Organization (Design)
ISA Requirements CPU Organization (Design) Datapath Design: Capabilities & performance characteristics of principal Functional Units (FUs) needed by ISA instructions (e.g., Registers, ALU, Shifters, Logic
More informationDesign of Digital Circuits 2017 Srdjan Capkun Onur Mutlu (Guest starring: Frank K. Gürkaynak and Aanjhan Ranganathan)
Microarchitecture Design of Digital Circuits 27 Srdjan Capkun Onur Mutlu (Guest starring: Frank K. Gürkaynak and Aanjhan Ranganathan) http://www.syssec.ethz.ch/education/digitaltechnik_7 Adapted from Digital
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 informationComputer Organization. Structure of a Computer. Registers. Register Transfer. Register Files. Memories
Computer Organization Structure of a Computer Computer design as an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + Control = finite
More informationChapter 4. The Processor. Computer Architecture and IC Design Lab
Chapter 4 The Processor Introduction CPU performance factors CPI Clock Cycle Time Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware We will examine two MIPS
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 information361 datapath.1. Computer Architecture EECS 361 Lecture 8: Designing a Single Cycle Datapath
361 datapath.1 Computer Architecture EECS 361 Lecture 8: Designing a Single Cycle Datapath Outline of Today s Lecture Introduction Where are we with respect to the BIG picture? Questions and Administrative
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 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 informationBasic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control,
UNIT - 7 Basic Processing Unit: Some Fundamental Concepts, Execution of a Complete Instruction, Multiple Bus Organization, Hard-wired Control, Microprogrammed Control Page 178 UNIT - 7 BASIC PROCESSING
More informationDesigning an Instruction Set
Designing an Instruction Set Nerd Chef at work. move flour,bowl add milk,bowl add egg,bowl move bowl,mixer rotate mixer... WARD & HALSTEAD 6.004 NERD KIT Handouts: Lecture Slides, β docs L12 Instruction
More informationRISC Design: Multi-Cycle Implementation
RISC Design: Multi-Cycle Implementation Virendra Singh Associate Professor Computer Architecture and Dependable Systems Lab Department of Electrical Engineering Indian Institute of Technology Bombay http://www.ee.iitb.ac.in/~viren/
More informationCS:APP Chapter 4 Computer Architecture Logic Design Randal E. Bryant Carnegie Mellon University
S:PP hapter 4 omputer rchitecture Logic esign Randal E. Bryant arnegie Mellon University http://csapp.cs.cmu.edu S:PP Overview of Logic esign Fundamental Hardware Requirements ommunication How to get values
More informationWilliam Stallings Computer Organization and Architecture
William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations Rev. 3.2 (2009-10) by Enrico Nardelli 16-1 Execution of the Instruction Cycle It has many elementary phases,
More informationInitial Design of an Alpha Processor. March 12, 1998 (Revised 3/16/98)
Initial Design of an Alpha Processor March 12, 1998 (Revised 3/16/98) Topics Objective Instruction formats Instruction processing Principles of pipelining Inserting pipe registers Objective Design Processor
More informationCOMP303 - Computer Architecture Lecture 8. Designing a Single Cycle Datapath
COMP33 - Computer Architecture Lecture 8 Designing a Single Cycle Datapath The Big Picture The Five Classic Components of a Computer Processor Input Control Memory Datapath Output The Big Picture: The
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 information