TWI584305B - 分割成包括元資料區域之多個區域的位元組可定址非依電性讀寫主記憶體 - Google Patents

分割成包括元資料區域之多個區域的位元組可定址非依電性讀寫主記憶體 Download PDF

Info

Publication number
TWI584305B
TWI584305B TW104101974A TW104101974A TWI584305B TW I584305 B TWI584305 B TW I584305B TW 104101974 A TW104101974 A TW 104101974A TW 104101974 A TW104101974 A TW 104101974A TW I584305 B TWI584305 B TW I584305B
Authority
TW
Taiwan
Prior art keywords
memory
computer
area
region
address
Prior art date
Application number
TW104101974A
Other languages
English (en)
Other versions
TW201535411A (zh
Inventor
卡羅斯H 寇斯塔
塔西安諾D 沛義茲
迪亞哥 拉梅達利亞
毛瑞西歐N 波多
羅伯瑞托 班德
喬阿沃C 安伯西
Original Assignee
惠普發展公司有限責任合夥企業
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 惠普發展公司有限責任合夥企業 filed Critical 惠普發展公司有限責任合夥企業
Publication of TW201535411A publication Critical patent/TW201535411A/zh
Application granted granted Critical
Publication of TWI584305B publication Critical patent/TWI584305B/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/4401Bootstrapping
    • 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/4401Bootstrapping
    • G06F9/442Shutdown
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data

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)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Description

