Architektura i organizacja komuterów W3 Działanie komputera

background image

Działanie komputera

Wyższa Szkoła Biznesu
Studia zaoczne, sem. II
Architektura i organizacja
komputerów
Wykład 3

background image

2

Sposoby opisu systemu

komputerowego

Na najwyższym poziomie organizacji komputer składa się z

procesora, pamięci i urządzeń wejścia-wyjścia, przy czym

każdy z tych modułów może występować pojedynczo lub w

większej ilości.
Zespoły te są połączone w sposób umożliwiający realizowanie

podstawowej funkcji komputera, jaką jest wykonywanie

programów.
Wobec tego - pozostając na tym najwyższym poziomie -

możemy opisać system komputerowy przez:

1.

przedstawienie zewnętrznego zachowania każdego modułu,

to znaczy danych i sygnałów kontrolnych, które wymienia on

z innymi modułami, oraz

2.

podanie struktury połączeń i sterowania wymaganego do

zarządzania tą strukturą.

background image

3

Architektura von

Neumanna

Jak wykazaliśmy w poprzednim wykładzie, w praktycznie

wszystkich

współczesnych

projektach

komputerów

wykorzystuje się koncepcje opracowane przez Johna von

Neumanna. Projekty tego typu są określane jako

architektura von Neumanna; są w nich wykorzystywane

trzy kluczowe koncepcje:
dane i rozkazy są przechowywane w tej samej pamięci

umożliwiającej zapis i odczyt;
zawartość tej pamięci może być adresowana przez wskazanie

miejsca, bez względu na rodzaj zawartych tam danych;
wykonywanie rozkazów następuje w sposób szeregowy (z

wyjątkiem określonych, szczególnych przypadków), rozkaz po

rozkazie.

background image

4

Program sprzętowy

(ang. hardwired program)

Uwarunkowania

leżące

u

podstaw

tych

koncepcji

przedyskutowaliśmy na poprzednim wykładzie, jednak warto

je tutaj podsumować:
Istnieje pewien niewielki zestaw podstawowych elementów

logicznych, które mogą być łączone na różne sposoby w celu

przechowywania danych binarnych oraz wykonywania

operacji arytmetycznych i logicznych na tych danych.
Jeśli istnieje określony rodzaj obliczenia, które ma być

przeprowadzone, to można zbudować specyficzną dla tego

obliczenia konfigurację elementów logicznych. Możemy

widzieć proces łączenia tych elementów w żądaną

konfigurację jako formę programowania.
Wynikający stąd „program” ma postać sprzętu i jest

nazywany programem sprzętowym.

background image

5

System przystosowany do

potrzeb użytkownika

(rozwiązanie sprzętowe)

Jeśli całe programowanie byłoby realizowane w ten sposób,
sprzęt miałby niewielki zakres zastosowań.
Rozpatrzmy tę alternatywę. Załóżmy, że budujemy zbiór
funkcji

arytmetycznych

i

logicznych

o

ogólnym

przeznaczeniu. Urządzenie będzie realizowało różne operacje
na danych, niezależnie od doprowadzonych sygnałów
sterujących.

W

oryginalnym

przypadku

urządzenia

zaprojektowanego do wykonywania konkretnego zadania
system przyjmuje dane i dostarcza wyniki.

background image

6

Urządzenie ogólnego

przeznaczenia

(rozwiązanie programowe)

Natomiast w przypadku urządzenia o ogólnym przeznaczeniu system przyjmuje dane i sygnały

sterujące, po czym dostarcza wyniki. Zamiast więc przebudowywać urządzenie dla każdego nowego

programu, programista musi tylko dostarczyć nowy zestaw sygnałów sterujących. Jak mogą być

dostarczane sygnały sterujące? Odpowiedź jest prosta, lecz zawiera subtelności:
Cały program jest szeregiem (sekwencją) kroków.
W każdym z tych kroków jest wykonywana na danych pewna operacja arytmetyczna lub logiczna.
Dla każdego kroku jest wymagany nowy zestaw sygnałów sterujących.
Spróbujmy teraz przypisać unikalny kod każdemu z możliwych zestawów sygnałów sterujących i

