ČVUT - FEL - Referát - Aplikace počítačové grafiky


Hlavní stránka » Osobní » ČVUT - FEL » Semestrální práce a referáty » Aplikace počítačové grafiky

České vysoké učení technické v Praze

Fakulta elektrotechnická





Referát

Aplikace počítačové grafiky



1997/1998 (zimní semestr) Marek Uher



Obsah:

  1. Zadání
  2. Zadavatel
  3. Vypracoval
  4. Úvod
  5. Technologie MMX
  6. MMX registry
  7. MMX aritmetika
    7.1 Mřížková aritmetika
    7.2 Saturační aritmetika
  8. MMX instrukce
  9. Dostupné MMX procesory
    9.1 Intel Pentium MMX
    9.2 Intel Pentium Pro MMX
    9.3 AMD K6
    9.4 Cyrix M2
  10. Software pro MMX
  11. Závěr



1. Zadání

  Nastudujte informace o stávajících a nových procesorech s technologií MMX a jejich možném použití v oblasti počítačové grafiky. Výsledkem Vaší studie bude referát, který bude stručnou a přehlednou formou prezentovat získané informace.



2. Zadavatel

  doc. Ing. Ivan Jelínek, CSc.



3. Vypracoval

  Marek Uher, IV. ročník / studijní skupina 29.



4. Úvod

  Během vývoje počítačů se v zájmu navýšení výpočetního výkonu stále objevují snahy o přenesení části výpočtů prováděných softwarem přímo do hardwaru. V historii vývoje procesorů může být názorným příkladem vývoj CISC (Complex Instruction Set Computer) procesorů. V jiné oblasti je to například vývoj grafických akcelerátorů (např. pracovní stanice SGI nebo Intergraph), které umožňují rychlejší zobrazování grafické informace. Nebo lze také uvést například kanálové adaptéry, které urychlovaly obsluhu periferních zařízení.

  Devadesátá léta dvacátého století jsou charakteristická tím, že osobní počítače si nalézají cestu i do oblasti multimédií, zpracování videa - DTV (Desk Top Video), vizualizace, zpracování rozsáhlých dat (např. data mining) a multimediálních distribuovaných aplikací. A to především díky Internetu, kde se multimediální informace šíří velice snadno a rychle. Na Internetu lze nalézt multimediální aplikace psané v programovacích jazycích JAVA, OpenGL, DirectX, VRML, nebo aplikace obsahující video ve formátu MPEG, QuickTime nebo třeba AVI. Zpracování multimediálních dat v reálném čase vyžaduje výpočetní kapacitu a tu zatím procesory určené pro dnešní osobní počítače neposkytují. Klasické procesory rodiny x86, určené pro osobní počítače (např. Intel Pentium, AMD K5, Cyrix M1), neposkytují v porovnání s procesory určenými pro pracovní stanice (např. MIPS R 10000, Ultra Sparc 2, PA-RISC 8000) dostatečný výpočetní výkon v pevné, natož pak v pohyblivé desetinné čárce. Vysoký výpočetní výkon je ale nutnou podmínkou pro provozování náročných multimediálních aplikací.

  Grafické aplikace tak tvoří jednu z nejnáročnejších oblastí, co se týká nároků na výkon a vyžadují si proto odlišný návrh procesoru (nebo alespoň speciální intrukční sadu). Například při zpracování obrazu, který v sobě zahrnuje informaci o poloze bodů (souřadnice) a informace o barvě (uloženou například po složkách RGB) se často stává, že se provádějí stejné operace nad relativně malou množinou různých dat. Pro zpracování takovéto skupiny dat je podle Floydovy klasifikace nejvhodnější architektura SIMD (Single Instruction Multiple Data)- tzn. zpracování více toků dat jedním proudem instrukcí.

  V současné době můžeme u označení některých procesorů nalézt zkratku MMX, která se většinou objevuje za názvem typového označení procesoru. MMX (MultiMedia eXtension) je specifikace rozšíření instrukční sady procesoru společnosti Intel pro multimediální aplikace, která byla uveřejněna 5. března 1996. Dlouho nevzbuzovala tato specifikace příliš velkou pozornost, až do doby, kdy se objevil první procesor, který toto multimediální rozšíření v sobě implementoval. Dne 8. ledna 1997 Intel představil prví takový procesor - Intel Pentium MMX.



