review session - seoul national universityarchi.snu.ac.kr/.../slides/final_review.pdf ·...

42
컴퓨터 개념 및 실습 Review session Bryan S. Kim

Upload: others

Post on 19-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

컴퓨터 개념 및 실습

Review session

Bryan S. Kim

Page 2: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

Logistics of the exam

• On 6/12, Wednesday, @ 14:30 – 16:50

• In-class @ 301-203

• Covers Chapters 1-18

• Closed-book, closed-notes

• Bring your ID

• Only writing utensils will be allowed on your desk (no electronics!)

Page 3: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6
Page 4: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

Logistics of today

• High-level overview of high-level languages

• Some of the questions from last year

• Some of the exercises from the text

Page 5: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

컴퓨터 개념 및 실습

High-level overview of high-level languages

Bryan S. Kim

Page 6: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

In the world of assembly

ISA

Micro-architecture

Binary (executable)

Assembly program

Assembler

Page 7: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

In the world of assembly

ISA

Micro-architecture

Binary (executable)

Assembly program

Assembler

Q: What does the ISA hide/expose? Q: What does the assembler hide/expose?

Page 8: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

In the world of assembly

ISA

Micro-architecture

Binary (executable)

Assembly program

Assembler

We want to abstract away more low-level details!

Page 9: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

C as a high-level language

Hardware

C Program

Compiler

Looks at entire program

Generates binary

Page 10: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

C as a high-level language

Hardware

C Program

Compiler

Looks at entire program

Generates binary

We need to... Use correct syntax Understand the semantics Refine algorithm into a

sequence of C statements

Page 11: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

C as a high-level language

Hardware

C Program

Compiler

Looks at entire program

Generates binary

We need to... Use correct syntax Understand the semantics Refine algorithm into a

sequence of C statements

Understand how a program in C translates into binary

Page 12: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

C as a high-level language

Hardware

C Program

Compiler

Looks at entire program

Generates binary

We need to... Use correct syntax Understand the semantics Refine algorithm into a

sequence of C statements

Understand how a program in C translates into binary

Learn powerful programming constructs

Page 13: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

컴퓨터 개념 및 실습

Some questions from last year

Bryan S. Kim

Page 14: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6
Page 15: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

X S1 S0 Z D1 D0

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

Page 16: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

X S1 S0 Z D1 D0

0 0 0 1

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 0

Z = NOR(S1, S0)

Page 17: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

Z = NOR(S1, S0) D1 = OR(S0, AND(~X, S1))

X S1 S0 Z D1 D0

0 0 0 1 0

0 0 1 0 1

0 1 0 0 1

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 0

1 1 1 0 1

Page 18: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

Z = NOR(S1, S0) D1 = OR(S0, AND(~X, S1)) D0 = NAND(S0, AND(~X, S1))

X S1 S0 Z D1 D0

0 0 0 1 0 1

0 0 1 0 1 1

0 1 0 0 1 1

0 1 1 0 1 0

1 0 0 1 0 1

1 0 1 0 1 1

1 1 0 0 0 1

1 1 1 0 1 1

Page 19: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6
Page 20: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

; R4 0

; R3 0

; R0 x4000

Page 21: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

; R4 0

; R3 0

; R0 x4000

; R1 M[x4000] ; R2 ~R1

; If R1 is xFFFF, goto DONE

Page 22: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

; R4 0

; R3 0

; R0 x4000

; R1 M[x4000] ; R2 ~R1

; If R1 is xFFFF, goto DONE ; R2 R1[3:0]

; If R1[3:0] is zero, goto L1

Page 23: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

; R4 0

; R3 0

; R0 x4000

; R1 M[x4000] ; R2 ~R1

; If R1 is xFFFF, goto DONE ; R2 R1[3:0]

; If R1[3:0] is zero, goto L1

; Increment R4 (if R1[3:0] is not zero)

; goto NEXT

; Increment R3 (if R1[3:0] is zero)

Page 24: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

; R4 0

; R3 0

; R0 x4000

; R1 M[x4000] ; R2 ~R1

; If R1 is xFFFF, goto DONE ; R2 R1[3:0]

; If R1[3:0] is zero, goto L1

