jedn ALU, Jednostka ALU, Jednostka arytmetyczno-logiczna (ang


Jednostka arytmetyczno-logiczna (ang. ALU ─ arithmetic and logical unit) to jedna z głównych części procesora prowadząca proste operacje na liczbach całkowitych,jest też zespołem programowalnych 2- wejściowych bramek logicznych operujących na równoległych bitach danych o szerokości 4, 8, 16 lub 32 bity.

Służy do wykonywania operacji arytmetycznych i logicznych na liczbach binarnych A i B. ALU ?181 realizuje 16 funkcji logicznych dwóch zmiennych A i B oraz podstawowe działania arytmetyczne: dodawanie A+B, odejmowanie A-B, przesunięcie arytmetyczne w lewo 2* A, następnik A+1, poprzednik A-1. Wszystkie te działania uwzględniają przeniesienie z poprzedniego stopnia, a więc mogą być wykonywane na liczbach wielobitowych.

0x01 graphic

oznaczenia do rysunku:

S - wejście sterujące, określające realizowaną funkcję

C0, C4 - wejścia i wyjścia przeniesienia

M - wejście trybu pracy

F - wyjście wyniku

A = B - wejście porównujące =1, gdy F=1

X, Y - wyjście do generatora przeniesień jednoczesnych

Typowe 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

często też, odejmowanie, negacja liczby, dodawanie z przeniesieniem, zwiększanie/zmniejszanie o 1

przesunięcia bitowe o stałą liczbę bitów, czasem też o zmienną liczbę

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 trudniejsze od zaimplementowania samego dodawania. Mnożenie jest już droższe, a dzielenie jest bardzo drogie w porównaniu do tych operacji.

Klasyczne procesory zawierały jedno ALU. Procesory o architekturze superskalarnej zawierają kilka ALU, i mogą ich używać jednocześnie. Często ALU te są nieidentyczne ─ np. z trzech ALU wszystkie potrafią wykonywać podstawowe operacje (dodawanie, odejmowanie i logiczne), a jedynie jedno potrafi mnożyć i dzielić. Taki procesor w jednym cyklu może wykonać np. 1 mnożenie i 2 dodawania, nie może natomiast wykonać 2 mnożeń. Jest to uzasadnione, ponieważ typowy program wykonuje o wiele więcej dodawań (często niejawnych dla programisty, np. przy wyliczaniu adresu pola obiektu na podstawie adresu obiektu czy dostępu do n-tej zmiennej na stosie) niż mnożeń, a dodanie mnożenia mocno komplikuje ALU.

Zadaniem jednostki arytmetyczno-logicznej jest wykonywanie operacji arytmetycznych i logicznych.

Operacje te przeprowadzane są na argumentach, które zawarte są w akumulatorze i rejestrze przejściowym. Pod względem funkcjonalności akumulator różni się od rejestru przejściowego tym, że jego zawartość może być czytana i wysyłana do innego rejestru lub pamięci, natomiast zawartość rejestru przejściowego nie może być wyprowadzana na szynę danych. Po wykonaniu operacji jednostka ALU generuje wynik, natomiast pewne specyficzne informacje typu:

-wynik równy zeru,

-przeniesienie,

-pożyczka,

-przepenienie,

-znak wyniku,

Rejestr wskaźników zwany jest też często rejestrem stanu. Za pomocą specjalnych instrukcji możliwe jest testowanie stanu poszczególnych bitów rejestru wskaźnikowego i stosowanie w programie rozgałęzień.

Zastosowanie:

W procesorach, CPU (Central Processing Unit)



Wyszukiwarka