CPSC 121: Models of Computation Lab #9: A Working Computer
|
|
- Megan Chandler
- 6 years ago
- Views:
Transcription
1 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 ALU and in lab 6, you looked at the RAM. Our goal with this lab is for you to appreciate that a computer is a complex sequential circuit that you now have the tools and knowledge to analyse. This lab will also expose you to machine code which are instructions executed directly by the computer s central processing unit (CPU). Our goal here is for you to realize that an appropriate string of binary numbers actually can be used to program a circuit like this one. A version of this processor will appear in more detail in CPSC 313 enjoy! 1 Prelab Download and print out the file playcpu.pdf from the course website (it might make your work easier if you print out the document single-sided). Notice that in the first four pages, the first two columns for the larger tables are filled in for you. Each of these four pages refers to a particular stage in the paper computer. The names of these stages are given at the top of each page: Memory and Registers, Fetch and Decode, Execute and ALU and Decide Branch. TODO (pre-lab): Starting with the Fetch/Decode stage and following the instructions given at each stage, correctly fill in the next column for each of the four stages. Note that all values are in hexadecimal. You should have three columns filled in when you are finished: two of which were done for you as examples and one that you have filled in yourself. If you are having trouble with the prelab, a step-by-step example is given in Appendix B and a FAQ is given in Appendix C 2 A Paper Computer Team up with another group to form a team of four. The four of you will be running the rest of the program you started in the prelab, with each of you taking on the role of a different part of the computer. Halfway through the exercise, you will switch roles as follows (the table is shaded to indicate where you should switch): Memory and Registers becomes Fetch and Decode; Fetch and Decode becomes Execute; Execute becomes ALU and Decide; ALU and Decide becomes Memory and Registers. Memory/Registers: Your job is to handle two types of computer memory: its RAM (just called memory ) and its small component of fast memory (called registers ) Fetch/Decode: Your job is to take instructions out of memory and parse them for the computer to use Execute: Your job is to execute instructions using the ALU and then tell the computer what instruction to execute next ALU: Your job is to do the arithmetic and logic operations for the Execute stage TODO: Pick your roles and run the computer program on paper. Check with your TAs regularly to make sure you haven t made a mistake. What does the program do? 1
2 3 A Mystery Program 1. Download the files Y86-cpu.circ and simple-loop.img from the course website and open up Y86-cpu.circ in Logisim 2. Find the 16MB RAM module and click on it using the poke tool. Double click on the magnifying glass in the middle to open the module. 3. Find the RAM module and right-click on it. Select Load image and load in simple-loop.img. Your screen should now look like this: 4. Now return to the main screen by pressing Control-Left arrow. Note: There is a bar in the bottom left hand corner of your Logisim screen that allows you to zoom in and out of the circuit. 5. To clock the computer, press Control-T. Note: Two clock cycles equal one line of instruction. If you reset the clock using Reset Simulation or Ctrl-R, you will have to reload the image into the RAM module. Go to the Simulate menu and select Logging to log the following values over time: Program Counter, icd, ifn, bch, vale, eax, ecx and edx. For each of the eight values, click Change Radix twice so they are all set to 16. Press Ctrl-K to begin clocking your computer, which will then fill in the table for these values. (To stop clocking the computer, press Ctrl-K again.) TODO: Look at the column of the Program Counter in the table. Can you specify where the numbers repeats? This is a loop in the program. 2
3 TODO: Look at the table again. What are these eight values (Program Counter, icd, ifn, bch, vale, eax, ecx) doing over time? What do you see? Explain what each value s role is in the program. Note: %eax, %ecx, %edx, %ebx, %esp, %ebp, %esi, and %edi are the register values. The other inputs and outputs to the modules you will be interested in looking at are named similarly to the paper computer from the first part of lab. TODO: Pick one of the following modules in Logisim and look at in detail: Decode, Branch? (inside Execute), or PC Update. What is this module doing? What are its inputs and outputs? How does it relate to the paper computer we simulated at the start of class? 4 Further Analysis TODO (further analysis): Why have we broken up the computer into different stages? What are each of the following stages doing when the current instruction is being processed by a different stage? 5 End of Lab Survey TODO: To help us improve these labs both this term and for future offerings, complete the survey at TODO: In addition to the End of Lab Survey, you will receive one bonus mark for participating in 3
4 the End of Term lab curriculum survey, available at: 6 Challenge Problem TODO (challenge): Look back on the paper computer you completed at the start of lab and write out an instruction (in hexadecimal) that takes the value from register 5, subtracts it from the value in register 6 and stores the resulting value into register 6. A Marking scheme All labs are out of ten marks, with two marks for prelabs, and eight marks for in-lab work. In more detail: Two marks - Prelab questions Five marks - In-lab questions (two marks for the paper computer, one mark for finding the line where the program loops, one mark for logging the eight values and one mark for looking at a module in detail) Two marks - Further analysis question One mark - End of lab survey, with one bonus mark for the other survey TAs may at their discretion award one bonus mark, such as for completing the challenge problem. (In this lab, it is possible to get 12 out of 10.) 4
5 B Paper Computer: Step-by-step Example Let us step through the process of filling in the second column, which was done for you as an example. 1. Following the prelab instructions, we start at the Fetch and Decode Stage. In the reference sheet (the last page of playcpu.pdf), we re told, in step one, to fetch an instruction from memory at the address PC. Looking at the bottom table in Fetch and Decode, we see that in the second column, PC is To fetch the instruction at address PC = 6, we go to the Memory and Registers stage and look at the Memory table at the top. In this table, the top row contains the memory addresses and the bottom row holds the actual data. Since we want the instruction at address 6, we locate 6 in the top row and see that the byte of data stored there is This date byte, 30, tells us the icd and ifn values we need. The first hex digit, 3, is the icd and the second hex digit, 0, is the ifn. These values are filled in for you in column 2 in Fetch/Decode. 4. Once we have the icd and ifn values, we can know how many more bytes to fetch for our instruction. This is detailed at the top of the Fetch/Decode stage. In short: The length of the instruction depends on your icd value! When icd = 3, you fetch 12 hex digits When icd = 6, you fetch 4 hex digits (there is no data for valc so you can just write n/a or leave it blank) When icd = 7, you fetch 10 hex digits (there s no data for ra and rb so you can just write n/a or leave them blank) In this case, since icd = 3, we fetch 12 hex digits, starting from PC. Thus, our full instruction is 30 F Now, following the instructions in Fetch/Decode, since icd = 3, the third hex digit, F, is our ra value and the fourth hex digit, 1 is our rb value. The rest of the digits, , or 5, make up the valc value. 6. To get our valp value, we look at the smaller table in Fetch/Decode. Since icd = 3, our valp value is PC + 6 = = C. (Remember that all values are in hexdecimal). This table also tells us srca = F, srcb = F and dste = rb = We are now ready to move to the Execute stage. Following the instructions in Execute, we first copy over values from Fetch/Decode. Then, to get vala and valb, we look at srca and srcb. As stated in the instructions, srca and srcb are register addresses. This means we need to go to the Memory and Registers stage (page one) and look at the Registers table at the bottom. In the Registers table, locate the register address in the leftmost column and get the data from the most recent column. In our case, since we re filling in column 2, the most recent column is column 1. For the prelab, since you re filling in column 3, the most recent column is column 2. In our case, srca and srcb are both F, but looking at the Registers table, we see there is no address F in the leftmost column! When this happens, we just write 0 for both vala and valb in Execute. If srca and srcb are not both F, see FAQ # 4 below. 8. Now, as per instruction 3 in Execute, we need to send some values over to the ALU/Decide stage to get vale and bch. 9. In ALU/Decide, fill in the values that were sent over from Execute. Follow the three steps to get vale and bch. In our case, since icd = 3, Step 1 gives us alua = valc = 5 and alub = 0. Then, Step 2 gives us vale = alub + alua = 5 and Step 3 tells us bch = 0. For the instruction in Step 2, see FAQ # 3 below for an example. 10. Having bch from ALU/Decide, we can get the value of nextpc in Execute. This value will usually be valp with one exception: when icd = 7 and bch = 1. Since icd = 3, in our case, we write down valp = C for nextpc and then write the value of nextpc to the PC row in Fetch/Decode. This is the C value we filled in for you in column Lastly, write the value of vale to the register with address dste. This means we go back to the Memory and Registers stage and find dste in the leftmost column of the Registers table, as we did for Step 7, with srca and srcb. In our case, dste = 1 so we locate address 1 in the leftmost column and write down vale = 5 into that row in column 2. All of the values in the other rows stay the same, since we didn t write any new values to them. 12. We have now completed a full clock cycle. To fetch the next instruction, we start over again at Fetch/Decode and see that the PC value is now C. Begin again at Step 1. 5
6 C Paper Computer: Frequently Asked Questions 1. How many columns do we need to fill in for the prelab? The prelab states to go through one complete clock cycle, which corresponds to one column in the tables. Remember that a clock cycle goes through all four stages (the first four pages in playcpu.pdf are the four stages) so you need to fill in the corresponding column in all four tables to complete one clock cycle. We did two clock cycles for you so two columns in each of the four tables are filled in. 2. How many bits are in a hexadecimal digit? How many bits are in a byte? A hexadecimal digit is 4 bits and a byte is 8 bits. Thus, one byte corresponds to 2 hexadecimal digits. 3. What is the instruction in the ALU and Decide Branch stage? This is a logical bitwise AND. For example, if you wanted to AND together 13 and 7, you would first write both of those numbers in binary and then AND the corresponding bits: 13 7 = = (1 0)(1 1)(0 1)(1 1) = 0101 = How do we get vala and valb from srca and srcb? When you re given a register address (srca or srcb) and need the value stored in that register, go to the Registers table (on the Memory/Register page), locate the address in the leftmost column and get the data from the corresponding row in the most recent column. The most recent column is the column previous to the one you re currently filling in. For example, when filling in column 3 for the prelab, the most recent column is the second column we ve filled in for you. If srcb = 1, we look at row 1 in column 2 and see that the value we want is 5. If the address is F, just write down a 0 for the value. 5. What do we write for valc when icd = 6? What do we write for ra and rb when icd = 7? The length of the instruction depends on your icd value! You won t always fetch the same number of bytes of data. When icd = 3, you fetch 12 hex digits When icd = 6, you fetch 4 hex digits (there is no data for valc so you can just write n/a or leave it blank) When icd = 7, you fetch 10 hex digits (there s no data for ra and rb so you can just write n/a or leave them blank) 6. How do we add 6 to C? Doesn t this exceed F in hexadecimal? Yes, in this case, you will have a carry over digit of 1. Your result would be two hex digits long. 7. What do we do if the icd value is not 3, 6 or 7? This won t happen for the examples you ll be doing in the lab. 6
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 informationMODE (mod) FIELD CODES. mod MEMORY MODE: 8-BIT DISPLACEMENT MEMORY MODE: 16- OR 32- BIT DISPLACEMENT REGISTER MODE
EXERCISE 9. Determine the mod bits from Figure 7-24 and write them in Table 7-7. MODE (mod) FIELD CODES mod 00 01 10 DESCRIPTION MEMORY MODE: NO DISPLACEMENT FOLLOWS MEMORY MODE: 8-BIT DISPLACEMENT MEMORY
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 informationFor your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to
For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Author...xi
More informationMemory Models. Registers
Memory Models Most machines have a single linear address space at the ISA level, extending from address 0 up to some maximum, often 2 32 1 bytes or 2 64 1 bytes. Some machines have separate address spaces
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 informationRepresentation of Information
Representation of Information CS61, Lecture 2 Prof. Stephen Chong September 6, 2011 Announcements Assignment 1 released Posted on http://cs61.seas.harvard.edu/ Due one week from today, Tuesday 13 Sept
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 informationCPSC 313, 04w Term 2 Midterm Exam 2 Solutions
1. (10 marks) Short answers. CPSC 313, 04w Term 2 Midterm Exam 2 Solutions Date: March 11, 2005; Instructor: Mike Feeley 1a. Give an example of one important CISC feature that is normally not part of a
More informationRegister Allocation, iii. Bringing in functions & using spilling & coalescing
Register Allocation, iii Bringing in functions & using spilling & coalescing 1 Function Calls ;; f(x) = let y = g(x) ;; in h(y+x) + y*5 (:f (x
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 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 informationAssembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam
Assembly Language Lecture 2 - x86 Processor Architecture Ahmed Sallam Introduction to the course Outcomes of Lecture 1 Always check the course website Don t forget the deadline rule!! Motivations for studying
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 informationComputer Processors. Part 2. Components of a Processor. Execution Unit The ALU. Execution Unit. The Brains of the Box. Processors. Execution Unit (EU)
Part 2 Computer Processors Processors The Brains of the Box Computer Processors Components of a Processor The Central Processing Unit (CPU) is the most complex part of a computer In fact, it is the computer
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 informationCPSC 213. Introduction to Computer Systems. Introduction. Unit 0
CPSC 213 Introduction to Computer Systems Unit Introduction 1 Overview of the course Hardware context of a single executing program hardware context is CPU and Main Memory develop CPU architecture to implement
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 informationPractical Malware Analysis
Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the
More informationAssembly Language. Lecture 2 x86 Processor Architecture
Assembly Language Lecture 2 x86 Processor Architecture Ahmed Sallam Slides based on original lecture slides by Dr. Mahmoud Elgayyar Introduction to the course Outcomes of Lecture 1 Always check the course
More informationComputer System Architecture
CSC 203 1.5 Computer System Architecture Department of Statistics and Computer Science University of Sri Jayewardenepura Instruction Set Architecture (ISA) Level 2 Introduction 3 Instruction Set Architecture
More informationSample Exam I PAC II ANSWERS
Sample Exam I PAC II ANSWERS Please answer questions 1 and 2 on this paper and put all other answers in the blue book. 1. True/False. Please circle the correct response. a. T In the C and assembly calling
More informationLow-Level Essentials for Understanding Security Problems Aurélien Francillon
Low-Level Essentials for Understanding Security Problems Aurélien Francillon francill@eurecom.fr Computer Architecture The modern computer architecture is based on Von Neumann Two main parts: CPU (Central
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 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 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 Functions and the Stack. Martin Gagne Swarthmore College February 23, 2016
CS 31: Intro to Systems Functions and the Stack Martin Gagne Swarthmore College February 23, 2016 Reminders Late policy: you do not have to send me an email to inform me of a late submission before the
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 informationWe can study computer architectures by starting with the basic building blocks. Adders, decoders, multiplexors, flip-flops, registers,...
COMPUTER ARCHITECTURE II: MICROPROCESSOR PROGRAMMING We can study computer architectures by starting with the basic building blocks Transistors and logic gates To build more complex circuits Adders, decoders,
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 informationDec Hex Bin ORG ; ZERO. Introduction To Computing
Dec Hex Bin 0 0 00000000 ORG ; ZERO Introduction To Computing OBJECTIVES this chapter enables the student to: Convert any number from base 2, base 10, or base 16 to any of the other two bases. Add and
More informationSingle cycle MIPS data path without Forwarding, Control, or Hazard Unit
Single cycle MIPS data path without Forwarding, Control, or Hazard Unit Figure 1: an Overview of a MIPS datapath without Control and Forwarding (Patterson & Hennessy, 2014, p. 287) A MIPS 1 single cycle
More informationReview Questions. 1 The DRAM problem [5 points] Suggest a solution. 2 Big versus Little Endian Addressing [5 points]
Review Questions 1 The DRAM problem [5 points] Suggest a solution 2 Big versus Little Endian Addressing [5 points] Consider the 32-bit hexadecimal number 0x21d3ea7d. 1. What is the binary representation
More informationComputer Organization & Assembly Language Programming
Computer Organization & Assembly Language Programming CSE 2312-002 (Fall 2011) Lecture 8 ISA & Data Types & Instruction Formats Junzhou Huang, Ph.D. Department of Computer Science and Engineering Fall
More informationDesign of Decode, Control and Associated Datapath Units
1 Design of Decode, Control and Associated Datapath Units ECE/CS 3710 - Computer Design Lab Lab 3 - Due Date: Thu Oct 18 I. OVERVIEW In the previous lab, you have designed the ALU and hooked it up with
More informationModule 3 Instruction Set Architecture (ISA)
Module 3 Instruction Set Architecture (ISA) I S A L E V E L E L E M E N T S O F I N S T R U C T I O N S I N S T R U C T I O N S T Y P E S N U M B E R O F A D D R E S S E S R E G I S T E R S T Y P E S O
More informationIslamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB
Islamic University Gaza Engineering Faculty Department of Computer Engineering ECOM 2125: Assembly Language LAB Lab # 6 Input/output using a Library of Procedures April, 2014 1 Assembly Language LAB Using
More informationCS 101, Mock Computer Architecture
CS 101, Mock Computer Architecture Computer organization and architecture refers to the actual hardware used to construct the computer, and the way that the hardware operates both physically and logically
More informationIntroduction to Digital Logic Using Logisim
Introduction to Digital Logic Using Logisim Gates, Plexers, Decoders, Registers, Addition and Comparison Autumn 2010 Uppsala University karl.marklund@it.uu.se ...open up a command shell and type logisim
More informationTo design a 4-bit ALU To experimentally check the operation of the ALU
1 Experiment # 11 Design and Implementation of a 4 - bit ALU Objectives: The objectives of this lab are: To design a 4-bit ALU To experimentally check the operation of the ALU Overview An Arithmetic Logic
More informationLab 5: Input/Output using a Library of Procedures
COE 205 Lab Manual Lab 5: Input/Output using a Library of Procedures - Page 46 Lab 5: Input/Output using a Library of Procedures Contents 5.1. Using an External Library of Procedures for Input and Output
More informationChapter 2. lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1
Chapter 2 1 MIPS Instructions Instruction Meaning add $s1,$s2,$s3 $s1 = $s2 + $s3 sub $s1,$s2,$s3 $s1 = $s2 $s3 addi $s1,$s2,4 $s1 = $s2 + 4 ori $s1,$s2,4 $s2 = $s2 4 lw $s1,100($s2) $s1 = Memory[$s2+100]
More informationThe Instruction Set. Chapter 5
The Instruction Set Architecture Level(ISA) Chapter 5 1 ISA Level The ISA level l is the interface between the compilers and the hardware. (ISA level code is what a compiler outputs) 2 Memory Models An
More informationHardware and Software Architecture. Chapter 2
Hardware and Software Architecture Chapter 2 1 Basic Components The x86 processor communicates with main memory and I/O devices via buses Data bus for transferring data Address bus for the address of a
More informationSelected Machine Language. Instructions Introduction Inc and dec Instructions
Selected Machine Language 10 Instructions 10.1 Introduction As may have been learned from a computer organization text, there are many considerations that need to be taken into account and many different
More informationEE 231 Fall Lab 2: Decoders and Multiplexers. Introduction
Lab 2: Decoders and Multiplexers Introduction Decoders and multiplexers are important combinational circuits in many logic designs. Decoders convert n inputs to a maximum of unique 2 n outputs. A special
More informationUsing Microsoft Excel
About Excel Using Microsoft Excel What is a Spreadsheet? Microsoft Excel is a program that s used for creating spreadsheets. So what is a spreadsheet? Before personal computers were common, spreadsheet
More informationCpr E 281 FINAL PROJECT ELECTRICAL AND COMPUTER ENGINEERING IOWA STATE UNIVERSITY. FINAL Project. Objectives. Project Selection
Objectives The main objective of the final project is to teach you how to put together all of the class material that you have learned so far in order to program the Altera DE2 board to carry out an independent
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 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 informationName EGR 2131 Lab #6 Number Representation and Arithmetic Circuits
Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits Equipment and Components Quartus software and Altera DE2-115 board PART 1: Number Representation in Microsoft Calculator. First, let s
More informationChapter 11. Addressing Modes
Chapter 11 Addressing Modes 1 2 Chapter 11 11 1 Register addressing mode is the most efficient addressing mode because the operands are in the processor itself (there is no need to access memory). Chapter
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 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 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 informationAssembly Language Each statement in an assembly language program consists of four parts or fields.
Chapter 3: Addressing Modes Assembly Language Each statement in an assembly language program consists of four parts or fields. The leftmost field is called the label. - used to identify the name of a memory
More informationQuestion 4.2 2: (Solution, p 5) Suppose that the HYMN CPU begins with the following in memory. addr data (translation) LOAD 11110
Questions 1 Question 4.1 1: (Solution, p 5) Define the fetch-execute cycle as it relates to a computer processing a program. Your definition should describe the primary purpose of each phase. Question
More informationCSC258: Computer Organization. Memory Systems
CSC258: Computer Organization Memory Systems 1 Summer Independent Studies I m looking for a few students who will be working on campus this summer. In addition to the paid positions posted earlier, I have
More informationCC411: Introduction To Microprocessors
CC411: Introduction To Microprocessors OBJECTIVES this chapter enables the student to: Use number { base 2, base 10, or base 16 }. Add and subtract binary/hex numbers. Represent any binary number in 2
More informationProblem Set 1 Solutions
CSE 260 Digital Computers: Organization and Logical Design Jon Turner Problem Set 1 Solutions 1. Give a brief definition of each of the following parts of a computer system: CPU, main memory, floating
More informationEXPERIMENT WRITE UP. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM
EXPERIMENT WRITE UP AIM: Assembly language program for 16 bit BCD addition LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM TOOLS/SOFTWARE
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 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 informationLittle Man Computer (LMC)
Little Man Computer (LMC) A-level Computing Independent Study Project Part Two The Little Man Computer (LMC) is a simulator which models the basic features of a modern computer. It features a central processing
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 informationENGR 40M Project 3c: Coding the raindrop pattern
ENGR 40M Project 3c: Coding the raindrop pattern For due dates, see the overview handout The raindrop pattern works like this: Once per time period (say, 150 ms), (a) move the pattern one plane down: the
More informationLecture 19: Computers. Pay no attention to the man behind the curtain.
Lecture 19: Computers Pay no attention to the man behind the curtain. Samuel Wolfson // CSE 120, Winter 2018 Final Project Administrivia Show off all the cool skillz you've learned this quarter! Three
More information