Jste zde

XA - Článek o architektuře XA51

Nový jednočipový mikroprocesor vyšší třídy s vynikajícími parametry od firmy

Philips.

Jednočipové mikropočítače (mikrokontroléry) nacházejí stále větší uplatnění v nejrůznějších oblastech elektroniky. Současná nabídka jednočipových mikropočítačů je velmi rozsáhlá. Za 26 let, od doby kdy firma Intel uvedla na trh první mikrokontrolér 4004 prošly tyto čipy rozsáhlým vývojem a zdokonalováním. Většina konstruktérů a programátorů, zabývající se touto tematikou jistě zná mikrokontroléry 8048 a 8051. Ty dnes vyrábí prakticky každá větší firma a nabídka jejich mutací na trhu je veliká. Vývoj však neúprosně pokračuje a 8 bitová rodina 8051 pomalu začíná vývojáře omezovat. Na nutnost 16 bitového zpracování dat , aritmetiky, potřeby většího paměťového prostoru, vyššího výpočetního výkonu, lepších možností adresování, více registrů atd. zareagovaly firmy vyrábějících mikrokontroléry. Na trhu se objevili nové 16. bitové mutace řady 8051. V roce 1995 představila firma Philips mikrokontrolér 80C51XA-G1 a následně verzi XA-G3, obě z nové rodiny eXtended Architecture. Cílem tohoto článku je objasnit základní rysy této architektury a nastínit další možnosti při návrhu aplikací s jednočipovými mikroprocesory. Věříme, že článek bude přínosem zejména pro konstruktéry pracující s rodinou 8051 a hledající rozšíření možností svých aplikací. XA je nová architektura, která byla vyvinuta firmou Phillips Semiconductors v rámci uspokojení požadavků trhu na celkově vyšší výkon, než jaký lze dosáhnout klasickými osmibitovými mutacemi 80C51, při současném zachování zpětné kompatibility kódu s 80C51. XA je kompatibilní s 80C51 na úrovni zdrojového kódu, přičemž všechny vnitřní registry i operační režimy 80C51 jsou plně podporovány. Tato skutečnost kupodivu nijak záporně neovlivňuje výkon XA, který je skutečně velmi vysoký - 3x až 4x převyšuje výkon obvyklých 16-bitových architektur a 10-100x výkon původní 80C51.Phillips dokonce plánuje v blízké budoucnosti zvyšovat taktovací frekvenci až někam přes hranici 100MHz, což by znamenalo rychlost více než 30MIPS !
 


Základní parametry architektury XA

  • - 16-ti bitové a plně statické CPU s konfigurovatelnou šířkou sběrnice 8/16 bitů
  • - 24-bitový rozsah paměti, segmentace po 64kB
  • - Každý 16-bitový CPU registr může provádět všechny aritmetické a logické operace
  • - Vylepšený instrukční soubor podporující bitově orientované logické operace, stejně jako rychlé násobení 16x16 a dělení 32/16
  • - Instrukční soubor je upraven pro použití překladačů z vyšších jazyků
  • - Podpora multitaskingu a aplikací reálného času, obsahující 32 vektorových přerušení, až 16 softwarových TRAPů , segmentovaná paměť dat pro podporu přepínání stránek.
  • - Úsporné módy, podporované vnitřní XA architekturou, včetně IDLE a powerdown módů.



Graf porovnani vykonosti

Následující graf obsahuje porovnání výkonu XA s 80C51 a běžnými 16-bitovými architekturami (68000,80C192) při použití stejné taktovací frekvence. Pro měření byly použity benchmarky MPY (násobení 16x16), FDIV (dělení 16x16), ADD/SUB (sčítání/odčítání 24b), CMP24b (porovnávání 24b), CAN16b (controller area network), NTPLN (lineární interpolace), INTERR (doba trvání přerušení) a BITTEST (bitové operace). Graf ukazuje poměr výkonů jednotlivých architektur vzhledem k výkonu XA. 

 



Základní parametry XA-G3
  • - 20-bitová adresová sběrnice = 1 MB každý programový a datový paměťový prostor
  • - 2.7 až 5.5V plně statické operace
  • - 32 kB programové paměti na chipu
  • - 512 bytů RAM na chipu
  • - Tři čítače/časovače s podpůrnými funkcemi
  • - Watchdog - Dva UARTy
  • - Čtyři 8-bitové I/O porty, každý bit zvlášť je možno softwarově nastavit na 4 možné funkce
  • - 44- pinové PLCC a 44-pinové LQFP pouzdro


Stručný popis eXtended Architecture :

