arm cortex magú mikrovezérlők

Post on 17-Apr-2022

21 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

© BME-MIT 2021Budapest University of Technology and EconomicsDepartment of Measurement and Information Systems

ARM Cortex magú mikrovezérlők

3. Cortex-M0, M4, M7

Scherer Balázs

© BME-MIT 2021 2.

ARM Cortex-M (Mikrovezérlő) magok

o M0, M0+: Ultra low power

• Nagyon egyszerű

o M3: Általános mikrovezérlő

o M4: DSP utasításokkal kibővített verzió

o M7: M4 továbbfejlesztés superscalar, cache

© BME-MIT 2021 3.

32 bites trendek 2003-2016

Flash [kbyte]

lábszám

M0 M3M0,M0+ M4, M3M3, M0

10245122561286432168421

0,58 14-16 20 28-32-36 40-44-48 64 80-100 144 208 256

© BME-MIT 2021 4.

ARM Cortex-M0

© BME-MIT 2021 5.

A Cortex-M0 mag

32 bites mag, 3 elemű pipeline

Neumann architektúrao Nagyon egyszerű

ARMv6-M arhitektúrao 16 bit Thumb utasításkészlet kiegészítve a Thumb-2 technológiával.

© BME-MIT 2021 6.

ARM7, Cortex-M3, M0 összehasonlítás:memória-hozzáférés

ARM7TDMI Cortex-M3 Cortex-M0

© BME-MIT 2021 7.

Regiszterek

Mint minden ARM architektúránál

o R0 – R3: C szubrutinhívás-paraméterek

o R0 ( R1 ) visszatérési értékek

o R4 – R11 lokális regiszter változók

o R12 Intra-Procedure-Call

o R13 Stack Pointer

o R14 Link Register

o R15 Program Counter

© BME-MIT 2021 8.

Memóriatérkép (Map)

Kompatibilis az M3-mal

© BME-MIT 2021 9.

Működési módok

Kompatibilis az M3-mal

oHandler és Thread mód

© BME-MIT 2021 10.

Utasításkészlet

Thumb-2

o A régi Thumb utasításkészlet modernizált verziója, kevés utasítás: 56 db, de garantált idő alatt.

o Minden Cortex processzor támogatja, biztosítva van a felfelé kompatibilitás.

o 0,9 DMIPS/MHz

© BME-MIT 2021 11.

Cortex-M0 és M3 utasításkészlet összehasonlítása

© BME-MIT 2021 12.

Cortex-M0 mag számítási képességei

© BME-MIT 2021 13.

NVIC, Nested Vector Interrupt Controller

Hasonlóan integrálva, mint az M3 esetében

Max 32 külső vektor támogatása

Az induló stack pointer a 0x0-án

4 prioritási szint

© BME-MIT 2021 14.

NVIC, Nested Vector Interrupt Controller

Automatikus hardveres stackelés

Az induló stack pointer a 0x0-án

© BME-MIT 2021 15.

Cortex-M0, mag szintű energiatakarékosság

Nagyon alacsony lábszámú WIC blocko Lehetővé teszi a Deep sleep-ből

való felébredést.

Sleepo A CPU órajele leállítható, az

NVIC aktív marad.

Deep sleepo Csak a WIC marad aktív,

az NVIC és a mag leáll.

WIC ébreszti a rendszert PMU-n (Power Management Unit) keresztül

© BME-MIT 2021 16.

ARM7, Cortex-M3, M0 összehasonlítás:architektúra

© BME-MIT 2021 17.

ARM7, Cortex-M3, M0 összehasonlítás:pipeline

© BME-MIT 2021 18.

ARM7, Cortex-M3, M0 összehasonlítás:működési módok

© BME-MIT 2021 19.

ARM7, Cortex-M3, M0 összehasonlítás:megszakítás

© BME-MIT 2021 20.

Miért használjunk 32 bites uc-t kis energiájú alkalmazásokban?

