๐Ÿ“š ์ปดํ“จํ„ฐ ๊ตฌ์กฐ ๊ธฐ๋ง๊ณ ์‚ฌ ์ •๋ฆฌ

๐Ÿ“š ์ปดํ“จํ„ฐ ๊ตฌ์กฐ ๊ธฐ๋ง๊ณ ์‚ฌ ์ •๋ฆฌ

๊ธฐ๋ง

3

๋‚˜๋ˆ—์…ˆ : dividend๋ฅผ divisor๋กœ ๋‚˜๋ˆ ์„œ quotient์™€ remainder๋ฅผ ์–ป์–ด๋‚ธ๋‹ค. ์ด๋•Œ ๊ณฑ์…ˆ๊ณผ ๋น„์Šทํ•˜๊ฒŒ shift์™€ sub๋ฅผ ํ†ตํ•ด์„œ ํ•˜๋Š”๋ฐ, divisor๋Š” ์™ผ์ชฝ์— ๋”ฑ๋ถ™์—ฌ๋†“๊ณ  ํ•˜์œ„๋ฅผ 0์œผ๋กœ ์ฑ„์šฐ๊ณ  ์‹œ์ž‘ํ•œ๋‹ค. ๋งค ๋ฐ˜๋ณต๋งˆ๋‹ค ๋ชซ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ž๋ฆฌ๋ฅผ ์˜ฎ๊ฒจ์ค˜์•ผํ•˜๋ฏ€๋กœ quotient๋Š” left shift, divisor๋Š” ๋ชจ๋“  ์ž๋ฆฌ์—๋Œ€ํ•ด ์—ฐ์‚ฐ์„ ์‹œ์ž‘ํ•ด์•ผํ•˜๊ณ  ์™ผ์ชฝ์— ๋ถ™์–ด์„œ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— right shift ํ•ด์ฃผ๋ฉด์„œ ๋ฐ˜๋ณตํ•œ๋‹ค โ† ์‚ฌ๋žŒ์ด ํ•˜๋Š” ๊ณ„์‚ฐ์ด ์ด๋ ‡๋‹ค๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์‹ค์ œ ๊ธฐ๊ณ„์—์„œ ํ•˜๋Š”๊ฒŒ ์ด๋ ‡๊ฒŒ ์ž‘๋™ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž„..!

images

division flow char dividend(remainder) ์—์„œ ์˜ค๋ฅธ์ชฝ์„ 0์œผ๋กœ ์ฑ„์šด divisor๊ฐ’์œผ๋กœ ๋นผ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ remainder์— ์ €์žฅํ•œ๋‹ค. ๋ชซ๊ฐ’์€ ์™ผ์ชฝ shift๋ฅผ 1ํšŒ ์ง„ํ–‰ํ•ด ์ƒˆ๋กœ์šด ๊ฐ’(๋ชซ)์ด ์“ฐ์—ฌ์งˆ ๊ณต๊ฐ„์„ ๋งŒ๋“œ๋Š”๋ฐ, ๋งŒ์•ฝ remainder๊ฐ€ 0๋ณด๋‹ค ์ž‘์•„์กŒ๋‹ค๋ฉด remainder๋ฅผ ๋นผ๊ธฐ ์ „์œผ๋กœ ์›์ƒ๋ณต๊ตฌ๋ฅผ ํ•˜๊ณ  quotient์˜ ์ƒˆ ๋น„ํŠธ๋กœ 0์„์ค€๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋บ€ ๊ฐ’์„ ๊ณ ๋ƒฅ remainder๋กœ ๋‚จ๊ฒจ๋†“๊ณ  quotient๋Š” 1์„ ์ค€๋‹ค. divisor๋ฅผ right shift ํ•ด์ค€๋‹ค. ์ด๊ฑธ 65๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ๋ชจ๋“  ๋น„ํŠธ์— ๋Œ€ํ•ด ์ ์šฉํ•œ๋‹ค.

์ดˆ๊ธฐ ๋‚˜๋ˆ—์…ˆ ํšŒ๋กœ : divisor๋Š” ์™ผ์ชฝ์— ๋ถ™์–ด์žˆ๋Š”์ฑ„๋กœ ์‹œ์ž‘(์˜ค๋ฅธ์ชฝ์€ 0์œผ๋กœ ์ฑ„์›Œ์ ธ์žˆ๋‹ค), ๋งค ๋ฐ˜๋ณต๋งˆ๋‹ค right shift. quotient๋Š” ๋งค ๋ฐ˜๋ณต๋งˆ๋‹ค left shift. remainder์—์„œ divisor๋ฅผ ๋นผ๊ณ  ํŒ๋ณ„ํ•ด์„œ ๋ชซ์„ ๋„ฃ์–ด์ฃผ๊ณ  ๋ฐ˜๋ณต. ๋ฐ˜๋ณต๋•Œ shift.

n์ž๋ฆฌ์—ฐ์‚ฐ์ด๋ฉด ์—ฐ์‚ฐ์„ n+1๋ฒˆ ํ•œ๋‹ค 0111 / 0010 0000 / 0010 0000 / 1110 0111 โ†’ ์—ฐ์‚ฐ
0000 / 0010 0000 / 0000 0111 โ†’ quotient ์ˆ˜์ • 0000 / 0001 0000 / 0000 0111 โ†’ divisor ์ˆ˜์ • โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”- 0000 / 0001 0000 / 1111 0111 0000 / 0001 0000 / 0000 0111 0000 / 0000 1000 / 0000 0111 โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”- 0000 / 0000 1000 / 1111 1111 0000 / 0000 1000 / 0000 0111 0000 / 0000 0100 / 0000 0111 โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”- 0000 / 0000 0100 / 0000 0011 0001 / 0000 0100 / 0000 0011 0001 / 0000 0010 / 0000 0011 โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”- 0001 / 0000 0010 / 0000 0011 0011 / 0000 0010 / 0000 0001 0011 / 0000 0001 / 0000 0001

๊ฐœ์„ ๋œ ๋ฒ„์ „์˜ ๋‚˜๋ˆ—์…ˆ ํšŒ๋กœ : reaminder๋Š” ์—ฐ์‚ฐํ• ์ˆ˜๋ก ์ค„์–ด๋“ค๊ฒƒ์ด๊ณ  ๋ชซ์€ ์—ฐ์‚ฐํ• ์ˆ˜๋ก ์ฆ๊ฐ€ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ remainder ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ณต์œ ํ•จ์œผ๋กœ์จ multiplierํšŒ๋กœ์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ยซ์–ด์ผ€ํ–ˆ๋ˆ„์”จ๋ฐœ๋…„์•„;

๋น ๋ฅธ๋ฒ„์ ผ : ๊ณฑ์…ˆ์ฒ˜๋Ÿผ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค : ๊ฐ step๊ฒฐ๊ณผ์˜ ๋ถ€ํ˜ธ๋ฅผ ์•Œ์•„์•ผ ๋บ„์ง€ ๋ง์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ. adder์ฒ˜๋Ÿผ ๊ทธ๋Ÿฐ๊ฑฐ ๊ณ ๋ คํ•  ํ•„์š”์—†์ด ๋‹จ์ˆœํ•˜๊ฒŒ ๋‹ค ๋”ํ•ด๋ฒ„๋ฆฌ๋ฉด ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๊ธฐ๋•Œ๋ฌธ.

๋ถ€ํ˜ธ ๋‚˜๋ˆ—์…ˆ : ์‚ฐ์ˆ  ๋‚˜๋ˆ—์…ˆ์—์„œ๋Š” ๋‚˜๋จธ์ง€๋ฅผ ๋ฌด์กฐ๊ฑด ์–‘์ˆ˜๋กœ ๋งŒ๋“ค์–ด์ค˜์•ผํ•œ๋‹ค. ๊ทผ๋ฐ ๊ทธ๊ฑธ ๊ทธ๋Œ€๋กœ ์ปดํ“จํ„ฐ ํšŒ๋กœ๋กœ ์˜ฎ๊ธฐ๋ฉด HW๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ง„๋‹ค. ๊ทธ๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ์Œ์ˆ˜ ๋‚˜๋จธ์ง€๋ฅผ ํ—ˆ์šฉํ•ด์„œ ์–‘์ˆ˜ ๋‚˜๋ˆ—์…ˆ์ด๋ž‘ ๋˜‘๊ฐ™์ด ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

์—ฐ์‚ฐ์ž๋ฅผ ๋ชจ๋‘ ์–‘์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๊ฐ ๋ถ€ํ˜ธ๋ฅผ ๊ธฐ์–ตํ•ด๋‘๊ณ  ๊ทธ๋ƒฅ ๋‚˜๋ˆ—์…ˆ์ฒ˜๋Ÿผ ์—ฐ์‚ฐํ•ด์ค€๋‹ค. ๋ชซ์˜ ๋ถ€ํ˜ธ๋Š” ๋‘ operand์˜ ๋ถ€ํ˜ธ๊ฐ€ ๊ฐ™์•˜๋‹ค๋ฉด + ์•„๋‹ˆ๋ผ๋ฉด -๊ฐ€ ๋˜๊ณ  ๋‚˜๋จธ์ง€์˜ ๋ถ€ํ˜ธ๋Š” dividend์˜ ๋ถ€ํ˜ธ๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ฒŒ ๋œ๋‹ค. ex) 7 / -2 = ๋ชซ -3, ๋‚˜๋จธ์ง€ 1 -7 / -2 = ๋ชซ 3, ๋‚˜๋จธ์ง€ -1 7 / 2 = ๋ชซ 3, ๋‚˜๋จธ์ง€ 1 -7 / 2 = ๋ชซ -3, ๋‚˜๋จธ์ง€ -1

RISC-V์—์„œ์˜ ๋‚˜๋ˆ„๊ธฐ instruction : ์ผ๋ฐ˜ R-format์ด๋‹ค. ๊ณฑ์…ˆ๋„ ๊ทธ๋ ‡๊ณ  R-format์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ์„œ ์˜ค๋Š” ์ด์ ์ด ๋งŽ๋‹ค. div๋Š” ๋ชซ์„, rem์€ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค. divu์™€ remu๋Š” ๊ฐ๊ฐ div, rem์˜ unsigned๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค. ๋น„์ •์ƒ์ ์ธ ์ด๋ฒคํŠธ๋Š” ๋ฌด์‹œํ•ด๋ฒ„๋ฆฐ๋‹ค. overflow๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋“ฑ์˜ ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋Š” HW์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค. ๋”ฐ๋ผ์„œ SW์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค.

Floating point

์‹œํ”„์—์„œ ๋‹ค ํ–ˆ์ž–์•„ ๋‹ค์•Œ์ง€?

๋งค์šฐ ํฌ๊ฑฐ๋‚˜ ์ž‘์€์ˆ˜๋Š” ์ •์ˆ˜ ํ‘œํ˜„์„ ํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ๋‹ค๋ฅธ ํ‘œํ˜„์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜์˜จ๊ฒŒ ํ”Œ๋กœํŒ…ํฌ์ธํŠธ

1.xxxx * 2^y์˜ ํ˜•์‹์œผ๋กœ ํ‘œ์‹œํ•˜์—ฌ์„œ ๋งค์šฐ์ž‘์€์ˆ˜์™€ ๋งค์šฐ ํฐ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

(-1)^s * ( 1 + fraction) X 2(exponent - bias)

float์—์„œ๋Š” Exponent๊ฐ€ 8๋น„ํŠธ Fraction์ด 23๋น„ํŠธ (1 + 8 + 23 = 32) bias = 127

double์—์„œ๋Š” Exponent๊ฐ€ 11๋น„ํŠธ Fraction์ด 52๋น„ํŠธ (1 + 11 + 52 = 64) bias = 1023

s : ์Œ์ˆ˜์ด๋ฉด 1, ์ง์ˆ˜์ด๋ฉด 0

fraction : 1.xx๋กœ ์ผ๋‹จ 1์€ ๋ถ™์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์“ด๋‹ค.

exp : ์ง€์ˆ˜๋ฅผ ์–ผ๋งˆ๋‚˜ํ• ๊ฑด์ง€, ๊ทผ๋ฐ ์šฐ๋ฆฌ๋Š” 2์˜๋ณด์ˆ˜๋ฅผ ์“ฐ์ง€๋Š” ์•Š์„๊ฑฐ๋‹ค ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ํ•ญ์ƒ ์–‘์ˆ˜๊ฐ€๋  ์ˆ˜ ์žˆ๊ฒŒ bias๋ฅผ ๋”ํ•ด์ค€๋‹ค. 8๋น„ํŠธ์ˆ˜๋Š” 256๊ฐœ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ์ด๋Š” ์Œ์ˆ˜๋„ ํฌํ•จํ•˜๋‹ˆ๊นŒ ์Œ์ˆ˜๋Š” ํฌํ•จ ์•ˆํ•˜๊ฒŒํ•˜๋ ค๊ณ  ํ•˜๋Š”๊ฑฐ์ž„

ํ”Œ๋กœํŒ…ํฌ์ธํŠธ์˜ ์ •๊ทœํ‘œํ˜„๋ฐฉ์‹์€ exp 000..0๊ณผ 111..1์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋‹ˆ๊นŒ ๊ธฐ๋ณธ์ ์œผ๋กœ 0์„ ํ‘œํ˜„ํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. ๋˜ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ž‘ ํฐ ์ˆ˜์—๋„ ์ œ์•ฝ์ด ์žˆ๋‹ค. 00..1 ์ด๋ž‘ 11..0

๋Œ€์‹  ์ข‹์€์ ์€ ๊ทธ๋ƒฅ ์ •์ˆ˜ํ‘œํ˜„์ด๋ž‘ ๋™์ผํ•˜๊ฒŒ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Œ ๋น„ํŠธ ๋‚˜์—ด๋œ๊ฒŒ ์–ด์จ‹๋“  ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ƒ๊ฐํ•ด๋„ ๋˜๊ฒŒ๋” ๋™์ž‘ํ•จ.

single precision : ๋Œ€๊ฐ• ์†Œ์ˆ˜์  ์•„๋ž˜ 6์ž๋ฆฌ๊นŒ์ง€ ํ‘œํ˜„ ๊ฐ€๋Šฅ

double : precision : ๋Œ€๊ฐ• ์†Œ์ˆ˜์  ์•„๋ž˜ 16์ž๋ฆฌ ๊นŒ์ง€ ํ‘œํ˜„ ๊ฐ€๋Šฅ

ex) -0.75 โ†’ ์Œ์ˆ˜์ด๋ฏ€๋กœ s = 1, ์ด์ง„์ˆ˜๋กœ 0.11์ด๋ฏ€๋กœ 1.1 * 2^-1๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰ frac = 1.1, exp = -1

single precision : E = exp + bias์ด๋ฏ€๋กœ -1 + 127 = 126 = 0111 1110 , M = 100โ€ฆ0(23bit) โ‡’ 1(S) 0111 1110(E) 1000 0000 000(M) = 1011 1111 0100 0000 โ€ฆ. 0000

**double precision : E = -1 + 1023 = 1022 = 0111 1111 110, M = 100..0(52bit) โ‡’ 1(S) 0111 1111 110(E) 100..0(M) = 1011 1111 1110 1000 0000 0000 โ€ฆ. 0000

๋น„๊ต์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋˜๋Š” ๋ถ€ํ˜ธ๋น„ํŠธ, ์ง€์ˆ˜๋น„ํŠธ, ์œ ํšจ์ˆ˜๋น„ํŠธ ์ˆœ์œผ๋กœ ๋ฐฐ์น˜๊ฐ€๋œ๋‹ค. ์•ž์„œ๋งํ–ˆ๋“ฏ ๋น„๊ต์— ํฐ ์ด๋“์ด๋œ๋‹ค.

์—ญ์œผ๋กœ ๋ฐ”๊ฟ”๋ณด์ž๋ฉด (single precision) 1100 0000 1010 00โ€ฆ00

single precision : S = 1, E = 1000 0001, M = 0100 0000 โ€ฆ. 0000 โ†’ S = 1, E = 129 โ‡’ exp = 2, frac = 1.01 โ‡’ (-1)^1 * 1.01 * 2^2 = -101 = -5

