專利名稱:一種高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全、密碼算法芯片、集成電路設(shè)計與實現(xiàn)和系統(tǒng)結(jié)構(gòu)領(lǐng)域,具體 涉及一種加速各種公鑰密碼算法求解的、可以靈活擴展的高性能公鑰密碼協(xié)處理器結(jié)構(gòu)。
背景技術(shù):
隨著集成電路技術(shù)、計算機網(wǎng)絡(luò)技術(shù)、計算機技術(shù)等的飛速發(fā)展,目前以hternet 為中心的各種網(wǎng)絡(luò)應用得到極大發(fā)展,典型的應用如電子商務、電子政務、電子護照、網(wǎng)上 銀行、金融電子化、無線局域網(wǎng)絡(luò)開發(fā)、軟件產(chǎn)權(quán)保護、遠程管理、電子護照、股票交易等等。 但另一方面,網(wǎng)絡(luò)數(shù)據(jù)傳輸和終端已經(jīng)越來越受到各種惡意的攻擊,導致網(wǎng)絡(luò)數(shù)據(jù)的機密 性、完整性、可用性、可控性受到巨大的威脅,網(wǎng)絡(luò)黑客以及各種病毒經(jīng)常盜取用戶數(shù)據(jù),對 數(shù)據(jù)進行篡改破壞,以及假冒合法用戶獲得對系統(tǒng)及服務訪問的權(quán)限,從而給社會帶來不 可估量的經(jīng)濟損失,嚴重影響經(jīng)濟活動中的各種交易的正常進行,對國家信息安全也產(chǎn)生 很大危險。人們迫切需要采取各種措施保護網(wǎng)絡(luò)數(shù)據(jù)的安全以及進行身份認證和授權(quán)、對 交易雙方交易的不可抵賴性進行證實等。在技術(shù)層面,目前已經(jīng)形成以現(xiàn)代密碼學為核 心的各種安全基礎(chǔ)設(shè)施和解決方案,如公鑰基礎(chǔ)設(shè)施PKI (Public KeyInfrastructure)、 可信計算平臺TCPA(Trusted Computing Platform Alliance)、中國自主無線局域網(wǎng)安 ± M ^kTj M WAPI (W LAN Authentication and Privacy Infrastructure) >SET (Secure Electronic Transaction)等。
在這些安全基礎(chǔ)設(shè)施和解決方案中,目前廣泛應用的密碼協(xié)議和密碼技術(shù)的核心 算法主要包括三類對稱加密/解密算法、單向散列函數(shù)和公開密鑰算法。在加密數(shù)據(jù)包傳 輸過程中,由對稱加密/解密算法對傳輸數(shù)據(jù)包進行加密和解密,加密和解密使用相同的 密鑰,在每次加密/解密之前需要協(xié)商和交換密鑰,而密鑰協(xié)商和密鑰交換由公開密鑰算 法來完成。在簽名過程中,單向散列函數(shù)用于生成待簽名的明文,公開密鑰算法則要用于簽 名認證。
由此看來,在密碼協(xié)議和安全系統(tǒng)中,公開密鑰算法是其中極其重要的組成部分 和核心基礎(chǔ)。目前國際上各種標準化組織已經(jīng)制定一系列標準文件來規(guī)范公鑰密碼體制的 使用,如IEEE 1363,FIPS 186-3,ANSI X 9.62*SECG_1。與此同時,中國無線局域網(wǎng)標準 制定了基于ECC的無線局域網(wǎng)安全標準WAPI。
在目前廣泛使用的公開密鑰算法中,RSA算法和橢圓曲線密碼算法ECC是國際上 公認的安全性極高的公鑰密碼算法,并且使用范圍非常廣泛。ECC算法的出現(xiàn)雖然較RSA 晚,但是由于ECC算法能夠使用很短的密鑰長度就能達到極高的安全強度,例如密鑰長度 為160bit的ECC算法能達到相當于IOMbit的RSA算法的安全性,因此ECC算法尤其適合 在帶寬和存儲空間受限的場合使用,如各種嵌入式系統(tǒng)以及無線局域網(wǎng)設(shè)備等。由此ECC 算法也越來越多的受到重視和廣泛使用,可以預見未來在很多安全系統(tǒng)中ECC算法有取代 RSA算法應用的趨勢。
無論是RSA算法還是ECC算法,其安全性的基礎(chǔ)是離散對數(shù)計算的難解性。RSA和ECC算法求解本身屬于計算密集型(Computation Intensive)計算問題,涉及到大量復 雜的有限域模乘、模加減、求逆等核心運算。在通用處理器上用軟件實現(xiàn)RSA和ECC算法求 解不僅不能滿足大多數(shù)應用的實時性需求,而且私鑰也極易受到各種攻擊,保密性很差。因 此,目前RSA和ECC算法求解大都基于專用硬件協(xié)處理器的方式實現(xiàn),從而有效加速RSA和 ECC公鑰密碼算法的求解過程,滿足安全系統(tǒng)應用的實時性需求,同時也可以達到防范各種 安全攻擊的目的。
一般來說,無論是RSA公鑰密碼算法還是ECC公鑰密碼算法,在諸如此類基于離散 對數(shù)計算難解性的公鑰密碼算法中進行數(shù)字簽名和身份認證過程的核心運算(常常也是 需要耗費大量計算時間的運算)主要是大數(shù)模冪運算和橢圓曲線上點的標量乘法運算。而 大數(shù)模冪運算可以根據(jù)一定的算法拆分成一系列的模乘運算;橢圓曲線標量乘法運算可以 拆分成一系列的點加和倍加運算。
為此,完全可以依據(jù)公鑰密碼算法的特點,針對其耗時、常用的核心運算,設(shè)計實 現(xiàn)相應的高性能公鑰密碼算法協(xié)處理器。高性能公鑰密碼算法協(xié)處理器對這些核心運算高 效實現(xiàn),從而可以顯著減少這類基于離散對數(shù)計算難解性的公鑰密碼算法的求解時間,有 效提高基于這類公鑰密碼算法的相關(guān)安全基礎(chǔ)設(shè)施和解決方案的整體性能。
同時,高性能公鑰密碼協(xié)處理器也可以極大滿足各行業(yè)安全信息系統(tǒng)設(shè)計實現(xiàn)和 信息安全基礎(chǔ)設(shè)施建設(shè)的實際需求,為最大限度減少商業(yè)領(lǐng)域的各種安全威脅提供強有力 支撐。本發(fā)明的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)具有重要的理論意義,以及很大的市 場前景和實用價值。發(fā)明內(nèi)容
本發(fā)明的目的是提供一種高性能可擴展的公鑰密碼協(xié)處理器結(jié)構(gòu),實現(xiàn)GF(P)和 GF(2m)域操作數(shù)長度可擴展的模乘、模加、模冪和模逆運算操作,并且支持GF(p)和GF^1) 域密鑰長度可擴展的橢圓曲線運算操作,包括橢圓曲線上點的加法、倍加、減法和標量乘法 運算操作,用以解決目前各種公鑰密碼協(xié)處理器當前普遍存在的可擴展性較差和性能較低 的問題,從而可以有效加速諸如RSA、ECC、ElGamal, Diffie-Hellman和DSA等公鑰密碼算 法的求解。同時,該高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)的可擴展性還體現(xiàn)在基于該結(jié)構(gòu) 設(shè)計實現(xiàn)高性能公鑰密碼協(xié)處理器時,可以根據(jù)具體應用對性能和實現(xiàn)成本的需要進行配 置,以較低的功耗和較高的性價比實現(xiàn)滿足特定應用需要的專用公鑰密碼協(xié)處理器。
一種高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),包含一個基本指令集、存儲器映射接 口電路、輸入緩沖器電路、數(shù)據(jù)控制器電路、配置寄存器、基于有線狀態(tài)機的指令譯碼單元、 指令隊列、指令執(zhí)行控制器、模算術(shù)運算單元陣列、存儲器控制器、寄存器文件等類型的內(nèi) 部存儲單元和輸出緩沖器電路,其特征在于所述的基本指令集定義了公鑰密碼算法的核 心運算和操作相應的指令;存儲器映射接口電路分別與外部控制部件或系統(tǒng)、輸入緩沖器 電路及輸出緩沖器電路相連,輸入緩沖器電路分別與數(shù)據(jù)控制器電路、配置寄存器、指令隊 列相連,數(shù)據(jù)控制器電路與存儲器控制器相連,配置寄存器分別與指令執(zhí)行控制器和模算 術(shù)運算單元陣列相連,基于有線狀態(tài)機的指令譯碼單元分別與指令隊列、指令執(zhí)行控制器 相連,指令執(zhí)行控制器與模算術(shù)運算單元陣列相連,模算術(shù)運算單元陣列與存儲器控制器 相連,存儲器控制器分別與寄存器文件等類型的內(nèi)部存儲單元和輸出緩沖器電路相連。而且在本發(fā)明高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)中寄存器文件等類型的內(nèi)部存儲單元、基 本指令集中的指令、配置寄存器是統(tǒng)一編址的。
針對公鑰密碼算法中所涉及的模乘、模加、模冪和模逆,以及橢圓曲線上點的加 法、倍加、減法和標量乘法等核心運算和操作,本發(fā)明的高性能可擴展公鑰密碼協(xié)處理器結(jié) 構(gòu)包含一個基本的指令集,該基本指令集定義了目前絕大多數(shù)的主要公鑰密碼算法的核心 運算和操作相應的指令。
所述的存儲器映射接口電路為該高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)對外接口 電路,通過存儲器接口的讀寫模式將高性能可擴展公鑰密碼協(xié)處理器外的數(shù)據(jù)、指令和地 址進行正確接收并發(fā)送給其內(nèi)部的輸入緩沖器電路,并將輸出緩沖器電路傳輸?shù)臄?shù)據(jù)發(fā)送 給高性能可擴展公鑰密碼協(xié)處理器外部的控制部件或系統(tǒng)(如微處理器或微控制器等)。 由于該高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)內(nèi)部和外部工作頻率可能不一致,存儲器映射 接口電路還具有對不同時鐘域的數(shù)據(jù)進行同步處理的功能,避免電路進入亞穩(wěn)態(tài),或發(fā)生 數(shù)據(jù)發(fā)送和接收的錯誤。
所述的輸入緩沖器電路與存儲器映射接口電路、數(shù)據(jù)控制器電路、配置寄存器和 指令隊列相連接,負責對接收來自存儲器映射接口電路的指令進行第一級指令譯碼,通過 對輸入地址的比較以判斷接收到的是指令是一般數(shù)據(jù)或是需要寫入的配置寄存器數(shù)據(jù)。數(shù) 據(jù)控制器電路與存儲器控制器相連接,產(chǎn)生讀寫控制邏輯,對寄存器文件等類型的內(nèi)部存 儲單元進行讀寫操作。
所述的配置寄存器存儲對高性能可擴展公鑰密碼協(xié)處理器進行各種配置的系統(tǒng) 參數(shù),包括計算陣列參數(shù)、接口配置參數(shù)等,它與指令執(zhí)行控制器、模算術(shù)運算單元陣列相 連接,為指令執(zhí)行控制器、模算術(shù)運算單元陣列提供所需的計算陣列參數(shù)、接口配置參數(shù), 配置寄存器與寄存器文件等類型的內(nèi)部存儲單元統(tǒng)一編址。
所述的基于有線狀態(tài)機的指令譯碼單元與指令執(zhí)行控制器相連接,對第一級譯碼 后的指令進行第二級譯碼,基于有限狀態(tài)機模型對多周期串行執(zhí)行指令進行譯碼,并對指 令執(zhí)行進行有效控制。
所述的指令隊列為流水指令寄存器結(jié)構(gòu),存儲多條流水執(zhí)行指令,一旦基于有線 狀態(tài)機的指令譯碼單元空閑時就從指令隊列中取指令,并將指令寄存器清空,以接收新的 后續(xù)指令。
所述的指令執(zhí)行控制器與模算術(shù)運算單元陣列相連接,它作為高性能可擴展公鑰 密碼協(xié)處理器各類指令的執(zhí)行控制器,為指令執(zhí)行分配相應的模運算單元,并對多個模運 算單元進行有效的調(diào)度,使指令執(zhí)行時間最短。
所述的模算術(shù)運算單元陣列包括a個雙域可擴展Montgomery模乘單元SMM和b個 雙域可擴展模加減單元SMA, a、b分別為不等于零的自然數(shù),它們與存儲器控制器相連接, 是該高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)中完成相關(guān)計算操作的功能部件,SMM和SMA的 計算字長w可以根據(jù)應用需要進行配置w典型值為8 128,w越大,電路的面積越大,完 成計算所需要的周期數(shù)越小,因此可以根據(jù)實際電路要求的面積和速度選擇合適的w值, 并且SMM為多運算單元流水結(jié)構(gòu);其中運算單元個數(shù)e的典型值為2 20,SMM中運算單元 的個數(shù)e直接決定SMM單元的面積和完成模乘運算所需要的時間,e越大,SMM面積越大、模 乘運算的時間越小,且消耗的功耗越大,可以根據(jù)應用的不同性能需求、功耗要求以及實現(xiàn)成本需求等進行配置。
所述的存儲器控制器直接和寄存器文件等類型的內(nèi)部存儲單元相連接,對來自數(shù) 據(jù)控制器電路和模算術(shù)運算單元陣列的訪問存儲器的請求進行仲裁,以最大效率完成各種 類型的存儲器訪問操作。
所述的寄存器文件等類型的內(nèi)部存儲單元為該高性能可擴展公鑰密碼協(xié)處理器 結(jié)構(gòu)內(nèi)部的高速多端口存儲部件,具有最大8讀4寫共12個存儲器訪問端口。
所述的輸出緩沖器電路與存儲器控制器相連接,將從寄存器文件等類型的內(nèi)部存 儲單元中讀出的數(shù)據(jù)以穩(wěn)定有效的方式送到存儲器映射接口電路的對外數(shù)據(jù)總線上。
依據(jù)本發(fā)明方案設(shè)計的高性能可擴展公鑰密碼協(xié)處理器具有以下優(yōu)點
該高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)對外接口為存儲器映射接口,能夠使用目 前主流的內(nèi)部總線、存儲總線和外設(shè)總線接口(包括但不限定于AMBA、SRAM、PCI、SPI等), 能夠很容易與目前主流的外設(shè)接口以及存儲器接口相連,可以很方便的集成到各種應用系 統(tǒng)中,另外也可以將該高性能可擴展公鑰密碼協(xié)處理器作為集成電路知識產(chǎn)權(quán)IP核,使用 諸如(但不限定)AMBA系列等內(nèi)部總線接口將該高性能可擴展公鑰密碼協(xié)處理器IP核集 成到更加復雜的安全類型的芯片中。
該高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)支持的指令集是可擴展的,其基本指令集 涵蓋了目前絕大多數(shù)的主要公鑰密碼算法(包括1 4丄0丄16311^1、0丨€打6-徹1111^11和05八 等)的核心運算和操作。同時,根據(jù)實際需要,在基本指令集的基礎(chǔ)上可以對基于該結(jié)構(gòu)的 高性能公鑰密碼協(xié)處理器的指令集作進一步增加或刪減。
該高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)包括a個(a為不等于零的自然數(shù))雙域 可擴展Montgomery模乘單元SMM和b個(b為不等于零的自然數(shù))雙域可擴展模加減單 元SMA,a和b的個數(shù)可以根據(jù)設(shè)計實現(xiàn)的高性能公鑰密碼協(xié)處理器實際需要配置和擴展。 同時,SMM和SMA單元的結(jié)構(gòu)和操作數(shù)長度也可配置擴展,可以讓設(shè)計者根據(jù)實際應用的需 要,基于該結(jié)構(gòu)的可擴展特性,在性能、功耗、成本方面做出合理的權(quán)衡折中,在最短的時間 內(nèi)設(shè)計出滿足應用需求的高性能公鑰密碼協(xié)處理器芯片等類型的安全芯片產(chǎn)品。
針對具體的公鑰密碼算法,該高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)還可以對具體 算法本身的實現(xiàn)優(yōu)化提供有效支持。例如,對模冪運算,該高性能可擴展公鑰密碼協(xié)處理器 結(jié)構(gòu)的硬件直接支持中國剩余定理CRT和并行二進制算法;對ECC點加、點倍加和標量乘法 運算,可以通過硬件或軟硬件協(xié)同的方法調(diào)用a個雙域可擴展Montgomery模乘單元SMM和 b個雙域可擴展模加減單元SMA,將更多的運算并行化處理,充分開發(fā)算法實現(xiàn)內(nèi)在的并行 性,進一步提升算法實現(xiàn)的性能。
圖1是基于本發(fā)明的高性能可擴展公鑰密碼協(xié)處理器與其外部的控制部件或者 系統(tǒng)所構(gòu)成的基于公鑰密碼的安全系統(tǒng)的結(jié)構(gòu)示意圖。
圖2是本發(fā)明的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)示意圖。
具體實施方式
下面根據(jù)圖1、圖2給出本發(fā)明的一個較佳實施例,以便說明本發(fā)明的體系結(jié)構(gòu)特征和功能特點,但是這并不限定本發(fā)明的權(quán)利范圍。
參閱圖1所示的實施例,本發(fā)明應用于由外部的控制部件或者系統(tǒng)1(如微處理器 或者微控制器等)和基于本發(fā)明的高性能可擴展公鑰密碼協(xié)處理器2構(gòu)成的基于公鑰密碼 的安全系統(tǒng)中。
外部控制部件或系統(tǒng)1對高性能可擴展公鑰密碼協(xié)處理器2的控制機構(gòu)主要由兩 部分組成公鑰密碼協(xié)議控制構(gòu)件101和指令/數(shù)據(jù)讀寫控制驅(qū)動構(gòu)件102。公鑰密碼安 全協(xié)議中需要利用高性能可擴展公鑰密碼協(xié)處理器加速的運算和操作用基于該協(xié)處理器 指令集的指令序列實現(xiàn),并將這些指令序列通過代碼轉(zhuǎn)換形成該協(xié)處理器硬件可以識別執(zhí) 行的微指令代碼序列和相關(guān)操作數(shù)序列。
公鑰密碼協(xié)議控制構(gòu)件101實現(xiàn)基于公鑰密碼算法的安全協(xié)議,完成安全協(xié)議中 相關(guān)的任務和操作調(diào)度,將需要由高性能可擴展公鑰密碼協(xié)處理器完成的微代碼指令序列 和相關(guān)的操作數(shù)序列發(fā)送給指令/數(shù)據(jù)讀寫控制驅(qū)動構(gòu)件102。
指令/數(shù)據(jù)讀寫控制驅(qū)動構(gòu)件102將從公鑰密碼協(xié)議控制構(gòu)件101接收到的微代 碼指令序列和相關(guān)數(shù)據(jù)序列按照該高性能可擴展公鑰密碼協(xié)處理器的存儲器映射接口電 路時序要求微代碼指令序列和相關(guān)數(shù)據(jù)序列發(fā)送給該高性能可擴展公鑰密碼協(xié)處理器。高 性能可擴展公鑰密碼協(xié)處理器按照收到的微代碼指令序列和相關(guān)數(shù)據(jù)序列完成指定的操 作和計算,并將計算結(jié)果通過指令/數(shù)據(jù)讀寫控制驅(qū)動構(gòu)件102返送給公鑰密碼協(xié)議控制 構(gòu)件101。
本發(fā)明中存儲器映射接口電路所支持的指令/數(shù)據(jù)讀寫控制驅(qū)動構(gòu)件102接口數(shù) 據(jù)寬度可以配置為任意長度大小,具有可擴展的特點。
本發(fā)明的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)示意圖如圖2所示。本發(fā)明的高性 能可擴展公鑰密碼協(xié)處理器2包括基本指令集、存儲器映射接口電路201、輸入緩沖器電路 202、數(shù)據(jù)控制器電路203、配置寄存器204、基于有線狀態(tài)機的指令譯碼單元205、指令隊列 206、指令執(zhí)行控制器207、模算術(shù)運算單元陣列208、存儲器控制器209、寄存器文件等類型 的內(nèi)部存儲單元210和輸出緩沖器電路211共11部分,所述的基本指令集定義了公鑰密碼 算法的核心運算和操作相應的指令;存儲器映射接口電路201分別與外部控制部件或系統(tǒng) 1、輸入緩沖器電路202及輸出緩沖器電路211相連,輸入緩沖器電路202分別與數(shù)據(jù)控制 器電路203、配置寄存器204、指令隊列相連206相連,數(shù)據(jù)控制器電路203與存儲器控制器 209相連,配置寄存器204分別與指令執(zhí)行控制器207和模算術(shù)運算單元陣列208相連,基 于有線狀態(tài)機的指令譯碼單元205分別與指令隊列206、指令執(zhí)行控制器207相連,指令執(zhí) 行控制器207與模算術(shù)運算單元陣列208相連,模算術(shù)運算單元陣列208與存儲器控制器 209相連,存儲器控制器209分別與寄存器文件等類型的內(nèi)部存儲單元210和輸出緩沖器電 路211相連。
該結(jié)構(gòu)的存儲器映射接口電路201為該高性能可擴展公鑰密碼協(xié)處理器對外接 口電路,通過對該存儲器映射接口的讀寫正確接收外部控制部件或系統(tǒng)發(fā)送給高性能可擴 展公鑰密碼協(xié)處理器的數(shù)據(jù)、指令和地址,并發(fā)送給輸入緩沖器電路202 ;或?qū)⑤敵鼍彌_器 電路211中存儲的高性能可擴展公鑰密碼協(xié)處理器的計算結(jié)果和內(nèi)部工作狀態(tài)等數(shù)據(jù)發(fā) 送給高性能可擴展公鑰密碼協(xié)處理器外部的控制部件或系統(tǒng)。由于高性能可擴展公鑰密碼 協(xié)處理器內(nèi)部和外部工作頻率可能不同,存儲器映射接口電路201還負責對不同時鐘域的數(shù)據(jù)進行同步處理,避免電路進入亞穩(wěn)態(tài),或發(fā)生數(shù)據(jù)發(fā)送和接收的錯誤。
該結(jié)構(gòu)的輸入緩沖器電路202與存儲器映射接口電路201、數(shù)據(jù)控制器電路203、 配置寄存器204和指令隊列206相連接,負責對接收來自存儲器映射接口電路201的指令 進行第一級指令譯碼,以判斷接收到的是指令、還是一般數(shù)據(jù),抑或是配置寄存器數(shù)據(jù)。
該結(jié)構(gòu)的數(shù)據(jù)控制器電路203與存儲器控制器209相連接,產(chǎn)生讀寫控制邏輯,對 寄存器文件等類型的內(nèi)部存儲單元進行讀寫操作。
該結(jié)構(gòu)的配置寄存器204存儲對高性能可擴展公鑰密碼協(xié)處理器進行各種配置 的系統(tǒng)參數(shù),包括計算陣列參數(shù)、接口配置參數(shù)等,并與指令執(zhí)行控制器207、模算術(shù)運算單 元陣列208相連接,為指令執(zhí)行控制器207、模算術(shù)運算單元陣列208提供所需的計算陣列 參數(shù)、接口配置參數(shù),配置寄存器204與寄存器文件等類型的內(nèi)部存儲單元210統(tǒng)一編址。
該結(jié)構(gòu)的基于有線狀態(tài)機的指令譯碼單元205與指令執(zhí)行控制器207相連接,對 第一級譯碼后的指令進行第二級譯碼,基于有限狀態(tài)機模型對多指令執(zhí)行進行有效控制。
該結(jié)構(gòu)的指令隊列206為流水指令寄存器結(jié)構(gòu),可以存儲多條流水執(zhí)行指令。一 旦基于有線狀態(tài)機的指令譯碼單元205空閑時,就從指令隊列206中取出指令,送入基于有 線狀態(tài)機的指令譯碼單元205,并將指令寄存器清空,以接收新指令。
該結(jié)構(gòu)的指令執(zhí)行控制器207與模算術(shù)運算單元陣列208相連接,其內(nèi)部包括一 個或多個不同類型的指令執(zhí)行控制機構(gòu)。指令執(zhí)行控制機構(gòu)為指令執(zhí)行分配運算單元,并 對多個運算單元進行有效的調(diào)度,以降低指令的執(zhí)行時間。其中指令執(zhí)行控制機構(gòu)的個數(shù) η依賴于對高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)的指令集的具體實現(xiàn)。
該結(jié)構(gòu)的模算術(shù)運算單元陣列208包括a個雙域可擴展Montgomery模乘單元SMM 和b個雙域可擴展模加減單元SMA, a、b為不等于零的自然數(shù),與存儲器控制器209相連接, 是高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)中的核心計算的部件。SMM和SMA的計算字長w可以 根據(jù)需要進行配置典型值為8 128,w越大,電路的面積越大,完成計算所需要的周期 數(shù)越小,因此可以根據(jù)實際電路要求的面積和速度選擇合適的w值并且SMM為多運算單元 流水結(jié)構(gòu),其中運算單元個數(shù)e的典型值為2 20,SMM中運算單元的個數(shù)e直接決定SMM 單元的面積和完成模乘運算所需要的時間,e越大,SMM面積越大、模乘運算的時間越小,且 消耗的功耗越大,可以根據(jù)不同的性能需求進行配置。
該結(jié)構(gòu)的存儲器控制器209直接和寄存器文件等類型的內(nèi)部存儲單元210相連 接,對來自數(shù)據(jù)控制器電路203和模算術(shù)運算單元陣列208的訪問存儲器的請求進行仲裁, 對寄存器文件等類型的內(nèi)部存儲單元210進行高效的存儲訪問讀寫操作。
該結(jié)構(gòu)的寄存器文件等類型的內(nèi)部存儲單元210為高性能可擴展公鑰密碼協(xié)處 理器結(jié)構(gòu)內(nèi)部的高速訪問存儲部件,一般具有最大8讀4寫共12個存儲器訪問端口。
該結(jié)構(gòu)的輸出緩沖器電路211與存儲器控制器209相連接,將寄存器文件等類型 的內(nèi)部存儲單元中讀出的數(shù)據(jù)以穩(wěn)定有效的方式送到存儲器映射接口電路201的對外數(shù) 據(jù)總線上。
本發(fā)明的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)2的指令系統(tǒng)設(shè)計
本發(fā)明的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)2的指令系統(tǒng)設(shè)計采用精簡指令 集結(jié)構(gòu)(RISC)的設(shè)計方法。高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu)2設(shè)置了 13條基本指令, 如表1所列,每條指令長度一般編碼為64位,其中操作碼opcode占用4位,其余用于地址7/9頁和標志位的描述。表2給出了本發(fā)明的基本指令集中的基本指令名稱、指令編碼和指令功 能描述的一個實例。
表1高性能可擴展公鑰密碼協(xié)處理器的13條基本指令
權(quán)利要求
1.一種高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),包含一個基本指令集、存儲器映射接口 電路、輸入緩沖器電路、數(shù)據(jù)控制器電路、配置寄存器、基于有線狀態(tài)機的指令譯碼單元、指 令隊列、指令執(zhí)行控制器、模算術(shù)運算單元陣列、存儲器控制器、寄存器文件等類型的內(nèi)部 存儲單元和輸出緩沖器電路,其特征在于所述的基本指令集定義了公鑰密碼算法的核心 運算和操作相應的指令;存儲器映射接口電路分別與外部控制部件或系統(tǒng)、輸入緩沖器電 路及輸出緩沖器電路相連,輸入緩沖器電路分別與數(shù)據(jù)控制器電路、配置寄存器、指令隊列 相連,數(shù)據(jù)控制器電路與存儲器控制器相連,配置寄存器分別與指令執(zhí)行控制器和模算術(shù) 運算單元陣列相連,基于有線狀態(tài)機的指令譯碼單元分別與指令隊列、指令執(zhí)行控制器相 連,指令執(zhí)行控制器與模算術(shù)運算單元陣列相連,模算術(shù)運算單元陣列與存儲器控制器相 連,存儲器控制器分別與寄存器文件等類型的內(nèi)部存儲單元和輸出緩沖器電路相連,且所 述的寄存器文件等類型的內(nèi)部存儲單元、基本指令集中的指令、配置寄存器是統(tǒng)一編址的。
2.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 存儲器映射接口電路為高性能可擴展公鑰密碼協(xié)處理器對外接口電路,通過對所述存儲器 映射接口的讀寫正確接收外部控制部件或系統(tǒng)發(fā)送給高性能可擴展公鑰密碼協(xié)處理器的 數(shù)據(jù)、指令和地址,并發(fā)送給輸入緩沖器電路;或?qū)⑤敵鼍彌_器電路中存儲的計算結(jié)果和內(nèi) 部工作狀態(tài)的相應數(shù)據(jù)發(fā)送給高性能可擴展公鑰密碼協(xié)處理器外部的控制部件或系統(tǒng);存 儲器映射接口電路負責對不同時鐘域的數(shù)據(jù)進行同步處理。
3.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 輸入緩沖器電路負責對接收來自存儲器映射接口電路的指令進行第一級指令譯碼,通過對 輸入地址的比較以判斷接收到的是指令是一般數(shù)據(jù)或是需要寫入的配置寄存器數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 配置寄存器存儲對高性能可擴展公鑰密碼協(xié)處理器進行各種配置的系統(tǒng)參數(shù),系統(tǒng)參數(shù)包 括計算陣列參數(shù)、接口配置參數(shù),并為指令執(zhí)行控制器提供所需的接口配置參數(shù),為模算術(shù) 運算單元陣列提供所需的計算陣列參數(shù)。
5.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 基于有線狀態(tài)機的指令譯碼單元對第一級譯碼后的指令進行第二級譯碼,基于有限狀態(tài)機 模型對多周期串行執(zhí)行指令進行譯碼,并對指令執(zhí)行進行有效控制。
6.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 指令隊列為流水指令寄存器結(jié)構(gòu),存儲多條流水執(zhí)行指令,一旦基于有線狀態(tài)機的指令譯 碼單元空閑時就從指令隊列中取指令,并將指令寄存器清空,以接收新的后續(xù)指令。
7.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 指令執(zhí)行控制器為指令執(zhí)行分配相應的模運算單元,并對多個模運算單元進行有效的調(diào) 度,使指令執(zhí)行時間最短。
8.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 模算術(shù)運算單元陣列包括a個雙域可擴展Montgomery模乘單元SMM和b個雙域可擴展模 加減單元SMA,SMM和SMA的計算字長w根據(jù)應用需要進行配置典型值為8 128,w越 大,電路的面積越大,完成計算所需要的周期數(shù)越小,因此可以根據(jù)實際電路要求的面積和 速度選擇合適的w值,并且SMM為多運算單元流水結(jié)構(gòu),其中運算單元個數(shù)e的典型值為 2 20,SMM中運算單元的個數(shù)e直接決定SMM單元的面積和完成模乘運算所需要的時間,e越大,SMM面積越大、模乘運算的時間越小,且消耗的功耗越大,可以根據(jù)應用的不同性能 需求、功耗要求以及實現(xiàn)成本需求等進行配置,a、b分別為不等于零的自然數(shù)。
9.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 存儲器控制器對來自數(shù)據(jù)控制器電路和模算術(shù)運算單元陣列的訪問存儲器的請求進行仲 裁;所述的寄存器文件等類型的內(nèi)部存儲單元最多具有8讀4寫共12個存儲器訪問端口。
10.根據(jù)權(quán)利要求1所述的高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),其特征在于所述的 輸出緩沖器電路與存儲器控制器相連接,將從寄存器文件等類型的內(nèi)部存儲單元中讀出的 數(shù)據(jù)以穩(wěn)定有效的方式送到存儲器映射接口電路的對外數(shù)據(jù)總線上。
全文摘要
本發(fā)明涉及一種高性能可擴展公鑰密碼協(xié)處理器結(jié)構(gòu),包含一個基本指令集,結(jié)構(gòu)連接為存儲器映射接口電路分別與外部控制部件或系統(tǒng)、輸入緩沖器電路及輸出緩沖器電路相連,輸入緩沖器電路分別與數(shù)據(jù)控制器電路、配置寄存器、指令隊列相連,數(shù)據(jù)控制器電路與存儲器控制器相連,配置寄存器分別與指令執(zhí)行控制器和模算術(shù)運算單元陣列相連,基于有線狀態(tài)機的指令譯碼單元分別與指令隊列、指令執(zhí)行控制器相連,指令執(zhí)行控制器與模算術(shù)運算單元陣列相連,模算術(shù)運算單元陣列與存儲器控制器相連,存儲器控制器分別與寄存器文件等類型的內(nèi)部存儲單元和輸出緩沖器電路相連。本發(fā)明根據(jù)具體需要進行配置,以較低功耗和較高性價比實現(xiàn)滿足特定應用的需要。
文檔編號G06F21/00GK102043916SQ20101056782
公開日2011年5月4日 申請日期2010年12月1日 優(yōu)先權(quán)日2010年12月1日
發(fā)明者馮攀, 吳丹, 戴葵, 董冕, 薛涵, 鄒雪城, 陳攀, 陳鵬飛, 饒金理, 黎明 申請人:戴葵