Post

[Computer Structure] Register

[Computer Structure] Register

๐Ÿงฉ Memory Hierarchy

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

๋ฌผ๋ฆฌ์  ๊ฑฐ๋ฆฌ์™€ ์ „์†ก ์ง€์—ฐ

๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„๋Š” ๋ฌผ๋ฆฌ์ ์ธ ๊ฑฐ๋ฆฌ์— ์ œ์•ฝ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. 3GHz๋กœ ์ž‘๋™ํ•˜๋Š” CPU์˜ ํ•œ ํด๋ก ์‚ฌ์ดํด์€ ์•ฝ 0.33๋‚˜๋…ธ์ดˆ์ด๋ฉฐ, ์ด ์‹œ๊ฐ„ ๋™์•ˆ ์ „๊ธฐ ์‹ ํ˜ธ๊ฐ€ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑฐ๋ฆฌ๋Š” ๋งค์šฐ ์งง์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๊ฐ€ CPU ์™ธ๋ถ€์˜ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(RAM)์—์„œ ์ถœ๋ฐœํ•œ๋‹ค๋ฉด, ๋ฌผ๋ฆฌ์  ๊ฑฐ๋ฆฌ๋ฅผ ์ด๋™ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ฑฐ์น˜๋Š” ๊ณผ์ •์—์„œ ์ˆ˜๋ฐฑ ํด๋ก ์‚ฌ์ดํด์ด ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค.

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

์•„ํ‚คํ…์ฒ˜ ์ƒํƒœ ๋ณด์กด์˜ ์ •์ 

๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋‹จ์ˆœํžˆ ๋น ๋ฅธ ์ €์žฅ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ, ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์ •์˜ํ•˜๋Š” ํ•ต์‹ฌ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ „ํ™˜ํ•˜๋Š” ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ์‹œ, ๊ฐ€์žฅ ๋จผ์ € ๋ณดํ˜ธํ•˜๊ณ  ๋ณต๊ตฌํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’๋“ค์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด ์ฃผ์†Œ(PC), ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฌผ, ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์œ„ํ•œ ์Šคํƒ ํฌ์ธํ„ฐ ๋“ฑ์ด ๋ชจ๋‘ ์ด ๊ณต๊ฐ„์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

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

๐Ÿงฉ Register

๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ถ”์ƒ์ ์ธ ๊ณต๊ฐ„์ด ์•„๋‹ˆ๋ผ ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ๋กœ ๊ตฌํ˜„๋œ ๋ฌผ๋ฆฌ์  ํšŒ๋กœ์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์žฅ์†Œ๋ผ๋ฉด, ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ”„๋กœ์„ธ์„œ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค.

ํ”Œ๋ฆฝํ”Œ๋กญ๊ณผ ๋ฐ์ดํ„ฐ ์œ ์ง€

๋””์ง€ํ„ธ ํšŒ๋กœ์—์„œ 1๋น„ํŠธ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์ตœ์†Œ ๋‹จ์œ„๋Š” ํ”Œ๋ฆฝํ”Œ๋กญ์ž…๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ทผ๊ฐ„์ธ D-ํ”Œ๋ฆฝํ”Œ๋กญ์€ ์‹ ํ˜ธ๊ฐ€ ๋‚ด๋ถ€์—์„œ ์ˆœํ™˜ํ•˜๋ฉฐ ์ „์•• ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

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

๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฉ€ํ‹ฐ ํฌํŠธ

ํ˜„๋Œ€ CPU๋Š” ํ•œ ์‚ฌ์ดํด์— ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ์ˆ˜ํผ์Šค์นผ๋ผ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ ˆ์ง€์Šคํ„ฐ์˜ ํ†ต๋กœ๊ฐ€ ํ•˜๋‚˜๋ฟ์ด๋ผ๋ฉด ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๋•Œ ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” โ€˜๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผโ€™์ด๋ผ๋Š” ๋ฑ…ํฌ ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ SRAM๊ณผ ๋‹ฌ๋ฆฌ ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ํ†ต๋กœ๋ฅผ ๋™์‹œ์— ์—ด ์ˆ˜ ์žˆ๋Š” ๋ฉ€ํ‹ฐ ํฌํŠธ ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ์‚ฌ์ดํด์— 4๊ฐœ์˜ ๋ช…๋ น์–ด๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  2๊ฐœ์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ๊ธฐ๋ก๋˜๋Š” ๋™์ž‘์ด ๋™์‹œ์— ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํฌํŠธ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ํšŒ๋กœ ๋ฐฐ์„ ์ด ๋ณต์žกํ•ด์ง€๋ฉฐ, ์ด๋Š” ๋‹ค์ด ๋ฉด์ ์˜ ์ œ๊ณฑ($N^2$)์— ๋น„๋ก€ํ•˜๋Š” ๋น„์šฉ ์ƒ์Šน์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ์ˆ˜์‹ญ ๊ฐœ ์ˆ˜์ค€์—์„œ ์ œํ•œ๋˜๋Š” ์ด์œ ๋Š” ๋ฐฐ์„  ๋ณต์žก๋„์™€ ์ „๋ ฅ ์†Œ๋ชจ์˜ ํ•œ๊ณ„ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ œ์–ด์šฉ ํŠน์ˆ˜ ๋ ˆ์ง€์Šคํ„ฐ

์—ฐ์‚ฐ ๋ฐ์ดํ„ฐ ์™ธ์— CPU์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” ํŠน์ˆ˜ ๋ชฉ์  ๋ ˆ์ง€์Šคํ„ฐ๋“ค๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(PC): ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์‹คํ–‰ ํ๋ฆ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํƒ ํฌ์ธํ„ฐ(SP): ํ˜„์žฌ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ธ ์Šคํƒ์˜ ์ƒ๋‹จ์„ ๊ฐ€๋ฆฌ์ผœ ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๋ฐ˜ํ™˜์˜ ์งˆ์„œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ: ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ 0์ธ์ง€, ์Œ์ˆ˜์ธ์ง€, ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ๋“ฑ์˜ ์ƒํƒœ๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ์กฐ๊ฑด๋ฌธ ๋ถ„๊ธฐ์˜ ๊ธฐ์ค€์ด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿงฉ Instruction Set Architecture

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

์ž์› ์ถ”์ƒํ™” ๊ณ„์ธต

ISA๋Š” ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ดํ•ดํ•˜๋Š” ๋ช…๋ น์–ด ์ง‘ํ•ฉ์ธ ๋™์‹œ์— ์ž์› ํ™œ์šฉ์— ๋Œ€ํ•œ ๊ทœ์•ฝ์ž…๋‹ˆ๋‹ค. x86-64 ์•„ํ‚คํ…์ฒ˜๋Š” 16๊ฐœ์˜ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๊ณ , ARMv8์€ 31๊ฐœ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹์ž…๋‹ˆ๋‹ค.

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

๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ์ „๋žต

์ปดํŒŒ์ผ๋Ÿฌ์˜ ํ•ต์‹ฌ ์ž„๋ฌด๋Š” ๋ณ€์ˆ˜๋ฅผ ์–ด๋–ค ๋ ˆ์ง€์Šคํ„ฐ์— ๋ฐฐ์น˜ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž…๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์˜ ์ˆ˜๋Š” ๋งŽ์ง€๋งŒ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ•œ์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฐ ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ ๊ธฐ๊ฐ„์„ ๋ถ„์„ํ•˜์—ฌ ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜๋“ค์„ ๋™์ผํ•œ ๋ ˆ์ง€์Šคํ„ฐ์— ๋ฒˆ๊ฐˆ์•„ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์šฉ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋ถ€์กฑํ•ด์ง€๋ฉด ์‚ฌ์šฉ ๋นˆ๋„๊ฐ€ ๋‚ฎ์€ ๋ณ€์ˆ˜๋ฅผ ์ž ์‹œ ๋ฉ”๋ชจ๋ฆฌ(Stack)๋กœ ๋‚ด๋ณด๋‚ด๋Š” โ€˜๋ ˆ์ง€์Šคํ„ฐ ์Šคํ•„๋งโ€™์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹จ ํ•œ ๋ฒˆ์˜ ์Šคํ•„๋ง๋งŒ์œผ๋กœ๋„ ๋‚˜๋…ธ์ดˆ ๋‹จ์œ„์˜ ์—ฐ์‚ฐ ์†๋„๊ฐ€ ํ›จ์”ฌ ๋А๋ฆฐ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์†๋„๋กœ ๋Œ€์ฒด๋˜์–ด ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์˜ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
; C ์ฝ”๋“œ ์˜ˆ์‹œ: ๋งŽ์€ ์ง€์—ญ ๋ณ€์ˆ˜ ์‚ฌ์šฉ
; int calculate(int a, int b, int c, int d, int e, int f) {
;     int x = a + b;
;     int y = c + d;
;     int z = e + f;
;     return x * y * z;
; }

