background image

 

UKŁADY I OPERACJE 

UKŁADY I OPERACJE 

WEJŚCIA/WYJŚCIA

WEJŚCIA/WYJŚCIA

Układy wejścia/wyjścia

Układy wejścia/wyjścia

Operacje z bezpośrednim sterowaniem przez 

Operacje z bezpośrednim sterowaniem przez 

mikroprocesor

mikroprocesor

Operacje z pośrednim sterowaniem przez 

Operacje z pośrednim sterowaniem przez 

mikroprocesor (DMA)

mikroprocesor (DMA)

background image

 

Układem  we/wy  nazywamy  układ  elektroniczny  pośredniczący  w 
wymianie  informacji  pomiędzy  mikroprocesorem  i  pamięcią 
systemu z jednej strony a urządzeniem peryferyjnym (zewnętrznym 
urządzeniem 

współpracującym) 

drugiej.

Dla  systemu  mikroprocesorowego  układ  we/wy  widoczny  jest  jako 
rejestr  lub  zespół  rejestrów  o  określonych  adresach  oraz  pewien 
zestaw sygnałów sterujących. 

Układem  we/wy  nazywamy  układ  elektroniczny  pośredniczący  w 
wymianie  informacji  pomiędzy  mikroprocesorem  i  pamięcią 
systemu z jednej strony a urządzeniem peryferyjnym (zewnętrznym 
urządzeniem 

współpracującym) 

drugiej.

Dla  systemu  mikroprocesorowego  układ  we/wy  widoczny  jest  jako 
rejestr  lub  zespół  rejestrów  o  określonych  adresach  oraz  pewien 
zestaw sygnałów sterujących. 

UKŁDY WEJŚCIA/WYJŚCIA

UKŁDY WEJŚCIA/WYJŚCIA

background image

 

UKŁDY WEJŚCIA/WYJŚCIA

UKŁDY WEJŚCIA/WYJŚCIA

Urządzenia 

peryferyjne 

mogą 

służyć 

do 

Urządzenia 

peryferyjne 

mogą 

służyć 

do 

wprowadzania, 

wyprowadzania 

bądź 

wprowadzania, 

wyprowadzania 

bądź 

przechowywania  informacji  lub  być  układami 

przechowywania  informacji  lub  być  układami 

wykonawczymi.

wykonawczymi.

Dlaczego konieczne jest pośredniczenie?

Dlaczego konieczne jest pośredniczenie?

różnice  w  szybkości  działania  (konieczne  jest 

różnice  w  szybkości  działania  (konieczne  jest 

więc sterowanie przepływem informacji)

więc sterowanie przepływem informacji)

różnice w parametrach elektrycznych (konieczna 

różnice w parametrach elektrycznych (konieczna 

więc translacja poziomu sygnałów)

więc translacja poziomu sygnałów)

wymagają  podania  informacji  o  określonym 

wymagają  podania  informacji  o  określonym 

formacie wraz z pewnymi sygnałami sterującymi 

formacie wraz z pewnymi sygnałami sterującymi 

(np. Sygnał wideo wraz z synchronizacją)

(np. Sygnał wideo wraz z synchronizacją)

Układy  wej/wyj  podobnie  jak  pamięci  posiadają 

Układy  wej/wyj  podobnie  jak  pamięci  posiadają 

wejścia adresowe i sterujące.

wejścia adresowe i sterujące.

background image

 

UKŁDY WEJŚCIA/WYJŚCIA

UKŁDY WEJŚCIA/WYJŚCIA

00000

00000

0

0

00001

00001

1

1

00002

00002

2

2

00003

00003

3

3

00004

00004

4

4

00005

00005

5

5

00006

00006

6

6

00007

00007

7

7

00008

00008

8

8

00009

00009

9

9

0000A

0000A

10

10

0000B

0000B

11

11

FFFF9

FFFF9

104856

104856

9

9

FFFFA

FFFFA

104857

