๐ŸŽ„ ์„ฑ์žฅ์ผ์ง€ 3.1

์ฑ… ํ–‰๋ณตํ•œ ์ด๊ธฐ์ฃผ์˜์ž(์›จ์ธ ๋‹ค์ด์–ด)์˜ ๋‚ด์šฉ์— ์ž๊ทน๋ฐ›์•„ ์‹œ์ž‘ํ•˜๋Š” ์†Œ๋ฐ•ํ•œ ์„ฑ์žฅ๊ธฐ๋ก

์‚ด์•„์žˆ๋Š” ๊ฝƒ๊ณผ ์ฃฝ์€ ๊ฝƒ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š”๊ฐ€?
์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
์ƒ๋ช…์˜ ์œ ์ผํ•œ ์ฆ๊ฑฐ๋Š” ์„ฑ์žฅ์ด๋‹ค!

๐ŸŒณ ํ‚ค์›Œ๋“œ (1.0)
์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌ, ์ถ”ํ›„์— ๋ณด๋ฉด์„œ ์Šค์Šค๋กœ ์„ค๋ช…
๐Ÿ‰ ๊ฒฝํ—˜ ์œ„์ฃผ๋กœ (2.0)
๋‹จ์ˆœ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ๋ณด๋‹ค ๋ฌด์—‡์„ ๋ฐฐ์› ๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ์งง๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ
โ„๏ธ ์ •ํ•ด์ง„ ํ…œํ”Œ๋ฆฟ์— ๋งž์ถฐ์„œ (3.0)
ํ‚ค์›Œ๋“œ, ๊ฒฝํ—˜ ๋ชจ๋‘ ์ข‹๋‹ค. ๋‹ค๋งŒ ๋งค์ผ ์ž‘์„ฑํ•˜๊ธฐ๋กœ ๋งˆ์Œ ๋จน์€๋งŒํผ ํ•ต์‹ฌ๋งŒ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑ (3.1) 230102๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋Š” ํ•™์Šต์— ๊ด€ํ•œ ๋‚ด์šฉ ์ถ”๊ฐ€

๐Ÿ”‘ ์˜ค๋Š˜์˜ ํ‚ค์›Œ๋“œ

์ปดํ“จํ„ฐ ๊ตฌ์กฐ

  • ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU), ๊ธฐ์–ต์žฅ์น˜(RAM; Memory), ๊ธฐํƒ€ ์ž…์ถœ๋ ฅ์žฅ์น˜(I/O)๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ๊ฐ ์žฅ์น˜๋Š” ์‹œ์Šคํ…œ ๋ฒ„์Šค๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋‹ค.

CPU

  • ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜. ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ํ†ต์ œํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์˜ ์—ฐ์‚ฐ์„ ์‹คํ–‰ ๋ฐ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ์ œ์–ด์žฅ์น˜(CU), ์—ฐ์‚ฐ์žฅ์น˜(ALU), ๋ ˆ์ง€์Šคํ„ฐ ๊ทธ๋ฆฌ๊ณ  ์ด 3๊ฐœ๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๋ฒ„์Šค(ํšŒ์„ )๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

CPU ์ž‘๋™ ์ˆœ์„œ: Memory์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ(๋ช…๋ น์–ด)์„ ์ฐจ๋ก€๋Œ€๋กœ fetchํ•ด์„œ(๊ฐ€์ ธ์™€์„œ) ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ decodeํ•˜์—ฌ(๋ถ„๋ฅ˜ํ•˜์—ฌ) executeํ•œ๋‹ค.(์‹คํ–‰ํ•œ๋‹ค.)
dump: ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์ด ํŠน์ • ์‹œ์ ์— ์ž‘์—… ์ค‘์ด๋˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ๊ธฐ๋กํ•œ ๊ฒƒ์œผ๋กœ, ๋ณดํ†ต ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋์„ ๋•Œ ๋งŒ๋“ค์–ด์ง„๋‹ค. ์ฆ‰, ๋น„์ •์ƒ์ ์ธ ์ข…๋ฃŒ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์ปค๋„์—์„œ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จ๋œ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ๊ธฐ๋กํ•œ ํŒŒ์ผ์ด๋‹ค.

์ œ์–ด์žฅ์น˜(CU)

๋ ˆ์ง€์Šคํ„ฐ ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๊ฐ์‹œํ•˜๊ณ  ALU(์—ฐ์‚ฐ์žฅ์น˜)์˜ ๋™์ž‘์„ ์ง€์‹œํ•œ๋‹ค.
์ ์ ˆํ•œ ์ˆœ์„œ๋กœ ๋ช…๋ น์„ ๊บผ๋‚ด๊ณ , ๊ฐ ๋ช…๋ น์„ ํ•ด์„ํ•˜์—ฌ ์‚ฐ์ˆ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ์žฅ์น˜๋‚˜ ๊ธฐํƒ€ ๋ถ€๋ถ„์œผ๋กœ ์ ์ ˆํ•œ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(Program Counter): ๋‹ค์Œ์— ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ
  • ๋ช…๋ น ํ•ด๋…๊ธฐ(Instruction Decoder): ์ˆ˜ํ–‰ํ•ด์•ผํ•  ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜์—ฌ ๋ถ€ํ˜ธ๊ธฐ๋กœ ์ „๋‹ฌํ•˜๋Š” ํšŒ๋กœ
  • ๋ถ€ํ˜ธ๊ธฐ(Encoder): ์ „์†ก๋œ ๋ช…๋ น์–ด๋ฅผ ์ œ์–ด, ํ•„์š”ํ•œ ์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํšŒ๋กœ
  • ๋ช…๋ น ๋ ˆ์ง€์Šคํ„ฐ(Instruction Register; IR): ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ธ ๋ช…๋ น์–ด๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ
  • ์ฃผ์†Œ ํ•ด๋…๊ธฐ(Address Decoder): IR๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ฃผ์†Œ๋ฅผ ํ•ด์„ํ•˜๋Š” ํšŒ๋กœ
  • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ(Memory Address Register; MAR): ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ(Memory Buffer Register; MBR): ๋‚ด์šฉ(์ž๋ฃŒ)๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ

์—ฐ์‚ฐ์žฅ์น˜(ALU)

๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์žฅ์น˜
์—ฐ์‚ฐ์— ํ•„์š”ํ•œ ์ž๋ฃŒ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋”ํ•˜๊ธฐ, ๋นผ๊ธฐ, AND, OR ๋“ฑ์˜ ์‹ค์ œ์ ์ธ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

  • ๊ฐ€์‚ฐ๊ธฐ: 2์ง„์ˆ˜ ๋ง์…ˆ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํšŒ๋กœ
  • ๋ณด์ˆ˜๊ธฐ: ์ž…๋ ฅ๋œ ๊ฐ’์„ ๋ณด์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋บ„์…ˆ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํšŒ๋กœ
  • ๋ˆ„์‚ฐ๊ธฐ: ์ค‘๊ฐ„ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ๊ธฐ์–ตํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ
  • ๋ฐ์ดํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ: ์—ฐ์‚ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ

๋ ˆ์ง€์Šคํ„ฐ

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

CPU๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ๊นŒ? ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๊ธฐ์ดˆ ์‚ฌ์šฉ๋ฒ•

๐Ÿ“ ์š”์•ฝ ๋ฐ ํ•˜๋ฃจ ๊ฐ„๋‹จ ํšŒ๊ณ 

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