Всичко, което трябва да знаете за PCI Express

PCI Express

От първия персонален компютър, който стартира през 1981г., е разполагал с разширителни слотове, където можете да инсталирате допълнителни карти, за да добавите възможности недостъпни за дънната платка. В момента най-срещания слот за разширение е PCI Express. В тази статия ще получите информация как работи PCI Express, видовете слотове, поколенията (ревизиите) и други.

Преди да се впуснем в подробности за PCI Express, първо ще поговорим за РС разширителните слотове и техните основни предизвикателства, за да разберете кое прави PCI Express различна.

По-долу са изброени най-често срещаните слотове за разширение, които са обявени за РС през цялата си история:

  •   ISA (Industry Standard Architecture)
  •   MCA (Micro Channel Architecture)
  •   EISA (Extended Industry Standard Architecture)
  •   VLB (VESA Local Bus)
  •   PCI (Peripheral Component Interconnect)
  •   PCI-X (Peripheral Component Interconnect eXtended)
  •   AGP (Accelerated Graphics Port)
  •   PCI Express (Peripheral Component Interconnect Express)

Нови видове разширителни слотове се освобождават, когато наличните типове се окажат твърде бавни за определени приложения. Например, оригиналния ISA слот наличен на оригиналния IBM PC и на IBM PC XT и техните вариации, имат максимална теоретична скорост на предаване (т.е. честотна лента) от само 4.77MB/s. В 16-битовата версия на ISA, обявена с IBM PC AT през 1984г., скоростта почти се удвои до 8МВ/s, но тази скорост е изключително ниска, дори за приложения като видео.

Тогава IBM пусна MCA слота за своята PS/2 компютърна линия и тъй като е с авторски права, други производители биха могли да я използват само ако са влезли в лицензни отношения с IBM и само пет фирми са направили това (Apricot, Dell, Tandy, Research Machines и Olivetti). И така, MCA слотовете са ограничени до няколко РС модела от тази марка. Девет производителя се присъединиха в създаването на EISA слота, но това не беше успешно поради две причини. Първо, той поддържа съвместимост с ISA слота, така че скоростта беше същата като 16-битовия ISA слот. Второ, алианса не включва производители на дънни платки, така че други производители и професионални потребители не са имали достъп до този слот.

Първият истински високоскоростен слот е VLB. По-високата скорост се постига чрез обвързване на слота с шината на CPU, т.е. CPU външната шина. По този начин, слота работи със същата скорост като CPU външната шина, която е най-бързата шина на разположение на компютъра. В таблицата по-долу, сме посочили, че този слот използва скорост 33MHz, но реалната скорост ще зависи от процесора. Проблемът с тази шина беше, че тя е проектирана специално за шини на 486-клас процесори.

Първото разширително решение се появи през 1992г., когато Intel създадоха „окончателният” разширителен слот, PCI. По-късно и други компании се присъединиха към алианса, който е известен днес като PCI-SIG. PCI-SIG е отговорен за стандартизиране на PCI, PCI-X и PCI Express слотовете. И трите слота се отнасят до напълно различни технологии.

PCI е платформено-независеща шина, която е свързана към системата, използвайки чипсета.

Шината е пътека за данни, където можете да свържете няколко устройства по едно и също време, споделяйки тази пътека. Най-очевидните устройства прикрепени към PCI шината са разширителни слотове, но интегрираните компоненти на дънната платка като бордова карта може да бъде свързана към PCI шината.

PCI шината е със скорост 33MHz с 32-битова пътека, позволяваща пропускателна способност 133MB/s.

PCI-X е версия на PCI шината, но работи на по-висока тактова честота и с по-широка пътека за данни за сървърни дънни платки, постигащ по-висока честота на лента за устройства, които се нуждаят от по-висока скорост, като висок клас мрежови карти и RAID контролери.

Когато PCI шината се оказа твърде бавна за висок клас видео карти, беше разработен AGP слота. Този слот е използван предимно за видео карти.

След това, PCI-SIG разработи PCI Express връзката (известна преди като “3GIO” и официално съкратена на „PCI Express”). Въпреки името си, PCI Express работи по коренно различен начин от PCI  шината.

  1. PCI е шина, а PCI Express е връзка от точка до точка, т.е. тя свързва само две устройства; няма друго устройство, което да може да сподели тази връзка. Само да уточним, на дънна платка използваща стандартен PCI слот, всички PCI устройства са свързани към PCI шината и споделят един и същ път за данни. На дънна платка използваща стандартен PCI слот, всички PCI устройства са свързани към PCI шината и споделят една и съща пътека за данни. На дънна платка с PCI Express слотове, всеки PCI Express слот е свързан към чипсета чрез специална лента, не споделящ тази лента с други PCI Express слотове. Също така устройства, интегрирани на дънната платка, като SATA и USB контролери, обикновено са свързани към чипсета с помощта на специални PCI Express връзки.
  2. PCI и всички други разширителни слотове използват паралелни комуникации, докато PCI Express се основава на високоскоростни серийни комуникации.
  3. PCI Express се основава на отделни ленти, които могат да бъдат групирани за създаване на по-висока пропускателна способност. “X”, който следва описанието на PCI Express връзката се отнася до броя на лентите.

