Kinetis L – ile o nich wiemy w czerwcu 2012
Freescale to jeden z największych producentów układów półprzewodnikowych na świecie, w ofercie którego znajdują się mikrokontrolery, mikroprocesory, kontrolery sygnałowe, czujniki, układy dla systemów komunikacji radiowej oraz układy zarządzania zasilaniem. O wiodącej na rynku roli tej firmy świadczy wysoka pozycja, jaką zajmuje ona co roku i od wielu już lat w rankingu Semiconductor sales leaders. Silną pozycję na rynku Freescale zawdzięcza między innymi wysokiej sprzedaży mikrokontrolerów, których oferta skierowana jest do szerokiej gamy zastosowań – różnorodnych aplikacji z branż: motoryzacyjnej, produktów konsumenckich, przemysłowych i sieciowych. W portfolio producenta znajdują się zróżnicowane rodziny mikrokontrolerów 8-, 16- i 32-bitowych, jak również bogaty zestaw dostępnych dla nich narzędzi projektowych, programistycznych i sprzętowych, z których Freescale słynie (warto tu wymienić chociażby sławną już platformę ewaluacyjną Tower System, czy system operacyjny MQX).
Nawet najlepsza jednak oferta mikrokontrolerów musi być nieustannie rozwijana i rozbudowywana, aby znajdujące się w niej układy nie tylko mogły spełniać coraz bardziej wymagające oczekiwania klientów wobec wydajności, zużycia energii i zintegrowanych zasobów, ale również aby były atrakcyjne cenowo w porównaniu z produktami konkurencji. Z pewnością te kryteria były jednymi z kluczowych, które przyświecały projektantom nowej w ofercie Freescale serii układów Kienetis L – pierwszej dostępnej na rynku rodzinie mikrokontrolerów z rdzeniem ARM Cortex-M0+ (oprócz firmy Freescale jedynymi obecnie znanymi producentami, którzy zamierzają opracować własne mikrokontrolery z tym rdzeniem są NXP, o czym informowaliśmy tutaj, oraz Energy Micro). Do niedawna o układach Kientis L przeczytać można było tylko zdawkowo w zapowiedziach producenta. Od czerwcowej premiery tych układów na stronie internetowej producenta dostępnych jest więcej informacji, które postanowiliśmy zebrać i przedstawić w niniejszym artykule.
Rdzeń ARM Cortex-M0+
ARM Cortex-M0+, na którym oparte zostały wszystkie mikrokontrolery Kinetis L nie jest rdzeniem, który projektanci firmy ARM stworzyli od zera. Jak sama nazwa wskazuje, jest efektem ewolucji rdzenia Cortex-M0, a więc mówiąc wprost, jest to rdzeń Cortex-M0 z modyfikacjami.
Zanim jednak opisane zostaną wspomniane modyfikacje, warto przypomnieć jakim rdzeniem jest Cortex-M0. Jest to najmniejszy i o najprostszej budowie (17 rejestrów, 56 instrukcji) rdzeń w całej gamie rdzeni ARM Cortex-M, do których należą jeszcze (nie licząc już wymienionego Cortex-M0+): Cortex-M1 (rdzeń do implementacji w układach FPGA), Cortex-M3 i Cortex-M4 (Cortex-M3 z dodatkowym blokiem DSP i opcjonalnie FPU). Rdzeń Cortex-M0 (architektura ARMv6-M) został zaprojektowany z myślą o zastosowaniu w układach SoC (System on Chip) (np. NCN49597 firmy ON Semiconductor i ASM211 firmy Accent) oraz niedrogich i energooszczędnych mikrokontrolerach 32-bitowych (przykładowo są to rodziny LPC11xx i LPC12xx firmy NXP, rodzina STM32F0 firmy STMicroelectronics, rodzina NuMicro firmy Nuvoton), które mają stanowić konkurencję dla mikrokontrolerów 8-bitowych.
Inżynierowie z firmy ARM projektując rdzeń ARM Cortex-M0+ starali się tak przeprojektować rdzeń Cortex-M0, aby osiągnąć trzy cele: zmniejszyć zużycie energii, zwiększyć wydajność i zwiększyć funkcjonalność rdzenia. Aby to osiągnąć, następujące modyfikacje zostały wprowadzone do rdzenia ARM Cortex-M0:
- zredukowano przetwarzanie potokowe (pipeline) z 3- do 2-stopniowego, co umożliwia szybsze wykonywanie instrukcji,
- wprowadzono dostęp do portów I/O i krytycznych zasobów w jednym cyklu,
- zoptymalizowano dostęp do pamięci,
- wprowadzono jednolitą przestrzeń pamięci 4 GB,
- dodano bufor „micro trace” pozwalający na śledzenie wykonywania instrukcji,
- dodano blok MPU (Memory Protection Unit).
Na rysunku 1 przedstawiono budowę wewnętrzną rdzeni ARM Cortex-M0 oraz ARM Cortex-M0+.
Rys. 1.
Szczegółowe porównanie tych rdzeni opisane zostało w osobnym artykule.