亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

具有持久性存儲器存儲裝置的固件接口的制作方法

文檔序號:12287830閱讀:205來源:國知局
具有持久性存儲器存儲裝置的固件接口的制作方法

本公開涉及固件接口,并且更具體地,涉及具有持久性存儲裝置的統(tǒng)一可擴展固件接口(UEFI),用于例如倘若發(fā)生電力丟失則提供存儲器寫入持續(xù)性。



背景技術:

固件接口一般地提供操作系統(tǒng)(OS)和與系統(tǒng)平臺相關聯(lián)的底層固件和/或硬件之間的接口。固件接口的示例包括傳統(tǒng)基本輸入輸出系統(tǒng)(BIOS)和較新的統(tǒng)一可擴展固件接口(UEFI)。固件接口典型地提供系統(tǒng)引導服務以及運行時服務。由UEFI提供的運行時服務包括管理通過OS或其它實體對系統(tǒng)變量的訪問。一般地要求UEFI保證對這些變量做出的任何更新是持久性的,例如,保證倘若非預期電力丟失、重置或其它中斷發(fā)生則更新將持續(xù)。

然而,針對UEFI的潛在沖突目標在于,這些系統(tǒng)變量存儲在除UEFI之外的任何實體不可直接訪問的信任且安全的存儲器區(qū)或設備中。例如,受損的OS不應當能夠訪問該UEFI預留的存儲器。附加地,通過OS對這些變量的訪問可能引起存儲器競爭問題,如果它們與UEFI訪問并發(fā)的話。不幸地,可以可用于這樣的安全或隔離的操作模式的存儲器典型地是易失性的,諸如例如動態(tài)隨機存取存儲器(DRAM),倘若電力中斷發(fā)生則其內(nèi)容丟失。

附圖說明

所要求保護的主題的實施例的特征和優(yōu)點將隨著以下具體實施例的進行并且在參照附圖時而變得清楚,其中相同標號描繪相同部分,并且其中:

圖1圖示了與本公開一致的一個示例實施例的最高級系統(tǒng)圖;

圖2圖示了與本公開一致的示例實施例的框圖;

圖3圖示了與本公開一致的一個示例實施例的操作的流程圖;

圖4圖示了與本公開一致的另一個示例實施例的操作的流程圖;

圖5圖示了與本公開一致的另一個示例實施例的操作的流程圖;以及

圖6圖示了與本公開一致的另一個示例實施例的平臺的系統(tǒng)圖。

盡管將參照說明性實施例而進行以下具體實施方式,但是其許多可替換形式、修改和變型對于本領域技術人員將是清楚的。

具體實施方式

一般地,本公開提供了用于具有持久性存儲裝置的統(tǒng)一可擴展固件接口(UEFI)的系統(tǒng)、設備、方法和計算機可讀介質,所述具有持久性存儲裝置的統(tǒng)一可擴展固件接口(UEFI)用于例如倘若電力丟失發(fā)生則提供存儲器寫入持續(xù)性。諸如例如計算或通信平臺的系統(tǒng)可以包括一個或多個處理器或核心以及一個或多個存儲器模塊,所述一個或多個存儲器模塊包括易失性和非易失性存儲器類型二者。處理器和存儲器可以配置為托管(例如,存儲和/或執(zhí)行)UEFI連同一個或多個操作系統(tǒng)(OS)和其它軟件應用或實體。UEFI可以配置為執(zhí)行系統(tǒng)引導服務和運行時(例如,引導后)服務。運行時服務可以包括控制通過OS對系統(tǒng)變量的訪問,所述系統(tǒng)變量存儲在易失性存儲器的受保護/安全區(qū)中。

系統(tǒng)還可以包括電力管理電路,用于從一個或多個主電源向處理器提供電力。系統(tǒng)還可以包括預留能量存儲模塊,用于倘若來自主電源的電力丟失發(fā)生則向處理器提供電力,在該情況下,電力丟失指示符可以被提供給UEFI。UEFI可以進一步配置為響應于電力丟失指示符而將系統(tǒng)變量從易失性存儲器復制到非易失性存儲器。

盡管可以在UEFI的上下文中呈現(xiàn)與本公開一致的實施例,但是將領會到,所討論的原理可以應用于OS和底層硬件之間的任何類型的接口。

