2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele...

16
11 CAPITOLUL 2 2.OPERATIILE DE INTRARE/IESIRE Transferul bidirectional al informatiilor între circuitele logice ale ? C si logica externa se executa prin intermediul dispozitivelor numite porturi (porti) de intrare/iesire PI/E. Prin logica externa se întelege multimea circuitelor care nu lucreaza direct cu UCP. Ele sunt comandate de catre UCP prin intermediul PI/E sau furnizeaza semnale de stare catre UCP prin intermediul PI/E. Exista trei moduri principale de efectuare a operatiilor I/E, în functie de “cauza” care provoaca transferul: - transfer programat la comanda UCP care controleaza în totalitate operatiile de transfer; - prin întreruperi, în care caz UCP comanda transferurile (sau alte operatii) ca raspuns la semnalele externe numite cereri de întrerupere; - prin acces direct la memorie (DMA), caz în care la solicitarea unui controler DMA, UCP cedeaza controlul magistralelor, iar controlerul DMA devine master si comanda efectuarea transferului (MEM ? PE) sau (MEM ? PI) fara interventia UCP. TRANSFERUL PROGRAMAT Asa cum s-a aratat în schema bloc de principiu a unui ? C, porturile I/E se conecteaza între bus-urile BA, BC, BD si exterior. Ca urmare, un PI/E va avea doua interfete: - cu UCP, pentru selectie, comanda si transferul efectiv al datelor ; - cu exteriorul, pentru comanda transferului si transferul efectiv . 2.1. Selectarea si comanda PI/E. Interfatarea cu UCP Transferul datelor între un port I/E si UCP are loc în principiu asemanator cu transferul datelor cu memoria. Semnalele de comanda ale UCP Pentru comanda unui transfer sunt necesare semnalele tipice de selectie si comanda: adrese, RD, RD. Majoritatea tipurilor de ? P fac distinctie între memoria propriu-zisa si PI/E, în scopul conservarii în totalitate a spatiului adreselor pentru memorie (ex.:I8080, Z80, I8086/88, iAPX 186 etc.). Acest lucru nu este, însa, în principiu, necesar; ca atare, la unele ? P (ex. MC6800,MC 68000), PI/E sunt tratate ca fiind o parte a memoriei selectate si comandate cu semnale comune. Avantajul acestor arhitecturi este simetria, posibilitatea lucrului mai flexibil cu PI/E (se pot utiliza moduri de adresare la memorie). În plus, la ? P cu numar mare de biti pe BA (ex. MC68000 - 24 biti), consumul de spatii de adrese de catre PI/E (al caror numar în sistemele uzuale este 1-10 2 sau cel mult 10 3 ) este neglijabil. Dezavantajul solutiei este dat de timpul ceva mai mare de executie al instructiunilor de transfer cu PI/E, fata de prima solutie. Pentru distinctia memorie/PI/E, sunt necesare semnale specializate. Exemple: Z80: MREQ ? 0 pentru memorie; IORQ ? 0 pentru I/E; I8080: MEMR,MEMW pentru memorie; IOR, IOW pentru I/E;

Transcript of 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele...

Page 1: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

11

CAPITOLUL 2

2.OPERATIILE DE INTRARE/IESIRE

Transferul bidirectional al informatiilor între circuitele logice ale ?C si logica externase executa prin intermediul dispozitivelor numite porturi (porti) de intrare/iesire PI/E.

Prin logica externa se întelege multimea circuitelor care nu lucreaza direct cu UCP.Ele sunt comandate de catre UCP prin intermediul PI/E sau furnizeaza semnale de stare catreUCP prin intermediul PI/E.

Exista trei moduri principale de efectuare a operatiilor I/E, în functie de “cauza” careprovoaca transferul:

- transfer programat la comanda UCP care controleaza în totalitate operatiile detransfer;

- prin întreruperi, în care caz UCP comanda transferurile (sau alte operatii) ca raspunsla semnalele externe numite cereri de întrerupere;

- prin acces direct la memorie (DMA), caz în care la solicitarea unui controler DMA,UCP cedeaza controlul magistralelor, iar controlerul DMA devine master si comandaefectuarea transferului (MEM ? PE) sau (MEM ? PI) fara interventia UCP.

TRANSFERUL PROGRAMAT

Asa cum s-a aratat în schema bloc de principiu a unui ?C, porturile I/E se conecteazaîntre bus-urile BA, BC, BD si exterior. Ca urmare, un PI/E va avea doua interfete: - cu UCP,pentru selectie, comanda si transferul efectiv al datelor ; - cu exteriorul, pentru comandatransferului si transferul efectiv .

2.1. Selectarea si comanda PI/E.Interfatarea cu UCP

Transferul datelor între un port I/E si UCP are loc în principiu asemanator cu transferuldatelor cu memoria.

Semnalele de comanda ale UCP

Pentru comanda unui transfer sunt necesare semnalele tipice de selectie si comanda:adrese, RD, RD.

Majoritatea tipurilor de ?P fac distinctie între memoria propriu-zisa si PI/E, în scopulconservarii în totalitate a spatiului adreselor pentru memorie (ex.:I8080, Z80, I8086/88, iAPX186 etc.). Acest lucru nu este, însa, în principiu, necesar; ca atare, la unele ?P (ex.MC6800,MC 68000), PI/E sunt tratate ca fiind o parte a memoriei selectate si comandate cusemnale comune. Avantajul acestor arhitecturi este simetria, posibilitatea lucrului mai flexibilcu PI/E (se pot utiliza moduri de adresare la memorie). În plus, la ?P cu numar mare de biti peBA (ex. MC68000 - 24 biti), consumul de spatii de adrese de catre PI/E (al caror numar însistemele uzuale este 1-102 sau cel mult 103 ) este neglijabil. Dezavantajul solutiei este dat detimpul ceva mai mare de executie al instructiunilor de transfer cu PI/E, fata de prima solutie.

Pentru distinctia memorie/PI/E, sunt necesare semnale specializate.Exemple:Z80: MREQ ? 0 pentru memorie; IORQ ? 0 pentru I/E;I8080: MEMR,MEMW pentru memorie; IOR, IOW pentru I/E;

Page 2: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

12

I8086: M/IO ? 1 - memorie, M/IO ? 0 -- PI/E.

Nivelele active ale semnalului de comanda I/E (IORQ, M/IO etc.) indica prezenta peBA a adresei valide din spatiul adreselor I/E. Din cauza ca numarul uzual de porturi este deregula, mult mai mic decât numarul uzual al locatiilor de memorie ; prin utilizarea partiala aBA (ex.:A0-7 la I8080, 8085, Z80; A0-15 la I8086). Transferurile sunt în general de tip asincron(ca la memorie), cu posibilitatea introducerii de stari suplimentare de asteptare TW ale UCPpentru marirea duratei ciclului masina.

Semnalele de interfata ale PI/E cu UCP

În mod tipic, un port I/E multiplu, realizat fizic într-un singur circuit integrat dispunede urmatoarele semnale:

Intrari:-date - daca este PE;-adrese - pentru selectarea unuia dintre porturile interne;-RD, WR - pentru comanda citirii sau scrierii;-CS (sau E sau DS) - pentru validarea capsulei;-RESET - pentru resetarea portului (el este adus într-o stare determinata);-CLK - tact pentru sincronizarea si comanda logicii interne, de obicei comun cu tactul

?P sau obtinut prin divizarea acestuia;-intrari pentru controlul întreruperilor (nu sunt strict necesare).Iesiri:-date - daca este PI (vor fi în starea Z daca CS ? 1);-iesiri pentru a semnala prin întreruperi catre UCP terminarea operatiei sau aparitia

unor semnale pe intrari la externe.PI/E pot fi realizate si cu circuite standard de uz general daca se respecta specificatiile

electrice de conectare la BA, BC, BD. În acest caz proiectantul trebuie sa realizeze semnaleleechivalente celor prezentate.

Toate circuitele conectate la bus-ul de date BD, distincte de memorie, sunt privite decatre UCP ca porturi de intrare/iesire, chiar daca functiunile acestor circuite nu se limiteazastrict la operatii de intrare/iesire. Aceasta asigura o maniera unitara de lucru al UCP cu oricecontroler sau interfata specializat, independent de functiunile specifice ale acestuia.

Majoritatea circuitelor integrate auxiliare (specializate functional, cu scopul degrevariiUCP de anumite sarcini), din familiile de ?P uzuale sunt programabile (modul lor de lucrupoate fi modificat prin înscrierea în interior a unor cuvinte de comanda si parametri). UCPpoate “afla” starea momentana a unui asemenea circuit citind pe BD un cuvânt de stare alacestuia. Ca atare, un circuit programabil complex este “vazut” de catre UCP ca unul sau maimulte porturi pentru: date (PI/E), comenzi si parametri (PE), cuvinte de stare si informatiiauxiliare asupra operatiilor executate (PI).

În fig.2.1 sunt date câteva exemple de interfete cu UCP pentru circuite tipice dinfamiliile ?P 8080 si Z80 si modul în care UCP vede portile echivalente ale acestora.

Page 3: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

13

Fig. 2.1. Interfata cu UCP pentru circuite auxiliare tipice din familiile ?P 8080 si Z80: a),d)?PI/E de tip paralel, 8255 si Z80-Pio; b), e) ? interfete de comunicatie serie, 8251 si Z80-SIO; c), f) ?contoare de timp programabile 8053 si Z80-CTC.

-pentru familia I8080 (8085, 8086, etc.) :8255 ? port I/E triplu echivalent cu trei porturi de date (I/E) si un port de comanda;

IOR

IOW

RESET RESET

RD

WR

A1

A0

CS

8255

BD

D0-7

IOR

IOW

RESET RESET

RD

WR

CLK

C/D

CS

8251

BD

D0-7

ComenziComenziComenzi

IOR

IOW

A0

RDWR

A1 8253

BD

D0-7

CS

Selectie

SelectieSelectie

a cb A1 A0 C/D A1 A0

0

Comanda F

Date PC I/E

Date PB I/E

Comanda F

Date nunarator 2 I/F

Date nunarator 1 I/F

Date nunarator ø I/FDate I/FDate PA I/E

0 0

0 01

0 10 1

11 11 0

0 1

1 11 0Stare l (RDsØ)

Comanda F(WRsØ)

IORQ

RD

M1

P/OB/AC/DCE

øINTIEIIEO

IORQ

RD

M1

IORQ

RD

M1

SIOB/AC/D

CECEøINTIEIIEO

RESET RESETIORQ

RD

M1

D0-7D0-7

intreruperiComanda

Tact øTact ø

SelectieSelectie

Comenzi

BDBD

intreruperiComanda

IORQ

RD

M1

CTCCSØCSI

Ø

INTIEIIEO

RESET RESETIORQ

RD

M1

D0-7

Tact ø

Selectie

BD

intreruperiComanda

Comenzi Comenzi

d feC/D B/A

Comanda PB E

Comanda PA E

Date PB I/E

Canal 3 I/ECanal 2 I/E

Canal 1 I/E

Canal 0 I/EDate A I/EDate PA I/E

0 1

1 11 0

Comanda/stare BComanda/stare A

Date B I/E0 0C/D B/A

0 1

1 11 0

0 0CSI CSD

0 1

1 11 0

Page 4: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

14

8251 ? interfata de comunicatie serie sincrona/asincrona, echivalenta cu un port dedate (I/E), un port de comanda (E) si un port de stare (I);

8253 ? numarator triplu (contor) programabil, echivalent cu trei porturi de date (I/E)si un port de comanda (E).

- pentru familia Z80:PIO (Paralel Imput Output) ? port I/E dublu echivalent cu doua porturi de date (I/E)

si doua porturi de comanda;SIO (Serial Imput Output) ? interfata de comunicatie serie sincrona/asincrona,

echivalenta cu patru porturi I/E . Selectarea porturilor interne (în numar mai mare decât lacelelalte circuite) se face utilizând un registru de adrese intern WR0.

CTC ? numarator cuadruplu (contor) programabil, echivalent cu patru porti I/E pentrudate si comenzi.

Observam ca în interiorul circuitelor prezentate se afla mai multe registre (locatii)decât cele vazute direct de catre UCP. Accesul la ele nu se poate face direct din cauzalimitarilor impuse de numarul de pini disponibili pe capsula. Pentru a scrie/citi,date/comenzi/stari, în/din aceste registre, se utilizeaza diverse moduri de adresare indirectacare conduc la o mare varietate de scheme practice:

- înscrierea comenzilor/datelor sau citirea datelor/starilor într-o anumita ordine “stiuta“de catre circuit si care trebuie respectata de catre programul de lucru cu portul, executat decatre UCP;

- utilizarea drept adrese a unor câmpuri de biti din comenzi pentru a indicadestinatia/sursa datelor, sau în mod echivalent, utilizarea unor registre de adresare interne(ex.SIO-Z80), în care se înscrie înaintea unui transfer, adresa registrului implicat, dupa care seefectueaza transferul propriu-zis.

Metode de selectare si comanda a PI/E

Utilizând semnalele de interfata prezentate se poate face selectarea si comanda PI/E.Problemele de proiectare logica si electrica sunt în principiu aceleasi .

Pentru ?P cu spatii de adresa separate pentru memorie/(I/E), exista doua metode detratare a porturilor:

- ca porturi distincte de memorie (selectate cu semnalele de adrese si cele specializateIORQ, IOW/IOR etc.);

- înglobate în spatiul de adrese al memoriei principale (selectate prin adrese si semnale(comune cu cele ale memoriei). În acest caz alocarea spatiului adreselor se va face atât pentrumemorie cât si pentru PI/E asigurându-se selectiile adecvate pentru dicriminarea -memorie/(PI/E). În lucrul cu PI/E se vor utiliza instructiunile de transfer cu memoria.

În ambele metode, în urma alocarii spatiului adreselor, rezulta schema de selectie, prindecodificare. Decodificarea poate fi completa sau incompleta (în ultimul caz, cu efectulmentionat de multiplicare virtuala a portului fizic în spatiul adreselor).

Un caz limita al decodificarii incomplete, utilizat în sisteme simple, este asa-numitaselectie liniara în care pentru activarea unui port se utilizeaza un singur bit de adresa ((Ai ? 1)? (CS ? 0)). Aceasta limiteaza drastic numarul de porturi (la numarul bitilor din BA utilizatipentru selectia I/E); în schimb, schema de selectie se simplifica (nu mai sunt necesaredecodificatoare). Pentru evitarea selectarii simultane a mai multor porturi selectate liniar,adresa utilizata în instructiuni a portului trebuie sa fie a ? 2i, (în care toti bitii sunt “0” cuexceptia lui Ai). Observam ca selectia liniara (si, în general, decodificarea incompleta) are înplus avantajul posibilitatii de scriere simultana (prin aceeasi instructiune) în mai multe PE.

Page 5: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

15

În practica pentru sisteme cu numar mare de porturi, se pot combina selectarea liniaracu cea prin decodificare. Considerând, spre exemplu, interfetele spre UCP ale PIO, SIO, CTC- din familia Z80 prezentate în Fig.2.1 se pot completa cu schema de selectie a celor treiporturi : pe (B/A, C/D) - la PIO, si SIO, (CSO,CS1) - la CTC, se aplica respectiv BA0, BA1,iar pe CE la cele trei circuite se aplica respectiv CS - PIO, CS - SIO, CS - CTC de la iesiriledecodificatorului D2. În plus, pe intrarile de comanda se vor conecta semnalele M1, IORQ,RD, (WR se genereaza intern în aceste circuite prin conditia (CE ? 0) (IORQ ? 0) (RD ?1)), RESET si semnalul de tact al sistemului.

2.2.Interfata cu exteriorul

Transferul datelor spre exterior (la iesirea unui PE) sau spre interior (de la intrarileunui PI) poate avea loc în doua moduri:

- numai prin semnale de date:- prin semnale de date însotite de semnale de comanda pentru sincronizare.În primul caz, (cel mai simplu), ?P executa la comanda programului:1) - scrieri în PE (datele sunt folosite drept comenzi în subsistemul condus de catre

?C). Daca ramân înscrise în PE pâna la scrierea urmatoare, deoarece subsistemul condus “nustie” când apar aceste comenzi.Ca atare, PE trebuie prevazut cu memorie la interfata cuexteriorul (circuite latch).

2) - citiri din PI ale semnalelor de stare ale subsistemului condus, momentele de citirefiind dictate de programul rulat în ?P (sincronizare interna a controlerului de sistem). Sepresupune ca în momentele de citire, datele de la intrarea PI sunt corecte. PI în acest caz nutrebuie sa aiba memorie, deoarece datele ajung prin instructiunea de citire într-un registruintern al ?P (PI se pot realiza simplu cu circuite buffer cu trei stari, fara memorie, cu iesirileconectate pe BD si intrarile la subsistemul condus; buffer-ul va fi activat doar când se executacitirea portului echivalent lui.)

