Architektura ARM. Materiały do wykładu. Marcin Peczarski. 19 maja 2015. Instytut Informatyki Uniwersytet Warszawski



Podobne dokumenty
Programowanie mikrokontrolerów 2.0

Architektura ARM. Marcin Peczarski. 17 lutego Instytut Informatyki Uniwersytetu Warszawskiego

Programowanie mikrokontrolerów 2.0

Wykład 2. Mikrokontrolery z rdzeniami ARM

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Wykład 6. Mikrokontrolery z rdzeniem ARM

Systemy na Chipie. Robert Czerwiński

Programowanie mikrokontrolerów 2.0

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Budowa Mikrokomputera

Architektura komputerów

Wykład 5. Architektura ARM

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Procesory rodziny x86. Dariusz Chaberski

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Architektura mikroprocesorów TEO 2009/2010

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Wykład 2. Mikrokontrolery z rdzeniami ARM

MIKROKONTROLERY I MIKROPROCESORY

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Programowanie w asemblerze ARM wprowadzenie

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Metody optymalizacji soft-procesorów NIOS

Procesory firmy ARM i MIPS

3.Przeglądarchitektur

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

ARCHITEKTURA PROCESORA,

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Instytut Teleinformatyki

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Technika mikroprocesorowa

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

3.Przeglądarchitektur

Budowa i zasada działania komputera. dr Artur Bartoszewski

Szkolenia specjalistyczne

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

LEKCJA TEMAT: Współczesne procesory.

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Programowanie mikrokontrolerów. 8 listopada 2007

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Logiczny model komputera i działanie procesora. Część 1.

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Programowanie w asemblerze Środowiska 64-bitowe

Struktura i działanie jednostki centralnej

Programowanie mikrokontrolerów 2.0

Mikroprocesor Operacje wejścia / wyjścia

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Rynkowe nowości, część 1

Architektura systemów komputerowych

Technika mikroprocesorowa I Wykład 2

Procesory. Schemat budowy procesora

WPROWADZENIE Mikrosterownik mikrokontrolery

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

System czasu rzeczywistego

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Procesory Blackfin. Część 1

System mikroprocesorowy i peryferia. Dariusz Chaberski

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Programowalne układy logiczne

Embedded Solutions Automaticon Efektywne pomiary i sterowanie przy użyciu systemu wbudowanego MicroDAQ

Kompilator języka C na procesor 8051 RC51 implementacja

Architektura komputerów

Wykład 7. Architektura mikroprocesorów powtórka

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Przerwania, polling, timery - wykład 9

Kurs Zaawansowany S7. Spis treści. Dzień 1

Projektowanie. Projektowanie mikroprocesorów

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Mikrokontrolery w mechatronice. Wstępne uwagi

Mikrokontrolery STM32 który do czego?

dr inż. Jarosław Forenc

Architektura mikrokontrolera MCS51

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Procesory w FPGA H D L. dr inż. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Architektura komputerów

PMiK Programowanie Mikrokontrolera 8051

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Metody obsługi zdarzeń

Architektura mikrokontrolera MCS51

Transkrypt:

7 1 2 Materiały do wykładu Architektura ARM Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 19 maja 2015 7 1 2 1

ARM = Advanced RISC Machines Międzynarodowa firma, mająca główną siedzibę w Cambrdge w Wielkiej Brytanii Projektuje i sprzedaje licencje na rdzenie ARM Nie produkuje krzemu Większość urządzeń mobilnych, w tym głównie telefonów komórkowych, i systemów wbudowanych zawiera rdzenie ARM 7 1 2 2

Rozwój 32-bitowej architektury ARM Źródło: http://www.arm.com 7 1 2 3

64-bitowa architektura ARM Źródło: http://www.arm.com 7 1 2 4

ARM Cortex-A50 Procesory Cortex-A57 i Cortex-A53 Źródło: http://www.arm.com 7 1 2 5

Różne fajne skróty ACP: Accelerator Coherency Port układ zapewniający spójność pamięci (w tym przypadku podręcznej L2) SCU: Snoop Control Unit układ zapewniający spójność pamięci (w tym przypadku podręcznej L2) ECC: Error Correction Code kod korygujący błędy w pamięci półprzewodnikowej SEC: Single Error Correct możliwość skorygowania przekłamania jednego bitu DED: Double Error Detect możliwość wykrycia dwóch przekłamanych bitów AMBA 5: Advanced Microcontroller Bus Architecture szyna wraz z zestawem protokołów do komunikacji między układami cyfrowymi, piąta wersja specyfikacji CHI: Coherent Hub Interface 7 1 2 6