dodajmy do urządzenia o ogólnym przeznaczeniu segment, który przyjmuje kod i generuje sygnały

sterujące

background image

7

Urządzenie ogólnego

przeznaczenia

(rozwiązanie programowe)

Programowanie

jest

teraz

znacznie

łatwiejsze.

Zamiast

zmieniać połączenia w sprzęcie,

musimy jedynie doprowadzić

nową sekwencję kodów. Każdy

kod jest w rezultacie rozkazem,

zaś

odpowiednia

część

urządzenia interpretuje każdy

rozkaz

i

generuje

sygnały

sterujące. W celu odróżnienia tej

nowej metody programowania

sekwencja kodów lub rozkazów

nazywana

jest

oprogramowaniem

(ang.

software).

background image

8

Zespoły komputera

Na pokazanym na poprzednim slajdzie rysunku są pokazane

dwa główne składniki systemu:

– moduł interpretujący rozkazy oraz
– moduł realizujący funkcje arytmetyczne i logiczne.

Oba razem tworzą jednostkę centralną. Aby uzyskać

działający komputer, potrzeba jeszcze paru innych zespołów.

Do systemu muszą być wprowadzane dane i rozkazy. Do tego

celu potrzebujemy pewnego rodzaju modułu wejściowego.

Zawiera on podstawowe podzespoły, które przyjmują dane i

rozkazy w pewnej formie, po czym dokonują ich konwersji na

wewnętrzną postać sygnałów używaną w systemie. Potrzebne

jest też urządzenie prezentujące wyniki, będące modułem

wyjściowym. Razem są one określane jako moduły wejścia-

wyjścia.

background image

9

Pamięć

Urządzenie wejściowe doprowadza dane i rozkazy sekwencyjnie.

Jednak program nie zawsze jest realizowany sekwencyjnie; może

zawierać skoki).
Podobnie operacje na danych mogą wymagać dostępu do więcej

niż jednego elementu w tym samym czasie, w z góry określonej

sekwencji.
Musi więc istnieć miejsce do czasowego przechowywania zarówno

rozkazów, jak i danych. Odpowiedni moduł nazywa się pamięcią

lub pamięcią główną w odróżnieniu od pamięci zewnętrznej lub

pamięci występujących w urządzeniach peryferyjnych.
Von Neumann zauważył, że ta sama pamięć może służyć zarówno

do przechowywania rozkazów, jak i danych. Dane są traktowane

jako dane, na których są przeprowadzane obliczenia. Natomiast

rozkazy są traktowane jako dane stanowiące kody do generowania

sygnałów sterujących.

background image

10

Zespoły komputera –

struktura ogólna

Procesor wymienia dane z pamięcią. Do tego celu są

wykorzystywane dwa rejestry wewnętrzne (w stosunku

do procesora):
Rejestr adresowy pamięci (MAR), określający adres w

pamięci następnego zapisu lub odczytu, oraz rejestr

buforowy pamięci (MBR) zawierający dane, które mają

być zapisane w pamięci lub dane odczytane z pamięci.
Podobnie rejestr adresowy wejścia-wyjścia (I/OAR) określa

konkretne urządzenie wejścia-wyjścia. Rejestr buforowy

wejścia-wyjścia jest wykorzystywany do wymiany danych

między modułem wejścia-wyjścia a jednostką centralną.

background image

11

Zespoły komputera –

struktura ogólna

Moduł pamięci składa się z zestawu miejsc
komórek, określonych przez sekwencyjnie
ponumerowane adresy. Każde z miejsc
zawiera liczbę binarną, która może być
zinterpretowana albo jako rozkaz, albo jako
dane.
Moduł wejścia-wyjścia przenosi dane z
urządzeń zewnętrznych do procesora i
pamięci oraz w kierunku przeciwnym.
Zawiera wewnętrzne bufory do czasowego
przechowywania danych do momentu, aż
będą one mogły być wysłane.

background image

12

Przetwarzanie rozkazów

Podstawowym zadaniem komputera jest wykonywanie programu.
Program przeznaczony do wykonania składa się z zestawu

rozkazów przechowywanych w pamięci. Jednostka centralna

