์ด์ „ ๊ฒŒ์‹œ๊ธ€์—์„œ ์ด ํ•˜๋“œ์›จ์–ด์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ๋ฐ ์„ค๋ช…์„ ๋‹ค๋ฃจ์—ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ํ•˜๋“œ์›จ์–ด ์ค‘์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋งก๊ณ  ์žˆ๋Š” CPU์— ๋Œ€ํ•ด์„œ ์ข€ ๋” ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

- CPU์˜ ๊ธฐ๋Šฅ

    • ๋ช…๋ น์–ด ์ธ์ถœ(Instruction Fetch)
      ๊ธฐ์–ต์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋ช…๋ น์„ ์ฝ์–ด์˜จ๋‹ค. ํ˜น์€ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค. (๋ฐ์ดํ„ฐ, ์ฃผ์†Œ)
    • ๋ช…๋ น์–ด ํ•ด๋…(Instruction Decode)
      ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋™์ž‘์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ธ์ถœ๋œ ๋ช…๋ น์–ด๋ฅผ ํ•ด๋…ํ•œ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์ธ์ถœ(Data Fetch)
      ๋ช…๋ น์–ด ์‹คํ–‰์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ์–ต ์žฅ์น˜ ๋˜๋Š” ์ž…์ถœ๋ ฅ ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜จ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ(Data Process)
      ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์‚ฐ์ˆ ์  ๋˜๋Š” ๋…ผ๋ฆฌ์  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์ €์žฅ(Data Store)
      ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•œ๋‹ค.

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

- CPU์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ

    • ์‚ฐ์ˆ  ๋…ผ๋ฆฌ ์žฅ์น˜(ALU)
      ๊ฐ์ข… ์‚ฐ์ˆ  ์—ฐ์‚ฐ๋“ค๊ณผ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ๋“ค์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํšŒ๋กœ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ํ•˜๋“œ์›จ์–ด ๋ชจ๋“ˆ์ด๋‹ค. ์‚ฌ์น™์—ฐ์‚ฐ๊ณผ ๊ฐ™์€ ์‚ฐ์ˆ ์—ฐ์‚ฐ ๊ทธ๋ฆฌ๊ณ  AND, OR, NOT, XOR ๋“ฑ๊ณผ ๊ฐ™์€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋ฐ >, <, = ๋“ฑ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„ ์—ฐ์‚ฐ, ๋น„๊ต ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

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

      • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(PC : Program Counter)
        ๋‹ค์Œ์— ์ธ์ถœํ•œ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋Š” ๋ถ„๊ธฐ(branch) ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๋ชฉ์ ์ง€ ์ฃผ์†Œ๋กœ ๊ฐฑ์‹ (๋ชฉ์ ์ง€๊ฐ€ ๋ณ€๊ฒฝ)๋œ๋‹ค.

      • ๋ˆ„์‚ฐ๊ธฐ(AC : Accumulator)
        ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.

      • ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ(IR : Instruction Register)
        ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ธ์ถœ๋œ ๋ช…๋ น์–ด ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.

      • ๊ธฐ์–ต ์žฅ์น˜ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ(MAR : Memory Address Register)
        ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(PC)์— ์ €์žฅ๋œ ๋ช…๋ น์–ด ์ฃผ์†Œ๊ฐ€ ์‹œ์Šคํ…œ ์ฃผ์†Œ ๋ฒ„์Šค๋กœ ์ถœ๋ ฅ๋˜๊ธฐ ์ „์— ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅ๋˜๋Š” ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.

      • ๊ธฐ์–ต ์žฅ์น˜ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ(MBR : Memory Buffer Register)
        ๊ธฐ์–ต ์žฅ์น˜์— ์“ฐ์—ฌ์งˆ ๋ฐ์ดํ„ฐ ํ˜น์€ ๊ธฐ์–ต ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ์ฝํ˜€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ ์ด๋‹ค.

์œ„์˜ ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. 

[ CPU ๋‚ด๋ถ€ ๊ตฌ์กฐ ]

 

๊ทธ๋ฆผ์—์„œ ๋ณด๋‹ค์‹œํ”ผ CPU ๋‚ด๋ถ€์—๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋“ค์ด ๋ฐฐ์น˜๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์€ ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ ํ˜น์€ ๋ช…๋ น์–ด๋ฅผ ์ €์žฅํ•˜๊ณ  ์ž…์ถœ๋ ฅ์„ ํ•˜๋ฉฐ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ณ  ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค.

    • ์ œ์–ด์œ ๋‹ˆํŠธ(์ œ์–ด ์žฅ์น˜)
      ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ(๋ช…๋ น์–ด)๋ฅผ ํ•ด์„ํ•˜๊ณ , ๊ทธ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋Š” ์ œ์–ด ์‹ ํ˜ธ(Control Signals)๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ๋ชจ๋“ˆ

    • ๋‚ด๋ถ€ CPU ๋ฒ„์Šค(Internal CPU bus)
      ALU์™€ ๋ ˆ์ง€์Šคํ„ฐ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ด๋™์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์„ ๋“ค๊ณผ ์ œ์–ด ์œ ๋‹ˆํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•˜๋Š” ์ œ์–ด ์‹ ํ˜ธ ์„ ๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋‚ด๋ถ€ ๋ฒ„์Šค์ด๋‹ค. ์™ธ๋ถ€์˜ ์‹œ์Šคํ…œ ๋ฒ„์Šค๋“ค๊ณผ๋Š” ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋ฐ˜๋“œ์‹œ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ(MBR) ํ˜น์€ ์‹œ์Šคํ…œ ๋ฒ„์Šค ์ธํ„ฐํŽ˜์ด์Šค ํšŒ๋กœ๋ฅผ ํ†ตํ•˜์—ฌ ์‹œ์Šคํ…œ ๋ฒ„์Šค์™€ ์ ‘์†ํ•œ๋‹ค.

 

Posted by doubler
,