Technika mikroprocesorowa I Wykład 1

Podobne dokumenty
Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Technika mikroprocesorowa I Wykład 2

Technika mikroprocesorowa I Wykład 1

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Organizacja typowego mikroprocesora

Architektura komputerów

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Struktura i działanie jednostki centralnej

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

LEKCJA TEMAT: Współczesne procesory.

Budowa i zasada działania komputera. dr Artur Bartoszewski

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

ARCHITEKTURA PROCESORA,

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

MIKROKONTROLERY I MIKROPROCESORY

Architektura systemów komputerowych

Mikroprocesor Intel 8088 (8086)

Architektura komputerów

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Budowa komputera Komputer computer computare

LEKCJA TEMAT: Zasada działania komputera.

Logiczny model komputera i działanie procesora. Część 1.

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Architektura mikroprocesorów TEO 2009/2010

Architektura systemów komputerowych. dr Artur Bartoszewski

organizacja procesora 8086

Podstawy Techniki Mikroprocesorowej

Programowanie niskopoziomowe

Przykładowe pytania DSP 1

Sprzęt i architektura komputerów

Metody obsługi zdarzeń

Technika mikroprocesorowa I Wykład 3

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Architektura typu Single-Cycle

Przerwania, polling, timery - wykład 9

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Mikroprocesor Operacje wejścia / wyjścia

Architektura komputerów. Asembler procesorów rodziny x86

Projektowanie. Projektowanie mikroprocesorów

UTK jednostki wykonawczej EU (Ex ecution Unit), jednostki steruj c ej CU,

WPROWADZENIE Mikrosterownik mikrokontrolery

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Hardware mikrokontrolera X51

Architektura komputera

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Technika Mikroprocesorowa II Wykład 1

SYSTEM MIKROPROCESOROWY

Architektura komputerów Wykład 2

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Budowa Mikrokomputera

architektura komputerów w 1 1

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Technologie Informacyjne Wykład 3

Temat: Pamięci. Programowalne struktury logiczne.

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wykład Mikroprocesory i kontrolery

Magistrala systemowa (System Bus)

Maszyny liczace - rys historyczny

Sprzęt i architektura komputerów

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

Mikrokontrolery czyli o czym to będzie...

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Programowalne układy logiczne

Procesory. Schemat budowy procesora

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Architektura komputerów wer. 7

LEKCJA. TEMAT: Funktory logiczne.

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

UKŁADY CYFROWE. Układ kombinacyjny

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Ćw. 7: Układy sekwencyjne

Architektura komputerów wer. 3

Mikrokontroler 80C51

4. MATERIAŁ NAUCZANIA

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

Programowanie Niskopoziomowe

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Architektura komputerów

Lista rozkazów mikrokontrolera 8051

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Programowanie Niskopoziomowe

Transkrypt:

Technika mikroprocesorowa I Wykład 1

Układy mikroprocesorowe. Przykłady rozwiązań Autor: Bartłomiej Zieliński Układy mikroprocesorowe Ryszard Krzyżanowski Mikroprocesor Z80 Jerzy Karczmarczuk "Układy mikroprocesorowe Z80" Fedyna, Mizeracki pl.wikipedia.org Literatura do bieżącego wykładu:

Mikroprocesor- definicje!!! Mikroprocesor to synchroniczny automat sekwencyjny wykonujący dołączony z zewnątrz program. Definicja Wikipedia: Mikroprocesor układ cyfrowy wykonany jako pojedynczy układ scalony o wielkim stopniu integracji (LSI) zdolny do wykonywania operacji cyfrowych według dostarczonego ciągu instrukcji.

Do działania mikroprocesora niezbędny jest sygnał zegarowy, który wyznacza szybkości jego pracy. Program wykonywany przez mikroprocesor składa się z rozkazów (instrukcji). Lista instrukcji jest stała, charakterystyczna dla danego mikroprocesora, uniwersalna lub zorientowana (np. na przetwarzanie obrazu, obliczenia numeryczne itp.)

Budowa mikroprocesora Jednostka sterująca PROGRAM IR Dek Układ sterowania SYGNAŁY STERUJĄCE WEWNĘTRZNE SYG. STER. A F DANE B D C E ALU DANE-WYNIKI Jednostka wykonawcza

Budowa mikroprocesora Podstawowymi podzespołami mikroprocesora są: - Jednostka wykonawcza EU (Execution Unit), która przetwarza informacje wykonując wszelkie operacje arytmetyczne i logiczne. -Jednostka sterująca CU (Control Unit), która określa rodzaj wykonywanych operacji. W skład jednostki wykonawczej EU wchodzą: -jednostka arytmetyczno-logiczna ALU, -zestaw współpracujących z nią rejestrów. Informacją wejściową części wykonawczej są dane, zaś wyjściową wyniki.

W skład jednostki sterującej CU wchodzą: - rejestr rozkazów IR, - dekoder rozkazów, - układ sterowania. W rejestrze rozkazów przechowywany jest kod aktualnie wykonywanego rozkazu. Kody rozkazów pobierane są do rejestru rozkazów z pamięci. Po pobraniu z pamięci kod rozkazu jest dekodowany w dekoderze rozkazów, czyli jest określane, jaką operację będzie wykonywał mikroprocesor. Na tej podstawie układ sterowania wytwarza odpowiedni sygnał sterujący.

