PCIe para piratas informáticos: extracción máxima
Entonces, ahora conoce los conceptos básicos para acercarse a PCIe, y quizás tenga en mente un objetivo relacionado con PCIe. Tal vez quiera equipar su computadora de placa única con un montón de tarjetas WiFi PCIe baratas pero potentes para warddrive, tal vez agregar un segundo SSD NVMe a su computadora portátil en lugar de ese controlador Ethernet que nunca usa, o tal vez, agregar un completo tamaño GPU a su Raspberry Pi 4 a través de un ingenioso adaptador. Independientemente de lo que desee hacer, asegurémonos de que no haya un área de PCIe con la que no esté familiarizado.
Es posible que haya escuchado el término "bifurcación" si ha estado cerca de PCIe, especialmente en comunidades de minería o de retoques de PC. Esto es dividir una ranura PCIe en múltiples enlaces PCIe y, como puede imaginar, es una característica bastante interesante para los piratas informáticos; no necesita ningún hardware adicional, realmente, todo lo que necesita es agregar un búfer para REFCLK. Mira, todavía lo necesita cada puerto adicional que obtienes, pero no puedes simplemente jalar el mismo par de diferencias de reloj a todas las ranuras a la vez, ya que eso dará como resultado stubs y, en consecuencia, reflejos de señal; un chip de búfer REFCLK toma el reloj del host y produce una cantidad de copias idénticas de la señal REFCLK que luego extrae de forma independiente. Es posible que haya visto x16 a cuatro tarjetas de ranura NVMe en línea; invariablemente, en algún lugar de la esquina de la tarjeta, puede detectar el chip de búfer REFCLK. En un escenario perfecto, esto es todo lo que necesita para obtener más PCIe de su PCIe.
En realidad, el soporte de bifurcación adecuado es complicado. La bifurcación requiere el soporte del host, y este soporte es bastante situacional, ya que solo algunos conjuntos de chips pueden realizar la bifurcación y bastantes placas base pueden hacerlo, pero optan por no hacerlo posible en términos de software por cualquier motivo. Incluso si está creando su propio host PCIe con un FPGA y la gran flexibilidad que esto implica, es posible que su FPGA no admita la bifurcación por razones internas. Además, no puede simplemente obtener dieciséis enlaces x1 de una sola ranura x16; por lo general, la combinación admitida es cuatro enlaces x4 de una ranura x16, tal vez dos enlaces x4 de una ranura x16 cableada x8.
Ahora, hay una alternativa, y son los conmutadores PCIe: estos son chips pesados que presentan una interfaz de dispositivo PCIe para su host y múltiples interfaces de host PCIe para todos sus dispositivos; podría compararlos con los conmutadores Ethernet en términos de cómo funcionan, excepto que los carriles de un conmutador PCIe tienen funciones de host o dispositivo y los puertos del conmutador Ethernet generalmente son todos iguales. Estos conmutadores tienen un tamaño que va desde un QFN estilo RP2040 (en el caso de ASM1182, un conmutador 1:2) hasta el tamaño de una CPU x86, a menudo necesitarán refrigeración externa, también tienden a ser caros y consumen una cantidad decente de fuerza. Si está buscando tarjetas de bifurcación en, por ejemplo, Aliexpress, inevitablemente tropezará con tarjetas con interruptores PCIe.
El beneficio es que no requieren soporte especial del host, ya que se ven como cualquier dispositivo PCIe normal desde la perspectiva del host. El inconveniente: nuevamente, cuestan una cantidad significativa y rara vez se documentan. Por ejemplo, estaba buscando algunos chips de interruptores PCIe 1:4 y me topé con el controlador ASM1184 1:4, que produce cuatro enlaces x1 a partir de un solo enlace x1. Esto era justo lo que necesitaba, y cuando busqué en Google, encontré que este chip se usa en toneladas de placas divisoras PCIe chinas de todo tipo, placas base de escritorio de fabricantes como Gigabyte, con placas que incluso se venden en lugares como Walmart. Los chips ASM118x (1:4 para ASM1184 y 1:2 para ASM1182) también son fáciles de encontrar en Aliexpress; el principal problema es que carecen de documentación. Técnicamente, un esquema de dispositivo del mundo real es lo mínimo necesario, ya que los chips parecen estar destinados a funcionar de forma independiente, sin control externo. Encontré uno para ASM1182 y mi amigo encontró recientemente uno para ASM1184. Sin embargo, cosas como los registros I2C para control externo seguirán siendo un misterio.
Por lo tanto, a pesar de que los chips como el ASM1184 son tentadores, baratos y están fácilmente disponibles en Aliexpress como IC independiente y como parte de los productos, la depuración puede ser complicada. Afortunadamente, hay un fabricante occidental que conozco que le salvará el día cuando se trata de conmutadores PCIe: es Diodes Incorporated, con su línea de productos PCIe adquirida por Pericom; puede descargar abiertamente hojas de datos completas para sus conmutadores PCIe, y hay algunos buenos en Digikey. También puede tropezar con los conmutadores PCIe de Broadcom, pero como puede suponer, su apertura es normal para un producto típico de Broadcom, es decir, inexistente.
Si está buscando pasar PCIe a través de un cable y está de acuerdo con un enlace x1, podría hacerlo peor que un cable USB3; de hecho, es un medio bastante adecuado. Hay dos pares de diferenciales USB3 de alta velocidad, y dado que USB3 es una interfaz delicada cuando se trata de requisitos de integridad, el cableado destinado a USB3 funciona bien para PCIe. Los cables USB3 también llevan un par USB2, y el par REFCLK de 100 MHz encaja perfectamente; en general, los cables USB3 y los enlaces PCIe x1 son una combinación perfecta. Los fabricantes de equipos de minería han reconocido esto, inundando el mercado con todo tipo de accesorios que extraen enlaces PCIe a través de cables y conectores USB3: extensores de ranura, conmutadores PCIe, adaptadores NVMe, etc. Desde que la minería se ha vuelto menos popular, estos accesorios están disponibles a bajo precio.
Una placa elevadora de minería típica consta de una placa de conexión x1 con un enchufe USB3 que está diseñado para conectarse a una placa base, una placa de ranura x16 con un enchufe USB3 correspondiente, así como entradas de alimentación adicionales, a veces, también con algunos reguladores de potencia; el tercer componente es un cable USB3 con conectores USB-A en ambos extremos. Para un pirata informático que diseñe algo no convencional con PCIe, reutilizar estos accesorios puede ser tentador: después de todo, los enchufes y cables USB3 son fáciles de encontrar en muchas variedades.
De hecho, es probable que tenga éxito: si algo puede ser una prueba de que es absolutamente viable examinar PCIe de esa manera, es que todos estos extensores de minería, de hecho, han estado trabajando para todos los innumerables mineros, en condiciones 24/7/365. Sin embargo, ten cuidado con algunos contratiempos. Por ejemplo, hay un inconveniente menor en el pinout que no ocurre con frecuencia: los pares diferenciales TX y RX de alta velocidad permanecerán en los pines USB3, pero qué par PCIe va a qué par USB3 no está del todo garantizado.
Sin embargo, lo que es más importante, el tipo de señales que se colocan en los cables de +5 V y GND (sí, un cable separado) de la parte USB2 pueden diferir, y se sabe que esto sucede. Mi amigo ha construido un dispositivo con estos cables, y se descubrió que los elevadores PCIe que tenía tenían PEWAKE y PERST, y el diseño ha funcionado de maravilla. Sin embargo, más adelante, una investigación de compatibilidad de elevadores en un foro de minería ruso (traducido) encontró algunos tableros de interruptores y elevadores donde el cable de +5 V transportaba 3.3 V, o incluso 12 V, en lugar de PERST o PEWAKE que podría esperar si usted diseña para el elevador específico que posee. Si intenta diseñar para equipos elevadores y confía en el "enchufe x1 en la placa base" o en las placas de "ranura x16" de un extensor de elevador típico, es mejor que se asegure dos veces de que los que está usando realmente lo hagan. cumplir con el pinout que tiene en mente; usar un elevador poco fiable puede conducir a una situación explosiva. Lamentablemente, estos elevadores casi han definido un estándar para transportar PCIe a través de cables convenientes, pero no están del todo allí.
Además, asegúrese de evitar los adaptadores de alimentación que a veces se incluyen con dichos kits de minería; si hay algo malo con esas placas de minería, es la inclusión de estos adaptadores, que pueden ser un verdadero riesgo de incendio en la práctica, si su tarjeta PCIe consume un poco más de energía de la que puede manejar el conector de alimentación SATA económico del adaptador.
La ruta de los piratas informáticos de subvertir los accesorios de minería para los objetivos de travesuras de PCIe no es la única. Si encuentra un chip sabroso que se conecta a través de PCIe, o si desea extender un enlace PCIe que encontró en algún lugar a través de medios totalmente legítimos, ¡continúe y diseñe su propia PCB! Hoy en día, puede elegir entre ranuras de tamaño completo para uso de escritorio o ranuras M.2 para uso móvil, y si apunta a equipos industriales o más antiguos, mPCIe también funciona.
Para uso de escritorio, hay una gran cantidad de zócalos PCIe para elegir. Para conectarlo a un enchufe de este tipo, necesita una placa de circuito impreso de 1,6 mm de grosor, que es, afortunadamente, el grosor de placa de circuito impreso estándar que puede obtener de cualquier fábrica, ¡y también es el grosor de placa de circuito impreso más barato por regla general! Querrá achaflanar el borde de la PCB que se conecta al zócalo PCIe; su fábrica de PCB a menudo puede hacer esto con un poco de costo adicional, pero también puede agregar este chaflán post factum con una lima o un cuchillo xacto con un repuesto. cuchilla.
En cuanto a las tragamonedas móviles, ya he hablado mucho sobre M.2. Las pautas simples de M.2 son: use PCB de 0,8 mm con ENIG para una tarjeta y asegúrese de tener una plantilla si está agregando una ranura M.2 a su PCB. Luego, elija la clave con la que se sienta cómodo: A+E para tarjetas WiFi, enchufes E para conectar tarjetas WiFi, ranuras M-key y tarjetas para PCIe hasta x4, y tarjetas B+M para PCIe hasta x2 y compatibilidad con enchufes B-key (WWAN) y M-key (SSD). ¡Hay muchos zócalos M.2 a la venta, y también plantillas para tragamonedas y tarjetas! Para mPCIe, las PCB de 1 mm funcionarán, y el enchapado en oro (ENIG) es, nuevamente, imprescindible.
Ya sea que esté haciendo una tarjeta o un zócalo PCIe móvil o de escritorio, las pautas de diseño de pares diferenciales, las pocas señales requeridas y la gran compatibilidad entre los anchos de enlace y las generaciones siguen siendo las mismas. Independientemente de lo que diseñe con PCIe, no es una tarea difícil de lograr, y gracias a la resiliencia de PCIe que nos ayuda en nuestras incursiones de alta velocidad, es muy probable que logre los objetivos de su proyecto PCIe.