System mikroprocesorowy - rkpomoce · Poszczególne rodzaje procesorów różnią się od siebie...

71
System mikroprocesorowy UTK częśd 3 Przygotował Ryszard Kijanka

Transcript of System mikroprocesorowy - rkpomoce · Poszczególne rodzaje procesorów różnią się od siebie...

System mikroprocesorowy

UTK częśd 3

PrzygotowałRyszard Kijanka

Pojęcie systemu mikroprocesorowegoPrzetwarzanie informacji odbywa się przy użyciu

systemu mikroprocesorowego.Najważniejszą częścią takiego systemu jest układ

przetwarzający informacje, czyli procesor. Procesor przetwarza informacje wykonując na niej elementarne operacje zwaneinstrukcjami (rozkazami).

Ciąg takich instrukcji realizujący konkretne zadanie przetwarzania informacji nazywamy programem. Dlatego też do systemu mikroprocesorowego oprócz danych należy także dostarczyd także program lub zestaw programów, czyli oprogramowanie (software)

SYSTEMMIKROPROCESOROWYdane wyniki

program

Przetwarzanie informacji za pomocą systemu mikroprocesorowego

Procesor

- jest układem scalonym, którego działanie polega na wykonywaniu instrukcji programów, czyli jego rolę można porównad do mózgu człowieka. Procesor nadzoruje i synchronizuje pracę wszystkich urządzeo w komputerze.

Poszczególne rodzaje procesorów różnią się od siebie poprzez inną architekturę (CISC lub RISC), liczbę bitów przetwarzanych w jednym cyklu (mówimy np. o procesorze 16-, 32-, 64- bitowym), czy też poprzez częstotliwośd taktowania podawaną w MHz.

definicja

Model programowy procesora - zestaw zasobów logicznych komputera dostępnych dla programisty piszącego program użytkowy w języku asemblerowym lub dla kompilatora translującego program użytkowy napisany w języku wysokiego poziomu do postaci asemblerowej.

Model programowy nie ma bezpośredniego związku z budową wewnętrzną procesora i komputera.

Składniki modelu programowego procesora

zestaw rejestrów (liczba i funkcjonalnośd rejestrów procesora)

zestaw trybów adresowania (sposoby specyfikacji argumentów operacji)

model operacji warunkowych (sposób realizacji konstrukcji warunkowych)

lista instrukcji (zestaw operacji, jakie może wykonad procesor)

Podstawy działania mikroprocesora

Podając określenie systemu mikroprocesorowego, stwierdzono, że jednym z jego elementów jest uniwersalny układ przetwarzający informację i sterujący pracą pozostałych elementów systemu, zwany procesorem, a w przypadku jego realizacji jako pojedynczego układu scalonego dużej skali integracji - mikroprocesorem.

Mikroprocesor wraz z układami towarzyszącymi, takimi jak zegar systemowy i sterownik magistral, tworzy centralną jednostkę przetwarzającą, czyli CPU.

CPU (Central Processing Unit - głównajednostka przetwarzania danych)

W przypadku komputera jednoprocesorowego CPU orazprocesor oznaczają dokładnie to samo i częściej używa się właśnie tego drugiego terminu. Kiedy jednak na płycie głównej znajduje się więcej procesorów, to słowo CPU nabiera szerszego znaczenia - jest zbiorczym określeniem wszystkich procesorów (nie należy więc używad sformułowania typu „ten komputer posiada 2 CPU").

W skład CPU wchodzą:

- mikroprocesor przetwarza informacje i steruje pracą reszty

układów,

- zegar systemowy wytwarza tzw. przebiegi czasowe

niezbędne do pracy mikroprocesora i całego systemu,

- sterownik magistral pośredniczy w sterowaniu magistralami,

wytwarzając na podstawie informacji z mikroprocesora

sygnały sterujące pracą pamięci i układów wejścia/wyjścia,

- koprocesor arytmetyczny służy do wykonywania

numerycznych obliczeń zmiennoprzecinkowych.

Pamięd

- przechowywanie programów (bloków instrukcji) w miejscu, skąd mikroprocesor może je szybko, bez zbędnego oczekiwania, odczytywad. W bloku pamięci systemu stosuje się pamięci RAM (pamięd operacyjna) oraz ROM (np. BIOS).

Układy wejścia/wyjścia I/O

- pośredniczenie w wymianie informacji pomiędzy mikroprocesorem i pamięcią systemu a urządzeniami zewnętrznymi w stosunku do systemu - drukarka, monitor, stacja dysków.

Magistrala danych DB

- przesyłanie danych, wyników oraz kodów instrukcji. Jest to magistrala dwukierunkowa, tzn. informacje zarówno wypływają do mikroprocesora, jak i są przez niego wysyłane do innych układów.

Magistrala adresowa AB- przesyłanie adresów komórek pamięci lub układów wejścia/wyjścia, z którymi chce się komunikowad mikroprocesor. Jest to magistrala jednokierunkowa, tzn. adresy są generowane przez mikroprocesor i są kierowane do pamięci bądź układów wejścia/wyjścia.

Magistrala sterująca CB

- sterowanie pracą układów współpracujących z mikroprocesorem oraz sygnalizowanie pewnych określonych stanów tych układów

Budowa mikroprocesora

Podstawowa budowa procesora sprowadza

się do jednostki wykonawczej EU (Execution

Unit), która przetwarza informacje wykonując

wszelkie operacje arytmetyczne i logiczne oraz

jednostki sterującej CU, która określa rodzaj

wykonywanych operacji. W skład jednostki

wykonawczej wchodzą: jednostka arytmetyczno-

logiczna ALU oraz zestaw współpracujących z nią

rejestrów.

Informacją wejściową części wykonawczej są dane, zaś wyjściową wyniki (liczby, tekst, sygnały sterujące pracą urządzeo, itp.). W skład jednostki sterującej CU wchodzą: rejestr rozkazów IR, dekoder rozkazów i 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. Ciąg rozkazów tworzy program wykonywany przez system. Po pobraniu z pamięci kod rozkazu jest dekodowany w dekoderze rozkazów, czyli jest określane, jakiego rozkazu kod znajduje się w dekoderze rozkazów. Na tej podstawie układ sterowania wytwarza odpowiedni sygnał sterujący.

Architektura procesora

Istnieją trzy główne podejścia do kompozycji modelu programowego, określane skrótami RISC, CISC i – pochodzące od koncepcji RISC – podejście VLIW.

CISC (Complex Instruction Set Computing -obliczenia z rozbudowanym zestawem instrukcji)

Według architektury CISC były tworzone już pierwsze procesory, które wyposażano w pełny zestaw instrukcji mający im zapewnid wykonanie każdego polecenia użytkownika (konkretnie programu). Z czasem okazało się jednak, że w 80 procentach wypadków było wykorzystywanych tylko 20 procent dostępnych instrukcji, a pozostałe tylko sporadycznie. Zaowocowało to bardziej zaawansowaną architekturą o nazwie RISC. Procesory montowane w pecetach, np. procesor Pentium, bazują na architekturze typu CISC.

Cisc - podsumowaniePodejście stosowane w latach 60tych i 70tych XX wieku. Zakłada odpowiedniośd między instrukcjami procesora i instrukcjami języka wysokiego poziomu (instrukcja wysokiego poziomu jest zamieniana na jedną lub kilka instrukcji procesora). Rejestru służą tylko do tymczasowego przechowywania wyników pośrednich i adresów, dane znajdują się w pamięci (instrukcje operują na danych w pamięci). Instrukcje operują naargumentach o różnych długościach: bajty, słowa 16-, 32- ew. 64-bitowe (długośd argumentu jest zapisana w kodzie instrukcji). Bogaty repertuar trybów adresowania. Maksymalnie 16 rejestrów Operacje warunkowe - najczęściej z użyciem znaczników. Dominują instrukcje warunkowe - wynik zastępuje argument źródłowy.Specyfikacja dwóch argumentów wymaga mniejszej liczby bitów w obrazie binarnym instrukcji niż specyfikacja trzech argumentów.Rejestry perzechowują wyniki obliczeo - nowy wynik tymczasowy zastępuje poprzedni. Skomplikowane instrukcje wymagają złożonej jednostki wykonawczej. Duża liczba odwołao do danych w pamięci spowalnia wykonanie programu. Duża liczba i złożonośd trybów adresowania powoduje wydłużenie pól specyfikacji argumentów w zapisie binarnym instrukcji

RISC (Reduced Instruction Set Computing - obliczenia ze zredukowanym zestawem instrukcji)

Rodzaj architektury procesora, według której produkowane są najnowocześniejsze i najbardziej wydajne procesory, takie jak Alpha czy PowerPC. Architektura RISC charakteryzuje się przede wszystkim: nieliczną listą rozkazów (zawierającą tylko proste rozkazy wykonywane typowo w czasie jednego cyklu maszynowego), wyłącznie prostymi trybami adresowania (zwykle tylko adresowanie natychmiastowe, adresowanie bezpośrednie, adresowanie za pomocą rejestrów), dużą liczbą rejestrów uniwersalnych, wykonywaniem operacji arytmetycznych i logicznych wyłącznie na argumentach umieszczonych w rejestrach uniwersalnych, wykorzystaniem mechanizmów przyspieszających pracę procesora (praca potokowa, pamięd podręczna).

RISCPodejście RISC wprowadzono na początku lat 80tych XX wieku (projekt IBM 801, architektury MIPS i Berkeley RISC). Ważniejsze współczesne architektury RISC:» MIPS» SPARC» ARM Skalarne dane lokalne procedury są przechowywane w rejestrach. Odwołania do pamięci głównie w prologu i epilogu procedury - przeładowanie ramki stosu. Duży zestaw rejestrów - minimalnie 16, zwykle przynajmniej 32 (rejestry powinny mieścid skalarne argumenty i lokalne procedury). Instrukcje trójargumentowe - nie niszczą argumentów źródłowych (dane lokalne nie są zamazywane podczas wykonywania na nich operacji). Rzadkie odwołania do pamięci nie wymagają złożonych trybów adresowania (proste kodowanie instrukcji).

RISC cd.Proste insrukcje dają się wykonad w prostej i szybkiej jednostce wykonawczej.» Każda instrukcja ma tylko jeden argument docelowy» Najwyżej jedno odwołanie do pamięci. Złożone operacje można zsyntetyzowad z kilku instrukcji. Instrukcje arytmetyczne i logiczne operują tylko na dancyh w rejestrach i argumentach natychmiastowych (długośd argumentu jest zwykle równa długości rejestru, brak operacji 8-, i 16bitowych). Tylko dwa rodzaje instrukcji operują na pamięci:» Load - ładuj» Store - składujTzw. "architektura load/store" Więcej instrukcji - dłuższa postad binarna programu. Wszystkie instrukcje mają taką samą długośd obrazu binarnego (zwykle 32 bity). Jeden lub dwa tryby adresowania pamięci - rejestrowy pośredni z przemieszczeniem, ew. dwurejestrowy pośredni.

VLIWVLIW (ang. Very Large Instruction Word Architectures) jest architekturą wywodzącą się z podejścia RISCowego, jednak z bardzo dużym słowem instrukcji.

Architektury

von Neumanna

Instrukcje tworzące program są przechowywane w pamięci w taki sam sposób, jak dane. Pamięd składa się z pewnej liczby ponumerowanych komórek:» dostęp do pamięci następuje poprzez podanie przez procesor numeru komórki» numer komórki nazywamy adresemZ powyższych postulatów wynika w praktyce, że:» zazwyczaj komputer będzie pobierał kolejne instrukcje programu z kolejnych komórek pamięci» komórki te będą wybierane przez zwiększający się adres, który powinien byd przechowywany i inkrementowany w procesorze» adres ten jest przechowywany w specjalnym rejestrze - tzw. liczniku instrukcji (Program Counter-PC)

Architektura harwardzka - realizacja maszyny von Neumanna z oddzielnymi hierarchiami pamięci programu i danych.

Jest często uznawana za architekturę nie-vonneumannowską ze względu na dyskusyjnośd zachowania postulatu o jednakowym składowaniu instrukcji i danych. Posiada wysoką wydajnośd dzięki możliwości równoczesnego pobierania instrukcji i operacji na hierarchii pamięci danych. Brak możliwości zapisu instrukcji do hierarchii pamięci instrukcji:» brak możliwości programowania» komputer dostarczany ze stałym programem» dopuszczalne tylko w zastosowaniach wbudowanych lub DSP

Architektura Princeton - wzorcowa realizacja maszyny von Neumanna ze wspólną hierarchią pamięci instrukcji i danych

Wspólna hierarchia wyklucza równoczesne pobieranie instrukcji i operacje na danych (tzw. von Neumann bottleneck). Nieograniczone możliwości modyfikacji programu:» obiekt zapisany przez procesor danych do hierarchii pamięci jako dana może byd następnie pobrany przez procesor instrukcji jako instrukcja» możliwośd programowania - potrzebna w komputerach uniwersalnych» program może sam siebie modyfikowad (automodyfikacja) - nie zawsze jest to pożądana cecha

Architektura Harvard-Princeton - realizacja maszyny von Neumanna z oddzielnymi górnymi warstwami hierarchii pamięci i wspólnymi warstwami dolnymi. Przynajmniej jeden poziom kieszeni jest oddzielny dla procesorów

instrukcji i danych.

Większośd odwołao do hierarchii pamięci jest realizowanych w górnych warstwach (szybkie działanie dzięki równoległości dostępów jak w architekturze Harvard). Wspólne dolne warstwy hierarchii umożliwiają zapis programu (programowalnośd- niezbędna w komputerach uniwersalnych) Program użytkowy nie ma pełnej kontroli nad położeniem obiektów w hierarchii pamięci (brak możliwości automodyfikacji). Kontrolę taką może mied system operacyjny:» jeden program (proces) może modyfikowad drugi» możliwośd ładowania programu np. z pliku Architektura Harvard-Princeton zaspokaja potrzeby programowalności bez narażania bezpieczeostwa (automodyfikacja jest niebezpieczna).

uwaga

Większośd współczesnych komputerów uniwersalnych jest opartych o architekturę Harvard-Princeton (w tym wszystkie współczesne komputery PC).

Podstawowe definicje i pojęcia

Akumulatorem nazywamy rejestr, który zawiera jeden z operandów (argumentów) wykonywanej operacji i do którego jest ładowany wynik wykonywanej o p e r a c j i . Definicja akumulatora pojawiła się po raz pierwszy przy omawianiu jednostki arytmetyczno- logicznej. W starszych procesorach innym niż akumulator.

DefinicjaLicznikiem rozkazów (wskaźnikiem instrukcji) nazywamy rejestr mikroprocesora definicja ta obowiązywała ściśle , nowszych notuje się liczne odstępstwa mające na celu przyspieszenie realizacji 1 programu. Przykładowo w procesorach rodziny 80x86 wynik dodawania może bydumieszczany także w rejestrze zawierający adres komórki pamięci, w której przechowywany jest kod rozkazu przeznaczonego do wykonania jako następny.

DefinicjaStosem nazywamy wyróżniony obszar pamięci używany według

następujących reguł:1. Informacje zapisywane są na stos do kolejnych komórek (pod kolejnymi adresami), przy czym żadnego adresu nie wolno pominąd.2. Odczytujemy informacje w kolejności odwrotnej do ich zapisu.3. Informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do pierwszej wolnej, przy czym komórkę odczytaną traktujemy jako wolną.

Stos jest więc rodzajem pamięci (czy też buforem) oznaczanej przez LIFO (ang. last infirst out - ostatni wchodzi, pierwszy wychodzi). Pamiędtaką można porównad do stosu talerzy (stąd zresztą nazwa). Talerze dokładamy do stosu, kładąc je na wierzchu, a zabieramy, zdejmując je także z wierzchu, gdyż w przypadku zmiany kolejności grozi nam katastrofa, co odnosi się także do stosu komputerowego.

DefinicjaWskaźnikiem stosu nazywamy rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołka stosu).

Cykl rozkazowy

Realizując program, system mikroprocesorowy wykonuje pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania mikroprocesora, a następnie realizacji rozkazu, którego kod został pobrany. W cyklu możemy wyróżnid dwa etapy zwane fazą pobrania(ang. fetch) i fazą wykonania (ang. execution).

Faza pobrania

Faza pobrania

Faza wykonania

Faza wykonania

Cykl rozkazowy Cykl rozkazowy

czas

Koniec semestr 1

I) Faza pobrania1. Adresowanie - podanie zawartości licznika rozkazów do magistrali a dresowej: AB <-- (PC).2. Wczytanie zawartości zaadresowanej komórki pamięci do rejestru rozkazów mikroprocesora: IR <— M(PC).3. Zwiększenie zawartości licznika rozkazów: (PC) <— (PC) + 1.II) Faza wykonania4. Zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących realizującychdany rozkaz.

Kolejne etapy realizacji fazy pobrania i fazy wykonania rozkazu

PC

IR

Kod rozkazu

Kod rozkazu

Kod rozkazu

MEM

AB

DB

adres

Kod rozkazu

Przepływ informacji przy pobieraniu

kodu rozkazu

Lista rozkazów, tryby adresowania

Komputer, będący systemem mikroprocesorowym, przetwarza informację zgodnie z wykonywanym programem. Program jest ciągiem instrukcji realizujących określony algorytm działania systemu. W pamięci systemu mikroprocesorowego program przechowywany jest w postaci binarnych kodów instrukcji maszynowych (rozkazowi właściwych dla danego mikroprocesora.

DefinicjaRozkazem (instrukcją maszynową) nazywamy

najprostszą operację, której wykonania programista może zażądad od procesora.

DefinicjaListą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonad dany

procesor.Rozkazy tworzące listę rozkazów możemy podzielid na kilka podstawowych grup w zależności od ich przeznaczenia.

Rozróżniamy:1 . rozkazy przesłao,2. rozkazy arytmetyczne i logiczne,3. rozkazy sterujące (skoki, wywołania podprogramów, pętle itp.),4. inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie chronionym).

Rozkazy przesłao są najczęściej wykonywanymi rozkazami. Nie zmieniają wartości informacji, natomiast przenoszą ją z miejsca na miejsce.

Rozkazy arytmetyczne i logiczne - służą do przetwarzania informacji, czyli w wyniku ich wykonania jest ona zmieniana

Rozkazy sterujące - stanowią grupę rozkazów pozwalającą zmieniad kolejnośd wykonywania instrukcji programu. Należą do nich przykładowo rozkazy skoków bezwarunkowych i warunkowych - wywołania podprogramów czy też instrukcje pętli.

Format rozkazu i tryby adresowania

Rozkazy, jak każdy inny rodzaj informacji w systemie mikroprocesorowym, są przechowywane w postaci kodów binarnych. Kod rozkazu musi zawierad informacje niezbędne do jego poprawnej realizacji. Informacje te muszą byd rozmieszczone w rozkazie w określony sposób.

Definicja Formatem rozkazu nazywamy sposób rozmieszczenia

informacji w kodzie rozkazu.Definicja

Trybem adresowania nazywamy sposób określenia miejsca przechowywania argumentów rozkazu.

Adresowanie natychmiastowe

DefinicjaPrzy adresowaniu natychmiastowym argument

rozkazu zawarty jest w kodzie rozkazu.

