[ Pobierz całość w formacie PDF ]

Procesor 41
3.12. Co to jest stos?
Stos jest to specjalnie zorganizowany fragment pamiÍci (w postaci jednowymia-
rowej tablicy) przeznaczony do przechowywania niewielkiej liczby danych. DostÍp do
tej tablicy jest moøliwy tylko w pewien charakterystyczny sposÛb. Dane na stosie
moøna umieszczaÊ lub zdejmowaÊ.
Umieszczanie danych przypomina uke"adanie ksiÀøek, jednÀ na drugiej. Kolejnego
elementu, ktÛry chcemy umieúciÊ na stosie, nie moøna wstawiÊ miÍdzy istniejÀce juø
na stosie elementy, lecz moøna go tylko poe"oøyÊ na wierzchoe"ku. W wyniku umiesz-
czania kolejnych elementÛw stos Ñroúnieî. Element ostatnio poe"oøony na stosie nazy-
wa siÍ wierzchoe"kiem stosu.
Pobieranie danych ze stosu przebiega w odwrotnej kolejnoúci. Jedynym dostÍp-
nym elementem, ktÛry moøna pobraÊ jest wierzchoe"ek stosu. Nie moøna ÑwyjÀÊî øad-
nych elementÛw ze úrodka stosu. W wyniku pobierania elementÛw stos Ñobniøa siÍî.
Po pobraniu wszystkich elementÛw stos jest pusty.
Dziae"ania na stosie sÀ moøliwe dziÍki istnieniu specjalnego rejestru, zwanego
wskaünikiem stosu. Zawiera on zawsze adres aktualnego wierzchoe"ka stosu. Rozkaz
zapisu danej na stosie zwiÍksza wartoúÊ wskaünika stosu, a nastÍpnie umieszcza jÀ
w miejscu przez niego wskazywanym. Rozkaz pobierania informacji ze stosu odczy-
tuje danÀ wskazywanÀ przez wskaünik i zmniejsza jego wartoúÊ. W ten sposÛb zawsze
znane jest poe"oøenie jedynie wierzchoe"ka stosu.
3.13. Do czego se"uøy stos?
Stos jest szczegÛlnie przydatny do przechowywania adresÛw powrotu z podpro-
gramÛw. Rozkazy wywoe"ania podprogramu automatycznie przesye"ajÀ na stos aktualnÀ
wartoúÊ licznika rozkazÛw. Natomiast rozkazy powrotu z podprogramu (rÛwnieø au-
tomatycznie) pobierajÀ ze stosu wartoúÊ licznika rozkazÛw i wykonujÀ skok w tak
odtworzone miejsce. RozwiÀzanie to umoøliwia wielopoziomowe wywoe"ywanie pod-
programÛw przez podprogramy.
W podobny sposÛb jest wykorzystywany stos przy obse"udze przerwaÒ (patrz pyt.
3.14). Przed przystÀpieniem do wykonywania rozkazu podprogramu obse"ugi przerwa-
nia procesor zapisuje na stosie aktualne poe"oøenie w wykonywanym programie oraz
stan procesora. Po zakoÒczeniu obse"ugi przerwania stan rejestrÛw procesora jest od-
twarzany i program moøe byÊ kontynuowany.
42 Komputer - czÍsto zadawane pytania
3.14. Na czym polega przerwanie i jakie sÀ rodzaje przerwaÒ?
Przerwanie polega na wstrzymaniu aktualnie wykonywanego programu i auto-
matycznym uruchomieniu jednego ze specjalnych podprogramÛw wykonujÀcych
czynnoúci zwane obse"ugÀ przerwania.
Przyczynami przerwania mogÀ byÊ be"Ídy, spowodowane przez program takie, jak
prÛba dzielenia przez zero, prÛba wykonania nielegalnego rozkazu lub odwoe"anie do
zawartoúci nieistniejÀcej komÛrki pamiÍci. Takie sytuacje sÀ wykrywane przez uke"ady
procesora, ktÛre zawieszajÀ wÛwczas wykonywanie programu i uruchamiajÀ podpro-
gram, np. wysye"ajÀcy komunikat o be"Ídzie. Po zakoÒczeniu podprogramu obse"ugi
przerwania nastÍpuje wznowienie programu, ktÛry zostae" przerwany. WyjÀtkiem sÀ
sytuacje, w ktÛrych oprogramowanie nadzorujÀce pracÍ komputera (system operacyj-
ny ñ rozdz. 9) uzna, øe dalsze jego wykonywanie nie ma sensu.
OprÛcz przerwaÒ majÀcych swe ürÛde"o w samym programie, istniejÀ jeszcze prze-
rwania zewnÍtrzne. MogÀ one byÊ spowodowane np. naciúniÍciem klawisza, zakoÒ-
czeniem lub be"Ídem transmisji przez uke"ad wejúcia/wyjúcia. DziÍki zastosowaniu
przerwaÒ do obse"ugi urzÀdzeÒ wejúcia/wyjúcia, jest moøliwe zwolnienie procesora
z bezpoúredniego obse"ugiwania transmisji. Uke"ady komunikacyjne wymieniajÀ infor-
macje miÍdzy sobÀ, a procesor jest jedynie informowany o obecnoúci odebranych juø
informacji. To rozwiÀzanie pozwala wykorzystaÊ czas procesora na wykonanie innych
zadaÒ, podczas gdy wolne urzÀdzenia transmisyjne same prowadzÀ transmisjÍ.
3.15. Jak przebiega obse"uga przerwania?
Przyke"adem obrazujÀcym dziae"anie systemu przerwaÒ moøe byÊ praca sekretarki,
ktÛra pisze coú waønego. W trakcie pisania dzwoni telefon, powodujÀc przerwanie
pracy i koniecznoúÊ Ñobse"ugiî tego zdarzenia. Po zakoÒczeniu rozmowy telefonicznej
sekretarka powraca do pisania. Za chwilÍ przychodzi jej szef i prosi o zrobienie kawy.
CzynnoúÊ ta jest waøniejsza od pisania, wiÍc musi zostaÊ Ñobse"uøonaî wczeúniej. Po
zrobieniu kawy sekretarka wraca do swoich obowiÀzkÛw.
W komputerze po zge"oszeniu sygnae"u przerwania na stos jest wysye"any adres roz-
kazu, od ktÛrego naleøy wznowiÊ program po zakoÒczeniu obse"ugi przerwania oraz
inne informacje okreúlajÀce aktualny stan programu. Podprogram obse"ugi przerwania
musi byÊ zakoÒczony rozkazem powrotu z przerwania. Dziae"anie tego rozkazu jest
podobne do rozkazu powrotu z podprogramu. Rozkaz powrotu z przerwania odtwarza
dodatkowo stan programu, jaki bye" w chwili przyjÍcia przerwania.
Podczas obse"ugi przerwania moøe zostaÊ zge"oszone inne przerwanie. W zaleønoúci
od tego, czy przerwanie obecnie obse"ugiwane jest waøniejsze (ma wyøszy priorytet)
czy waøniejsze jest przerwanie we"aúnie zge"aszane, procesor moøe ignorowaÊ sygnae"
zge"oszenia lub przystÀpiÊ do jego obse"ugi. Jeúli przerwanie zge"aszane w czasie obse"ugi
Procesor 43
innego przerwania ma niøszy priorytet, procesor nie przyjmuje go, aø do chwili za-
koÒczenia obse"ugi poprzedniego przerwania, o wyøszym priorytecie. Jeúli natomiast
nowo zge"aszane przerwanie ma wyøszy priorytet, procesor zawiesza wykonywanie
poprzedniego podprogramu obse"ugi i wykonuje podprogram nowego przerwania. Po
zakoÒczeniu jego obse"ugi jest kontynuowany podprogram obse"ugi poprzedniego prze-
rwania.
3.16. Jak dziae"a arytmometr?
Arytmometr wraz ze wspÛe"pracujÀcymi z nim rejestrami umoøliwia wykonywanie
jedynie podstawowych operacji arytmetycznych i logicznych. ZbiÛr tych operacji jest
przewaønie uboøszy, niø zbiÛr rozkazÛw arytmetycznych komputera. Zawiera on naj-
czÍúciej:
S dodawanie
S odejmowanie
S zwiÍkszanie lub zmniejszanie o jeden
S przesuwanie w prawo lub w lewo
S funkcje logiczne: NOT, AND, OR, EXOR (patrz pyt. 2.4).
Niemal w kaødym komputerze zbiÛr ten jest inny. Zaleøy to ge"Ûwnie od sposobu
rozwiÀzania uke"adÛw sterowania arytmometrem i zae"oøonych parametrÛw uøytko-
wych. Najmniejszy moøliwy zbiÛr operacji podstawowych, za pomocÀ ktÛrych moøna
wykonaÊ dowolne dziae"anie, jest jeszcze mniej liczny niø podany powyøej. Jednak im
wiÍcej funkcji bezpoúrednio wbudowanych w arytmometr, tym szybciej odbywa siÍ
przetwarzanie.
Z arytmometrem wspÛe"pracujÀ rejestry robocze, najczÍúciej o de"ugoúci se"owa pro-
cesora. Na poszczegÛlne wejúcia sÀ podawane rÛwnolegle wszystkie bity obydwu ar-
gumentÛw. Wynik trafia do rejestru przye"Àczonego do wyjúcia arytmometru. OprÛcz
rejestrÛw dostÍpnych z zewnÀtrz z arytmometrem mogÀ wspÛe"pracowaÊ rejestry
Ñniewidoczneî z zewnÀtrz. Dodatkowe uke"ady pozwalajÀ arytmometrowi wykonywaÊ
bardziej skomplikowane operacje, np. mnoøenie liczb. Odbywa siÍ to poprzez powta-
rzanie w odpowiedniej kolejnoúci operacji elementarnych (w przypadku mnoøenia [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • alwayshope.keep.pl
  •