; ์ปดํŒŒ์ผ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ (x86-64, ์ตœ์ ํ™” ํฌํ•จ)
; ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ์Šคํƒ(๋ฉ”๋ชจ๋ฆฌ)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ ์ €์žฅ(spilling)ํ•˜๋Š” ๋ชจ์Šต
calculate:
    push   rbp          ; ์Šคํƒ ํ”„๋ ˆ์ž„ ๋ณด์กด
    mov    rbp, rsp
    sub    rsp, 16      ; ์Šคํƒ ๊ณต๊ฐ„ ํ™•๋ณด (Spilling ์˜์—ญ)

    mov    eax, edi     ; a (edi)๋ฅผ eax๋กœ ์ด๋™
    add    eax, esi     ; eax = a + b (x ๊ณ„์‚ฐ)
    mov    DWORD PTR [rbp-4], eax ; ๊ณ„์‚ฐ๋œ x๋ฅผ ์Šคํƒ์— ์ €์žฅ (Spilling!)

    mov    eax, edx     ; c (edx)๋ฅผ eax๋กœ ์ด๋™
    add    eax, ecx     ; eax = c + d (y ๊ณ„์‚ฐ)
    mov    DWORD PTR [rbp-8], eax ; ๊ณ„์‚ฐ๋œ y๋ฅผ ์Šคํƒ์— ์ €์žฅ (Spilling!)

    mov    eax, r8d     ; e (r8d)๋ฅผ eax๋กœ ์ด๋™
    add    eax, r9d     ; eax = e + f (z ๊ณ„์‚ฐ)

    imul   eax, DWORD PTR [rbp-4] ; eax = z * x (์Šคํƒ์—์„œ x๋ฅผ ๋‹ค์‹œ ์ฝ์–ด์˜ด)
    imul   eax, DWORD PTR [rbp-8] ; eax = (z * x) * y (์Šคํƒ์—์„œ y๋ฅผ ๋‹ค์‹œ ์ฝ์–ด์˜ด)

    leave               ; ์Šคํƒ ํ”„๋ ˆ์ž„ ๋ณต๊ตฌ
    ret                 ; ๋ฐ˜ํ™˜

๐Ÿงฉ CPU Pipeline

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

์Šคํ…Œ์ด์ง•๊ณผ ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ

ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ์—์„œ ๋ฐ์ดํ„ฐ๋Š” ํด๋ก ์‹ ํ˜ธ์— ๋งž์ถฐ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฐ ๋‹จ๊ณ„(Fetch, Decode, Execute ๋“ฑ) ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์„ž์ด์ง€ ์•Š๋„๋ก ๋ฌผ๋ฆฌ์ ์ธ ๊ฒฝ๊ณ„๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ์ด๋ฅผ ํŒŒ์ดํ”„๋ผ์ธ ๋ ˆ์ง€์Šคํ„ฐ ๋˜๋Š” ์Šคํ…Œ์ด์ง• ๋ ˆ์ง€์Šคํ„ฐ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ด์ „ ๋‹จ๊ณ„์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „๊นŒ์ง€ ๊ทธ ๊ฐ’์„ ์•ˆ์ •์ ์œผ๋กœ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฉ๋ฆฌ ์žฅ์น˜๊ฐ€ ์—†๋‹ค๋ฉด ์ „์•• ๋ณ€ํ™”๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ ์ „์ฒด์— ์˜ํ–ฅ์„ ์ฃผ์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค์—ผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํŒŒ์ดํ”„๋ผ์ธ ๋งˆ๋””๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋ฉฐ CPU๊ฐ€ ๊ณ ์†์œผ๋กœ ์ž‘๋™ํ•  ๋•Œ๋„ ๋…ผ๋ฆฌ์  ์ •ํ™•์„ฑ์„ ์œ ์ง€ํ•˜๊ฒŒ ๋•์Šต๋‹ˆ๋‹ค.

