CPU ๊ตฌ์กฐ ๊ธฐ์ดˆ

CPU ๊ตฌ์กฐ ๊ธฐ์ดˆ

๊ฐœ์š”

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

๋‚œ์ด๋„: โญโญ

์„ ์ˆ˜ ์ง€์‹: ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ, ์ˆœ์ฐจ ๋…ผ๋ฆฌ ํšŒ๋กœ, ์กฐํ•ฉ ๋…ผ๋ฆฌ ํšŒ๋กœ


๋ชฉ์ฐจ

  1. CPU์˜ ๊ตฌ์„ฑ์š”์†Œ
  2. ๋ ˆ์ง€์Šคํ„ฐ ์ข…๋ฅ˜
  3. ๋ฐ์ดํ„ฐํŒจ์Šค
  4. ๋ช…๋ น์–ด ์‹คํ–‰ ์‚ฌ์ดํด ์ƒ์„ธ
  5. ๋‹จ์ผ ์‚ฌ์ดํด vs ๋‹ค์ค‘ ์‚ฌ์ดํด
  6. ์—ฐ์Šต ๋ฌธ์ œ

1. CPU์˜ ๊ตฌ์„ฑ์š”์†Œ

1.1 CPU ์ „์ฒด ๊ตฌ์กฐ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                            CPU                                    โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚                    ์ œ์–ด ์žฅ์น˜ (Control Unit)                 โ”‚  โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ ๋ช…๋ น์–ด ํ•ด๋…  โ”‚  โ”‚  ์ œ์–ด ์‹ ํ˜ธ  โ”‚  โ”‚  ํƒ€์ด๋ฐ & ์‹œํ€€์‹ฑ    โ”‚ โ”‚  โ”‚
โ”‚  โ”‚  โ”‚   (Decoder) โ”‚  โ”‚   ์ƒ์„ฑ๊ธฐ    โ”‚  โ”‚    (Sequencer)      โ”‚ โ”‚  โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚   ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ      โ”‚    โ”‚      ALU (์‚ฐ์ˆ ๋…ผ๋ฆฌ์žฅ์น˜)          โ”‚  โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”   โ”‚    โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ R0  โ”‚ โ”‚ R1  โ”‚   โ”‚    โ”‚  โ”‚   ์‚ฐ์ˆ  ์—ฐ์‚ฐ ์œ ๋‹›         โ”‚    โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”€โ”€โ”ค   โ”‚    โ”‚  โ”‚   (+, -, *, /)          โ”‚    โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ R2  โ”‚ โ”‚ R3  โ”‚   โ”‚    โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค    โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”€โ”€โ”ค   โ”‚    โ”‚  โ”‚   ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ์œ ๋‹›         โ”‚    โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ ... โ”‚ โ”‚ ... โ”‚   โ”‚    โ”‚  โ”‚   (AND, OR, XOR, NOT)   โ”‚    โ”‚  โ”‚
โ”‚  โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”€โ”€โ”ค   โ”‚    โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค    โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ PC  โ”‚ โ”‚ IR  โ”‚   โ”‚    โ”‚  โ”‚   ์‹œํ”„ํŠธ ์œ ๋‹›            โ”‚    โ”‚  โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚    โ”‚  โ”‚   (<<, >>)              โ”‚    โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚                   ๋‚ด๋ถ€ ๋ฒ„์Šค (Internal Bus)                  โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚    ์‹œ์Šคํ…œ ๋ฒ„์Šค     โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

1.2 ALU (Arithmetic Logic Unit)

ALU๋Š” CPU์—์„œ ์‹ค์ œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•ต์‹ฌ ์žฅ์น˜์ž…๋‹ˆ๋‹ค.

                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        A โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚              โ”‚
        (ํ”ผ์—ฐ์‚ฐ์ž1)  โ”‚              โ”‚
                    โ”‚     ALU      โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ ๊ฒฐ๊ณผ
        B โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚              โ”‚
        (ํ”ผ์—ฐ์‚ฐ์ž2)  โ”‚              โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ ์ƒํƒœ ํ”Œ๋ž˜๊ทธ
                    โ”‚              โ”‚          (Zero, Carry,
        ์—ฐ์‚ฐ ์ฝ”๋“œ โ”€โ”€โ–บโ”‚              โ”‚           Overflow, Sign)
        (Op Code)   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ALU๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ

์—ฐ์‚ฐ ์ข…๋ฅ˜ ์—ฐ์‚ฐ ์„ค๋ช…
์‚ฐ์ˆ  ์—ฐ์‚ฐ ADD ๋ง์…ˆ
SUB ๋บ„์…ˆ
MUL ๊ณฑ์…ˆ
DIV ๋‚˜๋ˆ—์…ˆ
INC 1 ์ฆ๊ฐ€
DEC 1 ๊ฐ์†Œ
๋…ผ๋ฆฌ ์—ฐ์‚ฐ AND ๋…ผ๋ฆฌ๊ณฑ
OR ๋…ผ๋ฆฌํ•ฉ
XOR ๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ
NOT ๋…ผ๋ฆฌ ๋ถ€์ •
์‹œํ”„ํŠธ ์—ฐ์‚ฐ SHL ์™ผ์ชฝ ์‹œํ”„ํŠธ
SHR ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ (๋…ผ๋ฆฌ)
SAR ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ (์‚ฐ์ˆ )
๋น„๊ต ์—ฐ์‚ฐ CMP ๋น„๊ต (๋บ„์…ˆ ํ›„ ํ”Œ๋ž˜๊ทธ ์„ค์ •)

์ƒํƒœ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ

โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”
โ”‚ S โ”‚ Z โ”‚ - โ”‚ A โ”‚ - โ”‚ P โ”‚ - โ”‚ C โ”‚
โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜
  โ”‚   โ”‚       โ”‚       โ”‚       โ”‚
  โ”‚   โ”‚       โ”‚       โ”‚       โ””โ”€ Carry (์ž๋ฆฌ์˜ฌ๋ฆผ/๋‚ด๋ฆผ)
  โ”‚   โ”‚       โ”‚       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Parity (ํŒจ๋ฆฌํ‹ฐ)
  โ”‚   โ”‚       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Auxiliary Carry
  โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Zero (๊ฒฐ๊ณผ๊ฐ€ 0)
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Sign (๋ถ€ํ˜ธ, ์Œ์ˆ˜๋ฉด 1)

