Ответы пользователя по тегу PCI
  • Как линии pcie делятся между устройствами?

    @two_oceans
    Ну вообще да, поставить еще один nvme SSD без потери ширины канала к нему в данной ситуации сложно. Хотя и не невозможно, но мало кто пойдет на такие технические меры. Пройдемся по порядку.

    Насчет видеокарты - многое зависит от конкретной игры, загрузка канала почти напрямую зависит от интенсивности загрузки текстур в видеокарту. Есть сравнения на этот счет. Когда не против поиграть на самом низком качестве текстур возможно и x8 хватит. Или даже меньше. Когда выжимаешь качество на максимум, то судя по тестам используется примерно 12-14 линий. Так что действительно 4 линии из 16 могут и не использоваться никогда потому что видеокарте хватает 12 для всех игр, в которые играет хозяин. В любом случае 12 линий лучше чем 8.

    Что PCIE_4 и PCIE_1 заявлены как PCIe 3.0 намекает, что это линии идущие прямо от процессора и максимальное их число определяется минимумом от числа линий процессора и того сколько из них разведены на плате. PCIE_6 заявлены как PCIe 2.0, то есть их контроллер находится в чипсете, и есть физически промежуточная шина (абсолютно невидимая логически) между чипсетом и процессором, на которой так же висят все остальные устройства работающие через чипсет. Много линий тут не втиснешь, так как на все про все не хватит ширины промежуточной шины (каждый доступный SATA недо-6 Гбит/с или USB3.0 5 Гбит/с занимает примерно столько же пропускной способности как 1 линия PCIe 2.0 5 Гт (Гигатрансферов)/с , а есть еще и сами PCIe 2.0 x1, сеть 1Гбит/с, звук и т.д.).

    "Каждая линия PCI-E - шина типа точка-точка, на одной шине не может быть нескольких устройств." Это утверждение формально верно на физическом уровне (как противоположность простой PCI), но не все так прозрачно и ясно на логическом уровне. Шина PCIe если почитать спецификацию имеет архитектуру дерева (очень похожую на USB). Так, майнеры умудряются на один x1 2.0/3.0 слот вешать 4 видеокарты через райзер с встроенным PCIe switch, причем можно в один из слотов вставить следующий такой же райзер и в итоге повесить до 7 видеокарт. Ну, для майнеров текстуры не нужны и им хватает ширины канала x1 1.0 на карту. Пример поближе - можно встретить карты которые ставятся в слот PCIe x16 и через PCIe switch на карту ставится 4 nvme SSD. Как так вышло? PCIe switch собирает потоки данных от "дочерних" устройств и передает в своем канале связи "наверх", с указанием какие данные от какого устройства, а его драйвер распределяет полученное драйверам дочерних устройств.

    Выше верно сказали - если хотя бы одно устройство стоит в PCIE_4, то PCIE_1 линии поделятся пополам. Но вот почему так происходит интерпретировано совершенно неверно. С точки зрения процессора к PCIe root (контроллер PCIe) подключен PCIe switch и это единственное устройство на 16 линиях, а уже к свитчу подключены 2 разъема PCIE_1 и PCIE_4 и при этом до одного физически идет 16 линий, до второго 8 линий и на основании микропрограммы свитч решает, что просто отдаст все 8 линий на второй разъем если там есть устройство. Логика в том, что между 2 видеокартами в PCIE_1 и PCIE_4 еще подключается дополнительная линия связи SLI / Crossfire (мимо PCIe) по которой они могут тянуть текстуры друг у друга и фактически получить те же 12 линий.

    Однако логика идет наперекосяк если во втором слоте не видеокарта, а устройство занимающее 4 и менее линий. Если бы микропрограмма свитча это предусматривала, то можно было бы безболезненно поделить как 12 + 4. В случае физической видеокарты с разъемом м2 так и сделано - то есть к разъему PCIE_1 логически подключается не устройство-видеокарта, а еще один PCIe switch, который делит линии на "логический разъем" устройства-видеокарты и разъем м2 как 12 + 4. Понятно, что если от PCIE_1 поступит только 8 линий, то м2 на видеокарте отключится.

    Чисто в теории можно так же 12+4 сделать с кастомной прошивкой биоса, меняющей микропрограмму свитча, подключенного к root, но на практике же оказывается, что некоторые сигналы невозможно поменять биосом потому что они дешево и сердито подтянуты резисторами размером 0,3 мм на плате к +3в или к земле, а биос просто их считывает. Так что на большинстве плат можно только смириться с делением 8+8, на меньшинстве пришлось бы не только переписать биос, но и вооружаться паяльной станцией с микроскопом.

    Вставить переходник с PCIe switch 12+4 между PCIE_1 и видеокартой выглядит более реально (китайские товарищи любую плату по чертежу спаяют), но тут уже проблемы с позиционированием карты в корпусе, вероятно что потребуется еще и райзер на 12/16 линий и стоить будет кругленькую сумму при штучных количествах производства.
    Ответ написан
    1 комментарий