P. 1
radna verzija_stox

radna verzija_stox

|Views: 57|Likes:
Published by Zeljko PEkic
pci express
pci express

More info:

Published by: Zeljko PEkic on Jun 30, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

10/27/2011

pdf

text

original

Sections

Specijalistički rad UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKULTET- PODGORICA STUDIJE PRIMIJENJENOG RAČUNARSTVA

PCI Express magistrala

Podgorica, jul 2010. godine UNIVERZITET CRNE GORE ELEKTRO TEHNIČKI FAKULTET- STUDIJE PRIMIJENJENOG RAČUNARSTVA Broj __________ Podgorica, ________ 2010. godine

Specijalistički rad 201 0

PCI Express magistrala
- SPECIJALISTIČKI RAD –

Datum izdavanja rada: Podgorica _______ 2010. godine.

Datum predaje rada: Podgorica ______ 2010. godine.

Mentor:
2

Kandidat:

Specijalistički rad 201 0
_________________________ Prof. dr Radovan Stojanović ________________________

3

Specijalistički rad 201 0

IZJAVA O SAMOSTALNOM RADU
Ovim izjavljujem da sam specijalistički rad uradio samostalno, uz pomoć mentora i navedene literature. Kandidat: _______ __________ _____

Rad odbranjen dana ____________ 2010. godine pred komisijom u sastavu: 1. ______________________ ( predsjednik ) 2. ______________________ ( mentor ) 3. ______________________ ( član ) Sa ocjenom ______________ ( ______ )
4

Specijalistički rad 201 0
Sadržaj
1. Uvod..................................................................................................................... 12 2. Nasljednik PCI magistrale.....................................................................................13 3. Uporedne karakteristike PCI magistrala...............................................................14 3.1. Propusnost magistrala i broj slotova................................................................14 3.2. Agregatna propusnost PCI Express magistrale.................................................15 4. Pregled PCI arhitekture koje su prethodile PCI Express arhitekturi.......................16 4.1. PCI magistrala na 33 MHz..................................................................................16 4.2. PCI magistrala na 66 MHz..................................................................................26 4.3. Magistrala PCI-X 1.0 na 66 MHz i 133 MHz........................................................28 4.4. Magistrala PCI-X 2.0 (DDR i QDR)......................................................................30 5. PCI Express magistrala.........................................................................................31 5.1. PCI Express topologija.......................................................................................36 5.2. Primjeri PCI Express arhitekture........................................................................38 6. Uvod u PCI Express transakcije............................................................................41 6.1. PCI Express transakcioni protokol......................................................................42 7. Slojevi PCI Express uređaja..................................................................................48 7.1. Pregled.............................................................................................................. 48 7.2. Slojevi uređaja i odgovarajući paketi.................................................................49 7.3. Uloga svakog sloja PCI Express uređaja............................................................55 8. Performanse PCI Express sistema i efikasnost prenosa podatka..........................68 9. Zaključak.............................................................................................................. 69 10. Literatura............................................................................................................ 71 5

Specijalistički rad 201 0

6

Specijalistički rad 201 0

Popis slika i tabela:
Slika 1: Arhitektura računara zasnovanog na PCI magistrali na 33 MHz Slika 2: Tipični PCI paketni (burst) ciklus magistrale Slika 3: Transakcioni modeli PCI magistrale Slika 4: Prekidna tehnika u PCI sistemima Slika 5: Rukovanje greškama u PCI sistemima Slika 6: PCI protokol ponovnog pokušaja Slika 7: PCI protokol prekida prenosa Slika 8: Mapa adresnog prostora Slika 9: Novija generacija PCI čip- setova Slika 10: Arhitektura računara zasnovanog na PCI magistrali na 66 MHz Slika 11: Arhitektura servera zasnovanog na PCI-X magistrali na 66 MHz/ 133 MHz Slika 12: Protokol dijeljenja transakcije u PCI-X sistemima Slika 13: Arhitektura računara zasnovanog na PCI-X 2.0 magistrali Slika 14: PCI Express Link Slika 15: Diferencijalni signal u PCI Express sistemima Slika 16: Topologija PCI Express sistema Slika 17: Primjer PCI Express arhitekture opšte namjene za stone i prenosive računare Slika 18: Primjer PCI Express arhitekture za servere/radne stanice Slika 19: Non-posted transakcija čitanja Slika 20: Non-posted transakcija čitanja sa zaključavanjem Slika 21: Non-posted transakcija upisa Slika 22: Posted transakcija u memoriju Slika 23: Posted transakcije porukama Slika 24: Slojevi PCI Express uređaja Slika 25: Izvorište i odredište TLP paketa Slika 26: Sastavljanje TLP paketa Slika 27: Rastavljanje TLP paketa Slika 28: Izvorište i odredište DLLP paketa Slika 29: Sastavljanje DLLP paketa Slika 30: Rastavljanje DLLP paketa Slika 31: Izvorište i odredište PLP paketa Slika 32: Tipični PLP paket Slika 33: Detaljna šema slojeva PCI Express uređaja Slika 34: Struktura TLP paketa na transakcionom sloju Slika 35: Proces upravljanja tokom 7

Specijalistički rad 201 0
Slika 36: Primjer načina ostvarivanja QoS-a kod PCI Express-a Slika 37: Klase saobraćaja i baferi virtuelnih kanala Slika 38: Arbitraža portova i arbitraža virtuelnih kanala kod komutatora Slika 39: Mehanizam ponovnog slanja paketa (ACK/NAK) Slika 40: Struktura TLP i DLLP paketa na sloju veze Slika 41: Non-posted transakcija na Link-u Slika 42: Posted transakcija na Link-u Slika 43: Struktura TLP i DLLP paketa na fizičkom sloju Slika 44: Električni fizički sloj

Tabela 1: PCI magistrale koje su prethodile PCI Express Tabela 2: Poređenje PCI magistrala po frekvenciji, propusnosti i broju slotova Tabela 3: Agregatisana propusnost PCI Express Link-a za različite obime Link-ova Tabela 4: PCI Express Non-Posted i Posted transakcije Tabela 5: Tipovi PCI Express TLP paketa Tabela 6: Agregatisana propusnost PCI Express Link-a za različite obime Link-ova

8

Specijalistički rad 201 0

Popis skraćenica:
3GIO - 3rd Generation I/O ACK - Acknowledge AGP - Accelerated Graphics Port CfgRd0, CfgRd1 - Configuration Read (Type 0 and Type 1) CfgWr0, CfgWr1 - Configuration Write (Type 0 and Type 1) COM - Comma Cpl - Completion without Data CplD - Completion with Data CplDLk -Completion with Data - associated with Locked Memory Read Requests CplLk - Completion without Data - associated with Locked Memory Read Requests CRC - Cyclic Redundancy Check DDR - Dual Data Rate DLLP - Data Link Layer Packet ECRC - End-to-End CRC EISA - Extended Industry Standard Architecture FCx - Flow Control DLLP FR-4 - Flame Resistant 4 FSB - Front Side Bus ICH - IO Controller Hub IDE - Integrated Drive Electronics IORd - I/O Read IOWr - I/O Write ISA - Industry Standard Architecture LCRC - Link CRC LPC - Low Pin Count LVDS - Low-Voltage Differential Signaling MCA - Micro Channel Architecture MCH - Memory Controller Hub MRd - Memory Read Request MRdLk - Memory Read Request - Locked access Msg - Message Request without data MsgD - Message Request with data MSI - Message Signaled Interrupt MWr - Memory Write Request NAK - No acknowledge PCI - Peripheral Component Interconnect PCI-XP - PCI Express PCMCIA - Personal Computer Memory Card Industry Association
9

Specijalistički rad 201 0
PLL - Phase-locked loop PLP - Physical Layer Packet PMx - Power Management DLLP QDR - Quad Data Rate QoS - Quality of Service RAID - Redundant Array of Independent Disks SCSI - Small Computer System Interface SIOM - Server IO Module TC - Traffic Class TLP - Transaction Layer Packet USB - Universal Serial Bus VC - Virtual Channel VESA - Video Electronics Standards Association

10

Specijalistički rad 201 0

Sažetak: Zadatak ovoga specijalističkog je analiza rada PCI Express magistrale i ukazati na njene osnovne karakteristike sa aspekta arhitekturne organizacije i performansi koje se mogu postići. Softverska kompatibilnost PCI Express arhitekture sa prethodnim generacijama PCI arhitektura znači da se stariji softver koji se koristio u prethodnim PCI arhitekturama, može, bez ikakvih promjena koristiti i u novim arhitekturama. Dakle, nema potrebe za razvojem novog softvera, čime se smanjuje cijena prelaza sa starih na novu arhitekturu. Ipak, PCI Express nudi i neke nove mogućnosti za čije će korišćenje biti neophodan nov softver. Hardverska kompatibilnost ipak nije postignuta. To praktično znači da stare PCI kartice za proširenje nije moguće utaknuti u nove, PCI Express slotove. Pa ipak, to ne znači da stare kartice treba odmah odbaciti, jer se PCI slotovi nalaze i na novim matičnim pločama. Oni se preko posebnih mostova priključeni na novu magistralu, i tako će biti sve dok PCI Express u potpunosti ne potisne PCI kartice iz upotrebe.

Abstract: The task of this expert analysis of the PCI Express bus and point out its main characteristics in terms of architectural organization and performance can be achieved. Software compatibility with PCI Express Architecture PCI architecture of previous generations means that the older software that has been used in previous PCI architectures, may, without any change of use and new architectures. So, no need for the development of new software, thus reducing the price of transition from old to new architecture. However, PCI Express offers some new possibilities for the use of which will need new software. Hardware compatibility is not achieved. This means that old PCI cards for expansion is not possible to plug the new PCI Express slots. Nevertheless, this does not mean that the old card should be immediately dismissed, because the PCI slots found on new motherboards. They are connected via special bridges to the new bus, and it will be until PCI Express does not fully suppress the PCI card in use.

11

Specijalistički rad 201 0
1. Uvod
Sa veoma brzim porastom performansi procesora, a i nekih perifernih uređaja, kao što su grafički i mrežni adapteri, magistrale prosto postaju usko grlo računarskog sistema. Neophodno je kontruisati magistrale koje će imati veću propusnost da bi performanse sistema mogle i dalje da se poboljšavaju. U suprotnom, neće imati efekta na povećanje performansi cjelokupnog sistema. To je jedan od ključnih razloga zašto se poslednjih godina ulaže mnogo napora u razvoj brzih PCI Express magistrala. Realizacija brzih magistrala suočena je sa brojnim problemima, prvenstveni problem je sam kanal za povezivanje. Problemi se inače javljaju pri nižim brzinama prenosa, tj.nižim taktnim frekvencijama, ali i pri većim brzinama prenosa. Zbog kraćeg trajanja bitskog intervala ovi problemi postaju još izraženiji i nikako se ne smiju zanemariti; potrebno ih je eliminisati kako bi dobili veće brzine prenosa. Sve veća popularnost serijskih magistrala doprinjela je razvoj pratećeg hardvera, sa kojim je omogućen brz prenos podataka, reda veličine nekoliko Gbit/s. U opšti trend prelaska na serijske magistrale uklapa se i PCI Express magistrala, o kojoj će biti riječi u ovom specijalističkom radu. Po nazivu reklo bi se da se radi o ubzanoj verziji široko rasprostranjene prirode PCI magistrale, koja se koristi u stonim i prenosnim računarima više od jedne decenije. Ali, PCI Express je mnogo više od toga. Softverski je kompatibilna sa prethodnim generacijama PCI magistrala, ali se u hardverskom pogledu drastično razlikuju. Ako upoređujemo stare sa novim generacijama PCI Express arhitekture, primjećujemo da se stariji softver koji se koristio u prethodnim generacijama, može, bez ikakvih promjena, koristiti i u novim arhitekturama. To znači da nema potrebe za razvojem novog softvera, čime se smanjuje cijena prelaska sa starih na nove arhitekture. Naravno, novi PCI Express nudi i neke dodatne mogućnosti, za čije će korišćenje biti neophodan nov softver. Hardverska kompatibilnost i dalje nije postignuta, a to praktično znači da stare PCI kartice za proširenje nije moguće utaknuti u nove PCI Express slotove. Pošto se PCI slotovi nalaze i na novim matičnim pločama, ne trebamo odmah odbaciti stare kartice. Tako će biti sve dok PCI Express u potpunosti ne potisne iz upotrebe PCI kartice. PCI Express, pored veće propusnosti karakteriše i veća efikasnost prenosa podataka. Pojednostavljeno je projektovanje štampanih ploča i čipova zahvaljujući serijskom načinu prenosa podataka, a samim tim i smanjena cijena. Osim toga, PCI Express uvodi i neke novine, kao što su podrška rada za Hot Plug, kvalitet usluge QoS (engl. Quality of Service), unaprijeđenje tehnike za upravljanje potroškom i pouzdaniji prenos podataka. Značajna je novina proširivost (skalabilnost) magistrale, koja omogućava projektantima sistema da obim magistrle prilagode konkretnim potrebama. PCI Express predstavlja treću generaciju brzih ulazno/izlaznih magistrala (stariji naziv 3GIO- 3rd Generation input/output) koje se koriste za međusobno povezivanje perifernih uređaja. Prvu generaciju su predstavljale magistrale ISA, EISA, VESA i Micro Channel (MCA), dok su drugu generaciju sačinjavale PCI, AGP i PCI-X magistrale. Ovaj specijalistički rad biće posvećen upravo PCI Express karticama. Najprije će biti prikazan evolutivni razvoj PCI Express-a, počev od PCI magistrale. Biće ukratko opisane
12

Specijalistički rad 201 0
osnovne karakteristike prethodnih arhitektura PCI kartica, kako bi se istakla prednost koje nudi PCI Express. Najzad, biće date ključne karakteristike PCI Express sistema. U drugom dijelu biće sa nešto više detalja opisana arhitektura PCI Express magistrale. Biće prikazana struktura PCI Express uređaja po slojevima, i ukratko opisana uloga svakog sloja. Takođe, biće objašnjen način formiranja paketa, prenos i prijem paketa na odredište. Na početku ovog rada date su skraćenice koje su korišćene u ovom specijalističkom radu, kao i popis slika i tabela.

2. Nasljednik PCI magistrale
Ako govorimo o istorijatu PCI (engl. Peripheral Component Interconnect) arhitekture su neprikosnoveno vladale tržištem PC računara više od jedne decenije. Vremenom, kako se povećavaju brzine procesora, memorije, kao i sa napretkom grafičkih i mrežnih interfejsa, povećava se potreba za većom propusnošću ulazno/izlazne magistrale. Konvencionalna PCI arhitektura, uprkos stalnom usavršavanju, nije u stanju da zadovolji ove potrebe i zato je potrebno razviti novu arhitekturu, PCI Express. PCI Express arhitektura je preuzela sve glavne karakteristike prethodne generacije magistrala, ali je donijela i par novih poboljšanja. Ona je u potpunosti softverski kompatibilna sa PCI i PCI-X, što ukazuje da se stari operativni sistemi, drajveri i korisnički programi mogu koristiti bez promjena na novim arhitekturama. Ako na to gledamo sa ugla hardvera, PCI Express se drastično razlikuje od svojih prethodnika. wPCI i PCI-X su paralelne višetačkaste magistrale (multi-drop), što ukazuje da veći broj uređaja dijeli zajedničku magistralu.Za razliku od njih, PCI Express je serijska magistrala kod koje se komunikacija ostvaruje po principu od tačke do tačke (point-to-point). Ako na ovo gledamo sa praktičnog aspekta, jednom vezom su povezana samo dva uređaja, čime se smanjuje električno opterećenje na vezi, a samim tim se stvaraju uslovi za primjenu većih taktnih frekvencija, odnosno uslovi za veću brzinu prenosa. Trenutno na tržištu imamo sisteme čija brzina prenosa iznosi 2.5 Gbit/s, mada je početkom ove godine (2010.) definisan novi standard PCI Express 3.0 sa brzinom prenosa od 8Gbit/s. Posledica serijske veze između dva uređaja je manji broj linija na štampanim pločama, čime se pojednostavljuje njihovo projektovanje, kao i sama cijena. Ne smijemo svakako zaboraviti još jednu prednost PCI Express-a, a to je skalabilnost. U zavisnosti od potreba, broj traka za prenos podataka (Lanes), može se uvišestručavati i na taj način se postiže veća propusnost. PCI Express nudi i još novih mogućnosti, kao što su kvalitet usluge QoS (engl. Quality of Service), Hot Plug/ Hot Swap, kao i unaprijeđene tehnike za upravljanje potrošnjom (Power Management). Kvalitet usluge QoS omogućava da se performanse magistrale mijenjaju u zavisnosti od potreba klijenata i konkretnog uređaja. Hot Plug/ Hot Swap olakšava izmjenu kartice bez gašenja napajanja sistema. Unaprijeđene tehnike za upravljanje potrošnjom smanjuje potrošnju, pa je ova arhitektura primjenjena u prenosivim računarima. Poboljšan je mehanizam za detekciju grešaka, samim time je sistem pouzdaniji i najčešće se primjenjuje kod savremenih servera. Sve ove gore navedene stvari se ostvaruju prenosom poruka po liniji za podatke (inband) i to bez koriščenja dodatnih signalnih linija, čime je takođe smanjen ukupan broj linija, kao i cijena toga sistema.
13

Specijalistički rad 201 0
U budućnosti se očekujedalje povećanje brzine prenosa na 10Gbit/s, što je otprilike i maksimalna brzina koja se može postići sa bakarnim linijama.

3. Uporedne karakteristike PCI magistrala
U tabeli 1 prikazane su PCI magistrale koje su prethodile PCI Express i to su: PCI magistrala na 33 MHz, PCI magistrala na 66 MHz, PCI-X magistrale na 66/133 MHz, PCI-X magistrale na 266/533 MHz i najzad PCI Express magistrala. Tabela 1: PCI magistrale koje su prethodile PCI Express Tip magistrale Verzija PCI 33 MHz 2.0 PCI 66 MHz 2.1 PCI-X 66MHz i 133 MHz 1.0 PCI-X 266MHz i 533 MHz 2.0 2002 PCI Express 1.0 PCI Express 2.0 PCI Express 2.1 PCI Express 3.0

Godina pojavljivanja 1993 1995 1999 2002 2004 2005 2005 2010

3.1. Propusnost magistrala i broj slotova
U tabeli 2 prikazani su različiti tipovi PCI magistrala sa aspekta taktne frekvencije, propusnostni i broju slotova. Sasvim je očigledno da se povećanjem frekvencije povećati i propusnost. Međutim, povećanjem frekvencije mi ograničavamo opterećenje magistrale i broj konektora koji su dostupni za rad. Drugim riječima, smanjenje opterećenja magistrale jeste jedan od uslova za povećanje taktne frekvencije, a samim tim i propusnost magistrale. Postoji i drugi način za povećanje propusnosti magistrale, a to je upravo povećanje broja linija za prenos. Time se povećava složenost sistema, otežava trasiranje magistrala na štampanim pločama, povećava njihova površina, povećava gabarit konektora i pakovanja integrisanih kola i sve zajedno povećava cijenu cjelokupnog sistema. Tabela 2: Poređenje PCI magistrala po frekvenciji, propusnosti i broju slotova Tip magistrale Taktna frekvencija Vršna propusnost* Broj slotova po magistrali PCI 32-bitna 33 MHz 133 MBytes/sec 4-5 PCI 32-bitna 66 MHz 266 MBytes/sec 1-2 PCI-X 32-bitna 66 MHz 266 MBytes/sec 4 PCI-X 32-bitna 133 MHz 533 MBytes/sec 1-2 PCI-X 32-bitna 266 MHz efektivno 1066 MBytes/sec 1 PCI-X 32-bitna 533 MHz efektivno 2131 MBytes/sec 1
14

Specijalistički rad 201 0
*Za 64-bitne verzije magistrale Navedene vrijednosti Propusnosti se udvostručuju

3.2. Agregatna propusnost PCI Express magistrale
Link je veza koja spaja dva PCI Express uređaja. Sasstoji se od x1, x2, x4, x8, x12, x16 ili x32 para provodnika za svaki smjer prenosa podataka. Ovi signalni parovi zovu se trake (engl. Lanes). Projektant određuje broj traka u zavisnosti od potrebnih performansi magistrale. U tabeli 3 prikazana je agregatna propusnost (engl. Aggregate bandwidth) za različite obime linkova. Iz tabela se može uočiti da je vršna propusnost sa PCI Express karticom znatno veća od bilo koje paralelne PCI magistrale. Kako je došlo do ovih brojeva? Brzina prenosa podataka je 2.5Gbit/s po traci u jednom smjeru. Svaki bajt podataka poslat preko PCI Express magistrale kodira se sa 10 bitova (koder 8b/10b u predajniku). Drugim riječima, za prenos svakoga bajta potrebno je prenijeti 10 bitova. Overhead zbog ovog kodiranja iznosi 25%. PCI Express koristi dvostruki simpleks prenos (engl. dual-simplex), a to praktično znači da je moguće istovremeno prenositi podatke u oba smjeru (postoje zasebni putevi za podatke za svaki smjer)- Agregatna propusnost podrazumijeva istovremeni prenos podataka u oba smjera. Da bi izračunali agregatnu propusnost linka potrebno je pomnožiti 2.5 Gbit/s brojem traka po linku, zatim dobijenu vrijednost pomnožiti sa 2 (istovremeno se vrši prenos u oba smjera), i najzad podijeli sa 10 bitova (potrebno je da se dobije broj bajtova- 1B- 10bitova). Tabela 3: Agregatna propusnost PCI Express Link-a za različite obime linkova Obim PCI Express Link-a Agregatna propusnost (GB/s) x1 0.5 x2 1 x4 2 x8 4 x12 6 x16 8 x32 16

Agregatna propusnost predstavlja maksimalnu propusnost koja se u praksi teško može postići, ali, prosto, služi kao parametar za poređenje sa drugim arhitekturama. Uglavnom se slotovi x1 i x4 koriste za modeme, lan kartice i tv tjunere; dok se x8 i x16 koriste za grafičke kartice.

15

Specijalistički rad 201 0
4. Pregled PCI arhitekture koje su prethodile PCI Express arhitekturi 4.1. PCI magistrala na 33 MHz
PCI magistralu osmislila je kompanija Intel i predstavila je 1991. godine. Osnovna koncepcija te PCI magistrale prikazana je na slici 2.1.

Slika 45: Arhitektura računara zasnovanog na PCI magistrali na 33 MHz

16

Specijalistički rad 201 0
Glavnu ulogu u PCI arhitekturi igraju dva čipa koja se obično zovu sjeverni i južni most (engl. North and South bridge). Preko sjevernog mosta ostvaruje se komunikacija između procesora, glavne memorije, grafičke kartice i ostatka sistema preko PCI magistrale. Sjeverni most sadrži odgovarajuće interfejse za sve navedene tipove magistrala. Procesor se sa sjevernim mostom povezuje uz pomoć sistemske FSB magistrale (engl. Front Side Bus). Memorija se povezuje preko memorijske, dok se

grafička kartica povezuje obično pomoću AGP magistrale (engl. Accelerated Graphics Port). U sjevernom mostu se nalazi i arbitar koji određuje koji će uređaj koristiti magitralu. Ulazno/izlazni uređaji vezuju se na PCI magistralu direktno na matičnu ploču, preko slotova i preko kartica. Svaki od uređaja koji se vezuje direktno na matičnu ploču predstavlja jedno opterećenje, dok se uređaji koji se vezuju preko konektora, tj. slotova računaju kao dva opterećenja. Južni most, sa druge strane, služi za spregu PCI magistrale sa ISA magistralom, USB i IDE magistralom ( engl. Integrated Drive Electronics). Preko ISA magistrale povezivali su se stariji ISA uređaji, ali i ROM memorija za podizanje sistema (Boot ROM), audio čip, kao i Super I/O čip koji sadrži interfejse za tastaturu, miša, disketnu jedinicu, serijske portove i paralelni port. IDE magistrala koristi se za povezivanje hard diska i optičkih uređaja sekundarne memorije (CD i DVD). Pored toga u južnom mostu se obično nalazi i kontroler prekida, kao i logika za detekciju greške prilikom prenosa na PCI magistrali. Na slici 2 prikazan je tipičan ciklus PCI magistrale. Taktna frekvencija ove osnovne PCI magistrale je 33 MHz. Obim adresne magistrale je 32 bita (dovoljno da se adresira 4 GB memorije), iako opciono, može biti i 64 bita. Magistrala podataka može biti bilo 32-bitna bilo 64- bitna, što sve zavisi od zahtijevanih performansi magistrale. Da bi se smanjio broj linija na magistrali, izvršeno je multipleksiranje adresne magistrale i magistrale podataka (linije A/D na slici 2). Pored ovih, PCI magistrala sadrži čitav niz upravljačkih signala, kao što su C/BE# (engl. Command/ Byte Enables), STOP#, FRAME#, TRDY# (engl. Target Ready), IRDY# (engl. Initiator Ready), DEVSEL# (engl. Device Select), prekidni signali, signali za upravljanje potrošnjom, i opcioni signali za detekciju greške. Tu su još i signali kojima PCI uređaj zahtijeva dodjelu magistrale (REQ#) od arbitra, kao i signal kojim arbitar odobrava korišćenje magistrale (GNT#).

Slika 46: Tipični PCI paketni (burst) ciklus magistrale

17

Specijalistički rad 201 0
Maksimalno elektično opterećenje PCI magistrale na 33 MHz PCI magistrala teoretski podržava 32 uređaja. U praksi, PCI magistrala može da podrži maksimalno 10-12 električnih opterećenja. Što je veći broj opterećenja na magistrali, veća je inertnost magistrale. Samim tim povećava se propagaciono kašnjenje, a takođe se povećava i vrijeme potrebno da se signal stabiliše. Da bi se zadovoljili vremenski zahtjevi koji su neophodni za ispravan rad PCI magistrale neophodno je da broj opterećenja ne prelazi vrijednost od 10-12. Kao što je ranije rečeno, konektori se računaju kao dva opterećenja, jer je sam konektor jedno opterećenje, a PCI kartica je drugo opterećenje. Tako dolazimo do maksimalne vrijednosti od 4-5 slotova po magistrali kao što je dato u Tabeli 2. Moguće je proširiti PCI arhitekturu novom magistralom ukoliko je potrebno povezati veći broj opterećenja od 10-12 pomoću mosta PCI-na-PCI (engl. PCI-to-PCI bridge). PCI specifikacija teoretski podržava maksimalno 256 magistrala u sistemu. Transakcioni modeli PCI magistrale PCI magistrala podržava tri transakciona modela i to su: 1. Programirani ulazno/izlazni prenos, 2. DMA prenos i 3. Prenos podataka između ravnopravnih uređaja na PCI magistrali (engl. peer- topeer). Pored ovih, prenos podataka između procesora i periferija može se vršiti i korišćenjem prekidne tehnike. Programirani U/I prenos Programirani ulazno/ izlazni prenos (transakcija 1, na slici 3) inicira procesor. Na osnovu programa, procesor započinje ciklus čitanja/upisa u memoriju ili ulazno/ izlazni uređaj. Komunikacija procesora sa PCI uređajima obavlja se preko sjevernog mosta, koji traži dozvolu za korišćenje magistrale od arbitra, i kada je dobije generiše memorijski ili ulazno/ izlazni ciklus upisa ili čitanja. Na linije A/D PCI magistrale najprije se postavlja adresa (ova faza ciklusa zove se adresna faza, slika 2). Nakon što ciljni uređaj (na primjer Ethernet uređaj) potvrdi spremnost za prijem/predaju podataka, započinje se prenos podataka. Paketni (engl. Burst) prenos je takav prenos kod koga se podaci šalju bez ponovnog slanja adrese uzastopnim taktnim intervalima i na taj način postiže se maksimalna propusnost PCI magistrale. Pri frekvenciji od 33 MHz ako se sa svakim taktnim impulsom prenose 32 bita (4 bajta) onda se, možemo postići maksimalnu propusnost od približno 133 MB (Tabela 2). Propusnost za 64- bitni prenos je dvostruko veća (266 MB).
18

Specijalistički rad 201 0

Direktan pristup memoriji – DMA PCI uređaji imaju mogućnost direktnog pristupa memoriji (engl. DMA – Direct Memory Access). Zahvaljujući tome, PCI uređaji mogu direktno da razmjenjuju podatke sa glavnom memorijom bez učešća procesora, čime se znatno skraćuje vrijeme prenosa podataka između periferije i memorije i povećava efikasnost rada cjelokupnog sistema (transakcija 2 na slici 3). Prenos podataka između ravnopravnih PCI uređaja (Peer-to-Peer) Direktan prenos podataka između dva PCI uređaja predstavlja međusobni prenos podataka koji je prikazan na slici 3 (transakcija 3). Potencijalni gospodar magistrale, najprije, zahtijeva dodjelu magistrale od arbitra, i kada dobije pravo na upravljanje magistralom, na nju postavlja adresu uređaja sa kojim želi da razmjenjuje podatke. Kada ciljni uređaj potvrdi spremnost za prenos podataka, započinje se prenos.

Slika 47: Transakcioni modeli PCI magistrale

Arbitraža na PCI magistrali
19

Specijalistički rad 201 0
Prije svake od navedenih transakcija vrši se arbitraža za dodjelu magistrale. Arbitar je logički blok koji se nalazi u sjevernom mostu i odlučuje o tome koji će uređaj biti naredni gospodar magistrale. Ovu odluku može donijeti i za vrijeme tekućeg ciklusa magistrale, tako da PCI uređaj nakon dobijanja signala dozvole (GNT#) mora provjeriti da li je magistrala slobodna, a tek onda može da započne ciklus magistrale. Prekidna tehnika kod PCI magistrale PCI magistrala posjeduje četiri djeljive prekidne linije: INTA#, INTB#, INTC# i INTD#). Kontroler prekida nalazi se na sjevernom mostu (slika 4). Nakon aktiviranja ovih prekidnih linija od strane PCI uređaja, kontroler prekida aktivira prekidnu liniju procesora INTR. Djeljivost prekidnih linija omogućava da veći broj PCI uređaja koristi istu prekidnu liniju, a izvor prekida se određuje softverski (od strane operativnog sistema). Time se unosi dodatno kašnjenje i povećava vrijeme opsluživanja prekida.

Slika 48: Prekidna tehnika u PCI sistemima

20

Specijalistički rad 201 0
Rukovanje greškama Za detekciju grešaka prilikom prenosa podataka u PCI sistemima koristi se bit parnosti. Za tu namjenu postoji posebna linija PAR, pri čemu se koristi parna parnost. Bit parnosti generiše se kako u toku adresne faze, tako i u toku faze podataka. Svaki PCI uređaj, prilikom prijema podataka, provjerava bit parnosti i ukoliko otkrije grešku u adresnoj fazi aktivira signal SERR# (engl. System Error), a ukoliko se greška javi u toku faze podataka aktivira se PERR# (engl. Parity Error). U južnom mostu nalazi se logika za obradu grešaka (Error logic, slika 5), koja nakon prijema SERR# ili PERR# signala obično, aktivira nemaskirajući prekid (engl. NMI Non-Maskable Interrupt signal). Ovo za posljedicu ima pad sistema, što je prilično surovo rješenje datog problema. Drugi problem u vezi sa bitom parnosti jeste detekcija parnog broja višestrukih grešaka, ali i nemogućnost korekcije grešaka. Na osnovu svega ovoga može se zaključiti da je mehanizam za obradu grešaka u PCI arhitekturama dosta loš, pa je to razlog što se često puta izbjegava njegovo korišćenje.

Slika 49: Rukovanje greškama u PCI sistemima

Protokol odlaganja transakcije u PCI sistemima (PCI Delayed Transaction Protocol)
21

Specijalistički rad 201 0
Protokol ponovnog pokušaja (engl. PCI Retry Protocol): Ukoliko ciljni uređaj nije spreman za transakciju sa PCI gospodarom, on ima dvije mogućnosti da odloži tu transakciju. Prva je da ubaci stanja čekanja (engl. wait states), u toku faze podataka. Ukoliko je potrebno samo nekoliko stanja čekanja, prenos je i dalje efikasan. Međutim, ukoliko je ciljnom uređaju potrebno više vremena (vise od 16 taktnih intervala od početka transakcije), preostaje mu druga mogućnost, a to je da signalizira gospodaru magistrale da prekine transakciju i ponovo pokuša kasnije (slika 6). To se ostvaruje aktiviranjem signala STOP#. Na taj način sprječava se dugotrajno držanje magistrale u stanju čekanja, što bi umanjilo njenu efikasnost. Gospodar magistrale kome je odložen prenos, čeka najmanje dva taktna intervala, i mora ponovo da traži dozvolu za korišćenje PCI magistrale od arbitra, da bi ponovo započeo isti ciklus na magistrali. U međuvremenu, arbitar može dodeliti magistralu drugim uređajima kako bi se postigla bolja efikasnost. Kada ponovo dobije magistralu na korišćenje, PCI uređaj ponovo pokušava da ostvari prenos sa ciljnim uređajem. Ako je on spreman, transakcija se obavlja do kraja, a ukoliko nije spreman, transakcija se ponovo odlaže. Postupak se ponavlja sve dok gospodar ne uspije da obavi transakciju do kraja.

Slika 50: PCI protokol ponovnog pokušaja

22

Specijalistički rad 201 0
Protokol prekida prenosa (engl. PCI Disconnect Protocol): Kada PCI gospodar započne prenos podataka ka ciljnom uređaju, i ostvari prenos najmanje jedne dvostruke reči (32 bita), pri čemu je dalji prenos onemogućen (iz nekog razloga), on prekida prenos, i nastavlja ga kada se steknu uslovi da se prenos obavi. Ovaj scenario prikazan je na slici 2.7. Naime, kada prenos podataka započne, ali iz nekog razloga dođe do zastoja, PCI uređaj ima dve mogućnosti. Prva je, opet, umetanje stanja čekanja. Ukoliko je broj stanja čekanja mali, prenos se i dalje obavlja efikasno. Međutim, ukoliko je ciljnom uređaju poterbno više vremena, (PCI specifikacija dopušta najviše 8 taktnih intervala u fazi podataka), tada ciljni uređaj mora da signalizira prekid prenosa. To se, opet, čini pomoću signala STOP#, i to u toku trajanja ciklusa magistrale, kako bi gospodar magistrale prekinuo prenos. Osnovna razlika između protokola prekida prenosa i protokola ponovnog pokušaja jeste u tome što se kod prvog neki podaci prenesu pre nego što dođe do prekida, dok kod drugog nema prenosa. Prekinuti gospodar čeka najmanje dva taktna intervala, pre nego što ponovo zatraži dozvolu za korišćenje magistrale od arbitra. Kada je dobije, ukoliko je ciljni uređaj spreman, prenos se nastavlja do kraja. Ako ciljni uređaj nije spreman transakcija se ponovo odlaže bilo da se gospodaru signalizira ponovni pokušaj (engl. retry), bilo da se prekine prenos (engl. disconnect). Proces se ponavlja sve dok gospodar ne prenese sve svoje podatke.

Slika 51: PCI protokol prekida prenosa

23

Specijalistički rad 201 0

Mapa adresnog prostora PCI arhitektura podržava tri adresna prostora, kao što je to prikazano na slici 8. To su: memorijski, U/I i konfiguracioni. Memorijski adresni prostor ide do 4 GB za sisteme koji podržavaju 32-bitno adresiranje, i opciono 16 EB (EB- eksabajt), za sisteme koji podržavaju 64bitno memorijsko adresiranje. PCI, takođe, podržava i 4 GB ulazno/izlaznog prostora, mada je kod mnogih platforma ovaj prostor ograničen na 64 kB, sa obzirom da procesori familije 80x86 podržavaju samo 64 kB ulazno/izlaznog prostora. Konfiguracioni prostor čine konfiguracioni registri PCI uređaja. Svaka PCI funkcija može imati do 256 bajtova konfiguracionog adresnog prostora. Ako se ima u vidu da svaki PCI uređaj može imati do 8 funkcija, da se na svaku magistralu može (teoretski) priključiti 32 uređaja, i da je maksimalan broj PCI magistrala u sistemu 256, množenjem ovih vrijednosti dobija se da je veličina konfiguracionog prostora 16 MB. Procesori 80x86 mogu pristupiti memorijskom i U/I prostoru, ali ne podržavaju konfiguracioni prostor direktno. Konfiguracionom prostoru se pristupa indirektno posredstvom adresnog porta i porta za podatke koji se nalaze u sjevernom mostu (ili u engl. MCH – Memory Controller Hub). Adrese ovih portova nalaze se u ulazno/izlaznom prostoru i to: za adresni port CF8h-CFBh, a za port podataka CFCh-CFFh.

Slika 52: Mapa adresnog prostora

24

Specijalistički rad 201 0
Ograničenja PCI sistema na 33 MHz Kao što se iz Tabele 2 može vidjeti, vršna propusnost PCI sistema na 33 MHz iznosi 133 MB/s za 32-bitni, i dvostruko 266 MB/s za 64-bitni prenos. Za većinu današnjih servera i radnih stanica to je nedovoljna propusnost. Osim toga Gigabit Ethernet kao i visoko performansni sistemi za rad sa diskovima kao što su RAID (engl. Redundant Array of Independent Disks) i SCSI (engl. Small Computer System Interface) zahtijevaju veću propusnost od one koju PCI magistrala na 33 MHz može da ponudi. Novija generacija Intelovih PCI čip-setova Na slici 9 prikazana je novija generacija Intelovih PCI čip-setova. Dva čipa sa boldiranim natpisima NISU sjeverni i južni mostovi koji su prikazani na prethodnim slikama. Jedan čip je memorijski hub kontroler (engl. MCH- Memory Controller Hub), a drugi je ulazno/ izlazni hub kontroler (engl. ICH- IO Controller Hub). Ova dva čipa povezana su Intelovom brzom magistralom sa malim brojem linija po imenu Hub Link. U osnovi ICH ima sve funkcije južnoga mosta, ali ne podržava ISA magistralu. Sa ovim čipom ulazno/izlazni uređaji povezuju se pomoću LPC (engl. low pin count) magistrale, AC’97 magistrale, Ethernet, Boot ROM, USB i najzad PCI magistrale. Osnovna prednost ove arhitekture u odnosu na prethodnu, jeste ta što se prenos podataka između perifernih uređaja i memorije, ne vrši preko PCI magistrale, kao što je to bio slučaj ranije, već se prenos ostvaruje pomoću visoko propusnog Hub Link-a, koji ima bolje performanse u odnosu na PCI. Drugim riječima, zaobilazi sе “usko grlo”, tj. PCI magistrala; čime se postižu bolje performanse.

Slika 53: Novija generacija PCI čip- setova

25

Specijalistički rad 201 0

4.2. PCI magistrala na 66 MHz

Bolje performanse postižemo ako se koristi PCI arhitektura na 66 MHz. Uz taktnu frekvenciju ako se udvostruči i obim magistrale, može se postići propusnost od 533 MB/s. Na slici 10 je dat primjer sistema koji koristi PCI magistralu na 66MHz i on ima slične osobine kao i prethodno opisani sistem (slika 9). Međutim, MCH podržava dva dodatna Hub Link-ova, koji služe da sa njima povežemo mostove P64H (PCI 64-bit Hub bridge), preko kojih se ostvaruje sprega sa 64-bitnim PCI magistralama. Ove magistrale podržavaju samo jedan konektor.

Slika 54: Arhitektura računara zasnovanog na PCI magistrali na 66 MHz

26

Specijalistički rad 201 0

Ograničenja PCI sistema na 66 MHz Osnovni problem prilikom projektovanja ulazno/izlaznih sistema na 66 MHz predstavlja ostvarivanje vremenskih zahtjeva. Da bi se smanjilo propagaciono kašnjenje, koristimo kraće linije u ovim sistemima. Dalje, magistrala se opterećuje manjim brojem opterećenja da bi se skratilo vrijeme uspona i opadanja. Samo se jedan do dva konektora mogu priključiti na PCI magistralu koja radi na 66 MHz, što je značajno ograničenje u sistemima koji zahtijevaju povezivanje većeg broja ulazno/izlaznih uređaja. Za povezivanje većeg broja uređaja potrebni su mostovi. Ovakvo rješenje je dosta skupo, a zauzima i dodatni prostor na štampanim pločama. Pored toga mostovi usporavaju prenos, jer oni koriste mehanizam odložene transakcije. Ograničenja PCI arhitekture Kao što smo vidjeli maksimalana taktna frekvencija koja se može postići ovakvom arhitekturom iznosi 66 MHz. Efikasnost magistrale se definiše kao odnos broja taktnih impulsa tokom kojih se vrši prenos podataka i ukupnog broja taktnih impulsa. Da bi se dobila vrijednost u procentima potrebno je rezultat pomnožiti sa 100. Efikasnost PCI magistrale je 50-60%, a neki od razloga za ovu, smanjenu efikasnost dati su u nastavku ovog odjeljaka. PCI specifikacija dozvoljava korisnicima magistrale, kao i ciljnim uređajima ubacivanje stanja čekanja tokom faze podataka i sa time spori uređaji umanjuju efikasnost PCI magistrale. Protokol odlaganja transakcije takođe umanjuje efikasnost magistrale. Kada ciljni uređaj nije spreman za razmjenu podataka sa korisnikom, on signalizira korisniku da prekine transakciju i ponovo pokuša kasnije. Korisnik “nagađa”, tj. sam određuje kada će ponovo pokušati da ostvari transakciju. Ukoliko pokuša suviše rano, može se desiti da bude ponovo odbijen. Ako se sačeka duže vrijeme, povećava se vrijeme potrebno za obavljanje prenosa podataka. Slično se dešava i prilikom prekida prenosa od strane ciljnog uređaja. Mehanizam prekida u PCI sistemima je, kao što smo vidjeli, takođe neefikasan. Razlog tome je što veći broj uređaja dijeli zajedničku prekidnu liniju, pri čemu se detekcija uređaja koji je generisao prekid vrši softverski. Time se povećava vrijeme obrade prekida. Mehanizam za detekciju grešaka nije u stanju da detektuje paran broj višestrukih grešaka. Takođe, kada dođe do greške prilikom prenosa, aktivira se nemaskirajući prekid (NMI), pri čemu ne postoji mogućnost korekcije grešaka. U narednim generacijama PCI magistrala (PCI-X i PCI Express) riješeni su navedeni problemi.

27

Specijalistički rad 201 0
4.3. Magistrala PCI-X 1.0 na 66 MHz i 133 MHz
Ova magistrala je prvenstveno namijenjena serverima. Na slici 11 prikazana je arhitektura servera koja koristi čip-set Intel 7500. Arhitektura je veoma slična sa prethodne dvije arhitekture koje su zasnovane na čipsetu 8XX. Osnovna razlika jeste u tome što MCH 7500 posjeduje 3 dodatna porta Hub Link 2.0, koji imaju visoke performanse. Na ovim magistralama priključena su 3 mosta Hub Link - to - PCI Hub 2 (P64H2), pomoću kojih se ostvaruje sprega između PCI-X magistrale i Hub Link 2.0 magistrale. Na svaki P64H2 most mogu se priključiti dvije PCI-X magistrale, koje mogu da rade na frekvencijama do 133 MHz. Karakteristike PCI-X magistrale U poređenju sa PCI magistralom, PCI-X magistrala radi na višoj taktnoj frekvenciji, ima bolje performanse i veću efikasnost. PCI-X uređaji mogu da se utaknu u obične PCI slotove i obrnuto. PCI-X slotovi i PCI slotovi koriste isti format konektora (sa tim da PCI-X konektori imaju više pinova, pa izgledaju kao produženi PCI slotovi). PCI-X magistrala je potpuno kompatibilna sa prethodnom PCI magistralom i to kako u hardverskom tako i u softverskom pogledu. Drajveri uređaja, operativni sistemi i korisnički programi koji su radili na PCI arhitekturama, mogu se koristiti i u PCIX arhitekturama. Zahvaljujući hardverskim unaprjeđenjima, PCI-X magistrala može da radi na višim frekvencijama, i da podrži veći broj opterećenja za datu frekvenciju u odnosu na PCI magistralu.

Slika 55: Arhitektura servera zasnovanog na PCI-X magistrali na 66 MHz/ 133 MHz

28

Specijalistički rad 201 0
Vršna propusnost koja se može postići sa 64-bitnom PCI-X magistralom na 133 MHz je 1064 MB/s. Stanje čekanje je samo dopušteno u prvoj fazi podataka, kasnije nisu dozvoljena. Uz fazu podataka i adresnu fazu, PCI-X specifikacija uvodi i fazu atributa u kojoj se definiše obim podataka koje treba prenijeti i na taj način se omogućava efikasnije upravljanje baferima uređaja. Protokol dijeljenja transakcije (engl. Split transaction protocol) predstavlja novinu u odnosu na prethodnu PCI magistralu, i zapravo je riječ o unaprijeđenju protokola odlaganjem transakcija. Razmotrimo ovaj protokol na jednom primjeru, koji je ilustrovan na slici 12. Uređaj requester započinje transakciju čitanja. Može se desiti da uređaj completer, koji potvrđuje ciklus magistrale, nije spreman da odmah vrati tražene podatke. Kod klasične PCI magistrale completer bi signalizirao requester-u da odloži transakciju i ponovo pokuša kasnije. Međutim, ovdje completer memoriše transakciju (tip transakcije, adresu, requester ID i broj bajtova koje treba prenijeti) i signalizira podijeljeni odziv (split response). Time se requester upozorava da završi ciklus magistrale, čime se magistrala oslobađa za druge transakcije i povećava njena efikasnost. Za to vrijeme requester čeka da mu completer pošalje tražene podatke. Čim completer prikupi tražene podatke, zahtijeva dozvolu za korišćenje magistrale od arbitra, i kada je dobije, započinje ciklus magistrale u toku kojeg vraća tražene podatke. U ovom slučaju nema potrebe da requester ponavlja cio ciklus magistrale, već completer sam šalje podatke onda kada bude spreman. Time se dosta povećava efikasnost magistrale. PCI Express koristi sličan transakcioni protokol. Opisana poboljšanja PCI-X magistrale povećavaju njenu efikasnost na čak 85%, za razliku od prethodno opisane PCI magistrale(5060%).

Slika 56: Protokol dijeljenja transakcije u PCI-X sistemima

29

Specijalistički rad 201 0
PCI-X uređaji moraju da podržavaju prekide signalizirane porukama - MSI (engl. Message Signaled Interrupt). Ova tehnika je mnogo efikasnija od prekidne tehnike koja se koristi kod PCI arhitekture. Prilikom generisanja zahtijeva za prekid, PCI-X uređaj započinje ciklus upis u memoriju pri čemu je ciljni uređaj most host-a. Podaci koji se predaju mostu host-a zapravo su prekidni vektor broj kojim se identifikuje uređaj koji je generisao zahtjev za prekid. Ovaj vektor broj šalje se procesoru, tako da on odmah može da pokrene odgovarajuću rutinu za obradu prekida. Kod PCI-X arhitekture nema gubljenja vremena na softversko ispitivanje izvora prekida. Takođe, za razliku od PCI arhitekture, ovdje nisu potrebne prekidne linije. PCI Express arhitektura takođe koristi MSI protokol, što za posljedicu ima skraćenje vremena obrade prekida, kao i eliminisanje prekidnih linija. PCI-X 2.0 specifikacijom ostvarena je povećana propusnost PCI magistrale. Predstavljena je 2002. Godine i ova magistrala biće ukratko opisana u nastavku.

4.4. Magistrala PCI-X 2.0 (DDR i QDR)
Na slici 13 prikazan je sistem zasnovan na PCI-X 2.0 magistrali. PCI-X 2.0 uređaji i konektori su 100% hardverski i softverski kompatibilni sa prethodnim PCI-X 1.0 kao i sa PCI uređajima i konektorima. PCI-X 2.0 podržava bilo dvostruku brzinu prenosa (engl. DDR - Dual Data Rate) bilo četvorostruku brzinu prenosa (engl. QDR - Quad Data Rate). Da bi se to postiglo, koriste se PCI-X taktni impulsi frekvencije 133 MHz, i strobe impulsi su fazno pomjereni kako bi se dobile potrebne ivice taktnih impulsa. Vršna propusnost PCI-X 2.0 magistrale je 4256 MB/s za 64-bitni prenos pri efektivnoj taktnoj frekvenciji od 533 MHz. Podaci se prenose dva ili četiri puta u toku jednog taktnog impulsa frekvencije 133MHz zahvaljujući strobe taktnim impulsima. PCI-X 2.0 uređaji podržavaju unaprijeđeni sistem za detekciju i korekciju grešaka i time je omogućena korekcija jednostrukih i detekcija višestrukih grešaka. Magistrala je pogodnija za primjenu u serverima visokih performansi koji trebaju da rade neprekidno, jer je rukovanje greškama mnogo bolje nego u prethodnim sistemima.

Slika 57: Arhitektura računara zasnovanog na PCI-X 2.0 magistrali

Treba napomenuti i da je, zbog velike brzine rada, moguće priključiti samo jedan konektor na PCI-X 2.0 magistralu. To praktično znači, da PCI-X 2.0 ostvaruje komunikaciju tipa
30

Specijalistički rad 201 0
tačka-ka-tački (point-to-point), za razliku od prethodnih magistrala koje su bile višetačkastog (multi-drop) tipa. PCI-X 2.0 mostovi su zapravo komutatori sa jednom primarnom i većim brojem sekundarnih (downstream) magistrala kao što je to prikazano na slici 13. Tako dolazimo do PCI Express magistrale koja zadržava sve ono što je bilo dobro u prethodnim generacijama PCI magistrala, ali uvodi i neke nove osobine koje je stavljaju na vrh.

5. PCI Express magistrala
PCI Express koristi brzu diferencijalnu vezu za prenos podataka, pri čemu se komunikacija vrši po principu tačka-ka-tački. U nastavku ćemo sa nešto više detalja razmotriti osobine PCI Express magistrale. Link - komunikacija po principu tačka-ka-tački Fizička veza između dva PCI Express uređaja zove se Link. Svaki link sastoji se od 1, 2, 4, 8, 12, 16 ili 32 para provodnika za svaki smjer prenosa podataka (slika 2.14). Kao što je već rečeno, ovi signalni parovi zovu se trake (engl. Lanes). U zavisnosti od broja traka linkovi mogu biti tipa: x1, x2, x4, x8, x12, x16 i x32. Svaka traka za prenos podataka sastoji se od dva diferencijalna para provodnika - po jedan par za svaki smjer. Drugim riječima, svaka traka sadrži 4 provodne linije. Tako se, na primjer, link tipa x1 sastoji od jedne trake za podatke, tj. sadrži po jedan diferencijalni par za svaki smjer, što ukupno čini 4 signala. Link tipa x32 sadrži 32 trake za podatke, odnosno 32x4=128 signalnih linija. Broj linija za podatke isti je u oba smjera.

Slika 58: PCI Express Link

31

Specijalistički rad 201 0

Diferencijalni prenos PCI Express magistrale koriste diferencijalni način prenosa podataka. Na slici 15 prikazan je primjer električnog signala na PCI Express magistrali. Logička 1 predstavlja se pozitivnom razlikom napona između D+ i D-. Logička 0 predstavlja se negativnom razlikom napona između D+ i D-. Maksimalna vrijednost razlike napona između D+ i D- zove se vršni diferencijalni napon (engl. Differential Peak Voltage -VDiffp na slici 15) i on se, na predajnoj strani, kreće u opsegu od 400 do 600 mV. To praktično znači da se maksimalna razlika napona pri slanju logičke jedinice nalazi u opsegu od 400 do 600 mV, dok se maksimalna (tačnije minimalna) negativna razlika napona, pri slanju logičke nule, kreće u opsegu -400 do -600 mV. Diferencijalni napon od vrha-do-vrha (engl. Differential Peak-to-Peak) predstavlja razliku logičkih nivoa kojima se predstavlja logička jedinica i logička nula i on se, na osnovu prethodnog, kreće u intervalu od 800 mV do 1200 mV. Kao što se može uočiti, radi se o malim naponima što omogućava veću brzinu prenosa. Kada se drajver nalazi u stanju visoke impedanse, nema razlike između napona na D+ i D-. Mogućnost predstavljanja trećeg stanja jeste još jedna prednost diferencijalnog načina prenosa.

Slika 59: Diferencijalni signal u PCI Express sistemima

Diferencijalna impedansa prijemnika je prilagođena karakterističnoj impedansi prenosnih linija na ploči da bi se izbjegle refleksije. Za međusobno povezivanje većeg broja uređaja koriste se komutatori Sa obzirom da PCI Express koristi komunikaciju tipa tačka-ka-tački, povezivanje većeg broja uređaja ostvaruje se pomoću logičkog elementa koji se zove komutator (engl. switch). Komutator može biti zaseban element ili može biti integrisan u Root Complex uređaj (ekvivalent mostu host-a ili North bridge-u), čime se dobija višeportni Root Complex.

32

Specijalistički rad 201 0
Paketni protokol PCI Express umjesto ciklusa magistrale koji su tipični za PCI i PCI-X magistrale koristi pakete. Princip slanja i prijema paketa je sličan onom koji se koristi u računarskim mrežama. Postoje različiti tipovi paketa kao što su: zahtjevi za upis i čitanje memorije, upis i čitanje ulazno/izlaznih uređaja, zahtjevi za upis i čitanje konfiguracionog prostora, poruke i odgovori (engl. completions). Propusnost i taktovanje Kao što se može videti iz Tabele 3 agregatna propusnost koja se može postići sa PCI Express magistralom je mnogo veća od propusnosti bilo koje druge PCI magistrale. PCI Express 1.0 podržava brzinu prenosa od 2,5 Gbit/s u svakom smjeru. Pri tome se, ovaj takt ne prenosi kao zaseban signal, već se informacija o taktu prenosi zajedno sa podacima. Na prijemnoj strani takt se izdvaja iz primljenih podataka pomoću PLL petlje. Adresni prostor PCI Express podržava iste adresne prostore kao i PCI: memorijski, ulazno/izlazni i konfiguracioni adresni prostor. Maksimalni konfiguracioni prostor za svaku funkciju proširen je 16 puta, sa 256 B na 4 kB. Međutim, da bi ovaj, dodatni konfiguracioni prostor mogao da se koristi potrebni su novi operativni sistemi, drajveri i korisnički programi. Postoji i novi adresni prostor koji je rezervisan za poruke. Porukama se u PCI Express arhitekturi prenose različite komande za koje su se ranije koristile zasebne signalne linije, kao što su prekidi, informacije o greškama, i informacije vezane za upravljanje potrošnjom. Porukama se prenose i neke druge informacije koje definišu sami proizvođači. PCI Express transakcije PCI Express podržava iste transakcije kao i PCI i PCI-X. To su: 1. čitanje memorije, 2. upis u memoriju, 3. čitanje iz ulazno/izlaznih uređaja, 4. upis u ulazno/izlazni uređaj, 5. čitanje konfiguracionog prostora i 6. upis u konfiguracioni prostor. Pored ovih, PCI Express podržava i novi tip transakcija, a to su transakcije porukama.

33

Specijalistički rad 201 0
PCI Express transakcioni model Sve PCI Express transakcije mogu se podijeliti u dvije kategorije: non-posted transakcije i posted transakcije. Non-posted transakcije, kao što je čitanje memorije, koriste protokol dijeljenja transakcije sličan onom kod PCI-X magistrale. Na primjer, requester šalje zahtijev za čitanje memorije u obliku non-posted paketa. Completer odgovara slanjem paketa sa traženim podacima. Kod posted transakcija, kao što je upis u memoriju, paketi se šalju jednosmerno od requester-a ka completer-u, bez odgovora od strane completer-a. Rukovanje greškama u PCI Express sistemu Za detekciju grešaka se koriste CRC polja i ona se dodaju svakom paketu. Na prijemnoj strani provjerava se ispravnost primljenog paketa, i ukoliko je došlo do greške, obavještava se predajnik koji je paket poslao. Nakon prijema obavještenja, predajnik automatski ponavlja slanje tog istog paketa, sve dok na kraju, paket ne bude ispravno primljen. Na taj način vrši se autokorekcija grešaka i obezbjeđuje se pouzdan prenos podataka između komponenata računarskog sistema. Kvalitet usluge (Quality of Service - QoS), klase saobraćaja (Traffic Classes - TCs) i virtuelni kanali (Virual Channels - VCs) Kvalitet usluge (Quality of Service - QoS) je nova osobina PCI Express arhitekture, koja se odnosi na sposobnost rutiranja paketa koji potiču od različitih aplikacija sa različitim prioritetom. Time se obezbjeđuje da pojedini paketi stižu na odredište u određenom roku, jer im se garantuje potrebna propusnost. Tako je na primjer, poželjno da se paketi koji nose video podatke prenose kroz sistem sa višim prioritetom i zagarantovanom propusnošću, dok neki upravljački paketi ne moraju da imaju tako stroge vremenske zahtjeve. Prioritet paketa prilikom rutiranja kroz sistem, određen je brojem koji se naziva klasa saobraćaja (engl. TC- Traffic Class). Ovaj broj može imati vrijednost od 0 do 7, i određuje ga drajver uređaja ili određena aplikacija. Na osnovu klase saobraćaja vrši se sortiranje paketa u takozvane bafere virtuelnih kanala (engl. VC- Virtual Channel). Virtuelni kanali mogu da prihvataju pakete više različitih klasa saobraćaja, ali se paketi iste klase saobraćaja ne mogu slati u različite bafere virtuelnih kanala. Svaki virtuelni kanal ima određen prioritet, shodno prioritetu paketa koje sadrži u sebi. Upravljanje tokom podataka (Flow Control) Nakon prijema paketa, oni se smještaju u bafer virtuelnog kanala. Prijemnik periodično obavještava predajni uređaj o tome koliko slobodnog prostora ima u svom baferu. Predajnik će početi sa slanjem paketa jedino ako “zna” da će prijemnik imati dovoljno prostora u svom baferu za smještanje tog paketa. Upravljanje tokom (engl. Flow Control je protokol kojim se obezbjeđuje da predajnik dobija informacije o raspoloživom prostoru bafera prijemnika i zahvaljujući ovom protokolu eliminiše se potreba za ponovnim slanjem paketa (osim u slučaju da dođe do greške prilikom prenosa), čime se poboljšava efikasnost prenosa podataka.
34

Specijalistički rad 201 0
MSI prekidna tehnika slična onoj kod PCI-X magistrale PCI Express koristi prekide signalizirane porukama (MSI), slično PCI-X magistrali. Poruke se šalju po linijama za podatake (in-band), u obliku paketa tipa upis u memoriju, i sadrže vektor broj. Kada Root complex primi ovakvu poruku, on šalje prekidni signal procesoru. Upravljanje potrošnjom (Power Management) PCI Express struktura troši manje energije, sa obzirom da magistrala ima manji broj linija, i da su naponi signala manji. PCI/PCI Express softver za upravljanje potrošnjom određuje mogućnosti svakog uređaja u pogledu upravljanja potrošnjom i svakim uređajem upravlja individualno, slično kao kod PCI sistema. Uređaji mogu da obavještavaju softver o njihovom trenutnom stanju, a softver može da generiše wake-up događaje za ponovno aktiviranje uređaja ili grupe uređaja. Bez učešća softvera, uređaji mogu da prebace Link u stanje sa malom potrošnjom, ako nakon isteka određenog vremena od slanja poslednjeg paketa, nema novih paketa za slanje. Ova mogućnost zove se upravljanje potrošnjom u aktivnom stanju (Active State power management). Podrška rada za Hot Plug PCI Express podržava hot plug, ali i hot unplug, bez korišćenja dodatnih signalnih linija. Hot plug prekidne poruke, koje se šalju po linijama za podatke (in-band) root complexu, aktiviraju hot plug softver koji detektuje priključivanje ili isključivanje PCI Express uređaja. Softverski model kompatibilan sa PCI arhitekturom Kao što je to već rečeno, PCI Express je softverski kompatibilna arhitektura sa prethodnim PCI arhitekturama. Memorijski i ulazno/izlazni adresni prostor ostaju isti kao kod PCI/PCI-X sistema. Prvih 256 B konfiguracionog prostora za sve PCI Express funkcije su isti kao kod PCI/PCI-X uređaja, čime se obezbjeđuje da postojeći operativni sistemi i drajveri uređaja rade i u PCI Express sistemu. Međutim, imajući u vidu da je konfiguracioni prostor proširen na 4 kB po funkciji uređaja, potrebni su novi operativni sistemi i drajveri uređaja za korišćenje ovog, proširenog prostora. Mehanički faktori oblika PCI Express uređaji proizvode se u različitim oblicima kao što su PCI Express kartice slične PCI karticama, Mini PCI Express kartice, ExpressCard, Server IO Module (SIOM). PCI Express kartice, slične standardnim PCI karticama, namjenjene su tržištu stonih (desktop) računara. Trenutno se, na matičnim pločama, sreću konektori tipa x1, x4, x8 i x16. Mini PCI Express kartice predstavljaju zamjenu za Mini PCI kartice i prevashodno su namjenjene tržištu prenosivih (laptop) računara. Kao što im sam naziv kaže, znatno su manje od standardnih PCI Express kartica.

35

Specijalistički rad 201 0
ExpressCard je zamjena za PC Card (CardBus). Ove kartice, koje su tipa PCMCIA, mogu se koristiti kako u stonim tako i u prenosivim računarima. ExpressCard koristi ili PCI Express magistralu x1 ili USB magistralu za povezivanje sa ostalim komponentama računarskog sistema. Server IO Module (Serverski ulazno/izlazni modul) je namjenjen tržištu servera i radnih stanica.

5.1. PCI Express topologija
U ovom odjeljku biće definisani osnovni pojmovi koji su vezani za topologiju PCI Express sistema. Na slici 16 prikazane su osnovne komponente PCI Express sistema.

Slika 60: Topologija PCI Express sistema

Root Complex predstavlja komponentu koja povezuje CPU i memorijski podsistem sa PCI Express strukturom. On može da podržava jedan ili više PCI Express portova. U konkretnom slučju, root complex podržava tri porta. Svaki je port povezan sa nekom krajnjom tačkom (endpoint device) ili sa komutatorom, koji formira podhijerarhiju. Root complex generiše sve pomenute tipove transakcija na zahtev CPU-a. Preko root complex-a U/I uređaji
36

Specijalistički rad 201 0
komuniciraju sa memorijom. Root complex koji ima više portova, ima mogućnost da rutira pakete sa jednog porta na drugi, iako se to, po specifikaciji, od njega ne traži. Root complex takođe, sadrži centralne resurse kao što su hot plug kontroler, kontroler za upravljanje potrošnjom, kontroler prekida kao i logika za detekciju grešaka. Root complex vrši inicijalizaciju u PCI Express sistemu, tako što numeriše magistrale, uređaje i funkcije. Ovim vrijednostima definišu se requster ID i completer ID. Magistrala root complex-a, uređaj i funkcija se inicijalizuju na vrijednost 0. Hijerarhija (Hierarchy) je struktura koju čine svi uređaji i Link-ovi koji su povezani sa root complex-om, bilo direktno, preko njegovih portova, bilo indirektno, preko komutatora i mostova. Na slici 16, cjelokupna struktura koja je povezana sa sa root complex-om predstavlja hijerarhiju. Hijerarhijski domen (Hierarchy Domain) predstavlja strukturu koju čine uređaji i Linkovi koji su vezani na jedan port root complex-a. Na slici 16 ima 3 hijerarhijska domena. Krajnje tačke (Endpoints) su svi uređaji koji nisu root complex ili komutatori, a koji su requester-i i completer-i PCI Express transakcija. To su periferni uređaji kao što su grafičke kartice, Ethernet i USB uređaji. Postoje dva tipa krajnjih tačaka: naslijeđene (legacy) krajnje tačke i (prave) PCI Express krajnje tačke. Svakoj krajnjoj tački dodjeljuje se identifikator uređaja (requester ID ili completer ID), koji se sastoji od broja magistrale, broja uređaja i broja funkcije. Krajnje tačke su uvek numerisane brojem 0 na magistrali. Multifunkcijske krajnje tačke (Multi-Function Endpoints). Kao i PCI uređaji, PCI Express uređaji podržavaju do 8 funkcija po krajnjoj tački, pri čemu najmanje jedna ima broj 0. Međutim, PCI Express Link podržava samo jednu krajnju tačku sa brojem 0. Most PCI Experss-na-PCI(-X) (PCI Express-to-PCI(-X) Bridge) predstavlja, kao što mu samo ime kaže, most između PCI Express strukture i PCI ili PCI-X hijerarhije. Requester je uređaj koji inicira transakciju u PCI Express sistemu. Root complex i krajnje tačke mogu biti requester-i. Completer je uređaj kome se obraća requester. Requester čita podatke iz completer-a, ili upisuje podatke u completer. Root complex i krajnje tačke mogu biti completer-i. Port predstavlja interfejs između PCI Express komponente i Link-a. Sastoji se od diferencijalnih predajnika i prijemnika. Upstream port je port koji je usmjeren ka root complex-u (naviše). Downstream port je port koji je usmjeren od root complex-a (naniže). Portovi krajnjih tačaka su upstream portovi. Portovi root complex-a su downstream portovi. Ulazni port (Ingress Port) je port koji prima paket. Izlazni port (Egress Port) je port koji šalje podatke. Komutator (Switch) se može posmatrati kao logički element koji se sastoji od dva ili vise logičkih mostova PCI-na-PCI (PCI-to-PCI bridge), pri čemu je svaki most povezan sa po jednim portom. Komutator na slici 16 koji ima 4 porta, sastoji se iz 4 virtuelna mosta. Jedan port
37

Specijalistički rad 201 0
komutatora, koji je usmjeren ka root complex-u, je upstream port. Svi ostali portovi koji su usmjereni od root complex-a (ka uređajima koji se nalaze niže u hijerarhiji) su downstream portovi. Komutatori koriste dva arbitražna mehanizma: arbitraža portova i arbitraža virtuelnih kanala. Pomoću ovih mehanizama određuje se prioritet, odnosno redosljed kojim će se paketi prosljeđivati od ulaznih ka izlaznim portovima.

5.2. Primjeri PCI Express arhitekture
Na slici 17 prikazana je jedna tipična PCI Express arhitektura za stone ili prenosive računare. Komponenta Memory bridge (memorijski most) zapravo je root complex o kome je je bilo riječi u prethodnom odjeljku. Veza između Memory bridge-a i I/O bridge-a ostvaruje se pomoću PCI Express Link-a. PCI Express magistrala je, dakle, zamijenila ranije korišćeni Hub Link (slika 9). Komunikacija sa grafičkom karticom, takođe se ostvaruje preko PCI Express magistrale, umjesto ranije korišćene AGP magistrale. Switch (komutator) je ovdje prikazan kao zasebni element, mada on može biti integrisan bilo u Memory bridge (root complex), bilo u Input/Output bridge. PCI slotovi će vjerovatno još dugo vremena biti prisutni u PCI arhitekturama, sve dok ih PCI Express u potpunosti ne potisne iz upotrebe. U ostalom, to je bio slučaj i sa ISA slotovima kada su se pojavile PCI arhitekture.

38

Specijalistički rad 201 0

Slika 61: Primjer PCI Express arhitekture opšte namjene za stone i prenosive računare

PCI Express magistrala nije namjenjena samo tržištu stonih i prenosivih računara kao što je to bio slučaj sa PCI magistralom. To je magistrala opšte namjene koja se može koristiti i za servere, komunikacione sisteme kao i za embedded sisteme. Na slici 18 prikazana je arhitektura server koji koristi PCI Express magistralu. Za spregu sa PCI odnosno PCI-X magistralom koriste se odgovarajući bridge-evi (mostovi).

39

Specijalistički rad 201 0

Slika 62: Primjer PCI Express arhitekture za servere/radne stanice

U nastavku ćemo sa nešto više detalja razmotriti slojevitu arhitekturu PCI Express sistema. Vidjećemo kako se prenose podaci na PCI Express magistrali, način formiranja, slanja i prijema paketa (bez ulaženja u detalje sadržaja paketa).

40

Specijalistički rad 201 0

6. Uvod u PCI Express transakcije
U PCI Express sistemima podaci se prenose u obliku paketa. Postoji više vrsta paketa, ali su za prenos samih podataka najznačajniji tzv. paketi transakcionog sloja (Transaction Layer packets – u daljem tekstu koristićemo skraćenicu TLP). PCI Express transakcije mogu se podijeliti u četiri kategorije: 1) memorijske, 2) ulazno/izlazne, 3) konfiguracione, i 4) transakcije porukama. Memorijske, ulazno/izlazne i konfiguracione transakcije su postojale i kod PCI i kod PCI-X arhitektura, dok su transakcije porukama novina. Pod transakcijom se podrazumijeva niz od jednog ili više prenosa paketa koji su potrebni da bi se izvršio prenos informacija između requester-a i completer-a. Sve transakcije mogu se podijeliti na non-posted i na posted transakcije. U Tabeli 4 dat je detaljniji prikaz tipova transakcija. Tabela 4: PCI Express Non-Posted i Posted transakcije Tip transakcije Non-Posted ili Posted Čitanje memorije (Memory Read) Non-posted Upis u memoriju (Memory Write) Posted Čitanje memorije sa zaključavanjem (Memory Read Lock) Non-posted Čitanje iz U/I-a (I/O Read) Non-posted Upis u U/I (I/O Write) Non-posted Čitanje konfiguracije (Tip 0 i Tip1) (Configuration Read) Non-posted Upis konfiguracije (Tip 0 i Tip1) (Configuration Write) Non-posted Poruka (Message) Posted

