用于虛擬硬件存儲(chǔ)器保護(hù)的系統(tǒng)和方法
【專利摘要】本發(fā)明涉及一種用于虛擬硬件存儲(chǔ)器保護(hù)的系統(tǒng)和方法。存儲(chǔ)器保護(hù)單元包括硬件邏輯。所述硬件邏輯接收指向總線受控器的來(lái)自虛擬中央處理單元(CPU)的事務(wù),該事務(wù)與虛擬CPU標(biāo)識(shí)(ID)相關(guān),其中虛擬CPU實(shí)現(xiàn)在物理CPU上。所述硬件邏輯還基于虛擬CPU?ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器。所述虛擬CPU?ID不同于虛擬CPU實(shí)現(xiàn)在其上的物理CPU的ID。
【專利說(shuō)明】用于虛擬硬件存儲(chǔ)器保護(hù)的系統(tǒng)和方法
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求2013年2月7日提交的美國(guó)臨時(shí)專利申請(qǐng)61 / 762,212(代理編號(hào)T1-73288PS)的優(yōu)先權(quán),其通過(guò)引用合并于此。
【背景技術(shù)】
[0003]各種過(guò)程由與安全和風(fēng)險(xiǎn)降低有關(guān)的國(guó)際標(biāo)準(zhǔn)控制。例如,IEC61508致力于例如用于控制工業(yè)或其他安全關(guān)鍵過(guò)程的微控制器或其他計(jì)算機(jī)的電氣、電子和可編程電子器件的功能安全。IEC61508基于特定應(yīng)用的概率分析定義安全完整性等級(jí)(SIL)。為了實(shí)現(xiàn)給定的SIL,包括組成組件的應(yīng)用必須滿足最大“危險(xiǎn)故障”概率和最小“安全故障分?jǐn)?shù)”的目標(biāo)?!拔kU(xiǎn)故障”的概念是以具體應(yīng)用為基礎(chǔ)來(lái)定義,但是基于在安全關(guān)鍵應(yīng)用的開(kāi)發(fā)期間被證實(shí)完整性的要求約束。“安全故障分?jǐn)?shù)”確定系統(tǒng)管理危險(xiǎn)故障的能力并且將安全的已檢測(cè)故障的可能性與危險(xiǎn)的未檢測(cè)故障的可能性進(jìn)行比較。最終,電子器件對(duì)于特定SIL的認(rèn)證要求電子器件提供特定故障檢測(cè)水平和特定故障恢復(fù)水平并且使安全關(guān)鍵應(yīng)用能夠在出現(xiàn)故障后轉(zhuǎn)變到安全狀態(tài)。
[0004]另一個(gè)功能安全標(biāo)準(zhǔn)是IS026262,其致力于公路車輛例如汽車的功能安全。IS026262關(guān)注于解決由汽車的電子系統(tǒng)和電氣系統(tǒng)的故障行為可能導(dǎo)致的危害。類似于IEC61508所定義的SIL,IS026262提供了特定汽車的基于風(fēng)險(xiǎn)的方案以便確定被稱為汽車安全完整性等級(jí)(ASIL)的風(fēng)險(xiǎn)級(jí)別。ASIL被用來(lái)指定特定產(chǎn)品的能力以便實(shí)現(xiàn)可接受的安全目標(biāo)。
[0005]用于控制過(guò)程(工業(yè)過(guò)程、汽車過(guò)程或其他過(guò)程)的電子器件可被用來(lái)執(zhí)行多種功能,其中一些是“安全功能”,而其他是“非安全功能”。安全功能是其操作影響過(guò)程安全的功能;例如,驅(qū)動(dòng)電動(dòng)機(jī)用于動(dòng)力轉(zhuǎn)向的閉環(huán)控制系統(tǒng)是一種安全功能。非安全功能是其操作不影響過(guò)程安全的功能;例如,內(nèi)置于電子器件的調(diào)試功能用于針對(duì)控制功能開(kāi)發(fā)軟件,但在電子器件集成到車輛時(shí)將不再使用該調(diào)試功能,此調(diào)試功能為非安全功能。
【發(fā)明內(nèi)容】
[0006]上面提到的問(wèn)題很大一部分由包括硬件邏輯的存儲(chǔ)器保護(hù)單元來(lái)解決。硬件邏輯接收指向總線受控器的來(lái)自虛擬中央處理單元(CPU)的事務(wù),該事務(wù)與虛擬CPU標(biāo)識(shí)(ID)相關(guān),其中虛擬CPU實(shí)現(xiàn)在物理CPU上。硬件邏輯還基于虛擬CPU ID確定是否授權(quán)或拒絕訪問(wèn)總線受控器。虛擬CPU ID不同于虛擬CPU實(shí)現(xiàn)在其上的物理CPU的ID。
[0007]本公開(kāi)的其他實(shí)施例涉及一種包括硬件邏輯的存儲(chǔ)器保護(hù)單元。硬件邏輯接收指向總線受控器來(lái)自虛擬中央處理單元(CPU)的事務(wù),該事務(wù)與虛擬任務(wù)標(biāo)識(shí)(ID)相關(guān),其中虛擬CPU實(shí)現(xiàn)在物理CPU上。硬件邏輯還基于虛擬任務(wù)ID確定是否授權(quán)或拒絕訪問(wèn)總線受控器。虛擬任務(wù)ID不同于在虛擬CPU實(shí)現(xiàn)在其上的物理CPU上執(zhí)行的任務(wù)的ID。
[0008]本公開(kāi)的又一實(shí)施例涉及一種方法,其包括:接收指向總線受控器的來(lái)自虛擬中央處理單元(CPU)的事務(wù),該事務(wù)與虛擬CPU標(biāo)識(shí)(ID)相關(guān),其中虛擬CPU實(shí)現(xiàn)在物理CPU上。該方法還包括:基于虛擬CPU ID確定是否授權(quán)或拒絕訪問(wèn)總線受控器。虛擬CPU ID不同于虛擬CPU實(shí)現(xiàn)在其上的物理CPU的ID。
【專利附圖】
【附圖說(shuō)明】
[0009]為了詳細(xì)描述本發(fā)明示例性實(shí)施例,現(xiàn)在將參考附圖,其中:
[0010]圖1示出根據(jù)各種實(shí)施例的示例性片上系統(tǒng)(SOC)體系結(jié)構(gòu)的框圖;
[0011]圖2示出根據(jù)各種實(shí)施例的結(jié)合多任務(wù)總線主控器的示例性存儲(chǔ)器保護(hù)單元(MPU)的框圖;
[0012]圖3示出根據(jù)各種實(shí)施例的結(jié)合單任務(wù)總線主控器的示例性MPU的框圖;
[0013]圖4示出根據(jù)各種實(shí)施例的利用虛擬化硬件方案結(jié)合多任務(wù)總線主控器的示例性MPU的框圖;和
[0014]圖5a_5d示出根據(jù)各種實(shí)施例的方法的流程圖。
[0015]注釋和術(shù)語(yǔ)
[0016]貫穿以下描述和所附權(quán)利要求書(shū)中使用特定術(shù)語(yǔ)來(lái)指代特定系統(tǒng)組件。如所屬領(lǐng)域的技術(shù)人員將 了解,各公司可用不同名稱來(lái)指代一組件。本文不意圖區(qū)分名稱不同但功能相同的組件。在以下論述和所附權(quán)利要求書(shū)中,術(shù)語(yǔ)“包含”和“包括”以開(kāi)放式方式使用,且因此應(yīng)解釋為表示“包含但不限于…”。并且,術(shù)語(yǔ)“耦合”意在表示間接或直接電連接。因此,如果第一器件耦合到第二器件,那么該連接可經(jīng)由直接電連接,或經(jīng)由通過(guò)其它器件和連接的間接電連接。
[0017]如本文中所使用,術(shù)語(yǔ)“事務(wù)”指讀出/寫(xiě)入存儲(chǔ)器或讀出/寫(xiě)入另一邏輯塊或寄存器的請(qǐng)求。
[0018]如本文中所使用,術(shù)語(yǔ)“總線主控器”指啟動(dòng)事務(wù)的邏輯塊。
[0019]如本文中所使用,術(shù)語(yǔ)“總線受控器”指接收事務(wù)的組件;例如,存儲(chǔ)器區(qū)域或外圍設(shè)備可以是總線受控器。
[0020]如本文中所使用,術(shù)語(yǔ)“互連件”指例如在總線主控器和總線受控器之間分配事務(wù)的組件。
【具體實(shí)施方式】
[0021]下面的討論針對(duì)本發(fā)明的各種實(shí)施例。盡管這些實(shí)施例的一個(gè)或多個(gè)可能是優(yōu)選的,但所公開(kāi)的實(shí)施例不應(yīng)被解釋為或以其他方式用作限制包括權(quán)利要求的本公開(kāi)的范圍。此外,本領(lǐng)域技術(shù)人員將理解,下面的描述具有廣泛的應(yīng)用,并且任何實(shí)施例的討論僅僅意在例示該實(shí)施例,而不旨在暗示包括權(quán)利要求的本公開(kāi)的范圍限于該實(shí)施例。
[0022]安全和非安全功能可以在例如具有一個(gè)或多個(gè)處理器核和存儲(chǔ)器的片上系統(tǒng)(SOC)上實(shí)現(xiàn),可在處理器核之間共享該安全和非安全功能。理論上講,當(dāng)單獨(dú)SOC執(zhí)行電子器件的各種功能中的每一個(gè)時(shí),最高安全等級(jí)得以實(shí)現(xiàn)。這樣,特定功能的操作不會(huì)被其他功能削弱或破壞,因?yàn)閷?shí)現(xiàn)特定功能的總線主控器不能訪問(wèn)除其自身以外的任何總線受控器。然而,此類方法成本太高。
[0023]為了降低此類電子器件的成本,安全功能可以與非安全功能一起實(shí)現(xiàn),例如由單個(gè)SOC執(zhí)行多種功能。然而,為了維持適當(dāng)?shù)腟IL,應(yīng)該避免某些功能干擾其他功能(例如,應(yīng)該避免一種功能訪問(wèn)未分配給該功能的地址區(qū)域存儲(chǔ)器,或者避免向未分配給該功能的外圍設(shè)備發(fā)送事務(wù))。
[0024]安全功能可以與多個(gè)SIL中的一個(gè)相關(guān)。例如,SIL為3的安全功能可能要求高等級(jí)的安全保證,而SIL為2或更低的功能要求較低等級(jí)的安全保證,但是仍然比非安全功能要求更多的安全保證。也就是說(shuō),相對(duì)于SIL為2(或更低)的功能,SIL為3的功能存在更大程度的風(fēng)險(xiǎn),因此要求更多的風(fēng)險(xiǎn)降低措施。因此,多個(gè)安全功能可以具有相互獨(dú)立的SIL。各種標(biāo)準(zhǔn)要求具有不同SIL等級(jí)的功能不應(yīng)互相干擾。類似地,非安全關(guān)鍵任務(wù)不得干擾安全關(guān)鍵任務(wù)。因此,當(dāng)非安全功能應(yīng)該被分離以使得非安全功能不破壞安全功能時(shí),較高SIL安全功能(即,數(shù)值更大)也應(yīng)被分離以使得較低SIL安全功能不會(huì)破壞較高SIL安全功能。
[0025]圖1示出具有由數(shù)個(gè)總線主控器實(shí)現(xiàn)的多個(gè)功能(也被稱為任務(wù))的SOC體系結(jié)構(gòu)100。如上所解釋,SOC體系結(jié)構(gòu)100可以是控制過(guò)程和執(zhí)行多個(gè)功能的電子設(shè)備的一部分。某些任務(wù)可以是安全功能,這些安全功能在某些情況下具有不同的SIL,而其他任務(wù)可以是非安全功能。該SOC體系結(jié)構(gòu)100包括實(shí)現(xiàn)任務(wù)A和B的CPU102、實(shí)現(xiàn)任務(wù)C和D的直接存儲(chǔ)器存取(DMA)引擎104和實(shí)現(xiàn)任務(wù)E的通用串行總線(USB)控制器106。CPU102、DMA引擎104和USB控制器106是總線主控器的示例。
[0026]SOC體系結(jié)構(gòu)100還包括將總線主控器102、104、106耦合到示例性總線受控器(例如,隨機(jī)存取存儲(chǔ)器(RAM) 110和只讀存儲(chǔ)器(ROM) 112)的互連件108。此外,互連件108可以將總線主控器102、104、106耦合到外圍設(shè)備116a_116n(例如,串行端口、通用輸入/輸出端口或定時(shí)器)。在一些情況下,外圍互連件114被插入在互連件108和外圍設(shè)備116a-l 16η之間,從而進(jìn)一步便于將事務(wù)路由到適當(dāng)?shù)耐鈬O(shè)備116a_l 16η。
[0027]SOC體系結(jié)構(gòu)100是示例性的,并且應(yīng)當(dāng)理解各種總線主控器102、104、106的多個(gè)實(shí)例可存在于專用SOC中。不論具體的實(shí)施方式如何,總線受控等級(jí)的各個(gè)任務(wù)之問(wèn)免受干擾是重要的,以確保執(zhí)行各種任務(wù)的設(shè)備達(dá)到可接受的風(fēng)險(xiǎn)等級(jí)。此外,如圖1所示,某些總線主控器102、104、106實(shí)現(xiàn)多個(gè)任務(wù),其中一些可以是安全功能,而另一些可以是非安全功能,因此在單個(gè)總線主控器102、104、106上運(yùn)行的任務(wù)之間保持免受干擾也是重要的。
[0028]轉(zhuǎn)到圖2,CPU102與本地存儲(chǔ)器保護(hù)單元(MPU) 202 一起被示出。MPU202包括基于每個(gè)事務(wù)確定是否授權(quán)或拒絕訪問(wèn)總線受控器的硬件邏輯(未示出)。硬件邏輯可包括各種比較器、編碼器、解碼器等,其利用包含在事務(wù)中的信息來(lái)確定是否授權(quán)或拒絕訪問(wèn)總線受控器。例如,事務(wù)可以是指令提取或數(shù)據(jù)訪問(wèn)請(qǐng)求。MPU202可以將指令提取發(fā)送到指令總線,將數(shù)據(jù)訪問(wèn)請(qǐng)求發(fā)送到數(shù)據(jù)總線,或者將指令提取和數(shù)據(jù)訪問(wèn)請(qǐng)求中的任一個(gè)發(fā)送到混合的指令和數(shù)據(jù)總線,連同控制信號(hào)一起發(fā)送以確定該事務(wù)是否是指令提取或數(shù)據(jù)訪問(wèn)請(qǐng)求。這在圖2中通過(guò)MPU202單獨(dú)發(fā)送指令提取和數(shù)據(jù)訪問(wèn)請(qǐng)求來(lái)顯示?;ミB件108意在表不各種總線實(shí)施方式。
[0029]包含在指令提取和/或數(shù)據(jù)訪問(wèn)請(qǐng)求字段中的信息可用于確定是否授權(quán)或拒絕訪問(wèn)總線受控器。此外,MPU202可以基于一個(gè)因子或數(shù)個(gè)因子的組合來(lái)確定是否授權(quán)或拒絕訪問(wèn)總線受控器。
[0030]在一些情況下,可以基于事務(wù)所指向的存儲(chǔ)器的地址來(lái)隔離事務(wù)。例如,某些地址可以是被保護(hù)的,而其他地址是非保護(hù)的。源自安全功能的事務(wù)可以由MPU202授權(quán)其對(duì)被保護(hù)或非保護(hù)地址的訪問(wèn),而源自非安全功能的事務(wù)被授權(quán)訪問(wèn)非保護(hù)地址,并且被拒絕訪問(wèn)被保護(hù)的地址。此外,在某些實(shí)施例中,可以有多個(gè)地址保護(hù)等級(jí),并且允許更高等級(jí)的安全功能訪問(wèn)任何地址,然而僅允許較低等級(jí)的安全功能訪問(wèn)一定等級(jí)的保護(hù)地址,并且僅允許非安全功能訪問(wèn)非保護(hù)地址。
[0031]在其他情況下,可基于與生成事務(wù)的功能或任務(wù)相關(guān)的特權(quán)等級(jí)來(lái)隔離事務(wù)。例如,某些功能可以是“特權(quán)的”,其他功能可以是“非特權(quán)的”。源自特權(quán)功能的事務(wù)可由MPU202授權(quán)訪問(wèn)要求特權(quán)等級(jí)的總線受控器,而源自非特權(quán)功能的事務(wù)可以被拒絕訪問(wèn)要求特權(quán)等級(jí)的總線受控器。類似地,可基于安全等級(jí)來(lái)隔離事務(wù),其中一些功能包括可信代碼,而其他功能包括非可信代碼。源自可信代碼的事務(wù)由MPU202授權(quán)訪問(wèn)以確??偩€受控器安全,而源自非可信代碼的事務(wù)被拒絕訪問(wèn)以確??偩€受控器安全。
[0032]此外,可以基于與生成事務(wù)的功能或任務(wù)相關(guān)的任務(wù)標(biāo)識(shí)(ID)來(lái)隔離事務(wù)。例如,總線主控器或CPU102可以將任務(wù)ID分配到正在運(yùn)行的每個(gè)任務(wù),任務(wù)ID可以由MPU202用來(lái)基于每個(gè)任務(wù)而識(shí)別權(quán)限??商鎿Q地,可以基于事務(wù)是否源自由作為“功能單元”的總線主控器執(zhí)行或由作為“調(diào)試單元”的總線主控器執(zhí)行的功能或任務(wù)來(lái)隔離事務(wù)。MPU202可以授權(quán)源自功能單元的任務(wù)訪問(wèn)某些總線受控器,而拒絕源自調(diào)試單元的任務(wù)訪問(wèn)那些總線受控器。
[0033]參考圖1和2,RAMllO和/或R0M112的地址區(qū)具有相關(guān)的權(quán)限。如果特定功能或任務(wù)的各種屬性滿足地址區(qū)的權(quán)限等級(jí),則MPU202授權(quán)源自該功能或任務(wù)的事務(wù)進(jìn)行訪問(wèn)。如果屬性不符合地址區(qū)域的權(quán)限等級(jí),訪問(wèn)被拒絕。對(duì)于支持執(zhí)行多于一個(gè)任務(wù)的某些組件(例如,CPU102),相關(guān)的MPU202在執(zhí)行的任務(wù)改變時(shí)被重新配置以便支持基于任務(wù)的隔離。MPU202的配置是指被應(yīng)用到當(dāng)前正在執(zhí)行的任務(wù)的訪問(wèn)權(quán)限。例如,存儲(chǔ)緩沖器可能屬于第一任務(wù)。當(dāng)CPU102正在執(zhí)行第一任務(wù)時(shí),MPU202被配置為允許訪問(wèn)存儲(chǔ)緩沖器;但是,當(dāng)CPU102切換到第二任務(wù)時(shí),MPU202被重新配置以防止訪問(wèn)存儲(chǔ)緩沖器。MPU202可以具有對(duì)應(yīng)于CPU102所執(zhí)行的不同任務(wù)的許多已存儲(chǔ)的配置。在一些實(shí)施例中,MPU202可以基于事務(wù)的不同的接收任務(wù)ID而切換配置。在其他實(shí)施例中,例如當(dāng)總線主控器是CPU102時(shí),在CPU102上執(zhí)行的改變?nèi)蝿?wù)的軟件也重新配置MPU202。
[0034]如有嘗試違反由MPU202執(zhí)行的訪問(wèn)規(guī)則的情況發(fā)生,可以采取各種動(dòng)作。例如,MPU202可以向CPU102上執(zhí)行的系統(tǒng)級(jí)監(jiān)控任務(wù)報(bào)告嘗試的訪問(wèn)違規(guī)。在一些情況下,MPU202阻止事務(wù)發(fā)生,而在另外一些情況下,MPU202將該事務(wù)標(biāo)記為具有錯(cuò)誤。此外,在安全敏感的應(yīng)用中,標(biāo)記為具有錯(cuò)誤的事務(wù)可向嘗試獲得安全存儲(chǔ)器訪問(wèn)的惡意實(shí)體提供有用的信息,可產(chǎn)生模擬正常響應(yīng)的響應(yīng),但該響應(yīng)包含錯(cuò)誤的數(shù)據(jù)。
[0035]圖3示出USB控制器106,其是單任務(wù)總線主控器的示例。在單任務(wù)總線主控器的情況下,類似于MPU202的MPU302被實(shí)現(xiàn),盡管是在簡(jiǎn)化的基礎(chǔ)上。例如,USB控制器106通常只訪問(wèn)兩個(gè)區(qū)域一發(fā)送緩沖器和接收緩沖器。此外,MPU302執(zhí)行基于任務(wù)的識(shí)別是沒(méi)有必要的,因?yàn)橹挥幸粋€(gè)任務(wù)由USB控制器106來(lái)實(shí)現(xiàn)。
[0036]在上述示例中,MPU202、302通過(guò)在適當(dāng)?shù)臅r(shí)候限制較低等級(jí)功能或者非安全功能的訪問(wèn)而有利于保護(hù)存儲(chǔ)器和/或某些外圍設(shè)備的某些區(qū)域。因此,可接受的安全等級(jí)由整體裝置獲得,在該整體裝置上實(shí)施SOC體系結(jié)構(gòu)100,同時(shí)通過(guò)在單個(gè)SOC上實(shí)現(xiàn)許多功能來(lái)降低設(shè)備成本。
[0037]根據(jù)各種實(shí)施例,總線主控器例如CPU102可以實(shí)現(xiàn)虛擬化硬件的多個(gè)實(shí)例以便執(zhí)行各種功能。轉(zhuǎn)到圖4,CPU102可包含實(shí)現(xiàn)安全功能的第一虛擬CPU402和實(shí)現(xiàn)非安全功能的第二虛擬CPU404。但是,由于安全功能和非安全功能都由相同的物理CPU(即CPU102)實(shí)現(xiàn),所以由任一功能產(chǎn)生的事務(wù)的CPU ID將是相同的。此外,在某些情況下,由任一功能產(chǎn)生的事務(wù)的任務(wù)ID可能是相同的。因此,上面描述的MPU202將不能區(qū)分事務(wù),而較低等級(jí)的或非安全的功能會(huì)被不適當(dāng)?shù)厥跈?quán)訪問(wèn)特定的總線受控器。
[0038]根據(jù)各種實(shí)施例,虛擬CPU ID與在物理CPU102上仿真的每個(gè)虛擬CPU402、404相關(guān)。此外,虛擬任務(wù)ID可以與在虛擬CPU402、404上運(yùn)行的每個(gè)虛擬任務(wù)相關(guān)。與實(shí)現(xiàn)虛擬化硬件的總線主控器相關(guān)的MPU406(例如,實(shí)現(xiàn)一個(gè)或多個(gè)虛擬CPU402、404的物理CPU102)基于虛擬CPU ID和/或虛擬任務(wù)ID來(lái)授權(quán)或拒絕訪問(wèn)外圍設(shè)備、存儲(chǔ)器區(qū)域或其他總線受控器。因此,即使在安全和非安全功能在虛擬化硬件中實(shí)現(xiàn)的系統(tǒng)中,存儲(chǔ)器保護(hù)也被使能,從而達(dá)到可接受的風(fēng)險(xiǎn)等級(jí)。
[0039]此外,物理CPU102可以執(zhí)行獨(dú)立于由虛擬CPU402、404執(zhí)行的任務(wù)(例如,任務(wù)A-D)的任務(wù)(例如,任務(wù)E)。在這種情況下,MPU406不只是基于虛擬CPU ID或虛擬任務(wù)ID來(lái)授權(quán)或拒絕訪問(wèn),而是一般基于虛擬CPU ID和CPU ID或者虛擬任務(wù)ID和任務(wù)ID來(lái)授權(quán)或拒絕訪問(wèn)。這樣,MPU406將相同的許可方案應(yīng)用到CPU,而不管它們是否是虛擬CPU402、404或物理CPU102。類似地,MPU406將相同的許可方案應(yīng)用到任務(wù),而不管它們是否是由虛擬硬件實(shí)現(xiàn)的任務(wù)(即由虛擬CPU402、404實(shí)現(xiàn)的任務(wù)A-D)或由物理硬件實(shí)現(xiàn)的任務(wù)(即由CPU102實(shí)現(xiàn)的任務(wù)E)。
[0040]圖5a_5d示出根據(jù)各種實(shí)施例的方法500。圖5a示出方法500,其開(kāi)始于塊502,其中接收指向總線受控器的來(lái)自虛擬CPU的事務(wù)。虛擬CPU實(shí)現(xiàn)在物理CPU上,并且該事務(wù)與虛擬CPU ID相關(guān)。方法500繼續(xù)進(jìn)入塊504中,其中基于虛擬CPU ID確定是否授權(quán)或拒絕訪問(wèn)總線受控器。如上面所解釋的,由此使得即便各種功能實(shí)現(xiàn)在虛擬化硬件中也能夠進(jìn)行存儲(chǔ)器保護(hù)。例如,安全功能可以在虛擬CPU上執(zhí)行,而非安全功能在物理CPU上執(zhí)行。通常,每個(gè)功能將只與物理CPU ID相關(guān),但是因?yàn)樗鼈冊(cè)谙嗤奈锢砜偩€主控器上執(zhí)行,所以不能被區(qū)分。然而,根據(jù)各種實(shí)施例,由于考慮到虛擬CPU ID和物理CPU ID,因此MPU例如MPU406使得能夠區(qū)分這些功能。
[0041]轉(zhuǎn)到圖5b,方法500可以可選地包括:在塊506中接收同樣指向總線受控器的來(lái)自物理CPU的事務(wù)。方法500繼續(xù)進(jìn)入塊508,其中基于物理CPU ID確定是否授權(quán)或拒絕訪問(wèn)總線受控器。然后,在塊510中,該方法包括:分別基于虛擬CPU ID和物理CPU ID授權(quán)來(lái)自虛擬CPU和物理CPU的事務(wù)之一進(jìn)行訪問(wèn),并且拒絕其他事務(wù)進(jìn)行訪問(wèn)。這進(jìn)一步說(shuō)明如上所述的功能,其中MPU406區(qū)分源于物理CPU上的事務(wù)和源于實(shí)現(xiàn)在物理CPU上的虛擬CPU上的事務(wù)。
[0042]圖5c進(jìn)一步示出該方法500,其可選地包括:在塊512中接收指向總線受控器的來(lái)自虛擬CPU的事務(wù)。該事務(wù)與虛擬任務(wù)ID相關(guān)。方法500繼續(xù)進(jìn)入塊514,其中基于虛擬任務(wù)ID確定是否授權(quán)或拒絕訪問(wèn)總線受控器。如圖5d的塊516中所示,圖5c所示的方法500可以可選地繼續(xù)接收指向總線受控器的來(lái)自物理CPU的事務(wù)。該事務(wù)與物理任務(wù)ID相關(guān)。方法500繼續(xù)進(jìn)入塊518,其中基于物理任務(wù)ID確定是否授權(quán)或拒絕訪問(wèn)總線受控器。在塊520中,方法500包括:基于虛擬任務(wù)ID和物理任務(wù)ID授權(quán)來(lái)自虛擬CPU或物理CPU的事務(wù)中的一個(gè)進(jìn)行訪問(wèn),并且拒絕其他事務(wù)進(jìn)行訪問(wèn)。這樣,不管事務(wù)是否源自虛擬CPU或物理CPU,其關(guān)聯(lián)的任務(wù)ID ( S卩,虛擬任務(wù)ID或物理任務(wù)ID)都可被用來(lái)區(qū)分針對(duì)每個(gè)事務(wù)允許的存儲(chǔ)器保護(hù)等級(jí)。
[0043]以上討論意在說(shuō)明本發(fā)明的原理和各種實(shí)施例。本領(lǐng)域技術(shù)人員一旦完全理解上述公開(kāi),許多變化和修改將變得明顯。隨附權(quán)利要求旨在被解釋成包含所有這樣的變化和修改。
【權(quán)利要求】
1.一種存儲(chǔ)器保護(hù)單元,其包括: 硬件邏輯,其用于: 接收指向總線受控器的來(lái)自虛擬中央處理單元即虛擬CPU的事務(wù),所述事務(wù)與虛擬CPU標(biāo)識(shí)即虛擬CPU ID相關(guān),其中所述虛擬CPU實(shí)現(xiàn)在物理CPU上;以及基于所述虛擬CPU ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述虛擬CPU ID不同于所述虛擬CPU實(shí)現(xiàn)在其上的所述物理CPU的ID。
2.根據(jù)權(quán)利要求1所述的存儲(chǔ)器保護(hù)單元,其中所述硬件邏輯進(jìn)一步: 接收指向所述總線受控器的來(lái)自所述物理CPU的事務(wù),該事務(wù)與所述物理CPU ID相關(guān);以及 基于所述物理CPU ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述硬件邏輯分別基于所述虛擬CPU ID或所述物理CPU ID授權(quán)來(lái)自所述虛擬CPU或所述物理CPU的事務(wù)中的一個(gè)進(jìn)行訪問(wèn),并且基于所述虛擬CPU ID或所述物理CPUID拒絕其他事務(wù)進(jìn)行訪問(wèn)。
3.根據(jù)權(quán)利要求1所述的存儲(chǔ)器保護(hù)單元,其中所述硬件邏輯進(jìn)一步: 接收指向所述總線受控器的來(lái)自所述虛擬CPU的另一事務(wù); 以每個(gè)事務(wù)為基礎(chǔ)確 定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述虛擬CPU ID指示訪問(wèn)應(yīng)被授權(quán),但是所述硬件邏輯基于所述事務(wù)的獨(dú)特因子拒絕訪問(wèn)所述總線受控器。
4.根據(jù)權(quán)利要求3所述的存儲(chǔ)器保護(hù)單元,其中所述事務(wù)的獨(dú)特因子包括選自由以下各項(xiàng)構(gòu)成的群組中的一個(gè): 所述事務(wù)指向的地址; 與產(chǎn)生所述事務(wù)的任務(wù)相關(guān)的特權(quán)等級(jí); 與產(chǎn)生所述事務(wù)的所述任務(wù)相關(guān)的安全等級(jí);以及 所述事務(wù)是否由所述虛擬CPU的功能單元或者所述虛擬CPU的調(diào)試單元產(chǎn)生。
5.一種存儲(chǔ)器保護(hù)單元,其包括: 硬件邏輯,其用于: 接收指向總線受控器的來(lái)自虛擬中央處理單元即虛擬CPU的事務(wù),所述事務(wù)與虛擬任務(wù)標(biāo)識(shí)即虛擬任務(wù)ID相關(guān),其中所述虛擬CPU實(shí)現(xiàn)在物理CPU上; 基于所述虛擬任務(wù)ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述虛擬任務(wù)ID不同于在所述虛擬CPU實(shí)現(xiàn)在其上的所述物理CPU上執(zhí)行的任務(wù)的ID。
6.根據(jù)權(quán)利要求5所述的存儲(chǔ)器保護(hù)單元,其中所述硬件邏輯進(jìn)一步: 接收指向所述總線受控器的來(lái)自所述物理CPU的事務(wù),所述事務(wù)與所述物理任務(wù)ID相關(guān);以及 基于所述物理任務(wù)ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述硬件邏輯分別基于所述虛擬任務(wù)ID或所述物理任務(wù)ID授權(quán)來(lái)自所述虛擬CPU或所述物理CPU的事務(wù)中的一個(gè)進(jìn)行訪問(wèn),并且基于所述虛擬任務(wù)ID或所述物理任務(wù)ID拒絕其他事務(wù)進(jìn)行訪問(wèn)。
7.根據(jù)權(quán)利要求5所述的存儲(chǔ)器保護(hù)單元,其中所述硬件邏輯進(jìn)一步:接收指向所述總線受控器的來(lái)自所述虛擬CPU的另一事務(wù); 以每個(gè)事務(wù)為基礎(chǔ)確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述虛擬任務(wù)ID指示訪問(wèn)應(yīng)被授權(quán),但是所述硬件邏輯基于所述事務(wù)的獨(dú)特因子拒絕訪問(wèn)所述總線受控器。
8.根據(jù)權(quán)利要求7所述的存儲(chǔ)器保護(hù)單元,其中所述事務(wù)的獨(dú)特因子包括選自由以下各項(xiàng)構(gòu)成的群組中的一個(gè): 所述事務(wù)指向的地址; 與產(chǎn)生所述事務(wù)的任務(wù)相關(guān)的特權(quán)等級(jí); 與產(chǎn)生所述事務(wù)的所述任務(wù)相關(guān)的安全等級(jí);以及 所述事務(wù)是否由所述虛擬CPU的功能單元或者所述虛擬CPU的調(diào)試單元產(chǎn)生。
9.一種方法,其包括: 接收指向總線受控器的來(lái)自虛擬中央處理單元即虛擬CPU的事務(wù),所述事務(wù)與虛擬CPU標(biāo)識(shí)即虛擬CPU ID相關(guān),其中所述虛擬CPU實(shí)現(xiàn)在物理CPU上;以及基于所述虛擬CPU ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述虛擬CPU ID不同于所述虛擬CPU實(shí)現(xiàn)在其上的所述物理CPU上的ID。
10.根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括: 接收指向所述總線受控器的來(lái)自所述物理CPU的事務(wù),所述事務(wù)與所述物理CPU ID相關(guān);以及 基于所述物理CPU ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 分別基于所述虛擬CPU ID或所述物理CPU ID授權(quán)來(lái)自所述虛擬CPU或所述物理CPU的事務(wù)中的一個(gè)進(jìn)行訪問(wèn);以及 基于所述虛擬CPU ID或所述物理CPU ID拒絕其他事務(wù)進(jìn)行訪問(wèn)。
11.根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括: 接收指向所述總線受控器的來(lái)自所述虛擬CPU的另一事務(wù); 以每個(gè)事務(wù)為基礎(chǔ)確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述虛擬CPU ID指示訪問(wèn)應(yīng)被授權(quán),而所述方法進(jìn)一步包括基于所述事務(wù)的獨(dú)特因子拒絕訪問(wèn)所述總線受控器。
12.根據(jù)權(quán)利要求11所述的方法,其中所述事務(wù)的獨(dú)特因子包括選自由以下各項(xiàng)構(gòu)成的群組中的一個(gè): 所述事務(wù)指向的地址; 與產(chǎn)生所述事務(wù)的任務(wù)相關(guān)的特權(quán)等級(jí); 與產(chǎn)生所述事務(wù)的所述任務(wù)相關(guān)的安全等級(jí);以及 所述事務(wù)是否由所述虛擬CPU的功能單元或者所述虛擬CPU的調(diào)試單元產(chǎn)生。
13.根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括: 接收指向總線受控器的來(lái)自虛擬CPU的事務(wù),所述事務(wù)與虛擬任務(wù)標(biāo)識(shí)即虛擬任務(wù)ID相關(guān);以及 基于所述虛擬任務(wù)ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述虛擬任務(wù)ID不同于在所述虛擬CPU實(shí)現(xiàn)在其上的所述物理CPU上執(zhí)行的任務(wù)的ID。
14.根據(jù)權(quán)利要求13所述的方法,其進(jìn)一步包括: 接收指向所述總線受控器的來(lái)自所述物理CPU的事務(wù),所述事務(wù)與所述物理任務(wù)ID相關(guān);以及 基于所述物理任務(wù)ID確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 分別基于所述虛擬任務(wù)ID或所述物理任務(wù)ID授權(quán)來(lái)自所述虛擬CPU或所述物理CPU的事務(wù)中的一個(gè)進(jìn)行訪問(wèn);以及 基于所述虛擬任務(wù)ID或者所述物理任務(wù)ID拒絕其他事務(wù)進(jìn)行訪問(wèn)。
15.根據(jù)權(quán)利要求13所述的方法,其進(jìn)一步包括: 接收指向所述總線受控器的來(lái)自所述虛擬CPU的另一事務(wù); 以每個(gè)事務(wù)為基礎(chǔ)確定是否授權(quán)或拒絕訪問(wèn)所述總線受控器; 其中所述虛擬任務(wù)ID指示訪問(wèn)應(yīng)被授權(quán),而所述方法進(jìn)一步包括基于所述事務(wù)的獨(dú)特因子拒絕訪問(wèn)所述總線受控器。
16.根據(jù)權(quán)利要求15的方法,其中所述事務(wù)的獨(dú)特因子包括選自由以下各項(xiàng)構(gòu)成的群組中的一個(gè): 所述事務(wù)指向的 地址; 與產(chǎn)生所述事務(wù)的任務(wù)相關(guān)的特權(quán)等級(jí); 與產(chǎn)生所述事務(wù)的所述任務(wù)相關(guān)的安全等級(jí);以及 所述事務(wù)是否由所述虛擬CPU的功能單元或者所述虛擬CPU的調(diào)試單元產(chǎn)生。
【文檔編號(hào)】G06F21/78GK103984909SQ201410092365
【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2014年1月29日 優(yōu)先權(quán)日:2013年2月7日
【發(fā)明者】B·S·沙瓦里, K·F·格雷布, R·蘇瓦納 申請(qǐng)人:德克薩斯儀器股份有限公司