Jednostka Arytmetyczno-Logiczna (ang. Arithmetic Logic Unit, ALU) układ kombinacyjny, wykonujący na danych w rejestrach operacje arytmetyczne (np. suma, różnica) oraz logiczne (np. OR, AND). Rejestry w procesorze: Akumulator A, ACC - rejestr bezpośrednio współpracujący z ALU (stanowi źródło i rejestr wynikowy dla operacji arytmetycznych i logicznych) Wskaźnik stosu SP - wskazuje koniec tzw. stosu. Licznik rozkazów PC wskazuje adres komórki pamięci programu z następnym rozkazem do wykonania Rejestr flag - zawiera flagi (znaczniki bitowe) ustawiane w zależności od wyniku wykonanej operacji (np. nadmiar, zero, bit parzystości) Rejestry ogólnego przeznaczenia tzw. robocze (służą do przechowywani argumentów, adresów itp.)

Rejestr znaczników W technice mikroprocesorowej liczby zapisywane są zasadniczo w dwóch kodach: -Naturalnym binarnym (NB)- liczby bez znaku. -Uzupełnień do 2 (U2)- liczby ze znakiem. Dla potrzeb działań na liczbach dziesiętnych nie ma wydzielonych rozkazów arytmetycznych, ale wprowadzono rozkazy korekcji dziesiętnej. Na podstawie efektów obliczeń układ ALU ustawia lub kasuje określone bity warunkowe w rejestrze znaczników.

Rozróżnia się następujące bity warunkowe: C Przeniesienie lub pożyczka, bit dynamiczny, kod NB Z- Zerowość, bit statyczny, kod NB i U2 N- Ujemność, bit statyczny, kod U2 V- Przepełnienie, bit dynamiczny, kod U2 Ponadto spotyka się jeszcze: H- Przeniesienie połówkowe, kod NB P- Parzystość (ilość jedynek). Bity statyczne są ustawione bez konieczności przeprowadzania obliczeń.

Efektami działania rozkazu mogą być: -brak zmiany bitu, -ustawienie lub skasowanie bitu w zależności od wyniku operacji, -przyjęcie stałej wartości 0 lub 1, -nieustalony stan bitu.

NB 1111 15 1110 14 1101 13 1100 12 1011 11 1010 10 1001 9 1000 8 0111 7 0110 6 0101 5 0100 4 0011 3 0010 2 0001 1 0000 0 U2 0111 7 0110 6 0101 5 0100 4 0011 3 0010 2 0001 1 0000 0 1111-1 1110-2 1101-3 1100-4 1011-5 1010-6 1001-7 1000-8 Kod Naturalny Binarny i Kod U2

Zamiana liczb dodatnich na liczby ujemne w kodzie U2 0101 5 Negacja wszystkich 1010 bitów 0001 Dodanie 1 1011-5 0111 7 Negacja wszystkich 1000 bitów 0001 Dodanie 1 1001-7

Zamiana liczb ujemnych na liczby dodatnie w kodzie U2 1001-7 Negacja wszystkich 0110 bitów 0001 Dodanie 1 0111 7 Nie da się!!! 1000-8 Negacja wszystkich 0111 bitów 0001 Dodanie 1 1000-8

Działanie bitów warunkowych KOD NB Dodawanie 0110 6 0011 3 1001 9 C=0, Z=0 1011 11 1100 12 0111 7 C=1, Z=0 0101 5 1011 11 0000 0 C=1, Z=1

Działanie bitów warunkowych KOD NB Odejmowanie W przypadku odejmowania niezależnie od kodu odjemnik jest negowany i zwiększany o1 po czym następuje dodawanie. 1100 12 0110 6 0101 5 1110 14 1100 1010 0101 0010 1 0110 6 0 0111 7 C=0, Z=0 C=1, Z=0

UWAGA w odejmowaniu bit C jest tzw. pożyczką, w związku z czym jest ustawiany wg negacji przeniesienia z najstarszego bitu

0011 3 0100 4 0111 7 Działanie bitów warunkowych KOD U2 Dodawanie 1101-3 1100-4 1001-7 0110 6 0100 4 1010-6 C=0, N=0, V=0 C=1, N=1, V=0 C=0, N=1, V=1 Wynik niepoprawny

Działanie bitów warunkowych KOD U2 1101-3 1100-4 1101 0100 0001 1 Odejmowanie 0011 3 1100-4 0101 0100 0111 7 0110 6 1001-7 0110 0111 1101-3 C=0, N=0, V=0 C=1, N=0, V=0 C=1, N=1, V=1 Wynik niepoprawny

Pamięć programu i danych Pamięć programu to element systemu mikroprocesorowego, w którym przechowywane są rozkazy wykonywane przez mikroprocesor i dane stałe. Najczęściej są to pamięci nieulotne typu ROM, EPROM, EEPROM. Pamięć danych to element systemu mikroprocesorowego, w którym przechowywane są dane i wyniki w trakcie działania mikroprocesora. Najczęściej są to pamięci RAM, EEPROM, rzadziej DRAM. Do adresowania kolejnych komórek pamięci służy magistrala adresowa mikroprocesora, do przesyłania danych, magistrala danych, do zapisu i odczytu pamięci- magistrala sterująca.

Ważne pojęcia Techniki Mikroprocesorwej Stos: wydzielony obszar pamięci służący do przechowywania danych, adresów powrotów z procedur, adresów powrotów z przerwań. Działa jak kolejka typu FI-LO (First Input-Last Output). Adres wierzchołka stosu pokazuje wskaźnik stosu. Przerwanie: sygnał zewnętrzny, wewnętrzny lub rozkaz, powodujący zarzucenie wykonywania programu po dokończeniu bieżącej instrukcji, zapamiętanie adresu powrotu do programu i przejście do wykonania tzw. procedury obsługi zakończonej odpowiednim rozkazem, powodującym powrót do programu właściwego. -sprzętowe: Ze względu na źródło, przerwania dzielimy na: -wewnętrzne (znaczniki), -zewnętrzne (sygnały), -programowe (rozkaz,).

Ze względu na sposób przyjęcia: -maskowalne (aby zostały przyjęty odpowiedni bit maski musi to umożliwić), -niemaskowalne (przyjmowane zawsze i bezwarunkowo). Cykl maszynowy- pojedynczy cykl dostępu do pamięci lub urządzenia we-wy lub akceptacji przerwania. Składa się z kilku cykli zegarowych. Cykl instrukcji- czas potrzebny do wykonani instrukcji od jej pobrania do wykonanie. Składa się z jednego lub kilku cykli maszynowych.

Instrukcja: najmniejszy element języka programowania. Po napisaniu w języku najniższego rzędu (asemblerze) i po przetłumaczeniu na kod binarny może być wykonana przez mikroprocesor. W skład instrukcji wchodzi zawsze kod operacyjny instrukcji. Mogą wejść także dodatkowe informacje typu: -dana natychmiastowa, -adres, -dalsza część kodu instrukcji, itp.. Program: jest to ciąg instrukcji wykonywanych przez mikroprocesor.

Wykonywanie programu przez procesor Zerowanie mikroprocesora Licznik rozkazów- PC=0000 0000 0001 KOD1 DANA pobranie Licznik rozkazów PC=0002 0002 0003 0004 0005 KOD2 KOD3 ADRES1 ADRES2 pobranie pobranie Licznik rozkazów PC=0003 Licznik rozkazów PC=0006 0006 0007 KOD4A KOD4B pobranie Licznik rozkazów PC=0008 0008

Wykorzystanie stosu- obsługa przerwania Licznik rozkazów PC=0000 0000 0001 KOD1 DANA Licznik rozkazów PC=0002 Wskaźnik stosu SP=1004 Przerwanie 0002 0003 KOD2 KOD3 Licznik rozkazów PC=0003 Wskaźnik stosu SP=1004 0004 0005 DANA KOD4 Licznik rozkazów PC=0005 Licznik rozkazów PC=0100 Wskaźnik stosu SP=1002 0100 0101 0102 00 05 Obszar stosu 1000 1001 1002 1003 0103 RETI Instrukcja powrotu z przerwania Licznik rozkazów PC=0005 Wskaźnik stosu SP=1004

Tryby adresacji w systemach mikroprocesorowych adresowanie natychmiastowe- argument jest pobierany bezpośrednio z rozkazu, adresowanie rejestrowe- operandy znajdują się w rejestrach wewnętrznych mikroprocesora, adresowanie bezpośrednie- adres operandu znajduje się bezpośrednio w rozkazie, adresowanie pośrednie- adres operandu znajduje się w rejestrze mikroprocesora, adresowanie bazowe- adres rozkazu wskazuje rejestr bazowy, adresowanie indeksowe- adres efektywny jest sumą zawartości adresu bazowego zawartego w rejestrze indeksowym i przesunięcia zawartego w kodzie rozkazu.

System mikroprocesorowy System mikroprocesorowy: Układ elektroniczny złożony z mikroprocesora wraz z niezbędnymi układami pamięci programu i danych, układami wejścia-wyjścia (zapewniającymi kontakt z użytkownikiem) oraz niezbędnymi układami sterującymi nosi nazwę systemu mikroprocesorowego. Mikrokontroler scalony system mikroprocesorowy, zrealizowany w postaci pojedynczego układu scalonego, który zawiera: -jednostkę centralną (CPU), -pamięć danych oraz na ogół pamięć programu, -układy wejścia-wyjścia.

System mikroprocesorowy Pamęć programu Magistrala danych DO-Di RD WR DO-Di clk Magistrala adresowa Mikroprocesor AO-Ak Schemat blokowy Pamięć danych Dekoder adresowy WR RD Magistrala sterująca Urządzenia wejściawyjścia

