專利名稱:使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器及數(shù)據(jù)流處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路信息處理技術(shù)領(lǐng)域,尤其涉及一種使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器及數(shù)據(jù)流處理方法。
背景技術(shù):
隨著信息安全日趨重要,密碼學(xué)算法和安全方案也在蓬勃發(fā)展。專用于密碼學(xué)運(yùn)算的協(xié)處理器可以提供硬件加速和安全性,在嵌入式系統(tǒng)中被廣泛應(yīng)用。在實(shí)際應(yīng)用中,常出現(xiàn)以下三種情況
1、單數(shù)據(jù)流、級(jí)連處理。一個(gè)輸入數(shù)據(jù)流被一個(gè)操作處理后,其結(jié)果馬上作為另一個(gè)操作的輸入,依次類推。比如,對(duì)一個(gè)DES加密的數(shù)據(jù)流解密后再用AES加密。2、單數(shù)據(jù)流、并行處理。一個(gè)輸入數(shù)據(jù)流同時(shí)被兩個(gè)以上的操作處理。比如,對(duì)一個(gè)AES加密的數(shù)據(jù)解密的同時(shí)計(jì)算該數(shù)據(jù)流的MD5信息摘要。3、多數(shù)據(jù)流、多種處理。存在許多短數(shù)據(jù)流被不同操作處理的情形。比如微軟DRM 中就存在連續(xù)的短數(shù)據(jù)流的處理,或者同一個(gè)數(shù)據(jù)流會(huì)有階段性不同的處理方式。對(duì)于第1和第2種情況,通過軟件調(diào)度可以實(shí)現(xiàn)功能并減少系統(tǒng)帶寬和功耗,對(duì)于第3種情況,軟件調(diào)度同樣能實(shí)現(xiàn)其功能。雖然如此,軟件調(diào)度在不同任務(wù)的上下文切換時(shí)的開銷降低了數(shù)據(jù)處理吞吐量,尤其在多數(shù)據(jù)流、多種處理的情況。有鑒于此,有必要提供一種使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器及數(shù)據(jù)流處理方法以解決上述問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器及數(shù)據(jù)流處理方法。本發(fā)明的一種使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器,所述協(xié)處理器包括 上下文存儲(chǔ)器,所述協(xié)處理器包括兩個(gè)完全等價(jià)的上下文存儲(chǔ)器;
密碼學(xué)算法處理單元,用于執(zhí)行密碼學(xué)算法; 本地存儲(chǔ)器,用于緩存輸入、輸出數(shù)據(jù)和中間結(jié)果。作為本發(fā)明的進(jìn)一步改進(jìn),所述兩個(gè)上下文存儲(chǔ)器由兩個(gè)不同的ID標(biāo)記。作為本發(fā)明的進(jìn)一步改進(jìn),所述協(xié)處理器還包括ID選擇單元,用于當(dāng)前上下文ID 選擇密碼學(xué)算法處理單元要使用的上下文。4、一種根據(jù)權(quán)利要求1所述的使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法,其特征在于,所述方法包括以下步驟
511、讀入兩個(gè)任務(wù)的初始上下文,并使能第一個(gè)任務(wù)的上下文;
512、讀入一定數(shù)據(jù)到輸入緩存中;
513、第一個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并將處理結(jié)果存入中間緩存;514、切換當(dāng)前ID使能第二個(gè)任務(wù)的上下文;
515、判斷數(shù)據(jù)流是否結(jié)束,若是,執(zhí)行步驟S16,若否,執(zhí)行步驟S17;
516、讀入中間緩存數(shù)據(jù),執(zhí)行第二個(gè)任務(wù),輸出最終結(jié)果;
517、讀入中間緩存數(shù)據(jù),執(zhí)行第二個(gè)任務(wù),輸出最終結(jié)果,同時(shí),讀取一定的新數(shù)據(jù)到輸入緩存中,然后切換當(dāng)前ID使能第一個(gè)任務(wù)的上下文后繼續(xù)執(zhí)行步驟S13。作為本發(fā)明的進(jìn)一步改進(jìn),所述數(shù)據(jù)流處理為單數(shù)據(jù)流、級(jí)連處理。相應(yīng)地,一種使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法,所述方法包括以下步驟
521、讀入兩個(gè)任務(wù)的初始上下文,并使能第一個(gè)任務(wù)的上下文;
522、讀入一定數(shù)據(jù)到輸入緩存中;
523、第一個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果。;
524、切換當(dāng)前ID使能第二個(gè)任務(wù)的上下文;
525、判斷數(shù)據(jù)流是否結(jié)束,若是,執(zhí)行步驟S26,若否,執(zhí)行步驟S27;
526、第二個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果;
527、第二個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果,同時(shí),讀取一定新數(shù)據(jù)到輸入緩存中,然后切換當(dāng)前ID使能第一個(gè)任務(wù)的上下文后繼續(xù)執(zhí)行步驟S23。作為本發(fā)明的進(jìn)一步改進(jìn),所述數(shù)據(jù)流處理為單數(shù)據(jù)流、并行處理。相應(yīng)地,一種使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法,所述方法包括以下步驟
531、讀入第一個(gè)任務(wù)的初始上下文到當(dāng)前使能上下文中;
532、判斷所有任務(wù)是否結(jié)束,若是,執(zhí)行步驟S33,若否執(zhí)行步驟S34;
533、執(zhí)行當(dāng)前上下文所示任務(wù)并輸出結(jié)果直到任務(wù)結(jié)束;
534、執(zhí)行當(dāng)前上下文所示任務(wù)并輸出結(jié)果直到任務(wù)結(jié)束,同時(shí),讀入下一個(gè)任務(wù)的上下文到未被使用的上下文中,然后切換當(dāng)前ID以切換上下文后執(zhí)行步驟S32。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S34中“讀入下一個(gè)任務(wù)的上下文到未被使用的上下文中”前還包括輸出未被使用的上下文。作為本發(fā)明的進(jìn)一步改進(jìn),所述數(shù)據(jù)流處理為多數(shù)據(jù)流、多種處理。本發(fā)明的有益效果是本發(fā)明在硬件內(nèi)部存儲(chǔ)兩套上下文,兩套上下文可以快速切換,因此可以快速的在兩個(gè)任務(wù)之間切換;同時(shí)本發(fā)明支持對(duì)指定其中任一個(gè)上下文的存取,并且對(duì)該上下文的存取和對(duì)另一個(gè)上下文的使用可以同時(shí)發(fā)生,因此可以支持任意多的任務(wù)并消滅了上下文存取的時(shí)間開銷,解決了軟件進(jìn)行多任務(wù)調(diào)度時(shí)的性能損失。
圖1為本發(fā)明一實(shí)施方式中使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器的結(jié)構(gòu)示意圖。圖2為本發(fā)明一實(shí)施方式中使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法流程圖。圖3為本發(fā)明另一實(shí)施方式中使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法流程圖。
圖4為本發(fā)明再一實(shí)施方式中使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法流程圖。
具體實(shí)施例方式以下將結(jié)合附圖所示的各實(shí)施方式對(duì)本發(fā)明進(jìn)行詳細(xì)描述。但這些實(shí)施方式并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實(shí)施方式所做出的結(jié)構(gòu)、方法、或功能上的變換均包含在本發(fā)明的保護(hù)范圍內(nèi)。參圖1所示為本發(fā)明一實(shí)施方式中使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器100 的結(jié)構(gòu)示意圖,其包括
上下文存儲(chǔ)器10、11,用于上下文的存取,兩個(gè)上下文都可以被存入到外部存儲(chǔ)器、或者從外部存儲(chǔ)器讀入。上下文存儲(chǔ)器10和上下文存儲(chǔ)器11為兩個(gè)完全等價(jià)的上下文存儲(chǔ)器。用兩個(gè)上下文存儲(chǔ)器僅為本發(fā)明一優(yōu)選的實(shí)施方式,在其他實(shí)施方式中也可以設(shè)為兩個(gè)以上的上下文存儲(chǔ)器,同樣可以達(dá)到本發(fā)明的效果; 密碼學(xué)算法處理單元20,用于執(zhí)行密碼學(xué)算法; 本地存儲(chǔ)器30,用于緩存輸入、輸出數(shù)據(jù)和中間結(jié)果。進(jìn)一步地,該存儲(chǔ)器100還包括
ID選擇單元40,用于當(dāng)前上下文ID選擇密碼學(xué)算法處理單元30要使用的上下文。所述上下文存儲(chǔ)器10和上下文存儲(chǔ)器11由兩個(gè)不同的ID標(biāo)記,ID選擇單元40可以根據(jù)當(dāng)前上下文ID選擇密碼學(xué)算法處理單元30要使用的上下文。參圖2所示,應(yīng)用上述協(xié)處理器處理單數(shù)據(jù)流、級(jí)連處理的情況中,以兩個(gè)任務(wù)為例,該數(shù)據(jù)流處理方法包括以下步驟
511、讀入兩個(gè)任務(wù)的初始上下文,并使能第一個(gè)任務(wù)的上下文;
512、讀入一定數(shù)據(jù)到輸入緩存中;
513、第一個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并將處理結(jié)果存入中間緩存;
514、切換當(dāng)前ID使能第二個(gè)任務(wù)的上下文;
515、判斷數(shù)據(jù)流是否結(jié)束,若是,執(zhí)行步驟S16,若否,執(zhí)行步驟S17;
516、讀入中間緩存數(shù)據(jù),執(zhí)行第二個(gè)任務(wù),輸出最終結(jié)果;
517、讀入中間緩存數(shù)據(jù),執(zhí)行第二個(gè)任務(wù),輸出最終結(jié)果,同時(shí),讀取一定的新數(shù)據(jù)到輸入緩存中,然后切換當(dāng)前ID使能第一個(gè)任務(wù)的上下文后繼續(xù)執(zhí)行步驟S13。參圖3所示,應(yīng)用上述協(xié)處理器處理單數(shù)據(jù)流、并行處理的情況中,以兩個(gè)任務(wù)為例,該數(shù)據(jù)流處理方法包括以下步驟
521、讀入兩個(gè)任務(wù)的初始上下文,并使能第一個(gè)任務(wù)的上下文;
522、讀入一定數(shù)據(jù)到輸入緩存中;
523、第一個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果。;
524、切換當(dāng)前ID使能第二個(gè)任務(wù)的上下文;
525、判斷數(shù)據(jù)流是否結(jié)束,若是,執(zhí)行步驟S26,若否,執(zhí)行步驟S27;
526、第二個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果;
527、第二個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果,同時(shí),讀取一定新數(shù)據(jù)到輸入緩存中,然后切換當(dāng)前ID使能第一個(gè)任務(wù)的上下文后繼續(xù)執(zhí)行步驟S23。
參圖4所示,應(yīng)用上述協(xié)處理器處理單數(shù)據(jù)流、級(jí)連處理的情況中,以兩個(gè)任務(wù)為例,該數(shù)據(jù)流處理方法包括以下步驟
531、讀入第一個(gè)任務(wù)的初始上下文到當(dāng)前使能上下文中;
532、判斷所有任務(wù)是否結(jié)束,若是,執(zhí)行步驟S33,若否執(zhí)行步驟S34;
533、執(zhí)行當(dāng)前上下文所示任務(wù)并輸出結(jié)果直到任務(wù)結(jié)束;
534、執(zhí)行當(dāng)前上下文所示任務(wù)并輸出結(jié)果直到任務(wù)結(jié)束,同時(shí),讀入下一個(gè)任務(wù)的上下文到未被使用的上下文中,然后切換當(dāng)前ID以切換上下文后執(zhí)行步驟S32。其中,在“讀入下一個(gè)任務(wù)的上下文到未被使用的上下文中”前還可包括輸出未被使用的上下文。與現(xiàn)有技術(shù)相比,本發(fā)明在硬件內(nèi)部存儲(chǔ)兩套上下文,兩套上下文可以快速切換, 因此可以快速的在兩個(gè)任務(wù)之間切換;同時(shí)本發(fā)明支持對(duì)指定其中任一個(gè)上下文的存取, 并且對(duì)該上下文的存取和對(duì)另一個(gè)上下文的使用可以同時(shí)發(fā)生,因此可以支持任意多的任務(wù)并消滅了上下文存取的時(shí)間開銷,解決了軟件進(jìn)行多任務(wù)調(diào)度時(shí)的性能損失。為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備 (可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施方式或者實(shí)施方式的某些部分所述的方法。以上所描述的裝置實(shí)施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施方式方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。應(yīng)當(dāng)理解,雖然本說明書按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(gè)整體,各實(shí)施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。上文所列出的一系列的詳細(xì)說明僅僅是針對(duì)本發(fā)明的可行性實(shí)施方式的具體說明,它們并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實(shí)施方式或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器,其特征在于,所述協(xié)處理器包括上下文存儲(chǔ)器,所述協(xié)處理器包括兩個(gè)完全等價(jià)的上下文存儲(chǔ)器;密碼學(xué)算法處理單元,用于執(zhí)行密碼學(xué)算法;本地存儲(chǔ)器,用于緩存輸入、輸出數(shù)據(jù)和中間結(jié)果。
2.根據(jù)權(quán)利要求1所述的協(xié)處理器,其特征在于,所述兩個(gè)上下文存儲(chǔ)器由兩個(gè)不同的ID標(biāo)記。
3.根據(jù)權(quán)利要求2所述的協(xié)處理器,其特征在于,所述協(xié)處理器還包括ID選擇單元,用于當(dāng)前上下文ID選擇密碼學(xué)算法處理單元要使用的上下文。
4.一種根據(jù)權(quán)利要求1所述的使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法,其特征在于,所述方法包括以下步驟511、讀入兩個(gè)任務(wù)的初始上下文,并使能第一個(gè)任務(wù)的上下文;512、讀入一定數(shù)據(jù)到輸入緩存中;513、第一個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并將處理結(jié)果存入中間緩存;514、切換當(dāng)前ID使能第二個(gè)任務(wù)的上下文;515、判斷數(shù)據(jù)流是否結(jié)束,若是,執(zhí)行步驟S16,若否,執(zhí)行步驟S17;516、讀入中間緩存數(shù)據(jù),執(zhí)行第二個(gè)任務(wù),輸出最終結(jié)果;517、讀入中間緩存數(shù)據(jù),執(zhí)行第二個(gè)任務(wù),輸出最終結(jié)果,同時(shí),讀取一定的新數(shù)據(jù)到輸入緩存中,然后切換當(dāng)前ID使能第一個(gè)任務(wù)的上下文后繼續(xù)執(zhí)行步驟S13。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述數(shù)據(jù)流處理為單數(shù)據(jù)流、級(jí)連處理。
6.一種根據(jù)權(quán)利要求1所述的使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法,其特征在于,所述方法包括以下步驟521、讀入兩個(gè)任務(wù)的初始上下文,并使能第一個(gè)任務(wù)的上下文;522、讀入一定數(shù)據(jù)到輸入緩存中;523、第一個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果;524、切換當(dāng)前ID使能第二個(gè)任務(wù)的上下文;525、判斷數(shù)據(jù)流是否結(jié)束,若是,執(zhí)行步驟S26,若否,執(zhí)行步驟S27;526、第二個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果;527、第二個(gè)任務(wù)處理輸入緩存中的數(shù)據(jù),并輸出最終結(jié)果,同時(shí),讀取一定新數(shù)據(jù)到輸入緩存中,然后切換當(dāng)前ID使能第一個(gè)任務(wù)的上下文后繼續(xù)執(zhí)行步驟S23。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)流處理為單數(shù)據(jù)流、并行處理。
8.一種根據(jù)權(quán)利要求1所述的使用雙上下文存儲(chǔ)的密碼學(xué)算法的數(shù)據(jù)流處理方法,其特征在于,所述方法包括以下步驟531、讀入第一個(gè)任務(wù)的初始上下文到當(dāng)前使能上下文中;532、判斷所有任務(wù)是否結(jié)束,若是,執(zhí)行步驟S33,若否執(zhí)行步驟S34;533、執(zhí)行當(dāng)前上下文所示任務(wù)并輸出結(jié)果直到任務(wù)結(jié)束;534、執(zhí)行當(dāng)前上下文所示任務(wù)并輸出結(jié)果直到任務(wù)結(jié)束,同時(shí),讀入下一個(gè)任務(wù)的上下文到未被使用的上下文中,然后切換當(dāng)前ID以切換上下文后執(zhí)行步驟S32。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述步驟S34中“讀入下一個(gè)任務(wù)的上下文到未被使用的上下文中”前還包括輸出未被使用的上下文。
10.根據(jù)權(quán)利要求8或9所述的方法,其特征在于,所述數(shù)據(jù)流處理為多數(shù)據(jù)流、多種處理。
全文摘要
本發(fā)明提供了一種使用雙上下文存儲(chǔ)的密碼學(xué)算法協(xié)處理器及數(shù)據(jù)流處理方法,其包括上下文存儲(chǔ)器,所述協(xié)處理器包括兩個(gè)完全等價(jià)的上下文存儲(chǔ)器;密碼學(xué)算法處理單元,用于執(zhí)行密碼學(xué)算法;本地存儲(chǔ)器,用于緩存輸入、輸出數(shù)據(jù)和中間結(jié)果。本發(fā)明中兩套上下文可以快速切換,因此可以快速的在兩個(gè)任務(wù)之間切換;同時(shí)可以支持任意多的任務(wù)并消滅了上下文存取的時(shí)間開銷,解決了軟件進(jìn)行多任務(wù)調(diào)度時(shí)的性能損失。
文檔編號(hào)G06F9/48GK102521037SQ201110398170
公開日2012年6月27日 申請(qǐng)日期2011年12月5日 優(yōu)先權(quán)日2011年12月5日
發(fā)明者余紅斌, 妙維, 李張豐, 袁宏駿 申請(qǐng)人:蘇州希圖視鼎微電子有限公司