Ce trebuie să știm despre PCI Express

Magistrale

Într-un calculator, procesorul “discută” cu un dispozitiv periferic printr-o cale de comunicație numită magistrală. Sau bus, cum ar zice americanul, care ne face să ne imaginăm un fel de autobuz care transportă biții de colo-colo.

De fapt, tradițional vorbind, o magistrală era formată dintr-un număr de  “fire” (trasee de cablaj imprimat) ce transmiteau fizic semnalele electrice care transportau biții între mai multe componente ale calculatorului atașate la respectiva magistrală. De exemplu dacă aveam 8 trasee conductoare în cadrul magistralei, prin ele se transportau 8 biți în paralel, deci simultan. În zilele noastre noțiunea de  magistrală are un sens mai larg: este orice sistem fizic» ce oferă din punct de vedere logic aceeași funcționalitate ca o magistrală electrică paralelă (definită mai sus).

Din 1981, când a văzut PC-ul lumina zilei, și până-n zilele noastre, au fost făurite mai multe tipuri de astfel de magistrale, cum ar fi ISA (Industry Standard Architecture – cei mai “bătrâni” o visează ca pe un cal breaz), EISA (Extended ISA), MCA (Micro Channel Architecture), VLB (VESA Local Bus), PCI (Peripheral Component Interconnect), PCI-X (eXtended PCI), AGP (Accelerated Graphics Port). Și, bineînțeles,  contemporanul PCI Express (notat pe scurt ca PCI-E sau PCIe).

Principala diferență între toate tipurile astea de magistrale este dată de numărul de biți care pot fi transportați simultan și de frecvența de tact la care operează magistrala.

Magistrală Frecvența
tactului
Număr biți
per transfer
Nr. transferuri per
impuls de tact
Rata maximă
de transfer
PCI 33 MHz 32 1 133 MB/s
PCI 66 MHz 32 1 266 MB/s
PCI 33 MHz 64 1 266 MB/s
PCI 66 MHz 64 1 533 MB/s
PCI-X 64 66 MHz 64 1 533 MB/s
PCI-X 133 133 MHz 64 1 1066 MB/s
PCI-X 266 133 MHz 64 2 2132 MB/s
PCI-X 533 133 MHz 64 4 4266 MB/s
AGP x1 66 MHz 32 1 266 MB/s
AGP x2 66 MHz 32 2 533 MB/s
AGP x4 66 MHz 32 4 1066 MB/s
AGP x8 66 MHz 32 8 2133 MB/s

Una din cele mai longevive magistrale este PCI, care datează din 1992. Numai că viteza maximă de 133 MB/s permisă de PCI-ul clasic în ziua de azi este doar o glumă dacă ne gândim la necesitățile aplicațiilor contemporane. Ca să poată fi conectate plăcile video mai noi, care mâncau lățime de bandă pe pâine, Intel a creat în 1997 magistrala AGP, degrevând magistrala PCI de traficul intens cu placa video. Dar și AGP-ul este depășit în zilele noastre de când a apărut, în 2004, PCI Express.

Este PCI Express o magistrală?

PCI Express (PCI-E sau PCIe) a fost creat pentru a satisface nevoile crescute de lățime de bandă nu doar ale plăcilor video ci și ale altor tipuri de periferice cum ar fi plăcile Gigabit Ethernet și controllerele RAID.

O deosebire importantă față de PCI este faptul că PCI-E nu este propriu-zis o magistrală din moment ce conectează doar două dispozitive. Spre deosebire de PCI, unde toate sloturile PCI standard de pe placa de bază sunt conectate la aceeași magistrală și deci împart aceeași cale fizică de transmitere a datelor, la PCI-E există o cale fizică distinctă de transmitere a datelor între fiecare slot PCI-E și chipset-ul plăcii de bază. Astfel traficul efectuat de un dispozitiv PCI-E nu consumă din lățimea de bandă disponibilă celorlalte dispozitive PCI-E.

Mai mulți biți simultan = viteză mai mare? Nu neapărat

Când s-a născut bătrâna magistrală ISA, în 1981, ea știa să transfere câte 8 biți simultan. Ulterior, în 1984, ea a fost extinsă ca să poată transfera și 16 biți simultan (dublând astfel viteza de transfer). Magistrala PCI a început prin a transfera 32 biți simultan și a ajuns să poată transfera și 64 biți simultan.

