ARM Cortex — M4 вычислительные возможности ( DSP, MAC , FPU , SIMD )

Print Friendly



1.     Обзор ядра!

STM32 F4 — Cortex M4

image2


 

 

2.    ARM Cortex — M4

 

Бинарная совместимость ядер Cortex- M

 

Сравнение ядер CortexM                

 

Cortex-M0

Cortex-M3

Cortex-M4

Architecture Version

V6M

v7M

v7ME

Instruction set architecture

Thumb, Thumb-2 System Instructions

Thumb + Thumb-2

Thumb + Thumb-2, DSP, SIMD, FP

DMIPS/MHz

0.9

1.25

1.25

Bus interfaces

1

3

3

Integrated NVIC

Yes

Yes

Yes

Number interrupts

1-32 + NMI

1-240 + NMI

1-240 + NMI

Interrupt priorities

4

8-256

8-256

Breakpoints, Watchpoints

4/2/0, 2/1/0

8/4/0, 2/1/0

8/4/0, 2/1/0

Memory Protection Unit (MPU)

No

Yes (Option)

Yes (Option)

Integrated trace option (ETM)

No

Yes (Option)

Yes (Option)

Fault Robust Interface

No

Yes (Option)

No

Single Cycle Multiply

Yes (Option)

Yes

Yes

Hardware Divide

No

Yes

Yes

WIC Support

Yes

Yes

Yes

Bit banding support

No

Yes

Yes

Single cycle DSP/SIMD

No

No

Yes

Floating point hardware

No

No

Yes

Bus protocol

AHB Lite

AHB Lite, APB

AHB Lite, APB

CMSIS Support

Yes

Yes

Ye

 

 

3.    DSP-параметры

3.1.          image8Характеристики ядра Cortex-M4

·        Архитектура ARMv7-ME

·        Полная совместимость с CortexM3

·        Модуль MAC (Single-cycle multiply-accumulate)

·        Оптимизированные инструкции SIMD (single instruction multiple data )

·        Инструкции насыщения (Saturating)

·        Модуль FloatingPoint Unit одинарной точности (FPU), опционально

·        Аппаратное деление (2-12 цикла), также как в CortexM3

4.    16-бит DSP-инструкции в Cortex-M4

·        Использование DSP инструкций в задачах с 16-бит данными

·        CortexM4 имеет преимущество от 30% до 70%

 

5.    32-бит DSP-инструкции в Cortex-M4

·        Использование DSP инструкций в задачах с 32-бит данными

·        CortexM4 имеет преимущество от 25% до 60%

6.     Проигрывание

 

 

Необходимая частота в МГц для декодирования MP3


7.    Модуль MAC

·        Модуль умножения позволяет выполнить за 1 цикл инструкции MUL или MAC:

o   Signed/Unsigned Multiply

o   Signed/Unsigned Multiply-Accumulate

o   Signed/Unsigned Multiply-Accumulate Long (64-бит)

·        Возможности:

o   2 операции 32-бит MAC

o   До 7 операции 8-бит MAC

o   4 операции 16-бит MAC (двойной 16-бит MAC)

8.    1-цикловой MAC в Cortex-M4

OPERATION

INSTRUCTIONS

CM3

CM4

16 x 16 = 32

SMULBB, SMULBT, SMULTB, SMULTT

n/a

1

16 x 16 + 32 = 32

SMLABB, SMLABT, SMLATB, SMLATT

n/a

1

16 x 16 + 64 = 64

SMLALBB, SMLALBT, SMLALTB, SMLALTT

n/a

1

16 x 32 = 32

SMULWB, SMULWT

n/a

1

(16 x 32) + 32 = 32

SMLAWB, SMLAWT

n/a

1

(16 x 16) ± (16 x 16) = 32

SMUAD, SMUADX, SMUSD, SMUSDX

n/a

1

(16 x 16) ± (16 x 16) + 32 = 32

SMLAD, SMLADX, SMLSD, SMLSDX

n/a

1

(16 x 16) ± (16 x 16) + 64 = 64

SMLALD, SMLALDX, SMLSLD, SMLSLDX

n/a

1

32 x 32 = 32

MUL

1

1

32 ± (32 x 32) = 32

MLA, MLS

2

1

32 x 32 = 64

SMULL, UMULL

5-7

1

(32 x 32) + 64 = 64

SMLAL, UMLAL

5-7

1

(32 x 32) + 32 + 32 = 64

UMAAL

n/a

1

32 ± (32 x 32) = 32 (upper)

