0% found this document useful (0 votes)
43 views15 pages

Rec 08

The document provides an overview and study guide for an upcoming midterm exam in an Introduction to Computer Systems course. It outlines exam logistics, topics to study including bits, bytes, integers, floating point representation, assembly language, arrays, and caching concepts. It also includes some example assembly code and practice questions.

Uploaded by

akram
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views15 pages

Rec 08

The document provides an overview and study guide for an upcoming midterm exam in an Introduction to Computer Systems course. It outlines exam logistics, topics to study including bits, bytes, integers, floating point representation, assembly language, arrays, and caching concepts. It also includes some example assembly code and practice questions.

Uploaded by

akram
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Carnegie Mellon

Midterm Review

15-213: Introduction to Computer Systems


Recitation 8: Monday, Oct. 19, 2015
Ben Spinelli

1
Carnegie Mellon

Agenda
 Midterm Logistics
 Brief Overview of some topics
 Practice Questions

2
Carnegie Mellon

Midterm
 Tues Oct 20th to Fri Oct 23th.
 Duration – Designed to be take in 80min, but you have up to 4 hrs
 If you have not signed up for a slot online, do so now.
 You will only be allowed to take it during your slot
 Bring your student ID with you
 Note Sheet – ONE double sided 8 ½ x 11 paper
 No worked out problems on that sheet
 No office hours this week
 You can still email the list
 But responses might be slow due to volume, so be proactive, and
read the book/lectures slides carefully beforehand

3
Carnegie Mellon

Midterm
 What to study?
 Chapters 1-3 and Chapter 6
 How to Study?
 Read each chapter 3 times, work practice problems and do
problems from previous exams.
 Online practice exam allows you to get a feel for the format of the
exam
 Some old practice exams include questions that use the IA32
architecture. You will only need to know x86-64 for the
midterm.

4
Carnegie Mellon

Bits, Bytes & Integers


 Know how to do basic bit operations by hand
 Shifting, addition, negation, and, or, xor, etc.
 If you have w bits
 What are the largest/smallest representable signed numbers?
 What are the largest/smallest representable unsigned numbers?
 What happens to the bits when casting signed to unsigned (and
vice versa)?
 Distinguish between logical and bitwise operators
 What happens in C if you do operations on mixed types
(either different size, or signedness?)

5
Carnegie Mellon

Floating Point (IEEE Format)


 Sign, Exponent, Mantissa
 (−1)𝑠 × 𝑀 × 2𝐸
 s – sign bit
 M – Mantissa/Fraction bits
 E – Determined by (but not equal to) exponent bits
 Bias (2𝑘−1 − 1)
 Three main categories of floats
 Normalized: Large values, not near zero
 Denormalized: Small values close to zero
 Special Values: Infinity/NaN

6
Carnegie Mellon

Floating Point (IEEE Format)

 Floating Point Rounding


 Round-up – if the spilled bits are greater than half
 Round-down – if the spilled bits are less than half
 Round to even – if the spilled bits are exactly equal to half

7
Carnegie Mellon

8
Carnegie Mellon

Assembly Loops
 Recognize common assembly instructions
 Know the uses of all registers in 64 bit systems
 Understand how different control flow is turned into
assembly
 For, while, do, if-else, switch, etc
 Be very comfortable with pointers and dereferencing
 The use of parens in mov commands.
 %rax vs. (%rax)
 The options for memory addressing modes:
 R(Rb, Ri, S)
 lea vs. mov

9
Carnegie Mellon

Assembly Loop
00000000004004b6 <mystery>:
4004b6: mov $0x0,%eax
4004bb: jmp 4004d3 <mystery+0x1d>
4004bd: movslq %eax,%rdx
4004c0: lea (%rdi,%rdx,4),%rcx
4004c4: mov (%rcx),%edx
4004c6: test $0x1,%dl
4004c9: jne 4004d0 <mystery+0x1a>
4004cb: add $0x1,%edx
4004ce: mov %edx,(%rcx)
4004d0: add $0x1,%eax
4004d3: cmp %esi,%eax
4004d5: jne 4004bd <mystery+0x7>
4004d7: repz retq

10
Carnegie Mellon

Assembly – Stack
 How arguments are passed to a function
 x86-64
 Return value from a function
 How these instructions modify stack
 call
 leave
 ret
 pop
 push

11
Carnegie Mellon

Array Access
 A suggested method for these problems:
 Start with the C code
 Then look at the assembly Work backwards!
 Understand how in assembly, a logical 2D array is implement as a
1D array, using the width of the array as a multiplier for access

12
Carnegie Mellon

13
Carnegie Mellon

Caching Concepts
 Dimensions: S, E, B
 S: Number of sets
 E: Associativity – number of lines per set
 B: Block size – number of bytes per block (1 block per line)
 Given Values for S,E,B,m
 Find which address maps to which set
 Is it a Hit/Miss? Is there an eviction?
 Hit rate/Miss rate
 Types of misses
 Which types can be avoided?
 What cache parameters affect types/number of misses?

14
Carnegie Mellon

Questions/Advice
 Relax!
 Work Past exams!
 Email us - ([email protected])

15

You might also like