TWI790350B - 記憶體存取中的守衛標籤檢查的控制 - Google Patents

記憶體存取中的守衛標籤檢查的控制 Download PDF

Info

Publication number
TWI790350B
TWI790350B TW108104110A TW108104110A TWI790350B TW I790350 B TWI790350 B TW I790350B TW 108104110 A TW108104110 A TW 108104110A TW 108104110 A TW108104110 A TW 108104110A TW I790350 B TWI790350 B TW I790350B
Authority
TW
Taiwan
Prior art keywords
tag
guard
memory access
address
guarded
Prior art date
Application number
TW108104110A
Other languages
English (en)
Other versions
TW201941063A (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 TW201941063A publication Critical patent/TW201941063A/zh
Application granted granted Critical
Publication of TWI790350B publication Critical patent/TWI790350B/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
    • 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
    • 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; 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/1009Address translation using page tables, e.g. page table structures
    • 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]
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本案提供一種設備,該設備包含位址轉換電路,位址轉換電路取決於虛擬位址與實體位址之間儲存的分頁表映射來執行虛擬位址到實體位址的轉換。所儲存的分頁表映射包含標籤守衛的控制資訊。該設備包含記憶體存取電路,記憶體存取電路回應於目標實體位址而執行標籤守衛的記憶體存取,標籤守衛的記憶體存取包含守衛標籤檢查,守衛標籤檢查係將與目標實體位址相關聯的位址標籤以及與包含由目標實體位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的儲存的守衛標籤進行比較。記憶體存取電路經佈置而取決於標籤守衛的控制資訊,以回應於目標實體位址來執行針對尋址位置的非標籤守衛的記憶體存取,而不執行守衛標籤檢查。

Description

