IP Library › Granted Patent US 11,658,807
Granted Patent B2
US 11,658,807 · App. 17/630,881 · Granted May 23, 2023

Circuit for performing hash algorithm, computing chip, data processing device and method

Inventors: Zhijun Fan (Guangdong, CN); Ke Xue (Guangdong, CN); Chao Xu (Guangdong, CN); Zuoxing Yang (Guangdong, CN)
Assignee: SHENZHEN MICROBT ELECTRONICS TECHNOLOGY CO., LTD.
H04L9/0643
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,658,807
App. No.
17/630,881
Granted
May 23, 2023
Kind
B2
Abstract

The present disclosure relates to a circuit for performing a hash algorithm, computing chip, data processing device and method. A circuit includes: operation stages in a pipeline structure each including 0th to 15th expansion registers; expansion data operation logic modules each disposed between two adjacent operation stages including a first operation stage and its subsequent second operation stage, and including a first sub-module configured to compute data in a 0th expansion register of the second operation stage based on data in a 1st expansion register of the first operation stage and a second sub-module configured to compute data in a 15th expansion register of the second operation stage based on data in a 0th expansion register of the first operation stage: data in an (i−1)th expansion register of the second operation stage is data in an ith expansion register of the first operation stage.

Claims (66)

1. A circuit for performing a hash algorithm, comprising:

an input module configured to receive data; and

an operation module configured to compute a hash value based on the received data, the operation module comprising:

a plurality of operation stages arranged in a pipeline structure, each operation stage of the plurality of operation stages comprising 0th to 15th expansion registers, each expansion register being configured to store expansion data of the current operation stage; and

a plurality of expansion data operation logic modules, each expansion data operation logic module being disposed between two respective adjacent operation stages of the plurality of operation stages, the two adjacent operation stages comprising a first operation stage and a second operation stage after the first operation stage, each expansion data operation logic module comprising:

a first sub-module configured to compute expansion data for storage into a 0th expansion register of the second operation stage based on expansion data stored in a 1st expansion register of the first operation stage; and

a second sub-module configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on expansion data stored in a 0th expansion register of the first operation stage,

wherein expansion data for storage into an (i-1)th expansion register of the second operation stage is expansion data stored in an ith expansion register of the first operation stage, where 2≤i≤15 and i is an integer.

2. The circuit according to claim 1 , wherein

the first sub-module is configured to compute expansion data for storage into a 0th expansion register of the second operation stage based on expansion data stored in a 1st expansion register and a 2nd expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on expansion data stored in a 0th expansion register, a 9th expansion register, and a 14th expansion register of the first operation stage.

3. The circuit according to claim 1 , wherein

the first sub-module is configured to compute expansion data for storage into a 0th expansion register of the second operation stage based on expansion data stored in a 1st expansion register and a 10th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on expansion data stored in a 0th expansion register, a 1st expansion register, and a 14th expansion register of the first operation stage.

4. The circuit according to claim 1 , wherein

the first sub-module is configured to compute expansion data for storage into a 0th expansion register of the second operation stage based on expansion data stored in a 1st expansion register, a 2nd expansion register, and a 10th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on expansion data stored in a 0th expansion register and a 14th expansion register of the first operation stage.

5. The circuit according to claim 1 , wherein

the first sub-module is configured to compute expansion data for storage into a 0th expansion register of the second operation stage based on expansion data stored in a 1st expansion register and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on expansion data stored in a 0th expansion register, a 1st expansion register, and a 9th expansion register of the first operation stage.

6. The circuit according to claim 1 , wherein

the first sub-module is configured to compute expansion data for storage into a 0th expansion register of the second operation stage based on expansion data stored in a 1st expansion register, a 2nd expansion register, and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on expansion data stored in a 0th expansion register and a 9th expansion register of the first operation stage.

7. The circuit according to claim 1 , wherein

the first sub-module is configured to compute expansion data for storage into a 0th expansion register of the second operation stage based on expansion data stored in a 1st expansion register, a 10th expansion register, and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on expansion data stored in a 0th expansion register and a 1st expansion register of the first operation stage.

8. A circuit for performing a hash algorithm, comprising:

an input module configured to receive data; and

an operation module configured to compute a hash value based on the received data, the operation module comprising:

a plurality of operation stages arranged in a pipeline structure, each operation stage of the plurality of operation stages comprising 0th to 15th expansion registers and an additional register, each expansion register being configured to store expansion data of the current operation stage, the additional register being configured to store intermediate data for computing expansion data; and

a plurality of expansion data operation logic modules, each expansion data operation logic module being disposed between two respective adjacent operation stages of the plurality of operation stages, the two adjacent operation stages comprising a first operation stage and a second operation stage after the first operation stage, each expansion data operation logic module comprising:

a first sub-module configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in an expansion register of the first operation stage; and

a second sub-module configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage,

wherein expansion data for storage into an (i-1)th expansion register of the second operation stage is expansion data stored in an ith expansion register of the first operation stage, where 1≤i≤15 and i is an integer.

9. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 1st expansion register and a 2nd expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 9th expansion register and a 14th expansion register of the first operation stage.

10. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 1st expansion register and a 10th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 1st expansion register and a 14th expansion register of the first operation stage.

11. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 1st expansion register, a 2nd expansion register, and a 10th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 14th expansion register of the first operation stage.

12. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 1st expansion register and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 1st expansion register and a 9th expansion register of the first operation stage.

13. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 1st expansion register, a 2nd expansion register, and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 9th expansion register of the first operation stage.

14. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 1st expansion register, a 10th expansion register, and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 1st expansion register of the first operation stage.

15. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 2nd expansion register and a 10th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 0th expansion register and a 14th expansion register of the first operation stage.

16. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 2nd expansion register and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 0th expansion register and a 9th expansion register of the first operation stage.

17. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 2nd expansion register, a 10th expansion register, and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 0th expansion register of the first operation stage.

18. The circuit according to claim 8 , wherein

the first sub-module is configured to compute intermediate data for storage into an additional register of the second operation stage based on expansion data stored in a 10th expansion register and a 15th expansion register of the first operation stage; and

the second sub-module is configured to compute expansion data for storage into a 15th expansion register of the second operation stage based on intermediate data stored in an additional register of the first operation stage and expansion data stored in a 0th expansion register and a 1st expansion register of the first operation stage.

19. A computing chip comprising the circuit according to claim 1 .

20. A data processing device comprising one or more computing chips according to claim 19 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2022
From: FAN, ZHIJUN; XUE, KE; XU, CHAO; YANG, ZUOXING
To: SHENZHEN MICROBT ELECTRONICS TECHNOLOGY CO., LTD.
Reel/Frame 058799/0920 →
Priority Claims (1)
CN 202011509432.7 · Dec 18, 2020 · national
Continuity (1)
Related Publication 20220376893A1 · Nov 24, 2022