AVR32

AVR32
ATMEL AVR32.jpg
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.
A3/A4-serien – enheter levererar 91 Dhrystone MIPS (DMIPS) vid 66 MHz och förbrukar 40 mA vid 66 MHz vid 3,3 V.
B-serien – leverera 72 Dhrystone MIPS (DMIPS) vid 60 MHz och förbrukar 23 mA @ 66 MHz vid 3,3 V.
C-serien – enheter levererar 91 Dhrystone MIPS (DMIPS) vid 66 MHz och förbrukar 40 mA @66 MHz vid 3,3 V.

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.

Brädor

Se även

externa länkar