圖1圖示了與本公開一致的一個示例實施例的最高級系統(tǒng)圖100。系統(tǒng)被示出為包括處理器102、存儲器模塊110、電力管理電路108(還稱為電力管理集成電路或PMIC)和預留能量存儲模塊116。存儲器模塊110包括易失性存儲器模塊112(例如,要求電力來維持數(shù)據(jù)內(nèi)容的存儲器)和非易失性存儲器模塊114。處理器102被示出為托管具有持久性存儲裝置能力的UEFI 104,如將在下文更詳細解釋的。持久性存儲裝置可以理解為包括存儲器存儲裝置,所述存儲器存儲裝置配置為保持已經(jīng)寫入到它的數(shù)據(jù),使得該數(shù)據(jù)甚至倘若非預期電力丟失、重置或其它中斷發(fā)生也將持續(xù)。處理器102還被示出為托管OS 106。

在一些實施例中,系統(tǒng)可以是計算設備和/或通信設備,包括例如智能電話、智能平板、個人數(shù)字助手(PDA)、移動因特網(wǎng)設備(MID)、雙用型平板、筆記本或膝上型計算機、工作站或臺式計算機。

PMIC 108可以配置為從一個或多個主電源118向處理器102和其它系統(tǒng)組件提供電力,一個或多個主電源118可以包括基于交流(AC)的電力供應(例如,市電或干線電力)、電池或者任何其它適當?shù)碾娫?。倘若來自可用主電源的電力丟失發(fā)生,則PMIC可以切換到預留能量存儲模塊116,以在足以執(zhí)行“干凈”關斷的時間段內(nèi)向系統(tǒng)提供電力的繼續(xù),如將在下文更詳細描述的。電力丟失可能例如歸因于電池的移除、電力線纜的斷開、過渡電池耗盡等而發(fā)生。

圖2圖示了與本公開一致的示例實施例的框圖200。UEFI 104被更詳細地示出為包括引導服務模塊210、運行時服務模塊212和UEFI(或系統(tǒng))變量214。易失性存儲器模塊112被示出為包括不可由OS 106直接訪問的受保護高速緩存區(qū)208。相比而言,非易失性存儲器114可以配置為由UEFI 104和OS 106二者可共享。預留能量存儲模塊116被示出為包括電容器202或者可選地輔助電池204或者適用于至少臨時操作的其它電源。

UEFI 104可以配置為提供與系統(tǒng)上電、重置或重啟相關聯(lián)的引導服務210,在系統(tǒng)上電、重置或重啟期間,OS一般尚未在執(zhí)行。UEFI 104還可以配置為在引導過程完成并且OS已經(jīng)被發(fā)起之后提供運行時服務212。在該時間期間,當OS在執(zhí)行時,UEFI和OS之間的存儲器的共享可能觸發(fā)存儲器連接問題和/或引發(fā)安全問題。對于存儲包括以下的UEFI認證的變量的存儲器區(qū)的共享而言尤其如此:平臺密鑰(PK);密鑰交換密鑰(KEK);信任密鑰、簽名和可執(zhí)行圖像的數(shù)據(jù)庫(DB);以及非信任密鑰、簽名和可執(zhí)行圖像的數(shù)據(jù)庫(DBX)。

運行時服務212可以使得能夠通過OS 106間接訪問UEFI變量214。這種訪問可以通過諸如例如用于讀取的GetVariable()以及用于寫入的SetVariable()的函數(shù)調用來提供,所述功能調用包括在UEFI 104和OS 106之間的編程接口中。響應于讀取請求,UEFI可以從易失性存儲器112的受保護高速緩存208檢索系統(tǒng)變量數(shù)據(jù)。響應于寫入請求,UEFI可以將系統(tǒng)變量數(shù)據(jù)存儲在易失性存儲器112的受保護高速緩存208中。系統(tǒng)變量可以包括例如引導加載器的位置、系統(tǒng)語言偏好、用于密碼的公鑰等,所述用于密碼的公鑰包括之前描述的PK、KEK、DB和DBX。

UEFI固件代碼或者至少實現(xiàn)這些系統(tǒng)變量的部分可以在訪問受保護的系統(tǒng)管理隨機存取存儲器(SMRAM)的情況下在處理器的系統(tǒng)管理模式(SMM)中執(zhí)行。SMM和SMRAM甚至與最高特權等級Ring 0隔離,OS可以在最高特權等級Ring 0之下執(zhí)行。然而,SMRAM一般地是易失性存儲器,其內(nèi)容在電力中斷期間丟失。

PMIC 108可以配置為在預留能量存儲模塊116的電容器202(或輔助電池204)上維持電荷,而同時主電源118可用。PMIC 108還可以配置為檢測來自主電源112的電力丟失并且切換到預留能量存儲模塊116。響應于檢測到這種電力丟失,PMIC 108還可以向處理器102生成電力丟失指示符(PLI)206,處理器102可以生成中斷,例如系統(tǒng)管理中斷(SMI),該中斷觸發(fā)通過UEFI 104進行的動作來執(zhí)行“干凈”關斷。SMI迫使處理器進入系統(tǒng)管理模式中,在系統(tǒng)管理模式期間,UEFI在信任執(zhí)行環(huán)境中運行,其中OS已經(jīng)放棄平臺硬件的控制。作為干凈關斷的部分,在來自預留能量存儲模塊116的剩余電力上運行的UEFI可以配置為將系統(tǒng)變量從易失性受保護高速緩沖存儲器208復制到非易失性存儲器114的區(qū)(例如,從高速緩存沖洗(flush)),使得它們將得以保持并且在主電力恢復之后可用于后續(xù)的系統(tǒng)重新引導/重啟。在已經(jīng)從高速緩存沖洗系統(tǒng)變量之后,如果足夠的預留電力可用,則干凈關斷還可以包括通過UEFI生成不可掩蔽中斷(NMI),以觸發(fā)OS執(zhí)行可以是適當?shù)娜魏胃郊硬僮?,諸如例如保存用戶應用的狀態(tài)和/或數(shù)據(jù)。

在一些實施例中,UEFI 104可以托管在具有用于系統(tǒng)變量的相關聯(lián)的隔離高速緩沖存儲器的第二處理器或微控制器上,所述第二處理器或微控制器中一個或二者可以與處理器102分離或隔離。然而,該第二處理器/微控制器可以集成到包括處理器102和/或其它組件的片上系統(tǒng)(SoC)架構中。

在一些實施例中,電容器202的大小可以選擇為提供足夠持續(xù)時間的放電時間常量,以允許完成UEFI(系統(tǒng))變量從易失性向非易失性存儲器的轉移。在一些實施例中,系統(tǒng)變量可以占用大約128千字節(jié)的存儲器,但是還可以實現(xiàn)更小或更大的大小。在一些實施例中,易失性存儲器可以配置為動態(tài)隨機存取存儲器(DRAM),并且非易失性存儲器可以配置為閃速存儲器(例如,NAND閃速存儲器)。

圖3圖示了與本公開一致的一個示例實施例的操作300的流程圖。這些操作可以由UEFI在系統(tǒng)引導或重置期間執(zhí)行。在操作302處,在易失性存儲器中啟用受保護高速緩存。受保護高速緩存可以配置為通過除UEFI之外的OS或任何軟件/實體不可訪問。在操作304處,UEFI初始化平臺。在操作306處,PLI電容器(預留能量存儲模塊116)的充電開始。在操作308處,將控制轉移給OS。

圖4圖示了與本公開一致的另一個示例實施例的操作400的流程圖。在操作402處,SMI將控制轉移給UEFI。在操作404處,UEFI確定是否已經(jīng)生成電力丟失指示符。如果不存在電力丟失指示符,則UEFI在操作406處確定是否已經(jīng)例如通過由OS調用的GetVariable()或SetVariable()函數(shù)來做出系統(tǒng)變量訪問請求。如果請求寫入,則在操作410處將數(shù)據(jù)寫入到受保護高速緩存。如果請求讀取,則在操作408處從受保護高速緩存讀取數(shù)據(jù)。在操作412處將控制返回給OS之前,UEFI可以進一步在適當?shù)那闆r下執(zhí)行任何附加操作。

