專利名稱:硬件環(huán)路的安全的制作方法
背景技術(shù):
在設(shè)計可編程處理器(例如,數(shù)字信號處理(DSP)系統(tǒng))時經(jīng)常需要權(quán)衡處理速度和功率消耗。常規(guī)的處理器包括各種用于提高軟件指令執(zhí)行速度而設(shè)計的硬件。然而,其它硬件一般會增加處理器的功率消耗。
“硬件環(huán)路”可以提高可編程處理器的速度。這可以采用為加速環(huán)路結(jié)構(gòu)中軟件指令執(zhí)行速度而設(shè)計的專用硬件來實現(xiàn)。硬件環(huán)路可以通過緩存本地寄存器的指令來減少用于執(zhí)行軟件環(huán)路時鐘周期的數(shù)量,從而減小從存儲器器件或指令緩存中輸入相同指令所需要的時間數(shù)量。
硬件環(huán)路引發(fā)了幾個挑戰(zhàn)。這些挑戰(zhàn)包括避免損失,例如,設(shè)置的損失或轉(zhuǎn)移的損失。這類損失包括與設(shè)置硬件環(huán)路有關(guān)的性能損耗(通常在處理時間中會增加)。同樣,轉(zhuǎn)移的損失是與轉(zhuǎn)移有關(guān)的性能損失(同樣,是通常在處理時間中會增加)。
圖1是說明根據(jù)本發(fā)明實施例的流水線可編程處理器舉例的方框圖。
圖2是說明適用于根據(jù)本發(fā)明實施例的可編程處理器的舉例執(zhí)行流水線的方框圖。
圖3是說明根據(jù)實施例的硬件環(huán)路控制結(jié)構(gòu)的方框圖。
圖4是說明適用于提供根據(jù)實施例的硬件環(huán)路安全的操作流程圖。
圖5是包括根據(jù)實施例處理器的移動視頻單元的方框圖。
具體實施例方式
圖1是說明可編程處理器100的方框圖,該處理器構(gòu)成了能在不明顯增加功率消耗的條件下支持硬件環(huán)路和硬件環(huán)路操作的安全。
處理器100可用管理員模式和用戶模式來操作。當(dāng)處理器100用于管理員程序(例如,操作系統(tǒng))時,處理器可以管理員的模式工作。當(dāng)處理器100用于用戶程序(例如,應(yīng)用程序)時,處理器可以用戶的模式工作。
在管理員模式中,處理器100可以具有一定的特權(quán)。這些特權(quán)可以包括某些指令的使用,訪問某些資源(例如,寄存器)以及擴(kuò)展讀/寫訪問存儲器。這些特權(quán)可以通過寫入結(jié)構(gòu)寄存器以及對存儲器位置執(zhí)行系統(tǒng)操作所需的讀/寫操作,使能管理員程序控制系統(tǒng)的整個狀態(tài),例如,將系統(tǒng)置于“休眠”。
在用戶模式中,處理器100可以不具有這類特權(quán)。這種限制可以適用于安全測量,防止用戶程序?qū)ο到y(tǒng)級操作所產(chǎn)生的無意或有意的影響。例如,懷惡意的用戶程序(即,病毒)會破壞或刪除操作系統(tǒng)的文件或另外使具有適當(dāng)訪問特權(quán)的系統(tǒng)喪失功能。
處理器100可以采用用戶模式來使用硬件環(huán)路。硬件環(huán)路操作的實施可以提供用戶程序秘密地進(jìn)入管理員模式,從而產(chǎn)生安全的危險。在一個實施例中,硬件環(huán)路操作包括安全性能,它可以采用去除安全危險的硬件來實現(xiàn)。
為了支持硬件環(huán)路,處理器100可以支持環(huán)路設(shè)置指令,該指令可以通過設(shè)置環(huán)路的進(jìn)入和退出條件來初始化硬件??梢杂森h(huán)路的條件頂層,低層和計數(shù)來定義進(jìn)入和退出條件。頂層條件定義了環(huán)路的第一指令(或頂層)。低層條件定義了環(huán)路最后的指令(或低層)。計數(shù)條件定義了環(huán)路的重復(fù)次數(shù)。
處理器100執(zhí)行程序代碼中的指令可以具有相應(yīng)的指令地址,或程序計數(shù)(PC),它指出了在存儲器中的指令位置。在實施例中,指令可以對準(zhǔn)偶數(shù)地址,例如,指令的地址可以是兩字節(jié)(16位)或四字節(jié)(32位)寬度。
程序代碼可以順序執(zhí)行,除非發(fā)生時間,例如,發(fā)生轉(zhuǎn)移或中斷,它可以引起程序計數(shù)器分路到不同的位置。于是,當(dāng)程序流中沒有變化時,順序指令的PC就是在指令地址空間中順序指令的地址。例如,如果當(dāng)前指令的PC為2002(十六進(jìn)制)以及指令是16位(兩字節(jié))寬度,則順序指令的PC將是2004。
硬件環(huán)路的進(jìn)入可以發(fā)生在第一次的“頂層匹配”。當(dāng)PC指向環(huán)路的頂層指令時,就會發(fā)生頂層匹配。硬件環(huán)路的退出可以發(fā)生在最后一次的“低層匹配”。當(dāng)PC直線環(huán)路的低層指令時,就會發(fā)生低層匹配。
通過在第一次頂層匹配時初始化計數(shù)值以及在低層匹配時對計數(shù)值減1,使得硬件在它遇到最后低層匹配時能保持蹤跡。這樣,環(huán)路條件的頂層,低層和計數(shù)可以定義硬件環(huán)路的進(jìn)入和退出條件。
處理器100可以包括流水線102和控制單元104的執(zhí)行??刂茊卧?04可以控制時鐘周期中通過流水線102的指令和/或數(shù)據(jù)流。例如,在指令的處理過程中,控制單元104可以指使流水線的各個部分解碼指令以及正確地執(zhí)行所對應(yīng)的操作,包括,例如,向存儲器寫回結(jié)果。
指令可以從流水線102的第一級裝入并在通過之后的各級處理。各級相互間可以同時處理。數(shù)據(jù)可以在一個系統(tǒng)周期中在流水線102的級間通過。指令的結(jié)果可以快速連續(xù)的方式出現(xiàn)在流水線102的結(jié)束處。
控制單元104可以包括硬件環(huán)路單元108,正如以下所討論的,這可以更加有利于加快硬件環(huán)路的速度,而不會明顯地增加處理器100的功率消耗。
圖2是說明舉例的流水線200的方框圖。流水線200具有多級,這便于在單個時鐘周期中執(zhí)行多條指令。在流水線200中,指令可以在第一時鐘周期中進(jìn)入到指令輸入(IF)級202。在隨后的時鐘周期中,指令可以繼續(xù)進(jìn)入流水線。利益指令在前一條指令退出之后進(jìn)入到IF級202。于是,一般在隨后的時鐘周期中另一條指令會進(jìn)入到IF級202,并隨之在隨后的時鐘周期中繼續(xù)進(jìn)入流水線。同樣,在隨后的各時鐘周期中其它指令進(jìn)入到IF級202。在流水線中級的數(shù)量定義了流水線可以同時服務(wù)指令的數(shù)量。
流水線的不同級可采用以下的操作。指令在IF級202由輸入單元204輸入,在解碼(DEC)級208對來自指令寄存器206的指令進(jìn)行解碼。在地址計算(AC)級210中,數(shù)據(jù)地址發(fā)生器212可以計算用于執(zhí)行操作的任何存儲器的地址。
在執(zhí)行級(EX1至EXn)214和220,執(zhí)行單元222和224可以執(zhí)行適當(dāng)?shù)牟僮?,例如,兩個數(shù)的相加或相乘。執(zhí)行單元可以包括用于執(zhí)行操作的特殊硬件,例如,一個或多個算術(shù)邏輯單元(ALU),浮點單元(FPU)以及桶性移位寄存器。
各類數(shù)據(jù)都可以施加到執(zhí)行單元,例如,數(shù)據(jù)地址發(fā)生器所產(chǎn)生的地址,存儲器恢復(fù)的數(shù)據(jù)或數(shù)據(jù)寄存器恢復(fù)的數(shù)據(jù)。在寫回級(WB)230,結(jié)果可以寫入流水線外的存儲器位置或數(shù)據(jù)寄存器或者在流水線中的寄存器,例如,結(jié)構(gòu)寄存器232。流水線200的級可以包括一個或多個用于存儲數(shù)據(jù)的存儲電路,例如,觸發(fā)器。
圖3是圖1所示環(huán)路單元108的方框圖。硬件環(huán)路單元108可以包括LOOP_TOP寄存器302,LOOP_BOT寄存器304,和LOOP_CNT寄存器306,以及環(huán)路控制單元312。硬件環(huán)路單元的初始化可以通過裝入在LOOP_TOP寄存器302中的環(huán)路頂層指令的地址,LOOP_BOT寄存器304中的環(huán)路的低層指令的地址,以及在LOOP_CNT寄存器306中用于指示要完成的環(huán)路次數(shù)的計數(shù)來實現(xiàn)。環(huán)路控制單元可以將LOOP_BOT寄存器304和LOOP_BOT寄存器304中的數(shù)值與當(dāng)前PC值進(jìn)行比較。一旦檢測到頂層匹配,則環(huán)路控制單元就開始硬件環(huán)路的操作。當(dāng)發(fā)生低層匹配時,環(huán)路控制單元312就對LOOP_BOT寄存器304中的數(shù)值減1,并且將PC再轉(zhuǎn)移到頂層指令的地址。硬件環(huán)路可以在流水線中操作,直至滿足環(huán)路的退出條件,即,低層匹配與計數(shù)數(shù)值的差異等于零。
如果用戶程序獲得在管理員程序地址空間中的地址,就會存在安全危險,例如,在事件矢量表(EVT)120中(圖1)的指令地址。EVT可以包括事件服務(wù)程序的目標(biāo)地址。事件可以包括異常條件,該異常條件會引起程序流中的中斷。事件可以包括例如,I/O設(shè)備的中斷,未對準(zhǔn)的存儲器地址,硬件故障,等等,它可以由處理器100通過對應(yīng)的事件服務(wù)程序來管理。當(dāng)特殊的事件發(fā)生時,處理器100可以尋找適用于EVT 120中的事件服務(wù)程序所適用的目標(biāo)地址,并且將PC轉(zhuǎn)移到管理事件的事件服務(wù)程序。當(dāng)處理器100服務(wù)事件時,它進(jìn)入到管理員模式并獲得相應(yīng)的權(quán)限。在事件處于管理時,處理器100可以返回到用戶模式并且繼續(xù)被中斷的程序流。
采集到EVT 120中目標(biāo)地址的用戶程序,例如,適用于管理普通I/O設(shè)備中斷的事件服務(wù)程序,可以采用事件服務(wù)程序的地址裝載LOOP_BOT寄存器304以及采用用戶程序地址空間中的指令地址裝載LOOP_TOP寄存器306。
考慮到管理員代碼裝入的地址為十六進(jìn)制地址1000至2000和用戶代碼裝入的地址為十六進(jìn)制地址10,000至20,000的情況。在本實例中,適用于I/O設(shè)備中斷的事件服務(wù)程序的目標(biāo)地址為指令地址1004以及用戶程序代碼將1004裝入到LOOP_BOT寄存器,以及將10,000裝入到LOOP_TOP寄存器。當(dāng)產(chǎn)生I/O設(shè)備中斷時,超級程序校驗EVT 120并將PC轉(zhuǎn)移到指令1004。這就引起了低層匹配。響應(yīng)了低層匹配,硬件環(huán)路單元108使得PC暗中轉(zhuǎn)移到LOOP_TOP寄存器302的指令地址,10,200,它駐留在用戶代碼的地址空間。當(dāng)PC轉(zhuǎn)移到用戶代碼的指令時,用戶程序就可獲得處理器的控制。然而,處理器100可以保留在管理員模式中。因此,用戶程序采集管理員的權(quán)限,它通常會受到拒絕。惡意的用戶程序可能會使用這些權(quán)限來破壞系統(tǒng)或是迫使系統(tǒng)喪失功能。
圖4是根據(jù)實施例的操作400的流程圖。該流程圖的討論是實施操作400的一個實施例。在其它實施例中,可以省略一些方框或以不同的次序來執(zhí)行。
正如圖3所示,模式檢測器320可以與LOOP_BOT寄存器304相耦合。在方框402中,模式檢測器320可以檢測處理器何時退出用戶模式。當(dāng)處理器100退出了用戶模式時,在方框404中,模式檢測器320可以將LOOP_BOT寄存器中的指令地址的最低有效位(LSB)設(shè)置為1。
由于指令地址是對準(zhǔn)偶數(shù)地址的,故環(huán)路控制單元310不應(yīng)該遇上奇數(shù)的地址,LSB應(yīng)該始終為零。因此,當(dāng)處理器處于管理員模式時,就不會發(fā)生低層匹配??紤]上述給出的例子。用戶程序裝入在用戶模式中LOOP_BOT寄存器304中的指令地址1004(二進(jìn)制-“0000 0011 1110 1100”)。當(dāng)處理器退出了用戶模式,模式檢測器320將地址的LSB設(shè)置為1,并將LOOP_BOT寄存器中的數(shù)值變成為1005(“0000 0011 1110 1101”)。
由于所有的指令地址都應(yīng)該是偶數(shù)對準(zhǔn)的,如果在方框406的程序流中PC遇上奇數(shù)地址,則處理器100就在方框408中產(chǎn)生異常。在實施例中,異??删哂斜鹊蛯悠ヅ涓叩膬?yōu)先權(quán)。于是,即時產(chǎn)生了低層匹配,處理器100可以轉(zhuǎn)移到管理異常的事件服務(wù)程序,而不是轉(zhuǎn)移到LOOP_TOP寄存器302中的地址,從而避免了安全危險。
當(dāng)處理器返回到方框410中的用戶模式,則在方框412中,模式檢測器320就將LOOP_BOT寄存器306中數(shù)值的LSB設(shè)置為零,從而再使能硬件環(huán)路結(jié)構(gòu)。
由于處理器100試圖用于視頻可攜式攝像機(jī),遠(yuǎn)程電話會議,PC視頻卡,以及高清晰度電視(HDTV)。此外面處理器100也可以試圖用于與其它采用數(shù)字信號處理技術(shù)相結(jié)合,例如,用于移動電話的視頻處理,語音識別,以及其它應(yīng)用。
例如,圖5說明了移動視頻設(shè)備500,該設(shè)備根據(jù)本實施例包括處理器100。移動視頻設(shè)備500可以是手持設(shè)備,它可以顯示來自天線502或數(shù)字視頻存儲介質(zhì)504(例如,數(shù)字視頻盤(DVD)或存儲卡)所接受到的編碼視頻信號所產(chǎn)生的視頻圖像。處理器100與高速緩存506和其它設(shè)備相通訊,在高速緩存中存儲著用于處理器操作的指令和數(shù)據(jù),而其它設(shè)備包括,例如,SRAM 508。
處理器100可以是微處理器,數(shù)字信號處理器(DSP),控制伺服DSP的微處理器,或者采用混合微處理器/DSP結(jié)構(gòu)的處理器。處理器100可以對編碼視頻信號進(jìn)行各種操作,該操作包括模擬-數(shù)字轉(zhuǎn)換,解調(diào),濾波,數(shù)字恢復(fù),以及解碼。處理器100可以根據(jù)各種數(shù)字視頻壓縮標(biāo)準(zhǔn)中的一種標(biāo)準(zhǔn),例如,MPEG系列標(biāo)準(zhǔn)和H.263標(biāo)準(zhǔn),來解碼壓縮的數(shù)字視頻信號。隨后,解碼后的視頻信號可以輸入到顯示驅(qū)動器510,以在顯示器512上產(chǎn)生視頻圖像。
已經(jīng)討論了本發(fā)明的多個實施例。然而,應(yīng)該理解的是,可以在不脫離本發(fā)明的精神和范圍產(chǎn)生各種改進(jìn)。因此,其它實施例都在以下權(quán)利要求的范圍之內(nèi)。
權(quán)利要求
1.一種方法,其特征在于,包括以至少第一和第二操作模式來操作處理器;以及,一旦退出所述第一操作模式就禁止與處理器有關(guān)的硬件環(huán)路操作。
2.如權(quán)利要求1所述方法,其特征在于,第一模式是用戶模式。
3.如權(quán)利要求2所述方法,其特征在于,第二模式是管理員模式。
4.如權(quán)利要求1所述方法,還包括采用第一模式初始化硬件環(huán)路操作;以及,檢測從第一模式的退出。
5.如權(quán)利要求4所述方法,其特征在于,所述初始化硬件環(huán)路操作包括將偶數(shù)對準(zhǔn)的頂層指令地址裝入到第一寄存器中,以及,將偶數(shù)對準(zhǔn)的低層指令裝入到第二寄存器。
6.如權(quán)利要求5所述方法,其特征在于,所述禁止硬件環(huán)路的操作包括至少將第二寄存器中的低層指令地址的有效位設(shè)置成1。
7.如權(quán)利要求5所述方法,其特征在于,頂層和低層指令地址包括偶數(shù)對準(zhǔn)的字節(jié)地址。
8.如權(quán)利要求1所述方法,其特征在于,還包括一旦進(jìn)入到第一操作模式就使能硬件環(huán)路操作。
9.如權(quán)利要求8所述方法,其特征在于,還包括將偶數(shù)對準(zhǔn)的頂層指令地址裝入到第一寄存器;將偶數(shù)對準(zhǔn)的低層指令地址裝入到第二寄存器;檢測進(jìn)入到第一操作模式的入口;以及,至少將第二寄存器中的低層指令地址的有效位設(shè)置為0。
10.如權(quán)利要求8所述方法,其特征在于,頂層和低層指令地址包括偶數(shù)對準(zhǔn)的字節(jié)地址。
11.一種技術(shù)包括機(jī)器可讀介質(zhì)存儲用于提供處理器安全的機(jī)器可執(zhí)行指令,該指令使得機(jī)器至少以第一和第二操作模式來操作處理器;以及,一旦退出第一操作模式就禁止硬件環(huán)路的操作。
12.如權(quán)利要求11所述技術(shù),其特征在于,第一模式是用戶模式。
13.如權(quán)利要求11所述技術(shù),其特征在于,第二模式是管理員模式。
14.如權(quán)利要求11所述技術(shù),其特征在于,還包括引起機(jī)器操作的指令采用第一模式初始化硬件環(huán)路操作;以及,檢測從第一模式的退出。
15.如權(quán)利要求14所述技術(shù),其特征在于,使機(jī)器初始化環(huán)路操作的指令包括引起機(jī)器操作的指令將偶數(shù)對準(zhǔn)的頂層指令地址裝入到第一寄存器中,以及,將偶數(shù)對準(zhǔn)的低層指令裝入到第二寄存器。
16.如權(quán)利要求15所述技術(shù),其特征在于,使機(jī)器禁止硬件環(huán)路操作的指令包括至少使機(jī)器將第二寄存器中的低層指令地址的有效位設(shè)置位1。
17.如權(quán)利要求15所述技術(shù),其特征在于,頂層和低層指令地址包括偶數(shù)對準(zhǔn)的字節(jié)地址。
18.如權(quán)利要求11所述技術(shù),還包括引起機(jī)器操作的指令一旦進(jìn)入第一操作模式就使能硬件環(huán)路的操作。
19.如權(quán)利要求18所述技術(shù),還包括引起機(jī)器操作的指令將偶數(shù)對準(zhǔn)的頂層指令地址裝入到第一寄存器中;將偶數(shù)對準(zhǔn)的低層指令裝入到第二寄存器;檢測進(jìn)入第一操作模式的入口;以及,至少將第二寄存器中的低層指令地址的有效位設(shè)置為0。
20.如權(quán)利要求18所述方法,其特征在于,頂層和低層指令地址包括偶數(shù)對準(zhǔn)的字節(jié)地址。
21.一種處理器,其特征在于,包括用于存儲硬件環(huán)路中的頂層指令地址的第一寄存器;用于存儲硬件環(huán)路中的低層指令地址的第二寄存器;與第一和第二寄存器相耦合的硬件環(huán)路控制器,所述控制器用于執(zhí)行硬件環(huán)路操作的操作;以及,模式檢測器,它響應(yīng)處理器退出第一操作模式禁止硬件環(huán)路控制器的操作。
22.如權(quán)利要求21所述處理器,其特征在于,第一模式是用戶模式。
23.如權(quán)利要求21所述處理器,其特征在于,第二模式是管理員模式。
24.如權(quán)利要求21所述處理器,其特征在于,模式檢測器響應(yīng)處理器退出第一操作模式而使能硬件環(huán)路控制器的操作。
25.如權(quán)利要求21所述處理器,其特征在于,低層指令的地址是偶數(shù)對準(zhǔn)的。
26.如權(quán)利要求25所述處理器,其特征在于,頂層和低層指令地址包括偶數(shù)對準(zhǔn)的字節(jié)地址。
27.如權(quán)利要求25所述處理器,其特征在于,模式控制器響應(yīng)處理器退出第一模式而至少將第二寄存器中的地址的有效位設(shè)置為1的操作。
28.如權(quán)利要求25所述處理器,其特征在于,模式控制器響應(yīng)處理器進(jìn)入第一模式而至少將第二寄存器中的地址的有效位設(shè)置為0的操作。
29.一種系統(tǒng),其特征在于,包括靜態(tài)隨機(jī)地址存儲器;以及,與靜態(tài)隨機(jī)地址存儲器相耦合的處理器,所述處理器包括用于存儲硬件環(huán)路中的頂層指令地址的第一寄存器;用于存儲硬件環(huán)路中的低層指令地址的第二寄存器;與第一和第二寄存器相耦合的硬件環(huán)路控制器,所述控制器用于執(zhí)行硬件環(huán)路操作的操作;以及,模式檢測器,它響應(yīng)處理器退出第一操作模式而禁止硬件環(huán)路控制器的操作。
30.如權(quán)利要求29所述處理器,其特征在于,第一模式是用戶模式。
31.如權(quán)利要求29所述處理器,其特征在于,第二模式是管理員模式。
32.如權(quán)利要求29所述處理器,其特征在于,模式檢測器響應(yīng)處理器進(jìn)入第一操作模式而使能硬件環(huán)路控制器的操作。
全文摘要
在一個實施例中,處理器可以在用戶模式和在管理員模式中操作。處理器可在用戶模式中通過裝載LOOP_TOP寄存器中的頂層指令地址和LOOP_BOT寄存器中的低層指令地址來初始化硬件環(huán)路。用戶程序可以十分方便地通過裝載在LOOP_BOT寄存器的管理員指令地址空間中的事件服務(wù)程序的目標(biāo)地址和在LOOP_BOT寄存器的用戶指令空間中的地址來訪問管理員模式。如果事件發(fā)生在管理員模式中,程序流就可以轉(zhuǎn)移到LOOP_BOT寄存器的地址,得到管理員模式中的用戶程序控制。為了能避免這種潛在的安全危險,當(dāng)處理器退出用戶模式,處理器可以禁止硬件環(huán)路的操作。
文檔編號G06F9/32GK1483160SQ01821236
公開日2004年3月17日 申請日期2001年12月20日 優(yōu)先權(quán)日2000年12月28日
發(fā)明者R·P·辛格, T·托馬金, C·P·羅斯, W·C·安德森, R P 辛格, 安德森, 斫, 羅斯 申請人:英特爾公司, 模擬設(shè)備股份有限公司