Computer Science 104:! Y86 & Single Cycle Processor Design!
|
|
- Jesse May
- 6 years ago
- Views:
Transcription
1 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!
2 Instruction Set Architecture! Application! Program! Compiler! OS! ISA! CPU! Design! Circuit! Design! Chip! Layout! 3! CS:APP! Y86: A simpler Instruction Set! 4! CS:APP!
3 Y86 Processor State! Program registers! %eax %ecx %edx %ebx %esi %edi %esp %ebp Condition codes! OF ZF SF PC! Memory! Program Registers! Same 8 as with IA32. Each 32 bits! Condition Codes! Single-bit flags set by arithmetic or logical instructions!» OF: Overflow!ZF: Zero!SF:Negative! Program Counter! Indicates address of instruction! Memory! Byte-addressable storage array! Words stored in little-endian byte order! 5! CS:APP! Y86 Instructions! 6! CS:APP!
4 Encoding Registers! %eax %ecx %edx %ebx %esi %edi %esp %ebp ! CS:APP! Instruction Example! Generic Form! Encoded Representation! addl ra, rb! 6 0 ra!rb! 8! CS:APP!
5 Arithmetic and Logical Operations! Instruction Code! Add! addl ra, rb! Subtract (ra from rb)! And! subl ra, rb! Function Code! 6 0 ra!rb! 6 1 ra!rb! Refer to generically as OPl! Encodings differ only by function code! Low-order 4 bytes in first instruction word! Set condition codes as side effect! andl ra, rb! 6 2 ra!rb! Exclusive-Or! xorl ra, rb! 6 3 ra!rb! 9! CS:APP! Move Operations! rrmovl ra, rb! 2 0 ra!rb! Register --> Register! irmovl V, rb! rb! V! Immediate --> Register! rmmovl ra, D(rB)! 4 0 ra!rb! D! Register --> Memory! mrmovl D(rB), ra 5 0 ra!rb! D! Memory --> Register! Like the IA32 movl instruction! Simpler format for memory addresses! Give different names to keep them distinct! 10! CS:APP!
6 Move Instruction Examples! IA32! Y86! Encoding! movl $0xabcd, %edx! irmovl $0xabcd, %edx! cd ab 00 00! movl %esp, %ebx! rrmovl %esp, %ebx! 20 43! movl -12(%ebp),%ecx! movl %esi,0x41c(%esp)! mrmovl -12(%ebp),%ecx rmmovl %esi,0x41c(%esp) f4 ff ff ff! c ! movl $0xabcd, (%eax)! movl %eax, 12(%eax,%edx)! movl (%ebp,%eax,4),%ecx!!!!!!! 11! CS:APP! Jump Instructions! Jump Unconditionally! jmp Dest! 7 0 Dest! Jump When Less or Equal! jle Dest! 7 1 Dest! Jump When Less! jl Dest! 7 2 Dest! Jump When Equal! je Dest! 7 3 Dest! Jump When Not Equal! jne Dest! 7 4 Dest! Jump When Greater or Equal! Refer to generically as jxx! Encodings differ only by function code! Based on values of condition codes! Same as IA32 counterparts! Encode full destination address! Unlike PC-relative addressing seen in IA32! jge Dest! 7 5 Dest! Jump When Greater! jg Dest! 7 6 Dest! 12! CS:APP!
7 Y86 Program Stack! Stack Bottom! Region of memory holding program data! Used in Y86 (and IA32) for supporting procedure calls! Increasing! Addresses! Stack Top! %esp Stack top indicated by %esp Address of top stack element! Stack grows toward lower addresses! Top element is at highest address in the stack! When pushing, must first decrement stack pointer! When popping, increment stack pointer! 13! CS:APP! Stack Operations! pushl ra! a 0 ra! 8 Decrement %esp by 4! Store word from ra to memory at %esp Like IA32! popl ra! b 0 ra! 8 Read word from memory at %esp Save in ra! Increment %esp by 4! Like IA32! 14! CS:APP!
8 Subroutine Call and Return! call Dest! 8 0 Dest! Push address of next instruction onto stack! Start executing instructions at Dest! Like IA32! ret! 9 0 Pop value from stack! Use as address for next instruction! Like IA32! 15! CS:APP! Miscellaneous Instructions! nop! 0 0 Donʼt do anything! halt! 1 0 Stop executing instructions! IA32 has comparable instruction, but canʼt execute it in user mode! 16! CS:APP!
9 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 17! CS:APP! Building Blocks! fun! A! B! A! L! U! 0! MUX! =! 1! vala! srca! valb! A! Register! file! valw! W! dstw! srcb! B! Clock! Clock! 18! CS:APP!
10 SEQ Hardware Structure PC! (Abstract)! Write back! Memory! newpc! vale!,!valm! Addr!, Data! valm! Data! memory! vale! Bch! CC! alua!,!alub! ALU! vala!,!valb! icode!, ifun! ra!,!!rb! valc! Instruction! memory! srca!,!srcb! dsta!,!dstb! valp! PC! increment! Register! A! B! M! file! E! 19! CS:APP! PC! SEQ Stages! PC! Write back! newpc! vale!,!valm! valm! Memory! Addr!, Data! Data! memory! vale! Bch! CC! alua!,!alub! ALU! icode!, ifun! ra!,!!rb! valc! Instruction! memory! srca!,!srcb! dsta!,!dstb! vala!,!valb! valp! PC! increment! A! B! M! E! Register! file! 20! CS:APP! PC!
11 Instruction Decoding! Optional! Optional! 5 0 ra! rb! D! icode! ifun! ra! rb! valc! 21! CS:APP! Executing Arith./Logical Operation! OPl ra, rb! 6 fn! ra!rb! 22! CS:APP!
12 Stage Computation: Arith/Log. Ops! OPl ra, rb! icode:ifun M 1 [PC]! ra:rb M 1 [PC+1]! Read instruction byte! Read register byte! Memory! Write! back! PC update! valp PC+2! vala R[rA]! valb R[rB]! vale valb OP vala! Set CC! R[rB] vale! PC valp! Compute next PC! Read operand A! Read operand B! Perform ALU operation! Set condition code register! Write back result! Update PC! Formulate instruction execution as sequence of simple steps! Use same general form for all instructions; often called Register Transfer Language (RTL)! 23! CS:APP! Executing rmmovl rmmovl ra, D(rB)! 4 0 ra!rb! D! 24! CS:APP!
13 Stage Computation: rmmovl rmmovl ra, D(rB)! icode:ifun M 1 [PC]! ra:rb M 1 [PC+1]! valc M 4 [PC+2]! valp PC+6! vala R[rA]! valb R[rB]! vale valb + valc! Read instruction byte! Read register byte! Read displacement D! Compute next PC! Read operand A! Read operand B! Compute effective address! Memory! M 4 [vale] vala! Write value to memory! Write! back! PC update! PC valp! Update PC! Use ALU for address computation! 25! CS:APP! Executing popl popl ra! b 0 ra! 8 26! CS:APP!
14 Stage Computation: popl popl ra! icode:ifun M 1 [PC]! ra:rb M 1 [PC+1]! Read instruction byte! Read register byte! valp PC+2! vala R[%esp]! valb R [%esp]! vale valb + 4! Compute next PC! Read stack pointer! Read stack pointer! Increment stack pointer! Memory! valm M 4 [vala]! Read from stack! Write! R[%esp] vale! Update stack pointer! back! R[rA] valm! PC update! PC valp! Write back result! Update PC! Use ALU to increment stack pointer! Must update two registers! Popped value! 27! New stack pointer! CS:APP! Executing Jumps! jxx Dest! 7 fn! Dest! fall thru:! XX XX Not taken! target:! XX XX Taken! 28! CS:APP!
15 Stage Computation: Jumps! jxx Dest! icode:ifun M 1 [PC]! valc M 4 [PC+1]! valp PC+5! Read instruction byte! Read destination address! Fall through address! Memory! Write! back! PC update! Bch Cond(CC,ifun)! PC Bch? valc : valp! Take branch?! Update PC! Compute both addresses! Choose based on setting of condition codes and branch condition! 29! CS:APP! Executing call call Dest! 8 0 Dest! return:! XX XX target:! XX XX 30! CS:APP!
16 Stage Computation: call call Dest! icode:ifun M 1 [PC]! Read instruction byte! valc M 4 [PC+1]! valp PC+5! valb R[%esp]! vale valb + 4! Read destination address! Compute return point! Read stack pointer! Decrement stack pointer! Memory! M 4 [vale] valp! Write return value on stack! Write! R[%esp] vale! Update stack pointer! back! PC update! PC valc! Set PC to destination! Use ALU to decrement stack pointer! Store incremented PC! 31! CS:APP! Executing ret ret! 9 0 return:! XX XX 32! CS:APP!
17 Stage Computation: ret ret icode:ifun M 1 [PC]! Read instruction byte! Memory! Write! back! PC update! vala R[%esp]! valb R[%esp]! vale valb + 4! valm M 4 [vala]! R[%esp] vale! PC valm! Read operand stack pointer! Read operand stack pointer! Increment stack pointer! Read return address! Update stack pointer! Set PC to return address! Use ALU to increment stack pointer! Read return address from memory! 33! CS:APP! Computation Steps! icode,ifun! OPl ra, rb! icode:ifun M 1 [PC]! Read instruction byte! ra,rb! ra:rb M 1 [PC+1]! Read register byte! valc! [Read constant word]! valp! valp PC+2! Compute next PC! vala, srca! vala R[rA]! Read operand A! valb, srcb! valb R[rB]! Read operand B! vale! vale valb OP vala! Perform ALU operation! Cond code! Set CC! Set condition code register! Memory! valm! [Memory read/write]! Write! back! dste! dstm! R[rB] vale! Write back ALU result! [Write back memory result]! PC update! PC! PC valp! Update PC! All instructions follow same general pattern! Differ in what gets computed on each step! 34! CS:APP!
18 Computation Steps! call Dest! Memory! Write! back! PC update! icode,ifun! ra,rb! valc! valp! vala, srca! valb, srcb! vale! Cond code! valm! dste! dstm! PC! icode:ifun M 1 [PC]! valc M 4 [PC+1]! valp PC+5! valb R[%esp]! vale valb + 4! M 4 [vale] valp! R[%esp] vale! PC valc! Read instruction byte! [Read register byte]! Read constant word! Compute next PC! [Read operand A]! Read operand B! Perform ALU operation! [Set condition code reg.]! [Memory read/write]! [Write back ALU result]! Write back memory result! Update PC! All instructions follow same general pattern! Differ in what gets computed on each step! 35! CS:APP! Computed Values! 36! CS:APP!
19 Summary! 37! CS:APP!
Computer 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 informationCSE2421 FINAL EXAM SPRING Name KEY. Instructions: Signature
CSE2421 FINAL EXAM SPRING 2013 Name KEY Instructions: This is a closed-book, closed-notes, closed-neighbor exam. Only a writing utensil is needed for this exam. No calculators allowed. If you need to go
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 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 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 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 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 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 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 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 informationCS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College February 9, 2016
CS 31: Intro to Systems ISAs and Assembly Kevin Webb Swarthmore College February 9, 2016 Reading Quiz Overview How to directly interact with hardware Instruction set architecture (ISA) Interface between
More informationCS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College September 25, 2018
CS 31: Intro to Systems ISAs and Assembly Kevin Webb Swarthmore College September 25, 2018 Overview How to directly interact with hardware Instruction set architecture (ISA) Interface between programmer
More informationMachine-Level Programming II: Control and Arithmetic
Machine-Level Programming II: Control and Arithmetic CSCI 2400: Computer Architecture Instructor: David Ferry Slides adapted from Bryant & O Hallaron s slides 1 Today Complete addressing mode, address
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 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 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 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 informationAssembly Language: Function Calls. Goals of this Lecture. Function Call Problems
Assembly Language: Function Calls 1 Goals of this Lecture Help you learn: Function call problems: Calling and urning Passing parameters Storing local variables Handling registers without interference Returning
More informationX86 Addressing Modes Chapter 3" Review: Instructions to Recognize"
X86 Addressing Modes Chapter 3" Review: Instructions to Recognize" 1 Arithmetic Instructions (1)! Two Operand Instructions" ADD Dest, Src Dest = Dest + Src SUB Dest, Src Dest = Dest - Src MUL Dest, Src
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 informationCS61 Section Solutions 3
CS61 Section Solutions 3 (Week of 10/1-10/5) 1. Assembly Operand Specifiers 2. Condition Codes 3. Jumps 4. Control Flow Loops 5. Procedure Calls 1. Assembly Operand Specifiers Q1 Operand Value %eax 0x104
More informationSungkyunkwan University
- 2 - Complete addressing mode, address computation (leal) Arithmetic operations Control: Condition codes Conditional branches While loops - 3 - Most General Form D(Rb,Ri,S) Mem[ Reg[ R b ] + S Reg[ R
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 informationSOEN228, Winter Revision 1.2 Date: October 25,
SOEN228, Winter 2003 Revision 1.2 Date: October 25, 2003 1 Contents Flags Mnemonics Basic I/O Exercises Overview of sample programs 2 Flag Register The flag register stores the condition flags that retain
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 informationCredits to Randy Bryant & Dave O Hallaron
Mellon Machine Level Programming II: Arithmetic & Control Lecture 4, March 10, 2011 Alexandre David Credits to Randy Bryant & Dave O Hallaron from Carnegie Mellon 1 Today Complete addressing mode, address
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 informationAssembly Language: Function Calls
Assembly Language: Function Calls 1 Goals of this Lecture Help you learn: Function call problems: Calling and returning Passing parameters Storing local variables Handling registers without interference
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 informationAssembly Language: Function Calls" Goals of this Lecture"
Assembly Language: Function Calls" 1 Goals of this Lecture" Help you learn:" Function call problems:" Calling and returning" Passing parameters" Storing local variables" Handling registers without interference"
More informationcmovxx ra, rb 2 fn ra rb irmovq V, rb 3 0 F rb V rmmovq ra, D(rB) 4 0 ra rb mrmovq D(rB), ra 5 0 ra rb OPq ra, rb 6 fn ra rb jxx Dest 7 fn Dest
Instruction Set Architecture Computer Architecture: Instruction Set Architecture CSci 2021: Machine Architecture and Organization Lecture #16, February 24th, 2016 Your instructor: Stephen McCamant Based
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 informationCSC 8400: Computer Systems. Machine-Level Representation of Programs
CSC 8400: Computer Systems Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32) 1 Compilation Stages
More informationFunction Calls COS 217. Reading: Chapter 4 of Programming From the Ground Up (available online from the course Web site)
Function Calls COS 217 Reading: Chapter 4 of Programming From the Ground Up (available online from the course Web site) 1 Goals of Today s Lecture Finishing introduction to assembly language o EFLAGS register
More informationAssembly Language: Function Calls" Goals of this Lecture"
Assembly Language: Function Calls" 1 Goals of this Lecture" Help you learn:" Function call problems:" Calling and urning" Passing parameters" Storing local variables" Handling registers without interference"
More informationProgram Exploitation Intro
Program Exploitation Intro x86 Assembly 04//2018 Security 1 Univeristà Ca Foscari, Venezia What is Program Exploitation "Making a program do something unexpected and not planned" The right bugs can be
More informationTurning C into Object Code Code in files p1.c p2.c Compile with command: gcc -O p1.c p2.c -o p Use optimizations (-O) Put resulting binary in file p
Turning C into Object Code Code in files p1.c p2.c Compile with command: gcc -O p1.c p2.c -o p Use optimizations (-O) Put resulting binary in file p text C program (p1.c p2.c) Compiler (gcc -S) text Asm
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 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 informationCS 31: Intro to Systems ISAs and Assembly. Martin Gagné Swarthmore College February 7, 2017
CS 31: Intro to Systems ISAs and Assembly Martin Gagné Swarthmore College February 7, 2017 ANNOUNCEMENT All labs will meet in SCI 252 (the robot lab) tomorrow. Overview How to directly interact with hardware
More information