PCI Express

De la Wikipedia, enciclopedia liberă
Logo-ul PCI Express
Sloturi PCI Express (de sus în jos: x4, x16, x1 și x16), comparativ cu un slot PCI tradițional pe 32 de biți (partea inferioară)

PCI Express (Peripheral Component Interconnect Express) abreviat PCIe sau PCI-E, este un standard de magistrală serială pentru conectarea dispozitivelor auxiliare la o placă de bază. Scopul PCI Express este de a oferi o alternativă mai rapidă la magistralele PCI, PCI-X și AGP. Specificațiile magistralei PCIe provin din specificațiile 3GIO (Third Generation I/O), care au fost elaborate de Arapahoe Work Group. Acest grup era format din reprezentanți ai firmelor Compaq, Dell, Hewlett-Packard, IBM, Intel și Microsoft. Specificațiile au fost transferate în anul 2002 la organizația PCI-SIG (PCI Special Interest Group), un grup de peste 900 de firme care a elaborat și actualizat standardele diferitelor versiuni ale magistralelor anterioare PCI și PCI-X. Noua magistrală a fost redenumită PCI Express, nume care reflectă atât viteza ridicată a magistralei, cât și compatibilitatea software a acesteia cu generațiile anterioare PCI și PCI-X. Prima versiune PCIe 1.0a a fost lansată în iulie 2002 de Intel. Doi ani mai târziu, Intel a lanst primul chipset cu suport PCIe pentru PC-uri, cunoscut sub numele de cod Grantsdale. [1] Specificația actuală este PCIe 4.0 și a fost lansată în 2017, versiunea 5.0 a fost planificată pentru 2019. În prezent, slotul PCI Express a înlocuit complet sloturile AGP, PCI si PCI-X. [2]

Caracteristici[modificare | modificare sursă]

Principalele caracteristici ale magistralei PCIe sunt următoarele:

  • Unifică arhitectura de I/E pentru diferite tipuri de sisteme, cum sunt calculatoare de birou, laptopuri, stații de lucru, servere, platforme de comunicație și sisteme înglobate.
  • Permite interconectarea atât a circuitelor integrate de pe placa de bază, cât și a plăcilor de extensie prin intermediul unor conectori sau cabluri.
  • Comunicația este bazată pe pachete, cu rată de transfer și eficiență ridicate.
  • Interfața este serială, ceea ce permite reducerea numărului de pini și simplificarea conexiunilor.
  • Performanța este scalabilă, obținută prin posibilitatea implementării unei anumite interconexiuni cu ajutorul mai multor benzi de comunicație.
  • Modelul software este compatibil cu arhitectura PCI clasică, ceea ce permite configurarea circuitelor PCIe, încărcarea sistemelor de operare și utilizarea driverelor software existente, fără a fi necesare modificări.
  • Permite o calitate diferențiată a serviciilor (QoS) prin posibilitatea de alocare a unor resurse dedicate pentru anumite fluxuri de date, de configurare a politicilor de arbitrare QoS pentru fiecare componentă și de a utiliza transferuri izocrone pentru aplicații în timp real.
  • Pune la dispoziție o gestiune avansată a puterii consumate prin identificarea posibilităților de gestiune a puterii consumate de către fiecare periferic, trecerea unui periferic într-o stare cu un anumit consum de putere și recepționarea notificărilor asupra stării curente a perifericului.
  • Asigură integritatea datelor la nivelul legăturii pentru toate tipurile de tranzacții.
  • Permite raportarea și gestionarea avansată a erorilor pentru îmbunătățirea izolării defectelor și recuperarea erorilor.
  • Permite Hot-Swap și Hot-Plug (conectarea și deconectarea perifericelor în timpul funcționării)[3]

Arhitectura[modificare | modificare sursă]

Reprezentare de bază a arhitecturii PCIe

PCI Express este o magistrală de comunicație punct-la-punct de mare viteză și full duplex (bidirecțional) care transferă informațiile sub formă de pachete numite și “benzi”. Această arhitectură serială, oferă posibilitatea de configurații multi-card, care se pot realiza în Scalable Link Interface (SLI) sau AMD Crossfire. Toate dispozitivele cuplate la magistrală conțin buffere FIFO de transmisie și recepție.

