TW201941064A - 控制在記憶體存取中的保護標籤檢查 - Google Patents

控制在記憶體存取中的保護標籤檢查 Download PDF

Info

Publication number
TW201941064A
TW201941064A TW108104111A TW108104111A TW201941064A TW 201941064 A TW201941064 A TW 201941064A TW 108104111 A TW108104111 A TW 108104111A TW 108104111 A TW108104111 A TW 108104111A TW 201941064 A TW201941064 A TW 201941064A
Authority
TW
Taiwan
Prior art keywords
tag
memory access
address
subset
protection
Prior art date
Application number
TW108104111A
Other languages
English (en)
Other versions
TWI787451B (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 TW201941064A publication Critical patent/TW201941064A/zh
Application granted granted Critical
Publication of TWI787451B publication Critical patent/TWI787451B/zh

Links

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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

一種設備包括用於響應於目標位址來執行標籤保護的記憶體存取的記憶體存取電路系統,該標籤保護的記憶體存取包括將跟目標位址相關的位址標籤與跟包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關所儲存的保護標籤進行比較的保護標籤檢查。記憶體存取電路系統是響應於指定尋址位置序列的接收目標位址序列,來執行非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對尋址位置序列的子集執行保護標籤檢查。

Description

控制在記憶體存取中的保護標籤檢查
本技術涉及資料處理領域。
由資料處理設備所要執行的軟體可典型以高階程式設計語言來寫入,並且隨後根據由其上要執行軟體的設備所支援的指令集架構被編譯為代碼。例如,軟體可最初以較高階語言(諸如Java、C或C++)來寫入,並且隨後被編譯為本地端支援的指令集架構(諸如x86或Arm®)。
一些較高階程式設計語言(諸如Java)被認為是記憶體安全語言,因為其包括用於檢查涉及記憶體存取的某一錯誤的運行時間錯誤偵測檢查。相比之下,記憶體不安全語言(諸如C及C++)不包括此種運行時間錯誤檢查。使用記憶體不安全語言的持久流行意味著在根據給定指令集架構的編譯的代碼中,可存在大量的涉及記憶體的錯誤,該等錯誤可能容易由攻擊者或其他惡意方來利用。此種錯誤可包括: •界限違例,其中由代碼所供應的陣列索引是在陣列的合法界限之外; •釋放後使用錯誤,其中在已經解除分配或釋放記憶體位置之後進行對該記憶體位置的存取; •返回後使用,其中在已經從函數返回之後進行對與該函數內所使用的變數(諸如堆疊上的值)相關的位址的記憶體存取; •範圍外使用錯誤,其中變數是在宣告它們的範圍之外被存取;及 •初始化前使用錯誤,其中在已初始化變數之前存取與變數相關的記憶體位址。
此些僅為涉及記憶體的錯誤的一些實例,其可能導致無法預測的行為和可能提供攻擊者利用的途徑,並且因此可能期望的是,在由給定處理設備所支援的指令集架構內提供架構支援,用於輔助某一種類的記憶體錯誤的運行時間偵測。
至少一些實例提供了一種裝置,包括:
記憶體存取電路系統,用於響應於目標位址來執行標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟目標位址相關的位址標籤與跟包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關所儲存的保護標籤進行比較的保護標籤檢查,
其中,記憶體存取電路系統是響應於指定尋址位置序列的接收目標位址序列,來執行非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對尋址位置序列的子集執行保護標籤檢查。
至少一些實例提供了一種方法,包括以下步驟:
響應於目標位址來執行標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟目標位址相關的位址標籤與跟包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關所儲存的保護標籤進行比較的保護標籤檢查;及
響應於指定尋址位置序列的接收目標位址序列,來執行非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對尋址位置序列的子集執行保護標籤檢查。
至少一些實例提供了一種電腦程式,用於控制主機資料處理設備以提供用於執行目標程式代碼的指令的指令執行環境,包括:
記憶體存取程式邏輯,用於響應於目標位址來執行標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟目標位址相關的位址標籤與跟包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關所儲存的保護標籤進行比較的保護標籤檢查,
其中,記憶體存取程式邏輯是響應於指定尋址位置序列的接收目標位址序列,來執行非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對尋址位置序列的子集執行保護標籤檢查。
一種儲存器媒體可儲存上述的電腦程式。儲存器媒體可以是非暫態儲存器媒體。
至少一些實施例提供了一種裝置,包括:
記憶體存取電路系統,用於響應於目標位址來執行標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟目標位址相關的位址標籤與跟包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關所儲存的保護標籤進行比較的保護標籤檢查,
其中,記憶體存取電路系統是響應於指定尋址位置序列的接收目標位址序列,來執行非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對尋址位置序列的子集執行保護標籤檢查。
一種用於防止上文所述的某一記憶體使用錯誤類型的方法可能是,與一或更多個記憶體位置的區塊相關地提供儲存在記憶體系統中的保護標籤。當基於識別在記憶體系統中的特定尋址位置的目標位址來請求標籤保護的記憶體存取時,記憶體存取電路系統可將跟目標位址相關的位址標籤與儲存在記憶體系統中的保護標籤進行比較,該保護標籤與包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關。記憶體存取電路系統可產生在保護標籤與位址標籤之間是否偵測到匹配的指示。該指示可用於控制是否允許記憶體存取成功或後續操作是否可以成功,或者只能在允許記憶體存取如常繼續時報告。
這可在以下情況有用的:例如,基於記憶體不安全語言(諸如C或C++)來編譯代碼的編譯器可當初始化記憶體區域時,將代碼被期望存取的記憶體區塊的保護標籤設定為特定值,並且可將對應的位址標籤值與指向彼等區塊的目標位址相關。如若發生記憶體使用錯誤,並且例如使用在範圍之外或延伸出已初始化的有效範圍的界限之外的位址指標,則很可能的是,與尋址位置相關的保護標籤可能不匹配與目標位址相關的位址標籤,並且隨後在此情況下,是否偵測到匹配的指示可用於觸發某一錯誤處理響應或錯誤報告機制。所採取的特定響應可取決於正在執行的軟體的特定需求或取決於架構的特定微架構實施方式。因此,即使高階語言不具有用於執行運行時間錯誤檢查以防止記憶體存取錯誤的手段,用於編譯代碼的ISA可包括用於執行此種檢查的架構特徵。
然而,檢查這種保護標籤可能在執行保護標籤檢查時產生一些額外負擔,這在一些情況下可能不太理想。當處理對尋址位置的記憶體存取的目標位址時,本文所討論的設備導致僅對一些記憶體存取而不對其他記憶體存取來進行保護標籤檢查。因此,響應於目標位址(或者換上,指定目標位址的記憶體存取請求),記憶體存取電路系統選擇不進行保護標籤檢查和僅進行記憶體存取本身的一些目標位址(記憶體存取請求),並且選擇進行保護標籤檢查以及記憶體存取本身的其他目標位址(記憶體存取請求)。因此,可管理進行保護標籤檢查的上述額外負擔,即,可取決於子集如何定義而放大或縮小負擔。此外,本技術認識到即使沒有檢查到所有存取,仍然可獲得來自保護標籤檢查的益處。例如,運行足夠長的時段,這可仍然足以識別需要以某種方式違反所定義的保護標籤規則的存取的問題。作為另一實例,可能的情況是,如本文所述的實例所列出般安排大量設備,並且因此來自彼等大量設備的反饋可提供足夠大的資料樣本,該資料樣本彌補了任何給定的單獨設備僅對其進行的記憶體存取的(可能相當小的)子集來執行保護標籤檢查的事實。因此,使用了一種「眾包的」反饋機制。
應理解的是,作為不進行保護標籤檢查的彼等記憶體存取的子集的定義可簡單地被反轉,即,子集可被解釋為進行保護標籤檢查的彼等記憶體存取。此觀察結果適用於本文所述的所有實例。
可以各種方式來定義和控制未執行保護標籤檢查的子集,但是在一些實例中,裝置包括子集配置資料儲存器,其中子集是由儲存在子集配置資料儲存器中的子集配置資料來定義。因此,設定該子集配置資料允許控制子集的定義。
子集配置資料儲存器可以是配置暫存器。
定義子集配置資料的方式可採用多種形式,但是在一些實例中,子集配置資料定義分數,其中記憶體存取電路系統是響應於子集配置資料,來選擇性地執行非標籤保護的記憶體存取,使得尋址位置序列的子集對應於該分數。該分數可被不同地定義,但是可例如被解釋成百分比,其中因此在沒有保護標籤檢查的情況下進行所定義的記憶體存取百分比。
在一些實例中,子集配置資料定義整數值,其中記憶體存取電路系統是響應於子集配置資料,來針對尋址位置執行非標籤保護的記憶體存取,該尋址位置對應於在尋址位置序列中的該整數值的序數倍數。換句話說,子集配置資料可被描述為定義整數n,並且記憶體存取電路系統針對每1/n的記憶體存取來執行非標籤保護的記憶體存取。
在一些實例中,子集配置資料定義目標值,其中記憶體存取電路系統是響應於子集配置資料,來執行非標籤保護的記憶體存取,使得尋址位置序列的子集在預定時段上統計地對應於目標值。因此,記憶體存取電路系統可被安排來收集所執行的標籤保護的記憶體存取的數目和所執行的非標籤保護的記憶體存取的數目的統計視圖,並且然後該等數目的比率可影響是否對下一個記憶體存取進行保護標籤檢查的確定,以便將該比率引導至期望值。
至少一些實施例提供了一種方法,包括以下步驟:
響應於目標位址來執行標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟目標位址相關的位址標籤與跟包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關所儲存的保護標籤進行比較的保護標籤檢查;及
響應於指定尋址位置序列的接收目標位址序列,來執行非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對尋址位置序列的子集執行保護標籤檢查。
至少一些實施例提供了一種電腦程式,用於控制主機資料處理設備以提供用於執行目標程式代碼的指令的指令執行環境,包括:
記憶體存取程式邏輯,用於響應於目標位址來執行標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟目標位址相關的位址標籤與跟包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關所儲存的保護標籤進行比較的保護標籤檢查,
其中,記憶體存取程式邏輯是響應於指定尋址位置序列的接收目標位址序列,來執行非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對尋址位置序列的子集執行保護標籤檢查。
一種儲存器媒體可儲存上述的電腦程式。儲存器媒體可以是非暫態儲存器媒體。
現在參考附圖來描述一些特定實施例。
圖1示意性地示出了資料處理設備2的實例。將理解的是,這僅是設備的部件的子集的高階表示,並且該設備可包括未示出的許多其他部件。設備2包含處理電路系統4,用於響應於由指令解碼器6所解碼的指令來執行資料處理。指令解碼器6解碼從指令快取記憶體8擷取的指令,以產生控制信號10,用於控制處理電路系統4以執行由指令所表示的對應處理操作。處理電路系統4可包括一或更多個執行單元,用於對儲存在暫存器14中的值執行操作以產生要寫回暫存器的結果值。例如,執行單元可包括:算術/邏輯單元(ALU),用於執行算術運算或邏輯運算、浮點單元,用於使用浮點運算元來執行運算、及/或向量處理單元,用於對包括多個獨立的資料元件的運算元執行向量運算。處理電路系統亦包括記憶體存取電路系統(例如,包括載入/儲存單元)15,用於控制資料在暫存器14與記憶體系統之間的傳遞。在該實例中,記憶體系統包括在資料與指令之間所共享的指令快取記憶體8、1階(L1)資料快取記憶體16、2階(L2)快取記憶體17,以及主記憶體18。將理解的是,其他快取記憶體架構亦是可能的,這僅是一個實例。提供記憶體管理單元(MMU)20,用於提供位址轉換功能以支援由載入/儲存單元15所觸發的記憶體存取。MMU具有轉換旁視緩衝器(TLB)22,用於快取來自儲存在記憶體系統16、17、18中的頁表的條目的子集。每個頁表條目可提供用於位址的對應頁面的位址轉換映射,並且亦可指定存取控制參數,諸如指定頁面是唯讀區域或是可讀且可寫的存取權限、或指定哪些權限級別可存取該頁面的存取權限。此外,如下文更詳細討論的,頁表條目可指定標籤保護控制資訊,本技術使用該標籤保護控制資訊,來控制當對位址的該頁面內的位址進行存取時是否發生保護標籤檢查。
圖2示意性地示出了標籤保護的記憶體存取的概念。用於代表在記憶體系統內的記憶體位置的實體位址空間可被邏輯上劃分為多個區塊30,每個區塊包括某一數目的可尋址位置。出於簡便性,在圖2的實例中,每個區塊30包括四個記憶體位置,但亦可使用其他區塊大小。每個區塊30與對應的保護標籤32相關。與某一數目的區塊30相關的保護標籤可聚集在一起並且儲存在實體位址空間內的不同架構上可存取的記憶體位置34內,或儲存在架構上不可存取(不映射到相同的實體位址空間)的主記憶體18中所提供的額外儲存器位置內。使用單獨的非架構上可存取的儲存器可在一些情況下對避免在資料快取記憶體16、17中使用向上空間來用於快取保護標籤值較佳,這會影響到常規代碼的效能並且可使得一致性管理更複雜。可將額外標籤快取記憶體19提供在微架構中,用於從非架構地可存取的儲存器快取標籤值,用於與標籤必須從主記憶體18存取的情況相比較快的存取。哪些標籤儲存器位置34對應於每個區塊30的特定映射可由載入/儲存單元15來控制並且可以是硬接線的或可以是可程式設計的。儘管在圖2中,每個標籤32與實體位址的區塊相關,亦將可能在虛擬記憶體位址空間中提供與虛擬記憶體位置相關的保護標籤32,但這可能需要對每個記憶體存取進行一些額外位址轉換。因此,藉由使保護標籤32與實體記憶體位置相關,這可改進效能。大體上,針對特定微架構實施方式,其是保護標籤32如何準確地與實體位址空間的對應的區塊30相關的選擇。大體上,所需要的只是,可存取和比較與記憶體的給定區塊相關的保護標籤32。
因此,當需要標籤保護的記憶體存取時,可將位址標籤40(其與識別要存取的尋址位置44的目標位址42相關)與保護標籤32進行比較,該保護標籤32與包括尋址位置44的記憶體位置30的區塊相關。例如,在圖2中,目標位址42指向記憶體中的某一位置B1,在圖2的位址空間中標記為44。因此,將跟包括位置B1的位置B的區塊相關的保護標籤B與跟目標位址42相關的位址標籤40進行比較。如圖2的頂部所示,位址標籤4可被決定為目標位址本身的所選位元的函數。特定而言,位址標籤可由目標位址的一部分內的位元來決定,該目標位址的一部分未用於指示要選擇為尋址位置44的特定記憶體位置。例如,在一些架構中,目標位址的位元的頂部分可總是具有某一固定值,諸如符號擴展(均為0或均為1),並且因此藉由用任意標籤值覆寫該等未使用的位元,可用位址標籤40來標籤位址。例如,特定位址標籤值可由程式設計員或編譯器來選擇。位址標籤和保護標籤32可為相對小的數目的位元(例如,4位元),並且因此不需要在記憶體內和在目標位址內佔用太多空間。提供4位元的標籤空間(即,標籤的16個可能值)可通常足夠偵測眾多常見類型的記憶體存取錯誤。
因此,當執行標籤保護記憶體存取時,在位址標籤40與跟包括尋址位置44的區塊30相關的保護標籤32之間進行比較,並且確定它們是否匹配。應注意的是,在圖1的示例性配置中,可在加載/儲存單元15與實體記憶體18之間的任何地方執行比較(並且實際上可沿著該路徑來分佈)。然而,在該實例中,為了簡化而描述此比較,其由加載/儲存單元15來進行。加載/儲存單元15產生指示位址標籤40與保護標籤32是否匹配的匹配指示。例如,該匹配指示可以是如若在位址標籤40與保護標籤32之間存在不匹配而產生的故障信號60、或指示是否存在匹配的置於狀態暫存器中的指示、或添加到錯誤報告以指示偵測到了錯誤的位址及/或觸發錯誤的指令的指令位址的條目。
圖3示出了用於處理標籤保護的記憶體存取的流程圖。觸發記憶體存取的指令可指定位址標籤和目標位址。如圖2所示,在一些情況下,位址標籤可實際上從目標位址本身的位元的子集導出,儘管在其他實例中,其可在單獨的暫存器中來指定。在步驟50,遇到觸發標籤保護的記憶體存取的指令。作為響應,在步驟52,記憶體存取電路系統15觸發對由目標位址所識別的尋址位置44的記憶體存取。此外,在步驟54,記憶體存取電路系統15獲得與記憶體位置30的區塊相關而儲存在記憶體系統中的保護標籤32,該區塊包括由目標位址所識別的尋址位置44。在步驟56,記憶體存取電路系統15將位址標籤40與在步驟54所獲得的保護標籤32進行比較。在步驟58,由記憶體存取電路系統15產生在保護標籤與位址標籤之間是否偵測到匹配的指示(例如,上文所述的任何類型的匹配/不匹配報告指示)。用於報告任何不匹配的精確指示可在實施方式之間變化。
圖4示意性地示出了在一個實例中的設備60的表示。記憶體存取電路系統62接收目標位址(包括位址標籤部分65)。記憶體存取電路系統62使用目標位址64,來以正常方式相對於記憶體66執行所需的記憶體存取。然而,記憶體存取電路系統62還包括保護標籤檢查電路系統67和子集控制電路系統68,並且子集控制電路系統68控制保護標籤檢查電路系統67的啟動(使用致能信號),以便不會對所接收的目標位址的子集進行保護標籤檢查。當進行保護標籤檢查時,保護標籤檢查電路系統67確定位址標籤65和所取回的保護標籤69是否以上述方式匹配。產生匹配指示以指示它們是否匹配。
圖5示意性地更詳細地示出了在一個實例中的設備60的記憶體存取電路系統62的一些部件。記憶體存取電路系統62包括子集定義暫存器70、位址計數電路系統72、及控制電路系統74。為了定義不進行保護標籤檢查的所接收的目標位址的子集,可設定子集定義暫存器70的內容。這可例如指定分數,使得因此在沒有保護標籤檢查的情況下進行記憶體存取的所定義的分數(使用位址計數電路系統72來計數)。它可替代地定義整數n,使得記憶體存取電路系統對每1/n的記憶體存取執行非標籤保護的記憶體存取(對位址計數電路系統72中的存取進行計數)。可安排記憶體存取電路系統來收集所執行的標籤保護的記憶體存取的數目和所執行的非標籤保護的記憶體存取的數目(見位址計數電路系統72)的統計視圖,並且該等數目的比率可然後影響是否對下一個記憶體存取進行保護標籤檢查的確定,以便將該比率引導至期望值。因此,控制電路系統74對子集定義暫存器70和位址計數電路系統72進行存取,以支援其對於給定的目標位址是否要進行保護標籤檢查的確定,其使用致能信號向保護標籤檢查電路系統67發信號。
現在參考圖6和圖7的流程圖來討論控制電路系統74可遵循的示例性處理,以便確定對給定目標位址是否要進行保護標籤檢查。
在圖6中,流程開始在步驟100,其中處理等待直到接收到目標位址。若是,則在步驟102遞增位址計數。然後,在步驟104確定當前位址計數和子集定義是否意味著要進行保護標籤檢查。若應該是,則流程進行到步驟106,其中重置位址計數,並且在步驟108,執行保護標籤檢查。然後,進行步驟110,其中進行記憶體存取。然而,如若在步驟104確定了當前位址計數和子集定義意味著不應該進行保護標籤檢查,則流程直接進行到步驟110。應注意的是,該所述的流程不被解釋為意味著必須在記憶體存取之前執行保護標籤檢查。它們可以任何相應的順序來執行。實際上,在一些實例中,可使用保護標籤檢查的結果,來確定是否允許記憶體存取繼續。最後,流程返回到步驟100以等待下一個目標位址。
在圖7中,流程開始在步驟120,其中處理等待直到接收到目標位址。若是,則在步驟122確定保護標籤檢查存取和非保護標籤檢查存取的計數(以及子集定義)是否意味著要進行保護標籤檢查。若應該是,則流程進行到步驟124,其中遞增保護標籤檢查存取的計數,並且在步驟126進行保護標籤檢查。然後,進行步驟130,其中進行記憶體存取。然而,如若在步驟122確定了保護標籤檢查存取和非保護標籤檢查存取的計數(以及子集定義)意味著不應該進行保護標籤檢查,則流程進行到步驟128,其中遞增非保護標籤檢查存取的計數。然後,進行步驟130,其中進行記憶體存取。最後,流程返回到步驟120以等待下一個目標位址。
圖8示出了可使用的模擬器實施方式。雖然前面所述的實施例在用於操作支援有關技術的特定處理硬體的設備和方法方面實現了本發明,但是還可以提供根據本文所述的實施例而經由使用電腦程式來實現的指令執行環境。這種電腦程式通常被稱為模擬器,只要它們提供基於軟體的硬體架構實施方式即可。各種模擬器電腦程式包括仿真器、虛擬機器、模型、及包括​​動態二位元轉譯器的二位元轉譯器。典型地,模擬器實施方式可在主機處理器230上運行,可選地運行主機作業系統220,支援模擬器程式210。在一些安排中,在硬體和所提供的指令執行環境之間可存在多個模擬層,及/或在相同主機處理器上所提供的多個不同的指令執行環境。歷史地,需要強大的處理器來提供以合理的速度執行的模擬器實施方式,但是在某一情況下這種方法可能是合理的,例如當出於相容性或重用原因而期望將本地代碼運行到另一處理器時。例如,模擬器實施方式可提供具有不被主機處理器硬體支援的額外功能的指令執行環境,或者提供典型與不同硬體架構相關的指令執行環境。模擬的概述在Winter 1990 USENIX Conference、由Robert Bedichek著作、第53-63頁的「Some Efficient Architecture Simulation Techniques」中給出。
在先前已參考特定硬體構造或特徵來描述實施例的程度上,在模擬的實施例中,可由適當的軟體構造或特徵來提供等效功能。例如,可將特定電路系統在模擬的實施例中實現為電腦程式邏輯。類似地,可將諸如暫存器或快取記憶體的記憶體硬體在模擬的實施例中實現為軟體資料結構。在前述實施例中所參考的硬體元件中之一或更多者存在於主機硬體(例如,主機處理器230)上的安排中,一些模擬的實施例可在適當的情況下使用主機硬體。
模擬器程式210可儲存在電腦可讀取儲存器媒體212(其可以是非暫態媒體)上,並且向目標代碼200(其可包括應用程式、作業系統、及虛擬機器監視器)提供程式界面(指令執行環境),其與由模擬器程式210所建模的硬體架構的應用程式界面相同。因此,目標代碼200的程式指令可使用模擬器程式210在指令執行環境內來執行,使得實際上不具有上述的設備60的硬體特徵的主機電腦230和特別是記憶體存取電路系統62可模擬該等特徵。例如,模擬器程式210可包括記憶體存取邏輯216,用於存取尋址位置和用於進行保護標籤檢查。因此,模擬器程式210還可包括記憶體存取程式邏輯216,用於確定上述的子集和用於控制是否執行將保護標籤與位址標籤進行比較且報告是否已偵測到保護標籤與位址標籤之間的任何不匹配。
簡而言之,提供了一種設備,該設備包括記憶體存取電路系統,以響應於目標位址來執行標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟目標位址相關的位址標籤與跟包括由目標位址所識別的尋址位置的一或更多個記憶體位置的區塊相關所儲存的保護標籤進行比較的保護標籤檢查。記憶體存取電路系統是響應於指定尋址位置序列的接收目標位址序列,來執行非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對尋址位置序列的子集執行保護標籤檢查。
在本案中,詞語「經配置以……」用於意謂著設備的元件具有能夠進行所定義操作的配置。在此上下文中,「配置」意謂著硬體或軟體的互連的安排或方式。例如,設備可具有提供所定義操作的專用硬體,或處理器或其他處理裝置可經程式化以執行功能。「經配置以」不暗示需要以任何方式改變設備元件以便提供所定義操作。
儘管已在本文中參考附圖詳細描述了說明性實施例,要理解的是,本發明不限於彼等精確實施例,並且本領域具有通常知識者可在其中實現各種變化、增加、及修改而不偏離由隨附申請專利範圍所定義的本發明的範疇。例如,可在不偏離本發明的範圍的情況下,將附屬項的特徵與獨立項的特徵進行各種組合。
2‧‧‧設備
4‧‧‧處理電路系統
6‧‧‧指令解碼器
8‧‧‧指令快取記憶體
14‧‧‧暫存器
15‧‧‧記憶體存取電路系統(載入/儲存單元)
16‧‧‧1階資料快取記憶體
17‧‧‧2階快取記憶體
18‧‧‧主記憶體
19‧‧‧標籤快取記憶體
20‧‧‧記憶體管理單元(MMU)
22‧‧‧轉換旁視緩衝器(TLB)
30‧‧‧區塊
32‧‧‧保護標籤
34‧‧‧位置
40‧‧‧位址標籤
42‧‧‧目標位址
44‧‧‧尋址位置
50‧‧‧步驟
52‧‧‧步骤
54‧‧‧步骤
56‧‧‧步骤
58‧‧‧步骤
60‧‧‧設備
62‧‧‧記憶體存取電路系統
64‧‧‧目標位址
65‧‧‧位址標籤
66‧‧‧記憶體
67‧‧‧保護標籤檢查電路系統
68‧‧‧子集控制電路系統
69‧‧‧保護標籤
70‧‧‧子集定義暫存器
72‧‧‧位址計數電路系統
74‧‧‧控制電路系統
100‧‧‧步驟
102‧‧‧步驟
104‧‧‧步驟
106‧‧‧步驟
108‧‧‧步驟
110‧‧‧步驟
120‧‧‧步驟
122‧‧‧步驟
124‧‧‧步驟
126‧‧‧步驟
128‧‧‧步驟
130‧‧‧步驟
200‧‧‧目標代碼
210‧‧‧模擬器程式
212‧‧‧電腦可讀取儲存器媒體
216‧‧‧記憶體存取邏輯
220‧‧‧主機作業系統
230‧‧‧主機處理器
將僅通過實例的方式來參考如附圖中所示的本技術的實施例來進一步描述本技術,其中:
圖1示意性地示出了資料處理設備的實例;
圖2示出了包括檢查位址標籤是否與保護標籤匹配的標籤保護的記憶體存取操作的實例;
圖3是示出用於執行標籤保護的記憶體存取操作的方法的流程圖;
圖4示意性地示出了在示例性系統中的記憶體存取電路系統;
圖5示意性地更詳細地示出了在示例性系統中的記憶體存取電路系統;
圖6是示出在一個實例中如何將保護標籤檢查應用於記憶體存取的子集的流程圖;
圖7是示出在一個實例中如何將保護標籤檢查應用於記憶體存取的子集的流程圖;及
圖8示出了支援位址轉換邏輯的模擬器的實例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無

Claims (9)

  1. 一種設備,該設備包括: 記憶體存取電路系統,用於響應於一目標位址來執行一標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟該目標位址相關的一位址標籤與跟包括由該目標位址所識別的一尋址位置的一或更多個記憶體位置的一區塊相關所儲存的一保護標籤進行比較的一保護標籤檢查,其中該記憶體存取電路系統是響應於指定一尋址位置序列的一接收目標位址序列,來執行一非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對該尋址位置序列的一子集執行該保護標籤檢查。
  2. 如請求項1所述之設備,該設備包括子集配置資料儲存器,其中該子集是由儲存在該子集配置資料儲存器中的子集配置資料來定義。
  3. 如請求項2所述之設備,其中該子集配置資料儲存器是一配置暫存器。
  4. 如請求項2所述之設備,其中該子集配置資料定義一分數,其中該記憶體存取電路系統是響應於該子集配置資料來選擇性地執行該非標籤保護的記憶體存取,使得該尋址位置序列的該子集對應於該分數。
  5. 如請求項2所述之設備,其中該子集配置資料定義一整數值,其中該記憶體存取電路系統是響應於該子集配置資料來針對尋址位置執行該非標籤保護的記憶體存取,該等尋址位置對應於在該尋址位置序列中的該整數值的序數倍數。
  6. 如請求項2所述之設備,其中該子集配置資料定義一目標值,其中該記憶體存取電路系統是響應於該子集配置資料來執行該非標籤保護的記憶體存取,使得該尋址位置序列的該子集在一預定時段上統計地對應於該目標值。
  7. 一種方法,該方法包括以下步驟: 響應於一目標位址來執行一標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟該目標位址相關的一位址標籤與跟包括由該目標位址所識別的一尋址位置的一或更多個記憶體位置的一區塊相關所儲存的一保護標籤進行比較的一保護標籤檢查;及響應於指定一尋址位置序列的一接收目標位址序列,來執行一非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對該尋址位置序列的一子集執行該保護標籤檢查。
  8. 一種用於控制一主機資料處理設備以提供用於執行目標程式代碼的指令的一指令執行環境的電腦程式,該電腦程式包括: 記憶體存取程式邏輯,用於響應於一目標位址來執行一標籤保護的記憶體存取,該標籤保護的記憶體存取包括將跟該目標位址相關的一位址標籤與跟包括由該目標位址所識別的一尋址位置的一或更多個記憶體位置的一區塊相關所儲存的一保護標籤進行比較的一保護標籤檢查,其中該記憶體存取程式邏輯是響應於指定一尋址位置序列的一接收目標位址序列,來執行一非標籤保護的記憶體存取,該非標籤保護的記憶體存取不對該尋址位置序列的一子集執行該保護標籤檢查。
  9. 一種儲存如請求項8所述的電腦程式的儲存器媒體。
TW108104111A 2018-02-02 2019-02-01 用於資料處理的方法、設備、電腦程式、與儲存器媒體 TWI787451B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1801750.9A GB2570692B (en) 2018-02-02 2018-02-02 Controlling guard tag checking in memory accesses
GB1801750.9 2018-02-02

Publications (2)

Publication Number Publication Date
TW201941064A true TW201941064A (zh) 2019-10-16
TWI787451B TWI787451B (zh) 2022-12-21

Family

ID=61730975

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108104111A TWI787451B (zh) 2018-02-02 2019-02-01 用於資料處理的方法、設備、電腦程式、與儲存器媒體

Country Status (9)

Country Link
US (1) US11397541B2 (zh)
EP (1) EP3746900B1 (zh)
JP (1) JP7349437B2 (zh)
KR (1) KR20200116473A (zh)
CN (1) CN111566628A (zh)
GB (1) GB2570692B (zh)
IL (1) IL275873B2 (zh)
TW (1) TWI787451B (zh)
WO (1) WO2019150078A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2578924B (en) 2018-11-14 2021-09-29 Advanced Risc Mach Ltd An apparatus and method for controlling memory accesses
US10855529B2 (en) * 2018-11-26 2020-12-01 Stmicroelectronics Application Gmbh Processing system, related integrated circuit, device and method

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
TWI332626B (en) 2007-02-01 2010-11-01 Te An Wang A reducing btb target address field bits method
GB2460393B (en) * 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
US8656121B2 (en) * 2011-05-17 2014-02-18 International Business Machines Corporation Facilitating data coherency using in-memory tag bits and tag test instructions
JP5541275B2 (ja) * 2011-12-28 2014-07-09 富士通株式会社 情報処理装置および不正アクセス防止方法
US9448867B2 (en) * 2011-12-31 2016-09-20 Intel Corporation Processor that detects when system management mode attempts to reach program code outside of protected space
US20130275699A1 (en) * 2012-03-23 2013-10-17 Hicamp Systems, Inc. Special memory access path with segment-offset addressing
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
WO2016014567A1 (en) * 2014-07-23 2016-01-28 Grammatech, Inc. Systems and/or methods for automatically protecting against memory corruption vulnerabilities
US9619313B2 (en) * 2015-06-19 2017-04-11 Intel Corporation Memory write protection for memory corruption detection architectures
GB2544315B (en) 2015-11-12 2018-02-14 Advanced Risc Mach Ltd An apparatus and method for controlling use of bounded pointers
US10162694B2 (en) * 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
GB2549511B (en) * 2016-04-20 2019-02-13 Advanced Risc Mach Ltd An apparatus and method for performing operations on capability metadata

Also Published As

Publication number Publication date
GB2570692A (en) 2019-08-07
US20200225872A1 (en) 2020-07-16
EP3746900A1 (en) 2020-12-09
WO2019150078A1 (en) 2019-08-08
CN111566628A (zh) 2020-08-21
JP7349437B2 (ja) 2023-09-22
JP2021512405A (ja) 2021-05-13
GB201801750D0 (en) 2018-03-21
IL275873B2 (en) 2024-03-01
IL275873A (en) 2020-08-31
US11397541B2 (en) 2022-07-26
EP3746900B1 (en) 2023-08-09
KR20200116473A (ko) 2020-10-12
GB2570692B (en) 2020-09-09
IL275873B1 (en) 2023-11-01
TWI787451B (zh) 2022-12-21

Similar Documents

Publication Publication Date Title
US11138128B2 (en) Controlling guard tag checking in memory accesses
TWI812798B (zh) 用於控制記憶體存取的裝置及方法
US11327903B2 (en) Multiple guard tag setting instruction
TWI787451B (zh) 用於資料處理的方法、設備、電腦程式、與儲存器媒體
KR20230017832A (ko) Tag 체킹 장치 및 방법
JP7317099B2 (ja) ガード・タグ紛失の取り扱い
GB2616643A (en) Read-as-X property for page of memory address space
CN112106029A (zh) 用于触发动作的装置和方法