informatyka:podstawy-dzialania-komputera:jednostka_arytmetyczno-logiczna

This is an old revision of the document!


10 Jednostka arytmetyczno-logiczna

Jednostka arytmetyczno-logiczna (z ang. arithmetic and logical unit lub arithmetic logic unit, ALU) – układ cyfrowy, wykonujący operacje arytmetyczne (takie jak dodawanie, odejmowanie itp.), operacje logiczne na dwóch liczbach oraz operacje jednoargumentowe, takie jak przesunięcie bitów, negacja. ALU jest podstawowym blokiem centralnej jednostki obliczeniowej komputera.

Typowa ALU ma dwa wejścia odpowiadające parze argumentów i jedno wyjście na wynik. Operacje jakie prowadzi to:

  • operacje logiczne AND, OR, NOT, XOR,
  • dodawanie,
  • przesunięcia bitowe o jeden bit, stałą liczbę bitów, czasem też o zmienną liczbę,
  • często też, odejmowanie, negacja liczby, dodawanie z przeniesieniem, zwiększanie/zmniejszanie o 1
  • dość często mnożenie i czasem dzielenie/modulo

Przyczyną dla której operacje te grupuje się w ALU jest to, że bramek logicznych potrzebnych do zaimplementowania wszystkich operacji z zestawu: dodawanie (z przeniesieniem i bez), odejmowanie (z przeniesieniem i bez), negacja liczby, zwiększanie i zmniejszanie o 1, AND, OR, NOT, XOR jest niewiele więcej od zaimplementowania samego dodawania. Szybkie mnożenie wymaga znacznie więcej, a dzielenie jeszcze więcej bramek w porównaniu do tych operacji.

Matematyk John von Neumann zaproponował model ALU w 1945 roku, kiedy to sporządził spis założeń dla nowego komputera EDVAC (z ang. Electronic Discrete Variable Automatic Computer, czyli elektroniczny komputer maszynowy o zmiennych nieciągłych). Później w 1946 r. pracował ze swoimi kolegami nad stworzeniem komputera dla Princeton Institute of Advanced Studies (IAS). Komputer IAS stał się prototypem dla wielu późniejszych komputerów. W swoim projekcie von Neumann nakreślił, co według niego będzie niezbędne w komputerze uwzględniając ALU.

Von Neumann stwierdził, iż ALU jest niezbędna dla komputera, ponieważ pewnym jest, że komputer będzie musiał wykonywać podstawowe operacje matematyczne obejmujące dodawanie, odejmowanie, mnożenie oraz dzielenie. Dlatego też twierdził, że „rozsądnym jest, aby komputer mieścił w sobie wyspecjalizowane organy dla tych operacji”.

(wzięty z https://www.nand2tetris.org/ https://www.coursera.org/learn/build-a-computer)

Mamy w nim w sumie 8 wejść.

X i Y które są naszymi liczbami. W zależności od implementacji mogą być one np 16 bitowe każda. (ja jeśli zbuduje to w aplikacji logisim zrobię po prostu tak że są 1 bitowe ( co nie ma sensu przy dodawaniu bo 1 + 1 da mi 0, bo odrzucamy carry ale tak dla prostoty)

Mamy 6 bitów sterujących:

zx - zero x (zeruje nam x)

nx - negate x ( neguje nam x)

zy - zero y (zeruje nam y)

ny - negate y ( neguje nam y)

f - wybiera nam operację dodawania x + y (również odejmowania, ponieważ liczba minus + liczba plus to takie “odedjmowanie” ( 9 Zapisy Liczby dwójkowej ze znakiem jeśli jest równe 1 lub iloczynu logicznego x i y jeśli jest równe 0

  • informatyka/podstawy-dzialania-komputera/jednostka_arytmetyczno-logiczna.1715443609.txt
  • Last modified: 2024/05/11 18:06
  • by kawcix