π CU
CU (Control Unit) β ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ CPU, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
π§ ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
CU ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠ· Instruction Cache, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ Π΅Ρ ΠΈ:
- Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ Π΄Π»Ρ ALU, FPU, MMU
 - ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ/Π·Π°ΠΏΠΈΡΡΡ Π² registers
 - Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Pipeline, Branch predictor, Cache
 - ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ
 
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
- ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (ΠΎΠΏΠΊΠΎΠ΄, ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ)
 - Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ
 - ΠΡΠ΄Π°ΡΠ° ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΡΠ΅Π½ΠΈΡ, Π·Π°ΠΏΠΈΡΠΈ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²
 - Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
 
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ CU:
| ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | 
|---|---|
| Instruction Decoder | Π Π°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠΈΠΏ ΠΈ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ | 
| Microcode Engine | ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π³ΠΎΠ² Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ | 
| Sequencer | ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ / ΠΌΠΈΠΊΡΠΎΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ | 
| Exception Logic | ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ±ΠΎΠ΅Π², ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, Π»ΠΎΠ²ΡΡΠ΅ΠΊ | 
| Control Bus Interface | ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π΄Π»Ρ ΡΠΈΠ½ | 
βοΈ ΠΠ΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ
| ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° | ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ CU | 
|---|---|
| RISC | CU ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ | 
| CISC | CU ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ | 
| x86_64 | Intel/AMD ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ CU | 
| ARM Cortex-A | CU ΠΏΡΠΎΡΡΠ°, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° Π²ΡΡΠΎΠΊΡΡ ILP | 
π» ΠΡΠΈΠΌΠ΅Ρ (ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ CU)
fetch:    IR β MEM[PC]
decode:   opcode, args β decode(IR)
execute:  issue_signals(opcode)
write:    store_result()
next:     PC β PC + 1π Π‘Ρ Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ
Instruction Flow
     β
+-------------------+
|   Control Unit    |
+-------------------+
     β      β      β
   ALU     FPU     MMU
     β       β      β
Registers  Cache  Addressing
β ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°
- 
Π¦Π΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ
 - 
ΠΠΈΠ±ΠΊΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄ (Π² CISC Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ )
 - 
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
 
β ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
- 
Π£ΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ CPU
 - 
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΡΡΡΠ»ΠΎΡΠ½ΡΠΌ Π³ΠΎΡΠ»ΡΡΠΊΠΎΠΌ ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅
 - 
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