Który układ mikroprocesora wykonuje operacje arytmetyczne i logiczne na liczbach całkowitych?
A. FPU
B. ALU
C. MMU
D. IU
ALU, czyli Arithmetic Logic Unit, to część procesora odpowiedzialna za wykonywanie operacji arytmetycznych i logicznych na liczbach całkowitych. W praktyce oznacza to dodawanie, odejmowanie, czasem mnożenie i dzielenie całkowitoliczbowe, a także operacje typu AND, OR, XOR, NOT, przesunięcia bitowe i porównania. To właśnie takie operacje są potrzebne prawie wszędzie: przy obliczaniu adresów w pamięci, sprawdzaniu warunków w instrukcjach if, obsłudze liczników pętli, operacjach na maskach bitowych czy analizie flag procesora. Moim zdaniem ALU to jeden z tych elementów, które warto dobrze kojarzyć, bo przewija się potem przy asemblerze, diagnostyce wydajności i ogólnym rozumieniu działania CPU. W klasycznej architekturze procesora ALU współpracuje z rejestrami, jednostką sterującą oraz magistralami wewnętrznymi. Wynik operacji często wpływa też na rejestr flag, np. informację o przeniesieniu, zerowym wyniku albo przepełnieniu. Dobra praktyka w nauce architektury komputerów jest taka, żeby odróżniać obliczenia całkowitoliczbowe od zmiennoprzecinkowych, bo do tych drugich zwykle służy FPU. ALU jest więc poprawną odpowiedzią, bo dokładnie realizuje operacje arytmetyczno-logiczne na danych całkowitych, stanowiąc podstawowy blok wykonawczy mikroprocesora.
W tym pytaniu łatwo pomylić kilka bloków procesora, bo ich nazwy są krótkie i wszystkie brzmią dość technicznie. Trzeba jednak patrzeć na rodzaj wykonywanych zadań. FPU, czyli Floating Point Unit, jest jednostką zmiennoprzecinkową. Służy do obliczeń na liczbach rzeczywistych zapisanych w formacie zmiennoprzecinkowym, na przykład zgodnym z IEEE 754. Przydaje się w grafice 3D, symulacjach, obliczeniach naukowych, kompresji multimediów czy uczeniu maszynowym, ale nie jest podstawową jednostką do typowych operacji całkowitoliczbowych typu 5 + 3 albo maskowanie bitów. Czasem ktoś wybiera FPU, bo kojarzy słowo arytmetyka z każdym liczeniem, no ale w architekturze procesora ten podział jest bardziej konkretny. IU bywa rozumiane jako Integer Unit, czyli jednostka całkowitoliczbowa, ale w typowych pytaniach egzaminacyjnych i szkolnych odpowiedzią na operacje arytmetyczne i logiczne jest ALU. IU może obejmować szerszy fragment ścieżki wykonawczej dla instrukcji całkowitoliczbowych, natomiast sama logika dodawania, porównywania i operacji bitowych to właśnie ALU. MMU, czyli Memory Management Unit, pełni zupełnie inną funkcję: zajmuje się tłumaczeniem adresów wirtualnych na fizyczne, ochroną pamięci, stronicowaniem i współpracą z systemem operacyjnym. Jest bardzo ważna dla bezpieczeństwa i stabilności systemu, ale nie wykonuje operacji arytmetyczno-logicznych na liczbach jako głównego zadania. Typowy błąd myślowy polega tu na tym, że wybiera się skrót znany z procesora bez sprawdzenia, czy pasuje do funkcji. Z mojego doświadczenia najlepiej zapamiętać to prosto: ALU liczy i porównuje liczby całkowite oraz bity, FPU liczy liczby zmiennoprzecinkowe, a MMU pilnuje adresowania pamięci.