Kod operacji

ArgumentKod

rozkazu

Widzimy więc, że adresowanie natychmiastowe w zasadzie nie jest adresowaniem w zwykłym sensie. Argument jest umieszczony w kodzie rozkazu, z czego między innymi wynika fakt, że musi byd znany w momencie pisania programu

Adresowanie bezpośrednie

DefinicjaPrzy adresowaniu bezpośrednim kod rozkazu

zawiera adres komórki pamięci, w której przechowywany jest rozkaz.

Kod operacji

Adres

Kod rozkazu

argument

Adresowanie rejestrowe

DefinicjaPrzy adresowaniu rejestrowym w kodzie rozkazu określony jest rejestr, w którym przechowywany

jest argument.

Kod rozkazu

Kod operacjiOkreślenie

rejestru Argument

rejestr

Adresowanie pośrednie

DefinicjaW trybie adresowania pośredniego kod rozkazu

zawiera określenie rejestru bądź rejestrów, w których znajduje się adres komórki pamięci zawierającej

argument.

Adresowanie indeksowe z przemieszczeniem

DefinicjaW trybie adresowania indeksowego z przemieszczeniem adres argumentu przechowywanego w pamięci obliczany jest jako suma zawartości rejestru określonego w kodzie

rozkazu i wartości umieszczonej w kodzie rozkazu, zwanej przemieszczeniem.

Kod rozkazu

Kod operacji

Określenie rejestru wartośd

Przemieszczenie

∑argument

MEM

Magistrale i sygnały sterujące mikroprocesora

Mikroprocesor komunikuje się z pozostałymi elementami systemu za pomocą magistral. Są to: - magistrala danych, - magistrala adresowa ,- magistrala sterująca.

Szerokośd magistrali danych jest zwykle dostosowana do długości operandów dla jednostki arytmetyczno- logicznej, chod zdarzają się odstępstwa od tej reguły. Zwiększenie szerokości magistrali danych oznacza więc wzrost mocy obliczeniowej z powodu operowania nadłuższych argumentach i możliwości szybkiego przesyłania większych ilości informacji. Szerokośd magistrali adresowej wpływa z kolei na liczbę komórek pamięci, które potrafi bezpośrednio zaadresowad mikroprocesor.

Jednym z zadao mikroprocesora w systemie mikroprocesorowym jest sterowanie i koordynacja pracy pozostałych elementów systemu, takich jak pamięd czy układy wejścia/wyjścia. W tym celu mikroprocesor zawiera specjalną magistralę zwaną sterującą.

Wybrane sygnały sterujące mikroprocesora

RBSET - restart mikroprocesora (wpis do rejestrów procesora wartości początkowych i rozpoczęcie nowego cyklu rozkazowego).CLK - (clock) przebieg taktujący (zegar) pracę procesora.RDY# - (ready) sygnał gotowości układów współpracujących z procesorem (zwykle pamięci). # oznacza, że sygnałem aktywnym (gotowości) jest 0 (poziom niski).M/IO# - (memory/input/output) sygnał oznaczający operację dotyczącą pamięci (1) lub układów wejścia/wyjścia (0).D/C# - (data/code) sygnał oznaczający obecnośd na magistrali danych danej (1) lub kodu rozkazu (0).W/R# - (write/read) sygnał oznaczający operację zapisu (1) lub odczytu (0).HOLD - sygnał żądania przejścia procesora w stan zawieszenia (czyli przełączenia wejśd i wyjśd magistral w stan wysokiej impedancji).HLDA - (hołd acknowledge) sygnał potwierdzenia przejścia procesora w stan zawieszenia.1NTR - (interrupt request) sygnał żądania (zgłoszenia) przerwania maskowanego.NMI - (non-maskable interrupt) sygnał zgłoszenia przerwania niemaskowalnego.