realizuje pracę, wykonując rozkazy wyszczególnione w programie.
Aby lepiej zrozumieć to zadanie oraz sposób współdziałania

zespołów komputera podczas realizacji programu, musimy bardziej

szczegółowo przeanalizować proces wykonywania programu.
Najprostsze jest rozpatrywanie przetwarzania rozkazów w dwóch

krokach: procesor odczytuje (pobiera) rozkaz z pamięci, a

następnie wykonuje go. Realizacja programu polega na

powtarzaniu procesu pobierania i wykonywania rozkazu.

Oczywiście, wykonywanie rozkazu może zawierać pewną liczbę

kroków.

background image

13

Cykl rozkazu

Pobieranie

rozkazu

jest

powszechną

operacją, dotyczy każdego rozkazu i polega

na

odczytaniu

rozkazu

z

pamięci.

Natomiast wykonywanie rozkazu może

zawierać kilka operacji i zależy od natury

rozkazu.
Przetwarzanie wymagane dla pojedynczego

rozkazu jest nazywane cyklem rozkazu.

Dwa sygnalizowane wcześniej etapy są

określane jako cykl pobierania i cykl

wykonywania.
Wykonywanie

programu

jest

wstrzymywane

tylko

po

wyłączeniu

maszyny, po wystąpieniu pewnego rodzaju

nieodwracalnego błędu lub jeśli wystąpi w

programie rozkaz zatrzymania komputera.

background image

14

Kolejność wykonywania

rozkazów

Na początku każdego cyklu rozkazu procesor pobiera rozkaz z

pamięci. W typowym procesorze do śledzenia, który rozkaz ma

być pobrany, służy rejestr zwany licznikiem programu (PC).
Jeśli procesor nie otrzyma innego polecenia, to powoduje

inkrementację (elementarny przyrost stanu) licznika PC po

każdym pobraniu rozkazu i wykonuje następny rozkaz w ciągu

(to znaczy rozkaz zlokalizowany w pamięci pod najbliższym

adresem o kolejnym wyższym numerze).
Rozpatrzmy na przykład komputer, w którym każdy rozkaz

zajmuje jedno 16-bitowe słowo w pamięci. Załóżmy, że licznik

programu jest ustawiony na pozycji 300. Procesor pobierze

rozkaz z pozycji 300. W następnych cyklach rozkazy będą

pobierane z miejsc 301, 302, 303 itd. Jak już wyjaśniliśmy,

sekwencja ta może być zmieniana.

background image

15

Rejestr rozkazów

Pobrany

rozkaz

jest

następnie

ładowany do rejestru w procesorze
zwanego rejestrem rozkazu (IR).
Rozkaz ten ma formę kodu binarnego
określającego działanie, które ma
podjąć procesor. Procesor interpretuje
rozkaz i przeprowadza wymagane
działanie.

background image

16

Działania wykonywane

przez procesor

Ogólnie działania te można podzielić na cztery

kategorie:
Procesor-pamięć. Dane mogą być przenoszone z

procesora do pamięci lub z pamięci do procesora.
Procesor-wejście-wyjście.

Dane

mogą

być

przenoszone z otoczenia lub do niego, przez

przenoszenie ich między procesorem a modułem

wejścia-wyjścia.
Przetwarzanie danych. Procesor może wykonywać

pewne operacje arytmetyczne lub logiczne na danych.
Sterowanie. Rozkaz może określać, że sekwencja

wykonywania ma być zmieniona (np. rozkaz skoku)

background image

17

Działania wykonywane

przez procesor

 Na przykład: procesor może pobrać rozkaz z

pozycji 149, z którego wynika, że następny
rozkaz ma być pobrany z pozycji 182.
Procesor

zapamięta

ten

fakt

przez

ustawienie licznika programu na 182. Dzięki
temu w następnym cyklu pobrania rozkaz
zostanie pobrany z pozycji 182, a nie 150.

• Oczywiście wykonywanie rozkazów może

zawierać kombinacje tych działań.

background image

18

Stany cyklu rozkazu

Dla danego cyklu rozkazu pewne stany mogą być zerowe (mogą

nie występować), inne zaś mogą występować częściej niż raz.
Obliczanie

