Professional Documents
Culture Documents
Arhitektura Računara: Ulaz/izlaz
Arhitektura Računara: Ulaz/izlaz
Ulaz/izlaz
Nikola Savanović,
nsavanovic@singidunum.ac.rs
Pojam ulaza/izlaza
CPU
AX BX
CX DX
ALU
IO uređaj
PC IR
Upravljacka jedinica
MAR MDR
Data bus SR
CR
Address bus
RD IO kontroler
WR
ACK
M/~IO
M/~IO
WR
RD
ABUS
DBUS
ACK
Ciklus upisa u registar I/O kontrolera
• Procesor postavi adresu na koju želi da upisuje u registar MAR a podatak koji želi da
upiše u registar MDR
• Procesor izbaci sadržaj registra MAR na adresnu magistralu, sadržaj registra MDR na
magistralu podataka i postavi signale WR i M/~IO (njih malo kasnije da bi sadržaj na
ABUS i DBUS bio stabilan)
• Kada IO kontroler detektuje da je postavljen signal WR i da je na M/~IO liniji 0, ispituje
da li je na ABUS adresa nekog od njegovih registara. Ako jeste to znači da procesor želi
da upiše vrednost u njegov registar
• I/O kontroler u svoje bafere prihvata informacije sa ABUS i DBUS linija i postavlja ACK
liniju kao znak procesoru da je preuzeo adresu i podatak i da procesor ne mora više da
ih drži na magistralama (adresnoj i magistrali podataka)
• Kada procesor vidi da je postavljen ACK shvata da je podatak upisan u prihvatne bafere
I/O kontrolera (upis u sam registar I/O kontroler može da obavi sam, CPU više ne mora
da drži informacije na magistralama jer se one nalaze u baferima memorije). Procesor
ukida signale na adresnoj i magistrali podataka i signale WR i M/~IO.
• Spušteni signali WR i M/~IO su znak I/O kontroleru da i on spusti ACK (svako spušta
ono što je postavio). Time je sve vraćeno u prvobitno stanje
Ciklus upisa u registar I/O kontrolera - signali
M/~IO
RD
WR
ABUS
DBUS
ACK
Komunikacija sa memorijom u prisustvu kontrolera
I/O uređaja
Procesor ima razdvojeni memorijski i I/O adresni prostor. Na adresi 10h u I/O
adresnom prostoru nalazi se kontrolni registar kontrolera periferije.
Napisati segment koda koji u taj registar upisuje konstantu 1.
Potom napisati segment koda upisuje vrednost 1h u memoriju na lokaciju 10h.
Komunikacija sa registrima I/O uređaja
MOV AX, 1h
OUT 10h, AX
MOV 10h, AX
Ulaz/izlaz, registri kontrolera periferije
Svakom I/O uređaju pridružuje se I/O kontroler koji predstavlja interfejs između
procesora i I/O uređaja. I/O kontroler može da prenese informaciju do ili od I/O
uređaja.
I/O kontroler ima kontrolni, statusni i registar podataka. Ovi registri imaju adrese
u I/O adresnom prostoru i procesor komunicira sa I/O kontrolerom upisivanjem u
kontrolne registre i očitavanjem vrednosti statusnih registara. Kada procesor želi
da prenese podatak I/O uređaju ili da prihvati podatak od njega to radi preko
registra podataka njegovog I/O kontrolera.
Registri kontrolera I/O uređaja
Kontrolni registar najčešće sadrži sledeće bite:
- bit Start koji procesor setuje kada hoće da startuje I/O kontroler i resetuje kada
hoće da ga isključi
- bit Smer kojim procesor saopštava I/O kontroleru da li želi ulaz (prenos
podataka od periferije ka procesoru) ili izlaz (prenos podataka od procesora ka
perifieriji)
- bit Int kojim procesor saopštava da li I/O kontroler treba da da signal za prekid
kada obavi operaciju ulaza ili izlaza
Statusni registar najčešće sadrži bit Ready koji I/O kontroler postavlja kada obavi
operaciju.
Registar podataka služi da prihvati podatak koji se prenosi u jednom ili u drugom
smeru.
Ulaz sa periferije
• Kada mu procesor zada režim ulaza (prenos podataka od periferijskog uređaja
ka procesoru) kontroler I/O uređaja u registar podataka dovlači vrednost sa I/O
uređaja u svoj registar podataka. Kada to uradi, kontroler postavlja Ready bit u
svom statusnom registru što je znak procesoru da može da pročita vrednost.
Kada procesor očita vrednost iz registra podataka, I/O kontroler resetuje Ready
bit u svom statusnom registru i kreće da prenosi sledeći podatak sa I/O uređaja
u svoj registar podataka.
• Alternativno, ako je bit Int njegovog kontrolnog registra postavljen, I/O kontroler
će svaki put kada setuje bit Ready poslati i zahtev za prekid procesoru. Ovo je
korisno jer procesor ne mora da stoji u mestu i ispituje da li je Ready = 1 da bi
mogao izvrši sledeći prenos već to može da uradi u prekidnoj rutini.
Izlaz na periferiju
• Alternativno ako je bit Int njegovog kontrolnog registra postavljen, I/O kontroler
će svaki put kada setuje bit Ready poslati zahtev za prekid procesoru. Ovo je
korisno jer procesor ne mora da stoji u mestu i ispituje da li je Ready = 1 da bi
mogao izvrši sledeći prenos već to može da uradi u prekidnoj rutini.
Načini komunikacije
• DMA kontroler je moguće inicijalizovati da radi u burst ili u cycle stealing režimu
• Burst režim rada podrazumeva da kada se DMA kontroler pokrene i prvi put
dobije pravo pristupa magistrali, ostane u posedu prava korišćenja magistrale
sve dok ne obavi ceo prenos. Za to vreme procesor ne može da koristi
magistralu (ne može da čita instrukcije i podatke iz memorije). Zato se ovaj
režim koristi samo kada je kritično brzo preneti neke podatke sa periferije da se
ne bi gubilo vreme na arbitraciju pristupa magistrali za svaki pojedinačni prenos
• U cycle stealing režimu DMA kontroler traži dozvolu za korišćenje magistrale
svaki put kada hoće da prenese jednu reč sa periferije u memoriju. Između tih
prenosa procesor normalno pristupa magistrali. Efektivno DMA kontroler i
procesor naizmenično kontrolišu magistralu
Registri DMA kontrolera
Kontrolni registar najčešće sadrži sledeće bitove:
- bit Start koji procesor setuje kada hoće da startuje I/O kontroler i resetuje kada
hoće da ga isključi
- bit Smer kojim procesor saopštava I/O kontroleru da li želi ulaz (prenos
podataka od periferije ka procesoru) ili izlaz (prenos podataka od procesora ka
perifieriji)
- Bit Mode koji određuje da li se radi u burst ili u cycle stealing režimu
- Int bit se u praksi uvek postavlja na 1 da bi DMA kontroler generisao prekid
kada obavi prenos koji mu je zadat (ne kada prenese jednu reč, već kada obavi
ceo prenos)
Registar podataka služi da prihvati podatak koji se prenosi u jednom ili u
drugom smeru (procesor mu ne pristupa direktno), adresni registar sadrži
adresu u memoriji sa koje se ili na koju vrši prenos, a brojački registar broj reči
koje treba preneti.
Kada se radi prenos pomoću DMA kontrolera, osim DMA kontrolera potrebno je
inicijalizovati i kontroler periferije za prenos u željenom smeru