TWI506439B - 在保密與非保密記憶體區域內儲存保密模式頁表資料 - Google Patents

在保密與非保密記憶體區域內儲存保密模式頁表資料 Download PDF

Info

Publication number
TWI506439B
TWI506439B TW100104953A TW100104953A TWI506439B TW I506439 B TWI506439 B TW I506439B TW 100104953 A TW100104953 A TW 100104953A TW 100104953 A TW100104953 A TW 100104953A TW I506439 B TWI506439 B TW I506439B
Authority
TW
Taiwan
Prior art keywords
page table
memory
secure
data
page
Prior art date
Application number
TW100104953A
Other languages
English (en)
Other versions
TW201205285A (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 TW201205285A publication Critical patent/TW201205285A/zh
Application granted granted Critical
Publication of TWI506439B publication Critical patent/TWI506439B/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB

Description

在保密與非保密記憶體區域內儲存保密模式頁表資料
本發明係關於資料處理系統。更特定言之,本發明係關於具有一或多保密操作模式及一或多非保密操作模式之資料處理系統,當其操作在一保密模式中時使用保密模式頁表資料來管理記憶體之存取。
已知可提供一種具有一或多保密操作模式及一或多非保密操作模式的資料處理系統,諸如駐在英國劍橋的ARM Limited公司所研發的具有信任區(TrustZone)結構之資料處理系統。在此類系統內的記憶體(記憶體位址空間)一般配有一或多保密區域及一或多非保密區域,該一或多保密區域在保密操作模式中為可存取而在非保密操作模式中為不可存取,而該一或多非保密區域在保密操作模式及非保密操作模式中皆可進行存取。依此方式,諸如加密金鑰、金融資料之類的敏感資料可儲存於保密區域內,而僅能由執行在保密操作模式中的可信賴/安全應用程式存取。此類資料處理系統亦支援執行在非保密模式中的非安全應用程式,但其僅能對記憶體之非保密區域進行存取。舉例而言,此類系統可用於數位權利管理,其中諸如加密金鑰之類的高敏感度的秘密資訊可妥善存於記憶體之保密區域內,使其僅能由執行在保密模式中的安全應用程式存取,同時該系統亦支援諸如媒體播放器或無關的應用程式之類的非安全應用程式,其執行在非保密模式中且使用記憶體之非保密區,而其本身不需直接存取記憶體之保密區域內所持有的保密/秘密資料。
當操作在一或多保密模式中時,為了對記憶體保密區域之存取進行管理,已知可提供保密模式頁表資料,其係由諸如記憶體單元或記憶體保護單元之類的記憶體管理電路使用來控制/管理記憶體之存取。一記憶體管理單元可(例如)負責將保密模式中所產生的虛擬位址轉譯(translate)成實體位址。在保密模式中進行存取的記憶體內的區域可包括保密區域及非保密區域。一個可能產生的問題為,用來管理記憶體之保密區域的存取的保密模式頁表資料可能會遭受到未經授權的修改,使得(例如)一保密模式中的應用程式將存取記憶體之非保密區域而非存取原設定的記憶體之保密區域。如此將對系統之安全保密性造成不當的影響。
為了處理此種問題,可將所有保密模式頁表資料儲存於記憶體之保密區域內。這樣一來,可確保保密模式頁表資料不會遭受到未經授權的修改而企圖規避系統之保密性設計。然而,此方法的一個問題為,保密模式頁表資料之尺寸會較大,而不利地消耗大量的記憶體之一或多保密區的記憶體容量。因此,儘管諸如加密金鑰、金融資料、保密程式指令碼之類的保密資料本身之資料量相對較小,然而可能需要記憶體之保密區具有一大的儲存容量以恰恰足夠儲存保密模式頁表資料。
本發明之一態樣提供一種用於處理資料之設備,該設備包含:一記憶體;處理電路,其回應於一程式指令串流而執行處理操作,該處理電路具有複數個操作模式,其中包括一或多保密模式及一或多非保密模式,該記憶體包括:(1)一或多保密區域,其在該一或多保密模式中為可存取,而在該一或多非保密模式中為不可存取;及(2)一或多非保密區域,其在該一或多保密模式中為可存取,且在該一或多非保密模式中為可存取。
記憶體控制電路,其回應於頁表資料而管理該記憶體之存取;其中該頁表資料包括保密模式頁表資料及非保密模式頁表資料,當該處理電路操作在該一或多保密模式中時,使用該保密模式頁表資料來管理該記憶體之存取,而當該處理電路操作在該一或多非保密模式中時,使用該非保密模式頁表資料來管理該記憶體之存取;該保密模式頁表資料包括一頁表階層,其具有相關聯的頁表層級,該等頁表層級係配置成:在一第一頁表層級的一第一層級頁表包含多數頁表入口(entry),該等頁表入口分別指到該頁表階層中比該第一頁表層級還低的一第二頁表層級的第二層級頁表;及該第一層級頁表之每一頁表入口包括一表保密欄位,其指示由該頁表入口指到的一第二層級頁表係儲存於該一或多保密區域內或該一或多非保密區域內。
本發明認識到儘管一或多保密操作模式可能需求利用其本身的保密模式頁表資料,然而並非所有此等保密模式頁表資料皆與作為記憶體之保密區域及(或)儲存敏感/秘密資料之記憶體區域相關聯。因此,可能並非所有的保密模式頁表資料皆需要儲存於記憶體之保密區域內。用來管理記憶體之保密區域之存取的那一部分的保密模式頁表資料可儲存於記憶體之保密區域內,而用來管理記憶體之非保密區之存取的那另一部分的保密模式頁表資料可儲存於記憶體之非保密區域內。為了支援並管理區分保密模式頁表資料係位於記憶體之保密區或非保密區,在至少某些頁表層級的一頁表內的每一頁表入口包括一表保密欄位,其指示由該頁表入口指到的一下一頁表係儲存於記憶體之一保密區或一非保密區域內。因此,當記憶體控制電路(諸如一記憶體管理單元或一記憶體保護單元)對階層式保密模式頁表資料進行存取時,可決定是否有任何進行該存取所用的保密模式頁表資料係儲存於記憶體之一非保密區域內。將認知到,上述之第一層級頁表及第二層級頁表不需要為頁表階層內任何特定位置,特別是,不需要為層級1或層級2頁表。
在本發明之某些具體實施例中,記憶體控制電路係配置以執行一頁表行走(page table walk)操作,在該頁表行走操作中存取向下通過階層中之頁表層級的一系列的頁表入口,以獲取要管理的記憶體存取操作的屬性資料。在此頁表行走期間,若所存取的一系列的頁表入口中任一者之表保密欄位具有一值,該值指示所存取的該系列頁表入口中之一者係儲存於記憶體之非保密區域內,則記憶體控制電路可回應於該值而將正執行的記憶體存取識別為一非保密記憶體存取操作。為了確保安全保密性,當操作在一保密模式中時,若一記憶體存取操作所汲及的相關頁表資料中有任何資料係儲存於記憶體之非保密區域內,則相關的記憶體存取操作會被視為一非保密記憶體存取操作,即使該存取操作係由一執行於保密模式中的程式啟動。
在某些具體實施例中,記憶體控制電路可藉由將一非保密表屬性納入與該記憶體存取操作相關聯的屬性資料內,以將該記憶體存取操作識別為一非保密記憶體存取操作。此非保密表屬性可與指示記憶體存取係源於一保密模式操作的另一不同屬性分開。非保密表屬性指示已使用儲存於非保密記憶體中的一頁表來管理該記憶體存取操作。
當記憶體控制電路將一記憶體存取操作識別為一非保密記憶體存取操作且該記憶體存取操作係導向記憶體之一或多保密區域時,則記憶體可阻擋該記憶體存取操作以作為回應。若記憶體存取操作係非保密的,例如已使用儲存於非保密記憶體中的一頁表入口來輔助管理該記憶體存取操作,則允許存取該記憶體之保密區域,對該記憶體而言係不安全的。
處理電路可執行複數個軟體程序,這些軟體程序中每一者可利用其自身的頁表資料。或者,某些頁表資料可被應用於多數程序,而可由一總體(global)屬性將這些頁表資料識別為可用於來自這些多數程序中任一者之記憶體存取。其它屬性資料可為非總體(non-global)屬性,且可用於來自與該非總體屬性資料連接的單獨個別軟體程序的記憶體存取。
在支援總體及非總體屬性資料的系統架構下,記憶體管理電路係配置成:若經由與一記憶體存取相關聯的一部分的頁表行走所存取的一系列頁表入口中任一者係儲存於記憶體之一非保密區域內,則將屬性資料強迫視為非總體屬性資料。因此,若與該記憶體存取相關聯的多數頁表中任一者係儲存於記憶體之非保密區域內,則記憶體控制電路撤銷該頁表資料內任何具有相反指示的資訊,並迫使相關的屬性資料作為非總體屬性資料。若准許使用與記憶體之非保密區相關的一頁表行走所產生的總體屬性資料,將可能破壞系統的安全保密性。
將認知到,屬性資料可為多種不同形式,例如屬性資料可指示哪一特權操作層級被允許來存取相關聯資料(記憶體頁)、該相關聯資料是否為唯讀、該相關聯資料是否為可快取,等等。此可用於其中不執行位址轉譯的記憶體保護單元(MPU)的架構中。在屬性資料提供一記憶體存取之一虛擬記憶體位址及相應該記憶體存取操作的該記憶體內的一實體記憶體位址間之映射的情況下,本發明技術特別有效。為確保安全保密性,映射之保護係重要的。
本發明技術可用於其中一或多保密區域之儲存容量少於一或多非保密區域之儲存容量的具體實施例中,特別是當一或多非保密區域係形成於一獨立積體電路內,該獨立積體電路與其中形成有處理電路、記憶體控制電路及一或多保密區域之積體電路分開。
本發明之具體實施例亦可提供一保密轉譯表基底暫存器,其係配置以儲存一基底位址值,其指到保密模式頁表資料之階層之一入口點(entry point)。此一保密轉譯表基底暫存器可包括一保密欄位,其指示是否所有的保密模式頁表資料皆儲存於一或多非保密區域中。
本發明之另一態樣提供一種用於處理資料之設備,該設備包含:記憶體構件,用以儲存資料;處理構件,用以回應於一程式指令串流而執行處理操作,該處理構件具有複數個操作模式,其中包括一或多保密模式及一或多非保密模式,該記憶體構件包括:(1)一或多保密區域,其在該一或多保密模式中為可存取,而在該一或多非保密模式中為不可存取;及(2)一或多非保密區,其在該一或多保密模式中為可存取,且在該一或多非保密模式中為可存取。
記憶體控制構件,其回應於頁表資料而管理該記憶體構件之存取;其中該頁表資料包括保密模式頁表資料及非保密模式頁表資料,當該處理構件操作在該一或多保密模式中時,使用該保密模式頁表資料來管理該記憶體構件之存取,而當該處理構件操作在該一或多非保密模式中時,使用該非保密模式頁表資料來管理該記憶體構件之存取;該保密模式頁表資料包括一頁表階層,其具有相關聯的頁表層級,該等頁表層級係配置成:在一第一頁表層級的一第一層級頁表包含多數頁表入口,該等頁表入口分別指到該頁表階層中比該第一頁表層級還低的一第二頁表層級的對應的第二層級頁表;及該第一層級頁表之每一頁表入口包括一表保密欄位,其指示由該頁表入口指到的一第二階層頁表係儲存於該一或多保密區域內或該一或多非保密區域內。
本發明之又一態樣提供一種管理一記憶體之存取的方法,該記憶體與處理電路相關聯,該處理電路具有複數個操作模式,其中包括一或多保密模式及一或多非保密模式,該記憶體包括一或多保密區域及一或多非保密區域,該一或多保密區域在該一或多保密模式中為可存取而在該一或多非保密模式中為不可存取,而該一或多非保密區域在該一或多保密模式中為可存取且在該一或多非保密模式中為可存取,該方法包含以下步驟:當該處理電路操作在該一或多保密模式中時,回應於保密模式頁表資料而管理該記憶體之存取;及當該處理電路操作在該一或多非保密模式中時,回應於非保密模式頁表資料而管理該記憶體之存取;其中該保密模式頁表資料包括一頁表階層,其具有相關聯的頁表層級,該等頁表層級係配置成:在一第一頁表層級的一第一層級頁表包含多數頁表入口,該等頁表入口分別指到該頁表階層中比該第一頁表層級還低的一第二頁表層級的第二層級頁表;及該第一層級頁表之每一頁表入口包括一表保密欄位,其指示由該頁表入口指到的一第二層級頁表係儲存於該一或多保密區域內或該一或多非保密區域內。
本發明之再一態樣提供一種用於處理資料之設備,該設備包含:一記憶體;處理電路,其回應於多數程式指令而執行處理操作,該處理電路具有複數個操作模式,其中包括一或多保密模式及一或多非保密模式,該記憶體包括:(1)一或多保密區域,其在該一或多保密模式中為可存取,而在該一或多非保密模式中為不可存取;及(2)一或多非保密區域,其在該一或多保密模式中為可存取,且在該一或多非保密模式中為可存取。
記憶體控制電路,其回應於頁表資料而管理該記憶體之存取;其中該記憶體控制電路係配置成:當操作在該一或多保密模式中之一者且該記憶體控制電路接收到一訊號以指示已使用儲存於該一或多非保密區域內的頁表資料來管理請求操作在該一或多保密模式中之一者的一記憶體存取請求之存取時,則該記憶體控制電路會以如同該記憶體存取係發生在當操作在該一或多非保密模式中時的方式來處理該記憶體存取。
本發明之上述及其它目的、特徵及優點將藉由參照所附圖示來閱讀以下示例性具體實施例之詳細描述而更加清楚。
第1圖概要地圖示一資料處理系統2,其包括一晶片上系統(system-on-chip)積體電路4及一獨立非保密記憶體積體電路6。晶片上系統積體電路4包括處理器8形式之處理電路,其回應於一指令管線10中接收到的程式指令I而控制一指令解碼器12,以產生控制訊號來配置並控制包括一暫存器組14、一乘法器16、一移位器18及一加法器20的一資料路徑。處理器8在程式指令I之控制下執行資料處理操作。這些資料處理操作包括記憶體存取操作,其試圖自系統之記憶體位址空間內的記憶體位址讀取資料或於其中寫入資料。並非所有記憶體位址空間皆可與能夠儲存資料值之真實的實體記憶體相關聯,例如某些位址空間可能無法使用。記憶體位址空間中某部分係對應至配置於晶片上系統積體電路4內的一保密記憶體22,而記憶體位址空間中某部分係對應至一非保密記憶體6。因此,保密記憶體22提供記憶體之一或多保密區域,而非保密記憶體6提供記憶體之一或多非保密區域。在晶片上系統積體電路4內亦配置一記憶體管理單元(MMU)24(其為記憶體控制電路之一形式)、一外部記憶體介面26及一快取記憶體28。
處理器8使用虛擬位址(VA)來產生記憶體存取。快取記憶體28使用這些虛擬位址來儲存經快取的資料值(其可為資料及指令二者)。若發生一快取未中(cache miss),則要存取的資料值必須讀取自保密記憶體22及非保密記憶體6二者中之一者。記憶體管理單元24執行虛擬位址至實體位址(PA)之一轉換,因為保密記憶體22及非保密記憶體6二者皆為實體定址裝置。記憶體管理單元24包括一轉譯旁看緩衝器(TLB)30,其包括記憶體之當前存取頁的屬性資料。若進行存取的虛擬位址無法對應至轉譯旁看緩衝器30內的多數入口之一者,則必需對頁表資料執行一完全存取(full access),即執行一頁表行走。
處理器8係操作於一或多保密模式及一或多非保密模式中。當操作在一保密模式中時,由從處理器5提供給記憶體管理單元24的一保密模式訊號S指示此模式。提供二組頁表資料,其中保密模式頁表資料係用於當操作在多數保密模式中之一者時,而非保密模式頁表資料係用於當操作在多數非保密模式中之一者時。二轉譯表基底暫存器(TTBR)32係配置於記憶體管理單元24內,且分別提供指標於保密模式頁表資料的一開始處及非保密模式頁表資料的一開始處。可藉由以下程序執行一頁表行走:讀取相關的轉譯表基底暫存器值以找出合適頁表資料組之初始位址,接著使用其階層形式以習知稱作頁表行走的方式來存取此頁表資料。此一頁表行走將於下文進一步討論及說明。
由第1圖可知,非保密模式頁表資料34皆儲存於非保密記憶體6內。保密模式頁表資料分成兩部分來儲存。第一部分的保密模式頁表資料36係儲存於保密記憶體22內,而第二部分的保密模式頁表資料38係儲存於非保密記憶體6內。將第二部分的保密模式頁表資料38儲存於非保密記憶體6內可節省保密記憶體22之儲存容量而可用於其它目的,且在晶片上保密記憶體22較小的情況下,使得整個系統仍具有完整的保密模式頁表資料組儲存於保密記憶體22及非保密記憶體6內。
儲存於保密記憶體22內之第一部分的保密模式頁表資料36一般會是與儲存保密敏感資料的記憶體區有關的頁表資料,該保密敏感資料係被正確地儲存而僅能由執行在多數保密模式中之一者的程式來存取。當操作在一保密模式中以進行存取時,第二部分的保密模式頁表資料38係與不儲存敏感資料的記憶體區有關,在此區中,允許此第二部分的保密模式頁表資料38儲存於非保密記憶體6內不會因此破壞安全保密性。
第2圖概要地圖示第1圖之處理器8之操作模式。這些模式包括一或多保密模式40、一或多非保密模式42及一監控模式44,提供這些模式以允許在多數保密模式40中之一者及多數非保密模式42中之一者二者間進行轉換。本技術領域之熟習技藝者將認知到,一或多保密模式可包括與不同特權層級相關的模式,但所有模式皆為保密模式,例如一保密使用者模式及一保密特權模式。同樣的,在非保密模式42內可提供不同特權層級的模式,例如一非保密使用者模式及一非保密特權模式。當操作在一保密模式時,處理器8使用保密模式頁表資料來管理其記憶體存取。當操作在一非保密模式時,處理器8使用非保密模式頁表資料來管理其記憶體存取。監控模式44使用保密模式頁表資料。這些操作模式為硬體模式,而資料處理系統2內的硬體依據目前的操作模式提供不同層級的資源存取,而資源例如記憶體區、控制暫存器等。
第3圖概要地圖示通過保密模式頁表資料之一頁表行走操作。保密模式頁表資料係由配置於一層級階層中的複數個頁表46、48、50、52、54、56、58構成。在階層中之最高層級處,存在包含四個入口的頁表46,此為層級0 。頁表48至58中每一者皆包含512個頁表入口。每一頁表48至58之大小習知為4kB,即每一頁表入口為64位元。
應用於一保密模式中的轉譯表基底暫存器32指到頁表46之起始位址。當管理與虛擬位址對應之記憶體存取時,虛擬位址內的位元欄位接著被用來提供一索引值,以用於選擇頁表46內的多數頁表入口66中之一者。在一實例中,虛擬位址VA最高的前二個有效位元[31:30]提供一索引,以用於識別頁表46內四個頁表入口中之一者。此頁表入口66包含一20位元欄位(NextTablePtr<31:12>),其與虛擬位址VA之接續的9個位元[29:21]結合以提供一指標給層級1表內的次一頁表入口70(最低的多個有效位元假設為零)。頁表入口70亦包含一20位元欄位(NextTablePtr<31:12>),其與虛擬位址VA之另9個位元[20:12]結合以提供一指標給層級2表內的次一頁表入口74。頁表入口74持有實體位址的前20個位元[31:12],其與虛擬位址VA之最低的12個位元[11:0]結合以經由轉譯形成完整實體位址PA[31:0]。將認知到,較大的虛擬位址(例如,48位元的虛擬位址)可能需要更多層級的頁表行走。頁表入口66亦包括其它屬性位元,包括一表保密欄位68,其指示由該頁表入口66指到的頁表50係儲存於記憶體之一非保密區域內或該記憶體之一保密區域內。此表保密欄位係NSTable位元。此指示當設定就續時被指到的下一頁表係儲存於記憶體之一非保密區域內(且匯流排存取應視為非保密的)。
在第3圖圖示的實例中,層級0 頁表46指到一層級1 頁表50,層級1 頁表50亦儲存在記憶體之保密區。頁表入口70包括其自身的表保密欄位72,其指示頁表入口70指到的下一頁表56係儲存於記憶體之保密區域內或記憶體之非保密區域內。頁表入口70亦可包括額外的屬性位元。
在此實例中,保密頁表的頁表階層之層級2 中之頁表56係儲存於記憶體之一非保密區域內。這係由將頁表入口70內的表保密欄位72被設定就續(NSTable=1)來指示,即指示下一所指頁表係儲存於一非保密區域內。
將注意到,表保密欄位(即,NSTable位元)係與一頁表行走內要存取的下一頁表相關聯。因此,當在儲存於保密區之頁表與儲存於非保密區之頁表間移動時,用於指示此改變的表保密欄位係儲存於保密區域內,而因此能確保不會遭遇惡意竄改。
在頁表行走之每一級處,一部分的虛擬位址係用作為一索引值以選擇一頁表入口,以用於轉譯該部分虛擬位址並存取一指標,該指標指到用於該轉譯中的下一頁表。與完整頁表行走相關聯的頁表入口66、70及74中至少一頁表入口,包括記憶體管理單元24所用的與該記憶體存取相關聯的記憶體屬性。這些屬性包括(諸如):由該頁表行走所提供的從虛擬至實體位扯的轉譯係為一總體轉譯(global translation)以可用於所有程序,或為一非總體轉譯(non-global translation)僅可用於當前觸發該頁面行走的程序。其它進一步的屬性可包括,相關頁表係唯讀、可快取、設有權限等,這些皆為本領域人士所熟知的屬性。
第4圖概要圖式第3圖之頁表46至52中之一者內的一頁表入口78。位於層2的頁表入口可與實體位址PA[31:12]之20位元相同,以取代NextTablePtr<31:12>欄位。此頁表入口78係位於相關頁表內的一位置處,該位置係由九位元的虛擬位址來索引指示(即,識別其在頁表內的位置以被選擇來存取)。用作為索引的九位元虛擬位址將視與頁表(包含前述之頁表入口78)相關聯的頁表階層內的層級而定。頁表入口78包括一表保密欄位80,其儲存一位元用以指示頁表入口78內由NextTablePtr<31:12>欄位指到的頁表係儲存於記憶體之非保密區域內或記憶體之保密區域內。頁表入口78亦包括一欄位82,其指示頁表入口係一總體頁表入口(其提供可用於所有程序的屬性資料)或一非總體頁表入口(其提供僅用於當前觸發頁表行走的程序的屬性資料)。其它屬性84係儲存於頁表入口78內,這些屬性可指示快取性(cacheability)、唯讀狀態等。
將認知到,頁表階層內其後接有一較低層級頁表入口的每一頁表入口78,將包括一表保密欄位80。階層之層級2 中之最低層級的頁表不會指到任何下一頁表,因此不需包括一表保密欄位。總體屬性82及其它屬性84僅需配置於橫越頁表行走之頁表46至58中之一者,而不需被存於每一頁表中。總體屬性及其它屬性84一般係儲存於階層(此具體實施例中相當於層級2 )中之最低層級處,而因此將能提供最佳的控制粒度(granularity)來特徵化並控制記憶體屬性。位於頁表階層內較高層級處的記憶體屬性可用於提供較粗粒度的差異等級以區別不同區域之記憶體的屬性。
本領域習知技藝者將認知到,當頁表階層愈往下走時,記憶體位址空間內的層級粒度會變小。因此,階層內每一層級處的頁表數目一般將增加。若整個記憶體位址空間係映射至最佳的粒度等級,則將具有大量的頁表資料。可能並非全部的記憶體位址空間皆係映射至最大(full)粒度等級,且在記憶體較高層級處的位址空間可標記為不可用或具有預設記憶體屬性。
第5圖係一程序流程圖,其圖示說明由記憶體管理單元24於保密模式操作下執行一記憶體存取的程序(當於保密模式操作時,記憶體存取應依據匯流排之訊號所指示而視為保密,至少直到發生NSTable值為「1」為止)。在步驟86,記憶體管理單元等待一資料存取發生。當一資料存取發生,則必需存取保密記憶體22或非保密記憶體6。這會需要將處理器8所產生的虛擬位址轉譯為實體位址,以用於保密記憶體22及非保密記憶體6。在步驟88,於轉譯旁看緩衝器30中進行一查詢,以決定針對該欲存取的虛擬位址是否存在一位址匹配。若欲存取的虛擬記憶體頁先前已存取過,則很可能相關的轉譯資料(即記憶體屬性資料,諸如虛擬至實體位址轉譯資料、可快取性狀態、唯讀狀態等)將被儲存於轉譯旁看緩衝器30內,若真係如此,則發生一位址匹配。若在步驟88存在一位址匹配,則程序進行至步驟90。將認知到,在步驟88可能存在數個位址匹配以對應不同的程序識別符(ASID)。在步驟90,可藉由其儲存於轉譯旁看緩衝器30內的程序識別符來區別各個位址匹配,且將針對匹配當前程序的入口(若有的話)回傳一擊中(hit)。若在步驟88不存在位址匹配,則需要一頁表行走,並在步驟92依據相關第3及4圖的前述方法執行該頁表行走。在步驟92之頁表行走之後,在步驟94將新的頁表資料(包括NST位元)儲存於轉譯旁看緩衝器30內。步驟96接著使用實體位址發送記憶體存取至保密記憶體22或非保密記憶體6,該實體位址係由所獲得的轉譯資料聯同指示訊號所產生,該等訊號指示處理器8當前係處於保密操作模式中,亦指示是否已使用頁表資料(包括儲存於非保密記憶體6內之至少某些頁表資料)進行記憶體存取。
若步驟88決定轉譯旁看緩衝器30內存在對要存取的虛擬位址的匹配,則步驟90決定當前由處理器8執行的程序是否與轉譯旁看緩衝器30內具有匹配位址(步驟88)的每一入口相關聯的程序相匹配。若存在此一匹配,則步驟98選擇相關的轉譯旁看緩衝器入口以供使用,並行進至步驟96。若步驟90不存在此匹配,則程序行進至步驟100,步驟100決定受到步驟88之一位址匹配管制的轉譯旁看緩衝器入口是否被標記為一總體入口以可用於所有程序。若該相關入口係標記為總體入口,則程序再次行進至步驟98。若該入口未被標記為總體入口,則程序行進至步驟92以執行一頁表行走。
將認知到,第5圖之程序係圖示為一系列程序。實作時,記憶體管理單元24可以不同的次序及(或)平行等級來操作。然而,第5圖之流程圖圖示所執行的整體程序及控制等級的一個觀點。亦將認知到,此程序的某些部分或全部可於軟體中執行。
第6圖圖示當執行一頁表行走時,對關聯一記憶體存取的表保密狀態(NST位元)之設定進行控制(此表保密狀態最終被回傳至第1圖之存取控制電路128)。此表保密狀態(NST位元)指示儲存於記憶體非保密區之任何保密頁表在頁表行走通過保密模式頁表資料期間是否被使用。在步驟102,程序等待一保密頁表行走被請求。當此一行走被請求時,步驟104將表保密狀態之初始值設定為「0」。步驟106接著決定轉譯表基底暫存器(其儲存指到保密模式頁表資料的層級0 頁表46的指標)是否指示所有的保密模式頁表資料皆係儲於記憶體之非保密區域內。轉譯表基底暫存器(TTBR)32提供專用於此目的的一位元。若步驟106決定所有的保密模式頁表資料皆係儲存於非保密記憶體中,則步驟108將NST位元設定為「1」,即處理器應將存取視為非保密。若步驟106決定所有的保密模式頁表資料皆不儲存於記憶體之非保密區域內,則略過步驟108。
在步驟110,與正執行的記憶體存取相關聯的一部分的虛擬位址係用以索引指示層級0 處的頁表46,其係儲存於保密記憶體22內。接著讀取此層級處的頁表入口66,且步驟112決定表保密欄位68是否指示頁表入口66所指的層級1頁表50係儲存於非保密記憶體內。若頁表50被指示其係儲存於非保密記憶體6之內,則步驟114會將表保密狀態NST設定為「1」。若在步驟112讀取的表保密欄位68並未設定,則略過步驟114,而程序行進至步驟116,其中執行階層之下一層級(即層級1 )內的表保密欄位的審核,且若頁表入口70內的表保密欄位72指示下一頁表56係儲存於非保密記憶體內,則將表保密狀態設定為「1」。在此例中,由於層級2 為階層中之最低層級,因此其不需要關於較低層級的表保密欄位。
若在頁表行走期間存取的頁表46、50或56之任一者係儲存於非保密記憶體內,則與記憶體存取相關聯的表保密狀態NST將由步驟104所設定的初始值「0」,在步驟108、114或118之任一者中改變成設定為「1」。記憶體管理單元24在其頁表行走(在硬體控制下執行)期間決定NST位元的設定,且係因此一保密決定。
步驟122決定表保密狀態NST是否等於「1」。若表屬性位元NST確實等於「1」,則步驟124迫使TLB入口被標記為非總體入口,使得經回傳且儲存於轉譯旁看緩衝器30的屬性資料將僅用於當前程序,無論該屬性資料於保密模式頁表資料本身內的標記形式為何。在步驟126,記憶體屬性資料及一NST位元與S位元(指示系統是否在保密模式)被回傳至轉譯旁看緩衝器30,且亦用於形成並控制記憶體存取至保密記憶體22或非保密記憶體6中之一者。
第7圖係一流程圖,其圖示與保密記憶體22相關聯的程序,該程序係由與保密記憶體相關聯的存取控制電路128所執行。在步驟130,存取控制電路128接收一記憶體存取請求。步驟132決定該記憶體存取請求是否伴隨訊號S,訊號S指示產生該記憶體存取請求的處理器8係操作在保密模式40中之一者。記憶體存取請求亦與表屬性位元NST相關聯,表屬性位元NST指示用於產生該記憶體存取請求的多數頁表之任一者是否儲存於記憶體之非保密區域內。步驟132之決定確保:若S位元指示處理器8係在保密模式(即S等於0)且表屬性位元為「0」用以指示未使用任何非保密模式頁表來產生記憶體存取請求,則在步驟134資料存取控制電路128將僅批准及允許記憶體存取至保密記憶體22。亦可依據標準技術進一步對存取之權限等級進行設限。若記憶體存取請求無法通過這些結合的測試,則程序行進至步驟136。步驟136決定存取是否為一讀取。若存取為一讀取,則步驟138針對該讀取回傳全部0值(另一替代方式為,觸發一例外程序,使得作業系統可處理一適當回應)。若存取並非為一讀取,則步驟140阻擋寫入操作。
回到第1圖,可見保密模式頁表資料之第一部分36係儲存於保密記憶體22內。保密模式頁表資料之第二部分38係儲存於非保密記憶體6內。非保密記憶體6係配置在一個別積體電路中,且其具有比保密記憶體22還大的儲存容量。保密模式頁表資料之第一部分36可為與亦儲存於保密記憶體22內且包含敏感資料的頁面相關的頁表資料,而保密模式頁表資料之第二部分38會與儲存於非保密記憶體6內且包含非敏感資料的頁面相關。保密記憶體22內的有限的儲存容量不耗用在儲存保密模式頁表資料之第二部分38,保密模式頁表資料之第二部分38係另外可儲存於非保密記憶體6內。保密模式頁表資料被標記以指示是否部分的保密模式頁表資料係儲存於非保密記憶體6,如此可允許行使控制,以使一記憶體存取可與一表屬性位元NST相關聯,該表屬性位元NST指示與該記憶體存取相關聯的任何頁表資料是否儲存於非保密記憶體6內,儘管形成部分的保密模式頁表資料。依此方式,保密模式頁表資料之第一部分36可安全保密地(securely)保存在保密記憶體22內,其中可確保不會遭遇惡意竄改,且表屬性位元NST可在硬體控制下產生,如此其可用以指示所汲及的儲存於非保密記憶體6內的頁表資料,其可由記憶體管理單元24藉由僅參考保密模式頁表資料36之第一部分而偵測到,且其不會因惡意竄改保密模式頁表資料之第二部分38而被修改。
將認知到,前述技術允許使用既有軟體,且不需感知到NSTable位元及相關機制的存在或運用。前述技術亦允許再使用部分的頁表資料,例如非保密記憶體映射週邊(peripheral)及非保密共享程式庫碼。
第8圖為一流程圖,其圖示說明與一記憶體存取請求相關聯的某些程序。在步驟142,程序等待接收到一記憶體存取請求。此記憶體存取請求可為下載指令、儲存指令、指令提取操作等的結果。記憶體存取可存取至儲存於隨機存取記憶體、唯讀記憶體等內的一部分記憶體,或可存取至記憶體位址空間內的記憶體映射週邊。這些替代方案係本領域之技藝人士所熟知的。當在步驟142接收到一記憶體存取請求時,程序行進至步驟144,其中在轉譯旁看緩衝器30中執行一查詢,以決定於轉譯旁看緩衝器30內是否存在對應至與記憶體存取請求相關聯的虛擬位址的一入口。將認知到,轉譯旁看緩衝器30可對應至一轉譯旁看緩衝器階層,諸如包括一微轉譯旁看緩衝器(用於快速存取至最近使用的轉譯)及一較大型轉譯旁看緩衝器(其上儲存有大量的先前使用的轉譯)。將認知到,轉譯旁看緩衝器並非僅儲存有用以允許從虛擬位址轉譯至實體位址的資料外,亦儲存更多其它資料,諸如儲存有許可資料、NST位元資料、保密模式資料、程序識別符(ASID)、指示轉譯係總體或非總體之資料,等等。當決定虛擬位址具有相應資料儲存於轉譯旁看緩衝器內時所執行的匹配,其不僅考慮到虛擬位址之位元,亦可匹配保密位元S,保密位元S指示記憶體請求係源自保密模式或非保密模式。轉譯旁看緩衝器內用於入口的NST位元亦可被讀取,且若其被設定,則(例如)標記為總體入口的一入口可降級至非總體入口(即,僅應用至具有經識別的匹配程序的單一程序)。
若步驟144決定轉譯旁看緩衝器不具有一匹配入口,則程序行進至步驟146,其中執行在保密模式頁表資料或非保密模式頁表資料中之一相關者中執行一頁表行走。此頁表行走可參照前述相關第3、5及6圖之說明。若微處理器係在保密模式中,則頁表行走存取將標記為保密,至少直到看見NSTable=1值出現。在步驟148,決定頁面是否成功地映射至實體記憶體。若不存在一成功映射,則程序行進至步驟150,其中觸發一例外程序。若映射成功,則程序行進至步驟152,其中將實體位址轉譯資料、NST位元及其它存取許可位元儲存於轉譯旁看緩衝器內以供後續使用。
若步驟144決定在轉譯旁看緩衝器中存在一匹配,則程序行進至步驟154,其中自轉譯旁看緩衝器讀取匹配資料。此匹配資料包括實體位址轉譯資料、存取許可及NST位元。接在步驟152及154之後,程序行進至步驟156,其中決定獲取的存取許可資料是否指示允許記憶體存取。例如,一部分的記憶體可僅當操作在權限模式中時被標記為可存取,且處理器當前可處在使用者模式中,因此不允進行存取。若回復的存取許可不允許進行存取,則程序行進至步驟150,其中再次觸發一例外程序。若存取許可指示允許進行存取,則程序行進至步驟158,其中使用實體位址轉譯資料及記憶體存取的原始虛擬位址來形成實體位址。步驟160決定NST位元是否設定為0,及保密位元S是否指示記憶體存取係源自於保密模式中執行的一程序。若並未同時符合二條件,則程序行進至步驟162,其中嘗試如同使用全實體位址的非保密存取般來執行記憶體存取。若同時滿足步驟160之二條件,則程序行進至步驟164,其中嘗試如同使用全實體位址的保密存取般來執行記憶體存取。接在步驟162及164之後,步驟166決定實體位址是否對應至保密記憶體區域或保密週邊。若實體位址不對應至保密記憶體或保密週邊,則程序行進至步驟168,其中執行記憶體存取(不論為讀取或寫入)。若步驟166決定位址係對應至保密記憶體區域或保密週邊,則步驟170使用存取控制電路128來決定交易處理(transaction)是否安全保密,也就是NST位元是否具有零值。若交易處理為安全保密,則程序再次行進至步驟168,以執行存取動作。若交易處理非為安全保密,則程序行進至步驟172,其中若存取為一寫入操作,則阻擋該寫入操作,或者若存取為一讀取操作,則回傳零值。
第9圖圖示說明一可能使用的虛擬機器實現。儘管前述之具體實施例係在用以操作支援相關技術的特定程序硬體的設備及方法架構下實現本發明,然而亦可提供所謂的硬體裝置之虛擬機器實現。這些虛擬機器實現係在一主機處理器530上執行,主機處理器530一般會執行支援虛擬機器程式的主機作業系統520。典型地,需要以適當速度運行的大功率處理器來提供虛擬機器實現,然而此一方式在某些情況下係適合的,諸如當需求執行另一處理器所屬的本地程式碼以達成相容或再使用目的時。虛擬機器程式510能夠執行應用程式(或作業系統)500以提供和由真實硬體裝置執行程式時相同的結果。因此,可使用虛擬機器程式510,從應用程式500內部執行程式指令(包括前述的記憶體存取之控制)。
儘管已參照所附圖示詳細描述所例示的本發明實施例,然而應瞭解到本發明並未限於這些明確的具體實施例,本領域之熟習技藝人士可對本發明進行各種不同變化及修改,而不致悖離由所附申請專利範圍所界定的本發明範圍及精神。
2...資料處理系統
4...晶片上系統積體電路
6...非保密記憶體積體電路
8...處理器
10...管線
12...解碼器
14...暫存器組
16...乘法器
18...移位器
20...加法器
22...保密記憶體
24...記憶體管理單元
26...記憶體介面
28...快取記憶體
30...轉譯旁看緩衝器
32...轉譯表基底暫存器
34...非保密模式頁表資料
36...保密模式頁表資料
38...保密模式頁表資料
40...保密模式
42...非保密模式
44...監控模式
46...頁表
48...頁表
50...頁表
52...頁表
54...頁表
56...頁表
58...頁表
66...頁表入口
68...表保密欄位
70...頁表入口
72...表保密欄位
74...頁表入口
78...頁表入口
80...表保密欄位
82...屬性欄位
84...其它屬性欄位
128...存取控制電路
500...應用程式
510...虛擬機器程式
520...主機作業系統
530...主機硬體
第1圖概要地圖示一資料處理系統,其具有處理電路、記憶體管理電路及包括保密區域及非保密區域二者之記憶體;
第2圖概要地圖示第1圖之處理電路之操作模式,其中包括一或多保密模式及一或多非保密模式;
第3圖概要地圖示一頁表行走,其行進通過保密模式頁表資料以獲取用於管理操作在一保密模式中的記憶體存取的屬性資料;
第4圖概要地圖示一頁表入口,其包括一表保密欄位及一總體/非總體屬性欄位;
第5圖為一概要地圖示管理一記憶體存取操作之程序之流程圖,其使用儲存於一轉譯旁看緩衝器(translation lookaside buffer,TLB)的屬性資料或經由一頁表行走存取屬性資料;
第6圖為一概要地圖示執行作為一頁表行走之一部分的程序之流程圖,以回應於在該頁表行走期間存取的不同的頁表入口內的表保密欄位資料而控制經復原的屬性資料;
第7圖為一概要地圖示一保密記憶體電路之操作之流程圖,其回應於一記憶體存取請求而基於與該記憶體存取請求相關聯的一表屬性及一保密模式屬性來允許或阻擋該記憶體存取請求;
第8圖為一概要地圖示與一記憶體存取請求相關聯的一些程序的流程圖;及
第9圖概要地圖示一虛擬機器實現。
46...頁表
48...頁表
50...頁表
52...頁表
54...頁表
56...頁表
58...頁表
66...頁表入口
68...表保密欄位
70...頁表入口
72...表保密欄位
74...頁表入口

Claims (19)

  1. 一種用於處理資料之設備,該設備包含:一記憶體;處理電路,其回應於程式指令而執行處理操作,該處理電路具有複數個操作模式,該複數個操作模式包括一或更多個保密模式及一或更多個非保密模式,該記憶體包括:(1)一或更多個保密區域,其在該一或更多個保密模式中為可存取,而在該一或更多個非保密模式中為不可存取;及(2)一或更多個非保密區域,其在該一或更多個保密模式中為可存取,且在該一或更多個非保密模式中為可存取;記憶體控制電路,其回應於頁表資料以管理該記憶體之存取;其中該頁表資料包括保密模式頁表資料及非保密模式頁表資料,當該處理電路操作在該一或更多個保密模式中時,使用該保密模式頁表資料來管理該記憶體之存取,而當該處理電路操作在該一或更多個非保密模式中時,使用該非保密模式頁表資料來管理該記憶體之存取;該保密模式頁表資料包括一頁表階層,其具有相關聯的頁表層級,該等頁表層級係配置成:在一第一頁表層級的一第一層級頁表包含多個頁表入口,該等頁表入口 分別指到該頁表階層中比該第一頁表層級還低的一第二頁表層級的第二層級頁表;及該第一層級頁表之每一頁表入口包括一表保密欄位,其指示由該頁表入口指到的一第二層級頁表係儲存於該一或更多個保密區域內或該一或更多個非保密區域內,其中該頁表資料提供與受制於一記憶體存取操作的一記憶體位址相關聯的屬性資料,該處理電路係配置以執行複數個軟體程序,且用於該記憶體位址之該屬性資料係為總體(global)屬性資料以供來自該複數個軟體程序之任一者的記憶體存取使用,或為非總體(non-global)屬性資料以供來自一個別軟體程序的記憶體存取使用,該記憶體控制電路係配置以執行一頁表行走(page table walk)操作,其中存取向下通過該階層中之該等頁表層級的一系列的頁表入口,以獲取要管理的一記憶體存取操作的屬性資料,及若該系列的頁表入口中任一者之該表保密欄位具有一值,該值指示該系列的頁表入口中之一者係儲存於該一或更多個非保密區域內,則該記憶體控制電路係配置成將該屬性資料視為如同非總體屬性資料般。
  2. 如申請專利範圍第1項所述之設備,其中該記憶體控制電路係配置以執行一頁表行走操作,在該頁表行走操作中存取向下通過該階層中之該等頁表層級的一系列的頁表入口,以獲取要管理的一記憶體存取操作的屬性資料,及若該系列的頁表入口中任一者之該表保密欄位具 有一值,該值指示該系列的頁表入口中之一者係儲存於該一或更多個非保密區域內,則該記憶體控制電路將該記憶體存取操作識別為一非保密記憶體存取操作。
  3. 如申請專利範圍第2項所述之設備,其中該記憶體控制電路藉由將一非保密表屬性納入經取得以用於該記憶體存取操作的該屬性資料內,以將該記憶體存取操作識別為一非保密記憶體存取操作。
  4. 如申請專利範圍第2項所述之設備,其中若該記憶體控制電路將該記憶體存取操作識別為一非保密記憶體存取操作,且該記憶體存取操作係導向該一或更多個保密區域,則該記憶體阻擋該記憶體存取操作。
  5. 如申請專利範圍第1項所述之設備,其中該頁表資料提供與受制於一記憶體存取操作的一記憶體位址相關聯的屬性資料,該屬性資料提供在該記憶體存取操作之一虛擬記憶體位址與該記憶體內之一實體記憶體位址間的一映射。
  6. 如申請專利範圍第1項所述之設備,其中該一或更多個保密區域之一儲存容量係少於該一或更多個非保密區域之一儲存容量。
  7. 如申請專利範圍第1項所述之設備,其中該一或更多個非保密區域中至少一些區域係形成於一第一積體電路內,且該處理電路、該記憶體控制電路及該一或更多個保密區域係形成於與該第一積體電路分開的一第二積體電路。
  8. 如申請專利範圍第1項所述之設備,包含一保密轉譯表基底暫存器,其係配置以儲存一基底位址值,其指到該保密模式頁表資料之該階層之一入口點(entry point),及該保密轉譯表基底暫存器係配置以儲存一保密欄位,其指示是否所有的該保密模式頁表資料皆儲存於該一或更多個非保密區域中。
  9. 一種用於處理資料之設備,該設備包含:記憶體構件,用以儲存資料;處理構件,用以回應於一程式指令串流而執行處理操作,該處理構件具有複數個操作模式,其中包括一或更多個保密模式及一或更多個非保密模式,該記憶體構件包括:(1)一或更多個保密區域,其在該一或更多個保密模式中為可存取,而在該一或更多個非保密模式中為不可存取;及(2)一或更多個非保密區域,其在該一或更多個保密模式中為可存取,且在該一或更多個非保密模式 中為可存取;記憶體控制構件,其回應於頁表資料以管理該記憶體構件之存取;其中該頁表資料包括保密模式頁表資料及非保密模式頁表資料,當該處理構件操作在該一或更多個保密模式中時,使用該保密模式頁表資料來管理該記憶體構件之存取,而當該處理構件操作在該一或更多個非保密模式中時,使用該非保密模式頁表資料來管理該記憶體構件之存取;該保密模式頁表資料包括一頁表階層,其具有相關聯的頁表層級,該等頁表層級係配置成:在一第一頁表層級的一第一層級頁表包含多個頁表入口,該等頁表入口分別指到該頁表階層中比該第一頁表層級還低的一第二頁表層級的第二層級頁表;及該第一層級頁表之每一頁表入口包括一表保密欄位,其指示由該頁表入口指到的一第二層級頁表係儲存於該一或更多個保密區域內或該一或更多個非保密區域內,其中該頁表資料提供與受制於一記憶體存取操作的一記憶體位址相關聯的屬性資料,該處理構件係配置以執行複數個軟體程序,且用於該記憶體位址之該屬性資料係為總體屬性資料以供來自該複數個軟體程序之任一者的記憶體存取使用,或為非總體屬性資料以供來自一個別軟體程序的記憶體存取使用,該記憶體控制構件係配置以執行一頁表行走操作,其中存取向下通過該階層中之 該等頁表層級的一系列的頁表入口,以獲取要管理的一記憶體存取操作的屬性資料,及若該系列的頁表入口中任一者之該表保密欄位具有一值,該值指示該系列的頁表入口中之一者係儲存於該一或更多個非保密區域內,則該記憶體控制構件係配置成將該屬性資料視為如同非總體屬性資料般。
  10. 一種管理一記憶體之存取的方法,該記憶體係與處理電路相關聯,該處理電路具有複數個操作模式,其中包括一或更多個保密模式及一或更多個非保密模式,該記憶體包括一或更多個保密區域及一或更多個非保密區域,該一或更多個保密區域在該一或更多個保密模式中為可存取而在該一或更多個非保密模式中為不可存取,該一或更多個非保密區域在該一或更多個保密模式中為可存取且在該一或更多個非保密模式中為可存取,該方法包含以下步驟:當該處理電路操作在該一或更多個保密模式中時,回應於保密模式頁表資料以管理該記憶體之存取;及當該處理電路操作在該一或更多個非保密模式中時,回應於非保密模式頁表資料而管理該記憶體之存取;其中該保密模式頁表資料包括一頁表階層,其具有相關聯的頁表層級,該等頁表層級係配置成:在一第一頁表層級的一第一層級頁表包含多個頁表入口,該等頁表入口 分別指到該頁表階層中比該第一頁表層級還低的一第二頁表層級的第二層級頁表;及該第一層級頁表之每一頁表入口包括一表保密欄位,其指示由該頁表入口指到的一第二層級頁表係儲存於該一或更多個保密區域內或該一或更多個非保密區域內,其中該頁表資料提供與受制於一記憶體存取操作的一記憶體位址相關聯的屬性資料,該處理電路執行複數個軟體程序,且用於該記憶體位址之該屬性資料係為總體屬性資料以供來自該複數個軟體程序之任一者的記憶體存取使用,或為非總體屬性資料以供來自一個別軟體程序的記憶體存取使用,且執行一頁表行走操作,其中存取向下通過該階層中之該等頁表層級的一系列的頁表入口,以獲取要管理的一記憶體存取操作的屬性資料,及若該系列的頁表入口中任一者之該表保密欄位具有一值,該值指示該系列的頁表入口中之一者係儲存於該一或更多個非保密區域內,則將該屬性資料視為如同非總體屬性資料般。
  11. 如申請專利範圍第10項所述之方法,包含以下步驟:執行一頁表行走操作,在該頁表行走操作中存取向下通過該階層中之該等頁表層級的一系列的頁表入口,以獲取要管理的一記憶體存取操作的屬性資料,及若該系列的頁表入口中任一者之該表保密欄位具有一值,該值指示該系列的頁表入口中之一者係儲存於該一或更多個 非保密區域內,則將該記憶體存取操作識別為一非保密記憶體存取操作。
  12. 如申請專利範圍第11所述之方法,包含以下步驟:藉由將一非保密表屬性納入經取得以用於該記憶體存取操作的該屬性資料內,以將該記憶體存取操作識別為一非保密記憶體存取操作。
  13. 如申請專利範圍第11項所述之方法,其中若該記憶體存取操作經識別為一非保密記憶體存取操作,且該記憶體存取操作係導向該一或更多個保密區域,則該記憶體阻擋該記憶體存取操作。
  14. 如申請專利範圍第10項所述之方法,其中該頁表資料提供與受制於一記憶體存取操作的一記憶體位址相關聯的屬性資料,該屬性資料提供在該記憶體存取操作之一虛擬記憶體位址與該記憶體內之一實體記憶體位址間的一映射。
  15. 如申請專利範圍第10項所述之方法,其中該一或更多個保密區域之一儲存容量係少於該一或更多個非保密區域之一儲存容量。
  16. 如申請專利範圍第10項所述之方法,其中該一或更 多個非保密區域中至少一些區域係形成於一第一積體電路內,且該處理電路及該一或更多個保密區域係形成於與該第一積體電路分開的一第二積體電路。
  17. 如申請專利範圍第10項所述之方法,其中一保密轉譯表基底暫存器儲存一基底位址值,其指到該保密模式頁表資料之該階層之一入口點,及該保密轉譯表基底暫存器儲存一保密欄位,其指示是否所有的該保密模式頁表資料皆儲存於該一或更多個非保密區域中。
  18. 一種由一電腦程式提供的虛擬機器,該電腦程式係儲存於一非暫時儲存媒體且執行於一資料處理設備上,該虛擬機器依據如申請專利範圍第1項所述之用於處理資料的設備而提供一指令執行環境。
  19. 一種用於處理資料之設備,該設備包含:一記憶體;處理電路,其回應於程式指令而執行處理操作,該處理電路具有複數個操作模式,其中包括一或更多個保密模式及一或更多個非保密模式,該記憶體包括:(1)一或更多個保密區域,其在該一或更多個保密模式中為可存取,而在該一或更多個非保密模式中為不可存取;及(2)一或更多個非保密區域,其在該一或更多個保密 模式中為可存取,且在該一或更多個非保密模式中為可存取;記憶體控制電路,其回應於頁表資料以管理該記憶體之存取;其中該記憶體控制電路係配置成:當操作在該一或更多個保密模式中之一者且該記憶體控制電路接收到一訊號時,該訊號指示已使用儲存於該一或更多個非保密區域內的頁表資料來管理由一記憶體存取請求所請求之操作在該一或更多個保密模式中之存取,則該記憶體控制電路會以如同該記憶體存取係發生在當操作在該一或更多個非保密模式中時的方式來處理該記憶體存取,其中該頁表資料提供與受制於一記憶體存取操作的一記憶體位址相關聯的屬性資料,該處理電路係配置以執行複數個軟體程序,且用於該記憶體位址之該屬性資料係為總體屬性資料以供來自該複數個軟體程序之任一者的記憶體存取使用,或為非總體屬性資料以供來自一個別軟體程序的記憶體存取使用,該記憶體控制電路係配置以執行一頁表行走操作,其中存取向下通過該階層中之該等頁表層級的一系列的頁表入口,以獲取要管理的一記憶體存取操作的屬性資料,及若該系列的頁表入口中任一者之該表保密欄位具有一值,該值指示該系列的頁表入口中之一者係儲存於該一或更多個非保密區域內,則該記憶體控制電路係配置成將該屬性資料視為如同 非總體屬性資料般。
TW100104953A 2010-02-17 2011-02-15 在保密與非保密記憶體區域內儲存保密模式頁表資料 TWI506439B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/656,849 US20110202740A1 (en) 2010-02-17 2010-02-17 Storing secure page table data in secure and non-secure regions of memory

Publications (2)

Publication Number Publication Date
TW201205285A TW201205285A (en) 2012-02-01
TWI506439B true TWI506439B (zh) 2015-11-01

Family

ID=43902882

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100104953A TWI506439B (zh) 2010-02-17 2011-02-15 在保密與非保密記憶體區域內儲存保密模式頁表資料

Country Status (9)

Country Link
US (1) US20110202740A1 (zh)
EP (1) EP2537097B1 (zh)
JP (1) JP5581403B2 (zh)
KR (1) KR101801022B1 (zh)
CN (1) CN102804153B (zh)
IL (1) IL220529A (zh)
MY (1) MY156029A (zh)
TW (1) TWI506439B (zh)
WO (1) WO2011101660A2 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694755B1 (en) * 2010-03-17 2014-04-08 Ambarella, Inc. Virtual memory management for real-time embedded devices
GB2483907A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
KR102051816B1 (ko) * 2013-02-05 2019-12-04 에이알엠 리미티드 메모리 보호 유닛들을 사용한 가상화 지원 게스트 오퍼레이팅 시스템
US8959576B2 (en) * 2013-03-14 2015-02-17 Intel Corporation Method, apparatus, system for qualifying CPU transactions with security attributes
KR101753866B1 (ko) * 2013-05-10 2017-07-04 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 메모리 액세스의 가속
CN103532938B (zh) * 2013-09-29 2016-09-21 东莞宇龙通信科技有限公司 应用数据保护的方法和系统
US9864861B2 (en) * 2014-03-27 2018-01-09 Intel Corporation Object oriented marshaling scheme for calls to a secure region
JP6188633B2 (ja) * 2014-05-26 2017-08-30 Kddi株式会社 コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラム
JP6181004B2 (ja) 2014-06-20 2017-08-16 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6162652B2 (ja) 2014-06-20 2017-07-12 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6584823B2 (ja) * 2014-06-20 2019-10-02 株式会社東芝 メモリ管理装置、プログラム、及び方法
US10558584B2 (en) * 2014-06-23 2020-02-11 Intel Corporation Employing intermediary structures for facilitating access to secure memory
GB2529248A (en) * 2014-08-15 2016-02-17 Advanced Risc Mach Ltd Performance monitoring in a data processing apparatus capable of executing instructions at a plurality of privilege levels
US9703720B2 (en) 2014-12-23 2017-07-11 Intel Corporation Method and apparatus to allow secure guest access to extended page tables
US9948618B2 (en) 2015-02-05 2018-04-17 Western Digital Technologies, Inc. Secure stream buffer on network attached storage
GB2536201B (en) 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Handling address translation requests
US10102391B2 (en) * 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法
CN106933751B (zh) * 2015-12-29 2019-12-24 澜起科技股份有限公司 用于保护动态随机访问存储器的方法和设备
GB2546742B (en) * 2016-01-26 2019-12-11 Advanced Risc Mach Ltd Memory address translation management
US10628315B2 (en) * 2017-09-28 2020-04-21 Intel Corporation Secure memory repartitioning technologies
CN108154032B (zh) * 2017-11-16 2021-07-30 中国科学院软件研究所 具有内存完整性保障功能的计算机系统信任根构建方法
US11082231B2 (en) * 2017-12-29 2021-08-03 Intel Corporation Indirection directories for cryptographic memory protection
CN109840411B (zh) * 2018-02-27 2021-01-08 中国科学院计算技术研究所 一种应用的保护方法及系统
JPWO2019167360A1 (ja) * 2018-02-28 2021-02-12 ソニー株式会社 メモリ管理システム及びメモリ管理方法、並びに情報処理装置
US11487906B2 (en) * 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11088846B2 (en) * 2019-03-28 2021-08-10 Intel Corporation Key rotating trees with split counters for efficient hardware replay protection
CN111143900B (zh) * 2019-12-24 2023-09-26 海光信息技术(苏州)有限公司 数据处理、访问控制方法、系统、器件、设备、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268095A1 (en) * 2004-03-31 2005-12-01 Intel Corporation Resource management in security enhanced processors
TW200629139A (en) * 2004-09-02 2006-08-16 Ibm Data encryption interface for reducing encrypt latency impact on standard traffic
US20090055612A1 (en) * 1999-08-20 2009-02-26 Intertrust Technologies Corp. Secure processing unit systems and methods

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804766B1 (en) * 1997-11-12 2004-10-12 Hewlett-Packard Development Company, L.P. Method for managing pages of a designated memory object according to selected memory management policies
JP2000276405A (ja) * 1999-01-19 2000-10-06 Matsushita Electric Ind Co Ltd アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム
US7426644B1 (en) * 2001-12-05 2008-09-16 Advanced Micro Devices, Inc. System and method for handling device accesses to a memory providing increased memory access security
US7130977B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Controlling access to a control register of a microprocessor
RU2005115094A (ru) * 2002-11-18 2006-01-20 Арм Лимитед (Gb) Отображение адресов виртуальной памяти на физические адреса в системе с наличием защищенного домена и незащищенного домена
GB0226875D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Control of access to a memory by a device
GB2396713B (en) * 2002-11-18 2005-09-14 Advanced Risc Mach Ltd Apparatus and method for controlling access to a memory unit
US8352705B2 (en) * 2008-01-15 2013-01-08 Vmware, Inc. Large-page optimization in virtual memory paging systems
GB2460393B (en) * 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090055612A1 (en) * 1999-08-20 2009-02-26 Intertrust Technologies Corp. Secure processing unit systems and methods
US20050268095A1 (en) * 2004-03-31 2005-12-01 Intel Corporation Resource management in security enhanced processors
TW200629139A (en) * 2004-09-02 2006-08-16 Ibm Data encryption interface for reducing encrypt latency impact on standard traffic

Also Published As

Publication number Publication date
IL220529A0 (en) 2012-08-30
KR101801022B1 (ko) 2017-11-24
CN102804153B (zh) 2016-05-25
KR20130001240A (ko) 2013-01-03
EP2537097A2 (en) 2012-12-26
TW201205285A (en) 2012-02-01
CN102804153A (zh) 2012-11-28
WO2011101660A3 (en) 2011-12-08
IL220529A (en) 2016-06-30
MY156029A (en) 2015-12-31
EP2537097B1 (en) 2020-05-27
JP2013522702A (ja) 2013-06-13
US20110202740A1 (en) 2011-08-18
JP5581403B2 (ja) 2014-08-27
WO2011101660A2 (en) 2011-08-25

Similar Documents

Publication Publication Date Title
TWI506439B (zh) 在保密與非保密記憶體區域內儲存保密模式頁表資料
US8296538B2 (en) Storing secure mode page table data in secure and non-secure regions of memory
US10509736B2 (en) Controlling access by IO devices to pages in a memory in a computing device
US9639482B2 (en) Software cryptoprocessor
US9507963B2 (en) Method and apparatus for secure execution using a secure memory partition
US20180189190A1 (en) Controlling Access to Pages in a Memory in a Computing Device
US20080109625A1 (en) Operating system protection against side-channel attacks on secrecy
TW202141284A (zh) 使用複數個實體位址空間的裝置及方法
EP4127950B1 (en) Apparatus and method
US20230185733A1 (en) Data integrity check for granule protection data
TW202137008A (zh) 使用複數個實體位址空間的裝置及方法