Download as pdf or txt
Download as pdf or txt
You are on page 1of 26

2/6/2020

Leksion 12: Nën-Sistemi


Input/Output

Pergatiti: Dr. Ina Papadhopulli

Pajisjet Input/Output
Kompjuteri

Proçesori Pajisjet

Control Input
Memorja

Datapath Output

1
2/6/2020

Pajisjet Input/Output

Pajisjet Input/Output (I/O)


• Sistemi i pajisjeve I/O duhet të jetë:
– I sigurtë
– Kosto e ulët
– I zgjerueshëm
– Të lejojë diversitet pajisjesh
• Performanca fokusohet tek:
– Vonesa e aksesimit
– Throughput-i

2
2/6/2020

Pajisjet Input/Output (I/O)


• Performanca e pajisjeve I/O varet nga:
– Karakteristikat e pajisjes
– Lidhja midis pajisjes dhe pjesës tjetër të
sistemit
– Hierarkia e memorjes
– Sistemi Operativ

Pajisjet I/O : Tipet & Karakteristikat

• Sjellja
– Input: read vetëm një herë
– Output: write only
– Storage: mund të rishkruhet dhe të rilexohet

• Partneri i komunikimit
– Njeriu ose makina

• Data Rate
– Sasia e të dhënave që transferohet midis pajisjes I/O dhe
memorjes/proçesorit

3
2/6/2020

Diversiteti i pajisjeve I/O

Proçesori, memorja, I/O


Bus:
Lidhja midis
interrupts
Processor Proçesorit, Memorjes
dhe pajisjeve I/O

Cache

Memory - I/O Bus

Main I/O I/O I/O


Memory Controller Controller Controller

Disk Disk Graphics Network


8

4
2/6/2020

Bus-i
• Në sistemin kompjuterik pajisjet duhet të kenë
ndërfaqe që të komunikojnë me njëra-tjetrën.
• Komunikimi bëhet duke përdorur bus-in.
• Bus: grup linjash paralele që shërbejnë për
transferimin e të dhënave dhe për sinkronizimin e
transferimeve
• Avantazhet:
– Kosto e ulët
– Thjeshtësi në shtimin e pajisjeve të tjera
• Disavantazhet:
– Bandwidth-i i bus-it limiton throughput-in 9

Tipet e bus-ve
• Klasifikohen në dy grupe:
– Processor-memory
• Me shpejtësi të lartë
• Të shkurtër
– I/O
• Të gjatë
• Kanë të lidhura pajisje të ndryshme
• Lidhen me bus-in proçesor-memorje
nëpërmjet një ure (bridge)

10

10

5
2/6/2020

Sinkronizimi i bus-ve
• Janë dy llojesh:
– Sinkron
• Kanë një clock
– Asinkron
• Nuk kanë clock

11

11

Shembuj bus-esh

12

12

6
2/6/2020

Organizimi i sistemit I/O tek serveri Intel

13

13

Menaxhimi i I/O

14

14

7
2/6/2020

Funksionet e Sistemit Operativ (SO)


• Garanton që një program të aksesojë vetëm
ato pjesë të pajisjes I/O që ky program ka të
drejtë.
• Ka proçedura që mundësojnë abstraksionin në
aksesimin e pajisjeve I/O
• Trajton interrupt-et që gjenerohen nga pajisjet
I/O
• Skedulon aksesimet tek pajisjet I/O në mënyrë
që të rritet throughput-i
15

15

Proçesori, memorja, I/O


I/O Controller:
interrupts Kontrollojnë një ose
Processor disa pajisje I/O

Cache

Memory - I/O Bus

Main I/O I/O I/O


Memory Controller Controller Controller

Disk Disk Graphics Network


16

16

8
2/6/2020

Modulet (Kontrollerat) I/O


• Modulet I/O ndërveprojnë me bus-in e
sistemit dhe kontrollojnë disa pajisje
periferike.
• Përmbajnë komponentë për të kryer
komunikimin midis pajisjes periferike dhe
bus-it
• Modulet I/O mund te jene:
– Komplekse (quhen edhe proçesorë I/O)
– Primitive (quhen edhe kontrollera I/O)

17

17

Përse shërbejnë modulet I/O


• Nuk mund t’i kontrollojë proçesori gjithë
pajisjet e ndryshme I/O
• Transferimi i të dhënave të pajisjes I/O mund
të jetë më i ngadaltë, prandaj nuk mund të
përdoret bus-i i sistemit.
• Transferimi i të dhënave i pajisjes I/O mund të
jetë më i shpejtë, prandaj nuk mund të
përdoret bus-i i sistemit.
• Formati i të dhënave i pajisjeve I/O mund të
jetë i ndryshëm nga ai i kompjuterit. 18

18

9
2/6/2020

Modeli i përgjithshëm i Modulit I/O

19

19

Pajisjet I/O
• Lidhen me kompjuterin me një lidhje tek moduli
I/O
• Kjo lidhje përdoret për të shkëmbyer kontrollin,
gjëndjen dhe të dhënat.

20

20

10
2/6/2020

Bllok –Skema e pajisjeve I/O

21

21

Hapat per kryerjen e I/O


• CPU kontrollon gjendjen e modulit I/O
• Moduli I/O kthen gjendjen
• Nese eshte gati, CPU kerkon transferim te
dhenash
• Moduli I/O merr te dhenat nga pajisja I/O
• Moduli I/O tranferon te dhenat tek CPU

22

22

11
2/6/2020

Funksionet e Modulit I/O


• Control & Timing
• Komunikim me CPU-në
• Komunikim me pajisjen I/O
• Data Buffering
• Detektim të gabimeve

23

23

Komunikimi i modulit I/O me CPU


• Dekodimi i komandave që vijnë nga CPU
– sinjale në bus-in e kontrollit
• Të dhënat
– shkëmbehen të dhëna midis modulit I/O dhe CPU-
së në bus-in e të dhënave
• Raportimi i statusit
– sinjalet BUSY dhe READY
• Njohja e adresës
– çdo pajisje I/O ka një adresë dhe moduli I/O duhet
të njohë adresat e pajisjeve që kontrollon
24

24

12
2/6/2020

Diagrama e Modulit I/O

25

25

Komandat e proçesorit tek moduli I/O


• Tipet e komandave:
– Kontrolli
• aktivizon pajisjen dhe i thotë çfarë të bëjë
– Testimi
• përdoren për testimin e modulit I/O dhe pajisjes
– Lexim
• bën që moduli I/O te marrë një të dhënë nga pajisja I/O dhe ta
vendosë në buffer
– Shkrim
• bën që moduli I/O të marrë një të dhënë nga bus-i i të dhënave
dhe t’a dërgojë tek pajisja I/O
26

26

13
2/6/2020

Si do ti japë proçesori komandat


tek pajisjet I/O?
• Proçesori duhet të adresojë pajisjen.
• Ka dy mënyra adresimi:
– Memory-mapped
• Pjesë të hapësirës së adresave i jepen pajisjeve I/O
• Mjafton vetëm një linjë për shkrim dhe një linjë për
lexim në bus
– Isolated I/O
• E njëjta hapësirë adresash përdoret edhe për memorjen
edhe për I/O
• Duhet një linjë komande që të përcaktojë se kujt i përket
adresa (memorjes apo I/O)
27

27

I/O Memory-Mapped

28

28

14
2/6/2020

Teknikat për Input/Output


• Programmed
• Interrupt driven
• Direct Memory Access (DMA)

29

29

I/O i programuar
• Dërgohet komanda nga
proçesori tek moduli I/O
• Moduli kryen veprimin e
kërkuar dhe vendos bitet tek
regjistri i gjëndjes.
• Proçesori kontrollon
vazhdimisht për të parë nëse
veprimi ka përfunduar.
– CPU qëndron në pritje
• Shembulli në figurë: Lexim nga
pajisja I/O tek memorja 30

30

15
2/6/2020

I/O i kontrolluar nga Interrupt-et


• Proçesori dërgon komandën tek moduli I/O dhe
vazhdon me punë të tjera
• Kur moduli e ka kryer detyrën gjeneron një
“interrupt”, e dërgon tek linjat e kontrollit dhe
kështu lajmërohet proçesori që puna nga I/O u krye.
• Pas çdo instruksioni, proçesori kontrollon nëse ka
patur interrupt-e
• Nëse po, proçesori ruan gjëndjen (PC dhe regjistra)
dhe proçeson interrupt-in (thërret routina të SO)
• Më pas proçesori rivendos kontekstin e programit ku
po punonte dhe vazhdon ekzekutimin. 31

31

I/O i kontrolluar
nga Interrupt-et

• Shembulli në figurë:
Lexim nga pajisja I/O
tek memorja

32

32

16
2/6/2020

Proçesimi i
interrupt-ve

33

33

Proçesimi i interrupt-ve
• Bëhet nga sistemi operativ

34

34

17
2/6/2020

Transferimi i të dhënave: Interrupt Driven


add
sub User
CPU (1) I/O and Program
interrupt or
nop
(2) save PC

Memorja (3) interrupt


Mod.I/O service addr
read
store Interrupt
...: Service
Pajisja (4) Routine
rti
(SO)
• Avantazhi: memory
– Programi në nivel user ndërpritet vetëm gjatë trajtimit të interrupt-it
• Disavantazhi, nevojitet hardware shtesë për:
– Gjenerimin e interruptit (I/O device)
– Detektimin e interruptit (processor)
– Ruajtjen e gjendjes për të vazhduar punën pas interruptit (processor)
35