์˜ค๋ฒ„ํ”Œ๋กœ์šฐ : ์ง€์ˆ˜๋ถ€๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ exponent field๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ

์–ธ๋”ํ”Œ๋กœ์šฐ : 0์ด ์•„๋‹Œ ์‹ค์ˆ˜๋ถ€๊ฐ€ ๋„ˆ๋ฌด์ž‘์•„์„œ ํ‘œํ˜„์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ, ์ง€์ˆ˜๋ถ€์˜ ๊ฐ’์ด ์Œ์ˆ˜๋กœ ๋„ˆ๋ฌดํฐ ๊ฒฝ์šฐ

๋น„์ •๊ทœํ™”

exponent๊ฐ€ 0์ธ๊ฒฝ์šฐ์—” frac์˜ ๊ฑฐ์ €์ฃผ๋Š” ๋น„ํŠธ๋„ 0์œผ๋กœ ์นœ๋‹ค. ๊ทธ๋Ÿผ ๋” ์ž‘์€๊ฐ’์„ ํ‘œํ˜„ํ•˜๊ฒŒ๋œ๋‹ค. ๋งŒ์•ฝ frac๋„ 0์ด๋ผ๋ฉด ๊ธฐ์กด์—” ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋˜ 0์„ ๋œปํ•˜๊ฒŒ๋œ๋‹ค. ์ด ๊ฐ’์€ s์— ๋”ฐ๋ผ ์Œ ํ˜น์€ ์–‘์˜ 0์ด๋œ๋‹ค.

exponent๊ฐ€ 11โ€ฆ11์ธ ๊ฒฝ์šฐ์—” frac์— ๋”ฐ๋ผ ๊ฐ’์ด ๋‹ฌ๋ผ์ง„๋‹ค. frac์ด 0์ธ๊ฒฝ์šฐ s์— ๋”ฐ๋ผ ์Œ ํ˜น์€ ์–‘์˜ ๋ฌดํ•œ๋Œ€๊ฐ€ ๋˜๊ณ , frac์ด 0์ด ์•„๋‹Œ๊ฒฝ์šฐ์—” NaN์ฆ‰, ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ํ‘œํ˜„์ด ๋œ๋‹ค.

์‹ค์ˆ˜ํ‘œํ˜„์˜ ์—ฐ์‚ฐ์€ ๊ณฑ์…ˆ์ด ์˜คํžˆ๋ ค ๋ง์…ˆ๋ณด๋‹ค ์‰ฝ๋‹ค. ๋”ํ•  ๋•Œ ์ง€์ˆ˜๊ฐ€ ํฐ ์• ํ•œํ…Œ ์ž‘์€์• ๋ฅผ allignํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค. ์–ด๋–ป๊ฒŒํ•˜๋˜ ์†์‹ค์€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ์ž‘์€๋†ˆํ•œํ…Œ ๋งž์ถ”๋Š”๊ฑฐ๋ณด๋‹จ ํฐ๋†ˆํ•œํ…Œ ๋งž์ถ”๋Š”๊ฒŒ ์†์‹ค์ด ์ ๋‹ค.

ex) (1.000 * 2^-1) + (-1.110 * 2^-2)

  • ํฐ๋†ˆํ•œํ…Œ ์ •๋ ฌ์‹œํ‚จ๋‹ค โ‡’ (1.000 * 2^-1) + (-0.111 * 2^-1)
  • significand๋ผ๋ฆฌ ๋”ํ•œ๋‹ค โ‡’ 1.000 + (-0.111) = 0.001 โ‡’ 0.001 * 2^-1
  • ๋‹ค์‹œ ์ •๊ทœํ™”์‹œํ‚จ๋‹ค. ์˜ค๋ฒ„ํ”Œ๋กœ๋‚˜ ์–ธ๋”ํ”Œ๋กœ ์ƒ๊ฒผ๋Š”์ง€๋„ ์ฒดํฌํ•จ โ‡’ 1.000 * 2^-4
  • ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ฐ’์„ ์ˆ˜์ •ํ•œ๋‹ค.

์ด๋Ÿฐ ๋”ํ•˜๊ธฐํ•˜๋“œ์›จ์–ด๋ฅผ ๋งŒ๋“ค๊ธฐ๋Š” ์กด๋‚˜ ๋ณต์žกํ•˜๋‹ค. ํ•œํด๋ฝ์•ˆ์—๋Š” ๋ชปํ•จ

images

์˜คํžˆ๋ ค ๊ณฑ์…ˆ์€ ์‰ฝ๋‹ค.

ex) 1.000 * 2^-1 * -1.110 * 2^-2

  • ์ง€์ˆ˜๋ผ๋ฆฌ ๋”ํ•œ๋‹ค โ‡’ -1 + -2 = -3 ์ง€์ˆ˜๋ผ๋ฆฌ ๋”ํ•œํ›„์— biase๋Š” ํ•œ๋ฒˆ๋งŒ ๋”ํ•ด์ค์‹œ๋‹ค.
  • significand๋ผ๋ฆฌ ๊ณฑํ•œ๋‹ค โ‡’ 1.000 * 1.110 = 1.110 * 2^-3
  • ๋‹ค์‹œ ์ •๊ทœํ™”์‹œํ‚จ๋‹ค. ์˜ค๋ฒ„ํ”Œ๋กœ๋‚˜ ์–ธ๋”ํ”Œ๋กœ ์ƒ๊ฒผ๋Š”์ง€๋„ ์ฒดํฌํ•จ
  • ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ฐ’์„ ์ˆ˜์ •ํ•œ๋‹ค.
  • ๋ถ€ํ˜ธ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค โ‡’ ๊ฐ™์€๊ฑฐ๋ผ๋ฆฌ๊ณฑํ–ˆ์œผ๋ฉด ์–‘, ๋‹ค๋ฅธ๊ฑฐ๋ผ๋ฆฌ๊ณฑํ–ˆ์œผ๋ฉด ์Œ, ์—ฌ๊ธฐ์„  ๋‹ค๋ฅธ๊ฑฐ๋‹ˆ๊นŒ ์Œ โ‡’ -1.110 * 2^-3

ํ”Œ๋กœํŒ… ํฌ์ธํŠธ ์—ฐ์‚ฐ์„ ์œ„ํ•ด์„œ๋Š” ๊ทธ๋ฅผ ์œ„ํ•ด ๋ถ„๋ฆฌ๋œ 32๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋”๋ธ” ํ”„๋ ˆ์‹œ์ „์„ ๊ฐ€์ง€๋Š”๋ฐ, ๋งŒ์•ฝ ์‹ฑ๊ธ€์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜์œ„ 32๋น„ํŠธ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ž„.

๋”ฐ๋ผ์„œ ๋กœ๋“œ์™€ ์Šคํ† ์–ด๋„ ๋ณ„๋„๋กœ ์กด์žฌํ•œ๋‹ค. fld, fsd, flw , fsw ๋กœ ๋‚˜๋‰œ๋‹ค. ์˜ค์ง ์‹ค์ˆ˜๋ฅผ ์œ„ํ•œ ๋ ˆ์ง€์Šคํ„ฐ์ด๊ณ  ์‹ค์ˆ˜๋ฅผ ์œ„ํ•œ instruction์ž„

๋”ฐ๋ผ์„œ ์‹ค์ˆ˜ ์—ฐ์‚ฐ์„ ์œ„ํ•œ instruction๋“ค๋„ ๋”ฐ๋กœ์žˆ๋‹ค. fadd.s, fsub.s, fmul.s, fdiv.s, fsqrt.s ๋“ฑ๋“ฑ..

์–˜๋„ค๋“ค์€ ๋ฌด์กฐ๊ฑด f๋ ˆ์ง€์Šคํ„ฐ์—์„œ๋งŒ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ์ˆ˜์žˆ๋‹ค๊ตฌ~

๋น„๊ต์—ฐ์‚ฐ๊ฐ™์€๊ฒฝ์šฐ์—๋Š” ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“  ํ‘œํ˜„๋ฒ•์€ ๋‹ฌ๋ผ๋„ 1๋Œ€1๋น„๊ต์— ์žˆ์–ด์„œ ์•ž์˜ ๋น„ํŠธ๋ถ€ํ„ฐ ๋’ค๋น„ํŠธ๊นŒ์ง€ ๋™์ผํ•œ๋ฐฉ์‹์œผ๋กœ ํ›‘์–ด๋„๋จ. ๋”ฐ๋ผ์„œ ํšŒ๋กœ๋Š” ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•จ. ๊ทธ์น˜๋งŒ instruction์„ ๋”ฐ๋กœ ๋‘” ์ด์œ ๋Š” ์†Œ์Šค์™€ ๋ฐ์Šคํ‹ฐ๋„ค์ด์…˜์ด ๋‹ค๋ฅธ ๋ ˆ์ง€์Šคํ„ฐ์ด๊ธฐ๋•Œ๋ฌธ์ž„. ํ•˜๋“œ์›จ์–ด์ ์œผ๋ก  ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๊ฒŒํ•˜๊ณ  instruction๋‹จ์—์„œ ๋ถ„๋ฆฌํ•ด๋†“์€ ๊ฒƒ

4

7๊ฐœ์˜ ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ๋‹ค๋ฃฌ๋‹ค. sd, ld, add, sub, and, or, beq

๋ชจ๋“  ์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ๊ณตํ†ต์ ์€ ์ผ๋‹จ PC์—๊ฐ€์„œ ๋‹ค์Œ instruction์ฃผ์†Œ๋ฅผ ์ฝ์–ด์•ผ ํ•œ๋‹ค๋Š”๊ฑฐ๋ž‘, ๋ฒ„๋ฆฌ๋˜ ์–ด์ฉŒ๋˜ ์ผ๋‹จ ์†Œ์Šค๋ ˆ์ง€์Šคํ„ฐ ๋‘๊ฐœ๋ฅผ ์ฝ์–ด์˜จ๋‹ค๋Š”๊ฒƒ์ด๋‹ค. โ† ์“ฐ๋“  ์•ˆ์“ฐ๋“  ์ผ๋‹จ ์ฝ์–ด์˜ค๋„๋ก ์„ค๊ณ„๋˜์–ด์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ณตํ†ต์ ์ธ ์ž‘์—…์ด ๋๋‚˜๋ฉด opcode๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ญ˜ํ•ด์•ผํ• ์ง€๋ฅผ ๋ถ„์„ํ•˜๊ณ  ALU๊ฐ€ ๊ทธ์—์•Œ๋งž๊ฒŒ ์—ฐ์‚ฐ์ž‘์—…์„ ํ•˜๋Š”๊ฑฐ.

๊ธฐ๋ณธ์ ์œผ๋กœ PC๋Š” ์ˆ˜ํ–‰๋’ค ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜์–ด์žˆ๋‹ค. ์šฐ๋ฆฌ์˜ instruction์€ 4๋ฐ”์ดํŠธ์ด๋ฏ€๋กœ ๋งค๋ฒˆ PC์— 4์”ฉ ๋”ํ•ด์ง€๋Š” ๊ตฌ์„ฑ์ด๋‹ค.

๋ชจ๋“  ์—ฐ์‚ฐ์€ ALU์—์„œ. ALU๋Š” ๋”ฐ๋ผ์„œ ์•„์ฃผ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์„ ํ•œ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ์œ„ํ•ด control์ด ํ•„์š”

ํšŒ๋กœ์ƒ์— ๋ณด๋ฉด ๊บพ์ด๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค. ์ด๋Ÿฐ ๊บพ์ด๋Š”๋ถ€๋ถ„์€ ๋ง˜๋Œ€๋กœ ๊บพ์ด๋Š”๊ฒŒ์•„๋‹ˆ๋ผ ๊ฐ ์ƒํ™ฉ์— ์•Œ๋งž์€๊ฑธ ์„ ํƒํ•˜๊ณ  ๋Œ๊ณ  ํ•ด์•ผํ•จ. ์ฆ‰ ์ด๊ฑธ ์„ ํƒํ•ด์ค„ ์‹ ํ˜ธ๋„ ์žˆ์–ด์•ผํ•˜๊ณ  ์‹ค์ œ ์„ ํƒ์ด ์ผ์–ด๋‚˜๋„๋ก mux๋„ ์žˆ์–ด์•ผํ•˜๊ฒ ์ง€

mux๋„ ๋‹ฌ๊ณ  ์ปจํŠธ๋กค๋„ ๋‹ฌ์•„์ฃผ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ๋œ๋‹ค.

images

ํ”Œ๋ฆฝํ”Œ๋กญ : ์กฐํ•ฉํšŒ๋กœ์—์„œ๋Š” ์ž…๋ ฅ์—์˜ํ•ด ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋กœ๋‚˜ํƒ€๋‚˜์ง€๋งŒ ์ˆœ์ฐจํšŒ๋กœ์—์„œ๋Š” ์ด์ „์˜ ์ž…๋ ฅ์ด ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ผ์นœ๋‹ค. ํ”Œ๋ฆฝํ”Œ๋กญ์€ ์ƒ์Šน๋ชจ์„œ๋ฆฌ์—์„œ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ด๋‘”๋‹ค. ํšŒ๋กœ์ƒ์—์„œ ๊ฒฝ์Ÿ์ด ๋ฐœ์ƒํ•˜๋Š”๊ฑธ ๋ง‰๊ธฐ์œ„ํ•ด , ์ฆ‰ ๊ฐ™์€ ์ƒ์Šน๋ชจ์„œ๋ฆฌ์— ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋„๋ก ํ•˜๊ธฐ์œ„ํ•ด ํ”Œ๋ฆฝํ”Œ๋กญ์€ ์‚ฌ์šฉ๋œ๋‹ค.

images

์ด๋ ‡๊ฒŒ ํ•ด์คŒ์œผ๋กœ์จ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. cpu์— ํด๋ฝ์ด ํ•„์š”ํ•œ ์ด์œ 

๋ชจ๋“  ํšŒ๋กœ์— ๋ฐ์ดํ„ฐ๋Š” ์ƒ์Šน๋ชจ์„œ๋ฆฌ์— ๋“ค์–ด๊ฐ€๋„๋ก ํ•œ๋‹ค. ์—ฐ์‚ฐ์ด ์ด๋ค„์งˆ ๋•Œ ์ œ๋Œ€๋กœ ๋œ ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๊ฒฝ์Ÿ์„ ์ œ๊ฑฐํ•ด์ฃผ๋Š”๊ฑฐ์ž„. ๋„ˆ๋ฌด๋นจ๋ผ๋„ ๋А๋ ค๋„์•ˆ๋˜๋‹ˆ๊นŒ ํด๋ฝ์„ ์ž˜ ๋งž์ถฐ์ฃผ์–ด์•ผํ•จ. ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ๋งž์ถ”๋ฉด ์žˆ์œผ๋‚˜๋งˆ๋‚˜๋‹ˆ๊นŒ ๋Šฆ๋Š”๊ฑฐ์— ๋งž์ถฐ์ค˜์•ผํ•จ. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ํด๋ฝ์€ ๊ฐ€์žฅ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ๋†ˆ์— ๋งž์ถฐ์ค˜์•ผํ•จ.

๋ฐ์ดํ„ฐํŒจ์Šค ์ƒ์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์š”์†Œ๋“ค์ด ๋ฐฐ์น˜๋œ๋‹ค. ์ด๋Ÿฐ ๋ฐ์ดํ„ฐํŒจ์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋Š” ์ฒ˜๋ฆฌ๋œ๋‹ค.

ALU, mux, memory์ด๋Ÿฐ๊ฒƒ๋“ค์ด datapath์— ํฌํ•จ๋˜๋Š”๊ฒƒ