分割成包括元資料區域之多個區域的位元組可定址非依電性讀寫主記憶體
本發明係有關於分割成包括元資料區域之多個區域的位元組可定址非依電性讀寫主記憶體。
發明背景
許多電腦系統針對主記憶體及二級儲存裝置使用分開的技術。該主記憶體典型地使用一依電性記憶體技術,諸如動態隨機存取記憶體(DRAM)。因一旦電力被去除則依電性記憶體不會保留其內容(在該電腦系統中不含額外組件,諸如電池備援機制其可維持記憶體歷經一段有限時間,增加了成本及複雜度),故該電腦系統之軟體典型地儲存於使用非依電性記憶體技術的二級儲存裝置,諸如快閃記憶體、固態驅動裝置(SSD)或磁性硬碟驅動裝置(HDD)等。由於此種配置結果,該電腦系統含有多種不同型別之記憶體,增加了成本及複雜度。
依據本發明之一實施例,係特地提出一種電腦包 含:一處理器;耦接至該處理器之一位元組可定址非依電性讀寫主記憶體,該記憶體分割成多個區域,各個區域具有至少一個經界定之操作性質,其中該等多個區域中之至少一者為一元資料區域以儲存多個資料集,各個資料集載明該等區域中之相對應一者於記憶體中之一位置,及該至少一個操作性質。
100、200‧‧‧電腦
110、210‧‧‧處理器
115、205‧‧‧匯流排
120、290‧‧‧位元組可定址非依電性讀寫(BANVRW)主記憶體
122‧‧‧區域J
124‧‧‧區域K
130‧‧‧元資料區域
140‧‧‧資料集J
150‧‧‧資料集K
162、222‧‧‧位置
164、224‧‧‧操作性質
220‧‧‧記憶體管理單元(MMU)
240、265‧‧‧記憶體控制器
250‧‧‧可啟動媒體
252‧‧‧周邊介面
260‧‧‧依電性主記憶體、DRAM
270‧‧‧加密/解密模組
280‧‧‧媒體控制器
282‧‧‧位置欄位
284‧‧‧密碼欄位
300‧‧‧記憶體對映圖
310‧‧‧ROM區域
312‧‧‧啟動載入程式
320‧‧‧持久性區域
322‧‧‧第二階段啟動載入程式(SSBL)
324‧‧‧作業系統或超管理器
326‧‧‧初始化碼
327‧‧‧檔案系統驅動器
330‧‧‧暫時性區域
340‧‧‧第二持久性區域
350、355‧‧‧元資料區域
400‧‧‧元資料結構
410、410A‧‧‧元資料分錄
412‧‧‧版本欄位
414‧‧‧高階模組初始化碼位址欄位
416‧‧‧第一區域欄位
418、427、438‧‧‧CRC欄位
420、420A-D‧‧‧區域分錄
421‧‧‧區域型別欄位
422‧‧‧資料保留操作性質欄位
423‧‧‧存取許可操作性質欄位
424‧‧‧加密操作性質欄位
425‧‧‧第一位址空間欄位
426‧‧‧下個區域欄位
430、430A-F‧‧‧位址空間分錄
432‧‧‧起始位址欄位
434‧‧‧長度欄位
436‧‧‧下個位址空間欄位
500‧‧‧方法
510-556‧‧‧方塊、方法步驟
A-J‧‧‧記憶體位址
圖1為依據本文揭示之一實施例具有一位元組可定址非依電性讀寫主記憶體之一電腦之方塊圖。
圖2為依據本文揭示之一實施例具有一位元組可定址非依電性讀寫主記憶體之另一電腦之方塊圖。
圖3為依據本文揭示之一實施例圖2之該位元組可定址非依電性讀寫主記憶體分割成多個區域之方塊圖。
圖4A-4B為依據本文揭示之一實施例儲存於圖2之該位元組可定址非依電性讀寫主記憶體其描述圖3之多個區域之示意代表圖。
圖5A-5B為依據本文揭示之一實施例一種啟動圖1或圖2之該電腦系統之方法之流程圖。
較佳實施例之詳細說明
針對主記憶體及二級儲存裝置具有分開技術之一電腦系統相聯結有成本昂貴、複雜、耗時及其它缺點。此外,因此等二級儲存裝置之個別位元組典型地並非藉該電腦系統之該處理器所可直接存取,且無法由該處理器如 同自DRAM般快速地存取,當施加電力至該電腦系統時,二級儲存裝置之某些內容首先自二級儲存裝置複製至主記憶體。此等部分例如可包括該電腦之作業系統。此等操作典型地延長了該電腦之啟動時間。
如於此處定義及於隨附之申請專利範圍中定義,一「主記憶體」可廣義地瞭解為表示一記憶體,其中資料之個別位元組可由該電腦系統之該處理器所直接存取及讀寫,而與該處理器所採用之字元大小獨立無關。此外,雖然一「位元組」可典型地為8位元,但於若干實施例中,一位元組可指稱一更大的或更小的多位元集合。
現在可使用新穎位元組可定址非依電性記憶體技術,比起先前技術其成本更價廉,存取時間更快,及每單位體積之位元組更緊密。也預期此等記憶體之成本、存取時間、及密度將趨近於且超過DRAM的程度。此等記憶體之實施例包括,但非限制性,電阻隨機存取記憶體(RRAM)、憶阻器、相變隨機存取記憶體(PCM、PCRAM、PRAM)、磁阻隨機存取記憶體(MRAM)、及自旋轉移矩隨機存取記憶體(STT-RAM),僅舉出少數實施例。此等記憶體於一電腦系統中可用作為持久性主記憶體(PMM)。如於此處定義及於隨附之申請專利範圍各項中定義,一「持久性」或「非依電性」主記憶體可廣義地瞭解為表示一主記憶體其橫跨該電腦系統之電力循環週期而保有其內容。分開的二級儲存裝置於若干實施例中非為位元組可定址,反而為區塊可定址,該二級記憶體可自此種電腦系統中刪 除,原因在於軟體諸如作業系統或超管理器、應用程式、及其相聯結的持久性資料檔案可儲存於PMM及橫跨該電腦系統之電力循環週期而仍予保留。如此可優異地使得電腦系統較不複雜、較為價廉、及較為快速啟動。
現在參考附圖,例示依據本文揭示組成之一電腦之一實施例,其中一處理器係通訊式耦接至一位元組可定址非依電性讀寫主記憶體,其被分割成多個區域。各個區域具有至少一個經界定之操作性質。該等區域中之至少一者為一元資料區域其係經組配以儲存多個資料集。各個資料集於記憶體內載明該等多個區域中之相對應一者之一位置,及該相對應區域之至少一個操作性質。一啟動載入程式及一作業系統及/或超管理器係儲存於該等區域中之一或多者,且於該電腦之一啟動程序期間執行。
一作業系統為一集合之軟體,其管理該電腦之硬體資源,及提供服務給在該電腦上執行的其它程式。該作業系統被考慮為本機(又稱「裸金屬」)程式,其在構思上係在該硬體「頂上」,可直接控制硬體,而在該電腦上執行的其它程式典型地係經由對該作業系統所做請求而存取該等硬體資源。一超管理器為產生及跑虛擬機器之一軟體集合,其可考慮為模擬另一電腦之規格、架構、及操作的「軟體電腦」。一超管理器也可為本機「裸金屬」程式,或另外,一超管理器可由該超管理器在其「頂上」跑的一作業系統主持。如此處使用「超管理器」及於隨附之申請專利範圍中作為「高階程式」係指本機「裸金屬」程式超管理器。
現在以進一步細節考慮電腦,及參考圖1,一電腦100具有一處理器110,其係透過一匯流排115耦接至一位元組可定址非依電性讀寫(BANVRW)主記憶體120。該主記憶體120分割成多個區域,其中之一者為元資料區域。例示三個區域實施例:區域J 122、區域K 124、及元資料區域130。該元資料區域130儲存多個資料集。例示三個資料集實施例:資料集J 140(其係與區域J 122相聯結)及資料集K 150(其係與區域K 124相聯結)。
該元資料區域130係由該處理器110(如由程式諸如啟動載入程式之指令)可使用以識別區域之位置及操作性質。各個資料集140、150具有一位置162,其載明組成該個別區域122、124之該記憶體120之位址範圍。各個資料集140、150也具有一操作性質164,其載明該個別區域122、124相對應之該記憶體120之位址範圍。於若干實施例中,針對元資料區域可有一資料集,而於其它實施例中,可刪除此種資料集,於該處該元資料區域130係位在一預定固定位址。於若干實施例中,此種位址可由電腦架構預先決定,及/或可為處理器110所已知,或如軟體指示由該處理器110決定。
各個區域122、124、130具有至少一個相聯結的經界定的操作性質。可界定多個不同的操作性質164。一個操作性質164可為由該處理器110所許可存取的在該相對應區域內部記憶體位址之至少一型。此種許可存取可包括讀存取、寫存取、或讀及寫存取兩者。
該區域之一操作性質164可為一內容保留性質,其載明應答於電腦100之關機,一區域122、124、130之內容如何被處理。「關機」一詞可廣義地瞭解為表示作業系統或超管理器之執行結束至電腦100被重新啟動直到其再度能夠被使用之前的程度。為了再度使用電腦100,關機之後可接著為「熱」重新啟動(若電腦之供應電力尚未循環關及然後開)或「冷」重新啟動(若電腦之供應電力已經循環)。內容保留性質可載明於記憶體120之該區域122、124、130中之資料應答於一關機欲予維持。例如針對含有可由該處理器110執行之指令的一或多個程式之一區域可被載明保有該資料內容。該內容保留性質另可載明於該區域之資料將應答於關機而被拋棄。此點可針對用在程式之執行期間暫存資料的一區域。暫存資料為在關機之後不被程式預期仍然有效的資料。暫存資料可由啟動載入程式、作業系統、超管理器、及/或在該作業系統及/或超管理器之控制之下跑的其它程式中之一或多者產生及/或使用。
於某些情況下,該暫存資料可被被動捨棄。於此等情況下,相關程式預期該暫存資料已經被儲存於依電性記憶體,因此不預期來自該先前啟動的暫存資料在目前啟動之後仍然有效。於其它情況下,該暫存資料可被主動捨棄,例如於關機程序中主動捨棄。於主動捨棄中,該相對應非依電性區域的內容可被覆寫,或否則變失效或變成無法存取。欲保護不被偷偷摸摸存取的含有敏感資訊之該暫存資料之情況,主動捨棄可能較為優異,例如當電腦系統 之電源關閉時拔除主記憶體。
另一項操作性質164可為應用至相對應區域之內容的加密型別。加密提供保護敏感資訊之另一機制。加密可用以保護敏感資訊-資料及/或程式,其持續通過關機自電腦之先前啟動至下次啟動。該加密型別可載明無加密或施加至該區域之特定加密型別。加密也允許另一型被動捨棄記憶體內容,藉由捨棄加密鑰,如此許可該記憶體內容變成無法解密及因而變成無用。
如後文參考圖2以進一步細節討論,電腦100根據該元資料區域130之多個資料集140、150執行多個區域之操作性質。
元資料區域130優異地使得該記憶體120自我描述。換言之,該處理器110如由一啟動載入程式或其它程式指令,藉由評估及解譯該元資料區域130之該等資料集,能夠決定該記憶體120已經分割的多個區域之位置及性質。
現在考慮另一電腦,及參考圖2,一電腦200包括一處理器210及一位元組可定址非依電性讀寫(BANVRW)主記憶體290。處理器210係通訊式耦接至一記憶體管理單元(MMU)220,於若干實施例中,該MMU係在處理器210內部。該處理器210係通訊式耦接至一匯流排205。於若干實施例中,該匯流排205可為前端匯流排或相干匯流排。雖然例示單一處理器以求清晰,但於若干實施例系統中,諸如多核心CPU,可有多個處理器在該多核心CPU內部。於若干實施例中,各個處理器210也可含有一層級1快取記憶 體。於若干實施例中,該多核心CPU也可包括匯流排205、層級2快取記憶體及層級3快取記憶體。為求例示上清晰,自圖2中刪除多個處理器及快取記憶體。
該電腦200也包括外接該處理器210(或多核心CPU)之其它組件。一記憶體控制器240係直接或間接地通訊式耦接至該匯流排205。該記憶體控制器240轉而通訊式耦接至用於該主記憶體290之一媒體控制器280。
於若干實施例中,該電腦可包括額外組件。通訊式耦接至該匯流排205之一周邊介面252可適用以通訊式耦接至外接式典型可卸式媒體250,諸如硬碟機、USB快閃記憶體驅動器、或EEPROM。於若干實施例中,該外接媒體可含有啟動載入程式、作業系統、或超管理器中之一或多者,及該電腦200可經組配以自該外接式媒體250啟動而非自該主記憶體290啟動。於若干實施例中,於該電腦200中之一跨接器或一硬體旗標可決定是否將使用儲存於該記憶體290內之或媒體250上之該啟動載入程式。於若干實施例中,該跨接器或硬體旗標也可決定該作業系統或超管理器係從該記憶體290或媒體250載入。於其它實施例中,該啟動載入程式本身可決定該作業系統或超管理器係從該記憶體290或媒體250載入。該啟動載入程式、作業系統、及超管理器將於後文中參考圖2-3以進一步細節討論。
於若干實施例中,該電腦200也包括依電性主記憶體260,諸如DRAM,其在供給電力給該電腦循環之後不會保留其先前資料。於電腦200之操作期間,該依電性主記 憶體260可用以儲存於關機之後無需保留的資料。該依電性主記憶體260可用以儲存程式碼,該程式碼可複製至該依電性主記憶體260及然後自其中執行。一記憶體控制器265通訊式耦接至依電性主記憶體260至匯流排205。
於若干實施例中,該電腦200可包括一加密/解密模組270,其可邏輯配置在該匯流排205與該記憶體控制器240間。當資料(或程式碼)自該處理器210通過該模組270至該記憶體290時,加密/解密模組270加密由該處理器210寫至記憶體290之資料(或程式碼);及當資料(或程式碼)自該記憶體290通過模組270至處理器210時,解密由處理器210讀取之資料(或程式碼)。該加密/解密模組270具現針對相對應於被讀取或被寫入之該記憶體位址之主記憶體290區域所載明之加密標準(亦即方法)。
於若干實施例中,於該處該電腦為一「單晶片系統(SoC)」,此一晶片可包括處理器210(或多核心CPU)、及周邊介面252、記憶體控制器240、265、及加密/解密模組270中之一或多者。
現在考慮將該位元組可定址非依電性讀寫主記憶體290分割成多個區域之一個實施例,及進一步參考圖3建立多個區域。各個區域具有記憶體之連續位元組之一或多個位址空間。各個區域可為多個不同型別中之一者:ROM、持久性、暫時性、或元資料。也可定義其它型別之區域。
一ROM區域可用以針對一啟動載入程式之至少 一部分儲存碼。部分可為例如第一階段啟動載入程式。該ROM區域也可包括針對該電腦之某些管理功能之碼,諸如基本輸出入系統(BIOS)或統一可擴延韌體介面(UEFI)。ROM區域可具有唯讀存取之操作性質,及應答該電腦之關機而維持其內容。於使用信賴處理程序重新啟動期間,可具現一能力以更新該ROM區域之內容(亦即寫入至該ROM區域),諸如藉供給一密碼或設定一硬體跨接器或旗標。典型地,該記憶體中有個ROM區域。該區域之內容可經加密,但典型地並不加密。
一持久性區域係用以在電腦關機之後儲存持續留在該記憶體290內之程式及資料,因而可持續存在通過啟動週期。該電腦之作業系統及/或超管理器典型地儲存於持久性區域。若一第一階段啟動載入程式用於該電腦,則其也可儲存於一持久性區域。儲存於一持久性區域之程式可經組配以在該區域適當地執行。為了適當地執行,該程式碼被寫入而與記憶體位置獨立無關,或知曉其於記憶體中之位置,且於執行期間不修改位在其影像內部之任何記憶體。另外,程式可經組配以載入另一記憶體位置,例如依電性主記憶體260且於該處執行。儲存於該持久性區域中之程式及資料可在檔案系統中被組織成檔案。於本脈絡中,「檔案系統」係指在記憶體中具有預定資訊結構之一檔案及目錄集合。檔案系統包括其中儲存的檔案係經由一檔案系統驅動器存取(亦即經由核心檔案系統模組,其為作業系統之部件及其設計以管理該檔案系統)。資料也可儲存於持 久性區域作為原始體積,其格式化對一特定程式諸如資料庫為特定;此等原始體積為經由該程式可存取,而非經由該檔案系統可存取。該持久性區域可具有在啟動程式之後的正常操作期間至少讀取存取之操作性質,及應答於電腦之關機保有其內容。但於啟動程序期間,該持久性區域可為不可寫入,以便保護其內容免於啟動程序期間可能發生的惡意寫入操作。該區域之內容可經或可未經加密。在該記憶體中可有任何數目之持久性區域,但典型地至少一個。
一暫時性區域典型地用以儲存於電腦操作期間產生的而在跨電力週期不預期被維持的資料。於其它程式中,部分資料例如可由啟動載入程式、作業系統或超管理器中之一或多者產生。可儲存於一暫時性區域中之資料實施例包括由在關機之後不預期保留的核心程序及使用者程序產生的資料結構,諸如,如果及當分頁被致能時由該處理器所使用的頁面表分錄。於若干實施例中,程式也可被載入該暫時性區域且於該處執行。該暫時性區域可具有至少讀取及寫入存取之操作性質,及應答於電腦之關機捨棄其內容。雖然依電性記憶體諸如DRAM 260應答於電腦之電力循環本質上捨棄其資料內容,但非依電性記憶體290則否。結果,一非依電性記憶體之一暫時性區域之內容可經被動捨棄或主動捨棄,如前文討論。該區域之內容可經或可未經加密。
一元資料區域係用以儲存描述該位元組可定址非依電性讀寫主記憶體290之分割的資料。該元資料區域典 型地具有唯讀存取之操作性質,及應答於電腦之關機維持其內容。可有二或多個相同元資料區域之複本儲存於該記憶體。該(等)額外元資料區域可用於回復用途。該區域之內容可經加密,但典型地則否。可具現一能力以安全地更新該元資料區域之內容以重新組配該主記憶體290之分割(亦即管理該等記憶體區域)。於若干實施例中,重新組配可由經授權使用者手動完成。於若干實施例中,當認知在該等持久性區域或暫時性區域中之一者的自由空間不足,而在另一者有過多自由空間時,該重新組配可自動地執行。藉由重新組配主記憶體290之區域分割,可能可獲得足夠空間以避免因調換程式或資料至一外接驅動器所造成的額外負擔及犧牲效能。接著將以進一步細節參考圖4A-4B討論儲存於該元資料區域之資料之結構。
記憶體對映圖300之一實施例顯示該位元組可定址非依電性讀寫主記憶體290之分割成多個區域。該主記憶體290具有針對該記憶體之位元組的A至J之一實體位址範圍。零之記憶體位址係相對應於A,及最大記憶體位址係相對應於J。
一ROM區域310跨據記憶體位址範圍A至B。一第一持久性區域320跨據記憶體位址範圍C至D,及E至F。一暫時性區域330跨據記憶體位址範圍D至E,及F至G。一第二持久性區域340跨據記憶體位址範圍G至H。一元資料區域350跨據記憶體位址範圍I至J,及此區域之一複本355在記憶體位址範圍B至C複製。該元資料複本區域355可用以自 該元資料區域350之訛誤中回復。
該記憶體對映圖300之實施例例示數個程式,其可儲存於該主記憶體290及其係與該電腦之啟動程序相聯結。此等程式係儲存於該ROM區域310及第一持久性區域320。一啟動載入程式312係儲存於該記憶體290之ROM區域310。該啟動載入程式312可在該處理器210為已知之一第一預定位置執行。該預定位置可為該電腦架構之特定位置。例示之啟動載入程式312始於在位址A(亦即記憶體位址零)執行。
該啟動載入程式312係經組配以載入一高階模組。於一個實施例中,該啟動載入程式312為第一階段啟動載入程式(FSBL),及該高階模組為第二階段啟動載入程式(SSBL)322。於另一個實施例中,該高階模組為一作業系統或超管理器324。該高階模組可至少部分在其於持久性區域320之位置適當執行。處理器210典型地透過啟動載入程式312,針對該作業系統或超管理器324,自元資料區域350之內容,決定初始化碼326在記憶體L之位置,或SSBL 322之起點在記憶體L’之位置,如後文以進一步細節參考圖4A-4B討論。然後執行之控制自該啟動載入程式312轉移給高階模組-在位址L針對作業系統或超管理器324之該初始化碼326,或在位址L’之該SSBL 322,其又轉而最終轉移控制給在位址L之該初始化碼326。該初始化碼326也可初始化一檔案系統驅動器327,及安裝該電腦之一檔案系統328,使得在該檔案系統中之該程式及資料檔案可被存取。部分儲存 於該持久性區域320之程式檔案及資料檔案可儲存於該檔案系統328,及使用該檔案系統驅動器327存取。
因該SSBL 322及該作業系統或超管理器324係在其被儲存的該持久性區域320中之位置可適當地執行,故避免於執行時間將此等模組322、324載入記憶體中之步驟。此一步驟將含括於系統中,於該處該作業系統或超管理器係在其執行之前自二級儲存被載入依電性記憶體內。
除了記憶體位址A之外,相對應於該元資料區域350、355之起點的該等記憶體位址B及I也可經預先決定。結果,啟動載入程式312知曉到何處找到該等元資料區域,及因而知曉到何處獲得定義記憶體290之區域組織之資料及位址L或L’。
現在轉向參考電腦200之操作有關針對記憶體290之一區域之存取許可的執行,及參考圖2-3,電腦200包括至少一個執行機制。各個執行機制執行由該元資料針對主記憶體290之各個區域所界定的至少一個操作性質。
一存取許可執行機制執行該存取許可操作性質。於一個實施例中,該電腦200之該存取許可執行機制包含該MMU 220及該媒體控制器280。MMU 220將由程式所見之邏輯(或虛擬)記憶體空間轉譯成記憶體諸如記憶體290中之實體位址,及藉由不允許該程式不應存取的錯誤存取記憶體而提供記憶體保護。
MMU 220也可對主記憶體290之一或多個區域包括,元資料、持久性、暫時性、或ROM區域執行該存取 許可操作性質。針對各個區域,在一表221中有一紀錄其係儲存於MMU 220,或係儲存於記憶體中之它處而可由MMU 220存取。各個紀錄含有一位置欄位222及一性質欄位224。位置欄位222載明該區域之位址範圍,及性質欄位224載明該存取許可操作性質。於操作期間,當一程式請求讀取或寫入該主記憶體290中之一記憶體位址時,MMU 220存取該表221決定該記憶體位址是否落入於該等位置欄位222中之一者內部。若是,則MMU 220基於該相對應性質欄位224決定所請求之記憶體存取(讀取或寫入)是否被允許。若允許則許可該記憶體存取;但若不允許,則不許可該記憶體存取。於若干實施例中,該MMU 220針對由一使用者層級程式所做記憶體存取執行該存取許可操作性質,但對由一管理者層級程式所做記憶體存取則否。
位置欄位222可以多種方式具現。一種方式使用一起始實體位址之子欄位,及在該實體位址後方之一區塊大小。該位置欄位222也可包括一起始邏輯位址,其相對應於該起始實體位址以具現該邏輯至實體位址轉換。
包括該表221之MMU 220可於啟動過程藉啟動載入程式312、SSBL 322、及作業系統或超管理器324中之一或多者組配。一旦已經完成啟動程序,將執行如於元資料針對主記憶體290之區域所定義的存取許可。但於啟動程序本身期間,可建立及執行不同的存取許可。舉例言之,元資料可載明一持久性區域具有讀取及寫入存取,但為了確保持久性區域將不被啟動程序期間可能出現的謬誤(非 預期的)寫入操作所訛誤,於啟動程序期間唯讀之存取許可可指定給該持久性區域。
媒體控制器280可針對該主記憶體290之一或多個區域執行唯讀存取許可操作性質。典型地此點係針對ROM區域進行。也可針對元資料區域進行。可與主記憶體290分開或一起組織結構之媒體控制器280控制對主記憶體290之組織結構之存取。媒體控制器280之寫入保護機制(其執行唯寫許可)可以位置資訊282組配,該資訊載明寫入存取將被禁止的該主記憶體290之一或多個位址範圍。當一寫入存取係由媒體控制器280接收時,控制器280決定該相對應記憶體位址是否落入於該位置欄位282內部。若是,則不允許寫入存取;若否,則允許寫入存取。在執行啟動處理之前,典型地已經連同一密碼欄位284來組配位置欄位282。
於某些情況下,期望許可寫入存取已經建立具有唯讀許可之位置。一個此種情況係更新儲存於該ROM區域310之啟動載入程式312。另一個情況係修改元資料區域350、355以重新組配主記憶體290之區域。又另一個情況係以在元資料區域355內部之資訊複本修復元資料區域350。典型地此等操作係於啟動程序期間執行。一密碼被供給寫入至該寫入保護區的請求。若供給的密碼匹配儲存於該媒體控制器280之該密碼欄位284,則許可寫入存取。
加密執行機制執行該加密操作性質。於一個實施例中,該加密/解密模組270可具現一機制,其使用類似MMU 220之表221之一表以執行該加密操作性質。於此種情況 下,加密/解密模組270決定發送給該模組270之一記憶體存取請求是否落入於根據一載明標準加密所定義的一區域之位址範圍內。若是,則模組270在通過至記憶體290之前加密寫入請求之資料,及在傳送至處理器210之前解密自讀取請求回送的資料。
一內容保留執行機制執行該內容保留操作性質以應答於電腦之關機而維持或捨棄一區域之內容。於一個實施例中,捨棄係由程式被動執行,該等程式寫入及讀取儲存於一區域諸如暫時性區域330的資料,其具有「捨棄」之內容保留操作性質。此等程式不預期來自先前啟動之資料在電腦200關機之後仍然有效,如此推定其不存在。於另一個實施例中,主動執行捨棄。一個主動機制可為於關機程序期間由處理器210執行的一程式,其抹除具有「捨棄」之內容保留操作性質之區域之記憶體位置。於具有「捨棄」之內容保留操作性質及「加密」之加密性質兩者之區域內,一個主動捨棄機制可捨棄用以解密該等內容之鑰而不抹除該等區域之記憶體位置。其它主動捨棄機制可於電腦200之硬體具現。
如前記,於若干實施例中,電腦200也可包括依電性主記憶體260諸如DRAM,其在電腦之電力循環之後不會保有先前資料內容。舉例言之,假設跨據位址範圍D至E之暫時性區域330(圖3)之部分係對映至依電性主記憶體260,而非對映至非依電性主記憶體290。於此種情況下,儲存於主記憶體290之元資料區域350、355之相對應資料集 係指外接至記憶體290之記憶體260。依電性主記憶體260可用以接收及執行SSBL 322、作業系統或超管理器324、或另一程式之至少部分之一複本。依電性主記憶體260也可用以在電腦之電力循環時儲存確保欲捨棄之資料,而與針對相對應區域載明之內容保留操作性質獨立無關。但針對相對應區域「捨棄」之內容保留操作性質,於主動捨棄機制之情況下,將也在重新啟動期間捨棄而無電腦200之電力循環。
現在考慮元資料區域之內容之進一步細節,及參考圖3及圖4A-4B,元資料結構400之一實施例相對應於該記憶體對映圖300。資料結構400可為一鏈接列表。於該列表之頭端為一元資料分錄410。該元資料分錄鏈接至一區域分錄420。一區域分錄420可鏈接至另一區域分錄420。一區域分錄420也可鏈接至一位址空間分錄430。一位址空間分錄430可鏈接至另一位址空間分錄430。針對該記憶體之一特定區域之該元資料之一資料集包含一區域分錄420及一或多個位址空間分錄430。
在以進一步細節考慮元資料結構400之實施例之前,參考圖4A考慮用在資料結構400之各個分錄410-430。
該元資料分錄410具有一版本欄位412、一高階模組初始化碼位址欄位414、鏈接至一區域分錄420之一第一區域欄位416、及一CRC欄位418。
該版本欄位412指示資料結構400之版本號碼。若資料結構400之內容隨著時間而演進,則該版本可用以提供 反向可相容性給含有該元資料結構400之早先版本的記憶體。高階模組初始化碼位址欄位414儲存該高階模組初始化碼之位址。當SSBL 322為該高階模組時,位址欄位414儲存SSBL 322之起始位址L’。當作業系統或超管理器324為該高階模組時,位址欄位414儲存其初始化碼326之起始位址L。第一區域欄位416儲存指向元資料之該第一區域分錄420之一指標器。CRC欄位418儲存一循環冗餘檢查值,其係推衍自該元資料分錄410之其它欄位及可用以驗證該元資料分錄410之完整性。
區域分錄420具有一區域型別欄位421、一資料保留操作性質欄位422、一存取許可操作性質欄位423、一加密操作性質欄位424、鏈接至一位址空間分錄430之一第一位址空間欄位425、鏈接至另一區域分錄420之下個區域欄位426、及一CRC欄位427。
區域型別欄位421載明該區域分錄420相對應的區域型別:ROM、暫時性、或持久性。因元資料區域350、355之位址為已知可能並非針對元資料區域350、355中之任一者的一區域分錄420,但於若干實施例中可能如此。資料保留操作性質欄位422載明,應答於關機,在該區域之資料是否將維持或拋棄。存取許可操作性質欄位423載明是否許可對該區域內部之記憶體位址進行讀取存取及寫入存取。加密操作性質欄位424載明儲存於該區域之資料是否經加密,及若是,則利用哪個型別之加密標準。第一位址空間欄位425儲存指向該區域之第一位址空間分錄430之一指標 器。下個區域欄位426儲存指向該元資料之下個區域分錄420之一指標器。一無效指標器指示該鏈接列表中之最末區域分錄420。該CRC欄位427儲存推衍自該區域分錄420之其它欄位的一循環冗餘檢查值及可用以驗證該區域分錄420之完整性。
位址空間分錄430具有一起始位址欄位432、一長度欄位434、鏈接至另一位址空間分錄430之下個位址空間欄位436、及一CRC欄位438。
起始位址欄位432儲存針對該區域之記憶體位址之一範圍之第一位址。長度欄位434儲存針對該區域之記憶體位址之該範圍之長度,典型地以位元組表示。如此,該區域之一連續記憶體位址部分之跨距可從該起始位址欄位432及長度欄位434決定。下個位址空間欄位436儲存指向該元資料之下個位址空間分錄430之一指標器。一無效指標器指示針對該區域之最末位址空間分錄430。該CRC欄位438儲存推衍自該位址空間分錄430之其它欄位的一循環冗餘檢查值及可用以驗證該位址空間分錄430之完整性。
現在考慮相對應於該記憶體對映圖300之元資料結構400之該實施例,及參考圖3及圖4B,區域分錄420A及位址空間430之資料集界定該ROM區域310。區域分錄420B及位址空間430B-C之資料集界定該持久性區域320。區域分錄420C及位址空間430D-E之資料集界定該暫時性區域330。區域分錄420D及位址空間430F之資料集界定該第二持久性區域340。
元資料區域為何可能界定多個持久性區域或暫時性區域有多個原因。多個區域可具有不同操作性質;例如,一個持久性區域可經加密(如同於針對第二持久性區域340之區域分錄420D),而另一個持久性區域可不經加密(如同於針對第一持久性區域320之區域分錄420B)。或者於能夠雙重啟動至兩個不同作業系統之一電腦中,一個持久性區域可相對應於該第一作業系統,及另一個持久性區域可相對應於該第二作業系統。也有多個理由為何元資料可能界定在一區域內部之多個位址空間。舉例言之,暫時性區域330之一個位址空間430可能對應非依電性主記憶體290之一部分,而該暫時性區域330之另一個位址空間430可能對應依電性主記憶體260之至少一部分。
於啟動程序期間或在其它時間,在元資料區域350、355中之資料完整性可針對各個分錄410、420、430,計算相對應CRC值,及比較該計算得之CRC值與儲存於相對應CRC欄位418、424、438之該值加以檢查。若有任何CRC值不匹配,則至少相對應分錄410、420、430已經訛誤。若例如元資料區域350之內容訛誤,則元資料區域355之有效內容之部分或全部可複製至元資料區域350,因而自訛誤中回復。
現在考慮及參考圖5A-5B,一電腦之啟動程序之流程圖。另外,圖5A-5B之流程圖可視為啟動該電腦之一方法500之步驟。於若干實施例中,該電腦可為電腦200(圖2)。方法500始於510,使用該電腦之一處理器藉由存取通訊式 耦接至該處理器之一位元組可定址非依電性讀寫主記憶體。該記憶體分割成多個區域。一ROM區域包括一啟動載入程式。一持久性區域含有一作業系統或超管理器,其至少於該主記憶體中可部分執行。於若干實施例中,於512,該ROM區域、該持久性區域、及一元資料區域之內容應答於電腦之關機仍然保留。於若干實施例中,於514,該主記憶體也包括一暫時性區域,其內容應答於關機而被拋棄。
於520,該啟動載入程式係於該主記憶體適當執行。於該主記憶體中,該啟動載入程式之可執行碼之起點之位址位置為該處理器所已知,如先前有關記憶體對映圖300(圖3)之實施例討論。
於530,於該主記憶體中之一元資料區域經讀取以便定位駐在該持久性區域中之一高階模組。該元資料區域之起點之位址位置也為該處理器所已知,如先前有關記憶體對映圖300(圖3)之實施例討論。定位該高階模組可包括決定於該主記憶體中針對該高階模組之可執行碼之起點之位址位置,諸如其初始化碼。
於540,控制轉移給高階模組用於執行。舉例言之,該處理器可導向針對該高階模組之可執行碼之起點之位址位置繼續執行。於若干實施例中,部分或全部之該高階模組係在該持久性區域適當執行。於若干實施例中,部分或全部之該高階模組可複製至另一記憶體,諸如依電性主記憶體,或可複製至另一區域,及於載入該記憶體或區域該處執行。
於若干實施例中,於542,該啟動載入程式為一第一階段啟動載入程式(FSBL),及該高階模組為一第二階段啟動載入程式(SSBL)。於544,該SSBL藉由讀取該元資料區域而定位在該持久性區域中用於該作業系統或超管理器之初始化碼。舉例言之,該SSBL可經預先組配而知曉該初始化碼始於其本身起始位址之一固定偏位,其可轉而自該元資料分錄410之該高階模組初始化碼位址欄位414決定。於546,控制係從SSBL轉移給作業系統或超管理器初始化碼,俾便繼續及最終完成該啟動程序。
於若干實施例中,於552,該高階模組為該作業系統或超管理器。於554,在該持久性區域中用於該作業系統或超管理器之初始化碼係藉該啟動載入程式讀取該元資料區域而予定位。舉例言之,可執行初始化碼之起點可得自該元資料分錄410之該高階模組初始化碼位址欄位414。於556,控制係從啟動載入程式轉移給作業系統或超管理器初始化碼,俾便繼續及最終完成該啟動程序。
該SSBL及/或該作業系統或超管理器初始化碼可從事屬於該啟動程序之部分的其它功能,諸如初始化該檔案系統。一旦經初始化,該檔案系統可用以定位儲存於例如持久性區域內之程式或資料,包括可為該啟動程序之部分的程式或資料。
於若干實施例中,此處討論之一或多個方塊或步驟經自動化。換言之,設備、系統、及方法自動發生。如此處定義及於隨附之申請專利範圍,須廣義瞭解術語「自 動」或「自動地」(及其相似變化)表示使用電腦及/或機電裝置進行設備、系統、及方法之控制式操作,而無需人為介入、觀察、努力及/或決定。
由前文說明須瞭解由本文揭示所提供之電腦及方法表示技藝界之一大進展。雖然已經描述及例示數個特定實施例,但本文揭示並非限制如此描述的及例示的特定方法、形式、或部件之配置。
舉例言之,本文揭示之實施例並不限於具有單一處理器之電腦。雖然為求清晰於圖1-2中例示單一處理器,但其它系統實施例可包括多核心CPU,於該處各個核心包括一處理器。於某些情況下,多個核心可操作以啟動單一作業系統或超管理器。於此等情況下,該等核心中之一者(稱作為「啟動核心」或「核心0」)執行此處揭示之啟動程序,而另一核心不參與。當該作業系統或超管理器之核心取得系統控制時,其以適當方式致動其它核心。然後,全部核心將依從相同目前系統組態,包括同等分享該記憶體(包括該等區域)及該等硬體資源(諸如匯流排205、記憶體260、290、加密/解密模組270、及其它硬體組件)。
於其它情況下,多個核心各自可根據此處揭示之該啟動程序,操作以啟動作業系統或超管理器之一不同情況。經組配以啟動各種作業系統之核心彼此獨立進行。各個核心存取分配給該核心之自該固定記憶體區域之啟動碼;該記憶體區域於不同核心中可相同或可不相同。各個作業系統及/或超管理器彼此獨立。於此等情況下,記憶體 及其它硬體資源在核心間可能並非同等分享。
又復,本文揭示之實施例並非限於個人電腦、桌上型電腦、膝上型電腦、客端電腦、或伺服器電腦,反而可應用至用於寬廣多種裝置之電腦,包括但非僅限於小區式電話、智慧型電話、個人數位助理器、及具有嵌入型電腦之全部型別的電子裝置或機電裝置。須瞭解本文描述包括此處描述元件之全部新穎及非顯見組合,於本案或後來申請案中申請專利範圍各項可呈現此等元件之任何新穎及非顯見組合。前述實施例為例示性,並無任何單一特性件或元件乃於本案或後來申請案中可能請求專利的全部可能的組合所必需。除非另行載明否則一方法請求項之步驟無需以所載明之順序執行。同理,略圖中之方塊或號碼(諸如(1)、(2)等)不應解譯為須以一特定順序進行之步驟。可加入額外方塊/步驟,可去除有些方塊/步驟,或變更方塊/步驟之順序而仍然係落入於所揭示之實施例之範圍。又,在不同圖式內部討論之方法或步驟可增添至或可交換其它圖式之方法或步驟。又復,特定數值資料值(諸如特定數量、數目、類別等)或其它特定資訊須解譯為例示討論該等實施例。此種特定資訊並非提供以限制實施例。本文揭示並非限於前述具現,反而取而代之係由隨附之申請專利範圍各項鑑於其相當物之完整範圍界定。當申請專利範圍各項引述其相當物之「一」或「一第一」元件時,須瞭解此等申請專利範圍各項包括結合一或多個此等元件,既不要求也不排除二或多個此等元件。當申請專利範圍各項引述「具 有」時,須瞭解該術語表示「包含」。
100‧‧‧電腦
110‧‧‧處理器
115‧‧‧匯流排
120‧‧‧BANVRW主記憶體
122‧‧‧區域J
124‧‧‧區域K
130‧‧‧元資料區域
140‧‧‧資料集J
150‧‧‧資料集K
162‧‧‧位置
164‧‧‧操作性質
A-F‧‧‧記憶體位址

Claims (15)

  1. 一種電腦,其包含:一處理器;及耦接至該處理器之一位元組可定址非依電性讀寫主記憶體,該記憶體分割成多個區域,各個區域具有至少一個經界定之操作性質,其中該等多個區域中之至少一者為一元資料區域以儲存多個資料集,各個資料集載明該等多個區域中之相對應一者於記憶體中之一位置,及該至少一個經界定之操作性質。
  2. 如請求項1之電腦,其中該至少一個經界定之操作性質包括至少一個許可存取型別,其由該處理器存取在該相對應區域內部之記憶體位址。
  3. 如請求項1之電腦,其中該至少一個經界定之操作性質包括:響應於該電腦之一關機之該相對應區域之一內容保留性質。
  4. 如請求項1之電腦,其中該至少一個經界定之操作性質包括施加至該相對應區域之內容之一加密型別。
  5. 如請求項1之電腦,其中該電腦根據該元資料區域之該等多個資料集強制執行該等多個區域之該操作性質。
  6. 請求項1之電腦,其中該元資料區域具有唯讀存取之該操作性質,及響應於該電腦之一關機而維持內容。
  7. 如請求項1之電腦,其中該等區域包括: 一ROM區域,以儲存一啟動載入器之至少一部分,該ROM區域具有唯讀存取之該操作性質,及響應於該電腦之一關機而維持內容;一持久性區域,以儲存一作業系統或超管理器,該持久性區域具有於正常操作期間至少讀取存取之該操作性質,及響應於該電腦之一關機而維持內容;及一暫時性區域,以儲存於該電腦之操作期間由該啟動載入器、該作業系統、或該超管理器中之至少一者所產生的資料,該暫時性區域具有至少讀取及寫入存取之該操作性質,及響應於該電腦之一關機而拋棄內容。
  8. 如請求項1之電腦,其包含:於耦接至該處理器之一依電性讀寫主記憶體中之一外部暫時性區域,該外部暫時性區域用以接收及執行一作業系統或一超管理器之至少一部分之一複本,該外部暫時性區域具有至少讀取及寫入存取之該操作性質,及其中該元資料區域進一步包括相對應於該外部暫時性區域之一資料集。
  9. 一種電腦,其包含:一處理器;耦接至該處理器之一位元組可定址非依電性讀寫主記憶體,該記憶體分割成多個分開區域;儲存於該記憶體之一ROM區域且可於一第一預定位置適當地執行之一啟動載入器; 一高階模組,其儲存於該記憶體之一持久性區域且至少部分可於該持久性區域中適當地執行;其中該記憶體包括儲存多個資料集之一元資料區域,該元資料區域始於一第二預定位置及載明該高階模組於記憶體之一位置,及其中各個資料集載明該等多個區域中之一者於記憶體之一位置。
  10. 如請求項9之電腦,其中各個資料集也載明針對該相對應區域之一內容保留特性,該電腦進一步包含:一內容保留強制執行機制以針對各個區域,強制執行響應於該電腦之一關機針對該區域之該相對應內容保留特性。
  11. 一種啟動一電腦之方法,該方法包含:使用該電腦之一處理器,存取耦接至該處理器之一位元組可定址非依電性讀寫主記憶體,該記憶體分割成多個區域,包括含一啟動載入器之一ROM區域及含有至少部分可適當地執行之一作業系統或一超管理器的一持久性區域;於該ROM區域中於一已知位址適當地執行該啟動載入器;藉該啟動載入器,讀取於該記憶體中於一已知位址之一元資料區域以在該持久性區域內定位一高階模組;及轉移控制給該高階模組用於執行。
  12. 如請求項11之方法,其中該啟動載入器為一第一階段啟 動載入器,及其中該高階模組為一第二階段啟動載入器,該方法進一步包含:藉該第二階段啟動載入器,針對該作業系統或該超管理器定位於該持久性區域內之初始化碼;及轉移控制給該初始化碼用於執行以完成該啟動程序。
  13. 如請求項11之方法,其中該高階模組為該作業系統或超管理器,其中該讀取係針對該作業系統或該超管理器而定位於該持久性區域內之初始化碼,及其中該轉移係轉移控制給該初始化碼用於執行以完成該啟動程序。
  14. 如請求項11之方法,其中該高階模組係於該持久性區域適當執行。
  15. 如請求項11之方法,其中該ROM區域、該持久性區域、及該元資料區域之該等內容係響應於該電腦之一關機而被保留,及其中該記憶體包括一暫時性區域以儲存於該電腦之操作期間產生的資料,及其中該暫時性區域之該等內容係響應於該電腦之一關機而被拋棄。
