TW202141284A - 使用複數個實體位址空間的裝置及方法 - Google Patents

使用複數個實體位址空間的裝置及方法 Download PDF

Info

Publication number
TW202141284A
TW202141284A TW110104176A TW110104176A TW202141284A TW 202141284 A TW202141284 A TW 202141284A TW 110104176 A TW110104176 A TW 110104176A TW 110104176 A TW110104176 A TW 110104176A TW 202141284 A TW202141284 A TW 202141284A
Authority
TW
Taiwan
Prior art keywords
physical address
address space
domain
memory
target
Prior art date
Application number
TW110104176A
Other languages
English (en)
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 TW202141284A publication Critical patent/TW202141284A/zh

Links

Images

Classifications

    • 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
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)

Abstract

位址變換電路系統16將由請求器電路系統發佈的記憶體存取請求規定的虛擬位址變換為目標實體位址(PA)。請求器側過濾電路系統20基於目標PA及與記憶體存取請求相關聯的所選擇實體位址空間(PAS)來執行顆粒保護查找,以決定是否允許將記憶體存取請求傳遞到快取記憶體或互連。在顆粒保護查找中,請求器側過濾電路系統獲得對應於包括目標PA的目標實體位址顆粒的顆粒保護資訊,該顆粒保護資訊指示與目標顆粒相關聯的至少一個經允許PAS,並且當顆粒保護資訊指示所選擇的PAS不是經允許PAS時,阻止記憶體存取請求。

Description

使用複數個實體位址空間的裝置及方法
本技術係關於資料處理領域。
資料處理系統可具有位址變換電路系統,用於將記憶體存取請求的虛擬位址變換為對應於待在記憶體系統中存取的位置的實體位址。
至少一些實例提供了一種裝置,包含:位址變換電路系統,用於將由請求器電路系統發佈的記憶體存取請求規定的目標虛擬位址變換為目標實體位址;以及請求器側過濾電路系統,用於基於目標實體位址及與記憶體存取請求相關聯的所選擇實體位址空間來執行顆粒保護查找,以決定是否允許將記憶體存取請求傳遞到快取記憶體或傳遞到互連,用於與服務記憶體存取請求的完成器裝置通訊,其中該所選擇的實體位址空間是複數個實體位址空間的一者;其中:在顆粒保護查找中,請求器側過濾電路系統經配置為:獲得對應於包括目標實體位址的目標實體位址顆粒的顆粒保護資訊,顆粒保護資訊指示與目標顆粒相關聯的至少一個經允許的實體位址空間;以及當顆粒保護資訊指示所選擇的實體位址空間不是該至少一個經允許的實體位址空間的一者時,阻止記憶體存取請求。
至少一些實例提供一種資料處理方法,包含:將由請求器電路系統發佈的記憶體存取請求規定的目標虛擬位址轉換為目標實體位址;以及在請求器側過濾電路系統處,基於目標實體位址及與記憶體存取請求相關聯的所選擇實體位址空間來執行顆粒保護查找,以決定是否允許將記憶體存取請求傳遞到快取記憶體或傳遞到互連,用於與服務記憶體存取請求的完成器裝置通訊,其中該所選擇的實體位址空間是複數個實體位址空間的一者;其中:在顆粒保護查找中,請求器側過濾電路系統:獲得對應於包括目標實體位址的目標實體位址顆粒的顆粒保護資訊,顆粒保護資訊指示與目標顆粒相關聯的至少一個經允許的實體位址空間;以及當顆粒保護資訊指示所選擇的實體位址空間不是該至少一個經允許的實體位址空間的一者時,阻止記憶體存取請求。
至少一些實例提供了一種用於控制主機資料處理裝置以提供用於執行目標代碼的指令執行環境的電腦程式;該電腦程式包含:位址變換程式邏輯,用於將由記憶體存取請求規定的目標經模擬的虛擬位址變換為目標經模擬的實體位址;以及過濾程式邏輯,用於基於目標經模擬的實體位址及與記憶體存取請求相關聯的所選擇的經模擬的實體位址空間來執行顆粒保護查找,以決定允許服務記憶體存取請求,其中該所選擇的經模擬的實體位址空間是複數個經模擬的實體位址空間的一者;其中:在顆粒保護查找中,過濾程式邏輯經配置為:獲得對應於包括目標經模擬的實體位址的目標經模擬的實體位址顆粒的顆粒保護資訊,顆粒保護資訊指示與目標顆粒相關聯的至少一個經允許的經模擬的實體位址空間;以及當顆粒保護資訊指示所選擇的經模擬的實體位址空間不是該至少一個經允許的經模擬的實體位址空間的一者時,防止服務記憶體存取請求。
至少一些實例提供了一種儲存上文描述的電腦程式的電腦可讀取儲存媒體。電腦可讀取儲存媒體可為非暫時性儲存媒體或暫時性儲存媒體。
控制對實體位址空間的存取
資料處理系統可支援對虛擬記憶體的使用,其中提供位址變換電路系統以將由記憶體存取請求規定的虛擬位址變換為與待存取的記憶體系統中的位置相關聯的實體位址。在虛擬位址與實體位址之間的映射可在一或多個頁表結構中定義。在頁表結構內的頁表條目亦可以定義一些存取許可資訊,該存取許可資訊可控制是否允許在處理電路系統上執行的給定軟體處理存取特定虛擬位址。
在一些處理系統中,全部虛擬位址可由位址變換電路系統映射到由記憶體系統用於識別待存取的記憶體中的位置的單一實體位址空間上。在此種系統中,對特定軟體處理是否可以存取特定位址的控制僅僅基於頁表結構來提供,該等頁表結構用於提供虛擬到實體位址變換映射。然而,此種頁表結構可通常由作業系統及/或超管理器定義。若作業系統或超管理器受損,則這可導致安全漏洞,其中敏感資訊可變得為攻擊者可存取。
由此,對於其中需要某些處理與其他處理隔離地安全執行的一些系統而言,該系統可支援在多個域中的操作,並且可支援多個不同的實體位址空間,其中對於記憶體系統的至少一些部件而言,即使相應實體位址空間中的實體位址實際上對應於記憶體中的相同位置,也將其虛擬位址變換為不同實體位址空間中的實體位址的記憶體存取請求視為其等正在存取記憶體中完全分離的位址。藉由將來自處理電路系統的不同操作域的存取隔離到如針對一些記憶體系統部件所查看的相應不同實體位址空間中,這可以提供更強的安全性保證,其不依賴於由作業系統或超管理器設置的頁表許可資訊。
處理電路系統可支援負責管理在處理電路系統可以在其中操作的其他域之間的切換的根域中的處理。藉由提供用於控制切換的專屬根域,這可以藉由限制在一個域中執行的代碼可以觸發切換到另一域的程度來幫助維持安全性。例如,當請求域切換時,根域可執行各種安全性檢查。
因此,處理電路系統可支援在至少三個域的一者中執行的處理:根域、及至少兩個其他域。位址變換電路系統可將從當前域執行的記憶體存取的虛擬位址變換為至少基於當前域選擇的複數個實體位址空間的一者中的實體位址。
在下文描述的實例中,複數個實體位址空間包括與根域相關聯的根實體位址空間,該根實體位址空間與和其他域相關聯的實體位址空間分離。因此,不同於使用與其他域的一者相關聯的實體位址空間的一者,根域具有為其分配的其自身的實體位址空間。藉由提供與其他域相關聯的實體位址空間相隔離的專屬根實體位址空間,這可以為與根域相關聯的資料或代碼提供更強的安全性保證,其可被認為對於安全性而言係最關鍵的,因為其將管理到其他域的入口。此外,提供與其他域的實體位址空間相區分的專屬根實體位址空間可以簡化系統開發,因為其可簡化將相應實體位址空間內的實體位址分配給硬體記憶體存儲器的特定單元。例如,藉由識別分離的根實體位址空間,其可以對於與將在晶片上受保護的記憶體中而非在較不安全的晶片外記憶體中優先儲存的根域相關聯的資料或程式碼而言更為簡單,其中與將根域的代碼或資料儲存在與另一域共享的共用位址空間中的情況相比,在決定與根域相關聯的部分時具有較小額外負擔。
根實體位址空間可從根域獨佔地存取。因此,當處理電路系統正在其他域的一者中操作時,處理電路系統不能存取根實體位址空間。這藉由確保在其他域的一者中執行的代碼不能篡改根域所依賴的用於管理域之間的切換或用於控制處理電路系統處於其他域的一者中時所具有的權限的資料或程式碼來改進安全性。
另一方面,全部複數個實體位址空間可從根域存取。由於在根域中執行的代碼必須由提供在其他域的一者中操作的代碼的任一方信任,由於根域代碼將負責切換到該方的代碼在其中執行的特定域中,因此固有地可以信任根域以存取任何實體位址空間。使全部可從根域存取的實體位址空間允許執行功能,諸如將記憶體區域轉移到域中及從域中轉移出、例如在引導期間將代碼和資料複製到域中、以及向該域提供服務。
位址變換電路系統可取決於當前域來限制哪些實體位址空間可存取。當特定實體位址空間為當前域可存取時,這意味著位址變換電路系統可能將針對從當前域發佈的記憶體存取規定的虛擬位址變換為該特定實體位址空間中的實體位址。這並非必須暗指將允許記憶體存取,由於即使特定記憶體存取可以將其虛擬位址變換為特定實體位址空間的實體位址,可存在執行以決定實際上是否允許該實體位址在該特定實體位址空間內存取的進一步檢查。這在下文參考顆粒保護資訊來進一步論述,該顆粒保護資訊定義在相應實體位址空間之間劃分實體位址。儘管如此,藉由限制實體位址空間的何子集為當前域可存取,這可以提供更強的安全性保證。
在一些實例中,處理電路系統可支援除了根域之外的兩個附加域。例如,其他域可包含與安全實體位址空間相關聯的安全域及與較不安全實體位址空間相關聯的較不安全域。較不安全實體位址空間可從較不安全域、安全域及根域的每一者存取。安全實體位址空間可從安全域及根域存取但不可從較不安全域存取。根域可以為根域存取但不可為較不安全域及安全域存取。因此,這允許在安全域中執行的代碼藉由在較不安全域中操作的代碼保護其代碼或資料免受存取,並且與頁表用作唯一安全性控制機制的情況相比具有較強的安全性保證。例如,代碼中需要較強安全性的部分可以在由信任的作業系統管理的安全域中執行,該作業系統與在較不安全域中操作的非安全作業系統不同。支援此種安全及較不安全域的系統的實例可為根據處理架構操作的處理系統,該處理架構支援由英國的Arm® Limited of Cambridge提供的TrustZone®架構特徵。在習知TrustZone®實施方式中,用於管理在安全與較不安全域之間切換的監控代碼使用與安全域所使用者相同的安全實體位址空間。相比之下,藉由提供根域用於管理其他域的切換並且指派專屬根實體位址空間由上文描述的根域使用,這幫助改進安全性並且簡化系統開發。
然而,在其他實例中,其他域可以包括另外域,例如除了根域之外的至少三個其他域。此等域可以包括上文論述的安全域及較不安全域,但亦可包括與另一實體位址空間相關聯的至少一個另外域。較不安全的實體位址空間亦可從另外域存取,而另外的實體位址空間可從另外域和根域存取,但不可從較不安全域存取。因此,類似於安全域,與較不安全域相比,另外域可被認為係較安全的,並且允許將代碼進一步劃分為與不同的實體位址空間相關聯的相應世界,以限制其相互作用。
在一些實例中,相應域可具有階層,使得隨著系統從較不安全域經由安全域及另外域上升到根域,其與增加的特權級別相關聯,其中另外域被認為與安全域相比更有特權,並且因此存取安全實體位址空間。
然而,越來越期望向軟體提供商提供安全計算環境,該安全計算環境限制了對信任與相同硬體平臺上執行的其他軟體相關聯的其他軟體提供商的需要。例如,在諸如行動支付及銀行、電腦遊戲中的防欺詐或盜版機制的實施、作業系統平臺的安全性增強、雲端系統中的安全虛擬機代管、機密計算等的領域中可能存在多個用途,其中提供軟體代碼的一方可能不期望信任提供作業系統或超管理器(先前可能被認為是信任的部件)的一方。在支援具有相應實體位址空間的安全及較不安全域的系統中,諸如基於上文描述的TrustZone®架構的系統,隨著在安全域中操作的安全部件的增加的佔用,通常在安全域中操作的該組軟體已增長為包括可從不同數量的軟體提供商提供的多段軟體,包括以下各方,諸如從包括由特定矽提供商提供的矽積體電路晶片的部件組裝處理裝置(諸如行動電話)的原始設備製造商(original equipment manufacturer; OEM)、提供在該裝置上運行的作業系統的作業系統供應商(operating system vendor; OSV)、以及維持伺服器場的雲端平臺運營商(或雲端主機),該伺服器場提供用於在雲端上代管虛擬機的伺服器空間。因此,若域是以增加特權的嚴格順序實施,則可能存在問題,因為提供希望被提供有安全計算環境的應用級代碼的應用提供商可能不希望信任一方(諸如OSV、OEM或雲端主機),該方可能傳統上提供執行安全域的軟體,但同樣地,提供在安全域中操作的代碼的各方不太可能希望信任應用提供商來提供在較高特權域處操作的代碼,該較高特權域被給予對與較低特權域相關聯的資料的存取。由此,認識到特權連續增加的域的嚴格階層可能是不適當的。
因此,在下文的更詳細的實例中,另外域可被認為與安全域正交。儘管另外域及安全域可以各自存取較不安全的實體位址空間,與另外域相關聯的另外實體位址空間不可從安全域存取,而與安全域相關聯的安全實體位址空間不可從另外域存取。根域仍可以存取與安全域及另外域兩者相關聯的實體位址空間。
因此,利用此模式,另外域(其實例係在下文的實例中描述的領域域(realm domain))及安全域不具有對彼此的依賴性並且因此不需要信任彼此。安全域及另外域僅需要信任根域,該根域固有地被信任為其管理到其他域中的入口。
儘管下文的實例描述了另外域(領域域)的單一實例,將瞭解另外域與安全域正交的原理可以擴展到提供多個另外域,使得安全域及至少兩個另外域中的每一者可以存取較不安全的實體位址空間,不可以存取根實體位址空間,並且不可以存取彼此相關聯的實體位址空間。
較不安全實體位址空間可從由處理電路系統支援的全部域存取。這是有用的,因為其促進在不同域中執行的軟體之間共享資料或程式碼。若資料或代碼的特定項目將在不同域中存取,則其可以被分配給較不安全實體位址空間,使得其可以從任何域存取。
當將虛擬位址變換為實體位址時,位址變換電路系統可基於至少一個頁表條目來執行變換。至少在當前域是由處理電路系統支援的至少三個域的子集之一時,基於當前域及在用於將虛擬位址變換為實體位址的至少一個頁表條目中規定的實體位址空間選擇資訊,位址變換電路系統可選擇哪個實體位址空間將用作對於給定記憶體存取而言實體位址所變換的實體位址空間。因此,在頁表結構內定義的資訊可影響當從當前域發佈時為給定記憶體存取選擇何實體位址空間。對於一些域而言,基於在頁表條目中規定的實體位址空間選擇資訊的此選擇可能不必要。例如,若當前域是上文描述的較不安全域,則由於全部其他位址空間不可為較不安全域存取,與在用於位址變換的至少一個頁表條目中規定的任何資訊無關,可選擇較不安全實體位址空間。
然而,對於其他域而言,該域可能在兩個或多個不同實體位址空間之間進行選擇。因此,對於此等域而言,在頁表條目中針對給定位址區塊定義資訊可以是有用的,該資訊指示哪個實體位址空間應當用於該存取,使得由給定軟體段看到的虛擬位址空間的不同部分可以被映射到不同實體位址上。
例如,在當前域是根域時,位址變換電路系統可基於根域頁表條目將虛擬位址變換為實體位址,對此實體位址空間選擇資訊包含用於在可從根域存取的至少三個實體位址空間之間進行選擇的實體位址空間選擇資訊的至少兩個位元。例如,在支援根域、較不安全域及安全域的實施方式中,根域頁表條目中的實體位址空間選擇資訊可以在此等三個實體位址空間的任一者之間進行選擇。在亦具有至少一個另外域的實施方式中,實體位址空間選擇資訊可在根實體位址空間、安全實體位址空間、較不安全實體位址空間及至少一個另外實體位址空間的任一者之間進行選擇。
另一方面,在當前域是安全域或另外域時,實體位址空間的選擇可能更受限制,並且因此可能需要與根域相比較少的實體位址空間選擇資訊的位元。例如,在安全域中,實體位址空間選擇資訊可在安全位址空間與較不安全位址空間之間進行選擇(由於根實體位址空間及另外實體位址空間可能不可存取)。當安全域是另外域時,實體位址空間選擇資訊可用於在另外實體位址空間與較不安全實體位址空間之間進行選擇,因為安全實體位址空間及根實體位址空間可能不可存取。對於用於選擇要在當前域是安全域或另外域時使用的實體位址空間的頁表條目而言,用於作出此選擇的實體位址空間選擇指示符可在至少一個頁表條目中的相同位置處編碼,而與當前域是安全域還是另外域無關。這使編碼頁表條目更有效並且允許解釋頁表條目的該部分的硬體重新用於安全域及另外域兩者,從而減小電路面積。
記憶體系統可包括實體混淆點(point of physical aliasing; PoPA),該實體混淆點是將來自對應於相同記憶體系統資源的不同實體位址空間的混淆實體位址映射到唯一地識別該記憶體系統資源的單一實體位址的點。記憶體系統可包括在PoPA的上游提供的至少一個前PoPA記憶體系統部件,該部件將混淆實體位址視為其等對應於不同的記憶體系統資源。
例如,至少一個前PoPA記憶體系統部件可以包括可快取用於分離條目中的混淆實體位址的資料、程式碼或位址變換資訊的快取記憶體或變換旁看緩衝器,使得若請求從不同實體位址空間存取相同的記憶體系統資源,則存取將導致分配分離的快取記憶體或TLB條目。此外,前PoPA記憶體系統部件可以包括同調性控制電路系統,諸如同調互連、監聽過濾器、或用於維持在相應主裝置處快取的資訊之間的同調性的其他機制。同調性控制電路系統可以將分離的同調性狀態指派給不同實體位址空間中的相應混淆實體位址。因此,出於維持同調性的目的,將混淆實體位址視為分離的位址,即使其等實際上對應於相同的下層記憶體系統資源。儘管對此而言,針對混淆實體位址分別追蹤同調性可以發生以導致同調性損失的問題,實踐中這不是問題,因為若在不同域中操作的處理確實意欲共享對特定記憶體系統資源的存取,則其等可以使用較不安全實體位址空間來存取該資源(或使用下文描述的限制性共享特徵來使用其他實體位址空間中的一者存取資源)。前PoPA記憶體系統部件的另一實例可以是記憶體保護引擎,提供該記憶體保護引擎用於保護保存到晶片外記憶體的資料而不損失機密性及/或不被篡改。取決於從何實體位址空間存取資源,此種記憶體保護引擎可以例如分別用不同加密密鑰來加密與特定記憶體系統資源相關聯的資料,從而將混淆實體位址有效地視為其等對應於不同的記憶體系統資源(例如,可使用取決於位址進行加密的加密方案,並且出於此目的實體位址空間識別符可以被認為是位址的部分)。
不管前PoPA記憶體系統部件的形式,對於此種PoPA記憶體系統部件而言,將混淆實體位址視為其等對應於不同的記憶體系統資源可以是有用的,由於此舉提供在發佈到不同實體位址空間的存取之間的硬體實施隔離,使得與一個域相關聯的資訊不可以藉由特徵洩漏到另一域,該等特徵諸如快取時序側通道或涉及由同調性控制電路觸發的同調性改變的側通道。
在一些實施方式中,不同實體位址空間中的混淆實體位址可能使用用於相應不同實體位址空間的不同數字實體位址值表示。此途徑可需要映射表來在PoPA處決定哪些不同實體位址值對應於相同記憶體系統資源。然而,維護映射表的此額外負擔被認為是不必要的,並且因此在一些實施方式中,若混淆實體位址包含在不同實體位址空間的每一者中使用相同數字實體位址值表示的實體位址,則維護映射表可能更為簡單。若採取此途徑,則在實體混淆點處,可以足夠簡單地丟棄識別使用記憶體存取來存取何實體位址空間的實體位址空間識別符,並且隨後在下游提供剩餘實體位址位元作為去混淆實體位址。
因此,除了前PoPA記憶體系統部件之外,記憶體系統亦可包括PoPA記憶體系統部件,該PoPA記憶體系統部件經配置為去混淆複數個混淆實體位址以獲得待提供到至少一個下游記憶體系統部件的去混淆實體位址。PoPA記憶體系統部件可以為存取映射表以尋找去混淆位址的裝置,該去混淆位址對應於如上文描述的特定位址空間中的混淆位址。然而,PoPA部件亦可以簡單地為記憶體系統內的位置,其中丟棄與給定記憶體存取相關聯的實體位址標籤,使得下游提供的實體位址唯一地識別對應記憶體系統資源,而與從哪個實體位址空間提供無關。或者,在一些情形中,PoPA記憶體系統部件仍可向至少一個下游記憶體系統部件提供實體位址空間標籤(例如,如下文進一步論述,出於實現完成器側過濾的目的),但PoPA可標記記憶體系統內的點,超出該點下游記憶體系統部件不再將混淆實體位址視為不同的記憶體系統資源,而是認為混淆實體位址的每一者映射相同記憶體系統資源。例如,若在PoPA下游的記憶體控制器或硬體記憶體儲存裝置接收針對給定記憶體存取請求的實體位址標籤及實體位址,則若該實體位址對應於相同實體位址作為先前看到的異動,則可應用針對存取相同實體位址的相應異動(諸如合併對相同位址的存取)執行的任何危害檢查或效能改進,即使相應異動規定不同的實體位址空間標籤亦如此。相比之下,對於在PoPA上游的記憶體系統部件而言,若存取相同實體位址的異動規定不同實體位址空間中的相同實體位址,則可能不調用針對此等異動採取的此種危害檢查或效能改進步驟。
如上文提及,至少一個前PoPA記憶體系統部件可包括至少一個前PoPA快取記憶體。這可以是資料快取記憶體、指令快取記憶體或統一的2階、3階或系統快取記憶體。
處理電路系統可支援快取無效PoPA指令,該指令規定目標位址(其可以是虛擬位址或實體位址)。回應於快取無效PoPA指令,處理電路系統可發佈至少一個無效命令以請求至少一個前PoPA快取記憶體使與對應於目標位址的目標實體位址值相關聯的一或多個條目無效。相比之下,當發佈至少一個無效命令時,可允許位於PoPA下游的至少一個後PoPA快取記憶體保留與目標實體位址值相關聯的一或多個條目。對於至少一個前PoPA快取記憶體而言,快取記憶體可使與由至少一個無效命令規定的目標實體位址值相關聯的一或多個條目無效,而與何實體位址空間與彼等條目相關聯無關。由此,即使由前PoPA快取記憶體將在不同實體位址空間中具有相同位址值的實體位址視為其等表示不同實體位址,出於處置由快取無效PoPA指令觸發的無效的目的,可忽略實體位址空間識別符。
因此,可以定義快取無效指令的形式,該形式使處理電路系統能夠請求與對應於目標虛擬位址的特定實體位址相關聯的任何快取的條目在任何快取記憶體中無效直到實體混淆點。此無效指令的形式可與其他無效指令類型不同,該等類型可請求影響快取記憶體的快取的條目無效直到記憶體系統的其他點,諸如直到同調性點(於此點保證所有觀察者(例如,處理器核心、直接記憶體存取引擎等)看到與給定位址相關聯的相同資料副本)。提供請求無效直到實體混淆點的專屬指令形式可以是有用的,特別是對於可管理到相應域的位址分配的改變的根域代碼。例如,當更新定義在給定實體位址空間內可存取哪些實體位址的顆粒保護資訊時,或者當將實體位址的特定區塊重新分配到不同實體位址空間時,根域代碼可以使用快取無效PoPA指令以確保其可存取性取決於顆粒保護資訊中的過期值的駐留在快取記憶體內的任何資料、代碼或其他資訊無效以確保基於新的顆粒保護資訊正確地控制後續記憶體存取。在一些實例中,除了使快取的條目無效之外,至少一個前PoPA快取記憶體亦可以從該快取的條目清除資料,以便將與待使其無效的條目相關聯的資料的任何臟版本寫回超出PoPA的記憶體系統中的位置。在一些情形中,可以支援快取無效PoPA指令的不同版本以指示是否需要清除。
可提供回應於記憶體存取請求的記憶體加密電路系統,該記憶體存取請求規定所選擇實體位址空間及所選擇實體位址空間內的目標實體位址,當目標實體位址在受保護的位址區域內時,用於基於取決於所選擇實體位址空間選擇的多個加密密鑰的一者來加密或解密與受保護區域相關聯的資料。在一些實例中,受保護位址區域可以是整個實體位址空間,而其他實例可僅將加密/解密應用於某些子區域作為受保護位址區域。藉由指派與其他域相關聯的實體位址空間分離的專屬根實體位址空間,這使得與其他域相比記憶體加密電路系統為根域選擇不同加密密鑰更為簡單,以便改進安全性。類似地,為全部其他域選擇不同加密密鑰實現較強的與特定域相關聯的代碼或資料資產的隔離。
在一個特定實例中,裝置可在與處理電路系統相同的積體電路上具有至少一個晶片上記憶體,並且可將根實體位址空間中的全部有效實體位址映射到與晶片外記憶體不同的至少一個晶片上記憶體。此舉幫助改進根域的安全性。將瞭解,來自其他域的資訊亦可以儲存在晶片上記憶體中。提供分離的根實體位址空間簡化記憶體的分配,而在根域與安全域共享安全實體位址空間的實例中,可能存在過多的與安全域相關聯的資料以將全部該資料保持在晶片上記憶體中,並且可能難以決定資料的哪些特定段與根域相關聯,當根域的資料(或代碼)用分離的實體位址空間識別符標記時,劃分出根域的資料(或代碼)更為簡單。
儘管如此,在其他實例中,在根實體位址空間中的一些位址可能映射到晶片外記憶體。記憶體加密、完整性及刷新機制可以用於保護在晶片外儲存的根域資料。
上文論述的技術可以在硬體裝置中實施,該硬體裝置具有用於實施如上文論述的功能的硬體電路系統邏輯。因此,處理電路系統及位址變換電路系統可包含硬體電路邏輯。然而,在其他實例中,用於控制主機資料處理裝置以提供用於執行目標代碼的指令執行環境的電腦程式可具備處理程式邏輯及位址變換程式邏輯,該等邏輯在軟體內對上文論述的處理電路系統及位址變換電路系統執行等效功能。例如,此舉可以用於實現針對將在主機電腦上執行的特定指令集架構寫入目標代碼,該主機電腦可能不支援該指令集架構。因此,未由主機電腦提供的由指令集架構期望的功能性可以替代地藉由模擬軟體來模擬,該模擬軟體為目標代碼提供與若目標代碼已經在實際上支援指令集架構的硬體裝置上執行所預期的等效的指令執行環境。因此,提供模擬的電腦程式可以包括模擬在先前描述的至少三個域的一者中的處理的處理程式邏輯、以及將虛擬位址變換為在至少基於當前域選擇的多個經模擬實體位址空間的一者中的實體位址的位址變換程式邏輯。如在硬體裝置中,至少三個域可包括用於管理在其他域之間的切換的根域,並且根域可具有與其相關聯的根經模擬實體位址空間,與其他域相關聯的經模擬實體位址空間分離。對於提供架構模擬的途徑而言,由位址變換程式邏輯選擇的相應實體位址空間是經模擬實體位址空間,因為其等實際上不對應於由主機電腦的硬體部件識別的實體位址空間,而是會映射到主機的虛擬位址空間內的位址。提供此種模擬可以用於各種目的,例如用於使得針對一個指令集架構寫入的舊代碼能夠在支援不同指令集架構的不同平臺上執行、或者用於當支援指令集架構的新版本的硬體裝置尚不可用時輔助將針對指令集架構的新版本執行的新軟體的軟體開發(這可以實現與支援新架構版本的硬體裝置的開發並行地開始開發新架構版本的軟體)。 顆粒保護查找
在可以將記憶體存取請求的虛擬位址映射到兩個或多個不同實體位址空間的一者中的實體位址的系統中,顆粒保護資訊可以用於限制哪些實體位址在特定實體位址空間內可存取。此舉可以用於確保在晶片上或晶片外的硬體中實現的某些實體記憶體位置可以被限制用於在特定實體位址空間或實體位址空間的特定子集(若期望)內存取。
在用於管理此種限制的一種途徑中,關於給定實體位址是否可以從特定實體位址空間存取的實施(enforcement)可使用在用於服務記憶體存取請求的完成器裝置處或附近提供的完成器側過濾電路來實施。例如,完成器側過濾電路系統可以與記憶體控制器或週邊控制器相關聯。在此種途徑中,將記憶體存取請求發佈到快取記憶體、或用於將異動從請求器裝置路由到完成器裝置的互連,可能不取決於對用於定義哪些實體位址在給定實體位址空間內可存取的資訊的任何查找。
相比之下,在下文描述的實例中,顆粒保護查找藉由請求器側過濾電路系統執行,該請求器側過濾電路系統基於對指示與待存取的目標實體位址顆粒相關聯的至少一個經允許實體位址空間的顆粒保護資訊的查找來檢查是否允許將記憶體存取請求傳遞到快取記憶體或互連。對此定義顆粒保護資訊的相應項目的實體位址空間的顆粒可具有特定大小,該大小可以與用於位址變換電路系統的頁表結構的頁面大小相同或不同。在一些情形中,顆粒可具有與為位址變換電路系統定義位址變換映射的頁面相比較大的大小。或者,顆粒保護資訊可在與頁表結構內的位址變換資訊相同的頁面級顆粒度處定義。以頁面級顆粒度定義顆粒保護資訊可以是方便的,由於這可以隨後允許對可從特定實體位址空間並且因此從處理電路系統的特定操作域可存取記憶體儲存硬體的哪些區域的更細粒度的控制。
因此,裝置可具有:位址變換電路系統,用於將由請求器電路系統發佈的記憶體存取請求規定的目標虛擬位址變換為目標實體位址;以及請求器側電路系統,用於基於目標實體位址及與記憶體存取請求項相關聯的所選擇實體位址空間來執行顆粒保護查找以決定是否允許將記憶體存取請求傳遞到快取記憶體或傳遞到用於與服務記憶體存取請求的完成器裝置通訊的互連。所選擇的實體位址空間可以是複數個實體位址空間的一者。在顆粒保護查找中,請求器側過濾電路系統可經配置為: 獲得對應於包括目標實體位址的目標實體位址顆粒的顆粒保護資訊,該顆粒保護資訊指示與目標顆粒相關聯的至少一個經允許實體位址空間;以及 當顆粒保護資訊指示所選擇的實體位址空間不是該至少一個經允許實體位址空間的一者時,阻止記憶體存取請求。
在互連的請求器側處而非在完成器側上執行顆粒保護查找的優點是,與在完成器側處的實際情況相比,這可以實現對從給定實體位址空間可存取哪些實體位址的更細粒度的控制。這是因為完成器側可通常具有相對受限的整體地存取記憶體系統的能力。例如,用於給定記憶體單元的記憶體控制器僅可存取記憶體單元內的位置並且可能不存取位址空間的其他區域。提供更細粒度的控制可依賴於可儲存在記憶體系統中的更複雜的顆粒保護資訊表,並且從其中向記憶體系統的較寬子集發佈記憶體存取請求存在更大靈活性的請求器側存取此表可能更實際。
此外,在請求器側上執行顆粒保護查找可以幫助實現在運行時動態地更新顆粒保護資訊的能力,對於可以被限制為存取在引導時定義的相對少量的靜態定義的資料的完成器側過濾電路系統而言這可能是不實際的。
請求器側過濾電路系統的另一優點是這會使互連能夠將相同顆粒內的不同位址分配到與不同完成器裝置(例如,不同DRAM(動態隨機存取記憶體)單元)通訊的不同完成器埠,這對於效能而言可為有效的,但若作為整體的顆粒需要被導引至相同完成器單元使得顆粒保護查找可以在完成器側上執行以驗證是否允許記憶體存取,則可為不切實際的。
因此,在請求器側處而非完成器側,執行顆粒保護查找以區分是否可以從為給定記憶體存取請求選擇的特定實體位址空間存取特定實體位址可以存在多個優點。
顆粒保護資訊可以用不同方式表示。在一個實例中,顆粒保護可以在於單一連續的位址區塊處儲存的單一線性索引表中定義,其中特定條目將在基於目標實體位址選擇的該區塊內存取。然而,在實踐中,顆粒保護資訊可能不針對整個實體位址空間定義並且因此與用於位址變換的多級頁表類似,使用多級表結構來儲存顆粒保護資訊可能更有效。在此種多級結構中,目標實體位址的一部分可用於選擇一級顆粒保護表條目,該條目可提供識別儲存另外級顆粒保護表的記憶體中的位置的指針。目標實體位址的另一部分可隨後選擇將獲得該另外顆粒保護表的哪個條目。在經由超出第一級的一或多個級別的表迭代之後,最終可獲得提供與目標實體位址相關聯的顆粒保護資訊的顆粒保護表條目。
不管針對儲存顆粒保護資訊的表選擇的特定結構,顆粒保護資訊可以多種方式表示實體位址空間中的哪個是至少一個經允許的實體位址。一種途徑可以是提供一系列欄位,該等欄位各自指示是否允許實體位址空間的對應空間存取包括目標實體位址的實體位址顆粒。例如,位元映射可在顆粒保護資訊內定義,其中位元映射的每個位元指示對應實體位址空間是針對該顆粒允許的實體位址空間或不允許的實體位址空間。
然而,在實踐中,對於大部分使用情形,相對不太可能的是,期望允許大量的實體位址空間存取給定實體位址。如先前部分中關於控制對實體位址空間的存取所論述的,較不安全實體位址空間可以用於在全部域中進行選擇,因此可以當資料或代碼將在多個域之間共享時使用,使得可能並非必要地將特定實體位址映射到全部或大部分可用實體位址空間中。
因此,相對有效的途徑可以是顆粒保護資訊可規定指派給目標實體位址顆粒的所指派實體位址空間,並且至少一個經允許實體位址空間可至少包括由針對該特定目標顆粒的顆粒保護資訊指定的所指派實體位址空間。在一些實施方式中,顆粒保護資訊可將單一實體位址空間規定為所指派實體位址空間。因此,在一些情形中,顆粒保護資訊可包含用作允許存取該目標實體位址顆粒的所指派實體位址空間的一個特定實體位址空間的識別符。
在一些實施方式中,僅允許存取目標實體位址顆粒的實體位址空間可以是所指派實體位址空間,並且可能不允許從任何其他實體位址空間存取目標實體位址顆粒。此途徑對於維護安全性而言可以是有效的。從不同域到特定實體位址空間的存取可以替代地經由位址變換功能性控制,其中位址變換電路系統能夠選擇哪個特定實體位址空間將用於給定記憶體存取,因此可能不需要允許在多個實體位址空間之間共享實體位址顆粒。若僅允許所指派實體位址空間存取目標實體位址顆粒,則實現從其他實體位址空間存取實體位址顆粒,這可需要更新哪個實體位址空間是所指派實體位址空間。例如,這可需要先前描述的根域執行一些處理以為給定實體位址顆粒切換所指派實體位址空間。此處理可具有一定的效能成本,例如其可(為了安全)包括用空資料或獨立於彼等實體尋址的位置的先前內容的其他資料覆寫給定實體位址顆粒中的每個位置,以確保存取新指派的實體位址空間的處理不能從先前在與給定實體位址顆粒相關聯的位置處儲存的資料獲知任何資訊。
因此,另一途徑可以是,除了辨識所指派實體位址空間之外,顆粒保護資訊亦可以包含共享屬性資訊,該共享屬性資訊指示除了所指派實體位址空間之外的至少一個其他實體位址空間是否是至少一個經允許的實體位址空間的一者。因此,若共享屬性資訊指示允許至少一個其他實體位址空間存取對應實體位址顆粒,則該實體位址顆粒可以從多個實體位址空間存取。這對於允許與一個實體位址空間相關聯的域中的代碼暫時地允許為與不同實體位址空間相關聯的域可以看到其指派的實體位址顆粒的一者可以是有用的。這可以使暫時共享資料或代碼更有效,因為不必招致用於改變何實體位址空間是所指派實體位址空間的潛在昂貴的操作。共享屬性資訊可以直接藉由在與所指派實體位址空間相關聯的域中執行的代碼來設置,或可以藉由根域根據來自與所指派實體位址空間相關聯的域中執行的代碼的請求來設置。
在支援共享屬性資訊的情況下,則除了使用共享屬性資訊來驗證指派給一個實體位址空間的位址是否可以由規定不同位址空間的請求存取之外,請求器側過濾電路系統亦可基於共享屬性資訊來變換為下游發佈到快取記憶體或互連的記憶體存取請求選擇的實體位址空間。因此,當顆粒保護查找決定所選擇的實體位址空間是除了所指派實體位址空間之外的實體位址空間時,該所指派實體位址空間是由共享屬性資訊指示的該至少一個經允許的實體位址空間的一者,請求器側過濾電路系統可允許將規定所指派實體位址空間而非所選擇的實體位址空間的記憶體存取請求傳遞到快取記憶體或互連。這意味著,出於存取下游記憶體的目的,在PoPA之前的部件將記憶體存取視為其是在第一位置中規定所指派實體位址空間而被發佈的,使得可以為記憶體存取請求存取用所指派實體位址空間標記的快取記憶體條目或監聽過濾器條目。
在一些實施方式中,每次對顆粒保護資訊檢查記憶體存取請求時,請求器側過濾電路系統可從記憶體獲得用於顆粒保護查找的顆粒保護資訊。此途徑可在請求器側處需要較少硬體成本。然而,從記憶體獲得顆粒保護資訊可能相對緩慢。
由此,為了改進效能,請求器側過濾電路系統可存取至少一個查找快取記憶體,該查找快取記憶體可快取顆粒保護資訊,使得顆粒保護查找可以在至少一個查找快取記憶體中執行,並且若需要的顆粒資訊已經儲存在至少一個查找快取記憶體中,則不必從記憶體擷取該顆粒資訊。至少一個查找快取記憶體可在一些情形中是與變換旁看緩衝器(translation lookaside buffer; TLB)分離的快取記憶體,該變換旁看緩衝器由位址變換電路系統用於快取在虛擬與實體位址之間提供映射的頁表資料。然而,在其他實例中,至少一個查找快取記憶體可以組合頁表資料的快取與顆粒保護資訊的快取。因此,取決於顆粒保護資訊及由位址變換電路系統用於將目標虛擬位址映射到目標實體位址的至少一個頁表條目,至少一個查找快取記憶體可以在一些情形中儲存規定資訊的至少一個組合的變換顆粒保護條目。是否將TLB及顆粒保護快取記憶體實施為分離結構或單一組合的結構是實施方式選擇並且可以使用。
不管哪個途徑用於至少一個查找快取記憶體,至少一個查找快取記憶體可回應於至少一個查找快取無效命令,取決於與包括無效目標實體位址的實體位址顆粒相關聯的顆粒保護資訊,該命令規定無效目標實體位址以使儲存資訊的查找快取記憶體條目無效。在具有TLB的習知處理系統中,儘管TLB可通常支援規定虛擬位址(或在支援兩個階段的位址變換的系統中為中間位址)的無效命令,通常TLB不需要能夠識別將使用實體位址而使何條目無效。然而,當提供至少一個查找快取記憶體以快取顆粒保護資訊時,則若用於給定實體位址顆粒的顆粒保護資訊改變,則能夠使取決於該資訊的任何條目無效可為有用的。因此,命令可識別特定實體位址,對此將使取決於顆粒保護資訊的含有資訊的條目無效。
若顆粒保護資訊快取記憶體與TLB分離地實施,則TLB可能不需要具有任何藉由實體位址搜尋條目的能力。在此種情形中,顆粒保護資訊快取記憶體可回應於規定實體位址的快取無效命令,但該命令可由TLB忽略。
然而,若至少一個查找快取記憶體包括組合的變換/顆粒保護快取記憶體,其條目基於虛擬位址或中間位址搜尋並且返回與虛擬/中間位址相關聯的頁表資訊及與對應實體位址相關聯的顆粒保護資訊,則提供另外方案用於基於實體位址搜尋條目可為有用的,使得可以處理規定無效目標實體位址的至少一個查找快取無效命令。組合快取記憶體的常規查找將不需要藉由實體位址的此種搜尋,因為若組合條目,則藉由虛擬位址或中間位址的搜尋可能足以存取用於執行位址變換及顆粒保護查找兩者的全部組合資訊。然而,在快取無效命令上,組合的快取記憶體可以基於實體位址搜尋來識別可能需要無效的任何條目,因為該等條目取決於用於規定的實體位址的顆粒保護資訊。
記憶體系統可具有如上文針對先前的實例論述的PoPA記憶體系統部件、至少一個前PoPA記憶體系統部件及至少一個後PoPA記憶體系統部件。因此,以與先前論述者相同的方式,在不同實體位址空間內的混淆實體位址可對應於當記憶體存取請求傳遞超出實體混淆點時使用去混淆實體位址識別的相同記憶體系統資源。在PoPA之前,至少一個前PoPA記憶體系統部件將來自不同實體位址空間的混淆實體位址視為其等對應於可以改進安全性的不同記憶體系統資源。再者,儘管理論上使用不同數字位址值來識別不同實體位址空間中的混淆實體位址是可能的,這實施起來可能相對複雜,並且若在不同實體位址空間中使用相同的實體位址值來表示混淆實體位址,則可以更為簡單。
在至少一個前PoPA記憶體系統部件包含至少一個前PoPA快取記憶體的情況下,處理電路系統可回應於規定目標虛擬位址的快取無效PoPA指令以由目標實體位址對在實體混淆點上游的任何前PoPA快取記憶體觸發無效,同時允許任何後PoPA快取記憶體保留具有目標實體位址的資料(如先前描述)。
所選擇的與記憶體存取相關聯的實體位址空間可以用不同方式選擇。在一些實例中,所選擇的實體位址空間可至少基於從其發佈記憶體存取請求的請求器電路系統的操作的當前域來選擇(由位址變換電路系統或請求器側過濾電路系統)。對所選擇的實體位址空間進行選擇亦可以取決於在用於將目標虛擬位址變換為目標實體位址的至少一個頁表條目中規定的實體位址空間選擇資訊。對哪個實體位址空間為所選擇的實體位址空間進行選擇可以如先前針對前述實例論述般執行。
可用於在給定系統中進行選擇的域及實體位址空間可如先前描述,並且可包括如上文論述的較不安全域、安全域、根域及另外域,每個域具有對應的實體位址空間。或者,域/實體位址空間可以包括此等域的子集。因此,關於先前描述的任何域的任何特徵可以包括在具有請求器側過濾電路系統的系統中。
在其中根域具有如先前描述的對應根實體位址空間的實施方式中,則在當前域是根域時,請求器側過濾電路系統可以繞過顆粒保護查找。在當前域是根域時顆粒保護查找可以是不必要的,由於可信任根域以存取實體位址的全部區域並且因此當在根域中時功率可以藉由跳過顆粒保護查找而節省。
顆粒保護資訊可以藉由在根域中執行的軟體修改。因此,顆粒保護資訊可以在運行時可動態地更新。這對於所論述的一些領域使用情形而言可能是有利的,其中提供安全執行環境的領域可以在運行時動態地建立並且分配為該領域保留的記憶體的對應區域。僅使用完成器側過濾,此種途徑將通常不切實際。在一些實施方式中,根域可以是允許修改顆粒保護資訊的唯一域,因此若其他域需要改變將實施的顆粒保護資訊,則其等可請求根域修改顆粒保護資訊,並且根域可以隨後檢查是否允許由另一域作出的請求。
儘管在將記憶體存取請求傳遞到快取記憶體或互連之前提供請求器側過濾電路系統用於在請求器側上執行顆粒保護查找可以是有利的,可能存在其他情況,其中可能較佳地替代地在互連的完成器側上檢查保護資訊(定義哪些實體位址可以從給定實體位址空間存取)。例如,儘管對於位址空間的一些部分,可能期望提供將記憶體硬體劃分為可從不同實體位址空間存取的實體位址區域的細粒度頁面級粒度,但對於記憶體系統的其他部分而言,可能較佳地將大量連續位址區塊分配到單一實體位址空間,並且因此存取(潛在地多級)在記憶體中儲存的顆粒保護結構的額外負擔可能是不必要的。若整個記憶體單元(例如,特定DRAM模組)將被分配到單一實體位址空間,則經由完成器側檢查處置對該記憶體單元的存取限制的實施可能較為簡單。
由此,在一些實施方式中,除了提供請求器側過濾電路系統之外,亦可能存在回應於從規定目標實體位址及所選擇的實體位址空間的互連接收的記憶體存取請求的完成器側過濾電路系統,用於基於目標實體位址及所選擇的實體位址空間執行完成器側保護資訊的完成器側保護查找,以決定是否允許由完成器裝置服務記憶體存取請求。藉由提供使得能夠經由請求器側過濾器保護記憶體的一些部分及藉由完成器側過濾器保護其他部分的混合途徑,與單獨經由請求器側過濾或完成器側過濾所實現的相比,此舉允許在分配記憶體使用的效能與靈活性之間較佳的平衡。
因此,在一些實施方式中,顆粒保護資訊可規定通過指示符,該通過指示符指示至少一個經允許的實體位址空間將由完成器側過濾電路系統解析。因此,在顆粒保護資訊規定通過指示符的情形中,請求器側過濾電路系統可獨立於對所選擇的實體位址空間是否是用於目標實體位址顆粒的至少一個經允許的實體位址空間的一者的任何檢查來決定是否將記憶體存取請求傳遞到快取記憶體或互連。另一方面,若針對目標顆粒存取的顆粒保護資訊不規定通過指示符,則決定是否可以將記憶體存取請求傳遞到快取記憶體或互連可以取決於對所選擇的實體位址空間是否是至少一個經允許的實體位址空間的一者的檢查,因為在此情況中可能不存在在允許記憶體存取請求進行到快取記憶體或互連之後執行的後續完成器側過濾。因此,通過指示符可以實現對將在請求器側執行對其檢查的彼等實體位址顆粒與將在完成器側上對其執行彼等檢查的彼等顆粒之間劃分位址空間的控制,從而為系統設計者提供添加的靈活性。
由完成器側過濾電路系統使用的完成器側保護資訊不需要具有與由請求器側過濾電路系統使用的顆粒保護資訊相同的格式。例如,完成器側過濾電路系統可以與由請求器側過濾電路系統用於顆粒保護查找的顆粒保護資訊相比較粗的粒度定義。顆粒保護資訊可在多級表結構中定義,其中表的每級提供各自對應於給定數量的位址的記憶體區塊的條目,該數量對應於2的冪,並且因此檢查給定目標實體位址所需的給定級表的條目可以藉由將來自目標實體位址的位元的某一部分的倍數添加到與表的該級相關聯的基址來簡單地索引,從而避免需要將所存取的條目的內容與目標實體位址進行比較以決定其是否是正確條目。相比之下,對於完成器側保護資訊而言,可定義較小數量的條目,每個條目規定記憶體區域的開始及結束位址(或開始位址及大小),其可對應於兩個位址數量的非冪。此舉可以更適用於在完成器側保護資訊中定義相對粗糙粒度的區塊,但此途徑可能需要目標實體位址與在每個完成器側保護資訊條目中定義的實體位址的相應範圍的上限及下限進行比較以決定彼等中的任一者是否匹配所規定的實體位址。用於請求器側顆粒保護資訊的索引的多級表途徑可支援相對大量的不同條目,使得支援實體位址到實體位址空間的細顆粒的映射,歸因於在查找彼等條目中的每一者以檢查目標位址是否落在該條目的界限內的比較額外負擔,使用定義完成器側保護資訊中的每個區域的上限及下限的途徑將通常是不切實際的,但完成器側保護資訊可能在記憶體儲存方面更有效,並且在效能方面可以是較少變化的,因為若查找快取記憶體中存在未命中,則存在較少懲罰。當然,這僅為所查找的資訊可以如何在請求器側及完成器側上實施的一個實例。
請求器側保護資訊可以在運行時動態可更新。完成器側保護資訊可以由晶片上系統上的硬體靜態地定義、在引導時配置、或在運行時動態地重新配置。
由於對於先前描述的實例而言,儘管上文針對顆粒保護查找描述的技術可以在具有用於執行位址變換電路系統及請求器側過濾電路系統的功能的專屬硬體邏輯的系統中實施,出於與先前描述的彼等類似的原因,等效功能亦可以在用於控制主機資料裝置以提供用於執行目標代碼的指令執行環境的電腦程式內的軟體中實施。因此,可以提供位址變換程式邏輯及過濾程式邏輯以模擬先前描述的位址變換電路系統及請求器側過濾器的功能性。由於對於先前的實例而言,對於提供指令執行環境的電腦程式,下列中的至少一者可應用:顆粒保護資訊在運行時由目標代碼動態可更新;以及顆粒保護資訊以頁面級粒度定義。 實例描述
第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))經由位址變換的多個階段中的一者將虛擬位址變換為實體位址(PA)。變換旁看緩衝器(translation lookaside buffer; TLB) 18用作用於快取一些頁表資訊的查找快取記憶體,以用於與每次需要位址變換時必須經從記憶體擷取頁表資訊的情況相比較快的存取。在此實例中,除了生成實體位址之外,位址變換電路系統16亦選擇與實體位址相關聯的多個實體位址空間的一者,並且輸出識別所選擇的實體位址空間的實體位址空間(physical address space; PAS)識別符。對PAS進行選擇將在下文更詳細論述。
PAS過濾器20用作請求器側過濾電路系統,用於基於變換的實體位址及PAS識別符來檢查是否允許在由PAS識別符識別的所規定實體位址空間內存取該實體位址。此查看基於在記憶體系統內儲存的顆粒保護表結構中儲存的顆粒保護資訊。與快取TLB 18中的頁表資料類似,顆粒保護資訊可在顆粒保護資訊快取記憶體22內快取。儘管將顆粒保護資訊快取記憶體22圖示為與第1圖的實例中的TLB 18分離的結構,在其他實例中,此等類型的查看快取記憶體可以組合為單一查看快取記憶體結構,使得對組合結構的條目的單一查看提供頁表資訊及顆粒保護資訊兩者。顆粒保護資訊定義限制可以從其存取給定實體位址的實體位址空間的資訊,並且基於此查看,PAS過濾器20決定是否允許記憶體存取請求進行到發佈至一或多個快取記憶體24及/或互連8。若不允許針對記憶體存取請求規定的PAS存取所規定的實體位址,則PAS過濾器20阻止異動並且可發信號通知故障。
儘管第1圖圖示了實例,其中系統具有多個請求器裝置4,針對第1圖的左手側上的一個請求器裝置圖示的特徵亦可以包括在其中僅存在一個請求器裝置(諸如單核處理器)的系統中。
儘管第1圖圖示了實例,其中針對給定請求選擇PAS由位址變換電路系統16執行,在其他實例中,用於決定選擇何PAS的資訊可以由位址變換電路系統16輸出到PAS過濾器20連同PA,並且PAS過濾器20可選擇PAS並且檢查是否允許在所選擇的PAS內存取PA。
提供PAS過濾器20幫助支援可以在多個操作域中操作的系統,每個操作域與其自身的隔離的實體位址空間相關聯,其中對於記憶體系統的至少部分(例如,對於一些快取記憶體或同調性實施機構,諸如監聽過濾器),將分離的實體位址空間視為其等指代識別分離的記憶體系統位置的完全分離位址集合,即使在彼等位址空間內的位址實際上指記憶體系統內的相同實體位置。出於安全性目的,這可以是有用的。
第2圖圖示了不同操作狀態及處理電路系統10可以在其中操作的域的實例,並且可以在不同異常級別及域中執行的軟體類型的實例(當然,將瞭解在系統上安裝的特定軟體由管理該系統的各方選擇,並且因此不是硬體架構的重要特徵)。
處理電路系統10可在多個不同異常級別80下操作,在此實例中,標記為EL0、EL1、EL2及EL3的四個異常級別,其中在此實例中EL3指代具有最大特權級的異常級別,而EL0指代具有最低特權的異常級別。將瞭解,其他架構可以選擇相對編號,使得具有最高數字的異常級別可以被認為具有最低特權。在此實例中,最低特權的異常級別EL0係用於應用級代碼,其次最大特權異常級別EL1用於作業系統級代碼,其次最大特權異常級別EL2用於管理在多個虛擬化作業系統之間的切換的管理器級代碼,而最大特權異常級別EL3用於監控代碼,該監控代碼管理在相應域之間的切換及將實體位址到實體位址空間的分配,如稍後描述。
當在特定異常級別中處理軟體時發生異常時,對於一些異常類型而言,將異常採取為較高(更具特權)異常級別,其中將發生異常的特定異常級別基於所發生的特定異常的屬性來選擇。然而,在一些情況下,有可能在與發生異常時處理的代碼相關聯的異常級別相同的異常級別處發生其他類型的異常。當發生異常時,可保存表徵異常發生時處理器的狀態的資訊,包括例如發生異常時的當前異常級別,並且因此一旦已經處理異常處置器以處置異常,處理可隨後返回到先前的處理並且所保存的資訊可以用於識別處理應當返回的異常級別。
除了不同異常級別之外,處理電路系統亦支援多個操作域,包括根域82、安全(S)域84、較不安全域86及領域域88。為了便於參考,較不安全域將在下文描述為「非安全」(NS)域,但將瞭解這不意欲暗指任何特定安全性級別(或缺乏安全性)。而是,「非安全」僅僅指示非安全域意欲用於與在安全域中操作的代碼相比較不安全的代碼。當處理電路系統10處於最高異常級別EL3時,選擇根域82。當處理電路系統是其他異常級別EL0至EL2中的一者時,當前域基於當前域指示符14來選擇,該當前域指示符指示其他域84、86、88中的哪個是活動的。對於其他域84、86、88的每一者而言,處理電路系統可以處於異常級別EL0、EL1或EL2中的任一者。
在引導時,引導代碼(例如,BL1、BL2、OEM引導)的多個片段可例如在更具特權的異常級別EL3或EL2內執行。引導代碼BL1、BL2可與例如根域相關聯,並且OEM引導代碼可在安全域中操作。然而,一旦引導系統,在運行時處理電路系統10可以被認為一次在域82、84、86及88中的一者中操作。域82至88中的每一者與其自身相關聯的實體位址空間(physical address space; PAS)相關聯,該PAS實現資料與記憶體系統的至少部分內的不同域隔離。這將在下文更詳細描述。
非安全域86可以用於常規應用級處理,並且用於管理此種應用的作業系統及超管理器活動。因此,在非安全域86內,可能存在在EL0處操作的應用代碼30、在EL1處操作的作業系統(operating system; OS)代碼32及在EL2處操作的超管理器代碼34。
安全域84使得能夠將某一晶片上系統安全性、媒體或系統服務隔離到與用於非安全處理的實體位址空間分離的實體位址空間中。在非安全域代碼不可以存取與安全域84相關聯的資源的意義上,安全與非安全域不相等,而安全域可以存取安全及非安全資源兩者。支援安全及非安全域84、86的此種劃分的系統的實例是基於由Arm® Limited提供的TrustZone®架構的系統。安全域可以運行在EL0處信任的應用36、在EL1處信任的作業系統38、以及可選的在EL2處的安全劃分管理器40,若支援安全劃分,則該安全劃分管理器使用階段2頁表來以與超管理器34可管理在非安全域86中執行的虛擬機或客體作業系統32之間的隔離的方式類似的方式支援在安全域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管理在非安全域86中操作的不同部件之間的隔離的方式類似地在頁表結構中定義存取許可及位址映射。在此實例中,領域包括在EL0處執行的應用級領域42、及跨異常級別EL0及EL1執行的封裝應用/作業系統領域44。將瞭解,支援EL0及EL0/EL1類型的領域兩者並不是必要的,並且相同類型的多個領域可以由RMM 46建立。
領域域88具有分配給其的其自身的實體位址空間,與安全域84類似,但領域域在以下意義上與安全域84正交:儘管領域域88及安全域84可以各自存取與非安全域86相關聯的非安全PAS,但是領域域88及安全域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的實施方式。根域82可以使用由矽提供商或架構設計者提供(或認證)的監控軟體29實施,並且可以用於提供安全引導功能性、信任引導量測、晶片上系統配置、除錯控制及管理由其他方(諸如OEM)提供的韌體部件的韌體更新。根域代碼可以由矽提供商或架構設計者開發、認證及部署而不依賴於最終裝置。相比之下,安全域84可以由OEM管理來用於實施某一平臺及安全性服務。對非安全域86的管理可由作業系統32控制以提供作業系統服務,而領域域88允許開發新形式的信任執行環境,該等信任執行環境可以專屬於使用者或第三方應用,而與安全域84中的現有安全軟體環境相互隔離。
第3圖示意性地示出用於支援此等技術的處理系統2的另一實例。用相同元件符號示出與第1圖中相同的元件。第3圖更詳細地圖示位址變換電路系統16,其包含階段1及階段2記憶體管理單元50、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或SPM40可管理在相同域中運行的不同作業系統之間的隔離。
如第3圖所示,使用位址變換電路系統16的位址變換處理可返回安全屬性54,該等安全屬性與當前異常級別15及當前域14結合(或安全狀態),允許回應於給定記憶體存取請求而存取特定實體位址空間(由PAS識別符或「PAS TAG」識別)的區段。實體位址及PAS識別符可在顆粒保護表56中查找,該顆粒保護表提供先前描述的顆粒保護資訊。在此實例中,將PAS過濾器20圖示為顆粒記憶體保護單元(granular memory protection unit; GMPU),該顆粒記憶體保護單元驗證是否允許所選擇的PAS存取請求的實體位址並且若如此,則允許將異動傳遞到任何快取記憶體24或互連8,其是記憶體系統的系統結構(fabric)的部分。
GMPU 20允許將記憶體指派給分離的位址空間同時在將實體記憶體指派到此等位址空間的方法中提供強的、基於硬體的隔離保證並且提供空間及時間靈活性,以及有效的共享方案。如先前描述,將系統中的執行單元在邏輯上劃分為虛擬執行狀態(域或「世界」),其中存在一個位於最高異常級別(EL3)的執行狀態(根世界),稱為管理對此等世界的實體記憶體指派的「根世界」。
將單一系統實體位址空間虛擬化為多個「邏輯」或「架構」實體位址空間(Physical Address Space; PAS),其中各個此種PAS是具有獨立同調性屬性的正交位址空間。藉由用PAS標籤擴展系統實體位址來將該系統實體位址映射到單一「邏輯」實體位址空間。
允許給定世界存取邏輯實體位址空間的子集。這由硬體過濾器20實施,該硬體過濾器可以附接到記憶體管理單元16的輸出。
世界使用用於位址變換的頁表的變換表描述詞中的欄位來定義存取的安全屬性(PAS標籤)。硬體過濾器20存取表(顆粒保護表56、或GPT),該表為系統中的每頁定義實體位址空間顆粒保護資訊(granule protection information; GPI),該GPI指示PAS TAG其與(可選地)其他顆粒保護屬性相關聯。
硬體過濾器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變換為另一個。在檢驗GPI的當前狀態的EL3處向監控代碼29發出請求。EL3僅可允許發生一組特定的轉換(例如,從非安全PAS到安全PAS,而非從領域PAS到安全PAS)。為了提供乾淨的轉換,系統支援新的指令-「資料乾淨及無效到實體混淆點」,EL3可以在將頁面轉換為新PAS之前提交-這保證與先前PAS相關聯的任何剩餘狀態從PoPA 60的上游(比PoPA 60更靠近請求器側)的任何快取記憶體刷新。
可以藉由將GMPU 20附接到主機側達成的另一性質是在世界之間有效共享記憶體。可能期望向N個世界的子集授權對實體顆粒的共享存取,同時防止其他世界存取實體顆粒。這可以藉由將「限制性共享」語義添加到顆粒保護資訊,同時強制其使用特定PAS TAG來達成。舉例而言,GPI可以指示實體顆粒可以僅由「領域世界」88及「安全世界」84存取同時用安全PAS 84的PAS TAG標記。
以上性質的實例是使特定實體顆粒的可見度性質快速改變。考慮到以下情形:其中為每個世界指派有僅由該世界可存取的私有PAS。對於特定顆粒而言,世界可以藉由將其GPI從「排他的」改變為「與非安全世界限制性共享的」而不改變PAS關聯來請求使其在任何時間點為非安全世界可見。這樣,該顆粒的可見性可以增加,而不需要昂貴的快取記憶體維護或資料複製操作。
第4圖示出了將相應實體位址空間混淆到硬體中提供的實體記憶體上的概念。如先前描述,域82、84、86、88中的每一者具有其自身的相應實體位址空間61。
在由位址變換電路系統16生成實體位址時,實體位址具有在由系統所支援的某一數字範圍62內的值,無論選擇哪個實體位址空間,該值皆為相同的。然而,除了生成實體位址之外,位址變換電路系統16亦可基於當前域14及/或在用於導出實體位址的頁表條目中的資訊來選擇特定實體位址空間(physical address space; PAS)。或者,替代位址變換電路系統16執行對PAS的選擇,位址變換電路系統(例如,MMU)可以輸出實體位址及用於選擇PAS的從頁表條目(page table entry; PTE)導出的資訊,並且隨後此資訊可以由PAS過濾器或GMPU 20用於選擇PAS。
根據下表中定義的規則,當發佈記憶體存取請求時,針對給定記憶體存取請求選擇PAS可取決於處理電路系統10在其中操作的當前域而受限制:
當前域 非安全PAS 安全PAS 領域PAS 根PAS
非安全 可存取 不可存取 不可存取 不可存取
安全 可存取 可存取 不可存取 不可存取
領域 可存取 不可存取 可存取 不可存取
可存取 可存取 可存取 可存取
對於存在可用於選擇的多個實體位址空間的彼等域,用於提供實體位址的來自所存取的頁表條目的資訊用於在可用PAS選項之間進行選擇。
因此,在PAS過濾器20向系統結構24、8輸出記憶體存取請求時(假設其藉由任何過濾檢查),記憶體存取請求與實體位址(physical address; PA)及所選擇的實體位址空間(physical address space; PAS)相關聯。
從在實體混淆點(point of physical aliasing; PoPA) 60之前操作的記憶體系統部件(諸如快取記憶體、互連、監聽過濾器等)的觀點來看,相應實體位址空間61被視為對應於記憶體內的不同系統位置的完全分離的位址範圍。這意味著,從前PoPA記憶體系統部件的觀點來看,由記憶體存取請求識別的位址範圍實際上為在位址變換時輸出的範圍62的大小的四倍,如有效地將PAS識別符視為實體位址本身旁邊的附加位址位元,使得取決於選擇哪個PAS,可以將相同實體位址PAx映射到不同實體位址空間61中的多個混淆實體位址63。此等混淆實體位址63均實際上對應於實體硬體中實施的相同記憶體系統位置,但前PoPA記憶體系統部件將混淆位址63視為分離的位址。因此,若存在為此等位址分配條目的任何前PoPA快取記憶體或監聽過濾器,則以分離的快取記憶體命中/未命中決策及分離的同調性管理將混淆位址63映射到不同條目。此舉降低了攻擊者使用快取記憶體或同調側通道作為探測其他域的操作的機制的可能性或有效性。
系統可包括一個以上的PoPA 60(例如,如下文論述的第14圖所示)。在每個PoPA 60處,將混淆實體位址在系統實體位址空間64中折疊為單一去混淆位址65。在下游將去混淆位址65提供到任何後PoPA部件,使得實際上識別記憶體系統位置的系統實體位址空間64再次具有與可以在請求器側上執行的位址變換中輸出的實體位址的範圍相同的大小。例如,在PoPA 60處,PAS識別符可從位址剝離,並且對於下游部件而言,位址可使用實體位址值簡單地識別,而不規定PAS。或者,對於其中期望記憶體存取請求的一些完成器側過濾的一些情形,PAS識別符仍可以在PoPA 60的下游提供,但可能不解釋為位址的部分,使得在不同實體位址空間60中出現的相同實體位址將在PoPA的下游解釋為代表相同記憶體系統位置,而所供應的PAS識別符仍可以用於執行任何完成器側安全性檢查。
第5圖示出了如何使用顆粒保護表56將系統實體位址空間64劃分為經分配用於特定架構實體位址空間61內的存取的塊。顆粒保護表(granule protection table; GPT) 56定義允許從每個架構實體位址空間61存取系統實體位址空間65的哪些部分。例如,GPT 56可包含多個條目,各者對應於某一大小(例如,4K頁面)的實體位址的顆粒並且可定義為該顆粒指派的PAS,該PAS可從非安全、安全、領域及根域中選擇。藉由設計,若將特定顆粒或顆粒集合指派給與一個域相關聯的PAS,則其僅可以在與該域相關聯的PAS內存取並且不可以在其他域的PAS內存取。然而,注意到儘管分配給安全PAS(例如)的顆粒不可以從根PAS內存取,然而根域82能夠藉由在其頁表中規定PAS選擇資訊來存取該實體位址顆粒,該PAS選擇資訊用於確保將與映射到實體尋址的記憶體的該區域的頁面相關聯的虛擬位址變換為安全PAS而非根PAS中的實體位址。因此,跨域共享資料(到由先前描述的表中定義的可存取性/不可存取性規則許可的程度)可在為給定記憶體存取請求選擇PAS的點處控制。
然而,在一些實施方式中,除了允許在由GPT定義的所指派PAS內存取實體位址顆粒之外,GPT可以使用其他GPT屬性來將位址空間的某些區域標記為與另一位址空間(例如,原本正常不被允許為該域的存取請求選擇所指派PAS的與較低或正交特權的域相關聯的位址空間)共享。此舉可以促進暫時共享資料而不需要改變用於給定顆粒的所指派PAS。例如,在第5圖中,領域PAS的區域70在GPT中定義為指派給領域域,因此正常情況下其原本不可從非安全域86存取,因為非安全域86不可以為其存取請求選擇領域PAS。由於非安全域26不可以存取領域PAS,則正常情況下非安全代碼不可以看到區域70中的資料。然而,若領域暫時希望與非安全域共享其指派的記憶體區域中的一些資料,則其可以請求在根域82中操作的監控代碼29更新GPT 56以指示區域70將與非安全域86共享,並且此舉可使區域70亦可從非安全PAS存取,如在第5圖的左手側所示,而不需要改變哪個域是為區域70指派的域。若領域域已將其位址空間的區域指定為與非安全域共享,則儘管目標向從非安全域發佈的該區域的記憶體存取請求可最初規定非安全PAS,PAS過濾器20可替代地再次映射請求的PAS識別符以規定領域PAS,使得下游記憶體系統部件將請求視為其總是從領域域發佈。此共享可以改進效能,因為用於將不同域指派給特定記憶體區域的操作可能是更加效能密集的,涉及記憶體中的較大程度的快取記憶體/TLB無效及/或資料歸零或在記憶體區域之間複製資料,若僅期望共享為暫時的,則這可能是不必要的。
第6圖係圖示如何決定操作的當前域的流程圖,該操作可以由處理電路系統10或由位址變換電路系統16或PAS過濾器20執行。於步驟100,決定當前異常級別15是否是EL3,並且若是,則於步驟102,決定當前域為根域82。若當前異常級別不是EL3,則於步驟104,決定當前域為非安全、安全及領域域86、84、88中的一者,如由處理器的EL3控制暫存器內的至少兩個域指示位元14所指示(由於根域由為EL3的當前異常級別指示,編碼對應於根域的域指示位元14可能不重要,因此域指示位元的至少一個編碼可以出於其他目的而保留)。EL3控制暫存器當在EL3處操作時是可寫入的並且不可以從其他異常級別EL2-EL0寫入。
第7圖圖示可以用於由位址變換電路系統16用於將虛擬位址映射到實體位址、將虛擬位址映射到中間位址或將中間位址映射到實體位址(取決於是否在需要階段2變換的操作狀態下執行變換,並且若需要階段2變換,則變換是階段1變換還是階段2變換)的頁表結構中的頁表條目的頁表條目(page table entry; PTE)格式的實例。通常,給定頁表結構可定義為實施為頁表樹的多級表結構,其中頁表的第一級基於在處理器的變換表基底位址暫存器中儲存的基底位址而識別,並且在頁表內選擇特定1級頁表條目的索引從對其執行變換查找的輸入位址的位元子集導出(輸入位址可以是用於階段2變換的中間位址的階段1變換的虛擬位址)。1級頁表條目可以是向下一級頁表提供指針112的「表描述詞」110,另外的頁表條目可以隨後基於輸入位址的位元的另外子集從該表描述詞選擇。最終,在對頁表的後續級別的一或多次查找之後,可識別區塊或頁面描述詞PTE 114、116、118,其提供對應於輸入位址的輸出位址120。輸出位址可以是中間位址(對於在操作狀態中執行的階段1變換,其中亦執行另外的階段2變換)或實體位址(對於階段2變換、或當階段2不需要時為階段1變換)。
為了支援上文描述的不同實體位址空間,除了下一級頁表指針112或輸出位址120、以及用於控制對記憶體的對應區塊的存取的任何屬性122之外,頁表條目格式亦可規定一些附加狀態來用於實體位址空間選擇。
對於表描述詞110而言,由除了非安全域86之外的任何域使用的PTE包括非安全表指示符124,該非安全表指示符指示下一級頁表從非安全實體位址空間還是從當前域的實體位址空間存取。這幫助促進對頁表的更有效管理。經常,由根、領域或安全域24使用的頁表結構可能僅需要為虛擬位址空間的一部分定義特殊頁表條目,並且對於其他部分而言,與由非安全域26使用者相同的頁表條目可以使用,因此藉由提供非安全表指示符124,這可以允許較高級別的頁表結構提供專屬領域安全表描述詞,而在頁表樹的某一點處,根領域或安全域可以切換到將來自非安全域的頁表條目用於其中不需要較高安全性的位址空間的彼等部分。在頁表樹的其他部分中的其他頁表描述詞仍可以從與根、領域或安全域相關聯的相關實體位址空間擷取。
另一方面,區塊/頁面描述詞114、116、118可取決於其等與哪個域相關聯而包括實體位址空間選擇資訊126。在非安全域86中使用的非安全區塊/頁面描述詞118不包括任何PAS選擇資訊,因為非安全域僅能夠存取非安全PAS。然而,對於其他域而言,區塊/頁面描述詞114、116包括用於選擇將輸入位址變換為哪個PAS的PAS選擇資訊126。對於根域22而言,EL3頁表條目可具有PAS選擇資訊126,該PAS選擇資訊包括至少2個位元以將與4個域82、84、86、88中的任一者相關聯的PAS指示為所選擇PAS,將對應實體位址變換為該所選擇PAS。相比之下,對於領域及安全域而言,對應的區塊/頁面描述詞116僅需要包括一個位元的PAS選擇資訊126,對於領域域而言,該PAS選擇資訊在領域與非安全PAS之間進行選擇,並且對於安全域而言,在安全與非安全PAS之間進行選擇。為了改進電路實施方式的效率並且避免增加頁表條目的大小,對於領域及安全域而言,區塊/頁面描述詞116可在PTE內的相同位置處編碼PAS選擇資訊126而與當前域是領域還是安全的無關,使得可以共享PAS選擇位元126。
因此,第8圖是圖示基於當前域及來自在為給定記憶體存取請求生成實體位址時使用的區塊/頁面PTE的資訊124、126來選擇PAS的方法的流程圖。PAS選擇可以由位址變換電路系統16執行,或者若位址變換電路系統將PAS選擇資訊126轉發到PAS過濾器20,則由位址變換電路系統16及PAS過濾器20的組合執行。
於第8圖中的步驟130,處理電路系統10發佈將給定虛擬位址(VA)規定為目標VA的記憶體存取請求。於步驟132,位址變換電路系統16查找其TLB 18中的任何頁表條目(或從此種頁表條目導出的快取的資訊)。若任何需要的頁表資訊不可用,則位址變換電路系統16向記憶體發起頁表漫步以擷取所需要的PTE(潛在地需要一系列記憶體存取以逐步經過頁表結構的相應級和/或位址變換的多個階段,用於獲得從VA到中間位址(IPA)並且隨後從IPA到PA的映射)。注意到,在頁表漫步操作中由位址變換電路系統16發佈的任何記憶體存取請求本身可能經歷位址變換及PAS過濾,因此於步驟130接收的請求可以是發佈以從記憶體請求頁表條目的記憶體存取請求。一旦已經識別相關頁表資訊,就將虛擬位址變換為實體位址(可能經由IPA以兩個階段變換)。於步驟134,位址變換電路系統16或PAS過濾器20使用第6圖所示的途徑決定哪個域是當前域。
若當前域是非安全域,則於步驟136,為此記憶體存取請求選擇的輸出PAS是非安全PAS。
若當前域是安全域,則於步驟138,輸出PAS基於PAS選擇資訊126來選擇,該PAS選擇資訊包括在提供實體位址的區塊/頁面描述詞PTE中,其中輸出PAS將被選擇為安全PAS或非安全PAS。
若當前域是領域域,則於步驟140,輸出PAS基於PAS選擇資訊126來選擇,該PAS選擇資訊包括在從其導出實體位址的區塊/頁面描述詞PTE中,並且在此情形中,輸出PAS被選擇為領域PAS或非安全PAS。
若於步驟134,決定當前域為根域,則於步驟142,輸出PAS基於從其導出實體位址的根區塊/頁面描述詞PTE 114中的PAS選擇資訊126來選擇。在此情形中,輸出PAS被選擇為與根、領域、安全及非安全域相關聯的實體位址空間中的任一者。
第9圖示出了用於給定實體位址顆粒的GPT 56的條目的實例。GPT條目150包括識別指派給該實體位址顆粒的PAS的所指派PAS識別符152,並且可選地包括另外屬性154,該等另外屬性可以例如包括使得實體位址顆粒能夠在除了所指派PAS之外的一或多個其他PAS中變得可見的先前描述的共享屬性資訊156。共享屬性資訊156的設置可以由根域根據來自與所指派PAS相關聯的域中運行的代碼的請求來執行。此外,屬性可以包括通過指示符欄位158,該通過指示符欄位指示GPT是否檢查(用於決定是否允許為記憶體存取請求選擇的PAS存取該實體位址顆粒)應當在請求器側上由PAS過濾器20還是由互連的完成器裝置側處的完成器側過濾電路系統執行,如將在下文進一步論述。若通過指示符158具有第一值,則可能在請求器側上的PAS過濾器20處需要請求器側過濾檢查,並且若該等檢查失敗,則可阻止記憶體存取請求並且可發信號通知故障。然而,若通過指示符158具有第二值,則可能不需要針對在對應於該GPT條目150的實體位址顆粒中規定實體位址的記憶體存取請求的基於GPT 56的請求器側過濾檢查,並且在此情形中,記憶體存取請求可傳遞到快取記憶體24或互連8而與檢查所選擇的PAS是否是允許存取該實體位址顆粒的經允許PAS中的一者無關,其中任何此種PAS過濾檢查隨後替代地在完成器側處稍後執行。
第10圖是圖示在互連8的請求器側處由PAS過濾器20執行的的請求器側PAS過濾檢查的流程圖。於步驟170,PAS過濾器20接收與實體位址相關聯的記憶體存取請求及可如先前描述的第8圖所示選擇的輸出PAS。
於步驟172,PAS過濾器20從顆粒保護資訊快取記憶體22(若可用)或藉由向記憶體發佈請求以從記憶體中儲存的表結構擷取所需要的GPT條目來獲得對應於規定的PA的GPT條目。一旦已經獲得需要的GPT條目,則於步驟174,PAS過濾器決定為記憶體存取請求選擇的輸出PAS是否與在步驟172處獲得的GPT條目中定義的所指派PAS 152相同。若如此,則於步驟176,可以允許將記憶體存取請求(規定PA及輸出PAS)傳遞到快取記憶體24或互連8。
若輸出PAS不是所指派的PAS,則於步驟178,PAS過濾器決定輸出PAS是否在來自獲得的GPT條目的共享屬性資訊156中指示為經允許PAS,允許該PAS存取對應於規定PA的位址顆粒。若如此,則再次於步驟176,允許將記憶體存取請求傳遞至快取記憶體24或互連8。共享屬性資訊可以在GPT條目150內編碼為唯一位元(或位元集合),或可以編碼為GPT條目150的欄位的一或多個編碼,對此該相同欄位的其他編碼可指示其他資訊。若步驟178決定共享屬性指示允許除了所指派PAS之外的輸出PAS存取PA,則於步驟176,在傳遞到快取記憶體24或互連8的記憶體存取請求中規定的PAS是所指派PAS,而不是輸出PAS。PAS過濾器20變換由記憶體存取請求規定的PAS以匹配所指派PAS,使得下游記憶體系統部件將其視為與規定所指派PAS的發佈的請求相同。
若輸出PAS未在共享屬性資訊156中指示為允許存取規定的實體位址(或者替代地,在不支援共享屬性資訊156的實施方式中,跳過步驟178),則於步驟180,決定用於目標實體位址的所獲得的GPT條目中的通過指示符158識別記憶體存取請求可以傳遞到快取記憶體24或互連8而與請求器側PAS過濾器20處執行的檢查無關,並且若規定通過指示符,則於步驟176並且再次允許進行記憶體存取請求(將輸出PAS規定為與記憶體存取請求相關聯的PAS)。或者,若於步驟174、178及180處沒有檢查識別允許記憶體存取請求,則於步驟182,阻止記憶體存取請求。因此,不將記憶體存取請求傳遞到快取記憶體24或互連8,並且可發信號通知故障,這可觸發異常處理以處置故障。
儘管在第10圖中相繼圖示步驟174、178、180,若期望,此等步驟亦可以並行或以不同順序實施。此外,將瞭解,步驟178及180並不重要並且一些實施方式可能不支援使用共享屬性資訊156及/或通過指示符158。
第11圖總結位址變換電路系統16及PAS過濾器的操作。PAS過濾20可以被認為是在由位址變換電路系統執行的階段1(及可選地階段2)位址變換之後執行的附加階段3檢查。亦注意到,EL3變換是基於頁表條目的,該等頁表條目提供兩個位元的基於位址的選擇資訊(在第11圖的實例中標記為NS、NSE),而單一位元的選擇資訊「NS」用於選擇處於其他狀態的PAS。在第11圖中指示為輸入到顆粒保護檢查的安全狀態指代識別處理元件4的當前域的域ID。
第12圖是圖示階段3查找快取無效指令的處理的流程圖,該指令可以由在根域82中操作的監控代碼29使用以觸發任何查找快取記憶體條目的無效,這取決於與特定實體位址相關聯的GPT條目。這當根域改變給定系統PA指派給哪個實體位址空間的分配時可以是有用的,使得任何查找快取記憶體22將不保留過期的資訊。
因此,於步驟200,在給定處理元件(請求器裝置)4內的處理電路系統10可執行階段3查找快取無效指令。指令規定實體位址。
於步驟202,回應於階段3查找快取無效指令,處理電路系統10可檢查當前異常級別是否是EL3,並且若不是,則於步驟204,可拒絕指令及/或發信號通知異常(諸如未定義的指令異常)。這限制階段3查找快取無效指令對與根域相關聯的監控代碼29的執行以藉由強制使來自查找快取記憶體22的顆粒保護資訊無效而防止惡意方觸發效能損失,該無效由其他異常級別觸發。
若當前異常級別是EL3,則於步驟206,回應於步驟200處執行的指令,處理元件發佈發送到任何查找快取記憶體18、22的至少一個查找快取無效命令,該命令可含有取決於與指令識別的實體位址相關聯的顆粒保護表條目的資訊。此等快取記憶體可不僅包括如第1圖所示的顆粒保護資訊快取記憶體22,亦在一些實施方式中包括組合的TLB/顆粒保護快取記憶體,其將來自頁表結構的資訊及GPT組合為單一條目。對於此種組合的TLB/GPT快取記憶體,組合的快取記憶體可需要由虛擬位址及由實體位址查找的能力。
於步驟208,回應於所發佈的命令,GPT快取記憶體22或組合的TLB/GPT快取記憶體使取決於來自與實體位址顆粒相關聯的GPT條目的顆粒保護資訊的任何條目無效,該實體位址顆粒對應於由查找快取無效命令規定的實體位址。
由於記憶體系統內的快取記憶體可用相關聯的PAS的標識來標記條目,該標識用於位於PoPA之前的彼等快取記憶體,則若根域代碼29藉由更新GPT 56來改變哪個PAS與某一實體位址顆粒相關聯,仍可以存在在前PoPA快取記憶體中快取的資料,該資料用錯誤PAS標記以用於該實體位址顆粒。為了防止在GPT更新之後發佈的後續存取命中快取記憶體條目,該等快取記憶體條目應當不再為發佈彼等請求的域可存取,提供確保與特定實體位址相關聯的任何快取的條目在PoPA 60之前的任何快取記憶體中無效的指令可以是有用的。此指令可以是與其他類型的快取無效指令不同的指令,該指令可用於記憶體系統的不同子集內的快取記憶體,諸如在同調點之前的快取記憶體或特定處理元件本端的快取記憶體。因此,處理電路系統可支援在由系統中的快取記憶體觀察到無效的範圍方面進行區分的快取無效PoPA指令,其中該範圍對應於在PoPA上游的記憶體系統的部分。亦即,對於此指令而言,PoPA是對快取記憶體必須觀察到無效的程度的限制。
第13圖是圖示處理快取無效PoPA指令的流程圖。於步驟220,快取無效PoPA指令由給定請求器裝置4的處理電路系統10執行。指令規定虛擬位址,並且於步驟222,將此虛擬位址映射到實體位址。然而,在一些情形中,與第12圖所示的指令類似,為無效的快取記憶體執行指令直到PoPA可以被限制為僅在EL3中執行。於步驟224,執行指令的處理元件發佈規定實體位址的無效命令,其中將彼等命令發送到系統內的任何前PoPA快取記憶體24。這可以不僅在請求器裝置4內亦在互連8內或在其他請求器裝置4或其他記憶體系統部件內包括PoPA上游的快取記憶體,該等其他請求器裝置4或其他記憶體系統部件位於將不同的實體位址空間61視為分離範圍的尋址記憶體位置的點處。
快取無效PoPA指令可以在一些情形中為該指令的「清除且無效」形式,該形式不僅請求與規定的PA相關聯的資料從前PoPA快取記憶體無效,亦請求在無效之前,資料藉由將任何臟資料寫回PoPA 60之外的位置來清除。因此,於步驟226,若指令是清除且無效形式的指令,則接收命令的前PoPA快取記憶體觸發從與規定的實體位址相關聯的任何條目寫回臟資料。此資料可寫入PoPA之外的快取記憶體或主記憶體。若指令不是清除且無效形式的指令,或者若不支援清除且無效形式的指令,則步驟226可以忽略並且方法可以直接進行到步驟228,若執行步驟226,則亦會執行步驟228。於步驟228,於步驟224接收命令的前PoPA快取記憶體使其與規定的實體位址相關聯的條目無效。使與規定的實體位址相關聯的快取的條目無效,而與哪個PAS標籤與彼等條目相關聯無關。
因此,快取無效PoPA指令可以用於確保在更新GPT之後快取記憶體不繼續到與具有錯誤PAS識別符的給定實體位址相關聯的標籤條目。
第14圖圖示了可實施上文論述的一些技術的資料處理系統的更詳細實例。用相同元件符號示出與先前實例中相同的元件。在第14圖的實例中,更詳細地圖示處理元件4,其中除了處理電路系統10、位址變換電路系統16、TLB 18及PAS過濾器20之外,更詳細地圖示快取記憶體24,包括1階指令快取記憶體、1階資料快取記憶體、2階快取記憶體、及可選地在處理元件之間共享的所共享3階快取記憶體24。中斷控制器300可控制由相應處理元件處置中斷。
如第14圖所示,能夠執行程式指令以觸發對記憶體的存取的處理元件4不是具備請求器側PAS過濾器20的作請求裝置的唯一類型。在其他實例中,系統MMU 310(提供該系統MMU用於為不支援其自身的位址變換功能性的作請求裝置312、314提供位址變換功能性,諸如晶片上裝置312,諸如網路介面控制器或顯示控制器,或可經由匯流排與系統通訊的晶片外裝置314)可具備與處理元件4中的PAS過濾器20相同的PAS過濾器20以執行GPT條目的請求器側檢查。其他作請求裝置可以包括除錯存取埠316及控制處理器318,若PAS指派在GPT 56中定義,則該控制處理器可再次具有與其相關聯的PAS過濾器20以檢查是否允許由作請求裝置316、318發佈的對特定實體位址空間記憶體的存取。
互連8在第14圖中更詳細地圖示為同調互連8,除了路由結構320之外,該同調互連亦包括用於管理在相應處理元件中的快取記憶體24之間的同調性的監聽過濾器322、及可執行在作請求裝置之間共享的所共享資料的快取的一或多個系統快取記憶體324。監聽過濾器322及系統快取記憶體324可位於PoPA 60的上游,並且因此可使用由MMU 16 、310為特定主裝置選擇的PAS識別符來標記其條目。可以假設不與MMU相關聯的作請求裝置316、318默認總是發佈請求特定域,諸如非安全域(或根域,若其等可以信任)。
作為將相應PAS中的混淆實體位址視為其等指代不同的位址位置的前PoPA部件的另一實例,第14圖圖示了在互連8與用於控制對晶片外記憶體340的存取的給定記憶體控制器6之間提供的記憶體保護引擎(memory protection engine; MPE) 330。MPE 330可負責加密寫入晶片外記憶體340的資料以維護機密性,並且當讀回時解密資料。此外,MPE可以藉由當將資料寫入記憶體時生成完整性元資料,以及當資料從晶片外記憶體寫回以驗證資料是否改變時使用元資料,來保護免受在晶片外記憶體中儲存的資料的篡改。當加密資料或生成散列用於記憶體完整性時,即使存取實際上對應於晶片外記憶體340中的相同位置的混淆實體位址,亦可以取決於正存取哪個實體位址空間來使用不同密鑰。此舉藉由進一步隔離與操作的不同域相關聯的資料來改進安全性。
在此實例中,PoPA 60在記憶體保護引擎330與記憶體控制器6之間,使得在請求到達記憶體控制器6時,不再將實體位址視為映射到記憶體340中的不同實體位置,取決於從其存取該等實體位址的實體位址空間。
第14圖圖示了完成器裝置6的另一實例,該完成器裝置可以是用於與週邊設備350或晶片上記憶體360的區域(例如,實施為靜態隨機存取記憶體(static random access memory; SRAM))通訊的週邊匯流排或非同調互連。此外,週邊匯流排或非同調互連6可以用於與安全元件370進行通訊,諸如用於執行密碼處理的密碼單元、隨機數字生成器372或儲存靜態硬連線資訊的某些熔絲374。此外,各種功率/重置/除錯控制器380可經由週邊匯流排或非同調互連6來存取。
對於晶片上SRAM 360而言,提供從裝置側(完成器側)PAS過濾器400可能是有用的,該從裝置側(完成器側)PAS過濾器可以基於定義允許哪些實體位址空間存取實體位址的給定區塊的完成器側保護資訊來執行記憶體存取的完成器側過濾。與由請求器側PAS過濾器20使用的GPT相比,此完成器側資訊可更粗略地定義。例如,從裝置側資訊可以簡單地指示完整SRAM單元361可以專屬於由領域域使用,另一SRAM單元362可以專屬於由根域使用,並且對於其他域依此類推。因此,實體位址的相對粗略定義的區塊可以涉及不同SRAM單元。此完成器側保護資訊可以由引導加載器代碼靜態地定義,該引導加載器代碼在引導時將無法在運行時改變的資訊加載到完成器側PAS過濾器,因此該保護資訊不如由請求器側PAS過濾器20使用的GPT靈活。然而,對於其中將實體位址分為每個域可存取的特定區域在引導時已知並且不會改變且不需要細粒度的劃分的使用情形而言,使用從裝置側PAS過濾器400而非請求器側上的PAS過濾器20可以更為有效,由於這可允許在請求器側上消除獲得GPT條目及將所指派的PAS及共享屬性資訊與當前記憶體存取請求的資訊進行比較的功率及效能成本。此外,若通過指示符158可以在多級GPT結構中的頂級GPT條目(或在不同於最終級的級別處的其他表描述詞條目)中指示,則可以針對目標向實體位址的一個區域的請求避免存取GPT結構的另外級(可執行該存取以在所指派的PAS上找到更細粒度的資訊用於經歷請求器側檢查的請求),該實體位址的區域映射到由完成器側PAS過濾器400監管的晶片上記憶體360。
因此,支援實現對保護資訊的請求器側及完成器側檢查的混合途徑可以用於效能及功率效率。系統設計者可定義應當採取哪種途徑用於記憶體的特定區域。
第15圖示出可使用的模擬器實施方式。儘管先前描述的實施例關於用於操作支援相關技術的特定處理硬體的裝置及方法來實施本發明,亦可能根據本文描述的實施例提供經由使用電腦程式來實施的指令執行環境。此種電腦程式經常被稱為模擬器,考慮到該等電腦程式提供硬體架構的基於軟體的實施方式。模擬器電腦程式的變化包括模擬器、虛擬機、模型及二進制轉換器,包括動態二進制轉換器。通常,模擬器實施方式可在主處理器430上運行,視情況運行主作業系統420,從而支援模擬器程式410。在一些佈置中,在硬體與所提供的指令執行環境之間及/或在相同主處理器上提供的多個不同指令執行環境之間可能存在多層模擬。歷史上,已需要高效處理器提供以合理速度執行的模擬器實施方式,但此種途徑可在某些情況下為合理的,諸如當期望運行另一處理器本機的代碼以獲得相容性時,或出於再用的原因。例如,模擬器實施方式可提供具有不由主處理器硬體支援的額外功能的指令執行環境,或提供通常與不同硬體架構相關聯的指令執行環境。模擬的概述在「Some Efficient Architecture Simulation Techniques」,Robert Bedichek,Winter 1990 USENIX Conference,第53頁至第63頁中給出。
就此而言,實施例先前已經在模擬實施例中參考特定硬體構造或特徵進行描述,等效功能可由適當的軟體構造或特徵提供。例如,特定電路系統可在模擬實施例中實施為電腦程式邏輯。類似地,記憶體硬體(諸如暫存器或快取記憶體)可在模擬實施例中實施為軟體資料結構。在先前描述的實施例中參考的一或多個硬體元件存在於主硬體(例如,主處理器430)上的排列中,一些模擬實施例可在適當時利用主硬體。
模擬器程式410可儲存在電腦可讀取儲存媒體(其可係非暫時性媒體)上,並且向目標代碼400(其可包括應用、作業系統和超管理器)提供程式介面(指令執行環境),該程式介面與由模擬器程式410模型化的硬體架構的介面相同。因此,目標代碼400的程式指令可使用模擬器程式410在指令執行環境內執行,使得實際上不具有上文論述的裝置2的硬體特徵的主機電腦430可以模擬此等特徵。這對於例如允許在實際上支援新版本的處理器架構的硬體裝置仍然可用之前測試針對該處理器架構的新版本開發的目標代碼400可以是有用的,由於目標代碼可以藉由在不支援該架構的主機裝置上執行的模擬器內運行來測試。
模擬器代碼包括模擬處理電路系統10的行為的處理程式邏輯412,例如,包括指令解碼程式邏輯,該指令解碼程式邏輯解碼目標代碼400的指令並且將指令映射到由主機硬體430支援的本端指令集中的對應指令序列以執行等效於所解碼指令的功能。處理程式邏輯412亦模擬對處於如上文描述的不同異常等級及域的代碼進行處理。暫存器模擬程式邏輯413維護主處理器的主位址空間中的資料結構,該暫存器模擬程式邏輯模擬根據與目標代碼400相關聯的目標指令集架構定義的架構暫存器狀態。因此,不同於如在第1圖的實例中在硬體暫存器120中儲存此種架構狀態,替代地將該架構狀態儲存在主處理器430的記憶體中,其中暫存器模擬程式邏輯413將目標代碼400的指令的暫存器參考映射到用於從主記憶體獲得模擬的架構狀態資料的對應位址。此架構狀態可包括先前描述的當前域指示14及當前異常級別指示15。
模擬代碼包括暫存器模擬程式邏輯414及過濾程式邏輯416,參考如先前描述的相同頁表結構及GPT 56,該等邏輯分別模擬位址變換電路系統16及PAS過濾器20的功能性。因此,位址變換程式邏輯414將由目標代碼400規定的虛擬位址變換為在PAS的一者中模擬的實體位址(從目標代碼的觀點來看代表記憶體中的實體位置),但實際上藉由位址空間映射程式邏輯415將此等模擬的實體位址映射到主處理器的(虛擬)位址空間上。過濾程式邏輯416以與上文描述的PAS過濾器相同的方式執行顆粒保護資訊的查找以決定是否允許由目標代碼觸發的記憶體存取進行。
另外的實例在以下條款中闡述:
(1)一種裝置,包含:處理電路系統,用於在至少三個域的一者中執行處理;以及位址變換電路系統,用於將從當前域執行的記憶體存取的虛擬位址變換為在至少基於當前域選擇的複數個實體位址空間的一者中的實體位址;其中:至少三個域包括用於管理在至少三個域中的複數個其他域之間的切換的根域;以及複數個實體位址空間包括與根域相關聯的根實體位址空間,該根實體位址空間與和複數個其他域相關聯的實體位址空間分離。
(2)如條款(1)所述的裝置,其中根實體位址空間從根域獨佔地存取。
(3)如條款(1)及(2)中的任一項所述的裝置,其中全部複數個實體位址空間從根域可存取。
(4)如任何前述條款所述的裝置,其中複數個其他域至少包含:與安全實體位址空間相關聯的安全域、及與較不安全實體位址空間相關聯的較不安全域;較不安全實體位址空間從較不安全域、安全域及根域可存取;以及安全實體位址空間從安全域及根域可存取並且從較不安全域不可存取。
(5)如條款(4)所述的裝置,其中複數個其他域亦包含與另外實體位址空間相關聯的另外域;較不安全實體位址空間亦從另外域可存取;以及另外實體位址空間從另外域及根域可存取並且從較不安全域不可存取。
(6)如條款(5)所述的裝置,其中另外實體位址空間從安全域不可存取;以及安全實體位址空間從另外域不可存取。
(7)如條款(4)至(6)中的任一項所述的裝置,其中較不安全實體位址空間從全部該等至少三個域可存取。
(8)如任何前述條款所述的裝置,其中位址變換電路系統經配置為基於至少一個頁表條目將虛擬位址變換為實體位址;以及至少在當前域是該等至少三個域的子集的一者時,位址變換電路系統經配置為基於當前域及在該至少一個頁表條目中規定的實體位址空間選擇資訊來選擇該複數個實體位址空間的該一者。
(9)如條款(8)所述的裝置,其中在當前域是根域時,位址變換電路系統經配置為基於根域頁表條目將虛擬位址變換為實體位址,對此實體位址空間選擇資訊包含實體位址空間選擇資訊的至少兩個位元用於在從根域可存取的至少三個實體位址空間之間進行選擇。
(10)如條款(6)所述的裝置,其中位址變換電路系統經配置為基於至少一個頁表條目將虛擬位址變換為實體位址;在當前域是安全域時,位址變換電路系統經配置為基於在至少一個頁表條目中規定的實體位址空間選擇指示符來選擇該複數個實體位址空間的該一者是安全實體位址空間還是較不安全實體位址空間;以及在當前域是另外域時,位址變換電路系統經配置為基於在至少一個頁表條目中規定的實體位址空間選擇指示符來選擇該複數個實體位址空間的該一者是另外實體位址空間還是較不安全實體位址空間。
(11)如條款(10)所述的裝置,其中實體位址空間選擇指示符在至少一個頁表條目內的相同位置處編碼而與當前域是安全域還是另外域無關。
(12)如任何前述條款所述的裝置,包含在實體混淆點(PoPA)的上游提供的至少一個前PoPA記憶體系統部件,用於將來自對應於相同記憶體系統資源的不同實體位址空間的混淆實體位址視為該等混淆實體位址對應於不同記憶體系統資源。
(13)如條款(12)所述的裝置,其中混淆實體位址包含在不同實體位址空間中使用相同實體位址值表示的實體位址。
(14)如條款(12)及(13)中的任一項所述的裝置,包含PoPA記憶體系統部件,經配置為去混淆複數個混淆實體位址以獲得向至少一個下游記憶體系統部件提供的去混淆的實體位址。
(15)如條款(12)至(14)中的任一項所述的裝置,其中該至少一個前PoPA記憶體系統部件包含至少一個前PoPA快取記憶體;以及回應於規定目標位址的快取無效PoPA指令,處理電路系統經配置為發佈至少一個無效命令以請求該至少一個前PoPA快取記憶體使與對應於目標位址的目標實體位址值相關聯的一或多個條目無效。
(16)如條款(15)所述的裝置,其中當處理電路系統發佈至少一個無效命令時,允許位於PoPA下游的至少一個後PoPA快取記憶體保留與目標實體位址值相關聯的一或多個條目。
(17)如條款(15)及(16)中的任一項所述的裝置,其中回應於至少一個無效命令,至少一個前PoPA快取記憶體經配置為使與目標實體位址值相關聯的一或多個條目無效而與複數個實體位址空間中的哪個與該一或多個條目相關聯無關。
(18)如任何前述條款所述的裝置,包含記憶體加密電路,回應於規定所選擇實體位址空間及在所選擇的實體位址空間內的目標實體位址的記憶體存取請求,當目標實體位址在受保護的位址區域內時,基於取決於所選擇實體位址空間選擇的複數個加密密鑰的一者來加密或解密與受保護的區域相關聯的資料。
(19)一種資料處理方法,包含:在至少三個域的一者中執行處理;以及將從當前域執行的記憶體存取的虛擬位址變換為在至少基於當前域選擇的複數個實體位址空間的一者中的實體位址;其中:至少三個域包括用於管理在至少三個域的複數個其他域之間的切換的根域;以及複數個實體位址空間包括與根域相關聯的根實體位址空間,與複數個其他域相關聯的實體位址空間分離。
(20)一種用於控制主機資料處理裝置以提供用於執行目標代碼的指令執行環境的電腦程式;該電腦程式包含:處理程式邏輯,用於模擬在至少三個域的一者中處理目標代碼;以及位址變換程式邏輯,用於將從當前域執行的記憶體存取的虛擬位址變換為在至少基於當前域選擇的複數個經模擬的實體位址空間的一者中的實體位址;其中:至少三個域包括用於管理在至少三個域的複數個其他域之間的切換的根域;以及複數個經模擬的實體位址空間包括與根域相關聯的根經模擬的實體位址空間,與複數個其他域相關聯的經模擬的實體位址空間分離。
(21)一種儲存如條款(20)所述的電腦程式的電腦可讀取儲存媒體。
在本申請案中,詞語「經配置為……」用於意謂裝置的元件具有能夠進行所定義操作的配置。在此上下文中,「配置」意謂硬體或軟體的佈置或互連方式。例如,裝置可具有提供所定義操作的專用硬體,或者處理器或其他處理裝置可經程式設計為執行該功能。「經配置為」不暗指需要以任何方式改變裝置元件以便提供所定義操作。
儘管已在本文中參考隨附圖式詳細描述了本發明的說明性實施例,應理解,本發明不限於彼等精確實施例,且熟習該項技術者可在其中實現各種變化及修改而不脫離由隨附申請專利範圍所定義的本發明的範疇。
2:資料處理系統 4:請求器裝置 6:完成器裝置 8:互連 10:處理電路系統 12:暫存器 14:當前域指示 15:當前異常級別指示 16:位址變換電路系統 18:變換旁看緩衝器(TLB) 20:PAS過濾器 22:顆粒保護資訊快取記憶體 24:快取記憶體 29:監控代碼 30:應用 32:作業系統 34:超管理器 38:作業系統 40:安全劃分管理器 42:應用級領域 44:封裝應用/作業系統領域 46:領域管理模組(RMM) 50:階段1 MMU 52:階段2 MMU 54:安全屬性 56:顆粒保護表 60:實體混淆點 61:實體位址空間 62:數字範圍 63:混淆實體位址 64:系統實體位址空間 65:去混淆位址 70:區域 80:異常級別 82:根域 84:安全(S)域 86:較不安全域 88:領域域 100:步驟 102:步驟 104:步驟 110:表描述詞 112:指針 114:區塊/頁面描述詞 116:區塊/頁面描述詞 118:區塊/頁面描述詞 120:輸出位址 122:屬性 124:非安全表指示符 126:PAS選擇資訊 130:步驟 132:步驟 134:步驟 136:步驟 138:步驟 140:步驟 142:步驟 150:GPT條目 152:PAS識別符 154:屬性 156:共享屬性資訊 158:通過指示符 170:步驟 172:步驟 174:步驟 176:步驟 178:步驟 180:步驟 182:步驟 200:步驟 202:步驟 204:步驟 206:步驟 208:步驟 220:步驟 222:步驟 224:步驟 226:步驟 228:步驟 300:中斷控制器 310:系統MMU 312:晶片上裝置 314:晶片外裝置 316:除錯存取埠 318:控制處理器 320:路由結構 322:監聽過濾器 324:系統快取記憶體 330:記憶體保護引擎(MPE) 340:晶片外記憶體 350:週邊設備 360:晶片上記憶體 361:SRAM單元 362:SRAM單元 370:安全元件 372:隨機數字生成器 374:熔絲 380:功率/重置/除錯控制器 400:裝置側PAS過濾器 410:模擬器程式 412:處理程式邏輯 413:暫存器模擬程式邏輯 414:暫存器模擬程式邏輯 415:位址空間映射程式邏輯 416:過濾程式邏輯 420:主作業系統 430:主處理器
本技術的進一步態樣、特徵及優點將從結合附圖閱讀的實例的以下描述顯而易見,其中:
第1圖示出了資料處理裝置的實例;
第2圖示出了處理電路系統可以在其中操作的多個域;
第3圖示出了支援顆粒保護查找的處理系統的實例;
第4圖示意性示出了將多個實體位址空間混淆到識別記憶體系統中的位置的系統實體位址空間上;
第5圖示出了劃分有效硬體實體位址存取空間使得不同架構實體位址空間存取系統實體位址空間的相應部分的實例;
第6圖是示出決定處理電路系統的操作的當前域的方法的流程圖;
第7圖圖示了用於將虛擬位址變換為實體位址的頁表條目的頁表條目格式的實例;
第8圖係圖示選擇將由給定記憶體存取請求存取的實體位址空間的方法的流程圖;
第9圖示出了用於提供顆粒保護資訊的顆粒保護表的條目的實例,該顆粒保護資訊指示允許哪些實體位址空間存取給定實體位址;
第10圖係圖示執行顆粒保護查找的方法的流程圖;
第11圖示出了位址變換及顆粒保護資訊過濾的多個階段;
第12圖係示出處理快取無效指令的流程圖;
第13圖係示出處理快取無效PoPA(實體混淆點)指令的流程圖;
第14圖示出了資料處理系統的實例;以及
第15圖圖示了可使用的模擬器實例。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
2:資料處理系統
4:請求器裝置
6:完成器裝置
8:互連
10:處理電路系統
12:暫存器
14:當前域指示
15:當前異常級別指示
16:位址變換電路系統
18:變換旁看緩衝器(TLB)
20:PAS過濾器
22:顆粒保護資訊快取記憶體
24:快取記憶體
60:實體混淆點

