Grafické karty a grafické akcelerátory (31)

12. 10. 2005
Doba čtení: 12 minut

Sdílet

Ilustrační obrázek
Autor: Depositphotos – stori
Ilustrační obrázek
V dnešní, již předposlední části seriálu si popíšeme grafické možnosti některých historicky významných počítačů, na které v předešlých částech tohoto seriálu nezbylo místo. Z hlediska generování grafiky je jistě velmi zajímavá herní konzole Atari 2600, stejně jako její nástupce Atari 5200. Kromě toho si popíšeme grafické schopnosti počítače Atari Falcon 030 a počítačů Amiga.

Obsah

1. Herní konzole Atari 2600
2. Herní konzole Atari 5200
3. Osmibitový počítač BBC Micro
4. Počítač Atari Falcon 030
5. Grafické akcelerátory určené pro počítače Amiga
6. Obsah poslední části tohoto seriálu

1. Herní konzole Atari 2600

V této kapitole si stručně popíšeme herní konzoli Atari 2600 Video Computer System, později označovanou pouze jako Atari 2600 VCS (pozorný čtenář si jistě všiml, že jsem se dosud herním konzolím vyhýbal, zde je však vhodné udělat výjimku). Tato konzole je zajímavá především svými značně skromnými hardwarovými parametry a také tím, že se u ní poprvé začaly ve velkém množství používat catridge, tj. malé krabičky, v nichž byla paměť EPROM s naprogramovanou hrou nebo jiným programem, popřípadě i s malou pamětí RAM pro uchování dosaženého skóre ve hrách. Před uvedením této konzole na trh byly všechny herní automaty (například i známý atarácký Pong) ve své podstatě jednoúčelové – v jejich pamětech byla uložena jedna nebo více her a to bylo vše. Samozřejmě existovaly i další modely herních konzolí s catridgí, ale počet různých her pro ně stěží přesahoval hodnotu 2 :-).

Teprve s konzolí Atari 2600 se tento trend výrazně změnil a herní konzole se staly víceúčelovými, čemuž také, spolu s relativně nízkou prodejní cenou, odpovídal jejich obchodní úspěch – v roce 1979 bylo těchto konzolí prodáno přes milion kusů, v roce 1980 dva miliony a v roce 1982 dokonce osm milionů (celkově prý bylo prodáno neuvěřitelných 25 milionů kusů). Paradoxní je, že na pozdějším „velkém krachu“ herních konzolí v osmdesátých letech minulého století měly svůj podíl i osmibitové domácí počítače této firmy (spolu s Commodory). Pro upřesnění ještě dodám, že hlavním konkurentem firmy Atari v tomto segmentu trhu byla i později velmi známá firma Nintendo.

GFX 31 - 1

Obrázek 1: Původní verze herní konzole Atari 2600

Tento typ herní konzole, který byl dodáván v několika variantách, obsahoval mikroprocesor MOS 6507, což je cenově výhodnější varianta známého procesoru MOS 6502, který byl později použit v mnoha osmibitových domácích počítačích. Procesor byl taktovaný na 1,19 MHz, frekvence přitom byla zvolena tak, aby se dal jednoduše generovat obraz na televizních obrazovkách, a to jak v systému NTSC, tak i v systému PAL. K mikroprocesoru byla připojena paměť RAM o kapacitě pouhých 128 bytů (ne kilobytů ani megabytů), cartridge obsahovaly paměť EPROM o kapacitě typicky 4 KB spolu s přídavnou RAM o maximální kapacitě 256 bytů. Kromě EPROM na cartridgi a RAM na základní desce i cartridgi (128 + 256 bytů) systém žádnou jinou paměť nepodporoval – obměna pozdějších BIOSů musela být naprogramována přímo ve hře, což však bylo výhodné, protože si každá hra mohla celý systém nastavit přesně do té podoby, v jakém ho tvůrce chtěl mít.

