PCIe per hacker: un viaggio con la scheda M.2
Ho progettato alcuni adattatori M.2 per uso mio e dei miei amici e, dopo aver trovato questi progetti online, le persone mi hanno chiesto adattatori su misura. Una di queste richieste è piuttosto specifica: un adattatore che aggiunga un ulteriore collegamento PCIe a uno slot E-key M.2, il tipo di slot che vedrai utilizzato nei laptop per le schede WiFi.
Vedi, la specifica M.2 consente due collegamenti PCIe separati collegati allo slot E-key; tuttavia, nessuna scheda WiFi lo utilizza, a parte alcune vecchie che supportano WiGig, e i produttori hanno rinunciato da tempo al collegamento di un secondo collegamento. Tuttavia, ci sono alcune carte come l'acceleratore dual AI Google Coral M.2 E-key e la uSDR recentemente annunciata, che richiedono effettivamente il secondo collegamento, altrimenti è disponibile solo la metà della loro capacità.
Non è chiaro il motivo per cui sia Google che WaveletSDR abbiano progettato una presa per chiave elettronica dual-link, poiché si tratta di un evento raro; per quanto riguarda la carta Google, ci sono molte persone che si lamentano del fatto che la scheda che hanno acquistato semplicemente non funziona completamente. In teoria, tutto ciò che devi fare per risolvere una situazione del genere è ottenere un secondo collegamento PCIe da qualche parte, quindi collegarlo al socket – e un modo perfetto per farlo è ottenere un chip switch PCIe. Perderai parte della larghezza di banda perché la connessione PCIe uplink dello switch può andare solo così veloce; per cose come questo acceleratore AI, non è un grosso problema poiché l'importante è rendere accessibile il secondo dispositivo. Per i suddetti DSP, potrebbe rivelarsi inutile, oppure potresti vincerne alcuni ma perderne altri: non puoi saperlo finché non ci provi!
Questo è un problema adatto agli hacker che possiamo risolvere per divertirci e avere opportunità di apprendimento! Con un chip switch PCIe sufficientemente piccolo, potremmo realizzare una scheda PCB M.2 dotata anche di un socket M.2, inserendo uno switch PCIe in mezzo per dividere il collegamento PCIe 1x in entrata in due collegamenti 1x in uscita.
Inoltre, questo problema è già stato risolto in passato. Questo esatto adattatore è già stato realizzato da qualcuno online, tuttavia non è decisamente open source e il suo creatore non ha mai iniziato a venderlo, sostenendo la mancanza di interesse. L'adattatore che stiamo progettando oggi sarà completamente e adeguatamente aperto: chiunque potrà farsi produrre il proprio adattatore come questo se ne avrà bisogno, imparare da esso o remixarlo in qualcos'altro.
Per quanto riguarda lo switch PCIe, l'ultima volta ho menzionato un chip switch PCIe piccolo, economico e poco esplorato: l'ASM1182e, che è in grado di creare due collegamenti PCIe x1 da uno. È facilmente disponibile su Aliexpress, utilizzato su molte schede PCIe provenienti dalla Cina, costa 6 dollari dopo la spedizione e sembra richiedere poca manutenzione: numero ridotto di componenti esterni, funzionamento autonomo, cablaggio semplice. Purtroppo non abbiamo una scheda tecnica che io possa trovare, tuttavia ci sono alcune informazioni che possiamo utilizzare per creare le nostre schede e ti mostrerò come potresti essere in grado di progettare anche attorno ai chip se non hai le loro schede tecniche.
Oggi stiamo risolvendo un problema di vecchia data per una nicchia hardware, creando un adattatore M.2 con tre collegamenti PCIe in totale e decodificando un chip switch PCIe senza schede tecniche disponibili. Mi piacerebbe anche rendere questa tavola densamente popolata come una sfida e mostrarti cosa serve, da una pagina schematica, a una carta assemblata.
Utilizzerò uno dei miei modelli di adattatori M.2 come base per questo progetto, in particolare un adattatore da tasto A+E a tasto M, che ti consente di inserire un SSD nello slot per scheda WiFi di un laptop. Quella è una scheda a due strati perché potrebbe esserlo, ma oggi due strati non bastano: questo progetto avrà bisogno di quattro strati, poiché altrimenti instradare correttamente i collegamenti PCIe e raggiungere ovunque diventerebbe troppo intenso! Se puoi riutilizzare il design di qualcun altro per i tuoi obiettivi, fallo assolutamente: questo ha testato simboli e impronte, il che significa che ci sono meno variabili da ricontrollare! Di conseguenza, non dobbiamo progettare una scheda M.2 da zero.
Lo stesso vale per lo schema di riferimento da cui possiamo decodificare l'ASM1182: nello specifico, proviene da un laptop prodotto in serie. Oggi siamo fortunati: Clevo è una delle rare aziende che ha (o ha avuto) una tradizione di pubblicazione di schemi per i propri laptop, probabilmente aiutata dal fatto che, a differenza di ogni altro produttore di laptop, progettano effettivamente le proprie schede madri. L'unica altra azienda di laptop che ho visto pubblicare schemi è Framework, la cui scheda madre è subappaltata (la norma nello spazio dei laptop), e la loro è parziale con tutta la roba eventualmente soggetta a NDA rimossa. Non ci sono segni di riservatezza di alcun tipo sullo schema che stiamo cercando oggi - tuttavia, non sto fornendo un collegamento, ma è senza dubbio il primo risultato nel tuo motore di ricerca preferito, soprattutto se cerchi P75xZM_ESM.pdf.