Hlavní navigace

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

30. 3. 2005
Doba čtení: 10 minut

Sdílet

Dnešní pokračování seriálu o grafických kartách a grafických akcelerátorech je věnováno počítačům založeným na procesoru Motorola 68xxx. Detailně se budeme zabývat zejména počítači řady Amiga a příště i přímým konkurentem - počítači Atari řady ST.

Obsah

1. Procesor Motorola 68×xx
2. Stručná historie počítačů řady Amiga
   2.1 Amiga 1000

   2.2 Amiga 500
   2.3 Amiga 2000
   2.4 Amiga 3000
   2.5 CDTV
   2.6 Amiga 1200
   2.7 Amiga 4000

3. Original Amiga Chipset
   3.1 Agnes
   3.2 Denise
   3.3 Paula
   3.4 Blitter
   3.5 Copper

4. Enhanced Chip Set
5. Advanced Graphics Architecture
6. Obsah dalšího pokračování

1. Procesor Motorola 68×xx

Mikroprocesory řady Motorola 68×xx sehrály ve vývoji výpočetní techniky velmi významnou roli. Už pouze fakt, že vznik těchto procesorů se datuje od roku 1979 a jejich výroba byla firmou Motorola ukončena teprve v roce 2000, vypovídá o kvalitním a promyšleném návrhu. V současné době jsou procesory této řady vyráběny firmou Hitachi, která tuto možnost (tj. licenci) získala v roce 2001. Již v roce 1982 byl vytvořen základní čip Motorola 68000, jehož taktovací frekvence se pohybovala okolo 8 MHz (z důvodů synchronizace video signálu se v některých počítačích tato frekvence snižovala či naopak zvyšovala).

Tyto mikroprocesory byly již od svého počátku vytvářeny jako třicetidvoubitové, inženýři z Motoroly tak zabránili schizofrenii 16/32, která dodnes vládne v konkurenční procesorové řadě Intel x86. Z cenových a konstrukčních důvodů (bitová šířka sběrnic, použitých paměťových čipů apod.) se samozřejmě některé procesory řady 68×xx navenek chovaly jako šestnáctibitové či dokonce osmibitové, strojové instrukce však stále zůstávaly třicetidvoubitové. Původní procesor Motorola 68000 měl vyvedenou 24bitovou adresovou sběrnici a šestnáctibitovou sběrnici datovou. Levnější varianta Motorola 68008 měla adresovou sběrnici 18bitovou a datovou sběrnici zúženou na pouhých osm bitů. Naopak „široká“ varianta, kterou představuje například Motorola 68020 nebo Motorola 68030 je plně třicetidvoubitová.

Jedná se o registrové procesory, u kterých měl programátor k dispozici osm datových registrů D0-D7 a osm adresových registrůA0-A7, nejvyšší adresový registr se přitom ztotožňoval s ukazatelem na vrchol zásobníku SP. Všechny tyto registry, ke kterým se ještě přidával obligátní stavový registr a ukazatel na právě zpracovávanou instrukci PC, byly třicetidvoubitové, z čehož mimochodem vyplývá jednoduché adresování až 4 GB operační paměti bez nutnosti použití systému segment/offset nebo deskriptor/selektor (68×xx mělo flat adresování, podpora virtuální paměti a stránkování nebylo zprvu podporováno). Instrukční sada byla do velké míry ortogonální, což se v žádném případě nedá říci o instrukční sadě procesorů řady x86. Ortogonální instrukční sada vyžaduje poměrně široký instrukční kód, jehož minimální délka u těchto procesorů činila 16 bitů.

Pro multitaskové systémy byl procesor vybaven osmi úrovněmi přerušení se zadanou prioritou a také dvěma úrovněmi privilegií, které byly rozlišeny na základě jednoho bitu ve stavovém registru (procesory Intel mají čtyři úrovně privilegií, i když se jich ve skutečnosti používá méně).

Není divu, že se po všech stranách kvalitní procesory Motorola 68×xx osazovaly do mnoha typů počítačů, například do zde popisovaných Amig a Atari řady ST, ale i do některých typů počítačů Apple a grafických stanic se systémem Unix (zde bylo zapotřebí vyřešit podporu virtuální paměti). Dokonce se traduje, že firma IBM uvažovala o vytvoření prvního PC na bázi Motoroly. Rozhodnutí, že se nakonec použije horší Intel 8088, padlo kvůli patentování bublinkových pamětí.

