ALU – Arithmetic Logic Unit (Jednostka Arytmetyczno-Logiczna)
ALU, czyli Arithmetic Logic Unit, to podstawowy blok funkcyjny w procesorach i innych układach cyfrowych odpowiedzialny za wykonywanie operacji arytmetycznych i logicznych. Dziś wyjaśnię Ci, jak działa ALU, jakie są jego podstawowe zadania oraz dlaczego jest sercem każdego mikroprocesora czy mikrokontrolera. W praktyce to właśnie w ALU odbywa się większość obliczeń, od prostych dodawań i odejmowań po złożone operacje logiczne, które decydują o działaniu całego systemu cyfrowego.
Podstawowe funkcje ALU
Arithmetic Logic Unit realizuje dwie główne grupy operacji:
- Operacje arytmetyczne: dodawanie, odejmowanie, mnożenie, dzielenie (choć w niektórych konstrukcjach mnożenie i dzielenie może być realizowane przez osobne jednostki lub programowo), inkrementacja i dekrementacja.
 - Operacje logiczne: AND, OR, XOR, NOT oraz przesunięcia bitowe (shift left, shift right) i rotacje.
 
Dzięki tym funkcjom ALU jest w stanie przetwarzać dane binarne, które są podstawą całej informatyki i elektroniki cyfrowej. Operacje logiczne pozwalają na wykonywanie decyzji warunkowych oraz manipulację bitami, co jest niezbędne np. przy realizacji instrukcji warunkowych w procesorze.
Budowa i elementy ALU
Typowe ALU składa się z:
- Rejestrów wejściowych – które przechowują dane do przetworzenia, np. dwa operandowe rejestry A i B.
 - Bloków arytmetycznych i logicznych – czyli układów wykonujących poszczególne operacje.
 - Multipleksera, który wybiera wynik konkretnej operacji na podstawie sygnału sterującego.
 - Rejestru wynikowego, gdzie trafia rezultat operacji.
 - Flagi statusowe, które informują o stanie wyniku – np. czy wynik jest zero, czy doszło do przeniesienia (carry), czy jest znak ujemny (negative), albo czy wystąpił overflow.
 
W nowoczesnych procesorach ALU jest rozbudowany i może składać się z wielu jednostek równoległych, co pozwala na wykonywanie operacji równocześnie lub szybciej. Jednak zasada działania pozostaje ta sama – wykonanie podstawowych obliczeń binarnych.
Znaczenie ALU w architekturze komputera
ALU jest częścią jednostki centralnej procesora (CPU) i współpracuje ściśle z jednostką sterującą (CU) oraz rejestrami ogólnego przeznaczenia. Wykonywanie instrukcji w procesorze zazwyczaj polega na pobraniu danych do ALU, wykonaniu operacji oraz zapisaniu wyniku do pamięci lub rejestru. Bez ALU procesor nie byłby w stanie realizować obliczeń, a więc komputer nie mógłby działać.
W kontekście architektur RISC i CISC, ALU jest podstawowym komponentem, choć w procesorach CISC często istnieje więcej jednostek wykonawczych o złożonej funkcjonalności. Znajomość działania ALU pozwala lepiej zrozumieć, jak procesory wykonują operacje bitowe czy arytmetyczne, a także na czym polega optymalizacja kodu maszynowego pod kątem szybkości i efektywności.
Przykłady operacji wykonywanych przez ALU

Interakcja ALU z innymi elementami procesora
Podczas działania procesora ALU otrzymuje dane z rejestrów oraz sygnały sterujące z jednostki kontrolnej. Na podstawie tych sygnałów wybiera operację do wykonania. Po przetworzeniu danych wynik jest zwracany do rejestrów lub pamięci. Flagi statusowe pozwalają sterownikowi podjąć decyzję o kolejnych krokach, np. czy wykonać skok warunkowy, czy kontynuować liniową sekwencję instrukcji.
Zarówno w kontekście projektowania układów cyfrowych, jak i nauki mikroprocesorów, zrozumienie działania ALU jest kluczowe. To dzięki niemu możemy budować układy liczące, decydujące i wykonujące złożone algorytmy. Często w praktyce, przy pisaniu kodu asemblerowego czy optymalizacji oprogramowania, musisz zdawać sobie sprawę z ograniczeń i możliwości ALU, na przykład w zakresie przeniesień czy długości słowa maszynowego.
Choć skupiliśmy się na ALU, warto wspomnieć, że jednostka arytmetyczno-logiczna nie działa w izolacji – jej praca jest powiązana z pamięcią operacyjną, magistralami danych i kontrolą przepływu informacji w CPU. Wczoraj omawialiśmy strukturę rejestrów, które są podstawowym magazynem danych dla ALU. W kolejnych materiałach przyjrzymy się bliżej jednostce sterującej (Control Unit), która decyduje, jakie operacje ALU ma wykonać i kiedy.