如果電力丟失已經(jīng)發(fā)生并且如果在操作420處確定PLI電容器具有足夠電荷,則在操作424處執(zhí)行“干凈”關斷。干凈關斷包括在操作424處將系統(tǒng)變量從受保護高速緩存沖洗或復制到非易失性存儲器。干凈關斷可以進一步包括在操作426處生成NMI,以在關斷之前使OS執(zhí)行可以是適當?shù)娜魏纹渌僮鳌H绻鸓LI電容器不具有足夠電荷,則在操作422處將發(fā)生“臟”關斷。臟關斷可能因而導致存儲在易失性存儲器中的受保護高速緩存中的任何數(shù)據(jù)的丟失。

圖5圖示了與本公開一致的另一個示例實施例的操作500的流程圖。這些操作一般地提供用于通過固件接口進行的持久性存儲的方法。在操作510處,固件接口控制對易失性存儲器的受保護區(qū)中的系統(tǒng)變量的訪問。在操作520處,將電力丟失指示符提供給固件接口。在操作530處,響應于電力丟失指示符而執(zhí)行向來自預留能量存儲模塊的電力的切換。在操作540處,響應于電力丟失指示符而通過固件接口將系統(tǒng)變量從易失性存儲器復制到非易失性存儲器。

圖6圖示了與本公開一致的一個示例實施例的系統(tǒng)圖600。系統(tǒng)600可以是移動平臺610或計算設備,諸如例如智能電話、智能平板、個人數(shù)字助手(PDA)、移動因特網(wǎng)設備(MID)、雙用型平板、筆記本或膝上型計算機、或者任何其它適當?shù)脑O備。然而,將領會到,本文描述的系統(tǒng)的實施例不限于移動平臺,并且在一些實施例中,系統(tǒng)600可以是工作站或臺式計算機。

系統(tǒng)600被示出為包括處理器620。在一些實施例中,處理器620可以實現(xiàn)為任何數(shù)目的處理器核心。處理器(或處理器核心)可以是任何類型的處理器,諸如例如微處理器、嵌入式處理器、數(shù)字信號處理器(DSP)、網(wǎng)絡處理器、現(xiàn)場可編程門陣列或者配置為執(zhí)行代碼的其它設備。處理器620可以是單線程核心或者多線程核心,因為其可以每一核心包括多于一個硬件線程上下文(或“邏輯處理器”)。系統(tǒng)600還被示出為包括耦合到處理器620的存儲器。存儲器可以包括易失性存儲器112和非易失性存儲器114。存儲器可以是如本領域技術人員所已知或者以其它方式可獲得的任何各種各樣的存儲器(包括存儲器層級結構的各種層和/或高速緩沖存儲器)。將領會到,處理器620和存儲器112、114可以配置為存儲、托管和/或執(zhí)行一個或多個操作系統(tǒng)、固件接口、用戶應用或其它軟件模塊。這些應用可以包括但不限于,例如任何類型的計算、通信、數(shù)據(jù)管理、數(shù)據(jù)存儲和/或用戶接口任務。在一些實施例中,這些應用可以采用移動平臺610的任何其它組件或者與之交互。

系統(tǒng)600還被示出為包括網(wǎng)絡接口模塊640,其可以配置為提供例如到平臺的以太網(wǎng)連接性。系統(tǒng)600還被示出為包括無線通信模塊650,其可以包括無線通信能力,諸如例如蜂窩通信、無線保真(WiFi)、Bluetooth?和/或近場通信(NFC)。無線通信可以符合任何現(xiàn)有或尚待開發(fā)的通信標準或者以其它方式與之兼容,所述通信標準包括過去、當前和將來版本的Bluetooth?、Wi-Fi和移動電話通信標準。

系統(tǒng)600還被示出為包括輸入/輸出(IO)系統(tǒng)或控制器630,其可以配置為啟用或管理處理器620和系統(tǒng)600的其它元件或系統(tǒng)600外部的其它元件(沒有示出)之間的數(shù)據(jù)通信。

系統(tǒng)可以一般地經(jīng)由顯示元件660向用戶呈現(xiàn)各種接口,諸如例如觸摸屏、液晶顯示器(LCD)或任何其它適當?shù)娘@示類型。

系統(tǒng)600還被示出為包括PMIC模塊108和預留能量存儲模塊116,它們的操作已經(jīng)在上文詳細描述。

將領會到,在一些實施例中,系統(tǒng)600的各種組件可以組合在片上系統(tǒng)(SoC)架構中。在一些實施例中,組件可以是硬件組件、固件組件、軟件組件,或者硬件、固件或軟件的任何適當組合。

本文描述的方法的實施例可以實現(xiàn)在包括一個或多個存儲介質的系統(tǒng)中,所述一個或多個存儲介質具有個體地或者組合地存儲在其上的指令,所述指令在由一個或多個處理器執(zhí)行時執(zhí)行這些方法。此處,處理器可以包括例如系統(tǒng)CPU(例如,核心處理器)和/或可編程電路。因而,意圖的是,根據(jù)本文描述的方法的操作可以跨多個物理設備分布,所述多個物理設備諸如例如處于若干不同物理位置處的處理結構。而且,意圖的是,方法操作可以個體地或者以子組合執(zhí)行,如本領域技術人員將理解的那樣。因而,并不需要執(zhí)行每一個流程圖的所有操作,并且本公開明確地意圖啟用這樣的操作的所有子組合,如本領域普通技術人員將理解的那樣。

存儲介質可以包括例如以下的任何類型的有形介質:任何類型的盤,包括軟盤、光學盤、致密盤只讀存儲器(CD-ROM)、致密盤可再寫(CD-RW)、數(shù)字多功能盤(DVD)和磁光盤;半導體器件,諸如只讀存儲器(ROM)、隨機存取存儲器(RAM)(諸如動態(tài)和靜態(tài)RAM)、可擦可編程只讀存儲器(EPROM)、電可擦可編程只讀存儲器(EEPROM)、閃速存儲器、磁性或光學卡;或者適用于存儲電子指令的任何類型介質。

如在本文任何實施例中所使用的“電路”可以例如單獨地或者以任何組合地包括硬布線電路、可編程電路、狀態(tài)機電路和/或存儲由可編程電路執(zhí)行的指令的固件。app可以體現(xiàn)為代碼或指令,其可以在諸如主機處理器或其它可編程電路之類的可編程電路上執(zhí)行。如在本文任何實施例中所使用的,模塊可以體現(xiàn)為電路。電路可以體現(xiàn)為集成電路,諸如集成電路芯片。

因而,本公開提供了用于具有持久性存儲裝置的UEFI的系統(tǒng)、設備、方法和計算機可讀介質,所述具有持久性存儲裝置的UEFI用于例如倘若電力丟失發(fā)生則提供存儲器寫入持續(xù)性。以下示例涉及進一步的實施例。

根據(jù)示例1,提供了一種提供用于固件接口的持久性存儲的系統(tǒng)。系統(tǒng)可以包括用于托管固件接口的處理器,固件接口用于控制對易失性存儲器的受保護區(qū)中的系統(tǒng)變量的訪問。該示例的系統(tǒng)還可以包括電力管理電路,用于向處理器提供電力并且進一步用于向固件接口提供電力丟失指示符。該示例的系統(tǒng)可以進一步包括預留能量存儲模塊,用于響應于電力丟失指示符而向處理器提供電力。該示例的固件接口可以配置為響應于電力丟失指示符而將系統(tǒng)變量從易失性存儲器復制到非易失性存儲器。

示例2可以包括前述示例的元件,并且預留能量存儲模塊是電容器。

示例3可以包括前述示例的元件,并且處理器進一步托管操作系統(tǒng)(OS),固件接口用于控制通過OS對系統(tǒng)變量的訪問。

示例4可以包括前述示例的元件,并且進一步包括用于托管操作系統(tǒng)(OS)的第二處理器,固件接口用于控制通過OS對系統(tǒng)變量的訪問。

示例5可以包括前述示例的元件,并且電力丟失指示符與固件接口的系統(tǒng)管理中斷(SMI)相關聯(lián)。

示例6可以包括前述示例的元件,并且固件接口進一步用于在將系統(tǒng)變量復制到非易失性存儲器之后向OS生成不可掩蔽中斷(NMI)。

示例7可以包括前述示例的元件,并且電力管理電路進一步用于為預留能量存儲模塊充電。

示例8可以包括前述示例的元件,并且固件接口為統(tǒng)一可擴展固件接口(UEFI)。

