Program pro čtení dat z komunikačního portu. Analyzátory portů (COM, LPT a USB). Monitorujte více portů v rámci jedné relace

Když mluvíme o sběrnici PCI Express (PCI-E), možná první věcí, která ji odlišuje od jiných podobných řešení, je její účinnost. Díky této moderní sběrnici se zvyšuje výkon počítače a zlepšuje se kvalita grafiky.

Po mnoho let byla sběrnice PCI (Peripheral Component Interconnect) používána pro připojení grafické karty k základní desce a také pro připojení některých dalších zařízení, jako je síťová karta a zvuková karta.

Takto vypadají tyto sloty:

PCI-Express byl v podstatě další generací sběrnice PCI, která nabízela vylepšenou funkčnost a výkon. Využívá sériové zapojení, ve kterém je více linek, z nichž každá vede k odpovídajícímu zařízení, tzn. Každé periferní zařízení dostane svou vlastní linku, což zvyšuje celkový výkon počítače.

PCI-Express podporuje „horké“ připojení, spotřebovává méně energie než jeho předchůdci a řídí integritu přenášených dat. Navíc je kompatibilní s ovladači sběrnice PCI. Další pozoruhodnou vlastností této sběrnice je její škálovatelnost, tzn. Pci Express karta se připojuje a funguje v jakémkoli slotu podobné nebo větší šířky pásma. Tato funkce mu s největší pravděpodobností zajistí využití na roky dopředu.

Tradiční typ slotu PCI byl dost dobrý pro základní audio/video funkce. Se sběrnicí AGP se zlepšilo schéma práce s multimediálními daty a odpovídajícím způsobem se zvýšila kvalita audio/video dat. Netrvalo dlouho a pokroky v mikroarchitektuře procesorů začaly ještě zřetelněji demonstrovat pomalost sběrnice PCI, díky níž se nejrychlejší a nejnovější modely počítačů té doby doslova stěží táhly.

Charakteristika sběrnice PCI-E a šířka pásma

Může mít od jedné obousměrné přípojné linky x1 až po x32 (32 linek). Linka funguje na bázi point-to-point. Moderní verze poskytují mnohem větší šířku pásma ve srovnání s jejich předchůdci. x16 lze použít k připojení grafické karty a x1 a x2 lze použít k připojení běžných karet.

Takto vypadají sloty x1 a pci express x16:

PCI-E
Počet řádků x1 x2 x4 x8 x16 x32
Šířka pásma 500 MB/s 1000 MB/s 2000 MB/s 4000 MB/s 8000 MB/s 16000 MB/s

Verze PCI-E a kompatibilita

Pokud jde o počítače, jakákoli zmínka o verzích je spojena s problémy s kompatibilitou. A jako každá jiná moderní technologie se i PCI-E neustále vyvíjí a modernizuje. Poslední dostupná verze je pci express 3.0, ale již probíhá vývoj PCI-E sběrnice verze 4.0, která by se měla objevit kolem roku 2015 (pci express 2.0 je již téměř zastaralá).
Podívejte se na následující tabulku kompatibility PCI-E.
Verze PCI-E 3.0 2.0 1.1
Celková šířka pásma
(X16) 32 GB/s 16 GB/s 8 GB/s
Rychlost přenosu dat 8,0 GT/s 5,0 GT/s 2,5 GT/s

Verze PCI-E nemá žádný vliv na funkčnost karty. Nejvýraznějším rysem tohoto rozhraní je jeho dopředná a zpětná kompatibilita, díky čemuž je bezpečné a schopné synchronizace s mnoha variantami karet bez ohledu na verzi rozhraní. To znamená, že do slotu PCI-Express první verze můžete vložit kartu druhé nebo třetí verze a bude fungovat, i když s určitou ztrátou výkonu. Stejným způsobem můžete nainstalovat kartu PCI-Express první verze do slotu PCI-E třetí verze. V současné době jsou s touto sběrnicí kompatibilní všechny moderní modely grafických karet od NVIDIA a AMD.

A toto na svačinu:

  1. Ahoj! Vysvětlete prosím rozdíl v propustnosti mezi rozhraním PCI Express 3.0 x16 a PCI Express 2.0 x16. V současné době jsou stále v prodeji základní desky s rozhraním PCI Express 2.0 x16. jsem s Pokud nainstaluji novou grafickou kartu rozhraní, ztratím hodně na výkonu videaPCI Express 3.0 na počítači se základní deskou, která má pouze konektorPCI-E 2.0? Myslím, že prohraju, protože celkempřenosová rychlost pro PCI Express 2.0 je to - 16 GB/s a celkemPCI Express 3.0 má dvojnásobnou rychlost přenosu dat - 32 GB/s.
  2. Ahoj! Mám počítač s výkonným, ale již ne novým, procesorem Intel Core i7 2700K a základní deskou s konektorem PCI Express 2.0. Řekněte mi, když si koupím novou grafickou kartu PCI Express 3.0, bude tato grafická karta fungovat dvakrát pomaleji, než kdybych měl základní desku s konektorem PCI Express 3.0? Takže je čas, abych změnil počítač?
  3. Odpovězte prosím na tuto otázku. Moje základní deska má dva konektory: PCI Express 3.0 a PCI Express 2.0, ale v konektoru Nová grafická karta PCI Express 3.0 PCI Express 3.0 nepasuje, radiátor jižního můstku překáží. Pokud nainstaluji grafickou kartuSlot PCI-E 3.0 PCI-E 2.0, bude moje grafická karta fungovat hůře, než kdyby byla nainstalována do slotu PCI Express 3.0?
  4. Dobrý den, chci si od přítele koupit mírně použitou základní desku za dva tisíce rublů. Před třemi lety ho koupil za 7 000 rublů, ale mate mě, že má slot pro grafickou kartu rozhraní PCI-E 2.0 a mám grafickou kartuPCI-E 3.0. Poběží moje grafická karta na této základní desce na plnou kapacitu nebo ne?

