TW202008173A - 處理保護標籤損失 - Google Patents

處理保護標籤損失 Download PDF

Info

Publication number
TW202008173A
TW202008173A TW108123707A TW108123707A TW202008173A TW 202008173 A TW202008173 A TW 202008173A TW 108123707 A TW108123707 A TW 108123707A TW 108123707 A TW108123707 A TW 108123707A TW 202008173 A TW202008173 A TW 202008173A
Authority
TW
Taiwan
Prior art keywords
protection
tag
memory access
label
memory
Prior art date
Application number
TW108123707A
Other languages
English (en)
Other versions
TWI801622B (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 TW202008173A publication Critical patent/TW202008173A/zh
Application granted granted Critical
Publication of TWI801622B publication Critical patent/TWI801622B/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; 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/1004Compatibility, e.g. with legacy hardware
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

揭示了一種包括記憶體存取電路以回應於接收到之目標位址來執行標籤保護之記憶體存取的裝置,以及操作該裝置之方法。在該標籤保護之記憶體存取中,保護標籤擷取操作尋求擷取與一或多個記憶體位置之區塊相關聯地儲存的保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的經定址位置,且保護標籤檢查操作比較與該接收到之目標位址相關聯的位址標籤與藉由該保護標籤擷取操作擷取的該保護標籤。當該保護標籤擷取操作在擷取該保護標籤中不成功時,將替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯的該保護標籤,該等記憶體位置包括由該目標位址識別出之該經定址位置。

Description

處理保護標籤損失
本發明技術關於資料處理之領域。
資料處理系統可使用藉由提供保護標籤來防止某些使用錯誤之技術,該等保護標籤是與一或多個記憶體位置之區塊相關聯地儲存在記憶體系統中。當對記憶體系統存取時,可比較與記憶體存取相關聯之位址標籤與自記憶體系統擷取之保護標籤,且藉由該兩者之間的比較來識別記憶體使用錯誤。相反,該兩者之間的匹配可指示記憶體且特定而言為相關記憶體位置被正確地使用。
至少一些實例提供一種裝置,該裝置包括:記憶體存取電路,該記憶體存取電路用以回應於接收到之目標位址執行標籤保護之記憶體存取,該標籤保護之記憶體存取包括保護標籤擷取操作,該保護標籤擷取操作擷取與一或多個記憶體位置之區塊相關聯地儲存之保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的經定址位置;以及保護標籤檢查操作,該保護標籤檢查操作比較與該接收到之目標位址相關聯的位址標籤與藉由該保護標籤擷取操作擷取之該保護標籤,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤時不成功,以導致將替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出之該經定址位置。
至少一些實例提供一種方法,該方法包括回應於接收到之目標位址執行標籤保護之記憶體存取,該標籤保護之記憶體存取包括以下步驟:擷取與一或多個記憶體位置之區塊相關聯地儲存之保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的經定址位置;以及比較與該接收到之目標位址相關聯的位址標籤與在該擷取步驟中擷取的該保護標籤,以及,當該保護標籤擷取操作在擷取該保護標籤中不成功時,導致將替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出的該經定址位置。
至少一些實例提供一種電腦程式,該電腦程式用於控制主機資料處理裝置以提供用於執行目標程式碼之指令的指令執行環境,該電腦程式包括記憶體存取邏輯,該記憶體存取邏輯用以回應於接收到之目標位址執行標籤保護之記憶體存取,該標籤保護之記憶體存取包括保護標籤擷取操作,該保護標籤擷取操作用以擷取與一或多個記憶體位置之區塊相關聯地儲存的保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的經定址位置;以及保護標籤檢查操作,該保護標籤檢查操作比較與該接收到之目標位址相關聯的位址標籤與藉由該保護標籤擷取操作擷取之該保護標籤,其中該記憶體存取邏輯回應該保護標籤擷取操作在擷取該保護標籤中不成功,以導致將替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出之該經定址位置。
一種可儲存上述電腦程式之儲存媒體。該儲存媒體可為非暫時性之儲存媒體。
在本文中之一個實例中,存在一種裝置,該裝置包括:記憶體存取電路,該記憶體存取電路用以回應於接收到之目標位址執行標籤保護之記憶體存取,該標籤保護之記憶體存取包括保護標籤擷取操作,該保護標籤擷取操作擷取與一或多個記憶體位置之區塊相關聯地儲存之保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的經定址位置;以及保護標籤檢查操作,該保護標籤檢查操作比較與該接收到之目標位址相關聯的位址標籤與藉由該保護標籤擷取操作擷取之該保護標籤,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤中不成功,以導致將替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出之該經定址位置。
在支援標籤保護之記憶體存取的資料處理系統中,記憶體存取電路可決定與記憶體存取相關聯之位址標籤是否匹配與記憶體存取所定址之記憶體位置相關聯地儲存的保護標籤。然而,本發明技術認識到,存在不保證與彼記憶體位置相關聯地儲存之保護標籤之可用性的情況。舉例而言,在支援標籤保護之記憶體存取的一些方法中,可與快取記憶體中之資料相關聯地產生並儲存保護標籤,但不與持久性記憶體中所儲存之資料相關聯。舉例而言,可能出於向後兼容性之原因而採取此方法,因為記憶體系統可能不支援與資料值相關聯之保護標籤的額外儲存,或者是出於儲存經濟的原因,其中決定持久地儲存與資料值相關聯之保護標籤所需要的額外儲存空間不被認為是合理的。然而,此因而意謂在包括經佈置以執行標籤保護之記憶體存取之記憶體存取電路的裝置中,作為彼標籤保護之記憶體存取電路的一部分之保護標籤的可用性可變化。本發明技術藉由提供記憶體存取電路而解決了此問題,當保護標籤不可用(且因而保護標籤擷取操作不成功)時,該記憶體存取電路導致與(若干)相關記憶體位置相關聯地儲存替代保護標籤值。可以各種方式配置對替代保護標籤值之儲存,特定而言是在選定彼替代保護標籤值是什麼方面,且此提供了系統配置之可用靈活性。對替代保護標籤值之選擇亦使得記憶體存取電路能夠接著影響在後續記憶體存取操作中如何處理資料值及其相關聯之保護標籤。
可以各種方式定義替代保護標籤值,但在一些實施例中,該替代保護標籤值經選定以匹配與在保護標籤檢查操作中接收到之目標位址相關聯的位址標籤。此因此意謂使用並提供同一位址標籤對同一目標位址之後續記憶體存取將因而亦匹配。應注意,對位址標籤與保護標籤之前的匹配的定義可變化,且對於待決定之匹配而言,整個保護標籤可能未必匹配整個位址標籤。然而,在一些實施例中,可能要求該兩者相同。鑒於此,在一些實施例中,替代保護標籤值為與接收到之目標位址相關聯的位址標籤。
假設大部分記憶體存取是合法地執行(亦即,預期位址標籤匹配保護標籤),可採用此種以位址標籤之值來替換丟失之保護標籤值(或至少使得該兩者將被決定為匹配)的方法,且因此在大多數情況下,此方法將藉由保護標籤之正確值基本上「修復」該保護標籤。然而,即使導致替代保護標籤值之儲存的記憶體存取實際上不正確(亦即,在已找到該正確之保護標籤值的情況下,所提供之位址標籤尚不匹配正確之保護標籤值),仍可在對同一記憶體位置之下一次存取時識別出此不匹配,因為提供自己之位址標籤的後續存取將因而不匹配,且後續標籤保護之記憶體存取的此失敗可在需要時觸發重新評估保護標籤應是什麼及其校正。
藉由向處理器設備(其可執行軟體以決定正確之保護標籤值)傳訊標籤保護之記憶體存取的失敗,決定保護標籤值應是什麼之可(例如)為有可能的。或者,可為如下情形:保護標籤值之備份被儲存在次要位置處,且可接著被存取,以便在使得保護標籤之正確值被作為替代保護標籤值儲存之前決定保護標籤之正確值應是什麼。因此,在一些實施例中,記憶體存取電路回應保護標籤擷取操作在擷取保護標籤中不成功,以便起始對保護標籤之先前定義值作為替代保護標籤值的決定。
如上所述,對保護標籤之先前定義值的決定可藉由軟體執行,且因此在一些實施例中,記憶體存取電路回應保護標籤擷取操作在擷取保護標籤方面不成功,以便使裝置之指令執行電路採取異常,其中指令執行電路回應該異常以執行保護標籤修復異常常用程式,該保護標籤修復異常常用程式包括決定保護標籤之先前定義值。
在標籤保護之記憶體存取包括保護標籤檢查操作(其中比較位址標籤與保護標籤)的情況下,可提供機構以在保護標籤擷取操作不成功之情形下影響彼比較之結果。在一些實施例中,記憶體存取電路回應保護標籤擷取操作在擷取保護標籤中不成功,以便決定保護標籤檢查操作之結果為在與接收到之目標位址相關聯的位址標籤與保護標籤之間建立匹配。因此,當保護標籤擷取操作不成功且因此不可能進行(丟失)保護標籤與位址標籤之間的比較時,此提供:儘管記憶體存取電路仍可決定已在位址標籤與保護標籤之間建立了匹配,使得裝置中之使用保護標籤檢查之結果的後續機構可繼續像已發現了匹配那樣操作。
可以各種方式達成保護標籤檢查操作之此重寫,諸如,對保護標籤檢查操作之輸出的顯式重寫,但在一些實施例中,記憶體存取電路回應保護標籤擷取操作在擷取保護標籤中不成功,以將保護標籤視為具有預定之全匹配特性,使得在與接收到之目標位址相關聯的位址標籤與保護標籤之間建立了匹配。因此,在已定義之保護標籤值的範圍內,特定之保護標籤值可用以意謂「全匹配」,亦即,此將被決定為與任何與之相比較的位址標籤值匹配。可接著在保護標籤擷取操作不成功的情形下將此特定保護標籤值用作替代保護標籤值,或者保護標籤檢查可經配置以使得在保護標籤擷取操作不成功的情形下再現它所產生的用於與全匹配進行比較的回應。
預定之全匹配特性可為保護標籤之特定值,或可為與保護標籤相關聯之資訊的額外項。因此,在一些實施例中,預定全匹配特性為保護標籤之預定值,而在其他實施例中,預定全匹配特性為與保護標籤相關聯之一組全匹配旗標的存在。
當保護標籤擷取操作在擷取保護標籤中不成功時,可以某種方式俘獲此資訊,且因此在一些實施例中,記憶體存取電路回應保護標籤擷取操作在擷取保護標籤中不成功,以產生丟失保護標籤之指示。可接著以各種方式使用此丟失保護標籤之指示,以觸發特別期望之回應,抑或(例如)累積與保護標籤之丟失有關的統計值。
因而,在一些實施例中,記憶體存取電路經佈置以與接收到之目標位址相關聯地儲存丟失保護標籤之指示。因此,可明確地將記憶體存取之目標標記為已丟失了其保護標籤。
在一些實施例中,記憶體存取電路經佈置以向處理器單元傳訊丟失保護標籤之指示。處理器單元可接著以適當方式回應或監視。
在一些實施例中,記憶體存取電路回應保護標籤擷取操作在擷取保護標籤中不成功,以增加丟失保護標籤之計數器。此丟失保護標籤之計數器可因此累積關於有多頻繁地丟失保護標籤之統計值。可適當地在系統中之多種位置處提供此丟失保護標籤之計數器,無論是在記憶體存取電路自身內抑或別處。
本發明技術認識到,執行標籤保護之記憶體存取可能並非對記憶體存取電路可接收之所有記憶體存取均為適當的,且因此在一些實施例中,記憶體存取電路回應提供接收到之目標位址之記憶體存取的特性,以選擇性地執行以下各者中之一者:標籤保護之記憶體存取;及無標籤保護之記憶體存取。
可以各種方式定義導致執行標籤保護之記憶體存取或無標籤保護之記憶體存取的特性,但在一些實施例中,記憶體存取之該特性包括以下各者中之至少一者:產生記憶體存取之請求者的類型;產生記憶體存取之請求者的特權級別;及接收到之目標位址。
在一些實施例中,記憶體存取之特性包括記憶體存取形成推測資料處理之一部分的指示,且記憶體存取電路回應記憶體存取形成推測資料處理之一部分的該指示,以執行無標籤保護之記憶體存取。舉例而言,可決定本發明技術的標籤保護之記憶體存取以及其用替代保護標籤值修改保護標籤的能力在推測資料處理之情況中可能並非適當的。
記憶體存取電路回應由推測資料處理觸發之記憶體存取的此種保守方法可能更特定是在記憶體存取電路自身內,因為允許進行標籤保護之記憶體存取,即使該記憶體存取形成了推測資料處理之一部分,但不允許對保護標籤值之修改,且因此在一些實施例中,記憶體存取電路回應記憶體存取形成推測資料處理之一部分的指示,以防止將替代保護標籤值儲存為與一或多個記憶體位置之區塊相關聯地儲存的保護標籤,該等記憶體位置包括由目標位址識別出的已定址位置。
在一些實例中,存在一種方法,該方法包括:回應於接收到之目標位址執行標籤保護之記憶體存取,該標籤保護之記憶體存取包括以下步驟:擷取與一或多個記憶體位置之區塊相關聯地儲存之保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的經定址位置;以及比較與該接收到之目標位址相關聯的位址標籤與在該擷取步驟中擷取的該保護標籤,以及,當該保護標籤擷取操作在擷取該保護標籤中不成功時,導致將替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出的該經定址位置。
在一些實例中,存在一種電腦程式,該電腦程式用於控制主機資料處理裝置以提供用於執行目標程式碼之指令的指令執行環境,該電腦程式包括記憶體存取邏輯,該記憶體存取邏輯用以回應於接收到之目標位址執行標籤保護之記憶體存取,該標籤保護之記憶體存取包括保護標籤擷取操作,該保護標籤擷取操作用以擷取與一或多個記憶體位置之區塊相關聯地儲存的保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的經定址位置;以及保護標籤檢查操作,該保護標籤檢查操作比較與該接收到之目標位址相關聯的位址標籤與藉由該保護標籤擷取操作擷取之該保護標籤,其中該記憶體存取邏輯回應該保護標籤擷取操作在擷取該保護標籤中不成功,以導致將替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出之該經定址位置。
在一些實施例中,存在一種儲存上述電腦程式之儲存媒體,其中此儲存媒體可為非暫時儲存媒體。
現參考諸圖描述一些特定實施例。
圖1示意性地圖示資料處理裝置2之實例。應瞭解,此為該裝置之元件之子集的概括性表示,且該裝置可包括許多未圖示之其他元件。裝置2包括處理電路4,該處理電路4用於回應於指令解碼器6所解碼之指令執行資料處理。指令解碼器6解碼取自指令快取記憶體8之指令,以產生控制信號10,該等控制信號10用於控制處理電路4以執行指令所表示之對應處理操作。處理電路4可包括一或多個執行單元,該一或多個執行單元用於對儲存於暫存器14中之值執行操作,以產生將被寫回至暫存器之結果值。舉例而言,執行單元可包括執行算術運算或邏輯運算之算術/邏輯單元(arithmetic/logic unit; ALU)、用於使用浮點運算元執行運算之浮點單元,及/或用於對包括多個獨立資料元件之運算元執行向量運算的向量處理單元。處理電路亦包括記憶體存取電路(例如,包括載入/儲存單元)15,該記憶體存取電路15用於控制資料在暫存器14與記憶體系統之間的傳送。在此實例中,記憶體系統包括指令快取記憶體8、1級(L1)資料快取記憶體16、在資料與指令之間共享的2級(L2)快取記憶體17,及主記憶體18。將瞭解,其他快取記憶體架構亦為可能的——此僅為一個實例。提供記憶體管理單元(memory management unit; MMU)20,用於提供位址轉譯功能以支援由載入/儲存單元15觸發之記憶體存取。MMU具有轉譯旁看緩衝器(translation lookaside buffer; TLB)22,該轉譯旁看緩衝器(TLB)22用於自儲存於記憶體系統16、17、18之頁表快取條目之子集。每一頁表條目可為位址之對應頁面提供位址轉譯映射,且亦可指定存取控制參數,諸如,指定該頁面為唯讀區域還是既可讀又可寫入的存取權限,或指定那些特權級別可存取該頁面之存取權限。
圖2示意性地圖示標籤保護之記憶體存取的概念。用以指代記憶體系統內之記憶體位置的實體位址空間可在邏輯上被劃分為諸多區塊30,每一區塊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相關聯)及與記憶體位置30(其包括經定址位置44)之區塊相關聯的保護標籤32。舉例而言,在圖2中,目標位址42指向記憶體中之某一位置B1,在圖2之位址空間中標記為44。因此,比較與位置B(包括位置B1)之區塊相關聯的保護標籤B及與目標位址42相關聯之位址標籤40。如圖2之頂部中所示,位址標籤40可被決定為目標位址自身之選定位元的函數。詳言之,可自目標位址之一部分內的位元來決定位址標籤,該部分不用於指示將被選定作為經定址位置44之特定記憶體位置。舉例而言,在一些架構中,目標位址之位元的頂部部分可總是具有某一固定值,諸如,簽名擴展名(皆為0或皆為1),且因而可藉由以任意標籤值覆蓋此些未使用之位元用位址標籤40對位址加標籤。舉例而言,該特定位址標籤值可由程式設計師或編譯器選定。位址標籤及保護標籤32可為相對較小數目個位元,例如,4個位元,且因而不需要佔用記憶體內及目標位址內的太多空間。提供4個位元之標籤空間(亦即,標籤之16個可能的值)可時常足以偵測許多常見類型之記憶體存取錯誤。
因而,當執行標籤保護之記憶體存取時,在位址標籤40及與包括經定址位置44之區塊30相關聯的保護標籤32之間進行比較,且進行關於其是否匹配之決定。應注意,在圖1之實例配置中,該比較可在載入/儲存單元15與實體記憶體18之間任一處執行(且確實可沿著彼路徑分佈)。然而,在此實例中,為了簡單起見,將該比較描述為其是由載入/儲存單元15執行。載入/儲存單元15產生指示位址標籤40與保護標籤32是否匹配之匹配指示。舉例而言,此匹配指示可為故障信號60,該故障信號60是在位址標籤40與保護標籤32之間存在不匹配時產生;或指示是否存在匹配的被置於狀態寄存器中之指示;或條目,該條目被添加至錯誤報告以指示被偵測出錯誤之位址及/或觸發了錯誤之指令的指令位址。
圖3示出用於處理標籤保護之記憶體存取的流程圖。觸發記憶體存取之指令可指定位址標籤及目標位址。如圖2中所示,在一些情形下,位址標籤可實際上自目標位址自身之位元的子集導出,儘管在其他實例中可在單獨之暫存器中指定位址標籤。在步驟50處,遇到觸發標籤保護之記憶體存取的指令。作為回應,在步驟52處,記憶體存取電路15觸發對由目標位址所識別之經定址位置44的記憶體存取。又,在步驟54處,記憶體存取電路15獲得保護標籤32,該保護標籤32是與記憶體位置30之區塊相關聯地儲存在記憶體系統中,該等記憶體位置包括由目標位址所識別之經定址位置44。在步驟56處,記憶體存取電路15比較位址標籤40與在步驟54處所獲得之保護標籤32。在步驟58處,記憶體存取電路15產生是否在保護標籤與位址標籤之間偵測到匹配的指示(例如,上述任何類型之匹配/不匹配報告指示)。用以報告任何不匹配之精確指示可隨著實施而變化。
圖4A示意性地圖示快取記憶體100及另一快取記憶體或記憶體105。示出快取記憶體100中之快取列102,該快取列102可被逐出至另一快取記憶體或記憶體105,且當再次需要該快取列中之資料時,來自另一快取記憶體或記憶體105之填充可使快取列102再次被分配在快取記憶體100中。將快取列102示出為包括資料105及相關聯之保護標籤103。注意,此個別快取列102實際上包括資料及相關聯保護標籤之四個項。此些項亦存在於等效資料108中(在105為另一快取記憶體之情況下等效資料108亦為另一快取列)。將圖4A之圖示與圖4B之圖示相比較,圖4B之圖示表示不同的快取記憶體110及不同的另一快取記憶體或記憶體112。快取記憶體之內容與圖4A中相同,亦即,快取列102包括保護標籤103及資料104。然而,如圖4B中所示,逐出此快取列102導致保護標籤103之丟失,且確實為丟失來自此快取列102之所有保護標籤,因為另一快取記憶體或記憶體112未配置成儲存保護標籤。因而,等效資料項114僅包括同一資料項104及三個另外資料項(在圖4B之此圖示中未被填入)。因此,當記憶體存取再次需要此資料104且在填充操作中將其提升至快取記憶體110時,接著丟失了先前存在之保護標籤103,且快取列102將在無保護標籤103之情況下存在於快取記憶體110中。
圖5示意性地圖示記憶體存取電路120,該記憶體存取電路120經佈置以回應於接收到之目標位址執行標籤保護之記憶體存取。記憶體存取電路120包括資料存取電路122、保護標籤擷取電路124及保護標籤檢查電路126。作為記憶體存取之一部分,當記憶體存取電路120接收到目標位址時,該等目標位址導致資料存取電路122及保護標籤擷取電路124尋求存取快取記憶體/記憶體系統130中之相關資料值及保護標籤。應注意,為了論述清楚,在圖5之圖示中單獨地表示資料存取電路122及保護標籤擷取電路124,但如圖4A及圖4B之論述已圖示,對給定資料值及保護標籤之存取可實際上包括對給定快取記憶體中之單個快取列的存取。此外,圖5之圖示允許如下事實:可不將資料值及保護標籤值儲存為如圖4A之實例中那樣(在單個快取列內)彼此緊密相關聯,而亦可將其儲存在整個單獨的實體位置中。然而,雖然儲存了保護標籤及資料值,保護標籤擷取操作電路仍存取快取記憶體/記憶體系統130,且保護標籤檢查電路126接收回應。當成功擷取保護標籤時,比較該保護標籤與接收到之位址標籤,且產生保護標籤檢查結果。可以各種方式使用此保護標籤檢查結果,諸如,向處理器(其可能是或可能不是記憶體存取之來源)傳訊。在記憶體存取為載入之情況下,亦可自快取記憶體/記憶體系統130返回該資料。
圖6A示意性地圖示保護標籤檢查電路131之實例實施例。在此,保護標籤檢查電路131包括比較電路134、保護標籤擷取電路135,及替代保護標籤儲存器137。比較電路133經佈置以決定擷取之保護標籤與位址標籤是否匹配,且產生保護標籤檢查結果。應注意,位址標籤與擷取之保護標籤之間的匹配可能需要該兩者等同,或在一些實施方式中,可能存在(例如)多位元值之一些位元,該等位元形成位址標籤及保護標籤中之一者或兩者的一部分,但不需要匹配。將由保護標籤擷取電路135自快取記憶體/記憶體系統139擷取的保護標籤傳遞至比較電路133,以決定擷取之保護標籤與位址標籤是否匹配。在保護標籤擷取失敗之情況下,保護標籤擷取電路135將此傳訊至替代保護標籤儲存器137。作為回應,保護標籤檢查電路131導致將替代保護標籤與相關記憶體位址(或若干位址)相關聯地儲存在快取記憶體/記憶體系統139中。應注意,該替代保護標籤值可為預定值(例如,每當發現任何保護標籤值「丟失」時就使用該預定值)。在一些實例中,此預定值可為「全匹配」值,其用於保護標籤檢查中以指示將發現任何接收到之位址標籤皆與之匹配的值。
然而,在一些實例中,保護標籤檢查電路131經佈置以使用(如圖6A中之虛線所示)接收到之位址標籤(且應比較保護標籤與該位址標籤)作為替代保護標籤。因此,在此佈置中,當保護標籤擷取失敗時(亦即,當保護標籤值為「丟失」時),保護標籤檢查電路131導致將記憶體存取之位址標籤與相關記憶體位址(或若干位址)相關聯地儲存在快取記憶體/記憶體系統139中。另外,在此佈置中(亦如圖6A中之虛線所示),亦可將替代保護標籤提供至比較電路133之其保護標籤輸入。此因此提供將作為記憶體存取之一部分接收的位址標籤與預定替代值抑或位址標籤自身進行比較。可建立預定替代值及比較電路133以使得獲得保護標籤檢查結果之特定輸出(例如,強制「匹配」輸出,替代地產生「保護標籤丟失」輸出,等等)。最終,然而應注意,保護標籤檢查電路131亦接收記憶體存取是否為推測的指示。保護標籤檢查電路131可經佈置而以多種方式回應記憶體存取為推測之指示,但設想之一個特定配置是當記憶體存取為推測時,保護標籤檢查電路131防止將替代保護標籤值儲存在快取記憶體/記憶體系統139中。
圖6B示意性地圖示保護標籤檢查電路之一些組件的一個實例實施例。在此,保護標籤檢查電路132包括比較電路134及重寫電路135。比較電路134經佈置以決定擷取之保護標籤與位址標籤是否匹配,且產生保護標籤檢查結果。應注意,位址標籤與擷取之保護標籤之間的匹配可能需要該兩者等同,或在一些實施方式中,可能存在(例如)多位元值之一些位元,該等位元形成位址標籤及保護標籤中之一者或兩者的一部分,但匹配非必需。重寫電路135接收保護標籤擷取已失敗之信號。此可為來自快取記憶體/記憶體系統的源於試圖進行保護標籤擷取的顯式信號;或可為(例如)在由於保護標籤擷取而預期在記憶體存取電路內暫時地保持保護標籤值之情況下未找到保護標籤值的指示;或可確實為指示保護標籤之丟失的顯式值。然而,若決定了此信號,則重寫電路135在保護標籤擷取失敗之情況下向比較電路134提供信號,且此導致比較電路134產生保護標籤檢查結果,好像位址標籤與擷取之保護標籤確實匹配一樣。
圖7A示意性地圖示保護標籤檢查電路之一些組件的變體,其中保護標籤檢查電路140包括保護標籤比較控制器141、比較電路142及保護標籤儲存電路143。當成功地擷取保護標籤時,保護標籤被暫時地儲存於保護標籤儲存器143中,且比較電路142接著比較此保護標籤與接收到之位址標籤,以產生保護標籤檢查結果。然而,在存在保護標籤擷取失敗之情況下,此資訊由保護標籤比較控制器142接收,該保護標籤比較控制器142接著導致接收到之位址標籤被儲存在保護標籤儲存器143中。因此,當比較電路142執行其比較時,其正比較位址標籤與其自身,且保護標籤檢查結果指示發現匹配。
圖7B示意性地圖示保護標籤檢查電路之一些組件的變體。在此,保護標籤檢查電路150包括保護標籤比較控制器151、比較電路152、保護標籤儲存器153,及在保護標籤比較控制器152內之替代值儲存器154。當成功地擷取保護標籤並暫時地儲存於保護標籤儲存器153中時,由比較電路152將此保護標籤與接收到之位址標籤進行比較,且產生保護標籤檢查結果。然而,在保護標籤擷取失敗之情況下,保護標籤比較控制器導致替代所擷取之保護標籤而使用替代值154,並將此值置於保護標籤儲存器153中。因此,在保護標籤擷取失敗之情況下,比較電路152比較接收到之位址標籤與替代值154。可以各種方式配置此替代值154,例如,為預定義之「全匹配」值,比較電路152經配置以使該預定義之「全匹配」值絕對匹配接收到之任何位址標籤。
圖8A示意性地圖示一個實施例中之快取記憶體160,其中快取列進一步擴展成不僅包括相關資料值及其相關聯之保護標籤,而且進一步提供與每一保護標籤相關聯之額外位元,藉助於該額外位元可指示保護標籤已丟失。此些額外位元由圖7A中之陰影塊圖示。因此,當保護標籤丟失時,可與此資料值相關聯地維持對此之指示,以便在將來之保護標籤檢查中對其進行不同處理。舉例而言,當對具有此丟失保護標籤之旗標集合的資料值存取時,保護標籤檢查可被重寫。
圖8B圖示其中將快取記憶體170示出為包括快取列之變體,在該快取列中資料值是與保護標籤相關聯地被儲存,其中保護標籤之特定值N用以指示丟失之標籤,而任何其他值(!N)指示此保護標籤尚未丟失而是此為常見狀況且為可用之標籤值。
圖9為示出在一個方法實施例中所採取之一系列步驟的流程圖。在步驟200處,讀取保護標籤,且在步驟201處,決定保護標籤是否已丟失(亦即,是否無法讀取保護標籤)。若並非如此,且保護標籤已被成功讀取,則在步驟202處,決定標籤是否匹配,亦即,已讀取之保護標籤是否匹配觸發此保護標籤檢查之記憶體存取的位址標籤。若標籤的確匹配,則流程進行至步驟206,此處執行記憶體存取(因此,視記憶體存取之本質而定,載入資料抑或儲存資料)。若標籤不匹配,則在步驟203處,檢查是否由於此不匹配而產生故障。若並未如此,則流程亦進行至步驟206。若回應於不匹配會產生故障,則此在步驟204處發生。返回步驟201之考慮,若發現標籤已丟失,則流程進行至步驟205,此處將(記憶體存取之)位址標籤寫入至保護標籤。因而,丟失之保護標籤被位址標籤替代。流程接著繼續步驟206,執行記憶體存取(載入或儲存)。應進一步注意,如藉由(*)突出顯示,在步驟205及206中之每一者中,此些步驟之次序可與圖示之次序相反。換言之,可在寫入位址標籤作為替代保護標籤之前執行記憶體存取。然而,在一些系統中,可能限制可多晚發生標籤寫入。
圖10A示意性地圖示一個實例實施例中之記憶體存取電路201,其中形成記憶體存取電路之一部分的保護標籤檢查電路211接收記憶體存取會否為推測之指示,以及記憶體存取自身。保護標籤檢查電路211回應記憶體存取為推測之指示,以抑制其針對記憶體存取之操作,使得發生對記憶體系統212之未經保護標籤檢查的記憶體存取。更一般而言,圖10B示意性地圖示一個實例實施例中之記憶體存取電路220,其中形成記憶體存取電路之一部分的保護標籤檢查電路221接收記憶體存取之存取特性,以及記憶體存取自身。該存取特性可(例如)為產生了記憶體存取之請求者類型之指示、產生了記憶體存取之請求者的特權級別、接收到之目標位址的指示,等等。視存取特性之特定類型及保護標籤檢查電路221之配置而定,保護標籤檢查電路221回應存取特性,以抑制其對記憶體存取之操作,使得發生未經保護標籤檢查之記憶體存取。因此,可使得保護標籤檢查且特定而言是本文中所揭示之用於回應保護標籤之丟失的技術僅能夠對於某些類型之記憶體存取或記憶體存取之來源而賦能。
圖11圖示可使用之模擬器實施方式。雖然前述實施例在用於操作支援相關技術之特定處理硬體的裝置及方法方面實施了本發明,但亦有可能根據本文所述實施例提供指令執行環境,該指令執行環境是經由使用電腦程式來實施。可時常將該等電腦程式稱作模擬器,只要其提供硬體架構的基於軟體之實施方式即可。模擬器電腦程式之種類包括仿真機、虛擬機、模型,及二元轉譯器,包括動態二元轉移器。通常,模擬器實施方式可在主機處理器330上運行,可選地運行主機作業系統320,以支援模擬器程式310。在一些佈置中,在硬體與所提供之指令執行環境及/或被提供在同一主機處理器上之多個相異的指令執行環境之間可能存在多個模擬層。從歷史上看,需要強大處理器提供以合理速度執行之模擬器實施方式,但在某些情境下此方法可能是有道理的,諸如,當出於兼容性或重新使用原因而期望運行原生於另一處理器之程式碼時。舉例而言,模擬器實施方式可提供具有額外功能(主機處理器硬體不支援該額外功能)之指令執行環境,或提供通常與不同硬體架構相關聯之指令執行環境。在「某些高效架構模擬技術」(Robert Bedichek,1990年冬天之USENIX會議,第53-63頁)中給出模擬之概述。
既然先前已參考特定硬體構造或特徵描述了實施例,則在模擬實施例中可藉由合適軟體構造或特徵提供等效功能。舉例而言,可在模擬實施例中將特定電路實施為電腦程式邏輯。類似地,可在模擬實施例中將諸如暫存器或快取記憶體之記憶體硬體實施為軟體資料結構。在前述實例實施例中所引用之硬體組件中的一或多者存在於主機硬體(例如,主機處理器330)上的佈置中,一些模擬實施例可在合適情況下使用主機硬體。
可將模擬器程式310儲存在電腦可讀儲存媒體312(其可為非暫時性媒體)上,且該模擬器程式310提供至目標程式碼300(其可包括應用程式、作業系統及超管理器)之程式介面(指令執行環境),該程式介面與藉由模擬器程式310模型化之硬體架構的應用程式介面相同。因此,可使用模擬器程式310自指令執行環境內執行目標程式碼300之程式指令,以使得並不實際上具有上述裝置2之硬體特徵(且特定而言為記憶體存取電路120)的主機電腦330可模擬此些特徵。舉例而言,模擬器程式310可包括用於模擬所述記憶體存取之記憶體存取邏輯314。因此,模擬器程式310亦可包括用於執行對保護標籤與位址標籤之比較的記憶體存取程式邏輯,以報告是否已偵測到保護標籤與位址標籤之間的任何不匹配,並在保護標籤擷取操作不成功時儲存替代保護標籤。
簡而言之,揭示了一種包括記憶體存取電路以回應於接收到之目標位址來執行標籤保護之記憶體存取的裝置,以及操作該裝置之方法。在標籤保護之記憶體存取中,保護標籤擷取操作尋求擷取與一或多個記憶體位置(包括由接收到之目標位址識別出的經定址位置)之區塊相關聯地儲存的保護標籤,且保護標籤檢查操作比較與接收到之目標位址相關聯的位址標籤與藉由保護標籤擷取操作擷取的保護標籤。當保護標籤擷取操作在擷取保護標籤中不成功時,將替代保護標籤值儲存為與一或多個記憶體位置(包括由目標位址識別出之經定址位置)之區塊相關聯的保護標籤。
在本申請案中,詞語「經配置以……」用以意謂裝置之組件具有能夠執行定義操作的配置。在此上下文中,「配置」意謂硬體或軟體之互連的佈置或方式。舉例而言,裝置可具有提供定義操作之專用硬體,或處理器或其他處理設備可經程式化以執行該功能。「經配置以……」並不暗示裝置組件需要以任何方式改變以提供定義操作。
儘管本文中已參考隨附圖式詳細描述了說明性實施例,但應理解,本發明並不限於彼些精確實施例,且熟習此項技藝者可在不脫離由附加申請專利範圍所限定的本發明之範疇的情況下在其中進行各種改變、添加及修改。舉例而言,在不脫離本發明之範疇的情況下可進行從屬項之特徵與獨立項之特徵的各種組合。
2‧‧‧資料處理裝置 4‧‧‧處理電路 6‧‧‧指令解碼器 8‧‧‧指令快取記憶體 10‧‧‧控制信號 14‧‧‧暫存器 15‧‧‧記憶體存取電路 16‧‧‧1級(L1)資料快取記憶體 17‧‧‧2級(L2)快取記憶體 18‧‧‧主記憶體 19‧‧‧額外標籤快取記憶體 20‧‧‧記憶體管理單元(MMU) 22‧‧‧轉譯旁看緩衝器(TLB) 30‧‧‧區塊 32‧‧‧標籤 34‧‧‧不同架構之可存取記憶體位置 40‧‧‧位址標籤 42‧‧‧目標位址 44‧‧‧經定址位置 50‧‧‧步驟 52‧‧‧步驟 54‧‧‧步驟 56‧‧‧步驟 58‧‧‧步驟 60‧‧‧故障信號 100‧‧‧快取記憶體 102‧‧‧快取列 103‧‧‧保護標籤 104‧‧‧資料 105‧‧‧快取記憶體或記憶體 108‧‧‧等效資料 110‧‧‧快取記憶體 112‧‧‧快取記憶體或記憶體 114‧‧‧等效資料項 120‧‧‧記憶體存取電路 122‧‧‧資料存取電路 124‧‧‧保護標籤擷取電路 126‧‧‧保護標籤檢查電路 130‧‧‧快取記憶體/記憶體系統 131‧‧‧保護標籤檢查電路 132‧‧‧保護標籤檢查電路 133‧‧‧比較電路 134‧‧‧比較電路 135‧‧‧保護標籤擷取電路/重寫電路 137‧‧‧替代保護標籤儲存器 139‧‧‧快取記憶體/記憶體系統 140‧‧‧保護標籤檢查電路 141‧‧‧保護標籤比較控制器 142‧‧‧比較電路 143‧‧‧保護標籤儲存電路/保護標籤儲存器 150‧‧‧保護標籤檢查電路 151‧‧‧保護標籤比較控制器 152‧‧‧比較電路 153‧‧‧保護標籤儲存器 154‧‧‧替代值儲存器/替代值 160‧‧‧快取記憶體 170‧‧‧快取記憶體 200‧‧‧步驟 201‧‧‧步驟 202‧‧‧步驟 203‧‧‧步驟 204‧‧‧步驟 205‧‧‧步驟 206‧‧‧步驟 210‧‧‧記憶體存取電路 211‧‧‧保護標籤檢查電路 212‧‧‧記憶體系統 220‧‧‧記憶體存取電路 221‧‧‧保護標籤檢查電路 300‧‧‧目標程式碼 310‧‧‧模擬器程式 312‧‧‧電腦可讀儲存媒體 314‧‧‧記憶體存取邏輯 320‧‧‧主機作業系統 330‧‧‧主機處理器
僅藉由實例,將參考在隨附圖式中所圖示的本發明技術之實施例來進一步描述本發明技術,以便結合以下描述進行閱讀,其中: 圖1示意性地圖示資料處理裝置之實例; 圖2示出包括檢查位址標籤是否匹配保護標籤的標籤保護之記憶體存取操作的實例; 圖3為示出執行標籤保護之記憶體存取操作之方法的流程圖; 圖4A示意性地圖示儲存在快取記憶體中之快取列,該快取列可被逐出至另一快取層級或記憶體,並在填充操作中返回至快取記憶體,且圖4B示意性地圖示如何由於逐出快取列而可能丟失保護標籤; 圖5示意性地圖示一個實施例中之記憶體存取電路; 圖6A示意性地圖示一個實施例中之形成記憶體存取電路之一部分的保護標籤檢查電路; 圖6B示意性地圖示一個實施例中之形成記憶體存取電路之一部分的保護標籤檢查電路; 圖7A示意性地圖示一個實施例中之形成記憶體存取電路之一部分的保護標籤檢查電路; 圖7B示意性地圖示一個實施例中之形成記憶體存取電路之一部分的保護標籤檢查電路; 圖8A示意性地圖示儲存在快取記憶體中之快取列,其中每一資料項具有儲存相關聯標籤之能力以及指示標籤值是否已丟失之另一旗標值; 圖8B示意性地圖示儲存在快取記憶體中之快取列,其中使用特定標籤值來指示丟失標籤值; 圖9為示出一個實施例中的一系列步驟之流程圖,根據該等步驟來讀取保護標籤並與位址標籤進行比較; 圖10A示意性地圖示記憶體存取電路,其可修改或抑制保護標籤檢查,用於推測性記憶體存取; 圖10B示出圖10A之變體,根據該變體,可視記憶體存取之不同存取特性來抑制或變化保護標籤檢查;以及 圖11示出支援記憶體存取邏輯之模擬器的實例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
200‧‧‧步驟
201‧‧‧步驟
202‧‧‧步驟
203‧‧‧步驟
204‧‧‧步驟
205‧‧‧步驟
206‧‧‧步驟

