Architektury procesorów rdzeniowych mikrokontrolerów. Paweł Rolbiecki
Podział architektur według: mapy pamięci, listy instrukcji.
Mapa pamięci: to rozmieszczenie poszczególnych pamięci w przestrzeni adresowej. Oprócz adresów obszarów pamięci RAM i ROM, mapa pokazuje umiejscowienie: rejestrów, adresów procedur obsługi przerwać, rejestrów układów we/wy.
Podział architektur ze względu na mapę pamięci: architektura harwardzka, zmodyfikowana architektura harwardzka, architektura Von-Neumana.
Architektura harwardzka Dwie oddzielne szyny dla danych i dla rozkazów skutkują: równoczesnemu pobieraniu następnego słowa rozkazowego i argumentów obecnie wykonywanej instrukcji, skróceniu cyklu rozkazowego, zwiększeniu szybkości pracy.
Architektura harwardzka Rozdzielenie obszarów adresowych pamięci programu i danych powoduje: niejednoznaczność adresów (np jc. widzi pod tym samym adresem pamięć RAM i ROM), zastosowanie innych rozkazów dla pamięci programu i dla pamięci danych, różna długość słowa magistrali danych i rozkazów.
Architektura harwardzka Wadą rozdzielenia pamięci jest utrudniony przepływ danych z pamięci programu do pamięci operacyjnej (indeksowane przesyłanie danych z ROM do RAM jest niemożliwe, nie można budować tabel współczynników stałych w pamięci ROM) PIC16F873 firmy Microchip
Architektura harwardzka
Architektura Von-Neumana Charakteryzuje się jednolitą przestrzenią adresową: wszystkie pamięci, rejestry i układy we/wy umieszczone są we wspólnej przestrzeni adresowej, podział przestrzeni adresowej na pamięć programu, pamięć danych i obszar we/wy podział jest umowny, realizowany podczas projektowania systemu
Architektura Von-Neumana Wspólna szyna adresowa umożliwia: łatwe programowanie, gdyż dostęp do pamięci danych, programu i urządzeń odbywa się przez zunifikowane rozkazy wykorzystujące te same tryby adresowania, stosowanie takich samych rozkazów dla pamięci danych i programu, proste tworzenie tablic stałych, wektorów w pamięci ROM. ST72215G firmy STMicroelectronics
Architektura Von-Neumana
Zmodyfikowana architektura harwardzka: Jest rozwiązaniem pośrednim łączącym zalety architektury harwardzkiej i Von-Neumana Obszary pamięci RAM i ROM są rozdzielone, ale posiadają taką sama długość słowa Poprzez odpowiednią organizację magistrali można przesyłać stałe z pamięci ROM do rejestrów i RAM COP880 firmy National Cemiconductors
Zmodyfikowana architektura harwardzka
Lista instrukcji: zestaw podstawowych instrukcji, jakie dany procesor potrafi wykonać, Lista rozkazów jest niezbędna dla programistów wykorzystujących procesor bezpośrednio (asembler, twórcy kompilatorów).
Podział architektur ze względu na listę instrukcji: architektura RISC (reduced instruction set computer), architektura CISC (complex instruction set computer).
RISC: Procesor zbudowany jest zgodnie z architekturą harwardzką Procesor wykorzystuje przetwarzanie potokowe, w celu zwiększenia szybkości wykonania programu Zbiór realizowanych instrukcji jest ograniczony i spełnia warunki ortogalności
RISC i przetwarzanie potokowe JC pobiera na zapas instrukcje i kieruje je do współbieżnego wykonania w poszczególnych jednostkach wykonawczych Zamiast rejestru instrukcji stosuje się pamięc FIFO (first in first out) Do rejestru FIFO pobierane są instrukcje
RISC i ortogonalność Każda instrukcja może operować na dowolnym rejestrze roboczym, brak wyróżnionych rejestrów do konkretnych zadań Każda instrukcja może wykorzystać dowolny tryb adresowania argumentów Brak powiązań pomiędzy instrukcjami powodujących nieprzewidywalne zachowanie programu Kody rozkazów i format instrukcji są zunifikowane, zajmują taką samą liczbę bajtów w pamięci
RISC Klasyczna architektura RISC stosowana jest bardzo rzadko, często stosuje się elementy tej architektury z zachowaniem częściowej ortogonalności Atmega, AVR, ARM
CISC Rozbudowana liczba instrukcji (często powyżej 100) Ortogonalność nie jest zachowana Instrukcje są wyspecjalizowane, współpracują z określonymi rejestrami, używają konkretne tryby adresowania Procesory i86
Bibliografia Mikrokontrolery i Mikrosystemy dr inż. Zbigniew Czaja (18.05.2010)