Co přinese PowerPC - Hardware nového tisíciletí

Martin Fedor

Hardware nového tisíciletí

Nové produkty na bázi PowerPC od firmy phase 5 budou k dispozici od poloviny tohoto roku. Budou použity dva typy procesorů: v nižší cenové hladině bude použit procesor MP603e taktovaný na 100MHz a ve vyšší pak MP604 taktovaný opět na 100MHz. Později pak u obou verzí bude taktovací frekvence zvýšena až na 150MHz. Současně s těmito deskami bude vyvíjena ještě výkonnější varianta s plně 64 bitovým procesorem MP604 taktovaným až na 300MHz. Kromě nových procesorů budou desky od phase 5 vybaveny 64 bitovým paměťovým rozšířením a lokální sběrnicí s možností úpravy na PCI. Toto vše je zárukou vysokého výkonu při schopnosti snadného rozšiřování nové Amigy. A cena? Phase 5 uvádí, že cena v závislosti na variantě karty bude od 1000,- do 2000,- DM. Karty budou k dispozici pro tyto typy Amig: A1200, A3000 a A4000.

Otázka software
Nové procesorové karty by však byly vcelku zbytečné bez dostatečné programové podpory. A proto současně s nimi phase 5 vytváří modifikaci operačního systému. Speciální tým programátorů pracuje na překladu exec knihovny do strojového kódu PowerPC. Tento překlad do nativního (přirozeného) kódu zajistí amize ještě výraznější zrychlení práce. Současně s takto upravenou knihovnou bude operační systém obsahovat emulátor procesorů MC680x0, který bude zpracovávat zbývající kód operačního systému (zbylé knihovny a ovladače zařízení). Časem však budou i tyto knihovny převedeny do kódu PowerPC. Ti, kteří nevěří, že emulace bude dostatečně rychlá, musím upozornit, že obdobně byla situace řešena u Applu a nikdo si nikdy nestěžoval na nedostatečnou rychlost systému.

Vývoj běží
A aby té rychlosti bylo ještě více, pracují vývojáři phase 5 na převodu grafického systému CyberGraphX ve verzi 3.0 do nativního PowerPC kódu. V této verzi bude ještě rychleji podporovat operace nejen grafických karet, ale nově i AGA čipů amigy 1200 a 4000. Další verze tohoto systému pak budou vybaveny rutinami pro 3D grafiku a multimédia, což umožní hardwarovou nezávislost pro vývojáře nových moderních grafických multimediálních aplikací. Podle vedení phase 5 právě toto povede k nové popularitě Amigy a k softwarovému boomu na poli seriózních aplikací a her nové generace.
Ale phase 5 prohlašuje: „Nejsme sami!“. Současně na nových verzích oblíbených programů pracují i ostatní velké softwarové firmy: Almathera (Photogenics), Maxon Computer, Propad, Softwood a mnoho dalších. Z tohoto důvodu se předpokládá, že okamžitě s příchodem nových PowerPC karet budou na trhu i adekvátně tomu upravené programy. Pro programátory phase 5 již teď distribuuje pomocné procesorové karty pro vývoj nového softwaru. Strategičtí výrobci pak budou podporováni přímo Motorolou!

PowerPC nebo 68060?
Pokud jste teď zmatení a nevíte jestli si pořídit upgrade s lepším procesorem MC680x0 nebo počkat až na výkonné PowerPC, tak právě pro vás má firma phase 5 skvělou nabídku: ti, kteří zakoupí jakoukoliv 680x0 procesorovou kartu po 1.9. právě od této firmy, dostanou speciální slevu na novou PowerPC kartu (v jaké výši se však neuvádí). Pro majitele karet s 68060 bude sleva pochopitelně výraznější... Máto však jeden háček. O slevu budou moci žádat jen ti, kteří zakoupili kartu přímo u phase 5, autorizovaného distributora nebo registrovaní uživatelé.
A nyní něco bližšího o parametrech těchto procesorů.

PowerPC 603e
- superskalární - schopný provést tři instrukce během jednoho hodinového cyklu v pěti nezávislých prováděcích jednotkách:
- jednotka celočíselné aritmetiky
- jednotka aritmetiky s čísly s plovoucí desetinnou čárkou
- jednotka provádění skoků
- jednotka vyzvedání a ukládáni operandů
- jednotka systémového registru

- power management - procesor je schopný pracovat ve třech módech šetření energie: doze, nap, sleep. Současně je schopný aktivovat a deaktivovat libovolnou prováděcí jednotku tak, aby co nejefektivněji šetřil energií.
- instrukční a datová cache o velikostech 16KB
- instrukční a datová MMU (chránění a virtualizace paměti). Velikost fyzické adresovatelné paměti: 4GB, velikost virtuální paměti: 4 Petabajty (2^52 bitů).
- 32 nebo 64bitová datová a 32bitová adresová sběrnice
- napájecí napětí: 3.3V, čip vyroben 0.5 mikronů statickou CMOS technologií
Podstatný rozdíl mezi typem 603 a 603e je ve větší paměti cache, větším výkonu a nižších výrobních nákladech u typu 603e.

