Hledat:

Set-top-boxy Parfémy Krása Produkty pro zdraví Hodinky Elektro Šperky Nábytek Nářadí a zahrada Outdoor Počítače a notebooky
 

Matematický koprocesor

Matematický koprocesor případně numerický koprocesor, někdy zkráceně jen koprocesor (angl. numeric coprocessor, math coprocessor zkráceně MCP nebo floating-point unit zkráceně FPU) je koprocesor určený na vykonávání operací s čísly s plovoucí desetinnou čárkou. Některé typy matematických koprocesorů jsou schopné vykonávání i složitějších matematických operací. Matematický koprocesor může být implementovaný jako samostatná jednotka nebo může být součástí CPU.

V minulosti procesory neobsahovaly žádný zabudovaný mechanizmus na zpracování čísel s plovoucí desetinnou čárkou. Zpracování těchto čísel bylo realizované externím matematickým koprocesorem případně bylo emulované mikroprogramem v aritmeticko-logické jednotce procesoru. Vykonávání operací s čísly s pohyblivou desetinnou čárkou emulací v ALJ je však mnohem pomalejší a navíc zatěžuje hlavní procesor.

Přestože je možné softwarovou emulací matematického koprocesoru ušetřit výrobní náklady, v současných procesorech pro osobní počítače je matematický koprocesor integrovaný v mikroprocesoru. To bylo umožněno prudkým poklesem výrobních nákladů v posledních letech.

Obsah

[editovat] Koprocesory Intel 8087

Koprocesor Intel 8087 byl přídavný matematický koprocesor dodávaný pro procesory Intel 8086, doplňující jejich funkčnost o podporu práce s reálnými čísly (přesněji s čísly s pohyblivou řádovou čárkou). Byl poměrně drahý, dal se však softwarově emulovat (což bylo asi desetkrát pomalejší).

Z matematického koprocesoru Intel 8087 vycházely i koprocesory pro novější procesory Intel: koprocesory 80287 (pro procesor 80286), 80387 (pro procesor 80386) a 80487 (pro procesor 80486 SX). Procesory 80486 DX a následující (Pentium) měly již matematický koprocesor integrovaný v sobě – v těchto případech již pojem matematický koprocesor v podstatě ztrácí smysl a je lepší používat pojem FPU.

[editovat] Vnitřní struktura FPU

FPU je jednotka pro práci s čísly s pohyblivou řádovou čárkou (jak je patrno již jejího názvu – Floating Point Unit). Z pohledu programátora obsahuje následující registry:

Jednotka FPU pracuje se třemi formáty čísel s pohyblivou řádovou čárkou:

Tyto formáty se v podstatě liší jen datovou velikostí – samotné číslo je v nich ukládáno stejným způsobem: znaménko (1 bit) – exponentmantisa

Znaménko je vždy ukládáno na nejvyšším bitu. Nula značí plus, jednička mínus

Exponent je ukládán na osmi bitech (u single precision) nebo na 11 bitech (u double precision). Je ukládán v kódu transformované nuly (též aditivní kód – viz Dvojková soustava).

Mantisa je ukládána na „zbytku“ bitů, tj. na 23 (single precision) resp. 52 (double precision) bitech. Její tvar závisí na typu uloženého čísla (viz dále).

Znázornění formátu čísel s pohyblivou řádovou čárkou

[editovat] Typy čísel uložitelných v STx registrech

V STx registrech lze ukládat čísla jak IEEE formátech (single a double precision), tak čísla v 80bitovém formátu Intel.

Ve všech těchto třech formátech lze ukládat následující typy čísel:

Tabulka uložitelných hodnot pro single precision (pro ostatní formáty bude tabulka obdobná)

typ čísla exponent mantisa v paměti význam paměťové mantisy odpovídající známka (v Tag registru)
normalizované číslo 0 < exponent < 255 m = libovolná hodnota desetinná část skutečné mantisy (tvar 1,mmmm) 0
denormalizované číslo 0 libovolná nenulová hodnota skutečná mantisa s pevnou desetinnou čárkou za nejvyšším bitem 2
nula 0 0 0 1
nekonečno 255 0 2
nečíselná hodnota 255 libolná nenulová hodnota 2

[editovat] Související články


 
Matematický koprocesor v jiných jazycích: Català, Deutsch, English, Español, Français, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Nederlands, Polski, Português, Русский, Simple English, Slovenčina, Svenska, 中文
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „http://cs.wikipedia.org/wiki/Matematick%C3%BD_koprocesor
Stránka byla naposledy upravena v Stránka byla naposledy editována 5. 11. 2008 v 08:28.
Veškerý text je dostupný za podmínek GNU Free Documentation License (Autorské právo pro podrobnosti).
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt | Set-top-boxy