Kod non-posted transakcija, requseter šalje TLP zahtev completer-u. Completer, kasnije odgovara requester-u tako što mu šalje paket odgovora (completion). Pri tom se primjenjuje protokol dijeljenja transakcije, sličan onom kod PCI-X magistrale. Svrha paketa odgovora jeste da potvrdi prijem paketa od strane completer-a. Osim toga, ovi paketi mogu da sadrže i tražene podatke (ako je u pitanju transakcija čitanja). Non-posted transakcije upisa sadrže podatke u paketu kojim se zahtjeva upis. Kod posted transakcija requester šalje zahtjevni TLP paket completer-u. Completer, međutim, NE odgovara na ovaj zahtjev, tj. ne šalje paket odgovora requester-u. Time se postiže bolja efikasnost, po cijenu toga da requester nema informaciju o uspješnosti prijema paketa od strane completer-a. Posted transakcije mogu, ali i ne moraju da sadrže podatke u zahtjevnom TLP-u.

41

Specijalistički rad 201 0
6.1. PCI Express transakcioni protokol
U Tabeli 5 prikazani TLP zahtevni (request) paketi i paketi odgovora. Ovi paketi koriste se u transakcijama koji se date u Tabeli 4. U ovom dijelu pokazaćemo kako se paketi koriste u transakcijama na sistemskom nivou, ali nećemo ulaziti u detalje koji se tiču sadržaja paketa, niti u to kako se ovi paketi rutiraju kroz PCI Express strukturu. Tabela 5: Tipovi PCI Express TLP paketa Tip TLP paketa Zahtev za čitanje memorije (Memory Read Request) Zahtev za čitanje memorije - zaključan pristup (Memory Read Request Locked access) Zahtev za upis u memoriju (Memory Write Request) Čitanje iz U/I-a (I/O Read) Upis u U/I (I/O Write) Čitanje konfiguracije (Tip 0 i Tip1) (Configuration Read) Upis konfiguracije (Tip 0 i Tip1) (Configuration Write) Poruka bez podataka (Message Request without data) Poruka sa podacima (Message Request with data) Odgovor bez podataka (Completion without Data) Odgovor sa podacima (Completion with Data) Odgovor bez podataka vezan za zahteve čitanja iz memorije sa zaključavanjem (Completion without Data - associated with Locked Memory Read Requests) Odgovor sa podacima vezan za zahteve čitanja iz memorije sa zaključavanjem (Completion with Data - associated with Locked Memory Read Requests) Non-posted transakcije čitanja Na slici 19 prikazan je način prenosa paketa od requester-a ka completer-u za slučaj nonposted transakcije čitanja. Da bi se ostvarila ova transakcija, requester šalje zahtjev za čitanje completer-u, od koga želi da pročita podatake. To može biti zahtjev za čitanje memorije (MRd), čitanje U/I-a (IORd) ili čitanje konfiguracije (Tip 0 i Tip1 tj. CfgRd0 i CfgRd1). Requester može biti root complex ili krajnja tačka (pri tom krajnje tačke ne mogu da šalju zahtjeve za čitanje ili upis konfiguracije). Na osnovu inforamcije koja je sadržana u zaglavlju TLP paketa, vrši se njegovo rutiranje kroz mrežu komutatora, sve dok paket, na kraju, ne stigne na odredište. Completer može biti root
42

Skraćeni naziv MRd MRdLk MWr IORd IOWr CfgRd0 CfgRd1 CfgWr0 CfgWr1 Msg MsgD Cpl CplD CplLk CplDLk

Specijalistički rad 201 0
complex, komutator, most ili krajnja tačka.

Slika 63: Non-posted transakcija čitanja

Kada completer primi paket i dekodira njegov sadržaj, prikuplja tražene podatke, i vraća ih nazad requester-u u obliku TLP paketa odgovora. To može biti jedan ili više paketa (CplD), pri čemu je maksimalna količina podataka koja se može prenijeti jednim paketom 4 kB (1024 DW). Paket odgovora, takođe, sadrži neophodne informacije za rutiranje paketa, i on se vraća do requester-a istim putem kojim došao i zahtjevni paket. Paketi odgovora sadrže tag polje koje requester uparuje sa zahtjevnim TLP paketom, koji ima isti tag, a koji je poslat ranije. To omogućava requester-u da šalje veći broj uzastopnih zahtjeva completer-u, i da uvek “zna” na koji zahtjev se odnosi primljeni paket odgovora. Ukoliko completer, zbog neke greške, nije u mogućnosti da pribavi tražene podatke, on vraća paket odgovora bez podataka (Cpl), i indikaciju statusa greške. Requester određuje kako će postupiti sa ovom greškom na softverskom nivou (sloju). Non-posted transakcije čitanja za zahteve sa zaključavanjem
43

Specijalistički rad 201 0
Na slici 20 prikazan je način prenosa paketa od requester-a ka completer-u za slučaj nonposted transakcije čitanja sa zaključavanjem. Da bi se ostvario ovaj prenos, requester šalje zahtjev za čitanje memorije sa zaključavanjem (memory read locked request - MRdLk). Sama transakcija je veoma slična prethodno opisanoj non-posted transakciji čitanja. Razlika je u tome što requester može biti jedino root complex, dok completer može biti jedino naslijeđena (legacy) krajnja tačka, kao i to što je cjelokupna putanja (uključujući i ulazne i izlazne portove komutatora), od root complex-a do krajnje tačke, zaključana tokom trajanja transakcije. Root complex, inicira transakciju sa zaključavanjem na zahtev CPU-a. Krajnjim tačkama, bez obzira na tip, nije dozvoljeno da iniciraju zahtjeve sa zaključavanjem, tj. one ne mogu biti requester-i kod ovog tipa transakcije. Nakon što completer primi paket i dekodira njegov sadržaj, on prikuplja tražene podatke i formira jedan ili više paketa odgovora sa podacima (CplDLk). Ovaj paket vraća se do root complexa istim putem kojim je došao i zahtjevni paket. Ukoliko completer, zbog neke greške, nije u mogućnosti da pribavi tražene podatke, on vraća paket odgovora bez podataka (CplLk), i indikaciju statusa greške. Requester određuje kako će postupiti sa ovom greškom na softverskom nivou. Putanja od requester-a do completer-a ostaje zaključana sve dok requester ne pošalje poruku za otključavanje. Putanja i ulazni/izlazni portovi kroz koje prođe ova poruka, postaju otključani.

Slika 64: Non-posted transakcija čitanja sa zaključavanjem

44

Specijalistički rad 201 0
Non-posted transakcije upisa Na slici 21 prikazan je način prenosa paketa od requester-a ka completer-u za slučaj nonposted transakcije upisa. Da bi se ostvario ovaj prenos requester šalje completer-u nonposted zahtjev za upis. To može biti zahtjev za upis u U/I (IOWr) ili zahtjev za upis konfiguracije (Tip 0 i Tip1 tj. CfgWr0 i CfgWr1). Zahtjevi za upis u memoriju, i transakcije porukama predstavljaju posted zahtjeve. Requester može biti root complex ili krajnje tačke (pri tom krajnje tačke ne mogu da šalju zahtjeve za upis konfiguracije). Na osnovu informacije koja je sadržana u zaglavlju TLP paketa, vrši se njegovo rutiranje kroz mrežu komutatora, sve dok paket, na kraju, ne stigne na odredište.

Slika 65: Non-posted transakcija upisa

Kada completer primi paket, dekodira njegov sadržaj, i prihvata podatke. Completer, zatim, šalje jedan paket odgovora bez podataka (Cpl), kako bi potvrdio prijem zahtjeva za upis. To i jeste svrha paketa odgovora. Paket odgovora, takođe, sadrži neophodne informacije za rutiranje paketa, i on se vraća do requester-a istim putem kojim došao i zahtjevni paket. Ukoliko completer nije u stanju da uspješno izvrši upis podataka, ili dođe do neke greške, tada on vraća paket odgovora bez podataka (Cpl), ali sa indikacijom statusa greške.

45

Specijalistički rad 201 0

Posted transakcije upisa u memoriju Zahtjevi za upis u memoriju koji su prikazani na slici 22 su posted transakcije. To znači da completer NE vraća pakete odgovora, kojima bi obavještavao requester-a o uspješnom prijemu paketa. Time se štedi vrijeme, pa se uzastopni (back-to-back) upisi ostvaruju efikasnije u odnosu na non-posted transakcije. Zahtjevi za upis u memoriju, takođe, sadrže u zaglavlju paketa informacije koje su neophodne za rutiranje paketa. Kada paket stigne na odredište, completer prihvata podatke. Time se transakcija završava. Ukoliko se prilikom prijema paketa ustanovi greška, ili completer nije u stanju da primi paket zbog unutrašnje greške, requester o tome neće biti informisan putem nekog hardverskog protokola. Completer može da evidenitira grešku, i da generiše poruku kojom obavještava root complex da je došlo do greške. Ova greška se dalje softverski obrađuje.

Slika 66: Posted transakcija u memoriju

46

Specijalistički rad 201 0

Posted transakcije porukama Zahtevi koji se šalju u obliku poruka, takođe spadaju u posted transakcije (slika 23). Postoje dva tipa poruka: poruke bez podataka (Msg) i poruke sa podacima (MsgD). Poruka može biti namijenjena jednom completer-u ili svim krajnjim tačkama (broadcast), pri čemu je root complex requester. Poruke se rutiraju na osnovu adrese poruke, identifikacije uređaja ili implicitno. Completer prihvata podatke koji su sadržani u porukama i/ili izvršava zadatak koji je definisan porukom. Zahvaljujući porukama, eliminiše se potreba za posebnim signalnim linijama (side-band signals). Porukama se šalju zahtjevi za prekid, komande za upravljanje potrošnjom, hot plug komande, signaliziraju se greške itd.

Slika 67: Posted transakcije porukama

47