5. Technologie MMX

  Společnost Intel zaměřila v současné době svůj zájem na oblast trhu s počítačovými hrami. Tento trh je nyní v centru zájmu i dalších společností - například i společnost Microsoft se snaží prosadit na tomto trhu se svou novou technologií DirectX. Rychlý rozvoj trhu s počítačovými hrami nese ale s sebou jedno úskalí. Dnes existují programy pro zábavu vyžadují počítač (především však CPU) na hranici jejich výkonnostních možností.

  Nová generace procesoru Pentium s rozšířením MMX (interní označení společnosti Intel pro tento procesor je P55C) by mohla tento požadavek na vyšší výpočetní výkon řešit. Technologie MMX nenavyšuje výpočetní výkon pouhým zvýšením taktovací frekvence procesoru, ale rozšířením intrukční sady o téměř 60 nových instrukcí. Především se jedná o instrukce smyčky, dekódovací funkce a podmíněné větvení, které mají u her a multimediálních aplikací (např. kodérů / dekodérů videa) největší zásluhy na silnějším zatížení procesoru.

  Výhodou je, že jak jednoduché, tak časově (výpočetně) náročné části programu, může vývojář přenechat CPU. Dosažitelný nárůst výkonu je v tomto případě teoreticky až 400%. Nevýhodou oproti tomu je, že odpovídající programové části musí být nahrazeny novými instrukcemi, jinak procesor MMX není schopen využít svých nových vlastností a program je vykonáván jako na zcela normálním procesoru bez rošíření MMX.

  Pro zpracování toku dat zavedla společnost Intel nové 64 bitové registry, které lze použít jako univerzální. Registry jsou označeny jako MM0, MM1, … a pracuje se s nimi podobně jako s registry FPU (jednotka pro výpočty v pohyblivé desetinné čárce). Data v těchto registrech mohou být interpretována jako:

  • osm bajtů (packed byte)
  • čtyři slova (packed word)
  • dvě dvojslova (packed doubleword).



6. MMX registry

  Instrukce, která pracuje s některým z registrů MMX, zpracovává jednotlivé pole registru samostatně. Z tohoto hlediska se jedná o architekturu SIMD. Přístup k registrům MMX mají jen některé instrukce. Navíc lze registry MMX používat pouze jako operandy některých instrukcí. Indexovat pomocí nich například pole nedává příliš veliký smysl, a to i vzhledem k tomu, že operace s nimi používají speciální aritmetiku.



7. MMX aritmetika



7.1 Mřížková aritmetika

  Jedná se o klasickou aritmetiku v řádové mřížce s pevnou desetinnou čárkou s tím rozdílem, že informace o přetečení není indikována žádným způsobem. (tzn. nevyvolá se přerušení, nenastavuje se žádný příznakový bit).



7.2 Saturační aritmetika

  Liší se od klasické aritmetiky pouze v případě přetečení (při sčítání nebo odčítání). Výsledkem je v takovém případě maximální (resp. minimální) hodnota zobrazitelná v dané řádové mřížce. Ani v tomto případě není přetečení žádným způsobem indikováno. Své využití nalezne tato aritmetiky například při zpracování barevných složek obrazu. Aritmetika využívá jak operandy bezznaménkové tak operandy se znaménkem.



8. MMX instrukce

  Vzhledem k použité aritmetice a novým registrům, vyžaduje MMX rozšíření instrukční sady o další instrukce. Instrukce lze rozdělit podle jejich funkce do několika skupin:

  • Instrukce konverze - umožňují přenos dat z / do registrů MMX a nebo z / do paměti nebo registrů x86
  • Instrukce přesunu - umožňují přesun dat z registrů MMX (32 bitový nebo 64 bitový)
  • Aritmetické instrukce - sčítání, odčítání, násobení, násobení se sčítáním (pro různé druhy aritmetiky)
  • Instrukce porovnání - umožňují porovnání na rovnost a větší než pro bajt, slovo, dvojslovo.
  • Logické instrukce - bitový součin AND, součet OR, negovaný součin, …
  • Instrukce posuvu - umožňují aritmetický a logický posuv vlevo a vpravo.
  • Instrukce EMMS



