7. Architektura mikrokontrolerów.
Mikrokontroler – układ cyfrowy z wyspecjalizowanym mikroprocesorem, niezbędnymi urządzeniami peryferyjnymi zawartymi w jednym układzie scalonym, który:
• jest zdolny do autonomicznej pracy,
• został zaprojektowany do pracy w systemach kontrolno–pomiarowych oraz komunikacyjnych stąd posiada rozbudowany system komunikacyjny z otoczeniem,
• z reguły pracuje w czasie rzeczywistym.
Cechy mikrokontrolerów:
• umieszczenie magistrali danych i adresowej wewnątrz układu scalonego (najczęściej wyprowadzana jest również na zewnątrz),
• stała struktura pamięci ROM i RAM,
• niezmienność programu sterującego,
• rejestrowa struktura jednostki centralnej,
• dostęp do rejestrów procesora i układów we/wy poprzez mechanizm adresowania pamięci RAM,
• procesory boolowskie wykonujące operacje na pojedynczych bitach w pamięci, rejestrach i układach we/wy,
• szeroki zestaw urządzeń peryferyjnych,
• szybkie i rozbudowane systemy przerwań,
• różnorodne tryby pracy i środki redukcji poboru mocy,
• rozbudowane mechanizmy kontroli i detekcji nieprawidłowych stanów mikrokontrolera.
Architektura procesora według mapy pamięci
architektura Von-Neumana (systemy z jednolitą przestrzenią adresową) – jedna szyna danych wspólna dla danych i programu, a podział obszaru pamięci na dane i program jest umowny (zależy wyłącznie od rozmieszczenia tych elementów w obszarze adresowym podczas projektowania systemu.
- programowanie ułatwione
- powolna realizacja cyklu rozkazowego.
architektura harwardzka – dwie oddzielne szyny dla danych i rozkazów, w trakcie pobierania argumentów wykonywanej właśnie instrukcji można równocześnie zacząć pobieranie następnego Magistrala danych i rozkazów mają rożną szerokość.
Wada: utrudniony przepływ danych z pamięci programu do pamięci operacyjnej
Zmodyfikowana architektura harwardzka – obszary pamięci ROM i RAM są rozdzielone, ale mają taką samą długość słowa.
Architektura procesora według listy rozkazów:
RISC – ang. Reduced instruction set computer:
- procesor jest zbudowany zgodnie z architekturą harwardzką,
- procesor wykorzystuje przetwarzanie potokowe (pipeling ) w celu zwiększenia szybkości wykonywania programu,
- zbiór realizowanych instrukcji jest ograniczony (do kilkudziesięciu) i spełnia warunki ortogonalności (symetrii).
Architektura RISC ortogonalność:
- każda instrukcja może operować na dowolnym rejestrze roboczym,
- każda instrukcja może wykorzystywać dowolny tryb adresowania argumentów,
- brak ukrytych powiązań między instrukcjami (efektów ubocznych), które powodowałyby nieprzewidziane reakcje systemu w zależności od kontekstu użycia rozkazów w programie,
- kody rozkazów i formaty instrukcji są zunifikowane – instrukcje zajmują w pamięci programu taką samą liczbę bajtów.
Rodziny mikrokontrolerów o architekturze RISC:
ARM
Atmel AVR
MIPS
CISC – ang. Complex instruction set computer – charakteryzują się:
- złożonymi, specjalistycznymi rozkazami (instrukcjami), które do wykonania wymagają od kilku do kilkunastu cykli zegara,
- szeroką gama trybów adresowania,
- w przeciwieństwie do architektury RISC rozkazy mogą operować bezpośrednio na pamięci (zamiast przesłania wartości do rejestrów i operowania na nich),
- powyższe właściwości powodują, iż dekoder rozkazów jest bardzo rozbudowany.
W architekturze CISC pojedynczy rozkaz mikroprocesora wykonuje kilka operacji niskiego poziomu – pobranie z pamięci, operację arytmetyczną i zapis do pamięci.
Rodziny mikrokontrolerów o architekturze CISC:
x86
MISC – ang. Minimal instruction set computer – charakteryzują się:
- bardzo małą liczbą podstawowych operacji i odpowiadającymi im kodami operacji,
- zestawy instrukcji są częściej oparte na stosie, niż na rejestrach,
- mniejsza i szybsza jednostka do dekodowania instrukcji,
- szybsze wykonanie pojedynczych instrukcji.
Wadą architektury MISC jest to, że instrukcje mają skłonność do posiadania większej ilości uzależnień sekwencyjnych, to ogranicza liczbę instrukcji wykonywanych jednocześnie.
VLIW – ang. Very Long Instruction Word – mikroprocesory z bardzo długim słowem instrukcji charakteryzują się:
- maksymalnym uproszczeniem jednostek sterujących (CU) w samym mikroprocesorze,
- przerzuceniem na barki oprogramowania złożoności przepływu sterowania w mikroprocesorze, czyli wykonywania rozkazów (programu),
- uproszczoną logiką,
- dużą liczbą danych - sygnałów sterujących,
- pojedynczy rozkaz posiada w sobie zdekodowane (lub wstępnie zdekodowane) sygnały sterujące – dane oraz instrukcje dla konkretnych jednostek wykonawczych.
Pojedyncza instrukcja procesora VLIW ma wielkość kilkuset bitów – 256 i więcej.
EPIC – ang. Explicitly Parallel Instruction Computing – odmiana architektury VLIW wykorzystują mechanizmy:
- ładowania spekulatywnego ang. speculative loading,
- pobieranie danych z pamięci za nim są one wymagane przez program,
- minimalizowanie opóźnień dostępu do pamięci,
- jest kombinacją kompilacji i optymalizacji kodu wynikowego,
- kompilator wyszukuje instrukcji wymagających danych z pamięci i jeżeli to możliwe wrzuca w strumień instrukcji ich pobranie,
- przewidywania ang. prediction,
- jawnej współbieżności ang. explicit parallelism,
- grupowania instrukcji w paczki, które wykonywane są w jednym cyklu zegara.
ZISC – ang. Zero instruction set computer – charakteryzują się:
- budową opartą na niezależnych komórkach, które mogą być traktowane jak neurony lub równoległe procesory, każdy może porównywać wektor wejściowy z wzorcem zapisanym w pamięci,
- szybkością działania,
- nieograniczona skalowalnością.
Układów ZISC stosowane są powszechnie w rozpoznawaniu wzorców, ochronie oraz wyszukiwaniu informacji.
Procesory sygnałowe – ang. Digital Signal Processors – układy elektroniczne należące do klasy procesorów,
wyspecjalizowane w przetwarzaniu sygnałów analogowych lub cyfrowych w czasie rzeczywistym.
Cechy procesorów sygnałowych:
- rozdzielenie pamięci programu i danych (architektura harwardzka) z możliwością równoczesnego odczytu instrukcji oraz danych,
- sprzętowe dostosowanie do wykonywania operacji najczęściej występujących przy przetwarzaniu sygnałów tj. filtracji FIR i IIR, transformacji Fouriera, obliczaniu korelacji wzajemnej,
- potokowe przetwarzaniem instrukcji,
- specjalne mechanizmy do realizacji operacji wejścia i wyjścia w czasie rzeczywistym,
- niższe zużycie energii oraz niższy koszt zakupu w porównaniu z procesorami ogólnego przeznaczenia.