THE UNIVERSITY OF BRITISH COLUMBIA CPSC 261: MIDTERM 1 February 14, 2017
|
|
- Mabel Dawson
- 5 years ago
- Views:
Transcription
1 THE UNIVERSITY OF BRITISH COLUMBIA CPSC 261: MIDTERM 1 February 14, 2017 Last Name: First Name: Signature: UBC Student #: Important notes about this examination 1. You have 70 minutes to write the 6 questions on this examination. 2. Justify all your answers. 3. You are allowed to bring in one hand written, double sided 8.5 x 11in sheet of notes, and nothing else. 4. Keep your answers short. If you run out of space for a question, you have written too much. 5. The number in square brackets to the left of the question number indicates the number of marks allocated for that question. Use these to help you determine how much time you should spend on each question. 6. Good luck! Student Conduct during Examinations 1. Each examination candidate must be prepared to produce, upon the request of the invigilator or examiner, his or her UBCcard for identification. 2. Examination candidates are not permitted to ask questions of the examiners or invigilators, except in cases of supposed errors or ambiguities in examination questions, illegible or missing material, or the like. 3. No examination candidate shall be permitted to enter the examination room after the expiration of one half hour from the scheduled starting time, or to leave during the first half hour of the examination. Should the examination run fortyfive (45) minutes or less, no examination candidate shall be permitted to enter the examination room once the examination has begun. 4. Examination candidates must conduct themselves honestly and in accordance with established rules for a given examination, which will be articulated by the examiner or invigilator prior to the examination commencing. Should dishonest behaviour be observed by the examiner(s) or invigilator(s), pleas of accident or forgetfulness shall not be received. 5. Examination candidates suspected of any of the following, or any other similar practices, may be immediately dismissed from the examination by the examiner/invigilator, and may be subject to disciplinary action: i. speaking or communicating with other examination candidates, unless ii. iii. iv. otherwise authorized; purposely exposing written papers to the view of other examination candidates or imaging devices; purposely viewing the written papers of other examination candidates; using or having visible at the place of writing any books, papers or other memory aid devices other than those authorized by the examiner(s); and, v. using or operating electronic devices including but not limited to telephones, calculators, computers, or similar devices other than those authorized by the examiner(s) (electronic devices other than those authorized by the examiner(s) must be completely powered down if present at the place of writing). 6. Examination candidates must not destroy or damage any examination material, must hand in all examination papers, and must not take any examination material from the examination room without permission of the examiner or invigilator. 7. Notwithstanding the above, for any mode of examination that does not fall into the traditional, paper based method, examination candidates shall adhere to any special rules for conduct as established and articulated by the examiner. 8. Examination candidates must follow any additional examination rules or directions communicated by the examiner(s) or invigilator(s). Please do not write in this space: Question 1: Question 3: Question 2: Question 9: Question 3: Question 4: Question 4: Question 11: Question 5: Question 12: Question 6: Question 13: Question 7: Question 14: Question 8:
2 page 2 [8] 1. Short Answers [3] a. One technique used to cope with complexity is to be tolerant of inputs and strict on outputs. What does each of these terms mean? By tolerant of inputs we mean that functions should do something sensible when they are given incorrect (or slightly out of range) inputs. By strict on outputs we mean that functions should not produce incorrect, unexpected, or not-asspecified-by-the-documentation results. [2] b. Amongst the following properties of a cache, circle all of those can be determined from its memory mountain. Associativity Block size Total size Write policy (write-through or write-back) [3] c. List two advantages of using segregated free lists to implement a dynamic memory allocation library, as compared to implicit or explicit free lists. [11] 2. Pipelines Searching for free blocks is more efficient, because we are only searching part of the heap. Also, memory utilization improves, since first-fit search with a segregated list approximates a best-fit search of the entire heap. One disadvantage is the increase in overhead, since several lists need to be maintained, one with each different size; however, this overhead is usually compensated by an improved memory utilization. [2] a. What is the difference between a data hazard and a control hazard? A data hazard occurs when an instruction needs a value (usually a register value) that is not yet available because the instruction computing it has not yet finished executing. A control hazard happens when the CPU does not know for sure which instruction it should fetch next, and usually results from a conditional branch, indirect jump or call, or ret instruction. [3] b. What technique do modern pipelined CPUs use to prevent an instruction i from stalling until the instruction producing a data value that i needs has stored it in a register?
3 page 3 Often, even though the value has not yet been stored in the machine register, it has already been computed and is available in a stage register somewhere inside the pipeline. The value can then be forwarded to the stage that needs it (typically Decode) without having to wait for the first instruction to complete. Additionally, some CPUs may dynamically change the order in which instructions are handled, so that instructions that do not depend on the value being produced are executed before the stalled instruction. [3] c. What technique do modern pipelined CPUs use to reduce the probability of stalls due to conditional branch instructions whose condition is not known until the end of the instruction that precedes it? The CPU will usually choose a side and proceed with fetching one of the branches as if the conditional jump moved in that direction. Should the guess be incorrect, the process is invalidated and the new instructions are loaded as if a stall actually happened. [3] d. What technique do modern pipelined CPUs use to prevent a ret instruction from stalling due to an unknown returning address? Some CPUs will keep a small stack of returning address pointers to be used by the pipelined CPU to start fetching the next instruction. [7] 3. Given the following C function, /* Find the position of the largest value in the array */ long maxpos(long array[], long n) long m = --n; while (--n >= 0) if (array[m] > array[n]) m = n; return m; the gcc compiler generates the following x86-64 assembly language code: 1 maxpos: subq $1, %rsi 2 movq %rsi, %rax 3 jmp.l6 4.L4: movq (%rdi,%rsi,8), %rdx 5 cmpq %rdx, (%rdi,%rax,8) 6 jle.l6 7 movq %rsi, %rax 8.L6: subq $1, %rsi 9 jns.l4 10 ret
4 page 4 Using the C version as a guide, and your knowledge of the x86-64 calling conventions, comment the assembly language version of the function. Hint: jns means jump on no sign (SF=0). There was a bug in this code, wherein the function actually returns the smallest value in the array instead of the largest. Comments that take this into consideration were also marked as correct. (1) Decrement the value of n (stored in %rsi) (2) Assign n to m (stored in %rsi and %rax respectively) (3) Jump to the line that contains the loop condition (4) Read array[n] into register %rdx (5) Compare array[m] with register %rdx (array[n]) (6) Skip next instruction if array[m] array[n] (7) Assign n to m (stored in %rsi and %rax respectively) (8) Decrement the value of n (stored in %rsi) (9) Repeat process if n 0 (10) Done, return from the function [7] 4. Here is a longer function (selection sort) that incorporates function maxpos from the previous question inside a loop. 1 ssort: pushq %rbp 2 pushq %rbx 3 movq %rdi, %rbp 4 movq %rsi, %rbx 5 jmp.l8 6.L9: movq %rbx, %rsi 7 movq %rbp, %rdi 8 call maxpos 9 subq $1, %rbx 10 leaq 0(%rbp,%rbx,8), %rdx 11 movq (%rdx), %rcx 12 leaq 0(%rbp,%rax,8), %rax 13 movq (%rax), %rsi 14 movq %rsi, (%rdx) 15 movq %rcx, (%rax) 16.L8: cmpq $1, %rbx 17 jg.l9 18 popq %rbx 19 popq %rbp 20 ret
5 page 5 List at least five hazards that are present in this function. For each hazard: If it is a data hazard, write D, and both the number of the instruction that uses the data value, and the number of the instruction that computes it. If an instruction uses several values computed by earlier instructions, list only the number of the most recent such instruction. If it is a control hazard, write C and the number of the instruction where the hazard occurs. There were many more than five hazards. They are: Type Instruction 1 Instruction 2 Register? C 17 C 20 D 1 2 %rsp D 4 16 %rbx D 9 10 %rbx D %rdx D %rax D %rsi D %rsp [9] 5. The standard C library function realloc takes in a pointer ptr and an integer user size as parameters, and changes the size of the memory block that ptr points to so it becomes user size. The contents of the payload are preserved (up to the smaller of the old and new sizes). For efficiency reasons, realloc will extend the current block (make it bigger) if there is enough available space after it. Here is a partial implementation of the realloc function within the context of lab 3: Fill in code for the case where curr size < real size (other than the else clause). The next page contains function headers for some of the functions from lab 3. Hint: our solution contains 7 lines of actual code (plus a few lines with only curly braces). void *heap_realloc(heap *h, void *ptr, long user_size)
6 page 6 long real_size = get_size_to_allocate(user_size); char *block_start = get_block_start(ptr); long curr_size = get_block_size(block_start); long curr_block = block_start; if (curr_size > real_size) /* Ignore this case; we will shrink the block (maybe). */ else if (curr_size < real_size) long max_size = curr_size; if (!is_last_block(h, block_start) &&!block_is_in_use(get_next_block(block_start))) max_size += get_block_size(get_next_block(block_start)); if (max_size >= real_size) set_block_header(block_start, max_size, 1); prepare_block_for_use(block_start, real_size); else /* Case where we could not extend the block enough. */ return get_payload(block_start); [12] 6. A CPU has a 4-way set associative (E = 4) cache, with 64-byte block size (B = 64), 32 sets (S = 32), and a least recently used replacement policy. Assume that sizeof(long) is 8 and that we have the following C declaration: long a[16][256]; [3] i. For each of the following elements of the array, calculate the set that contains it: A 64-byte block has space for 8 longs, so: a[0][0]: set 0 a[0][4]: set 0 (same block as the previous elements) a[0][8]: set 1 (beginning of the following block) a[0][16]: set 2 a[0][128]: set 16 a[1][0]: set 0 (beginning of block 32, but since there are 32 sets this block goes back to the first set)
7 page 7 a[3][0]: set 0 a[8][0]: set 0 [9] ii. Assuming an initially cold cache (i.e., the cache does not initially contain any block associated to the code below), what will be the approximate miss rate for each of the following loops? You may assume that i and j are stored in registers. Justify your answers! [3] a. for (i = 0; i < 16; i++) for (j = 0; j < 256; j++) sum += a[i][j]; Elements are accessed in the order a[0][0], a[0][1], a[0][2],.... Since each cache block holds 8 elements, only the first access will be a cache miss. So we get a 12.5% miss rate. [3] b. for (j = 0; j < 256; j++) for (i = 0; i < 8; i++) sum += a[i][j]; The elements are accessed in column-major order. Each row of the array takes = 2048 bytes, which corresponds to 32 cache blocks worth of data (32 64 = 2048). Thus elements a[0][0], a[1][0], a[2][0]... all end up in the same set. By the time the loop tries to access a[0][1], the block containing a[0][0] to a[0][7] will already have been replaced in the cache by (that set will contain a[4][0] to a[4][7], a[5][0] to a[5][7], a[6][0] to a[6][7] and a[7][0] to a[7][7]. Hence we get a 100% miss rate. [3] c. for (j = 0; j < 256; j++) for (i = 0; i < 4; i++) sum += a[i][j]; The elements are once again accessed in column-major order. However, because we are only accessing four of the eight rows, the block block containing a[0][0] to a[0][7] will still be in the cache when the algorithm needs to access a[0][1] (along with a[1][0] to a[1][7], a[2][0] to a[2][7] and a[3][0] to a[3][7]. Hence we get a 12.5% miss rate (the cache has space for all accessed blocks, so once a block is loaded into the cache, it will not be evicted).
CPSC 261 Midterm 1 Tuesday February 9th, 2016
CPSC 261 Midterm 1 Tuesday February 9th, 2016 [10] 1. Short Answers [2] a. Two CPUs support the same instruction set, and use the same amount of power. CPU A s latency and throughput are both 10% lower
More informationFull Name: CS Account:
THE UNIVERSITY OF BRITISH COLUMBIA CPSC 313: QUIZ 4 October 31, 2018 Full Name: CS Account: Signature: UBC Student #: Important notes about this examination 1. Write your 4 or 5 character CS account both
More informationTHE UNIVERSITY OF BRITISH COLUMBIA CPSC 110: MIDTERM 1 Part B May 26, Important notes about this examination
THE UNIVERSITY OF BRITISH COLUMBIA CPSC 110: MIDTERM 1 Part B May 26, 2014 Last Name: First Name: Signature: UBC Student #: Important notes about this examination 1. This exam has two separate parts. Your
More informationTHE UNIVERSITY OF BRITISH COLUMBIA CPSC 121: MIDTERM 2 Group March 12, 2014
THE UNIVERSITY OF BRITISH COLUMBIA CPSC 121: MIDTERM 2 Group March 12, 2014 Important notes about this examination 1. You have 40 minutes to complete this exam. 2. No electronic aides (e.g., phones or
More informationMATH 253/101,102,103,105 Page 1 of 12 Student-No.:
MATH 253/101,102,103,105 Page 1 of 12 Student-No.: Final Examination December 16, 2015 Duration: 2.5 hours This test has 10 questions on 12 pages, for a total of 80 points. Dr. G. Slade, Dr. C. Macdonald,
More informationCS 3330 Exam 3 Fall 2017 Computing ID:
S 3330 Fall 2017 Exam 3 Variant E page 1 of 16 Email I: S 3330 Exam 3 Fall 2017 Name: omputing I: Letters go in the boxes unless otherwise specified (e.g., for 8 write not 8 ). Write Letters clearly: if
More informationCPSC 121 Midterm 1 Friday October 14th, Signature: Section (circle one): 11:00 15:30 17:00
CPSC 121 Midterm 1 Friday October 14th, 2016 Name: Student ID: Signature: Section (circle one): 11:00 15:30 17:00 You have 70 minutes to write the 9 questions on this examination. A total of 60 marks are
More informationCPSC 121 Sample Final Examination December 2013
CPSC 121 Sample Final Examination December 2013 Name: Student ID: Signature: You have 150 minutes to write the 11 questions on this examination. A total of 98 marks are available. Justify all of your answers.
More informationMachine Program: Procedure. Zhaoguo Wang
Machine Program: Procedure Zhaoguo Wang Requirements of procedure calls? P() { y = Q(x); y++; 1. Passing control int Q(int i) { int t, z; return z; Requirements of procedure calls? P() { y = Q(x); y++;
More informationCSE P 501 Exam Sample Solution 12/1/11
Question 1. (10 points, 5 each) Regular expressions. Give regular expressions that generate the following sets of strings. You may only use the basic operations of concatenation, choice ( ), and repetition
More informationMachine-Level Programming (2)
Machine-Level Programming (2) Yanqiao ZHU Introduction to Computer Systems Project Future (Fall 2017) Google Camp, Tongji University Outline Control Condition Codes Conditional Branches and Conditional
More informationUNIVERSITY REGULATIONS
CPSC 221: Algorithms and Data Structures Midterm Exam, 2015 October 21 Name: Student ID: Signature: Section (circle one): MWF(101) TTh(102) You have 90 minutes to solve the 8 problems on this exam. A total
More informationMARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #1 Examination 12:30 noon, Tuesday, February 14, 2012
MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #1 Examination 12:30 noon, Tuesday, February 14, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)
More informationCSE351 Spring 2018, Midterm Exam April 27, 2018
CSE351 Spring 2018, Midterm Exam April 27, 2018 Please do not turn the page until 11:30. Last Name: First Name: Student ID Number: Name of person to your left: Name of person to your right: Signature indicating:
More informationAssembly Language: Function Calls
Assembly Language: Function Calls 1 Goals of this Lecture Help you learn: Function call problems x86-64 solutions Pertinent instructions and conventions 2 Function Call Problems (1) Calling and returning
More informationUNIVERSITY REGULATIONS
CPSC 221: Algorithms and Data Structures Midterm Exam, 2013 February 15 Name: Student ID: Signature: Section (circle one): MWF(201) TTh(202) You have 60 minutes to solve the 5 problems on this exam. A
More informationPrinceton University Computer Science 217: Introduction to Programming Systems. Assembly Language: Function Calls
Princeton University Computer Science 217: Introduction to Programming Systems Assembly Language: Function Calls 1 Goals of this Lecture Help you learn: Function call problems x86-64 solutions Pertinent
More informationCPSC 411, 2015W Term 2 Midterm Exam Date: February 25, 2016; Instructor: Ron Garcia
CPSC 411, 2015W Term 2 Midterm Exam Date: February 25, 2016; Instructor: Ron Garcia This is a closed book exam; no notes; no calculators. Answer in the space provided. There are 8 questions on 14 pages,
More informationCPSC 121 Midterm 1 Friday February 5th, Signature: Section (circle one): Morning Afternoon
CPSC 121 Midterm 1 Friday February 5th, 2016 Name: Student ID: Signature: Section (circle one): Morning Afternoon You have 70 minutes to write the 8 questions on this examination. A total of 60 marks are
More informationThe Stack & Procedures
The Stack & Procedures CSE 351 Autumn 2017 Instructor: Justin Hsia Teaching Assistants: Lucas Wotton Michael Zhang Parker DeWilde Ryan Wong Sam Gehman Sam Wolfson Savanna Yee Vinny Palaniappan http://xkcd.com/648/
More informationStack Frame Components. Using the Stack (4) Stack Structure. Updated Stack Structure. Caller Frame Arguments 7+ Return Addr Old %rbp
Stack Frame Components Frame pointer %rbp Stack pointer Caller Frame rguments 7+ Return ddr Old %rbp Saved Registers + Local Variables rgument Build 1 Using the Stack (4) Stack Structure long call_incr()
More informationMARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012
MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)
More informationCPSC 320 Midterm 2. July 13, 2007
CPSC 0 Midterm July, 007 Name: Student ID: Signature: You have hour to write the 5 questions on this examination. A total of 0 marks are available. Justify all of your answers. Keep your answers short.
More informationx86-64 Programming III & The Stack
x86-64 Programming III & The Stack CSE 351 Winter 2018 Instructor: Mark Wyse Teaching Assistants: Kevin Bi Parker DeWilde Emily Furst Sarah House Waylon Huang Vinny Palaniappan http://xkcd.com/1652/ Administrative
More informationCompiling C Programs Into X86-64 Assembly Programs
CSE 2421: Systems I Low-Level Programming and Computer Organization Compiling C Programs Into X86-64 Assembly Programs Part B: If Else, Loops, Recursion & Switch Presentation L Read/Study: Bryant 3.6 Gojko
More informationAssembly Programming IV
Assembly Programming IV CSE 351 Spring 2017 Instructor: Ruth Anderson Teaching Assistants: Dylan Johnson Kevin Bi Linxing Preston Jiang Cody Ohlsen Yufang Sun Joshua Curtis 1 Administrivia Homework 2 due
More informationCS 3330 Exam 2 Fall 2017 Computing ID:
S 3330 Fall 2017 Exam 2 Variant page 1 of 8 Email I: S 3330 Exam 2 Fall 2017 Name: omputing I: Letters go in the boxes unless otherwise specified (e.g., for 8 write not 8 ). Write Letters clearly: if we
More informationCPSC 121 Some Sample Questions for the Final Exam Tuesday, April 15, 2014, 8:30AM
CPSC 121 Some Sample Questions for the Final Exam Tuesday, April 15, 2014, 8:30AM Name: Student ID: Signature: Section (circle one): George Steve Your signature acknowledges your understanding of and agreement
More informationCSE P 501 Exam 12/1/11
Name There are 7 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. You may refer to the following references:
More informationQuestion Marks 1 /20 2 /16 3 /7 4 /10 5 /16 6 /7 7 /24 Total /100
CSC 460/660, Midterm March 14, 2005 Name: Student ID: Signature: You have 75 minutes to write the 7 questions on this examination. A total of 100 marks is available. Justify all of your answers You may
More information1. A student is testing an implementation of a C function; when compiled with gcc, the following x86-64 assembly code is produced:
This assignment refers to concepts discussed in sections 2.1.1 2.1.3, 2.1.8, 2.2.1 2.2.6, 3.2, 3.4, and 3.7.1of csapp; see that material for discussions of x86 assembly language and its relationship to
More informationAssembly III: Procedures. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Assembly III: Procedures Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Mechanisms in Procedures Passing control To beginning of procedure code
More informationCS 3330 Exam 1 Fall 2017 Computing ID:
S 3330 Fall 2017 xam 1 Variant page 1 of 8 mail I: S 3330 xam 1 Fall 2017 Name: omputing I: Letters go in the boxes unless otherwise specified (e.g., for 8 write not 8 ). Write Letters clearly: if we are
More informationx86-64 Programming III
x86-64 Programming III CSE 351 Summer 2018 Instructor: Justin Hsia Teaching Assistants: Josie Lee Natalie Andreeva Teagan Horkan http://xkcd.com/1652/ Administrivia Homework 2 due Wednesday (7/11) Lab
More informationCSC 252: Computer Organization Spring 2018: Lecture 6
CSC 252: Computer Organization Spring 2018: Lecture 6 Instructor: Yuhao Zhu Department of Computer Science University of Rochester Action Items: Assignment 2 is out Announcement Programming Assignment
More informationQuestion Marks 1 /12 2 /6 3 /14 4 /8 5 /5 6 /16 7 /34 8 /25 Total /120
CSC 326, Midterm October 25, 2004 Name: Student ID: Signature: You have 75 minutes to write the 8 questions on this examination. A total of 120 marks is available. Justify all of your answers You may use
More informationThe University of British Columbia Final Examination - December 02, 2014 Mathematics 308. Closed book examination. No calculators.
The University of British Columbia Final Examination - December 02, 2014 Mathematics 308 Closed book examination. No calculators. Time: 2.5 hours Last Name First Signature Student Number No books, notes,
More informationMachine-level Programs Procedure
Computer Systems Machine-level Programs Procedure Han, Hwansoo Mechanisms in Procedures Passing control To beginning of procedure code Back to return point Passing data Procedure arguments Return value
More informationCSE 351 Midterm - Winter 2015 Solutions
CSE 351 Midterm - Winter 2015 Solutions February 09, 2015 Please read through the entire examination first! We designed this exam so that it can be completed in 50 minutes and, hopefully, this estimate
More informationMachine-Level Programming II: Control
Machine-Level Programming II: Control CSE 238/2038/2138: Systems Programming Instructor: Fatma CORUT ERGİN Slides adapted from Bryant & O Hallaron s slides 1 Today Control: Condition codes Conditional
More informationMachine-Level Programming III: Procedures
Machine-Level Programming III: Procedures CSE 238/2038/2138: Systems Programming Instructor: Fatma CORUT ERGİN Slides adapted from Bryant & O Hallaron s slides Mechanisms in Procedures Passing control
More informationBryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition. Carnegie Mellon
Carnegie Mellon Machine-Level Programming III: Procedures 15-213/18-213/14-513/15-513: Introduction to Computer Systems 7 th Lecture, September 18, 2018 Today Procedures Mechanisms Stack Structure Calling
More informationCPSC 311, 2010W1 Midterm Exam #2
CPSC 311, 2010W1 Midterm Exam #2 2010/11/02 Page 1 of 18 CPSC 311, 2010W1 Midterm Exam #2 Name: Q1: 20 Student ID: Q2: 20 Signature (required; indicates agreement with rules below): Q3: 20 Q4: 20 Q5: 20
More informationMachine-Level Programming II: Control
Mellon Machine-Level Programming II: Control CS140 Computer Organization and Assembly Slides Courtesy of: Randal E. Bryant and David R. O Hallaron 1 First https://www.youtube.com/watch?v=ivuu8jobb1q 2
More informationCSE 351 Midterm - Winter 2015
CSE 351 Midterm - Winter 2015 February 09, 2015 Please read through the entire examination first! We designed this exam so that it can be completed in 50 minutes and, hopefully, this estimate will prove
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: February 28, 2018 at 06:32 CS429 Slideset 9: 1 Mechanisms in Procedures
More informationL14: Structs and Alignment. Structs and Alignment. CSE 351 Spring Instructor: Ruth Anderson
Structs and Alignment CSE 351 Spring 2017 Instructor: Ruth Anderson Teaching Assistants: Dylan Johnson Kevin Bi Linxing Preston Jiang Cody Ohlsen Yufang Sun Joshua Curtis Administrivia Lab 2 due TONIGHT
More informationAreas for growth: I love feedback
Assembly part 2 1 Areas for growth: I love feedback Speed, I will go slower. Clarity. I will take time to explain everything on the slides. Feedback. I give more Kahoot questions and explain each answer.
More information%r8 %r8d. %r9 %r9d. %r10 %r10d. %r11 %r11d. %r12 %r12d. %r13 %r13d. %r14 %r14d %rbp. %r15 %r15d. Sean Barker
Procedure Call Registers Return %rax %eax %r8 %r8d Arg 5 %rbx %ebx %r9 %r9d Arg 6 Arg 4 %rcx %ecx %r10 %r10d Arg 3 %rdx %edx %r11 %r11d Arg 2 %rsi %esi %r12 %r12d Arg 1 %rdi %edi %r13 %r13d ptr %esp %r14
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 informationLecture 3 CIS 341: COMPILERS
Lecture 3 CIS 341: COMPILERS HW01: Hellocaml! Announcements is due tomorrow tonight at 11:59:59pm. HW02: X86lite Will be available soon look for an announcement on Piazza Pair-programming project Simulator
More informationAssembly Programming IV
Assembly Programming IV CSE 410 Winter 2017 Instructor: Justin Hsia Teaching Assistants: Kathryn Chan, Kevin Bi, Ryan Wong, Waylon Huang, Xinyu Sui The Data That Turned the World Upside Down The company
More information6.1. CS356 Unit 6. x86 Procedures Basic Stack Frames
6.1 CS356 Unit 6 x86 Procedures Basic Stack Frames 6.2 Review of Program Counter (Instruc. Pointer) PC/IP is used to fetch an instruction PC/IP contains the address of the next instruction The value in
More informationStructs & Alignment. CSE 351 Autumn Instructor: Justin Hsia
Structs & Alignment CSE 351 Autumn 2018 Instructor: Justin Hsia Teaching Assistants: Akshat Aggarwal An Wang Andrew Hu Brian Dai Britt Henderson James Shin Kevin Bi Kory Watson Riley Germundson Sophie
More informationCS 3330 Exam 2 Spring 2017 Name: EXAM KEY Computing ID: KEY
S 3330 Spring 2017 Exam 2 Variant E page 1 of 6 Email I: KEY S 3330 Exam 2 Spring 2017 Name: EXM KEY omputing I: KEY Letters go in the boxes unless otherwise specified (e.g., for 8 write not 8 ). Write
More informationAssembly II: Control Flow. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Assembly II: Control Flow Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Processor State (x86-64) RAX 63 31 EAX 0 RBX EBX RCX RDX ECX EDX General-purpose
More informationCS356: Discussion #15 Review for Final Exam. Marco Paolieri Illustrations from CS:APP3e textbook
CS356: Discussion #15 Review for Final Exam Marco Paolieri (paolieri@usc.edu) Illustrations from CS:APP3e textbook Processor Organization Pipeline: Computing Throughput and Delay n 1 2 3 4 5 6 clock (ps)
More informationThe Stack & Procedures
The Stack & Procedures CSE 351 Spring 2017 Instructor: Ruth Anderson Teaching Assistants: Dylan Johnson Kevin Bi Linxing Preston Jiang Cody Ohlsen Yufang Sun Joshua Curtis Administrivia Homework 2 due
More informationStructs and Alignment CSE 351 Spring
Structs and Alignment CSE 351 Spring 2018 http://xkcd.com/1168/ Administrivia Homework 3 due Wednesday Lab 3 released, due next week Lab 2 and midterm will be graded this week [in that order] 2 Roadmap
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: February 26, 2018 at 12:02 CS429 Slideset 8: 1 Controlling Program
More informationAssembly II: Control Flow
Assembly II: Control Flow Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu)
More informationL09: Assembly Programming III. Assembly Programming III. CSE 351 Spring Guest Lecturer: Justin Hsia. Instructor: Ruth Anderson
Assembly Programming III CSE 351 Spring 2017 Guest Lecturer: Justin Hsia Instructor: Ruth Anderson Teaching Assistants: Dylan Johnson Kevin Bi Linxing Preston Jiang Cody Ohlsen Yufang Sun Joshua Curtis
More informationMalloc Lab & Midterm Solutions. Recitation 11: Tuesday: 11/08/2016
Malloc Lab & Midterm Solutions Recitation 11: Tuesday: 11/08/2016 Malloc 2 Important Notes about Malloc Lab Malloc lab has been updated from previous years Supports a full 64 bit address space rather than
More informationQuestion Marks 1 /16 2 /13 3 /12 4 /15 5 /8 6 /15 7 /8 8 /5 9 /8 Total /100
CSC 460/660, Midterm March 22, 2006 Name: Student ID: Signature: You have 75 minutes to write the 9 questions on this examination. A total of 100 marks is available. Justify all of your answers You may
More informationLecture 4 CIS 341: COMPILERS
Lecture 4 CIS 341: COMPILERS CIS 341 Announcements HW2: X86lite Available on the course web pages. Due: Weds. Feb. 7 th at midnight Pair-programming project Zdancewic CIS 341: Compilers 2 X86 Schematic
More informationQuestion Marks 1 /11 2 /4 3 /13 4 /5 5 /11 6 /14 7 /32 8 /6 9 /11 10 /10 Total /117
CSC 326, Midterm November 3, 2005 Name: Student ID: Signature: You have 75 minutes to write the 10 questions on this examination. A total of 117 marks is available. Justify all of your answers You may
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2017 Lecture 7
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2017 Lecture 7 LAST TIME Dynamic memory allocation and the heap: A run-time facility that satisfies multiple needs: Programs can use widely varying, possibly
More informationCS367. Program Control
CS367 Program Control outline program control condition codes branching looping conditional moves switches (special case of branching) Condition Codes Processor State (x86-64, Partial) Info about currently
More information1 Number Representation(10 points)
Name: Sp15 Midterm Q1 1 Number Representation(10 points) 1 NUMBER REPRESENTATION(10 POINTS) Let x=0xe and y=0x7 be integers stored on a machine with a word size of 4bits. Show your work with the following
More informationCPSC 261 Midterm 2 Thursday March 17 th, 2016
CPSC 261 Midterm 2 Thursday March 17 th, 2016 [9] 1. Multiple choices [5] (a) Among the following terms, circle all of those that refer to a responsibility of a thread scheduler: Solution : Avoiding deadlocks
More informationx86 Programming II CSE 351 Winter
x86 Programming II CSE 351 Winter 2017 http://xkcd.com/1652/ Administrivia 2 Address Computation Instruction v leaq src, dst lea stands for load effective address src is address expression (any of the
More informationControl flow (1) Condition codes Conditional and unconditional jumps Loops Conditional moves Switch statements
Control flow (1) Condition codes Conditional and unconditional jumps Loops Conditional moves Switch statements 1 Conditionals and Control Flow Two key pieces 1. Comparisons and tests: check conditions
More informationComputer Science 304
The University of British Columbia Computer Science 304 Final Examination Instructor: Rachel Pottinger Time: 2.5 hours Total marks: 48 Name ANSWER KEY (PRINT) (Last) (First) Signature This examination
More informationCS 33. Architecture and Optimization (1) CS33 Intro to Computer Systems XV 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.
CS 33 Architecture and Optimization (1) CS33 Intro to Computer Systems XV 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Simplistic View of Processor while (true) { instruction = mem[rip]; execute(instruction);
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2017 Lecture 12
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2017 Lecture 12 CS24 MIDTERM Midterm format: 6 hour overall time limit, multiple sittings (If you are focused on midterm, clock should be running.) Open book
More informationProcedures and the Call Stack
Procedures and the Call Stack Topics Procedures Call stack Procedure/stack instructions Calling conventions Register-saving conventions Why Procedures? Why functions? Why methods? int contains_char(char*
More informationCredits and Disclaimers
Credits and Disclaimers 1 The examples and discussion in the following slides have been adapted from a variety of sources, including: Chapter 3 of Computer Systems 3 nd Edition by Bryant and O'Hallaron
More informationMachine- Level Representa2on: Procedure
Machine- Level Representa2on: Procedure CSCI 2021: Machine Architecture and Organiza2on Pen- Chung Yew Department Computer Science and Engineering University of Minnesota With Slides from Bryant, O Hallaron
More informationFunction Calls and Stack
Function Calls and Stack Philipp Koehn 16 April 2018 1 functions Another Example 2 C code with an undefined function int main(void) { int a = 2; int b = do_something(a); urn b; } This can be successfully
More informationMechanisms in Procedures. CS429: Computer Organization and Architecture. x86-64 Stack. x86-64 Stack Pushing
CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: February 28, 2018 at 06:32 Mechanisms in Procedures Passing Control
More informationRoadmap. Java: Assembly language: OS: Machine code: Computer system:
Roadmap C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Assembly language: Machine code: Computer system: get_mpg: pushq movq... popq ret %rbp %rsp, %rbp
More informationan infinite loop Processes and Exceptions doing nothing on a busy system timing nothing
an infinite loop Processes and Exceptions int main(void) { while (1) { /* waste CPU time */ If I run this on a lab machine, can you still use it? even if the machine only has one core? 1 2 timing nothing
More informationMachine Language CS 3330 Samira Khan
Machine Language CS 3330 Samira Khan University of Virginia Feb 2, 2017 AGENDA Logistics Review of Abstractions Machine Language 2 Logistics Feedback Not clear Hard to hear Use microphone Good feedback
More informationlast time out-of-order execution and instruction queues the data flow model idea
1 last time 2 out-of-order execution and instruction queues the data flow model idea graph of operations linked by depedencies latency bound need to finish longest dependency chain multiple accumulators
More informationCS 107. Lecture 13: Assembly Part III. Friday, November 10, Stack "bottom".. Earlier Frames. Frame for calling function P. Increasing address
CS 107 Stack "bottom" Earlier Frames Lecture 13: Assembly Part III Argument n Friday, November 10, 2017 Computer Systems Increasing address Argument 7 Frame for calling function P Fall 2017 Stanford University
More informationUniversity of Washington
Roadmap C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Assembly language: Machine code: Computer system: get_mpg: pushq %rbp movq %rsp, %rbp... popq %rbp
More informationChangelog. Assembly (part 1) logistics note: lab due times. last time: C hodgepodge
Changelog Assembly (part 1) Corrections made in this version not seen in first lecture: 31 August 2017: slide 34: split out from previous slide; clarify zero/positive/negative 31 August 2017: slide 26:
More informationUnoptimized Code Generation
Unoptimized Code Generation Last time we left off on the procedure abstraction Saman Amarasinghe 2 6.035 MIT Fall 1998 The Stack Arguments 0 to 6 are in: %b %rbp %rsp %rdi, %rsi, %rdx, %rcx, %r8 and %r9
More informationCorrections made in this version not seen in first lecture:
Assembly (part 1) 1 Changelog 1 Corrections made in this version not seen in first lecture: 31 August 2017: slide 34: split out from previous slide; clarify zero/positive/negative 31 August 2017: slide
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 informationx86-64 Programming II
x86-64 Programming II CSE 351 Winter 2018 Instructor: Mark Wyse Teaching Assistants: Kevin Bi Parker DeWilde Emily Furst Sarah House Waylon Huang Vinny Palaniappan http://xkcd.com/409/ Administrative Homework
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 informationAssembly Programming III
Assembly Programming III CSE 410 Winter 2017 Instructor: Justin Hsia Teaching Assistants: Kathryn Chan, Kevin Bi, Ryan Wong, Waylon Huang, Xinyu Sui Facebook Stories puts a Snapchat clone above the News
More informationCSE 351 Midterm - Winter 2017
CSE 351 Midterm - Winter 2017 February 08, 2017 Please read through the entire examination first, and make sure you write your name and NetID on all pages! We designed this exam so that it can be completed
More informationCS 2505 Computer Organization I Test 2. Do not start the test until instructed to do so! printed
Instructions: Print your name in the space provided below. This examination is closed book and closed notes, aside from the permitted one-page fact sheet. Your fact sheet may contain definitions and examples,
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 informationMachine/Assembler Language Putting It All Together
COMP 40: Machine Structure and Assembly Language Programming Fall 2015 Machine/Assembler Language Putting It All Together Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah
More informationData Representa/ons: IA32 + x86-64
X86-64 Instruc/on Set Architecture Instructor: Sanjeev Se(a 1 Data Representa/ons: IA32 + x86-64 Sizes of C Objects (in Bytes) C Data Type Typical 32- bit Intel IA32 x86-64 unsigned 4 4 4 int 4 4 4 long
More informationSYSTEMS PROGRAMMING AND COMPUTER ARCHITECTURE Assignment 5: Assembly and C
Fall Term 2016 SYSTEMS PROGRAMMING AND COMPUTER ARCHITECTURE Assignment 5: Assembly and C Assigned on: 20th Oct 2016 Due by: 27th Oct 2016 Pen & Paper exercise Assembly Code Fragments Consider the following
More informationCSE 401/M501 Compilers
CSE 401/M501 Compilers Code Shape I Basic Constructs Hal Perkins Autumn 2018 UW CSE 401/M501 Autumn 2018 K-1 Administrivia Semantics/type check due next Thur. 11/15 How s it going? Be sure to (re-)read
More information