Um ASIC é uma fábrica de SHA-256
Sem ecrã, sem teclado: um Antminer é uma caixa que recebe corrente, água e trabalho por Ethernet, e que devolve hashes. Selecione um componente para ver para que serve.
Uma hashboard aberta: 216 chips, 18 domínios, uma cadeia
Uma das três placas de hashing, retirada da máquina e explodida: a placa fria e o seu circuito de água em cima, os 216 chips BM1368 ao meio, o circuito impresso e a sua eletrónica em baixo. Os pontos laranja são o trabalho que desce a cadeia de chip em chip; os pontos azuis, os resultados que sobem. Clique num componente.
O chip BM1368 visto de cima
Esquema de princípio: um chip de mineração é quase inteiramente feito do mesmo circuito, repetido centenas de vezes. À volta, apenas o indispensável: distribuição do trabalho, ligação aos chips vizinhos, filtro de resultados, relógio e díodo térmico. Clique numa zona.
Um motor SHA-256: o pipeline implementado em hardware
O duplo SHA-256 gravado em 128 estágios alinhados. Um novo nonce entra a cada tique do relógio e avança um estágio a cada tique: estão 128 cálculos em curso ao mesmo tempo, e sai um hash a cada ciclo. Clique numa parte da linha.
Tampa superior
Chapa de alumínio · sem ventoinhas
Num Antminer arrefecido a ar, a tampa deixa passar o fluxo de quatro ventoinhas ruidosas. Num modelo Hydro, fecha uma caixa praticamente estanque ao ar: todo o calor vai para a água, e a máquina produz apenas cerca de cinquenta decibéis, os da fonte de alimentação.
Placa de controlo
SoC Amlogic A113D ou CVITEK CV1835 · Linux + bmminer
O «cérebro» da máquina, na frente, por baixo da pega. Um pequeno computador ARM executa o firmware: liga-se ao pool de mineração por Ethernet (protocolo Stratum), distribui o trabalho pelas três placas de hashing por ligação série (UART), lê as temperaturas, ajusta frequências e tensões, e desliga tudo em caso de sobreaquecimento. É também ele que aloja a interface web e os botões IP Report / Reset.
- Porta RJ45 10/100, micro-USB de recurso, LED de estado
- Substituível sem tocar nas hashboards
- É aqui que se instala o firmware HappyMining
Cabos planos de dados
3 cabos planos de 18 pinos (2 × 9, passo de 2 mm)
Um cabo plano liga a placa de controlo a cada hashboard. Transporta a ligação série que envia os blocos de trabalho e traz de volta os resultados (os «shares») e as medições de temperatura, além de algumas linhas de alimentação de 3,3 V para a lógica da placa. Um cabo plano mal encaixado é a avaria mais frequente: a placa aparece então como «missing» na interface.
Hashboards (placas de hashing)
3 placas · referência BHB686xx
O coração do ASIC: três placas idênticas, cada uma com 216 chips de mineração, a respetiva alimentação e os respetivos sensores. Os chips estão ligados em cadeia: o comando entra pelo primeiro e propaga-se até ao último. Cada placa armazena a sua própria identidade (EEPROM) e calcula sozinha a sua parte do hashrate; uma máquina funciona, em modo degradado, com uma ou duas placas.
- Circuito impresso multicamada com planos de cobre espessos para as centenas de amperes
- 18 «domínios» de tensão em série, 12 chips em paralelo por domínio
- Face dos chips contra a placa fria, face dos componentes virada para fora
- Amplie ao máximo ou clique em «Hashboard» para abrir uma placa
Chips ASIC BM1368
648 chips (3 × 216) · ≈ 0,5 TH/s cada
ASIC significa Application-Specific Integrated Circuit: um chip que só sabe fazer uma coisa, neste caso calcular SHA-256 duplos, biliões de vezes por segundo. O BM1368 é o chip da geração S21. A versão Hydro tem o dobro dos chips da versão a ar (648 contra 324), cada um um pouco menos exigido: é isso que a torna mais eficiente (16 J/TH contra 17,5).
- Cada chip recebe um intervalo de nonces a testar e devolve os que dão um hash abaixo do alvo
- Um díodo térmico integrado em cada chip
- Se um chip morre, todos os que o seguem na cadeia ficam mudos
Sensores de temperatura
2 por placa (T0 entrada, T1 saída) · barramento I²C
Dois sensores digitais por placa (U4 e U5, designados T0 e T1), um do lado da entrada de água e o outro do lado da saída, medem a temperatura do circuito impresso. Alimentados a 3,3 V pela placa de controlo, são lidos através de um barramento I²C. O firmware vigia a placa e os chips: alarme a 80 °C para a placa e a 95 °C para os chips, seguido de entrada em modo de segurança (Temperature is too high). Amplie uma hashboard (nível seguinte) para ver as suas características.
EEPROM e cristal de quartzo
Identidade da placa · relógio de 25 MHz
Uma pequena memória guarda o número de série da placa, a sua frequência e a sua tensão de fábrica, calibradas no final da produção: é por isso que uma hashboard de S21 não pode ser transplantada para qualquer máquina. Ao lado, um cristal de quartzo de 25 MHz dá o ritmo a toda a cadeia de chips. Na geração S21, a EEPROM substitui o microcontrolador PIC dos S19.
Estágio de alimentação da placa
≈ 21 V → 18 domínios em série · conversor elevador 25 V · LDO
A fonte de alimentação envia cerca de vinte volts diretamente para a placa: são os 18 domínios de chips, empilhados em série, que partilham essa tensão, cerca de 1,1 V cada um. Na frente da placa, um pequeno conversor elevador produz 25 V para a eletrónica de comando, e cada domínio tem os seus próprios reguladores (LDO) para os 1,2 V e os 0,8 V das entradas-saídas dos chips. Bobinas e condensadores absorvem os picos de corrente quando os chips mudam de ritmo.
Conectores de dados
Conector de 2 × 9 pinos em cada placa
O conector onde se liga o cabo plano vindo da placa de controlo. Os seus pinos transportam a ligação série (TX/RX), o sinal de reposição da cadeia, o barramento I²C dos sensores e da EEPROM, e os 3,3 V. Uma chave de polarização evita ligá-lo ao contrário.
Terminais de potência
2 terminais aparafusados por placa · várias centenas de amperes
Uma hashboard de S21 Hydro absorve quase 1 800 W a cerca de vinte volts, ou seja, uma corrente próxima de 90 A: nada a ver com um conector de PC. Dois terminais de cobre, apertados com parafusos às barras da fonte de alimentação, trazem essa corrente. Um parafuso desapertado aquece, enegrece a placa e acaba por causar uma avaria: é um ponto de controlo em cada manutenção.
Placas frias (water blocks)
Alumínio brasado · 8 a 10 L/min · água de 20 a 50 °C
Em vez do radiador de alhetas de um modelo a ar, cada placa está aparafusada contra um bloco de alumínio brasado, escavado com canais por onde circula a água. Os 216 chips estão encostados a ele através de uma pasta térmica. A água entra pela frente, atravessa a placa e sai alguns graus mais quente: 5 kW de calor a recuperar, por exemplo para aquecer um edifício ou uma piscina.
- Água pura, desionizada ou anticongelante conforme o manual, pressão ≤ 3,5 bar
- Ligações rápidas DN10 nos coletores do painel frontal
- Sem circulação de água, os chips ultrapassam 80 °C em poucos segundos: o firmware desliga a máquina
Barras de distribuição
Cobre · da fonte de alimentação às três placas
Duas barras de cobre (+ e −) correm por baixo da frente das placas e ligam os terminais de saída da fonte de alimentação aos terminais das três hashboards. O cobre maciço substitui os cabos: menos resistência, menos aquecimento, e uma montagem que se desmonta com uma única chave.
Fonte de alimentação APW11 (arrefecida a água)
380–415 V trifásico → ~20 V DC · 300 A · 6,5 kW
A fonte de alimentação integrada ocupa todo o lado esquerdo. Converte a corrente trifásica de 380–415 V numa tensão contínua de 17 a 21,6 V, com uma corrente que pode atingir 300 A, e fornece 12 V auxiliares para a placa de controlo. Ela própria é arrefecida pela água do circuito (com a sua própria placa fria, entrada e saída na frente). Rendimento superior a 95 %: os 5 % restantes também vão para a água.
- Cabo LP20 trifásico, não fornecido
- Não funciona em monofásico 230 V sem conversor
- O firmware modula a tensão para os modos de baixo consumo e de alto desempenho
Painel frontal: ligações de água, rede, alimentação
Entrada / saída de água DN10 · coletores · RJ45 · tomada trifásica
Tudo se liga na frente. Uma entrada e uma saída de água principais alimentam dois coletores que servem as três placas frias e a fonte de alimentação. À esquerda, a tomada trifásica da fonte de alimentação, a porta Ethernet, os indicadores luminosos e os botões da placa de controlo, e a etiqueta com o número de série. A máquina encaixa num rack ou num armário Antrack e liga-se em poucos minutos.
Painel traseiro
Fechado: não há ar para expulsar
Onde um modelo a ar expulsa o ar quente através de duas ventoinhas, o modelo Hydro é fechado. As máquinas podem, portanto, ficar encostadas umas às outras num armário, sem corredor quente nem ar condicionado.
Chassis
339 × 173 × 207 mm · 12,3 kg
Uma carcaça em chapa de alumínio com uma divisória entre o compartimento da fonte de alimentação e o compartimento das hashboards, calhas de guia laterais e um fundo que suporta as placas. Leve e compacto: um rack Antrack recebe quatro máquinas Hydro, ou seja, mais de 20 kW de poder de computação num metro quadrado.
Placa fria
Alumínio · encostada aos 216 chips
Um bloco de alumínio escavado com canais, encostado a todos os chips através de uma pasta térmica. No S21 Hydro, não há radiador nem ventoinha: é a água que leva o calor da placa, cerca de 1,8 kW. As duas ligações na frente são a entrada e a saída de água da placa.
Circuito de água da placa
3 a 3,5 L/min · 35 °C → ≈ 43 °C
A água entra pela parte de baixo da placa, percorre metade dos chips até ao fundo, dá meia-volta e sai pela parte de cima. Com 3 a 3,5 litros por minuto e por placa, aquece cerca de 8 °C ao levar 1,8 kW: uma água que entra a 35 °C sai a cerca de 43 °C. Acima de 45 °C à saída, a máquina corre o risco de sobreaquecer; um caudal demasiado baixo ou uma bolha de ar na placa produzem o mesmo efeito.
216 chips BM1368
BM1 → BM216 · ≈ 0,5 TH/s e ≈ 8 W cada
Os chips estão alinhados em 18 colunas de 12. Cada um recebe o seu trabalho através da cadeia, testa milhares de milhões de nonces por segundo e só devolve os que dão um hash suficientemente pequeno. Na vista, um chip acende-se a laranja quando o trabalho passa e a cor-de-rosa quando encontra um resultado. O firmware numera-os de 0 a 215: uma placa em bom estado mostra «ASIC 216/216».
O chip que vamos abrir
BM1, o primeiro da cadeia · nível seguinte
O BM1 é o primeiro chip da cadeia: recebe o trabalho da placa de controlo e transmite-o aos outros 215. Amplie ao máximo, ou clique em «Chip BM1368», para entrar nele.
A cadeia de sinais
CLK, CI, BO, RST: BM1 → BM216 · RO: retorno
Os 216 chips estão ligados uns aos outros por um punhado de sinais, em cadeia:
- CI / CO: o trabalho (cabeçalho de bloco, intervalo de nonces) entra pelo BM1 e desce até ao BM216 (pontos laranja);
- RI / RO: os resultados sobem de chip em chip até ao BM1 e depois para a placa de controlo (pontos azuis);
- CLK: o relógio de 25 MHz, transmitido de chip em chip (a onda que percorre as pistas);
- RST e BI / BO: a reposição e um sinal de controlo, pelo mesmo caminho.
Uma única ligação série controla assim toda a placa. O reverso da medalha: um chip morto corta a cadeia, e todos os que o seguem ficam mudos.
18 domínios de tensão
12 chips em paralelo × 18 domínios em série
Um chip BM1368 contenta-se com cerca de 1,1 V, mas com uma corrente elevada: alimentar os 216 chips em paralelo exigiria mais de 1 500 amperes por placa. A solução: agrupar os chips de 12 em 12 em paralelo (um domínio) e depois empilhar os 18 domínios em série, como as pilhas de uma lanterna. A fonte de alimentação envia cerca de vinte volts e cerca de 85 A; cada domínio fica com 1,1 V e assenta sobre o anterior. É a escada que aparece quando seleciona esta linha.
Sensores de temperatura T0 e T1
U4 / U5 · I²C · 3,3 V · ±1 °C
Dois sensores digitais, um do lado da entrada de água (T0) e o outro do lado da saída (T1), medem a temperatura do circuito impresso. São pequenos encapsulamentos de 8 pinos da família dos TMP75: medição de 12 bits (resolução de 0,0625 °C), precisão da ordem de ±1 °C, lidos pela placa de controlo através de um barramento I²C e alimentados por ela a 3,3 V.
- Alarme a 80 °C para a placa e a 95 °C para os chips
- Um sensor mudo impede a placa de arrancar, por segurança
- A diferença entre T0 e T1 dá uma indicação do caudal de água
EEPROM (U6)
Identidade e calibração da placa · I²C
Uma pequena memória que guarda o número de série da placa, o seu modelo e as suas definições de fábrica (frequência e tensão calibradas no final da produção). O firmware lê-a no arranque; uma EEPROM vazia ou ilegível dá o erro «EEPROM NG» na bancada de testes. Nesta geração, substitui o microcontrolador PIC dos S19.
Quartzo de 25 MHz (Y1)
O relógio de toda a cadeia
Um cristal de quartzo que oscila 25 milhões de vezes por segundo. O seu sinal passa de chip em chip, do BM1 ao BM216, e cada chip multiplica-o com a sua própria PLL para cadenciar os seus motores de hashing a várias centenas de megahertz. Sem ele, nenhum chip responde.
Conector de dados (J1)
TX → BM1 · RX ← BM1 · RST · I²C · 3,3 V
O cabo plano vindo da placa de controlo liga-se aqui. Traz o trabalho (TX, a 3,3 V, ajustado ao nível dos chips por U1), o sinal de reposição, o barramento I²C dos sensores e da EEPROM e os 3,3 V; leva de volta os resultados (RX, via U2). Basta um cabo plano mal encaixado para a placa desaparecer da interface.
Terminais de alimentação
VDD_IN+ / GND · ≈ 20 V · ≈ 85 A
Dois terminais de cobre aparafusados às barras da fonte de alimentação. O negativo (GND) liga ao domínio 1; o positivo (VDD_IN) percorre a placa até ao domínio 18. A corrente atravessa depois os 18 domínios, um após o outro. Não há conversor entre a fonte de alimentação e os chips: é a fonte, controlada pela placa de controlo, que fixa a tensão da placa. Um parafuso desapertado aquece e pode queimar o terminal.
Conversor elevador de 25 V (U9)
Tensão da placa → 25 V
Um pequeno conversor elevador (uma bobina, um chip de comando e condensadores) produz 25 V. Como cada domínio «flutua» acima do anterior, os reguladores dos últimos domínios precisam de uma tensão superior à de toda a placa: são estes 25 V que os alimentam, assim como os últimos level shifters.
Reguladores (LDO)
4 por domínio · 1,2 V e 0,8 V
Cada domínio tem os seus próprios reguladores lineares: um para os 1,2 V e três para os 0,8 V, cada um destes últimos a alimentar 4 chips. Fornecem as tensões dos circuitos de entrada-saída dos chips, medidas em relação à «massa» do respetivo domínio. Os dois últimos domínios, no topo da escada, passam por pré-reguladores MP2019 alimentados pelo conversor elevador.
Level shifters
17 · um em cada degrau entre dois domínios
O domínio 2 está 1,1 V acima do domínio 1, e o domínio 18 quase 20 V acima. Para passar de um domínio ao seguinte, os sinais da cadeia têm de mudar de referência: é essa a função destes 17 tradutores de nível, apoiados por outros tantos amplificadores. Um level shifter avariado corta a cadeia no ponto onde se encontra.
Circuito impresso
Referência BHB686xx · um plano de cobre por domínio
Um circuito multicamada com cerca de 30 cm. Por baixo de cada coluna de chips, um plano de cobre forma o domínio; uma fita de cobre ao longo da margem leva o positivo da alimentação até ao último domínio. A serigrafia numera tudo: BM1 a BM216, D1 a D18, U4 e U5 para os sensores, U6 para a EEPROM, Y1 para o quartzo.
Motores SHA-256
O mesmo circuito, repetido em todo o chip
Quase toda a superfície do chip é ocupada por motores de hashing idênticos, em filas: é isso que o distingue de uma GPU, onde o cálculo partilha o espaço com os escalonadores, os registos e as caches. Todos fazem o mesmo trabalho ao mesmo ritmo, sobre nonces diferentes. Em conjunto, dão ao chip cerca de 500 mil milhões de hashes por segundo (0,5 TH/s).
O motor que vamos abrir
Um motor entre centenas · nível seguinte
Um motor em destaque: é ele que o nível seguinte detalha. Amplie ao máximo para ver o seu pipeline: o duplo SHA-256 implementado em hardware em estágios, nos quais os nonces avançam um estágio a cada ciclo de relógio.
Distribuição do trabalho
Cabeçalho do bloco + intervalos de nonces
O trabalho chega da placa de controlo: o cabeçalho do bloco (cujos primeiros 64 bytes, que não mudam, são pré-calculados uma única vez) e um intervalo de nonces a testar. Esta rede distribui-o por todos os motores, recebendo cada um o seu próprio intervalo para nunca calcular duas vezes a mesma coisa.
Ligação em cadeia
Comandos de um lado, resultados do outro
Os 216 chips de uma hashboard estão ligados em cadeia: cada chip recebe os comandos do anterior e transmite-os ao seguinte, e os resultados sobem no sentido inverso até à placa de controlo. Basta uma única ligação série para controlar toda a placa, mas um chip defeituoso deixa mudos todos os que o seguem.
Filtro de resultados
Só devolve os nonces interessantes
Em biliões de hashes por segundo, apenas uma ínfima parte merece ser comunicada. O chip só devolve os nonces cujo hash fica abaixo de um limiar definido pela placa de controlo: sem este filtro, a ligação série ficaria saturada.
Relógio (PLL)
25 MHz do quartzo → várias centenas de MHz
Um circuito PLL multiplica a frequência do cristal de quartzo da placa para cadenciar os motores. Quanto mais rápido for o relógio, mais o chip calcula, mas também mais consome e aquece: é esta regulação, juntamente com a tensão, que um firmware de otimização como o firmware HappyMining modifica.
Díodo térmico integrado
1 por chip · lido por um sensor externo
Um díodo gravado no silício, cuja tensão varia com a temperatura do chip. Um sensor externo pode lê-lo através de dois pinos dedicados: é assim que os mineradores open source como o Bitaxe medem um BM1368. Na hashboard, a placa é vigiada em contínuo pelos seus dois sensores T0 e T1.
Entrada: cabeçalho e nonce
Um novo nonce a cada tique de relógio
À entrada do pipeline, um registo guarda a parte fixa do cabeçalho do bloco, e um contador fornece um novo nonce a cada ciclo. Assim, um novo cálculo arranca a cada ciclo de relógio, sem esperar que o anterior termine.
64 estágios: primeiro SHA-256
Uma ronda de compressão por estágio, gravada em hardware
Cada estágio é uma ronda da função SHA-256 realizada em circuito: adições de 32 bits, rotações, funções lógicas Ch e Maj, e a constante K da ronda implementada diretamente. Nada é lido da memória, nada é descodificado: o sinal atravessa o estágio e passa ao seguinte no tique de relógio seguinte.
Escalonamento da mensagem
As 64 palavras W, preparadas em paralelo
Ao longo de cada via corre uma segunda linha, mais fina: prepara, a partir da mensagem, as 64 palavras que cada estágio consome. Avança ao mesmo ritmo que os dados, de modo que cada estágio recebe a sua palavra exatamente no momento certo.
64 estágios: segundo SHA-256
O Bitcoin faz hashing duas vezes
O Bitcoin utiliza um duplo SHA-256: o resultado da primeira passagem entra imediatamente numa segunda. No chip, a linha dá meia-volta e encadeia 64 novos estágios: 128 estágios no total entre a entrada e a saída.
Os nonces em trânsito
128 cálculos em curso ao mesmo tempo
Eis o segredo da velocidade: o pipeline. Um cálculo demora 128 ciclos a atravessar o circuito, mas como entra um novo nonce a cada ciclo, 128 nonces são processados ao mesmo tempo, cada um num estágio diferente, e sai um hash a cada ciclo. Nenhum estágio fica à espera: é o débito máximo que o silício permite.
Saída: comparação com o alvo
Zeros suficientes? O nonce é devolvido
À chegada, o hash é comparado com o alvo: se for suficientemente pequeno (se começar por zeros suficientes), o nonce é enviado para o filtro do chip e depois para a placa de controlo; caso contrário, é simplesmente esquecido. A imensa maioria dos cálculos acaba assim, e é normal: minerar é tentar.