TWI514135B - 記憶體存取控制 - Google Patents

記憶體存取控制 Download PDF

Info

Publication number
TWI514135B
TWI514135B TW100120943A TW100120943A TWI514135B TW I514135 B TWI514135 B TW I514135B TW 100120943 A TW100120943 A TW 100120943A TW 100120943 A TW100120943 A TW 100120943A TW I514135 B TWI514135 B TW I514135B
Authority
TW
Taiwan
Prior art keywords
memory
access
modes
access control
processing circuit
Prior art date
Application number
TW100120943A
Other languages
English (en)
Other versions
TW201207615A (en
Inventor
Richard Roy Grisenthwaite
Original Assignee
Advanced Risc Mach Ltd
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 Advanced Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW201207615A publication Critical patent/TW201207615A/zh
Application granted granted Critical
Publication of TWI514135B publication Critical patent/TWI514135B/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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

記憶體存取控制
本發明係關於資料處理系統的領域。更特定言之,本發明係關於:控制對在資料處理系統的記憶體位址空間內的記憶體頁面之存取許可的領域。
所習知者為:提供具有記憶體管理單元的資料處理系統,以回應於頁面表格資料來控制對記憶體的頁面(連續區域)之存取許可。如同一實例,特定的記憶體頁面可被標記為:在特權例外層級中可由讀取和寫入來存取,而在使用者例外層級中僅可供讀取存取。可指定除了讀取和寫入存取的另外的存取許可為:執行從記憶體頁面中讀取的程式指令之能力。
已知者為:從PowerPC處理器架構提供:包含存取控制位元的頁面表格資料,該等存取控制位元獨立地和正交地針對特權層級和使用者層級的每一者指定:對給定的記憶體頁面是否允許讀取存取、寫入存取,及執行存取。此者在每一記憶體頁面耗用六個存取控制位元。
當使用於資料處理系統內的記憶體量增大,及隨著需要多組頁面表格資料的虛擬化之技術的出現,頁面表格資料的大小已變為更重要的因素。藉由減少所使用的存取控制位元的數目來減少需要儲存頁面表格資料的記憶體空間量係有利的。就此方面的另一個因素係期望:使用不同的指令集以支援不同的操作模式。為了要減少由頁面表格資料所耗用的記憶體空間量,所欲者為:由新近引入模式(例如使用新近引入指令集的模式)所使用的頁面表格資料應與先前的頁面表格資料和先前的指令集向後相容。
從一態樣中可檢視者,本發明提供用以處理資料的裝置,該裝置包含:處理電路,該處理電路回應於程式指令以執行資料處理操作,且該處理電路經組態以:在複數個模式中操作;及記憶體管理電路,該記憶體管理電路耦合至該處理電路且耦合至一記憶體,且該記憶體管理電路經組態以:根據頁面表格資料,控制對儲存在該記憶體內的的資料數值之存取許可;其中該記憶體具有:記憶體位址空間,該記憶體位址空間可分為複數個記憶體頁面,及該頁面表格資料包含:複數個存取控制位元,該複數個存取控制位元係針對該複數個記憶體頁面之每一者,該複數個記憶體頁面之每一者界定個別的記憶體頁面的存取許可;當該處理電路處於該複數個模式的一第一者時,該複數個模式的一第一者係使用預先決定數目的存取控制位元以編碼存取許可,該記憶體管理電路回應於冗餘編碼的至少一實例,其中複數個不同的組合的該等存取控制位元提供:一相同組的存取許可;及當該處理電路處於該複數個模式的一第二者時,該複數個模式的一第二者係使用該預先決定數目的存取控制位元以編碼存取許可,該記憶體管理單元回應於該複數個不同組合的存取控制位元,以在非冗餘編碼中提供複數個不同組的存取許可。
本發明識別:如同使用於第一操作模式中的存取控制位元包含:冗餘編碼的一或更多個實例。在一第二操作模式中,對應於此冗餘編碼的不同組合的存取控制位元可使用以提供:複數個不同組的存取許可,藉此更為有效地使用存取控制位元編碼空間。該第一和第二模式使用相同數目的存取控制位元以編碼存取許可。本發明識別:實際上,在使用者例外層級(user exception level)和特權例外層級(privileged exception level)兩者中提供(例如)讀取存取、寫入存取,及執行存取之完全的正交和獨立的控制可產生:實際上並不需要的存取許可的數種可能性,例如在使用者例外層級中可寫入及在特權例外層級不可被寫入的記憶體頁面。本發明可進一步識別:在第一操作模式內的冗餘編碼可使用於第二操作模式,以提供不同的存取許可和更為有效地使用存取控制位元。
如同提供有利的向後相容的方式,在該第二操作模式中提供的該複數個不同組的存取許可包含:對應於在該第一模式中的冗餘編碼的相同組的存取許可,藉此允許相同的頁面表格資料使用於該第一操作模式和該第二操作模式中。
在該第一操作模式中,存取許可的傳統觀點會導致:提供控制以使得存取許可必須指明:儲存在記憶體頁面內的資料數值為可讀取,以為了彼等資料數值可被執行。然而,隨虛擬化技術的更為廣泛的使用,此配置在記憶體頁面為可執行而不可作為資料讀取的該第二操作模式中係有用的。如同一實例,當在虛擬化的系統內轉譯程式指令時,此配置係有用的,以使得讀取非轉譯的指令作為資料的任何企圖可被捕捉(trap),及採取適當的動作以遮護(mask)此虛擬化。
在每個不同的操作模式中,該每個不同的操作模式亦可提供有複數個例外層級,該複數個例外層級包含:使用者層級和特權等級,該特權層級對裝置的資源提供等級為較高的存取(例如特權層級可允許特定的控制,或將改變的組態)。
應可瞭解到:存取控制位元可使用以提供複數個不同的意涵(meaning),及以不同的方式編碼彼等意涵,在一些實施例中,存取控制位元的第一者控制記憶體管理電路以:當處理電路處於使用者層級和特權等級及當處理電路處於該複數個模式的第一者時,選擇性地避免來自相對應的記憶體頁面的指令的執行。從而,當操作於第一模式時,此第一存取控制位元有效地作用為一「從不執行(execute never)」旗標。
此相同的第一存取控制位元可利用在該第二操作模式內的不同意涵來使用,此舉意即為控制記憶體管理電路以:當處理電路處於使用者層級時選擇性地避免來自相對應的記憶體頁面的指令之執行,而非控制:無論當處於特權層級時處理電路是否可執行來自此記憶體頁面的指令。從而,在此情況中,相同的第一存取控制位元當操作於第二模式時作用為「使用者從不執行(user execute never)」位元。
該等存取控制位元的第二者可使用於控制記憶體管理電路以:當處理電路處於特權層級及處理電路處於第一操作模式或第二操作模式時,選擇性地避免來自相對應的記憶體頁面的指令的執行。該等存取控制位元的此第二者因此作用為「特權從不執行(privilege execute never)」位元。
令人驚訝地,該位元在一些實施例中當處理電路操作於使用者層級時,對記憶體頁面的至少一些組合的存取控制位元係有用的,記憶體管理電路允許來自此記憶體頁面的指令執行,但不允許對此記憶體頁面的讀取存取或寫入存取。
為了要以不容易發生程式化的錯誤之較可靠的方式增進安全性,記憶體管理電路回應於執行控制覆蓋參數,執行控制覆蓋參數避免從記憶體頁面讀取的指令之執行,而無關於:當此記憶體頁面的存取控制位元提供寫入存取至記憶體頁面時由此記憶體頁面的存取控制位元所指定的任何執行許可。在相同時間提供寫入存取和執行存取兩者係潛在的安全性漏洞,及從而避免受到改變而影響的記憶體頁面之執行係安全性的增強。執行控制覆蓋參數允許:以簡化的方式和獨立於頁面表格資料本身提供此控制(該頁面表格資料本身可為大型的、複雜的,及可改變的)。
不同模式的操作可採取不同的形式,但在至少一些實施例中,第一操作模式對應於:回應於來自第一指令集的程式指令之處理電路;及第二操作模式對應於:回應於來自第二指令集的程式指令的處理電路。
從另一態樣中可檢視者,本發明提供:用以處理資料的裝置,該裝置包含:處理構件,該處理構件用以執行資料處理操作以回應於程式指令,該處理構件經組態以:操作於複數個模式;及記憶體管理構件,該記憶體管理構件耦合至該處理構件及耦合至記憶體,以根據頁面表格資料來控制對儲存在該記憶體內的資料數值之存取許可;其中:該記憶體具有:記憶體位址空間,該記憶體位址空間可分成複數個記憶體頁面,及該頁面表格資料包含:複數個存取控制位元,該複數個存取控制位元係針對該複數個記憶體頁面之每一者,該複數個記憶體頁面之每一者界定個別的記憶體頁面的存取許可;當該處理構件處於該複數個模式的一第一者時,該複數個模式的一第一者係使用預先決定數目的存取控制位元以編碼存取許可,該記憶體管理構件回應於冗餘編碼的至少一實例,其中複數個不同的組合的該等存取控制位元提供:一相同組的存取許可;及當該處理構件處於該複數個模式的一第二者時,該複數個模式的一第二者係使用該預先決定數目的存取控制位元以編碼存取許可,該記憶體管理構件回應於該複數個不同組合的存取控制位元,以在非冗餘編碼中提供複數個不同組的存取許可。
從另一態樣中可檢視者,本發明提供處理資料的方法,該方法包含以下步驟:使用處理電路以執行資料處理操作以回應於程式指令,該處理電路經組態以:操作於複數個模式中;及根據頁面表格資料,控制對儲存於該記憶體內的資料數值之存取許可;其中該記憶體具有:記憶體位址空間,該記憶體位址空間可分成複數個記憶體頁面,及該頁面表格資料包含:複數個存取控制位元,該複數個存取控制位元係針對該複數個記憶體頁面之每一者,該複數個記憶體頁面之每一者界定個別的記憶體頁面的存取許可;當該處理電路處於該複數個模式的一第一者時,該複數個模式的一第一者係使用預先決定數目的存取控制位元以編碼存取許可,該等存取控制位元提供至冗餘編碼的至少一實例,其中複數個不同組合的該等存取控制位元提供一相同組的存取許可;及當該處理電路處於該複數個模式的一第二者時,該複數個模式的一第二者係使用該預先決定數目的存取控制位元以編碼存取許可,該複數個不同組合的存取控制位元在非冗餘編碼中提供複數個不同組的存取許可。
亦可以虛擬機器的形式提供本發明的實施例,該虛擬機器包含:通用電腦,該通用電腦由電腦程式控制,以提供用以執行上文所描述的技術之執行環境。
本發明的上述及其他目標、特徵和優點將從說明性的實施例之後續的實施方式中更為顯明,其中實施例結合隨附圖式來閱讀。
第1圖示意性地圖示:資料處理系統2,該資料處理系統包含:具有處理器核心的形式之處理電路4,該處理電路4藉由記憶體管理單元6和快取記憶體8耦合至主記憶體10。處理電路4包含:資料路徑,該資料路徑包含:通用暫存器庫12、乘法器14、移位器16,及加法器18,該通用暫存器庫12、乘法器14、移位器16,及加法器18係藉由指令解碼器20所產生的控制訊號來控制,以回應於沿著指令管線22傳遞的程式指令。指令解碼器20能從第一指令集和第二指令集中解碼指令。模式暫存器24儲存模式值,該模式值控制指令解碼器20以解碼來自指令管線22的程式指令以作為來自該第一指令集的指令(ISA0),或作為來自該第二指令集的指令(ISA1)。
處理電路4可如同上文所描述操作於對應兩個不同的指令集的使用之兩種不同的模式,該處理電路4亦能夠操作在處於複數個不同的例外層級的該等模式之每一者,意即使用者層級和特權層級。例外層級暫存器26儲存資料,該資料界定處理電路4的目前例外層級(current exception level)。根據如在例外層級暫存器26中所指示的目前例外層級,處理電路4能存取在資料處理系統2內的不同資源。如同在此技術領域中將被熟悉者,相較於在使用者層級中,在特權層級中一般地給予較多的資源存取。舉例而言,一些組態參數或指令僅可獲用以在特權層級中充電或執行,及在使用者層級中不可獲用。
處理電路4當發生記憶體存取時產生:藉由記憶體管理單元6轉換為實體位址PA的虛擬位址VA。記憶體管理單元6亦負責管理:存取許可,該等存取許可與主記憶體10的記憶體位址空間所劃分成的數個記憶體頁面相關聯。在記憶體管理單元6內的轉譯查考緩衝28使用儲存在主記憶體10內的頁面表格資料30之快取複製,執行大部分的虛擬至實體位址轉換。此頁面表格資料如同指定虛擬至實體位址轉換亦使用存取控制位元來指定存取許可。
當由記憶體管理單元6從處理電路4接收記憶體存取時,目前模式(current mode)和目前例外層級對照存取許可來查核以決定:是否授權記憶體存取。是否授權記憶體存取亦將取決於記憶體存取是否為讀取記憶體存取、寫入記憶體存取,或從相關的記憶體頁面尋找以提取用以執行的指令之存取。
轉換的實體位址PA傳遞至快取記憶體8中,該轉換的實體位址PA從記憶體管理單元6針對允許的記憶體存取輸出。若快取記憶體8正儲存相關的資料,則此記憶體存取係由快取記憶體8來服務。若快取記憶體8並不儲存相關的資料,則記憶體存取進行至主記憶體10。
如同第1圖所圖示,主記憶體包含:記憶體位址空間32,該記憶體位址空間32分為複數個記憶體頁面34、36、38,該複數個記憶體頁面具有不同的大小,及具有與該複數個記憶體頁面相關的不同的存取許可。亦包含於記憶體位址空間32者為頁面表格資料30,該表格資料儲存定義虛擬至實體位址映射的資料,及存取控制位元,該等存取控制位元用以根據處理電路的操作模式和處理電路4的例外層級以控制存取許可。
第2圖係圖示存取控制位元和由在第一操作模式和第二操作模式的彼等存取控制位元所提供的存取許可之間的關係,及在彼等操作模式內的不同例外層級的表格,該等存取控制位元儲存在給定的記憶體頁面的頁面表格資料30內。如將所觀察到者,在此示例性實施例中具有4個存取控制位元。
當處理電路4處於執行第一指令集的第一模式時,第一存取控制位元40對應於從不執行控制位元,該從不執行控制位元可應用於使用者層級和特權層級兩者。在當處理電路4執行第二指令集的第二模式中,第一存取控制位元40作用為:使用者從不執行控制位元,該使用者從不執行控制位元指明:在使用者層級對此記憶體頁面是否允許執行,及不具有:當處於特權層級時是否允許來自此記憶體頁面的執行之控制權。
第二存取控制位元42作用為:特權從不執行控制位元。在第二操作模式中,為特權從不執行控制位元的第二存取控制位元42和為使用者從不執行控制位元的第一存取控制位元40獨立地和正交地操作。在第一操作模式中,作用為從不執行控制位元的第一存取控制位元40能夠覆蓋作用為特權從不執行控制位元的第二存取控制位元42的指示。因此,若該第一存取控制位元40指示:記憶體頁面係從不執行記憶體頁面,則將不允許在此記憶體頁面內的執行許可,即使當特權從不執行控制位元42指示:允許特權層級執行。
當處於第一操作模式時覆蓋第二存取控制位元42的指示之第一存取控制位元40的行為導致:在第一操作模式內的冗餘編碼,該等冗餘編碼如同在第2圖中所標記者。因此,不同組合的存取控制位元導致:對應於存取控制位元的編碼位元空間的浪費之第一操作模式內的相同的存取許可。
在第二操作模式中,存取控制位元可不同地被解碼,及此冗餘可被移除以提供非冗餘編碼,其中由不同組合的存取控制位元給定的存取許可對應於不同組合的存取許可。在第二模式中給定的存取許可的組合之一者與在第一模式中給定的存取許可的單一組合相同,藉此助於向後相容性。在第2圖中,此相同組的存取許可係用「#」標示。
在處理電路4的第一模式的操作中,記憶體頁面係可讀取的,以為了能夠執行。此條件不能應用於處理電路4的第二模式的操作。為僅執行存取許可及在第2圖中標示為「*」的存取許可對應於:並不由在第一操作模式內的編碼提供的一種形式的存取許可。
如在第2圖所圖示,存取控制位元的上半部分的編碼對至少一些組合的存取控制位元提供寫入存取,然而在下半部分的表格中,並不允許寫入存取。當寫入存取為可獲用時提供的執行許可為:可由執行控制覆蓋參數來覆蓋,該執行控制覆蓋參數儲存在如圖示於第1圖中的記憶體管理單元6的控制暫存器44內。此執行控制覆蓋參數在若需要較高的安全性時,可在特權層級軟體控制下寫入,或可在硬體控制下設定。當設定執行控制覆蓋參數時,即使第一存取控制位元40及/或第二存取控制位元42指示:允許執行許可,可寫入的記憶體頁面的執行許可將不被允許。
第3圖係圖示當接收記憶體存取時記憶體管理單元6在解碼存取許可的動作之流程圖。在步驟46中,記憶體管理單元6等待被接收的記憶體存取。在步驟48中,讀取記憶體頁面之存取控制位元,該記憶體頁面對應於記憶體存取的此虛擬位址。若相關的記憶體頁面近來已被存取,或可替代性地要求頁面表格行經(walk through)頁面表格資料30,可藉由查詢轉譯查考緩衝28來執行存取控制位元的讀取,此舉如在此相關領域的具有通常知識者所熟悉的。
在步驟50中,存取控制位元根據處理電路的目前模式來解碼(例如處理電路是否正在執行第一指令集的指令,或正在執行第二指令集的指令)及目前例外層級(例如處理電路是否處於使用者層級或特權層級),以決定被允許的存取許可。此解碼係根據第2圖的表格。
在步驟52中,所解碼的存取許可與嘗試的記憶體存取作比較,及作出關於嘗試的記憶體存取是否為允許的記憶體存取的決定。若不允許記憶體存取,則步驟54產生記憶體中斷。若允許記憶體存取,則步驟56輸出對應於所接收的虛擬位址的實體位址,及記憶體存取允許適當地傳遞至快取記憶體8或主記憶體10。
第4圖圖示可使用的虛擬機器實施。當上文描述的實施例針對操作支援相關技術的特定處理硬體之裝置及方法來實施本發明時,此舉提供所謂的硬體裝置的虛擬機器實施亦為可能的。該等虛擬機器實施在執行主作業系統520之主處理器530上執行,該主作業系統520支援虛擬機器程式510。通常,大功率處理器需要提供以合理的速度執行的虛擬機器實施,但此方法需在特定的情況中加以驗證,例如當由於相容性或重使用的因素需要在另一處理器執行代碼。虛擬機器程式510提供應用程式界面至應用程式500,該應用程式500與由實際硬體提供的應用程式界面相同,該實際硬體作為虛擬機器程式510來模型化的裝置。因此,程式指令(該等程式指令包含上文所描述的記憶體存取之控制)可使用虛擬機器程式510在應用程式500內執行,以將該等程式指令與虛擬機器硬體的互動加以模型化。
雖然本發明的說明性實施例在此參看隨附圖式更為詳細地描述,可理解到本發明並不限於彼等明確的實施例,可由熟習該項技術者在不偏離由隨附的申請專利範圍界定的本發明的範疇和精神之情況下作出各種變化和修正。
2...資料處理系統
4...處理電路
6...記憶體管理單元
8...快取記憶體
10...主記憶體
12...暫存器庫
14...乘法器
16...移位器
18...加法器
20...指令解碼器
22...指令管線
24...模式暫存器
26...例外層級暫存器
28...轉譯查考緩衝
30...頁面表格資料
32...記憶體位址空間
34...記憶體頁面
36...記憶體頁面
38...記憶體頁面
40...存取控制位元
42...存取控制位元
第1圖示意性地圖示:一資料處理系統,該處理系統包含:一記憶體管理單元,該記憶體管理單元回應於用以控制記憶體存取的頁面表格資料。
第2圖係圖示在頁面表格資料的存取控制位元和在第一操作模式和第二操作模式中提供的存取許可之間的映射之表格。
第3圖係示意性地圖示解碼存取許可的記憶體管理單元的動作之流程圖;及
第4圖係示意性地圖示用於實施上文所描述的技術的虛擬機器環境的示圖。
40...第一存取控制位元
42...第二存取控制位元

Claims (24)

  1. 一種用於處理資料的裝置,該裝置包含:處理電路,該處理電路回應於程式指令以執行資料處理操作,且該處理電路經組態以:在複數個模式中操作;以及記憶體管理電路,該記憶體管理電路耦合至該處理電路且耦合至一記憶體,且該記憶體管理電路經組態以:根據頁面表格資料,控制對儲存在該記憶體內的資料數值之存取許可;其中該記憶體具有:一記憶體位址空間,該記憶體位址空間可分為複數個記憶體頁面,及該頁面表格資料包含:複數個存取控制位元,該複數個存取控制位元係針對該複數個記憶體頁面之每一者,該記憶體頁面之每一者界定一個別的記憶體頁面的存取許可;當該處理電路處於該複數個模式的一第一者時,該複數個模式的一第一者係使用一預先決定數目的存取控制位元以編碼存取許可,該記憶體管理電路回應於一冗餘編碼的至少一個實例,在該冗餘編碼中複數個不同的組合的該等存取控制位元提供:一相同組的存取許可;以及當該處理電路處於該複數個模式的一第二者時,該複數個模式的一第二者係使用該預先決定數目的存取控制位元以編碼存取許可,該記憶體管理電路回應於該複數 個不同組合的存取控制位元,以在一非冗餘編碼中提供複數個不同組的存取許可。
  2. 如請求項1之裝置,其中該複數個不同組的存取許可包含:提供一組的存取控制位元值的該相同組的存取許可,該組存取控制位元值在該複數個模式的該第一者和該複數個模式的該第二者的操作之間為相容的。
  3. 如請求項1之裝置,其中在該等模式的該第一者中,該等存取許可必須指明:儲存在一記憶體頁面內的資料數值為可讀取,以為了在該記憶體頁面內的該等資料數值可被執行。
  4. 如請求項3之裝置,其中在該等模式的該第二者中,該等存取許可不需指明:儲存在一記憶體頁面內的資料數值為可讀取,以為了在該記憶體頁面內的該等資料數值可被執行,以使得該等資料數值可不作為資料來讀取,但該等資料數值可作為指令來執行。
  5. 如請求項1之裝置,其中該處理電路經組態以在該複數個模式的每一者內的複數個例外層級操作,該複數個例外層級包含:一使用者層級和一特權層級,該特權層級對該裝置的資源提供等級為較高的存取。
  6. 如請求項5之裝置,其中該等存取控制位元的一第一者當該處理電路處於該使用者層級和該特權層級兩者及當該處理電路處於該複數個模式的該第一者時,控制該記憶體管理電路選擇性地避免來自一相對應的記憶體頁面的指令的執行。
  7. 如請求項6之裝置,其中該等存取控制位元的該第一者當該處理電路處於該使用者層級,而不處於該特權層級,及當該處理電路處於該複數個模式的該第二者時,控制該記憶體管理電路選擇性地避免來自一相對應的記憶體頁面的指令的執行。
  8. 如請求項6之裝置,其中該等存取控制位元的一第二者當該處理電路處於該特權層級及當該處理電路處於該複數個模式的該第一者及該複數個模式的該第二者時,控制該記憶體管理電路選擇性地避免來自一相對應的記憶體頁面的指令的執行。
  9. 如請求項4之裝置,其中當該處理電路操作於該使用者層級時對一記憶體頁面的至少一些組合的該等存取控制位元而言,該記憶體管理電路允許來自該記憶體頁面的指令的執行,但不允許對該記憶體頁面的讀取存取和寫入存取。
  10. 如請求項1之裝置,其中當該存取控制位元提供對一記憶體頁面的寫入存取時,該記憶體管理單元回應於一執行控制覆蓋參數,以避免來從該記憶體頁面讀取的指令的執行,而無關於由該等存取控制位元指定的任何執行許可。
  11. 如請求項1之裝置,其中當操作於該複數個模式的該第一者時,該處理電路回應於來自一第一指令集的程式指令,及當操作於該複數個模式的該第二者時,該處理電路回應於來自一第二指令集的程式指令。
  12. 一種用於處理資料的裝置,該裝置包含:處理構件,該處理構件用以執行資料處理操作以回應於程式指令,該處理構件經組態以:操作於複數個模式中;及記憶體管理構件,該記憶體管理構件耦合至該處理構件及耦合至一記憶體,以根據頁面表格資料來控制對儲存在該記憶體內的資料數值之存取許可;其中該記憶體具有:一記憶體位址空間,該記憶體位址空間可分成複數個記憶體頁面,及該頁面表格資料包含:複數個存取控制位元,該複數個存取控制位元係針對該複數個記憶體頁面之每一者,該複數個記憶體頁面之每一者界定一個別的記憶體頁面的存取許可;當該處理構件處於該複數個模式的一第一者時,該複 數個模式的一第一者係使用一預先決定數目的存取控制位元以編碼存取許可,該記憶體管理構件回應於一冗餘編碼的至少一個實例,在該冗餘編碼中複數個不同的組合的該等存取控制位元提供:一相同組的存取許可;及當該處理構件處於該複數個模式的一第二者時,該複數個模式的一第二者係使用該預先決定數目的存取控制位元以編碼存取許可,該記憶體管理構件回應於該複數個不同組合的存取控制位元,以在一非冗餘編碼中提供複數個不同組的存取許可。
  13. 一種處理資料的方法,包含以下步驟:使用處理電路執行資料處理操作,以回應於程式指令,該處理電路經組態以:操作於複數個模式中;及根據頁面表格資料來控制對儲存在該記憶體內的資料數值之存取許可;其中該記憶體具有:一記憶體位址空間,該記憶體位址空間分成複數個記憶體頁面,該頁面表格資料包含:複數個存取控制位元,該複數個存取控制位元係針對該複數個記憶體頁面之每一者,該複數個記憶體頁面之每一者界定一個別的記憶體頁面的存取許可;當該處理電路處於該複數個模式的一第一者時,該複數個模式的一第一者係使用一預先決定數目的存取控制位元以編碼存取許可,該等存取控制位元提供一冗餘編碼的至少一個實例,在該冗餘編碼中複數個不同組合的 該等存取控制位元提供一相同組的存取許可;以及當該處理電路處於該複數個模式的一第二者時,該複數個模式的一第二者係使用該預先決定數目的存取控制位元以編碼存取許可,該複數個不同組合的存取控制位元提供:在一非冗餘編碼中的複數個不同組的存取許可。
  14. 如請求項13之方法,其中該複數個不同組的存取許可包含:提供一組的存取控制位元值的該相同組的存取許可,該組存取控制位元值在該複數個模式的該第一者和該複數個模式的該第二者的操作之間為相容的。
  15. 如請求項13之方法,其中在該等模式的該第一者中,該等存取許可必須指明:儲存在一記憶體頁面內的資料數值為可讀取,以為了在該記憶體頁面內的該等資料數值可被執行。
  16. 如請求項15之方法,其中在該等模式的該第二者中,該等存取許可不需指明:儲存在一記憶體頁面內的資料數值為可讀取,以為了在該記憶體頁面內的該等資料數值可被執行,以使得該等資料數值可不作為資料來讀取,但該等資料數值可作為指令來執行。
  17. 如請求項13之方法,其中該處理電路經組態以在該複數個模式的每一者內的複數個例外層級操作,該複數 個例外層級包含:一使用者層級和一特權層級,該特權層級對執行該方法的該裝置之資源提供等級為較高的存取。
  18. 如請求項17之方法,其中該等存取控制位元的一第一者當該處理電路處於該使用者層級和該特權層級兩者及當該處理電路處於該複數個模式的該第一者時,控制來自一相對應的記憶體頁面的指令執行之選擇性避免。
  19. 如請求項18之方法,其中該等存取控制位元的該第一者當該處理電路處於該使用者層級,而不處於該特權層級及當該處理電路處於該複數個模式的該第二者時,控制來自一相對應的記憶體頁面的指令執行的選擇性避免。
  20. 如請求項18之方法,其中該等存取控制位元的一第二者當該處理電路處於該特權層級及當該處理電路處於該複數個模式的該第一者及該複數個模式的該第二者時,控制該記憶體管理電路選擇性地避免來自一相對應的記憶體頁面的指令的執行。
  21. 如請求項16之方法,其中當該處理電路操作於該使用者層級時對一記憶體頁面的至少一些組合的該等存取控制位元而言,允許來自該記憶體頁面的指令的執行, 但不允許對該記憶體頁面的讀取存取和寫入存取。
  22. 如請求項13之方法,其中當該存取控制位元提供對一記憶體頁面的寫入存取時,一執行控制覆蓋參數作用為控制從該記憶體頁面讀取的指令的執行之避免,而無關於由該等存取控制位元指定的任何執行許可。
  23. 如請求項13之方法,其中當操作於該複數個模式的該第一者時,該處理電路回應於來自一第一指令集的程式指令,及當操作於該複數個模式的該第二者時,該處理電路回應於來自一第二指令集的程式指令。
  24. 一種包含控制一電腦執行如請求項13之方法的一電腦程式之虛擬機器。
TW100120943A 2010-08-11 2011-06-15 記憶體存取控制 TWI514135B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1013466.6A GB2482700A (en) 2010-08-11 2010-08-11 Memory access control

Publications (2)

Publication Number Publication Date
TW201207615A TW201207615A (en) 2012-02-16
TWI514135B true TWI514135B (zh) 2015-12-21

Family

ID=42931473

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100120943A TWI514135B (zh) 2010-08-11 2011-06-15 記憶體存取控制

Country Status (10)

Country Link
US (1) US8788775B2 (zh)
EP (1) EP2603872B1 (zh)
JP (1) JP5718463B2 (zh)
KR (1) KR101861544B1 (zh)
CN (1) CN103069398B (zh)
GB (1) GB2482700A (zh)
IL (1) IL223732A (zh)
MY (1) MY168732A (zh)
TW (1) TWI514135B (zh)
WO (1) WO2012020236A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
US9720843B2 (en) * 2012-12-28 2017-08-01 Intel Corporation Access type protection of memory reserved for use by processor logic
US8931108B2 (en) * 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US20140331019A1 (en) * 2013-05-06 2014-11-06 Microsoft Corporation Instruction set specific execution isolation
JP5920595B2 (ja) * 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
KR20150062745A (ko) * 2013-11-29 2015-06-08 한국전자통신연구원 가상화 서비스 장치 및 방법
CN103824019B (zh) * 2014-02-19 2017-03-08 青岛海信电器股份有限公司 一种应用于数字电视的数据处理方法、处理器及数字电视
US10489309B2 (en) 2014-10-21 2019-11-26 Intel Corporation Memory protection key architecture with independent user and supervisor domains
US20160210069A1 (en) * 2015-01-21 2016-07-21 Bitdefender IPR Management Ltd. Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine
TWI602185B (zh) * 2015-03-04 2017-10-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
GB2543520B (en) * 2015-10-20 2019-06-19 Advanced Risc Mach Ltd Memory access instructions
GB2547912B (en) * 2016-03-02 2019-01-30 Advanced Risc Mach Ltd Register access control
EP3264317B1 (en) * 2016-06-29 2019-11-20 Arm Ltd Permission control for contingent memory access program instruction
GB2562102B (en) * 2017-05-05 2019-09-04 Advanced Risc Mach Ltd An apparatus and method for managing use of capabilities
GB2563009B (en) * 2017-05-25 2019-12-25 Advanced Risc Mach Ltd An apparatus and method for interpreting permissions associated with a capability
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US20200073822A1 (en) * 2018-08-30 2020-03-05 Micron Technology, Inc. Security Configuration for Memory Address Translation from Object Specific Virtual Address Spaces to a Physical Address Space
US11544069B2 (en) 2018-10-25 2023-01-03 Micron Technology, Inc. Universal pointers for data exchange in a computer system having independent processors
GB2611823B (en) * 2021-10-18 2023-10-11 Advanced Risc Mach Ltd Technique for handling sealed capabilities

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083251A1 (en) * 2000-08-21 2002-06-27 Gerard Chauvel Task based priority arbitration
US20020194389A1 (en) * 2001-06-08 2002-12-19 Worley William S. Secure machine platform that interfaces to operating systems and customized control programs
TW200931310A (en) * 2007-10-23 2009-07-16 Advanced Micro Devices Inc Coherent DRAM prefetcher

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4890223A (en) * 1986-01-15 1989-12-26 Motorola, Inc. Paged memory management unit which evaluates access permissions when creating translator
JPS63240657A (ja) * 1987-03-28 1988-10-06 Toshiba Corp 記憶保護装置
IN169635B (zh) * 1987-07-01 1991-11-23 Digital Equipment Corp
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
US5075845A (en) * 1989-12-22 1991-12-24 Intel Corporation Type management and control in an object oriented memory protection mechanism
US6349355B1 (en) * 1997-02-06 2002-02-19 Microsoft Corporation Sharing executable modules between user and kernel threads
US6629207B1 (en) * 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US7278030B1 (en) * 2003-03-03 2007-10-02 Vmware, Inc. Virtualization system for computers having multiple protection mechanisms
US7444668B2 (en) * 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
US7024544B2 (en) * 2003-06-24 2006-04-04 Via-Cyrix, Inc. Apparatus and method for accessing registers in a processor
US7213125B2 (en) * 2004-07-31 2007-05-01 Hewlett-Packard Development Company, L.P. Method for patching virtually aliased pages by a virtual-machine monitor
US20060218425A1 (en) * 2005-02-25 2006-09-28 Zhimin Ding Integrated microcontroller and memory with secure interface between system program and user operating system and application
GB2448151B (en) * 2007-04-03 2011-05-04 Advanced Risc Mach Ltd Memory domain based security control within data processing systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083251A1 (en) * 2000-08-21 2002-06-27 Gerard Chauvel Task based priority arbitration
US20020194389A1 (en) * 2001-06-08 2002-12-19 Worley William S. Secure machine platform that interfaces to operating systems and customized control programs
TW200931310A (en) * 2007-10-23 2009-07-16 Advanced Micro Devices Inc Coherent DRAM prefetcher

Also Published As

Publication number Publication date
CN103069398B (zh) 2016-03-09
JP5718463B2 (ja) 2015-05-13
WO2012020236A1 (en) 2012-02-16
GB2482700A (en) 2012-02-15
EP2603872B1 (en) 2015-08-19
CN103069398A (zh) 2013-04-24
JP2013533567A (ja) 2013-08-22
IL223732A (en) 2015-07-30
US20120042144A1 (en) 2012-02-16
EP2603872A1 (en) 2013-06-19
TW201207615A (en) 2012-02-16
MY168732A (en) 2018-11-29
KR101861544B1 (ko) 2018-05-28
KR20130136436A (ko) 2013-12-12
GB201013466D0 (en) 2010-09-22
US8788775B2 (en) 2014-07-22

Similar Documents

Publication Publication Date Title
TWI514135B (zh) 記憶體存取控制
JP6202543B2 (ja) 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム
JP5571201B2 (ja) ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限
KR101673435B1 (ko) 공동 설계 프로세서에서 격리된 실행 환경의 생성
JP6284130B2 (ja) ローカル・クリア制御
TWI516937B (zh) 用於資料讀取/寫入延伸分頁表違例之處理的決策動作決定技術之方法、裝置及非暫態機器可讀媒體
JP7445431B2 (ja) 命令の実行を制御する装置および方法
JP7128206B2 (ja) 機能の使用を管理するための装置および方法
CN110663024B (zh) 用于诠释与能力相关联的权限的装置及方法
KR20230170976A (ko) 캐퍼빌리티들을 사용하여 메모리에 대한 액세스를 제약하기 위한 기술
TW202340955A (zh) 使用能力約束記憶體存取之技術
KR20240004738A (ko) 캐퍼빌리티를 사용하여 메모리에 대한 액세스를 제약하기 위한 기술
TW202403562A (zh) 用於記憶體位址空間之頁面的「讀值只有x」性質