Omezení maximální paměťové kapacity cartridgí vycházelo z toho, že mikroprocesor MOS 6507 měl na svoje pouzdro s osmadvaceti piny vyvedených pouze třináct adresových vodičů, a ne šestnáct jako plná verze MOS 6502, která používala větší pouzdro se čtyřiceti piny. Pomocí třinácti adresových vodičů je možné přistupovat k 8 KB paměti, nejvyšší bit však sloužil k výběru typu paměti (CS-Chip Select), proto měly cartridge pouze dvanáct efektivních adresových bitů. Velmi malá kapacita paměti RAM byla zvolena zejména pro dosažení co nejnižší ceny konzole. Pro velké množství her však kapacita RAM kupodivu dostačovala, i když se z ní celých 80 bytů (tedy více než polovina :-) alokovalo pro primitivní framebuffer.

GFX 31 - 2

Obrázek 2: Herní konzole Atari 2600 určená pro systém PAL

Nás v tomto seriálu zajímá především grafika. I ta je u Atari 2600 pozoruhodná, a troufám si říci, že jedinečná. Atari 2600 používalo pro generování televizního signálu specializovaný obvod, který se nazýval TIA – Television Interface Adaptor. Když si však uvědomíme, že operační paměť RAM měla kapacitu pouze 128 bytů, je jasné, že v ní nemohl být vytvořen plnohodnotný framebuffer. Z tohoto důvodu se v operační paměti alokovalo místo pouze pro jeden obrazový řádek, přičemž se po jeho vykreslení na obrazovku (pomocí obvodu TIA) musela tato „obrazová paměť“ v čase zpětného běhu elektronového paprsku (cca 6,5 µs) rychle přepsat (přepisování mohlo nastat i dřív, program však nikdy nesměl elektronový paprsek předběhnout).

Tato na první pohled nesplnitelná podmínka (viz taktovací frekvence procesoru) však vedla k tomu, že hry vytvořené pro Atari 2600 byly velmi dynamické – vykreslení statického pozadí bylo vlastně stejně programově i rychlostně náročné jako vykreslení pohybujících se objektů, na rozdíl od všech dalších architektur s plným framebufferem, kde statická scéna nemusela být neustále překreslována. Uvádí se, že se v některých hrách vyskytovalo až sto nezávisle se pohybujících objektů. V závislosti na umu programátora bylo možné vytvořit grafiku v rozlišení 160×192 pixelů v šestnácti barvách z palety 256 barev, což je velmi slušné, a to i v porovnání s osmibitovými domácími počítači.

GFX 31 - 3

Obrázek 3: Překreslený pohled na mainboard Atari 2600

Pro tuto herní konzolu vzniklo v poměrně krátkém čase velké množství her (celkově jich má být několik set), které byly na svou dobu velmi kvalitní, což svědčí – i vzhledem ke spartánskému hardwarovému vybavení – o výborných programátorech, kteří z dostupných prostředků dokázali vymačkat maximum. Z kvalitních her můžeme jmenovat například hru Pitfall, která byla později převedena snad na všechny další platformy, a také hru Pole Position, jakousi ikonu firmy Atari. Kromě toho však vzniklo i mnoho nekvalitních her, které se svým dílem zapříčinily o pád trhu s herními konzolemi v polovině osmdesátých let. Mezi takové hry patří E.T., která prý byla absolutně nehratelná a znamenala velký propadák (paradoxní je, že za práva k užití E.T. zaplatilo Atari Spielbergovi několik milionů dolarů).

Pro mnoho lidí je Atari 2600 takovým symbolem ve světě počítačů jako WV Brouk pro automobilisty. Dodnes vznikají různé hry a dema, objevují se „supercartridge“ s kapacitami 16 kB a 32 kB. Tato konzole byla také velmi často kopírována v jiných HW produktech, v jednom materiálu jsem viděl soupis 55 kompatibilních strojů – v počtu klonů tedy může Atari 2600 konkurovat snad jen ZX Spectrum, které bylo v mnoha obměnách okopírováno v prakticky všech socialistických a dokonce i v některých západních zemích.

GFX 31 - 4

Obrázek 4: Slavná hra Pitfall ve verzi pro Atari 2600

GFX 31 - 5

Obrázek 5: Pole Position ve verzi pro Atari 2600

GFX 31 - 6

