arm cortex magú mikrovezérlők

60
© BME-MIT 2021 Budapest University of Technology and Economics Department of Measurement and Information Systems ARM Cortex magú mikrovezérlők 3. Cortex-M0, M4, M7 Scherer Balázs

Upload: others

Post on 17-Apr-2022

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ARM Cortex magú mikrovezérlők

© 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

Page 2: ARM Cortex magú mikrovezérlők

© 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

Page 3: ARM Cortex magú mikrovezérlők

© 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

Page 4: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 4.

ARM Cortex-M0

Page 5: ARM Cortex magú mikrovezérlők

© 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.

Page 6: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 6.

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

ARM7TDMI Cortex-M3 Cortex-M0

Page 7: ARM Cortex magú mikrovezérlők

© 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

Page 8: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 8.

Memóriatérkép (Map)

Kompatibilis az M3-mal

Page 9: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 9.

Működési módok

Kompatibilis az M3-mal

oHandler és Thread mód

Page 10: ARM Cortex magú mikrovezérlők

© 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

Page 11: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 11.

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

Page 12: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 12.

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

Page 13: ARM Cortex magú mikrovezérlők

© 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

Page 14: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 14.

NVIC, Nested Vector Interrupt Controller

Automatikus hardveres stackelés

Az induló stack pointer a 0x0-án

Page 15: ARM Cortex magú mikrovezérlők

© 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

Page 16: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 16.

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

Page 17: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 17.

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

Page 18: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 18.

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

Page 19: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 19.

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

Page 20: ARM Cortex magú mikrovezérlők

© 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

Page 21: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 21.

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

Page 22: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 22.

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

Gyorsabban végez: többet aludhat.

Page 23: ARM Cortex magú mikrovezérlők

© 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))

Page 24: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 24.

ARM Cortex-M4

Page 25: ARM Cortex magú mikrovezérlők

© 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

Page 26: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 26.

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

Page 27: ARM Cortex magú mikrovezérlők

© 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

Page 28: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 28.

Egyciklusú MAC utasítások

Page 29: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 29.

Cortex-M4 utasításkészlet

Page 30: ARM Cortex magú mikrovezérlők

© 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.

Page 31: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 31.

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

Page 32: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 32.

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

Page 33: ARM Cortex magú mikrovezérlő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

Page 34: ARM Cortex magú mikrovezérlők

© 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

Page 35: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 35.

ARM Cortex-M7

Page 36: ARM Cortex magú mikrovezérlők

© 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

Page 37: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 37.

M7 Célok

Page 38: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 38.

M7 utasításkészlet

Page 39: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 39.

M7 pipeline

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

Page 40: ARM Cortex magú mikrovezérlők

© 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).

Page 41: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 41.

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

Page 42: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 42.

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

Page 43: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 43.

Új Cortex M23, M33sorozatok

Page 44: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 44.

Összehasonlítás

Page 45: ARM Cortex magú mikrovezérlők

© 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

Page 46: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 46.

Cortex-M33 vs M4

Page 47: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 47.

Trust Zone

Page 48: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 48.

Trust Zone

Page 49: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 49.

Piacon kapható mikrovezérlők

Page 50: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 50.

NXP portfolió

Page 51: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 51.

ST portfolió

Page 52: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 52.

NXP portfolió

Page 53: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 53.

Érdekesség

Page 54: ARM Cortex magú mikrovezérlők

© 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

Page 55: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 55.

LPC4300 belső felépítése

Page 56: ARM Cortex magú mikrovezérlők

© 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ó

Page 57: ARM Cortex magú mikrovezérlők

© 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

Page 58: ARM Cortex magú mikrovezérlők

© BME-MIT 2021 58.

Motorvezérlés példa

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

Cortex-M0: CAN parancsok feldolgozása

Page 59: ARM Cortex magú mikrovezérlők

© 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

Page 60: ARM Cortex magú mikrovezérlők

© 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