Specijalistički rad 201 0
7. Slojevi PCI Express uređaja 7.1. Pregled
PCI Express specifikacija definiše slojevitu arhitekturu koja je prikazana na slici 24. Slojevi koji čine PCI express arhitekturu su: transakcioni sloj (Transaction Layer), sloj veze (Data Link Layer), i fizički sloj (Physical Layer). Slojevi se dalje, mogu vertikalno podijeliti na dva dijela i to na: predajni dio kojim se obrađuje odlazni saobraćaj, i prijemni dio kojim se obrađuje dolazni saobraćaj. Međutim, PCI Express uređaji ne moraju da implementiraju slojevitu arhitekturu, ukoliko ostvaruju funkcionalnost koja se zahtijeva PCI Express specifikacijom. Predajni dio uređaja Razmotrimo najprije, predajni dio uređaja. Paketi se formiraju na transakcionom sloju od informacija koje se dobijaju od jezgra uređaja (device core), i aplikacije. Ovo su osnovni paketi u PCI Express arhitekturi i zovu se paketi transakcionog sloja (Transaction Layer Packet - TLP). Sloj veze na ovaj paket dodaje podatke koji služe za detekciju greške na prijemnoj strani. Na fizičkom sloju paket se kodira, i šalje diferencijalno pomoću analognog dijela ovog sloja. Prijemni dio uređaja Prijemnik na fizičkom nivou dekodira sadržaj primljenog paketa, i prosljeđuje ga višim slojevima. Sloj veze provjerava da li u primljenom paketu ima grešaka, i ukoliko nema grešaka prosljeđuje paket transakcionom sloju. Transakcioni sloj baferuje primljene podatke i pretvara ih u oblik koji je pogodan za obradu u jezgru uređaja ili aplikaciji.

Slika 68: Slojevi PCI Express uređaja

48

Specijalistički rad 201 0
7.2. Slojevi uređaja i odgovarajući paketi
Postoje tri vrste paketa i svaka vrsta povezana je sa odgovarajućim slojem uređaja. Transakcionom sloju odgovaraju paketi transakcionog sloja (Transaction Layer Packet - TLP), sloju veze odgovaraju paketi sloja veze (Data Link Layer Packet - DLLP), i najzad, fizičkom sloju odgovaraju paketi fizičkog sloja (Physical Layer Packet - PLP). Paketi transakcionog sloja (Transaction Layer Packet - TLP) O vrstama TLP paketa već je bilo riječi u prethodnim odjeljcima. Sada ćemo razmotriti kako se ovi paketi sastavljaju i rastavljaju. TLP paketi formiraju se na transakcionom sloju predajnika i završavaju na transakcionom sloju prijemnika (slika 25). Sloj veze i fizički sloj, takođe, daju doprinos formiranju TLP paketa. Na prijemnoj strani TLP paket se rastavlja prolazeći, redom, kroz fizički, sloj veze i najzad kroz transakcioni sloj.

Slika 69: Izvorište i odredište TLP paketa

49

Specijalistički rad 201 0
Sastavljanje TLP paketa. Izgled TLP paketa na Link-u prikazan je na slici 26. Jezgro TLP paketa predstavljaju podaci koje treba prenijeti i zaglavlje (header). Ovi podaci dobijaju se od softverskog sloja ili jezgra uređaja. Njima se dodaje opciono End-to-End CRC (ECRC) polje. ECRC polje koristi se od strane krajnjeg, ciljnog uređaja za detekciju greške. Dalje se jezgro TLP paketa prosljeđuje sloju veze, koji dodaje polja identifikator sekvence (sequence ID) i LCRC polje koje je sada obavezno. LCRC polje služi za detekciju grešaka od strane susjednog prijemnika koji se nalazi sa druge strane Link-a. LCRC se određuje na osnovu jezgra TLP paketa plus identifikator sekvence. Dobijeni paket predaje se fizičkom sloju, koji dodaje karaktere za uokvirenje, pri čemu je svaki karakter veličine 1 bajt. Paket se kodira, i diferncijalno šalje na Link.

Slika 70: Sastavljanje TLP paketa

Rastavljanje TLP paketa. Kada susjedni prijemnik primi paket, on se, najprije, na fizičkom nivou dekodira, a zatim se odbacuju Start i End polja za uokviravanje (slika 27). Ostatak paketa šalje se sloju veze. Ovaj sloj provjerava ispravnost primljenog paketa i uklanja identifikator sekvence i LCRC polje. Pretpostavimo da nema grešaka u primljenom paketu. U tom slučaju TLP se prosljeđuje transakcionom sloju. Ukoliko je prijemni uređaj komutator, paket se rutira sa jednog porta na drugi, izlazni port, na osnovu informacije koja je sadržana u zaglavlju TLP paketa. Krajnji, ciljni uređaj provjerava ECRC polje (ukoliko postoji), odbacuje ga, ostavljajući zaglavlje i dio sa podacima. Ove informacije se, najzad, predaju softverskom sloju ili jezgru uređaja.

50

Specijalistički rad 201 0

Slika 71: Rastavljanje TLP paketa

Paketi sloja veze (Data Link Layer Packet - DLLP) Drugi tip paketa koji se definiše PCI Express specifikacijom jesu paketi sloja veze. Ovi paketi potiču od sloja veze predajnika i završavaju na sloju veze prijemnika. Ovaj proces prikazan je na slici 28. I ovde fizički sloj doprinosi sastavljanju i rastavljanju DLLP paketa. DLLP paketi koriste se za upravljanjem Link-om. Ovim paketima prenose se potvrde prijema TLP paketa (ACK/NAK protokol), informacije za upravljanje potrošnjom, kao i informacije za upravljanjem tokom prenosa. DLLP paketi se prenose između dva direktno povezana uređaja. Oni, za razliku od TLP paketa, ne prolaze kroz komutatore. DLLP paketi ne sadrže informacije za rutiranje. Ovi paketi su i po veličini manji od TLP paketa, i njihova veličina iznosi 8 bajtova (uključujući i Start i End polja).

51

Specijalistički rad 201 0

Slika 72: Izvorište i odredište DLLP paketa

Sastavljanje DLLP paketa. Proces sastavljanja DLLP paketa prikazan je na slici 29. Postoje različite vrste DLLP paketa: DLLP paketi za upravljanje tokom prenosa (Flow Control DLLP - FCx-), DLLP paketi kojima se potvrđuje prijem TLP paketa (acknowledge/no acknowledge DLLP - ACK i NAK), i DLLP paketi za upravljanje potrošnjom (power management - PMx). Tip DLLP paketa određen je posebnim poljem DLLP paketa. Sloj veze dodaje i 16-bitno CRC polje koje se koristi od strane prijemnika za detekciju grešaka. Fizički sloj pridodaje Start i End karaktere za uokviravanje (svaki veličine 1 bajt). Paket se kodira i diferencijalno šalje na Link.

Slika 73: Sastavljanje DLLP paketa

52

Specijalistički rad 201 0
Rastavljanje DLLP paketa: DLLP paketi primaju se fizičkim slojem prijemnika. Primljeni niz bitova najprije se dekodira, a zatim se uklanjaju Start i End polja za uokviravanje, kao što je to prikazano na slici 30. Ostatak paketa predaje se sloju veze, koji provjerava ispravnost primljenog paketa, na osnovu CRC polja. Sloj veze je krajnje odredište DLLP paketa. Dakle, oni se ne prosljeđuju transakcionom sloju.

Slika 74: Rastavljanje DLLP paketa

Paketi fizičkog sloja (Physical Layer Packet - PLP) Treći tip PCI Express paketa jesu paketi fizičkog nivoa (PLP). Ovi paketi potiču od fizičkog nivoa predajnika i završavaju na fizičkom nivou prijemnika. Proces formiranja PLP paketa prikazan je na slici 31. Struktura PLP paketa je veoma jednostavna i oni počinju 1bajtnim COM (comma) karakterom, za kojim slede 3 ili više drugih karaktera koji određuju tip PLP paketa, ali sadrže i druge informacije. PLP paket je umnožak od 4 bajta, a primjer PLP paketa prikazan je na slici 32. Ovaj tip paketa se, u specifikaciji, naziva uređeni skup (Orderedset). PLP paketi, kao i DLLP paketi, ne sadrže informacije za rutiranje, pa samim tim oni ne prolaze kroz komutator. Neki PLP paketi se koriste tokom procesa pripreme Link-a za prenos (Link Training process). Drugi PLP paketi se koriste za kompenzaciju odstupanja taktne frekvencije prijemnika od taktne frekvencije predajnika. PLP paketi se koriste i za prebacivanje Link-a u stanje sa smanjenom potrošnjom (low power state), kao i za vraćanje Link-a iz ovog stanja u normalan radni režim.

53

Specijalistički rad 201 0

Slika 75: Izvorište i odredište PLP paketa

Slika 76: Tipični PLP paket

54

Specijalistički rad 201 0

7.3. Uloga svakog sloja PCI Express uređaja
Na slici 33 prikazana je detaljnija blok šema slojeva PCI Express uređaja, a u nastavku ovog odjeljka biće, sa nešto više detalja, objašnjena uloga svakog od ovih slojeva. Jezgro uređaja/Softverski sloj Jezgro uređaja (Device core) predstavlja, na primjer, logika root complex-a, ili logika krajnje tačke kao što je Ethernet kontroler, SCSI kontroler, USB kontroler itd. Za projektovanje PCI Express uređaja može se iskoristiti logika PCI ili PCI-X uređaja, kojoj se dodaju PCI Express slojevi opisani u ovom odeljku. Predajna strana. Jezgro uređaja zajedno sa lokalnim softverom obezbjeđuje neophodne podatke za formiranje TLP paketa. To su, na primjer, tip transakcije, adresa, količina podataka koje treba prenijeti, sami podaci za prenos, klasa saobraćaja, indeks poruke itd. Prijemna strana. Na prijemnoj strani jezgro uređaja prima informacije od transakcionog sloja. To su uglavnom, isti oni podaci koje šalje predajna strana jezgra uređaja. Pored ovih podataka, ovaj dio prima i izveštaje o greškama.

Slika 77: Detaljna šema slojeva PCI Express uređaja

55

Specijalistički rad 201 0

Transakcioni sloj Transakcioni sloj, prikazan na slici 33, zadužen je za generisanje i prijem TLP paketa. Transakcioni sloj podržava protokol dijeljenja transakcije za non-posted transakcije. Ovaj sloj sadrži bafere virtuelnih kanala (VC buffers) koji služe za smještanje paketa za slanje, kao i primljenih TLP paketa. Upravljanje tokom prenosa (Flow control) osigurava da predajnik neće započeti prenos paketa ukoliko prijemnik nema dovoljno prostora za prijem tih paketa. Ovim slojem obezbjeđuje se i tzv. kvalitet usluge (Quality of Service- QoS). Predajna strana. Na predajnoj strani formiraju se TLP paketi (slika 34). Osnovne komponente koje čine TLP paket su: zaglavlje (Header), podaci za prenos (Data Payload), i opciono ECRC polje (u specifikaciji se koristi izraz Digest). Struktura TLP paketa na transakcionom sloju prikazana je na slici 34.

Slika 78: Struktura TLP paketa na transakcionom sloju

Zaglavlje je veličine 3 dvostruke riječi (DW) ili 4 dvostruke riječi, u zavisnosti od toga da li se koristi 32-bitno ili 64-bitno adresiranje. Zaglavlje sadrži sledeće podatke: adresu (odredišnu), tip TLP paketa (tipovi TLP paketa dati su u Tabeli 5), identifikator requester-a odnosno completer-a, polje tag, klasu saobraćaja, byte enables, kodove odgovora, i atribute. Adresa kod memorijskih zahtjeva može biti 32-bitna ili proširena 64-bitna. U slučaju U/I transakcija adresno polje je 32-bitno. Kod konfiguracionih transakcija ovo polje je identifikator koji se sastoji od broja magistrale, broja uređaja i broja funkcije, plus adresa konfiguracionog registra kome se želi pristupiti. Kod paketa odgovora adresa je identifikator requester-a (requester ID) tj. adresa uređaja koji je zahtijevao uslugu. U slučaju transakcija porukama, adresa predstavlja identifikator odredišnog uređaja koji se sastoji od broja magistrale, broja uređaja i broja funkcije. Zahtjevi u obliku poruka mogu se, takođe, emitovati svim uređajima (broadcast), ili rutirati implicitno ako im je odredište root complex. Obim prenosa (transfer size) ili polje dužine (length field) predstavlja količinu podataka koji su sadržani u paketu, ili se zahtjevaju od completer-a, a izražava se brojem dvostrukih riječi (doublewords - DW). Obim prenosa može biti između 1 i 1024 DW (tj. maksimalno 4 kB). Kod zahtjeva za upis, polje dužine ukazuje na količinu podataka koju paket nosi. Kod zahtjeva za čitanje, polje dužine ukazuje na količinu podataka koja se zahtjeva od completer-a. Zahtjevi za čitanje, međutim, ne sadrže polje sa podacima. Polje byte enables određuje razlaganje adrese na nivou bajtova.

56

Specijalistički rad 201 0
Paketi zahtjeva sadrže identifikator requester-a (requester ID), koji se sastoji od broja magistarle, broja uređaja, i broja funkcije. Polje tag iz zahtjeva se memoriše od strane completera, i isti tag koristi se u paketu odgovora. Jedan bit u zaglavlju (TD-TLP Digest) ukazuje na to da li paket sadrži ECRC polje (koje se takođe naziva i Digest). ECRC polje dugačko je 32 bita i sadrži End-to End CRC kod. Ovo polje generiše se na osnovu cjelokupnog TLP paketa, počev od prvog bajta zaglavlja, pa sve do posljednjeg bajta polja podataka (sa izuzetkom 2 bita zaglavlja koja su uvijek uzimaju kao 1). Prijemna strana. Na prijemnoj strani transakcioni sloj smešta dolazne TLP pakete u bafere virtuelnih kanala. Prijemnik provjerava da li u primljenom TLP paketu ima grešaka na osnovu ECRC polja. Ukoliko nema grešaka, ECRC polje se uklanja, a ostatak paketa se šalje jezgru uređaja. Upravljanje tokom prenosa (Flow Control). Transakcioni sloj ne šalje TLP pakete ukoliko prijemnik nema dovoljno prostora u svojim baferima virtuelnih kanala za prijem tih paketa. Protokol koji ovo omogućava zove se protokol upravljanja tokom. Cjelokupan proces odvija se automatski na hardverskom nivou. Proces upravljanja tokom prikazan je na slici 35. Prijemnik periodično šalje DLLP pakete za upravljanje tokom (FCx DLLP), i tako predajnik dobija informacije o tome koliko slobodnog prostora ima u baferima virtuelnih kanala prijemnika.

Slika 79: Proces upravljanja tokom

Kvalitet usluge (Quality of Service - QoS). Razmotrimo situaciju koja je prikazana na slici 36, gdje video kamera i SCSI uređaj treba da pošalju zahtjev za upis u sistemski DRAM. Podaci koje šalje video kamera su vremenski kritični i moraju da stignu do memorije u određenom roku i sa zagarantovanom propusnošću. U suprotnom, doći će do “sjeckanja” slike, ili slika neće biti jasna. Podaci koje šalje SCSI uređaj nisu vremenski osjetljivi, i važno je samo da do memorije stignu ispravno tj. bez grešaka. Jasno je da video podaci treba da imaju viši
57

