Sunteți pe pagina 1din 18

Avantajele magistralei VL Bus constau n simplitatea arhitecturii i

costul redus. Dezavantajul principal este c la apariia unor procesoare mai performante, logica de interfa trebuie reproiectat pentru acestea. De asemenea,
faptul c nu se definete formatul registrelor de configuraie i adresele acestora
nu permite realizarea unor interfee software unitare pentru dispozitivele conectate la magistral.

3.5.8. Magistrala PCI


3.5.8.1. Prezentare general
n anul 1992, firma Intel a anunat prima versiune (1.0) a unei specificaii pentru o magistral local, denumit PCI (Peripheral Component
Interconnect). Intenia iniial era realizarea unui standard care s permit interconectarea circuitelor rapide pe placa de baz, deoarece cu fiecare generaie
de microprocesoare, Intel trebuia s modifice arhitectura magistralei locale
pentru a mri performanele sistemului, ceea ce implica i modificarea circuitelor de interfa pentru periferice.
Magistrala PCI urma s se conecteze la magistrala local a procesorului prin intermediul unui circuit, special destinat acestui scop. Astfel, la fiecare
schimbare a procesorului i a magistralei locale, trebuia schimbat doar circuitul
de legtur, circuitele de interfa cu perifericele nefiind afectate.
Specificaia PCI iniial nu prevedea conectori de extensie. Intel a actualizat specificaiile PCI pentru ca aceasta s admit i conectori de extensie.
Astfel, magistrala PCI a fost definit detaliat din punct de vedere electric i funcional, ajungnd cea mai utilizat arhitectur de magistral. Versiunea 2.0 a
aprut n 1993, iar versiunea 2.1 n 1995.
Sunt posibile transferuri de 32 sau de 64 bii. n versiunea 2.1, frecvena maxim a ceasului este de 66 MHz, ceea ce permite obinerea unei rate
maxime de transfer de 528 MB/s.
Standardul de extensie a plcii PCI definete o familie de conectori
pentru adaptoare de 5 V sau 3,3 V, cu variante de 32 i 64 de bii. Este de ateptat ca n viitor majoritatea conectorilor de extensie s utilizeze surse de alimentare de 3,3 V n loc de 5 V [14].
Specificaiile PCI permit utilizarea a dou din cele trei metode de conectare la magistrala local a procesorului: conectarea printr-un buffer i conectarea de tip staie de lucru. Datorit avantajelor legate de performane i de
flexibilitate, conectarea de tip staie de lucru este preferat. Se prezint n Figura 3.20 schema bloc a unui sistem cu magistral PCI, utiliznd acest tip de conectare.
104

Magistrala PCI este conectat la magistrala sistem a procesorului prin


intermediul unei puni UCP/PCI, avnd acces direct la memoria principal. n
acest fel, transferurile ntre UCP i memoria cache, respectiv ntre dispozitivele
de I/E i memoria principal pot avea loc simultan. Dispozitivele de I/E de vitez ridicat, ca adaptoarele grafice i adaptoarele de reea, care solicit n msur
redus procesorul, sunt conectate direct la magistrala PCI. Dispozitivele care
trebuie s se conformeze altor standarde de magistral, ca ISA sau SCSI, se
interfaeaz cu magistrala PCI printr-o punte PCI/ISA, respectiv un adaptor
SCSI.
Un sistem poate fi realizat i fr utilizarea punilor de legtur. n
acest caz, toate componentele, inclusiv procesorul i memoria principal, se
interfaeaz direct cu magistrala PCI.

Figura 3.20. Schema bloc a unui sistem cu magistral PCI.

105

3.5.8.2. Semnalele magistralei PCI


Fiecare dispozitiv conectat la magistrala PCI poate funciona fie ca
slave, fie ca master/slave. Un dispozitiv master se mai numete iniiator, iar
unul slave se mai numete int (target). Un dispozitiv int nu poate iniia
transferuri pe magistral.
Pentru a reduce numrul pinilor i dimensiunea conectorilor necesari
pentru unitile compatibile PCI, adresele i datele sunt multiplexate, setul de
linii pentru linii i date fiind notat cu AD. O tranzacie tipic pe magistral implic dou faze. n prima faz se transmite o adres pe liniile AD, iar n faza a
doua se transmit una sau mai multe cuvinte de date pe aceleai linii. Toate operaiile magistralei sunt sincronizate cu ajutorul unui semnal de ceas, astfel c
magistrala este sincron. Sunt prevzute ns semnale care permit inserarea strilor de ateptare de ctre dispozitivele mai lente.

Figura 3.21. Semnalele unui dispozitiv PCI.

