Что нам стоит PCI-E райзер свой построить

p2bjwmqo6yot_eufjkklj-p9oqu.jpeg

Давным-давно собирал я себе мини-компьютер. Но вот незадача — 3D моделирование и чего уж греха таить — банальные игрушки заставляли данную коробочку сильно призадуматься, а меня — понервничать. Но просто взять и подключить видеокарту к ней нельзя — слот PCI-E X4 есть, но нет места в корпусе. Да и по питанию не сможет обеспечить (если не говорить о совсем уж бюджетных затычках). Какие варианты решения данной проблемы есть на рынке, чем они меня не устроили и что в итоге получилось, я постараюсь описать в данной статье. Прошу под кат, кто не боится большого количества картинок!

Пролог


Для подключения видеокарты требовался PCI-E райзер на 4 линии с дополнительным питанием с возможностью управлять им, если блок питания отдельный. Так что сразу отпадают обычные шлейфовые и многим до боли знакомые благодаря майнингу райзера с USB кабелем в качестве интерфейсного.
z3-vqfkmh5u-8rf9nk5d6btibjs.png
Массовые продукты с массовым качеством

А вот что из более-менее удовлетворяющего мои запросы можно найти на просторах сети:

  • PE4C V4.1 — прежде всего плата, устанавливаемая в слот явно не влезала в мой ПК по габаритам. Да и сами кабели HDMI довольно жёсткие, да их тут ещё и 2! Да и цена в ~ 140$ мне показалась не совсем гуманной.
    o_6fgpmt7rycyfm4d6gzqdzrvq8.jpeg
  • EXP GDC — cсуществовала версия для слота pci-e x4, но имела так же негуманную цену, 2 уже встречавшихся ранее HDMI кабеля. Сейчас даже её картинку найти не могу — крайне редко продавалась за пределами Китая. Но для слота pci-e x4 плата ещё габаритнее, чем у PE4C
    5tlh5y3hjqp6ubkdkoasdcbzwt0.jpeg
    Версия для M2. А для обычного слота PCI-E словно в небытие канула
  • Райзер от ADT-Link — на момент моих метаний представлен не был. Да и сейчас информации по ним не густо. Но мне показалось дико странно так сильно варьировать цену устройства от длины шлейфа.
    wnaenxuhmyhic2x2yeevmleii7g.jpeg

Не найдя для себя подходящего решения, пришлось выбирать из двух вариантов — забить или сделать самому. Понятное дело, что для первого варианта статью можно было бы на этом закончить, но я, пожалуй, продолжу.

Проектирование


Пообщавшись в различных сообществах, посвященных данной теме, было решено делать райзер универсальным, а не только под себя — чтобы и к ноутбуку (через Mini Pci-E, M2 или даже MXM) и к компьютеру в слот x16 без ограничения только 4 линиями обмена данных!
Вот перечень требований, который я перед собой ставил:

  • Подача питания только 12v. 3.3v получать на самом райзере с помощью dc-dc преобразователя.
  • Управление питанием не зависимо от типа используемого БП (управляемый АТХ или
  • Подключение различных переходников через отсоединяемые однотипные кабели (без пайки).
  • Разбить интерфейс x16 на 4 группы. Таким образом для интерфейса x1-x4 — 1 кабель, x8 — 2 кабеля и 4 кабеля для x16.
  • Наблюдаемая мной иногда ситуация, когда подключаемую к ноутбуку видеокарту через EXP GDC питали ноутбучным БП на 19v (разъём то имеется — надо воткнуть) подвигла добавить индикацию входного напряжения в допустимых пределах: 12v ±5%.

Реализация


Хотелки описаны, храбрости накопилось достаточно — пора воплощать! Райзер по своей сути — удлинитель. И кабель — это основная его часть. В качестве таковых были применены разновидности LVDS кабелей — так называемые микро коаксиальные кабельные сборки (micro coaxial cable assembly). Их нередко применяют для подключения матриц дисплеев различных устройств.

pjer0feihmdlcf3js7dpts-z_xw.png
Голый кабель 18+

sbzycezhtq51c9qlmn1pow8wva8.png
30 жил и всего 2 мм в диаметре

Хотя в открытой продаже их найти крайне сложно, мне удалось найти производителя в Китае, готового изготовить такие кабели в любом количестве (даже и 1шт) любой длины и с подходящим разъёмом.

Когда с выбором интерфейсного кабеля было покончено, я смог наконец заняться разработкой схемы платы райзера и подбором компонентов. В конечном итоге разработанные платы были заказаны, компоненты куплены и всё собрано воедино:

vvmoqzz8uiuk_tpq6kuu3j3gebo.jpeg
Верх платы

r7r1sjjqoryuinebpfp_vbta-co.jpeg
Низ платы

  1. Разъём питания 8pin (15А максимальный ток), совмещенный с сигналом включения (для ATX блоков питания)
  2. Схема индикации питающего напряжения в допустимых пределах (+12v ±5%) на оконном компараторе. Зеленый светодиод — напряжение в норме, красный — выход за допустимые пределы
  3. Управление питанием — мосфет на случай применения источника питания без управления и подача сигнал PS ON. Управляющим сигналом служит подача питания 3.3v на хосте
  4. Понижающий DC\DC для получения 3.3v
  5. Разъем подключения кулера
  6. LVDS разъёмы для подключения интерфейсных кабелей
  7. Слот PCI-E x16
  8. Защита от КЗ и превышения напряжения — предохранитель и TVS диод.
  9. Подключение дополнительного питания видеокарты

С другой стороны кабеля плат-переходник под слот конечного устройства:

yok4mw0n4kfakoz02-wz0sdkyhc.jpeg

Весомым минусом такого решения (как впрочем и у аналогов) — нельзя оперативно подключить/отключить райзер без необходимости разбирать ноутбук/компьютер. А сами разъёмы не предназначены для внешнего использования и имеют низкую механическую прочность и низкий ресурс. Поэтому дополнительно сделал вот такой переходник с более надёжными разъёмами (сам кабель с такими разъёмами сразу изготовить нельзя… за приемлемые деньги):

j4jzwwivpvc5wn2o_ifthhzvmcu.jpeg
Подобные разъёмы применялись в док-станциях для смартфонов, планшетов и прочих устройств

fwo8z5ygz-xrb5rkktvomw-2ljg.jpeg
Подключение с помощью 2х кабелей, а данные переходники их соединяют

Тестирование


Все компоненты на платы напаяны, кабеля подсоединены — самое время скрестить пальцы и протестировать!

rr0kk-g4bbpgdbyh5bqqt921ofw.jpeg
На фото прототип и имеет отличия от конечного варианта.

lftmbj8hmxxvdbe4kq8yy9uuqdo.jpeg
Так как соединили 2 мя интерфейсными кабелями — получили PCI-E x8.

lztfhvmz7pevnyjetd92pqlytgq.jpeg
При прохождении различных тестов проблем не возникло и видеокарта стабильно работала под нагрузкой, а частота шины повысилась (gen3)

Для тестирования удалось раздобыть ноутбук со слотом M2 Key M с поддержкой NVME — MSI GE62 6QD. Но для прототипа был изготовлен переходник с ключами M+B для большей универсальности, поэтому возможно задействовать только 2 линии из 4х имеющихся:

9rn54vaeb-xawf7yk2brqiyqric.jpeg
Так как это был прототип, применение изоленты и вынос dc/dc на отдельную плату вполне уместны

fyszspm12mxmhpjypn5tmcn8tig.jpeg
Запуск ноутбука с EGPU. БП запускается автоматически при включении ноутбука

yskcvhwvjr4gpt4peovc6xez95s.jpeg
Из-за наличия в ноутбуке интегрированной и дискретно видеокарты пришлось повозиться с установкой драйверов

y1xc88bommcd9fphyak-6ypcvra.jpeg
Работа под нагрузкой

К сожалению, данные железки были в моём распоряжении крайне недолгое время и провести более подробное тестирование у меня не было возможности уже после получения финальной версии райзера. Так что довольствоваться пришлось лишь таким железом:

  • МП Asus Q87T
  • ЦП Core I3 4150T
  • ОЗУ 2×4ГБ Crucial DDR3L SO-DIMM PC-12800
  • Wi-Fi / BT модуль Intel Dual Band Wireless-AC 7260
  • SSD mSATA 120Гб Crucial M500
  • HDD 2.5` Seagate Momentus 500GB
  • MSI RX 560 4Gb

iy7l7uysi3amdu4sobxmthwp4-y.jpeg
Ради чего всё затевалось на самом деле

Конечно, конфигурация далеко не производительная и получить существенное преимущество от подключения по шине x4 вместо x1 не получилось в различных тестах. Зачастую всё упиралось в слабое железо.

ah7ekg0jws0yqnvyatvwh9-jwzi.png
Разница в пределах погрешности

Игры по типу MOBA (WOT, например) показали равнодушие к шине на этой конфигурации — при наличии достаточного объёма видеопамяти нет необходимости подгружать данные в закрытых небольших локациях.
Зато в онлайн играх с открытым миром, особенно в местах массового скопления игроков разница вполне ощутима. Вот 3 замера FPS в игре Black Desert:

Замер min avg max
pci-e x4 gen1 ≈ pci-e x1 gen3
1 5 28 51
2 5 29 49
3 5 29 51
pci-e x4 gen3
1 7 31 56
2 6 30 51
3 7 31 53

Планы и итоги


Проект хоть и затевался как универсальный и не только под себя, но особой популярности не сыскал. Совсем не сыскал. Тем не менее, я получил то, что хотел и бесценный опыт и знания. Как говорится отрицательный результат — тоже результат!
Так же меня часто спрашивают, почему я не пробовал реализовать поддержку модного сейчас интерфейса Thunderbolt3. Проблема в том, что данный интерфейс потребует лицензирования у Intel. И никакой документации на контроллеры просто так не дадут. Есть даже узкий круг разработчиков решений на Thunderbolt3 под патронажем той же Intel. Меня естественно туда не приняли.
Хотя и ходили слухи, что этот интерфейс будет открытым и доступным всем, но на текущий момент это всего лишь слухи и стандарт так и остался закрытым. Но я бы с удовольствием попробовал развить проект в этом направлении.

Вообщем буду очень рад услышать замечания и предложения от хабаржителей. Спасибо за внимание!

PS


Так как это вообще мой первый опыт в разработке электронного устройства, за помощью пришлось обратиться к более опытным в этом плане людям, так что хочу сказать большое спасибо NordicEnergy и Paging за советы и ответы на мои (иногда глупые) вопросы!

Файлы проекта

© Habrahabr.ru