Ahoj přátelé! Dnes v prodeji najdete základní desky s konektorem pro instalaci grafických karet PCI Express 2.0 x16 a PCI Express 3,0 x 16. Totéž lze říci o grafických adaptérech, v prodeji jsou grafické karty s rozhraním PCI-E 3.0, stejně jako PCI-E 2.0. Pokud se podíváte na oficiální charakteristiky rozhraní PCI Express 3.0 x16 a PCI Express 2.0 x16, zjistíte, že celková rychlost přenosu dat PCI Express 2.0 je- 16 GB/s a PCI Express 3.0 je dvakrát tak velký -32 GB/s. Nebudu zabíhat do podrobností o tom, jak tato rozhraní fungují, a jednoduše vám řeknu, že je tak velký rozdíl vrychlost přenosu dat je viditelná pouze teoreticky, ale v praxi je velmi malá.Pokud čtete články na toto téma na internetu, pakdojdete k závěru, že moderní grafické karty s rozhraním PCI Express 3.0 pracují stejnou rychlostí ve slotech PCI Express 3.0 x16 a PCI Express 2.0 x16 a rozdíl v propustnostimezi PCI-E 3.0 x16 a PCI-E 2.0 x16 je pouze 1-2% ztráta výkonu grafické karty. To znamená, že nezáleží na tom, do kterého slotu grafickou kartu nainstalujete, PCI-E 3.0 nebo PCI-E 2.0, vše bude fungovat stejně.

Ale bohužel, všechny tyto články byly napsány v roce 2013 a 2014 a v té době nebyly hry jako Far Cry Primal, Battlefield 1 a další nové produkty, které se objevily v roce 2016. Vydáno také v roce 2016 rodina grafických procesorů NVIDIA řady 10, například grafické karty GeForce GTX 1050 a GeForce GTX 1050 Ti a dokonce i GTX 1060. Mé experimenty s novými hrami a novými grafickými kartami ukázaly, že rozhraní PCI-E 3.0 má oprotiPCI-E 2.0 už není 1-2 %, ale v průměru 6-7 %. Zajímavé je, že grafická karta je nižší třídy než GeForce GTX 1050 , pak je procento menší (2-3%) , a pokud naopak, pak více - 9-13%.

V mém experimentu jsem tedy použil grafickou kartu GeForce GTX 1050 PCI-E 3.0 rozhraní a základní deska s konektory PCI Express 3.0 x16 a PCI Express 2.0 x16.

N Nastavení grafiky ve hrách je všude maximální.

  1. Hra FAR CRY PRIMAL. Rozhraní PCI-E 3.0 ukázal výhodu oproti PCI-E 2.0, od r vždy vyšší o 4-5 snímků, což je přibližně procento 4 % %.
  2. Hra Battlefield 1. Rozdíl mezi PCI-E 3.0 a PCI-E 2.0 byl 8-10 snímků , což v procentech činí přibližně 9 %.
  3. Rise of the Tomb Raider. Výhoda PCI-E 3.0 průměry 9- 10 snímků za sekundu nebo 9 %.
  4. Zaklínač. Výhoda PCI-E 3.0 byla 3 %.
  5. Grand Theft Auto V. Výhodou PCI-E 3.0 je 5 fps neboli 5 %.

To znamená, že mezi rozhraními PCI-E 3.0 x16 a PCI-E 2.0 x16 stále existuje rozdíl v propustnosti a není ve prospěch PCI-E 2.0. Základní desku s jedním PCI-E 2.0 slotem bych proto v tuto chvíli nekupoval.

Jeden z mých přátel koupil použitou základní desku za tři tisíce rublů. Ano, kdysi to bylo luxusní a stálo to asi deset tisíc rublů, má spoustu konektorů SATA III a USB 3.0, také 8 slotů pro RAM, podporuje technologii RAID a další, ale je postaven na zastaralém čipsetu a slot na grafickou kartu je PCI Express 2.0! Podle mě by bylo lepší koupit. Proč?

Může se stát, že za rok nebo dva budou nejnovější grafické karty fungovat pouze v konektoru PCI Express 3.0 x16 a vaše základní deska bude mít zastaralý konektor, který již výrobci nepoužívají PCI Express 2.0 x16 . Koupíte si novou grafickou kartu, ale ta odmítne fungovat ve starém konektoru. Osobně jsem se již mnohokrát setkal s tím, že grafická karta PCI-E 3.0 na základní desce neběželo. deska s konektorem PCI-E 2.0 a Nepomohla ani aktualizace BIOSu základní desky.Zabýval jsem se také grafickými kartamiPCI-E 2.0 x16, který odmítal fungovat na starších základních deskách s rozhraním PCI-E 1.0 x16, i když všude píšou o zpětné kompatibilitě.Případy, kdy se grafická karta PCI Express 3.0 x16 nespustila na základních deskách sPCI Express 1.0 x16, ještě více.

No, letos nezapomeňte na vzhled rozhraní PCI Express 4.0. V tomto případě bude PCI Express 3.0 zastaralá.

Pokud se zeptáte, jaké rozhraní by mělo být použito pro SSD, která podporuje protokol NVMe, pak kdokoli (kdo vůbec ví, co je NVMe) odpoví: samozřejmě PCIe 3.0 x4! Je pravda, že s odůvodňováním bude mít s největší pravděpodobností potíže. V nejlepším případě dostaneme odpověď, že takové disky podporují PCIe 3.0 x4 a záleží na šířce pásma rozhraní. Je, ale všechny řeči o tom začaly až ve chvíli, kdy se některé disky v některých provozech stísnily v rámci „běžného“ SATA. Ale mezi jeho 600 MB/s a (stejně teoretickými) 4 GB/s rozhraní PCIe 3.0 x4 je prostě propast plná možností! Co když stačí jedna linka PCIe 3.0, protože ta je již jedenapůlkrát větší než SATA600? Olej do ohně přilévají výrobci ovladačů, kteří v budgetových produktech vyhrožují přechodem na PCIe 3.0 x2 a také to, že mnoho uživatelů takové a takové nemá. Přesněji, teoreticky existují, ale mohou být uvolněny pouze překonfigurováním systému nebo dokonce změnou něčeho, co nechcete dělat. Chci si však koupit špičkový SSD disk, ale existují obavy, že z toho nebude mít žádný užitek (dokonce ani morální uspokojení z výsledků testovacích nástrojů).

