Už u PCI-e 4 se spekulovalo o optice.
Kde je nějaký praktický limit takové věci, že to pořád běhá po metalice? 32GB/s je po jednom drátu už docela slušnej fičák.
Čekám, že to dopadne podobně jako u USB, kdy USB 2.0 a USB 3+ koexistují. Protože PCI-e 7.0 bude určitě pěkně drahé na implikaci, a nějaké PCI-e 3.0 na většinu jiných periferií než GPU stačí.
Nebo jsem si myslel, že bude méně linek. Ale spíš tipuji dvě verze PCI-e.
15. 6. 2023, 00:50 editováno autorem komentáře
Čekám, že to dopadne podobně jako u USB, kdy USB 2.0 a USB 3+ koexistují. Protože PCI-e 7.0 bude určitě pěkně drahé na implikaci, a nějaké PCI-e 3.0 na většinu jiných periferií než GPU stačí.
Ono už dnes je IMHO vidět, že ani u nového hardware není 4.0 zdaleka všechno, spíš jen ta zařízení, kde je to k něčemu užitečné, u uživatelských desktopů hlavně grafické karty a rychlejší NVMe. Nějaký posun směrem k vyšším specifikacím ale samozřejmě bude, i u toho USB je dnes běžné používat 2.0 i tam, kde by technicky klidně stačilo 1.1, protože rozdíl v nákladech by byl minimální, tak se takové řadiče ani nevyplatí vyrábět.
Imho limit nastane z duvodu energeticke narocnosti. Dnesni technologii se da v pohode vyrabet gen3, a ti co na to maj, tak daji gen4.
Ale kdyz se podivame na gen5, tak i takove sranda zarizeni jako nvme disk topi tolik, ze to je problem i pro desktop.
Takze ty gen6/7 budou jen pro reseni v datacentrech a vytvori se velika propast kvuli pouzivani PAM4 v kremiku.. pro male chipy to nebude davat smysl, protoze zvetsit pocet linek na dvojnasobek bude snazsi nez zvysit rychlosti.
Desktop by mel jednou uz opustit ten zastaraly koncept 16+(4/4/DMI), tak snad v pristim socketu po 1700 a AM5. Celkove chybi neco lepsiho, protoze pristi zastavka je az 64-128 bohuzel.
AFAIK standard primo nepocita s prizpusobenim rychlosti podle kvality linky.
Je to z toho duvodu, ze spojeni jsou point to point - host to device, a jen s jednim povolenym konektorem*, a obe strany si davaji vedet jake rychlosti a sirky podporuji, z ceho se zvoli vhodny rezim ktery bude vyhovovat oboum stranam - a ten proste pojede, protoze ty zarizeni jsou navrzeny tak, aby to podporovali - at uz specialnim layoutem, nebo modelu konektoru, ktery je vhodny na danou generaci.
Chyby na lince pak vynuti opakovani paketu, takze naroste latence a prida se jitter - ale neni specifikovan mechanismus ze se to ma downgradovat co se rychlosti nebo sirky tyce. Pokud mas specificky hw (treba PCIe switche) tak se muzes podivat na ty retransmission rate pocitadla.
Takovy downgrade spojeni muze nastat jen z duvodu power managementu.
*) risery od vyrobce napr. serveru jsou parovany s danou generaci, dnes gen3 a pristi gen4 vypadaj jinak., vice-konektorove reseni (napr. TB dock, pcie expansion) jsou udelany aby fungovali jak jsou sestaveny - typicky na gen3.
**) kabelove NVMe spojeni pouzivaji typicky jine konektory pro ruzne generace (minisashd=gen3/slimsas=gen4)
***) cinske USB3 like prodluzky a ruzne flexy z miniPCIe - ty odporuji standardu na tolika urovnich, ze to nema smysl resit. Asi jako kdyz si natahnete 220V skrze zvonkovy kabel. Nikdo za nic neruci.
15. 6. 2023, 11:17 editováno autorem komentáře
AFAIK standard primo nepocita s prizpusobenim rychlosti podle kvality linky
Hmm, co jsem tak driv zbezne cetl nejake PCIe dokumenty a zdrojaky tak myslim ze obe zarizeni pri inicializaci zacinaji na rychlosti 1x=2.5GT/s a pak jsou faze 'link training' /'link equalization' kdy zkousi na jake nejvyssi rychlosti se jeste domluvi.
Takze ta kvalita linky se projevi hned na zacatku. Pripadne pokud se neco rozbije pozdeji tak bych cekal ze se komunikace resetuje a zacnou zase od zacatku stejnym zpusobem.
namatkou mi ted google vraci tohle PCIe Link Training Overview https://www.ti.com/lit/an/snla415/snla415.pdf
Ano, zacinaji na Gen1 pri 2.5GT/s, ale pri pozadavku na zvyseni rychlosti to prochazi stavem LTSSM zvanym Recovery. V pripade ze je kabel tak spatny, ze druhej nevidi a neslysi.. tak zacinaji odznova na 2.5G, viz PCIe base spec 3.0 strana 292:
Note: This transition implies that the other side was unable to achieve Symbol lock or Block alignment at the speed with which it was operating. Hence both sides will go back to the 2.5 GT/s speed of operation and neither device will attempt to change the speed again without exiting Recovery state.
S tim asi souvisi moznost v BIOSu limitovat rychlosti, protoze bud se zarizeni domluvi na max, nebo zustanou v Gen1 zakladu.
Jako do PCIe delame dost dlouho a nikdy jsem nevidel link natrenovany stabilne na rychlost pod max, ale vypadavajici spojeni co se snazi znova napojovat ano.
Tak to nemusi byt jen BIOS, muze to byt i driver pci-e nebo nejaka policy systemu, tady je treba skript pro linux ktery na danem root portu nastavi rychlost https://www.alexforencich.com/wiki/en/pcie/set-speed
Cili ne ze by to tak fungovalo samo od sebe dynamicky na urovni hardwaru, ale to maximum jde snizit softwarove. Cili pokud se napr nedomluvi na 3.0 8GT/s nebo je to chybove tak to sice treba spadne na 1.0 ale software to muze prekonfigurovat a zkusit znova s maximem 2.0 a neni duvod aby to nebyla standardni implementace driveru pci-e sbernice.
viz treba problem popsany zde
https://unix.stackexchange.com/questions/42361/force-re-negotiation-of-pcie-speed-on-linux (a vysvetleni dole "In fact, in the end it turned out that the PCI card had a problem with data transmission on the PCI bus and the manufacturer fixed it with a firmware upgrade)"