專(zhuān)利名稱(chēng)::用于減小加密延遲時(shí)間對(duì)標(biāo)準(zhǔn)通信的影響的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般地涉及數(shù)據(jù)加密,并特別涉及用于減少與有選擇地加密部分?jǐn)?shù)據(jù)相關(guān)聯(lián)的延遲時(shí)間的方法和裝置。
背景技術(shù):
:片上系統(tǒng)(SOC)通常在單個(gè)芯片上包括一個(gè)或多個(gè)集成的處理器內(nèi)核、諸如高速緩沖存儲(chǔ)器的某種類(lèi)型的嵌入式存儲(chǔ)器、以及諸如存儲(chǔ)控制組件和外部總線(xiàn)接口的外圍接口,以便形成完整的(或近乎完整的)系統(tǒng)。作為增強(qiáng)的安全特征的一部分,一些SOC在將數(shù)據(jù)存儲(chǔ)在外部存儲(chǔ)器中之前將其某些部分加密。對(duì)SOC增加這種加密可以增加有價(jià)值的益處,例如防止黑客獲得受版權(quán)保護(hù)的程序如視頻游戲的指令(instruction)、或者可用來(lái)通過(guò)反向工程(reverseengineering)確定這種指令的數(shù)據(jù)。然而,因?yàn)閭鹘y(tǒng)加密方案通常使要加密的數(shù)據(jù)和不加密的數(shù)據(jù)(不加密數(shù)據(jù))通過(guò)共同的順序數(shù)據(jù)路徑流出,所以增加加密通常影響系統(tǒng)性能。因此,不加密數(shù)據(jù)通常經(jīng)歷與加密數(shù)據(jù)相同的延遲時(shí)間。該延遲時(shí)間可能給不加密數(shù)據(jù)的存儲(chǔ)增加相當(dāng)大的延遲。此外,該延遲時(shí)間可能在加密先前的數(shù)據(jù)時(shí)阻礙對(duì)不加密數(shù)據(jù)隨后的存儲(chǔ)。因此,需要用來(lái)使加密延遲時(shí)間導(dǎo)致的對(duì)不加密數(shù)據(jù)的性能影響最小化的機(jī)制。
發(fā)明內(nèi)容本發(fā)明一般地提供這樣的方法和裝置,其可以利用加密存儲(chǔ)區(qū)域提高系統(tǒng)性能,同時(shí)保證將加密和不加密數(shù)據(jù)正確寫(xiě)入到其各自的存儲(chǔ)器位置。因此,通過(guò)參考在附圖中示出的本發(fā)明的實(shí)施例,可以得到獲得并可詳細(xì)理解本發(fā)明的上述特征、優(yōu)點(diǎn)和目的的方式,對(duì)在上面簡(jiǎn)要概括的本發(fā)明的更具體的描述。然而,應(yīng)當(dāng)注意,附圖僅圖示了本發(fā)明的典型實(shí)施例,從而不應(yīng)被視為限制其范圍,這是因?yàn)楸景l(fā)明可接受其它同等有效的實(shí)施例。圖1示出可使用本發(fā)明的實(shí)施例的包括中央處理單元(CPU)的示例系統(tǒng)。圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的CPU的組件的方框圖。圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的CPU的加密數(shù)據(jù)路徑的方框圖。圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于減少與數(shù)據(jù)加密相關(guān)聯(lián)的延遲時(shí)間的示例操作的流程圖。具體實(shí)施例方式可以在多種系統(tǒng)中使用本發(fā)明的實(shí)施例,以減小與對(duì)數(shù)據(jù)進(jìn)行加密相關(guān)聯(lián)的延遲時(shí)間對(duì)處理不加密數(shù)據(jù)的影響??梢元?dú)立地發(fā)送安全(要加密)和不安全(不加密)數(shù)據(jù),而不是將安全和不安全數(shù)據(jù)都沿著共同的數(shù)據(jù)路徑發(fā)送。因而,可以將不安全數(shù)據(jù)繼續(xù)轉(zhuǎn)發(fā)(例如,到目標(biāo)寫(xiě)入緩沖器),而不等待對(duì)先前發(fā)送的安全數(shù)據(jù)加密。因此,與對(duì)安全和不安全數(shù)據(jù)使用共同數(shù)據(jù)路徑的傳統(tǒng)系統(tǒng)相比,可以更早地使不安全數(shù)據(jù)對(duì)隨后的處理可用。在以下描述中,對(duì)本發(fā)明的實(shí)施例進(jìn)行介紹。然而,應(yīng)當(dāng)理解,本發(fā)明不限于所描述的特定實(shí)施例。而是,以下特征和要素的任何組合,不管其是否涉及不同的實(shí)施例,均被視為實(shí)施和實(shí)踐本發(fā)明。此外,在各種實(shí)施例中,本發(fā)明提供了相對(duì)于現(xiàn)有技術(shù)的眾多優(yōu)點(diǎn)。然而,盡管本發(fā)明的實(shí)施例可獲得相對(duì)于其它可能方案和/或現(xiàn)有技術(shù)的優(yōu)點(diǎn),但特定優(yōu)點(diǎn)是否由給定實(shí)施例獲得不是對(duì)本發(fā)明的限制。因而,以下方面、特征、實(shí)施例和優(yōu)點(diǎn)僅僅是說(shuō)明性的,并且,除非明確提出,否則不應(yīng)被視為所附權(quán)利要求的要素或限制。示例系統(tǒng)現(xiàn)在參考圖1,圖示了可使用本發(fā)明的實(shí)施例的包括中央處理單元(CPU)110的示例計(jì)算機(jī)系統(tǒng)100。如圖所示,CPU110可包括一個(gè)或多個(gè)處理器內(nèi)核112,每個(gè)處理器內(nèi)核可包括任何數(shù)量的不同種類(lèi)的功能單元,包括但不限于算術(shù)邏輯單元(ALU)、浮點(diǎn)單元(FPU)和單指令多數(shù)據(jù)(SIMD)單元。使用多個(gè)處理器內(nèi)核的CPU示例包括可從紐約阿芒克(Armonk,NY)的國(guó)際商業(yè)機(jī)器公司(IBM)獲得的CPU的PowerPC線(xiàn)(line)。如圖所示,每個(gè)處理器內(nèi)核112可具有對(duì)其自己的初級(jí)(primary)(L1)高速緩存114的訪(fǎng)問(wèn)權(quán),并且可選地可以共享更大的二級(jí)(secondary)(L2)高速緩存116。通常,可以將由處理器內(nèi)核112使用的數(shù)據(jù)副本本地存儲(chǔ)在L2高速緩存116中,從而避免對(duì)外部主存儲(chǔ)器140的相對(duì)較慢的訪(fǎng)問(wèn)或減少所述訪(fǎng)問(wèn)的數(shù)量。類(lèi)似地,可以將處理器內(nèi)核112經(jīng)常使用的數(shù)據(jù)存儲(chǔ)在其L1高速緩存114中,從而避免對(duì)L2高速緩存116的相對(duì)較慢的訪(fǎng)問(wèn)或減少所述訪(fǎng)問(wèn)的數(shù)量。CPU110可通過(guò)系統(tǒng)或前端總線(xiàn)(FSB)128與外部設(shè)備如圖形處理單元(GPU)130和/或存儲(chǔ)控制器136通信。CPU110可包括FSB接口120,以便經(jīng)由FSB128(通過(guò)L2高速緩存)在外部設(shè)備和處理內(nèi)核112之間傳遞數(shù)據(jù)。GPU130上的FSB接口132可具有與FSB接口120相似的組件,并配置為與一個(gè)或多個(gè)圖形處理器134、輸入輸出(I/O)單元138和存儲(chǔ)控制器136(其被說(shuō)明性地示出為與GPU130集成)交換數(shù)據(jù)。如圖所示,F(xiàn)SB接口120可包括物理層122、鏈路層124和事務(wù)層126。物理層122可包括用于實(shí)施通過(guò)FSB128接收和發(fā)送數(shù)據(jù)所必需的硬件協(xié)議的硬件組件。物理層122可與鏈路層124交換數(shù)據(jù),其中,鏈路層124可以將從事務(wù)層126接收的或要發(fā)送到事務(wù)層126的數(shù)據(jù)格式化。如圖所示,事務(wù)層126可以經(jīng)由核心總線(xiàn)接口(CBI)118與處理器內(nèi)核112交換數(shù)據(jù)。如前所述,作為增強(qiáng)的安全特征的一部分,CPU110可以在將數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)器140中之前將在此稱(chēng)為安全數(shù)據(jù)的某些部分的數(shù)據(jù)加密(這種數(shù)據(jù)加密部分被說(shuō)明性地示出為主存儲(chǔ)器140中的受保護(hù)數(shù)據(jù)142)。因此,CPU110可包括安全組件150,用于在通過(guò)FSB接口120經(jīng)FSB128傳送之前將這種數(shù)據(jù)加密。當(dāng)稍后恢復(fù)(retrieval)加密數(shù)據(jù)時(shí),也可以在將該加密數(shù)據(jù)傳遞到L2高速緩存116以供一個(gè)或多個(gè)處理器內(nèi)核112使用之前,使用安全組件150將其解密。如將在下面更詳細(xì)地描述的,對(duì)于某些實(shí)施例,CPU110可包括數(shù)據(jù)流控制電路,其被配置為把在存儲(chǔ)在主存儲(chǔ)器140中之前要加密的安全數(shù)據(jù)獨(dú)立地發(fā)送到安全組件150以便加密,同時(shí)繞過(guò)(繞開(kāi))該安全組件而發(fā)送不安全數(shù)據(jù)。如圖2所示,可以建立多個(gè)數(shù)據(jù)流(也稱(chēng)作虛擬信道),以在處理器內(nèi)核112和外部設(shè)備之間交換數(shù)據(jù)。建立分離的流可以改善整個(gè)系統(tǒng)性能,例如,允許一個(gè)處理內(nèi)核傳輸數(shù)據(jù)而另一個(gè)處理內(nèi)核處理數(shù)據(jù)(而不傳輸數(shù)據(jù))。如圖所示,多個(gè)流可以共享共同的緩沖池(bufferpool)210,其中,每個(gè)流使用緩沖池210中它自己的部分,從而實(shí)際上建立分離的緩沖器211-217。對(duì)于某些實(shí)施例,可以通過(guò)FSB來(lái)發(fā)送數(shù)據(jù)作為分組。因此,鏈路層124可包含諸如被配置為將從事務(wù)層126接收的數(shù)據(jù)編碼為分組或“分組化”的分組編碼器233、以及將從物理層122接收的數(shù)據(jù)分組進(jìn)行解碼的分組解碼器234的電路。如圖所示,物理層122可包括分別用于生成和接收這種分組的串行化器243和解串行化器244。通常,分組解碼器234將包括分組驗(yàn)證組件235,其被配置為例如通過(guò)比較對(duì)所接收的數(shù)據(jù)計(jì)算的校驗(yàn)和與該數(shù)據(jù)分組中包含的校驗(yàn)和,來(lái)檢查所接收的數(shù)據(jù)分組的數(shù)據(jù)傳輸錯(cuò)誤。分組解碼器234可將所接收的數(shù)據(jù)轉(zhuǎn)發(fā)到一個(gè)或多個(gè)接收緩沖器215-217。如圖所示,諸如發(fā)送到緩沖器215和216的數(shù)據(jù)請(qǐng)求和響應(yīng)命令的一些數(shù)據(jù)可以不加密,從而可被直接傳遞給高速緩存116。另一方面,響應(yīng)數(shù)據(jù)可包括加密和不加密數(shù)據(jù)。盡管可以將不加密數(shù)據(jù)直接傳遞給高速緩存116,但必須首先將加密數(shù)據(jù)251解密。因此,可以將加密數(shù)據(jù)251發(fā)送到解密引擎154。解密引擎154可以將加密數(shù)據(jù)251解密,并將解密的數(shù)據(jù)252傳回。如圖所示,可以使用多路復(fù)用器電路253將解密的數(shù)據(jù)252與不加密數(shù)據(jù)合并,并將其傳遞給高速緩存116。例如,當(dāng)可獲得解密的數(shù)據(jù)252以將其傳遞給高速緩存116時(shí),解密引擎154可以向多路復(fù)用器電路253斷言(assert)信號(hào)。對(duì)于某些實(shí)施例,事務(wù)層126可包括被配置為在接收和驗(yàn)證整個(gè)數(shù)據(jù)分組之前將所接收的加密數(shù)據(jù)251通過(guò)管道傳遞給解密引擎154的邏輯。在同此提交并通過(guò)引用而整體合并于此的、標(biāo)題為“Low-LatencyDataDecryptionInterface(低延遲時(shí)間數(shù)據(jù)解密接口)”的公共轉(zhuǎn)讓且同樣未決的申請(qǐng)(代理人文檔第ROC920040013號(hào))中,對(duì)這種邏輯進(jìn)行了詳細(xì)描述。減小加密延遲時(shí)間對(duì)標(biāo)準(zhǔn)通信的影響如前所述,在將安全數(shù)據(jù)外部存儲(chǔ)在例如主存儲(chǔ)器140中之前將其加密。因此,如圖2所示,F(xiàn)SB事務(wù)層126可包括數(shù)據(jù)流控制電路260,其被配置為將未加密的安全數(shù)據(jù)254發(fā)送到加密引擎152。然后,加密引擎152可返回?cái)?shù)據(jù)流控制電路260可隨后轉(zhuǎn)發(fā)到寫(xiě)入緩沖器213的加密數(shù)據(jù)256。然后,分組編碼器233可以從寫(xiě)入緩沖器213訪(fǎng)問(wèn)該加密數(shù)據(jù),并通過(guò)串行化器243生成要通過(guò)FSB發(fā)送出去的數(shù)據(jù)分組。數(shù)據(jù)流控制電路260可被配置為接收和發(fā)送安全和不安全數(shù)據(jù)。盡管加密操作可能涉及相當(dāng)大的延遲時(shí)間,但是可以將數(shù)據(jù)流控制電路260配置為盡力獨(dú)立發(fā)送安全和不安全數(shù)據(jù),以減小加密延遲時(shí)間對(duì)不安全數(shù)據(jù)的影響。如圖所示,實(shí)際上,數(shù)據(jù)流控制電路260提供從CBI到寫(xiě)入緩沖器213的不同數(shù)據(jù)路徑,其中,安全數(shù)據(jù)沿第一路徑(通過(guò)加密引擎152)發(fā)送,而不安全數(shù)據(jù)沿第二路徑發(fā)送。圖3圖示數(shù)據(jù)流控制電路260的一個(gè)實(shí)施例,其可用來(lái)通過(guò)多路復(fù)用器262-265(MUX0-3)的布置獨(dú)立發(fā)送安全和不安全數(shù)據(jù)。如圖所示,數(shù)據(jù)流控制電路260可以從CBI接收例如在處理器內(nèi)核發(fā)出的存儲(chǔ)指令中包含的數(shù)據(jù)。如圖所示,地址和命令數(shù)據(jù)可由說(shuō)明性地(例如通過(guò)控制多路復(fù)用器262-265的信號(hào))控制數(shù)據(jù)流控制電路260的操作的其它組件如命令解碼器270、安全數(shù)據(jù)控制電路272和數(shù)據(jù)緩沖器寫(xiě)入控制器273接收??梢酝瑫r(shí)參考圖3和圖4來(lái)描述數(shù)據(jù)流控制電路260通過(guò)多路復(fù)用器262-265的操作,其中,圖4圖示了用于獨(dú)立發(fā)送安全和不安全數(shù)據(jù)的示例操作400。為了幫助理解,將圖4示出的操作之一涉及的圖3示出的一個(gè)或多個(gè)多路復(fù)用器在操作下面列出。在步驟402,操作400以接收存儲(chǔ)指令中包含的數(shù)據(jù)開(kāi)始。如圖所示,數(shù)據(jù)流控制電路260可包括位于各種位置的鎖存電路261,以便臨時(shí)保存所接收的數(shù)據(jù),直到所需的資源可用為止。在步驟404,確定所接收的數(shù)據(jù)是安全的還是不安全的??梢允褂萌魏魏线m的技術(shù)來(lái)確定數(shù)據(jù)是否是安全的。例如,可以為安全數(shù)據(jù)預(yù)留特定的地址范圍。因此,安全數(shù)據(jù)控制器272可以通過(guò)檢查包含該數(shù)據(jù)的指令的地址來(lái)識(shí)別安全數(shù)據(jù)。作為另一示例,可以通過(guò)頁(yè)表項(xiàng)(pagetableentry)中的一個(gè)或多個(gè)位設(shè)置來(lái)識(shí)別安全數(shù)據(jù),所述位設(shè)置指示例如對(duì)應(yīng)的高速緩存線(xiàn)是安全的。如果數(shù)據(jù)是安全的,則在步驟406經(jīng)過(guò)加密引擎發(fā)送數(shù)據(jù)。如圖3所示,可以將安全數(shù)據(jù)通過(guò)MUX0262發(fā)送到加密引擎,其中,可以由安全數(shù)據(jù)控制電路272生成的信號(hào)來(lái)控制MUX0262。換句話(huà)說(shuō),響應(yīng)于(例如,基于數(shù)據(jù)將被寫(xiě)入的地址)將數(shù)據(jù)識(shí)別為安全的,安全數(shù)據(jù)控制電路272可生成mux控制信號(hào),以便將數(shù)據(jù)發(fā)送給加密引擎152。在某些情況下,可以包括可選的鎖存電路261,以支持延遲時(shí)間大于傳遞數(shù)據(jù)分組的時(shí)間的加密引擎。一旦從加密引擎152返回了加密數(shù)據(jù),如果步驟408確定包含安全數(shù)據(jù)的存儲(chǔ)指令目標(biāo)所指的寫(xiě)入緩沖器213可用(即,該緩沖器尚未被寫(xiě)入),則在步驟412,將加密數(shù)據(jù)發(fā)送到該可用的寫(xiě)入緩沖器。換句話(huà)說(shuō),用于緩沖的陣列通常只有單個(gè)寫(xiě)入端口。因此,在任何給定時(shí)間,只有一組寫(xiě)入數(shù)據(jù)可以通過(guò)。如圖所示,可以將來(lái)自加密引擎152的加密數(shù)據(jù)經(jīng)由MUX2264和MUX3265直接發(fā)送到寫(xiě)入緩沖器213。換句話(huà)說(shuō),不管加密過(guò)程涉及的延遲時(shí)間量如何,都可以在對(duì)標(biāo)準(zhǔn)數(shù)據(jù)流有很小的影響或者沒(méi)有影響的情況下,將加密數(shù)據(jù)合并回標(biāo)準(zhǔn)(例如未加密的)數(shù)據(jù)流中。然而,如果目標(biāo)寫(xiě)入緩沖器213不可用(即,當(dāng)前該緩沖器正被寫(xiě)入),則在步驟410,可以將加密數(shù)據(jù)發(fā)送到保持緩沖器274,在那里,可以保持加密數(shù)據(jù),直到緩沖器213可用為止。目標(biāo)寫(xiě)入緩沖器213可能因數(shù)據(jù)流控制電路260可能正在將其它加密數(shù)據(jù)或不加密數(shù)據(jù)發(fā)送到目標(biāo)寫(xiě)入緩沖器213而不可用??梢詫⒓用軘?shù)據(jù)從加密引擎152經(jīng)由MUX1263發(fā)送到數(shù)據(jù)保持緩沖器274。如圖所示,到控制MUX1-3262-264的信號(hào)可由數(shù)據(jù)緩沖器寫(xiě)入控制電路273生成,其中,數(shù)據(jù)緩沖器寫(xiě)入控制電路273可以監(jiān)控寫(xiě)入緩沖器213的可用性。換句話(huà)說(shuō),數(shù)據(jù)緩沖器寫(xiě)入控制電路273可以在保持緩沖器274中保持加密數(shù)據(jù),直到檢測(cè)到通向?qū)懭刖彌_器的通信的間隙為止。一旦檢測(cè)到這一間隙,就可以將保持緩沖器274中的數(shù)據(jù)寫(xiě)入到寫(xiě)入緩沖器213中。回到步驟404,如果數(shù)據(jù)流控制電路260接收到的數(shù)據(jù)是不安全的,那么如果在步驟414確定目標(biāo)寫(xiě)入緩沖器213可用,則在步驟418,可以將該不安全數(shù)據(jù)直接發(fā)送到目標(biāo)寫(xiě)入緩沖器213。如圖所示,可以將不加密數(shù)據(jù)經(jīng)由MUX2264和MUX3265直接發(fā)送到寫(xiě)入緩沖器213。如果目標(biāo)寫(xiě)入緩沖器213不可用,則在步驟416,可以將不安全/不加密數(shù)據(jù)發(fā)送到保持緩沖器274,在那里,可以保持該不安全/不加密數(shù)據(jù),直到寫(xiě)入緩沖器213可用為止。如前所述,可以將數(shù)據(jù)從數(shù)據(jù)保持緩沖器274經(jīng)由MUX3265發(fā)送到寫(xiě)入緩沖器213。指令排序如在此描述的,通過(guò)獨(dú)立發(fā)送安全和不安全數(shù)據(jù),即使來(lái)自先前發(fā)送的存儲(chǔ)指令的安全數(shù)據(jù)正由加密引擎152加密,也可以在因加密延遲時(shí)間而導(dǎo)致的影響很小或者沒(méi)有這種影響的情況下,將不安全數(shù)據(jù)發(fā)送到寫(xiě)入緩沖器。使用在此描述的電路,可以將加密數(shù)據(jù)合并回標(biāo)準(zhǔn)通信流,而不管加密所需的延遲時(shí)間周期的數(shù)量。然而,作為結(jié)果,數(shù)據(jù)可以按照與其流入流控制電路260不同的頁(yè)序流出數(shù)據(jù)流控制電路260。換句話(huà)說(shuō),隨后發(fā)出的、包含不安全數(shù)據(jù)的存儲(chǔ)指令可能在先前發(fā)出的、包含必須首先被加密的安全數(shù)據(jù)的存儲(chǔ)指令之前退出流控制電路。對(duì)于某些實(shí)施例,這些指令可能被無(wú)順序地處理,而對(duì)于其它實(shí)施例,可能施行嚴(yán)格的排序。無(wú)論怎樣,都可以保持包含被傳遞到加密引擎的數(shù)據(jù)的存儲(chǔ)指令的地址,以確保檢查包含共同地址(例如,地址沖突)的存儲(chǔ)和加載指令的適當(dāng)系統(tǒng)順序。換句話(huà)說(shuō),如果在修改某地址處的數(shù)據(jù)的存儲(chǔ)指令之后跟隨著從相同地址讀取數(shù)據(jù)的加載指令,則可以將邏輯配置為確保在加載指令之前發(fā)出存儲(chǔ)指令,以避免加載指令讀取無(wú)效數(shù)據(jù)。對(duì)于某些實(shí)施例,可以將數(shù)據(jù)緩沖器寫(xiě)入控制器273配置為檢測(cè)地址沖突,并發(fā)信號(hào)通知命令解碼器,所述命令解碼器可以例如重新安排加載指令。根據(jù)實(shí)施例,在此描述的流控制邏輯可被配置為在第一組加密數(shù)據(jù)返回之前處理不同數(shù)量的存儲(chǔ)命令。對(duì)于某些實(shí)施例,可以將流控制邏輯簡(jiǎn)化為一次只允許一個(gè)存儲(chǔ)指令通過(guò)加密路徑,這可以將所述邏輯簡(jiǎn)化(例如,需要較小的緩沖器),并且對(duì)于加密帶寬需求低的應(yīng)用是可以接受的。對(duì)于其它實(shí)施例,更復(fù)雜的電路可以為要通過(guò)加密路徑發(fā)送的更大數(shù)量的存儲(chǔ)指令留有余地,這可用來(lái)更充分地使上游邏輯免受加密路徑的性能限制的影響。結(jié)論通過(guò)獨(dú)立發(fā)送安全數(shù)據(jù)(要加密)和不安全數(shù)據(jù)(不加密),可以將存儲(chǔ)指令中包含的安全數(shù)據(jù)發(fā)送到加密引擎,而不阻礙隨后發(fā)出的存儲(chǔ)指令中包含的不安全數(shù)據(jù)。隨后可以將從加密引擎返回的加密的安全數(shù)據(jù)與不安全數(shù)據(jù)合并回去。從而可以減小與傳統(tǒng)加密機(jī)制相關(guān)聯(lián)的時(shí)間延遲對(duì)不安全數(shù)據(jù)的影響。盡管上文針對(duì)本發(fā)明的實(shí)施例,但可以在不脫離本發(fā)明的基本范圍的情況下,設(shè)計(jì)本發(fā)明的其它和另外的實(shí)施例,而本發(fā)明的范圍由所附權(quán)利要求確定。相關(guān)申請(qǐng)交叉引用本申請(qǐng)涉及題為“Low-LatencyDataDecryptionInterface(低延遲時(shí)間數(shù)據(jù)解密接口)”的公共轉(zhuǎn)讓且同樣未決的申請(qǐng)(代理人文檔第ROC920040013號(hào)),在此一同提交,并通過(guò)引用而將其全部合并于此。權(quán)利要求1.一種減小與對(duì)安全數(shù)據(jù)加密相關(guān)聯(lián)的延遲時(shí)間對(duì)在存儲(chǔ)器中存儲(chǔ)不安全數(shù)據(jù)的影響的方法,包括接收要存儲(chǔ)到存儲(chǔ)器中的第一數(shù)據(jù);如果第一數(shù)據(jù)是安全的,則將第一數(shù)據(jù)發(fā)送到加密引擎,以在將第一數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器中之前進(jìn)行加密;以及如果第一數(shù)據(jù)是不安全的,則繞開(kāi)加密引擎而將第一數(shù)據(jù)發(fā)送到存儲(chǔ)器,而不管加密引擎是否正在對(duì)該第一數(shù)據(jù)之前接收的數(shù)據(jù)進(jìn)行加密。2.如權(quán)利要求1所述的方法,其特征在于,第一數(shù)據(jù)是安全的,并且該方法還包括在接收到第一數(shù)據(jù)之后,接收要存儲(chǔ)的第二數(shù)據(jù);確定該第二數(shù)據(jù)是不安全的;將第二數(shù)據(jù)發(fā)送到存儲(chǔ)器;以及隨后接收以加密形式從加密引擎返回的第一數(shù)據(jù)。3.如權(quán)利要求2所述的方法,其特征在于,第一數(shù)據(jù)是安全的,并且該方法還包括在接收到第二數(shù)據(jù)之后,接收要存儲(chǔ)的第三數(shù)據(jù);確定該第三數(shù)據(jù)是不安全的;以及在接收以加密格式從加密引擎返回的第一數(shù)據(jù)之前,將第三數(shù)據(jù)發(fā)送到存儲(chǔ)器。4.如權(quán)利要求1所述的方法,還包括如果對(duì)應(yīng)于第一數(shù)據(jù)的第一存儲(chǔ)地址在為安全數(shù)據(jù)保留的預(yù)定地址范圍內(nèi),則確定第一數(shù)據(jù)是否是安全的。5.一種減小與對(duì)安全數(shù)據(jù)加密相關(guān)聯(lián)的延遲時(shí)間對(duì)在存儲(chǔ)器中存儲(chǔ)不安全數(shù)據(jù)的影響的方法,包括接收要存儲(chǔ)到存儲(chǔ)器中的第一組一個(gè)或多個(gè)指令中包含的安全數(shù)據(jù);將安全數(shù)據(jù)發(fā)送到加密引擎,以進(jìn)行加密;在接收到安全數(shù)據(jù)之后,接收要存儲(chǔ)到存儲(chǔ)器中的第二組一個(gè)或多個(gè)指令中包含的不安全數(shù)據(jù);以及在接收到以加密形式從加密引擎返回的安全數(shù)據(jù)之前,繞開(kāi)加密引擎而將不安全數(shù)據(jù)發(fā)送到存儲(chǔ)器。6.如權(quán)利要求5所述的方法,其特征在于,將不安全數(shù)據(jù)發(fā)送到存儲(chǔ)器包括將不安全數(shù)據(jù)發(fā)送到寫(xiě)入緩沖器。7.如權(quán)利要求6所述的方法,還包括接收以加密形式從加密引擎返回的安全數(shù)據(jù);以及將加密形式的安全數(shù)據(jù)發(fā)送到寫(xiě)入緩沖器。8.如權(quán)利要求7所述的方法,還包括確定寫(xiě)入緩沖器是否可用于接收安全數(shù)據(jù);以及如果不可用,則在將加密形式的安全數(shù)據(jù)發(fā)送到寫(xiě)入緩沖器之前,將加密形式的安全數(shù)據(jù)發(fā)送到保持緩沖器。9.如權(quán)利要求8所述的方法,還包括確定寫(xiě)入緩沖器是否可用于接收不安全數(shù)據(jù);以及如果不可用,則在將不安全數(shù)據(jù)發(fā)送到存儲(chǔ)器之前,將不安全數(shù)據(jù)發(fā)送到保持緩沖器。10.一種用于對(duì)加密數(shù)據(jù)的分組進(jìn)行解密的系統(tǒng),包括緩沖設(shè)備;加密引擎;通過(guò)加密引擎的第一數(shù)據(jù)路徑,用于要在存儲(chǔ)到存儲(chǔ)器中之前加密的安全數(shù)據(jù);繞開(kāi)加密引擎的第二數(shù)據(jù)路徑,用于要存儲(chǔ)到存儲(chǔ)器中的未加密的不安全數(shù)據(jù);以及數(shù)據(jù)流控制電路,配置為接收要存儲(chǔ)到存儲(chǔ)器中的第一數(shù)據(jù),如果第一數(shù)據(jù)是安全的,則將第一數(shù)據(jù)發(fā)送到第一數(shù)據(jù)路徑,如果第一數(shù)據(jù)是不安全的,則將第一數(shù)據(jù)發(fā)送到第二數(shù)據(jù)路徑。11.如權(quán)利要求10所述的系統(tǒng),其特征在于第一數(shù)據(jù)是安全數(shù)據(jù);以及數(shù)據(jù)流控制電路被配置為在第一數(shù)據(jù)以加密的形式退出加密引擎之前將在第一數(shù)據(jù)之后接收的不安全的第二數(shù)據(jù)發(fā)送到第二數(shù)據(jù)路徑。12.如權(quán)利要求10所述的系統(tǒng),其特征在于,第一和第二數(shù)據(jù)路徑在一個(gè)或多個(gè)寫(xiě)入緩沖器處合并。13.如權(quán)利要求12所述的系統(tǒng),還包括保持緩沖器,用于在所述一個(gè)或多個(gè)寫(xiě)入緩沖器之前有選擇地從加密引擎接收數(shù)據(jù)。14.如權(quán)利要求13所述的系統(tǒng),其特征在于,數(shù)據(jù)流控制電路還包括一個(gè)或多個(gè)多路復(fù)用器,用于有選擇地將數(shù)據(jù)從保持緩沖器發(fā)送到所述一個(gè)或多個(gè)寫(xiě)入緩沖器。15.如權(quán)利要求13所述的系統(tǒng),其特征在于,第一和第二數(shù)據(jù)路徑每個(gè)都具有到保持緩沖器的分支。16.一種片上系統(tǒng)(SOC),包括一個(gè)或多個(gè)處理器內(nèi)核;加密引擎;一個(gè)或多個(gè)寫(xiě)入緩沖器;以及數(shù)據(jù)流控制電路,配置為經(jīng)由通過(guò)加密引擎的第一數(shù)據(jù)路徑將第一存儲(chǔ)指令中包含的安全數(shù)據(jù)發(fā)送到所述一個(gè)或多個(gè)寫(xiě)入緩沖器,而經(jīng)由繞開(kāi)加密引擎的第二數(shù)據(jù)路徑將在第一存儲(chǔ)指令之后發(fā)出的第二存儲(chǔ)指令中包含的不安全數(shù)據(jù)發(fā)送到所述一個(gè)或多個(gè)寫(xiě)入緩沖器,其中,不安全數(shù)據(jù)在安全數(shù)據(jù)之前到達(dá)所述一個(gè)或多個(gè)寫(xiě)入緩沖器。17.如權(quán)利要求16所述的SOC,其特征在于,數(shù)據(jù)流控制電路配置為基于存儲(chǔ)指令中包含的地址確定該存儲(chǔ)指令中包含的數(shù)據(jù)是安全的。18.如權(quán)利要求16所述的SOC,還包括保持緩沖器,用于從加密引擎接收加密形式的安全數(shù)據(jù)。19.如權(quán)利要求18所述的SOC,其特征在于,數(shù)據(jù)流控制電路包括一個(gè)或多個(gè)多路復(fù)用器,以基于所述一個(gè)或多個(gè)寫(xiě)入緩沖器的可用性,有選擇地將加密形式的安全數(shù)據(jù)從加密引擎發(fā)送到所述一個(gè)或多個(gè)寫(xiě)入緩沖器或者保持緩沖器。20.如權(quán)利要求18所述的SOC,其特征在于,數(shù)據(jù)流控制電路包括一個(gè)或多個(gè)多路復(fù)用器,以基于所述一個(gè)或多個(gè)寫(xiě)入緩沖器的可用性,有選擇地將不安全數(shù)據(jù)發(fā)送到保持緩沖器。全文摘要提供了可在系統(tǒng)中使用以減小與對(duì)數(shù)據(jù)加密相關(guān)聯(lián)的延遲時(shí)間對(duì)不加密數(shù)據(jù)的影響的方法和系統(tǒng)。可以獨(dú)立發(fā)送安全和不安全數(shù)據(jù)。因而,可以將不安全數(shù)據(jù)繼續(xù)轉(zhuǎn)發(fā)(例如,到目標(biāo)寫(xiě)入緩沖器),而不等待對(duì)先前發(fā)送的安全數(shù)據(jù)進(jìn)行加密。因此,與使用用于安全和不安全數(shù)據(jù)的共同數(shù)據(jù)路徑的傳統(tǒng)系統(tǒng)相比,可以更早地使不安全數(shù)據(jù)能夠用于隨后的處理。文檔編號(hào)G06F1/00GK1743993SQ20051007021公開(kāi)日2006年3月8日申請(qǐng)日期2005年5月11日優(yōu)先權(quán)日2004年9月2日發(fā)明者布魯斯·L·比克馬,杰米·R·庫(kù)塞爾,羅伯特·A·希勒申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司