Ale je to pravda nebo ne? Jinými slovy, je skutečně nutné soustředit se výhradně na podporovaný provozní režim – nebo je to v praxi ještě možné? vzdát se zásad? Přesně to jsme se dnes rozhodli ověřit. Kontrola nechť je rychlá a nepředstírá vyčerpávající, ale přijaté informace by měly stačit (jak se nám zdá) alespoň k zamyšlení... Pojďme se zatím krátce seznámit s teorií.

PCI Express: stávající standardy a jejich šířka pásma

Začněme tím, co je to PCIe a jakou rychlostí toto rozhraní funguje. Často se nazývá „sběrnice“, což je poněkud ideologicky nesprávné: jako taková neexistuje žádná sběrnice, ke které by byla připojena všechna zařízení. Ve skutečnosti existuje sada spojení point-to-point (podobně jako mnoho jiných sériových rozhraní) s řadičem uprostřed a zařízeními k němu připojenými (každé z nich může být samo o sobě rozbočovačem další úrovně).

První verze PCI Express se objevila téměř před 15 lety. Zaměření na použití uvnitř počítače (často na stejné desce) umožnilo vytvořit standardní vysokorychlostní: 2,5 gigatransakcí za sekundu. Vzhledem k tomu, že rozhraní je sériové a plně duplexní, poskytuje jeden pruh PCIe (x1; v podstatě atomová jednotka) rychlost přenosu dat až 5 Gb/s. V každém směru je to však pouze polovina, tedy 2,5 Gbps, a to je plná rychlost rozhraní, nikoli ta „užitečná“: pro zlepšení spolehlivosti je každý bajt kódován 10 bity, takže teoretická propustnost jedna PCIe linka 1.x je přibližně 250 MB/s v každém směru. V praxi je stále nutné přenášet informace o službách a nakonec je správnější mluvit o ≈200 MB/s přenosu uživatelských dat. Což ovšem v té době nejen pokrývalo potřeby většiny zařízení, ale poskytovalo i solidní rezervu: jen připomeňme, že předchůdce PCIe v segmentu masových systémových rozhraní, totiž sběrnice PCI, poskytoval propustnost 133 MB/ s. A i když vezmeme v úvahu nejen masovou implementaci, ale i všechny možnosti PCI, maximum bylo 533 MB/s a pro celou sběrnici, tedy takový PS byl rozdělen na všechna zařízení k němu připojená. Zde 250 MB/s (protože i pro PCI se obvykle udává celková a ne užitečná propustnost) na linku - ve výhradním použití. A pro zařízení, která potřebují více, bylo zpočátku možné agregovat několik linek do jediného rozhraní v mocninách dvou - od 2 do 32, tj. verze x32 poskytovaná standardem mohla v každém přenášet až 8 GB/s. směr. V osobních počítačích se x32 nepoužívalo kvůli složitosti vytváření a zapojení odpovídajících ovladačů a zařízení, takže maximální možnost byla 16 linek. Byl (a stále je používán) hlavně grafickými kartami, protože většina zařízení nevyžaduje tolik. Obecně pro značný počet z nich stačí jeden řádek, ale někteří úspěšně používají x4 i x8: jen k tématu úložiště - řadiče RAID nebo SSD.

Čas se nezastavil a asi před 10 lety se objevila druhá verze PCIe. Vylepšení se netýkala pouze rychlostí, ale i v tomto ohledu byl učiněn krok vpřed – rozhraní začalo poskytovat 5 gigatransakcí za vteřinu při zachování stejného schématu kódování, tedy dvojnásobná propustnost. A v roce 2010 se opět zdvojnásobil: PCIe 3.0 poskytuje 8 (spíše než 10) gigatransakcí za sekundu, ale redundance byla snížena – nyní se ke kódování 128 používá 130 bitů, nikoli 160 jako dříve. V zásadě je již na papíře připravena verze PCIe 4.0 s dalším zdvojnásobením rychlostí, ale hardwarově se jí v dohledné době pravděpodobně nedočkáme. Ve skutečnosti se PCIe 3.0 stále používá na mnoha platformách ve spojení s PCIe 2.0, protože výkon druhého z nich prostě... pro mnoho aplikací není potřeba. A tam, kde je potřeba, funguje stará dobrá metoda agregace linek. Pouze každý z nich se za poslední roky stal čtyřikrát rychlejší, tj. PCIe 3.0 x4 je PCIe 1.0 x16, nejrychlejší slot v počítačích z poloviny 2000. Tato možnost je podporována špičkovými řadiči SSD a je doporučeno ji používat. Je jasné, že pokud taková příležitost existuje, mnoho není málo. Co když neexistuje? Vyskytnou se nějaké problémy, a pokud ano, jaké? To je otázka, kterou se musíme zabývat.

Metodika testování

Není těžké provádět testy s různými verzemi standardu PCIe: téměř všechny řadiče vám umožňují používat nejen ten, který podporují, ale také všechny dřívější. S počtem pruhů je to složitější: chtěli jsme přímo otestovat možnosti s jedním nebo dvěma pruhy PCIe. Deska Asus H97-Pro Gamer, kterou obvykle používáme na čipsetu Intel H97, nepodporuje celou sadu, ale kromě slotu na „procesor“ x16 (který se obvykle používá) má ještě jeden, který pracuje v PCIe 2.0 x2 resp. x4 režimy. Použili jsme tuto trojici a přidali jsme k ní režim slotu „procesoru“ PCIe 2.0, abychom vyhodnotili, zda existuje rozdíl. V tomto případě však mezi procesorem a SSD nejsou žádní cizí „prostředníci“, ale při práci se slotem „čipové sady“ existuje: samotná čipová sada, která je ve skutečnosti připojena k procesoru stejným PCIe 2.0 x4 . Bylo možné přidat několik dalších provozních režimů, ale stále jsme se chystali provést hlavní část studie na jiném systému.