SMMLA, SMMLAR, SMMLS, SMMLSR

n/a

1

(32 x 32) = 32 (upper)

SMMUL, SMMULR

n/a

1

 

Все вышеперечисленный операции выполняются за 1 цикл на CortexM4

 

9.    Арифметика насыщения (saturated)

·        Предотвращение переполнения переменных отсечением мин/макс границ и снижение нагрузки на ядро

·        Пример

o   Аудио-приложения

10.         Инструкции SIMD

·        Single Instruction Multiple Data

·        Оперирование пакетированными данными (packed data)

·        Параллельная работа с несколькими операндами 8-бит или 16-бит данных

o   двойной 16-бит MAC (Результат = 16 x 16 + 16 x 16 + 32)

 

 

·        Преимущества

o   Параллельность операций

o   Минимизация количества инструкций загрузки/хранения для обмена между памятью и банком регистров, 2 или 4 транзакции данных за 1 цикл, если нет необходимости в 32-бит данных

11.         Пакетирование данных

·        Байт или 2 байта пакетируются в слова

·        Более эффективный доступ к структурам данных

·        Использование SIMD-инструкций

·        Инструкции капсуляции и инкапсуляции данных

 

 

 

 

12.       Бесплатная DSP lib от ARM

·        DSP библиотека для Cortex-M4

o   Быстрое освоение

o   Абстракция от низкоуровневого программирования

·        Анализ конкурентных режимов при одинаковых условиях

·        Ускорение использования наработок сторонних производителей

·        Простота использования для полшьзователя

o   Минимальный барьер — простота освоения и использования

·        Одна стандартная библиотека — во всех проектах

o   ARValueM библиотека DSP + ваше приложение

o   Использование совместно с другими средствами проектирования — матлаб и т.д.

13.         Функции DSP lib

·        Базовая математика — векторная математика

·        Быстрые тригоном. функции sin, cos, sqrt и т.д.

·        Интерполяция — линейная, билинейная

·        Комплексная математика

·        Статистика — макс, мин, и т.д.

·        Фильтрация — IIR, FIR, LMS и т.д.

·        Преобразования — БПФ и т.д.

·        Функции для работы с матрицами

·        ПИД — контроллер

·        Поддержка функций — копия/заполнение массивов, конвертирование типов данных

14.         image20Инструменты

·        Matlab / Simulink

o   Генрация готового кода

o   Mathworks

o   В разработке (возможно в конце года)

o   Aimagin (Rapidstm32)

·        Дизайн фильтров

o   Очень много продуктов, большинство платные:

o   http://www.dspguru.com/dsp/links/digital-filter-design-software

15.         Floating Point Unit

 

FPU : Floating Point Unit

Стандартизирован IEEE.754-2008

o   Количество форматов

o   Арифметические операции

o   Количество преобразований

o   Определение значений

o   режима округления

o   исключений

ARM Cortex-M FPU ISA

·        Поддержка

o   Add, subtract, multiply, divide

o   Умножение и аккумулирование Вычисление квадратного корня

16.         Использование FPU

 

17.         Пример кода на C

 

18.         Производительность

image28Сравнение времени выполнения КИХ — фильтра по 29 коэффициентам(32 бита) с и без FPU (Библиотека CMSIS)


19.          Программные средства

·        image31Доступны с www.st.com/mcu

·        C source code for easy implementation of all STM32 peripherals in any application

·        Стандартная библиотека — открытые исходники для всей периферии STM32

·        Библиотека Motor Control — векторный контроль на основе датчиков для 3х фазных бесщеточных двигателей

·        DSP библиотека — PID, IIR, FFT, FIR (бесплатно)

·        Аудио библиотека — MP3/WMA декодер, контроль громкости, эквалайзер

·        (бесплатно с лицензиоонными ограничениями).

 

 

 

 

20.         Используемые материалы

Материалы взяты из статьи:

http://www.compel.ru/wordpress/wp-content/uploads/2012/10/STM32F4-YAdro-Cortex-M4.pdf



Next Запись

STM32F4 Начнем программировать CubeMX!

STM32F4 Начнем программировать! В этой статье мы покажем, какой ... Read more




Previous Запись
STM32 Архитектура

STM32 Начало ! История , архитектура, жизнь !

STM32 Начало ! Микроконтроллеры STM32 семейство 32-разрядных микроконтроллеров Flash ... Read more

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, в среднем: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

© 2014-2017 ElectroProg Все права защищены!

↓
↓