๋Œ€์ดํ„ฐํŒจ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ์˜ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ฌ๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๊ฐ€ ๊ฒฝ๋กœ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฐ€๊ฐ€ ์–ด๋–ค ์š”์†Œ๋ฅผ ์“ธ ๊ฒƒ์ธ๊ฐ€ ์–ด๋–ค ์ •๋ณด๋ฅผ ์–ด๋””์— ์ €์žฅํ• ๊ฒƒ์ธ๊ฐ€๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž„. ์˜ˆ๋ฅผ๋“ค์–ด์„œ BEQ๊ฐ™์€๊ฒฝ์šฐ๋Š” ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ์ด๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ PC์—๋“ค์–ด๊ฐ€๋Š”๊ฑฐ์ž„.

fetch ๊ตฌํ˜„ : instruction์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์™€์„œ pc๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค

R๊ตฌํ˜„ : ๋ ˆ์ง€์Šคํ„ฐ ๋‘๊ฐœ๋ฅผ ์ฝ์–ด๋‹ค๊ฐ€ ์—ฐ์‚ฐํ•˜๊ณ  ๊ทธ๊ฑธ ๋ ˆ์ง€์Šคํ„ฐ์— ์“ด๋‹ค. regwrite์ด๋ž‘ aluoperation ํ•„์š”

ls๊ตฌํ˜„ : ๋ ˆ์ง€์Šคํ„ฐ์ฝ๊ณ  immediate์ฒ˜๋ฆฌํ•ด์„œ ์—ฐ์‚ฐํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ์—์„œ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ์—์ ‘๊ทผํ•ด์„œ ์“ด๋‹ค. memwrite, memread, immediate generator๊ฐ€ ํ•„์š”ํ•จ. immediate์€ 12๋น„ํŠธ์ผ์ˆ˜๋„, 32๋น„ํŠธ์ผ์ˆ˜๋„์žˆ๋Š”๋ฐ ์‹ค์ œ ์—ฐ์‚ฐ์—์„  64๋น„ํŠธ๊ฐ€์“ฐ์ด๋‹ˆ๊นŒ ์ด๊ฑธ 64๋น„ํŠธ ์ˆ˜๋กœ ๋งŒ๋“œ๋Š” ์ผ์„ ํ•œ๋‹ค.

b๊ตฌํ˜„ : ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ฝ์–ด์„œ ๋นผ๊ธฐํ•ด์„œ 0์ธ์ง€ํ™•์ธํ•œ๋‹ค. ๊ฐ™์œผ๋ฉด ์ ํ”„ํ•˜๋Š”๊ฑฐ๋‹ˆ๊นŒ. immediate์œผ๋กœ ๋ฐ›์€ offset์œผ๋กœ ํƒ€๊ฒŸ๋„ ๊ณ„์‚ฐํ•œ๋‹ค. ๊ณ„์‚ฐ๋œ๊ฐ’์€ ์ง์ˆ˜๋ณด์žฅ๊ฐ’์ด์—ˆ์œผ๋‹ˆ๊นŒ ์™ผ์ชฝ์œผ๋กœ 1๋ฒˆ ์‰ฌํ”„ํŠธํ•ด์ค€๋‹ค

images

์ฃผ์†Œ๊ณ„์‚ฐ์ด๋‚˜ ์กฐ๊ฑด๊ณ„์‚ฐ์ด๋‚˜ ๋‘˜๋‹ค ํ•œ ALU๋กœ ๋ชปํ•˜๋Š”๊ฑด์•„๋‹Œ๋ฐ ๊ตณ์ด ์•ˆํ•˜๋Š”๊ฑด ์‹œ๊ฐ„์ ์ธ ์ด๋“์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

images

์—ฌ๊ธฐ๊นŒ์ง€ ๋ณธ ๊ฑธ๋กœ ๋งŒ๋“ค์–ด๋‚ธ datapath. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฑด ๋ชจ๋“ ๊ฒŒ ํ•œ ์‚ฌ์ดํด์•ˆ์— ๋๋‚˜๋Š” ๊ทธ๋ฆผ์ด๋‹ค.

ALU Control

ALU๋Š” ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์„ ๋ชจ๋‘ ํ•ด๋‚ผ ์ˆ˜ ์žˆ์–ด์•ผํ•˜๋Š”๋ฐ ๊ทธ ์—ฐ์‚ฐ์„ ๋ˆ„๊ฐ€์ •ํ•ด์ค„๊ฒƒ์ธ๊ฐ€..! Alu๋ฅผ ์ œ์–ดํ•  ์‹ ํ˜ธ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค.

images

ld , sd, add ๋ชจ๋‘ add๋กœ ํ•ด๊ฒฐ๋จ. offset๊ตฌํ•  ๋•Œ add๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค.

branch๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ sub๋กœ ํ•ด๊ฒฐ๋œ๋‹ค. ๋นผ์„œ ๊ฐ™์€๊ฑด์ง€ ํŒ๋ณ„ํ•˜๋‹ˆ๊นŒ

๊ทธ๋Ÿผ ์ด์ œ ์ด ALU control์„ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด๋‚ด๋А๋ƒ

images

opcode๋กœ๋ถ€ํ„ฐ ๋‚˜์˜จ ALUOP๊ณผ func๋กœ ํŒ๋ณ„ํ•œ๋‹ค. ์•ž์„œ๋งํ–ˆ๋œป ld, sd, add ๋ชจ๋‘ ๋ง์…ˆ, beq, sub๋บ„์…ˆ์ธ๊ฑฐ ์ธ์ฆํ–ˆ์ฌฌ? ์ธ์ฆํ–ˆ์ฌฌ?

์—ฌ๊ธฐ์„œ๋ณด๋ฉด์•Œ๊ฒ ์ง€๋งŒ ALUOP 2๋น„ํŠธ๋ž‘ func7 7๋น„ํŠธ, func3 3๋น„ํŠธ๋กœ ALU๊ฐ€ ๋ฌด์Šจ์ผ์„ ํ• ์ง€ ์ •ํ•œ๋‹ค.

Main Control

ALU๊ฐ€ ์—ฐ์‚ฐํ•˜๋Š”๊ฑฐ ๋ง๊ณ ๋„ ๊ฒฐ์ •๋˜์–ด์•ผํ•˜๋Š”๊ฑด ๋งŽ๋‹ค. ์—ฐ์‚ฐ์˜ ์†Œ์Šค๋Š” ์–ด๋””์„œ์˜ฌ๊ฑด์ง€, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ฐ€์ ธ์˜ฌ๊ฑด์ง€, ๋ ˆ์ง€์Šคํ„ฐ์— ์“ธ๊ฑด์ง€.. ๋“ฑ๋“ฑ ๊ทธ๋ฆฌ๊ณ  ALU control์— ์“ฐ์˜€๋˜ Aluop๋„ ๋งŒ๋“ค์–ด์ค˜์•ผํ•จ. ์‚ฌ์‹ค Alu๋„ opcode๋ณด๊ณ  ํ•ด์•ผํ•˜๋Š”๊ฑด ๋งˆ์ฐฌ๊ฐ€์ง„๋ฐ, ๊ทธ๋Ÿผ ๋„ˆ๋ฌด๋ณต์žกํ•ด์ง€๋‹ˆ๊นŒ main์ด ์ˆ˜๊ณ ๋ฅผ ๋œ์–ด์ฃผ๋Š”๊ฑฐ์ž„

images

๊ฒฐ๊ณผ์ ์œผ๋กœ ์ €๋ ‡๊ฒŒ ์˜ต์ฝ”๋“œ ์ธํ’‹ 7๋น„ํŠธ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด

์ด๋กœ๋ถ€ํ„ฐ ๊ฐ ํฌ๋งท์— ์•Œ๋งž๋Š” main control์ด ์ฃผ์–ด์ง„๋‹ค. Rํฌ๋งท๊ฐ™์€๊ฒฝ์šฐ๋Š” ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ๋Š” ๋‹ค ๋˜‘๊ฐ™์€๋ฐ ์—ฐ์‚ฐ๋งŒ ๋‹ฌ๋ผ์ง€๋‹ˆ๊นŒ..!

  • ALUSrc : ์†Œ์Šค๊ฐ€ immediate์ด์•ผ?
  • MemtoReg : ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋ญ ๊ฐ€์ ธ์™€?
  • RegWrite : ๋ ˆ์ง€์Šคํ„ฐ์— ๋ญ˜ ์จ?
  • MemRead : ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ญ˜ ์ฝ์–ด?
  • MemWrite : ๋ฉ”๋ชจ๋ฆฌ์— ๋ญ˜ ์จ?
  • Branch : ๋ธŒ๋žœ์น˜ํ•ด์•ผํ•ด?
images

์•ž์„œ datapath๊ฐ€ ์ค‘์š”ํ•œ๊ฑด ๊ทธ path์ƒ์˜ ์š”์†Œ๋“ค์„ ์–ด๋–ค๊ฑธ ํ†ต๊ณผ์‹œํ‚ค๋А๋ƒ, ๊ทธ๋ฆฌ๊ณ  ์–ด๋””๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ํ•˜๋А๋ƒ์—๋”ฐ๋ผ์„œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ ๊ทธ ๋ง ๊ทธ๋Œ€๋กœ๋‹ค. control์ด ์–ด๋–ค datapath๋ฅผ ์—ด๊ณ  ๋‹ซ๋А๋ƒ์— ๋”ฐ๋ผ ์ž‘์—…์ด๋‹ฌ๋ผ์ง

Q: ์ •์˜๋˜์ง€ ์•Š์€ ์—ฐ์‚ฐ์€ ์–ด๋–ป๊ฒŒ๋จ ? A : datapath์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„์ˆ˜๋„ ์žˆ๊ณ , ๋ฌด์—‡๋ณด๋‹ค ์ •์˜๋˜์ง€ ์•Š์€ ์—ฐ์‚ฐ์ด๋ฉด control์„ ๋งŒ๋“ค์–ด๋‚ด์งˆ ๋ชปํ•˜๋‹ˆ๊นŒ ์ •์ƒ์ž‘๋™ํ•  ์ˆ˜ ์—†์Œ. addi์ฒ˜๋Ÿผ datapath๋Š” ๋‹ค ๊ฐ–์ถฐ์ง„๊ฒฝ์šฐ๋„ ์žˆ์„ ์ˆ˜ ์žˆ์Œ. ์ด๋Ÿฐ๊ฒฝ์šฐ์—” decode๋งŒ ์ž˜ ํ•ด์ฃผ๋ฉด ์ถฉ๋ถ„ํžˆ ์ž‘๋™ํ•˜๊ฒŸ์ฌฌ

๊ฐ ํฌ๋งท์— ๋Œ€ํ•œ datapath์˜ ํ™œ์„ฑ/๋น„ํ™œ์„ฑ์€ pdf 4-28๋ถ€ํ„ฐ ๋ณด๋„๋กํ•ฉ์‹œ๋‹ค.

ํผํฌ๋จผ์Šค ์ด์Šˆ : ์ง€๊ธˆ๊นŒ์ง€ ํ•œ๊ฑด ํ•œ ์‚ฌ์ดํด ์•ˆ์—์„œ ๋ชจ๋“  instruction๋“ค์ด ์ˆ˜ํ–‰๋˜์–ด์•ผํ•˜๋Š” ๊ตฌ์กฐ์˜€๋‹ค. ๊ทผ๋ฐ ์ด๋Ÿฐ์‹์œผ๋กœ ํšŒ๋กœ๋ฅผ ์งœ๋ฒ„๋ฆฌ๋ฉด instruction๋“ค ์ค‘ ๊ฐ€์žฅ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š”๊ฒŒ ์ฃผ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•ด๋ฒ„๋ฆฌ๋‹ˆ๊นŒ ์“ธ๋ฐ์—†์ด ์‹œ๊ฐ„์ด ๋А๋ ค์ง„๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•ด ๊ฐ instruction์„ ์ž‘์€ ๋ถ€๋ถ„์œผ๋กœ ์ชผ๊ฐœ๊ณ  pipeline์„ ํ†ตํ•ด ๋ถ„ํ• ์ฒ˜๋ฆฌํ•˜๋„๋กํ•œ๋‹ค. ์ชผ๊ฐœ์ง„ ๋ถ€๋ถ„์˜ ์‹œ๊ฐ„๋“ค์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ํด๋ฝ์‚ฌ์ดํด์„ ์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

images

ํ•œ ๊ณผ์ •์„ ์ž์ž˜ํ•œ ๊ณผ์ •์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋™์‹œ์— ์‹คํ–‰๋˜๋„๋ก ํ•˜๋ฉด ์‹œ๊ฐ„์ด ์ ˆ์•ฝ๋œ๋‹ค. ์–ด์งœํ”ผ ํ•œ์‚ฌ์ดํด์— ๋‹คํ• ๋ผ๊ณ ๋“ค์–ด๋„ ์ˆœ์ฐจ์ ์œผ๋กœ ์—ฐ์‚ฐ์ด ์ง„ํ–‰๋ ํ…๋ฐ ๋…ธ๋Š”๊ณต๊ฐ„์ด์ƒ๊ธฐ๋‹ˆ๊นŒ

๊ฒน์น˜๋Š” ๊ตฌ๊ฐ„์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์‹œ๊ฐ„ ์ ˆ์•ฝ๋„ ๋งŽ์ด๋œ๋‹ค. ์ฆ‰ speedup์€ n์ด ์ปค์งˆ์ˆ˜๋ก ๋Š˜์–ด๋‚œ๋‹ค.

๊ตฌํš๋‚˜๋ˆ„๊ธฐ

  • IF : Instruction Fetch โ‡’ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ๊ฐ€์ ธ์˜จ๋‹ค.
  • ID : Instruction Decode โ‡’ ๊ฐ€์ ธ์˜จ ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ๋””์ฝ”๋“œํ•ด์„œ Main, ALU Control์„ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.
  • EX : Execute operation โ‡’ ALU control์— ๋”ฐ๋ผ ALU์—์„œ ์—ฐ์‚ฐ์„ํ•œ๋‹ค.
  • MEM : Access Memory โ‡’ datapath์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ• ์ผ์žˆ์œผ๋ฉด ์ ‘๊ทผํ•ด์„œ ์“ฐ๊ฑฐ๋‚˜ ์ฝ๋Š”๋‹ค
  • WB : Write Back โ‡’ ๋ ˆ์ง€์Šคํ„ฐ์— ์จ์ค˜์•ผํ•˜๋ฉด ์จ์ค€๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ์˜ ์„ฑ๋Šฅ์€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ๋งŒ๋“ค์–ด์„œ ํ•˜๋ฏ€๋กœ ์†ํ•ด๋ณด๋Š” ๋ถ€๋ถ„์ด ์ƒ๊ธฐ์ง€๋งŒ ๊ทธ๋ž˜๋„ ์˜ค๋ฒ„๋žฉ๋˜๋Š”๋ถ€๋ถ„์ƒ๊ฐํ•˜๋ฉด ์ด๊ฒŒ ๋‚ซ๋‹ค.. ๊ทธ๋‹ˆ๊นŒ ๊ฐœ๋ณ„ instruction์˜ ์„ฑ๋Šฅ์€ ๋” ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์–ด๋„, ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ๋ถ€๋ถ„์—์„œ๋Š” ์ด๊ฒŒ ๊นกํŒจ์ง€

images

์ด๋ ‡๊ฒŒ ์†ํ•ด๊ฐ€ ์ƒ๊ธฐ์ง€๋งŒ ๊ทธ๋ž˜๋„ ํ›จ์”ฌ ๋นจ๋ฆฌ ๋๋‚œ๋‹ค๋Š”๊ฑฐ ์ธ์ •?์œ ํœด ์ž‘์—…์ด ์ƒ๊ฒจ์„œ ์†ํ•ด๋ณด๋Š”๊ฒƒ

์ด๊ฒฝ์šฐ ์Šคํ”ผ๋“œ์—…์€ pipeline์„ ์•ˆ์“ธ๋•Œ๊ฐ€ ์“ธ๋•Œ๋ณด๋‹ค ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š”๊ฐ€๋ฅผ ์ธก์ •ํ•œ๊ฑฐ๋ผ๊ณ  ๋ณด๋ฉด๋œ๋‹ค. ์•ˆ์“ฐ๋ฉด ํ•œ์‚ฌ์ดํด์— 800์ธ๋ฐ ์“ฐ๊ณ ์„œ ํ•œ์‚ฌ์ดํด์—1000์ด ๋๋‹ค.