Magistrale systemu mikroprocesorowego Magistrala danych- służy do przesyłania danych, wyników oraz kodów instrukcji. Jest to magistrala dwukierunkowa, tzn. informacje zarówno wpływają do mikroprocesora, jak i są przez niego wysyłane do innych układów. Magistrala adresowa- służy do adresowania komórek pamięci lub układów wejścia/wyjścia, z którymi chce się komunikować mikroprocesor. Jest to magistrala jednokierunkowa, tzn. adresy są generowane tylko przez mikroprocesor. Magistrala sterująca- służy do sterowania pracą układów współpracujących z mikroprocesorem, sygnalizowania kierunku przesyłu danych oraz sygnalizowanie pewnych określonych stanów układów współpracujących.

Architektury mikroprocesorów Architektura CISC ang. Complex Instruction Set Computers Architektura RISC ang. Reduced Instruction Set Computers Architektury: Von Neumanna Harvardzka Harvardzka zmodyfikowana

Cechy architektury RISC: -zredukowana liczba rozkazów do niezbędnego minimum, -redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, bardziej zunifikowane, (upraszcza dekoder rozkazów), -ograniczenie komunikacji pomiędzy pamięcią, a procesorem, -przetwarzanie potokowe- równoległe wykonywanie rozkazów. Obecnie popularne procesory z punktu widzenia programisty są widziane jako CISC, ale ich rdzeń jest RISC-owy. Rozkazy CISC są rozbijane na mikrorozkazy, które są następnie wykonywane przez RISC-owy blok wykonawczy.

Cechy architektury CISC: -występowanie złożonych, specjalistycznych rozkazów (instrukcji), które wymagają od kilku do kilkunastu cykli maszynowych (zmienna liczba cykli), -szeroka gama trybów adresowania (skomplikowana konstrukcja dekoderów adresu), -stosunkowo długa listy rozkazów procesora. Wady architektury CISC: - zbyt długa lista rozkazów - część z nich jest rzadko używana, -zbyt dużo czasu traci się na operacje przepisania z pamięci do rejestrów i odwrotnie, -ogólnie mała efektywność w obliczeniach numerycznych.

Architektura Von Neumanna RD WR Mikroprocesor Magistrala danych Magistrala adresowa Wspólna przestrzeń adresowa dla pamięci kodu i danych. Wspólne magistrale: -danych, -adresowa, -sterująca. Pamięć danych Pamięć programu

Architektura Harvardzka Mikroprocesor Osobne magistrale adresowe i danych dla programu i danych. Magistrala danych danych Magistrala danych programu Magistrala adresowa programu Magistrala adresowa danych Pamięć danych Pamięć programu

Architektura Harvardzka, zmodyfikowana PSEN RD WR Mikroprocesor Magistrala danych Wspólna magistrala danych i adresowa, ale pamięci rozdzielone dzięki osobnym sygnałom sterującym. Magistrala adresowa Pamięć danych Pamięć programu

Intel 4004 Wprowadzony na rynek 15 listopada 1971 Cechny: -zegar 740 khz, -szyna danych: 4-bitowa, -pamięć adresowalna danych 640 bajtów, -pamięć programu 4 kilobajty. Historia Mikroprocesorów Pierwszy mikroprocesor na świecie używany w kalkulatorach Busicom

