lab_ac8

15
Magistrala VME Magistrala VME (Versa Module Eurocard) provine din magistrala Versabus a firmei Motorola, care a fost utilizata la primele sisteme bazate pe procesorul 68000. Ulterior, magistrala Versabus a fost adaptata pentru formatul placilor dub lu Eurocard (160 x 200 mm), format devenit standard pentru cal- culatoarele industriale. Noua magistrala, proiectata în colaborare cu firmele Mostek, Signetics/Philips si Thompson CSF, a fost denumita VME, fiind anuntata în anul 1981. Performantele ridicate sunt asigurate prin asincronismul magistralei, ceea ce permite diferitelor componente sa functioneze la viteza corespunzatoare tehnologiei utilizate. În practica, limita superioara este de ordinul a 100 ns pentru un ciclu de magistrala, deoarece peste aceasta limita apar nesimetrii (bus skew) si alte probleme similare. Cu un transfer de 4 octeti la fiecare 100 ns, rezulta o rata de transfer de 40 MB/s. Fiabilitatea magistralei este asigurata prin proiectarea mecanica si protocolul logic. Spre deosebire de conectorii calculatoarelor IBM PC, se utilizeaza conectori formati din pini metalici. Desi solutia este mai scumpa, se elimina astfel conexiunile necorespunzatoare, care reprezinta una din principalele surse de probleme la sistemele de calcul. Exista linii ale magistralei care se pot utiliza pentru autotest si raportarea starii. Magistrala VME face parte dintr-o familie de trei magistrale proiectate pentru o gama larga de sisteme de calcul, de la mici sisteme de dezvoltare la sisteme multiprocesor. De exemplu, Figura 1(a) prezinta un sistem minimal, format din trei placi VME, câte una pentru UCP, memorie si un controler de I/E. Figura 1. Sisteme cu magistrala VME: a) Sistem minimal; b) Sistem multiprocesor. Figura 1(b) prezinta un sistem multiprocesor. Fiecare procesor are o memorie locala la care se conecteaza printr-o magistrala VSB (VME Subsystem Bus pt extensii ale dezvoltatorilor). Daca se pastreaza programul si datele locale în memoriile locale, magistrala VME va fi utilizata numai de instructiunile care fac acces la memoria globala partajata. Astfel, rata de transfer globala poate depasi limita de 40 MB/s impusa de tehnologia VME.

Upload: constantin-alexandru

Post on 16-Nov-2015

7 views

Category:

Documents


1 download

DESCRIPTION

Automatica si Calculatoare