Faktem je, že jsme se rozhodli využít této příležitosti a zároveň prověřit jednu „městskou legendu“, a to přesvědčení o užitečnosti použití špičkových procesorů pro testování disků. Vzali jsme tedy osmijádrový Core i7-5960X – příbuzný Core i3-4170 obvykle používaného v testech (jedná se o Haswell a Haswell-E), který má ale čtyřikrát více jader. Navíc deska Asus Sabertooth X99 nalezená v přihrádkách se nám dnes hodí kvůli přítomnosti slotu PCIe x4, který ve skutečnosti může fungovat jako x1 nebo x2. V tomto systému jsme testovali tři možnosti x4 (PCIe 1.0/2.0/3.0) z procesoru a čipové sady PCIe 1.0 x1, PCIe 1.0 x2, PCIe 2.0 x1 a PCIe 2.0 x2 (ve všech případech jsou konfigurace čipsetu na schématech označeny (C)). Má smysl se nyní obracet na první verzi PCIe, vzhledem k tomu, že neexistuje téměř jediná deska, která podporuje pouze tuto verzi standardu a umí bootovat ze zařízení NVMe? Z praktického hlediska ne, ale pro kontrolu a priori předpokládaného poměru PCIe 1.1 x4 = PCIe 2.0 x2 a podobně se nám bude hodit. Pokud test ukáže, že škálovatelnost sběrnice odpovídá teorii, pak nevadí, že se nám zatím nepodařilo získat prakticky významné způsoby připojení PCIe 3.0 x1/x2: první bude shodný s PCIe 1.1 x4 nebo PCIe 2.0 x2 a druhý bude shodný s PCIe 2.0 x4. A my je máme.

Pokud jde o software, omezili jsme se pouze na Anvil’s Storage Utilities 1.1.0: docela dobře měří různé nízkoúrovňové charakteristiky disků a nic dalšího nepotřebujeme. Právě naopak: jakýkoli vliv ostatních komponent systému je krajně nežádoucí, takže nízkoúrovňová syntetika nemá pro naše účely alternativu.

Jako „pracovní tekutinu“ jsme použili 240 GB Patriot Hellfire. Jak bylo při testování zjištěno, nejde o žádného výkonového rekordmana, ale jeho rychlostní charakteristiky jsou zcela v souladu s výsledky nejlepších SSD stejné třídy a stejné kapacity. Jo a na trhu už jsou i pomalejší zařízení a bude jich přibývat. V zásadě by bylo možné testy opakovat s něčím rychlejším, ale to podle nás není potřeba - výsledky jsou předvídatelné. Ale nepředbíhejme, ale podívejme se, co máme.

Výsledky testů

Při testování Hellfire jsme si všimli, že maximální rychlost pro sekvenční operace lze „vymáčknout“ pouze z vícevláknové zátěže, takže i to je třeba vzít v úvahu do budoucna: teoretická propustnost je pouze teoretická, protože „ skutečná“ data přijatá v různých programech za různých scénářů již nebudou záviset na nich, ale právě na těchto programech a scénářích – samozřejmě v případě, kdy do toho nezasahují okolnosti vyšší moci :) To jsou přesně ty okolnosti, které nyní sledujeme : již bylo řečeno výše, že PCIe 1.x x1 je ≈200 MB/s, a to je přesně to, co vidíme. Dva pruhy PCIe 1.x nebo jeden pruh PCIe 2.0 jsou dvakrát rychlejší, a to je přesně to, co vidíme. Čtyři pruhy PCIe 1.x, dva PCIe 2.0 nebo jeden PCIe 3.0 jsou stále dvakrát rychlejší, což se potvrdilo u prvních dvou možností, takže třetí pravděpodobně nebude jiná. To znamená, že škálovatelnost je v zásadě podle očekávání ideální: operace jsou lineární, flash je zvládá dobře, takže na rozhraní záleží. Blesk se zastaví vyrovnat se dobře na PCIe 2.0 x4 pro záznam (což znamená, že PCIe 3.0 x2 je také vhodný). Čtení „může“ být více, ale poslední krok už dává jeden a půl, a ne dvojnásobný (jak by potenciálně měl být) nárůst. Poznamenáváme také, že mezi řadiči čipové sady a procesoru a mezi platformami není žádný znatelný rozdíl. LGA2011-3 je však trochu napřed, ale jen mírně.

Všechno je hladké a krásné. Ale netrhá šablony: maximum v těchto testech je jen o málo více než 500 MB/s, a to je docela schopné i SATA600 nebo (v aplikaci na dnešní testování) PCIe 1.0 x4 / PCIe 2.0 x2 / PCIe 3.0 x1. To je pravda: nenechte se vyděsit vydáním rozpočtových řadičů pro PCIe x2 nebo přítomností pouze tolika linek (a verze 2.0 standardu) ve slotech M.2 na některých deskách, když není potřeba více. Někdy toho tolik nepotřebujete: maximálních výsledků bylo dosaženo s frontou 16 příkazů, což není typické pro sériově vyráběný software. Častěji je zde fronta s 1-4 příkazy, a proto si vystačíte s jedním řádkem úplně prvního PCIe a dokonce i úplně prvního SATA. Existují však režie a další věci, takže rychlé rozhraní je užitečné. Být příliš rychlý však snad není na škodu.

