Sunteți pe pagina 1din 31

Cuprins Curs

• Introducere
• Structura sistemelor de calcul
• Metode de transfer a datelor
• Comunicaţia paralelă
• Comunicaţia serială
• Protocolul USB
• Protocolul CAN

1
Metode de transfer a datelor

• Transferul programat
• Transferul prin întreruperi
• Transferul prin acces direct la memorie (DMA)
• Transferul prin canale de I/E

2
Transferul programat - principiu
• Principiul transferului programat
• Datele sunt transferate între CPU şi modulele de I/O sub
controlul direct al CPU
• Fiecare operaţie necesită execuţia unei secvenţe de instrucţiuni
de către CPU
• Transferul se realizează între un registru CPU şi un registru al
dispozitivului de I/O
• Dispozitivele de I/O nu au acces direct la memoria principală
• Execuţia unei operaţii de I/O
• CPU transmite o comandă modulului de I/O
• Modulul execută acţiunea respectivă şi setează biţii
corespunzători în registrul de stare
• CPU trebuie să testeze periodic starea modulului de I/O pentru a
vedea când sa terminat operaţia 3
Transferul programat
• Adresarea dispozitivelor de I/O
• CPU, Memoria şi SIO comunică de obicei prin magistrala sistem
• Dispozitivul este conectat la magistrală printr-un port de I/O ( registru
adresabil)
• Moduri de adresare
• Adresare cu mapare în memorie
• Există un singur spaţiu de adrese pentru locaţiile de memorie şi modulele de
I/O
• Aceleaşi instrucţiuni atât pentru accesul la memorie cât şi pentru modulele
de I/O
• Adresare izolată

4
Transferul programat
• Adresarea cu mapare în memorie

Liniile RD şi WR se utilizează fie pentru a iniţia un ciclu de acces la memorie fie 5


un transfer de I/O
Transferul programat

• Adresarea izolată
• Spaţiul adreselor este izolat de cel al memoriei
• Magistrala conţine:
• Linii de citire şi scriere pentru memorie
• Linii de comandă pentru intrare / ieşire
• O instrucţiune cu referire la memorie activează linia de control
MRD sau MWR
• CPU execută instrucţiuni separate de I/O pentru a activa liniile
IORD sau IOWR

6
Transferul programat
• Adresarea izolată

7
Transferul programat
• Instrucţiuni de I/O
• Transferul programat poate fi implementat prin cel puţin 2
instrucţiuni de I/O: IN şi OUT – (intel)
• Pentru execuţia unei operaţii de I/O, CPU transmite:
• O adresă specifică modulului de I/O şi dispozitivului extern
• O Comandă de I/O
• Tipuri de comenzi
• comenzi de control – activarea perifericului şi specificarea operaţiei
de executat
• comenzi de test – testarea condiţiilor de stare asociate modului de
I/O
• comenzi de citire - un octet sau cuvânt din registrul asociat modului
de I/O
• comenzi de scriere – un octet sau cuvânt în registrul asociat
modulului de I/O 8
Transferul programat

• Dezavantaje:
• Performanţe limitate
• CPU trebuie să aştepte până când perifericul devine disponibil, iar
apoi să execute transferul printr-o secvenţă de program
• Rata de transfer este limitată de viteza cu care CPU poate testat şi
deservi dispozitivele de I/O
• Avantaje:
• Uşor de utilizat în aplicaţii
• Simplitate în logica de control a modulului de I/O

9
Transfer prin întreruperi

• Principiul transferului prin întreruperi


• Sisteme de întreruperi multiple
• Sisteme de întreruperi cu priorităţi
• Conectarea în paralel a liniilor de întrerupere
• Conectarea în serie a liniilor de întrerupere

10
Transfer prin întreruperi
• Principiul transferului prin întreruperi
• Întreruperea
• reprezintă suspendarea execuţiei unui program de către un semnal
extern CPU, indicând producerea unui eveniment extern sau de către
un eveniment intern, indicând apariţia unei situaţii de excepţie în
funcţionarea CPU.
• Se verifică la sfârşitul fiecărei instrucţiuni (în asamblare)
• Sursele de întreruperi:
• Dispozitive periferice care solicită servicii
• Memoria virtuală – transferul unei pagini
• Elemente hardware de supraveghere a funcţionării normale a
sistemului: circuite de detectare a erori de paritate a memoriei, de
sesizare a căderii tensiunii de alimentare etc.:
• Evenimente software interne: depăşiri la operaţii aritmetice,
• Avantaj: CPU nu mai trebuie să testeze starea modulului de I/O