Acest mod de transfer are doua inconveniente: lipsa sincronizarii si a oricareiconfirmari privind acceptarea si/sau corectitudinea datelor receptionate.

Din acest motiv, majoritatea circuitelor programabile de tip PI/E sunt prevazute a lucraîn ambele moduri; în al doilea caz, ele realizeaza la nivelul interfetei cu exteriorul un protocolde date la nivel electric .

Protocolul asincron fara confirmare

Aceasta realizeaza o sincronizare elementara a sursei si receptorului dedate.Presupunem în fig.2.2 un ?C prevazut cu un PE si un periferic (care poate fi eventual siun alt ?C) prevazut cu un PI. Transferul datelor are loc în sensul PE ? PI (în sens inverslucrurile se petrec asemanator).

În fig.2.2a (transmisia este initiata de sursa (T). Semnalul READY (RDY) indica lui Rprin nivel 1 logic, prezenta datelor valide pe bus-ul comun BC; el serveste si ca semnal de tactpentru memorarea datelor în latch-ul intern al lui PI.R “afla“ despre faptul ca a avut loc untransfer prin explorarea lui STB sau STB declanseaza o actiune gen “întrerupere” în Rinformându-l ca trebuie sa preia data. Din diagrama de timp asociata se observa ca se potdefini doua automate pentru protocol, avand starile ST,respectiv SR, marcate, atât pe diagrama cât si pe grafurile de tranzitii T si R.

Page 6: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

16

Fig. 2.2. Protocol asincron (la nivel electric) fara confirmare pentru transfer I/E paralel: ? ?tranzitii voluntare (cauze interne); ? ? tranzitii fortate (cauze extere); Evenimete: RDY ?(READY?1); REQ ? (REQUEST?1); D ? data valida; a) Transmisia initiata de sursa; b)Transmisia initiata prin cerere de catre receptor; a.1 ), b.1) ? sheme bloc; a.2), b.2) ? diagramede timp; a.3), b.3) ? grafuri ale automatelor de protocol.

În fig. 2.2 b transmisia este initiata de receptor (R), prin cererea de date REQ ?1(REQuest). T “afla“ despre aceasta cerere fie prin exploatarea periodica a lui REQ fie REQprovoaca o întrerupere a lui ?P, informându-l ca trebuie sa scrie data în PE. Ca urmare, Tplaseaza data D pe bus-ul comun BC. Diagrama de timp si grafurile de tranzitii sunt date înfig.2.2 b 2 si 2.2 b 3.

Analizând aceste scheme se observa ca ele nu pot fi utilizate decât pentru sisteme cuviteze de lucru cunoscute reciproc T trebuie sa pastreze data D un timp suficient, astfel încât Rsa fie capabil sa receptioneze, deoarece T nu are la dispozitie un semnal care sa indiceacceptarea. Grafurile marcheaza acest lucru prin aceea ca tranzitiile prin starea 0 se facindependent în T si R, în virtutea unor constrângeri interne. Îmbunatatirea schemei se faceprin utilizarea unei confirmari a preluarii datei.

Protocol asincron cu confirmare (hand-shaking)

Presupunem transmisia initiala de sursa (T). Confirmarea de receptie se da prinsemnalul ACK ? 1 (ACKnowledge). Cele doua semnale RDY si ACK s-au presupus a fiactive prin nivelul 1 logic.

În fig. 2.3b se observa ca aparitia confirmarii ACK ? 1 determina în T încheiereaciclului, dar timpul dupa care RDY devine din nou “0“ este determinat tot de catre T! Aceasta

PE PI

T BC R

PE PI

T BC R

RDY REQ

a1 b1

Exploraresau

intrerupe

8

DATA VALIDA

DATA VALIDAD

t

D

RDY

RDYRDY

ST

REQREQ

REQ

SR

DATA

t

ST

SR

t

t

21221

0 1 0 010

00 0

2

1

1 1

0000

2

1

a2 b2a3 b3

T R T R

Page 7: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

17

este o transmisie neconditionata, cu confirmare. În fig. 2.3 c,d se observa posibilitatea aparitieide erori daca vitezele celor doua sunt mult diferite.

Daca tRDY ?? tACK, atunci nivelul “1“ al lui RDY, de durata mare relativ la tACK, poatedetermina citirea dubla a unei date. Daca tRDY?? tACK, atunci T poate încerca o nouatransmisie (deoarece a primit ACK ? 1 si nu asteapta ca aceasta sa redevina 0), fara a tineseama de ciclul în R dureaza un interval ?? tRDY; în acest caz, R pierde data respectiva.

Rezolvarea acestor probleme se poate face prin protocolul cu confirmare totala,prezentat în fig. 2.4a. În acest caz T plaseaza datele pe BC (evenimentul D), asteapta în starea(1) inactivarea lui ACK, dupa un timp (2) seteaza RDY? 1.

Fig. 2.3. Protocol asincron (la nivel electric), neconditionat, cu confirmare, pentru transfer I/Eparalel: a) schema bloc; b) Diagrama de timp; c), d), Situatii în care apar erori.

Aceasta conditie determina iesirea din stara (0) a automatului R, care preia data din PI(memorata la frontul (? ) al lui RDY) si genereaza ACK ? 1. (ACK ? 1) determina iesirea luiT din starea (3) (în care astepta ACK ? 1) si dupa un timp (4) terminarea impulsului RDY siinvalidarea datelor. Terminarea lui RDY determina terminarea lui ACK prin iesirea din starea(2) a lui R si tranzitia (3) ? (0).

Observam ca realizarea practica a protocolului se simplifica daca semnalele deinterconditionare RDY si ACK sunt nu prin nivel logic, ci pe front. De fapt, redesenând în altasuccesiune structura serie a grafului a.2 se obtine graful b.2, în care succesiunea de stari (2) -(3) din graful T reprezinta asteptarea (interna a lui R) pâna la producerea frontului (? ) ACK.

Rezulta grafurile de tranzitii din fig. 2.4 b.3 si diagrama de timp b.1 în care se vede ca:

- T transmite datele, seteaza RDY ? 1, asteapta frontul (? ) ACK, dupa care terminaciclul de transfer:

- R asteapta frontul (? ) RDY, preia data si genereaza o revenire în 0 logic a lui ACKurmata de un front (? ) ACK;

Simplificarea aparenta a protocolului se explica prin aceea ca fronturile (? ) alesemnalelor RDY si ACK contin mai multe informatii decât nivelele logice 1 sau 0 (un front(? ) semnifica o tranzitie în starea 0 logic urmata de o tranzitie în 1 logic).

DATA VALIDAPE PI

T BC R

ACK

RDY

D2D1

b

ca

RDY

ACK

DATADATA

ACK

RDY

DATA

? Dublareadatei

tACK<< tRDY

d

tACK >> tRDY

? PierdereadateiD2

RDY

ACK

Page 8: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

18

S-a obtinut astfel o structura tipica a semnalelor de interfata cu exteriorul ale PI/E.

Fig. 2.4 Protocol asincron (la nivel electric) cu confirmare si conditionare totala (hand-shaking) pentru transfer I/E paralel: a.1), b.1): Diagrame de timp;

De exemplu, în familia Z80, circuitul port paralel PIO dispune în modul notat cu 0 (iesire) deurmatoarele semnale pentru fiecare din cele doua porturi cu 8 biti A,B:

- 8 biti de date ;- semnalul READY (care în mod iesire indica plasarea datelor pe liniile de date);- semnalul STB (joaca rolul lui ACK), care prin frontul sau (? ) indica preluarea datei

de catre receptor (în plus, el poate determina o întrerupere catre UCP, informându-l prinaceasta ca data a fost preluata, deci se poate începe eventual alt transfer).

Alte circuite PI/E de tip paralel (ex. I8255) dispun de seturi de semnale asemanatoare.Toate aceste circuite permit, evident, si variantele simplificate ale protocolului la nivelelectric.

DATA VALIDA

ACK

ACK

ACK

ACKACK

ACK

ACKACK

D?RDY

D?RDY

RDY

RDY

RDYRDY

D?RDY

ACK RDYRDYRDY

RDY

DATA

RDY

ACK

ST

SR

ST

SR

4 2

13

41

000 000

0 1 2 3 4 100 1 2 03

0 1 2 3 4 t0

0 1 2 t03tt

3

2

(S)(S)

DD

RT

D

4

3

2

1

3

2

1 1

ACK(S)

RT RT

Asteapta

Asteaptafront (S)ACK

Pregatestefront (S)

READY

ACK

a.1 b.1

a.2 b.2 b.3

Page 9: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

19

SINCRONIZAREA UCP CU EVENIMENTE EXTERNE.SISTEMUL DE ÎNTRERUPERI

Necesitatea sincronizarii activitatii UCP cu evenimente externe a fost justificata decele mai multe ori în paragrafele anterioare. În continuare, se vor prezenta aspectele deprincipiu ale sistemului de întreruperi al UCP pentru ?P uzuale.

2.3. Conceptul de întrerupere

Întreruperea reprezinta oprirea temporara a executiei unui program la comanda unuisemnal exterior unitatii centrale (semnificând producerea unui eveniment extern) si executareaunui program specific asociat evenimentului extern. Dupa servirea întreruperii, se reiaprogramul întrerupt din starea în care a fost întrerupt.

Evenimentelor externe li se asociaza semnalele numite cereri de întrerupere (CI).Sistemul de întreruperi este structura HW - SW prin care UCP realizeaza functiunile deîntrerupere.

Existenta sistemului de întreruperi este avantajoasa deoarece permite:- sincronizarea activitatii UCP cu evenimente externe;- eliberarea UCP de sarcina explorarii intrarilor, în vederea detectarii modificarilor

de stare si micsorarea timpului de raspuns la modificarea intrarilor;- tratarea ierarhizata (dupa prioritati) a diverselor sarcini alocate UCP;- detectarea rapida a unor situatii anormale în functionarea sistemului cu sporirea

implicita a fiabilitatii, etc.

Sursele de întreruperi

Acestea pot fi :- dispozitive periferice care solicita prin CI servicii specifice (transferuri I/E sau

actiuni particulare solicitate prin simpla prezenta a CI) corespunzatoare aplicatiei;- dispozitive HW de supraveghere a functionarii normale a sistemului, distincte de

aplicatia propriu-zisa (ex. circuite detectoare de erori de paritate la transferurile cu memoria,de sesizare a caderii iminente a tensiunii de alimentare, etc.);

- surse de întreruperi interne software (existente în unele UCP) indicatoare ale unorsituatii de exceptie (depasiri la operatii aritmetice, operatii de control nepermise în programeleutilizatorului, nerezidenta unor segmente virtuale de memorie în memoria principala fizicaetc.).

Ultimul tip de surse de întreruperi sunt interne unitatii centrale spre deosebire deprimele doua, care sunt externe.