๊ฑธ๋ฆฌ๋Š”์‹œ๊ฐ„์€ n๋ฒˆ์˜ instruction์ด ์ˆ˜ํ–‰๋ ๋•Œ ์•ˆ์ผ์œผ๋ฉด 800n, ์ป๋‹ค๋ฉด 1000 + 200(n - 1)์ด๋ฏ€๋กœ speedup์€ 4๊ฐ€๋œ๋‹ค. overwrap๋˜๋Š”๋ถ€๋ถ„์ด ๋นˆํ‹ˆ์—†์—ˆ๋‹ค๋ฉด 5๊ฐ€ ๋์„ ๊ฒƒ. ์Šคํ”ผ๋“œ์—…์˜์ด์ƒ์ ์ธ ์ˆ˜์น˜๋Š” ์Šคํ…Œ์ด์ง€์˜ ์ˆ˜์™€ ๋™์ผํ•จ.

RISCV๋Š” ํŒŒ์ดํ”„๋ผ์ธ์— ํŠนํ™”๋ผ์žˆ๋‹ค. ๋ชจ๋“  ์ธ์ŠคํŠธ๋Ÿญ์…˜์ด 32๋น„ํŠธ๋กœ ๋™์ผํ•˜๊ณ (fetch decode๊ฐ€ ๊ณ ์ •๊ณผ์ •์ด๋ผ ์œ ๋ฆฌ) ํฌ๋งท์˜์ข…๋ฅ˜๊ฐ€ ์ ๋‹ค (mul์ด๋ž‘ div๋„ r์ธ๊ฒƒ์ฒ˜๋Ÿผ) ld/sd๋„ ๋ญ 3๋ฒˆ์งธ์— ๊ณ„์‚ฐ 4๋ฒˆ์งธ์— ์ ‘๊ทผ์ด ์žฅ์ ์ด๋ผ๋Š”๋ฐ ์ด๊ฑด ์ž˜ ๋ชจ๋ฅด๊ฒŸ์๋‹ˆ๋‹ค. ์•„๋งˆ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋”ฐ๋กœ๋‘ฟ๋‹ค๋Š”๊ฑธ ์–ดํ•„ํ•˜๊ณ ์‹ถ์€๊ฑด๊ฐ€?

images

ํŒŒ์ดํ”„๋ผ์ธ์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ. ๊ทผ๋ฐ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๊ฐˆ ์ผ์ด ์ƒ๊ธด๋‹ค.. ํ•ด์ €๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๊ฒƒ์ด์ง€..๋ญ๊ทผ๋ฐ beq๊ฐ€ ๋Œ์•„๊ฐ€๊ธฐ์ „๊นŒ์ง„ ๋ฌธ์ œ๊ฐ€ ์•ˆ๋˜๋‹ˆ๊นŒ ์ผ๋‹จ์€ beq๋ฅผ ํ• ์ง€์•ˆํ• ์ง€๋ชจ๋ฅด๋‹ˆ๊นŒ ๊ทธ๋ƒฅ 4๋”ํ•ด์„œ ๊ณ„์† ๋‹ค์Œ instruction์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ์ „๋žต์„ ์ทจํ•œ๋‹ค. ,๋˜‘๊ฐ™์€๋ฌธ์ œ๊ฐ€ ld๋‚˜ rํฌ๋งท๊ฐ™์ด register์— ์“ฐ๋Š” instruction์—์„œ๋„ ๋ฐœ์ƒํ•œ๋‹ค. ๋’ค๋กœ๊ฐ€์„œ ๋ ˆ์ง€์Šคํ„ฐ์— ์จ์ค˜์•ผํ•˜๋‹ˆ๊นŒ..

pdf40์ชฝ๋ถ€ํ„ฐ ์ฐธ๊ณ ํ•˜์‹œ์˜ค

์ปจํŠธ๋กค๋„ ํ•จ๊ป˜ ๋”ฐ๋ผ๊ฐ€์ค˜์•ผํ•œ๋‹ค ๊ทธ๋ž˜์„œ

ํŒŒ์ดํ”„๋ผ์ธ์ƒ์—๋Š” ํ•œ๊ฐ€์ง€ ์ธ์ŠคํŠธ๋Ÿญ์…˜๋งŒ ์ฃผ๊ตฌ์žฅ์ฐฝ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๋Š”๋‹ค. ๋‹ค์–‘ํ•œ ์ธ์ŠคํŠธ๋Ÿญ์…˜๋“ค์ด ์˜ฌ๋ผ๊ฐ„๋‹ค.

images

ํŒŒ์ดํ”„๋ผ์ธ์—” 5๋‹จ๊ณ„๊ฐ€์žˆ๋‹ค ๊ทธ๋‹ˆ๊นŒ ํ•œ๋ฒˆ์— ์ตœ๋Œ€ 5๊ฐœ์˜ instruction์ด ๊ณต์กดํ•  ์ˆ˜ ์žˆ์Œ.

CC5์—๋Š” ์ด๋Ÿฐ๋ชจ์Šต์ด๋‹ค.

images

WB์˜ ld๊ฐ€ write-backํ•˜๋ฉด ID์˜ ld์ž๋ฆฌ๋กœ์˜จ๋‹ค. ์ด๊ฑธ ๋ง‰๊ธฐ์œ„ํ•ด ์ „๋ฐ˜๋ถ€์™€ ํ›„๋ฐ˜๋ถ€ ๊ฐ๊ฐ ๋”ฐ๋กœ์ปจํŠธ๋กค๋˜๊ฒŒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปจํŠธ๋กค๋„ datapath์™€ ํ•จ๊ป˜ ์ด๋™ํ•ด์ค˜์•ผํ•œ๋‹ค. ID๋‹จ๊ณ„์—์„œ ๋””์ฝ”๋“œ๋Š” ๋™์ผํ•˜๊ฒŒ๋˜์ง€๋งŒ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ถ€๋ถ„์€ ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜๊ฐ€์•ผํ•จ

images

ID์—์„œ ๋งŒ๋“ค์–ด์ง„ ์ปจํŠธ๋กค์€ ID ์ดํ›„๋กœ EX, MEM, WB์—์„œ ์‚ฌ์šฉ์ด๋˜๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ๋˜๊ธฐ ์œ„ํ•ด์„  ๋’ค๋กœ ๋„˜๊ฒจ์ ธ์•ผํ•œ๋‹ค . ํŒŒ์ดํ”„๋ผ์ธ์„ ํ•˜๋‚˜ ์•ˆํ•˜๋‚˜ ์ปจํŠธ๋กค์€ ๋˜‘๊ฐ™์Œ. ๊ทธ๋ƒฅ ๋ณด๋‚ด๋Š”๊ณผ์ •์ด ์ˆ˜๋ฐ˜๋œ๋‹ค๋Š”์ ๋งŒ ๋‹ฌ๋ผ์ง„๋‹ค.

ํ•ด์ €๋“œ

structural : fetch์ค‘์ผ ๋•Œ mem์— ์ ‘๊ทผํ•  ์ˆ˜์—†๋‹ค. ์ž์›์— ์—ฌ๋Ÿฌ๊ณณ์—์„œ ์ ‘๊ทผ์„ ๋ชปํ•˜๋‹ˆ๊นŒ ๊ทผ๋ฐ ์ด๊ฑด ํ•ด๊ฒฐ์ž„. instruction๋ฉ”๋ชจ๋ฆฌ์™€ data๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋”ฐ๋กœ ๋‘์–ด์„œ ํ•ด๊ฒฐ

data : ๋‹ค์Œ ์ธ์ŠคํŠธ๋Ÿญ์…˜์—์„œ ์•ž ์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋ฉด ๋‚œ์ฒ˜ํ•ด์ง„๋‹ค. ์•ž์—์žˆ๋‹ค๊ณ ํ•ด์„œ ๋‹ค ๋๋‚œ๊ฒŒ์•„๋‹˜

WB์‹œ์ ์— ์“ฐ๊ธฐ๊ฐ€ ๋๋‚˜๊ณ  ID์‹œ์ ์— ์ฝ์–ด์•ผํ•˜๋‹ˆ๊นŒ WB๋ž‘ ID๊นŒ์ง€๋Š” ๊ฒน์น  ์ˆ˜ ์žˆ๋‹ค

images

์ด๋ ‡๊ฒŒ ๋‘๋ฒˆ์˜ ์†ํ•ด๊ฐ€์ƒ๊ธด๋‹ค.. ๊ทธ์น˜๋งŒ ์‚ฌ์‹ค ๊ฐ’์€ EX์—์„œ ์ด๋ฏธ ๊ฒฐ์ •์ด ๋‚œ๊ฑฐ๋‹ˆ๊นŒ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€๊ธฐ์ „์— EX๋๋‚œ์‹œ์ ์—์„œ datapath๋งŒ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋œ๋‹ค.

images

๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ด๋Ÿฌ๋ฉด EX์—์„œ ๊ณ„์‚ฐ๋œ๊ฐ’์ด ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฑฐ์น˜์ง€์•Š๊ณ  ๋ฐ”๋กœ ๋‹ค์Œ ์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ์†Œ์Šค๊ฐ€ ๋œ๋‹ค. ๋Œ€์‹  ์ด๋Ÿฌ๋ฉด ํ•˜๋“œ์›จ์–ด๋„๋ณต์žกํ•˜๊ณ  ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€์ƒ๊ธด๋‹ค.

๋กœ๋“œํ›„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ๋„ ๋ฌธ์ œ๊ฐ€๋œ๋‹ค. ์ด๊ฑด load-use data hazard๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. load๋œ๊ฑธ ์“ฐ๋ ค๋ฉด MEM์ดํ›„์— datapath๋ฅผ ์ƒˆ๋กœ ๋†”์•ผ๋˜๋Š”๋ฐ ์ด๊ฑด ์•„๋ฌด๋ฆฌ๋นจ๋ผ๋„ ํ•œ์‚ฌ์ดํด์€ ์†ํ•ด๋ณผ ์ˆ˜๋ฐ–์— ์—†๋‹ค.

images

๋Œ€์‹  ์ฝ”๋“œ๋ฅผ ์ž˜ ์Šค์ผ€์ฅด๋งํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€..

control : branch๊ฐ€ ๊ฒฐ์ •๋˜๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ. ๊ทธ๋Ÿผ ๊ทธ๋™์•ˆ ๋‹ค๋ฅธ instruction์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ํฌ๋ง์„๊ฑธ์–ด๋ณด๋Š”๊ฑฐ

์•„๋‹ˆ๋ฉด ID๋‹จ๊ณ„์—์„œ๋ถ€ํ„ฐ branch ์ฃผ์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  branch์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ด์„œ ๋ฐ”๋กœ ๋‹ค์Œ์— branchํ•˜๋„๋ก ํ•˜๋Š”๋ฐฉ๋ฒ•๋„์žˆ๊ธดํ•จ ๊ทผ๋ฐ ์ด๋Ÿฌ๋ฉด ์—„์ฒญ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ‡๊ฒŒ ์•„๋ฌด๋ฆฌ์ค„์—ฌ๋ดค์ž ํ•˜๋‚˜๋Š” ์†ํ•ด๋ณด๊ฒŒ ๋ผ์žˆ๋‹ค. ID๊ฐ€ ๋๋‚˜์•ผ ์‹คํ–‰ํ• ์ˆ˜์žˆ๋Š”๊ฑฐ๋‹ˆ๊นŒ

์ด๋Ÿด๋ฐ”์—” ์˜ˆ์ธก์„ํ•ด๋ณด์ž ์ด๋ง์ด์ง€ ๊ทผ๋ฐ ๊ฐ€์žฅ์ข‹์€์˜ˆ์ธก์€ โ€œ์‹คํŒจํ•œ๋‹คโ€ ๋กœ ์˜ˆ์ธกํ•˜๋Š”๊ฑฐ์ž„. ์• ์ดˆ์— ์‹คํŒจํ•  ํ™•๋ฅ ์ด ์กด๋‚˜๊ฒŒ ํผ ๊ทธ๋ž˜์„œ ๊ฑ RISC-V์—์„œ๋Š” ํ•ญ์ƒ ์‹คํŒจํ•œ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ๋‹ค์Œ instruction์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก 4๋”ํ•ด์„œํ•˜๊ณ  ๋งŒ์•ฝ์— ํ™•์ธํ•ด๋ณด๋‹ˆ๊นŒ ์—ฅ branch์˜€๋„ค ํ•˜๋ฉด ๊ทธ๊ฐ„ ์ˆ˜ํ–‰ํ•œ๊ฑฐ ์‹น๋ฒ„๋ฆฌ๊ณ  branchํ•ด์„œ ๋‹ค์‹œ์ด์–ด๊ฐ ์ด๋ ‡๊ฒŒํ•˜๋ฉด ํ•œ๋ฒˆ์— ์ƒ๊ธฐ๋Š” ๋ฒ„๋ธ”์€ ์ปค๋„ ์ƒ๊ธธ ํ™•๋ฅ ์ด ์ ์œผ๋‹ˆ๊นŒ ์–ด๋А์ •๋„ ๋ฐฉ์–ด๊ฐ€๋œ๋‹ค.

images

ID์—์„œ ๋ธŒ๋žœ์น˜์ฃผ์†Œ ๊ณ„์‚ฐํ•ด๋†“๊ณ  ํ–ˆ๋‹ค๊ฐ€ ํ‹€๋ฆฌ๋ฉด ์ˆ˜์ •ํ•˜๋Š”๊ฒฝ์šฐ์ธ๊ฑด๊ฐ€..?

์˜ˆ์™ธ

์˜ˆ์ธกํ•˜์ง€ ๋ชปํ–ˆ๋˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ.

์˜ˆ์™ธ : ์ •์˜๋˜์ง€์•Š์€ ofcode, ์‚ฐ์ˆ ์—ฐ์‚ฐ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ, ์‹œ์Šคํ…œ ์ฝœ ๋“ฑ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค.

์ค‘์ง€ (interrupt) : IO๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜จ ์ด๋ฒคํŠธ ์™ธ๋ถ€์—์„œ๋“ค์–ด์˜จ ๋น„๋™๊ธฐํ˜•

  • ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ PC๋ฅผ ์ €์žฅํ•ด๋‘๊ณ  (Supervisor Exception Program Counter)
  • ๋ฌธ์ œ์˜ ์‚ฌ์œ ๋ฅผ ์ €์žฅํ•˜๊ณ  (SCAUSE)
  • SCAUSE์— ๋”ฐ๋ฅธ ํ•ธ๋“ค๋Ÿฌ๋กœ ์ด๋™ํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด SEPC๋กœ ๋Œ์•„๊ฐ€๊ฑฐ๋‚˜ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค.

๋ฒกํ„ฐ์ธํ„ฐ๋ŸฝํŠธ vectored interrupt

cause register์— ์˜ํ•ด ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ์˜ˆ์™ธ๋ฒˆํ˜ธ๊ฐ€ ๋ฒกํ„ฐํ…Œ์ด๋ธ” ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ ์•ž์— ์ถ”๊ฐ€๋œ๋‹ค?

๊ทผ๋ฐ ์ด ๊ณต๊ฐ„์€ 32๋ฐ”์ดํŠธ ๊ณต๊ฐ„์ด๋ผ ์—ฌ๊ธฐ์„œ ํ•ด๊ฒฐ๋ชปํ• ์ˆ˜๋„์žˆ๋‹ค ๊ทธ๋Ÿผ ๋˜ ๋‹ค๋ฅธ๋ฐ๋กœ ์ ํ”„์‹œํ‚ค๋Š” ์ฝ”๋“œ๊ฐ€ ์ด 32๋ฐ”์ดํŠธ ๊ณต๊ฐ„์•ˆ์— ๋“ค์–ด๊ฐ„๋‹ค.

5

