banner
Centro de notícias
Assistência pós-venda de qualidade premium

PCIe para hackers: extraindo o máximo

Jun 29, 2023

Portanto, agora você conhece os fundamentos da abordagem do PCIe e talvez tenha um objetivo relacionado ao PCIe em mente. Talvez você queira equipar um computador de placa única com um monte de placas PCIe WiFi baratas, mas poderosas, para warddir, talvez adicionar um segundo SSD NVMe ao seu laptop em vez do controlador Ethernet que você nunca usa ou talvez adicionar um tamanho GPU para o seu Raspberry Pi 4 através de um adaptador bacana. O que quer que você queira fazer – vamos garantir que não haja uma área do PCIe com a qual você não esteja familiarizado.

Você pode ter ouvido o termo "bifurcação" se já conhece o PCIe, especialmente em comunidades de mineração ou conserto de PC. Isso é dividir um slot PCIe em vários links PCIe e, como você pode imaginar, é um recurso bastante interessante para hackers; você não precisa de nenhum hardware extra, na verdade, tudo que você precisa é adicionar um buffer para REFCLK. Veja, ele ainda é necessário para cada porta extra que você obtiver - mas você não pode simplesmente puxar fisicamente o mesmo par de diferenças de clock para todos os slots de uma vez, pois isso resultará em stubs e, consequentemente, reflexões de sinal; um chip de buffer REFCLK pega o relógio do host e produz várias cópias idênticas do sinal REFCLK que você puxa de forma autônoma. Você pode ter visto x16 a quatro cartões de slot NVMe on-line - invariavelmente, em algum lugar no canto do cartão, você pode localizar o chip de buffer REFCLK. Em um cenário perfeito, isso é tudo que você precisa para obter mais PCIe do seu PCIe.

Na realidade, o suporte de bifurcação adequado é confuso. A bifurcação requer suporte do host - e esse suporte é bastante situacional, com apenas alguns chipsets sendo capazes de fazer a bifurcação e algumas placas-mãe sendo capazes de fazê-lo, mas optando por não torná-lo possível em termos de software por qualquer motivo. Mesmo se você estiver criando seu próprio host PCIe com um FPGA e a flexibilidade absoluta que isso implica, seu FPGA pode não suportar a bifurcação por motivos internos. Além do mais, você não pode simplesmente obter dezesseis links x1 de um único slot x16 – geralmente, a combinação suportada é quatro links x4 de um slot x16, talvez dois links x4 de um slot x16 com fio x8.

Agora, há uma alternativa, e são os switches PCIe – estes são chips robustos que apresentam uma interface de dispositivo PCIe para seu host e várias interfaces de host PCIe para todos os seus dispositivos; você pode compará-los com switches Ethernet em termos de como eles funcionam, exceto que as faixas de um switch PCIe têm funções de host ou dispositivo e as portas do switch Ethernet geralmente são todas iguais. Esses switches são dimensionados de um QFN estilo RP2040 (no caso do ASM1182, um switch 1:2) até o tamanho de uma CPU x86, geralmente precisam de refrigeração externa, também tendem a ser caros e consomem uma quantidade razoável de poder. Se você está procurando placas de bifurcação, digamos, Aliexpress, inevitavelmente encontrará placas com switches PCIe.

O benefício é que eles não requerem suporte especial do host, pois se parecem com qualquer dispositivo PCIe comum do ponto de vista do host. A desvantagem – novamente, eles custam uma quantia significativa e também raramente são documentados. Por exemplo, eu estava procurando alguns chips de switch PCIe 1:4 e me deparei com o controlador ASM1184 1:4, que produz quatro links x1 a partir de um único link x1. Isso era exatamente o que eu precisava e, ao pesquisar no Google, encontrei esse chip sendo usado em toneladas de placas divisoras PCIe chinesas de todos os tipos, placas-mãe de desktop de fabricantes como Gigabyte, com placas vendidas até em lugares como o Walmart. Os próprios chips ASM118x (1:4 para ASM1184 e 1:2 para ASM1182) também são fáceis de encontrar no Aliexpress – o principal problema é que eles não têm documentação. Tecnicamente, um esquema de dispositivo do mundo real é o mínimo necessário, já que os chips parecem funcionar de forma autônoma, sem controle externo – encontrei um para ASM1182 e meu amigo recentemente encontrou um para ASM1184. No entanto, coisas como registradores I2C para controle externo permanecerão um mistério.

Portanto, embora chips como o ASM1184 sejam tentadores, baratos e estejam prontamente disponíveis no Aliexpress como IC autônomo e como parte de produtos, a depuração pode ser complicada. Felizmente, há um fabricante ocidental que conheço que salvará seu dia quando se trata de switches PCIe - é a Diodes Incorporated, com sua linha de produtos PCIe adquirida pela Pericom; você pode baixar abertamente folhas de dados completas para seus switches PCIe, e há algumas boas no Digikey. Você também pode se deparar com switches PCIe da Broadcom, mas, como você pode imaginar, sua abertura é normal para um produto típico da Broadcom - também conhecido como inexistente.