Wykład 5. Architektura ARM



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

Wykład 2. Mikrokontrolery z rdzeniami ARM

Wykład 6. Mikrokontrolery z rdzeniem ARM

Architektura mikroprocesorów TEO 2009/2010

Wykład 2. Mikrokontrolery z rdzeniami ARM

Budowa Mikrokomputera

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

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

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

Procesory osadzone ETD Wprowadzenie W

>>> Techniki rozbudowy systemów wbudowanych >>> Systemy wbudowane. Name: Mariusz Naumowicz Date: 29 maja 2019 [~]$ _ [1/32]

Procesory firmy ARM i MIPS

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

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

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

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

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

Projektowanie. Projektowanie mikroprocesorów

Programowanie mikroprocesorów jednoukładowych

Szkolenia specjalistyczne

Programowanie w asemblerze ARM wprowadzenie

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

System mikroprocesorowy i peryferia. Dariusz Chaberski

Mikroprocesory rodziny INTEL 80x86

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

Podstawy Techniki Mikroprocesorowej

Technika mikroprocesorowa. Języki programowania mikrokontrolerów

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

Procesory Blackfin. Część 1

Procesory. Schemat budowy procesora

Architektura komputerów egzamin końcowy

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Cortex-M3 ST Microelectronics core processor capabilities. Możliwości procesorów z rdzeniem Cortex-M3 firmy ST Microelectronics

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Procesory rodziny x86. Dariusz Chaberski

Architektura systemów komputerowych

Wykład III. Procesor. Studia Podyplomowe INFORMATYKA Architektura komputerów

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

Systemy operacyjne. Zadania systemu operacyjnego. System komputerowy. Wprowadzenie. Dr inż. Ignacy Pardyka

16. Taksonomia Flynn'a.

Zarządzanie zasobami pamięci

Budowa komputera Komputer computer computare

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Który z podzespołów komputera przy wyłączonym zasilaniu przechowuje program rozpoczynający ładowanie systemu operacyjnego? A. CPU B. RAM C. ROM D.

1.1. Firma ARM i jej wyroby

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

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

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

MIKROKONTROLERY I MIKROPROCESORY

Zarządzanie pamięcią operacyjną

Architektura komputerów

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

ARCHITEKTURA PROCESORA,

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]

Systemy na Chipie. Robert Czerwiński

Architektura von Neumanna. Jak zbudowany jest współczesny komputer? Schemat architektury typowego PC-ta. Architektura PC wersja techniczna

Podstawy Systemów Wbudowanych

Architektura mikroprocesorów z rdzeniem ColdFire

Architektura komputera

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

Wstęp Podstawowe informacje o mikroprocesorach AT91SAM9...11

Błąd pamięci karty graficznej lub Uszkodzona lub źle podpięta karta graficzna

Architektura komputerów

Wykład 5 Technologie na urządzenia mobilne. Łukasz Kirchner lukasz.kirchner@cs.put.poznan.pl

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

1.1. Firma ARM i jej wyroby

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

Wykład IV. Układy we/wy. Studia Podyplomowe INFORMATYKA Architektura komputerów

Rynkowe nowości, część 1

Podstawowe zagadnienia

Systemy wbudowane Mikrokontrolery

Sprawdzian test egzaminacyjny 2 GRUPA I

Materiały do wykładu. 4. Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Architektura mikrokontrolera MCS51

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

Elementy składowe systemu komputerowego

LEKCJA TEMAT: Współczesne procesory.

Mikrokontrolery 8 bit - wprowadzenie

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Mikrokontrolery w mechatronice. Wstępne uwagi

Architektura mikrokontrolera MCS51

Jednostka centralna. dr hab. inż. Krzysztof Patan, prof. PWSZ

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

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

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

System czasu rzeczywistego

Architektura potokowa RISC

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

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Sprawdzian test egzaminacyjny GRUPA I

Programowanie mikroprocesorów jednoukładowych

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

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

Podstawy Informatyki Systemy sterowane przepływem argumentów

Wykład Mikroprocesory i kontrolery

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

Transkrypt:

Wykład 5 Architektura ARM

Plan wykładu ARM co to jest? od historii od dzisiaj Wersje architektury ARMv1 ARMv7 Rodziny obecnie w użyciu ARM7 Cortex-A9 Listy instrukcji ARM, Thumb, Thumb-2, NEON, Jazelle

ARM - historia The ARM is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings

ARM - historia Architektura ARM powstała w latach 80-tych ubiegłego wieku Została wymyślona przez firmę Acorn RISC Machine Jest następcą procesora 6502 znanego z Commodore 64 Prawdziwy rozkwit zaczął się pod koniec lat 90-tych

ARM - historia Dzięki swojej prostocie i wydajności znalazła swoje miejsce w aplikacjach typu telefony komórkowe Obecnie około 90% stosowanych procesorów 32-bitowych typu RISC to procesory z jądrem ARM Procesory ARM stosowane są od mało wydajnych układów sterujących do komputerów typu netbook

ARM główne cechy Architektura 32-bitowa Procesor o zredukowanej liczbie instrukcji RISC Wspólna magistrala danych i programu (von Neumana) dla wersji prostszych Rozdzielone magistrale dla wersji szybszych Dostępny szeroki wachlarz wersji o różnym stopniu skomplikowania i różnej wydajności Kolejka rozkazów

ARM Warianty architektury ARM v1 (rodzina ARM1): pierwsza wersja procesora ARM adresowanie 26-bitowe brak mnożenia/ koprocesora ARM v2 (rodzina ARM2): pierwsza wersja komercyjna dodane instrukcje mnożenia 32-bit dodane wsparcie dla koprocesora

ARM Warianty architektury ARM v2a (rodzina ARM3): pierwsze użycie pamięci cache (4kB) do 12 MIPS przy 25 MHz ARM v3 (rodzina ARM6 oraz ARM7): adresowanie 32-bit dodane magistrale do pamięci cache oraz koprocesora dodany kontroler pamięci (ARM7500FE) do 40 MIPS przy 56 MHz

ARM Warianty architektury ARM v4 (rodzina ARM7TDMI, ARM8, ARM9): 3-stage and 5-stage pipelining Instrukcje Thumb przewidywanie pętli układy kontroli pamięci MPU lub MMU duża wydajność przy stosunkowo prostej konstrukcji do 200 MIPS przy 200 MHz (StrongARM) wariant najpopularniejszy i ciągle wykorzystywany

ARM Warianty architektury ARM v5 (rodzina ARM7TDMI, ARM9, ARM10): 6-stage and 7-stage pipelining instrukcje Thumb instrukcje Jazelle instrukcje rozszerzone DSP wielopoziomowy cache bardzo duża wydajność do 1000 MIPS przy 1250 MHz (XScale) wariant bardzo popularny i ciągle wykorzystywany

ARM Warianty architektury ARM v6 (rodzina ARM11, Cortex-M0, Cortex-M1): 8-stage and 9-stage pipelining instrukcje Thumb-2 instrukcje Jazelle instrukcje rozszerzone DSP SIMD wielopoziomowy cache duża wydajność optymalizowany pod kątem danych audio i wideo

ARM Warianty architektury ARM v7 (rodzina Cortex z wyłączeniem: Cortex-M0, Cortex-M1): 13-stage pipelining instrukcje Thumb-2 instrukcje Jazelle instrukcje rozszerzone DSP sprzętowe mnożenie i dzielenie stało i zmiennoprzecinkowe MultiCore (1-4 rdzeni) SIMD (NEON) do 16 instrukcji w jednym czasie wielopoziomowy cache ogromna wydajność (do 10000 MIPS!!!) przyszłość architektury ARM dostępna już teraz

ARM 7 TDMI

ARM7TDMI Główne cechy: Obecnie podstawowa rodzina z grupy ARM 32-bitowy RISC o małym poborze mocy Architektura von Neumanna 3-poziomowa kolejka Dwa zbiory instrukcji: 32-bitowy ARM oraz 16-bitowy Thumb 7 trybów pracy Operacje na danych: 8-bitowych (byte) 16-bitowych (halfword) 32-bitowych (word) TDMI jest skrótem od: Thumb, Debug, Multiplier, Interrupts