Je paradoxem, že se technologie bublinkových pamětí nikdy komerčně neujala, zato Intel tímto obchodem přišel ke své nynější slávě, stejně jako o několik měsíců později Microsoft (jediný, kdo z celé obchodní mašinérie okolo PCček nakonec vycouval, je právě IBM, další dva bývalí „subdodavatelé“ na nich dodnes vydělávají miliardy).

2. Stručná historie počítačů řady Amiga

Počítače řady Amiga od firmy Commodore se staly již v době své největší slávy legendami a některé jejich vlastnosti nejsou na běžných PC dodnes překonány (například synchronizace obrazu s externím videosignálem nebo systém designu celého čipsetu). Pojďme si nyní uvést stručnou historii těchto počítačů (zdaleka nejsou uvedeny všechny modely, pouze ty, které představují určité mezníky ve vývoji těchto počítačů).

2.1 Amiga 1000

Prvním komerčně dostupným počítačem z řady Amiga byla Amiga 1000, která začala být firmou Commodore prodávána v roce 1985. V té době byl největším konkurentem Amig počítač Atari ST (zejména 520ST, později také 1040ST), částečně také Apple. Prodávané modely tohoto počítače byly osazeny 256 KB paměti RAM, která byla teoreticky (omezení OCS) rozšiřitelná až na 16 MB, více paměti nebylo možné osadit, protože použitý procesor Motorola 68000 měl adresovou sběrnici širokou „pouze“ 24 bitů.

V tomto počítači byl vůbec poprvé použit takzvaný OCS – Original Amiga Chipset, který byl následně implementován i v dalších modelech, zejména ve známé Amize 500. OCS představoval velmi sofistikovaný systém několika čipů, které pracovaly relativně nezávisle na CPU a umožňovaly tak vytváření různých grafických i zvukových efektů prakticky „zadarmo“, protože mikroprocesor mohl provádět různé podpůrné výpočty a o zobrazování a zvuk se staraly čipy z OCS samostatně (bližší informace o OCS budou uvedeny v samostatné kapitole).

Amiga 1000

2.2 Amiga 500

Amiga 1000 byla sice po technické stránce velmi vydařeným počítačem, pro větší úspěch na (především) herním trhu však bylo zapotřebí vytvořit diverzifikovanou základnu modelů. Výsledkem těchto snah byla velmi úspěšná Amiga 500, která byla poprvé dodána na trh v roce 1987 a prodávala se až do začátku devadesátých let.

Podobně jako Amiga 1000 i Amiga 500 obsahovala čipset OCS a stejný procesor Motorola 68000 taktovaný na 7,14MHz. V základní konfiguraci byl tento počítač osazen již 512 KB paměti, která byla rozšiřitelná na 16 MB.

Amiga 500

2.3 Amiga 2000

Prakticky současně s Amigou 500 se začala dodávat i Amiga 2000. Zatímco „pětistovka“ představovala low-endovou řadu počítačů, „dvoutisícovka“ byla nabízena jako hi-end model. Tomu odpovídá i její vybavení, zejména použití šestnáctibitové i osmibitové sběrnice ISA, na kterou bylo možné připojit přes přídavné karty pevné disky, jednotky CD-ROM i další rozličná zařízení. Také se zde objevuje Zorro slot pro rozšiřující moduly.

Amiga 2000

2.4 Amiga 3000

Amiga 3000 byla uvedena na trh v roce 1990 jako náhrada za stávající modely vyšší řady Amiga 1000 a Amiga 2000. Místo čipsetu OCS se objevuje nový čipset ECS – Enhanced Chip Set, jehož základní parametry jsou uvedeny ve čtvrté kapitole. Také původní procesor Motorola 68000 byl nahrazen novějším modelem 68030, který se navenek jevil jako plně třicetidvoubitový procesor, což se samozřejmě projevilo na celkové rychlosti počítače.

Amiga 3000

2.5 CDTV

Amiga CDTV byla, podobně jako Amiga 3000, uvedena na trh v roce 1990. Mělo se jednat především o herní systém, čemuž odpovídá jak název výrobku, tak i jeho design v černém provedení; původně byl tento počítač dokonce dodáván bez klávesnice, myši a disketové jednotky. I zde byl, stejně jako u předchozího modelu, použit čipset ECS. Tento počítač byl osazen procesorem Motorola 68000 taktovaným na obligátních 7,14 MHz, kapacita paměti RAM byla 1 MB.

Amiga CDTV

2.6 Amiga 1200

Amiga 1200, která byla na trh uvedena v roce 1992, obsahovala zbrusu nový čipset zvaný AGA-Advanced Graphics Architecture, který bude popsán v páté kapitole. U Amigy 1200 došlo k celé řadě dalších vylepšení. Byl použit procesor Motorola 68020 taktovaný již na 14,28 MHz (přesně dvojnásobná frekvence oproti předešlým modelům), základní kapacita operační paměti se zvýšila na 2 MB a dokonce byl dodáván slot PCMCIA, přes nějž se daly připojovat paměťové karty, modemy, síťové karty apod.

Amiga 1200

2.7 Amiga 4000

Také Amiga 4000 obsahovala, podobně jako výše popisovaný model, čipset AGA. Tento typ počítače měl sloužit jako nástupce Amigy 2000 a Amigy 3000. Jeho celkovým pojetím se firma Commodore snažila s tímto modelem přiblížit ke klasickým počítačům PC, čemuž odpovídá i zabudování IDE řadiče a existence „tower“ verze.

Amiga 4000 v provedení tower

3. Original Amiga Chipset

Original Amiga Chipset, zkráceně též OCS, je použit v počítačích Amiga 1000, Amiga 500, Amiga 2000,Amiga 2500 a Amiga 1500. Jedná se o velmi zajímavý čipset, při jehož návrhu bylo prvotním cílem odlehčení práce centrální procesorové jednotky – CPU. Tuto snahu lze pochopit, protože použité procesory Motorola 68×xx velkou rychlostí neoplývaly (viz uvedené taktovací frekvence).

Z tohoto důvodu pracují použité čipy nezávisle na CPU, který pouze provede inicializaci všech operací a operace následně probíhají samostatně, popřípadě s řízením přes přerušení.

Original Amiga Chipset se skládal z více částí, které budou popsány v následujících podkapitolách.

3.1 Agnes

Čip Agnes je určen především pro řízení přístupu do paměti RAM, nazývané také Chip RAM. Při řízení přístupu jsou použity priority, takže Agnes zde působí podobně jako arbitr u sběrnic. V tomto čipu je vytvořen i Blitter a Copper, jejichž popis je uveden dále.

Původní Agnes dovedla adresovat 512 KB paměti, později se začala používat Fat Agnes, která řídila přístup až k 1 MB RAM. Další rozšíření adresovatelné paměti zvládaly až čipy z později zavedených čipsetů ECS a AGA.

Při přístupu do paměti se čipy a CPU střídaly podle jednotlivých cyklů. Základním rozlišením, na kterém se přístup prováděl, byl sudý a lichý cyklus – odd/even cycle.

3.2 Denise

Denisa se starala především o zobrazování grafiky. Jedná se o velmi dobře navržený čip, který byl dále rozvíjen v následujících dvou čipsetech a některé jeho vlastnosti jsou dodnes nepřekonány – například nezávislý scrolling jednotlivých bitplanů.

Základní vlastností každého grafického čipu jsou podporovaná rozlišení. Denisa se může nacházet ve dvou základních režimech. Prvním je režimlowres, jehož horizontální rozlišení je 320 pixelů, druhým je režim hires s horizontálním rozlišením 640 pixelů. Vertikální rozlišení bylo buď 200 řádků v normě NTSC, nebo 256 řádků v normě PAL. Pomocí prokládaného režimu se však tato rozlišení dala zdvojnásobit, takže se používalo i 400 resp. 512 řádků.

Velmi zajímavé bylo rozdělení obrazové paměti. Denisa pracuje striktně v módu planární bitmapové grafiky, to znamená, že barva jednoho pixelu je získána z obsahu přes sebe ležících bitových rovin (bitplanů). Počet barvových bitových rovin je měnitelný a pohybuje se od jedné do pěti, k dispozici je i šestá bitová rovina určená pro speciální účely. Konfigurace bitových rovin mohla být následující:

  • EHB – extra half-brite: pět bitových rovin je určeno pro specifikaci barvy pixelu (výběr z palety), šestá bitová rovina modifikuje jeho světlost. Počet současně zobrazitelných barev je tedy (bez vlivu Copperu) roven 32/64 (podle chápání barvové palety).
  • HAM – hold and modify: každý šestibitový pixel je rozdělen na dva řídicí bity a čtyři datové bity. Řídicími bity je určeno, zda se datovými bity přímo nastaví barva, nebo se modifikuje jedna ze tří barvových složek RGB. V tomto režimu je tak možné zobrazit až 4096 barev, což bylo neporovnatelné s počítači PC té doby (resp. s jejich grafickými kartami).
  • Dual playfield: jsou použity dvě pixmapy, kde každá se skládá ze tří bitových rovin. V každé pixmapě je možné zobrazit až osm barev.

Kromě toho bylo možné pracovat až s osmi sprity, jejichž horizontální velikost byla rovna šestnácti pixelům a vertikální velikost byla ve své podstatě libovolná. Pixely ve spritech mohly nabývat jedné ze tří barev, „čtvrtou“ barvou byla průhlednost. Spojením dvojice spritů se dosáhlo zvýšení počtu barev na patnáct, šestnáctá hodnota byla opět rezervována pro průhlednost, tj. pro část spritu, přes který prosvítá pozadí. Spritů bylo možné zobrazit i více, pokud se použil režim podobný režimu u osmibitových Commodorů, tj. změna horizontální pozice spritů během přerušení při zpětném běhu elektronového paprsku.

3.3 Paula

Paula byla zodpovědná za generování zvuku. Amigy podporovaly čtyři osmibitové zvukové kanály, kódování zvuku bylo pomocí klasické PCM. Existovala i možnost simulace čtrnáctibitových samplů, maximální frekvence byla rovna 28867 Hz. Výstup byl stereofonní. Vlastnosti tohoto čipu jsou jistě zajímavé, ale nikoli z hlediska grafiky, proto zde popis Pauly ukončíme.

3.4 Blitter

Blitter je vytvořen na čipu Agnes a slouží k blokovému přenosu dat, přičemž nad přenášenými daty mohou být prováděny rozdílné operace, nebo mezi sebou mohou být přenášená data kombinována. K dispozici je několik zdrojů dat (0–3, označované A, B a C) a jeden cíl dat (označovaný D). Blok musí být vždy zarovnaný na šestnáct bitů, což v některých případech způsobuje problémy při práci s bitmapami.

Každý blok dat je charakterizován délkou jednoho řádku, počtem řádků a parametrem stride, který udává rozdíl v adresách mezi dvěma sousedními řádky. Pomocí tohoto parametru je možné přenášet „obdélníkové“ bloky, které nemusejí být v paměti uloženy souvisle. Speciálním režimem při přenosu je aplikace Bresenhamova algoritmu používaného buď pro vykreslení úsečky, nebo pro výpočet obecné lineární funkce.

Pomocí speciálních programovacích technik lze Blitterem vykreslovat i vystínované polynomy.

3.5 Copper

Copper je blok vytvořený na čipu Agnes, podobně jako Blitter. Jedná se prakticky o jednoduchý koprocesor řízený několika instrukcemi, který lze použít k přeprogramování grafického režimu v průběhu zobrazování snímku. Díky tomu je možné použít více grafických režimů na jedné obrazovce nebo změnit barvové registry. Také je možná emulace 12bitového barvového režimu – 4096 barev.

4. Enhanced Chip Set

Enhanced Chip Set – ECS – se poprvé objevil v Amize 3000. Obsahuje čip Super Agnes, jež podporuje adresaci 2 MB RAM, dále čip Super Denise a Blitter, který může přenášet obraz větší než 1024×1024 pixelů. K dispozici jsou také nové grafické režimy: Productivity o rozlišení 640×480 pixelů aSuperHires o rozlišení 1280×200 pixelů resp. 1280×256 pixelů ve čtyřech barvách. Kromě toho je umožněno posouvat sprity i mimo zobrazovanou oblast do okraje obrazovky (border).

5. Advanced Graphics Architecture

Advanced Graphics Architecture – AGA – byl použit u systémů Amiga 1200 a Amiga 4000. Podporuje grafické režimy s 256 barvami (8 bitplanů), osmnáctibitové barvy v HAM režimu a barvovou paletu obsahující 224 barev. Čipy z této čipové sady využívaly při adresaci plný třicetidvoubitový režim, což se projevilo zejména na šířce datové sběrnice. Tento čipset znamenal určité zklamání, protože se obecně očekávalo, že přinese podporu pro grafické režimy typu packed-pixel, kdy se nepoužívají bitplany, ale postupné ukládání barev jednotlivých pixelů po jednotlivých řádcích na obrazovce. Absence packed-pixel grafických módů komplikovala tvorbu interaktivní 3D grafiky, zejména her.

ict ve školství 24

6. Obsah dalšího pokračování

V dalším pokračování tohoto seriálu budou popsány grafické schopnosti počítačů Atari řady ST.

Autor článku

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