Atmel AVR32

A Wikipédiából, a szabad enciklopédiából
Jump to navigation Jump to search
AVR32
Tervező Atmel
Bitek száma 32 bites
Verzió Rev 2
Bevezetve 2006
Architektúra típus RISC
Kódolás változó (16 és 32 bites utasítások)
Bájtsorrend big-endian[1]
Utasításkészlet kiterjesztések Java virtuális gép
Regiszterek
Általános célú 15[2]

Az AVR32 egy 32 bites RISC mikroprocesszor-architektúra, az Atmel cég tervezésében. Az architektúra vezető tervezője Øyvind Strøm (PhD), a CPU felépítés tervezője Erik Renno (M.Sc) volt, az Atmel trondheimi tervezőközpontjában. Az Atmel 2006 februárjában jelentette be, azzal, hogy az első példányokat az év tavaszán kezdik szállítani.[3]

A processzor legtöbb utasítását egyetlen ciklus alatt hajtja végre. A szorzó-összeadó egység egy 32 bites * 16 bites + 48 bites számtani műveletet két ciklus alatt hajt végre (az eredmény latenciája miatt), ciklusonként egy utasításos kibocsátási rátával.

Ez az architektúra semmiben sem hasonlít az Atmel 8 bites AVR architektúrájára, csak a forrásuk, az Atmel trondheimi tervezőközpontja a közös vonás, és néhány kompatibilis hibakereső eszköz.

Felépítés[szerkesztés]

Az AVR32 architektúra több mikroarchitektúrából áll, ezek közül a legjelentősebbek az AVR32A és AVR32B architektúrák, amelyek leírják az utasításkészlet-architektúra rögzített bővítéseit, a regisztertömb konfigurációit és az utasítás- és adat-gyorsítótárak használatát.[4] Az AVR32A mikroarchitektúra a költségérzékeny alkalmazásokat célozza, így hiányoznak belőle a megszakítási kontextust leíró regisztertár-regiszterek, állapotregiszterek és visszatérési címek háttérben való tárolására szolgáló dedikált hardverregiszterek (árnyék-regiszterek). Ezáltal csökkenthető a lapkafelület, viszont lassul a megszakításkezelés. Az AVR32B ezzel szemben azokat az alkalmazásokat célozza, amelyekben fontos az alacsony megszakításkésleltetés, és ebben dedikált regiszterek vannak kialakítva a fenti értékek tárolására a megszakítások, kivételek és felügyelői hívások alatt.[5]

Az AVR32 architektúra támogatja a Java virtuális gép hardveres megvalósítását.

Az AVR32 utasításkészlet-architektúra (ISA) 16 bites (kompakt) és 32 bites (kiterjesztett) utasításokból áll, és sok olyan specializált utasítást is tartalmaz, amely más architektúrákban, pl. a MIPS32, ARMv5 vagy ARMv6 ISA-ban, nem található. Az AVR32 ISA-t és tervezési platformot számos szabadalom védi az Egyesült Államokban.

Az AVR 8 bites mikrovezérlő architektúrához hasonlóan, az AVR32-t is a rendkívül nagy kódsűrűség és hatékony órajelciklusonkénti teljesítmény elérésére tervezték. Az Atmel egy független konzorciumot kért fel az architektúra teljesítményének minősítésére (EEMBC). Ennek során az AVR32 állítólag különböző programfordítók használatával teljesítményében következetesen felülmúlta mind az ARMv5 16 bites (Thumb) kód, mind az ARMv5 32 bites (ARM) kód értékeit, a kódméret 50%-kal kisebb, a teljesítménye pedig háromszorosan nagyobb volt.[forrás?] Egy másik forrás szerint az AVR32 kódja 5%-20%-kal kevesebb helyet foglal, mint az ugyanazon funkcionalitású ARM Thumb kód, a nagysebességű végrehajtásra optimalizált változatokban ez akár 20%–50% is lehet (ennyivel kisebb helyet foglal az AVR32 kód). Teljesítménye ezekben a tesztekben 10-től 35%-ig terjedő mértékben nagyobb, mint az ARM11 magé (Freescale i.MX21 és i.MX31 processzorokkal összehasonlítva).[6]

Az Atmel állítása szerint a „picoPower” AVR32 AT32UC3L fogyasztása kevesebb, mint 0,48 mW/MHz aktív módban, ami szerinte a legalacsonyabb az összes 32 bites CPU között.[7]

Implementációk[szerkesztés]

AVR32 (AP7000) mikroprocesszor

