Oznámení

Sbalit
Aktuálně žádná oznámení.

Vývoj PowerPC Architektury a Power ISA v Amigách a AmigaNG

Sbalit
X
Sbalit
  •  

  • Vývoj PowerPC Architektury a Power ISA v Amigách a AmigaNG

    Kdysi dávno jsem dělala porovnání rychlostí AmigaOS i MorphOS počítačů a pro mnoho lidí bylo zajímavé, že staré Powermacy z roku 2005 jsou rychlejší než některé NG Amigy třeba i o deset let novější. Občas se toto téma zmiňuje pořád dokola na všech amigafórech. I mě zajímalo proč tomu tak je, tak jsem se trochu podívala na to, jak jednotlivá CPU v AmigaNG vypadají a proč se výkonově tak liší. No a když už jsem zjistila jak vypadá taková exotika jako je jádro PPC440 (Sam440ep, Sam460ex) nebo dokonce jádro e500v2 (A1222 Tabor), řekla jsem si že by si to zasloužilo udělat systematicky. A z toho postupně vznikal tento článek. Nebude to historie podle letopočtů, ale podle vývoje architektury procesorů.

    Zkratky a neznámé výrazy se znažím vysvětlit v textu a na konci je pak i sekce Vysvětlivky, kde by se mělo najít vše.



    Vývoj PowerPC Architektury a Power ISA v Amigách a AmigaNG

    U zrodu nám známých PPC procesorů stála aliance AIM založená firmami Apple, IBM a Motorola. Důvody byly jasné - procesory Motorola řady 68000 nestačily výkonově na nová Pentia a cesta PowerPC nabízela výkon a perspektivu. Aliance vznikla roku 1991 a trvala přibližně do roku 2004. Tedy poslední CPU vzniklý z této aliance byl G5 (IBM PPC 970).


    Motorola pak převedla výrobu CPU na Freescale Semiconductor (od 2015 NXP) a IBM prodala výrobu průmyslových 32-bitových CPU firmě Applied Micro Circuits Corporation (AMCC). Apple po konci AIM přešel na Intel.


    Po celou tuto dobu IBM paralelně vyvíjela výkonné serverové procesory řady POWER. Těmi se ale až na jednu výjimku zabývat nebudeme.
    Kdo se zajímá detailně o přehled architektur doporučuji odkazy níže. A minimálně všechny verze Power ISA jsou otevřené, takže je možné přečíst si definice architektury. Ale pro teď si s tím raději nemotejte hlavu:




    Pro nás jsou zajímavé o architekturách pouze tyto údaje:
    PowerPC architecture 1.0 - 1.10: desktopové CPU G1 až G4, včetně embedded verzí pro průmyslové použití.
    PowerPC architecture 2.0 - 2.02: serverové CPU IBM POWER1 - POWER3
    Power ISA 2.03 - ...: od G5 VMX a POWER4 až po současné POWER10 a embedded procesory

    Architektura Power ISA obsahuje několik knih (Books). Pro nás jsou důležité hlavně modifikace Knihy III:
    Book III (PowerPC architecture 1.10): CPU pro desktopové počítače.
    Book III-S (Power ISA 2.03-2.07): CPU pro servery.
    Serverové procesory mají rozšíření (extensions) instrukčních sad Vector Multimedia Extension (VMX, nám známý spíše pod názvem AltiVec) či Vector Scalar Extension (VSX).
    Book III-E (Power ISA 2.03-2.07): CPU pro průmyslová použití (embedded).
    Embedded CPU jsou určeny především pro průmyslová a síťová zařízení, IoT, automotive a military. Je u nich kladen důraz na spolehlivost a malou spotřebu/výkon. Obsahují obvykle další Auxiliary Processor Units (APU). Ty mají rozšířené instrukční sady o speciální instrukce (např. DSP - Digital Signal Processing, SPE - Signal Processing Engine).
    Power ISA 3.0-: Opět došlo ke sloučení definic embedded a server CPU, ale pro nás to zatím není příliš zajímavé, žádné Power ISA 3.x CPU AmigaNG nemá. Pokud tedy někdo neportuje AmigaOS například na Talos/Blackbird.

    V článku uvidíte v čem spočívají veškeré potíže s dnešními procesory pro AmigyNG. Klasické desktopové PPC byly naposledy G4 a dnes je nikdo nedělá. Serverové pokračovaly (s jedinou výjimkou) pouze jako řada POWER, ale ty jsou cenově (dost) i výkonově (mnohonásobně) mimo svět Amigy. Takže prakticky všechny novější AmigaNG od Sam440ep dále používají embedded verze procesorů, které nejsou určeny primárně pro desktopové počítače.



    Poznámky k diagramům

    Diagramy jednotlivých procesorů jsou záměrně upraveny do stejné podoby, pro lepší představu o rozdílech v architektuře. Jsou velmi zjednodušené.
    Procesory jsou řazeny podle verze architektury, tedy "modernosti" a ne nutně dle doby vzniku či výkonnosti.
    V diagramech není zobrazena MMU. Ta je obvykle mezi L1 cache na straně jedné a Instruction Unit s Load/Store Unit ma straně druhé. I když má MMU u různých CPU různé vlastnosti, z hlediska diagramu by byla vždy stejná.
    Pokud mají CPU další možnosti které Amiga nevyužívá - jako třeba L2/L3 cache, nejsou v diagramech uvedeny.
    Jsou uvedeny pouze počty hlavních registrů. Nejsou uvedeny stavové a další speciální registry.
    Pokud má procesor více jader, v diagramu je pouze jedno.

    Instruction unit: načítá instrukce (fetch), udržuje je v zásobníku (instruction queue) a distribuuje je (dispatch) příslušným volným výkonným jednotkám. U většiny CPU je součástí součástí Instruction Unit i Branch Prediction. Ta se stará o spekulativní výpočet podmíněných skoků. V diagramu ji ale neuvádím.
    Execution Pipelines: udává počet nezávislých execution units, tedy výkonných jednotek které provádějí instrukce. Každá výkonná jednotka má svoji pipeline (která ale není v diagramu zobrazena). Pipeline jednotek jsou různě dlouhé, například Integer unit mívá krátkou, většinou jen o délce jeden cyklus pro vlastní výpočet, Floating-point či AltiVec pak mohou mít delší. Důležité je, že jednotky a jejich pipelines jsou nezávislé, tedy vykonávají instrukce všechny současně.
    Branch processing unit (BPU): Jednotka, která provádí skoky. V mých diagramech je vždy součástí výkonných jednotek, protože v superskalárním designu má svou vlastní execution pipeline a tedy se podílí na paralelním zpracování. Branch unit někdy i predikuje odkud načíst následující instrukce u podmíněných skoků (u většiny CPU dělá Instruction unit) a počítá návratové body z podprogramů.
    Integer (INT), Floating-point (FPU), AltiVec (VMX): další výkonné jednotky. Pokud jsou nestandatrní, jsou vysvětleny v textu.
    Load/Store Unit (LSU): provádí načítání a ukládání dat mezi registry a pamětí a dále INT operaci sčítání pro výpočet efektivních adres.
    Completion Unit: nepatří mezi výkonné jednotky, ale zajišťuje aby instrukce byly dokončeny ve správném pořadí a příslušné registry uvolněny. Při způsobu provádění instrukcí out-of-order sice CPU pracuje rychleji, ta jednotka která je volná může zpracovávat další instrukci, ale je třeba zabezpečit aby se jednotlivé instrukce "nepředbíhaly". Instrukce které ještě nemůže ukončit, udržuje pomocí Reorder Bufferu.

    Jak srovnávat rychlosti jednotlivých CPU? Jednoduše to nejde. Důležité údaje jsou kolik instrukcí CPU za jeden cyklus načte (fetch), kolik může distribuovat (dispatch) výkonným jednotkám, kolik dokáže ukončit (completion). Důležitý je také počet Execution pipelines a registrů samozřejmě nejvíc frekvence CPU. Naopak, je-li procesor 32 nebo 64-bitový na rychlost vliv nemá, Amiga a to ani AmigaNG systémy výhody 64-bitové architektury příliš využít neumí.
    Pro hrubou orientaci rychlosti CPU slouží údaj MIPS. Jde o rychlost procesoru bez použití FPU, VMX a GPU, tedy například pro provoz systému, čtení z periferií bez DMA, atd. Naopak třeba hry jsou pak dále velmi ovlivněny výkonem FPU a VMX a také rychlostí grafické karty a příslušné sběrnice. Na konci článku jsou pak uvedeny grafy MIPS výkonu jednotlivých CPU.



    Začátek byl u Motoroly 68000

    Začnu samozřejmě u procesorů řady Motorola 68000, které všichni známe velice dobře. Nebudu je proto detailně popisovat, pouze rekapituluji jednotlivé typy:
    68000 (1979) 16-bitová datová sběrnice, interně 32-bitová, 24-bitová adresová sběrnice
    68008 (1982) 8-bitová datová sběrnice, 20-bitová adresová sběrnice
    68010 (1982) podpora Virtuální paměti
    68020 (1984) Plně 32-bitový, s 256 byte cache
    68030 (1987) Integrované MMU
    68040 (1991) CPU již s Harvardskou architekturou a dvěmi 4 KB cache. FPU integrované na čipu. Harvardská architektura je taková, která má oddělené cesty a signály pro data a instrukce. Na rozdíl od původní Von Neumannovy architektury, kde data i instrukce sdílí stejnou paměť a cesty.
    68060 (1994) Superskalární verze 68040 se dvěmi jednotkami INT, jednou FPU a 8 KB cache. Superskalární architektura je taková, kde procesor zpracuje více než jednu instrukci současně, za použití více výkonných jednotek. Superskalární design je důvod, proč je 68060 rychlejší na stejné frekvenci. A je to i důvod, proč je o tolik dražší.



    MC 68040

    Klikni pro plné zobrazení obrázku  Jméno: 00-MC68040.jpg Počet zobrazení: 10 Velikost: 97,7 KB ID: 155101

    Toto je diagram MC68040. Pokud znáte trochu jiné diagramy, nemýlíte se. Diagram byl konvertován do stejné podoby jako u PPC procesorů, pro lepší představu vývoje u jednotlivých CPU.
    Procesor má 4 KB Data a 4 KB Inst cache a 32-bitovou adresovou i datovou sběrnici. Procesor je stejně jako jeho předchůdci skalární, má pouze jednu pipeline, tedy v jednom okamžiku dokáže zpracovat nejvýše jednu instrukci.
    68040 obsahuje na čipu FPU, které je kompatibilní s klasickým MC68881/MC68882 a také už obsahuje Brach prediction - dekóduje obě větve podmínkového skoku.
    Výpočetní INT jednotka v případě potřeby předá instrukce FPU jednotce ke zpracování, ale není schopna současně zpracovat další.



    MC 68060

    Klikni pro plné zobrazení obrázku  Jméno: 00-MC68060.jpg Počet zobrazení: 10 Velikost: 101,9 KB ID: 155102

    Procesor 68060 má již superskalární design a velikost cache je zvýšena na 8 KB. Může zpracovat až dvě instrukce najednou a provést jeden skok. To je ekvivalentní třem výkonným jednotkám u designu PPC procesorů. Obsahuje dvě nezávislé Integer jednotky (INT) a každá má vlastní execution pipeline. Primární INT unit předává dekódované floating-point instrukce do FPU unit. FPU není samostatná výkonná jednotka, je to spíše taková odbočka primární INT.
    Tento procesor je ještě typu in-order execution. To znamená, že instrukce se zpracovávají v pořadí jak jsou po sobě.
    Pokročilejší CPU pak používají out-of-order execution, což znamená, že instrukce se mohou vykonat i v jiném pořadí, podle toho na které výpočtové jednotce je zrovna místo.

    Motorola 68060 byla vyvrcholením řady 68000, ale ještě v průběhu výroby 060 byl vývoj této řady jako neperspektivní ukončen, a Motorola přešla zcela na vývoj PowerPC.



    PPC 603e
    PowerPC Architecture 1.10, G2 Embedded
    BlizzardPPC


    Ačkoli první PPC procesor vyšlý ze spolupráce firem Motorola a IBM byl PPC 601 (G1), v Amigách ho nikde nenajdeme, takže není ani zde.
    Zajímá nás až jeho následovník, PPC 603e (G2). Tento procesor byl zkonstruován opět firmami IBM a Motorola jako low-cost a low-power, pro použítí v noteboocích, nevýkonných PC a zejména v embedded zařízeních jako jsou tiskárny, telekomunikační zařízení, průmyslové regulátory a domácí zařízení.
    My ho známe zejména z akcelerátoru BlizzardPPC pro Amigu 1200, s frekvencemi 160, 200 a 240 MHz. Také jsem jej na své A1200 měla a rozhodně nevýkonný nebyl.

    Klikni pro plné zobrazení obrázku  Jméno: 01-603e.jpg Počet zobrazení: 10 Velikost: 114,4 KB ID: 155103

    PPC 603e je 32-bitový superskalární procesor, schopný načíst tři, distribuovat dvě a ukončit až tři instrukce za takt. Instrukce zpracovává out-of-order pro větší průchodnost, ale ukončuje je in-order. Cache jsou 16 KB, oproti 68060 dvojnásobné.
    Procesor sám má sice 32/64-bitovou datovou sběrnici, ale v akcelerátorech Blizzard byla použita jen jako 32-bitová.

    Má 5 execution pipelines:
    BPU, LSU
    System register unit - kromě instrukcí používajících condition register může také zpravovávat Integer instrukce, a to operace Add a Compare
    INT - zpracuje jednu instrukci za cyklus, a to logické, sčítání/odčítání, násobení, dělení.
    FPU - single a double precision. Single precision operace Multiply-Add umí efektivněji, pouze na jeden průchod, ostatní trvají déle.

    Tento procesor oproti Motorole 68060 přináší výrazné zvýšení maximální frekvence a tím i výkonu a větší míru paralelismu. Nicméně použití pro nás bylo omezené, protože AmigaOS neobsahoval emulátor 68k pro PPC jako MacOSX. PPC procesor byl použit vlastně jako koprocesor a vykonával pouze PPC programy (WarpUp/WarpOS, PowerUp). Doufám že dnes je pro klasický AmigaOS (3.x) již mnohem více PPC aplikací než v době, kdy jsem měla A1200 já.
    I když lze na akcelerátorech Blizzard PPC provozovat MorphOS 1.x či AmigaOS 4, nemyslím si, že by na to výkonově stačil.



    PPC 604e
    PowerPC Architecture 1.10, G2 Server
    CyberstormPPC


    Procesor 604e je opět produktem firem IBM a Motorola. I když patří ke stejné generaci jako 603e byl konstruován jako výkonný CPU pro pracovní stanice a entry-level servery. Má také hardwarovou podporu pro SMP (Symmetric Multiprocessing), kterou ale žádná Amiga nevyužije.
    PowerPC 604e byl použit v akcelerátorech CyberstormPPC pro Amigy 3000 a 4000 a to s frekvencemi 150, 180, 200 a 233 MHz.

    Klikni pro plné zobrazení obrázku  Jméno: 02-604e.jpg Počet zobrazení: 11 Velikost: 115,0 KB ID: 155104

    32-bitový PPC 604e v porovnání se 603e verzí má 64-bitovou datovou sběrnici, větší L1 cache - 32 KB, může načíst a distribuovat čtyři instrukce za takt. Ukončit může všechny instrukce z 16-místného bufferu, které jsou hotové a mají ukončeny všechny předchozí. Obsahuje také tři INT jednotky.

    Má 6 execution pipelines:
    BPU, LSU
    2x INT - single-cycle pro sčítání
    1x INT - multiple cycle pro násobení a dělení
    FPU - single i double operace mají pouze jeden průchod, je tedy rychlejší než FPU u 603e.

    Jde o první PPC procesor použitý v Amigách (CyberstormPPC 1997, BlizzardPPC 1998 ). Použití tohoto CPU je obdobné jako u PPC 603e. Má ale o cca 20% vyšší výkon - téměř 420 MIPS při 233 MHz - a stálo by za to vyzkoušet jak se chová s AmigaOS 4 (MorphOS už od verze 2.0 podporu akcelerátorů Blizzard i Cyberstorm ukončil). Na denní používání například moderního internetového browseru by to určitě nestačilo, ale zajímaly by mě zkušenosti, máte-li je někdo. 420 MIPS je sice relativně málo na moderní OS, nejpomalejší co jsem zatím zkoušela byla Efika s 760 MIPS, ale u ní hlavní omezení nakonec bylo v malé paměti a neexistenci SWAP u MorphOS. Na rychlost se dalo dost dobře zvyknout.



    MPC 5200b
    PowerPC Architecture 1.10, G2 Embedded
    Efika 5200b


    Procesor MPC 5200b je produktem firmy Freescale, a je to SoC (System on Chip) procesor. To znamená, že sám obsahuje funkce, které byly dříve vyhrazeny Northbridgi (řadič paměti a PCI) a Southbridgi (ATA a USB řadič, NIC a další). Kromě této vlastnosti není ovšem MPC 5200b nic jiného než naše známé PPC 603e (nověji e300 core) použité v BlizzarduPPC.

    Klikni pro plné zobrazení obrázku  Jméno: 03-MPC5200b.jpg Počet zobrazení: 12 Velikost: 140,2 KB ID: 155105

    Toto jádro je ovšem taktováno na 400 MHz s výkonem 760 MIPS. To že výkon v MIPS je větší, než by odpovídalo prostému vynásobení frekvence je způsobeno mj. 64-bitovou datovou sběrnicí a rychlejší DDR pamětí.

    Kromě jádra e300 v procesoru MPC5200b najdeme:
    PCI interface: ver 2.2, 32bit, 66MHz, pro jedno zařízení
    ATA 4 řadič pro dvě zařízení, master + slave
    DDR řadič paměti
    DMA řadič Bestcomm, bohužel s hardwarovou chybou
    Ethernet: 100 MBps
    Serial, I2C, SPI, USB1.1, atd... Prostě vše na jednom čipu

    Procesor byl použit u minipočítače Efika 5200b pro MorphOS. Byl to trochu nešťastný počítač. Zrodil se tak trochu z nouze, firma bPlan/Genesi musela ukončit další vývoj platformy Pegasos, protože dle nové EU směrnice ROHS nesplňoval ekologické normy. Přesto ale nebýt souběhu několika chyb a nedodělků, mohl to být i dnes docela použitelný příjemný malý systém.
    Jenže CPU má chybu v DMA řadiči a nelze tedy použít DMA přenosy. Efika má také pouze 128 MB RAM, což je málo pro nové aplikace a paměť nelze rozšířit. A co nestačila pokazit chyba v CPU a design Efiky, dokončil MorphOS. MorphOS totiž podporuje na Efice pouze jedno ATA zařízení (i když Efika sama umí dvě) a také nemá žádný systém virtuální paměti, který by umožnil trochu eliminovat malou paměť. Škoda.

    Více podrobností o testování Efiky zde: http://powerpc.lukysoft.cz/efika-5200b-v-roce-2021



    PPC 750GX
    PowerPC Architecture 1.10, G3 desktop
    AmigaOne SE/XE, Micro A1-C, Pegasos 1/2


    Procesory řady PPC 750 byly konstruovány jako desktopové. Vyráběly je firmy IBM (PPC 7xx) a Motorola (MPC 7xx) a používaly se zejména v různých Apple modelech, (nicméně tyto G3 Macy jsou pro nás nepoužitelné, MorphOS je nepodporuje) a dále pak v tiskárnách, routerech a průmyslových zařízeních. Pro nás mají význam typy 750CX, 750CXe, 750FX a 750GX. AmigaOne SE i Pegasos 1/2 měly 750CX / 750CXe a AmigaOne XE a Micro A1-C pak výkonnější typy 750FX a 750GX.
    Design procesoru vychází z typu 603e a je velmi povedený. Má 32 KB L1 cache, byl doplněn o L2 cache a dále optimalizován podle statistik reálného software, nikoli dle teoretických předpokladů. Tyto procesory jsou rychlejší než serverové typy 604e na stejné frekvenci. Jejich omezením je pouze malá podpora SMP (omezeně jen dvě CPU), slabé FPU s nutností více průchodů double instrukcí (jako v 603e) a nemožnost paralelního zpracování dat SIMD ( jako VMX/AltiVec).
    Nicméně zpočátku ani AmigaOS neměl skoro žádnou podporu pro AltiVec, tak rychlostí naprosto dostačovaly. V Amigách byly taktovány na frekvence 600 MHz (750CX/CXe) a 800 MHz (750FX a 750GX). Lze je i přetaktovat, 750CXe na 700 MHz, 750FX na 900 MHz a 750GX na 1000 MHz.

    Klikni pro plné zobrazení obrázku  Jméno: 04-PPC750GX.jpg Počet zobrazení: 12 Velikost: 122,0 KB ID: 155106

    Diagram CPU je pro všechny typy stejný. Kromě frekvence se liší pouze ve velikosti L2 cache (CX/CXe 256 KB, FX 512 KB, GX 1024 KB).
    Tento 32-bitový superskalární procesor může načíst čtyři instrukce za takt, distribuovat dvě a paralelně zpracovávat šest instrukcí za takt. Používá již techniku přejmenování registrů (register renaming, je to technika, při níž CPU abstrahuje logické registry od fyzických. Používá se zejména k tomu, aby se nemuselo čekat na dokončení instrukce používající registr GPRx pokud následuje instrukce se stejným fyzickým registrem, ale bez datové závislosti).

    Má 6 execution pipelines:
    BPU, LSU
    System register unit - instrukce používající condition register (CR) a Special purpose register (SPR)
    INT1 - pro logické operace, sčítání/odčítání, násobení, dělení, shift. Kromě násobení a dělení zpracuje jednu instrukci za cyklus
    INT2 - pro logické operace, sčítání/odčítání, shift. Zpracuje jednu instrukci za cyklus
    FPU - single a double precision. Single precision operace Multiply-Add umí efektivněji, pouze na jeden průchod, ostatní trvají déle

    Procesory generace G3 byly velkým skokem proti G2. Lepší design (2.3 MIPS/MHz), L2 cache a taktování až na 1 GHz přinesly několikanásobné zrychlení.
    Tyto procesory mám a používám. CPU 750CXe v Pegasu 1 (podrobnosti viz. https://www.amigaportal.cz/node/154597) moc výkonné není, ale to je dáno frekvencí i designem Pegasu 1.
    PPC 750FX mám v Micro A1-C. Musím říci že jsem byla velmi příjemně překvapená výkonem tohoto procesoru (mám jej přetaktovaný na 866 MHz). Moc jsem od něj původně nečekala, ale pro AmigaOS je tato rychlost zcela dostatečná, vše je rychlé, i na náročné hry dostačující. Má stejný výkon v MIPS/MHz jako procesory G4. Omezující je pouze chybějící AltiVec pro filmy a pod. A na Micro A1-C pak hlavně zabudovaná grafická karta staré generace s malou videopamětí. Ale za to procesor nemůže.



    MPC 7457
    PowerPC Architecture 1.10, G4 desktop
    AmigaOne XE, Micro A1-C, Pegasos 2, Powermac G4


    Procesory řady PPC74xx byly konstruovány jako desktopové, pro workstationy i pro entry-level servery a síťová zařízení. Proti předchozí generaci G3 měly 36-bitovou adresovou sběrnici, podporu SMP a L3 cache, lepší FPU a SIMD (VMX/AltiVec). Procesory generace G4 podporovaly nejen původní CPU sběrnici typu 60x (jako je u všech předchozích typů) ale i modernější a rychlejší MPX.
    Procesory G4 vyvíjela a vyráběla pouze firma Motorola. IBM pokračovalo ve zlepšování G3 a vývoji G5.
    Ačkoli na začátku výroby procesory měly náskok před procesory X86, během času došlo ke zrychlení vývoje platformy Intel, Pentium 4 dosáhlo frekvencí 2 GHz a vyrovnalo výkon PPC procesorů. A to předznamenalo pozdější konec spolupráce Applu s Motorolou a IBM.
    Typy MPC 7400, 7410, 7447a, 7450, 7451, 7455 a 7447 najdeme v eMac, iBook, MacMini, PowerBook i PowerMac podporované MorphOSem. V počítačích AmigaOne XE, Micro A1-C a Pegasos 2 se můžeme setkat hlavně s typy MPC 7441, 7451, 7455, 7457 a 7447. Opět se od sebe liší zejména maximální frekvencí a velikostí cache, diagram je tedy pro všechny stejný. V AmigaOne a Micro byly taktovány na 800, resp. 933 MHz a v Pegasu 2 na 1 GHz. Opět je lze taktovat na více MHz. Nejrychlejší Powermac G4 je taktován na 1.42 GHz, Mac Mini na 1.5 GHz a Powerbook G4 na 1.66 GHz.

    Klikni pro plné zobrazení obrázku  Jméno: 05-MPC7447.jpg Počet zobrazení: 12 Velikost: 125,6 KB ID: 155107

    Všechny procesory G4 měly L1 cache 32 KB, lišily se v maximální frekvenci, ve velikosti L2 cache a možnosti L3 cahe. L3 cache ovšem byla off-die, tedy mimo CPU na desce a v žádné moderní Amize nebyla využita (i když v Powermacích ano). Jediné větší odchylky v designu mají MPC 7447A s DFS (Dynamic Frequency Switching) a MPC 7448, který má AltiVec jednotku out-of-order, tedy s větší průchodností a dále vylepšené DFS. Tyto procesory v Amigách NG opět nemáme.

    G4 je 32-bitový superskalární procesor, může načíst čtyři instrukce, distribuovat šest instrukcí a ukončit tři instrukce za takt. Používá přejmenování registrů.
    Má 11 execution pipelines:
    BPU, LSU
    3x INT1: operace kromě násobení a dělení, včetně operací s SPR (které u G3 provádí System Register Unit)
    INT2: všechny operace včetně operací s SPR a CR (které u G3 provádí System Register Unit)
    FPU: single i double precision, rychlejší než u G3, i double-precision operace provádí na jeden průchod jako PPC 604e
    VMX Vector Permute Unit: pack, unpack, merge, splat, permute
    VMX Vector Integer Unit 1: instrukce s krátkou latencí (+, -, max, min, avg, rotate, shift, compare, boolean)
    VMX Vector Integer Unit 2: instrukce s dlouhou latencí ( x, x+, sum)
    VMX Vector FPU single precision

    VMX, neboli AltiVec je SIMD jednotka. To znamená, že jedna operace (instrukce) se provádí nad větším množstvím dat.
    Vector Registry jsou jak název napovídá vektory a mohou obsahovat vždy několik proměnných: 16x char, nebo 8x short, nebo 4x int nebo 4x single-precision float. Instrukce zpracovává vždy celý vektor najednou (tedy 4 až 16 proměnných).
    Jednotka AltiVec je tvořena čtyřmi nezávislými výkonnými jednotkami, instrukce AltiVecu se provádí in-order (kromě MPC 7448 ) a mohou být zpracovány maximálně dvě instrukce za takt ( i když v pipelinech je jich mnohem více v různém stádiu zpracování).
    Ve srovnání s řešením X86 platformy té doby MMX, SSE a SSE2 je AltiVec lépe navržený a rychlejší. Má více vektorových registrů, podporuje větší počet operací a může mít až tři operandy. AltiVec má také velmi silnou Vector Permute Unit, která umí např. výsledný vektor vytvořit ze dvou vstupních vektorů, podle parametrů třetího vektoru v jediném taktu.
    Vektorová jednotka se využívá zejména pro akceleraci zpracování grafických dat. Odtud je také název VMX (Vector Multimedia Extension), nicméně lze ji použít například pro rychlé zpracování síťových dat - DSP (Digital Signal Processing) a podobné úlohy.

    Procesory G4 jsou hrubým výkonem stejné jako G3 (2.3 MIPS/MHz). Překonávají je ale maximální frekvencí (až 1.7 GHz), rychlejším FPU, hardwarově podporovaným SMP a zejména přítomností VMX.
    Procesor MPC7447 mám ve svém Pegasu 2, taktovaný na 1.33 GHz a je výkonově naprosto perfektní. HD video bez framedropů sice nepřehraje, ale na vše ostatní stačí. Vlastně používám Pegasos 2 raději než rychlejší Powermac G5. Jak všude říkám, Pegasos 2 je moje srdeční záležitost, má první AmigaNG. A vlastně způsobil že jsem dlouho používala pouze MorphOS. To později změnila až AmigaOne X1000.



    PPC 970FX
    PowerPC Architecture 2.01 (+2.03 VMX), G5 server
    Powermac G5, iMac G5


    Procesory řady PPC 970 jsou konstruovány jako serverové, pro workstationy a entry-level servery a až čtyřjádrový SMP. Design vychází z POWER4 core a je doplněn VMX SIMD jednotkou. Má sice méně MIPS/MHz než G4, ale lze jej taktovat na výrazně vyšší frekvence.
    Procesory vyrábělo IBM ve třech verzích: 970, vylepšenou 970FX a 970MP (dualcore FX). Spotřeba přesáhla 150 W u 970MP na 2.5 GHz. CPU byly osazeny v nejvýkonnějších Powermacích G5 a dnes na nich lze provozovat MorphOS.

    Klikni pro plné zobrazení obrázku  Jméno: 06-PPC970FX.jpg Počet zobrazení: 13 Velikost: 123,3 KB ID: 155108

    Jde o superskalární 64-bitový procesor, který nativně podporuje i 32-bitový kód. Instrukce provádí out-of-oder, ukončuje in-order. Může načíst čtyři instrukce za takt, distribuovat a ukončit pět instrukcí za takt. Používá přejmenování registrů.

    Má 10 execution pipelines:
    BPU
    CRU (condition register unit)
    2x LSU
    2x FXU (Fixed point unit)
    2x FPU
    VMX PERM
    VMX ALU: tato v sobě obsahuje VMX Simple INT, VMX Complex INT, VMX FPU

    Procesory G5 jsou poslední které vyšly ze spolupráce aliance AIM. Hlavním důvodem bylo výkonové zaostávání PPC platformy. Slibované 3 GHz verze byly v nedohlednu, procesory držely těsný náskok před Intelem jen díky přetaktování (až na 2.7 GHz z projektovaných 2.0 GHz) za cenu vysoké spotřeby, nedařilo se snížit spotřebu ani pro notebooky a Apple ukončila spolupráci a přešla na platformu Intel. IBM pokračovalo ve vývoji řady POWER a Freescale/NXP pokračuje v (občasném) vylepšení embedded procesorů. Dá se říci, že od té doby neexistoval řádný desktopový/workstation PPC procesor s lidskou cenou.

    Procesory G5 mají proti G4 horší hrubý výkon 1.9 MIPS/MHz. Ale mají tři výhody: hardwarovou podporu pro 4x SMP, 64-bitovou architekturu a schopnost o hodně vyšších frekvencí (až 2.7 GHz). Takže by se dalo říci že design není tak povedený a vše se dohoní frekvencí. Ale v té době se to tak dělalo. Konkurence X86 té doby na tom byla v tomto směru podobně. Ne tak efektivní, ale velký maximální výkon, tedy něco jako závodní auto.
    Pro AmigaNG (v tomto případě MorphOS) zatím nemá G5 takový význam jaký by mohlo mít. Zatím nevyužijeme ani 64-bitovou architekturu a ani více jader. Mám sice doma iMac G5 2.1 GHz (PPC 970FX) a Powermac G5 Quad 2.5 GHz (2x PPC 970MP), ale používám je mnohem méně než Pegasos 2 či AmigaOne X1000.
    Přesto Powermacy s procesory G5 patří společně s AmigaOne X5000 k nejvýkonnějším AmigámNG.



    AMCC 440ep
    Power ISA 2.03, Book III-E, Embedded
    Sam440ep, Sam440ep-flex


    Procesor AMCC 440ep vyráběla firma Applied Micro Circuits Corporation a jde o SOC, postavený na jádře PPC 440 od IBM. Je to typické embedded core navržené pro průmyslové regulátory a síťová zařízení, je bez VMX a dokonce bez FPU, obsahuje ale APU (Auxiliary Processor Unit), pomocí které je funkcionalita FPU na čipu doplněna. Procesor AMCC 440ep byl navržen pro aplikace typu kamery, RAID řadiče, SAN, iSCSI, routery, tiskárny, set-top boxy, BTS. Má velmi nízkou spotřebu, 3W při 533MHz, což by odpovídalo cca 5.5 W při 733 MHz. Tedy ve srovnání se spotřebou G5 či dokonce s TDP moderních AMD/Intel CPU je to opravdu řádově jinde.
    Protože je toto jádro opravdu hodně "embedded", tedy dost se liší od všech předchozích, zkusím jej více rozepsat.

    Klikni pro plné zobrazení obrázku  Jméno: 07-AMCC440ep.jpg Počet zobrazení: 12 Velikost: 143,8 KB ID: 155110

    Procesor AMCC 440ep je superskalární, 32-bitový, načte a zpracuje dvě instrukce za takt. Instrukce zpracovává i ukončuje out-of order. Nemá tedy Completion unit s reorder bufferem. Konzistence výsledku je zajištěna jinými mechanismy (jako přejmenování registrů a další). Dále nemá žádnou L2 cache.

    Jádro samotné má pouze 32 GPR registrů (ne FPU registry) a 5 execution pipelines - čtyři běžné a jednu speciální:
    BPU: používá PowerPC static branch prediction, vylepšený o dynamickou predikci - zjednodušeně řečeno staticky predikované skoky jsou během zpracování dalších instrukcí "opravovány"
    Load Store Pipe: naše známé LSU
    Simple Integer Pipe: sčítání, odčítání, logické funkce, porovnání, rotace
    Complex Integer Pipe: Totéž co Simple Integer Pipe, a navíc počítání skoků, násobení, dělení, instrukce se spec. registry, MAC instrukce

    Zatím jediná zvláštnost byly MAC instrukce.
    MAC jednotka je APU (Auxiliary Processor Unit), která je součástí Complex Integer Pipe a přidává k PPC instrukčnímu setu 24 nových MAC instrukcí. Instrukce jsou typu multiply-accumulate, 16bit x 16bit + 32bit -> 32bit a všechny jsou velmi rychlé, mají dobu zpracování jeden takt. Jsou velmi efektivní například pro DSP. Jestli je Sam440ep umí využít, to nevím.

    Kromě této má PPC 440 core ještě další univerzální APU:
    Ta slouží k připojení hw maker (koprocesorů) jako FPU, multimedia engine, DSP, případně dalších speciálních. Tato makra mohou využívat standatrtní sadu registrů jádra, nebo používat vlastní sady a mají přístup k ostatním výkonným jednotkám.
    Tato APU pracuje paralelně s ostatními výkonnými jednotkami a je to tedy další výkonná jednotka. Nicméně všechny výkonné jednotky se musí podělit o dvě distribuované instrukce za cyklus.

    To vše tedy obsahuje jádro PPC 440. Dále v procesoru AMCC 440ep máme:
    FPU: double-presision, instrukce na jeden cyklus, připojeno jako koprocesor na APU. Má vlastní sadu 32 64-bitových floating-point registrů. Nikde jsem nenašla jestli využívá MAC instrukce, ale zřejmě ne. Výkon FPU je 2 MFlops/MHz.
    PCI interface: v.2.2, 32 bit, 66 MHz, arbiter pro šest zařízení.
    DDR řadič paměti
    2x DMA řadič, 4 kanály
    Ethernet: 2x 100 MBps
    Serial, I2C, SPI, USB 2.0, atd... Prostě vše na jednom čipu. Jako u Efiky, ale mnohem funkčnější.

    Vidíte že tyto procesory mají velmi subtilní design. Pouze polovinu výkonných jednotek ve srovnání s G4 či G5, žádnou L2 cache ani VMX. Vše je děláno na malou spotřebu a přesto mají hrubý výkon 2.0 MIPS/MHz, tedy více než G5. Vyráběly se ve frekvencích 333 až 667 MHz. Sam 440ep má 533, 600 nebo 667 MHz. Sam440ep-flex byl v základní verzí 667 MHz a ve dvou přetaktovaných verzích 733 a 800 MHz.
    Já mám zkušenosti se Sam440ep-flex 733 MHz a to velmi dobré. Je sice znát, že CPU nedosahuje ani zdaleka výkonu G4 Pegase 2 či G3 Micro A1-C, ale práce s ním je velmi příjemná. A hlavně, Sam440ep-flex je nejstarší AmigaNG, která umí používat moderní PCIe karty a tedy na něm lze hrát i OpenGL v.2+/OGLES hry, což přesahuje schopnosti Micro i Pegase. (viz: https://www.amigaportal.cz/node/149415). Tady se projevuje výhoda modernějšího designu, ve 3D hrách je Sam440ep-flex velmi často rychlejší než Micro A1-C, kdežto v SDL a tudíž i v DOSBox či E-UAE výrazně zaostává.



    AMCC 460ex
    Power ISA 2.03, Book III-E, Embedded
    Sam460ex / cr / le


    Jde opět o SOC, postavený firmou AMCC na jádře PPC 440 od IBM, tedy stejném jako jeho předchůdce AMCC 440ep. Také bych podle názvu čekala, že uvnitř bude výkonnější jádro PPC 460, ale nikoli. Je to také embebbed procesor pro stejné určení, tedy RAID řadiče, SAN, iSCSI, routry, switche, tiskárny, set-top boxy. Opět velmi nízká spotřeba 5 W při 1 GHz.

    Klikni pro plné zobrazení obrázku  Jméno: 08-AMCC460ex.jpg Počet zobrazení: 11 Velikost: 153,6 KB ID: 155112

    Procesor obsahuje tutéž APU+FPU jako AMCC440ep a liší se pouze ve třech věcech, ale dosti důležitých.
    AMCC 460ex má 256 KB L2 cache, je taktován z výroby na 1 GHz (při použití v Sam460 je přetaktován na 1.1-1.15 GHz) a obsahuje modernější SOC periferie:
    DDR2 řadič paměti
    2x DMA řadič, 4 kanály a 1 kanál
    PCIe interface v.1.1: 4 linky a 1 linka
    PCI interface: v.2.3, 32 bit, 66 MHz, arbiter pro 4 zařízení
    Ethernet: 2x 1 GbE
    SATA2 řadič (sdílí připojení s PCIe x1, takže ho většina uživatelů nepoužívá)
    Security Engine
    Serial, I2C, SPI, USB2.0, atd...

    S tímto CPU v Sam460ex/cr/le zatím zkušenosti nemám, ale podle parametrů bude ve všech ohledech lepší než G3. A samozřejmě velkou výhodu postytuje moderní sběrnice PCIe a možnost použití moderních PCIe grafických karet. Předpokládám že celková výkonnost systému bude lepší než u Pegase 2 s G4. Ten má sice VMX a více než dvojnásobek výkonných jednotek, ale ostatní výhody má Sam460.



    QorIQ P1022
    Power ISA 2.03, Book III-E, Embedded
    A1222 Tabor


    QorIQ P1022 je produkt firmy NXP a jde o embedded procesor určený pro networking s nízkou spotřebou 5W.
    Opět je hodně "embedded", tak ho rozepíši podrobněji.
    Jde o SOC se dvěma jádry e500v2. Toto jádro vyvinula firma Freescale, následník Motoroly. NXP ho pak dále vyvíjí.

    Klikni pro plné zobrazení obrázku  Jméno: 09-QorIQP1022.jpg Počet zobrazení: 12 Velikost: 162,0 KB ID: 155113

    Jádro e500v2 je 32-bitové, ale umí zpracovávat i některé 64-bitové instukce. Má tři 32-bitové datové sběrnice, dvě pro čtení a jednu pro zápis. Jádro neobsahuje klasické PPC FPU ani AltiVec, ale má SIMD a APU.
    Je superskalární, instrukce provádí out-of-oder, ukončuje in-order. Může načíst čtyři instrukce za takt, distribuovat tři a ukončit dvě instrukce za takt. Používá přejmenování registrů.

    Obsahuje pět standartních pipelines a šest speciálních (APU):
    BPU, LSU
    Simple Instruction Unit 1: sčítání, odčítání, shift, rotace, logické operace, 64-bitové SPE operace
    Simple Instruction Unit 2: jako Unit 1 bez SPE operací
    Multiple Cycle Instruction Unit: INT násobení, floating-point sčítání a odečítání, SPE násobení, SPE násobení zlomků, a embedded skalární a vektorové floating-point násobení provádí na jeden průchod. Dělení pak na více průchodů.

    APU:
    Integer select APU: obsahuje jedinou instrukci, která eliminuje v SIMD výpočtech segmenty podmíněných skoků. Je to docela zajímavé, ale bohužel to zde na pár řádcích nedokážu vysvětlit.
    Performance monitor APU: to není nic zvláštního, je to alternativní performance monitoring, pro nás nepřináší nic nového.
    Signal processing engine (SPE) APU: jde o SIMD, používá 64-bitové vektory se dvěmi 32-bitovými operandy. SPE se běžně využívá pro DSP a je to celkem silná věc.
    Embedded scalar single-precision floating-point APU: single-precision FPU jednotka, pouze nemá standartní PPC FPU instrukce.
    Embedded vector single-precision floating-point APU: totéž, ale SIMD s vektorovými operandy.
    Embedded scalar double-precision floating-point APU: double-precision FPU jednotka, opět nemá standartní PPC FPU instrukce.

    Procesor má jen jednu sadu 64-bitových registrů, které jsou využívány buď jako standartní 32-bitové general-purpose registry, nebo jako 64-bitové pro SPE APU a FPU APU.
    APU jádra e500v2 se liší od FPU APU u jádra PPC 440. FPU u PPC 440 bylo hw makro s vlastními registry připojené k jádru - tedy z hlediska programu vlastně identické jako FPU na čipu. Tato APU jsou ale vlastně něco jako API na úrovni instrukcí. APU jádra e500v2 využívají standartní registry a výkonné jednotky jádra. A opět, APU nejsou samostatné exekuční jednotky a musí se dělit o tři distribuované instrukce. Takže tento CPU, rep. jádro e500v2 je zatím nejpodivnější, tedy nejvíce embedded.

    Protože P1022 je SOC, poskytuje i další funkcionality:
    DDR3 řadič paměti
    dva čtyřkanálové DMA řadiče
    PCIe x4
    SATA2 řadič pro dvě zařízení
    Ethernet: 2x 1 Gbps
    SEC engine: ARC4, 3DES, AES, RSA/ECC, RNG, single-pass SSL/TLS, XOR akcelerace (pro RAID)
    LCD Display interface: 1280 x 1024P / 24bit @ 60 Hz, HDMI 1.3
    USB 2.0, I2C, eSPI,...

    Tento procesor je velmi zajímavý a potenciálně dosti výkonný (na Amigu) - 2.4 MIPS/MHz při frekvenci 1.2 GHz. To že nemá standartní PPC FPU znamená, že se běžný kód s PPC FPU instrukcemi bude muset řešit pomocí illegal výjímky a tudíž bude pomalejší. Ale pokud bude kód přeložený se SPE a Embedded FPU optimalizacemi, bude velmi rychlý. Předpokládám že rychlost bude někde mezi CPU s FPU a CPU s FPU a VMX.
    Uvidíme, možná že SPE se dá teoreticky softwarově implementovat jako AltiVec-very-light. No, i když VMX permutační jednotka by se nahrazovala težko, režie by asi byla o hodně větší než urychlení SIMD, a určitě by byl problém s VMX registry, musely by se řešit v rámci L1 cache. A navíc skutečné registry jsou zde jen 64-bitové, takže by emulované VMX operace musely být alespoň na dva průchody. No tak nic, to jsem se jen tak zamyslela.
    Docela se těším na testování, jestli někdy bude Tabor A1222 k dispozici. Myslím že by mohl být o dost lepší než Sam460ex.



    PA6T-1682M Klikni pro plné zobrazení obrázku  Jméno: 10a-Pasemilogo.jpg Počet zobrazení: 18 Velikost: 7,2 KB ID: 155114
    Power ISA 2.04, Book III-S, Server
    AmigaOne X1000


    Jádro PA6T vyráběla firma P.A.Semi, patří do procesorů řady PWRficient je to první jádro Power ISA, které bylo za deset let navrženo od nuly mimo alianci AIM.
    Cílem designu bylo vytvořit procesor pro workstation/low-end server s výkonem na úrovni jádra PPC 970 ale se spotřebou 7W/jádro při 2.0 GHz. Celý CPU se dvěma jádry a včetně integrovaných Northbridge periferií má pak spotřebu 13-25 W. Použití čipů bylo pro síťová zařízení, RAIDy a zejména pro military aplikace.

    Klikni pro plné zobrazení obrázku  Jméno: 10-PA6T-1682M.jpg Počet zobrazení: 15 Velikost: 146,8 KB ID: 155115

    Konstrukce je velmi zajímavá, ke snížení spotřeby používá triky jako efektivní spekulace (vyhnout se včas špatným predikcím), clock gating, menší počet efektivnějších výkonných jednotek a přesouvání mezi pipelinami. Také má některé CISC instrukce a používá přejmenování registrů.
    Procesor 1682M je 64-bitový, nativně podporuje 32-bitový kód, je superskalární, dvoujádrový, s FPU a SIMD (VMX), prováděním out-of-order a ukončením in-order. Jádra jsou propojeny s L2 cache a SOC periferiemi Conexium sběrnicí, která je velmi rychlá - až 64 GB/s.

    Jádro PA6T načte čtyři, distribuuje tři a dokončí až čtyři instrukce za takt. Má šest execution pipelines:
    LSU
    INT
    BPU/INT
    : Vylepšená predikce a opravy za běhu, zpracovává také INT instrukce
    Fronty pro INT a BPU si mohou vyměňovat instrukce, když je na druhé jednotce volno
    FPU: double precision, umí i multiple-accumulate operace
    Simple VMX: Permute a jednoduché INT
    Complex VMX: complex INT a float
    Fronty FPU/VMX Complex a VMX Complex/VMX Simple si také mohou vyměňovat instrukce

    Tento procesor není přímo SOC, ale kombinuje na čipu funkcionalitu CPU a Northbridge, tak jak to mají dnešní moderní CPU Intel/AMD. Připojené I/O periferie jsou řešeny unikátním způsobem. Zatímco většina CPU má I/O zařízení pevně daná (např. 2x GbE,16x PCIe), PA6T-1682M je má konfigurovatelná při startu BIOSU (u X1000 CFE). To poskytuje procesoru univerzální použití, router bude mít jinou konfiguraci než server pro military s tímtéž CPU.
    Systém se skládá z ENVOY I/O a offload engines (něco jako pomocných akcelerátorů či řadičů) a má 24 SERDES linek. Jedna SERDES linka odpovídá rychlostí jedné PCIe lince. CPU má v sobě akcelerátory pro 8x PCIe root, 2x 10 GbE, 4x 1 GbE. AmigaOne X1000 má pak periferie nakonfigurovány takto:

    PCIe 1x 16 linek (nebo 2 sloty 2x 8 linek)
    PCIe 3x 1 linka (z toho jedna je součást Xorro slotu)
    1x Ethernet 1 GbE
    4 SERDES kanály k Southbridgi (X1000 má Southbridge AMD SB600)
    Dohromady je využito všech 24 SERDES linek (16+3+1+4)

    Konfigurace SERDES pro router by mohla se stejným CPU vypadat třeba takto:
    2x 10 GbE (6+6 SERDES), 4x 1 GbE(4), expanze PCIe x8 (8 ).

    Další na čipu obsažené periferie:
    dva DDR2 řadiče paměti
    DMA 64 kanálů
    SEC engine: CRC, XOR, MD5, SHA1, SHA256, AES, 3DES
    RAID 5/6 offload
    TCP/IP offload
    Serial, SPI

    PA6T je skvělé jádro s malou spotřebou a hrubým výkonem 2.2 MIPS/MHz/core. Procesor PA6T-1682M 1.8 GHz výkonem odpovídá PPC 970MP na 2.1 GHz. A v plánu byly až šestnáctijádrové 2 GHz verze.
    Firmu P.A. Semi ale koupila v roce 2008 společnost Apple a ta ukončila vývoj procesorů architektury PWRficient a věnovala se vývoji vlastních procesorů. Ještě deset let poté se čipy vyráběly, protože procesory se používají ve vojenských aplikacích. Takže Apple byl už podruhé u toho, když skončila část PPC éry. Tentokrát to mrzí o to více, že ukončení výroby nebylo z důvodu technického zaostávání, ale naopak perspektivního designu. To byla pak také příčina ukončení výroby AmigaOne X1000. Ceny zbylých procesorů vylétly mnohonásobně vzhůru, a A-Eon pak z nutnosti udělal náhradu AmigaOne X5000 s CPU P5020.
    Tento procesor mám doma samozřejmě v AmigaOne X1000 - byla to má druhá AmigaNG a první s AmigaOSem. Dlouhou dobu jsem měla pouze Pegasos 2 s MorphOSem. X1000 je super - rychlá, stabilní, přehraje HD videa i bez podpory dekódování v GPU a všechny moderní OGLES hry zvládá v pohodě. Sice nemám AmigaOne X5000, ale dovolím si tvrdit, že procesor v X1000 je v několika ohledech lepší - má SIMD a více PCIe linek. Můžeme jen litovat, že nedošlo k dalšímu vývoji jádra PA6T a dalších plánovaných procesorů této řady.
    A také musím zmínit, že X1000 byla příčinou, proč jsem se po dlouhé době s MorphOSem začala věnovat i AmigaOSu a pořídila si další starší AmigyNG.



    QorIQ P5020
    Power ISA 2.06, Book III-E, Embedded
    AmigaOne X5000


    QorIQ P5020 je produkt firmy NXP a jde o embedded procesor určený pro networking, SAN a military. Jde opět o SOC.

    Klikni pro plné zobrazení obrázku  Jméno: 11-OorIQ-P5020.jpg Počet zobrazení: 14 Velikost: 149,0 KB ID: 155116

    Procesor má dvě jádra e5500, je superskalární, 64-bitový, nativně podporuje 32-bitový kód, instrukce provádí out-of-order, končuje in-order, má hardwarovou podporu virtualizace KVM a používá přejmenování registrů. Bohužel nemá SIMD.

    Jádro e5500 je podstaným vylepšením jádra e500, a umí načíst čtyři, distribuovat tři a dokončit dvě instrukce za takt. Má sedm standartních execution pipelines a dvě pro nás nevýznamná APU:
    BPU, LSU
    2x FPU: na rozdíl od e500v2 core v P1022 je FPU klasické PPC nikoli embedded.
    2x Simple INT: pro sčítání, odčítání, shift, ...
    Complex INT: násobení a dělení
    APU: Hypervizor
    Decorated Storage APU: HW podpora pro atomické zápisy do filesystému, využívají zejména RAIDy, nemusí se zapisovat celý blok

    SOC periferie:
    2x DDR3 řadič
    18 SERDES linek (jak jsou zapojeny v X5000)
    PCIe v2.0: 1x 4 linky a další 4 linky sdílené přes PCIe-PCIe switch (4 linky, 3x 1 linka - z toho jedna Xorro, 2x PCI), celkem 8 SERDES
    SATA2 pro dvě zařízení, tedy 2 SERDES
    8 SERDES kanálů zůstává v X5000 nezapojeno
    2x DMA řadič, 4 kanály
    RAID 5/6 offload
    2x 1GbE s TCP/IP offload
    USB 2.0, SEC, I2C, eSPI, ...

    Tento procesor má opět výborný design. Výkon je 3 MIPS/MHz/core, což je ze všech CPU v našich Amigách nejvíce a při frekvenci 2 GHz výkon odpovídá PPC 970MP na 3.16 GHz. Obsahuje také hardwarovou podporu hypervizoru, což Amiga sice využít neumí, ale KVM vitrualizce v linuxu ano, je výrazně rychlejší. PPC kód běží nativně a řízení se řeší Hypervizor módem procesoru. Nevýhody jsem našla pouze dvě: L2 cache je pro každé jádro zvlášť a procesor nemá SIMD.
    AmigaObe X5000 s tímto procesorem má vůbec nejvyšší výkon MIPS mezi Amigami - 6000 MIPS/core.
    Vlastní zkušenost s tímto procesorem bohužel nemám, X5000 nikde v mém dosahu není. Bylo by to velmi zajímavé srovnání s X1000 či Powermacem G5. P5020 je sice rychlejší, ale SIMD je poměrně mocná záležitost.



    Co dále?

    Najít dnes PPC procesory pro nové Amiga systémy je tedy složité. Doby G3, G4 a G5 jsou dávno pryč, PA-Semi přestalo existovat a tak jsou v moderních Amigách používány embedded CPU. I když jsme si ukázali že jsou velmi zajímavé a ten v X5000 je i velmi výkonný, přece jen je to nouzové řešení.

    V komunitě i mezi vývojáři se již delší dobu mluví o podpoře více jader a 64-bitové architektury. U MorphOSu navíc i o přechodu na jinou architekturu (ISA).
    Jen vyjádřím svůj názor že pro mě osobně je přechod na platformu X86-64 nesmysl a určitě bych si na PC MorphOS neinstalovala. Nemám ani AROS. Mám na svých workstationech linux na práci a Windows na hraní her. MorphOS by na moderním rychlém PC byl jen systém co neumí sítě, virtualizaci, CUDA, NUMA a o hi-end hrách a produkčním software ani nemluvě. A kdo ze současných uživatelů Windows by si měl nainstalovat MorphOS a proč?
    Z mého hlediska by bylo, pokud už se rozhodne přejít na jinou ISA, lepší jít například na ARM. Ten je méně výkonný, některá zařízení jsou dokonce nevýkonná, je tam méně uživatelsky přátelských systémů a pro leckterého uživatele ARM by MorphOS mohl být zajímavou alternativou. Konekonců ARM začínal také jako hobby platforma, takže je mezi uživateli hodně nadšenců.

    Přechod na platformu ARM by mi sice nevadil, ale nejraději bych zůstala u PPC. Možností jaká PPC CPU používat v budoucnu je více. Tedy v dnešní době asi tak dvě a budou mít smysl pouze v případě že se MorphOS či AmigaOS naučí podporovat multicore. A nemusí to být zrovna dnes všem známé SMP, způsobů jak využít volná jádra je více.



    QorIQ T série, jádro e6500
    Power ISA 2.06, Book III-E, Embedded

    Jeden z možných budoucných procesorů pro AmigaNG je jádro e6500. Je produktem firmy NXP pro telekomunikace a proti svému předchůdci e5500 má dva thready na jádro, společnou L2 cache a zejména SIMD (VMX). Tato nová jádra jsou dnes použita v CPU řady T, které mají PCIe v.2.0/3.0, DDR3/4 a až dvanáct jader. Jádro e6500 je ještě výkonnější než e5500: 3.4 MIPS/MHz/core v single-thread módu nebo 3 MIPS/MHz/thread v dual-thread módu. Pro současné Amigy tedy víc než dost. A navíc, CPU jsou sice embedded, ale neliší se od běžných CPU tolik jako AMCC 440ep či P1022. Myslím že dokonce nemají ani APU interface.

    Klikni pro plné zobrazení obrázku  Jméno: 12-QorIQ-T2080.jpg Počet zobrazení: 15 Velikost: 159,7 KB ID: 155117

    Vzala jsem jako příklad procesor T2080. Ten je druhý nejmenší s jádrem e6500. Je možno jej taktovat na 1.8 GHz, což odpovídá PPC 970MP na 3.2 GHz. Tento procesor je čtyřjádrový, osmithreadový. Každé jádro má osm execution pipelines (vč. SIMD/VMX) pro běh jednoho threadu, nebo dvanáct pro běh dvou threadů:
    BPU (1 na thread, 2 celkem)
    LSU (1 na thread, 2 celkem)
    Simple instruction units 1 a 2 (2 na thread, 4 celkem)
    Complex unit: multiple-cycle
    FPU
    VMX PERM
    VMX ALU:
    tato v sobě obsahuje (obdobně jako G5) VMX Simple INT, VMX Complex INT, VMX FPU

    Jde o SOC procesor, s následujícími periferiemi:
    DDR3 řadič
    až 4x 10 GbE, až 4x 2.5 GbE, až 8x 1 GbE
    2x PCIe v3.0 root, 2x PCIe 2.0 root
    3x DMA řadič
    2x SATA2 řadič
    USB 2.0, SEC, I2C, eSPI, ...
    Tedy tento procesor je opravdu minimální a možná by vadilo jeho pouhých šest SERDES linek zbylých pro PCIe. I když zase mohou být PCIe 3.0.

    Další možnost, nejmenší s e6500: T2081, má sice 8 SERDES linek, takže například 1x GbE + 7x PCIe, ale zase nemá obsažen SATA2 řadič.
    Nebo větší bratříček T4080 má 10 SERDES linek pro PCIe a navíc i další vylepšení, jako dva řadiče DDR3, a další.
    Kdyby to tedy nestačilo, tak T4240 je dvanáctijádrový s až 14 SERDES linkami pro PCIe.
    A všechny procesory řady T mají identické piny.

    Tyto procesory by byly dostatečně výkonné, zejména díky SIMD. Samozřejmě, musel by se najít další nadšenec který utopí mraky peněz za náš koníček, někdo jako je Trevor Dickinson, a postavit custom základní desku. Protože ty co se vyrábí, jsou opravdu pouze pro telekomunikace. A také je samozřejmě možné, že ceny těchto CPU jsou pro AmigaNG systémy přímo astronomické a tudíž jsou nepoužitelné.
    Tyto procesory totiž kromě výhody SIMD mají i nevýhody. U T2080 je osm SERDES linek a u T4080 dvanáct určeno pouze pro síťová zařízení (holt je embedded). Z tohoto počtu dokážeme využít jen jednu až dvě pro 1 GbE porty a také dva thready na jádro je zatím na AmigaOS zbytečně moc.
    Zřejmě tedy volba CPU pro X5000 - CPU řady P s jádrem e5500 byla rozumná. U CPU řady T bychom kupovali navíc množství nevyužitelných SERDES linek a výkonných jednotek. Ale kdoví, třeba NXP v budoucnu bude mít i procesor řady P s jádrem e6500.

    Pokud by procesory s jádrem e6500 šly použít jako případní následníci X5000 s VMX, pro low-end AmigaNG by bylo možné i nadále mít procesory řady P, ale s jádrem e500mc. To na rozdíl od jádra e500v2 (P1022/Tabor) má klasické PPC FPU. I když, jestli se podaří zvládnout efektivně použití FPU APU a SPE APU u Taboru, lze zůstat u jádra e500v2.



    POWER9
    Power ISA 3.0B, Books I-III
    Blackbird, Talos


    IBM po celou dobu pokračovala ve vývoji CPU pro middle/high-end servery. Dnes je poslední model POWER10. Pro nás je ovšem dosažitelnější POWER9, který je použit například ve workstation platformě Blackbird/Talos. Power ISA verze 3 se vyvíjela, Book III-E byla zapracována do Book III, přibylo výkonnější SIMD rozšíření VSX (Vector Scalar Extension) které má dvojnásobný počet registrů než VMX a původně s ním nebylo úplně kompatibilní. To se v posledních verzích Power ISA změnilo, a od POWER9 je VSX zpětně kompatibilní s VMX.
    Tyto procesory jsou navrženy pro vysoce výkonné servery a multiprocesorové systémy, jsou taktovány až na 4 GHz, mají velikou datovou propustnost CPU-CPU a CPU-GPU, paměti DDR4, PCIe v4.0 a až 24 jader. Pravidelně obsazují přední příčky v seznamu TOP500 nejvýkonnějších serverů. Procesor je masivně paralelizován, má SIMD pro FPU i VSX operace.
    Nás by tedy nejspíše zajímal úplně nejmenší z nich, čtyřjádrový POWER9 (SMT4) na 3.2 GHz.

    Klikni pro plné zobrazení obrázku  Jméno: 13-Power9-SMT4-vyrez.jpg Počet zobrazení: 13 Velikost: 193,1 KB ID: 155118

    Procesory POWER mám ráda a potkávám se s nimi i v práci. Jelikož je tento procesor velmi odlišný od předchozích CPU s Power ISA 2.x, ani jsem jej nepřekreslovala do stejného diagramu a použila schema od IBM. A nebudu jej popisovat, bylo by to na další takovýto článek. Základní údaje jsou v diagramu, a kdo chce, může si vše dohledat ve volně dostupném "POWER9 Processor User’s Manual" od IBM. Nepovedlo se mi ale najít kolik mají tyto procesory MIPS. Pokud to někdo objevíte, prosím pošlete mi zprávu, doplním to do článku a hlavně do grafů. Pravda je, že tento údaj se u POWER procesorů nejspíš změřit či vypočíst dá. Ale dost to už postrádá smysl, protože MIPS je výkon bez FPU a SIMD, a tento procesor je navržen právě na masivní paralení FPU a VSX výpočty. Každopádně se základní frekvencí 3.2 GHz by ve výkonu MIPS v Amiga světě zvítězil s velikým náskokem.

    Cena nejmenšího POWER9 SMT4, není úplně mimo náš svět, i když dražší tedy je. Motherboard Blackbird od firmy Raptor stojí dnes přibližně o polovinu více než Cyrrus+ (motherboard AmigaOne X5000) a výkonem ho předčí mnohonásobně. Ale i když pomineme že Hyperion poslední dobou moc nových ovladačů nevytvořil, můžeme zde narazit i v otázce zpětné kompatibility 32-bitového kódu. A pokud by se přešlo na architekturu POWER pro hi-end Amigy, nebyl by pak vlastně žádný vhodný levný low-end CPU se stejnou ISA pro lidi co s platformou AmigaNG začínají. Takže tudy cesta nejspíše nepovede.



    Porovnání výkonů

    Článek bez grafů si nedovedu představit, takže tady jsou alespoň dva.

    Klikni pro plné zobrazení obrázku  Jméno: 15-CPUSpeed.jpg Počet zobrazení: 15 Velikost: 69,6 KB ID: 155119
    První graf je rychlost CPU v MIPS/core. Tedy rychlost běhu systému, bez FPU a SIMD. Nejvýkonnější jsou T2080 (6120 při jednom threadu na jádro) a P5020 (6000, ale je v silné čtyřce jediný bez VMX), dále G5 970FX (4750) a PA6T-1682M (3960). Také je vidět, že výkonnost A1222 bude docela slušná (2880). Na X1000, X5000 či Powermac G5 sice nemá, ale je na tom o dost lépe než Sam460ex (2200) nebo AmigaOne XE, Pegasos 2 či Powermacy s procesorem G4 (2310). Takže se těšte na Tabor.


    Klikni pro plné zobrazení obrázku  Jméno: 16-CPUEff.jpg Počet zobrazení: 16 Velikost: 78,8 KB ID: 155120
    Druhý graf je MIPS/MHz/core. Tedy něco jako rychlostní efektivita CPU. Nejlepší design z tohoto pohledu mají CPU QorIQ T2080 (3.4) a P5020 (3.0), ale vysoko je také P1022 (2.4) následován procesory G3 a G4 (oba 2.3) a PA6T (2.2). Naopak G5 má relativně málo (1.9), je tedy trošku neefektivní. Také je zajímavé, že naše stará dobrá MC 68060 (1.5) je malinko efektivnější než PPC 603e (1.4).
    Jinak tento údaj je opravdu jen pro zajímavost. Jak jsme si stačili všimnout, vše se dá dohonit a předhonit frekvencí, zvlášť jestli účet za elektřinu platí rodiče. To mě už bohužel dávno ne.



    Závěr

    Kromě poznávání nebylo účelem tohoto článku nic moc dalšího. Vlatně ano, moje zábava, ale to se počítat nemusí.
    Snad se mi povedlo ukázat proč jsou některé novější procesory pomalejší než jiné starší a trochu více tak nahlédnout do nitra procesorů v jednotlivých Amigách.

    A doufám že se mi také podařilo ukázat, že moderní AmigyNG v sobě mají z naší původní Amigy nejen jméno (AmigaOS tam je to jasné, a i v MorphOSu máme ABox), ale také je uvnitř nich CPU, srdce které je potomkem naší staré matky zakladatelky Motoroly 68000. Dokonce i tak exotické procesory jako jsou v Sam440ep, či v A1222 mají svůj původ u Motoroly 68000. Takže nikdo z milovníků starých klasických Amig se nemusí obávat, když si zadá s Amigou NG. Ať už je to MorphOS, nebo AmigaOS.

    Cesta vývoje PPC procesorů byla a je stále zajímavá a pokračuje i dnes embedded a serverovými procesory. K naší smůle z ní zcela zmizely procesory desktopové, ale stále jsou tu takové co se dají pro Amigu použít. Kam bude směřovat AmigaNG v budoucnu nevím. Takže uvidíme a necháme se překvapit, kam nás další roky donesou. Jestli dojdeme k jiným zajímavým procesorům, ráda se podívám jak vypadají uvnitř.



    Vysvětlivky

    60x: vnější sběrnice CPU použitá u prvních generací PPC procesorů
    AIM: aliance firem Apple, IBM a Motorola, která stála u zrodu nám známých PPC procesorů
    AltiVec: neboli VMX, SIMD jednotka
    API: application programming interface, softwarový interface, který nabízí definované služby ostaním programům
    APU: Auxiliary Processor Unit, rozšířené instrukční sady CPU o speciální instrukce (např. DSP nebo SPE)
    BPU: Branch Processing Unit, Exekuční jednotka zajišťující skoky v programu
    Branch Prediction: spekulativní výpočty podmíněných skoků. Procesor počítá i více variant, aby se pak po vyhodnocení podmínky nemuselo čekat na výpočet adresy skoku
    Clock gating: jeden ze způsobů snížení spotřeby CPU, kde je separátně řízena každá malá část CPU (gate)
    Completion Unit: u CPU se zpracováním out-of-order, část kde čekají vykonané instrukce na správné pořadí ukončení
    CR: condition register
    DFS: Dynamic Frequency Switching, řízení frefvence CPU dle zátěže
    DSP: Digital Signal Processing, instrukce zpracování signálů
    Embedded CPU: CPU pro průmyslové použití, navržené pro spolehlivost a malou spotřebu/výkon
    FPU: Výkonná jednotka pro zpracování instrukcí s racionálními čísly (s pohyblivou desetinnou čárkou, floating-point, někdy nesprávně označováno za reálná čísla)
    Harvardská architektura: architektura CPU, která má oddělené cesty a signály pro data a instrukce
    In-order execution: instrukce se zpracovávají v pořadí jak jsou po sobě
    INT: Výkonná jednotka pro zpracování celočíselných, logických a rotačních instrukcí
    LSU: Load Store Unit, výkonná jednotka která zabezpečuje načítání a zápis dat do/z registrů
    MAC: APU (Auxiliary Processor Unit) jednotka pro DSP, má jednocyklové instrukce typu multiply-accumulate: 16bit x 16bit + 32bit -> 32bit
    MIPS: Million Instructions Per Second, rychlost procesoru bez použití FPU, SIMD a GPU, tedy například pro provoz systému, čtení z periferií bez DMA, atd. Naopak aplikace a hry jsou pak dále velmi ovlivněny výkonem FPU a SIMD a také rychlostí grafické karty a příslušné sběrnice
    MMU: Memory Management Unit. Provádí správu virtuální paměti, memory protection, operuje s cache, atd.
    MMX: starší SIMD jednotka u platformy X86
    MPX: vnější sběrnice použitá u PPC procesorů G4
    Out-of-order execution: instrukce se mohou vykonat i v jiném pořadí, podle toho na které výpočtové jednotce je zrovna místo. Před odevzdáním výsledku pak čekají v Completion Unit na správné pořadí ukončení.
    Pipeline: instrukce jsou za sebou pěkně jako v potrubí, či ve frontě. Zatímco se jedna instrukce už zpracovává (execute), další za ní je již dekódovaná a třetí se již načítá.
    Register Renaming: přejmenování registrů, technika, při níž CPU abstrahuje logické registry od fyzických. Používá se zejména k tomu, aby se nemuselo čekat na dokončení instrukce používající registr GPRx pokud následuje instrukce se stejným fyzickým registrem, ale bez datové závislosti. Urychluje paralelní zpracování a používá se také pro ukončení instrukcí out-of-order.
    SERDES: serializer/deserializer, datový kanál CPU
    SIMD: Single instruction, multiple data, jedna operace (instrukce) se prování nad větším množstvím dat. Instrukce zpracovává vždy celý vektor proměnných najednou (tedy 4 až 16 proměnných v případě VMX).
    Skalární architektura: procesor zpracuje nejvýše jednu instrukci za takt
    SMP: Symmetric Multiprocessing
    SoC: System on Chip CPU obsahuje funkce, které byly dříve vyhrazeny Northbridgi ( řadič paměti a PCI) a Southbridgi (ATA a USB řadič, NIC a další)
    SPE: Signal Processing Engine, instrukce pro zpracování signálů, typu SIMD
    SPR: Special purpose register
    SSE a SSE2: starší SIMD jednotka u platformy X86
    Superskalární architektura: procesor zpracuje více než jednu instrukci za takt za použití více výkonných jednotek
    VMX: Vector Multimedia Extension, jinak též AltiVec, SIMD jednotka
    Výkonná jednotka: prováděcí/výpočetní jednotka, část CPU která zpracovává instrukce určitého typu, pracuje paralelně s ostatními
    Von Neumannova architektura: architektura CPU, kde data i instrukce sdílí stejnou paměť i cesty
    VSX: Vector Scalar Extension, SIMD jednotka, následník VMX
    Přiložené soubory
    Naposledy upravil sailor; 26.03.2022, 21:16:41.

    • sailor
      #32
      sailor komentoval
      Editace komentáře
      No, píšu ..je potomkem... Prostě ti samí inženýři co dělali vývoj 68k dělali pak na vývoji těchto Powerpc. Dnešním Mercedesům také nikdo neupírá že jsou náledníci prvního Mercedesu 35hp z roku 1900, i když tam není jediná shodná součástka.

      A dokonce i dnes se programuje v assembleru. Jasně, ne tak jako na Spektru a ne jako na Amize. To i pro většinu úloh na Powerpc už bylo zbytěcné. Přesto se i teď na superrychlých AMD vyplatí, když se řeší úlohy s exponenciální časovou složitostí, pohrát si v assembleru s návratovou hodnotou na zásobníku a přeskočit tak celou frontu návratových skoků. Jasně, není to žádný klasický program starého assembleristy, jsou to třeba jen dvě instrukce..
      A já už také zapomněla na kolik bytů je kódovaný float, to už talé léta nepotřebuji, kdyžtak použiji sizeof(). Ale máš samozřejmě pravdu. Také jsem už stará dáma a detailně jsem znala vlastně jenom ZX Spectrum. To i na Amize jsem psala už jen v C, v assembleru už nic. Mladí to neznají do hloubky, ale ani nemohou - je toho tolik, že se to nedá jednou hlavou obsáhnout. A java a Python - jsou strašlivě neefektivní z pohledu CPU. Jenže CPU dnes nic nestojí a maká světelnou rychlostí. Java a Python jsou zase velmi efektivní z hlediska výkonu kodéra. A těch dnes chybí hodně.

      Taboru je škoda, že se to tak zkomplikovalo. Levná NG Amiga by byla super. Jen se trochu bojím že i když se to povede nějak dotáhnout do konce, už to nebude stát pár stovek. Je to jak říkáš, levná AmigaNG by lidi dotáhnot mohla. Jenže to bysme museli asi přejít na ARM

    • TherioN
      #33
      TherioN komentoval
      Editace komentáře
      veru, port Amiga OS 4 na raspberry, to by bola fantazia, lacny dostupny hw a dost vykonny

    • jack-3d
      #34
      jack-3d komentoval
      Editace komentáře
      Parádní článek!
    Přidávání komentářů není v této časti diskusního fóra bez přihlášení možné, nebo zde nejsou povoleny.

Nejnovější články

Sbalit

  • AmigaNG – kompatabilita HW s AmigaOS, MorphOS a linux
    vytvořil sailor
    Loni jsem si pořídila Sam460LE. Bude o něm samostatný článek, zde pouze zmíním že je to jeden z pouhých tří PPC počítačů, na kterých můžete provozovat nativně všechny tři mé oblíbené operační systémy, tedy AmigaOS, MorphOS a Debian linux ( pro zajímavost, ty dva další počítače jsou Pegasos 2 a AmigaOne X5000 ). A protože jsem Sama testovala s MorphOSem i AmigaOSem, tak mě to inspirovalo k napsání tohoto článku o úskalích na která můžete narazit.

    Na všech ostatních...
    10.03.2024, 10:26:13

Nové komentáře v článcích

Sbalit

Populární tagy v článcích

Sbalit

a1200 (6) akce (15) amiga (16) amigaos3.2 (4) apple (7) artway (5) cybergraphx (5) demoscena (8) dizzy (9) emulace (8) fastata (9) furia (5) hardware (15) internet (6) iomega (6) mac (6) midi (8) morphos (14) navody (10) pfs3 (8) resetkání (5) rozhovory (4) srazy (11) winuae (10) zip (7)
Zpracovávám...
X