Specijalistički rad 201 0
prioritet prilikom rutiranja kroz PCI Express strukturu. Kvalitet usluge predstavlja sposobnost rutiranja paketa koji potiču od različitih aplikacija, sa različitim prioritetom, determinističkim kašnjenjem i determinističkom propusnošću. PCI i PCI-X arhitekture ne podržavaju kvalitet usluge. Razmotrimo sljedeći primjer. Neka programski drajveri u sprezi sa operativnim sistemom, dodjeljuju paketima koji nose video sadržaj klasu saobraćaja 7 (TC7), a paketima koje šalje SCSI uređaj klasu saobraćaja 0 (TC0). Klasa saobraćaja upisuje se u zaglavlje TLP paketa. Na osnovu klase saobraćaja vrši se preslikavanje paketa u odgovarajuće bafere virtuelnih kanala. Neka se paketi klase saobraćaja TC0 preslikavaju u bafer virtuelnog kanala 0 (VC0), a paketi klase saobraćaja 7 u bafer virtuelnog kanala 7 (VC7). Paketi koji potiču od ove dviju aplikacije (video i SCSI aplikacije) kreću se kroz PCI Express strukturu, i dolaze do komutatora koji ih smješta u odgovarajuće bafere virtuelnih kanala (VC0 i VC7). Komutator, sada, na osnovu prioriteta određuje koji će paket biti prvi prosljeđen na izlazni port. Pretpostavimo da je VC7 konfigurisan tako da ima viši prioritet od VC0. Kad god komutator bude birao između dva paketa iz bafera VC7 i VC0, uvijek će izabrati paket iz bafera VC7 (paket sa video sadržajem). Time se obezbjeđuje veća propusnost i smanjeno kašnjenje paketa sa video podacima u odnosu na paket sa SCSI podacima.

Slika 80: Primjer načina ostvarivanja QoS-a kod PCI Express-a

PCI Express uređaj koji sadrži više od jednog bafera virtuelnog kanala, ima mogućnost da arbitrira između TLP paketa iz različitih bafera. Arbitražni mehanizam koji ovo omogućava
58

Specijalistički rad 201 0
zove se arbitraža virtuelnih kanala. Kao što ćemo kasnije vidjeti, komutatori osim arbitraže virtuelnih kanala mogu da vrše i arbitražu portova. Klase saobraćaja (Traffic Classes - TCs) i virtuelni kanali (Virtual Channels - VCs). Klasa saobraćaja (TC) je polje u okviru zaglavlja TLP paketa, koje se ne mijenja prilikom prenosa sa jednog na drugi kraj PCI Express strukture. Klasu saobraćaja određuju lokalni aplikativni softver i sistemski softver, na osnovu potrebne performanse. Virtuelni kanali (VC) su fizički baferi koji omogućavaju veći broj logičkih tokova podataka preko jednog fizičkog Link-a. To se postiže pomoću bafera virtuelnih kanala. PCI Express uređaji mogu da implementiraju do 8 bafera virtuelnih kanala (VC0-VC7). Polje klase saobraćaja je 3-bitno polje, koje omogućava razlikovanje 8 klasa saobraćaja (TC0TC7). Uređaji moraju da implementiraju VC0. Takođe se od uređaja zahtijeva da podržavaju klasu saobraćaja TC0. Ostale klase saobraćaja su opcione, i mogu se koristiti da bi se pravila razlika u prioritetu paketa. Uređaji i komutatori sadrže logički blok koji paket, date klase saobraćaja, preslikava u odgovarajući bafer virtuelnog kanala (TC-to-VC mapping). PCI Express ima mogućnost preslikavanja većeg broja klasa saobraćaja u i isti bafer virtuelnog kanala. Ograničavanjem broja virtuelnih kanala smanjuje se cijena uređaja. Način na koji će vršiti preslikavanje klasa saobraćaja u odgovarajuće virtuelne kanale, konfiguriše sistemski softver, pomoću konfiguracionih registara. Aplikativni softver određuje klasu saobraćaja za TLP pakete. U najprostijem slučaju, za svaku klasu saobraćaja postoji poseban virtuelni kanal (preslikavanje jedan-na-jedan). Razmotrimo primjer koji je prikazan na slici 37. Konfiguracioni registri kojima se određuje preslikavanje klase saobraćaja u virtuelne kanale, u uređaju A, konfigurisani su tako da se TLP paketi klase saobraćaja od 0 do 2 (TC[2:0]) upisuju u VC0, a TLP paketi klase saobraćaja od 3 do 7 (TC[7:3]) upisuju se u VC1. Registri koji određuju preslikavanje TC u VC u prijemnom uređaju B, moraju se konfigurisati identično kao u uređaju A. Ako uređaj A na primjer, treba da pošalje dva paketa, pri čemu je jedan klase saobraćaja 7, a drugi klase saobraćaja 0, ova dva paketa biće smještena u bafere VC1 i VC0, respektivno. Arbitražna logika arbitrira između ova dva bafera. Pretpostavimo da je VC1 konfigurisan tako da ima viši prioritet od VC0. Tada će uređaj A uvek slati TLP pakete iz VC1, pre TLP paketa iz VC0. Na prijemnoj strani, logika koja preslikava TC u VC, dekodira TC polje iz primljenog TLP paketa, i smješta paket u odgovarajući VC bafer.

U ovom primjeru TLP paketi koji imaju TC[7:3] šalju se sa višim prioritetom od paketa koji imaju TC[2:0]. Međutim, svi paketi koji se nalaze u istom baferu šalju se sa jednakim prioritetom bez obzira na TC.
59

Specijalistički rad 201 0

Slika 81: Klase saobraćaja i baferi virtuelnih kanala

Arbitraža portova i arbitraža virtuelnih kanala. Ciljevi arbitraže na transakcionom sloju su: • da omogući različito opsluživanje za različite tokove podataka unutar PCI Express strukture; • da obezbijedi zagarantovanu propusnost sa determinističkim i najmanjim mogućim kašnjenjem pri prenosu sa jednog kraja na drugi. U komutatorima se koriste dva tipa arbitraže za svaki izlazni port: arbiraža portova (Port Arbitration), i arbitraža virtuelnih kanala (VC Arbitration). Posmatrajmo sliku 38. Arbitraža portova predstavlja arbitražu između dva paketa koja dolaze na različite ulazne portove, ali se preslikavaju u isti virtuelni kanal (nakon prolaska kroz logiku za preslikavanje TC/VC) na zajedničkom izlaznom portu. Arbitraža virtuelnih kanala vrši se nakon arbitraže portova. Za dati izlazni port takmiče se paketi iz svih virtuelnih kanala koji su vezani za taj port. Arbitražom virtuelnih kanala određuje se redosljed kojim će se TLP paketi iz različitih bafera virtuelnih kanala, proslijediti na Link. Krajnje tačke i root complex-i sa samo jednim portom ne podržavaju arbitražu portova. Oni podržavaju samo arbitražu virtuelnih kanala na transakcionom sloju.

Slika 82: Arbitraža portova i arbitraža virtuelnih kanala kod komutatora

Upravljanje potrošnjom. Hardver transakcionog sloja samostalno upravlja potrošnjom uređaja kako bi se minimizovala potrošnja tokom potpuno operativnog stanja. Ovo automatsko upravljanje potrošnjom zove se upravljanje potrošnjom u aktivnom stanju (Active State Power Management), i ne uključuje softver.
60

Specijalistički rad 201 0
Konfiguracioni registri. Konfiguracioni registri uređaja su povezeni sa transakcionim slojem. Ovi registri se konfigurišu tokom incijalizacije i numeracije magistrala. Takođe ih konfigurišu i drajveri uređaja, a u toku rada može im pristupati operativni sistem. Sloj veze Blok šema sloja veze data je na slici 33. Osnovna funkcija sloja veze jeste da obezbijedi integritet podataka prilikom predaje i prijema paketa. Ukoliko, tokom prenosa paketa, dođe do greške, predajnik će biti upozoren pomoću NAK (no acknowledge) DLLP paketa. U tom slučaju, predajni uređaj automatski ponavlja slanje TLP paketa. Zahvaljujući provjeri grešaka i automatskom ponovnom slanju (replay) paketa koji su pogrešno primljeni, velika je vjerovatnoća da će TLP paketi koje šalje neki uređaj, stići na odredište bez grešaka. Zbog toga je PCI Express arhitektura veoma pogodna za visoko pouzdane sisteme kao što su serveri. Predajna strana. Prije nego što proslijedi odlazni TLP paket sloju veze, transakcioni sloj provjerava da li prijemni uređaj ima dovoljno prostora za smještanje paketa, korišćenjem mehanizma za upravljanje tokom. Ukoliko utvrdi da prijemnik ima dovoljno prostora za prijem paketa, transkacioni sloj prosljeđuje sloju veze paket koji se nalazi u baferu virtuelnog kanala, na dalju obradu. Razmotrimo sliku 39 na kojoj je prikazana logika ACK-NAK mehanizma sloja veze. Sloj veze zadužen je za generisanje CRC koda TLP paketa, kao i za provjeru grešaka. TLP paketu sa transakcionog sloja, dodaju se Link CRC (LCRC), i identifikator sekvence (sequence ID). Sloj veze kopira TLP paket u bafer za ponovno slanje (replay buffer), i šalje TLP paket uređaju B. Na drugoj strani, sloj veze uređaja B provjerava ispravnost primljenog paketa na osnovu CRC polja.

Slika 83: Mehanizam ponovnog slanja paketa (ACK/NAK)

Ukoliko nema grešaka sloj veze uređaja B šalje ACK (acknowledge) DLLP paket sa identifikatorom sekvence uređaju A. To je znak da je TLP paket uspješno stigao do uređaja B
61

Specijalistički rad 201 0
(koji ne mora da bude i krajnje odredište paketa). Uređaj A zatim, briše TLP paket sa datim identifikatorom sekvence iz bafera za ponovno slanje. Ako se, ipak, detektuje CRC greška u primljenom TLP paketu, tada sloj veze uređaja B, šalje NAK DLLP paket sa identifikatorom sekvence uređaju A. Sloj veze uređaja A ponovo šalje odgovarajući TLP paket iz bafera za ponovno slanje. Ukratko, mehanizam za ponovno slanje koristi polje ID sekvence iz primljenih ACK/NAK DLLP paketa, za uparivanje sa TLP paketima koji se nalaze u baferu za ponovno slanje. Prijem ACK DLLP paketa dovešće do brisanja odgovarajućeg TLP paketa iz bafera. Sa druge strane, prijem NAK DLLP paketa dovodi do ponovnog slanja TLP paketa. Ako za dati TLP paket, predajnik primi NAK DLLP paket 4 puta, i ponovo pošalje TLP paket 3 puta, tada sloj veze evidentira grešku, izvještava više slojeve da je došlo do greške i ponovo priprema Link za prenos. Prijemna strana. Prijemna strana zadužena je za provjeru grešaka u primljenim TLP paketima. Ukoliko nema grešaka, prijemnik šalje ACK DLLP paket udaljenom predajniku. Prijemnik uklanja polja LCRC i ID sekvence, i ostatak paketa šalje transakcionom sloju. Ako se detektuje CRC greška, prijemnik šalje NAK DLLP predajniku, a neispravni TLP paket se eliminiše. Prijemna strana sloja veze takođe prima i ACK i NAK pakete od udaljenog uređaja. Ukoliko je primljen ACK paket, sloj veze obavještava predajnu stranu uređaja da obriše odgovarajući paket iz bafera za ponovno slanje. Ako je primljen NAK paket, prijemna strana obavještava predajnu stranu uređaja, da ponovi slanje odgovarajućeg TLP paketa. Prijemna strana zadužena je i za provjeru identifikatora sekvence primljenih TLP paketa, kako bi se detektovao izostanak nekog paketa, ili poremećaj redosljeda TLP paketa. Doprinos sloja veze formiranju TLP i DLLP paketa. Sloj veze dodaje 12-bitno polje ID sekvence i 32-bitno LCRC polje odlaznom TLP paketu, koji dolazi sa transakcionog sloja. Paket koji se, na taj način dobija, prikazan je na slici 40. ID sekvence se koristi za uparivanje kopije odlaznog TLP paketa koji je smješten u baferu za ponovno slanje, sa ACK/NAK DLLP paketom koji je primljen od susjednog uređaja. Polje LCRC (32 bita) izračunava se na osnovu svih bajtova TLP paketa, računajući i ID sekvence. DLLP paket (slika 40) je 4-bajtni paket kome se dodaje 16-bitno CRC polje. Osmobitno polje Tip DLLP paketa ukazuje da li se radi o ACK, NAK, DLLP paketu za upravljanje potrošnjom, ili DLLP paketu za upravljanje tokom. Šesnaestobitno CRC polje izračunava se na osnovu sva 4 bajta DLLP paketa. Primljeni DLLP paketi koji ne prođu CRC proveru, se odbacuju. Gubitak informacije zbog odbacivanja DLLP paketa nadoknađuju sukcesivni DLLP paketi. ACK i NAK DLLP paketi sadrže i ID sekvence (prikazano kao polje Misc. na slici 40).

62

Specijalistički rad 201 0

Slika 84: Struktura TLP i DLLP paketa na sloju veze

Primjer Non-Posted transakcije koji ilustruje ACK-NAK protokol. U nastavku će postupno biti prikazano kako se ostvaruje transakcija čitanja iz memorije, kada uređaji komuniciraju preko komutatora. Na slici 41 prikazane su aktivnosti koje se sprovode tokom ove transakcije.

Slika 85: Non-posted transakcija na Link-u

Korak 1a: Requester šalje zahtjev za čitanje iz memorije (MRd). Komutator prima MRd TLP i na osnovu polja LCRC, provjerava da li ima CRC grešaka. Korak 1b: Ukoliko nema grešaka, komutator vraća ACK DLLP requester-u. Requester briše kopiju TLP paketa iz bafera za ponovno slanje. Korak 2a: Komutator na osnovu adrese koja je sadržana u zaglavlju TLP paketa, prosljeđuje MRd TLP na odgovarajući izlazni port. Completer prima MRd TLP, i na osnovu polja LCRC, provjerava da li ima CRC grešaka. Korak 2b: Ukoliko nema grešaka, completer vraća ACK DLLP komutatoru. Komutator briše kopiju TLP paketa iz bafera za ponovno slanje. Korak 3a: Completer provjerava da li ima grešaka u primljenom MRd TLP paketu pomoću opcionog ECRC polja. Pretpostavimo da nema End-to-End grešaka. Completer prikuplja tražene podatke i formira paket odgovora sa podacima (CplD). Komutator prima CplD TLP i na osnovu polja LCRC, provjerava da li ima CRC grešaka. Korak 3b: Ukoliko nema grešaka, komutator vraća ACK DLLP completer-u. Completer briše kopiju TLP paketa iz bafera za ponovno slanje.
63

Specijalistički rad 201 0
Korak 4a: Komutator na osnovu adrese u CplD TLP paketu, rutira paket ka odgovarajućem izlaznom portu. Requester prima CplD TLP, i na osnovu polja LCRC, provjerava da li ima CRC grešaka. Korak 4b: Ako nema grešaka requester vraća ACK DLLP paket komutatoru. Komutator briše kopiju CplD TLP paketa iz svog bafera za ponovno slanje. Sada requester provjerava ima li grešaka u CplD TLP paketu na osnovu opcionog ECRC polja. Pretpostavimo da nema End-toEnd grešaka. Requester provjerava kod greške u odgovoru. Pretpostavimo da kod odgovora ukazuje na uspješan prenos. Da bi pridružio odgovor i zahtjev, requester uparuje polje tag u CplD paketu sa izvornim poljem tag u MRd paketu. Na kraju requester prihvata primljene podatke. Primjer Posted transakcije koji ilustruje ACK-NAK protokol. Sada ćemo opisati kako se ostvaruje transakcija upisa u memoriju kada uređaji komuniciraju preko komutatora. Na slici 42 prikazane su aktivnosti koje se sprovode tokom ove transakcije.

Slika 86: Posted transakcija na Link-u

Korak 1a: Requester šalje zahtjev za upis u memoriju (MWr). Komutator prima MWr TLP i na osnovu polja LCRC, provjerava da li ima CRC grešaka. Korak 1b: Ukoliko nema grešaka, komutator vraća ACK DLLP requester-u. Requester briše kopiju TLP paketa iz bafera za ponovno slanje. Korak 2a: Komutator na osnovu adrese koja je sadražana u zaglavlju TLP paketa, prosljeđuje MWr TLP na odgovarajući izlazni port. Completer prima MWr TLP, i na osnovu polja LCRC, provjerava da li ima CRC grešaka. Korak 2b: Ukoliko nema grešaka, completer vraća ACK DLLP komutatoru. Komutator briše kopiju TLP paketa iz bafera za ponovno slanje. Completer provjerava da li ima grešaka u primljenom MWr TLP paketu pomoću opcionog ECRC polja. Pretpostavimo da nema End-toEnd grešaka. Completer prihvata primljene podatke. Kod ovog tipa transakcije completer ne šalje odgovor. Druge funkcije sloja veze. Nakon uključivanja sistema, ili nakon resetovanja, sloj veze inicira već pomenuti mehanizam za upravljanje tokom. Ovaj proces se odvija automatski na hardverskom nivou, bez učešća softvera.
64