104857

0

0

FFFFB

FFFFB

104857

104857

1

1

FFFFC

FFFFC

104857

104857

2

2

FFFFD

FFFFD

104857

104857

3

3

FFFFE

FFFFE

104857

104857

4

4

FFFFF

FFFFF

104857

104857

5

5

Adres 

szesnastkowo

Adres 

dziesiętnie

0000

0000

0

0

0001

0001

1

1

0002

0002

2

2

0003

0003

3

3

0004

0004

4

4

0005

0005

5

5

0006

0006

6

6

0007

0007

7

7

0008

0008

8

8

0009

0009

9

9

000A

000A

10

10

000B

000B

11

11

FFF9

FFF9

65529

FFFA

FFFA

65530

65530

FFFB

FFFB

65531

65531

FFFC

FFFC

65532

65532

FFFD

FFFD

65533

65533

FFFE

FFFE

65534

65534

FFFF

FFFF

65535

65535

Adres 

szesnastkowo

Adres 

dziesiętnie

background image

 

Układy wejścia/wyjścia to 65536 "okienek" (o numerach od 0 do 65535) 

Układy wejścia/wyjścia to 65536 "okienek" (o numerach od 0 do 65535) 

zwanych  portami.  Są  one  niezbędne  do  komunikowania  się  z 

zwanych  portami.  Są  one  niezbędne  do  komunikowania  się  z 

procesorem (8086/88).

procesorem (8086/88).

Przypomnijmy,  że  komunikacja  z  tymi  portami  odbywa  się  zawsze  za 

Przypomnijmy,  że  komunikacja  z  tymi  portami  odbywa  się  zawsze  za 

pośrednictwem rejestru akumulatora:

pośrednictwem rejestru akumulatora:

AL (port - 8 bitowy) 

AL (port - 8 bitowy) 

AX (port 16 - bitowy),

AX (port 16 - bitowy),

a  numer  portu  podawany  jest  jako  dana  natychmiastowa  lub  jako 

a  numer  portu  podawany  jest  jako  dana  natychmiastowa  lub  jako 

zawartość rejestru DX 

zawartość rejestru DX 

Do  odczytywania  danej  z  portu  służy  dwuargumentowy  rozkaz  IN  o 

Do  odczytywania  danej  z  portu  służy  dwuargumentowy  rozkaz  IN  o 

składni: 

składni: 

IN akumulator, nr_portu

IN akumulator, nr_portu

 lub 

 lub 

IN akumulator, rejestr DX

IN akumulator, rejestr DX

 

 

Do zapisywania danej do portu służy rozkaz OUT o składni: 

Do zapisywania danej do portu służy rozkaz OUT o składni: 

OUT nr_portu, akumulator

OUT nr_portu, akumulator

 lub 

 lub 

OUT rejestr DX, akumulator

OUT rejestr DX, akumulator

Przykłady

Przykłady

:

:

IN AL,16

IN AL,16

;wpisz do rejestru AL bajt z portu o adresie nr 16

;wpisz do rejestru AL bajt z portu o adresie nr 16

IN AX,DX

IN AX,DX

;

;

wpisz do rejestru AX słowo z portu o numerze w rejestrze 

wpisz do rejestru AX słowo z portu o numerze w rejestrze 

DX

DX

OUT 6D,AX

OUT 6D,AX

;wyprowadź słowo z rejestru AX do portu o numerze 6D

;wyprowadź słowo z rejestru AX do portu o numerze 6D

OUT DX,AX

OUT DX,AX

;wyprowadź słowo z rejestru AX do portu o numerze w 

;wyprowadź słowo z rejestru AX do portu o numerze w 

rejestrze DX

rejestrze DX

UKŁDY 

UKŁDY 

WEJŚCIA/WYJŚCIA

WEJŚCIA/WYJŚCIA

background image

 

UKŁDY WEJŚCIA/WYJŚCIA

UKŁDY WEJŚCIA/WYJŚCIA