Organizace paměti XA obsahuje několik oddělených paměťových prostorů. Architektura a kódování instrukcí je optimalizováno pro registrově založené operace, nicméně všechny aritmetické a logické operace mohou být prováděny i přímo v datové paměti. Tímto způsobem se XA vyhýbá klasickému problému s jedním akumulátorovým registrem. XA umožňuje adresovat až 16MB paměti, ale paměť je segmentována po 64kB obdobným způsobem jako u řady 80X86. Přímo adresovat lze však pouze první kilobyte segmentu, zbytek pak buď nepřímo, nebo nepřímo s offsetem (viz adresovací režimy). V konkrétních implementacích je možno použít méně než 24 bitů adres, dokonce existuje tzv. small-memory mode, v kterém je adresa pouze šestnáctibitová a segmentové registry ztrácejí význam. Nepoužité adresové vývody je ovšem možno softwarově nakonfigurovat jako běžné I/O porty. Vnitřní datová i kódová paměť vždy překrývá odpovídající část paměti vnější, pokud není vnější paměť hardwarově mapovaná na fyzicky vyšší adresu, nebo pokud není vnitřní paměť vypnutá. Vypnutí vnitřní paměti se provádí hardwarově. 

Jednotka registrů : 

Mapovani registru v architekture XA 

Systém registrů je odvozen od architektury 80C51, všechny registry jsou pouze rozšířeny na šířku 16 bitů. Klasické stránkování R0-R3 zůstává, jsou tedy k dispozici čtyři stránky po čtyřech 16-bitových registrech. Každý registr lze adresovat jak šestnáctibitově, tak jako jeho osmibitovou polovinu (např. R0h, R0l). Kromě toho, některé instrukce (konkrétně 32-bitové posuvy, násobení a dělení) mohou používat dva 16-bitové registry současně jako jeden 32-bitový pár. Všechny registry jsou bitově adresovatelné, kromě tří momentálně nevybraných bank. Kódování instrukcí XA umožňuje budoucí rozšíření o dalších 8 16-bitových registrů, které však v XA-G3 implementovány nejsou. Dále u XA z pochopitelných důvodů odpadly registry A a B, dále byl vyřazen registr DPTR určený pro adresování kódové paměti (pro adresování kódové paměti lze u XA použít jakýkoliv jiný registr).
 
 