9. Dostupné MMX procesory



9.1 Intel Pentium MMX

  Intel Pentium MMX je první procesor na trhu s technologií MMX. Jedná se o procesorem, který oproti klasickému Pentiu, obsahuje následující vylepšení:

  • 57 nových instrukcí MMX a osm registrů MM0-MM7
  • Zdvojená L1 cache, místo původních 8 kb a 8 kb obsahuje 16 kb datové a 16 kb instrukční cache.
  • 4-asociativní datová cache oproti původní 2-asociativní cache
  • Vylepšená predikce skoků, která byla převzata z procesoru Pentium Pro
  • Implementace návratového zásobníku, která byla převzata z procesoru Cyrix 6×686
  • Vylepšení paralelního zpracování dvou řetězových sekcí (pipelines).
  • Párování dvou instrukcí MMX tak, že až dvě mohou být provedena v jednom kroku a to i na jeden cyklus.
  • Nižší napájení, místo 3.3 V je procesor napájen 2.8 V. Taktovací frekvence, na které Intel Pentium MMX běží je 166 MHz (2.5 x 66), další procesory, které budou následovat, poběží na 200 (3 x 66) MHz a 233 (3.5 x 66) MHz



9.2 Intel Pentium Pro MMX

  Jedná se o nástupcem procesoru Pentium, který by měl již standardně obsahovat rozšíření MMX. Někdy je tento procesor také označován jako Intel Pentium II Klamath. Na trh by měl být tento procesor uveden někdy na konci roku 1997. Bude poskytovat stejnou sadu instrukcí, jako procesor Pentium Pro, a současně instrukce MMX. Výrazným rozdílem oproti předchozí procesorové řadě x86 bude balení procesoru, který bude dodáván na speciální kartě zasouvatelné do základní desky. Společnost Intel ji označila jako Slot One. Na této kartě bude kromě procesoru integrována i L2 cache, která není součástí procesoru. Zatím se plánují verze 233 MHz a 266 MHz, později se společnost Intel chystá produkovat procesory s frekvencí 300 MHz a 400 MHz. Novinkou bude také plánované chlazení procesoru kapalinou.



9.3 AMD K6

  Po převzetí společnosti NexGen využila společnost AMD projektu NexGen 6×86 k vytvoření nového 64 bitového RISC (Reduced Instruction Set Computer) procesoru AMD K6. Tento procesor již také obsahuje rozšíření MMX podle specifikace společnosti Intel. Procesor K6 však obsahuje větší L1 cache (32 kb + 32 kb). Procesor K6 používá patici Socket 7 - je tedy pinově kompatibilní s procesory Intel Pentium a AMD K5. Více informací o tomto novém procesoru se lze nalézt na stránce společnosti AMD.



9.4 Cyrix M2

  Cyrix M2 je nová generace procesorů 6×86, která navazuje na předchozí procesor Cyrix M1. Tento procesor obsahuje instrukce Pentium Pro a MMX podle specifikace společnosti Intel. Stejně, jako procesor AMD K6, obsahuje 64 kb L1 cache a procesor je určen taktéž do patice Socket 7. Oproti předchozímu procesoru Cyrix M1 má však Cyrix M2 vylepšenou FPU jednotku. Původní FPU jednotka v procesoru Cyrix M1 byla výkonově daleko slabší, než FPU jednotka v procesoru Pentium. Společnost Cyrix plánuje výrobu procesoru M2 na 187.5 MHz a 225 MHz (2.5 x 75 a 3.0 x 75) a 200 MHz (3 x 66).



