Final Exam Review Slides
Fall 2017
Final Exam Review Slides Fall 2017 1 Review Topics Number - - PowerPoint PPT Presentation
Final Exam Review Slides Fall 2017 1 Review Topics Number Representation C Programming LC-3 ISA, Programming, Pointers/Stack/Heap Logic: Transistors/Gates, Boolean algebra/Combinational Logic Sequential Logic LC-3 dataflow and control
Fall 2017
2
3
4
Or 0xBF400000 Sign is 1 – number is negative. Exponent field is 01111110 = 126 – 127 = -1 (decimal). Fraction is 1.100000000000… = 1.5 (decimal).
5
Number is positive – sign is 0 Fraction is 100.01 (binary), normalize to 1.0001 * 22 Exponent is 2 + 127 = 129 (decimal) = 10000001
6
7
8
9
10
11
12
13
14
15
16
17
LD: PC-relative mode LDR: base+offset mode LDI: indirect mode
ST: PC-relative mode STR: base+offset mode STI: indirect mode
LEA: immediate mode does not access memory
18
19
20
Main program to illustrate stack convention: .ORIG x3000 MAIN LD R6,STACK ; init stack pointer LD R1,OPERAND1 ; load second operand PUSH R1 ; PUSH second operand LD R0,OPERAND0 ; load first operand PUSH R0 ; PUSH first operand JSR FUNCTION ; call function LDR R0,R6,#0 ; POP return value ADD R6,R6,#3 ; unwind stack ST R0,RESULT ; store result HALT
21
Local Variable Frame Pointer Return Address Return Value First Operand Second Operand
22
Local Variable Frame Pointer Return Address Return Value First Operand Second Operand
FP FP[0] FP[1] FP[2] FP[3] FP[4] FP[5] Stack before STR instruction
Function code to illustrate stack convention: FUNCTION ADD R6,R6,#-1 ; alloc return value PUSH R7 ; PUSH return address PUSH R5 ; PUSH frame pointer ADD R5,R6,#-1 ; FP = SP-1 ADD R6,R6,#-1 ; alloc local variable LDR R2,R5,#4 ; load first operand LDR R3,R5,#5 ; load second operand ADD R4,R3,R2 ; add operands STR R4,R5,#0 ; store local variable stack exit code STR R4,R5,#3 ; store return value ADD R6,R5,#1 ; SP = FP+1 POP R5 ; POP frame pointer POP R7 ; POP return address RET ; return
23
24
A B T1 T2 T3 T4 C Closed Closed Open Open 1 1 Closed Open Open Closed 1 Open Closed Closed Open 1 1 Open Open Closed Closed
25
A B C V W X Y Z 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
A B Cin S Cout 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Boolean logic lets us reduce the circuit
= A’C’ + AB
= A’C+AC = C
A B C X Y 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B
A\BC
00 01 11 10
1 1
1
1 1
A C B
A\BC
00 01 11 10
1 1
1
1 1 A C
(usually a power of 2)
(e.g., byte-addressable)
12/8/2017 YKM
34
Q Q Clock D
D Next Q
Clock Rising edge: input sampled
State Q is always available
12/8/2017 YKM
35
Combinational Logic Circuit Storage Elements
Mealy type: general Moore type: Output depends
Input Present State Next State X A B A B 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 2 3 4 5
State bit S1 State bit S0 Switch on Switch off Outputs
Input Present State Next State Output In S1 S0 S1 S0 ZYX 000 1 100 1 110 1 1 111 1 1 000 1 1 1 100 1 1 1 1 110 1 1 1 111
FSM inputs FSM Outputs FSM State
Instruction Fetch: S18: MAR<-PC, PC<-PC+1, If no INT, go to S33 To implement MAR<-PC needs: GatePC =1, LD.MAR = 1, PC = PC+1 needs: PCMUX select PC+1, LD.PC =1 For each state
45
46
Four loads:
time
Pipelined:
Time in example
Non-stop
– Ex: AMD Opteron x4 – CPI can be less than 1!.
47
Without parallelism: total time needed = 200+500+500+300 = 1500 ns. With Task level parallelism: 200 +500 (B and C in parallel) +300 = 1000 ns.
48
Processor Control Datapath Memory Devices Input Output
Cache Main Memory
Secondary
Memory (Disk)
Level Access time Size Cost/GB Registers 0.25 ns 48+ 64,128, 32b
L1,L2,L3 0.5 ns 5MB 125 Memory 1000 ns 8GB 4.0 SSD 100K ns 0.25 Disk 1000K ns 1 TB 0.02
51
Processor assumes a certain memory addressing scheme: A block of data is called a virtual page An address is called virtual (or logical) address Main memory has a different addressing scheme: Real memory address is called a physical address, MMU translates virtual address to physical address Complete address translation table is large and must therefore reside in main memory MMU contains TLB (translation lookaside buffer), which is a small cache of the address translation table