n Figura 3.21 se prezint principalele semnale ale unui dispozitiv


master/slave. n partea stng se afl semnalele obligatorii, necesare pentru
transferurile de baz utiliznd cuvinte de maxim 32 de bii. n partea dreapt se
afl semnalele opionale, care permit transferuri de date utiliznd cuvinte de 64
106

de bii, semnale care permit controlul ntreruperilor i executarea altor funcii


mai puin uzuale.
Se descriu n continuare principalele semnale [16].
AD[31:0] (Address/Data)
Reprezint magistrala multiplexat de adrese i de date. n timpul fazei
de adrese, pe aceast magistral se transmite adresa de start a tranzaciei. n timpul fazei de date, pe liniile AD[31:0] se transmit date provenite de la iniiator (la o scriere) sau de la inta adresat (la o citire).

C / BE [3:0] (Command or Byte Enable)


n timpul fazei de adrese aceste linii definesc o comand pe care iniiatorul o utilizeaz pentru a indica tipul tranzaciei necesare. Dintre
comenzile posibile se amintesc citirea din memorie, scrierea n memorie, citirea de la un dispozitiv de I/E, scrierea la un dispozitiv de I/E,
achitarea unei ntreruperi etc. n timpul fazei de date aceste linii sunt
utilizate de iniiator pentru a indica octeii care trebuie transferai din
cadrul cuvntului dublu adresat i grupele de linii ale magistralei AD
care trebuie utilizate pentru transferul datelor.

PAR (Parity)
Reprezint semnalul de paritate par pentru liniile AD[31:0] i
C / BE [3:0]. Paritatea este generat de iniiator dup terminarea fazei
de adrese i dup terminarea fiecrei faze de date la o tranzacie de
scriere. Paritatea este generat de inta adresat dup terminarea fiecrei faze de date la o tranzacie de citire.

FRAME (Cycle Frame)


Este activat de iniiator i indic nceputul i durata unei tranzacii pe
magistral. O tranzacie poate consta din una sau mai multe transferuri
de date ntre iniiatorul curent i inta adresat. Semnalul FRAME este
dezactivat atunci cnd iniiatorul este pregtit s ncheie faza final de
date.

TRDY (Target Ready)


Este activat de dispozitivul int adresat atunci cnd acest dispozitiv
este pregtit pentru un transfer de date (poate executa faza curent de
date). Faza de date este terminat atunci cnd inta activeaz TRDY i
iniiatorul activeaz IRDY la frontul cresctor al semnalului de ceas.
n timpul unei operaii de citire, semnalul TRDY activat indic faptul
c inta a depus date valide pe magistrala de date. n timpul unei operaii de scriere, semnalul TRDY activat indic faptul c inta este pre107

gtit s accepte datele de la iniiator. Sunt inserate stri de ateptare n


faza curent de date pn cnd ambele semnale TRDY i IRDY sunt
activate.

IRDY (Initiator Ready)


Este activat de iniiatorul tranzaciei i semnaleaz momentul n care
iniiatorul este pregtit pentru un transfer de date. n timpul unei operaii de scriere, semnalul IRDY activat indic faptul c iniiatorul a
depus date valide pe magistrala de date. n timpul unei operaii de citire, semnalul IRDY activat indic faptul c iniiatorul este pregtit s
accepte datele de la inta adresat.

STOP
Prin activarea acestui semnal dispozitivul int solicit iniiatorului
oprirea tranzaciei n curs n timpul fazei curente de date.

DEVSEL (Device Select)


Este activat de dispozitivul int atunci cnd acesta i-a decodificat
adresa. Dac un dispozitiv master a iniiat un transfer i nu detecteaz
semnalul DEVSEL activ n cursul a ase perioade de ceas, va presupune c inta nu poate rspunde sau c adresa respectiv nu este utilizat. Va rezulta un abandon din partea dispozitivului master.

IDSEL (Initialization Device Select)


Este o intrare pentru un dispozitiv PCI i este utilizat pentru selecia
circuitului n timpul accesului la unul din registrele de configurare ale
dispozitivului.

108

PERR (Parity Error)


Indic o eroare de paritate. Generarea informaiei de paritate este obligatorie pentru toate dispozitivele PCI care transmit adrese i date pe
magistrala AD. Detectarea i raportarea erorilor de paritate de ctre
dispozitivele PCI este necesar n general (n anumite cazuri, erorile de
paritate pot fi ignorate). Dac se detecteaz o eroare de paritate de ctre un dispozitiv int n timpul unei faze de date la o operaie de scriere, inta trebuie s activeze semnalul PERR . inta poate continua
tranzacia sau poate activa semnalul STOP pentru terminarea prematur a tranzaciei. Dac se detecteaz o eroare de paritate de ctre un
dispozitiv iniiator n timpul unei faze de date la o operaie de citire,
iniiatorul trebuie s activeze semnalul PERR . Iniiatorul unei tranzacii are responsabilitatea de a raporta detectarea unei erori de paritate. n acest scop, iniiatorul trebuie s monitorizeze semnalul PERR

