CPU ๊ตฌ์กฐ ๊ธฐ์ด
CPU ๊ตฌ์กฐ ๊ธฐ์ด¶
๊ฐ์¶
CPU(Central Processing Unit)๋ ์ปดํจํฐ์ ๋๋๋ก์, ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด๋ฅผ ํด์ํ๊ณ ์คํํ๋ ํต์ฌ ์ฅ์น์ ๋๋ค. ์ด ๋ ์จ์์๋ CPU์ ๋ด๋ถ ๊ตฌ์ฑ์์, ๋ ์ง์คํฐ์ ์ข ๋ฅ, ๋ฐ์ดํฐํจ์ค ๊ตฌ์กฐ, ๊ทธ๋ฆฌ๊ณ ๋ช ๋ น์ด ์คํ ์ฌ์ดํด์ ๋ํด ์์ธํ ํ์ตํฉ๋๋ค.
๋์ด๋: โญโญ
์ ์ ์ง์: ๋ ผ๋ฆฌ ๊ฒ์ดํธ, ์์ฐจ ๋ ผ๋ฆฌ ํ๋ก, ์กฐํฉ ๋ ผ๋ฆฌ ํ๋ก
๋ชฉ์ฐจ¶
- CPU์ ๊ตฌ์ฑ์์
- ๋ ์ง์คํฐ ์ข ๋ฅ
- ๋ฐ์ดํฐํจ์ค
- ๋ช ๋ น์ด ์คํ ์ฌ์ดํด ์์ธ
- ๋จ์ผ ์ฌ์ดํด vs ๋ค์ค ์ฌ์ดํด
- ์ฐ์ต ๋ฌธ์
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. ์ฐ์ต ๋ฌธ์ ¶
๊ธฐ์ด ๋ฌธ์ ¶
-
CPU์ 3๋ ๊ตฌ์ฑ์์๋ ๋ฌด์์ธ๊ฐ?
-
๋ค์ ๋ ์ง์คํฐ์ ์ญํ ์ ์ค๋ช ํ์์ค:
- (a) PC (Program Counter)
- (b) IR (Instruction Register)
-
(c) MAR (Memory Address Register)
-
ALU์์ ์ํํ๋ ์ฐ์ฐ์ ์ข ๋ฅ 3๊ฐ์ง๋ฅผ ์ฐ์์ค.
๋ฐ์ดํฐํจ์ค ๋ฌธ์ ¶
- ๋ค์ MIPS ๋ช ๋ น์ด ์คํ ์ ํ์ฑํ๋๋ ์ ์ด ์ ํธ๋ฅผ ๋ชจ๋ ๊ณ ๋ฅด์์ค:
ADD $t0, $t1, $t2
- (a) RegWrite
- (b) ALUSrc
- (c) MemRead
- (d) MemWrite
-
(e) MemtoReg
-
LW $t0, 100($t1)๋ช ๋ น์ด์ 5๋จ๊ณ ์คํ ๊ณผ์ ์ ์์๋๋ก ์ค๋ช ํ์์ค.
์ฑ๋ฅ ๋ถ์ ๋ฌธ์ ¶
- ๋จ์ผ ์ฌ์ดํด CPU์์ ๊ฐ ๋จ๊ณ์ ์์ ์๊ฐ์ด ๋ค์๊ณผ ๊ฐ์ ๋:
- IF: 250ps
- ID: 150ps
- EX: 200ps
- MEM: 300ps
- WB: 100ps
(a) ํด๋ญ ์ฃผ๊ธฐ๋ ์ผ๋ง์ธ๊ฐ? (b) 1์ด์ ๋ช ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๋๊ฐ?
- ๋ค์ค ์ฌ์ดํด CPU์์ ๋ช ๋ น์ด ๋ถํฌ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๋ ํ๊ท CPI๋ฅผ ๊ตฌํ์์ค:
- Load: 30% (5 ์ฌ์ดํด)
- Store: 15% (4 ์ฌ์ดํด)
- R-type: 40% (4 ์ฌ์ดํด)
- Branch: 15% (3 ์ฌ์ดํด)
์ฌํ ๋ฌธ์ ¶
-
ํฐ ๋ ธ์ด๋ง ๋ณ๋ชฉ์ ํด๊ฒฐํ๊ธฐ ์ํ CPU ์ค๊ณ ๊ธฐ๋ฒ 3๊ฐ์ง๋ฅผ ์ค๋ช ํ์์ค.
-
๋ค์ ์ฝ๋ ์ํ์ค๊ฐ ๋จ์ผ ์ฌ์ดํด 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 - ํ๋์์ด์ด๋/๋ง์ดํฌ๋กํ๋ก๊ทธ๋จ ์ ์ด
์ฐธ๊ณ ์๋ฃ¶
- Computer Organization and Design (Patterson & Hennessy)
- Computer Architecture: A Quantitative Approach (Hennessy & Patterson)
- CPU ์๋ฎฌ๋ ์ดํฐ
- MIPS ๋ฐ์ดํฐํจ์ค ์๋ฎฌ๋ ์ดํฐ