TWI804890B - 時鐘樹電路、哈希引擎、計算晶片、算力板和資料處理設備 - Google Patents
時鐘樹電路、哈希引擎、計算晶片、算力板和資料處理設備 Download PDFInfo
- Publication number
- TWI804890B TWI804890B TW110121846A TW110121846A TWI804890B TW I804890 B TWI804890 B TW I804890B TW 110121846 A TW110121846 A TW 110121846A TW 110121846 A TW110121846 A TW 110121846A TW I804890 B TWI804890 B TW I804890B
- Authority
- TW
- Taiwan
- Prior art keywords
- register
- clock
- registers
- stage
- coupled
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims abstract description 24
- 239000000872 buffer Substances 0.000 claims description 111
- 238000012546 transfer Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 18
- 238000005065 mining Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 7
- 239000000463 material Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
- H03K19/1774—Structural details of routing resources for global signals, e.g. clock, reset
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
- H03K19/17744—Structural details of routing resources for input/output signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Power Engineering (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Complex Calculations (AREA)
Abstract
本公開涉及一種時鐘樹電路、哈希引擎、計算晶片、算力板和資料處理設備。所述哈希引擎包括:運算模組,被配置為對接收的資料塊進行哈希運算,其包括以流水線結構布置的多個運算級以使得基於資料塊的數字信號沿著多個運算級依次傳遞,每個運算級包括多個寄存器和組合邏輯模組,第一組寄存器的輸出端至少耦接到當前運算級的組合邏輯模組的輸入端,第二組寄存器的輸入端耦接到前一運算級的組合邏輯模組的輸出端;和時鐘模組,被配置為向每一個運算級提供時鐘信號,時鐘模組包括多級時鐘驅動電路以使得來自於時鐘源的時鐘信號沿著多級時鐘驅動電路依次傳遞,其中對於第一組寄存器和第二組寄存器,數字信號的傳遞方向與所述時鐘信號的傳遞方向相同。
Description
本發明涉及用於執行哈希算法的電路,更具體地,涉及包含時鐘樹電路、哈希引擎、計算晶片、算力板和資料處理設備。
比特幣系統是最早提出並且目前得到最廣泛認可的區塊鏈系統。比特幣系統的主要作用之一是用作去中心化的公共記帳本,其可以記錄各種金融交易。之所以稱為“去中心化”,是因為比特幣不是由單一的中心化的貨幣機構發行的,而是依據特定算法通過運算來産生的。比特幣系統使用計算機網絡的各節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學設計來確保安全性。
目前比特幣協議采用安全哈希算法SHA(Secure Hash Algorithm)-256。SHA系列算法是美國標準與技術研究所發布的,其中SHA-256是一種哈希長度為256位的安全哈希算法。
根據比特幣協議,第一個成功確定候選區塊的工作量證明POW(proof of work)的節點有權將該區塊添加到區塊鏈,並有權生成新的加密貨幣單元作為獎勵。這個過程就被稱為“挖礦”,執行比特幣算法的節點,即資料處理設備,被稱為挖礦機或礦機。
如果使用專用集成電路(ASIC)來執行挖礦過程,也即使用ASIC晶片來執行SHA-256算法,則設計目標的關鍵是改善晶片尺寸、晶片運行速度和晶片功耗。晶片尺寸决定晶片成本,晶片運行速度决定礦機運行速度即算力,晶片功耗决定耗電程度即挖礦成本。在實際應用中,衡量礦機最為重要的性能指標是單位算力所消耗的功率,即功耗算力比。因此,對於比特幣礦機而言,最重要的就是以較低的功耗算力比來實現SHA-256算法。
因此,存在對於具有更低功耗算力比的用於實現哈希算法的電路的需求。
根據本發明的第一方面,提供了一種哈希引擎,包括:輸入模組,被配置為接收資料塊;運算模組,被配置為對接收的資料塊進行哈希運算,所述運算模組包括以流水線結構布置的多個運算級以使得基於所述資料塊的數字信號沿著所述多個運算級依次傳遞,所述多個運算級中的每個運算級包括多個寄存器和組合邏輯模組,其中在每一當前運算級中,所述多個寄存器中的第一組寄存器的輸出端至少耦接到當前運算級的組合邏輯模組的輸入端,並且所述多個寄存器中的第二組寄存器的輸入端耦接到前一運算級的組合邏輯模組的輸出端;和時鐘模組,被配置為向所述多個運算級的每一個運算級提供時鐘信號,所述時鐘模組包括多級時鐘驅動電路以使得來自於時鐘源的時鐘信號沿著所述多級時鐘驅動電路依次傳遞,其中對於所述多個運算級的所述第一組寄存器和所述第二組寄存器,所述數字信號的傳遞方向與所述時鐘信號的傳遞方向相同。
進一步,在每一當前運算級中,所述多個寄存器中的第三組寄存器的輸入端耦接到前一運算級中的對應寄存器的輸出端,並且其輸出端耦接到下一運算級中的對應寄存器的輸入端,並且其中對於所述多個運算級的所述第三組寄存器,所述數字信號的傳遞方向與所述時鐘信號的傳遞方向相反。
根據本公開的哈希引擎可以用於執行SHA-256算法。
根據本發明的第二方面,提供了一種時鐘樹電路,包括:時鐘源,用於提供基本時鐘信號;和多級時鐘驅動電路,其中來自於所述時鐘源的基本時鐘信號沿著所述多級時鐘驅動電路依次傳遞,所述多級時鐘驅動電路中的每一級時鐘驅動電路用於為多個運算級的每個運算級提供時鐘信號,其中所述多個運算級以流水線結構布置以使得基於接收的資料塊的數字信號沿著所述多個運算級依次傳遞,所述多個運算級中的每個運算級包括多個寄存器和組合邏輯模組,其中在每一當前運算級中,所述多個寄存器中的第一組寄存器的輸出端至少耦接到當前運算級的組合邏輯模組的輸入端,所述多個寄存器中的第二組寄存器的輸入端耦接到前一運算級的組合邏輯模組的輸出端,並且所述多個寄存器中的第三組寄存器的輸入端耦接到前一運算級中的對應寄存器的輸出端,並且其輸出端耦接到下一運算級中的對應寄存器的輸入端,其中對於所述多個運算級的每一運算級所述第一組寄存器和所述第二組寄存器,所述數字信號的傳遞方向與所述時鐘信號的傳遞方向相同,以及其中對於所述多個運算級的所述第三組寄存器,所述數字信號的傳遞方向與所述時鐘信號的傳遞方向相反。
根據本發明的第三方面,提供了一種計算晶片,包括一個或多個如前所述的哈希引擎。
根據本發明的第四方面,提供了一種算力板,包括一個或多個如前所述的計算晶片。
根據本發明的第五方面,提供了一種資料處理設備,包括一個或多個如前所述的算力板。
根據參照附圖的以下描述,本發明的其它特性特徵和優點將變得清晰。
現在將參照附圖來詳細描述本公開的各種示例性實施例。應當注意,除非另外具體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數字表達式和數值不限制本公開的範圍。
以下對至少一個示例性實施例的描述實際上僅僅是說明性的,决不作為對本公開及其應用或使用的任何限制。也就是說,本文中的哈希引擎是以示例性的方式示出,來說明本公開中的電路的不同實施例,而並非意圖限制。本領域的技術人員將會理解,它們僅僅說明可以用來實施本發明的示例性方式,而不是窮盡的方式。
對於相關領域普通技術人員已知的技術、方法和設備可能不作詳細討論,但在適當情况下,所述技術、方法和設備應當被視為授權說明書的一部分。
本發明提出了一種新穎的時鐘樹電路方案,其可以用於具有流水線(pipeline)架構的任何加密算法電路中。為了描述方便,下面以SHA-256哈希算法電路為例進行闡述。本領域技術人員應當理解,SHA-256僅僅是本發明的時鐘樹電路方案可以應用於其中的一個示例,本發明還可用於其他具有流水線結構的加密算法電路中。
現在參考圖1,其是根據本發明的實施例的SHA-256哈希引擎的示意圖。本領域技術人員將理解,以下對SHA-256的介紹是為了更為清楚的呈現本申請的發明構思,而不意圖構成任何限制。本文中所提及的SHA-256包括公知可知的任何版本的SHA-256及其變型例和修改例。
如圖1所示,哈希引擎10包括輸入模組101、運算模組102和時鐘模組103。輸入模組101用於接收資料塊。運算模組102可以對接收的資料塊執行SHA-256哈希運算。時鐘模組103用於為運算模組102提供所需的時鐘信號。
如圖1所示,運算模組102包括以流水線結構布置的多個運算級,第1級……第i級……第N級。N可以是32、64、128等。每個運算級可以包括寄存器A~H和對應的運算邏輯、寄存器W0
~W15
和對應的組合邏輯以及用於存儲常數K的存儲器。寄存器W0
~W15
通常被稱為擴展寄存器,因為它們被配置為將輸入資料塊進行擴展。寄存器A~H通常被稱為壓縮寄存器,因為它們被配置為將擴展的資料壓縮成哈希值。
如圖1所示,在寄存器W0
~W15
中,每一級的寄存器W1
~W15
的輸出提供給下一級的寄存器W0
~W14
作為輸入,而寄存器W0
、W1
、W9
、W14
的輸出提供給組合邏輯作為輸入,該組合邏輯的輸出提供給下一級的寄存器W15
作為輸入。也就是說,每一級的寄存器W0
、W1
、W9
、W14
、W15
與前一級或當前級的組合邏輯運算有關,其餘寄存器則與前一級或當前級的組合邏輯運算無關。
時鐘模組103可以為運算模組102提供時鐘信號,具體來說,為運算模組102中的每個寄存器提供時鐘信號。通常,時鐘模組103輸出的時鐘信號是由單個時鐘源導出的。然而在像SHA-256這樣的晶片中,存在著大量的諸如寄存器之類的時序器件。如果用單個時鐘源信號直接驅動時序器件,則驅動負載能力會成為問題,並且從時鐘源到寄存器時鐘端的布線過長帶來的延時過大。因此,通常采用時鐘樹電路的架構來提供時鐘信號,即在時鐘源和時序器件之間***緩衝器或者反相器來形成一個時鐘分布網絡。在流水線架構中,存在正向時鐘樹電路和反向時鐘樹電路兩種時鐘樹電路結構。
圖2A是示出了在流水線架構中通過正向時鐘樹電路來驅動寄存器的示意圖。如圖所示,由時鐘源200和多級時鐘驅動電路201-1……201-N組成的時鐘樹電路來驅動各流水線運算級202-1……202-N。由於時鐘信號的傳遞方向(從左到右)與流水線的資料傳遞方向(從左到右)一致,因此該時鐘樹電路被稱為正向時鐘樹電路。
圖2B是示出了在流水線架構中通過反向時鐘樹電路來驅動寄存器的示意圖。如圖所示,由時鐘源200和多級時鐘驅動電路201-1……201-N組成的時鐘樹電路來驅動各流水線運算級202-N……202-1。由於時鐘信號的傳遞方向(從右到左)與流水線的資料傳遞方向(從左到右)相反,因此該時鐘樹電路被稱為反向時鐘樹電路。
不管采用何種時鐘樹電路結構,都應當滿足寄存器的建立時間(Setup Time)和保持時間(Hold Time)要求。圖3A和3B是示出了寄存器的建立時間和保持時間的示意圖。建立時間Tsetup
是指在時鐘沿到來之前資料必須維持穩定的時間。如果建立時間不滿足要求,那麽資料不能在這個時鐘沿被穩定地打入寄存器。保持時間Thold
是指在時鐘沿到來之後資料必須維持穩定的時間。如果保持時間不滿足要求,那麽資料同樣不能被穩定地打入寄存器。
這裏以數字電路設計中一個常見的電路來進行詳細說明。如圖3A所示,該電路包括觸發器301和303以及組合邏輯302。觸發器301輸出的資料信號Q1經組合邏輯302傳送到觸發器303的輸入,時鐘信號CLK控制觸發器303捕獲資料信號。為使資料信號被觸發器303正確地捕獲,資料信號應當在時鐘沿之前至少Tsetup
的時間到達觸發器303的輸入,而在時鐘沿之後至少保持Thold
的時間。
在滿足Tsetup
和Thold
的基礎上,可以確定中間的組合邏輯電路的傳輸延時的範圍。假設時鐘周期為Tclk
,觸發器輸出延時為Tco
,組合邏輯的延時為Tcomb
。
對於Tsetup
,需滿足:
Tclk
- Tco
- Tcomb
> Tsetup
(公式1)
考慮最壞的情况,即觸發器的輸出延時最大,組合邏輯電路的延時也最大,則上述公式1變為:
Tclk
- Tco-max
- Tcomb-max
> Tsetup
(公式2)
對於Thold
,需滿足:
Tco
+ Tcomb
> Thold
(公式3)
考慮到最壞的情况,即觸發器的輸出延時最小,組合邏輯電路的延時也最小,則上述公式3變為
Tco-min
+ Tcomb-min
> Thold
(公式4)
結合圖2A和2B的正向時鐘樹電路和反向時鐘樹電路,假設每一級時鐘驅動電路的延時為Tclklatency
,上述公式2和4分別變成下述公式。
對於正向時鐘樹電路:
考慮Tsetup
:
Tclk
+ Tclklatency
- Tco-max
- Tcomb-max
> Tsetup
(公式5)
也即,
Tclk
> Tsetup
+ Tco-max
+ Tcomb-max
- Tclklatency
(公式6)
考慮Thold
:
Tco-min
+ Tcomb-min
> Thold
+ Tclklatency
(公式7)
也即,
Tco-min
+ Tcomb-min
- Tclklatency
> Thold
(公式8)
對於反向時鐘樹電路:
考慮Tsetup
:
Tclk
- Tclklatency
- Tco-max
- Tcomb-max
> Tsetup
(公式9)
也即,
Tclk
> Tsetup
+ Tco-max
+ Tcomb-max
+ Tclklatency
(公式10)
考慮Thold
:
Tco-min
+ Tcomb-min
> Thold
- Tclklatency
(公式11)
也即,
Tco-min
+ Tcomb-min
+ Tclklatency
> Thold
(公式12)
對比公式6和公式10,可知正向時鐘樹電路的Tclk
可以更小,也即周期更小,相應地晶片的頻率可以更快,達到更高性能。而反向時鐘樹電路的Tclk
需要較大,也即周期更大,於是晶片的頻率變慢,性能降低。
但是對比公式8和公式12,可知在采用正向時鐘樹電路時觸發器的保持時間更不容易滿足,而在采用反向時鐘樹電路時觸發器的保持時間更容易滿足。特別是如果兩個觸發器之間的組合邏輯的延時很小或者甚至不存在組合邏輯時,即Tcomb-min
為0,則正向時鐘樹電路的保持時間將難以滿足。
同步時序電路正常工作的前提是觸發器的建立時間和保持時間都得到滿足。保持時間是更重要的指標,必須滿足。保持時間如果不滿足,晶片就無法正常工作。因此,在現有技術中,通常使用反向時鐘樹電路以保證滿足保持時間Thold
要求。但是這會犧牲晶片的頻率從而導致晶片的性能降低。
本公開提供了一種新穎的時鐘樹電路方案,可以在滿足保持時間Thold
要求的同時提高晶片的運行頻率從而提高晶片性能。
圖4是示出了根據本發明的實施例的時鐘樹電路結構的原理圖。如圖4所示,時鐘樹電路包括時鐘源400、多級時鐘驅動電路4011
……401M
……、第一組時鐘緩衝電路4021
……402M
……、和第二組時鐘緩衝電路4061
……406M
……。第i級時鐘驅動電路用於為流水線的第i運算級提供時鐘。這裏的i和M小於流水線的總級數N。
這裏以第i運算級為例進行說明。如圖4所示,運算模組的第i運算級包括第一類寄存器403i
、第二類寄存器404i
和第三類寄存器407i
。第一類寄存器403i的輸出端除了連接到第i+1運算級的相應寄存器的輸入端外,還要連接到第i運算級的組合邏輯405i
的輸入端,也即第一類寄存器403i
的輸出需要參與組合邏輯運算。第二類寄存器404i
的輸入端連接到第i-1運算級的組合邏輯405i-1
的輸出端,也即第二類寄存器404i
的輸入接收自第i-1運算級的組合邏輯的輸出。第一類寄存器403i
和第二類寄存器404i
均與組合邏輯運算有關。而第三類寄存器407i
接收自第i-1運算級的相應寄存器的輸出並且將自身的輸出提供給第i+1運算級的相應寄存器,也即第三類寄存器407i
與第i-1運算級或第i運算級的組合邏輯運算無關。
需要注意的是,這裏為了描述簡便,每一類寄存器只示出了一個寄存器。但是本領域技術人員應當理解,每一類寄存器的數目不限於一,而是根據實際的電路結構具有任意數目。以圖1所示出的SHA-256電路為例,第一類寄存器403i
可以包括W0
、W1
、W9
、W14
,第二類寄存器404i
可以包括W15
,第三類寄存器407i
可以包括W2
~W8
以及W10
~W13
。應當注意,SHA-256電路的寄存器的這樣的分類僅僅是一個示例,本領域技術人員根據實際情况可以進行不同的分類方式,如下文將描述的。
如圖4所示,根據本發明的實施例,對於與組合邏輯運算有關的第一類寄存器403i
和第二類寄存器404i
,采用正向時鐘樹電路結構,即第i運算級的第一類寄存器403i
和第二類寄存器404i
的時鐘端耦接到時鐘緩衝電路402i
的輸出端,而時鐘緩衝電路402i
的輸入端耦接到時鐘驅動電路401i
的輸出端。
對於與第i-1運算級或第i運算級的組合邏輯運算無關的第三類寄存器407i
,采用反向時鐘樹電路結構,即第i運算級的第三類寄存器407i
的時鐘端耦接到時鐘緩衝電路406i
的輸出端,而時鐘緩衝電路406i
的輸入端耦接到第i+1運算級的相應時鐘緩衝電路406i+1
的輸出端。該相應時鐘緩衝電路406i+1
的輸出端同時也耦接到第i+1運算級的相應寄存器407i+1
的時鐘端。相應寄存器407i+1
指的是第i運算級的寄存器407i
的輸出端所連接到的第i+1運算級的那個寄存器407i+1
。以SHA-256為例,比如第i運算級的寄存器W5
的輸出端連接到第i+1運算級的寄存器W4
,因此第i運算級的寄存器W5
的時鐘端耦接到其對應的時鐘緩衝電路406i
的輸出端,而該時鐘緩衝電路406i
的輸入端耦接到第i+1運算級的用於為寄存器W4
提供時鐘信號的時鐘緩衝電路406i+1
的輸出端。
也就是說,對於第三類寄存器,為第i運算級的寄存器Wk
提供時鐘信號的時鐘緩衝電路的輸入端耦接到第i+1運算級的用於為寄存器Wk-1
提供時鐘信號的時鐘緩衝電路的輸出端。依此類推,直到第M運算級,在該運算級處,為第三類寄存器407M
提供時鐘信號的時鐘緩衝電路406M
的輸入端耦接到第M運算級的為第一類寄存器403M
和第二類寄存器404M
提供時鐘信號的時鐘緩衝電路402M
的輸出端。以圖1所示出的SHA-256電路為例,為第M-1運算級的寄存器W2
提供時鐘信號的時鐘緩衝電路的輸入端應當耦接到第M運算級的用於為寄存器W1
提供時鐘信號的時鐘緩衝電路的輸出端,而W1
屬於第一類寄存器,即第M運算級的用於為寄存器W1
提供時鐘信號的時鐘緩衝電路的輸入端耦接到時鐘驅動電路401M
的輸出端,於是在第M運算級處,為寄存器W1
提供時鐘信號的時鐘緩衝電路402M
的輸出再經過一次時鐘緩衝電路406M
後輸入到第M-1運算級的為寄存器W2
提供時鐘信號的時鐘緩衝電路。
根據前面的公式8和公式12,由於第一類寄存器403i
和第二類寄存器404i
參與組合邏輯運算,Tcomb-min
不為0且相對時鐘信號的延時往往較大,因此即使采用正向時鐘樹電路,也能滿足Thold
。而不參與組合邏輯運算的第三類寄存器407i
由於采用的是反向時鐘樹電路,也能滿足Thold
。同時,由於時鐘模組整體上采用了正向時鐘樹電路結構,因此可以提高晶片的運行頻率從而提高晶片性能。
下面結合SHA-256的電路結構來說明本發明的上述發明構思的應用示例。
圖5是示出了根據本發明的實施例的采用圖4的時鐘樹電路結構的一個哈希引擎的示意圖。圖5中的實線箭頭表示時鐘信號的傳遞方向,虛線箭頭表示資料的傳遞方向。注意這裏省略了不必要的圖示和描述以避免模糊主旨。例如,圖5的哈希引擎省略了壓縮寄存器A~H,只示出了擴展寄存器W0
~W15
。此外,為了簡明,圖5僅示出了每一運算級中的一部分寄存器的資料傳遞和時鐘傳遞情况,而省略了其他寄存器的資料傳遞和時鐘傳遞。本領域技術人員根據本公開的教導,可以容易地想到各運算級中各寄存器的資料傳遞和時鐘傳遞情况。
如圖5所示,哈希引擎包括多個運算級,每一運算級包括多個寄存器W0
~W15
,並且由相應的時鐘驅動電路501驅動。根據圖5所示的實施例,哈希引擎整體上采用正向時鐘樹電路結構,而在局部采用反向時鐘樹電路結構。如前所述,每一運算級的寄存器W0
、W1
、W9
、W14
、W15
的時鐘耦接到主時鐘樹電路上,而其餘寄存器Wk
(W2
~W8
和W10
~W13
)的時鐘則是由下一運算級的Wk-1
的時鐘傳遞過來的。圖5為了方便說明省略了時鐘緩衝電路,而僅以實線箭頭表示寄存器的時鐘信號的傳遞路徑。本領域技術人員在本公開的教導下應當理解,每個寄存器的時鐘端均耦接到相應的時鐘緩衝電路的輸出端。
對於每一運算級的寄存器W9
來說,其參與組合邏輯運算,因而接收來自正向時鐘樹電路的時鐘信號,同時寄存器W9
的資料還需要傳遞到下一運算級的寄存器W8
,因此下一運算級的寄存器W8
的時鐘信號需要傳遞到當前運算級的寄存器W9
以滿足反向時鐘樹電路的要求。寄存器W14
類似。
為此,在圖5的實施例中,每一運算級除了第一至第十六寄存器W0
~W15
外,還包括第十七寄存器W9_t
和第十八寄存器W14_t
。
第十七寄存器W9_t
的輸入端耦接到第十寄存器W9
的輸出端,其輸出端耦接到下一運算級的第九寄存器W8
的輸入端,並且其時鐘信號端耦接到用於該第十七寄存器的時鐘緩衝電路的輸出端。該用於第十七寄存器W9_t
的時鐘緩衝電路的輸入端耦接到用於下一運算級的第九寄存器W8
的時鐘緩衝電路的輸出端。也即第十七寄存器W9_t
的時鐘是由下一運算級的W8
的時鐘傳遞過來的。
第十八寄存器W14_t
的輸入端耦接到第十五寄存器W14
的輸出端,其輸出端耦接到下一運算級的第十四寄存器W13
的輸入端,並且其時鐘信號端耦接到用於該第十八寄存器的時鐘緩衝電路的輸出端。該用於第十八寄存器W14_t
的時鐘緩衝電路的輸入端耦接到用於下一運算級的第十四寄存器W13
的時鐘緩衝電路的輸出端。也即寄存器W14_t
的時鐘由下一運算級的寄存器W13
的時鐘傳遞而來。
從整個流水線角度來看,第i運算級的寄存器W0
、W1
、W9
、W14
、W15
的時鐘耦接到主時鐘樹電路上。第i運算級的寄存器W9_t
的時鐘由第i+1運算級的寄存器W8
的時鐘傳遞而來。第i+1運算級的寄存器W8
的時鐘由第i+2運算級的寄存器W7
的時鐘傳遞而來。以此類推,第i+7運算級的寄存器W2
的時鐘由第i+8運算級的寄存器W1
的時鐘傳遞而來。第i運算級的寄存器W9
將時鐘傳遞給第i-1運算級的寄存器W10
。以此類推,第i-4運算級的寄存器W13
將時鐘傳遞給第i-5運算級的寄存器W14_t
。
通過增加如上配置的第十七寄存器W9_t
和第十八寄存器W14_t
,可以實現對流水線結構使用正向時鐘樹電路和反向時鐘樹電路二者,從而在滿足寄存器的Thold
要求的同時提高晶片的運行頻率從而提高晶片性能。
圖6是示出了根據本發明的實施例的采用圖4的時鐘樹電路結構的另一哈希引擎的示意圖。需要注意的是,這裏與圖5相同的部分將不再贅述,而只描述與圖5不同的部分。
由於反向時鐘樹電路使得時鐘沿每一級均反向延遲Tclklatency
,因此當經過一定的級數之後,根據公式9,可能導致寄存器的Tsetup
不滿足。為此,如圖6所示,每一運算級除了第一至第十六寄存器W0
~W15
以及第十七寄存器W9_t
和第十八寄存器W14_t
外,還可以包括第十九寄存器W6_t
,其電路布置與第十七寄存器W9_t
和第十八寄存器W14_t
類似。即每一運算級的第十九寄存器W6_t
的輸入端耦接到當前運算級的第七寄存器W6
的輸出端,其輸出端耦接到下一運算級的第六寄存器W5
的輸入端,並且其時鐘信號端耦接到用於該寄存器W6_t
的時鐘緩衝電路的輸出端。該用於寄存器W6_t
的時鐘緩衝電路的輸入端耦接到用於下一運算級的第六寄存器W5
的時鐘緩衝電路的輸出端。也即寄存器W6_t
的時鐘由下一運算級的寄存器W5
的時鐘傳遞而來。
根據圖6所示的實施例,哈希引擎整體上采用正向時鐘樹電路結構,而在局部采用反向時鐘樹電路結構。每一運算級中除寄存器W0
、W1
、W9
、W14
、W15
的時鐘耦接到主時鐘樹電路上之外,W6
的時鐘也耦接到主時鐘樹電路上。而其餘寄存器Wk
(W2
~W5
、W7
~W8
和W10
~W13
)的時鐘則是由下一運算級的Wk-1
的時鐘傳遞過來的。
從整個流水線角度來看,第i運算級的寄存器W0
、W1
、W6
、W9
、W14
、W15
的時鐘耦接到主時鐘樹電路上。寄存器W6_t
的時鐘由第i+1運算級的寄存器W5
的時鐘傳遞而來。第i+1運算級的寄存器W5
的時鐘由第i+2運算級的寄存器W4
的時鐘傳遞而來。以此類推,第i+4運算級的寄存器W2
的時鐘由第i+5運算級的寄存器W1
的時鐘傳遞而來。第i運算級的寄存器W6
將時鐘傳遞給第i-1運算級的寄存器W7
。以此類推,第i-2運算級的寄存器W8
將時鐘傳遞給第i-3運算級的寄存器W9_t
。第i-3運算級的寄存器W9
將時鐘傳遞給第i-4運算級的寄存器W10
。以此類推。
在圖6所示的實施例中,由於增加了第十九寄存器W6_t
,因此從W1
到W9_t
的時鐘路徑被分割為兩部分,每部分的時鐘路徑相對於整個反向時鐘路徑變短,因而可以滿足寄存器的Tsetup
要求。
本領域技術人員應當理解,第十九寄存器的具體***位置不局限於圖6所示的位置,而是可以在其他位置,只要能保證滿足寄存器的Tsetup
要求即可。通常將增加的寄存器的***位置選擇為從W1
到W9_t
的時鐘路徑的中間部分的寄存器處。例如也可以在W5
與W6
之間***W5_t
。***W5_t
時的電路布置與如前所述的***W6_t
時的類似,這裏不再贅述。
圖7是示出了根據本發明的另一實施例的時鐘樹電路結構的原理圖。圖7中的正向時鐘樹電路部分與圖4所示的相同,因此這裏不再贅述。與圖4所示的反向時鐘樹電路部分不同的是,在圖7的實施例中,第i運算級的第三類寄存器407i
的時鐘信號由第i+2運算級的相應寄存器407i+2
的時鐘信號傳遞而來,並且提供給第i運算級的第三類寄存器407i
的時鐘信號也提供給第i+1運算級的相應第三類寄存器407i+1
。
也就是說,第i運算級的第三類寄存器407i
的時鐘端耦接到時鐘緩衝電路406i
的輸出端,而時鐘緩衝電路406i
的輸入端耦接到第i+2運算級的相應時鐘緩衝電路406i+2
的輸出端。該相應時鐘緩衝電路406i+2
的輸出端同時也耦接到第i+2運算級的相應寄存器407i+2
的時鐘端。同時,第i+1運算級的相應寄存器407i+1
的時鐘端也耦接到該時鐘緩衝電路406i
的輸出端。
如前參考圖4所述,第i+1運算級的相應寄存器407i+1
和第i+2運算級的相應寄存器407i+2
指的是第i運算級的寄存器407i
的輸出信號所傳遞給的第i+1運算級的那個寄存器407i+1
和第i+2運算級的那個寄存器407i+2
。以SHA-256為例,比如第i運算級的寄存器W5
的輸出傳遞給第i+1運算級的寄存器W4
,第i+1運算級的寄存器W4
的輸出又傳遞給第i+2運算級的寄存器W3
,因此第i運算級的寄存器W5
的時鐘端耦接到其對應的時鐘緩衝電路406i
的輸出端,並且第i+1運算級的寄存器W4
的時鐘端也耦接到該時鐘緩衝電路406i
的輸出端,而該時鐘緩衝電路406i
的輸入端耦接到第i+2運算級的用於為寄存器W3
提供時鐘信號的時鐘緩衝電路406i+2
的輸出端。
也就是說,為第i運算級的寄存器Wk
提供時鐘信號的時鐘緩衝電路的輸入端耦接到第i+2運算級的用於為寄存器Wk-2
提供時鐘信號的時鐘緩衝電路的輸出端。依此類推,直到第M運算級,在該運算級處,為第三類寄存器407M
提供時鐘信號的時鐘緩衝電路406M
的輸入端耦接到第M運算級的為第一類寄存器403M
和第二類寄存器404M
提供時鐘信號的時鐘緩衝電路402M
的輸出端。
例如,以SHA-256為例,為第M-2運算級的寄存器W3
提供時鐘信號的時鐘緩衝電路的輸入端應當耦接到第M運算級的用於為寄存器W1
提供時鐘信號的時鐘緩衝電路的輸出端,而W1
屬於第一類寄存器,即第M運算級的用於為寄存器W1
提供時鐘信號的時鐘緩衝電路402M的輸入端耦接到時鐘驅動電路401M
的輸出端,於是在第M運算級處,為寄存器W1
提供時鐘信號的時鐘緩衝電路402M
的輸出再經過一次時鐘緩衝電路406M
後輸入到第M-2運算級的為寄存器W3
提供時鐘信號的時鐘緩衝電路。下面將參考圖8進行詳細描述。
同樣,本實施例由於時鐘模組整體上采用了正向時鐘樹電路結構,因此可以提高晶片的運行頻率從而提高晶片性能。同時由於對不參與組合邏輯運算的第三類寄存器采用了反向時鐘樹電路,因而能够滿足Thold
要求。
下面結合SHA-256的電路結構來說明圖7的時鐘樹電路結構的應用示例。
圖8是示出了根據本發明的實施例的采用圖7的時鐘樹電路結構的哈希引擎的示意圖。同樣,圖8中的實線箭頭表示時鐘信號的傳遞方向,虛線箭頭表示資料的傳遞方向。此外,為了簡明,圖8僅示出了每一運算級中的一部分寄存器的資料傳遞和時鐘傳遞情况,而省略了其他寄存器的資料傳遞和時鐘傳遞。本領域技術人員根據圖8的公開,可以容易地想到各運算級中各寄存器的資料傳遞和時鐘傳遞情况。對於與圖5和6相同的部分,這裏將不再贅述。
如圖8所示,哈希引擎包括多個運算級,每一運算級包括多個寄存器W0
~W15
。此外,與圖5的實施例類似,每一運算級還包括第十七寄存器W9_t
和第十八寄存器W14_t
。這些寄存器由相應的時鐘驅動電路501驅動。第十八寄存器W14_t
的配置與圖5的相同。第十七寄存器W9_t
的配置與圖5的不同。
根據圖8所示的實施例,哈希引擎整體上采用正向時鐘樹電路結構,而在局部采用反向時鐘樹電路結構。如前所述,每一運算級的寄存器W0
、W1
、W9
、W14
、W15
的時鐘耦接到主時鐘樹電路上,寄存器W9
至寄存器W14_t
的時鐘傳遞與圖5相同,第k個寄存器Wk-1
(W3
、W5
、W7
)的時鐘則是由下下一運算級的Wk-3
的時鐘傳遞過來的,寄存器Wk-2
(W2
、W4
、W6
)的時鐘與前一運算級的寄存器Wk-1
的時鐘相同。k為偶數且3≤k≤8。寄存器W8
的時鐘與前一運算級的寄存器W9_t
的時鐘相同。
從整個流水線角度來看,第i運算級的寄存器W9_t
的輸入端耦接到寄存器W9
的輸出端,其輸出端耦接到下一運算級的第九寄存器W8
的輸入端,其時鐘信號端耦接到用於該第十七寄存器的時鐘緩衝電路的輸出端。該用於第十七寄存器W9_t
的時鐘緩衝電路的輸入端耦接到用於第i+2運算級的第八寄存器W7
的時鐘緩衝電路的輸出端。也即,第i運算級的寄存器W9_t
的時鐘信號由第i+2運算級的寄存器W7
的時鐘傳遞而來。第i+2運算級的寄存器W7
的時鐘由第i+4運算級的寄存器W5
的時鐘傳遞而來。以此類推,第i+6運算級的寄存器W3
的時鐘由第i+8運算級的寄存器W1
的時鐘傳遞而來。
同時,第i+1運算級的寄存器W8
的時鐘端也耦接到用於第i運算級的第十七寄存器W9_t
的時鐘緩衝電路的輸出端。也即,第i+1運算級的寄存器W8
的時鐘與第i運算級的寄存器W9_t
的時鐘相同。第i+3運算級的寄存器W6
的時鐘與第i+2運算級的寄存器W7
的時鐘相同。以此類推,第i+7運算級的寄存器W2
的時鐘與第i+6運算級的寄存器W3
的時鐘相同。
圖8的實施例在滿足寄存器的Thold
要求的同時,由於從W1
到W9_t
的反向時鐘路徑的級數减少接近一半,從而也可以滿足寄存器的Tsetup
要求。相比於圖6的實施例,圖8的實施例不需要額外插一級寄存器,從而可以進一步减少寄存器的數量。
在根據本公開的實施例中,前文所述的寄存器可以包括邊沿觸發型寄存器,例如上升沿觸發的寄存器和/或下降沿觸發的寄存器。寄存器可以包括D觸發器(DFF)和/或鎖存器(Latch),鎖存器可以例如是采用脉衝類型的時鐘信號的鎖存器。
根據本公開的實施例,前文所述的多級時鐘驅動電路中的每一級時鐘驅動電路可以包括奇數個反相器。例如,每一級時鐘驅動電路可以包括一個反相器。
根據本公開的實施例,用於采用正向時鐘樹電路的寄存器的時鐘緩衝電路包括兩個時鐘緩衝器,而用於采用反向時鐘樹電路的寄存器的時鐘緩衝電路包括一個時鐘緩衝器。
本領域技術人員將理解,雖然前文結合SHA-256的一個電路結構描述了本發明的構思,但是該電路結構不意圖對本發明構思構成任何限制。本發明構思可以應用於公知可知的任何版本的SHA-256及其變型例和修改例。甚至,本發明構思可以應用於具有流水線結構且包括時序器件的任何計算電路中。
根據本公開的實施例,如上所述的哈希引擎可以被實施為一種計算晶片。
本領域技術人員將理解,可以通過用諸如Verilog或VHDL的硬件描述語言(HDL)來實現根據本公開的電路和/或晶片。可以針對給定集成電路製造技術設計的單元庫合成HDL描述,並可以出於定時、功率和其他原因修改,以獲得最終的設計資料庫,可以將最終的設計資料庫傳輸到工廠以通過半導體製造系統生産集成電路。半導體製造系統可通過(例如在可包括掩膜的晶片上)沉積半導體材料、移除材料、改變所沉積材料的形狀、(例如通過摻雜材料或利用紫外處理修改介電常數)對材料改性等等來生産集成電路。集成電路可以包括晶體管並還可以包括其他電路元件(例如,諸如電容器、電阻器、電感器等無源元件)以及晶體管和電路元件之間的互連。
根據本公開的實施例,如上所述的計算晶片可以包括在算力板中。具體來說,算力板可以包括一個或多個計算晶片。多個計算晶片可以並行地執行計算任務。
根據本公開的實施例,如上所述的算力板可以包括在一種計算設備中,該計算設備優選地用於執行加密貨幣的挖掘。例如計算設備可以是比特幣挖礦機。具體來說,加密貨幣挖礦機可以包括一個或多個算力板。多個算力板可以並行地執行計算任務,例如執行SHA-256算法。
在這裏示出和討論的所有示例中,任何具體值應被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實施例的其它示例可以具有不同的值。
還應理解,“包括/包含”一詞在本文中使用時,說明存在所指出的特徵、整體、步驟、操作、單元和/或組件,但是並不排除存在或增加一個或多個其它特徵、整體、步驟、操作、單元和/或組件以及/或者它們的組合。
雖然已通過示例詳細展示了本發明的一些具體實施例,但是本領域技術人員應當理解,上述示例僅意圖是說明性的而不限制本發明的範圍。本領域技術人員應該理解,上述實施例可以在不脫離本發明的範圍和實質的情况下被修改。本發明的範圍是通過所附的申請專利範圍限定的。
10:哈希引擎
101:輸入模組
102:運算模組
103:時鐘模組
A:寄存器
B:寄存器
C:寄存器
D:寄存器
E:寄存器
F:寄存器
G:寄存器
H:寄存器
W0
:第一寄存器
W1
:第二寄存器
W2
:第三寄存器
W3
:第四寄存器
W4
:第五寄存器
W5
:第六寄存器
W6
:第七寄存器
W6_t
:第十九寄存器
W7
:第八寄存器
W8
:第九寄存器
W9
:第十寄存器
W9_t
:第十七寄存器
W10
:第十一寄存器
W11
:第十二寄存器
W12
:第十三寄存器
W13
:第十四寄存器
W14
:第十五寄存器
W14_t
:第十八寄存器
W15
:第十六寄存器
200:時鐘源
201-1:時鐘驅動電路
201-2:時鐘驅動電路
201-N-1:時鐘驅動電路
201-N:時鐘驅動電路
202-1:流水線運算級
202-2:流水線運算級
202-N:流水線運算級
301:觸發器
302:組合邏輯
303:觸發器
400:時鐘源
401i-1
:時鐘驅動電路
401i
:時鐘驅動電路
401i+1
:時鐘驅動電路
401M
:時鐘驅動電路
402i-1
:第一組時鐘緩衝電路
402i
:第一組時鐘緩衝電路
402i+1
:第一組時鐘緩衝電路
402M
:第一組時鐘緩衝電路
403i-1
:第一類寄存器
403i
:第一類寄存器
403i+1
:第一類寄存器
403M
:第一類寄存器
404i-1
:第二類寄存器
404i
:第二類寄存器
404i+1
:第二類寄存器
404M
:第二類寄存器
405i-1
:組合邏輯
405i
:組合邏輯
405i+1
:組合邏輯
406i-1
:第二組時鐘緩衝電路
406i
:第二組時鐘緩衝電路
406i+1
:第二組時鐘緩衝電路
406M
:第二組時鐘緩衝電路
407i-1
:第三類寄存器
407i
:第三類寄存器
407i+1
:第三類寄存器
407M
:第三類寄存器
501i
:時鐘驅動電路
圖1是根據本發明的實施例的SHA-256哈希引擎的示意圖。
圖2A是示出了在流水線架構中通過正向時鐘樹電路來驅動寄存器的示意圖。
圖2B是示出了在流水線架構中通過反向時鐘樹電路來驅動寄存器的示意圖。
圖3A和3B是示出了寄存器的建立時間和保持時間的示意圖。
圖4是示出了根據本發明的實施例的時鐘樹電路結構的原理圖。
圖5是示出了根據本發明的實施例的采用圖4的時鐘樹電路結構的哈希引擎的示意圖。
圖6是示出了根據本發明的實施例的采用圖4的時鐘樹電路結構的另一哈希引擎的示意圖。
圖7是示出了根據本發明的另一實施例的時鐘樹電路結構的原理圖。
圖8是示出了根據本發明的實施例的采用圖7的時鐘樹電路結構的哈希引擎的示意圖。
400:時鐘源
401i-1:時鐘驅動電路
401i:時鐘驅動電路
401i+1:時鐘驅動電路
401M:時鐘驅動電路
402i-1:第一組時鐘緩衝電路
402i:第一組時鐘緩衝電路
402i+1:第一組時鐘緩衝電路
402M:第一組時鐘緩衝電路
403i-1:第一類寄存器
403i:第一類寄存器
403i+1:第一類寄存器
403M:第一類寄存器
404i-1:第二類寄存器
404i:第二類寄存器
404i+1:第二類寄存器
404M:第二類寄存器
405i-1:組合邏輯
405i:組合邏輯
405i+1:組合邏輯
406i-1:第二組時鐘緩衝電路
406i:第二組時鐘緩衝電路
406i+1:第二組時鐘緩衝電路
406M:第二組時鐘緩衝電路
407i-1:第三類寄存器
407i:第三類寄存器
407i+1:第三類寄存器
407M:第三類寄存器
Claims (17)
- 一種哈希引擎,包括:輸入模組,被配置為接收資料塊;運算模組,被配置為對接收的資料塊進行哈希運算,所述運算模組包括以流水線結構布置的多個運算級以使得基於所述資料塊的數字信號沿著所述多個運算級依次傳遞,所述多個運算級中的每個運算級包括多個寄存器和組合邏輯模組,其中在每一當前運算級中,所述多個寄存器中的第一組寄存器的輸出端至少耦接到當前運算級的組合邏輯模組的輸入端,並且所述多個寄存器中的第二組寄存器的輸入端耦接到前一運算級的組合邏輯模組的輸出端;和時鐘模組,被配置為向所述多個運算級的每一個運算級提供時鐘信號,所述時鐘模組包括多級時鐘驅動電路以使得來自於時鐘源的時鐘信號沿著所述多級時鐘驅動電路依次傳遞,其中對於所述多個運算級的所述第一組寄存器和所述第二組寄存器,所述數字信號的傳遞方向與所述時鐘信號的傳遞方向相同。
- 如請求項1所述之哈希引擎,其中在每一當前運算級中,所述多個寄存器中的第三組寄存器的輸入端耦接到前一運算級中的相應寄存器的輸出端,並且其輸出端耦接到下一運算級中的相應寄存器的輸入端,並且其中對於所述多個運算級的所述第三組寄存器,所述數字信號的傳遞方向與所述時鐘信號的傳遞方向相反。
- 如請求項2所述之哈希引擎,其中所述時鐘模組還包括用於所述多個寄存器中的每個寄存器的時鐘緩衝電路,每個寄存器的時鐘信號端耦接到用於每個寄存器的時鐘緩衝電路的輸出端,以及其中 用於每一當前運算級的所述第一組寄存器和所述第二組寄存器中的每個寄存器的時鐘緩衝電路的輸入端耦接到用於當前運算級的時鐘驅動電路的輸出端。
- 如請求項3所述之哈希引擎,其中每一當前運算級的所述多個寄存器還包括一個或多個附加寄存器,所述一個或多個附加寄存器中的一個附加寄存器的輸入端耦接到當前運算級的所述第一組寄存器中的特定寄存器的輸出端,其輸出端耦接到下一運算級的對應於所述特定寄存器的寄存器的輸入端,並且其時鐘信號端耦接到用於該一個附加寄存器的時鐘緩衝電路的輸出端。
- 如請求項4所述之哈希引擎,其中所述哈希引擎用於執行SHA-256算法,每一當前運算級的所述多個寄存器至少包括第一至第十六寄存器(W0……W15),所述第一組寄存器包括第一、第二、第十和第十五寄存器(W0、W1、W9、W14),以及所述第二組寄存器包括第十六寄存器(W15),所述一個或多個附加寄存器包括第十七寄存器(W9_t)和第十八寄存器(W14_t),其中:第十七寄存器(W9_t)的輸入端耦接到當前運算級的第十寄存器(W9)的輸出端,其輸出端耦接到下一運算級的第九寄存器(W8)的輸入端,並且其時鐘信號端耦接到用於該第十七寄存器的時鐘緩衝電路的輸出端,以及第十八寄存器(W14_t)的輸入端耦接到當前運算級的第十五寄存器(W14)的輸出端,其輸出端耦接到下一運算級的第十四寄存器(W13)的輸入端,並且其時鐘信號端耦接到用於該第十八寄存器的時鐘緩衝電路的輸出端。
- 如請求項5所述之哈希引擎,其中,所述第三組寄存器包括第三至第九寄存器(W2……W8)和第十一至第十四寄存器(W10……W13)。
- 如請求項6所述之哈希引擎,其中,對於每一運算級的所述第三至第八寄存器(W2......W7),用於第k個寄存器(Wk-1)的時鐘緩衝電路的輸入端耦接到用於下下一運算級的第k-2個寄存器(Wk-3)的時鐘緩衝電路的輸出端,每一運算級的第k-1個寄存器(Wk-2)的時鐘信號端耦接到用於前一運算級的第k個寄存器(Wk-1)的時鐘緩衝電路的輸出端,其中k為偶數且3k8,用於所述第十七寄存器(W9_t)的時鐘緩衝電路的輸入端耦接到用於下下一運算級的第八寄存器(W7)的時鐘緩衝電路的輸出端,以及其中每一運算級的第九寄存器(W8)的時鐘信號端耦接到用於前一運算級的第十七寄存器(W9_t)的時鐘緩衝電路的輸出端。
- 如請求項5所述之哈希引擎,其中,所述第三組寄存器包括第三至第六寄存器(W2……W5)、第八至第九寄存器(W7、W8)、和第十一至第十四寄存器(W10……W13),所述一個或多個附加寄存器還包括第十九寄存器(W6_t),其輸入端耦接到當前運算級的第七寄存器(W6)的輸出端,其輸出端耦接到下一運算級的第六寄存器(W5)的輸入端,並且其時鐘信號端耦接到用於該第十九寄存器的時鐘緩衝電路的輸出端,所述用於第十九寄存器(W6_t)的時鐘緩衝電路的輸入端耦接到用於下一運算級的第六寄存器(W5)的時鐘緩衝電路的輸出端, 用於每一當前運算級的第七寄存器(W6)的時鐘緩衝電路的輸入端耦接到用於當前運算級的時鐘驅動電路的輸出端,以及其中對於每一當前運算級的所述第三至第六寄存器(W2......W5)和第八至第九寄存器(W7、W8),用於第k個寄存器(Wk-1)的時鐘緩衝電路的輸入端耦接到用於下一運算級的第k-1個寄存器(Wk-2)的時鐘緩衝電路的輸出端,其中k為整數且3k6或8k9。
- 如請求項5所述之哈希引擎,其中,所述第三組寄存器包括第三至第五寄存器(W2……W4)、第七至第九寄存器(W6……W8)、和第十一至第十四寄存器(W10……W13),所述一個或多個附加寄存器還包括第二十寄存器(W5_t),其輸入端耦接到當前運算級的第六寄存器(W5)的輸出端,其輸出端耦接到下一運算級的第五寄存器(W4)的輸入端,並且其時鐘信號端耦接到用於該第二十寄存器的時鐘緩衝電路的輸出端,所述用於第二十寄存器(W5_t)的時鐘緩衝電路的輸入端耦接到用於下一運算級的第五寄存器(W4)的時鐘緩衝電路的輸出端,用於每一當前運算級的第六寄存器(W5)的時鐘緩衝電路的輸入端耦接到用於當前運算級的時鐘驅動電路的輸出端,以及其中對於每一運算級的所述第三至第五寄存器(W2......W4)和第七至第九寄存器(W6......W8),用於第k個寄存器(Wk-1)的時鐘緩衝電路的輸入端耦接到用於下一運算級的第k-1個寄存器(Wk-2)的時鐘緩衝電路的輸出端,其中k為整數且3k5或7k9。
- 如請求項3所述之哈希引擎,其中所述多級時鐘驅動電路中的每一級時鐘驅動電路包括奇數個反相器。
- 如請求項3所述之哈希引擎,其中用於所述第一組寄存器和所述第二組寄存器中的每個寄存器的時鐘緩衝電路包括兩個時鐘緩衝器,並且用於所述第三組寄存器中的每個寄存器的時鐘緩衝電路包括一個時鐘緩衝器。
- 一種時鐘樹電路,包括:時鐘源,用於提供基本時鐘信號;和多級時鐘驅動電路,其中來自於所述時鐘源的基本時鐘信號沿著所述多級時鐘驅動電路依次傳遞,所述多級時鐘驅動電路中的每一級時鐘驅動電路用於為多個運算級的每個運算級提供時鐘信號,其中所述多個運算級以流水線結構布置以使得基於接收的資料塊的數字信號沿著所述多個運算級依次傳遞,所述多個運算級中的每個運算級包括多個寄存器和組合邏輯模組,其中在每一當前運算級中,所述多個寄存器中的第一類寄存器的輸出端至少耦接到當前運算級的組合邏輯模組的輸入端,所述多個寄存器中的第二類寄存器的輸入端耦接到前一運算級的組合邏輯模組的輸出端,並且所述多個寄存器中的第三類寄存器的輸入端耦接到前一運算級中的相應寄存器的輸出端,並且其輸出端耦接到下一運算級中的相應寄存器的輸入端,其中當前運算級中的至少一部分第三類寄存器的輸入端耦接到前一運算級中的相 應第一類寄存器的輸出端,並且當前運算級中的至少另一部分第三類寄存器的輸出端耦接到後一運算級中的相應第一類寄存器的輸入端,其中對於每一當前運算級中的所述第一類寄存器和所述第二類寄存器,所述數字信號的傳遞方向與所述時鐘信號的傳遞方向相同,以及其中對於每一當前運算級中的所述第三類寄存器,所述數字信號的傳遞方向與所述時鐘信號的傳遞方向相反。
- 一種計算晶片,包括:一個或多個如請求項1至13中任一項所述之哈希引擎。
- 一種算力板,包括:一個或多個如請求項15所述之計算晶片。
- 一種資料處理設備,包括:一個或多個如請求項16所述之算力板。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687806.8 | 2020-07-16 | ||
CN202010687806.8A CN111651402A (zh) | 2020-07-16 | 2020-07-16 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202139027A TW202139027A (zh) | 2021-10-16 |
TWI804890B true TWI804890B (zh) | 2023-06-11 |
Family
ID=72350233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110121846A TWI804890B (zh) | 2020-07-16 | 2021-06-16 | 時鐘樹電路、哈希引擎、計算晶片、算力板和資料處理設備 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11522546B2 (zh) |
CN (1) | CN111651402A (zh) |
TW (1) | TWI804890B (zh) |
WO (1) | WO2022012252A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930682A (zh) * | 2020-07-16 | 2020-11-13 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN111651403A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN111651402A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN114528246A (zh) * | 2020-11-23 | 2022-05-24 | 深圳比特微电子科技有限公司 | 运算核、计算芯片和加密货币矿机 |
CN114912405A (zh) * | 2021-02-08 | 2022-08-16 | 深圳比特微电子科技有限公司 | 采用全定制布局摆放的芯片以及用于实现挖矿算法的电子装置 |
US12026119B2 (en) * | 2022-06-10 | 2024-07-02 | Chain Reaction Ltd. | Cryptocurrency miner and device enumeration |
CN116861842B (zh) * | 2023-09-04 | 2023-12-19 | 珠海凌烟阁芯片科技有限公司 | 一种可调节分段式反向时钟树的实现方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102195638A (zh) * | 2011-03-28 | 2011-09-21 | 东南大学 | 一种低延时数字时钟分频方法 |
CN102567557A (zh) * | 2010-12-20 | 2012-07-11 | 国际商业机器公司 | 用于构建用于集成电路设计的时钟树的方法和装置 |
CN105306068A (zh) * | 2015-10-30 | 2016-02-03 | 南京理工大学 | 一种基于时钟调相的并串转换电路 |
CN111061335A (zh) * | 2019-12-12 | 2020-04-24 | 涌现(南京)芯片科技有限公司 | 时钟网络电路、电路***、芯片及电子设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160112200A1 (en) * | 2014-10-17 | 2016-04-21 | 21, Inc. | Cryptographic hashing circuitry having improved scheduling efficiency |
US10097345B2 (en) * | 2015-04-14 | 2018-10-09 | PeerNova, Inc. | Secure hash algorithm in digital hardware for cryptographic applications |
KR20170025447A (ko) * | 2015-08-28 | 2017-03-08 | 삼성전자주식회사 | 클락 파워를 줄일 수 있는 집적 회로를 설계하는 방법 |
US20180004242A1 (en) * | 2016-06-29 | 2018-01-04 | Intel Corporation | Low clock-energy 3-phase latch-based clocking scheme |
CN110046888B (zh) * | 2018-01-15 | 2021-06-29 | 北京比特大陆科技有限公司 | 一种xmr挖矿算法的硬件实现方法及装置 |
CN110046875B (zh) * | 2018-01-15 | 2021-06-29 | 北京比特大陆科技有限公司 | 一种siacoin挖矿算法的硬件实现方法及装置 |
CN108427575B (zh) * | 2018-02-01 | 2022-03-15 | 深圳市安信智控科技有限公司 | 全流水结构sha-2消息扩展优化方法 |
CN208861273U (zh) * | 2018-06-25 | 2019-05-14 | 北京嘉楠捷思信息技术有限公司 | 多路并联寄存器及应用其的数据运算单元、芯片、算力板和计算设备 |
CN110633104A (zh) * | 2018-06-25 | 2019-12-31 | 北京嘉楠捷思信息技术有限公司 | 多路并联寄存器 |
US10979214B2 (en) * | 2018-07-24 | 2021-04-13 | Martin Spence Denham | Secure hash algorithm implementation |
CN111404550B (zh) * | 2019-01-03 | 2022-09-09 | 无锡华润上华科技有限公司 | 模数转换器及其时钟产生电路 |
CN110311655A (zh) * | 2019-06-27 | 2019-10-08 | 北京嘉楠捷思信息技术有限公司 | 免保持动态d触发器、数据处理单元、芯片、算力板及计算设备 |
CN110543481B (zh) * | 2019-08-23 | 2022-12-06 | 紫光展锐(重庆)科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN110825210B (zh) * | 2019-11-12 | 2022-06-03 | 飞腾信息技术有限公司 | 片上***的时钟树结构的设计方法、装置、设备及介质 |
CN111651402A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN212515800U (zh) * | 2020-07-16 | 2021-02-09 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 |
-
2020
- 2020-07-16 CN CN202010687806.8A patent/CN111651402A/zh active Pending
-
2021
- 2021-06-16 TW TW110121846A patent/TWI804890B/zh active
- 2021-06-16 WO PCT/CN2021/100256 patent/WO2022012252A1/zh active Application Filing
- 2021-06-16 US US17/627,028 patent/US11522546B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567557A (zh) * | 2010-12-20 | 2012-07-11 | 国际商业机器公司 | 用于构建用于集成电路设计的时钟树的方法和装置 |
CN102195638A (zh) * | 2011-03-28 | 2011-09-21 | 东南大学 | 一种低延时数字时钟分频方法 |
CN105306068A (zh) * | 2015-10-30 | 2016-02-03 | 南京理工大学 | 一种基于时钟调相的并串转换电路 |
CN111061335A (zh) * | 2019-12-12 | 2020-04-24 | 涌现(南京)芯片科技有限公司 | 时钟网络电路、电路***、芯片及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US11522546B2 (en) | 2022-12-06 |
CN111651402A (zh) | 2020-09-11 |
WO2022012252A1 (zh) | 2022-01-20 |
TW202139027A (zh) | 2021-10-16 |
US20220271753A1 (en) | 2022-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI804890B (zh) | 時鐘樹電路、哈希引擎、計算晶片、算力板和資料處理設備 | |
TWI784457B (zh) | 時鐘電路系統、計算晶片、算力板和資料處理設備 | |
CN212515800U (zh) | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 | |
CN111930682A (zh) | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 | |
Vergos et al. | On modulo 2^ n+ 1 adder design | |
CN212515801U (zh) | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 | |
WO2021233198A1 (zh) | 用于执行散列算法的电路和方法 | |
CN111651403A (zh) | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 | |
CN212160484U (zh) | 时钟电路***、计算芯片、算力板和数字货币挖矿机 | |
CN212515799U (zh) | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 | |
Aagaard et al. | Hardware design and analysis of the ACE and WAGE ciphers | |
Kakde et al. | Design of area and power aware reduced Complexity Wallace Tree multiplier | |
Alioto et al. | A simple strategy for optimized design of one-level carry-skip adders | |
TWI783425B (zh) | 時鐘電路、計算晶片、算力板和資料處理設備 | |
Somasekhar et al. | A 230-MHz half-bit level pipelined multiplier using true single-phase clocking | |
Shi et al. | An enhanced multiway sorting network based on n-sorters | |
Das et al. | A timing-driven approach to synthesize fast barrel shifters | |
Burian et al. | VLSI-efficient implementation of full adder-based median filter | |
Sen Gupta et al. | One byte per clock: A novel rc4 hardware | |
JPH05191272A (ja) | カウンタ回路およびその応用回路 | |
WO2022105252A1 (zh) | 运算核、计算芯片和数据处理设备 | |
Dimitrakopoulos et al. | Sorter based permutation units for media-enhanced microprocessors | |
Mumolo | VHDL design of a scalable VLSI sorting device based on pipelined computation | |
CN212086173U (zh) | 时钟电路、计算芯片、算力板和数字货币挖矿机 | |
Lin et al. | A novel approach for CMOS parallel counter design |