[go: up one dir, main page]

TWI894231B - 裝置及方法 - Google Patents

裝置及方法

Info

Publication number
TWI894231B
TWI894231B TW110109701A TW110109701A TWI894231B TW I894231 B TWI894231 B TW I894231B TW 110109701 A TW110109701 A TW 110109701A TW 110109701 A TW110109701 A TW 110109701A TW I894231 B TWI894231 B TW I894231B
Authority
TW
Taiwan
Prior art keywords
translation
memory
address
access
circuitry
Prior art date
Application number
TW110109701A
Other languages
English (en)
Other versions
TW202137010A (zh
Inventor
尤瓦 埃拉德
傑森 派克
理查羅伊 格利森斯維特
賽門約翰 克拉斯克
亞歷山大當諾查爾斯 洽威克
Original Assignee
英商Arm股份有限公司
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 英商Arm股份有限公司 filed Critical 英商Arm股份有限公司
Publication of TW202137010A publication Critical patent/TW202137010A/zh
Application granted granted Critical
Publication of TWI894231B publication Critical patent/TWI894231B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space 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)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)

Abstract

一種裝置包括轉譯電路系統,用以執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,其中該轉譯電路系統經配置以取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生該經轉譯之第二記憶體位址;權限電路系統,用以執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作;以及存取電路系統,用以當該權限資訊指示准許對該給定的第二記憶體位址之記憶體存取時,存取儲存在該給定的第二記憶體位址處之資料;該存取電路系統經配置而在權限電路系統尚未完成用以偵測權限資訊以指示是否准許對一轉譯資訊位址之記憶體存取之操作的情況下選擇性地允許由轉譯電路系統對彼轉譯資訊位址之存取。

Description

裝置及方法
本揭示案係關於裝置及方法。
資料處理系統可具有位址轉譯電路系統,以將記憶體存取請求之虛擬位址轉譯為對應於記憶體系統中將被存取的位置之實體位址。
產生此種位址轉譯之進程可能本身需要多個記憶體存取。
在實例佈置中,提供一種裝置,該裝置包括: 轉譯電路系統,用以執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,其中該轉譯電路系統經配置以取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生該經轉譯之第二記憶體位址; 權限電路系統,用以執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作;以及 存取電路系統,用以當該權限資訊指示准許對該給定的第二記憶體位址之記憶體存取時,存取儲存在該給定的第二記憶體位址處之資料; 該存取電路系統經配置而在該權限電路系統尚未完成用以偵測權限資訊以指示是否准許對一轉譯資訊位址之記憶體存取之操作的情況下選擇性地允許由該轉譯電路系統對彼轉譯資訊位址之存取。
在另一實例佈置中,提供一種方法,該方法包括: 執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,包括取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生該經轉譯之第二記憶體位址; 執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作; 當該權限資訊指示准許對該給定的第二記憶體位址之記憶體存取時,存取儲存在該給定的第二記憶體位址處之資料;以及 在該權限電路系統尚未完成用以偵測權限資訊以指示是否准許對一轉譯資訊位址之記憶體存取之操作的情況下選擇性地存取彼轉譯資訊位址。
在另一實例佈置中,提供一種電腦程式,該電腦程式用於控制主機資料處理裝置以提供用於執行目標代碼之指令執行環境;該電腦程式包括: 轉譯邏輯,用以執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,其中該轉譯邏輯經配置以取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生經轉譯之第二記憶體位址; 權限邏輯,用以執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作;以及 存取邏輯,用以當權限資訊指示准許對給定的第二記憶體位址之記憶體存取時,存取儲存在給定的第二記憶體位址處之資料; 該存取邏輯經配置而在權限邏輯尚未完成用以偵測權限資訊以指示是否准許對轉譯資訊位址之記憶體存取之操作的情況下選擇性地允許由轉譯邏輯對彼轉譯資訊位址之存取。
其他相應態樣及特徵由附加申請專利範圍限定。
在參考隨附諸圖論述實施例之前,提供對實施例之以下描述。
實例實施例提供一種裝置,包括: 轉譯電路系統,用以執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,其中該轉譯電路系統經配置以取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生該經轉譯之第二記憶體位址; 權限電路系統,用以執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作;以及 存取電路系統,用以當權限資訊指示准許對給定的第二記憶體位址之記憶體存取時,存取儲存在該給定的第二記憶體位址處之資料; 該存取電路系統經配置而在權限電路系統尚未完成用以偵測權限資訊以指示是否准許對轉譯資訊位址之記憶體存取之操作的情況下存取彼轉譯資訊位址。
本揭示案認識到,操作(諸如,由轉譯電路系統(例如,記憶體管理單元或MMU)執行之彼等)本身可涉及許多記憶體存取。在有必要在彼等存取中之每一者之前獲得權限資訊的情況下,獲得權限資訊會給轉譯的產生引入很大的管理負擔,尤其係在權限資訊亦被保存在記憶體中的情況下。此在多階段MMU之上下文中尤其成問題。
在實例佈置中,在用以獲得權限資訊之進程尚未完成的情況下,允許存取至少一些轉譯資訊,其為轉譯電路系統用以產生轉譯之資訊(諸如,所謂的頁表條目)。
此些佈置可有助於減少與獲得記憶體位址轉譯相關聯之潛時。
儘管此些佈置可應用於藉由轉譯電路系統進行之讀取及寫入操作,但在實例實施例中,應注意:(a)與獲得轉譯相關聯之大部分潛時大體與由轉譯電路系統之讀取操作有關;及(b)若該等佈置限於由轉譯電路系統之讀取操作,則在尚未完成用以獲得權限資訊之進程的情況下進行操作有可能帶來較小的安全風險。因此,在實例實施例中,存取電路系統經配置以當對轉譯資訊位址之存取與讀取存取有關時,在權限電路系統尚未完成用以偵測權限資訊之操作的情況下存取彼轉譯資訊位址;且該存取電路系統經配置而當對轉譯資訊位址之存取與寫入存取有關時,僅在權限資訊指示准許針對彼轉譯資訊位址之記憶體存取時,存取彼轉譯資訊位址。
在一些實例中,權限電路系統經配置以執行用以偵測適用於給定第二記憶體位址之儲存類型的另一操作,該儲存類型至少確定第一儲存類型還是第二、不同的儲存類型適用於該給定第二記憶體位址。舉例而言,存取電路系統可經配置以僅當適用於該轉譯資訊之該儲存類型為第一儲存類型時,在該權限電路系統尚未完成用以偵測權限資訊以指示是否准許對轉譯資訊位址之記憶體存取之該操作的情況下,存取彼轉譯資訊位址。在第一儲存類型為對其而言儲存在給定位址處之資料不會被自給定位址之讀取操作更改的儲存類型的情況下,此為尤其相關的。舉例而言,另一儲存類型可為對其而言儲存在給定位址處之資料有可能被自該給定位址之讀取操作更改的儲存類型,例如,與輸入/輸出電路系統相關聯之儲存類型,諸如,映射至暫存器(諸如,先進先出(first-in-first-out; FIFO)暫存器)之位址,其中讀取操作會改變由後續讀取操作讀取之資料的本質。
在實例佈置中,用以偵測權限資訊之操作可被推測,而在其他實例中,其可被省略或取消。作為實例,在至少部分取消的情形下,權限電路系統經配置而不執行用以偵測關於轉譯資訊位址中之至少一些的權限資訊之操作。作為避免由於在尚未獲得權限資訊的情況下進行操作而引起之安全風險的另一措施,轉譯電路系統可經配置而不作為在轉譯電路系統之外的電路系統(或實際上在存取轉譯電路系統之處理器上操作的軟體)之輸出來提供自轉譯資訊位址擷取之關於用以偵測權限資訊的操作尚未完成之轉譯資訊。
本揭示案尤其適用於轉譯電路系統,其中轉譯資訊適用於包括轉譯資訊條目(例如,所謂的頁表條目或PTE)之階層架構之給定第一記憶體位址的轉譯,其中表示下一個轉譯資訊條目之轉譯資訊位址的資料係由前一個轉譯資訊條目指示。在此些佈置中,表示下一個轉譯資訊條目之轉譯資訊位址的資料可指示適用於下一個轉譯資訊條目之第一記憶體位址的一部分;且轉譯電路系統經配置以執行轉譯操作以便產生相應的轉譯資訊位址。
此種佈置在推遲獲得權限資訊之上下文中可為有用的,例如,在其中權限電路系統經配置以推遲發起用以偵測下一個轉譯資訊條目之權限資訊的操作直至發起對彼下一個轉譯資訊條目之存取之後為止的佈置中。
在轉譯電路系統在記憶體存取異動方面可操作的情況下,每一記憶體存取異動皆與用於轉譯之第一記憶體位址相關聯,轉譯電路系統將經轉譯之第二記憶體位址與每一記憶體存取異動相關聯,權限電路系統可經配置以針對每一記憶體存取異動執行用以偵測關於經轉譯之第二記憶體位址的權限資訊之操作,存取電路系統經配置而僅當該權限資料准許對彼經轉譯之第二記憶體位址的存取時,為記憶體存取異動提供對該經轉譯之第二記憶體位址的存取之結果。
在關於轉譯電路系統之操作的實例佈置中,第一記憶體位址可包括虛擬記憶體位址及中間實體位址中之一者;且第二記憶體位址可包括實體記憶體位址。
本發明技術尤其適合於與具有複數個記憶體分區之記憶體一起使用,每一資料記憶體分區與分區標識符相關聯,且具有在實體位址空間內之相應的實體位址範圍。此處,權限電路系統可經配置,作為用以偵測權限資訊之操作:偵測與第二記憶體位址相關聯之區域標識符,該區域標識符係選自複數個區域標識符,每一區域標識符用以指示存取該等記憶體分區之相應集合的權限,其中對於該等區域標識符中之至少一者而言,該等記憶體分區之該相應集合包括該等記憶體分區中之一或更多者但非全部的子集;以及比較偵測到之區域標識符與和該第二記憶體位址相關聯之分區標識符。
作為用以避免藉由不正確區域標識符進行記憶體存取之另一層安全性,裝置可包括加密及解密電路系統,用以加密要由記憶體儲存之資料及用以解密自該記憶體擷取之資料;其中該加密及解密電路系統經配置以將一組加密及對應解密中之相應加密及對應解密應用於每一記憶體分區,該組加密及對應解密使得由針對給定記憶體分區之該相應加密所加密至彼記憶體分區的資料無法藉由向另一記憶體分區應用該解密而被解密。
在實例佈置中,權限電路系統經配置以與經轉譯的第二記憶體位址相關聯,資料指示與該經轉譯的第二記憶體位址相關聯之區域標識符。
加密及解密可經佈置而使得該加密及解密電路系統經配置以藉由應用根據指示與一經轉譯的第二記憶體位址相關聯之區域標識符的該資料所選擇之解密來應用解密以解密在彼經轉譯的第二記憶體位址處自該記憶體擷取之資料。
作為緩解由於在偵測權限資訊之操作尚未完成的情況下使用記憶體存取而引起之安全風險的另一措施,及在包括一或更多個快取記憶體以自記憶體擷取資料及/或將資料儲存至記憶體之裝置的上下文中,快取記憶體可經配置以使該相應的區域標識符與該快取記憶體所保存之每一資料項相關聯;且該快取記憶體可經配置以回應於與指示不同區域標識符之資料相關聯的記憶體存取而禁止對與給定區域標識符相關聯之資料項的存取。
作為緩解由於在偵測權限資訊之操作尚未完成的情況下使用記憶體存取而引起之安全風險的另一措施,轉譯電路系統經配置以當轉譯電路系統對轉譯資訊之使用未提供有效位址轉譯時偵測關於給定轉譯操作之轉譯故障;及回應於偵測轉譯故障,轉譯電路系統經配置以控制權限電路系統以執行用以偵測關於作為給定轉譯操作之部分而存取之任何轉譯資訊位址的權限資訊之操作。
在實例實施例中,裝置包括處理器以用選自異常級別之階層架構的主要異常級別來執行程式指令,每一異常級別與安全性特權相關聯,以使得以較高異常級別執行之指令可存取以較低異常級別執行之指令所不可存取的資源;其中需要該處理器以該等異常級別中之最高者來執行指令,以便設定權限電路系統自其偵測權限資訊之資料。
另一實例實施例提供一種方法,包括: 執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,包括取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生該經轉譯之第二記憶體位址; 執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作; 當該權限資訊指示准許對該給定的第二記憶體位址之記憶體存取時,存取儲存在該給定的第二記憶體位址處之資料;以及 在該權限電路系統尚未完成用以偵測權限資訊以指示是否准許對一轉譯資訊位址之記憶體存取之操作的情況下存取彼轉譯資訊位址。
另一實例實施例提供一種電腦程式,該電腦程式用於控制主機資料處理裝置以提供用於執行目標代碼之指令執行環境;該電腦程式包括: 轉譯邏輯,用以執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,其中該轉譯邏輯經配置以取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生經轉譯之第二記憶體位址; 權限邏輯,用以執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作;以及 存取邏輯,用以當權限資訊指示准許對給定的第二記憶體位址之記憶體存取時,存取儲存在給定的第二記憶體位址處之資料; 該存取邏輯經配置而在權限邏輯尚未完成用以偵測權限資訊以指示是否准許對轉譯資訊位址之記憶體存取之操作的情況下選擇性地允許由轉譯邏輯對彼轉譯資訊位址之存取。 簡介-控制對實體位址空間之存取
資料處理系統可支援使用虛擬記憶體,其中提供位址轉譯電路系統以將記憶體存取請求所指定之虛擬位址轉譯為與記憶體系統中將被存取的位置相關聯之實體位址。可以一或更多個頁表結構定義虛擬位址與實體位址之間的映射。頁表結構內之頁表條目亦可定義一些存取權限資訊,其可控制是否允許在處理電路系統上執行之給定軟體進程存取特定虛擬位址。
在一些處理系統中,可由位址轉譯電路系統將所有虛擬位址映射至單個實體位址空間上,該單個實體位址空間由記憶體系統使用以標識記憶體中將被存取之位置。在此系統中,僅基於用以提供虛擬至實體位址轉譯映射之頁表結構,提供對於特定軟體進程是否可存取特定位址的控制。然而,此些頁表結構通常可由作業系統及/或超管理器定義。若作業系統或超管理器被入侵,則此可導致安全性漏洞,其中敏感資訊可能變得可被攻擊者存取。
因此,對於其中需要某些進程與其他進程相隔離地安全地執行之一些系統而言,系統可支援在諸多域中之操作,且可支援諸多不同的實體位址空間,其中對於記憶體系統之至少一些部件而言,處理其虛擬位址被轉譯為不同實體位址空間中的實體位址之記憶體存取請求,就如同其正在存取記憶體中之完全單獨的位址一樣,即使相應實體位址空間中之實體位址實際上對應於記憶體中之同一位置。藉由將來自處理電路系統之不同操作域的存取隔離至一些記憶體系統部件所見之相應不同的實體位址空間中,此可提供更強的安全性保證,其不依賴於作業系統或超管理器所設定之頁表權限資訊。
處理電路系統可支援根域中之處理,該根域負責管理處理電路系統可在其中操作的其他域之間的切換。藉由提供專用根域用於控制該切換,此可有助於藉由限制在一個域中執行之代碼可觸發至另一域之切換的程度來維持安全性。舉例而言,當請求域切換時,根域可執行各種安全性檢查。
因而,處理電路系統可支援在如下至少三個域中之一者中執行的處理:根域,及至少兩個其他域。位址轉譯電路系統可將自當前域執行之記憶體存取的虛擬位址轉譯為在至少基於當前域所選擇之複數個實體位址空間中之一者中的實體位址。
根實體位址空間可僅可自根域存取。因而,當處理電路系統在其他域中之一者中操作時,處理電路系統可能無法存取根實體位址空間。此藉由確保在其他域中之一者中執行的代碼無法篡改根域所依賴之資料或程式代碼以用於管理域之間的切換或用於控制當在其他域中之一者中時處理電路系統具有何權利,從而提高了安全性。另一方面,在實例中,該複數個實體位址空間中之所有皆可自根域存取。由於在根域中執行之代碼必須被提供在其他域中之一者中操作的代碼之任何方信任,所以根域代碼將負責切換至彼方代碼在其中執行之特定域,從而本質上,可信任根域存取實體位址空間中之任一者。使得可自根域存取所有實體位址空間允許執行功能,諸如,將記憶體區域移入及移出域,將代碼及資料複製至域中(例如,在啟動期間),及向彼域提供服務。 實例描述
第1圖示意性地繪示具有至少一個請求者設備4及至少一個完成者設備6之資料處理系統2的實例。互連件8提供請求者設備4與完成者設備6之間的通訊。請求者設備能夠發佈記憶體存取請求,該記憶體存取請求請求對特定的可定址記憶體系統位置之記憶體存取。完成者設備6為負責服務於指向其之記憶體存取請求之設備。儘管第1圖中未示出,但一些設備可能能夠充當請求者設備並充當完成者設備。請求者設備4可(例如)包括處理元件,諸如,中央處理單元(central processing unit; CPU)或圖形處理單元(graphics processing unit; GPU)或其他主設備(諸如,匯流排主設備、網路介面控制器、顯示器控制器,等)。完成者設備可包括負責控制對對應記憶體儲存單元的存取之記憶體控制器、用於控制對週邊設備的存取之週邊控制器,等。第1圖更詳細地示出請求者設備4中之一者的實例配置,但將瞭解,其他請求者設備4可具有類似配置。或者,其他請求者設備可具有與在第1圖的左邊所示之請求者設備4不同的配置。
請求者設備4具有處理電路系統10,其用於參考儲存在暫存器12中之資料,回應於指令來執行資料處理。暫存器12可包括用於儲存運算元及被處理指令的結果之通用暫存器,以及用於儲存用於配置如何藉由處理電路系統執行處理的控制資料之控制暫存器。舉例而言,控制資料可包括用以選擇哪一操作域為當前域之當前域指示符14,及指示哪一異常級別為處理電路系統10正在其中操作之當前異常級別之當前異常級別指示符15。
處理電路系統10可能能夠發佈記憶體存取請求,其指定標識將被存取之可存取位置的虛擬位址(virtual address; VA)及標識當前域之域標識符(域ID或「安全性狀態」)。位址轉譯電路系統16(例如,記憶體管理單元(memory management unit; MMU))基於儲存於記憶體系統中之頁表結構中所定義的頁表資料經由位址轉譯之多個階段中的一者將虛擬位址轉譯為實體位址(physical address; PA)。轉譯旁看緩衝器(translation lookaside buffer; TLB)18充當查找快取記憶體,用於快取彼頁表資訊中之一些以實現比每次需要進行位址轉譯時皆必須自記憶體獲取頁表資訊更快的存取。在此實例以及產生實體位址中,位址轉譯電路系統16亦選擇與實體位址相關聯之諸多實體位址空間中之一者,並輸出標識所選實體位址空間之實體位址空間(physical address space; PAS)標識符。以下將更詳細地論述對PAS的選擇。
PAS過濾器20充當請求者側過濾電路系統,用於基於已轉譯之實體位址及PAS標識符來檢查是否允許在PAS標識符所標識之指定實體位址空間內存取彼實體位址。此查找係基於儲存於記憶體系統內之細微性保護表(granule protection table; GPT)結構中所儲存的細微性保護資訊。類似於TLB 18中之頁表資料的快取,可在細微性保護資訊快取記憶體22中快取細微性保護資訊。細微性保護資訊定義限制可自其存取給定實體位址之實體位址空間的資訊,且基於此查找,PAS過濾器20確定是否允許記憶體存取請求繼續發佈至一或更多個快取記憶體24及/或互連件8。若不允許針對記憶體存取請求之指定PAS存取指定實體位址,則PAS過濾器20阻止該異動且可傳信故障。
PAS過濾器可(部分地)回應於來自位址轉譯電路系統之控制信號(示意性地示為信號21)起作用,該控制信號指示藉由PAS過濾器進行之至少一些檢查或其他操作的取消或推遲可發生或應發生。以下將更詳細地論述此些操作。
雖然第1圖示出關於具有多個請求者設備4之系統的實例,但在第1圖的左手邊為一個請求者設備示出之特徵亦可包括在其中僅有一個請求者設備(諸如,單核處理器)之系統中。
雖然第1圖示出了其中藉由位址轉譯電路系統16執行為給定請求選擇PAS之實例,但在其他實例中,可由位址轉譯電路系統16將用於確定選擇哪一PAS之資訊連同PA一起輸出至PAS過濾器20,且PAS過濾器20可選擇PAS並檢查是否允許該PA在所選PAS內被存取。
提供PAS過濾器20有助於支援可在諸多操作域中操作之系統,每個操作域皆與其自身的隔離實體位址空間相關聯,其中,對於記憶體系統之至少部分(例如,對於一些快取記憶體或一致性強制機構(諸如,探聽過濾器)),單獨的實體位址空間被視為其引用了完全獨立之位址集合來標識單獨的記憶體系統位置,即使彼等位址空間內之位址實際上代表記憶體系統中之同一實體位置。此可用於安全性目的。
第2圖示出不同操作狀態及處理電路系統10可在其中操作之域的實例,及可在不同異常級別及域中執行之軟體類型的實例(當然,將瞭解,安裝在系統上之特定軟體係由管理彼系統之各方選擇的,且因此並非硬體架構之基本特徵)。
處理電路系統10可在諸多不同異常級別80下操作,在此實例中係標記為EL0、EL1、EL2及EL3之四個異常級別,其中在此實例中,EL3代表具有最大特權級別之異常級別,而EL0代表具有最低特權之異常級別。「將瞭解,其他架構可選擇相反編號,以使得具有最高數字之異常級別可被視為具有最低特權。」在此實例中,特權最低之異常級別EL0針對應用程式級代碼,特權其次高之異常級別EL1用於作業系統級代碼,特權再次高之異常級別EL2用於超管理器級代碼,該超管理器級代碼管理諸多虛擬化作業系統之間的切換,而特權最高之異常級別EL3用於監控器代碼,該監控器代碼管理相應域之間的切換及將實體位址分配給實體位址空間。
因此,處理電路系統10經配置而以選自異常級別之階層架構的主要異常級別來執行程式指令,每一異常級別與安全性特權相關聯,以使得以較高異常級別執行之指令可存取以較低異常級別執行之指令所不可存取的資源。如以下所論述,需要處理電路系統以最高異常級別(例如,EL3)執行指令,以便設定權限電路系統或PAS過濾器20從中偵測權限資訊之資料。
當在處理軟體處於特定異常級別上的同時發生異常時,對於一些類型之異常,異常會被帶入更高(特權更高)之異常級別,其中異常將被帶入之特定異常級別係基於所發生之特定異常的屬性選擇。然而,在一些情況下,有可能在與發生異常時所處理之代碼相關聯之異常級別相同的異常級別上,發生其他類型之異常。當發生異常時,可保存特徵化發生異常時處理器狀態之資訊,包括(例如)發生異常時之當前異常級別,且因而,一旦已處理了異常處置器以便處理異常,則處理可繼而返回至前一處理,且可使用已保存之資訊來標識應返回到之異常級別。
除了不同異常級別以外,處理電路系統亦支援諸多操作域,包括根域82、安全(S)域84、次安全域86及領域域(realm domain)88。為了便於參考,以下將次安全域描述為「非安全」(NS)域,但將瞭解,此並不意欲暗指安全性之任何特定級別(或缺乏安全性)。實情為,「非安全」僅指示非安全域用於比安全域中操作之代碼安全性低的代碼。當處理電路系統10處於最高異常級別EL3上時,選擇根域82。當處理電路系統處於其他異常級別EL0至EL2中之一者上時,基於當前域指示符14來選擇當前域,該當前域指示符14指示其他域84、86、88中之每一者起作用。對於其他域84、86、88中之每一者而言,處理電路系統可處於異常級別EL0、EL1或EL2中之任一者上。
啟動時,可(例如)在特權較高之異常級別EL3或EL2內執行啟動代碼(例如,BL1、BL2、OEM Boot)之諸多片段。啟動代碼BL1、BL2可與(例如)根域相關聯,且OM啟動代碼可在安全域中操作。然而,一旦系統啟動,則在操作時,可將處理電路系統10視為每次在域82、84、86及88中之一者中操作。域82至88中之每一者與其自身相關聯之實體位址空間(PAS)相關聯,該實體位址空間(PAS)使得能夠隔離來自至少部分記憶體系統內之不同域的資料。以下將更詳細地描述此情形。
非安全域86可用於常規應用程式級處理,及用於管理此些應用程式之作業系統及超管理器活動。因而,在非安全域86內,可能有在EL0上操作之應用程式代碼30,在EL1上操作之作業系統(operating system; OS)代碼32及在EL2上操作之超管理器代碼34。
安全域84使得某些系統單晶片安全性、媒體或系統服務能夠被隔離至來自用於非安全處理之實體位址空間的單獨實體位址空間中。在非安全域代碼無法存取與安全域84相關聯之資源而安全域可存取安全及非安全資源的意義上,安全域及非安全域不相等。支援安全域84及非安全域86的此種分區之系統的實例為基於Arm®有限公司所提供之TrustZone®架構的系統。安全域可在EL0上操作受信任應用程式36,在EL1上操作受信任作業系統38,以及視情況在EL2上操作安全分區管理器40,該安全分區管理器40可在支援安全分區時,以類似於超管理器34可管理執行非安全域86之虛擬機器或客作業系統32之間的隔離之方式,使用階段2頁表以支援在安全域84中執行之不同的受信任作業系統38之間的隔離。
擴展系統以支援安全域84近年來變得很流行,因為其使得單個硬體處理器能夠支援被隔離之安全處理,從而避免了需要在單獨的硬體處理器上執行處理。然而,隨著安全域的使用之日益普及,具有此種安全域之許多實用系統現在安全域內支援由廣泛的不同軟體提供商所提供之相對複雜的混合服務環境。舉例而言,在安全域84中操作之代碼可包括由如下各者(除了其他以外)提供之不同軟體片段:製造積體電路之矽提供商、將矽提供商所提供之積體電路組裝至電子設備(諸如,行動電話)中之原始設備製造商(original equipment manufacturer; OEM)、為設備提供作業系統32之作業系統供應商(operating system vendor; OSV);及/或雲端平臺提供商,其管理經由雲端為諸多不同客戶端支援服務之雲端伺服器。
然而,日益期望為提供使用者級代碼(可能通常預期其作為非安全域86內之應用程式30執行)之各方提供安全的計算環境,可信任該安全計算環境不會將資訊洩露給在同一實體平臺上操作代碼之其他方。可能期望此些安全計算環境在操作時可動態分配,並經認證及可證明,以使得使用者能夠在信任設備處理潛在的敏感代碼或資料之前驗證是否在實體平臺上提供了足夠的安全性保證。此種軟體之使用者可能不希望信任提供可能通常在非安全域86中操作之豐富作業系統32或超管理器34的一方(或即使彼些提供商自身可被信任,使用者仍可能希望保護自身免於作業系統32或超管理器34被攻擊者入侵)。又,儘管安全域84可用於需要安全處理之此種使用者提供之應用程式,但實務上,此給使用者提供需要安全計算環境之代碼以及在安全域84內操作之現有代碼的提供商均帶來了問題。對於在安全域84內操作之現有代碼的提供商而言,在安全域內添加任意使用者提供之代碼將增大針對其代碼之潛在攻擊的攻擊面,此可能為非所期望的,且因此可能強烈不建議允許使用者將代碼添加至安全域84中。另一方面,提供需要安全計算環境之代碼的使用者可能不願意信任在安全域84中操作之不同代碼片段的所有提供商來存取其資料或代碼,若需要對在特定域中操作之代碼進行認證或證明作為使用者提供之代碼執行其處理的前提,則可能難以審核及認證不同軟體提供商所提供之在安全域84中操作之代碼的所有不同片段,此可能限制第三方提供更安全服務之機會。
因此,如第2圖中所示,提供額外域88(稱為領域域),其可由此種使用者引入之代碼用以提供正交於與在安全域24中操作之部件相關聯的任何安全計算環境之安全計算環境。在領域域中,已執行之軟體可包括諸多領域,其中每一領域可藉由在異常級別EL2上操作之領域管理模組(realm management module; RMM)46與其他領域隔離開。RMM 46可(例如)藉由在頁表結構中定義存取權限及位址映射來控制執行領域域88之相應領域42、44之間的隔離,類似於超管理器34管理在非安全域中操作的不同部件之間的隔離之方式。在此實例中,該等領域包括在EL0上執行之應用程式級領域42,及跨異常級別EL0及EL1執行之封裝應用程式/作業系統領域44。將瞭解,並無必要支援EL0以及EL0/EL1型領域,且RMM 46可建立起同一類型之多個領域。
類似於安全域84,領域域88具有分配給其之其自己的實體位址空間,但在雖然領域域88及安全域84可各自存取與非安全域86相關聯之非安全PAS但領域域88及安全域84無法存取彼此之實體位址空間的意義上,領域域與安全域84正交。此意謂,在領域域88及安全域84中執行之代碼彼此不具有依賴性。領域域中之代碼僅需要信任硬體、RMM 46及在根域82中操作之代碼(其管理域之間的切換),此意謂證明及認證變得更可行。證明使得軟體之給定片段能夠請求驗證設備上安裝之代碼是否匹配某些預期性質。此可藉由檢查安裝在設備上之程式代碼的散列值是否匹配由受信方使用加密協定所簽署之期望值來實施。可(例如)藉由檢查此軟體之散列值是否匹配受信方所簽署之期望值來證明RMM 46及監控器代碼29,該受信方係諸如製造了包括處理系統2之積體電路的矽提供商,或設計了支援基於域之記憶體存取控制的處理器架構之架構提供商。此可允許使用者提供之代碼42、44驗證在執行任何安全或敏感功能之前,是否可以信任基於域之架構的完整性。
因而,可見,與先前已在非安全域86中執行之領域42、44相關聯的代碼(如藉由示出非安全域中之縫隙的虛線所示,此些進程先前已在縫隙中執行過)現可被移動至領域域,在領域域中,該等進程可具有更強的安全性保證,因為其資料及代碼不可由在非安全域86中操作之其他代碼存取。然而,由於領域域88及安全域84正交且因而無法看見彼此之實體位址空間的事實,此意謂領域域中之代碼提供商不需信任安全域中之代碼提供商,且反之亦然。領域域中之代碼可簡單地信任為根域82及RMM 46提供監控器代碼29之受信任韌體,該等韌體可由矽提供商或處理器所支援之指令集架構的提供商提供,當在其設備上執行代碼時可能已固有地需要信任該等供應商,使得無需與其他作業系統供應商、OEM或雲端主機進一步的信任關係,便能夠為使用者提供安全計算環境。
此對於一系列的應用程式及用例而言可為有用的,包括(例如)行動錢包及支付應用程式、遊戲反作弊及盜版機制、作業系統平臺安全性增強、安全虛擬機託管、機密計算、網路連接,或物聯網設備之閘道處理。將瞭解,使用者可找到其中領域支援有用之許多其他應用程式。
為了支援提供給領域之安全性保證,處理系統可支援證明報告功能,其中在啟動時間或操作時間,量測由韌體影像及配置構成,例如,監控器代碼影像及配置或RMM代碼影像及配置,並在操作時量測領域內容及配置,使得領域擁有者可將相關證明報告追溯至已知實施及認證,以作出是否在彼系統上操作之信任決定。
如第2圖中所示,提供單獨的根域82,其管理域切換,且彼根域具有其自己的隔離之根實體位址空間。根域的創建及其資源與安全域的隔離允許更可靠之實施,即使對於僅具有非安全域及安全域86、84但不具有領域域88之系統而言亦如此,而且可用於的確支援領域域88之實施。可使用由矽提供商或架構設計者提供(或由其認證)之監控軟體29來實施根域82,且可將其用以提供安全啟動功能、受信任之啟動量測、系統單晶片配置、調試控制及管理其他方(諸如,OEM)提供之韌體部件的韌體更新。根域代碼可由矽提供商或架構設計者開發、認證及部署,而不依賴於最終設備。相反,安全域84可由OEM管理,用於實施某些平臺及安全性服務。非安全域86之管理可由作業系統32控制以提供作業系統服務,而領域域88允許開發新形式之受信任執行環境,該新形式之受信任執行環境可由使用者或第三方應用程式專用,而同時與安全域84中之現有安全軟體環境相互隔離。
第3圖示意性地繪示用於支援此些技術之處理系統2的另一實例。以相同元件符號繪示與第1圖中相同之元件。第3圖示出位址轉譯電路系統16之更多細節,其包括階段1記憶體管理單元50及階段2記憶體管理單元52。階段1 MMU 50可負責將虛擬位址轉譯為實體位址(當轉譯由EL2或EL3代碼觸發時)或中間位址(當轉譯由EL0或EL1代碼在操作狀態下觸發時,其中需要藉由階段2 MMU 52之另一階段2轉譯)。階段2 MMU可將中間位址轉譯為實體位址。階段1 MMU可基於作業系統控制用於自EL0或EL1發起的轉譯之頁表、由超管理器控制用於自EL2的轉譯之頁表,或由監控器代碼29控制用於自EL3的轉譯之頁表。另一方面,取決於使用哪個域,階段2 MMU 52可基於由超管理器34、RMM 46或安全分區管理器14所定義之頁表結構。以此方式將轉譯分成兩個階段允許作業系統在系統上僅運行作業系統的前提下管理自身及應用程式之位址轉譯,而RMM 46、超管理器34或SPM 40可管理在同一域中運行之不同作業系統之間的隔離。
如第3圖中所示,使用位址轉譯電路系統16之位址轉譯進程可返回安全屬性54,其與當前異常級別15及當前域14(或安全性狀態)相組合而允許回應於給定的記憶體存取請求來存取特定實體位址空間的部分(由PAS標識符或「PAS TAG」標識)。此提供了權限電路系統(20)之實例,該權限電路系統(20)經配置以與經轉譯的第二記憶體位址相關聯,資料(PAS TAG)指示與經轉譯的第二記憶體位址相關聯之區域標識符。
可在細微性保護表56中查找實體位址及PAS標識符,該細微性保護表56提供早先所描述之細微性保護資訊。在此實例中,PAS過濾器20被示為細微性記憶體保護單元(granular memory protection unit; GMPU),其驗證是否允許所選PAS存取所請求之實體位址,且允許存取,則允許將異動傳遞至為記憶體系統之系統構造的一部分之任何快取記憶體24或互連件8。
GMPU 20允許將記憶體指派給單獨的位址空間,而同時提供強大的、基於硬體之隔離保證,並在實體記憶體向此些位址空間之指派方法以及有效共享方案中提供空間及時間上的靈活性。如早先所述,系統中之執行單元在邏輯上分區成虛擬執行狀態(域或「界(World)」),其中在最高異常級別(EL3)上存在一個執行狀態(根界),稱作管理對此些界的實體記憶體指派之「根界」。
將單個系統實體位址空間虛擬化為多個「邏輯」或「架構」之實體位址空間(PAS),其中每一此種PAS為具有獨立一致性屬性之正交位址空間。藉由用PAS標籤擴展系統實體位址,可將其映射至單個「邏輯」實體位址空間。
允許給定界存取邏輯實體位址空間之子集。此由可附接至記憶體管理單元16之輸出的硬體過濾器20來強制執行。
界使用用於位址轉譯之頁表之轉譯表描述符中的欄位定義存取之安全屬性(PAS標籤)。硬體過濾器20可存取表(細微性保護表56,或GPT),該表為系統實體位址空間中之每一頁定義細微性保護資訊(granule protection information; GPI),該資訊指示與其相關聯之PAS TAG及(視情況)其他細微性保護屬性。
在一些實例中,提供所謂的0級(L0)GPT檢查及1級(L1)GPT檢查。L0資訊指示與PA相關聯之記憶體類型,且至少指示在讀取存取時是否可能潛在地發生所謂的副作用。舉例而言,在將PA分配給輸入/輸出設備(其可能會提供自先進先出(first-in-first-out; FIFO)或其他暫存器讀取之資料)的情形下,藉由自FIFO暫存器擷取資料項以使得已擷取之資料不再供下一讀取操作存取,從彼PA讀取資料之動作可改變回應於下一讀取而提供之資料。另一方面,自DRAM讀取資料大體不會遭受此種副作用,且將不會改變要在同一PA處下一次操作讀取之資料。
因此,可使用L0 GPT檢查(作為有用之額外益處)來偵測是否潛在地會經歷此種副作用。若答案為否,則藉由在特定PA處發起讀取操作,不會對彼PA處之資料的完整性造成直接風險。
檢查所基於之L0 GPT資訊可相對粗粒化,例如,具有1 GB之細微性,因此作為L0 GPT檢查的一部分,要查閱之L0 GPT資料的大小可相對小(每GB實體位址空間可能只有一個資料項)。此繼而允許相對容易地快取L0 GPT資料,以使得可在對以下將論述之進程的潛時影響相對小的情況下進行L0 GPT檢查。
一般而言,進行L0 GPT檢查係權限電路系統(諸如,GMPU)執行進一步操作以偵測適用於給定的第二(例如,實體)記憶體位址之儲存類型的實例,該儲存類型至少確定第一儲存類型還是第二、不同的儲存類型適用於給定的第二記憶體位址。舉例而言,第一儲存類型可為如下儲存類型:對於該儲存類型而言,在給定位址處儲存之資料不會藉由自給定位址之讀取操作而被更改(亦即,如上所述,儲存類型不遭受「副作用」)。
L1 GPT檢查可提供(例如)權限資訊及PAS標籤。
硬體過濾器20根據細微性之GPI檢查界ID及安全屬性,並決定是否可授權存取,從而形成細微性記憶體保護單元(Granular Memory Protection Unit; GMPU)。
例如,GPT 56可駐留在片上SRAM中或片外DRAM中。若儲存在片外,則GPT 56可由片上記憶體保護引擎進行完整性保護,該引擎可使用加密、完整性及新鮮度機制來維護GPT 56之安全性。
將GMPU 20定位在系統之請求者側(例如,在MMU輸出上)而非在完成者側上,允許以頁細微性分配存取權限,而同時准許互連件8跨多個DRAM埠對頁進行散列/剝離。
異動在整個系統構造24、8中傳播時保持用PAS TAG標記,直至到達定義為實體混疊點60之位置。與從屬側(完成者側)過濾相比較而言,此允許將過濾器定位在主控側(請求者側)上,而不會降低安全性保證。當異動在整個系統中傳播時,PAS TAG可用作位址隔離之深度安全性機制:例如,快取記憶體可將PAS TAG添加至快取記憶體中之位址標籤中,從而防止使用錯誤的PAS TAG對同一PA進行的存取進入快取記憶體中,並因此提高了側通道阻力。PAS TAG亦可用作附接至記憶體控制器之保護引擎的上下文選擇器,該記憶體控制器在將資料寫入外部DRAM之前加密資料。以下將論述此種保護引擎之實例。
實體混疊點(Point of Physical Aliasing; PoPA)為系統中剝離PAS TAG且位址自邏輯實體位址變回系統實體位址之位置。PoPA可位於快取記憶體下方,位於對實體DRAM進行存取之系統的完成者側(使用經由PAS TAG解析之加密上下文)。或者,其可位於快取記憶體上方,以便以降低安全性為代價簡化系統實施。
在任何時間點,界皆可請求將頁自一個PAS過渡至另一個。在EL3上向監控器代碼29作出請求,該監控器代碼29檢查GPI之當前狀態。EL3僅可允許發生特定組之過渡(例如,自非安全PAS至安全PAS,但不自領域PAS至安全PAS)。為了提供乾淨的過渡,系統支援一條新指令-「資料清理及使實體混疊點無效」,EL3可在將頁過渡至新PAS之前提交該指令-此可保證自PoPA 60上游(比PoPA 60更靠近請求者側)之任何快取記憶體中清除與先前PAS相關聯之任何殘餘狀態。
藉由將GMPU 20附接至主控側可實現之另一性質係界之間記憶體的有效共享。可能期望授權N個界之子集對實體細微性之共享存取,而同時阻止其他界對其存取。此可藉由將「限制性共享」語義添加至細微性保護資訊而同時強迫其使用特定的PAS TAG來實現。作為實例,GPI可指示實體細微性僅可被「領域界」88及「安全界」84存取,而同時用安全PAS 84之PAS TAG標記。
上述性質之一個實例為快速改變特定實體細微性之可見性性質。考慮其中每個界皆指派有僅彼界可存取之私有PAS的情形。對於特定細微性,界可藉由將其GPI自「專有」改為「與非安全界限制性共享」且不改變PAS關聯性而在任何時間點請求其對非安全界可見。以此方式,可提高彼細微性之可見性,而無需昂貴的快取記憶體維護或資料複製操作。
可將第1圖或第3圖之裝置實施為所謂的晶片上系統(system on chip; SoC)、所謂的晶片上網路(network on chip; NoC)或實施為各種相應實例中之離散部件。
第4圖繪示將相應實體位址空間混疊至硬體中所提供之實體記憶體上的概念。如早先所述,域82、84、86、88中之每一者具有其自己的相應實體位址空間61。
在由位址轉譯電路系統16產生實體位址之時間點,該實體位址具有在系統支援之某個數值範圍62內的值,無論選擇哪個實體位址空間,該值皆為相同的。然而,除了產生實體位址以外,位址轉譯電路系統16亦可基於當前域14及/或在用以導出實體位址之頁表條目中的資訊來選擇特定的實體位址空間(PAS)。
或者,不是位址轉譯電路系統16執行選擇PAS,位址轉譯電路系統(例如,MMU)可輸出實體位址及自用於選擇PAS之頁表條目(page table entry; PIE)導出的資訊,且接著此資訊可由PAS過濾器或GMPU 20用以選擇PAS。
根據下表中定義之規則,可視處理電路系統10在發佈記憶體存取請求時所在其中操作之當前域來限制針對給定記憶體存取請求之PAS的選擇:
當前域 非安全PAS 安全PAS 領域PAS 根PAS
非安全 可存取 不可存取 不可存取 不可存取
安全 可存取 可存取 不可存取 不可存取
領域 可存取 不可存取 可存取 不可存取
可存取 可存取 可存取 可存取
對於有多個實體空間空間可供選擇的彼些域,使用用以提供實體位址之已存取頁表條目中的資訊在可用PAS選項之間選擇。
因而,在PAS過濾器20向系統構造24、8輸出記憶體存取請求時(假定其已通過任何過濾檢查),該記憶體存取請求與實體位址(PA)及所選實體位址空間(PAS)相關聯。
自在實體混疊點(PoPA)60之前操作的記憶體系統部件(諸如,快取記憶體、互連件、探聽過濾器,等)的角度來看,將相應實體位址空間61視為完全單獨之位址範圍,其對應於記憶體內之不同系統位置。此意謂,自PoPA之前的記憶體系統部件的角度來看,記憶體存取請求所標識之位址範圍實際上為位址轉譯中可輸出之範圍62大小的四倍,因為基本上將PAS標識符視為實體位址本身之外的額外位址位元,使得取決於選擇哪個PAS,可將同一實體位址PA映射至不同實體位址空間61中之諸多混疊實體位址63。此些混疊實體位址63實際上皆對應於在實體硬體中實施之同一記憶體系統位置,但PoPA之前的記憶體系統部件將混疊位址63視為單獨位址。因而,若存在任何在PoPA之前的快取記憶體或監聽過濾器為此些位址分配條目,則混疊位址63將被映射至具有單獨快取記憶體命中/未命中決策及單獨的一致性管理之不同條目中。此降低了攻擊者使用快取記憶體或一致性側通道作為探查其他域操作之機制的可能性或有效性。
系統可包括一個以上PoPA 60(例如,如以下所論述之第14圖中所示)。
在每一PoPA 60處,在系統實體位址空間64中將混疊實體位址折疊成單個去混疊位址65。將去混疊位址65設置在任何PoPA之後的部件下游,以使得實際上標識記憶體系統位置之系統實體位址空間64再次具有與可在請求者側上執行之位址轉譯中輸出的實體位址範圍相同之大小。舉例而言,在PoPA 60處,可自位址剝離出PAS標識符,且對於下游部件而言,可簡單地使用實體位址值來標識位址,而無需指定PAS。或者,對於其中期望對記憶體存取請求進行一定的完成者側過濾之一些情形而言,仍可在PoPA 60之下游提供PAS標識符,但可能不會將其解釋為位址的一部分,使得出現在不同實體位址空間60中之相同實體位址將在PoPA之下游被解釋為代表同一記憶體系統位置,但所供應之PAS標識符仍可用於執行任何完成者層之安全性檢查。
第5圖繪示如何使用細微性保護表56將系統實體位址空間64劃分成經分配用於在特定架構實體位址空間61內存取之塊。細微性保護表(GPT)56定義允許自每一架構實體位址空間61存取系統實體位址空間65的哪些部分。舉例而言,GPT 56可包括諸多條目,每個條目對應於某個大小(例如,4K頁)之實體位址的細微性,並可為彼細微性定義已指派之PAS,該PAS可選自非安全域、安全域、領域域及根域。藉由設計,若將特定細微性或細微性集合指派給與該等域中之一者相關聯的PAS,則僅可在與彼域相關聯之PAS中對其存取,而無法在其他域之PAS內對其存取。然而,注意,儘管無法自根PAS內存取分配給(例如)安全PAS之細微性,但根域82仍能夠藉由在其頁表中指定PAS選擇資訊來存取實體位址之彼細微性,以確保與映射至實體定址記憶體之彼區域的頁相關聯之虛擬位址將轉譯為在安全PAS中而非在根PAS中之實體位址。因而,可在為給定記憶體存取請求選擇PAS時控制跨域資料共享(在早先所述表中定義之可存取性/不可存取性規則所准許的範圍內)。
然而,在一些實施中,除了允許在GPT所定義之已指派PAS內存取實體位址之細微性以外,GPT可使用其他GPT屬性將位址空間之某些區域標記為與另一位址空間(例如,與具有較低特權或正交特權之域相關聯的位址空間,其通常不被允許為彼域之存取請求選擇已指派PAS)共享。此可促進資料之臨時共享,而無需為給定細微性改變已指派PAS。舉例而言,在第5圖中,領域PAS之區域70在GPT中被定義為指派給領域域,因而通常領域PAS將不可自非安全域86被存取,因為非安全域86無法為其存取請求選擇領域PAS。因為非安全域26無法存取領域PAS,所以通常非安全代碼無法見到區域70中之資料。然而,若領域臨時希望與非安全域共享其被指派之記憶體區域中的一些資料,則其可請求在根域82中操作之監控器代碼29更新GPT 56,以指示將與非安全域86共享區域70,且此可使區域70亦可自非安全PAS被存取(如在第5圖左手邊所示),而無需改變哪個域係為針對區域70之被指派域。此提高了效能,因為用於將不同域指派給特定記憶體區域之操作可能執行更密集,此涉及更大程度的快取記憶體/TLB無效及/或記憶體中之資料清零或記憶體區域之間的資料複製,在預期共享僅為臨時的時,此可為不合理的。
第5圖之佈置因此提供了具有複數個記憶體分區之記憶體的實例,每一資料記憶體分區與分區標識符相關聯,且具有在實體位址空間內之相應的實體位址範圍。
作為權限電路系統之實例,GMPU經配置而進行用以偵測權限資訊之操作: 偵測與第二記憶體位址相關聯之區域標識符(例如,PAS TAG),該區域標識符係選自複數個區域標識符,每一區域標識符用以指示存取記憶體分區之相應集合的權限,其中對於該等區域標識符中之至少一者而言,記憶體分區之該相應集合包括記憶體分區中之一或更多者但非全部的子集;以及 比較偵測到之區域標識符與和第二記憶體位址相關聯之分區標識符(例如,由轉譯電路系統標識之PAS)。 保護引擎
第6圖及第7圖提供可與實體記憶體600相關聯之所謂的保護引擎之示意性實例。
保護引擎提供加密及解密電路系統,以加密要由記憶體600儲存之資料及解密自記憶體600擷取之資料。加密及解密電路系統經配置以將一組加密及對應解密中之相應加密及對應解密應用於不同領域中之PAS,以使得藉由對給定領域之相應加密對彼領域或記憶體分區加密之資料無法藉由對另一個領域應用解密而被解密。
保護引擎可利用PAS標籤,以便藉由應用根據與彼實體記憶體位址相關聯之PAS標籤(指示區域標識符之資料)選擇之加密及解密,應用加密以加密要儲存至記憶體之資料,並應用解密以解密在已轉譯之第二(實體)記憶體位址處自記憶體擷取之資料。
參考第6圖,針對每一領域提供相應的加密/解密電路系統610、612、614、616,且控制/選擇電路系統620回應於與特定記憶體存取異動相關聯之PAS標籤選擇加密/解密電路系統中之適當者。
在第7圖中,提供單個加密/解密電路系統700,其中控制電路系統710取決於PAS標籤來設定諸如加密/解密密鑰及/或加密/解密演算法或演算法特徵之參數。
使用保護引擎之效果在於,為此處提供之其他措施增加了另一層的安全性。 TLB操作概述
如上所述,記憶體管理單元16可與轉譯旁看緩衝器(TLB) 18相關聯。藉由第8圖之示意性流程圖來示出此佈置之操作的態樣,其中在步驟800處,MMU 16接收轉譯請求。在步驟810處,MMU 16偵測TLB 18中是否存在所需要之轉譯。若為否,則MMU 16使用以下將論述之技術獲得所需要之轉譯,並在步驟820處將其儲存至TLB。
在步驟820之後或在步驟810的「是」結果之後,在步驟830處,自TLB所儲存之資料來服務轉譯請求。 MMU操作概述
位址轉譯發生在第一記憶體位址(諸如,虛擬位址,VA)與第二記憶體位址(諸如,實體位址PA或中間實體位址IPA)之間,且可利用所謂的頁表走查(page table walk; PTW)進程。該進程涉及查閱儲存轉譯資訊之所謂的頁表。將頁表提供為頁表之階層架構,以使得在第一頁表中存取之條目提供指向下一個頁表中之相關的下一個轉譯資訊條目之指標。
因此,在實例中,指向轉譯進程之第一(輸入)記憶體位址可包括虛擬記憶體位址及中間實體位址中之一者;且來自該進程之第二(輸出)記憶體位址包括中間實體位址或實體記憶體位址。
更詳細而言,PTW進程涉及遍歷所謂的頁表之階層架構集,以實現特定VA之轉譯。在單階段記憶體轉譯之情形下,輸出可為PA。在多階段記憶體位址轉譯之情形下,進程可涉及更多。存取頁表本身需要PA,因而在階層架構中之下一個表的每次存取中,可能本身需要一個轉譯階段以便獲得下一個所需表之PA。
第9圖中示意性地繪示所謂的單階段記憶體位址轉譯之實例,其中第一記憶體位址為虛擬位址(VA)900,且第二記憶體位址為所謂的實體記憶體位址(PA)。由第9圖之進程產生的有效TLB條目910至少表示VA 900與已轉譯PA之間的映射。可在頁或其他記憶體區域的基礎上表示該映射,使得作為TLB條目910儲存在TLB中之單個映射將連續虛擬位址之集合映射至連續實體位址之對應集合,例如,將頁(例如,為4K個記憶體位址)映射至實體位址之對應頁。
由暫存器「基於轉譯表之暫存器」(translation table based register; TTBR)來提供第一頁表在階層架構中之位址。由TTBR所定義之記憶體位址的至少部分及將被轉譯之VA 900的至少部分來提供第一轉譯資訊條目930之位置。此兩個分量形成第一轉譯資訊條目L0[VA]930之位址920。查找該第一轉譯資訊條目930提供了位址資訊,該位址資訊可與VA 900之其他位元相組合以產生位址935,以存取下一個轉譯資訊條目940。再次,儲存在彼轉譯資訊條目處之資料(與VA 900的其他位元級聯)提供條目950之位址945。儲存在條目950處之轉譯資訊(與VA 900之其他位元級聯)提供最終轉譯資訊條目960之位址955,其中儲存在條目960處之資料與VA 900之最終位元級聯以形成有效TLB條目910。
作為可行實例,將需要轉譯之VA形成為48位元之值。在PTW進程中之不同階段處使用VA之不同部分。
為了獲得頁表階層架構中之第一條目,獲得儲存在TTBR中之基址。將VA之第一部分(例如,9個最高有效位元)作為偏移量添加至基址,以提供L0表中之條目的位址。此查找提供了L1表之基址。
在第二次迭代中,VA的另一部分(例如,VA之接下來的9個位元[38:30])形成與L1表之基址的偏移量,以便提供L1表中之條目的位址。
例如,對於L2及L3表存取,使用下一個偏移部分位元[29:21]及位元[20:12]重複該進程。最終,L3表中的之頁表條目提供了頁位址及有可能提供與實體記憶體頁有關之一些存取權限。VA之其餘部分(例如,最低有效之12個位元[11:0])提供了由最後頁表條目定義之記憶體頁內的頁偏移量,儘管在將資訊儲存為連續四位元組(例如,32位元)部分之實例系統中,有可能部分[11:2]提供對適當的32位元字之位址的所需偏移量。
頁表條目亦可提供是否已對頁寫入(所謂的「髒位元」)之指示、何時最後使用(「被存取位元」)以便允許快取記憶體逐出或其類似者(及視情況的其他參數)之指示。
以此方式使用頁表提供了一個實例,其中適用於給定的第一記憶體位址之轉譯的轉譯資訊包括轉譯資訊條目之階層架構,其中表示下一個轉譯資訊條目之轉譯資訊位址的資料係由前一個轉譯資訊條目指示。舉例而言,表示下一個轉譯資訊條目之轉譯資訊位址的資料可指示適用於下一個轉譯資訊條目之第一記憶體位址;且轉譯電路系統可經配置以執行轉譯操作以便產生相應的轉譯資訊位址。 兩階段MMU概述
在所謂的兩階段MMU中,仍將VA轉譯為PA,但係經由兩階段進程進行的,其中將VA轉譯為所謂的中間實體位址(intermediate physical address; IPA),繼而將其轉譯為所需要之PA。TTBR_EL1查找及階段1 MMU頁表查找提供了IPA而非PA,且彼些IPA中之每一者必須經歷階段2轉譯,直至查找下一個頁表條目。
出於各種原因而使用兩階段MMU,諸如,為了在處理元件及/或在彼處理元件上執行之進程與整個系統所提供的實體記憶體之間提供進一步的隔離。舉例而言,自VA至IPA之轉譯可根據由作業系統建立並控制之頁表(轉譯資訊條目),例如,在第一安全性級別上,諸如,所謂的異常級別1(EL1)。可更安全地處理自IPA至PA之轉譯,例如,在異常級別的階層架構中之更高的安全性或異常級別(諸如,EL2)上之所謂超管理器的控制下,以使得EL1上之操作無法存取與EL2相關聯之系統資源。
此佈置之一個效果在於,如第9圖中所繪示之每一個別階段現需要從轉譯表基址暫存器TTBR_EL1所表示之IPA至PA的進一步轉譯,以存取實體記憶體中之下一個轉譯資訊條目。
因此,參考第10圖,在接收到要轉譯之VA 1000之後,在EL1上存取階段1 TTBR條目1010。此產生了第一轉譯資訊條目1020之IPA。然而,此IPA 1010必須由階段2 MMU轉譯為PA 1015,以便存取實體記憶體中之條目1020。轉譯為PA涉及在EL2上查閱階段2 TTBR,及執行多階段頁表走查以產生資訊1015,該資訊1015在與VA 1000之位元組合時會提供下一個轉譯表條目1020之完整實體位址。頁表之階層架構中的每個級別皆需要類似處理,以便產生有效的TLB條目1030。 涉及GPT檢查之兩階段MMU
現轉向第11圖,繪示一系列操作,如在兩階段MMU中所涉及,其中由GMPU在兩階段GMPU操作L0GPT及L1GPT中為每個實體位址存取獲得權限資訊。
假定第11圖中所繪示之每個操作(即,用於VA轉譯之表查找、用於IPA轉譯之表查找,及藉由GMPU進行之權限查找)皆需要記憶體存取,則第11圖之進程中所涉及的存取次數可能很大。
注意,在第11圖及以下論述之一些其他實例中,將GMPU檢查稱作「階段3 GMPU」。此術語說明,其遵循MMU轉譯之最後階段,且即使在單階段MMU之情形下亦使用該術語。 涉及GPT檢查之單階段MMU
第12圖中示意性地繪示一種類似佈置,但係針對單階段MMU配置,其中TTBR存取及四頁表存取中之每一者有可能需要對L0GPT及L1GPT之兩次另外記憶體存取。 記憶體存取成本
假設「冷」(最初未被填充)TLB,則可導出各種配置中所需之記憶體存取次數之估計值。在以下實例中,作出(若干)頁表具有四個級別之工作假設,但應注意,本發明實施例適用於各種不同深度或級別數目之頁表結構(且對於較大級別數目,成本可向上變化,或對於較小級別數目,成本可向下變化,儘管相對於本揭示案之實例實施例而言,仍為淨成本)。四級別頁表結構之相關數字如下:
單階段MMU 無GPT檢查 (第9圖) 4
完全GPT檢查 (第12圖) 14
兩階段MMU 無GPT檢查 (第10圖) 24
完全GPT檢查 (第11圖) 74
完全或部分取消及/或推遲對MMU存取之GMPU檢查
有可能在實例實施例中,對於MMU之某些操作,省略或「取消」(對應名詞:取消)GMPU檢查的至少部分。在其他實例中,可推遲GMPU檢查的至少部分。在任一情形下,可在對應GMPU檢查完成之前使用操作結果,因為其啟動推遲了或因為其從未啟動過。
可對一些而非全部存取執行取消及/或推遲(亦即,可選擇性地執行),例如,如在以下所描述之實施例中論述。其可由MMU請求或指示,例如,使用控制信號21,或可由GMPU根據MMU正在發起哪種類型之記憶體存取來控制(其再次可視情況經由連接21來利用控制資訊)。在此些實例中,存取電路系統可因此選擇性地允許存取,即使係在(完整或部分)GMPU檢查尚未完成時如此。
在推遲之實例中,可能權限電路系統經配置以推遲發起用以偵測下一個轉譯資訊條目之權限資訊的操作,直至發起對該下一個轉譯資訊條目的存取之後。
在至少一些實例中,此些操作係關於MMU對轉譯資訊之讀取操作,或此些讀取操作中之至少一些。此提供了存取電路系統之實例,該存取電路系統經配置而當對轉譯資訊位址之存取與讀取存取有關時,在權限電路系統尚未完成偵測權限資訊之操作的情況下存取彼轉譯資訊位址;且該存取電路系統經配置而當對轉譯資訊位址之存取與寫入存取有關時,僅在權限資訊指示准許針對彼轉譯資訊位址之記憶體存取時,存取彼轉譯資訊位址。
作為論述此些實例實施例之背景,應注意,MMU實際上並不需要由GMPU自GPT提供之資訊來形成正確的頁表存取。以下將論述關於此態樣之技術。
MMU硬體本身可受信任,使得主機或其他軟體不可見MMU所讀取之已儲存內容,亦即,轉譯資訊之個別例項僅在MMU中使用,且不作為輸出提供給外部硬體或軟體。在(至少部分地)取消GPT檢查之情形中,此可提供一個實例,其中權限電路系統經配置而不執行用以偵測關於轉譯資訊位址中之至少一些的權限資訊之操作;且轉譯電路系統經配置而不提供(作為在轉譯電路系統之外的電路系統之輸出)自轉譯資訊位址擷取之關於用以偵測權限資訊的操作尚未完成之轉譯資訊。
注意,在第11圖及第12圖中所示之佈置中,由記憶體存取次數引起之主要效能影響與藉由MMU進行之讀取操作有關。MMU之寫入操作某種程度上不太常見(例如,寫入至頁表中之頁描述符的被存取位元或髒位元),且儘管至少在原理上,此處所述類型之取消可應用於寫入操作及讀取操作,但在以下將描述之實例實施例中,取消限於讀取操作。此具有潛在益處:允許某些MMU讀取操作在未完成GMPU檢查的情況下繼續進行之安全性風險被認為比與允許MMU在未完成適當GMPU檢查的情況下寫入資料相關聯之安全性風險要低一些。因此,在至少實例實施例中,無論由MMU還是由整個系統之任何其他態樣所發起之所有對記憶體的寫入,限制為僅在藉由完整GMPU檢查佈置驗證時才被允許。 安全性特徵
為了藉由允許取消及/或推遲對轉譯資訊之MMU讀取存取的GMPU檢查來避免或至少減輕安全性風險,可由硬體設計來提供如下安全性特徵,即: (a)外部硬體及軟體不具有對MMU所讀取之資料的直接存取。 換言之,(在實例實施例中)保證讀入MMU之任何資料值保持在MMU內私有。可視情況應用(單獨地或集體地)之其他實例措施如下: (b)      完全解決了轉譯故障及其類似者,且將關於頁表(轉譯資訊)存取而發生之任何細微性保護故障報告給在EL3上運行之進程。此提供了一個實例,其中轉譯電路系統經配置以當轉譯電路系統對轉譯資訊之使用未提供有效位址轉譯時偵測關於給定轉譯操作之轉譯故障;且回應於偵測到轉譯故障,轉譯電路系統經配置以控制權限電路系統以執行用以偵測關於作為給定轉譯操作之部分而存取之任何轉譯資訊位址的權限資訊之操作。 (c)      記憶體加密及解密可就位,其中(例如)每個界或領域具有單獨的密鑰及/或演算法,例如,藉由第6圖或第7圖之技術實現。此可緩解所謂的轉譯行為之側通道分析。 (d)      禁止頁表走查進程對輸入/輸出位址空間之讀取存取。此可藉由僅取消部分GMPU檢查但保留GMPU檢查之關於與每一位址相關聯之記憶體類型的部分來實現,例如,藉由提供L0GPT檢查但取消或推遲L1GPT檢查實現,以使得僅允許對不具有如上所述「副作用」之記憶體區域進行MMU存取。以下將論述此技術之實例。 (e)      限制對MMU讀取存取之取消及/或推遲(亦即,為藉由MMU之寫入存取提供完整的GMPU檢查) 快取及記憶體存取
在上述實例中所示之快取記憶體24中的快取儲存中,嘗試使用(例如)非安全的PAS標籤存取安全的快取行將甚至不會觀察到快取記憶體中之彼PA。
若使用「錯誤」PAS將資料寫入至快取記憶體中,則其為良性的,因為無法隨後對其進行存取或將其寫回至主記憶體中。實情為,其將只保留在快取記憶體中,直至被快取記憶體本身操作之常規快取管理及逐出策略覆寫為止。
由早先所論述並在以上(c)點所提及之加密佈置提供更高級別的安全性。此使用了與每一PAS相關聯之記憶體加密,使得若「錯誤」PAS標籤與PA相關聯,則可嘗試解密特定位址處之記憶體內容,但彼嘗試將會失敗。
此些佈置提供了一個實例,其中快取記憶體將相應區域標識符與快取記憶體所保存之每一資料項相關聯;且快取記憶體經配置以回應於與指示不同的區域標識符之資料相關聯的記憶體存取而禁止對與給定的區域標識符相關聯之資料項的存取。 實例-單階段,取消L1GPT檢查
在第13圖中,對於對PA之每次建議存取,執行0級GPT檢查(L0GPT),以偵測如上所述之記憶體區域類型,且尤其係該記憶體區域是否在讀取操作本身更改儲存在彼位址處之資料方面與可在無「副作用」的情況下讀取之輸入/輸出設備或記憶體有關。
如上所述,此特定檢查所需之GPT資料可能相對緊湊,例如,每GB一個資料項,且因而在實例佈置中,其在MMU所維護之定製快取記憶體中或在系統快取記憶體中被快取,使得獲得特定記憶體存取之L0GPT資料時的效能損失相對低。
然而,在第13圖之實例中,對單階段MMU操作中所涉及之所有記憶體存取(除了導致TLB條目的填充之最終階段以外)省略或取消L1GPT檢查。
因此,此佈置允許對尚未經歷L1GPT檢查之資料進行推測性加載。為了此情形能發生,可假設用於資料存取之PAS標籤值,例如,藉由GMPU將預設PAS標籤與存取相關聯。在其他實例中,頁表走查之PAS標籤可直接自與該頁表相關聯之「安全性狀態」導出,視情況與階段1或階段2頁表中之(可選)位元組合(該位元稱為「NS」以指示狀態是否「非安全」)。因此,在此些實例中,不需要GPT來提交正確的頁表存取(例如,藉由本發明技術發起)。根據以上提供之表格,此些實例中之GMPU僅需要驗證PAS標籤為「允許」用於安全性狀態的標籤。
提供最終檢查以驗證要填充至TLB條目中之最終位址。
在第13圖與第12圖之比較中,潛在的節省約為在產生位址轉譯時進行四次記憶體存取,而在第12圖之佈置中係需要進行14次。在實例佈置中,其餘記憶體存取中之五次可能關於快取L0GPT資料。
L0GPT檢查之此使用提供了一個實例,其中存取電路系統經配置以在權限電路系統尚未完成用以偵測權限資訊之操作的情況下存取轉譯資訊位址,該權限資訊指示是否僅當適用於轉譯資訊位址之儲存類型為上述第一儲存類型(且非(例如)第二儲存類型,諸如,有可能遭受「副作用」之儲存類型)時才准許對彼轉譯資訊位址之記憶體存取。 實例-兩階段,取消L1GPT檢查
第14圖示出與第11圖之佈置類似的佈置,但再次取消了L1GPT檢查,除了導致TLB條目的填充之最後一個以外。此可將上述74次存取減少24次,其中其餘存取中之25次係關於快取L0GPT資料。 禁用取消
視情況,若由於頁表存取而引起故障或引起某些類型之故障(諸如,一般保護故障),則EL3上之代碼可禁用取消。
視情況,若發生轉譯或其他故障,則EL3處之代碼可能需要待關於MMU轉譯重新執行的完整GPT檢查。 其他實例-單階段,推遲L1GPT檢查
第15圖及第16圖提供推遲之檢查,其中兩種佈置均允許MMU加載帶有假設PAS標籤之未經檢查的資料。注意,第15圖及第16圖均關於(出於論述實例之目的)單階段MMU操作,但對應技術可用於兩階段MMU操作。注意,未示出與第15圖及第16圖有關之L0GPT檢查,但假設其在將相關位址用於記憶體存取之前發生。
在第15圖中,在完成由TTBR_EL1提供之頁表基址的L1GPT檢查1505之前,執行L0頁表存取1500。在所示實例中,兩次存取大致在同一時間開始,但使用此技術僅需要在相關資訊實際上用以在1500處存取頁表之第一級時檢查1505尚未完成。
第15圖之實例在一些實例中強加一個要求:在可使用或快取所得資料之前,對假設與讀取存取相關聯之PAS進行驗證。此由表示GPT檢查點之垂直虛線1510來表示。換言之,自L0頁表存取1500讀取之資料將不再被使用,直至本身驗證獲得該資料所經由之位址(即,TTBR_EL1中之頁表基址)為止。
類似地,可在步驟1525驗證L1頁表條目存取1520之位址(存取1500之輸出)之前啟動L1頁表條目存取1520,但在第15圖之實例中,存取1520所讀取之下一級位址資訊本身無法在後續存取1530中使用,直至關於執行存取1520所經由的位址之L1GPT檢查1525本身完成為止。
第15圖之佈置在一些實例中可由GPT L1檢查之雙重或並行的發佈及下一頁表條目讀取操作(例如,存取1505及1500之並行或雙重發佈)來實施。此意謂在未完全檢查其位址並帶有假設PAS的情況下執行頁表條目讀取操作。然而,藉由在讀取完成後提供GPT檢查點(諸如,檢查點1510),可同步處置由於讀取所謂的「壞」資料而導致之任何記憶體存取故障或轉譯故障,因為其發生在與之有關的MMU操作上或回應於該MMU操作而發生。次要推測性頁表條目讀取並不自未經檢查的資料發佈,此可有助於避免快取側通道攻擊或其他問題。
在第15圖中之GPT檢查點處,可執行存取/髒位元更新(注意,如上所述,在實例實施例中,MMU所進行之任何寫入操作在實施之前皆需要完整的L1GPT檢查),且可填充TLB及走查快取記憶體。
在第16圖中示意性地示出之另一佈置中,再次准許加載或讀取帶有假設PAS值之未經檢查的資料,且加載之資料值本身可用作後續加載操作之輸入。然而,在可提交或快取最終資料之前,藉由完成相應的L1GPT檢查來驗證假設PAS值。
參考第16圖,在第一讀取操作1600中使用由TTBR_EL1提供之頁表基址,其結果可在第二讀取操作1610中使用,依此類推,直至與第四頁表走查操作有關之第四讀取操作1620。單獨地,發起L1GPT檢查鏈,以使得由TTBR_EL1提供之基址經歷L1GPT檢查1605,並假設此檢查在檢查點1607處通過,則進行關於讀取操作1600之輸出的第二L1GPT檢查1615是否通過1617的偵測。L1GPT檢查鏈繼續進行至自操作1620讀取之位址或位址部分的L1GPT檢查1625,其中檢查1625的通過1627為(a)TLB條目1630之填充及在經轉譯位址處預獲取資料1640的條件。
如上,在第16圖中之GPT檢查點處,可執行存取/髒位元更新(注意,如上所述,在實例實施例中,MMU所進行之任何寫入操作在實施之前皆需要完整的L1GPT檢查),且可填充TLB及走查快取記憶體。 兩階段MMU實例
在兩階段MMU中,此處所述之任何技術皆可單獨應用於一個階段,而不能應用於另一階段(無論哪種方式),或可應用於該兩個階段。 其他實例
選擇性允許存取之另一實例如下。
權限電路系統可選擇或受轉譯電路系統控制而選擇針對每一PTE存取(或針對PTE存取之子群)的單獨佈置,換言之,推遲、取消或保留(不推遲或取消)對應的完整或部分的權限檢查。
作為實例,對於其中啟用階段1及階段2之情形,權限電路系統可經配置以(自行選擇或在轉譯電路系統的控制下選擇): •       對於每個階段1的MMU讀取操作,在階段1的讀取之前執行對應的權限檢查,或推遲其完成至不遲於結果用以驅動後續階段2的讀取的一點; •       對於最後的階段2讀取操作(其獲得定義所請求之記憶體位址轉譯之輸出位址的資料),在階段2讀取之前執行權限檢查,或推遲其完成至不遲於在提交或另外使用輸出位址之前的一點; •       對於所有其他階段2讀取操作:取消權限電路系統檢查。
此實施可禁止攻擊者使用由攻擊者控制之階段2表作為幽靈狀之啟示性攻擊,該攻擊可能會洩露被取消之階段1檢查的內容。
更一般而言,可使用不同的取消及/或推遲模式,例如,隨機或偽隨機模式。 實例技術之概述
如以上所論述,各種實例佈置至少設想了以下選項及變體,其皆在如由附加申請專利範圍限定之本揭示案的範疇內: a)       完全或部分取消或省略至少一些權限資訊(例如,GPT)檢查(例如,第13圖、第14圖) b)       繼續進行轉譯資訊(例如,PTE)存取並同時啟動GPT檢查,或至少使得GPT檢查在發起PTE存取時尚未完成 c)       如(b),其中在對下一個MMU操作使用PTE存取之前(例如,在使用自彼PTE存取擷取之資訊發起下一次PTE存取之前)需要對彼PTE存取之GPT檢查的結果(例如,第15圖) d)       如(b),但其中在提交結果之前(例如,在發起任何結果(諸如,TLB條目)的寫入或經轉譯位址的獲取之前)需要對彼PTE存取之GPT檢查的結果(例如,第16圖) e)       如(b)至(d)中之任一者,其中GPT檢查的一部分(諸如,L0GPT)係在相關PTE存取之前執行的,但GPT檢查之其餘部分(實例中之L1GPT)係具有推遲完成之部分
(c)之實例為所謂的「鎖定步驟」變體,其中與頁表走查之記憶體存取並行地發起GPT檢查,但GMPU檢查本身被推遲至在彼記憶體存取的結果被使用(例如,用於驅動下一走查)之前的一點 概括方法
第17圖為繪示一種方法之示意性流程圖,該方法包括: 執行(在步驟1700處)轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,包括取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生經轉譯之第二記憶體位址; 執行(在步驟1710處)用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作; 當權限資訊指示准許對給定的第二記憶體位址之記憶體存取時,存取(在步驟720處)儲存在給定的第二記憶體位址處之資料;以及 在權限電路系統尚未完成用以偵測權限資訊以指示是否准許對轉譯資訊位址之記憶體存取之操作的情況下存取(在步驟1730處)彼轉譯資訊位址。 概括裝置特徵
根據以上所論述技術操作之第1圖及第3圖的佈置提供了一種裝置之實例,該裝置包括: 轉譯電路系統16(50,52),用以執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,其中該轉譯電路系統經配置以取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生經轉譯之第二記憶體位址; 權限電路系統20、22,用以執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作;以及 存取電路系統20,用以當權限資訊指示准許對給定的第二記憶體位址之記憶體存取時,存取儲存在給定的第二記憶體位址處之資料;以及 該存取電路系統經配置而在權限電路系統尚未完成用以偵測權限資訊以指示是否准許對轉譯資訊位址之記憶體存取之操作的情況下存取彼轉譯資訊位址。
在實例佈置中,轉譯電路系統16在記憶體存取異動方面可操作,每一記憶體存取異動皆與用於轉譯之第一記憶體位址相關聯,轉譯電路系統將經轉譯之第二記憶體位址與每一記憶體存取異動相關聯;以及
權限電路系統20經配置以針對每一記憶體存取異動(例如,L1GPT檢查1300、1400、1532、1625)執行用以偵測關於經轉譯之第二記憶體位址的權限資訊之操作,存取電路系統經配置而僅當權限資料准許對彼經轉譯之第二記憶體位址的存取時,為記憶體存取異動提供對經轉譯之第二記憶體位址的存取之結果。 模擬器實施
第18圖繪示可使用之模擬器實施。雖然前述實施例在用於操作支援相關技術之特定處理硬體的裝置及方法方面實施了本發明,但亦有可能根據本文所述實施例來提供指令執行環境,該指令執行環境是經由使用電腦程式來實施。可時常將此些電腦程式稱作模擬器,只要其提供硬體架構的基於軟體之實施即可。模擬器電腦程式之種類包括模擬機、虛擬機、模型,及二進位轉譯器,包括動態二進位轉譯器。通常,模擬器實施可在主機處理器1430上運行,該主機處理器1430視情況運行主機作業系統1420,該主機作業系統1420支援模擬器程式1410。在一些佈置中,在硬體與所提供之指令執行環境及/或被提供在同一主機處理器上之多個不同的指令執行環境之間可能存在多個模擬層。從歷史上看,需要強大之處理器來提供以合理速度執行之模擬器實施,但在某些情境下此方法可能是合理的,諸如,當出於相容性或重複使用原因而期望操作原生於另一處理器之代碼時。舉例而言,模擬器實施可提供具有額外功能(主機處理器硬體不支援該額外功能)之指令執行環境,或提供通常與不同硬體架構相關聯之指令執行環境。在「一些高效架構模擬技術(Some Efficient Architecture Simulation Techniques)」(Robert Bedichek,1990年冬天的USENIX會議,第53-63頁)中給出模擬之概述。
鑒於先前已參考特定硬體構造或特徵描述了實施例,在模擬實施例中,可藉由適當軟體構造或特徵提供等效功能。舉例而言,可在模擬實施例中將特定電路系統實施為電腦程式邏輯。類似地,可在模擬實施例中將諸如暫存器或快取記憶體之記憶體硬體實施為軟體資料結構。在其中前述實施例中所引用之硬體元件中的一或更多者存在於主機硬體(例如,主機處理器1430)上之佈置中,一些模擬實施例可在適當情況下利用主機硬體。
可將模擬器程式1410儲存在電腦可讀儲存媒體(其可為非暫時性媒體)上,且該模擬器程式1410提供至目標代碼1400(其可包括應用程式、作業系統及超管理器)之程式介面(指令執行環境),該程式介面與藉由模擬器程式1410模型化之硬體架構的介面相同。因此,可使用模擬器程式1410自指令執行環境內執行目標代碼1400之程式指令,以使得並不實際上具有上述裝置2之硬體特徵的主機電腦1430可模擬此些特徵。例如此可用於允許在實際支援處理器架構之硬體設備尚不可用之前,允許對正在針對彼架構的新版本開發之目標代碼1400進行測試,因為可藉由在不支援彼架構之主機設備上執行的模擬器內運行來測試目標代碼。
模擬器代碼包括處理程式邏輯1412,其模擬處理電路系統10之行為,例如,包括指令解碼程式邏輯,其解碼目標代碼1400之指令,並將該等指令映射至主機硬體1430所支援之本機指令集中的對應指令序列,以執行與已解碼指令等效之功能。處理程式邏輯1412亦模擬處於如上所述之不同異常級別及域中之代碼的處理。暫存器模擬程式邏輯1413在主機處理器之主機位址空間中維護資料結構,其模擬根據與目標代碼1400相關聯之目標指令集架構定義的架構暫存器狀態。因而,不是此架構狀態如第1圖之實例中那樣被儲存在硬體暫存器12中,其實際上被儲存在主機處理器1430之記憶體中,其中暫存器模擬程式邏輯1413將目標代碼1400之指令的暫存器引用映射至對應的位址,用於自主機記憶體獲得模擬的架構狀態資料。此架構狀態可包括早先所述之當前域指示符14及當前異常級別指示符15。
模擬代碼包括位址轉譯程式邏輯1414及過濾程式邏輯1416,其分別模擬位址轉譯電路系統16及PAS過濾器20之功能,參考如早先所述之相同的頁表結構及GPT 56。因而,位址轉譯程式邏輯1414將目標代碼1400所指定之虛擬位址轉譯為在PAS(自目標代碼的角度,其代表記憶體中之實體位置)中之一者中的模擬實體位址,但實際上此些模擬實體位址被位址空間映射程式邏輯1415映射至主機處理器之(虛擬)位址空間上。過濾程式邏輯1416執行對細微性保護資訊之查找,以便以與上述PAS過濾器相同的方式確定是否允許進行由目標代碼觸發之記憶體存取。
因此,第18圖之佈置提供了一種電腦程式之實例,該電腦程式用於控制主機資料處理裝置以提供用於執行目標代碼之指令執行環境;該電腦程式包括: 轉譯邏輯,用以執行轉譯操作,以在第二記憶體位址空間內產生經轉譯之第二記憶體位址,作為第一記憶體位址空間內之第一記憶體位址的轉譯,其中該轉譯邏輯經配置以取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生經轉譯之第二記憶體位址; 權限邏輯,用以執行用以偵測權限資訊以指示對於給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的操作;以及 存取邏輯,用以當權限資訊指示准許對給定的第二記憶體位址之記憶體存取時,存取儲存在給定的第二記憶體位址處之資料; 該存取邏輯經配置而在權限邏輯尚未完成用以偵測權限資訊以指示是否准許對轉譯資訊位址之記憶體存取之操作的情況下選擇性地允許由轉譯邏輯對彼轉譯資訊位址之存取。
在本申請案中,詞語「經配置以……」用以意謂裝置之元件具有能夠執行所定義操作的配置。在此上下文中,「配置」意謂硬體或軟體之互連的佈置或方式。舉例而言,裝置可具有提供已定義操作之專用硬體,或處理器或其他處理元件可經程式化以執行該功能。「經配置以……」並不暗指裝置元件需要以任何方式改變以提供已定義操作。
儘管本文中已參考隨附圖式詳細描述了本發明之說明性實施例,但應理解,本發明並不限於彼些精確實施例,且熟習此項技術者可在不脫離如由附加申請專利範圍所限定之本發明的範疇的情況下在其中作出各種改變及修改。
2:資料處理系統 4:請求者設備 6:完成者設備 8:互連件 10:處理電路系統 12:暫存器 14:當前域指示符 15:當前異常級別指示符 16:位址轉譯電路系統 18:轉譯旁看緩衝器(TLB) 20:PAS過濾器 21:信號 22:細微性保護資訊快取記憶體 24:快取記憶體 29:監控器代碼 30:應用程式代碼 32:作業系統(OS)代碼 34:超管理器代碼 36:受信任應用程式 38:受信任作業系統 40:安全分區管理器 42:應用程式級領域 44:封裝應用程式/作業系統領域 46:領域管理模組(RMM) 50:階段1記憶體管理單元 52:階段2記憶體管理單元 54:安全屬性 56:細微性保護表 60:實體混疊點 61:實體位址空間 62:數值範圍 63:混疊實體位址 64:系統實體位址空間 65:去混疊位址 70:區域 80:異常級別 82:根域 84:安全(S)域 86:次安全(S)域 88:領域域 600:實體記憶體 610:加密/解密電路系統 612:加密/解密電路系統 614:加密/解密電路系統 616:加密/解密電路系統 620:控制/選擇電路系統 700:加密/解密電路系統 710:控制電路系統 800:步驟 810:步驟 820:步驟 830:步驟 900:虛擬位址(VA) 910:有效TLB條目 920:位址 930:第一轉譯資訊條目 935:位址 940:轉譯資訊條目 945:位址 950:條目 955:位址 960:最終轉譯資訊條目 1000:VA 1010:階段1 TTBR條目 1015:PA 1020:第一轉譯資訊條目 1030:TLB條目 1300:L1GPT檢查 1400:L1GPT檢查 1410:模擬器程式 1412:處理程式邏輯 1413:暫存器模擬程式邏輯 1414:位址轉譯程式邏輯 1415:位址空間映射程式邏輯 1416:過濾程式邏輯 1420:主機作業系統 1430:主機處理器 1500:L0頁表存取 1505:L1GPT檢查 1510:檢查點 1520:L1頁表條目存取 1525:L1GPT檢查 1530:後續存取 1532:L1GPT檢查 1600:第一讀取操作 1605:L1GPT檢查 1607:檢查點 1610:第二讀取操作 1615:第二L1GPT檢查 1617:通過 1620:第四讀取操作 1625:L1GPT檢查 1627:通過 1630:TLB條目 1640:資料 1700:步驟 1710:步驟 1720:步驟 1730:步驟
僅藉助於實例,將參考如在隨附圖式中所繪示之本發明技術的實施例來進一步描述本發明技術。
第1圖繪示資料處理裝置之實例。
第2圖繪示處理電路系統可在其中操作之諸多域。
第3圖繪示支援細微性保護查找之處理系統的實例。
第4圖示意性地繪示將諸多實體位址空間混疊至標識記憶體系統中的位置之系統實體位址空間上。
第5圖繪示將有效硬體實體位址空間分區以使得不同的架構性實體位址空間可存取系統實體位址空間之相應部分的實例。
第6圖及第7圖示意性地繪示資料加密及解密。
第8圖示意性地繪示實例記憶體管理單元(memory management unit; MMU)操作之態樣。
第9圖示意性地繪示單階段MMU。
第10圖示意性地繪示兩階段MMU。
第11圖及第12圖示意性地分別繪示具有細微性保護操作之兩階段MMU及單階段MMU的操作。
第13圖示意性地繪示單階段MMU,其中至少部分取消細微性保護操作。
第14圖示意性地繪示兩階段MMU,其中至少部分取消細微性保護操作。
第15圖及第16圖示意性地繪示MMU操作,其中推遲細微性保護操作。
第17圖為繪示方法之示意性流程圖。
第18圖示出可使用之模擬器實例。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
1300:L1GPT檢查

Claims (20)

  1. 一種用於資料處理的裝置,包括:轉譯電路系統,用以執行一轉譯操作,以在一第二記憶體位址空間內產生一經轉譯之第二記憶體位址,作為一第一記憶體位址空間內之一第一記憶體位址的一轉譯,其中該轉譯電路系統經配置以取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生該經轉譯之第二記憶體位址;權限電路系統,用以執行用以偵測權限資訊以指示對於一給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的一操作;以及存取電路系統,用以當該權限資訊指示准許對該給定的第二記憶體位址之記憶體存取時,存取儲存在該給定的第二記憶體位址處之資料;該存取電路系統經配置而在該權限電路系統尚未完成用以偵測權限資訊以指示是否准許對一轉譯資訊位址之記憶體存取之該操作的情況下選擇性地允許由該轉譯電路系統對彼轉譯資訊位址之存取。
  2. 如請求項1所述之裝置,其中:該存取電路系統經配置而當針對一轉譯資訊位址之該存取與一讀取存取有關時,在該權限電路系統尚未完成用以偵測權限資訊之該操作的情況下選擇性地允許由該轉譯電路系統對彼轉譯資訊位址之存取;以及該存取電路系統經配置而當對一轉譯資訊位址之該存 取與一寫入存取有關時,僅當該權限資訊指示准許對彼轉譯資訊位址之記憶體存取時允許對彼轉譯資訊位址之存取。
  3. 如請求項1或2所述之裝置,其中該權限電路系統經配置以執行用以偵測適用於一給定第二記憶體位址之一儲存類型的另一操作,該儲存類型至少確定一第一儲存類型還是一第二、不同的儲存類型適用於該給定第二記憶體位址。
  4. 如請求項3所述之裝置,其中該存取電路系統經配置而僅當適用於該轉譯資訊之該儲存類型為該第一儲存類型時,在該權限電路系統尚未完成用以偵測權限資訊以指示是否准許對一轉譯資訊位址之記憶體存取之該操作的情況下,選擇性地允許由該轉譯電路系統對彼轉譯資訊位址之存取。
  5. 如請求項4所述之裝置,其中該第一儲存類型為對其而言儲存在一給定位址處之該資料不會被自該給定位址之一讀取操作更改的一種儲存類型。
  6. 如請求項1或2所述之裝置,其中:該權限電路系統經配置而不執行用以偵測關於該等轉譯資訊位址中之至少一些的權限資訊之該操作;以及該轉譯電路系統經配置而不作為在該轉譯電路系統之外的電路系統之一輸出來提供自一轉譯資訊位址擷取之關於用以偵測權限資訊的該操作尚未完成之轉譯資訊。
  7. 如請求項1或2所述之裝置,其中適用於一 給定第一記憶體位址之轉譯的該轉譯資訊包括轉譯資訊條目之一階層架構,其中表示下一個轉譯資訊條目之一轉譯資訊位址的資料係由前一個轉譯資訊條目指示。
  8. 如請求項7所述之裝置,其中:表示下一個轉譯資訊條目之一轉譯資訊位址的該資料指示適用於該下一個轉譯資訊條目之一第一記憶體位址;以及該轉譯電路系統經配置以執行該轉譯操作以便產生一相應的轉譯資訊位址。
  9. 如請求項7所述之裝置,其中該權限電路系統經配置以推遲發起用以偵測下一個轉譯資訊條目之權限資訊的該操作,直至發起對彼下一個轉譯資訊條目的存取之後。
  10. 如請求項1或2所述之裝置,其中:該轉譯電路系統在記憶體存取異動方面可操作,每一記憶體存取異動皆與用於轉譯之一第一記憶體位址相關聯,該轉譯電路系統將一經轉譯之第二記憶體位址與每一記憶體存取異動相關聯;以及該權限電路系統經配置以針對每一記憶體存取異動執行用以偵測關於該經轉譯之第二記憶體位址的權限資訊之該操作,該存取電路系統經配置而僅當該權限資料准許對彼經轉譯之第二記憶體位址的存取時,為一記憶體存取異動提供對該經轉譯之第二記憶體位址的一存取之結果。
  11. 如請求項1或2所述之裝置,其中:該第一記憶體位址包括一虛擬記憶體位址及一中間實體位址中之一者;以及該第二記憶體位址包括一中間實體位址或一實體記憶體位址。
  12. 如請求項11所述之裝置,包括具有複數個記憶體分區之一記憶體,每一資料記憶體分區與一分區標識符相關聯,且具有在一實體位址空間內之一相應的實體位址範圍。
  13. 如請求項12所述之裝置,其中該權限電路系統若經配置,作為用以偵測權限資訊之該操作:偵測與一第二記憶體位址相關聯之一區域標識符,該區域標識符係選自複數個區域標識符,每一區域標識符用以指示存取該等記憶體分區之一相應集合的權限,其中對於該等區域標識符中之至少一者而言,該等記憶體分區之該相應集合包括該等記憶體分區中之一或更多者但非全部的一子集;以及比較該偵測到之區域標識符與和該第二記憶體位址相關聯之一分區標識符。
  14. 如請求項12所述之裝置,包括:加密及解密電路系統,用以加密要由該記憶體儲存之資料及用以解密自該記憶體擷取之資料;其中該加密及解密電路系統經配置以將一組加密及對應解密中之一相應加密及對應解密應用於每一記憶體分 區,該組加密及對應解密使得由針對一給定記憶體分區之該相應加密所加密至彼記憶體分區的資料無法藉由向另一記憶體分區應用該解密而被解密。
  15. 如請求項14所述之裝置,其中該權限電路系統經配置以與一經轉譯的第二記憶體位址相關聯,資料指示與該經轉譯的第二記憶體位址相關聯之區域標識符。
  16. 如請求項15所述之裝置,其中該加密及解密電路系統經配置以藉由應用根據指示與一經轉譯的第二記憶體位址相關聯之該區域標識符的該資料所選擇之一解密來應用一解密以解密在彼經轉譯的第二記憶體位址處自該記憶體擷取之資料。
  17. 如請求項15所述之裝置,包括一或更多個快取記憶體以保存自該記憶體擷取之資料及/或用於將資料儲存至該記憶體;該快取記憶體使該相應的區域標識符與該快取記憶體所保存之每一資料項相關聯;該快取記憶體經配置以回應於與指示一不同區域標識符之資料相關聯的一記憶體存取而禁止對與一給定區域標識符相關聯之一資料項的存取。
  18. 如請求項1或2所述之裝置,其中:該轉譯電路系統經配置而當該轉譯電路系統對該轉譯資訊的使用未提供一有效位址轉譯時偵測關於一給定轉譯操作之一轉譯故障;以及 回應於偵測一轉譯故障,該轉譯電路系統經配置以控制該權限電路系統執行用以偵測關於作為該給定轉譯操作的一部分而存取之任何轉譯資訊位址的權限資訊之該操作。
  19. 如請求項1或2所述之裝置,其中:一處理器用以用選自異常級別之一階層架構的一主要異常級別來執行程式指令,每一異常級別與安全性特權相關聯,以使得以一較高異常級別執行之指令可存取以一較低異常級別執行之指令所不可存取的資源;其中需要該處理器以該等異常級別中之一最高者來執行指令,以便設定該權限電路系統自其偵測權限資訊之資料。
  20. 一種藉由一資料處理系統執行的方法,包括以下步驟:執行一轉譯操作,以在一第二記憶體位址空間內產生一經轉譯之第二記憶體位址,作為一第一記憶體位址空間內之一第一記憶體位址的一轉譯,包括取決於儲存在一或更多個轉譯資訊位址處之轉譯資訊而產生該經轉譯之第二記憶體位址;執行用以偵測權限資訊以指示對於一給定的第二記憶體位址而言是否准許對該給定的第二記憶體位址之記憶體存取的一操作;當該權限資訊指示准許對該給定的第二記憶體位址之記憶體存取時,存取儲存在該給定的第二記憶體位址處 之資料;以及在該權限電路系統尚未完成用以偵測權限資訊以指示是否准許對一轉譯資訊位址之記憶體存取之該操作的情況下選擇性地存取彼轉譯資訊位址。
TW110109701A 2020-03-24 2021-03-18 裝置及方法 TWI894231B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB2004259.4A GB2593487B (en) 2020-03-24 2020-03-24 Apparatus and method
GB2004259.4 2020-03-24

Publications (2)

Publication Number Publication Date
TW202137010A TW202137010A (zh) 2021-10-01
TWI894231B true TWI894231B (zh) 2025-08-21

Family

ID=70546567

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110109701A TWI894231B (zh) 2020-03-24 2021-03-18 裝置及方法

Country Status (9)

Country Link
US (1) US11989134B2 (zh)
EP (1) EP4127950B1 (zh)
JP (1) JP7755593B2 (zh)
KR (1) KR20220156922A (zh)
CN (1) CN115335815A (zh)
GB (1) GB2593487B (zh)
IL (1) IL296346B2 (zh)
TW (1) TWI894231B (zh)
WO (1) WO2021191585A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12204461B2 (en) * 2021-06-25 2025-01-21 Intel Corporation Apparatus, system, and method for secure memory access control
US11561898B1 (en) * 2021-10-25 2023-01-24 Arm Limited Address expansion
CN118227526A (zh) * 2022-12-19 2024-06-21 华为技术有限公司 存储控制器及其控制方法、存储系统及微控制单元
GB2627483B (en) * 2023-02-24 2025-07-23 Advanced Risc Mach Ltd Predetermined less-secure memory property
GB2634239A (en) * 2023-10-03 2025-04-09 Advanced Risc Mach Ltd Controlling access to memory blocks
GB2637712A (en) * 2024-01-31 2025-08-06 Advanced Risc Mach Ltd Memory access request filtering based on requester group identifier
WO2025221375A1 (en) * 2024-04-15 2025-10-23 Qualcomm Incorporated Multiple distrusting external workloads

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170344492A1 (en) * 2016-05-26 2017-11-30 Arm Limited Address translation within a virtualised system background
TW201835777A (zh) * 2017-03-16 2018-10-01 英商Arm股份有限公司 記憶體存取監測
TW201905702A (zh) * 2017-06-28 2019-02-01 英商Arm股份有限公司 用於轉譯快取查找的領域識別符比較
TW201907308A (zh) * 2017-06-28 2019-02-16 英商Arm股份有限公司 位址轉譯資料的無效化
TW201941049A (zh) * 2018-02-02 2019-10-16 美商多佛微系統公司 用於轉換詮釋資料處理的指令的系統和方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941449B2 (en) * 2002-03-04 2005-09-06 Hewlett-Packard Development Company, L.P. Method and apparatus for performing critical tasks using speculative operations
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US8140820B2 (en) * 2008-05-21 2012-03-20 Arm Limited Data processing apparatus and method for handling address translation for access requests issued by processing circuitry
US8667225B2 (en) * 2009-09-11 2014-03-04 Advanced Micro Devices, Inc. Store aware prefetching for a datastream
US9063891B2 (en) * 2012-12-19 2015-06-23 Advanced Micro Devices, Inc. Secure computer system for preventing access requests to portions of system memory by peripheral devices and/or processor cores
JP6158952B2 (ja) * 2013-02-05 2017-07-05 エイアールエム リミテッド データ処理装置のメモリ・アクセス動作の操作
US10216927B1 (en) * 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10140216B2 (en) * 2016-01-21 2018-11-27 Arm Limited Measuring address translation latency
US10037288B2 (en) 2016-04-01 2018-07-31 Intel Corporation Memory protection at a thread level for a memory protection key architecture
GB2557588B (en) * 2016-12-09 2019-11-13 Advanced Risc Mach Ltd Memory management
GB2564097B (en) * 2017-06-28 2019-10-23 Advanced Risc Mach Ltd Memory region locking
US10437739B2 (en) * 2017-09-26 2019-10-08 Intel Corporation Low-latency accelerator
GB2574270B (en) * 2018-06-01 2020-09-09 Advanced Risc Mach Ltd Speculation-restricted memory region type
JP7053998B2 (ja) * 2018-06-06 2022-04-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法
GB2578099B (en) * 2018-10-15 2021-05-12 Advanced Risc Mach Ltd Memory access control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170344492A1 (en) * 2016-05-26 2017-11-30 Arm Limited Address translation within a virtualised system background
TW201835777A (zh) * 2017-03-16 2018-10-01 英商Arm股份有限公司 記憶體存取監測
TW201905702A (zh) * 2017-06-28 2019-02-01 英商Arm股份有限公司 用於轉譯快取查找的領域識別符比較
TW201907308A (zh) * 2017-06-28 2019-02-16 英商Arm股份有限公司 位址轉譯資料的無效化
TW201941049A (zh) * 2018-02-02 2019-10-16 美商多佛微系統公司 用於轉換詮釋資料處理的指令的系統和方法

Also Published As

Publication number Publication date
KR20220156922A (ko) 2022-11-28
US20230236987A1 (en) 2023-07-27
CN115335815A (zh) 2022-11-11
JP2023519322A (ja) 2023-05-10
TW202137010A (zh) 2021-10-01
EP4127950A1 (en) 2023-02-08
IL296346A (en) 2022-11-01
GB2593487B (en) 2022-05-04
GB202004259D0 (en) 2020-05-06
IL296346B2 (en) 2025-08-01
US11989134B2 (en) 2024-05-21
JP7755593B2 (ja) 2025-10-16
IL296346B1 (en) 2025-04-01
EP4127950B1 (en) 2023-12-13
GB2593487A (en) 2021-09-29
WO2021191585A1 (en) 2021-09-30

Similar Documents

Publication Publication Date Title
TWI894231B (zh) 裝置及方法
JP7744930B2 (ja) 変換テーブルアドレス記憶回路
JP7701936B2 (ja) グラニュール保護データのデータ完全性チェック
TWI870546B (zh) 使用複數個實體位址空間的裝置、方法、電腦程式及電腦可讀取儲存媒體
TWI867154B (zh) 使用複數個實體位址空間的裝置及方法
JP2025514845A (ja) 細分化されたメモリ領域にわたるメンテナンス動作
TW202343294A (zh) 保護域內執行環境
JP2025513363A (ja) 実行環境の不一致