US2017242475A1PendingUtilityA1

Method and system for reducing power consumption in bitcoin mining via waterfall structure

Assignee: SPONDOOLIES TECH LTDPriority: Oct 30, 2014Filed: Oct 29, 2015Published: Aug 24, 2017
Est. expiryOct 30, 2034(~8.3 yrs left)· nominal 20-yr term from priority
G06F 1/324G06Q 20/3672G06F 1/3237G06Q 20/065H04L 9/0643G06F 1/3287G06Q 20/06G06Q 20/36H04L 2209/125
28
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method and engine for hash calculation, the method comprising receiving data blocks via an input module, providing clock cycles by a clock module, calculating a hash from a received data block by a process module including a data pipeline and a state pipeline, the hash calculation comprising: an input data block to the data pipeline, the data block includes a sequence of data words including X data words, wherein X is a known number, calculating, in every other clock cycle of the clock module, an new data word based on the last calculated X data words, and performing a stage of the state pipeline in each clock cycle of the clock module, in which a state is calculated based on input from the data pipeline, the input includes the last calculated X data words, and outputting the hash via an output module every predetermined number of clock cycles.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A hash engine comprising:
 an input module for receiving data blocks;   a memory;   a clock module to provide clock cycles;   a process module including a data pipeline and a state pipeline for calculating a hash from a received data block, the process module is configured to:
 receive an input data block to the data pipeline, the data block includes a sequence of data words including X data words, wherein X is a known number; 
 calculate, in every clock cycle of the clock module, a new data word based on the last calculated X data words; and 
 perform a stage of the state pipeline in each clock cycle of the clock module, in which a state is calculated based on input from the data pipeline, the input includes the last calculated X data words; and 
   an output module to output the hash every predetermined number of clock cycles.   
     
     
         2 . The engine of  claim 1 , wherein X is equal 16, and wherein each data word is of 32 bits. 
     
     
         3 . The engine of  claim 1 , wherein the calculated state includes a sequence of eight state words, wherein the process module is further configured to calculate, in each clock cycle, a first and fifth new state words of the sequence, in order to form a new state of sequenced eight words based of the previous state's words. 
     
     
         4 . The engine of  claim 1 , wherein after X clock cycles, a new input data block is inserted instead of the first X data words of the previously inserted input data block. 
     
     
         5 . The engine of  claim 1 , wherein the engine has an array arrangement, the array has X columns to which input data blocks can be inserted, wherein the engine is configured to receive a new input data blocks to another of the X columns on every clock cycle, once the first X data words in the column become irrelevant. 
     
     
         6 . The engine of  claim 5 , wherein each column may include up to four different input data blocks in process. 
     
     
         7 . The engine of  claim 5 , further configured to provide to a row in said array arrangement, in each clock cycle, multiplexed values from previous rows, to demultiplex the multiplexed values in order to create a new data word in a selected column, and to generate multiplexed word values by multiplexing data words of the row, for generating new words in following rows. 
     
     
         8 . The engine of  claim 3 , wherein the engine has an array arrangement in the state pipeline, the array has four columns, to which state sequences can be inserted, each state sequence is represented by four couples of a first and a fifth words, wherein the engine is further configured to receive a new state sequence to another of the four columns on every clock cycle, once the first four couples in the column become irrelevant. 
     
     
         9 . The engine of  claim 8 , further configured to provide to a row in said array arrangement, in each clock cycle, multiplexed values from previous rows, to demultiplex the multiplexed values in order to create a new state word in a selected column, and to generate multiplexed word values by multiplexing state words of the row, for generating new words in following rows. 
     
     
         10 . A method for hash calculation, the method comprising:
 receiving data blocks via an input module;   providing clock cycles by a clock module;   calculating a hash from a received data block by a process module including a data pipeline and a state pipeline, the hash calculation comprising:
 receiving an input data block to the data pipeline, the data block includes a sequence of data words including X data words, wherein X is a known number; 
 calculating, in every clock cycle of the clock module, a new data word based on the last calculated X data words; and 
 performing a stage of the state pipeline in each clock cycle of the clock module, in which a state is calculated based on input from the data pipeline, the input includes the last calculated X data words; and 
   outputting the hash via an output module every predetermined number of clock cycles.   
     
     
         11 . The method of  claim 10 , wherein X is equal 16, and wherein each data word is of 32 bits. 
     
     
         12 . The method of  claim 10 , wherein the calculated state includes a sequence of eight state words, wherein the method further comprises calculating, in each clock cycle, a first and fifth new state words of the sequence, in order to form a new state of sequenced eight words based of the previous state's words. 
     
     
         13 . The method of  claim 10 , further comprising inserting, after X clock cycles, a new input data block instead of the first X data words of the previously inserted input data block. 
     
     
         14 . The method of  claim 10 , wherein the engine has an array arrangement, the array has X columns to which input data blocks can be inserted, wherein the method further comprises receiving a new input data blocks to another of the X columns on every clock cycle, once the first X data words in the column become irrelevant. 
     
     
         15 . The method of  claim 14 , wherein each column may include up to four different input data blocks in process. 
     
     
         16 . The method of  claim 14 , further comprising providing to a row in said array arrangement, in each clock cycle, multiplexed values from previous rows, demultiplexing the multiplexed values in order to create a new data word in a selected column, and generating multiplexed word values by multiplexing data words of the row, for generating new words in following rows. 
     
     
         17 . The method of  claim 12 , wherein the engine has an array arrangement in the state pipeline, the array has four columns, to which state sequences can be inserted, each state sequence is represented by four couples of a first and a fifth words, wherein the method further comprises receiving a new state sequence to another of the four columns on every clock cycle, once the first four couples in the column become irrelevant. 
     
     
         18 . The method of  claim 17 , further comprising providing to a row in said array arrangement, in each clock cycle, multiplexed values from previous rows, demultiplexing the multiplexed values in order to create a new state word in a selected column, and generating multiplexed word values by multiplexing state words of the row, for generating new words in following rows.

Join the waitlist — get patent alerts

Track US2017242475A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.