Układy wejścia/wyjścia można podzielić na dwie podstawowe kategorie:

Układy wejścia/wyjścia można podzielić na dwie podstawowe kategorie:

układy współadresowalne z pamięcią (np. karta graficzna) 

układy współadresowalne z pamięcią (np. karta graficzna) 

układy izolowane (np. sterownik dysku twardego)

układy izolowane (np. sterownik dysku twardego)

background image

 

Szyna adresowa

Szyna adresowa

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

CPU

CPU

I/O

I/O

MEMR  MEMW

MEMR  MEMW

MEMR  MEMW

MEMR  MEMW

MEMR  MEMW

MEMR  MEMW

W  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  we/wy),  za 
pomocą  adresu  (istnieje  potrzeba  wydzielenia  w  pamięci 
przestrzeni  dla  adresów  układów  we/wy).  Sygnały  sterujące 
są wspólne dla pamięci i układów we/wy.

W  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  we/wy),  za 
pomocą  adresu  (istnieje  potrzeba  wydzielenia  w  pamięci 
przestrzeni  dla  adresów  układów  we/wy).  Sygnały  sterujące 
są wspólne dla pamięci i układów we/wy.

Np. karta 

Np. karta 

graficzna

graficzna

UKŁDY WEJŚCIA/WYJŚCIA 

UKŁDY WEJŚCIA/WYJŚCIA 

WSPÓŁADRESOWALNE Z PAMIĘCIĄ

WSPÓŁADRESOWALNE Z PAMIĘCIĄ

background image

 

Szyna adresowa

Szyna adresowa

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

CPU

CPU

I/O

I/O

MEMR  

MEMR  

        

        

MEMW

MEMW

MEMR  MEMW

MEMR  MEMW

IOR    IOW

IOR    IOW

Dla izolowanych układów we/wy wybieramy obiekt, na którym 
dokonujemy  operacji  (komórka  pamięci  lub  rejestr  układu 
we/wy),  za  pomocą  sygnałów  sterujących.  Przestrzenie 
adresowe pamięci układów we/wy są rozdzielone

Dla izolowanych układów we/wy wybieramy obiekt, na którym 
dokonujemy  operacji  (komórka  pamięci  lub  rejestr  układu 
we/wy),  za  pomocą  sygnałów  sterujących.  Przestrzenie 
adresowe pamięci układów we/wy są rozdzielone

IOR   

IOR   

     

     

IOW

IOW

Sygnały 

Sygnały 

sterujące 

sterujące 

dla pamięci

dla pamięci

Sygnały sterujące 

Sygnały sterujące 

dla 

dla 

układów we/wy

układów we/wy

Np. sterownik 

Np. sterownik 

dysku twardego

dysku twardego

UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE

UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE

background image

 

Operacjami 

wejścia/wyjścia 

nazywamy 

całokształt 

działań 

potrzebnych 

do 

realizacji 

wymiany 

informacji 

pomiędzy 

mikroprocesorem  i  pamięcią  z  jednej  strony  a  układem 
wejścia/wyjścia z drugiej.

Operacjami 

wejścia/wyjścia 

nazywamy 

całokształt 

działań 

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

OPERACJE WEJŚCIA/WYJŚCIA

Operacje wejścia/wyjścia mogą być realizowane:

Operacje wejścia/wyjścia mogą być realizowane:

od  początku  do  końca  przy  udziale  procesora  - 

od  początku  do  końca  przy  udziale  procesora  - 

przesyłana  informacja  przepływa  przez  rejestry 

przesyłana  informacja  przepływa  przez  rejestry 

procesora,  który  także  steruje  każdym  krokiem 

procesora,  który  także  steruje  każdym  krokiem 

realizacji  operacji  -  są  to 

realizacji  operacji  -  są  to 

operacje  z  bezpośrednim 

operacje  z  bezpośrednim 

sterowaniem przez mikroprocesor