Také v tomto testu se platformy chovají odlišně a s jedinou frontou příkazů - zásadně odlišně. „Problém“ není v tom, že mnoho jader je špatných. Stejně se zde nepoužívají, snad kromě jednoho, a ne tolik, aby byl plně nasazen boost režim. Máme tedy rozdíl asi 20 % ve frekvenci jádra a jedenapůlnásobek v paměti cache – v Haswell-E to funguje na nižší frekvenci, a ne synchronně s jádry. Obecně platí, že špičková platforma může být užitečná pouze pro vyřazení maxima „Yops“ v nejvíce vícevláknovém režimu s velkou hloubkou fronty příkazů. Jediná škoda je, že z hlediska praktické práce se jedná o zcela sférickou syntetiku ve vakuu :)

Na nahrávce se situace zásadně nezměnila – ve všech směrech. Legrační však je, že na obou systémech se režim PCIe 2.0 x4 v „procesorovém“ slotu ukázal jako nejrychlejší. Na obou! A s více kontrolami/opakovanými kontrolami. V tuto chvíli si nemůžete pomoct a přemýšlejte o tom, zda potřebujete toto jsou vaše nové standardy Nebo je lepší vůbec nikam nespěchat...

Při práci s bloky různých velikostí nabourává teoretickou idylku fakt, že zvyšování rychlosti rozhraní má stále smysl. Výsledná čísla jsou taková, že by stačilo pár linek PCIe 2.0, ale ve skutečnosti je v tomto případě výkon nižší než u PCIe 3.0 x4, i když ne několikanásobně. A obecně zde rozpočtová platforma „ucpává“ tu nejvyšší v mnohem větší míře. Ale právě tento druh operace se vyskytuje hlavně v aplikačním softwaru, tedy tento diagram je nejblíže realitě. V důsledku toho není divu, že tlustá rozhraní a módní protokoly neposkytují žádný „wow“ efekt. Přesněji řečeno, ty přechody z mechaniky budou dané, ale úplně stejné, jaké mu poskytne každý SSD s jakýmkoli rozhraním.

Celkový

Abychom usnadnili vnímání obrazu nemocnice jako celku, použili jsme skóre dané programem (celkové - pro čtení a zápis), které jsme normalizovali podle režimu „čipové sady“ PCIe 2.0 x4: v tuto chvíli je nejrozšířenější, protože se nachází i na platformách LGA1155 nebo AMD bez nutnosti „urazit“ grafickou kartu. Navíc je ekvivalentní PCIe 3.0 x2, na jehož zvládnutí se chystají rozpočtové řadiče. A na nové platformě AMD AM4 je to opět přesně ten režim, který lze získat bez ovlivnění diskrétní grafické karty.

Co tedy vidíme? Použití PCIe 3.0 x4, pokud je to možné, je jistě výhodnější, ale není nutné: přináší doslova o 10 % vyšší výkon diskům NVMe střední třídy (ve svém původně špičkovém segmentu). A to i tehdy – kvůli operacím, které obecně nejsou v praxi tak běžné. Proč je v tomto případě implementována tato konkrétní možnost? Jednak taková příležitost byla, ale rezerva na kapsu nestačí. Za druhé, existují ještě rychlejší jízdy než náš testovací Patriot Hellfire. Za třetí, existují oblasti činnosti, kde jsou „atypické“ zátěže pro stolní systém zcela typické. Kromě toho je zde výkon systému ukládání dat nebo alespoň schopnost velmi rychle zpracovat jeho část nejdůležitější. To ale neplatí pro běžné osobní počítače.

V nich, jak vidíme, použití PCIe 2.0 x2 (resp. PCIe 3.0 x1) nevede k dramatickému poklesu výkonu - pouze o 15-20%. A to přesto, že jsme v tomto případě omezili potenciální schopnosti ovladače čtyřnásobně! Pro mnoho operací je tato propustnost dostatečná. Jedna linka PCIe 2.0 již nestačí, takže pro řadiče má smysl podporovat PCIe 3.0 – a vzhledem k vážnému nedostatku linek v moderním systému to bude fungovat dobře. Šířka x4 je navíc užitečná – i když v systému není podpora moderních verzí PCIe, stále vám umožní pracovat normální rychlostí (i když pomaleji, než by potenciálně mohla), pokud je k dispozici více či méně široký slot .

V zásadě velký počet scénářů, ve kterých se sama flash paměť ukáže být úzkým hrdlem (ano, je to možné a je to vlastní nejen mechanice), vede k tomu, že čtyři pruhy třetí verze PCIe na tomto pohon jsou asi 3,5krát rychlejší než první - teoretická propustnost těchto dvou případů se liší 16krát. Což samozřejmě neznamená, že byste měli spěchat se zvládnutím velmi pomalých rozhraní – jejich čas je nenávratně pryč. Jde jen o to, že mnoho možností rychlých rozhraní lze realizovat až v budoucnu. Nebo v podmínkách, se kterými se běžný uživatel běžného počítače nikdy v životě přímo nesetká (s výjimkou těch, kteří se rádi srovnávají s kdoví čím). To je vlastně všechno.

A PCI-X jsou slotové konektory, které mají kolíky rozmístěné po 0,05 palce. Sloty jsou umístěny o něco dále od zadního panelu než ISA/EISA nebo MCA. Komponenty PCI karty jsou umístěny na levém povrchu karet. Z tohoto důvodu krajní PCI slot obvykle sdílí slot adaptéru (slot na zadní stěně skříně) se sousedním slotem ISA. Takový slot se nazývá sdílený slot, lze do něj nainstalovat kartu ISA nebo PCI.

Karty PCI mohou být navrženy pro signály rozhraní 5 V a 3,3 V a také mohou být univerzální. Sloty PCI mají úrovně signálu odpovídající napájení čipů zařízení PCI na základní desce (včetně hlavního můstku): buď 5 V, nebo 3,3 V. Aby se předešlo chybnému připojení, mají sloty klíče, které určují jmenovité napětí. Klíče jsou chybějící řady kontaktů 12, 13 a/nebo 50, 51:

  • pro 5 V slot je klíč (přepážka) umístěn na kontaktech 50, 51 (blíže k přední stěně pouzdra); takové sloty jsou v PCI 3.0 zrušeny;
  • u slotu 3,3 V je přepážka umístěna na pinech 12, 13 (blíže k zadní stěně skříně);
  • na univerzálních slotech nejsou žádné oddíly;
  • na okrajových konektorech 5V karet jsou odpovídající štěrbiny pouze v místě kontaktů 50, 51; takové karty jsou v PCI 2.3 zrušeny;
  • na kartách 3.3 Ve slotech pouze v místě kontaktů 12, 13;
  • univerzální karty mají oba klíče (dva sloty).

Klávesy neumožňují instalaci karty do slotu s nevhodným napájecím napětím. Karty a sloty se liší pouze napájením vyrovnávacích obvodů, které pochází z linek +V I/O:

  • na slotu „5 V“ je přiváděno + 5 V na lince +V I/O;
  • na slotu „3,3 V“ je na lince +V I/O přivedeno + (3,3–3,6) V;
  • na kartě „5 V“ jsou vyrovnávací čipy určeny pouze pro napájení + 5 V;
  • na kartě „3,3 V“ jsou vyrovnávací čipy určeny pouze pro napájení + (3,3–3,6) V;
  • na univerzální kartě umožňují vyrovnávací čipy obě možnosti napájení a běžně budou generovat a přijímat signály podle specifikací 5 nebo 3,3 V, v závislosti na typu slotu, ve kterém je karta nainstalována (tedy na napětí na + V I/ O kontakty).

Na slotech obou typů jsou napájecí napětí + 3,3, + 5, + 12 a –12 V na stejnojmenných linkách. PCI 2.2 definuje další linku 3,3 Vaux - „pohotovostní“ napájení + 3,3 V pro zařízení, která generují signál PME#, když je hlavní napájení vypnuto.

POZNÁMKA!

Výše uvedené jsou ustanovení z oficiálních specifikací PCI. Na moderních základních deskách se nejčastěji vyskytují 5voltové sloty. Napětí na +V I/O linkách a úrovně signálu rozhraní jsou však 3,3 V. Všechny moderní karty s 5V klíči pracují v těchto slotech normálně - jejich obvody rozhraní pracují s 3,3 i 5V napájením Rozhraní s 5V napájením může pracovat pouze na frekvencích do 33 MHz. „Opravdové“ 5V základní desky byly dostupné pouze pro 486 a rané modely Pentium.

Nejběžnější jsou 32bitové sloty zakončené piny A62/B62. 64bitové sloty jsou méně obvyklé, jsou delší a končí na pinech A94/B94. Konstrukce konektorů a protokol umožňuje instalovat 64bitové karty do 64bitových i 32bitových slotů a naopak 34bitové karty do 32bitových i 64bitových slotů. V tomto případě bude bitová hloubka výměny odpovídat nejslabší složce.

Pro signalizaci instalace karty a její spotřeby jsou na PCI konektorech dva kontakty - PRSNT1# a PRSNT2#, z nichž alespoň jeden je připojen ke sběrnici GND na kartě. S jejich pomocí dokáže systém určit přítomnost karty ve slotu a její spotřebu. Kódování příkonu je uvedeno v tabulce; Jsou zde uvedeny také hodnoty pro malé PCI karty.

Karty a sloty PCI-X mechanicky odpovídají 3,3voltovým kartám a slotům; Napájecí napětí + V I/O pro PCI-X Mode 2 je nastaveno na 1,5 V.

Na obrázku jsou PCI karty v provedení PC/AT kompatibilních počítačů. Karty plné velikosti (Long Card, 107×312 mm) se používají zřídka, zkrácené karty (Short Card, 107×175 mm) se používají častěji, ale mnoho karet má i menší velikosti. Karta má rámeček (bracket), který je standardní pro provedení ISA (dříve byly karty s rámečkem ve stylu MCA IBM PS/2). U karet Low Profile výška nepřesahuje 64,4 mm; jejich konzoly jsou také kratší na výšku. Takové karty lze instalovat vertikálně do 19palcových pouzder s výškou 2U (asi 9 cm).

Přiřazení pinů konektoru karty PCI/PCI-X je uvedeno v tabulce níže.

Řádek BŘada AŘádek BŘada A
-12V 1 TRST# GND/M66EN 1 49 AD9
TCK 2 +12 V GND/klíč 5V/MODE 2 50 GND/klíč 5V
GND 3 TMS GND/klíč 5V 51 GND/klíč 5V
TDO 4 TDI AD8 52 C/BE 0 #
+5 V 5 +5 V AD7 53 +3,3 V
+5 V 6 INTA# +3,3 V 54 AD6
INTB# 7 INTC# AD5 55 AD4
INTD# 8 +5 V AD3 56 GND
PRSNT1# 9 ECC 5 2 GND 57 AD2
ECC4 2 10 +V I/O AD1 58 AD0
PRSNT2# 11 ECC 3 2 +V I/O 59 +V I/O
GND/klíč 3,3V 12 GND/klíč 3,3V ACK 64#/ECC 1 60 REQ 64 #/ECC 6
GND/klíč 3,3V 13 GND/klíč 3,3V +5 V 61 +5 V
ECC2 2 14 3.3 Vaux 3 +5 V 62 +5 V
GND 15 RST# Konec 32bitového konektoru
CLK 16 +V I/O Rezervovat 63 GND
GND 17 GNT# GND 64 C/BE 7#
REQ# 18 GND C/BE 6# 65 C/BE 5#
+V I/O 19 PME # 3 C/BE 4# 66 +V I/O
AD31 20 AD30 GND 67 PAR 64 /ECC 7 2
AD29 21 +3,3 V AD63 68 AD62
GND 22 AD28 AD61 69 GND
AD27 23 AD26 +V I/O 70 AD60
AD25 24 GND AD59 71 AD58
+3,3 V 25 AD24 AD57 72 GND
C/BE3# 26 IDSEL GND 73 AD56
AD23 27 +3,3 V AD55 74 AD54
GND 28 AD22 AD53 75 +V I/O
AD21 29 AD20 GND 76 AD52
AD19 30 GND AD51 77 AD50
+3,3 V 31 AD18 AD49 78 GND
AD17 32 AD16 +V I/O 79 AD48
C/BE 2# 33 +3,3 V AD47 80 AD46
GND 34 RÁM# AD45 81 GND
IRDY# 35 GND GND 82 AD44
+3,3 V 36 TRDY# AD43 83 AD42
DEVSEL# 37 GND AD41 84 +V I/O
PCIXCAP 4 38 ZASTÁVKA# GND 85 AD40
ZÁMEK# 39 +3,3 V AD39 86 AD38
PERR# 40 SMBCLK 5 AD37 87 GND
+3,3 V 41 SMBDAT 5 +V I/O 88 AD36
SERR# 42 GND AD35 89 AD34
+3,3 V 43 PAR/ECC0 AD33 90 GND
C/BE 1# 44 AD15 GND 91 AD32
AD14 45 +3,3 V Rezervovat 92 Rezervovat
GND 46 AD13 Rezervovat 93 GND
AD12 47 AD11 GND 94 Rezervovat
AD10 48 GND Konec 64bitového konektoru

Poznámka!

1 - Signál M66EN je definován v PCI 2.1 pouze pro 3,3V sloty.
2 - Signál byl zaveden do PCI-X 2.0 (dříve tam byla rezerva).
3 - Signál byl zaveden do PCI 2.2 (dříve tam byla rezerva).
4 - Signál je zadán do PCI-X (v PCI - GND).
5 - Signály zavedené v PCI 2.3. V PCI 2.0 a 2.1 byly piny A40 (SDONE#) a A41 (SBOFF#) použity pro snoopování mezipaměti; v PCI 2.2 byly uvolněny (kvůli kompatibilitě na základní desce byly tyto obvody vytaženy na vysokou úroveň s 5 kOhm odpory).

PCI sloty mají kontakty pro testování adaptérů přes rozhraní JTAG (signály TCK, TDI, TDO, TMS a TRST#). Na základní desce se tyto signály nepoužívají vždy, ale mohou také organizovat logický řetězec testovaných adaptérů, ke kterým lze připojit externí testovací zařízení. Pro kontinuitu řetězu musí mít karta bez JTAG propojení TDI-TDO.

Na některých starších základních deskách je za jedním ze slotů PCI konektor Media Bus, který přenáší signály ISA. Je navržen pro umístění audio čipové sady určené pro sběrnici ISA na kartě PCI. Většina signálů PCI je připojena pomocí čistě sběrnicové topologie, to znamená, že stejnojmenné vývody slotů na stejné sběrnici PCI jsou vzájemně elektricky propojeny. Z tohoto pravidla existuje několik výjimek:

  • Signály REQ# a GNT# jsou pro každý slot individuální; spojují slot s arbitrem (obvykle most spojující tuto sběrnici s vyšší);
  • Signál IDSEL pro každý slot je připojen (případně přes rezistor) k jedné z linek AD s uvedením čísla zařízení na sběrnici;
  • signály INTA#, INTB#, INTC#, INTD# jsou cyklicky posouvány podél kontaktů, což zajišťuje distribuci požadavků na přerušení;
  • signál CLK je dodáván do každého slotu jednotlivě z jeho výstupu synchronizační vyrovnávací paměti; délka přívodních vodičů je vyrovnána, čímž je zajištěna synchronizace signálu na všech slotech (pro toleranci 33 MHz ± 2 ns, pro 66 MHz - ± 1 ns).

Tak jsme se dostali k COM portu. Ale s ním není vše tak jednoduché jako u LPT a jeho plné využití bude vyžadovat mnohem více úsilí. Hlavním problémem je také jeho hlavní výhoda – sériový přenos dat. Pokud se v LPT přenáší bajt dat po 8 řádcích, bit na řádek, a stav každého řádku lze snadno zobrazit, pak se v COM portu přenáší bajt dat bit po bitu podél jednoho řádku (vzhledem k zemi , samozřejmě) a podívejte se, co se tam přenáší pomocí LED samotných to neudělá. K tomu potřebujete speciální zařízení - převodník sériového datového toku na paralelní, tzv. USART (Universal Synchronous/Asynchronous Receiver Transmitter). Je například součástí základní desky počítače vybaveného portem COM nebo jakéhokoli vážnějšího mikrokontroléru.


Doufám, že vás stále odradí zvládnutí COM portu. Není to všechno zmar a chmurnost. Některé výsledky lze získat bez USART. Formulujme úkol, který budeme implementovat v počáteční fázi práce s COM portem:


"Chtěl bych, aby byla k počítači připojena LED přes COM port. Spustím program. Provedu v tomto programu nějakou akci, rozsvítí se LED, udělám něco jiného - LED zhasne."


Úloha je poměrně specifická (vzhledem k tomu, že se nepoužívá USART) a jde o čistě „udělej si sám“, ale je docela proveditelná a proveditelná. Začněme to implementovat.


1.COM port

Znovu vezměte systémovou jednotku vašeho počítače a podívejte se na zadní stranu. Všimli jsme si, že je zde 9pinový konektor - to je COM port. Ve skutečnosti jich může být několik (až 4). Můj počítač má dva COM porty (viz foto).


2. Rozšíření portu COM


3. Hardware

Také si budeme muset „pohrát“ s hardwarem v tom smyslu, že to bude složitější než u prvního zařízení pro LPT port. Faktem je, že protokol RS-232, přes který se vyměňují data v COM portu, má trochu jiný logický vztah mezi stavem a napětím. Pokud je to obvykle logická 0 0 V, logická 1 +5 V, pak v RS-232 je tento vztah následující: logická 0 +12 V, logická 1 -12 V.

A například po přijetí -12 V není okamžitě jasné, co dělat s tímto napětím. Obvykle jsou úrovně RS-232 převedeny na TTL (0,5 V). Nejjednodušší možností jsou zenerovy diody. Navrhuji ale vyrobit tento převodník na speciálním čipu. Jmenuje se MAX232.

Nyní se podívejme, jaké signály z COM portu můžeme vidět na LED? Ve skutečnosti je v COM portu až 6 nezávislých linek, které jsou zajímavé pro vývojáře zařízení rozhraní. Dvě z nich nám zatím nejsou dostupné – sériové datové linky. Ale zbývající 4 jsou navrženy tak, aby řídily a indikovaly proces přenosu dat a můžeme je „přenést“ tak, aby vyhovovaly našim potřebám. Dva z nich jsou určeny pro ovládání z externího zařízení a prozatím se jich nedotkneme, ale využijeme nyní poslední dva zbývající řádky. Říká se jim:

  • RTS- Žádost o převod. Interakční čára, která označuje, že počítač je připraven přijímat data.
  • DTR- Počítač je připraven. Interakční čára, která označuje, že počítač je zapnutý a připravený ke komunikaci.

Nyní trochu přeneseme jejich účel a k nim připojené LED diody buď zhasnou, nebo se rozsvítí, v závislosti na akcích v našem vlastním programu.

Pojďme tedy dát dohromady diagram, který nám umožní provádět zamýšlené akce.

A zde je jeho praktická realizace. Myslím, že mi odpustíte, že jsem to udělal v tak pitomé verzi na prkénko, protože nechci dělat desku pro tak „vysoce produktivní“ obvod.


4. Softwarová část

Všechno je zde jednodušší. Vytvořme Windows aplikaci v Microsoft Visual C++ 6.0 založenou na MFC pro správu dvou linek komunikace COM portů. Chcete-li to provést, vytvořte nový projekt MFC a pojmenujte jej, např. TestCOM. Dále vyberte možnost konstrukce na základě dialogu.

Dejte vzhled dialogového okna našeho programu jako na obr. níže, konkrétně přidejte čtyři tlačítka, dvě pro každý z řádků. Jeden z nich je nutný pro „zhasnutí“ linky, druhý pro „nastavení“ na jednu.

Třída CTestCOMDlg: public CDialog ( // Konstrukce public: CTestCOMDlg(CWnd* pParent = NULL); // standardní konstruktor HANDLE hFile;

Aby náš program mohl ovládat linky COM portu, musí být nejprve otevřen. Pojďme napsat kód zodpovědný za otevření portu při načítání programu.

HFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox("Port nelze otevřít!", "Chyba", MB_ICONERROR); ) else ( MessageBox("Port byl úspěšně otevřen", "Ok", MB_OK); )

Pomocí standardní funkce Win API CreateFile() otevřete COM port COM2. Dále zkontrolujeme úspěšnost otevření a zobrazíme informační zprávu. Zde musíme udělat důležitou poznámku: COM2 je na mém počítači, ale na vašem počítači jej můžete připojit k jinému COM portu. V souladu s tím je třeba změnit jeho název na jakýkoli port, který používáte. Čísla portů, která jsou na vašem počítači, můžete vidět takto: Start -> Nastavení -> Ovládací panely -> Systém -> Hardware -> Správce zařízení -> Porty (COM a LPT).

V důsledku toho funkce CTestCOMDlg::OnInitDialog(), který se nachází v souboru TestCOMDlg.cpp, naše třída dialogu by měla mít podobu:

BOOL CTestCOMDlg::OnInitDialog() ( CDialog::OnInitDialog(); // Přidat položku nabídky „O...“ do systémové nabídky. // IDM_ABOUTBOX musí být v rozsahu systémových příkazů. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); ) ) // Nastavení ikony pro tento dialog. Framework to dělá automaticky // když hlavní okno aplikace není dialog SetIcon(m_hIcon, TRUE); // Nastavit velkou ikonu SetIcon(m_hIcon, FALSE); // Nastavit malou ikonu // TODO: Zde přidejte další inicializaci hFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL if(hFile==INVALID_HANDLE_VALUE) ( MessageBox("Nelze otevřít port!", "Ostbk", MB_ICONERROR); ) else); ( MessageBox("Port úspěšně otevřen", "Ok", MB_OK); ) return TRUE // return TRUE, pokud nenastavíte fokus na ovládací prvek )

Nyní přidáme obslužné nástroje pro tlačítka ovládání linky. Dal jsem jim vhodná jména: funkce, která nastavuje jedničku na řádku DTR, je OnDTR1(), 0 je OnDTR0(). Pro linku RTS stejným způsobem. Dovolte mi, abych vám připomněl, že handler se vytvoří, když dvakrát kliknete na tlačítko. V důsledku toho by tyto čtyři funkce měly mít podobu:

Void CTestCOMDlg::OnDTR1() ( // TODO: Sem přidejte svůj kód obslužného rutiny ovládacích oznámení EscapeCommFunction(hFile, 6); ) void CTestCOMDlg::OnDTR0() ( // TODO: Sem přidejte kód manipulačního programu ovládacího oznámení EscapeCommFunction(hFile, 5). EscapeCommFunction(hFile, 3);

Dovolte mi trochu vysvětlit, jak fungují. Jak vidíte, uvnitř obsahují volání stejné funkce Win API EscapeCommFunction() se dvěma parametry. Prvním z nich je klika (HANDLE) do otevřeného portu, druhým je speciální akční kód odpovídající požadovanému stavu linky.

To je vše, zkompilujeme a spustíme. Pokud je vše v pořádku, měla by se zobrazit zpráva o úspěšném otevření portu. Dále stisknutím příslušných tlačítek rozblikáme LED diody připojené k portu COM.

© Ivanov Dmitrij
prosince 2006




Nahoru