thumb|Koprocesory Intel 80x87.
Koprocesor arytmetyczny, jednostka zmiennoprzecinkowa (ang. Floating-Point Unit, FPU) – koprocesor wspomagający procesor główny komputera (CPU) w obliczeniach głównie zmiennoprzecinkowych, ale również na liczbach całkowitych. W większości współczesnych konstrukcji koprocesor arytmetyczny jest zintegrowany z procesorem w jednym układzie scalonympodobnie jak jednostki obsługujące bardziej skomplikowane obliczenia, np. instrukcje wektorowew przypadku procesorów rodziny Intel x86, FPU był zintegrowany od wersji 80486 DX, w przypadku rodziny M68000, od MC68040 .
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 przypadku procesorów rodziny x86 dla danego typu procesora przypisany był odpowiadający mu koprocesor (np. 8087 dla 8086 i 8088, 80287 dla 80286 czy 80387 dla 80386). W przypadku innych rodzin procesorów (np. M68000) nie występowała zależność między koprocesorami a procesorami w takiej formie i istniejące MC68881 oraz MC68882 można było wykorzystywać z dowolnymi modelami serii.
thumb|left|200px|Koprocesor arytmetyczny MC68882 Oprócz koprocesorów oferowanych przez producentów poszczególnych serii mikroprocesorów, koprocesory arytmetyczne były produkowane również przez niezależne firmy. Mogły one być instalowane w tej samej podstawce (np.zamiast 80387) albo dodane na kartach rozszerzeń. Koprocesory takie mogły dysponować niezależnie zdefiniowaną listą rozkazów i wymagać dedykowanego oprogramowania (kompilatora) by wykorzystać ich możliwości. Przykładem takich koprocesorów są produkty serii Weitek firmy MicroWay.
thumb|200px|Koprocesor Weitek W przypadku braku fizycznego koprocesora kompatybilność oprogramowania jest zapewniana przez emulację (zwykle przez kompilatory języków i ich biblioteki lub podsystemy jądra systemu operacyjnego, np. Linux).
Rodzaje koprocesorów arytmetycznych Koprocesory arytmentyczne można podzielić ze względu na ich cechy charakterystyczne.
Najbardziej wyraźny jest podział ze względu na powiązanie (lub brak) z procesorem głównym. FPU może być: wbudowany w procesor (jest to większość przypadków współcześnie) ściśle związany z typem procesora głównego (na przykład: Intel 80x87, Motorola MC68881/2). luźno lub wcale nie związany z typem procesora głównego, czyli działać tak jak inne rozszerzenia czy nawet urządzenia peryferyjne dodawane np. na kartach rozszerzających; przykładem mogą być koprocesory Weitek
Drugim ważnym wyróżnikiem jest podział ze względu na charakter pracy (współpracy) z resztą systemu (w szczególności - z procesorem głównym): synchroniczne - pracujące z tym samym zegarem co procesor główny asynchroniczne - pracujące z osobnym zegarem mogącym mieć inne taktowanie, niezależnie od procesora głównego, który zleca FPU zadania do wykonania, po czym kontynuuje pracę; gdy FPU skończy obliczenia, wyniki są odbierane i przekazywane do programu (zwykle poprzez sprzętową lub programową synchronizację). przy czym niektóre koprocesory mogą działać w dowolnym z tych trybów pracy, zależnie od decyzji projektantów sprzętu i wynikającej z tego konstrukcji np. płyty głównej komputera.
Zobacz też procesor jednostka arytmetyczno-logiczna procesor graficzny procesor wektorowy lista koprocesorów x86
Uwagi
Przypisy
*