adresu

rozkazu

(iac).

Określenie

adresu

następnego rozkazu przeznaczonego do wykonania. Zwykle

polega to na dodaniu ustalonej liczby do adresu poprzedniego

rozkazu. Jeśli na przykład każdy rozkaz zawiera 16 bitów, a

organizacja pamięci przewiduje słowa 16-bitowe, to dodaje się 1

do poprzedniego adresu. Jeśli w pamięci przewidziano

bezpośrednie adresowanie 8-bitowych bajtów, to dodaje się 2 do

poprzedniego adresu.
Pobieranie rozkazu (if). Wczytanie rozkazu z pamięci do

procesora.
Dekodowanie operacji rozkazu (iod). Analizowanie rozkazu w

celu określenia rodzaju operacji, która ma być przeprowadzona,

oraz argumentu (argumentów).

background image

19

Stany cyklu rozkazu

Obliczanie adresu argumentu (oac). Określanie
adresu argumentu, jeśli operacja odnosi się do
argumentu znajdującego się w pamięci lub
dostępnego przez wejście-wyjście.
Pobieranie argumentu (of). Pobranie argumentu
z pamięci lub z wejścia-wyjścia.
Operacja na danych (do). Przeprowadzenie
operacji wskazanej w rozkazie.
Przechowanie argumentu (os). Zapisanie wyniku
w pamięci lub skierowanie go do wejścia-wyjścia.

background image

20

Wykres stanów cyklu

rozkazu

background image

21

Wykres stanów cyklu

rozkazu

Stany w górnej części rys. określają wymianę
między procesorem a pamięcią lub modułem
wejścia-wyjścia.
Stany z dolnej części rysunku zawierają tylko
wewnętrzne operacje procesora.
Stan oac występuje dwukrotnie, ponieważ rozkaz
może zawierać odczyt, zapis lub jedno i drugie.
Jednak operacja wykonywana w tym stanie jest w
zasadzie taka sama w obu przypadkach, potrzebny
jest zatem tylko identyfikator jednostanowy.

background image

22

Wykres stanów cyklu

rozkazu

Zauważmy także, że wykres umożliwia wprowadzanie

wielu argumentów i uzyskiwanie wielu wyników,

ponieważ wymagają tego pewne rozkazy w niektórych

maszynach. Na przykład w PDP-11 wynikiem rozkazu

ADD A,B jest następująca sekwencja stanów: iac, if,

iod, oac, of, oac, of, do, oac, os.
Wreszcie, w niektórych maszynach pojedynczy rozkaz

może

określać

operację

na

wektorze

(jednowymiarowej tablicy) liczb lub na szeregu

(jednowymiarowej tablicy) znaków. Jak widać na rys.

wymaga to powtarzalnych operacji pobrania i (lub)

przechowywania.

background image

23

Przerwania

Praktycznie

we

wszystkich

komputerach

przewidziano mechanizm, za pomocą którego
inne moduły (wejście-wyjście, pamięć) mogą
przerwać normalne przetwarzanie danych
przez procesor.
Przerwania były pierwotnie przewidywane jako
sposób

poprawiania

efektywności

przetwarzania. Na przykład wiele urządzeń
zewnętrznych jest o wiele wolniejszych od
procesora.

background image

24

Klasy przerwań

Program
owe

Generowane

przez

warunek

będący

wynikiem wykonywania rozkazu, taki jak

przepełnienie arytmetyczne, dzielenie przez
zero, próba wykonania niedozwolonego
rozkazu oraz odniesienie do przestrzeni

pamięci zarezerwowanej dla użytkownika.

Zegarow
e

Generowane

przez

wewnętrzny

zegar

procesora; umożliwia wykonanie pewnych
funkcji przez system operacyjny.

Wejścia-
wyjścia

Generowane przez sterownik wejścia-wyjścia
w

celu

zasygnalizowania

normalnego

zakończenia

operacji

lub

w

celu

zasygnalizowania różnych warunków błędu.

Uszkodz

enie
sprzętu

Generowane przez uszkodzenie, takie jak