sterowaniem przez mikroprocesor

poprzez  zainicjowanie  operacji  przez  procesor,  który 

poprzez  zainicjowanie  operacji  przez  procesor,  który 

następnie  przekazuje  nadzór  nad  realizacją  operacji 

następnie  przekazuje  nadzór  nad  realizacją  operacji 

innemu układowi (zarządcy magistrali) - są to 

innemu układowi (zarządcy magistrali) - są to 

operacje 

operacje 

z  pośrednim  sterowaniem  przez  mikroprocesor  (z 

z  pośrednim  sterowaniem  przez  mikroprocesor  (z 

bezpośrednim dostępem do pamięci - DMA)

bezpośrednim dostępem do pamięci - DMA)

.

.

background image

 

Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, 
przy  realizacji  której  mikroprocesor  nie  sprawdza  gotowości 
układu  wejścia/wyjścia  do  tej  wymiany.  Są  to  operacje 
najprostsze  realizowane  tylko  w  niektórych  przypadkach  np. 
przesłanie  sygnału  do  wyświetlania  informacji  za  pomocą 
zestawu diod elektroluminescencyjnych.

Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, 
przy  realizacji  której  mikroprocesor  nie  sprawdza  gotowości 
układu  wejścia/wyjścia  do  tej  wymiany.  Są  to  operacje 
najprostsze  realizowane  tylko  w  niektórych  przypadkach  np. 
przesłanie  sygnału  do  wyświetlania  informacji  za  pomocą 
zestawu diod elektroluminescencyjnych.

Przy  realizacji  operacji  wejścia/wyjścia  z  testowaniem  stanu 
układu  wejścia/wyjścia,  mikroprocesor  sprawdza  sygnał  (np. 
określony  bit  kontrolny)  gotowości  układu  do  wymiany.  W 
przypadku potwierdzenia gotowości do wymiany przez układ jest 
ona realizowana. Operacje te są stosowane np. przy współpracy z 
przetwornikiem  a/c  -  procesor  cyklicznie  przepytuje  przetwornik 
(tzw.  pętla  przepytywania)  do  chwili  uzyskania  zgłoszenia 
gotowości.

Przy  realizacji  operacji  wejścia/wyjścia  z  testowaniem  stanu 
układu  wejścia/wyjścia,  mikroprocesor  sprawdza  sygnał  (np. 
określony  bit  kontrolny)  gotowości  układu  do  wymiany.  W 
przypadku potwierdzenia gotowości do wymiany przez układ jest 
ona realizowana. Operacje te są stosowane np. przy współpracy z 
przetwornikiem  a/c  -  procesor  cyklicznie  przepytuje  przetwornik 
(tzw.  pętla  przepytywania)  do  chwili  uzyskania  zgłoszenia 
gotowości.

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

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

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

przez mikroprocesor :

przez mikroprocesor :

bezwarunkowe operacje wejścia/wyjścia

bezwarunkowe operacje wejścia/wyjścia

operacje z testowaniem stanu układu wejścia/wyjścia

operacje z testowaniem stanu układu wejścia/wyjścia

operacje z przerwaniem programu

operacje z przerwaniem programu

background image

 

 

 

OPERACJE Z PRZERWANIEM PROGRAMU

OPERACJE Z PRZERWANIEM PROGRAMU

Operacje wejścia/wyjścia z przerwaniem programu eliminują wady operacji z 

Operacje wejścia/wyjścia z przerwaniem programu eliminują wady operacji z 

testowaniem stanu układu. 

testowaniem stanu układu. 

Procesor  wykonuje 

Procesor  wykonuje 

program  główny

program  główny

  oczekując  na  zgłoszenie  gotowości. 

  oczekując  na  zgłoszenie  gotowości. 

Zgłoszenie 

powoduje 

przerwanie 

wykonywania 

programu 

głównego 

Zgłoszenie 

powoduje 

przerwanie 

wykonywania 

programu 