Claims (20)

  1. 一種裝置,包括: 記憶體存取電路,該記憶體存取電路用以回應於一接收到之目標位址執行一標籤保護之記憶體存取,該標籤保護之記憶體存取包括:一保護標籤擷取操作,該保護標籤擷取操作擷取與一或多個記憶體位置之一區塊相關聯地儲存之一保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的一經定址位置;以及一保護標籤檢查操作,該保護標籤檢查操作比較與該接收到之目標位址相關聯的一位址標籤與藉由該保護標籤擷取操作擷取之該保護標籤,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤中不成功,以導致將一替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出之該經定址位置。
  2. 如請求項1所述之裝置,其中該替代保護標籤經選定以在該保護標籤檢查操作中匹配與該接收到之目標位址相關聯的該位址標籤。
  3. 如請求項1所述之裝置,其中該替代保護標籤值為與該接收到之目標位址相關聯的該位址標籤。
  4. 如請求項1所述之裝置,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤中不成功,以起始對該保護標籤之一先前定義值作為該替代保護標籤值的一決定。
  5. 如請求項4所述之裝置,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤中不成功,以導致該裝置之指令執行電路採取一異常, 其中該指令執行電路回應該異常,以執行一保護標籤修復異常常用程式,該保護標籤修復異常常用程式包括對該保護標籤之該先前定義值的該決定。
  6. 如請求項1所述之裝置,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤中不成功,以便決定該保護標籤檢查操作之一結果為在與該接收到之目標位址相關聯的該位址標籤與該保護標籤之間建立一匹配。
  7. 如請求項6所述之裝置,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤中不成功,以便將該保護標籤視為具有一預定之全匹配特性,使得在與該接收到之目標位址相關聯的該位址標籤與該保護標籤之間建立該匹配。
  8. 如請求項7所述之裝置,其中該預定之全匹配特性為該保護標籤之一預定值。
  9. 如請求項7所述之裝置,其中該預定之全匹配特性為與該保護標籤相關聯之一組全匹配旗標的存在。
  10. 如請求項1所述之裝置,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤中不成功,以產生一丟失保護標籤之指示。
  11. 如請求項10所述之裝置,其中該記憶體存取電路經佈置以與該接收到之目標位址相關聯地儲存該丟失保護標籤之指示。
  12. 如請求項10所述之裝置,其中該記憶體存取電路經佈置以向一處理器單元傳訊該丟失保護標籤之指示。
  13. 如請求項1所述之裝置,其中該記憶體存取電路回應該保護標籤擷取操作在擷取該保護標籤中不成功,以增加一丟失保護標籤之計數器。
  14. 如請求項1所述之裝置,其中該記憶體存取電路回應於提供該接收到之目標位址的一記憶體存取之一特性,以選擇性地執行以下各者中之一者: 該標籤保護之記憶體存取;以及一無標籤保護之記憶體存取。
  15. 如請求項14所述之裝置,其中該記憶體存取之該特性包括以下各者中之至少一者: 產生該記憶體存取之一請求者之一類型;產生該記憶體存取之該請求者的一特權級別;以及該接收到之目標位址。
  16. 如請求項14所述之裝置,其中該記憶體存取之該特性包括該記憶體存取形成推測資料處理之一部分的一指示,且該記憶體存取電路回應該記憶體存取形成推測資料處理之一部分的該指示,以執行該無標籤保護之記憶體存取。
  17. 如請求項1所述之裝置,其中該記憶體存取電路回應該記憶體存取形成推測資料處理之一部分的一指示,以防止將該替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出的該已定址位置。
  18. 一種方法,包括以下步驟: 回應於一接收到之目標位址執行一標籤保護之記憶體存取,該標籤保護之記憶體存取包括以下步驟:擷取與一或多個記憶體位置之一區塊相關聯地儲存之一保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的一經定址位置;以及比較與該接收到之目標位址相關聯的一位址標籤與在該擷取步驟中擷取的該保護標籤,以及,當該擷取步驟在擷取該保護標籤中不成功時,導致將一替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出的該經定址位置。
  19. 一種電腦程式,該電腦程式用於控制一主機資料處理裝置以提供用於執行目標程式碼之指令的一指令執行環境,包括: 記憶體存取邏輯,該記憶體存取邏輯用以回應於一接收到之目標位址執行一標籤保護之記憶體存取,該標籤保護之記憶體存取包括:一保護標籤擷取操作,該保護標籤擷取操作用以擷取與一或多個記憶體位置之一區塊相關聯地儲存的一保護標籤,該等記憶體位置包括由該接收到之目標位址識別出的一經定址位置;以及一保護標籤檢查操作,該保護標籤檢查操作比較與該接收到之目標位址相關聯的一位址標籤與藉由該保護標籤擷取操作擷取之該保護標籤,其中該記憶體存取邏輯回應該保護標籤擷取操作在擷取該保護標籤中不成功,以導致將一替代保護標籤值儲存為與一或多個記憶體位置之該區塊相關聯地儲存的該保護標籤,該等記憶體位置包括由該目標位址識別出之該經定址位置。
  20. 一種儲存如請求項19所述之電腦程式的儲存媒體。