n timpul fazelor de date la operaiile de scriere pentru a determina dac inta a detectat o eroare de paritate a datelor.

SERR (System Error)


Acest semnal poate fi activat de orice dispozitiv PCI pentru a raporta
erori de paritate a adreselor, erori de paritate a datelor n timpul unui
ciclu special, sau erori critice diferite de cele de paritate. Acest semnal
este considerat ca ultima modalitate de raportare a erorilor serioase.
Erorile care nu sunt catastrofale i cele corectabile trebuie semnalate n
alte moduri. La calculatoarele PC, SERR determin n general o ntrerupere NMI ctre procesorul sistemului.

REQ (Request)
Este activat de iniiator pentru a indica o cerere de magistral. Aceast
linie este conectat la arbitrul de magistral. Metoda de arbitrare a magistralei nu este descris n specificaiile PCI; se pot implementa diferite metode. Este specificat doar faptul c arbitrul de magistral trebuie
s utilizeze un algoritm prin care s se evite blocajele; fiecrui dispozitiv master potenial trebuie s i se permit accesul la magistral.

GNT (Grant)
Este activat de arbitrul de magistral pentru a indica acordarea magistralei pentru iniiator. Atunci cnd detecteaz acest semnal, iniiatorul
trebuie s atepte terminarea tranzaciei n curs de ctre iniiatorul curent.

CLK (Clock)
Reprezint semnalul de ceas utilizat pentru sincronizarea tuturor tranzaciilor, inclusiv a arbitrajului de magistral. Toi parametrii de sincronizare ai magistralei sunt specificai relativ la frontul cresctor al
semnalului de ceas. Frecvena semnalului de ceas se poate modifica n
orice moment, cu condiia s nu existe cereri de magistral i semnalul
LOCK s nu fie activ. De asemenea, ceasul poate fi oprit n starea low
(pentru reducerea puterii consumate).

RST (Reset)
Reprezint semnalul de resetare. Atunci cnd este activat, acest semnal
foreaz trecerea tuturor registrelor de configurare PCI, a dispozitivelor
iniiator i int ntr-o stare de iniializare. n general, semnalele de ieire ale dispozitivelor PCI vor fi trecute n starea de nalt impedan.
Semnalul RST poate fi activat sau dezactivat asincron relativ la frontul semnalului CLK.
109

AD[63:32]
Reprezint extensia la 64 de bii a magistralei de date AD[31:0].
Aceste linii nu sunt utilizate n timpul fazei de adresare a unui transfer
(cu excepia cazului n care se utilizeaz adresarea pe 64 de bii).

C / BE [7:4]
Reprezint extensia semnalelor C / BE [3:0]. Se utilizeaz numai n
timpul fazei de date a unui transfer (cu excepia cazului n care se utilizeaz adresarea pe 64 de bii).

PAR64 (Parity for the Upper Doubleword)


Este bitul de paritate par asociat cu AD[63:32] i C / BE [7:4].

REQ 64 (Request 64-bit Transfer)


Semnal generat de iniiatorul curent pentru a indica faptul c dorete
executarea transferurilor utiliznd extensia la 64 de bii a liniilor de
date. Semnalul REQ 64 are aceeai sincronizare ca i semnalul
FRAME .

ACK 64 (Acknowledge 64-bit Transfer)


Semnal generat de inta curent adresat (dac aceasta permite transferuri pe 64 de bii) ca rspuns la activarea semnalului REQ 64 de ctre
iniiator. Semnalul ACK 64 are aceeai sincronizare ca i semnalul
DEVSEL .

LOCK
Acest semnal este utilizat de ctre un iniiator PCI care solicit accesul
exclusiv la un dispozitiv int de memorie n timpul a dou sau mai
multe tranzacii separate. Acest semnal este prevzut cu scopul de a
permite operaii de citire/modificare/scriere la operaiile cu semafoare.
Dac un dispozitiv PCI conine o memorie executabil sau o memorie
care conine date de sistem (gestionate de sistemul de operare), trebuie
s implementeze aceast funcie de blocare a resurselor.

CLKRUN (Clock Run)


