專利名稱:保護(hù)內(nèi)存中應(yīng)用程序的方法、內(nèi)存控制器和處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及內(nèi)存中的應(yīng)用程序,特別涉及保護(hù)內(nèi)存中應(yīng)用程序的方法、內(nèi)存控制器和處理器。
背景技術(shù):
云計(jì)算是一種基于互聯(lián)網(wǎng)的計(jì)算新方式,通過(guò)互聯(lián)網(wǎng)上異構(gòu)、自治的服務(wù)為個(gè)人和企業(yè)用戶提供按需即取的計(jì)算。云計(jì)算通常認(rèn)為包括以下幾個(gè)層次的服務(wù)基礎(chǔ)設(shè)施即服務(wù)(IaaS),平臺(tái)即服務(wù)(PaM)和軟件即服務(wù)(SaM)。然而云計(jì)算環(huán)境缺少可見(jiàn)性和可控性,應(yīng)用程序的執(zhí)行都是在企業(yè)網(wǎng)絡(luò)之外進(jìn)行操作,因此保證應(yīng)用程序在云計(jì)算環(huán)境中的安全性很困難,未授權(quán)入侵者包括黑客常常利用網(wǎng)絡(luò)漏洞來(lái)獲得訪問(wèn)和未授權(quán)權(quán)限,盜取并破解應(yīng)用程序,使包括用戶商業(yè)秘密、個(gè)人隱私等在內(nèi)的關(guān)鍵信息數(shù)據(jù)泄漏出去,給用戶帶來(lái)無(wú)法彌補(bǔ)的損失。雖然用戶可以使用軟件實(shí)現(xiàn)的安全方案和機(jī)制來(lái)構(gòu)建云計(jì)算環(huán)境中的可信計(jì)算系統(tǒng),例如軟件授權(quán)認(rèn)證,然而有經(jīng)驗(yàn)的黑客能夠讀取密鑰并破解,最終導(dǎo)致應(yīng)用程序被盜取、破解。在共享虛擬內(nèi)存的環(huán)境中不確定因素更多,因此在遠(yuǎn)程云計(jì)算環(huán)境中如何保障內(nèi)存中的應(yīng)用程序的安全,使之不被盜取、破解是一個(gè)極大的挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明提供一種保護(hù)內(nèi)存中應(yīng)用程序的方法、內(nèi)存控制器和處理器。根據(jù)本發(fā)明的第一方面,提供一種保護(hù)內(nèi)存中應(yīng)用程序的方法,其中所述應(yīng)用程序按照高速緩存行的大小被緩存為內(nèi)存行,該方法包括響應(yīng)于處理器的加載訪問(wèn)請(qǐng)求,從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和,其中所述標(biāo)記內(nèi)存行是通過(guò)對(duì)所述內(nèi)存行的預(yù)定位和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算獲得的;通過(guò)對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述內(nèi)存行的標(biāo)記位的值;根據(jù)標(biāo)記位的值將所述標(biāo)記內(nèi)存行復(fù)原為所述內(nèi)存行;根據(jù)標(biāo)記位的值和處理器的加載訪問(wèn)請(qǐng)求的類型確定是否加載所述內(nèi)存行。根據(jù)本發(fā)明的第二方面,提供一種保護(hù)內(nèi)存中應(yīng)用程序的內(nèi)存控制器,其中所述應(yīng)用程序按照高速緩存行的大小被緩存為內(nèi)存行,該內(nèi)存控制器包括讀取模塊,被配置為響應(yīng)于處理器的加載訪問(wèn)請(qǐng)求,從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和,其中所述標(biāo)記內(nèi)存行是通過(guò)對(duì)所述內(nèi)存行的預(yù)定位和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算獲得的;ECC校驗(yàn)?zāi)K,被配置為通過(guò)對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述內(nèi)存行的標(biāo)記位的值;復(fù)原模塊,被配置為根據(jù)標(biāo)記位的值將所述標(biāo)記內(nèi)存行復(fù)原為所述內(nèi)存行;加載判斷模塊,被配置為根據(jù)標(biāo)記位的值和處理器的加載訪問(wèn)請(qǐng)求的類型確定是否加載所述內(nèi)存行。根據(jù)本發(fā)明的第三方面,提供一種包括根據(jù)本發(fā)明第二方面的內(nèi)存控制器的處理器。
根據(jù)本發(fā)明實(shí)施例的方法、內(nèi)存控制器和處理器,通過(guò)硬件實(shí)現(xiàn)對(duì)內(nèi)存中應(yīng)用程序的保護(hù),有效避免了在遠(yuǎn)程應(yīng)用的環(huán)境中應(yīng)用程序被盜取、破解。
結(jié)合附圖,通過(guò)參考下列詳細(xì)的示例性實(shí)施例的描述,將會(huì)更好地理解本發(fā)明本身、優(yōu)選的實(shí)施方式以及本發(fā)明的目的和優(yōu)點(diǎn),其中圖1示出根據(jù)本發(fā)明一個(gè)實(shí)施例對(duì)內(nèi)存中應(yīng)用程序提供保護(hù)機(jī)制的處理器架構(gòu)圖;圖2示出根據(jù)本發(fā)明的一個(gè)實(shí)施例在內(nèi)存控制器中實(shí)現(xiàn)保護(hù)內(nèi)存中的應(yīng)用程序的方法;圖3示出根據(jù)本發(fā)明的一個(gè)實(shí)施例向內(nèi)存中加載標(biāo)記內(nèi)存行和ECC校驗(yàn)和的過(guò)程;圖4示出標(biāo)記內(nèi)存行和ECC編碼產(chǎn)生的示例;圖5示出對(duì)標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得標(biāo)記位的示例;圖6示出本發(fā)明一個(gè)實(shí)施例的根據(jù)第一校驗(yàn)結(jié)果A和第二校驗(yàn)結(jié)果B確定內(nèi)存行的標(biāo)記位的值的狀態(tài)表;圖7示出采用多數(shù)判決的方法確定標(biāo)記位s的值的示例;圖8示出根據(jù)本發(fā)明一個(gè)實(shí)施例的保護(hù)內(nèi)存中應(yīng)用程序的內(nèi)存控制器的結(jié)構(gòu)框圖;圖9示出加載應(yīng)用程序的硬件控制邏輯真值表;以及圖10示出加載應(yīng)用程序的控制邏輯電路示意圖。
具體實(shí)施例方式以下結(jié)合附圖描述根據(jù)本發(fā)明實(shí)施例的方法,將會(huì)更好地理解本發(fā)明的目的和優(yōu)
點(diǎn)ο本發(fā)明實(shí)施例的保護(hù)內(nèi)存中的應(yīng)用程序的方法實(shí)現(xiàn)在提供解密加速功能的處理器上,圖1示出根據(jù)本發(fā)明一個(gè)實(shí)施例對(duì)內(nèi)存中應(yīng)用程序提供保護(hù)機(jī)制的處理器架構(gòu)圖, 利用專門由硬件電路單元構(gòu)成的解密加速器對(duì)加密的應(yīng)用程序代碼進(jìn)行解密,能夠避免軟件解密過(guò)程中可能帶來(lái)的應(yīng)用程序代碼被破解或被讀取的風(fēng)險(xiǎn)。本發(fā)明的核心思想是實(shí)現(xiàn)對(duì)內(nèi)存中的應(yīng)用程序可執(zhí)行代碼的保護(hù),為需要特別保護(hù)的應(yīng)用程序設(shè)置保護(hù)標(biāo)記位,并對(duì)現(xiàn)有技術(shù)對(duì)內(nèi)存中數(shù)據(jù)進(jìn)行ECC(錯(cuò)誤檢查和糾正)校驗(yàn)的機(jī)制進(jìn)行改進(jìn),有效識(shí)別出內(nèi)存中應(yīng)用程序的保護(hù)標(biāo)記位,從而拒絕處理器的加載數(shù)據(jù)訪問(wèn)請(qǐng)求。圖2示出根據(jù)本發(fā)明的一個(gè)實(shí)施例在內(nèi)存控制器中實(shí)現(xiàn)保護(hù)內(nèi)存中的應(yīng)用程序的方法,其中所述應(yīng)用程序按照高速緩存行的大小被緩存為內(nèi)存行,該方法包括以下步驟 在步驟S201,響應(yīng)于處理器的加載訪問(wèn)請(qǐng)求,從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和,其中所述標(biāo)記內(nèi)存行是通過(guò)對(duì)所述內(nèi)存行的預(yù)定位和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算獲得的;在步驟S202,利用所述ECC校驗(yàn)和對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述內(nèi)存行的標(biāo)記位的值;在步驟S203,根據(jù)標(biāo)記位的值將所述標(biāo)記內(nèi)存行復(fù)原為所述內(nèi)存行;以及在步驟S204,根據(jù)標(biāo)記位的值和處理器的加載訪問(wèn)請(qǐng)求的類型確定是否加載所述內(nèi)存行。具體地,在步驟S201,響應(yīng)于處理器的加載訪問(wèn)請(qǐng)求,從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和,其中所述標(biāo)記內(nèi)存行是通過(guò)對(duì)所述內(nèi)存行的預(yù)定位和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算獲得的,圖3示出根據(jù)本發(fā)明的一個(gè)實(shí)施例向內(nèi)存中加載標(biāo)記內(nèi)存行和ECC校驗(yàn)和的過(guò)程,包括在步驟S301,響應(yīng)于接收到處理器的應(yīng)用程序加載請(qǐng)求,接收所述內(nèi)存行和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位。具體地,根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)于保護(hù)應(yīng)用程序的情況, 接收到處理器的加載應(yīng)用程序的請(qǐng)求,DMA控制器將加密應(yīng)用程序從硬盤加載到內(nèi)存。解碼加速器接收到處理器發(fā)出的解密控制指令,從解密控制指令中提取出加密的應(yīng)用程序的內(nèi)存地址;并從提取的內(nèi)存地址讀取加密的應(yīng)用程序并解密;為解密的應(yīng)用程序設(shè)置保護(hù)標(biāo)記位,例如“1”,表示該應(yīng)用程序需要保護(hù);然后,將解密的應(yīng)用程序每次按照高速緩存行(catcheline)的大小寫入內(nèi)存,例如,高速緩存行的大小是128byte,每次向內(nèi)存寫入 128byte的應(yīng)用程序代碼,并存儲(chǔ)為內(nèi)存行,此外,為了有效記錄標(biāo)記位,在處理器與內(nèi)存控制器之間的數(shù)據(jù)總線上額外增加一位記錄標(biāo)記位的數(shù)據(jù)線,因此在寫入內(nèi)存之前,多個(gè)內(nèi)存行和對(duì)應(yīng)的標(biāo)記位被緩存在內(nèi)存控制器中。而對(duì)于其它不需要保護(hù)的情況,實(shí)際并不需要添加額外的標(biāo)記位,即默認(rèn)為添加的非保護(hù)標(biāo)記位為“0”。在步驟S302,對(duì)所述內(nèi)存行執(zhí)行ECC編碼產(chǎn)生對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和。 內(nèi)存是一種電子器件,在其工作過(guò)程中難免會(huì)出現(xiàn)錯(cuò)誤,而對(duì)于穩(wěn)定性要求高的用戶來(lái)說(shuō), 內(nèi)存錯(cuò)誤可能會(huì)引起致命性的問(wèn)題,因此,服務(wù)器系統(tǒng)的內(nèi)存通常通過(guò)ECC(錯(cuò)誤檢查和糾正)校驗(yàn)進(jìn)行保護(hù),從而將使整個(gè)服務(wù)器系統(tǒng)在工作時(shí)更趨于安全穩(wěn)定,圖4示出標(biāo)記內(nèi)存行和ECC編碼產(chǎn)生的示例,其中Ivb1. . . . b63是64比特的內(nèi)存行,s位是為該內(nèi)存行添加的標(biāo)記位,利用現(xiàn)有技術(shù)中的ECC編碼方法為每64比特指令數(shù)據(jù)Iv b” . . . b63產(chǎn)生8位單錯(cuò)糾正雙錯(cuò)檢測(cè)(SECDED)位,即,P0......P70在步驟S303,將所述內(nèi)存行的預(yù)定位與標(biāo)記位進(jìn)行異或邏輯運(yùn)算產(chǎn)生所述標(biāo)記內(nèi)存行。參照?qǐng)D4,其中在內(nèi)存行Ivb1. . . . b63中指定k為的預(yù)定位,將k與標(biāo)記位s進(jìn)行異或,產(chǎn)生內(nèi)存行bQ,b” . . . b63的標(biāo)記內(nèi)存行cQ,C1.....C63。在步驟S304,將所述標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和寫入內(nèi)存。在完成向內(nèi)存加載應(yīng)用程序之后,處理器發(fā)出指令或數(shù)據(jù)的加載請(qǐng)求。具體地,在步驟S201,響應(yīng)于接收到處理器的加載請(qǐng)求,內(nèi)存控制器從內(nèi)存中讀取多個(gè)標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述多個(gè)內(nèi)存行的ECC校驗(yàn)和,以圖4為例,讀取標(biāo)記多個(gè)標(biāo)記內(nèi)存行Ctl,C1……C63 和多個(gè)對(duì)應(yīng)于8位單錯(cuò)糾正雙錯(cuò)檢測(cè)(SE⑶ED)位P(1......p7。在步驟S202,利用所述ECC校驗(yàn)和對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述內(nèi)存行的標(biāo)記位的值。具體地,對(duì)標(biāo)記內(nèi)存行進(jìn)行ECC校驗(yàn)產(chǎn)生第一校驗(yàn)結(jié)果;對(duì)標(biāo)記內(nèi)存行的預(yù)定位進(jìn)行非邏輯運(yùn)算產(chǎn)生新標(biāo)記內(nèi)存行,其中標(biāo)記內(nèi)存行的預(yù)定位與產(chǎn)生標(biāo)記內(nèi)存行的預(yù)定位對(duì)應(yīng)一致;對(duì)所述新標(biāo)記內(nèi)存行進(jìn)行ECC校驗(yàn)產(chǎn)生第二校驗(yàn)結(jié)果;根據(jù)第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果獲得對(duì)應(yīng)于標(biāo)記內(nèi)存行的內(nèi)存行的標(biāo)記位的值。本領(lǐng)域技術(shù)人員可以理解,由內(nèi)存行和標(biāo)記位產(chǎn)生標(biāo)記內(nèi)存行并不限于邏輯或運(yùn)算,而可以由任何具有恢復(fù)標(biāo)記位的值的功能的邏輯運(yùn)算來(lái)實(shí)現(xiàn)。其中根據(jù)第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果確定對(duì)應(yīng)于標(biāo)記內(nèi)存行的內(nèi)存行的標(biāo)記位的值,其中確定標(biāo)記位的值的方法包括如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行的預(yù)定位錯(cuò)誤,并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行未出錯(cuò),那么確定標(biāo)記位的值為保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行未出錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行的預(yù)定位錯(cuò)誤,那么確定標(biāo)記位的值為非保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行出現(xiàn)兩位錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新內(nèi)存行中除預(yù)定位之外的1位出錯(cuò),那么確定標(biāo)記位的值為保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行中除預(yù)定位之外的1位出錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行出現(xiàn)兩位錯(cuò),那么確定標(biāo)記位的值為非保護(hù)標(biāo)記位;以及如果第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果均表明內(nèi)存行出現(xiàn)大于等于兩位錯(cuò),那么標(biāo)記位的值呈現(xiàn)未知無(wú)法確定的狀態(tài)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,在根據(jù)本發(fā)明實(shí)施例的方法確定每個(gè)內(nèi)存行對(duì)應(yīng)的標(biāo)記位的值之后,為了避免由于傳輸?shù)腻e(cuò)誤引起多于兩個(gè)的誤碼,導(dǎo)致無(wú)法確定標(biāo)記位的值, 對(duì)于按照高速緩存行(cacheline)的大小一次寫入的內(nèi)存行,進(jìn)一步根據(jù)多數(shù)判決的原理確定標(biāo)記位的值,因?yàn)閷?duì)于按照高速緩存行的大小每次寫入內(nèi)存的內(nèi)存行,設(shè)置的標(biāo)記位是相同的,因此對(duì)按照高速緩存行的大小一次寫入的內(nèi)存行依據(jù)多數(shù)判決的原理能夠確定出正確的標(biāo)記位的值。圖5示出對(duì)標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得標(biāo)記位的示例,首先,利用8位單錯(cuò)糾
正雙錯(cuò)檢測(cè)(SE⑶ED)位P(1......p7對(duì)標(biāo)記內(nèi)存行Ctl,C1……C63進(jìn)行ECC校驗(yàn),產(chǎn)生8位
ECC第一校驗(yàn)結(jié)果A (Atl......A7);接著對(duì)標(biāo)記內(nèi)存行Ctl,C1……C63中的標(biāo)記位Ctl進(jìn)行非
邏輯運(yùn)算,即,使Ctl與“1”進(jìn)行異或,產(chǎn)生新標(biāo)記內(nèi)存行屯,屯……d63 ;接著利用8位單錯(cuò)
糾正雙錯(cuò)檢測(cè)(SE⑶ED)位P(1......p7對(duì)新標(biāo)記內(nèi)存行Cltl,Cl1……d63進(jìn)行ECC校驗(yàn),產(chǎn)生8
位ECC第二校驗(yàn)結(jié)果B (B0......B7)。由于ECC的單錯(cuò)糾正雙錯(cuò)檢測(cè)(SE⑶ED)位能夠能糾
正1個(gè)比特錯(cuò)誤和檢測(cè)2個(gè)比特錯(cuò)誤,因此根據(jù)ECC校驗(yàn)結(jié)果Atl......A7和ECC校驗(yàn)結(jié)果
B0......B7能夠糾正1個(gè)比特錯(cuò)誤和檢測(cè)兩個(gè)比特錯(cuò)誤。結(jié)合Atl......A7和Btl......B7糾
錯(cuò)和檢錯(cuò)結(jié)果,確定標(biāo)記位的值。圖6示出本發(fā)明一個(gè)實(shí)施例的根據(jù)第一校驗(yàn)結(jié)果A和第二校驗(yàn)結(jié)果B確定內(nèi)存行的標(biāo)記位的值的狀態(tài)表,由表中可見(jiàn)包括五種情形,第一種情形,如果第一校驗(yàn)結(jié)果A表明標(biāo)記內(nèi)存行Ctl,C1……C63的預(yù)定位N出錯(cuò),并且第二校驗(yàn)結(jié)果B表明內(nèi)存行Iv b” . . . b63 未出錯(cuò),那么確定標(biāo)記位s的值為保護(hù)標(biāo)記位“ 1”;第二種情形,如果第一校驗(yàn)結(jié)果A表明內(nèi)存行Iv b” . . . b63未出錯(cuò),并且第二校驗(yàn)結(jié)果B表明內(nèi)存行Iv b” . . . b63的預(yù)定位k出錯(cuò), 那么確定標(biāo)記位S的值為非保護(hù)標(biāo)記位“0”;第三種情形,如果第一校驗(yàn)結(jié)果A表明兩位錯(cuò), 并且第二校驗(yàn)結(jié)果B表明內(nèi)存行Ivb1. . . . b63除預(yù)定位k之外有一位bx錯(cuò),那么確定標(biāo)記位s的值為保護(hù)標(biāo)記位“1” ;第四種情形,如果第一校驗(yàn)結(jié)果A表明內(nèi)存行Iv b” . . . b63除預(yù)定位k之外有一位bx錯(cuò),并且第二校驗(yàn)結(jié)果B表明內(nèi)存行Iv b” . . . b63有兩位錯(cuò),那么確定標(biāo)記位s的值為非保護(hù)標(biāo)記位“0”;第五種情形,對(duì)于第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果均表明內(nèi)存行內(nèi)存行K,b” . . . b63出現(xiàn)大于等于兩位錯(cuò),那么標(biāo)記位的值呈現(xiàn)未知無(wú)法確定的狀態(tài)。為了避免出現(xiàn)第五種情形,根據(jù)本發(fā)明的實(shí)施例,可以采用多數(shù)判決的方法確保標(biāo)記位s的值的正確性,圖7示出采用多數(shù)判決的方法確定標(biāo)記位s的值的示例,假設(shè)高速緩存行的大小是32byte,因此一次向內(nèi)存控制器寫入的數(shù)據(jù)是32byte加上一個(gè)標(biāo)記位,由此產(chǎn)生4個(gè)內(nèi)存行,對(duì)于一次寫入的32byte指令數(shù)據(jù),標(biāo)記位是相同的,因此在根據(jù)本發(fā)明實(shí)施例的方法確定每個(gè)內(nèi)存行對(duì)應(yīng)的標(biāo)記位的值之后,根據(jù)多數(shù)判決的原理確定正確的標(biāo)記位的值,如圖7所示,根據(jù)各自內(nèi)存行的第一校驗(yàn)結(jié)果A和第二校驗(yàn)結(jié)果B,分別得到四個(gè)標(biāo)記位s的值,分別是1、1、0、1,通過(guò)多數(shù)判決確定標(biāo)記位s的值是保護(hù)標(biāo)記位“1”,從而避免由于傳輸?shù)腻e(cuò)誤引起的多于兩個(gè)的誤碼,導(dǎo)致無(wú)法確定標(biāo)記位的值。在步驟S203,根據(jù)標(biāo)記位的值將所述多個(gè)標(biāo)記內(nèi)存行復(fù)原為所述內(nèi)存行。根據(jù)圖 5的示例,預(yù)先確定保護(hù)標(biāo)記位為“1”,而非保護(hù)標(biāo)記位為“0”。在這種情形下,如果滿足第一種情形,即第一校驗(yàn)結(jié)果A表明預(yù)定位Cltl出錯(cuò),并且第二校驗(yàn)結(jié)果B表明未出錯(cuò),那么確定標(biāo)記位s的值為“1”,因此將Ctl進(jìn)行非邏輯運(yùn)算,復(fù)原出原來(lái)的內(nèi)存行Iv b” . . . b63。如果滿足第二種情形,即,第一校驗(yàn)結(jié)果A表明未出錯(cuò),并且第二校驗(yàn)結(jié)果B表明預(yù)定位h出錯(cuò),那么確定標(biāo)記位s的值為“0”,因此標(biāo)記內(nèi)存行Ctl,C1……C63即為原來(lái)的內(nèi)存行Iv b” . . . b63。如果滿足第三種情形,即,第一校驗(yàn)結(jié)果A表明兩位錯(cuò),并且第二校驗(yàn)結(jié)果B表明除預(yù)定位k之外的一位bx錯(cuò),那么確定標(biāo)記位s的值為“ 1 ”,因此將Ctl進(jìn)行非邏輯運(yùn)算,并且將cx進(jìn)行非邏輯運(yùn)算,從而復(fù)原出原來(lái)的內(nèi)存行Ivbpub63t5如果滿足第四種情形,即, 第一校驗(yàn)結(jié)果A表明除預(yù)定位k之外的一位bx錯(cuò),并且第二校驗(yàn)結(jié)果B表明兩位錯(cuò),那么確定標(biāo)記位s的值為“0”,因此標(biāo)記內(nèi)存行Ctl,C1……C63即為原來(lái)的內(nèi)存行Iv b” . . . b63, 從而復(fù)原出原來(lái)的內(nèi)存行Iv b^ ... b63。在步驟S204,根據(jù)標(biāo)記位的值和處理器的訪問(wèn)類型確定是否加載所述內(nèi)存行。具體地,如果確定標(biāo)記位的值為保護(hù)標(biāo)記位并且處理器的訪問(wèn)類型為數(shù)據(jù)獲取請(qǐng)求,則禁止將應(yīng)用程序加載到數(shù)據(jù)緩存器(D-cache),從而實(shí)現(xiàn)了對(duì)應(yīng)用程序的保護(hù),防止應(yīng)用程序被讀取和破解;如果確定標(biāo)記位的值為保護(hù)標(biāo)記位并且訪問(wèn)類型為指令獲取請(qǐng)求,則允許將應(yīng)用程序加載到指令緩存器(I-cache),執(zhí)行應(yīng)用程序;如果確定標(biāo)記位的值是非保護(hù)標(biāo)記位并且訪問(wèn)類型為數(shù)據(jù)獲取請(qǐng)求,則允許將應(yīng)用程序加載到數(shù)據(jù)緩存器(D-cache);如果確定標(biāo)記位的值是非保護(hù)標(biāo)記位并且訪問(wèn)類型為指令獲取請(qǐng)求,則允許將應(yīng)用程序加載到指令緩存器(I-cache)。基于同一發(fā)明構(gòu)思,本發(fā)明提出一種保護(hù)內(nèi)存中應(yīng)用程序的內(nèi)存控制器,圖8示出根據(jù)本發(fā)明一個(gè)實(shí)施例的保護(hù)內(nèi)存中應(yīng)用程序的內(nèi)存控制器的結(jié)構(gòu)框圖800,該內(nèi)存控制器包括讀取模塊801,被配置為響應(yīng)于處理器的加載訪問(wèn)請(qǐng)求,從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和,其中所述標(biāo)記內(nèi)存行是通過(guò)對(duì)所述內(nèi)存行的預(yù)定位和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算獲得的;ECC校驗(yàn)?zāi)K802,被配置為通過(guò)對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述內(nèi)存行的標(biāo)記位的值;復(fù)原模塊803,被配置為根據(jù)標(biāo)記位的值將所述標(biāo)記內(nèi)存行復(fù)原為所述內(nèi)存行;加載判斷模塊804,被配置為根據(jù)標(biāo)記位的值和處理器的加載訪問(wèn)請(qǐng)求的類型確定是否加載所述內(nèi)存行。所述內(nèi)存控制器還包括接收模塊,被配置為響應(yīng)于接收到處理器的應(yīng)用程序加載請(qǐng)求,從解密加速器接收所述內(nèi)存行和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位;ECC編碼模塊,對(duì)所述內(nèi)存行執(zhí)行ECC編碼產(chǎn)生對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和,其中ECC編碼模塊可以利用現(xiàn)有技術(shù)中的任何ECC編碼硬件實(shí)現(xiàn)方案來(lái)實(shí)現(xiàn);標(biāo)記內(nèi)存行產(chǎn)生模塊,被配置為將所述內(nèi)存行的預(yù)定位與標(biāo)記位進(jìn)行異或產(chǎn)生標(biāo)記內(nèi)存行;以及寫內(nèi)存模塊,將所述標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和寫入內(nèi)存。
其中ECC校驗(yàn)?zāi)K進(jìn)一步被配置為對(duì)標(biāo)記內(nèi)存行進(jìn)行ECC校驗(yàn)產(chǎn)生第一校驗(yàn)結(jié)果;對(duì)標(biāo)記內(nèi)存行的預(yù)定位進(jìn)行非邏輯運(yùn)算產(chǎn)生新標(biāo)記內(nèi)存行;對(duì)所述新標(biāo)記內(nèi)存行進(jìn)行 ECC校驗(yàn)產(chǎn)生第二校驗(yàn)結(jié)果;根據(jù)第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果獲得所述標(biāo)記內(nèi)存行的標(biāo)記位的值,ECC校驗(yàn)?zāi)K可以在現(xiàn)有的ECC校驗(yàn)電路的基礎(chǔ)上加以實(shí)現(xiàn)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行的預(yù)定位錯(cuò)誤,并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行未出錯(cuò),那么確定標(biāo)記位的值為保護(hù)標(biāo)記位; 如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行未出錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行的預(yù)定位錯(cuò)誤,那么確定標(biāo)記位的值為非保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行出現(xiàn)兩位錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新內(nèi)存行中除預(yù)定位之外的1位出錯(cuò),那么確定標(biāo)記位的值為保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行中除預(yù)定位之外的 1位出錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行出現(xiàn)兩位錯(cuò),那么確定標(biāo)記位的值為非保護(hù)標(biāo)記位;以及如果第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果均表明內(nèi)存行出現(xiàn)大于等于兩位錯(cuò), 那么標(biāo)記位的值呈現(xiàn)未知無(wú)法確定的狀態(tài)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步包括用于利用多數(shù)判決的原理確定所述內(nèi)存行對(duì)應(yīng)的標(biāo)記位的值的確定模塊。根據(jù)本發(fā)明的一個(gè)實(shí)施例,其中加載判斷模塊進(jìn)一步被配置為如果確定標(biāo)記位的值為保護(hù)標(biāo)記位并且處理器的加載訪問(wèn)請(qǐng)求為數(shù)據(jù)獲取請(qǐng)求,則禁止加載所述內(nèi)存行; 如果確定標(biāo)記位的值為保護(hù)標(biāo)記位并且處理器的加載訪問(wèn)請(qǐng)求為指令獲取請(qǐng)求,則允許加載所述內(nèi)存行;如果確定標(biāo)記位的值為非保護(hù)標(biāo)記位并且處理器的加載訪問(wèn)請(qǐng)求為數(shù)據(jù)獲取請(qǐng)求,則允許加載所述內(nèi)存行;如果確定標(biāo)記位的值為非保護(hù)標(biāo)記位并且處理器的加載訪問(wèn)請(qǐng)求為指令獲取請(qǐng)求,則允許加載所述內(nèi)存行,從硬件實(shí)現(xiàn)上,按照上述的加載邏輯增加控制邏輯電路來(lái)控制應(yīng)用程序的加載,圖9示出加載應(yīng)用程序的硬件控制邏輯真值表, 其中指令獲取請(qǐng)求表示為“ 1 ”,數(shù)據(jù)獲取請(qǐng)求表示為“0”,保護(hù)標(biāo)記位表示為“ 1 ”,非保護(hù)標(biāo)記位表示為“0”,可以看到只有在標(biāo)記位的值為保護(hù)標(biāo)記位,并且訪問(wèn)類型為數(shù)據(jù)獲取請(qǐng)求時(shí)禁止加載應(yīng)用程序,而其它情況則允許,圖10示出加載應(yīng)用程序的控制邏輯電路示意圖,利用非門和與門組合的邏輯控制電路能夠有效防止重要應(yīng)用程序不會(huì)被讀取或盜取。本發(fā)明還提供一種保護(hù)內(nèi)存中應(yīng)用程序的處理器,該處理器集成有具有上述描述特性的內(nèi)存控制器。應(yīng)當(dāng)理解,本發(fā)明的至少某些方面可以可替代地以程序產(chǎn)品實(shí)現(xiàn)。定義有關(guān)本發(fā)明的功能的程序可以通過(guò)各種信號(hào)承載介質(zhì)被傳送到數(shù)據(jù)存儲(chǔ)系統(tǒng)或計(jì)算機(jī)系統(tǒng),所述信號(hào)承載介質(zhì)包括但不限于,不可寫存儲(chǔ)介質(zhì)(例如,CD-ROM)、可寫存儲(chǔ)介質(zhì)(例如,軟盤、硬盤驅(qū)動(dòng)器、讀/寫CD ROM、光介質(zhì))以及諸如包括以太網(wǎng)的計(jì)算機(jī)和電話網(wǎng)絡(luò)之類的通信介質(zhì)。因此應(yīng)當(dāng)理解,在此類信號(hào)承載介質(zhì)中,當(dāng)攜帶或編碼有管理本發(fā)明中的方法功能的計(jì)算機(jī)可讀指令時(shí),代表本發(fā)明的可替代實(shí)施例。本發(fā)明可以硬件、軟件、固件或其組合的方式實(shí)現(xiàn)。本發(fā)明可以集中的方式在一個(gè)計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn),或以分布方式實(shí)現(xiàn),在這種分布方式中,不同的部件分布在若干互連的計(jì)算機(jī)系統(tǒng)中。適于執(zhí)行本文中描述的方法的任何計(jì)算機(jī)系統(tǒng)或其它裝置都是合適的。優(yōu)選地,本發(fā)明以計(jì)算機(jī)軟件和通用計(jì)算機(jī)硬件的組合的方式實(shí)現(xiàn),在這種實(shí)現(xiàn)方式中,當(dāng)該計(jì)算機(jī)程序被加載和執(zhí)行時(shí),控制該計(jì)算機(jī)系統(tǒng)而使其執(zhí)行本發(fā)明的方法,或構(gòu)成本發(fā)明的系統(tǒng)。
10
上面出于舉例說(shuō)明的目的,給出了本發(fā)明的優(yōu)選實(shí)施例的說(shuō)明。優(yōu)選實(shí)施例的上述說(shuō)明不是窮盡的,也不打算把本發(fā)明局限于公開(kāi)的明確形式,顯然鑒于上述教導(dǎo),許多修改和變化是可能的。對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō)顯而易見(jiàn)的這種修改和變化包括在由附加的權(quán)利要求限定的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種保護(hù)內(nèi)存中應(yīng)用程序的方法,其中所述應(yīng)用程序按照高速緩存行的大小被緩存為內(nèi)存行,該方法包括響應(yīng)于處理器的加載訪問(wèn)請(qǐng)求,從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的錯(cuò)誤檢查和糾正ECC校驗(yàn)和,其中所述標(biāo)記內(nèi)存行是通過(guò)對(duì)所述內(nèi)存行的預(yù)定位和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算獲得的;利用所述內(nèi)存行的ECC校驗(yàn)和對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述內(nèi)存行的標(biāo)記位的值;根據(jù)所述標(biāo)記位的值將所述標(biāo)記內(nèi)存行復(fù)原為所述內(nèi)存行;以及根據(jù)所述標(biāo)記位的值和處理器的加載訪問(wèn)請(qǐng)求的類型確定是否加載所述內(nèi)存行。
2.根據(jù)權(quán)利要求1所述的方法,其中在從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和之前還包括加載應(yīng)用程序,其中加載應(yīng)用程序包括響應(yīng)于接收到處理器的應(yīng)用程序加載請(qǐng)求,接收所述內(nèi)存行和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位;對(duì)所述內(nèi)存行執(zhí)行ECC編碼產(chǎn)生對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和;將所述內(nèi)存行的預(yù)定位與所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算產(chǎn)生標(biāo)記內(nèi)存行;以及將所述標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和寫入內(nèi)存。
3.根據(jù)權(quán)利要求2所述的方法,其中通過(guò)對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述標(biāo)記內(nèi)存行的標(biāo)記位的值進(jìn)一步包括對(duì)所述標(biāo)記內(nèi)存行進(jìn)行ECC校驗(yàn)產(chǎn)生第一校驗(yàn)結(jié)果; 對(duì)所述標(biāo)記內(nèi)存行的預(yù)定位進(jìn)行非邏輯運(yùn)算產(chǎn)生新標(biāo)記內(nèi)存行; 對(duì)所述新標(biāo)記內(nèi)存行進(jìn)行ECC校驗(yàn)產(chǎn)生第二校驗(yàn)結(jié)果; 根據(jù)第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果獲得所述內(nèi)存行的標(biāo)記位的值。
4.根據(jù)權(quán)利要求3所述的方法,其中根據(jù)第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果獲得所述內(nèi)存行的標(biāo)記位的值進(jìn)一步包括如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行的預(yù)定位錯(cuò)誤,并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行未出錯(cuò),那么確定標(biāo)記位的值為保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行未出錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行的預(yù)定位錯(cuò)誤,那么確定標(biāo)記位的值為非保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行出現(xiàn)兩位錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新內(nèi)存行中除預(yù)定位之外的一位出錯(cuò),那么確定標(biāo)記位的值為保護(hù)標(biāo)記位;以及如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行中除預(yù)定位之外的1位出錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行出現(xiàn)兩位錯(cuò),那么確定標(biāo)記位的值為非保護(hù)標(biāo)記位。
5.根據(jù)權(quán)利要求4所述的方法,進(jìn)一步包括利用多數(shù)判決的原理確定多個(gè)所述內(nèi)存行對(duì)應(yīng)的標(biāo)記位的值。
6.根據(jù)權(quán)利要求4或5所述的方法,其中根據(jù)標(biāo)記位的值和處理器的加載訪問(wèn)請(qǐng)求的類型確定是否加載所述內(nèi)存行進(jìn)一步包括如果確定標(biāo)記位的值為保護(hù)標(biāo)記位并且處理器的加載訪問(wèn)請(qǐng)求為數(shù)據(jù)獲取請(qǐng)求,則禁止加載所述內(nèi)存行。
7.根據(jù)權(quán)利要求6所述的方法,其中所述保護(hù)標(biāo)記位是由解密加速器為應(yīng)用程序設(shè)置的。
8.一種保護(hù)內(nèi)存中應(yīng)用程序的內(nèi)存控制器,其中所述應(yīng)用程序按照高速緩存行的大小被緩存為內(nèi)存行,該內(nèi)存控制器包括讀取模塊,被配置為響應(yīng)于處理器的加載訪問(wèn)請(qǐng)求,從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和,其中所述標(biāo)記內(nèi)存行是通過(guò)對(duì)所述內(nèi)存行的預(yù)定位和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算獲得的;ECC校驗(yàn)?zāi)K,被配置為利用所述內(nèi)存行的ECC校驗(yàn)和對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述內(nèi)存行的標(biāo)記位的值;復(fù)原模塊,被配置為根據(jù)標(biāo)記位的值將所述標(biāo)記內(nèi)存行復(fù)原為所述內(nèi)存行; 加載判斷模塊,被配置為根據(jù)標(biāo)記位的值和處理器的加載訪問(wèn)請(qǐng)求的類型確定是否加載所述內(nèi)存行。
9.根據(jù)權(quán)利要求8所述的內(nèi)存控制器,還包括接收模塊,被配置為響應(yīng)于接收到處理器的應(yīng)用程序加載請(qǐng)求,從解密加速器接收所述內(nèi)存行和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位;ECC編碼模塊,對(duì)所述內(nèi)存行執(zhí)行ECC編碼產(chǎn)生對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和; 標(biāo)記內(nèi)存行產(chǎn)生模塊,被配置為將所述內(nèi)存行的預(yù)定位與標(biāo)記位進(jìn)行異或邏輯運(yùn)算產(chǎn)生標(biāo)記內(nèi)存行;以及寫內(nèi)存模塊,將所述標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和寫入內(nèi)存。
10.根據(jù)權(quán)利要求9所述的內(nèi)存控制器,其中ECC校驗(yàn)?zāi)K進(jìn)一步被配置為 對(duì)所述標(biāo)記內(nèi)存行進(jìn)行ECC校驗(yàn)產(chǎn)生第一校驗(yàn)結(jié)果;對(duì)所述標(biāo)記內(nèi)存行的預(yù)定位進(jìn)行非邏輯運(yùn)算產(chǎn)生新標(biāo)記內(nèi)存行; 對(duì)所述新標(biāo)記內(nèi)存行進(jìn)行ECC校驗(yàn)產(chǎn)生第二校驗(yàn)結(jié)果; 根據(jù)第一校驗(yàn)結(jié)果和第二校驗(yàn)結(jié)果獲得所述標(biāo)記內(nèi)存行的標(biāo)記位的值。
11.根據(jù)權(quán)利要求10所述的內(nèi)存控制器,其中ECC校驗(yàn)?zāi)K進(jìn)一步被配置為如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行的預(yù)定位錯(cuò)誤,并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行未出錯(cuò),那么確定標(biāo)記位的值為保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行未出錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行的預(yù)定位錯(cuò)誤,那么確定標(biāo)記位的值為非保護(hù)標(biāo)記位;如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行出現(xiàn)兩位錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新內(nèi)存行中除預(yù)定位之外的一位出錯(cuò),那么確定標(biāo)記位的值為保護(hù)標(biāo)記位;以及如果第一校驗(yàn)結(jié)果表明所述標(biāo)記內(nèi)存行中除預(yù)定位之外的1位出錯(cuò),并且第二校驗(yàn)結(jié)果表明所述新標(biāo)記內(nèi)存行出現(xiàn)兩位錯(cuò),那么確定標(biāo)記位的值為非保護(hù)標(biāo)記位。
12.根據(jù)權(quán)利要求11所述的內(nèi)存控制器,進(jìn)一步包括用于利用多數(shù)判決的原理確定多個(gè)所述內(nèi)存行對(duì)應(yīng)的標(biāo)記位的值的確定模塊。
13.根據(jù)權(quán)利要求11或12所述的內(nèi)存控制器,其中加載判斷模塊進(jìn)一步被配置為 如果確定標(biāo)記位的值為保護(hù)標(biāo)記位并且處理器的加載訪問(wèn)請(qǐng)求為數(shù)據(jù)獲取請(qǐng)求,則禁止加載所述內(nèi)存行。
14.根據(jù)權(quán)利要求13所述的內(nèi)存控制器,其中所述保護(hù)標(biāo)記位是由解密加速器為應(yīng)用程序設(shè)置的。
15. 一種保護(hù)內(nèi)存中應(yīng)用程序的處理器,包括根據(jù)權(quán)利要求8-14任一個(gè)所述的內(nèi)存控制器。
全文摘要
本發(fā)明公開(kāi)一種保護(hù)內(nèi)存中應(yīng)用程序的方法、內(nèi)存控制器和處理器,其中所述應(yīng)用程序按照高速緩存行的大小被緩存為內(nèi)存行,該方法包括響應(yīng)于處理器的加載訪問(wèn)請(qǐng)求,從內(nèi)存中讀取標(biāo)記內(nèi)存行和對(duì)應(yīng)于所述內(nèi)存行的ECC校驗(yàn)和,其中所述標(biāo)記內(nèi)存行是通過(guò)對(duì)所述內(nèi)存行的預(yù)定位和用于標(biāo)識(shí)所述內(nèi)存行的標(biāo)記位進(jìn)行邏輯運(yùn)算獲得的;利用所述ECC校驗(yàn)和對(duì)所述標(biāo)記內(nèi)存行執(zhí)行ECC校驗(yàn)獲得所述內(nèi)存行的標(biāo)記位的值;根據(jù)標(biāo)記位的值將所述標(biāo)記內(nèi)存行復(fù)原為所述內(nèi)存行;根據(jù)標(biāo)記位的值和處理器的加載訪問(wèn)請(qǐng)求的類型確定是否加載所述內(nèi)存行。
文檔編號(hào)G06F12/14GK102346715SQ20101024471
公開(kāi)日2012年2月8日 申請(qǐng)日期2010年7月30日 優(yōu)先權(quán)日2010年7月30日
發(fā)明者侯銳, 劉亮, 戈弋, 李立 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司