Servirea cererii de întrerupere (SCI) consta în executia unei subrutine asociate tipuluide întrerupere activ; pentru întreruperile externe UCP, se poate spune ca SCI este o subrutinaapelata prin HW la momente de timp asincrone relativ cu activitatea UCP.

Controlul întreruperilor

Termenul de control al întreruperilor se refera la acceptarea sau neacceptarea de catreUCP a CI. Uzual aceasta optiune este sub control SW. UCP dispune de doua instructiunitipice :

- EI (Enable Intrerupt) - validarea întreruperilor;

Page 10: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

20

- DI (Disable Intrerupt) - invalidarea întreruperilor;Dupa RESET, întreruperile sunt invalidate. În acest caz, aparitia unor CI nu are nici un

efect asupra activitatii UCP. Dupa executia unei instructiuni EI, o cerere de întrerupere activadevine o întrerupere efectiva.

Întreruperile care pot fi validate / invalidate prin SW se numesc mascabile. Unele UCP(ex.: Z80, I8086, I8088 etc.) admit si întreruperi nemascabile (NMI) a caror prezentadetermina în mod obligatoriu întreruperea programului curent. Utilizate de obicei pentruevenimente indicatoare de functionari eronate, aceste CI solicita de la UCP actiuni speciale, înîncercarea de a ameliora functionarea sistemului.

Numarul intrarilor de întrerupere

Acest numar este variabil pentru diverse ?P particulare. În cel mai simplu caz exista osingura intrare (ex. I8080, ?C 8048/8748 etc.), pentru CI externe. CI pot fi active prin:

- nivel logic - ceea ce impune mentinerea cererii pâna la luarea ei în considerare decatre UCP;

- prin front (? ) sau (? ), cu memorarea cererii, ceea ce face inutila mentinerea încontinuare a acesteia pâna la servire.

2.4. Raspunsul UCP la întreruperi

Considerând o UCP cu o singura intrare de întrerupere si mai multe surse deîntrerupere posibile. Realizarea actiunilor specificate în definirea întreruperilor necesita înprincipiu urmatoarele actiuni ale UCP, la aparitia unei CI acceptate:

- salvarea starii programului întrerupt;- confirmarea acceptarii si identificarea întrerupatorului;- transferul executiei la subrutina de servire;- restabilirea starii programului întrerupt dupa executarea subrutinei;- reluarea executiei programului întrerupt.Daca sursa de întreruperi este unica, atunci este inutila identificarea întrerupatorului;

se poate aloca prin constructia UCP o adresa fixa, la care se va plasa în mod obligatoriu (decatre utilizator) subrutina de servire.

În cazul mai multor surse de întrerupere ele vor fi identificate prin coduri proprii(vectori de întrerupere), citite de catre UCP în ciclul (ciclurile) masina de confirmare aacceptarii si identificare a întrerupatorului.

Generarea unui vector de întrerupere se poate face în doua moduri:- de catre dispozitivul întrerupator, daca este prevazut cu logica necesara ;- de catre un dispozitiv special numit controler de întreruperi (CINT) prevazut cu mai

multe intrari CI0, ... , Cin. La aceste intrari sosesc CI de la dispozitive întrerupatoare. CINTaloca fiecarei CIi, i ? 1, ... , n câte un vector Vi distinct. Iesirea unica a CINT se conecteaza laintrarea INT a UCP (fig.2.5.a).UCP confirma acceptarea unei cereri de întrerupere printr-unsemnal de iesire INTA (INTerrupt Acknowledge). La primirea acestuia CINT genereaza peBD codul vector de întrerupere.

Page 11: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

21

Fig. 2.5 Raspunsul UCP la întreruperi: a) conectarea surselor de întrerupere la UCPprin intermediul unui controler de întreruperi; b) Structura programului de servire aîntreruperii si organigrama raspunsului UCP la întreruperi.

Modul în care CINT trateaza aparitia eventuala a mai multor CI simultane va fi tratatîn paragraful urmator. Pentru a prezenta raspunsul UCP la întreruperi, presupunem ca la unmoment dat, la iesirea CINT apare semnalul INT activ, ca rezultat al unei singure cereri deintrare CIi. În fig.2.5 b s-a ilustrat raspunsul UCP.

În programul principal (a carui executie începe dupa resetarea UCP), se executainitializarile, se valideaza întreruperile (INTE ? 1) si în continuare s-a presupus executia uneibucle cu repetare la infinit. Aparitia CIi (prin INT? 1) determina : întreruperea executieiinstructiunii de la adresa ? , saltul la adresa notata simbolic ScIi, executia subrutinei de serviresi reluarea executiei programului întrerupt de la adresa urmatoare (presupusa aici ? ? 1).

Ciclul de confirmare a acceptarii întreruperii

Executia unei instructiuni nu este întreruptibila. Unitatea de comanda a UCPanalizeaza existenta unei eventuale CI, dupa completarea executiei instructiunii curente. DacaCI este activa (prin INT? 1), atunci UCP executa:

intreruperilor (INTE? 1) ValidareaRESET: InitializariPROGRAM PRINCIPAL

Prelucrari asociate CI(Anularea CI) *Salvari suplimentare de stare

DE INTRERUPERESERVIREA CERERIISUBRUTINA PENTRU

(Salt la adresa SCI)

InstructiuneInstructiuneCI

SCIi

? +1?

