. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Úvod do architektury Cortex-M3 - díl. 4
10. června 2010 - 10:12 | Pandatron | Úvod do architektury Cortex-M3 - díl. 4 | Komentářů: 3  

Úvod do architektury Cortex-M3 - díl. 4

Rodina procesorů založených na architektuře ARM Cortex poskytuje potřebné zdroje k řešení i náročných průmyslových, automobilových, bezdrátových a mnoha dalších technologií.

V předchozích dílech Úvodu do architektury Cortex-M3 jsme se zaměřili na popsání hlavních principů jádra a obecné struktury. Dále byly uvedeny hlavní rozdíly mezi jádrem Cortex-M3 a tradičním jádrem architektury ARM7 a popsány základní principy interakce mezi organizačními jednotkami procesorů vystavěných na architektuře Cortex-M3 i postup přístupu procesoru k datům.


Obr. 1: Připomenutí srovnání jednotlivých instrukčních sad

Instrukční sada Thumb-2 obsahuje povely, které umožňují zjednodušit a snížit množství kódu ve spoustě aplikací. To znamená, že kupříkladu instrukce BFA a BFC, které jsou určeny pro práci s bitovými poli, jsou často používány i k řešení problémům zpracování, jako jsou datové pakety sítí v telekomunikačních aplikacích. Instrukce SBFX a UBFX zjednodušují práci s bity v registrech, což je velmi užitečné v automobilovém průmyslu. Instrukce RBIT přeskupuje bity v datovém slově a v důsledku toho se velmi často využívá při provádění DSP algoritmů, jako jsou Fourierovy transformace. Instrukce pro práci s tabulkami - TBB a TBH naproti tomu umožňují dosažení rovnováhy mezi kompaktností kódu a vysokým výkonem. V neposlední řadě je rovněž možné zmínit novou implementaci instrukcí IF / THEN v instrukční sadě Thumb-2, která umožňuje předpovídání pořadí provedení až do čtvrté podmínky.

Nedílnou součástí architektury Cortex-M3 procesorů je konfigurovatelný blok NVIC, nabízející vynikající podmínky pro obsluhu přerušení. Ve výchozím nastavení generuje nemaskované přerušení a 32 fyzických utilit s 8 úrovněmi priority. Zároveň však může být nakonfigurován i tak, aby vygeneroval libovolný počet 1 až 240 fyzických přerušení s až 256 úrovněmi priority a to při velice jednoduché konfiguraci.

Architektura procesorů CortexM3 obsahuje handler tabulky vektorů přerušení, která obsahuje adresy funkcí, vykonávaných při daném požadavku. V případě přerušení činnosti procesoru je tato adresa vektoru využita s pomocí rozhraní instrukční sběrnice k přesunu v programové paměti. Tabulka vektorů probíhajících přerušení se výchozím stavu nachází na nulové hodnotě, ale umožňuje přesun s předprogramovanými kontrolními registry.

V případě, že nastane situace, kdy je voláno jedno přerušení po druhém, opakují procesory s tradiční architekturou celý cyklus zálohování dat a obnovení vždy dvakrát (při vstupu a ukončení přerušení), s výstupem ze zpracovávaného přerušení, při vstupu do dalšího. To má však za následek značné zpoždění a ve svém důsledku i výrazný pokles celkového výkonu systému. Architektura procesorů CortexM3 zjednodušuje přechod z aktivního do nového přerušení uplatněním moderních technologií tzv. "dokování přerušení" a hardwarovou implementaci kontroly NVIC.

Technologií dokování přerušení lze dosáhnout mnohem menších časových prodlev tím, že nahradí sekvenční obnovu a ochranu dat, která obvykle trvá zhruba 30 cyklů, jednoduchým mechanismem, který celkem vyžaduje pouhých 6 cyklů (Obr. 2). Stavové registry procesoru jsou automaticky uloženy při vstupu do prvního přeruší a obnoví se až po odchodu s využitím jen několika cyklů, což je mnohem rychlejší než plně softwarová implementace obsluhy přerušení, známá z klasických procesorových architektur. Takové zdokonalení umožňuje získat velmi vysoký výkon, což je obzvlášť důležité v situacích, kdy je na standardní programový kód vyžadováno zpracování velkého počtu přerušení.


Obr. 2: Mechanismus pro manipulaci s přerušením v procesoru architektury Cortex-M3

Jednotka NVIC je rovněž zodpovědná za obsluhu napájení systému a podporu pro úsporné režimy.

NVIC obsahuje integrovaný 24-bitový systém a časovač, který se používá pro získání přerušení. Pravidelné časové intervaly jsou nepostradatelné při běhu operačních systémů a real-time funkcí.

MPU (jednotka ochrany paměti) je volitelná součást procesorové architektury Cortex-M3, která však může výrazně zvýšit systémovou spolehlivost či ochranou kritických částí kódu. Nejčastěji je využívána pro ochranu operačních systémů, rozdělených na procesy, ve kterých zabraňuje nepovolenému přístupu k některým částem pracovní paměti. Zároveň umožňuje vymezení určitých oblastí paměti jako "read only" a detekci nežádoucích účinků přístupu do paměti, které by mohly narušit celý systém.

MPU tak aplikacím umožňuje pohodlné rozložení do souboru procesů. Každý takový proces má přidělenu svou vlastní oblast paměťového prostoru (včetně přidělené paměti programu, datové paměti, zásobníku atd.) a určených periferií, přičemž zároveň může odkazovat i do společné paměťové oblasti a společných periferií. MPU tak zajišťuje privilegovaný přístup dle stanovených úrovní. K těm patří i spuštění kódu s odpovídajícími preferencemi a práci s vyhrazenou pamětí a periferiemi. Zároveň s možností přístupu do sdíleného paměťového prostoru je možné i zde aplikovat ochranu, aby se zabránilo neoprávněnému přístupu. MPU podporuje až 8 takových domén, z nichž každá může být rozdělena do 8 suboblastí. Minimální velikost pole je 32 bytů a zvyšuje se v krocích dělitelných dvěma, maximálně však do adresovatelné paměti 4 GB. Přístup k paměti není zahrnut v oblastech určených dle MPU a nepovolený přístup do takové paměti povede k vyvolání odpovídající chyby.

Ochrana oblastí paměti před neautorizovaným přístupem je prováděna dle pravidel, která jsou naopak založeny na typech operací (čtení, zápis, spuštění procesu) a stupni prioritní oblasti programového kódu, který provádí přístup. Každá oblast má sadu bitů, které reprezentují povolené typy činností oblasti, které jsou odpovědné za druhy akcí.

Mezi další výhody MPU patří rovněž i podpora překrývajících se oblastí paměťového prostoru. Tato vlastnost poskytuje velmi výrazný přínos k ochraně uložených informací. Vzhledem k tomu, že velikost oblastí je násobkem dvou, je zde příležitost plného vstupu do jedné nebo více oblastí i v rámci dalších oblastí paměti, realizaci speed multi-level struktury ochrany či řízení přístupu, stejně jako provádění vnořeného překrývání paměťových oblastí.

V dalších pokračováních seriálu se zaměříme na přiblížení podrobnější práce s nezarovnanými daty, podporu pro přerušení s nízkou latencí a metody uchování energie při práci v přenosných a bezdrátových systémech. Stejně tak uvedeme podrobný přehled 32-bitových obvodů ARM architektury Cortex-M3 z produkce společnosti Luminary Micro Inc., nyní vlastněné společností Texas Instruments.

Použitá literatura:
Stellaris® ARM® Cortex™-M3 Microcontrollers
SAM3U Series: 96 MHz Cortex-M3 Flash MCU with High-Speed USB








GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (3):

Zobrazit starší 30 dnů (3)...

host
3. Dne 14. 09. 2011 v 17:22 zaslal host
Bez titulku
Škoda že seriál nepokračuje dál. :,-(


Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
TX-SAW 433MHz BOOST
Vysílač AM 433.92MHz, SAW, High power, 28dBm/15V
od 196 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007