TW108123707A 2018-07-31 2019-07-05 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體 TWI801622B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1812486.7 2018-07-31
GB1812486.7A GB2576005B (en) 2018-07-31 2018-07-31 Handling guard tag loss

Publications (2)

Publication Number Publication Date
TW202008173A true TW202008173A (zh) 2020-02-16
TWI801622B TWI801622B (zh) 2023-05-11

Family

ID=63518082

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108123707A TWI801622B (zh) 2018-07-31 2019-07-05 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體

Country Status (9)

Country Link
US (1) US11636048B2 (zh)
EP (1) EP3830701A1 (zh)
JP (1) JP7317099B2 (zh)
KR (1) KR20210034612A (zh)
CN (1) CN112470134A (zh)
GB (1) GB2576005B (zh)
IL (1) IL279812B2 (zh)
TW (1) TWI801622B (zh)
WO (1) WO2020025918A1 (zh)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163096A (en) 1991-06-06 1992-11-10 International Business Machines Corporation Storage protection utilizing public storage key control
JPH05134930A (ja) * 1991-11-12 1993-06-01 Nippon Telegr & Teleph Corp <Ntt> メモリ保護装置
JP3116827B2 (ja) * 1996-07-16 2000-12-11 日本電気株式会社 キャッシュメモリ制御装置
US7318119B2 (en) * 2004-10-29 2008-01-08 International Business Machines Corporation System and method for fault tolerant controller for network RAID
US7418636B2 (en) * 2004-12-22 2008-08-26 Alcatel Lucent Addressing error and address detection systems and methods
US20060165084A1 (en) 2005-01-21 2006-07-27 International Business Machines Corporation RNIC-BASED OFFLOAD OF iSCSI DATA MOVEMENT FUNCTION BY TARGET
US7769963B1 (en) * 2005-02-09 2010-08-03 Tc License Ltd. RF tag system with single step read and write commands
JP4364166B2 (ja) * 2005-06-30 2009-11-11 株式会社東芝 キャッシュ装置
US8122223B2 (en) * 2008-04-18 2012-02-21 International Business Machines Corporation Access speculation predictor with predictions based on memory region prior requestor tag information
JP5541275B2 (ja) * 2011-12-28 2014-07-09 富士通株式会社 情報処理装置および不正アクセス防止方法
TWI514145B (zh) 2013-10-21 2015-12-21 Univ Nat Sun Yat Sen 可儲存除錯資料的處理器、其快取及控制方法
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
GB2541714B (en) * 2015-08-27 2018-02-14 Advanced Risc Mach Ltd An apparatus and method for controlling instruction execution behaviour
GB2544489B (en) * 2015-11-17 2017-12-06 Advanced Risc Mach Ltd Branch prediction in a data processing apparatus
US10949292B1 (en) * 2019-10-07 2021-03-16 Arm Limited Memory interface having data signal path and tag signal path

Also Published As

Publication number Publication date
GB201812486D0 (en) 2018-09-12
TWI801622B (zh) 2023-05-11
US20210224203A1 (en) 2021-07-22
WO2020025918A1 (en) 2020-02-06
IL279812A (en) 2021-03-01
GB2576005A (en) 2020-02-05
CN112470134A (zh) 2021-03-09
JP7317099B2 (ja) 2023-07-28
US11636048B2 (en) 2023-04-25
IL279812B2 (en) 2024-04-01
IL279812B1 (en) 2023-12-01
KR20210034612A (ko) 2021-03-30
EP3830701A1 (en) 2021-06-09
JP2021532474A (ja) 2021-11-25
GB2576005B (en) 2020-10-07

Similar Documents

Publication Publication Date Title
TWI812798B (zh) 用於控制記憶體存取的裝置及方法
TWI790350B (zh) 記憶體存取中的守衛標籤檢查的控制
CN111433742A (zh) 多保护标签设置指令
TWI787451B (zh) 用於資料處理的方法、設備、電腦程式、與儲存器媒體
TWI801622B (zh) 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體
JP7369699B2 (ja) データ処理装置におけるアドレス変換
JP7369720B2 (ja) アクションをトリガするための装置及び方法