Cortex-M7 podbija rynek Internetu Przedmiotów (IoT)
Rdzenie ARM Cortex-M3 i Cortex-M4 odniosły sukces w świecie mikrokontrolerów, ale dystans dzielący najbardziej wydajne modele Cortex-M4 i rodzinę Cortex-A jest duża. Nowy rdzeń mikrokontrolerowy, oznaczony symbolem Cortex-M7, ma zapełnić tą lukę w ofercie firmy ARM. Rdzeń jest kompatybilny pod względem kodu z rodziną Cortex-M4, ale oferuje wyższą wydajność i lepszą skalowalność. Cortex-M7 wyposażono również w cache dla instrukcji i danych (rysunek 1). Niższy pobór mocy i wyższa wydajność pozwolą nowym układom zdobyć takie obszary rynku, jak Internet przedmiotów (IoT) i urządzenia „ubieralne”.
Rys. 1. Cortex-M7 jest niemal identyczny, jak Cortex-M4 pod względem funkcji, jednak szczegóły implementacji (jak pamięć cache) zwiększają jego wydajność.
Architektura opiera się na sześciostopniowym potoku superskalarnym. Występuje też predykcja skoku. Wraz z procesem technologicznym 40 nm pozwala to na osiągnięcie wyniku 5,04 punktów CoreMark na MHz (rysunek 2). Proces technologiczny o wymiarze charakterystycznym 28 nm pozwoli podwoić tę wartość.
Rys. 2. Cortex-M7 został zaprojektowany z myślą o implementacji za pomocą różnych procesów technologicznych
Rdzeń Cortex-M7 obsługuje zestaw instrukcji ARMv7-M. Należą do nich także operacje na bitach. Dostępne jest również rozszerzenie DSP z układem MAC wykonujący operacje 16/32-bitowe wykonywane w jednym cyklu oraz podwójne (SIMD) 8/16-bitowe instrukcje MAC. Rdzeń obsługuje arytmetykę pojedynczej i podwójnej precyzji, ale druga opcja będzie najpewniej ograniczona do wybranych modeli.
Rozmiar pamięci cache dla instrukcji i dla danych wynosi do 64 KB. Pamięć cache dla instrukcji jest dwuportowa i asocjacyjna, natomiast pamięć dla danych jest czteroportowa. System zawiera również do 16 MB pamięci TCM (tightly coupled memory). Wszystkie pamięci obsługują opcjonalne kodowanie korekcyjne (ECC). Liczba obszarów chronionych pamięci została podwojona w porównaniu do Cortex-M4 i wynosi 16, a 64-bitowa magistrala AMBA 4 AXI może być podłączona do portu peryferyjnego magistrali AHB.
Obsługa debugowania i rejestracji działania rdzenia jest opcjonalna. Debugowanie można zrealizować przez interfejs szeregowy lub JTAG. Rejestracja pozwala na zapisywanie instrukcji i wykorzystanie modułu rejestracji (embedded trace module, ETM), rejestracji danych (DWT) i rejestracja przyrządów (instrumentation trace, ITM).
Adaptacja rdzenia Cortex-M7 przebiega bezproblemowo, wielu dotychczasowych dostawców Cortex-M4 teraz wprowadza wersje Cortex-M7. Na przykład seria STM32 firmy STMicroelectronics teraz obejmuje modele STM32F7 (rysunek 3).
Rys. 3. Mikrokontrolery STMicroelectronics z serii STM32 F7 wykorzystują macierz magistral, aby ułatwić współbieżny dostęp do pamięci SRAM lokalnych kontrolerów magistrali
Firma STMicroelectronics zwiększyła wydajność układu, łącząc rdzeń z macierzą magistral. Pozwala to na współbieżny dostęp do pamięci i peryferiów. 320 kB pamięci RAM pozwoliło podzielić pamięć na niezależne obszary, do których możliwy jest jednoczesny dostęp. Do dyspozycji są 64 kB wbudowanej pamięci danych i 16 kB pamięci kodu, a także 4 kB pamięci o zawartości podtrzymywanej zasianiem z baterii.
Opracowany przez ST adaptacyjny akcelerator czasu rzeczywistego (ART) pozwala wyeliminować stany oczekiwania na dostęp do pamięci Flash i cache poziomu 1 dla wewnętrznych i zewnętrznych pamięci. Dostępne są wersje z pamięcią Flash o rozmiarach 512 kB lub 1 MB. Mikrokontrolery obsługują pamięci zewnętrzne, w tym układy Quad SPI (QSPI) za pośrednictwem dwóch portów QSPI.
Za grafikę odpowiedzialny jest sprzętowy akcelerator ST Chrom-ART. Układ ten wspomaga przetwarzanie grafiki 2D: dekodowanie bitmap, łączenie obrazów i obsługa wyjścia.
Mikrokontrolery wykonane w technologii 90 nm pracują z częstotliwością 200 MHz, co przekłada się na wynik wydajności wynoszący 1000 punktów CoreMark. Jest to dwa razy więcej, niż wydajność układów STM32F4. Firma STMicroelectronics udostępni liczne narzędzia i platformy projektowe, takie jak płytka z rodziny STM32 DISCOVERY (fotografia 4). Jej szybka realizacja była możliwa dzięki zgodności wyprowadzeń mikrokontrolerów STM32F4 oraz STM32F7.
Fot. 4. Płytki STM32 Discovery oferowane przez STMicroelectronics okazały się popularnymi platformami testowymi (na zdjęciu wersja z mikrokontrolerem STM32F4)
Rdzeń Cortex-M7 daje nowe możliwości konstruktorom: przy mikrokontrolerów wyposażonych w ten rdzeń można budować m.in. wymagające systemy DSP. Architektura rozszerza funkcjonalność i zwiększa wydajność całego układu. Jest to rozwiązanie wypełniające lukę między istniejącymi rodzinami Cortex-M i Cortex-A. Rdzeń Cortex-M7 jest też odpowiedni dla urządzeń mobilnych i ubieralnych, które wymagają dużej wydajności i niskiego zużycia mocy.