Перейти к содержанию

Шина AXI (интерфейс AXIM)

У младших Cortex-M всё висит на шинах AHB. Cortex-M7 добавляет к ним главный 64-битный интерфейс AXIM по стандарту AXI4: через него идут заполнение кэша, выборка кода из флеш-памяти и обращения к внешней памяти. В STM32H7 вокруг него построена целая шинная матрица AXI.

Обновлено Редакция GAW

AXI (Advanced eXtensible Interface) — протокол шины из семейства Arm AMBA для высокопроизводительной памяти. В микроконтроллерах он появился вместе с ядром Cortex-M7: по TRM Arm главный интерфейс ядра к памяти — AXIM, 64-битный ведущий порт по стандарту AXI4. Остальные интерфейсы ядра — TCM, AHB-Lite для периферии (AHBP) и ведомый AHB-Lite (AHBS) для DMA-доступа к TCM — к AXI не относятся.

Что идёт через AXIM

  • выборка команд не из ITCM;
  • заполнение строк кэша данных и вытеснение грязных строк;
  • некэшируемые обращения к Normal-памяти;
  • обращения к Device и Strongly-ordered памяти, обычно к периферии.

Все записи на стороне данных, кроме TCM и AHBP, сначала попадают в буфер записи. Интерфейс может работать на частоте ядра или на меньшей синхронной частоте; Arm добавляет к стандартным сигналам AXI4 расширения, передающие внутренние атрибуты памяти и источник запроса.

Отличие от AHB

В Cortex-M7 разделение ролей видно по TRM: быстрая память и кэш работают через 64-битный AXIM, а низколатентная периферия — через AHB-Lite порт AHBP. Обращения к AHBP, как и к TCM, идут мимо кэша и буфера записи. Шинная матрица микроконтроллера дальше связывает AXI-часть с AHB-шинами периферии и DMA через мосты.

В STM32F7 и STM32H7

У STM32F7, как показывает схема в AN4839, шина AXI ядра через мост подключена к 64-битной шинной матрице, а флеш-память по RM0385 видна по адресу 0x0800 0000 на AXIM и по 0x0020 0000 через ITCM. У STM32H7 на шине AXI находится и отдельный блок ОЗУ — AXI-SRAM. ST отмечает в AN4839, что кэш даёт наибольший выигрыш именно для памяти на AXI — внешней SDRAM на FMC и Quad-SPI-флеш. Подробнее об организации памяти — на страницах STM32F7 и STM32H7.

Частые вопросы

Чем AXI отличается от AHB в Cortex-M7?

Ролью. По TRM Arm главный интерфейс ядра к памяти — 64-битный AXIM по стандарту AXI4: через него идут выборка кода, заполнение кэша и обращения к внешней памяти. Периферия подключена через отдельный низколатентный порт AHB-Lite (AHBP), а ведомый AHB-Lite (AHBS) даёт DMA доступ к TCM. Подробности протокола AXI описывает спецификация Arm AMBA AXI and ACE.

Что такое AXI-SRAM в STM32H7?

Блок ОЗУ, подключённый к шинной матрице AXI. Ядро обращается к нему через AXIM и кэш, а не через TCM. Объёмы и адреса AXI-SRAM по линейкам STM32H7 собраны на странице семейства.

Почему флеш-память STM32F7 видна по двум адресам?

Потому что к ней ведут два пути от ядра. По RM0385 через интерфейс AXIM флеш-память начинается с 0x0800 0000 и может кэшироваться, через интерфейс ITCM — с 0x0020 0000, и такие обращения идут мимо кэша, как все доступы к TCM. Выбор адреса при компоновке определяет, каким путём ядро будет выбирать код.

Источники

  1. Arm. Cortex-M7 Processor Technical Reference Manual r1p2 (DDI 0489F), разд. «About the Cortex-M7 processor», «Memory System», «AXIM interface» — интерфейсы ядра: TCM, гарвардские кэши, ведущий AXI (AXIM), низколатентный AHB-Lite для периферии (AHBP), ведомый AHB-Lite (AHBS) для DMA-доступа к TCM; блок BIU с настраиваемым интерфейсом AMBA 4 AXI; AXIM — один 64-битный интерфейс к внешней памяти: выборка команд, заполнение и вытеснение строк кэша данных, некэшируемые доступы к Normal-памяти, доступы к Device и Strongly-ordered, обычно к периферии; соответствует AXI4 по спецификации Arm AMBA AXI and ACE Protocol Specification с расширениями для атрибутов и источника запроса; может работать на частоте ядра или на меньшей синхронной; в варианте без кэша данных — оптимизированный по площади AXIM
  2. STMicroelectronics. RM0385 Reference manual STM32F75xxx and STM32F74xxx, Rev 9, разд. 3.3.1, табл. 3 — сектора флеш-памяти: адрес на интерфейсе AXIM — с 0x0800 0000, на интерфейсе ITCM — с 0x0020 0000
  3. STMicroelectronics. AN4839 Level 1 cache on STM32F7 Series and STM32H7 Series, Rev 2 (March 2018) — рис. 1: у STM32F7 шина AXI ядра через мост AXI/AHB подключена к 64-битной шинной матрице; кэш L1 даёт наибольший выигрыш для памяти на шине AXI — FMC и Quad-SPI

Нашли ошибку?