(Revalidarea intreruperilor (INTE? 1)) *(RETURN (Restabileste stare UCP)

Restabiliri

de contextComutare

decontext

Comutare

Organigramaactivitatii UCP

(Executia

INT? INTE=12

instr RETURN)

INT

CINT

Invalideaza intreruperile (INTE ? 0) Confirma acceptarea (INTA ? 1) Citeste vectorul de intrerupere V Salveaza starea UCP PC ? f(V)=SCI

Executa instructiunea curenta

UCP

INTE Vi

Da

Nu

BD

CI

CIa

CIi

CI1CI0

Vi

INTA

INT

INTA

INTA

1

1

b

a

Page 12: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

22

- invalidarea întreruperilor (INTE ? 0), cu scopul prevenirii întreruperii subrutinei deservire de catre alte întreruperi (observam ca acest lucru este posibil, daca utilizatorul plaseazaîn subrutina SCI o instructiune de validare (EI));

- confirmarea acceptarii (INTA? 1); semnalul INTA aplicat la intrarea lui CINT(joaca rol de comanda READ) indica cererea vectorului de întrerupere de catre UCP. CINTlivreaza pe BD vectorul Vi presupus în particular ca un cod cu 8 biti:

- citirea vectorului Vi ;- salvarea starii UCP, cu scopul memorarii punctului de întrerupere al programului în

vederea reluarii ulterioare a executiei. Minimul de informatii necesare a fi salvat îl constituieadresa de reluare (? ? 1), adica valoarea curenta a contorului de program PC. Alte date caredefinesc starea UCP sunt indicatorii conditionali (flag-urile) si valorile continute în registreleUCP. Salvarile se executa prin scrierea datelor în vârful stivei ;

- încarcarea lui PC cu valoarea adresei de salt (SCIi), obtinuta ca o functie f(Vi).Functia f difera pentru diverse ?P .

- executia instructiunii curente; aceasta va fi prima instructiune din subrutina deservire; în continuare se executa celelalte instructiuni din subrutina;

- reluarea programului întrerupt (de la adresa ? ? 1) prin executia instructiuniiRETURN (ultima din subrutina de servire).

Subrutina pentru salvarea întreruperii

Structura tipica a acestei subrutine este cea din figura 2.5 b, fiind determinata demodul în care UCP raspunde la întreruperi.

Salvarile suplimentare si restabilirile corespunzatoare de la sfârsitul subrutinei au cascop refacerea starii UCP la sfârsitul subrutinei de servire, pentru reluarea nealterata aprogramului întrerupt. Ele se executa prin instructiuni de scriere în stiva, respectiv deextragere din stiva; numarul de date manevrate astfel este stabilit de utilizator.

Efectul cumulat al salvarilor automate (PC ? eventual flag-uri) efectuate de UCP si celal salvarilor scrise explicit în subrutina de servire este comutarea contextului de lucru al UCP;înaintea revenirii în programul întrerupt se restabileste acest context.

O solutie limita ar fi fost salvarea automata de catre UCP a starilor tuturor registrelorposibil a fi alterate în subrutina. Ar apare însa un consum al timpului de prelucrare de multeori inutil, daca în subrutina de servire nu se modifica decât o mica parte a acestor valori.

Volumul de date salvate automat de catre UCP la acceptarea unei întreruperi reprezintaun compromis între cresterea timpului mediu de comutare a contextului si necesitatea cautilizatorul sa prevada explicit un numar mare de salvari în subrutinele de servire.

Exemple.Se salveaza automat în stiva continuturile registrelor:I8080,8085,Z80:PCMC6800;PC, index, acumulatoare flag-uriI8086, 8088: registrul segment de cod, numaratorul de instructiuni, flag-uri.În subrutina de servire pot apare optional anularea CI, daca dispozitivul întrerupator nu

executa automat acest lucru si revalidarea întreruperilor înaintea întoarcerii în programulîntrerupt .

Instructiunea EI este astfel proiectata, încât unitatea de comanda a UCP nu va acceptanoi întreruperi decât dupa executia instructiunii urmatoare, dând astfel posibilitatea executariineîntreruptibile a instructiunii RETURN.

Page 13: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

23

2.5.Exemple de porturi I/E cu posibilitati de lucru în întreruperi

Circuitele PI/E de tip paralel, sunt utilizate frecvent în sisteme bazate pe ?P Z 80,I8080, I8085, I8086, I8088 etc.

Circuitul port paralel I8255A

Circuitul INTEL I8255A, este un port paralel triplu, realizat în tehnologie N-MOS, cuinterfata TTL, în capsula cu 40 de pini, alimentat la ? 5 V. Circuitul se conecteaza simplu însisteme bazate pe ?P I8080, 8086, 8088.

Fig.2.6

PORT A

PC4-PC7

PA0-PA7

PORT C

PC0-PC3

PORT C

PORT B

PB0-PB7

A1

A0

RD

WR

ALIMENTARE

GND

+5 V

LOGICA DECOMANDA

GRUPA

BUS DE DATEINTERN

LOGICA DECOMANDA

GRUPB

BUFFERBUSS DATE

D0-7

Page 14: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

24

? Caracteristicile principale ale circuitului I8255A

I8255A prezinta urmatoarele caracteristici:- contine trei porturi paralele A,B si C, independente, cu câte 8 biti totalizând 24 pini

I/E, care pot fi programate în doua grupuri de câte 12.- pinii portului C pot fi utilizati ca intrari/iesiri pentru semnale de comanda a

transferului asociate celorlalte porturi (A si B), pentru realizarea de transferuri cu comandaconditionata total si generatoare de întreruperi catre UCP;

- exista trei moduri de lucru (selectabile prin programarea circuitului):- modul 0: intrari/iesiri pentru A, B, C, pe octet fara semnale de comanda a transferului;- modul 1: intrari/iesiri (A, B) însotite de semnale de comanda pe pinii portului C;- modul 2: transfer bidirectional pe octet (numai portul A), comandat cu ajutorul a 5

semnale pe pinii portului C.- bitii portului C pot fi setati/resetati individual prin comenzi separate.

Schema bloc a lui I8255A este data în figura 2.6. Interfata cu UCP este de tipul descrisîn paginile anterioare. Semnalele prin care UCP comunica cu registrele din I8255A sunt: D0-7

- date; A0, A1, CS - selectie (vezi fig. 2.1); RD,WR,RESET - comenzi. UCP “vede” acestcircuit ca pe un set de patru porturi I/E - 3 de date si unul de comanda, în spatiul adreselor I/E.

Logica de comanda separa circuitele porturilor propriu-zise în doua grupuri: A : PORTA si PORT C (HIGTH) - (PC7-PC4); B : PORT B si PORT C (LOW) - (PC0 - PC3).. Registrele de date sunt bidirectionale (d.p.d.v. al UCP); registrul de comanda estenumai port de iesire pentru UCP.

Portul A contine un latch/buffer de iesire/intrare si un latch de intrare, cu câte 8 biti.Portul B contine un latch/buffer de intrare/iesire si un buffer de intrare,cu câte 8 biti. Portul Ccontine un latch/buffer de iesire si un buffer de intrare (fara latch). Portul C poate fi comandatseparat pentru cele doua grupuri de câte 4 biti.

? Functionarea circuitului I8255A

Modul 0. In acest mod oricare din porturile A, B, C pot fi configurate ca intrari sauiesiri. Nu se utilizeaza semnale de comanda a transferului. Datele sunt scrise sau citite înporturi la initiativa lui UCP. Caracteristicile modului 0 sunt :

- doua porturi ? 8 biti si doua porturi ? 4 biti;- oricare dintre porturi poate fi I sau E;- iesirile sunt cu memorie;- intrarile sunt fara memorie (UCP preia datele gasite pe intrari în momentul citirii);- sunt posibile 16 combinatii; de exemplu, A - iesire, B - iesire, C - intrare este o

combinatie, etc.

Comanda întreruperilor

În modurile 1 sau 2, se pot utiliza pini ai portului C pentru generarea de întreruperispre UCP. Grupurile A si B dispun de doi bistabili numiti INTE A si INTE B (INTerruptEnable) pentru controlul întreruperilor asociate porturilor A sau B. Ei pot fi setati (pentruvalidare) sau resetati (invalidare) prin facilitatea de comanda pe biti individuali pe portul C :PC4 sau PC5 pentru INTEA si PC2 pentru INTEB ;(PC4 ? 1/0) ? (INTEA ? 1/0) ; (PC2 ? 1/0) ? (INTEB ? 1/0).

Page 15: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

25

Modul 1. În figura 2.7 sunt date schemele echivalente si diagramele de timp pentrufunctionarea:

- port A - intrare, cu semnalele de protocol IBFA ? PC5 (Input - Buffer Full) - iesireapentru semnalarea prezentei datei în buffer si STBA ? PC2 (strobe) - intrare de înscriere înlatch-ul de intrare. PC3 serveste ca iesire de întrerupere INTRA, pentru a informa UCP ca s-auprimit date în port .

- port B - iesire, cu semnalele de protocol OBFB ? PC1 (Output Buffer Full) - iesireindicatoare a prezentei datei valide la iesire siACKB ? PC2 (ACKnowledge) - intrare de confirmare a receptionarii datei de catre periferic.

Ambele porturi pot genera întreruperi: INTRA ? 1 dupa înscrierea datei în PA0-7;INTRB ? 1 dupa prelucrarea datei de catre periferic.

Modul 2. Se utilizeaza portul A ca port de date bidirectional si 5 biti din portul Cpentru semnale de comanda. Portul A este prevazut cu circuite latch pe intrare si pe iesire.

Semnalele de comanda sunt:- INTRA ? iesire de întrerupere pentru ambele operatii (I si E);- OBF si ACKA - pentru transferul de iesire; ACKA constituie si semnal de validare a

iesirii portului A;- INTE 1 - asociat cu OBF si controlat de operatia bit set/reset pe bitul PC6;- IBFA si STBA - pentru transferul de intrare;- INTE 2 - asociat cu IBF si controlat de operatia bit set/reset pe bitul PC4.În figura 2.8 este data schema echivalenta si diagrama de timp pentru transferul

bidirectional.

Fig. 2.7. Functionarea circuitului I8255A în modul 1 (Portul A — intrare. portul B —iesire): a) schema echivalenta; b)diagrame de timp.