TW104101974A 2014-01-22 2015-01-21 分割成包括元資料區域之多個區域的位元組可定址非依電性讀寫主記憶體 TWI584305B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/012433 WO2015112126A1 (en) 2014-01-22 2014-01-22 Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region

Publications (2)

Publication Number Publication Date
TW201535411A TW201535411A (zh) 2015-09-16
TWI584305B true TWI584305B (zh) 2017-05-21

Family

ID=53681769

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104101974A TWI584305B (zh) 2014-01-22 2015-01-21 分割成包括元資料區域之多個區域的位元組可定址非依電性讀寫主記憶體

Country Status (5)

Country Link
US (1) US10331457B2 (zh)
EP (1) EP3097489B1 (zh)
CN (1) CN105917308B (zh)
TW (1) TWI584305B (zh)
WO (1) WO2015112126A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886194B2 (en) * 2015-07-13 2018-02-06 Samsung Electronics Co., Ltd. NVDIMM adaptive access mode and smart partition mechanism
EP3360039B1 (en) * 2015-10-06 2021-03-24 Xilinx, Inc. Multistage boot image loading and configuration of programmable logic devices
US9940028B2 (en) * 2015-11-13 2018-04-10 Samsung Electronics Co., Ltd Multimode storage device
EP3185464B1 (en) 2015-12-21 2020-05-20 Hewlett-Packard Development Company, L.P. Key generation information trees
US10282287B2 (en) * 2015-12-28 2019-05-07 Intel Corporation Interleaved direct access mode in byte addressible memory and related devices and systems
US20170322740A1 (en) * 2016-05-09 2017-11-09 Microsoft Technology Licensing, Llc Selective data persistence in computing systems
US10360149B2 (en) 2017-03-10 2019-07-23 Oracle International Corporation Data structure store in persistent memory
US10452298B2 (en) 2017-05-09 2019-10-22 Microsoft Technology Licensing, Llc Portable file-backed virtual storage class memory
FR3071350A1 (fr) * 2017-09-15 2019-03-22 Stmicroelectronics (Rousset) Sas Controle d'acces a une memoire au moyen d'alias d'adresse
TWI714830B (zh) 2018-02-13 2021-01-01 緯穎科技服務股份有限公司 目錄資料的管理方法與記憶體裝置
EP3777017B1 (en) * 2018-08-17 2023-09-27 Hewlett-Packard Development Company, L.P. Ephemeral regions within non-volatile memory devices
US11023333B2 (en) * 2018-10-30 2021-06-01 EMC IP Holding Company LLC Online recovery approach to space accounting
CN111026420A (zh) * 2019-11-14 2020-04-17 天津航空机电有限公司 一种基于tms320c6000系列处理器的在线加载方法
CN113805946B (zh) * 2020-06-15 2023-08-18 苏州佳世达电通有限公司 用于安卓系统的非易失属性的处理方法、装置及电子设备
CN111797390B (zh) * 2020-07-14 2024-01-26 北京元心科技有限公司 程序运行方法、装置、电子设备及计算机可读存储介质
US20220114025A1 (en) * 2020-10-13 2022-04-14 Dell Products L.P. Dynamic memory allocation based on workload characterization and optimization

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270730A1 (en) * 2007-04-30 2008-10-30 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
US20080288712A1 (en) * 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US20090150599A1 (en) * 2005-04-21 2009-06-11 Bennett Jon C R Method and system for storage of data in non-volatile media
US20120151125A1 (en) * 2010-12-08 2012-06-14 Samsung Electronics Co., Ltd. Data processing method for nonvolatile memory system
US20120290779A1 (en) * 2009-09-08 2012-11-15 International Business Machines Corporation Data management in solid-state storage devices and tiered storage systems
US20130073789A1 (en) * 2011-09-16 2013-03-21 Apple Inc. Systems and methods for configuring non-volatile memory
US20140010014A1 (en) * 2007-04-25 2014-01-09 Apple Inc. Managing Data Writing to Memories

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247658A (en) * 1989-10-31 1993-09-21 Microsoft Corporation Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers
US5359724A (en) * 1992-03-30 1994-10-25 Arbor Software Corporation Method and apparatus for storing and retrieving multi-dimensional data in computer memory
US5754817A (en) 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
US6330806B1 (en) * 2000-03-03 2001-12-18 York International Corporation System and method for controlling an HVAC system using a flash mini-card
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US20060242398A1 (en) 2003-06-03 2006-10-26 Fontijn Wilhelmus Franciscus J Booting from non-volatile memory
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7539706B1 (en) * 2004-03-30 2009-05-26 Emc Corporation Methods and apparatus for collecting and processing file system data
US7849302B2 (en) * 2006-04-10 2010-12-07 Apple Inc. Direct boot arrangement using a NAND flash memory
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US8156320B2 (en) * 2008-08-27 2012-04-10 Wireless Silicon Group, Llc Method and apparatus for fast booting a portable computing device allowing for immediate operation
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
HUE024569T2 (hu) * 2008-10-15 2016-02-29 Hewlett Packard Development Co Lp Partíciótérkép
US8219741B2 (en) * 2008-10-24 2012-07-10 Microsoft Corporation Hardware and operating system support for persistent memory on a memory bus
US8793228B2 (en) * 2009-01-14 2014-07-29 Stmicroelectronics Pvt. Ltd. File system including a file header area and a file data area
US8205070B2 (en) 2009-09-08 2012-06-19 Apple Inc. Device bootup from a NAND-type non-volatile memory
US8566689B2 (en) * 2009-10-22 2013-10-22 Microsoft Corporation Data integrity units in nonvolatile memory
US9092357B2 (en) * 2010-10-29 2015-07-28 Microsoft Technology Licensing, Llc Remapping of inoperable memory blocks
US8516271B2 (en) 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
WO2013048485A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US20130275661A1 (en) * 2011-09-30 2013-10-17 Vincent J. Zimmer Platform storage hierarchy with non-volatile random access memory with configurable partitions
US9529708B2 (en) * 2011-09-30 2016-12-27 Intel Corporation Apparatus for configuring partitions within phase change memory of tablet computer with integrated memory controller emulating mass storage to storage driver based on request from software
EP2761476B1 (en) * 2011-09-30 2017-10-25 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
US9298607B2 (en) * 2011-11-22 2016-03-29 Intel Corporation Access control for non-volatile random access memory across platform agents
US20130159602A1 (en) 2011-12-20 2013-06-20 Bae Systems Controls, Inc. Unified memory architecture
WO2013101053A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Non-volatile ram disk
US9128824B2 (en) * 2012-12-24 2015-09-08 Intel Corporation In-place change between transient and persistent state for data structures on non-volatile memory
US9015388B2 (en) * 2013-06-28 2015-04-21 Intel Corporation Controlling access to storage in a computing device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090150599A1 (en) * 2005-04-21 2009-06-11 Bennett Jon C R Method and system for storage of data in non-volatile media
US20080288712A1 (en) * 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US20140010014A1 (en) * 2007-04-25 2014-01-09 Apple Inc. Managing Data Writing to Memories
US20080270730A1 (en) * 2007-04-30 2008-10-30 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
US20120290779A1 (en) * 2009-09-08 2012-11-15 International Business Machines Corporation Data management in solid-state storage devices and tiered storage systems
US20120151125A1 (en) * 2010-12-08 2012-06-14 Samsung Electronics Co., Ltd. Data processing method for nonvolatile memory system
US20130073789A1 (en) * 2011-09-16 2013-03-21 Apple Inc. Systems and methods for configuring non-volatile memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XIAOJIAN WU et al., "SCMFS: A File System for Storage Class Memory", 2011 High Performance Computing、Networking、Storage and Analysis (SC), IEEE, 12 November 2011, pp. 1-11 *

