AVR32
Designer | Atmel |
---|---|
Bits | 32-bitars |
Version | Rev 2 |
Design | RISC |
Kodning | Variabel |
Endianness | Stor |
Tillägg | Java virtuell maskin |
Registrerar | |
15 |
AVR32 är en 32-bitars RISC- mikrokontrollerarkitektur producerad av Atmel . Mikrokontrollerarkitekturen designades av en handfull personer utbildade vid Norges tekniska universitet, inklusive huvuddesignern Øyvind Strøm och CPU-arkitekten Erik Renno i Atmels norska designcenter.
De flesta instruktioner exekveras i en enda cykel. Multiplicera -ackumuleringsenheten kan utföra en 32-bitars × 16-bitars + 48-bitars aritmetisk operation i två cykler (resultatlatens), utfärdad en gång per cykel.
Den liknar inte 8-bitars AVR-mikrokontrollerfamiljen , även om de båda designades på Atmel Norge, i Trondheim . Vissa av debug-verktygen är liknande.
Stödet för AVR32 har tagits bort från Linux från och med kärnan 4.12; Atmel har övergått mestadels till M-varianter av ARM-arkitekturen .
Arkitektur
AVR32 har minst två mikroarkitekturer, AVR32A och AVR32B. Dessa skiljer sig åt i instruktionsuppsättningsarkitekturen, registerkonfigurationer och användningen av cacher för instruktioner och data.
AVR32A CPU - kärnorna är för billiga applikationer. De tillhandahåller inte dedikerade hårdvaruregister för att skugga registerfilen, status och returadress i avbrott. Detta sparar spånyta på bekostnad av långsammare avbrottshantering.
AVR32B CPU - kärnorna är designade för snabba avbrott. De har dedikerade register för att hålla dessa värden för avbrott, undantag och övervakarsamtal. AVR32B-kärnorna stöder även en virtuell Java-maskin i hårdvara.
AVR32-instruktionsuppsättningen har 16-bitars (kompakta) och 32-bitars (utökade) instruktioner, liknande t.ex. vissa ARM, med flera specialiserade instruktioner som inte finns i äldre ARMv5 eller ARMv6 eller MIPS32 . Flera amerikanska patent har lämnats in för AVR32 ISA och designplattformen.
Precis som AVR 8-bitars mikrokontrollerarkitektur , var AVR32 designad för hög koddensitet (packar mycket funktion i få instruktioner) och snabba instruktioner med få klockcykler. Atmel använde det oberoende benchmark-konsortiet EEMBC för att jämföra arkitekturen med olika kompilatorer och överträffade konsekvent både ARMv5 16-bitars ( Thumb ) kod och ARMv5 32-bitars ( ARM ) kod med så mycket som 50 % på kodstorlek och 3× på prestanda . [ citat behövs ]
Atmel säger att "picoPower" AVR32 AT32UC3L förbrukar mindre än 0,48 mW/MHz i aktivt läge, vilket den hävdade, vid den tiden, använde mindre ström än någon annan 32-bitars CPU. Sedan i mars 2015 hävdar de att deras nya Cortex-M0+ -baserade mikrokontroller, som använder ARM Holdings ARM - arkitektur , inte deras egen instruktionsuppsättning , "har brutit alla prestandabarriärer med ultralåg effekt hittills."
Genomföranden
AVR32-arkitekturen användes endast i Atmels egna produkter. 2006 lanserade Atmel AVR32A: AVR32 AP7-kärnan, en 7-stegs pipelined , cache -baserad designplattform. Denna "AP7000" implementerar AVR32B-arkitekturen och stöder en hårdvaru- FPU , SIMD (single instruction multiple data) DSP ( digital signal processing )-instruktioner till RISC -instruktionsuppsättningen, förutom Java-hårdvaruacceleration. Den innehåller en Memory Management Unit (MMU) och stöder operativsystem som Linux . I början av 2009 hölls den ryktade AP7200 uppföljningsprocessorn tillbaka, med resurser som gick till andra chips.
2007 lanserade Atmel den andra AVR32: AVR32 UC3-kärnan. Detta är designat för mikrokontroller som använder on-chip flashminne för programlagring och körs utan en MMU (minneshanteringsenhet). AVR32 UC3-kärnan använder en trestegs pipelined Harvard-arkitektur speciellt designad för att optimera instruktionshämtningar från flashminne på chipet . AVR32 UC3-kärnan implementerar AVR32A-arkitekturen. Den delar samma instruktionsuppsättningsarkitektur (ISA) som sitt AP7-syskon, men skiljer sig genom att inte inkludera de valfria SIMD-instruktionerna eller Java-stöd. FPU-instruktionsuppsättningen är valfri och implementerades inte i de ursprungliga familjerna av UC3-mikrokontroller. Den delar mer än 220 instruktioner med AVR32B. ISA har atombitsmanipulation för att styra kringutrustning på chip och allmänna I/O och fastpunkts- DSP -aritmetik.
Båda implementeringarna kan kombineras med en kompatibel uppsättning perifera kontroller och bussar som först sågs i de AT91SAM ARM-baserade plattformarna. En del kringutrustning som först sågs i AP7000, såsom den höghastighets USB kringutrustningen och fristående DMA-kontroller, dök upp senare i uppdaterade ARM9-plattformar och sedan i de ARM Cortex-M3-baserade produkterna.
Båda AVR32-kärnorna inkluderar en Nexus klass 2+-baserad On-Chip Debug-ramverk byggd med JTAG .
UC3 C-kärnan, som tillkännagavs vid Electronica 2010 i München, Tyskland den 10 november 2010, var den första medlemmen i UC3-familjen att implementera FPU-stöd.
Enheter
AP7 kärna
Den 10 april 2012 tillkännagav Atmel slutet av livet för AP7 Core-enheter från den 4 april 2013.
UC3 kärna
Om enhetsnamnet slutar på *AU är detta en ljudversion, dessa tillåter körning av Atmel-licensierade ljud-firmware-IP:er.
Om enhetsnamnet slutar på *S innehåller det en AES Crypto Module.
- A0/A1-serien – enheter levererar 91 Dhrystone MIPS (DMIPS) vid 66 MHz (1 flash-vänteläge) och förbrukar 40 mA @66 MHz vid 3,3 V.
- AT32UC3A0128
- AT32UC3A0128AU
- AT32UC3A0256
- AT32UC3A0256AU
- AT32UC3A0512
- AT32UC3A0512AU
- AT32UC3A1128
- AT32UC3A1256AU
- AT32UC3A1512
- AT32UC3A1512AU
- A3/A4-serien – enheter levererar 91 Dhrystone MIPS (DMIPS) vid 66 MHz och förbrukar 40 mA vid 66 MHz vid 3,3 V.
- AT32UC3A364
- AT32UC3A364S
- AT32UC3A3128
- AT32UC3A3128S
- AT32UC3A3256
- AT32UC3A3256AU
- AT32UC3A3256S
- AT32UC3A464
- AT32UC3A464S
- AT32UC3A4128
- AT32UC3A4128S
- AT32UCA4256
- AT32UC3A4256S
- B-serien – leverera 72 Dhrystone MIPS (DMIPS) vid 60 MHz och förbrukar 23 mA @ 66 MHz vid 3,3 V.
- AT32UC3B064
- AT32UC3B0128
- AT32UC3B0128AU
- AT32UC3B0256
- AT32UC3B0512
- AT32UC3B0512AU
- AT32UC3B164
- AT32UC3B1128
- AT32UC3B1256
- AT32UC3B1512
- C-serien – enheter levererar 91 Dhrystone MIPS (DMIPS) vid 66 MHz och förbrukar 40 mA @66 MHz vid 3,3 V.
- AT32UC3C064C
- AT32UC3C0128C
- AT32UC3C0256C
- AT32UC3C0512C
- AT32UC3C0512CAU
- AT32UC3C164C
- AT32UC3C1128C
- AT32UC3C1256C
- AT32UC3C1512C
- AT32UC3C264C
- AT32UC3C2128C
- AT32UC3C2256C
- AT32UC3C2512C
D-serien – UC3D-enheten med låg effekt bäddar in SleepWalking- teknik som gör att en kringutrustning kan väcka enheten från viloläge.
- L-serien – leverera 64 Dhrystone MIPS (DMIPS) vid 50 MHz och förbrukar 15 mA @ 50 MHz vid 1,8 V.
- AT32UC3L016
- AT32UC3L032
- AT32UC3L064
- AT32UC3L0128
- AT32UC3L0256
- ATUC64L3U
- ATUC128L3U
- ATUC256L3U
- ATUC64L4U
- ATUC128L4U
- ATUC256L4U
Brädor
- AT32AP7000 utvecklingsmiljö (STK1000)
- AT32AP7000 Network Gateway Kit (NGW100)
- AT32AP7000-kort med FPGA, videodekoder och Power over Ethernet (Hammerhead)
- AT32AP7000 Indefia Embedded Linux Board med ZigBee-stöd
- All AT32UC3 Series Generic Evaluation Platform (STK600)
- AT32UC3A0/1 Series Evaluation Kit (EVK1100)
- AT32UC3A0/1 Series Audio Evaluation Kit (EVK1105)
- AT32UC3A3 Series Evaluation Kit (EVK1104)
- AT32UC3B Series Evaluation Kit (EVK1101)
- AT32UC3B Breadboard-modul (koppar)
- AT32UC3A1 Breakout/Small Development Board (Aery32)
Se även
externa länkar
- Atmel AVR32 * "AVR32 Linux Project" . Arkiverad från originalet den 2 september 2011 . Hämtad 9 maj 2013 . (nu död) innehöll de senaste Linux-kärnkorrigeringarna och GCC / binutils och så vidare.