ํ•ด์ €๋“œ์™€ ๋ฐ”์ดํŒจ์Šค ๋กœ์ง

ํŒŒ์ดํ”„๋ผ์ธ์˜ ์„ฑ๋Šฅ์„ ์ €ํ•ดํ•˜๋Š” ์ฃผ์š” ์š”์ธ์€ ๋ช…๋ น์–ด ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์˜์กด์„ฑ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ•ด์ €๋“œ(Data Hazard)์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๊ฐ€ ์•„์ง ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋ก๋˜์ง€ ์•Š์•˜๋Š”๋ฐ, ๋‹ค์Œ ๋ช…๋ น์–ด๊ฐ€ ๊ทธ ๊ฐ’์„ ์ฆ‰์‹œ ์ฝ์œผ๋ ค ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹จ์ˆœํžˆ ๋Œ€๊ธฐ(Stall)ํ•˜๋ฉด ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๊ธ‰๊ฒฉํžˆ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ˜„๋Œ€ CPU๋Š” ํฌ์›Œ๋”ฉ(Forwarding) ๋˜๋Š” ๋ฐ”์ดํŒจ์Šค(Bypass)๋ผ๋Š” ์šฐํšŒ ํšŒ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฐ์‚ฐ ์žฅ์น˜(ALU)์—์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋ก๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ , ์ฆ‰์‹œ ๋‹ค์Œ ๋ช…๋ น์–ด์˜ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์ง์ ‘ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ์šฐํšŒ๋กœ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์ œ ์ €์žฅ์†Œ์— ์•ˆ์ฐฉํ•˜๊ธฐ ์ „์ด๋ผ๋„ ํ•„์š”ํ•œ ๊ณณ์œผ๋กœ ๋ฐ”๋กœ ์ „๋‹ฌ๋˜์–ด ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
; ๋ฐ์ดํ„ฐ ํ•ด์ €๋“œ ๋ฐœ์ƒ ์˜ˆ์‹œ
; ๋ช…๋ น์–ด 1: EAX ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’์„ ์“ด๋‹ค. (Write)
add eax, ebx  ; EAX = EAX + EBX

; ๋ช…๋ น์–ด 2: ๋ฐ”๋กœ ๋‹ค์Œ ์‚ฌ์ดํด์— EAX ๊ฐ’์„ ์ฝ์œผ๋ ค ํ•œ๋‹ค. (Read)
; ๋งŒ์•ฝ ๋ฐ”์ดํŒจ์Šค๊ฐ€ ์—†๋‹ค๋ฉด, ๋ช…๋ น์–ด 1์ด WB(Writeback) ๋‹จ๊ณ„๊นŒ์ง€ ๋งˆ์น  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.
mov ecx, eax  ; ECX = EAX (RAW Hazard ๋ฐœ์ƒ!)

ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊นŠ์ด์™€ ๋ ˆ์ง€์Šคํ„ฐ ๋น„์šฉ

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

Register Renaming

์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ธ์‹ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ˆ˜์‹ญ ๊ฐœ ์ˆ˜์ค€์ด์ง€๋งŒ, ์‹ค์ œ ํ•˜๋“œ์›จ์–ด ๋‚ด๋ถ€์—๋Š” ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋ฌผ๋ฆฌ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. CPU๋Š” ์ด ์ฐจ์ด๋ฅผ ๋ฉ”์šฐ๊ธฐ ์œ„ํ•ด ์‹คํ–‰ ์‹œ์ ์— ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๋ ˆ์ง€์Šคํ„ฐ ๋ฆฌ๋„ค์ด๋ฐ(Register Renaming) ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ด๋ฆ„ ์ค‘๋ณต์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฐ€์งœ ์˜์กด์„ฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋น„์ˆœ์ฐจ ์‹คํ–‰(Out-of-Order Execution)์˜ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์งœ ์˜์กด์„ฑ ์ œ๊ฑฐ

ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ ๋‚ด์—์„œ๋Š” ํ•œ์ •๋œ ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„์„ ๋ฐ˜๋ณตํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์‹ค์ œ ๋ฐ์ดํ„ฐ ํ๋ฆ„๊ณผ๋Š” ์ƒ๊ด€์—†์ด ๋‹จ์ˆœํžˆ ์ด๋ฆ„์ด ๊ฐ™์•„์„œ ๋ฐœ์ƒํ•˜๋Š” WAR(Write-After-Read)์ด๋‚˜ WAW(Write-After-Write) ๊ฐ™์€ ์˜์กด์„ฑ์ด ์ƒ๊น๋‹ˆ๋‹ค. ์ด๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ถ€์กฑํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฐ€์งœ ์˜์กด์„ฑ์ž…๋‹ˆ๋‹ค.

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

๋ฌผ๋ฆฌ์  ๊ฐ€์ƒํ™” ๋งคํ•‘

๋ฆฌ๋„ค์ด๋ฐ์˜ ํ•ต์‹ฌ ๊ธฐ๊ตฌ๋Š” ๋ ˆ์ง€์Šคํ„ฐ ๋ณ„์นญ ํ…Œ์ด๋ธ”(RAT)์ž…๋‹ˆ๋‹ค. CPU๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•  ๋•Œ ์ฝ”๋“œ์— ๋ช…์‹œ๋œ ๋…ผ๋ฆฌ ๋ ˆ์ง€์Šคํ„ฐ ๋ฒˆํ˜ธ๋ฅผ ๋ฌผ๋ฆฌ ๋ ˆ์ง€์Šคํ„ฐ ํ’€(PRP)์˜ ๋น„์–ด ์žˆ๋Š” ๋ฒˆํ˜ธ๋กœ ์ฆ‰์‹œ ์น˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋งคํ•‘ ์ •๋ณด๋Š” RAT์— ๊ธฐ๋ก๋˜๋ฉฐ, ์ดํ›„์˜ ๋ช…๋ น์–ด๋“ค์€ ์ด ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•ด ์ •ํ™•ํ•œ ์œ„์น˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ISA์— ์ •์˜๋œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ผ์ข…์˜ ํ•ธ๋“ค ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จธ๋ฌด๋Š” ๊ณณ์€ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฌผ๋ฆฌ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ฌผ๋ฆฌ RAM์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•œ ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์˜ ๊ฐ€์ƒํ™”์ž…๋‹ˆ๋‹ค.

๋น„์ˆœ์ฐจ ์‹คํ–‰์„ ์œ„ํ•œ ๋ฆฌ์˜ค๋” ๋ฒ„ํผ(ROB)

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

์ด๋ฅผ ์œ„ํ•ด ๋ฆฌ์˜ค๋” ๋ฒ„ํผ(ROB)๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ˆœ์„œ์™€ ์ƒ๊ด€์—†์ด ์™„๋ฃŒ๋œ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋“ค์€ ์ผ๋‹จ ROB์— ์ž„์‹œ ์ €์žฅ๋˜์—ˆ๋‹ค๊ฐ€, ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๋ช…๋ น์–ด๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋ก(Commit)๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์˜ˆ์ธก์ด ํ‹€๋ฆฌ๊ฑฐ๋‚˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ROB์— ์Œ“์ธ ๋น„์ˆœ์ฐจ ๊ฒฐ๊ณผ๋“ค์„ ์ฆ‰์‹œ ํ๊ธฐํ•˜๊ณ  RAT๋ฅผ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ ค ์‹œ์Šคํ…œ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ฆฌ ๋ ˆ์ง€์Šคํ„ฐ ํ’€์˜ ๊ณ ๊ฐˆ๊ณผ ์„ฑ๋Šฅ ์ €ํ•˜

๋ฆฌ๋„ค์ด๋ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌผ๋ฆฌ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐœ์ˆ˜๋Š” ํ•œ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์ˆœ์ฐจ์ ์œผ๋กœ ๋Œ€๊ธฐํ•˜๋Š” ๋ช…๋ น์–ด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ ธ ๋ฌผ๋ฆฌ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋ฐ”๋‹ฅ๋‚˜๋ฉด ํŒŒ์ดํ”„๋ผ์ธ์ด ์ •์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ˜„๋Œ€ CPU ์„ค๊ณ„์ž๋“ค์ด ๋‹ค์ด ๋ฉด์ ์„ ํฌ์ƒํ•˜๋ฉด์„œ๊นŒ์ง€ ๋ฌผ๋ฆฌ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์† ๋Š˜๋ฆฌ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

Summary

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

References

This post is licensed under CC BY 4.0 by the author.