defekt zasilania lub błąd parzystości
pamięci.

background image

25

Działanie bez

wykorzystania przerwań

Załóżmy, że procesor przenosi dane do drukarki,

stosując schemat cyklu rozkazu przedstawiony

poprzednio na rys.
Po

każdej

operacji

zapisu

procesor

musi

pozostawać bezczynny, aż drukarka za nim nadąży.

Długość tej pauzy może wynosić setki lub nawet

tysiące cykli rozkazu, które nie angażują pamięci.
Jest to oczywiście bardzo rozrzutne wykorzystanie

procesora. Za pomocą przerwań procesor może być

zaangażowany w wykonywanie innych rozkazów,

podczas gdy ma miejsce operacja wejścia-wyjścia.

background image

26

Przerwania

Na rysunku widać ten właśnie stan w

odniesieniu

do

zastosowania

przedstawionego na poprzednim slajdzie.
Program użytkowy przewiduje szereg

wezwań „zapisz” (write) na przemian z

przetwarzaniem.
Segmenty kodów 1, 2 i 3 odnoszą się do

sekwencji rozkazów, które nie angażują

wejścia-wyjścia.
Wezwania „zapisz” są informacją dla

programu wejścia-wyjścia, że system jest

dostępny, więc może on przeprowadzić

aktualną operację wejścia-wyjścia.

background image

27

Program wejścia-wyjścia

składa się z trzech sekcji

Sekwencji rozkazów, oznaczonej na rysunku jako 4, mającej

na celu przygotowanie do aktualnej operacji wejścia-wyjścia.

Może ona zawierać kopiowanie danych do specjalnego

bufora oraz przygotowywanie parametrów dla rozkazu.
Aktualnego rozkazu wejścia-wyjścia. Jeśli nie wykorzystuje

się przerwań, to wydanie tego rozkazu powoduje, że program

musi czekać, aż urządzenie wejścia-wyjścia zrealizuje

wymaganą funkcję. Oczekiwanie to może polegać na

prostym, powtarzającym się testowaniu w celu stwierdzenia,

czy operacja wejścia-wyjścia jest zakończona.
Sekwencji rozkazów oznaczonej na rysunku jako 5, mającej

na celu zamknięcie operacji. Może ona zawierać przekazanie

znacznika wskazującego sukces lub niepowodzenie operacji.

background image

28

Gdy brak przerwań

program wejścia – wyjścia

długo czeka

Ponieważ operacja wejścia-wyjścia
może zająć stosunkowo długi czas,
program

wejścia-wyjścia

jest

zawieszany do czasu zakończenia
operacji.
W wyniku tego program użytkowy jest
zatrzymywany na wezwaniu „zapisz”
przez dość długi czas.

background image

29

Zatem skorzystajmy z

przerwań

Przy wykorzystaniu przerwań procesor może być

angażowany w wykonywanie innych rozkazów w

czasie, gdy jest realizowana operacja wejścia-

wyjścia.
Rozważmy przebieg sterowania przedstawiony na

rys. Jak poprzednio, program użytkowy osiąga

punkt, w którym wysyła wywołanie systemowe w

postaci wezwania „zapisz”. Program wejścia-

wyjścia, który jest wywoływany w tym momencie,

składa się tylko z kodu przygotowania i aktualnego

rozkazu wejścia-wyjścia.
Po wykonaniu tych kilku instrukcji sterowanie

wraca do programu użytkowego.
Tymczasem urządzenie zewnętrzne zajmuje się

pobieraniem danych z pamięci komputera i

drukowaniem ich. Ta operacja wejścia-wyjścia jest

przeprowadzana współbieżnie w stosunku do

rozkazów zawartych w programie użytkowym.

background image

30

Jak to działa ?

Gdy urządzenie zewnętrzne staje się gotowe do

obsługi, to znaczy gdy jest gotowe do przyjmowania

następnych danych z procesora, moduł wejścia-wyjścia

związany z tym urządzeniem wysyła sygnał żądania

przerwania do procesora.
Procesor odpowiada, zawieszając działanie bieżącego

programu i wykonując skok do programu obsługującego

to urządzenie zewnętrzne, nazywanego programem