Acest semnal este opional i este definit pentru sistemele portabile.
Un sistem portabil cuprinde o resurs central, care include logica de
generare a ceasului pentru magistrala PCI. Atunci cnd ceasul funcioneaz normal, aceast logic menine semnalul CLKRUN activat. n
perioadele n care ceasul este oprit sau frecvena acestuia este micorat, logica de generare a ceasului monitorizeaz semnalul CLKRUN

110

pentru a recunoate cereri de la dispozitivele PCI care urmresc modificarea strii semnalului de ceas. Ceasul nu poate fi oprit dac magistrala nu este liber. naintea opririi (sau micorrii frecvenei) ceasului,
logica de generare a ceasului dezactiveaz semnalul CLKRUN pentru
o perioad de ceas pentru a informa dispozitivele PCI c ceasul urmeaz s fie oprit (sau frecvena acestuia urmeaz s fie micorat). Dup
aceasta, logica trece driverul de ieire al semnalului CLKRUN n starea de nalt impedan. Rezistena conectat la linia CLKRUN va
menine acest semnal n starea dezactivat n timpul n care ceasul este
oprit. Ulterior, un dispozitiv master poate solicita repornirea ceasului
n scopul utilizrii magistralei prin activarea semnalului CLKRUN .

INTA , INTB , INTC , INTD


Reprezint semnalele pentru cererile de ntrerupere.

SBO (Snoop Back Off)


Acest semnal este o ieire de la puntea UCP/PCI i o intrare pentru
subsistemele de memorie conectate la magistrala PCI care pot utiliza o
memorie cache. Semnalul SBO estre activat de puntea UCP/PCI pentru a indica faptul c prin accesul curent la memorie urmeaz s se citeasc sau s se actualizeze informaii perimate din memorie. Semnalul
SBO are semnificaie numai atunci cnd semnalul SDONE este de
asemenea activat de ctre puntea UCP/PCI. Atunci cnd ambele semnale sunt activate, subsistemul de memorie PCI curent adresat trebuie
s rspund prin semnalarea unei retransmisii la iniiatorul curent.

SDONE (Snoop Done)


Acest semnal este o ieire de la puntea UCP/PCI i o intrare pentru
subsistemele de memorie conectate la magistrala PCI care pot utiliza o
memorie cache. Semnalul SDONE este dezactivat de puntea UCP/PCI
n timp ce memoria cache a procesorului intervine ntr-o cerere de acces la memorie executat de iniiatorul curent. Puntea activeaz semnalul SDONE atunci cnd intervenia s-a terminat. Rezultatele interveniei sunt indicate de ctre semnalul SBO . Semnalul SBO
dezactivat indic faptul c iniiatorul PCI acceseaz date valide din
memorie i c memoria poate accepta sau furniza datele respective.
Semnalul SBO activat indic faptul c iniiatorul PCI acceseaz date
perimate din memorie i nu trebuie s termine accesul curent. Memoria
va trebui s termine accesul prin semnalarea faptului c operaia trebuie repetat.
111

TCK (Test Clock)


Utilizat ca semnal de ceas pentru transferul informaiilor de stare i a
datelor n timpul testrii boundary scan.
TDI (Test Data Input)
Utilizat mpreun cu semnalul TCK pentru transferul datelor i a instruciunilor ctre dispozitivul PCI prin portul TAP (Test Access Port)
sub forma unui ir de bii, n mod serial.
TDO (Test Data Out)
Utilizat mpreun cu semnalul TCK pentru transferul datelor de la dispozitivul PCI prin portul TAP sub forma unui ir de bii, n mod serial.
TMS (Test Mode Select)
Utilizat pentru controlul strii controlerului portului TAP.

TRST (Test Reset)


Utilizat pentru a fora controlerul portului TAP n starea iniial.

3.5.8.3. Caracteristici ale magistralei PCI


Dispozitiv iniiator i int
La fiecare transfer particip dou dispozitive: iniiatorul i inta. Iniiatorul, sau dispozitivul master, este cel care iniiaz un transfer. inta,
sau dispozitivul slave, este adresat de iniiator n scopul executrii
transferului. Dispozitivele iniiator i int sunt numite ageni PCI.
Transferuri n mod exploziv
Un asemenea transfer const dintr-o singur faz de adrese urmat de
mai multe faze de date. Arbitrajul de magistral trebuie executat o singur dat. n timpul fazei de adrese se transmite adresa de nceput i
tipul tranzaciei care urmeaz. Dispozitivul int memoreaz adresa de
nceput ntr-un contor de adrese, i va incrementa adresa n fiecare faz
de date.
La magistralele EISA i Micro Channel, posibilitatea de a utiliza modul
exploziv este stabilit printr-o negociere ntre dispozitivul master i cel
slave. Dac unul sau niciunul din acestea nu permite transferuri n mod
exploziv, blocul de date se va transmite utiliznd o serie de tranzacii
separate. Este necesar arbitrajul de magistral pentru fiecare tranzacie
individual. Un alt dispozitiv master poate obine magistrala ntre dou
tranzacii. Aceasta poate limita n mod sever rata de transfer.
112

n cazul magistralei PCI, cele mai multe transferuri se execut n mod


exploziv, cele mai multe dispozitive fiind proiectate astfel nct s
permit asemenea transferuri. Dac un dispozitiv int poate efectua
numai tranzacii singulare, la ncercarea dispozitivului master de a
executa o tranzacie n mod exploziv, inta termin tranzacia dup
prima faz de date. Astfel dispozitivul master va fi obligat s solicite
din nou magistrala printr-un proces de arbitraj. n acest mod performanele vor fi mai reduse, dar tranzaciile singulare se pot utiliza pentru dispozitivele care nu necesit rate ridicate de transfer.
Presupunnd c nici iniiatorul i nici dispozitivul int nu insereaz
stri de ateptare, poate fi transferat cte un cuvnt la fiecare front
cresctor al semnalului de ceas. La o frecven de 33 MHz, se poate
obine o rat de transfer de 132 MB/s n cazul implementrii pe 32 de
bii, sau 264 MB/s pentru 64 de bii. Cu o frecven a ceasului de 66
MHz, se pot obine rate de transfer de 264 MB/s, respectiv 528 MB/s.
Dispozitive multifuncionale
Un dispozitiv fizic PCI poate fi o component integrat pe placa sistem
sau o plac de extensie PCI. Fiecare dispozitiv poate ncorpora pn la
opt funcii separate, un asemenea dispozitiv fiind numit multifuncional.
Ceasul magistralei PCI
Frecvena semnalului de ceas poate fi n intervalul de la 0 la 33 MHz.
Specificaiile versiunii 1.0 indic faptul c toate dispozitivele trebuie
s funcioneze ntre 16 i 33 MHz, recomandnd funcionarea la 0
MHz. Specificaiile versiunilor 2.x indic faptul c toate dispozitivele
trebuie s funcioneze n intervalul de la 0 la 33 MHz. Funcionarea la
0 MHz asigur un consum redus de putere i posibilitatea depanrii
statice. Frecvena ceasului se poate modifica n orice moment i ceasul
poate fi oprit (n starea low).
Versiunea 2.1 definete de asemenea funcionarea la frecvene de pn
la 66 MHz.

3.5.8.4. Tranzacii
Faza de adrese
Toate tranzaciile pe magistrala PCI constau dintr-o faz de adrese urmat de una sau mai multe faze de date. Excepia o reprezint tranzaciile n care se utilizeaz adresarea pe 64 de bii, unde adresa este fur113

nizat n dou faze de adrese. O faz de adrese are durata unei perioade de ceas. n aceast faz, iniiatorul identific dispozitivul int i tipul tranzaciei.
inta este identificat prin transmiterea unei adrese de start pe magistrala de adrese/date n cadrul domeniului de adrese asignat dispozitivului. Tipul tranzaciei este identificat prin depunerea tipului comenzii
pe liniile C / BE . Iniiatorul activeaz semnalul FRAME pentru a indica prezena unei adrese de start i tip de tranzacie valide. Deoarece
adresa de start este prezent numai pe durata unei perioade de ceas, fiecare dispozitiv int trebuie s memoreze adresa pentru a putea fi decodificat ulterior.
Atunci cnd un dispozitiv int determin faptul c este adresat, trebuie
s activeze semnalul DEVSEL , pentru a revendica tranzacia. Dac
acest semnal nu va fi activat ntr-un timp predeterminat, iniiatorul va
abandona tranzacia.
Dup terminarea fazei de adrese, magistrala de adrese/date este utilizat pentru transferul datelor n cadrul unei sau mai multor faze de date.
Faza de date
Pe durata fazei sau fazelor de date are loc transferul datelor ntre iniiator i int. Att iniiatorul ct i inta trebuie s indice faptul c sunt
pregtite pentru terminarea unei faze de date prin activarea semnalelor
IRDY , respectiv TRDY . n cazul n care nu sunt activate ambele
semnale la nceputul unei perioade de ceas, se va insera o stare de ateptare cu durata unei perioade.
Terminarea tranzaciei
Iniiatorul identific durata total a unui transfer cu ajutorul semnalului
FRAME . Acest semnal este activat la nceputul fazei de adrese i rmne activat pn cnd iniiatorul este pregtit pentru a termina faza
final de date (activeaz IRDY ).
Executarea ultimei faze de date este indicat de iniiator prin dezactivarea semnalului FRAME i activarea semnalului IRDY . Dup terminarea ultimului transfer, iniiatorul readuce magistrala n starea
inactiv prin dezactivarea semnalului IRDY .
Arbitrajul de magistral are loc n timp ce un dispozitiv master utilizeaz magistrala. Dac arbitrul de magistral a acordat n prealabil
magistrala unui alt dispozitiv master, acest dispozitiv poate detecta sta114