Constatăm cum în lumea calculatoarelor paralelismul a tot câștigat teren în ultimele decenii și astfel, urmând tendința firească de paralelizare a transferului datelor, de “lărgire” a căilor de comunicație, ne-am aștepta ca PCI-E să știe să transfere chiar mai mult de 64 biți simultan. Eroare maximă. Comunicația pe PCI-Express este serială. Adică bit cu bit.

Cum așa? Ce se întâmplă?

Explicația este următoarea: În decursul timpului, creșterea vitezei de transmisie a datelor s-a făcut nu doar prin paralelizarea transferului ci și prin creșterea frecvenței tactului la care operează magistrala. La valori mari ale frecvenței de tact, însă, interferențele magnetice » între traseele învecinate ale magistralei devin foarte pronunțate.

La valori mari ale frecvenței de tact, în afară de pericolul alterării biților din cauza interferențelor electromagnetice, mai apare încă un fenomen foarte deranjant, cauzat de faptul că fizic este imposibil ca traseele paralele care formează magistrala să aibă caracteristici electrice  perfect identice (în primul rând din cauza lungimilor ușor diferite). Deși în cursul unui transfer toți biții sunt transmiși simultan de dispozitivul transmițător, biții transmiși prin traseele mai scurte vor ajunge înaintea celor transmiși pe traseele mai lungi și atunci dispozitivul de la destinație va trebui să aștepte sosirea tuturor biților. La frecvențe mari fenomenul devine deranjant pentru că timpii de așteptare devin comparabili cu timpii necesari transmisiei, performanța fiind serios afectată.

În astfel de condiții devine mult mai simplă implementarea unei magistrale seriale care utilizează doar două fire pentru transmisia de date (transmisia fiind de tip diferențial oferă o imunitate mult mai bună la interferențe electromagnetice) iar frecvența de operare a unei magistrale seriale poate fi mult mai mare decât cea a unei magistrale paralele pentru că nu mai apar probleme legate de interferența electromagnetică și de timpi de propagare diferiți. O altă diferență între comunicația serială și paralelă este că cea paralelă este de obicei half-duplex (aceleași trasee sunt folosite atât pentru transmisia cât și pentru recepția de date) iar cea serială este full-duplex (se folosesc seturi de trasee diferite pentru transmisia respectiv pentru recepția datelor).

Așa se face că prin utilizarea unei transmisii seriale în PCI Express s-au obținut performanțe mai bune decât ar fi fost posibile folosind o magistrală paralelă clasică.

PCI Express e ca o autostradă

Ziceam că PCI Express folosește o transmisie serială și este full-duplex, utilizând o pereche de fire pentru fiecare din cele două sensuri de transmisie. În engleză cele două perechi de fire sunt denumite lane – nu știu să existe o traducere consacrată în română. Putem să-i zicem bandă, pistă, linie etc. Voi folosi termenul de bandă pentru că seamănă cu o șosea cu o bandă pe sens.

O magistrală PCI Express cu o singură bandă se numește PCI Express x1. La fel cum există șosele (autostrăzi) cu mai multe benzi pe sens, există și magistrale PCI Express pe mai multe benzi. Nu este, deci, greu de anticipat că magistralele PCI Express cu un număr de 2, 4, 8, 16 sau 32 benzi se vor numi PCI Express x2, x4, x8, x16 respectiv  x32.

Transmisia biților pe o bandă PCI-E se realizează serial după o codare 8b/10b» iar rata de transfer maximă pe fiecare bandă este de 250 MB/s în fiecare din cele două sensuri ceea ce înseamnă aproape dublu față de viteza de 133MB/s de la PCI. În cazul unui PCI-E pe mai multe benzi, rata de transfer se multiplică proporțional. De exemplu  într-un sistem PCI-E x8, rata de transfer este de 250MB/s * 8 = 2GB/s.

Magistrala Rata de transfer maximă
PCI 133 MB/s
AGP 2x 533 MB/s
AGP 4x 1066 MB/s
AGP 8x 2133 MB/s
PCI Express x1 250 MB/s
PCI Express x2 500 MB/s
PCI Express x4 1000 MB/s
PCI Express x8 2000 MB/s
PCI Express x16 4000 MB/s
PCI Express x32 8000 MB/s