示例9可以包括前述示例的元件,并且預留能量存儲模塊為電池。

示例10可以包括前述示例的元件,并且易失性存儲器為動態(tài)隨機存取存儲器(DRAM)。

示例11可以包括前述示例的元件,并且非易失性存儲器為閃速存儲器。

示例12可以包括前述示例的元件,并且系統(tǒng)為智能電話、智能平板、筆記本或膝上型計算機。

根據(jù)示例13,提供了一種用于通過固件接口來提供持久性存儲的方法。方法可以包括通過固件接口來控制對易失性存儲器的受保護區(qū)中的系統(tǒng)變量的訪問。該示例的方法還可以包括向固件接口提供電力丟失指示符。該示例的方法可以進一步包括響應于電力丟失指示符而切換到來自預留能量存儲模塊的電力。該示例的方法可以進一步包括響應于電力丟失指示符而通過固件接口將系統(tǒng)變量從易失性存儲器復制到非易失性存儲器。

示例14可以包括前述示例的操作,并且預留能量存儲模塊為電容器。

示例15可以包括前述示例的操作,并且系統(tǒng)變量由操作系統(tǒng)(OS)可控制地訪問。

示例16可以包括前述示例的操作,并且進一步包括生成固件接口的系統(tǒng)管理中斷(SMI),SMI與電力丟失指示符相關聯(lián)。

示例17可以包括前述示例的操作,并且進一步包括在將系統(tǒng)變量復制到非易失性存儲器之后向OS生成不可掩蔽中斷(NMI)。

示例18可以包括前述示例的操作,并且進一步包括為預留能量存儲模塊充電。

示例19可以包括前述示例的操作,并且固件接口為統(tǒng)一可擴展固件接口(UEFI)。

根據(jù)示例20,提供了一種用于通過固件接口來提供持久性存儲的系統(tǒng)。系統(tǒng)可以包括用于通過固件接口來控制對易失性存儲器的受保護區(qū)中的系統(tǒng)變量的訪問的構件。該示例的系統(tǒng)還可以包括用于向固件接口提供電力丟失指示符的構件。該示例的系統(tǒng)可以進一步包括用于響應于電力丟失指示符而切換到來自預留能量存儲模塊的電力的構件。該示例的系統(tǒng)可以進一步包括用于響應于電力丟失指示符而通過固件接口將系統(tǒng)變量從易失性存儲器復制到非易失性存儲器的構件。

示例21可以包括前述示例的元件,并且預留能量存儲模塊為電容器。

示例22可以包括前述示例的元件,并且系統(tǒng)變量由操作系統(tǒng)(OS)可控制地訪問。

示例23可以包括前述示例的元件,并且進一步包括用于生成固件接口的系統(tǒng)管理中斷(SMI)的構件,SMI與電力丟失指示符相關聯(lián)。

示例24可以包括前述示例的元件,并且進一步包括用于在將系統(tǒng)變量復制到非易失性存儲器之后向OS生成不可掩蔽中斷(NMI)的構件。

示例25可以包括前述示例的元件,并且進一步包括用于為預留能量存儲模塊充電的構件。

示例26可以包括前述示例的元件,并且固件接口為統(tǒng)一可擴展固件接口(UEFI)。

根據(jù)另一個示例,提供了具有存儲在其上的指令的至少一個計算機可讀存儲介質,所述指令在由處理器執(zhí)行時使得處理器執(zhí)行如在以上任何示例中描述的方法的操作。

根據(jù)另一個示例,提供了一種裝置,包括用于執(zhí)行如在以上任何示例中描述的方法的構件。

已經(jīng)在本文中采用的術語和表述被用作描述術語而不作為限制,并且在這樣的術語和表述的使用中,不意圖排除所示出和描述的特征(或其部分)的任何等同物,并且要認識到,各種修改在權利要求的范圍內(nèi)是可能的。相應地,意圖權利要求覆蓋所有這樣的等同物。已經(jīng)在本文描述了各種特征、方面和實施例。這些特征、方面和實施例易于相互組合,以及易于進行變型和修改,如將由本領域技術人員所理解的那樣。因此,本公開應當視為涵蓋這樣的組合、變型和修改。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1