głównego 

zapamiętanie  informacji  potrzebnej  do  późniejszego  powrotu  do  programu 

zapamiętanie  informacji  potrzebnej  do  późniejszego  powrotu  do  programu 

głównego. Procesor przechodzi do wykonania 

głównego. Procesor przechodzi do wykonania 

programu obsługi przerwań 

programu obsługi przerwań 

(

(

ISR - 

ISR - 

interrupt  service  routine

interrupt  service  routine

)  -  następuje  wymiana  informacji  z  układem  we/wy.  Po 

)  -  następuje  wymiana  informacji  z  układem  we/wy.  Po 

zakończeniu  wymiany  (programu  obsługi  przerwania)  procesor  kontynuuje 

zakończeniu  wymiany  (programu  obsługi  przerwania)  procesor  kontynuuje 

przerwany program główny.

przerwany program główny.

INSTRUKCJA 1

INSTRUKCJA 1

INSTRUKCJA 2

INSTRUKCJA 2

INSTRUKCJA 3

INSTRUKCJA 3

INSTRUKCJA 4

INSTRUKCJA 4

INSTRUKCJA 11

INSTRUKCJA 11

INSTRUKCJA 12

INSTRUKCJA 12

INSTRUKCJA 5

INSTRUKCJA 5

INSTRUKCJA 6

INSTRUKCJA 6

INSTRUKCJA 7

INSTRUKCJA 7

INSTRUKCJA 8

INSTRUKCJA 8

INSTRUKCJA 9

INSTRUKCJA 9

RET 10

RET 10

Program główny

Zgłoszenie 

przerwania

Odtworzenie 

stanu 

rejestrów 

procesora

Początek 

programu obsługi 

przerwania

Zapamiętanie 

stanu 

rejestrów 

procesora

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

background image

 

 

 

OPERACJE Z PRZERWANIEM PROGRAMU

OPERACJE Z PRZERWANIEM PROGRAMU

W przypadku pojawienia się jednoczesnego kilku zgłoszeń od 

W przypadku pojawienia się jednoczesnego kilku zgłoszeń od 

urządzeń we/wy sytuacja może się komplikować. Dlatego stosuje się 

urządzeń we/wy sytuacja może się komplikować. Dlatego stosuje się 

tzw. 

tzw. 

sterownik przerwań

sterownik przerwań

Główne zadania sterownika przerwań:

Główne zadania sterownika przerwań:

pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy 

pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy 

procesorem i układami we/wy

procesorem i układami we/wy

przyjmowanie zgłoszeń od wielu układów we/wy (procesor 

przyjmowanie zgłoszeń od wielu układów we/wy (procesor 

posiada tylko jedno wejście zgłoszenia przerwań)

posiada tylko jedno wejście zgłoszenia przerwań)

wybór spośród wielu zgłoszeń tego, które zostanie obsłużone

wybór spośród wielu zgłoszeń tego, które zostanie obsłużone

sygnalizowanie wyboru przez podanie adresu układu we/wy, z 

sygnalizowanie wyboru przez podanie adresu układu we/wy, z 

którym zostanie dokonana wymiana (adresu programu obsługi 

którym zostanie dokonana wymiana (adresu programu obsługi 

przerwania realizującego tą wymianę, a właściwie numer 

przerwania realizującego tą wymianę, a właściwie numer 

pozycji w 

pozycji w 

tablicy wektorów przerwań

tablicy wektorów przerwań

)

)

wygenerowanie sygnału zgłoszenia przerwania bezpośrednio 

wygenerowanie sygnału zgłoszenia przerwania bezpośrednio 

do procesora

do procesora

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

background image

 

OPERACJE Z PRZERWANIEM PROGRAMU - TABLICA WEKTORÓW 

OPERACJE Z PRZERWANIEM PROGRAMU - TABLICA WEKTORÓW 

PRZERWAŃ

PRZERWAŃ

Początek IRS

Początek IRS