ARM Cortex-A Procesory Cortex-A17, Cortex-A15, Cortex-A12, Cortex-A9, Cortex-A8, Cortex-A7, Cortex-A5 Źródło: http://www.arm.com 7 1 2 7

Różne fajne skróty, uwagi AMBA 4: czwarta wersja specyfikacji ACE: AXI Coherency Extensions AXI: Advanced extensible Interface Rdzenie Cortex-A przeznaczone są do stosowania w urządzeniach wymagających dużych mocy obliczeniowych i umiarkowanego zużycia energii smartfony tablety 7 1 2 8

ARM Cortex-R Procesory Cortex-R7, Cortex-R5, Cortex-R4 Źródło: http://www.arm.com 7 1 2 9

Różne fajne skróty FPU: Floating Point Unit jednostka zmiennoprzecinkowa SP: Single Precision pojedyncza precyzja (32 bity) DP: Dual Precision podwójna precyzja (64 bity) MPU: Memory Protection Unit układ umożliwiający separację procesów w pamięci operacyjnej TCM: Tightly Coupled Memory pamięć umieszczona blisko procesora, przyspieszająca obsługę przerwań AMBA 3: trzecia wersja specyfikacji AXI-S: Advanced extensible Interface Slave AXI-M: Advanced extensible Interface Master LLPP: Low Latency Peripheral Port port wejścia-wyjścia o krótkim czasie dostępu LLRAM: Low Latency RAM pamięć RAM o krótkim czasie dostępu 7 1 2 10

Uwagi Rdzenie Cortex-R przeznaczone są do stosowania w systemach czasu rzeczywistego (ang. real time), gdzie wymagana jest szybka reakcja na zdarzenia, wysoka niezawodność, spora moc obliczeniowa motoryzacja lotnictwo energetyka 7 1 2 11

ARM Cortex-M Procesory Cortex-M7, Cortex-M4, Cortex-M3, Cortex-M1, Cortex-M0+, Cortex-M0 Źródło: http://www.arm.com 7 1 2 12

Przykład mikrokontrolera z rdzeniem Cortex-M3 Źródło: http://www.st.com 7 1 2 13

Różne fajne skróty DSP: Digital Signal Processing sprzętowe wsparcie dla cyfrowego przetwarzania sygnałów, np. operacje z nasyceniem, dodawanie z akumulacją itp. ITM: Instrumentation Trace Macrocell sprzętowe wsparcie odpluskwiania ETM: Embedded Trace Macrocell sprzętowe wsparcie odpluskwiania AMBA 2: druga wersja specyfikacji AHB: Advanced High-performance Bus APB: Advanced Peripheral Bus 7 1 2 14

Uwagi Cortex-M7 przeznaczony do systemów wbudowanych wymagających bardzo dużej wydajności Cortex-M4 przeznaczony do systemów wbudowanych wymagających dużej wydajności FPU SP i DSP tylko w tym rdzeniu Cortex M3 przeznaczony do szerokiego stosowania w systemach wbudowanych Cortex-M1 przeznaczony do implementacji w FPGA (ang. Field Programmable Gate Array) ASIC (ang. Application Specific Integrated Circuit) ASSP (ang. Application Specific Standard Product) Cortex-M0+ przeznaczony do urządzeń o małym poborze energii ograniczony zestaw instrukcji uproszczona architektura alternatywa dla architektur 8- i 16-bitowych Cortex-M0 to poprzednia (mniej udana) wersja Cortex-M0+ 7 1 2 15

ARM SecureCore Procesory SC300, SC100 i SC000 Źródło: http://www.arm.com 7 1 2 16

Uwagi SC300 rdzeń Cortex-M3 SC100 rdzeń ARM7TDMI SC000 rdzeń Cortex-M0 Główny obszar zastosowań to karty czipowe SIM płatnicze do dekoderów TV identyfikacyjne 7 1 2 17

Ogólne własności architektury Cienkokońcówkowa lub grubokońcówkowa, w niektórych rdzeniach jest możliwość wyboru Jednolita przestrzeń adresowa architekura typu Princeton Osobne szyny do pamięci danych i programu organizacja typu Hardward Rdzenie Cortex-M praktycznie nie wymagają pisania czegokolwiek w asemblerze 7 1 2 18

Rejestry w Cortex-M R0 do R12 rejestry ogólnego przeznaczenia SP (R13, MSP, PSP) wskaźnik stosu LR (R14) adres powrotu PC (R15) licznik programu PSR (APSR, IPSR, EPSR) rejestr znaczników PRIMASK, FAULTMASK, BASEPRI rejestry maskujące przerwania CONTROL rejestr sterujący trybami pracy rdzenia 7 1 2 19

Zestaw instrukcji w trybie 32-bitowym Wzorowany na RISC, aby łatwo potokować ldr r3, [r1, #36] adds r2, r3, #1 RISC-owe wywoływanie procedur bl bx etykieta lr Prawie każda instrukcja może być wykonywana warunkowo movge r7, r4 Argument można przesunąć przed wykonaniem operacji orr r1, r1, r4, lsl #12 str r2, [r4, r0, lsl #2] Występują instrukcje typowo CISC-owe push pop {r4, r5, lr}; prolog funkcji {r4, r5, pc}; epilog funkcji 7 1 2 20

Tryby pracy rdzenia Cortex-M Źródło: http://sigalrm.blogspot.com Są dwa stosy: MSP dla trybów uprzywilejowanych (ang. privileged thread, privileged handler), PSP dla trybu użytkownika (ang. user thread). 7 1 2 21

ABI funkcji i przerwań w Cortex-M Pierwsze 4 argumenty funkcji są przekazywane w rejestrach R0 do R3, pozostałe przez stos. Funkcja może dowolnie modyfikować rejestry R0 do R3 i R12. Funkcja musi przywrócić wartości rejestrów R4 do R11, LR i SP sprzed wywołania. Przed wywołaniem procedury przerwania procesor odkłada na stos rejestry R0 do R3, R12, adres powrotu, PSR, LR. Funkcja, która ma obsługiwać przerwanie, to zwykła funkcja języka C o sygnaturze void Handler(void); Nie są potrzebne żadne dodatkowe atrybuty! attribute ((interrupt)) 7 1 2 22

ABI przerwań, problem Skąd procesor wie, czy instrukcja bx lr jest powrotem ze zwykłej funkcji, czy z obsługi przerwania (trzeba coś zdjąć ze stosu)? Czy ktoś zauważył problem? 7 1 2 23

ABI przerwań, rozwiązanie problemu Przed wywołaniem funkcji obsługującej przerwanie procesor zapisuje do rejestru LR wartość: 0xfffffff1 powrót do obsługi innego przerwania (ang. privileged handler), odtwórz stan z MSP, po powrocie używaj MSP; 0xfffffff9 powrót do wątku uprzywilejowanego (ang. privileged thread), odtwórz stan z MSP, po powrocie używaj MSP; 0xfffffffd powrót do wątku użytkownika (ang. user thread), odtwórz stan z PSP, po powrocie używaj PSP; 0xffffffe1, 0xffffffe9, 0xffffffed jak wyżej, ale z odtwarzaniem stanu rejestrów zmiennoprzecinkowych. 7 1 2 24

Łańcuchowa obsługa przerwań w Cortex-M Źródło: http://www.arm.com Może dochodzić do zagłodzenia! 7 1 2 25

Łańcuchowa obsługa przerwań, dalsze przykłady Źródło: http://www.arm.com 7 1 2 26

Priorytety przerwań w Cortex-M Przerwanie może mieć priorytet ujemny lub nieujemny. Czym mniejsza wartość, tym większy priorytet. Trzy przerwania mają ustalony, niekonfigurowalny priorytet: Reset priorytet 3, NMI priorytet 2, HardFault priorytet 1. Pozostałym przerwaniom można nadać priorytet, który jest liczbą nieujemną i składa się z dwóch pól: priorytet wywłaszczania, podpriorytet. Liczba bitów przeznaczonych na priorytet wywłaszczania jest w większości rdzeni konfigurowalna. Pozostałe bity są przeznaczone na podpriorytet. 7 1 2 27

Numery przerwań w Cortex-M Przerwania zgłaszane przez rdzeń mają ujemne numery NonMaskableInt_IRQn = -14,... MemoryManagement_IRQn = -12, BusFault_IRQn = -11, UsageFault_IRQn = -10,... SVCall_IRQn = -5,... SysTick_IRQn = -1, Przerwania zgłaszane przez peryferie mają nieujemne numery WWDG_IRQn = 0,... TIM2_IRQn = 28,... 7 1 2 28