TRANSCRIPT

  • Magistrala VME Magistrala VME (Versa Module Eurocard) provine din magistrala Versabus a firmei Motorola, care a fost utilizata la primele sisteme bazate pe procesorul 68000. Ulterior, magistrala Versabus a fost adaptata pentru formatul placilor dub lu Eurocard (160 x 200 mm), format devenit standard pentru cal- culatoarele industriale. Noua magistrala, proiectata n colaborare cu firmele Mostek, Signetics/Philips si Thompson CSF, a fost denumita VME, fiind anuntata n anul 1981.

    Performantele ridicate sunt asigurate prin asincronismul magistralei, ceea ce permite diferitelor componente sa functioneze la viteza corespunzatoare tehnologiei utilizate. n practica, limita superioara este de ordinul a 100 ns pentru un ciclu de magistrala, deoarece peste aceasta limita apar nesimetrii (bus skew) si alte probleme similare. Cu un transfer de 4 octeti la fiecare 100 ns, rezulta o rata de transfer de 40 MB/s.

    Fiabilitatea magistralei este asigurata prin proiectarea mecanica si protocolul logic. Spre deosebire de conectorii calculatoarelor IBM PC, se utilizeaza conectori formati din pini metalici. Desi solutia este mai scumpa, se elimina astfel conexiunile necorespunzatoare, care reprezinta una din principalele surse de probleme la sistemele de calcul. Exista linii ale magistralei care se pot utiliza pentru autotest si raportarea starii.

    Magistrala VME face parte dintr-o familie de trei magistrale proiectate pentru o gama larga de sisteme de calcul, de la mici sisteme de dezvoltare la sisteme multiprocesor. De exemplu, Figura 1(a) prezinta un sistem minimal, format din trei placi VME, cte una pentru UCP, memorie si un controler de I/E.

    Figura 1. Sisteme cu magistrala VME: a) Sistem minimal; b) Sistem multiprocesor. Figura 1(b) prezinta un sistem multiprocesor. Fiecare procesor are o memorie locala la care se conecteaza printr-o magistrala VSB (VME Subsystem Bus pt extensii ale dezvoltatorilor). Daca se pastreaza programul si datele locale n memoriile locale, magistrala VME va fi utilizata numai de instructiunile care fac acces la memoria globala partajata. Astfel, rata de transfer globala poate depasi limita de 40 MB/s impusa de tehnologia VME.

  • De exemplu, un sistem multiprocesor cu 16 UCP, fiecare UCP solicitnd un cuvnt de 4 octeti la fiecare 200 ns, necesita o rata de transfer de: (4 x?1/200 x 109) x 16 B/s = 320 MB/s

    Daca 90% din aceste accesuri se fac la memoria locala (pentru ncarcarea instructiunilor, citirea/scrierea datelo r locale), cu o magistrala VME si 16 magistrale VSB se poate asigura aceasta rata.

    Magistrala seriala VMS, care functioneaza independent de celelalte doua magistrale, poate fi utilizata pentru comunicare si sincronizare ntre procesoare, n paralel cu transferurile de date pe magistrala principala. Structura functionala Aceasta structura consta din logica de interfata, patru grupuri de linii numite magistrale, si o colectie de module functionale asociate cu acestea.

    Magistrala pentru transferul de date Consta din 32 linii de date, 32 linii de adrese, 6 linii de modificare a adresei, care definesc tipul ciclului de magistrala, si 5 linii de control. Modulele functionale ale acestei magistrale cuprind modulele master si slave, un modul monitor si un modul de tip ceas. Modulul master initiaza cicluri de transfer pentru a transfera datele cu modulul slave. Modulul slave detecteaza ciclurile de transfer initiate de un master, si daca acele cicluri specifica participarea sa, transfera datele la sau de la modulul master.

    Monitorul urmareste transferurile de date, n scopul detectarii accesu- rilor la locatiile care i-au fost asignate pentru a fi urmarite. n cazul n care apare un acces la o asemenea locatie, monitorul poate genera o ntrerupere. Daca, de exemplu, procesorul placii A scrie ntr-o locatie a memoriei globale care este urmarita de monitorul placii B, procesorul placii B va fi ntrerupt.

    Ceasul masoara durata fiecarui transfer, si termina transferul daca acesta dureaza un timp prea mare. Este util n cazul n care se adreseaza o locatie inexistenta sau un modul slave inexistent. Se evita astfel blocajul.

    Magistrala pentru transferul de date dispune de linii nemultiplexate pentru adrese si date. Aceasta asigura cresterea performantelor la executarea ciclurilor de transfer singular, cnd se transmite o adresa, dupa care se citeste sau se scrie data.

  • Magistrala pentru ntreruperi Consta din 7 linii de cerere de ntrerupere, IRQ 1 .. IRQ 7 , o linie de achitare a ntreruperilor, IACK , si o conexiune de tip daisy chain pentru achitarea ntreruperilor. Deoarece pot exista mai multe UCP, liniile de cerere pot fi partitionate ntre mai multe controlere de ntreruperi, fiecare controler gestionnd anumite linii si genernd semnalele de ntrerupere pentru anumite UCP.

    Sursa de ntrerupere genereaza o cerere de ntrerupere pe una din liniile de cerere. Atunci cnd cererea este achitata de un modul de gestiune a ntreruperii, sursa de ntrerupere furnizeaza 1, 2 sau 4 octeti de stare sau identificare n cadrul unui ciclu special de magistrala, octeti care permit servirea ntreruperii.

    Conexiunea de tip daisy chain pentru achitarea ntreruperilor va fi activata atunci cnd un modul de gestiune a ntreruperii achita o cerere de ntrerupere. Aceasta conexiune asigura ca un singur modul sa raspunda cu octetii de stare sau identificare atunci cnd au fost generate mai multe cereri. Magistrala de arbitraj n cadrul procesului de arbitraj este selectat modulul master sau modulul de gestiune a ntreruperilor care va putea utiliza magistrala pentru transferul de date. Magistrala de arbitraj consta din 4 linii de cerere a magistralei, BR 0 .. BR 3 , 4 linii de acordare, BG 0IN .. BG 3IN , si alte doua linii numite Bus Busy ( BBSY ) si Bus Clear ( BCLR ).

    Exista un modul de cerere a magistralei, aflat pe aceeasi placa cu un modul master sau modul de gestiune a ntreruperii. Dupa efectuarea cererii, se asteapta achitarea acesteia de catre arbitru, dupa care modulul de cerere preia controlul asupra magistralei prin activarea liniei Bus Busy, dezactiveaza cererea si indica modulului master faptul ca magistrala este disponibila.

    Arbitrul poate avea o facilitate de time-out, care permite retragerea utilizarii magistralei daca modulul solicitant nu ncepe utilizarea magistralei n timpul prestabilit. Aceasta asigura ca magistrala nu va fi blocata ca rezultat al unui semnal tranzitoriu pe linia de cerere. Arbitrul poate activa linia Bus Clear daca detecteaza o cerere de prioritate mai ridicata fata de cea a modulului care utilizeaza magistrala n acel moment, acordnd magistrala modulului mai prioritar. Magistrala utilitara Contine doua linii pentru semnale de ceas, o linie de resetare a sistemului, o linie de date pentru magistrala seriala, o linie de detectare a caderii tensiunii de alimentare si o linie pentru indicarea a unei erori de sistem.

    Modulul de ceas al sistemului furnizeaza un semnal de ceas SYSCLK de 16 MHz, util pentru diferite functii care necesita o referinta de timp. Acest semnal nu se utilizeaza pentru delimitarea ciclurilor de magistrala.

    Pentru magistrala seriala VMS exista un semnal de ceas SERCLK care asigura sincronizarea operatiilor pe aceasta magistrala. Viteza de transfer pe magistrala seriala este de 32 Mbiti/s, dar se poate utiliza si o viteza de 16 sau 8 Mbiti/s. Protocolul acestei magistrale este complet independent de magistrala VME.

  • Starea sursei de alimentare este urmarita de un modul monitor, iar atunci cnd se detecteaza o tensiune n afara limitelor admise, monitorul utilizeaza linia prevazuta n acest scop ( ACFAIL ) pentru a avertiza toate placile conectate la magistrala n vederea pregatirii caderii tensiunii (graceful shutdown).

    La detectarea unei erori de catre o placa conectata la magistrala VME, aceasta poate utiliza o linie speciala ( SYSFAIL ) pentru a indica celorlalte module aparitia acestei erori. Cicluri de magistrala Specificatiile VME definesc cinci tipuri de cicluri de transfer si doua cicluri suplimentare. Ciclurile de transfer se pot utiliza pentru transferul datelor de 8, 16 sau 32 de biti. Ciclurile de citire si scriere ncep prin transmiterea unei adrese si a unui cod de modificare a adresei, care indica tipul ciclului de magistrala. Sunt permise si transferuri nealiniate, de exemplu 4 octeti ncepnd de la o adresa impara.

    Masterul detecteza trecerea in high a IACK si depune codurile AM[0-5] pe

    magistrala Dupa 35 ns de la stabilizarea datelor Masterul pune Adress Strobe pe low pentru a indica existenta unei adrese valide pe magistrala

  • Master depune datele pe magistrala apoi asteapta minim 35 ns inainte de activarea Data Strobe care indica catre slave ca exista date valide pe magistrala depuse de master. Daca slave a preluat datele, acesta va anunta masterul prin intermediul activarea Data Acknowledge Transfer incheiat

    Ciclurile de transfer pe blocuri Se utilizeaza pentru citirea sau scrierea unui bloc de maxim 256 octeti. Acestea permit unui modul master sa adreseze o singura locatie si apoi sa acceseze acea locatie si locatiile urmatoare, fara a transmite informatii suplimentare de adresare. La initierea unui asemenea ciclu de catre un master, modulul slave memoreaza adresa ntr-un numarator de adrese, ea fiind incrementata ulterior si utilizata la transferurile ulterioare.

    Lungimea blocurilor transferate este limitata la 256 de octeti. Motivul este simplificarea proiectarii placilor de memorie si reducerea timpului de acces la modulele de memorie. Daca nu ar exista aceasta limitare, toate modulele de memorie ar trebui sa memoreze adresa de nceput a blocului, si apoi sa incrementeze aceasta adresa n fiecare ciclu. Adresa incrementata ar trebui apoi decodificata de fiecare modul, pentru a testa daca adresa a ajuns n propria zona de adrese. Aceasta decodificare ar creste timpul de acces.

    Prin limitarea introdusa, daca un modul de memorie are o dimensiune de cel putin 256 octeti, iar prima adresa se afla n propria zona de memorie, urmatoarele se vor afla de asemenea n aceasta zona. Deoarece numai cei 7 biti LSB. ai adresei se vor modifica n timpul unui transfer, liniile superioare de adresa pot fi decodificate o singura data, la nceputul ciclului.

  • Ciclurile de citire -modificare-scriere Asigura o operatie indivizibila de citire si scriere a unei locatii, fara a permite unui alt master accesul la acea locatie nainte de terminarea operatiei. Aceste cicluri sunt utile n sistemele multiprocesor, unde trebuie partajate anumite resurse, unele locatii de memorie fiind utilizate pentru functii semafor. Trebuie sa se asigure ca o resursa utilizata de un anumit proces sa nu fie utilizata de un alt proces n acelasi timp. Un asemenea ciclu este similar cu un ciclu de citire urmat de unul de scriere, dar nu se permite acordarea magistralei de date unui alt modul ntre cele doua cicluri. Ciclurile fara transferuri de date Constau doar din transmiterea unei adrese. Rolul acestui ciclu este de a permite unui modul master sa anunte ca va solicita n scurt timp continutul memoriei de la o anumita adresa. La o cerere ulterioara, memoria va putea raspunde fara ntrziere, evitndu-se starile de asteptare. Se poate suprapune astfel un ciclu cu cel urmator. Ciclurile de achitare a unei ntreruperi Sunt initiate de modulele de gestiune a ntreruperilor n scopul citirii informatiilor de stare sau identificare de la un modul care a solicitat o ntrerupere.

    n Figura 2 se prezinta un ciclu de citire de 32 de biti [18]. La nceputul unui transfer, dispozitivul master depune adresa pe liniile de adrese A0-A31 si activeaza semnalele de modificare a adreselor AM0-AM5, care definesc tipul ciclului de magistrala. Daca se efectueaza un transfer com plet de 32 de biti, se activeaza de asemenea semnalul LWORD. Acest semnal defineste, mpreuna cu tipul ciclului, dimensiunea datelor transferate.

    Dupa stabilizarea semnalelor A0-A31, AM0-AM5 si LWORD , dispozitivul master activeaza semnalul AS (Address Strobe) pentru a indica dispozitivului slave faptul ca adresa este valida si poate fi memorata. Semnalul WRITE va fi dezactivat daca se efectueaza o citire, si va fi activat daca se efectueaza o scriere. n final, dispozitivul master activeaza semnalele DS 0 - DS 1 (Data Strobe) pentru a indica dispozitivului slave ca asteapta datele.

    Pe baza semnalelor DS 0 , DS 1 , LWORD si A1 se determina octetul sau octetii necesari din cadrul cuvntului selectat. Dispozitivul slave sesizeaza activarea semnalelor DS 0 - DS 1 si depune datele pe liniile D0-D31. Apoi activeaza semnalul DTACK (Data Acknowledge) pentru a semnala depunerea datelor.

  • Figura 2. Ciclu de citire la magistrala VME.

    Dispozitivul slave sesizeaza activarea semnalului DTACK, preia datele si dezactiveaza semnalele care au fost activate la nceputul ciclului. Dezactivarea semnalelor DS 0 - DS 1 determina ca dispozitivul slave sa dezactiveze semnalul DTACK, terminndu-se ciclul. Arbitrajul de magistrala

    Se utilizeaza o combinatie ntre arbitrarea centralizata si cea distribuita. Exista un arbitru de magistrala amplasat pe prima placa, cu rolul de a acorda magistrala pentru o cerere de un anumit nivel de prioritate. n cadrul nivelului respectiv, un modul va fi selectat prin utilizarea unei conexiuni n lant ntre module. Dintre algoritmii de arbitraj posibili, specificatiile VME descriu trei:

    arbitraj pe baza de prioritati; arbitraj round robin; arbitraj cu un singur nivel.

  • Magistrala PCI (Peripheral Component Interconnect)

    La inceputul unui transfer, se precizeaza adresa de inceput a blocului de date, dupa care datele sunt transferate de la adrese consecutive fara precizarea adresei. Nu exista limita privind lungimea ciclului de transfer in rafala.

    Magistrala permite specificarea a trei tipuri de adrese (spatii de adresare) : memorie, intare/iesire si configurare. Spatiul de configurare al unui dispozitiv PCI contine informatii referitoare la tipul dispozitivului, producator, caracteristici constructive, registru pentru adresa de baza, pentru latenta, etc. Aceste informatii sunt utilizate la initializarea sitemului pentru configurarea automata a placilor PCI (tehnica plug-and-play). La initializare fiecare placa primeste o adresa de baza si eventual un nivel de intrerupere. Placile pot contine o memorie ROM cu programe pentru initializarea si utilizarea eficienta a placii.

    Magistrala permite cuplarea mai multor unitati master. Arbitrarea se realizeaza centralizat, de obicei de catre unitatea care face legatura dintre magistrala PCI si magistrala procesorului gazda. Fiecare dispozitiv master PCI primeste la initializare un timp de latenta. Acest parametru indica timpul maxim de pastrare a controlului magistralei de catre dispozitivul respectiv.

    Magistrala PCI se poate adapta usor la magistralele noilor variante de procesoare ; in acest scop se utilizeaza un circuit specializat de tip bridge care face legatura intre cele doua magistrale.

    Datorita performantelor ridicate, magistrala PCI a fost adoptata ca standard de multe firme producatoare de componente si are sanse mari de a se mentine si in viitor in topul magistralelor. Structura magistralei PCI

    Magistrala PCI a fost realizata n 1990 de INTEL pentru procesoarele PENTIUM. INTEL a cedat specificatiile domeniului public, ceea ce explica raspndirea acestei magistrale. PCI este o magistrala sincrona care poate lucra cu 32 sau 64 de biti de date, la o viteza de maximum 2,112 GBps. Structura unui sistem cu magistralei PCI este data n Fig. 3.

    Fig. 3. Structura unui sistem cu magistrala PCI

  • Magistrala PCI are o arhitectura de tip "mezanin", din cauza apropierii de procesor. n Fig. 3.6. au fost notate si frecventele de tact la care functioneaza cele doua magistrale, pentru a se putea observa cresterea de viteza la PCI. Magistrala ISA a fost pastrata n configuratie din considerente de compatibilitate cu echipamentele existente nca n utilizare. Semnalele magistralei PCI Linii generale CLK - tactul de magistrala PCI, 33MHz-133MHz; RST - semnal de R ES E T, forteaza toate modulele de I/O si semnalele la o stare initiala; AD 0-31 - 32 linii multiplexate pentru adrese si date; C/BE 0-3 - linii multiplexate pentru comenzi de bus sau Byte Enable. n timpul fazei de date arata care din cei 4 octeti de date poarta date semnificative; PAR - contine bitul de paritate pentru liniile AD si C/BE la un un tact de magistrala dupa ce datele sau adresele au fost puse pe magistrala. Dispozitivul MASTER genereaza PAR pentru fazele de adresare si scriere date si dispozitivul tinta pentru faza de citire date;

    FRAME - generat de MASTER-ul curent (initiator) ca sa indice startul unui transfer. Este dezactivat cnd initiatorul ncepe faza finala de date; IRDY - initiator pregatit, generat de MASTER-ul curent. La citire indica faptul ca MASTER-ul este gata sa accepte date, iar la scriere, pe AD sunt prezente date valide; TRDY - tinta pregatita, generat de modulul selectat (tinta). La citire, pe AD sunt prezente date valide, la scriere indica faptul ca tinta este gata sa accepte date; STOP - tinta curenta doreste ca initiatorul sa termine transferul curent; LOCK - indica o operatie care poate consta n mai multe transferuri; IDSEL - se foloseste ca Chip Select pe durata initializarilor pentru citire/scriere; DEVSEL - activat de tinta cnd si recunoaste adresa; REQ - indica arbitrului ca un dispozitiv solicita utilizarea magistralei. Este o linie punct cu punct specifica fiecarui slot PCI; GNT - indica dispozitivului care a cerut magistrala ca a primit accesul. Este o linie punct cu punct specifica fiecarui slot PCI; PERR - eroare de paritate detectata de tinta la o scriere de date sau de initiator la o citire de date; SERR - eroare de sistem, poate fi generat de orice dispozitiv pentru a raporta o eroare de paritate la adresare sau un alt tip de eroare; INTA - cerere de ntrerupere; INTB, INTC, INTD - cereri de ntrerupere de la un dispozitiv multifunctional; SBO - indica o modificare n C A C H E; SDONE - indica terminarea unui transfer cu C AC H E-ul. Linii pentru extensia la 64 de biti: AD 32-63 - 32 de linii de date si adrese multiplexate; C/BE 4-7 - la adresare liniile contin date despre tipul de ciclu de bus. n faza de date indica care din cei 4 octeti de date poarta date semnificative; REQ64 - indica o cerere de transfer pe 64 de biti; ACK64 - indica faptul ca tinta va face un transfer pe 64 de biti;

  • PAR64 - bitul de paritate pe liniile AD 32-64 si C/BE un tact mai trziu. Linii pentru testarea JTAG conform standardului IEEE 149.1: TCK - Test Clock, ceas pentru testare cu date seriale de intrare sau de iesire n/din dispozitiv; TDI - Test Input, date de intrare seriale n dispozitiv; TDO - Test Output, date seriale de iesire din dispozitiv; TMS - Test Mode Select, folosit pentru controlul testarii; TRST - Test Reset, se initializeaza portul de test. Semnificatia codurilor generate prin semnalele C/BE0..3

    C/BE0..3 Tip Comanda 0000 chitare cerere de intrerupere 0001 Ciclu special 0010 Citire i/e 0011 Scriere i/e 0100 Rezervat 0101 Rezervat 0110 Citire memorie 0111 Scriere memorie 1000 Rezervat 1001 Rezervat 1010 Citire configuratie 1011 Scriere configuratie 1100 Citire multipla memorie 1101 Ciclu de adresa duala 1110 Citire linie de memorie 1111 Scriere memorie si invalidare

    Tabel 4 Structura spatiului de configurare a unui dispozitiv PCI

    Adresa Bit 31 Bit16 Bit 0 00 Identificator unitate Identificator producator 04 Stare Comanda 08 Cod clasa Rezervat 0C BIST Antet Latenta CLS 10-24 Registru adresa de baza 28-2C Rezervat 30 Adresa de baza a extensiei ROM 34-38 Rezervat 3C LatMax GNTMN Pin-INT Linie-INT 40-FF Disponibil pentru dispozitivul PCI

  • Cicluri de magistrala

    Activitatea magistralei se manifesta sub forma unor transferuri ntre un initiator sau MASTER si o tinta. Dupa ce un MASTER a obtinut controlul magistralei, determina tipul transferului care va urma. n timpul fazei de adresare liniile C/BE informeaza despre tipul ciclului de magistrala. Ciclurile de magistrala sunt: 1. Acceptare ntrerupere ; este un ciclu de citire conceput pentru dispozitivele

    care functioneaza ca si controler de ntreruperi pe PCI. Liniile de adresa nu sunt folosite n faza de adresare, iar n faza de date este indicat vectorul de ntrerupere.

    2. Ciclu special; este folosit de initiator pentru a emite mesaje catre una sau mai multe tinte.

    3. Citire I/O; este un ciclu de transfer de date ntre initiator si un dispozitiv I/O. Fiecare dispozitiv I/ O are alocat un spatiu propriu de adresare.

    4. Scriere I/O 5. Citire din memorie; citirile din memorie se pot executa n salva, pe blocuri, functie

    de modul n care controlerul de memorie gestioneaza transferurile ntre memorie si CACHE. Se citeste o jumatate de linie de CACHE sau mai putin, n salva sunt unul sau doua cicluri de citire.

    6. Citire o linie din memorie; se citeste mai mult de o jumatate de linie de CACHE dar mai putin de trei linii, n salva sunt ntre 3 si 12 cicluri de citire.

    7. Citire multipla din memorie; se citesc mai mult de 3 linii de CACHE, n salva sunt mai mult de 12 cicluri de citire.

    8. Scriere n memorie 9. Scriere n memorie si invalidare; scrierea se poate face de asemenea n salva.

    Se respecta modul WRITE BACK pentru scrierea din CACHE n memorie; 10. Citire configuratie; fiecare dispozitiv PCI include un set de 256 de registre interne

    care se folosesc n faza de configurare. n acest tip de ciclu, dispozitivul MASTER poate citi registrele de configurare.

    11. Scriere configuratie; n acest tip de ciclu, dispozitivul MASTER poate modifica registrele de configurare.

    12. Ciclu de adresare dual; este folosit de initiator pentru a arata ca este o adresare pe 64 de biti.

    Orice transfer de date pe PCI consta ntr-o faza de adresare si una sau mai multe faze de date. n Fig. 4. este aratat un transfer de citire.

    A. Dendata ce MASTER-ul are controlul magistralei el poate ncepe transferul activnd FRAME. Linia ramne activa pna initiatorul termina ultima faza de date. Initiatorul pune adresa pe AD si comanda de citire pe liniile C/BE.

    B. Tinta si recunoaste adresa pe liniile AD. C. Initiatorul cedeaza bus-ul tintei (ncepnd cu tactul 3). Initiatorul schimba

    informatia pe liniile C/BE pentru a indica pe care dintre liniile AD se vor transmite datele de la tinta (1 pna la 4 octeti)

    D. Tinta selectata activeaza DEVSEL pentru a semnaliza ca si-a recunoscut adresa, apoi pune datele pe liniile AD (primul octet) si activeaza TRDY.

    E. n acest exemplu tinta are nevoie de timp pentru a pregati urmatorul octet de date.

  • Fig. 4. Ciclu de citire PCI

    F. Tinta dezactiveaza TRDY pentru a informa initiatorul ca pe urmatorul tact nu vor exista date valide. Ca urmare, initiatorul nu va citi datele la nceputul tactului 5 ci la nceputul tactului 6. S-a inserat astfel o stare de WAIT.

    G. Dupa tactul 6 tinta pune pe bus al treilea octet de date. Presupunem de data aceasta ca initiatorul nu este gata sa preia datele (are de exemplu bufferul plin). Initiatorul dezactiveaza IRDY, ceea ce are ca efect mentinerea datelor de catre tinta un tact suplimentar (datele nu se citesc la nceptul tactului 7 ci la nceputul tactului 8).

    H. initiatorul dezactiveaza semnalul FRAME si activeaza semnalul IRDY, pentru a semnala ca este gata sa finalizeze transferul.

    I. Initiatorul dezactiveaza IRDY, permtnd busului sa treaca n starea initiala. Tinta a detectat dezactivarea semnalului FRAME si dezactiveaza TRDY si DEVSEL.

    Arbitrarea magistralei Pentru a arbitra gestionarea magistralei, PCI foloseste un arbitru central ntr-o configuratie asincrona, cu cereri (REQ) si confirmari (GNT) dedicate, ca n Fig. 5.

  • Fig. 5. Arbitrarea magistralei PCI Observatie: din cauza liniilor dedicate pentru arbitrarea accesului la magistrala, pozitia placilor n sloturile PCI nu este indiferenta, asa cum era la magistrala ISA. n functie de pozitia slotului, placii i se ataseaza un nivel de prioritate. n Fig. 6. se exemplifica mecanismul de arbitrare a doua dispozitive A si B de catre un arbitru.

    Fig. 6.Mecanism de arbitrare PCI

    A. nainte de tactul 1 A a activat cererea de bus REQ A. B. B solicita busul cu REQ B. C. n acelasi timp arbitrul cedeaza busul dispozitivului A (GNT A activ). D. MASTER-ul A, odata ce i este indicat prin GNT A ca are acces la bus, verifica

    IRDY si TRDY. Acestea fiind inactive, deci nu exista un transfer pe bus, activeaza semnalul FRAME si ncepe un transfer prin stabilirea adresei etc.

    E. n tactul 3 arbitrul de bus gaseste 2 cereri active, de la A si de la B. si decide cedarea busului dispozitivului B pentru urmatorul transfer. Activeaza GNT B si

  • dezactiveaza GNT. B nu poate folosi busul pna acesta nu trece n stare inactiva, IRDY si TRDY inactive.

    F. A dezactiveaza FRAME indicnd ca transferul este ultimul transfer. Pune datele pe bus si semnalizeaza cu IRDY. Tinta citeste datele.

    G. La nceputul tactului 5, B gaseste IRDY, FRAME si TRDY inactive si preia controlul busului genernd semnalul FRAME. B dezactiveaza linia REQ B pentru ca avea nevoie de un singur transfer. Controlul busului este din nou cedat dispozitivului A, care si-a mentinut cererea REQ A.

    Ca urmare a necesitatii arbitrarii magistralei si a stabilirii pe liniile C/BE a unor coduri n diferitele faze ale transferului, o placa ce se conecteaza pe PCI nu poate fi att de simpla ca si o placa ISA.

    O schema bloc a unui circuit de interfata PCI echipat cu controllerul de magistrala PCI, PCI9060 (furnizor PLX Technology, http://www.plx-tech.com) este data n Fig. 3.10. O schema completa este data n bibliografie.

    PCI9060 are rolul de a rezolva problema aceesului la magistrala cu REQ si GNT, de a asigura semnalele de dialog la transfer C/BE, FRAME, IRDY, TRDY etc., poate lucra n mod DMA cu DRQ si DACK, de a demultiplexa cele 32 de linii de adrese si date AD 0-31. Datele de configurare sunt nscrise n controller de un EEPROM serial n faza de RESET a calculatorului. PCI 9060 furnizeaza tactul de citire EECLK pentru linia de date citite EEDI.

    Fig. 7. Schema bloc a unui circuit de interfata PCI

    PCI9060 poate gestiona o memorie proprie, cu rolul de memorie tampon ntre EP care se conecteaza pe magistrala PCI si UC

    Intrebari si probleme 1.1 Care sunt avantajele si dezavantajele magistralei ISA in comparatie cu alte magistrale

    utilizate in structura calculatoarelor personale ? 1.2 Pot fi conectate mai multe module master pe o magistrala ISA ? De ce ?

  • 1.3 Cind se recomanda utilizarea unei magistrale seriale ? 1.4 Proiectati un circuit simplu care sa permita vizualizarea principalelor semnale de pe

    magistrala ISA. Se poate concepe un dispozitiv care sa permita executia instructiunilor ciclu cu ciclu ? De ce nu se utilizeaza in mod curent un astfel de dispozitiv pentru depanarea calculatoarelor de tip PC ?

    1.5 Care sunt avantajele utilizarii magistralei PCI ? 1.6 Proiectati schema bloc a unui analizor de stari care sa permita memorarea si

    vizualizarea unei secvente de stari pentru semnalele de pe magistrala ; declansarea memorarii se va face la o anumita configuratie a semnalelor de intrare (ex : incepind de la o anumita adresa, de la o anumita data, de la un semnal de comanda, etc.).