ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
711329
Evgeny_CD, Архитектор (07.11.2016 15:00 - 15:03, просмотров: 2467)
С подачи LightElf -> ARMv8-M, Cortex-M23, Cortex-M33 http://caxapa.ru/711263.html
ARMv8-M Architecture http://www.arm.com …mv8-m-architecture.php Наше первое обсуждение ARMv8-M, там лежит ARMv8-M Architecture Technical Overview http://caxapa.ru/653905.html ARM®v8-M Architecture Reference Manual прицеплен - страждущие могут начинать читать. Краткий обзор ARM®v8-M вложен. ARMv8-M Baseline: что-то типа "Cortex-M0 с секурными фичами", FPU никто не обещает. В кремнии это Cortex-M23 https://www.arm.co …rtex-m23-processor.php ARMv8-M Mainline: В кремнии это Cortex-M33 https://www.arm.co …rtex-m33-processor.php -- Retains Baseline fundamentals. -- Adds extensive 32-bit instruction set -- ~ 40% performance uplift over Baseline. -- Optional integer digital signal processing (DSP) extension -- ~ 80 saturating arithmetic and SIMD operations. -- Optional floating-point (FP) extension -- ~ 45 instructions, IEEE754 compatible single, and/or double precision floating-point operations. С точки зрения системы команд Mainline - это Baseline + * Hardware divide Faster integer divide operation in hardware. - Removes need for library code. * Compare and branch Combined compare-with-zero and branch. - Faster control code. * Long branch Long non-linking branch to compliment branch with link. - Enables support for cross unit tail calls. * Wide immediate moves Pointer and large immediate creation without needing a literal load. - Provides a linking mechanism for execute-only code. * Exclusive accesses Load-link / store-conditional support for semaphore use. - Enables common semaphore handling between CPUs. * Interrupt active bits Active status of all interrupts individually tracked. - Offers dynamic re-prioritization of interrupts. Но главное, ради чего вся возня затеяна, это RT TrustZone. Отличия от обычной TrustZone ARMv8-A и ARMv7-A * все построено на описании свойств блока адресов. Т.е. это продвинутый MPU, выход за границы разрешенного виден процессору как memory fault. * домены могут вызывать друг друга, на фоне этого работают прерывания, и "продвинутый MPU" обеспечивает секурность всех операций. Например, когда несекурный код прерывает секурный, то проц пушит регистры в стек, при этом обнуляет их содержимое. Для аппаратной поддержки всей прелести с ограничением доступа рождена новая AMBA® 5 AHB5, где все эти программируемые компараторы адресов и зашиты. Если отвлечься от секурности, то видно, это очень и очень совершенный аппаратный механизм защиты потоков RTOS от влияния друг друга. Более совершенный, чем MMU, потому что здесь есть защита от "DMA шарахнуло по памяти", "выкачали по DMA код и стек, отреверсили их". Условия для продажи кучки либ тоже становятся комфортными. Поставщик выдает скомпилированные под заданные адреса бинарники, их грузят, потом этому бинарнику дают ключ активации какой-нибудь. Не раскрыта тема кешей - будут они там или нет. С одной стороны, все это явно оринтированно на 45нм и тоньше, там 1-2Мбайт SRAM вполне себе немного, сюда и код, и данные меглиб влезут, и даже юзеровская прога, но еще лучше иметь возможность поставить снаружи 256 или 512 Мбайт DDR*, которые сейчас ничего не стоят. Я лично думаю, что в 33 и 23 кешей не будет - иначе подрыв кормовой базы других сегментов рынка ARM. Когда это будет в виде продукции Atmel, NXP и STM? Лично мне не понятно, и даже есть сомнения, что будет. Все это явно заточено под специализированные ASIC. А так да - прогресс идет, куда и зачем - нам неведомо, но прогресс это не колышит :) В открытой CMSIS уже что-то запилили CMSIS-CORE Version 5.0.0 - Beta TrustZone for ARMv8-M http://arm-softwar …stzone__functions.html