Vitezele specificate la PCI Express se referă la prima versiune (1.0), cea din 2004. Începând din 2007 există PCI Express versiunea 2 care folosește un tact de 5GHz față de 2.5GHz utilizat la versiunea 1 și astfel dublează rata de transfer per bandă de la 250MB/s la 500MB/s. Viteza pentru PCI-E x32 crește, deci, corespunzător, de la 8000MB/s la 16000MB/s. Plăcile PCI-E din versiunea 2 se pot conecta în socluri versiunea 1, la fel și plăcile din versiunea 1 pot opera în socluri cu versiunea 2, în ambele cazuri ele operând la viteza mai mică specificată de versiunea 1.

Este demn de remarcat faptul că, spre deosebire de celelalte magistrale, PCI Express este hot plug, adică se pot conecta și deconecta plăci PCI Express din mers, fără a opri calculatorul.

Magistrala PCI Express definește mai multe tipuri de sloturi, în funcție de numărul de benzi, cum se poate vedea și în imaginea următoare (de remarcat faptul că nu există sloturi x32 și deci nici plăci x32):

Ce urmează? PCI-E versiunea 3.0

În 2007 a fost anunțată versiunea 3 ale cărei specificații finale ar trebui să apară în 2010 sau cel târziu în 2011, versiune care, de asemenea, va fi compatibilă cu primele două. Versiunea 3 a PCI-E va oferi și ea o viteză de transfer dublă față de versiunea anterioară, prin creșterea frecvenței tactului la 8GHz față de cei 5GHz din versiunea 2 și prin utilizarea codării 128b/130b care pierde numai 1.5% față de cei 20% care se pierd la codarea 8b/10b utilizată în versiunea 2 a specificației PCI-E.

Share on Facebook
Share on LinkedIn

Poate fi vorba, ca și în definiția clasică, tot despre un set de trasee electrice la care sunt atașate fizic toate dispozitivele implicate, însă putem avea și cazul în care dispozitivele sunt “înlănțuite”, fiecare dispozitiv fiind conectat fizic la următorul respectiv precedentul (daisy-chaining). Sau toate dispozitivele pot fi conectate la un hub central cum este cazul la USB. O magistrală poate transporta biții tot în paralel (adică mai mulți biți simultan cum e la PCI) sau serial (adică bit cu bit cum e cazul la SATA = Serial ATA).Powered by Hackadelic Sliding Notes 1.6.5
Când curentul electric trece printr-un traseu conductor, în jurul acestuia se creează un câmp electromagnetic. Dacă acest câmp devine foarte puternic, în traseele învecinate apar zgomote (semnale parazite) care alterează valoarea biților transmiși.Powered by Hackadelic Sliding Notes 1.6.5
Pentru fiecare secvență de 8 biți transferați se transmit fizic 10 biți (la fel cum se întâmplă și în rețelele Fast Ethernet). Asta înseamnă că doar 25% din combinațiile posibile de 10 biți sunt valide. Combinațiile valide sunt alese în așa fel încât la destinație semnalul de tact folosit la transmiterea datelor să poată fi ușor reconstituit – asta înseamnă că într-o combinație de 10 biți validă nu vor exista prea mulți biți identici învecinațiPowered by Hackadelic Sliding Notes 1.6.5

Publicat în: Glosar

Etichete:

Despre autor: Este fetiţa trupei, cea guralivă şi amuzantă; ne place s-o buzărim de câte ori avem ocazia ca s-o ofticăm, dar nu ne iese întotdeauna pentru că din nefericire ține la glumă. Atenție, deși e fată nu trebuie subestimată pentru că este deţinătoarea unor cunoştinţe solide de IT pe care ştie să le pună în ecuație ca să obțină ce vrea.

RSSComentarii

Comentează | URL trackback

  1. laur spune:

    Foarte bun articolul la obiect si exact fara cuvinte tehnice ce baga omul in ceata….

  2. Mariana spune:

    Magistrala serială PCI Express (topologia, structura legăturii puct la punct, ”data stripping”, protocolul )
    Sa imi rs si mie cineva la intrebarea aceasta va rog


Trackbacks

  1. bagamare.ro spune:

    Ce trebuie să știm despre PCI Express | IT4Fans – te ajută să te miști în IT!…

    Magistrale Într-un calculator, procesorul “discută” cu un dispozitiv periferic printr-o cale de comunicație numită magistrală. Sau bus, cum ar zice americanul, care ne face să ne imaginăm un fel de autobuz care transportă biții de colo-colo….

Comentează




Dacă vrei să apară o poză la comentariul tău, fă-ți rost de un Gravatar.