Zadania poszczególnych sygnałów są następujące:

Układy wejścia/wyjścia

Układy wejścia/wyjścia są układami elektronicznymi pośredniczącymi w wymianie informacji pomiędzy systemem mikroprocesorowym a zewnętrznymi urządzeniami współpracującymi zwanymi urządzeniami peryferyjnymi. Urządzenia te mogą służyd przykładowo do wprowadzania, wyprowadzania bądź przechowywania informacji lub mogą byd układami wykonawczymi.

Potrzeba pośredniczenia w wymianie informacji wynika z następujących faktów:

istnieją różnice w szybkości działania współpracujących urządzeo (należy wówczas sterowad przepływem informacji); istnieją różnice w parametrach elektrycznych współpracujących układów (trzeba , dokonad na przykład translacji poziomów sygnałów); urządzenie wymaga podania informacji w określonym formacie wraz z pewnymi sygnałami sterującymi (na przykład należy podad treśd obrazu w formie sygnału VIDEO wraz z sygnałami synchronizacji).

mikroprocesor

pamięd

układwejścia/ wyjścia

urządzenie peryferyjne

Koncepcja komunikacji systemu mikroprocesorowego

z urządzeniami peryferyjnymi

DefinicjaUkładem wejścia/wyjścia nazywamy układ elektroniczny pośredniczący w wymianieinformacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a urządzeniemperyferyjnym z drugiej. Dla systemu mikroprocesorowego układ wejścia/wyjścia widoczny jest jako rejestr lub zespół rejestrów o określonych adresach oraz zestaw sygnałów sterujących.

W zależności od sposobu komunikacji z systemem, a dokładniej od sposobu, w jaki wybierany jest układ wejścia/wyjścia, z którym system chce się komunikowad, układy wejścia/wyjścia dzielimy na układy:

współadresowalne z pamięcią operacyjną układy izolowane.

Układy wejścia/wyjścia współadresowalnez pamięcią operacyjną

Jak wspomniano, układy we/wy możemy traktowad jako zespół rejestrów, które wybieramy za pomocą adresów i na których możemy wykonywad operacje zapisu i odczytu. Blok układów we/wy będzie zatem posiadał, podobnie jak pamięd, wejście adresowe i wejście sterujące zapis/odczyt.

CPU PAO I/O

MEMR MEMR MEMRMEMW MEMW MEMW

DefinicjaW przypadku układów współadresowalnych z pamięcią

operacyjną wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu wejścia/wyjścia), za pomocą adresu. Sygnały sterujące są wspólne dla pamięci i układów wejścia/wyjścia.

Układy współadresowalne z PAO wymagają wydzielenia części przestrzeni adresowej (czyli zakresu przydzielonych im adresów) pamięci dla adresów układów wejścia/wyjścia. Układy wejścia/wyjścia i pamięd obsługiwane są tymi samymi rozkazami (co wynika ze wspólnych sygnałów sterujących - przypominamy, że są wytwarzanew wyniku realizacji określonego rozkazu).

Układy wejścia/wyjścia izolowaneW przypadku układów wejścia/wyjścia izolowanych sygnały

sterujące dla pamięci i układów wejścia/wyjścia są rozdzielone.

CPU

PAO I/OMEMR MEMRIOR

MEMW

MEMW IOR

1

2

IOW

IOW

1.Sygnały sterujące dla pamięci

2. Sygnału sterujące dla

układów we/wy

Operacje wejścia/wyjściaDefinicjaOperacjami wejścia/wyjścia nazywamy całokształt działao potrzebnych do realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z jednej strony a układem wejścia/wyjścia z drugiej.

Operacje wejścia/wyjścia mogą byd realizowane od początku do kooca przy udziale mikroprocesora. Udział ten może byd bezpośredni lub pośredni.

Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez mikroprocesor

W zależności od sposobu realizacji operacje wejścia/wyjścia z bezpośrednim sterowaniem przez mikroprocesor możemy podzielid na trzy grupy:

Bezwarunkowe operacje wejścia/wyjścia Operacje wejścia/wyjścia z testowaniem stanu układu wejścia/wyjścia Operacje wejścia/wyjścia z przerwaniem programu

Definicja 1Bezwarunkową operacją wejścia/wyjścia nazywamy operację, przy której realizacji mikroprocesor nie sprawdza gotowości układu wejścia/wyjścia do tej wymiany.

Jest oczywiste, że nie z każdym układem wejścia/wyjścia możemy się w ten sposób komunikowad. Istnieje jednak pewna klasa układów, dla których takie operacje są możliwe. Przykładem może byd monitorowanie stanu pewnego miejsca, na przykładokreślonego miejsca magistrali za pomocą zestawu diod. Przesłanie informacji do wyświetlenia może się odbyd w dowolnym momencie, bez sprawdzania gotowości diod do jej wyświetlenia - diody bowiem są zawsze gotowe wyświetlid przesłaną informację. Operacje takie są najprostszymi operacjami wejścia/wyjścia.

Definicja 2Podczas realizacji operacji wejścia/wyjścia 2 wyjścia

mikroprocesor sprawdza sygnał (np. testowaniem stanu układu wejścia/ może to byd określony bit) gotowościukładu wejścia/wyjścia do tej wymiany. W przypadku potwierdzenia gotowości do wymiany przez układ jest ona realizowana.

Brak gotowości układu wejścia/wyjścia do wymiany powoduje wykonywanie przez mikroprocesor tak zwanej pętli przepytywania, w której cykliczne sprawdza on gotowośd układu do wymiany. Po jej potwierdzeniu pętla jest kooczona i następuje realizacja wymiany.Przykładem tego typu operacji wejścia/wyjsścia może byd współpraca systemu z przetwornikiem a/c.

Operacje wejścia/wyjścia z przerwaniem programu

- wykonywania przez mikroprocesor pętli przepytywania w celu stwierdzenia gotowości tego układu do wymiany jest wadą. Rozwiązanie jest proste i polega na tym, że mikroprocesor wykonuje program główny, oczekując na sygnał gotowości do wymiany zgłoszony ze strony układu wejścia/wyjścia. W tym celu mikroprocesor dysponuje określonym wejściem zwanym wejściem zgłoszenia przerwania. Zgłoszenie przerwania powoduje przerwanie przez mikroprocesor wykonywania programu głównego po zakooczeniu realizacji bieżącej instrukcji i zapamiętanie informacji potrzebnej do późniejszego powrotu do programu głównego i jego kontynuowania. Następnie mikroprocesor przechodzi do wykonaniaspecjalnego programu zwanego programem obsługi przerwania.

(w skrócie POP, ang. ISR - interrupt sernice routine).

Sytuacja komplikuje się nieco w przypadku obsługiwania tą metodą kilku układów wejścia/wyjścia. Należy wówczas zdecydowad, który układ zostanie obsłużony, i o wyborze tym poinformowad mikroprocesor. Ponadto, ponieważ mikroprocesor ma tylko jedno wejście zgłoszenia przerwania, musi istnied układ pośredniczący w przyjmowaniu zgłoszeo przerwao pomiędzy mikroprocesorem a układami wejścia/wyjścia. Układem tym jest specjalizowany układ zaliczany do układów wejścia/ wyjścia, zwany sterownikiem przerwao.

W celu umożliwienia przyjmowania kilku przerwao jednocześnie sterownik przerwao dysponuje określoną liczbą wejśd sygnałów zgłoszeo przerwao od układów wejścia/wyjścia. Sygnały te trafiają do rejestru zgłoszeo przerwao IRR (ang. Interrupt Request Register). Zgłoszone przerwania mogą byd maskowane, co oznacza, że mimoich zgłoszenia nie będą przyjmowane. Operacja maskowania jest prosta i polega na podaniu sygnałów zgłoszeo przerwao na dwuwejściowe bramki AND.

Schemat blokowy sterownika przerwao

IMR (ang. Interrupt Mask Register)

Bramka AND

Następnie przyjmowane przerwania poddawane są arbitrażowi.Arbitraż polega na wyborze spośród kilku zgłoszonych jednocześnie przerwao jednego, które zostanie w danym momencie obsłużone. Wymaga to ustalenia kryterium, według którego zostanie dokonany wybór. Kryterium tym jest stopieo ważności, który przydzielamykażdemu sygnałowi zgłoszenia przerwania, zwany priorytetem.Wynikiem arbitrażu jest numer zgłoszonego, niezamaskowanego przerwania o najwyższym priorytecie. Numer ten jest wpisywany do rejestru przerwao obsługiwanych ISR (ang. in-sewice register).