Pointerméret = regiszterméreto Nincsenek memóriabankok: egyszerűbb programozás.

o Minden memóriarégió egyetlen regiszterrel címezhető.

Nagyszámú regiszterkészlet (15 darab + PC, mindegyik 32 bites)o Mindegyik használható cím- és adat tárolásra is.

o Sok, nagy regiszter, ki tudja használni a fordító szubrutinhívásnál, nem kell feltétlenül stack műveletet csinálni.

Nincsenek beépített limitek a címtérben.

Nagy kódsűrűségo 16 bites utasítások 32 bites adatokon

16/32 bites timer-ek

© BME-MIT 2021 21.

8 bit, 16 bit, 32 bit összehasonlítás:32 bites egész szám szorzása

© BME-MIT 2021 22.

Számítási teljesítmény és fogyasztás kapcsolata

Gyorsabban végez: többet aludhat.

© BME-MIT 2021 23.

Cotex M0+

Optimalizált verziója az M0-nak

o Pipeline 3-ról 2 eleművé redukálva

o Micro Trace Buffer hozzáadási lehetőség (egyszerű utasítás trace)

o Opcionális memory protection unit

o Opcionális vector table relocation

o Egy ciklusú I/O port kezelés

o 13,3 µW/MHz (M0) -> 11,2 µW/MHz (M0+)

• (32 µW/MHz (M3))

© BME-MIT 2021 24.

ARM Cortex-M4

© BME-MIT 2021 25.

Cortex-M4 Cortex-M4 processzor

o Thumb-2 utasításkészleto DSP és SIMD utasításoko Egyciklusú MAC (32 x 32 + 64 -> 64)o Opcionális single precision FPU o Code compatibilis az M3-mal

1,27 / 1,55 / 1,95 DMIPS/MHz Architektúra

o 3 fázisú pipeline elágazás-becslésselo 3x AHB-Lite Bus Interface

Energiatakarékos módoko Deep Sleep Mode, Wakeup ITo Power down opciók az FPU számára

NVIC (1-240 IT és prioritás) Memory Protection Unit Debug & Trace

© BME-MIT 2021 26.

Cortex-M4 utasításkészlet bővülés

© BME-MIT 2021 27.

SIMD (Single Instruction Multiple Data)

Több adaton ugyanaz az utasítás egy ciklus alatt

Tömörített adathasználati lehetőség

© BME-MIT 2021 28.

Egyciklusú MAC utasítások

© BME-MIT 2021 29.

Cortex-M4 utasításkészlet

© BME-MIT 2021 30.

Cortex-M4 FIR szűrő

DSP-n assembly kódban 1 ciklus

Cortex-M4 standard C kóddal 12 ciklus

Cirkuláris címzés használatával ugrások számának csökkentésével assembly-ben kb. 6 ciklus

SIMD utasítások használatával kb. 2-3 ciklus (16-bit-esadaton)

Köztes változók cash-elésével 1,5-2 ciklus

Hasonló hatékonyságú mint egy normál DSP.

© BME-MIT 2021 31.

Cortex-M3, M4 összehasonlítás:16 bites funkciók

© BME-MIT 2021 32.

Cortex-M3, M4 összehasonlítás:32 bites funkciók

© BME-MIT 2021 33.

Lebegőpontos egység képességei

IEEE 754 standard kompatibilis

Képességek

– Összeadás, kivonás, szorzás, osztás, MAC, gyökvonás

© BME-MIT 2021 34.

DSP Library támogatás

CMSIS DSP library

o Alap matematikai műveletek: vektorműveletek

o Gyors matematikai műveletek: sin, cos, sqrt stb.

o Interpoláció: linear, bilinear

o Complex math:

• Statisztikák: max, min, RMS stb.

• Szűrés: IIR, FIR, LMS stb.

• Transzformációk: FFT

• Mátrixműveletek

• PID szabályozás

© BME-MIT 2021 35.

ARM Cortex-M7

