TWI726925B - 用於管理有界指標的裝置和方法 - Google Patents
用於管理有界指標的裝置和方法 Download PDFInfo
- Publication number
- TWI726925B TWI726925B TW105134384A TW105134384A TWI726925B TW I726925 B TWI726925 B TW I726925B TW 105134384 A TW105134384 A TW 105134384A TW 105134384 A TW105134384 A TW 105134384A TW I726925 B TWI726925 B TW I726925B
- Authority
- TW
- Taiwan
- Prior art keywords
- state
- bounded
- range
- exception
- circuit system
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000008859 change Effects 0.000 claims description 19
- 238000000605 extraction Methods 0.000 claims description 16
- 230000007704 transition Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 abstract description 19
- 238000001514 detection method Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 57
- 101100494729 Syncephalastrum racemosum SPSR gene Proteins 0.000 description 11
- 230000001960 triggered effect Effects 0.000 description 8
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 3
- 230000001149 cognitive effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
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/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/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- 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
- G06F12/1425—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 the protection being physical, e.g. cell, word, block
- G06F12/1441—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 the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/324—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本發明提供一種用於管理有界指標之裝置及方法。此裝置具有:處理電路系統,其用於執行指令序列;以及複數個儲存元件,其可由處理電路系統存取,此等儲存元件用於儲存有界指標及非有界指標。每一有界指標具有與其相關聯之顯式範圍資訊,此顯式範圍資訊在使用有界指標時指示可允許記憶體位址範圍。接著,使用當前範圍檢查儲存元件以儲存用於處理電路系統之當前範圍檢查狀態。當當前範圍檢查狀態指示預設狀態時,處理電路系統回應於識別待用於識別記憶體位址的指標之記憶體存取指令之執行而執行範圍檢查操作,以判定是否許可對彼記憶體位址之存取。特定而言,當記憶體存取指令識別有界指標中之一者為指標時,參考與彼有界指標相關聯之顯式範圍資訊執行範圍檢查操作。若替代地,記憶體存取指令識別非有界指標,則參考針對處理電路系統所定義之預設範圍資訊執行範圍檢查操作。當偵測到至少一個事件時,將當前範圍檢查狀態設定至執行狀態。當在執行狀態中時,處理電路系統回應於執行記憶體存取指令以在經識別之指標係非有界指標時禁用範圍檢查操作。此提供一種用於致能變更可用於處理電路系統之有界指標集之有效但受控制的機制。
Description
本發明係關於資料處理領域。
一些資料處理裝置可支援其中指示特定位址之指標與指示用於此指標之可允許位址範圍之範圍資訊相關聯之有界指標。舉例而言,此等指標可稱為「胖指標(fat pointer)」。
可提供若干有界指標暫存器用於儲存供由資料處理裝置之處理電路系統存取之有界指標。此有界指標暫存器內之每一有界指標將識別可由處理電路系統存取之記憶體位址之不可擴展範圍,且因此每一有界指標可稱為能力(capability)(識別處理電路系統能夠存取之可允許記憶體位址範圍)。雖然可允許處理電路系統分步驟減小與可用於此處理電路系統之任何特定有界指標相關聯之範圍,但此處理電路系統不可在正常操作中擴展範圍以試圖增加由彼有界指標給予處理電路系統之能力。
由有界指標暫存器內之有界指標識別的記憶體位址之任何特定範圍可含有資料、指令及/或其他能力(亦即,其他有界指標)。因此,應瞭解,在任何時候處理電路系統存取記憶體之能力由包括有界指標暫存器中所識別之能力及可經由彼等有界指標暫存器中所保持之能力存取之任何額外能力的能力集定義,且此能力集在本文中將稱為能力域。
在資料處理裝置之操作期間可需要試圖變更處理電路系統之能力域。然而,此可需要存取慮及當前能力域之能力而不可存取之記憶體位址。
將期望提供一種用於致能處理電路系統之能力域中之此改變之有效且可靠的機制。
在一個示例性配置中,提供一種裝置,其包括:處理電路系統,其用於執行指令序列;複數個儲存元件,其可由處理電路系統存取,此等儲存元件用於儲存有界指標及非有界指標,每一有界指標具有與其相關聯之顯式範圍資訊,此顯式範圍資訊在使用該有界指標時指示可允許記憶體位址範圍;以及當前範圍檢查儲存元件,其用於儲存用於處理電路系統之當前範圍檢查狀態;當當前範圍檢查狀態指示預設狀態時,處理電路系統回應於識別待用於識別記憶體位址之指標之指令序列中的記憶體存取指令之執行而執行範圍檢查操作,以判定是否許可對彼記憶體位址之存取;當記憶體存取指令識別該等有界指標中之一者為指標時,參考與彼有界指標相關聯之顯式範圍資訊執行範圍檢查操作,且當記憶體存取指令識別該等非有界指標中之一者為指標時,參考針對處理電路系統所定義之預設範圍資訊執行範圍檢查操作;當偵測到至少一個事件時,將當前範圍檢查狀態設定至執行狀態;且當在執行狀態中時,處理電路系統回應於執行該記憶體存取指令以在經識別之指標係非有界指標時禁用範圍檢查操作。
在另一示例性配置中,提供一種操作裝置之方法,此裝置具有:處理電路系統,其用於執行指令序列;以及複數個儲存元件,其用於儲存供由處理電路系統存取之有界指標及非有界指標,每一有界指標具有與其相關聯之顯式範圍資訊,此顯式範圍資訊在使用該有界指標時指示可允許記憶體位址範圍,該方法包括:儲存用於處理電路系統之當前範圍檢查狀態;當當前範圍檢查狀態指示預設狀態時,則回應於識別待用於識別記憶體位址之指標之指令序列中的記憶體存取指令之執行而執行範圍檢查操作,以判定是否許可對彼記憶體位址之存取;當記憶體存取指令識別該等有界指標中之一者為指標時,參考與彼有界指標相關聯之顯式範圍資訊執行範圍檢查操作,且當記憶體存取指令識別該等非有界指標中之一者為指標時,參考針對處理電路系統所定義之預設範圍資訊執行範圍檢查操作;以及當偵測到至少一個事件時,將當前範圍檢查狀態設定至執行狀態;當在執行狀態中時,處理電路系統回應於執行該記憶體存取指令以在經識別之指標係非有界指標時禁用範圍檢查操作。
在又一額外示例性配置中,提供一種裝置,其包括:處理手段,其用於執行指令序列;複數個儲存元件手段,其供由處理手段存取且用於儲存有界指標及非有界指標,每一有界指標具有與其相關聯之顯式範圍資訊,此顯式範圍資訊在使用該有界指標時指示可允許記憶體位址範圍;以及當前範圍檢查儲存元件手段,其用於儲存用於處理手段之當前範圍檢查狀態;當當前範圍檢查狀態指示預設狀態時,處理手段用於回應於識別待用於識別記憶體位址之指標之指令序列中的記憶體存取指令之執行而執行範圍檢查操作,以判定是否許可對彼記憶體位址之存取;當記憶體存取指令識別該等有界指標中之一者為指標時,參考與彼有界指標相關聯之顯式範圍資訊執行範圍檢查操作,且當記憶體存取指令識別該等非有界指標中之一者為指標時,參考針對處理手段所定義之預設範圍資訊執行範圍檢查操作;當偵測到至少一個事件時,將當前範圍檢查狀態設定至執行狀態,且當在執行狀態中時,處理手段用於在經識別之指標係非有界指標時於執行記憶體存取指令期間禁用範圍檢查操作。
在參考附圖論述實施例之前,提供實施例之以下描述。
一些處理裝置可支援有界指標之使用。舉例而言,指標本身可指出(或用於判定)待存取之一資料值之位址或待執行之一指令。然而,指標亦可具有在使用此指標時指示可允許位址範圍之相關聯範圍資訊。例如,此可用於確保依據指標判定之位址保持於某些邊界內以維持行為之安全性或功能正確性。例如,對基於能力之架構越來越感興趣,在此基於能力之架構中某些能力經定義用於一既定過程,且若嘗試實施在所定義能力以外之操作,則可觸發錯誤。用於一有界指標之範圍資訊可為針對此架構所定義之能力資訊之部分,且在基於能力之架構內,此有界指標(包含其相關聯之能力資訊)可稱為能力。
因此,裝置可具有用於儲存具有相關聯之範圍資訊之指標的有界指標儲存元件,此相關聯之範圍資訊在使用此指標時指示可允許位址範圍。每一有界指標儲存元件可為暫存器或通用記憶體中之記憶體位置,例如,堆疊記憶體上之位置。
可使用記憶體存取指令來提及此有界指標儲存元件,以便獲得隨後用於導出在操作指令期間所需之記憶體中之位址之指標。可直接使用指標來識別記憶體位址,或可使用指標來判定記憶體位址,例如,藉由將一偏差添加至指標值。
以下情況亦係可能的:某些記憶體存取指令可識別儲存於資料處理裝置之通用暫存器內之非有界指標。為確保彼等存取亦受局限,可規定預設範圍資訊(在一個實施例中,此預設範圍資訊可自與可用於處理電路系統之有界指標中之至少一者相關聯之範圍導出),且待參考非有界指標執行之任何記憶體存取使得對照預設範圍資訊檢查記憶體位址。
藉由此方法,有可能有效監管由處理電路系統進行之記憶體存取,而無論根據當前能力域參考可用於處理電路系統之顯式有界指標還是使用非有界指標(藉由將記憶體存取有效局限至處於當前能力域之可允許記憶體位址範圍內之預設記憶體位址範圍)執行。然而,如先前所述,出現之問題係如何有效且可靠地提供一種將致能能力域改變之機制。
根據一個實施例,提供一種裝置,此裝置具有:處理電路系統,其用於執行指令序列;以及複數個儲存元件,其可由處理電路系統存取,且可將有界指標及非有界指標兩者儲存於此等儲存元件內。每一有界指標具有與其相關聯之顯式範圍資訊,此顯式範圍資訊在使用有界指標時指示可允許記憶體位址範圍。進一步而言,此裝置具有當前範圍檢查儲存元件以儲存用於處理電路系統之當前範圍檢查狀態。用於當前範圍檢查狀態之可能值包括預設狀態及執行狀態。當在預設狀態中時,處理電路系統回應於識別指標之記憶體存取指令之執行而執行範圍檢查操作,以判定是否許可自指標導出之記憶體位址之存取。特定而言,當記憶體存取指令識別有界指標中之一者時,參考與有界指標相關聯之顯式範圍資訊執行範圍檢查操作。若記憶體存取指令替代地識別非有界指標中之一者時,則參考針處理電路系統所定義之預設範圍資訊執行範圍檢查。因此,此確保實施與當前能力域相關聯之安全性。
然而,當偵測到至少一個事件時,將當前範圍檢查狀態設定至執行狀態。當在執行狀態中時,處理電路系統則執行記憶體存取指令,當經識別之指標係非有界指標時,禁用範圍檢查操作。藉由此方法,此提供以下之機制:允許在執行狀態中操作之處理電路系統存取自非有界指標導出之記憶體位址,甚至在彼等記憶體位址處於藉由當前能力域所定義之可允許記憶體位址範圍以外之情況下亦允許上述操作。透過此機制,因此可能在處理電路系統處於執行狀態中之同時執行一或多個記憶體存取,以便變更將使得可用於處理電路系統之有界指標集。舉例而言,藉由此一機制,可沿任一方向在複數個儲存元件與記憶體之間(包含關於處於先前在預設狀態中執行時與處理電路系統相關聯之能力域以外之記憶體位址)移動非有界指標及有界指標兩者。因此,當處理電路系統隨後自執行狀態返回至預設狀態時,可給此處理電路系統提供一經修改有界指標集,且因此提供一經修改能力域。
然而,由於僅當處理電路系統係在執行狀態中時禁用針對非有界指標之範圍檢查操作,且當偵測到一或多個規定事件時發生轉變至執行狀態,可嚴格控制處理電路系統改變能力域之能力。因此,此提供一種用於改變可用於處理電路系統之有界指標集且因此改變能力域之極有效且可靠的機制。
導致將當前範圍檢查狀態設定至執行狀態之事件類型可採取多種形式,但在一個實施例中包括藉由處理電路系統採取例外。因此,在一個實施例中,當採取例外時,則處理電路系統經排列以轉變至執行狀態,而不考慮採取例外時之當前範圍檢查狀態。此則使得藉由採取例外觸發之例外處置操作能夠有機會達成可用於處理電路系統之有界指標集之某些改變,同時此處理電路系統保持在執行狀態中。
在一個實施例中,裝置進一步包括經保存範圍檢查儲存元件,以儲存經保存範圍檢查狀態。當採取例外時,經保存範圍檢查儲存元件經更新以在回應於採取例外而將當前範圍檢查狀態設定至執行狀態之前,儲存由處理電路系統使用之當前範圍檢查狀態作為經保存範圍檢查狀態。因此,此確保擷取在採取例外時正由處理電路系統使用之當前範圍檢查狀態,從而允許稍後參考彼資訊。
特定而言,在一個實施例中,當自例外返回時,當前範圍檢查儲存元件則經更新以識別如先前在經保存範圍檢查儲存元件中擷取之經保存範圍檢查狀態作為當前範圍檢查狀態。
若藉由在處理電路系統處於執行狀態中之同時執行一或多個記憶體存取而對有界指標集進行任何修改,則當自例外返回時處理電路系統將使彼經修改之有界指標集對其可用。
除了能夠藉由將常駐於先前不可藉由當前能力域存取之記憶體位址處之一或多個有界指標載入至複數個儲存元件中,及/或藉由排列此等有界指標以包含其中儲存其他(先前不可存取)有界指標之記憶體位址區來進一步變更可存取之記憶體位址範圍而變更可用有界指標集以外,亦可能在處於執行狀態中之同時允許處理電路系統變更與特定有界指標相關聯之範圍資訊。因此,根據當前能力域處理電路系統可以存取之有界指標可使其相關聯之範圍資訊增加以有效地增加與彼有界指標相關聯之權利。特定而言,可提供某些有特權指令或可向指令傳達特權之能力,此等指令可修改現有之有界指標(能力)以藉由增加相關聯之範圍或任何相關聯之許可而添加多於其當前提供之權利的權利。然而,藉由使用上述實施例之範圍檢查狀態,此等指令能夠修改現有能力可局限於處理電路系統處於執行狀態中時,以使得限制有界指標之任何此等改變在處理電路系統處於執行狀態中之同時執行。
在一個實施例中,在處於執行狀態中之同時,若記憶體存取指令識別待用於判定所存取之記憶體位址之有界指標,則仍執行範圍檢查操作。因此,若使用任何特定有界指標來存取記憶體,則在處於執行狀態中之同時仍實施與彼等有界指標相關聯之局限。然而,在替代性實施例中,當在執行狀態中時,處理電路系統可經排列以在由記憶體存取指令規定之指標係有界指標時進一步禁用範圍檢查操作,藉此提供進一步增強之靈活性以使處理電路系統在執行狀態中操作以存取在與當前能力域相關聯之記憶體位址範圍以外之記憶體位址範圍。
可以多種方式規定針對處理電路系統所定義之預設範圍資訊,但在一個實施例中提供其中儲存預設範圍資訊之預設範圍儲存元件。在一個實施例中,自與當前能力域中的可用於處理電路系統之有界指標中之一或多者相關聯的範圍資訊導出儲存於預設範圍儲存元件內之範圍資訊。
在一個實施例中,處理電路系統經排列以發佈提取記憶體位址以識別待提取用於隨後由處理電路系統執行之指令,當在預設狀態中時,處理電路系統經排列以在發佈提取記憶體位址以便參考針對處理電路系統所定義之預設提取範圍資訊判定是否許可提取記憶體位址之存取之前,執行提取範圍檢查操作。然而,當在執行狀態中時,處理電路系統經排列以禁用提取範圍檢查操作。
藉由當在執行狀態中時禁用提取範圍檢查操作,此允許處理電路系統存取其以前在處於預設狀態中之同時不可存取之指令。因此,此提供關於執行何種指令以實施在採取例外時執行之例外處置操作之靈活性。
可以多種方式導出提取記憶體位址,但在一個實施例中藉由一程式計數器值來判定提取記憶體位址,且在此實施例中,預設提取範圍資訊係程式計數器範圍資訊。
可以多種方式規定預設提取範圍資訊,但在一個實施例中將預設提取範圍資訊局限至由當前能力域中的可用於處理電路系統之有界指標中之一或多者規定的可允許記憶體位址範圍內之記憶體位址範圍。
在一個實施例中,處理電路系統可為在複數個例外等級下可操作,其中每一例外等級具有不同軟體執行特權。接著,處理電路系統可經排列以回應於由處理電路系統採取之至少一例外子集而改變其正操作所處之例外等級。在一個實施例中,當前範圍檢查狀態正交於各種例外等級,且因此當處理電路系統正在例外等級中之至少一者中操作時,當前範圍檢查狀態可在執行狀態與預設狀態之間切換同時保持處於彼相同例外等級。
在一些情形中,當採取例外時,處理電路系統可保持處於相同例外等級,且僅在採取例外時轉變至執行狀態,且在自例外返回時及時地返回至受限制狀態。
然而,在其他情形中,採取例外導致處理電路系統自第一例外等級轉變至第二例外等級,經保存範圍狀態儲存元件經更新以在採取例外之前識別由處理電路系統在第一例外等級下使用之範圍檢查狀態,且在將處理電路系統轉變至第二例外等級時將當前範圍檢查狀態設定至執行狀態。在一個實施例中,第二例外等級將具有高於第一例外等級之軟體執行特權等級。
當處理電路系統正在第二例外等級下執行例外處置操作之同時,在一個實施例中,此處理電路系統可保持在執行狀態中達整個彼週期。然而,在替代性實施例中,在第二例外等級下之操作期間,處理電路系統可經排列以將當前範圍檢查狀態自執行狀態改變至預設狀態。特定而言,在一個實施例中,處理電路系統可經排列以使得處理電路系統保持在執行狀態中僅長達一時間,該時間與執行局限於在處理電路系統處於執行狀態中之同時執行之任何修改所需時間一樣長。此後,處理電路系統返回至預設狀態以進行例外處置操作之其餘部分之執行。藉由此方法,可將在執行狀態中操作實際所需之代碼局限於小的、自含且可驗證之代碼。接著無需信任由處理電路系統在第二例外等級下執行之其他代碼在處理電路系統處於執行狀態中之同時執行,且替代地處理電路系統在執行此代碼之前返回至預設狀態。
在一個實施例中,當自例外返回時,處理電路系統經排列以往回轉變至第一例外等級,且當前範圍檢查儲存元件經更新以將經保存範圍檢查狀態識別為當前範圍檢查狀態,除非此將在自例外返回時導致當前範圍檢查狀態自預設狀態改變至執行狀態。
存在其中可處置對以下情況之偵測之若干方式:當自例外返回時嘗試自預設狀態往回改變至執行狀態。在一個實施例中,當偵測到此情形時,可採取額外之例外以便實施適當例外處置常式。在替代性實施例中,當處理電路系統返回至第一例外等級時,過程狀態之所有其他態樣可經復原以供用於處理電路系統,而非允許將範圍檢查狀態改變至執行狀態,替代地強制其保持在預設狀態中。當自預設狀態中時,與預設狀態相關聯之所有記憶體存取檢查則將適當出現,且因此將局限可由處理電路系統存取記憶體中之何種位址。
在操作期間,處理電路系統可以存取若干系統暫存器及操作,諸如轉譯上下文控制、系統呼叫及例外返回。在一些情形中,替代允許不受限制之存取,可使用已知之存取控制機制以對由處理電路系統對系統暫存器及操作之存取施加一些限制。然而,對此等系統暫存器及操作之存取(本文亦稱為功能性)可潛在地破壞藉由能力域提供之安全性。為減輕此問題,在一個實施例中,裝置進一步包括具有一或多個欄位之存取控制儲存元件,每一欄位與對應功能性集相關聯且具有指示在處理電路系統處於預設狀態中時可由處理電路系統存取彼對應功能性集之值。當在執行狀態中時,處理電路系統對每一對應功能性集之存取獨立於存取控制儲存中之相關聯值。藉由此種方法,當在預設狀態中時可藉由存取控制暫存器之內容局限處理電路系統存取某些功能性集之能力,因此減小損壞由能力域提供之安全性之能力。然而,當在執行狀態中時,有效忽略存取控制儲存之內容,且不藉由存取控制儲存中之相關聯值管控由存取控制儲存所控制之處理電路系統對各種功能性集之存取。
替代地,在執行狀態中,處理電路系統可不受限制地存取某些功能性集或可具有受現有存取控制機制控制之存取。然而,當在預設狀態中時,存取控制暫存器之使用可使得能夠對功能性集中之至少一些之存取施加進一步限制,此等限制超越在處於執行狀態中時適當出現之任何限制。
在一個實施例中,在預設狀態中防止處理電路系統更新存取控制儲存元件。替代地,將存取控制儲存之任何更新局限於在處理電路系統處於執行狀態中之同時執行。
現將參考附圖描述特定實施例。
圖1示意性地圖示包括用於處理指令之處理管線4的資料處理裝置2之實例。在此實例中,處理管線4包含若干管線級,此等管線級包含提取級6、解碼級8、發佈級10、執行級12及回寫級14,但應瞭解,可提供其他類型或組合之級。舉例而言,一些實施例中可包含用於執行暫存器重新命名之重新命名級。待處理之指令逐級移動,且當一指令在一個級處處於擱置中時另一指令可在管線4之不同級處處於擱置中。
提取級6自1階(L1)指令快取記憶體20提取指令。提取級6通常可連續自相繼指令位址提取指令。然而,提取級亦可具有用於預測分支指令之結果之分支預測器22,且提取級6可在預測採取分支之情況下自(不連續)分支目標位址提取指令,或在預測不採取分支之情況下自下一連續位址提取指令。分支預測器22可包含一或多個分支歷史表,此等分支歷史表用於儲存用來預測可能採取還是不採取某些分支之資訊。舉例而言,分支歷史表可包含計數器,此等計數器用於追蹤先前所執行分支之實際結果或表示對分支進行之預測之可信度。分支預測器22亦可包含分支目標位址快取記憶體(branch target address cache; BTAC)24,其用於快取分支指令之先前目標位址以使得在隨後遇到相同分支指令時可預測此等分支指令。
將經提取指令傳遞至解碼級8,此解碼級解碼此等指令以產生經解碼指令。經解碼指令可包括用於控制執行級12以執行適當處理操作之控制資訊。對於自快取記憶體20提取之一些較複雜指令,解碼級8可將彼等指令映射至多個經解碼指令,此等可稱為微運算(μops或uops)。因此,在自L1指令快取記憶體20提取之指令與如藉由管線之稍後級所見的指令之間可不存在一對一關係。一般而言,本申請案中對「指令」之引用應理解為包含微運算。
將經解碼指令傳遞至發佈級10,發佈級判定執行指令所需之運算元是否可用且在運算元可用時發佈指令以供執行。一些實施例可支援有序處理以使得以對應於其中自L1指令快取記憶體20提取指令之程式次序之次序發佈指令以供執行。其他實施例可支援無序執行以使得以不同於程式次序之次序發佈指令至執行級12。無序處理可用於改良效能,此乃因當拖延較早指令而等待運算元時,可首先執行其運算元可用之程式次序中之較後指令。
發佈級10發佈指令至執行級12,在執行級處執行指令以實施各種資料處理操作。舉例而言,執行級可包含若干執行單元30、32、34,此等執行單元包含:算術/邏輯單元(arithmetic/logic unit; ALU)30,其用於對整數值實施算術或邏輯運算;浮點(floating-point; FP)單元32,用於對以浮點形式表示之值實施運算;以及載入/儲存單元34,其用於實施用於將來自1階(L1)資料快取記憶體36之資料值載入至暫存器40之載入操作,或用於將來自暫存器40之資料值儲存至L1資料快取記憶體36之儲存操作。應瞭解,此等僅係可提供的執行單元之類型之一些實例,且亦可提供諸多其他種類。為實施處理操作,執行級12可自暫存器集40讀取資料值。接著,可藉由回寫級14將經執行指令之結果回寫至暫存器40。
L1指令快取記憶體20及L1資料快取記憶體36可為包含多個快取記憶體位階之快取記憶體層級之部分。舉例而言,亦可提供2階(L2)快取記憶體44且視情況可提供額外快取記憶體位階。在此實例中,L2快取記憶體44在L1指令快取記憶體20與L1資料快取記憶體36之間共享,但其他實例可具有單獨L2指令與資料快取記憶體。當待提取之指令不在L1指令快取記憶體20中時,則可自L2快取記憶體44提取指令;且類似地若指令不在L2快取記憶體44中,則可自主記憶體50提取指令。類似地,回應於載入指令,若資料不在L1資料快取記憶體36中,則可自L2快取記憶體44提取資料;且若需要,則自記憶體50提取資料。可使用任何已知方案來管理快取記憶體層級。
由管線4使用以代表程式指令及資料值之位址可為虛擬位址,但可實體地定址至少主記憶體50及視情況亦定址快取記憶體層級之至少一些位階。因此,可提供轉譯旁看緩衝器52(translation lookaside buffer; TLB)以用於將由管線4使用之虛擬位址轉譯成供存取快取記憶體或記憶體使用之實體位址。舉例而言,TLB 52可包含若干條目,每一條目規定虛擬位址空間之對應頁之虛擬頁位址及對應實體頁位址,應將虛擬頁位址映射至對應實體頁位址以將對應頁內之虛擬位址轉譯至實體位址。舉例而言,虛擬及實體頁位址可對應於對應虛擬及實體位址之最高有效部分,其中在將虛擬位址映射至實體位址時剩餘之最低有效部分保持不改變。除位址轉譯資訊之外,每一TLB條目亦可包含規定存取許可(諸如,指示某些位址頁在管線4之某些模式中是否可存取)之一些資訊。在一些實施例中,TLB條目亦可定義對應頁位址之其他性質,諸如,定義回應於讀取或寫入操作而更新快取記憶體層級之哪些位階(例如,快取記憶體應以回寫模式還是直寫模式操作)之快取記憶體政策資訊,或定義是否可藉由記憶體系統重新排序對應頁中之位址之資料存取(與其中藉由管線4發佈資料存取之次序相比而言)的資訊。
儘管圖1展示單階TLB 52,但應瞭解,可提供TLB之層級以使得1階(L1)TLB 52可包含用於轉譯若干最近存取頁中之位址之TLB條目,且可提供2階(L2)TLB以用於儲存用於更大數目頁之條目。當所需條目不存在於L1 TLB中時,則可自L2 TLB提取此條目或自層級中之額外TLB提取此條目。若用於待存取之頁之所需條目不在TLB中之任一者中,則可執行頁表走查以存取記憶體50中之頁表。本技術中可使用任何已知TLB管理方案。
此外,應瞭解,一些系統可支援多個位階之位址轉譯以使得例如可使用第一TLB(或TLB層級)以將虛擬位址轉譯成中間位址,且接著使用一或多個額外TLB之第二位階之位址轉譯將中間位址轉譯成用於存取快取記憶體或記憶體之實體位址。例如,此可用於支援虛擬化,其中可由作業系統管理第一位階之位址轉譯且可由超管理器管理第二位階之位址轉譯。
如圖1中所展示,裝置2可具有有界指標暫存器集60。雖然有界指標暫存器集在圖1中展示為實體上與通用資料暫存器集40分離,但在一個實施例中,可使用同一實體儲存來提供通用資料暫存器及有界指標暫存器兩者。
每一有界指標暫存器60包含:指標值62,其可用於判定待存取之資料值之位址;以及範圍資訊64,其規定在使用對應指標62時之可允許位址範圍。視情況地,有界指標暫存器60亦可包含其他限制資訊66(本文亦稱為許可資訊),其他限制資訊可定義在使用指標時之一或多個限制/許可。舉例而言,可使用限制66來限制可使用指標62之指令類型或其中可使用指標之管線4之模式。因此,範圍資訊64及限制資訊66可經考量以定義允許指標62在其內使用之能力。當嘗試在所定義能力以外使用指標62時,可觸發錯誤。例如,範圍資訊64可用於確保指標保持於某些已知邊界內且不雜散至可能含有敏感或安全資訊之記憶體位址空間之其他區域。例如,當執行識別待用於識別記憶體位址之有界指標中之一者之記憶體存取指令時,可執行邊界檢查操作(本文亦稱為範圍檢查操作)以參考為彼有界指標提供之顯式範圍資訊檢查是否許可對記憶體位址之存取。
在其中針對通用資料暫存器及有界指標暫存器兩者使用同一實體儲存之實施例中,則在一個實施例中,可例如將指標值62儲存於如針對對應通用暫存器所使用之同一儲存位置內。
圖2展示指令類型之實例,針對此實例,使用可允許範圍來進行保護以免於對資料或指令之未經授權之存取。如圖2之頂部部分中所展示,特定有界指標暫存器PR1包含既定指標值62及範圍資訊64,在此實例中使用定義可允許範圍之下界之下界位址68及定義可允許範圍之上界之上界位址69來規定範圍資訊。舉例而言,邊界68、69經設定以定義位址範圍80000至81000。當某些指令參考有界指標暫存器PR1且依據指標62判定之位址在於此範圍以外時,可觸發錯誤。
舉例而言,如圖2之部分A中所展示,在一些系統中,若嘗試將指標暫存器60中之指標62之值設定至在於由範圍資訊64規定之範圍以外之值(本文假定指標直接規定位址),則可觸發錯誤。此避免指標62採取在所規定範圍以外之任何值,以使得可確保使用此指標之任何存取安全地在於所允許範圍內。替代地,如圖2之部分B中所展示,當指令嘗試在指標62之位址在於所規定範圍以外時存取藉由彼位址識別之位置時,可觸發錯誤。因此,仍可允許將指標62設定至所規定範圍以外之值,但一旦嘗試指標位址(或自指標導出之位址)處之資料存取,即可在此位址處於所允許範圍以外之情況下觸發錯誤。其他系統可回應於圖2之部分A及B中所展示之兩種指令類型而觸發錯誤。
可以不同方式設定範圍資訊64。舉例而言,安全碼或作業系統或超管理器可規定對於既定指標所允許之範圍。舉例而言,指令集架構可包含用於設定或修改用於既定指標62之範圍資訊64之若干指令,且此等指令之執行可限制於某些軟體或處理器4之某些模式或例外等級。在本文稍後所述之實施例中,處理器係可在預設狀態與執行狀態之間切換,且以上改變範圍資訊之能力可限制於其中處理器正在執行狀態中操作之情形。
除當執行參考指標之某些指令時可在執行狀態12下使用之有界指標儲存元件集60之外,亦可使用程式計數器能力(program counter capability; PCC)暫存器80以在正自1階指令快取記憶體20提取指令時提供提取級6處之類似功能性。特定而言,可將程式計數器指標儲存於欄位82中,其中PCC 80亦提供範圍資訊84及任何適當限制資訊86,類似於藉助有界指標儲存元件集60中之指標中之任一者提供的範圍及限制資訊。
進一步而言,在一個實施例中,亦可在通用暫存器40內規定非有界指標且在執行記憶體存取時使用此等非有界指標。為限制可使用此等非有界指標存取之記憶體位址,可提供預設資料能力(Default Data Capability; DDC)暫存器90,預設資料能力暫存器規定範圍資訊92及任何限制資料94兩者,類似於包含於能力暫存器中之任一者內之範圍及限制資訊。接著,當執行參考通用暫存器40中之非有界指標識別記憶體位址之記憶體存取指令時,可仍基於自彼非有界指標導出之任何位址執行與關於有界指標所執行之邊界檢查操作類似之邊界檢查操作,但在此情形中慮及保持於DDC暫存器90內之範圍及限制資訊。舉例而言,藉由此方法,對於期望利用現有軟體程式庫中之一些能力非認知碼之能力認知碼而言,可設定DDC暫存器90以便施加局限於如何在執行彼能力非認知碼時使用自通用暫存器40存取之指標。特定而言,可使用範圍資訊來限制可在執行此能力非認知碼時存取之位址範圍。
可以多種方式設定在PCC暫存器80或DDC暫存器90中所規定之範圍資訊及任何相關聯限制。然而,在一個實施例中,使用當前能力域中的可用於處理電路系統之有界指標中之一或多者來判定彼資訊,以使得不存在可使用基於PCC或DDC之邊界檢查來存取的處於針對當前能力域所識別之記憶體位址範圍以外之記憶體位址。
圖3示意性地圖示如何結合個別資料塊使用標籤位元來識別彼等資料塊表示能力(亦即,有界指標及相關聯之限制資訊)還是表示正常資料。特定而言,記憶體位址空間110將儲存一系列資料塊115,此等資料塊通常將具有規定大小。完全出於圖示起見,在此實例中假定每一資料塊包括128個位元。結合每一資料塊115,提供標籤欄位120,在一個實例中此標籤欄位係稱為標籤位元之單位元欄位,此單位元欄位經設定以識別相關聯之資料塊表示能力且經清除以指示相關聯之資料塊表示正常資料,且因此不可視為能力。應瞭解,與設定或清除狀態相關聯之實際值可視實施例而變化,但完全藉由圖示之方式,在一個實施例中若標籤位元具有值1,則其指示相關聯之資料塊係能力,且若標籤位元具有值0,則其指示相關聯之資料塊含有正常資料。
當將能力載入至有界指標暫存器60(本文亦稱為能力暫存器)中之一者(諸如,圖3中所展示之能力暫存器100)中時,則標籤位元隨能力資訊一起移動。因此,當將能力載入至能力暫存器100中時,指標102、範圍資訊104及限制資訊106(下文稱為許可資訊)將載入至能力暫存器中。另外,結合彼能力暫存器或作為其內之特定位元欄位,標籤位元108將經設定以識別內容表示能力。類似地,當將能力儲存回至記憶體時,將結合其中儲存能力之資料塊而設定相關標籤位元120。藉由此種方法,有可能在能力與正常資料之間區分且因此確保正常資料不可用作能力。
如先前所述,可用於處理電路系統(可直接經由能力暫存器60存取或留存於可經由能力暫存器中之有界指標中之一者存取之記憶體位址空間內)之當前有界指標集形成能力域。因此,能力域識別可由處理器存取之記憶體之可用區,連同任何相關聯之許可/限制。為提供用於變更能力域之受控制機制,根據一個實施例,提供本文將稱為範圍檢查狀態之額外狀態。特定而言,可將範圍檢查狀態設定至預設狀態或執行狀態。預設狀態係其中將設定處理電路系統之典型狀態,且當處於預設狀態中時,在試圖存取記憶體時執行所有上述範圍檢查。因此,當試圖藉由參考有界指標儲存元件60中之有界指標中之一者識別位址來存取記憶體時,將使用與有界指標儲存元件中之彼有界指標相關聯之相關聯顯式範圍資訊來執行範圍檢查操作。類似地,當試圖存取自通用暫存器40中之非有界指標導出之記憶體位址時,將在執行範圍檢查操作時參考DDC暫存器90內之預設範圍資訊。此外,當提取級6試圖自規定記憶體位址提取指令時,將在執行範圍檢查操作時參考PCC暫存器80內之範圍資訊。假定允許關於範圍檢查操作進行存取,則自記憶體位址(在將資料/指令儲存於快取記憶體內之情況下自快取記憶體20、36、44之位階中之一者,或在記憶體位址在快取記憶體位階中丟失之情形中自記憶體50)檢索相關資料或指令。
然而,當使處理電路系統處於執行狀態內時,則在一個實施例中禁用原本將使用DDC暫存器90或PCC暫存器80之內容執行之任何檢查。因此,在一個實施例中,若有界指標繼續用於識別記憶體位址,則仍執行參考與彼等有界指標相關聯之顯式範圍資訊執行之範圍檢查。然而,禁用透過使用DDC或PCC內容出現之預設範圍檢查。因此,當在執行狀態中時,處理電路系統可使用在通用暫存器40中規定之非有界指標存取記憶體,而不基於DDC範圍資訊執行任何檢查。
類似地,提取級6可自各種記憶體位址提取指令而不參考PCC暫存器80中之範圍資訊執行範圍檢查。藉由禁用基於PCC之檢查,此允許處理電路系統檢索可留存於不在當前能力域之可允許記憶體位址範圍內之記憶體位址處之指令,藉此提供關於在執行狀態中之同時執行之指令的增加靈活性。
進一步而言,藉由允許在處於執行狀態中時使用非有界指標來存取記憶體而不執行任何範圍檢查,此減少在處理電路系統處於執行狀態中時藉由能力施加之局限,因此減少在處於執行狀態中時對彼等能力之影響。此在圖4中示意性地圖示。
特定而言,如圖4中所展示,存在其中可在記憶體中存取資料或能力之若干方式。特定而言,可使用由方框150、160表示之機制在記憶體中存取資料,同時可使用由方框155、165指示之機制存取能力。就機制本身而言,此等機制視是否使用通用資料暫存器來識別指標(亦即,非有界指標)或是否使用能力暫存器60來識別指標(亦即,有界指標)而不同。如由方框160、165所展示,若規定有界指標以使得自彼有界指標導出記憶體位址,則使用針對相關有界指標規定之範圍及限制資訊來執行顯式能力檢查(包含範圍檢查)。相反,如由方框150及155所展示,若規定通用暫存器40內之非有界指標且自彼非有界指標導出記憶體位址,則使用DDC暫存器90中之預設範圍及限制資訊來執行預設能力檢查(本文亦稱為隱式能力檢查)。
當在執行狀態中時,有效地禁用機制150、155。因此,可經由規定通用暫存器40內之非有界指標之載入或儲存指令在暫存器40、60與快取記憶體/記憶體之間移動通用資料及能力兩者,而不執行任何範圍檢查操作。因此,當在執行狀態中時,處理電路系統可存取原本將不能夠基於在處於預設狀態中時實施之能力域存取之記憶體區。
返回至圖1,裝置將可存取多種控制/狀態暫存器70,此等控制/狀態暫存器儲存由處理電路系統在其操作期間參考之各種控制及狀態資訊。此資訊將包含擷取關於處理器之當前操作之多種狀態資訊的當前過程狀態74。在此當前過程狀態資訊內,亦擷取上述當前範圍檢查狀態,因此識別處理電路系統係在預設狀態還是執行狀態中操作。雖然展示為單個方框74,但當前過程狀態將不必全部儲存於單個暫存器內,而可儲存於可用控制/狀態暫存器70內之若干控制及狀態暫存器內。
根據一個實施例,進入至執行狀態局限於僅在出現某些預定事件時發生。特定而言,在一個實施例中,導致進入至執行狀態之事件係採取例外。採取例外可藉由多種不同機制觸發,例如,中斷、系統呼叫、故障等。根據一個實施例,當採取此一例外時,導致處理電路系統之範圍檢查狀態轉變至執行狀態,而不考慮採取例外時適當出現之範圍檢查狀態。然而,另外,當採取此種例外時,擷取當前過程狀態74作為經保存過程狀態72。此外,經保存過程狀態72可儲存於單個暫存器內或多個暫存器內。作為經保存過程狀態之部分,亦保存採取例外時存在之當前範圍檢查狀態,因此識別當採取例外時處理電路系統係在預設狀態還是執行狀態中。在當前過程狀態74內,接著將當前範圍檢查狀態更新至執行狀態,此後由處理電路系統執行例外處置操作以處理例外。當在執行狀態中時,如先前所論述禁用任何預設範圍檢查操作,因此使得能夠對當自例外返回時可用於處理電路系統之能力集做出改變。
當處理電路系統隨後自例外返回時,經保存過程狀態將復原成當前過程狀態,從而允許處理電路系統繼續其在採取例外之前正執行之操作。然而,此時,處理電路系統可使用經修訂能力域來操作,此歸因於當處理電路系統係在執行狀態中時對可用之有界指標集做出之修改。
亦如圖1中所展示,可視情況給控制/狀態暫存器70補充存取控制暫存器76。稍後將參考圖10及11論述此暫存器之目的。
圖5更詳細地圖示經保存過程狀態暫存器72。特定而言,當採取例外時,在經保存過程狀態暫存器72之一或多個欄位內擷取處理器之當前例外等級之過程狀態170。例外等級識別軟體執行特權之等級,且如稍後將論述,在一個實施例中處理電路系統可能夠在多個不同例外等級下操作,其中可經由採取例外達成彼等例外等級之間的轉變。在多個例外等級可用於處理電路系統之情形中,接著經保存過程狀態將包含處理器在採取例外之前正執行所處之當前例外等級作為狀態資訊之部分。然而,可實施利用範圍檢查狀態之預設及執行狀態之所述實施例之技術而不考慮是否存在可用於處理器之多個例外等級還是僅單個例外等級。特定而言,可發生預設狀態與執行狀態之間的轉變及轉變回至預設狀態而不考慮在彼過程期間是否存在例外等級之任何改變,且因此範圍檢查狀態可視為正交於處理器之例外等級。
如圖5中所展示,除在經保存過程狀態暫存器內擷取之過程狀態170之外,亦提供範圍檢查狀態欄位175,當恰好在採取例外之前時在此範圍檢查狀態欄位內擷取處理電路系統之當前範圍檢查狀態。依據先前對範圍檢查狀態之描述,應瞭解,此資訊有效地識別能力如何局限記憶體存取,且因此在本文中範圍檢查狀態亦可稱為能力影響狀態。
如先前所論述,當前範圍檢查狀態可採取其中在存取記憶體時檢查顯式及隱式(預設)能力兩者之預設(亦即,受限制)狀態,或其中在存取記憶體時不檢查任何隱式能力之執行狀態(在採取例外時啟動)。在一個實施例中,在執行狀態中仍檢查顯式能力,且因此慮及用於彼有界指標之顯式範圍及限制資訊仍檢查其中自有界指標導出記憶體存取之任何存取。然而,在替代性實施例中,當在執行狀態中時亦可禁用此等顯式能力檢查,因此提供關於可在執行狀態中時由處理電路系統存取之記憶體位址之進一步靈活性。
圖6係圖示根據一個實施例的在採取例外時執行之步驟之流程圖。特定而言,當在步驟200處判定待採取例外時,接著在步驟205處,在經保存過程狀態暫存器72內擷取當前過程狀態(包含處理器之當前例外等級)。另外,如先前所論述,當前範圍檢查狀態亦作為彼過程狀態之部分儲存於經保存過程狀態暫存器內。
此後,在步驟210處,藉由更新當前過程狀態74內之適當欄位來選擇執行狀態作為當前過程狀態。選擇執行狀態而不考慮當採取例外時之範圍檢查狀態。
此後,在步驟215處,當處理電路系統正在執行狀態中執行例外處置操作時執行改變能力域所需之任何步驟。
此後,執行由例外處置操作所需之任何其他步驟。雖然在一個實施例中,在保持於執行狀態中時執行此等操作,但在替代性實施例中處理電路系統針對在步驟220處執行之此等額外步驟將返回至受限制(亦即,預設)狀態。特定而言,在其中提供多個例外等級且其中採取例外導致自第一例外等級轉變至第二例外等級之實施例中可採取此後者之方法。
此後,過程進行至步驟225,其中過程自例外返回。此時,經保存過程狀態資訊72復原至當前過程狀態74以便允許使處理電路系統置回至採取例外之前存在之狀態。
當在步驟220期間決定針對例外處置操作之至少一部分返回至受限制狀態時,隨後在一個實施例中自例外之返回可能直接自彼受限制狀態發生。然而,在替代性實施例中,處理可經排列以使得發生額外之例外以導致在接著自原始例外返回之前轉變回至執行狀態,以便確保自原始例外之返回自執行狀態發生。若在自例外返回之前強制例外處置處理重新進入至執行狀態,則此可避免例外返回試圖自受限制狀態返回至執行狀態之可能性(可能處理電路系統在採取原始例外之前係在執行狀態中)。否則,當處置例外返回時可需要引入一些特例處置以處理其中例外返回試圖自受限制狀態返回至執行狀態之情況。此將參考圖7更詳細地論述。
特定而言,當在步驟250處判定待發生例外返回時,過程進行至步驟255,其中判定處理電路系統當前是否在執行狀態中。如先前所述,在一個實施例中,可實施如下:在待採取例外返回時處理電路系統將始終處於執行狀態中,在此情形中過程將始終進行至步驟260,其中處理器將復原至保存於SPSR暫存器72中之過程狀態,因此,當前範圍檢查狀態將復原至儲存於SPSR暫存器中之範圍檢查狀態。
然而,若實施例允許例外可自執行狀態或預設狀態返回,則若在步驟255處判定處理電路系統當前不處於執行狀態中,則過程進行至步驟265,其中判定SPSR暫存器是否識別經保存範圍檢查狀態係執行狀態。若不是,則過程可進行至步驟260,但若經保存範圍檢查狀態係執行狀態,則過程替代地進行至步驟270,其中執行特例處置。
特例處置可採取多種形式,但在一個實施例中涉及觸發額外之例外以起始適合之例外處置。替代地,處理器可復原至保存於SPSR中之過程狀態,但將當前範圍檢查狀態設定至受限制狀態,而非設定至已在SPSR中擷取之執行狀態。因此,當自該例外返回時將強制處理電路系統進入受限制狀態中,且因此將實施可適用於當前能力域之所有範圍檢查。
圖8圖示在一個實施例中之各種例外等級之間的相互關係。例外等級EL0具有最低軟體執行特權,且EL0下之執行稱作非特權執行。值n自1增加至3指示軟體執行特權增加。EL2例外等級提供對處理器虛擬化之支援。同時,EL3級提供對兩種安全性狀態(即,安全及非安全狀態)之支援。
此產生圖8中所展示之一般樹結構。特定而言,若提供EL3例外等級(諸如,圖8中所展示之EL3 300),則其將在安全狀態中執行。在非安全狀態中,若期望則可能支援虛擬化,且因此可在非安全狀態中提供EL2例外等級305。在安全狀態內,在一個實施例中,不提供EL2等級,且替代地可在安全狀態內提供EL1等級330,在此安全狀態下可提供若干不同EL0等級340、342。
在非安全狀態中,若提供EL2等級305,則其可支援其下面之多個EL1等級310、312、314,且彼等EL1等級中之每一者可支援一或多個EL0等級,如由元件符號320、322示意性地展示。
經由採取例外發生各種例外等級之間的轉變。然而,並非所有例外將導致例外等級改變。例如,在一個實施例中,通常在EL1中(而在一些配置中係在EL2中)採取來自EL0之例外。在一個實施例中,可通常在同一例外等級中採取來自EL1及以上之例外。然而,亦可提供自EL1至EL2/EL3及自EL2至EL3之各種例外且可將此等例外用於類似目的。在一個實施例中,始終在EL3中採取EL3中之例外。如圖8中所展示,可與例外等級中之每一者相關聯地提供經保存過程狀態暫存器。若情形始終為在EL1中採取來自EL0之例外,則無需單獨SPSR與EL0等級相關聯。然而,在一個實施例中,其可經排列以使得可在EL0等級中採取來自EL0之某些例外,且在彼情形中可提供用於EL0之單獨SPSR暫存器。
圖9圖示根據一個實施例的可由於採取例外而發生之轉變之示例性順序。假定開始時處理電路系統係在受限制/預設狀態中且在EL0下執行。在點400處,對EL1等級採取例外,因此,與EL1等級相關聯之SPSR暫存器在其處於EL0等級下之同時擷取處理器之當前過程狀態,包含擷取受限制狀態作為經保存範圍檢查狀態。當在點405處轉變至EL1級時,處理在執行狀態中開始,且因此例外處置操作可執行對可用於處理電路系統之有界指標集之修改且因此變更能力域。在需要在執行狀態中執行之任何步驟之後,可在保持於執行狀態中之同時執行例外處置操作之其餘部分,或在一個實施例中,處理電路系統可針對例外處置操作之其餘部分切換回至受限制狀態。
在點410處,假定自EL1等級至EL2等級採取另一例外。因此,在點410處,與EL2相關聯之SPSR暫存器將擷取處理電路系統之狀態X。作為此經擷取之過程狀態X之部分,將擷取在點410處適當出現之範圍檢查狀態,此範圍檢查狀態可為執行狀態或受限制狀態,此取決於在點405與410之間執行之處理。
不考慮點410處之當前範圍檢查狀態,當在點415處進入EL2等級時,處理將在執行狀態中開始。如先前參考步驟405處執行之處理所論述,此將允許處理電路系統在期望之情況下對能力域做出改變,且此後處理可在執行狀態中繼續,或範圍檢查狀態可切換回至受限制狀態。
在點420處,假定發生來自當前例外之返回,此時EL2等級下之處理電路系統將在狀態Y中(其中範圍檢查狀態可在執行狀態或受限制狀態中)。
在點425處返回至EL1等級期間,與等級EL2相關聯之SPSR暫存器之內容將複製至當前過程狀態暫存器74中以使EL1狀態返回至狀態X。然而,在狀態Y識別受限制狀態且狀態X識別執行狀態之情形中,在一個實施例中隨後將執行圖7之步驟270之先前所述的特例處置。
接著,處理電路系統將在點425與430之間繼續處於等級EL1中,此時在點435處執行自原始例外之返回以返回至EL0等級。作為此過程之部分,將使用與EL1等級相關聯之SPSR暫存器以復原至當前過程狀態74(在點400處擷取之經保存過程狀態)中,藉此在點435處使處理電路系統返回至受限制狀態。
如先前參考圖1所述,在一個實施例中可提供存取控制暫存器76。特定而言,在每一例外等級下,程式可存取若干系統暫存器及操作,諸如轉譯上下文控制、系統呼叫及例外返回。對此功能性之存取可潛在地破壞由能力域提供之安全性,且提供存取控制暫存器提供一種在處於某些能力域中之同時限制對此等功能之相異集之存取的機制。特定而言,如圖10中所展示,存取控制暫存器76可包括複數個欄位452、454、456,每一欄位與特定功能性集相關聯。每一欄位中之值識別對應功能性是否可由處理電路系統存取。在一個實施例中,可針對所有例外等級提供單個存取控制暫存器76,但替代地,可針對每一例外等級提供單獨存取控制暫存器。
如圖11中所展示,若在步驟470處判定處理電路系統處於執行狀態中,則過程進行至步驟475,其中處理器對功能性之存取獨立於存取控制暫存器內容。因此,當處理電路系統係在執行狀態中時存取控制暫存器內之值無影響。替代地,處理電路系統可不受限制地存取功能性或其存取可藉由某些先已存在之存取控制機制來判定。
然而,若在步驟470處判定處理電路系統不處於執行狀態中,則如由步驟480所指示,可藉由存取控制暫存器內容判定可由處理器存取之功能性。因此,可透過使用此存取控制暫存器進一步限制在預設狀態中可用於處理電路系統之功能性,以提供超越可在處於執行狀態中時施加之任何局限之額外局限。
亦應注意,存取控制暫存器欄位將不必與可藉由處理電路系統存取之所有可用功能性對應。因此,在一個實施例中,對未由存取控制暫存器之欄位涵蓋之功能性集之任何現有存取控制保持有效,而不考慮處理電路系統係在預設狀態還是執行狀態中。
在一個實施例中,當處理電路系統正在預設狀態中執行時,不能夠對存取控制暫存器76之內容做出任何修改。替代地,對存取控制暫存器之修改限於處理電路系統在執行狀態中執行。在具有用於個別例外等級之單獨存取控制暫存器之實施例中,存取控制暫存器可經排列以使得用於至少一個例外等級之存取控制暫存器僅可藉由處理電路系統在較高例外等級下於執行狀態中執行來修改。
上述實施例提供一種用於允許在資料處理裝置之操作期間變更可用於處理電路系統之能力域之有效且受控制的機制。藉由為此目的而提供專用執行狀態且將進入至執行狀態限制於預定事件(諸如,採取例外),其提供用於暫時禁用某些範圍檢查之受控制的環境以便使得能夠對定義能力域之有界指標集做出改變。
在本申請案中,使用用語「經配置以…」以意指裝置之元件具有能夠實施所定義操作之配置。在此上下文中,「配置」意指硬體或軟體之互連配置或方式。舉例而言,裝置可具有提供所定義操作之專用硬體,或者處理器或其他處理裝置可經程式化以執行此功能。「經配置以」並不暗指裝置元件需要以任何方式改變以便提供所定義操作。
儘管本文已參考所附圖式詳細地描述本發明之說明性實施例,但應理解,本發明並不限於彼等精確實施例且熟習此項技術者可在不背離如隨附申請專利範圍所定義的本發明之範疇及精神之情況下在其中實施各種改變、添加及修改。舉例而言,可在不背離本發明之範疇之情況下對獨立請求項之特徵與附屬請求項之特徵進行各種組合。
2‧‧‧資料處理裝置
4‧‧‧處理管線
6‧‧‧提取級
8‧‧‧解碼級
10‧‧‧發佈級
12‧‧‧執行級
14‧‧‧回寫級
20‧‧‧1階指令快取記憶體
22‧‧‧分支預測器
24‧‧‧分支目標位址快取記憶體
30‧‧‧算術/邏輯單元
32‧‧‧浮點單元
34‧‧‧載入/儲存單元
36‧‧‧L1資料快取記憶體
40‧‧‧暫存器
44‧‧‧2階快取記憶體
50‧‧‧主記憶體
52‧‧‧轉譯旁看緩衝器
60‧‧‧有界指標暫存器
62‧‧‧指標值
64‧‧‧範圍資訊
66‧‧‧限制資訊
68‧‧‧下界位址/邊界
69‧‧‧上界位址/邊界
70‧‧‧控制/狀態暫存器
72‧‧‧經保存過程狀態
74‧‧‧當前過程狀態
76‧‧‧存取控制暫存器
80‧‧‧程式計數器能力暫存器
82‧‧‧欄位
84‧‧‧範圍資訊
86‧‧‧限制資訊
90‧‧‧預設資料能力暫存器
92‧‧‧範圍資訊
94‧‧‧限制資料
100‧‧‧能力暫存器
102‧‧‧指標
104‧‧‧範圍資訊
106‧‧‧限制資訊
108‧‧‧標籤位元
110‧‧‧記憶體位址空間
115‧‧‧資料塊
120‧‧‧相關標籤位元
150‧‧‧方框
155‧‧‧方框
160‧‧‧方框
165‧‧‧方框
170‧‧‧過程狀態
175‧‧‧範圍檢查狀態欄位
200‧‧‧步驟
205‧‧‧步驟
210‧‧‧步驟
215‧‧‧步驟
220‧‧‧步驟
225‧‧‧步驟
250‧‧‧步驟
255‧‧‧步驟
260‧‧‧步驟
265‧‧‧步驟
270‧‧‧步驟
300‧‧‧例外等級3
305‧‧‧EL2例外等級
310‧‧‧EL1等級
312‧‧‧EL1等級
314‧‧‧EL1等級
320‧‧‧EL0等級
322‧‧‧EL0等級
330‧‧‧EL1等級
340‧‧‧EL0等級
342‧‧‧EL0等級
400‧‧‧點
405‧‧‧點
410‧‧‧點
415‧‧‧點
420‧‧‧點
425‧‧‧點
430‧‧‧點
435‧‧‧點
452‧‧‧欄位
454‧‧‧欄位
456‧‧‧欄位
470‧‧‧步驟
475‧‧‧步驟
480‧‧‧步驟
將僅藉由舉例方式參考本技術之如隨附圖式中所示之實施例進一步描述本技術,其中:
圖1為根據一個實施例之裝置之方塊圖;
圖2展示指令類型之實例,若嘗試設定或存取有界指標儲存元件集內之指標值,則可針對指令類型觸發錯誤,其中彼指標值用於規定由相關聯之範圍資訊所指示之範圍外之位址;
圖3圖示根據一個實施例的與有界指標相關聯之標籤位元之使用;
圖4示意性地圖示根據一個實施例的如何按照各種各樣之不同情形中之能力監管記憶體存取;
圖5為圖示根據一個實施例的在採取例外時保存於經保存過程狀態暫存器內且根據一個實施例的識別兩個可能當前範圍檢查狀態之資料之示圖;
圖6為圖示根據一個實施例的在採取例外時執行之步驟之流程圖;
圖7為圖示根據一個實施例的在自例外返回時所採取之步驟之流程圖;
圖8圖示根據一個實施例的可如何提供多個例外等級;
圖9圖示根據一個實施例的由於採取例外且隨後自彼等例外之返回而在各種例外等級之間轉變之示例性順序;
圖10圖示根據一個實施例提供之存取控制暫存器之格式;且
圖11為圖示根據一個實施例的如何根據範圍檢查狀態當前是否為執行狀態而使用圖10之存取控制暫存器之流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
2‧‧‧資料處理裝置
4‧‧‧處理管線
6‧‧‧提取級
8‧‧‧解碼級
10‧‧‧發佈級
12‧‧‧執行級
14‧‧‧回寫級
20‧‧‧1階指令快取記憶體
22‧‧‧分支預測器
24‧‧‧分支目標位址快取記憶體
30‧‧‧算術/邏輯單元
32‧‧‧浮點單元
34‧‧‧載入/儲存單元
36‧‧‧L1資料快取記憶體
40‧‧‧暫存器
44‧‧‧2階快取記憶體
50‧‧‧主記憶體
52‧‧‧轉譯旁看緩衝器
60‧‧‧有界指標暫存器
62‧‧‧指標值
64‧‧‧範圍資訊
66‧‧‧限制資訊
70‧‧‧控制/狀態暫存器
72‧‧‧經保存過程狀態
74‧‧‧當前過程狀態
76‧‧‧存取控制暫存器
80‧‧‧程式計數器能力暫存器
82‧‧‧欄位
84‧‧‧範圍資訊
86‧‧‧限制資訊
90‧‧‧預設資料能力暫存器
92‧‧‧範圍資訊
94‧‧‧限制資料
Claims (18)
- 一種用於管理有界指標的裝置,其包括:處理電路系統,其用於執行一指令序列;複數個儲存元件,其可由該處理電路系統存取,此等儲存元件用於儲存有界指標及非有界指標,每一有界指標具有與其相關聯之顯式範圍資訊,此顯式範圍資訊在使用該有界指標時指示一可允許記憶體位址範圍;以及一當前範圍檢查儲存元件,其用於儲存用於該處理電路系統之一當前範圍檢查狀態;當該當前範圍檢查狀態指示一預設狀態時,該處理電路系統回應於識別待用於識別一記憶體位址之一指標之該指令序列中的一記憶體存取指令之執行而執行一範圍檢查操作,以判定是否許可對彼記憶體位址之存取;當該記憶體存取指令識別該等有界指標中之一者為該指標時,參考與彼有界指標相關聯之該顯式範圍資訊執行該範圍檢查操作;且當該記憶體存取指令識別該等非有界指標中之一者為該指標時,參考針對該處理電路系統所定義之預設範圍資訊執行該範圍檢查操作;當偵測到至少一個事件時,將該當前範圍檢查狀態設定至一執行狀態;且當在該執行狀態中時,該處理 電路系統回應於執行該記憶體存取指令以在該經識別之指標係一非有界指標時禁用該範圍檢查操作。
- 如請求項1所述之裝置,其中該至少一個事件包括藉由該處理電路系統採取一例外。
- 如請求項2所述之裝置,其進一步包括:一經保存範圍檢查儲存元件,其用於儲存一經保存範圍檢查狀態;當採取該例外時,該經保存範圍檢查儲存元件經更新以在回應於採取該例外而將該當前範圍檢查狀態設定至該執行狀態之前,儲存由該處理電路系統使用之該當前範圍檢查狀態作為該經保存範圍檢查狀態。
- 如請求項3所述之裝置,其中當自該例外返回時,該當前範圍檢查儲存元件經更新以識別該經保存範圍檢查狀態作為該當前範圍檢查狀態。
- 如請求項2所述之裝置,其中當採取該例外時,該處理電路系統經排列以執行一例外處置操作,在該例外處置操作期間執行一或多個記憶體存取而在該執行狀態中以變更將在自該例外返回時可用於該處理電路系統之一有界指標集。
- 如請求項1所述之裝置,其中當在該執行狀態中時,該處理電路系統回應於執行該記憶體存取指令以進一步在該經識別之指標係一有界指標時禁用該 範圍檢查操作。
- 如請求項1所述之裝置,其進一步包括一預設範圍儲存元件,該預設範圍儲存元件用於儲存該預設範圍資訊。
- 如請求項1所述之裝置,其中:該處理電路系統經排列以發佈一提取記憶體位址以識別待提取以用於隨後由該處理電路系統執行之一指令,當在該預設狀態中時,該處理電路系統經排列以在發佈該提取記憶體位址以便參考針對該處理電路系統所定義之預設提取範圍資訊判定是否許可該提取記憶體位址之存取之前,執行一提取範圍檢查操作;且當在該執行狀態中時,該處理電路系統經排列以禁用該提取範圍檢查操作。
- 如請求項8所述之裝置,其中藉由一程式計數器值判定該提取記憶體位址且該預設提取範圍資訊係程式計數器範圍資訊。
- 如請求項1所述之裝置,其中該處理電路系統係可在複數個例外等級下操作,每一例外等級具有不同軟體執行特權,且該處理電路系統經排列以回應於由該處理電路系統採取之至少一例外子集而改變正操作所處之該例外等級。
- 如請求項10所述之裝置,其中當該處理電 路系統正以該等例外等級中之至少一者操作時,該當前範圍檢查狀態係可在該執行狀態與該預設狀態之間改變同時保持處於該相同例外等級。
- 如請求項10所述之裝置,其中該至少一個事件包括藉由該處理電路系統採取一例外,該裝置進一步包括:一經保存範圍檢查儲存元件,其用於儲存一經保存範圍檢查狀態;當採取該例外時,該經保存範圍檢查儲存元件經更新以在回應於採取該例外而將該當前範圍檢查狀態設定至該執行狀態之前,儲存由該處理電路系統使用之該當前範圍檢查狀態作為該經保存範圍檢查狀態;其中採取該例外導致該處理電路系統自一第一例外等級轉變至一第二例外等級,該經保存範圍狀態儲存元件經更新以在採取該例外之前識別由該處理電路系統在該第一例外等級下使用之該範圍檢查狀態,且在將該處理電路系統轉變至該第二例外等級時將該當前範圍檢查狀態設定至該執行狀態。
- 如請求項12所述之裝置,其中在該第二例外等級下操作期間,該處理電路系統經排列以將該當前範圍檢查狀態自該執行狀態改變至該預設狀態。
- 如請求項13所述之裝置,其中當自該例外 返回時,該處理電路系統經排列以往回轉變至該第一例外等級,且該當前範圍檢查儲存元件經更新以識別該經保存範圍檢查狀態作為該當前範圍檢查狀態,除非此將在自該例外返回時導致該當前範圍檢查狀態自該預設狀態改變至該執行狀態。
- 如請求項1所述之裝置,其進一步包括:一存取控制儲存元件,其具有一或多個欄位,每一欄位與一對應功能性集相關聯且具有指示當該處理電路系統係在該預設狀態中時可由該處理電路系統存取彼對應功能性集之一值;當在該執行狀態中時,該處理電路系統對每一對應功能性集之存取獨立於該存取控制儲存中之該相關聯值。
- 如請求項15所述之裝置,其中在該預設狀態中,防止該處理電路系統更新該存取控制儲存元件。
- 一種操作一裝置之方法,該裝置具有:處理電路系統,其用於執行一指令序列;以及複數個儲存元件,其用於儲存供由該處理電路系統存取之有界指標及非有界指標,每一有界指標具有與其相關聯之顯式範圍資訊,該顯式範圍資訊在使用該有界指標時指示一可允許記憶體位址範圍,該方法包括以下步 驟:儲存用於該處理電路系統之一當前範圍檢查狀態;當該當前範圍檢查狀態指示一預設狀態時,則回應於識別待用於識別一記憶體位址之一指標之該指令序列中的一記憶體存取指令之執行而執行一範圍檢查操作,以判定是否許可對彼記憶體位址之存取;當該記憶體存取指令識別該等有界指標中之一者為該指標時,參考與彼有界指標相關聯之該顯式範圍資訊執行該範圍檢查操作;且當該記憶體存取指令識別該等非有界指標中之一者為該指標時,參考針對該處理電路系統所定義之預設範圍資訊執行該範圍檢查操作;以及當偵測到至少一個事件時,將該當前範圍檢查狀態設定至一執行狀態;當在該執行狀態中時,該處理電路系統回應於執行該記憶體存取指令以在該經識別之指標係一非有界指標時禁用該範圍檢查操作。
- 一種用於管理有界指標的裝置,其包括:處理手段,其用於執行一指令序列;複數個儲存元件手段,其供由該處理手段存取且用於儲存有界指標及非有界指標,每一有界指標具有與其相關聯之顯式範圍資訊,該顯式範圍資訊在使用該有界指標時指示一可允許記憶體位址範圍;以及 一當前範圍檢查儲存元件手段,其用於儲存用於該處理手段之一當前範圍檢查狀態;當該當前範圍檢查狀態指示一預設狀態時,該處理手段用於回應於識別待用於識別一記憶體位址之一指標之該指令序列中的一記憶體存取指令之執行而執行一範圍檢查操作,以判定是否許可對彼記憶體位址之存取;當該記憶體存取指令識別該等有界指標中之一者為該指標時,參考與彼有界指標相關聯之該顯式範圍資訊執行該範圍檢查操作;且當該記憶體存取指令識別該等非有界指標中之一者為該指標時,參考針對該處理手段所定義之預設範圍資訊執行該範圍檢查操作;當偵測到至少一個事件時,將該當前範圍檢查狀態設定至一執行狀態;且當在該執行狀態中時,該處理手段用於在該經識別之指標係一非有界指標時於執行該記憶體存取指令期間禁用該範圍檢查操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1521276.4A GB2544996B (en) | 2015-12-02 | 2015-12-02 | An apparatus and method for managing bounded pointers |
GB1521276.4 | 2015-12-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201721438A TW201721438A (zh) | 2017-06-16 |
TWI726925B true TWI726925B (zh) | 2021-05-11 |
Family
ID=55177594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105134384A TWI726925B (zh) | 2015-12-02 | 2016-10-25 | 用於管理有界指標的裝置和方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10528490B2 (zh) |
EP (1) | EP3384396B1 (zh) |
JP (1) | JP6902029B2 (zh) |
KR (1) | KR20180088678A (zh) |
CN (1) | CN108292272B (zh) |
GB (1) | GB2544996B (zh) |
IL (1) | IL259039B (zh) |
TW (1) | TWI726925B (zh) |
WO (1) | WO2017093708A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2547247B (en) * | 2016-02-12 | 2019-09-11 | Advanced Risc Mach Ltd | An apparatus and method for controlling use of bounded pointers |
GB2562102B (en) * | 2017-05-05 | 2019-09-04 | Advanced Risc Mach Ltd | An apparatus and method for managing use of capabilities |
GB2563010B (en) | 2017-05-25 | 2019-12-25 | Advanced Risc Mach Ltd | An apparatus and method for managing a capability domain |
GB2563580B (en) * | 2017-06-15 | 2019-09-25 | Advanced Risc Mach Ltd | An apparatus and method for controlling a change in instruction set |
US10416963B2 (en) * | 2017-06-19 | 2019-09-17 | Arm Limited | Bounds checking |
GB2563888B (en) * | 2017-06-28 | 2020-03-18 | Advanced Risc Mach Ltd | Sub-realms |
GB2564130B (en) * | 2017-07-04 | 2020-10-07 | Advanced Risc Mach Ltd | An apparatus and method for controlling execution of instructions |
GB2574231B (en) | 2018-05-31 | 2020-12-30 | Advanced Risc Mach Ltd | An apparatus and method for triggering action performance |
GB2576506B (en) * | 2018-08-20 | 2021-06-30 | Advanced Risc Mach Ltd | An apparatus and method for controlling use of bounded pointers |
GB2578135B (en) * | 2018-10-18 | 2020-10-21 | Advanced Risc Mach Ltd | Range checking instruction |
GB2592069B (en) * | 2020-02-17 | 2022-04-27 | Advanced Risc Mach Ltd | Address calculating instruction |
GB2606355B (en) * | 2021-05-04 | 2023-09-13 | Advanced Risc Mach Ltd | Technique for constraining access to memory using capabilities |
US20220197638A1 (en) * | 2022-03-14 | 2022-06-23 | Intel Corporation | Generating encrypted capabilities within bounds |
US20230342289A1 (en) * | 2022-04-21 | 2023-10-26 | Arm Limited | Apparatus and method for managing capabilities |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673387A (en) * | 1994-05-16 | 1997-09-30 | Lucent Technologies Inc. | System and method for selecting test units to be re-run in software regression testing |
WO2003005212A1 (en) | 2001-07-06 | 2003-01-16 | Axis Systems, Inc. | Inter-chip communication system |
US20060187251A1 (en) * | 2004-05-27 | 2006-08-24 | Silverbrook Research Pty Ltd | Printer controller for supplying data to a printhead module having interleaved shift registers |
US20110078389A1 (en) * | 2009-09-30 | 2011-03-31 | Patel Baiju V | Managing and implementing metadata in central processing unit using register extensions |
US20150227414A1 (en) * | 2012-08-31 | 2015-08-13 | Pradeep Varma | Systems And Methods Of Memory And Access Management |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325496A (en) * | 1991-12-24 | 1994-06-28 | Intel Corporation | Selectable pointer validation in a computer system |
JP2004013556A (ja) * | 2002-06-07 | 2004-01-15 | Matsushita Electric Ind Co Ltd | プロセッサ装置、コンパイル装置及びその方法 |
GB2402236B (en) * | 2003-05-27 | 2005-04-27 | Simon Alan Spacey | A method and apparatus for securing a computer system |
US20070005933A1 (en) * | 2005-06-29 | 2007-01-04 | Kopec Brian J | Preventing multiple translation lookaside buffer accesses for a same page in memory |
TW200805065A (en) * | 2006-01-17 | 2008-01-16 | Nxp Bv | Region protection unit, instruction set and method for protecting a memory region |
GB2448151B (en) * | 2007-04-03 | 2011-05-04 | Advanced Risc Mach Ltd | Memory domain based security control within data processing systems |
GB2448149B (en) * | 2007-04-03 | 2011-05-18 | Advanced Risc Mach Ltd | Protected function calling |
US8509346B2 (en) * | 2007-10-10 | 2013-08-13 | St-Ericsson Sa | Transmitter with reduced power consumption and increased linearity and dynamic range |
JP5044387B2 (ja) * | 2007-12-26 | 2012-10-10 | ルネサスエレクトロニクス株式会社 | 情報処理装置及びそのスタックポインタ更新方法 |
US8452934B2 (en) * | 2008-12-16 | 2013-05-28 | Sandisk Technologies Inc. | Controlled data access to non-volatile memory |
US7962729B2 (en) * | 2009-01-05 | 2011-06-14 | International Business Machines Corporation | Dynamic runtime range checking of different types on a register using upper and lower bound value registers for the register |
US8450300B2 (en) * | 2009-07-13 | 2013-05-28 | Cempra Pharmaceuticals Inc. | Fusidic acid dosing regimens for treatment of bacterial infections |
GB2474666B (en) * | 2009-10-21 | 2015-07-15 | Advanced Risc Mach Ltd | Hardware resource management within a data processing system |
JP5842833B2 (ja) * | 2013-01-17 | 2016-01-13 | トヨタ自動車株式会社 | 情報処理装置、プログラム |
GB2540206B (en) * | 2015-07-10 | 2018-02-07 | Advanced Risc Mach Ltd | Apparatus and method for executing instruction using range information associated with a pointer |
-
2015
- 2015-12-02 GB GB1521276.4A patent/GB2544996B/en active Active
-
2016
- 2016-10-19 WO PCT/GB2016/053260 patent/WO2017093708A1/en active Application Filing
- 2016-10-19 JP JP2018527226A patent/JP6902029B2/ja active Active
- 2016-10-19 KR KR1020187017928A patent/KR20180088678A/ko not_active Application Discontinuation
- 2016-10-19 US US15/771,107 patent/US10528490B2/en active Active
- 2016-10-19 CN CN201680068762.2A patent/CN108292272B/zh active Active
- 2016-10-19 EP EP16787528.5A patent/EP3384396B1/en active Active
- 2016-10-25 TW TW105134384A patent/TWI726925B/zh active
-
2018
- 2018-04-30 IL IL259039A patent/IL259039B/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673387A (en) * | 1994-05-16 | 1997-09-30 | Lucent Technologies Inc. | System and method for selecting test units to be re-run in software regression testing |
WO2003005212A1 (en) | 2001-07-06 | 2003-01-16 | Axis Systems, Inc. | Inter-chip communication system |
US20060187251A1 (en) * | 2004-05-27 | 2006-08-24 | Silverbrook Research Pty Ltd | Printer controller for supplying data to a printhead module having interleaved shift registers |
US20110078389A1 (en) * | 2009-09-30 | 2011-03-31 | Patel Baiju V | Managing and implementing metadata in central processing unit using register extensions |
US20150227414A1 (en) * | 2012-08-31 | 2015-08-13 | Pradeep Varma | Systems And Methods Of Memory And Access Management |
Also Published As
Publication number | Publication date |
---|---|
IL259039A (en) | 2018-06-28 |
KR20180088678A (ko) | 2018-08-06 |
US20180349294A1 (en) | 2018-12-06 |
CN108292272A (zh) | 2018-07-17 |
GB2544996A (en) | 2017-06-07 |
JP6902029B2 (ja) | 2021-07-14 |
GB201521276D0 (en) | 2016-01-13 |
US10528490B2 (en) | 2020-01-07 |
JP2018536238A (ja) | 2018-12-06 |
IL259039B (en) | 2020-04-30 |
CN108292272B (zh) | 2022-11-08 |
TW201721438A (zh) | 2017-06-16 |
WO2017093708A1 (en) | 2017-06-08 |
GB2544996B (en) | 2017-12-06 |
EP3384396A1 (en) | 2018-10-10 |
EP3384396B1 (en) | 2020-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI726925B (zh) | 用於管理有界指標的裝置和方法 | |
TWI725059B (zh) | 用於控制有界指標的使用之設備及方法 | |
CN110622133B (zh) | 用于管理能力域的设备及方法 | |
CN110574009B (zh) | 用于管理对能力的使用的设备和方法 | |
JP2023038361A (ja) | 命令セット内の変更を制御する装置及び方法 | |
KR20230101826A (ko) | 캐퍼빌리티들을 사용하여 메모리에 대한 액세스를 제약하기 위한 기술 | |
TW202319913A (zh) | 用於使用能力限制對記憶體存取之技術 |