ARM7TDMI Architektura głównego rdzenia

ARM7TDMI Diagram funkcyjny

ARM7TDMI tryby pracy User (usr): normalny tryb pracy FIQ (fiq): tryb transmisji danych (fast irq, transfer typu DMA) IRQ (irq): tryb obsługi przerwań Supervisor (svc): tryb chroniony dla wsparcia systemów operacyjnych Abort mode (abt): tryb błędu System (sys): tryb użytkownika uprzywilejowanego Undefined (und): tryb instrukcji niezdefiniowanej

ARM7TDMI rejestry 37 rejestrów dostępna ilość zależy od trybu pracy R15 jest zawsze licznikiem programu R13 jest zawsze wskaźnikiem stosu

ARM7TDMI rozkazy ARM Istnieją dwie listy rozkazów: pełna (ARM) i uproszczona (Thumb) Lista ARM jest zbiorem poleceń 32-bitowych każde polecenie ma długość 32 bitów Polecenia zajmują dużo miejsca w pamięci Każde z poleceń może być wykonywane warunkowo Wynik operacji może być od razu dostępny z przesunięciem Istnieje 5 trybów adresowania Każdy z trybów adresowania posiada kilka opcji

ARM7TDMI rozkazy ARM

ARM7TDMI rozkazy ARM

ARM7TDMI rozkazy Thumb Lista Thumb jest zbiorem poleceń 16-bitowych każde polecenie ma długość 16 bitów Jest to podzbiór listy ARM Polecenia zajmują mało miejsca w pamięci Tylko niektóre z poleceń mogą być wykonywane warunkowo Operacje na danych są w dalszym ciągu 32-bitowe W liście Thumb wykorzystane są jedynie rejestry R0- R7 Tylko instrukcje specjalne wykorzystują rejestry R8- R15 Każda instrukcja ma odwzorowanie w liście ARM

ARM7TDMI rozkazy Thumb

ARM7TDMI rozkazy Thumb

ARM7TDMI Virtual Memory System Blok VMSA służy do przydzielania rozdzielnych (wirtualnych) przestrzeni adresowych dla różnych aplikacji (procesów) Procesy mają przydzielaną pamięć z wykorzystaniem układu MMU (Memory Management Unit) W układzie MMU tłumaczenie adresów wirtualnych na fizyczne odbywa się poprzez tablice TLB (Translation Lookaside Buffers)

ARM7TDMI Virtual Memory System

ARM7TDMI Protected Memory System Blok PMSA służy do przydzielania rozdzielnych (wirtualnych) przestrzeni adresowych dla różnych aplikacji (procesów) Procesy mają przydzielaną pamięć z wykorzystaniem układu MPU (Memory Protection Unit) Efekt działania PMSA podobny do VMSA ale prostsza konstrukcja sprzętu i oprogramowania Brak adresów wirtualnych Konkretne procesy mają dostęp tylko do określonych obszarów pamięci

ARM7TDMI Protected Memory System

ARM7TDMI Vector Floating Point VFP jest koprocesorem arytmetycznym służącym do operacji zmiennoprzecinkowych pojedynczej i podwójnej precyzji Istnieje kilka wersji: w ARM7TDMI VFPv2 (VFP9), w Cortex ach VFPv3 (VFP10, VFP11) Pełna kompatybilność z IEEE754 Zrównoleglenie wykonywania operacji najbardziej czasochłonnych w celu zwiększenia wydajności Trzy oddzielne kolejki instrukcji więcej niż jedna instrukcja wykonywana naraz

ARM7TDMI Vector Floating Point VFPv2 wspiera wykonywanie krótkich instrukcji wektorowych Do 8 operacji na danych pojedynczej precyzji na raz Do 4 operacji na danych podwójnej precyzji na raz Krótkie instrukcje wektorowe są najbardziej użyteczne w aplikacjach graficznych i przetwarzania sygnałów Pozwalają na zwiększenie wydajności przy jednoczesnym zmniejszeniu kodu

Cortex-M Cortex-R Cortex-A

Rodzina Cortex Obecnie korporacja ARM silnie wprowadza na rynek rodzinę Cortex Rodzina ta składa się z trzech podrodzin: Cortex-M rdzenie przewidziane do mikrokontrolerów i aplikacji typu cost-sensitive; Rdzenie wspierają instrukcje Thumb-2; Cortex-R rdzenie przewidziane do aplikacji systemów czasu rzeczywistego real-time systems; Rdzenie wspierają instrukcje ARM, Thumb oraz Thumb-2 Cortex-A rdzenie najbardziej złożone i wydajne, przewidziane do wydajnych urządzeń multimedialnych; Rdzenie wspierają instrukcje ARM, Thumb oraz Thumb-2

Cortex-M

Cortex-M Główne cechy: Procesor 32-bitowy Kolejka instrukcji 3 stopniowa Lista instrukcji Thumb-2 bardzo zwarty kod przy dużej wydajności Wiele trybów i domen oszczędzania energii Nested Vectored Interrupt Controller dobrze zdefiniowane czasy i sposoby wywoływania przerwań Wsparcie dla systemów RTOS Wsparcie dla debuggerów (JTAG, SWD Serial Wire Debug)

Cortex-M0 Główne cechy: Najuboższa wersja procesorów ARM Jednocześnie też najbardziej oszczędna jedynie 85µW/MHz Kompatybilność z wersją Cortex-M3 Struktura składa się z zaledwie 12000 bramek Tylko 56 instrukcji optymalizowanych pod kątem języka C Wsparcie dla nisko-mocowej komunikacji bezprzewodowej: Bluetooth Low Energy (BLE), ZigBee, itp. Wydajność 0.9 DMIPS/MHz Instrukcja mnożenie 32x32 w jednym cyklu Opóźnienie wywołania przerwań: 16 cykli

Cortex-M1 Główne cechy: Rdzeń procesora przewidziany do osadzenia w strukturze FPGA Wsparcie dla układów firm Actel, Altera oraz Xilinx Łatwa migracja z układów FPGA (development) to ASIC (production)

Cortex-M3 Główne cechy: Wprowadzony na rynek w 2004 roku Przewidziany do najbardziej wydajnych mikrokontrolerów Wysoka wydajność i bogactwo cech Mały pobór prądu (12.5 DMIPS/mW) Do 240 źródeł przerwań!!! Wsparcie dla szeregu protokołów szeregowych Wydajność 1.25DMIPS/MHz Wsparcie dla operacji na bitach Mnożenie 32x32 w jednym cyklu, dzielenie w 2-12 cyklach Kolejka instrukcji (3 stopnie) plus przewidywanie skoków Kontrola pamięci (MPU) Prędkość działania: do 275 MHz /340 DMIPS

Cortex-M4 Główne cechy: Najbogatsza wersja rodziny Cortex-M Przewidziane do zastosowań nisko-mocowego przetwarzania sygnałów Połączenie 32-bit mikrokontrolera i procesora DSP Instrukcje DSP: jednocyklowe 16,32-bit MAC jednocyklowe 2x16-bit MAC 8,16-bit arytmetyka SIMD dzielenie sprzętowe (2 12 cykli) Jednostka FPU o pojedynczej precyzji Pozostałe cechy jak w Cortex-M3 Prędkość działania: do 300 MHz /375 DMIPS

Cortex-A9

Single core Cortex-A9

Cortex-A9 Główne cechy: Najbogatsza wersja rodziny Cortex-A Następca wysokowydajnej rodziny ARM11 Przewidziane do zastosowań w procesorach o dużej i bardzo dużej mocy obliczeniowej Możliwe wersje jedno- i wielordzeniowe Praca z zegarem do 2GHz Możliwość bloków NEON oraz FPU Prędkość działania: do 5000 DMIPS na rdzeń Dostępne wersje optymalizowane pod kątem prędkości lub zużycia energii

Cdn...