następny punkt »


1. Budowa mikroprocesora

Podstawowymi blokami mikroprocesora są: blok arytmetyczno-logiczny ALU oraz rejestry, do których zapisywane są (wskazywane przez program) argumenty i wyniki operacji wykonywanych przez ALU. Często wynik operacji jest zapisywany do jednego z rejestrów przechowujących argumenty. Takim wyróżnionym rejestrem jest rejestr akumulatora oznaczany literą A. Na rysunku XIII.1 pokazano uproszczony schemat mikroprocesora, który ma dwa rejestry: rejestr A i rejestr B, do którego może być zapisywany drugi argument operacji wykonywanych przez ALU. Przykładowo operacja sumowania dwóch liczb polega na zapisaniu jednej z nich do rejestru A (np. z pamięci), drugiej do rejestru B, a po wykonaniu działania, zapisaniu wyniku do rejestru A. Ważnym rejestrem jest rejestr znaczników ZN, który jest zapisywany w zależności od wyników operacji wykonywanych przez ALU. Rejestr ten zawiera bity charakteryzujące wynik operacji. Przykładowo jeśli wynik operacji jest równy zeru, to znajdujący się w rejestrze znaczników bit Z jest ustawiany w stan 1. Inne bity rejestru znaczników to bit parzystości wyniku P, bit znak wyniku S i przeniesienie powstające na najbardziej znaczącej pozycji C.

Na rysunku XIII.1 pokazano jeszcze: rejestr rozkazów RR, układ sterowania, licznik rozkazów PC oraz dwukierunkowy bufor magistrali danych. Wyjaśnijmy teraz rolę tych układów. Do rejestru rozkazów jest zapisywane słowo, które stanowi kod operacyjny rozkazu. Bity tego słowa wskazują czynności, które ma wykonać mikroprocesor. Słowo to jest dekodowane w układzie sterowania, który rozpoznając odpowiednie bity, wytwarza wyjściowe sygnały sterujące (sygnały magistrali sterującej). Sygnały te są wysyłane do pamięci i urządzeń zewnętrznych określając, które z tych bloków mają być aktywne. Wskazują także czy aktywny blok ma wysłać na magistralę danych słowo określone adresem wysyłanym przez procesor (w czasie odczytu), czy też odebrać słowo i zapisać pod wysłany przez procesor adres (w czasie zapisu). Zadaniem licznika rozkazów PC jest wysyłanie na magistralę adresową odpowiednich adresów. Zadaniem bufora magistrali danych jest umożliwienie dwukierunkowego przesyłania danych (do i z mikroprocesora).

Rysunek XIII.1. Uproszczony schemat mikroprocesora

Mikroprocesor komunikuje się z otoczeniem poprzez magistralę (inaczej szyną) systemową. Składa się ona z 3 części: magistrali adresowej (linie wyjściowe), dwukierunkowej magistrali danych i magistrali sterującej z sygnałami zarówno wejściowymi jak i wyjściowymi układu sterującego.

Rysunek XIII.2. Uproszczony schemat systemu mikroprocesorowego

Na rysunku XIII.2 pokazano połączenia mikroprocesora z pamięcią i urządzeniami zewnętrznymi poprzez magistralę. Jest to najtańszy sposób łączenia wielu bloków systemu. Zaletą jest także to, że umożliwia mikroprocesorowi odczyt i zapis danych tymi samymi liniami (magistrala danych). Wadą jest to, że w takim układzie komunikacja jest najwolniejsza, bo transmisje można prowadzić jedynie pomiędzy dwoma blokami.

Komputery o architekturze von Neumanna działają w taki sposób, że procesory odpowiednio adresują pamięć i odczytują kolejne rozkazy z programu napisanego przez programistę i umieszczonego w pamięci. Program, oprócz rozkazów, zawiera także argumenty operacji, składające się na ten program, bądź adresy miejsc przechowywania argumentów w pamięci. Program umieszczony jest w pamięci w kolejnych komórkach. W czasie wykonywania programu odczytywane są rozkazy (w postaci słów binarnych) i umieszczane w rejestrze rozkazów mikroprocesora RR. Układ sterowania odczytuje zawartość rejestru RR, dekoduje ją (rozpoznając rodzaj rozkazu) i na tej podstawie generuje odpowiednie sygnały sterujące dla pozostałych bloków mikroprocesora.

Rozpoczęcie wykonywania programu polega na przesłaniu do pamięci adresu pierwszego rozkazu tego programu. W tym celu odpowiedni adres jest ładowany do licznika rozkazów PC (ang. program counter). Zawartość rejestru PC jest wysyłana na magistralę adresową i określa adres pamięci. W dalszym ciągu wykonywania programu zawartość rejestru PC jest zwiększana o 1 (inkrementacja) po każdym odczycie pamięci i w ten sposób odczytywane są z pamięci kolejne słowa programu (rozkazy, argumenty, adresy). Zadaniem układu sterowania jest rozpoznanie charakteru odczytywanej informacji. W zależności od tego czy jest to rozkaz, czy argument, czy adres, to układ sterowania decyduje o dalszej akcji. Jeśli układ sterowania stwierdzi, że odczytano z programu adres argumentu, to zmienia kolejność adresowanych komórek pamięci ładując do rejestru PC nową wartość, tą którą odczytał z programu. Poprzednia zawartość rejestru PC jest zapamiętywana, tak aby po odczytaniu argumentu powrócić do odczytania kolejnego rozkazu.

Mikroprocesory różnią się między sobą wieloma parametrami, jak np. długość słowa (długość rejestrów), liczba rejestrów (waha się od 2 do kilkuset), długość licznika rozkazów PC (wielkość pamięci możliwa do zaadresowania), liczba sygnałów sterujących (wejściowych i wyjściowych), liczba bitów w rejestrze znaczników i operacje wykonywane przez ALU.

W niniejszym opracowaniu przykładowym mikroprocesorem będzie mikroprocesor Z-80. Jest to prosty ośmiobitowy mikroprocesor, który ma ośmiobitowy rejestr akumulatora A oraz blok sześciu rejestrów ośmiobitowych B, C, D, E, H i L. Rejestry bloku mogą być używane jako rejestry szesnastobitowe, gdyż można je łączyć w pary BC, DE i HL. Mikroprocesor Z-80 ma jeszcze następujące rejestry: :

PC - szesnastobitowy licznik programu,

SP - szesnastobitowy wskaźnik stosu,

dwa szesnastobitowe rejestry indeksowe IX i IY,

ośmiobitowy rejestr przerwań I.

Rola, znaczenie i wykorzystywanie tych rejestrów będzie wyjaśniona później.


 następny punkt »