LAB_AC7

7
Operatii pe magistrale 1. Transferuri simple, punct la punct Toate microsistemele au o dependenta ierarhica puternica. Procesorul master citeste si scrie cu fiecare dispozitiv (fig. 1). master Processor MO slave Link I/O slave Periferice drivers Fig. 1.Conectarea la magistrala unica Un ciclu WR simplu (fig. 2.a) foloseste un numar de linii de date si o linie de sincronizare (WRS). T setup (ts) si t hold (th), ca si tw depind de tehnologie si de natura statica sau dinamica (edge triggered) a elementelor de memorie. Di RDS Data WRS ts tw th (a) ciclu WRITE WRS (c) read Di ST Data RDS Di ciclu READ ta (b) WR/RD write (d) read Fig. 2.a,b,c,d. Cicluri pe magistrala, cu doua semnale de control Pentru un ciclu RD, ca raspuns la o cerere (RDS) se obtine data dupa un timp de acces t a (fig. 2.b). De regula, magistrala se afla într-o stare neutra, inactiva, atât timp cât nu s-a realizat selectia. Astfel, se poate defini un timp de activitate t on si unul de inactivitate, t off . Procesoarele executa atât cicluri RD, cât si cicluri WR. Liniile de date Di pot fi multiplexate daca iesirile sunt de tipul tri-state. Transferurile pot fi controlate pe 2 linii separate, care nu sunt active simultan (fig. 2.c).

description

Automatica si Calculatoare

