專(zhuān)利名稱(chēng):控制對(duì)外設(shè)進(jìn)行訪(fǎng)問(wèn)的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子設(shè)備安全領(lǐng)域,更具體地,涉及保護(hù)這些電子設(shè)備免于欺騙性操作和對(duì)其完整性的攻擊的領(lǐng)域。
背景技術(shù):
已知兩種主要類(lèi)型的攻擊,即一方面,軟件類(lèi)型的攻擊,以及另一方面,關(guān)于對(duì)硬件組件的添加或替換的攻擊。
為了對(duì)抗軟件攻擊,已知所謂的高級(jí)工具,即,在操作系統(tǒng)層之上工作的工具(防病毒程序、防火墻等)。
令人遺憾地,這些工具雖然有功效,但是其嚴(yán)重的缺陷在于,可以在將這些工具載入存儲(chǔ)器之前將它們?nèi)ゼせ罨蚺月贰?br>
名為可信計(jì)算組(TCG)的協(xié)會(huì)致力于通過(guò)提供保護(hù)低級(jí)軟件層、以及用于識(shí)別物理外設(shè)的工具和方法,來(lái)克服這一缺點(diǎn)。
具體地,TCG提出了在載入之前檢查個(gè)人計(jì)算機(jī)的BIOS(基本輸入輸出系統(tǒng))的可靠性的方法。
為此,這樣的方法使用CRTM可信碼(可信測(cè)量的核心根),當(dāng)開(kāi)啟計(jì)算機(jī)來(lái)計(jì)算BIOS簽名時(shí),執(zhí)行該CRTM碼。
因此,該CRTM信任碼組成了系統(tǒng)中任何軟件安全序列的基礎(chǔ),因此也必須保護(hù)CRTM碼自身免受攻擊。
為了保護(hù)該CRTM碼,傳統(tǒng)地,規(guī)定在安裝于系統(tǒng)主板上的閃存的特定扇區(qū)中執(zhí)行該代碼。
這樣的解決方案的缺點(diǎn)是,如2003年7月17日公開(kāi)的IBM文獻(xiàn)US 2003/0135727中所描述的,例如為了升級(jí)目的,對(duì)該CRTM信任碼的修改不可能在主板上沒(méi)有物理干涉。
該文獻(xiàn)提出了該問(wèn)題的第一解決方案,在于在主板附加卡(功能插件)中,該功能插件具有自己的BIOS。然后能夠通過(guò)該功能插件的物理置換來(lái)簡(jiǎn)單地影響升級(jí)。
盡管該方案在TCG開(kāi)發(fā)的規(guī)范的框架范圍內(nèi)是可接受的,但是將理解,當(dāng)期望由用戶(hù)或第三方(具體地,游戲控制臺(tái)、IMEI代碼和GSM設(shè)備的SIM鎖)擴(kuò)展引導(dǎo)裝入程序和對(duì)第二類(lèi)型的攻擊、即硬件攻擊進(jìn)行BIOS保護(hù)時(shí),這是根本不可接受的。
由于為了去激活(deactivate)所有系統(tǒng)的安全功能,需要的是去除該功能插件,因此,該方案暴露了該擴(kuò)展保護(hù)情況的主要缺點(diǎn)。
TCG協(xié)會(huì)還提出了通過(guò)控制使用的外設(shè)的計(jì)算機(jī)(PC)硬件集成的問(wèn)題。更具體地,協(xié)會(huì)指定了TPM模塊的使用,該模塊用于登記計(jì)算機(jī)外設(shè)的名稱(chēng)和位置,以便如果例如硬盤(pán)的外設(shè)在兩個(gè)引導(dǎo)序列之間被替換,則產(chǎn)生警報(bào)。這包括檢查外設(shè)的身份。
以類(lèi)似的方式,在游戲控制臺(tái)的環(huán)境中,文獻(xiàn)WO 43716(3DO)描述了由(控制臺(tái)的)處理器驗(yàn)證外設(shè)(游戲盒帶(game cassette))以抵制盒帶的非法拷貝的方法。
3DO文獻(xiàn)提出了將密鑰并入盒帶,盒帶將由也持有該密鑰的控制臺(tái)進(jìn)行校驗(yàn)。為了防止由盜版盒帶對(duì)充分驗(yàn)證的盒帶的替換,附加地,3DO提出了使用在整個(gè)游戲中的盒帶與控制臺(tái)之間進(jìn)行安全數(shù)據(jù)交換的機(jī)制。從而,控制臺(tái)檢查它總與相同的盒帶通話(huà)。
令人遺憾地,該方案需要在外設(shè)(盒帶)中嵌入和隱藏密鑰和具有秘密安全算法的專(zhuān)用程序。該限制使該類(lèi)型的技術(shù)的開(kāi)發(fā)停滯下來(lái)。
發(fā)明內(nèi)容
本發(fā)明可以克服上述缺點(diǎn)。
為此,申請(qǐng)人選擇了非常不同的方法,該方法即非基于識(shí)別機(jī)制,也非基于驗(yàn)證機(jī)制。
更具體地,根據(jù)第一方案,本發(fā)明涉及一種硬件單元,由處理器控制對(duì)該處理器外設(shè)的訪(fǎng)問(wèn),所述硬件單元包括裝置,用于觸發(fā)處理器中斷,稱(chēng)為控制中斷;裝置,用于從處理器和下面的中斷觸發(fā)中獲得授權(quán)訪(fǎng)問(wèn)外設(shè)的代碼;裝置,用于將該訪(fǎng)問(wèn)授權(quán)代碼與預(yù)定參考值進(jìn)行比較;以及所謂的驗(yàn)證裝置,設(shè)計(jì)用于依據(jù)所述比較的結(jié)果來(lái)生成驗(yàn)證訪(fǎng)問(wèn)外設(shè)的電信號(hào)的電信號(hào)。
因此,根據(jù)本發(fā)明的機(jī)制是基于處理器對(duì)在外設(shè)前面放置的硬件單元所監(jiān)視的訪(fǎng)問(wèn)授權(quán)代碼的發(fā)布,該發(fā)布用于總線(xiàn)的斷開(kāi)。
以高度有利的方式,在訪(fǎng)問(wèn)控制硬件單元以指向處理器的中斷的形式,已經(jīng)作出對(duì)處理器的明確請(qǐng)求以獲得訪(fǎng)問(wèn)授權(quán)代碼之后,由訪(fǎng)問(wèn)控制硬件單元來(lái)接收訪(fǎng)問(wèn)授權(quán)代碼。因此,硬件單元確信已由處理器將訪(fǎng)問(wèn)授權(quán)代碼提供給該硬件單元。
由于該特征保證從由控制中斷程序組成的信任組件中確定地接收到訪(fǎng)問(wèn)授權(quán)代碼,所以該特征可以實(shí)現(xiàn)對(duì)外設(shè)訪(fǎng)問(wèn)的高度有效控制。
換言之,本發(fā)明基于軟件組件(軟件程序)的使用,該軟件程序組成訪(fǎng)問(wèn)外設(shè)的單個(gè)點(diǎn),以及該軟件程序結(jié)合并通過(guò)訪(fǎng)問(wèn)控制硬件單元來(lái)監(jiān)視訪(fǎng)問(wèn)外設(shè)的電信號(hào)。
優(yōu)選地,該軟件組件位于處理器的安全和控制區(qū)域。
因此,本發(fā)明可以通過(guò)由硬件裝置在最低電平上驗(yàn)證訪(fǎng)問(wèn)該外設(shè)的電信號(hào),來(lái)控制對(duì)處理器外設(shè)的訪(fǎng)問(wèn)。具體地,可以從屏幕、鍵盤(pán)、存儲(chǔ)器、通信接口控制器、存儲(chǔ)管理單元(MMU)或存儲(chǔ)保護(hù)單元(MPU)中選擇外設(shè)。
當(dāng)本發(fā)明用于控制對(duì)具有啟動(dòng)代碼(引導(dǎo)裝入程序)的閃存的寫(xiě)入訪(fǎng)問(wèn)時(shí),允許在沒(méi)有物理干涉的情況下更新該啟動(dòng)代碼,同時(shí)保護(hù)該代碼免于欺騙性操作。
在該文獻(xiàn)的剩余部分中,術(shù)語(yǔ)“外設(shè)”將用于有關(guān)任何類(lèi)型的電子組件(屏幕、鍵盤(pán)、存儲(chǔ)器、通信接口、智能卡接口、MMU、MPU等),這些組件或者是離散組件、或者“集成”于FPGA或ASIC。
類(lèi)似地,表述“訪(fǎng)問(wèn)電信號(hào)”將用于有關(guān)必須被激活以選擇外設(shè)或?qū)懭胪庠O(shè)的任何電信號(hào)(片選(CS)型或?qū)懺试S(WE)型信號(hào))。
類(lèi)似地,術(shù)語(yǔ)“中斷”將用于有關(guān)設(shè)計(jì)用于異步地或以其它方式中止軟件執(zhí)行的任何裝置。
為了顯著加強(qiáng)系統(tǒng)的安全性,控制中斷是非可屏蔽中斷,這意味著不可能屏蔽上述中止。
本領(lǐng)域技術(shù)人員將理解,依據(jù)所選結(jié)構(gòu),可以使用不同類(lèi)型的信號(hào)用于此目的,以及具體地INTEL x86家族結(jié)構(gòu)的NMI信號(hào);MOTOROLA 68k家族結(jié)構(gòu)的IPL<7>等級(jí);與MC68K結(jié)構(gòu)中的/BERR信號(hào)相關(guān)聯(lián)的地址或數(shù)據(jù)誤差周期;ARM7TDMI結(jié)構(gòu)中的ABORT例外。
根據(jù)本發(fā)明,從而僅在將與硬件單元的已知預(yù)定參考值兼容的訪(fǎng)問(wèn)授權(quán)代碼呈現(xiàn)給控制對(duì)所述外設(shè)的訪(fǎng)問(wèn)的硬件單元時(shí),可以訪(fǎng)問(wèn)受保護(hù)的外設(shè)。
因此,具體地,本發(fā)明可以保護(hù)所謂的安全存儲(chǔ)器,例如包含于符合GSM的移動(dòng)電話(huà)中的用于存儲(chǔ)與運(yùn)營(yíng)商定購(gòu)的商業(yè)術(shù)語(yǔ)的安全存儲(chǔ)器(SIM鎖)。
僅在有效訪(fǎng)問(wèn)授權(quán)代碼呈現(xiàn)給控制對(duì)該存儲(chǔ)器進(jìn)行訪(fǎng)問(wèn)的硬件單元時(shí),才可能對(duì)這些SIM鎖規(guī)則進(jìn)行欺騙性替換。
本發(fā)明還可以用于遠(yuǎn)程地更新BIOS、或者設(shè)備的操作系統(tǒng)。因而,將在客戶(hù)不必訪(fǎng)問(wèn)升級(jí)中心地情況下,易于直接通過(guò)GSM無(wú)線(xiàn)鏈路,對(duì)便攜式電話(huà)進(jìn)行升級(jí)。
因而,本發(fā)明可以用于防止對(duì)PC的BIOS的任何欺騙性修改,從而顯著地提高PC的安全性,尤其在BIOS包含更高級(jí)安全機(jī)制時(shí)。
優(yōu)選地,控制硬件單元附加地包括獲得觸發(fā)代碼的裝置,以及一旦獲得觸發(fā)代碼,則指定觸發(fā)控制中斷的裝置來(lái)觸發(fā)中斷。
例如,在對(duì)外設(shè)進(jìn)行任何訪(fǎng)問(wèn)之前,可以由處理器發(fā)送該觸發(fā)代碼。因而,在處理器與硬件單元之間安排完全閉環(huán)機(jī)制,這意味著,在驗(yàn)證訪(fǎng)問(wèn)信號(hào)之前,系統(tǒng)地,訪(fǎng)問(wèn)控制硬件單元請(qǐng)求來(lái)自處理器的訪(fǎng)問(wèn)控制硬件單元。
優(yōu)選地,訪(fǎng)問(wèn)控制硬件單元包括將該觸發(fā)代碼與預(yù)定參考值進(jìn)行比較的裝置,所述觸發(fā)裝置設(shè)計(jì)用于根據(jù)所述比較結(jié)果來(lái)觸發(fā)控制中斷。
因此,在出現(xiàn)錯(cuò)誤的觸發(fā)代碼時(shí),如以下所述,可以引入另一過(guò)程。
因此,在可選實(shí)施例中,根據(jù)本發(fā)明的訪(fǎng)問(wèn)控制硬件單元包括以下裝置,該裝置用于在所述訪(fǎng)問(wèn)授權(quán)代碼或所述觸發(fā)代碼不同于預(yù)定參考值時(shí)來(lái)觸發(fā)處理器中斷,稱(chēng)為警告中斷。優(yōu)選地,該警告中斷是非可屏蔽中斷。
在第一可選實(shí)施例中,預(yù)定參考值是常數(shù)。
因此,控制中斷程序可以通過(guò)簡(jiǎn)單地將該常數(shù)發(fā)送至控制硬件單元,來(lái)授權(quán)對(duì)外設(shè)的訪(fǎng)問(wèn)。該變體尤其易于產(chǎn)生作用。
在第二可選實(shí)施例中,根據(jù)本發(fā)明的訪(fǎng)問(wèn)控制硬件單元包括根據(jù)預(yù)定規(guī)則生成上述參考值的裝置。
有利地,該特征用于加強(qiáng)對(duì)訪(fǎng)問(wèn)外設(shè)的控制,這是由于為了能夠?qū)⒂行У脑L(fǎng)問(wèn)授權(quán)代碼呈現(xiàn)給訪(fǎng)問(wèn)控制硬件單元,盜版者也需要知道該預(yù)定規(guī)則。
在該第二可選實(shí)施例的優(yōu)選模式中,預(yù)定參考值是在硬件單元開(kāi)啟是初始化了的計(jì)數(shù)器,以及預(yù)定規(guī)則包括,每次獲得訪(fǎng)問(wèn)授權(quán)代碼則該計(jì)數(shù)器加1。
具體地,可以由與有限狀態(tài)控制器相關(guān)聯(lián)的計(jì)數(shù)器來(lái)實(shí)施該預(yù)定規(guī)則,這避免了花費(fèi)更高的(協(xié))處理器的使用,并限制了硬件單元的整體操作成本。
根據(jù)另一有利特征,控制對(duì)外設(shè)的訪(fǎng)問(wèn)的硬件單元的驗(yàn)證裝置包括邏輯組合裝置,設(shè)計(jì)用于接收請(qǐng)求訪(fǎng)問(wèn)外設(shè)的電信號(hào);接收驗(yàn)證信號(hào);以及根據(jù)訪(fǎng)問(wèn)請(qǐng)求電信號(hào)的狀態(tài)、驗(yàn)證信號(hào)的狀態(tài)、以及真值表中描述的邏輯,來(lái)驗(yàn)證訪(fǎng)問(wèn)電信號(hào)。
根據(jù)該特征,因而在滿(mǎn)足兩個(gè)條件時(shí),即一方面,通過(guò)例如處理器的第三方呈現(xiàn)對(duì)外設(shè)的訪(fǎng)問(wèn)請(qǐng)求,以及另一方面,當(dāng)上述比較的結(jié)果代表了通過(guò)控制硬件單元獲得有效的訪(fǎng)問(wèn)授權(quán)代碼時(shí),來(lái)驗(yàn)證對(duì)外設(shè)的訪(fǎng)問(wèn)。
優(yōu)選地,由訪(fǎng)問(wèn)請(qǐng)求信號(hào)與驗(yàn)證信號(hào)之間的“邏輯與”組合產(chǎn)生訪(fǎng)問(wèn)信號(hào)。該實(shí)施例尤其易于產(chǎn)生作用。
在優(yōu)選實(shí)施例中,根據(jù)本發(fā)明的訪(fǎng)問(wèn)控制硬件單元包括讀取訪(fǎng)問(wèn)請(qǐng)求電信號(hào)狀態(tài)的裝置、以及根據(jù)該狀態(tài)和訪(fǎng)問(wèn)驗(yàn)證電信號(hào)的狀態(tài)來(lái)觸發(fā)警告中斷(優(yōu)選地,非可掩蔽式)的裝置。
有利地,該特征在沒(méi)有將訪(fǎng)問(wèn)授權(quán)代碼呈現(xiàn)給訪(fǎng)問(wèn)控制硬件單元的情況下,當(dāng)訪(fǎng)問(wèn)請(qǐng)求電信號(hào)的狀態(tài)代表訪(fǎng)問(wèn)外設(shè)的請(qǐng)求時(shí),使得能夠觸發(fā)該警告中斷。
在優(yōu)選實(shí)施例中,根據(jù)本發(fā)明的訪(fǎng)問(wèn)控制硬件單元包括禁止驗(yàn)證信號(hào)的裝置,優(yōu)選地,在一個(gè)或多個(gè)對(duì)外設(shè)的訪(fǎng)問(wèn)之后,對(duì)該禁止產(chǎn)生作用。
有利地,該特征可以加強(qiáng)對(duì)訪(fǎng)問(wèn)外設(shè)的控制,這是由于即使在每個(gè)對(duì)外設(shè)的訪(fǎng)問(wèn)之前,也必須有規(guī)律地執(zhí)行控制。
在另一實(shí)施例中,在從訪(fǎng)問(wèn)驗(yàn)證電信號(hào)的生成起計(jì)數(shù)、或者從獲得訪(fǎng)問(wèn)代碼起計(jì)數(shù)的預(yù)定延遲之后,對(duì)驗(yàn)證信號(hào)的禁止產(chǎn)生作用。
有利地,該特征可以在該時(shí)延期間不進(jìn)行控制的情況下授權(quán)訪(fǎng)問(wèn)外設(shè),這提高了系統(tǒng)的整體性能。該特征在與外設(shè)交換的數(shù)據(jù)值很大時(shí)、如在屏幕的情況下,尤其有用。
相應(yīng)地,本發(fā)明涉及由處理器控制對(duì)該處理器的外設(shè)進(jìn)行訪(fǎng)問(wèn)的方法。所述方法包括以下步驟觸發(fā)稱(chēng)為控制中斷的處理器中斷,優(yōu)選地,非可掩蔽式;從處理器中并在所述觸發(fā)之后,獲得外設(shè)的訪(fǎng)問(wèn)授權(quán)代碼;將該訪(fǎng)問(wèn)授權(quán)代碼與預(yù)定參考值進(jìn)行比較;根據(jù)所述比較步驟的結(jié)果來(lái)生成驗(yàn)證外設(shè)訪(fǎng)問(wèn)信號(hào)的電信號(hào)。
所給出的有關(guān)控制硬件單元的該訪(fǎng)問(wèn)控制方法的特定優(yōu)點(diǎn)和特征與先前描述的那些是相同的,所以將不再重復(fù)。該方法實(shí)質(zhì)上包括檢查必要地從信任組件中進(jìn)行接收的一個(gè)或多個(gè)訪(fǎng)問(wèn)授權(quán)代碼的有效性,通過(guò)將該授權(quán)代碼與預(yù)定參考值(常數(shù)或根據(jù)規(guī)則生成)進(jìn)行比較,以及根據(jù)該比較來(lái)驗(yàn)證外設(shè)訪(fǎng)問(wèn)電信號(hào)。
根據(jù)另一方案,本發(fā)明涉及一種處理器,包括以上簡(jiǎn)要描述的訪(fǎng)問(wèn)控制硬件單元。該處理器還包括裝置,用于實(shí)施設(shè)計(jì)以獲得訪(fǎng)問(wèn)授權(quán)代碼的控制中斷程序;以及裝置,用于將該訪(fǎng)問(wèn)授權(quán)代碼發(fā)送至訪(fǎng)問(wèn)控制硬件單元。
在本發(fā)明的優(yōu)選實(shí)施例中,在處理器中嵌入先前描述的訪(fǎng)問(wèn)控制硬件單元,該處理器包括將授權(quán)訪(fǎng)問(wèn)給定外設(shè)的代碼發(fā)送至控制硬件單元的裝置。
本發(fā)明的該優(yōu)選實(shí)施例顯著地加強(qiáng)了對(duì)外設(shè)的訪(fǎng)問(wèn)控制,這是由于,不可能物理地旁路、或者換言之,來(lái)分路訪(fǎng)問(wèn)控制硬件單元。
優(yōu)選地,根據(jù)本發(fā)明的處理器包括保護(hù)對(duì)其的訪(fǎng)問(wèn)的外設(shè)。
具體地,該外設(shè)可以是存儲(chǔ)管理單元。
因此,本發(fā)明可以保護(hù)對(duì)存儲(chǔ)管理單元(MMU)的訪(fǎng)問(wèn)。這可以在相同的處理器上創(chuàng)建兩個(gè)完全密封的系統(tǒng)環(huán)境。如果另外地提供空間用于這兩個(gè)環(huán)境之間的控制數(shù)據(jù)交換,則本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,構(gòu)建這樣的設(shè)備是簡(jiǎn)單的事情,其中,將特定功能(操作系統(tǒng)或諸如支付、驗(yàn)證、版權(quán)保護(hù)和拷貝保護(hù)應(yīng)用程序之類(lèi)的敏感的應(yīng)用程序)與更加開(kāi)放、因而更加易于受到攻擊的應(yīng)用程序(因特網(wǎng)瀏覽器、游戲、視頻、電子郵件等)相隔離。
根據(jù)本發(fā)明的包含于處理器中的外設(shè)還可以是用于處理器引導(dǎo)存儲(chǔ)器的寫(xiě)入控制器。
因此,該優(yōu)選實(shí)施例保證了處理器引導(dǎo)存儲(chǔ)器的安全,該保護(hù)使得不可能欺騙性地修改包含于該存儲(chǔ)器中的數(shù)據(jù),由于該區(qū)域經(jīng)常處理較高級(jí)地安全程序調(diào)用,所以這里是安全非常關(guān)鍵的區(qū)域。
相應(yīng)地,本發(fā)明涉及管理對(duì)外設(shè)的訪(fǎng)問(wèn)的方法。該管理方法包括運(yùn)行與控制中斷(優(yōu)選地,非可屏蔽式的)相關(guān)聯(lián)的程序的步驟。如上面所簡(jiǎn)要描述的,該控制程序包括將訪(fǎng)問(wèn)授權(quán)代碼發(fā)送至訪(fǎng)問(wèn)控制硬件單元的步驟。
在第一可選實(shí)施例中,訪(fǎng)問(wèn)控制代碼是從受保護(hù)存儲(chǔ)器中讀取的常數(shù)。
在第二可選實(shí)施例中,附加地,訪(fǎng)問(wèn)管理方法包括根據(jù)預(yù)定規(guī)則生成訪(fǎng)問(wèn)授權(quán)代碼的步驟。
本領(lǐng)域技術(shù)人員將易于認(rèn)識(shí)到,在該第一可選實(shí)施例中,優(yōu)選地是屏蔽所有中斷,在沒(méi)有屏蔽所有中斷的情況下,在從受保護(hù)存儲(chǔ)器中讀取常數(shù)與觸發(fā)非可屏蔽控制中斷程序之間的時(shí)間間隔期間,對(duì)外設(shè)進(jìn)行非法訪(fǎng)問(wèn)會(huì)受到惡意中斷的影響。
所給出的有關(guān)根據(jù)本發(fā)明的處理器的該訪(fǎng)問(wèn)管理方法的特定優(yōu)點(diǎn)和特征與先前簡(jiǎn)要描述的那些是相同的,所以將不再重復(fù)。該方法實(shí)質(zhì)上由以下組成必要地從信任組件(即,實(shí)施控制中斷程序的處理器)中提供對(duì)授權(quán)代碼的訪(fǎng)問(wèn),由控制硬件單元將這些代碼與預(yù)定參考值(常數(shù)或根據(jù)規(guī)則生成)進(jìn)行比較,來(lái)授權(quán)或拒絕對(duì)外設(shè)的訪(fǎng)問(wèn)。
本發(fā)明還公開(kāi)了計(jì)算機(jī)程序,包括訪(fǎng)問(wèn)外設(shè)的指令、以及如之前簡(jiǎn)要描述的,在執(zhí)行該訪(fǎng)問(wèn)指令之前,將觸發(fā)代碼發(fā)送給控制訪(fǎng)問(wèn)該外設(shè)的硬件單元。
優(yōu)選地,該計(jì)算機(jī)程序附加地包括根據(jù)生成訪(fǎng)問(wèn)授權(quán)代碼的預(yù)定規(guī)則來(lái)生成觸發(fā)代碼的裝置。
該計(jì)算機(jī)程序組成訪(fǎng)問(wèn)外設(shè)的單個(gè)點(diǎn),優(yōu)選地,位于處理器的安全和控制區(qū)域中。該程序結(jié)合硬件單元來(lái)控制訪(fǎng)問(wèn)該外設(shè)的電信號(hào)。
本發(fā)明還公開(kāi)了處理器,設(shè)計(jì)用于實(shí)現(xiàn)訪(fǎng)問(wèn)控制方法、訪(fǎng)問(wèn)管理方法、和/或諸如以上所簡(jiǎn)要描述之類(lèi)的計(jì)算機(jī)程序。
通過(guò)閱讀以下描述的特定實(shí)施例,本發(fā)明的其它方案和優(yōu)點(diǎn)將變得更加清楚,參考附圖,該描述僅作為非限制性示例提出,其中圖1示出了在第一實(shí)施例中的根據(jù)本發(fā)明的處理器;圖2示出了在第二實(shí)施例中的根據(jù)本發(fā)明的處理器;圖3示出了在優(yōu)選實(shí)施例中的根據(jù)本發(fā)明的訪(fǎng)問(wèn)控制硬件單元;圖4a和4b以控制圖的形式示出了根據(jù)本發(fā)明的訪(fǎng)問(wèn)控制方法的主要步驟;圖5以結(jié)構(gòu)框圖的形式示出了在優(yōu)選實(shí)施例中根據(jù)本發(fā)明的控制中斷程序的主要步驟;以及圖6以結(jié)構(gòu)框圖的形式示出了根據(jù)本發(fā)明的訪(fǎng)問(wèn)受保護(hù)外設(shè)的程序的主要步驟。
具體實(shí)施例方式
這里描述的本發(fā)明的實(shí)施例更具體地涉及對(duì)訪(fǎng)問(wèn)包含于處理器中的引導(dǎo)存儲(chǔ)器的保護(hù)。
圖1描述了在優(yōu)選實(shí)施例中的根據(jù)本發(fā)明的處理器110。
處理器110包括引導(dǎo)存儲(chǔ)器120(BOOT-ROM)和受保護(hù)的易失性存儲(chǔ)器(RAM)。該引導(dǎo)存儲(chǔ)器120包括中斷向量表VECT、兩個(gè)中斷程序、各個(gè)控制IRT1和警告IRT2、以及計(jì)算機(jī)程序PROG。
該計(jì)算機(jī)程序PROG是處理器內(nèi)部的外設(shè)P的控制程序,這樣的程序通常稱(chēng)為“驅(qū)動(dòng)器”。
在這里描述的優(yōu)選實(shí)施例中,處理器內(nèi)部外設(shè)P是用于上述引導(dǎo)存儲(chǔ)器120的寫(xiě)入控制器。
處理器110包括根據(jù)本發(fā)明的控制訪(fǎng)問(wèn)外設(shè)P的硬件單元20。
該訪(fǎng)問(wèn)控制硬件單元20包括獲取用于訪(fǎng)問(wèn)外設(shè)P的觸發(fā)代碼Code-DD和授權(quán)代碼Code-AA的裝置。
在這里描述的實(shí)施例中,從相同的寄存器21中獲得觸發(fā)代碼Code-DD和訪(fǎng)問(wèn)授權(quán)代碼Code-AA。
在這里描述的優(yōu)選實(shí)施例中由控制中斷程序IRT1將訪(fǎng)問(wèn)授權(quán)代碼Code-AA寫(xiě)入寄存器21中;以及由外設(shè)P的驅(qū)動(dòng)器PROM將觸發(fā)代碼Code-DD寫(xiě)入寄存器21中。
因此,根據(jù)本發(fā)明,在訪(fǎng)問(wèn)外設(shè)P的每個(gè)指令(寫(xiě)入、讀取等)之前,計(jì)算機(jī)程序PROG將觸發(fā)代碼Code-DD寫(xiě)入硬件單元20的寄存器21中。
在這里描述的實(shí)施例中,觸發(fā)代碼Code-DD和訪(fǎng)問(wèn)授權(quán)代碼Code-AA是根據(jù)預(yù)定增量規(guī)則計(jì)算的相同變量的兩個(gè)連續(xù)值。
該變量存儲(chǔ)于處理器的易失性RAM存儲(chǔ)器的受保護(hù)區(qū)域中。該存儲(chǔ)器僅可由計(jì)算機(jī)程序PROG和控制中斷程序IRT1來(lái)訪(fǎng)問(wèn)。
訪(fǎng)問(wèn)控制硬件單元20還包括裝置24,設(shè)計(jì)用于在將授權(quán)代碼Code-AA或觸發(fā)代碼Code-DD寫(xiě)入寄存器21時(shí),根據(jù)預(yù)定規(guī)則來(lái)生成參考值Code-UMCA。
在這里描述的優(yōu)選實(shí)施例中,該規(guī)則包括使Code-UMCA計(jì)數(shù)器遞增,Code-UMCA計(jì)數(shù)器在開(kāi)啟處理器110時(shí)初始化。
訪(fǎng)問(wèn)控制硬件單元20還包括裝置22,將從寄存器21中獲得的訪(fǎng)問(wèn)授權(quán)代碼Code-AA(以及觸發(fā)代碼Code-DD)與通過(guò)生成該值的裝置24計(jì)算得到的預(yù)定參考值Code-UMCA進(jìn)行比較。
在這里描述的優(yōu)選實(shí)施例中,這些比較裝置22由有線(xiàn)邏輯器組成。
情況可以是,這些比較裝置22設(shè)計(jì)用于在發(fā)現(xiàn)觸發(fā)代碼Code-DD等于參考Code-UMCA的當(dāng)前值時(shí),將第一信號(hào)發(fā)送給中斷觸發(fā)單元26。這將參照?qǐng)D4a在之后進(jìn)行描述。
在接收該第一信號(hào)時(shí),中斷觸發(fā)裝置26生成中斷信號(hào)。在這里描述的示例中,該終端信號(hào)是非可屏蔽中斷信號(hào)NMI1。
在接收該非可屏蔽中斷信號(hào)NMI1時(shí),處理器通過(guò)中斷向量表VECT來(lái)執(zhí)行控制中斷程序IRT1。
該控制中斷程序IRT1實(shí)施計(jì)算功能Gen-Code,設(shè)計(jì)用于根據(jù)預(yù)定規(guī)則來(lái)計(jì)算訪(fǎng)問(wèn)授權(quán)代碼Code-AA的新值,將該新值存儲(chǔ)于受保護(hù)存儲(chǔ)器中,以及將該新的Code-AA值寫(xiě)入訪(fǎng)問(wèn)控制硬件單元20的寄存器21中。
該預(yù)定規(guī)則與由生成參考值Code-UMCA的裝置24實(shí)施的預(yù)定規(guī)則相同。因此,在這里描述的優(yōu)選實(shí)施例中,該規(guī)則是遞增規(guī)則,以及訪(fǎng)問(wèn)授權(quán)代碼Code-AA等于觸發(fā)代碼Code-DD的值加一。
當(dāng)獲得訪(fǎng)問(wèn)授權(quán)代碼Code-AA的裝置21從控制中斷程序IRT1中接收授權(quán)代碼Code-AA時(shí),生成參考值Code-UMCA的裝置24根據(jù)預(yù)定增量規(guī)則來(lái)生成新的參考值。
然后,通過(guò)先前描述的比較裝置22對(duì)這兩個(gè)新值進(jìn)行比較。
根據(jù)本發(fā)明,比較裝置22設(shè)計(jì)用于在訪(fǎng)問(wèn)控制硬件單元20的觸發(fā)器23中設(shè)置代表兩新值比較結(jié)果的值。
在這里描述的實(shí)施例中,將假設(shè)當(dāng)新的訪(fǎng)問(wèn)授權(quán)代碼Code-AA和新的預(yù)定參考值Code-UMCA相等時(shí),有線(xiàn)邏輯22在觸發(fā)23中設(shè)置值1。
因此,在這里描述的優(yōu)選實(shí)施例中,當(dāng)連續(xù)地從驅(qū)動(dòng)器器PROG和從控制中斷程序IRT1中接收的觸發(fā)代碼Code-DD和授權(quán)代碼Code-AA等于裝置24在接收代碼時(shí)生成的兩預(yù)定參考值Code-UMCA時(shí),將觸發(fā)器23的內(nèi)容設(shè)置為1。
根據(jù)該優(yōu)選實(shí)施例,當(dāng)觸發(fā)器23設(shè)置為1時(shí),生成用于傳輸至訪(fǎng)問(wèn)控制硬件單元20的邏輯組合裝置25的驗(yàn)證電信號(hào)SIG-VAL。
因此,在該優(yōu)選實(shí)施例中,在滿(mǎn)足上述兩條件時(shí)生成驗(yàn)證信號(hào)SIG-VAL。
在將觸發(fā)代碼Code-DD傳輸至訪(fǎng)問(wèn)控制硬件單元20時(shí),驅(qū)動(dòng)器PROG根據(jù)預(yù)定規(guī)則(即,在這里描述的實(shí)施例中進(jìn)行遞增)生成新值,并將該新值存儲(chǔ)于受保護(hù)的易失性RAM存儲(chǔ)器中。
然后,外設(shè)P的驅(qū)動(dòng)器執(zhí)行訪(fǎng)問(wèn)外設(shè)P的指令。
以本領(lǐng)域技術(shù)人員已知的方式,該指令在地址解碼器27的輸出處生成傳輸至外設(shè)P的片選型訪(fǎng)問(wèn)電信號(hào)。
根據(jù)本發(fā)明,不將該訪(fǎng)問(wèn)信號(hào)直接傳輸至外設(shè)P,而是遞送至上述邏輯組合裝置25的輸入。
在該文獻(xiàn)的剩余部分中,將該信號(hào)稱(chēng)為訪(fǎng)問(wèn)請(qǐng)求電信號(hào)CS-RQ。
在輸入處一方面接收請(qǐng)求訪(fǎng)問(wèn)外設(shè)P的電信號(hào)CS-RQ、另一方面接收驗(yàn)證信號(hào)SIG-VAL的邏輯組合裝置25還包括,以已知方式設(shè)計(jì)用于生成傳輸至外設(shè)P的片選型訪(fǎng)問(wèn)信號(hào)的真值表。
換言之,為了本發(fā)明的目的,真值表25有利于驗(yàn)證訪(fǎng)問(wèn)外設(shè)P的電信號(hào)。
在這里描述的優(yōu)選實(shí)施例中,將在訪(fǎng)問(wèn)組合裝置CS輸出處的訪(fǎng)問(wèn)信號(hào)CS遞送至觸發(fā)器23的輸入。
在該實(shí)施例中,當(dāng)對(duì)外設(shè)P進(jìn)行訪(fǎng)問(wèn)時(shí),即,當(dāng)訪(fǎng)問(wèn)信號(hào)CS的狀態(tài)為高時(shí),觸發(fā)器23的值重新設(shè)置為0。
這具有在相同觸發(fā)器23的輸出處禁止驗(yàn)證信號(hào)SIG-VAL的作用,因此具有使對(duì)外設(shè)P的任何訪(fǎng)問(wèn)無(wú)效的作用。
在另一實(shí)施例中,以循環(huán)方式,例如,每五次訪(fǎng)問(wèn),而不是每次訪(fǎng)問(wèn)外設(shè)P的方式,來(lái)禁止驗(yàn)證信號(hào)SIG-VAL。
在另一優(yōu)選實(shí)施例中,訪(fǎng)問(wèn)信號(hào)CS不反饋至觸發(fā)器23。觸發(fā)器23設(shè)計(jì)用于在從生成該相同的信號(hào)起、或者從獲得觸發(fā)代碼Code-DD起進(jìn)行計(jì)數(shù)的預(yù)定時(shí)延之后,自動(dòng)地禁止驗(yàn)證信號(hào)SIG-VAL。
在這里描述的優(yōu)選實(shí)施例中,比較裝置22設(shè)計(jì)用于在通過(guò)比較檢測(cè)到,從寄存器21中獲得的代碼不同于接收該代碼時(shí)生成的預(yù)定參考值Code-UMCA時(shí),將第二信號(hào)發(fā)送至中斷觸發(fā)單元26。
在接收該第二信號(hào)時(shí),中斷觸發(fā)裝置26將第二中斷信號(hào)發(fā)送至引導(dǎo)存儲(chǔ)器120。在這里描述的實(shí)施例中,這是非可屏蔽中斷信號(hào)NMI2。
因此,如果惡意程序在寄存器21中寫(xiě)入隨機(jī)代碼,則比較裝置22將觸發(fā)非可屏蔽中斷INM2。
在接收該第二中斷信號(hào)時(shí),處理器執(zhí)行警告中斷程序IRT2,用于控制對(duì)外設(shè)P的欺騙性訪(fǎng)問(wèn)。
圖2示出了在另一實(shí)施例中的根據(jù)本發(fā)明的另一處理器210。
該處理器210與先前參照?qǐng)D1描述的處理器110之間僅有的差異在于,處理器210用于控制對(duì)外部外設(shè)P的訪(fǎng)問(wèn)。
所給出的所有其它特征是相同的,所以將不再進(jìn)一步描述。
圖3以處理器10的外部組件的形式示出了訪(fǎng)問(wèn)控制硬件單元20。
在本發(fā)明的該實(shí)施例中,與訪(fǎng)問(wèn)控制硬件單元20合作的處理器10包括與對(duì)圖1中的處理器110進(jìn)行描述的引導(dǎo)存儲(chǔ)器相同的引導(dǎo)存儲(chǔ)器120。
該附圖中的訪(fǎng)問(wèn)控制硬件單元20與先前參照?qǐng)D1描述的訪(fǎng)問(wèn)控制硬件單元相同,以下將不再進(jìn)行描述。
圖4a以有限狀態(tài)控制器的形式示出了在優(yōu)選實(shí)施例中,根據(jù)本發(fā)明的訪(fǎng)問(wèn)控制方法的主要步驟。
在該附圖中,“橢圓”代表狀態(tài),箭頭代表轉(zhuǎn)移、以及矩形代表實(shí)現(xiàn)轉(zhuǎn)移的必要和充分條件。
在該描述的剩余部分,將可交替地使用計(jì)算機(jī)程序領(lǐng)域的技術(shù)人員已知的術(shù)語(yǔ)“步驟”或“狀態(tài)”。
該控制器包括第一初始化狀態(tài)E10,在使用輸出值(例如,零)對(duì)預(yù)定參考值Code-UMCA進(jìn)行初始化時(shí)激勵(lì)該第一初始化狀態(tài)E10,然后存儲(chǔ)于易失性RAM存儲(chǔ)器中。
然后進(jìn)入等待狀態(tài)E20。
當(dāng)在該等待狀態(tài)E20中,訪(fǎng)問(wèn)控制硬件單元接收觸發(fā)代碼Code-DD(轉(zhuǎn)移E25)時(shí),進(jìn)入狀態(tài)E30,在其中將該觸發(fā)代碼Code-DD與預(yù)定參考值Code-UMCA進(jìn)行比較。
然而,當(dāng)在該等待狀態(tài)E20中,在外設(shè)P處檢測(cè)到訪(fǎng)問(wèn)請(qǐng)求電信號(hào)CS-RQ(轉(zhuǎn)移E22)時(shí),進(jìn)入狀態(tài)E100,在其中觸發(fā)非可屏蔽警告中斷NMI2。
自動(dòng)地激勵(lì)該觸發(fā)非可屏蔽警告中斷NMI2的狀態(tài)E100,然后進(jìn)入警告管理狀態(tài)E110。
在優(yōu)選實(shí)施例中,警告管理狀態(tài)E110使得執(zhí)行終端代碼(RESET條件的生成)。在其它實(shí)施例中,可以依據(jù)應(yīng)用程序來(lái)設(shè)計(jì)不同的反應(yīng)。這些實(shí)施例不是本專(zhuān)利的目的,將不在此進(jìn)行描述。
一旦完成該警告管理程序,便可已取消該警告,并重新開(kāi)始先前描述的等待狀態(tài)E20。
當(dāng)從比較狀態(tài)E30中確定觸發(fā)代碼Code-DD不同于預(yù)定參考值Code-UMCA(轉(zhuǎn)移E85)時(shí),進(jìn)入狀態(tài)E100,在其中觸發(fā)先前描述的非可屏蔽警告中斷NMI2。
然而,當(dāng)從比較狀態(tài)E30中確定觸發(fā)代碼Code-DD與預(yù)定參考值Code-UMCA相同(轉(zhuǎn)移E31)時(shí),進(jìn)入狀態(tài)E32,在其中,根據(jù)預(yù)定遞增規(guī)則生成新的預(yù)定參考值Code-UMCA。
在生成新的參考值Code-UMCA的狀態(tài)E32之后是觸發(fā)非可屏蔽控制中斷NMI1的狀態(tài)E34。
一旦觸發(fā)該非可屏蔽控制中斷NMI1,便進(jìn)入等待狀態(tài)E36,在其中,等待訪(fǎng)問(wèn)授權(quán)代碼Code-AA。
如果在該等待訪(fǎng)問(wèn)授權(quán)代碼Code-AA的狀態(tài)E36中,檢測(cè)到訪(fǎng)問(wèn)請(qǐng)求電信號(hào)CS-RQ(轉(zhuǎn)移E90),則進(jìn)入狀態(tài)E100,在其中觸發(fā)非可屏蔽警告中斷信號(hào)NMI2。
然而,當(dāng)在等待狀態(tài)E36中,獲得訪(fǎng)問(wèn)授權(quán)代碼Code-AA(轉(zhuǎn)移E37)時(shí),進(jìn)入狀態(tài)E38,在其中,將該訪(fǎng)問(wèn)授權(quán)代碼Code-AA與新的當(dāng)前參考值Code-UMCA進(jìn)行比較。
如果在該比較狀態(tài)E38中確定訪(fǎng)問(wèn)授權(quán)代碼Code-AA不同于參考值Code-UMCA(轉(zhuǎn)移E95)時(shí),進(jìn)入狀態(tài)E100,在其中觸發(fā)非可屏蔽警告中斷NMI2。
然而,如果這兩個(gè)值相等(轉(zhuǎn)移E39)時(shí),激勵(lì)比較狀態(tài)E38,然后進(jìn)入狀態(tài)E40,在其中生成新的參考值Code-UMCA。
自動(dòng)地激勵(lì)該生成狀態(tài)E40,然后進(jìn)入狀態(tài)E50,在其中,生成電子信號(hào)SIG-VAL以驗(yàn)證對(duì)外設(shè)P的訪(fǎng)問(wèn)信號(hào)。
然后自動(dòng)地激勵(lì)該生成驗(yàn)證電信號(hào)SIG-VAL的狀態(tài)E50,然后進(jìn)入等待狀態(tài)E60,直至實(shí)際發(fā)生對(duì)外設(shè)P的訪(fǎng)問(wèn)。
當(dāng)在該等待狀態(tài)E60中檢測(cè)到實(shí)際發(fā)生了訪(fǎng)問(wèn)(轉(zhuǎn)移E65)時(shí),進(jìn)入狀態(tài)E70,在其中,禁止驗(yàn)證信號(hào)SIG-VAL。
然后自動(dòng)地激勵(lì)該禁止?fàn)顟B(tài)E70,并重新開(kāi)始先前描述的等待狀態(tài)E20。
在另一實(shí)施例中,當(dāng)在等待狀態(tài)E60中檢測(cè)到獲得來(lái)自寄存器21的代碼(轉(zhuǎn)移E67)時(shí),進(jìn)入狀態(tài)E100,在其中,觸發(fā)非可屏蔽警告中斷NMI2,有必要將該訪(fǎng)問(wèn)授權(quán)代碼通過(guò)無(wú)惡意的第三方發(fā)送至訪(fǎng)問(wèn)控制硬件單元。該實(shí)施例用于通過(guò)在驗(yàn)證訪(fǎng)問(wèn)之后檢測(cè)對(duì)外設(shè)的欺騙性訪(fǎng)問(wèn),來(lái)加強(qiáng)系統(tǒng)的安全性(狀態(tài)E60)。
圖4b描述了在第二實(shí)施例中的本發(fā)明的訪(fǎng)問(wèn)控制方法的狀態(tài)圖。
在不包括接收觸發(fā)代碼Code-DD的步驟的意義上對(duì)本發(fā)明的該實(shí)施例進(jìn)行簡(jiǎn)化。當(dāng)然,去除了處理該觸發(fā)代碼Code-DD的任何步驟(E30、E31、E32、E85)。
由觸發(fā)步驟E26來(lái)替換步驟E25,觸發(fā)步驟E26由本領(lǐng)域技術(shù)人員已知的能夠生成中斷的任何裝置來(lái)實(shí)現(xiàn)。
在觸發(fā)步驟E26之后自動(dòng)地跟隨步驟E34,在其中,生成圖4a中描述的非可屏蔽控制中斷NMI1。
在該實(shí)施例中,授權(quán)代碼Code-AA是常數(shù),去除了生成參考值Code-UMCA的步驟E40。
控制中斷程序IRT1在寄存器21中呈現(xiàn)由受保護(hù)存儲(chǔ)器中的計(jì)算機(jī)程序PROG所存儲(chǔ)的值。
圖5示出了在優(yōu)選實(shí)施例中,由根據(jù)本發(fā)明的處理器實(shí)施的非可屏蔽控制中斷程序IRT1的主要步驟E500至E520。
在訪(fǎng)問(wèn)控制硬件單元20生成非可屏蔽控制中斷NMI1時(shí)激活該程序。
這里描述的程序IRT1包括第一步驟E500,在第一步驟E500期間,將包括相同名稱(chēng)的訪(fǎng)問(wèn)授權(quán)代碼的變量Code-AA的內(nèi)容存儲(chǔ)于變量VA中。
在參照?qǐng)D4a描述的實(shí)施例中,在讀取訪(fǎng)問(wèn)授權(quán)代碼Code-AA的步驟E500之后跟隨步驟E510,在步驟E510期間,根據(jù)先前描述的預(yù)定規(guī)則生成新的訪(fǎng)問(wèn)授權(quán)代碼Code-AA。在這個(gè)相同的步驟期間,將訪(fǎng)問(wèn)授權(quán)代碼Code-AA的這個(gè)新的值存儲(chǔ)于受保護(hù)存儲(chǔ)器中。
在生成和存儲(chǔ)新的訪(fǎng)問(wèn)授權(quán)代碼Code-AA的步驟E510之后跟隨將變量VA的內(nèi)容發(fā)送至訪(fǎng)問(wèn)控制硬件單元20的步驟E520。
在這里描述的優(yōu)選實(shí)施例中,該發(fā)送步驟包括將變量VA的內(nèi)容寫(xiě)入寄存器21。
在參照?qǐng)D4b描述的實(shí)施例中,在讀取訪(fǎng)問(wèn)授權(quán)代碼Code-AA的步驟E500之后跟隨該步驟E520。
情況可以是,在發(fā)送訪(fǎng)問(wèn)授權(quán)代碼的步驟E520之后跟隨本領(lǐng)域技術(shù)人員已知的IRET類(lèi)型的指令,這一方面包括取消中斷NMI1的源,并從所述中斷中返回。
根據(jù)本發(fā)明的訪(fǎng)問(wèn)管理方法選擇性地包括,響應(yīng)從訪(fǎng)問(wèn)控制硬件單元20中產(chǎn)生的非可屏蔽中斷信號(hào)NMI2的警告中斷程序IRT2。
該非可屏蔽警告中斷實(shí)質(zhì)上包括根據(jù)適當(dāng)?shù)囊?guī)則生成警告和/或處理未受權(quán)的訪(fǎng)問(wèn)。
圖6示出了包括用于訪(fǎng)問(wèn)圖4a的實(shí)施例中根據(jù)本發(fā)明的安全外設(shè)P的指令的計(jì)算機(jī)程序PROG的主要步驟E600至E630。
該計(jì)算機(jī)程序包括兩個(gè)步驟E600和E610,分別與讀取訪(fǎng)問(wèn)授權(quán)代碼的步驟E500、以及生成并存儲(chǔ)先前參照?qǐng)D5描述的訪(fǎng)問(wèn)授權(quán)代碼的步驟E510相同或類(lèi)似。
因此,在這兩個(gè)步驟期間,計(jì)算機(jī)程序P[sic]將當(dāng)前觸發(fā)代碼Code-DD的內(nèi)容存儲(chǔ)于變量VA中,根據(jù)預(yù)定規(guī)則(遞增規(guī)則)生成新的觸發(fā)代碼Code-DD,以及將該新值存儲(chǔ)在與中斷程序IRT1共享的安全存儲(chǔ)器中。
在訪(fǎng)問(wèn)外設(shè)P的每個(gè)步驟E630之前,計(jì)算機(jī)程序PROG包括步驟E620,在該步驟期間,將變量VA的內(nèi)容發(fā)送至訪(fǎng)問(wèn)控制硬件單元20,這在這里描述的實(shí)施例中包括將該變量的內(nèi)容寫(xiě)入寄存器21中。
在將訪(fǎng)問(wèn)授權(quán)代碼CA發(fā)送至訪(fǎng)問(wèn)控制硬件單元20的步驟E620之后跟隨訪(fǎng)問(wèn)外設(shè)P的步驟E630.
在根據(jù)圖4b中的實(shí)施例的本發(fā)明的實(shí)施方式中,計(jì)算機(jī)程序PROG包括在訪(fǎng)問(wèn)外設(shè)的步驟E630之前,將常數(shù)值存儲(chǔ)于處理器的受保護(hù)存儲(chǔ)器中的步驟E610’,然后觸發(fā)第一非可屏蔽控制中斷IRT1的步驟E620’。
在訪(fǎng)問(wèn)之后,將所述常數(shù)的任何不同的值存儲(chǔ)于處理器受保護(hù)的存儲(chǔ)器中。
該步驟還可以由控制中斷程序IRT1來(lái)執(zhí)行。
權(quán)利要求
1.一種硬件單元(20),用于由處理器(10、110、120)來(lái)控制對(duì)所述處理器的外設(shè)(P)的訪(fǎng)問(wèn),所述硬件單元(20)包括裝置(26),用于觸發(fā)所述處理器中斷,稱(chēng)為控制中斷;裝置(21),用于從所述處理器中以及在所述觸發(fā)之后,獲得授權(quán)訪(fǎng)問(wèn)所述外設(shè)(P)的訪(fǎng)問(wèn)授權(quán)代碼(Code-AA);裝置(22),用于將所述訪(fǎng)問(wèn)授權(quán)代碼(Code-AA)與預(yù)定參考值(Code-UMCA)進(jìn)行比較;以及所謂的驗(yàn)證裝置(22、23、25),設(shè)計(jì)用于依據(jù)所述比較的結(jié)果,來(lái)生成驗(yàn)證訪(fǎng)問(wèn)所述外設(shè)(P)的電信號(hào)(CS、WE、PWR)的電信號(hào)(SIG_VAL)。
2.如權(quán)利要求1所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述控制中斷是非可屏蔽中斷(NMI1)。
3.如權(quán)利要求1或2所述的控制硬件單元,其特征在于,所述控制硬件單元附加地包括用于獲得觸發(fā)代碼(Code-DD)的裝置(21),并且將觸發(fā)所述控制中斷(NMI1)的所述裝置(26)設(shè)計(jì)用于觸發(fā)在獲得所述觸發(fā)代碼(Code-DD)之后的所述中斷。
4.如權(quán)利要求3所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述控制硬件單元附加地包括裝置(22),用于將所述訪(fǎng)問(wèn)授權(quán)代碼(Code-DD)與所述預(yù)定參考值(Code-UMCA)進(jìn)行比較;并且將所述觸發(fā)裝置(26)設(shè)計(jì)用于依據(jù)所述比較的結(jié)果來(lái)觸發(fā)所述控制中斷(NMI1)。
5.如權(quán)利要求1至4之一所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述控制硬件單元包括裝置(26),用于在所述訪(fǎng)問(wèn)授權(quán)代碼(Code-AA)或所述觸發(fā)代碼(Code-DD)不同于所述預(yù)定參考值(Code-UMCA)時(shí),觸發(fā)稱(chēng)為警告中斷的所述處理器的中斷。
6.如權(quán)利要求5所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述警告中斷是非可屏蔽中斷(NMI2)。
7.如權(quán)利要求1至6之一所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述預(yù)定參考值(Code-UMCA)是常數(shù)。
8.如權(quán)利要求1至6之一所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述控制硬件單元包括裝置(24),用于根據(jù)預(yù)定規(guī)則生成所述參考值(Code-UMCA)。
9.如權(quán)利要求8所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述預(yù)定參考值(Code-UMCA)是在開(kāi)啟所述硬件單元(UMCA)時(shí)進(jìn)行初始化的計(jì)數(shù)器,并且根據(jù)所述預(yù)定規(guī)則,所述計(jì)數(shù)器在每次獲得所述訪(fǎng)問(wèn)授權(quán)代碼(Code-AA)時(shí)遞增。
10.如權(quán)利要求1至9之一所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述驗(yàn)證裝置(22、23、25)包括邏輯組合裝置(25),設(shè)計(jì)用于接收請(qǐng)求訪(fǎng)問(wèn)所述外設(shè)(P)的電信號(hào)(CS-RQ,WE-RQ);接收所述驗(yàn)證信號(hào)(SIG_VAL);以及根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求電信號(hào)(CS-RQ,WE-RQ)的狀態(tài)(RQ_0,RQ_1)、所述驗(yàn)證信號(hào)的狀態(tài)(VAL_0,VAL_1)、以及在真值表(25)中描述的邏輯,來(lái)驗(yàn)證所述訪(fǎng)問(wèn)電信號(hào)(CS,WE)。
11.如權(quán)利要求10所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述控制硬件單元包括裝置(26),用于讀取所述訪(fǎng)問(wèn)請(qǐng)求電信號(hào)(CS-RQ,WE-RQ)的狀態(tài)(RQ_0,RQ_1),以及裝置(26),根據(jù)所述訪(fǎng)問(wèn)驗(yàn)證電信號(hào)(SIG_VAL)的該狀態(tài)(RQ_0,RQ_1)和所述狀態(tài)(VAL_0,VAL_1),來(lái)觸發(fā)所述處理器的中斷,所述中斷稱(chēng)為警告中斷(NMI2),優(yōu)選地,是非可屏蔽的。
12.如權(quán)利要求1至11之一所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述控制硬件單元包括裝置(23),用于禁止所述驗(yàn)證信號(hào)(SIG_VAL)。
13.如權(quán)利要求12所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述禁止裝置(23)設(shè)計(jì)用于在至少一個(gè)對(duì)所述外設(shè)(P)的訪(fǎng)問(wèn)之后,禁止所述驗(yàn)證信號(hào)(SIG_VAL)。
14.如權(quán)利要求12或13所述的訪(fǎng)問(wèn)控制硬件單元,其特征在于,所述禁止裝置(23)設(shè)計(jì)用于在從所述訪(fǎng)問(wèn)驗(yàn)證電信號(hào)(SIG_VAL)的生成起計(jì)數(shù)、或者從獲得所述訪(fǎng)問(wèn)代碼(Code-AA)起計(jì)數(shù)的預(yù)定時(shí)延之后,禁止所述驗(yàn)證信號(hào)(SIG_VAL)。
15.一種處理器(110),其特征在于,所述處理器包括根據(jù)權(quán)利要求1至14之一的訪(fǎng)問(wèn)控制硬件單元(20);實(shí)施控制中斷程序(IRT1)的裝置(VECT),設(shè)計(jì)用于獲得所述訪(fǎng)問(wèn)授權(quán)代碼(Code-AA);以及裝置(IRT1),用于將所述訪(fǎng)問(wèn)授權(quán)代碼(Code-AA)發(fā)送至所述訪(fǎng)問(wèn)控制硬件單元(20)。
16.如權(quán)利要求15所述的處理器,其特征在于,所述控制中斷程序包括從受保護(hù)存儲(chǔ)器中讀取所述訪(fǎng)問(wèn)代碼(Code-AA)的裝置。
17.如權(quán)利要求15或16所述的處理器,其特征在于,所述處理器附加地包括將觸發(fā)代碼(Code-DD)發(fā)送至所述訪(fǎng)問(wèn)控制硬件單元(20)的裝置。
18.如權(quán)利要求15至17所述的處理器,其特征在于,所述控制中斷程序(IRT1)設(shè)計(jì)用于根據(jù)預(yù)定規(guī)則生成所述訪(fǎng)問(wèn)代碼(Code-AA)。
19.如權(quán)利要求18所述的處理器,其特征在于,所述訪(fǎng)問(wèn)代碼(Code-AA)是計(jì)數(shù)器,并且所述預(yù)定規(guī)則包括,在開(kāi)啟所述處理器(110)時(shí)初始化所述計(jì)數(shù)器(Code-AA),以及在每次將所述代碼(Code-AA)發(fā)送至所述硬件單元(20)時(shí)使所述計(jì)數(shù)器遞增。
20.如權(quán)利要求15至19之一所述的處理器,其特征在于,所述處理器附加地包括實(shí)施警告中斷程序(IRT2)的裝置(VECT),設(shè)計(jì)用于生成警告和/或禁止所述外設(shè)(P)的使用。
21.如權(quán)利要求15至20之一所述的處理器,其特征在于,所述處理器包括所述外設(shè)(P),具體地,能夠從所述處理器的引導(dǎo)存儲(chǔ)器(120)的寫(xiě)入控制器中、以及從存儲(chǔ)管理單元(MMU)中選擇所述外設(shè)(P)。
22.一種由處理器(10、110、210)控制訪(fǎng)問(wèn)所述處理器外設(shè)(P)的方法,其特征在于,所述方法包括以下步驟觸發(fā)(E34)所述處理器的中斷,稱(chēng)為控制中斷;從所述處理器中以及在所述觸發(fā)之后,獲得(E37)所述外設(shè)(P)的訪(fǎng)問(wèn)授權(quán)代碼(Code-AA);將所述訪(fǎng)問(wèn)授權(quán)代碼(Code-AA)與預(yù)定參考值(Code-UMCA)進(jìn)行比較(E38);依據(jù)所述比較步驟(E30)的結(jié)果來(lái)生成(E50)驗(yàn)證所述外設(shè)(P)的訪(fǎng)問(wèn)信號(hào)(CS、WE、PWR)的電信號(hào)(SIG_VAL)。
23.如權(quán)利要求22所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述控制中斷是非可屏蔽中斷(NMI1)。
24.如權(quán)利要求22或23所述的訪(fǎng)問(wèn)控制方法,其特征在于,在獲得(E25)觸發(fā)代碼(Code-DD)的步驟之后,執(zhí)行所述觸發(fā)步驟(E34)。
25.如權(quán)利要求24所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述訪(fǎng)問(wèn)控制方法附加地包括將觸發(fā)代碼(Code-DD)與所述預(yù)定參考值(Code-UMCA)進(jìn)行比較的步驟(E30),并且依據(jù)所述比較步驟(E30)的結(jié)果來(lái)執(zhí)行所述觸發(fā)步驟(E34)。
26.如權(quán)利要求22至25之一所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述訪(fǎng)問(wèn)控制方法包括,當(dāng)所述訪(fǎng)問(wèn)授權(quán)代碼(Code-AA)或所述觸發(fā)代碼(Code-DD)不同于所述預(yù)定參考值(Code-UMCA)時(shí),來(lái)觸發(fā)稱(chēng)為警告中斷的所述處理器的中斷的步驟(E100)。
27.如權(quán)利要求26所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述警告中斷是非可屏蔽中斷(NMI2)。
28.如權(quán)利要求22至27之一所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述預(yù)定參考值(Code-UMCA)是常數(shù)。
29.如權(quán)利要求22至27之一所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述訪(fǎng)問(wèn)控制方法附加地包括根據(jù)預(yù)定規(guī)則生成所述參考值(Code-UMCA)的步驟(E40)。
30.如權(quán)利要求29所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述預(yù)定參考值(Code-UMCA)是計(jì)數(shù)器,所述方法附加地包括初始化所述計(jì)數(shù)器、在所述生成步驟(E40)期間使所述計(jì)數(shù)器遞增的步驟(E10)。
31.如權(quán)利要求22至30之一所述的訪(fǎng)問(wèn)控制方法,其特征在于,在生成驗(yàn)證信號(hào)的所述步驟(E50)期間讀取請(qǐng)求訪(fǎng)問(wèn)所述外設(shè)(P)的電信號(hào)(CS-RQ,WE-RQ)的狀態(tài)(RQ_0,RQ_1);讀取所述驗(yàn)證信號(hào)(SIG_VAL)的狀態(tài)(VAL_0,VAL_1);以及根據(jù)所述訪(fǎng)問(wèn)請(qǐng)求電信號(hào)(CS-RQ,WE-RQ)的狀態(tài)(RQ_1)、所述驗(yàn)證信號(hào)(SIG_VAL)的狀態(tài)(VAL_1)、以及根據(jù)邏輯規(guī)則的函數(shù),來(lái)驗(yàn)證所述訪(fǎng)問(wèn)電信號(hào)(CS,WE)。
32.如權(quán)利要求31所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述訪(fǎng)問(wèn)控制方法包括讀取所述訪(fǎng)問(wèn)請(qǐng)求電信號(hào)(CS-RQ,WE-RQ)的狀態(tài)(RQ_0、RQ_1)的步驟(E20,E36),以及根據(jù)所述訪(fǎng)問(wèn)驗(yàn)證電信號(hào)(SIG_VAL)的所述狀態(tài)(RQ_0,RQ_1)和所述狀態(tài)(VAL_0,VAL_1),來(lái)觸發(fā)所述處理器的可屏蔽中斷,所述中斷稱(chēng)為警告中斷(NMI2),優(yōu)選地,是非可屏蔽的。
33.如權(quán)利要求22至32之一所述的訪(fǎng)問(wèn)控制方法,其特征在于,所述訪(fǎng)問(wèn)控制方法包括禁止所述驗(yàn)證信號(hào)(SIG_VAL)的步驟(E70)。
34.如權(quán)利要求33所述的訪(fǎng)問(wèn)控制方法,其特征在于,在訪(fǎng)問(wèn)所述處理器(P)的至少一個(gè)步驟(E65)之后,執(zhí)行所述禁止步驟(E70)。
35.如權(quán)利要求33或34所述的訪(fǎng)問(wèn)控制方法,其特征在于,在從生成所述訪(fǎng)問(wèn)驗(yàn)證電信號(hào)(SIG_VAL)的所述步驟(E50)起計(jì)數(shù)的、或者從獲得所述觸發(fā)代碼(Code-DD)的所述步驟(E25)起計(jì)數(shù)之后,執(zhí)行所述中斷步驟。
36.一種管理對(duì)外設(shè)(P)的訪(fǎng)問(wèn)的方法,其特征在于,所述方法包括實(shí)施與控制中斷(優(yōu)選地,非可屏蔽式的(NMI1))相關(guān)聯(lián)的程序(IRT1)的步驟,所述控制程序包括,將訪(fǎng)問(wèn)授權(quán)代碼(Code-AA)發(fā)送至如權(quán)利要求1至14之一所述的訪(fǎng)問(wèn)控制硬件單元(20)的步驟(E520)。
37.如權(quán)利要求36所述的管理訪(fǎng)問(wèn)外設(shè)(P)的方法,其特征在于,所述方法包括為了所述發(fā)送,從受保護(hù)存儲(chǔ)器中讀取所述訪(fǎng)問(wèn)代碼(Code_AA)的步驟。
38.如權(quán)利要求36所述的管理訪(fǎng)問(wèn)外設(shè)(P)的方法,其特征在于,所述方法包括為了所述發(fā)送,根據(jù)預(yù)定規(guī)則生成訪(fǎng)問(wèn)代碼(Code_AA)的步驟(E510)。
39.如權(quán)利要求38所述的管理訪(fǎng)問(wèn)方法,其特征在于,所述訪(fǎng)問(wèn)代碼(Code_AA)是計(jì)數(shù)器,所述方法附加地包括初始化所述計(jì)數(shù)器(Code_AA)的步驟,并且所述生成步驟(E510)包括在每次將所述代碼(Code_AA)發(fā)送至所述硬件單元(20)之前,使所述計(jì)數(shù)器(Code_AA)遞增。
40.如權(quán)利要求36至39所述的管理訪(fǎng)問(wèn)方法,其特征在于,所述方法附加地包括實(shí)施警告中斷程序(IRT2)的步驟,所述警告程序包括生成警告和/或禁止所述外設(shè)使用的步驟。
41.一種包括訪(fǎng)問(wèn)外設(shè)(P)的指令(E630)的計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序包括指令(E620),用于在所述訪(fǎng)問(wèn)指令的執(zhí)行之前,將觸發(fā)代碼(Code_DD)發(fā)送至根據(jù)權(quán)利要求1至14之一的所述外設(shè)(P)的訪(fǎng)問(wèn)控制硬件單元(20)。
42.如權(quán)利要求41所述的計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序附加地包括根據(jù)所述預(yù)定規(guī)則生成所述觸發(fā)代碼(Code-DD)的裝置。
43.一種處理器,設(shè)計(jì)用于實(shí)施根據(jù)權(quán)利要求22至35之一的訪(fǎng)問(wèn)控制方法,和/或根據(jù)權(quán)利要求36至40之一的管理訪(fǎng)問(wèn)方法,和/或根據(jù)權(quán)利要求41或42的計(jì)算機(jī)程序。
44.一種對(duì)如權(quán)利要求1至14之一所述的訪(fǎng)問(wèn)控制硬件單元(20)的使用,用于驗(yàn)證外設(shè)(P)的訪(fǎng)問(wèn)信號(hào),所述外設(shè)(P)具體可從屏幕、鍵盤(pán)、存儲(chǔ)器、通信接口控制器、存儲(chǔ)器管理單元(MMU)、或存儲(chǔ)器保護(hù)單元(MPU)中選擇。
全文摘要
提出了一種由處理器控制對(duì)所述處理器的外設(shè)訪(fǎng)問(wèn)的方法,所述方法包括以下步驟觸發(fā)(E34)處理器的中斷,稱(chēng)為控制中斷;從所述處理器中以及在所述觸發(fā)之后,獲得(E37)所述外設(shè)的訪(fǎng)問(wèn)授權(quán)代碼(Code-AA);將所述訪(fǎng)問(wèn)授權(quán)代碼(Code-AA)與預(yù)定參考值(Code-UMCA)進(jìn)行比較(E38);依據(jù)所述比較步驟(E30)的結(jié)果來(lái)生成(E50)驗(yàn)證外設(shè)訪(fǎng)問(wèn)信號(hào)的電信號(hào)。
文檔編號(hào)G06F21/78GK1947082SQ200580012360
公開(kāi)日2007年4月11日 申請(qǐng)日期2005年3月17日 優(yōu)先權(quán)日2004年3月19日
發(fā)明者菲利普·布雷西, 吉勒·佩洛蒂 申請(qǐng)人:安全機(jī)器有限公司