obsługi przerwania (ang. interrupt handler).
Po obsłużeniu urządzenia następuje powrót do

programu bieżącego. Punkty, w których następują takie

przerwania, oznaczono gwiazdkami na rys. za pomocą *

background image

31

Dla programu użytkownika

nic się nie zmiena

Z punktu widzenia programu użytkowego przerwanie jest

właśnie przerwaniem normalnej sekwencji pracy.
Gdy przetwarzanie przerwania jest zakończone, następuje

powrót do normalnej sekwencji (rys.).
Program użytkowy nie musi więc zawierać jakiegoś specjalnego

kodu w związku z przerwaniami; procesor i system operacyjny

są odpowiedzialne za zawieszenie programu użytkowego, a

następnie powodują powrót do tego samego punktu.

background image

32

Cykl rozkazu z

przerwaniami

Aby

dostosować

się

do

przerwań, do cyklu rozkazu

jest

dodawany

cykl

przerwania

w sposób

pokazany na rys. Podczas

cyklu przerwania procesor

sprawdza, czy nie nastąpiły

jakieś

przerwania,

czego

świadectwem

byłaby

obecność sygnału przerwania.

Jeśli

przerwania

nie

realizowane,

procesor

przechodzi do cyklu pobrania i

pobiera następny rozkaz z

bieżącego programu.

background image

33

Gdy nastąpi przerwanie...

Jeśli natomiast następuje przerwanie, procesor

wykonuje następujące czynności:

1. Zawiesza wykonywanie bieżącego programu i

zachowuje jego kontekst. Polega to na zapisaniu

adresu następnego rozkazu przewidywanego do

wykonania (tj. bieżącej zawartości licznika programu),

a także innych danych związanych z bieżącym

działaniem procesora.

2. Ustawia licznik programu na początkowy adres

programu obsługi przerwań.
Procesor przechodzi następnie do cyklu pobrania i

pobiera pierwszy rozkaz z programu obsługi przerwań.

background image

34

Program obsługi

przerwania

Program ten jest na ogół częścią systemu

operacyjnego.
Zwykle program obsługi określa naturę przerwania,

po czym podejmuje niezbędne działania. W

wykorzystywanym przez nas przykładzie program

określa, który moduł wejścia-wyjścia wygenerował

przerwanie, po czym może przeskoczyć do

programu, który przekaże więcej danych temu

modułowi.
Po zakończeniu programu obsługi przerwania

procesor może wznowić wykonywanie programu

użytkowego w punkcie jego przerwania.

background image

Porównanie

efektywnośc

i programu

bez

przerwań i z

przerwania

mi

background image

36

Graf stanów cyklu rozkazu

z przerwaniami

background image

37

Przerwania wielokrotne

W dotychczasowej dyskusji rozważaliśmy występowanie

tylko pojedynczego przerwania.
Załóżmy jednak, że mogą wystąpić przerwania wielokrotne.

Program może, na przykład, otrzymywać dane z łącza

komunikacyjnego a także sygnały dotyczące drukowania.
Drukarka będzie generowała przerwanie każdorazowo po

zakończeniu

operacji

drukowania.

Sterownik

łącza

komunikacyjnego wygeneruje przerwanie każdorazowo po

przybyciu jednostki danych. Jednostka ta może być

pojedynczym znakiem lub blokiem, zależnie od przyjętych

reguł komunikacji. W każdym przypadku możliwe jest, że

przerwanie wywołane przez ten sterownik nastąpi w czasie,

w którym jest przetwarzane przerwanie spowodowane przez

drukarkę.

background image

38

Rozwiązania problemu

przerwań wielokrotnych

Problem wielokrotnych przerwań może być rozwiązany na dwa

sposoby. Pierwszy to uniemożliwienie przerwań, jeśli

jakiekolwiek przerwanie jest właśnie przetwarzane.
Przerwanie zablokowane (ang. disabled interrupt) oznacza

po prostu, że procesor zignoruje sygnał żądania przerwania.
Jeśli żądanie przerwania nastąpi w tym właśnie czasie, na ogół

pozostaje ono zawieszone i zostanie wykryte przez procesor,

