Przegląd - Architektura


Rodzina komponentów ZiLOG Z80 należy do czwartej generacji układów mikroprocesorowych posiadających wyjątkową moc obliczeniową. Oferują one większą przepustowość systemu oraz bardziej efektywne wykorzystywanie pamięci  niż porównywalne mikroprocesory drugiej czy trzeciej generacji. Oferowana szybkość pracy od 6 do 20MHz jest zupełnie wystarczająca w szerokim zakresie zastosowań. Wewnętrzne rejestry zawierają 208 bitów bardzo szybkiej pamięci do zapisu i odczytu , która jest dostępna dla programisty. Rejestry te zawierają dwa zestawy po sześć rejestrów ogólnego przeznaczenia, które można używać indywidualnie jako albo rejestry 8-mio bitowe, albo pary rejestrów 16-to bitowych. Dodatkowo istnieją dwa zestawy rejestrów akumulatora oraz znaczników.

Mikroprocesor Z80 zawiera również Wskaźnik Stosu, Licznik Programu, dwa rejestry indeksowe, rejestr odświeżania oraz rejestr przerwań. Układ Z80 łatwo adaptuje się w różnych urządzeniach, ponieważ wymaga on pojedynczego zasilania +5V. Wszystkie sygnały wyjściowe są w pełni dekodowane i przystosowane czasowo do sterowania standardowymi układami pamięci i wejścia/wyjścia; mikroprocesor Z80 jest wspierany przez olbrzymią rodzinę układów we/wy firmy ZiLOG oraz trzeciorzędnych producentów.

Na rys.1 przedstawiona jest wewnętrzna architektura oraz główne elementy składowe mikroprocesora Z80.

 

Rys.1 Schemat blokowy mikroprocesora Z80

Rejestry procesora

Mikroprocesor Z80 zawiera 208 bitów pamięci R/W, które są dostępne dla programisty. Rys.2 ilustruje sposób podziału tej pamięci na osiemnaście rejestrów 8-bitowych oraz cztery rejestry 16-bitowe. Wszystkie rejestry Z80 zbudowane są ze statycznej pamięci RAM. Rejestry zawierają dwa zestawy po sześć rejestrów ogólnego przeznaczenia, które można indywidualnie używać jako rejestry 8-bitowe lub w parach jako rejestry 16-bitowe. Mamy również dwa akumulatory i dwa rejestry znaczników oraz sześć rejestrów o specjalnym przeznaczeniu.

 

Rys.2 Konfiguracja rejestrów mikroprocesora Z80

 

Rejestry specjalnego przeznaczenia

Licznik Rozkazów (PC)

Licznik Rozkazów PC (ang. Program Counter) przechowuje 16-bitowy adres bieżąco pobieranej z pamięci instrukcji. PC jest automatycznie zwiększany po przesłaniu swojej zawartości na linie adresowe. Gdy zdarza się skok w programie, nowa wartość jest automatycznie umieszczana w PC, zastępując wartość poprzednio zwiększoną.

Wskaźnik Stosu (SP)

Wskaźnik Stosu SP (ang. Stack Pointer) przechowuje 16-bitowy adres bieżącego wierzchołka stosu, który może znajdować się w dowolnym miejscu zewnętrznej pamięci RAM. Pamięć zewnętrznego stosu ma strukturę typu LIFO (ang. Last In First Out - ostatni wszedł a pierwszy wyszedł). Dane mogą być umieszczane na stosie z określonych rejestrów mikroprocesora oraz pobierane ze stosu do tychże rejestrów przez wykonanie instrukcji PUSH lub POP. Dane pobierane ze stosu są zawsze danymi ostatnio na nim umieszczonymi. Stos umożliwia prostą implementację wielopoziomowych przerwań, nieograniczonego zagnieżdżania podprogramów oraz upraszcza wiele rodzajów przetwarzania danych.

Dwa Rejestry Indeksowe (IX oraz IY)

Dwa niezależne rejestry indeksowe przechowują 16-bitowy adres bazowy, który używany jest w indeksowanych trybach adresowania. W takim trybie rejestr indeksowy stosuje się jako bazę wskazującą obszar pamięci, z którego będą dane pobierane lub do którego dane będą zapisywane. W instrukcjach z indeksowaniem występuje dodatkowy bajt określający przemieszczenie w stosunku do adresu bazowego. Przemieszczenie jest liczbą całkowitą ze znakiem zapisana w kodzie uzupełnienia do 2 - U2. Taki tryb adresowania znacząco upraszcza wiele programów, szczególnie tych używających tablic danych.

