3DNow! Technologická revoluce nebo evoluce?

Jako první ji obsahoval procesor K6-2 představený v červnu tohoto roku. Budou ji obsahovat také další nové i připravo...


Jako první ji obsahoval procesor K6-2 představený v červnu tohoto roku. Budou
ji obsahovat také další nové i připravované procesory firmy AMD a pravděpodobně
se přidají i další výrobci. Oč jde? O technologii 3DNow!, nebo též AMD-3D
technologii.
Co nabízí vývojářům softwaru, ale i běžným uživatelům, si můžete přečíst v
tomto článku. Technologie 3DNow! se totiž v minulých dnech dostala pod zvídavou
lupu TestCentra IDG.
Ještě před několika lety...
V procesorovém dávnověku, tedy před deseti a více lety, měly všechny procesory
rodiny x86 různých výrobců v podstatě stejný instrukční repertoár. Samozřejmě,
že se odlišovala instrukční sada procesorů řady 386 a 486, ale čipy značky
Intel i ostatních výrobců tzv. klonových procesorů (AMD, Cyrix, ...) jedné řady
měly instrukce v zásadě shodné.
To bylo na jednu stranu výhodné pro vývojáře, protože věděli, že pokud vytvoří
program pro platformu x86, bude provozovatelný na všech počítačích dané řady
(386, 486 ...) téměř na maximální výkon, využívajíce všech možností procesoru.
Nevýhoda byla především pro výrobce, protože se vývoj zcela podřizoval tomu, co
uvedla na trh firma Intel. S posledními procesory řady 486 přišly větší rozdíly
mezi jednotlivými výrobci, avšak procesory nabízely téměř totéž.
Pentia a jejich klony, tedy AMD K5/K6 a Cyrix 6x86/MX stále ještě uměly stejné
instrukce, ale výsledku se dopracovávaly zcela odlišným způsobem, protože se
zásadně lišila vnitřní architektura procesorů.
Pak přišel Intel s technologií MMX, kterou zakoupili i výrobci ostatních
procesorů, aby mohli zůstat konkurenceschopní. Na tenký led vlastních instrukcí
se až nyní pustilo AMD s dodatkem instrukční sady nazvaným 3DNow!
Co je vlastně 3DNow!?
AMD 3DNow! je skupina instrukcí, která by měla zlepšit a zrychlit generování
složitějších scén, zlepšit realitu generovaných prostředí, vycházejících ze
skutečného světa, zkvalitnit přehrávání videosekvencí a zlepšit také
audiovýstup. Celkově vychází 3DNow! z technologie MMX, kterou dále rozšiřuje o
některé nové instrukce.
Problémem současných procesorů při zpracovávání 3D je především to, že obsahují
pouze jednu jednotku pro zpracování operací v plovoucí desetinné čárce. Na
rozdíl od celočíselných či MMX operací, které už jsou řešeny ve dvou oddělených
proudech paralelně a tudíž rychleji.
Základem popisované technologie 3DNow! je implementace SIMD (single
instruction, multiple data), která umožňuje zpracovávat větší datové bloky
pomocí jediné instrukce. To sice už uměla technika MMX, ale jen s celočíselnými
hodnotami. 3DNow! zvládá SIMD s hodnotamy s plovoucí desetinnou čárkou v
jednoduché přesnosti. Techniku SIMD využívá většina nových instrukcí 3DNow!, ty
ostatní jsou buď servisní, nebo neumožňují zpracovat více hodnot zároveň,
protože už samy o sobě používají dva operátory. Na tomto místě by bylo dobré
odbočit a povědět si něco o registrech 3DNow!.
Registry 3DNow!
To, že rozšíření MMX nemá žádné vlastní registry, ale jen "ukradlo" registry
jednotky FPU, je poměrně známá věc. Proč se tak stalo, je zřejmé šlo o
jednoduchý přechod aplikací, a v případě nutnosti i možnost emulovat MMX s
pomocí přídavných knihoven.
Návrháři 3DNow! se zachovali v podstatě stejně jako autoři MMX a také si
"půjčili" registry FPU. U MMX byl a stále je poněkud problematické přepnutí
mezi jednotkou FPU a MMX, které trvá velmi dlouho (samozřejmě relativně
myšleno, neboť dlouho v procesoru se měří na tiky časovače, trvající jen zlomky
mikrosekund). 3DNow! bylo navrženo s ohledem na tento problém a obsahuje
instrukce pro rychlé přepnutí mezi režimem FPU a režimem 3DNow/ /MMX. Obsahuje
procesor rozšíření 3DNow?
Toto zjištění je pro vývojáře velmi důležité, neboť použití instrukcí 3DNow! v
procesoru, který tuto technologii neobsahuje, způsobí výjimku "Neznámý operační
kód". Detekce 3DNow! je velmi podobná zjištění přítomosti MMX. Nejdříve je
třeba zjistit, zda procesor vůbec podporuje informační instrukci CPUID.
Přítomnost CPUID se testuje tím, zda je zapisovatelný 21. bit registru EFLAGS.
Druhým krokem je s pomocí instrukce CPUID ověřit přítomnost 3DNow!. Tato
technologie na sebe upozorňuje pomocí 31. bitu navraceného funkcí CPUID do
registru EDX. Je-li 31. bit nastaven, má procesor schopnost pracovat s
instrukcemi 3DNow!. Podobně lze pomocí přítomnosti 23. bitu zjistit, zda
procesor podporuje nebo nepodporuje rozšížení MMX.
Nové instrukce
3DNow! poskytuje vývojářům 21 nových instrukcí, které by měly zrychlit
provádění zvláště 3D aplikací. Jak je vidět z vložených tabulek s přehledem
instrukcí, spíše než o vyloženě 3D instrukce jde o rozšíření stávajících
možností FPU jednotky, hlavně směrem ke komplikovanějším výpočtům (všimněte si
možnosti počítat odmocninu) a většinou také s využitím techniky SIMD. Tedy
alespoň tam, kde to jde a kde není číslo s plovoucí desetinnou čárkou větší,
než je délka FPU/MMX/3DNOW registru, tedy 64 bitů.
Podpora 3DNow! aplikacemi
Nejvýznamnějším krokem je podpora 3DNow! v ovladačích DirectX. Pokud tedy máte
K6-2 a chcete zkusit, co dovede, nezbývá než stáhnout nejnovější verzi DirectX,
tedy zatím 6.0, a nainstalovat. Trochu smutnou ironií osudu je to, že do
Windows 98 se podpora 3DNow!, tedy aktualizované DirectX 6.0 nedostaly, a
zůstaly jen DirectX 5.2. Naštěstí lze DirectX 6.0 i v české verzi stáhnout z
Internetu.
Mimo DirectX je k dispozici spousta her, programů, i hardwaru, podporujícího
3DNow!. Z her stojí za zmínku zejména Unreal, využívající možností DirectX 6.0
a Quake II, který je podporován patchem přímo od AMD. Nejzajímavějšími
aplikacemi, které podporují 3DNow!, je přehrávač modulů MP3 Winamp, resp. jeho
plug-in modul MPEG audiodekodér Nitrane, přehrávač DVD Mediamatics DVD Express
nebo IBM ViaVoice 98.
Podporu AMD 3DNow! zařadily do svých ovladačů také hardwarové firmy a proto se
lze setkat s drivery na 3D akcelerátor Voodoo2 pro DirectX 6.0, Glide 2.5,
Glide 3.0. Stejně uvažují i firmy Matrox u karet G100 a G200, nVidia Riva 128,
Riva 129ZX, Riva TNT, S3 Savage3D a Trident TBA. Technologii 3DNow! podporuje
také nová verze API OpenGL od Silicon Graphics.
Závěrem
3DNow! je určitě zajímavá technologie, její budoucnost je však nejistá. Intel
se netají tím, že nehodlá zakoupit licenci na 3DNow! a bude raději prosazovat
vlastní sadu nových instrukcí, které se poprvé objeví v připravovaném procesoru
Katmai. 3DNow! sice už licencovali jiní výrobci konkurenčních procesorů k
Intelu, není ale vůbec jisté, zda to bude stačit. Síla Intelu na poli procesorů
je obrovská.
Na druhou stranu se zdá, že 3DNow! je poměrně dost podporován ze strany
programátorů. Jednoznačným úspěchem pro AMD je určitě to, že podpora 3DNow! je
obsažena v nových ovladačích DirectX, konkrétně DirectDraw a Direct3D.
8 2199 / pen









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.