rea inactiv a magistralei prin faptul c semnalele FRAME i IRDY


sunt ambele dezactivate.
Exemplu de tranzacie
Figura 3.22 prezint un transfer de date reprezentativ de la un dispozitiv slave la un dispozitiv master, de exemplu o operaie de citire de la un dispozitiv de I/E [6].

Figura 3.22. Tranzacie de citire pe magistrala PCI.

Tranzacia ncepe n momentul n care iniiatorul (care se presupune c


are n permanen controlul asupra magistralei) activeaz semnalul FRAME n
ciclul de ceas 1. Iniiatorul plaseaz apoi o adres i un cuvnt de comand (IO
READ n acest exemplu) pe liniile AD, respectiv C / BE ; aceste informaii trebuie s fie valide n momentul n care ncepe ciclul de ceas 2. n timpul ciclului
2 toate unitile conectate la magistral ncearc s decodifice adresa i comanda. n acest exemplu, o unitate de I/E i va recunoate adresa. n continuare
iniiatorul va plasa informaii valide pe liniile C / BE pe durata restului tranzaciei. Pentru evitarea conflictelor n momentul n care iniiatorul nu mai are
controlul asupra liniilor AD i acest control este preluat de dispozitivul int,
faza de adrese este urmat de un ciclu inactiv (ciclul 3 n Figura 3.22). Dispozitivul int poate transmite o secven de cuvinte de date ncepnd din ciclul 4 cu
rata maxim de un cuvnt pe ciclu de ceas. Cele dou dispozitive controleaz
115

rata de transfer real prin liniile IRDY i TRDY , care permit inserarea unui
numr oarecare de stri de ateptare dup fiecare ciclu de transfer de date.
Transferul de date nu poate ncepe pn cnd iniiatorul nu activeaz
semnalul IRDY pentru a indica faptul c este pregtit pentru recepionarea datelor (ciclul 2). Dispozitivul int furnizeaz cuvntul 1 de date i semnaleaz
acest lucru prin activarea semnalului TRDY n ciclul 3. Transferul de date are
loc n ciclul 4. n acest exemplu dispozitivul int dezactiveaz imediat linia
TRDY , ciclul 5 devenind o stare de ateptare; apoi reactiveaz TRDY i plaseaz cuvntul 2 de date pe liniile AD pentru a fi transmis n ciclul 6. Dispozitivul int plaseaz apoi cuvntul 3 de date pe liniile AD, cuvnt care va fi
transmis n ciclul 7. De aceast dat, iniiatorul va insera o stare de ateptare
prin dezactivarea semnalului IRDY pe durata unui ciclu de ceas. n consecin,
transferul cuvntului 3 de date este amnat pn n ciclul 8. Iniiatorul dezactiveaz semnalul FRAME n ciclul 7 pentru a indica faptul c urmtorul ciclu
marcheaz sfritul tranzaciei pe magistral. Linia de control DEVSEL este
activat de dispozitivul int n ciclul 2 pentru a indica faptul c acest dispozitiv
a decodificat cu succes adresa i este inta tranzaciei curente. Nici un transfer
de date nu poate avea loc pn n momentul n care semnalul DEVSEL nu este
activ.
O tranzacie de scriere (n care iniiatorul este sursa datelor) este similar cu cea din Figura 3.22. n acest caz ciclul inactiv dup faza de adrese nu
este necesar, deoarece iniiatorul menine n continuare controlul asupra liniilor
AD pe durata tranzaciei.

3.5.8.5. ntreruperi
Magistrala PCI are patru linii pentru cererile de ntrerupere, INTA , ,
INTD ; acestea fac parte din liniile opionale ale magistralei. Un dispozitiv de
I/E cu o singur funcie trebuie s utilizeze INTA ca linie pentru cererea de
ntrerupere; dispozitivele de I/E multifuncionale pot utiliza toate cele patru linii
[6]. O configuraie particular pe liniile de comand C / BE [3:0] indic achitarea ntreruperii. Liniile cererilor de ntrerupere INTx i comanda de achitare a
ntreruperii pot implementa mpreun semnalele necesare n timpul unei tranzacii de ntrerupere pe magistrala PCI.
Fiecare dispozitiv compatibil PCI trebuie s dispun de un set standard
de registre de configuraie adresabile CR care identific dispozitivul. La iniializare, sistemul de operare citete registrele CR pentru a determina, printre altele,
conexiunile de ntrerupere ale dispozitivului de I/E. Registrul pinului de ntre116