์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ:
- Overflow (O): ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐœ์ƒ
- Interrupt (I): ์ธํ„ฐ๋ŸฝํŠธ ํ—ˆ์šฉ ์—ฌ๋ถ€
- Direction (D): ๋ฌธ์ž์—ด ์—ฐ์‚ฐ ๋ฐฉํ–ฅ

1.3 ์ œ์–ด ์žฅ์น˜ (Control Unit)

์ œ์–ด ์žฅ์น˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•ด๋…ํ•˜๊ณ  ๊ฐ ๊ตฌ์„ฑ์š”์†Œ์— ์ ์ ˆํ•œ ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      ์ œ์–ด ์žฅ์น˜ (CU)                          โ”‚
โ”‚                                                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚  โ”‚              ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ (IR)                     โ”‚   โ”‚
โ”‚  โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”‚   โ”‚
โ”‚  โ”‚    โ”‚  Opcode    โ”‚   Rs/Rd    โ”‚   Immediate    โ”‚     โ”‚   โ”‚
โ”‚  โ”‚    โ”‚  (์—ฐ์‚ฐ์ฝ”๋“œ) โ”‚  (๋ ˆ์ง€์Šคํ„ฐ) โ”‚   (์ฆ‰์‹œ๊ฐ’)     โ”‚     โ”‚   โ”‚
โ”‚  โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚   โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ”‚                           โ”‚                                 โ”‚
โ”‚                           โ–ผ                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚  โ”‚              ๋ช…๋ น์–ด ๋””์ฝ”๋” (Decoder)                  โ”‚   โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ”‚                           โ”‚                                 โ”‚
โ”‚           โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                โ”‚
โ”‚           โ–ผ               โ–ผ               โ–ผ                โ”‚
โ”‚     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚
โ”‚     โ”‚ ALU ์ œ์–ด โ”‚   โ”‚ ๋ ˆ์ง€์Šคํ„ฐ โ”‚   โ”‚ ๋ฉ”๋ชจ๋ฆฌ   โ”‚            โ”‚
โ”‚     โ”‚   ์‹ ํ˜ธ   โ”‚   โ”‚   ์ œ์–ด   โ”‚   โ”‚   ์ œ์–ด   โ”‚            โ”‚
โ”‚     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

์ œ์–ด ์‹ ํ˜ธ ์˜ˆ์‹œ

์ œ์–ด ์‹ ํ˜ธ ๊ธฐ๋Šฅ
RegWrite ๋ ˆ์ง€์Šคํ„ฐ ์“ฐ๊ธฐ ํ™œ์„ฑํ™”
ALUSrc ALU ์ž…๋ ฅ ์†Œ์Šค ์„ ํƒ
ALUOp ALU ์—ฐ์‚ฐ ์ข…๋ฅ˜ ์ง€์ •
MemRead ๋ฉ”๋ชจ๋ฆฌ ์ฝ๊ธฐ ํ™œ์„ฑํ™”
MemWrite ๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ ํ™œ์„ฑํ™”
MemtoReg ๋ฉ”๋ชจ๋ฆฌโ†’๋ ˆ์ง€์Šคํ„ฐ ๊ฒฝ๋กœ ์„ ํƒ
Branch ๋ถ„๊ธฐ ์—ฌ๋ถ€
Jump ์ ํ”„ ์—ฌ๋ถ€

2. ๋ ˆ์ง€์Šคํ„ฐ ์ข…๋ฅ˜

2.1 ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ (General Purpose Registers)

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ (x86-64)                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   64๋น„ํŠธ    โ”‚  32๋น„ํŠธ โ”‚  16๋น„ํŠธ โ”‚           ์šฉ๋„               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚    RAX      โ”‚   EAX   โ”‚   AX    โ”‚ ๋ˆ„์‚ฐ๊ธฐ (์‚ฐ์ˆ  ์—ฐ์‚ฐ ๊ฒฐ๊ณผ)       โ”‚
โ”‚    RBX      โ”‚   EBX   โ”‚   BX    โ”‚ ๋ฒ ์ด์Šค (๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ธฐ์ค€)     โ”‚
โ”‚    RCX      โ”‚   ECX   โ”‚   CX    โ”‚ ์นด์šดํ„ฐ (๋ฐ˜๋ณต๋ฌธ ์นด์šดํ„ฐ)        โ”‚
โ”‚    RDX      โ”‚   EDX   โ”‚   DX    โ”‚ ๋ฐ์ดํ„ฐ (์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ)          โ”‚
โ”‚    RSI      โ”‚   ESI   โ”‚   SI    โ”‚ ์†Œ์Šค ์ธ๋ฑ์Šค                   โ”‚
โ”‚    RDI      โ”‚   EDI   โ”‚   DI    โ”‚ ๋ชฉ์ ์ง€ ์ธ๋ฑ์Šค                 โ”‚
โ”‚    RBP      โ”‚   EBP   โ”‚   BP    โ”‚ ๋ฒ ์ด์Šค ํฌ์ธํ„ฐ (์Šคํƒ ํ”„๋ ˆ์ž„)   โ”‚
โ”‚    RSP      โ”‚   ESP   โ”‚   SP    โ”‚ ์Šคํƒ ํฌ์ธํ„ฐ                   โ”‚
โ”‚   R8-R15    โ”‚ R8D-R15Dโ”‚ R8W-R15Wโ”‚ ์ถ”๊ฐ€ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ (x64)      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๋ ˆ์ง€์Šคํ„ฐ ํฌ๊ธฐ ๊ด€๊ณ„ (x86)

64๋น„ํŠธ: โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค RAX
32๋น„ํŠธ:                                 โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค EAX
16๋น„ํŠธ:                                                 โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค AX
 8๋น„ํŠธ:                                                 โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค
                                                         AH    AL

2.2 ํŠน์ˆ˜ ๋ชฉ์  ๋ ˆ์ง€์Šคํ„ฐ