Transcript of LAB_AC7

  • Operatii pe magistrale 1. Transferuri simple, punct la punct Toate microsistemele au o dependenta ierarhica puternica. Procesorul master citeste si scrie cu fiecare dispozitiv (fig. 1).

    masterProcessor

    MO slave

    Link

    I/O slave Periferice

    drivers

    Fig. 1.Conectarea la magistrala unica

    Un ciclu WR simplu (fig. 2.a) foloseste un numar de linii de date si o linie de sincronizare (WRS). Tsetup (ts) si thold (th), ca si tw depind de tehnologie si de natura statica sau dinamica (edge triggered) a

    elementelor de memorie.

    Di

    RDS

    Data

    WRS

    ts tw th

    (a)

    ciclu WRITE

    WRS

    (c)

    read

    Di

    ST

    Data

    RDS

    Di

    ciclu READ

    ta

    (b)

    WR/RDwrite

    (d)

    read

    Fig. 2.a,b,c,d. Cicluri pe magistrala, cu doua semnale de control

    Pentru un ciclu RD, ca raspuns la o cerere (RDS) se obtine data dupa un timp de acces ta (fig. 2.b).

    De regula, magistrala se afla ntr-o stare neutra, inactiva, att timp ct nu s-a realizat selectia. Astfel, se poate defini un timp de activitate ton si unul de inactivitate, toff.

    Procesoarele executa att cicluri RD, ct si cicluri WR. Liniile de date Di pot fi multiplexate daca iesirile sunt de tipul tri-state. Transferurile pot fi controlate pe 2 linii separate, care nu sunt active simultan (fig. 2.c).

  • Aceasta solutie este preferata de producatori, fiind folosita, de exemplu la magistrala calculatoarelor IBM-PC. O alta solutie este de a avea o linie de strob ST si o linie care indica sensul de transfer (fig. 2.d).

    Toate ciclurile prezentate sunt sincrone, deoarece ciclul de transfer se executa ntr-un interval dat, dependent de durata strobului. Daca dispozitivul slave este prea lent, data poate fi pierduta; este necesar un semnal de feed-beeck. O prima solutie este de a activa semnalul numai cnd ciclul trebuie prelungit-WAIT (fig. 3.a).

    not ready

    ST

    WAIT

    (a)

    ready

    abort

    readyreadyST

    ACK

    NK

    (b)

    Fig. 3.a,b.

    O solutie mai buna, folosita la toate microprocesoarele pe 32 biti este de a astepta un semnal ACK (AcKnowledge) pozitiv, ca raspuns la ST (fig. 3.b). Daca dispozitivul slave nu poate furniza informatia, un ACK negativ, NK (unit bus error) trebuie generat fie de slave, fie de un dispozitiv specializat. Semnalele din fig. 3. si fig. 4. sunt active High. De obicei, ele sunt inversate (active Low), din ratiuni electrice.

    AdresaAdresaAi

    AS

    AK

    Data

    DS

    DKData

    Di

    DS

    DK

    (a)(b)

    Fig. 4 .a,b.Sistem cu magistrale separate de date si adrese si semnale AK,DK.

  • 2. Selectia Procesorul foloseste o serie de linii de adresa - Ai, ca si un ciclu de selectie care activeaza iesirile tri-state ale unui singur dispozitiv la un moment dat. Ciclul de selectie poate fi implementat ca un ciclu WR dedicat, cu un strob de adresa AS si un acknnoledge de adresa, AK. Data strobe, DS, si data acknowledge, DK, sincronizeaza operatia de citire/scriere care urmeaza (fig. 4.a). De obicei, ciclul de selectie se identifica cu ciclul de transfer, folosind aceleasi semnale ca n fig. 3. Transferul este ntrziat datorita decodificatorului, care trebuie sa activeze dispozitivul selectat (fig. 4b). Data acknowledge anticipeaza data valida. Adresele si datele pot fi multiplexate. Aceasta procedura e mai lenta si costisitoare (deoarece necesita address latches), dar economiseste linii, n special la microprocesoarele pe 32 biti. Strob-ul de adresa este numit "address latch enable", ALE, care comanda memorarea adresei n registrele latch (fig. 5.) care se afla fie pe placa slave (magistrala multiplexata), fie pe cea master (magistrala demultiplexata).

    Ai

    MasterALE

    Slave

    ciclu READ

    DiAi/Di

    ciclu WRITE

    Ai/Di

    ALE

    tatw

    RDS

    WRS

    Fig. 5.Sistem cu magistrale de date si adrese multiplexate

    Adresarea geografica este foarte diferita. Scopul ei este de a recunoaste care placa este ntr-un slot dat (pozitie fizica fixa definita prin prezenta unor conectori la magistrala sistemului), pentru a stabili resursele curente ale sistemului. Aceste protocoale de transfer sunt cunoscute ca asincrone, adica semnalele sunt activate imediat ce functia pe care o codifica este valida. n acest mod, se pot conecta pe aceeasi magistrala dispozitive rapide si lente. Viteza de transfer pe magistrala este impusa de dispozitivele mai lente. Magistralele sincrone au un clock central a carui impulsuri se transmit pe o linie a magistralei. Sistemele sincrone pure asigura o perioada de ceas pentru fiecare operatie. Figura 6. prezinta un ciclu RD cu un protocol sincron, folosit la MacIntosh II. Frontul crescator al ceasului declanseaza schimbarea semnalelor pe magistrala.

  • AckIdle IdleStart

    Ciclu READ

    Clock

    (a)

    START

    C/SControl Status

    DateAdreseA/D

    Ack

    (b) Ciclu WRITE

    Ack

    AckIdle IdleStartClock

    START

    C/SControl Status

    Ack

    DateAdreseA/D

    Ack

    Fig. 6.Ciclurile de citire/scriere la Apple MacIntosh II

    La un ciclu RD, semnalul START marcheaza prezenta adresei si a informatiei de control pe liniile magistralei multiplexate. Cnd dispozitivul slave si recunoaste adresa si gaseste data solicitata, depune pe magistrala data si informatia de stare si marcheaza prezenta lor prin activarea lui ACK. Ciclul WR este similar, cu diferenta ca dispozitivele master depun data la urmatorul clock dupa adresa. Lungimea bus-ului si frecventa ceasului trebuie sa se aleaga astfel nct semnalele sa aiba suficient timp sa se propage din orice punct la orice alt punct, naintea ncheierii ciclului de ceas. Deci, magistrale mai scurte pot fi folosite la frecvente mai mari. Cicluri speciale De multe ori, se transfera pe magistrala continutul unor locatii succesive de memorie. Depunerea adresei odata cu incrementarea unui contor este mai eficienta dect trimiterea n permanenta a urmatoarei adrese, n special daca magistrala este multiplexata. Aceasta posibilitate este implementata de magistrale complexe si de cele mai recente microprocesoare pe 32 biti.

  • Se poate citi simultan de la mai multe dispozitive (broad call), dar aceasta functie este costisitoare (linii suplimentare), de aceea nu este frecvent implementata. S-au propus cicluri read modify write la sisteme multi-procesor, care asigura atomicitatea operatiei de scriere (nu poate fi perturbata). 3. Functionarea dispozitivelor slave Dispozitivul slave poate doar solicita un transfer de date prin activarea unei cereri de ntreruperi. Se folosesc linii dedicate: IntReq, implementate cu dispozitive OR-Wired. Ca raspuns, master-ul va lansa o procedura de identificare realizata software (polling) sau cu scheme hard. Exemplu: Implementarea protocolului daisy-chain, care asigura o prioritate ntre cererile de ntrerupere functie de pozitie. Prioritatea scade de la stnga la dreapta (fig. 7).

    1

    2 3

    U?A

    74LS08

    1

    2 3

    U?A

    74LS08

    +5V

    12

    3

    U?A74LS08

    12

    3

    U?A74LS08

    REQ REQ

    ...

    i+1

    GTi+1

    i

    GTi

    Fig. 7.Implementarea protocolului daisy-chain

    4. Operatii multi-master Daca mai multe procesoare trebuie sa foloseasca resurse comune, cererile lor simultane de acces la aceste resurse trebuie arbitrate. Un circuit dedicat, arbitrul, poate fi centralizat sau distribuit. 4.1 Arbitri centrali si distribuiti Cea mai simpla schema de arbitru ar consta ntr-un sistem care scaneaza secvential masterii si distribuie magistrala primului care o solicita. Aceasta procedura este lenta. De aceea se folosesc proceduri asincrone. Daca sunt doua procesoare, schema din fig. 8. da prioritate primului. Daca cererile sunt absolut simultane, circuitul va ezita pentru un interval de timp (stare metastabila) nainte de a acorda prioritatea. Arbitrarea poate fi distribuita; se creste flexibilitatea, scade pretul, dar procesul este mai lent. n acest caz se foloseste schema daisy-chain. Cnd ncheie operatia, master-ul activeaza un semnal grant (GNT) receptionat de fiecare master. Primul master ce solicita o cerere, preia magistrala.

  • Req1

    Gnt1

    Req2

    M1

    Arbitru

    Req1

    Gnt2M2

    1

    2 3

    U?A

    74LS09

    Grant1

    1

    2 3

    U?A

    74LS09

    Req1

    Gnt1

    Req2

    ~~

    ~~~

    stare metastabila

    Gnt2

    Req2

    Grant2

    Fig. 8.Arbitru centralizat pentru doua dispozitive master

    O schema mai simetrica este cea a arbitrului cu auto-selectie folosit de toate magistralele moderne (P896, MicroChannel). Ea foloseste o serie de linii de prioritate OR-Wired, care compara valoarea de pe linii cu valoarea ce se stabileste pe magistrala (fig. 9.).

    Grant

    Comparator

    Master2Req

    Inhibat

    Grant

    Comparator

    Master1

    Inhibat

    Req

    1

    2

    U?A74LS04

    1

    2

    U?A74LS04

    12

    3

    U?A74LS00

    1

    2

    U?A74LS04

    1

    2

    U?A74LS04

    12

    3

    U?A74LS00

    Priority vector

    BusRequest

    BusBusy

    Fig. 9 .Arbitrarea prin auto-selectie

  • Daca vectorii de prioritate nu sunt codificati, comparatorul este simplu, cnd fiecare master are asigurata o linie, ca la magistrala SCSI. O linie comuna de cerere se activeaza la fiecare moment cnd ncepe o faza de arbitrare. Un impuls de ceas semnaleaza cnd se ncheie compararea; master-ul "cstigator" activeaza linia "bus busy" pentru durata transferului de date. 5. Tranzactiile pe magistrala Un acces al procesorului la memorie, prin magistrala sistemului, consta n trei operatii distincte: alocarea (arbitrarea) magistalei, selectia (adresarea) registrelor si unul sau mai multe transferuri. Aceste operatii se pot realiza n secventa sau suprapus, printr-un compromis ntre viteza si dimensiunea magistralei (fig. 10). Pentru un numar dat de linii de magistrala, se pot aloca grupe de linii unor operatii distincte, ceea ce permite executia concurenta.

    Fig. 10.Variante de executie a tranzactiilor pe magistrala sistemului

    6. Selectia modulelor functionale de pe placi Un sistem cu magistrala poate fi configurat n mai multe moduri. Solutia veche consta n fixarea unor jumperi pe fiecare placa si stabilirea unor parametri numerosi ntr-o procedura de initializare. Solutia actuala consta n auto- initializarea sistemului; este vorba de o forma de adresare geografica pentru a identifica placile n sloturi. Fiecare placa poseda o memorie ID-ROM si un decodificator de adrese programabil. 7. Parametrii folositi n compararea magistralelor Adoptarea de catre proiectant a unui standard de magistrala se realizeaza pe baza unor parametri. Cei mai importanti sunt: Tarb= timpul de arbitrare necesar sistemului pentru rezolvarea cererilor multiple. Este echivalent

    cu timpul necesar master-ului sa preia magistrala, presupunnd ca nainte era alt master activ pe magistrala. Daca master-ul nu se schimba, Tarb=0 (se numeste "Release On Request"-ROR). Tm= timpul ct master-ul controleaza magistrala n circumstante normale. Tget= timpul maxim din momentul cnd un modul de prioritate nalta solicita magistrala si pna

    cnd o obtine n conditiile unui sistem ncarcat.