CS

CS

IP

IP

CS

CS

IP

IP

CS

CS

IP

IP

Pamięć 

Pamięć 

operacyjna

operacyjna

Numer 

przerwania

Adres 

Adres 

początku 

początku 

programu 

programu 

obsługi 

obsługi 

przerwania

przerwania

Tablica 

Tablica 

wektoró

wektoró

przerwa

przerwa

ń

ń

CS

CS

IP

IP

CS

CS

IP

IP

Sterowni

Sterowni

przerwań

przerwań

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

background image

 

Tablica  wektorów  przerwań

Tablica  wektorów  przerwań

  zajmuje  obszar  pierwszego  kilobajta  pamięci 

  zajmuje  obszar  pierwszego  kilobajta  pamięci 

operacyjnej:

operacyjnej:

256 wektorów przerwań x 4 bajty dla jednego wektora

256 wektorów przerwań x 4 bajty dla jednego wektora

Adresy  programów  obsługi  przerwań  są  wpisywane  do  tablicy  wektorów 

Adresy  programów  obsługi  przerwań  są  wpisywane  do  tablicy  wektorów 

przerwań  podczas  ładowania  systemu  operacyjnego  przez  BIOS  i  przez  system 

przerwań  podczas  ładowania  systemu  operacyjnego  przez  BIOS  i  przez  system 

operacyjny.

operacyjny.

Przerwania obsługiwane przez BIOS (32 przerwania) mają numery: od 0 do 1FH. 

Przerwania obsługiwane przez BIOS (32 przerwania) mają numery: od 0 do 1FH. 

Pozostałe  są  obsługiwane  przez  system  operacyjny  (część  jednak  przeznaczona 

Pozostałe  są  obsługiwane  przez  system  operacyjny  (część  jednak  przeznaczona 

jest na potrzeby użytkownika).

jest na potrzeby użytkownika).

Za pomocą programu DEBUG można obejrzeć tablicę wektorów przerwań.

Za pomocą programu DEBUG można obejrzeć tablicę wektorów przerwań.

Adres piątego wektora 

Adres piątego wektora 

INT5H

INT5H

CS=F000, IP=FF54

CS=F000, IP=FF54

Adres piątego wektora 

Adres piątego wektora 

INT5H

INT5H

CS=F000, IP=FF54

CS=F000, IP=FF54

Zobaczmy przykładowo pierwsze  32 wektory (zapis zgodny z przechowywaniem 

Zobaczmy przykładowo pierwsze  32 wektory (zapis zgodny z przechowywaniem 

odwrotnym)

odwrotnym)

Adres czwartego wektora 

Adres czwartego wektora 

INT4H

INT4H

CS=0070, IP=0465

CS=0070, IP=0465

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

OPERACJE Z PRZERWANIEM PROGRAMU - TABLICA WEKTORÓW 

OPERACJE Z PRZERWANIEM PROGRAMU - TABLICA WEKTORÓW 

PRZERWAŃ

PRZERWAŃ

background image

 

Istnieje pewna reguła obliczania adresów wektora przerwań:

Istnieje pewna reguła obliczania adresów wektora przerwań:

adres_początku

adres_początku

= numer_przerwania x 4

= numer_przerwania x 4

adres_końca

adres_końca

= adres_początku + 3

= adres_początku + 3

Należy  pamiętać,  że  w  tablicy  wektorów  przerwań  wektor  zajmuje  4  bajty  i 

Należy  pamiętać,  że  w  tablicy  wektorów  przerwań  wektor  zajmuje  4  bajty  i 

wektory liczone są od zera

wektory liczone są od zera

2. Obliczyć adresy dla przerwania INT 21H

2. Obliczyć adresy dla przerwania INT 21H

początek: 21H x 4 = 84H

początek: 21H x 4 = 84H

koniec:     84H + 3 = 87H

koniec:     84H + 3 = 87H