ํ”„๋กœ์„ธ์„œ ๋™์ž‘์— ํ•„์ˆ˜์ ์ธ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์ž…๋‹ˆ๋‹ค.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     ํŠน์ˆ˜ ๋ชฉ์  ๋ ˆ์ง€์Šคํ„ฐ                           โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   ๋ ˆ์ง€์Šคํ„ฐ    โ”‚                    ์—ญํ•                           โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ PC (Program  โ”‚ ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ                โ”‚
โ”‚  Counter)    โ”‚ ๋ช…๋ น์–ด ์ธ์ถœ ํ›„ ์ž๋™ ์ฆ๊ฐ€                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ IR (Instruc- โ”‚ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ช…๋ น์–ด๋ฅผ ์ €์žฅ                      โ”‚
โ”‚ tion Reg.)   โ”‚ ์ œ์–ด ์žฅ์น˜๊ฐ€ ํ•ด๋…ํ•˜๋Š” ๋Œ€์ƒ                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ MAR (Memory  โ”‚ ์ ‘๊ทผํ•  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅ                         โ”‚
โ”‚ Address Reg.)โ”‚ ์ฃผ์†Œ ๋ฒ„์Šค์— ์—ฐ๊ฒฐ                                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ MBR/MDR      โ”‚ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ๊ฑฐ๋‚˜ ์“ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ                โ”‚
โ”‚ (Memory Data)โ”‚ ๋ฐ์ดํ„ฐ ๋ฒ„์Šค์— ์—ฐ๊ฒฐ                                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ SP (Stack    โ”‚ ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ ์ฃผ์†Œ๋ฅผ ์ €์žฅ                         โ”‚
โ”‚  Pointer)    โ”‚ PUSH/POP ์—ฐ์‚ฐ ์‹œ ์ž๋™ ์กฐ์ •                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ PSW/FLAGS    โ”‚ ํ”„๋กœ์„ธ์„œ ์ƒํƒœ ์ •๋ณด ์ €์žฅ                           โ”‚
โ”‚ (Status Reg.)โ”‚ Zero, Carry, Overflow ๋“ฑ์˜ ํ”Œ๋ž˜๊ทธ                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

PC (ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ) ๋™์ž‘

๋ฉ”๋ชจ๋ฆฌ:                              PC ๋™์ž‘:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ 0x1000: ADD โ”‚  โ—„โ”€โ”€โ”€ PC = 0x1000 (ํ˜„์žฌ)
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 0x1004: SUB โ”‚  โ—„โ”€โ”€โ”€ PC = 0x1004 (๋‹ค์Œ)
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 0x1008: MUL โ”‚  โ—„โ”€โ”€โ”€ PC = 0x1008
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 0x100C: JMP โ”‚  โ—„โ”€โ”€โ”€ ๋ถ„๊ธฐ ์‹œ PC ๊ฐ’ ๋ณ€๊ฒฝ
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚    ...      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

์ˆœ์ฐจ ์‹คํ–‰: PC = PC + ๋ช…๋ น์–ด ํฌ๊ธฐ
๋ถ„๊ธฐ ์‹คํ–‰: PC = ๋ถ„๊ธฐ ๋Œ€์ƒ ์ฃผ์†Œ

2.3 ARM ๋ ˆ์ง€์Šคํ„ฐ ๊ตฌ์กฐ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      ARM ๋ ˆ์ง€์Šคํ„ฐ (AArch64)                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   ๋ ˆ์ง€์Šคํ„ฐ    โ”‚                    ์—ญํ•                           โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   X0 - X7    โ”‚ ์ธ์ž ์ „๋‹ฌ ๋ฐ ๋ฐ˜ํ™˜๊ฐ’ ๋ ˆ์ง€์Šคํ„ฐ                      โ”‚
โ”‚   X8         โ”‚ ๊ฐ„์ ‘ ๊ฒฐ๊ณผ ๋ ˆ์ง€์Šคํ„ฐ                                โ”‚
โ”‚   X9 - X15   โ”‚ ์ž„์‹œ ๋ ˆ์ง€์Šคํ„ฐ (caller-saved)                      โ”‚
โ”‚  X16 - X17   โ”‚ ์ธํŠธ๋ผ-ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ ๋ ˆ์ง€์Šคํ„ฐ                     โ”‚
โ”‚   X18        โ”‚ ํ”Œ๋žซํผ ๋ ˆ์ง€์Šคํ„ฐ                                   โ”‚
โ”‚  X19 - X28   โ”‚ Callee-saved ๋ ˆ์ง€์Šคํ„ฐ                             โ”‚
โ”‚   X29 (FP)   โ”‚ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ                                     โ”‚
โ”‚   X30 (LR)   โ”‚ ๋งํฌ ๋ ˆ์ง€์Šคํ„ฐ (๋ฐ˜ํ™˜ ์ฃผ์†Œ)                         โ”‚
โ”‚   SP         โ”‚ ์Šคํƒ ํฌ์ธํ„ฐ                                       โ”‚
โ”‚   PC         โ”‚ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ                                   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3. ๋ฐ์ดํ„ฐํŒจ์Šค

3.1 ๋ฐ์ดํ„ฐํŒจ์Šค ๊ฐœ๋…