記憶體存取中的守衛標籤檢查的控制
本技術係關於資料處理的領域。
由資料處理設備執行的軟體通常可以利用高階程式語言編寫,然後根據其上執行軟體的設備所支援的指令集架構編譯成代碼。舉例而言,軟體最初可以利用更高階的語言(例如,Java、C、或C++)編寫,然後編譯成本地支援的指令集架構(例如,x86或Arm®)。
因為包括運行時的用於檢查與記憶體存取相關的某些錯誤的錯誤偵測檢查,所以一些更高階的程式語言(例如,Java)被認為是記憶體安全語言。相較之下,記憶體不安全語言(例如,C及C++)並未包括這樣的運行時的錯誤檢查。使用記憶體不安全語言的持續潮流意味著在根據給定指令集架構的編譯代碼中,可能存在大量與記憶體相關的錯誤,而可能容易受到攻擊者或其他惡意方利用。這些錯誤可能包括: •邊界違反,其中代碼所供應的陣列索引超出陣列的合法邊界; •釋放後使用錯誤,其中在記憶體位置已解分配或已釋放之後存取該記憶體位置; •返回後使用,其中在從函數返回之後,針對函數內使用的變量(例如,堆疊上的值)相關聯的位址進行記憶體存取; •使用超出範圍錯誤,其中變量在宣告範圍之外存取;以及 •初始化前使用錯誤,其中在變量初始化之前存取與變量相關聯的記憶體位址。
這些只是記憶體相關錯誤的一些實例,而可能導致無法預測的行為,並且可能為攻擊者提供利用的途徑,因此可能期望在給定處理設備所支援的指令集架構內提供架構支援,以協助運行時偵測某些類別的記憶體錯誤。
至少一些實例提供一種設備,包含:位址轉換電路,取決於虛擬位址與實體位址之間儲存的分頁表映射來執行虛擬位址到實體位址的轉換,其中所儲存的分頁表映射包含標籤守衛的控制資訊;以及記憶體存取電路,用於回應目標實體位址來執行標籤守衛的記憶體存取,標籤守衛的記憶體存取包含守衛標籤檢查,守衛標籤檢查係將與目標實體位址相關聯的位址標籤以及與包含由目標實體位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的儲存的守衛標籤進行比較,其中記憶體存取電路經佈置而取決於標籤守衛的控制資訊,以回應於目標實體位址來執行針對尋址位置的非標籤守衛的記憶體存取,而不執行守衛標籤檢查。
至少一些實例提供一種方法,包含以下步驟:取決於虛擬位址與實體位址之間儲存的分頁表映射來執行虛擬位址到實體位址的轉換,其中所儲存的分頁表映射包含標籤守衛的控制資訊;以及取決於標籤守衛的控制資訊,執行下列之一者:回應於目標實體位址而執行標籤守衛的記憶體存取,標籤守衛的記憶體存取包含守衛標籤檢查,守衛標籤檢查係將與目標實體位址相關聯的位址標籤以及與包含由目標實體位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的儲存的守衛標籤進行比較;以及回應於目標實體位址來執行針對尋址位置的非標籤守衛的記憶體存取,而不執行守衛標籤檢查。
至少一些實例提供一種用於控制主機資料處理設備以提供用於執行目標程式代碼的指令的指令執行環境的電腦程式,包含:位址轉換程式邏輯,取決於虛擬位址與實體位址之間儲存的分頁表映射來執行虛擬位址到實體位址的轉換,其中所儲存的分頁表映射包含標籤守衛的控制資訊;以及記憶體存取程式邏輯,用於回應目標實體位址來執行標籤守衛的記憶體存取,標籤守衛的記憶體存取包含守衛標籤檢查,守衛標籤檢查係將與目標實體位址相關聯的位址標籤以及與包含由目標實體位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的儲存的守衛標籤進行比較,其中記憶體存取程式邏輯經佈置而取決於標籤守衛的控制資訊,以回應於目標實體位址來執行針對尋址位置的非標籤守衛的記憶體存取,而不執行守衛標籤檢查。
儲存媒體可以儲存上述電腦程式。儲存媒體可以是非暫態儲存媒體。
至少一些實施例提供一種設備,包含:位址轉換電路,取決於虛擬位址與實體位址之間儲存的分頁表映射來執行虛擬位址到實體位址的轉換,其中所儲存的分頁表映射包含標籤守衛的控制資訊;以及記憶體存取電路,用於回應目標實體位址來執行標籤守衛的記憶體存取,標籤守衛的記憶體存取包含守衛標籤檢查,守衛標籤檢查係將與目標實體位址相關聯的位址標籤以及與包含由目標實體位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的儲存的守衛標籤進行比較,其中記憶體存取電路經佈置而取決於標籤守衛的控制資訊,以回應於目標實體位址來執行針對尋址位置的非標籤守衛的記憶體存取,而不執行守衛標籤檢查。
用於防止上述類型的某些記憶體使用錯誤的一種方式可以提供儲存於記憶體系統中的與一或更多個記憶體位置的區塊相關聯的守衛標籤。當依據識別記憶體系統中的特定尋址位置的目標位址來請求標籤守衛的記憶體存取時,記憶體存取電路可以將與目標位址相關聯的位址標籤以及儲存於記憶體系統中的與包括由目標位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的守衛標籤進行比較。記憶體存取電路可以產生守衛標籤與位址標籤之間是否偵測到匹配的指示。此指示可以用於控制是否允許記憶體存取成功或者控制後續操作是否能夠成功,或者可以僅報告並允許記憶體存取正常繼續。
此舉可能有用,舉例而言,依據記憶體不安全語言(例如,C或C++)編譯代碼的編譯器可以在初始化記憶體區域時設定代碼所預期存取特定值的記憶體區塊的守衛標籤,並且可以將相應位址標籤值與指向那些區塊的目標位址相關聯。若發生記憶體使用錯誤(例如,位址指標係在範圍之外使用,或者延伸到初始化的有效範圍的邊界之外),則與尋址位置相關聯的守衛標籤很可能無法匹配與目標位址相關聯的位址標籤,然後在此情況下,是否偵測到匹配的指示可以用於觸發一些錯誤處理回應或錯誤報告機制。所採取的特定回應可以取決於所執行的軟體的特定需求或架構的特定微架構實施方案。因此,即使高階語言沒有用於執行運行時的錯誤檢查的手段以防止記憶體存取錯誤,而用於所編譯代碼的ISA可以包括用於執行這些檢查的架構特徵。
然而,檢查這些守衛標籤可能在執行守衛標籤檢查時產生一些耗費,這在一些情況下可能並非所期望的。本文所述的設備在執行虛擬到實體位址轉換時使用包含標籤守衛的控制資訊的分頁表映射,然後取決於標籤守衛控制資訊,記憶體存取電路執行標籤守衛的記憶體存取(進行守衛標籤檢查)或者簡單地執行「正常」記憶體存取(不進行守衛標籤檢查)。因此,由於標籤守衛的控制資訊形成(實體)位址所定義的分頁表映射的一部分,此舉允許取決於記憶體存取的主題的(實體)位址來控制是否執行守衛標籤檢查。記憶體位址可以被不同地分類(例如,依照所有者、依照內容等),以允許在何時針對哪些記憶體存取進行守衛標籤檢查的多功能控制。
標籤守衛的控制資訊可以採用多種形式,但是在一些實例中,所儲存的分頁表映射包含用於每一分頁表項目的標籤守衛控制位元,並且記憶體存取電路係回應於具有預定第一值的標籤守衛控制位元,以執行尋址位置的標籤守衛的記憶體存取,以及記憶體存取電路係回應於具有預定第二值的標籤守衛控制位元,以執行尋址位置的非標籤守衛的記憶體存取。因此,單一位元可以控制尋址位置的任何存取是否進行守衛標籤檢查。
在一些實例中,所儲存的分頁表映射包含用於每一分頁表項目的複數個標籤守衛控制位元,並且記憶體存取電路係回應於具有預定第一值的複數個標籤守衛控制位元中之至少一者,以執行尋址位置的標籤守衛的記憶體存取,以及記憶體存取電路係回應於具有預定第二值的標籤守衛控制位元,以執行尋址位置的非標籤守衛的記憶體存取。因此,在標籤守衛的控制資訊包含多個位元的情況下,支援針對尋址位置的存取進行守衛標籤檢查的更精細的控制。然後,可以使用記憶體存取的任何可定義特性來確定是否發生守衛標籤檢查。
在一些實例中,用於每一分頁表項目的複數個標籤守衛控制位元係取決於記憶體存取的類型而指定標籤檢查規則。因此,守衛標籤檢查是否發生係取決於記憶體存取類型。舉例而言,可以在一個特定類型的記憶體存取之外的所有者中取消守衛標籤檢查,或者可以一個特定類型的記憶體存取之外的所有者中觸發守衛標籤檢查,或者在這兩個極端之間的任一者。
在一些實例中,用於每一分頁表項目的複數個標籤守衛控制位元係定義標籤檢查規則,標籤檢查規則經佈置以應用於下列中之至少一者:尋址位置的資料存取;尋址位置的指令提取;以及使用從尋址位置提取的指令來進行資料存取。
在一些實例中,用於每一分頁表項目的複數個標籤守衛控制位元係定義標籤檢查規則,標籤檢查規則針對載入操作與儲存操作是不同的。特別區分載入及儲存可能是有用的,而使得守衛標籤檢查發生於其中一者時,而不發生於另一者。
在一些實例中,用於每一分頁表項目的複數個標籤守衛控制位元係定義標籤檢查規則,標籤檢查規則指定針對尋址位置的寫入存取的非標籤守衛的記憶體存取操作。因此,可以在不進行守衛標籤檢查的情況下寫入位址位置。
當在存取之前分配尋址位置時,可以取決於尋址位置的預期用途來各別設定標籤守衛的控制資訊。在一些實例中,該設備經佈置以取決於尋址位置是否被分配用於指令或資料儲存,而在所儲存的分頁表映射中設定標籤守衛的控制資訊。可以配置成針對其中一者而非另一者來使守衛標籤檢查發生。
此外,所分配的記憶體位置的所有者可以用於確定是否發生守衛標籤檢查,以及在一些實例中,該設備經佈置以取決於尋址位置被分配為內核空間還是被分配為使用者空間,而在所儲存的分頁表映射中設定標籤守衛的控制資訊。
至少一些實施例提供一種方法,包含以下步驟:取決於虛擬位址與實體位址之間儲存的分頁表映射來執行虛擬位址到實體位址的轉換,其中所儲存的分頁表映射包含標籤守衛的控制資訊;以及取決於標籤守衛的控制資訊,執行下列之一者:回應於目標實體位址而執行標籤守衛的記憶體存取,標籤守衛的記憶體存取包含守衛標籤檢查,守衛標籤檢查係將與目標實體位址相關聯的位址標籤以及與包含由目標實體位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的儲存的守衛標籤進行比較;以及回應於目標實體位址來執行針對尋址位置的非標籤守衛的記憶體存取,而不執行守衛標籤檢查。
至少一些實施例提供一種用於控制主機資料處理設備以提供用於執行目標程式代碼的指令的指令執行環境的電腦程式,包含:位址轉換程式邏輯,取決於虛擬位址與實體位址之間儲存的分頁表映射來執行虛擬位址到實體位址的轉換,其中所儲存的分頁表映射包含標籤守衛的控制資訊;以及記憶體存取程式邏輯,用於回應目標實體位址來執行標籤守衛的記憶體存取,標籤守衛的記憶體存取包含守衛標籤檢查,守衛標籤檢查係將與目標實體位址相關聯的位址標籤以及與包含由目標實體位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的儲存的守衛標籤進行比較,其中記憶體存取程式邏輯經佈置而取決於標籤守衛的控制資訊,以回應於目標實體位址來執行針對尋址位置的非標籤守衛的記憶體存取,而不執行守衛標籤檢查。
至少一些實施例提供儲存上述電腦程式的儲存媒體。
現在參照圖式描述一些特定實施例。
第1圖示意性圖示資料處理設備2的實例。應理解,這僅是設備的部件的子集的高階表示,並且該設備可以包括未圖示的許多其他部件。設備2包含處理電路4,以用於回應於由指令解碼器6解碼的指令來執行資料處理。指令解碼器6解碼從指令快取記憶體8提取的指令,以產生用於控制處理電路4執行由指令表示的對應處理操作的控制訊號10。處理電路4可以包括一或更多個執行單元,以用於針對儲存於暫存器14中的值執行操作,以產生待寫回暫存器的結果值。舉例而言,執行單元可以包括算術/邏輯單元(ALU)、浮點單元、及/或向量處理單元,算術/邏輯單元(ALU)用於執行算術運算或邏輯運算,浮點單元用於使用浮點運算元執行運算,而 向量處理單元用於針對包括多個獨立的資料元件的運算元執行向量運算。處理電路亦包括記憶體存取電路(例如,包括載入/儲存單元)15,以用於控制資料在暫存器14與記憶體系統之間的轉移。在此實例中,記憶體系統包括指令快取記憶體8、1階(L1)資料快取記憶體16、在資料與指令之間共享的2階(L2)快取記憶體17、及主記憶體18。應理解,這僅為一個實例,其他快取記憶體層亦係可能的。提供記憶體管理單元(MMU)20,以用於提供位址轉換功能,以支援由載入/儲存單元15觸發的記憶體存取。MMU具有轉換旁視緩衝器(TLB)22,以用於快取來自儲存於記憶體系統16、17、18中的分頁表的項目的子集。每一分頁表項目可以提供用於位址的相應分頁的位址轉換映射,並且亦可以指定存取控制參數(例如,指定分頁係為唯讀區域還是可讀且可寫的存取權限,或者指定哪些優先順序等級可以存取分頁的存取權限)。此外,如下面更詳細地論述,分頁表項目可以指定本技術所使用的標籤守衛的控制資訊,以在存取位址的分頁內的位址時控制守衛標籤檢查是否發生。
第2圖示意性圖示標籤守衛的記憶體存取的概念。用於指稱記憶體系統內的記憶體位置的實體位址空間可以在邏輯上劃分成多個區塊30,每一區塊包含某個數量的可尋址位置。為了簡便,在第2圖的實例中,每一區塊30包含四個記憶體位置,但亦可以使用其他區塊大小。每一區塊30係與相應守衛標籤32相關聯。與某個數量的區塊30相關聯的守衛標籤可以聚集在一起,並儲存在實體位址空間內的不同架構上可存取的記憶體位置34內,或者儲存於無法在架構上存取(並未映射到相同的實體位址空間)的主記憶體18中提供的附加儲存位置內。使用單獨的非架構上可存取儲存器在一些情況下可能較佳,以避免在用於快取守衛標籤值的資料快取記憶體16、17中使用向上空間,而可能影響常規代碼的效能,並且可能使得相干性管理更複雜。相較於標籤必須從主記憶體18存取的情況,可以在微架構中提供附加標籤快取記憶體19,以用於從非架構可存取儲存器快取標籤值,以得到更快的存取。哪些標籤儲存位置34對應於每一區塊30的特定映射可以藉由載入/儲存單元15控制,並且可以硬接線或者可以是可程式化的。儘管在第2圖中,每一標籤32係與實體位址的區塊相關聯,亦可能在虛擬記憶體位址空間中提供與虛擬記憶體位置相關聯的守衛標籤32,但這可能需要針對每一記憶體存取的一些附加位址轉換。因此,藉由使守衛標籤32與實體記憶體位置相關聯,而可以改善效能。一般而言,針對特定微架構實施方案,此舉係為守衛標籤32如何準確地與實體位址空間的相應區塊30相關聯的選擇。一般而言,所有需求係為可以存取及比較與記憶體的給定區塊相關聯的守衛標籤32。
因此,當需要進行標籤守衛的記憶體存取時,位址標籤40(其與識別待存取的尋址位置44的目標位址42相關聯)與守衛標籤32進行比較,守衛標籤32係與包括尋址位置44的記憶體位置30的區塊相關聯。舉例而言,在第2圖中,目標位址42指向記憶體中的某個位置B1,並在第2圖的位址空間中標記為44。因此,與包括位置B1的位置B的區塊相關聯的守衛標籤B係與和目標位址42相關聯的位址標籤40進行比較。如第2圖的頂部所示,位址標籤4可以確定為目標位址本身的所選擇位元的函數。更特定言之,位址標籤可以由目標位址的一部分內的位元確定,該等位元並未用於指示待選擇為尋址位置44的具體記憶體位置。舉例而言,在一些架構中,目標位址的位元的頂部部分可能總是具有某個固定值(例如,符號擴展(均為0或均為1)),並因此藉由利用任意標籤值覆寫該等未使用的位元,而讓位址可以利用位址標籤40來標記。舉例而言,特定位址標籤值可以藉由程式設計者或編譯器來選擇。位址標籤與守衛標籤32可以是相對小數量的位元(例如,4位元),並且因此不需要在記憶體內以及在目標位址內佔用大空間。提供4位元的標籤空間(亦即,標籤的16個可能值)可以通常足夠偵測眾多常見類型的記憶體存取錯誤。
因此,當執行標籤守衛的記憶體存取時,將位址標籤40與和包括尋址位置44的區塊30相關聯的守衛標籤32進行比較,並且確定該等是否匹配。應注意,在第1圖的示例性配置中,可以在載入/儲存單元15與實體記憶體18之間的任何地方執行比較(並且實際上可以沿著此路徑分佈)。然而,在此實例中,為了簡單起見,此比較係描述為藉由載入/儲存單元15執行。載入/儲存單元15產生匹配指示,以指示位址標籤40與守衛標籤32是否匹配。舉例而言,此匹配指示可以是在位址標籤40與守衛標籤32之間存在不匹配的情況下產生的故障訊號60,或者是指示是否存在匹配的放置於狀態暫存器中的指示,或者是增加到錯誤報告以指示偵測到錯誤的位址及/或觸發錯誤的指令的指令位址的項目。
第3圖圖示處理標籤守衛的記憶體存取的流程圖。觸發記憶體存取的指令可以指定位址標籤與目標位址。如第2圖所示,在一些情況下,位址標籤可以實際上從目標位址本身的位元的子集導出,儘管在其他實例中,可以在單獨的暫存器中指定。在步驟50處,遇到觸發標籤守衛的記憶體存取的指令。作為回應,在步驟52處,記憶體存取電路15觸發針對由目標位址識別的尋址位置44的記憶體存取。此外,在步驟54處,記憶體存取電路15取得儲存於記憶體系統中的與包括由目標位址識別的尋址位置44的記憶體位置30的區塊相關聯的守衛標籤32。在步驟56處,記憶體存取電路15將位址標籤40與步驟54處取得的守衛標籤32進行比較。在步驟58處,藉由記憶體存取電路15產生在守衛標籤與位址標籤之間是否偵測到匹配的指示(例如,上文描述的任何類型的匹配/不匹配報告指示)。用於報告任何不匹配的精確指示可以在實施方案之間變化。
第4圖示意性圖示一個實例中的設備60的代表。位址轉換電路62(可以是MMU 20的一部分)接收虛擬位址(包含標籤部分65)。位址轉換電路62將虛擬位址64轉換成實體位址66,以在記憶體系統中使用。記憶體68一般圖示在第4圖中,而可以包括主記憶體以及一或更多個快取記憶體。位址轉換電路62參照分頁表執行轉換,其中圖示單一實例70(而實際上儲存於記憶體系統中)。如上所述,MMU可以具有TLB來快取常用的轉換。分頁表項目72包括轉換資訊本身以及附加的標籤守衛的控制資訊74。為了執行轉換,位址轉換電路62將標籤守衛的控制資訊併入所產生的實體位址。舉例而言,這可以是位址空間的一部分(本文亦指稱為實體標籤),其並未用於指定實體記憶體位置,而是用於將其他資訊傳送到記憶體系統。舉例而言,在64位元的位址空間中,可能是位元[55:0]形成虛擬位址部分,而位元[63:56]形成虛擬標籤部分。類似地,在實體位址中,位元[55:0]可以形成實體位址部分,而位元[63:56]形成實體標籤部分。與所定義的位元空間無關,實體標籤部分可以將所選擇的資訊傳送到記憶體系統(例如,可以與守衛標籤進行比較的位址標籤),而這可能不會佔用所有的實體標籤部分,因此亦可以傳送標籤守衛的控制資訊74。
標籤守衛檢查電路76接收位址標籤78以及標籤守衛的控制資訊(TGC)80(現在是實體位址66的一部分)兩者。標籤守衛檢查電路76中的控制單元82接收標籤守衛的控制資訊(TGC)80,而取決於所接收的特定資訊,控制單元確定是否執行守衛標籤檢查。標籤守衛檢查電路76中的比較單元84係藉由接收位址標籤78以及與尋址位置相關聯的所儲存的相關守衛標籤86來執行檢查。第4圖圖示控制單元82亦接收記憶體存取的類型的指示(例如,載入或儲存,亦即,讀取或寫入),以及在一些實例中,控制單元可以經佈置以在確定是否進行守衛標籤檢查時將其考慮在內。
第5A圖、第5B圖、及第5C圖圖示包含標籤守衛的控制資訊的示例性分頁表項目。第5A圖中的分頁表項目90包含轉換資訊91本身,以及各種權限資訊92與單一標籤守衛控制位元93。因此,對於使用分頁表項目90產生的實體位址而言,守衛標籤檢查只能完全關閉或完全打開。第5B圖中的分頁表項目94包含轉換資訊95本身,以及各種權限資訊96與一組標籤守衛控制位元97。因此,對於使用分頁表項目97產生的實體位址而言,可以取決於與該組標籤守衛控制位元97中之每一者相關聯的含義來不同地控制守衛標籤檢查。第5C圖中的分頁表項目98給出分頁表項目中可設定的複數個標籤守衛控制位元的一個實例,並且包含轉換資訊99本身以及各種權限資訊100。並進一步包含用於讀取存取101的標籤守衛控制以及用於寫入存取102的標籤守衛控制。這些可能只是每一者一個位元,而使得守衛標籤檢查可以針對每一類型的存取完全關閉或完全打開。然而,在本文中,每一者都可以具有複數個位元,而取決於進一步定義的上下文約束,可以對是否針對每一類型的存取執行守衛標籤檢查施加更大的控制。在一些實例中,複數個位元定義預定標籤檢查規則:用於尋址位置的資料存取、用於尋址位置的指令提取、及用於使用從尋址位置提取的指令來進行資料存取。針對這些上下文中之每一者,可以取決系統需要而打開或關閉守衛標籤檢查。
第6圖係為圖示在一個實例中分配記憶體時如何設定分頁表位元的流程圖。流程開始於步驟110,其中該處理在等待狀態,直到需要記憶體分配。若是,則在步驟112處確定分配是用於使用者處理還是用於內核處理。用於使用者處理,流程進行到步驟114,其中在相應分頁表項目或多個相應分頁表項目中設定所期望的標籤守衛檢查配置(例如,藉由第5A圖至第5C圖的任何實例)。用於內核處理,流程進行到步驟116,其中在相應分頁表項目或多個相應分頁表項目中設定所期望的標籤守衛檢查配置(例如,藉由第5A圖至第5C圖的任何實例)。僅舉一個實例,可以針對使用者空間分配打開標籤守衛檢查,但針對內核空間分配則關閉標籤守衛檢查。另外應注意,由於此舉係經由每一者的分頁表項目而發生,並且可以存取對應於兩個不同虛擬位址(一個用於使用者空間分配,一個用於內核空間分配)的給定實體位址,針對相同的實體位置/守衛標籤的標籤守衛檢查可以配置成針對一種存取(例如,使用者)進行,而非另一種(內核)。藉由任一路線,然後流程到達步驟118,其中確定分配係用於指令還是資料儲存器,並且可以針對每一者設定不同的標籤守衛控制配置(分別在步驟120及122處)。應理解,第6圖僅圖示一個示例性處理,並非為必要的(例如,用於作出使用者/內核與指令/資料兩者的區分)。在一些實例中可以僅使用這些中之一者。
第7圖係為圖示在一個實例中取決於分頁表項目中的標籤守衛的控制資訊而執行守衛標籤檢查的控制的流程圖。流程開始於步驟130,其中該處理在等待狀態,直到接收虛擬位址。若是,則在步驟132處,將虛擬位址轉換成實體位址,其中來自分頁表項目的標籤守衛的控制資訊係包括在實體位址的實體標籤部分中。然後,在步驟134處,當在記憶體系統中存取實體位址時,確定是否啟用守衛標籤檢查(由標籤守衛的控制資訊所定義,並且可能參照其他上下文資訊(例如,存取類型))。若是,則在步驟136處執行守衛標籤檢查,並且(若未阻止,這是一個可能但非強制性的守衛標籤檢查失敗的結果)針對由實體位址所尋址的位置進行記憶體存取。否則,在步驟138處,針對實體位址所尋址的位置執行記憶體存取,而不執行守衛標籤檢查。
第8圖圖示可以使用的模擬器實施方案。儘管先前描述的實施例係關於用於操作支援相關技術的具體處理硬體的設備及方法來實現本案,亦可能根據本文描述的實施例提供經由使用電腦程式來實現的指令執行環境。這種電腦程式通常指稱為模擬器,係為提供硬體架構的基於軟體的實施方案。模擬器電腦程式的變化包括模仿器、虛擬機、模型、及二進制轉換器(包括動態二進制轉換器)。通常,模擬器實施方案可以在主機處理器230上運行,可選擇地運行主機作業系統220,以支援模擬器程式210。在一些佈置中,在硬體與所提供的指令執行環境之間及/或在相同主處理器上提供的多個不同指令執行環境之間可能存在多層模擬。歷史上,已經需要高效處理器提供以合理速度執行的模擬器實施方案,但是這種方式可能在某些情況下為合理的(例如,當期望運行另一處理器的本地端的代碼以取得相容性時,或者出於重複使用的原因)。舉例而言,模擬器實施方案可以提供具有並未由主機處理器硬體支援的附加功能的指令執行環境,或者提供通常與不同硬體架構相關聯的指令執行環境。模擬的概述在「Some Efficient Architecture Simulation Techniques」,Robert Bedichek,Winter 1990 USENIX Conference,第53頁至第63頁中給出。
就先前已經在模擬實施例中參照特定硬體構造或特徵而描述的實施例而言,可以藉由適當的軟體構造或特徵提供等效功能。舉例而言,特定電路可以在模擬實施例中實現為電腦程式邏輯。類似地,記憶體硬體(例如,暫存器或快取記憶體)可以在模擬實施例中實現為軟體資料結構。在先前描述的實施例中參照的硬體元件中之一或更多者係存在於主機硬體(例如,主機處理器230)上的佈置中,一些模擬實施例可以在適當時使用主機硬體。
模擬器程式210可以儲存在電腦可讀取儲存媒體212(可以是非暫態媒體)上,並將程式介面(指令執行環境)提供至目標代碼200(可以包括應用程式、作業系統、及超管理器),程式介面係與藉由模擬器程式210模型化的硬體架構的應用程式介面相同。因此,目標代碼200的程式指令可以使用模擬器程式210在指令執行環境內執行,而使得實際上不具有上述設備60的硬體特徵(更特定為位址轉換電路62及標籤守衛檢查電路76)的主機電腦230可以模仿這些特徵。舉例而言,模擬器程式210可以包括位址轉換邏輯214,以用於將虛擬位址轉換成實體位址,並且可以包括記憶體存取邏輯216,以用於存取尋址位置以及用於執行守衛標籤檢查。因此,模擬器程式210亦可以包括記憶體存取程式邏輯216,以用於執行守衛標籤與位址標籤的比較,並報告是否偵測到守衛標籤與位址標籤之間的任何不匹配。此外,模擬器程式210可以包括分頁表設定程式邏輯,分頁表設定程式邏輯包含用於利用與硬體實施例設定的方式對應的方式來設定分頁表項目的指令。
簡而言之,提供一種設備,該設備包含位址轉換電路,而取決於虛擬位址與實體位址之間儲存的分頁表映射來執行虛擬位址到實體位址的轉換。所儲存的分頁表映射包含標籤守衛的控制資訊。該設備包含記憶體存取電路,而回應於目標實體位址而執行標籤守衛的記憶體存取,標籤守衛的記憶體存取包含守衛標籤檢查,守衛標籤檢查係將與目標實體位址相關聯的位址標籤以及與包含由目標實體位址識別的尋址位置的一或更多個記憶體位置的區塊相關聯的儲存的守衛標籤進行比較。記憶體存取電路經佈置而取決於標籤守衛的控制資訊,以回應於目標實體位址來執行針對尋址位置的非標籤守衛的記憶體存取,而不執行守衛標籤檢查。
在本申請案中,詞語「經配置以」係用於表示設備的元件具有能夠執行所定義的操作的配置。在此上下文中,「配置」係表示硬體或軟體的互連的佈置或方式。舉例而言,設備可以具有提供所定義的操作的專用硬體,或者可以將處理器或其他處理設備程式化以執行功能。「經配置以」並不表示需要以任何方式改變設備元件以提供所定義的操作。
儘管本文已參考隨附圖式詳細描述說明性實施例,但應理解,本案並未限於那些精確的實施例,而該領域具有通常知識者可以在不悖離由所附請求項定義的本案的範圍的情況下實現各種改變、增加、及修改。舉例而言,在不悖離本案的範圍的情況下,可以利用獨立請求項的特徵對附屬請求項的特徵進行各種組合。
2‧‧‧設備 4‧‧‧處理電路 6‧‧‧指令解碼器 8‧‧‧指令快取記憶體 10‧‧‧控制訊號 14‧‧‧暫存器 15‧‧‧記憶體存取電路 16‧‧‧資料快取記憶體 17‧‧‧快取記憶體 18‧‧‧主記憶體 19‧‧‧標籤快取記憶體 20‧‧‧記憶體管理單元(MMU) 22‧‧‧轉換旁視緩衝器(TLB) 30‧‧‧區塊 32‧‧‧守衛標籤 34‧‧‧記憶體位置 40‧‧‧位址標籤 42‧‧‧目標位址 44‧‧‧尋址位置 50‧‧‧步驟 52‧‧‧步驟 54‧‧‧步驟 56‧‧‧步驟 58‧‧‧步驟 60‧‧‧設備 62‧‧‧位址轉換電路 64‧‧‧虛擬位址 65‧‧‧標籤部分 66‧‧‧實體位址 68‧‧‧記憶體 70‧‧‧實例 72‧‧‧分頁表項目 74‧‧‧控制資訊 76‧‧‧標籤守衛檢查電路 78‧‧‧位址標籤 80‧‧‧標籤守衛的控制資訊(TGC) 82‧‧‧控制單元 84‧‧‧比較單元 90‧‧‧分頁表項目 91‧‧‧轉換資訊 92‧‧‧權限資訊 93‧‧‧單一標籤守衛控制位元 94‧‧‧分頁表項目 95‧‧‧轉換資訊 96‧‧‧權限資訊 97‧‧‧標籤守衛控制位元 98‧‧‧分頁表項目 99‧‧‧轉換資訊 100‧‧‧權限資訊 101‧‧‧讀取存取 102‧‧‧寫入存取 110‧‧‧步驟 112‧‧‧步驟 114‧‧‧步驟 116‧‧‧步驟 118‧‧‧步驟 120‧‧‧步驟 122‧‧‧步驟 130‧‧‧步驟 132‧‧‧步驟 134‧‧‧步驟 136‧‧‧步驟 138‧‧‧步驟 200‧‧‧目標代碼 210‧‧‧模擬器程式 212‧‧‧電腦可讀取儲存媒體 214‧‧‧位址轉換邏輯 216‧‧‧記憶體存取邏輯 220‧‧‧主機作業系統 230‧‧‧主機處理器
僅藉由示例之方式,並參照隨附圖式所示的實施例,而進一步描述本技術,其中:
第1圖示意性圖示資料處理設備的實例;
第2圖圖示包含檢查位址標籤是否與守衛標籤匹配的標籤守衛的記憶體存取操作的實例;
第3圖係為圖示執行標籤守衛的記憶體存取操作的方法的流程圖;
第4圖示意性圖示可以執行位址轉換與守衛標籤檢查的示例性係統;
第5A圖、第5B圖、及第5C圖圖示包含標籤守衛的控制資訊的示例性分頁表項目;
第6圖係為圖示在一個實例中分配記憶體時如何設定分頁表位元的流程圖;
第7圖係為圖示在一個實例中取決於分頁表項目中的標籤守衛的控制資訊而執行守衛標籤檢查的控制的流程圖;以及
第8圖圖示支援位址轉換邏輯的模擬器的實例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
60‧‧‧設備
62‧‧‧位址轉換電路
64‧‧‧虛擬位址
65‧‧‧標籤部分
66‧‧‧實體位址
68‧‧‧記憶體
70‧‧‧實例
72‧‧‧分頁表項目
74‧‧‧控制資訊
76‧‧‧標籤守衛檢查電路
78‧‧‧位址標籤
80‧‧‧標籤守衛的控制資訊(TGC)
82‧‧‧控制單元
84‧‧‧比較單元

Claims (11)

  1. 一種用於控制記憶體存取中的守衛標籤檢查的設備,包含:位址轉換電路,取決於虛擬位址與實體位址之間儲存的分頁表映射來執行該等虛擬位址到該等實體位址的一轉換,其中該等儲存的分頁表映射包含標籤守衛的控制資訊;以及記憶體存取電路,回應於一目標實體位址而執行一標籤守衛的記憶體存取,該標籤守衛的記憶體存取包含一守衛標籤檢查,該守衛標籤檢查係將與該目標實體位址相關聯的一位址標籤以及與包含由該目標實體位址識別的一尋址位置的一或更多個記憶體位置的一區塊相關聯的儲存的一守衛標籤進行比較,其中該記憶體存取電路經佈置而取決於該標籤守衛的控制資訊,以回應於該目標實體位址來執行針對該尋址位置的一非標籤守衛的記憶體存取,而不執行該守衛標籤檢查;其中該等儲存的分頁表映射包含用於每一分頁表項目的一標籤守衛控制位元,並且該記憶體存取電路係回應於具有一預定第一值的該標籤守衛控制位元,以執行該尋址位置的該標籤守衛的記憶體存取,以及該記憶體存取電路係回應於具有一預定第二值的該標籤 守衛控制位元,以執行該尋址位置的該非標籤守衛的記憶體存取。
  2. 如請求項1所述之設備,其中該等儲存的分頁表映射包含用於每一分頁表項目的複數個標籤守衛控制位元,並且該記憶體存取電路係回應於具有一預定第一值的該等複數個標籤守衛控制位元中之至少一者,以執行該尋址位置的該標籤守衛的記憶體存取,以及該記憶體存取電路係回應於具有一預定第二值的該標籤守衛控制位元,以執行該尋址位置的該非標籤守衛的記憶體存取。
  3. 如請求項2所述之設備,其中用於每一分頁表項目的該等複數個標籤守衛控制位元係取決於該記憶體存取的一類型而指定標籤檢查規則。
  4. 如請求項3所述之設備,其中用於每一分頁表項目的該等複數個標籤守衛控制位元係定義標籤檢查規則,該等標籤檢查規則經佈置以應用於下列中之至少一者:該尋址位置的資料存取;該尋址位置的指令提取;以及使用從該尋址位置提取的指令來進行資料存取。
  5. 如請求項3所述之設備,其中用於每一分頁表項目的該等複數個標籤守衛控制位元係定義標籤檢 查規則,該等標籤檢查規則針對一載入操作與一儲存操作是不同的。
  6. 如請求項3所述之設備,其中用於每一分頁表項目的該等複數個標籤守衛控制位元係定義一標籤檢查規則,該標籤檢查規則指定針對該尋址位置的一寫入存取的該非標籤守衛的記憶體存取操作。
  7. 如請求項1所述之設備,其中該設備經佈置以取決於該尋址位置是否被分配用於指令或資料儲存,而在該等儲存的分頁表映射中設定該標籤守衛的控制資訊。
  8. 如請求項1所述之設備,其中該設備經佈置以取決於該尋址位置是否被分配為內核空間或被分配為使用者空間,而在該等儲存的分頁表映射中設定該標籤守衛的控制資訊。
  9. 一種用於控制記憶體存取中的守衛標籤檢查的方法,包含以下步驟:取決於虛擬位址與實體位址之間儲存的分頁表映射來執行該等虛擬位址到該等實體位址的一轉換,其中該等儲存的分頁表映射包含標籤守衛控制資訊;以及取決於該標籤守衛的控制資訊,執行下列之一者:回應於一目標實體位址而執行一標籤守衛的記憶體存取,該標籤守衛的記憶體存取包含一守衛標籤 檢查,該守衛標籤檢查係將與該目標實體位址相關聯的一位址標籤以及與包含由該目標實體位址識別的一尋址位置的一或更多個記憶體位置的一區塊相關聯的儲存的一守衛標籤進行比較;以及回應於該目標實體位址來執行針對該尋址位置的一非標籤守衛的記憶體存取,而不執行該守衛標籤檢查;其中該等儲存的分頁表映射包含用於每一分頁表項目的一標籤守衛控制位元,並且回應於具有一預定第一值的該標籤守衛控制位元,執行該尋址位置的該標籤守衛的記憶體存取,以及回應於具有一預定第二值的該標籤守衛控制位元,執行該尋址位置的該非標籤守衛的記憶體存取。
  10. 一種用於控制一主機資料處理設備以提供用於執行目標程式代碼的指令的一指令執行環境的電腦程式,包含:位址轉換程式邏輯,取決於虛擬位址與實體位址之間儲存的分頁表映射來執行該等虛擬位址到該等實體位址的一轉換,其中該等儲存的分頁表映射包含標籤守衛的控制資訊;以及記憶體存取程式邏輯,回應於一目標實體位址而執行一標籤守衛的記憶體存取,該標籤守衛的記憶體存 取包含一守衛標籤檢查,該守衛標籤檢查係將與該目標實體位址相關聯的一位址標籤以及與包含由該目標實體位址識別的一尋址位置的一或更多個記憶體位置的一區塊相關聯的儲存的一守衛標籤進行比較,其中該記憶體存取程式邏輯經佈置而取決於該標籤守衛的控制資訊,以回應於該目標實體位址來執行針對該尋址位置的一非標籤守衛的記憶體存取,而不執行該守衛標籤檢查;其中該等儲存的分頁表映射包含用於每一分頁表項目的一標籤守衛控制位元,並且該記憶體存取程式邏輯係回應於具有一預定第一值的該標籤守衛控制位元,以執行該尋址位置的該標籤守衛的記憶體存取,以及該記憶體存取程式邏輯係回應於具有一預定第二值的該標籤守衛控制位元,以執行該尋址位置的該非標籤守衛的記憶體存取。
  11. 一種儲存如請求項10所述之電腦程式的儲存媒體。
TW108104110A 2018-02-02 2019-02-01 記憶體存取中的守衛標籤檢查的控制 TWI790350B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1801748.3A GB2570691B (en) 2018-02-02 2018-02-02 Controlling guard tag checking in memory accesses
GB1801748.3 2018-02-02

Publications (2)

Publication Number Publication Date
TW201941063A TW201941063A (zh) 2019-10-16
TWI790350B true TWI790350B (zh) 2023-01-21

Family

ID=61730933

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108104110A TWI790350B (zh) 2018-02-02 2019-02-01 記憶體存取中的守衛標籤檢查的控制

Country Status (9)

Country Link
US (1) US11138128B2 (zh)
EP (1) EP3746899B1 (zh)
JP (1) JP7291149B2 (zh)
KR (1) KR20200116472A (zh)
CN (1) CN111556996A (zh)
GB (1) GB2570691B (zh)
IL (1) IL275872B2 (zh)
TW (1) TWI790350B (zh)
WO (1) WO2019150081A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11762566B2 (en) * 2018-01-22 2023-09-19 Arm Limited Programmable mapping of guard tag storage locations
GB2570691B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
GB2578924B (en) 2018-11-14 2021-09-29 Advanced Risc Mach Ltd An apparatus and method for controlling memory accesses
EP3916568A1 (en) * 2020-05-29 2021-12-01 ARM Limited Tag checking apparatus and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070157003A1 (en) * 2005-12-30 2007-07-05 Durham David M Page coloring to associate memory pages with programs
US20080140968A1 (en) * 2006-12-12 2008-06-12 Doshi Kshitij A Protecting memory by containing pointer accesses
US20160371179A1 (en) * 2015-06-22 2016-12-22 Intel Corporation Multiple chunk support for memory corruption detection architectures
US20170177429A1 (en) * 2015-12-21 2017-06-22 Tomer Stark Hardware apparatuses and methods for memory corruption detection

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265227A (en) * 1989-11-14 1993-11-23 Intel Corporation Parallel protection checking in an address translation look-aside buffer
JP2788836B2 (ja) * 1992-05-15 1998-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション ディジタルコンピュータシステム
US8656121B2 (en) * 2011-05-17 2014-02-18 International Business Machines Corporation Facilitating data coherency using in-memory tag bits and tag test instructions
CN105579977B (zh) * 2014-09-01 2020-04-14 华为技术有限公司 访问文件的方法、装置及存储系统
US10089240B2 (en) * 2014-12-26 2018-10-02 Wisconsin Alumni Research Foundation Cache accessed using virtual addresses
GB2570691B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
GB2572158B (en) * 2018-03-20 2020-11-25 Advanced Risc Mach Ltd Random tag setting instruction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070157003A1 (en) * 2005-12-30 2007-07-05 Durham David M Page coloring to associate memory pages with programs
US20080140968A1 (en) * 2006-12-12 2008-06-12 Doshi Kshitij A Protecting memory by containing pointer accesses
US20160371179A1 (en) * 2015-06-22 2016-12-22 Intel Corporation Multiple chunk support for memory corruption detection architectures
US20170177429A1 (en) * 2015-12-21 2017-06-22 Tomer Stark Hardware apparatuses and methods for memory corruption detection

Also Published As

Publication number Publication date
EP3746899B1 (en) 2023-06-07
JP7291149B2 (ja) 2023-06-14
CN111556996A (zh) 2020-08-18
IL275872B1 (en) 2023-09-01
GB201801748D0 (en) 2018-03-21
GB2570691B (en) 2020-09-09
IL275872B2 (en) 2024-01-01
EP3746899A1 (en) 2020-12-09
US11138128B2 (en) 2021-10-05
GB2570691A (en) 2019-08-07
JP2021512400A (ja) 2021-05-13
US20200272575A1 (en) 2020-08-27
WO2019150081A1 (en) 2019-08-08
KR20200116472A (ko) 2020-10-12
IL275872A (en) 2020-08-31
TW201941063A (zh) 2019-10-16

Similar Documents

Publication Publication Date Title
TWI790350B (zh) 記憶體存取中的守衛標籤檢查的控制
TWI812798B (zh) 用於控制記憶體存取的裝置及方法
TWI787451B (zh) 用於資料處理的方法、設備、電腦程式、與儲存器媒體
EP2889757B1 (en) A load instruction for code conversion
TWI801622B (zh) 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體
JP7369699B2 (ja) データ処理装置におけるアドレス変換
WO2023175289A1 (en) Read-as-x property for page of memory address space