Что нам стоит PCI-E райзер свой построить
Давным-давно собирал я себе мини-компьютер. Но вот незадача — 3D моделирование и чего уж греха таить — банальные игрушки заставляли данную коробочку сильно призадуматься, а меня — понервничать. Но просто взять и подключить видеокарту к ней нельзя — слот PCI-E X4 есть, но нет места в корпусе. Да и по питанию не сможет обеспечить (если не говорить о совсем уж бюджетных затычках). Какие варианты решения данной проблемы есть на рынке, чем они меня не устроили и что в итоге получилось, я постараюсь описать в данной статье. Прошу под кат, кто не боится большого количества картинок!
Пролог
Для подключения видеокарты требовался PCI-E райзер на 4 линии с дополнительным питанием с возможностью управлять им, если блок питания отдельный. Так что сразу отпадают обычные шлейфовые и многим до боли знакомые благодаря майнингу райзера с USB кабелем в качестве интерфейсного.
Массовые продукты с массовым качеством
А вот что из более-менее удовлетворяющего мои запросы можно найти на просторах сети:
- PE4C V4.1 — прежде всего плата, устанавливаемая в слот явно не влезала в мой ПК по габаритам. Да и сами кабели HDMI довольно жёсткие, да их тут ещё и 2! Да и цена в ~ 140$ мне показалась не совсем гуманной.
- EXP GDC — cсуществовала версия для слота pci-e x4, но имела так же негуманную цену, 2 уже встречавшихся ранее HDMI кабеля. Сейчас даже её картинку найти не могу — крайне редко продавалась за пределами Китая. Но для слота pci-e x4 плата ещё габаритнее, чем у PE4C
Версия для M2. А для обычного слота PCI-E словно в небытие канула
- Райзер от ADT-Link — на момент моих метаний представлен не был. Да и сейчас информации по ним не густо. Но мне показалось дико странно так сильно варьировать цену устройства от длины шлейфа.
Не найдя для себя подходящего решения, пришлось выбирать из двух вариантов — забить или сделать самому. Понятное дело, что для первого варианта статью можно было бы на этом закончить, но я, пожалуй, продолжу.
Проектирование
Пообщавшись в различных сообществах, посвященных данной теме, было решено делать райзер универсальным, а не только под себя — чтобы и к ноутбуку (через 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). Их нередко применяют для подключения матриц дисплеев различных устройств.
Голый кабель 18+
30 жил и всего 2 мм в диаметре
Хотя в открытой продаже их найти крайне сложно, мне удалось найти производителя в Китае, готового изготовить такие кабели в любом количестве (даже и 1шт) любой длины и с подходящим разъёмом.
Когда с выбором интерфейсного кабеля было покончено, я смог наконец заняться разработкой схемы платы райзера и подбором компонентов. В конечном итоге разработанные платы были заказаны, компоненты куплены и всё собрано воедино:
Верх платы
Низ платы
- Разъём питания 8pin (15А максимальный ток), совмещенный с сигналом включения (для ATX блоков питания)
- Схема индикации питающего напряжения в допустимых пределах (+12v ±5%) на оконном компараторе. Зеленый светодиод — напряжение в норме, красный — выход за допустимые пределы
- Управление питанием — мосфет на случай применения источника питания без управления и подача сигнал PS ON. Управляющим сигналом служит подача питания 3.3v на хосте
- Понижающий DC\DC для получения 3.3v
- Разъем подключения кулера
- LVDS разъёмы для подключения интерфейсных кабелей
- Слот PCI-E x16
- Защита от КЗ и превышения напряжения — предохранитель и TVS диод.
- Подключение дополнительного питания видеокарты
С другой стороны кабеля плат-переходник под слот конечного устройства:
Весомым минусом такого решения (как впрочем и у аналогов) — нельзя оперативно подключить/отключить райзер без необходимости разбирать ноутбук/компьютер. А сами разъёмы не предназначены для внешнего использования и имеют низкую механическую прочность и низкий ресурс. Поэтому дополнительно сделал вот такой переходник с более надёжными разъёмами (сам кабель с такими разъёмами сразу изготовить нельзя… за приемлемые деньги):
Подобные разъёмы применялись в док-станциях для смартфонов, планшетов и прочих устройств
Подключение с помощью 2х кабелей, а данные переходники их соединяют
Тестирование
Все компоненты на платы напаяны, кабеля подсоединены — самое время скрестить пальцы и протестировать!
На фото прототип и имеет отличия от конечного варианта.
Так как соединили 2 мя интерфейсными кабелями — получили PCI-E x8.
При прохождении различных тестов проблем не возникло и видеокарта стабильно работала под нагрузкой, а частота шины повысилась (gen3)
Для тестирования удалось раздобыть ноутбук со слотом M2 Key M с поддержкой NVME — MSI GE62 6QD. Но для прототипа был изготовлен переходник с ключами M+B для большей универсальности, поэтому возможно задействовать только 2 линии из 4х имеющихся:
Так как это был прототип, применение изоленты и вынос dc/dc на отдельную плату вполне уместны
Запуск ноутбука с EGPU. БП запускается автоматически при включении ноутбука
Из-за наличия в ноутбуке интегрированной и дискретно видеокарты пришлось повозиться с установкой драйверов
Работа под нагрузкой
К сожалению, данные железки были в моём распоряжении крайне недолгое время и провести более подробное тестирование у меня не было возможности уже после получения финальной версии райзера. Так что довольствоваться пришлось лишь таким железом:
- МП 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
Ради чего всё затевалось на самом деле
Конечно, конфигурация далеко не производительная и получить существенное преимущество от подключения по шине x4 вместо x1 не получилось в различных тестах. Зачастую всё упиралось в слабое железо.
Разница в пределах погрешности
Игры по типу 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 за советы и ответы на мои (иногда глупые) вопросы!