Atmel 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]Az AVR32 architektúrát kizárólag az Atmel saját termékeiben használják. Az Atmel 2006-ban bocsátotta 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átotta 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]
- AT32AP7000 Archiválva 2011. szeptember 26-i dátummal a Wayback Machine-ben
- AT32AP7001 Archiválva 2011. szeptember 26-i dátummal a Wayback Machine-ben
- AT32AP7002 Archiválva 2011. szeptember 26-i dátummal a Wayback Machine-ben
UC3 mag
[szerkesztés]- UC3A0/1 Series - 91 Dhrystone MIPS (DMIPS) teljesítményű eszközök 66 MHz-en (1 flash várakozási állapot), fogyasztásuk 40 mA 66 MHz-en, 3,3 V-on
- UC3A3/4 Series - 91 Dhrystone MIPS (DMIPS) teljesítményű eszközök 66 MHz-en, fogyasztásuk 40 mA 66 MHz-en, 3,3 V-on
- UC3B0/1 Series - 72 Dhrystone MIPS (DMIPS) teljesítményű eszközök 60 MHz-en, fogyasztásuk 23 mA @66 MHz-en, 3,3 V-on
- UC3C0/1/2 Series - 91 Dhrystone MIPS (DMIPS) teljesítményű eszközök 66 MHz-en, fogyasztásuk 40 mA 66 MHz-en, 3,3 V-on
- UC3L Series - 64 Dhrystone MIPS (DMIPS) teljesítményű eszközök 50 MHz-en, fogyasztásuk 15 mA 50 MHz-en, 1,8 V-on
Kártyák
[szerkesztés]- AT32AP7000 development environment (STK1000) Archiválva 2011. szeptember 26-i dátummal a Wayback Machine-ben
- AT32AP7000 Network Gateway Kit (NGW100) Archiválva 2012. január 2-i dátummal a Wayback Machine-ben
- AT32AP7000 board with FPGA, video decoder and Power over Ethernet (Hammerhead)
- AT32AP7000 Indefia Embedded Linux Board with ZigBee support
- All AT32UC3 Series Generic Evaluation platform (STK600) Archiválva 2011. június 29-i dátummal a Wayback Machine-ben
- AT32UC3A0/1 Series Evaluation Kit (EVK1100) Archiválva 2012. január 2-i dátummal a Wayback Machine-ben
- AT32UC3A0/1 Series Audio Evaluation Kit (EVK1105) Archiválva 2011. december 19-i dátummal a Wayback Machine-ben
- AT32UC3A3 Series Evaluation Kit (EVK1104) Archiválva 2011. december 19-i dátummal a Wayback Machine-ben
- AT32UC3B Series Evaluation Kit (EVK1101) Archiválva 2011. november 1-i dátummal a Wayback Machine-ben
- AT32UC3B Breadboard module (Copper)
- AT32UC3A1 Breakout/Small Development board (Aery32)
Kapcsolódó szócikkek
[szerkesztés]Jegyzetek
[szerkesztés]- ↑ csökkenő helyiértékű bájtsorrend
- ↑ max. 15 általános célú 32 bites regiszter
- ↑ 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)
- ↑ AVR32 Architecture Document. Atmel. [2012. március 18-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. június 15.)
- ↑ 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.)
- ↑ 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”
- ↑ Atmel press release Archiválva 2011. június 29-i dátummal a Wayback Machine-ben: "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"
- ↑ AVR32UC Technical Reference Manual. Atmel. [2009. február 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. június 15.)
- ↑ Atmel Introduces First 32-bit AVR Microcontroller Featuring Floating Point Unit. Atmel. [2010. december 14-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. március 26.)
- ↑ http://www.atmel.com/About/Quality/obsolescence/obsolete_items.aspx?searchText=ap7[halott link]
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. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Források
[szerkesztés]További információk
[szerkesztés]- Atmel AVR32
- The AVR32 Linux project (angol nyelven). avr32linux.org, 2011. [2011. szeptember 2-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014) (megszűnt) avr32linux.org: Linux kernel patchek és GCC / binutils, stb.
- AVR Freaks Archiválva 2013. január 29-i dátummal a Wayback Machine-ben Az AVR Freaks AVR32 fórum
- FreeRTOS.org Szabad valós idejű kernel az AVR32 flash mikrovezérlőkhöz
- OpenEmbedded keresztfordítók, több ezer csomag az AVR32-höz
- KaeilOS keresztfordítást támogató, nyílt forrású fordítási rendszer az AVR32-höz
- T2 SDE keresztfordítást támogató, fordítási rendszer az AVR32-höz
- embOS for AVR32 Operációs rendszer port az AVR32-höz
- Micrium µC/OS-II Operációs rendszer port az AVR32-höz
- ThreadX RTOS az AVR32-höz
- Debian AVR32 port
- eHalOS eHalOS is a small open source AVR32 multiprocessing OS
- uTasker project for the AVR32 UC3A AVR32 szimulátorral - szabad, nem kereskedelmi felhasználásra, teljes támogatással