專利名稱:用于確定訪問許可的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及訪問許可,并且尤其涉及用于在例如數(shù)據(jù)處理系統(tǒng)內(nèi)確定訪問許可的訪問許可電路。
背景技術(shù):
在芯片上系統(tǒng)(system on a chip,SoC)解決辦法中,通常使多個(gè)主裝置(master)具有共享的外圍裝置和從屬裝置,諸如例如存儲(chǔ)器??赡苄枰Wo(hù)所有或某些共享的外圍裝置和從屬裝置的內(nèi)容,以防被諸如在可能敗壞系統(tǒng)的某些主裝置上運(yùn)行的錯(cuò)誤或敵對軟件等篡改、拷貝或詢問。例如,可能由在不安全的主裝置上所運(yùn)行的軟件引入病毒,所述不安全的主裝置可能被用來獲得對在所述系統(tǒng)的外圍裝置和從屬裝置內(nèi)安全信息的訪問。此外,系統(tǒng)中的某些總線主裝置可能被認(rèn)為是安全的,而其它總線主裝置可能被認(rèn)為是不安全的,并且這些考慮因素可能隨系統(tǒng)狀態(tài)改變而改變。因此,為了確保系統(tǒng)的完整性和安全性,需要保護(hù)系統(tǒng)免受在不安全的主裝置上所運(yùn)行的錯(cuò)誤或敵對軟件的破壞。
以舉例形式圖示了本發(fā)明,并且本發(fā)明并不受附圖的限制,其中相似的附圖標(biāo)記表示類似的元件,并且其中圖1以框圖形式圖示了依照本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)處理系統(tǒng);圖2依照本發(fā)明一個(gè)實(shí)施例以框圖形式圖示了圖1的數(shù)據(jù)處理系統(tǒng)中的訪問保護(hù)控制寄存器;和圖3依照本發(fā)明一個(gè)實(shí)施例以流程圖形式圖示了圖1中的數(shù)據(jù)處理系統(tǒng)的操作。
技術(shù)人員應(yīng)當(dāng)理解為簡單和清楚起見圖示了圖中的元件并且不一定按比例繪制所述元件。例如,可能相對于其它元件放大了圖中的某些元件的尺寸以便幫助理解本發(fā)明的實(shí)施例。
具體實(shí)施例方式
如這里所用,術(shù)語“總線”用來指的是可以用來轉(zhuǎn)送一種或多種類型的信息(諸如數(shù)據(jù)、地址、控制或狀態(tài))的多種信號或?qū)Ь€。如這里所述的導(dǎo)線可以被圖示或描述為單條導(dǎo)線、多條導(dǎo)線、單向?qū)Ь€或雙向?qū)Ь€。然而,不同的實(shí)施例可以改變所述導(dǎo)線的實(shí)施方式。例如,可以使用獨(dú)立的單向?qū)Ь€而不是雙向?qū)Ь€,反之亦然。此外,多條導(dǎo)線還可以被替換為單條導(dǎo)線,所述單條導(dǎo)線串行或依照時(shí)間多路復(fù)用的方式來轉(zhuǎn)送多個(gè)信號。同樣,可以把攜帶多個(gè)信號的單條導(dǎo)線分離為用于攜帶這些信號子集的各個(gè)不同的導(dǎo)線中。因此,對于轉(zhuǎn)送信號存在許多選擇。
為了確保系統(tǒng)的完整性和安全性,希望確保諸如例如多個(gè)主裝置數(shù)據(jù)處理系統(tǒng)之類的系統(tǒng)不會(huì)被在不安全的處理器或其它主裝置上運(yùn)行的錯(cuò)誤或敵對軟件損害。例如,多主裝置系統(tǒng)中的多個(gè)主裝置可以共享相同的資源,諸如例如所述系統(tǒng)的外圍裝置或從屬裝置。多個(gè)主裝置中的某些可能被認(rèn)為是安全的,而其它主裝置可能被認(rèn)為是不安全的。如這里所用,安全的主裝置指的是與不安全的主裝置相比通常較少訪問并且對破壞不那么敏感的主裝置,而所述不安全的主裝置通常被更多訪問并且對破壞也更為敏感。例如,安全主裝置可以具有有限的可訪問性或可以執(zhí)行完全由主裝置或SoC的制造商所控制的指令(即在安全主裝置上運(yùn)行的軟件可以被認(rèn)為是可信任的或安全軟件)。然而,不安全的主裝置可以是通用的應(yīng)用處理器,所述應(yīng)用處理器可能接收并執(zhí)行第三方軟件(例如用戶開發(fā)的軟件)或任何其它未置信的軟件(其中所述軟件的內(nèi)容和功能通常是未知的)。由于所述軟件是未置信的,所以它可能是試圖破壞系統(tǒng)的其它部分或試圖訪問安全信息的錯(cuò)誤或敵對軟件。此外,特定主裝置為安全或不安全的狀態(tài)可能隨數(shù)據(jù)處理系統(tǒng)狀態(tài)改變而改變。
因此,本發(fā)明的一個(gè)實(shí)施例允許從屬裝置或外圍裝置(諸如例如非易失性存儲(chǔ)器)的內(nèi)容以下述方式是安全的,所述方式為當(dāng)以安全狀態(tài)操作時(shí)允許開始執(zhí)行來自非易失性存儲(chǔ)器的程序,但是當(dāng)以不那么安全的狀態(tài)操作時(shí)防止出現(xiàn)未經(jīng)授權(quán)的訪問。一個(gè)實(shí)施例提供了一種允許系統(tǒng)狀態(tài)修改或覆蓋先前編程的數(shù)據(jù)處理系統(tǒng)的訪問保護(hù)策略的方法,如下面參考圖1-3將要描述的那樣。覆蓋例如可以用來一并或獨(dú)立地限制系統(tǒng)中的每個(gè)主裝置對所述系統(tǒng)資源(例如從屬裝置、外圍裝置、存儲(chǔ)器、共享資源等)的讀取和寫入訪問(或反之,擴(kuò)大對其的訪問許可)。此外,當(dāng)出現(xiàn)狀態(tài)信息改變時(shí),可以動(dòng)態(tài)地改變這些覆蓋。此外,如下面所進(jìn)一步描述的,狀態(tài)信息還可以包括與數(shù)據(jù)處理系統(tǒng)狀態(tài)有關(guān)的任何類型的信息,諸如例如與啟動(dòng)調(diào)試模式、執(zhí)行來自不安全或未驗(yàn)證的存儲(chǔ)器區(qū)域的程序、重新編程部分非易失性存儲(chǔ)器等有關(guān)的信息。
圖1圖示了數(shù)據(jù)處理系統(tǒng)10的一個(gè)實(shí)施例。數(shù)據(jù)處理系統(tǒng)10包括主裝置12(也被稱為互連或總線主裝置12)、主裝置14(也被稱為互連或總線主裝置14)、存儲(chǔ)器控制器32、非易失性存儲(chǔ)器36、系統(tǒng)互連22、I/O電路16、外圍裝置18及其它從屬裝置20。主裝置12經(jīng)由導(dǎo)線48與系統(tǒng)互連22雙向耦合,主裝置14經(jīng)由導(dǎo)線50與系統(tǒng)互連22雙向耦合,I/O電路經(jīng)由導(dǎo)線52與系統(tǒng)互連22雙向耦合,外圍裝置18經(jīng)由導(dǎo)線54與系統(tǒng)互連22雙向耦合,其它從屬裝置20經(jīng)由導(dǎo)線56與系統(tǒng)互連22雙向耦合,并且存儲(chǔ)器控制器32經(jīng)由導(dǎo)線24與系統(tǒng)互連22雙向耦合。導(dǎo)線24包括用于傳遞主裝置標(biāo)識符26、地址/數(shù)據(jù)30、R/W信號28及其它信號34的導(dǎo)線。
存儲(chǔ)器控制器32包括訪問保護(hù)控制寄存器38、訪問修改電路40、訪問控制電路42和存儲(chǔ)器訪問電路44,并且所述存儲(chǔ)器控制器32經(jīng)由導(dǎo)線46與非易失性存儲(chǔ)器36雙向耦合。訪問保護(hù)控制寄存器向訪問修改電路40提供訪問許可58。訪問修改電路40經(jīng)由導(dǎo)線62從數(shù)據(jù)處理系統(tǒng)10內(nèi)的信息中以及經(jīng)由導(dǎo)線64從存儲(chǔ)器控制器32內(nèi)的信息中接收狀態(tài)信息60,并且向訪問控制電路42提供所修改的訪問許可66。注意到在替換實(shí)施例中,狀態(tài)信息60可以只包括從數(shù)據(jù)處理系統(tǒng)10(經(jīng)由導(dǎo)線62)所提供的信息或可以只包括從存儲(chǔ)器控制器32內(nèi)所提供的信息。此外,狀態(tài)信息60可以包括從在數(shù)據(jù)處理系統(tǒng)10之外的源(經(jīng)由一些或所有導(dǎo)線62)所提供的信息。因此狀態(tài)信息60可以包括任何類型的信號或指示符,所述信號或指示符向訪問修改電路40提供了所要求的狀態(tài)信息,如下面將要詳述的那樣。訪問控制電路42向存儲(chǔ)器訪問電路44提供了允許訪問指示符68(其可以包括一個(gè)或多個(gè)指示符)。
盡管在圖1中只圖示了一個(gè)外圍裝置18,然而數(shù)據(jù)處理系統(tǒng)10可以包括與系統(tǒng)互連22耦合的任意數(shù)目的外圍裝置。同樣,任意數(shù)目的主裝置和從屬裝置可以與系統(tǒng)互連22耦合,并且不局限于在圖1中所示出的那些。還要注意,在一個(gè)實(shí)施例中,所有數(shù)據(jù)處理系統(tǒng)10可以位于單個(gè)集成電路上或位于相同的裝置內(nèi)。作為選擇,數(shù)據(jù)處理系統(tǒng)10可以包括彼此互連的任意數(shù)目的獨(dú)立的集成電路或獨(dú)立的裝置。例如,在一個(gè)實(shí)施例中,存儲(chǔ)器和存儲(chǔ)器控制器(諸如例如非易失性存儲(chǔ)器36和存儲(chǔ)器控制器32)可以位于一個(gè)或多個(gè)集成電路上,與數(shù)據(jù)處理系統(tǒng)10的其余部分分離。
在一個(gè)實(shí)施例中,主裝置12和主裝置14可以是能夠執(zhí)行指令的處理器,諸如微處理器、數(shù)字信號處理器等,或可以包括任何其它類型的互連或總線主裝置,諸如直接存儲(chǔ)器訪問(direct memory accessDMA)電路或調(diào)試電路。盡管只圖示了兩個(gè)主裝置,然而根據(jù)需要數(shù)據(jù)處理系統(tǒng)10也可以包括任意數(shù)目的主裝置(一個(gè)或多個(gè))。還要注意,在任何給定的操作點(diǎn)上,每個(gè)主裝置12和14可以具有不同的安全等級。即,例如,取決于在特定操作點(diǎn)上數(shù)據(jù)處理系統(tǒng)10的狀態(tài),每個(gè)主裝置12和14可以是安全或不安全的主裝置。外圍裝置18可以是任何類型的外圍裝置,諸如通用異步收發(fā)器(universalasynchronous receiver transmitter,UART)、實(shí)時(shí)時(shí)鐘(real timeclock,RTC)、鍵盤控制器、任何類型的存儲(chǔ)器等。注意到,其它從屬裝置20可以包括任何類型的互連從屬裝置,諸如例如可由主裝置12和14訪問的存儲(chǔ)器,以及駐留在系統(tǒng)總線上的任何類型的外圍裝置,包括與外圍裝置18相同類型的外圍裝置。I/O電路16可以包括任何類型的I/O電路,所述I/O電路接收或提供在數(shù)據(jù)處理系統(tǒng)10之內(nèi)或之外的信息。
在所舉例說明的實(shí)施例中,存儲(chǔ)器控制器32和非易失性存儲(chǔ)器36對應(yīng)于與系統(tǒng)互連22耦合的另一從屬裝置。注意到,在一個(gè)實(shí)施例中,非易失性存儲(chǔ)器36可以由與系統(tǒng)互連22耦合的至少兩個(gè)主裝置(諸如例如主裝置12和14)共享。非易失性存儲(chǔ)器36可以位于與主裝置12和14相同的集成電路上或位于獨(dú)立的集成電路上。此外,盡管存儲(chǔ)器36被圖示為非易失性存儲(chǔ)器(諸如閃速存儲(chǔ)器),然而存儲(chǔ)器36可以是任何類型的存儲(chǔ)器,諸如例如只讀存儲(chǔ)器(read onlymemory,ROM)、隨機(jī)存取存儲(chǔ)器(random access memory,RAM)、動(dòng)態(tài)RAM(DRAM)、靜態(tài)RAM(SRAM)、非易失性存儲(chǔ)器(例如閃存、MRAM)等。此外,存儲(chǔ)器36還可以是位于另一外圍裝置或從屬裝置內(nèi)的存儲(chǔ)器或其它存儲(chǔ)裝置。在又一實(shí)施例中,存儲(chǔ)器36可以是具有安全信息的任何其它類型的資源,所述安全信息需要被保護(hù),其中存儲(chǔ)器控制器32可以被替換為具有用于保護(hù)所述資源的訪問保護(hù)電路的任何類型的控制器。
系統(tǒng)互連22把主裝置12、主裝置14、I/O電路16、外圍裝置18、其它從屬裝置20和存儲(chǔ)器控制器32互連。在一個(gè)實(shí)施例中,如圖1中所示,把系統(tǒng)互連22實(shí)現(xiàn)為依照系統(tǒng)總線協(xié)議操作的系統(tǒng)總線。作為選擇,可以使用互連電路(諸如例如在各個(gè)裝置之間路由信息的切換電路)來實(shí)現(xiàn)系統(tǒng)互連22。
在操作中,主裝置12和14請求使用系統(tǒng)互連22來請求對其它從屬裝置20、外圍裝置18或經(jīng)由存儲(chǔ)器控制器32對非易失性存儲(chǔ)器36的訪問。請求的主裝置可以經(jīng)由系統(tǒng)互連22向存儲(chǔ)器控制器32提供訪問請求。所述訪問請求例如可以是對數(shù)據(jù)或指令的讀取請求或?qū)懭胝埱蟆<俣ㄋ稣埱笾餮b置具有足夠的訪問許可,存儲(chǔ)器控制器32響應(yīng)于讀取訪問請求,經(jīng)由系統(tǒng)互連22把所請求的信息(數(shù)據(jù)或指令)提供回所述請求主裝置。在一個(gè)實(shí)施例中,對于訪問請求,向存儲(chǔ)器控制器32提供主裝置標(biāo)識符26,其用于標(biāo)識哪個(gè)主裝置正在請求當(dāng)前訪問。還可以向存儲(chǔ)器控制器32提供R/W信號28以便表明當(dāng)前訪問請求是讀取還是寫入類型的訪問。存儲(chǔ)器控制器32還經(jīng)由地址/數(shù)據(jù)30接收對應(yīng)于當(dāng)前訪問請求的地址信息并且提供所請求的信息。可以經(jīng)由其它信號34來提供任何往返于存儲(chǔ)器控制器32進(jìn)行傳遞所需要的其它信號(諸如狀態(tài)、控制、數(shù)據(jù)等)。
諸如主裝置12和14之類的每個(gè)主裝置可以具有相應(yīng)的訪問許可,所述訪問許可可以用來確定是否允許對非易失性存儲(chǔ)器36的特定訪問請求。例如,特定的主裝置對非易失性存儲(chǔ)器36的寫入訪問或讀取訪問可以具有不同的訪問許可。在一個(gè)實(shí)施例中,把這些訪問許可存儲(chǔ)在訪問保護(hù)控制寄存器38中。
圖2圖示了圖1的訪問保護(hù)控制寄存器38的一個(gè)實(shí)施例。在一個(gè)實(shí)施例中,訪問保護(hù)控制寄存器38包括用于數(shù)據(jù)處理系統(tǒng)10內(nèi)每個(gè)主裝置的一個(gè)訪問保護(hù)字段。例如,訪問保護(hù)控制寄存器38包括分別對應(yīng)于主裝置12和14的主裝置12訪問保護(hù)字段70和主裝置14訪問保護(hù)字段76。訪問保護(hù)字段表明是否允許由特定的主裝置對非易失性存儲(chǔ)器36的特定類型的訪問。例如,在所舉例說明的實(shí)施例中,每個(gè)訪問保護(hù)字段70和76包括讀取訪問保護(hù)字段和寫入訪問保護(hù)字段,用于表明對每個(gè)主裝置的讀取訪問和寫入訪問的許可。
主裝置12訪問保護(hù)字段70包括用于表明是否允許主裝置12對非易失性存儲(chǔ)器36執(zhí)行讀取訪問的主裝置12讀取訪問保護(hù)字段72以及用于表明是否允許主裝置12對非易失性存儲(chǔ)器36執(zhí)行寫入訪問的主裝置12寫入訪問保護(hù)字段74。因此,可以向主裝置12授予對非易失性存儲(chǔ)器36只執(zhí)行讀取或?qū)懭朐L問之一的許可。作為選擇,取決于字段72和74的值,可以向主裝置12授予許可,以對非易失性存儲(chǔ)器36既執(zhí)行讀取訪問又執(zhí)行寫入訪問,或者既不能執(zhí)行讀取訪問也不能執(zhí)行寫入訪問。在一個(gè)實(shí)施例中,字段72和74中的每個(gè)都是用于表明是否允許相應(yīng)訪問類型(讀取或?qū)懭?的一位的字段。類似地,主裝置14訪問保護(hù)字段76包括用于表明是否允許主裝置14對非易失性存儲(chǔ)器36執(zhí)行讀取訪問的主裝置14讀取訪問保護(hù)字段78,以及用于表明是否允許主裝置14對非易失性存儲(chǔ)器36執(zhí)行寫入訪問的主裝置14寫入訪問保護(hù)字段80。因此,可以向主裝置14授予對非易失性存儲(chǔ)器36只執(zhí)行讀取或?qū)懭朐L問之一的許可。作為選擇,取決于字段78和80的值,可以向主裝置14授予許可,以對非易失性存儲(chǔ)器36既執(zhí)行讀取訪問又執(zhí)行寫入訪問,或者既不能執(zhí)行讀取訪問也不能執(zhí)行寫入訪問。在一個(gè)實(shí)施例中,字段78和80中的每個(gè)都是用于表明是否允許相應(yīng)訪問類型(讀取或?qū)懭?的一位的字段。
注意,在候選實(shí)施例中,訪問保護(hù)控制寄存器38可以包括任意數(shù)目的訪問保護(hù)字段,諸如字段70和76。例如,訪問保護(hù)控制寄存器38可以包括用于數(shù)據(jù)處理系統(tǒng)10中每個(gè)主裝置或只是數(shù)據(jù)處理系統(tǒng)10中主裝置子集的一個(gè)訪問保護(hù)字段。還要注意,每個(gè)訪問保護(hù)字段70和76可以包括任意數(shù)目的字段,以便根據(jù)代替或除讀取和寫入訪問之外的不同類型的訪問(諸如例如脈沖串(burst)訪問)來識別許可。此外,可以依照各種不同的方式來實(shí)現(xiàn)字段70、72、74、76、78和80,諸如通過使用不同的字段定義、不同的位分配或不同的位數(shù)目來實(shí)現(xiàn)。作為選擇,可以把它們不同地組織到諸如獨(dú)立的寄存器或數(shù)據(jù)處理系統(tǒng)10中別處的其它寄存器或存儲(chǔ)單元。通常,訪問保護(hù)控制寄存器38可由安全主裝置來軟件編程。在一個(gè)實(shí)施例中,訪問保護(hù)控制寄存器38可以在重置時(shí)被編程。
返回參照圖1,訪問修改電路40可以用來修改(或覆蓋)在控制寄存器38中所存儲(chǔ)的一個(gè)或多個(gè)訪問許可。例如,取決于狀態(tài)信息60,訪問修改電路40可以有選擇地修改來自訪問保護(hù)控制寄存器38的訪問許可58以便提供所修改的訪問許可66。即,在某些情況下,可以修改所有的訪問許可58以便生成修改的訪問許可66,或者作為選擇,可以只修改一個(gè)或一些訪問許可58以致所修改的訪問許可66只包括一個(gè)或一些所修改的許可。即,所修改的訪問許可66可以包括來自訪問保護(hù)控制寄存器38的當(dāng)前并沒有修改的許可。還要注意,所修改的訪問許可66可以向特定的主裝置提供對存儲(chǔ)器36的更廣闊的(或更少限制性的)訪問,或者可以限制特定的主裝置對存儲(chǔ)器36的訪問。
返回參照圖1,然后訪問控制電路42可以根據(jù)所修改的訪問許可66來確定是否允許當(dāng)前的訪問請求。例如,數(shù)據(jù)處理系統(tǒng)10內(nèi)的每個(gè)主裝置(諸如主裝置12和14)可以具有相應(yīng)的主裝置標(biāo)識符。在一個(gè)實(shí)施例中,主裝置12可以對應(yīng)于主裝置標(biāo)識符0,而主裝置14可以對應(yīng)于主裝置標(biāo)識符1,以致可以利用相應(yīng)的編號來唯一地識別每個(gè)主裝置。在替換實(shí)施例中,任何類型的標(biāo)識符可以依照任何方式使用并分配,并且不局限于依照數(shù)字次序、以0開始、或到單個(gè)數(shù)字。此外,在替換實(shí)施例中,多個(gè)主裝置也可以共享相同的主裝置標(biāo)識符。因此,訪問控制電路42可以根據(jù)哪個(gè)主裝置正在請求當(dāng)前訪問(由主裝置標(biāo)識符26向訪問控制電路42表明)以及根據(jù)訪問許可(由所修改的訪問許可66向訪問控制電路42表明),來確定是否允許對非易失性存儲(chǔ)器36的訪問。如果允許訪問,那么允許訪問指示符68向存儲(chǔ)器訪問電路44表明允許訪問,以致存儲(chǔ)器訪問電路44然后可以向非易失性存儲(chǔ)器36提供必要的信號和信息以便完成所請求的訪問(例如完成所請求的讀取或?qū)懭?。然而,如果根據(jù)當(dāng)前請求主裝置的所修改的訪問許可66,訪問控制電路42確定不允許訪問,則允許訪問指示符68表明不允許訪問以致存儲(chǔ)器訪問電路44不完成所請求的訪問。將參考圖3進(jìn)一步描述存儲(chǔ)器控制器32的操作。
圖3依照本發(fā)明一個(gè)實(shí)施例圖示了對應(yīng)于存儲(chǔ)器控制器32的操作的流程96。流程96始于開始82并且繼續(xù)至塊84,在塊84接收訪問請求。例如,主裝置12或14可以經(jīng)由系統(tǒng)互連22提供對非易失性存儲(chǔ)器36的訪問請求,其中所述訪問請求可以是例如讀取或?qū)懭胝埱?,如R/W信號28所表明的那樣。然后流程繼續(xù)至塊86,在那里確定訪問許可。例如,可以由訪問保護(hù)控制寄存器38內(nèi)的字段(諸如字段70和76)來提供這些訪問許可。然后流程繼續(xù)至塊88,在那里接收狀態(tài)信息(諸如狀態(tài)信息60)。所述狀態(tài)信息例如可以涉及調(diào)試操作、來自不安全或未驗(yàn)證的存儲(chǔ)器的操作、存儲(chǔ)器編程、直接存儲(chǔ)器訪問(DMA)操作、引導(dǎo)操作、軟件安全性校驗(yàn)、安全等級、安全性監(jiān)控操作、操作模式、故障監(jiān)控、外部總線操作等。即,可以經(jīng)由狀態(tài)信息60向訪問修改電路40提供信息,其可以表明上述條件、狀態(tài)或操作中的一個(gè)或多個(gè),或可以表明與條件、狀態(tài)或操作中的一個(gè)或多個(gè)有關(guān)的信息。因此可以從數(shù)據(jù)處理系統(tǒng)10內(nèi)的各種地方(諸如從主裝置12、主裝置14、I/O電路16、外圍裝置18或其它從屬裝置20)、存儲(chǔ)器控制器32內(nèi)或從在數(shù)據(jù)處理系統(tǒng)10外部的某些地方或從其任何組合處接收狀態(tài)信息60。
例如,對于與調(diào)試操作有關(guān)的狀態(tài)信息,狀態(tài)信息60的一個(gè)或多個(gè)信號可以從與系統(tǒng)互連22耦合的調(diào)試電路(未示出)接收,所述調(diào)試電路作為獨(dú)立的單元,或者例如作為主裝置12或14的一部分。還可以依照各種不同的方式來組合狀態(tài)信息60內(nèi)的信號以便根據(jù)不止一個(gè)資源來向訪問修改電路40提供所組合的狀態(tài)信息或狀態(tài)信息。此組合電路可以位于訪問修改電路40內(nèi)或在訪問修改電路40之外,甚至在存儲(chǔ)器控制器32之外。
返回參照圖3,然后流程繼續(xù)至塊90,在那里根據(jù)所接收的狀態(tài)信息,可以有選擇地修改訪問許可。例如,在一個(gè)實(shí)施例中,硬件覆蓋可以用來修改所述訪問許可,以致經(jīng)由狀態(tài)信息60傳遞的某些條件或狀態(tài)可以使在訪問保護(hù)控制寄存器38內(nèi)所存儲(chǔ)的許可被硬件覆蓋。例如,在一個(gè)實(shí)施例中,狀態(tài)信息60可以按要求被組合繼而輸入到(或直接輸入到)硬件覆蓋電路,以致當(dāng)滿足一定的條件時(shí),訪問保護(hù)控制寄存器38的值可以被硬件修改或替換以便創(chuàng)建所修改的訪問許可,諸如所修改的訪問許可66。作為選擇,可以依照其它方式,諸如按照其它硬件或軟件方法,來根據(jù)狀態(tài)信息60有選擇地修改訪問許可58,以便生成所修改的訪問許可66。
然后流程繼續(xù)至塊92,在那里根據(jù)所修改的訪問許可來有選擇地執(zhí)行所請求的訪問。例如,如果主裝置12請求對非易失性存儲(chǔ)器36的讀取訪問,并且主裝置12讀取訪問保護(hù)字段72表明允許由主裝置12進(jìn)行讀取訪問,那么將要執(zhí)行主裝置12的請求(假定它沒有被訪問修改電路40修改)。然而,如果狀態(tài)信息60表明應(yīng)當(dāng)修改主裝置12的讀取訪問許可(例如拒絕而不是允許),那么訪問修改電路40可以修改所述讀取訪問許可(并且把它作為所修改的訪問許可66的一部分提供),以便將拒絕而不是允許所請求的讀取訪問,從而覆蓋了主裝置12讀取訪問保護(hù)字段72。然后流程在結(jié)束94結(jié)束。(注意到,當(dāng)每個(gè)經(jīng)由存儲(chǔ)器控制器32對存儲(chǔ)器36進(jìn)行訪問請求時(shí),可以重復(fù)圖3的流程。)因此,對于主裝置(諸如主裝置12或14)對非易失性存儲(chǔ)器36的每個(gè)訪問,訪問保護(hù)控制寄存器38提供訪問許可58,所述訪問許可58可以用來確定是否應(yīng)當(dāng)允許當(dāng)前訪問。然而,取決于數(shù)據(jù)處理系統(tǒng)10的狀態(tài)信息,存在其中可能希望覆蓋這些可軟件編程的寄存器(從而產(chǎn)生所修改的訪問許可66)。例如,如果訪問保護(hù)控制寄存器38是可軟件編程的,那么在訪問保護(hù)控制寄存器38內(nèi)所存儲(chǔ)的許可可能已經(jīng)被不安全的軟件改變以致錯(cuò)誤地允許訪問那些需要被保護(hù)的安全信息。因此,訪問修改電路40可以用來提供修改(諸如硬件覆蓋),取決于數(shù)據(jù)處理系統(tǒng)10的一定狀態(tài)信息或條件,所述訪問修改電路40可以用來修改所述訪問保護(hù)控制寄存器38的訪問許可以便防止訪問安全信息。
在一個(gè)例子中,在調(diào)試操作期間可能需要限制訪問,這是因?yàn)樵谡{(diào)試期間數(shù)據(jù)處理系統(tǒng)10通常被更多地訪問。因此,在一個(gè)實(shí)施例中,狀態(tài)信息60包括來自調(diào)試電路(未示出)的信息,用于表明何時(shí)啟用調(diào)試。在這種情況下,在訪問保護(hù)控制寄存器38內(nèi)所存儲(chǔ)的一些或所有主裝置12和14的許可可以被訪問修改電路40修改。
在另一例子中,在從不安全或未驗(yàn)證的存儲(chǔ)器進(jìn)行操作期間,可能需要修改訪問以便確保數(shù)據(jù)處理系統(tǒng)10的安全性,并且防止可能由于例如在這些不安全或未驗(yàn)證的存儲(chǔ)器內(nèi)所存儲(chǔ)的錯(cuò)誤或敵對軟件而導(dǎo)致的破壞。
在另一例子中,當(dāng)已經(jīng)編程存儲(chǔ)器時(shí)可以修改訪問許可。例如,參照圖1,當(dāng)修改非易失性存儲(chǔ)器36時(shí),可以修改對非易失性存儲(chǔ)器36的訪問許可,這是因?yàn)樗豢赡艽_保非易失性存儲(chǔ)器36的所修改部分的安全性。例如,非易失性存儲(chǔ)器36可能已經(jīng)被修改為包括壞的數(shù)據(jù)、有誤信息或存儲(chǔ)了錯(cuò)誤或敵對的軟件。在這種情況下,狀態(tài)信息60可以包括從存儲(chǔ)器控制器32諸如經(jīng)由導(dǎo)線64所提供的信息。
在又一例子中,可以對于直接存儲(chǔ)器訪問(DMA)操作修改訪問許可。在此例子中,狀態(tài)信息60可以包括來自DMA的、用于表明出現(xiàn)DMA操作的信號(其中例如,主裝置12或14可以是或包括DMA)。在另一例子中,當(dāng)引導(dǎo)操作時(shí)可以修改訪問許可從而確保安全信息仍然是安全的,這是因?yàn)橄到y(tǒng)可能會(huì)由于錯(cuò)誤的固件、軟件或設(shè)置而被引導(dǎo)到未知狀態(tài)中。還可以根據(jù)軟件安全性校驗(yàn)來修改訪問許可,以致不允許在訪問保護(hù)控制寄存器38內(nèi)所存儲(chǔ)的訪問許可控制訪問(即被覆蓋或修改)直到可以校驗(yàn)所述軟件為止。還可以根據(jù)數(shù)據(jù)處理系統(tǒng)10或主裝置12和14的安全等級來修改訪問許可。例如,每個(gè)主裝置可以具有變化的安全等級(只是在安全和不安全之間變化),其中根據(jù)在特定訪問請求期間的安全等級,可以修改控制寄存器38的訪問許可。還可以根據(jù)安全性監(jiān)控操作來修改訪問許可。例如,在數(shù)據(jù)處理系統(tǒng)10中可以存在安全性監(jiān)視器(未示出),所述安全性監(jiān)視器用于監(jiān)督在數(shù)據(jù)處理系統(tǒng)10內(nèi)的操作以便確保沒有違反安全性。因此,當(dāng)由安全性監(jiān)視器檢測到一定的條件時(shí),可以據(jù)此修改訪問。因此狀態(tài)信息60可以用來向訪問修改電路40提供與這些狀態(tài)、條件和操作有關(guān)的信息。
在另一例子中,還可以根據(jù)數(shù)據(jù)處理系統(tǒng)或存儲(chǔ)器控制器32的操作模式來修改訪問許可,如狀態(tài)信息60所表明的。例如,如果數(shù)據(jù)處理系統(tǒng)10進(jìn)入簡化級操作狀態(tài)(諸如最小操作狀態(tài),其中只支持基本的操作集),那么可以修改控制寄存器38的所編程的訪問許可從而當(dāng)在簡化級操作時(shí)保護(hù)數(shù)據(jù)處理系統(tǒng)10。在另一實(shí)施例中,可以根據(jù)數(shù)據(jù)處理系統(tǒng)10的故障監(jiān)視器(未示出)來修改訪問許可。例如,響應(yīng)于故障監(jiān)視器檢測到在數(shù)據(jù)處理系統(tǒng)10的任何部分內(nèi)的故障,可以修改控制寄存器38的訪問許可從而當(dāng)故障檢測時(shí)限制訪問。在此例子中,可以經(jīng)由狀態(tài)信息60向訪問修改電路40提供來自所述故障監(jiān)視器的信號。在又一實(shí)施例中,可以根據(jù)外部總線操作來修改訪問許可。例如,在外部總線操作期間,外部源可能試圖訪問或修改安全信息,或者破壞存儲(chǔ)器36或者數(shù)據(jù)處理系統(tǒng)10。因此,在外部總線操作期間可以限制對訪問的訪問許可從而確保數(shù)據(jù)處理系統(tǒng)10的安全性。
注意到,對于其中狀態(tài)信息(例如經(jīng)由狀態(tài)信息60提供)可以用來有選擇地修改控制寄存器38的訪問許可的不同情況,上面提供了許多例子。替換實(shí)施例可以使用比上述信息更多或更少的信息。此外,可以使用上述情況的組合,其中取決于數(shù)據(jù)處理系統(tǒng)10的需要,可以依照任何方式來組合狀態(tài)信息60以便確定何時(shí)應(yīng)當(dāng)修改訪問許可。即,狀態(tài)信息60可以取自各種不同的資源或源,包括來自存儲(chǔ)器控制器32內(nèi)的那些,用于向訪問修改電路40表明必要的狀態(tài)信息以致訪問修改電路40可以適當(dāng)?shù)卮_定是否修改訪問許可。此外,狀態(tài)信息可以包括用于反映數(shù)據(jù)處理系統(tǒng)10或其任何組件的狀態(tài)或條件的任何類型的信息。所述狀態(tài)信息還可以表明一個(gè)或多個(gè)主裝置(諸如主裝置12和14)的可信賴性。此外,還要注意,盡管上面大部分例子是參考限制訪問許可來提供的,然而取決于數(shù)據(jù)處理系統(tǒng)10的設(shè)計(jì),訪問修改電路40也可以使用狀態(tài)信息來增加或擴(kuò)大訪問許可。
因此,應(yīng)當(dāng)理解可以實(shí)現(xiàn)改進(jìn)了安全性的數(shù)據(jù)處理系統(tǒng),包括多個(gè)主裝置的數(shù)據(jù)處理系統(tǒng)。存取修改電路可以用來根據(jù)各種不同類型的狀態(tài)信息來有選擇地修改訪問許可。因此,隨著數(shù)據(jù)處理系統(tǒng)10的狀態(tài)改變,通過在每個(gè)訪問的基礎(chǔ)上限制或擴(kuò)大訪問許可,可以根據(jù)需要來保持安全性。此外,可以以每個(gè)主裝置為基礎(chǔ)和以每個(gè)訪問類型為基礎(chǔ)來執(zhí)行修改。狀態(tài)信息可以包括從數(shù)據(jù)處理系統(tǒng)10的各個(gè)部分所接收的信息,包括在存儲(chǔ)器控制器32內(nèi)的信息,并且可以包括從在數(shù)據(jù)處理系統(tǒng)10之外的源所接收的信息。還要注意,訪問修改電路可以使用硬件覆蓋機(jī)構(gòu)來有選擇地修改訪問許可。作為選擇,可以使用其它硬件、軟件或其組合、機(jī)構(gòu)來生成修改的訪問許可66。
在上述說明中,已經(jīng)參考具體實(shí)施例描述了本發(fā)明。然而,一個(gè)本領(lǐng)域內(nèi)普通技術(shù)人員應(yīng)當(dāng)理解,在不脫離如權(quán)利要求所闡明的本發(fā)明的范圍的情況下,可以進(jìn)行各種修改和變化。例如,可以不同于在圖1的實(shí)施例中所圖示的那樣來組織數(shù)據(jù)處理系統(tǒng)10和存儲(chǔ)器控制器32。此外,可以采用硬件、軟件和固件的任何組合來實(shí)現(xiàn)所述電路。據(jù)此,應(yīng)當(dāng)認(rèn)為說明書和附圖是說明性的而并非是限制性的,并且意在將所有這種修改包括在本發(fā)明的范圍內(nèi)。
相對于具體實(shí)施例上面已經(jīng)描述了益處、其它優(yōu)點(diǎn)和問題的解決辦法。然而,可能導(dǎo)致任何益處、優(yōu)點(diǎn)或解決辦法出現(xiàn)或使其更加顯著的益處、優(yōu)點(diǎn)、問題的解決辦法和任何元素不應(yīng)當(dāng)被理解為任何或所有權(quán)利要求的關(guān)鍵性的、要求的或必需的特征或元素。如這里所用的,術(shù)語一個(gè)或一種被定義為一個(gè)或多個(gè)而并非單指一個(gè)。如這里所用的,術(shù)語包含和/或具有被定義為包括(即,開放式語言)。如這里所用的,術(shù)語“包括”、“包含”或其任何其它變化意在覆蓋非排他性的包含,以致包括一列元素的過程、方法、物品或設(shè)備并不只包括那些元素,而且還可以包括沒有明顯地列出的其它元素或?yàn)檫@種過程、方法、物品或設(shè)備所固有的元素。
權(quán)利要求
1.一種訪問許可電路,包括第一訪問保護(hù)電路,用于存儲(chǔ)對應(yīng)于第一總線主裝置的第一訪問許可信息;第二訪問保護(hù)電路,用于存儲(chǔ)對應(yīng)于第二總線主裝置的第二訪問許可信息;訪問修改電路,與所述第一和第二訪問保護(hù)電路耦合;和允許訪問指示符,由所述訪問修改電路提供,其中響應(yīng)于由所述第一總線主裝置的第一訪問,所述訪問修改電路接收第一狀態(tài)信息并且接收所述第一訪問許可信息,其中根據(jù)所述第一狀態(tài)信息,所述訪問修改電路有選擇地修改所述第一訪問許可信息以便生成第一修改的訪問許可信息,其中所述第一修改的訪問許可信息用來確定所述允許訪問指示符是否將允許所述第一訪問;其中響應(yīng)于由所述第二總線主裝置的第二訪問,所述訪問修改電路接收第二狀態(tài)信息并且接收所述第二訪問許可信息,其中根據(jù)所述第二狀態(tài)信息,所述訪問修改電路有選擇地修改所述第二訪問許可信息以便生成第二修改的訪問許可信息,并且其中所述第二修改的訪問許可信息用來確定所述允許訪問指示符是否將允許所述第二訪問。
2.如權(quán)利要求1所述的訪問許可電路,其中所述第一狀態(tài)信息表明所述第一總線主裝置的可信賴性。
3.如權(quán)利要求1所述的訪問許可電路,其中所述第一狀態(tài)信息涉及引導(dǎo)操作。
4.如權(quán)利要求1所述的訪問許可電路,其中所述訪問許可電路包括數(shù)據(jù)處理系統(tǒng)的一部分。
5.如權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),還包括調(diào)試電路,用于提供所述第一狀態(tài)信息。
6.如權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),還包括直接存儲(chǔ)器訪問(DMA)電路,用于提供所述第一狀態(tài)信息。
7.如權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),還包括外部總線接口電路,用于提供所述第一狀態(tài)信息。
8.如權(quán)利要求1所述的方法,其中所述第一總線主裝置包括用于執(zhí)行指令的主裝置、用于執(zhí)行直接存儲(chǔ)器訪問(DMA)操作的主裝置和用于執(zhí)行調(diào)試操作的主裝置中的至少一個(gè)。
9.一種用于確定訪問保護(hù)的方法,包括接收對應(yīng)于第一主裝置的第一訪問請求;確定對應(yīng)于所述第一主裝置的第一訪問許可;接收第一狀態(tài)信息;根據(jù)所述第一狀態(tài)信息來有選擇地修改所述第一訪問許可;接收來自第二主裝置的第二訪問請求;確定對應(yīng)于所述第二主裝置的第二訪問許可;接收第二狀態(tài)信息;并且根據(jù)所述第二狀態(tài)信息來有選擇地修改所述第二訪問許可,其中從與所述第二狀態(tài)信息不同的源提供所述第一狀態(tài)信息。
10.一種用于確定訪問保護(hù)的方法,包括接收對應(yīng)于第一主裝置的第一訪問請求;提供第一狀態(tài)信息;根據(jù)所述第一訪問請求來確定第一訪問許可;根據(jù)所述第一狀態(tài)信息來有選擇地修改所述第一訪問許可;接收對應(yīng)于第二主裝置的第二訪問請求;提供第二狀態(tài)信息;根據(jù)所述第二訪問請求來確定第二訪問許可;根據(jù)所述第二狀態(tài)信息來有選擇地修改所述第二訪問許可。
全文摘要
一種用于確定訪問保護(hù)(96)的方法和設(shè)備,包括接收對應(yīng)于多個(gè)主裝置(12,14)的多個(gè)訪問請求(84),確定訪問許可(86),提供狀態(tài)信息(60),根據(jù)所述訪問請求(84)來確定訪問許可(86),并且根據(jù)所述狀態(tài)信息(90)來有選擇地修改所述訪問許可。所述狀態(tài)信息(60)可以涉及調(diào)試操作、來自不安全或未驗(yàn)證的存儲(chǔ)器的操作、存儲(chǔ)器編程、直接存儲(chǔ)器訪問(DMA)操作、引導(dǎo)操作、軟件安全性校驗(yàn)、安全等級、安全性監(jiān)控操作、操作模式、故障監(jiān)控、外部總線接口等(88)。
文檔編號G06F13/28GK1799030SQ200480014969
公開日2006年7月5日 申請日期2004年4月30日 優(yōu)先權(quán)日2003年5月29日
發(fā)明者威廉·C.·莫耶爾, 阿福扎·M.·瑪利克 申請人:飛思卡爾半導(dǎo)體公司