PCI Express връзката е предмет в тази статия. В подробности ще ви обясним как тя работи.

По-долу е таблицата със съпоставка на основните спецификации за разширителни слотове, които някога са съществували.

Slot Clock Number of Bits Data per Clock Cycle Bandwidth
ISA 4.77 MHz 8 1 4.77 MB/s
ISA 8 MHz 16 0.5 8 MB/s
MCA 5 MHz 16 1 10 MB/s
MCA 5 MHz 32 1 20 MB/s
EISA 8.33 MHz 32 1 33.3 MB/s (16.7 MB/s typically)
VLB 33 MHz 32 1 133 MB/s
PCI 33 MHz 32 1 133 MB/s
PCI-X 66 66 MHz 64 1 533 MB/s
PCI-X 133 133 MHz 64 1 1,066 MB/s
PCI-X 266 133 MHz 64 2 2,132 MB/s
PCI-X 533 133 MHz 64 4 4,266 MB/s
AGP x1 66 MHz 32 1 266 MB/s
AGP x2 66 MHz 32 2 533 MB/s
AGP x4 66 MHz 32 4 1,066 MB/s
AGP x8 66 MHz 32 8 2,133 MB/s
PCIe 1.0 x1 2.5 GHz 1 1 250 MB/s
PCIe 1.0 x4 2.5 GHz 4 1 1,000 MB/s
PCIe 1.0 x8 2.5 GHz 8 1 2,000 MB/s
PCIe 1.0 x16 2.5 GHz 16 1 4,000 MB/s
PCIe 2.0 x1 5 GHz 1 1 500 MB/s
PCIe 2.0 x4 5 GHz 4 1 2,000 MB/s
PCIe 2.0 x8 5 GHz 8 1 4,000 MB/s
PCIe 2.0 x16 5 GHz 16 1 8,000 MB/s
PCIe 3.0 x1 8 GHz 1 1 1,000 MB/s
PCIe 3.0 x4 8 GHz 4 1 4,000 MB/s
PCIe 3.0 x8 8 GHz 8 1 8,000 MB/s
PCIe 3.0 x16 8 GHz 16 1 16,000 MB/s

От Parallel към Serial

PCI Express връзката представлява напредък в начина, по който периферните устройства комуникират с компютъра. Тя се различава от PCI шината в много аспекти, но най-важния е начина, по който данните се прехвърлят. PCI Express е друг пример за тенденцията на миграция на трансфер на данни от паралелна към серийна комуникация. Други съвместими интерфейси, използващи серийна комуникация включват USB, Ethernet, както и SATA и SAS.

Преди PCI Express, всички компютърни шини и разширителни слотове използваха паралелната комуникация. При паралелната комуникация няколко бита се трансферират по пътя на информацията по едно и също време. При серийната комуникация, само един бит се трансферира по пътя на иформацията. На първо място, това прави паралелната комуникация по-бърза от серийната, т.к. по-високия брой битове предавани по едно и също време, определя по-бърза комуникация.

При паралелната комуникация обаче, се срещат някои проблеми, които пречат на предаването за достигане на по-висока тактова честота. Колкото по-висока е честотата, по-големи ще са и проблемите с електромагнитните смущения (EMI) и забавяне на разпространението.

Когато електрически ток тече през проводник, около него се създава електромагнитно поле. Това поле може да индуцира електрически ток върху съседния проводник, прокарвайки информация предавана по него. Както паралелното предаване, няколко бита се предават в даден момент, всеки бит участва в предаването използвайки един проводник. Например, 32-битова комуникация (например стандартен PCI слот) е необходимо да има 32 проводника за предаване на данни, без да броим допълнителните контролни сигнала, които също са необходими. Колкото по-висока е честотата, толкова по-голям е проблема с електромагнитните смущения.

Паралелна връзка на шина със шум

Фигура 1: Битовете пристигат в рецептор, който е развален поради

електромагнитни смущения