Intel 4004 Dane techniczne: -osobna pamięć dla programu i danych (tzw. architektura harwardzka"), -dostępne 46 instrukcji, -16 czterobitowych rejestrów, -stos 3-poziomowy.

Intel 8080 Został wyprodukowany w kwietniu 1974. Cechy mikroprocesora: -zegar 2 MHz, -szyna danych 8-bitowa, -liczba tranzystorów 6000, -pamięć jest adresowana 16-bitową szyną adresową, -jest on uniwersalną jednostką centralną złożoną z jednostki arytmetyczno-logicznej, rejestrów roboczych i układu sterowania, -słowo 8-bitowe, -realizuje 72 instrukcje,

-8 rejestrów programowych dostępnych dla programisty, -wymagał 3-ech napięć zasilające: +5V, +12V, -5V (włączanych w określonej kolejności), -posiadał ubogi zestaw trybów adresowania, -istniała konieczność stosowania dodatkowych układów: zegar i sterownik magistrali.

Mikroprocesor Z80 Firma Zilog została założona przez byłych pracowników firmy Intel. Opracowali oni projekt mikroprocesora opartego na Intel 8080. Nowy układ o nazwie Z80 wszedł do sprzedaży w lipcu 1976 roku. Dużą zasługę w sukcesie nowego mikroprocesora odegrała w Z80 zgodność programowa z 8080 systemy oparte na Z80 bez większych problemów mogły korzystać istniejącej już bazy oprogramowania dla 8080. Zaletami Z80 w porównaniu do 8080 były: -pojedyncze napięcie zasilające, -jednofazowy zegar, -brak konieczności stosowania dodatkowych kontrolerów magistrali, -rozszerzona lista rozkazów (m.in. rozkazy arytmetyczne 16-to bitowe),

-8-bitowa magistrala danych, Cechy mikroprocesora Z80-16-bitowa magistrala adresowa możliwość zaadresowania 64kB pamięci RAM i obszaru 256B przestrzeni in/out, -zasilanie i poziomy logiczne zgodne ze standardem TTL (za wyłączeniem zegara taktującego), -dodatkowe rozkazy (w porównaniu z 8080, m.in. adresacja indeksowa), -wszystkie sygnały sterujące i obie magistrale dostępne wprost (brak multipleksowania), -wbudowany układ odświeżania pamięci dynamicznej; -158 rozkazów, w tym 78 zgodnych z mikroprocesorem Intel 8080 (pełna wsteczna kompatybilność z 8080);

-zestaw rozkazów operujących na 16-bitowych danych (rejestry można sklejać parami); -zegar od 2MHz do 8 MHz (produkowana w NRD (Republika Demokratyczna Niemiec)- wersja 1MHz, - duży jak dla procesora 8-bitowego zestaw rejestrów wewnętrznych ogólnego przeznaczenia wraz z zestawem alternatywnych rejestrów.

Mikroprocesor Z80 (ZILOG) Schemat blokowy [www.zilog.com]

Zestaw rejestrów [www.zilog.com]

A- akumulator, rejestr współpracujący z jednostką arytmetycznologiczną ALU. Jest źródłem argumentów oraz rejestrem wynikowym przy operacjach arytmetycznych 8-mio bitowych i logicznych. Jest rejestrem uprzywilejowanym pod względem trybu ilości trybów adresacji. F- rejestr znaczników, zawiera bity warunkowe ustawiane lub kasowane w czasie działania programu. [www.zilog.com]

C- przeniesienie lub pożyczka, N- ostatnio wykonywaną instrukcją było odejmowanie lub dodawanie (informacja ta jest potrzebna do korekcji dziesiętnej po tych operacjach) P/V- parzystość/przepełnienie Po operacjach arytmetycznych wskazuje czy nastąpiło przepełnienie w przypadku działania na kodzie U2. Po operacjach logicznych wskazuje na parzystą ilość jedynek w akumulatorze. H- przeniesienie połówkowe, informuje o wystąpieniu przeniesienia pomiędzy 3 i 4 bitem bajta (do korekcji dziesiętnej). Z- zerowość, jest ustawiany na jeden jeśli w wyniku operacji arytmetycznej logicznej lub porównania wynik w akumulatorze jest równy 0 S- znak, jest kopią 7 bitu akumulatora, oznacza liczbę ujemną w kodzie U2

Rejestry B i C. Można połączyć je w parę 16-to bitową BC. Są to rejestry ogólnego przeznaczenia wykorzystywane również jako liczniki operacji blokowych i do tworzenia pętli liczących. Rejestr C służy do adresacji przestrzeni we-wy. Rejestry D i E. Można połączyć je w parę 16-to bitową DE. Są to rejestry ogólnego przeznaczenia. Rejestry H i L. Można połączyć je w parę 16-to bitową HL. Są to rejestry ogólnego przeznaczenia. Ponadto para rejestrów HL jest używana jako rejestr adresowy przestrzeni pamięci oraz jako akumulator przy operacjach arytmetycznych 16-to bitowych. Rejestry A i F rejestry lustrzane do A i F. Istnieje możliwość wymiany zawartości tych rejestrów np. na czas wykonywania obsługi przerwania. Rejestry B, C, D, E H,L - rejestry lustrzane do B,C,D,E,H,L. Istnieje możliwość wymiany zawartości tych rejestrów np. na czas wykonywania obsługi przerwania.

Rejestry IX, IY- rejestry 16-to bitowe indeksowe, służące do adresacji obszaru pamięci. W rejestrach tych znajduje się adres bazowy. Przy adresacji indeksowej, adres efektywny jest sumą adresu bazowego zawartego w Ix lub IY i 8-mio bitowego przesunięcia w kodzie U2, podanego za kodem rozkazu przesłania. Kody operacyjne instrukcji wykorzystujących rejestry indeksowe są dwubajtowe. Rejestr SP- 16-to bitowy wskaźnik stosu. Przy składaniu na stos wskaźnik jest zmniejszany a następnie następuje zapis na stos. Po rozpoczęciu programu należy go ustawić w zależności od dysponowanej pamięci. Rejestr PC- 16 bitowy licznik rozkazów, po RESET ustawiany na 0000. Wskazuje adres następnego rozkazu do odczytu. Rejestr R- rejestr odświeżania zawiera cyklicznie zwiększany adres (osiem młodszych bitów magistrali adresowej) do odświeżania pamięci dynamicznych. Rejestr I- rejestr adresu tablicy przerwań

Wyprowadzenia mikroprocesora Z80 [www.zilog.com]

Wyprowadzenia mikroprocesora Z80 A0-A15 (wy)- 16-to bitowa magistrala adresowa umożliwiająca zaadresowanie 64-kB pamięci oraz 256B urządzeń we-wy. D0-D7 (we-wy)- 8-mio bitowa magistrala danych. RD (wy)- strob odczytu pamięci lub urządzenia wejścia-wyjścia (aktywny stan niski) WR (wy)- strob zapisu do pamięci lub urządzenia wejścia-wyjścia (aktywny stan niski) MREQ (wy)- informacja iż bieżący cykl jest związany z dostępem do pamięci (aktywny stan niski) IORQ (wy)- informacja iż bieżący cykl jest związany z dostępem do urządzenia we-wy (aktywny stan niski) M1 (wy)- informacja, że bieżący cykl jest pierwszym cyklem maszynowym cyklu rozkazowego (pobranie pierwszego bajtu KO z pamięci) (aktywny stan niski)

Wyprowadzenia mikroprocesora Z80 IORQ + M1 (wy)- cykl akceptacji przerwania (informuje o przyjęciu przerwania maskowalnego) WAIT (we)- sygnał niegotowości, wykorzystywany do wydłużania cyklu magistrali przy dostępie do pamięci lub urządzenia we-wy (aktywny stanem niskim). Sygnał jest testowany opadającym zboczem w takcie T2 zegara w czasie każdego cyklu maszynowego. HALT (wy)- sygnał informujący iż mikroprocesor jest w trakcie wykonywania instrukcji HALT (aktywny stan niskim) RFSH (wy)- sygnał informujący iż wystawiony adres dotyczy odświeżania pamięci dynamicznej (aktywny stanem niskim) RESET (we)- wejście zerowania mikroprocesora, powoduje wyzerowanie licznika rozkazów i przygotowanie do pracy (aktywny stanem niskim).

Wyprowadzenia mikroprocesora Z80 CLK (we)- wejście sygnału zegarowego BUSRQ (we)- wejście żądania zwolnienia magistrali (aktywne stanem niskim). Testowane w każdym cyklu maszynowym. Jeżeli pod koniec bieżącego cyklu maszynowego mikroprocesor wykryje stan niski na tym wejściu, kończy cykl (nie kończy rozkazu) na liniach danych, adresowych i sterujących pojawia się stan wysokiej impedancji. Wysterowuje linię BUSACK. Po wycofaniu sygnału procesor dokańcza bieżący cykl rozkazowy. BUSACK (wy)- informuje iż procesor oddał magistralę.

Technika mikroprocesorowa I Wykład 2

Literatura: www.zilog.com Z80 Family, CPU User Manual

Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci, -odczyt-zapis urządzenia we-wy, -cykl oddania magistrali, -cykl przyjęcia przerwania maskowalnego, -cykl przyjęcia przerwania niemaskowalnego, -wyjście z rozkazu HALT.

Pobranie kodu rozkazu z pamięci

Cykl odczytu i zapisu pamięci

Cykl odczytu i zapisu urządzeń we-wy

Cykl oddania magistrali

Cykl przyjęcia przerwania maskowalnego

Cykl przyjęcia przerwania niemaskowalnego

INT Wyjście z rozkazu HALT

System przerwań mikroprocesora Z80 Z80 posiada dwa wejścia zgłaszania przerwań: NMI- przerwanie niemaskowalne, INT- przerwanie maskowalne (odmaskowanie rozkazem EI (enable Ibterrupt), zamaskowanie rozkazem DI (Disable Interrupt). Przerwanie NMI Przerwanie jest aktywne opadającym zboczem na wejściu NMI. Pojawienie się ujemnego zbocza (przejście z 1 na 0 ), powoduje: -złożenie na stosie adresu powrotu do programu głównego, -załadowanie do PC adresu 0066h (stały adres obsługi przerwania niemaskowalnego).

Tryby przyjęcia przerwania maskowalnego: W mikroprocesorze Z80 są 3 tryby przyjmowania przerwania maskowalnego, przełączane rozkazem IMx (Interrupt Mode x-numer modu). W architekturze wewnętrznej mikroprocesora Z80 istnieją dwa przerzutniki flip-flop odpowiedzialne za aktywację obsługi przerwań maskowalnych. Noszą nazwę odpowiednio: IFF1 i IFF2. IFF1- włącza i wyłącza obsługę przerwań maskowalnych (jest maską przerwań maskowalnych, po RESET- zerowany), IFF2 -stanowi tymczasowe miejsce przechowywania stanu maski przerwań (stanu przerzutnika- IFF1 jest przepisywany do IFF2), po RESET IFF1 i IFF2 są zerowane. Gdy pojawi się przerwanie niemaskowalne (wyższy priorytet), stan maski przerwań IFF1 jest zapamiętywany w rejestrze bitowym IFF2. Zdekodowanie rozkazu powrotu z przerwania niemaskowalnego NMI (RETN) powoduje odtworzenie stanu IFF1 na podstawie IFF2.

Tryb 0- odpowiada reakcji na przerwania mikroprocesora 8080. W tym trybie urządzenie przerywające, w cyklu akceptacji przerwania, umieszcza na magistrali danych dowolną instrukcję, a mikroprocesor ją wykonuje. Dedykowaną instrukcją jest rozkaz restartu RST n (n:0-7). Instrukcja ta powoduje złożenie na stosie adresu powrotu i skok do procedury obsługi zależny od numeru restartu: n=0 adres 0000h n=1 adres 0008h n=2 adres 0010h n=3 adres 0018h n=4 adres 0020h n=5 adres 0028h n=6 adres 0030h n=7 adres 0038h

Tryb 1- w tym trybie mikroprocesor reaguje na przerwanie przez wykonanie procedury obsługi od adresu 0038H (po złożeniu na stosie. Zatem reakcja jest identyczna jak reakcja na przerwanie niemaskowalne, w którym adresem wywoływanym jest adres 0066H. Tryb 2- jest najbardziej elastycznym trybem reakcji na przerwanie. W tym trybie programista tworzy tablicę 16-bitowych adresów startowych dla każdej procedury obsługi przerwania. Tablica ta może być umieszczona w dowolnym miejscu w pamięci (decyduje o tym zawartość rejestru I). Gdy przerwanie zostanie przyjęte, urządzenie zgłaszające wystawia na magistrali danych 8-mio bitową, mniej znaczącą, zawsze parzystą część 16-bitowego wskaźnika, w celu pobrania z tablicy adresu startowego obsługi przerwania. W związku z powyższym tryb 2 dopuszcza tylko 128 rozróżnialnych źródeł przerwania.

Tryby adresacji w mikroprocesorze Z80 Mikroprocesor Z80 realizuje następujące tryby adresowania: -natychmiastowy argument bezpośrednio za kodem operacji (LD A,0F załaduj do akumulatora liczbę 0F), -bezpośredni dwubajtowy adres argumentu znajduje się w pamięci bezpośrednio za kodem operacji (LD A,(700) załaduj do akumulatora zawartość komórki pamięci o adresie 0700), -pośredni erejstrowy dwubajtowy adres argumentu znajduje się w parze rejestrów BC, DE, HL lub SP (LD A,(BC) załaduj do akumulatora zawartość komórki pamięci o adresie zawartym w parze rejestrów BC), -indeksowy dwubajtowy adres argumentu tworzony jest jako suma zawartości jednego z rejestrów indeksowych IX lub IY i jednobajtowego przesunięcia w kodzie U2 zapisanego za kodem operacji; np. LD A,(IX+8) załaduj do akumulatora zawartość komórki pamięci o adresie zawartym w rejestrze IX zwiększonym o 8;

-względny tryb wykorzystywany tylko przez rozkaz skoku względnego JR zawartość rejestru PC jest modyfikowana przez dodanie jednobajtowego przesunięcia w kodzie U2 umieszczonego w pamięci za kodem operacji skoku;, -rejestrowy argument znajduje się w jednym z rejestrów lub w parze rejestrów (w przypadku argumentu 16-bitowego); np. ADD IX,SP dodaj do zawartości rej. IX wartość rej SP; -strony zerowej, pojedynczych bitów i implikowany dotyczą małej liczby rozkazów sterujących (np. RST 8 wywołanie podprogramu pod adresem 8), logicznych-operacje na pojedynczych bitach (np. RES 0,A skasowanie bitu 0 w akumulatorze) oraz rozkazów dla których jednoznacznie określone jest położenie argumentu (np. DAA korekcja dziesiętna akumulatora po operacjach arytmetycznych).

Lista rozkazów mikroprocesora Z80

Instrukcje przesyłania danych (8-mio bitowych) Prześlij zawartość rejestru r do rejestru r

Wpisz do rejestru r liczbę 8-mio bitową n

Załaduj do rejestru r zawartość komórki pamięci o adresie zawartym w HL

Załaduj do r zawartość komórki o adresie zawartej w IX+ offset d

Załaduj do r zawartość komórki o adresie zawartej w IX+ offset d

Zapisz zawartość komórki o adresie zawartym w HL do rejestru r

Zapisz zawartość rejestru r do komórki pamięci o adresie zawartym w IX z offsetem d

Zapisz zawartość rejestru r do komórki pamięci o adresie zawartym w IY z offsetem d

Zapisz do komórki o adresie zawartym w HL liczbę 8-mio bitową n

Zapisz do komórki o adresie zawartym w IX+ offset d, liczbę 8-mio bitową n

Zapisz do komórki o adresie zawartym w IY+ offset d, liczbę 8-mio bitową n

Załaduj do akumulatora A zawartość komórki pamięci o adresie zawartym w parze rejestrów BC

Załaduj do akumulatora A zawartość komórki pamięci o adresie zawartym w parze rejestrów DE

Załaduj do akumulatora A zawartość komórki pamięci o adresie nn

Załaduj zawartość akumulatora do komórki pamięci o adresie zawartym w parze rejestrów BC

Załaduj zawartość akumulatora do komórki pamięci o adresie zawartym w parze rejestrów DE

Załaduj zawartość akumulatora A do komórki pamięci o adresie nn

Przepisz zawartość rejestru adresu tablicy przerwań do rejestru A

Przepisz zawartość rejestru odświeżania do rejestru A

Zapisz zawartość akumulatora do rejestru adresu tablicy przerwań

Zapisz zawartość akumulatora do rejestru odświeżania

Instrukcje przesyłania danych (16-to bitowych) Zapisz do pary rejestrów dd daną 16-to bitową nn

Zapisz do rejestru indeksowego IX liczbę 16-to bitową nn

Zapisz do rejestru indeksowego IY liczbę 16-to bitową nn

Załadowanie zawartość dwóch kolejnych komórek pamięci spod adresu nn do pary rejestrów HL

Załadowanie do pary rejestrów dd zawartości komórek pamięci spod adresu nn

Załadowanie do IX zawartości komórek pamięci spod adresu nn

Załadowanie do IY zawartości komórek pamięci spod adresu nn

Załaduj do komórek pod adresem nn zawartość rejestru HL

Załaduj zawartość pary rejestrów dd do komórek pamięci od adresu nn

Załaduj zawartość rejestru IX do komórek pamięci od adresu nn

Załaduj zawartość rejestru IY do komórek pamięci od adresu nn

Zapisz zawartość rejestru HL do rejestru SP

Przepisz zawartość rejestru IX do rejestru SP

Przepisz zawartość rejestru IY do rejestru SP

Złóż na stosie parę rejestrów qq

Złóż na stosie rejestr IX

Złóż na stosie rejestr IY

Ściągnij ze stosu dane do pary rejestrów qq

Ściągnij ze stosu daną do rejestru IX

Ściągnij ze stosu daną do rejestru IY

Wymień zawartość pary rejestrów DE z HL

Wymień zawartość pary rejestrów AF z A F

Wymień zawartość pary rejestrów BC z B C, DE z D E, HL z H,L,

Wymień zawartość komórek pamięci o adresie wskazywanym przez wskaźnik stosu z zawartością HL

Wymień zawartość komórek pamięci o adresie wskazywanym prze wskaźnik stosu z zawartością IX

Wymień zawartość komórek pamięci o adresie wskazywanym prze wskaźnik stosu z zawartością IY

Instrukcje arytmetyczne 8-mio bitowe Dodaj do zawartości A zawartość innego rejestru, wynik umieść w A

Dodaj do zawartości A liczbę 8-mio bitową, wynik umieść w A

Dodaj do zawartości A zawartość komórki pamięci o adresie zawartym w HL, wynik umieść w A

Dodaj do zawartości A zawartość komórki pamięci o adresie zawartym w IX z offsetem d, wynik umieść w A

Dodaj do zawartości A zawartość komórki pamięci o adresie zawartym w IY z offsetem d, wynik umieść w A

Dodaj do zawartości A zawartość: rejestru, liczbę n, zawartość komórki pamięci adresowanej przez HL, IX, IY oraz znacznika C, wynik w A

Odejmij od zawartości A zawartość: rejestru, liczbę n, zawartość komórki pamięci adresowanej przez HL, IX, IY, wynik w A

Odejmij od zawartości A zawartość: rejestru, liczbę n, zawartość komórki pamięci adresowanej przez HL, IX, IY oraz znacznika C, wynik w A

Wymnóż logicznie zawartość A z zawartością: rejestru, liczbą n, zawartością komórki pamięci adresowanej przez HL, IX, IY, wynik w A

Dodaj logicznie zawartość A z zawartością: rejestru, liczbą n, zawartością komórki pamięci adresowanej przez HL, IX, IY, wynik w A

Wykonaj operację XOR zawartości A z zawartością: rejestru, liczbą n, zawartością komórki pamięci adresowanej przez HL, IX, IY, wynik w A

Porównaj zawartość A z zawartością: rejestru, liczbą n, zawartością komórki pamięci adresowanej przez HL, IX, IY, wyniku nie zapisuj

Zwiększ o 1 zawartość rejestru r

Zwiększ o 1 zawartość komórki pamięci o adresie zawartym w parze rejestrów HL

Zwiększ o 1 zawartość komórki pamięci o adresie zawartym IX z offsetem d

Zwiększ o 1 zawartość komórki pamięci o adresie zawartym IY z offsetem d

Zmniejsz o 1 zwartość rejestru r, komórki pamięci o adresie zawartym w HL, o adresie zwartym w IX lub IY z offsetem d

Rozkazy arytmetyczne ogólnego przeznaczenia oraz sterujące CPU Korekcja dziesiętna po dodawaniu i odejmowaniu

Przykłady korekcji dziesiętnej

Zanegowanie zawartości akumulatora

Negacja zawartości akumulatora

Negacja bitu przeniesienia

Ustawienie bitu przeniesienia

Operacja pusta (No operating) nic nie rób

Rozkaz zatrzymania (oczekiwania na przerwanie)

Zamaskowanie przerwań maskowalnych

Odmaskowanie przerwań maskowalnych

Aktywacja modu 0 przyjęcia przerwań maskowalnych

Aktywacja modu 1 przyjęcia przerwań maskowalnych

Aktywacja modu 2 przyjęcia przerwań maskowalnych

Rozkazy arytmetyczne 16-to bitowe Do zawartośći HL dodaj zawartości pary rejestrów ss, wynik w HL

Do zawartośći HL dodaj zawartości pary rejestrów ss oraz biu C, wynik w HL

Przesłania blokowe

Zawartość akumulatora jest porównywana z zawartością komórki o adresie zawartym w HL, w przypadku pozytywnego porównania odpowiedni bit warunkowy jest ustawiany.

Porównanie zawartości akumulatora i komórki pamięci zawartej w HL. Adres HL jest dekrementowany. Licznik pętli jest dekrementowany. Gdy A=(HL) lub BC=0000 instrukcja jest przerwana.

Rozkazy arytmetyczne 8-mio bitowe