jeśli uzyska on zezwolenie na przerwanie.
Jeżeli jest więc wykonywany program użytkowy i następuje

przerwanie,

to

natychmiast

uniemożliwiane

inne

przerwania. Kiedy program obsługi przerwań kończy działanie,

przerwania stają się dozwolone jeszcze przed wznowieniem

programu użytkowego, a procesor sprawdza, czy wystąpiły

dodatkowe przerwania.

background image

39

Sekwencyjne

przetwarzanie przerwań

Rozwiązanie to jest przyjemne i proste, jeśli

przerwania są realizowane w porządku ściśle

sekwencyjnym (rys. na następnym slajdzie).
Ujemną stroną powyższego podejścia jest to, że nie

bierze się pod uwagę względnej ważności przerwań

oraz zadań, które krytycznie zależą od czasu.
Jeśli na przykład przybywają dane z łącza

komunikacyjnego, to może być konieczne ich szybkie

przyjęcie w celu umożliwienia doprowadzenia

następnych danych. Jeśli pierwsza porcja danych nie

byłaby przetworzona przed przybyciem następnej,

dane mogłyby zostać utracone.

background image

40

Sekwencyjne

przetwarzanie przerwań

background image

41

Przetwarzanie

zagnieżdżonych przerwań

Drugie podejście polega na określeniu priorytetów
przerwań. Pozwala się na to, że przerwanie o
wyższym

priorytecie

powoduje

przerwanie

programu

obsługi

przerwania

o

niższym

priorytecie (rys.).

background image

42

Przykład sekwencji

czasowej wielu przerwań

background image

43

Działanie urządzeń

wejścia/wyjścia

Moduł wejścia-wyjścia może wymieniać dane

bezpośrednio z procesorem.
Podobnie jak procesor może inicjować odczyt

lub zapis w pamięci, określając adres

specyficznej lokacji.
Procesor

może

też

odczytywać

dane

pochodzące z modułu wejścia-wyjścia lub je

w nim zapisywać. W tym ostatnim przypadku

procesor identyfikuje urządzenie, którym

steruje określony moduł wejścia-wyjścia.

background image

44

DMA

W pewnych przypadkach pożądane jest umożliwienie

bezpośredniej wymiany danych między wejściem-

wyjściem a pamięcią. W takim przypadku procesor

przekazuje

modułowi

wejścia-wyjścia

prawo

do

odczytywania lub zapisywania rozkazów w pamięci,

dzięki czemu przesyłanie danych między wejściem-

wyjściem

a

pamięcią

może

następować

bez

angażowania procesora.
Podczas takiego przesyłania moduł wejścia-wyjścia

odczytuje lub zapisuje rozkazy w pamięci, uwalniając

procesor od odpowiedzialności za tę wymianę.
Operacja taka jest znana jako bezpośredni dostęp do

pamięci (ang. direct memory access - DMA).

background image

45

Struktury połączeń

Komputer jest zestawem zespołów lub modułów
trzech podstawowych typów (procesor, pamięć,
wejście-wyjście),

które

komunikują

się

wzajemnie. W rezultacie komputer jest siecią
obejmującą podstawowe moduły. Muszą więc
istnieć ścieżki łączące moduły.
Zbiór ścieżek łączących moduły jest nazywany
strukturą połączeń. Budowa tej struktury
zależy od wymiany, która musi zachodzić
między modułami.

background image

46

Połączenia pamięci

Moduł

pamięci

składa

się

zwykle

z

N

słów

o jednakowej długości.
Każde

słowo

ma

przypisany

jednoznaczny

adres numeryczny (0, 1, ..., N -1).
Słowo może być odczytane z pamięci lub do niej

zapisane. Rodzaj operacji jest wskazywany przez

sygnały sterujące „czytaj” lub „zapisz”. Lokacja,

której dotyczy operacja, jest wskazywana przez

adres.

background image

47

Połączenia modułów

wejścia/wyjścia

Z

zewnętrznego