๋ฐ์ดํ„ฐํŒจ์Šค๋Š” CPU ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋™ํ•˜๋Š” ๊ฒฝ๋กœ์™€ ์ด ๊ฒฝ๋กœ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ ์œ ๋‹›๋“ค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐํŒจ์Šค                              โ”‚
โ”‚                                                                     โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                               โ”‚
โ”‚    โ”‚  PC  โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚   ๋ช…๋ น์–ด     โ”‚                               โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚   ๋ฉ”๋ชจ๋ฆฌ     โ”‚                               โ”‚
โ”‚        โ”‚            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                               โ”‚
โ”‚        โ”‚                   โ”‚                                        โ”‚
โ”‚        โ–ผ                   โ–ผ                                        โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”‚
โ”‚    โ”‚ +4   โ”‚         โ”‚  ๋ช…๋ น์–ด IR   โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚  ์ œ์–ด ์žฅ์น˜   โ”‚      โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ”‚
โ”‚                            โ”‚                        โ”‚               โ”‚
โ”‚                            โ–ผ                        โ–ผ               โ”‚
โ”‚                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         ์ œ์–ด ์‹ ํ˜ธ๋“ค            โ”‚
โ”‚         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  ๋ ˆ์ง€์Šคํ„ฐ     โ”‚                                โ”‚
โ”‚         โ”‚         โ”‚    ํŒŒ์ผ       โ”‚                                โ”‚
โ”‚         โ”‚         โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜                                โ”‚
โ”‚         โ”‚             โ”‚       โ”‚                                     โ”‚
โ”‚         โ”‚             โ–ผ       โ–ผ                                     โ”‚
โ”‚         โ”‚         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                โ”‚
โ”‚         โ”‚         โ”‚     ALU       โ”‚                                โ”‚
โ”‚         โ”‚         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                โ”‚
โ”‚         โ”‚                 โ”‚                                         โ”‚
โ”‚         โ”‚                 โ–ผ                                         โ”‚
โ”‚         โ”‚         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                โ”‚
โ”‚         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚  ๋ฐ์ดํ„ฐ       โ”‚                                โ”‚
โ”‚                   โ”‚  ๋ฉ”๋ชจ๋ฆฌ       โ”‚                                โ”‚
โ”‚                   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3.2 MIPS ๋ฐ์ดํ„ฐํŒจ์Šค (์ƒ์„ธ)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                              MIPS ๋ฐ์ดํ„ฐํŒจ์Šค                                 โ”‚
โ”‚                                                                             โ”‚
โ”‚                                                                             โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚    โ”‚                         ๋ช…๋ น์–ด ์ธ์ถœ (IF)                            โ”‚  โ”‚
โ”‚    โ”‚                                                                    โ”‚  โ”‚
โ”‚    โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                       โ”‚  โ”‚
โ”‚    โ”‚   โ”‚  PC  โ”‚โ”€โ”€โ”€โ–บโ”‚ +4   โ”‚    โ”‚   ๋ช…๋ น์–ด       โ”‚                       โ”‚  โ”‚
โ”‚    โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”˜    โ”‚   ๋ฉ”๋ชจ๋ฆฌ       โ”‚                       โ”‚  โ”‚
โ”‚    โ”‚       โ”‚           โ”‚       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                       โ”‚  โ”‚
โ”‚    โ”‚       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                               โ”‚  โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                    โ”‚                                        โ”‚
โ”‚                                    โ–ผ [31:0] ๋ช…๋ น์–ด                          โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚    โ”‚                      ๋ช…๋ น์–ด ํ•ด๋… (ID)                               โ”‚  โ”‚
โ”‚    โ”‚                                                                    โ”‚  โ”‚
โ”‚    โ”‚    [25:21]  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                       โ”‚  โ”‚
โ”‚    โ”‚    โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚   Read       โ”‚โ”€โ”€โ”€โ–บ Read Data 1                       โ”‚  โ”‚
โ”‚    โ”‚    [20:16]  โ”‚   Register   โ”‚                                       โ”‚  โ”‚
โ”‚    โ”‚    โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚   File       โ”‚โ”€โ”€โ”€โ–บ Read Data 2                       โ”‚  โ”‚
โ”‚    โ”‚    [15:11]  โ”‚              โ”‚                                       โ”‚  โ”‚
โ”‚    โ”‚    โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚   Write Reg  โ”‚โ—„โ”€โ”€ Write Data                         โ”‚  โ”‚
โ”‚    โ”‚             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                       โ”‚  โ”‚
โ”‚    โ”‚                                                                    โ”‚  โ”‚
โ”‚    โ”‚    [15:0]   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                       โ”‚  โ”‚
โ”‚    โ”‚    โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚  Sign        โ”‚โ”€โ”€โ”€โ–บ 32๋น„ํŠธ ์ฆ‰์‹œ๊ฐ’                      โ”‚  โ”‚
โ”‚    โ”‚             โ”‚  Extend      โ”‚                                       โ”‚  โ”‚
โ”‚    โ”‚             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                       โ”‚  โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                    โ”‚                                        โ”‚
โ”‚                                    โ–ผ                                        โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚    โ”‚                         ์‹คํ–‰ (EX)                                   โ”‚  โ”‚
โ”‚    โ”‚                                                                    โ”‚  โ”‚
โ”‚    โ”‚    Read Data 1 โ”€โ”€โ”€โ–บโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                โ”‚  โ”‚
โ”‚    โ”‚                    โ”‚              โ”‚                                โ”‚  โ”‚
โ”‚    โ”‚    MUX ์ถœ๋ ฅ    โ”€โ”€โ”€โ–บโ”‚     ALU      โ”‚โ”€โ”€โ”€โ–บ ALU ๊ฒฐ๊ณผ                   โ”‚  โ”‚
โ”‚    โ”‚                    โ”‚              โ”‚โ”€โ”€โ”€โ–บ Zero ํ”Œ๋ž˜๊ทธ                โ”‚  โ”‚
โ”‚    โ”‚                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                โ”‚  โ”‚
โ”‚    โ”‚                                                                    โ”‚  โ”‚
โ”‚    โ”‚    Read Data 2 โ”€โ”€โ”€โ–บโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”                                        โ”‚  โ”‚
โ”‚    โ”‚    ์ฆ‰์‹œ๊ฐ’      โ”€โ”€โ”€โ–บโ”‚ MUX  โ”‚โ”€โ”€โ”€โ–บ ALU ์ž…๋ ฅ B                         โ”‚  โ”‚
โ”‚    โ”‚                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                        โ”‚  โ”‚
โ”‚    โ”‚                     โ–ฒ ALUSrc                                       โ”‚  โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                    โ”‚                                        โ”‚
โ”‚                                    โ–ผ                                        โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚    โ”‚                      ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ (MEM)                              โ”‚  โ”‚
โ”‚    โ”‚                                                                    โ”‚  โ”‚
โ”‚    โ”‚    ALU ๊ฒฐ๊ณผ โ”€โ”€โ”€โ”€โ”€โ–บโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                               โ”‚  โ”‚
โ”‚    โ”‚    (์ฃผ์†Œ)         โ”‚   ๋ฐ์ดํ„ฐ       โ”‚โ”€โ”€โ”€โ–บ Read Data                 โ”‚  โ”‚
โ”‚    โ”‚                   โ”‚   ๋ฉ”๋ชจ๋ฆฌ       โ”‚                               โ”‚  โ”‚
โ”‚    โ”‚    Write Data โ”€โ”€โ”€โ–บโ”‚               โ”‚                               โ”‚  โ”‚
โ”‚    โ”‚                   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                               โ”‚  โ”‚
โ”‚    โ”‚                    โ–ฒ MemRead/MemWrite                              โ”‚  โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                    โ”‚                                        โ”‚
โ”‚                                    โ–ผ                                        โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚    โ”‚                       ์“ฐ๊ธฐ (WB)                                     โ”‚  โ”‚
โ”‚    โ”‚                                                                    โ”‚  โ”‚
โ”‚    โ”‚    ALU ๊ฒฐ๊ณผ    โ”€โ”€โ”€โ–บโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”                                        โ”‚  โ”‚
โ”‚    โ”‚    Memory Data โ”€โ”€โ”€โ–บโ”‚ MUX  โ”‚โ”€โ”€โ”€โ–บ ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ Write Data           โ”‚  โ”‚
โ”‚    โ”‚                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                        โ”‚  โ”‚
โ”‚    โ”‚                     โ–ฒ MemtoReg                                     โ”‚  โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3.3 ๋ฐ์ดํ„ฐํŒจ์Šค ๊ตฌ์„ฑ ์š”์†Œ

