Wykład 7

Transkrypt

Wykład 7
Wykład 7
Architektura mikroprocesorów – powtórka
Architektura mikroprocesorów
Wykład 1:
- Wstęp. Klasyfikacje mikroprocesorów
Wykład 2:
- Mikrokontrolery 8-bit: AVR, PIC
Wykład 3:
- Mikrokontrolery 8-bit: 8051, ST7
Wykład 4:
- Mikrokontrolery 16-bit: dsPIC, MSP
Wykład 5:
- Architektura ARM
Wykład 6:
- Mikrokontrolery 32-bit: ARM, STM, NXP
Klasyfikacje mikroprocesorów
SIMD – ang. Single Instruction Multiple Data
SISD – ang. Single Instruction Single Data
MIMD – ang. Multiple Instruction Multiple Data
MISD – ang. Multiple Instruction Single Data
CISC – ang. Complex Instruction Set Computers
RISC – ang. Reduced Instruction Set Computers
Architektury:
– Von Neumanna
– Harvardzka
– Harvardzka zmodyfikowana
Klasyfikacje mikroprocesorów
Cechy procesorów SISD:
jeden ciąg instrukcji
jeden ciąg danych
prostota konstrukcji
mała wydajność
duża popularność
większość mikrokontrolerów ma
architekturę SISD
Klasyfikacje mikroprocesorów
Cechy procesorów SIMD:
jeden ciąg instrukcji
wiele ciągów danych
wydajne przetwarzanie równoległe
różne dane obrabiane są w
identyczny sposób
używane w superkomputerach,
procesorach wektorowych oraz DSP
Klasyfikacje mikroprocesorów
Cechy procesorów CISC:
duża liczba rozkazów (instrukcji)
mała optymalizacja
niektóre rozkazy potrzebują dużej liczby cykli procesora do
wykonania
występowanie złożonych, specjalistycznych rozkazów
duża liczba trybów adresowania
do pamięci może się odwoływać bezpośrednio duża liczba
rozkazów
mniejsza od RISC-ów częstotliwość taktowania procesora
powolne działanie dekodera rozkazów
Klasyfikacje mikroprocesorów
Cechy procesorów RISC:
-
zredukowana liczba rozkazów (instrukcji) – nawet poniżej 30!
duża optymalizacja czasowa wykonania rozkazu (1 cykl)
większość rozkazów wykonywana w jednym cyklu procesora
rozkazy proste lub bardzo proste
bardzo mała liczba trybów adresowania
ograniczony dostęp do pamięci
duża częstotliwość taktowania procesora
szybkie działanie dekodera rozkazów
większość operacji wykonywana według schematu:
REGC=REGA operacja REGB
duża liczba rejestów pomocniczych
przetwarzanie potokowe (ang. pipelining)
Klasyfikacje mikroprocesorów
• Architektura von Neumanna:
–
–
–
–
wspólna pamięć programu i danych
procesor podzielony na ALU, pamięć i układy wejścia/wyjścia
wspólna magistrala dla danych i programu
dane odczytane z pamięci mogą zarówno danymi, jak i
rozkazami
– łatwość programowania (jedna, ciągła mapa pamięci)
– mała wydajność
Klasyfikacje mikroprocesorów
• Architektura harvardzka:
– osobne pamięci programu i danych
– prostsza architektura procesora – uproszczony dekoder
adresów/rozkazów
– osobna magistrala dla danych i programu
– dane odczytane z pamięci danych mogą być tylko danymi, a z
pamięci rozkazów tylko rozkazami
– niemożliwa samo-modyfikacja programu procesora
– trudniejsze programowanie (dwie mapy pamięci, różne
polecenia dostępu do różnych pamięci)
– większa wydajność dzięki uproszczeniu architektury i
podwojeniu magistral
– używane np. W DSP i odczycie pamięci cache
Mikrokontrolery AVR
ATTiny
• Główne cechy
– Procesory RISC – mało instrukcji, duża częstotliwość
zegara
– Procesory 8-bitowe o uproszczonej architekturze
– Większość instrukcji wykonywanych w jednym cyklu zegara
– Pomimo uproszczonej architektury spora wydajność –
zegary do 20MHz
– Mała ilość pamięci programu (do 16kB)
– Mała ilość pamięci SRAM (do 512B)
– Małe obudowy (nawet do SOT23-6)
– Bardzo małe zużycie energii (PicoPower)
– Zasilanie od 1.8V
ATMega
• Główne cechy
– Duża rodzina procesorów 8-bitowych o wielu
zastosowaniach
– Większość instrukcji wykonywanych w jednym cyklu zegara
– Spora wydajność – zegary do 20MHz
– Pamięć programu od 4 do 128 kB
– Pamięć EEPROM od 256 do 4096 B
– Pamięć SRAM od 0.5 do 16 kB
– Spora ilość ciekawych peryferii
– Zużycie energii w zakresie 10-20 mA (kilkadziesiąt razy
większe od ATTiny)
– Zasilanie od 1.8V
AVR XMEGA
• Główne cechy
– Nowa rodzina procesorów 8/16-bitowych
– Większość instrukcji wykonywanych w jednym cyklu zegara
– Duża wydajność – zegary do 32MHz
– Pamięć programu od 16 do 384 kB
– Pamięć EEPROM od 1 do 4 kB
– Pamięć SRAM od 2 do 32 kB
– Spora ilość ciekawych peryferii
– DMA
– Małe zużycie energii (nieco większe od ATTiny)
– Zasilanie od 1.6 do 3.6V
Mikrokontrolery PIC
Mikrokontrolery PIC
-Procesory 8-bit RISC ze zmodyfikowaną architekturą harvardzką
(instrukcje i dane na osobnych szynach)
- Pipelining dwustopniowy
- Instrukcje o długości jednego słowa
PIC10
• Główne cechy
– Procesory RISC – bardzo mało instrukcji, mała
częstotliwość zegara, duuuuuże problemy podczas pisania w
asemblerze
– Procesory 8-bitowe o bardzo uproszczonej architekturze
– Instrukcje wykonywane w jednym cyklu zegara za wyjątkiem
skoków (2 cykle)
– Niewielka wydajność – zegary do 4MHz
– Bardzo mały pobór prądu (nanoWatt)
– Mikroskopijna ilość pamięci programu (do 750 B)
– Mikroskopijna ilość pamięci SRAM (do 24 B)
– Małe obudowy (SOT23-6, DFN8, PDIP8)
– Zasilanie 2 – 5.5V
PIC16
• Główne cechy
– Procesory RISC –mało instrukcji, duża częstotliwość zegara
– Szeroka rodzina procesorów
– Instrukcje wykonywane w jednym cyklu instrukcji (4 cykle
zegara) za wyjątkiem skoków (2 cykle)
– Dobra wydajność – zegary do 32MHz
– Bardzo mały pobór prądu (nanoWatt)
– Mała ilość pamięci programu (do 16kB)
– Mała ilość pamięci SRAM (do 1024 B)
– Obecna pamięć EEPROM (ale nie wszędzie)
– Zasilanie 1.8 – 5.5V
PIC18
• Główne cechy
– Procesory RISC –mało instrukcji, duża częstotliwość zegara
(nawet 64MHz)
– Szeroka rodzina procesorów
– Instrukcje wykonywane w jednym cyklu instrukcji (4 cykle
zegara) za wyjątkiem skoków (2 cykle)
– Bardzo dobra wydajność – do 16 MIPS
– Bardzo mały pobór prądu (nanoWatt)
– Wystarczająca ilość pamięci programu (do 96kB)
– Wystarczająca ilość pamięci SRAM (do 3936 B)
– Obecna pamięć EEPROM (ale nie wszędzie)
– Zasilanie 2 – 5.5V (niektóre wersje 2-3.6 V)
Mikrokontrolery 8051
• Rodzina 8051 wzięła się od mikrokontrolera Intel
8051 stworzonego w 1980 roku
• Mikrokontrolery 8051 były przez długi czas
najpopularniejszymi mikrokontrolerami na rynku
• Jednym ze źródeł sukcesu jest fakt produkcji
mikrokontrolerów opartych o rdzeń 8051 przez wielu
producentów (np. Siemens, Infineon, Atmel, Philips,
Dallas Semiconductors, Analog Devices)
• Mikrokontrolery oparte o rdzeń 8051 są w dalszym
ciągu bardzo popularne ze względów kompatybilności
wstecz, a także dlatego, że obecnie dostępne
konstrukcje są znacznie bardziej wydajne)
Mikrokontrolery 8051
• Główne cechy:
– Mikrokontroler CISC
– Zmodyfikowana architektura Harvardzka (rozdzielone
magistrale danych i instrukcji z możliwością samomodyfikacji
kodu)
– 8-bit jednostka ALU
– 4 banki po 8 rejestrów ogólnego przeznaczenia
– 4kB wewnętrznej pamięci ROM
– 128B wewnętrznej pamięci RAM
– cztery porty równoległe P0..P3
– blok UART
– dwa timery
– system przerwań z układem priorytetów
8051 – Schemat blokowy
External interrupts
Interrupt
Control
On-chip
ROM for
program
code
Timer/Counter
On-chip
RAM
Timer 1
Timer 0
CPU
OSC
Bus
Control
4 I/O Ports
P0 P1 P2 P3
Address/Data
Serial
Port
TxD RxD
Counter
Inputs
ADuC 845
8051 by Dallas Semiconductors
• Procesory z naciskiem położonym na zwiększenie
wydajności oraz maksymalnej funkcjonalności
• Dostępne wersje przeznaczone specjalnie do
zastosowań sieciowych z wydajnymi interfejsami CAN
oraz Ethernet
• Dostępne również wersje „bezpieczne” ze
sprzętowym wspomaganiem szyfrowania danych
• Wydajność procesora do 33MIPS (oryginał – tylko
1MIPS!!!)
Mikrokontrolery STM8S
Mikrokontrolery STM8S
• Główne cechy
– Nowa rodzina procesorów 8-bitowych o architekturze
Harvardzkiej
– Instrukcje wykonywane w jednym cyklu zegara za wyjątkiem
skoków – średnio 1.6 cyklu zegara na instrukcję
– Przyzwoita wydajność – zegary do 24MHz (20 MIPS),
trzystopniowa kolejka instrukcji (pipeline)
– Duża odporność na impulsy i przepięcia
– Pamięć programu do 128 kB
– Pamięć SRAM do 6 kB
– Pamięć EEPROM do 2 kB
– Szybkie i dokładne przetworniki ADC
Mikrokontrolery PIC24
Mikrokontrolery PIC24
• Rodzina 16-bitowych kontrolerów RISC
• Podział na dwie podrodziny:
– PIC24F – mała moc, do 16 MIPS
– PIC24H – wysoka wydajność, do 40 MIPS
• Funkcja PPS (Peripheral Pin Setting) pozwalająca na
swobodny dobór rozkładu pinów
• Duży nacisk na precyzyjną kontrolę czasu
wykonania:
– łatwość manipulacji bitami (jeden cykl)
– szybka odpowiedź na przerwania (5 cykli)
– instrukcje wykonywane w jednym cyklu włącznie z
mnożeniem
Mikrokontrolery PIC24
• Główne cechy:
– Zmodyfikowana architektura Harvardzka
– 16-bit jednostka ALU
– 16 x 16 bit rejestrów ogólnego przeznaczenia
– do 256kB wewnętrznej pamięci Flash
– do 16kB wewnętrznej pamięci RAM
– do 512B pamięci EEPROM
– do 8 kanałów DMA
– liczniki 16 – bitowe z możliwością połączenia w 32-bitowe
– technologia nanoWatt
– obudowy od 14 do 100 pinów
Mikrokontrolery dsPIC
• Rodzina 16-bitowych kontrolerów RISC/DSP
• Podział na dwie podrodziny:
– dsPIC30F – mniejsze, trochę wolniejsze
– dsPIC33F – większe i bardziej wydajne (ok. 33%)
• Pomyślane jako połączenie szybkiego
mikrokontrolera 16-bitowego oraz bloku DSP
• Jedyny na rynku mikrokontroler oferujący instrukcje
DSP w obudowach QFN-28 (nawet SOIC-18) przy
cenach w granicach 3$ !!!
Mikrokontrolery dsPIC
• Główne cechy:
– Zmodyfikowana architektura Harvardzka, optymalizowana
pod kątem kompilatorów C
– 2 akumulatory 40-bitowe z opcją zaokrąglania
– 16 x 16 bit rejestrów ogólnego przeznaczenia
– do 256kB wewnętrznej pamięci Flash
– do 16kB wewnętrznej pamięci RAM
– BRAK pamięci EEPROM
– do 8 kanałów DMA
– wielorakie operacje arytmetyczne w tym MAC realizowane
w jednym cyklu
– obudowy od 18 do 110 pinów
Dziękuję za uwagę
MSP430
• Główne cechy:
– 16-bitowe procesory RISC w architekturze von Neumanna!
– Ultra mały pobór mocy (<0.25 mA/MIPS)
– Wiele sposobów sterowania zegarem
– Bardzo krótki czas wybudzania procesora
– Sporo dobrej klasy peryferiów
– Do 256 kB FLASH
– Do 16 kB RAM
– Wydajność do 25 MIPS
– Obudowy od 13 do 114 pinów
MSP430 – Pobór mocy
PIC24F16 – Pobór mocy
ATTiny11 – Pobór mocy
Pobór mocy - podsumowanie
• Pobór mocy układów MSP430 jest bardzo niski
• Pobór mocy MSP430 jest podobny do poboru rodzin
8-bitowych PIC10/12/16
• Procesory serii PIC24 mają pobór prądu prawie
dwukrotnie większy od MSP430
• Również procesory AVR mają większy pobór prądu
od MSP430
Architektura ARM
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
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-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
– Wsparcie dla odtwarzania Adobe FLASH
– Prędkość działania: do 5000 DMIPS na rdzeń
– Dostępne wersje optymalizowane pod kątem prędkości lub
zużycia energii
ARM-NEON
• Główne cechy:
– ARM NEON jest blokiem SIMD ogólnego użycia
– Przeznaczony głównie do obróbki multimediów
– Pozwala na zwiększenie wydajności przetwarzania grafiki o
około 3x w porównaniu z rodziną ARMv5
– W przypadku kodów DSP wzrost wydajności może być
jeszcze większy (do 8x)
– Posiada 32 rejestry 64-bitowe łączone w 16 rejestrów 128bitowych
Mikrokontrolery STM32
NXP ARM Family Overview
ADuC7xxx
• Główne cechy:
– Rodzina mikrokontrolerów analogowych z
rdzeniami ARM7TDMI
– Pochodna rodziny ADuC8xx z rdzeniami o
zwiększonej wydajności
– Do 96kB FLASH
– Do 8kB RAM
– Prędkość taktowania do 44MHz
– Do 16 kanałów 12-bitowego ADC
– Do 4 kanałów 12-bitowego DAC
– Dostępne również wersje z 24-bit ADC i 14-bit DAC
Freescale i rdzenie ARM
• Freescale konstruuje z rdzeniem ARM jedynie
duże i bardzo wydajne mikrokontrolery
• W mniejszych wykorzystuje swoje własne
rozwiązania (HC08, PowerQuicc, ColdFire,
PowerPC, CorIQ, …)
• Freescale wykorzystuje w swoich procesorach
rdzenie ARM9, ARM11 oraz Cortex-A8
Rodzina Stellaris
• Główne cechy:
– Rodzina oparta na wydajnym rdzeniu Cortex-M3
– Przewidziana do zastosowań o średnich wymogach
wydajnościowych
– Prędkość zegara do 100MHz
– Ponad 160 dostępnych rodzajów mikrokontrolerów
– Do 256kB FLASH
– Do 96kB RAM
– Dostępne podrodziny z blokami Ethernet, CAN oraz
USB
Rodzina Sitara
• Główne cechy:
– Wysoko wydajna rodzina oparta na rdzeniach
ARM9 oraz Cortex-A8
– Przewidziana wszędzie tam, gdzie potrzebna jest
duża wydajność (grafika, wideo) przy niskim koszcie
– Prędkość zegara od 200MHz do ponad 1GHz
– Rodzina składa się zaledwie z kilku układów
– Wiele różnych, zaawansowanych peryferiów
– Wsparcie dla aplikacji wideo
– Interfejsy do pamięci zewnętrznych (np. DDR2)
Dziękuję za uwagę

Podobne dokumenty