Specijalistički rad 201 0
Fizički sloj Blok šema fizičkog sloja prikazana je na slici 33. TLP i DLLP paketi sa sloja veze, šalju se fizičkom sloju. Sa druge strane, paketi se primaju pomoću fizičkog sloja, i prosljeđuju sloju veze. Fizički sloj se može podijeliti na dva dijela: logički fizički sloj i električni fizički sloj. Logički fizički sloj se sastoji od digitalnih kola koja služe za obradu paketa prije nego što se oni pošalju na Link, ili za obradu primljenih paketa, prije nego što se oni pošalju sloju veze. Električni fizički sloj predstavlja analogni interfejs između fizičkog sloja i Link-a. On sadrži diferencijalne drajvere i diferencijalne prijemnike za svaku traku (Lane) pojedinačno. Predajna strana. TLP i DLLP paketi koji dolaze sa sloja veze, smještaju se u predajni bafer logičkog fizičkog sloja. Fizički sloj uokviruje TLP i DLLP pakete Start i End karakterima. Ovi simboli služe prijemniku za određivanje početka i kraja paketa. Na slici 43 prikazani su TLP i DLLP paketi kojima su dodati Start i End karakteri. Takođe su prikazane veličine svih polja TLP i DLLP paketa.

Slika 87: Struktura TLP i DLLP paketa na fizičkom sloju

Ako PCI Express uređaj podržava prenos po većem broju traka, paketi se dijele na bajtove (byte striping), tako da se svaki bajt prenosi po zasebnoj traci, a u skladu sa brojem raspoloživih traka. Tako se istovremeno prenosi veći broj bitova, pa se postiže veća propusnost. Svaki bajt paketa se zatim, skrembluje. Skrembler je u ovom slučaju, pomjerački registar sa lineranom povratnom spregom (Linear Feedback Shift Register). Cilj skremblovanja kod PCI Express-a NIJE da se informacija o taktu “usadi” u tok podataka, kao što je to slučaj u nekim sistemima, već da se eliminišu bitski oblici koji se ponavljaju (npr. 10101010). Bitski oblici koji se ponavljaju stvaraju značajne elektromagnetne smetnje na susjednim trakama, pa se njihovom eliminacijom smanjuju i smetnje na Link-u. Dobijeni bajtovi se zatim, kodiraju u 10-bitne simbole pomoću kodera 8b/10b. Osnovna svrha kodiranja 8-bitnih karaktera u 10-bitne simbole jeste stvaranje dovoljnog broja prelaza 1na-0 i 0- na-1, kako bi se olakšala ekstrakcija takta pomoću PLL-a u udaljenom prijemniku.
65

Specijalistički rad 201 0
Dakle, kod PCI Express magistrale ne prenose se taktni impulsi frekvencije 2,5 GHz po zasebnoj liniji, već niz bitova podataka sadrži dovoljno prelaza da omogući prijemniku regeneraciju takta. Na kraju se 10-bitni simboli konvertuju iz paralelnog u serijski oblik (pomoću paralelnoserijskog konvertora), i diferencijalno prenose bitskom brzinom od 2,5 Gbit/s. Prijemna strana. Električni deo fizičkog sloja prima paket koji dolazi u serijskom obliku. Serijski niz bitova najprije se konvertuje u 10-bitne paralelne simbole pomoću serijskoparalelnog konvertora. Prijemna logika sadrži elastični bafer koji služi za kompenzaciju razlike taktnih frekvencija predajnika i prijemnika. Naime, serijski niz bitova uzorkuje se i upisuje u serijskoparalelni konvertor taktnim impulsima koji se dobijaju ekstrakcijom iz primljenog niza bitova. Frekvencija ovog takta jednaka je taktnoj frekvenciji predajnika. Sa druge strane, najveći dio logike prijemnika taktuje se taktnim impulsima koji se generišu lokalno. Ove dvije taktne frekvencije mogu da se razlikuju za najviše 600 ppm. Pomoću elastičnog bafera i skip karaktera (simbola) vrši se kompenzacija ove razlike. Iz elastičnog bafera 10-bitni simboli se vode u dekoder 8b/10b, kojim se 10-bitni simboli vraćaju u 8-bitni oblik. Osmobitni karakteri se zatim de-skrembluju, a zatim se logikom za sastavljanje bajtova (Byte unstriping logic) rekonstruišu izvorni paketi. Priprema Link-a i inicijalizacija (Link Training and Initialization). Još jedna funkcija fizičkog sloja jeste priprema Link-a i inicijalizacija. To je, zapravo, proces kojim se Link konfiguriše za normalan rad. Ovaj proces odvija se automatski bez učešća softvera, a koriste se paketi fizičkog sloja. Tokom pripreme Link-a i inicijalizacije određuje se i podešava: • obim Link-a (Link width) • brzina prenosa po Link-u (Link data rate) • obrtanje traka (Lane reversal) • obrtanje polariteta (Polarity inversion) • bit lock za svaku traku (Bit lock per Lane) • eliminacija košenja između traka za Link-ove sa više traka (Lane-to-Lane deskew)
Obim Link-a. PCI Express arhitektura omogućava povezivanje dva uređaja sa različitim

brojem traka. Tako se na primjer, uređaj koji ima port tipa x2 može povezati sa uređajem koji ima port tipa x4. Nakon inicijalizacije fizički slojevi oba uređaja određuju i postavljaju obim Link-a na maksimalnu vrijednost koju podržavaju oba uređaja, a to je, u ovom slučaju, x2. Obrtanje traka je opciona karakteristika. Trake su numerisane. Može se desiti da projektant ne poveže ispravno trake dva porta. Priprema Link-a omogućava obrtanje brojeva traka, tako da se oni poklapaju za portove koji se nalaze na suprotnim krajevima Link-a.

66

Specijalistički rad 201 0
Obrtanje polariteta. Priključci diferencijalih parova provodnika, D+ i D-, dva uređaja,

takođe, mogu biti pogrešno povezani. U tom slučaju vrši se obrtanje polariteta priključaka diferencijalnog prijemnika. Brzina prenosa po Link-u. Prilikom pripreme Link-a, kao i pri normalnom radu, brzina prenosa podataka je 2,5 Gbit/s. Međutim, PCI Express 2.0 podržava brzinu prenosa od 5 Gbit/s, a očekuje se da će naredne generacije podržavati brzinu prenosa od 10 Gbit/s. Tokom pripreme, svaki čvor objavljuje svoju maksimalnu brzinu prenosa. Link se inicijalizuje najvišom zajedničkom frekvencijom koju podržavaju oba uređaja na suprotnim krajevima Link-a.
Bit lock. PLL petlja prijemnika rekonstruiše taktne impulse na osnovu primljenih

podataka. Kada se PLL petlja prijemnika sinhronizuje sa taktnom frekvencijom predajnika kaže se da je postignut bit lock.
Eliminacija košenja između traka. Zbog razlika u dužinama linija i različitih

karakteristika drajvera/prijemnika kod Link-ova sa većim brojem traka, simboli koji su istovremeno poslati neće istovremeno stići na odredište. Ova pojava naziva se košenje između linija (Lane-to-Lane skew). Prijemnik mora da bude u stanju da kompenzuje ovo košenje dodavanjem/smanjivanjem kašnjenja za svaku traku pojedinačno. Upravljanje potrošnjom Link-a (Link Power Management). Normalno, potpuno operativno stanje Link-a naziva se L0 stanje. Stanja Link-a sa manjom potrošnjom, u kojima se ne prenose paketi su: L0s, L1, L2 i L3. U stanje L0s prelazi se automatski nakon određenog vremena neaktivnosti Link-a. Ulazak i izlazak iz ovog stanja odvija se bez učešća softvera, a vrijeme izlaska iz ovog stanja je najkraće. L1 i L2 su stanja sa manjom potrošnjom od stanja L0s, ali je vrijeme izlaska iz ovih stanja duže. Stanje L3 je stanje potpune isključenosti Link-a. Resetovanje. PCI Express podržava dva načina resetovanja: • Hladno/toplo resetovanje (cold/warm reset) koje se takođe naziva i fundamentalno resetovanje, vrši se nakon uključenja uređaja (hladno resetovanje), a može se ostvariti i bez gašenja napajanja (toplo resetovanje). Matične ploče imaju posebnu liniju za ovaj tip resetovanja. • Vruće resetovanje (hot reset) ponekad se naziva i protokolarno resetovanje, i predstavlja inband način resetovanja. Generisanje vrućeg reseta inicira softver, a za ovaj tip resetovanja koriste se paketi fizičkog sloja. Električni fizički sloj. Predajni dio PCI Express uređaja povezuje se sa Link-om pomoću sprežnog kondenzatora, kao što je to prikazano na slici 44. Ovaj kondenzator odvaja naizmjenične komponente signala od jednosmjerne. Kapacitivnost ovog kondenzatora kreće se u granicama od 75 do 200 nF. Nominalna vrijednost karakteristične impedanse Link-a je 100 Ω diferencijalno, dok je tipična vrijednost DC Common mode impedanse je 50 Ω. Završna impedansa mora se prilagoditi karakterističnoj impedansi Link-a.

67

Specijalistički rad 201 0

Slika 88: Električni fizički sloj

8. Performanse PCI Express sistema i efikasnost prenosa podatka
Na kraju ovog poglavlja razmotrimo, ukratko, performanse PCI Express sistema i efikasnost prenosa podataka. U Tabeli 6 prikazana je agregatna propusnost za različite obime Link-ova (ova tabela je već bila prikazana kao Tabela 3, ali je ovdje ponovo data zbog preglednosti). Tabela 6: Agregatna propusnost PCI Express Link-a za različite obime Link-ova x4 x8 x12 x16 X32 Obim PCI Express x1 x2 Link-a 0.5 1 2 4 6 8 16 Agregatisana propusnost (GB/s) Prilikom izračunavanja agregatne propusnosti uzet je u obzir overhead koji se unosi kodiranjem 8b/10b. To praktično znači, da se zbog ovakvog načina kodiranja, broj bitova uvaćava za 25 %. ACK/NAK protokol i protokol za upravljanje tokom koriste DLLP pakete. Veličina ovih paketa je fiksna i iznosi 2 dvostruke riječi (8 bajta). Međutim, ovi paketi ne umanjuju propusnost sistema u većoj mjeri. Ostatak propusnosti raspoloživ je za prenos TLP paketa. Overhead TLP paketa iznosi 6- 7 dvostrukih riječi i čine ga Start i End simboli, ID sekvence, TLP zaglavlje, ECRC i LCRC polja. Ostatak TLP paketa sadrži 0-1024 dvostrukih riječi korisnih podataka. Očigledno je, da je efikasnost magistrale veoma mala kada se prenose mali paketi. Sa druge strane, efikasnost se značajno povećava ako TLP paketi sadrže velike količine podataka.
68

Specijalistički rad 201 0
Paketi se mogu prenositi uzastopno (back-to-back) bez prebacivanja Link-a u neaktivno stanje. Na taj način može se postići 100 % iskorišćenost Link-a. Komutatori ne unose značajno kašnjenje zbog arbitraže. Osim toga, oni podržavaju i tzv. Cutthorough mod, koji omogućava da se paketi prosljeđuju direktno na izlazni port, bez zadržavanja u baferima virtuelnih kanala. Treba takođe imati u vidu, da je kod protokola dijeljenja transakcije potrebno dodatno vrijeme za pripremu i vraćanje odgovora. To se naročito odnosi na transakcije čitanja, kod kojih su podaci sadržani u odgovoru. Ovaj faktor treba uzeti u obzir prilikom određivanja efektivne performance magistrale. Posted transakcije upisa poboljšavaju efikasnost strukture.

9. Zaključak
PCI Express magistrala, čije su karakteristike opisane u ovom rada, takođe koristi tehnike za kompenzaciju uticaja prenosnih linija na brzinu prenosa. Između ostalih primjenjuje se niskonaponski diferencijalni prenos (LVDS), ekvilizacija i prilagođenje. Pored toga, zahvaljujući komunikaciji tipa tačka-ka-tački, opterećenje veze između uređaja svedeno je na najmanju moguću mjeru. Na ovaj način ostvaruje se propusnost od 2.5 Gbit/s (PCI Express 1.0). Novi standard PCI Express 2.0 koji je predstavljen početkom ove (2007.) godine, omogućava brzinu prenosa od 5 Gbit/s, a očekuje se da će naredne generacije PCI Express arhitektura imati propusnost od 10 Gbit/s. Da bi se ove brzine postigle, najveće promjene desiće se na fizičkom sloju PCI Express arhitekture. Pritom se ne očekuje da viši slojevi dožive neke značajnije promjene, osim, ako se one ne odnose na uvođenje novih mogućnosti arhitekture. Osim neuporedivo veće propusnosti, PCI Express karakteriše veća efikasnost i veća pouzdanost prenosa podataka u odnosu na prethodne generacije magistrala. Značajnu novinu predstavlja proširivost magistrale, koja omogućava projektantima sistema da obim magistrale prilagođavaju konkretnim potrebama. Ova magistrala nudi i neke nove mogućnosti poput kvaliteta usluge (QoS), podrške rada za Hot Plug, i unaprjeđene tehnike za upravljanje potrošnjom. Serijski prenos podataka i upotreba poruka omogućava smanjivanje broja linija magistrale, čime se smanjuju dimenzije i cijena štampanih ploča, konektora i pakovanja čipova.

Cijena koja se za sve to plaća je hardverska nekompatibilnost sa prethodnim generacijama PCI arhitektura. Pa ipak, to ne znači da odmah treba odbaciti stare PCI kartice, jer su i nove matične ploče, koje su zasnovane na PCI Express arhitekturi, opremljene starim PCI slotovima. Prelaz sa PCI na PCI Express ipak se neće desiti preko noći. Proći će još dosta vremena dok se novac uložen u PCI tehnologiju u potpunosti ne otplati, i dok PCI Express tehnologija sasvim ne potisne PCI uređaje.
69

Specijalistički rad 201 0
Naročito ne treba odbaciti stari softver, jer je PCI Express softverski komaptibilna sa prethodnim arhitekturama. Time je pojednostavljen prelaz sa starih na novu PCI Express arhitekturu. Ono po čemu se, između ostalog, PCI Express razlikuje od prethodnih arhitektura, jeste i to što ona nije namijenjena nekom ograničenom segmentu tržišta računara. Naprotiv, to je magistrala opšte namjene, koja zahvaljujući svojim karakteristikama, pokriva širok spektar primjena od stonih i prenosivih računara, preko servera, radnih stanica, sve do embedded i komunikacionih sistema. Nema sumnje da će PCI Express arhitektura vladati tržištem računara narednih desetak godina. Njen uspon je tek počeo, a mogućnosti koje ona pruža prvi su počeli da koriste proizvođači grafičkih kartica. Postepeno, PCI Express prihvataju i proizvođači drugih perifernih uređaja.

70

Specijalistički rad 201 0

10.

Literatura

[1] Ajay V. Bhatt, Technology and Research Labs, Intel Corporation, Creating PCI Express Interconnect (White Book), (31. 1. 2007.) http://www.pcisig.com [2] Ravi Budruk, Don Anderson, Tom Shanley, PCI Express System Architecture, Addison Wesley, MindShare, Inc, 2005.

[3] Vojin G. Oklobdzija and Ram K. Krishnamurthy (eds.), High-Performance Energy-Efficient Microprocessor Design (White Paper), 289-309. © 2006 Springer. Printed in the Netherlands.

[4] www.wikipedia.org [5] www.google.com [6] www.dell.com/content/topics/global.aspx/vectors/en/2004_pciexpress?
c=us&l=en [7] www.cet.rs 71

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->