czyli w pamięci operacyjnej obszar 0000:0084 do 0000:0087 

czyli w pamięci operacyjnej obszar 0000:0084 do 0000:0087 

przeznaczony jest na wektor przerwania 21H

przeznaczony jest na wektor przerwania 21H

Przykład

Przykład

1. Obliczyć adresy dla przerwania INT 4H

1. Obliczyć adresy dla przerwania INT 4H

początek: 4H x 4 = 10H

początek: 4H x 4 = 10H

koniec:     10H+3 = 13H

koniec:     10H+3 = 13H

czyli  w  pamięci  operacyjnej  obszar  0000:0010  do  0000:0013 

czyli  w  pamięci  operacyjnej  obszar  0000:0010  do  0000:0013 

przeznaczony jest na wektor przerwania 4H

przeznaczony jest na wektor przerwania 4H

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

OPERACJE Z PRZERWANIEM PROGRAMU - TABLICA WEKTORÓW 

OPERACJE Z PRZERWANIEM PROGRAMU - TABLICA WEKTORÓW 

PRZERWAŃ

PRZERWAŃ

background image

 

Operacje  wejścia/wyjścia  polegające  na  inicjowaniu  operacji  przez 
procesor  i  przekazaniu  sterowania  specjalizowanemu  układowi 
zwanemu  sterownikiem  DMA  (direct  memory  access)  
nazywamy 
operacją o bezpośrednim dostępie do pamięci.

Operacje  wejścia/wyjścia  polegające  na  inicjowaniu  operacji  przez 
procesor  i  przekazaniu  sterowania  specjalizowanemu  układowi 
zwanemu  sterownikiem  DMA  (direct  memory  access)  
nazywamy 
operacją o bezpośrednim dostępie do pamięci.

W  operacji  DMA  transmisja  informacji  przebiega  pomiędzy  układem  we/wy  a  wydzielonym 

W  operacji  DMA  transmisja  informacji  przebiega  pomiędzy  układem  we/wy  a  wydzielonym 

obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu żądania przejęcia kontroli nad 

obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu żądania przejęcia kontroli nad 

magistralami  (za  pomocą  sygnału  HOLD)  procesor  inicjuje  operację  i  przechodzi  w  stan 

magistralami  (za  pomocą  sygnału  HOLD)  procesor  inicjuje  operację  i  przechodzi  w  stan 

zawieszenia  (odseparowanie  się  od  magistral).  Po  zakończeniu  transmisji  sterownik  DMA 

zawieszenia  (odseparowanie  się  od  magistral).  Po  zakończeniu  transmisji  sterownik  DMA 

zwraca procesorowi kontrolę nad magistralami. 

zwraca procesorowi kontrolę nad magistralami. 

Szyna adresowa

Szyna adresowa

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

STEROWNI

STEROWNI

K DMA

K DMA

I/O

I/O

MEMR  

MEMR  

        

        

MEMW

MEMW

MEMR  MEMW

MEMR  MEMW

IOR    IOW

IOR    IOW

IOR   

IOR   

     

     

IOW

IOW

CPU

CPU

HOLD

HOLD

Inicjowanie 

Inicjowanie 

operacji

operacji

Określa:

Określa:

wielkość bloku do transmisji

wielkość bloku do transmisji

sposób transmisji (blokowa, 

sposób transmisji (blokowa, 

pojedynczymi słowami, na 

pojedynczymi słowami, na 

żądanie)

żądanie)

adres pierwszej komórki 

adres pierwszej komórki 

bufora pamięci

bufora pamięci

rodzaj operacji (zapis, odczyt) 

rodzaj operacji (zapis, odczyt) 

zawieszenie

zawieszenie

OPERACJE Z POŚREDNIM 

OPERACJE Z POŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR (DMA)

MIKROPROCESOR (DMA)

background image

 

DZIĘKUJĘ ZA UWAGĘ ! 

DZIĘKUJĘ ZA UWAGĘ ! 

background image

 

Sytuacjami wyjątkowymi w pracy procesora nazywamy zaprzestanie wykonania 

Sytuacjami wyjątkowymi w pracy procesora nazywamy zaprzestanie wykonania 

aktualnie wykonywanego programu po zakończeniu cyklu instrukcyjnego (lub w 

aktualnie wykonywanego programu po zakończeniu cyklu instrukcyjnego (lub w 

trakcie  cyklu  w  przypadku  niektórych  instrukcji  operujących  na  łańcuchach)  i 

trakcie  cyklu  w  przypadku  niektórych  instrukcji  operujących  na  łańcuchach)  i 

przekazanie  sterowania  do  podprogramu  obsługi  (tzw.  handlera)  tej  sytuacji 

przekazanie  sterowania  do  podprogramu  obsługi  (tzw.  handlera)  tej  sytuacji 

znajdującego  się  pod  adresem,  który  nie  wynika  z  aktualnie  wykonywanej 

znajdującego  się  pod  adresem,  który  nie  wynika  z  aktualnie  wykonywanej 

instrukcji.

instrukcji.

Sytuacje wyjątkowe dzielimy na dwie grupy:

Sytuacje wyjątkowe dzielimy na dwie grupy:

 

 

1. powstałe w wyniku działania programu wykonywanego przez procesor

1. powstałe w wyniku działania programu wykonywanego przez procesor

2. pochodzące z układów współpracujących z procesorem

2. pochodzące z układów współpracujących z procesorem

 

 

zdarzenia niezamierzone (tzw. wyjątki procesora)

zdarzenia niezamierzone (tzw. wyjątki procesora)

błąd adresowania 

błąd adresowania 

błąd instrukcji

błąd instrukcji

błąd argumentu

błąd argumentu

 

 

zdarzenia zamierzone

zdarzenia zamierzone

praca krokowa

praca krokowa

praca w trybie śledzenia

praca w trybie śledzenia

przerwania programowe

przerwania programowe

błędy wykryte w urządzeniach komputera

błędy wykryte w urządzeniach komputera

błąd magistrali 

błąd magistrali 

błąd transmisji

błąd transmisji

błąd zasilania

błąd zasilania

zdarzenia służące do synchronizacji pracy procesora z urządzeniami 

zdarzenia służące do synchronizacji pracy procesora z urządzeniami 

znacznie wolniejszymi, które informują procesor o gotowości do pracy (tzw. 

znacznie wolniejszymi, które informują procesor o gotowości do pracy (tzw. 

przerwania sprzętowe IRQ) 

przerwania sprzętowe IRQ) 

»

Architektura klasycznego komputera (wg von Neumana) opiera się na założeniach:

Architektura klasycznego komputera (wg von Neumana) opiera się na założeniach:

program wykonywany przez procesor wraz z danymi jest umieszczony w pamięci;

program wykonywany przez procesor wraz z danymi jest umieszczony w pamięci;

kolejność wykonywanych rozkazów zależy od ich umieszczenia w programie (w 

kolejność wykonywanych rozkazów zależy od ich umieszczenia w programie (w 

kolejnych komórkach pamięci), a zmiana tej zasady może być wykonana tylko:

kolejnych komórkach pamięci), a zmiana tej zasady może być wykonana tylko:

 

 

przez program (rozkaz skoku);

przez program (rozkaz skoku);

przez system operacyjny np. wykrycie błędu;

przez system operacyjny np. wykrycie błędu;

przez operatora np. 

przez operatora np. 

reset

reset

procesor odczytuje kolejne rozkazy z pamięci wysyłając odpowiednie adresy

procesor odczytuje kolejne rozkazy z pamięci wysyłając odpowiednie adresy

OBSŁUGA SYTUACJI WYJĄTKOWYCH 

OBSŁUGA SYTUACJI WYJĄTKOWYCH 

(PRZERWANIA)

(PRZERWANIA)


Document Outline