πŸ“Œ 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
RISCCU Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚
CISCCU содСрТит ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄ для слоТных инструкций
x86_64Intel/AMD ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ CU
ARM Cortex-ACU проста, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° Π²Ρ‹ΡΠΎΠΊΡƒΡŽ 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

  • ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΡƒΡ‚Ρ‹Π»ΠΎΡ‡Π½Ρ‹ΠΌ Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎΠΌ ΠΏΡ€ΠΈ высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅

  • Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