Koocowym wynikiem współpracy sterownika przerwao z mikroprocesorem powinno byd uruchomienie określonego programu obsługi przerwania.

Operacje wejścia/wyjścia z pośrednim sterowaniemprzez mikroprocesor (DMA)

DefinicjaBezpośrednim dostępem do pamięci nazywamy operację wejścia/wyjścia jedynie inicjowaną przez mikroprocesor, który przekazuje sterowanie jej realizacją specjalizowanemu układowi zwanemu sterownikiem DMA.

Przy bezpośrednim dostępie do pamięci, zwanym dalej operacją DMA, transmisja informacji przebiega pomiędzy układem wejścia/wyjścia a wydzielonym obszarem buforowym w pamięci. Przebieg operacji nadzoruje sterownik DMA, co oznacza, że generuje on wszystkie sygnały sterujące i adresy potrzebne do realizacji wymiany.

DMA - koncepcja

PROCESOR I/O

PAOSTEROWNIK

DMA

TRYB PIO

HOLD

IORIOWRMEMRMEMW

Żądanie przejęcia kontroli nad magistralami jest zgłaszane do mikroprocesora za pomocą sygnału sterującego HOLD.W odpowiedzi na ten sygnał mikroprocesor przechodzi w tak zwany stan zawieszenia, polegający na elektrycznym odseparowaniu się od magistral przez przełączenie wyjściowych wzmacniaczy trójstanowych w stan wysokiej impedancji. Przejście w stan zawieszenia jest sygnalizowane przez mikroprocesor stanem aktywnym na wyjściu HLDA (ang. holdacknowledge).

W realizacji operacji DMA możemy wyróżnid następujące etapy:

1. inicjacja operacji DMA,2. realizacja operacji DMA,3. zakooczenie operacji.

Inicjacja operacji DMA polega na przekazaniu do sterownika DMA (w wyniku wykonania określonych instrukcji)

następujących informacji:1. wielkośd bloku do przetransmitowania (liczba bajtów lub słów),2, adres pierwszej komórki bufora w pamięci,3, rodzaj operacji (zapis lub odczyt),4, sposób realizacji operacji DMA.

Operację DMA możemy realizowad w jednym z trzech trybów:

• transmisja pojedynczymi słowami,• transmisja blokowa,• transmisja na żądanie.

SłowniczekMIPS (Million Instructions Per Second - milion instrukcji na sekundę) - coraz rzadziej używany współczynnik mierzący moc obliczeniową procesorów. Określa on, ile milionów instrukcji może przetworzyd dany procesor w ciągu sekundy. Różne instrukcje wymagają różnego zaangażowania się w nie procesora, a oprócz tego rzeczywista szybkośdkomputera zależy jeszcze od innych czynników - takich jak szybkośd dysków twardych, pamięci RAM, magistrali danych, itp.

SłowniczekFLOPS (Floating Point Operations Per Second - operacje zmiennopozycyjne na sekundę) Jednostka wydajności obliczeniowej procesorów. Jeden FLOPS to jedna operacja zmiennopozycyjna wykonana w ciągu jednej sekundy. Moc obliczeniową współczesnych procesorów mierzy się w gigaflopsach (GFLOP).

Herc - jednostka miary częstotliwości opisująca liczbę drgao sygnału na sekundę. Sygnał 100 herców(Hz) drga więc 100 razy na sekundę. W kilohercach (kHz) mierzy się np. Częstotliwośd próbkowania dźwięku, a w megahercach (MHz) częstotliwośd taktowania procesora. Jednostka herc pochodzi od nazwiska niemieckiego fizyka Heinricha Hertza, który zajmował się min. badaniem fal.

częstotliwośd taktowaniaJest to rytm pracy procesora w komputerze. Funkcję wyznaczającego ją metronomu pełni kryształ krzemowy, który podaje procesorowi tempo działania (liczba cykli obliczeniowych na sekundę). Pierwsze pecety IBM XT miały procesory działające z częstotliwością taktowania 4,77MHz. Obecnie produkuje się procesory w zakresie do 4 GHz. Zwiększanie częstotliwości taktowania procesorów to nie jedyny sposób na wzrost ich szybkości działania. Ważna jest także architektura, liczba przetwarzanych bitów w jednym cyklu, itd.

częstotliwośdParametr określający, jak często w ciągu sekundy powtarza się jakieś cykliczne zjawisko, np. ruch wahadła. Wartośd częstotliwości jest podawana w hercach (oznaczane Hz), gdzie 1 Hz to jedno drgnienie (wychylenie od stanu początkowego i powrót do niego) na sekundę.