Under the hood, Bitfury Clarke - how our new mining chip works

At the end of September, we submitted 3r33232. A new ASIC chip designed specifically for SHA256 mining in the Bitcoin network. Today will tell what's inside.
use decomposition in a modified Taylor series.
Hashes in the bitcoin blockchain are calculated using the SHA256 algorithm. It includes 64 iterations, during which there is a "mixing" of the transaction bits in the block using the shift and "modulo 2 addition" operations. The result of using the SHA256 function is considered irreversible; for this reason, the target hash is found by brute force. Learn more about mining and mining pools, in which participants of blockchain networks are combined to speed up the solution of the blocks, 3r343. we wrote in our blog
Previously, CPUs and GPUs were used to iterate over nonce values ​​and hash selection, but over time, due to the ever-increasing mining complexity (it changes depending on the total computing power of all participants in the bitcoin network), specialized integrated circuits 3r3493 were designed. ASIC 3r33215. .
We at Bitfury are also developing such solutions. In total, we created five generations of mining chips, and in September, 3r-354. presented the sixth r3r3215. - Speech about Clarke's ASIC, sharpened specifically for the SHA256 hashes solution.
3r3202. How does the Clarke
Clarke is made on 14-nm process technology and implemented in the form factor 3r363. FC
-LGA 35L size 6x6 mm. The second case has a more efficient wiring of power circuits on the board. Chip per second solves 120 gigagesh, but makes it possible adjust the performance depending on what the miner needs now - a larger hashrate or lower power consumption. In particular, an energy efficiency factor of 55 mJ /gigahesh can be achieved, since 0.3 volts is enough to power the chip. The structure of Clarke is as follows:
Under the hood, Bitfury Clarke - how our new mining chip works

Clock Generator. He sets the clock for the chip. Voltage levels : VSS = ? VDD = 1.
Serial control interface connected to an external serial bus controller. It looks like SPI bus. with MOSI and MISO data transfer contacts (used to transfer data from the master to the slave and vice versa), combined by the SDATA line.
The interface is responsible for transmitting commands. Here are some of them: task write to write a new task, force task switch to force buffer switching, read nonces to read nonce values, etc. All commands have one pattern and contain code, length, data field, chip status byte, data from buffer nonce and checksums.

Checksums are the arithmetic sum of bytes, starting with zero. [i] For example, the checksum of the command ??? 8c ??? will be equal to AE. 3r3102.
Control system nonce. Manages the process of calculating the hash with the mask The mask “lies” in the task buffer and is used to set the range of calculations. It defines bits in the nonce that will remain unchanged when searching for a new value.
Task buffers Need to calculate hashes (their length is 20 double words). There are two buffers in total, which allows you to quickly switch between tasks. While the first buffer is occupied by the hash solution, data for the next calculations is written in the second.
8154 kernel ring hash. They use the double SHA256 algorithm.
Nonce buffer. This is a circular buffer with a length of 12 double words, where hash solutions are written. For 3r3127. example
we led the process of data exchange in the chip, which occurs during the calculation of hashes (in the spoiler below):
3r3133. Data exchange in the chip (in English) 3r3135.
[sub] //Program clock generator to value 0x20 and prescaler = 1 (disabled) Send: 0803038c1800
Recv: f0b200b2
//Set nonce mask to 0x00000000
Send: 200300000000 Recv: f0230023
//Force task switch Send: 020000
Recv: f0020002
//Send task
Wi 0 = CD3F992C 1 = 037F8197 2 = A58E091A
MS0 A = 0CAD7CD1 B = CBE38FD9 C = D14DC164 D = F90EB10B E = 819621CF F = 358D45 CD NONCE = D5D0E8B9 3r33232.  
Send: _014fa607d67b614925737be76bce53a41ba12b3c8b659f27ef6726be6049f924522d2b3c8b659c78616c779 a13c81a609
35067953386a9d52b3d0f24a3b0a607d67bb2a8cc5326708e0ef55b267700000000 Recv: 0fb200b2
//Force task switch
Send: 020000
Recv: 0f020002
//Read nonce buffer
Send: 040000 Recv: _0f0400000000000000000000000000000000000000000000000000003ffffffc7f7a42132ffffffc 1ffffffc0001ffbf8c
FIFO[0]= aaaaaaaa
FIFO[1]= aaaaaaaa
FIFO[2]= aaaaaaaa
FIFO[3]= aaaaaaaa
FIFO[4]= aaaaaaaa
FIFO[5]= aaaaaaaa
FIFO[6]= aaaaaaaa
FIFO[7]= 3ffffffc
FIFO[8]= d5d0e8b9 < — nonce value
FIFO[9]= 2ffffffc < — task switch marker
FIFO[A]= 1ffffffc < — task switch marker
FIFO[B]= aaab5515
3r3202. Where will be used chip 3r3203.
Now we are installing new devices in our own mining servers and mobile data centers 3r3206. Blockbox
. We also modify bitcoin farms in Canada, Iceland, Georgia and Norway (3-33208. Launched at the beginning of the year 3-333215.).
Clarke chips will be available as a commercial product. In particular, they are delivered together with miners 3-3-33214. Bitfury Tardis
designed for large organizations. In Tardis, there are 5–8 boards capable of calculating up to 80 teraheshes per second.
According to our data, this is the only miner on the market that can be upgraded - in the future, the ASIC Clarke installed in it will be replaced with new chips.
This is our short video introducing the concept of a new chip:
+ 0 -

Add comment