Rejestr Strony Adresu Przerwania (I)

Mikroprocesor Z80 może pracować w trybie, gdzie w odpowiedzi na przerwanie następuje wywołanie procedury obsługującej je umieszczonej w dowolnym obszarze pamięci. Do tego celu wykorzystywany jest rejestr I, w którym przechowywane jest 8 najstarszych bitów adresu procedury obsługi przerwania (tzw. adres strony), a młodsze 8 bitów podaje urządzenie zgłaszające przerwanie. Właściwość ta pozwala dynamicznie rozmieszczać procedury obsługi przerwań w dowolnym miejscu pamięci z minimalnym czasem dostępu do takiej procedury.

Rejestr Odświeżania Pamięci (R)

Mikroprocesor Z80 zawiera licznik odświeżania pamięci, umożliwiający wykorzystanie pamięci dynamicznych z taką samą łatwością jak pamięci statycznych. Po pobraniu każdej instrukcji siedem bitów tego 8-bitowego rejestru licznika jest automatycznie zwiększane. Ósmy bit pozostaje tak, jak został zaprogramowany przy pomocy instrukcji LDA R,A. Dane zawarte w liczniku odświeżania są wysyłane na dolną połowę magistrali adresowej wraz z sygnałem informującym o odświeżaniu podczas dekodowania i wykonywania pobranej instrukcji. Ten sposób odświeżania jest przezroczysty dla programisty i nie powoduje żadnych opóźnień wykonania instrukcji programu. Podczas odświeżania zawartość rejestru I jest umieszczana w górnej połówce magistrali adresowej.

Rejestry Akumulatora i Znaczników

Mikroprocesor zawiera dwa niezależne, 8-bitowe akumulatory oraz związane z nimi 8-bitowe rejestry znaczników. Akumulator A przechowuje wynik 8-bitowych operacji arytmetycznych lub logicznych, natomiast rejestr znaczników F - FLAG informuje o specyficznych warunkach dla operacji 8- i 16-bitowych, np. zawiera informację, czy wynikiem danej operacji jest zero lub wartość różna od zera. Programista wybiera  akumulator i rejestr znaczników przy pomocy pojedynczej instrukcji wymiany EX AF,AF', zatem możliwa jest praca z dowolną parą tych rejestrów.

 

Rejestry ogólnego przeznaczenia

W dwóch dobranych zestawach rejestrów ogólnego przeznaczenia znajduje się po sześć rejestrów 8-bitowych, które można używać indywidualnie jako rejestry 8-bitowe lub w parach jako rejestry 16-bitowe. Jeden zestaw jest zwany BC, DE i HL, a drugi BC', DE' i HL'. W każdej chwili programista może instrukcją EXX przełączyć się z jednego zestawu na drugi. W systemach wymagających szybkiej odpowiedzi na przerwania jeden zestaw rejestrów ogólnego przeznaczenia oraz akumulator i rejestr znaczników może być zarezerwowany dla takiej szybkiej procedury. Powoduje to znaczne skrócenie czasu obsługi przerwania, ponieważ odpada potrzeba zapamiętywania stanu używanych rejestrów na stosie przy wejściu do procedury przerwania oraz odtwarzania stanu tych rejestrów przy wyjściu z procedury. Rejestry ogólnego przeznaczenia stosowane są praktycznie we wszystkich aplikacjach. Ułatwiają również programowanie, szczególnie w systemach opartych na pamięci ROM, gdzie jest dostępne mało zewnętrznej pamięci R/W.

 

Jednostka Arytmetyczno Logiczna (JAL)

8-bitowe instrukcje arytmetyczne i logiczne mikroprocesora wykonywane są w JAL. Wewnętrznie JAL komunikuje się z rejestrami i zewnętrzną magistralą danych przy pomocy wewnętrznej magistrali danych. Funkcje wykonywane przez JAL to:

 

Rejestr Instrukcji oraz Sterowanie Mikroprocesorem

Po pobraniu każdej instrukcji z pamięci zostaje ona umieszczona w rejestrze INSTRUKCJI i zdekodowana. Funkcje tę wykonuje sekcja sterująca mikroprocesora, która następnie dostarcza odpowiednich sygnałów sterujących, niezbędnych do odczytu/zapisu danych do rejestrów, sterowania Jednostką Arytmetyczno-Logiczną oraz wygenerowania pożądanych zewnętrznych sygnałów sterujących.

 



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2018 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.