CN112115095A - Reconfigurable hardware for Hash algorithm and operation method - Google Patents

Reconfigurable hardware for Hash algorithm and operation method Download PDF

Info

Publication number
CN112115095A
CN112115095A CN202010536168.XA CN202010536168A CN112115095A CN 112115095 A CN112115095 A CN 112115095A CN 202010536168 A CN202010536168 A CN 202010536168A CN 112115095 A CN112115095 A CN 112115095A
Authority
CN
China
Prior art keywords
selector
data processing
prime32
mode
shifter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010536168.XA
Other languages
Chinese (zh)
Other versions
CN112115095B (en
Inventor
李磊
袁涛
王金富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010536168.XA priority Critical patent/CN112115095B/en
Publication of CN112115095A publication Critical patent/CN112115095A/en
Application granted granted Critical
Publication of CN112115095B publication Critical patent/CN112115095B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention provides a reconfigurable hardware for a hash algorithm and an operation method, wherein the hardware comprises: the system comprises a state controller, an arithmetic unit, a plurality of selectors and a state register, wherein the arithmetic unit is used for executing a Hash calculation process; the operation unit is embedded with a plurality of selectors and is used for selecting input parameters of each operation step in the operation flow; the arithmetic unit outputs the arithmetic result of the Hash arithmetic flow to the state register for storage; the state controller controls the operation states of the arithmetic unit, each selector and the state register. The invention can complete the 'multiplication-addition-shift-multiplication' calculation of the strips and the residual data of the hash algorithm by using only one reconfigurable computing unit, thereby reducing the hardware cost.

Description

Reconfigurable hardware for Hash algorithm and operation method
Technical Field
The invention belongs to the technical field of Hash calculation, and particularly relates to a reconfigurable hardware machine operation method for a Hash algorithm.
Background
The hash algorithm utilizes input data to perform hash calculation to obtain a hash value, the data and the corresponding hash value are transmitted through a network, the data and the corresponding hash value are recalculated by utilizing the same hash function at a receiving party, and the received hash value and the recalculated hash value are compared, so that the data integrity is judged. The method is widely applied to the fields of information encryption, data verification, load balancing and the like.
The hash algorithm generally uses platform software to perform operations. In the field of embedded mobile computing, a software computing hash algorithm may not meet the requirements of system performance and other indexes. Particularly, the hardware implementation and hardware optimization of the hash algorithm have high practical application requirements for a system with strict requirements on ultra-low power consumption, high throughput rate and data security. When the existing non-reconfigurable hardware executes the hash algorithm operation, 4 strip data computing units and 2 residual data computing units are needed, and 12 multipliers +6 adders +6 shifters are needed in total. Such an implementation would consume more hardware resources and would have a higher hardware cost.
Disclosure of Invention
In view of the above-mentioned deficiencies of the prior art, the present invention provides a reconfigurable hardware for hash algorithm to solve the above-mentioned technical problems.
The embodiment of the application provides a reconfigurable hardware for a hash algorithm, which comprises:
the system comprises a state controller, an arithmetic unit, a plurality of selectors and a state register, wherein the arithmetic unit is used for executing a Hash calculation process; the operation unit is embedded with a plurality of selectors and is used for selecting input parameters of each operation step in the operation flow; the arithmetic unit outputs the arithmetic result of the Hash calculation flow to the state register for storage; the state controller controls the operation states of the arithmetic unit, each selector and the state register.
Further, the reconfigurable hardware for the hash algorithm further includes:
the arithmetic unit comprises a first multiplier, an adder, a cycle left shifter and a second multiplier, and the plurality of selectors comprise a first selector, a second selector, a third selector and a fourth selector; the state controller is respectively and electrically connected with the second selector, the third selector, the circulating left shifter, the fourth selector and the state register; the input end of the first selector is respectively connected with the data input end and the state register; the output end of the second selector and the output end of the first selector are both connected with the input end of the multiplier; the output end of the third selector and the output end of the multiplier are both connected with the input end of the adder; the input end of the third selector is respectively connected with the initialization parameter channel and the state register; the output end of the adder is connected with the input end of the circulation left shifter; the output end of the circulation left shifter and the fourth selector are both connected with the input end of the second multiplier; the output end of the second multiplier is respectively connected with the output data end and the state register.
Further, the selectable parameters of the second selector include PRIME32_2 ═ 0x85EBCA77U, PRIME32_3 ═ 0xC2B2AE3DU, PRIME32_5 ═ 0x165667B1U, and constant 1; optional parameters of the fourth selector include PRIME32_1 ═ 0x9E3779B1U, PRIME32_4 ═ 0x27D4EB2FU, and constant 1.
Further, the status register includes four register blocks, and the four register blocks store the operation results of the four data channels respectively.
The invention also provides an operation method of the reconfigurable hardware for the hash algorithm, which comprises the following steps:
the state controller monitors the total byte length of effective input data in real time and selects a calculation mode according to the total byte length, wherein the calculation mode comprises a strip data processing mode, a channel aggregation accumulation mode, a first residual data processing mode and a second residual data processing mode;
the state controller switches output parameters by controlling the selector, and sets the calculation mode to be a selected target calculation mode;
and the state controller sets displacement parameters of the cyclic shifter according to the target calculation mode and controls the operation unit to execute the operation on the input data in the target calculation mode.
Further, the selecting a calculation mode according to the total byte length includes:
if the total byte length is not less than 16 bytes, selecting a stripe data processing mode;
if the total bytes are lower than 16 bytes, selecting a channel aggregation accumulation mode, and judging whether the total bytes are not lower than 4 bytes after the execution of the channel aggregation accumulation mode is finished:
if so, selecting a first residual data processing mode;
if not, selecting a second residual data processing mode.
Further, the method further comprises:
the stripe data processing mode comprises a stripe data processing starting step and a stripe data processing circulating step; the configuration parameters of the stripe data processing starting step comprise input data selected by a first selector, PRIME32_2 selected by a second selector, initialization parameters selected by a third selector, setting of a cyclic shifter to be shifted left by 13 bits, and PRIME32_1 selected by a fourth selector; the configuration parameters of the stripe data processing loop step comprise input data selected by a first selector, PRIME32_2 selected by a second selector, an accumulation feedback loop of a state register selected by a third selector, a loop shifter set to shift left by 13 bits, and PRIME32_1 selected by a fourth selector;
the configuration parameters of the channel convergence accumulation mode comprise a channel convergence loop of a state register selected by a first selector, a constant 1 selected by a second selector, an accumulation feedback loop of the state register selected by a third selector, a constant 1 selected by a fourth selector, and a non-displacement setting of a cyclic shifter;
the first residual data processing mode comprises a first residual data processing starting step and a first residual data processing circulating step, the configuration parameters of the first residual data processing starting step comprise first selector selection input data, second selector selection PRIME32_3, third selector selection initialization parameters, circulation shifter setting to shift left by 17 bits, and fourth selector selection PRIME32_ 4; the configuration parameters of the first remaining data processing loop step include first selector selected input data, second selector selected PRIME32_3, accumulation feedback loop of state register selected by third selector, setting of loop shifter to left shift by 17 bits, fourth selector selected PRIME32_ 4;
the second residual data processing mode comprises a second residual data processing starting step and a second residual data processing circulating step, the configuration parameters of the second residual data processing starting step comprise first selector selected input data, second selector selected PRIME32_5, third selector selected initialization parameters, circulating shifter set to shift left by 11 bits, and fourth selector selected PRIME32_ 1; the configuration parameters for the second remaining data processing cycle step include first selector selected input data, second selector selected PRIME32_5, third selector selected status register accumulation feedback loop, cycle shifter set to shift left 11 bits, fourth selector selected PRIME32_ 1.
Further, the method further comprises:
and the state controller performs validity check on the input data and the output data and outputs a check result.
The beneficial effect of the invention is that,
the reconfigurable hardware and the operation method for the Hash algorithm provided by the invention can quickly construct different overall structures according to the index requirements of different systems on Hash calculation by designing the reconfigurable hardware. The typical 'multiplication-addition-shift-multiplication' calculation in the processing of the strip data and the residual data can be completed by one hardware calculation unit, and an adder in the unit can be further multiplexed to complete four-channel convergence accumulation operation. The hardware unit has enough flexibility and constructability, and is beneficial to performing safe hardware xxHash calculation on a special chip or an FPGA platform by adopting low-cost hardware. The reconstruction is realized by switching operands of multiplication and shift operation in the operation unit by the state controller according to the length of the residual data. The invention can complete the 'multiplication-addition-shift-multiplication' calculation of the strips and the residual data of the hash algorithm by using only one reconfigurable computing unit, thereby reducing the hardware cost.
In addition, the invention has reliable design principle, simple structure and very wide application prospect.
Drawings
In order to more clearly illustrate the embodiments or technical solutions in the prior art of the present invention, the drawings used in the description of the embodiments or prior art will be briefly described below, and it is obvious for those skilled in the art to obtain other drawings without creative efforts.
Fig. 1 is a schematic structural diagram of reconfigurable hardware for a hash algorithm according to an embodiment of the present application.
Fig. 2 is an exemplary flowchart of a method for operating reconfigurable hardware for a hashing algorithm according to one embodiment of the present application.
Detailed Description
In order to make those skilled in the art better understand the technical solution of the present invention, the technical solution in the embodiment of the present invention will be clearly and completely described below with reference to the drawings in the embodiment of the present invention, and it is obvious that the described embodiment is only a part of the embodiment of the present invention, and not all embodiments. All other embodiments, which can be obtained by a person skilled in the art without any inventive step based on the embodiments of the present invention, shall fall within the scope of the present invention.
It should be noted that the embodiments and features of the embodiments may be combined with each other without conflict.
In the description of the present invention, it is to be understood that the terms "first", "second", and the like are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or implying any number of technical features indicated. Thus, a feature defined as "first," "second," etc. may explicitly or implicitly include one or more of that feature. In the description of the present invention, "a plurality" means two or more unless otherwise specified.
In the description of the present invention, it should be noted that unless otherwise explicitly stated or limited, the terms "mounted," "connected," and "connected" are to be construed broadly, e.g., as meaning either a fixed connection, a removable connection, or an integral connection; can be mechanically or electrically connected; they may be connected directly or indirectly through intervening media, or they may be interconnected between two elements. The specific meanings of the above terms in the present invention can be understood by those skilled in the art through specific situations.
The term is defined as:
hash: hash (also called hash function, hash), an algorithm that maps input data of arbitrary length to fixed length;
xxHash: an ultra-fast, non-cryptographic hash algorithm invented and sourced by Yann collelet;
checksum: a checksum for a verified set of data;
and (3) hash value: an output value of the hash algorithm;
prime number: among natural numbers greater than 1, a number that cannot be divisionally divided by other natural numbers except 1 and the number itself;
PRIME 32: the 32-bit-wide PRIME numbers used in xxHash, which are 5 in total, are represented by PRIME32_ 1/2/3/4/5;
LZ 4: the invention and open source of a rapid lossless data compression format by Yann Collet;
strip: a group of adjacent 16 bytes of input data;
lane: the lanes, 16 bytes in the stripe, are divided into four lanes lane1/lane2/lane3/lane4, each lane containing 4 bytes of data.
The present invention will be described in detail below with reference to the embodiments with reference to the attached drawings.
Example 1
Referring to fig. 1, the present embodiment provides a reconfigurable hardware for a hash algorithm, which includes the following structures:
the circuit comprises a state controller, an arithmetic unit, a plurality of selectors (selector 0, selector 1, selector 2 and selector 3) and a state register, wherein the arithmetic unit comprises a first multiplier, an adder, a loop left shifter and a second multiplier. The state controller is respectively and electrically connected with the selector 1, the selector 2, the circulation left shifter, the selector 3 and the state register; the input end of the selector 0 is respectively connected with the data input end and the state register; the output end of the selector 1 and the output end of the selector 0 are both connected with the input end of the multiplier; the output end of the selector 2 and the output end of the multiplier are both connected with the input end of the adder; the input end of the selector 2 is respectively connected with an initialization parameter channel and a state register; the output end of the adder is connected with the input end of the circulation left shifter; the output end of the circulation left shifter and the selector 3 are both connected with the input end of the second multiplier; the output end of the second multiplier is respectively connected with the output data end and the state register. Wherein the selectable parameters of the selector 1 include PRIME32_2 ═ 0x85EBCA77U, PRIME32_3 ═ 0xC2B2AE3DU, PRIME32_5 ═ 0x165667B1U, and constant 1; optional parameters of the selector 3 include PRIME32_1 ═ 0x9E3779B1U, PRIME32_4 ═ 0x27D4EB2FU, and constant 1.
The state register is divided into four storage blocks and respectively stores the operation results of the input data of the four channels.
Example 2
The embodiment provides reconfigurable hardware for a hash algorithm, which comprises a state controller, an arithmetic unit, a plurality of selectors and a state register, wherein the arithmetic unit is used for carrying out a hash calculation flow of 'multiply-add-shift-multiply'. The selector is embedded in the operation unit and used for selecting input parameters in the operation process. And the arithmetic unit outputs the arithmetic result to the state register for saving. The state controller controls the operation states of the operation unit, each selector and the state register.
Example 3
Referring to fig. 2, the present embodiment provides a method for operating reconfigurable hardware for a hash algorithm, including the following steps:
s1, the state controller determines whether the input data is valid, and if so, obtains the total byte length of the input data (the total byte length is continuously reduced along with the operation of the hardware, so the total byte length needs to be updated in real time). If the total byte length is not less than 16 bytes, the starting step of the stripe data processing mode is executed first, the state controller controls the selector 0 to select the input data, the selector 1 to select the PRIME32_2, the selector 2 to select the initialization parameter, the circular shifter to be set to shift left by 13 bits, and the selector 3 to select the PRIME32_ 1. Since the stripe data is 16 bytes, the input data of each channel is 4 bytes from four input data, assuming that the input data of the channel 1 is subjected to the operation of 'multiply-add-shift-multiply', an operation value is obtained, the operation value is stored in the storage block 1 corresponding to the channel 1 in the state register, and then the input data of the channel 2, the channel 3 and the channel 4 are operated, so that the operation of one stripe data is completed and the operation result is stored.
After the initial step of the first stripe data is completed, when the subsequent stripe data is processed, the control hardware executes a stripe data processing loop step, and specifically includes that the state controller controls the input data selected by the first selector, the PRIME32_2 selected by the second selector, the accumulation feedback loop of the state register selected by the third selector, the loop shifter is set to shift left by 13 bits, and the PRIME32_1 selected by the fourth selector. In this step, the historical operation value in each memory block in step S1 is substituted into the input data to perform operations such as accumulated displacement until the total byte length of the input data is less than 16 bytes, and a unique operation value corresponding to each channel is obtained.
And S2, when the total byte length of the input data acquired by the state controller is less than 16 bytes, the state controller selects and executes a channel convergence accumulation mode, namely the state controller controls a channel convergence loop of the state register selected by the first selector, a second selector selection constant 1, an accumulation feedback loop of the state register selected by the third selector and a cyclic shifter to be set as no-shift and a fourth selector selection constant 1. In this mode, the operation values of the four channels are accumulated into one accumulated operation value.
After the channel convergence accumulation mode is executed, the state controller selects to execute the remaining data processing mode,
s3, if the initial total byte length of the input data is [4,15], executing a first residual data processing mode, which starts with the following steps: the state controller controls the first selector to select input data, the second selector to select PRIME32_3, the third selector to select initialization parameters, the cyclic shifter to be set to shift left by 17, and the fourth selector to select PRIME32_ 4. At this time, the initial step processes 4 bytes of input data, if the total byte length of the processed input data is not lower than 4 bytes, the loop step is executed, the state controller controls the first selector to select the input data, the second selector to select PRIME32_3, the accumulation feedback loop of the state register selected by the third selector, the loop shifter to be set to shift left by 17 bits, and the fourth selector to select PRIME32_ 4. If the total byte length range of the remaining input parameters is [1,3], executing the step of the second remaining data processing mode.
S4, if the initial input data total byte length range is [1,3], executing a second residual data processing mode starting step, and controlling the first selector to select the input data, the second selector to select PRIME32_5, the third selector to select the initialization parameter, the cyclic shifter to be set to shift left by 11 bits, and the fourth selector to select PRIME32_1 by the state controller. After the initial processing, the remaining input data total byte length range is [1,2], and then the second remaining data processing mode loop step is executed.
The second remaining data processing mode loop step is specifically that the state controller controls the first selector to select the input data, the second selector to select PRIME32_5, the third selector to select the accumulation feedback loop of the state register, the loop shifter to set to shift left by 11 bits, and the fourth selector to select PRIME32_ 1.
As can be seen from fig. 2, the control state machine of the individual reconfigurable computing unit mainly implements control of the following states: the method comprises the steps of resetting state, initial state of strip data processing, initial state of residual data processing 1, initial state of residual data processing 2, circular state of strip data processing, four-channel aggregation accumulation state, circular state of residual data processing 1 and circular state of residual data processing 2.
After each state is processed, the length of the data to be processed is reduced in an accumulated mode according to the data consumption, and if all the data are processed, the state can be returned to the reset state. The switching of each state is entirely determined by the remaining data byte length.
In the stripe data processing, the result can be cached in different state registers each time the operation of one channel is processed. After all the stripe data are processed, the hardware unit can be configured into a four-channel convergence accumulation mode, and the results of all the channels are read from the state register to carry out successive accumulation operation.
The result of the aggregation accumulation also needs to be stored in a state register, then the hardware unit enters a residual data processing state, and the result of each residual data processing is stored in the state register again and fed back to the next residual data processing.
The complete controller state jump includes: the jump condition length represents the byte length of the input data to be processed, and different lengths of the data to be processed determine different calculation states. "continue aggregate accumulation" means to remain in the four-channel aggregate accumulation state until the four-channel accumulation calculation is completed.
On the system application level, especially an embedded platform, the number of required hardware computing units is evaluated according to different input data bit widths and rates, and on the premise of meeting the system performance requirement, the same hardware is reused to the maximum extent to carry out stripe data processing, channel aggregation accumulation and residual data processing. The reconfiguration and system adaptation work of the hardware computing unit can be completed only by adjusting the state controller.
Although the present invention has been described in detail by referring to the drawings in connection with the preferred embodiments, the present invention is not limited thereto. Various equivalent modifications or substitutions can be made on the embodiments of the present invention by those skilled in the art without departing from the spirit and the spirit of the present invention, and these modifications or substitutions are within the scope of the present invention/any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims (8)

1. A reconfigurable hardware for hash algorithms, comprising:
the system comprises a state controller, an arithmetic unit, a plurality of selectors and a state register, wherein the arithmetic unit is used for executing a Hash calculation process; the operation unit is embedded with a plurality of selectors and is used for selecting input parameters of each operation step in the operation flow; the arithmetic unit outputs the arithmetic result of the Hash arithmetic flow to the state register for storage; the state controller controls the operation states of the arithmetic unit, each selector and the state register.
2. The reconfigurable hardware for hash algorithms according to claim 1, wherein said hardware further comprises:
the arithmetic unit comprises a first multiplier, an adder, a cycle left shifter and a second multiplier, and the plurality of selectors comprise a first selector, a second selector, a third selector and a fourth selector; the state controller is respectively and electrically connected with the second selector, the third selector, the circulating left shifter, the fourth selector and the state register; the input end of the first selector is respectively connected with the data input end and the state register; the output end of the second selector and the output end of the first selector are both connected with the input end of the multiplier; the output end of the third selector and the output end of the multiplier are both connected with the input end of the adder; the input end of the third selector is respectively connected with the initialization parameter channel and the state register; the output end of the adder is connected with the input end of the circulation left shifter; the output end of the circulation left shifter and the fourth selector are both connected with the input end of the second multiplier; the output end of the second multiplier is respectively connected with the output data end and the state register.
3. The reconfigurable hardware for hash algorithms according to claim 2, wherein the selectable parameters of the second selector include PRIME32_ 2-0 x85EBCA77U, PRIME32_ 3-0 xC2B2AE3DU, PRIME32_ 5-0 x165667B1U and constant 1; optional parameters of the fourth selector include PRIME32_1 ═ 0x9E3779B1U, PRIME32_4 ═ 0x27D4EB2FU, and constant 1.
4. The reconfigurable hardware for hash algorithms according to claim 1, wherein the status register comprises four register blocks, the four register blocks storing the operation results of four data lanes, respectively.
5. A method of operating reconfigurable hardware for hash algorithms, the method comprising:
the state controller monitors the total byte length of effective input data in real time and selects a calculation mode according to the total byte length, wherein the calculation mode comprises a strip data processing mode, a channel aggregation accumulation mode, a first residual data processing mode and a second residual data processing mode;
the state controller switches output parameters by controlling the selector, and sets the calculation mode to be a selected target calculation mode;
and the state controller sets displacement parameters of the cyclic shifter according to the target calculation mode and controls the operation unit to execute the operation on the input data in the target calculation mode.
6. The method of claim 5, wherein selecting the calculation mode based on the total byte length comprises:
if the total byte length is not less than 16 bytes, selecting a stripe data processing mode;
if the total bytes are lower than 16 bytes, selecting a channel aggregation accumulation mode, and judging whether the total bytes are not lower than 4 bytes after the execution of the channel aggregation accumulation mode is finished:
if so, selecting a first residual data processing mode;
if not, selecting a second residual data processing mode.
7. The method of claim 5, further comprising:
the stripe data processing mode comprises a stripe data processing starting step and a stripe data processing circulating step; the configuration parameters of the stripe data processing starting step comprise input data selected by a first selector, PRIME32_2 selected by a second selector, initialization parameters selected by a third selector, setting of a cyclic shifter to be shifted left by 13 bits, and PRIME32_1 selected by a fourth selector; the configuration parameters of the stripe data processing loop step comprise input data selected by a first selector, PRIME32_2 selected by a second selector, an accumulation feedback loop of a state register selected by a third selector, a loop shifter set to be shifted left by 13 bits, and PRIME32_1 selected by a fourth selector;
the configuration parameters of the channel convergence accumulation mode comprise a channel convergence loop of a state register selected by a first selector, a constant 1 selected by a second selector, an accumulation feedback loop of the state register selected by a third selector, a constant 1 selected by a fourth selector, and a non-displacement setting of a cyclic shifter;
the first residual data processing mode comprises a first residual data processing starting step and a first residual data processing circulating step, the configuration parameters of the first residual data processing starting step comprise first selector selected input data, second selector selected PRIME32_3, third selector selected initialization parameters, a circulating shifter set to shift left by 17 bits, and fourth selector selected PRIME32_ 4; the configuration parameters of the first remaining data processing loop step include first selector selected input data, second selector selected PRIME32_3, accumulation feedback loop of state register selected by third selector, setting of loop shifter to left shift by 17 bits, fourth selector selected PRIME32_ 4;
the second residual data processing mode comprises a second residual data processing starting step and a second residual data processing circulating step, the configuration parameters of the second residual data processing starting step comprise first selector selected input data, second selector selected PRIME32_5, third selector selected initialization parameters, a circulating shifter set to be shifted left by 11 bits, and fourth selector selected PRIME32_ 1; the configuration parameters for the second remaining data processing cycle step include first selector selected input data, second selector selected PRIME32_5, third selector selected status register accumulation feedback loop, cycle shifter set to shift left 11 bits, fourth selector selected PRIME32_ 1.
8. The method of claim 5, further comprising:
and the state controller performs validity check on the input data and the output data and outputs a check result.
CN202010536168.XA 2020-06-12 2020-06-12 Reconfigurable hardware for Hash algorithm and operation method Active CN112115095B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010536168.XA CN112115095B (en) 2020-06-12 2020-06-12 Reconfigurable hardware for Hash algorithm and operation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010536168.XA CN112115095B (en) 2020-06-12 2020-06-12 Reconfigurable hardware for Hash algorithm and operation method

Publications (2)

Publication Number Publication Date
CN112115095A true CN112115095A (en) 2020-12-22
CN112115095B CN112115095B (en) 2022-07-08

Family

ID=73798919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010536168.XA Active CN112115095B (en) 2020-06-12 2020-06-12 Reconfigurable hardware for Hash algorithm and operation method

Country Status (1)

Country Link
CN (1) CN112115095B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113655992A (en) * 2021-08-16 2021-11-16 Oppo广东移动通信有限公司 Hash function circuit, chip and communication equipment
CN116094691A (en) * 2022-12-26 2023-05-09 声龙(新加坡)私人有限公司 Data processing method, device and chip based on workload certification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350716A (en) * 2007-07-20 2009-01-21 飞思卡尔半导体公司 Systems and methods for efficient generation of hash values of varying bit widths
CN106203617A (en) * 2016-06-27 2016-12-07 哈尔滨工业大学深圳研究生院 A kind of acceleration processing unit based on convolutional neural networks and array structure
CN109478251A (en) * 2017-05-23 2019-03-15 上海寒武纪信息科技有限公司 Processing method and accelerator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350716A (en) * 2007-07-20 2009-01-21 飞思卡尔半导体公司 Systems and methods for efficient generation of hash values of varying bit widths
CN106203617A (en) * 2016-06-27 2016-12-07 哈尔滨工业大学深圳研究生院 A kind of acceleration processing unit based on convolutional neural networks and array structure
CN109478251A (en) * 2017-05-23 2019-03-15 上海寒武纪信息科技有限公司 Processing method and accelerator

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113655992A (en) * 2021-08-16 2021-11-16 Oppo广东移动通信有限公司 Hash function circuit, chip and communication equipment
CN113655992B (en) * 2021-08-16 2024-03-15 Oppo广东移动通信有限公司 Hash function circuit, chip and communication equipment
CN116094691A (en) * 2022-12-26 2023-05-09 声龙(新加坡)私人有限公司 Data processing method, device and chip based on workload certification
CN116094691B (en) * 2022-12-26 2023-11-03 声龙(新加坡)私人有限公司 Data processing method, device and chip based on workload certification

Also Published As

Publication number Publication date
CN112115095B (en) 2022-07-08

Similar Documents

Publication Publication Date Title
CN112115095B (en) Reconfigurable hardware for Hash algorithm and operation method
CN109872161B (en) Chip and system for accelerating IOTA sub-chain transaction verification process
EP0942377A1 (en) Method for performing all-to-all communication in parallel computers
JP2008040734A (en) Execution code generation method and program
CN109190413B (en) Serial communication system based on FPGA and MD5 encryption
CN105335331A (en) SHA256 realizing method and system based on large-scale coarse-grain reconfigurable processor
CN113298245B (en) Multi-precision neural network computing device and method based on data flow architecture
CN106708468A (en) Division operation method and device
CN108304344B (en) Computing unit and method for operating same
CN109325590A (en) For realizing the device for the neural network processor that computational accuracy can be changed
Soto et al. Dual entangled polynomial code: Three-dimensional coding for distributed matrix multiplication
CN112839086B (en) Network resource allocation method and device based on block chain fragmentation technology, terminal equipment and storage medium
CN112039767B (en) Multi-data center energy-saving routing method and system based on reinforcement learning
CN109687877A (en) A kind of method and device reducing multiple stage circulation shift network cascade series
CN107092462B (en) 64-bit asynchronous multiplier based on FPGA
CN113300851A (en) DHT-based block chain message broadcasting method, electronic equipment and storage medium
CN113746763A (en) Data processing method, device and equipment
CN113342719B (en) Operation acceleration unit and operation method thereof
CN116760771A (en) On-line monitoring data multichannel transmission control strategy processing method
WO2023050807A1 (en) Data processing method, apparatus, and system, electronic device, and storage medium
CN109672524A (en) SM3 algorithm wheel iteration system and alternative manner based on coarseness reconstruction structure
CN114490458B (en) Data transmission method, chip, server and storage medium
CN102130744A (en) Method and device for computing Cyclic Redundancy Check (CRC) code
CN115080496A (en) Network mapping method, data processing method and device, equipment, system and medium
CN110633574B (en) Elliptic curve cryptography ECC (error correction code) encryption module for power system safety transmission

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant