CS

[CS] ์ค‘์•™๊ธฐ์–ต์žฅ์น˜(CPU)

quedevel 2023. 3. 24. 20:43
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽฏ ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU) ์ž‘๋™ ์›๋ฆฌ


CPU(Central Processing Unit)๋Š” ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜, ์ œ์–ด์žฅ์น˜, ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ ์žฅ์น˜๋ฅผ ๋งํ•˜๋ฉฐ, ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๋‹จ์ˆœํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ์ผ๊พผ์ด๋‹ค.


โญ ์ œ์–ด์žฅ์น˜

์ œ์–ด์žฅ์น˜(CU, Control Unit)๋Š” ํ”„๋กœ์„ธ์Šค ์กฐ์ž‘์„ ์ง€์‹œํ•˜๋Š” CPU์˜ ํ•œ ๋ถ€ํ’ˆ์ด๋‹ค. ์ž…์ถœ๋ ฅ์žฅ์น˜ ๊ฐ„ ํ†ต์‹ ์„ ์ œ์–ดํ•˜๊ณ  ๋ช…๋ น์–ด๋“ค์„ ์ฝ๊ณ  ํ•ด์„ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

โญ ๋ ˆ์ง€์Šคํ„ฐ

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

โญ ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜

์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜(ALU, Arithmetic Logic Unit)๋Š” ๋ง์…ˆ, ๋บ„์…ˆ ๊ฐ™์€ ๋‘ ์ˆซ์ž์˜ ์‚ฐ์ˆ  ์—ฐ์‚ฐ๊ณผ ๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ, ๋…ผ๋ฆฌ๊ณฑ ๊ฐ™์€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ์ž…๋‹ˆ๋‹ค.


  • CPU ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ

1๏ธโƒฃ ์ œ์–ด์žฅ์น˜๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ„์‚ฐํ•  ๊ฐ’์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ ˆ์ง€์Šคํ„ฐ์—๋„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
2๏ธโƒฃ ์ œ์–ด์žฅ์น˜๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋ผ๊ณ  ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜์— ๋ช…๋ นํ•ฉ๋‹ˆ๋‹ค.
3๏ธโƒฃ ์ œ์–ด์žฅ์น˜๊ฐ€ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๋‹ค์‹œ '๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ' ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.


โญ ํŠน์ˆ˜ ๋ชฉ์  ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ข…๋ฅ˜

โœ… MAR (๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ) : ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ฃผ๊ธฐ์–ต์žฅ์น˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ
โœ… PC (ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ) : ๋‹ค์Œ์— ์‹คํ–‰๋  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ
โœ… SP (์Šคํƒ ํฌ์ธํ„ฐ) : ์Šคํƒ์˜ ์ตœ์ƒ์œ„ ์ฃผ์†Œ๋ฅผ ์ €์žฅ
โœ… IX (์ธ๋ฑ์Šค ๋ ˆ์ง€์Šคํ„ฐ) : ์ธ๋ฑ์Šค ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹์—์„œ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅ
โœ… IR (๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ) : ๋ช…๋ น์–ด๋ฅผ ํ˜ธ์ถœํ•ด์„œ ํ•ด๋…ํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ๋ช…๋ น์–ด๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅ
โœ… MBR (๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ) : ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ๋‚ด์šฉ์„ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ์—ญํ• 
โœ… AC (๋ˆ„์‚ฐ๊ธฐ) : ์‚ฐ์ˆ  ๋…ผ๋ฆฌ ์žฅ์น˜์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅ
โœ… PSR (ํ”„๋กœ๊ทธ๋žจ ์ƒํƒœ ๋ ˆ์ง€์Šคํ„ฐ) : CPU์˜ ํ˜„์žฌ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅ


โญ CPU๊ฐ€ ํ•˜๋Š” ์ผ์€ ์š”์•ฝํ•ด๋ณด๋ฉด ๋Œ€๋ถ€๋ถ„ ๊ณ ์ž‘ ์•„๋ž˜ 4๊ธฐ๋Šฅ์ด ์ „๋ถ€๋‹ค.


  • ๊ฐ„๋‹จํ™” ํ•œ CPU Instruction Cycle(๋ช…๋ น ์ฃผ๊ธฐ)

โœ… Fetch(์ธ์ถœ) : ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ช…๋ น์–ด๋ฅผ CPU๋กœ ์ธ์ถœํ•˜์—ฌ ์ ์žฌ
โœ… Decode(ํ•ด์„) : ๋ช…๋ น์–ด์˜ ํ•ด์„. ์ด ๋‹จ๊ณ„์—์„œ ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜์™€ ํƒ€๊ฒŸ ๋“ฑ์„ ํŒ๋‹จํ•œ๋‹ค
โœ… Execute(์‹คํ–‰) : ํ•ด์„๋œ ๋ช…๋ น์–ด์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค
โœ… Writeback(์“ฐ๊ธฐ) : ๋ช…๋ น์–ด๋Œ€๋กœ ์ฒ˜๋ฆฌ ์™„๋ฃŒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ๋กํ•œ๋‹ค

728x90
๋ฐ˜์‘ํ˜•