TW201719387A - 記憶體存取指令 - Google Patents

記憶體存取指令 Download PDF

Info

Publication number
TW201719387A
TW201719387A TW105131539A TW105131539A TW201719387A TW 201719387 A TW201719387 A TW 201719387A TW 105131539 A TW105131539 A TW 105131539A TW 105131539 A TW105131539 A TW 105131539A TW 201719387 A TW201719387 A TW 201719387A
Authority
TW
Taiwan
Prior art keywords
memory access
memory
protected
less
program
Prior art date
Application number
TW105131539A
Other languages
English (en)
Other versions
TWI722022B (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 TW201719387A publication Critical patent/TW201719387A/zh
Application granted granted Critical
Publication of TWI722022B publication Critical patent/TWI722022B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

一種資料處理系統2包含指令解碼器10,該指令解碼器解碼受保護之記憶體存取指令(LDR/STR)及受保護較少之記憶體存取指令(LDNPR/STNPR)以產生用於控制載入儲存單元12之控制信號。受保護較少之記憶體存取指令與限制性少於受保護之記憶體存取指令之記憶體存取條件相關聯。作為實例,受保護較少之記憶體存取指令可用於存取共享記憶體區26、28,而受保護之記憶體存取指令不可用於存取此等共享區。相反,受保護較少之記憶體存取指令不可用於存取專用記憶體區30、32、34。

Description

記憶體存取指令
本揭示內容係關於資料處理系統之領域。更特定而言,本揭示內容係關於資料處理系統內之記憶體存取指令及與彼等記憶體存取指令相關聯之存取條件。
已知,給資料處理系統提供記憶體存取指令,此等記憶體存取指令在經解碼時用以執行記憶體與處理器核心之間的記憶體存取操作,諸如,資料載入或資料儲存。為管理此等系統內之記憶體存取條件,已知,提供諸如記憶體管理單元或記憶體保護單元之硬體,此等單元係以用於控制記憶體存取之許可資料程式化,例如,可將特定記憶體位址或記憶體位址範圍標記為唯讀、讀取/寫入、唯特權存取等。
本揭示內容之至少一些實施例提供用於處理資料之設備,其包括:
處理電路系統,其用於執行由程式指令規定之處理操作;以及
解碼器,其用於解碼記憶體存取指令以產生控制信號從而控制該處理電路系統來執行記憶體存取操作;其中
該等記憶體存取指令具有規定以下各項之各別編碼:
對應於受保護之記憶體存取操作的受保護之記憶體存取指令;及
對應於受保護較少之記憶體存取操作的受保護較少之記憶體存取指令;且
該等受保護較少之記憶體存取操作與限制性記低於該等受保護之記憶體存取操作之憶體存取條件相關聯。
本揭示內容之至少一些實施例提供用於處理資料之設備,其包括:
處理手段,其用於執行由程式指令規定之處理操作;以及
解碼器手段,其用於解碼記憶體存取指令以產生控制信號從而控制該處理手段來執行記憶體存取操作;其中
該等記憶體存取指令具有規定以下各項之各別編碼:
對應於受保護之記憶體存取操作的受保護之記憶體存取指令;及
對應於受保護較少之記憶體存取操作的受保護較少之記憶體存取指令;且
該等受保護較少之記憶體存取操作與限制性少於該等受保護之記憶體存取操作之記憶體存取條件相關聯。
本揭示內容之至少一些實施例提供一種處理資料之方法,其包括:
解碼記憶體存取指令以產生控制信號從而控制處理電路系統來執行記憶體存取操作;其中
該等記憶體存取指令具有規定以下各項之各別編碼:
對應於受保護之記憶體存取操作的受保護之記憶體存取指令;及
對應於受保護較少之記憶體存取操作的受保護較少之記憶體存取指令;且
該等受保護較少之記憶體存取操作與限制性少於該等受保護之記憶體存取操作之記憶體存取條件相關聯。
圖1示意性地圖示資料處理系統2,其包含處理器核心4及記憶體6。處理器核心4包含指令提取單元8、解碼器10、載入儲存單元12、記憶體管理單元14、暫存器庫16及算術處理電路系統,此算術處理電路系統包含乘法器18、移位器20及加法器22。在操作中,指令提取單元8自記憶體6提取程式指令且將此等程式指令傳遞至解碼器10。解碼器10解碼程式指令且產生控制信號,接著使用此等控制信號來控制待由處理電路系統之其他元件執行之處理操作,該等其他元件諸如載入儲存單元12及算術處理電路18、20、22。
藉由載入儲存單元12執行記憶體存取操作,諸如,自暫存器庫16內之暫存器與記憶體6內之記憶體位址之間的載入指令及儲存指令引起的彼等操作。由解碼器10產生之控制信號控制載入儲存單元12以執行由經解碼之記憶體存取指令規定之記憶體存取操作。記憶體管理單元14使用儲存於記憶體6內之頁表資料24以強加與記憶體6內之記憶體位址(或記憶體位址之區,諸如記憶體頁)相關聯之存取條件。此等記憶體存取條件可包含特定記憶體位址係可讀取但不可寫入、可快取、僅對某些特權等級(僅某些異常等級)可存取或其他屬性。
記憶體6可將資料儲存於如本實例中所展示之複數個區中。此等區可包含共享區26、28及專用區30、32、34。共享區26、28可在程式之間共享且因此促進在程式之間進行資料之共享/交換。專用區30、32、34係專用於特定程式。此專用性可針對具有比專門存取專用區30、32、34之程式更高的特權等級之程式予以強加。因此,應用程式可具有專用記憶體區30、32、34,此等專用記憶體區可由彼應用程式存取,但不可由在較高特權等級(異常等級)下操作之程式存取,諸如正給處於較低特權等級(異常等級)之程式提供執行環境之上層作業系統或超管理器程式。
圖1中所圖示之實例利用記憶體管理單元14及頁表資料24。熟習此技術領域者應明瞭,其他實施例可利用不同的記憶體存取控制電路系統,諸如施加與記憶體位址空間內之記憶體保護區相關聯的存取條件之記憶體保護單元。
與使用記憶體管理單元14(及記憶體保護單元)相關聯之潛在安全性弱點係對頁表資料24(或定義記憶體區且保護記憶體保護單元之資料)之錯誤或惡意改變可導致將應視為專用之記憶體區30、32、34替代地視為共享且將存取不恰當地給予其他應用程式。此等專用區30、32、34可含有敏感資料,諸如密碼密鑰、財務資料或類似者。
根據本實例提供之記憶體存取指令採用受保護之記憶體存取指令之形式,諸如受保護之載入指令LDR或受保護之儲存指令STR。記憶體存取指令進一步包括受保護較少之記憶體存取指令,諸如受保護較少之載入指令LDNPR或受保護較少之儲存指令STNPR。此等指令係具有其本身指令編碼之離散類型之指令。並非一個類型之編碼之所有變化型式皆需要針對另一類型之編碼提供。在此示例性實施例中,受保護之記憶體存取指令在其編碼中具有多於受保護較少之記憶體存取指令之變化型式,例如,受保護之記憶體存取指令具有以下選項:允許規定資料值大小、帶符號/不帶符號之資料、待施加至記憶體位址之索引及其他選項。藉由比較,受保護較少之記憶體存取指令具有較少選項,諸如資料大小及帶符號/不帶符號之資料。
提供不同類型之記憶體存取指令允許程式設計者(或編譯者)藉由預設使用受保護之記憶體存取指令,且接著針對程式設計者知曉可安全地受制於受限制較少之記憶體存取條件的彼等特定記憶體存取操作,選擇使用受保護較少之記憶體存取指令。舉例而言,針對除程式設計者知曉意欲對記憶體6內之共享區26、28進行之彼等記憶體存取以外之所有記憶體存取,可藉由預設使用受保護之記憶體存取指令。此等對共享區之記憶體存取可使用受保護較少之記憶體存取指令。程式設計者在編寫程式碼時應知曉,某些資料將與其他應用程式共享且寫入至共享區26、28中且因此對於此一記憶體存取適於使用受保護較少之記憶體存取指令來執行。以此方式,即使控制記憶體管理單元14(或記憶體保護單元)之資料係不正確的,使用具有受限制較多之記憶體存取條件的受保護之記憶體指令亦可用以防止程式疏忽地將資料儲存至共享區26、28或疏忽地自共享區26、28載入資料(可已經變更該資料)。
圖3示意性地圖示針對受保護之記憶體存取指令LDR/STR及受保護較少之記憶體存取指令LDNPR/STNPR兩者之示例性編碼。此等指令具有不同編碼(作業碼)以使得其藉由解碼器10識別為不同類型之指令,從而將產生不同控制信號以便控制載入儲存單元12關於此等不同類型之指令以不同方式表現行為,如下文進一步所論述。受保護之記憶體存取指令LDR/STR具有與其相關聯的多於受保護較少之記憶體指令LDNPR/STNPR所具有的相關聯之選項(諸如大小、帶符號/不帶符號、索引)。程式指令進一步規定諸如暫存器庫16內之暫存器的參數,記憶體存取指令與該等暫存器相關且例如可在記憶體6內含有目標記憶體位址對受保護較少之記憶體存取指令提供較少選項具有以下結果:此等指令消耗較少指令集位元空間。此係一處理程序或架構內之一有限資源且可有價值地用在別處。實際上上,關於由程式設計者知曉需要共享之資料之記憶體存取操作往往相對頻繁,且因此針對此等受保護較少之記憶體存取指令提供較少選項不導致碼大小之過量增加且比節省指令集位元空間更有價值。
圖4示意性地圖示記憶體管理單元頁表條目36。此等頁表條目可具有多種多樣的不同形式。通常,此等記憶體管理單元頁表條目36支援使用虛擬位址TAG 38及對應之實體位址變換資料40在虛擬位址與實體位址之間的位址變換。此外,與記憶體位址空間內與頁條目相關聯之每一頁(區)相關聯的是記憶體頁屬性,該等記憶體頁屬性定義諸如可讀取性、可寫入性、特權等級存取限制、可快取性等特性。此外,包含於記憶體頁屬性資料內的是共享/專用旗標,該共享/專用旗標指示:彼區內之記憶體位址是共享還是專用。共享位址在多個程式內共享而專用位址係僅一個程式可存取的。記憶體頁屬性之其他形式可包含指示特定區是經加密還是未經加密之旗標。經加密區係使用加密密鑰來加密且接著藉由擁有適當解密密鑰之經適當授權程式來解密。
在共享/專用旗標之情形下,標記為共享之記憶體區應僅由受保護較少之記憶體存取指令存取,類似地,標記為專用之記憶體區應僅由受保護之記憶體存取指令存取。若記憶體存取指令之錯誤類型(編碼)嘗試對記憶體之給定區之記憶體存取,則可偵測到此情況且引起資料中止(觸發記憶體存取異常處理)。
圖5係示意性地圖示記憶體存取處理之一個形式之流程圖。在步驟42處,處理通常等至解碼記憶體存取指令為止。當解碼記憶體存取指令時,則由解碼器10產生控制信號以控制控制載入儲存單元12來執行與記憶體管理單元18協作規定之記憶體存取操作。在步驟44處,讀取針對在步驟42處解碼之記憶體存取指令之共享旗標資料(以及其他資料)。接著,步驟46決定在步驟42處解碼之記憶體存取指令是否係受保護之記憶體存取指令。若在步驟42處解碼之指令係受保護之記憶體存取指令,則處理進行至步驟48,在步驟48處,決定在步驟44處讀取之共享旗標是否指示含有待存取之記憶體位址之記憶體區係共享的。若步驟48處之決定為記憶體區係共享的,則此指示受保護之記憶體存取指令使用恰當且因此處理進行至其中阻止存取之步驟50,此後在步驟52處在將處理返回至步驟42之前觸發資料中止回應。若步驟48處之決定為記憶體存取並非共享區,則受保護之記憶體存取指令之使用係不恰當的(亦即,記憶體區係專用的)且因此在步驟54處允許存取且執行此存取。若步驟46處之決定為在步驟42處解碼之記憶體存取指令係受保護較少之記憶體存取指令,則處理進行至步驟56,在步驟56處,決定在步驟44處讀取之共享旗標是否指示與受保護較少之記憶體存取指令相關聯之記憶體位址係共享的。若記憶體區並非共享的,則此指示受保護較少之記憶體存取指令之使用係不恰當的且處理進行至其中阻止記憶體存取之步驟58及其中觸發資料中止回應之步驟60。若步驟56處之決定為記憶體區係共享的,則在步驟42處解碼之受保護較少之記憶體存取指令之使用係恰當的且因此處理進行至其中允許存取之步驟62。
圖6示意性地圖示:利用本技術之資料處理系統64之另一示例性實施例。在此示例性實施例中,記憶體66內之記憶體區可為:經加密之區68、70、72或未經加密之區74、76。安置於處理器核心82與記憶體66之間的加密電路系統80用以提供針對寫入至經加密之區68、70、72中之資料的加密及針對自加密區68、70、72讀取之資料的解密。加密及解密使用密碼密鑰84,此密碼密鑰專用於可存取各別經加密之區68、70、72之程式中之程式。
在此示例性實施例中,記憶體存取控制電路系統採用記憶體保護單元86之形式,該記憶體保護單元在記憶體66之記憶體位址空間內具有標記為經歷加密或未經加密之不同區。當記憶體區經加密時,則交換使用多工器88、90以經由加密電路系統80路由資料。當正存取之記憶體位址處於未經加密之區時,則藉由多工器88、90繞過加密電路系統80。加密電路系統80可經使用且針對受保護之記憶體存取指令係活動的且針對受保護較少之記憶體存取指令被繞過。未經加密之區74、76可在程式之間共享,而經加密之區68、70、72可專用於個別程式或共享密碼密鑰之一定數目之程式。若關於標記為由記憶體保護單元86加密之記憶體存取使用受保護較少之記憶體存取指令,則可觸發資料中止。類似地,若針對未經加密之區內之記憶體位址使用受保護之記憶體存取指令,則亦可觸發資料中止。
圖7示意性地圖示在不同特權/異常等級下操作之程式之階層。程式可包含處於最高特權等級之超管理器程式92,此超管理器程式給在較低特權等級(較低異常等級)下操作之客作業系統程式94、96提供執行環境。作業系統程式94、96中之每一者可分別為應用程式98、100或應用程式102、104提供執行環境。作業系統程式94、96在高於應用程式98、100、102、104之特權等級(異常等級)下操作。
先前所描述之示例性實施例已使用與受保護之記憶體存取指令及受保護較少之記憶體存取指令相關聯之共享/專用旗標或經加密/未經加密之旗標來控制存取。其他實施例可用以施加與執行程式所處之特權等級(異常等級)相關聯之記憶體存取條件。程式設計者可決定與在不同等級(特權等級)下操作之一或多個其他程式共享資料係恰當的。作為實例,應用程式98、100、102、104可經控制以使得可與上層作業系統程式94、96而不與其他應用程式或與超管理器程式92共享資料。受保護較少之記憶體存取指令可與期望與其他異常等級共享之此資料相關聯,而不期望與其他異常等級共享之資料可使用受保護之記憶體存取指令來存取。
圖8示意性地圖示利用本技術之資料處理系統106之另一示例性實施例。此資料處理系統106利用經加密之記憶體區108、110及主記憶體114內之共享記憶體區112。與圖6之實施例相比,圖8之實施例利用採用各種階層等級之記憶體系統。四個處理器核心116、118、120、122各自具有區域專用快取記憶體124、126、128及130。在記憶體階層中之此等區域快取記憶體124、126、128及130上方係共享快取記憶體132。快取記憶體124、126、128、130、132中之每一者內之資料以未經加密形式儲存而不管其是否標記為經加密/共享。若資料係待加密/共享,則此資料在快取記憶體124、126、128、130、132內加旗標且透過加密電路系統134適當地路由或在此等旗標之控制下使用多工器136、138越過(繞過)加密電路系統。因此,相比於加密電路系統134更靠近於處理器核心116、118、120、122之資料以未經加密形式儲存且因此不招致與加密/解密相關聯之能量/時間損失,而將相比於加密電路系統134之記憶體階層內更遠處(即,經由互連件140傳遞且儲存於主記憶體114內)之資料加密。圖形處理單元142及直接記憶體存取單元144亦經由互連件140連接。
儘管本文已參看所附圖式詳細描述了本揭示內容之說明性實施例,但應理解,本揭示內容並不限於彼等精確實施例,且熟習此項技術者可在不背離如隨附申請專利範圍所定義之本揭示內容範疇及精神之情況下實施各種改變及修改。
2‧‧‧資料處理系統
4‧‧‧處理器核心
6‧‧‧記憶體
8‧‧‧指令提取單元
10‧‧‧解碼器
12‧‧‧載入儲存單元
14‧‧‧記憶體管理單元
16‧‧‧暫存器庫
18‧‧‧乘法器/算術處理電路
20‧‧‧移位器/算術處理電路
22‧‧‧加法器/算術處理電路
24‧‧‧頁表資料
26‧‧‧共享區
28‧‧‧共享區
30‧‧‧專用區
32‧‧‧專用區
34‧‧‧專用區
36‧‧‧記憶體管理單元頁表條目
38‧‧‧虛擬位址TAG
40‧‧‧實體位址變換資料
42‧‧‧步驟
44‧‧‧步驟
46‧‧‧步驟
48‧‧‧步驟
50‧‧‧步驟
52‧‧‧步驟
54‧‧‧步驟
56‧‧‧步驟
58‧‧‧步驟
60‧‧‧步驟
62‧‧‧步驟
64‧‧‧資料處理系統
66‧‧‧記憶體
68‧‧‧經加密之區
70‧‧‧經加密之區
72‧‧‧經加密之區
74‧‧‧未經加密之區
76‧‧‧未經加密之區
80‧‧‧加密電路系統
82‧‧‧處理器核心
84‧‧‧密碼密鑰
86‧‧‧記憶體保護單元
88‧‧‧多工器
90‧‧‧多工器
92‧‧‧超管理器程式
94‧‧‧客作業系統程式
96‧‧‧客作業系統程式
98‧‧‧應用程式
100‧‧‧應用程式
102‧‧‧應用程式
104‧‧‧應用程式
106‧‧‧資料處理系統
108‧‧‧經加密之記憶體區
110‧‧‧經加密之記憶體區
112‧‧‧共享記憶體區
114‧‧‧主記憶體
116‧‧‧處理器核心
118‧‧‧處理器核心
120‧‧‧處理器核心
122‧‧‧處理器核心
124‧‧‧區域專用快取記憶體
126‧‧‧區域專用快取記憶體
128‧‧‧區域專用快取記憶體
130‧‧‧區域專用快取記憶體
132‧‧‧快取記憶體
134‧‧‧加密電路系統
136‧‧‧多工器
138‧‧‧多工器
140‧‧‧互連件
142‧‧‧圖形處理單元
144‧‧‧直接記憶體存取單元
現將參看所附圖式僅以舉例方式描述示例性實施例,所附圖式中:
圖1示意性地圖示資料處理系統;
圖2示意性地圖示受保護之記憶體存取指令及受保護較少之記憶體存取指令;
圖3示意性地圖示針對圖2之記憶體存取指令之指令編碼;
圖4示意性地圖示包含共享/專用旗標之記憶體管理單元頁條目;
圖5係示意性地圖示記憶體存取處理之流程圖;
圖6示意性地圖示併入有加密電路系統以藉助記憶體之區給資料加密之另一示例性實施例;
圖7示意性地圖示在不同異常等級下執行的特權及特權較少之程式之階層;且
圖8示意性地圖示包含記憶體系統階層內之多個層及加密電路系統的資料處理系統之另一示例性實施例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
42‧‧‧步驟
44‧‧‧步驟
46‧‧‧步驟
48‧‧‧步驟
50‧‧‧步驟
52‧‧‧步驟
54‧‧‧步驟
56‧‧‧步驟
58‧‧‧步驟
60‧‧‧步驟
62‧‧‧步驟

Claims (20)

  1. 一種用於處理資料之設備,其包括: 處理電路系統,其用於執行由程式指令規定之處理操作;以及 一解碼器,其用於解碼記憶體存取指令以產生控制信號從而控制該處理電路系統來執行記憶體存取操作;其中 該等記憶體存取指令具有規定以下各項之各別編碼: 對應於受保護之記憶體存取操作的受保護之記憶體存取指令;及 對應於受保護較少之記憶體存取操作的受保護較少之記憶體存取指令;且 該等受保護較少之記憶體存取操作與限制性少於該等受保護之記憶體存取操作之記憶體存取條件相關聯。
  2. 如請求項1所述之設備,其中該等受保護較少之記憶體存取指令具有允許不同於該等受保護之記憶體存取指令之數目的變化型式之一編碼。
  3. 如請求項2所述之設備,其中該等受保護較少之記憶體存取指令具有允許少於該等受保護之記憶體存取指令的變化型式之編碼。
  4. 2及3中任一項所述之設備,其包括記憶體存取控制電路系統以取決於記憶體保護資料而控制對記憶體位址空間之區之存取,該記憶體保護資料包含由該記憶體存取控制電路系統施加之至少一個屬性以在該等受保護較少之記憶體存取指令上強加限制性少於在該等受保護之記憶體存取指令上之記憶體存取條件。
  5. 如請求項4所述之設備,其中 該至少一個屬性指示何時一記憶體位址係一共享記憶體位址; 該記憶體存取控制電路系統阻止藉由該等受保護之記憶體存取指令對該共享記憶體位址之記憶體存取;且 該記憶體存取控制電路系統允許藉由該等受保護較少之記憶體存取指令對該共享記憶體位址之記憶體存取。
  6. 如請求項5所述之設備,其中 該至少一個屬性指示何時一記憶體位址係一專用記憶體位址; 該記憶體存取控制電路系統允許藉由該等受保護之記憶體存取指令對該專用記憶體位址之記憶體存取;且 該記憶體存取控制電路系統阻止藉由該等受保護較少之記憶體存取指令對該專用記憶體位址之記憶體存取。
  7. 如請求項5及6中任一項所述之設備,其中該記憶體存取控制電路系統回應於藉由一受保護之記憶體存取指令對該共享記憶體位址之一嘗試性記憶體存取以觸發一資料中止回應。
  8. 6及7中任一項所述之設備,其中該憶體存取控制電路系統回應於藉由一受保護較少之記憶體存取指令對除一共享記憶體位址以外之一嘗試性記憶體存取以觸發一資料中止回應。
  9. 如請求項4及8中任一項所述之設備,其中該記憶體存取控制電路系統係一記憶體管理單元且該記憶體保護資料係記憶體頁表資料。
  10. 如請求項4及8中任一項所述之設備,其中該記憶體存取控制電路系統係一記憶體保護單元且該記憶體保護資料係針對該記憶體保護單元之記憶體區配置資料。
  11. 如前述請求項中任一項所述之設備,其包括加密電路系統以加密藉由該等受保護之記憶體存取操作儲存於一記憶體中之資料且解密藉由該等受保護之記憶體存取操作自該記憶體讀取之資料。
  12. 如請求項1至10中任一項所述之設備,其包括加密電路系統以加密儲存於一記憶體中之資料且解密自該記憶體讀取之資料,其中該加密電路系統針對該等受保護之記憶體存取操作係活動的且該加密電路系統針對該等受保護較少之記憶體存取操作係不活動的。
  13. 如前述請求項中任一項所述之設備,其中該處理電路系統具有複數個異常等級狀態且藉助在該複數個異常等級狀態內之一給定異常等級狀態下執行的一程式內之一受保護較少之記憶體存取指令存取的一記憶體位址與在該複數個異常等級狀態內之可選擇數目個其他異常等級狀態中執行之程式共享。
  14. 如前述請求項中任一項所述之設備,其中該等處理操作包括: 執行複數個程式; 在該複數個程式中之一給定程式內執行受保護之記憶體存取指令以存取專用於該給定程式之記憶體位址;以及 在該複數個程式中之該給定程式內執行受保護較少之記憶體存取指令以存取在該複數個程式之間共享之記憶體位址。
  15. 如請求項14所述之設備,其中該複數個程式包含一特權程式及使用由該特權程式提供之一執行環境執行之至少一個其他程式,該至少一個其他程式使用受保護之記憶體存取指令來存取該特權程式專用之記憶體位址。
  16. 如請求項15所述之設備,其中該特權程式係一超管理器程式且該至少一個其他程式係一作業系統程式。
  17. 如請求項15所述之設備,其中該特權程式係一作業系統程式且該至少一個其他程式係一應用程式。
  18. 一種用於處理資料之設備,其包括: 處理手段,其用於執行由程式指令規定之處理操作;以及 解碼器手段,其用於解碼記憶體存取指令以產生控制信號從而控制該處理手段來執行記憶體存取操作;其中 該等記憶體存取指令具有規定以下各項之各別編碼: 對應於受保護之記憶體存取操作的受保護之記憶體存取指令;及 對應於受保護較少之記憶體存取操作的受保護較少之記憶體存取指令;且 該等受保護較少之記憶體存取操作與限制性少於該等受保護之記憶體存取操作之記憶體存取條件相關聯。
  19. 一種處理資料之方法,其包括以下步驟: 解碼記憶體存取指令,用以產生控制信號從而控制處理電路系統來執行記憶體存取操作;其中 該等記憶體存取指令具有規定以下各項之各別編碼: 對應於受保護之記憶體存取操作的受保護之記憶體存取指令;及 對應於受保護較少之記憶體存取操作的受保護較少之記憶體存取指令;且 該等受保護較少之記憶體存取操作與限制性少於該等受保護之記憶體存取操作之記憶體存取條件相關聯。
  20. 一種儲存於一非暫時性儲存媒體上之電腦程式,其用於控制一電腦以提供對應於如請求項1至18中任一項所述之一設備之一虛擬機執行環境。
TW105131539A 2015-10-20 2016-09-30 用於處理資料的設備、方法及電腦程式 TWI722022B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1518541.6A GB2543520B (en) 2015-10-20 2015-10-20 Memory access instructions
GB1518541.6 2015-10-20

Publications (2)

Publication Number Publication Date
TW201719387A true TW201719387A (zh) 2017-06-01
TWI722022B TWI722022B (zh) 2021-03-21

Family

ID=55131314

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105131539A TWI722022B (zh) 2015-10-20 2016-09-30 用於處理資料的設備、方法及電腦程式

Country Status (9)

Country Link
US (1) US11669467B2 (zh)
EP (1) EP3365768B1 (zh)
JP (1) JP6944444B2 (zh)
KR (1) KR20180072723A (zh)
CN (1) CN108139909B (zh)
GB (1) GB2543520B (zh)
IL (1) IL258594B (zh)
TW (1) TWI722022B (zh)
WO (1) WO2017068317A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9305929B1 (en) 2015-02-17 2016-04-05 Micron Technology, Inc. Memory cells
US10396145B2 (en) 2017-01-12 2019-08-27 Micron Technology, Inc. Memory cells comprising ferroelectric material and including current leakage paths having different total resistances
US11436143B2 (en) * 2017-12-22 2022-09-06 Alibaba Group Holding Limited Unified memory organization for neural network processors

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US248357A (en) * 1881-10-18 Long-range and close weeding garden-cultivator
US67279A (en) * 1867-07-30 Self and peter f
JPS62256040A (ja) 1986-04-28 1987-11-07 Mitsubishi Electric Corp コモンメモリの保護方法
US6895508B1 (en) * 2000-09-07 2005-05-17 International Business Machines Corporation Stack memory protection
GB0226874D0 (en) 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
GB2402763B (en) 2003-06-13 2006-03-01 Advanced Risc Mach Ltd Data access program instruction encoding
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
US8146106B2 (en) * 2007-12-31 2012-03-27 Intel Corporation On-demand emulation via user-level exception handling
US7788433B2 (en) 2008-05-24 2010-08-31 Via Technologies, Inc. Microprocessor apparatus providing for secure interrupts and exceptions
EP2211285A1 (en) * 2009-01-20 2010-07-28 Nagravision SA Secured data processing device
GB2479780B (en) * 2010-04-22 2018-04-04 Advanced Risc Mach Ltd Preload instruction control
GB2482700A (en) * 2010-08-11 2012-02-15 Advanced Risc Mach Ltd Memory access control
FR2974920B1 (fr) 2011-05-04 2013-11-29 St Microelectronics Rousset Protection d'une memoire volatile contre des virus par modification du contenu d'une instruction
CN102385556B (zh) * 2011-11-08 2014-11-26 聚辰半导体(上海)有限公司 串行非易失性存储器及解除存储器写保护的方法
WO2013160724A1 (en) * 2012-04-23 2013-10-31 Freescale Semiconductor, Inc. Data processing system and method for operating a data processing system
JP2014081819A (ja) * 2012-10-17 2014-05-08 Renesas Electronics Corp 情報処理装置
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US20160085695A1 (en) * 2014-09-24 2016-03-24 Intel Corporation Memory initialization in a protected region
US9996350B2 (en) * 2014-12-27 2018-06-12 Intel Corporation Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array
US20170090922A1 (en) * 2015-09-30 2017-03-30 Futurewei Technologies, Inc. Efficient Instruction Pair for Central Processing Unit (CPU) Instruction Design

Also Published As

Publication number Publication date
TWI722022B (zh) 2021-03-21
IL258594A (en) 2018-06-28
CN108139909A (zh) 2018-06-08
GB2543520B (en) 2019-06-19
JP2018535483A (ja) 2018-11-29
JP6944444B2 (ja) 2021-10-06
CN108139909B (zh) 2022-07-12
GB201518541D0 (en) 2015-12-02
WO2017068317A1 (en) 2017-04-27
US11669467B2 (en) 2023-06-06
GB2543520A (en) 2017-04-26
KR20180072723A (ko) 2018-06-29
EP3365768B1 (en) 2020-12-09
IL258594B (en) 2020-03-31
EP3365768A1 (en) 2018-08-29
US20180307627A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
US11354423B2 (en) Cryptographic isolation of memory compartments in a computing environment
US10152602B2 (en) Protecting state information for virtual machines
US20200257827A1 (en) Memory write for ownership access in a core
JP5581403B2 (ja) メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納
US7966466B2 (en) Memory domain based security control with data processing systems
EP4020298A1 (en) Encoded pointer based data encryption
US8549325B2 (en) Reducing information leakage between processes sharing a cache
US9753863B2 (en) Memory protection with non-readable pages
EP3113406B1 (en) Key protecting method and apparatus
TWI722022B (zh) 用於處理資料的設備、方法及電腦程式
KR102584506B1 (ko) 가상 기계들을 위한 상태 정보 보호
US20240220297A1 (en) Interrupt control using a guest owned backing page
US20240220295A1 (en) Event interception control by a trusted layer of a virtual machine
US20240104027A1 (en) Temporal information leakage protection mechanism for cryptographic computing
CN116340963A (zh) 用于密态计算的瞬时侧信道感知架构