๋ฉ”๋ชจ๋ฆฌ๋Š” ํฌ๊ณ ๋น ๋ฅด๋‹ค๊ณ  ์ธ์‹๋˜์ง€๋งŒ ์‹ค์ œ๋กœ ๊ทธ๋ ‡์ง€ ๋ชปํ•˜๋‹ค. ๋น ๋ฅผ์ˆ˜๋ก ์ž‘๊ณ  ๋А๋ฆด์ˆ˜๋ก ํฌ๋‹ค. ๋”ฐ๋ผ์„œ ๋น ๋ฅด๊ณ  ํฌ๊ฒŒ๋งŒ๋“ค๊ธฐ์œ„ํ•ด์„œ๋Š” ๋ญ”๊ฐ€ํ•„์š”ํ•˜๋‹ค. ๊ฑฐ๊ธฐ์— ์ด์šฉ๋˜๋Š”๊ฒŒ ์ง€์—ญ์„ฑ

์‹œ๊ฐ„์  ์ง€์—ญ์„ฑ : ์ตœ๊ทผ์— ๋ฐฉ๋ฌธํ–ˆ๋–ค ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ์— ๋˜ ๋ฐฉ๋ฌธํ• ๊ฐ€๋Šฅ์„ฑ์ดํฌ๋‹ค loop๊ฐ™์€๊ฑฐ.

๊ณต๊ฐ„์  ์ง€์—ญ์„ฑ : ๋ฐฉ๋ฌธํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ทผ์ฒ˜์— ๋˜ ๋ฐฉ๋ฌธํ•  ๊ฐ€๋Šฅ์„ฑ์ดํฌ๋‹ค. ๋ฐฐ์—ด๋„ ์ˆœ์ฐจ์ ์ด๊ณ  pc๋„ ์ˆœ์ฐจ์ ์ด๋“ฏ

์ด๋ ‡๊ฒŒ ๊ณต๊ฐ„์„ฑ์ด๋ผ๋Š”๊ฒŒ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋””์— ์ ‘๊ทผํ• ์ง€ ์šฐ๋ฆฌ๋Š” ์•ฝ๊ฐ„์˜ ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ์ง€์—ญ์„ฑ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์žˆ๋”ฐ

disk๋Š” ํฌ๊ณ ๋А๋ฆฌ๊ณ  dram์€ ์ ๋‹นํžˆ๋น ๋ฅด๊ณ  ์ ๋‹นํžˆํฌ๊ณ  sram์€ ๊ต‰์žฅํžˆ๋น ๋ฅด๊ณ  ๊ต‰์žฅํžˆ ์ž‘๋‹ค

์ด๋Ÿฐ์นœ๊ตฌ๋“ค์„ ์กฐํ•ฉํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต์„ ๋งŒ๋“ค๋ฉด ๋„์›€์ด๋œ๋‹ค

์ผ๋‹จ CPU๋Š” ๋ฐœ๋น ๋ฅธ์นœ๊ตฌ๋ฅผ์›ํ•˜๋‹ˆ๊นŒ SRam์ด๋ž‘ ์—ฐ๊ฒฐ์‹œ์ผœ์„œ ๋น ๋ฅด๊ฒŒ์ž‘๋™ํ•˜๋„๋กํ•œ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ํ•œ ์ง€์—ญ์„ฑ๋–„๋ฌธ์— ์–ด์งœํ”ผ ๋„“์€๋ฒ”์œ„๋ฅผ ๋‹น์žฅ ํ•„์š”๋กœํ•˜์ง€๋Š” ์•Š์„๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฌด๋กœ ์ž‘์€ ์• ๋“ค์„ sram์— ์˜ฌ๋ฆฌ๋Š”๋ฐ๋Š” ํฐ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

๋Œ€์‹  dram์ด๋ž‘ disk ๊ฐ€ ๊ทธ๋ฅผ ๋ณด์กฐํ•˜๋Š”๊ฒƒ

์—ฌ๊ธฐ์„œ sram์—์„œ ์•Œ๋งž์€๊ฑธ ์ฐพ๋Š”๊ฑธ hit์ด๋ผ๊ณ ํ•œ๋‹ค. miss๋Š” ๋‹น์—ฐํžˆ ๋†“์นœ๊ฑฐ๊ฒ ์ง€?

hit ์ˆ˜ / ์ ‘๊ทผ์‹œ๋„ or miss ์ˆ˜ / ์ ‘๊ทผ์‹œ๋„ ์ด๋ ‡๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

SRAM : ํ•œ๋น„ํŠธ์— 6~8ํŠธ๋žœ์ง€์Šคํ„ฐ, ์ฝ๊ธฐ๋ฅผ ํ•ด๋„ ๋น„ํŠธ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋Š”๋ฐ ๋ณ„๋‹ค๋ฅธ ์ „๋ ฅ์ด ๋“ค์ง€ ์•Š๋Š”๋‹ค. ์‹œ๊ฐ„๋„๋น ๋ฅด๊ณ  ์ „๋ ฅ๋„ ๋œ๋จน์ง€๋งŒ ํŠธ๋žœ์ง€์Šคํ„ฐ๊ฐ€ ๋งŽ์ดํ•„์š”ํ•ด์„œ ์ง‘์ ๋„๋ž‘ ๊ฐ€๊ฒฉ๋ฉด์—์„œ ์†ํ•ด๋‹ค

DRAM : ํ•œ๋น„ํŠธ์— ํ•œํŠธ๋žœ์ง€์Šคํ„ฐ, ์ฝ์œผ๋ฉด ๊ฐ’์ด ๋ณ€ํ•ด์„œ ์ฝ์€๋‹ค์Œ์— ๋‹ค์‹œ์จ์ฃผ๋Š” ๋ถ€์ˆ˜์ ์ธ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋Š”๋ฐ ์ „๋ ฅ์ด ๋˜ ํ•„์š”ํ•จ. ์ง‘์ ๋„๋„๋†’๊ณ  ์†๋„๋„์ค€์ˆ˜ํ•จ ๊ทธ๋ž˜์„œ ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‚ฌ์šฉ๋œ๋‹ค

DRAM ์€ 2์ฐจ์› ๋ฐฐ์—ด๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ์Œ ํ•œ์ค„์ฝ๊ณ  ๋‹ค์‹œ ์จ์ฃผ๋Š” ์ž‘์—…์˜ ์—ฐ์†์ด๋‹ค. DDR๊ณผ QDR๋„์žˆ์Œ. ํ•˜๊ฐ•๋ชจ์„œ๋ฆฌ์—๋„ ์ž‘๋™ํ•œ๋‹ค๋˜์ง€, ์ƒ์Šนํ•˜๊ฐ•๋•Œ ์“ฐ๊ธฐ๋„ํ•œ๋‹ค๋˜์ง€ ๋“ฑ

FlashMemory : ๊ธฐ๋ณธ์ ์œผ๋กœ ROM์ด๋‹ค (EEPROM : Electrically Erasable Programable ROM) ์‰ฝ๊ฒŒ๋งํ•˜๋ฉด ์ง€์šฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋กฌ์ž„. ์ง€์šฐ๊ณ  ๋‹ค์‹œ์“ฐ๋Š”๋ฐฉ์‹. ๊ทผ๋ฐ ์—ฌ๋Ÿฌ๋ฒˆ ์ง€์šฐ๋ฉด ๋‚ด๊ตฌ๋„์— ๋ฌธ์ œ๊ฐ€์ƒ๊ฒจ์„œ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์œ ๋™์ ์œผ๋กœ ์ง€์šธ์žฅ์†Œ๋ฅผ ๋ฐ”๊ฟ”๊ฐ€๋ฉด์„œํ•ด์•ผํ•จ. NOR๊ณผ NAND๋ฐฉ์‹์ด ์žˆ๋Š”๋ฐ ์ง‘์ ๋„์™€ ์†๋„์˜์ฐจ์ด์ž„. ๊ฒฐ๋ก ์€ ์ง‘์ ๋„์˜ ์Šน

Disk Memory : ํ”Œ๋ž˜ํ„ฐ๋””์Šคํฌ. ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋„๋Š”๊ฑธ ํ—ค๋”๊ฐ€ ์ฝ๋Š”๊ฑฐ๋ผ ์†๋„๊ฐ€ ๋งŽ์ด ๋А๋ฆฌ๋‹ค. ๋ธ”๋Ÿญ๋‹จ์œ„๋ฅผ ์˜ค๊ฐ€๊ธฐ๊ฐ€ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋‹ˆ๊นŒ ํ•œ๋ฒˆ์ฝ์„๋•Œ ๋งŽ์ด์ฝ๋Š”๋‹ค.

seek time : ์›ํ•˜๋Š” ํŠธ๋ž™์œผ๋กœ ํ—ค๋”๊ฐ€ ์›€์ง์ด๋Š”์‹œ๊ฐ„

rotational latency : ํ—ค๋” ๋ฐ‘์—์„œ ๋””์Šคํฌ๊ฐ€ ๋„๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š”์‹œ๊ฐ„

transfer time : ์ฝ์€ ๋น„ํŠธ์˜ ๋ธ”๋Ÿญ์„ ์ „์†กํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š”์‹œ๊ฐ„. transfer time์€ ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋‹ˆ๊นŒ ์ฐจ๋ผ๋ฆฌ ํ•œ๋ฒˆ์— ๋งŽ์ด์ฝ๋Š”๊ฒŒ ๋‚ซ๋‹ค๋Š”๊ฑฐ์ง€

์บ์‹œ

์บ์‹œ๋Š” ์ง€์—ญ์„ฑ์— ์˜์กดํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋‹ค. ์›๋ž˜๋Š” ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ์†๋„๊ฐ€ ๋น ๋ฅธํŽธ์ด๊ณ  CPU๋Š” ๋А๋ฆฐํŽธ์ด์—ˆ์œผ๋‹ˆ ํ•„์š”๊ฐ€ ์—†์—ˆ๋Š”๋ฐ CPU๊ฐ€ ๋งŽ์ด ๋นจ๋ผ์ง€๊ณ  memory๋Š” ๊ทธ์†๋„์— ๋ชป๋ฏธ์น˜๊ฒŒ๋˜๋‹ˆ๊นŒ ํ•„์š”ํ•˜๊ฒŒ๋œ๊ฑฐ.

direct mapped cache

๋ฉ”๋ชจ๋ฆฌ์˜ ๊ตฌํš์„ ๋‚˜๋ˆ„์–ด ์บ์‹œ๋กœ ์˜ฌ๋ ค๋ณด๋‚ธ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ์บ์‹œ์—๋Š” 8๊ฐœ์˜ ๋ธ”๋Ÿญ์ด ์˜ฌ๋ผ์˜ฌ์ˆ˜์žˆ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋Š” 32๊ฐœ์˜ ๋ธ”๋Ÿญ์ด ์žˆ๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ธ”๋Ÿญ์ค‘ ์ง€์—ญ์„ฑ์ด ์žˆ๋Š”์นœ๊ตฌ 8๋ธ”๋Ÿญ์„ ์บ์‹œ์— ์˜ฌ๋ฆฌ๋Š”๊ฑฐ์ž„. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 32์ž๋ฆฌ์ด๋ฏ€๋กœ 6๋น„ํŠธ ์ฃผ์†Œ์ฒด๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค๋ฉด ์บ์‹œ์—์˜ฌ๋ผ๊ฐ€๋ฉด 3๋น„ํŠธ ์ฃผ์†Œ์ฒด๊ณ„๋ฅผ ๊ฐ–๊ฒŒ๋˜๊ฒ ์ง€. ์บ์‹œ์˜ 3๋น„ํŠธ๋ฅผ ๊ทธ๋ž˜์„œ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•˜์œ„3๋น„ํŠธ๋กœํ•ด์ค€๋‹ค. ๊ทธ๋ ‡๊ฒŒ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ 32๊ฐœ ๋ธ”๋Ÿญ์ค‘ 8๊ฐœ์”ฉ ์ž˜๋ผ์„œ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Œ ์บ์‹œ์˜ ํ•œ ๋ธ”๋Ÿญ์€ ๋ฉ”๋ชจ๋ฆฌ์˜ 32๊ฐœ ๋ธ”๋Ÿญ ์ค‘ 4๊ฐœ์˜ ํ›„๋ณด์ค‘ ํ•˜๋‚˜๊ฐ€๋œ๋‹ค. ์•ž์˜ 2๊ฐœ๋Š” ํƒœ๊ทธ๋กœ ์ด๋ฆ„ํ‘œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด๋จ. ์–˜๋Š” ๋ˆ„๊ตฌ์˜ ์–ด๋А์œ„์น˜์—์„œ์™”๋”ฐ ๋ฅผ ํ‘œ์‹œํ•ด์ฃผ๋Š”๊ฑฐ

images

TAG : ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ์˜ ์ƒ์œ„๋น„ํŠธ, index๊ฐ€ ์ •ํ•ด์ง€๊ณ  ๋‚จ์€๋ถ€๋ถ„์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒŒ ๋ˆ„๊ตฌ๊บผ์•ผ? ๊ฐ™์€ ์ด๋ฆ„ํ‘œ๊ฐ™์€์กด์žฌ

cache index : ์บ์‹œ์˜ ์ธ๋ฑ์Šค, ์บ์‹œ์˜ ์ฃผ์†Œ๊ฐ™์€๊ฐœ๋…. ๊ทธ์น˜๋งŒ ์ฃผ์†Œ๋Š”์•„๋‹˜!

์œ„์˜ ์˜ˆ๋กœ ๋“ค์ž๋ฉด 32๊ฐœ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋Ÿญ์ด 8๊ฐœ์˜ ์บ์‹œ์— ๋งคํ•‘๋˜์–ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์บ์‹œ ์ธ๋ฑ์Šค๋Š” ํ•˜์œ„ 3๋น„ํŠธ๊ฐ€ ๋ ๊ฑฐ๊ณ  ๋‚˜๋จธ์ง€ ์ƒ์œ„ 2๋น„ํŠธ๋Š” ํƒœ๊ทธ๊ฐ€๋˜๋Š”๊ฑฐ

valid bit : ๋งŒ์•ฝ์— ์‹œ์Šคํ…œ์ด ๋ง‰ ์ผœ์ง„์ƒํƒœ์—์„œ ์บ์‹œ๋ฅผ๋ดฃ๋Š”๋ฐ ๊ฑฐ๊ธฐ์— 00๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ’๋“ค์ด ์žˆ๋‹ค๊ณ  ์ณ๋ณด์ž ๊ทธ๋Ÿผ ๋งŒ์•ฝ์— ์‹œ์Šคํ…œ์ด 00xxx์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋ ค๊ณ ๋“ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€์•„๋‹ˆ๋ผ ์บ์‹œ์— ์ ‘๊ทผํ• ๊ฑฐ๋‹ค. ๊ฑฐ๊ธฐ์•ˆ์—๋Š” ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์ง€๋„ ์•Š์•„๋„..! ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ด๋Ÿฐ๊ฑธ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์ด ์ •๋ณด๋“ค์ด ์œ ํšจํ•œ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ผ valid bit๊ฐ€ ํ•„์š”ํ•œ๊ฒƒ. ์ดˆ๊ธฐ์—” 0์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.

images

์ผ๋‹จ index ์ฐพ์•„๊ฐ€๋Š”๊ฑด ๋งž๋Š”๋ฐ ์ฐพ์•„๊ฐ€์„œ tagํ™•์ธํ•˜๊ณ  validํ•œ์ง€๋„ ๊ฒ€์ฆํ•ด์•ผํ•œ๋‹ค. ์˜ˆ์‹œ๊ฐ€ ์›Œ๋“œ์–ด๋“œ๋ ˆ์Šค๋ผ์„œ ์‰ฌ์šด๊ฑฐ์•ผ ๋ฐ”์ดํŠธ์–ด๋“œ๋ ˆ์Šค๋ฉด ์˜คํ”„์…‹๋„ ๊ณ ๋ คํ–์•ผํ•œ๋‹ค

64๊ฐœ์˜ ๋ธ”๋ฝ์ด์žˆ๊ณ  ํ•œ ๋ธ”๋Ÿญ์— 16๋ฐ”์ดํŠธ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค๊ณ  ํ•˜์ž. 1204๋Š” ์–ด๋–ค ๋ธ”๋Ÿญ์— ๋“ค์–ด๊ฐ€์•ผํ• ๊นŒ?