PORT-A (mod 1)- intrare

PC3

INTEA

PC5

PC4

0-7PA

6,7

RDPC

2

8

INTRA

IBFA

I/E

STBA

PORT-B(mod 1)- iesire

PC0

INTEB PC2

PC1

0-7PB

WR

8

INTRB

INTRB

ACKB

OBFB

b

a

tHtS

STBA

PA0-7

RD

INTRA

IBFA

periferie)(Date de la

DATAVALIDA DATA VALIDA

WR

OBFB

ACKB

0-7PB

Page 16: 2.OPERATIILE DE INTRARE/IESIRE - · PDF filepentru marirea duratei ciclului masina. Semnalele de interfata ale PI/E cu UCP ... 8251 ? interfata de comunicatie serie sincrona/asincrona,

26

Fig. 2.8. Functionarea circuitului I8255A în modul 2 (Portul A ? bidirectional): a:)schema echivalenta; b) diagrama de timp a transferului.

INTE1

INTE2

PC5

PC4

PC6

PC7

PC3

ba

tKDtADtHtS

PA2-0

PA0-7

IESIREDATE DE

INTRAREDATE DE

INTRA

INTR

STB

PA0-7

RD

IBF

WR

OBF

ACK

8

STBA

I/E

IBFA

OBFA

ACKA

3

WR

RD