Както коментирахме по-рано, всеки бит в паралелната комуникация се предава на отделен проводник, но е почти невъзможно да се направи тези 32 проводника да са със същата дължина на дънната платка. При по-високи честоти, данните предавани по къси проводници пристигат преди данните, които се предават по дълги проводници. Тоест, битовете в паралелната комуникация могат да се забавят. Като следствие, приемащото устройство трябва да изчака всички битове да пристигнат, което представлява значителна загуба в производителността. Този проблем е известен като забавяне на разпространението и става по-лошо с увеличение на тактовата честота.

Паралелна връзка с различна дължина на пътеките

Фигура 2: Битовете излизат от строя при достигане на рецептора, поради забавяне на разпространението

Проектът на комуникиращата шина използваща серийна комуникация е по-лесно да се изпълняват от един с паралелна комуникация, т.к. са необходими по-малко проводници за предаване на данни. На една типична серийна комуникация са необходими четири проводника – два за предаване на данни и два за получаване, обикновено с технология срещу електромагнитените смущения, наричани заличаване или диференциално предаване. Със заличаването, същият сигнал се предава по два проводника, с втория проводник сигнала се предава „огледално”, в сравнение с оригиналния сигнал, както можете да видите на фигура 3. Разликата между двата сигнала е шума, правейки го много просто за приемника да знае какъв е шума и да го изхвърли.

Заличаваща технология

Фигура 3: Заличаваща технология

Освен осигуряване на по-висока устойчивост на електромагнитните смущения, серийните комуникации не страдат от размножаване на закъсненията. По този начин, те могат да достигнат по-висока тактова честота по-лесно от паралелните комуникации.

Друга важна разлика между паралелната комуникация и серийната комуникация е, че паралелната комуникация обикновено е полу-дуплекс (същите проводници се използват за предаване и получаване) поради високия брой проводници, които са необходими за неговото изпълнение. Серийната комуникация е пълен дуплекс (има отделен набор от проводници за предаване на данни и друг набор за получаване на данни), защото се нуждае от два проводника всеки път. С полу-дуплекс, две устройства не могат да комуникират помежду си по едно и също време. С пълен дуплекс комуникация, двете устройства могат да предават данни по едно и също време. Това са основните причини, поради които инженерите са приели серийна комуникация, вместо паралелната с PCI Express.

Сега можете да се запитате, „Не е ли серийната комуникация по-бавна”? Това зависи от това каква сравнявате. Ако сравнявате паралелна комуникация на 33MHz предаваща 32-бита на такт, тя ще бъде 32 пъти по-бърза от серийна комуникация на 33MHz предаваща един бит. Въпреки това, ако сравните същата паралелна комуникация до серийна комуникация работеща с много по-висока честота, серийна комуникация може да бъде в действителност много по-бърза. Само за сравнение честотната лента на оригинална PCI шина, която е 133MB/s (33MHz x 32bits), с най-ниска пропускателна способност може да се постигне с PCI Express връзка (250MB/s, 2.5GHz x 1bit).

Идеята, че серийна е „винаги” по-бавна от паралелната комуникация идва от старите компютри, които са имали портове, наречени „сериен порт” и „паралелен порт”. По това време, паралелния порт е много по-бърз от серийния. Това се дължи на начина, по който тези портове са били реализирани. Това не означава, че серийна комуникация е винаги по-бавна от паралелната.

Сега ще ви обясним как PCI Express комуникацията работи.

PCI Express връзката се основава на концепцията на “пътека”, която е единичен бит, пълен дуплекс, високоскоростна серийна комуникация. Пътеките могат да бъдат  групирани, за да се увеличи пропускателната способност. Например, когато две устройства използват 4 пътеки за тяхната връзка, това се разглежда като „х4” връзка и ще бъде в състояние да постигне 4 пъти  по-голяма пропускателна способност от единична връзка, т.е. единична пътека. Фигура 4, илюстрира две свързани устройства, използващи  две пътеки, т.е. „х2” връзка. Въпреки, че на теория всяко число от 1 до 32 пътеки, могат да бъдат групирани, най-често срещаните числа са х4, х8 и х16.

PCI Express X2

Фигура 4: PCI Express x2 връзка

PCI Express 1.0 и 2.0 използват 8b/10b кодираща система (което е същото кодиране използвано от Fast Ethernet, т.е. 100Mbps, мрежи). Това означава, че всеки 8 бита данни се кодират и предават на 10-битово число. Обикновено, за да конвертирате фигура даваща бит за секунда (bps) до байт за секунда (B/s), ви е необходимо да го разделите на осем, т.к. един байт е група от 8 бита. Обаче, заради 8b/10b кодирането, ние трябва да направим това разделяне от 10, а не от 8. Това е причината поради, която честотата на 2.5GHz и 5GHz, х1 пропускателната способност от тези връзки са 250MB/s и 500MB/s съответно, а не 312.5MB/s и 625MB/s.