11
Transfer prin întreruperi
• Principiul transferului prin întreruperi
• Se foloseşte un semnal IREQ (Interrupt Request) pentru întreruperea
CPU
• Este setat un indicator de întrerupere într-un registru al CPU
• CPU acceptă întreruperea şi va genera un semnal de achitare a
întreruperi – IACK (Interrupt Acknowledge)
• Execută un program de tratare a întreruperii, asociat sursei de
întrerupere

12
Transfer prin întreruperi
• Principiul transferului prin întreruperi
• Sursa de întrerupere trebuie să furnizeze CPU-lui adresa rutinei de
tratare a întreruperii
• Metode pentru alegerea rutinei de tratare a întreruperii:
• întreruperi ne-vectorizate – adresă fixă
• întreruperi vectorizate – adresă furnizată de către sursa de întrerupere
sub forma unui vector de întrerupere

13
Transfer prin întreruperi

• Principiul transferului prin întreruperi


• Sisteme de întreruperi multiple
• Sisteme de întreruperi cu priorităţi
• Conectarea în paralel a liniilor de întrerupere
• Conectarea în serie a liniilor de întrerupere

14
Transfer prin întreruperi
• Sisteme de întreruperi multiple (1)
• Pentru înregistrarea cererii există un registru al cererilor de
întrerupere
• Probleme:
• Identificarea sursei de întrerupere
• Linii multiple de întrerupere
• Interogare software
• Interogare hardware
• Arbitrajul de magistrală
• Alegerea întreruperii care va fi deservită în cazul apariţiei mai multor
întreruperi simultan

15
Transfer prin întreruperi
• Sisteme de întreruperi multiple (2)
• Identificarea sursei de întrerupere
• Linii multiple de întrerupere
• Soluţie simplă
• nu e practic să se dedice nu număr prea mare de linii ale magistralei
sau pini ai procesorului pentru liniile de întrerupere
• Posibilă conectarea mai multor module de I/O pe aceeaşi linie
• Interogare software (“polling”)
• La detectarea unei întreruperi CPU execută o rutină standard
• Interoghează modulele de I/O pentru a determina modulul care a
generat întreruperea
• necesitatea utilizării unei linii de comandă separată (TEST I/O)
• Fiecare modul I/O poate conţine un registru de stare adresabil

16
Transfer prin întreruperi
• Sisteme de întreruperi multiple (3)
• Identificarea sursei de întrerupere
• Interogare hardware
• Se utilizează un lanţ de dispozitive
• Toate modulele de I/O partajează o linie comună de cerere de întrerupere
• La detectarea unei cereri de întrerupere, CPU activează un semnal de achitare
a întreruperi
• Linia de achitare a întreruperi este înlănţuită prin toate modulele
• Semnalul de achitare se transmite printr-o serie de module de I/O până
ajunge la modulul solicitant
• Acesta răspunde prin plasarea vectorului de întrerupere pe magistrala de
date

17
Transfer prin întreruperi
• Sisteme de întreruperi multiple (4)
• Identificarea sursei de întrerupere
• Arbitrajul pe magistrală
• Utilizează întreruperi vectorizate
• Modulul de I/O preia controlul asupra magistralei pentru a putea activa linia
de cerere a întreruperii
• La detectarea întreruperi CPU activează linia de achitare întrerupere
• Modulul care a efectuat cererea îşi plasează vectorul pe liniile de date

18
Transfer prin întreruperi

• Principiul transferului prin întreruperi


• Sisteme de întreruperi multiple
• Sisteme de întreruperi cu priorităţi
• Conectarea în paralel a liniilor de întrerupere
• Conectarea în serie a liniilor de întrerupere