1204 / 16 = 75 โ†’ 75๋ฒˆ์งธ ๋ฉ”๋ชจ๋ฆฌ๋ธ”๋Ÿญ์ด๋‹ค.

์บ์‹œ์—๋Š” 64๊ฐœ์˜ ๋ธ”๋Ÿญ์ด ์žˆ์œผ๋ฏ€๋กœ ์บ์‹œ์˜ 11๋ฒˆ์งธ ๋ธ”๋Ÿญ(์ธ๋ฑ์Šค)์— ์˜ฌ๋ผ๊ฐˆ๊ฒƒ โ†’ cache index = 11

๊ทธ๋Ÿฌ๊ณ ๋„ 4๋ฐ”์ดํŠธ์ดํ›„๋‹ˆ๊นŒ ํ•ด๋‹น ์ธ๋ฑ์Šค์—์„œ๋Š” 4๋ฒˆ์งธ ๋ฐ”์ดํŠธ๊ฐ€๋˜์–ด์•ผํ•จ โ†’ block offset = 4

75/64 ~= 1 ์ด๋ฏ€๋กœ 75๋ฒˆ์งธ๋ธ”๋Ÿญ์€ ๋‘๋ฒˆ์งธ ํƒœ๊ทธ๋‹ค โ†’ block tag = 1

images

ํƒœ๊ทธ-์ธ๋ฑ์Šค-์˜คํ”„์…‹์—์„œ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„๊ฐ€์„œ ํƒœ๊ทธ๊ฐ€ ๊ฐ™์€์ง€๋ณด๊ณ  validํ•œ์ง€ ํ™•์ธํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„์— ์˜คํ”„์…‹์„๋ณด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฝ‘์•„๋‚ธ๋‹ค. hitํŒ์ •์€ tag๋ž‘ valid๋กœ ํ•œ๋‹ค. ํ•œ์บ์‹œ์— ํ•œ ์›Œ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค๊ณ  ์žก์œผ๋ฉด ์ผ์ด ๊ฐ„๋‹จํ•œ๋ฐ, ์‹ค์ œ๋ก  ๊ทธ๋ ‡์ง€์•Š๋‹ค. ํ•œ ๋ธ”๋Ÿญ์— ์—ฌ๋Ÿฌ ์›Œ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๋‹ˆ๊นŒ ๋ธ”๋Ÿญ์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ mux๋กœ ์„ ํƒํ•ด์•ผํ•จ. ์ด ๋•Œ ์„ ํƒํ•˜๋Š”๊ฑด block offset์ด ๋˜๊ฒ ์ง€. ๊ฐ€์ ธ์™€์„œ ๊ทธ ํ•˜์œ„๋‹จ์—์„œ ๋ฝ‘์•„๋‚ด๋Š”๊ฑด ๋™์ผํ•œ๋ฐฉ์‹์ž„.

images

์ •๋ฆฌํ•˜์ž๋ฉด direct mapped chache์—์„œ ์ฃผ์†Œ๋Š” tag, index, block offset, byte offset์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  validbit์€ ์ถ”๊ฐ€์ ์œผ๋กœ ์บ์‹œ์—์žˆ๋Š”๊ฑฐ๋‹ˆ๊นŒ ์‚ฌ์‹ค ์ฃผ์†Œ๋ž‘์€ ๋ฌด๊ด€ํ•œ๊ฑฐ๋‹ค.

์บ์‹œ์‚ฌ์ด์ฆˆ๊ฐ€ 2^n๋ธ”๋Ÿญ์ด๋ผ๋ฉด n๋น„ํŠธ๊ฐ€ ์ธ๋ฑ์Šค๋กœ ์“ฐ์ธ๋‹ค(n์ด๋ฉด log2n๋งŒํผ์˜ ์ธ๋ฑ์Šค๋น„ํŠธ๊ฐ€ ํ•„์š”)

๋ธ”๋Ÿญ์— 2^m๊ฐœ์˜ ์›Œ๋“œ๊ฐ€๋“ค์–ด๊ฐ„๋‹ค๋ฉด m๋น„ํŠธ๊ฐ€ ์˜คํ”„์…‹์œผ๋กœ ์“ฐ์ธ๋‹ค.

์ถ”๊ฐ€๋กœ ๋ธ”๋Ÿญ์—๋Š” 2^(m+2)๊ฐœ์˜ ๋ฐ”์ดํŠธ, 2^(m+5)๊ฐœ์˜ ๋น„ํŠธ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๋˜ ๊ฐ ์›Œ๋“œ๋Š” 2๊ฐœ์˜ ๋ฐ”์ดํŠธ์˜คํ”„์…‹์ด ํ•„์š”ํ•˜๋‹ค. 4๋ฐ”์ดํŠธ์ค‘ ์„ ํƒ์„ ํ•ด์•ผํ•จ.

ํƒœ๊ทธ๋น„ํŠธ๋Š” ์ธ๋ฑ์Šค์™€ ์˜คํ”„์…‹์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€. 64๋น„ํŠธ ์ค‘ ์บ์‹œ์ธ๋ฑ์Šค n๊ฐœ, ๋ธ”๋Ÿญ์˜คํ”„์…‹m, ๋ฐ”์ดํŠธ์˜คํ”„์…‹2๊ฐœ๋ฅผ ์ œ์™ธํ•ด์ฃผ๋ฉด ํƒœ๊ทธ๋น„ํŠธ๊ฐ€๋จ

