用于保護(hù)數(shù)字內(nèi)容的裝置和方法
【專利摘要】在本發(fā)明的一實(shí)施例中,一處理器包括內(nèi)容存儲(chǔ)邏輯以將數(shù)字內(nèi)容解析成各部分并致使每個(gè)部分被存儲(chǔ)到存儲(chǔ)器的相應(yīng)頁(yè)中。該處理器還包括保護(hù)邏輯以接收具有存儲(chǔ)器內(nèi)的目的地地址的寫指令,并且如果目的地地址與存儲(chǔ)數(shù)字內(nèi)容的一部分的存儲(chǔ)器位置相關(guān)聯(lián),則擦除與該存儲(chǔ)器位置相關(guān)聯(lián)的頁(yè)。如果目的地地址與未存儲(chǔ)區(qū)數(shù)字內(nèi)容中的任何部分的另一存儲(chǔ)器位置相關(guān)聯(lián),則保護(hù)邏輯許可寫指令的執(zhí)行。描述并要求保護(hù)其他實(shí)施例。
【專利說(shuō)明】用于保護(hù)數(shù)字內(nèi)容的裝置和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的【技術(shù)領(lǐng)域】為數(shù)字內(nèi)容的保護(hù)。
【背景技術(shù)】
[0002] 經(jīng)加密的數(shù)字內(nèi)容可能在解密以后易受攻擊。例如,對(duì)經(jīng)解密的數(shù)字內(nèi)容的一部 分的蓋寫可能構(gòu)成攻擊。在攻擊中,寫入指令可能針對(duì)蓋寫數(shù)據(jù)類型指示符,該數(shù)據(jù)類型指 示符指示數(shù)據(jù)串中的隨后的數(shù)據(jù)是元數(shù)據(jù)還是有效載荷數(shù)據(jù)。將數(shù)據(jù)類型指示符從對(duì)有效 載荷數(shù)據(jù)的指示蓋寫成對(duì)元數(shù)據(jù)的指示可能許可對(duì)有效載荷數(shù)據(jù)的未授權(quán)的訪問(wèn)。也就是 說(shuō),由于存儲(chǔ)在數(shù)據(jù)類型指示符之后的位置處的數(shù)據(jù)被重新標(biāo)記為元數(shù)據(jù)而不是有效載荷 數(shù)據(jù),并且由于元數(shù)據(jù)通常是不受保護(hù)的,因此(未被正確標(biāo)記的)有效載荷數(shù)據(jù)可能受到 可能包括盜竊有效載荷數(shù)據(jù)的未經(jīng)授權(quán)的訪問(wèn)。
【專利附圖】
【附圖說(shuō)明】
[0003] 圖1是根據(jù)本發(fā)明實(shí)施例的系統(tǒng)的一部分的框圖。
[0004] 圖2是根據(jù)本發(fā)明實(shí)施例的另一系統(tǒng)的一部分的框圖。
[0005] 圖3是根據(jù)本發(fā)明一實(shí)施例的示出寫入在存儲(chǔ)器中的數(shù)字內(nèi)容的框圖。
[0006] 圖4是根據(jù)本發(fā)明的實(shí)施例的保護(hù)數(shù)字內(nèi)容的方法的流程圖。
[0007] 圖5是根據(jù)本發(fā)明的實(shí)施例的處理器核的框圖。
[0008] 圖6是根據(jù)本發(fā)明的實(shí)施例的處理器的框圖。
[0009] 圖7是根據(jù)本發(fā)明的實(shí)施例的多域處理器的框圖。
[0010] 圖8是根據(jù)本發(fā)明的實(shí)施例的包括多核的處理器的實(shí)施例的圖示。
[0011] 圖9是根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的框圖。
[0012] 圖10是根據(jù)本發(fā)明另一實(shí)施例的系統(tǒng)的框圖。
【具體實(shí)施方式】
[0013] 例如在數(shù)字權(quán)項(xiàng)管理(DRM)回放期間,可以將安全增強(qiáng)處理器(SEP)用于安全內(nèi) 容解密。內(nèi)容可以被解密到隔離存儲(chǔ)器區(qū)域(η?)中、即具有可內(nèi)置于相關(guān)聯(lián)的硬件中的 訪問(wèn)控制機(jī)制的專用存儲(chǔ)器。頂R使用可以防止主處理器和惡意軟件直接訪問(wèn)經(jīng)解密的內(nèi) 容,并且可以僅僅允許所選子系統(tǒng)(例如安全引擎和硬件解碼器)訪問(wèn)存儲(chǔ)在IMR中的內(nèi)容。
[0014] 在解碼器可以進(jìn)行解碼之前解碼器可能需要關(guān)于受保護(hù)的壓縮內(nèi)容的信息。例 如,在解碼器對(duì)壓縮數(shù)據(jù)進(jìn)行解碼以前,可能需要關(guān)于片(slice)元數(shù)據(jù)和實(shí)際受保護(hù)內(nèi)容 有效載荷的大小和位置的信息。這對(duì)例如"剪切和粘貼攻擊"和"純文本覆蓋"之類的安全 漏洞開(kāi)放了可能性。例如,由于數(shù)據(jù)被安全引擎解析時(shí)的攻擊,整個(gè)經(jīng)解密的數(shù)據(jù)(包括受 保護(hù)的有效載荷)可能被提供給主實(shí)體,因?yàn)榘踩婊趯?duì)報(bào)頭信息的修改而錯(cuò)誤地將 該數(shù)據(jù)解釋成元數(shù)據(jù)。因此,受保護(hù)的有效載荷內(nèi)容可能被主機(jī)中的流氓應(yīng)用竊取。
[0015] 附加地,未經(jīng)密碼塊對(duì)齊的較小分組可能作為來(lái)自內(nèi)容提供者的純文本材料到 達(dá),并且主機(jī)可以向安全引擎指定該分組不需要解密。因此,攻擊者可能將"經(jīng)蓋寫的純文 本部分"指定為不需要解密的內(nèi)容。注意,安全引擎從主機(jī)獲得位置信息(經(jīng)過(guò)偏移量)。因 此,主機(jī)可以潛在地以此方式發(fā)送不正確的數(shù)據(jù)以替換實(shí)際數(shù)據(jù)。
[0016] 攻擊場(chǎng)景對(duì)于可能發(fā)送不規(guī)則大小的未與實(shí)際視頻幀對(duì)齊的分組的方案是可能 的。攻擊在其解碼器本身不具有解析整個(gè)流的能力的硬件平臺(tái)上也是可能的。
[0017] 在一示例中,攻擊可能針對(duì)已經(jīng)被解密到MR中的數(shù)據(jù)。在支持MR的一些平臺(tái) 中,僅僅安全引擎具有對(duì)IMR的讀寫訪問(wèn),而例如解碼器之類的其他組件限于只讀訪問(wèn)。安 全引擎可以鎖定經(jīng)解密的數(shù)據(jù),使得其僅僅被隨后的安全視頻路徑組件消費(fèi),以潛在地消 除"蓋寫"攻擊并且可以在消費(fèi)以后復(fù)位(例如解鎖)。
[0018] 然而,安全引擎可能不知道給定數(shù)據(jù)在何時(shí)被消費(fèi)。此外,IMR可以在每個(gè)幀被解 碼器消費(fèi)以前保持多個(gè)幀。因此,例如由安全引擎進(jìn)行的數(shù)據(jù)寫入和例如由解碼器進(jìn)行的 數(shù)據(jù)讀取可以以任意方式進(jìn)行。
[0019] 通常,幀在其被消費(fèi)以前被整體解密,并且構(gòu)成幀的多個(gè)分組以連續(xù)方式被饋送 入安全引擎。也就是說(shuō),幀可以由多個(gè)分組構(gòu)成,并且在另一幀的分組被解碼以前,這些分 組被連續(xù)地解碼到頂R中,直到整個(gè)幀被解碼到頂R中。
[0020] 在本發(fā)明的一實(shí)施例中,IMR例如可以以每頁(yè)(或每塊)的粒度來(lái)提供寫鎖復(fù)位機(jī) 構(gòu)。頁(yè)(或塊)可以按照系統(tǒng)需要而具有任何粒度。頁(yè)可以在系統(tǒng)啟動(dòng)時(shí)配置。被寫入的 頁(yè)內(nèi)的最后偏移量的運(yùn)行OFFSET (偏移量)可以維護(hù)在與該頁(yè)相關(guān)聯(lián)的存儲(chǔ)寄存器中。該 OFFSET可以按如下方式在每次寫入時(shí)被更新:如果新偏移量大于OFFSET,則寫入被許可并 且OFFSET可以被更新為被寫入的最后位置。換言之,OFFSET被存儲(chǔ)寄存器"鎖定"。如果嘗 試對(duì)該頁(yè)內(nèi)的比OFFSET小的偏移量進(jìn)行寫入,則OFFSET可以被復(fù)位為0 (頁(yè)已解鎖),該頁(yè) 可以被擦除,并且可以許可對(duì)該頁(yè)內(nèi)的任何偏移量進(jìn)行新的寫入。在所述寫入以后,OFFSET 可以再次更新。
[0021] 可以在兩種情況下嘗試小于OFFSET的偏移量:1)新幀正在被寫入/解密到MR 中。在這種情況下,通常進(jìn)行對(duì)OFFSET的復(fù)位和該頁(yè)的解鎖。2)惡意軟件嘗試修改現(xiàn)有數(shù) 據(jù),在這種情況下,對(duì)OFFSET的修改和對(duì)整個(gè)頁(yè)的清除(例如擦除)可以防止該修改。
[0022] 可以使頁(yè)大小為可調(diào)整或可配置的以適應(yīng)幀大小。在一個(gè)示例中,當(dāng)例如通過(guò)將 寫入偏移量與存儲(chǔ)在存儲(chǔ)寄存器中的OFFSET相比較而檢測(cè)到攻擊時(shí),整個(gè)幀可以被清除。
[0023] 在一實(shí)施例中,可以以固件或硬件來(lái)實(shí)現(xiàn)鎖定和復(fù)位功能。例如,運(yùn)行在SEP上的 固件可以維護(hù)頁(yè)屬性(例如最后寫入偏移量)并以軟件來(lái)模仿鎖定和復(fù)位功能。由于SEP固 件預(yù)期運(yùn)行在安全環(huán)境中,因此在以硬件實(shí)現(xiàn)時(shí)結(jié)果同樣有效。
[0024] 在各個(gè)實(shí)施例中,對(duì)數(shù)字內(nèi)容的保護(hù)可以由處理器例如在數(shù)字內(nèi)容已經(jīng)被解密以 后來(lái)提供。處理器可以包括內(nèi)容存儲(chǔ)邏輯以將數(shù)字內(nèi)容解析成各部分并將每個(gè)部分存儲(chǔ)到 存儲(chǔ)器的相應(yīng)頁(yè)中。處理器還可以包括保護(hù)邏輯以在經(jīng)解析的數(shù)字內(nèi)容被存儲(chǔ)以后接收包 括目的地地址的寫入指令,并且如果寫入指令的目的地地址是去往存儲(chǔ)該數(shù)字內(nèi)容的一部 分的存儲(chǔ)器位置,則保護(hù)邏輯可以擦除該頁(yè)。如果目的地地址與未存儲(chǔ)數(shù)字內(nèi)容中的任何 部分的另一存儲(chǔ)器位置相關(guān)聯(lián),則保護(hù)邏輯可以執(zhí)行寫入指令。對(duì)其存儲(chǔ)的數(shù)字內(nèi)容為寫 入指令目標(biāo)的頁(yè)的擦除可以保護(hù)被擦除的數(shù)字內(nèi)容不被未經(jīng)授權(quán)方訪問(wèn)。
[0025] 現(xiàn)在參考圖1,所示是根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)100的一部分的框圖。如圖1中 所示,系統(tǒng)100可包括各個(gè)組件,包括安全增強(qiáng)處理器(SEP) 102。
[0026] SEP102可以包括解密邏輯112以解密傳入指令。SEP102可以包括存儲(chǔ)器控制器中 樞(MCH) 110,該存儲(chǔ)器控制器中樞(MCH) 110可以包括內(nèi)容存儲(chǔ)邏輯114和保護(hù)邏輯116, 該保護(hù)邏輯116可以包括地址存儲(chǔ)邏輯118、地址比較邏輯120和頁(yè)擦除邏輯122。MCH110 還可以包括一個(gè)或多個(gè)存儲(chǔ)寄存器124^124、…、124 n以存儲(chǔ)地址偏移量,例如相應(yīng)頁(yè)內(nèi) 的最后寫入存儲(chǔ)器位置的偏移量。注意,在圖1中,SEP102是以高級(jí)別描繪的,并且應(yīng)當(dāng)理 解,諸如SEP102之類的處理器可以包括許多其他特性。
[0027] 系統(tǒng)100還可以包括存儲(chǔ)器150,該存儲(chǔ)器150可以是包括一個(gè)或多個(gè)隔離存儲(chǔ) 器區(qū)域(IMR)的訪問(wèn)受控存儲(chǔ)器。在各個(gè)實(shí)施例中,存儲(chǔ)器150可以是動(dòng)態(tài)隨機(jī)存儲(chǔ)存儲(chǔ) 器(DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)或另一類型的存儲(chǔ)存儲(chǔ)器。對(duì)IMR的訪問(wèn)可以由 MCH110來(lái)確定。
[0028] 存儲(chǔ)器150可以通過(guò)MCH110耦合到解碼器180。在一實(shí)施例中,解碼器180可以 例如與SEP102和存儲(chǔ)器150 -起位于主板(未示出)上。
[0029] 存儲(chǔ)器150的一部分可以被劃分成一個(gè)或多個(gè)頁(yè)154^15+…、154n。在一實(shí)施例 中,每個(gè)頁(yè)都可以具有相同的存儲(chǔ)容量,例如大致4千字節(jié)(kB)或另一存儲(chǔ)容量。在另一 實(shí)施例中,頁(yè)154-15^中的一個(gè)或多個(gè)頁(yè)可以在存儲(chǔ)容量方面不同于頁(yè)154-15^中的其 他頁(yè)。
[0030] 在操作中,SEP102可以接收經(jīng)加密的數(shù)字內(nèi)容160并且解密邏輯112可以對(duì)經(jīng)加 密的數(shù)字內(nèi)容160解密以產(chǎn)生(未加密的)數(shù)字內(nèi)容。
[0031] 在經(jīng)加密的數(shù)字內(nèi)容已經(jīng)被解密以后,MCH110中的內(nèi)容存儲(chǔ)邏輯114可以將數(shù)字 內(nèi)容解析成一個(gè)或多個(gè)部分,例如每個(gè)部分對(duì)應(yīng)于存儲(chǔ)器的頁(yè)154^154、…、154 n之一。在 一些實(shí)施例中,這些部分可以為相同大小。在其他實(shí)施例中,至少一個(gè)部分可以在大小方面 不同于其他部分。在經(jīng)解密的內(nèi)容被解析成各部分以后,各部分可以由內(nèi)容存儲(chǔ)邏輯114 來(lái)存儲(chǔ),其中每個(gè)部分被存儲(chǔ)到相應(yīng)的頁(yè)154^154、…、154 n中。
[0032] 地址存儲(chǔ)邏輯118可以將每個(gè)頁(yè)15^154、…、154n內(nèi)的最后寫入存儲(chǔ)器位置的 地址作為自相應(yīng)頁(yè)的起始地址的偏移量存儲(chǔ)到相應(yīng)存儲(chǔ)寄存器124^124、…、124 n中。
[0033] SEP102可以接收程序指令170。程序指令之一可以是寫入指令,其針對(duì)處于頁(yè) 154。、1541、...154 11之一內(nèi)的目的地地址。1〇110可以確定哪個(gè)頁(yè)1541包括寫入指令的目 的地地址。地址比較邏輯120可以將寫入指令的目的地地址的表示與對(duì)應(yīng)于頁(yè)151的存 儲(chǔ)寄存器121中所存儲(chǔ)的地址的表示相比較。例如,地址比較邏輯120可以確定與寫入指 令的目的地地址相對(duì)應(yīng)的偏移量小于或等于存儲(chǔ)在與頁(yè)151的最后寫入地址相對(duì)應(yīng)的存 儲(chǔ)寄存器121中的偏移量。如果被執(zhí)行,則寫入指令將蓋寫頁(yè)151中的所存儲(chǔ)數(shù)據(jù)中的一 些。例如,作為目標(biāo)的要蓋寫的所存儲(chǔ)數(shù)據(jù)可以包括有效載荷數(shù)據(jù)的數(shù)據(jù)指示符類型。如 果數(shù)據(jù)指示符類型被蓋寫,則有效載荷數(shù)據(jù)可能被錯(cuò)誤地標(biāo)記為例如通常不受保護(hù)的元數(shù) 據(jù),并且因此有效載荷數(shù)據(jù)可能受到攻擊。
[0034] 如果確定目的地地址小于或等于由存儲(chǔ)寄存器121中存儲(chǔ)的偏移量所表示的地 址,則地址比較邏輯120可以觸發(fā)頁(yè)擦除邏輯122以擦除頁(yè)154。頁(yè)151的擦除可以保證 存儲(chǔ)在該頁(yè)中的數(shù)字內(nèi)容將不會(huì)受到未經(jīng)授權(quán)的訪問(wèn)。在一實(shí)施例中,在擦除以后,頁(yè)151 可以被留為空白。
[0035] 如果所接收的寫入指令的目的地地址大于存儲(chǔ)寄存器121中所存儲(chǔ)的地址,則寫 入指令可以被執(zhí)行,例如附加的數(shù)據(jù)可以被寫入頁(yè)151,例如頁(yè)151的未被寫入的部分。
[0036] 頁(yè)15V154、…、154n的內(nèi)容可以通過(guò)MCH110被提供給解碼器180以用于解碼, 并且經(jīng)解碼的數(shù)據(jù)例如可以作為視頻、音頻或其他專有內(nèi)容被輸出。在攻擊場(chǎng)景中,頁(yè)151 可以被擦除并被解碼為噪聲,并且可以作為噪聲被輸出,其中該噪聲可用于指示數(shù)字內(nèi)容 162已經(jīng)被攻擊。
[0037] 現(xiàn)在轉(zhuǎn)向圖2,所示是根據(jù)本發(fā)明的另一實(shí)施例的系統(tǒng)200的一部分的框圖。如 圖2所示,系統(tǒng)200可以包括各個(gè)組件,包括可耦合到存儲(chǔ)器控制器中樞(MCH) 222的處理 器210。處理器210可以是可包括核211(^211^、…、211n的多核處理器。處理器210還可 以包括解密邏輯212以解密經(jīng)加密的數(shù)字內(nèi)容。
[0038] MCH222可以耦合到存儲(chǔ)器220,比如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)隨機(jī)存取 存儲(chǔ)器(SRAM)或另一類型的存儲(chǔ)器。MCH222可以包括內(nèi)容存儲(chǔ)邏輯224和保護(hù)邏輯226, 該保護(hù)邏輯226可以包括地址存儲(chǔ)邏輯228、地址比較邏輯230和頁(yè)擦除邏輯232。MCH222 還可以包括一個(gè)或多個(gè)存儲(chǔ)寄存器、…、242 n,每個(gè)寄存器用于將存儲(chǔ)器220中的 頁(yè)的地址存儲(chǔ)為例如自相應(yīng)頁(yè)的初始地址的偏移量。
[0039] 存儲(chǔ)器220可以被劃分成一個(gè)或多個(gè)頁(yè)240^24(^、…、240η。在一實(shí)施例中,每 個(gè)頁(yè)可以為相同的容量,例如大致4千字節(jié)(kB)。在另一實(shí)施例中,頁(yè)中的一些可以在容量 方面不同于存儲(chǔ)器220內(nèi)的其他頁(yè)。
[0040] 存儲(chǔ)器220可以通過(guò)MCH222耦合到解碼器280,該解碼器280可以被配置為在存 儲(chǔ)在存儲(chǔ)器220中的數(shù)據(jù)(例如有效載荷數(shù)據(jù))已經(jīng)被存儲(chǔ)在頁(yè)240^24(^、…、240 n中以后 對(duì)所述數(shù)據(jù)進(jìn)行解碼。
[0041] 在操作中,處理器210可以接收經(jīng)加密的數(shù)字內(nèi)容260并且解密邏輯212可以 對(duì)經(jīng)加密的數(shù)字內(nèi)容260解密以產(chǎn)生(未加密的)數(shù)字內(nèi)容。存儲(chǔ)器管理控制器222內(nèi)的 內(nèi)容存儲(chǔ)邏輯224可以將數(shù)字內(nèi)容解析成一個(gè)或多個(gè)部分,例如每個(gè)部分對(duì)應(yīng)于頁(yè)240。、 24〇i、…、24(^之一。在一些實(shí)施例中,這些部分可以為相同大小。在其他實(shí)施例中,至少 一個(gè)部分可以在大小方面不同于其他部分中的至少一個(gè)部分,其中每個(gè)部分的大小被確定 為頁(yè)240^24(^、…、240 n中相應(yīng)的一個(gè)頁(yè)。內(nèi)容存儲(chǔ)邏輯224可以將每個(gè)部分存儲(chǔ)到相應(yīng) 頁(yè) 24(^24(^、…、240n 中。
[0042] 存儲(chǔ)器管理控制器222的保護(hù)邏輯226內(nèi)的地址存儲(chǔ)邏輯228可以將每個(gè)頁(yè) 240^24(^、…、240 n內(nèi)的最后寫入存儲(chǔ)器位置的相應(yīng)地址存儲(chǔ)到相應(yīng)的存儲(chǔ)寄存器242。、 242i、…、242"中。在一實(shí)施例中,每個(gè)地址可以被存儲(chǔ)為自相應(yīng)頁(yè)24(^24(^、…、240"的 初始地址的相應(yīng)偏移量。
[0043] 處理器210可以接收程序指令270。程序指令270之一可以是寫入指令,其針對(duì)處 于頁(yè)24(^24(^、…、240 n之一內(nèi)的目的地地址。例如,寫入指令可以具有頁(yè)240。內(nèi)的目的 地地址。
[0044] 地址比較邏輯230可以將寫入指令的目的地地址與包括該目的地地址的相應(yīng)頁(yè) 的存儲(chǔ)寄存器(例如存儲(chǔ)寄存器242J中所存儲(chǔ)的地址相比較。例如,與該目的地地址相對(duì) 應(yīng)的偏移量可以被確定并與存儲(chǔ)寄存器24?中所存儲(chǔ)的最后寫入偏移量相比較。如果地址 比較邏輯230確定目的地地址小于或等于由存儲(chǔ)在存儲(chǔ)寄存器240。中的偏移量表示的地 址,則寫入指令在被執(zhí)行的情況下將蓋寫頁(yè)24(^中所存儲(chǔ)的數(shù)據(jù)中的一些。因此,地址比 較邏輯230可以觸發(fā)頁(yè)擦除邏輯232擦除頁(yè)24(V頁(yè)24(^的擦除可以保證:之前存儲(chǔ)在該 頁(yè)中的數(shù)字內(nèi)容將不會(huì)受到未經(jīng)授權(quán)的訪問(wèn),該未經(jīng)授權(quán)的訪問(wèn)例如可能通過(guò)蓋寫數(shù)據(jù)類 型指示符來(lái)進(jìn)行,其中該數(shù)據(jù)類型指示符在該蓋寫以前指示跟在后面的是有效載荷數(shù)據(jù)。
[0045] 如果地址比較邏輯230確定寫入指令的目的地地址如通過(guò)將目的地地址與存儲(chǔ) 寄存器中的所存儲(chǔ)的最后寫入地址相比較(例如通過(guò)將所存儲(chǔ)的偏移量與同目的地地址相 對(duì)應(yīng)的偏移量相比較)所確定的那樣處于最后寫入地址之后,則可以對(duì)寫入指令的目的地 地址執(zhí)行該寫入。由于目的地地址之前還未被寫入,因此沒(méi)有數(shù)據(jù)將會(huì)由于執(zhí)行寫入指令 而被蓋寫。
[0046] 轉(zhuǎn)到圖3,所示為根據(jù)本發(fā)明實(shí)施例的要存儲(chǔ)在存儲(chǔ)器中的數(shù)字內(nèi)容的框圖。經(jīng)解 密的數(shù)字內(nèi)容310可以包括第一數(shù)據(jù)類型指示符302、第一數(shù)據(jù)304、第二數(shù)據(jù)類型指示符 306和第二數(shù)據(jù)308。在一實(shí)施例中,第一數(shù)據(jù)類型指示符302可以指示:第一數(shù)據(jù)304為 元數(shù)據(jù),第二數(shù)據(jù)類型指示符306可以指示:第二數(shù)據(jù)308為有效載荷數(shù)據(jù)。
[0047] 存儲(chǔ)器320可以包括清除解鎖頁(yè)322。存儲(chǔ)器管理控制器(未示出)內(nèi)的內(nèi)容存儲(chǔ) 邏輯可以將數(shù)字內(nèi)容310的一部分寫入到頁(yè)322,從而產(chǎn)生包含數(shù)字內(nèi)容310的一部分的 頁(yè)324。在對(duì)頁(yè)322的寫入("第一寫入")完成以后,與頁(yè)324內(nèi)的最后寫入數(shù)據(jù)地址相對(duì) 應(yīng)的最后寫入偏移量可以存儲(chǔ)在相應(yīng)的存儲(chǔ)寄存器(未示出)。在第一寫入完成以后,頁(yè)324 可以被鎖定以防止對(duì)頁(yè)324的另一寫入。
[0048] 隨后,如果接收到對(duì)頁(yè)324的附加寫入指令,則與該附加寫入指令的目的地地址 相對(duì)應(yīng)的偏移量可以與存儲(chǔ)在與頁(yè)324相對(duì)應(yīng)的存儲(chǔ)寄存器中的最后寫入偏移量相比較。 如果所述附加的寫入指令的目的地地址處于頁(yè)324中的在先寫入的結(jié)尾以后(例如附加寫 入指令的目的地地址偏移量處于所存儲(chǔ)的最后寫入偏移量之后),則被鎖定的頁(yè)324可以被 解鎖(例如被解鎖的頁(yè)325)并且所述附加的寫入指令可以被執(zhí)行以寫入附加的數(shù)據(jù)來(lái)產(chǎn)生 頁(yè)326,該頁(yè)326可以在所述附加的寫入指令被執(zhí)行以后被鎖定。所存儲(chǔ)的最后寫入偏移量 可以在相應(yīng)的存儲(chǔ)寄存器中被更新以反映存儲(chǔ)在頁(yè)326中的附加數(shù)據(jù)。
[0049] 如果與附加寫入指令的目的地地址相關(guān)聯(lián)的偏移量同最后寫入偏移量的比較指 示:附加寫入指令針對(duì)已經(jīng)被寫入的頁(yè)地址,則該頁(yè)的內(nèi)容可以被擦除(轉(zhuǎn)儲(chǔ)清除)以產(chǎn)生 (干凈的)頁(yè)328。最后寫入偏移量可以被復(fù)位為0并且存儲(chǔ)在與頁(yè)328相對(duì)應(yīng)的存儲(chǔ)寄存 器中。頁(yè)326中的所存儲(chǔ)數(shù)字內(nèi)容的擦除可以保證:之前存儲(chǔ)的數(shù)字內(nèi)容將不會(huì)被破壞。
[0050] 經(jīng)擦除的頁(yè)可以被解鎖以實(shí)現(xiàn)對(duì)頁(yè)328的隨后寫入,這將產(chǎn)生頁(yè)330,該頁(yè)330又 可以在該隨后的寫入被執(zhí)行以后被鎖定。所存儲(chǔ)的偏移量可以在頁(yè)330的相應(yīng)存儲(chǔ)寄存器 中被更新以反映該頁(yè)的由于隨后的寫入被占據(jù)的部分。
[0051] 轉(zhuǎn)到圖4,所示是根據(jù)本發(fā)明的實(shí)施例的保護(hù)數(shù)字內(nèi)容的方法的流程圖。在框420 開(kāi)始,傳入的經(jīng)加密的數(shù)字內(nèi)容可以由例如安全增強(qiáng)處理器或者由多核處理器來(lái)解密。
[0052] 繼續(xù)進(jìn)行到框404,經(jīng)解密的數(shù)字內(nèi)容可以被例如存儲(chǔ)器控制器中樞解析成各部 分。例如,每個(gè)部分的大小可以被確定為存儲(chǔ)在例如隔離存儲(chǔ)器區(qū)域(IMR)或系統(tǒng)存儲(chǔ)器 (例如DRAM)的頁(yè)中,或者在一個(gè)實(shí)施例中,每個(gè)頁(yè)可以具有相同的存儲(chǔ)容量(例如4kB),或 者在另一實(shí)施例中,頁(yè)中一些的存儲(chǔ)容量可以不同于其他頁(yè)的存儲(chǔ)容量。頁(yè)中的一些可以 在數(shù)字內(nèi)容被存儲(chǔ)以后被部分地填充。
[0053] 前進(jìn)到框406,每個(gè)部分可以被存儲(chǔ)到IMR或系統(tǒng)存儲(chǔ)器的相應(yīng)頁(yè)中。移動(dòng)到框 408,每頁(yè)內(nèi)的最后寫入存儲(chǔ)器位置的最后寫入偏移量(對(duì)應(yīng)于頁(yè)內(nèi)的地址)可以存儲(chǔ)在相 應(yīng)的寄存器中,該相應(yīng)的寄存器可以位于例如存儲(chǔ)器控制中樞中或者諸如系統(tǒng)存儲(chǔ)器之類 的存儲(chǔ)器中。
[0054] 前進(jìn)到410,寫入指令可以被(處理器)接收,該寫入指令具有頁(yè)之一內(nèi)的要向其存 儲(chǔ)數(shù)字內(nèi)容部分的目的地地址。繼續(xù)進(jìn)行到判定菱形框412,可以由處理器例如通過(guò)與所 存儲(chǔ)的最后寫入偏移量相比較來(lái)作出判斷:寫入指令的目的地地址是否小于或等于相應(yīng)頁(yè) 內(nèi)的最后寫入存儲(chǔ)器位置地址。如果目的地地址大于最后寫入存儲(chǔ)器位置地址,則前進(jìn)到 框414,寫入指令可以被執(zhí)行,例如寫入指令致使附加的數(shù)據(jù)被寫入相應(yīng)頁(yè)內(nèi)的空白存儲(chǔ)器 位置。前進(jìn)到框418,相應(yīng)頁(yè)的所存儲(chǔ)的最后寫入偏移量可以被更新以反映附加的所存儲(chǔ)的 數(shù)據(jù),并且繼續(xù)進(jìn)行到框420,該方法結(jié)束。如果目的地地址小于或等于最后寫入存儲(chǔ)器位 置地址,則在框416,該頁(yè)可以被擦除。移動(dòng)到框417,存儲(chǔ)在相應(yīng)存儲(chǔ)寄存器中的最后寫入 偏移量可以被復(fù)位為例如〇以反映被擦除的頁(yè)?;氐娇?14,寫入指令可以被執(zhí)行。前進(jìn)到 框418,相應(yīng)頁(yè)的所存儲(chǔ)的最后寫入偏移量可以被更新以反映附加的所存儲(chǔ)的數(shù)據(jù),并且繼 續(xù)進(jìn)行到框420,該方法結(jié)束。
[0055] 圖4的方法可以由硬件、軟件、固件或其組合來(lái)執(zhí)行。盡管在圖4的實(shí)施例中是以 高級(jí)別示出的,但是能夠理解,本發(fā)明的范圍不受此限制。
[0056] 各實(shí)施例可在許多不同的系統(tǒng)中實(shí)現(xiàn)。例如,實(shí)施例可在諸如多核處理器之類的 處理器中實(shí)現(xiàn)?,F(xiàn)在參照?qǐng)D5,圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的處理器核的框圖。如圖 5所示,處理器核500可以是多核處理器中的一個(gè)核,并且被示為多級(jí)流水線化的亂序處理 器。
[0057] 如圖5所示,核500包括前端單元510,前端單元510可用于取得將被執(zhí)行的指令 并將這些指令準(zhǔn)備好以供以后在處理器中使用。例如,前端單元510可包括獲取單元501、 指令高速緩存503和指令解碼器505。在某些實(shí)現(xiàn)中,前端單元510可進(jìn)一步包括跟蹤高速 緩存、微碼存儲(chǔ)以及微操作存儲(chǔ)。獲取單元501可(例如,從存儲(chǔ)器或指令高速緩存503)獲 取宏指令并將它們饋送至指令解碼器505以將它們解碼為原語(yǔ),即用于通過(guò)處理器執(zhí)行的 微操作。
[0058] 亂序(000)引擎515耦合在前端單元510與執(zhí)行單元520之間,亂序引擎515可 用于接收微指令并將它們準(zhǔn)備好以供執(zhí)行。更具體地,〇〇〇引擎515可包括多個(gè)緩沖器,用 于對(duì)微指令流重新排序并分配執(zhí)行所需的各種資源,以及例如通過(guò)使用該引擎的重命名邏 輯來(lái)提供邏輯寄存器到各個(gè)寄存器文件(諸如寄存器文件530和擴(kuò)展寄存器文件535)內(nèi)的 存儲(chǔ)位置上的重命名。寄存器文件530可包括用于整數(shù)和浮點(diǎn)操作的單獨(dú)的寄存器文件。 擴(kuò)展寄存器文件535可提供向量尺寸單元的存儲(chǔ),例如,每寄存器256或512位。
[0059] 在執(zhí)行單元520中可存在多種資源,包括例如多種整數(shù)、浮點(diǎn)和單指令多數(shù)據(jù) (SIMD)邏輯單元等其它專門硬件。例如,此類執(zhí)行單元可包括一個(gè)或多個(gè)算術(shù)邏輯單元 (ALU) 522。當(dāng)然,還可存在諸如乘法累加單元之類的其他執(zhí)行單元等等。結(jié)果可以被提供 給隱退邏輯,該隱退邏輯可以實(shí)現(xiàn)在處理器的存儲(chǔ)器子系統(tǒng)560內(nèi)。例如包括執(zhí)行單元和 前端邏輯的各個(gè)處理器結(jié)構(gòu)可以耦合到存儲(chǔ)器子系統(tǒng)560。該存儲(chǔ)器子系統(tǒng)可提供處理器 結(jié)構(gòu)與存儲(chǔ)器層次的其他部分(例如芯片上或芯片外的高速緩存和系統(tǒng)存儲(chǔ)器)之間的接 口。如所看見(jiàn)那樣,各子系統(tǒng)具有各個(gè)組件,包括存儲(chǔ)器排序緩沖器(M0B)540。更具體地, M0B540可包括各種陣列和邏輯以接收與被執(zhí)行的指令相關(guān)聯(lián)的信息。然后,通過(guò)M0B540檢 查該信息以確定指令是否可以有效隱退并且結(jié)果數(shù)據(jù)是否被提交至處理器的架構(gòu)狀態(tài),或 阻止指令的正常隱退的一個(gè)或多個(gè)異常是否發(fā)生。當(dāng)然,M0B540可處理與隱退相關(guān)聯(lián)的其 他操作。
[0060] 如圖5所示,M0B540耦合至高速緩存550,在一個(gè)實(shí)施例中,該高速緩存550可以 是低級(jí)高速緩存(例如L1高速緩存)。存儲(chǔ)器子系統(tǒng)560還可包括集成存儲(chǔ)器控制器570 以提供與系統(tǒng)存儲(chǔ)器(在圖5中為了說(shuō)明方便而未示出)的通信。存儲(chǔ)器子系統(tǒng)560還可包 括存儲(chǔ)器執(zhí)行單元(MEU) 575,該存儲(chǔ)器執(zhí)行單元575處理各種操作,以發(fā)起存儲(chǔ)器請(qǐng)求并 且處理數(shù)據(jù)從存儲(chǔ)器的返回。例如,MEU575可以實(shí)施將數(shù)字內(nèi)容解析成各部分、將各部分 存儲(chǔ)到相應(yīng)的頁(yè)中、存儲(chǔ)每頁(yè)的最后寫入偏移量、以及確定寫入指令是否針對(duì)頁(yè)內(nèi)的包括 數(shù)字內(nèi)容的存儲(chǔ)器位置。如果寫入指令針對(duì)頁(yè)內(nèi)的存儲(chǔ)數(shù)字內(nèi)容的存儲(chǔ)器位置,則MEU575 可以擦除包括目的地存儲(chǔ)器位置的頁(yè),如在此參照本發(fā)明的實(shí)施例所描述的。
[0061] 從存儲(chǔ)器子系統(tǒng)560,可發(fā)生與更高級(jí)高速緩存、系統(tǒng)存儲(chǔ)器等等的數(shù)據(jù)通信。雖 然在圖5的實(shí)施例中用高級(jí)框圖示出,但應(yīng)理解本發(fā)明的范圍不限于此方面。例如,雖然圖 5的實(shí)現(xiàn)方式是參照亂序機(jī)、比如所謂的x86指令集架構(gòu)(ISA)的亂序機(jī)的,但本發(fā)明的范 圍在此方面不受限制。即,其他實(shí)施例可在以下處理器中實(shí)現(xiàn):順序處理器;諸如基于ARM 的處理器之類的精簡(jiǎn)指令集計(jì)算(RISC)處理器;或具有另一類型ISA的處理器,該另一類 型的ISA可經(jīng)由仿真引擎和相關(guān)聯(lián)的邏輯電路來(lái)仿真不同ISA的指令和操作。
[0062] 現(xiàn)在參考圖6,所示是根據(jù)本發(fā)明的實(shí)施例的處理器的框圖。如圖6所示,處理器 600可以是在核域610中包括多個(gè)核610a_610 n的多核處理器。在一個(gè)實(shí)施例中,每個(gè)核可 以包括存儲(chǔ)器執(zhí)行單元(未示出),其包括內(nèi)容存儲(chǔ)邏輯、地址存儲(chǔ)邏輯、地址比較邏輯和頁(yè) 擦除邏輯,如在此處在本發(fā)明的實(shí)施例中所描述的。如在圖6中進(jìn)一步示出的那樣,一個(gè)或 多個(gè)圖形處理單元(GPU^l^-eUu可以存在于圖形域612中。這些各個(gè)計(jì)算元件可經(jīng)由互 連615耦合到系統(tǒng)代理或非核部分620,非核部分620包括各個(gè)組件??梢钥闯觯呛?20 可以包括作為末級(jí)高速緩存的共享高速緩存器630。
[0063] 另外,非核部分可以包括集成存儲(chǔ)器控制器640和各個(gè)接口 650。在本發(fā)明的一些 實(shí)施例中,存儲(chǔ)器控制器640可以將經(jīng)解密的數(shù)字內(nèi)容解析成各部分,將這些部分存儲(chǔ)在 系統(tǒng)存儲(chǔ)器660的相應(yīng)頁(yè)中,并且存儲(chǔ)每個(gè)頁(yè)的最后寫入偏移量。根據(jù)本發(fā)明的實(shí)施例,存 儲(chǔ)器控制器640可以確定寫入指令是否具有將所述頁(yè)之一內(nèi)的數(shù)字內(nèi)容中的一些存儲(chǔ)到 的存儲(chǔ)器位置的目的地地址,并且如果是這樣,則可以擦除該頁(yè)。
[0064] 進(jìn)一步參考圖6,處理器600可(諸如經(jīng)由存儲(chǔ)器總線)與系統(tǒng)存儲(chǔ)器660進(jìn)行通 信。此外,通過(guò)接口 650,可連接到多種芯片外組件,諸如,外圍設(shè)備、大容量存儲(chǔ)器、等等。 盡管在圖6的實(shí)施例中利用此特定實(shí)現(xiàn)示出的,但是,本發(fā)明的范圍在這方面不受限制。 [0065] 現(xiàn)在參考圖7,所示是根據(jù)本發(fā)明的另一個(gè)實(shí)施例的多域處理器的框圖。如圖7的 實(shí)施例中所示,處理器700包括多個(gè)域。具體而言,核域710可以包括多個(gè)核71(^ - 710n, 圖形域720可以包括一個(gè)或多個(gè)圖形引擎,并且還可以存在系統(tǒng)代理域750。
[0066] 注意,盡管僅僅示出為具有三個(gè)域,但是能夠理解,本發(fā)明的范圍不在此方面受 限,并且在其他實(shí)施例中可以存在附加的域。例如,可以存在多個(gè)核域,每個(gè)核域包括至少 一個(gè)核。
[0067] 一般而言,每個(gè)核710還可以包括除了各個(gè)執(zhí)行單元之外的低級(jí)高速緩存和附加 的處理元件。各個(gè)核可以彼此耦合以及耦合到共享高速緩存存儲(chǔ)器,其由上一級(jí)高速緩存 (1^074(^- 740"的多個(gè)單元形成。在各個(gè)實(shí)施例中,LLC740可以在各個(gè)核、圖形引擎以及 各個(gè)媒體處理電路系統(tǒng)間共享??梢钥闯?,環(huán)形互連730因此將各個(gè)核耦合在一起,并且提 供各個(gè)核、圖形域720和系統(tǒng)代理電路系統(tǒng)750之間的互連。
[0068] 在圖7的實(shí)施例中,系統(tǒng)代理域750可以包括顯示控制器752,其可以提供對(duì)相關(guān) 聯(lián)的顯示器的控制和接口??蛇M(jìn)一步看出,系統(tǒng)代理域750可以包括功率控制單元755。
[0069] 在圖7中可進(jìn)一步看出,處理器700還可以包括集成存儲(chǔ)器控制器(頂〇770,其可 以提供到諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)之類的系統(tǒng)存儲(chǔ)器(未示出)的接口。根據(jù)本發(fā) 明的實(shí)施例,頂C770可以將經(jīng)解密的數(shù)字內(nèi)容解析成各部分,將這些部分存儲(chǔ)在系統(tǒng)存儲(chǔ) 器的相應(yīng)頁(yè)中,并且存儲(chǔ)每個(gè)頁(yè)的最后寫入偏移量。根據(jù)本發(fā)明的實(shí)施例,頂C770可以確 定寫入指令是否具有將所述頁(yè)之一內(nèi)的數(shù)字內(nèi)容中的一些存儲(chǔ)到的存儲(chǔ)器位置的目的地 地址(例如通過(guò)將目的地地址的表示與該頁(yè)的最后寫入偏移量相比較),并且如果是這樣, 則可以擦除該頁(yè)。
[0070] 可以存在多個(gè)接口 780。- 780n以實(shí)現(xiàn)處理器與其他電路系統(tǒng)之間的互連。例如, 在一個(gè)實(shí)施例中,可以提供至少一個(gè)直接媒體接口(DMI)接口、以及一個(gè)或多個(gè)外圍組件互 連快速(PCI EXpresSTM(PCIeTM))接口。另外,為了提供諸如附加處理器或其他電路系統(tǒng)之 類的其他代理之間的通信,還可以提供根據(jù)Intel ?快速路徑互連(QPI)協(xié)議的一個(gè)或多 個(gè)接口。雖然在圖7的實(shí)施例中以這一高級(jí)框圖示出,但應(yīng)理解本發(fā)明的范圍不限于此方 面。
[0071] 參考圖8,示出了包括多個(gè)核的處理器的實(shí)施例。處理器800包括任何處理器或 處理器件,諸如微處理器、嵌入式處理器、數(shù)字信號(hào)處理器(DSP)、網(wǎng)絡(luò)處理器、手持式處理 器、應(yīng)用處理器、協(xié)同處理器、片上系統(tǒng)(S0C)、或用于執(zhí)行代碼的其它器件。在一個(gè)實(shí)施例 中,處理器800包括至少兩個(gè)核--核801和802,它們可包括非對(duì)稱核或?qū)ΨQ核(所示實(shí)施 例)。然而,處理器800可包括可以是對(duì)稱的或非對(duì)稱的任何數(shù)量的處理元件。
[0072] 在一個(gè)實(shí)施例中,處理元件是指支持軟件線程的硬件或邏輯。硬件處理元件的示 例包括:線程單元、線程槽、線程、處理單元、上下文、上下文單元、邏輯處理器、硬件線程、核 和/或任何其它元件,這些元件能夠保持處理器的諸如執(zhí)行狀態(tài)或架構(gòu)狀態(tài)之類的狀態(tài)。 換言之,在一個(gè)實(shí)施例中,處理元件指的是能夠獨(dú)立地與代碼(諸如軟件線程、操作系統(tǒng)、應(yīng) 用或其它代碼)相關(guān)聯(lián)的任何硬件。典型地,物理處理器指的是集成電路,該集成電路潛在 地包括任何數(shù)量的其它處理元件(諸如核或硬件線程)。
[0073] 核通常指的是位于集成電路上的能夠維持獨(dú)立體系結(jié)構(gòu)狀態(tài)的邏輯,其中每個(gè)獨(dú) 立維持的體系結(jié)構(gòu)狀態(tài)與至少一些專用的執(zhí)行資源相關(guān)聯(lián)。與核相反,硬件線程典型地表 示位于集成電路上的能夠維持獨(dú)立體系結(jié)構(gòu)狀態(tài)的任何邏輯,其中被獨(dú)立維持的體系結(jié)構(gòu) 狀態(tài)共享對(duì)執(zhí)行資源的訪問(wèn)。如可以看到,當(dāng)某些資源被共享而其它資源專屬于體系結(jié)構(gòu) 狀態(tài)時(shí),硬件線程與核的命名之間的界限交迭。不過(guò),核和硬件線程通常被操作系統(tǒng)視為單 獨(dú)的邏輯處理器,其中操作系統(tǒng)能夠單獨(dú)地調(diào)度每個(gè)邏輯處理器上的操作。
[0074] 如圖8所示的物理處理器800包括兩個(gè)核--核801和802。在此,核801和802 被視為對(duì)稱核,即這些核具有相同的配置、功能單元和/或邏輯。在另一個(gè)實(shí)施例中,核801 包括無(wú)序處理器核,而核802包括有序處理器核。然而,核801和802可從任何類型的核中 單獨(dú)地選擇,諸如原生核、受軟件管理的核、適于執(zhí)行原生指令集體系結(jié)構(gòu)(ISA)的核、適于 執(zhí)行轉(zhuǎn)換ISA的核、協(xié)同設(shè)計(jì)的核或其它已知核。不過(guò),為進(jìn)一步討論,以下將進(jìn)一步詳細(xì) 描述在核801中示出的功能單元,因?yàn)楹?02中的單元以類似方式操作。
[0075] 如所描繪,核801包括兩個(gè)硬件線程801a和801b,兩個(gè)硬件線程801a和801b也 可稱為硬件線程槽801a和801b。因此,在一個(gè)實(shí)施例中,諸如操作系統(tǒng)之類的軟件實(shí)體潛 在地將處理器800視為四個(gè)獨(dú)立的處理器,即能夠并發(fā)地執(zhí)行四個(gè)軟件線程的四個(gè)邏輯處 理器或處理元件。如上所述,第一線程與體系結(jié)構(gòu)狀態(tài)寄存器801a相關(guān)聯(lián),第二線程與體 系結(jié)構(gòu)狀態(tài)寄存器801b相關(guān)聯(lián),第三線程可與體系結(jié)構(gòu)狀態(tài)寄存器802a相關(guān)聯(lián),并且第四 線程可與體系結(jié)構(gòu)狀態(tài)寄存器802b相關(guān)聯(lián)。在此,體系結(jié)構(gòu)狀態(tài)寄存器(801a、801b、802a 和802b)中的每一個(gè)可被稱為如上所述的處理元件、線程槽、或線程單元。如圖所示,體系結(jié) 構(gòu)狀態(tài)寄存器801a在體系結(jié)構(gòu)狀態(tài)寄存器801b中被復(fù)制,因此能夠針對(duì)邏輯處理器801a 和邏輯處理器801b存儲(chǔ)單獨(dú)的體系結(jié)構(gòu)狀態(tài)/上下文。在核801中,也可復(fù)制用于線程 801a和801b的其它較小資源,諸如指令指針以及分配器和重命名塊830中的重命名邏輯。 諸如重排序器/隱退單元835中的重排序緩沖器、ILTB820、載入/存儲(chǔ)緩沖器、以及隊(duì)列之 類的一些資源可通過(guò)分區(qū)來(lái)共享。諸如通用內(nèi)部寄存器、頁(yè)表基本寄存器、低級(jí)數(shù)據(jù)高速緩 存和數(shù)據(jù)TLB815、執(zhí)行單元840、以及無(wú)序單元835的部分之類的其它資源潛在地被完全共 享。
[0076] 處理器800通常包括其它資源,這些其它資源可被完全共享、通過(guò)分區(qū)被共享、或 由處理元件指定/專屬于處理元件。在圖8中,示出了具有處理器的說(shuō)明性的邏輯單元/ 資源的純示例性處理器的實(shí)施例。注意,處理器可包括或省去這些功能單元中的任意功能 單元,且可包括未描繪的任何其它已知的功能單元、邏輯或固件。如圖所示,核801包括簡(jiǎn) 化的、代表性的無(wú)序(〇〇〇)處理器核。但是有序處理器可用于不同實(shí)施例中。〇〇〇核包括用 于預(yù)測(cè)要被執(zhí)行/進(jìn)行的分支的分支目標(biāo)緩沖器820以及用于存儲(chǔ)指令的地址轉(zhuǎn)換條目的 指令轉(zhuǎn)換緩沖器(I-TLB) 820。
[0077] 核801進(jìn)一步包括耦合至取出單元820以用于解碼所取出的元素的解碼模塊825。 在一個(gè)實(shí)施例中,取出邏輯包括分別與線程槽801a、801b相關(guān)聯(lián)的單獨(dú)定序器。通常,核 801與第一 ISA相關(guān)聯(lián),該第一 ISA定義/指定能在處理器800上執(zhí)行的指令。通常作為第 一 ISA-部分的機(jī)器碼指令包括該指令的一部分(稱為操作碼),該指令引用/指定待執(zhí)行 的指令或操作。解碼邏輯825包括由這些指令的操作碼來(lái)識(shí)別這些指令并在流水線上傳遞 所解碼的指令以進(jìn)行如第一 ISA所定義的處理的電路。例如,在一個(gè)實(shí)施例中,解碼器825 包括被設(shè)計(jì)成或適于識(shí)別諸如事務(wù)性指令之類的特定指令的邏輯。作為解碼器825識(shí)別的 結(jié)果,體系結(jié)構(gòu)或核801采取特定的、預(yù)定的動(dòng)作以執(zhí)行與適當(dāng)指令相關(guān)聯(lián)的任務(wù)。重要的 是,注意到本文描述的任何任務(wù)、框、操作和方法可響應(yīng)于單個(gè)或多個(gè)指令而被執(zhí)行;其中 一些可以是新的或者舊的指令。
[0078] 在一個(gè)示例中,分配器和重命名器塊830包括用于保留資源(諸如用于寫入指令 處理結(jié)果的寄存器文件)的分配器。然而,線程801a和801b潛在地能夠進(jìn)行無(wú)序執(zhí)行,其 中分配器和重命名器塊830還保留其它資源(諸如用于跟蹤指令結(jié)果的重排序緩沖器)。單 元830還可包括寄存器重命名器,用于將程序/指令引用寄存器重命名為處理器800內(nèi)部 的其它寄存器。重排序/隱退單元835包括諸如上述的重排序緩沖器、加載緩沖器和存儲(chǔ) 緩沖器之類的組件,以支持無(wú)序執(zhí)行的指令的無(wú)序執(zhí)行和稍后的有序隱退。
[0079] 在一個(gè)實(shí)施例中,調(diào)度器和執(zhí)行單元塊840包括調(diào)度器單元,用于調(diào)度執(zhí)行單元 上的指令/操作。例如,在具有可用浮點(diǎn)執(zhí)行單元的執(zhí)行單元的端口上調(diào)度浮點(diǎn)指令。也 可包括與執(zhí)行單元相關(guān)聯(lián)的寄存器文件,以存儲(chǔ)信息指令處理結(jié)果。示例性的執(zhí)行單元包 括:浮點(diǎn)執(zhí)行單元、整數(shù)執(zhí)行單元、跳躍執(zhí)行單元、加載執(zhí)行單元、存儲(chǔ)執(zhí)行單元以及其它已 知的執(zhí)行單元。
[0080] 較低級(jí)的數(shù)據(jù)高速緩存和數(shù)據(jù)轉(zhuǎn)換緩沖器(D-TLB)850耦合至執(zhí)行單元840。數(shù)據(jù) 高速緩存用于存儲(chǔ)最近使用/操作的元素(諸如數(shù)據(jù)操作數(shù)),這些元素在存儲(chǔ)器一致性狀 態(tài)下潛在地被保持。D-TLB用于存儲(chǔ)最近的虛擬到物理地址轉(zhuǎn)換/線性到物理地址轉(zhuǎn)換。
[0081] 在此,核801和802共享對(duì)較高級(jí)或進(jìn)一步的高速緩存810的訪問(wèn),較高級(jí)或進(jìn) 一步的高速緩存110用于緩存最近取出的元素。注意,較高級(jí)或進(jìn)一步指的是高速緩存級(jí) 增加或進(jìn)一步遠(yuǎn)離執(zhí)行單元。在一個(gè)實(shí)施例中,較高級(jí)高速緩存810是最后級(jí)數(shù)據(jù)高速緩 存--處理器800上的存儲(chǔ)器層次中的最后級(jí)高速緩存,諸如第二或第三級(jí)數(shù)據(jù)高速緩存。 然而,較高級(jí)高速緩存810不限于此,因?yàn)樗膳c指令高速緩存相關(guān)聯(lián)或包括指令高速緩 存。替代地,跟蹤高速緩存--一種類型的指令高速緩存--可耦合在解碼器825之后,用 于存儲(chǔ)最近解碼的跟蹤。
[0082] 在所描繪的配置中,處理器800還包括控制器870。根據(jù)本發(fā)明的實(shí)施例,控制器 870可以將經(jīng)解密的數(shù)字內(nèi)容解析成各部分并且將所述各部分存儲(chǔ)在系統(tǒng)存儲(chǔ)器875的相 應(yīng)頁(yè)中。根據(jù)本發(fā)明的實(shí)施例,控制器870可以確定寫入指令是否具有將所述頁(yè)之一內(nèi)的 數(shù)字內(nèi)容中的一些存儲(chǔ)到的存儲(chǔ)器位置的目的地地址(例如通過(guò)將目的地地址的表示與該 頁(yè)的最后寫入偏移量相比較),并且如果是這樣,則可以擦除該頁(yè)。
[0083] 在該場(chǎng)景中,總線接口 805與處理器800外部的設(shè)備通信,處理器800外部的設(shè)備 諸如系統(tǒng)存儲(chǔ)器875、芯片組(通常包括存儲(chǔ)器控制器中樞以連接到存儲(chǔ)器875以及I/O控 制器中樞以連接到外圍設(shè)備)、存儲(chǔ)器控制器中樞、北橋、或其它集成電路(未示出)。并且在 該場(chǎng)景中,總線805可包括任何已知的互連,諸如多點(diǎn)總線、點(diǎn)對(duì)點(diǎn)互連、串行互連、并行總 線、一致性(例如高速緩存一致性)總線、分層協(xié)議體系結(jié)構(gòu)、差分總線以及GTL總線。
[0084] 存儲(chǔ)器875可專屬于處理器800或與系統(tǒng)中的其它器件共享。存儲(chǔ)器875的類型 的常見(jiàn)示例包括DRAM、SRAM、非易失性存儲(chǔ)器(NV存儲(chǔ)器)以及其它已知的存儲(chǔ)設(shè)備。注意, 器件880可包括耦合到存儲(chǔ)器控制器中樞的圖形加速器、處理器或卡,耦合到I/O控制器中 樞的數(shù)據(jù)存儲(chǔ),無(wú)線收發(fā)器,閃存器件,音頻控制器,網(wǎng)絡(luò)控制器,或其它已知器件。
[0085] 注意,在所描繪的實(shí)施例中,控制器870被示為處理器800的一部分。最近,隨著 更多的邏輯和器件被集成在單個(gè)管芯上(如S0C),這些器件中的每一個(gè)可被合并在處理器 800上。例如,在一個(gè)實(shí)施例中,存儲(chǔ)器控制器中樞870與處理器800處于同一封裝和/或 管芯上。在此,核的一部分(核上部分,on-core portion)包括與諸如存儲(chǔ)器875和圖形器 件880之類的其它器件進(jìn)行接口的控制器870。包括用于與此類器件進(jìn)行接口的控制器和 互連的該配置通常被稱為核上(或非核(un-core)配置)。作為示例,總線接口 805包括環(huán) 形互連,環(huán)形互連具有用于與存儲(chǔ)器875進(jìn)行接口的存儲(chǔ)器控制器以及用于與圖形處理器 880進(jìn)行接口的圖形控制器。然而,在SOC環(huán)境中,諸如網(wǎng)絡(luò)接口、協(xié)同處理器、存儲(chǔ)器875、 圖形處理器880以及任何其它已知計(jì)算機(jī)器件/接口之類的甚至更多的器件可被集成到單 個(gè)管芯或集成電路上,以提供具有高功能性和低功耗的小外形規(guī)格。
[0086] 各實(shí)施例可以以許多不同的系統(tǒng)類型來(lái)實(shí)現(xiàn)。現(xiàn)在參考圖9,所示是根據(jù)本發(fā)明 的實(shí)施例的系統(tǒng)的框圖。如圖9所示,多處理器系統(tǒng)900是點(diǎn)對(duì)點(diǎn)互連系統(tǒng),并包括通過(guò)點(diǎn) 對(duì)點(diǎn)互連950而耦合的第一處理器970和第二處理器980。如圖9所示,處理器970和980 中的每一個(gè)可以是多核處理器,包括第一和第二處理器核(即,處理器核974a和974b以及 處理器核984a和984b),雖然潛在地更多核可以存在于處理器中。這些處理器中的每個(gè)可 以包括相應(yīng)的高速緩存。第一處理器970和第二處理器980可以分別通過(guò)P-P互連952和 954來(lái)耦合到芯片集990。如圖9所示,芯片集990包括P-P接口 994和998。
[0087] 仍參考圖9,第一處理器970還包括存儲(chǔ)器控制器中樞(MCH) 972和點(diǎn)對(duì)點(diǎn)(P-P) 接口 976和978。類似地,第二處理器980包括MCH982和P-P接口 986和988。如圖9所 示,MCH972和982將處理器耦合到相應(yīng)的存儲(chǔ)器,即存儲(chǔ)器932和存儲(chǔ)器934,這些存儲(chǔ)器 可以是本地附連到相應(yīng)處理器的系統(tǒng)存儲(chǔ)器(諸如,DRAM)的諸個(gè)部分。根據(jù)本發(fā)明的實(shí)施 例,MCH972和982中的每個(gè)可以將經(jīng)解密的數(shù)字內(nèi)容解析成各部分并且將所述各部分存儲(chǔ) 在相應(yīng)存儲(chǔ)器(932或934)的相應(yīng)頁(yè)中。根據(jù)本發(fā)明的實(shí)施例,MCH972和982可以確定寫入 指令是否具有將所述頁(yè)之一內(nèi)的數(shù)字內(nèi)容中的一些存儲(chǔ)到的存儲(chǔ)器位置的目的地地址(例 如通過(guò)將目的地地址的表示與該頁(yè)的最后寫入偏移量相比較),并且如果是這樣,則可以擦 除該頁(yè)。
[0088] 此外,芯片集990包括接口 992,以通過(guò)P-P互連939將芯片集990與高性能圖形 引擎938耦合。芯片集990又可以通過(guò)接口 996耦合到第一總線916。如圖9所示,各種輸 入/輸出(I/O)設(shè)備914以及總線橋接器918可以耦合到第一總線916,總線橋接器918將 第一總線916耦合到第二總線920。在一個(gè)實(shí)施例中,各個(gè)設(shè)備可以耦合到第二總線920, 包括,例如,鍵盤/鼠標(biāo)922、通信設(shè)備926和數(shù)據(jù)存儲(chǔ)單元928 (諸如磁盤驅(qū)動(dòng)器或其他大 容量存儲(chǔ)設(shè)備)。進(jìn)一步地,音頻1/0924可以耦合到第二總線920。各實(shí)施例可以被合并到 其他類型的系統(tǒng)中,包括諸如智能蜂窩電話、Ultrabook?、平板計(jì)算機(jī)、上網(wǎng)本等等之類的 移動(dòng)設(shè)備。
[0089] 即,在其他實(shí)施例中,處理器架構(gòu)可包括仿真特征,使得處理器可執(zhí)行稱為源ISA 的第一 ISA的指令,其中該架構(gòu)是根據(jù)第二ISA的,該第二ISA被稱為目標(biāo)ISA。一般而言, 包括0S和應(yīng)用程序的軟件被編譯至源ISA,而硬件實(shí)現(xiàn)針對(duì)給定硬件實(shí)現(xiàn)方式而特別設(shè)計(jì) 的具有特殊性能和/或能源效率特征的目標(biāo)ISA。
[0090] 參考圖10,示出根據(jù)本發(fā)明的另一實(shí)施例的系統(tǒng)1000的框圖。系統(tǒng)1000包括處理 器1010和存儲(chǔ)器1030。處理器1010可以是片上系統(tǒng)(S0C)并且可以包括:安全引擎1012 ; 核單元1014,其可包括一個(gè)或多個(gè)核、高速緩存存儲(chǔ)器、以及用于與其他S0C組件通信的接 口;存儲(chǔ)1016 ;以及編碼/解碼邏輯1018。
[0091] 在操作中,安全引擎1012可以解碼傳入的經(jīng)加密數(shù)據(jù)1020。安全引擎1012可以 將(未加密的)數(shù)據(jù)解析成各部分并可將這些部分存儲(chǔ)在存儲(chǔ)器1030內(nèi)的相應(yīng)頁(yè)中。安全 引擎1012可以將與每頁(yè)的最后寫入地址相對(duì)應(yīng)的最后寫入偏移量存儲(chǔ)在相應(yīng)存儲(chǔ)寄存器 中。在一個(gè)實(shí)施例中,存儲(chǔ)寄存器可以位于處理器1010內(nèi)。在另一實(shí)施例中,存儲(chǔ)寄存器 可以位于存儲(chǔ)器1030內(nèi)。
[0092] 核單元1014可以接收寫入指令,所述寫入指令的目的地地址處于頁(yè)之一中。安全 引擎1012可以執(zhí)行最后寫入偏移量與同寫入指令的目的地地址相關(guān)聯(lián)的寫入偏移量的比 較。安全引擎1012可以基于最后寫入偏移量與該寫入偏移量的比較來(lái)鎖定或解鎖對(duì)頁(yè)的 寫入訪問(wèn)。例如,如果該寫入偏移量大于最后寫入偏移量,則安全引擎1012可以解鎖對(duì)相 應(yīng)頁(yè)的寫入訪問(wèn),而如果該寫入偏移量小于或等于最后寫入偏移量,則安全引擎1012可以 鎖定對(duì)相應(yīng)頁(yè)的寫入訪問(wèn),將最后寫入偏移量復(fù)位為〇,并且擦除(例如轉(zhuǎn)儲(chǔ)清除)相應(yīng)頁(yè)的 內(nèi)容。
[0093] 各實(shí)施例可在許多不同類型的系統(tǒng)中使用。例如,在一個(gè)實(shí)施例中,通信設(shè)備可以 被安排為執(zhí)行在此所述的各個(gè)方法和技術(shù)。各實(shí)施例可以被合并到其他類型的系統(tǒng)中,包 括諸如智能蜂窩電話、平板計(jì)算機(jī)、上網(wǎng)本、Ultrabook?等等之類的移動(dòng)設(shè)備。當(dāng)然,本發(fā) 明的范圍不限于通信設(shè)備,而是其他實(shí)施例可以針對(duì)用于處理指令的其他類型的裝置或者 包括指令的一個(gè)或多個(gè)機(jī)器可讀介質(zhì),所述指令響應(yīng)于在計(jì)算設(shè)備上被執(zhí)行而致使該設(shè)備 執(zhí)行在此所述的方法和技術(shù)中一個(gè)或多個(gè)。
[0094] 以下示例涉及進(jìn)一步的實(shí)施例。在一實(shí)施例中,一處理器包括內(nèi)容存儲(chǔ)邏輯以將 數(shù)字內(nèi)容解析成各部分并致使每個(gè)部分被存儲(chǔ)到存儲(chǔ)器的相應(yīng)頁(yè)中。處理器還包括保護(hù)邏 輯以接收具有存儲(chǔ)器內(nèi)的目的地地址的寫入指令。如果目的地地址與存儲(chǔ)數(shù)字內(nèi)容中的一 些的存儲(chǔ)器位置相關(guān)聯(lián),則保護(hù)邏輯將擦除與該存儲(chǔ)器位置相關(guān)聯(lián)的頁(yè),而如果目的地地 址與不存儲(chǔ)數(shù)字內(nèi)容中的任何部分的另一存儲(chǔ)器位置相關(guān)聯(lián),則保護(hù)邏輯將許可該寫入指 令的執(zhí)行。
[0095] 在另一實(shí)施例中,處理器包括解密邏輯以解密經(jīng)加密的數(shù)字內(nèi)容并將數(shù)字內(nèi)容輸 出到內(nèi)容存儲(chǔ)邏輯。
[0096] 在一實(shí)施例中,每個(gè)頁(yè)具有相同的頁(yè)大小。
[0097] 在一實(shí)施例中,處理器包括一個(gè)或多個(gè)存儲(chǔ),每個(gè)存儲(chǔ)用于存儲(chǔ)相應(yīng)頁(yè)的最后寫 入地址的表示。在一實(shí)施例中,最后寫入地址的表示包括自相應(yīng)頁(yè)的初始地址的偏移量。
[0098] 保護(hù)邏輯可以將目的地地址的表示與存儲(chǔ)在存儲(chǔ)之一中的最后寫入地址的表示 相比較以確定與該目的地地址相關(guān)聯(lián)的存儲(chǔ)器存儲(chǔ)位置是否存儲(chǔ)了數(shù)字內(nèi)容中的一些,并 且如果該目的地地址大于最后寫入地址,則保護(hù)邏輯可以確定與該目的地地址相關(guān)聯(lián)的存 儲(chǔ)器存儲(chǔ)位置未存儲(chǔ)數(shù)字內(nèi)容中的任何部分,并且保護(hù)邏輯可以許可寫入指令的執(zhí)行。 [0099] 如果目的地地址處于特定頁(yè)的開(kāi)始處與最后寫入地址之間,則保護(hù)邏輯可以擦除 特定頁(yè)的內(nèi)容并且可以復(fù)位最后寫入地址的表示。
[0100] 在一實(shí)施例中,一系統(tǒng)包括處理器、耦合到該處理器的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器 (DRAM)、耦合到該DRAM的存儲(chǔ)器控制器以將數(shù)字內(nèi)容寫入到該DRAM中的多個(gè)頁(yè)中。響應(yīng) 于由處理器接收到具有頁(yè)之一中的存儲(chǔ)器存儲(chǔ)位置的目的地地址的寫入指令,存儲(chǔ)器控制 器可以在該存儲(chǔ)器存儲(chǔ)位置未存儲(chǔ)數(shù)字內(nèi)容中的任何部分的情況下執(zhí)行寫入指令并且在 該存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)有數(shù)字內(nèi)容中一些的情況下擦除該頁(yè)。
[0101] 在一實(shí)施例中,存儲(chǔ)器控制器包括多個(gè)寄存器,每個(gè)寄存器存儲(chǔ)與相應(yīng)頁(yè)的最后 寫入地址相對(duì)應(yīng)的最后寫入偏移量。
[0102] 在一實(shí)施例中,存儲(chǔ)器控制器可以將與目的地地址相對(duì)應(yīng)的目的地偏移量與存儲(chǔ) 在寄存器之一中的偏移量相比較以確定與該目的地地址相關(guān)聯(lián)的存儲(chǔ)器存儲(chǔ)位置是否存 儲(chǔ)有數(shù)字內(nèi)容中的一些。如果該目的地偏移量處于特定頁(yè)的開(kāi)始處與最后寫入偏移量之 間,則存儲(chǔ)器控制器可以確定與該目的地地址相關(guān)聯(lián)的存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)有數(shù)字內(nèi)容中 的一些。
[0103] 如果存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)有數(shù)字內(nèi)容中的一些,則存儲(chǔ)器控制器可以在該頁(yè)被擦 除以后復(fù)位最后寫入偏移量。如果該目的地偏移量大于最后寫入偏移量,則存儲(chǔ)器控制器 可以確定與該目的地地址相關(guān)聯(lián)的存儲(chǔ)器存儲(chǔ)位置未存儲(chǔ)數(shù)字內(nèi)容中的任何部分。
[0104] 在一實(shí)施例中,一種方法包括:將數(shù)字內(nèi)容解析成各部分;將每個(gè)部分存儲(chǔ)到存 儲(chǔ)器的相應(yīng)頁(yè)中;將寫入指令的目的地地址與所述頁(yè)之一的最后寫入地址相比較以確定相 應(yīng)存儲(chǔ)器位置是否存儲(chǔ)所述數(shù)字內(nèi)容中的一些;在相應(yīng)存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)有所述數(shù)字內(nèi) 容中的一些的情況下擦除所述頁(yè)中的至少一頁(yè);以及在相應(yīng)存儲(chǔ)器存儲(chǔ)位置未存儲(chǔ)所述數(shù) 字內(nèi)容中的任何部分的情況下執(zhí)行所述寫入指令。
[0105] 該方法還可以包括:在解析所述數(shù)字內(nèi)容以前解密所述數(shù)字內(nèi)容。
[0106] 比較可以包括:確定第一頁(yè)包括所述目的地地址,并且如果所述目的地地址處于 第一頁(yè)的第一寫入地址與第一頁(yè)的最后寫入地址之間,則確定相應(yīng)存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)有 所述數(shù)字內(nèi)容中的一些。
[0107] 該方法可以包括:如果目的地地址未處于第一頁(yè)的第一寫入地址與第一頁(yè)的最后 寫入地址之間,則確定相應(yīng)存儲(chǔ)器位置未存儲(chǔ)數(shù)字內(nèi)容中的任何部分。該方法還可以包括: 響應(yīng)于寫入指令的執(zhí)行更新相應(yīng)的最后寫入地址。
[0108] 在一實(shí)施例中,至少一個(gè)機(jī)器可讀介質(zhì)包括一個(gè)或多個(gè)指令,所述指令在處理器 上被執(zhí)行時(shí)將處理器配置為執(zhí)行該方法的前述實(shí)施例中的一個(gè)或多個(gè)。
[0109] 在一實(shí)施例中,一種裝置可以被配置為執(zhí)行該方法的前述實(shí)施例中的一個(gè)或多 個(gè)。
[0110] 在一實(shí)施例中,一種設(shè)備包括用于執(zhí)行該方法的前述實(shí)施例中的任何實(shí)施例的裝 置。
[0111] 在一實(shí)施例中,一處理器可以包括一個(gè)或多個(gè)核和保護(hù)邏輯,該保護(hù)邏輯用于響 應(yīng)于與寫入指令相關(guān)聯(lián)的寫入偏移量同存儲(chǔ)在第一存儲(chǔ)中并與第一頁(yè)的最后寫入存儲(chǔ)器 位置相關(guān)聯(lián)的最后寫入偏移量的比較來(lái)確定是否解鎖對(duì)存儲(chǔ)器的第一頁(yè)的寫入訪問(wèn)。保護(hù) 邏輯可以響應(yīng)于指示該寫入偏移量超過(guò)該最后寫入偏移量的比較來(lái)解鎖對(duì)第一頁(yè)的寫入 訪問(wèn)并許可寫入指令的執(zhí)行。
[0112] 該處理器可以包括更新邏輯以響應(yīng)于寫入指令的執(zhí)行來(lái)用該寫入偏移量替換第 一存儲(chǔ)中的該最后寫入偏移量。
[0113] 保護(hù)邏輯可以響應(yīng)于指示該寫入偏移量小于或等于該最后寫入偏移量的比較來(lái) 擦除第一頁(yè)。
[0114] 該處理器可以包括更新邏輯以在擦除頁(yè)以后復(fù)位第一存儲(chǔ)中的最后寫入偏移量。
[0115] 各實(shí)施例可以以代碼來(lái)實(shí)現(xiàn),并可以存儲(chǔ)在在其上存儲(chǔ)了指令的非瞬時(shí)的存儲(chǔ)介 質(zhì)上,指令可以被用來(lái)對(duì)系統(tǒng)進(jìn)行編程以執(zhí)行指令。存儲(chǔ)介質(zhì)可以包括,但不僅限于,任何 類型的磁盤,包括軟盤、光盤、固態(tài)驅(qū)動(dòng)器(SSD)、光盤只讀存儲(chǔ)器(固態(tài)驅(qū)動(dòng)器)、光盤可重 寫(CD-RW),以及磁光盤、諸如只讀存儲(chǔ)器(ROM)之類的半導(dǎo)體器件、諸如動(dòng)態(tài)隨機(jī)存取存 儲(chǔ)器(DRAM)、和靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)之類的隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、可擦除編程只 讀存儲(chǔ)器(EPROM)、閃存、電可擦除編程只讀存儲(chǔ)器(EEPROM)、磁卡或光卡,或適于存儲(chǔ)電 子指令的任何其他類型的介質(zhì)。
[0116] 盡管是參考數(shù)量有限的實(shí)施例來(lái)描述本發(fā)明的,但是,那些精通本技術(shù)的人將從 其中理解很多修改和變體。所附權(quán)利要求書涵蓋所有這樣的修改和變體都將在本發(fā)明的真 正的精神和范圍內(nèi)。
【權(quán)利要求】
1. 一種用于保護(hù)內(nèi)容的處理器,包括: 內(nèi)容存儲(chǔ)邏輯,其用于將數(shù)字內(nèi)容解析成各部分并致使每個(gè)部分被存儲(chǔ)到存儲(chǔ)器的相 應(yīng)頁(yè)中;以及 保護(hù)邏輯,其用于: 接收具有所述存儲(chǔ)器內(nèi)的目的地地址的寫入指令; 如果所述目的地地址與存儲(chǔ)所述數(shù)字內(nèi)容中的一些的存儲(chǔ)器存儲(chǔ)位置相關(guān)聯(lián),則擦除 與所述存儲(chǔ)器位置相關(guān)聯(lián)的頁(yè); 如果所述目的地地址與未存儲(chǔ)所述數(shù)字內(nèi)容中的任何部分的另一存儲(chǔ)器存儲(chǔ)位置相 關(guān)聯(lián),則許可所述寫入指令的執(zhí)行。
2. 如權(quán)利要求1所述的處理器,其特征在于,還包括解密邏輯,其用于解密經(jīng)加密的數(shù) 字內(nèi)容并將所述數(shù)字內(nèi)容輸出到所述內(nèi)容存儲(chǔ)邏輯。
3. 如權(quán)利要求1所述的處理器,其特征在于,每個(gè)頁(yè)具有相同的頁(yè)大小。
4. 如權(quán)利要求1所述的處理器,其特征在于,還包括一個(gè)或多個(gè)存儲(chǔ),每個(gè)存儲(chǔ)用于存 儲(chǔ)相應(yīng)頁(yè)的最后與入地址的表不。
5. 如權(quán)利要求4所述的處理器,其特征在于,所述最后寫入地址的表示包括自所述相 應(yīng)頁(yè)的初始地址的偏移量。
6. 如權(quán)利要求4 一 5中任一項(xiàng)所述的處理器,其特征在于,所述保護(hù)邏輯將所述目的地 地址的表示與存儲(chǔ)在所述存儲(chǔ)之一中的最后寫入地址的表示相比較以確定與所述目的地 地址相關(guān)聯(lián)的存儲(chǔ)器存儲(chǔ)位置是否存儲(chǔ)所述數(shù)字內(nèi)容中的一些。
7. 如權(quán)利要求4所述的處理器,其特征在于,如果所述目的地地址小于所述頁(yè)之一內(nèi) 的最后寫入地址,則所述保護(hù)邏輯確定與所述目的地地址相關(guān)聯(lián)的存儲(chǔ)器存儲(chǔ)位置未存儲(chǔ) 所述數(shù)字內(nèi)容中的任何部分。
8. 如權(quán)利要求4所述的處理器,其特征在于,如果所述目的地地址處于特定頁(yè)的開(kāi)始 處與所述頁(yè)之一內(nèi)的最后寫入地址之間,則所述保護(hù)邏輯確定與所述目的地地址相關(guān)聯(lián)的 存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)所述數(shù)字內(nèi)容中的一些。
9. 如權(quán)利要求8所述的處理器,其特征在于,所述處理器復(fù)位所述最后寫入地址的表 /_J、1 〇
10. -種用于保護(hù)內(nèi)容的處理系統(tǒng),包括: 處理器; 耦合到所述處理器的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM);以及 耦合到所述DRAM的存儲(chǔ)器控制器,所述存儲(chǔ)器控制器用于將數(shù)字內(nèi)容寫入所述DRAM 中的多個(gè)頁(yè)中,其中響應(yīng)于由所述處理器接收到具有所述頁(yè)之一中的存儲(chǔ)器存儲(chǔ)位置的目 的地地址的寫入指令,所述存儲(chǔ)器控制器用于: 如果所述存儲(chǔ)器存儲(chǔ)位置未存儲(chǔ)所述數(shù)字內(nèi)容中的任何部分,則執(zhí)行所述寫入指令; 以及 如果所述存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)所述數(shù)字內(nèi)容中的一些,則擦除所述頁(yè)。
11. 如權(quán)利要求10所述的系統(tǒng),其特征在于,所述存儲(chǔ)器控制器包括多個(gè)寄存器,每個(gè) 寄存器用于存儲(chǔ)與相應(yīng)頁(yè)的最后寫入地址相對(duì)應(yīng)的最后寫入偏移量。
12. 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述存儲(chǔ)器控制器用于將與所述目的地 地址相對(duì)應(yīng)的目的地偏移量與存儲(chǔ)在所述寄存器之一中的偏移量相比較以確定與所述目 的地地址相關(guān)聯(lián)的存儲(chǔ)器存儲(chǔ)位置是否存儲(chǔ)所述數(shù)字內(nèi)容中的一些。
13. 如權(quán)利要求12所述的系統(tǒng),其特征在于,如果所述目的地偏移量處于特定頁(yè)的開(kāi) 始處與所述最后寫入偏移量之間,則所述存儲(chǔ)器控制器確定與所述目的地地址相關(guān)聯(lián)的存 儲(chǔ)器存儲(chǔ)位置存儲(chǔ)所述數(shù)字內(nèi)容中的一些。
14. 如權(quán)利要求11所述的系統(tǒng),其特征在于,如果所述存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)所述數(shù)字 內(nèi)容中的一些,則所述存儲(chǔ)器控制器復(fù)位所述最后寫入偏移量。
15. 如權(quán)利要求12所述的系統(tǒng),其特征在于,如果所述目的地偏移量大于所述最后寫 入偏移量,則存儲(chǔ)器控制器確定與所述目的地地址相關(guān)聯(lián)的存儲(chǔ)器存儲(chǔ)位置未存儲(chǔ)所述數(shù) 字內(nèi)容中的任何部分。
16. -種保護(hù)內(nèi)容的方法,包括: 將數(shù)字內(nèi)容解析成各部分; 將每個(gè)部分存儲(chǔ)到存儲(chǔ)器的相應(yīng)頁(yè)中; 將寫入指令的目的地地址與所述頁(yè)之一的最后寫入地址相比較以確定相應(yīng)存儲(chǔ)器存 儲(chǔ)位置是否存儲(chǔ)所述數(shù)字內(nèi)容中的一些; 在所述相應(yīng)存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)所述數(shù)字內(nèi)容中的一些的情況下擦除所述頁(yè)中的至 少一頁(yè);以及 在所述相應(yīng)存儲(chǔ)器存儲(chǔ)位置未存儲(chǔ)所述數(shù)字內(nèi)容中的任何部分的情況下執(zhí)行所述寫 入指令。
17. 如權(quán)利要求16所述的方法,其特征在于,還包括:在解析所述數(shù)字內(nèi)容以前解密所 述數(shù)字內(nèi)容。
18. 如權(quán)利要求16所述的方法,其特征在于,所述比較包括: 確定第一頁(yè)包括所述目的地地址; 如果所述目的地地址處于所述第一頁(yè)的第一寫入地址與所述第一頁(yè)的最后寫入地址 之間,則確定所述相應(yīng)存儲(chǔ)器存儲(chǔ)位置存儲(chǔ)所述數(shù)字內(nèi)容中的一些;以及 如果所述目的地地址未處于所述第一頁(yè)的第一寫入地址與所述第一頁(yè)的最后寫入地 址之間,則確定所述相應(yīng)存儲(chǔ)器存儲(chǔ)位置未存儲(chǔ)所述數(shù)字內(nèi)容中的任何部分。
19. 如權(quán)利要求16所述的方法,其特征在于,還包括:響應(yīng)于所述寫入指令的執(zhí)行更新 相應(yīng)的最后寫入地址。
20. -種包括代碼的機(jī)器可讀介質(zhì),所述代碼在被執(zhí)行時(shí)致使機(jī)器執(zhí)行如權(quán)利要求 16 - 19任一所述的方法。
21. -種用于保護(hù)內(nèi)容的處理器,包括: 一個(gè)或多個(gè)核;以及 保護(hù)邏輯,其用于響應(yīng)于與對(duì)存儲(chǔ)器的第一頁(yè)的寫入指令相關(guān)聯(lián)的寫入偏移量同存儲(chǔ) 在第一存儲(chǔ)中并與所述第一頁(yè)的最后寫入存儲(chǔ)器存儲(chǔ)位置相關(guān)聯(lián)的最后寫入偏移量的比 較來(lái)確定是否解鎖所述對(duì)第一頁(yè)的寫入訪問(wèn)。
22. 如權(quán)利要求21所述的處理器,其特征在于,所述保護(hù)邏輯響應(yīng)于指示所述寫入偏 移量超過(guò)所述最后寫入偏移量的比較來(lái)解鎖對(duì)所述第一頁(yè)的寫入訪問(wèn)并許可寫入指令的 執(zhí)行。
23. 如權(quán)利要求21所述的處理器,其特征在于,還包括更新邏輯,其用于響應(yīng)于所述寫 入指令的執(zhí)行來(lái)用所述寫入偏移量替換所述第一存儲(chǔ)中的最后寫入偏移量。
24. 如權(quán)利要求21所述的處理器,其特征在于,所述保護(hù)邏輯用于響應(yīng)于指示所述寫 入偏移量小于或等于所述最后寫入偏移量的比較來(lái)擦除所述第一頁(yè)。
25. 如權(quán)利要求21所述的處理器,其特征在于,還包括更新邏輯,其用于響應(yīng)于指示所 述寫入偏移量小于或等于所述最后寫入偏移量的比較來(lái)復(fù)位所述第一存儲(chǔ)中的最后寫入 偏移量。
【文檔編號(hào)】G06F21/10GK104050396SQ201410095760
【公開(kāi)日】2014年9月17日 申請(qǐng)日期:2014年3月14日 優(yōu)先權(quán)日:2013年3月15日
【發(fā)明者】J·曼蓋拉姆帕利, R·P·班金沃 申請(qǐng)人:英特爾公司