๊ตฌ์„ฑ ์š”์†Œ ๊ธฐ๋Šฅ ์ œ์–ด ์‹ ํ˜ธ
PC ๋‹ค์Œ ๋ช…๋ น์–ด ์ฃผ์†Œ ์ €์žฅ -
๋ช…๋ น์–ด ๋ฉ”๋ชจ๋ฆฌ ๋ช…๋ น์–ด ์ €์žฅ ๋ฐ ์ œ๊ณต -
๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ ๋ ˆ์ง€์Šคํ„ฐ ์ฝ๊ธฐ/์“ฐ๊ธฐ RegWrite
ALU ์‚ฐ์ˆ /๋…ผ๋ฆฌ ์—ฐ์‚ฐ ALUOp
๋ฐ์ดํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ/๋กœ๋“œ MemRead, MemWrite
MUX ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ ์„ ํƒ ALUSrc, MemtoReg
Sign Extend 16๋น„ํŠธ โ†’ 32๋น„ํŠธ ํ™•์žฅ -

4. ๋ช…๋ น์–ด ์‹คํ–‰ ์‚ฌ์ดํด ์ƒ์„ธ

4.1 ๊ธฐ๋ณธ ์‹คํ–‰ ์‚ฌ์ดํด

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๋ช…๋ น์–ด ์‹คํ–‰ ์‚ฌ์ดํด                            โ”‚
โ”‚                                                                 โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚   โ”‚ Fetch  โ”‚โ”€โ”€โ–บโ”‚ Decode โ”‚โ”€โ”€โ–บโ”‚Execute โ”‚โ”€โ”€โ–บโ”‚ Memory โ”‚โ”€โ”€โ–บโ”‚Write โ”‚ โ”‚
โ”‚   โ”‚ (์ธ์ถœ) โ”‚   โ”‚ (ํ•ด๋…) โ”‚   โ”‚ (์‹คํ–‰) โ”‚   โ”‚ (์ ‘๊ทผ) โ”‚   โ”‚Back  โ”‚ โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚       โ”‚                                                   โ”‚     โ”‚
โ”‚       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚
โ”‚                           ๋ฐ˜๋ณต                                   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

4.2 ๊ฐ ๋‹จ๊ณ„ ์ƒ์„ธ

1๋‹จ๊ณ„: ๋ช…๋ น์–ด ์ธ์ถœ (Instruction Fetch)

๋™์ž‘:
1. PC์˜ ๊ฐ’์„ MAR๋กœ ๋ณต์‚ฌ
2. ๋ฉ”๋ชจ๋ฆฌ[MAR]์˜ ๋‚ด์šฉ์„ MBR๋กœ ์ฝ์Œ
3. MBR์˜ ๋‚ด์šฉ์„ IR๋กœ ๋ณต์‚ฌ
4. PC = PC + ๋ช…๋ น์–ด ํฌ๊ธฐ

๋งˆ์ดํฌ๋กœ ์—ฐ์‚ฐ:
MAR โ† PC
MBR โ† Memory[MAR]
IR โ† MBR
PC โ† PC + 4

ํƒ€์ด๋ฐ ๋‹ค์ด์–ด๊ทธ๋žจ:
โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€
 T0  โ”‚ T1  โ”‚ T2  โ”‚ T3  โ”‚
โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€
MARโ†PC    MBRโ†Mem  IRโ†MBR  PCโ†PC+4

2๋‹จ๊ณ„: ๋ช…๋ น์–ด ํ•ด๋… (Instruction Decode)

๋™์ž‘:
1. IR์˜ opcode ํ•„๋“œ ๋ถ„์„
2. ํ”ผ์—ฐ์‚ฐ์ž ์ฃผ์†Œ ๊ณ„์‚ฐ
3. ํ•„์š”ํ•œ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’ ์ฝ๊ธฐ

๋งˆ์ดํฌ๋กœ ์—ฐ์‚ฐ:
A โ† Regs[IR[25:21]]      // rs ๋ ˆ์ง€์Šคํ„ฐ ์ฝ๊ธฐ
B โ† Regs[IR[20:16]]      // rt ๋ ˆ์ง€์Šคํ„ฐ ์ฝ๊ธฐ
ALUOut โ† PC + (sign-extend(IR[15:0]) << 2)  // ๋ถ„๊ธฐ ์ฃผ์†Œ ๊ณ„์‚ฐ

๋ช…๋ น์–ด ํ˜•์‹ ๋ถ„์„ (MIPS):
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ opcode โ”‚  rs   โ”‚  rt   โ”‚  rd   โ”‚ shamt โ”‚ funct  โ”‚  R-type
โ”‚  6๋น„ํŠธ โ”‚ 5๋น„ํŠธ โ”‚ 5๋น„ํŠธ โ”‚ 5๋น„ํŠธ โ”‚ 5๋น„ํŠธ โ”‚ 6๋น„ํŠธ  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ opcode โ”‚  rs   โ”‚  rt   โ”‚       immediate         โ”‚  I-type
โ”‚  6๋น„ํŠธ โ”‚ 5๋น„ํŠธ โ”‚ 5๋น„ํŠธ โ”‚        16๋น„ํŠธ           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3๋‹จ๊ณ„: ๋ช…๋ น์–ด ์‹คํ–‰ (Execute)

๋ช…๋ น์–ด ์ข…๋ฅ˜๋ณ„ ์‹คํ–‰:

1. ์‚ฐ์ˆ /๋…ผ๋ฆฌ ์—ฐ์‚ฐ (R-type):
   ALUOut โ† A op B

   ์˜ˆ: ADD $t0, $t1, $t2
   ALUOut โ† Regs[$t1] + Regs[$t2]

2. ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ:
   ALUOut โ† A + sign-extend(IR[15:0])

   ์˜ˆ: LW $t0, 100($t1)
   ALUOut โ† Regs[$t1] + 100

3. ๋ถ„๊ธฐ:
   if (A == B) PC โ† ALUOut

   ์˜ˆ: BEQ $t0, $t1, label
   if (Regs[$t0] == Regs[$t1])
       PC โ† PC + offset ร— 4

4๋‹จ๊ณ„: ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ (Memory Access)

Load ๋ช…๋ น์–ด:
MDR โ† Memory[ALUOut]