Obrázek 6: Jedna z nejhnusnějších komerčních her – E.T.

2. Herní konzole Atari 5200

Ideovým pokračovatelem herní konzole Atari 2600 měla být konzole Atari 5200 (5200=2×2600). Tato konzole sice neměla takový úspěch jako její předchůdce, na druhou stranu však určila další vývoj domácích osmibitových počítačů značky Atari. Atari 5200 je totiž ve skutečnosti osmibitový počítač Atari 400, který však byl dodáván v „konzoláckém“ obalu bez klávesnice (tu bylo možné externě připojit). Ostatní parametry odpovídají počítači Atari 400: mikroprocesor MOS 6502C (což je 6502 s vyvedeným signálem HOLD), 16 kB RAM, grafika řízená dvojicí zákaznických obvodů ANTIC a GTIA, zvukový výstup obstarával obvod POKEY. Cartridge mohly obsahovat paměť EPROM s různou kapacitou, typicky se používaly kapacity 16 kB a 32 kB. Grafické schopnosti odpovídají osmibitovým počítačům Atari: čtrnáct základních grafických režimů (plus jejich modifikace přes obvod GTIA), standardní rozlišení 320×192 pixelů, maximální rozlišení cca 352×224 pixelů, až 128 barev, čtyři nezávislé sprity a čtyři nezávislé střely.

GFX 31 - 7

Obrázek 7: Herní konzole Atari 5200

Na bázi Atari 400 vznikla kromě herní konzole Atari 5200 i celá řada osmibitových počítačů této firmy: Atari 800 (což je v podstatě Atari 400 s větší kapacitou RAM), Atari 1200XL (základ celé řady XL, funkční klávesy), Atari 600XL (paměťově ořezaná verze 800XL), Atari 800XL (asi nejprodávanější model s 64 kB RAM), Atari 800XE (800XL v obalu od 130XE) a Atari 130XE (rozšíření paměti na 128 kB RAM spolu s řídicími obvody). Všechny zmíněné počítače využívaly mikroprocesor MOS 6502C a zákaznické obvody ANTIC, GTIA (CTIA), POKEY a u Atari 130XE i obvod FREDDY. Většina her určených pro Atari 5200 byla provozovatelná i na těchto osmibitových počítačích a naopak – mnoho později vzniklých her bylo převedeno i na Atari 5200. Kupodivu při převodech nevadila malá kapacita operační paměti, protože kód mohl zůstat uložený v EPROM na cartridge a operační paměť sloužila hlavně jako framebuffer a úložiště pro proměnné.

3. Osmibitový počítač BBC Micro

Jedním z osmibitových počítačů, na který již v předešlých dílech tohoto seriálu nevybylo místo, je počítač BBC Micro. Tento počítač sice nikdy nebyl v českých zemích příliš rozšířený, ale v místě svého původu – Velké Británii – se to byl velmi populární počítač, který se usadil (spolu s u nás mnohem známějšími počítači ZX-80, ZX-81 a ZX Spectrum) na samotné špičce prodejnosti. BBC Micro měl být určen pro seznámení široké veřejnosti s počítači, z toho důvodu musela být i cena celého řešení nízká. Počáteční jednání při návrhu počítače byla dokonce vedena i s Clivem Sinclairem, z těchto jednání však posléze sešlo a BBC Micro navrhl jiný tým.

Hardwarová konfigurace počítače je poměrně zajímavá, i když je zde vidět nepoměr mezi kapacitou operační paměti a požadavky na video paměť. Abych byl přesnější: BBC Micro používá procesor MOS 6502 taktovaný na 2 MHz (tedy víc než měly počítače Atari i Commodore). Kapacita operační paměti RAM byla u modelu A rovna 16 kB, u modelu B 32 kB. Paměť ROM měla kapacitu 32 kB a obsahovala dodnes populární BBC Basic, který zabral celých 16 kB (to bylo v té době dost velké plýtvání, ostatní Basicy se většinou vešly do 8 kB). Paměť RAM byla taktovaná na 4 MHz, což znamenalo, že při přístupu do paměti nemusel procesor nikdy čekat na data, a to ani v případě přístupu do framebufferu (opět odlišnost od ostatních osmibitových počítačů). Samotná grafika byla řízena zde popsaným čipem Motorola 6845, pomocí něhož bylo možné využívat následující grafické režimy:

