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). 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
|