Fiecare bandă poate transporta 250 MB/s în fiecare direcție. În standardul PCI Express, numărul de benzi este de obicei precizat prin nominalizarea numărului de benzi cu prefixul “x” în față (ex. PCI Express x16). Prin comparație, o singură bandă PCI Express are aproape dublul ratei de transfer al standardului PCI, o magistrală cu 4 benzi are rata de transfer comparabilă cu PCI-X, iar o magistrală PCI Express x8 are o rată de transfer comparabilă cu AGP 8x.

Fiecare bandă a unei conexiuni PCI Express conține două perechi de fire – unul pentru a trimite și unul pentru a primi. Pachetele de date sunt transmise pe bandă la o rată de un bit pe ciclu. O conexiune x1, cea mai mică conexiune PCIe, are o bandă formată din patru fire. Acesta efectuează un bit pe ciclu în fiecare direcție. O conexiune x2 conține opt fire și transmite doi biți deodată, o conexiune x4 transmite patru biți, ș.a.m.d. Celelalte configurații sunt x12, x16 și x32. Conexiunea PCI Express suportă până la 32 de benzi pentru o conexiune, astfel fiind posibilă o rată maximă de transfer de 8GB/s în fiecare direcție.[4]

Arhitectura magistralei seamănă cu arhitectura USB, viteza superioară fiind asigurată de un număr mai mare de canale seriale prin care se transferă date simultan. Un canal conține 2 linii de transmisie seriale unidirecționale (simplex), fiecare linie fiind compusă din 2 fire cu transmisie diferențială LVDS (Low Voltage Differential Signaling[5]

Topologie[modificare | modificare sursă]

Un sistem PCIe este compus din legături PCIe care interconectează un set de componente. Principalele componente ale acestei topologii sunt un complex rădăcină, multiple puncte terminale (dispozitive de I/E), un comutator și o punte PCIe-PCI, interconectate prin legături PCIe.

  • Complex rădăcină: este dispozitivul care conectează unul sau mai multe procesoare și subsistemul de memorie la dispozitivele de I/E. Acest dispozitiv reprezintă rădăcina unei ierarhii de I/E. Complexul rădăcină poate avea mai multe porturi PCIe. Fiecare port definește un domeniu ierarhic separat. Un domeniu ierarhic poate fi compus dintr-un singur punct terminal sau o subierarhie conținând unul sau mai multe comutatoare și puncte terminale. Toate dispozitivele și legăturile asociate cu un complex rădăcină, care sunt conectate la acesta direct sau indirect (prin comutatoare și punți) reprezintă o ierarhie. Complexul rădăcină conține o magistrală internă, reprezentând magistrala cu numărul 0 din întreaga ierarhie. Acest dispozitiv inițiază cereri de tranzacție din partea unui procesor, transmite pachete de la porturile sale și recepționează pachete la aceste porturi pe care le transmite la memorie. În mod opțional, un complex rădăcină cu mai multe porturi poate ruta pachete de la unul din porturi la un alt port.
  • Puncte terminale (endpoints): reprezintă dispozitive periferice care participă la tranzacțiile PCIe. Există două tipuri de puncte terminale: inițiator și destinație. Un punct terminal inițiator inițiază o tranzacție în sistemul PCIe, iar un punct terminal destinație răspunde la tranzacțiile care îi sunt adresate. Într-o ierarhie PCIe, pe lângă puncte terminale PCIe, pot exista și puncte terminale compatibile cu generațiile anterioare ale magistralei PCI. Ca și în cazul magistralei PCI clasice, dispozitivele PCIe pot avea până la opt funcții logice, astfel încât un punct terminal poate fi compus din până la opt funcții numerotate de la 0 la 7. Fiecărui punct terminal i se atribuie un identificator de dispozitiv (ID) care se compune din numărul magistralei, numărul dispozitivului și numărul funcției.
  • Comutator: ansamblu logic de mai multe punți virtuale între diferite magistrale PCI, fiecare punte fiind asociată cu un port al comutatorului. Aceste punți sunt conectate printr-o magistrală internă. Unul din porturile comutatorului este conectat la complexul rădăcină, iar celelalte porturi sunt conectate la puncte terminale sau la alte comutatoare. Pentru programele de configurare, un comutator apare ca două sau mai multe punți logice între magistrale PCI. Comutatorul transferă pachete de la oricare din porturile sale de intrare la unul din porturile de ieșire, într-un mod similar cu o punte PCI-PCI. Pachetele sunt transferate printrun mecanism de rutare care se bazează fie pe o adresă, fie pe un identificator. Se utilizează un mecanism de arbitrare prin care se determină prioritatea cu care sunt transferate pachetele de la porturile de intrare la cele de ieșire.

Nivele[modificare | modificare sursă]

Un sistem PCIe este structurat pe un număr de cinci nivele logice:

  • Nivelul de configurare: gestionează configurarea dispozitivelor PCIe de către sistemul de operare pe baza specificațiilor plug-and-play pentru inițializarea, enumerarea și configurarea dispozitivelor de I/E.
  • Nivelul software: interacționează cu sistemul de operare prin intermediul acelorași drivere ca și magistrala PCI convențională. Nivelul software transmite nivelului tranzacțiilor informațiile necesare pentru a crea secțiunea principală a pachetului.
  • Nivelul tranzacțiilor: gestionează transmiterea și recepția informațiilor utilizând un protocol bazat pe pachete.
  • Nivelul legăturii de date: asigură integritatea transferurilor de date prin detecția erorilor cu ajutorul unui cod ciclic redundant (Cyclic redundancy check - CRC).
  • Nivelul fizic: realizează transmiterea pachetelor pe legăturile seriale PCIe. Nivelul fizic realizează transmisia pe o legătură PCIe a pachetelor recepționate de la nivelul legăturii de date. De asemenea, recepționează pachete de pe o legătură PCIe și le transmite la nivelul legăturii de date. Nivelul fizic este împărțit în nivelul fizic logic și nivelul fizic electric.
    • Nivelul fizic logic conține circuite logice pentru procesarea pachetelor înaintea transmisiei acestora pe o legătură PCIe și pentru procesarea pachetelor recepționate de pe o legătură PCIe înaintea transmisiei lor la nivelul legăturii de date.
    • Nivelul fizic electric reprezintă interfața analogică utilizată pentru conectarea la legătura PCIe. Acest nivel constă din transmițătoare și receptoare diferențiale pentru fiecare bandă de comunicație a unei legături PCIe.

Ultimele trei nivele sunt nivele logice care prin specificațiile PCIe definesc arhitectura dispozitivelor PCIe. Fiecare din aceste nivele se poate diviza în două secțiuni, una care procesează informațiile care vor fi transmise și una care procesează informațiile recepționate.

Conectare[modificare | modificare sursă]

Orice dispozitiv PCI Express poate funcționa în orice slot, dacă slotul are același număr sau mai multe linii. Acest lucru permite montarea plăcii PCI Express cu conectorul x1 în slotul x16 pe placa de bază.

O placă video PCIe se va potrivi într-un slot de dimensiunea lui sau mai mare, dar nu într-un slot mai mic. Numărul de linii care se conectează la slot poate fi mai mic decât numărul maxim suportat fizic de slotul PCIe. Un exemplu este slotul x8 care rulează doar la 1x; aceste sloturi pot accepta plăci video 1x, 2x, 4x sau 8x, dar vor rula exclusiv la viteza 1x. Numărul maxim de linii este stabilit în timpul secvenței de boot printr-o metodă de negociere.

Dimensiunea oricărei plăci de extensie PCI Express, precum și numărul de pini, sunt dictate de numărul de benzi și de conexiunile totale. Același lucru este valabil pentru toate versiunile PCIe. Dimensiunile PCIe disponibile cele mai frecvente și numărul corespunzător de pini sunt după cum urmează:

  • PCI Express x1: 25mm, 18 pini
  • PCI Express x4: 39 mm, 32 pini
  • PCI Express x8: 56 mm, 49 pini
  • PCI Express x16: 89 mm, 82 pini

Din punct de vedere al alimentării cu energie electrică a perifericelor, magistral PCI Express poate oferi un maxim de 75 Watt, față de cei 40 Watt oferiți de portul AGP.

Viteza de conectare PCI Express
Versiunea
PCI Express
Anul Metoda de
codificare
Viteza de
transfer
Lățime de bandă
× 1 × 2 × 4 × 8 × 16
1.0 2002 8b/10b 2,5 GT/s 250 MB/s 0,50 GB/s 1,0 GB/s 2,0 GB/s 4,0 GB/s
2.0 2007 8b/10b 5 GT/s 500 MB/s 1,0 GB/s 2,0 GB/s 4,0 GB/s 8,0 GB/s
3.0 2010 128b/130b 8 GT/s 984,6 MB/s 1,97 GB/s 3,94 GB/s 7,88 GB/s 15,8 GB/s
4.0 2017 128b/130b 16 GT/s 1,969 GB/s 3,94 GB/s 7,88 GB/s 15,75 GB/s 31,5 GB/s
5.0 2019 128b/130b 32 GT/s 3,938 GB/s 7,88 GB/s 15,75 GB/s 31,51 GB/s 63,0 GB/s
6.0 2021 128b/130b ~64 GT/s ~8 GB/s ~16 GB/s ~32 GB/s ~64 GB/s ~128 GB/s

Compatibilitate[modificare | modificare sursă]

Din punct de vedere al compatibilității, PCI Express este compatibil din punct de vedere software cu toate sistemele de operare și programele actuale nefiind nevoie de un update la software.
În ceea ce privește modurile fizice de interconectare, sloturile PCI Express au mărimea fizică definită de numărul de benzi folosite de magistrală. Astfel, o placă de expansiune ce folosește mai multe benzi nu poate fi conectată într-un slot ce permite folosirea de mai puține benzi, însă o placă de expansiune ce folosește mai puține benzi poate funcționa fără probleme într-un slot fizic ce permite mai multe benzi de comunicație.

Magistrala PCIe utilizează același model de comunicație ca și magistralele PCI și PCI-X ceeace permite utilizarea și păstrarea compatibilității cu sistemele de operare și driverele software existente, care nu necesită modificări. [6][7]

Versiuni[modificare | modificare sursă]

PCI Express 1.0a[modificare | modificare sursă]

Prima versiune a specificațiilor magistralei PCIe a fost publicată de organizația PCI-SIG în anul 2003. Această versiune specifică o frecvență de funcționare de 2,5 GHz și o rată maximă a datelor de 250 MB/s pe o bandă de comunicație. Metoda de codificare utilizată este 8b/10b, prin care fiecare octet este codificat printr-un simbol de 10 biți.

PCI Express 1.1[modificare | modificare sursă]

Versiunea 1.1 a fost publicată în anul 2005. Această versiune a introdus mai multe îmbunătățiri ale magistralei, este compatibilă cu PCI Express 1.0a, dar nu a specificat rate mai ridicate ale datelor.

PCI Express 2.x[modificare | modificare sursă]

Specificațiile pentru versiunea 2.0 au fost publicate în anul 2007, iar pentru PCI Express 2.1 în 2009. Frecvența de funcționare a fost dublată la 5 GHz, ceea ce permite o rată maximă a datelor de 500 MB/s pe o bandă de comunicație. Specificațiile PCIe 2.x introduc îmbunătățiri ale protocolului de transfer punct la punct și ale arhitecturii nivelului software. Conectorii plăcilor de bază PCIe 2.x sunt compatibili cu plăcile de extensie PCIe 1.x. În general, plăcile de extensie PCIe 2.x sunt compatibile cu plăcile de bază PCIe 1.x, funcționând la frecvența mai redusă a acestora. Metoda de codificare utilizată este aceeași, 8b/10b.
Intel a fost primul chipset compatibil cu PCIe 2.0, urmat și de alți producători (Abit, Asus, Gigabyte). AMD a început să susțină PCIe 2.0 cu seria de chipset-uri AMD 700, iar nVidia cu MCP72.

PCI Express 3.0[modificare | modificare sursă]

Versiunea 3.0 a specificațiilor PCIe fost publicată de organizația PCI-SIG în anul 2010. Frecvența de funcționare a crescut la 8 GHz, rata maximă a datelor fiind de 8 GT/s (giga transferuri pe secundă) sau 985 MB/s pe o bandă de comunicație. Specificațiile au introdus îmbunătățiri legate de protocolul electric, integritatea datelor și recuperarea erorilor. De asemenea, a fost introdusă codificarea 128b/130b a datelor, care este mai eficientă decât codificarea 8b/10b utilizată la versiunile PCIe anterioare. Noile caracteristici ale specificației PCI Express 3.0 includ o serie de optimizări pentru o semnalizare îmbunătățită și integritatea datelor, inclusiv transmițător și receptor egalizare, îmbunătățiri PLL, recuperare de date de ceas și îmbunătățiri ale canalelor pentru topologiile acceptate în prezent.

PCI Express 3.1[modificare | modificare sursă]

Specificația PCI Express 3.1 a fost lansată la începutul lui 2014, consolidând diferite îmbunătățiri ale specificației PCI Express 3.0.

PCI Express 4.0[modificare | modificare sursă]

Versiunea 4.0 a fost publicată în anul 2017. Această versiune dublează rata maximă a datelor asigurată de versiunea 3.0, la 16 GT/s sau 1,97 GB/s pe o bandă de comunicație. Puterea consumată a dispozitivelor în starea lor activă și inactivă a fost optimizată. De asemenea, această versiune introduce OCuLink 2, (o alternativă la conectorul Thunderbolt) care este versiunea a doua a conectorului OCuLink (Optical-Copper Link), cu până la patru benzi de comunicație (7,88 GB/s) pe fire de cupru.[8]

PCI Express 5.0[modificare | modificare sursă]

În iunie 2017, organizația PCI-SIG a anunțat începerea elaborării specificațiilor pentru versiunea PCIe 5.0, la care rata maximă a datelor să fie dublată din nou la 32 GT/s pe o bandă de comunicație. Versiunea finală a specificațiilor este de așteptat să fie publicată în primul trimestru al anului 2019.[9][10]

PCI Express 6.0[modificare | modificare sursă]

Specificația finală a standardului PCI Express 6.0 este programată pentru publicare în 2021. Rata estimată de transfer de date va fi de 32 GB/s pentru 4 linii și 128 GB/s pentru 16 linii.[11]

Aplicații[modificare | modificare sursă]

Placă video PCI Express x16

Una dintre cele mai frecvente utilizări ale sloturilor PCI Express este conectarea diferitelor carduri de extensie. În general, aceasta va include o placă video, placă de sunet, modemuri, carduri de rețea (cu fir și fără fir), Tuner TV, captură video, USB, SSD.[12]

Alte interfețe cu PCIe[modificare | modificare sursă]

Conector Thunderbolt

O serie de carduri de extensie au fost dezvoltate pe baza PCIe. Acestea includ:

  • PCIe Mini Card: înlocuiește cardul Mini PCI, având jumătate din dimensiunea acesteia; are o magistrală serială de 2,5 Gb/s, oferind o îmbunătățire semnificativă a conectivității.
  • ExpressCard: succesor al formatului PC Card ce utilizează PCI-Express x1
  • PCI Express ExpressModule: un factor modular hot-plug pentru servere și stații de lucru
  • SATA Express: este o interfață pentru conectarea SSD-urilor
  • Card XQD: standard de card flash bazat pe PCI Express produs de CompactFlash Association
  • XMC: similar cu factorul de formă CMC/PMC
  • AdvancedTCA: o completare la CompactPCI pentru aplicații mai mari; suportă topologii backplane seriale
  • AMC: o completare la specificația AdvancedTCA; suportă procesoare și module de I/O pe plăci ATCA (x1, x2, x4 sau x8 PCIe).
  • FeaturePak: un format redus de card de extensie (43 × 65 mm) cu factor de formă mic pentru sisteme înglobate
  • Universal IO: adaptor network produs de Super Micro Computer Inc
  • Thunderbolt: interfață de la Intel care combină protocoalele DisplayPort și PCIe într-un factor compatibil cu Mini DisplayPort.
  • Serial Digital Video Out (SVDO): permite utilizarea unui slot PCI Express x16 pentru a adăuga interfețe suplimentare de semnalizare video, cum ar fi ieșirile monitorului VGA și DVI, ieșiri SDTV și HDTV sau intrări TV Tuner pe o placă de bază care conține un procesor grafic integrat Intel 9xx.
  • M.2: o îmbunătățire a mSATA
  • U.2: cunoscut anterior ca SFF-8639, este o interfață pentru conectarea SSD-urilor. Utilizează până la patru benzi PCI Express.
  • M-PCIe (Mobile PCIe): specificația M-PCIe adaptează protocolul PCI Express pentru utilizarea cu MIPI M-PHY aplicații care necesită un consum scazut de energi, cum ar fi tablete și smartphone-urile. [13]

Vezi și[modificare | modificare sursă]

Referințe și note[modificare | modificare sursă]

Legături externe[modificare | modificare sursă]

Commons
Commons
Wikimedia Commons conține materiale multimedia legate de PCI Express

Bibliografie[modificare | modificare sursă]

  • Ravi Budruk, Tom Shanley, Don Anderson: PCI Express System Architecture, Addison-Wesley, Boston 2004, ISBN 0-321-15630-7