|
Jednostka zmiennoprzecinkowa |
Jednostka zmiennoprzecinkowa
Koprocesor, jednostka zmiennoprzecinkowa (FPU, ang. Floating Point Unit) to układ scalony wspomagający procesor w obliczeniach zmiennoprzecinkowych. W większości współczesnych konstrukcji, koprocesor arytmetyczny, a także jednostki obsługujące bardziej skomplikowane obliczenia (np. instrukcje wektorowe) są zintegrowane z procesorem w jednym układzie.
W przeszłości jednak, koprocesor stanowił opcjonalny komponent procesora i nie był standardowym układem komputera. Twórcy płyt głównych umieszczali zwykle pustą podstawkę, w której można było zainstalować koprocesor. W takim przypadku, do danego typu procesora, przypisany był odpowiadający mu koprocesor (np. 8087 dla 8086 i 8088, 80287 dla 80286 czy 80387 dla 80386)
wikipedia.pl |
|
|
ALU vs. FPU
Jednostka zmienno-przecinkowa (z ang. Floating Point Unit) również wykonuje operacje arytmetyczne pomiędzy dwiema wartościami, jednak operuje na liczbach o reprezentacji zmienno-przecinkowej, co jest znacznie bardziej skomplikowane niż reprezentacja dopełnienia dwójki używana w typowej ALU. W celu wykonania takich kalkulacji, FPU posiada kilka wbudowanych, złożonych układów, takich jak wewnętrzne ALU. Zazwyczaj projektanci nazywają jednostkę ALU układem, który wykonuje operacje arytmetyczne w formatach liczby całkowitej (np. dopełnienie dwójki i BCD), podczas gdy układy dokonujące obliczeń na bardziej złożonych formatach np. zmienno-przecinkowych, liczbach zespolonych itp. zwykle otrzymują bardziej szczegółowe nazwy.
wikipedia.pl |
|
|
Operacje zaawansowane
Inżynier potrafi zaprojektować ALU do wykonywania każdej operacji niezależnie jak jest skomplikowana, jednak problemem jest to, że im bardziej operacja jest skomplikowana tym jednostka ALU jest droższa, zajmuje więcej miejsca w procesorze oraz zużywa więcej energii.
Dlatego też, inżynierowie zawsze szukają kompromisu, aby wyposażyć procesor (lub inne układy) w jednostkę ALU, która będzie wystarczająco wydajna, aby zapewnić odpowiednio szybką pracę procesora, ale nie tak skomplikowana by była nieprzystępna cenowo. Wyobraźmy sobie, że musimy obliczyć pierwiastek kwadratowy z danej liczby. Projektant rozpatrzy następujące sposoby zaimplementowania takiej operacji:
wikipedia.pl |
|
|
Proste operacje
Większość ALU potrafi dokonać następujących operacji:
* operacje arytmetyczne na liczbach całkowitych (dodawanie, odejmowanie i czasami mnożenie oraz dzielenie, jednak te są bardziej kosztowne) * bitowe operacje logiczne (AND, NOT, OR, XOR) * operacje przesuwania bitowego (przesuwanie lub obracanie słowa o określoną liczbę bitów w lewo lub prawo, ze znakiem lub bez). Przesuwanie może być rozumiane jako mnożenie przez 2 oraz dzielenie przez 2.
wikipedia.pl |
|
|
Praktyka
Większość operacji komputera jest wykonywana przez ALU. Jednostka ALU pobiera dane z rejestrów procesora. Dane te są przetwarzane, a wyniki operacji są przechowywane w rejestrach wyjściowych ALU. Inne układy przesyłają dane pomiędzy tymi rejestrami a pamięcią. Jednostka kontrolna zarządza jednostką ALU, poprzez ustawianie układów, które informują ALU jaką operację należy wykonać.
wikipedia.pl |
|
|
|