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ę