Az AVR32 architektúrát kizárólag az Atmel saját termékeiben használják. Az Atmel 2006-ban bocsájtotta ki az AVR32 architektúra első megvalósítását: az AVR32 AP7 magot, amely 7 fokozatú futószalaggal rendelkező, gyorsítótár-alapú tervezési platform.[5] Ez az AVR32B architektúra „AP7000” jelű implementációja támogatja az architektúra SIMD (egyetlen művelet, több adat) DSP (digitális jelfeldolgozást támogató) utasítás-kiterjesztéseit a RISC utasításkészlethez, valamint a Java hardveres gyorsítását (Java bájtkód végrehajtását). Tartalmaz memóriavezérlő egységet (MMU) és támogatja a Linuxot és a hasonló operációs rendszereket. 2009 elején, a beharangozott következő processzor, az AP7200, mégsem jelent meg, és ennek az erőforrásait más csipekbe csoportosították át.

2007-ben az Atmel kibocsájtotta az AVR32 architektúra második implementációját, az AVR32 UC3 magot. Ezt mikrovezérlőkben történő felhasználásra tervezték, lapkára integrált flash memóriát alkalmaz a programtárolásra és MMU nélkül működik. Az AVR32 UC3 mag háromfokozatú futószalagos Harvard architektúrát alkalmaz, amelyet speciálisan a lapkára integrált flashmemóriából történő utasításlehívásra optimizáltak.[8] Az AVR32 UC3 mag az AVR32A architektúrát valósítja meg. Ez ugyanazt az utasításkészlet-architektúrát (ISA) tartalmazza, mint az AP7, csak ebből hiányoznak az opcionális SIMD utasítások és a Java támogatás; ennek ellenére több mint 220 közös utasítása van az elődjével. Az ISA jellemzői az atomi bitkezelő utasítások a lapkára integrált perifériák és általános célú be-/kimenet vezérléséhez, és a fixpontos DSP aritmetika.

Mindkét megvalósításban ugyanazokat a perifériavezérlőket és sínkialakítást alkalmazzák, amelyek először az AT91SAM ARM-alapú platformban jelentek meg. Az AP7000-ben megjelent néhány új periféria, mint például a nagysebességű USB perifériavezérlő, és önálló DMA vezérlő, amik később a továbbfejlesztett ARM9 platformokban, majd az ARM Cortex-M3 alapú termékekben is megjelentek.

Mindkét AVR32 megvalósítás tartalmaz egy Nexus class 2+ alapú csipen belüli debug-keretrendszert JTAG-gal.

A müncheni Electronica 2010 rendezvényen, 2010. november 10-én bejelentett UC3 C az első lebegőpontos egységet tartalmazó 32 bites AVR mikrovezérlő.[9]

Eszközök[szerkesztés]

AP7 mag[szerkesztés]

2012. április 10-én az Atmel bejelentette, hogy az AP7 magos eszközök életciklusa 2013. április 4-ével véget ér.[10]

UC3 mag[szerkesztés]

Kártyák[szerkesztés]

Lásd még[szerkesztés]

Jegyzetek[szerkesztés]

  1. csökkenő helyiértékű bájtsorrend
  2. max. 15 általános célú 32 bites regiszter
  3. Nuremberg: Atmel Unveils a 32-bit MCU/DSP Core That Redefines Performance & Power Consumption Standards (angol nyelven). PR Newswire, 2006. február 14. (Hozzáférés: 2014)
  4. AVR32 Architecture Document. Atmel. (Hozzáférés: 2008. június 15.)
  5. ^ a b AVR32 AP Technical Reference Manual. Atmel. [2008. december 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. december 12.)
  6. Jo Uthus, Øyvind Strøm, PhD.: MCU Architectures for Compute-Intensive Embedded Applications (angol nyelven) (pdf) pp. 11,12 / 13. Atmel Corporation, 2005. (Hozzáférés: 2014) „AVR32 Constently Outperforms In EEMBC® Benchmarks”
  7. Atmel press release: "Atmel Introduces AVR32 Microcontroller which Lowers Industry's Best Power Consumption by 63%; picoPower AVR32 AT32UC3L Microcontroller offers less than 0.48 mW/MHz Active and below 100 nA Sleep Mode"
  8. AVR32UC Technical Reference Manual. Atmel. (Hozzáférés: 2008. június 15.)
  9. Atmel Introduces First 32-bit AVR Microcontroller Featuring Floating Point Unit. Atmel. (Hozzáférés: 2011. március 26.)
  10. http://www.atmel.com/About/Quality/obsolescence/obsolete_items.aspx?searchText=ap7

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben az AVR32 című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.

Források[szerkesztés]

További információk[szerkesztés]

Commons
A Wikimédia Commons tartalmaz Atmel Microcontrollers témájú médiaállományokat.

Kapcsolódó szócikkek[szerkesztés]