TW202403562A - 用於記憶體位址空間之頁面的「讀值只有x」性質 - Google Patents
用於記憶體位址空間之頁面的「讀值只有x」性質 Download PDFInfo
- Publication number
- TW202403562A TW202403562A TW112105760A TW112105760A TW202403562A TW 202403562 A TW202403562 A TW 202403562A TW 112105760 A TW112105760 A TW 112105760A TW 112105760 A TW112105760 A TW 112105760A TW 202403562 A TW202403562 A TW 202403562A
- Authority
- TW
- Taiwan
- Prior art keywords
- read
- value
- memory
- property
- address
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 100
- 230000004044 response Effects 0.000 claims abstract description 29
- 238000013507 mapping Methods 0.000 claims description 33
- 238000013519 translation Methods 0.000 claims description 30
- 230000006399 behavior Effects 0.000 claims description 19
- 239000000872 buffer Substances 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 101100150905 Caenorhabditis elegans ham-3 gene Proteins 0.000 description 11
- 238000013459 approach Methods 0.000 description 11
- 230000005055 memory storage Effects 0.000 description 9
- 238000007689 inspection Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101100206395 Caenorhabditis elegans tag-250 gene Proteins 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 239000002699 waste material 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/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/1009—Address translation using page tables, e.g. page table structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
處理電路系統4回應於指令而執行資料處理。記憶體管理電路28基於能夠使記憶體位址空間之一給定頁面與一「讀值只有X」性質相關聯的分頁表資訊來控制對記憶體的存取,該「讀值只有X」性質指示讀取記憶體位址空間之該給定頁面中的一位址應被視為傳回一指定值X。對於讀取記憶體位址空間之一讀取目標區塊之一讀取目標值的一讀取請求,回應於判定該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,記憶體管理電路系統28控制該指定值X被傳回至處理電路系統4作為該讀取目標值之至少部分。此使得記憶體位址空間之大區域可被視為儲存一指定值,而不需要撥出該等區域的實體記憶體。
Description
本申請案係關於資料處理領域。
可在處理系統中提供記憶體管理電路系統,用以基於用於記憶體位址空間之各別頁面的分頁表資訊來控制對記憶體位址空間的存取。例如,分頁表資訊可指定存取權限、位址轉譯映射、及與給定頁面關聯的其他屬性。
無
至少一些實例提供一種設備,其包含:
處理電路系統,用以回應於指令而執行資料處理;及
記憶體管理電路系統,用以基於能夠使記憶體位址空間之一給定頁面與一「讀值只有X」 (read-as-X)性質相關聯的分頁表資訊來控制對記憶體的存取,該「讀值只有X」性質指示讀取記憶體位址空間之該給定頁面中的一位址應被視為傳回一指定值X;其中:
對於由該處理電路系統發布的一讀取請求以讀取記憶體位址空間之一讀取目標區塊的一讀取目標值,回應於判定該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統經組態以控制該指定值X被傳回至該處理電路系統作為該讀取目標值之至少部分。
至少一些實例提供一種方法,其包含:
回應於指令而執行資料處理;及
基於能夠使記憶體位址空間之一給定頁面與一「讀值只有X」性質相關聯的分頁表資訊來控制對記憶體的存取,該「讀值只有X」性質指示讀取記憶體位址空間之該給定頁面中的一位址應被視為傳回一指定值X;其中:
對於由該處理電路系統發布的一讀取請求以讀取該記憶體位址空間之一讀取目標區塊的一讀取目標值,回應於判定該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該指定值X被傳回至該處理電路系統作為該讀取目標值之至少部分。
至少一些實例提供一種電腦程式,用以控制一主機資料處理設備以提供用於目標碼之執行的一指令執行環境;該電腦程式包含:
指令解碼程式邏輯,用以解碼該目標碼的指令以回應於該目標碼的該等指令而控制該主機資料處理設備執行資料處理;及
記憶體管理程式邏輯,用以基於能夠使一模擬記憶體位址空間之一給定頁面與一「讀值只有X」性質相關聯的分頁表資訊來控制對該模擬記憶體位址空間的存取,該「讀值只有X」性質指示讀取該模擬記憶體位址空間之該給定頁面中的一位址應被視為傳回一指定值X;其中:
對於用以讀取該模擬記憶體位址空間之一讀取目標區塊之一讀取目標值的一讀取請求,回應於判定該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理程式邏輯經組態以控制該指定值X被傳回作為該讀取目標值之至少部分。
該電腦程式可儲存在一電腦可讀儲存媒體上。該儲存媒體可係暫時性或非暫時性。
一種設備具有:處理電路系統,用以回應於指令而執行資料處理;及記憶體管理電路系統,用以基於具有能夠使記憶體位址空間之一給定頁面與一「讀值只有X」性質相關聯的一編碼之分頁表資訊來控制對記憶體的存取,該「讀值只有X」性質指示讀取記憶體位址空間之該給定頁面中的一位址應被視為傳回一指定值X。對於由該處理電路系統發布的一讀取請求以讀取記憶體位址空間之一讀取目標區塊的一讀取目標值,回應於判定該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統控制該指定值X被傳回至該處理電路系統作為該讀取目標值之至少部分。此使得記憶體位址空間之相對較大區域可被視為儲存一指定值X,而不需要撥出記憶體位址空間之該等區域的實體記憶體。
一種用於降低用於已知具有該指定值X的記憶體位址空間之區域的實體記憶體之量的替代方法可係:分配用於儲存該指定值X的實體記憶體的一單一頁面;及使用該分頁表資訊以將記憶體位址空間之該等對應區域之各者的虛擬位址映射至相同實體頁面。使用此方法,無需將在架構層級處支援特殊存取權限或屬性類型以支援使用較少量實體記憶體來表示設定為該指定值X的虛擬記憶體之較大區域的能力,因為軟體可使用該分頁表資訊之位址轉譯映射欄位以提供此行為。然而,此方法具有數個缺點。首先,仍必須分配實體記憶體之至少一個頁面大小之區塊以實體儲存具有該指定值X的資料,即使該實體記憶體可映射至數個不同虛擬頁面。在具有較大頁面大小(例如,頁面大小大於4kB)或在一階層結構之一較高層級支援一分頁表的能力以定義一區塊描述符(其對於比對應於在該階層之最後層級處映射之一個頁面的區域之一大小更大的記憶體區域定義相同組之屬性)的實施方案中,此方法仍可需要撥出相對大量的實體記憶體,以用於表示該指定值X(例如,一區塊描述符可涵蓋數MB或GB記憶體)。保留用於儲存指定值X之實體儲存器(其可常係預設值(諸如零),其不受軟體關注)減少在硬體中實施之可用於儲存非已知具有該指定值X之更多有用資料的可用實體記憶體之分率。若較少實體儲存器可用於有意義的資料,則其他資料可能必須經向外分頁至外部儲存器,其影響需要該資料之存取的效能。再者,為了讀取具有該指定值X之資料,因為需要從快取記憶體或從基礎實體記憶體儲存器存取該資料,該等讀取仍可能經受對相對長潛時。
相比之下,在下文討論之方法中,可藉由分頁表資訊使記憶體位址空間之一頁面與「讀值只有X」性質相關聯,其表示讀取該頁面中之位址應被視為傳回指定值X。此意指,當由該處理電路系統發布以讀取記憶體位址空間之一讀取目標區塊之一讀取目標值的一讀取請求,且該記憶體管理電路系統判定(基於該讀取請求之一目標位址)該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面時,接著該記憶體管理電路系統可控制該指定值X被傳回至該處理電路系統作為該讀取目標值之至少部分。由於該記憶體管理電路系統可單純從該分頁表資訊識別該指定值,所以此避免需要對於經指派給該指定值X的該記憶體位址空間之該等區域撥出任何實體記憶體。因此,此實現更好地利用在系統中實施之剩餘實體記憶體儲存器,該剩餘實體記憶體儲存器之較大分率可用於其他不具有該指定值X之其他資料,而改善其他資料之效能,否則其他資料將必須傳出至外部儲存器。再者,此方法可改善讀取該指定值X本身的效能,因為該記憶體管理電路系統一般比存取快取記憶體或記憶體之存取以用於讀取儲存於實體記憶體中的資料更早地查找分頁表資訊,且因此可在處理之較早階段傳回值X。
對於由該記憶體管理電路支援的該「讀值只有X」性質之至少一個變體,回應於判定所有讀取目標區塊對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統經組態以抑制發布用於從一快取記憶體或該記憶體讀取該讀取目標值的一快取存取請求或記憶體存取請求。因此,使用「讀值只有X」性質可完全避免對從一快取記憶體或記憶體讀取該值X的需求(而是,值X可在該記憶體管理電路內基於該分頁表資訊中所表示的所偵測「讀值只有X」性質而產生)。藉由消除快取存取的潛時,此可加快讀取請求的處理,並且亦釋放快取容量以用於其他資料。
使用此變體,由一讀取請求指定之讀取目標區塊可跨越介於具有「讀值只有X」性質之一頁面與不具有「讀值只有X」性質之另一頁面之間的一頁面邊界係可行的。在此情況下,傳回至該處理電路系統的該讀取目標值之僅一部分可指定該指定值X,且另一部分可讀取自快取記憶體或記憶體,如同正常讀取存取請求。實際上,存取跨越頁面邊界將通常需要兩個分開的快取查找,因為其等亦可跨越快取線邊界,且因此存取可有效地被視為兩個分開的存取,一個存取用於第一頁面內之部分及另一存取用於第二頁面內之部分。因此,該等存取中對應於記憶體位址空間之「非讀值只有X (non-read-as-X)」頁面的一者可觸發一快取查找以照常存取記憶體,而該等存取中對應於「讀值只有X」頁面的另一者可抑制快取查找並傳回該指定值X作為用於該讀取目標區塊之該部分傳回的值。實際上,讀取存取僅部分對應於「讀值只有X」頁面之情境可相對罕見,鑑於使用記憶體存取之位址對準以減少存取跨越頁面邊界之可能性係常見的,且再者該頁面大小與該讀取目標區塊之大小相比亦可相對大,使得給定存取跨越頁面邊界的可能性低。
「讀值只有X」性質可實用於廣泛範圍的情境,其中記憶體位址空間之相對大區塊需要設定為儲存特定值。例如,當第一次初始化虛擬位址空間之區域,清除該等區域之先前內容可係所欲的,以確保在執行對該等區域之任何寫入之前,任何中介讀取將傳回已知值(例如,零),無論先前儲存於該等虛擬位址的資料為何。因此,虛擬位址空間的新初始化之區域可被指派「讀值只有X」性質,直到遇到該等區域之第一次寫入操作。例如,一種寫入時複製(copy on write)方法可由軟體使用,其中在初始分配時,新初始化之頁面的屬性可被設定以指示「讀值只有X」,使得第一次寫入至該頁面將觸發一錯誤,其可使一例外處置器分配實體記憶體之新區塊、使用該分頁表資訊中的一位址轉譯映射將該實體記憶體映射到該虛擬頁面,且接著清除該「讀值只有X」性質,以隨後將該虛擬頁面視為正常記憶體。藉由提供支援「讀值只有X」性質之架構,可支援軟體所欲之此寫入時複製方法,其中與藉由使用位址轉譯映射以映射至經撥出用於儲存該指定值X的實體記憶體之單一頁面的控制寫入時複製之替代例相比較(如上文描述),實體儲存器之利用率較高且改善效能。
當然,此寫入時複製方法僅是一個實例,且可能存在當軟體可發現到在無需撥出實體記憶體儲存器的情況下能夠表示虛擬位址空間之區域被視為具有指定值X係有用的其他情況。
其中「讀值只有X」性質可係有用的另一實例係在支援標籤檢查電路系統執行標籤檢查操作以判定與一記憶體存取請求之一目標位址相關聯的一位址標籤是否對應於與對應於該目標位址之一記憶體系統位置相關聯的一分配標籤的系統中。該標籤檢查電路系統回應於該標籤檢查操作偵測到該位址標籤與該分配標籤之間的一不匹配而觸發一標籤錯誤處置回應。如下文更詳細論述,此類標籤檢查操作可有用於提供用於偵測可導致安全性漏洞之某些記憶體使用錯誤的架構支援,該等安全性漏洞可被希望引起軟體存取軟體不應能夠存取之記憶體區域的攻擊者所利用。當最初分配記憶體位址空間之一區域時,其可被指派一對應分配標籤,且意欲用以參照至記憶體位址空間之該區域的指標可被指派該對應位址標籤。當一指標隨後用以產生用於存取記憶體之一位址時,該標籤檢查電路系統可(至少當在標籤檢查模式中時)比較該記憶體存取請求之該目標位址的該位址標籤與該記憶體系統位置相關聯之該分配標籤,且接著回應於任何偵測到不匹配而觸發標籤錯誤處置回應。該標籤錯誤處置回應可係一系列動作,諸如觸發一錯誤,而在錯誤記錄檔或其他儲存位置等中記錄該錯誤。
在支援標籤檢查操作的系統中,記憶體區塊的分配標籤本身可由對記憶體位址空間之特定區塊的讀取存取來存取,且因此分配標籤本身可消耗實體儲存器。某些標籤值可能非常常見,使得軟體將大小大於一頁面的記憶體位址空間的相對較大區域設定為具有相同的標籤值可係常見的。例如,軟體可選擇針對存在更大安全需求的記憶體位址空間之區域設定指定值之分配標籤,且接著使記憶體之任何其他區域的分配標籤保留為具有某一預設標籤值(例如,零)。藉由對於有更大安全需求的區域之分配標籤優先化使用非預設標籤值,此降低非意欲存取此等區域之一者的記憶體存取碰巧偶然具有與所定址記憶體系統位置之分配標籤匹配的位址標籤的機會。此意指軟體可能希望將記憶體之相對大區域的分配標籤組態為全部具有相同標籤值(例如,零)可能係相對常見的。因此,在不存在支援「讀值只有X」性質的情況中,相對大量的實體記憶體儲存器可僅用於儲存用於沒有特定安全需求之記憶體區域的預設分配標籤值。藉由使「讀值只有X」性質與意欲保持具有指定值X之分配標籤值的記憶體位址空間之頁面相關聯,此可大幅改善在支援記憶體標籤之系統中利用可用實體記憶體儲存器的效率。
因此,對於用以獲得在該標籤檢查操作中待檢查之一給定分配標籤的一標籤讀取請求,回應於該記憶體管理電路系統判定對應於該給定分配標籤的一頁面與該「讀值只有X」性質相關聯:該記憶體管理電路系統經組態以控制該指定值X被傳回作為該給定分配標籤;且該標籤檢查電路系統經組態以使用用於該給定分配標籤的該指定值X來執行該標籤檢查操作。因此,該標籤檢查操作可使用由該記憶體管理電路系統所提供之該指定值X執行,而不需要存取快取記憶體或實體記憶體儲存器以獲得指定值X,其可改善效能及可用實體記憶體之利用。
在支援記憶體標籤的系統中,「讀值只有X」性質能夠對於下列兩者指定:用於儲存資料的該記憶體位址空間之一頁面;及用於儲存分配標籤的該記憶體位址空間之一頁面。因此,「讀值只有X」機制不需要係資料特定或標籤特定之性質,而是可係可用於與記憶體位址空間之頁面相關聯的任何資訊的通用架構機制。
在一些實例中,對於該「讀值只有X」性質之至少一個變體,回應於判定該讀取目標區塊對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統控制該指定值X被傳回至該處理電路系統作為該讀取目標值之部分,且允許發布用於從一快取記憶體或該記憶體讀取該讀取目標值之另一部分的一快取存取請求或記憶體存取請求。在此情況下,僅針對該讀取目標值之部分傳回該指定值X,而從快取記憶體或記憶體傳回另一部分,如同正常讀取存取請求。此可有用於允許資料實際上儲存於實體記憶體中以擴展至較寬形式,其具有基於不需要儲存在實體記憶體中的「讀值只有X」性質所隱含的額外位元。例如,對於支援記憶體標籤的系統,對於該讀取值之部分所傳回的指定值X可指示與儲存在實體記憶體中之對應資料相關聯而隱含定義的分配標籤,使得待被指派預設分配標籤值的記憶體區域之分配標籤可基於「讀值只有X」性質來判定,而不需要實體記憶體經撥出用於儲存該等標籤。
對於具有該「讀值只有X」性質的頁面,可將任何資料值或位元型樣指派為該指定值X。
例如,對於該「讀值只有X」性質之至少一個變體,該指定值X係零。將具有該「讀值只有X」性質的頁面視為含有零可特別有用,因為與將係其他非零值之情況相比,可存在其中記憶體之大區域待被視為儲存零的較大數目個軟體使用情況。例如,與其他非零值相比,上文所描述之寫入時複製及記憶體標籤使用情況兩者皆更可能將零指派給「讀值只有X」頁面。
然而,實施其中該指定值X具有非零值的該「讀值只有X」性質之至少一個變體亦係可行的。例如,對於該「讀值只有X」性質之至少一個變體,該指定值X係具有所有位元設定為1的一值。例如,在記憶體標籤實例中,具有所有位元設定為1的一分配標籤值可被保留用於持殊目的(例如,其可表示「完全匹配」標籤值,其指示標籤被視為匹配任何位址標籤值)。因此,X=111111…亦可係用於指派給記憶體位址空間之大區域的良好候選,以證明表示對頁面之讀取要被視為傳回所有等於1之位元的分頁表資訊之編碼的架構支援係合理的。
使該指定值X係具有0及1之位元值之混合的值亦將係可行的。該指定值X可被視為跨越整個頁面的單一值,或X可替代地被視為具有重複數次的較小數目個位元,以填充對應於具有「讀值只有X」性質之頁面的記憶體範圍。
應瞭解,在用於定義該指定值X之架構中支援的不同選項之數目與在該分頁表資訊或其他組態資訊中表示此等不同選項所需的編碼空間之量之間存在權衡。一些實施方案可支援對應於該指定值X(例如,X=0)之單一變體的「讀值只有X」編碼。在其他實例中,該記憶體管理電路系統經組態以支援對應於指定值X之不同值的該「讀值只有X」性質之二或更多個變體,以允許對於待指派給虛擬記憶體之區域的不同值之範圍使用「讀值只有X」行為,而不消耗實體記憶體。
在一個實例中,該記憶體管理電路系統可支援該「讀值只有X」性質之一位址相依性變體,當一給定頁面與該「讀值只有X」性質之該位址相依性變體相關聯時,該指定值X針對其取決於該給定頁面之一位址,使得該記憶體管理電路系統能夠針對與該「讀值只有X」性質之一相同編碼相關聯的記憶體位址空間之不同頁面,選擇不同值作為被傳回作為該讀取目標值的該指定值X。例如,可取決於位址之至少一個位元而選擇該指定值X。例如,一些架構可使用該位址之一或多個最高有效位元(排除非用以選擇記憶體位置的任何上層位址位元)以取決於是否正在請求使用者或核心存取,而指示是否係對使用者位址空間或核心位址空間之存取,且其可用以傳回不同值作為該「讀值只有X」性質之該指定值X。此方法避免需要消耗該分頁表資訊之兩個不同編碼以支援此行為,因為單一類型之「讀值只有X」性質可適用兩種目的,其中用於選擇哪個值以傳回作為該指定值X的額外資訊來自該位址本身,而非該分頁表資訊。
為了寫入至經指定為具有「讀值只有X」性質之頁面,可實施一系列的不同行為。一個選項用於寫入至一「讀值只有X」頁面,以觸發錯誤之傳訊,其可用於支援上文討論的寫入時複製方法,其中在移除該頁面的「讀值只有X」性質之前,錯誤可使一例外處置器執行並分配一些實體記憶體以用於待寫入的該頁面。
替代地,可單純忽略對「讀值只有X」頁面的寫入請求,而不會因引發錯誤而中斷處理電路系統上的處理。在此情況下,為了實施寫入時複製行為,軟體亦可設定用於「讀值只有X」頁面之存取權限,以指示不准許寫入存取,使得可在第一次寫入至該頁面時可產生錯誤,以允許一旦實際上需要儲存該指定值之外的一些資料,就動態分配實體記憶體。
另一選項是寫入至經指定為「讀值只有X」的頁面可被解譯成請求將該寫入值(由該寫入請求被指定為待寫入至位址空間之寫入目標區塊的值)之至少部分被轉發至預定系統位置。例如,該預定系統位置可係隨機存取記憶體儲存器之外的位置。例如,該預定系統位置可係下列之一者:一追蹤緩衝區,其用於儲存診斷追蹤資訊;包含發布該寫入請求之該處理電路系統之一處理器之外的另一處理器;及一周邊設備(輸入/輸出裝置)。與將該虛擬位址轉譯成一實體位址、發布一般寫入請求至指定該實體位址的該記憶體系統、及接著使用在該記憶體系統內的一實體位址映射組件以判定該位址對應於該預定系統位置並將該寫入資料轉發至該位置相比較,對於位址空間之一虛擬定址頁面使用該「讀值只有X」性質可係識別待以該寫入資料轉發至其的該目標位置的較快方式。因此,對於將不需要從該預定系統位置讀取資料的系統位置,但將資料寫入至該預定系統位置的加速手段係所欲的,「讀值只有X」性質可係有用的。實例使用情況可包括:
• 追蹤緩衝區,可發送診斷資訊至該等追蹤緩衝區以用於後續分析,以研究當在處理器上執行特定軟體程式時引發的行為及效能問題。檢測軟體程式碼可包括在指定待寫入至該追蹤緩衝區之追蹤資訊的該程式碼之某一點處的一寫入記憶體存取,且當該記憶體存取之位址經映射至一「讀值只有X」頁面時,此可引起與一般存取機制相比更快地將該追蹤資訊轉發至該追蹤緩衝區。
• 加速存取網路或其他通訊介面的輸入/輸出緩衝區。
• 存取共用組件(其等與標準記憶體系統匯流排介面相比可能需要更多資訊)可提供例如存取DMA(其中可係有利的是傳遞關於目前執行內容的資訊),或在生產者-消費者模式中操作的嵌入式緊密耦合之多CPU系統(其中該分頁表屬性可用以指示用於該例項的特定硬體FIFO(先進先出緩衝區))。
應瞭解,處理系統設計者可找到用於記憶體位址空間之「讀值只有X」記憶體頁面的此類寫入行為之其他用途。
因此,對於由該處理電路系統發布以將一寫入值寫入至記憶體位址空間之一寫入目標區塊的一寫入請求,回應於判定該寫入目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統經組態以根據一「讀值只有X」寫入行為來處理該寫入請求;該「讀值只有X」寫入行為包含下列之一者:觸發一錯誤之傳訊;忽略該寫入請求;及將該寫入值之至少部分轉發至一預定系統位置(例如,該追蹤緩衝區、另一處理器、或周邊設備)。
對於指令集架構的一些實施方案,可實施單一類型之「讀值只有X」寫入行為(例如,寫入至「讀值只有X」記憶體時發生錯誤),並且針對軟體選擇不同之「讀值只有X」寫入行為可能不是可行的。
在其他實例中,記憶體管理電路系統可支援對應於不同之「讀值只有X」寫入行為的「讀值只有X」性質之二或更多個變體。在此情況下,用於特定寫入請求之特定「讀值只有X」寫入行為可取決於軟體可組態之控制資訊,其可在分頁表資訊本身或分開地在控制暫存器或其他可組態之儲存元件中指定。例如,「讀值只有X」寫入行為可在一特定頁面之該分頁表資訊內或在從該分頁表資訊參考的其他資訊中逐頁面地指定,或替代地,可係針對整個設備設定的一全域設定,例如使用指示允許判定「讀值只有X」寫入行為的資訊(例如,指定值的「讀值只有X」寫入模式)之控制暫存器。
位址空間之給定頁面的「讀值只有X」性質可以不同方式編碼。在一個實例中,當對應於該給定頁面的一分頁表項目之一欄位具有指示該「讀值只有X」性質之一編碼時,該記憶體管理電路系統判定該給定頁面具有該「讀值只有X」性質。因此,在此情況中,該分頁表項目編碼可直接指定該給定頁面是否具有該「讀值只有X」性質。
另一方法可係:當對應於該給定頁面之一分頁表項目指定選取指示一間接表格之一所選取項目的值之一間接表格項目且該間接表格之該所選取項目具有識別該「讀值只有X」性質的一編碼時,該記憶體管理電路系統判定該給定頁面具有該「讀值只有X」性質。若在分頁表項目格式內之備用編碼空間不足夠以編碼可供程式設計人員選擇的所有類型之記憶體屬性/權限,則此可係有用的。由於該間接表格不需要每頁面包括一個項目,所以與將在分頁表項目本身中實行者相比,可存在用於表示待對於一給定頁面選擇之性質的一組較寬選項的更多空間(間接表格項目之總數目可能小於對於單一間接表格項目可選擇的性質類型之總數目,使得在分頁表項目中選擇值間接表格項目具有比一個間接表格項目中位元數目更少的位元)。因此,在一些實例中,該「讀值只有X」性質可經編碼在該間接表格的參考項目中,而非直接在該分頁表資訊中。
該間接表格可係儲存在記憶體中的結構,或可係使用藉由例如系統暫存器指令存取的控制暫存器所實施的硬體結構。
在支援該間接表格的一方法中,該記憶體管理電路系統可針對對應於該「讀值只有X」性質之不同變體的該間接表格中之該所選取項目,支援至少兩個不同編碼。例如,該「讀值只有X」性質之不同變體可對應於該指定值X之不同值、不同「讀值只有X」寫入行為,或可藉由待與「讀值只有X」性質組合指示的其他存取權限或屬性來區別。
在一種方法中,該記憶體管理電路系統可基於一另外間接表格中的一另外項目之一編碼而判定該給定頁面的該指定值X,該另外項目由該間接表格的該所選取項目之一編碼指示。此表明,軟體可希望對於該指定值X指定的不同值之數目可遠大於待對於該「讀值只有X」性質定義的不同性質變體或行為之數目(藉由該指定值X之值以外的特徵來區別),且因此定義一間接表格以定義對於「讀值只有X」之屬性/行為變體(該指定值X以外)及一另外間接表格以定義指定值X可比具有表示對於一「讀值只有X」性質的性質/行為/指定值之各所欲組合的編碼之單一表格更有效率。
為了支援對未指定為「讀值只有X」記憶體之頁面的正常記憶體存取,對應於記憶體位址空間之給定頁面的給定分頁表項目可指定位址映射欄位,該位址映射欄位用以當給定頁面不與「讀值只有X」性質相關聯時執行位址轉譯。該位址映射欄位常可係該分頁表項目之最大欄位,而佔用該分頁表項目之整體位元數目之顯著分率。
然而,當頁面與「讀值只有X」性質相關聯時,因為沒有針對該頁面分配實體記憶體,所以不需要位址轉譯,且因此位址映射欄位可係未使用。
在一些實例中,為了避免需要使用另外編碼空間以編碼其他資訊,對於與「讀值只有X」性質相關聯的頁面,該記憶體管理電路系統可將該給定分頁表項目之該位址映射欄位用於位址轉譯以外的目的。因此,與正常記憶體可能的情況相比,對於「讀值只有X」頁面,可能在分頁表項目中存在更大量的可用編碼空間。例如,可使用該位址映射欄位來指示該指定值X。亦可行的是使用該位址映射欄位來指示「讀值只有X」性質之其他變體(諸如待與「讀值只有X」性質組合的不同「讀值只有X」寫入行為或其他屬性)。藉由重新使用該位址映射欄位以編碼此類資訊,較不需要擴展分頁表項目格式或使用其他結構(諸如間接表格)以編碼此資訊。
其他實施方案可偏好不使用位址映射欄位以編碼關於由記憶體管理電路系統所理解的「讀值只有X」性質的資訊,以具有預定架構定義之意義。而是,與「讀值只有X」性質相關聯之分頁表項目的位址映射欄位可以留給軟體以用於非由處理電路系統支援的指令集架構預定的任意軟體定義之目的。
現參考圖式描述具體實例。應瞭解,申請專利範圍不限於此等具體實例。
圖1示意地繪示資料處理設備2的一實例。資料處理設備具有處理管線4(處理電路系統之實例,其可例如形成CPU(中央處理單元)之部分)。處理電路系統4係用於執行指令集架構(instruction set architecture, ISA)中所定義的指令以實行由該等指令所表示的資料處理操作。處理管線4包括數個管線級。在此實例中,管線級包括用於從指令快取記憶體8提取指令的提取級6;用於解碼提取程式指令之解碼級10,以產生待由管線的其餘級處理的微操作(micro-operation)(經解碼指令);用於檢查微操作所需的運算元在暫存器檔案14中是否可用,並發布用於將給定微操作的所需運算元執行一次的微操作係可用的發布級12;用於執行對應於藉由處理讀自暫存器檔案14之運算元以產生結果值之微操作的資料處理操作的執行級16;及用於將處理的結果寫回至暫存器檔案14的寫回級18。應瞭解此僅係可能的管線架構的一個實例,且其他系統可具有額外級或不同的級組態。例如,在亂序處理器中,可包括用於將由程式指令或微操作指定的架構暫存器映射至識別暫存器檔案14中之實體暫存器之實體暫存器說明符的暫存器重命名級。在一些實例中,可存在由解碼級10解碼之ISA中所定義的程式指令與由執行級處理之對應微操作之間的一對一關係。在程式指令與微操作之間亦係可能有一對多或多對一關係,使得,例如,單一程式指令可分成二或更多個微操作,或者二或更多個程式指令可融合以作為單一微操作來處理。
執行級16包括若干個處理單元,以用於執行不同類別的處理操作。例如,執行單元可包括用於對讀自暫存器14的純量運算元進行算術或邏輯運算的純量算術/邏輯單元(arithmetic/logic unit, ALU) 20;用於對浮點值進行運算的浮點單元22;用於評估分支操作之結果及調整該程式計數器的分支單元24,該程式化計數器據此表示目前的執行點;及用於執行載入/儲存操作以存取記憶體系統8、30、32、34中之資料的載入/儲存單元26。
提供一記憶體管理單元(memory management unit, MMU) 28,以用於控制記憶體存取權限檢查,及執行由載入/儲存單元26基於資料存取指令之運算元所指定的虛擬位址與識別記憶體系統中資料之儲存位置的實體位址之間的位址轉譯。MMU具有一轉譯後備緩衝區(translation lookaside buffer, TLB) 29,其用於從儲存在記憶體系統中的分頁表快取位址轉譯資料,其中分頁表的分頁表項目定義位址轉譯映射,並且亦可指定存取權限,該等存取權限管控是否允許管線上執行的給定程序從給定記憶體區域讀取、寫入或執行指令。雖然MMU 28顯示為與載入/儲存單元26相關聯,但MMU 28亦可查找由提取級6觸發的指令提取(或分開之指令側MMU可經實施以處置指令提取、與由載入/儲存單元26所使用用於資料存取的資料側MMU分開,在此情況中,該兩個MMU皆從一組共用的分頁表在其等之TLB 29中快取資訊)。
在此實例中,記憶體系統包括一級資料快取記憶體30、一級指令快取記憶體8、共用二級快取記憶體32、及主系統記憶體34。將理解此僅係可能的記憶體階層的一個實例,並可提供快取記憶體的其他配置。顯示在執行級16中的處理單元20至26的具體類型僅係一個實例,且其他實施方案可具有不同組的處理單元或可包括相同類型的處理單元的多個實例,使得可平行地處理多個相同類型的微操作。
設備2亦可包括數個系統組件,其等可由處理電路系統4藉由發布指定映射至該等系統組件之位址的記憶體存取請求進行存取。例如,該等系統組件可包括用以記錄診斷資訊的追蹤緩衝區42,其可供外部裝置經由I/O(輸入/輸出)埠44進行存取。外部裝置可使用診斷(追蹤)資訊以用於執行在處理電路系統4上執行之軟體的診斷分析,例如用於用軟體識別效能問題的目的。例如,該診斷資訊可指示關於下列的資訊:在軟體中執行之指令序列的程式流程、由軟體進行之資料存取、及當執行軟體時處理器的內部狀態。可提供追蹤硬體以回應於監測軟體執行及處理器狀態而自動記錄追蹤資訊。替代地,若已用追蹤產生指令檢測軟體,則軟體本身可執行指令(例如,指定映射至追蹤緩衝區42之位址的寫入存取請求)以使軟體定義之追蹤資料被寫入至追蹤緩衝區42。
系統組件之另外實例可係另外處理器46(例如,另外CPU),雖然於圖1中未明確指示,但其可以包括與在圖1中之第一處理器顯示者類似的組件4、8、14、28、30、32。可使用由MMU 28管理的讀取/寫入記憶體存取請求來執行處理器間通訊。該記憶體系統可包括一同調互連件,其用於使用任何已知的同調性協定來維持在該等各別處理器之快取記憶體之間的同調性。
再者,該系統包括數個周邊設備(輸入/輸出)裝置48。例如,周邊設備48可包括經設計以加速特定處理功能的硬體加速器、網路控制器、顯示控制器、使用者輸入裝置、或經由輸入/輸出埠來與系統2通訊的任何外部(晶片外)裝置。再次,藉由發布指定映射至該等組件之位址的讀取/寫入記憶體存取來進行與周邊設備及I/O裝置的互動。
設備2亦可包括標籤檢查電路系統250,其在下文關於圖9更詳細地描述。
應理解圖1僅係一可能的處理器管線實施方案的一些組件的簡化表示,且處理器可包括為了簡潔起見而未繪示的許多其他元件。
圖2繪示對被視為「正常」記憶體之位址空間之頁面的讀取及寫入請求之處理。「正常」記憶體類型可用於意欲用於一般隨機存取資料或指令儲存的頁面。當接收到讀取請求時,MMU 28在其TLB 29中查找由該讀取請求所指定之虛擬位址。若TLB 29已包括用於虛擬位址之分頁表資訊,則藉由分頁表資訊所提供的屬性及位址轉譯映射資訊係用以:控制虛擬位址對實體位址的轉譯;檢查存取權限,以判定是否可允許該讀取請求(若不允許該讀取請求,則傳訊錯誤);及基於屬性來控制該服務之讀取請求的方式(例如,該等屬性可指定頁面之資料是否係可快取)。若TLB 29尚未包括用於虛擬位址之所需分頁表資訊,則在進行至檢查存取權限並執行位址轉譯之前,執行分頁表遍歷操作以從儲存在記憶體系統中所儲存的分頁表結構中獲得所需的分頁表資訊。因此,對於分頁表資訊中用於其之屬性指定「正常」記憶體類型的讀取存取,假如滿足存取權限,則該讀取存取之虛擬位址被轉譯成實體位址,且接著指定該實體位址的讀取記憶體存取請求被發送至記憶體系統。若該記憶體存取請求命中快取記憶體30、32中之一者中,則該所指定實體位址的資料可從該快取記憶體讀出且傳回至處理電路系統4。若該請求在快取記憶體30、32中未命中,則執行對主記憶體34的存取,及讀取目標值被傳回至處理電路系統4,例如藉由寫入該值至暫存器14。
對於寫入請求,TLB 29之查找及(分頁表遍歷,若有必要)與對於讀取請求相同。基於對於寫入請求之虛擬位址在分頁表資訊中定義的屬性,MMU 28判定是否允許該寫入請求,且若如此,則產生指定基於目標虛擬位址及在分頁表資訊中指定之位址映射資訊所獲得之經轉譯實體位址的寫入記憶體存取請求。該寫入請求請求將由處理電路系統4所提供的寫入資料值(例如,基於從暫存器14讀取之運算元)寫入至快取記憶體30、32及/或主記憶體34中的對應位置。
出於各種原因,有時候,軟體能夠控制虛擬位址空間之相對較大區域被指派預定值(諸如填入零)可係有用的。許多作業系統(在軟體中)實施一機制以提供寫入時複製填入零之記憶體。一般而言,此係藉由設定用於虛擬位址之填入零區域的位址轉譯映射來完成以將所有該等區域映射至儲存零的實體記憶體之單一範圍。因此,需要被撥出的實體記憶體之量可減少至由分頁表資訊之單一分頁表項目所涵蓋的區域(例如,頁面或區塊)。然而,當支援大於4kB的頁面大小或使用區塊描述項在分頁表階層之較高層處的單一分頁表項目中涵蓋較大的記憶體區域(例如,約MB或GB的大小)時,保留單純儲存該等零之此實體記憶體量變得昂貴。
圖3繪示可由MMU 28支援的新記憶體類型,稱為「讀值只有X」記憶體。MMU 28所使用的分頁表資訊可使虛擬位址空間之給定頁面與指示讀取該頁面應傳回指定值X的「讀值只有X」性質相關聯。X的值可從「讀值只有X」性質本身或從分頁表資訊所定義之其他資訊中所隱含,且因此不需要快取記憶體或記憶體存取以識別X之數值。因此,對於讀取請求,當MMU 28從讀取目標虛擬位址的對應分頁表資訊識別出認為待被該讀取請求讀取的資料之讀取目標區塊落在與該「讀值只有X」性質相關聯的頁面內時,MMU 28不需要將該虛擬位址轉譯為實體位址,且可抑制對快取記憶體30、32或記憶體34的任何存取,否則將被發布以獲得讀取資料之值。應注意,若需要分頁表遍歷,則可能仍需要快閃記憶體/記憶體存取,以獲得與讀取目標虛擬位址相關聯之分頁表資訊,即使對於獲得X的資料值可抑制快閃記憶體/記憶體存取。MMU 28可使用MMU 28的內部電路邏輯產生指定值X,並由於該讀取操作而將此值傳回至處理電路系統4。指定值X可係例如零,或可係非零值(諸如具有所有位元設定為1的值),或另一二元值,其預期足以經常使用以證明在分頁表資訊或在由分頁表資訊參考的其他資訊中的專用編碼係合理的。若指定值X具有比讀取資料區塊之大小更少的位元,則可經重複以填充傳回之讀取資料區塊。
因此,不同於上文所描述的軟體實施之寫入時複製機制(其可使用用於支援位址轉譯及使用讀取/寫入存取權限之存取控制的現有架構機制來實施),「讀值只有X」性質係在由MMU 28支援之分頁表資訊中定義的新架構性質。雖然此可能需要在分頁表資訊中的一些額外編碼空間,但此具有優於用於用預定值填充記憶體之大區域上的軟體實施之寫入時複製機制的益處。首先,因為沒有存取快取記憶體或實體記憶體以用於獲得指定值X,所以此意指對於經指派該指定值X之該等區域完全不必撥出任何實體記憶體,所以即使使用相對大的頁面/區塊大小,仍然不需要消耗實體記憶體之大區塊以用於實際上儲存該指定值X。這意指可更有效率地利用在處理系統中實施的可用實體儲存器,此係因為更多儲存器可用於儲存具有比該指定值X更有意義之值的其他資料。此減少必須被匯出至外部(晶片外)儲存器的有意義資料量,而改善需要該其他資料的程式碼之效能。再者,因為不需要快取記憶體或記憶體存取以獲得指定值X,於是目標是具有「讀值只有X」性質之頁面的讀取請求可更快地處理且因此改善效能。
若發布指定哪個分頁表資訊與「讀值只有X」性質相關聯之位址的寫入請求,則數個不同「讀值只有X」寫入行為係可行的。圖3顯示數個選項。當發布目標是具有「讀值只有X」性質之頁面的寫入請求時,第一選項係傳訊錯誤。此對於支援寫入時複製可係有用的,因為在第一次寫入至填入零的虛擬頁面時,錯誤可使作業系統分配用於該虛擬頁面的一些實體記憶體,且接著在該虛擬頁面已映射至實體記憶體之後,進行處理該寫入。另一選項係單純忽略寫入操作且不寫入資料至任何實體記憶體。若「讀值只有X」性質係用於寫入時複製以外之目的,此可經選擇以減少錯誤的可能性,其中錯誤係不必要的,但應存在架構預定之技術以用於處理寫入至「讀值只有X」記憶體(可預期,若軟體已指定記憶體為「讀值只有X」,則此類寫入將係罕見的)。第三選項是寫入請求的寫入資料可轉發至預定系統位置,諸如追蹤緩衝區42、另一處理器46、或周邊設備48。否則可使用對虛擬位址(不具有「讀值只有X」性質)的讀取或寫入記憶體存取來執行將資料轉發至此類系統位置,該等虛擬位址轉譯成由該記憶體匯流排基礎架構所識別為對應於該系統位置的實體位址。然而,使用一般存取,此類轉發將需要至對應實體位址的位址轉譯,且接著指定實體位址的記憶體存取請求被發送至記憶體系統,使得在記憶體系統內實施的映射組件可接著基於目標實體位址來識別其係寫入資料之目的地的系統位置。相比之下,藉由使用「讀值只有X」性質,事實上,待被轉發至預定系統位置的寫入資料可由MMU 28從分頁表資訊(直接或使用由分頁表資訊參考的間接表格)識別,且因此將記憶體存取請求轉發至記憶體系統及等待映射組件識別資料之目標位置的延遲可被減少,因為MMU 28可在不調用該映射組件之情況下直接指定目的地。因此,將資料轉發至預定系統位置的「讀值只有X」寫入行為可提供對系統組件(諸如追蹤緩衝區42(用以記錄關於在處理系統上軟體運行的診斷資訊)、另一處理器46、或周邊設備(諸如DMA控制器、網路控制器、或硬體加速器)的加速存取。
圖4係顯示處置讀取請求的流程圖。在步驟100,由處理電路系統4發布一讀取請求,其請求讀取目標值係從與記憶體位址空間之讀取目標區塊相關聯的記憶體系統位置讀取。讀取請求可指定識別讀取目標區塊的讀取目標位址及(可選地大小參數)。
在步驟102,MMU 28執行在TLB 29中查找讀取目標位址,以尋找用於對應於讀取目標區塊之目標頁面的分頁表資訊。若TLB 29尚未儲存所需之分頁表資訊,則可執行分頁表遍歷操作以遍歷在記憶體中所儲存之分頁表結構,以獲得所需之分頁表資訊。若分頁表結構中沒有已定義用於所需目標頁面的有效分頁表資訊,則可傳訊錯誤且圖4之方法停止。
在步驟104,MMU 28基於所獲得之分頁表資訊來判定讀取目標區塊是否對應於與「讀值只有X」性質相關聯之頁面。若否,則在步驟106處,MMU 28判定是否滿足分頁表資訊中針對目標頁面所指定之任何存取權限,且若存在任何違反存取權限,則在步驟108傳訊錯誤。若滿足在分頁表資訊中指定之存取權限,則在步驟110處,MMU 28基於在分頁表資訊中指定的位址映射資訊而執行位址轉譯,以獲得對應於指定為讀取目標位址之虛擬位址的目標實體位址。在處理電路系統4的一些狀態中,從虛擬位址至實體位址的位址映射可取決於分頁表結構的兩個級:一第1級分頁表結構,其定義在處理電路系統4上執行之作業系統的控制下,基於在映射資訊集從虛擬位址至中間位址的映射;及一第2級分頁表結構,其定義在處理電路系統4上執行之超管理器(hypervisor)的控制下,基於在映射資訊集從中間位址至實體位址的映射。在處理電路系統4的其他操作狀態中,可在單一級中直接從虛擬位址轉譯至實體位址。可使用任何已知的位址轉譯技術來執行位址轉譯。
在步驟112,MMU 28將所轉譯之實體位址傳回至處理電路系統4的載入/儲存單元26,且載入/儲存單元26發布快取存取請求,以請求從層級1快取記憶體30傳回讀取目標值之至少部分。若請求在層級1快取記憶體中未命中,則另外請求可發送至層級2快取記憶體32或主記憶體34。在一些情況下,例如,若分頁表資訊指示非可快取頁面,則快取存取可被略過,在此情況下,該請求可直接以記憶體34為目標。讀取目標值係從記憶體系統之儲存結構30、32、34中之一者獲得,且傳回至處理電路系統4,以將值儲存在暫存器14中,例如,該值可自其用作為由處理電路系統4所處理之後續指令的運算元。
另一方面,若在步驟104,讀取目標區塊經判定為對應於與「讀值只有X」性質相關聯之頁面,則在步驟114,MMU 28再次判定在分頁表資訊中指定之任何存取權限是否被讀取請求滿足,且若否,則在步驟116傳訊錯誤。若存取權限被判定為滿足,則在步驟118,抑制快取記憶體或記憶體存取請求(一般將被發布以請求將讀取目標資料傳回至處理電路系統4),且取而代之地,在步驟120,將指定值X傳回至處理電路系統4,作為對應於讀取目標區塊之至少部分的值。再次,所傳回之資料值可儲存在處理電路系統的暫存器14中。該指定值X係從分頁表資訊或由分頁表資訊參考的其他資訊推斷,且因此不需要任何快取記憶體或記憶體存取以判定該指定值X。
在罕見的情況下,讀取目標區塊可跨越介於標記為具有「讀值只有X」性質之一頁面與不具有「讀值只有X」性質之另一頁面之間的頁面邊界。在此情況下,對「讀值只有X」頁面及非「讀值只有X」頁面的讀取存取之部分可被有效地被視為兩個分開之存取,其等將需要在步驟102分開地查找分頁表資訊,以及觸發對於非「讀值只有X」頁面之各別步驟106至112及對於「讀值只有X」頁面之步驟114至120的分開處理。因此,在此情況中,藉由讀取請求所請求的讀取目標值之僅部分將由MMU 28產生作為指定值X,且對應於非「讀值只有X」頁面之另一部分將在步驟112處獲自記憶體系統。因此,由於讀取請求可僅部分地目標是「讀值只有X」頁面,所以讀取請求之整個讀取目標值被傳回作為指定值X並非必需的。
圖5係繪示處理寫入請求的流程圖。在步驟140,由處理電路系統4發布一寫入請求,其請求將寫入值寫入至與記憶體位址空間之寫入目標區塊相關聯的記憶體系統位置。至於讀取請求,在步驟142中,MMU 28執行在TLB 29中查找由寫入請求指定的寫入目標位址,以尋找用於對應於位址之寫入目標區塊之目標頁面的分頁表資訊。再次,若TLB 29尚未具有所需資訊,則可執行分頁表遍歷以存取記憶體中之分頁表結構。在步驟144,MMU 28基於所獲得之分頁表資訊來判定位址之寫入目標區塊是否對應於與「讀值只有X」性質相關聯之頁面。
若與寫入目標區塊相關聯之目標頁面不是「讀值只有X」頁面,則在步驟146,檢查由對應分頁表資訊指定之任何存取權限,且若識別到存取違規,則在步驟148傳訊錯誤。若滿足針對被寫入請求當作目標之頁面所指定的存取權限,則在步驟150處,MMU 28以與圖4之步驟110相同的方式執行位址轉譯,以獲得寫入存取之目標實體位址。在步驟152,由載入/儲存單元26發布一快取記憶體或記憶體存取請求,以請求將由寫入請求指定的寫入值寫入至與目標實體位址相關聯的記憶體系統位置(在快取記憶體30、32或記憶體34中)。
若在步驟144,寫入目標區塊經判定為對應於與「讀值只有X」性質相關聯之頁面,則在步驟154,MMU 28再次檢查存取目標頁面所需滿足的任何存取權限,且若任何存取權限均未被滿足,則在步驟156傳訊錯誤。
對於對「讀值只有X」頁面的寫入存取,若判定待准許寫入所需之任何其他存取權限被滿足,則存在回應於對位址空間之「讀值只有X」頁面之寫入請求的數個選項。在第一選項中,在步驟158傳訊錯誤。在第二選項中,在160,單純忽略該寫入請求而無需發布對快取記憶體或記憶體的任何寫入請求,但不傳訊錯誤,且因此允許由處理電路系統4不中斷而繼續處理。在第三選項中,在步驟162,由寫入請求指定的寫入值被轉發至預定系統位置,諸如追蹤緩衝區42、其他處理器46、或周邊設備48。一些實施方案可僅支援指示步驟158、160及162的選項中之一者。其他實施方案可支援此等選項中之二或更多者,且對於特定寫入請求採取哪一選項可取決於可由軟體程式化的控制資訊(例如,程式化此控制資訊之能力可限於某一特權層級或更高的軟體,諸如作業系統或超管理器軟體)。例如,控制資訊可係分頁表資訊本身,其可直接指定回應於對「讀值只有X」頁面的寫入請求而待採取哪個「讀值只有X」寫入行為,或控制資訊可係由分頁表資訊參考的間接表格,其提供關於如何處置對「讀值只有X」頁面之寫入請求的更多資訊。替代地,控制使用哪個「讀值只有X」寫入行為的控制資訊可獨立於分頁表資訊且不被分頁表資訊直接或間接參考(例如,控制資訊可係用於控制對於所有頁面之「讀值只有X」寫入行為的全域資訊,而非個別頁面特定的頁面特定之資訊)。例如,控制暫存器可指示模式狀態值,該模式狀態值指示待在目前操作模式中使用的「讀值只有X」寫入行為,其可針對與「讀值只有X」性質相關聯之位址空間的任何頁面而全域地應用。
分頁表資訊可依數種不同方式編碼「讀值只有X」性質。在一些情況下,用於位址空間之給定頁面的分頁表項目可直接指定識別該頁面具有「讀值只有X」性質的記憶體屬性或權限類型值。例如,分頁表項目之權限或屬性欄位之一或多個位元欄位編碼可經指派以指示「讀值只有X」性質,其中該欄位之其他編碼識別其他類型之權限或屬性。
替代地,如圖6所示,間接表格可被用來定義關於「讀值只有X」性質之資訊。若分頁表格式不具有足夠的備用編碼空間以添加用於「讀值只有X」性質之所欲數目個變體的支援,則這可係有用的。若存在期望受支援之「讀值只有X」性質之多於一個變體,諸如上文所論述之對應於指定值X之不同值或不同的「讀值只有X」寫入行為的「讀值只有X」之變體,則這可尤其有用。
如圖6所示,分頁表結構200可使虛擬位址與經轉譯位址(在此實例中,實體位址,雖然在兩級式轉譯程序中之第1級轉譯中,該經轉譯位址可取而代之地係中間位址)及一或多個存取權限或屬性欄位相關聯。雖然為了易於解說而在圖6中的表結構中明確地顯示虛擬位址,但應瞭解,實際上,虛擬位址可用於對結構編索引,且因此不需要明確地儲存於表結構本身中。
在此實例中,權限欄位參考經實施為MMU 28之控制暫存器的一組權限間接暫存器202。權限間接暫存器表示間接表格,其可藉由在某一特定特權層級或更高執行的軟體指令而程式化,且選自各種所支援之權限類型。藉由使用權限間接暫存器,與可藉由在分頁表項目本身之權限欄位中的有限數目個位元所指示者相比,可支援更大數目個權限類型。例如,位元權限欄位可選自權限間接暫存器202中的四個權限間接指示中之一者,但權限間接暫存器202之各項目可選自用於對應權限類型的多於四個不同選項。當然,權限間接項目之數目可大於或小於4。
此可接著實現支援用於給定頁面的一系列不同權限類型,諸如:
• 唯讀:准許讀取存取,且禁止寫入或指令提取存取;
• 無權存取:禁止對該頁面的所有存取;
• 讀取/執行存取:准許讀取及指令提取存取,禁止寫入存取;
• 讀值只有零:「讀值只有X」性質之變體,其中指定值係零(例如,在此變體中,可使用寫入錯誤寫入-行為(write-fault write-behaviour),如圖5之步驟158所示);
• 讀取/寫入:准許讀取及寫入存取,禁止指令提取存取;
• 「讀值只有0」寫入忽略:「讀值只有零」之變體,其中在請求對「讀值只有X」頁面之寫入時,使用圖5之步驟160的寫入忽略行為;
• 「讀值只有0」寫入至追蹤緩衝區:「讀值只有零」之變體,其中要使用的「讀值只有X」寫入行為係圖5中的選項3,其中預定系統位置係追蹤緩衝區42;
• 「讀值只有X」取決於位址:「讀值只有X」性質之變體,其中X之值取決於讀取請求之位址,如下文在圖8中進一步解釋。
應瞭解,此等僅係可能可行的一些實例編碼,且亦可使用許多其他權限類型。大致上,軟體可選擇待寫入至權限間接暫存器的值,以選擇在ISA中所支援以供分頁表項目選擇的可用權限類型之特定子集,以將分頁表項目本身中所需之位元數目減少至小於用於將從全系列所支援之權限類型進行選擇編碼所需的位元數目。雖然圖6將間接暫存器202顯示為指定可用於供分頁表項目之權限欄位選擇的選項,但其他實施方案可將間接表格方法應用於屬性欄位。「讀值只有X」性質可視為記憶體屬性而非權限,且因此可直接或間接地編碼在屬性欄位中,而非如圖6之實例中所示的權限欄位。
圖7繪示使用進一步的間接以指定對於對記憶體之「讀值只有X」頁面的讀取而待傳回的特定值X。再次,分頁表結構200使用在MMU 28之控制暫存器中指定的一個間接表格202,以定義對於給定頁面待選擇哪個權限類型,其中分頁表項目可在其權限欄位中指定項目識別符,該項目識別符指定間接表格202之項目之一者。對於間接表格項目之至少一些編碼,可將間接表格項目之值解譯為對儲存在控制暫存器中之另外間接表格204之項目的進一步參考。此可有用於支援用於「讀值只有X」頁面的指定值X之較寬範圍,其中初始間接表格可指定頁面為「讀值只有X」頁面或非「讀值只有X」頁面,且可指定「讀值只有X」性質之其他性質,諸如待與「讀值只有X」頁面之寫入資料轉發的「讀值只有X」寫入行為或系統組件的類型,但是對於指定為標示記憶體之「讀值只有X」頁面的至少一些編碼,該編碼可被解譯為對另外間接表格204之參考,其中所參考之項目指定對於對記憶體之「讀值只有X」頁面的讀取而待傳回的特定值。此方法將實現待對於「讀值只有X」存取指定的廣泛範圍之數值,而不需要將主分頁表中的權限欄位被擴展至足以指示指定值的位元數目。此係有益的,因為間接表格202及另外間接表格204可一次針對所有頁面全域地指定,而分頁表項目200將以逐頁面為基礎提供,且因此擴展分頁表結構之權限或屬性欄位的大小以將任意資料值指定作為待對於「讀值只有X」頁面所傳回之指定值X將大幅增加分頁表結構之大小。
雖然圖7顯示使用另外間接表格204以指定從用於指定值X之數個不同值進行選擇的方法,但是在其他方法中,X之特定值的選擇可與在間接表格202中的其他資訊組合,使得不需要另外間接表格204。
圖8更詳細地說明圖6所示之「讀值只有X」性質之「讀值只有取決於位址之值X」變體的實例行為。在此情況下,對於具有「讀值只有X」性質之相同編碼但在位址空間之不同範圍中的兩個頁面,對於該等頁面之讀取存取可傳回指定值X之不同值。例如,讀取目標位址之一或多個位元(例如,位址之最高有效部分,排除未用以選擇記憶體中之記憶體存取位置的任何上部位元)可用以選擇哪個值應傳回作為指定值X。此可有用的,因為一些指令集架構對於不同目的而使用位址空間之不同範圍,諸如對於使用者資料使用位於位址空間之下部分的位址(其中上部位元等於0),對於核心(作業系統)資料及核心程式碼使用位於位址空間之上部分的位址(其中上部位元等於1)。對於一些使用情況,可係所欲的是對於對「讀值只有X」記憶體的存取之待傳回作為指定值X的預設值應不同於對於使用者層級存取及核心層級存取。例如,當「讀值只有X」方法用於在支援記憶體標籤的系統中處置分配標籤(如下文關於圖9進一步論述)時,可係有用的是將不同標籤值分別指派給由使用者存取及核心存取所使用的「讀值只有X」頁面,使得對核心資料的使用者存取將導致不匹配的標籤。藉由提供「讀值只有X」性質之位址相依性變體,此避免需要兩個分開之權限/屬性類型編碼被分配用於待在位址空間之不同範圍中使用的X之不同值,節省分頁表資訊或間接表格中的編碼空間,其可釋放分頁表項目或間接表格項目之至少一個其他編碼以用於其他目的。雖然圖8顯示位址空間劃分為二且因此位址之兩個不同範圍對應於指定值X之不同值的實例,但是將瞭解,其他方法可使用目標位址之多於兩個位元,以選擇哪個值用於指定值X,且在此情況中,位址空間可有效地被劃分成對應於用於「讀值只有X」頁面之不同值的多於兩個區域。
再者,使用位址之最高有效位元來選擇X之值並非必要的。在使用位址之較低有效位元部分之一或多個位元以選擇X之值的實例中,此將具有位址空間之數個交替區域交替於X之值的效果,其可能有用於例如循環過經分配標籤值,以減少實體儲存器之量及設定用於記憶體之給定範圍的分配標籤值以依逐區塊為基礎交替值所需的明確標籤寫入操作。
「讀值只有X」性質可特別有用於支援記憶體標籤的系統,以實現具有待表示之一定標籤值的分配標籤,而不需要撥出實體記憶體以儲存該等標籤。圖9繪示記憶體標籤的概念,其可用以處理一些較高階程式設計語言(諸如C及C++)認為記憶體不安全的問題,因為其等不包括運行時間錯誤偵測檢查以用於檢查與記憶體存取相關的某些錯誤。持續流行使用記憶體不安全語言意指,在根據給定指令集架構的編譯程式碼中,可存在大量記憶體相關的錯誤,其可能有被攻擊者或其他惡意方利用的弱點。此類錯誤可包括:
• 邊界違反,其中由程式碼供應的一陣列索引在該陣列之合法邊界外;
• 釋放後使用(use-after-free)錯誤,其中在記憶體位置已被解除分配或釋放時,進行對記憶體位置的存取;
• 傳回後使用(use-after-return),其中在已從函式傳回後,對與函式內使用之變數(諸如一堆疊上之一值)相關聯之位址的記憶體存取;
• 使用超出領域範圍(use-out-of-scope)錯誤,其中在宣告變數的領域範圍外存取變數;及
• 在初始化前使用(use-before-initialisation)錯誤,其中在變數已經初始化之前存取與該變數相關聯之記憶體位址。
這些僅是記憶體相關之錯誤的一些實例,該等錯誤可能導致不可預測的行為,且潛在地提供攻擊者利用的途徑。因此,在由給定處理設備所支援的指令集架構中提供建築支援可係所欲的,以用於輔助在運行時間偵測某些類別之記憶體錯誤。
用於防止上文所論述之類型的某些記憶體使用錯誤的一種方法可係提供儲存在記憶體系統中的分配標籤,該等分配標籤與一或多個記憶體位置之區塊相關聯。當標籤保護型記憶體存取操作係基於識別在記憶體系統中之特定經定址位置的目標位址而請求時,標籤檢查電路系統可比較與該目標位址相關聯之位址標籤與儲存在記憶體系統中之分配標籤,該分配標籤與包括由該目標位址所識別之經定址位置的一或多個記憶體位置之區塊相關聯。標籤檢查電路系統可產生是否偵測到該分配標籤與該位址標籤之間匹配的指示。此指示可用以控制是否允許記憶體存取成功,或是否後續操作可成功,或可僅當允許記憶體存取照常繼續時予以報告。
此可有用的,因為例如基於記憶體不安全語言(諸如C及C++)編譯程式碼的編譯器可產生指令,當記憶體區域被初始化時,該等指令使用於程式碼預期存取的記憶體區塊之分配標籤被設定為特定值,且使匹配之位址標籤值與用以提供指向該等區塊之目標位址的指標相關聯。若記憶體使用錯誤發生,且例如使用的位址指標超出領域範圍或延伸超出被初始化之有效範圍之邊界,則可能與經定址位址相關聯的分配標籤並未匹配於與目標位址相關聯之位址標籤,且接著是否偵測到匹配的指示可用以觸發一些錯誤處置回應或錯誤報告機制。所採取之特定回應於可取決於所執行之軟體的特定需求或架構之特定微架構實施方案。因此,即使高階語言不具有用於執行運行時間錯誤檢查以防止記憶體存取錯誤的手段,用於經編譯程式碼的ISA仍可包括用於執行此類檢查的架構特徵。
因此,如圖9所示,當支援標籤檢查模式時,用以參考記憶體系統內之記憶體位置的實體位址空間244可經邏輯分割成數個區塊245,各者包含一定數目個可定址位置246。為了簡潔,在圖9之實例中,各區塊245包含四個記憶體位置246,但亦可使用其他區塊大小。各區塊245與對應分配標籤240相關聯。與某一數目個區塊245相關聯的分配標籤可被蒐集在一起並儲存在實體位址空間內的不同架構上可存取記憶體位置內、或在記憶體系統中所提供之非架構上可存取(未映射至相同實體位址空間)的額外儲存位置內。哪些標籤儲存位置對應於各區塊245的特定映射可係硬線式(hardwired)或可係可程式化的。
因此,當需要標籤保護型記憶體存取時(例如,某些記憶體存取指令作業碼可經指派以指示標籤保護型記憶體存取,或替代地,在標籤檢查中模式操作時發布的任何記憶體存取可視為受標籤保護),比較位址標籤246(其與識別待存取之經定址位置的目標位址247相關聯)與分配標籤240(其與包括經定址位置的記憶體位置之區塊245相關聯)。例如,在圖9中,目標位址247指向記憶體中之某一位置B1。因此,由標籤檢查電路系統250比較分配標籤B(其與包括位置B1的位置B之區塊相關聯)與位址標籤246(其與目標位址247相關聯)。如圖1所示,標籤檢查電路系統250可視為處理電路系統4之部分,或替代地(圖1中未顯示),標籤檢查電路系統250可實施為記憶體系統之部分。如圖9之頂部所示,位址標籤246可依據目標位址247本身之所選取位元而變動地判定。具體而言,位址標籤可從目標位址之一部分內的位元判定,該等位元未被用於指示待被選擇作為經定址位置44的特定記憶體位置(目標位置B1之選擇並不取決於此等位元)。例如,在一些架構中,目標位址之位元的頂部部分可總是具有一定的固定值,諸如符號擴展(全部0或全部1),且因此無意義,這些上部位元不用以選擇待存取的記憶體位置。因此,可藉由用任意標籤值覆寫此等未使用位元而用位址標籤246對一位址加上標籤。特定位址標籤值可由例如程式設計人員或編譯器選擇。位址標籤246及分配標籤240可係相對較小數目個位元(例如4個位元),且因此不需要在記憶體儲存器內及在目標位址內佔用太多空間。提供4個位元的標籤空間(即,標籤的16個可能值)常可足以偵測許多共同類型的記憶體存取錯誤。
因此,當執行標籤保護型記憶體存取時,標籤檢查電路系統250比較位址標籤246(其與目標位址相關聯)與分配標籤240(其與包括經定址位置B1的記憶體位置之區塊245相關聯),且判定其等是否匹配。標籤檢查電路系統250產生指示位址標籤246與分配標籤240是否匹配的匹配指示。例如,此匹配指示可係若在位址標籤246與分配標籤250之間存在不匹配而產生的錯誤信號,而觸發例外處置器處理錯誤之原因。再者,匹配指示可係放置在狀態暫存器中指示是否存在匹配的指示,或添加至錯誤報告的項目以指示偵測到錯誤的位址及/或觸發錯誤的指令之指令位址。一些實施方案可防止造成標籤檢查錯誤的記憶體存取成功,而其他方法可允許記憶體存取進行而不管標籤檢查錯誤,但在錯誤記錄中記錄錯誤,其可供該程式碼的軟體提供者使用,以輔助該提供者在軟體之後續版本中消除錯誤。因此,應瞭解,存在可由標籤檢查電路系統250產生標籤匹配/不匹配指示的各式各樣方式。
在使用目標位址247之一部分以判定位址標籤246的實施例中,值得注意的是,此位址標籤不同於目標位址之標籤部分,該標籤部分可由快取記憶體30、32使用以判定來自由目標位址所識別的經定址位置之資訊是否儲存在快取記憶體內。許多快取方案可將經快取資料的位址之一標籤部分儲存在快取記憶體內之該資料旁邊,使得在快取記憶體內搜尋給定位址方面,可比較該位址之部分與儲存在經快取資料旁邊的標籤,以判定該經快取資料是否實際對應於該所需位址。然而,在此情況中,與快取記憶體中之標籤相比較的位址之標籤部分將係實際上識別所需要之資料的特定經定址位置的位址之部分的部分,即,依據定義,改變位址之快取標籤部分將導致指向記憶體系統內之不同經定址位置的位址。相比之下,使用用於標籤保護型記憶體操作的位址標籤,記憶體存取電路系統可選擇需要資料存取的經定址位置,而與位址標籤無關。亦即,即使位址標籤246被設定為不同值,由目標位址所參考的經定址位置B1仍可相同,因為經定址位置B1的選擇僅取決於目標位址247之其他部分,且與用於位址標籤246的部分無關。此給出編譯器將與特定位址相關聯的位址標籤設定為任何值以匹配於已分配給記憶體系統中的相關資料區塊之對應分配標籤值的自由度。
標籤檢查電路系統250可位於系統2之不同部分處。在一些情況下,標籤檢查電路系統可位於處理元件(例如,CPU)內,如圖1所示。其他實例可將標籤檢查電路系統定位成較接近儲存所存取資料及標籤的記憶體儲存器16。
在支援記憶體標籤的系統中,為了定義用於希望使用記憶體標籤保護的位址空間之範圍的分配標籤240,此可(在不存在對「讀值只有X」性質的支援中)需要撥出相對大量的實體記憶體儲存器,以儲存分配標籤。然而,認知到,實際上,分配標籤之合理分率可設定為指定值(諸如零),且因此此可浪費可用實體儲存器之相對大量分率。藉由使用經指派用於儲存具有指定值X之分配標籤的頁面之「讀值只有X」性質,此減少必須撥出用於儲存標籤值的實體記憶體之量,且因此使得更有效地使用可用的實體儲存器。因此,當請求受標籤保護之存取時,可由MMU 28根據MMU 28所實施之映射方案來從被讀/寫的資料之目標位址來導出對應分配標籤之位址(例如,資料位置位址至標籤位置位址的硬線映射,或基於軟體中可程式化之標籤映射表的可程式化映射),且若基於分頁表資訊而將標籤存取所需之位址判定為映射至「讀值只有X」頁面,則MMU 28可在不存取快取記憶體30、32或記憶體34的情況下產生指定值X,以及將所請求分配標籤之指定值X傳回至標籤檢查電路系統250,該標籤檢查電路系統可接著比較該指定值X與對應位址之位址標籤246,以判定是否已引發任何標籤檢查錯誤。「讀值只有X」性質亦可針對資料存取產生,因此不限於用於標籤存取。
為了支援記憶體標籤,提供「讀值只有X」性質之變體可係有用的,其中該性質指示讀取存取應部分地傳回讀取自取快取記憶體30、32或記憶體34的值,且對於另一部分,從「讀值只有X」性質所隱含的隱含地定義之指定值X(諸如零)。此可有用於允許用於記憶體區域的分配標籤傳回在讀取存取中之對應資料旁邊,而當其具有與「讀值只有X」性質相關聯的值值X時不需要將該分配標籤本身儲存在實體記憶體中。因此,在單一(可能地快取線大小)讀取存取中,「讀值只有X」可允許X取代一些位元。例如,快取線可係(名義上)被視為儲存多個資料位元組及單一似MTE「標籤」位元組,雖然若其可使用「讀值只有X」記憶體性質而隱含,則可不需要實體地儲存標籤位元組。例如,對應於具有「讀值只有X」性質之4KB頁面的實體記憶體可實體地儲存256組128位元資料值,但對應的虛擬頁面可實際上被視為映射至256組132位元值,各132位元值包含128個位元之正常存取之資料,及被傳回作為基於「讀值只有X」性質隱含地判定之值X的4位元標籤。因此,對在該頁面內之位址的快取線大小之讀取將傳回包括標籤的132位元值,不是128個位元之僅實體儲存之資料。此實現定義用於虛擬記憶體之區域的標籤,而無需撥出實體儲存器。
應瞭解,上文已描述「讀值只有X」性質之數個變體,且任何特定系統實施方案可支援此等變體中之一或多者。
圖10繪示可使用的模擬器實施方案。雖然稍早所述之實施例以用於操作支援所關注技術的特定處理硬體之設備及方法來實施本發明,但亦可能根據本文所述之實施例提供一指令執行環境,其係透過使用電腦程式實施。此類電腦程式常稱為模擬器,因為其等提供硬體架構之基於軟體的實施方案。模擬器電腦程式的種類包括仿真器、虛擬機、模型、及二進制轉譯器(包括動態二進制轉譯器)。一般而言,模擬器實施方案可在可選地運行主機作業系統320、支援模擬器程式310的主機處理器330上運行。在一些配置中,在硬體與所提供的指令執行環境及/或相同的主機處理器上提供的多個相異指令執行環境之間可有多層模擬。歷史上,已需要強大的處理器來提供模擬器實施方案,其以合理速度執行,但此種方法在某些情況下可係有正當理由的,諸如當因為相容性或再使用原因而需要運行另一處理器本體的碼時。例如,模擬器實施方案可提供具有不為主機處理器硬體所支援之額外功能性的指令執行環境,或提供一般與不同的硬體架構相關聯的指令執行環境。模擬的綜述係於「Some Efficient Architecture Simulation Techniques」中給出,Robert Bedichek, Winter 1990 USENIX Conference,頁數53至63。
在先前已參照特定硬體架構或特徵來描述實施例之情況下,在一模擬實施例中,可藉由合適的軟體架構或特徵提供等效功能。例如,可在模擬實施例中將特定電路系統實施為電腦程式邏輯。類似地,記憶體硬體(諸如,暫存器或快取記憶體)可在一模擬實施例中經實施作為儲存在主機處理器330之主機儲存器(例如,記憶體或暫存器)中的一軟體資料結構。在先前描述的實施例中提及的硬體元件的一或多者存在於主機硬體(例如,主機處理器330)上的配置中,一些模擬實施例可(在適當處)利用主機硬體。
模擬器程式310可儲存在電腦可讀儲存媒體(其可係非暫時性媒體)上,並提供程式介面(指令執行環境)給目標碼300(其可包括應用程式、作業系統、及超管理器),該程式介面與藉由模擬器程式310模型化之硬體架構的程式介面相同。因此,目標程式碼300的程式指令可在指令執行環境內使用模擬器程式310執行,使得實際上不具有上文論述之設備2之硬體特徵(例如,支援使用「讀值只有X」性質的記憶體管理電路系統28,如上文所論述)的主機電腦330可仿真這些特徵。
因此,模擬器程式310可具有用於解碼目標碼300之指令及將此等指令映射至主機設備330之原生指令集中的對應指令集的指令解碼程式邏輯312。暫存器仿真程式邏輯314將由目標碼請求的暫存器存取映射成對維護在主機設備330之主機硬體上的對應資料結構的存取,諸如藉由存取主機設備330之暫存器或記憶體中的資料。記憶體管理程式邏輯316採用一對應於如上述硬體實施實施例所描述之MMU 28的方式來實施位址轉譯、頁表遍歷、及存取權限檢查,以模擬目標碼300對一模擬位址空間的存取。提供記憶體位址空間模擬程式邏輯318,以將基於使用由目標程式碼300之軟體維護的頁表資訊的位址轉譯由記憶體管理程式邏輯316獲得的模擬實體位址映射成用以存取主機處理器330之主機記憶體的主機虛擬位址。此等主機虛擬位址可本身使用由主機所支援之標準位址轉譯機制來轉譯成主機實體位址(將主機虛擬位址轉譯成主機實體位址係在受到模擬器程式310控制的範圍之外)。
當記憶體管理程式邏輯316識別到,對於由目標程式碼300對所模擬位址空間之給定讀取目標區塊的讀取存取,由於具有「讀值只有X」性質,該給定讀取目標區塊對應於使用由目標程式碼300設定之分頁表資訊(不是由主機用於主機位址轉譯所使用的分頁表資訊)所識別的頁面,記憶體管理程式邏輯316控制指定值X傳回至目標程式碼300,而不需要將該讀取目標區塊之所模擬虛擬位址轉譯成所模擬實體位址,或調用記憶體位址空間模擬程式邏輯318以將所模擬實體位址映射至主機處理器330之主機儲存器。替代地,值X可由模擬器程式310本身的程式碼基於識別「讀值只有X」性質而產生,且可用於由目標程式碼300進行後續處理。若在圖1的硬體設備2上執行目標程式碼300,此仿真目標程式碼300將預期觀察到的行為。
在本申請案中,用語「經組態以…(configured to...)」係用以意指一設備的一元件具有能夠實行該經定義操作的一組態。在此上下文中,「組態(configuration)」意指硬體或軟體之互連的配置或方式。例如,該設備可具有專用硬體,其提供經定義的操作,或者一處理器或其他處理裝置可經程式化以執行該功能。「經組態以(configured to)」並不意味著設備元件需要以任何方式改變以提供所定義的操作。
雖然本文已參照附圖詳細地描述本發明的說明性實施例,應瞭解本發明不限於該等精確實施例,且所屬技術領域中具有通常知識者可於其中實行各種變化與修改,而不脫離如隨附申請專利範圍所定義的本發明的範圍。
2:資料處理設備/設備/系統
4:處理管線/處理電路系統/組件
6:提取級
8:快取記憶體/記憶體系統/組件
10:解碼級
12:發布級
14:暫存器檔案/組件/暫存器
16:執行級
18:寫回級
20:算術/邏輯單元(ALU)/處理單元
22:浮點單元/處理單元
24:分支單元/處理單元
26:載入/儲存單元/處理單元
28:記憶體管理單元(MMU)/組件
29:轉譯後備緩衝區(TLB)
30:快取記憶體/記憶體系統/組件/儲存結構
32:快取記憶體/記憶體系統/組件/儲存結構
34:主系統記憶體/主記憶體/記憶體系統/記憶體/儲存結構
42:追蹤緩衝區
44:I/O(輸入/輸出)埠/位置
46:處理器
48:周邊設備/周邊設備(輸入/輸出)裝置
100:步驟
102:步驟
104:步驟
106:步驟
108:步驟
110:步驟
112:步驟
114:步驟
116:步驟
118:步驟
120:步驟
140:步驟
142:步驟
144:步驟
146:步驟
148:步驟
150:步驟
152:步驟
154:步驟
156:步驟
158:步驟
160:步驟
162:步驟
200:分頁表結構/分頁表項目
202:間接暫存器/間接表格
204:間接表格
240:分配標籤
244:實體位址空間
245:區塊
246:可定址位置/記憶體位置/位址標籤
247:目標位址
250:標籤檢查電路系統
300:目標程式碼/目標碼
310:模擬器程式
312:指令解碼程式邏輯
314:暫存器仿真程式邏輯
316:記憶體管理程式邏輯
318:記憶體位址空間模擬程式邏輯
320:主機作業系統
330:主機處理器/主機設備
B1:位置
本技術的進一步態樣、特徵、及優點將由於結合附圖閱讀的以下實例描述而顯而易見,在該等附圖中:
[圖1]繪示資料處理設備的一實例;
[圖2]繪示處置對記憶體的讀取請求與寫入請求;
[圖3]繪示處置對由分頁表資訊指定為與「讀值只有X」性質相關聯的記憶體位址空間之區域的讀取請求與寫入請求;
[圖4]係繪示處置讀取請求的流程圖;
[圖5]係繪示處置寫入請求的流程圖;
[圖6]繪示使用權限間接表格以支援比可直接編碼於分頁表資訊更大數目個權限類型;
[圖7]繪示用以對於對具有「讀值只有X」性質的記憶體位址區域指定要傳回的指定值X之另外間接表格的使用;
[圖8]繪示「讀值只有X」性質之位址相依性變體;
[圖9]繪示標籤檢查操作;及
[圖10]繪示模擬器實例。
28:記憶體管理單元(MMU)/組件
Claims (22)
- 一種設備,其包含: 處理電路系統,用以回應於指令而執行資料處理;及 記憶體管理電路系統,用以基於能夠使記憶體位址空間之一給定頁面與一「讀值只有X」性質相關聯的分頁表資訊來控制對記憶體的存取,該「讀值只有X」性質指示讀取該記憶體位址空間之該給定頁面中的一位址應被視為傳回一指定值X;其中: 對於由該處理電路系統發布的一讀取請求以讀取該記憶體位址空間之一讀取目標區塊的一讀取目標值,回應於判定該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統經組態以控制該指定值X被傳回至該處理電路系統作為該讀取目標值之至少部分。
- 如請求項1之設備,其中對於該「讀值只有X」性質之至少一個變體,回應於判定所有該讀取目標區塊對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統經組態以抑制發布用於從一快取記憶體或該記憶體讀取該讀取目標值的一快取存取請求或記憶體存取請求。
- 如請求項1及2中任一項之設備,其包含標籤檢查電路系統,用以執行一標籤檢查操作以判定與一記憶體存取請求之一目標位址相關聯的一位址標籤是否相對應於與對應於該目標位址之一記憶體系統位置相關聯的一分配標籤,且回應於該標籤檢查操作偵測到該位址標籤與該分配標籤之間的一不匹配而觸發一標籤錯誤處置回應。
- 如請求項3之設備,其中對於用以獲得在該標籤檢查操作中待檢查之一給定分配標籤的一標籤讀取請求,回應於該記憶體管理電路系統判定對應於該給定分配標籤的一頁面與該「讀值只有X」性質相關聯: 該記憶體管理電路系統經組態以控制該指定值X被傳回作為該給定分配標籤;及 該標籤檢查電路系統經組態以使用用於該給定分配標籤的該指定值X來執行該標籤檢查操作。
- 如前述請求項3中任一項之設備,其中該「讀值只有X」性質能夠對於下列兩者指定: 用於儲存資料的該記憶體位址空間之一頁面;及 用於儲存分配標籤的該記憶體位址空間之一頁面。
- 如前述請求項中任一項之設備,其中對於該「讀值只有X」性質之至少一個變體,回應於判定該讀取目標區塊對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統經組態以控制該指定值X被傳回至該處理電路系統作為該讀取目標值之部分,且允許發布用於從一快取記憶體或該記憶體讀取該讀取目標值之另一部分的一快取存取請求或記憶體存取請求。
- 如前述請求項中任一項之設備,其中對於該「讀值只有X」性質之至少一個變體,該指定值X係零。
- 如前述請求項中任一項之設備,其中對於該「讀值只有X」性質之至少一個變體,該指定值X係具有所有位元設定為1的一值。
- 如前述請求項中任一項之設備,其中該記憶體管理電路系統經組態以支援對應於該指定值X之不同值的該「讀值只有X」性質之複數個變體。
- 如前述請求項中任一項之設備,其中該記憶體管理電路系統經組態以支援該「讀值只有X」性質之一位址相依性變體,當一給定頁面與該「讀值只有X」性質之該位址相依性變體相關聯時,該指定值X針對其取決於該給定頁面之一位址,使得該記憶體管理電路系統能夠針對與該「讀值只有X」性質之一相同編碼相關聯的記憶體位址空間之不同頁面,選擇不同值作為被傳回作為該讀取目標值的該指定值X。
- 如前述請求項中任一項之設備,其中對於由該處理電路系統發布以將一寫入值寫入至記憶體位址空間之一寫入目標區塊的一寫入請求,回應於判定該寫入目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理電路系統經組態以根據一「讀值只有X」寫入行為來處理該寫入請求; 該「讀值只有X」寫入行為包含下列之一者: 觸發一錯誤之傳訊; 忽略該寫入請求;及 將該寫入值之至少部分轉發至一預定系統位置。
- 如請求項11之設備,其中該預定系統位置包含下列之一者: 一追蹤緩衝區,其用於儲存診斷追蹤資訊; 包含該處理電路系統之一處理器之外的另一處理器;及 一周邊設備。
- 如請求項11及12中任一項之設備,其中該記憶體管理電路系統經組態以支援對應於不同「讀值只有X」寫入行為之「讀值只有X」性質的複數個變體。
- 如前述請求項中任一項之設備,其中當對應於該給定頁面的一分頁表項目之一欄位具有指示該「讀值只有X」性質之一編碼時,該記憶體管理電路系統經組態以判定該給定頁面具有該「讀值只有X」性質。
- 如請求項1至13中任一項之設備,其中當對應於該給定頁面之一分頁表項目指定選取指示一間接表格之一所選取項目的值之一間接表格項目且該間接表格之該所選取項目具有識別該「讀值只有X」性質的一編碼時,該記憶體管理電路系統經組態以判定該給定頁面具有該「讀值只有X」性質。
- 如請求項15之設備,其中該記憶體管理電路系統經組態以針對對應於該「讀值只有X」性質之不同變體的該間接表格中之該所選取項目,支援至少兩個不同編碼。
- 如請求項16中任一項之設備,其中該記憶體管理電路系統經組態以基於一另外間接表格中的一另外項目之一編碼而判定該給定頁面的該指定值X,該另外項目由該間接表格的該所選取項目之一編碼指示。
- 如前述請求項中任一項之設備,其中對應於該記憶體位址空間之一給定頁面的一給定分頁表項目指定一位址映射欄位; 當該給定頁面不與該「讀值只有X」性質相關聯時,該記憶體管理電路系統經組態以使用該給定分頁表項目之該位址映射欄位以執行位址轉譯;及 當該給定頁面與該「讀值只有X」性質相關聯時,該記憶體管理電路系統經組態以使用該給定分頁表項目之該位址映射欄位以用於位址轉譯之外的一目的。
- 如請求項18之設備,其中當該給定頁面與該「讀值只有X」性質相關聯時,該記憶體管理電路系統經組態以使用該位址映射欄位來指示該指定值X。
- 一種方法,其包含: 回應於指令而執行資料處理;及 基於能夠使記憶體位址空間之一給定頁面與一「讀值只有X」性質相關聯的分頁表資訊來控制對記憶體的存取,該「讀值只有X」性質指示讀取該記憶體位址空間之該給定頁面中的一位址應被視為傳回一指定值X;其中: 對於由該處理電路系統發布的一讀取請求以讀取該記憶體位址空間之一讀取目標區塊的一讀取目標值,回應於判定該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該指定值X被傳回至該處理電路系統作為該讀取目標值之至少部分。
- 一種用以控制一主機資料處理設備以提供用於目標程式碼的執行的一指令執行環境的電腦程式;該電腦程式包含: 指令解碼程式邏輯,用以解碼該目標碼的指令以回應於該目標碼的該等指令而控制該主機資料處理設備執行資料處理;及 記憶體管理程式邏輯,用以基於能夠使一模擬記憶體位址空間之一給定頁面與一「讀值只有X」性質相關聯的分頁表資訊來控制對該模擬記憶體位址空間的存取,該「讀值只有X」性質指示讀取該模擬記憶體位址空間之該給定頁面中的一位址應被視為傳回一指定值X;其中: 對於用以讀取該模擬記憶體位址空間之一讀取目標區塊之一讀取目標值的一讀取請求,回應於判定該讀取目標區塊之至少部分對應於與該「讀值只有X」性質相關聯的一頁面,該記憶體管理程式邏輯經組態以控制該指定值X被傳回作為該讀取目標值之至少部分。
- 一種儲存媒體,其儲存如請求項21的電腦程式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2203646.1 | 2022-03-16 | ||
GB2203646.1A GB2616643B (en) | 2022-03-16 | 2022-03-16 | Read-as-X property for page of memory address space |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202403562A true TW202403562A (zh) | 2024-01-16 |
Family
ID=81254766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112105760A TW202403562A (zh) | 2022-03-16 | 2023-02-17 | 用於記憶體位址空間之頁面的「讀值只有x」性質 |
Country Status (4)
Country | Link |
---|---|
GB (1) | GB2616643B (zh) |
IL (1) | IL314979A (zh) |
TW (1) | TW202403562A (zh) |
WO (1) | WO2023175289A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9489313B2 (en) * | 2013-09-24 | 2016-11-08 | Qualcomm Incorporated | Conditional page fault control for page residency |
US20160019168A1 (en) * | 2014-07-18 | 2016-01-21 | Qualcomm Incorporated | On-Demand Shareability Conversion In A Heterogeneous Shared Virtual Memory |
US11139967B2 (en) * | 2018-12-20 | 2021-10-05 | Intel Corporation | Restricting usage of encryption keys by untrusted software |
-
2022
- 2022-03-16 GB GB2203646.1A patent/GB2616643B/en active Active
- 2022-12-20 IL IL314979A patent/IL314979A/en unknown
- 2022-12-20 WO PCT/GB2022/053304 patent/WO2023175289A1/en unknown
-
2023
- 2023-02-17 TW TW112105760A patent/TW202403562A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
GB202203646D0 (en) | 2022-04-27 |
GB2616643B (en) | 2024-07-10 |
IL314979A (en) | 2024-10-01 |
GB2616643A (en) | 2023-09-20 |
WO2023175289A1 (en) | 2023-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112602069B (zh) | 用于数据处理的装置、方法和计算机可读存储介质 | |
US11138128B2 (en) | Controlling guard tag checking in memory accesses | |
JP7445431B2 (ja) | 命令の実行を制御する装置および方法 | |
CN112639750B (zh) | 用于控制存储器存取的装置及方法 | |
KR20230017832A (ko) | Tag 체킹 장치 및 방법 | |
JP7349437B2 (ja) | メモリ・アクセスにおける保護タグ・チェックの制御 | |
US20240202139A1 (en) | Technique for constraining access to memory using capabilities | |
TW202403562A (zh) | 用於記憶體位址空間之頁面的「讀值只有x」性質 | |
CN118843857A (zh) | 用于存储器地址空间的页面的“读值只有x”性质 | |
US20240193101A1 (en) | Technique for constraining access to memory using capabilities | |
TW202340955A (zh) | 使用能力約束記憶體存取之技術 | |
CN111527480A (zh) | 数据处理装置中的地址转换 |