欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

分區(qū)為包括元數(shù)據(jù)區(qū)域的多個(gè)區(qū)域的字節(jié)可尋址非易失性讀寫主存儲(chǔ)器的制造方法

文檔序號(hào):10557117閱讀:485來(lái)源:國(guó)知局
分區(qū)為包括元數(shù)據(jù)區(qū)域的多個(gè)區(qū)域的字節(jié)可尋址非易失性讀寫主存儲(chǔ)器的制造方法
【專利摘要】在一個(gè)實(shí)施例中,一種計(jì)算機(jī)具有處理器和字節(jié)可尋址非易失性讀寫主存儲(chǔ)器。該存儲(chǔ)器被分區(qū)為多個(gè)區(qū)域,每個(gè)區(qū)域具有至少一個(gè)定義的操作屬性。多個(gè)區(qū)域中的至少一個(gè)區(qū)域是元數(shù)據(jù)區(qū)域,以存儲(chǔ)多個(gè)數(shù)據(jù)集。每個(gè)數(shù)據(jù)集指定多個(gè)區(qū)域中的一個(gè)對(duì)應(yīng)區(qū)域在存儲(chǔ)器中的位置、和該對(duì)應(yīng)區(qū)域的至少一個(gè)操作屬性。
【專利說(shuō)明】
分區(qū)為包括元數(shù)據(jù)區(qū)域的多個(gè)區(qū)域的字節(jié)可尋址非易失性讀
與主存儲(chǔ)裔
【背景技術(shù)】
[0001]許多計(jì)算機(jī)系統(tǒng)針對(duì)主存儲(chǔ)器和輔助存儲(chǔ)器使用隔離技術(shù)。例如,主存儲(chǔ)器通常使用易失性存儲(chǔ)技術(shù),諸如動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(DRAM)。由于一旦移除電力易失性存儲(chǔ)器就不會(huì)留存其內(nèi)容(計(jì)算機(jī)系統(tǒng)中缺少諸如電池備用機(jī)構(gòu)的附加組件,電池備用機(jī)構(gòu)可以在有限的時(shí)間段內(nèi)保持存儲(chǔ)器內(nèi)容、同時(shí)增加了成本和復(fù)雜性),因此用于計(jì)算機(jī)系統(tǒng)的軟件通常例如存儲(chǔ)在使用非易失性存儲(chǔ)技術(shù)的輔助存儲(chǔ)器中,諸如閃存固態(tài)驅(qū)動(dòng)(SSD)或磁硬盤驅(qū)動(dòng)(HDD)。作為這種布置的結(jié)果,計(jì)算機(jī)系統(tǒng)包含多種不同類型的存儲(chǔ)器,增加了成本和復(fù)雜性。
【附圖說(shuō)明】
[0002]圖1是根據(jù)本公開(kāi)實(shí)施例的具有字節(jié)可尋址非易失性讀寫主存儲(chǔ)器的計(jì)算機(jī)的框圖。
[0003]圖2是根據(jù)本公開(kāi)實(shí)施例的具有字節(jié)可尋址非易失性讀寫主存儲(chǔ)器的另一計(jì)算機(jī)的框圖。
[0004]圖3是根據(jù)本公開(kāi)實(shí)施例將圖2的字節(jié)可尋址非易失性讀寫主存儲(chǔ)器分區(qū)為多個(gè)區(qū)域的框圖。
[0005]圖4A-4B是根據(jù)本公開(kāi)實(shí)施例的存儲(chǔ)在圖2的字節(jié)可尋址非易失性讀寫主存儲(chǔ)器的示例性元數(shù)據(jù)區(qū)域中的數(shù)據(jù)結(jié)構(gòu)的示意性表示,其描述了圖3的多個(gè)區(qū)域。
[0006]圖5A-5B是根據(jù)本公開(kāi)實(shí)施例的啟動(dòng)圖1或2的計(jì)算機(jī)系統(tǒng)的方法的流程圖。
【具體實(shí)施方式】
[0007]可能存在與針對(duì)主存儲(chǔ)器和輔助存儲(chǔ)器使用隔離技術(shù)的計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián)的成本、復(fù)雜性、時(shí)間以及其他缺陷。此外,由于這些輔助存儲(chǔ)器裝置的各個(gè)字節(jié)通常不可被計(jì)算機(jī)系統(tǒng)的處理器直接訪問(wèn)并且無(wú)法像從DRAM訪問(wèn)那樣由處理器快速訪問(wèn),因此當(dāng)對(duì)計(jì)算機(jī)系統(tǒng)上電時(shí),輔助存儲(chǔ)器裝置的某些內(nèi)容首先從輔助存儲(chǔ)器復(fù)制到主存儲(chǔ)器。這些部分可能包括例如計(jì)算機(jī)的操作系統(tǒng)。這些操作通常延長(zhǎng)了計(jì)算機(jī)的啟動(dòng)時(shí)間。
[0008]如在此和所附權(quán)利要求中所限定的,“主存儲(chǔ)器”可廣義地理解為意指不管處理器采用什么樣的字長(zhǎng),其中數(shù)據(jù)的各個(gè)字節(jié)可被直接尋址、并且可由計(jì)算機(jī)系統(tǒng)的處理器讀取或?qū)懭氲拇鎯?chǔ)器。此外,盡管一個(gè)“字節(jié)”通??梢詾榘宋?,但在一些實(shí)施例中,一個(gè)字節(jié)可以指更大或更小的多位集。
[0009]相較于現(xiàn)有技術(shù)而言成本更低廉、訪問(wèn)時(shí)間更快并且每單位容量的字節(jié)密度更大的新的字節(jié)可尋址非易失性存儲(chǔ)器技術(shù)正變得可用。還期望這些存儲(chǔ)器的成本、訪問(wèn)時(shí)間、和密度能達(dá)到并超過(guò)DRAM的成本、訪問(wèn)時(shí)間、和密度。這種存儲(chǔ)器的實(shí)施例包括但不限于阻變隨機(jī)訪問(wèn)存儲(chǔ)器(RRAM)、憶阻器、相變隨機(jī)訪問(wèn)存儲(chǔ)器(PCM、PCRAM、PRAM)、磁阻隨機(jī)訪問(wèn)存儲(chǔ)器(MRAM)和自旋轉(zhuǎn)移力矩隨機(jī)訪問(wèn)存儲(chǔ)器(STTRAM),僅列舉了少許。這種存儲(chǔ)器可用作計(jì)算機(jī)系統(tǒng)中的持久性主存儲(chǔ)器(PMM)。如在此和所附權(quán)利要求中限定的,“持久性”或者“非易失性”主存儲(chǔ)器可廣義地理解為意指在計(jì)算機(jī)系統(tǒng)的上電循環(huán)(power-cycling)中留存其內(nèi)容的主存儲(chǔ)器。在一些不是字節(jié)可尋址而是塊可尋址的隔離的實(shí)施例中,隔離的輔助存儲(chǔ)器可從這種計(jì)算機(jī)系統(tǒng)省略,這是因?yàn)橹T如操作系統(tǒng)、超管理器(hypervisor)、APP程序、及其相關(guān)的持久性數(shù)據(jù)文件可被存儲(chǔ)在PMM中并且在計(jì)算機(jī)系統(tǒng)的上電循環(huán)中得以留存。這能夠有利地使得計(jì)算系統(tǒng)不太復(fù)雜、不太昂貴并且啟動(dòng)更快。
[0010]現(xiàn)在參照附圖,其例示了根據(jù)本公開(kāi)而構(gòu)造的計(jì)算機(jī)的實(shí)施例,其中處理器通信地連接至被分區(qū)為多個(gè)區(qū)域的字節(jié)可尋址非易失性讀寫主存儲(chǔ)器。每個(gè)區(qū)域具有至少一個(gè)定義的操作屬性。多個(gè)區(qū)域中的至少一個(gè)區(qū)域是元數(shù)據(jù)區(qū)域,其被配置為存儲(chǔ)多個(gè)數(shù)據(jù)集。每個(gè)數(shù)據(jù)集指定該多個(gè)區(qū)域中的一個(gè)對(duì)應(yīng)區(qū)域在存儲(chǔ)器中的位置、以及該對(duì)應(yīng)區(qū)域的至少一個(gè)操作屬性。引導(dǎo)裝載程序(boot loader)、以及操作系統(tǒng)和/或超管理器存儲(chǔ)在該區(qū)域中的一個(gè)或多個(gè)區(qū)域中,并且在計(jì)算機(jī)啟動(dòng)進(jìn)程期間運(yùn)行。
[0011]操作系統(tǒng)是管理計(jì)算機(jī)硬件資源的軟件的集合,對(duì)計(jì)算機(jī)上運(yùn)行的其他程序提供服務(wù)。操作系統(tǒng)被視為在概念上在硬件“之上”運(yùn)行并且可直接控制硬件的原生(native)(也被稱為“裸金屬”)程序,而在計(jì)算機(jī)上運(yùn)行的其他程序通常通過(guò)對(duì)操作系統(tǒng)作出的請(qǐng)求來(lái)訪問(wèn)硬件資源。超管理器是創(chuàng)建并運(yùn)行虛擬機(jī)的軟件集,虛擬機(jī)可被視為模擬另一計(jì)算機(jī)的性能規(guī)范、架構(gòu)和操作的“軟件計(jì)算機(jī)”。超管理器還可以是原生的“裸金屬”程序,或者可替換地可由操作系統(tǒng)托管,其中超管理器在該操作系統(tǒng)“之上”運(yùn)行。在此使用的術(shù)語(yǔ)“超管理器”以及在所附權(quán)利要求中使用的術(shù)語(yǔ)“高級(jí)程序”指的是原生的、“裸金屬”程序超管理器。
[0012]現(xiàn)在參照?qǐng)D1更加詳細(xì)地考慮計(jì)算機(jī),計(jì)算機(jī)100具有經(jīng)由總線115連接至字節(jié)可尋址非易失性讀寫(BANVRW)主存儲(chǔ)器120的處理器110。主存儲(chǔ)器120被分區(qū)為多個(gè)區(qū)域,其中一個(gè)區(qū)域是元數(shù)據(jù)區(qū)域。三個(gè)示例性區(qū)域例示為:區(qū)域J 122、區(qū)域K 124、和元數(shù)據(jù)區(qū)域130。元數(shù)據(jù)區(qū)域130存儲(chǔ)多個(gè)數(shù)據(jù)集。例示了兩個(gè)示例性數(shù)據(jù)集:數(shù)據(jù)集J 140(其與區(qū)域J122相關(guān)聯(lián))和數(shù)據(jù)集K 150 (其與區(qū)域K 124相關(guān)聯(lián))。
[0013]元數(shù)據(jù)區(qū)域130可由處理器110(在諸如引導(dǎo)裝載程序的程序指示下)使用以識(shí)別多個(gè)區(qū)域的位置和操作屬性。每個(gè)數(shù)據(jù)集140、150具有位置162,其指定分別構(gòu)成區(qū)域122、124的存儲(chǔ)器120的地址范圍(或多個(gè)地址范圍)。每個(gè)數(shù)據(jù)集140、150還具有操作屬性164,其指定分別對(duì)應(yīng)于區(qū)域122、124的存儲(chǔ)器120的地址范圍(或多個(gè)地址范圍)。在一些實(shí)施例中,具有針對(duì)元數(shù)據(jù)區(qū)域的數(shù)據(jù)集,而在元數(shù)據(jù)區(qū)域130位于預(yù)定的固定位置的其他實(shí)施例中,這種數(shù)據(jù)集可被省略。在一些實(shí)施例中,這種地址可通過(guò)計(jì)算機(jī)的架構(gòu)預(yù)定,和/或?qū)μ幚砥?10可以是已知的或者可在軟件的指示下由處理器110確定。
[0014]每個(gè)區(qū)域122、124、130具有至少一個(gè)與其相關(guān)聯(lián)的定義的操作屬性。能夠定義多個(gè)不同的操作屬性164。一種操作屬性164可以是由處理器110對(duì)對(duì)應(yīng)區(qū)域內(nèi)的存儲(chǔ)器地址的至少一種類型的可允許訪問(wèn)。這種可允許訪問(wèn)可包括讀取訪問(wèn)、寫入訪問(wèn)、或者讀取訪問(wèn)和寫入訪問(wèn)兩者。
[0015]區(qū)域的另一操作屬性164可以是內(nèi)容留存屬性,其指定如何處置區(qū)域122、124、130的內(nèi)容以響應(yīng)計(jì)算機(jī)100的關(guān)機(jī)。術(shù)語(yǔ)“關(guān)機(jī)”可廣義地理解為意指操作系統(tǒng)或超管理器在計(jì)算機(jī)100在其再次使用之前能夠重啟的程度上的運(yùn)行結(jié)束。為了再次使用計(jì)算機(jī)100,關(guān)機(jī)可被“熱”重啟跟隨(當(dāng)對(duì)計(jì)算機(jī)的供電不是關(guān)閉然后開(kāi)啟的循環(huán)時(shí))或者被“冷”重啟跟隨(當(dāng)對(duì)計(jì)算機(jī)的供電是循環(huán)的時(shí))。內(nèi)容留存屬性可指定:響應(yīng)于關(guān)機(jī)而保持存儲(chǔ)器120的區(qū)域122、124、130中的數(shù)據(jù)。例如,保持?jǐn)?shù)據(jù)內(nèi)容可被指定為針對(duì)包含通過(guò)處理器110可運(yùn)行的指令的一個(gè)或多個(gè)程序的區(qū)域??商鎿Q地,內(nèi)容留存屬性可指定:響應(yīng)于關(guān)機(jī)丟棄該區(qū)域中的數(shù)據(jù)。例如,這可針對(duì)用于在程序運(yùn)行期間臨時(shí)數(shù)據(jù)的區(qū)域而指定。臨時(shí)數(shù)據(jù)是程序不期望該數(shù)據(jù)在關(guān)機(jī)之后仍有效的數(shù)據(jù)。臨時(shí)數(shù)據(jù)可由引導(dǎo)裝載程序、操作系統(tǒng)、超管理器和/或在操作系統(tǒng)、和/或超管理器的控制下運(yùn)行的其他程序中的一個(gè)或多個(gè)生成和/或使用。
[0016]在一些情況中,可被動(dòng)地丟棄臨時(shí)數(shù)據(jù)。在此情況中,相關(guān)程序期望臨時(shí)數(shù)據(jù)已被存儲(chǔ)在易失性存儲(chǔ)器中,因此不期望來(lái)自先前開(kāi)機(jī)的臨時(shí)數(shù)據(jù)在當(dāng)前開(kāi)機(jī)之后仍然有效。在其他情況中,可在例如關(guān)機(jī)進(jìn)程期間主動(dòng)丟棄臨時(shí)數(shù)據(jù)。在主動(dòng)丟棄中,對(duì)應(yīng)的非易失性區(qū)域中的內(nèi)容可被重寫,或另外被無(wú)效化或使之不可訪問(wèn)。在臨時(shí)數(shù)據(jù)包含被保護(hù)以避免入侵訪問(wèn)的敏感信息的情況中,主動(dòng)丟棄可能是有利的,例如,在斷電時(shí)從計(jì)算機(jī)系統(tǒng)移除主存儲(chǔ)器。
[0017]另一操作屬性164可以是應(yīng)用于對(duì)應(yīng)區(qū)域的內(nèi)容的加密類型。加密提供另一種可通過(guò)其保護(hù)敏感信息的機(jī)構(gòu)。加密可用于在從計(jì)算機(jī)的前次開(kāi)機(jī)到后續(xù)開(kāi)機(jī)的過(guò)程中保護(hù)敏感信息一即在關(guān)機(jī)過(guò)程中保存的數(shù)據(jù)和/或程序。加密類型可以指定:不對(duì)區(qū)域應(yīng)用加密或者對(duì)區(qū)域應(yīng)用特定類型的加密。加密還能夠以允許借助于丟棄加密密鑰的另一被動(dòng)形式丟棄存儲(chǔ)器內(nèi)容,從而致使存儲(chǔ)器內(nèi)容無(wú)法破譯并且因此不可用。
[0018]如后續(xù)將參照?qǐng)D2更詳細(xì)說(shuō)明的,計(jì)算機(jī)100根據(jù)元數(shù)據(jù)區(qū)域130的多個(gè)數(shù)據(jù)集140、150強(qiáng)制執(zhí)行多個(gè)區(qū)域的操作屬性。
[0019]元數(shù)據(jù)區(qū)域130有利地使存儲(chǔ)器120自描述。換言之,處理器110能夠在引導(dǎo)裝載程序或其他程序的指示下、通過(guò)訪問(wèn)和解讀元數(shù)據(jù)區(qū)域130的數(shù)據(jù)集而確定存儲(chǔ)器120已分區(qū)成的多個(gè)區(qū)域的位置和屬性。
[0020]現(xiàn)在參照?qǐng)D2考慮另一種計(jì)算機(jī),計(jì)算機(jī)200包括處理器210和字節(jié)可尋址非易失性讀寫(BANVRW)主存儲(chǔ)器290。處理器210通信地連接至存儲(chǔ)器管理單元(MMU)220,其在一些實(shí)施例中位于處理器210內(nèi)部。處理器210通信地連接至總線205。在一些實(shí)施例中,總線205可以是前端總線或相干總線。雖然為了清楚而例示了單個(gè)處理器,但在一些諸如多核CPU的示例性系統(tǒng)中,該多核CPU內(nèi)可具有多個(gè)處理器。在一些實(shí)施例中,每個(gè)處理器210還可包含I級(jí)緩存。在一些實(shí)施例中,多核CPU還可包括總線205、2級(jí)緩存、和3級(jí)緩存。為了示例的清晰性,圖2省略了多個(gè)處理器和緩存。
[0021]計(jì)算機(jī)200還包括處理器210(或多核CPU)外部的其他組件。存儲(chǔ)器控制器240直接或間接通信地連接至總線205。存儲(chǔ)器控制器240轉(zhuǎn)而又通信地連接至主存儲(chǔ)器290的介質(zhì)控制器280。
[0022]在一些實(shí)施例中,計(jì)算機(jī)可包括附加組件。通信地連接至總線205的外圍接口252可以適合于通信地連接至外部的通??梢瞥慕橘|(zhì)250,諸如硬盤驅(qū)動(dòng)、USB閃存驅(qū)動(dòng)、或者EEPR0M。在一些實(shí)施例中,外部介質(zhì)可包含引導(dǎo)裝載程序、操作系統(tǒng)、和超管理器中的一個(gè)或多個(gè),并且計(jì)算機(jī)200可被配置為從外部介質(zhì)250而不從主存儲(chǔ)器290啟動(dòng)。在一些實(shí)施例中,計(jì)算機(jī)200中的跳線或硬件標(biāo)識(shí)可確定是否使用存儲(chǔ)在存儲(chǔ)器290中或介質(zhì)250上的引導(dǎo)裝載程序。跳線或硬件標(biāo)識(shí)還可以確定操作系統(tǒng)或超管理器是從存儲(chǔ)器290還是從介質(zhì)250加載的。在其他實(shí)施例中,引導(dǎo)裝載程序本身可確定操作系統(tǒng)或超管理器是從存儲(chǔ)器290還是從介質(zhì)250加載的。后續(xù)地將參照?qǐng)D2-3更詳細(xì)地討論引導(dǎo)裝載程序、操作系統(tǒng)、和超管理器。
[0023]在一些實(shí)施例中,計(jì)算機(jī)200還可包括易失性主存儲(chǔ)器260,諸如DRAM,其在對(duì)計(jì)算機(jī)的供電循環(huán)之后不留存其先前的數(shù)據(jù)內(nèi)容。易失性主存儲(chǔ)器260可用于在計(jì)算機(jī)200操作期間存儲(chǔ)不需要在關(guān)機(jī)之后留存的數(shù)據(jù)。易失性主存儲(chǔ)器260可用于存儲(chǔ)可被復(fù)制到易失性主存儲(chǔ)器260上并且之后可從易失性主存儲(chǔ)器260運(yùn)行的程序代碼。存儲(chǔ)器控制器265將易失性主存儲(chǔ)器260通信地連接至總線205。
[0024]在一些實(shí)施例中,計(jì)算機(jī)200可包括加密/解密模塊270,其可以被邏輯地安排在總線205和存儲(chǔ)器控制器240之間。由處理器210寫入存儲(chǔ)器290的數(shù)據(jù)(或程序代碼)在從處理器210通過(guò)加密/解密模塊270傳送至存儲(chǔ)器290時(shí)被模塊270加密,由處理器210讀取的數(shù)據(jù)在從存儲(chǔ)器290通過(guò)模塊270傳送至處理器210時(shí)被解密。加密/解密模塊270實(shí)施加密標(biāo)準(zhǔn)(即,方法),其被指定用于主存儲(chǔ)器290中對(duì)應(yīng)于被讀取或?qū)懭氲拇鎯?chǔ)器地址的區(qū)域。
[0025]在計(jì)算機(jī)為“芯片上系統(tǒng)(SoC)”的一些實(shí)施例中,此芯片可包括處理器210(或多核CPU),以及外圍接口 252、存儲(chǔ)器控制器240、265、和加密/解密模塊270中的一個(gè)或多個(gè)。
[0026]現(xiàn)在將考慮將字節(jié)可尋址非易失性讀寫主存儲(chǔ)器290分區(qū)為多個(gè)區(qū)域的一個(gè)實(shí)施例,進(jìn)一步參照?qǐng)D3,建立了多個(gè)區(qū)域。每個(gè)區(qū)域具有存儲(chǔ)器的相連字節(jié)的一個(gè)或多個(gè)地址空間。每個(gè)區(qū)域可以是多個(gè)不同類型中的一種:R0M、持久的、暫存的、或元數(shù)據(jù)。也可定義其他類型的區(qū)域。
[0027]ROM區(qū)域可用于存儲(chǔ)引導(dǎo)裝載程序的至少一部分的代碼。此部分例如可以是一階引導(dǎo)裝載程序。ROM區(qū)域還可包括用于計(jì)算機(jī)的某些管理功能的代碼,諸如基本輸入輸出系統(tǒng)(B1S)或者統(tǒng)一可擴(kuò)展固件接口(UEFI) AOM區(qū)域可具有只讀訪問(wèn)、和響應(yīng)于計(jì)算機(jī)關(guān)機(jī)而保持其內(nèi)容的操作屬性。在使用可信的進(jìn)程重啟期間可實(shí)施更新ROM區(qū)域的內(nèi)容(S卩,向ROM區(qū)域?qū)懭?的權(quán)能,諸如例如通過(guò)供給密碼或者設(shè)置硬件跳線或標(biāo)識(shí)。通常,存儲(chǔ)器中具有一個(gè)ROM區(qū)域。區(qū)域的內(nèi)容可被加密,盡管通常其不被加密。
[0028]持久性區(qū)域用于存儲(chǔ)在計(jì)算機(jī)關(guān)機(jī)之后仍保存在存儲(chǔ)器290中的程序和數(shù)據(jù),從而保留啟動(dòng)循環(huán)。計(jì)算機(jī)的操作系統(tǒng)和/或超管理器通常被存儲(chǔ)在持久性區(qū)域中。當(dāng)計(jì)算機(jī)使用二階引導(dǎo)裝載程序時(shí),則該程序還可被存儲(chǔ)在持久性區(qū)域中。存儲(chǔ)在持久性區(qū)域中的程序可被配置為在該區(qū)域中就地運(yùn)行。為了能夠就地運(yùn)行,程序代碼可被寫為獨(dú)立于存儲(chǔ)器位置之外、或者知曉其在存儲(chǔ)器中的位置而且在運(yùn)行期間不會(huì)修改位于其圖像內(nèi)的任何存儲(chǔ)??商鎿Q地,程序可被配置為加載到另一存儲(chǔ)器位置中并在該位置被運(yùn)行,例如易失性主存儲(chǔ)器260。存儲(chǔ)在持久性區(qū)域中的程序和數(shù)據(jù)可被識(shí)別為文件系統(tǒng)中的文件。在本文中,“文件系統(tǒng)”指的是具有預(yù)先定義的信息結(jié)構(gòu)的存儲(chǔ)器中的文件和目錄的集合。通過(guò)文件系統(tǒng)驅(qū)動(dòng)器訪問(wèn)包括存儲(chǔ)在其內(nèi)的文件的文件系統(tǒng)(即,通過(guò)作為操作系統(tǒng)一部分的內(nèi)核文件系統(tǒng)模塊,其被設(shè)計(jì)為管理文件系統(tǒng))。數(shù)據(jù)還可被存儲(chǔ)在作為原始卷的持久性區(qū)域中,這些原始卷的格式化專用于諸如數(shù)據(jù)庫(kù)的特定程序;這些原始卷可通過(guò)程序而不通過(guò)文件系統(tǒng)訪問(wèn)。持久性區(qū)域可具有在啟動(dòng)進(jìn)程之后正常操作期間的至少讀取訪問(wèn)、和響應(yīng)于計(jì)算機(jī)關(guān)機(jī)保持其內(nèi)容的操作屬性。然而,在啟動(dòng)進(jìn)程期間,持久性區(qū)域可為不可寫入的,從而保護(hù)其內(nèi)容避免可能會(huì)在啟動(dòng)進(jìn)程期間發(fā)生的偽寫入操作。該區(qū)域的內(nèi)容可被加密或可不加密。存儲(chǔ)器中可以具有任意數(shù)量的持久性區(qū)域,但通常具有至少一個(gè)。
[0029]暫存區(qū)域通常用于存儲(chǔ)在計(jì)算機(jī)操作期間生成的、并且不期望在上電循環(huán)中保持的數(shù)據(jù)。數(shù)據(jù)中的一些可由例如引導(dǎo)裝載程序、操作系統(tǒng)、和超管理器中的一個(gè)或多個(gè)在其他程序中生成??纱鎯?chǔ)在暫存區(qū)域中的示例性數(shù)據(jù)包括由內(nèi)核和用戶進(jìn)程創(chuàng)建的、不旨在關(guān)機(jī)之后被保持的數(shù)據(jù)結(jié)構(gòu),諸如只有在激活頁(yè)面時(shí)被處理器使用的頁(yè)面表格條目。在一些實(shí)施例中,程序還可被加載到暫存區(qū)域中并在該處運(yùn)行。暫存區(qū)域可具有至少讀取訪問(wèn)和寫入訪問(wèn)、和響應(yīng)于計(jì)算機(jī)關(guān)機(jī)而丟棄其內(nèi)容的操作屬性。易失性存儲(chǔ)器,諸如DRAM260,響應(yīng)于計(jì)算機(jī)的上電循環(huán)而固有地丟棄其數(shù)據(jù)內(nèi)容,而非易失性存儲(chǔ)器290不會(huì)。因此,如先前討論過(guò)的,非易失性存儲(chǔ)器的暫存區(qū)域的內(nèi)容可以要么被動(dòng)地被丟棄、要么被主動(dòng)地丟棄。該區(qū)域的內(nèi)容可加密或可不加密。
[0030]元數(shù)據(jù)區(qū)域用于存儲(chǔ)描述字節(jié)可尋址非易失性讀寫主存儲(chǔ)器290的分區(qū)的數(shù)據(jù)。元數(shù)據(jù)區(qū)域通常具有只讀訪問(wèn)、和響應(yīng)于計(jì)算機(jī)關(guān)機(jī)保持其內(nèi)容的操作屬性。存儲(chǔ)器中可以有兩個(gè)或多個(gè)存儲(chǔ)在存儲(chǔ)器中的元數(shù)據(jù)區(qū)域的副本。該附加的元數(shù)據(jù)區(qū)域可用于恢復(fù)的目的。區(qū)域的內(nèi)容可被加密,盡管其通常不被加密。可實(shí)施安全地更新元數(shù)據(jù)區(qū)域中的內(nèi)容以重新配置主存儲(chǔ)器290的分區(qū)(S卩,管理存儲(chǔ)器區(qū)域)的權(quán)能。在一些實(shí)施例中,可通過(guò)被授權(quán)的用戶人工地完成該重新配置。在一些實(shí)施例中,可在意識(shí)到持久性區(qū)域或暫存區(qū)域中的一個(gè)自由空間不足而另一個(gè)自由空間過(guò)剩時(shí)自動(dòng)地執(zhí)行重新配置。通過(guò)重新配置主存儲(chǔ)器290的區(qū)域分區(qū),可以獲得足夠的空間以避免向外部裝置交換程序或數(shù)據(jù)而導(dǎo)致的開(kāi)銷和性能代償。將在隨后參照?qǐng)D4A-4B更詳細(xì)地討論元存儲(chǔ)在數(shù)據(jù)區(qū)域中的數(shù)據(jù)的結(jié)構(gòu)。
[0031]一種示例性存儲(chǔ)器映射300顯示了將字節(jié)可尋址非易失性讀寫主存儲(chǔ)器290分區(qū)為多個(gè)區(qū)域的一種分區(qū)。主存儲(chǔ)器290具有用于存儲(chǔ)器字節(jié)的從A到J的物理地址范圍。存儲(chǔ)器地址O對(duì)應(yīng)于A,而最大存儲(chǔ)器地址對(duì)應(yīng)于J。
[0032]ROM區(qū)域310跨越了存儲(chǔ)器地址范圍A-B。第一持久性區(qū)域320跨越了存儲(chǔ)器地址范圍C-D、和E-F。暫存區(qū)域330跨越了存儲(chǔ)器地址范圍D-E、和F-G。第二持久性區(qū)域340跨越了存儲(chǔ)器地址范圍G-Η。元數(shù)據(jù)區(qū)域350跨越了存儲(chǔ)器地址范圍1-J,在存儲(chǔ)器地址范圍B-C復(fù)制此區(qū)域的副本355。元數(shù)據(jù)副本區(qū)域355能夠用于恢復(fù)元數(shù)據(jù)區(qū)域350的訛誤。
[0033]示例性存儲(chǔ)器映射300示例出了可存儲(chǔ)在主存儲(chǔ)器290中的與計(jì)算機(jī)的啟動(dòng)進(jìn)程相關(guān)聯(lián)的若干程序。這些程序存儲(chǔ)在ROM區(qū)域310和第一持久性區(qū)域320中。引導(dǎo)裝載程序312存儲(chǔ)在存儲(chǔ)器290的ROM區(qū)域310中。引導(dǎo)裝載程序312在對(duì)處理器210已知的第一預(yù)定位置處就地可運(yùn)行。該預(yù)定位置可專用于計(jì)算機(jī)的架構(gòu)。所例示的引導(dǎo)裝載程序312在地址A(即,存儲(chǔ)器地址O)開(kāi)始運(yùn)行。
[0034]引導(dǎo)裝載程序312被配置為加載高級(jí)模塊。在一個(gè)實(shí)施例中,引導(dǎo)裝載程序312是一階引導(dǎo)裝載程序(FSBL),而高級(jí)模塊是二階引導(dǎo)裝載程序(SSBL)322。在另一實(shí)施例中,高級(jí)模塊是操作系統(tǒng)或者超管理器324。高級(jí)模塊在持久性區(qū)域320中其位置處至少部分地就地可運(yùn)行。處理器210通常經(jīng)由引導(dǎo)裝載程序312從元數(shù)據(jù)區(qū)域350中的內(nèi)容確定用于操作系統(tǒng)或超管理器324的初始化代碼326在存儲(chǔ)器L中的位置,或者確定SSBL 322的起始在存儲(chǔ)器L’中的位置,后續(xù)地將參照?qǐng)D4A-4B更詳細(xì)地討論。然后從引導(dǎo)裝載程序312將運(yùn)行的控制轉(zhuǎn)移至高級(jí)模塊,高級(jí)模塊要么是位置L處的用于操作系統(tǒng)或超管理器324的初始化代碼326、要么是位置L’處的SSBL322,SSBL 322最終轉(zhuǎn)而又將控制轉(zhuǎn)移至位置L處的初始化代碼326。初始化代碼326還可以初始化文件系統(tǒng)驅(qū)動(dòng)器327,并且安裝計(jì)算機(jī)的文件系統(tǒng)328以使文件系統(tǒng)中的程序和數(shù)據(jù)文件能夠被訪問(wèn)。存儲(chǔ)在持久性區(qū)域320中的程序文件和數(shù)據(jù)文件中的一些可被存儲(chǔ)在文件系統(tǒng)328中,并且可使用文件系統(tǒng)驅(qū)動(dòng)327訪問(wèn)。
[0035]由于SSBL322和操作系統(tǒng)或超管理器324在持久性區(qū)域320中的其存儲(chǔ)位置處就地可運(yùn)行,因此避免了在運(yùn)行將這些模塊322、324加載到存儲(chǔ)器中的步驟。這種步驟可能包含于操作系統(tǒng)或超管理器在運(yùn)行之前從輔助存儲(chǔ)器被加載到易失性存儲(chǔ)器中的系統(tǒng)中。
[0036]除了存儲(chǔ)器地址A之外,還可預(yù)定對(duì)應(yīng)于元數(shù)據(jù)區(qū)域350、355的起始存儲(chǔ)器地址B和I。因此,引導(dǎo)裝載程序312知道去哪里尋找元數(shù)據(jù)區(qū)域,并且由此知道去哪里獲取定義存儲(chǔ)器290的區(qū)域組織的數(shù)據(jù)、和地址L或L’。
[0037]現(xiàn)在就強(qiáng)制執(zhí)行對(duì)存儲(chǔ)器290的區(qū)域的訪問(wèn)許可、參照?qǐng)D2-3回到計(jì)算機(jī)200的操作,計(jì)算機(jī)200包括至少一個(gè)強(qiáng)制執(zhí)行機(jī)構(gòu)。每個(gè)強(qiáng)制執(zhí)行機(jī)構(gòu)強(qiáng)制執(zhí)行由元數(shù)據(jù)定義的用于主存儲(chǔ)器290的不同區(qū)域的至少一個(gè)操作屬性。
[0038]訪問(wèn)許可強(qiáng)制執(zhí)行機(jī)構(gòu)強(qiáng)制執(zhí)行訪問(wèn)許可操作屬性。在一個(gè)實(shí)施例中,計(jì)算機(jī)200的訪問(wèn)許可強(qiáng)制執(zhí)行機(jī)構(gòu)包括MMU 220和介質(zhì)控制器280。麗1] 220將程序可視的邏輯(或虛擬)存儲(chǔ)器空間轉(zhuǎn)換為存儲(chǔ)器中的物理地址,諸如存儲(chǔ)器290,并且通過(guò)不允許對(duì)程序本不應(yīng)該訪問(wèn)的存儲(chǔ)器進(jìn)行漫游訪問(wèn)而提供存儲(chǔ)器保護(hù)。
[0039]MMU 200還可對(duì)主存儲(chǔ)器290的一個(gè)或多個(gè)區(qū)域強(qiáng)制執(zhí)行訪問(wèn)許可操作屬性,包括元數(shù)據(jù)區(qū)域、持久性區(qū)域、暫存區(qū)域、或ROM區(qū)域。存儲(chǔ)在MMU 220中或者存儲(chǔ)在存儲(chǔ)器中的任意位置處并可由MMU 220訪問(wèn)的表格221中具有對(duì)于每個(gè)區(qū)域的記錄。每個(gè)記錄包含位置字段222和屬性字段224。位置字段222指定區(qū)域的地址范圍,而屬性字段224指定訪問(wèn)許可操作屬性。在操作期間,當(dāng)程序請(qǐng)求讀取主存儲(chǔ)器290中的存儲(chǔ)器地址或向其寫入存儲(chǔ)器地址時(shí),MMU 220訪問(wèn)表格221以確定存儲(chǔ)器地址是否落入位置字段222的其中一個(gè)之內(nèi)。如果是,則MMU 220基于對(duì)應(yīng)的屬性字段224確定所請(qǐng)求的存儲(chǔ)器訪問(wèn)(讀取或?qū)懭?是否被許可。如果被許可,則允許存儲(chǔ)器訪問(wèn);但如果不被許可,則不允許存儲(chǔ)器訪問(wèn)。在一些實(shí)施例中,MMU 220對(duì)由用戶級(jí)程序進(jìn)行的存儲(chǔ)器訪問(wèn)強(qiáng)制執(zhí)行訪問(wèn)許可操作屬性,但不對(duì)那些由管理員級(jí)程序進(jìn)行的存儲(chǔ)器訪問(wèn)進(jìn)行強(qiáng)制執(zhí)行。
[0040]位置字段222可以以不同方式實(shí)施。一種方式使用起始物理地址的子字段、和跟隨在該物理地址之后的塊尺寸。位置字段222還可包括對(duì)應(yīng)于起始物理地址的起始邏輯地址,從而實(shí)施邏輯-物理地址轉(zhuǎn)換。
[0041 ] 包括表格221的MMU 220可在啟動(dòng)進(jìn)程期間由引導(dǎo)裝載程序312、SSBL 322和操作系統(tǒng)或超管理器324中的一個(gè)或多個(gè)進(jìn)行配置。一旦已完成啟動(dòng)進(jìn)程,在元數(shù)據(jù)中針對(duì)主存儲(chǔ)器290的區(qū)域定義的訪問(wèn)許可將被強(qiáng)制執(zhí)行。然而,在啟動(dòng)進(jìn)程自身期間,可建立并強(qiáng)制執(zhí)行不同的訪問(wèn)許可。例如,元數(shù)據(jù)可指定:持久性區(qū)域具有讀取訪問(wèn)和寫入訪問(wèn)兩者,但為了確保持久性區(qū)域不被在啟動(dòng)進(jìn)程期間可能發(fā)生的偽(不想要的)寫入操作占用,可在啟動(dòng)進(jìn)程期間將只讀訪問(wèn)許可指派給持久性區(qū)域。
[0042]介質(zhì)控制器280可對(duì)主存儲(chǔ)器290的一個(gè)或多個(gè)區(qū)域強(qiáng)制執(zhí)行只讀訪問(wèn)許可操作屬性。這通常針對(duì)ROM區(qū)域完成。還可針對(duì)元數(shù)據(jù)區(qū)域完成??膳c主存儲(chǔ)器290隔離、或者可與主存儲(chǔ)器組裝在一起的介質(zhì)控制器280用于控制對(duì)主存儲(chǔ)器290的結(jié)構(gòu)的訪問(wèn)。介質(zhì)控制器280的寫保護(hù)機(jī)構(gòu)(其強(qiáng)制執(zhí)行只讀許可)可配置有位置信息282,該位置信息282指定主存儲(chǔ)器290的一個(gè)或多個(gè)地址范圍,在該地址范圍內(nèi)將禁止寫入訪問(wèn)。當(dāng)介質(zhì)控制器280接收到寫入訪問(wèn)時(shí),控制器280確定對(duì)應(yīng)的存儲(chǔ)器地址是否落入位置字段282內(nèi)。如果是,則不許可寫入訪問(wèn);如果不是,則寫入訪問(wèn)被許可。位置字段282通常在執(zhí)行啟動(dòng)進(jìn)程之前就已連同密碼字段284—起被配置了。
[0043]在某些情形下,可期望允許對(duì)被建立為具有只讀許可的地址的寫入訪問(wèn)。這種情形的一種是更新存儲(chǔ)在ROM區(qū)域310中的引導(dǎo)裝載程序312。這種情形的另一種是修改元數(shù)據(jù)區(qū)域350、355以重新配置主存儲(chǔ)器290的區(qū)域。這種情形的再一種是使用元數(shù)據(jù)區(qū)域350中信息的副本來(lái)修復(fù)元數(shù)據(jù)區(qū)域350。通常,這些操作是在啟動(dòng)進(jìn)程期間執(zhí)行的。向?qū)懕Wo(hù)區(qū)域的寫入請(qǐng)求供給密碼。如果所供給的密碼與存儲(chǔ)在介質(zhì)控制器280的密碼字段284中密碼相匹配,則寫入訪問(wèn)被許可。
[0044]加密強(qiáng)制執(zhí)行機(jī)構(gòu)強(qiáng)制執(zhí)行加密操作屬性。在一個(gè)實(shí)施例中,加密/解密模塊270可實(shí)施使用(類似于MMU 220的表格221的)表格的機(jī)構(gòu)來(lái)強(qiáng)制執(zhí)行加密操作屬性。在此情況中,加密/解密模塊270確定通過(guò)模塊270傳遞的存儲(chǔ)器訪問(wèn)請(qǐng)求是否落入根據(jù)指定標(biāo)準(zhǔn)被定義為加密區(qū)域的地址范圍內(nèi)。如果是,則模塊270在將其傳遞至存儲(chǔ)器290之前加密該寫入請(qǐng)求的數(shù)據(jù),并且在將其傳遞給處理器210之前解密從讀取請(qǐng)求返回的數(shù)據(jù)。
[0045]內(nèi)容留存強(qiáng)制執(zhí)行機(jī)構(gòu)強(qiáng)制執(zhí)行內(nèi)容留存操作屬性,以響應(yīng)于關(guān)機(jī)而保持或丟棄區(qū)域的內(nèi)容。在一個(gè)實(shí)施例中,丟棄是被程序被動(dòng)地強(qiáng)制執(zhí)行的,該程序?qū)懭牒妥x取存儲(chǔ)在區(qū)域中的數(shù)據(jù),諸如暫存區(qū)域330,該區(qū)域具有“丟棄”的內(nèi)容留存操作屬性。這些程序不期望來(lái)自先前啟動(dòng)的數(shù)據(jù)在計(jì)算機(jī)200關(guān)機(jī)之后仍然有效,因此假定其不存在。在另一實(shí)施例中,丟棄是主動(dòng)地強(qiáng)制執(zhí)行的。一種主動(dòng)機(jī)構(gòu)可以是在關(guān)機(jī)進(jìn)程期間由處理器210運(yùn)行的程序,并且該程序擦除具有“丟棄”的內(nèi)容留存操作屬性的區(qū)域的存儲(chǔ)器位置。在既具有“丟棄”的內(nèi)容留存操作屬性又具有“加密”的加密屬性的區(qū)域中,主動(dòng)丟棄機(jī)構(gòu)可以丟棄用于解密內(nèi)容的密鑰而不擦除該區(qū)域的存儲(chǔ)器位置。可在計(jì)算機(jī)200的硬件中實(shí)施其他主動(dòng)丟棄機(jī)構(gòu)。
[0046]如已注意到的,在一些實(shí)施例中,計(jì)算機(jī)200還可包括易失性主存儲(chǔ)器260,諸如DRAM,其在對(duì)計(jì)算機(jī)的供電循環(huán)之后不留存其先前的數(shù)據(jù)內(nèi)容。例如,假設(shè)暫存區(qū)域330(圖
3)的跨越地址范圍D-E的部分被映射到易失性主存儲(chǔ)器260而不映射到非易失性主存儲(chǔ)器290。在此情況中,存儲(chǔ)在主存儲(chǔ)器290中的元數(shù)據(jù)區(qū)域350、355的對(duì)應(yīng)數(shù)據(jù)集指的是位于存儲(chǔ)器290外部的存儲(chǔ)器260。易失性主存儲(chǔ)器260可用于接收和運(yùn)行SSBL 322的至少一部分的副本、操作系統(tǒng)、或超管理器324、或其他程序。易失性主存儲(chǔ)器260還用于存儲(chǔ)被確信為將在對(duì)計(jì)算機(jī)200的供電循環(huán)時(shí)被丟棄的數(shù)據(jù),無(wú)論是否針對(duì)對(duì)應(yīng)區(qū)域指定了內(nèi)容留存操作屬性。然而,在主動(dòng)丟棄機(jī)構(gòu)的情況中,針對(duì)對(duì)應(yīng)區(qū)域的“丟棄”的指定內(nèi)容留存操作屬性還將在沒(méi)有電力在計(jì)算機(jī)200循環(huán)而重啟發(fā)生期間丟棄數(shù)據(jù)。
[0047]現(xiàn)在參照?qǐng)D3和圖4A-4B更加詳細(xì)地考慮元數(shù)據(jù)區(qū)域的內(nèi)容,示例性元數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)400對(duì)應(yīng)于存儲(chǔ)器映射300。數(shù)據(jù)結(jié)構(gòu)400可為鏈表。在表頭處是元數(shù)據(jù)條目410。元數(shù)據(jù)條目鏈接至區(qū)域條目420。區(qū)域條目420可鏈接至另一區(qū)域條目420。區(qū)域條目420還可鏈接至地址空間條目430。地址空間條目430可鏈接至另一地址空間條目430。存儲(chǔ)器的特定區(qū)域的元數(shù)據(jù)的數(shù)據(jù)集包括區(qū)域條目420和一個(gè)或多個(gè)地址空間條目430。
[0048]在更詳細(xì)地考慮示例性元數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)400之前,參照?qǐng)D4A考慮該數(shù)據(jù)結(jié)構(gòu)400中使用的不同條目410-430。
[0049]元數(shù)據(jù)條目410具有版本字段412、高級(jí)模塊初始化代碼地址字段414、鏈接至區(qū)域條目420的第一區(qū)域字段416、和CRC字段418。
[0050]版本字段412表示數(shù)據(jù)結(jié)構(gòu)400的版本號(hào)。如果數(shù)據(jù)結(jié)構(gòu)400的內(nèi)容隨著時(shí)間而進(jìn)化,則該版本能夠用于為包含元數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)400的較早版本的存儲(chǔ)器提供向后兼容性。高級(jí)模塊初始化代碼地址字段414存儲(chǔ)高級(jí)模塊初始化代碼的地址。當(dāng)SSBL 322是高級(jí)模塊時(shí),地址字段414存儲(chǔ)SSBL 322的起始地址L’。當(dāng)操作系統(tǒng)或超管理器324是高級(jí)模塊時(shí),地址字段414存儲(chǔ)其初始化代碼326的起始地址L。第一區(qū)域字段416存儲(chǔ)指向元數(shù)據(jù)的第一區(qū)域條目420的指針。CRC字段418存儲(chǔ)從元數(shù)據(jù)條目410的其他字段導(dǎo)出的、可用于校驗(yàn)元數(shù)據(jù)條目410的完整性的循環(huán)冗贅核對(duì)值。
[0051]區(qū)域條目420具有區(qū)域類型字段421、數(shù)據(jù)留存操作屬性字段422、訪問(wèn)許可操作屬性字段423、加密操作屬性字段424、鏈接至地址空間條目430的第一地址空間字段425、鏈接至另一區(qū)域條目420的下一區(qū)域字段426、以及CRC字段427。
[0052]區(qū)域類型字段421指定區(qū)域條目420所對(duì)應(yīng)的區(qū)域的類型:R0M、暫存的、或持久的。由于元數(shù)據(jù)區(qū)域350、355的地址是已知的,可以不存在用于元數(shù)據(jù)區(qū)域350、355中任一個(gè)的區(qū)域條目420,盡管在一些實(shí)施例中是存在的。數(shù)據(jù)留存操作屬性字段422指定:響應(yīng)于關(guān)機(jī)、區(qū)域中的數(shù)據(jù)將被保持還是被丟棄。訪問(wèn)許可操作屬性字段423指定:是否許可對(duì)區(qū)域內(nèi)的存儲(chǔ)器地址的讀取訪問(wèn)和寫入訪問(wèn)。加密操作屬性字段424指定:是否對(duì)存儲(chǔ)在區(qū)域中的數(shù)據(jù)加密,如果是,則指定采用什么類型的加密標(biāo)準(zhǔn)。第一地址空間字段425存儲(chǔ)指向區(qū)域的第一地址空間條目430的指針。下一區(qū)域字段426存儲(chǔ)指向元數(shù)據(jù)的下一區(qū)域條目420的指針??罩羔槺硎炬湵碇械淖詈髤^(qū)域條目420XRC字段427存儲(chǔ)從區(qū)域條目420的其他字段導(dǎo)出的、可用于校驗(yàn)區(qū)域條目420的完整性的循環(huán)冗贅核對(duì)值。
[0053]地址空間條目430具有起始地址字段432、長(zhǎng)度字段434、鏈接至另一地址空間條目430的下一地址空間字段436、和CRC字段438。
[0054]起始地址字段432存儲(chǔ)用于區(qū)域的存儲(chǔ)器地址范圍的第一地址。長(zhǎng)度字段434通常以字節(jié)存儲(chǔ)用于該區(qū)域的存儲(chǔ)器地址范圍的長(zhǎng)度。由此,區(qū)域的相連存儲(chǔ)器地址部分的跨度可由起始地址字段432和長(zhǎng)度字段434確定。下一地址空間字段436存儲(chǔ)指向區(qū)域的下一地址空間條目430的指針??罩羔槺硎居糜趨^(qū)域的最后地址空間條目430XRC字段438存儲(chǔ)從地址空間條目430的其他字段導(dǎo)出的、可用于校驗(yàn)該地址空間條目430的完整性的循環(huán)冗贅核對(duì)值。
[0055]現(xiàn)在參照?qǐng)D3和4B考慮對(duì)應(yīng)于存儲(chǔ)器映射300的示例性元數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)400,區(qū)域條目420A和地址空間430A的數(shù)據(jù)集定義ROM區(qū)域310。區(qū)域條目420B和地址空間430B-C的數(shù)據(jù)集定義第一持久性區(qū)域320。區(qū)域條目420C和地址空間430D-E的數(shù)據(jù)集定義暫存區(qū)域330。區(qū)域條目420D和地址空間430F的數(shù)據(jù)集定義第二持久性區(qū)域340。
[0056]元數(shù)據(jù)可以定義多個(gè)持久性或暫存區(qū)域的原因有多個(gè)。多個(gè)區(qū)域可能具有不同的操作屬性;例如,一個(gè)持久性區(qū)域可能是加密的(如在區(qū)域條目420D中針對(duì)第二持久性區(qū)域340),而另一持久性區(qū)域可能不加密(如在區(qū)域條目420B中針對(duì)第一持久性區(qū)域320)。或者,在可雙重啟動(dòng)進(jìn)入兩種不同操作系統(tǒng)的計(jì)算機(jī)中,一個(gè)持久性區(qū)域可對(duì)應(yīng)于第一操作系統(tǒng),而其他持久性區(qū)域可對(duì)應(yīng)于第二操作系統(tǒng)。元數(shù)據(jù)可以定義區(qū)域內(nèi)的多個(gè)地址空間的原因也有多個(gè)。例如,暫存區(qū)域330的一個(gè)地址空間430可對(duì)應(yīng)于非易失性主存儲(chǔ)器290的一部分,而暫存區(qū)域330的另一地址空間430可對(duì)應(yīng)于易失性主存儲(chǔ)器260的至少一部分。
[0057]在啟動(dòng)進(jìn)程期間或者在其他時(shí)間,可通過(guò)計(jì)算每個(gè)條目410、420、430的對(duì)應(yīng)CRC值并且將計(jì)算得到的CRC值與存儲(chǔ)在對(duì)應(yīng)CRC字段418、427、438中的值相比較來(lái)核對(duì)元數(shù)據(jù)區(qū)域350、355中數(shù)據(jù)的完整性。如果任意CRC值都不匹配,則至少對(duì)應(yīng)條目410、420、430已被訛誤。例如,如果元數(shù)據(jù)區(qū)域350的內(nèi)容被訛誤,則元數(shù)據(jù)區(qū)域355的一些或全部有效內(nèi)容可被復(fù)制到元數(shù)據(jù)區(qū)域350,以便于從訛誤中恢復(fù)。
[0058]現(xiàn)在參照?qǐng)D5A-5B考慮計(jì)算機(jī)的啟動(dòng)進(jìn)程的流程圖??商鎿Q地,圖5A-5B的流程圖可被視為是啟動(dòng)計(jì)算機(jī)的方法500的步驟。在一些實(shí)施例中,計(jì)算機(jī)可以是計(jì)算機(jī)200(圖2)。方法500起始于步驟510,使用計(jì)算機(jī)的處理器訪問(wèn)通信地連接至處理器的字節(jié)可尋址非易失性讀取主存儲(chǔ)器。該存儲(chǔ)器被分區(qū)為多個(gè)區(qū)域。ROM區(qū)域包括引導(dǎo)裝載程序。持久性區(qū)域包含在主存儲(chǔ)器中至少部分地就地可運(yùn)行的操作系統(tǒng)或超管理器。在一些實(shí)施例中,在512,響應(yīng)于計(jì)算機(jī)關(guān)機(jī)而留存ROM區(qū)域、持久性區(qū)域、和元數(shù)據(jù)區(qū)域的內(nèi)容。在一些實(shí)施例中,在514,主存儲(chǔ)器還包括暫存區(qū)域,其內(nèi)容響應(yīng)于關(guān)機(jī)而丟棄。
[0059]在520,引導(dǎo)裝載程序在主存儲(chǔ)器中就地運(yùn)行。如先前關(guān)于示例性存儲(chǔ)器映射300(圖3)討論過(guò)的,引導(dǎo)裝載程序的可運(yùn)行代碼的起始在主存儲(chǔ)器中的地址位置對(duì)于處理器是已知的。
[0060]在530,讀取主存儲(chǔ)器中的元數(shù)據(jù)區(qū)域從而定位位于持久性區(qū)域的高級(jí)模塊。如先前關(guān)于示例性存儲(chǔ)器映射300(圖3)討論過(guò)的,在引導(dǎo)裝載程序的指示下,元數(shù)據(jù)區(qū)域的起始地址位置對(duì)于處理器也是已知的。定位高級(jí)模塊可包括:確定用于高級(jí)模塊的可運(yùn)行代碼的起始(諸如其初始化代碼)在該主存儲(chǔ)器中的地址位置。
[0061]在540,將控制轉(zhuǎn)移到高級(jí)模塊中運(yùn)行。例如可指引處理器在用于高級(jí)模塊的可運(yùn)行代碼的起始地址位置處繼續(xù)運(yùn)行。在一些實(shí)施例中,高級(jí)模塊的部分或者整個(gè)高級(jí)模塊在持久性區(qū)域中就地運(yùn)行。在一些實(shí)施例中,高級(jí)模塊的部分或者整個(gè)高級(jí)模塊可被復(fù)制到另一存儲(chǔ)器,諸如易失性主存儲(chǔ)器,或者被復(fù)制到另一區(qū)域,諸如暫存區(qū)域,并且可在被加載到的存儲(chǔ)器或區(qū)域的位置處運(yùn)行。
[0062]在一些實(shí)施例中,在542,引導(dǎo)裝載程序是一階引導(dǎo)裝載程序(FSBL),而高級(jí)模塊是二階引導(dǎo)裝載程序(SSBL)。在544,SSBL通過(guò)讀取元數(shù)據(jù)區(qū)域而在持久性區(qū)域中定位用于操作系統(tǒng)或超管理器的初始化代碼。例如,SSBL可被預(yù)先配置為已知初始化代碼起始于與其自己的起始地址具有固定偏移之處,固定偏移轉(zhuǎn)而又可由元數(shù)據(jù)條目410的高級(jí)模塊初始化代碼地址字段414確定。在546,將控制從SSBL轉(zhuǎn)移到操作系統(tǒng)或超管理器初始化代碼從而繼續(xù)并且最終完成啟動(dòng)進(jìn)程。
[0063]在一些實(shí)施例中,在552,高級(jí)模塊是操作系統(tǒng)或超管理器。在554,持久性區(qū)域中用于操作系統(tǒng)或超管理器的初始化代碼是由引導(dǎo)裝載程序讀取元數(shù)據(jù)區(qū)域而定位的。例如,可運(yùn)行初始化代碼的起始可從元數(shù)據(jù)條目410的高級(jí)模塊初始化代碼地址字段414獲得。在556,將控制從引導(dǎo)裝載程序轉(zhuǎn)移到操作系統(tǒng)或超管理器初始化代碼從而繼續(xù)并且最終完成啟動(dòng)進(jìn)程。
[0064]SSBL和/或操作系統(tǒng)或超管理器初始化代碼可執(zhí)行是啟動(dòng)進(jìn)程的一部分的其他功能,諸如例如初始化文件系統(tǒng)。一旦被初始化,文件系統(tǒng)可被用于定位存儲(chǔ)在例如持久性區(qū)域中的程序或數(shù)據(jù),包括可以是啟動(dòng)進(jìn)程的一部分的程序或數(shù)據(jù)。
[0065]在一些實(shí)施例中,在此討論的一個(gè)或多個(gè)塊或步驟是自動(dòng)的。換言之,設(shè)備、系統(tǒng)、和方法自動(dòng)地發(fā)生。如在此并且在所附權(quán)利要求中限定的,術(shù)語(yǔ)“自動(dòng)的”或者“自動(dòng)地”(及其類似變型)應(yīng)被廣義地理解為意指設(shè)備、系統(tǒng)和/或進(jìn)程的受控操作,其使用計(jì)算機(jī)和/或機(jī)械/電氣裝置而無(wú)需人工干預(yù)、觀察、付出和/或決策。
[0066]如上所述,將被領(lǐng)會(huì)的是,由本公開(kāi)提供的計(jì)算機(jī)和方法在本領(lǐng)域呈現(xiàn)出了顯著的進(jìn)步。盡管已描述并例示了若干具體實(shí)施例,但公開(kāi)不限于所描述和例示的具體方法、形式或部件的布置。
[0067]比如,本公開(kāi)的實(shí)施例不限于具有單個(gè)處理器的計(jì)算機(jī)。雖然在圖1-2中為了清楚起見(jiàn)例示了單個(gè)處理器,但其他示例性系統(tǒng)可包括多核CPU,其中每核包括一個(gè)處理器。在一些情況中,多核可操作以啟動(dòng)單個(gè)操作系統(tǒng)或超管理器。在此情況中,其中一個(gè)核(稱為“啟動(dòng)核”或“核O”)運(yùn)行在此描述的啟動(dòng)進(jìn)程而其他核不參與。當(dāng)操作系統(tǒng)或超管理器的內(nèi)核掌握系統(tǒng)控制時(shí),其以適當(dāng)?shù)姆绞郊せ钇渌?。然后,所有核將遵循相同的?dāng)前系統(tǒng)配置,包括平等共享存儲(chǔ)器(包括各區(qū)域)和硬件資源(諸如總線205、存儲(chǔ)器260、290、加密/解密模塊270以及其他硬件組件)。
[0068]在其他情況中,根據(jù)在此公開(kāi)的啟動(dòng)進(jìn)程,多核可各自操作啟動(dòng)操作系統(tǒng)或超管理器的不同實(shí)例。被配置為啟動(dòng)各種不同操作系統(tǒng)的核彼此獨(dú)立地運(yùn)作這些。每個(gè)核從指派到該核的固定存儲(chǔ)器區(qū)域訪問(wèn)啟動(dòng)代碼;不同核之間的存儲(chǔ)器區(qū)域可相同或可不相同。每個(gè)操作系統(tǒng)和/或超管理器獨(dú)立于其他操作系統(tǒng)和/或超管理器。在這些情況中,各核之間可以不平等地共享存儲(chǔ)器和其他硬件資源。
[0069]另外,本公開(kāi)的實(shí)施例不限于個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、筆記本計(jì)算機(jī)、客戶端計(jì)算機(jī)或者服務(wù)器計(jì)算機(jī),而是可應(yīng)用于多種多樣的裝置中,包括但不限于蜂窩電話、智能電話、個(gè)人數(shù)字助理、和具有嵌入式計(jì)算機(jī)的所有類型的電子或電磁裝置。本說(shuō)明書應(yīng)當(dāng)被理解為包括在此公開(kāi)的元素的所有新穎的并且非顯而易見(jiàn)的組合、和在本申請(qǐng)以及在后申請(qǐng)中陳列的權(quán)利要求中包括的這些元素的任意新穎的并且非顯而易見(jiàn)的組合。前述實(shí)施例是示意性的,并且不存在對(duì)于在本申請(qǐng)或在后申請(qǐng)中請(qǐng)求保護(hù)的所有可能組合都必要的單個(gè)特征或元素。除非另外指明,方法權(quán)利要求的步驟不必以指定順序執(zhí)行。類似地,示圖中的塊或數(shù)字(諸如(1)、(2)等)不應(yīng)當(dāng)被理解為步驟必須以特定順序進(jìn)行??商砑痈郊拥膲K/步驟、移除一些塊/步驟、或者可修改塊/步驟的順序,修改后的順序仍將落入在此公開(kāi)的實(shí)施例的范圍內(nèi)。進(jìn)一步地,在不同附圖中討論的方法或步驟可被添加至其他附圖中的方法或步驟、或者與其交換。再進(jìn)一步地,具體的用數(shù)字表示的數(shù)據(jù)值(諸如具體數(shù)量、數(shù)字、分類等)或其他具體信息應(yīng)當(dāng)被解讀為是示意地用于討論實(shí)施例。提供這種具體信息不在于限定實(shí)施例。本公開(kāi)不限于上述實(shí)施方式,相反,本公開(kāi)由所附權(quán)利要求根據(jù)其等同方案的全部范圍定義。當(dāng)權(quán)利要求引用“一個(gè)”或者“第一”元素或者其等同物時(shí),這種權(quán)利要求應(yīng)被理解為包括一個(gè)或多個(gè)這種元素的結(jié)合,既不要求也不排除兩個(gè)或更多個(gè)這種元素。當(dāng)權(quán)利要求引用“具有”時(shí),該術(shù)語(yǔ)應(yīng)被理解為意指“包括”。
【主權(quán)項(xiàng)】
1.一種計(jì)算機(jī),包括: 處理器;以及 字節(jié)可尋址非易失性讀寫主存儲(chǔ)器,連接至所述處理器,所述存儲(chǔ)器被分區(qū)為多個(gè)區(qū)域,每個(gè)區(qū)域具有至少一個(gè)定義的操作屬性, 其中,所述多個(gè)區(qū)域中的至少一個(gè)區(qū)域是存儲(chǔ)多個(gè)數(shù)據(jù)集的元數(shù)據(jù)區(qū)域,每個(gè)數(shù)據(jù)集指定所述多個(gè)區(qū)域中的一個(gè)對(duì)應(yīng)區(qū)域在存儲(chǔ)器中的位置、和所述對(duì)應(yīng)區(qū)域的所述至少一個(gè)定義的操作屬性。2.如權(quán)利要求1所述的計(jì)算機(jī),其中,所述至少一個(gè)定義的操作屬性包括由所述處理器對(duì)所述對(duì)應(yīng)區(qū)域內(nèi)的存儲(chǔ)器地址的至少一種類型的可允許訪問(wèn)。3.如權(quán)利要求1所述的計(jì)算機(jī),其中,所述至少一個(gè)定義的操作屬性包括所述對(duì)應(yīng)區(qū)域響應(yīng)于所述計(jì)算機(jī)關(guān)機(jī)的內(nèi)容留存屬性。4.如權(quán)利要求1所述的計(jì)算機(jī),其中,所述至少一個(gè)定義的操作屬性包括應(yīng)用于所述對(duì)應(yīng)區(qū)域的內(nèi)容的加密類型。5.如權(quán)利要求1所述的計(jì)算機(jī),其中,所述計(jì)算機(jī)根據(jù)所述元數(shù)據(jù)區(qū)域的所述多個(gè)數(shù)據(jù)集強(qiáng)制執(zhí)行所述多個(gè)區(qū)域的所述操作屬性。6.如權(quán)利要求1所述的計(jì)算機(jī),其中,所述元數(shù)據(jù)區(qū)域具有只讀訪問(wèn)、和響應(yīng)于所述計(jì)算機(jī)關(guān)機(jī)而保持內(nèi)容的操作屬性。7.如權(quán)利要求1所述的計(jì)算機(jī),其中,所述區(qū)域包括: ROM區(qū)域,存儲(chǔ)引導(dǎo)裝載程序的至少一部分,所述ROM區(qū)域具有只讀訪問(wèn)、和響應(yīng)于所述計(jì)算機(jī)關(guān)機(jī)而保持內(nèi)容的操作屬性; 持久性區(qū)域,存儲(chǔ)操作系統(tǒng)或超管理器,所述持久性區(qū)域具有在正常操作期間至少讀取訪問(wèn)、和響應(yīng)于所述計(jì)算機(jī)關(guān)機(jī)而保持內(nèi)容的操作屬性;以及 暫存區(qū)域,存儲(chǔ)在所述計(jì)算機(jī)操作期間由所述引導(dǎo)裝載程序、所述操作系統(tǒng)、和所述超管理器中的至少一個(gè)生成的數(shù)據(jù),所述暫存區(qū)域具有至少讀取訪問(wèn)和寫入訪問(wèn)、和響應(yīng)于所述計(jì)算機(jī)關(guān)機(jī)而丟棄內(nèi)容的操作屬性。8.如權(quán)利要求1所述的計(jì)算機(jī),包括: 連接至所述處理器的易失性讀寫主存儲(chǔ)器中的外部暫存區(qū)域,所述外部暫存區(qū)域接收并運(yùn)行操作系統(tǒng)或者超管理器的至少一部分的副本,所述外部暫存區(qū)域具有至少讀取訪問(wèn)和寫入訪問(wèn)的操作屬性;以及 其中,所述元數(shù)據(jù)區(qū)域進(jìn)一步包括:對(duì)應(yīng)于所述外部暫存區(qū)域的數(shù)據(jù)集。9.一種計(jì)算機(jī),包括: 處理器; 字節(jié)可尋址非易失性讀寫主存儲(chǔ)器,連接至所述處理器,所述存儲(chǔ)器被分區(qū)為多個(gè)不同區(qū)域; 引導(dǎo)裝載程序,存儲(chǔ)在所述存儲(chǔ)器的ROM區(qū)域中并且在第一預(yù)定位置處就地可運(yùn)行; 高級(jí)模塊,存儲(chǔ)在所述存儲(chǔ)器的持久性區(qū)域中并且至少部分地在所述持久性區(qū)域中就地可運(yùn)行; 其中,所述存儲(chǔ)器包括存儲(chǔ)多個(gè)數(shù)據(jù)集的元數(shù)據(jù)區(qū)域,所述元數(shù)據(jù)區(qū)域起始于第二預(yù)定位置并且指定所述高級(jí)模塊在存儲(chǔ)器中的位置,并且其中,每個(gè)數(shù)據(jù)集指定所述多個(gè)區(qū)域中的一個(gè)區(qū)域在存儲(chǔ)器中的位置。10.如權(quán)利要求9所述的計(jì)算機(jī),其中,每個(gè)數(shù)據(jù)集還指定所述對(duì)應(yīng)區(qū)域的內(nèi)容留存特征,所述計(jì)算機(jī)進(jìn)一步包括: 內(nèi)容留存強(qiáng)制執(zhí)行機(jī)構(gòu),響應(yīng)于所述計(jì)算機(jī)關(guān)機(jī)針對(duì)每個(gè)區(qū)域強(qiáng)制執(zhí)行用于該區(qū)域的對(duì)應(yīng)的內(nèi)容留存特征。11.一種啟動(dòng)計(jì)算機(jī)的方法,包括: 使用所述計(jì)算機(jī)的處理器訪問(wèn)連接至所述處理器的字節(jié)可尋址非易失性讀寫主存儲(chǔ)器,所述存儲(chǔ)器被分區(qū)為包括ROM區(qū)域和持久性區(qū)域的多個(gè)區(qū)域,所述ROM區(qū)域包括引導(dǎo)裝載程序,所述持久性區(qū)域包含至少部分地就地可運(yùn)行的操作系統(tǒng)或者超管理器; 在所述ROM區(qū)域中的已知地址處就地運(yùn)行所述引導(dǎo)裝載程序; 通過(guò)所述引導(dǎo)裝載程序讀取所述存儲(chǔ)器中已知地址處的元數(shù)據(jù)區(qū)域,以在所述持久性區(qū)域中定位高級(jí)模塊;以及 將控制轉(zhuǎn)移至所述高級(jí)模塊運(yùn)行。12.如權(quán)利要求11所述的方法,其中,所述引導(dǎo)裝載程序是一階引導(dǎo)裝載程序,并且其中,所述高級(jí)模塊是二階弓I導(dǎo)裝載程序,所述方法進(jìn)一步包括: 通過(guò)所述二階引導(dǎo)裝載程序在所述持久性區(qū)域中定位用于所述操作系統(tǒng)或者所述超管理器的初始化代碼;以及 將控制轉(zhuǎn)移至所述初始化代碼來(lái)運(yùn)行以完成啟動(dòng)進(jìn)程。13.如權(quán)利要求11所述的方法,其中,所述高級(jí)模塊是所述操作系統(tǒng)或者超管理器; 其中,所述讀取定位在所述持久性區(qū)域中的用于所述操作系統(tǒng)或者所述超管理器的初始化代碼;且 其中,所述轉(zhuǎn)移將控制轉(zhuǎn)移至所述初始化代碼來(lái)運(yùn)行以完成啟動(dòng)進(jìn)程。14.如權(quán)利要求11所述的方法,其中,所述高級(jí)模塊在所述持久性區(qū)域中被就地運(yùn)行。15.如權(quán)利要求11所述的方法,其中,所述ROM區(qū)域、所述持久性區(qū)域、和所述元數(shù)據(jù)區(qū)域中的內(nèi)容響應(yīng)于所述計(jì)算機(jī)關(guān)機(jī)而留存;且 其中,所述存儲(chǔ)器包括暫存區(qū)域,以存儲(chǔ)在所述計(jì)算機(jī)操作期間生成的數(shù)據(jù);且 其中,所述暫存區(qū)域中的內(nèi)容響應(yīng)于所述計(jì)算機(jī)關(guān)機(jī)而丟棄。
【文檔編號(hào)】G06F9/44GK105917308SQ201480073393
【公開(kāi)日】2016年8月31日
【申請(qǐng)日】2014年1月22日
【發(fā)明人】C·H·科斯塔, 塔西亞諾·德雷克曼·佩雷斯, D·R·梅達(dá)利亞, M·N·波爾托, R·班德?tīng)? J·C·安布羅西
【申請(qǐng)人】惠普發(fā)展公司,有限責(zé)任合伙企業(yè)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
泸水县| 兴业县| 寻甸| 邮箱| 北流市| 邢台县| 神农架林区| 松阳县| 大渡口区| 屏东市| 五峰| 台东县| 济南市| 永安市| 怀仁县| 临洮县| 邻水| 寿光市| 井陉县| 西贡区| 眉山市| 乌拉特前旗| 屏南县| 昭通市| 高青县| 长岛县| 皋兰县| 凤山市| 镇巴县| 清水县| 台南市| 浦北县| 赣榆县| 寿阳县| 长武县| 外汇| 安阳市| 富蕴县| 象山县| 璧山县| 昂仁县|