TW201901423A - 用於詮釋與能力相關聯之權限的裝置及方法 - Google Patents

用於詮釋與能力相關聯之權限的裝置及方法 Download PDF

Info

Publication number
TW201901423A
TW201901423A TW107115205A TW107115205A TW201901423A TW 201901423 A TW201901423 A TW 201901423A TW 107115205 A TW107115205 A TW 107115205A TW 107115205 A TW107115205 A TW 107115205A TW 201901423 A TW201901423 A TW 201901423A
Authority
TW
Taiwan
Prior art keywords
capability
permission
permissions
state
bit
Prior art date
Application number
TW107115205A
Other languages
English (en)
Other versions
TWI783996B (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 TW201901423A publication Critical patent/TW201901423A/zh
Application granted granted Critical
Publication of TWI783996B publication Critical patent/TWI783996B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3557Indexed addressing using program counter as base address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

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)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)
  • Selective Calling Equipment (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本文提供用於詮釋與能力相關聯之權限的裝置及方法。該裝置具有:處理電路系統,用於執行指令以執行操作;以及能力儲存元件,是處理電路系統可存取的並且經佈置以儲存用於約束處理電路系統在執行指令時執行的至少一個操作的能力。該能力標識複數N個預設權限,該等預設權限的狀態根據預設詮釋從該能力中提供的N個權限旗標判定。根據該預設詮釋,每個權限旗標可以與該等預設權限中的一個相關聯。處理電路系統隨後經佈置以根據替代詮釋來分析能力,以便根據N個權限旗標的邏輯組合來導出權限的擴展集的狀態,其中該擴展集包括至少N+1個權限。此提供了用於將額外權限編碼到能力中,而不增加所需的權限旗標的數量,同時仍保持期望行為的機制。

Description

用於詮釋與能力相關聯之權限的裝置及方法
本技術係關於資料處理領域。
基於能力的架構正越來越受關注,其中針對給定過程限定了某些能力,並且若嘗試執行在限定的能力之外的操作,則可能觸發錯誤。該等能力可以採取各種形式,但是一種類型的能力是有界指針(其亦可以被稱為「胖指針」)。
可以提供多種能力儲存元件(例如暫存器)以用於儲存供資料處理裝置的處理電路系統存取的能力。每種能力可以包括標識與該能力相關聯之一種或多種權限的多個權限旗標,例如以將能力的用途限制於處理電路系統的某些類型的操作、某些模式的操作等等。例如,考慮到此類能力儲存元件內的有界指針,此可以標識由處理電路系統可存取的不可擴展範圍的記憶體位址,以及標識相關聯之權限的一個或多個權限旗標。儘管可以允許處理電路系統採取步驟來縮小範圍和/或清除與可用於其的任何特定有界指針相關聯之權限旗標,但是在正常操作中不能擴展範圍或設置權限旗標以試圖增加由彼有界指針提供給處理電路系統的能力。
應期望允許擴展與能力相關聯之權限的數量,但是用於對能力進行編碼的位元的數量通常受到約束,例如由儲存能力的能力儲存元件的大小約束。
在第一示例性配置中,提供了一種裝置,該裝置包括:處理電路系統,用於執行指令以執行操作;以及能力儲存元件,可由該處理電路系統存取並且被佈置以儲存用於約束該處理電路系統在執行該等指令時執行的至少一個操作的能力,該能力標識複數N個預設權限,該等預設權限的狀態是根據預設詮釋從該能力中提供的N個權限旗標判定,根據預設詮釋,每個權限旗標與預設權限中的一個相關聯;該處理電路系統被佈置為根據替代詮釋來分析能力,以便根據該N個權限旗標的邏輯組合來導出權限的擴展集的狀態,該擴展集包括至少N+1種權限。
在另一個示例性配置中,提供了一種詮釋裝置中的與能力相關聯之權限的方法,該裝置包括:處理電路系統,執行指令以便執行操作;以及能力儲存元件,可由該處理電路系統存取並且被佈置以儲存用於約束該處理電路系統在執行該等指令時執行的至少一個操作的能力,該能力標識複數N個預設權限,並且該方法包括:在該能力內提供N個權限旗標,使得預設權限的狀態是根據預設詮釋從該N個權限旗標判定,並且每個權限旗標與預設權限中的一個相關聯;以及根據替代詮釋來分析能力,以便根據該N個權限旗標的邏輯組合來導出權限的擴展集的狀態,該擴展集包括至少N+1種權限。
在又一示例性配置中,提供了一種裝置,該裝置包括:處理構件,用於執行指令以執行操作;以及能力儲存元件構件,用於由該處理電路系統存取並用於儲存用於約束該處理構件在執行該等指令時執行的至少一個操作的能力,該能力標識複數N個預設權限,該等預設權限的狀態是根據預設詮釋從該能力中提供的N個權限旗標判定的,根據預設詮釋每個權限旗標與預設權限中的一個相關聯;處理構件,用於根據替代詮釋來分析能力,以便根據該N個權限旗標的邏輯組合來導出權限的擴展集的狀態,該擴展集包括至少N+1種權限。
在又一示例性配置中,提供了虛擬機電腦程式,該虛擬機電腦程式包括用於控制主資料處理裝置以提供與上述第一示例性配置的裝置相對應的指令執行環境的程式指令。在一個實施例中,可以提供電腦可讀取儲存媒體來儲存虛擬機電腦程式。
在參考附圖論述實施例之前,提供了實施例的以下描述。
如先前提及的,基於能力的架構正越來越受關注,其中針對給定過程限定了某些能力,並且若嘗試執行在限定的能力之外的操作,則可能觸發錯誤。可以限定各種類型的能力,但是一種類型的能力是有界指針(其在一個實施例中結合了指針值與相關聯之範圍和權限資訊)。
採用此類基於能力的架構的裝置通常將具有用於儲存能力的儲存元件(在本文中亦稱為有界指針儲存元件,或更一般地能力儲存元件)。儲存元件可以是暫存器(在此亦稱為有界指針暫存器或能力暫存器)和/或可以是通用記憶體中的記憶體位置,例如在堆棧記憶體上的位置。可以使用某些指令來引用此類儲存元件以便存取期望的能力並根據該能力執行操作。例如,考慮到有界指針,此類指令的執行可以使有界指針被擷取,並且使該有界指針中的指針值隨後被用來導出在指令執行期間所需的記憶體中的位址。指針值可以直接用於標識記憶體位址,或者可以用於導出記憶體位址,例如藉由向指針值添加偏移。若記憶體位址在由範圍資訊指定的範圍內,並且滿足在權限資訊中指定的任何權限,則操作將被允許繼續進行。
因此例如,當使用有界指針時,指針值本身可指向或用於判定待存取的資料值的位址或待提取以執行的指令。然而,範圍和權限資訊隨後可以被引用,例如以確保所存取的任何位址在可允許的範圍內並且是出於被允許的目的而被存取。此可能可用於例如確保根據指針判定的位址保持在某些邊界內以保持行為的安全性或功能正確性。藉由此類方法,可以有效地監督由處理電路系統進行的記憶體存取。
在一個典型的實施方式中,每種權限的狀態可以由該能力內的相關聯權限旗標指示,該旗標處於設置狀態或清除狀態以便標識相應權限的狀態。當權限旗標清除時,此將通常意謂相關聯權限處於清除狀態,此繼而指示處理電路系統針對所論述的能力撤銷了彼權限。相反,當權限旗標經設置時,此可能意謂相關聯之權限具有設置狀態,並且因此處理電路系統可以被授予該能力的彼權限。然而,在一個實施例中,可能仍然需要在決定處理電路系統是否實際上被授予彼權限之前引用其他控制資訊,並且因此可以使用由相關聯之權限旗標所標識的權限的設置狀態來指示處理電路系統被授予所論述能力的權限、受制於任何覆寫控制資訊。
期望允許針對個別能力指定增多數量的權限,因為此類方法會允許增強能力使用的靈活性。然而,能力編碼空間通常非常受約束。例如,考慮到有界指針的實例,有界指針能力亦需要能夠指定指針值,並且指示相關聯範圍的資訊,以及因此用於規定權限旗標的剩餘位元的數量可能意謂不可能僅僅繼續向彼能力添加其他權限旗標。
在此描述的實施例提供了用於允許在此類情況下擴展與能力相關聯之權限的數量的有效機制。
特別地,在一個實施例中,提供了一種裝置,該裝置具有:處理電路系統,用於執行指令以執行操作;以及能力儲存元件,是處理電路系統可存取的並且經佈置以儲存用於約束處理電路系統在執行指令時執行的至少一個操作的能力。該能力可以標識複數N個預設權限,該等預設權限的狀態根據預設詮釋,從該能力中提供的N個權限旗標判定。根據該預設詮釋,每個權限旗標可以與預設權限中的一個相關聯。因此,權限旗標與預設權限之間可能存在1:1的對應關係。
然而,根據所描述的實施例,處理電路系統經佈置以根據替代詮釋來分析能力,以便根據N個權限旗標的邏輯組合來導出權限的擴展集的狀態,其中該擴展集包括至少N+1個權限。
藉由此類方法,可以擴展與該能力相關聯之權限的數量,而不增加權限旗標的數量。此外,該方法提供了一種非常靈活的機制,因為可以使用相同的權限旗標來支援預設詮釋和替代詮釋兩者。因此,可以在支援預設詮釋和替代詮釋兩者的系統中使用該等能力,但是亦可以在僅支援彼等詮釋中的一種詮釋的系統中使用該等能力。此例如可以藉由亦允許將該等能力與僅支援預設詮釋的處理電路系統的實例一起使用來提供向後相容性。
權限的擴展集可以採取各種形式,但是在一個實施例中包括複數N個預設權限,以及至少一個額外權限。此因此允許經由使用該N個權限旗標的替代詮釋來推斷該能力的至少一種「新」權限。此「新」權限可以是先前沒有在基於能力的架構中提供的權限,或者可以是先前僅在更全局規模上提供的權限,而不是可以針對個別能力設置或清除的權限。
在一個示例實施例中,權限的擴展集包括可修改權限,該可修改權限當處於清除狀態時標識該能力不可由一個或多個能力修改指令修改。藉由此類方法,個別能力可以被標記為不可修改的,此可以在某些情況下提供增強的安全性。
在一個實施例中,可修改權限當處於設置狀態時允許在能力中提供的N個權限旗標從設定值轉換為清除值,受制於任何覆寫控制資訊以防止修改。在一些情況下,可能沒有覆寫控制資訊,並且因此可修改權限當處於設置狀態時直接指示權限旗標可以從設置值轉換至清除值。然而,在其他實施例中,可能存在額外的控制資訊,該額外的控制資訊需要在可以確認處於設置狀態下的可修改權限確實允許選擇性清除權限旗標之前被引用。
與能力方面的一般慣例一致,可能不允許活動受到能力約束的過程以將清除的權限旗標恢復到設置值的方式來修改能力,即使當可修改權限處於設置狀態下時亦如此。出於此原因,當可修改權限處於設置狀態下時,此可以允許權限旗標從設置值轉換為清除值,但是可能不允許被清除的權限旗標改變為設置值。
儘管已經參考改變權限旗標的值的能力描述了可修改權限的設置,但是可修改權限亦可以影響該能力內的其他欄位。例如,在受制於防止能力被修改的其他機制的情況下,當可修改權限處於設置狀態下時,能力可以藉由通用能力修改指令來修改,該等通用能力修改指令可以例如清除權限旗標、縮小邊界和/或改變指針值的位址,在此種情況下,假設該能力是有界指針。
預設權限可以採取各種形式,但是在一個實施例中包括:一種或多種記憶體存取權限,用以標識在清除狀態下時該能力被阻止由一個或多個記憶體存取操作用來存取記憶體中的資料;以及可執行權限,用以標識在處於清除狀態下時該能力在形成程式計數器能力時被阻止用於從記憶體提取指令。該等預設權限因此可以用於約束試圖存取記憶體位址空間的操作。
該一種或多種記憶體存取權限可以採取各種形式,但是在一個實施例中包括:至少一種寫入權限,用以標識該能力是否被阻止用於執行對記憶體的至少一種類型的寫入操作;以及至少一種讀取權限,用以標識該能力是否被阻止用於執行從記憶體的至少一種類型的讀取操作。因此,可以針對讀取和寫入操作提供單獨的權限,並且事實上可以指定多種寫入權限和/或多種讀取權限。多種權限的使用可以例如用來標識當處理電路系統在一些模式下而非其他模式下操作時,在執行某些類型的指令而非其他類型的指令時可以執行寫入或讀取操作,和/或可以指定讀取或寫入的可用性取決於正在被讀取或寫入的資訊。例如,對於正在被讀取或寫入的資訊本身就是能力或者替代地是標準資料值的情況,可以指定單獨的讀取和寫入權限。
在預設權限包括可執行權限並且權限的擴展集至少包括先前所述的可修改權限的添加的實施例中,則根據N個權限旗標的替代詮釋,可以防止能力在設置狀態下同時具有可執行權限和可修改權限兩者。相反,在可修改權限從清除狀態改變為設置狀態時,權限旗標的值的某些轉變可能導致可執行權限從設置狀態轉換到清除狀態,並且反之亦然。
在一個實施例中,N個權限旗標包括至少一個寫入位元、至少一個讀取位元和執行位元,該等位元的值根據預設詮釋分別標識了至少一種寫入權限、至少一種讀取權限和執行權限的狀態。在一個此類實施例中,根據替代詮釋,處理電路系統經佈置以當至少一個寫入位元被設置或者執行位元被清除時判定可修改權限處於設置狀態下。此為能夠指定可修改權限何時處於針對特定能力的設置狀態下提供了很大的靈活性。
儘管根據預設詮釋,每個權限旗標與相關聯之預設權限之間通常存在1:1的對應關係,但在一個實施例中當根據替代詮釋來詮釋權限旗標時情況並非如此。相反,當使用替代詮釋時,權限旗標的邏輯組合用於判定預設權限中的至少一種的狀態。
例如,在一個實施例中,根據替代詮釋,處理電路系統經佈置以當執行位元被設置並且所有至少一個寫入位元被清除時判定可執行權限處於設置狀態下。因此,根據替代詮釋,為了判定可執行權限處於設置狀態下僅僅設置執行位元是不足夠的,而是替代地亦需要使能力內提供的任何寫入位元亦被清除。此提供了特別高效的編碼來使權限的擴展集能夠被編碼在可用的N個權限旗標內,因為通常認為不期望允許能力具有針對記憶體的相同區域寫入權限設置和可執行權限設置兩者,並且根據所提出的編碼此選項被阻止。
在一個實施例中,當使用替代詮釋時,讀取權限亦被詮釋為不僅使用相關聯之讀取位元,亦使用額外資訊。特別地,對於每種讀取權限,根據替代詮釋,處理電路系統可以經佈置以判定當相關聯之讀取位元被設置並且可修改權限處於設置狀態下或能力被用作程式計數器能力時讀取權限處於設置狀態下。通常,因此根據替代詮釋需要使可修改權限處於設置狀態下以便授予任何讀取權限。然而,在能力不可修改的一個特定實例中,特別是在能力被用作程式計數器能力的一個特定實例中,可以給出選擇性的可讀取性。在彼實例中,當該能力處於程式計數器能力中時,取決於相關聯之讀取位元,該能力可以被標記為可執行且不可修改的,但是仍然可以被允許在特定情況下可讀取。
在預設詮釋和替代詮釋兩者中,藉由轉換權限旗標的狀態來實現權限的改變。如先前所提及的,當過程被給予改變能力的權限時,其通常將僅能夠以推斷額外約束的方式,而不是以放鬆能力約束的方式來改變能力。關於權限,此意謂通常該過程將僅能夠清除權限旗標而不是設置權限旗標,並且因此權限的轉換經由清除權限旗標中的一個或多個而發生。因為根據替代詮釋,權限旗標的邏輯組合被用來判定各種權限的狀態,所以清除一個或多個權限旗標可能允許權限中的至少一種權限移入設置狀態。例如,可以藉由清除執行旗標來將可修改權限移入設置狀態。
某些權限旗標的值的轉換亦可能與某些指令的處理相關聯。例如,在一個實施例中,處理電路系統可以經佈置以回應於執行位址生成指令而根據程式計數器能力生成結果能力來清除結果能力內的執行位元。此可能導致在實踐中可能非常有用的一些有趣的行為變化。例如,此可能意謂當用作程式計數器能力時可執行但不可修改的能力可以用於生成儲存在通用能力暫存器中的結果能力,該結果能力隨後是可修改的。其亦可以例如隨後是可讀取的,取決於一個或多個讀取權限位元。特別地,在一個實施例中,當程式計數器能力具有的執行位元經設置並且具有的所有至少一個寫入位元被清除時,結果能力中執行位元的清除導致結果能力根據替代詮釋而被視為具有的其可修改權限處於設置狀態下並且具有的每個讀取權限處於由相關聯之讀取位元指示的狀態下。
作為在執行一個或多個特定類型的指令時可以如何管理權限的另一個實例,處理電路系統可以回應於執行具有鏈路指令的分支以根據程式計數器能力生成返回位址能力,使得當可修改權限在程式計數器能力內處於清除狀態下時,返回位址能力亦具有其可修改權限處於清除狀態下。藉由此類方法,可能創建不可修改的返回位址能力,此可以提供增強的安全性。
在一個實施例中,該裝置可以具有一個或多個通用能力儲存元件和程式計數器能力儲存元件。在一個此類實施例中,當儲存在該一個或多個通用能力儲存元件中的一個中的能力具有經設置的執行位元,讀取位元中的至少一個經設置並且所有至少一個寫入位元被清除時,處理電路系統根據替代詮釋而受到約束,以僅使用所述能力來形成待儲存在程式計數器能力儲存元件中的新程式計數器能力。然而,一旦該能力被儲存在程式計數器能力儲存元件中,新的程式計數器能力就根據替代詮釋而被視為具有在設置狀態下的每個讀取權限,該讀取權限的相關聯之讀取位元被設置,從而使得文字值能夠由處理電路系統從記憶體中讀取。因此,可以分配僅可以在執行分支指令時的適當時候使用能力來進行分支的任務,並且因此該能力僅可以被用作另一個常式的入口點。然而,當分支發生並且該能力被加載到程式計數器能力中時,彼另一常式則可以其他方式使用該能力,例如藉由使用例如參考程式計數器能力生成位址的加載指令來使得能夠從記憶體讀取文字值。
在一個實施例中,處理電路系統可以經佈置以始終使用替代詮釋。然而,在另一個實施例中可以提供配置儲存元件,該配置儲存元件儲存用於指示處理電路系統要應用預設詮釋和替代詮釋中的哪一個的配置值。此因此提供了允許根據需要隨著時間推移在預設詮釋與替代詮釋之間切換的機制。
上述權限可以與由裝置使用的各種不同類型的能力相關聯,但是在一個實施例中,該能力是有界指針,並且該等權限被用來控制處理電路系統對在該能力內指定的指針值的使用。
現在將參照附圖描述特定實施例。
第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可以將彼等指令映射到多個解碼的指令,此映射可以被稱為微操作(μop或uop)。因此,在從L1指令快取20提取的指令與由管線的稍後階段所見的指令之間可能不存在一對一的關係。通常,在本申請中對「指令」的提及應被詮釋為包括微操作。
將解碼的指令傳遞到發出階段10,該階段判定執行指令所需的運算元是否可用,並在運算元可用時發出指令以供執行。一些實施例可以支援按序處理,以使得指令以與從L1指令快取20提取指令的程式順序相對應的順序發出以供執行。其他實施例可以支援無序執行,使得指令可以與該程式順序不同的順序發出到執行階段12。無序處理可用於提高效能,因為在等待運算元時先前的指令停止,可首先執行該程式順序中運算元可用的後續指令。
發出階段10發出指令至執行階段12,在執行階段中執行指令以進行各種資料處理操作。例如,執行階段可以包括多個執行單元30、32、34,包括用於對整數值進行算術或邏輯運算的算術/邏輯單元(arithmetic/logic unit; ALU)30、用於進行對以浮點形式表示的值的操作的浮點(floating-point; FP)單元32,以及用於執行將資料值從1階(L1)資料快取36加載到暫存器40的加載操作或將資料值從暫存器40儲存至L1資料快取36的儲存操作的加載/儲存單元34。應該理解的是,該等僅僅是可以提供的執行單元的類型的一些實例,並且亦可以提供許多其他類型。為了執行處理操作,執行階段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的2階位址轉換可以隨後將中間位址轉換成用於存取快取或記憶體的實體位址。例如,此可以用於支援虛擬化,在虛擬化中1階位址轉換可以由作業系統管理並且2階位址轉換可以由超管理器管理。
如第1圖所示,裝置2可以具有一組有界指針暫存器60。儘管第1圖中圖示的該組有界指針暫存器與該組通用資料暫存器40實體上分開,但在一個實施例中相同的實體儲存器可用於提供通用資料暫存器和有界指針暫存器兩者。
每個有界指針暫存器60包括可用於判定待存取的資料值的位址的指針值62,以及當使用對應的指針62時指定位址的可允許範圍的範圍資訊64。有界指針暫存器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和權限資訊66可以用不同的方式設置。例如,安全代碼,或作業系統或超管理器,可以指定給定指針所允許的範圍和權限。例如,指令設置架構可以包括用於設置或修改給定指針62的範圍資訊64和/或權限66的多個指令,並且該等指令的執行可能限於處理器4的某些軟體或某些模式或異常級別。然而,作為此類用於修改能力的基於特權的機制的補充或替代,在本文描述的實施例中可以導出個別能力的可修改權限。因此,在一個示例性佈置中,修改能力的能力可取決於彼能力的可修改權限是否處於設定狀態下,或者試圖修改該能力的過程是否具有所需特權。或者,可能需要在允許修改能力之前,可修改權限處於設置狀態下並且試圖修改該能力的過程具有所需特權。
除了在執行引用指針的某些指令時可以在執行狀態12處使用的有界指針儲存元件集合60之外,程式計數器能力(program counter capability; PCC)暫存器80亦可用於當從1階指令快取20提取指令時在提取階段6處提供類似的功能。特別地,程式計數器指針可以儲存在欄位82中,其中PCC 80亦提供範圍資訊84和任何適當的限制資訊86,類似於使用有界指針儲存元件集合60中的每個指針提供的範圍資訊和限制資訊。
由有界指針暫存器內的有界指針標識的記憶體位址的任何特定範圍可以包含資料、指令和/或其他能力(亦即,其他有界指針)。因此,應理解的是,在任何時間點,處理電路系統的存取記憶體的能力由一組能力限定,該組能力包括在有界指針暫存器中標識的能力及經由保持在彼等有界指針暫存器中的能力可存取的任何其他能力,並且此組能力在此被稱為能力域。
PCC暫存器80中指定的範圍資訊和任何相關的限制可以各種方式設置。然而,在資訊是使用當前能力域中的處理電路系統可用的有界指針中的一個或多個有界指針來判定的一個實施例中,使得沒有記憶體位址可以使用常駐在針對當前能力域標識的記憶體位址範圍之外的基於PCC的邊界檢查來存取。
第3圖示意性地圖示如何將標記位元與個別資料區塊相關聯地用來標識彼等資料區塊是否代表能力(亦即有界指針和相關的限制資訊),或者代表正常資料。特別地,記憶體位址空間110將儲存通常將具有指定大小的一系列資料區塊115。純粹為了說明起見,在此實例中假定每個資料區塊包括128個位元。與每個資料區塊115相關聯地提供了標記欄位120,該標記欄位在一個實例中是被稱為標記位元的單個位元欄位,其被設置以標識相關聯的資料區塊代表能力,並且被清除以指示相關資料區塊代表正常資料並且因此不能被視為能力。應該理解的是,與該設置或清除狀態相關聯的實際值可以根據實施例而變化,但是純粹作為說明,在一個實施例中若標記位元具有值1,則其指示相關聯的資料區塊是能力,並且若其具有值0,則其指示相關聯的資料區塊包含正常資料。
當能力被加載到有界指針暫存器60(本文中亦稱為能力暫存器)中的一個有界指針暫存器如第3圖所示的能力暫存器100中時,則標記位元與能力資訊一起移動。因此,當能力被加載到能力暫存器100中時,指針102、範圍資訊104和限制資訊106(在下文中稱為權限資訊)將被加載到該能力暫存器中。此外,與彼能力暫存器相關聯,或者作為彼能力暫存器中的特定位欄位,標記位元108將經設置以標識內容代表能力。類似地,當能力被儲存回記憶體時,相關標記位元120將被設置為與儲存能力的資料區塊相關聯。藉由此類方法,可能區分能力和正常資料,從而確保正常資料不能用作能力。
如先前論述的,應期望增加可能與個別能力相關聯之權限的數量,而不會增加所需權限旗標的數量。特別地,能力中的編碼空間通常短缺,並且可能沒有足夠的空間來針對期望編碼的每種額外權限添加其他權限旗標。
第4圖給出了考慮到例如有界指針,可以在現有能力中提供的權限旗標的實例。有界指針能力150包括用於儲存指針值的指針欄位155,以及用於儲存範圍資訊以標識可使用指針欄位155內的指針值存取的位址的可允許範圍的範圍欄位160。隨後可以提供多個權限欄位165來儲存一個或多個權限旗標。在所描述的實施例中,每個權限旗標採取可以設置或清除的單一位元值的形式。出於所描述的實施例的目的,將假定能力150具有一種或多種寫入權限、一種或多種讀取權限和可執行權限,並且在欄位165內提供對應於彼等各種權限的多個權限位元。因此,總體考慮可能存在C種不同寫入權限和B種不同讀取權限的情況,則可以提供C個寫入權限位元W0 至WC-1 ,並且亦可以提供B個讀取權限位元R0 至RB-1 。每種讀取或寫入權限可以與處理器的特定操作類型或特定操作模式相關聯,或者實際上不同的權限可以與被存取的不同類型的資訊相關聯,使得例如不同的寫入和讀取權限可以根據被存取的資訊本身是能力還是正常的資料值來設置。儘管為了說明起見已經假定存在與相應的讀取和寫入權限相關聯的多個讀取和寫入權限位元,但是在一個替代實施例中,可以存在單種讀取權限和單種寫入權限,其中彼等讀取和寫入權限的狀態由單個讀取權限位元和單個寫入權限位元表示。
亦如第4圖所示,額外的權限可以被編碼在該能力內,並且因此例如可執行權限可以由相關聯的執行(X)位元的值來指示。
根據權限欄位165內的權限位元的預設詮釋,每個權限位元與相應的權限相關聯,並因此直接標識彼相關聯權限的狀態。此在第4圖中進一步說明。因此,若權限位元Wi 經設置,則此指示寫入權限i處於設置狀態下,並且因此欄位155內的指針值可以用於標識類型i的寫入操作的位址,受制於任何覆寫控制資訊。類似地,若權限位元Rj 經設置,則此意謂讀取權限j處於設置狀態下,並且因此指針值可以用於標識類型j的讀取操作的位址,受制於任何覆寫控制資訊。最後,若設置了執行位元X,則此意謂可執行權限處於設置狀態下,並且因此指針值可用於標識提取指令的位址,同樣受制於任何覆寫控制資訊。
相反,若相關聯的權限位元被清除,則此意謂該能力的相關聯權限被撤銷,並且因此不能使用相關聯的能力來執行對與彼權限相關聯的類型的存取。
在下文描述的實施例中,相同的權限位元被保留,但是它們可以被不同地詮釋以便導出權限的擴展集合的狀態。特別地,根據替代詮釋,權限位元的邏輯組合用於標識一組增加的權限的狀態。在一個實施例中,該組增加的權限包括例如參考第4圖論述的所有寫入、讀取和可執行權限,亦即根據W、R和X權限位元的預設詮釋可用的權限,但是此外至少一個另外的權限亦是從彼等W、R和X權限位元的值可導出的。特別地,在一個實施例中,亦提供與該能力相關聯的可修改權限,而不需要指定任何額外的權限位元。
參考第5圖的流程圖說明了在一個實施例中根據上述權限位元判定可修改權限的狀態的方式。在步驟200中,判定是否正在使用替代詮釋,並且若不是,則此意謂預設詮釋適用,該過程分支到步驟205。根據預設詮釋,可修改權限不存在。替代地,修改任何能力(capability)的能力(abiliy)將由其他地方的控制資訊來限定,並且將不會使用每個能力中的權限位元來在逐能力基礎上限定。
然而,若正在使用替代詮釋,則過程前進到步驟210,在該步驟中判定是否設置了W位元中的至少一個。若是,則過程前進到步驟220,在該步驟中判定可修改權限處於設置狀態下。因此,此意謂能力可以藉由修改指令的某些能力來修改,除非其他控制狀態阻止此種修改。例如,仍然可能存在一些通用的覆寫控制資訊,此意謂即使根據權限位元判定的可修改權限指示不阻止修改能力,特定能力亦為不可修改的。
若在步驟210處判定沒有設置W位元中的任一者,則在步驟215處判定執行位元是否清除。若執行位元是清除的,則此亦指示可修改權限處於設置狀態下,並且相應地,過程分支到步驟220。然而,若執行位元處於設置狀態下,則過程前進到步驟225,在該步驟中判定可修改權限處於清除狀態下。當可修改權限處於清除狀態下時,此意謂無法修改相關聯之能力。此因此使個別能力能夠被標記為不可修改的,此可以在基於能力的架構內提供增強的安全性。
此外,當使用替代詮釋時增強了靈活性,因為可以改變能力內的某些權限位元的值以將能力從可修改狀態改變至不可修改狀態。此外,在特定情況下,例如經由使用某些位址生成指令,可能可以將不可修改的能力轉換為可修改的能力,如稍後將參照第11圖作為實例論述的。
儘管在使用預設詮釋時,在個別權限位元與相關聯之權限之間存在1:1的對應關係,但是根據替代詮釋,情況並非如此,並且可以使用權限位元的邏輯組合來判定特定權限的狀態。第6圖例如圖示可以如何根據正在使用預設詮釋還是替代詮釋來評估可執行權限的狀態。
在步驟250,判定處理電路系統是否使用替代詮釋。若否,則在步驟255判定是否設置了執行(X)位元。若是,則過程前進到步驟270,在此步驟處判定可執行權限處於設置狀態下,否則過程前進到步驟275,在此步驟處判定可執行權限處於清除狀態下。
然而,若判定正在使用替代詮釋,則過程前進到步驟260,在該步驟中判定是否設置了X位元。若否,則過程前進到步驟275,在此步驟處判定執行權限處於清除狀態下。然而,若設置了X位元,則此本身並不一定意謂可執行權限處於設置狀態下,而是替代地在步驟265處執行額外的檢查以判定能力中提供的所有W位元是否清除。應該注意的是,若能力內有多個W位元,則需要在步驟265處檢查所有彼等W位元,以判定它們是否全部清除。僅當所有W位元都清除時,過程才前進到步驟270以判定可執行權限處於設置狀態下,否則過程將前進到步驟275,在該步驟中將判定可執行權限處於清除狀態下。
返回到步驟265,應該理解的是,在步驟265處判定所有的W位元是清除的與判定可修改權限處於清除狀態下相同,因為從第5圖可以看出,若W位元中的任一者經設置,則修改權限將處於設置狀態下。因此,將可以看出,在參照第5圖和第6圖描述的實施例中,可執行權限和可修改權限中的僅一個可以在任何時間點處於設置狀態下。
第7圖是說明可以如何根據正在使用預設詮釋還是替代詮釋來評估讀取權限中的任何一種的狀態的流程圖。在步驟300處,判定是否正在使用替代詮釋,並且若否則在步驟305處判定是否設置了相關聯的R權限位元。若是,則在步驟325處判定特定讀取權限處於設置狀態下,否則在步驟330處判定特定讀取權限處於清除狀態下。
然而,若正在使用替代詮釋,則過程前進到步驟310,在該步驟中首先判定是否針對所論述的讀取權限設置了相關聯的讀取權限位元。若否,則過程直接前進到步驟330,在該步驟中判定讀取權限處於清除狀態下。
然而,若設置了相關的讀取權限位元,則此並非直接意謂讀取權限被判定為處於設置狀態下,而是替代地需要一個或多個其他檢查。首先,在步驟315處,判定可修改權限是否處於設置狀態下。在一個實施例中,此不一定需要直接重新評估可修改權限,而是替代地可以參照W位元和X位元來執行此檢查。特別地,從第5圖的先前論述應理解,當至少一個寫入位元經設置或者執行位元是清除的時,將判定可修改權限處於設置狀態下,並且因此可以在步驟315處執行彼檢查。
若判定可修改權限處於設置狀態下,則過程前進到步驟325,在該步驟中判定相關讀取權限處於設置狀態下。然而,若可修改權限不處於設置狀態下,則在步驟320處執行另一檢查以判定該能力當前是否正被用作程式計數器能力。若是,則即使可修改權限未被設置,在步驟325處仍然判定相關讀取權限處於設置狀態下。因此,當彼等能力常駐在PCC暫存器80內時,某些不可修改的能力仍可被視為具有至少一個可讀取權限集合。
若在步驟320處判定該能力當前未被用作程式計數器能力,則該過程前進到步驟330,在該步驟中判定讀取權限處於清除狀態下。
第8圖是說明在一個實施例中如何評估任何特定寫入權限的狀態的流程圖。如方塊350所指示,在所描述的實施例中,寫入權限以完全相同的方式詮釋,而不管正在使用預設詮釋還是替代詮釋。特別地,在步驟355,判定是否設置了相關聯的寫入權限位元,並且若是,則在步驟360處判定特定寫入權限處於設置狀態下,否則在步驟365處判定特定寫入權限處於清除狀態下。
根據以上對第5圖至第8圖的論述將認識到,一種或多種寫入權限、一種或多種讀取權限、可執行權限和可修改權限的狀態可全部使用在能力內編碼的現有W、R和X權限位元來判定。不需要添加額外的可修改權限位元,並且因此額外的可修改權限可以被編碼到該能力中,而不需要任何額外的權限位元編碼空間。
第9圖是圖示四種上述不同類型的權限的狀態的表格,取決於X位元、R位元和W位元。在此實例中,為了便於說明,假定只有一種讀取權限和一種寫入權限,並且因此只有單獨R位元和單獨W位元。
在更一般的情況下,如從第5圖至第8圖的流程圖應當理解,當判定可修改和可執行權限的狀態時(並且事實上,給定的可讀取權限取決於可修改權限是否是經設置的),將需要作為評估彼等權限是處於設置狀態下還是清除狀態下的過程的組成部分來對複數個W位元執行邏輯或(OR)和與(AND)運算。
第10圖是圖示當能力被標記為可修改時,可以如何將個別權限位元從設置值改變為清除值以便實現權限中的一個或多個權限的狀態轉換的狀態轉換圖。此外,為了便於說明,假定只有單獨的W權限位元和單獨的R權限位元,但是在存在多個R權限位元和多個W權限位元的更一般情況下,彼等R權限位元和W權限位元中的每一個都可以被獨立地清除。
如由初始狀態400所示,R位元、W位元和X位元中的每一位元可以最初被設置為邏輯1值。如從第9圖中將顯而易見的,此意謂該能力是不可執行但可修改的,並且允許讀取和寫入操作兩者。因為能力是可修改的,所以若需要可以清除個別權限位元。藉由清除一個位元,因此可以轉換到狀態405、407、409中的任一個。在狀態407中,R位元和W位元仍然經設置,但是X位元被清除,而在狀態409中,W位元和X位元仍然經設置,但R位元被清除。返回參考第9圖,將可以看到,狀態407和409兩者皆對應於可修改權限處於設置狀態下的狀態。然而,狀態405(其中R位元和X位元是經設置的,而W位元不是經設置)對應於可修改權限處於清除狀態下的狀態,亦即,該能力是不可修改的。
第10圖圖示了當個別權限位元被清除時可能發生的多個其他可能的轉換。為了便於說明,直接從狀態400到412或從狀態400到416的轉換被省略,但是在一個實施例中,彼等轉換亦是可能的。應該注意,狀態412和414仍然是能力可修改的狀態,但是狀態410是能力不可修改的另一狀態。儘管狀態416原則上是可修改的狀態,但其表示所有權限位元已被清除的狀態,並且相應地由彼能力約束的過程將不能夠進一步改變該能力內的權限。在一些實施例中,可以判定狀態416處於不使用狀態下。
因為第10圖中的狀態405、410表示能力不可修改的情況,此似乎排除了從彼等狀態的進一步轉換。然而,如由與轉換420、425相關聯使用的「ADR」符號所指示的,在一個實施例中,位址生成指令的執行可以允許由路徑420、425指示的轉換發生。此將參照第11圖進一步論述。
如第11圖所示,位址生成指令可以指定通用能力暫存器CN 作為目的地暫存器,並且亦可以藉由指令內的立即值或參考內容指定偏移值的整數暫存器來指定源運算元。當執行此類位址生成指令時,PCC暫存器80內的程式計數器能力被用作源能力450。指針值465是從PCC 450中提取的並且經歷與源運算元組合的邏輯運算460。此可以例如涉及向指針值添加立即值以便生成結果值470,其中位址生成指令指定立即值,或者可以例如涉及向指針值添加偏移,其中彼偏移是參考整數暫存器獲得的,從而再次產生結果值470。範圍資訊和權限資訊隨後被複製到除了X位元外基本上未改變的結果能力455。特別地,當執行位址生成指令時,在結果能力中清除X位元值。此因此使得能夠實現第10圖中所示的兩個轉換420、425。特別地,在兩種情況下,使用PCC內的可執行、不可修改的能力450來創建不可執行但可修改的結果能力455。此為轉換420提供了特別有趣的效果,其中PCC 450是可執行且不可修改的,並且僅當在PCC暫存器80中時才是可讀取的,但由此生成的結果能力455現在是可修改的並且完全可讀取的(如根據將XRW狀態「110」與第9圖中所示的狀態「010」進行比較而顯而易見的)。
第12圖圖示了根據一個實施例的具有鏈路指令的分支的操作。如第12圖所示,具有鏈路指令的分支的執行中涉及兩個獨立的過程。首先根據當前程式計數器能力500生成返回位址能力517。在一個實施例中,此將涉及提取指針值505,並且經由添加操作510將指令大小添加到彼指針值以便生成返回位址指針515。隨後將所有範圍和權限資訊複製到返回位址能力中,該返回位址能力在一個實施例中被儲存在能力鏈路暫存器(capability link register; CLR)中。CLR可以各種方式提供,但在一個實施例中是通用能力暫存器中的特定一個通用能力暫存器,例如C30 。由於有效的程式計數器能力500將是可執行且不可修改的,此意謂返回位址能力亦是不可修改的,因此藉由確保返回位址能力在其被用作返回位址之前不能被調整來提供增強的安全性。
一旦已經產生了返回位址能力,則能力暫存器CN 520的內容被複製到PCC暫存器80中以形成新的程式計數器能力525。在適當的時候,可以執行返回指令以從分支返回,此時PCC將用CLR的內容進行更新。因為CLR能力是不可修改的,此將確保彼返回位址能力在干預期間不被竄改。
第13圖是示意性地圖示在通用能力暫存器中建立不可修改的能力隨後可以如何用於提供具有僅在執行分支指令時能夠用作入口點能力的能力的過程的圖。特別地,如方塊565所指示,假設能力550具有其X位元經設置,其W位元全部被清除,並且至少一個R位元經設置。如從先前描述的第9圖中將顯而易見的,此基本上意謂該能力是不可修改、可執行的(僅當該能力被放置於PCC暫存器80內時才是相關的),並且僅當在PCC暫存器80中時是可讀取的.因此,在通用能力暫存器CN 中,此能力550是不可讀取或不可寫入,並且不可修改的。因此此能力僅可以由已經被賦予彼能力的過程使用,作為可以經由分支指令加載到PCC中的能力。
當隨後執行分支指令以便將能力暫存器CN 的內容加載到PCC暫存器80中時,此導致更新的程式計數器能力560,該能力的X位元、W位元和R位元的集合570對應於源能力550的欄位565內的彼等位元。儘管X、W和R權限位元都沒有發生變化,但是因為該能力現在是程式計數器能力,該能力是可執行的,因此允許提取指令,但對於相應的R位元經設置的類型的任何讀取操作亦是可讀取的。
此意謂現在可以使用PCC 560從記憶體中讀取「文字」。例如,可以使用加載指令來將從PCC導出的位址指定為源位址,其中結果被儲存在整數儲存器Xn中的一個內。當從PCC 560導出位址時,若位址在可允許範圍內,並且所論述的讀取操作的類型具有經設置的相關聯的R權限位元,則可以執行加載操作以便從導出的位址加載文字資料,並將彼資料儲存在暫存器Xn內。
在一個實施例中,處理電路系統可以經佈置以始終使用替代詮釋。然而,處理電路系統的其他實例亦可以使用相同的能力,但根據預設詮釋來詮釋該等實例,因為在此描述的機制不涉及所使用的權限位元的任何變化,因此提供了與使用預設詮釋的現有系統的向後相容性。
在另一個實施例中,處理電路系統可以能夠選擇性地從使用預設詮釋切換到替代詮釋,並且反之亦然,並且如第1圖所示,配置位元90可以作為控制資訊的一部分而提供給處理電路系統,其中配置位元的值決定處理電路系統是使用預設詮釋還是替代詮釋。該配置位元的設置可能限於在處理電路系統上執行的特定類型的代碼。例如,安全代碼、或作業系統或超管理器,可以經佈置來在某些情況下改變配置位元。
第14圖圖示了可以使用的虛擬機實施方式。儘管先前描述的實施例在用於操作支援相關技術的特定處理硬體的裝置和方法方面實施本發明,但是亦可能提供硬體設備的所謂虛擬機實施方式。該等虛擬機實施方式在運行支援虛擬機程式610的主作業系統620的主處理器630上運行。通常,需要大型的強大處理器來提供以合理速度執行的虛擬機實施方式,但是在某些情況下此類方法可以經調整,諸如當需要為了相容性或重複使用原因而運行產生自另一處理器的代碼時。虛擬機程式610可以儲存在電腦可讀取儲存媒體(其可以是非暫時性媒體)上,並且向應用程式600提供應用程式介面(指令執行環境),該應用程式介面與應由實際硬體提供的應用程式介面相同,該實際硬體是由虛擬機程式610模型化的設備。上述用於詮釋能力的權限的技術可以在虛擬機環境內實施。例如,在虛擬機中運行或控制虛擬機的軟體可以利用實施此類特征的硬體。
上述實施例提供了用於將一種或多種額外權限編碼到能力中而不消耗額外權限位元的機制。現有權限位元的邏輯組合可以用於使權限的擴展集能夠被編碼。在一個實施例中,此涉及重複使用冗餘編碼以避免浪費稀缺權限位元來編碼一種或多種額外權限,但同時仍然保持期望的行為。此外,維持單調遞減的權限模型。特別地,無論是使用預設詮釋還是使用替代詮釋,當能力被標識為可修改時個別權限位元僅能夠從設置值改變為清除值,並且因此受能力約束的過程不能夠將彼能力內已經被清除的任何權限位元恢復到設置狀態。
在一個特定實施例中,添加的額外權限是可修改權限,從而使得能力的可修改效能夠在逐能力基礎上表示。此可以在基於能力的系統內提供增強的靈活性和安全性。視情況,可修改權限可以改變用於根據保持在PCC暫存器中的能力生成能力的某些指令的行為,包括但不限於將可修改權限運送到由分支和鏈路指令生成的能力中例如以產生不可修改的返回位址,和/或從由PC相對位址計算(ADR)指令生成的能力中移除可執行權限。
此外,藉由選擇性地清除權限位元可以適應某些有用的行為。例如,從具有X權限位元經設置的能力清除所有寫入權限位元將使該能力從可修改且不可執行改變為不可修改且可執行。作為另一個實例,例如經由使用ADR指令從具有至少一個可讀取權限位元經設置的能力中清除執行權限位元將使能力從不可修改、不可讀取改變為可修改且可讀取的。
此外,在使用可選配置位元90的實施例中,可以藉由使處理電路系統回復到預設詮釋來禁用可修改權限的效果,在預設詮釋中個別權限位元中的每一者具有相關聯的權限,並且沒有阻止修改能力的彼等權限位元的組合。當使用此類預設詮釋時,對修改能力的任何限制通常將在更全局規模上表示,例如參考一些通用控制資訊表示。
藉由使用替代詮釋,在權限位元的邏輯組合用於限定權限擴展集的狀態的情況下,此允許與個別能力相關聯地指定更強的(更受約束的)權限,而不需要增加所使用的權限位元的數量。
在本申請中,字詞「經配置為......」用於意謂裝置的元件具有能夠進行所限定的操作的配置。在此上下文中,「配置」意謂硬體或軟體的互連安排或方式。例如,該裝置可以具有提供所限定的操作的專用硬體,或者處理器或其他處理設備可以經程式化以執行該功能。「經配置為」並非暗示裝置元件需要以任何方式改變以提供所限定的操作。
儘管已經參照附圖詳細描述了本發明的說明性實施例,但是應該理解的是,本發明不限於彼等精確的實施例,並且可以由本領域中的技藝人士在其中實現各種改變、添加和修改,而不脫離如所附申請專利範圍所限定的本發明的範疇和精神。例如,在不脫離本發明的範疇的情況下,可以利用獨立請求項的特徵來與從屬請求項的特徵進行各種組合。
2‧‧‧資料處理裝置
4‧‧‧處理管線
6‧‧‧提取階段
8‧‧‧解碼階段
10‧‧‧發出階段
12‧‧‧執行階段
14‧‧‧回寫階段
20‧‧‧1階(L1)指令快取
22‧‧‧分支預測器
24‧‧‧分支目標位址快取(BTAC)
30‧‧‧算術/邏輯單元(ALU)
32‧‧‧浮點(FP)單元
34‧‧‧加載/儲存單元
36‧‧‧L1資料快取
40‧‧‧暫存器
44‧‧‧2階(L2)快取
50‧‧‧主記憶體
52‧‧‧轉換旁視緩衝器
60‧‧‧有界指針暫存器的集合
62‧‧‧指針值/指針
64‧‧‧範圍資訊
66‧‧‧限制資訊
68‧‧‧下邊界位址
69‧‧‧上邊界位址
80‧‧‧程式計數器能力(PCC)暫存器
82‧‧‧欄位
84‧‧‧範圍資訊
86‧‧‧限制資訊
90‧‧‧配置位元
100‧‧‧能力暫存器
102‧‧‧指針
104‧‧‧範圍資訊
106‧‧‧限制資訊
108‧‧‧標記位元
110‧‧‧XRW狀態
115‧‧‧資料區塊
120‧‧‧標記欄位
150‧‧‧有界指針能力
155‧‧‧指針欄位
160‧‧‧範圍欄位
165‧‧‧權限欄位
200‧‧‧步驟
205‧‧‧步驟
210‧‧‧步驟
215‧‧‧步驟
220‧‧‧步驟
225‧‧‧步驟
250‧‧‧步驟
255‧‧‧步驟
260‧‧‧步驟
265‧‧‧步驟
270‧‧‧步驟
275‧‧‧步驟
300‧‧‧步驟
305‧‧‧步驟
310‧‧‧步驟
315‧‧‧步驟
320‧‧‧步驟
325‧‧‧步驟
330‧‧‧步驟
350‧‧‧方塊
355‧‧‧步驟
360‧‧‧步驟
365‧‧‧步驟
400‧‧‧初始狀態
405‧‧‧狀態
407‧‧‧狀態
409‧‧‧狀態
410‧‧‧狀態
412‧‧‧狀態
414‧‧‧狀態
416‧‧‧狀態
420‧‧‧轉換
425‧‧‧轉換
450‧‧‧PCC
455‧‧‧結果能力
460‧‧‧邏輯運算
465‧‧‧指針值
470‧‧‧結果值
500‧‧‧當前程式計數器能力
505‧‧‧指針值
510‧‧‧添加操作
515‧‧‧返回位址指針
517‧‧‧返回位址能力
520‧‧‧能力暫存器
525‧‧‧新的程式計數器能力
550‧‧‧能力
560‧‧‧更新的程式計數器能力
565‧‧‧方塊/欄位
570‧‧‧位元的集合
600‧‧‧應用程式
610‧‧‧虛擬機程式
620‧‧‧主作業系統
630‧‧‧主處理器
僅舉例而言,將參照如附圖所示的本技術實施例來進一步描述本技術,在附圖中:
第1圖是根據一個實施例的裝置的方塊圖;
第2圖圖示若試圖設置或存取一組有界指針儲存元件內的指針值時可能觸發錯誤的指令類型的實例,其中該指針值用於指定在由相關聯之範圍資訊所指示的範圍以外的位址;
第3圖圖示根據一個實施例的與有界指針相關聯之標記位元的使用;
第4圖是圖示根據一個實施例可以與權限位元的預設詮釋一起在有界指針能力內提供的彼等權限位元的圖;
第5圖是圖示可以如何取決於正在使用預設詮釋還是正在使用替代詮釋,來根據權限位元判定可修改權限的狀態的流程圖;
第6圖是圖示可以如何取決於正在使用預設詮釋還是正在使用替代詮釋,來根據權限位元判定可執行權限的狀態的流程圖;
第7圖是圖示可以如何取決於正在使用預設詮釋還是正在使用替代詮釋,來根據權限位元判定特定讀取權限的狀態的流程圖;
第8圖是圖示可以如何取決於正在使用預設詮釋還是正在使用替代詮釋,來根據權限位元判定特定寫入權限的狀態的流程圖;
第9圖是示意性地圖示根據儲存在能力內的執行、讀取和寫入權限位元判定的,在一個實施例中根據替代詮釋的權限的擴展集的狀態的表格;
第10圖是指示在一個實施例中讀取、寫入和執行權限位元的被允許的狀態轉換的狀態轉換圖;
第11圖示意性地圖示了根據一個實施例在執行位址生成指令時執行的操作;
第12圖示意性地圖示根據一個實施例具有鏈路指令的分支的操作;
第13圖示意性地圖示根據一個實施例的分支指令的執行;以及
第14圖圖示了可以使用的虛擬機實施方式。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無

Claims (21)

  1. 一種裝置,包括: 處理電路系統,用於執行指令以執行操作;以及 一能力儲存元件,可由該處理電路系統存取並且被佈置以儲存用於約束該處理電路系統在執行該等指令時執行的至少一個操作的一能力,該能力標識複數N個預設權限,該等預設權限的狀態是根據一預設詮釋從該能力中提供的N個權限旗標判定的,根據該預設詮釋每個權限旗標與該等預設權限中的一個相關聯; 該處理電路系統經佈置以根據一替代詮釋來分析該能力,以便根據該N個權限旗標的邏輯組合來導出權限的一擴展集的狀態,該擴展集包括至少N+1個權限。
  2. 如請求項1所述的裝置,其中權限的該擴展集包括該複數N個預設權限和至少一個額外權限。
  3. 如請求項1所述的裝置,其中當一權限具有一設置狀態時,該處理電路系統被授予權限以使該能力受制於任何覆寫控制資訊,並且當一權限具有一清除狀態時,該處理電路系統撤銷針對該能力的彼權限。
  4. 如請求項1所述的裝置,其中權限的該擴展集包括一可修改權限,該可修改權限當處於一清除狀態下時藉由一個或多個能力修改指令來標識該能力是不可修改的。
  5. 如請求項4所述的裝置,其中該可修改權限當處於一設置狀態下時允許在該能力中提供的該N個權限旗標從一設置值轉換到一清除值,受制於防止修改的任何覆寫控制資訊。
  6. 如請求項1所述的裝置,其中該複數N個預設權限包括: 一種或多種記憶體存取權限,用以在一清除狀態下時標識該能力被阻止由一個或多個記憶體存取操作用來存取記憶體中的資料;以及 可執行權限,用以在處於一清除狀態下時標識該能力在形成一程式計數器能力時被阻止用於從記憶體提取指令。
  7. 如請求項6所述的裝置,其中該一種或多種記憶體存取權限包括:至少一種寫入權限,用以標識該能力是否被阻止用於執行對該記憶體的至少一種類型的寫入操作;以及至少一種讀取權限,用以標識該能力是否被阻止用於執行從該記憶體的至少一種類型的讀取操作。
  8. 如請求項1所述的裝置,其中權限的該擴展集包括一可修改權限,該可修改權限當處於一清除狀態下時藉由一個或多個能力修改指令來標識該能力是不可修改的,其中 該複數個預設權限包括可執行權限,該可執行權限用以標識在處於一清除狀態下時該能力在用作一程式計數器能力時被阻止用於從該記憶體提取指令;並且 根據該N個權限旗標的該替代詮釋,防止該能力在一設置狀態下具有該可執行權限和該可修改權限兩者。
  9. 如請求項8所述的裝置,其中: 該複數個預設權限進一步包括:至少一種寫入權限,用以標識該能力是否被阻止用於執行對該記憶體的至少一種類型的寫入操作;以及至少一種讀取權限,用以標識該能力是否被阻止用於執行從該記憶體的至少一種類型的讀取操作; 該N個權限旗標包括至少一個寫入位元、至少一個讀取位元和一執行位元,該等位元的值根據該預設詮釋分別標識該至少一種寫入權限、該至少一種讀取權限和該執行權限的該狀態;並且 根據該替代詮釋,該處理電路系統經佈置以當至少一個寫入位元經設置或者該執行位元被清除時判定該可修改權限處於該設置狀態下。
  10. 如請求項9所述的裝置,其中: 根據該替代詮釋,該處理電路系統經佈置以當該執行位元被設置並且所有該至少一個寫入位元被清除時判定該可執行權限處於該設置狀態下。
  11. 如請求項9所述的裝置,其中: 對於每種讀取權限,根據該替代詮釋,該處理電路系統經佈置以當該相關聯之讀取位元被設置並且該可修改權限處於該設置狀態下或該能力被用作一程式計數器能力時判定彼讀取權限處於該設置狀態下。
  12. 如請求項9所述的裝置,其中: 該處理電路系統經佈置以回應於執行一位址生成指令而根據一程式計數器能力生成一結果能力來清除該結果能力內的該執行位元。
  13. 如請求項12所述的裝置,其中當該程式計數器能力具有的該執行位元經設置並且具有的所有該至少一個寫入位元被清除時,該結果能力中的該執行位元的該清除導致該結果能力根據該替代詮釋而被視為具有的其可修改權限處於該設置狀態下並且具有的每個讀取權限處於由該相關聯之讀取位元指示的該狀態下。
  14. 如請求項9所述的裝置,其中: 該處理電路系統回應於執行具有鏈路指令的一分支以根據一程式計數器能力生成一返回位址能力,使得當該可修改權限在該程式計數器能力內處於該清除狀態下時,該返回位址能力亦具有其可修改權限處於該清除狀態下。
  15. 如請求項9所述的裝置,進一步包括: 至少一個額外的能力儲存元件,該至少一個額外的能力儲存元件與該能力儲存元件組合而形成一個或多個通用能力儲存元件和一程式計數器能力儲存元件; 當儲存在該一個或多個通用能力儲存元件中的一個中的該能力具有的該執行位元經設置,該等讀取位元中的至少一個經設置並且所有該至少一個寫入位元被清除時,該處理電路系統根據該替代詮釋而受到約束,以僅使用該能力來形成待儲存在該程式計數器能力儲存元件中的一新程式計數器能力;並且 一旦該能力被儲存在該程式計數器能力儲存元件中,該新的程式計數器能力就根據該替代詮釋而被視為具有的每個讀取權限在該設置狀態下,該讀取權限的相關聯之讀取位元被設置,從而使得文字值能夠由該處理電路系統從記憶體中讀取。
  16. 如請求項1所述的裝置,進一步包括: 一配置儲存元件,該配置儲存元件儲存用於指示該處理電路系統要應用該預設詮釋和該替代詮釋中的哪一個的一配置值。
  17. 如請求項1所述的裝置,其中該能力是一有界指針,並且該等權限被用來控制該處理電路系統對在該能力內指定的一指針值的使用。
  18. 一種詮釋一裝置中的與一能力相關聯之權限的方法,該裝置包括:處理電路系統,執行指令以便執行操作;以及一能力儲存元件,可由該處理電路系統存取並且被佈置以儲存用於約束該處理電路系統在執行該等指令時執行的至少一個操作的該能力,該能力標識複數N個預設權限,並且該方法包括以下步驟: 在該能力內提供N個權限旗標,使得該預設權限的一狀態是根據一預設詮釋從該N個權限旗標判定的,並且每個權限旗標與該等預設權限中的一個相關聯;以及 根據一替代詮釋來分析該能力,以便根據該N個權限旗標的邏輯組合來導出權限的一擴展集的狀態,該擴展集包括至少N+1種權限。
  19. 一種裝置,包括: 處理構件,用於執行指令以執行操作;以及 能力儲存元件構件,用於由該處理電路系統存取並且用於儲存用於約束該處理構件在執行該等指令時執行的至少一個操作的一能力,該能力標識複數N個預設權限,該等預設權限的狀態是根據一預設詮釋從該能力中提供的N個權限旗標判定的,根據該預設詮釋每個權限旗標與該等預設權限中的一個相關聯; 該處理構件,用於根據一替代詮釋來分析該能力,以便根據該N個權限旗標的邏輯組合來導出權限的一擴展集的狀態,該擴展集包括至少N+1種權限。
  20. 一種虛擬機電腦程式,包括用於控制一主資料處理裝置以提供與如請求項1中的任一項所述的裝置相對應的一指令執行環境的程式指令。
  21. 一種電腦可讀取儲存媒體,用於儲存根據請求項20的虛擬機電腦程式。
TW107115205A 2017-05-25 2018-05-04 用於詮釋與能力相關聯之權限的裝置及方法 TWI783996B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
??1708393.2 2017-05-25
GB201708393A GB2563009B (en) 2017-05-25 2017-05-25 An apparatus and method for interpreting permissions associated with a capability
GB1708393.2 2017-05-25

Publications (2)

Publication Number Publication Date
TW201901423A true TW201901423A (zh) 2019-01-01
TWI783996B TWI783996B (zh) 2022-11-21

Family

ID=59270921

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107115205A TWI783996B (zh) 2017-05-25 2018-05-04 用於詮釋與能力相關聯之權限的裝置及方法

Country Status (9)

Country Link
US (1) US11023237B2 (zh)
EP (1) EP3631621B1 (zh)
JP (1) JP7280195B2 (zh)
KR (1) KR102533823B1 (zh)
CN (1) CN110663024B (zh)
GB (1) GB2563009B (zh)
IL (1) IL270499B (zh)
TW (1) TWI783996B (zh)
WO (1) WO2018215734A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3264317B1 (en) * 2016-06-29 2019-11-20 Arm Ltd Permission control for contingent memory access program instruction
GB2563580B (en) * 2017-06-15 2019-09-25 Advanced Risc Mach Ltd An apparatus and method for controlling a change in instruction set
GB2564130B (en) * 2017-07-04 2020-10-07 Advanced Risc Mach Ltd An apparatus and method for controlling execution of instructions
GB2592069B (en) * 2020-02-17 2022-04-27 Advanced Risc Mach Ltd Address calculating instruction
WO2022199807A1 (en) * 2021-03-24 2022-09-29 Huawei Technologies Co., Ltd. Device and method for managing resource access

Family Cites Families (13)

* Cited by examiner, † Cited by third party
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
US8234477B2 (en) * 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US9361243B2 (en) * 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US6826672B1 (en) * 2000-05-16 2004-11-30 Massachusetts Institute Of Technology Capability addressing with tight object bounds
US7313734B2 (en) * 2002-01-14 2007-12-25 International Business Machines Corporation Method and system for instruction tracing with enhanced interrupt avoidance
US7444668B2 (en) * 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
GB2474666B (en) * 2009-10-21 2015-07-15 Advanced Risc Mach Ltd Hardware resource management within a data processing system
GB2482700A (en) * 2010-08-11 2012-02-15 Advanced Risc Mach Ltd Memory access control
US20130111168A1 (en) * 2011-10-27 2013-05-02 Freescale Semiconductor, Inc. Systems and methods for semaphore-based protection of shared system resources
CN104956342B (zh) * 2013-02-05 2018-04-27 Arm 有限公司 使用存储器保护单元来支持客户操作系统的虚拟化
US20140331019A1 (en) * 2013-05-06 2014-11-06 Microsoft Corporation Instruction set specific execution isolation
GB2514107B (en) * 2013-05-13 2020-07-29 Advanced Risc Mach Ltd Page table data management
GB2544315B (en) * 2015-11-12 2018-02-14 Advanced Risc Mach Ltd An apparatus and method for controlling use of bounded pointers

Also Published As

Publication number Publication date
IL270499B (en) 2022-06-01
CN110663024A (zh) 2020-01-07
JP2020521222A (ja) 2020-07-16
EP3631621B1 (en) 2022-10-26
US20200142700A1 (en) 2020-05-07
EP3631621A1 (en) 2020-04-08
WO2018215734A1 (en) 2018-11-29
KR20200011438A (ko) 2020-02-03
GB201708393D0 (en) 2017-07-12
GB2563009A (en) 2018-12-05
CN110663024B (zh) 2023-11-17
JP7280195B2 (ja) 2023-05-23
GB2563009B (en) 2019-12-25
TWI783996B (zh) 2022-11-21
US11023237B2 (en) 2021-06-01
KR102533823B1 (ko) 2023-05-18

Similar Documents

Publication Publication Date Title
CN110663024B (zh) 用于诠释与能力相关联的权限的装置及方法
TWI745333B (zh) 用於控制有界指標的使用的設備及方法
JP7128206B2 (ja) 機能の使用を管理するための装置および方法
JP7445431B2 (ja) 命令の実行を制御する装置および方法
JP7280196B2 (ja) 機能ドメインを管理するための装置及び方法
JP2023038361A (ja) 命令セット内の変更を制御する装置及び方法
JP2023547065A (ja) ケイパビリティを使用してメモリへのアクセスを制約するための技法
CN110622133B (zh) 用于管理能力域的设备及方法
TW202340955A (zh) 使用能力約束記憶體存取之技術
TW202319913A (zh) 用於使用能力限制對記憶體存取之技術
CN117222990A (zh) 用于使用能力约束对存储器的访问的技术