rupere de 8 bii din CR indic linia cererii de ntrerupere INTx care este utilizat de dispozitiv. Un alt registru de 8 bii din CR, numit registrul liniei de
ntrerupere, specific linia de intrare a controlerului de sistem care este conectat la linia INTx , astfel nct rutarea liniilor pentru cererile de ntrerupere este
programabil. Controlerul de sistem poate utiliza aceast informaie pentru a
determina prioritatea cererii de ntrerupere a dispozitivului de I/E i pentru accesarea vectorilor si de ntrerupere. Registrele CR formeaz un mic spaiu de
adres care este separat de spaiul de adres al memoriei i cel de I/E.

3.5.8.6. Registre de configuraie


Fiecare dispozitiv funcional PCI dispune de un bloc de 64 cuvinte
duble rezervate pentru implementarea registrelor de configuraie. Formatul primelor 16 cuvinte duble este predefinit de specificaiile PCI. Aceast zon reprezint antetul de configuraie al dispozitivului. Specificaiile definesc dou formate ale antetului, numite tipul 0 i 1. Tipul 1 este definit pentru punile de legtur ntre dou magistrale PCI, la sistemele cu mai multe magistrale PCI. Tipul 0 este utilizat de alte dispozitive, fiind descris n continuare.
Formatul antetului de configuraie al unui dispozitiv funcional PCI
(diferit de o punte PCI-PCI) este prezentat n Figura 3.23. Registrele din acest
antet sunt utilizate pentru identificarea dispozitivului, controlul funciilor sale i
detectarea strii acestuia. Utilizarea celorlalte 48 de cuvinte duble a spaiului de
configuraie este specific dispozitivului.
n continuare se descriu registrele obligatorii. Aceste registre trebuie
implementate n fiecare dispozitiv PCI, inclusiv n punile de legtur [16].
Registrul de identificare a productorului
Acest registru de 16 bii, de tip R/O, identific productorul dispozitivului printr-un cod atribuit de o autoritate care controleaz atribuirea
acestor coduri. Valoarea FFFFh a codului este rezervat i trebuie
returnat de puntea dintre UCP i magistrala PCI atunci cnd se ncearc citirea registrului de identificare al productorului dintr-un dispozitiv inexistent.
Registrul de identificare a dispozitivului
Valoarea de 16 bii din acest registru este asignat de productor i
identific tipul dispozitivului.

117

Figura 3.23. Antetul de configuraie al unui dispozitiv funcional PCI.

Registrul de comand
Este un registru de 16 bii, fiind definii numai biii 9-0, ceilali bii fiind rezervai pentru utilizri viitoare. Se descriu funciile principale care pot fi specificate de biii acestui registru.
Validarea dispozitivului.
Validarea accesului la memoria dispozitivului, dac acesta implementeaz o memorie.
Validarea funciei de master a dispozitivului, dac acesta are posibilitatea de a deveni master.
Validarea monitorizrii ciclurilor speciale PCI. Aceste cicluri se utilizeaz pentru a transmite diferite mesaje dispozitivelor int, care pot
monitoriza ciclurile pentru a determina dac mesajele sunt destinate
acestora.
118

Actualizarea registrelor de palet a culorilor ale unei interfee VGA