Also Published As

Publication number Publication date
WO2015112126A1 (en) 2015-07-30
EP3097489A4 (en) 2017-12-27
CN105917308B (zh) 2019-02-12
TW201535411A (zh) 2015-09-16
EP3097489B1 (en) 2020-07-01
EP3097489A1 (en) 2016-11-30
CN105917308A (zh) 2016-08-31
US10331457B2 (en) 2019-06-25
US20160321083A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
TWI584305B (zh) 分割成包括元資料區域之多個區域的位元組可定址非依電性讀寫主記憶體
US11714924B2 (en) Unified addressable memory
EP3764237B1 (en) System startup method and apparatus, electronic device and storage medium
US10908847B2 (en) Volatility management for non-volatile memory device
US8812816B2 (en) Garbage collection schemes for index block
US11368313B2 (en) Data storage devices and methods for encrypting a firmware file thereof
US9678760B2 (en) Memory card and storage system having authentication program and method for operating thereof
US11100011B2 (en) Flash translation layer with hierarchical security
US11755315B2 (en) Boot ROM update method and boot-up method of embedded system
US8886963B2 (en) Secure relocation of encrypted files
US10235183B2 (en) Booting a system-on-a-chip device
US20140372710A1 (en) System and method for recovering from an unexpected shutdown in a write-back caching environment
US20140059291A1 (en) Method for protecting storage device data integrity in an external operating environment
US20140059293A1 (en) Method for protecting a gpt cached disks data integrity in an external operating system environment
TW202215279A (zh) 用於偵測儲存裝置中的惡意活動之模組和方法