35

Ndryshimet
në memorje
dhe regjistra
për një
interrupt

36

36

18
2/6/2020

Probleme projektimi
• Si do të identifikohet moduli që ka
gjeneruar interrupt-in?
• Si do të veprohet në rastin e “multiple
interrupts”?
– P.sh. Një routine që po trajton një interrupt
ndërpritet nga një interrupt tjetër

37

37

Identifikimi i modulit që gjeneroi


interrupt-in (1)
• Linja të veçanta për secilin interrupt
– Linja të veçanta të dedikuara në bus
– Limiton numrin e pajisjeve I/O
• Software poll
– Kur detektohet një interrupt CPU ekzekuton një
routine që pyet secilin prej moduleve I/O nëse
ka gjeneruar interrupt
– E ngadaltë
38

38

19
2/6/2020

Identifikimi i modulit që gjeneroi


interrupt-in (2)
• Daisy Chain ose Hardware poll
– Dërgohet një “Interrupt Acknowledge”
– Moduli përgjegjës vendos një vektor në bus
– CPU përdor vektorin për të identifikuar routine
që do trajtojë interrupt-in
• Bus Master
– Moduli duhet të kërkojë bus-in para se të
gjenerojë interrupt-in
39

39

Multiple Interrupts
• Po nese kemi disa interrupt-e ne te njejten
kohe?
– Cdo interrupt ka një prioritet.
– Katër teknikat e identifikimit të modulit
veprojnë në bazë të prioriteteve dhe kështu
zgjidhet inetrrupt-i që do të trajtohet.

40

40

20
2/6/2020

Direct Memory Access (DMA)


• Interrupt driven dhe I/O i programuar kërkojnë
ndërhyrjen e CPU-së për transferimin e të
dhënave midis memorjes dhe modulit I/O
– Transfer rate është i limituar
– CPU menaxhon tranferimin e I/O (për çdo
transferim ka një numër instruksionesh që duhet të
ekzekutohen)
• Përgjigjia: DMA

41

41

Funksioni i DMA

• Modul hardware shtesë në bus


• DMA shërben për transferimin direkt të të
dhënave midis memorjes dhe modulit I/O
• Përdoret kur kërkohet të lexohet/shkruhet
një bllok të dhënash
• DMA: pajisje e thjeshtë

42

42

21
2/6/2020

Funksionimi i DMA-së
• CPU i tregon kontrollerit të DMA-së:
– Nëse kërkohet Read apo Write
– Adresën e pajisjes I/O
– Adresën e fillimit në memorje nga e cila do lexohet
ose ku do të shkruhet
– Numrin e byte-ve që do lexohen/shkruhen
• CPU vazhdon me punë tjetër
• Kontrolleri i DMA-së merret me transferimin e
të dhënave
• Kontrolleri i DMA-së dërgon një interrupt kur
ka përfunduar punë. 43

43

Diagrama tipike e modulit DMA

44

44

22
2/6/2020

Funksionimi i DMA-së
• Shembulli në figurë:
Lexim nga pajisja I/O
tek memorja

45

45

Rasti me/pa DMA

46

46

23
2/6/2020

Transferimi i të dhënave me DMA


• Për transferim DMA përdor bus-in e sistemit
– Mund ta përdorë vetëm kur nuk po e përdor CPU
– Mund të detyrojë CPU-në të ndërpresë veprimet
përkohësisht (vjedhje e cikleve)
• Kur CPU ndalohet nuk kemi interrupt
– CPU nuk ndryshon kontekst
• CPU ndalohet para aksesimit të bus-it
• Ngadalësohet CPU (por më pak se dy teknikat e
tjera)

47

47

Pikat e ndalimit të DMA-së dhe


interrupt-ve gjatë një instruksioni

48

48

24
2/6/2020

DMA dhe Cache


• Meqë me DMA të dhënat lexohen/shkruhen direkt
në memorje kemi problem me koherencën e të
dhënave ndërmjet memorjes dhe cache-së:
– Input (p.sh. Po lexohet nga disku)
• Nëse disa prej të dhënave që DMA ka shkruar në memorje janë
në cache, proçesori do të marrë vlerat e vjetra.
• Zgjidhje: cache invalidation (fshihen disa hyrje në cache)
– Output (Vetëm për rastin e cache write-back)
• DMA do të lexojë një të dhënë nga memorja, dhe kjo e dhënë
mund të jetë e ndryshuar në cache.
• Zgjidhje: cache flushing (bëhet write back për disa të dhëna
në cache)
49

49

Referenca
• Libri:
William Stallings “Computer Organization
and Architecture, 8th edition”
Kapitulli 7 (faqe 217-239)

50

50

25
2/6/2020

FALEMINDERIT!

51

51

26

You might also like