Koprocesor

Koprocesor je v informatice označení pro specializovaný procesor, který je určen pro rozšíření funkcí primárního procesoru počítače nebo urychlení výpočtů. Nejznámějším koprocesorem je matematický koprocesor a ev. vektorový procesor, které jsou využívány pro aritmetické operace s čísly s pohyblivou desetinnou čárkou. Další typy koprocesorů jsou určeny pro grafické operace (označovány jako GPU) nebo pro podporu kryptografických operací.

Popis funkce

Koprocesor je pomocná jednotka, která rozšiřuje nebo urychluje specifické výpočty, jejichž realizace pomocí hlavního procesoru počítače by byla pomalejší. Koprocesor tedy nefunguje stejně, jako klasický procesor. Některé koprocesory nejsou schopny získávat instrukce přímo z operační paměti, vykonávat instrukce řízení toku, vykonávat práci s I/O zařízeními, řídit paměť, případně vykonávat jiné standardní operace, kterých je hlavní procesor počítače schopen. Koprocesory proto pro svoji funkci vyžadují spolupráci s hlavním procesorem, který zajišťuje získávání dat a řeší všechny ostatní úkoly, které se netýkají specializace koprocesoru. V některých architekturách může koprocesor hardwarově podobat více klasickému procesoru, ale jeho práce je soustředěna pouze na limitovanou sadu funkcí a je přímo řízen hlavním procesorem.

Historie

Koprocesory se objevily na konci 80. a na začátku 90. let 20. století. Nejdříve se jednalo o 8bitové a 16bitové matematické koprocesory (FPU), které se specializovaly na výpočty s plovoucí desetinnou čárkou. Hardwarové řešení (avšak i jeho softwarová náhrada) přineslo vysoký nárůst rychlosti výpočtů zejména pro CAD programy (Computer aided design) a uplatnily se i pro vědecké výpočty. Některé FPU jednotky byly používány jako periferní zařízení, například AMD 9511, Intel I8231 nebo koprocesory společnosti Weitek. Dalším typem koprocesorů byl velice známý Intel 8087, Motorola 68881 či National 32081.

Historicky dalším typem byl koprocesor pro zobrazení grafiky, který využíval legendární 8bitový počítač Atari, ale i další zařízení jako Texas Instruments TI-99/4A a MSX Home-Computers. Tento typ koprocesoru byl označován jako „Video Display Controller“. Grafický koprocesor s názvem „Copper“ využíval i Commodore Amiga.

Jak postupoval vývoj mikroprocesorů, tak klesaly i náklady na přímou integraci mechanismu koprocesoru přímo do hlavního procesoru, takže externích koprocesory skončily. Myšlenka externích koprocesorů (GPU) byla plně oživena až v době vývoje 3D her, kde je potřeba vysokého výkonu pro vizualizaci realisticky působící počítačové 3D grafiky.

Specifické koprocesory

Některé zvukové karty využívaly koprocesorů pro specializované vícekanálové míchaní zvuku a pro zvukové efekty v reálném čase již v letech 1990–1994, typickými zástupci těchto karet byly Gravis Ultrasound a Sound Blaster AWE32. Z nedávné doby můžeme uvést například Sound Blaster Audigy nebo Sound Blaster X-Fi.

V roce 2006 společnost AGEIA představila přídavné karty pro PC nazývané PhysX. Tento modul se specializuje na fyzikální výpočty, čímž usnadňuje práci pro grafický a hlavní procesor počítače, které nejsou pro tyto výpočty specializovány. Myšlenkou pro vývoj tohoto modulu byla podpora výpočtu fyzikálních modelů hlavně pro vizualizaci počítačových her, teoreticky by se ale dal modul použít i při jiných matematických výpočtech. V roce 2008 společnost NVIDIA odkoupila licenci na PhysX a začala integrovat funkcionalitu modulu softwarově přímo do grafických karet.

Související články

Externí odkazy