Adresovací režimy :


 

  • Direct - První 1 kB segmentu může být adresován pomocí adresy obsažené přímo v instrukci. Např. MOV 200h,#123
  • Indirect - kompletní 24-bitová adresa složená z 8 bitů segmentu a 16 bitů v jednom z registru.Např. ADD [R4],#123
  • Indirect with offset- 24-bitová adresa složená z 8 bitů segmentu a sečtením hodnoty registru s přímou hodnotou. Např. SUB [R3+30],#123
  • Auto-increment - Nepřímé adresování s autoinkrementací používané např. při adresování bufferů nebo tabulek. Jako nepřímé adresování, s tím, že po provedení operace se k registru obsahujícímu adresu přičte 1, jedná-li se o byte operaci, příp. 2, jedná-li se o operaci word. Např. MOV.b [R3+],#123
  •  
  •  
    Zásobník :

    Procesory XA disponují 16. bitovým zásobníkem LIFO, umístěným v datové paměti. Systém může disponovat dvěma zásobníky- uživatelským a systémovým. Uživatelský zásobník, může být umístěn, kdekoli v paměti, zatímco systémový zásobník musí být umístěn v prvním segmentu (prvních 64 kb). Každý zásobník má svůj oddělený ukazatel, mapovaný na místo registru R7. Zásobník, narozdíl od standardu 8051, ukládá data sestupně. To znamená, že hodnota ukazatele se s každou instrukcí PUSH snižuje. Po resetu je ukazatel nastaven na nejvyšší adresu nejmenší datové paměti, se kterou se procesory řady XA vyrábějí (adresa 128d). Přetečení zásobníku je hardwarově ošetřeno vyvoláním přerušení, když ukazatel zásobníku zmenší svoji hodnotu z 80h na 7Eh. (pouhým nastavením SP na hodnotu menší než 80h se přerušení nevyvolá ). Po vyvolání tohoto přerušení ještě zbude 64 byte zásobníku, takže obslužná rutina výjimek může ještě zásobník používat i v případě, že se zároveň s touto výjimkou vyskytne NMI.
     


    Hardware XA-G3

    Sběrnice :

    Oproti klasické 8051 přibylo několik podstatných vylepšení. Především XA architektura přímo podporuje 16.bitovou datovou sběrnici a až 24 adresových bitů. Datovou sběrnici lze nastavit na 8 nebo 16 bitů,úrovní na pinu BUSW po resetu. Počet bitů adresové sběrnice lze softwarově přepínat mezi 12,16,20 a 24 bity (pro XA-G3 max. 20 bitů). Použijeme-li tedy pouze 4kb eprom, ušetříme 4 adresové vodiče, které pochopitelně můžeme využít jako ostatní porty. Další význačný rys architektury XA je multiplexování adresových/datových vodičů. Adresy a0-a3 a a12-a23 (a20 u XA-G3) jsou totiž vyvedeny nemultiplexovaně. Multiplexují se d0-d7 a a4-a11. Tímto zapojením je dosaženo 16 násobného snížení počtu zápisů do adresového latche (Burst mód). Časování sběrnice je softwarově nastavitelné ve velkém rozsahu,ale může se stát že se i přes maximální zpomalení nevyhnete použití externího zpožďovacího obvodu, připojeného na vstup WAIT (obzvláště při 30Mhz krystalu) .
     


    Vstupně-výstupní porty:

    Všechny porty podporují 4 různé módy provozu: open drain, quasi-bidirectional, off (high impedance) a push-pull. Oproti 8051 tedy přibyl mód otevřený kolektor, mód komplementární dvojice tranzistorů a mód vysoké impedance (vstup). Každý pin je možno konfigurovat nezávisle pomocí osmi řídících registrů.

  •  

    Čítače a časovače :

    Celkem jsou k dispozici 3 čítače, 1 (případně 2) však spotřebujeme, jestliže chceme používat sériové porty. Každý čítač má 4 módy provozu, od klasické 8051 se liší pouze mód 0, který je změněn na 16.bit auto reload. Čítač 2 má záchytné registry jako u 8052.
     


    Watchdog timer :

    G3 má implementován watchdog timer, který resetuje obvod v případě selhání software. Watchdog je softwarově vypnutelný a má nastavitelnou periodu. Pozor, při inicializaci programu je VŽDY nutné watchdog zakázat, pokud ho nehodláte používat, jelikož je po zapnutí obvodu implicitně aktivní.

  •  

    Vylepšené sériové porty :

    XA-G3 obsahuje 2 sériové porty, kompatibilní 8051FB. Proto klasické 8051 přibyla následující vylepšení: - oddělené vektory přerušení pro TX a RX směr - double-buffering TX registru pro časově kritické aplikace - detekce break , overrun a framing error - řádná podpora multiprocesorové komunikace.

  •  

    Proč se rozhodnout právě pro řadu XA ? Procesory řady XA vyplní mezeru, mezi klasickými 51-kovými procesory, s jejich omezeným výkonem (do čekož lze zahrnout i mutace typu 96, 552, Dallas atd.) a výkonnými moduly s procesoty řady X86 např. PIGGY. V aplikacích, v nichž je kladen důraz především na periferní operace, malou spotřebu, jednoduchost a relativně vysoký výpočetní výkon je snadno předeženou. Jediným porovnatelným konkurentem je 80251 od firmy Intel, která však nedosáhla zdaleka tolik vylepšení, jako řada XA. Jediným nedostatkem těchto obvodů, je nyní nedostupnost verze s vnitřní pamětí programu, která by se měla objevit do konce prvního čtvtletí 1997 a nedostatek systémových prostředků. Firma Phillips však na svém internetovém zastoupení ZDARMA nabízí beta verzi kompileru a simulátoru pod WINDOWS. Jedná se o licencovanou neprofesionální verzi, která má především ve své simulační části značná omezení a i dost chyb, ale kompilátor zdrojového kódu funguje dobře, takže v zahájení práce s 8051XAG3 vám po zakoupení procesoru (jehož cena se při kusových množstvích pohybuje ke konci března 1997 do 800 Kč vč. DPH) už nic nebrání. 

     

    POSTŘEHY konstruktéra : Resetovací úroveň je obráceně proti staré 8051. ( obvod je resetován v log. 0) . Obvod je neuvěřitelně rychlý. Ani pro softwarově nastavenou nejpomalejší sběrnici nelze nejrychlejší provedení 8255 (o LCD display nebo pomalých promkách ani nemluvě) připojit bez externího obvodu pro vytváření WAIT impulsů. Typická spotřeba obvodu se při 5V a 30 MHz pohybuje mezi 40 a 80 mA, výrobce udává maximálně 100 mA, při IDLE módu maximálně 25 mA a pro power-down mód se spotřeba pohybuje mezi 5 a 50 mA. Maximální výstupní proud jednoho výstupu je 15 mA při optimální konfiguraci. 

    Závěrem bych rád podotkl, že i přes všechny uvedené výhody a značnou rychlost procesoru, výrazně převyšující své konkurenty, má XA několik důležitých nedostatků. Pokud přejdete na XA z architektury 8051 nebo podobné, pak budete jistě nadšeni, nicméně programátoři zvyklí na komfort dvaatřicetibitového prostředí, registrů a skvělých adresovacích možností architektury 68000 by se mohli cítit nepříjemně omezeni. Naproti tomu je třeba si uvědomit, že XA je jednočipový mikrokontrolér, nikoliv samostatný procesor a ve své třídě v současné době prakticky nemá konkurenci.
     
     
     

    Jan Řehák - www.HW.cz

    Jan Staněk - Syntex technologies 

    Richard Cvach - Syntex technologies.


    Tady si můžete stáhnou popis architektury v .PDF formatu sbalenem programem RAR : XA_DOC.RAR
    Další informace najdete na : : Philips XA page

  • Hodnocení článku: