PIOS - Dave Haynie aneb jak Amiga o chipset přišla...Petr Krenželok
Jen tak si brouzdám Internetem, hledím na stránku VIScorpu a říkám si, kde nic
není, tam ani smrt nebere, nicméně pan Murphy by se zřejmě pobavil, protože zdá
se, s písmenem „A“ je to poněkud jinak. Podle nejnovějších zpráv, jež mám v době
psaní tohoto článku k dispozici to vypadá již tak, že naše „kámoška“ je již zase
na prodej. V rozpacích hledám dál a dostávám se ke stránce PIOSu. Po přečtení
několika článků se popadám za hlavu a běduji: „Tak už i Haynie nám z naší Amigy
chce udělat bezduché pécéčko.“ Tohle mu přece musím nějak vymluvit, a tak
popadám klávesnici a míním někomu pořádně otrávit život... Pane Haynie, někde jsem četl prohlášení Carla Sassenratha, že vývoj nového
čipsetu by byl příliš drahý, a taky proč vyvíjet, když existují společnosti, jež
se zabývají výhradně touto činností. Dobře, řekněme, že někdo použije například
S3 čip, ale co věci jako jsou sprity, boby, vícenásobné obrazovky?
Spouštěli jste už někdy AmigaOS na S3 čipu? Opravdu neuvidíte větší rozdíl, jen
ten, že ve skutečnosti vše poběží pořád asi 20 krát rychleji než standardní AA
konfigurace. Koneckonců několik S3 komponent používá i Phase5 ve svých
Cybergraphics kartách. Většina těchto karet má sice jen jeden sprite, to je
pravda, ale pokud máte k dispozici 20-50 krát více paměti, je BOB stejně lepší
myšlenkou. BOB je objektem Blitteru, pokud máte tedy Blitter, máš i BOB. A
nakonec, vlastně ani nepotřebujete Blitter, i CPU může provádět animace.
Vícenásobné obrazovky jsou také možné, navíc ve skutečnosti většina grafických
systémů třetích firem používá jako záložní prostor Fast RAM. Ztrácíte sice
možnost si je nějak postahovat, abyste viděli všechny najednou, ale když už máte
jednou 16-ti či 24 bitovou hloubku, stává se tato vlastnost zbytečnou. Aha, asi jsem se špatně vyjádřil. Těmi vícenásobnými obrazovkami jsem měl
na mysli několik obrazovek, jež si můžete klasickým způsobem stáhnout dolů.
Chcete říct, že vaše nová Amiga (PIOS ONE) bude tuto vlastnost postrádat?
Více obrazovek, to ano, omezených však velikostí systémové paměti, ne Chip RAM.
Ale žádné stahování, jak očekávám. Hlavním důvodem, proč si nemůžete takhle
stáhnout několik obrazovek, není samozřejmě nepřítomnost Copperu, ten je sice
optimálním způsobem, jak to provést, ale ne způsobem jediným. Skutečným
problémem zůstává, že různé obrazovky na jakémkoliv novém grafickém hardware
poběží na zcela odlišných frekvencích, co se týče časování pixelu. Čipy v Amize
vždy používají stejné časování pixelů 35 ns, popřípadě nějaký násobek, takže se
mohou domluvit. Časování pixelů je syntetizováno časově uzavřenou smyčkou, což
samo o sobě zabere pár skenovacích řádků, než se změní frekvence. Tento problém
byl řešen u AAA architektury požadavkem na čtyři oddělené PLL, tedy něco, co by
skutečně fungovalo (včetně double-line bufferu), ale je nepředstavitelně drahé.
Dnes by již nikdo nestavěl čipy tímto způsobem, jednoduše protože už pro to není
žádný důvod. Myslím si, že je užitečné nechat na pozadí běžet nějakou aplikaci,
pracovat klidně na něčem jiném a pouze když je to zapotřebí, stáhnout si
obrazovku v popředí a podívat se, jak se věci mají.
Rychlejší přece je přepnout se na tuto obrazovku přímo. Pokud to uděláte
například ve stylu BeOS, můžete přímo přeskočit na kteroukoliv obrazovku, jež si
zvolíte, namísto je po jedné stahovat. Přístup BeOS byl přímo inspirován
Amigou,takže každá obrazovka může mít různé rozlišení, a pak je zde mřížka
stejně jako třeba u UNIXU (myslím XWINDOWS), která vám umožní přímé přepnutí či
přenos oken. Hlavním důvodem, proč to bylo u Amigy implementováno, bylo vlastně
umožnění míchaní palet, ale pokud je dnes běžně k dispozici 24 bitová hloubka,
jsou všechny barevné kombinace umožněny již přímo na úrovni oken a smysl tohoto
řešení jako takového se vytrácí. Nemám rád počítače PC pro věci jako je scrolling, posun ukazatele myši, PC
je pro mě prostě taková „bezduchá mašina“.
Každý SVGA čip na trhu podporuje plynulý scrolling. Pokud to nevidíte u PC,
viňte z toho operační systém, ne hardware. A co automatická detekce disket v mechanice, autokonfigurace, tohle není
práce čipsetu?
Je to především práce OS a v případě autokonfigurace, protokolu sběrnice. Co se
týče detekce disket, tohle bylo vždycky pouhé softwarové řešení. Zorro sběrnice
má skutečný autokonfig, to ano, oproti tomu všechno, co se stihlo do dneška u
ISA sběrnic implementovat je jen jeho pouhý náznak. Ale PCI, a to je to, oč tu
dnes běží, má mechanismus autokonfigurace velmi podobný jako Zorro, navíc o něco
rychlejší. Velmi dobře vím, že Amiga je Amigou rovněž díky svému silnému OS, ale
nemyslíte si, že bez čipsetu šitého na míru Amiga prostě přestane být Amigou?
Samozřejmě že ne. A pokud si to myslíte, pak vůbec nechápete skutečnou roli
čipsetu. Takových 90% z toho, co dělají tyto čipy, je velmi běžná činnost,
jednoduše se to jen v roce 1985 jevilo jako celkově levnější řešení nacpat vše
do určitých sad, než prostě použít oddělené části. A to je taky to, co PC, Macy
a další PPC stroje dělají dnes. Ve skutečnosti jsou však více integrovány, než
byla kdysi Amiga, ale na odlišných úrovních. Je například zřejmé, že grafika se
mění častěji, než je tomu u disket, sériových či paralelních portů, takže dnes
mají Super I/O čipy, které sdružují všechnu tu běžnou činnost do jedné
samostatné části. Je to určitě lepší řešení, než když je to rozkouskováno do
Pauly, Denisy/Lisy, dvou CIA čipů a dalších přidružených částí. A právě tyto
dnešní čipy nemají DMA pouze pro disketové mechaniky, jak je tomu u Amigy, ale
rovněž pro vysoce výkonnostní paralelní a dokonce i sériové porty, pokud je
ovšem používáte. Je sice pravda, že je to poměrně pomalý DMA, ale jde také o
přístroje té nižší třídy. U vysoce výkonnostních systémů, jako je například SCSI
nebo PCI je tento DMA pořád ještě 5 krát rychlejší než amigácký Zorro III. Dobře, tedy žádny čipset, ale co například Copper a jeho .synchronizace
vykreslování obrazovek?
Dá se říci, že dnes již každý grafický čip na trhu má implementován mechanismus
vertikální zatemňovací periody (VBI), která umožňuje synchronizovat vykreslování
obrazovky, tedy metodu, která funguje stejně jako ta u Copperu, akorát s o něco
větším zatížením procesoru. Ve skutečnosti pokud nemáte AAA Blitter, který může
být programován s plnou řadou instrukcí přímo Copperem, je i u Amigy CPU
zataženo do této činnosti, i když ne tak moc. Ano, některé PC grafické karty
implementují VBI špatně a je velmi těžké je správně synchronizovat. Scala se s
tímto často potýká; některé to dělají správně, některé musí být synchronizovány
použitím časovače, a některé jednoduše nebudou nikdy podporovat plynulou
animaci. Ale přiznejme si, že PC průmysl se pomalu probouzí a začíná se
přizpůsobovat požadavkům skutečných multimédií. No dobře, proč ale například nechat CPU kreslit nějaké čáry?
CPU přece vždy kreslí nějaké čáry! Tak například, co se Amigy týče, se po
celé roky nepoužíval Blitter pro renderování fontů. Fonty jsou obecně vzato
příliš malé, než aby se za to platilo zatížením Blitteru. A pokud se jedná o
pohyb čar nebo bitmap, každá grafická čipová sada na trhu má Blitter, většina z
nich má hardwarovou podporu pro kreslení čar, začínají mít dokonce standardně
implementovány funkce pro 3D rendering a mapování textur. Funguje to úplně
stejným způsobem jako na Amize, akorát 25-50 krát rychleji. Některé čipy dokonce
mohou přímo provádět tyto operace s daty v hlavní paměti stejně tak dobře jako v
paměti grafické. Vypadá to, že dáváte přednost flexibilitě, ale nemyslíte si, že použití
grafických karet je jedním krokem zpět, krokem. do světa mnoha driverů (Wintel)?
Možná Wintelovský model driverů působí jako nesplnitelný sen, ale obecně
svět mnoha driverů, jak říkáte vy, je ve skutečnosti jedním obrovským krokem
vpřed. Jakýkoliv OS, jež je přímo závislý na konkrétní hardwarové implementaci
je primitivní a jako většina primitivních věcí je prostě proklatý. Ve své práci se ale denně potkávám s problémy se vzájemnou
nekompatibilitou různých driverů...
Možná jsou Windows plné chyb. Nebo přinejmenším vaše drivery. Nemůžete přece
srovnávat rozhraní Amigáckých zařízení, která vám poskytují na zařízení
nezávislé diskové jednotky, porty, souborové systémy atd., mnohonásobně lepší
než cokoliv, s čím dodnes Microsoft přišel. Fungují, jasně a jednoduše; pokud
nebude v driveru chyba, je úplně jedno, zdali řadič mého harddisku vyrobil
Commodore, GVP, DKB, Phase5 nebo nějaké dítko na ulici. A grafika se MUSÍ vydat
stejným směrem. Vypadá to již tak, že i při všech dnešních problémech se kolem Amigy přece
jenom něco děje a já věřím, že co se týče vašeho PIOS ONE systému, se vám vše
povede podle vašich představ, takže: good luck (zatím)...
No, konečně můžu dělat alespoň něco. Obecně řečeno, pracuji sám na hardware
pro společnost disponující celkovým kapitálem kolem 1 mil. USD, nemáme tedy ani
zdaleka k dispozici onu 1 miliardu, kterou disponoval bývalý Commodore. I přes
všechna ta omezení si však myslím, že dnes na tom nezáleží až tak moc, jak tomu
bylo do nedávné doby.
Děkuji za rozhovor... Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|