(w

stosunku

do

systemu

komputerowego

punktu

widzenia,

moduł

wejścia

-wyjścia

jest

funkcjonalnie

podobny

do

pamięci.

Istnieją

dwie operacje: zapisu i odczytu.
Ponadto moduł wejścia-wyjścia może sterować więcej niż

jednym urządzeniem zewnętrznym. Możemy określić każdy z

interfejsów z urządzeniem zewnętrznym jako port i nadać

każdemu z nich jednoznaczny adres (np. 0, 1,..., M- 1).
Istnieją poza tym zewnętrzne ścieżki danych służące do

wprowadzania i wyprowadzania danych z urządzenia

zewnętrznego. Wreszcie moduł wejścia-wyjścia może

wysyłać sygnały przerwania do procesora.

background image

48

Połączenia procesora

Procesor wczytuje rozkazy i dane,
wysyła dane po przetworzeniu
i posługuje się sygnałami sterującymi
do sterowania całą pracą systemu.
Otrzymuje

też

sygnały

przerwania.

background image

49

Dane podlegające

wymianie w systemie

komputerowym

Powyższa lista określa dane podlegające

wymianie. Struktura połączeń musi umożliwiać

przesyłanie danych:
Z pamięci do procesora. Procesor odczytuje z

pamięci rozkazy lub jednostki danych.
Z procesora do pamięci. Procesor zapisuje

jednostki danych w pamięci.
Z urządzeń wejścia-wyjścia do procesora.

Procesor odczytuje dane z urządzenia wejścia-

wyjścia za pośrednictwem modułu wejścia-

wyjścia.

background image

50

Dane podlegające

wymianie w systemie

komputerowym

Powyższa lista określa dane podlegające

wymianie. Struktura połączeń musi umożliwiać

przesyłanie danych:
Z pamięci do procesora. Procesor odczytuje z

pamięci rozkazy lub jednostki danych.
Z procesora do pamięci. Procesor zapisuje

jednostki danych w pamięci.
Z urządzeń wejścia-wyjścia do procesora.

Procesor odczytuje dane z urządzenia wejścia-

wyjścia za pośrednictwem modułu wejścia-

wyjścia.

background image

51

Dane wymieniane w

systemie komputerowym

Z procesora do wejścia-wyjścia. Procesor

wysyła dane do urządzenia wejścia-wyjścia.

Z urządzeń wejścia-wyjścia do pamięci lub

na odwrót. W tych dwóch przypadkach
zezwala się modułowi wejścia-wyjścia na
bezpośrednią wymianę danych z pamięcią,
bez

pośrednictwa

procesora,

przy

wykorzystaniu bezpośredniego dostępu do
pamięci (DMA).

background image

52

Magistrale

W przeszłości wypróbowano wiele
struktur

połączeń.

Zdecydowanie

najpowszechniejsze

struktury

magistralowe i wielomagistralowe.
Ale o magistralach będzie już na
następnym wykładzie !!!


Document Outline


Wyszukiwarka

Podobne podstrony:
Architektura i organizacja komuterów W3 Działanie komput
Architektura i organizacja komuterów W5 Pamięć wewnętrzna
Architektura i organizacja komuterów W1 Co to jest i skąd to się wzięło
Architektura i organizacja komuterów W6 Pamięć zewnętrzna
Architektura i organizacja komuterów W4 Połączenia magistralowe
Architektura i organizacja komuterów W4 Połączenia magis
Architektura i organizacja komuterów W7 Wejście Wyjście
Architektura i organizacja komuterów W9 Wspieranie systemu operacyjnego
Architektura i organizacja komuterów 11 Procesor
Architektura i organizacja komuterów W7 Pamięć zewnętrzn
Architektura i organizacja komuterów W8 Wejście Wyjście
Architektura i organizacja komuterów W9 Procesor
Architektura i organizacja komuterów W6 Pamięć wewnętrzn
Architektura i organizacja komuterów W1 i 2 Co to jest i skąd to się wzięło
Architektura i organizacja komuterów W2 Ewolucja i wydaj
Architektura i organizacja komuterów W5 Pamięć wewnętrzna
spr aok ilona2, Wojskowa Akademia Techniczna (WAT) INFORMATYKA, SEM1, Architektura i Organizacja Kom


więcej podobnych podstron