Claims (24)

  1. 一種裝置,包含: 位址變換電路系統,用於將由請求器電路系統發佈的一記憶體存取請求規定的一目標虛擬位址變換為一目標實體位址;以及 請求器側過濾電路系統,用於基於該目標實體位址及與該記憶體存取請求相關聯的一所選擇的實體位址空間來執行一顆粒保護查找,以決定是否允許將該記憶體存取請求傳遞到一快取記憶體或傳遞到一互連,用於與服務該記憶體存取請求的一完成器裝置通訊,其中該所選擇的實體位址空間是複數個實體位址空間的一者;其中: 在該顆粒保護查找中,該請求器側過濾電路系統經配置為: 獲得對應於包該目標實體位址的一目標實體位址顆粒的顆粒保護資訊,該顆粒保護資訊指示與該目標顆粒相關聯的至少一個經允許的實體位址空間;以及 當該顆粒保護資訊指示該所選擇的實體位址空間不是該至少一個經允許的實體位址空間的一者時,阻止該記憶體存取請求。
  2. 如請求項1所述的裝置,其中該顆粒保護資訊規定指派給該目標實體位址顆粒的一所指派實體位址空間;以及 該至少一個經允許的實體位址空間包括至少該所指派實體位址空間。
  3. 如請求項(2)所述的裝置,其中顆粒保護資訊亦包含共享屬性資訊,指示除了所指派實體位址空間之外的至少一個其他實體位址空間是否是該至少一個經允許的實體位址空間的一者。
  4. 如請求項3所述的裝置,其中當該顆粒保護查找決定該所選擇的實體位址空間是除了該所指派實體位址空間之外的一實體位址空間時,該所指派實體位址空間是由該共享屬性資訊指示的該至少一個經允許的實體位址空間的一者,該請求器側過濾電路系統經配置為允許將規定該所指派實體位址空間而非該所選擇的實體位址空間的該記憶體存取請求傳遞到該快取記憶體或互連。
  5. 如任何先前請求項所述的裝置,其中該請求器側過濾電路系統經配置為在經配置為快取該顆粒保護資訊的至少一個查找快取記憶體中執行該顆粒保護查找。
  6. 如請求項5所述的裝置,其中該至少一個查找快取記憶體經配置為儲存規定資訊的至少一個組合的變換顆粒保護條目,該資訊取決於該顆粒保護資訊及由該位址變換電路系統用於將該目標虛擬位址映射到該目標實體位址的至少一個頁表條目。
  7. 如請求項5及6中的任一項所述的裝置,其中該至少一個查找快取記憶體回應於至少一個查找快取無效命令,取決於與包括該無效目標實體位址的一實體位址顆粒相關聯的顆粒保護資訊,該命令規定一無效目標實體位址以使儲存資訊的查找快取記憶體條目無效。
  8. 如任何先前請求項所述的裝置,包含一實體混淆點(PoPA)記憶體系統部件,經配置為去混淆來自對應於該相同記憶體系統資源的不同實體位址空間的複數個混淆實體位址,以將該複數個混淆實體位址中的任一者映射到向至少一個下游記憶體系統部件提供的一去混淆實體位址;以及 在該PoPA記憶體系統部件的上游提供的至少一個前PoPA記憶體系統部件,其中該至少一個前PoPA記憶體系統部件經配置為將來自不同實體位址空間的該等混淆實體位址視為該等混淆實體位址對應於不同記憶體系統資源。
  9. 如請求項8所述的裝置,其中該等混淆實體位址使用在該等不同實體位址空間中的該相同實體位址值表示。
  10. 如請求項8及9中的任一項所述的裝置,其中該至少一個前PoPA記憶體系統部件包含至少一個前PoPA快取記憶體;以及 該裝置包含處理電路系統,回應於規定一目標位址的一快取無效PoPA指令,發佈至少一個無效命令以請求該至少一個前PoPA快取記憶體使與對應於該目標位址的一目標實體位址值相關聯的一或多個條目無效。
  11. 如任何先前請求項所述的裝置,其中該位址變換電路系統及該請求器側過濾電路系統中的至少一者經配置為至少基於從其發佈該記憶體存取請求的該請求器電路系統的操作的一當前域來選擇該所選擇的實體位址空間,該當前域包含複數個操作域的一者。
  12. 如請求項11所述的裝置,其中該位址變換電路系統經配置為基於至少一個頁表條目將該目標虛擬位址變換為該目標實體位址;以及 至少當該當前域是該複數個域的一子集的一者時,該位址變換電路系統及該請求器側過濾電路系統中的該至少一者經配置為基於該當前域及在該至少一個頁表條目中規定的實體位址空間選擇資訊來選擇該所選擇的實體位址空間。
  13. 如請求項11及12中的任一項所述的裝置,其中該複數個域至少包含與一安全實體位址空間相關聯的一安全域、及與一較不安全實體位址空間相關聯的一較不安全域; 當該當前域是該較不安全域或該安全域時,該較不安全實體位址空間可選擇為該所選擇的實體位址空間;以及 當該當前域是該安全域時,該安全實體位址空間可選擇為該所選擇的實體位址空間,並且當該當前域是該較不安全域時,禁止將其選擇為該所選擇的實體位址空間。
  14. 如請求項13所述的裝置,其中該複數個域亦包含與一另外實體位址空間相關聯的一另外域; 當該當前域是該另外域時,該較不安全實體位址空間可選擇為該所選擇的實體位址空間; 當該當前域是該另外域時,該另外實體位址空間可選擇為該所選擇的實體位址空間,但當該當前域是該安全域或該較不安全域時,禁止將其選擇為該所選擇的實體位址空間;以及 當該當前域是該另外域時,禁止將該安全位址空間選擇為該所選擇的實體位址空間。
  15. 如請求項11至14中的任一項所述的裝置,其中該複數個域包括用於管理在其他域之間的切換的一根域,該根域與一根實體位址空間相關聯。
  16. 如請求項15所述的裝置,其中下列的至少一者: 當該當前域是該根域時,全部該等實體位址空間可選擇為該所選擇的實體位址空間;以及 當該當前域是除了該根域之外的一域時,禁止將該根實體位址空間選擇為該所選擇的實體位址空間。
  17. 如請求項15及16中的任一項所述的裝置,其中該顆粒保護資訊可由該根域中執行的軟體修改。
  18. 如任何先前請求項所述的裝置,其中該顆粒保護資訊以頁面級粒度定義。
  19. 如任何先前請求項所述的裝置,其中該顆粒保護資訊在運行時可動態地更新。
  20. 如任何先前請求項所述的裝置,其中當該顆粒保護資訊規定指示該至少一個經允許的實體位址空間將由完成器側過濾電路系統解析的一通過指示符時,該請求器側過濾電路系統經配置為獨立於檢查該所選擇的實體位址空間是否是該至少一個經允許的實體位址空間的一者來決定是否將該記憶體存取請求傳遞到該快取記憶體或該互連。
  21. 如任何先前請求項所述的裝置,包含完成器側過濾電路系統,回應於規定一目標實體位址及一所選擇的實體位址空間的從該互連接收的一記憶體存取請求,用於基於該目標實體位址及該所選擇的實體位址空間執行完成器側保護資訊的一完成器側保護查找,以決定是否允許由該完成器裝置服務該記憶體存取請求。
  22. 一種資料處理方法,包含以下步驟: 將由請求器電路系統發佈的一記憶體存取請求規定的一目標虛擬位址變換為一目標實體位址;以及 在請求器側過濾電路系統處,基於該目標實體位址及與該記憶體存取請求相關聯的一所選擇的實體位址空間來執行一顆粒保護查找,以決定是否允許將該記憶體存取請求傳遞到一快取記憶體或傳遞到一互連,用於與服務該記憶體存取請求的一完成器裝置通訊,其中該所選擇的實體位址空間是複數個實體位址空間的一者;其中: 在該顆粒保護查找中,該請求器側過濾電路系統: 獲得對應於包括該目標實體位址的一目標實體位址顆粒的顆粒保護資訊,該顆粒保護資訊指示與該目標顆粒相關聯的至少一個經允許的實體位址空間;以及 當該顆粒保護資訊指示該所選擇的實體位址空間不是該至少一個經允許的實體位址空間的一者時,阻止該記憶體存取請求。
  23. 一種用於控制一主機資料處理裝置提供用於執行目標代碼的一指令執行環境的電腦程式;該電腦程式包含: 位址變換程式邏輯,用於將由一記憶體存取請求規定的一目標經模擬的虛擬位址變換為一目標經模擬的實體位址;以及 過濾程式邏輯,用於基於該目標經模擬的實體位址及與該記憶體存取請求相關聯的一所選擇的經模擬的實體位址空間來執行一顆粒保護查找,以決定允許服務該記憶體存取請求,其中該所選擇的經模擬的實體位址空間是複數個經模擬的實體位址空間的一者;其中: 在該顆粒保護查找中,該過濾程式邏輯經配置為: 獲得對應於包括該目標經模擬的實體位址的一目標經模擬的實體位址顆粒的顆粒保護資訊,該顆粒保護資訊指示與該目標顆粒相關聯的至少一個經允許的經模擬的實體位址空間;以及 當該顆粒保護資訊指示該所選擇的經模擬的實體位址空間不是該至少一個經允許的經模擬的實體位址空間的一者時,防止服務該記憶體存取請求。
  24. 一種儲存如請求項23所述的電腦程式的電腦可讀取儲存媒體。