fr confirmarea acceptrii datelor (VGA Color Palette Snooping).
Aceast opiune este util n cazul sistemelor cu dou controlere grafice: o interfa compatibil VGA i un alt controler grafic. Fiecare din
acestea implementeaz un set de registre de palet, care se afl la aceleai adrese de I/E. Atunci cnd procesorul execut o scriere pentru
actualizarea registrelor de palet, ambele controlere vor recunoate
adresa i vor rspunde prin activarea semnalelor DEVSEL i TRDY ,
rezultnd o coliziune pe aceste linii.
Programul de configurare trebuie s programeze unul din controlere ca
fiind o destinaie activ, care rspunde la comenzile de scriere n registrele de palet, iar cellalt ca destinaie pasiv. Controlerul VGA va
rspunde ntotdeauna la comenzile de citire a registrelor de palet.
Validarea paritii. Dac acest bit este setat, dispozitivul va raporta
erorile de paritate. n caz contrar, erorile de paritate vor fi ignorate.
Validarea semnalrii erorilor de sistem. Dac acest bit este setat, dispozitivul poate activa semnalul SERR pentru a indica o eroare de
sistem. Toate dispozitivele care utilizeaz semnalul SERR trebuie s
implementeze acest bit. Pentru raportarea erorilor de paritate, trebuie
ca acest bit i bitul de validare a erorilor de paritate s fie setai.
Dup resetare, toi biii registrului de comand sunt setai la 0, cu excepia unui dispozitiv care trebuie s fie validat n timpul pornirii sistemului, deoarece este utilizat n procesul de ncrcare a sistemului.
Prin aceasta dispozitivul este dezactivat, dar va fi accesibil pentru configurare, urmnd s fie validat de programul de configurare. Dispozitivele care trebuie s fie accesibile la pornire prin adrese fixe trebuie s
implementeze bitul de validare pentru a controla recunoaterea adreselor sale fixe. Aceasta permite programului de configurare s invalideze recunoaterea adreselor fixe dup pornirea sistemului, i s
reconfigureze gama de adrese la care rspunde dispozitivul.
Registrul de stare
Pstreaz starea evenimentelor legate de magistrala PCI. Acest registru
poate fi citit, scrierile fiind tratate diferit de modul obinuit. La scriere,
un bit poate fi ters, dar nu poate fi poziionat. Un bit este ters prin
scrierea valorii 1. Aceast metod a fost aleas pentru a simplifica
programele. Dup citirea strii i determinarea biilor de eroare care
sunt setai, programatorul terge biii prin nscrierea valorii citite anterior din registru.
119

Principalele informaii coninute n registrul de stare sunt urmtoarele:


Frecvena de funcionare
Indic posibilitatea funcionrii la 66 MHz, sau la 33 MHz.
Posibilitatea definirii unor caracteristici de ctre utilizator
Dei programul de configurare poate detecta prezena unui dispozitiv
i poate aloca resursele necesare acestuia (spaiul de memorie, spaiul
de I/E, nivelul de ntrerupere, nivelul de prioritate pentru arbitraj etc.),
unele caracteristici ale anumitor subsisteme nu pot fi configurate automat atunci cnd subsistemul este detectat pentru prima dat. n acest
caz se poate indica o list de opiuni care pot fi selectate. Un exemplu
l constituie un adaptor de reea cruia trebuie s i se asigneze un anumit identificator de nod al reelei. La prima instalare, opiunile vor fi
salvate n memoria nevolatil i vor fi utilizate n continuare.
Raportarea paritii
Acest bit este implementat numai de dispozitivele master i este setat
n urmtoarele condiii: dispozitivul master a avut rol de iniiator i a
setat el nsui semnalul PERR , sau a detectat setarea acestui semnal
de ctre int (la o scriere). De asemenea bitul de validare a paritii
din registrul de comand trebuie s fie setat.
Abandon de ctre int
Este un bit setat de ctre dispozitivul int atunci cnd aceasta termin
o tranzacie cu un abandon.
Recepionarea abandonului de ctre int
Acest bit este setat de un dispozitiv master atunci cnd tranzacia iniiat de acest dispozitiv este terminat printr-un abandon al intei curent
selectate. Toate dispozitivele master trebuie s implementeze acest bit.
Semnalarea unei erori de sistem
Acest bit trebuie setat ori de cte ori un dispozitiv activeaz semnalul
de eroare SERR .
Detectarea unei erori de paritate
Acest bit trebuie setat de un dispozitiv atunci cnd detecteaz o eroare
de paritate (chiar dac raportarea erorii de paritate este invalidat).
Registrul de identificare al reviziei
Conine o valoare de 8 bii setat de productor, care reprezint numrul de revizie al dispozitivului.
120

Registrul codului de clas


Este un registru de 24 de bii, divizat n trei cmpuri, care conin: clasa
de baz, subclasa i interfaa de programare. Acest registru identific
funcia de baz a dispozitivului (de exemplu, un controler pentru o
memorie de mas), o subclas mai precis a dispozitivului (de exemplu, un controler IDE), i n anumite cazuri, o interfa de programare
(ca setul de registre a unui controler VGA).
Registrul tipului de antet
Este un registru de 8 bii care definete prin 7 bii formatul antetului de
configuraie. Pe lng antetul de tip 0, indicat n figur, este definit un
singur format, cel pentru punile ntre dou magistrale PCI. Alte formate vor fi definite n specificaiile viitoare. Bitul 7 al acestui registru
indic dac dispozitivul are o singur funcie sau este multifuncional.

121