; Increment R4 (if R1[3:0] is not zero)

; goto NEXT

; Increment R3 (if R1[3:0] is zero) ; R0 R0 + 1 (goto next mem location)

; goto LOOP

; HALT

Page 25: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

Starting from x4000, goes

through consecutive memory locations until it reaches xFFFF.

Counts the number of numbers that are divisible by 16 (or a multiple of 16), and stores in R3.

Counts the number of numbers that are not divisible by 16 and stores in R4.

Page 26: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6
Page 27: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6
Page 28: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Page 29: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Page 30: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 3 0 0 0 0 0 0 0 0 0 0 0 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Arg0 for watt

Page 31: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 3 0

x3006 xEFFF

0 0 0 0 0 0 0 0 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Arg0 for watt

Ret val to main

Ret addr to main

Dyn link of main

Page 32: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 3 0

x3006 xEFFF

0 0 0 0 0 0 0 0 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Arg0 for watt

Ret val to main

Ret addr to main

Dyn link of main

watt’s var: w

Page 33: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 3 0

x3006 xEFFF

0 7

xEFFD 0 0 0 0 0 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Arg0 for watt

Ret val to main

Ret addr to main

Dyn link of main

watt’s var: w

Arg1 for volta

Arg0 for volta

Page 34: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 3 0

x3006 xEFFF

0 7

xEFFD 0

x310A xEFF9

0 0 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Arg0 for watt

Ret val to main

Ret addr to main

Dyn link of main

watt’s var: w

Arg1 for volta

Arg0 for volta

Ret val to watt

Ret addr to watt

Dyn link of watt

Page 35: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 3 0

x3006 xEFFF

0 7

xEFFD 0

x310A xEFF9

0 0 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Arg0 for watt

Ret val to main

Ret addr to main

Dyn link of main

watt’s var: w

Arg1 for volta

Arg0 for volta

Ret val to watt

Ret addr to watt

Dyn link of watt

volta’s var: a

volta’s var: b

Page 36: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 3 0

x3006 xEFFF

0 7

xEFFD 0

x310A xEFF9

3 6 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Arg0 for watt

Ret val to main

Ret addr to main

Dyn link of main

watt’s var: w

Arg1 for volta

Arg0 for volta

Ret val to watt

Ret addr to watt

Dyn link of watt

volta’s var: a

volta’s var: b

Page 37: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

// x3005

// x3008

// x3109

5 4 3 0

x3006 xEFFF

0 7

xEFFD 6

x310A xEFF9

3 6 0 0

xEFFF

xEFFE

xEFFD

xEFFC

xEFFB

xEFFA

xEFF9

xEFF8 xEFF7

xEFF6

xEFF5

xEFF4

xEFF3

xEFF2

xEFF1

xEFF0

main’s var: a

main’s var: b

Arg0 for watt

Ret val to main

Ret addr to main

Dyn link of main

watt’s var: w

Arg1 for volta

Arg0 for volta

Ret val to watt

Ret addr to watt

Dyn link of watt

volta’s var: a

volta’s var: b

Page 38: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6
Page 39: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

gcd(72, 52)

gcd(52, 20)

gcd(20, 12)

gcd(12, 8)

gcd(8, 4)

gcd(4, 0)

gcd(52, 72)

Page 40: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

gcd(72, 52)

gcd(52, 20)

gcd(20, 12)

gcd(12, 8)

gcd(8, 4)

gcd(4, 0)

gcd(52, 72)

4

4

4

4

4

4

Page 41: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

컴퓨터 개념 및 실습

Some text exercises

Bryan S. Kim

Page 42: Review session - Seoul National Universityarchi.snu.ac.kr/.../slides/final_review.pdf · 2019-07-12 · // x3005 // x3008 // x3109 5 4 3 0 x3006 xEFFF 0 7 xEFFD 0 x310A xEFF9 3 6

Some exercises

• Chap. 11: 5, 6, 7

• Chap. 12: 5, 12, 20

• Chap. 14: 15

• Chap. 15: 3

• Chap. 16: 1, 3, 7, 12

• Chap. 17: 1, 5

• Chap. 18: 4, 8