PCI Express 3.0 използва различна кодираща система, наречена 128b/130b. Както можете да заключите, тази система предава всеки 128 бита на данните като 130-битово число, който предлага далеч по-ниски режийни. За предаване на 128 бита данни, PCI Express 3.0 се нуждае от два допълнителни бита, докато с предишните ревизии, 32 допълнителни бита са необходими (два за всеки осем бита). Поради по-ниските режийни изисквания, PCI Express 3.0 може да постигне двойна PCI Express 2.0 честотна лента с тактова честота от 8GHz, вместо 10GHz.

PCI Express 4.0, който ще бъде реализиран през следващите няколко години, ще запази същото кодиране като PCI Express 3.0, удвоявайки тактовата честота, следователно удвояване на наличната честотна лента.

Revision Encoding Clock Bandwidth (x1)
1.0 8b/10b 2.5 GHz 250 MB/s
2.0 8b/10b 5 GHz 500 MB/s
3.0 128b/130b 8 GHz 1 GB/s
4.0 128b/130b 16 GHz 2 GB/s

Както бе обяснено, групирането на пътеките позволява честотната лента да бъде умножена по броя на използваните пътеки. Така, че една х8 връзка с PCI Express 2.0 ще има пропускателна способност от 4GB/s (500MB/s x8), докато една х16 връзка с PCI Express 2.0, ще има пропускателна способност от 8GB/s (500MB/s x16). Една х16 връзка с PCI Express 3.0 ще има пропускателна способност от 16GB/s (1GB/s x16).

Спецификацията на PCI Express позволява слотовете да имат различни физически размери, в зависимост от броя на пътеките, свързани към слота. Виж фигура 5. Това позволява намаляване на размера на пространството, необходимо на дънната платка. Например, ако слот с х1 връзка е необходим, производителя на дънни платки  може да използва по-малък слот, за да спести пространство на дънната платка.

Въпреки това, по-големите слотове може действително  да имат по-малко пътеки от диаграмата показана на фигура 5. Например, много дънни платки имат х16 слотове, които са свързани към х8, х4 или дори х1 пътеки. С по-големи слотове, е важно да знаете, дали физическите им размери наистина съответстват на техните скорости. Освен това някои слотове могат да намалят скоростта си, когато техните пътеки са споделени. Най-често срещаните дънни платки са с два или повече х16 слота. С няколко дънни платки, има само 16 пътеки, свързващи първите два х16 слота за PCI Express контролера. Това означава, че когато инсталирате една единствена видео карта, то тя ще има х16 налична честотна лента на разположение, но когато са инсталирани две видео карти, всяка видео карта ще има х8 честотна лента.

Ръководството на дънната платка, трябва да съдържа тази информация. Но практически съвет е да надникнете в слота, за да видите колко контакта има. Ако видите, че контактите на PCI Express x16 слота са сведени до половината от това, което трябва да бъдат, това означава, че слота физически е х16, но има осем пътеки (х8). Ако в този същ слот, виждате, че броя на контактите е намален до 1/4 , то той действително има четири пътеки (х4). Важно е да се знае, че не всички производители  на дънни платки следват това; някои все още използват всички контакти въпреки, че слота е свързан с по-малък брой пътеки. Най-добрия съвет е да проверите ръководството на дънната платка за правилната информация.

Много известен факт е, че можете да инсталирате всяка PCI Express разширителна карта във всеки PCI Express слот. Например, можете да инсталирате х1 разширителна карта във всеки вид на PCI Express слота; не трябва да бъде инсталирана в х1 слот. Така, че ако имате х4 разширителна карта, но дънната ви платка няма х4 PCI Express слот, няма проблем; просто я инсталирайте в х8 или х16 слот.

Същото важи и за големи карти. Например, можете да инсталирате х16 видео карта в „малък” слот. Единствения недостатък е, че ще има максимална пропускателна способност предоставена от слота; т.е. ако инсталирате х16 видео карта в х4 слот, тя ще  има х4 пропускателна способност. От друга страна, този вид на инсталация може да бъде полезна в някои ситуации, като например асемблиране на компютър с няколко видео карти, за да имате на разположение няколко дисплея и не ви притеснява гейминг производителността.

За постигане на максимална производителност е необходимо и разширителната платка и PCI Express контролера да бъдат с една и съща ревизия. Ако имате PCI Express 2.0 видео карта и инсталирана на система с PCI Express 3.0 контролер, пропускателната способност ще бъде ограничена до PCI Express 2.0.

Видове PCI Express

Фигура 5: Видове PCI Express слотове

Дънна платка

Фигура 6: Детайли на PCI и PCI Express слотове на дънна платка

Видео карти

Фигура 7: Разлики между PCI Express, AGP и PCI

Реклами