TW201532073A - 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作 - Google Patents

用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作 Download PDF

Info

Publication number
TW201532073A
TW201532073A TW104100315A TW104100315A TW201532073A TW 201532073 A TW201532073 A TW 201532073A TW 104100315 A TW104100315 A TW 104100315A TW 104100315 A TW104100315 A TW 104100315A TW 201532073 A TW201532073 A TW 201532073A
Authority
TW
Taiwan
Prior art keywords
memory
address
area
attribute
memory address
Prior art date
Application number
TW104100315A
Other languages
English (en)
Other versions
TWI655643B (zh
Inventor
Thomas Christopher Grocutt
Original Assignee
Advanced Risc Mach Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW201532073A publication Critical patent/TW201532073A/zh
Application granted granted Critical
Publication of TWI655643B publication Critical patent/TWI655643B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

一種資料處理設備具有記憶體屬性單元,該記憶體屬性單元具有儲存區域,該等儲存區域用於儲存屬性資料以便藉由處理電路系統控制對對應記憶體位址範圍的存取。回應於目標記憶體位址,處理電路系統可執行區域辨識操作以輸出區域辨識值,該值辨識屬性單元之儲存區域9中的何者對應於目標記憶體位址。區域辨識值可用於藉由資料處理設備所執行的至少一些軟體。此可用於迅速檢查一系列位址之存取許可或用於決定如何更新記憶體屬性單元。

Description

用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作
本技術係關於資料處理之領域。更特定言之,本技術係關於一種具有記憶體屬性單元的資料處理設備,該記憶體屬性單元用於儲存屬性資料以便控制對記憶體的存取。
資料處理設備可具有記憶體屬性單元(諸如記憶體保護單元),該記憶體屬性單元用於儲存屬性資料以便藉由處理電路系統控制對對應記憶體位址範圍的存取。當需要記憶體存取時,則記憶體屬性單元查找對應於包括目標位址之位址範圍的屬性資料,且若存在命中,則基於屬性資料決定是否容許讀取或寫入存取。
從一個態樣看,本技術提供一種資料處理設備,該資料處理設備包含: 處理電路系統,經配置以執行資料處理;以及記憶體屬性單元,包含複數個儲存區域,每一儲存區域經配置以儲存屬性資料以便藉由處理電路系統控制對對應記憶體位址範圍的存取;其中回應於目標記憶體位址,處理電路系統經配置執行區域辨識操作以輸出區域辨識值,該值用於辨識該複數個儲存區域中的何者係由記憶體屬性單元所指示的、對應於包括該目標記憶體位址的記憶體位址範圍之對應儲存區域,其中目標記憶體位址係實體位址,且區域辨識值可用於藉由資料處理設備所執行的至少一些軟體。
從另一態樣看,本技術提供一種資料處理設備,該資料處理設備包含:處理手段,用於執行資料處理;以及記憶體屬性儲存手段,包含複數個儲存區域手段,該等儲存區域手段用於儲存屬性資料以便藉由處理手段控制對對應記憶體位址範圍的存取;其中回應於目標記憶體位址,處理手段經配置執行區域辨識操作以輸出區域辨識值,該值用於辨識該複數個儲存區域手段中的何者係由記憶體屬性儲存手段所指示的、對應於包括該目標記憶體位址的記憶體位址範圍之對應儲存區域手段,其中目標記憶體位址係實體位址,且區域辨識值可用於藉由資料處理設備所執行的至少一些軟體。
從又一態樣看,本技術提供一種用於資料處理設備的資料處理方法,該資料處理設備包含記憶體屬性單元,該 記憶體屬性單元包含複數個儲存區域,每一儲存區域經配置以儲存屬性資料以便藉由處理電路系統控制對對應記憶體位址範圍的存取;該方法包含:回應於目標記憶體位址,執行區域辨識操作;該區域辨識操作包含:決定該複數個儲存區域中的何者係由記憶體屬性單元所指示的、對應於包括該目標記憶體位址的記憶體位址範圍之對應儲存區域;以及輸出區域辨識值,該值辨識該複數個區域中的何者係該對應儲存區域,其中目標記憶體位址係實體位址,且區域辨識值可用於藉由資料處理設備所執行的至少一些軟體。
本技術之進一步態樣、特徵及優勢將自結合隨附圖式閱讀的實例之以下描述而顯而易見。
2‧‧‧處理設備
4‧‧‧處理器/處理電路系統
5‧‧‧匯流排矩陣
6‧‧‧記憶體
7‧‧‧記憶體屬性單元
8‧‧‧暫存器
9‧‧‧儲存區域
10‧‧‧取指令階段
11‧‧‧記憶體位址範圍
12‧‧‧解碼階段
13‧‧‧位址空間
14‧‧‧執行階段
15‧‧‧屬性資料
20‧‧‧程式計數器暫存器
22‧‧‧鏈接暫存器
24‧‧‧堆疊指標暫存器
26‧‧‧堆疊指標暫存器
30‧‧‧安全堆疊
32‧‧‧較不安全堆疊
39‧‧‧較不安全資料
40‧‧‧安全保護硬體
42‧‧‧安全保護單元
44‧‧‧安全區域
46‧‧‧較不安全區域
47‧‧‧特權安全代碼
48‧‧‧較不安全代碼
50‧‧‧安全MPU
52‧‧‧較不安全MPU
70‧‧‧較不安全域
80‧‧‧安全域
90‧‧‧無特權狀態
100‧‧‧特權狀態
110‧‧‧比較器
112‧‧‧資料
114‧‧‧命中訊號
115‧‧‧屬性資料
116‧‧‧邏輯
118‧‧‧屬性
120‧‧‧區域編號
140‧‧‧位址/實例
150‧‧‧保留位址範圍
152‧‧‧實例
160‧‧‧實例
170‧‧‧指令
180‧‧‧區域辨識操作
190‧‧‧步驟
200‧‧‧分支指令
210‧‧‧步驟
250‧‧‧軟體程式庫
260‧‧‧程式庫管理器
270‧‧‧程式庫配置資料
280‧‧‧有效位元
290‧‧‧軟體表
300‧‧‧步驟
302‧‧‧步驟
304‧‧‧步驟
第1圖示意性圖示資料處理設備之實例;第2圖圖示用於儲存記憶體位址空間之對應位址範圍的屬性資料之記憶體屬性單元;第3圖圖示資料處理設備之更詳細實例;第4圖圖示與第3圖之實例一起使用之記憶體位址空間之實例;第5圖圖示第3圖所示之處理設備之不同安全狀態之實例;第6圖圖示區域辨識指令之示例性編碼;第7圖圖示區域辨識指令之示例性結果; 第8圖圖示具有用於產生區域編號之邏輯的記憶體屬性單元之實例,該區域編號辨識對應目標位址的區域;第9A圖圖示藉由向預定暫存器寫入目標位址觸發區域辨識操作之實例;第9B圖圖示在不同域中提供不同預定暫存器以便觸發對於記憶體屬性單元之區域辨識操作之實例;第10圖圖示使用自較不安全域傳遞之位址的安全域中的函數之實例;第11圖圖示可取決於自較不安全域傳遞之位址跨越哪些記憶體屬性區域而發生的問題之實例;第12圖圖示使用區域辨識操作檢查可安全執行安全域中的函數之實例;第13圖圖示可使用區域辨識操作加速新程式庫之啟動的實例;以及第14圖係圖示執行區域辨識操作之方法的流程圖。
本技術認識到,在有些情形中處理電路系統執行區域辨識操作以輸出區域辨識值是有用的,該值辨識記憶體屬性單元之儲存區域中的何者對應於指定目標位址,以便使得區域辨識值可用於藉由資料處理設備所執行的至少一些軟體。此為不尋常的,因為當在記憶體屬性單元中查找目標記憶體位址時通常僅將獲得屬性資料本身。哪一儲存區域映射至特定目標位址通常並不著重考慮,因為可在任一儲存區域中置放給定位址的屬性資料。然而,本技術認識到,區域辨 識操作可幫助例如加速檢查對於一系列位址的存取許可。在沒有區域辨識操作情況下,檢查容許對整個範圍之位址的存取將需要檢查對於該範圍內的每一個別位址的許可。然而,藉由使得區域辨識值可用於軟體,檢查哪一儲存區域與該範圍之起始位址及結束位址關聯來查看兩者是否皆與相同儲存區域相關是可能的。若皆與相同儲存區域相關,則對於整個範圍之位址的存取許可為相同,且因此不必檢查對於每一個別位址的許可,從而增加效能及減少功率消耗。即使起始位址與結束位址並不相同,區域辨識操作可用於決定存取許可變化的點,以便減少檢查次數。如下文將論述,區域辨識操作亦可幫助在更新記憶體屬性單元時引進新上下文、程序或程式庫的屬性。
目標記憶體位址係實體位址,此意謂記憶體屬性單元將連續目標記憶體位址映射至處理電路系統與記憶體之間邊界處的連續記憶體位址(換言之,連續目標記憶體位址映射至輸出到記憶體的連續位址)。在許多情況中,輸出到記憶體的位址可為與對應目標位址相同的位址。然而,記憶體屬性單元亦可能應用簡單映射,諸如添加常數至自處理電路系統所接收的所有目標位址以產生輸出到記憶體的位址,且此情況亦考慮使用實體目標位址。此與記憶體管理單元完全不同,該記憶體管理單元提供自處理器所指定之虛擬目標位址至輸出到記憶體的實體位址之任意位址變換。在記憶體管理單元中,可將連續目標位址映射至輸出到記憶體的非連續位址。本技術之區域辨識操作對於記憶體管理單元而言並不 那麼有用,因為通常在記憶體位址之頁面粒度下實施位址變換,該頁面粒度傾向於相對較小(例如,4K位址),且因此單個程序或程式可使用對應於許多不同頁面的位址。此意謂區域辨識操作可用於減少如上文所論述之所需檢查的量的可能性更小,因為通常起始位址及結束位址將對應於記憶體管理單元之不同頁面,即便是起始位址及結束位址與相同程序相關。與此相反,在記憶體屬性單元使用實體位址作為目標位址的情況下,對應於記憶體屬性單元之單個儲存區域的位址範圍傾向於比記憶體管理單元的位址範圍更大,且由單個程式所使用的位址範圍之整體通常將對應於單個儲存區域。因此,區域辨識操作發現起始位址及結束位址與相同儲存區域關聯的可能性更大,以允許減少如上文所論述之檢查。
可以不同方式觸發區域辨識操作。舉例而言,可提供專用區域辨識指令,該指令指定目標記憶體位址。程式設計師可在代碼中包括區域辨識指令以觸發處理電路系統執行區域辨識操作及輸出區域辨識值。
或者,可不存在專用區域辨識指令。實情為,可提供預定暫存器,當用目標記憶體位址寫入時,該預定暫存器觸發處理電路系統執行區域辨識操作以辨識與目標記憶體位址關聯的區域。舉例而言,通用儲存或移動指令可用於將目標記憶體位址寫入到預定暫存器中。
區域辨識操作不必總是回傳有效區域辨識值。可存在各種情形,其中可輸出無效區域辨識值。舉例而言,若存在以下情況,則可輸出無效區域辨識值: (a)禁用記憶體屬性單元;或(b)目標記憶體位址不對應於複數個區域中的任何者;或(c)目標記憶體位址對應於複數個區域中的兩者或更多者;(d)目標記憶體位址對應於啟用之複數個區域中的兩者或更多者;或(e)目標記憶體位址不對應於啟用之複數個區域中的任何者;或(f)當處理電路系統處於具有不充分安全特權的操作模式中時,執行區域辨識操作來決定區域辨識值。給定資料處理設備不必應用所有該等標準及可應用該等標準中的任一或更多者來偵測是否應輸出無效區域辨識值。
可以不同方式表示無效區域辨識值。在一個實例中,可使用預定值表示無效區域辨識值,該預定值並非表示記憶體屬性單元之真實儲存區域。舉例而言,若使用0與正整數之間的數字表示記憶體屬性單元之儲存區域,則可使用負值(例如,-1)指示無效區域辨識值。或者,可使用無效旗標表示無效區域辨識值,該無效旗標與區域辨識值一起輸出且經設置為一值,該值指示該關聯的區域辨識值為無效的。在此情況中,則區域辨識值可具有一值(例如,零),該值原本將發送訊號告知記憶體屬性單元之真實區域,但該值由無效旗標指示為不表示有效區域。
關於上文情況(f),在一些情形中,可能不希望與給定位址關聯的儲存區域變得可被使用者或程式使用,且因此若在處於具有不充分安全特權的狀態下時執行區域辨識操作 來決定區域辨識值,則可能會輸出無效區域辨識值。在使用與區域辨識值一起輸出的無效旗標表示無效值的情況中,將對應區域辨識值設置為預定值(例如,零)可用於防止具有不充分安全特權的程序自區域辨識值獲得資訊。舉例而言,在具有安全狀態及較不安全狀態的系統中,可需要防止較不安全狀態下的代碼存取安全狀態下所使用之關於記憶體屬性單元之儲存區域的資訊,因為攻擊者可使用此資訊決定關於由安全狀態所使用之位址映射的資訊,該資訊可用於輔助攻擊。藉由防止有效區域辨識值在較不安全狀態下被回傳,可維持安全性。
當執行區域辨識操作時,處理電路系統亦可輸出額外資訊以及區域辨識值。舉例而言,此額外資訊可包含以下之任意一或更多者:‧儲存於對應儲存區域中的屬性資料中的至少一些,‧來源於儲存於對應儲存區域中的屬性資料中的至少一些之資訊,‧安全狀態之指示,該安全狀態與對應儲存區域之記憶體位址範圍關聯,或‧對應於對應儲存區域之記憶體位址範圍之起始位址及/或結束位址的值。在執行區域辨識操作的情形中,通常亦需要檢查關於目標位址的額外資訊,諸如此位址的屬性資料或安全狀態,且因此藉由回應於區域辨識操作輸出此額外資訊,此舉移除了執行獨立操作來檢查額外資訊的需要。記憶體屬性單元之硬體可 在任何情況下回應於查找回傳額外資訊,且因此可需要對硬體實行極少修改,以便延伸區域辨識操作以輸出額外資訊。
在記憶體位址範圍之起始位址及/或結束位址的情況中,額外資訊不必明確表示該等起始位址或結束位址。可使用可用於衍生起始位址或結束位址的任何值。舉例而言,若其屬性被界定的記憶體位址範圍必須與兩個位址邊界之n次冪對準,則可使用2的n次冪的倍數表示位址,而不是位址值本身。此外,可使用一值表示結束位址,該值表示結束位址相對於起始位址或位址範圍之總大小的偏移,且類似地亦可將該偏移表示為2的n次冪。
可藉由處理電路系統將由區域辨識操作輸出的區域辨識值寫入到目的地暫存器之至少一部分中。因此,區域辨識值可變得可由後續指令使用。可藉由上文所論及之區域辨識指令指定目的地暫存器,或目的地暫存器可為處理電路系統應寫入區域辨識值的預設暫存器。亦可將諸如上文所描述之無效旗標或額外資訊以及區域辨識值寫入到目的地暫存器中。
可以不同方式表示區域辨識值。在一個實例中,區域辨識值可包含對應儲存區域之區域編號。可以不同方式產生區域編號。在一個實例中,記憶體屬性單元可回應於對於目標位址的查找而產生區域編號。針對執行正常記憶體屬性查找來發現給定位址的屬性資料,記憶體屬性單元通常將具有用於比較目標位址與每一區域之位址範圍的比較器,且因此可使用由該等比較器產生的命中訊號衍生區域編號。或 者,每一儲存區域可儲存辨識彼區域的區域編號。在此情況中,當執行區域辨識操作時,處理電路系統可控制記憶體屬性單元從對應儲存區域中獲得區域編號及處理電路系統隨後輸出該區域編號。
區域辨識值亦可為另一參數,該參數指示與給定位址關聯的儲存區域。舉例而言,若對應於記憶體屬性單元之不同區域的記憶體位址範圍並未重疊,則如藉由處理電路系統查看的,每一記憶體位址範圍之起始位址或結束位址可辨識儲存彼範圍之屬性資料的儲存區域。
記憶體屬性單元可包含儲存屬性資料的任何單元,該等屬性資料控制處理電路系統執行對於給定記憶體位址之記憶體存取的能力。舉例而言,記憶體屬性單元可用於加強更安全狀態與較不安全狀態之間的邊界,或用於將某些位址範圍設置成對某些軟體而言為不可存取(例如,可不允許應用程式軟體存取與作業系統或超管理器關聯的位址範圍)。
在一些情況中,處理設備內可存在超過一種類型的記憶體屬性單元。若如此,則可需要辨識第一記憶體屬性單元內的哪個區域對應於一目標位址及第二記憶體屬性單元內的哪個區域對應於該目標位址。為了加速此類型操作,區域辨識操作可輸出對應於第一記憶體屬性單元的第一辨識值及對應於第二記憶體屬性單元的第二區域辨識值兩者。舉例而言,單個區域辨識指令可回傳兩個(或更多個)不同區域辨識值,使得不必執行兩個獨立指令,從而加速處理。
在區域辨識操作辨識兩個或更多個記憶體屬性單元 之對應區域的情況中,區域辨識操作亦使用儲存於第一記憶體屬性單元之對應第一儲存區域中的第一屬性資料之至少一部分及儲存於第二記憶體屬性單元之對應第二儲存區域中的第二屬性資料之至少一部分決定組合屬性參數可為非常有用的。舉例而言,第一記憶體屬性單元及第二記憶體屬性單元可設置用於存取給定記憶體位址的不同條件,且因此為了決定是否允許一存取,可需要考慮兩個記憶體屬性單元中的屬性資料。藉由使用來自各別記憶體屬性單元中的屬性資料衍生組合屬性參數作為區域辨識操作中的一部分,此舉可減少檢查是否允許記憶體存取所需要的指令數量。舉例而言,在一些指令集中,存在可相對容易地檢查暫存器內的單個位元是否具有所需值的指令,但檢查兩個或更多個位元是否具有所需值可更為複雜且需要若干指令。區域辨識操作可用於將來自第一記憶體屬性單元及第二記憶體屬性單元的兩條或更多條資訊減少至單個位元,使得可使用較少指令迅速且有效率地檢查兩個單元中的存取許可。
本技術在具有處理電路系統的系統中特別有用,該處理電路系統具有多個操作域,該等域包括至少一安全域及一較不安全域。當在安全域中操作處理電路系統時,處理電路系統存取在較不安全域中操作處理電路系統時所不可存取的至少一些資料。記憶體屬性單元可用於決定哪些位址僅在安全域中可存取及哪些位址在安全域及較不安全域兩者中皆可存取。藉由使用區域辨識操作,可迅速檢查一系列位址是否全部與相同儲存區域相關,從而避免需要個別地檢查每一 位址的存取屬性,且因此加速處理及減少功率消耗。
安全域及較不安全域可具有各種形式。在一個實例中,安全域可對應於特權狀態,其中可執行諸如作業系統供應之特權代碼,且較不安全域可對應於無特權狀態,其中執行諸如應用程式軟體之無特權代碼。然而,在其他系統中,可存在相同裝置上執行的兩個或更多個「世界」之間的完全分隔,其中安全域對應於執行安全臨界代碼(諸如銀行應用程式)或保全臨界代碼之私密域,且較不安全域對應於執行非安全臨界代碼的公眾域。在一些實施例中,私密域及公眾域可不具有彼域內的子狀態,諸如上文所描述之無特權狀態及特權狀態。大體而言,針對更安全狀態與較不安全狀態之間任何邊界,可使用記憶體屬性單元加強該邊界,且本技術可用於檢查記憶體屬性單元之哪個區域屬於給定目標位址,使得若一對位址與相同區域相關,則可決定任何介入位址將亦具有相同屬性資料。
在一個實例中,記憶體屬性單元可包含安全保護單元,該安全保護單元係用於決定複數個域中的何者與指定記憶體位址關聯。可以不同方式實施安全保護單元。可能儲存包括安全旗標的屬性資料,該安全旗標指定對應位址範圍是否與安全域或較不安全域相關。或者,對於域中的至少一者,藉由假定安全保護單元中不存在其屬性資料的任何位址範圍與彼域關聯,可在安全保護單元中隱含地辨識與彼域關聯的位址範圍。因此,不必在安全保護單元中儲存位址空間中之所有位址的屬性資料。舉例而言,安全保護單元可包括界定 對應於安全域的位址範圍之資料,且若在安全保護單元中缺失目標位址,則可假定該位址與較不安全域關聯(或反之亦然)。若存在兩個以上域,則可在安全保護單元中指示與除該等域之一以外的所有域皆關聯的位址範圍及安全保護單元中缺失的位址可被假定為對應於剩餘域。
在一些實施例中,安全保護單元亦可用於決定是否在原本所在的安全域或較不安全域中操作,例如假定應在安全域中執行儲存於安全位址範圍中的指令及應在較不安全域中執行儲存於較不安全位址範圍中的指令。在一些實例中,安全保護單元不必界定除與位址範圍關聯的安全或較不安全狀態以外的任何其他存取許可。
可不希望允許較不安全域中執行的代碼決定安全保護單元之哪些區域對應於哪些位址。攻擊者可能夠使用此資訊引發安全違規。為了解決此問題,當在較不安全域中操作處理電路系統時,處理電路系統可防止區域辨識操作被成功執行。大體而言,若在處於較不安全域中的同時執行區域辨識操作,處理電路系統可抑制針對安全保護單元的區域辨識值之輸出。可以不同方式實現此舉。舉例而言,若在處於較不安全域中的同時嘗試區域辨識操作,處理電路系統可輸出如上文所論述之無效區域辨識值,或可觸發錯誤或故障。即使並未輸出與安全保護單元關聯的區域辨識值,若對於資料處理設備之當前狀態容許此舉,則仍可輸出另一記憶體屬性單元的區域辨識值。
記憶體屬性單元之另一形式為記憶體保護單元 (memory protection unit;MPU),該記憶體保護單元儲存諸如讀取或寫入許可之屬性資料以便控制對記憶體位址範圍的存取。在包含MPU及如上文所論述之安全域及較不安全域的系統中,則可提供對應於不同域的多個MPU。舉例而言,當在安全域中操作時,安全MPU可儲存用於控制對位址範圍的存取之屬性資料,且當在較不安全域中操作時,可使用對應較不安全MPU,及可防止較不安全代碼存取安全MPU。儘管在一些實施例中安全MPU與較不安全MPU可為完全獨立,但各別MPU亦可能共享一些電路系統。舉例而言,若在某一時間處預期安全MPU及較不安全MPU之僅一者為主動,則儘管可提供不同儲存區域用於儲存該等單元的屬性資料,但在MPU之間可共享比較器之共用集合以便將目標位址與每一儲存區域中所界定的位址範圍比較。
因此,可存在安全保護單元及一或更多個MPU兩者。在一個實例中,區域辨識操作可輸出如上文所論述之第一區域辨識值及第二區域辨識值兩者,其中第一值對應於安全保護單元及第二值對應於MPU中的一者。
在存在多個MPU的情況中,則區域辨識操作亦可選擇應使用MPU中的何者決定區域辨識值。舉例而言,此可藉由指定區域辨識指令中的參數來實現,該參數指示應存取安全MPU及較不安全MPU中的何者來決定對應區域。或者,在對專用暫存器的寫入觸發區域辨識操作的情況中,則可由使用者藉由在暫存器中置放旗標或藉由提供對應於不同MPU的不同專用暫存器選擇選定MPU,使得選擇用目標位址寫入 哪個暫存器決定存取哪個MPU。以此方式,使用者可控制MPU中的何者被訊問以決定哪個區域對應於目標位址。
當處於較不安全域中時,使用者能夠找出安全MPU之哪個區域對應於給定位址可能是不恰當的。若在較不安全域中操作處理器的同時區域辨識操作試圖選擇安全MPU作為選定MPU,則可抑制辨識安全MPU之儲存區域的區域辨識值之輸出。如上文所論述的,此可以不同方式實現,諸如藉由輸出無效值或發送訊號告知錯誤或故障。
在方法之一個實例中,可使用由較不安全域中執行的代碼所設置的一或更多個記憶體位址執行區域辨識操作作為安全域中所執行之函數的一部分,且區域辨識操作的目標記憶體位址可為由較不安全域所傳遞之記憶體位址之一。在由較不安全域調用函數至安全域中的目標位址及由自較不安全域所傳遞之函數所使用的一或更多個位址的情況中,則存在潛在攻擊,其中較不安全域可傳入安全位址及隨後在安全域中存取此位址。由於通常將允許對安全域中之安全位址的存取,此可提供安全孔,在該安全孔中較不安全代碼可控制對安全位址的存取。然而,藉由在安全域中的函數中執行辨識操作,此可檢查哪個記憶體屬性單元區域對應於由較不安全域所傳遞之位址,且若由較不安全域所傳遞之所有位址對應於相同區域及彼區域具有對於較不安全域的適宜存取許可,則可正常地實施函數之其餘者,其中具有比在不存在區域辨識操作及實情為必須個別地檢查由較不安全域所傳遞之每一位址情況下原本需要的更少之檢查。
第1圖示意性圖示具有處理電路系統4、資料儲存器(記憶體)6及記憶體屬性單元7的資料處理設備,該記憶體屬性單元用於儲存屬性資料以便藉由處理電路系統4控制對記憶體6的存取。第2圖圖示記憶體屬性單元7之實例,該記憶體屬性單元具有若干儲存區域9,每一儲存區域9儲存如第2圖所示之位址空間13中所指示之對應記憶體位址範圍11的屬性資料。儘管在第1圖中以單個方塊指示記憶體6,但是在一些情況中,記憶體位址空間可覆蓋若干不同裝置中的位置(例如,RAM、快閃記憶體裝置、用於週邊設備的控制暫存器等)。
對處理電路系統4可見的位址空間之佈局可實質上與對記憶體屬性單元7可見的位址之佈局相同。每一儲存區域9可由在處理電路系統4上執行的指令配置以便映射至位址空間13中的不同位址範圍。舉例而言,儲存區域9可儲存界定對應位址範圍的參數,諸如位址範圍之起始位址及結束位址,指示位址範圍之大小的起始位址及參數,或指示與位址範圍之起始位址對應的2的n次冪的倍數的值及指示位址範圍之大小的大小參數。在其他實例中,可將與儲存區域9關聯的位址範圍固線連接至儲存區域中。因此,存在不同方式表示對應於儲存區域9的位址範圍。在一些實例中,若針對每一儲存區域9所界定之位址範圍重疊,則記憶體屬性單元7之配置可為無效,而在其他實例中,可容許一些重疊位址範圍以便界定對於相同位址的多層存取許可。在一些實施例中,位址範圍可具有任意倍數之給定位址增量(而不是必 須選自有限數量之範圍大小),且可獨立於彼此設置相鄰位址範圍(例如,B及C)之長度(不必約束記憶體屬性單元7來界定各個具有相同長度的若干鄰接位址範圍)。
每一儲存區域9包括一或更多個屬性15,該等屬性控制處理器4可如何對對應位址範圍內的位址執行記憶體存取操作。對於一些實施例,界定對應位址範圍的位址或其他參數可為藉由記憶體屬性單元7所儲存的唯一屬性資料15,其中藉由位址是否具有記憶體屬性單元中所界定之對應位址範圍隱含地指示一些其他資訊。對於其他實施例,除位址範圍界定資料外可存在進一步屬性資料15,諸如指定處理器4是否可讀取及/或寫入由位址辨識之記憶體6中的位置之資料,及辨識複數個安全狀態或域中的何者與位址關聯之資料。當對由目標位址辨識之記憶體6中的位置執行記憶體存取時,向記憶體屬性單元7提供目標位址,該記憶體屬性單元將目標位址與針對儲存區域9之各者所界定之位址範圍比較,及輸出與對應於包括目標位址的位址範圍的區域9之一關聯的屬性資料。處理電路系統4隨後基於輸出屬性資料決定是否允許對記憶體的存取。向記憶體屬性單元7所提供之目標位址為實體位址(並非虛擬位址),以使得藉由記憶體屬性單元7將由處理電路系統4所指定之連續目標記憶體位址映射至輸出到記憶體6的連續位址。
第3圖更詳細地圖示處理設備2之實例。資料處理設備2包含處理電路系統4及如第1圖所指示之資料儲存器6,且亦包含若干單元42、50、52,該等單元可各個被視為第 1圖及第2圖所示之記憶體屬性單元7之實例。資料處理設備2亦包含用於儲存待由處理電路系統4處理之資料的暫存器8。資料儲存器6可包括至少一個快取記憶體以及主記憶體。處理電路系統4包含處理管線,該處理管線包括用於自資料儲存器6擷取指令的擷取階段(fetch stage)10、用於解碼所擷取指令的解碼階段12及用於執行所解碼指令的執行階段14。應將瞭解,管線可包括其他級,例如暫存器重命名級或發出級。
暫存器8包括若干通用暫存器R0至R12,該等通用暫存器用於代表處理電路系統4儲存資料。儘管第3圖圖示13個通用暫存器R0至R12,但可提供其他數量之暫存器,且視情況亦可提供用於儲存浮點值的浮點暫存器。暫存器8亦包括一些專用暫存器,該等專用暫存器包括程式計數器(program counter;PC)暫存器20、鏈接暫存器(link register;LR)22及堆疊指標(stack pointer;SP)暫存器24、26。程式計數器暫存器20儲存程式計數器,該程式計數器指示待由處理電路系統4執行之下一程式指令之位址。大體而言,在執行指令後,將更新程式計數器以指示來自記憶體的下一指令。然而,回應於控制流變更指令,可將程式計數器設置為一值,該值並未指向下一後續指令。鏈接暫存器22可儲存在自函數或異常傳回時所使用的回傳值以決定在完成函數或異常後應處理哪個程式指令。堆疊指標暫存器24、26分別儲存安全堆疊指標及較不安全堆疊指標,該等指標指向資料儲存器6中的安全堆疊30及較不安全堆疊32。舉例而言,堆疊指標可指示置 放於堆疊30、32上的最後項目之位置,或可指示置放於堆疊30、32上的資料值應被寫入到的下一位置。
提供安全保護硬體40以加強安全域與較不安全域之間的分離。安全保護硬體具有安全保護單元42,該安全保護單元儲存界定資料儲存器6之區域是否為安全區域或較不安全區域的保護資料。第3圖圖示一實例,其中資料儲存器6具有一個安全區域44及一個較不安全區域46,但實際上資料儲存器6可包括每一類型之若干個區域。在一些實例中,安全保護單元42可僅包括界定與安全域及較不安全域之一關聯的位址範圍的屬性資料,以及認為在安全保護單元42中未界定之位址範圍與安全域及較不安全域中的另一者相關。在安全域中藉由處理電路系統4執行資料儲存器6之安全區域44內安置的代碼46,而在較不安全域中執行較不安全區域46內安置的代碼48。當處於較不安全域中時,處理電路系統4不可存取儲存於安全區域44中的資料或指令。藉由安全保護硬體40控制較不安全域與安全域之間的轉換以確保僅接受某些已允許轉換。
資料處理設備2包含安全記憶體保護單元(MPU)50及較不安全MPU 52,該等MPU分別用於界定對於資料儲存器6之安全區域44及較不安全區域46的存取許可。MPU 50、52經由匯流排矩陣5存取資料儲存器6。存取許可控制安全區域44及較不安全區域46之子區域是否為可存取或不可存取,使得可在不同程序或軟體程式的安全區域或較不安全區域內設置不同存取許可。藉由安全MPU 50及較不安全MPU 52所界定之區域可重疊。舉例而言,安全MPU 50及較不安全MPU 52可界定相同記憶體區域的不同屬性。
第4圖圖示資料儲存器6之記憶體位址空間之實例。位址空間具有安全區域44及較不安全區域46。儘管第4圖圖示一個較不安全區域44及一個安全區域46,但可提供更多數目之不相連安全區域及較不安全區域。安全保護單元42儲存界定資料儲存器6之哪些區域為安全區域或較不安全區域的資料(可藉由在安全保護單元42中缺乏界定位址範圍的資料而隱含地指示該等區域之一)。
安全區域44包括對應於安全軟體程式庫的一或更多個安全堆疊30。舉例而言,安全區域44亦包含對應於應用程式代碼或應用程式階層軟體程式庫的無特權安全代碼46及對應於作業系統的特權安全代碼47。安全MPU 50控制安全區域44之哪些子區域與無特權或特權模式相關。類似地,較不安全區域46包括在較不安全域中執行的較不安全代碼48(包括特權及無特權代碼)、由較不安全代碼48所使用之較不安全堆疊32及較不安全資料39。較不安全MPU 52控制較不安全區域46中的資料或代碼是否為特權或無特權的。通常,無特權代碼不可存取特權資料或代碼。記憶體位址空間亦包括保留位址範圍150,該保留位址範圍並不對應於任何有效指令位址。此保留範圍可用於特定函數,諸如提供可觸發特定事件的虛設位址。舉例而言,保留位址範圍150可包含範圍0xF0000000至0xFFFFFFFF中的位址。
第5圖示意性圖示處理設備2之不同狀態。設備具 有較不安全域70及安全域80,該等域提供處理設備2之分隔,使得可在沒有較不安全程序及作業系統的存取風險下安全地執行安全程序及作業系統。可在較不安全域70與安全域80之間實行直接函數調用及分支,其中安全保護硬體40管制域70、80之間的邊界及確保容許域之間的轉換。處理之相同執行緒可包括安全域80及較不安全域70兩者中的處理。舉例而言,較不安全應用程式可分支至安全區域以執行安全臨界函數(諸如密碼檢查或付款處理),且隨後分支回到較不安全區域以便並非安全臨界的進一步處理。當設備2處於較不安全域70中時,則安全保護單元42確保與安全域80關聯的資料為不可存取。
在較不安全域70及安全域80之各者內,存在無特權狀態90及特權狀態100。大體而言,特權狀態100係用於特權軟體(諸如作業系統),而無特權狀態90係用於無特權代碼(諸如應用程式及程式庫)。與較不安全域70及安全域80不同,無特權狀態90與特權狀態100之間的分支或函數調用大體上不可能,且可需要情境切換或異常以在特權模式與無特權模式之間切換。給定執行緒通常將在無特權狀態90或者特權狀態100之一者中操作,而非兩者。大體而言,當處於無特權狀態90中時,則與特權狀態100關聯的資料並非為可存取(儘管可存在異常,允許安全域80中的無特權狀態90自較不安全域70中的特權狀態100存取資料)。當處理設備2處於安全域80中時,安全MPU 50界定指示位址範圍在特權狀態或無特權狀態下是否為可存取的存取許可,而當處理 設備2處於較不安全域70中時,較不安全MPU 52界定指示位址範圍是否自特權狀態或無特權狀態可存取的存取許可。
通常,可使用目標位址查詢記憶體屬性單元7(諸如安全保護單元42或安全MPU 50或較不安全MPU 52)及隨後將回傳對應目標位址之屬性值。然而,本技術認識到,存在一些情形,其中能夠回傳區域辨識符係有用的,該區域辨識符辨識記憶體屬性單元7(42、50、52)之儲存區域9中的何者對應於目標位址。因此,處理電路系統4能夠回應於指令執行區域辨識操作,以便辨識對應於指定目標位址的儲存區域9及輸出辨識儲存區域的區域辨識值。
第6圖圖示用於觸發處理電路系統4執行區域辨識操作的區域辨識指令之實例。區域辨識指令TT具有指定源暫存器Rn及目的地暫存器Rd的編碼以及稍後將描述的可選旗標A(其他實施例可未使用旗標A)。程式設計師寫入程式,使得在執行區域辨識指令TT前在源暫存器Rn中置放指定目標位址。回應於區域辨識指令,處理電路系統4執行區域辨識操作,其中使用記憶體屬性單元7決定儲存區域9中的何者對應於暫存器Rn中的目標位址,及隨後將結果值寫入到目的地暫存器Rd中,該目的地暫存器Rd包括辨識區域9中的何者對應於該位址的區域辨識值。
第7圖圖示寫入到目的地暫存器Rd中的結果值之實例。在第3圖之實例中,由於存在兩種類型記憶體屬性單元7(安全保護單元42及MPU 50、52),則區域辨識操作回傳兩個不同區域辨識值:一個值MREGION指示安全MPU 50 或較不安全MPU 52之哪個儲存區域對應於目標位址,且第二值PREGION指示安全保護單元42之哪個儲存區域對應於目標位址。大體而言,對於MPU,值MREGION可辨識對應於操作之當前域的MPU 50、52之一者中的對應儲存區域。然而,若設置「alt」旗標A,則可查找出來自相對域的MPU 50、52(僅當在安全域中操作時可允許此舉)。在僅具有一個記憶體屬性單元7的其他實施例中,可提供僅一個區域辨識值。
在此實例中,結果值亦包括若干其他條額外資訊,基於對應於目標位址的儲存區域9之屬性資料決定該等資訊。由於已查找記憶體屬性單元7用於辨識對應儲存區域,可有效率地亦自對應儲存區域9回傳額外數條屬性資料以避免需要為了決定屬性資料而執行進一步指令。
在此實例中,結果值包括資訊之以下欄位:MREGION(位元[7:0]):目標位址映射到的MPU區域之區域編號。
PREGION(位元[15:8]):目標位址映射到的安全保護單元42之區域編號。
MRVALID(位元[16]):若MREGION欄位為有效,此欄位設置為1。若以下條件中的任何者為真,MREGION欄位將為無效的:
‧被訊問的MPU 50、52不存在或被禁用
‧目標位址匹配多個啟用MPU區域
‧目標位址不匹配啟用之MPU區域
‧當處於無特權模式下時執行區域辨識操作,且未指定A 旗標(當處於安全域80中的無特權狀態下時,並不允許存取關於與安全域80中的特權狀態關聯之區域的資訊,但可存取關於較不安全域80中的特權區域及無特權區域的資訊,此為必須指定A旗標的原因,以便安全域中的區域辨識操作之無特權執行為有效)。
視情況,若當處於非安全域中時執行區域辨識操作,可產生無效MREGION欄位,且指定A旗標(當處於非安全域中時,並不允許存取關於安全MPU 50的資訊)。或者,若當處於非安全域中時指定A旗標,可將指令視為未界定,在此情況中完全不可執行區域辨識操作。
PRVALID(位元[17]):若PREGION欄位為有效,此欄位設置為1。若以下條件中的任何者為真,PREGION欄位將為無效的:
‧禁用安全保護單元42
‧目標位址匹配安全保護單元42中的多個啟用區域
‧目標位址不匹配安全保護單元中的任何啟用區域
‧在處於非安全域中時執行區域辨識操作(非安全域中的代碼不可存取關於安全保護單元42之區域的資訊,該資訊可提供哪些位址與安全資料或代碼相關的提示)。
‧在未實施藉由安全保護硬體40所提供中安全/較不安全域分隔的設備上執行區域辨識操作。
R(位元[18]):讀取可存取性。若當在特權模式及無特權模式之當前者中操作時可根據選定MPU之許可讀取藉由目標位址所辨識之記憶體位置,則R設置為1。
RW(位元[19]):讀取/寫入可存取性。若當在特權模式及無特權模式之當前者中操作時可根據選定MPU之許可讀取及寫入藉由目標位址所辨識之記憶體位置,則RW設置為1。
NPR(位元[20]):等於R且(非P)。若設置為1,此指示可讀取該位址且該位址與較不安全域70關聯。
NPRW(位元[21]):等於RW且(非P)。若設置為1,此指示可讀取及寫入該目標位址且該目標位址與較不安全域70關聯。
P(位元[22]):私密性。值1指示記憶體位置與安全(私密)域80關聯,而值0指示記憶體位置與較不安全(公眾)域70關聯。僅當處於安全域80中時執行區域辨識操作,此欄位為有效。
參數NPR及NPRW來源於從MPU 50或52中獲得之屬性資料R或RW中的一些及從安全保護單元42中獲得之屬性資料P中的一些。藉由將此衍生參數決定作為區域辨識操作的一部分,不必執行進一步指令來組合此資訊。檢查是否容許讀取/寫入位址及位址是否為較不安全位址係具有第5圖所示狀態的系統中相對常見的操作。藉由回傳指示兩條資訊的單個位元,此大大簡化了進一步檢查,因為大體上可使用單個指令有效率地檢查暫存器Rd內單個位元的值,但檢查兩個或更多個位元的值(例如,獨立位元R及P或RW及P)可更為複雜。在其他實例中,使用來自不同屬性單元7的資訊中的一些可獲得其他衍生參數。
下文展示表示回應於第6圖所示之指令編碼所執行的區域辨識操作之偽代碼之實例(縮寫PAU指示安全保護單元及術語「私密」及「公眾」分別指示安全域及較不安全域):d=UInt(Rd);n=UInt(Rn);alt=A=='1';if d IN{13,15}¦¦ n==15 then UNPREDICTABLE;if alt & & !IsPrivate()then UNDEFINED;操作:
第8圖圖示記憶體屬性單元7之硬體之實例(可為安全保護單元42或MPU 50、52之一)。每一儲存區域9可由眾多暫存器表示,該等暫存器用於儲存對應區域之屬性資料。第8圖圖示一實例,其中區域編號(用於PREGION或MREGION欄位)並未儲存於記憶體屬性單元之儲存區域9中的屬性資料內,但實情為該區域編號由記憶體屬性單元7產 生。因此,當回應於區域辨識操作將位址輸入至記憶體屬性單元時,則比較器110比較輸入位址與界定對應於每一區域9之記憶體位址範圍的資料112,且若位址處於對應區域9之位址範圍內確定命中訊號114。記憶體屬性單元7具有邏輯116,該邏輯自儲存區域9接收命中訊號114以及屬性資料115及輸出偵測到命中的區域之屬性118。查找目標位址及輸出屬性118的功能通常已屬於未使用本技術之記憶體屬性單元的一部分。本技術延伸邏輯116之功能以亦產生及輸出區域編號120,基於該區域編號確定命中訊號114。
在其他實施例中,區域編號可為儲存於區域9中的一值作為屬性資料本身的一部分,且當存在區域辨識操作之目標位址的命中時,則可自暫存器讀取儲存於匹配區域9中的區域編號及藉由處理電路系統4輸出該編號。
大體而言,每一記憶體屬性單元7可包含用於儲存屬性資料的暫存器9之獨立實例。然而,不同記憶體屬性單元7可能共享諸如比較器110及控制邏輯116之其他電路系統中的一些。舉例而言,由於通常在某一時間處安全MPU 50及較不安全MPU 52之僅一者將為主動,不必複製比較器110及控制邏輯116,且可藉由共享兩個MPU之間的比較器110與邏輯116節省電路面積。
儘管第6圖圖示提供專用區域辨識指令TT的實例,但在其他實例中可藉由另一類型指令(諸如通用指令)觸發區域辨識操作。舉例而言,第9A圖圖示提供通用移動指令MOV用於將源暫存器Rn之內容移動至第二暫存器Rm*的 情況。可提供特定暫存器,當寫入時,該暫存器觸發處理電路系統4執行對於置放於暫存器中的位址之區域辨識操作。因此,若用作為第二暫存器Rm*的特定暫存器執行MOV指令,則處理電路系統4可執行區域辨識操作及設置特定目的地暫存器Rd*為第7圖所示之結果值。另一指令可隨後自目的地暫存器Rd*獲得區域辨識值及其他額外資訊。如第9A圖所示,亦可使用MOV指令在特定暫存器中置放A旗標以用與第7圖所論述之相同的方式控制是否存取安全MPU 50或較不安全MPU 52。
或者,可不提供A旗標,及實情為可如第9B圖提供一實施例,其中可提供兩個不同特定暫存器Rm1*、Rm2*,一者對應於安全MPU及另一者對應於較不安全MPU,使得藉由選擇該等特定暫存器中的何者為MOV指令之目的地暫存器,程式設計師可選擇訊問哪個MPU。類似地,在第6圖之實例中,可提供兩個獨立指令,而不是使用A旗標,該等獨立指令之一者對於訊問安全MPU 50及一者用於訊問較不安全MPU 52。
在一些實施例中,暫存器Rm*、Rm1*及Rm2*可為記憶體映射,在此類情況中,儲存指令將用於自暫存器Rn至特定暫存器Rm*、Rm1*及Rm2*寫入值。目的地暫存器Rd*亦可為記憶體映射,且載入指令將用於存取區域辨識值。
又,儘管第9A圖及第9B圖圖示目標位址係寫入到特定暫存器Rm*、Rm1*或Rm2*的值以觸發處理設備2執行區域辨識操作,但在其他實例中該位址不必被寫入到特定暫 存器。實情為,可將不同值寫入到特定暫存器中,且此舉觸發處理電路系統4自另一位置讀取位址及使用彼位址執行區域辨識操作。
因此,本技術允許程式設計師在代碼中包括指令以控制處理電路系統獲得匹配給定目標位址的安全保護單元42或MPU 50、52中的儲存區域9之區域編號。此可用於如第10圖至第13圖之實例所示之若干情形中。
第10圖圖示安全函數bob()之實例,藉由分支至安全位址自較不安全域70調用該安全函數。函數bob()使用由較不安全域70中的代碼所指定的一系列位址ADDR[]。此類型函數可具有問題,因為若較不安全代碼70可傳遞安全位址至安全域80,則讀取或寫入彼位址的操作(例如,操作130)可不適當地存取或更新安全資料,因為一旦處於安全域80中,通常將允許對另一安全位址的存取。為了防止此情形,應寫入函數bob()以包括檢查由較不安全域傳遞之位址是否為安全位址或較不安全位址。然而,若自較不安全域傳遞陣列,則bob()必須執行較不安全記憶體46內含有整個陣列的檢查。此原因在於,即使陣列之起始位址位於較不安全記憶體46內,則該陣列可延伸至安全記憶體44(如第11圖中的152所示),可能導致安全違規,因此只要檢查起始位址之位置即可。若安全函數bob()檢查待存取之陣列之起始位址及結束位址兩者,則可偵測此情況。然而,此不足以確保系統之安全性,因為陣列可完全跨越安全記憶體位址範圍,以使得起始位址及結束位址兩者皆位於較不安全記憶體46中。在第11 圖中的160處圖示此情況之實例。個別地檢查陣列內的每一位址之安全保護單元42中的屬性資料可為緩慢的,且導致功率消耗增加及效能減少。
本技術認識到,使用上文所論述之區域辨識操作,個別地檢查每一位址通常變得不必要,使得可節省處理資源及功率。如第11圖所示,通常在陣列ADDR[]中所指定的位址0至N之範圍可全部處於對應於記憶體屬性單元7之單個儲存區域9的位址範圍內。舉例而言,第11圖所示之位址140全部處於由安全保護單元42之單個儲存區域9表示的位址空間之較不安全區域內。在此情況中,在不容許重疊區域的系統中,若可決定位址陣列之起始位址及結束位址與相同儲存區域9相關,且儲存區域被指示為較不安全,則不必檢查所有介入位址之許可及函數bob()之剩餘者可正常行進。此節省了大量處理。在極少數場合下,當位址之範圍跨越與多個儲存區域9關聯的位址範圍(例如,參看第11圖之實例152、160)時,則可需要進一步檢查來決定該處理是否可行進。實際上,大多數陣列將處於如實例140所示之單個區域內且因此不必經常執行進一步檢查。即使需要進一步檢查,區域辨識操作可用於辨識該等位址自與一個區域關聯的位址範圍至與另一區域關聯的位址範圍交叉的點,使得可減少需要檢查屬性的個別位址之數量。
因此,如第12圖之對應實例所示,可修改函數bob()以包括區域辨識操作。當較不安全代碼調用函數bob()時,則存在分支至安全域80。執行第一對指令170以將陣列ADDR[] 之起始位址及結束位址置放到暫存器R1、R2中。隨後執行兩個區域辨識操作180以檢查暫存器R1、R2中的位址之安全保護區域編號(PREGION)。在步驟190處,若暫存器R3、R4之安全保護單元42區域編號(位元15:8)為相同,且兩個區域編號皆有效(位元17),則此意謂位址之陣列ADDR[]中的起始位址及結束位址與記憶體屬性單元之單個儲存區域9相關,且因此若該等位址為較不安全位址(R3之位元22為0),則位址之整個陣列ADDR[]為安全,因為全部與位址空間之較不安全區域相關。在此情況中,則分支指令200分支至位址addX以執行如第10圖之函數所需的處理。另一方面,若起始位址及結束位址與不同的儲存區域相關或與安全區域相關,則在步驟210處需要進一步檢查,且若此檢查失敗,則以一些方式發送訊號告知處理故障或錯誤。因此,藉由以此方式使用區域辨識操作180,在許多場合下,可跳過進一步檢查210以節省顯著量的處理。
可以不同方式執行進一步檢查210。舉例而言,若發現陣列之起始位址及結束位址與記憶體屬性單元7之不同儲存區域9相關,則可檢驗介入位址以發現儲存區域9之邊界的位置。舉例而言,可首先檢查起始位址與結束位址之間一半處的位址以查看該位址是否與起始位址及結束位址之一者相同的區域9相關,且隨後可執行位址範圍之進一步二進制除法,直到決定多少個區域9對應於位址ADDR[]之陣列及不同區域之間的邊界位置。或者,在其他實施例中,自區域辨識操作180獲得之區域編號可用於索引至含有區域之起始 位址及結束位址的資料結構中,從而允許獲得鄰接區域(亦即,待檢查的下一區域)之位址,而無需使用二進制除法程序發現邊界位置。可隨後檢查每個儲存區域9中一個位址之屬性以決定是否允許函數bob()之繼續處理。如第11圖之實例160所示,陣列ADDR[]可跨越多個區域係可能的。若存在多個區域,則彼等區域之各者之屬性將需要指示較不安全域,以便允許函數之繼續操作。進一步檢查可為相對複雜,但藉由使用區域辨識操作,可更快地執行,且若可能,則完全省略。
儘管第10圖至第12圖圖示交叉較不安全域70與安全域80之間邊界的函數之實例,但在其他實例中,當在特權狀態90與無特權狀態100之間交叉時或當在具有不同安全階層的其他模式之間交叉時可執行類似操作集合。此外,儘管第12圖圖示特定區域辨識指令用於實施區域辨識操作作為步驟180的實例,但在其他實例中,例如可使用第9圖之替代途徑,該途徑使用對特定暫存器的寫入。
第13圖圖示可使用區域辨識操作的另一情形。MPU 50或52之配置可隨著不同程序或情境變得主動而變化。此情況之實例為可存在若干不同軟體程式庫250,該等軟體程式庫需要在相同域或模式內保持彼此分離。舉例而言,在安全域80內,可存在由互相不信任參與方所提供的不同應用程式,每一應用程式需要由安全域80提供的保護,但必須防止彼此存取。因此,可提供程式庫管理器260,該程式庫管理器選擇程式庫之一作為主動程式庫及設置其他程式庫為非主動。舉 例而言,在第13圖中,程式庫0為主動及程式庫1為非主動。在由英國劍橋ARM Limited於2013年6月12日提交的同在申請中之申請案GB 1310421.1中描述此途徑之更多細節,該申請案之內容以引用之方式全部併入本文。在此途徑中,每一程式庫與不同MPU配置關聯,該MPU配置使用彼程式庫界定位址空間之哪些範圍為可存取。當程式庫為非主動時,則將位址空間之區域設置為不可存取,且當程式庫為主動時,則將區域設置為可存取。若存在對與非主動程式庫關聯的位址之函數調用或分支(自主動程式庫或者自不同域中操作的代碼),則MPU決定此位址為不可存取及此觸發存取違規異常。程式庫管理器260具有故障處置器,該故障處置器可偵測存取違規異常是否被對非主動程式庫的存取觸發,且若是,則故障處置器切換MPU配置以啟動新程式庫及停用舊程式庫。使用程式庫配置資料270決定在此點處應對MPU實行何種更新。
因此,如第13圖之下半部分所示,當已啟動第二程式庫(程式庫1)及已停用第一程式庫(程式庫0)時,則當前MPU 50、52將具有眾多區域1、2、3,該等區域設置對於新主動程式庫(程式庫1)的存取許可。在此點處,可能自與停用程式庫(程式庫0)相關的MPU 50、52之區域9驅逐資料。然而,MPU 50、52可比用於儲存新主動程式庫(程式庫1)之屬性資料所需的具有更多可用儲存區域9。由於較快地再次啟動最近停用的程式庫為常見,則藉由在MPU中保留與停用程式庫0相關的屬性資料中的至少一些,但使用有效位 元280標記該等區域為無效,此可在稍後再啟動該程式庫時加速處理,因為不必載入同樣多的資料至MPU中。
然而,當再啟動程式庫時必須執行的關鍵任務之一係將函數調用之目標位址變換成接下來待啟動之程式庫之ID。通常,程式庫主配置資料270將包括軟體資料結構,該軟體資料結構將不得不被按順序搜尋以找到對所需程式庫的分支或函數調用之目標位址與程式庫編號之間的映射。搜尋此類軟體結構在效能及功率消耗方面可為高成本。
可使用本技術之區域辨識操作解決此問題。藉由使用區域辨識操作,可搜尋MPU 50、52以找到對應於對非主動程式庫的函數調用之目標位址的無效儲存區域之區域編號。可隨後比僅僅基於目標位址可能的更有效率地將該區域編號映射至程式庫編號。舉例而言,可藉由程式庫管理器260維護如第13圖所示之軟體表290以將MPU之儲存區域9之區域辨識符映射至程式庫編號。此表290將通常比位址直接映射至程式庫編號的表小得多。因此,區域辨識操作使得MPU之更新更有效率。在一些實例中,第13圖所示之軟體290可為程式庫配置資料270中的一部分。此外,在一些情況中,可在沒有軟體表290的情況下執行區域編號至程式庫編號之映射,例如藉由在匹配區域之屬性資料本身中儲存程式庫編號之指示。
第14圖圖示表示處理資料之方法的流程圖。在步驟300處,處理電路系統4之解碼階段12偵測是否存在觸發區域辨識操作的指令。此可為第6圖中所示之區域辨識指令或 在示例性第9圖中以一些其他方式觸發區域辨識操作的另一指令。若存在此指令,則在步驟302處,決定哪個區域對應於目標位址,且在步驟304處,輸出辨識對應區域的區域辨識值,以使得區域辨識值適用於藉由資料處理設備2執行的至少一些軟體。
在本申請案中,使用措辭「經配置」意謂設備之元件具有能夠實施所界定操作的配置。在此上下文中,「配置」意謂硬體或軟體之互連之排列或方式。舉例而言,設備可具有專用硬體,該硬體提供所界定操作,或處理器或其他處理裝置可經程式化以執行功能。「經配置」並不暗指需要以任何方式改變設備元件以便提供所界定操作。
儘管本文參看隨附圖式已詳細描述說明性實施例,但應理解,申請專利範圍並不限於彼等精確實施例,且熟習此項技術者可在不脫離由隨附申請專利範圍所界定之範疇及精神的情況下實施各種變化及修改。
300‧‧‧步驟
302‧‧‧步驟
304‧‧‧步驟

Claims (23)

  1. 一種資料處理設備,該資料處理設備包含:處理電路系統,經配置以執行資料處理;以及一記憶體屬性單元,包含複數個儲存區域,每一儲存區域經配置以儲存屬性資料以便藉由該處理電路系統控制對一對應記憶體位址範圍的存取;以及其中回應於一目標記憶體位址,該處理電路系統經配置執行一區域辨識操作以輸出一區域辨識值,該值用於辨識該複數個儲存區域中的何者係對應於包括該目標記憶體位址的一記憶體位址範圍、由該記憶體屬性單元所指示的一對應儲存區域,其中該目標記憶體位址係一實體位址及該區域辨識值適用於藉由該資料處理設備所執行的至少一些軟體。
  2. 如請求項1所述之資料處理設備,其中該處理電路系統經配置以回應於指定該目標記憶體位址的一區域辨識指令執行該區域辨識操作。
  3. 如請求項1所述之資料處理設備,其中該處理電路系統經配置以回應於對一預定暫存器寫入一值的一指令執行該區域辨識操作。
  4. 如請求項3所述之資料處理設備,其中寫入到該預定暫存器中的該值係該目標記憶體位址。
  5. 如請求項1所述之資料處理設備,其中該處理電路系統經配置在以下情況下輸出一無效區域辨識值:(a)禁用該記憶體屬性單元;或(b)該目標記憶體位址不對應於該複數個區域中的任何者;或(c)該目標記憶體位址對應於該複數個區域中的兩者或更多者;或(d)該目標記憶體位址對應於啟用之該複數個區域中的兩者或更多者;或(e)該目標記憶體位址不對應於啟用之該複數個區域中的任何者;或(f)當該處理電路系統處於具有不充分安全特權的一操作模式中時,執行該區域辨識操作來決定該區域辨識值。
  6. 如請求項5所述之資料處理設備,其中該無效區域辨識值包含一預定值,該預定值並不表示該複數個儲存區域之一。
  7. 如請求項5所述之資料處理設備,其中該無效區域辨識值包含與一有效性旗標關聯的一區域辨識值,該有效性旗標指示該區域辨識值是否有效。
  8. 如請求項1所述之資料處理設備,其中在該區域辨識操作中,該處理電路系統經配置以輸出額外資訊,該額外資訊包含以下之至少一者: (a)儲存於該對應儲存區域中的該等屬性資料中的至少一些;(b)來源於儲存於該對應儲存區域中的該等屬性資料中的至少一些之資訊;(c)一安全狀態之一指示,該安全狀態與該對應儲存區域之該記憶體位址範圍關聯;(d)對應於該對應儲存區域之該記憶體位址範圍之該起始位址的一值;(e)對應於該對應儲存區域之該記憶體位址範圍之該結束位址的一值;以及(f)對應於該對應儲存區域之該記憶體位址範圍之大小的一值。
  9. 如請求項1所述之資料處理設備,其中在該區域辨識操作中,該處理電路系統經配置以將該區域辨識值寫入到一目的地暫存器之至少一部分中。
  10. 如請求項1所述之資料處理設備,其中該區域辨識值包含該對應儲存區域之一區域編號。
  11. 如請求項10所述之資料處理設備,其中在該區域辨識操作中,該處理電路系統經配置以控制該記憶體屬性單元基於該複數個儲存區域中的何者為該對應儲存區域而產生該區域編號。
  12. 如請求項10所述之資料處理設備,其中該記憶體屬性單元之每一儲存區域經配置以儲存該儲存區域之該區域編號;以及在該區域辨識操作中,該處理電路系統經配置以控制該記憶體屬性單元自該對應儲存區域輸出該區域編號。
  13. 如請求項1所述之資料處理設備,其中該記憶體屬性單元為一第一記憶體屬性單元,該第一記憶體屬性單元包含複數個第一儲存區域,每一第一儲存區域經配置以儲存第一屬性資料以便控制對一對應第一記憶體位址範圍的存取;該資料處理設備包含一第二記憶體屬性單元,該第二記憶體屬性單元包含複數個第二儲存區域,每一第二儲存區域經配置以儲存第二屬性資料以便控制對一對應第二記憶體位址範圍的存取;以及在該區域辨識操作中,該處理電路系統經配置以輸出一第一區域辨識值,該值用於辨識該複數個第一儲存區域中的何者係由對應於包括該目標記憶體位址的一第一記憶體位址範圍之該第一記憶體屬性單元所指示的一對應第一儲存區域,及一第二區域辨識值,該值用於辨識該複數個第二儲存區域中的何者係由對應於包括該目標記憶體位址的一第二記憶體位址範圍之該第二記憶體屬性單元所指示的一對應第二儲存區域。
  14. 如請求項13所述之資料處理設備,其中在該區域辨識操作中,該處理電路系統經配置以使用儲存於該對應第一儲存區域中的該等第一屬性資料之至少一部分及儲存於該對應第二儲存區域中的該等第二屬性資料之至少一部分輸出一組合屬性參數。
  15. 如請求項1所述之資料處理設備,其中該處理電路系統具有複數個操作域,該等域包括一安全域及一較不安全域,且當在該安全域中操作該處理電路系統時,該處理電路系統能夠存取至少一些資料,該等資料係在該較不安全域中操作該處理電路系統時所不可存取的。
  16. 如請求項15所述之資料處理設備,其中該記憶體屬性單元包含一安全保護單元及該處理電路系統經配置以使用該安全保護單元之該等屬性資料決定該複數個域中的何者與一指定記憶體位址關聯;以及當在該較不安全域中操作該處理電路系統時,與該安全域關聯的一記憶體位址對該處理電路系統而言為不可存取。
  17. 如請求項15所述之資料處理設備,其中若當在該較不安全域中操作該處理電路系統時執行該區域辨識操作,則該處理電路系統經配置以抑制辨識該記憶體屬性單元之該對應儲存區域的該區域辨識值之輸出。
  18. 如請求項15所述之資料處理設備,進一步包含:(i)一安全記憶體保護單元,該安全記憶體保護單元經配置以儲存屬性資料以便當在該安全域中操作時藉由該處理電路系統控制對記憶體位址範圍的存取;以及(ii)一較不安全記憶體保護單元,該較不安全記憶體保護單元經配置以儲存屬性資料以便當在該較不安全域中操作時藉由該處理電路系統控制對記憶體位址範圍的存取;其中當在該較不安全域中操作時該安全記憶體保護單元對該處理電路系統為不可存取。
  19. 如請求項18所述之資料處理設備,其中該區域辨識操作選擇該安全記憶體保護單元及該較不安全記憶體保護單元之一選定記憶體保護單元;以及在該區域辨識操作中,該處理電路系統經配置以輸出一區域辨識值,該值辨識該複數個儲存區域中的何者由對應於包括該目標記憶體位址的一記憶體位址範圍之該選定記憶體保護單元指示。
  20. 如請求項19所述之資料處理設備,其中若當在該較不安全域中操作該處理操作時執行該區域辨識操作,且該區域辨識操作選擇該安全記憶體保護單元作為該選定記憶體保護單元,則該處理電路系統經配置以抑制辨識該安全記憶體保護單元之該對應儲存區域的該區域辨識值之輸出。
  21. 一種資料處理設備,該資料處理設備包含:處理手段,用於執行資料處理;以及記憶體屬性儲存手段,包含複數個儲存區域手段,該等儲存區域手段用於儲存屬性資料以便藉由該處理手段控制對一對應記憶體位址範圍的存取;其中回應於一目標記憶體位址,該處理手段經配置執行一區域辨識操作以輸出一區域辨識值,該值用於辨識該複數個儲存區域手段中的何者係由對應於包括該目標記憶體位址的一記憶體位址範圍之該記憶體屬性儲存手段所指示的一對應儲存區域手段,其中該目標記憶體位址係一實體位址及該區域辨識值適用於藉由該資料處理設備所執行的至少一些軟體。
  22. 一種用於一資料處理設備的資料處理方法,該資料處理設備包含一記憶體屬性單元,該記憶體屬性單元包含複數個儲存區域,每一儲存區域經配置以儲存屬性資料以便藉由處理電路系統控制對一對應記憶體位址範圍的存取;該方法包含以下步驟:回應於一目標記憶體位址,執行一區域辨識操作;該區域辨識操作之步驟包含以下步驟:決定該複數個儲存區域中的何者係由對應於包括該目標記憶體位址的一記憶體位址範圍之該記憶體屬性單元所指示的一對應儲存區域;以及 輸出一區域辨識值,該值辨識該複數個區域中的何者係該對應儲存區域,其中該目標記憶體位址係一實體位址及該區域辨識值適用於藉由該資料處理設備所執行的至少一些軟體。
  23. 如請求項22所述之資料處理方法,其中該處理電路系統具有複數個操作域,該等域包括一安全域及一較不安全域,且當在該安全域中操作該處理電路系統時,該處理電路系統能夠存取至少一些資料,該等資料係在該較不安全域中操作該處理電路系統時所不可存取的;以及作為在該安全域中所執行的一函數之部分,使用由該較不安全域中執行的代碼所設置之一或更多個記憶體位址執行該區域辨識操作,其中該區域辨識操作之該目標記憶體位址包含該一或更多個記憶體位址之一。
TW104100315A 2014-02-10 2015-01-06 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作 TWI655643B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??1402241.2 2014-02-10
GB1402241.2A GB2522906B (en) 2014-02-10 2014-02-10 Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address

Publications (2)

Publication Number Publication Date
TW201532073A true TW201532073A (zh) 2015-08-16
TWI655643B TWI655643B (zh) 2019-04-01

Family

ID=50390715

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104100315A TWI655643B (zh) 2014-02-10 2015-01-06 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作

Country Status (10)

Country Link
US (1) US10073777B2 (zh)
EP (1) EP3105681B1 (zh)
JP (1) JP6652491B2 (zh)
KR (1) KR102383900B1 (zh)
CN (1) CN105980993B (zh)
GB (1) GB2522906B (zh)
IL (1) IL246543B (zh)
MY (1) MY182446A (zh)
TW (1) TWI655643B (zh)
WO (1) WO2015118295A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI723041B (zh) * 2015-08-27 2021-04-01 英商Arm股份有限公司 用於控制指令執行行為的設備及方法
TWI724067B (zh) * 2015-12-24 2021-04-11 美商英特爾股份有限公司 用以在安全指定位址空間頁面快取記憶體中暫停/回復指定位址空間的遷移之指令及邏輯

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720868B2 (en) * 2014-07-07 2017-08-01 Xilinx, Inc. Bridging inter-bus communications
JP6860965B2 (ja) * 2015-06-12 2021-04-21 任天堂株式会社 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
US10325108B2 (en) 2016-12-30 2019-06-18 Intel Corporation Method and apparatus for range based checkpoints in a storage device
CN110268392A (zh) * 2017-01-10 2019-09-20 瑞萨电子美国有限公司 安全架构和方法
US10402349B2 (en) * 2017-02-08 2019-09-03 Arm Limited Memory controller having data access hint message for specifying the given range of one or more memory addresses
US11150908B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence
US10719328B2 (en) 2017-08-18 2020-07-21 International Business Machines Corporation Determining and predicting derived values used in register-indirect branching
US10884747B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Prediction of an affiliated register
US10884745B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Providing a predicted target address to multiple locations based on detecting an affiliated relationship
US10534609B2 (en) * 2017-08-18 2020-01-14 International Business Machines Corporation Code-specific affiliated register prediction
US11150904B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Concurrent prediction of branch addresses and update of register contents
US10884746B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Determining and predicting affiliated registers based on dynamic runtime control flow analysis
US10908911B2 (en) 2017-08-18 2021-02-02 International Business Machines Corporation Predicting and storing a predicted target address in a plurality of selected locations
GB2570692B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
WO2020005857A1 (en) * 2018-06-24 2020-01-02 Hex Five Security, Inc. Configuring, enforcing, and monitoring separation of trusted execution environments
GB2578135B (en) 2018-10-18 2020-10-21 Advanced Risc Mach Ltd Range checking instruction
GB2578158B (en) * 2018-10-19 2021-02-17 Advanced Risc Mach Ltd Parameter signature for realm security configuration parameters
GB2579034B (en) * 2018-11-15 2021-05-05 Trustonic Ltd Software installation method
CN110008154B (zh) * 2019-04-16 2020-08-21 北京智芯微电子科技有限公司 提高处理器与访存总线时序的方法及内存属性预测器
KR20210012825A (ko) 2019-07-26 2021-02-03 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
GB2589895B (en) * 2019-12-11 2022-03-16 Advanced Risc Mach Ltd Intermodal calling branch instruction
US11256631B1 (en) * 2020-01-17 2022-02-22 Ralph Crittenden Moore Enhanced security via dynamic regions for memory protection units (MPUs)
CN111694602B (zh) * 2020-06-12 2023-08-08 北京经纬恒润科技股份有限公司 跨分区的数据处理方法及装置
JP6827244B1 (ja) * 2020-09-15 2021-02-10 株式会社Attc 監査装置、監査方法、監査プログラムおよび監査システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049897A (en) * 1997-01-07 2000-04-11 Intel Corporation Multiple segment register use with different operand size
GB2325061B (en) * 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
WO2003090052A2 (en) * 2002-04-18 2003-10-30 Advanced Micro Devices Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US7043616B1 (en) * 2002-04-18 2006-05-09 Advanced Micro Devices, Inc. Method of controlling access to model specific registers of a microprocessor
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US7287140B1 (en) * 2003-07-28 2007-10-23 Massachusetts Institute Of Technology System and technique for fine-grained computer memory protection
US7068545B1 (en) * 2005-01-04 2006-06-27 Arm Limited Data processing apparatus having memory protection unit
CN100386738C (zh) * 2005-08-10 2008-05-07 英业达股份有限公司 储存装置平台转移后的存取权限表自动重建方法及系统
US8051263B2 (en) * 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
JP5582971B2 (ja) * 2009-12-15 2014-09-03 キヤノン株式会社 メモリ保護方法および情報処理装置
GB2484927A (en) * 2010-10-26 2012-05-02 Advanced Risc Mach Ltd Provision of access control data within a data processing system
JP2014211662A (ja) * 2011-09-01 2014-11-13 パナソニック株式会社 アクセス制御装置及びアクセス制御方法
WO2013097246A1 (zh) * 2011-12-31 2013-07-04 华为技术有限公司 高速缓冲存储器控制方法、装置和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI723041B (zh) * 2015-08-27 2021-04-01 英商Arm股份有限公司 用於控制指令執行行為的設備及方法
TWI724067B (zh) * 2015-12-24 2021-04-11 美商英特爾股份有限公司 用以在安全指定位址空間頁面快取記憶體中暫停/回復指定位址空間的遷移之指令及邏輯

Also Published As

Publication number Publication date
US10073777B2 (en) 2018-09-11
GB201402241D0 (en) 2014-03-26
GB2522906B (en) 2021-07-14
JP2017505492A (ja) 2017-02-16
IL246543B (en) 2020-03-31
US20150227462A1 (en) 2015-08-13
CN105980993A (zh) 2016-09-28
KR102383900B1 (ko) 2022-04-07
WO2015118295A1 (en) 2015-08-13
KR20160119140A (ko) 2016-10-12
IL246543A0 (en) 2016-08-31
EP3105681A1 (en) 2016-12-21
CN105980993B (zh) 2020-03-06
EP3105681B1 (en) 2021-10-20
TWI655643B (zh) 2019-04-01
GB2522906A (en) 2015-08-12
MY182446A (en) 2021-01-25
JP6652491B2 (ja) 2020-02-26

Similar Documents

Publication Publication Date Title
TWI655643B (zh) 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作
US8677457B2 (en) Security for codes running in non-trusted domains in a processor core
TWI726925B (zh) 用於管理有界指標的裝置和方法
JP5000573B2 (ja) 保護された関数呼び出し
TW202030615A (zh) 範圍檢查指令
KR102346255B1 (ko) 조건부 메모리 액세스 프로그램 명령에 대한 허가 제어
JP2013250980A (ja) プロセッサ資源および実行保護の方法および装置
TW202008169A (zh) 使用儲存在記憶體系統中的記憶體保護表的記憶體保護單元
KR102533823B1 (ko) 자격과 관련된 허가들을 해석하는 장치 및 방법
KR20160019454A (ko) 데이터 처리장치에서의 소프트웨어 라이브러리들의 보안 보호
TWI678615B (zh) 在資料處理裝置中進行除錯
TW201901422A (zh) 用於管理能力域的設備及方法
US8789169B2 (en) Microcomputer having a protection function in a register
US20220292183A1 (en) Secure control flow prediction
KR102547479B1 (ko) 명령 세트의 변경을 제어하는 장치 및 방법
CN108463810B (zh) 存储器地址变换管理
TWI807094B (zh) 記憶體存取控制
TW202343257A (zh) 記憶體管理
TW202340955A (zh) 使用能力約束記憶體存取之技術
KR20210124302A (ko) 보안 및 비보안 저장을 위한 룩업 회로부
TW202131191A (zh) 用於控制對一組記憶體映射的控制暫存器的存取的設備及方法
CN117222990A (zh) 用于使用能力约束对存储器的访问的技术
CN117539615A (zh) 操作系统的内存保护方法及存储器