Un ASIC è una fabbrica di SHA-256
Niente schermo, niente tastiera: un Antminer è un case che riceve corrente, acqua e lavoro via Ethernet, e restituisce hash. Selezioni un componente per vedere a cosa serve.
Una hashboard aperta: 216 chip, 18 domini, una catena
Una delle tre schede di hashing, estratta dalla macchina e scomposta: la piastra fredda e il relativo circuito dell'acqua in alto, i 216 chip BM1368 al centro, il circuito stampato e la sua elettronica in basso. I punti arancioni sono il lavoro che scende lungo la catena da un chip all'altro; i punti blu, i risultati che risalgono. Clicchi su un componente.
Il chip BM1368 visto dall'alto
Schema di principio: un chip di mining è costituito quasi interamente dallo stesso circuito, ripetuto centinaia di volte. Attorno, solo l'indispensabile: distribuzione del lavoro, collegamento con i chip vicini, filtro dei risultati, clock e diodo termico. Clicchi su una zona.
Un motore SHA-256: la pipeline cablata
Il doppio SHA-256 inciso in 128 stadi allineati. Un nuovo nonce entra a ogni tick di clock e avanza di uno stadio a ogni tick: 128 calcoli sono in corso contemporaneamente e a ogni ciclo esce un hash. Clicchi su una parte della linea.
Copertura superiore
Lamiera di alluminio · nessuna ventola
Su un Antminer raffreddato ad aria, la copertura lascia passare il flusso di quattro rumorose ventole. Su un modello Hydro, chiude un case quasi ermetico all'aria: tutto il calore finisce nell'acqua e la macchina produce solo una cinquantina di decibel, quelli dell'alimentatore.
Scheda di controllo
SoC Amlogic A113D o CVITEK CV1835 · Linux + bmminer
Il «cervello» della macchina, sul lato anteriore sotto la maniglia. Un piccolo computer ARM fa girare il firmware: si connette al pool di mining via Ethernet (protocollo Stratum), distribuisce il lavoro alle tre schede di hashing tramite collegamento seriale (UART), legge le temperature, regola frequenze e tensioni e arresta tutto in caso di surriscaldamento. È sempre questa scheda a ospitare l'interfaccia web e i pulsanti IP Report / Reset.
- Porta RJ45 10/100, micro-USB di emergenza, LED di stato
- Sostituibile senza toccare le hashboard
- È qui che si installa il firmware HappyMining
Cavi piatti dati
3 cavi piatti a 18 pin (2 × 9, passo 2 mm)
Un cavo piatto collega la scheda di controllo a ciascuna hashboard. Trasporta il collegamento seriale che invia i blocchi di lavoro e riporta i risultati (gli «shares») e le misure di temperatura, oltre ad alcune linee di alimentazione a 3,3 V per la logica della scheda. Un cavo piatto inserito male è il guasto più frequente: la scheda appare allora come «missing» nell'interfaccia.
Hashboard (schede di hashing)
3 schede · codice BHB686xx
Il cuore dell'ASIC: tre schede identiche, ciascuna con 216 chip di mining, la relativa alimentazione e i relativi sensori. I chip sono collegati in catena: il comando entra dal primo e si propaga fino all'ultimo. Ogni scheda memorizza la propria identità (EEPROM) e calcola autonomamente la propria quota di hashrate; una macchina funziona, in modalità degradata, anche con una o due schede.
- Circuito stampato multistrato con piani di rame spessi per le centinaia di ampere
- 18 «domini» di tensione in serie, 12 chip in parallelo per dominio
- Lato chip contro la piastra fredda, lato componenti verso l'esterno
- Ingrandisca al massimo o clicchi su «Hashboard» per aprire una scheda
Chip ASIC BM1368
648 chip (3 × 216) · ≈ 0,5 TH/s ciascuno
ASIC significa Application-Specific Integrated Circuit: un chip che sa fare una cosa sola, in questo caso calcolare doppi SHA-256, migliaia di miliardi di volte al secondo. Il BM1368 è il chip della generazione S21. La versione Hydro ne integra il doppio rispetto alla versione ad aria (648 contro 324), ciascuno spinto un po' meno: è ciò che la rende più efficiente (16 J/TH contro 17,5).
- Ogni chip riceve un intervallo di nonce da provare e restituisce quelli che producono un hash inferiore al target
- Un diodo termico integrato in ogni chip
- Se un chip muore, tutti quelli che lo seguono nella catena diventano muti
Sensori di temperatura
2 per scheda (T0 ingresso, T1 uscita) · bus I²C
Due sensori digitali per scheda (U4 e U5, indicati come T0 e T1), uno sul lato di ingresso dell'acqua, l'altro sul lato di uscita, misurano la temperatura del circuito stampato. Alimentati a 3,3 V dalla scheda di controllo, vengono letti su un bus I²C. Il firmware sorveglia la scheda e i chip: allarme a 80 °C per la scheda, a 95 °C per i chip, poi messa in sicurezza (Temperature is too high). Ingrandisca una hashboard (livello successivo) per vederne le caratteristiche.
EEPROM e quarzo
Identità della scheda · clock a 25 MHz
Una piccola memoria conserva il numero di serie della scheda, la sua frequenza e la sua tensione di fabbrica, calibrate a fine produzione: per questo una hashboard di S21 non si può trapiantare ovunque. Accanto, un quarzo a 25 MHz dà il ritmo a tutta la catena di chip. Nella generazione S21, l'EEPROM sostituisce il microcontrollore PIC degli S19.
Stadio di alimentazione della scheda
≈ 21 V → 18 domini in serie · boost 25 V · LDO
L'alimentatore invia una ventina di volt direttamente alla scheda: sono i 18 domini di chip, impilati in serie, a suddividersi questa tensione, circa 1,1 V ciascuno. Sul lato anteriore della scheda, un piccolo convertitore boost genera 25 V per l'elettronica di comando, e ogni dominio ha i propri regolatori (LDO) per gli 1,2 V e gli 0,8 V degli ingressi-uscite dei chip. Induttori e condensatori assorbono i picchi di corrente quando i chip cambiano ritmo.
Connettori dati
Header a 2 × 9 pin su ogni scheda
L'header in cui si inserisce il cavo piatto proveniente dalla scheda di controllo. I suoi pin trasportano il collegamento seriale (TX/RX), il segnale di reset della catena, il bus I²C dei sensori e dell'EEPROM e i 3,3 V. Una chiave di polarizzazione impedisce di inserirlo al contrario.
Morsetti di potenza
2 morsetti a vite per scheda · diverse centinaia di ampere
Una hashboard di S21 Hydro assorbe quasi 1.800 W a una ventina di volt, ovvero una corrente vicina ai 90 A: niente a che vedere con un connettore da PC. Due morsetti in rame, serrati a vite sulle barre dell'alimentatore, portano questa corrente. Una vite allentata scalda, annerisce la scheda e finisce per causare un guasto: è un punto da controllare a ogni manutenzione.
Piastre fredde (water block)
Alluminio brasato · 8-10 L/min · acqua da 20 a 50 °C
Al posto del radiatore alettato di un modello ad aria, ogni scheda è avvitata contro un blocco di alluminio brasato, percorso da canali in cui circola l'acqua. I 216 chip vi sono premuti contro attraverso una pasta termica. L'acqua entra dal lato anteriore, attraversa la piastra ed esce riscaldata di qualche grado: 5 kW di calore da recuperare, per esempio per riscaldare un edificio o una piscina.
- Acqua pura, deionizzata o antigelo secondo il manuale, pressione ≤ 3,5 bar
- Raccordi rapidi DN10 sui collettori del pannello frontale
- Senza circolazione d'acqua, i chip superano gli 80 °C in pochi secondi: il firmware interrompe tutto
Barre di distribuzione
Rame · dall'alimentatore alle tre schede
Due barre di rame (+ e −) corrono sotto la parte anteriore delle schede e collegano i morsetti di uscita dell'alimentatore ai morsetti delle tre hashboard. Il rame massiccio sostituisce i cavi: meno resistenza, meno riscaldamento e un assemblaggio che si smonta con una sola chiave.
Alimentatore APW11 (raffreddato ad acqua)
380–415 V trifase → ~20 V DC · 300 A · 6,5 kW
L'alimentatore integrato occupa tutto il fianco sinistro. Trasforma la corrente trifase a 380–415 V in una tensione continua da 17 a 21,6 V, con una corrente che può raggiungere i 300 A, e fornisce una tensione ausiliaria a 12 V per la scheda di controllo. È a sua volta raffreddato dall'acqua del circuito (con una propria piastra fredda, ingresso e uscita sul lato anteriore). Rendimento superiore al 95 %: anche il restante 5 % finisce nell'acqua.
- Cavo LP20 trifase, non incluso
- Nessun funzionamento in monofase a 230 V senza convertitore
- Il firmware modula la tensione per le modalità a basso consumo e ad alte prestazioni
Pannello frontale: raccordi dell'acqua, rete, alimentazione
Ingresso / uscita acqua DN10 · collettori · RJ45 · presa trifase
Tutto si collega sul lato anteriore. Un ingresso e un'uscita principali dell'acqua alimentano due collettori che servono le tre piastre fredde e l'alimentatore. A sinistra, la presa trifase dell'alimentatore, la porta Ethernet, le spie e i pulsanti della scheda di controllo, l'etichetta con il numero di serie. La macchina si inserisce in un rack o in un armadio Antrack e si collega in pochi minuti.
Pannello posteriore
Chiuso: nessuna aria da espellere
Laddove un modello ad aria espelle l'aria calda tramite due ventole, il modello Hydro è chiuso. Le macchine possono quindi essere accostate le une alle altre in un armadio, senza corridoio caldo né climatizzazione.
Chassis
339 × 173 × 207 mm · 12,3 kg
Un guscio in lamiera di alluminio con una paratia tra il vano dell'alimentatore e il vano delle hashboard, guide laterali e un fondo che sostiene le schede. Leggero e compatto: un rack Antrack accoglie quattro macchine Hydro, ovvero oltre 20 kW di potenza di calcolo in un metro quadrato.
Piastra fredda
Alluminio · premuta sui 216 chip
Un blocco di alluminio percorso da canali, premuto su tutti i chip attraverso una pasta termica. Sull'S21 Hydro non ci sono né radiatore né ventola: è l'acqua a portare via il calore della scheda, circa 1,8 kW. I due raccordi sul lato anteriore sono l'ingresso e l'uscita dell'acqua della scheda.
Circuito dell'acqua della scheda
Da 3 a 3,5 L/min · 35 °C → ≈ 43 °C
L'acqua entra dalla parte inferiore della scheda, costeggia metà dei chip fino in fondo, fa inversione a U ed esce dalla parte superiore. Con 3-3,5 litri al minuto per scheda, si riscalda di circa 8 °C portando via 1,8 kW: un'acqua che entra a 35 °C esce a circa 43 °C. Oltre i 45 °C in uscita, la macchina rischia il surriscaldamento; una portata troppo bassa o una bolla d'aria nella piastra producono lo stesso effetto.
216 chip BM1368
BM1 → BM216 · ≈ 0,5 TH/s e ≈ 8 W ciascuno
I chip sono allineati in 18 colonne da 12. Ognuno riceve il proprio lavoro attraverso la catena, prova miliardi di nonce al secondo e restituisce solo quelli che producono un hash abbastanza piccolo. Nella vista, un chip si illumina di arancione quando passa il lavoro, di rosa quando trova un risultato. Il firmware li numera da 0 a 215: una scheda sana mostra «ASIC 216/216».
Il chip che stiamo per aprire
BM1, il primo della catena · livello successivo
BM1 è il primo chip della catena: riceve il lavoro dalla scheda di controllo e lo trasmette agli altri 215. Ingrandisca al massimo, o clicchi su «Chip BM1368», per entrarvi.
La catena di segnali
CLK, CI, BO, RST: BM1 → BM216 · RO: ritorno
I 216 chip sono collegati l'uno all'altro da una manciata di segnali, in catena:
- CI / CO: il lavoro (header del blocco, intervallo di nonce) entra da BM1 e scende fino a BM216 (punti arancioni);
- RI / RO: i risultati risalgono da un chip all'altro fino a BM1, poi verso la scheda di controllo (punti blu);
- CLK: il clock a 25 MHz, trasmesso da un chip all'altro (l'onda che percorre le piste);
- RST e BI / BO: il reset e un segnale di controllo, sullo stesso percorso.
Un solo collegamento seriale pilota così tutta la scheda. Il rovescio della medaglia: un chip morto interrompe la catena e tutti quelli che lo seguono diventano muti.
18 domini di tensione
12 chip in parallelo × 18 domini in serie
Un chip BM1368 si accontenta di circa 1,1 V, ma con una corrente elevata: alimentare i 216 chip in parallelo richiederebbe più di 1.500 ampere per scheda. La soluzione: raggruppare i chip a gruppi di 12 in parallelo (un dominio), poi impilare i 18 domini in serie, come le pile di una torcia elettrica. L'alimentatore invia una ventina di volt e circa 85 A; ogni dominio ne preleva 1,1 V e poggia sul precedente. È la scala che compare quando seleziona questa riga.
Sensori di temperatura T0 e T1
U4 / U5 · I²C · 3,3 V · ±1 °C
Due sensori digitali, uno sul lato di ingresso dell'acqua (T0), l'altro sul lato di uscita (T1), misurano la temperatura del circuito stampato. Sono piccoli package a 8 pin della famiglia dei TMP75: misura a 12 bit (risoluzione di 0,0625 °C), precisione dell'ordine di ±1 °C, letti dalla scheda di controllo su un bus I²C e da essa alimentati a 3,3 V.
- Allarme a 80 °C per la scheda, a 95 °C per i chip
- Un sensore muto impedisce l'avvio della scheda, per sicurezza
- La differenza tra T0 e T1 fornisce indicazioni sulla portata d'acqua
EEPROM (U6)
Identità e calibrazione della scheda · I²C
Una piccola memoria che conserva il numero di serie della scheda, il suo modello e le sue impostazioni di fabbrica (frequenza e tensione calibrate a fine produzione). Il firmware la legge all'avvio; una EEPROM vuota o illeggibile genera l'errore «EEPROM NG» al banco di prova. In questa generazione sostituisce il microcontrollore PIC degli S19.
Quarzo 25 MHz (Y1)
Il clock di tutta la catena
Un quarzo che oscilla 25 milioni di volte al secondo. Il suo segnale passa da un chip all'altro, da BM1 a BM216, e ogni chip lo moltiplica con il proprio PLL per cadenzare i suoi motori di hashing a diverse centinaia di megahertz. Senza di esso, nessun chip risponde.
Connettore dati (J1)
TX → BM1 · RX ← BM1 · RST · I²C · 3,3 V
Il cavo piatto proveniente dalla scheda di controllo si collega qui. Porta il lavoro (TX, a 3,3 V, riportato al livello dei chip da U1), il segnale di reset, il bus I²C dei sensori e dell'EEPROM e i 3,3 V; riporta indietro i risultati (RX, tramite U2). Basta un cavo piatto inserito male perché la scheda scompaia dall'interfaccia.
Morsetti di alimentazione
VDD_IN+ / GND · ≈ 20 V · ≈ 85 A
Due morsetti in rame avvitati alle barre dell'alimentatore. Il negativo (GND) raggiunge il dominio 1; il positivo (VDD_IN) percorre la scheda fino al dominio 18. La corrente attraversa poi i 18 domini uno dopo l'altro. Non c'è alcun convertitore tra l'alimentatore e i chip: è l'alimentatore, pilotato dalla scheda di controllo, a fissare la tensione della scheda. Una vite allentata scalda e può bruciare il morsetto.
Convertitore boost 25 V (U9)
Tensione della scheda → 25 V
Un piccolo convertitore elevatore (un induttore, un chip di controllo e alcuni condensatori) genera 25 V. Poiché ogni dominio «fluttua» più in alto del precedente, i regolatori degli ultimi domini hanno bisogno di una tensione superiore a quella dell'intera scheda: sono questi 25 V ad alimentarli, insieme agli ultimi level shifter.
Regolatori (LDO)
4 per dominio · 1,2 V e 0,8 V
Ogni dominio ha i propri regolatori lineari: uno per gli 1,2 V, tre per gli 0,8 V, ciascuno dei quali alimenta 4 chip. Forniscono le tensioni dei circuiti di ingresso-uscita dei chip, misurate rispetto alla «massa» del rispettivo dominio. Gli ultimi due domini, in cima alla scala, passano attraverso pre-regolatori MP2019 alimentati dal convertitore boost.
Level shifter
17 · uno a ogni gradino tra due domini
Il dominio 2 si trova 1,1 V più in alto del dominio 1, il dominio 18 quasi 20 V più in alto. Per passare da un dominio al successivo, i segnali della catena devono cambiare riferimento: è il ruolo di questi 17 traslatori di livello, affiancati da altrettanti amplificatori. Un level shifter guasto interrompe la catena nel punto in cui si trova.
Circuito stampato
Codice BHB686xx · un piano di rame per dominio
Un circuito multistrato di circa 30 cm. Sotto ogni colonna di chip, un piano di rame forma il dominio; una striscia di rame lungo il bordo porta il positivo dell'alimentazione fino all'ultimo dominio. La serigrafia numera tutto: da BM1 a BM216, da D1 a D18, U4 e U5 per i sensori, U6 per l'EEPROM, Y1 per il quarzo.
Motori SHA-256
Lo stesso circuito, ripetuto su tutto il chip
Quasi tutta la superficie del chip è occupata da motori di hashing identici, disposti in file: è ciò che lo distingue da una GPU, dove il calcolo condivide lo spazio con scheduler, registri e cache. Tutti svolgono lo stesso lavoro allo stesso ritmo, su nonce diversi. Insieme, conferiscono al chip circa 500 miliardi di hash al secondo (0,5 TH/s).
Il motore che stiamo per aprire
Un motore tra centinaia · livello successivo
Un motore evidenziato: è quello che il livello successivo descrive in dettaglio. Ingrandisca al massimo per vedere la sua pipeline: il doppio SHA-256 cablato in stadi, in cui i nonce avanzano di uno stadio a ogni ciclo di clock.
Distribuzione del lavoro
Header del blocco + intervalli di nonce
Il lavoro arriva dalla scheda di controllo: l'header del blocco (i cui primi 64 byte, che non cambiano, vengono precalcolati una sola volta) e un intervallo di nonce da provare. Questa rete lo distribuisce a tutti i motori, ognuno dei quali riceve il proprio intervallo per non calcolare mai due volte la stessa cosa.
Collegamento a catena
Comandi da un lato, risultati dall'altro
I 216 chip di una hashboard sono collegati in catena: ogni chip riceve i comandi dal precedente e li trasmette al successivo, e i risultati risalgono nella direzione opposta fino alla scheda di controllo. Basta un solo collegamento seriale per pilotare tutta la scheda, ma un chip difettoso rende muti tutti quelli che lo seguono.
Filtro dei risultati
Restituisce solo i nonce interessanti
Su migliaia di miliardi di hash al secondo, solo una parte infinitesimale merita di essere segnalata. Il chip restituisce solo i nonce il cui hash scende sotto una soglia fissata dalla scheda di controllo: senza questo filtro, il collegamento seriale sarebbe saturo.
Clock (PLL)
25 MHz dal quarzo → diverse centinaia di MHz
Un circuito PLL moltiplica la frequenza del quarzo della scheda per cadenzare i motori. Più il clock è veloce, più il chip calcola, ma più consuma e scalda: è questa regolazione, insieme alla tensione, che modifica un firmware di ottimizzazione come il firmware HappyMining.
Diodo termico integrato
1 per chip · letto da un sensore esterno
Un diodo inciso nel silicio, la cui tensione varia con la temperatura del chip. Un sensore esterno può leggerlo tramite due pin dedicati: è così che i miner open source come il Bitaxe misurano un BM1368. Sulla hashboard, la scheda è monitorata di continuo dai suoi due sensori T0 e T1.
Ingresso: header e nonce
Un nuovo nonce a ogni tick di clock
All'ingresso della pipeline, un registro conserva la parte fissa dell'header del blocco e un contatore fornisce un nuovo nonce a ogni ciclo. In questo modo un nuovo calcolo parte a ogni ciclo di clock, senza attendere che il precedente sia terminato.
64 stadi: primo SHA-256
Un round di compressione per stadio, inciso in hardware
Ogni stadio è un round della funzione SHA-256 realizzato in circuito: addizioni a 32 bit, rotazioni, funzioni logiche Ch e Maj, e la costante K del round cablata direttamente. Nulla viene letto dalla memoria, nulla viene decodificato: il segnale attraversa lo stadio e passa al successivo al tick di clock seguente.
Pianificazione del messaggio
Le 64 parole W, preparate in parallelo
Lungo ogni corsia corre una seconda linea, più sottile: a partire dal messaggio prepara le 64 parole che ogni stadio consuma. Avanza allo stesso ritmo dei dati, così che ogni stadio riceve la sua parola esattamente al momento giusto.
64 stadi: secondo SHA-256
Bitcoin esegue l'hash due volte
Il bitcoin utilizza un doppio SHA-256: il risultato del primo passaggio riparte subito in un secondo. Sul chip, la linea fa inversione a U e concatena 64 nuovi stadi: 128 stadi in totale tra l'ingresso e l'uscita.
I nonce in viaggio
128 calcoli in corso contemporaneamente
Ecco il segreto della velocità: la pipeline. Un calcolo impiega 128 cicli per attraversare il circuito, ma poiché a ogni ciclo entra un nuovo nonce, 128 nonce vengono elaborati contemporaneamente, ciascuno in uno stadio diverso, e a ogni ciclo esce un hash. Nessuno stadio resta in attesa: è il throughput massimo consentito dal silicio.
Uscita: confronto con il target
Abbastanza zeri? Il nonce viene restituito
All'arrivo, l'hash viene confrontato con il target: se è abbastanza piccolo (se inizia con abbastanza zeri), il nonce viene inviato al filtro del chip e poi alla scheda di controllo; altrimenti viene semplicemente scartato. La stragrande maggioranza dei calcoli finisce così, ed è normale: minare significa provare.