10. Software pro MMX

  Nejdůležitější otázkou nové technologii MMX je, co a jak rychle na ní poběží. Co se týká stávajících aplikací, které nevyužívají technologii MMX, tak dosažené zrychlení je 10% až 20% (např. Pentium MMX). Bohužel, nové aplikace, které podporují MMX, se na trhu zatím příliš nevyskytují.

  Zrychlení, kterého lze díky MMX dosáhnout, silně závisí na typu aplikace. Nejvíce pak mohou vytěžit z technologie MMX hry a některé specifické grafické aplikace (např. video dekodéry). Společnost Intel zatím uveřejnila krátký seznam produktů, které podporují MMX. Uvedení aplikací na trh také závisí na tom, jak rychle budou dodány vývojářům prostředky pro vývoj aplikací (společnost Microsoft ohlásila nové kompilátory z rodiny Visual, společnost Numega pracuje na vývoji ladícího nástroje SoftIce).



11. Závěr

  Díváme-li se na technologii MMX z hlediska vývoje počítačů, potom je nutné konstatovat, že nepřináší nic nového ani převratného. Společnost Intel tvrdí, že zavedení MMX je největším převratem mezi procesory x86 od dob přechodu z procesoru 80286 na 80386. Podobné rozšíření již dávno společnost Intel implementovala v RISC procesoru i860, kde se tato technologie nazývala PAX (Pixel Adressing Extention). Procesor i860 však na trhu nezaznamenal větší úspěch (přesto, že jeho architektura je poměrně inovativní). Název MMX je pochopitelně marketingově atraktivnější, neboť v sobě zahrnuje zaklínadlo “multimédia”.

  Samotná implementace MMX, kde některé instrukce neindikují přetečení (a někdy se zdá, že je to prezentováno jako vymoženost), práci programátorovi příliš neusnadní. S tím souvisí i další problém MMX - nedostatek nativních aplikací. Nových aplikací, optimalizovaných pro MMX, je zatím velice málo. Opravdu náročné multimediální aplikace ani s tímto novým rozšířením instrukční sady nedosahují požadovaného zrychlení. Proto je i nadále výhodnější provozovat tyto aplikace na pracovních stanicích (Sun, SGI, HP). Jistou naději na změnu současného trendu přináší společností Intel ohlášený, plně 64 bitový procesor Merced. Ten má v sobě obsahovat rozšíření MMX2.

  Zhodnotíme-li technologii MMX, tak nákup procesoru s tímto rozšířením je z hlediska poměru cena / výkon zatím nevýhodnou investicí. Zvláště u procesoru Pentium MMX, kde je třeba nové základní desky, je cena za upgrade počítače příliš vysoká, než aby se vyplatila. Z těchto důvodů možná společnost Intel oznámila, že uvede v blízké době na trh procesor Pentium MMX Overdrive, který bude pinově shodný s procesorem Pentium (tzn. nebude nutná výměna základní desky).

  Další procesor, AMD K6, naproti tomu překonavá v výkonnostních testech své konkurenty (Intel Pentium MMX, Intel Pentium II). Navíc není nutné při jeho instalaci měnit základní desku, stačí vyměnit pouze procesor. Další alternativy zatím k dispozici nejsou - informace o procesoru Cyrix M2 jsou zatím spíše marketingového charakteru. Procesor Pentium II Klamath společnosti Intel zatím o svých výkonech příliš nepřesvědčuje a o jeho nákupu nemá cenu uvažovat.

  I přes snahu společnosti Intel o zvýšení výpočetního výkonu nových procesorů je patrné, že procesory s rozšířením MMX neposkytují tolik očekávané zrychlení, které je nutné pro provoz náročných aplikací z oblasti grafiky, multimédií a Internetu. Procesory MMX jsou proto spíše přínosem pro zábavný průmysl s počítačovými hrami, než pro běžnou práci s náročnými aplikacemi. Pro vývojáře z oblasti CAD, virtuální reality a špičkové grafiky to znamená pouze jediné - nadále musí investovat prostředky do relativně drahých pracovních stanic. Tato investice se však ve výsledku vyplatí. Spolu s vysokým výkonem obdrží i velmi kvalitní softwarové vybavení, které je optimalizováno pro danou platformu.

Poslední modifikace dokumentu: 03.01.1998