專利名稱:一種適用于soc芯片的rsa協處理器設計方法
技術領域:
本發(fā)明提出了一種RSA協處理器的設計方法,該設計方法適用于S0C級大規(guī)模集成電路, 以優(yōu)化的方式,為SOC芯片提供規(guī)模小、功耗低、性能高的RSA模塊。
背景技術:
當今的電信、身份識別、電子支付等領域,都對保密技術提出了很高要求,通常需要使 用加密、解密算法來對數據進行處理。常見的加解密算法有DES, 3DES, AES, RSA等,具體 的解決辦法是,在嵌入式芯片里以硬件、軟件或軟硬件結合的方式來實現這些算法。純軟件的RSA算法實現在性能上稍差,為了提高RSA的運算速度,在SOC芯片里通常需要 設計專門的硬件加速邏輯,以純硬件或軟硬件結合的方式來縮短運算時間。純硬件或者軟硬結合的RSA實現方法具備較高的性能,但是在實際的應用場合下,通常 要求用于實現RSA算法的電路規(guī)模不能太大,功耗也有一定要求。發(fā)明內容針對上述問題本發(fā)明提出的RSA協處理器設計方法,很好地解決了性能、規(guī)模、功耗這 三個問題,同時,本設計方法還可以大大提高芯片內系統資源的利用率。在RSA運算之前,通常需要CPU傳遞參數給RSA協處理器,然后通過RSA控制寄存器來 啟動協處理器進行運算。運算結束時,RSA協處理器將運算結果存入其內部的RAM模塊(簡 稱RSA—RAM),并通過狀態(tài)寄存器通知CPU。 CPU收到通知以后,應訪問RSA一RAM,將運算結果 讀出。由此可見,RSA加速算法的效率取決于以下4項1. CPU向RSA協處理器傳遞參數的速度;2. CPU啟動RSA加速運算的速度;3. RSA協處理器的運算速度;4. CPU從RSA協處理器讀取運算結果的速度。 本發(fā)明旨在提高以上l、 2、 4這三項的速度,以下是具體說明-1. 為了使CPU能夠以較高的效率訪問RSA一RAM,本設計方法中把RSA—R細模塊映射到CPU 的數據存儲器空間。2. 通過將RSA一RAM模塊與CPU的其它數據RAM統一編址,CTO可使用壓棧、數據搬移等
指令將RSA協處理器需要的參數以很高的效率存入RSA—RAM,或者可以使用算術及邏輯運算 指令,直接將運算結果存入RSA—RAM,作為RSA協處理器的參數。3. 通過將RSA協處理器控制及狀態(tài)寄存器映射到CPU的10空間,CPU可以使用訪問10 的指令來控制RSA協處理器的啟動、停止及運算類型選擇等。并且,CPU可以使用訪問IO的 指令來查詢RSA協處理器的運算狀態(tài),或者RSA協處理器可通過中斷方式通知CPU并報告自 身工作狀態(tài)。對于控制寄存器,CPU具有讀寫權限,可以通過改寫控制寄存器的內容,達到操縱、設 置RSA算法加速邏輯模塊的目的。RSA算法加速邏輯模塊對控制寄存器只有讀權限,應根據 控制寄存器的內容進行相應的運算或動作。對于狀態(tài)寄存器,RSA算法加速邏輯模塊對狀態(tài)寄存器有讀寫權限。RSA算法加速邏輯 模塊應根據自身工作情況,以狀態(tài)標志位的形式反映到狀態(tài)寄存器中。CPU對狀態(tài)寄存器有 讀寫權限,可以讀取狀態(tài)標志位以判斷RSA算法加速邏輯模塊的實際工作狀態(tài),并且可以對 狀態(tài)標志位進行清除。4. 通過將RSA—RAM模塊與CPU的其它數據RAM統一編址,CPU可使用彈棧、數據搬移等 指令將RSA協處理器需要的參數以很高的效率從RSA—RAM中取出;并且可以使用算術及邏輯 運算指令,直接將RSA協處理器的運算結果作為操作數進行使用。5. RSA一RAM的類型是靜態(tài)RAM,既可以是同步RAM,也可以是異步RAM;既可以是單口 RAM,也可以是雙口 RAM或多口 RAM。為了解決跨時鐘域問題可能帶來的時序問題,可以將RAM 設計成異步RAM,地址及數據輸入總線和其它控制信號用多路選擇器進行切換,數據輸出分 別用兩個不同時鐘域的觸發(fā)器進行鎖存后分別送往CPU和RSA算法加速邏輯模塊。采用本發(fā)明還可以大大提高芯片內系統資源的利用率。當把集成了該RSA協處理器的芯 片用于實際上不需要RSA模塊的應用場合時,RSA協處理器應當處于閑置狀態(tài),不參與實際 工作,此時CPU可將RSA—RAM當作普通的數據RAM來使用。由于可用的R細資源增多,CPU 可以執(zhí)行更多的任務、處理更多的數據。
圖中描述了涉及RSA算法協處理器IP核結構示意圖,其中"RSA控制及狀態(tài)寄存器"是一組由觸發(fā)器組成的寄存器,主要包括控制寄存器和狀態(tài)寄 存器兩種。RSA—RAM是RSA協處理器內包含的RAM模塊。RSA算法加速邏輯模塊由一系列組合邏輯和時序邏輯組成,完成模逆、模冪、模乘、平方
等算術運算。該模塊從RSA一RAM模塊中讀取參數,并在運算完成時,將運算結果存入RSA一RAM 模塊。圖中的CPU模塊僅供示意,不屬于RSA協處理器。
具體實施方式
本發(fā)明實施的關鍵在于,RSA一RAM的設計和布置,以下是本設計方法的一種具體實施方案1. CPU向RSA協處理器傳遞參數、RSA運算、CPU從RSA協處理器中讀取運算結果這三個 過程在時間上是順序進行的,不會有某兩種操作同時發(fā)生,因此將RSA—RAM設計成單 口 RAM,可以大大節(jié)省RSA一RAM模塊的規(guī)模及功耗。2. 在本設計方法中,RSA—RAM需要與CPU的數據空間內其它R細模塊進行統一編址。因 此可以在系統中設計一個觀U模塊,CPU通過MMU (存儲器管理單元)來對RSA一R細 及其它各個RAM模塊進行統一管理。通過設置MMU,可以將RSA—RAM映射到適當的地 址空間,或禁止CPU訪問RSA一RAM。3. 當需要啟動RSA加速運算時,CPU可設置醒U,放棄對RSA—RAM的實際控制權。4. RSAJUM的訪問權限必須可配置。當CPU需要訪問RSA_RAM時,或者需要將RSA—RAM用 作普通數據RAM時,可以通過設置RSA控制寄存器,禁止RSA算術加速邏輯模塊訪問 RSA—RAM。5. RSA算法加速邏輯模塊的時鐘頻率有可能需要比CPU高,因此RSA一RAM模塊會存在跨 時鐘域的現象,需要仔細設計其接口。本發(fā)明的一種實現方案是,將RSA一R細設計成 異步RAM,地址及數據輸入總線和其它控制信號用多路選擇器進行切換(在來自CPU 的信號、來自RSA算術加速邏輯模塊的信號二者之間),數據輸出分別用兩個不同時 鐘域的觸發(fā)器進行鎖存后分別送往CPU和RSA算法加速邏輯模塊。
權利要求
1.一種適用于SOC芯片的RSA協處理器設計方法,所涉及的RSA協處理器由模塊內部包含的RAM模塊、RSA控制及狀態(tài)寄存器模塊、RSA算法加速邏輯模塊三部分組成,其特征在于將RAM模塊映射到CPU的數據存儲空間,與CPU的其它數據RAM統一編址。
2. 如權利要求1所述的RSA協處理器設計方法,其特征在于CPU可使用壓棧/彈棧、數 據搬移指令、算術和邏輯等指令對RAM模塊進行訪問。
3. 如權利要求1所述的RSA協處理器設計方法,其特征在于RSA模塊的控制及狀態(tài)寄存 器映射到CPU的10區(qū)。
4. 如權利要求1所述的RSA協處理器設計方法,其特征在于CPU可以通過設置RSA模塊 的狀態(tài)寄存器,讓出對RAM的控制權,由RSA算法加速邏輯模塊以獨占方式使用R扁模塊; CPU也可通過設置RSA模塊的狀態(tài)寄存器,收回對RAM的控制權,把RAM模塊作為普通的數 據RAM來使用。
5. 如權利要求1所述的RSA協處理器設計方法,其特征在于RAM具備以下跨時鐘域的解 決方案將RSA內部包含的RAM設計成異歩RAM,地址及數據輸入總線和其它控制信號用多 路選擇器進行切換,數據輸出分別用兩個不同時鐘域的觸發(fā)器進行鎖存后分別送往CRJ和RSA 算法加速邏輯模塊。
全文摘要
本發(fā)明是一種適用于SOC級大規(guī)模集成電路的RSA協處理器的設計方法,在該設計方法中,RSA協處理器所使用的RAM模塊可與CPU的數據存儲器統一編址、RSA協處理器所使用的RAM模塊可被CPU用作普通數據存儲器、協處理器內包含的控制及狀態(tài)寄存器與CPU的IO空間統一編址。該設計方法中,通過合理配置三個模塊的結構,使得最終完成的RSA協處理器設計具有資源可復用、面積小、功耗低等特點。
文檔編號H04L9/06GK101150393SQ20061011326
公開日2008年3月26日 申請日期2006年9月21日 優(yōu)先權日2006年9月21日
發(fā)明者張牧童, 磊 湯 申請人:北京中電華大電子設計有限責任公司