Budowa procesora i jego miejsce w mikrokontrolerach
Próba definiowania złożonego obiektu technicznego, jakim jest procesor, jest trudna, ponieważ wymaga abstrahowania od tych spośród jego rozlicznych cech, które - dosyć arbitralnie - uważamy za mniej istotne. Tym niemniej spróbuję dość precyzyjnie opisać budowę i zasadę działania procesora, którą będę udokładniać i uszczególniać do samego końca mojej pracy.
Procesor przetwarza informacje wykonując na niej elementarne operacje nazywane instrukcjami lub rozkazami. Ciąg instrukcji realizujący konkretne zadanie nazywany jest programem. Procesor jest skomplikowanym automatem, który może wykonywać kilkaset dosyć prostych czynności - tzn. rozkazów maszynowych. Każdy rozkaz ma własny kod, liczbę zapisaną w jednym lub kilku bajtach. Procesor pobiera z pamięci kolejne bajty traktując je jako rozkazy lub dane i wykonuje zaprogramowane operacje. Procesor dzieli się na dwie podstawowe jednostki : wykonawczą i sterującą.
Zadaniem jednostki wykonawczej jest przetwarzanie informacji czyli wykonywanie operacji artmetycznych i logicznych. Rodzaj wykonywanych operacji zależy od sygnałów sterujących przesyłanych przez jednostkę sterującą. W skład jednostki wykonawczej wchodzi : jednostka artmetyczno-logiczna, oraz zestaw rejestrów, które z nią współpracują. Informacją wejściową do jednostki wykonawczej są dane a informacją wyjściową wyniki w postaci liczb tekstu sygnałów sterujących pracą innych urządzeń.
W skład jednostki sterującej wchodzi : rejestr rozkazów, dekoder rozkazów oraz układ sterowania. W rejestrze rozkazów przechowywany jest kod aktualnie wykonywanego rozkazu (instrukcji). W czasie wykonywania programu procesor odczytuje kolejne rozkazy, które następnie musi rozpoznać (dekodować).
Istnieje wiele rodzajów mikroprocesorów. Większość z nich różni się częstotliwością zegara, wyrażaną w magahercach. Im wyższa częstotliwość zegara tym szybszy procesor. Wszystkie mikroprocesory więc zawierają podobne elementy:
1. układ sterowania i synchronizacji, który kontroluje pracę procesora i wytwarza sygnały potrzebne do sterowania niektórymi elementami komputera.
2. arytmometr, czyli układ, który wykonuje operacje arytmetyczne i logiczne (niektóre procesory mają kilka arytmometrów).
3. rejestry, tj. układy pamięci.
4. wbudowana pamięć podręczna cache, która działa podobnie do zewnętrznej pamięci RAM. Zapewnia ona, że procesor nie jest zmuszony czekać na dane potrzebne mu do pracy.
5. koprocesor matematyczny, który jest zestawem instrukcji przeznaczonych do obsługi skomplikowanych operacji matematycznych.
6. wewnętrzne szyny łączące elementy procesora.
Podstawowymi rejestrami, które znajdują się w każdym mikroprocesorze, są:
1. licznik rozkazów - zawiera on adres następnego rozkazu do wykonania.
2. rejestr rozkazów - zawiera kod aktualnie wykonywanego rozkazu.
3. akumulator, jest używany w czasie wykonywania rozkazów arytmetycznych, logicznych, I/O i in. niektóre procesory mają kilka takich rejestrów.
4. rejestr znaczników - zawiera dodatkowe informacje o wyniku operacji arytmetyczno-logicznych, np. "wynik równy zeru".
Schemat blokowy procesora
OZNACZENIA
RAM (Random Acces Memory) - pamięć operacyjna
BU (Bus Unit) - układ zarządzający magistralami
AU (Addresing Unit) - układ obliczania adresu połączony z
MMU (Memory Management Unit) układem zarządzania pamięcią
IU (Instruction Unit) - dekoder instrukcji
EU (Execution Unit) -moduł wykonawczy zawiera
ALU (Aritmetic-Logic Unit) jednostkę arytmetyczno-logiczną
FPU (Floating Point Unit) jednostkę zmiennoprzecinkową
ALU - układ ten jest często nazywany układem wykonawczym procesora, ponieważ wykonuje on większość rozkazów zlecanych procesorowi. Blok ALU jest układem, który realizuje różne funkcje w zależności od zaprogramowanej operacji, tj. rozkazu umieszczonego w programie. Argumentami tych rozkazów są słowa binarne. Rozkazy te mogą dotyczyć operacji artmetycznych (dodawanie i odejmowanie) lub logicznych (sumowanie, mnożenie itp.).
Rejestry
Zarówno jednostka artmetyczno-logiczna jak i układ sterowania musi współpracować z określonym zestawem rejestru. Zawartość pewnej części rejestru może być zmieniona w wyniku wykonania przez procesor określonej instrukcji. Rejestry takie nazywamy rejestrami dostępnymi programowo. W grupie tych rejestrów występują takie typy rejestrów, których odpowiedniki znajdują się praktycznie w każdym mikroprocesorze. Ich pojemność lub ilość może się zmieniać jednak zastosowanie i wykonywane zadania pozostają takie same.
A - akumulatory
B,C,D,E,H,L - rejestry robocze
SP - wskaźnik stosu
F - rejestr flagowy
PC - licznik rozkazów
Akumulator - jest to rejestr, który zawiera jeden z argumentów wykonywanej operacji i do którego ładowany jest wynik wykonywanej operacji.
Rejestr flagowy - zawiera dodatkowe cechy wyniku wykonywanej operacji, które potrzebne są do podjęcia decyzji o dalszym sposobie przetwarzania informacji. Cechami tymi mogą być: znak wyniku, przekroczenie zakresu, parzysta lub nieparzysta liczba jedynek. Wystąpienie określonej cechy sygnalizowane jest ustawieniem lub wyzerowaniem określonego bitu w rejestrze flagowym. Ustawione bity nazywane są znacznikami lub flagami.
Licznik rozkazów - jest jednym z istotniejszych rozkazów dzięki któremu procesor potrafi pobierać kolejne rozkazy do wykonania. Licznik rozkazów zawiera adresy komórki pamięci w której przechowywany jest kod rozkazu przeznaczony do wykonania jako następny.
Oprócz tego procesor ma kilka (kilkanaście) rejestrów używanych w czasie wykonywania niektórych rozkazów np. wskaźnik stosu służący do adresowania pamięci. Stosem nazywamy wyróżniony obszar pamięci, używany według następujących reguł:
> Informacje zapisywane są na stos do kolejnych komórek przy czym żadnego adresu nie wolno pominąć
> Informacje odczytuje się w kolejności odwrotnej do zapisu
> Informacje odczytujemy z ostatnio uzupełnianej komórki natomiast zapisujemy do pierwszej wolnej
Stos jest wydzielonym miejscem w pamięci w którym obowiązuje zasada: ostatni wchodzi pierwszy wychodzi.
Co to jest mikrokontroler?
Mikrokontroler – jest to układ cyfrowy z wyspecjalizowanym mikroprocesorem i niezbędnymi urządzeniami zawartymi w jednym układzie scalonym, czyniącymi go układem autonomicznym tzn. że do pracy nie potrzebuje żadnych urządzeń zewnętrznych.
Jednostka centralna to nie jest nic innego jak procesor rdzeniowy. Jak widać na powyższym rysunku procesor jest mózgiem każdego mikrokontrolera.
Procesor należy do grupy układów cyfrowych, określanych jako układy synchroniczne i sekwencyjne. Na czym polega synchroniczność i sekwencyjność?
· Synchroniczność polega na tym, że wszystkie operacje są wykonywane w rytm sygnału zegarowego;
· Sekwencyjność oznacza, że stan wyjść jednostki centralnej zależy nie tylko od stanu jej wejść, ale i od poprzednich stanów tego układu.
Jednostka centralna posiada również własną pamięć (rejestry) do np. przechowywania argumentów bądź rozkazów niezbędnych do wykonania danej operacji.
Mikroprocesor jest sercem mikrokontrolera komunikuje się z otoczeniem przy pomocy zespołów, sygnałów cyfrowych tzw. „szyn” Jest to szyna danych, szyna adresowa oraz szyna sterująca. Zespół tych trzech szyn określany jest jako szyny systemowe. Przy pomocy tych szyn przyłączane są do mikroprocesora dwa pozostałe elementy nie zbędne do budowy mikrokontrolera pamięć oraz urządzenie peryferyjne.
Bibliografiahttp://www.zcie.ps.pl/dydaktyka/tm_w/TM_W1.pdf
http://microcontroller.com/
Książki:
· „Mikroprocesor w pytaniach i odpowiedziach” – K. Sacha i A. Rydzewski
darek9877