Grafické režimy počítače BBC Micro
Rozlišení Počet barev
160×256 4
320×256 2
160×256 16
320×256 4
640×256 2

Jedinou nevýhodou byly velké požadavky na kapacitu framebufferu (resp. Video RAM), takže se většinou používaly grafické režimy využívající „pouze“ 10 kB RAM – i to je však více než u ostatních osmibitových domácích počítačů. Pro BBC Micro vzniklo i mnoho kvalitních her, například legendární Elite – tato oblíbená hra byla později předělána i pro další osmibitové domácí počítače.

4. Počítač Atari Falcon 030

Počítače Atari s mikroprocesory řady Motorola MC68000 jsme si popsali v šesté části tohoto seriálu. Kromě dříve popsaných modelů, tj. řady Atari ST, Atari STe a Atari TT, byl později vytvořen i počítač Atari Falcon 030. Tento počítač, který používal mikroprocesor Motorola MC68030 taktovaný na 16 MHz, ideově navazoval na modely Atari 520 STe a Atari TT 30, tj. jednalo se o domácí počítač, který měl sloužit jako konkurence počítačům Amiga. Podobně jako u řady ST i tento počítač vynikal především hudebními schopnostmi – obsahoval čip Yamaha PSG, dva osmibitové kanály PCM a standardní výstup pro MIDI. Z grafických schopností, na které se v tomto článku zaměřujeme, je Falcon zpětně kompatibilní s řadou ST i STe. Mezi podporované grafické režimy patří:

Podporované kompatibilní grafické režimy počítače Atari Falcon 030
Rozlišení Počet barev
320×200 16
640×200 4
640×400 2
320×480 256
640×480 16

Kromě toho je možné používat i nové grafické režimy:

Nové grafické režimy počítače Atari Falcon 030
Rozlišení Počet barev Poznámka
320×400 32768/65536 NTSC
320×480 32768/65536 PAL
640×400 32768/65536 NTSC
640×480 32768/65536 PAL

Grafiku je možné synchronizovat s externím signálem, protože je podporován genlock (ten chyběl u většiny modelů řady ST). K Falconu byl dodáván operační systém TOS s grafickým prostředím GEM, a to jak v jednoprocesové konfiguraci (single task), tak i multitaskové verze. Zajímavé pro čtenáře tohoto serveru je, že multitasková verze TOSu byla založena na jádře MiNT. Jak již rekurzivní výklad této zkratky („MiNT is NOT TOS“) napovídá, jedná se o systém v mnohém podobný Unixu (později se význam zkratky MiNT změnil na „MiNT is NOW TOS“ :-). MiNT je stále živý systém a je pro něj možné přeložit mnoho GNU aplikací, například textový editor Vim. Kromě toho pro MiNT vzniklo mnoho hudebních programů a také několik kvalitních DTP systémů (některé z nich dnes slaví svůj úspěch na platformě Microsoft Windows).

GFX 31 - 8

Obrázek 8: Atari Falcon 030

5. Grafické akcelerátory určené pro počítače Amiga

Počítače Amiga, které byly popsány v páté části tohoto seriálu, po dlouhou dobu kralovaly v oblasti poloprofesionální počítačové grafiky i zpracování videa (střihu, titulkování apod.). Už původní Original Amiga Chipset nabízel grafické režimy vhodné pro zpracování videa (a na svou dobu také skvělý poměr cena/výkon). Další dvě generace chipsetů, tj. Enhanced Chipset a Advanced Graphics Architecture (AGA), možnosti grafiky dále rozšiřovaly, takže pro Amigu vzniklo mnoho graficky orientovaných programů. S rozšiřováním Amig do oblasti poloprofesionální a profesionální grafiky se však stále častěji ukazovalo, že původní orientace tohoto počítače na zobrazení pomocí televizoru způsobuje problémy při práci na počítačových monitorech. Je to způsobeno odlišným principem vytváření obrazu (prokládaný a neprokládaný režim) a také jinými obrazovými frekvencemi, protože „televizních“ 50 Hz a 60 Hz není při delší práci s počítačem akceptovatelných. Kromě toho byly všechny chipsety orientované na planární grafiku (bitové roviny), zatímco mnoho grafických algoritmů pracuje rychleji s hodnotami jednotlivých pixelů (packed pixel).