TW110104176A 2020-03-24 2021-02-04 使用複數個實體位址空間的裝置及方法 TW202141284A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB2004258.6 2020-03-24
GB2004258.6A GB2593486B (en) 2020-03-24 2020-03-24 Apparatus and method using plurality of physical address spaces

Publications (1)

Publication Number Publication Date
TW202141284A true TW202141284A (zh) 2021-11-01

Family

ID=70546739

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110104176A TW202141284A (zh) 2020-03-24 2021-02-04 使用複數個實體位址空間的裝置及方法

Country Status (9)

Country Link
US (1) US20230176983A1 (zh)
EP (1) EP4127948A1 (zh)
JP (1) JP2023518482A (zh)
KR (1) KR20220156921A (zh)
CN (1) CN115335814A (zh)
GB (1) GB2593486B (zh)
IL (1) IL295832A (zh)
TW (1) TW202141284A (zh)
WO (1) WO2021191575A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI818732B (zh) * 2022-09-16 2023-10-11 新唐科技股份有限公司 記憶體裝置及其操作方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11960420B2 (en) * 2021-02-16 2024-04-16 Red Hat, Inc. Direct memory control operations on memory data structures
GB2618126B (en) * 2022-04-28 2024-04-17 Advanced Risc Mach Ltd Maintenance operations across subdivided memory domains
US11853228B1 (en) * 2022-06-10 2023-12-26 Arm Limited Partial-address-translation-invalidation request

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003233534A (ja) * 2002-02-07 2003-08-22 Hitachi Ltd メモリシステム
US7076634B2 (en) * 2003-04-24 2006-07-11 International Business Machines Corporation Address translation manager and method for a logically partitioned computer system
US7287140B1 (en) * 2003-07-28 2007-10-23 Massachusetts Institute Of Technology System and technique for fine-grained computer memory protection
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US20140108701A1 (en) * 2010-07-16 2014-04-17 Memory Technologies Llc Memory protection unit in a virtual processing environment
US9934166B2 (en) * 2010-12-10 2018-04-03 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
US20130054896A1 (en) * 2011-08-25 2013-02-28 STMicroelectronica Inc. System memory controller having a cache
MA41915A (fr) * 2015-04-07 2018-02-13 Benjamin Gittins Unités de requête de transfert de mémoire programmable
GB2563885B (en) * 2017-06-28 2019-10-23 Advanced Risc Mach Ltd Interrupting export of memory regions
US11520611B2 (en) * 2018-08-20 2022-12-06 Intel Corporation Secure public cloud using extended paging and memory integrity
US10725687B1 (en) * 2019-03-19 2020-07-28 Western Digital Technologies, Inc. Settable replay protected memory block characteristics in a logic unit
US11334501B2 (en) * 2020-01-28 2022-05-17 Hewlett Packard Enterprise Development Lp Access permissions for memory regions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI818732B (zh) * 2022-09-16 2023-10-11 新唐科技股份有限公司 記憶體裝置及其操作方法

Also Published As

Publication number Publication date
JP2023518482A (ja) 2023-05-01
GB202004258D0 (en) 2020-05-06
CN115335814A (zh) 2022-11-11
GB2593486A (en) 2021-09-29
US20230176983A1 (en) 2023-06-08
EP4127948A1 (en) 2023-02-08
GB2593486B (en) 2022-06-15
IL295832A (en) 2022-10-01
KR20220156921A (ko) 2022-11-28
WO2021191575A1 (en) 2021-09-30

Similar Documents

Publication Publication Date Title
TW202141284A (zh) 使用複數個實體位址空間的裝置及方法
KR20230010750A (ko) 변환 테이블 어드레스 저장 회로부
US11989134B2 (en) Apparatus and method
US20230185733A1 (en) Data integrity check for granule protection data
US20230205709A1 (en) Variable nesting control parameter for table structure providing access control information for controlling access to a memory system
TW202137008A (zh) 使用複數個實體位址空間的裝置及方法
TW202343264A (zh) 橫跨經再分記憶體域之維護操作
TW202343294A (zh) 保護域內執行環境
TW202343258A (zh) 執行環境失配
CN117120988A (zh) 分区标识符空间选择