TW201717573A - 用於密碼雜湊運算之硬體加速器 - Google Patents

用於密碼雜湊運算之硬體加速器 Download PDF

Info

Publication number
TW201717573A
TW201717573A TW105131872A TW105131872A TW201717573A TW 201717573 A TW201717573 A TW 201717573A TW 105131872 A TW105131872 A TW 105131872A TW 105131872 A TW105131872 A TW 105131872A TW 201717573 A TW201717573 A TW 201717573A
Authority
TW
Taiwan
Prior art keywords
digest
register
function
bits
word
Prior art date
Application number
TW105131872A
Other languages
English (en)
Other versions
TWI697228B (zh
Inventor
維克倫 B. 蘇瑞斯
蘇德赫 K. 薩帕席
沙努 K. 馬修
Original Assignee
英特爾公司
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 英特爾公司 filed Critical 英特爾公司
Publication of TW201717573A publication Critical patent/TW201717573A/zh
Application granted granted Critical
Publication of TWI697228B publication Critical patent/TWI697228B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Storage Device Security (AREA)

Abstract

在一實施例中,一處理器包括一硬體加速器,其接收待使用密碼雜湊演算法處理之一訊息;將多個摘要詞儲存於多個摘要暫存器中;執行多個回合之該密碼雜湊演算法,其中該多個回合經劃分為第一及第二組回合;在該第一組中之各回合之各循環中,將來自該第一摘要暫存器之W個位元用於一第一函式及將來自該第二摘要暫存器之N個位元用於一第二函式;在該第二組中之各回合之各循環中,將來自該第二摘要暫存器之W個位用於該第二函式及將來自該第一摘要暫存器之N個位元用於該第二函式。描述並主張其他實施例。

Description

用於密碼雜湊運算之硬體加速器
發明領域 實施例大體上係關於密碼術。更特定而言,實施例係關於使用硬體加速器之密碼雜湊運算。
發明背景 密碼雜湊函式為應用於數位資料之數學運算,且其可提供對數位資料之認證。舉例而言,密碼雜湊函式可用於數位簽章、訊息認證碼(MAC)、熵提取等等。一些類型之密碼雜湊演算法包括安全雜湊演算法0 (SHA-0)、SHA-1、SHA-2及SHA-3。
依據本發明之一實施例,係特地提出一種一種處理器,包含:用於執行一密碼雜湊演算法之一硬體加速器,該硬體加速器用以:接收要使用該密碼雜湊演算法處理之一訊息;將多個摘要字儲存於多個摘要暫存器中,其中各摘要字具有W個位元之一大小,其中各摘要字包含各具有N個位元之一大小的多個部分,其中該多個摘要暫存器包括一第一摘要暫存器及一第二摘要暫存器;執行該密碼雜湊演算法之多個回合,其中各回合包含多個C循環,其中該多個回合被分成一第一組回合及一第二組回合,其中該第一組及該第二組選自一組偶數回合及一組奇數回合;在該第一組中之各回合之各循環中,將來自該第一摘要暫存器之W個位元用於一第一函式,並將來自該第二摘要暫存器之N個位元用於一第二函式;在該第二組中之各回合之各循環中,將來自該第二摘要暫存器之W個位元用於該第一函式,並將來自該第一摘要暫存器之N個位元用於該第二函式。
較佳實施例之詳細說明 安全雜湊演算法2 (SHA-2)族為由美國國家標準及測試研究所(NIST)標準化之一組密碼雜湊函式。舉例而言,SHA-2族之標準描述於聯邦資訊處理標準(FIPS)出版物180-4中。SHA-2族包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224及SHA-512/256。習知地,執行SHA-2演算法之裝置包括經設定大小以處理用於該演算法之全資料路徑的硬體元件。舉例而言,SHA-256演算法習知地使用32位元資料路徑,且以迭代方式經六十四回合計算組合256位元摘要與512位元訊息。在另一實例中,SHA-512演算法習知地使用64位元資料路徑,且以迭代方式經八十回合計算組合512位元摘要與1024位元訊息。然而,處理整個資料路徑所需之電路面積及功率可限制併入SHA-2演算法之應用程式或裝置。
根據一些實施例,硬體密碼加速器可使用減少之資料路徑來處理SHA-2演算法。在一些實施例中,密碼加速器可使用減少之資料路徑在各回合之多個循環中執行SHA-2運算。使用較小之資料路徑可減少電路面積及功率消耗以執行SHA-2演算法。在一些實施例中,密碼加速器可併入至小型及/或簡化裝置(例如,智慧型電氣設備、可穿戴電腦等)中。
儘管參考特定實施描述以下實施例,但實施例並未在此方面受到限制。特定而言,考慮本文所描述之實施例之類似技術及教示可應用於其他類型之電路、半導體裝置、處理器、系統等。舉例而言,所揭示之實施例可實施於任何類型的電腦系統中,包括伺服器電腦(例如,塔式、機架式、刀鋒式、微型伺服器等)、通訊系統、儲存系統、任何組配之桌上型電腦、膝上型電腦、筆記型電腦及平板電腦(包括2:1平板電腦、平板手機等)。
另外,所揭示之實施例亦可用於其他裝置中,諸如手持型裝置、系統單晶片(SOC)及嵌入式應用。手持型裝置之一些實例包括蜂巢式電話,諸如智慧型電話、網際網路協定裝置、數位攝影機、個人數位助理(PDA)及手持型PC。嵌入式應用可通常微控制器、數位信號處理器(DSP)、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器、可穿戴裝置或可執行以下教示之功能及操作的任何其他系統。此外,實施例可實施於具有標準話音功能性之行動終端中,諸如行動電話、智慧型電話及平板手機,及/或實施於無標準無線話音功能通訊能力之非行動終端中,諸如多種可穿戴裝置、平板電腦、筆記型電腦、桌上型電腦、微型伺服器、伺服器等等。
現參看圖1A,其展示根據一或多個實施例之系統100之方塊圖。在一些實施例中,系統100 可為電子裝置或組件之全部或一部分。舉例而言,系統100可為蜂巢式電話、電腦、伺服器、網路裝置、系統單晶片(SoC)、控制器、無線收發器、電力供應器單元等。 此外,在一些實施例中,系統100可為相關或互連裝置之任何分組,諸如,資料中心,計算叢集等。
如圖1A中所示,系統100可包括以操作方式耦接至系統記憶體105之處理器110。此外,雖然未圖示於圖1A中,但系統100可包括其他組件。處理器110可為通用硬體處理器(例如,中央處理單元(CPU))。如圖所示,處理器110可包括任何數目的處理核心115及密碼加速器118。各核心115可為通用處理核心。系統記憶體105可藉由任何類型之電腦記憶體(例如,動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、非依電性記憶體(NVM)、DRAM與NVM之組合,等等)實施。
在一或多個實施例中,密碼加速器118可為專用於執行密碼雜湊運算之硬體單元。舉例而言,密碼加速器118可為任何硬體單元,諸如密碼共處理器、插入卡、模組、晶片、處理區塊等。密碼加速器118可對輸入資料執行密碼雜湊運算。舉例而言,在一些實施例中,密碼加速器118可執行基於一個或多個SHA-2演算法之函式(例如,SHA-256演算法)。此外,密碼加速器118可使用減少之資料路徑大小N執行密碼雜湊運算。舉例而言,密碼加速器118可使用2位元資料路徑、4位元資料路徑、8位元資料路徑等執行SHA-2演算法。在一些實施例中,密碼加速器118可以各劃分成多個循環之多個回合來執行密碼雜湊運算。
現參看圖1B,其展示根據一或多個實施例之加速器120之方塊圖。加速器120為大體上對應於密碼加速器118 (展示於圖1A中)之實例。特定而言,加速器120可為用於使用4位元資料路徑執行SHA-256演算法之實例實施。 應注意,圖1B繪示實例且不意欲限制實施例。
如圖1B中所示,加速器120可包括摘要暫存器121、摘要邏輯125、訊息暫存器123、擴展器邏輯127、第一開關122及第二開關124。 摘要暫存器121中之各者可各儲存W個位元之摘要字(在本文中被稱作「字大小」)。此外,訊息暫存器123中之各者可各儲存W個位元之訊息字。
如上文所論述,圖1B繪示加速器120使用4位元資料路徑執行SHA-256演算法之實例。 因此,摘要暫存器121在圖1B中展示為具有256位元之總大小且包括八個暫存器(經識別為A0、A1 C、D、E0、E1、G及H),其各儲存具有32位元字大小之摘要字。此外,訊息暫存器123在圖1B中展示為具有512位元之總容量且包括十六個暫存器(經識別為[0]至[15]),其各儲存具有32位元字大小之訊息字。
在一些實施例中,加速器120可以多個回合執行密碼雜湊運算,其中各回合包括數目為C之處理循環。回合中之循環之數目C之可基於字大小W及/或資料路徑大小N。舉例而言,在一些實施例中,循環之數目C可等於字大小W除以資料路徑大小N。 參看圖1B中所示之實例,假定加速器120使用32位元之字大小W及4位元之資料路徑大小N。因此,在圖1B所示之實例中,各回合可包括數目為C之八個循環。
如圖所示,在SHA-256演算法之初始回合中,第一開關122可將初始狀態值提供至摘要暫存器121。此外,第二開關124可將所接收之訊息提供至訊息暫存器123。在一些實施例中,在各回合中,摘要邏輯125消耗儲存於摘要暫存器121中之256位元摘要、32位元訊息字[15]及32位元常量Kt。此外,摘要邏輯125產生新的256位元摘要。如圖所示,新的256位元摘要經由第一開關122儲存於摘要暫存器121中。下文參看圖1C至圖1D來描述由摘要邏輯125執行之運算。
在一些實施例中,在各回合中,擴展器邏輯127消耗四個訊息字[1]、[6]、[14]及[15],共計128位元。此外,擴展器邏輯127產生新的32位元訊息字。如圖所示,新32位元訊息字經由第二開關124儲存於訊息暫存器123中。下文參看圖1E來描述由擴展器邏輯127執行之運算。
現參看圖1C,其展示根據一或多個實施例之方塊圖130。圖130可大體上對應於圖1B中所示之實例。具體而言,圖130展示對應於使用SHA-256演算法及4位元資料路徑之加速器120之摘要邏輯125及摘要暫存器121之實例。應注意,圖1C繪示實例且不意欲限制實施例。
如圖1C中所示,摘要邏輯125可包括接收摘要字A、B、C、D、E、F、G及H之輸入。在一些實施例中,輸入A在各回合之各循環中接收全32位元A摘要字。類似地,E輸入在各循環中接收全32位元E摘要字。對比而言,輸入B、C、D、F、G及H根據用於圖1C中所示之實例中之減小的4位元資料路徑僅接收其對應摘要字之4位元部分(亦即,分別儲存於C摘要暫存器133、D摘要暫存器134、G摘要暫存器137及H摘要暫存器138中之摘要字)。下文參看圖1D來進一步描述摘要邏輯125對輸入A至H之使用。
如圖1C中所示,A0摘要暫存器131、A1摘要暫存器132、E0摘要暫存器135及E1摘要暫存器136之資料輸入及輸出由開關根據控制信號「R」控制。在一些實施例中,控制信號「R」可為指示當前回合係偶數抑或奇數之二進位信號。舉例而言,在一些實施例中,控制信號「R」可在當前回合為偶數時具有值「1」,且在當前回合為奇數時可具有值「0」。
在一些實施例中,A0摘要暫存器131及A1摘要暫存器132可基於當前回合具有偶數抑或奇數數目而在儲存摘要字A與摘要字B之間交替。舉例而言,在一些實施例中,在偶數回合期間,A0摘要暫存器131可儲存摘要字A且A1摘要暫存器132可儲存摘要字B。此外,在此等實施例中,在奇數回合期間,A0摘要暫存器131可儲存摘要字B且A1摘要暫存器132可儲存摘要字A。如圖1C中所示,控制信號「R」使連接至A0摘要暫存器131及A1摘要暫存器132之輸出端之開關將字A及B分別提供至摘要邏輯125之輸入A及輸入B。
在一些實施例中,E0摘要暫存器135及E1摘要暫存器136可基於當前回合具有偶數抑或奇數數目而在儲存摘要字E與摘要字F之間交替。舉例而言,在一些實施例中,在偶數回合期間,E0摘要暫存器135可儲存摘要字E且E1摘要暫存器136可儲存摘要字。此外,在此等實施例中,在奇數回合期間,E0摘要暫存器135可儲存摘要字F且E1摘要暫存器136可儲存摘要字E。如圖1C中所示,控制信號「R」使連接至E0摘要暫存器135及E1摘要暫存器136之輸出端之開關將字E及F分別提供至摘要邏輯125之輸入E及輸入F。
在一些實施例中,摘要邏輯125在各循環中產生4位元值A_new及E_new。A_New值經提供至當前儲存摘要字B之摘要暫存器(亦即,A0摘要暫存器131或A1摘要暫存器132,視回合係奇數抑或偶數而定)。此外,摘要字B可右移4位元,且A_New值可添加至摘要字B之最高有效位元部分。摘要字B之最低有效4位元部分可右移至摘要字C中。摘要字C之最低有效4位元部分可右移至摘要字D中。
在一些實施例中,當前儲存摘要字A之摘要暫存器(亦即,A0摘要暫存器131或A1摘要暫存器132)可執行4位元循環移位,以使得摘要字A之最低有效4位元部分經移位回至摘要字A之最高有效4位元部分。因此,在各回合(例如,8個循環)結束時,摘要字A返回至與回合開始時相同之值。
在一些實施例中,E_New值經提供至當前儲存摘要字F之摘要暫存器(亦即,E0摘要暫存器135或E1摘要暫存器136,視回合係奇數抑或偶數而定)。此外,摘要字F可右移4位元,且E_New值可添加至摘要字F之最高有效位元部分。摘要字F之最低有效4位元部分可右移至摘要字G中。摘要字G之最低有效4位元部分可右移至摘要字H中。
在一些實施例中,當前儲存摘要字E之摘要暫存器(亦即,E0摘要暫存器135或E1摘要暫存器136)可執行4位元循環移位,以使得摘要字E之最低有效4位元部分經移位回至摘要字E之最高有效4位元部分。因此,在各回合結束時,摘要字E返回至與回合開始時相同之值。
在一些實施例中,摘要邏輯125可在各循環中產生3位元進位A值。進位A值可儲存於Carry_A暫存器139中,且可在下一循環中經提供回至摘要邏輯125。此外,摘要邏輯125亦可在各循環中產生3位元進位E值。進位E值可儲存於Carry_E暫存器140中,且可在下一循環中經提供回至摘要邏輯125。在八個循環結束時,可清除Carry_A暫存器139及Carry_E暫存器140以丟棄各別進位值。
應注意,上文參看圖1C所論述之各種4位元值係根據用於圖1C中所說明之實例之4位元之資料路徑大小N。因此,考慮在使用不同資料路徑大小N之實施例中,參看圖1C描述為4位元值之各種值亦可使用不同資料路徑大小N。舉例而言,在使用2位元之不同資料路徑大小N之實施例中,摘要邏輯125之輸入B、C、D、F、G及H可接收其對應摘要字之2位元部分。此外,在此等實施例中,摘要字B之最低有效2位元部分可右移至摘要字C中,且摘要字C之最低有效2位元部分可右移至摘要字D中。此外,由摘要邏輯125使用之進位值可相應地變化。在本文中可使用及考慮根據資料路徑大小N之其他變化。
現參看圖1D,其展示根據一或多個實施例之圖150。圖150大體上對應於上文參看圖1B至圖1C所描述之實例。具體而言,圖150展示摘要邏輯125使用SHA-256演算法及4位元資料路徑之實例運算。應注意,圖1D繪示實例且不意欲限制實施例。
在一些實施例中,摘要邏輯125可執行根據SHA-2標準之各種函式。舉例而言,參見圖1D,在各循環中,摘要字A之所有32位元在∑ 0 函式151中處理,該∑ 0 函式151包括一系列移位及輪轉運算,接著係XOR。此外,在各循環中,Maj 函式152包括對摘要字A、B及C之4位元部分之邏輯運算。∑ 0 函式151及Maj 函式152之輸出藉由加法153求和以提供值T2。
如圖所示,在各循環中,摘要字E之32位元在∑ 1 函式155中處理,該∑1 函式155包括一系列移位及輪轉運算,接著係XOR。此外,在各循環中,Ch 函式156對摘要字E、F及G之4位元部分執行邏輯運算。此外,摘要字H之4位元部分、訊息部分Mp及常量部分Kp藉由加法157求和。在一些實施例中,訊息部分Mp係儲存於訊息暫存器[15]中之最低有效4位元,且常量部分Kp係32位元常量Kt之4位元部分。如圖所示,加法157、∑ 1 函式155及Ch 函式156之輸出藉由加法158求和以提供T1值。
在各循環中,摘要字d之4位元部分、值T1及Carry_in_E值(來自圖1C中所示之Carry_E暫存器140)藉由加法159求和以產生4位元E_New值(將儲存於當前包括摘要字F之摘要暫存器中)及3位元Carry_out_E值(將儲存於Carry_E暫存器140中)。此外,在各循環中,T1值、T2值及Carry_in_A值(來自圖1C中所示之Carry_A暫存器139)藉由加法154求和以產生4位元A_New值(將儲存於當前包括摘要字B之摘要暫存器中)及3位元Carry_out_A值(將儲存於Carry_A暫存器139中)。在一些實施例中,加法153、154、157、158及159中之各者為232 模加法。
在一些實施例中,Ch 函式156可用公式表示為:Ch (x,y,z) = (xΛy)+(⌐xΛz)。
此外,在一些實施例中,Maj 函式152可用公式表示為:Maj (x,y,z) = (xΛy)+(xΛz)+(yΛz)。
假定以上函式中之「+」可表示232 模加法。
在一些實施例中,可藉由跨越儲存32位元常量Kt之暫存器或記憶體位置移位4位元而獲得常量部分Kp。替代地,在一些實施例中,可藉由專用邏輯電路各循環新產生常量部分Kp作為4位元值。
應注意,上文參看圖1D所論述之各種4位元值係根據用於圖1D中所說明之實例之4位元之資料路徑大小N。因此,考慮在使用不同資料路徑大小N之實施例中,參看圖1D描述為4位元值之各種值亦可使用不同資料路徑大小N。在本文中可使用及考慮根據資料路徑大小N之其他變化。
現參看圖1E,其展示根據一或多個實施例之SHA-2函式之實例的圖。具體而言,圖1E繪示藉由摘要邏輯125執行之∑ 1 函式155之實例。
當使用4位元資料路徑執行SHA-256演算法時,摘要邏輯125可藉由在32位元暫存器內各循環將32位元摘要字E右輪轉4位元來執行 1 函式155。在循環0處, 1 函式155可用公式表示如下: 1 (E) = E[9:6] XOR E[14:11] XOR E[28:25]
類似地,如圖1E中所示,在每一後續循環中,32位元字E在32位元暫存器內右輪轉4位元。因此,在一些實施例中,針對 1 函式155之各循環自動對準摘要字E之4位元部分。 1 函式155各循環之輸出為4位元。
此外,摘要字A亦可在32位元暫存器內針對各循環右輪轉4位元。因此,在一些實施例中,針對 0 函式151之各循環自動對準摘要字A之4位元部分。 0 函式151各循環之輸出為4位元。
應注意,上文參看圖1E所論述之各種4位元值係根據用於圖1E中所說明之實例之4位元之資料路徑大小N。因此,意欲在使用不同資料路徑大小N之實施例中,參看圖1E描述為4位元值之各種值亦可使用不同資料路徑大小N。在本文中可使用及考慮根據資料路徑大小N之其他變化。
現參看圖1F,其展示根據一或多個實施例之圖160。圖160可大體上對應於圖1B中所示之實例。具體而言,圖160展示對應於使用SHA-256演算法及4位元資料路徑之加速器120之擴展器邏輯127及訊息暫存器123的實例。應注意,圖1F繪示實例且不意欲限制實施例。
如圖1F中所示,在各循環中,擴展器邏輯127可接收全32位元訊息字W1 及W14 (亦即,儲存於訊息暫存器[1]及[14]中之訊息字)。擴展器邏輯127亦可接收訊息字W6 及W15 之4位元部分(亦即,儲存於訊息暫存器[6]及[15]中之訊息字)。擴展器邏輯127可使用32位元訊息字W1 及W14 執行SHA-2函式σ0 及σ1 。此外,擴展器邏輯127可執行函式σ0 及σ1 與訊息字W6 及W15 之232 模加法。在各循環中,可針對W1 、W6 、W14 及W15 訊息字中之各者執行4位元之循環移位。
在各循環中,擴展器邏輯127亦可產生2位元進位值。2位元進位值儲存於進位暫存器165中,並在下一循環中在同一回合中由擴展器邏輯127使用。應注意,進位值及進位暫存器165之2位元大小對應於用於圖1F中所示之實例中之4位元資料路徑。因此,進位值及進位暫存器165之位元大小可根據加速器120所使用之資料路徑大小變化。在一些實施例中,可在各回合結束時(例如,8個循環後)清除進位暫存器165。
在各循環中,擴展器邏輯127可產生新訊息字之4位元部分。在回合之前七個循環中,新訊息之所產生部分可儲存於具有28位元容量之暫時訊息暫存器167中。在回合之第八個循環中,暫時訊息暫存器167及新4位元部分之內容可經組合以形成新的32位元訊息字。此外,在回合之第八個循環中,新訊息字儲存於訊息暫存器[0]中,且先前儲存於各暫存器中之訊息字移位至下一較高訊息暫存器(例如,自訊息暫存器[0]至[1],自訊息暫存器[1]至[2],等等)。在回合結束後(亦即,在回合之第八個循環之後),進位暫存器165及訊息暫存器[15]中之訊息字之進位值可設定成0。
在一些實施例中,擴展器邏輯127可使用以下函式執行SHA-256演算法: σ0 (x) = ROTR7 (x) + ROTR18 (x) + SHR3 (x)  σ1 (x) = ROTR17 (x) + ROTR19 (x) + SHR3 (x)  SHRn (x)=x>>n ROTRn (x)=(x>>n)ν(x<<(32-n))
假定以上函式中之「+」可表示232 模加法。在一些實施例中,232 模加法可藉由對每時脈循環之N個位元相加,使用進位位元及清除每一回合之進位位元(亦即,在C個循環之後)實施。
應注意,上文參看圖1F所論述之各種4位值係根據用於圖1F中所說明之實例之4位元之資料路徑大小N。因此,考慮在使用不同資料路徑大小N之實施例中,參看圖1F描述為4位元值之各種值亦可使用不同資料路徑大小N。此外,回合中的循環數目C及/或擴展器邏輯127所使用之2位元進位值可根據資料路徑大小N變化。在本文中可使用及考慮根據資料路徑大小N之其他變化。
應進一步注意,上文參看圖1B至圖1F所論述之實例係根據SHA-256演算法之使用。然而,考慮一些實施例可使用其他SHA-2演算法且因此上文參考圖1B至圖1F所描述之各種位元大小可根據所使用的SHA-2演算法變化。舉例而言,在使用SHA-512演算法之實施例中,考慮各摘要字及訊息字可包括64位元。此外,在此等實施例中,回合之數目可為八十個。此外,由摘要邏輯125及/或擴展器邏輯127使用的進位值可相應地變化。在本文中考慮根據正使用的SHA-2演算法的其他變化。
亦應注意,當圖1A至圖1F展示各種實例時,實施例就此而言並無限制。特定而言,考慮系統100及/或加速器120可包括不同組件、額外組件、不同組件佈置及/或與圖1A至圖1F中所示數目不同的組件。舉例而言,參見圖1A,考慮密碼加速器118可包括於各核心115中或可在處理器110外部。考慮其他變化且可用於各種實施例。
現參看圖2A,其展示根據一或多個實施例之序列200。在一些實施例中,序列200可由圖1A中所示之密碼加速器118實施。序列200可在硬體、軟體及/或韌體中實施。在硬體實施例中,其可實施為電路及/或微型架構。此外,在韌體及軟體實施例中,其可由儲存於非暫時性機器可讀媒體(諸如光學、半導體或磁性儲存裝置)中之電腦執行指令實施。機器可讀媒體可儲存資料,該資料在由至少一個機器使用時使得至少一個機器製造至少一個積體電路以執行方法。為說明起見,下文可參看展示根據一些實施例之實例之圖1A至圖1F描述序列200中所包含之步驟。然而,本文所論述之各種實施例之範疇就此而言並無限制。
在區塊202處,密碼加速器可接收待使用SHA-2演算法處理之訊息資料。舉例而言,參見圖1A,密碼加速器118可接收待使用SHA-2演算法處理之資料。
在區塊204處,可將一組摘要字儲存於摘要暫存器中。舉例而言,參見圖1B,摘要字A至H可儲存於摘要暫存器121中。在一些實施例中,該組摘要字可自提供至摘要暫存器121之初始狀態值獲得。
在區塊206處,可執行多個處理回合。各回合可包括多個循環,且多個回合可劃分為第一組及第二組。舉例而言,參看圖1C,加速器120可執行SHA-256演算法之64個回合,其中各回合劃分為8個循環。該等回合可劃分為偶數個回合及奇數個回合。在一些實施例中,控制信號「R」(展示於圖1C中)可指示當前回合係偶數的抑或奇數的。
在區塊207處,在第一組回合中之各回合之各循環中,將來自第一摘要暫存器A0之W個位元用於∑ 0 函式,且將來自第二摘要暫存器A1之N個位元用於Maj 函式。舉例而言,參見圖1C至1D,假定第一組回合包括偶數個回合且第二組回合包括奇數個回合。進一步假定,在第一組回合(例如在偶數回合)中,A0摘要暫存器131儲存摘要字A,且A1摘要暫存器132儲存摘要字B。此外,∑ 0 函式151可消耗當前儲存於A0摘要暫存器131中之摘要字A之全32位元。此外,Maj 函式152可消耗當前儲存於A1摘要暫存器132中之摘要字B之4位元部分。
在區塊208處,在第一組回合中之各回合之各循環中,將來自第三摘要暫存器E0之W個位元用於1 函式,且將來自第四摘要暫存器E1之N個位元用於Ch 函式。舉例而言,參見圖1C至圖1D,假定在第一組回合中,E0摘要暫存器135儲存摘要字E,且E1摘要暫存器136儲存摘要字F。此外,1 函式155可消耗當前儲存於E0摘要暫存器135中之摘要字E之全32位元。此外,Ch 函式156可消耗當前儲存於E1摘要暫存器136中之摘要字F之4位元部分。
在區塊209處,在第二組回合中之各回合之各循環中,將來自第二摘要暫存器A1之W個位元用於0 函式,且將來自第一摘要暫存器A0之N個位元用於Maj 函式。舉例而言,參見圖1C至圖1D,假定在第二組回合中(例如在奇數回合中),A1摘要暫存器132儲存摘要字A,且A0摘要暫存器131儲存摘要字B。此外,0 函式151可消耗當前儲存於A1摘要暫存器132中之摘要字A之全32位元。此外,Maj 函式152可消耗當前儲存於A0摘要暫存器131中之摘要字B之4位元部分。
在區塊210處,在第二組回合中之各回合之各循環中,將來自第四摘要暫存器E1之W個位元用於1 函式,且將來自第三摘要暫存器E0之N個位元用於Ch 函式。舉例而言,參見圖1C至圖1D,假定在第一組回合中,E1摘要暫存器136儲存摘要字E,且E0摘要暫存器135儲存摘要字F。此外,1 函式155可消耗當前儲存於E1摘要暫存器136中之摘要字E之全32位元。此外,Ch 函式156可消耗當前儲存於E0摘要暫存器135中之摘要字F之4位元部分。在區塊210後,完成序列200。
現參看圖2B,其展示根據一或多個實施例之序列220。在一些實施例中,序列220可由圖1A中所示之密碼加速器118實施。序列220可在硬體、軟體及/或韌體中實施。在硬體實施例中,其可實施為電路及/或微型架構。此外,在韌體及軟體實施例中,其可由儲存於非暫時性機器可讀媒體(諸如光學、半導體或磁性儲存裝置)中之電腦執行指令實施。機器可讀媒體可儲存資料,該資料在由至少一個機器使用時使得至少一個機器製造至少一個積體電路以執行方法。為說明起見,下文可參看圖1A至圖1F描述序列220中所包含之步驟,其展示根據一些實施例之實例。然而,本文所論述之各種實施例之範疇就此而言並無限制。
在區塊222處,可接收待使用密碼雜湊演算法處理之訊息。舉例而言,參見圖1A,密碼加速器118可接收待使用SHA-2演算法處理之資料。
在區塊224處,可將訊息儲存於一組訊息暫存器中。舉例而言,參見圖1B,十六個A至H儲存於訊息暫存器[0:15]中。
在區塊226處,可將一組摘要字儲存於摘要暫存器中。舉例而言,參見圖1B,摘要字A至H可儲存於摘要暫存器121中。
在區塊228處,可執行多個處理捨位。各回合可包括多個循環,且多個回合可劃分為第一組及第二組。舉例而言,參看圖1C,加速器120可執行SHA-256演算法之64個回合,其中各回合包括8個循環。該等回合可識別為偶數或奇數。
在區塊230處,在第一組回合之各回合中之各循環中,摘要字A儲存於第一摘要暫存器A0中,且摘要字B儲存於第二摘要暫存器A1中。舉例而言,參見圖1C至1D,假定第一組回合包括奇數個回合且第二組回合包括偶數個回合。在一些實施例中,在第一組回合中(例如在奇數回合中),A0摘要暫存器131儲存摘要字A,且A1摘要暫存器132儲存摘要字B。
在區塊232處,在第一組回合之各回合中之各循環中,摘要字E儲存於第三摘要暫存器E0中,且摘要字F儲存於第四摘要暫存器E1中。舉例而言,參見圖1C至圖1D,在各奇數回合中,E0摘要暫存器135儲存摘要字E,且E1摘要暫存器136儲存摘要字F。
在區塊234處,在第一組回合之各回合中之各循環中,摘要字A儲存於第二摘要暫存器A1中,且摘要字B儲存於第一摘要暫存器A0中。舉例而言,參見圖1C至圖1D,假定在第二組回合中(例如在偶數回合中),A1摘要暫存器132儲存摘要字A,且A0摘要暫存器131儲存摘要字A。
在區塊266處,在第二組回合之各回合中之各循環中,摘要字E儲存於第四摘要暫存器E1中,且摘要字F儲存於第三摘要暫存器E0中。舉例而言,參見圖1C至圖1D,在各偶數回合中,E0摘要暫存器135儲存摘要字F,且E1摘要暫存器136儲存摘要字E。在區塊236之後,完成序列220。
應注意,為了說明而提供圖1A至圖1F及圖2A至圖2B中所示之實例,且該等實例並不意欲限制任何實施例。考慮圖1A至圖1F及圖2A至圖2B中所示之實例之詳情可用於一或多個實施例中之任何位置。
現參看圖3A,其展示根據本發明之一實施例的系統300之方塊圖。如圖3A中所示,系統300可包括各種組件,包括處理器303,其如圖所示為多核心處理器。處理器303可經由外部電壓調節器316耦接至電源供應器317,該外部電壓調節器316可執行第一電壓轉換以向處理器303提供一次穩壓。
正如所見,處理器303可為包括多個核心304a 至304n 之單晶粒處理器。另外,各核心304可與整合式電壓調節器(IVR) 308a 至308n 相關聯,該整合式電壓調節器接收一次穩壓並產生操作電壓以便提供到與IVR 308相關聯之處理器之一或多個代理。因此,可提供IVR實施以允許對各個別核心304之電壓及因此對功率及效能進行細粒度控制。因此,各核心304可在獨立電壓及頻率下操作,實現較大靈活性及提供用於平衡功率消耗與效能之廣泛機會。在一些實施例中,使用多個IVR 308使得能夠將組件分組成單獨功率平面,以使得藉由IVR 308來調節功率及將功率僅供應至群組中之彼等組件。在功率管理期間,當處理器置放於某一低功率狀態中時,可將一個IVR 308之給定功率平面關閉電源或斷電,而另一IVR 308之另一功率平面保持作用中或有充足電力。
仍參見圖3A,額外組件可存在於處理器內,包括輸入/輸出介面313、另一介面314及整合記憶體控制器315。正如所見,該等組件中之各者可由另一整合式電壓調節器308x 供電。在一個實施例中,介面313可依據Intel®快速路徑互連(QPI)協定,其在包括多層(包括實體層、鏈路層及協定層)之相干協定中提供點對點(PtP)連接。又,介面314可依據周邊組件互連高速(PCIeTM )規範,例如,PCI ExpressTM 規範基礎規範版本2.0 (2007年1月17日公佈)。
亦展示功率控制單元(PCU) 312,其可包括硬體、軟體及/或韌體以執行關於處理器303之功率管理操作。正如所見,PCU 312經由數位介面向外部電壓調節器316提供控制資訊,以使外部電壓調節器316產生適當穩壓。PCU 312亦經由另一數位介面向IVR 308提供控制資訊,以控制所產生的操作電壓(或以使相對應的IVR 308在低功率模式下禁用)。在一些實施例中,提供至IVR 308之控制資訊可包括相對應的核心304之功率狀態。
在各種實施例中,PCU 312可包括多種功率管理邏輯單元以執行基於硬體之功率管理。該功率管理可完全由處理器控制(例如,由各種處理器硬體控制,及其可由工作負荷及/或功率、熱或其他處理器約束觸發)及/或可回應於外部來源(諸如,平台或功率管理源或系統軟體)來執行功率管理。
在一些實施例中,密碼加速器310可大體上對應於上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。在一些實施例中,處理器303可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。雖然為了便於說明而未圖示,但應理解,額外組件可存在於處理器303內,諸如,非核心邏輯及諸如內部記憶體(例如一或多個層級之快取記憶體階層等)之其他組件。此外,雖然在圖3A之實施中展示為具有外部電壓調節器,但實施例並未如此受限。
實施例可實施於用於各種市場之處理器中,包括伺服器處理器、桌上型處理器、行動處理器等等。現參看圖3B,其展示根據一或多個實施例之多域處理器301之方塊圖。如圖3B之實施例中所示,處理器301包括多個域。具體而言,核心域321可包括多個核心3200 至320n ,圖形域324可包括一或多個圖形引擎,且系統代理域330可進一步存在。在一些實施例中,系統代理域330相較於核心域可在獨立頻率下執行且可一直保持通電以處置功率控制事件及功率管理,以使得可控制域321及324動態地進入及退出高功率及低功率狀態。域321及324中之各者可在不同電壓及/或功率下操作。應注意,儘管僅展示具有三個域,但應理解,本發明之範疇就此而言並無限制,且額外域可存在於其他實施例中。舉例而言,可存在多個核心域,其中各核心域包括至少一個核心。
大體而言,每一核心320可進一步包括除各種執行單元及額外處理元件外的低層級記憶體。右,各種核心可耦接至彼此及由末層級記憶體(LLC) 3220 至322n之多個單元形成之共用記憶體。在各種實施例中,LLC 322可在核心及圖形引擎以及各種媒體處理電路之間共用。正如所見,環形互連件323因此將核心耦接在一起,並在核心320、圖形域324及系統代理域330之間提供互連。在一個實施例中,互連件323可為核心域321之部分。然而,在其他實施例中,環形互連件323可具有其自有域。
如進一步可見,系統代理域330可包括顯示控制器332,其可提供對相關聯顯示器的控制及至相關聯顯示器之介面。另外,系統代理域330可包括執行功率管理之功率控制單元335。
如圖3B中進一步可見,處理器301可進一步包括整合式記憶體控制器(IMC) 342,其可提供至系統記憶體(例如動態隨機存取記憶體(DRAM))之介面。多個介面3400 至340n 可存在以實現處理器與其他電路系統之間的互連。舉例而言,在一個實施例中,可提供至少一個直接媒體介面(DMI)介面,以及一或多個PCIe™介面。另外,為了提供諸如額外處理器或其他電路之其他代理之間的通訊,亦可提供根據Intel®快速路徑互連件(QPI)協定之一個或多個介面。儘管在圖3B之實施例中以此高層級展示,但應理解本發明之範疇就此而言並無限制。
雖然為了便於說明而在圖3B中未圖示,但在一些實施例中,處理器301可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,處理器301可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
雖然為了便於說明而未圖示,但應理解,額外組件可存在於處理器303內,諸如,非核心邏輯及諸如內部記憶體(例如一或多個層級之快取記憶體階層等)之其他組件。此外,雖然在圖3A之實施中展示為具有外部電壓調節器,但實施例並未如此受限。
現參看圖3C,其展示根據本發明之實施例的處理器302之方塊圖。如圖3C中所示,處理器302可為包括多個核心370a 至370n 之多核心處理器。在一個實施例中,各此類核心可具有獨立功率域且可經組配以基於工作負荷進入或退出作用中狀態及/或最大效能狀態。各種核心可經由互連件375耦接至系統代理或包括各種組件之非核心380。正如所見,非核心380可包括共用快取記憶體382,其可為末層級快取記憶體。另外,非核心380可包括整合式記憶體控制器384以(例如)經由記憶體匯流排與系統記憶體(圖3C中未示)通訊。非核心380亦包括各種介面386a至386n及功率控制單元388,其可包括執行本文所述之功率管理技術之邏輯。
另外,可藉由介面386a至386n進行至各種晶片外組件(諸如,周邊裝置、大容量儲存器等)之連接。雖然在圖3C之實施例中以此特定實施展示,但本發明之範疇就此而言並無限制。
雖然為了便於說明而在3C中未圖示,但在一些實施例中,處理器302可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,處理器302可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
參見圖4,其說明包括多個核心之處理器之實施例。處理器400包括任何處理器或處理裝置,諸如微處理器、嵌入式處理器、數位信號處理器(DSP)、網路處理器、手持型處理器、應用程式處理器、共處理器、系統單晶片(SoC)或其他裝置,以執行程式碼。在一個實施例中,處理器400包括至少兩個核心,即核心401及402,該兩個核心可包括不對稱核心或對稱核心(所說明之實施例)。然而,處理器400可包括可係對稱或不對稱的任何數目個處理元件。
在一個實施例中,處理元件係指支援軟體執行緒的硬體或邏輯。硬體處理元件之實例包括:執行緒單元、執行緒時槽、執行緒、程序單元、內容脈絡、內容脈絡單元、邏輯處理器、硬體執行緒、核心及/或任何其他元件,其能夠保持處理器的狀態,諸如執行狀態或架構狀態。換言之,在一個實施例中,處理元件係指能夠獨立地與諸如軟體執行緒、作業系統、應用程式或其他程式碼的程式碼相關聯的任何硬體。實體處理器通常係指積體電路,其潛在地包括任何數目個其他處理元件,諸如核心或硬體執行緒。
核心常常係指位於積體電路上之能夠維持獨立架構狀態的邏輯,其中每一獨立維持之架構狀態與至少一些專用執行資源相關聯。與核心形成對比,硬體執行緒通常係指位於積體電路上的能夠維持獨立架構狀態之任何邏輯,其中獨立維持之架構狀態共用對執行資源的存取。如可看出,當某些資源經共用且其他資源專用於架構狀態時,硬體執行緒與核心的命名法之間的線重疊。又常常地,核心及硬體執行緒由作業系統視為個別邏輯處理器,其中作業系統能夠個別地排程各邏輯處理器上的操作。
如圖4中所說明,實體處理器400包括兩個核心,即核心401及402。此處,核心401及402被視為對稱核心,亦即具有相同組配、功能單元及/或邏輯的核心。在另一實施例中,核心401包括無序處理器核心,而核心402包括有序處理器核心。然而,核心401及402可個別地選自任何類型之核心,諸如,原生核心、軟體管理核心、經調適以執行原生指令集架構(ISA)之核心、經調適以執行經轉譯ISA之核心、共設計之核心或其他已知核心。而為了進一步論述,當核心402中之單元以類似方式操作時,下文更詳細描述核心401中所說明之功能單元。
如所描繪,核心401包括兩個硬體執行緒401a及401b,其亦可被稱作硬體執行緒時槽401a及401b。因此,諸如作業系統之軟體實體在一個實施例中潛在地將處理器400視為四個分離處理器,亦即,能夠並行地執行四個軟體執行緒的四個邏輯處理器或處理元件。如上文間接提及,第一執行緒與架構狀態暫存器401a相關聯,第二執行緒與架構狀態暫存器401b相關聯,第三執行緒可與架構狀態暫存器402a相關聯,且第四執行緒可與架構狀態暫存器402b相關聯。此處,架構狀態暫存器(401a、401b、402a及402b)中之各者可被稱作處理元件、執行緒時槽或執行緒單元,如上文所描述。如所說明,架構狀態暫存器401a在架構狀態暫存器401b中複寫,因此個別架構狀態/內容脈絡能夠經儲存用於邏輯處理器401a及邏輯處理器401b。在核心401中,諸如分配器及重命名器區塊430中之指令指標以及重命名邏輯之其他較小資源亦可針對執行緒401a及401b複寫。諸如重排序/引退單元435中的重排序緩衝器、ILTB 420、載入/儲存緩衝器及佇列的一些資源可透過分割而共用。諸如通用內部暫存器、頁表基暫存器、低層級資料快取記憶體及資料TLB 415、執行單元440及無序單元435之部分的其他資源潛在地經充分共用。
處理器400常常包括其他資源,該等資源可經充分共用、透過分割共用,或由處理元件專用/專用於處理元件。在圖4中,說明具有處理器之例示性邏輯單元/資源之純粹示例性處理器的實施例。應注意,處理器可包括或省略此等功能單元中的任一者,以及包括任何其他已知功能單元、邏輯或並未描繪的韌體。如所說明,核心401包括簡化代表性無序(OOO)處理器核心。但在不同實施例中可利用有序處理器。OOO核心包括分支目標緩衝器420以預測待執行/進行之分支及指令轉譯緩衝器(I-TLB) 420以儲存指令的位址轉譯項。
核心401進一步包括耦接至提取單元420以解碼所提取元件的解碼模組425。在一個實施例中,提取邏輯包括分別與執行緒時遭401a、401b相關聯的個別定序器。通常,核心401與第一ISA相關聯,其定義/指定在處理器400上可執行的指令。常常,為第一ISA之部分的機器程式碼指令包括指令之一部分(被稱作作業碼),其參考/指定待執行之指令或操作。解碼邏輯425包括電路,該電路自其作業碼辨識出此等指令,且在管線上傳遞經解碼指令以用於如藉由第一ISA定義的處理。舉例而言,在一個實施例中,解碼器425包括經設計或經調適以辨識特定指令(諸如異動指令)之邏輯。作為由解碼器425進行之辨識的結果,架構或核心401採用特定預定動作以執行與適當指令相關聯的任務。重要的是請注意,本文中所描述之任務、區塊、操作及方法中的任一者可回應於單一或多個指令而執行;指令中的一些可為新指令或舊指令。
在一個實例中,分配器及重命名器區塊430包括分配器以保留資源(諸如暫存器檔案)以儲存指令處理結果。然而,執行緒401a及401b潛在地具有無序執行能力,其中分配器及重命名器區塊430亦保留其他資源(諸如重排序緩衝器)以追蹤指令結果。單元430亦可包括暫存器重命名器以將規劃/指令參考暫存器重命名至處理器400內部的其他暫存器。重排序/引退單元435包括組件(諸如上文所提及的重排序緩衝器、載入緩衝器及儲存緩衝器)以支援無序執行之指令的無序執行及稍後有序引退。
在一個實施例中,排程器及執行單元區塊440包括排程器單元以排程執行單元上的指令/操作。舉例而言,浮點指令在具有可用浮點執行單元之執行單元的一埠上排程。亦包括與執行單元相關聯之暫存器檔案以儲存資訊指令處理結果。示例性執行單元包括浮點執行單元、整數執行單元、跳轉執行單元、載入執行單元、儲存執行單元及其他已知執行單元。
低層級資料快取記憶體及資料轉譯緩衝器(D-TLB) 450耦接至執行單元440。資料快取記憶體用以儲存最近使用/經操作之元件(諸如,資料運算元),該等元件潛在地保持在記憶體一致性狀態下。D-TLB用以儲存最近虛擬/線性位址至實體位址的轉譯。作為特定實例,處理器可包括頁表結構以將實體記憶體分割成多個虛擬頁。
此處,核心401及402共用對較高層級或更高層級之快取記憶體410的存取,該快取記憶體410快取最近提取之元件。應注意,較高層級或更高層級係指自執行單元起增加或距執行單元變得更遠的快取記憶體層級。在一個實施例中,較高層級快取記憶體410為末階資料快取記憶體——處理器400上的記憶體階層中的最末快取記憶體,諸如第二或第三階資料快取記憶體。然而,較高層級快取記憶體410不限於此,因為其可與指令快取記憶體相關聯或包括指令快取記憶體。追蹤快取記憶體(一類型之指令快取記憶體)替代地可在解碼器425之後耦接以儲存最近解碼之追蹤。
在所描繪之組配中,處理器400亦包括匯流排介面模組405及功率控制器460,該功率控制器460可根據本發明之實施例執行功率管理。在此情境下,匯流排介面405用以與在處理器400外部之裝置(諸如,系統記憶體及其他組件)通訊。
記憶體控制器470可與諸如一或多個記憶體之其他裝置介接。在實例中,匯流排介面405包括與用於與記憶體介接之記憶體控制器及用於與圖形處理器介接之圖形控制器之環形互連。在SoC環境中,甚至更多裝置(諸如,網路介面、共處理器、記憶體、圖形處理器及任何其他已知電腦裝置/介面)可整合於單晶粒或積體電路上,以提供具有高功能性及低功率消耗之小外觀尺寸。
雖然為了便於說明而在圖4中未圖示,但在一些實施例中,處理器400可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,處理器400可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
現參看圖5,其展示根據本發明之一個實施例之處理器核心之微型架構的方塊圖。如圖5中所示,處理器核心500可為多級管線化無序處理器。核心500可基於所接收之操作電壓在各種電壓下操作,所接收之操作電壓可接收自整合式電壓調節器或外部電壓調節器。
如圖5中可見,核心500包括前端單元510,其可用於提取待執行之指令及將其準備好以便稍後在處理器管線中使用。舉例而言,前端單元510可包括提取單元501、指令快取記憶體503及指令解碼器505。在一些實施中,前端單元510可進一步包括追蹤快取記憶體,連同微碼儲存器以及微操作儲存器。提取單元501可例如自記憶體或指令快取記憶體503提取巨型指令,且將其饋送至指令解碼器505以將其解碼為基元(亦即,微操作)以供由處理器執行。
無序(OOO)引擎515耦接於前端單元510與執行單元520之間,其可用以接收微指令並將其準備用於執行。更具體而言,OOO引擎515可包括各種緩衝器來重排序微指令流及分配執行所需之各種資源,以及提供邏輯暫存器至各種暫存器檔案(諸如,暫存器檔案530及擴展之暫存器檔案535)內之儲存位置上的重命名。暫存器檔案530可包括用於整數及浮點運算之單獨暫存器檔案。擴展之暫存器檔案535可為向量大小之單元提供儲存,例如,每暫存器256或512個位元。
各種資源可存在於執行單元520中,包括(例如)各種整數、浮點及單指令多重資料(SIMD)邏輯單元以及其他專用硬體。舉例而言,此類執行單元可包括一個或多個算術邏輯單元(ALU) 522及一或多個向量執行單元524,以及其他此類執行單元。
來自執行單元之結果可提供至引退邏輯,亦即重排序緩衝器(ROB) 540。更具體而言,ROB 540可包括各種陣列及邏輯以接收與所執行之指令相關聯之資訊。隨後藉由ROB 540檢查此資訊以判定該等指令是否可妥當引退及提交至處理器之架構狀態之結果資料,或判定是否發生阻止該等指令之恰當引退之一或多個異常。當然,ROB 540可處置與引退相關聯之其他操作。
如圖5中所示,ROB 540耦接至快取記憶體550,該快取記憶體550在一個實施例中可為低層級快取記憶體(例如L1快取記憶體),但本發明之範疇就此而言並無限制。此外,執行單元520可直接耦接至快取記憶體550。較高層級快取記憶體、系統記憶體等可出現來自快取記憶體550之資料通訊。儘管在圖5之實施例中以此高層級展示,但應理解本發明之範疇就此而言並無限制。舉例而言,雖然圖5之實施係關於無序機器(諸如Intel® x86指令集架構(ISA)之實施),但本發明之範疇就此而言並無限制。亦即,其他實施例可實施於有序處理器、諸如基於ARM之處理器的精簡指令集計算(RISC)處理器或可經由仿真引擎及相關聯邏輯電路仿真不同ISA之指令及操作的另一類型之ISA的處理器中。
雖然為了便於說明而在圖5中未圖示,但在一些實施例中,核心500可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,核心500可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
現參看圖6,其展示根據另一實施例之處理器核心之微型架構之方塊圖。在圖6之實施例中,核心600可為不同微型架構之低功率核心,諸如具有經設計以降低功率消耗之相對有限管線深度之基於Intel® AtomTM 之處理器。正如所見,核心600包括指令快取記憶體610,其經耦接以將指令提供至指令解碼器615。分支預測器605可耦接至指令快取記憶體610。應注意,指令快取記憶體610可進一步耦接至另一層級之快取記憶體,L2快取記憶體(為了便於說明而在圖6中未圖示)。又,指令解碼器615將經解碼指令提供至發射佇列620以用於儲存及遞送至給定執行管線。微碼ROM 618耦接至指令解碼器615。
浮點管線630包括浮點暫存器檔案632,其可包括具有諸如128、256或512個位元之給定位元的多個架構暫存器。管線630包括浮點排程器634以排程用於在管線之多個執行單元中之一者上執行的指令。在所示之實施例中,該等執行單元包括ALU 635、混洗單元636及浮點加法器638。又,可將在此等執行單元中產生之結果提供回至暫存器檔案632之緩衝器及/或暫存器。當然應理解,雖然展示具有此等幾個實例執行單元,但額外或不同浮點執行單元可存在於另一實施例中。
亦可提供整數管線640。在所示之實施例中,管線640包括整數暫存器檔案642,其可包括具有諸如128或256個位元之給定位元的多個架構暫存器。管線640包括整數排程器644以排程用於在管線之多個執行單元中之一者上執行的指令。在所示之實施例中,該等執行單元包括ALU 645、移位器單元646及跳轉執行單元648。又,可將在此等執行單元中產生之結果提供回至暫存器檔案642之緩衝器及/或暫存器。當然應理解,雖然展示具有此等幾個實例執行單元,但額外或不同整數執行單元可存在於另一實施例中。
記憶體執行排程器650可排程用於在位址產生單元652中執行之記憶體操作,該位址產生單元652亦耦接至TLB 654。正如所見,此等結構可耦接至資料快取記憶體660,其可為又耦接至額外層級之快取記憶體階層的L0及/或L1資料快取記憶體,包括L2快取記憶體。
為了提供對無序執行之支援,除經組配以重排序無序執行之指令以用於有序引退之重排序緩衝器680之外,可提供分配器/重命名器670。雖然在圖6之說明中展示具有此特定管線架構,但應理解,許多變化及替代方案係可能的。
應注意,在具有不對稱核心(諸如根據圖5及圖6之微型架構)之處理器中,工作負荷可出於功率管理原因動態地在核心之間調換,因為該等核心即使具有不同管線設計及深度,仍可具有相同或相關ISA。可以對使用者應用程式(及可能亦對內核)透明之方式執行此類動態核心調換。
雖然為了便於說明而在圖6中未圖示,但在一些實施例中,核心600可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,核心600可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
參見圖7,其展示根據另一實施例之處理器核心之微型架構之方塊圖。如圖7中所說明,核心700可包括多級有序管線以在極低功率消耗位準下執行。作為一個此類實例,處理器700可具有根據可購自加利福尼亞州森尼維耳市ARM Holdings, LTD.之ARM Cortex A53設計之微型架構。在實施中,可提供經組配以執行32位元程式碼及64位元程式碼兩者之8級管線。核心700包括提取單元710,其經組配以提取指令並將指令提供至解碼單元715,該解碼單元715可解碼該等指令(例如,諸如ARMv8 ISA之給定ISA之巨型指令)。應進一步注意,佇列730可耦接解碼單元715以儲存經解碼指令。經解碼指令經提供至發射邏輯725,其中經解碼指令可發射至多個執行單元中之給定者。
進一步參看圖7,發射邏輯725可將指令發射至多個執行單元中之一者。在所示實施例中,此等執行單元包括整數單元735、乘法單元740、浮點/向量單元750、雙發射單元760及載入/儲存單元770。此等不同執行單元之結果可提供至寫回單元780。應理解,雖然為便於說明而展示單一寫回單元,但在一些實施中,單獨寫回單元可與執行單元中之各者相關聯。此外,應理解,雖然圖7中所示之單元及邏輯中之各者在高層級處表示,但特定實施可包括更多或不同結構。如同圖7中使用具有管線之一或多個核心設計之處理器可實施於許多不同最終產品中,自行動裝置擴展至伺服器系統。
雖然為了便於說明而在圖7中未圖示,但在一些實施例中,核心700可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,核心700可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
現參看圖8,其展示根據又另一實施例之處理器核心之微型架構之方塊圖。如圖8中所示,核心800可包括多級多發無序管線以在極高效能位準下執行(相較於圖7之核心700,其可在較高功率消耗位準下發生)。作為一個此類實例,處理器800可具有根據ARM Cortex A57設計之微型架構。在實施中,可提供經組配以執行32位元及64位元程式碼兩者之15(或更大)級管線。另外,管線可提供3 (或更大)寬度及3 (或更大)發射之操作。核心800包括提取單元810,其經組配以提取指令並將指令提供至解碼器/重命名器/調度器815,該解碼器/重命名器/調度器815可解碼指令(例如,ARMv8指令集架構之巨型指令),重命名該等指令內之暫存器參考及將該等指令(最終)調度至所選執行單元。經解碼指令可儲存於佇列825中。應注意,雖然為了便於說明而在圖8中示出單一佇列結構,但應理解,可為多種不同類型之執行單元中之各者提供單獨佇列。
發射邏輯830亦示於圖8中,儲存於佇列825中之經解碼指令可自該發射邏輯830發射至所選執行單元。發射邏輯830亦可實施於具有用於發射邏輯830所耦接至的多種不同類型之執行單元中之各者之單獨發射邏輯的特定實施例中。
經解碼指令可發射至多個執行單元中之給定者。在所示實施例中,此等執行單元包括一個或多個整數單元835、乘法單元840、浮點/向量單元850、分支單元860及載入/儲存單元870。在實施例中,浮點/向量單元850可經組配以處置128或256個位元之SIMD或向量資料。另外,浮點/向量執行單元850可執行IEEE-754二次精確度浮動點運算。此等不同執行單元之結果可提供至寫回單元880。應注意,在一些實施中,單獨寫回單元可與執行單元中之各者相關聯。此外,應理解,雖然圖8中所示之單元及邏輯中之各者在高層級處表示,但特定實施可包括更多或不同結構。
應注意,在具有不對稱核心(諸如根據圖7及圖8之微型架構)之處理器中,工作負荷可出於功率管理原因動態地調換,因為該等核心即使具有不同管線設計及深度,仍可具有相同或相關ISA。可以對使用者應用程式(及可能亦對內核)透明之方式執行此類動態核心調換。
雖然為了便於說明而在圖8中未圖示,但在一些實施例中,核心800可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,核心800可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
如同圖5至圖8中任一或多者使用具有管線之一或多個核心設計之處理器可實施於許多不同最終產品中,自行動裝置擴展至伺服器系統。現參看圖9,其展示根據本發明之另一實施例的處理器之方塊圖。在圖9之實施例中,處理器900可為包括多個域之SoC,該多個域中的各者可經控制以在獨立操作電壓及操作頻率下操作。作為特定例示性實例,處理器900可為可購自因特爾公司(Intel Corporation)之基於Intel® Architecture Core™的處理器,諸如i3、i5、i7或另一此類處理器。然而,諸如可購自加利福尼亞州森尼維耳市之Advanced Micro Devices, Inc. (AMD)之其他低功率處理器、來自ARM Holdings, Ltd.的基於ARM之設計或其授權,或者來自加利福尼亞州森尼維耳市之MIPS Technologies, Inc.的基於MIPS之設計或其授權或採用者可替代地在諸如Apple A7處理器、Qualcomm Snapdragon處理器或Texas Instruments OMAP處理器的其他實施例中存在。此類SoC可用於諸如智慧型電話、平板電腦、平板手機電腦、Ultrabook™電腦或其他攜帶型計算裝置之低功率系統中。
在圖9中所示之高級視圖中,處理器900包括多個核心單元9100 至910n 。各核心單元可包括一或多個處理器核心、一或多個快取記憶體及其他電路。各核心單元910可支援一或多個指令集(例如,x86指令集(具有已增添更新版本之一些擴展);MIPS指令集:ARM指令集(具有諸如NEON之任選額外擴展))或其他指令及或其組合。請注意,核心單元中的一些可為異質資源(例如,不同設計的)。此外,每一此核心可耦接至記憶體(圖中未示),其在一實施例中可為共用層級(L2)記憶體。非依電性儲存器930可用以儲存各種規劃及其他資料。舉例而言,此儲存器可用以儲存微碼、諸如BIOS之啟動資訊、其他系統軟體等等中的至少數部分。
各核心單元910亦可包括諸如匯流排介面單元之介面以啟用至處理器之額外電路的互連。在實施例中,各核心單元910耦接至可充當主要快取記憶體晶粒上互連件之相干網狀架構,其又耦接至記憶體控制器935。又,記憶體控制器935控制與諸如DRAM之記憶體(為便於說明而在圖9中未示出)之通訊。
除核心單元以外,額外處理引擎存在於處理器中,包括至少一個圖形單元920,其可包括一或多個圖形處理單元(GPU)以執行圖形處理以及可能在圖形處理器上執行通用操作(所謂的GPGPU操作)。另外,可存在至少一個影像信號處理器925。信號處理器925可經組配以處理接收自在SoC內或晶片外之一或多個捕獲裝置之傳入影像資料。
亦可存在其他加速器。在圖9之說明中,視訊寫碼器950可執行包括用於視訊資訊之編碼及解碼的寫碼操作,例如,提供用於高清晰度視訊內容的硬體加速支援。顯示控制器955進一步可經提供以加速顯示操作,包括提供對系統之內部及外部顯示的支援。另外,可存在安全處理器945以執行諸如安全啟動操作、各種密碼操作等之安全操作。
各單元可具有其經由功率管理器940控制之功率消耗,該功率管理器940可包括執行本文中所描述之各種功率管理技術之控制邏輯。
在一些實施例中,SoC 900可進一步包括耦接至相干網狀架構的非相干網狀架構,各種周邊裝置可耦接至該相干網狀架構。一或多個介面960a至960d啟用與一或多個晶片外裝置通訊。此等通訊可係根據其他類型之通訊協定當中的多種通訊協定,諸如PCIeTM 、GPIO、USB、I2 C、UART、MIPI、SDIO、DDR、SPI、HDMI。儘管在圖9之實施例中以此高層級展示,但應理解本發明之範疇就此而言並無限制。
雖然為了便於說明而在圖9中未圖示,但在一些實施例中,SoC 900可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,SoC 900可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
現參看圖10,其展示代表性SoC之方塊圖。在所示之實施例中,SoC 1000可為多核心SoC,其經組配用於待最佳化之低功率操作,以併入智慧型電話或諸如平板電腦或其他攜帶型計算裝置之其他低功率裝置中。作為一實例,SoC 1000可使用不對稱或不同類型的核心(諸如較高功率及/或較低功率核心(例如,無序核心及中有序核心)之組合)實施。在不同實施例中,該等核心可基於Intel® ArchitectureTM 核心設計或ARM架構設計。在其他實施例中,Intel及ARM核心之混合可實施於給定SoC中。
如圖10中所見,SoC 1000包括具有多個第一核心10120 至10123 之第一核心域1010。在一實例中,此等核心可為諸如有序核心之低功率核心。在一個實施例中,此等第一核心可實施為ARM Cortex A53核心。又,此等核心耦接至核心域1010之快取記憶體1015。另外,SoC 1000包括第二核心域1020。在圖10之說明中,第二核心域1020具有多個第二核心10220 至10223 。在一實例中,核心相較於第一核心1012可為較高功耗核心。在實施例中,第二核心可為無序核心,其可實施為ARM Cortex A57核心。又,此等核心耦接至核心域1020之快取記憶體1025。應注意,雖然圖10中所示之實例包括各域中4個核心,但應理解,在其他實例中,更多或更少核心可存在於給定域中。
進一步參看圖10,亦提供圖形域1030,其可包括經組配以獨立執行(例如)由核心域1010及1020之一或多個核心提供之圖形工作負荷的一或多個圖形處理單元(GPU)。作為一實例,除提供圖形及顯示再現操作之外,GPU域1030可用以提供對各種螢幕大小之顯示支援。
正如所見,各種域耦接至相干互連件1040,其在一實施例中可為又耦接至整合式記憶體控制器1050的快取記憶體相干互連網狀架構。相干互連件1040可包括共用快取記憶體,諸如L3快取記憶體(一些實例)。在實施例中,記憶體控制器1050可為直接記憶體控制器,其提供與晶片外記憶體通訊之多個頻道,諸如DRAM之多個頻道(為了便於說明而在圖10中未示出)。
在不同實例中,核心域之數目可變化。舉例而言,對於適合於併入行動計算裝置中之低功率SoC,可存在諸如圖10中所示之有限數目之核心域。另外,在此類低功率SoC中,包括較高功率核心之核心域1020可具有較少數目之此類核心。舉例而言,在一個實施中,可提供兩個核心1022以實現在降低之功率消耗位準下之操作。另外,不同核心域亦可耦接至中斷控制器以實現工作負荷在不同域之間的動態調換。
在其他實施例中,可存在較大數目之核心域以及額外可選IP邏輯,係因為SoC可按比例調整至較高效能(及功率)位準以併入其他計算裝置(諸如桌上型電腦、伺服器、高效能計算系統、基地台等)中。作為一個此類實例,可提供各具有給定數目之無序核心之4個核心域。另外,除了可選GPU支援(作為實例,其可採用GPGPU之形式)之外,亦可提供用以提供對特定功能(例如,網路服務、網路處理、切換等)之經最佳化硬體支援的一或多個加速器。另外,可存在輸入/輸出介面以將此類加速器耦接至晶片外組件。
雖然為了便於說明而在圖10中未圖示,但在一些實施例中,SoC 1000可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,SoC 1000可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
現參看圖11,其展示另一實例SoC之方塊圖。在圖11之實施例中,SoC 1100可包括實現多媒體應用、通訊及其他功能之高效能的各種電路。因此,SoC 1100適合於併入廣泛多種攜帶型及其他裝置(諸如智慧型電話、平板電腦智慧型TV等)中。在所示之實例中,SoC 1100包括中央處理器單元(CPU)域1110。在實施例中,多個個別處理器核心可存在於CPU域1110中。作為一個實例,CPU域1110可為具有4各多執行緒核心之四核處理器。此類處理機可為均質或異質處理器,例如低功率及高功率處理器核心之混合。
又,提供GPU域1120以在一或多個GPU中執行進階圖形處理以處置圖形並計算API。DSP單元1130可提供一或多個低功率DSP以用於處置除可在多媒體指令之執行期間發生之進階計算之外的低功率多媒體應用,諸如音樂播放、音訊/視訊等。又,通訊單元1140可包括經由各種無線協定提供連接性之各種組件,該等無線協定諸如蜂巢式通訊(包括3G/4G LTE)、諸如BluetoothTM 、IEEE 802.11等之無線區域技術。
另外,多媒體處理器1150可用以執行高清晰度視訊及音訊內容之捕獲及播放,包括使用者示意動作之處理。感測器單元1160可包括多個感測器及/或感測器控制器以介接存在於給定平台中之各種晶片外感測器。影像信號處理器1170可具備一或多個單獨ISP以執行關於來自平台之一或多個攝影機(包括靜態及視訊攝影機)之所捕獲內容之影像處理。
顯示處理器1180可提供對於連接至給定像素密度之高清晰度顯示器之連接之支援,包括無線傳達內容以用於在此顯示器上播放之能力。另外,位置單元1190可包括GPS接收器,其支援多個GPS群集,以向應用提供如此使用GPS接收器獲得之高度精確之定位資訊。應理解,雖然在圖11之實例中展示特定組件之集合,但許多變化及替代方案係可能的。
雖然為了便於說明而在圖11中未圖示,但在一些實施例中,SoC 1100可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,SoC 1100可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
現參看圖12,其展示實施例可與其一起使用之實例系統之方塊圖。正如所見,系統1200可為智慧型電話或其他無線傳達器。基頻處理器1205經組配以執行關於待自系統傳輸或由系統接收的通訊信號之各種信號處理。又,基頻處理器1205耦接至應用程式處理器1210,除諸如許多熟知社交媒體及多媒體應用程式外,該應用程式處理器可為系統之主要CPU以執行OS及其他系統軟體。應用程式處理器1210可經進一步組配以執行裝置之多種其他計算操作。
又,應用程式處理器1210可耦接至使用者介面/顯示器1220,例如觸控式螢幕顯示器。此外,應用程式處理器1210可耦接至記憶體系統,包括非依電性記憶體(亦即,快閃記憶體1230)及系統記憶體(亦即,動態隨機存取記憶體(DRAM) 1235)。如進一步所見,應用程式處理器1210進一步耦接至捕獲裝置1240,諸如可記錄視訊及/或靜態影像的一或多個影像捕獲裝置。
仍參看圖12,包含用戶識別模組及可能安全儲存器及密碼處理器的通用積體電路卡(UICC) 1240亦耦接至應用程式處理器1210。系統1200可進一步包括可耦接至應用程式處理器1210的安全性處理器1250。多個感測器1225可耦接至應用程式處理器1210以啟用諸如加速度計及其他環境資訊的多種所感測資訊之輸入。音訊輸出裝置1295可提供介面以輸出(例如)呈話音通訊、所播放或串流之音訊資料等之形式的聲音。
如進一步所說明,提供經由NFC天線1265在NFC近場中通訊的近場通訊(NFC)非接觸式介面1260。雖然圖12中展示單獨天線,但應理解在一些實施中,可提供一個天線或不同天線組以實現各種無線功能性。
功率管理積體電路(PMIC) 1215耦接至應用程式處理器1210以執行平台層級功率管理。為此,PMIC 1215可發佈功率管理請求至應用程式處理器1210以按需要進入某些低功率狀態。此外,基於平台約束,PMIC 1215亦可控制系統1200之其他組件的功率位準。
為能夠傳輸並接收通訊,各種電路可耦接於基頻處理器1205與天線1290之間。具體而言,可存在射頻(RF)收發器1270及無線區域網路(WLAN)收發器1275。大體而言,RF收發器1270可用於根據諸如3G或4G無線通訊協定之給定無線通訊協定接收並傳輸無線資料及呼叫,諸如根據分碼多重存取(CDMA)、全球行動通訊系統(GSM)、長期演進(LTE)或其他協定。另外,可存在GPS感測器1280。亦可提供諸如無線電信號(例如,AM/FM及其他信號)之接收或傳輸的其他無線通訊。另外,亦可經由WLAN收發器1275實現諸如根據BluetoothTM 標準或諸如IEEE 802.11a/b/g/n之IEEE 802.11標準的區域無線通訊。
雖然為了便於說明而在圖12中未圖示,但在一些實施例中,系統1200可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,系統1200可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
現參看圖13,展示實施例可與之一起使用的另一實例系統之方塊圖。在圖13之說明中,系統1300可為行動低功率系統,諸如平板電腦、2:1平板電腦、平板手機或其他可轉換或獨立的平板電腦系統。如所說明,SoC 1310存在,且可經組配以作為裝置之應用程式處理器操作。
多種裝置可耦接至SoC 1310。在所展示之說明中,記憶體子系統包括耦接至SoC 1310之快閃記憶體1340及DRAM 1345。另外,觸控面板1320耦接至SoC 1310以經由觸控提供顯示能力及使用者輸入,包括虛擬鍵盤在觸控面板1320之顯示器上的提供。為了提供有線網路連接性,SoC 1310耦接至乙太網路介面1330。周邊集線器1325耦接至SoC 1310以啟用與各種周邊裝置的介接,諸如可藉由各種埠或其他連接器中的任一者而耦接至系統1300。
除SoC 1310內之內部功率管理電路及功能性外,PMIC 1380耦接至SoC 1310以(例如)基於系統由電池1390供電抑或經由AC配接器1395由AC電源供電而提供基於平台的功率管理。除此基於電源之功率管理外,PMIC 1380可基於環境及使用條件而進一步執行平台功率管理活動。再者,PMIC 1380可將控制及狀態資訊傳達至SoC 1310以引起SoC 1310內的各種功率管理動作。
仍參看圖13,為了提供無線能力,WLAN單元1350耦接至SoC 1310,且又耦接至天線1355。在各種實施中,WLAN單元1350可提供根據包括IEEE 802.11協定、BluetoothTM 協定或任何其他無線協定的一或多個無線協定之通訊。
如進一步所說明,多個感測器1360可耦接至SoC 1310。此等感測器可包括各種加速度計、環境及其他感測器(包括使用者示意動作感測器)。最終,音訊編解碼器1365耦接至1310以提供至音訊輸出裝置1370的介面。當然應理解,雖然藉由圖13中之此特定實施來展示,但許多變化及替代方案有可能。
雖然為了便於說明而在圖13中未圖示,但在一些實施例中,系統1300可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,系統1300可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
現參看圖14,諸如筆記型電腦、UltrabookTM 或其他小外觀尺寸系統之代表性電腦系統1400之方塊圖。在一個實施例中,處理器1410包括微處理器、多核心處理器、多執行緒處理器、超低電壓處理器、嵌入式處理器或其他已知處理元件。在所說明實施中,處理器1410充當用於與系統1400之各種組件中之許多組件通訊的主處理單元及中央集線器。作為一個實例,處理器1410實施為SoC。
在一個實施例中,處理器1410與系統記憶體1415通訊。作為例示性實例,系統記憶體1415經由多個記憶體裝置或模組實施以提供給定量之系統記憶體。
為了提供諸如資料、應用程式、一或多個作業系統等等之資訊之持久性儲存,亦可將大容量儲存器1420耦接至處理器1410。在各種實施例中,為了實現更薄及更輕之系統設計以及為了改良系統反應,此大容量儲存器可經由SSD實施,或該大容量儲存器主要可使用具有少量SSD儲存之硬碟驅動機(HDD)來實施,以充當SSD快取記憶體以實現內容脈絡狀態及其他此類資訊在電源關閉事件期間之非依電性儲存,以使得快速加電可發生在系統活動重新初始化時。如圖14中所示,快閃裝置1422可例如經由串行周邊介面(SPI)耦接至處理器1410。此快閃裝置可提供系統軟體之非依電性儲存,包括基本輸入/輸出軟體(BIOS)以及系統之其他韌體。
各種輸入/輸出(I/O)裝置可存在於系統1400內。具體而言,在圖14之實施例中展示顯示器1424,該顯示器可為進一步提供觸控式螢幕1425之高清晰度LCD或LED面板。在一個實施例中,顯示器1424可經由顯示器互連件耦接至處理器1410,該顯示器互連件可實施為高效能圖形互連件。觸控式螢幕1425可經由另一互連件耦接至處理器1410,在一實施例中,該另一互連件可為I2 C互連件。如圖14中進一步所示,除觸控式螢幕1425之外,亦可經由觸控板1430發生藉助於觸摸進行之使用者輸入,該觸控板可組配於機箱內且亦可耦接至與觸控式螢幕1425相同之I2 C互連件。
為了感知計算及其他目的,各種感測器可存在於系統內且可按不同方式耦接至處理器1410。某些慣性及環境感測器可透過感測器集線器1440 (例如經由I2 C互連件)耦接至處理器1410。在圖14中所示之實施例中,此等感測器可包括加速度計1441、環境光感測器(ALS) 1442、羅盤1443及陀螺儀1444。其他環境感測器可包括一或多個熱感測器1446,其在一些實施例中經由系統管理匯流排(SMBus)匯流排耦接至處理器1410。
亦在圖14中所見,各種周邊裝置可經由低接腳計數(LPC)互連件耦接至處理器1410。在所示之實施例中,各種組件可經由嵌入式控制器1435耦接。此等組件可包括鍵盤1436 (例如,經由PS2介面耦接)、風扇1437及熱感測器1439。在一些實施例中,觸控板1430亦可經由PS2介面耦接至EC 1435。另外,安全性處理器亦可經由此LPC互連件耦接至處理器1410,該安全性處理器諸如根據受信任計算群組(TCG) TPM規範版本1.2 (日期為2003年10月2日)之受信任平台模組(TPM) 1438。
系統1400可按多種方式(包括無線地)與外部裝置通訊。在圖14中所示之實施例中,存在各種無線模組,該等無線模組中之各者可對應於經組配用於特定無線通訊協定之無線電。一種用於在近程(諸如近場)中無線通訊之方式可經由NFC單元1445,該NFC單元1445在一個實施例中經由SMBus與處理器1410通訊。應注意,經由此NFC單元1445,彼此最緊密接近之裝置可進行通訊。
如圖14中進一步所見,額外無線單元可包括其他近程無線引擎,包括WLAN單元1450及藍芽單元1452。使用WLAN單元1450,可實現根據給定802.11標準之WiFi™之通訊,而經由藍芽單元1452,可發生經由藍芽協定之近程通訊。此等單元可經由(例如)USB鏈路或通用異步接收器傳輸器(UART)鏈路與處理器1410通訊。或者,該等單元可經由根據PCIe™協定或另一此類協定(諸如串行資料輸入/輸出(SDIO)標準)之互連件耦接至處理器1410。
另外,(例如)根據蜂巢式或其他無線廣域協定之無線廣域通訊可經由WWAN單元1456發生,該WWAN單元又可耦接至用戶識別模組(SIM) 1457。另外,為了使得能夠接收及使用位置資訊,亦可存在GPS模組1455。應注意,在圖14中所示之實施例中,WWAN單元1456及整合式捕獲裝置(諸如,攝影機模組1454)可經由給定USB協定(諸如2.0或3.0鏈路或UART或I2 C協定)通訊。
整合式攝影機模組1454可併入於罩蓋中。為了提供音訊輸入及輸出,可經由數位信號處理器(DSP) 1460實施音訊處理器,該數位信號處理器1460可經由高清晰度音訊(HDA)鏈路耦接至處理器1410。類似地,DSP 1460可與整合式寫碼器/解碼器(編解碼器)及放大器1462通訊,該整合式寫碼器/解碼器(編解碼器)及放大器1462又可耦接至可在機箱內實施之輸出揚聲器1463。類似地,放大器及編解碼器1462可經耦接以自麥克風1465接收音訊輸入,在一實施例中,可經由雙陣列麥克風(諸如,數位麥克風陣列)實施該麥克風以提供高品質音訊輸入以實現對系統內之各種操作之語音啟動控制。亦應注意,可將音訊輸出自放大器/編解碼器1462提供至頭戴式耳機插口1464。儘管在圖14之實施例中展示具有此等特定組件,但應理解,本發明之範疇就此而言並無限制。
雖然為了便於說明而在圖14中未圖示,但在一些實施例中,系統1400可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,系統1400可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
實施例可實施於許多不同系統類型中。現參看圖15,其展示根據本發明之實施例的系統之方塊圖。如圖15中所示,多處理器系統1500為點對點互連系統,且包括經由點對點互連件1550耦接之第一處理器1570及第二處理器1580。如圖15中所示,處理器1570及1580中之各者可為多核心處理器,包括第一及第二處理器核心(亦即,處理器核心1574a及1574b與處理器核心1584a及1584b),但可能更多的核心可存在於處理器中。處理器中之各者可包括PCU或執行如本文所描述之基於處理器之功率管理的其他功率管理邏輯。
仍參看圖15,第一處理器1570進一步包括記憶體控制器集線器(MCH) 1572及點對點(P-P)介面1576及1578。類似地,第二處理器1580包括MCH 1582及P-P介面1586及1588。如圖15中所示,MCH 1572及1582將處理器耦接至各別記憶體(亦即,記憶體1532及記憶體1534),其可為本端附接至各別處理器之系統記憶體(例如,DRAM)的部分。第一處理器1570及第二處理器1580可分別經由P-P互連件1562及1564耦接至晶片組1590。如圖15中所示,晶片組1590包括P-P介面1594及1598。
此外,晶片組1590包括藉由P-P互連件1539使晶片組1590與高效能圖形引擎1538耦接的介面1592。又,晶片組1590可經由介面1596耦接至第一匯流排1516。如圖15中所示,各種輸入/輸出(I/O)裝置1514可連同匯流排橋接器1518一起耦接至第一匯流排1516,該匯流排橋接器1518將第一匯流排1516耦接至第二匯流排1520。在一個實施例中,各種裝置可耦接至第二匯流排1520,包括(例如)鍵盤/滑鼠1522、通訊裝置1526及諸如磁碟機或可包括程式碼1530之其他大容量儲存裝置的資料儲存單元1528。另外,音訊I/O 1524可耦合至第二匯流排1520。實施例可併入至其他類型之系統中,該等系統包括諸如智慧型蜂巢式電話、平板電腦、迷你筆記型電腦、Ultrabook™或等等之行動裝置。
雖然為了便於說明而在圖15中未圖示,但在一些實施例中,系統1500可包括上文參看圖1A至圖1B所描述之密碼加速器118及/或加速器120。此外,在一些實施例中,系統1500可實施上文參看圖1A至圖1F及圖2A至2B所描述之組件及/或功能性中之一些或全部。
實施例可以程式碼實施,且可儲存於其上已儲存有指令的非暫時性儲存媒體上,該等指令可用以規劃系統以執行指令。儲存媒體可包括(但不限於)任何類型之磁碟,包括軟碟、光碟、固態硬碟(SSD)、光碟唯讀記憶體(CD-ROM)、可重寫光碟(CD-RW)及磁光碟;諸如唯讀記憶體(ROM)之半導體裝置;隨機存取記憶體(RAM),諸如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可抹除可規劃唯讀記憶體(EPROM)、快閃記憶體、電可抹除可規劃唯讀記憶體(EEPROM);磁性或光學卡;或適於儲存電子指令的任何其他類型之媒體。
以下條款及/或實例係關於另外實施例。
在一個實例中,用於執行密碼雜湊運算之處理器包括用於執行密碼雜湊演算法之硬體加速器。硬體加速器可:接收待使用密碼雜湊演算法處理之訊息;將多個摘要詞儲存於多個摘要暫存器中;其中各摘要字具有W個位元之大小,其中各摘要字包含各具有N個位元之大小之多個部分,其中該多個摘要暫存器包括第一摘要暫存器及第二摘要暫存器;執行密碼雜湊演算法之多個回合,其中各回合包含多個C循環,其中該多個回合經劃分為第一組回合及第二組回合,其中該第一組及該第二組選自一組偶數回合及一組奇數回合;在第一組中之各回合之各循環中,將來自第一摘要暫存器之W個位元用於第一函式並將來自第二摘要暫存器之N個位元用於第二函式;在第二組中之各回合之各循環中,將來自第二摘要暫存器之W個位元用於第一函式並將來自第一摘要暫存器之N個位元用於第二函式。
在實例中,硬體加速器進一步用以:在第一組中之各回合中,將第一摘要字儲存於第一摘要暫存器中及將第二摘要字儲存於第二摘要暫存器中,及在第二組中之各回合中,將第一摘要字儲存於第二摘要暫存器中及將第二摘要字儲存於第一摘要暫存器中。
在一個實例中,部分大小N等於字大小W除以循環C之數目。
在一個實例中,密碼雜湊演算法為安全雜湊演算法2 (SHA-2)。在一個實例中,第一函式為SHA-2演算法之∑0 函式,且第二函式為SHA-2演算法之Maj 函式。
在一個實例中,多個摘要暫存器進一步包括第三摘要暫存器及第四摘要暫存器。硬體加速器進一步用以:在第一組中之各回合之各循環中,將來自第三摘要暫存器之W個位元用於第三函式並將來自第四摘要暫存器之N個位元用於第四函式;及在第二組中之各回合之各循環中,將來自第四摘要暫存器之W個位元用於第三函式並將來自第三摘要暫存器之N個位元用於第四函式。在一個實例中,硬體加速器進一步用以:在第一組中之各回合中,將第三摘要字儲存於第三摘要暫存器中並將第四摘要字儲存於第四摘要暫存器中;及在第二組中之各回合中,將第三摘要字儲存於第四摘要暫存器中並將第四摘要字儲存於第三摘要暫存器中。在一個實例中,第三函式為密碼雜湊演算法之∑1 函式,且第四函式為密碼雜湊演算法之Ch 函式。
在另一實例中,一種用於執行密碼雜湊運算之方法可包括:接收待使用密碼雜湊演算法處理之訊息;將多個摘要字儲存於多個摘要暫存器中,其中各摘要字包含W個位元,其中各摘要字包含各具有N個位元之大小的多個部分,其中該多個摘要暫存器包括第一摘要暫存器及第二摘要暫存器;執行多個回合,其中該多個回合經劃分為第一組及第二組,該第一組及該第二組選自一組偶數回合及一組奇數回合;在第一組中之各回合中,將第一摘要字儲存於第一摘要暫存器中及將第二摘要字儲存於第二摘要暫存器中;在第二組中之各回合中,將第一摘要字儲存於第二摘要暫存器中及將第二摘要字儲存於第一摘要暫存器中。
在一個實例中,該方法進一步包括:在第一組中之各回合之各循環中,將來自第一摘要暫存器之W個位元用於第一函式並將來自第二摘要暫存器之N個位元用於第二函式;及在第二組中之各回合之各循環中,將來自第二摘要暫存器之W個位元用於第一函式並將來自第一摘要暫存器之N個位元用於第二函式。在一個實例中,多個摘要暫存器進一步包括第三摘要暫存器及第四摘要暫存器。該方法可包括:在第一組中之各回合之各循環中,將來自第三摘要暫存器之W個位元用於第三函式並將來自第四摘要暫存器之N個位元用於第四函式;及在第二組中之各回合之各循環中,將來自第四摘要暫存器之W個位元用於第三函式並將來自第三摘要暫存器之N個位元用於第四函式。
在一個實例中,該方法進一步包括:在第一組中之各回合中,將第三摘要字儲存於第三摘要暫存器中並將第四摘要字儲存於第四摘要暫存器中;及在第二組中之各回合中,將第三摘要字儲存於第四摘要暫存器中並將第四摘要字儲存於第三摘要暫存器中。
在一個實例中,部分大小N等於字大小W除以循環C之數目,其中字大小W選自32個位元及64個位元,且其中部分大小N選自2個位元及4個位元。
在一個實例中,第一函式為密碼雜湊演算法之∑0 函式;第二函式為密碼雜湊演算法之Maj 函式;第三函式為密碼雜湊演算法之∑1 函式;且第四函式為密碼雜湊演算法之Ch 函式。
在另一實例中,機器可讀媒體可在其上儲存資料,該機器可讀媒體在由至少一個機器使用時使得該至少一個機器製造至少一個積體電路以執行根據以上實例中之任一者的方法。
在另一實例中,一種用於處理指令之設備經組配以執行以上實例中之任一者之方法。
在另一實例中,一種用於執行密碼雜湊運算之系統包括處理器及耦接至該處理器之外部記憶體。處理器包括用於執行密碼雜湊演算法之加速器。加速器可用以:執行密碼雜湊演算法之多個回合,其中各回合包含多個C循環,其中多個回合劃分為選自一組偶數回合及一組奇數回合之第一組及第二組;在第一組之各回合中,將第一摘要字儲存於第一摘要暫存器中並將第二摘要字儲存於第三摘要暫存器中;及在第二組之各回合中,將第一摘要字儲存於第二摘要暫存器中並將第二摘要字儲存於第四摘要暫存器中。
在一個實例中,各摘要字包含W個位元,其中各摘要字包含各具有N個位元之大小的多個部分,且其中加速器進一步用以:在第一組中之各回合之各循環中,將來自第一摘要暫存器之W個位元用於密碼雜湊演算法之第一函式並將來自第二摘要暫存器之N個位元用於密碼雜湊演算法之第二函式;及在第二組中之各回合之各循環中,將來自第二摘要暫存器之W個位元用於第一函式並將來自第一摘要暫存器之N個位元用於第二函式。
在一個實例中,加速器進一步用以:在第一組中之各回合之各循環中,將來自第三摘要暫存器之W個位元用於密碼雜湊演算法之第三函式並將來自第四摘要暫存器之N個位元用於密碼雜湊演算法之第四函式;及在第二組中之各回合之各循環中,將來自第四摘要暫存器之W個位元用於第三函式並將來自第三摘要暫存器之N個位元用於第四函式。
在一個實例中,第三函式為密碼雜湊演算法之∑1 函式,且第四函式為密碼雜湊演算法之Ch 函式。
在一個實例中,第一函式為密碼雜湊演算法之∑0 函式,且第二函式為密碼雜湊演算法之Maj 函式。
在一個實例中,密碼雜湊演算法為SHA-2演算法。在一個實例中,SHA-2演算法為選自SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224及SHA-512/256中之一者。
在一個實例中,加速器進一步用以在各回合之各循環中:產生與第一摘要字相關聯之第一進位值,及產生與第二摘要字相關聯之第二進位值。
在另一實例中,機器可讀媒體可在其上儲存資料,該機器可讀媒體在由至少一個機器使用時使得該至少一個機器製造至少一個積體電路以執行一方法。該方法可包括:接收待使用密碼雜湊演算法處理之訊息;將多個摘要字儲存於多個摘要暫存器中,其中各摘要字包含W個位元,其中各摘要字包含各具有N個位元之大小的多個部分,其中該多個摘要暫存器包括第一摘要暫存器及第二摘要暫存器;執行多個回合,其中該多個回合經劃分為第一組及第二組,該第一組及該第二組選自一組偶數回合及一組奇數回合;在第一組中之各回合中,將第一摘要字儲存於第一摘要暫存器中及將第二摘要字儲存於第二摘要暫存器中;及在第二組中之各回合中,將第一摘要字儲存於第二摘要暫存器中及將第二摘要字儲存於第一摘要暫存器中。
在一個實例中,該方法進一步包括:在第一組中之各回合之各循環中,將來自第一摘要暫存器之W個位元用於第一函式並將來自第二摘要暫存器之N個位元用於第二函式;及在第二組中之各回合之各循環中,將來自第二摘要暫存器之W個位元用於第一函式並將來自第一摘要暫存器之N個位元用於第二函式。
在一個實例中,多個摘要暫存器進一步包括第三摘要暫存器及第四摘要暫存器,且該方法進一步包括:在第一組中之各回合之各循環中,將來自第三摘要暫存器之W個位元用於第三函式並將來自第四摘要暫存器之N個位元用於第四函式;及在第二組中之各回合之各循環中,將來自第四摘要暫存器之W個位元用於第三函式並將來自第三摘要暫存器之N個位元用於第四函式。在一個實例中,該方法進一步包括:在第一組中之各回合中,將第三摘要字儲存於第三摘要暫存器中並將第四摘要字儲存於第四摘要暫存器中;及在第二組中之各回合中,將第三摘要字儲存於第四摘要暫存器中並將第四摘要字儲存於第三摘要暫存器中。
在一個實例中,部分大小N等於字大小W除以循環C之數目,其中字大小W選自32個位元及64個位元,且其中部分大小N選自2個位元及4個位元。
在一個實例中,第一函式為密碼雜湊演算法之∑0 函式;第二函式為密碼雜湊演算法之Maj 函式;第三函式為密碼雜湊演算法之∑1 函式;且第四函式為密碼雜湊演算法之Ch 函式。
在另一實例中,用於密碼雜湊運算之處理器包括用於執行安全雜湊演算法2 (SHA-2)演算法之硬體加速器。硬體加速器用以:接收待使用SHA-2演算法處理之訊息;將摘要字A至H儲存於多個摘要暫存器中,其中各摘要字具有W個位元之大小,其中各摘要字包含各具有N個位元之大小的多個部分,其中該多個摘要暫存器包括第一摘要暫存器A0及第二摘要暫存器A1;執行SHA-2演算法之多個回合,其中各回合包含多個C循環,其中該多個回合經劃分為第一組回合及第二組回合,其中該第一組及該第二組選自一組偶數回合及一組奇數回合;在第一組中之各回合之各循環中,將來自第一摘要暫存器A0之W個位元用於∑0 函式,並將來自第二摘要暫存器A1之N個位元用於Maj函式;及在第二組中之各回合之各循環中,將來自第二摘要暫存器A1之W個位元用於∑0 函式,並將來自第一摘要暫存器A0之N個位元用於Maj函式。
在實例中,多個摘要暫存器進一步包括第三摘要暫存器E0及第四摘要暫存器E1。硬體加速器進一步用以:在第一組中之各回合之各循環中,將來自第三摘要暫存器E0之W個位元用於∑1 函式並將來自第四摘要暫存器E1之N個位元用於Ch函式。硬體加速器進一步用以:在第二組中之各回合之各循環中,將來自第四摘要暫存器E1之W個位元用於∑1 函式並將來自第三摘要暫存器E0之N個位元用於Ch函式。
在實例中,硬體加速器進一步用以:在第一組中之各回合中,將摘要字E儲存於第三摘要暫存器E0中並將摘要字F儲存於第四摘要暫存器E1中;及在第二組中之各回合中,將摘要字E儲存於第四摘要暫存器E1中並將摘要字F儲存於第三摘要暫存器E0中。
在實例中,硬體加速器進一步用以:在第一組中之各回合中,將摘要字A儲存於第一摘要暫存器A0中並將摘要字B儲存於第二摘要暫存器A1中;及在第二組中之各回合中,將摘要字A儲存於第二摘要暫存器A1中並將摘要字B儲存於第一摘要暫存器A0中。
在實例中,部分大小N等於字大小W除以循環C之數目。
在實例中,硬體加速器進一步用以:將訊息儲存於多個訊息暫存器中,其中各訊息暫存器用以儲存具有W個位元之大小之訊息字;及在多個回合之各回合之各循環中,將來自第一訊息暫存器之W個位元、來自第二訊息暫存器之W個位元、來自第三訊息暫存器之N個位元及來自第四訊息暫存器之N個位元用於訊息擴展器函式。
在實例中,硬體加速器進一步用以:在各回合之各循環中,產生待添加至摘要字A之N個位元,及產生待添加至摘要字E之N個位元。
在實例中,硬體加速器進一步用以:在各回合之各循環中,將來自摘要字C之N個位元用於Maj函式,將來自摘要字D之N個位元用於第一加法函式,將來自摘要字G之N個位元用於Ch函式,並將來自摘要字H之N個位元用於第二加法函式。
在另一實例中,用於執行密碼雜湊運算之方法包括:接收待使用SHA-2演算法處理之訊息;將摘要字A至H儲存於多個摘要暫存器中,其中各摘要字包含W個位元,其中各摘要字包含各具有N個位元之大小的多個部分,其中該多個摘要暫存器包括第一摘要暫存器A0及第二摘要暫存器A1;執行多個回合,其中該多個回合經劃分為第一組及第二組,該第一組及該第二組選自一組偶數回合及一組奇數回合;在第一組中之各回合中,將摘要字A儲存於第一摘要暫存器A0中及將摘要字B儲存於第二摘要暫存器A1中;在第二組中之各回合中,將摘要字A儲存於第二摘要暫存器A1中及將摘要字B儲存於第一摘要暫存器A0中。
在實例中,該方法進一步包括:在第一組中之各回合之各循環中,將來自第一摘要暫存器A0之W個位元用於∑0 函式,並將來自第二摘要暫存器A1之N個位元用於Maj函式;在第二組中之各回合之各循環中,將來自第二摘要暫存器A1之W個位元用於∑0 函式,並將來自第一摘要暫存器A0之N個位元用於Maj函式。
在實例中,多個摘要暫存器進一步包括第三摘要暫存器E0及第四摘要暫存器E1,且該方法進一步包括:在第一組中之各回合之各循環中,將來自第三摘要暫存器E0之W個位元用於∑1 函式並將來自第四摘要暫存器E1之N個位元用於Ch函式;及在第二組中之各回合之各循環中,將來自第四摘要暫存器E1之W個位元用於∑1 函式並將來自第三摘要暫存器E0之N個位元用於Ch函式。
在實例中,該方法進一步包括:在第一組中之各回合中,將摘要字E儲存於第三摘要暫存器E0中並將摘要字F儲存於第四摘要暫存器E1中;在第二組中之各回合中,將摘要字E儲存於第四摘要暫存器E1中並將摘要字F儲存於第三摘要暫存器E0中。
在實例中,部分大小N等於字大小W除以循環C之數目,其中字大小W選自32個位元及64個位元,且其中部分大小N選自2個位元及4個位元。
在實例中,該方法進一步包括:在各回合之各循環中,產生待添加至摘要字A之N個位元,及產生待添加至摘要字E之N個位元。
在另一實例中,機器可讀媒體包括儲存資料,該機器可讀媒體在由至少一個機器使用時使得該至少一個機器製造至少一個積體電路以執行以上實例中之任一者的方法。
在另一實例中,一種用於處理指令之設備經組配以執行以上實例中之任一者之方法。
在另一實例中,一種用於執行密碼雜湊運算之系統包括處理器及耦接至該處理器之外部記憶體。處理器包括用於執行安全雜湊演算法2 (SHA-2)演算法之加速器,該加速器用以:執行多個回合,其中各回合包含多個C循環,其中多個回合劃分為選自一組偶數回合及一組奇數回合之第一組及第二組;在第一組之各回合中,將摘要字A儲存於第一摘要暫存器A0中及將摘要字E儲存於第三摘要暫存器E0中;在第二組之各回合中,將摘要字A儲存於第二摘要暫存器A1中及將摘要字E儲存於第四摘要暫存器E1中。
在實例中,各摘要字包含W個位元,其中各摘要字包含各具有N個位元之大小的多個部分。加速器進一步用以:在第一組之各回合之各循環中,將來自第一摘要暫存器A0之W個位元用於∑0 函式並將來自第二摘要暫存器A1之N個位元用於Maj函式;在第二組之各回合之各循環中,將來自第二摘要暫存器A1之W個位元用於∑0 函式並將來自第一摘要暫存器A0之N個位元用於Maj函式。
在實例中,部分大小N等於字大小W除以循環C之數目。
在實例中,字大小W選自32個位元及64個位元,且部分大小N選自2個位元及4個位元。
在實例中,加速器進一步用以:在第一組中之各回合之各循環中,將來自第三摘要暫存器E0之W個位元用於∑1 函式並將來自第四摘要暫存器E1之N個位元用於Ch函式;及在第二組中之各回合之各循環中,將來自第四摘要暫存器E1之W個位元用於∑1 函式並將來自第三摘要暫存器E0之N個位元用於Ch函式。
在一實例中,加速器進一步用以:在各回合之各循環中:產生與摘要字A相關聯之第一進位值,及產生與摘要字E相關聯之第二進位值。
在實例中,加速器進一步用以:接收待使用SHA-2演算法處理之訊息;將訊息儲存於多個訊息暫存器中,其中各訊息暫存器用以儲存W個位元之訊息字;及在各回合之各循環中,使用來自第一訊息暫存器之W個位元、來自第二訊息暫存器之W個位元、來自第三訊息暫存器之N個位元及來自第四訊息暫存器之N個位元產生N個位元之訊息擴展。
在一實例中,SHA-2演算法為選自SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224及SHA-512/256中之一者。
在另一實例中,機器可讀媒體在其上儲存有資料,該機器可讀媒體在由至少一個機器使用時使得該至少一個機器製造至少一個積體電路以執行一方法。該方法可包括:接收待使用SHA-2演算法處理之訊息;將摘要字A至H儲存於多個摘要暫存器中,其中各摘要字包含W個位元,其中各摘要字包含各具有N個位元之大小的多個部分,其中該多個摘要暫存器包括第一摘要暫存器A0及第二摘要暫存器A1;執行多個回合,其中該多個回合經劃分為第一組及第二組,該第一組及該第二組選自一組偶數回合及一組奇數回合;在第一組中之各回合中,將摘要字A儲存於第一摘要暫存器A0中及將摘要字B儲存於第二摘要暫存器A1中;在第二組中之各回合中,將摘要字A儲存於第二摘要暫存器A1中及將摘要字B儲存於第一摘要暫存器A0中。
在一實例中,該方法進一步包括,在第一組中之各回合之各循環中,將來自第一摘要暫存器A0之W個位元用於∑ 0 函式,及將來自第二摘要暫存器A1之N個位元用於Maj函式;在第二組中之各回合之各循環中,將來自第二摘要暫存器A1之W個位元用於∑ 0 函式,及將來自第一摘要暫存器A0之N個位元用於Maj函式。
在一實例中,多個摘要暫存器進一步包括第三摘要暫存器E0及第四摘要暫存器E1。該方法進一步包括:在第一組中之各回合之各循環中,將來自第三摘要暫存器E0之W個位元用於∑1 函式並將來自第四摘要暫存器E1之N個位元用於Ch函式;在第二組中之各回合之各循環中,將來自第四摘要暫存器E1之W個位元用於∑1 函式並將來自第三摘要暫存器E0之N個位元用於Ch函式。
在實例中,該方法進一步包括:在第一組中之各回合中,將摘要字E儲存於第三摘要暫存器E0中並將摘要字F儲存於第四摘要暫存器E1中;在第二組中之各回合中,將摘要字E儲存於第四摘要暫存器E1中並將摘要字F儲存於第三摘要暫存器E0中。
在實例中,部分大小N等於字大小W除以循環C之數目,其中字大小W選自32個位元及64個位元,且其中部分大小N選自2個位元及4個位元。
在一個實例中,該方法進一步包括在各回合之各循環中,產生待添加至摘要字A之N個位元,及產生待添加至摘要字E之N個位元。
應理解,以上實例之各種組合有可能。實施例可用於許多不同類型之系統中。舉例而言,在一個實施例中,通訊裝置可經配置以執行本文中所描述之各種方法及技術。當然,本發明之範疇並非限於通訊裝置,且實情為其他實施例可係針對用於處理指令的其他類型之設備,或包括回應於在計算裝置上執行而使得裝置進行本文中所描述之方法及技術中之一或多者的指令之一或多個機器可讀媒體。
貫穿本說明書對「一個實施例」或「一實施例」之提及意謂結合該實施例所描述之特定特徵、結構或特性包括在涵蓋於本發明內之至少一個實施中。因此,片語「一個實施例」或「在一實施例中」之出現未必指同一實施例。此外,可以不同於所說明之特定實施例的其他合適形式來設立特定特徵、結構或特性,且所有此等形式可涵蓋於本申請案之申請專利範圍內。
雖然已關於有限數目個實施例描述本發明,但熟習此項技術者將瞭解自本發明之眾多修改及變化。希望隨附申請專利範圍涵蓋如屬於本發明之真實精神及範疇內的所有此等修改及變化。
100、1200、1300、1400‧‧‧系統
105、1415‧‧‧系統記憶體
118‧‧‧密碼加速器
120‧‧‧加速器
121、131、132、133、134、135、136、137、138‧‧‧摘要暫存器
122‧‧‧第一開關
123‧‧‧訊息暫存器
124‧‧‧第二開關
125‧‧‧摘要邏輯
127‧‧‧擴展器邏輯
130‧‧‧方塊圖
139‧‧‧Carry_A暫存器
140‧‧‧Carry_E暫存器
150、160‧‧‧圖
151、152、155、156‧‧‧函式
153、154、157、158、159‧‧‧加法
165‧‧‧進位暫存器
167‧‧‧暫時訊息暫存器
200‧‧‧序列
202、204、206、207、208、209、210、220、222、224、226、228、230、232、234、236‧‧‧區塊
300、301、302、304、304a、304n、3200、320n、370a、370b、370n、401、402、600、700、800‧‧‧核心
308a、308n、308x‧‧‧整合式電壓調節器(IVR)
312‧‧‧功率控制單元(PCU)
313‧‧‧輸入/輸出介面
314、3400、340n、386a、386n、960a、960d、1592‧‧‧介面
315、342、384、1050‧‧‧整合式記憶體控制器
316‧‧‧外部電壓調節器
317‧‧‧電源供應器
321‧‧‧核心域
3220、322n‧‧‧末層級記憶體
323‧‧‧環互連件
324、1030‧‧‧圖形域
330‧‧‧系統代理域
332、955‧‧‧顯示控制器
335、388‧‧‧功率控制單元
375‧‧‧互連件
380‧‧‧非核心
382‧‧‧共用快取記憶體
400、900、1410‧‧‧處理器
401a、401b、402a、402b‧‧‧架構狀態暫存器
405‧‧‧匯流排介面
410‧‧‧較高層級快取記憶體
415‧‧‧資料TLB
420‧‧‧分支目標緩衝器
425‧‧‧解碼模組/解碼邏輯
430‧‧‧分配器及重命名器
435‧‧‧無序單元
440‧‧‧排程器及執行單元
460‧‧‧功率控制器
470、935‧‧‧記憶體控制器
500、1574a、1574b、1584a、1584b‧‧‧處理器核心
501、710、810‧‧‧提取單元
503、610‧‧‧指令快取記憶體
505、615‧‧‧指令解碼器
510‧‧‧前端單元
515‧‧‧無序(OOO)引擎
520‧‧‧執行單元
522‧‧‧算術邏輯單元
524‧‧‧向量執行單元
530‧‧‧暫存器檔案
535‧‧‧擴展暫存器檔案
540‧‧‧重排序緩衝器(ROB)
550、1015、1025‧‧‧快取記憶體
605‧‧‧分支預測器
618‧‧‧微碼ROM
620‧‧‧發射佇列
630‧‧‧浮點管線
634‧‧‧浮點暫存器檔案
635、645‧‧‧ALU
636‧‧‧混洗單元
638‧‧‧浮點加法器
640‧‧‧整數管線
642‧‧‧整數暫存器檔案
644‧‧‧整數排程器
646‧‧‧移位器單元
648‧‧‧跳轉執行單元
650‧‧‧記憶體執行排程器
652‧‧‧位址產生單元
654‧‧‧TLB
660‧‧‧資料快取記憶體
715‧‧‧解碼單元
725、830‧‧‧發射邏輯
730、825‧‧‧佇列
735、835‧‧‧整數單元
740、840‧‧‧乘法單元
750、850‧‧‧浮點/向量單元
760‧‧‧雙發射單元
770、870‧‧‧載入/儲存單元
780、880‧‧‧寫回單元
815‧‧‧解碼器/重命名器/調度器
860‧‧‧分支單元
910、9100、910n‧‧‧核心單元
920‧‧‧圖形單元
925、1170‧‧‧影像信號處理器
930‧‧‧非依電性儲存器
940‧‧‧功率管理器
945、1250‧‧‧安全處理器
950‧‧‧視訊寫碼器
1000、1100、1310‧‧‧SoC
1010‧‧‧第一核心域
10120、10123‧‧‧第一核心
1020、10220、10223‧‧‧第二核心
1040‧‧‧相干互連件
1120‧‧‧GPU域
1130‧‧‧DSP單元
1140‧‧‧通訊單元
1150‧‧‧多媒體處理器
1160‧‧‧感測器單元
1180‧‧‧顯示處理器
1190‧‧‧位置單元
1205‧‧‧基頻處理器
1210‧‧‧應用程式處理器
1215、1380‧‧‧功率管理積體電路(PMIC)
1220‧‧‧使用者介面/顯示器
1225、1360‧‧‧感測器
1230、1340‧‧‧快閃記憶體
1235‧‧‧動態隨機存取記憶體(DRAM)
1240‧‧‧通用積體電路卡
1260‧‧‧近場通訊(NFC)非接觸式介面
1265‧‧‧NFC天線
1270‧‧‧射頻(RF)收發器
1275‧‧‧無線區域網路(WLAN)收發器
1280‧‧‧GPS感測器
1290、1355‧‧‧天線
1295、1370‧‧‧音訊輸出裝置
1320‧‧‧觸控面板
1325‧‧‧周邊集線器
1330‧‧‧乙太網路介面
1345‧‧‧DRAM
1350、1450‧‧‧WLAN單元
1365‧‧‧音訊編解碼器
1390‧‧‧電池
1395‧‧‧AC配接器
1420‧‧‧大容量儲存器
1422‧‧‧快閃裝置
1424‧‧‧顯示器
1425‧‧‧觸控式螢幕
1430‧‧‧觸控板
1435‧‧‧嵌入式控制器
1436‧‧‧鍵盤
1437‧‧‧風扇
1438‧‧‧受信任平臺模組(TPM)
1439、1446‧‧‧熱感測器
1440‧‧‧感測器集線器
1441‧‧‧加速度計
1442‧‧‧環境光感測器(ALS)
1443‧‧‧羅盤
1444‧‧‧陀螺儀
1445‧‧‧NFC單元
1452‧‧‧藍芽單元
1454‧‧‧攝影機模組
1455‧‧‧GPS模組
1456‧‧‧WWAN單元
1457‧‧‧用戶識別模組(SIM)
1460‧‧‧數位信號處理器(DSP)
1462‧‧‧放大器/編碼解碼器
1463‧‧‧輸出揚聲器
1464‧‧‧頭戴式耳機插口
1465‧‧‧麥克風
1500‧‧‧多處理器系統
1514‧‧‧輸入/輸出(I/O)裝置
1516‧‧‧第一匯流排
1518‧‧‧匯流排橋接器
1520‧‧‧第二匯流排
1522‧‧‧鍵盤/滑鼠
1524‧‧‧音訊I/O
1526‧‧‧通訊裝置
1528‧‧‧資料儲存單元
1530‧‧‧程式碼
1532、1534‧‧‧記憶體
1538‧‧‧高效能圖形引擎
1539、1550、1562、1564‧‧‧P-P互連件
1570‧‧‧第一處理器
1572、1582‧‧‧記憶體控制器集線器(MCH)
1576、1578、1586、1588、1594、1598‧‧‧點對點(P-P)介面
1580‧‧‧第二處理器
1590‧‧‧晶片組
圖1A為根據一或多個實施例。
圖1B為根據一或多個實施例之加速器之方塊圖。
圖1C為根據一或多個實施例之方塊圖。
圖1D為根據一或多個實施例之圖。
圖1E展示根據一或多個實施例之SHA-2函式之實例的圖。
圖1F為根據一或多個實施例之圖。
圖2A為根據一或多個實施例之序列。
圖2B為根據一或多個實施例之雜湊更新操作之序列。
圖3A為根據一或多個實施例之系統之一部分之方塊圖。
圖3B為根據一或多個實施例之多域處理器之方塊圖。
圖3C為根據一或多個實施例之處理器之方塊圖。
圖4為根據一或多個實施例之包括多個核心之處理器之方塊圖。
圖5為根據一或多個實施例之處理器核心之微型架構之方塊圖。
圖6為根據一或多個實施例之處理器核心之微型架構之方塊圖。
圖7為根據一或多個實施例之處理器核心之微型架構之方塊圖。
圖8為根據一或多個實施例之處理核心之微型架構之方塊圖。
圖9為根據一或多個實施例之處理器之方塊圖。
圖10為根據一或多個實施例之代表性SoC之方塊圖。
圖11為根據一或多個實施例之另一實例SoC之方塊圖。
圖12為一或多個實施例可與其一起使用之實例系統之方塊圖。
圖13為一或多個實施例可與其一起使用之實例系統之方塊圖。
圖14為根據一或多個實施例之電腦系統之方塊圖。
圖15為根據一或多個實施例之系統之方塊圖。之系統之方塊圖。
120‧‧‧加速器
121‧‧‧摘要暫存器
122‧‧‧第一開關
123‧‧‧訊息暫存器
124‧‧‧第二開關
125‧‧‧摘要邏輯
127‧‧‧擴展器邏輯

Claims (20)

  1. 一種處理器,包含: 用於執行一密碼雜湊演算法之一硬體加速器,該硬體加速器用以: 接收要使用該密碼雜湊演算法處理之一訊息; 將多個摘要字儲存於多個摘要暫存器中,其中各摘要字具有W個位元之一大小,其中各摘要字包含各具有N個位元之一大小的多個部分,其中該多個摘要暫存器包括一第一摘要暫存器及一第二摘要暫存器; 執行該密碼雜湊演算法之多個回合,其中各回合包含多個C循環,其中該多個回合被分成一第一組回合及一第二組回合,其中該第一組及該第二組選自一組偶數回合及一組奇數回合; 在該第一組中之各回合之各循環中,將來自該第一摘要暫存器之W個位元用於一第一函式,並將來自該第二摘要暫存器之N個位元用於一第二函式; 在該第二組中之各回合之各循環中,將來自該第二摘要暫存器之W個位元用於該第一函式,並將來自該第一摘要暫存器之N個位元用於該第二函式。
  2. 如請求項1之處理器,其中該硬體加速器進一步用以: 在該第一組之各回合中,將一第一摘要字儲存於該第一摘要暫存器中並將一第二摘要字儲存於該第二摘要暫存器中; 在該第二組之各回合中,將該第一摘要字儲存於該第二摘要暫存器中並將該第二摘要字儲存於該第一摘要暫存器中。
  3. 如請求項1之處理器,其中部分大小N等於字大小W除以循環C之數目。
  4. 如請求項1之處理器,其中該密碼雜湊演算法為一安全雜湊演算法2 (SHA-2)。
  5. 如請求項4之處理器,其中: 該第一函式為該SHA-2演算法之一∑0 函式;及 該第二函式為該SHA-2演算法之一Maj 函式。
  6. 如請求項1之處理器,其中該多個摘要暫存器進一步包括一第三摘要暫存器及一第四摘要暫存器,且其中該硬體加速器進一步用以: 在該第一組中之各回合之各循環中,將來自該第三摘要暫存器之W個位元用於一第三函式,並將來自該第四摘要暫存器之N個位元用於一第四函式;及 在該第二組中之各回合之各循環中,將來自該第四摘要暫存器之W個位元用於該第三函式,並將來自該第三摘要暫存器之N個位元用於該第四函式。
  7. 如請求項6之處理器,其中該硬體加速器進一步用以: 在該第一組中之各回合中,將一第三摘要字儲存於該第三摘要暫存器中,並將一第四摘要字儲存於該第四摘要暫存器中;及 在該第二組中之各回合中,將該第三摘要字儲存於該第四摘要暫存器中,並將該第四摘要字儲存於該第三摘要暫存器中。
  8. 如請求項6之處理器,其中: 該第三函式為該密碼雜湊演算法之一∑1 函式;及 該第四函式為該密碼雜湊演算法之一Ch 函式。
  9. 一種其上儲存有資料的機器可讀媒體,其在由至少一個機器使用時使得該至少一個機器製造至少一個積體電路來執行一方法,該方法包含: 接收要使用一密碼雜湊演算法處理之一訊息; 將多個摘要字儲存於多個摘要暫存器中,其中各摘要字包含W個位元,其中各摘要字包含各具有N個位元之一大小的多個部分,其中該多個摘要暫存器包括一第一摘要暫存器及一第二摘要暫存器; 執行多個回合,其中該多個回合被分成一第一組及一第二組,該第一組及該第二組選自一組偶數回合及一組奇數回合; 在第一組中之各回合中: 將一第一摘要字儲存於該第一摘要暫存器中;及 將一第二摘要字儲存於該第二摘要暫存器中; 在該第二組中之各回合中: 將該第一摘要字儲存於該第二摘要暫存器中;及 將該第二摘要字儲存於該第一摘要暫存器中。
  10. 如請求項9之機器可讀媒體,其中該方法進一步包含: 在第一組中之各回合之各循環中: 將來自該第一摘要暫存器之W個位元用於一第一函式;及 將來自該第二摘要暫存器之N個位元用於一第二函式; 在第二組中之各回合之各循環中: 將來自該第二摘要暫存器之W個位元用於該第一函式;及 將來自該第一摘要暫存器之N個位元用於該第二函式。
  11. 如請求項10之機器可讀媒體,其中該多個摘要暫存器進一步包括一第三摘要暫存器及一第四摘要暫存器,且其中該方法進一步包含: 在該第一組中之各回合之各循環中,將來自該第三摘要暫存器之W個位元用於一第三函式,並將來自該第四摘要暫存器之N個位元用於一第四函式; 在該第二組中之各回合之各循環中,將來自該第四摘要暫存器之W個位元用於該第三函式,並將來自該第三摘要暫存器之N個位元用於該第四函式。
  12. 如請求項11之機器可讀媒體,其中該方法進一步包含: 在第一組中之各回合中: 將一第三摘要字儲存於該第三摘要暫存器中;及 將一第四摘要字儲存於該第四摘要暫存器中; 在該第二組中之各回合中: 將該第三摘要字儲存於該第四摘要暫存器中;及 將該第四摘要字儲存於該第三摘要暫存器中。
  13. 如請求項9之機器可讀媒體,其中部分大小N等於字大小W除以循環C之數目,其中字大小W選自32個位元及64個位元,且其中部分大小N選自2個位元及4個位元。
  14. 如請求項9之處理器可讀媒體,其中: 該第一函式為該密碼雜湊演算法之一∑0 函式; 該第二函式為該密碼雜湊演算法之一Maj 函式; 該第三函式為該密碼雜湊演算法之一∑1 函式;及 該第四函式為該密碼雜湊演算法之一Ch 函式。
  15. 一種系統,包含: 一處理器,包含用於執行一密碼雜湊演算法之一加速器,該加速器用以: 執行該密碼雜湊演算法之多個回合,其中各回合包含多個C循環,其中該多個回合被分成選自一組偶數回合及一組奇數回合之一第一組及一第二組; 在第一組之各回合中: 將一第一摘要字儲存於該第一摘要暫存器中;及 將一第二摘要字儲存於該第三摘要暫存器中; 在該第二組之各回合中: 將該第一摘要字儲存於一第二摘要暫存器中; 將該第二摘要字儲存於一第四摘要暫存器中;及 一耦接至該處理器之外部記憶體。
  16. 如請求項15之系統,其中各摘要字包含W個位元,其中各摘要字包含各具有N個位元之一大小的多個部分,且其中該加速器進一步用以: 在該第一組之各回合之各循環中,將來自該第一摘要暫存器之W個位元用於該密碼雜湊演算法之一第一函式,並將來自該第二摘要暫存器之N個位元用於該密碼雜湊演算法之一第二函式; 在該第二組之各回合之各循環中,將來自該第二摘要暫存器之W個位元用於該第一函式,並將來自該第一摘要暫存器之N個位元用於該第二函式。
  17. 如請求項15之系統,其中該加速器進一步用以: 在該第一組中之各回合之各循環中,將來自該第三摘要暫存器之W個位元用於該密碼雜湊演算法之一第三函式,並將來自該第四摘要暫存器之N個位元用於該密碼雜湊演算法之一第四函式; 在該第二組中之各回合之各循環中,將來自該第四摘要暫存器之W個位元用於該第三函式,並將來自該第三摘要暫存器之N個位元用於該第四函式。
  18. 如請求項17之系統,其中: 該第三函式為該密碼雜湊演算法之一∑1 函式;及 該第四函式為該密碼雜湊演算法之一Ch 函式。
  19. 如請求項15之系統,其中: 該第一函式為該密碼雜湊演算法演算法之一∑0 函式;及 該第二函式為該密碼雜湊演算法之一Maj 函式。
  20. 如請求項15之系統,其中該密碼雜湊演算法為SHA-2演算法。
TW105131872A 2015-11-05 2016-10-03 用於密碼雜湊運算之硬體加速器 TWI697228B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/933,011 2015-11-05
US14/933,011 US10020934B2 (en) 2015-11-05 2015-11-05 Hardware accelerator for cryptographic hash operations

Publications (2)

Publication Number Publication Date
TW201717573A true TW201717573A (zh) 2017-05-16
TWI697228B TWI697228B (zh) 2020-06-21

Family

ID=58662671

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105131872A TWI697228B (zh) 2015-11-05 2016-10-03 用於密碼雜湊運算之硬體加速器

Country Status (3)

Country Link
US (1) US10020934B2 (zh)
TW (1) TWI697228B (zh)
WO (1) WO2017078861A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI801926B (zh) * 2020-12-18 2023-05-11 大陸商深圳比特微電子科技有限公司 執行哈希算法的電路、計算晶片、數據處理設備和方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10020934B2 (en) * 2015-11-05 2018-07-10 Intel Corporation Hardware accelerator for cryptographic hash operations
US10783279B2 (en) * 2016-09-01 2020-09-22 Atmel Corporation Low cost cryptographic accelerator
US10979214B2 (en) * 2018-07-24 2021-04-13 Martin Spence Denham Secure hash algorithm implementation
US11405213B2 (en) * 2019-06-28 2022-08-02 Intel Corporation Low latency post-quantum signature verification for fast secure-boot
US11456877B2 (en) * 2019-06-28 2022-09-27 Intel Corporation Unified accelerator for classical and post-quantum digital signature schemes in computing environments
US11303429B2 (en) * 2019-06-28 2022-04-12 Intel Corporation Combined SHA2 and SHA3 based XMSS hardware accelerator
CN116488793A (zh) * 2019-12-11 2023-07-25 北京雍鼎智能科技有限公司 消息加密方法及装置
CN112988235B (zh) * 2021-02-06 2022-06-14 华中科技大学 一种高效率第三代安全散列算法的硬件实现电路及方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7142669B2 (en) 2000-11-29 2006-11-28 Freescale Semiconductor, Inc. Circuit for generating hash values
US20020191783A1 (en) 2001-06-13 2002-12-19 Takahashi Richard J. Method and apparatus for creating a message digest using a multiple round, one-way hash algorithm
US7213148B2 (en) * 2001-06-13 2007-05-01 Corrent Corporation Apparatus and method for a hash processing system using integrated message digest and secure hash architectures
TWI238636B (en) 2003-06-19 2005-08-21 Yen-Fu Liu Operation device and method of fast secure hash algorithm
JP4308840B2 (ja) * 2006-11-08 2009-08-05 Okiセミコンダクタ株式会社 Sha演算方法およびsha演算装置
US7970128B2 (en) 2007-07-20 2011-06-28 Freescale Semiconductor, Inc. Systems and methods for efficient generation of hash values of varying bit widths
TW200943971A (en) * 2008-04-15 2009-10-16 Realtek Semiconductor Corp Multimedia decoding apparatus and method
KR20110106849A (ko) * 2008-11-10 2011-09-29 윌리엄 브이 옥스포드 회귀형 보안 프로토콜을 이용하여 컴퓨팅 장치에서 코드 실행을 제어하는 방법 및 시스템
US8712039B2 (en) * 2011-04-06 2014-04-29 Certicom Corp. Efficient implementation of hash algorithm on a processor
US20140095845A1 (en) * 2012-09-28 2014-04-03 Vinodh Gopal Apparatus and method for efficiently executing boolean functions
US9251377B2 (en) * 2012-12-28 2016-02-02 Intel Corporation Instructions processors, methods, and systems to process secure hash algorithms
US9201629B2 (en) * 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US9912481B2 (en) 2014-03-27 2018-03-06 Intel Corporation Method and apparatus for efficiently executing hash operations
US9960909B2 (en) * 2014-12-08 2018-05-01 Open-Silicon Inc. High speed and low power hashing system and method
US10020934B2 (en) * 2015-11-05 2018-07-10 Intel Corporation Hardware accelerator for cryptographic hash operations
US10346343B2 (en) * 2016-06-24 2019-07-09 Intel Corporation Hardware accelerator for platform firmware integrity check

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI801926B (zh) * 2020-12-18 2023-05-11 大陸商深圳比特微電子科技有限公司 執行哈希算法的電路、計算晶片、數據處理設備和方法
US11658807B2 (en) 2020-12-18 2023-05-23 Shenzhen Microbt Electronics Technology Co., Ltd. Circuit for performing hash algorithm, computing chip, data processing device and method

Also Published As

Publication number Publication date
US10020934B2 (en) 2018-07-10
US20170134163A1 (en) 2017-05-11
WO2017078861A1 (en) 2017-05-11
TWI697228B (zh) 2020-06-21

Similar Documents

Publication Publication Date Title
TWI697228B (zh) 用於密碼雜湊運算之硬體加速器
US9690488B2 (en) Data compression using accelerator with multiple search engines
US20200218677A1 (en) Management of Processor Performance Based on User Interrupts
US9419647B2 (en) Partitioned data compression using accelerator
US10579530B2 (en) Prefetch filter cache for a processor
US10921872B2 (en) Performing soft throttling and hard throttling in a processor
US10404836B2 (en) Managing state data in a compression accelerator
US11886884B2 (en) Branch prediction based on coherence operations in processors
US20170039034A1 (en) Threshold filtering of compressed domain data using steering vector
EP3674847B1 (en) Controlling power state demotion in a processor
US20210064110A1 (en) Control blocks for processor power management
US10541687B2 (en) Validating an image for a reconfigurable device
US20200004584A1 (en) Hardware Queue Manager for Scheduling Requests in a Processor
US20230111694A1 (en) Selection of power supply for a host system
US10606304B2 (en) Usage counter for control of system clocks
WO2017218099A1 (en) Synchronization logic for memory requests
US11514551B2 (en) Configuration profiles for graphics processing unit
EP4020183A1 (en) Instruction and logic for sum of square differences
EP4109217A2 (en) Power limits for virtual partitions in a processor
US20220308881A1 (en) Instruction and logic for sum of absolute differences
EP4155947A1 (en) Selection of victim entry in a data structure
CN108694154B (zh) 用于选择数据元素的硬件加速器

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees