sarrera-irteera azpisistema...c p u int p periferikoaren kodea inta int 1 int 2 int n inta n inta 2...
Post on 31-Jan-2021
10 Views
Preview:
TRANSCRIPT
-
Sarrera-Irteera azpisistema (KAI) 1
SARRERA-IRTEERA
AZPISISTEMA
Konputagailuen Arkitektura I
4. gaia
-
Sarrera-Irteera azpisistema (KAI) 2
S/I interfasearen deskribapena
• Helburua
- Nola komunikatzen den CPU kanpoaldearekiko
- Nola kontrolatu komunikazio hori
• Periferikoak
- Datuak aurkezteko (pantaila, inprimagailua,...)
- Datuak eskuratzeko (teklatua, sentsoreak,...)
- Datuak gordetzeko (diskoak, zintak,...)
- Bestelakoak (motoreak, balbulak,...)
• Konexioa (bus bakarra, bi bus)
-
Sarrera-Irteera azpisistema (KAI) 3
S/I interfasearen eskema
CPU MEM Kp
Periferikoa
datuak
@
kontrola
-
Sarrera-Irteera azpisistema (KAI) 4
Kontroladorea
• Justifikazioaperiferiko mota asko, busetara konexio fisiko desberdinekineta elektronikoki era desberdinetan kontrolatuak
• Kontroladorea
Busak eta periferikoaren arteko tartekari elektronikoa da. ML-ren mailatik erregistro batzuk bezala ikusten da. Kontroladoreak lana kentzen dio CPU-ri, honek ez baituzuzenki kontrolatu behar periferikoa
CPU eta periferikoaren arteko komunikazioakontroladorearen erregistroen bitartez egiten da.
-
Sarrera-Irteera azpisistema (KAI) 5
S/I-ko kontroladoreen sailkapena
• Ez-multiplexatua
– Periferiko bat kontrolatzen du soilik: periferikoazkarrak
• Multiplexatua
– Periferiko batzuk kontrolatzen ditu
– Karakterez multiplexatua: periferiko motelak
– Blokez multiplexatua: erdi-mailako abiadura duten
periferikoak
-
Sarrera-Irteera azpisistema (KAI) 6
S/I-ko kontroladoreen sailkapena
CPU
busak
MEM Kp
P
Ez-Multiplexatua
CPU
busak
MEM K
P2
Multiplexatua
P3P1
-
Sarrera-Irteera azpisistema (KAI) 7
S/I-ko kontroladorearen
funtzioak
• CPU-rekin elkarrizketa
– S/I-ko eragiketak betetzeko eskaerak jasotzen ditu
– Periferikoen egoerari buruz informatzen du
• Periferikoaren kontrola
– CPU-k eskatutakoa bete dezan
• Periferikoa eta CPU-ren arteko transferentzia
errazten du
-
Sarrera-Irteera azpisistema (KAI) 8
S/I-ko kontroladorearen ikuspegi
funtzionala
CPU
datuak
@
kontrola
M. L.-tik ikustezina
Periferikoarekin
interfasea
kontroladorea
Kontrola
dore
arek
in
inte
rfas
ea
Kan
poal
dea
rekin
inte
rfas
ea
periferikoa
KONTROLA
DATUAK
EGOERA
MEMORIA
-
Sarrera-Irteera azpisistema (KAI) 9
S/I-ko kontroladorearen erregistroak
• Egoera-erregistroa
– Egoerari buruzko informazioa: tekla bat sakatu den,
diskoan idazketa bukatu den etab.
– CPU-k irakurtzen du informazio hau
• Kontrol-erregistroa– Kontrol-informazioa: zein eragiketa bete behar den
(r/w), periferikoaren lana egiteko era etab.
– CPU-k idazten du informazio hau
• Datu-erregistroa– Periferikoa eta CPU-ren artean trukatzen den
informazioa
-
Sarrera-Irteera azpisistema (KAI) 10
S/I-ko interfasearen eskema
�Nola atzitzen dira kontroladorearen erregistroak?
• S/I memorian mapeatuta
• S/I memorian ez mapeatuta
CPU MEM Kp
Periferikoa
datuak
@
kontrola
-
Sarrera-Irteera azpisistema (KAI) 11
Memoria-mapa
S/I memorian mapeatuta
S/I
R A M
R O M
S/I-ko
erregistroak
0000h
3FFFh4000h
BFFFhC000h
FFFFh
32 K
16 K
64 K
Memoria-mapa
-
Sarrera-Irteera azpisistema (KAI) 12
S/I memorian mapeatuta: adibidea
16
7
RD/WR
DATUAK
@
EgoeraKontrolaDatuak
OEOE OERD/WRRAM
6
CS
CS = A6
RD/WR@
RD/WR
OE = A6 A1 A0OE = A6 A1 A0 OE = A6 A1 A0
RD/WR
16 16 1616
6 6 66 5..0 1 0 0 01 1
RAM � 0000000 Datu-erreg. � 1000001Kontrol-erreg. � 1000011Egoera-erreg. � 1000010
0xxxxxx 1000001 1000011 1000010
-
Sarrera-Irteera azpisistema (KAI) 13
S/I memorian mapeatuta
• Abantailak
– Erregistroen atzipena: gainontzeko memoriarako
erabiltzen diren agindu eta helbideratze-modu berdinak
– CPU-k ez du desberdindu behar memoriako eta S/I-ko
erregistroen atzipenen artean
• Desabantailak
– Memoriako helbideratze-espazioa txikiagoa da
– Zaila da kontrolatzen S/I-ko erregistroak ez atzitzea
erabiltzailearen programetatik
� Modu berezia (SE) S/I-ko atzipenetarako
-
Sarrera-Irteera azpisistema (KAI) 14
Memoria-mapa ↔ S/I-ko mapa
R A M
R O M
IO/M=0
MEMORIA-MAPA S/I-ko MAPA
Erregistroak
S/I
0000h
7FFFh8000h
FFFFh
00h
FFh
RAM � IO/M * A15 S/I Erreg. � IO/M
ROM � IO/M * A15
-
Sarrera-Irteera azpisistema (KAI) 15
S/I bereiztuta edo memorian ez mapeatuta:
adibidea
16
7
RD/WR
DATUAK
@
EgoeraKontrolaDatuak
OEOE OERD/WRRAM
7
CS RD/WR@
OE = IO/M A1 A0OE = IO/M A1 A0 OE = IO/M A1 A0
[0000001] [0000011] [0000010]
16 16 1616
IO/M
CS = IO/M
[xxxxxxx]
1 0 0 01 1
RAM � 0000000 Datu-err. � 0000001Kontrol-err. � 0000011
in/out aginduak Egoera-err. � 0000010
RD/WR RD/WR
-
Sarrera-Irteera azpisistema (KAI) 16
S/I memorian ez mapeatuta
• Abantailak
– Ez da memoria-espaziorik galtzen
– S/I-ko erregistroen atzipena kontrolatzea errazagoa da
� in eta out modu berezian soilik (SE)
• Desabantailak
– Agindu berriak: in eta out
– Kontrol-seinale berria busean
[Ariketa_Mapak.pdf]
-
Sarrera-Irteera azpisistema (KAI) 17
S/I-ko eragiketen sinkronizazioa
• Nola sinkronizatzen da CPU S/I-ko gailuekin? Nola
detektatzen du gailua prest dagoela eragiketa bat
hasteko?
• 2 aukera
– Inkesta bidezko sinkronizazioa: CPU-k uneoro aztertzen
du kontroladorearen egoera-erregistroa
– Etenen bidezko sinkronizazioa: kontroladoreak adierazten
dio CPU-ri prest dagoela eten baten bitartez
-
Sarrera-Irteera azpisistema (KAI) 18
Inkesta bidezko S/I
• Egoera bitarteko inkesta � uneoro aztertzen da
kontroladorearen egoera-erregistroa
• 2 aukera
– Inkesta jarraia (etengabekoa):
while (egoera_erregistroa_irakurri= =EZ_PREST) NOP;
S/I_eragiketak_bete;
– Inkesta periodikoa (aldizkakoa):
while (egoera_erregistroa_irakurri= =EZ_PREST)
{ beste eragiketak; }
S/I_eragiketak_bete;
-
Sarrera-Irteera azpisistema (KAI) 19
Etenen bidezko S/I
• Etena: prozesadorearen aditasuna behar duen ez-ohiko
gertaera
• Gertaera asinkronoak dira: kontroladoreak CPU eteten
du transferentzia hasteko prest dagoenean
• Abantaila:
– CPU-k ez du denborarik galtzen inkesta egiten eta beste lanak
egin ditzake
• Desabantaila:
– CPU konplikatuagoa da (algoritmoa konplexuagoa)
-
Sarrera-Irteera azpisistema (KAI) 20
Etenen bidezko S/I: faseak
• Eten-eskaeraren detekzioa
• Etendako programaren egoera gorde
• Etenari dagokion zerbitzu-errutina identifikatu
(gailuaren araberakoa)
• Zerbitzu-errutina exekutatu
� Errutina asinkronoa: ez du programa nagusiak deitzen
• Etendako programaren egoera berreskuratu
(exekuzioa)
-
Sarrera-Irteera azpisistema (KAI) 21
Aplikazioa
Zerbitzu-
errutina
MEMORIA
CPU
PC
Kp
Per.
INT
Busak (@, DATU, KONTROL)
Aplikazioa
.
.
.
.
.
.
.
.
.
INT
Zerbitzu-errutina
Etenetik itzuli
Etenen bidezko S/I
-
Sarrera-Irteera azpisistema (KAI) 22
Etenaren detekzioa
• CPU-k lerro bat edo gehiago ditu gailuek eten-eskaera
bidali ahal izateko
� INT: kontrol-unitatearen sarrera
• CPU-k eten-eskaera seinalearen balioa aztertzen du
– Aginduaren exekuzio-faseren batean
• Etenaren adierazlea (Interrupt Flag, IF):
– IF = 0 � etenak galeraziak/maskaratuak (CLI agindua 80x86)
– IF = 1 � etenak baimenduak (STI agindua 80x86)
• Maskaratu ezin diren etenak (Non Maskable Interrupt, NMI)
-
Sarrera-Irteera azpisistema (KAI) 23
Etenen detekzioa
INT
CPU
1K
2K
nK
IFPSW
KU.INT *
Int1
Int2
Int n
• Eten-adierazlea (IF):
– CPU-k eten bat tratatzerakoan: IF = 0
– Tratamendua bukatzerakoan: IF = 1
� maila bakarreko etenak
-
Sarrera-Irteera azpisistema (KAI) 24
Etenen detekzioa eta maskaratzea
INT
CPU
1K
2K
nK
IF
PSW
U.C.
INT *
INT
INT
1
2
n
MáscaraMaskara
KU
-
Sarrera-Irteera azpisistema (KAI) 25
Programaren egoera gorde
• CPU-k programaren exekuzioa eteten du etena
tratatzerakoan eta etenaren tratamendua bete eta gero
berreskuratzen du
• Etendako programari buruzko informazioa gorde behar da:
– Itzul-helbidea � exekutatu behar den hurrengo aginduaren PC-a
– Egoera-hitza, PSW � adierazleak etab.
• Zerbitzu-errutinak erabiltzen dituen erregistroen edukia
gordetzen du
• Non gordeko da informazio hau? ���� PILA
-
Sarrera-Irteera azpisistema (KAI) 26
Etenaren identifikazioa
• arazoak
– Nola jakin zeinek eten duen?
– Gailu batek baino gehiagok eteten badu INT seinale bera
erabiliz, zein tratatu?
• aukerak
– Software bidezko identifikazioa (adibidez, MC68000)
– Hardware bidezko identifikazioa
-
Sarrera-Irteera azpisistema (KAI) 27
Software bidezko identifikazioa• INT seinalea detektatzerakoan, IF=1 bada, CPU-k
zerbitzu-errutina orokorra exekutatzen du. Honek
inkesta bitartez detektatuko du zein gailuk eten duen
for (i=0;i
-
Sarrera-Irteera azpisistema (KAI) 28
Hardware bidezko identifikazioa
• Gailua bera da identifikatzen dena
• Kontroladoreak CPU-ri bidaltzen dio (hiru aukera):
– zerbitzu-errutinaren hasierako helbidea, edo
– agindu baten kodea (jauzi-agindua) CPU-k exekuta dezan.
Horren bitartez zerbitzu-errutinaren exekuzioa abiaraziko da, edo
– identifikadore bat, zeinen bitartez CPU-k taula bat atzituko duen,
bertatik lortuz exekutatuko den zerbitzu-errutinaren helbidea
(eten-bektorea, i80x86)
• CPU-k eten-eskaera onartzen duela adierazteko INTA
seinalea aktibatuko dio periferikoaren kontroladoreari
-
Sarrera-Irteera azpisistema (KAI) 29
INT
Kontroladore
1
INT1
Kontroladore
2
INT2
Kontroladore
n
INTn
Busa (@, Dat, Kontrol)
CPU
INTA
Hardware bidezko identifikazioa
-
Sarrera-Irteera azpisistema (KAI) 30
Aldibereko etenak
• Periferiko batek baino gehiagok eteten badu INT lerro
berdinetik, nori kasu egin?
• Aukerak
1. Lehentasunezko kodegailua:
+ kodegailuak sortuko ditu, bai INT seinalea, baita lehentasun
altuena duen periferikoaren kodea ere
+ deskodegailu batek aurreko kodearen bitartez INTA
seinalea bidaliko dio dagokion kontroladoreari
-
Sarrera-Irteera azpisistema (KAI) 31
Aldibereko etenen identifikazioa:
Lehentasunezko kodegailua
Busa (@, Dat, Kontrol)
Lehentasu-nezko
kodegailua
Kontroladore
1
Kontroladore
2
Kontroladore
n
deskodegailua
C P U
INT
p
Periferikoarenkodea
INTA
INT1
INT2
INTn
INTA n
INTA2
INTA1
-
Sarrera-Irteera azpisistema (KAI) 32
Aldibereko etenak
• aukerak
2. Daisy-chain edo margarita-katea:
+ CPU-k INTA seinalea aktibatzen du
+ kontroladoreak INTA seinalea detektatzerakoan
+ berak ez badu eten-eskaera bidali, INTA seinalea
aktibatzen du hurrengo kontroladorearentzat (horrela
jarraitzen da eskaera egin duen kontroladorera iritsi
arte)
+ etena bidali badu, ez dio pasako INTA seinalea
hurrengo kontroladoreari eta CPU-ri bidaliko dio etena
tratatzeko beharrezkoa den informazioa
+ CPU-tik gertuen dauden kontroladoreek lehentasun altuena
dute
-
Sarrera-Irteera azpisistema (KAI) 33
Kontroladore
n
Kontroladore
2
Kontroladore
1
Bus (@, Dat, kontrol)
CPU
INTA
INT
INTAinINTAin INTAoutINTAout
Aldibereko etenen identifikazioa:
Daisy-Chain edo margarita-katea
-
Sarrera-Irteera azpisistema (KAI) 34
Maila anitzeko etenak
• CPU eten bati dagokion zerbitzu-errutina exekutatzen ari
denean beste eten-eskaera bat irits daiteke
+ exekutatzen ari den zerbitzu-errutina uzten da eten berriari
kasu egiteko
+ IF ez da automatikoki desaktibatzen eten bat tratatzerakoan
• Lehentasuna:
+ n lehentasuna duen periferiko baten etena tratatuko da, etenak
baimenduta baldin badaude eta une horretan ez bada ari
tratatzen beste eten bat lehentasun altuagokoa
-
Sarrera-Irteera azpisistema (KAI) 35
Maila anitzeko etenak
Aplikazioa
.
.
.
.
.
.
.
.
.
INTx
X zerbitzu-errutina
x etenetik itzuli
INTy
y zerbitzu-errutina
y etenetik itzuli
-
Sarrera-Irteera azpisistema (KAI) 36
Maila anitzeko etenak:
Lehentasunezko kodegailua
Leh
en
t asu
-n
ezko
kod
eg
ai lu
a
Kontroladore
1
Kontroladore
2
Kontroladore
n
desk
C P U
INT*
pPeriferikoaren
kodea
INTA
BUSA (@, Datu, Kontrol)
Lehentasunmaila
IF
BKonp.A A>B
PSW
-
Sarrera-Irteera azpisistema (KAI) 37
Maila anitzeko etenak:
Daisy-Chain edo margarita-katea
Kontroladore
n
Kontroladore
2
Kontroladore
1
Busa (@, Datu, Kontrol)
CPU
INTA
INT
INTAin
INTAout
S
INTA in
+ Ki-k S seinalea desaktibatzen du (S=0) Ki baino lehentasun txikiagoa
duten periferikoen maila anitzeko etenak gerta ez daitezen
+ Ki-k S aktibatzen du (S=1) bere etenaren tratamendua bukatzen
denean
SS INTINT
-
Sarrera-Irteera azpisistema (KAI) 38
Eten-kontroladorea
• CPU eta S/I-ko periferikoen kontroladoreen arteko
tartekaria da
• Azaldutako guztia kudeatzen duen zirkuitua:
+ CPU eta periferikoaren kontroladorearen arteko
komunikazioa kudeatzen du
+ lehentasunen arabera zein periferiko zerbitzatu behar den
erabakitzen du
+ maila anitzeko etenak kudeatzen ditu, ...
• Adibidez, i80x86-ko eten-kontroladorea: i8259
[Laborategiko atala]
-
Sarrera-Irteera azpisistema (KAI) 39
DMA bidezko S/I: Direct Memory Access / Memoriako zuzeneko atzipena
• Arrazoia:
+ gailu batetatik (adibidez, disketea) datu-kopuru handien
transferentzia memoriako helbide kontsekutiboetara
+ DMA gabe, CPU etengabe etengo litzateke (adibidez,
diskotik transferitu behar den karaktere bakoitzeko)
• Konponbidea: DMA kontroladorea
+ CPU-k maiz egin beharko lukeen lan sinple eta errepikakor
bat ez egiteko erabiltzen den zirkuitu berezia
+ Prozesadorearen erregistro orokorrak erabili gabe zuzenean
memoria atzitu dezakeen zirkuitua
-
Sarrera-Irteera azpisistema (KAI) 40
DMA bidezko
sarrera/irteera
CPU M
Kp
Perif.
A
@
DAT
KONT
CPU M
AKp
Perif.
KDMA
@
DATKONT
DMA gabe
DMA erabiliz
-
Sarrera-Irteera azpisistema (KAI) 41
DMA bidezko
sarrera/irteeraMemoria
CPU KDMA
K1 K2
P1 P2
K3
P3
Portu anitzeko memoria
CPU M
K1 K2 K3
P1 P2 P3
KDMA
Portu bakarreko memoria
CPU eta KDMA
arteko sinkonizazioa
busaren erabileran
-
Sarrera-Irteera azpisistema (KAI) 42
DMA kontroladorea
• Helbide-erregistroa: transferitu behar den informazioaren irakurketa/idazketa helbidea
• Datu-kopurua duen erregistroa: transferitzeko geratzen den datu-kopurua gordetzen duen kontagailua
• Kontrol-erregistroa: kontrol-informazioa (irakurketa/idazketa, sinkronizazio modua bukatzean, etab.)
• Egoera-erregistroa: beste edozein kontroladoretan egoera-erregistro batek duen funtzioa
-
Sarrera-Irteera azpisistema (KAI) 43
DMAR Direct Memory Access Request Memoriako zuzeneko atzipenareneskaera
DMAG Direct Memory AccessGrant Memoriako zuzeneko atzipenaonartua
HELBIDEA
DATU-KOP
KONTROLA
EGOERA
BR DMAR
DMAG
BG
IRQ
KDMA
BR Bus Request BUS-a erabiltzeko eskaera
BG Bus Grant BUS eskaera onartzen da
IRQ Interruption ReQuest Eten-eskaera
DMA
kontroladorea
Busaren
sinkronizazioa
Periferikoaren
sinkronizazioa
Eten
kontroladorera
doan seinalea
-
Sarrera-Irteera azpisistema (KAI) 44
DMA bidezko sarrera/irteera:
funtzionamendua
• Aplikazioa (CPU): periferikoa eta bere DMA kontroladorea programatzen ditu (@, datu-kopurua,
irakurketa/idazketa)
• Periferikoa: datu bat bidaltzeko edo jasotzeko prest dagoen bakoitzean KDMA-ri adierazten dio
• KDMA: datuaren transferentzia egin eta CPU-rekin busaren erabilera sinkronizatzen du
• Datuen transferentzia bukatzean, KDMA CPU-rekin
sinkronizatzen da: inkesta edo etena
���� S/I eragiketa bukatzean bakarrik eteten da CPU
-
Sarrera-Irteera azpisistema (KAI) 45
DMA bidezko sarrera/irteera
M CPU KDMA
BR
BG
IRQ
INTAINTR
K_ETEN.
DMAR
Perif.
KPER
DMAG
DAT@
KONT
��
� �
�
-
Sarrera-Irteera azpisistema (KAI) 46
Transferentzia hasi (CPU)
– KDMA programatu
• Helbidea
• Datu-kopurua
• Eragiketaren norantza: Periferikoa � Memoria Memoria � Periferikoa
• Eten edo ez, bukatzean
• Beste seinale batzuk (inkrementatu/dekrementatu)
– Kper programatu (periferikoaren kontroladorea)
DMA bidezko sarrera/irteera
-
Sarrera-Irteera azpisistema (KAI) 47
Transferentzia (KDMA)
– Kper �DMAR (DMA eskaera) �
– KDMA �BR (Busak erabiltzeko eskaera) �
– CPU �BG (Busen erabilera onartua) �
– KDMA-k datu edo datuen transferentzia egiten du:
• Helbidea helbide-busean
• (R/W) seinalea aktibatu
• DMAG � aktibatu � Kper-ek � datu-busa atzitu
– Kper-ek DMAR desaktibatu
– DMA-k BR desaktibatu
DMA bidezko sarrera/irteera
-
Sarrera-Irteera azpisistema (KAI) 48
Ziklo-lapurketa bidezko transferentzia
+ KDMA-k noizbehinka CPU-ri ziklo bat lapurtzen dio
memoria atzitzeko
+ CPU-ren eraginkortasuna jaisten da periferikoaren
abiadura handia bada
Blokekako transferentzia
+ KDMA-k BG seinalea jasotzen duenean, ez du busaren
kontrola uzten bloke osoaren transferentzia osatzen duen
arte
+ gailu azkarrekin erabiltzeko egokia
DMA bidezko sarrera/irteera
-
Sarrera-Irteera azpisistema (KAI) 49
Transferentzia bukatu
– KDMA �CPU sinkronizatu S/I eragiketaren bukaera
adierazteko
– Inkesta jarraiaren bidez: CPU-k KDMA-ren egoera-
erregistroa aztertzen du� ez da interesgarria!!!!
– Etenen bidez: KDMA-k CPU eteten du
KDMA-ren egoera-erregistroa irakurriBaldin (ez da ondo atera)
KDMA berriro programatuKper berriro programatu
Bestela ............................
DMA bidezko sarrera/irteera
top related