์บ์‹œ์— 2^n๊ฐœ์˜ ๋ธ”๋Ÿญ์ด์žˆ๊ณ , ์ด๋Š” ๊ฐ๊ฐ 2^(m+5)๊ฐœ์˜ ๋น„ํŠธ๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ , ํƒœ๊ทธ๋น„ํŠธ (64 - (n + m + 2), ์ถ”๊ฐ€๋กœ valid bit 1๋น„ํŠธ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ๋”ฐ๋ผ์„œ ์บ์‹œ์—์žˆ๋Š” ์ด ๋น„ํŠธ์˜ ์ˆ˜๋Š”

2^n๋ธ”๋Ÿญ * (2^(m + 32)๋ธ”๋Ÿญ๋‹น๋น„ํŠธ + (64-(n + m + 2))ํƒœ๊ทธ๋น„ํŠธ + 1(๋ฐœ๋ฆฌ๋“œ๋น„ํŠธ))

images

์บ์‹œ๋ฏธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐฉ๋ฒ• : hit์‹œ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์•ˆ๋˜์ง€๋งŒ ๋งŒ์•ฝ์— miss๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์บ์‹œ ๋‚ด์—์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๊ฒŒ๋œ๋‹ค ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ์—๊ฐ€์„œ ์ฝ์–ด์™€์•ผํ•จ. ๊ทธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ์–ด์˜ค๋Š” ๊ณผ์ • ์ž์ฒด๊ฐ€ ์†ํ•ด๋‹ค. ์ฝ๋Š”๊ฑธ๋กœ ๋๋‚ ๊ฒŒ์•„๋‹ˆ๋ผ ์ง€์—ญ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ์œ„ํ•ด ๋˜ ๋ธ”๋Ÿญ์„ ๊ฐ€์ ธ์˜ค๊ธฐ๋„ ํ•ด์•ผํ•จ. ๋‹ค ๊ฐ€์ ธ์™€์„œ ๋ชปํ–ˆ๋˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ๋๋‚œ๋‹ค. (๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์—์„  page fault์— ํ•ด๋‹นํ•˜๋Š”๋ถ€๋ถ„)

์บ์‹œ์˜ ๋ฌธ์ œ์  : ์บ์‹œ๋ฅผ ์ฝ๋Š”๊ฑด ๋ฌธ์ œ๊ฐ€์—†๋Š”๋ฐ ๋งŒ์•ฝ์— ์บ์‹œ๋ฅผ ์“ฐ๋Š”๊ฑด? ์บ์‹œ์— ์“ฐ๋Š”๊ฑด ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ๊ธฐ๋ก์ด ์•ˆ๋œ๋‹ค. ๊ทธ๋Ÿผ ์บ์‹œ๋ž‘ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์„œ๋กœ ๋‹ฌ๋ผ์ง€๊ฒŒ๋˜๋Š”๋ฐ..

ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 1 write through : ์บ์‹œ์— ์“ธ ๋•Œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์—๋„ ์ฆ‰๊ฐ ์จ์ฃผ์ž โ†’ ๊ทธ๋Ÿผ ๋ญํ•˜๋Ÿฌ ์บ์‹œ์”€ ์กด๋‚˜์˜ค๋ž˜๊ฑธ๋ฆดํ…๋ฐ

ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 2 write back : ๋ฉ”๋ชจ๋ฆฌ์— ์•ˆ์จ์ค˜๋„ ์–ด์งœํ”ผ ์ง€์—ญ์„ฑ๋•Œ๋ฌธ์— ์บ์‹œ ๋‚ด๋ถ€์—์„œ๋งŒ ๋†€ํ…Œ๋‹ˆ๊นŒ ๋‹น์žฅ์€ ๋ฌธ์ œ๊ฐ€์•ˆ๋œ๋‹ค. ํŠน์ •์‹œ์ ์— ๋ฉ”๋ชจ๋ฆฌ์—๋„ ์ ์šฉ์„ํ•ด์ฃผ์ž. โ†’ ๊ทธ๋‚˜๋งˆ ์ด๊ฒŒ ํ•ฉ๋ฆฌ์ ์ด๋‹ค

write buffer : ๋ฉ”๋ชจ๋ฆฌ์— ์“ฐ์—ฌ์ ธ์•ผํ•  ๋ฐ์ดํ„ฐ๋ฅผ write buffer์— ์ž„์‹œ์ €์žฅํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—๋„ ์จ์ค€๋‹ค. ๊ทธ๋Ÿผ ๋ฉˆ์ถค์—†์ด ๊ณ„์† ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฒ„ํผ๊ฐ€ ๊ฝ‰์ฐจ์ง€๋งŒ ์•Š์œผ๋ฉด.. ํ•„์š”ํ•œ๊ฑธ ์ฐพ์„ ๋•Œ ๋ฒ„ํผ๋„ ํ•œ๋ฒˆ ํ™•์ธํ•ด์ฃผ๋Š” ์‹์œผ๋กœ ํ•˜๋ฉด ๋œ๋‹ค.

write back : ์ผ๋‹จ ์บ์‹œ์—์„œ๋งŒ ๋†€๊ณ  ๋ณ€๊ฒฝ๋˜์•ผํ• ๊ฑฐ๋Š” ๋ณ„๋„๋กœ ํ‘œ์‹œํ•ด์ฃผ๊ณ  (dirty bit) ์บ์‹œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ์‹œ์ ์— ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ๋กœ ํ•œ๋ฒˆ์— ์จ์ฃผ์ž โ†’ ๊ทธ๋ž˜๋„ ๊ทธ๋‚˜๋งˆ ๊ดœ์ฐฎ์€๋ฐฉ๋ฒ•

์บ์‹œ ๋ธ”๋ฝ์€ ํด์ˆ˜๋ก ์ข‹์€ํŽธ์ด๋‹ค. ์ง€์—ญ์„ฑ์ด ๊ทน๋Œ€ํ™”๋ผ์„œ miss rate๊ฐ€ ์ค„์–ด๋“œ๋‹ˆ๊นŒ. ๊ทผ๋ฐ ๊ทธ๋ ‡๋‹ค๊ณ  ๋ง‰ ํ‚ค์šธ์ˆ˜๋„์—†๋Š”๊ฒŒ ๋ธ”๋ฝ์ด ์ปค์ง€๋ฉด ์ปค์งˆ์ˆ˜๋ก miss์‹œ์˜ ํŽ˜๋„ํ‹ฐ๊ฐ€ ์ปค์ง„๋‹ค. ๊ฒฐ๊ตญ์—” ์–ด๋А์ •๋„ ์ ˆ์ถฉํ•ด์„œ ๊ดœ์ฐฎ์€ ์ง€์ ์„ ์ฐพ๋Š”๊ฒƒ์ด ์ค‘์š”ํ•จ.

์บ์‹œํผํฌ๋จผ์Šค : ์šฐ๋ฆฌ๊ฐ€์ป๋˜ CPUT = IC * CPI * CCT๋Š” ์‚ฌ์‹ค miss๊ฐ€ ์ „ํ˜€ ์•ˆ๋‚ ๋•Œ์˜ ์•„์ฃผ ์ด์ƒ์ ์ธ ๊ฒฝ์šฐ์ž„ ์‹ค์ œ๋ก  miss๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

RISC-V์˜ ํŠน์„ฑ์ƒ ๋ชจ๋“  instruction์€ fetchํ•œ๋ฒˆ์€ ๋ณด์žฅ์ด๊ณ , ld๋‚˜ sd์˜ ๊ฒฝ์šฐ๋งŒ ๋ฐ์ดํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ถ”๊ฐ€๋กœ ์ ‘๊ทผํ•œ๋‹ค. ์ฆ‰ ld๋‚˜ sd๋Š” 2๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ์ ‘๊ทผ, ์ด์™ธ์˜ ๋ชจ๋“  ์ธ์ŠคํŠธ๋Ÿญ์…˜์€ ํ•œ๋ฒˆ ์ ‘๊ทผํ•œ๋‹ค๋Š”๊ฑฐ

๋Ÿฌํ”„ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•ด๋ด…์‹œ๋‹ค

miss rate๊ฐ€ 2%์ธ๋ฐ miss penalty๊ฐ€ 100cycle์ธ ๊ฒฝ์šฐ 2%ํ™•๋ฅ ๋กœ 100์ฆ๊ฐ€์ด๋ฏ€๋กœ ํ‰๊ท ์ ์œผ๋กœ miss ๋ฐœ์ƒ์‹œ 2์‚ฌ์ดํด์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•˜๊ฒŒ๋œ๋‹ค.

์˜ˆ์ œ I๋Š” 2%์˜ ๋ฏธ์Šคํ™•๋ฅ , D๋Š” 4%์˜ ํ™•๋ฅ ์„ ๊ฐ–๊ณ , ๊ฐ ๋ฏธ์Šค๋Š” 100์‚ฌ์ดํด์˜ ์†ํ•ด๊ฐ€ ์ƒ๊ธด๋‹ค. ์™„๋ฒฝํ•œ ์บ์‹œ๋™์ž‘์—์„œ CPI๋Š” 2์ด๋ฉฐ load์™€ store๋Š” ์ „์ฒด 36%์˜ ๋น„์ค‘์„ ๊ฐ€์งˆ ๋•Œ ์–ด๋–ป๊ฒŒ๋ ๊นŒ์š”? ์ผ๋‹จ ๋ชจ๋“  ์ธ์ŠคํŠธ๋Ÿญ์…˜์—๋Œ€ํ•ด ํ‰๊ท  2์‚ฌ์ดํด์ด ์ฆ๊ฐ€ํ•˜๊ณ  ld๋ž‘ sd์—๋Œ€ํ•ด์„œ๋Š” 4๊ฐ€ ๋” ์ฆ๊ฐ€ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ld์™€ sd๋Š” 36%๋ฅผ ์ฐจ์ง€ํ•˜๋ฏ€๋กœ 0.36 * 4 ๋งŒํผ ๋” ์ฆ๊ฐ€์‹œํ‚ฌ๊ฒƒ ์ฆ‰ ์•„์ฃผ ํ‰๊ท ์ ์œผ๋กœ miss๊ฐ€๋‚˜๋ฉด 3.44๋งŒํผ์˜ ํŒจ๋„ํ‹ฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜์žˆ๋‹ค. ์›๋ž˜ CPI๊ฐ€ 2์˜€์œผ๋‹ˆ๊นŒ ํŒจ๋„ํ‹ฐ ๊ณ„์‚ฐ๋œ CPI๋Š” 5.44๊ฐ€๋œ๋‹ค.

์กด๋‚˜ ๊ฐœ์†ํ•ด์ฒ˜๋Ÿผ๋ณด์ด์ง€๋งŒ ์บ์‹œ๋ฅผ ์•ˆ์“ฐ๋Š”๊ฑฐ๋ณด๋‹จ ํ›จ ๋‚ซ๋‹ค. ์บ์‹œ๊ฐ€ ์—†์„๋•Œ๋ฐœ์ƒํ•˜๋Š” ์‹œ๊ฐ„์€ miss์™€ ๋™์ผํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜์žˆ์œผ๋‹ˆ ๊ทธ๋ ‡๊ฒŒ ๊ณ„์‚ฐ์„ํ•˜๋ฉด 200 + 0.36 * 400์œผ๋กœ ํ‰๊ท  344์‚ฌ์ดํด์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ๋œ๋‹ค. ์ด๊ฒŒ๋‚˜๋ผ๋ƒ?

CPU์˜ ์„ฑ๋Šฅ์ด ์ข‹์•„์ง€๋ฉด ๋ฏธ์Šค ํŽ˜๋„ํ‹ฐ์˜ ์ค‘์š”๋„๊ฐ€ ์ปค์ง€๊ฒŒ๋œ๋‹ค. CPU๋Š” ๋น ๋ฅด๊ฒŒ๋™์ž‘ํ•˜๋Š”๋ฐ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ทธ๋Œ€๋กœ๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง€๋Ÿฌ๊ฐ€๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๋™์•ˆ์— CPU๊ฐ€ ์†ํ•ด๋ณด๋Š”๊ฒŒ ์ƒ๋Œ€์ ์œผ๋กœ ๋งŽ์•„์ง€๋‹ˆ๊นŒ ํŒจ๋„ํ‹ฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ปค์ง„๋‹ค.

CPI๋ฅผ ์ค„์ด๋ฉด stall๋กœ ๋ฐœ์ƒํ•˜๋Š” ์‹œ๊ฐ„์˜ ๋น„์ค‘์ด ์ปค์ง„๋‹ค. ํŒจ๋„ํ‹ฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ปค์ง„๋‹ค.

clock์„ ์˜ฌ๋ฆฐ๋‹ค โ†’ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ทธ๋Œ€๋กœ๋‹ˆ๊นŒ ํŒจ๋„ํ‹ฐ๊ฐ€ ์ปค์ง

์บ์‹œ์„ฑ๋Šฅ์„ ์˜ฌ๋ฆฌ๊ธฐ : ๋ฏธ์Šค์œจ์ค„์ด๊ธฐ (์–ด์†Œ์…”ํ‹ฐ๋ธŒ), ๋ฏธ์ŠคํŒจ๋„ํ‹ฐ์ค„์ด๊ธฐ(๋ฉ€ํ‹ฐ๋ ˆ๋ฒจ), ํžˆํŠธํƒ€์ž„์ค„์ด๊ธฐ

associative cache

์บ์‹œ๋Š” ์‚ฌ์‹ค ๊ฒฝ์Ÿ์—์„œ ์•ˆ์ „ํ•˜์ง€ ๋ชปํ•˜๋‹ค. ์•„๋ฌด๋ฆฌ ์ง€์—ญ์„ฑ์ด ์žˆ๋”๋ผ๋„ ๊ฒฝ์Ÿ์˜ ๊ฐ€๋Šฅ์„ฑ์€ ์žˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋„ ์›Œ๋‚™ ๋–จ์–ด์ ธ์žˆ๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ์•„๋‹ค๋ฆฌ์•ˆ๋งž์œผ๋ฉด ๊ณจ๋กœ๊ฐ€๋Š”๊ฑฐ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธดํ•˜๋‹ค๊ณ ํ•จ.

๊ฐ ๊ตฌํš์ด ๊ฒฝ์Ÿํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด, ํ•œ index์— ์—ฌ๋Ÿฌ ๋ธ”๋Ÿญ์ด ์˜ฌ๋ผ๊ฐ€๋„๋ก ํ•˜๋ฉด ๋œ๋‹ค๋Š”๊ฑฐ์ž„ (ํ•œ set์— ์—ฌ๋Ÿฌ entry)

n๊ฐœ ๋ธ”๋Ÿญ์„ ํ•œ์ธ๋ฑ์Šค์— ๋ฌถ์œผ๋ฉด n-way associative

๋ชจ๋‘๋‹ค ๋ฌถ์–ด๋ฒ„๋ฆฌ๋ฉด fully associative๊ฐ€ ๋œ๋‹ค.

associativeํ•˜๊ฒŒ ์บ์‹œ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ๋˜๋ฉด ๊ฐ™์€ ์ธ๋ฑ์Šค์—์„œ๋„ ์–ด๋–ค ๋ธ”๋Ÿญ์„ ๊ณ ๋ฅผ์ง€๊ฐ€ ๊ฒฐ์ •๋˜์–ด์•ผํ•œ๋‹ค. ๊ทธ๋‹ˆ๊นŒ์›๋žœ ์ธ๋ฑ์Šค์ฃผ๋ฉด ์ฐพ์•„๊ฐ€์„œ tag๊ฐ™๊ณ  validํ•˜๋ฉด hit์ด์—ˆ์ง€๋งŒ

์ด์žฌ๋Š” indexํƒ€๊ณ ๊ฐ€์„œ tag๋“ค๋กœ ์–ด๋–ค๋ธ”๋Ÿญ์“ธ์ง€ ๊ณ ๋ฅด๊ณ  validํ•œ์ง€๋„ ํ™•์ธํ•ด์•ผํ•˜๋‹ˆ n์ด ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๊ทธ ๊ณผ์ •์ด ๋ณต์žกํ•ด์ง€๋Š”๊ฒƒ.

fully associative๋Š” ์• ์ดˆ์— ์ธ๋ฑ์Šค๊ฐ€ ์˜๋ฏธ์—†์–ด์ง€๋Š” ์ƒํ™ฉ์ด๋˜์–ด๋ฒ„๋ฆผ.

images
images
images

์œ„์—์„œ ๋ณด๋“ฏ์ด associative๋ฅผ ์“ฐ๋ฉด ๋ฏธ์Šคํ™•๋ฅ ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ทผ๋ฐ ๋ง‰ 0์œผ๋กœ ์ˆ˜๋ ดํ•˜๋Š”๊ฑด์•„๋‹ˆ๊ณ  ์–ด๋А์ •๋„ ํ•œ๊ณ„๋Š” ์žˆ์Œ. ์ด๊ฒƒ๋„ ์ ๋‹นํžˆํ•ด์•ผ์ง€ ์•ผ๋ฐœ..

์ด๋ ‡๊ฒŒ ํ•œ ์ธ๋ฑ์Šค์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ธ”๋Ÿญ์„ ๋‘๋ ค๋ฉด ์—ฌ๋Ÿฌ ๋ธ”๋Ÿญ๋งˆ๋‹ค valid์™€ tag๊ฐ€ ๋”ฐ๋กœ๋ถ™์–ด์•ผํ•˜๋‹ˆ ์บ์‹œ ์‚ฌ์ด์ฆˆ๋„ ๋” ์ปค์•ผํ•จ. ๋˜ ํƒœ๊ทธ๋ฅผ ๋‹ค ๋น„๊ตํ•ด์•ผํ•˜๋‹ˆ๊นŒ ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ๋„ ๋งŽ์ด ๋ณต์žกํ•ด์ง

direct map : ์ธ๋ฑ์Šค์„ ํƒ ํƒœ๊ทธ valid ํ™•์ธ

associative map : ์…‹ ์„ ํƒ ํƒœ๊ทธ๋น„๊ตํ•˜๋ฉฐ ์•Œ๋งž์€๊ฒƒ ๊ฒ€์ƒ‰ valid ํ™•์ธ

images

๊ต์ฒด : ๋งŒ์•ฝ ๋ฏธ์Šค๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์™€์„œ ์บ์‹œ๋ฅผ ๊ต์ฒดํ•ด์ฃผ์–ด์•ผํ•˜๋Š”๋ฐ ๊ทธ ๊ทœ์น™์€ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€?

Direct mapped์—์„œ๋Š” ์„ ํƒ๊ถŒ์ด ์—†๋‹ค. ๊ทธ์น˜๋งŒ associative์—์„œ๋Š” validํ•˜์ง€ ์•Š์€ ์นœ๊ตฌ๋งŒ ๊ต์ฒดํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

LRU : least recently used ์ œ์ผ ์ตœ๊ทผ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์€๊ฒƒ์„ ๋ฐ”๊พผ๋‹ค. ์ง€์—ญ์„ฑ์„ ์ƒ๊ฐํ•˜๋ฉด ์ด๊ฒŒ ์ž˜๋จนํž๊ฑฐ ๊ทผ๋ฐ ์ด ์‹œ์ ๊ฐ™์€๊ฑธ ๊ธฐ๋กํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ํฌ๋‹ค

random : ๊ฑ ๊ทธ๋Ÿฐ๊ฑฐ ๋”ฐ์ง€์ง€๋ง๊ณ  ์•„๋ฌด๊ฑฐ๋‚˜๋ฒ„๋ ค โ†’ ์ƒ๊ฐ๋ณด๋‹ค ํšจ์œจ ๋‚˜์˜์ง€์•Š์Œ LRU ์— ๋น„๋ฒผ๋ณผ๋งŒํ•˜๋‹ค.

๋ฉ€ํ‹ฐ๋ ˆ๋ฒจ ์บ์‹œ : ์บ์‹œ์—์„œ๋„ ์–ด๋–ป๊ฒŒ๋“  ๊ณ„์ธต์„ ๋‚˜๋ˆ ๋ณด๋ฉด ์ด๋“์ด ์žˆ์ง€ ์•Š์„๊นŒ? โ†’ ์กฐ๊ธˆ์ด๋ผ๋„ ๋ฏธ์Šค์œจ์„ ๋‚ฎ์ถ”๊ธฐ์œ„ํ•ด์„œ, ์บ์‹œ๋„ ๋น ๋ฅธ๊ฒƒ๊ณผ ๋А๋ฆฐ๊ฒƒ์„๋‚˜๋ˆ ์„œ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑํ•˜์ž. ๋‹น์—ฐํžˆ ์œ—๋‹จ์€ ์†๋„๊ฐ€ ์ตœ๊ณก ๋ฐ‘์œผ๋กœ๊ฐˆ์ˆ˜๋ก ํฌ๊ธฐ๊ฐ€ ์ค‘์š”ํ•ด์ง„๋‹ค.

level 1์—์„œ๋Š” ์‹œ๊ฐ„์„ ์ตœ์†Œํ™” ํ•˜๊ณ  (minimal hit time, smaller cache size, block size), level-2์—์„œ๋Š” l1๋ณด๋‹ค ์‚ฌ์ด์ฆˆ๋„ํฌ๊ณ  associativeํ•˜๊ฒŒ ํ•ด์„œ ๋ฏธ์ŠคํŒจ๋„ํ‹ฐ์™€ ๋ฏธ์Šค์œจ์„ ์ตœ๋Œ€ํ•œ์œผ๋กœ ์ค„์ธ๋‹ค.

๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์บ์‹œ์ฒ˜๋Ÿผ, ๋””์Šคํฌ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ฒ˜๋Ÿผ ๋Œ€ํ•ด๋ณด์ž. ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด ๊ฒน์ณ์งˆ์ˆ˜๋„์žˆ๊ณ  ๋ณต์žกํ•จ. ํ”„๋กœ๊ทธ๋žจ๊ฐ„์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๋„ ํ•„์š”ํ•˜๋‹ค. cpu๋ž‘ OS๋Š” ๊ฐ€์ƒ์˜ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ ๋งค๊ฐœํ•ด์ค€๋‹ค. ๋ธ”๋ฝ๊ด€๋ฆฌํ•˜๋“ฏ page๋ผ๋Š” ๋‹จ์œ„๋ฅผ ๊ด€๋ฆฌํ•จ.

์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ ์‹คํ–‰๋  ๋•Œ ๊ฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ถฉ๋Œ๋„ ๋ง‰๋Š”๋‹ค. ๋””์Šคํฌ์˜ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€๋“ค์€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ๋งคํ•‘๋˜์–ด ๋™์ž‘ํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ์—†์„๋•Œ pagefault๊ฐ€ ๋ฐœ์ƒํ—ค์„œ ๋””์Šคํฌ์—์„œ ์ฐพ๋„๋กํ•œ๋‹ค.

ํŽ˜์ด์ง€์•ˆ์˜ ์ •๋ณด๋“ค์€๊ทธ๋Œ€๋กœ์žˆ๋‹ค. ์–ด๋–ค ํŽ˜์ด์ง€๊ฐ€ ์˜ฌ์ง€๋งŒ ๋ณ€ํ•œ๋‹ค.

ํŽ˜์ด์ง€๋Š” 4kb์ด๋‹ค. ์ฆ‰ 2^12๋งŒํผ์ด ํŽ˜์ด์ง€๋กœ ๋–จ์–ด์ ธ ๋‚˜๊ฐ€๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€๋œ๋‹ค. (์ธ๋ฑ์Šค์™€ ํƒœ๊ทธ ์ •ํ•˜๋“ฏ) ๊ทธ๋Ÿผ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ํŽ˜์ด์ง€์™€ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ฒŒ๋œ๋‹ค..?

ํŽ˜์ด์ง€ํดํŠธ : ํŽ˜์ด์ง€๋ฅผ ์ฐพ์ง€๋ชปํ•˜๋Š” ๊ฒฝ์šฐ. cache์™€ ๋ฉ”๋ชจ๋ฆฌ์‚ฌ์ด์—์„œ๋Š” ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋˜์ง€์•Š์•„์„œ ๊ทธ๋ƒฅ ๊ธฐ๋‹ค๋ฆฌ์ง€๋งŒ ๋””์Šคํฌ๋Š” ์กด๋‚˜๋А๋ฆฌ๋‹ค. ๊ทธ๊ฑฐ ๊ธฐ๋‹ค๋ฆฌ๋‹ค๊ฐ€๋Š” ๋‚ ๋ฐค ์ƒˆ๊ธฐ๋•Œ๋ฌธ์— ์•ˆ๊ธฐ๋‹ฌ๋ฆฌ๊ณ  ๋‹ค๋ฅธ์ผ์„ํ•˜๋‹ค๊ฐ€ ๋Œ์•„์˜จ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ์ค‘ํ•˜๋‚˜


ํŽ˜์ด์ง€ํ…Œ์ด๋ธ” : ๋ฐฐ์น˜์ •๋ณด๊ฐ€ ๊ธฐ๋ก๋œ๋‹ค. ๊ฐ€์ƒ ํŽ˜์ด์ง€ ์ˆ˜์˜ ๋ฐฐ์—ด.

ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์˜ ์‹œ์ž‘์ ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์—๋Š” ๋ฌผ๋ฆฌ์ ์ธ ํŽ˜์ด์ง€๋ฒˆํ˜ธ์™€ ๋‹ค๋ฅธ ์ƒํƒœ๋น„ํŠธ๋“ค (๋ ˆํผ๋Ÿฐ์Šค, ๋”ํ‹ฐ๋น„ํŠธ Valid bit ๋“ฑ)์ด ๋“ค์–ด๊ฐ„๋‹ค.

๋””์Šคํฌ์—์„œ๋Š” ์Šค์™‘๊ณต๊ฐ„์ด๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.

ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์—์„œ ์˜คํ”„์…‹์€ ๊ทธ๋Œ€๋กœ๊ฐ€๊ณ  ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๊ฐ€ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๋กœ ๋ฒˆ์—ญ์ด๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์—์„œ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์—†์œผ๋ฉด ๋””์Šคํฌ๋กœ ๊ฐ€๋Š”๊ฒƒ?

review

์บ์‹œ์—์„œ ๋ธ”๋ฝ โ†’ ํŽ˜์ด์ง€

์บ์‹œ์—์„œ ๋ฏธ์Šค โ†’ ํŽ˜์ด์ง€ํดํŠธ

๊ฐ€์ƒ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝ ์ฃผ์†Œ๋ณ€ํ™˜๊ณผ์ •์€ ๊ฐ€์ƒํŽ˜์ด์ง€๋ฅผ ๋ฌผ๋ฆฌํŽ˜์ด์ง€๋กœ ๋ฐ”๊พธ๋Š”๊ฒŒ ๋‹ค๋‹ค

ํŽ˜์ด์ง€๊ต์ฒด

์บ์‹œ์—์„œ๋Š” associative์—์„œ๋Š” ๊ฒฐ์ •์˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์—ˆ๋‹ค.

LRU : ํŽ˜์ด์ง€ํดํŠธํ™•๋ฅ ์„ ์ค„์ธ๋‹ค. reference bit๋ฅผ ํ™œ์šฉํ•ด ํ™•์ธํ•œ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ 0์œผ๋กœ ๋งŒ๋“ค๊ณ , ๊ทธ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 1์œผ๋กœ๋ฐ”๊พธ๊ฒŒํ•ด์„œ 1์ธ๊ฒŒ ์ตœ๊ทผ์— ์‚ฌ์šฉ๋œ๊ฑฐ๋‹ˆ๊นŒ ์‚ด๋ฆฌ๊ณ  ์•„๋‹ˆ๋ฉด ์ฃฝ์ด๋Š”๊ฑฐ. ๋‚˜๋ฆ„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•œ๋ฐฉ๋ฒ•์ด๋‹ค. reference bit๊ฐ€ 0์ธ๊ฑธ ์ œ๊ฑฐํ•ด์ค€๋‹ค. ์ฆ‰ ํŽ˜์ด์ง€ ์—”ํŠธ๋ฆฌ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ์žˆ์–ด์•ผํ•จ.

๋””์Šคํฌ์— ์“ฐ๊ธฐ๋ฌธ์ œ : write-buffer์„ ํ•˜๋Š”๊ฑด ํ˜„์‹ค์ ์ด์ง€ ๋ชปํ•˜๋‹ค. ๊ฑฐ์˜ write back์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋”ํ‹ฐ๋น„ํŠธ๋„ ์žˆ์–ด์•ผํ•จ. write์˜ ๋‹จ์œ„๋„ page์ด๋‹ค.

ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐ โ† ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์€ ๋ฉ”๋ชจ๋ฆฌ์—์žˆ๋‹ค.

ld์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ์ฃผ์†Œ๋Š” ๊ฐ€์ƒ์ฃผ์†Œ์ด๋‹คโ€ฆ ์ง„์งœ์ ‘๊ทผํ•˜๋ ค๋ฉด ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ๊ฐ€์ง€๊ณ  ์บ์‹œ๋ฅผ๊ฐ€์•ผํ•จ.. ๊ทธ๋Ÿผ ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•ด์•ผํ•˜๊ณ  ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์€ ๋ฉ”๋ชจ๋ฆฌ์—์žˆ๋‹ค..๊ทธ๋Ÿผ ld๊ณผ์ •์—์„œ

ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”๋ณด๋Ÿฌ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€๊ณ 

๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๋ฅผ๊ฐ–๊ณ  ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ค์‹œ์ ‘๊ทผํ•ด์•ผํ•จ

ld๋Š” ์‚ฌ์‹ค ์ตœ์•…์˜๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์— 4๋ฒˆ์„๊ฐ€์•ผํ•œ๋‹ค.

์ธ์ŠคํŠธ๋Ÿญ์…˜fetch ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์ฐธ์กฐโ†’์ธ์ŠคํŠธ๋Ÿญ์…˜fetchโ†’๋ฉ”๋ชจ๋ฆฌ์ ‘๊ทผ ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์ฐธ์กฐโ†’๋ฉ”๋ชจ๋ฆฌ์ ‘๊ทผ

์บ์‹œ๋Š” 90๋ช‡ํผํ™•๋ฅ ๋กœ ๋ฐฉ์–ด๊ฐ€๋˜๋‹ˆ๊นŒ ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•ˆ๊ฐ€๋Š”ํ™•๋ฅ ์ด ๋” ์ปธ๋‹ค.

ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”๋กœ ๊ฐ€๋Š”๊ฒƒ๋„ ์ตœ๋Œ€ํ•œ ์ค„์ผ์ˆ˜์žˆ๋”ฐ

๋ชจ๋“ ๋ฉ”๋ชจ๋ฆฌ ์—‘์„ธ์Šค๋Š” ๋‘๋ฐฐ๊ฐ€ ์œ ๋ฐœ๋ ์ˆ˜๋„์žˆ๋‹ค. ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”๋•Œ๋ฌธ์—.. (์ฃผ์†Œ๋ฅผ์–ป๊ธฐ์œ„ํ•ด, ์‹ค์ œ์ ‘๊ทผ์„์œ„ํ•ด)

ํ•œํŽ˜์ด์ง€๊ฐ€ 4kb๋‹ˆ๊นŒ ํ•œ ํŽ˜์ด์ง€์—๋Š” k๊ฐœ์˜ ์ธ์ŠคํŠธ๋Ÿญ์…˜์ด์žˆ๋‹ค.. โ†’ ์—ฌ๋Ÿฌ๋ฒˆ ํŽ˜์ด์ง€ํ…Œ์ด๋ธ” ๊ฐ€๋ดค์ž ๋˜‘๊ฐ™์€ ํŽ˜์ด์ง€๋กœ ๊ฐˆ๊ฐ€๋Šฅ์„ฑ์ดํฌ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ณ„์†๋งํ–ˆ๋˜ ์ง€์—ญ์„ฑ์ด ์žˆ์œผ๋‹ˆ๊นŒ.

์ง€์—ญ์„ฑ์ด ์ƒ๊ฐ๋ณด๋‹ค ์กด๋‚˜๊ฒŒ ์ปค์ง„๋‹ค 4kb๋‚˜ ๋˜๋‹ˆ๊นŒ.

TLB (Translation Lookaside Buffer): ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์˜ ์ง€์—ญ์„ฑ์ด ์กด๋‚˜ํฌ๋‹ค. ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”๋„ ํŠน๋ณ„ํ•œ ์บ์‹œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์–ด๋–ค ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์ธ์ง€๋ฅผ ํ‘œ์‹œํ•ด๋‘”๋‹ค. ๊ทธ๋Ÿผ ๋ณ€ํ™˜๊ณผ์ •์ด ์กด๋‚˜ ์งง์•„์ง„๋‹ค.

ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์„ ๋ฉ”๋ชจ๋ฆฌ์—๋‘ฌ๋„์ข‹์ง€๋งŒ ์–ด์งœํ”ผ ์ง€์—ญ์„ฑ์ดํฌ๋‹ˆ๊นŒ ๋‹ค์–‘ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์ง€๋Š” ์•Š์„๊ฑฐ๋‹ค. ๊ทธ๋‹ˆ๊นŒ ์ผ๋ถ€ ํŽ˜์ด์ง€๋งŒ์ด๋ผ๋„ ํ…Œ์ด๋ธ”์ •๋ณด๋ฅผ ํŠน๋ณ„ํ•œ ์บ์‹œ์— ๋‘๋ฉด ์ข€ ์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฑฐ์ง€. TLB๋ฅผ ํ†ตํ•ด ํŽ˜์ด์ง€๊ฒ€์ƒ‰์„ ๋นจ๋ฆฌํ• ์ˆ˜์žˆ๋‹ค.

TLB ์‚ฌ์ด์ฆˆ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ์ž‘๋‹ค. page๊ฐ„์˜๊ณต๊ฐ„์ง€์—ญ์„ฑ์€ ํฌ์ง€ ์•Š๋‹ค. ๊ตณ์ด ๋ธ”๋ฝ์˜์‚ฌ์ด์ฆˆ๋ฅผ ํ‚ค์šธํ•„์š”๋„ ์—†๋‹ค. 1~2๊ฐœ์˜ ํŽ˜์ด์ง€๋งŒ ๊ฐ€์ง€๊ณ ์žˆ์–ด๋„๋œ๋‹ค.

์บ์‹œ๋‹ˆ๊นŒ ์–ด์งœํ”ผ hit์ด๋ฉด ์งง๊ณ , fault๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์•ผํ•˜๋‹ˆ๊นŒ 10~100์ •๋„

๋ฏธ์Šค๋‚ ํ™•๋ฅ ์€๊ฑฐ์˜์—†๋‹ค 0.01~1%์ •๋„

๊ฐ€์ƒ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ€ ๋•Œ ๊ฐ€์ƒ์ฃผ์†Œ๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ํŽ˜์ด์ง€๋ฒˆํ˜ธ์™€ ํŽ˜์ด์ง€ ์˜คํ”„์…‹์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ํŽ˜์ด์ง€๋„˜๋ฒ„๋งŒ ๊ฐ€์ƒโ†’๋ฌผ๋ฆฌ๋ณ€ํ™˜์„ ํ•œ๋‹ค. ์ธ๋ฑ์Šค๋งŒ๊ฐ€์ง€๊ณ  ์ผ๋‹จ ์ฐพ์•„๊ฐ€๋“ฏ ์ผ๋‹จ ํŽ˜์ด์ง€๋„˜๋ฒ„๋งŒ ๊ฐ€์ง€๊ณ  ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์„๊ฐ„๋‹ค. ๊ทธ๋Ÿผ ๊ฑฐ๊ธฐ์—” ๋ฌผ๋ฆฌ ํŽ˜์ด์ง€ ๋„˜๋ฒ„๊ฐ€ ์žˆ๋‹คโ†’ ๊ทธ๊ฑธ๋กœ ์ง„์งœ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•œ๋‹ค. ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์—๊ฐ€์„œ ํŽ˜์ด์ง€์˜คํ”„์…‹์œผ๋กœ ์–ด๋””์— ์ ‘๊ทผํ• ์ง€๊ฐ€ ์ •ํ•ด์ง„๋‹ค.

๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋Š”๊ฑด ๋””์Šคํฌ์—์žˆ๋‹ค๋Š”๊ฑฐ. ํŽ˜์ด์ง€๊ฐ€ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์—์—†๋‹ค

TLB์—์„œ๋Š” ๊ฐ€์ƒํŽ˜์ด์ง€์™€ ๋ฌผ๋ฆฌํŽ˜์ด์ง€์ฃผ์†Œ๋ฅผ ํ‘œ๋กœ ๊ฐ€์ง€๊ณ ์žˆ์Œ

images

์—ฌ๊ธฐ์„œ๋Š” ์—”ํŠธ๋ฆฌ 7๊ฐœ, ์ฆ‰ 7๊ฐœ์˜ ํŽ˜์ด์ง€์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ์Œ. ๋‹จ์ˆœ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๋งŒ๊ฐ€์ ธ์˜ค๋Š”๊ฒŒ์•„๋‹ˆ๋ผ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๋„ ๊ฐ™์ด๋“ค๊ณ ์™€์„œ ๋งคํ•‘ํ•ด๋†“์€๋‹ค. ์ฐพ์„๋•Œ๋Š” ๋ชจ๋“  ์—”ํŠธ๋ฆฌ๋ฅผ ๋™์‹œ์ ‘๊ทผํ•ด์„œ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋งค์นญ๋˜๋Š”๊ฑธ ์ฐพ์•„์„œ ๋ฐ”๋กœ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‹ค์ œ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•œ๋‹ค. โ†’ fully associative

TLB๋Š” ์ผ์ข…์˜ fully associative cache์ฒ˜๋Ÿผ ์ž‘๋™ํ•œ๋‹ค!!!

fully๋Š” ์บ์‹œ์—์„œ ์‹ค์šฉ์ ์œผ๋กœ ์ž˜ ์•ˆ์“ฐ์ด๋Š”๋ฐ๋„ ๋‹ค๋ค˜๋˜์ด์œ ๋Š” TLB์ฒ˜๋Ÿผ ํŠน์ˆ˜ํ•œ ์บ์‹œ์—์„œ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

๋ฐ”๋กœ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐพ์„์ˆ˜์žˆ๊ฒŒ ๋งŒ๋“ ๊ฒƒ!

ํŠน์ˆ˜ํ•œ์บ์‹œ์—์„œ ์“ฐ์ธ๋‹ค๊ณ ํ–ˆ๋˜์ด์œ ๊ฐ€ ์ด๊ฑฐ์˜€๋‹ค.

ADD๋Š” ์›๋ž˜ ํ•œ๋ฒˆ, ๊ทผ๋ฐ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋‘๋ฒˆ.. ๊ทผ๋ฐ TLB๊ฐ€ ์žˆ๋‹ค. ์•„๋‹ˆ๋ฉด cache๋„ ์žˆ๊ณ 

์ตœ์ดˆ๋กœ ์ฃผ์–ด์ง€๋Š”๊ฑด ๊ฐ€์ƒ์ฃผ์†Œ๋‹ค. (instruction์— ์ฃผ์–ด์ง€๋Š”๊ฒŒ ๊ฐ€์ƒ์ฃผ์†Œ์ž„)

ํŽ˜์ด์ง€์˜คํ”„์…‹์€ ๋‘๊ณ , ํŽ˜์ด์ง€๋„˜๋ฒ„๋ฅผ ๋ณ€ํ™˜์‹œ์ผœ์„œ TLB์—์„œ ์ผ๊ด„ ํƒ์ƒ‰ํ•œ๋‹ค(fully associative)

๋งค์น˜๊ฐ€ ๋๋‹ค๋ฉด ๋ฐ”๋กœ ์ง์ง€์–ด์ง„ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ์— ํŽ˜์ด์ง€์˜คํ”„์…‹์„ ๋”ํ•ด์ฃผ๋ฉด ๋ฌผ๋ฆฌ์ฃผ์†Œ๊ฐ€๋œ๋‹ค.

images

์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ๊ฐ€์ƒ์ฃผ์†Œ๊ฐ€ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ ๋ฐ”๋€Œ๋Š” ๊ณผ์ •์—์„œ TLB๊ฐ€ ํ•„์š”ํ•œ๊ฒƒ.

๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ cache๋ฅผ ํ™•์ธํ•ด๋ด์•ผํ•œ๋‹ค. ์ด๋ฒˆ์—” ์ฃผ์†Œ์˜ ์บ์‹œ์ธ๋ฑ์Šค๋กœ ์บ์‹œ์—๊ฐ€์„œ ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ tag์™€ valid๋ฅผ ํ™•์ธํ•œ๋‹ค.

์ƒ์‘ํ•œ๋‹ค๋ฉด ๊ฐ€์ ธ์™€์„œ ์“ด๋‹ค.

images

๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๊นŒ์ง€ ๊ณ ๋ คํ•œ๊ฒŒ ์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐ๋œ๋‹ค!

์กฑ๋ณด

์บ์‹œ์˜ ์„ฑ๋Šฅํ–ฅ์ƒ

associative cache์˜ ์‚ฌ์šฉ โ†’ ํ•œ ์ธ๋ฑ์Šค์— ์—ฌ๋Ÿฌ ๋ธ”๋Ÿญ์„ ๊ฐ€์ง€๊ฒŒ๋˜๋ฏ€๋กœ miss rate๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

multi leve๋กœ cache๋ฅผ ๊ตฌ์„ฑ โ†’ miss๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฐพ๋Š”๊ฒŒ์•„๋‹ˆ๋ผ ์•„๋žซ ๋ ˆ๋ฒจ์˜ ์บ์‹œ์—์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค. miss penalty๊ฐ€ ์ค„์–ด๋“ ๋‹ค.

๋” ํฐ ์บ์‹œ block์„ ์‚ฌ์šฉ โ†’ ๊ณต๊ฐ„์ง€์—ญ์„ฑ์ด ์ฆ๊ฐ€ํ•ด miss rate๋Š” ์ค„์–ด๋“ค๊ฒŒ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ miss์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๋Š” ์ฆ๊ฐ€ํ•ด miss penalty๋Š” ์ปค์ง€๊ฒŒ๋œ๋‹ค.

Share: Twitter Facebook
Seunghun Yang's Picture

About Seunghun Yang

Seunghun is undergraduate student at Computer Science Engineering in CNU(Chungnam National University).

Daejeon, South Korea

Comments