πŸ“Œ ALU

ALU (Arithmetic Logic Unit) β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² составС CPU, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ арифмСтичСскиС ΠΈ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

🧠 Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ALU ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ· рСгистров) ΠΈ ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ CU.
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСний записываСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² рСгистр, Ρ„Π»Π°Π³ΠΈ состояния ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ Π² рСгистр Ρ„Π»Π°Π³ΠΎΠ².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • АрифмСтика: +, βˆ’, *, /
  • Π›ΠΎΠ³ΠΈΠΊΠ°: AND, OR, XOR, NOT
  • Π‘Π΄Π²ΠΈΠ³ΠΈ: SHL, SHR, ROL, ROR
  • Установка Ρ„Π»Π°Π³ΠΎΠ²: zero, carry, sign, overflow ΠΈ Π΄Ρ€.

βš™οΈ Π“Π΄Π΅ примСняСтся

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
CPUΠ―Π΄Ρ€ΠΎ выполнСния инструкций
FPGAΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ логичСских Π±Π»ΠΎΠΊΠΎΠ²
ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ALU с фиксированным Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
GPUΠ’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ ALU Π² составС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Ρ… процСссоров

πŸ’» ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

; ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° x86 (NASM): слоТСниС Π΄Π²ΡƒΡ… чисСл
mov eax, 5
add eax, 7    ; ALU выполняСт слоТСниС β†’ EAX = 12

πŸ“Š Упрощённая структура ALU

      +---------+    +------------+
A --->|         |    |            |---> Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
      |  ALU    |--> | Π€Π»Π°Π³ΠΈ (ZF, CF, OF...)
B --->|         |    |            |
      +---------+    +------------+
         ↑
     ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ (ΠΊΠΎΠ΄ ΠΈΠ· CU)

βœ… ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

  • Аппаратная рСализация β€” ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Π°ΠΊΡ‚ΠΎΠ²

  • ЯвляСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ΠΎΠΌ всСх вычислСний Π² CPU

❌ НСдостатки

  • ВыполняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнтарныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

  • НС Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ доступ ΠΊ памяти

  • Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тригономСтрия) Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° β€” FPU