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