19
Transfer prin întreruperi
• Sisteme de întreruperi cu priorităţi (1)
• În cazul cererilor simultane, este necesară stabilirea unor priorităţi
• Priorităţi bazate pe viteza perifericelor – cele rapide primesc o
prioritate mare
• Stabilirea priorităţii întreruperilor simultane:
• Software
• Identificarea sursei se face prin interogare
• Există o rutină comună de deservire, care interoghează sursele de întrerupere
• Ordinea interogării determină prioritatea lor
• Dezavantaj: în cazul multor surse de întrerupere creşte timpul necesar
interogării

20
Transfer prin întreruperi
• Sisteme de întreruperi cu priorităţi (2)
• Stabilirea priorităţii întreruperilor simultane:
• Hardware
• Utilizarea circuitelor care acceptă cereri de întrerupere de la mai multe surse
şi determină cererea cu prioritatea maximă
• Fiecare sursă are un vector propriu de întrerupere

21
Transfer prin întreruperi

• Principiul transferului prin întreruperi


• Sisteme de întreruperi multiple
• Sisteme de întreruperi cu priorităţi
• Conectarea în paralel a liniilor de întrerupere
• Conectarea în serie a liniilor de întrerupere

22
Transfer prin întreruperi
• Conectarea în paralel a liniilor de întrerupere (1)
• Registru de întrerupere (RINT) unde fiecare bit este setat separat de
cererile de întrerupere ale fiecărui dispozitiv
• Prioritate în funcţie de poziţia biţilor
• Posibilitatea folosirii unui registru de mascare a întreruperilor (RM)
care poate controla starea fiecărei cereri de întreruperi

23
Transfer prin întreruperi
• Conectarea în paralel a liniilor de întrerupere (2)

24
Transfer prin întreruperi
• Conectarea în paralel a liniilor de întrerupere (3)
• Codificator de prioritate
• Implementează funcţia de prioritate
• Generează vectorul de întrerupere
• Vectorul este transferat CPU-ului prin bufferul de magistrală
• Validarea buffer-ului se realizează prin semnalul de recunoaştere a
întreruperii INTACK de la CPU şi prin bistabilele IST şi IEN
• IST – bistabil stare a întreruperii
• IEN – bistabilul de validare a întreruperii

25
Transfer prin întreruperi

• Principiul transferului prin întreruperi


• Sisteme de întreruperi multiple
• Sisteme de întreruperi cu priorităţi
• Conectarea în paralel a liniilor de întrerupere
• Conectarea în serie a liniilor de întrerupere

26
Transfer prin întreruperi
• Conectarea în serie a liniilor de întrerupere (1)
• Dispozitivele care pot genera o cerere de întrerupere sunt conectate
în lanţ
• Ordinea dispozitivelor este în funcţie de priorităţi
• Linia de cerere este comună pentru toate dispozitivele (conexiune
SAU cablat)
• Dacă nu există nici o cerere de întrerupere linia de cerere rămâne în
starea “1” logic

27
Transfer prin întreruperi
• Conectarea în serie a liniilor de întrerupere (2)

28
Transfer prin întreruperi
• Conectarea în serie a liniilor de întrerupere (3)
• CPU răspunde la o cerere prin activarea semnalului de achitare
INTACK
• Semnalul este recepţionat de dispozitivul D0 la intrarea sa PI
(Priority IN)
• Semnalul este transmis la următorul dispozitiv prin conexiunea PO
(Priority Out) numai dacă D0 nu a solicitat o întrerupere
• Dacă D0 are o cerere de întrerupere
• Blochează semnalul de achitare
• Depune vectorul de întrerupere

29
Transfer prin întreruperi
• Conectarea în serie a liniilor de întrerupere (4)

30
Transfer prin întreruperi
• Dezavantaj
• rata de transfer este limitată la viteza cu care CPU poate testa şi
deservi un dispozitiv
• CPU ocupat cu gestiunea transferului
• Încărcarea CPU la apariţia fiecărui eveniment. În aplicaţiile de timp
real cu sute de evenimente de I/O pe secundă această încărcare
poate deveni intolerabilă
• Soluţie
• Folosirea unui semnal de tact pentru întreruperea periodică a CPU-
ului moment în care CPU interoghează toate dispozitivele de I/O

31

S-ar putea să vă placă și