PowerPC 604
Sběrnicově a programově kompatibilní s typy 601 a 603.
Stejné charakteristiky jako 603e, ale navíc:
- možno zpracovat až čtyři instrukce během, jediného hodinového cyklu
- již pouze 64bitová datová sběrnice
- přidána jednotka dynamického předvídání a spekulativního provádění skoků.
PowerPC nabízí dva módy práce: user level (uživatelský) a-supervisor level (obdobní; jako u MC680x0). V módu supervisor jsou zpřístupněny speciální registry (registry cache paměti, správy paměti, kontroly výjimek, a další) a instrukce pracující s těmito registry.

Registry PowerPC 603
General-Purpose Register (GPR) PowerPC obsahuje 32 32-bitových registrů všeobecného použití (v 64bitových verzích PowerPC jsou GP registry 64-bitové).
Floating-Point Registers (FPR) - 32 64-bitových registrů pro aritmetické operace s čísly s plovoucí desetinnou čárkou.
Condition Register (CR) - Příznakový registr známý i z jiných procesorů (32 bitů).
Floating-Point Status and Control Register (FPSCR) - Obsahuje výjimkové bity a kontrolní bity pro povolování výjimek a zaokrouhlování výsledků FP aritmetických operací.
Machine State Register (MSR) Definuje stav procesoru.
Segment Registers (SPR) - Šestnáct 32-bitových segmentových registrů (používané při správě paměti). Tyto registry jsou z důvodu rychlosti organizovány do dvou polí (hlavní pole pro přístup k datům a stínové pole pro přístup k instrukcím).
Special-Purpose Registers (SPR) Počet těchto registrů závisí na typu procesoru. Slouží k mnoha účelům, např. indikování stavu, konfigurace procesoru, provádění speciálních operací.
V uživatelském módu jsou přístupné registry: Link register LR, Count register CTR (používaný jako počitadlo cyklu), Integer exception XER register. V supervisor módu je dále zpřístupněno dalších cca 17 registrů.
Všechny registry jsou 32-bitové (v případě 64-bitových PPC procesorů pak 64-bitové). Některé registry jsou velmi obsáhlé. Například Condition Register CR obsahuje 8 příznakových polí po čtyřech hitech. Pole jsou označovány CR0-CR7.

Instrukční sada PowerPC603
Ačkoliv PowerPC patří mezi RISC procesory (tedy procesory s redukovanou instrukční sadou) obsahuje cca 191 instrukcí, které se dělí do několika tříd:
- integer instructions (aritmetické a logické instrukce s GP registry)
- integer aritmetické operace
- integer porovnávací operace
- integer logické operace
- integer posuvy a rotace

- floating-point instructions (operace s FP registry)
- fp aritmetické operace
- fp operace násobení/přičítání
- fp operace zaokrouhlování a konverze
- fp porovnávací operace
- fp instrukce pro nastavování a čtení stavových a kontrolních registrů

- load/store instructions (načítání a ukládání operandů do paměti)
- integer načítání/ukládání
- integer vícenásobné načítání/ukládání
- fp načítání/ukládání
- instrukce používané ke konstrukci atomických paměťových operací

- flow control instructions (instrukce řízení toku programu)
- instrukce větvení a trap instrukce
- logické instrukce s podmínkovými registry (s příznakovými bity)

- processor control instructions (instrukce řízení stavu procesoru )
- instrukce přesunu z/do SP registrů
- instrukce přesunu z/do MS registru
- instrukce synchronizace

- memory control instructions
- instrukce správy cache paměti (supervisor mód)
- instrukce správy cache paměti (uživatelský mód)
- instrukce pro manipulaci se segmentovými registry
- instrukce pro správu TBL (translation lookaside buffer - používaný pro stránkování paměti)

Všechny instrukce mají stejnou délku 32 bitů, což má velký vliv na zrychlení výběru a provedení instrukce. Shodná délka instrukce umožňuje jednodušší mechanismus naplňování fronty instrukcí, spekulativní provádění a předvídání toku programu.