Velké rozšíření Amigy v oblasti počítačové grafiky a současně dva výše zmíněné problémy se zobrazováním znamenaly šanci pro výrobce grafických karet a grafických akcelerátorů. Vzniklo tak mnoho doplňků stávajících čipsetů, které vylepšovaly původní grafické režimy tak, aby byly snadno a kvalitně zobrazitelné na monitorech (tyto doplňky byly podle své funkce nazývány flicker-fixers a scan-doublers), další doplňky sloužily k synchronizaci generovaného obrazu s externím signálem (to je mnohem levnější než používat profesionální fázovou synchronizaci). Kromě toho však bylo vyvinuto i množství zcela nových grafických karet a dokonce i grafických akcelerátorů.

Mezi nejznámější grafické karty pro Amigy (se slotem Zorro II) patří zcela jistě Picasso II, což je grafická karta určená pro modely Amiga 2000, Amiga 3000 a Amiga 4000. Tato grafická karta nabízí kromě jiného následující grafické režimy (jedná se pouze o mezní příklady, dalších grafických režimů existuje celá řada):

Grafické režimy karty Picasso II
Rozlišení Počet barev Poznámka
640×480 16 milionů 1 MB VRAM
800×600 16 milionů 2 MB VRAM
1600×1200 16 1 MB VRAM
1600×1200 256 2 MB VRAM

Grafické režimy je možné nastavit buď do kompatibilního módu, ve kterém se používají bitové mapy (bitplany), nebo do režimu packed-pixel, který je podobný například grafickým módům standardu VESA a módu 13 grafické karty VGA. Zejména při zobrazení 256 barev se projevuje vyšší rychlost režimů packed-pixel. Picasso II obsahuje taktéž i blitter, který je možné použít buď pro rychlý scrolling obrazu, nebo pro kopírování bitmap a pixmap. Picasso přinesl několik problémů, zejména díky tomu, že použité řádkové frekvence byly o dost vyšší než řádkové frekvence televizoru (proto se pro tuto kartu televizory nepoužívaly). Po připojení monitoru však naopak nastávaly problémy při použití originálních grafických režimů, protože mnoho monitorů nebylo možné tak nízkou frekvencí synchronizovat (jednalo se o frekvenci cca 15 kHz). Z tohoto důvodu se Picasso používal společně s nějakým scan-doublerem, který vlastně zdvojnásoboval řádkovou frekvenci.

Pro Amigy však existuje či existovalo mnohem více grafických karet, například profesionální 1600GX s grafickým procesorem Weitek 91460, který dokázal vykreslit 100 milionů pixelů za sekundu a bodová frekvence (z níž se odvozuje frekvence snímková a řádková) dosahovala hodnoty 180 MHz, která byla na svou dobu velmi vysoká. Další grafickou kartou je Altais s pravděpodobně nejvyšším „amigáckým“ rozlišením 2400×1280 pixelů a s možností výstupu kompozitního videa i VHS. Populární byly také grafické karty řady CyberVision s grafickým čipem S3 Trio 64, S3 Virge a později dokonce Permedia2, jejichž schopnosti odpovídají schopnostem grafických karet pro PC se stejnými procesory (poměrně málo je známé, že tyto grafické karty obsahovaly i 64bitový blitter a podporu pro vyplňování). Z grafických zařízení určených pro zpracování videa jmenujme například FrameGrabber či ImpactVision.

docker + kubernetes školení s dotací tip

6. Obsah poslední části tohoto seriálu

V následující, již poslední části tohoto seriálu se budeme (kromě krátké rekapitulace) věnovat i možnostem vývoje grafických karet ve stylu odpovídajícím Open Source (tj. HW vytvářený pod podobnou licencí jako GNU SW).

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.