© BME-MIT 2021 36.

Cortex-M7 ARMv7-M architektúra Beépített lebegőpontos

egység 6 állapotú pipeline

o superscalaro branch prediction

2,14 – 3,23 DMIPS/MHz 0 – 64 kB 2 utas

utasítás-cache 0 – 64 kB 4 utas adat-cache 8 vagy 16 tartományú MPU ECC Error Correcting Code Lock-step lehetőség

© BME-MIT 2021 37.

M7 Célok

© BME-MIT 2021 38.

M7 utasításkészlet

© BME-MIT 2021 39.

M7 pipeline

6 állapotú superscalar pipelineo duplázott shifter, ALUo Egy MACo Egy floating point pipe

© BME-MIT 2021 40.

Tightly-coupled memory (TCM)

Kis késleltetésű memória, amit a cache kiszámíthatatlansága nélkül lehet használni.

16 Mbyte-nyi memóriát támogat mind az utasítás-, mind az adatoldalon (utasítás 64 bites, adat 2x32 bites).

© BME-MIT 2021 41.

Teljesítmény-összehasonlítás

© BME-MIT 2021 42.

DSP funkcionalitás Kétszeres átlagos teljesítmény a Cortex-M4-hez képest CMSIS library támogatás

© BME-MIT 2021 43.

Új Cortex M23, M33sorozatok

© BME-MIT 2021 44.

Összehasonlítás

© BME-MIT 2021 45.

Cortex-M33 ARMv8-M architektúra Beépített lebegőpontos

egység 3 állapotú pipeline

o Floating pointo SIMD utasítások

Memória protectiono Security Arbitration Unito 2 Memory protection

unit

© BME-MIT 2021 46.

Cortex-M33 vs M4

© BME-MIT 2021 47.

Trust Zone

© BME-MIT 2021 48.

Trust Zone

© BME-MIT 2021 49.

Piacon kapható mikrovezérlők

© BME-MIT 2021 50.

NXP portfolió

© BME-MIT 2021 51.

ST portfolió

© BME-MIT 2021 52.

NXP portfolió

© BME-MIT 2021 53.

Érdekesség

© BME-MIT 2021 54.

Az LPC4300 család Cortex-M4 alapú Digital Signal Controller Cortex-M0 alrendszer a perifériafunkciókra Max. 1 MB Flash

o Kétbankos Flash

Max. 200 kbyte SRAM High speed USB Pin kompatibilis az M3 sorozattal További tulajdonságok

o 10/100 Ethernet MACo LCD panel controller (max. 1024H × 768V)o 2x10-bit ADC és 10-bit DAC at 400 kspso 8 csatornás DMA vezérlőo Motor Control PWM, Quadrature Encodero 4x UARTs, 2x I2C, I2S, CAN 2.0B, 2x SSP/SPI

© BME-MIT 2021 55.

LPC4300 belső felépítése

© BME-MIT 2021 56.

Cortex-M4, Cortex-M0 együtt

Szeparálható a feldolgozás és a real-time vezérlés

Külön NVIC

Osztott memóriarendszeren keresztüli kommunikáció

© BME-MIT 2021 57.

Cortex-M0, M4 együttes használata; példa: audiofeldolgozás

Cortex-M0: perifériakezelés: I2S, USB

Cortex-M4: teljes teljesítménnyel feldolgozás

© BME-MIT 2021 58.

Motorvezérlés példa

Cortex-M4: motor control Field Oriented Control (FOC)

Cortex-M0: CAN parancsok feldolgozása

© BME-MIT 2021 59.

LPC4300 memóriaFlash

Két 512K byte-os flash memóriablokk

o Lehet összefüggő 1 Mbyte-os blokként használni.

256 bites memóriavezérlő

o 150 MHz

© BME-MIT 2021 60.

LPC4300 memóriaSRAM

Max. 256 KB SRAM

Sok blokkra osztva

o Párhuzamos DMA

o Két core működés

top related