TWI812798B - 用於控制記憶體存取的裝置及方法 - Google Patents
用於控制記憶體存取的裝置及方法 Download PDFInfo
- Publication number
- TWI812798B TWI812798B TW108138351A TW108138351A TWI812798B TW I812798 B TWI812798 B TW I812798B TW 108138351 A TW108138351 A TW 108138351A TW 108138351 A TW108138351 A TW 108138351A TW I812798 B TWI812798 B TW I812798B
- Authority
- TW
- Taiwan
- Prior art keywords
- tag
- memory
- address
- control information
- memory access
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 463
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000013519 translation Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 26
- 230000009471 action Effects 0.000 claims description 11
- 239000000872 buffer Substances 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 2
- 230000005055 memory storage Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 abstract description 12
- 230000008569 process Effects 0.000 description 37
- 101100456831 Caenorhabditis elegans sams-5 gene Proteins 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 239000012464 large buffer Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
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)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
本案提供一種用於控制記憶體存取的裝置及方法。裝置具有記憶體存取電路系統,用於回應於目標位址執行標籤保護型記憶體存取操作,預設的標籤保護型記憶體存取操作包括以下步驟:比較位址標籤與保護標籤,位址標籤與目標位址相關聯,保護標籤儲存在與一或多個記憶體位置的區塊相關聯的記憶體系統中,一或多個記憶體位置的區塊包括由目標位址辨識出的尋址位置;以及生成是否在保護標籤與位址標籤之間偵測到匹配的指示。此外,裝置具有控制標籤儲存器,用於對複數個記憶體區域中的每個區域,儲存配置控制資訊,此配置控制資訊用以控制當目標位址在記憶體區域內時記憶體存取電路系統如何執行標籤保護型記憶體存取操作。每個記憶體區域對應於多個區塊。這提供用於執行標籤保護型記憶體存取操作的非常靈活且高效的機制。
Description
本技術係關於資料處理領域。
將由資料處理裝置執行的軟體通常可用高階程式設計語言寫入,並隨後根據指令集架構編譯成代碼,此指令集架構由將執行軟體的裝置支援。例如,最初可以較高階語言,諸如Java、C或C++來寫入軟體,並且隨後可將軟體編譯成本機支援的指令集架構,諸如x86或Arm®。
一些較高階程式設計語言,諸如Java,被認為是記憶體安全語言,因為他們包括用於檢查關於記憶體存取的某些錯誤的運行時錯誤偵測檢查。相反,記憶體不安全語言,諸如C及C++,不包括此種運行時錯誤檢查。記憶體不安全語言的持久使用意味著在根據給定指令集架構編譯的代碼中,可能存在大量與記憶體相關的錯誤,這些錯誤可能容易被攻擊者或其他惡意方利用。此種錯誤可包括:
• 邊界違規,其中由代碼提供的陣列索引超出陣列的合法邊界;
• 釋放後使用的錯誤,其中在已經解除配置或釋放記憶體位置之後對記憶體位置進行存取;
• 返回後使用的錯誤,其中在函數中已經返回後對與在函數內使用的變數相關聯的位址(諸如堆疊上的值)進行記憶體存取;
• 範圍外使用的錯誤,其中在宣告變數的範圍之外存取變數;以及
• 初始化之前使用的錯誤,其中在已經初始化變數之前存取與變數相關聯的記憶體位址。
這些僅為與記憶體相關的錯誤的一些實例,這些錯誤可能導致不可預測的行為,並可能為攻擊者提供利用的途徑。
因此,可能期望在由給定處理裝置支援的指令集架構內提供架構支援,以輔助運行時偵測某些類別的記憶體錯誤。
在一個示例性配置中,提供一種裝置,包括:記憶體存取電路系統,用以回應於目標位址執行標籤保護型記憶體存取操作,預設的標籤保護型記憶體存取操作包括以下步驟:比較位址標籤與保護標籤,位址標籤與目標位址相關聯,保護標籤儲存在與一或多個記憶體位置的區塊相關聯的記憶體系統中,一或多個記憶體位置的區塊包括由目標位址辨識出的尋址位置;以及生成是否在保護標籤與位址標籤之間偵測到匹配的指示;以及控制標籤儲存器,用以對複數個記憶體區域中的每個區域,儲存配置控制資訊,此配置控制資訊用以控制當目標位址在記憶體區域內時記憶體存取電路系統如何執行標籤保護型記憶體存取操作,每個記憶體區域對應於多個區塊。
在另一示例性配置中,提供一種控制記憶體存取的方法,此方法包括以下步驟:回應於目標位址執行標籤保護型記憶體存取操作,預設的標籤保護型記憶體存取操作包括以下步驟:比較位址標籤與保護標籤,位址標籤與目標位址相關聯,保護標籤儲存在與一或多個記憶體位置的區塊相關聯的記憶體系統中,一或多個記憶體位置的區塊包括由目標位址辨識出的尋址位置;以及生成是否在保護標籤與位址標籤之間偵測到匹配的指示;對複數個記憶體區域的每個區域,儲存配置控制資訊;以及使用配置控制資訊來控制當目標位址在彼記憶體區域內時記憶體存取電路系統如何執行標籤保護型記憶體存取操作,每個記憶體區域對應於區塊中的至少一個區塊。
根據又一示例性配置,提供一種控制主機資料處理裝置的電腦程式,以提供指令執行環境,用於執行目標程式代碼的指令,此電腦程式包括:記憶體存取程式邏輯,用以回應於目標位址執行標籤保護型記憶體存取操作,預設的標籤保護型記憶體存取操作包括以下步驟:比較位址標籤與保護標籤,位址標籤與目標位址相關聯,保護標籤儲存在與一或多個記憶體位置的區塊相關聯的記憶體系統中,一或多個記憶體位置的區塊包括由目標位址辨識出的尋址位置;以及生成是否在保護標籤與位址標籤之間偵測到匹配的指示;以及控制標籤資料結構,用以對複數個記憶體區域中的每個區域,儲存配置控制資訊,此配置控制資訊用以控制當目標位址在記憶體區域內時記憶體存取程式邏輯如何執行標籤保護型記憶體存取操作,每個記憶體區域對應於區塊的至少一個區塊。
在又一示例性配置中,提供一種裝置,包括:記憶體存取構件,用於回應於目標位址執行標籤保護型記憶體存取操作,預設的標籤保護型記憶體存取操作包括以下步驟:比較位址標籤與保護標籤,位址標籤與目標位址相關聯,保護標籤儲存在與一或多個記憶體位置的區塊相關聯的記憶體系統中,一或多個記憶體位置的區塊包括由目標位址辨識出的尋址位置;以及生成是否在保護標籤與位址標籤之間偵測到匹配的指示;以及控制標籤儲存構件,用於對複數個記憶體區域中的每個區域儲存配置控制資訊,此配置控制資訊用以控制當目標位址在記憶體區域內時記憶體存取構件如何執行標籤保護型記憶體存取操作,每個記憶體區域對應於多個區塊。
防止上述類型的某些記憶體使用錯誤的一種方法可能是提供保護標籤,此保護標籤儲存在與一或多個記憶體位置的區塊相關聯的記憶體系統中。當基於在記憶體系統中辨識特定尋址位置的目標位址來請求標籤保護型記憶體存取操作時,記憶體存取電路系統可以比較位址標籤與保護標籤,此位址標籤與目標位址相關聯,此保護標籤儲存在與一或多個記憶體位置中的區塊相關聯的記憶體系統中,此些記憶體位置中的區塊包括由目標位址辨識出的尋址位置。記憶體存取電路系統可生成在保護標籤與位址標籤之間是否偵測到匹配的指示。此指示可用以控制是否允許順利進行記憶體存取或者是否可順利進行後續操作,或者僅可在允許記憶體存取正常繼續時報告。
這可能是有用的,因為例如,當初始化記憶體區域時,基於記憶體不安全語言(諸如C或C++)編譯代碼的編譯器,可以設定代碼預期存取特定值的記憶體區塊的保護標籤,並且可以將對應位址標籤值與指向彼等區塊的目標位址相關聯。若記憶體使用錯誤發生,並且例如位址指標超出範圍使用或伸展出已經初始化的高效範圍的邊界外,則與尋址位置相關聯的保護標籤可能不匹配與目標位址相關聯的位址標籤,並且隨後在此情況下是否偵測到匹配的指示可用以觸發一些錯誤處理回應或錯誤報告機制。所採取的特定回應可取決於正執行的特定軟體需要,或者取決於架構的特定微架構實施。因此,即使高階語言不具有用於執行運行時錯誤檢查以防止記憶體存取錯誤的構件,用於編譯代碼的ISA可能包括用於執行此種檢查的架構特徵。
然而,期望提供用於執行標籤保護型記憶體存取操作的更靈活且高效的機制。
根據本文描述的技術,資料處理裝置具備控制標籤儲存器,佈置此控制標籤儲存器以對複數個記憶體區域的每個區域儲存配置控制資訊,此配置控制資訊用以控制當目標位址在彼記憶體區域內時記憶體存取電路系統如何執行標籤保護型記憶體存取操作。將每個記憶體區域佈置成對應於多個區塊。因此,根據本文描述的方法,可取決於當前存取的記憶體區域,控制執行標籤保護型記憶體存取操作的方式。這提供了很大的靈活性,因為可以不同方式對待個別記憶體區域。此方法亦可實現顯著的效率益處,因為如稍後更詳細論述的,它可以避免存取或更新與某些記憶體區域中區塊相關聯的個別保護標籤,同時仍然允許相對於彼記憶體區域執行期望形式的標籤保護型記憶體存取操作。
每個記憶體區域可以採取各種形式,但在一個示例性實施方式中每個記憶體區域包括一或多個記憶體頁面。特定而言,應理解,通常將記憶體位址空間分割成實體頁面,並且向其提供配置控制資訊的每個記憶體區域可對應於彼等實體頁面中的一或多個。在使用虛擬至實體位址轉換的系統內,應理解,亦可定義虛擬頁面,從記憶體中的一或多個關聯頁表獲得使虛擬頁面內的虛擬位址能夠轉換至實體位址所需的轉換資訊。根據本文描述的方法,形成每個記憶體區域的一或多個記憶體頁面可為實體頁面,或可替代地為虛擬頁面。
儘管在一個實施方式中每個記憶體區域可包括多於一個記憶體頁面,但在一個特定實施方式中每個記憶體區域包括單個記憶體頁面。已經發現,這為本文描述方法的使用提供了特別高效的形式,因為它提供了對逐頁標籤保護型記憶體存取操作的控制,並且亦赋能高效地管理並存取關聯配置控制資訊。例如,通常情況下,可在裝置內提供一或多個快取結構,用於維持與個別記憶體頁面相關的資訊。例如,轉換旁看緩衝器(translation lookaside buffer; TLB)可用於儲存與特定記憶體頁面相關的位址轉換資料。由於在記憶體區域包括單個記憶體頁面的實施方式中亦逐頁地提供配置控制資訊,故彼配置控制資訊亦可輕易地在裝置內快取,例如藉由使用現有的快取結構而實現快取。
配置控制資訊可採取各種形式。在一個實例中,配置控制資訊包括相同標籤模式欄位及記憶體區域保護標籤。當由目標位址辨識出的尋址位置在設置相同標籤模式欄位的記憶體區域內時,可隨後佈置記憶體存取電路系統以更改標籤保護型記憶體存取操作,使得將位址標籤與彼記憶體區域的記憶體區域保護標籤進行比較,而不是和與包含尋址位置的區塊相關聯的保護標籤進行比較。此種方法可提供顯著的執行/效率益處。例如,在認為在特定記憶體區域內的所有區塊具有相同保護標籤值是適當的情況下,而是藉由在配置控制資訊內設定相同標籤模式欄位,及將所需的保護標籤資訊作為記憶體區域保護標籤儲存在配置控制資訊內,可避免對設定彼等個別保護標籤值的需要。在設定相同標籤模式欄位時,則使用儲存為彼記憶體區域的配置控制資訊的單個記憶體區域保護標籤,而不是使用與每個區塊相關聯的個別保護標籤,來執行任何標籤保護型記憶體存取操作,此些標籤保護型記憶體存取操作相關於記憶體區域內的記憶體位置區塊而執行。
除了可藉由不需要維護記憶體區域內區塊的個別保護標籤來實現的執行/效率益處(在對應配置控制資訊中此記憶體區域內的區塊設定了相同的標籤模式欄位),此方法亦可使任何個別標籤保護型記憶體存取操作期間執行的檢查能更快速地執行。特定而言,存取記憶體區域保護標籤可能比存取區塊的個別保護標籤更快速,因為與個別基於區塊的保護標籤的數目相比,將出現的記憶體區域保護標籤的數目更少。這可能特定為記憶體區域保護標籤在裝置的快取結構內(諸如在TLB中)快取的情況。
配置控制資訊不僅需要支援單個模式(諸如上述相同標籤模式),及替代地或另外地,亦可藉由配置控制資訊辨識出不同模式。例如,在一個示例性佈置中,配置控制資訊可包括匹配所有模式欄位。當由目標位址辨識出的尋址位置在設定匹配所有模式欄位的記憶體區域內時,可佈置記憶體存取電路系統以更改標籤保護型記憶體存取操作,使得當位址標籤具有預定值時,繞過位址標籤與保護標籤的比較,及生成步驟包括生成在保護標籤與位址標籤之間偵測到匹配的指示。這可提供顯著的靈活性,同時亦在需要時確保標籤保護型記憶體存取方法的充分安全。特定而言,它意味著標籤保護型記憶體存取方法僅可在認為必要的記憶體區域中使用,而其他記憶體區域可藉由將位址標籤設定至預定值來高效繞過此標籤保護型記憶體存取控制。這可能在各種情況下有用。例如,一些現有程序可合法地清除位址的一或多個上位元,其可例如包括位址標籤資訊。此情況的特定實例為使用壓縮指標。因此,在此種情況下,可能有益的是將匹配所有模式欄位設定在正在執行此種動作的記憶體區域內,使得保護標籤與位址標籤之間的差異不帶旗標。
在一個示例性佈置中,若由目標位址辨識出的尋址位置在設定匹配所有模式欄位的記憶體區域內,但保護標籤不為上述預定值,則將執行正常的標籤保護型記憶體存取操作。在彼點處執行的標籤保護型記憶體存取操作的實際形式將取決於為記憶體區域提供的其他配置資訊。例如,若設定相同標籤模式欄位,則將參考記憶體區域保護標籤而不是記憶體位置的關聯區塊的相關保護標籤,來執行位址標籤的比較。
雖然上述匹配所有模式引用具有預定值的位址標籤,但在替代實施方式中可將保護標籤設定至預定值,並因此若保護標籤具有預定值,則繞過位址標籤與保護標籤的比較。
作為記憶體區域的配置控制資訊的一部分維護的資訊的另一實例,配置控制資訊可包括精確標籤檢查模式欄位。當由目標位址辨識出的尋址位置在設定精確標籤檢查模式欄位的記憶體區域內時,則可佈置記憶體存取電路系統以執行標籤保護型記憶體存取操作,使得當在保護標籤與位址標籤之間偵測到不匹配時,佈置記憶體存取電路系統以防止執行對尋址位置的記憶體存取。因此,根據此種方法,當設定精確標籤檢查模式欄位時,與關聯記憶體存取同步地執行保護標籤與位址標籤的檢查,以便若存在不匹配則停止記憶體存取。在彼點採取的動作可不同,但在一個實施例中,可以在採取適當動作的情況下,將異常提高至更高的異常位準。
另外,在一個示例性佈置中,當由目標位址辨識出的尋址位置在未設定精確標籤模式欄位的記憶體區域內時,佈置記憶體存取電路系統以執行標籤保護型記憶體存取操作,使得當在保護標籤與位址標籤之間偵測到不匹配時,佈置記憶體存取電路系統以允許與針對不匹配產生的任何不匹配指示異步地執行對尋址位置的記憶體存取。因此,在此種方法中,記憶體存取在執行檢查時不會延遲,並且反而與記憶體存取異步地生成任何不匹配指示以指示發生匹配還是不匹配。應注意,儘管每次偵測到不匹配時可生成單獨不匹配指示,從而赋能直接辨識未能通過標籤檢查的記憶體存取,但在其他實施方式中可發出更多通用指示,例如指示一或多個存取尚未通過標籤檢查,從而允許在此指示之後執行額外的調查,以決定關於失敗的記憶體存取的更多細節。
在一些情況下不為某些記憶體區域設定精確標籤檢查模式可能是有用的,以便提高資料存取的速度(例如,藉由相對於當前對資料採取頻繁存取的記憶體頁面禁用精確的標籤檢查模式)。然而,由於配置控制資訊可以根據記憶體區域在一記憶體區域上指定,在一個示例性實施方式中根據逐頁來指定,所描述的方法可藉由僅在必要時禁用精確的標籤檢查模式,而不需要在裝置執行的整個過程時禁用,來提供安全性/調適能力。
控制標籤儲存器可採取各種形式。例如,這由記憶體系統與記憶體存取電路系統耦合的部分形成。在一些實施方式中,控制標籤儲存器可包括用於快取某些記憶體區域的配置控制資訊的快取結構,以便增大對配置控制資訊存取的速度。當使用此種快取結構時,快取結構可採取各種形式。例如,它可為用以快取一或多個記憶體區域的配置控制資訊的專用快取結構。或者,它可為亦用以快取記憶體位置的個別區塊的保護標籤的快取結構。
在每個記憶體區域包括一或多個記憶體頁面的一個示例性佈置中,可藉由將控制標籤儲存器佈置成包括具有複數個條目的轉換旁看緩衝器(translation lookaside buffer; TLB),來實現快取結構的特別高效的實施。每個條目用以按照TLB的標準行為維持記憶體頁面的位址轉換資訊,但在此實施方式中每個條目亦包括用以辨識彼記憶體頁面的配置控制資訊的欄位。TLB結構的使用可提供用於快取與記憶體頁面相關聯的配置控制資訊的特別精確的方法,因為已經提供條目以維持與此種記憶體頁面相關的其他資訊。
在每個記憶體區域包括一或多個實體頁面的一個示例性佈置中,記憶體中的頁表結構不需要更改,並且以標準方式獲得每個條目的位址轉換資訊。然而,另外,可以擴展每個TLB條目以提供額外欄位,此額外欄位用以辨識配置控制資訊,並且可以執行單獨的存取以獲得所討論頁面的配置控制資訊的所需條目(例如,藉由從記憶體系統讀取彼資訊)。
然而,在替代實施例中,配置控制資訊可與記憶體中的虛擬頁面相關聯,並且在彼情況下在記憶體中補充頁表資訊以包括配置控制資訊是可能的。在彼情況下,將在TLB的條目中擷取並填充配置控制資訊,作為用以獲得位址轉換資訊的頁表走查過程的一部分。在一些此種情況下,例如在總體記憶體位址空間相對較小的更小系統中,頁表內可能存在可用於容納配置控制資訊的現有的冗餘空間。在此種實施方式中,系統暫存器可用以辨識從頁表擷取到的位址轉換資訊的哪些位元提供配置控制資訊。此種變化可能更快,因為在初始填充TLB條目時,不需要額外查找來加載頁面標籤資訊,因為所有資訊作為頁表走查過程的一部分而直接擷取到。另外,若系統頁表不具有充足的空間,則若考慮中的特定架構可用,則將頁表資訊放在頁表或類似結構的一些擴展部分中是可能的並且可能更高效。
在一個示例性佈置中,將每個記憶體區域的配置控制資訊保持在記憶體系統的記憶體區域內,並且裝置進一步包括指令解碼器,指令解碼器用以解碼配置控制資訊存取指令以控制記憶體存取電路系統,以從記憶體區域加載所決定記憶體區域的配置控制資訊,並且將所決定記憶體區域的更新後的配置控制資訊儲存至彼記憶體區域。儘管通用記憶體位址空間可用於此目的,因此標準的加載或儲存指令可用以存取配置控制資訊,但在一個示例性佈置中記憶體區域為特別為儲存配置控制資訊提供的記憶體系統的專用區域。在此種情況下,配置控制存取指令可以是為存取彼記憶體區域提供的特定形式的加載及儲存指令。隨後,系統可以配置將用以存取記憶體區域的權限授予特定異常位準。例如,在應用程式/使用者位準,專用記憶體區域僅可使用為彼目的提供的特定加載及存取指令來存取,而在內核位準使用其他指令存取專用記憶體區域可能更加自由。
在一個示例性佈置中,裝置可進一步包含控制標籤儲存器更新電路系統,回應於觸發器以相對於儲存在控制標籤儲存器中的配置控制資訊執行刷新操作。如前所述,控制標籤儲存器可包括一或多個快取結構,並且控制標籤儲存器更新電路系統的使用可用以避免快取資訊變得陳舊。
觸發器執行刷新操作可以許多方式發生。在一個示例性佈置中,觸發器發生在由裝置執行刷新指令時,刷新指令提供位址指示,此位址指示用以辨識其配置控制資訊將進行刷新操作的一或多個記憶體區域。因此,位址指示可指定特定位址,或位址範圍,並且基於彼資訊可決定其配置控制資訊將進行刷新操作的一或多個記憶體區域。
刷新指令可採取各種形式。在TLB結構內快取配置控制資訊的實施方式中,刷新指令可為TLB刷新配置控制資訊指令,其在執行時導致在TLB內執行維持操作,以便辨識TLB內的哪些條目為一記憶體頁面提供配置控制資訊,此記憶體頁面由TLB刷新配置控制資訊指令的位址指示辨識出,並且相對於每個辨識出的條目中的配置控制資訊執行刷新操作。
所執行的刷新動作可以採取各種形式,並且例如可涉及使儲存在TLB的辨識條目中的配置控制資訊無效,或者藉由從記憶體系統擷取到最新版本的資訊來更新彼配置控制資訊。
儘管在上述實例中,觸發器由於執行特定刷新指令而發生,但觸發器亦可由於其他事件而發生。例如,觸發器可發生在執行一儲存指令時,此儲存指令用以將決定的記憶體區域的更新後的配置控制資訊儲存至記憶體系統。特定而言,在執行此種儲存時,已知快取的資訊現在可能是陳舊的,因此可以直接觸發刷新操作。
應注意,無論使用的觸發機制如何,刷新操作僅可影響維持配置控制資訊的TLB條目的內容,並且TLB條目的其他內容(亦即,位址轉換資訊及關聯屬性資訊)在一個示例性實施方式中將不會回應於上述刷新操作而改變。然而,使用已經存在的TLB無效操作仍然可使整個TLB條目無效。
在一個示例性實施方式中,系統控制暫存器可用以控制赋能裝置的哪些工作模式執行刷新操作。例如,系統控制暫存器可辨識當裝置在一應用程式位準(有時亦稱為使用者位準)工作時允許刷新操作執行的一程度。
系統控制暫存器資訊可以採取各種形式。例如,彼資訊可用以在多個不同模式之間選擇。例如,一種模式可以指示不允許在異常位準0中執行刷新操作,相反在異常位準0處執行刷新操作的任何嘗試都應截獲至異常位準1,亦即與工作系統/內核相關聯的異常位準。或者,可以指定另一種模式,此模式指示允許在異常位準0中對所有頁面進行刷新操作。作為另一實例,可以指定一種模式,此模式指示允許在異常位準0中為一些頁面進行刷操作,這取決於在記憶體中相關頁表中指定的頁面屬性。隨後相關的頁面屬性集可由架構或實施方式定義。在不存在彼等頁面屬性的情況下,執行刷新操作的嘗試可能再次截獲至異常位準1。由於能夠逐頁指定此類資訊,這藉由避免在一些情況下需要將刷新請求截獲至更高異常位準,同時在需要確保將刷新截獲至較高異常位準時仍然保持安全性,因此可以在許多情況下使得更快地執行刷新操作。
另一方面,允許在使用者空間中進行此種刷新操作可能產生一種機制,用於從不受信任的過程執行拒絕服務攻擊。例如,此種不受信任的過程可設法在異常位準0使用者空間內頻繁執行刷新操作,從而減慢系統的運行速度。然而,藉由截獲至較高異常位準,可將其用以管理此種拒絕服務問題。因此,在一個示例性配置中,可設定系統控制暫存器,以設法在應用程式位準防止使用刷新操作嘗試的拒絕服務攻擊。
例如,藉由使用上述類型的配置,可以在異常位準1配置系統控制暫存器,以致僅允許對受信任的過程進行異常位準0的刷新操作,而對其他過程禁用刷新。減輕此種拒絕服務攻擊的另一種方式可為在每N次執行刷新操作後,或者若在預定時段內執行N或更多次的刷新操作,則將刷新操作截獲至異常位準1。這將允許在大多數情況下快速頁面標籤刷新,此外亦為內核提供一種控制刷新操作執行頻率的方式,從而防止相關的拒絕服務攻擊。
在使用上述相同標籤模式的實施方式中,亦設定相同標籤模式可用以控制上述標籤保護型記憶體存取操作之外的其他功能。特定而言,記憶體存取電路系統可回應於對存取與選定區塊相關聯的保護標籤的請求,以當對於與彼選定區塊相關聯的記憶體區域設定相同標籤模式欄位時採取替代動作。可執行此種存取以設法讀取保護標籤值,或寫入更新後的保護標籤值。在每種情況下,設定相同標籤模式時執行的替代動作可有所不同。例如,使用任何嘗試將區塊的保護標籤值儲存至記憶體的指令,其中彼區塊在設定相同標籤模式欄位的記憶體區域內,可能導致產生異常,從而異常處理常式可以決定針對彼儲存請求採取什麼步驟。作為另一實例,使用任何嘗試從記憶體讀取區塊的保護標籤的指令,其中區塊在設定相同標籤模式的記憶體區域內,可以導致返回記憶體區域保護標籤而不是區塊的保護標籤。
在一個示例性佈置中,可為選定記憶體區域佈置裝置以根據觸發器狀態在預設模式與相同標籤模式之間切換,在預設模式中清除彼選定記憶體區域的相同標籤模式欄位,在相同標籤模式中設定彼選定記憶體區域的相同標籤模式欄位。根據特定實施方式,切換功能可藉由軟體或者硬體來實施。
觸發器狀態可以採取各種形式。例如,此種方案可以與用作堆疊的記憶體區域的加標籤結合使用。例如,預設堆疊頁面可具有禁用的相同標籤模式。隨後,總是可以在禁用相同標籤模式的前提下執行小變數的加標籤。然而,在根據啟發式演算法認為給此種大緩衝器加標籤高效時,大緩衝器可使用一種方法加標籤及取消標籤,此方法啟用相同標籤模式。隨後,在取消標籤時可以始終禁用相同標籤模式,以致恢復至原始標籤值。
作為另一實例,觸發器狀態可為一更新,此更新在設定相同標籤模式欄位時關於與選定記憶體區域內的區塊相關聯的保護標籤來執行,並且導致從相同標籤模式轉換至預設模式。特定而言,可以採取某些步驟從相同標籤模式遷移至預設模式,以便此後允許儲存所辨識區塊的新指定的保護標籤值。
可以藉由執行多個指令來顯性處理此種方法,以實施轉換操作,此轉換操作導致清除選定記憶體區域的配置控制資訊中的至少相同標籤模式欄位。彼等指令亦可以例如導致將當前記憶體區域保護標籤值寫入單個區塊保護標籤的每一者中,以便在使用新保護標籤值更新辨識到的區塊之前,覆蓋區塊的先前保護標籤值。
或者,不執行多個指令,而是可以對裝置的更高工作模式發出異常,以模擬轉換操作。可以由於多個原因來觸發異常。例如,當嘗試在對應記憶體區域已設定相同標籤模式時更新與區塊相關聯的保護標籤時,直接觸發異常。
在一個示例性佈置中,裝置進一步包括決定電路系統,決定電路系統用以基於位址轉換因數的知識來決定是否允許對配置控制資訊的更新由裝置以其當前工作模式來執行,或者是否要求較高工作模式的異常來處理對更新的請求。可將決定電路系統作為記憶體存取電路系統的一部分來提供。位址轉換因數可以採取各種形式。例如,系統可以支援多個不同虛擬頁面大小,並且可能在某些更低異常位準上,軟體不知道所使用的最小頁面大小。在彼情況下,可能需要將更新程序截獲至更高異常位準,以便相應地處理更新請求(允許或者防止更新)。然而,若可將最小頁面大小暴露於使用者空間,則可以允許執行一些此種更新,而不會陷入更高異常位準。特定而言,若決定當前更新與最小頁面大小的頁面大小有關,則可以允許在當前異常位準下執行彼等更新,否則可以將其陷入可能發生處理更新的更高異常位準。
作為另一實例,可將特定實體頁面映射進幾個虛擬頁面中,並且在彼情況下更新操作僅可以執行對當前映射的更新。例如,若針對映射中的一個將條目儲存在TLB內,則可以針對特定映射執行刷新,但不會針對至相同實體頁面的另一映射執行刷新。若軟體知曉多個映射情況,則軟體可相應地處理該等情況。然而,為了支援隱含頁面共享的情況,在更低異常位準(諸如EL0)不知道共享時,較佳將更新操作截獲至更高異常位準。在許多情況下,隱含頁面共享的存在可以藉由與頁面相關聯的一些屬性位元來暗示。例如,若使用寫時複製程序實施隱含頁面共享,則虛擬頁面可能被指出不可寫,並且在彼情況下嘗試更新配置控制資訊可能會陷入更高異常位準。
若需要,可在配置控制資訊內提供額外的資訊欄位,以辨識需要以更高異常位準處理的特定情況。因此,若設定對應欄位,則任何刷新操作都將陷入下一個異常位準。若需要,可以將系統配置為不允許非特權異常位準(諸如EL0)更改彼欄位。
現將參照附圖描述特定實例。
第1圖示意地圖示資料處理裝置2的實例。應理解,這僅為裝置的部件的子集的高階表示,並且裝置可包括許多其他未圖示的部件。裝置2包括用於回應於由指令解碼器6解碼的指令而執行資料處理的處理電路系統4。指令解碼器6解碼從指令快取記憶體8提取的指令以生成控制訊號10,用於控制處理電路系統4以執行由指令表示的對應處理操作。處理電路系統4可以包括一或多個執行單元,用於對儲存在暫存器14中的值執行操作以生成將回寫至暫存器的結果值。例如,執行單元可以包括用於執行算術運算或邏輯運算的算術/邏輯單元(arithmetic / logic unit; ALU),用於使用浮點運算元執行運算的浮點單元,及用於對包括多個單獨資料元素的運算元執行向量操作的向量處理單元。處理電路系統亦包括用於控制資料在暫存器14與記憶體系統之間轉換的記憶體存取單元(或加載/儲存單元)15。在此實例中,記憶體系統包括指令快取記憶體8、1階資料快取記憶體16、在資料與指令之間共享的2階快取記憶體17、及主記憶體18。應理解,其他快取記憶體層級結構亦為可能的-這僅為一個實例。記憶體管理單元(memory management unit; MMU)20用以提供位址轉換功能以支援由加載/儲存單元15觸發的記憶體存取。MMU具有轉換旁看緩衝器(translation lookaside buffer; TLB)22,用於從儲存在記憶體系統16、記憶體系統17、記憶體系統18中的頁表快取條目的子集。每個頁表條目可為對應的位址頁面提供位址轉換映射,並且亦可以指定存取控制參數,諸如指定頁面為唯讀區域還是可讀且可寫兩者的存取許可,或者指定哪些特權位準可存取頁面的存取許可。
第2圖示意性圖示標籤保護型記憶體存取的概念。用於引用記憶體系統內的記憶體位置的實體位址空間可以邏輯上分割成許多區塊30,每個區塊包括一定數目的可尋址位置。為簡明起見,在第2圖的實例中,每個區塊30包括四個記憶體位置,但也可以使用其他區塊大小。每個區塊30與對應保護標籤32相關聯。與一定數目的區塊30相關聯的保護標籤可以聚集在一起,並且儲存在實體位址空間內的不同架構可存取記憶體位置34內,或者儲存在主記憶體18中提供的額外儲存位置內,該等額外儲存位置在架構上不可存取(未映射至相同實體位址空間)。在一些情況下,可較佳使用單獨的非架構可存取的儲存器以避免用完資料快取記憶體16、資料快取記憶體17中的空間來快取保護標籤值,這可能影響常規代碼的執行,並且可能使一致性管理更加複雜。在微架構中可提供額外標籤快取記憶體19,用於從非架構可存取儲存器快取標籤值,以便比必須從主記憶體18存取標籤時更快速地存取。標籤儲存位置34對應於每個區塊30的特定映射可以由加載/儲存單元15控制,並且可以硬體連接或者可程式設計。儘管在第2圖中每個標籤32與實體位址的區塊相關聯,但提供與虛擬記憶體位址空間中的虛擬記憶體位置相關聯的保護標籤32亦是可能的,但這可能在每次記憶體存取時需要一些額外位址轉換。因此,藉由將保護標籤32與實體記憶體位置相關聯,可提高效能。一般而言,對於特定微架構實施,可以確切地選擇如何將保護標籤32與實體位址空間的對應區塊30相關聯。一般而言,所有所需要的為可存取並比較與記憶體的給定區塊相關聯的保護標籤32。
因此,當需要標籤保護型記憶體存取時,將位址標籤40(與辨識待存取的尋址位置44的目標位址42相關聯)與保護標籤32(與包括尋址位置44的記憶體位置30的區塊相關聯)進行比較。例如,在第2圖中,目標位址42指向記憶體中某個位置B1,在第2圖的位址空間中標記為44。因此,將保護標籤B(與包括位置B1的位置B的區塊相關聯)與位址標籤40(與目標位址42相關聯)進行比較。如第2圖的頂部所示,可將位址標籤40決定為目標位址本身的選定位元的函數。特定而言,可以從目標位址的部分內的位元決定位址標籤,此目標位址的部分不用於指示將選為尋址位置44的特定記憶體位置。例如,在一些架構中,目標位址的位元的頂部部分可能總具有某個固定值,諸如符號擴展部分(全0或者全1),因此可藉由使用任意標籤值改寫此些不用的位元,來使用位址標籤40標記位址。例如,特定位址標籤值可由程式師或編譯器選定。位址標籤及保護標籤32可為相對少量的位元,例如4位元,因此不需要佔據記憶體內及目標位址內很多空間。提供4位元的標籤空間,即16個可能的標籤值,通常足以偵測許多常見類型的記憶體存取錯誤。
因此,當執行標籤保護型記憶體存取時,加載/儲存單元15比較位址標籤40及保護標籤32,保護標籤32與包括尋址位置44的區塊30相關聯,並決定它們是否匹配。加載/儲存單元15生成一匹配指示,指示位址標籤40與保護標籤32是否匹配。例如,此匹配指示可為故障訊號60,若在位址標籤40與保護標籤32之間存在不匹配,則生成故障訊號60,或者可為置於狀態暫存器中的指示,指示是否存在匹配,或者可為添加至錯誤報告的條目,用於指示偵測到錯誤的位址及/或觸發了錯誤的指令的指令位址。
根據本文描述的方法,為複數個不同記憶體區域中的每個區域提供配置控制資訊,其中每個記憶體區域包括第2圖中圖示的多個區塊。記憶體區域可以採取各種形式,但在一個示例性佈置中每個記憶體區域包括記憶體頁面,其中每個記憶體頁面將包括第2圖中圖示的多個區塊。這在第3圖中示意圖示,其中將第2圖中提到的個別區塊在第3圖中稱為區組100,其中每個區組具有與其關聯的保護標籤。與第2圖先前描述一樣,可提供記憶體區域105用於儲存保護標籤。
然而,另外,如第3圖圖示,區組100的群組在記憶體中形成對應頁面,並且與每個頁面相關聯地提供頁面標籤110。為了本文描述的示例性實施的目的,將具有關聯配置控制資訊的每個記憶體區域假定為頁面,因此在此將所關聯配置控制資訊稱作頁面標籤。可提供記憶體120的區域用於儲存頁面標籤。先前關於如何將保護標籤儲存在記憶體中的論述同樣適用於頁面標籤110,因此這些可儲存在實體位址空間內的架構可存取的記憶體位置中,或者儲存在設置在架構上不可存取的記憶體(未映射至相同實體位址空間)中的額外儲存位置中。在後一種情況下,可擴展標籤快取記憶體19以快取頁面標籤,或者替代地可提供單獨的快取結構。在本文後面論述的一個特定實施方式中,在TLB 22的條目內實際上快取多個頁面標籤,這提供了用於快取頁面標籤資訊的特別高效機制。
可將各種形式的配置控制資訊儲存在個別頁面標籤內。本文儲存的資訊用於控制如何由加載/儲存單元15執行標籤保護型記憶體存取操作。第4圖圖示一種特定示例性形式的頁面標籤110。
如第4圖圖示,提供許多不同欄位。特定而言,提供匹配所有模式欄位130,提供精確標籤檢查模式欄位135,提供相同標籤模式欄位140,及另外提供頁面保護標籤欄位145,用於儲存頁面保護標籤(本文亦稱為記憶體區域保護標籤)。現在將參照第5圖至第7圖更詳細地論述根據設定此些不同欄位中的哪些欄位來控制標籤保護型記憶體存取操作的方式。
第5圖指示如何根據在欄位140內是否設定相同標籤模式來更改標籤保護型記憶體存取操作。在步驟150,辨識與存取請求的目標位址相關聯的記憶體頁面,及在步驟155,引用彼記憶體頁面的頁面標籤。這可能涉及以下步驟:在為快取頁面標籤提供的快取結構(諸如標籤快取記憶體19或TLB 22)內存取頁面標籤,或者在系統內沒有快取相關頁面標籤的情況下從記憶體擷取相關頁面標籤。
在步驟160,決定是否在彼頁面標籤中設定相同標籤模式,並且若沒有,則過程僅進行至步驟165,此處執行預設標籤保護型記憶體存取檢查,以便比較目標位址的位址標籤與關聯區組的保護標籤。
然而,若設定相同標籤模式,則過程進行至步驟170,此處執行更改的標籤保護型記憶體存取檢查。特定而言,不是使用關聯區組的保護標籤,而是使用欄位145中的頁面保護標籤,並相應地相對於頁面保護標籤檢查目標位址的位址標籤,以偵測是否存在匹配。隨後,取決於匹配而採取的動作與先前在論述與個別保護標籤的比較時參照第2圖論述的相同。
第6圖圖示根據是否設定匹配所有模式來實施標籤保護型記憶體存取操作而執行的步驟。步驟200及步驟205對應於第5圖的步驟150及步驟155。在步驟210,決定是否在頁面標籤110的欄位130中設定匹配所有模式,並且若否,則過程進行至步驟215,此處執行預設標籤保護型記憶體存取檢查。
然而,若設定匹配所有模式,則過程進行至步驟220,此處決定目標位址的位址標籤是否具有預定值。預定值可以採取各種形式,但在一個示例性佈置中預定值為位址標籤的零值。若位址標籤具有除了預定值外的值,則過程進行至步驟215,此處執行預設標籤保護型記憶體存取檢查。然而,若位址標籤具有預定值,則替代地過程進行至步驟225,此處指示在沒有檢查到關聯區組的保護標籤的情況下已經偵測到匹配。
第7圖為圖示在欄位135內設定精確標籤模式的情況下如何執行標籤保護型記憶體存取操作的流程圖。步驟250及步驟255對應於先前論述的第5圖的步驟150及步驟155。在步驟260,決定是否設定精確標籤檢查模式,並且若否,則在步驟265與關聯記憶體存取異步地執行預設標籤保護型記憶體存取檢查。因而,這意味著無論檢查的結果如何,記憶體存取繼續進行,並且替代地有延遲報告任何不匹配的情況。在僅期望生成哪些存取操作未通過檢查,但不阻止彼等存取發生的報告的情況下,這可能有用。如前所述,對於每個未通過標籤保護型記憶體存取檢查的存取,可以單獨提出不匹配指示,或者提出的任何不匹配指示可僅僅辨識一或多個記憶體存取已經失敗,若需要,則執行進一步調查以設法找到更多細節。
然而,相反,若設定精確標籤檢查模式,則過程進行至步驟270,此處執行預設標籤保護型記憶體存取檢查,但延遲記憶體存取直到檢查結果可用,使得若在位址標籤與保護標籤之間偵測到不匹配則防止執行存取。則在一個示例性實施中不執行存取,而是生成異常以便在較高異常位準觸發異常處理常式。應理解,由異常處理常式採取的步驟將取決於實施方式。
儘管在上文第5圖至第7圖的論述中,假定針對任意特定頁面標籤僅設定模式欄位130、模式欄位135、模式欄位140中的一個,但這僅為了便於說明,在一個實施方式中參照第5圖至第7圖論述的不同模式可彼此獨立地設定或清除。因此,舉例而言,當考慮第6圖的匹配所有檢查過程時,若過程進行至步驟215,但設定相同標籤模式欄位,則步驟215將參照欄位145中的頁面保護標籤而不是區組保護標籤,實際上執行標籤保護型記憶體存取檢查。此外,若在設定相同標籤模式欄位的同時過程進行至步驟225,則亦跳過相對於頁面保護標籤的檢查,由此將匹配指示為在不使用頁面保護標籤檢查位址標籤的情況下就可以偵測到。作為另一實例,若設定相同標籤模式欄位以及精確標籤檢查欄位,則當執行第7圖的步驟265或者步驟270時,將再次使用頁面保護標籤145而不是區組的保護標籤。
如前述,在一個示例性實施方式中頁面標籤可在第1圖圖示的MMU 20的TLB 22內快取。第8圖圖示一個示例性實施方式,其中將TLB的TLB儲存結構280擴展至包括額外欄位。如第8圖圖示,為TLB內的每個條目提供標準欄位300、標準欄位305、標準欄位310。如本領域技術人員將理解的,欄位300用於儲存虛擬位址部分,而欄位305用於儲存對應實體位址部分,並且若決定特定位址索引為TLB中的一個條目,則可使用部分300、部分305指示的虛擬至實體位址映射,將虛擬位址轉換成實體位址。欄位310用於儲存與條目相關聯的記憶體頁面的各種屬性,諸如對彼記憶體頁面的存取是否可快取、可緩衝等等。
亦如第8圖中圖示,TLB儲存器280中的每個條目可擴展至包括兩個額外欄位。欄位315用以儲存與條目相關聯的記憶體頁面的頁面標籤,並且亦可提供頁面標籤有效欄位320以辨識保存在頁面標籤欄位315中的資訊是否無效。
欄位300、欄位305、欄位310將使用標準TLB更新程序來填充,標準TLB更新程序通常涉及存取儲存在記憶體中的一或多個頁表以擷取必要位址轉換資訊的頁表走查過程。此後,將欄位300、欄位305、欄位310的內容統一稱為位址轉換資訊。欄位315將不被常規頁表走查過程填充,而可以執行單獨的存取,例如在最初將條目分配進TLB中時,以從記憶體擷取記憶體相關頁面的頁面標籤,其中在欄位315中填充資訊,隨後設定頁面標籤有效欄位320。
儘管在與頁面標籤相關聯的記憶體頁面為實體頁面的情況下可使用上述方法,但在替代實施方式中與頁面標籤相關聯的記憶體頁面亦可能為虛擬頁面。在彼情況下,由於用於獲得位址轉換資訊的標準頁表走查過程,可填充欄位315、欄位320,因為在此種情況下在儲存在記憶體中的頁表資訊內可包括頁面標籤資訊,因此將作為頁表走查過程的部分而擷取到。在一些情況下,例如在總體記憶體位址空間相對較小的更小系統中,頁表內可能存在可輕易容納頁標籤資訊的現有的冗餘空間。在此種情況下,可以在第1圖圖示的系統控制暫存器24的一個內保留資訊,以辨識從頁表擷取到的位址轉換資訊的哪些位元提供頁面標籤資訊。
在基於虛擬位址的一個實施方式中,可能不需要單獨的頁面標籤有效欄位320,因為作為標準頁表走查過程的一部分而擷取到頁面標籤資訊,因此用於整個條目的通用有效旗標可用於指示位址轉換資料的有效性,包括從頁表走查過程獲得的頁面標籤資訊。
第9圖為圖示根據一個示例性實施方式的設置在TLB 350內的部件的方塊圖。TLB 350包括TLB 儲存器280,其可採取上文參照第8圖論述的形式。TLB存取控制電路系統355用於基於指定虛擬位址執行存取操作,以擷取位址轉換資訊,並由此產生指定虛擬位址的對應實體位址。如稍後參照第11圖將論述的,亦可在彼點提供關聯記憶體區域的頁面標籤資訊作為來自TLB的輸出。
另外,可提供TLB維持電路系統360用於對TLB儲存器280的內容執行TLB維持操作。除了包括標準TLB維持操作之外,TLB維持電路系統360可包括頁面標籤更新/刷新電路系統365,其回應於頁面標籤更新/刷新操作以便執行一步驟序列,如下文參考第10圖將更詳細論述的。如第10圖圖示,在步驟400,辨識到TLB刷新頁面標籤(TLB refresh page tags; TLBRPT)操作,具有一關聯位址或位址範圍。可以各種方式辨識對TLBRPT操作的需要。例如,可以提供顯式指令,此處將其稱為TLBRPT指令,其提供位址/位置範圍,並在執行時導致執行刷新操作。替代地,可以藉由正在執行的另一操作自動觸發TLB刷新操作。例如,可提供指令用於將頁面標籤資訊儲存至記憶體,此種指令在此處稱為STPT指令。當執行此種指令以更新記憶體中的頁面標籤時,可自動調用刷新操作,以設法刷新相關頁面標籤的任何快取副本。
此外,儘管可回應於在特定異常位準上執行指令而直接執行刷新操作,但在一些實施方式中,可僅允許在某些更高特權位準執行刷新操作,因此可以在更高異常位準上模擬刷新操作的執行,而不是由於在當前較低異常位準處執行指令而執行刷新操作。
若需要,系統控制暫存器24中的一個可用於提供資訊,該資訊辨識此種刷新操作可在哪個異常位準執行。例如,此種資訊可辨識在異常位準0處不能執行刷新操作,並且在異常位準0處執行刷新操作的任何嘗試應截獲至異常位準1。或者,控制資訊可以辨識在異常位準0可執行刷新操作,或者可以根據在記憶體中相關頁表中指定的頁面屬性而在異常位準0對一些頁面執行刷新操作。無論上述哪種應用,假定在步驟400現在正在執行刷新操作,直接經由適當指令的執行,或者藉由更高異常位準處的模擬而執行刷新操作。
在步驟405,辨識包括位址區域的位址轉換資訊的TLB條目,此位址區域的位址轉換資訊匹配與 TLBRPT操作相關聯的位址資訊。TLBRPT操作僅可辨識單個頁面,在這種情況下至多一個TLB條目將需要刷新,或者可替代地辨識多個頁面,因此可能存在需要進行刷新操作的多個TLB條目。
在步驟410,決定刷新操作是否在無效模式下工作,而不是在更新模式下工作。若在無效模式下操作,則過程進行至步驟415,此處針對每個辨識的TLB條目清除頁表有效旗標320。因此,這指示頁面標籤欄位315中的當前內容無效,因此若在適當時候需要使用頁面標籤資訊,則需要從記憶體重新擷取此頁面標籤資訊。
然而,若在步驟410處決定正在使用的更新模式,則過程進行至步驟420,此處過程從記憶體擷取相關頁面或頁面標籤的最新版本,並更新在每個辨識的TLB條目中的頁面標籤資訊。對於每個此種條目,亦設定PT有效旗標。
第11圖為圖示根據一個示例性實施方式的第9圖的TLB存取控制電路系統355的操作的流程圖。在步驟450,辨識將執行的存取操作,此存取操作指定目標虛擬位址。在步驟455,藉由使用TLB儲存器280的TLB存取控制電路系統355,來執行虛擬至實體位址轉換。若在TLB中偵測不到,則此過程將涉及執行頁表走查過程,並隨後分配TLB中的條目用於相關位址轉換資訊。因此,應理解,在已執行步驟455時,將在TLB儲存器中分配條目,因為條目已經存在並且偵測到命中,或者因為偵測不到,從而導致條目填充進TLB儲存器中。在步驟455決定的實體位址隨後可返回至加載/儲存單元15。
在步驟460,決定用於位址轉換過程的TLB條目是否已經設定PT有效旗標320。若為了服務存取請求而在步驟455恰好填充了頁表條目,則情況將不同。另外,從先前論述將理解,若先前使用無效工作模式執行刷新操作,則可能不設置PT有效旗標,因此可繼續進行第10圖的步驟415。
若討論中的TLB條目已經設定PT有效旗標,則過程可僅進行至步驟470,此處可將保存在彼條目中的頁面標籤提供至加載/儲存單元,用於控制對存取操作的目標位址進行標籤保護型記憶體存取檢查。
然而,若在相關條目中未設定PT有效旗標,則在步驟465,從記憶體擷取相關頁面的頁面標籤,隨後將其儲存在相關TLB條目的欄位315中(隨後設定PT有效旗標)。此後,過程進行至步驟470。
第12圖為圖示TLBRPT處理可如何由保存在系統控制暫存器24中的資訊影響的流程圖。在步驟500,決定是否需要TLBRPT操作。若否,則在步驟505,複查相關系統控制暫存器,以決定彼系統控制暫存器的內容是否指示不允許在當前異常位準處的TLBRPT操作的執行。若為這種情況,則在步驟510,觸發異常以使在更高異常位準處理TLBRPT操作。
然而,若系統控制暫存器不防止TLBRPT操作在當前異常位準執行,則在步驟515檢查系統控制暫存器內容是否指示容許性取決於頁表中的頁面屬性。若否,則在步驟520在當前異常位準可執行刷新操作。然而,另外在步驟525複查由系統控制暫存器辨識出的相關頁面屬性。這通常涉及存取TLB以便擷取相關的屬性。此後,在步驟530,決定頁面屬性是否具有允許在當前異常位準執行刷新操作的形式。若是,過程進行至步驟520,但在其他情況下進行至步驟510。
在使用上述相同標籤模式的實施方式中,可將相同標籤模式的設定用以額外控制上述標籤保護型記憶體存取操作之外的其他功能。這藉由參考第13A圖的實例來說明。在步驟550,決定是否已經請求對選定區組的保護標籤進行更新。這可能例如由於正在執行的儲存指令而出現,此儲存指令設法在記憶體中更新特定保護標籤。若是,則在步驟565,辨識關聯記憶體頁面(亦即,包括選定區組的記憶體頁面),隨後在步驟570決定是否針對對應頁面標籤設定相同標籤模式。若否,則在步驟580,可以標準方式針對選定區組更新保護標籤。然而,若設定相同標籤模式,則在步驟575,可將異常生成至更高異常位準。在彼點上可執行異常處理常式,彼異常處理常式的形式取決於實施方式。
第13B圖為圖示當設法更新選定區組的保護標籤時可執行的特定示例性序列的流程圖。特定而言,根據第13B圖描述的方法,更新特定區組的保護標籤的嘗試可調用從操作的相同標籤模式切換至預設模式的機制。第13B圖中圖示的步驟可以經由執行一指令序列而顯式執行,或者可隱含地執行,例如藉由執行儲存區組(store granule; STG)指令時採取異常,以便在更高異常位準模擬所需處理步驟。
當在步驟600偵測對選定區組的保護標籤的更新時,則在步驟605,辨識對應於選定區組的記憶體頁面,並且隨後在步驟610決定是否設定相同標籤模式。若否,則過程可直接進行至步驟630,此處將選定區組的保護標籤更新至由步驟600處使用的更新機制指定的值。
然而,若設定相同標籤模式,則在步驟615,更新相關記憶體頁面的頁面標籤,以便改變相同標籤模式旗標以清除而不是設定,隨後將更新後的頁面標籤儲存至記憶體。此後,在步驟620,相對於TLB中的相關條目執行刷新頁面標籤操作,因為已知前一頁面標籤資訊現在無效。從第10圖的先前論述中顯而易見,這將導致頁面標籤有效旗標在TLB條目中清除,或者最新版本的頁面標籤從記憶體擷取並儲存進TLB中,此最新版本指示不再設定相同標籤模式。
在步驟625,對於記憶體頁面的每個區組,將對應保護標籤更新,以便使用頁面標籤的欄位145內的頁面保護標籤資訊改寫上述保護標籤資訊。因而,可以看出,此時位置與仍然已設定相同標籤模式時相同,但是不是正在使用的總體頁面保護標籤,與頁面內區組相關聯的個別保護標籤中的每個保護標籤已經被更新至具有與頁面保護標籤相同的值。
此後,在步驟630,可將由步驟600使用的更新機制指定的選定區組的保護標籤更新至由彼更新機制指定的值。
因而,應理解,已經執行保護標籤更新,但此過程的副產物為對於討論中頁面不再設定相同標籤模式。因而,將參考相關區組保護標籤而執行後續標籤保護型記憶體存取操作。
第14圖為圖示正在設定的相同標籤模式的存在可能如何影響選定區組的保護標籤的讀取請求的流程圖。若在步驟650偵測到一讀取請求,讀取請求為設法從記憶體讀取選定區組的保護標籤,則在步驟655辨識到對應記憶體頁面,即包含選定區組的記憶體頁面。此後,在步驟660,決定是否在彼記憶體頁面的頁面標籤內設定相同標籤模式。若否,過程進行至步驟670,此處以通常方式從記憶體讀取選定區組的保護標籤。
然而,若設定相同標籤模式,則過程進行至步驟665,此處不讀取選定區組的保護標籤,而是返回記憶體頁面的頁面保護標籤。因此,讀取請求導致返回頁面保護標籤,而不是返回選定區組的當前保護標籤內容。
第15圖為圖示根據一個示例性佈置可在異常位準0(EL0)處如何處理STPT指令的流程圖。特定而言,STPT指令為特定形式的儲存指令,用以更新頁面標籤的內容。當在步驟700決定將在EL0處執行此種STPT指令時,則在步驟705參考一或多個位址轉換因數,以便決定在EL0是否可執行STPT指令的執行。因而,決定在步驟710在EL0可執行STPT指令,則過程進行至步驟715,此處執行STPT操作。然而,否則過程進行至步驟720,此處觸發異常以導致在更高異常位準處理STPT操作。
在步驟705可考慮位址轉換因數的不同實例。作為一個特定實例,若系統支援使用多個虛擬頁面大小,並且將最小虛擬頁面大小暴露於異常位準0,則在異常位準0處的處理電路系統可決定STPT操作是否涉及一或多個最小大小的虛擬頁面。若否,則將不在異常位準0處執行STPT操作,而是將陷入異常位準1。
作為另一實例,在特定實體頁面可以映射進幾個虛擬頁面的情況下,可使用隱含頁面共享機制,因此不同虛擬位址可映射至相同實體位址。在這將對異常位準0處執行的處理電路系統是透明,且因此存在隱含頁面共享的情況下,則可在頁面標籤資訊內提供額外位元,當設定此頁面標籤資訊以指示此種情況時,導致將與對應頁面相關聯的任何執行STPT操作的嘗試截獲至異常位準1。
第16圖圖示可使用的模擬器實施方式。儘管先前所述實施例按照用於操作支援相關技術的特定處理硬體的設備及方法實施本發明,但亦可能提供根據本文所述的實施例的指令執行環境,該指令執行環境經由使用電腦程式來實施。只要此種電腦程式提供硬體架構的基於軟體實施方式,就將它們通常稱為模擬器。各種模擬器電腦程式包括模擬器、虛擬機、模型及二進制翻譯器(包括動態二進制翻譯器)。通常,模擬器實施方式可在主機處理器1130上運行,視情況運行主機作業系統1120、支援模擬器程式1110。在一些佈置中,在硬體與所提供的指令執行環境及/或提供在相同主機處理器上的多個不同指令執行環境之間存在多個模擬層。從歷史上看,已經要求功能強大的處理器提供以合理速度執行的模擬器實施方式,但是在某些情況下此種方法可能是合理的,例如當出於相容性或重用原因而希望將運行另一個處理器的本地代碼時。例如,模擬器實施方式可提供具有不由主機處理器硬體支援的額外功能的指令執行環境,或者提供通常與不同硬體架構關聯的指令執行環境。模擬的概述在刊登在「冬季1990 USENIX會議」中第53-63頁中的Robert Bedichek所寫的「一些架構模擬技術(Some Efficient Architecture Simulation Techniques)」中給出。
先前已參考特定硬體構造或特徵描述實施例,在模擬實施例中,可藉由合適的軟體構造或特徵來提供等效功能。例如,特定電路系統可在模擬實施例中實施作為電腦程式邏輯。同樣地,諸如暫存器或快取記憶體的記憶體硬體可在模擬實施例中作為軟體資料結果實施。在先前所述實施例中引用的硬體元件的一或多個存在於主硬體(例如,主機處理器1130)上的佈置中,在適合的情況下一些模擬實施例可利用主硬體。
模擬程式1110可儲存在電腦可讀儲存媒體1112(其可為非暫時性媒體),並且將程式介面(指令執行環境)提供至與硬體架構的應用程式介面相同的目標代碼1100(其可包括應用程式、作業系統及超管理器),此硬體架構藉由模擬程式1110模型化。因而,目標代碼1100的程式指令可使用模擬程式1110在指令執行環境內執行,以便實際上不具有如上所述裝置2的硬體特徵的主機電腦1130可模擬此等特徵。例如,模擬程式1110可包括用於藉由目標代碼1100的指令控制對記憶體的存取的記憶體存取程式邏輯1114。例如,記憶體存取程式邏輯1114可包括用於執行保護標籤與位址標籤的比較,並報告在保護標籤與位址標籤之間是否已經偵測到任何不匹配的指令。此外,模擬程式1110可包括控制標籤資料結構1116,用以針對複數個記憶體區域的每個區域儲存配置控制資訊,此配置控制資訊用以當目標位址在彼記憶體區域內時控制如何執行標籤保護型記憶體存取操作。
在本申請案中,用語「經配置以」用於意謂裝置的元件具有能夠執行所定義操作的配置。在此上下文中,「配置」意謂硬體或軟體的互連的排列或方式。例如,裝置可具有提供定義操作的專用硬體,或處理器或其他處理元件可經程式化以執行功能。「經配置以」不暗示裝置元件需要以任何方式改變以便提供所定義的操作。
儘管本文已參考所附圖式詳細地描述本發明的說明性實施例,但應理解,本發明並不限於彼等精確實施例且熟習此項技術者可在不背離如隨附申請專利範圍所定義的本發明的範疇及精神的情況下在其中實施各種改變、添加及修改。例如,可在不脫離本發明的範疇下,對從屬請求項的特徵與獨立請求項的特徵進行多種組合。
2:資料處理裝置
4:處理電路系統
6:指令解碼器
8:指令快取記憶體
14:暫存器
15:加載/儲存單元
16:記憶體系統
17:記憶體系統
18:記憶體系統
19:額外標籤快取記憶體
20:記憶體管理單元(MMU)
22:轉換旁看緩衝器(TLB
24:系統控制暫存器
30:區塊
32:保護標籤
40:位址標籤
42:目標位址
44:尋址位置
60:故障訊號
100:區組
105:記憶體區域
110:頁面標籤
120:記憶體
130:匹配所有模式欄位
135:精確標籤檢查模式欄位
140:相同標籤模式欄位
145:頁面保護標籤欄位
150:步驟
155:步驟
160:步驟
165:步驟
170:步驟
200:步驟
205:步驟
210:步驟
215:步驟
220:步驟
225:步驟
250:步驟
255:步驟
260:步驟
265:步驟
270:步驟
280:TLB儲存結構
300:欄位
305:欄位
310:欄位
315:欄位
320:頁面標籤有效欄位
350:TLB
355:TLB存取控制電路系統
360:TLB維持電路系統
365:頁面標籤更新/刷新電路系統
400:步驟
405:步驟
410:步驟
415:步驟
420:步驟
450:步驟
455:步驟
460:步驟
465:步驟
470:步驟
500:步驟
505:步驟
510:步驟
515:步驟
520:步驟
525:步驟
530:步驟
550:步驟
565:步驟
570:步驟
575:步驟
580:步驟
600:步驟
605:步驟
610:步驟
615:步驟
620:步驟
625:步驟
630:步驟
650:步驟
655:步驟
660:步驟
665:步驟
670:步驟
700:步驟
705:步驟
710:步驟
715:步驟
720:步驟
1100:目標代碼
1110:模擬程式
1112:電腦可讀儲存媒體
1114:記憶體存取程式邏輯
1116:控制標籤資料結構
1120:主機作業系統
1130:主機處理器
將參照附圖中圖示之本技術的實例來僅以舉例之方式進一步描述本技術,在圖式中:
第1圖示意地圖示資料處理裝置的實例;
第2圖圖示標籤保護型記憶體存取操作的實例,操作包括檢查位址標籤是否匹配保護標籤;
第3圖根據一個示例性佈置示意地圖示記憶體位址空間,並且在記憶體位址空間內提供保護標籤與頁面標籤兩者;
第4圖根據一個示例性佈置圖示可設置在頁面標籤內的多個欄位;
第5圖為一流程圖,圖示如何取決於在關聯記憶體區域的頁面標籤內是否設定相同標籤模式,來處理標籤保護型記憶體存取操作;
第6圖為一流程圖,圖示如何取決於在關聯記憶體區域的頁面標籤內是否設定匹配全部模式,來處理標籤保護型記憶體存取操作;
第7圖為一流程圖,圖示如何取決於在關聯記憶體區域的頁面標籤內是否設定精確標籤檢查模式,來處理標籤保護型記憶體存取操作;
第8圖根據一個示例性佈置圖示第1圖的TLB可如何擴展以便包括頁面標籤值;
第9圖為根據一個示例性佈置的圖示可設置在第1圖的TLB內的部件的方塊圖;
第10圖為在一個示例性佈置中圖示第9圖的頁面標籤更新/刷新電路系統的操作的流程圖;
第11圖為根據一個示例性佈置圖示第9圖的標籤存取控制電路系統的操作的流程圖;
第12圖為根據一個示例性佈置的圖示取決於設置在裝置的系統控制暫存器內的設定可如何處理TLB刷新操作的流程圖;
第13A圖為根據一個示例性配置的圖示當設法更新選定區組的保護標籤時可採取的步驟的流程圖;
第13B圖為圖示當設法更新所選定區組的保護標籤時可執行的步驟的特定序列的流程圖,此特定機制導致從相同標籤模式轉換至預設模式;
第14圖為根據一個示例性佈置的圖示可執行以處理設法從記憶體讀取選定區組的保護標籤的請求的步驟的流程圖;
第15圖為根據一個示例性佈置的圖示可如何處理操作的流程圖,此操作用以將頁面保護標籤儲存至記憶體;及
第16圖圖示支援本文描述的技術的模擬器的實例。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
2:資料處理裝置
4:處理電路系統
6:指令解碼器
8:指令快取記憶體
14:暫存器
15:加載/儲存單元
16:記憶體系統
17:記憶體系統
18:記憶體系統
19:額外標籤快取記憶體
20:記憶體管理單元(MMU)
22:轉換旁看緩衝器(TLB
24:系統控制暫存器
60:故障訊號
Claims (27)
- 一種控制記憶體存取的裝置,該裝置包括:記憶體存取電路系統,用以回應於一目標位址執行一標籤保護型記憶體存取操作,預設的該標籤保護型記憶體存取操作包括以下步驟:比較一位址標籤與一保護標籤,該位址標籤與該目標位址相關聯,該保護標籤儲存在與一或多個記憶體位置的一區塊相關聯的一記憶體系統中,該一或多個記憶體位置的該區塊包括由該目標位址辨識出的一尋址位置;以及生成是否在該保護標籤與該位址標籤之間偵測到一匹配的一指示;以及控制標籤儲存器,用以對複數個記憶體區域中的每個區域,儲存配置控制資訊,該配置控制資訊用以控制當該目標位址在彼記憶體區域內時該記憶體存取電路系統如何執行該標籤保護型記憶體存取操作,每個記憶體區域對應於該等區塊中的多個區塊,其中:該配置控制資訊包括一精確標籤檢查模式欄位;當由該目標位址辨識出的該尋址位置在設置精確的標籤檢查模式欄位的一記憶體區域內時,佈置該記憶體存取電路系統以執行該標籤保護型記憶體存取操作, 使得當在該保護標籤與該位址標籤之間偵測到一不匹配時,佈置該記憶體存取電路系統以防止執行對該尋址位置的一記憶體存取;及當由該目標位址辨識出的該尋址位置在清除精確標籤模式欄位的一記憶體區域內時,佈置該記憶體存取電路系統以執行該標籤保護型記憶體存取操作,使得當在該保護標籤與該位址標籤之間偵測到一不匹配時,佈置該記憶體存取電路系統以允許與針對該不匹配產生的任何不匹配指示異步地執行對該尋址位置的該記憶體存取。
- 如請求項1所述的裝置,其中每個記憶體區域包括一或多個記憶體頁面。
- 如請求項2所述的裝置,其中每個記憶體區域包括一單個記憶體頁面。
- 如請求項1所述的裝置,其中:該配置控制資訊包括一相同標籤模式欄位及一記憶體區域保護標籤;以及當由該目標位址辨識出的該尋址位置在設置相同標籤模式欄位的一記憶體區域內時,佈置該記憶體存取電路系統以更改該標籤保護型記憶體存取操作,使得該位址標籤與彼記憶體區域的該記憶體區域保護標籤進行比較,而不是與包含該尋址位置的該區塊相關聯 的該保護標籤進行比較。
- 如請求項1所述的裝置,其中:該配置控制資訊包括一匹配所有模式欄位;以及當由該目標位址辨識出的該尋址位置在設定匹配所有模式欄位的一記憶體區域內時,佈置該記憶體存取電路系統以更改該標籤保護型記憶體存取操作,使得當該位址標籤具有一預定值時,繞過該位址標籤與該保護標籤的比較,及該生成步驟包括生成在該保護標籤與該位址標籤之間偵測到一匹配的一指示。
- 如請求項1所述的裝置,其中該控制標籤儲存器包括一快取結構。
- 如請求項6所述的裝置,其中每個記憶體區域包括一或多個記憶體頁面,並且該控制標籤儲存器由具有複數個條目的一轉換旁看緩衝器(TLB)提供,每個條目維持一記憶體頁面的位址轉換資訊並包括用於辨識彼記憶體頁面的該配置控制資訊的一欄位。
- 如請求項1所述的裝置,其中每個記憶體區域的該配置控制資訊維持在該記憶體系統的一記憶體區域內,及裝置進一步包括:一指令解碼器,用以解碼配置控制資訊存取指令以控制該記憶體存取電路系統從該記憶體區域加載一決定記憶體區域的該配置控制資訊,及將一決定記憶體 區域的更新後的配置控制資訊儲存至該記憶體區域。
- 如請求項8所述的裝置,其中該記憶體區域為使用該配置控制資訊存取指令可存取的該記憶體系統的一專用區域。
- 如請求項1所述的裝置,進一步包括控制標籤儲存器更新電路系統,回應於一觸發器以相對於儲存在該控制標籤儲存器中的該配置控制資訊來執行一刷新操作。
- 如請求項10所述的裝置,其中該觸發器發生在由該裝置執行一刷新指令時,該刷新指令提供一位址指示,該位址指示用以辨識其配置控制資訊將進行該刷新操作的一或多個記憶體區域。
- 如請求項11所述的裝置,其中:該控制標籤儲存器包括一快取結構,每個記憶體區域包括一或多個記憶體頁面,及該控制標籤儲存器由具有複數個條目的一轉換旁看緩衝器(TLB)提供,每個條目維持一記憶體頁面的位址轉換資訊並包括用於辨識彼記憶體頁面的該配置控制資訊的一欄位;以及該刷新指令為一TLB刷新配置控制資訊指令,其在執行時導致在該TLB內執行一維護操作,以便辨識該TLB內的哪些條目為一記憶體頁面提供配置控制資訊,該記憶體頁面由該TLB刷新配置控制資訊指令的該 位址指示辨識出,以及用以針對每個辨識出的條目中的該配置控制資訊執行一刷新動作。
- 如請求項12所述的裝置,其中該刷新動作包括以下各者中的一者:使儲存在該條目中的該配置控制資訊無效;藉由從該記憶體系統擷取到彼配置控制資訊的一最新版本,來更新儲存在該條目中的該配置控制資訊。
- 如請求項10所述的裝置,其中該觸發器發生在執行一儲存指令時,該儲存指令用以將一決定的記憶體區域的更新的配置控制資訊儲存至該記憶體系統。
- 如請求項10所述的裝置,進一步包括一系統控制暫存器,該系統控制暫存器用以控制該等裝置的哪些工作模式能夠執行該刷新操作。
- 如請求項15所述的裝置,其中該系統控制暫存器辨識當該等裝置在一應用位準工作時允許執行該刷新操作的一程度。
- 如請求項16所述的裝置,其中設定該系統控制暫存器,以設法在該應用位準防止使用該刷新操作嘗試的拒絕服務攻擊。
- 如請求項4所述的裝置,其中該記憶體存取電路系統回應於對存取與一選定區塊相關聯的一保 護標籤的一請求,以當在與彼選定區塊相關聯的該記憶體區域設定該相同標籤模式欄位時採取一替代動作。
- 如請求項4所述的裝置,其中對一選定記憶體區域佈置該裝置以根據一觸發器狀態在一預設模式與一相同標籤模式之間切換,在該預設模式中清除彼選定記憶體區域的該相同標籤模式欄位,在該相同標籤模式中設定彼選定記憶體區域的該相同標籤模式欄位。
- 如請求項19所述的裝置,其中該觸發器狀態為一更新,該更新在設定該相同標籤模式欄位時針對與該選定記憶體區域內的一區塊相關聯的一保護標籤來執行的,並且導致從該相同標籤模式轉換至該預設模式。
- 如請求項20所述的裝置,其中該轉換由以下各者的一者處理:執行許多指令以實施一轉換操作,該轉換操作導致在該選定記憶體區域的該配置控制資訊中清除至少相同標籤模式欄位;對該裝置的一較高工作模式處理一異常,以模擬該轉換操作。
- 如請求項2所述的裝置,其中該等記憶體 頁面為以下各者的一者:實體記憶體頁面;虛擬記憶體頁面。
- 如請求項22所述的裝置,其中該等記憶體頁面為虛擬記憶體頁面,及該配置控制資訊由位址轉換資訊決定,該位址轉換資訊保存在該記憶體系統中的頁表中。
- 如請求項23所述的裝置,其中一系統暫存器用以辨識該位址轉換資訊的哪些位元提供該配置控制資訊。
- 如請求項1所述的裝置,進一步包括決定電路系統,該決定電路系統用以基於位址轉換因數的知識來決定是否允許對該配置控制資訊的一更新由該等裝置以其當前工作模式來執行,或者是否需要一較高工作模式的一異常來處理對該更新的一請求。
- 一種控制記憶體存取的方法,包括以下步驟:回應於一目標位址執行一標籤保護型記憶體存取操作,預設的該標籤保護型記憶體存取操作包括以下步驟:比較一位址標籤與一保護標籤,該位址標籤與該目標位址相關聯,該保護標籤儲存在與一或多個記憶 體位置的一區塊相關聯的一記憶體系統中,該一或多個記憶體位置的該區塊包括由該目標位址辨識出的一尋址位置;以及生成是否在該保護標籤與該位址標籤之間偵測到一匹配的一指示;對複數個記憶體區域的每個區域,儲存配置控制資訊;以及使用該配置控制資訊來控制當該目標位址在彼記憶體區域內時該記憶體存取電路系統如何執行該標籤保護型記憶體存取操作,每個記憶體區域對應於該等區塊中的至少一個區塊,其中:該配置控制資訊包括一精確標籤檢查模式欄位;及當由該目標位址辨識出的該尋址位置在設置精確的標籤檢查模式欄位的一記憶體區域內時,執行該標籤保護型記憶體存取操作,使得當在該保護標籤與該位址標籤之間偵測到一不匹配時,防止對該尋址位置的一記憶體存取;及當由該目標位址辨識出的該尋址位置在清除精確標籤模式欄位的一記憶體區域內時,執行該標籤保護型記憶體存取操作,使得當在該保護標籤與該位址標籤之間偵測到一不匹配時,允許與針對該不匹配產生的 任何不匹配指示異步地執行對該尋址位置的該記憶體存取。
- 一種用於控制一主機資料處理裝置以為目標程式代碼的指令執行提供一指令執行環境的電腦程式,包括:記憶體存取程式邏輯,用以回應於一目標位址執行一標籤保護型記憶體存取操作,預設的該標籤保護型記憶體存取操作包括以下步驟:比較一位址標籤與一保護標籤,該位址標籤與該目標位址相關聯,該保護標籤儲存在與一或多個記憶體位置的一區塊相關聯的一記憶體系統中,該一或多個記憶體位置的該區塊包括由該目標位址辨識出的一尋址位置;以及生成是否在該保護標籤與該位址標籤之間偵測到一匹配的一指示;以及一控制標籤資料結構,用以對複數個記憶體區域中的每個區域,儲存配置控制資訊,該配置控制資訊用以控制當該目標位址在彼記憶體區域內時該記憶體存取程式邏輯如何執行該標籤保護型記憶體存取操作,每個記憶體區域對應於該等區塊的至少一個區塊,其中:該配置控制資訊包括一精確標籤檢查模式欄位;及 當由該目標位址辨識出的該尋址位置在設置精確的標籤檢查模式欄位的一記憶體區域內時,佈置該記憶體存取程式邏輯以執行該標籤保護型記憶體存取操作,使得當在該保護標籤與該位址標籤之間偵測到一不匹配時,佈置該記憶體存取程式邏輯以防止執行對該尋址位置的一記憶體存取;及當由該目標位址辨識出的該尋址位置在清除精確標籤模式欄位的一記憶體區域內時,佈置該記憶體存取程式邏輯以執行該標籤保護型記憶體存取操作,使得當在該保護標籤與該位址標籤之間偵測到一不匹配時,佈置該記憶體存取程式邏輯以允許與針對該不匹配產生的任何不匹配指示異步地執行對該尋址位置的該記憶體存取。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1818572.8A GB2578924B (en) | 2018-11-14 | 2018-11-14 | An apparatus and method for controlling memory accesses |
GB1818572.8 | 2018-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202018517A TW202018517A (zh) | 2020-05-16 |
TWI812798B true TWI812798B (zh) | 2023-08-21 |
Family
ID=64739349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108138351A TWI812798B (zh) | 2018-11-14 | 2019-10-24 | 用於控制記憶體存取的裝置及方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11573907B2 (zh) |
EP (1) | EP3881189B1 (zh) |
JP (1) | JP7444853B2 (zh) |
KR (1) | KR20210088522A (zh) |
CN (1) | CN112639750B (zh) |
GB (1) | GB2578924B (zh) |
IL (1) | IL280712B2 (zh) |
TW (1) | TWI812798B (zh) |
WO (1) | WO2020099825A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3916568B1 (en) * | 2020-05-29 | 2024-07-17 | ARM Limited | Tag checking apparatus and method |
US11586554B2 (en) | 2020-07-23 | 2023-02-21 | Arm Limited | Cache arrangements for data processing systems |
US11087858B1 (en) * | 2020-07-24 | 2021-08-10 | Macronix International Co., Ltd. | In-place refresh operation in flash memory |
US11621052B1 (en) * | 2021-12-13 | 2023-04-04 | Nanya Technology Corporation | Method for testing memory device and test system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070283115A1 (en) * | 2006-06-05 | 2007-12-06 | Sun Microsystems, Inc. | Memory protection in a computer system employing memory virtualization |
US20140151454A1 (en) * | 2012-11-30 | 2014-06-05 | Thomas D. Pawlik | Decoder for barcodes with anti-copy feature |
US20170153982A1 (en) * | 2015-11-30 | 2017-06-01 | International Business Machines Corporation | Invalidation of translation look-aside buffer entries by a guest operating system |
US20170177429A1 (en) * | 2015-12-21 | 2017-06-22 | Tomer Stark | Hardware apparatuses and methods for memory corruption detection |
TWI639918B (zh) * | 2017-05-11 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5958700A (ja) * | 1982-09-29 | 1984-04-04 | Fujitsu Ltd | 記憶保護判定方式 |
JPS6337445A (ja) * | 1986-08-01 | 1988-02-18 | Hitachi Ltd | 記憶方式 |
JPH02254553A (ja) * | 1989-03-29 | 1990-10-15 | Mitsubishi Electric Corp | 情報処理装置 |
JPH06309237A (ja) * | 1993-04-23 | 1994-11-04 | Hitachi Ltd | 主記憶キー格納方式 |
JP2002373489A (ja) * | 2001-06-15 | 2002-12-26 | Mitsubishi Electric Corp | 半導体記憶装置 |
US20080256333A1 (en) | 2007-04-10 | 2008-10-16 | Keltos Kenneth J | System and method for ignoring fetch protection |
CN102662868B (zh) * | 2012-05-02 | 2015-08-19 | 中国科学院计算技术研究所 | 用于处理器的动态组相联高速缓存装置及其访问方法 |
US9244829B2 (en) * | 2012-12-20 | 2016-01-26 | Oracle International Corporation | Method and system for efficient memory region deallocation |
WO2015011835A1 (ja) * | 2013-07-26 | 2015-01-29 | 株式会社日立製作所 | コンピュータシステム |
US9672298B2 (en) * | 2014-05-01 | 2017-06-06 | Oracle International Corporation | Precise excecution of versioned store instructions |
WO2016003646A1 (en) * | 2014-06-30 | 2016-01-07 | Unisys Corporation | Enterprise management for secure network communications over ipsec |
US20190205261A1 (en) * | 2017-12-29 | 2019-07-04 | Intel Corporation | Systems, methods, and apparatuses for patching pages |
GB2570692B (en) * | 2018-02-02 | 2020-09-09 | Advanced Risc Mach Ltd | Controlling guard tag checking in memory accesses |
GB2570691B (en) * | 2018-02-02 | 2020-09-09 | Advanced Risc Mach Ltd | Controlling guard tag checking in memory accesses |
US10878111B2 (en) * | 2018-08-03 | 2020-12-29 | Western Digital Technologies, Inc. | Peer storage devices supporting protection information |
-
2018
- 2018-11-14 GB GB1818572.8A patent/GB2578924B/en active Active
-
2019
- 2019-10-21 EP EP19791354.4A patent/EP3881189B1/en active Active
- 2019-10-21 IL IL280712A patent/IL280712B2/en unknown
- 2019-10-21 US US17/269,388 patent/US11573907B2/en active Active
- 2019-10-21 WO PCT/GB2019/052998 patent/WO2020099825A1/en unknown
- 2019-10-21 KR KR1020217005388A patent/KR20210088522A/ko unknown
- 2019-10-21 CN CN201980055095.8A patent/CN112639750B/zh active Active
- 2019-10-21 JP JP2021509892A patent/JP7444853B2/ja active Active
- 2019-10-24 TW TW108138351A patent/TWI812798B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070283115A1 (en) * | 2006-06-05 | 2007-12-06 | Sun Microsystems, Inc. | Memory protection in a computer system employing memory virtualization |
US20140151454A1 (en) * | 2012-11-30 | 2014-06-05 | Thomas D. Pawlik | Decoder for barcodes with anti-copy feature |
US20170153982A1 (en) * | 2015-11-30 | 2017-06-01 | International Business Machines Corporation | Invalidation of translation look-aside buffer entries by a guest operating system |
US20170177429A1 (en) * | 2015-12-21 | 2017-06-22 | Tomer Stark | Hardware apparatuses and methods for memory corruption detection |
TWI639918B (zh) * | 2017-05-11 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020099825A1 (en) | 2020-05-22 |
IL280712B1 (en) | 2023-11-01 |
IL280712B2 (en) | 2024-03-01 |
JP7444853B2 (ja) | 2024-03-06 |
EP3881189A1 (en) | 2021-09-22 |
CN112639750B (zh) | 2024-09-06 |
GB2578924B (en) | 2021-09-29 |
US20210326268A1 (en) | 2021-10-21 |
JP2022505011A (ja) | 2022-01-14 |
EP3881189B1 (en) | 2023-04-19 |
TW202018517A (zh) | 2020-05-16 |
US11573907B2 (en) | 2023-02-07 |
GB201818572D0 (en) | 2018-12-26 |
GB2578924A (en) | 2020-06-03 |
CN112639750A (zh) | 2021-04-09 |
KR20210088522A (ko) | 2021-07-14 |
IL280712A (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI812798B (zh) | 用於控制記憶體存取的裝置及方法 | |
US11138128B2 (en) | Controlling guard tag checking in memory accesses | |
US11327903B2 (en) | Multiple guard tag setting instruction | |
JP2023526811A (ja) | タグチェック装置及び方法 | |
JP7349437B2 (ja) | メモリ・アクセスにおける保護タグ・チェックの制御 | |
JP2024517627A (ja) | ケイパビリティを使用してメモリへのアクセスを制約するための技法 | |
US20240193101A1 (en) | Technique for constraining access to memory using capabilities | |
GB2616643A (en) | Read-as-X property for page of memory address space | |
TW202340955A (zh) | 使用能力約束記憶體存取之技術 |