์˜ˆ: LW $t0, 100($t1)
MDR โ† Memory[Regs[$t1] + 100]

Store ๋ช…๋ น์–ด:
Memory[ALUOut] โ† B

์˜ˆ: SW $t0, 100($t1)
Memory[Regs[$t1] + 100] โ† Regs[$t0]

5๋‹จ๊ณ„: ์“ฐ๊ธฐ (Write Back)

R-type ๋ช…๋ น์–ด:
Regs[IR[15:11]] โ† ALUOut

์˜ˆ: ADD $t0, $t1, $t2
Regs[$t0] โ† ALUOut

Load ๋ช…๋ น์–ด:
Regs[IR[20:16]] โ† MDR

์˜ˆ: LW $t0, 100($t1)
Regs[$t0] โ† MDR

4.3 ๋ช…๋ น์–ด๋ณ„ ์‹คํ–‰ ์˜ˆ์‹œ

์˜ˆ์‹œ: ADD $t0, $t1, $t2 (R-type)

๋‹จ๊ณ„ 1 (IF):
  MAR โ† PC
  IR โ† Memory[MAR]
  PC โ† PC + 4

๋‹จ๊ณ„ 2 (ID):
  A โ† Regs[$t1]
  B โ† Regs[$t2]

๋‹จ๊ณ„ 3 (EX):
  ALUOut โ† A + B

๋‹จ๊ณ„ 4 (MEM):
  (์—†์Œ - ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํ•„์š” ์—†์Œ)

๋‹จ๊ณ„ 5 (WB):
  Regs[$t0] โ† ALUOut


์˜ˆ์‹œ: LW $t0, 100($t1) (I-type, Load)

๋‹จ๊ณ„ 1 (IF):
  MAR โ† PC
  IR โ† Memory[MAR]
  PC โ† PC + 4

๋‹จ๊ณ„ 2 (ID):
  A โ† Regs[$t1]

๋‹จ๊ณ„ 3 (EX):
  ALUOut โ† A + 100

๋‹จ๊ณ„ 4 (MEM):
  MDR โ† Memory[ALUOut]

๋‹จ๊ณ„ 5 (WB):
  Regs[$t0] โ† MDR

5. ๋‹จ์ผ ์‚ฌ์ดํด vs ๋‹ค์ค‘ ์‚ฌ์ดํด

5.1 ๋‹จ์ผ ์‚ฌ์ดํด ๊ตฌํ˜„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๋‹จ์ผ ์‚ฌ์ดํด (Single-Cycle)                    โ”‚
โ”‚                                                                 โ”‚
โ”‚  ํŠน์ง•: ๋ชจ๋“  ๋ช…๋ น์–ด๊ฐ€ ํ•œ ํด๋Ÿญ ์‚ฌ์ดํด์— ์™„๋ฃŒ                       โ”‚
โ”‚                                                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚                    1 ํด๋Ÿญ ์‚ฌ์ดํด                          โ”‚  โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”                         โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ IF  โ”‚ ID  โ”‚ EX  โ”‚ MEM โ”‚ WB  โ”‚                         โ”‚  โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”˜                         โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                                 โ”‚
โ”‚  ํด๋Ÿญ ์ฃผ๊ธฐ = ๊ฐ€์žฅ ๊ธด ๋ช…๋ น์–ด(Load)์˜ ์‹คํ–‰ ์‹œ๊ฐ„                   โ”‚
โ”‚                                                                 โ”‚
โ”‚  ์˜ˆ์‹œ (๊ฐ ๋‹จ๊ณ„ ์†Œ์š” ์‹œ๊ฐ„):                                      โ”‚
โ”‚  - IF: 200ps                                                   โ”‚
โ”‚  - ID: 100ps                                                   โ”‚
โ”‚  - EX: 200ps                                                   โ”‚
โ”‚  - MEM: 200ps                                                  โ”‚
โ”‚  - WB: 100ps                                                   โ”‚
โ”‚                                                                 โ”‚
โ”‚  ํด๋Ÿญ ์ฃผ๊ธฐ = 200 + 100 + 200 + 200 + 100 = 800ps               โ”‚
โ”‚                                                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๋‹จ์ผ ์‚ฌ์ดํด ์žฅ๋‹จ์ 

์žฅ์  ๋‹จ์ 
๊ตฌํ˜„์ด ๊ฐ„๋‹จ ํด๋Ÿญ ์ฃผ๊ธฐ๊ฐ€ ๊น€ (๊ฐ€์žฅ ๋А๋ฆฐ ๋ช…๋ น์–ด ๊ธฐ์ค€)
์ œ์–ด ๋…ผ๋ฆฌ๊ฐ€ ๋‹จ์ˆœ ๋ชจ๋“  ๋ช…๋ น์–ด๊ฐ€ ๋™์ผํ•œ ์‹œ๊ฐ„ ์†Œ์š”
CPI = 1 (๋ช…๋ น์–ด๋‹น 1์‚ฌ์ดํด) ํ•˜๋“œ์›จ์–ด ์ž์› ํ™œ์šฉ๋„ ๋‚ฎ์Œ

5.2 ๋‹ค์ค‘ ์‚ฌ์ดํด ๊ตฌํ˜„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๋‹ค์ค‘ ์‚ฌ์ดํด (Multi-Cycle)                     โ”‚
โ”‚                                                                 โ”‚
โ”‚  ํŠน์ง•: ๋ช…๋ น์–ด๋ฅผ ์—ฌ๋Ÿฌ ํด๋Ÿญ ์‚ฌ์ดํด์— ๊ฑธ์ณ ์‹คํ–‰                     โ”‚
โ”‚                                                                 โ”‚
โ”‚  ๊ฐ ๋‹จ๊ณ„๊ฐ€ ๋ณ„๋„์˜ ์‚ฌ์ดํด:                                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”                       โ”‚
โ”‚  โ”‚ IF  โ”‚ โ”‚ ID  โ”‚ โ”‚ EX  โ”‚ โ”‚ MEM โ”‚ โ”‚ WB  โ”‚                       โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”˜                       โ”‚
โ”‚  ์‚ฌ์ดํด1 ์‚ฌ์ดํด2 ์‚ฌ์ดํด3 ์‚ฌ์ดํด4 ์‚ฌ์ดํด5                         โ”‚
โ”‚                                                                 โ”‚
โ”‚  ํด๋Ÿญ ์ฃผ๊ธฐ = ๊ฐ€์žฅ ๊ธด ๋‹จ๊ณ„์˜ ์‹œ๊ฐ„                                โ”‚
โ”‚  = max(200, 100, 200, 200, 100) = 200ps                        โ”‚
โ”‚                                                                 โ”‚
โ”‚  ๋ช…๋ น์–ด๋ณ„ ์‚ฌ์ดํด ์ˆ˜:                                            โ”‚
โ”‚  - Load:  5์‚ฌ์ดํด (IF, ID, EX, MEM, WB)                        โ”‚
โ”‚  - Store: 4์‚ฌ์ดํด (IF, ID, EX, MEM)                            โ”‚
โ”‚  - R-type: 4์‚ฌ์ดํด (IF, ID, EX, WB)                            โ”‚
โ”‚  - Branch: 3์‚ฌ์ดํด (IF, ID, EX)                                โ”‚
โ”‚                                                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๋‹ค์ค‘ ์‚ฌ์ดํด ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ

                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚                                 โ”‚
                    โ–ผ                                 โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                           โ”‚
              โ”‚  IF      โ”‚                           โ”‚
              โ”‚ (์ธ์ถœ)   โ”‚                           โ”‚
              โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜                           โ”‚
                   โ”‚                                 โ”‚
                   โ–ผ                                 โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                           โ”‚
              โ”‚  ID      โ”‚                           โ”‚
              โ”‚ (ํ•ด๋…)   โ”‚                           โ”‚
              โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜                           โ”‚
                   โ”‚                                 โ”‚
         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                       โ”‚
         โ”‚         โ”‚         โ”‚                       โ”‚
         โ–ผ         โ–ผ         โ–ผ                       โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                โ”‚
    โ”‚ MEM์ฃผ์†Œโ”‚ โ”‚ R-type โ”‚ โ”‚ Branch โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
    โ”‚  ๊ณ„์‚ฐ  โ”‚ โ”‚  ์‹คํ–‰  โ”‚ โ”‚  ์™„๋ฃŒ  โ”‚
    โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚         โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”    โ”‚
    โ”‚         โ”‚    โ”‚
    โ–ผ         โ–ผ    โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚
โ”‚  Load โ”‚ โ”‚ Store โ”‚โ”‚
โ”‚  MEM  โ”‚ โ”‚  MEM  โ”‚โ”‚
โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚
    โ”‚              โ”‚
    โ–ผ              โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Load  โ”‚    โ”‚  R-type   โ”‚
โ”‚  WB   โ”‚    โ”‚    WB     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

5.3 ์„ฑ๋Šฅ ๋น„๊ต

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        ์„ฑ๋Šฅ ๋น„๊ต ์˜ˆ์‹œ                            โ”‚
โ”‚                                                                 โ”‚
โ”‚  ๊ฐ€์ •:                                                          โ”‚
โ”‚  - ๋ช…๋ น์–ด ๋ถ„ํฌ: Load 25%, Store 10%, R-type 45%, Branch 20%    โ”‚
โ”‚  - ๋‹จ์ผ ์‚ฌ์ดํด ํด๋Ÿญ: 800ps                                      โ”‚
โ”‚  - ๋‹ค์ค‘ ์‚ฌ์ดํด ํด๋Ÿญ: 200ps                                      โ”‚
โ”‚                                                                 โ”‚
โ”‚  ๋‹จ์ผ ์‚ฌ์ดํด:                                                   โ”‚
โ”‚  ํ‰๊ท  ์‹œ๊ฐ„ = 800ps ร— 1 = 800ps/๋ช…๋ น์–ด                          โ”‚
โ”‚                                                                 โ”‚
โ”‚  ๋‹ค์ค‘ ์‚ฌ์ดํด:                                                   โ”‚
โ”‚  ํ‰๊ท  CPI = 0.25ร—5 + 0.10ร—4 + 0.45ร—4 + 0.20ร—3                  โ”‚
โ”‚           = 1.25 + 0.40 + 1.80 + 0.60 = 4.05                   โ”‚
โ”‚  ํ‰๊ท  ์‹œ๊ฐ„ = 200ps ร— 4.05 = 810ps/๋ช…๋ น์–ด                       โ”‚
โ”‚                                                                 โ”‚
โ”‚  ๊ฒฐ๋ก : ์ด ์˜ˆ์‹œ์—์„œ๋Š” ๊ฑฐ์˜ ๋น„์Šทํ•œ ์„ฑ๋Šฅ                           โ”‚
โ”‚  (ํ•˜์ง€๋งŒ ๋‹ค์ค‘ ์‚ฌ์ดํด์€ ํ•˜๋“œ์›จ์–ด ์ž์›์„ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ)       โ”‚
โ”‚                                                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

5.4 ๋‘ ๋ฐฉ์‹์˜ ๋น„๊ต ์ •๋ฆฌ

ํŠน์„ฑ ๋‹จ์ผ ์‚ฌ์ดํด ๋‹ค์ค‘ ์‚ฌ์ดํด
CPI 1 ๊ฐ€๋ณ€ (3~5)
ํด๋Ÿญ ์ฃผ๊ธฐ ๊ธธ๋‹ค (๊ฐ€์žฅ ๊ธด ๋ช…๋ น์–ด) ์งง๋‹ค (๊ฐ€์žฅ ๊ธด ๋‹จ๊ณ„)
์ œ์–ด ๋…ผ๋ฆฌ ๋‹จ์ˆœ ๋ณต์žก (FSM ํ•„์š”)
ํ•˜๋“œ์›จ์–ด ์‚ฌ์šฉ ๋น„ํšจ์œจ์  ํšจ์œจ์  (๊ณต์œ )
๋ฉ”๋ชจ๋ฆฌ ๋ช…๋ น์–ด/๋ฐ์ดํ„ฐ ๋ถ„๋ฆฌ ํ†ตํ•ฉ ๊ฐ€๋Šฅ
๊ตฌํ˜„ ๋ณต์žก๋„ ๋‚ฎ์Œ ์ค‘๊ฐ„

6. ์—ฐ์Šต ๋ฌธ์ œ

๊ธฐ์ดˆ ๋ฌธ์ œ

  1. CPU์˜ 3๋Œ€ ๊ตฌ์„ฑ์š”์†Œ๋Š” ๋ฌด์—‡์ธ๊ฐ€?

  2. ๋‹ค์Œ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์—ญํ• ์„ ์„ค๋ช…ํ•˜์‹œ์˜ค:

  3. (a) PC (Program Counter)
  4. (b) IR (Instruction Register)
  5. (c) MAR (Memory Address Register)

  6. ALU์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜ 3๊ฐ€์ง€๋ฅผ ์“ฐ์‹œ์˜ค.

๋ฐ์ดํ„ฐํŒจ์Šค ๋ฌธ์ œ

  1. ๋‹ค์Œ MIPS ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ ํ™œ์„ฑํ™”๋˜๋Š” ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ๋ชจ๋‘ ๊ณ ๋ฅด์‹œ์˜ค:

ADD $t0, $t1, $t2

  • (a) RegWrite
  • (b) ALUSrc
  • (c) MemRead
  • (d) MemWrite
  • (e) MemtoReg

  • LW $t0, 100($t1) ๋ช…๋ น์–ด์˜ 5๋‹จ๊ณ„ ์‹คํ–‰ ๊ณผ์ •์„ ์ˆœ์„œ๋Œ€๋กœ ์„ค๋ช…ํ•˜์‹œ์˜ค.

์„ฑ๋Šฅ ๋ถ„์„ ๋ฌธ์ œ

  1. ๋‹จ์ผ ์‚ฌ์ดํด CPU์—์„œ ๊ฐ ๋‹จ๊ณ„์˜ ์†Œ์š” ์‹œ๊ฐ„์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ:
  2. IF: 250ps
  3. ID: 150ps
  4. EX: 200ps
  5. MEM: 300ps
  6. WB: 100ps

(a) ํด๋Ÿญ ์ฃผ๊ธฐ๋Š” ์–ผ๋งˆ์ธ๊ฐ€? (b) 1์ดˆ์— ๋ช‡ ๊ฐœ์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

  1. ๋‹ค์ค‘ ์‚ฌ์ดํด CPU์—์„œ ๋ช…๋ น์–ด ๋ถ„ํฌ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ํ‰๊ท  CPI๋ฅผ ๊ตฌํ•˜์‹œ์˜ค:
  2. Load: 30% (5 ์‚ฌ์ดํด)
  3. Store: 15% (4 ์‚ฌ์ดํด)
  4. R-type: 40% (4 ์‚ฌ์ดํด)
  5. Branch: 15% (3 ์‚ฌ์ดํด)

์‹ฌํ™” ๋ฌธ์ œ

  1. ํฐ ๋…ธ์ด๋งŒ ๋ณ‘๋ชฉ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ CPU ์„ค๊ณ„ ๊ธฐ๋ฒ• 3๊ฐ€์ง€๋ฅผ ์„ค๋ช…ํ•˜์‹œ์˜ค.

  2. ๋‹ค์Œ ์ฝ”๋“œ ์‹œํ€€์Šค๊ฐ€ ๋‹จ์ผ ์‚ฌ์ดํด CPU์™€ ๋‹ค์ค‘ ์‚ฌ์ดํด CPU์—์„œ ์‹คํ–‰๋  ๋•Œ ๊ฐ๊ฐ์˜ ์ด ์‹คํ–‰ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜์‹œ์˜ค (์œ„ 6๋ฒˆ ๋ฌธ์ œ์˜ ์‹œ๊ฐ„ ๊ฐ€์ • ์‚ฌ์šฉ):

LW   $t0, 0($s0)
ADD  $t1, $t0, $t2
SW   $t1, 4($s0)
์ •๋‹ต 1. ALU (์‚ฐ์ˆ ๋…ผ๋ฆฌ์žฅ์น˜), Control Unit (์ œ์–ด์žฅ์น˜), Register (๋ ˆ์ง€์Šคํ„ฐ) 2. - (a) PC: ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ - (b) IR: ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ช…๋ น์–ด๋ฅผ ์ €์žฅ - (c) MAR: ์ ‘๊ทผํ•  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅ 3. ์‚ฐ์ˆ  ์—ฐ์‚ฐ (๋ง์…ˆ, ๋บ„์…ˆ ๋“ฑ), ๋…ผ๋ฆฌ ์—ฐ์‚ฐ (AND, OR ๋“ฑ), ์‹œํ”„ํŠธ ์—ฐ์‚ฐ (๋˜๋Š” ๋น„๊ต ์—ฐ์‚ฐ) 4. (a) RegWrite - ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฒฐ๊ณผ๋ฅผ ์“ฐ๋ฏ€๋กœ ํ™œ์„ฑํ™” - ALUSrc = 0 (๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’ ์‚ฌ์šฉ) - MemtoReg = 0 (ALU ๊ฒฐ๊ณผ ์„ ํƒ) 5. - IF: PC์—์„œ ๋ช…๋ น์–ด ์ธ์ถœ, PC+4 - ID: $t1 ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’ ์ฝ๊ธฐ, ์˜คํ”„์…‹(100) ๋ถ€ํ˜ธ ํ™•์žฅ - EX: $t1 + 100 ์ฃผ์†Œ ๊ณ„์‚ฐ - MEM: ๊ณ„์‚ฐ๋œ ์ฃผ์†Œ์—์„œ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ - WB: ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ $t0์— ์ €์žฅ 6. - (a) ํด๋Ÿญ ์ฃผ๊ธฐ = 250 + 150 + 200 + 300 + 100 = 1000ps = 1ns - (b) 1์ดˆ / 1ns = 10^9 = 1 GIPS (Giga Instructions Per Second) 7. ํ‰๊ท  CPI = 0.30ร—5 + 0.15ร—4 + 0.40ร—4 + 0.15ร—3 = 1.50 + 0.60 + 1.60 + 0.45 = 4.15 8. - ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ: CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์— ๊ณ ์† ๋ฉ”๋ชจ๋ฆฌ ๋ฐฐ์น˜ - ํŒŒ์ดํ”„๋ผ์ด๋‹: ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌ - ํ”„๋ฆฌํŽ˜์น˜: ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์˜ด 9. - ๋‹จ์ผ ์‚ฌ์ดํด: 3 ร— 1000ps = 3000ps = 3ns - ๋‹ค์ค‘ ์‚ฌ์ดํด: (5 + 4 + 4) ร— 300ps = 13 ร— 300ps = 3900ps = 3.9ns (ํด๋Ÿญ ์ฃผ๊ธฐ = max(250, 150, 200, 300, 100) = 300ps)

๋‹ค์Œ ๋‹จ๊ณ„

  • 08_Control_Unit.md - ํ•˜๋“œ์™€์ด์–ด๋“œ/๋งˆ์ดํฌ๋กœํ”„๋กœ๊ทธ๋žจ ์ œ์–ด

์ฐธ๊ณ  ์ž๋ฃŒ

to navigate between lessons