Organizace dat v paměti
Bajty v paměti jsou indexovány kontinuálně od nuly. Operandy v paměti mohou být délky byte, half word, word, double word (8, 16, 32, 64 bitů). Adresa operandu v paměti je adresou jeho prvního bajtu. Délka operandu je implicitně dána instrukcí (lbz - load byte and zero, lwz load word and zero, apod.). Operandy v paměti nemusí být zarovnány na správných adresách (half word - adresa dělitelná dvěma, word - dělitelná čtyřmi atd.), ale přístup na takto uložená data je pomalejší.
PowerPC je schopen pracovat s operandy, které jsou uloženy v paměti v pořadí little-endian i big-endian (pořadí bajtů, ve kterém jsou ukládány do paměti - viz rozdíly INTEL 80x86 a MC 680x0). Na rychlost přístupu procesoru k operandům v paměti má vliv:
- velikost operandu
- zarovnání operandu
- endian mode (big nebo little)
- překročení hranice cache paměti
- překročení hranice stránky
- překročení hranice BAT (překlad adresy - block address translation )
- překročení hranice segmentu

Adresování paměti
Program přistupuje k paměti přes efektivní (logickou) adresu paměťového místa vypočtenou procesorem v době provádění instrukce čtení/ukládání operandu, skoku. nebo při vyzvednutí další instrukci do fronty instrukcí. Pro výpočet efektivní adresy se používá 33-bitová bezznaménková aritmetika.

Instrukce čtení/ukládání mají tři kategorie generování efektivní adresy:
- nepřímé s registrem a přímým indexem
- nepřímé s registrem a indexem
- nepřímé s registrem

Instrukce větvení pak tyto kategorie generování:
- přímé
- nepřímé s link registrem
- nepřímé s count registrem

Instrukce pro práci s čísly s plovoucí desetinnou čárkou mají tvar fxxx (např. fadd, fsub, fdiv apod.). Obvykle každá aritmetická a logická instrukce má i tvar s přímým operandem (add->addi, subf->subfic, mullw->mulli apod.), Každá instrukce pro čtení/zápis operandu z/do paměti má i tvar s automatickou aktualizací registru (register update - obdobně postinkrementace a predekrementace u MC680x0: lbzx->lbzux, stbx->stbux).
Z výše uvedeného je zřejmé, že procesory PowerPC poskytují velké množství prostředků k efektivnímu programování a provádění programů. Instrukční sada je bohatá a velmi dobrá, velký počet registrů napomáhá snadnějšímu programování a vytváření překladačů vyšších programovacích jazyků. RISC procesory svojí konstrukcí, zejména pak předvídáním skoků, prováděním instrukcí mimo pořadí, paralelním zpracováváním více instrukcí najednou, poskytují skutečně výjimečně vysoký výkon i při nižších taktovacích frekvencích než u CISC procesorů.
V případě použití procesorů řady PowerPC (zejména pak jejich 64 bitové verze 620) se můžeme těšit na velký výkon naší Amigy. Uvidíme, zda se firmě VIScorp podaří ještě vše urychlit, aby nové Amigy nebo alespoň turbokarty byly na trhu co nejdříve.

Výkon procesorů

  SPECint92 SPECfp92
603e/100MHz 120 105
604/100MHz 160 165
604/120MHz 180 180
604/133MHz 200 200

Příklady zápisu některých instrukcí
přímé sčítání: addi rD,rA,SIMM rD=(rA)+SIMM
sčítání: add rD,rA,rB rD=(rA)+(rB)
addo rD,rA,rB rD=(rA)+(rB) (s povolením overflow)
odečítání: subf rD,rA,rB rD=(rA)+(rB)+1
násobení: mullw rD,rA,rB rD=nižších 32bitů (rA)*(rB)
dělení: divw rD,rA,rB
porovnání: cmp crfD,L,rA,rB (porovnává (rA) s (rB) a nastavuje příznakové bity v registru CR v poli definovaném pomocí crfD operandu, operand L určuje jestli se porovnávají 32 nebo 64-bitové operandy - PPC603 operand L zanedbává, pouze 32 bitů)
log.součin: and rA,rS,rB rA=(rS)&(rB)
čtení bajtu: lbz rD,d(rA) EA=(rA)+d, rD=(EA)
(zbylé bajty v registru rD jsou vynulovány)
lbzx rD,rA,rB EA=(rA)+(rB), rD=(EA)
čtení bajtu s aktualizací: lbzux rD,rA,rB EA=(rA)+(rB), rD=(EA), rA=EA
zápis bajtu: stb rS,d(rA) EA=(rA)+d, (EA)=(rS)
stbx rS,rA,rB
stbux rS,rA,rB
(obdobně jsou zapsány instrukce pro práci s operandy typu half word, word, double word)
skoky: b - target addr odskok na adresu vypočtenou z target addr a adresy umístění instrukce
ba - target addr odskok na absolutní adresu
podmíněné skoky: bc BO,BI,taddr BI operand je určen k definování příznakového bitu v CR, podle kterého se bude skákat, taddr je cílová adresa (relativní) BI definuje pomocné podmínky odskoku (always, if cond. is FALSE, if cond. is TRUE a mnoho dalších).



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