Sisteme de I/E - Magistrala PCI |
|
Magistrala PCI |
Prezentare generala |
În anul 1992, firma Intel a anuntat prima versiune (1.0) a unei specificatii pentru o magistrala de I/E, denumita PCI (Peripheral Component Interconnect). Intentia initiala era realizarea unui stan- dard care sa permita interconectarea circuitelor rapide pe placa de baza, deoarece cu fiecare generatie de microprocesoare, Intel trebuia sa modifice arhitectura magistralei locale pentru a mari performan- tele sistemului, ceea ce implica si modificarea circuitelor de interfata pentru periferice. Magistrala PCI urma sa se conecteze la magistrala locala a procesorului prin intermediul unui circuit, special destinat acestui scop. Astfel, la fiecare schimbare a procesorului si a magistralei locale, trebuia schimbat doar circuitul de legatura, circuitele de interfata cu perifericele nefiind afectate. Specificatia PCI initiala nu prevedea conectori de extensie. Intel a actualizat specificatiile PCI pentru ca aceasta sa admita si conectori de extensie. Astfel, magistrala PCI a fost definita detaliat din punct de vedere electric si functional, ajungând cea mai utilizata arhitectura de magistrala locala. Spe- cificatiile magistralei PCI sunt elaborate si actualizate de organizatia PCI Special Interest Group (PCI-SIG, www.pcisig.com). Aceasta organizatie a fost înfiintata în anul 1992 si cuprinde în prezent peste 900 de firme membre. Specificatiile PCI permit utilizarea a doua din cele trei metode de conectare la magistrala lo- cala a procesorului: conectarea printr-un buffer si conectarea de tip statie de lucru. Datorita avantajelor legate de performante si de flexibilitate, conectarea de tip statie de lucru este preferata. Se prezinta în Figura 1 schema bloc a unui sistem cu magistrala PCI, utilizând acest tip de conectare. |
Figura 1. Schema bloc a unui sistem cu magistrala PCI. |
Magistrala PCI este conectata la magistrala locala a procesorului prin intermediul unei punti UCP/PCI, având acces direct la memoria principala. În acest fel, transferurile între UCP si memoria cache de nivel 2, respectiv între dispozitivele de I/E si memoria principala, pot avea loc simultan. Dis- pozitivele de I/E de viteza ridicata, ca adaptoarele grafice si adaptoarele de retea, care solicita în masu- |
|
Sisteme de I/E - Magistrala PCI |
ra redusa procesorul, sunt conectate direct la magistrala PCI. Dispozitivele care trebuie sa se confor- meze altor standarde de magistrala, ca ISA sau SCSI, se interfateaza cu magistrala PCI printr-o punte PCI/ISA, respectiv un adaptor SCSI. Deoarece magistrala PCI nu este specifica procesoarelor din familia Intel, aceasta poate fi uti- lizata si pentru alte procesoare, cum sunt procesoarele Alpha sau PowerPC. Un sistem poate fi realizat si fara utilizarea puntilor de legatura. În acest caz, toate componentele, inclusiv procesorul si memoria principala, se interfateaza direct cu magistrala PCI. Specificatiile magistralei PCI impun o limitare de 10 încarcari electrice a magistralei (ceea ce se obtine de obicei prin conectarea a 3 sau 4 placi de extensie). Magistrala PCI poate fi extinsa pentru a permite conectarea unui numar mai mare de placi de extensie cu ajutorul unor punti PCI-PCI. Atunci când traficul este local pe fiecare magistrala, pot fi active mai multe magistrale în acelasi timp, ceea ce permite echilibrarea încarcarii acestora. Dupa prima versiune a specificatiilor PCI, 1.0, publicata în 1992, a fost elaborata versiunea 2.0, care a fost publicata în anul 1993. În anul 1995 a fost publicata versiunea 2.1, în anul 1998 versiu- nea 2.2, iar în martie 2002 versiunea 2.3. Toate aceste versiuni se refera la magistrala PCI care functi- oneaza în modul "conventional", utilizând acelasi protocol ca si cel utilizat la prima versiune a magis- tralei. Pe lânga aceste versiuni ale magistralei PCI conventionale, exista si alte variante ale magistralei PCI, ca PCI-X sau PCI Express. Acestea sunt prezentate în sectiunile urmatoare. Ceasul magistralei PCI este separat de ceasul procesorului. La versiunea 2.0, frecventa maxi- ma a ceasului este de 33 MHz. Cu o magistrala de date de 32 de biti, rata de transfer maxima (la vârf) este de 132 MB/s. În mod tipic, rata de transfer sustinuta este de 80 MB/s. Începând cu versiunea 2.1, specificatiile contin extensii optionale, care permit cresterea ratei de transfer si utilizarea unor platfor- me si arhitecturi multiple. Una din extensii este cea de 64 de biti pentru date sau adrese, sau pentru ambele. Extensia de 64 biti pentru adrese permite extinderea spatiului de adresare peste limita de 4 GB. Extensia de 64 biti pentru transferurile de date permite transferul a 8 octeti în fiecare faza de date la un dispozitiv destina- tie de 64 de biti, rezultând o rata maxima de transfer de 264 MB/s. Transferurile se vor efectua pe 32 de biti daca dispozitivul destinatie selectat nu permite extensia de 64 de biti. Extensia de 64 de biti utilizeaza un conector suplimentar. O alta extensie specificata începând cu versiunea 2.1 este cea de 66 MHz, care permite creste- rea ratei de transfer pentru aplicatiile grafice avansate si cele video. Utilizarea acestei frecvente este limitata, deoarece pentru aceasta toate dispozitivele conectate la magistrala trebuie sa functioneze la 66 MHz. Daca unul din dispozitive de 33 MHz se conecteaza la magistrala PCI de 66 MHz, magistrala va functiona la 33 MHz. De aceea, utilizarea magistralei PCI de 66 MHz, care este partajata între mai multe dispozitive, va creste costul acelor dispozitive care nu necesita rate de transfer foarte ridicate, pentru ca magistrala sa functioneze la 66 MHz. Interfata AGP, introdusa de Intel pentru aplicatiile gra- fice si video, a fost definita de aceea ca o conexiune punct la punct, si nu ca o magistrala partajata. Implementarile magistralei PCI care utilizeaza extensia de 64 de biti si cea de 66 MHz permit obtinerea unei rate de transfer maxime de 528 MB/s. Extensiile magistralei PCI definesc o familie de conectori pentru adaptoare de 5 V sau 3,3 V. În prezent majoritatea conectorilor de extensie utilizeaza surse de alimentare de 3,3 V. Sistemele tre- buie sa permita utilizarea placilor de extensie mai vechi care functioneaza la 5 V. Sistemele mobile trebuie sa functioneze la 3,3 V pentru reducerea puterii consumate, aceasta tensiune fiind necesara pentru toate implementarile de 66 MHz. Producatorii trebuie sa prevada placile de 3,3 V si 5 V cu chei pentru a permite cuplarea doar la conectorii cu tensiunea adecvata. Exista si placi universale care pot functiona fie la 5 V, fie la 3,3 V. Cheile acestor placi permit conectarea la ambele tipuri de conectori. Versiunea 2.3 a specificatiilor PCI a fost introdusa ca o etapa intermediara pentru trecerea la utilizarea în totalitate a semnalelor si a placilor de extensie de 3,3 V. Aceasta trecere este necesara pentru utilizarea tehnologiilor cu performante mai ridicate si se va realiza începând cu versiunea 3.0. Publicarea versiunii 3.0 a fost prevazuta initial în anul 2001, dar a fost amânata ulterior. În momentul de fata (octombrie 2003), varianta finala a specificatiilor PCI 3.0 nu a fost publicata înca. Versiunea 2.3 permite utilizarea conectorilor placilor de baza de 5 V si 3,3 V (ca si versiunea 2.2), dar permite utilizarea doar a placilor de extensie de 3,3 V si a celor universale. Placile de extensie prevazute cu chei pentru 5 V nu vor putea fi utilizate. Conformitatea cu versiunea 2.3 va trebui asigurata de produ- catori pâna cel târziu la 1 ianuarie 2004. |
Sisteme de I/E - Magistrala PCI |
Toate placile de extensie PCI sunt configurate automat pentru tranzactiile pe magistrala, fara a fi necesara setarea manuala a adreselor porturilor de I/E, a nivelului de întrerupere sau a canalului DMA. Prin includerea caracteristicilor standardului OpenBoot (IEEE 1275), orice dispozitiv compati- bil OpenBoot se poate utiliza pentru initializarea sistemelor continând orice procesor, fara ajutorul sistemului de operare sau a unor rutine specifice procesorului. Magistrala PCI dispune de facilitati avansate, cum este cea care asigura coerenta memoriilor cache în cazul existentei mai multor dispozitive master ("bus snooping"), sau mecanismul pentru asi- gurarea sincronizarii prin semafoare. În acelasi timp, magistrala permite utilizarea unor placi de exten- sie sau controlere care se conformeaza unor standarde mai vechi. De exemplu, este posibila utilizarea cu magistrala PCI a placilor de extensie ISA, prin faptul ca magistrala permite decodificarea substractiva a adreselor (adresele care nu sunt decodificate de placile PCI fiind utilizate de o alta ma- gistrala, cum este ISA). De asemenea, magistrala PCI permite utilizarea controlerelor conforme cu standardele VGA (Video Graphics Array) si IDE (Integrated Drive Electronics). Pentru aceasta, ma- gistrala PCI permite ca aceste controlere sa utilizeze adrese fixe de I/E, necesare pentru încarcarea cu succes a sistemului de operare. |
Caracteristici ale magistralei PCI |
Dispozitiv initiator si tinta |
La fiecare transfer participa doua dispozitive: initiatorul si tinta. Initiatorul, sau dispozitivul master, este cel care initiaza un transfer. Ţinta, sau dispozitivul slave, este adresat de initiator în scopul executarii transferului. Dispozitivele initiator si tinta sunt numite agenti PCI. |
Transferuri în mod exploziv |
Un asemenea transfer consta dintr-o singura faza de adrese urmata de mai multe faze de date. Arbitrajul de magistrala trebuie executat o singura data. În timpul fazei de adrese se transmite adresa de început si tipul tranzactiei care urmeaza. Dispozitivul tinta memoreaza adresa de început într-un contor de adrese, si va incrementa adresa în fiecare faza de date. În cazul magistralei PCI, cele mai multe transferuri se executa în mod exploziv, cele mai multe dispozitive fiind proiectate astfel încât sa permita asemenea transferuri. Daca un dispozitiv tinta poate efectua numai tranzactii singulare, la încercarea dispozitivului master de a executa o tranzactie în mod exploziv, tinta termina tranzactia dupa prima faza de date. Astfel dispozitivul master va fi obligat sa solicite din nou magistrala printr-un proces de arbitraj. În acest mod performantele vor fi mai reduse, dar tranzactiile singulare se pot utiliza pentru dispozitivele care nu necesita rate ridicate de transfer. Presupunând ca nici initiatorul si nici dispozitivul tinta nu insereaza stari de asteptare, poate fi transferat câte un cuvânt la fiecare front crescator al semnalului de ceas. La o frecventa de 33 MHz, se poate obtine o rata de transfer de 132 MB/s în cazul implementarii pe 32 de biti, sau 264 MB/s pentru 64 de biti. Cu o frecventa a ceasului de 66 MHz, se pot obtine rate de transfer de 264 MB/s, respectiv 528 MB/s. |
Dispozitive multifunctionale |
Un dispozitiv fizic PCI poate fi o componenta integrata pe placa sistem sau o placa de extensie PCI. Fiecare dispozitiv poate încorpora pâna la opt functii separate, un asemenea dispozitiv fiind nu- mit multifunctional. |
Ceasul magistralei PCI |
Frecventa semnalului de ceas poate fi în intervalul de la 0 la 33 MHz. Specificatiile versiunii 1.0 indica faptul ca toate dispozitivele trebuie sa functioneze între 16 si 33 MHz, recomandând functi- onarea la 0 MHz. Specificatiile versiunilor 2.0 indica faptul ca toate dispozitivele trebuie sa functione- ze în intervalul de la 0 la 33 MHz. Functionarea la 0 MHz asigura un consum redus de putere si posi- bilitatea depanarii statice. Frecventa ceasului se poate modifica în orice moment si ceasul poate fi oprit |
|
Sisteme de I/E - Magistrala PCI |
(în starea "low"). Versiunile 2.1 si 2.2 definesc de asemenea functionarea la frecvente de pâna la 66 MHz. |
Variante ale magistralei PCI |
PCI-X 1.0 si |
PCI-X este o extensie cu performante mai ridicate a magistralei PCI conventionale, compati- bila cu diferitele variante ale acesteia. Aceasta extensie asigura ratele ridicate de transfer necesare pentru conexiuni cum sunt Gigabit Ethernet, Fibre Channel si Ultra-3 SCSI. Actualmente, magistrala PCI-X este utilizata pentru servere si unele statii de lucru. Versiunea 1.0 a magistralei PCI-X a fost standardizata de grupul PCI-SIG în anul 1999. Aceasta versiune permite frecvente de functionare de pâna la 133 MHz, numarul de linii ale magistra- lei fiind de 32 sau 64. Pentru o magistrala de 64 de biti, rata de transfer maxima care se poate obtine la aceasta frecventa este de 1,064 GB/s. Pe lânga frecventa mai ridicata, versiunea 1.0 a magistralei PCI-X introduce si unele îmbuna- tatiri ale protocolului magistralei PCI conventionale pentru o functionare mai eficienta, inclusiv la frecvente mai reduse. Principalele îmbunatatiri sunt urmatoarele: |
Tranzactiile divizate permit unui dispozitiv initiator sa efectueze o singura cerere pentru un transfer de date si apoi sa elibereze magistrala, în locul interogarii continue a magistralei pen- tru detectarea raspunsului la aceasta cerere. |
Introducerea unui contor de octeti permite unui initiator sa specifice în avans numarul de oc- teti solicitati, eliminând ineficienta încarcarilor speculative. |
Ordinea relaxata a tranzactiilor îmbunatateste performantele în cazul sistemelor multiprocesor complexe si aplicatiilor în timp real. |
Magistrala PCI-X 1.0 asigura compatibilitatea hardware cu versiunile anterioare ale magistra- lei PCI prin faptul ca permite functionarea dispozitivelor la frecventele de 33 MHz sau 66 MHz si cu protocolul conventional atunci când sunt instalate în sisteme conventionale. Similar, în cazul în care dispozitivele PCI conventionale sunt conectate la o magistrala care poate functiona în modul PCI-X, ceasul magistralei va ramâne la o frecventa acceptabila acestor dispozitive, iar celelalte dispozitive de pe magistrala vor utiliza protocolul conventional. Pe lânga compatibilitatea hardware, magistrala PCI-X asigura si compatibilitatea software cu versiunile anterioare. Sistemele de operare care permit utilizarea magistralei PCI conventionale, cum sunt Windows 95/98/Me/2000/XP, Linux, UNIX, OpenVMS, Novell, permit si utilizarea magistralei PCI-X. Aceasta compatibilitate este valabila si pentru BIOS, ca si pentru driverele de dispozitiv, care nu necesita nici o modificare. Versiunea 2.0 a specificatiilor magistralei PCI-X a fost publicata de organizatia PCI-SIG la mijlocul anului 2002. Aceasta versiune introduce îmbunatatiri suplimentare ale magistralei PCI-X, care vor permite utilizarea de catre serverele viitoare a unor tehnologii de I/E cu performante foarte ridicate, cum sunt reteaua Ethernet de 10 Gbps, magistrala Fibre Channel de 10 Gbps, magistrala InfiniBand si altele. Aceste îmbunatatiri sunt obtinute pastrând compatibilitatea hardware si software cu generatiile anterioare ale magistralei PCI. Specificatiile PCI-X 2.0 introduc doua noi frecvente de functionare ale magistralei, de 266 MHz si 533 MHz. Variantele corespunzatoare ale magistralei sunt denumite PCI-X 266 (sau DDR - Double Data Rate) si PCI-X 533 (sau QDR - Quad Data Rate), datele fiind transmise la o rata de 2 ori, respectiv de 4 ori mai mare decât frecventa semnalului de ceas. Ratele maxime de transfer ale acestor variante sunt de 2,128 GB/s, respectiv 4,264 GB/s. Astfel, performantele maxime sunt de 32 de ori mai ridicate comparativ cu cele ale primei generatii a magistralei PCI. Pe lânga aceste frecvente de 266 MHz si 533 MHz, este posibila functionarea si la frecvente mai reduse, de 66 MHz, 100 MHz sau 133 MHz. Variantele PCI-X 133, PCI-X 266 si PCI-X 533 ale magistralei permit utilizarea unui singur conector si a unei încarcari electrice. Aceste variante pot fi utilizate deci doar pentru aplicatii punct la |
Sisteme de I/E - Magistrala PCI |
punct. La 100 MHz se pot utiliza doi conectori si sunt posibile doua încarcari electrice, în timp ce la 66 MHz se pot utiliza 4 conectori si sunt posibile 4 încarcari electrice. În cazul în care nu se utilizeaza conectori (componentele sunt lipite), exista posibilitatea unor încarcari multiple la frecvente mai ridi- cate: 133 MHz, 266 MHz sau 533 MHz. Prin utilizarea modurilor de 16 biti sau 32 de biti ale magis- tralei PCI-X 2.0 exista de asemenea posibilitatea unor încarcari electrice multiple. Pe lânga frecventele mai ridicate de functionare, magistrala PCI-X 2.0 introduce si alte carac- teristici noi, cele mai importante din acestea fiind descrise în continuare. |
Utilizarea unui cod corector de erori ECC (Error Correcting Code) îmbunatateste robustetea interfetei. Se utilizeaza 8 biti suplimentari de control, care permit corectarea erorilor de un singur bit si detectia erorilor de 2 biti. Erorile de un bit sunt corectate automat, în timp ce ero- rile de doi biti sunt marcate pentru a realiza retransmisia datelor. |
Introducerea unor registre de configuratie specifice versiunii 2.0 a fost necesara pentru a im- plementa functia de corectie a erorilor. |
Utilizarea unui protocol îmbunatatit care creste gradul de utilizare si eficienta magistralei. |
O alta îmbunatatire se refera la introducerea unor semnale de strob pentru variantele PCI-X si PCI-X 533 ale magistralei. Aceste semnale comanda intrarile de ceas ale bufferelor de date si asigura memorarea datelor la momente precise de timp. Deoarece semnalele de strob si cele de date sunt supuse acelorasi variatii de tensiune, temperatura etc., ele deviaza în aceeasi directie si cu aceeasi amplitudine, ceea ce permite memorarea sigura a datelor si la ratele foarte ridicate ale variantelor PCI-X 266 si PCI-X 533. |
Utilizarea unor semnale de 1,5 V permite functionarea la frecvente mai ridicate. Pentru a mentine compatibilitatea cu tehnologia de 3,3 V a generatiilor anterioare, bufferele de I/E au fost proiectate astfel încât sa permita ambele nivele ale semnalelor. |
Introducerea unei versiuni de 16 biti a magistralei a fost destinata aplicatiilor la care este im- portanta reducerea numarului de pini. Aceasta versiune poate fi implementata fie prin crearea unei magistrale independente, fie prin divizarea unei magistrale de 64 de biti în 4 segmente de câte 16 biti. |
Este de asteptat ca serverele si statiile de lucru performante bazate pe varianta PCI-X 266 a magistralei sa apara în anul 2003, iar cele bazate pe varianta PCI-X 533 sa apara în anul 2004. |
Low-Profile PCI |
Low-Profile PCI este un standard pentru placile de extensie destinate sistemelor care au la dis- pozitie un spatiu restrâns. Aceste placi utilizeaza aceleasi semnale, protocoale electrice si drivere software ca si placile de extensie conforme cu standardul PCI 2.2, în varianta pe 32 de biti. Toate semnalele sunt de 3,3 V. Specificatiile Low-Profile PCI reprezinta o anexa la standardul magistralei PCI 2.2 conventio- nale, fiind aprobate si publicate de grupul PCI-SIG la începutul anului 2000. Aceste specificatii defi- nesc doua tipuri de placi de extensie si un nou sistem de montare. Cele doua tipuri de placi, denumite MD1 si MD2, au înaltimea de 85 mm, MD1 având o lungime mai redusa. Placile Low-Profile PCI consuma o putere mai redusa decât placile de extensie PCI obisnuite. Aceste placi permit o flexibilitate mai mare la proiectarea calculatoarelor de birou si a serverelor. Pu- terea consumata mai redusa permite utilizarea unor surse de alimentare mai mici si reduce restrictiile datorate problemelor termice la proiectarea sistemelor. |
Mini PCI |
Mini PCI este un standard pentru perifericele integrate ale echipamentelor mobile. Acest stan- dard, a carei versiune 1.0 a fost publicata de grupul PCI-SIG la sfârsitul anului 1999, a fost elaborat în special pentru periferice de comunicatie, ca modemuri si placi de retea. Mini PCI defineste o placa de |
|