機(jī)架式計(jì)算機(jī)服務(wù)器使用自包含硬件,在這種意義上,可以將機(jī)架式服務(wù)器插入標(biāo)準(zhǔn)電源插座,連接網(wǎng)絡(luò)電纜、引導(dǎo),并且具有操作服務(wù)器。機(jī)架式服務(wù)器通常安裝在通常為19英寸寬的計(jì)算機(jī)硬件機(jī)架中,但是一些機(jī)架式服務(wù)器也可以坐在其他機(jī)架中,或者坐在桌子或另一表面上,而不是安裝在機(jī)架中。與機(jī)架式服務(wù)器是自包含的不同,刀片式服務(wù)器不是自包含的。刀片式服務(wù)器設(shè)計(jì)為安裝在被稱為“機(jī)箱”的刀片外殼中,外殼包括一個(gè)或多個(gè)電源和網(wǎng)絡(luò)部件。插入有一個(gè)或多個(gè)刀片的機(jī)箱可以是機(jī)架可安裝的。
在電源停止流動(dòng)到機(jī)架、機(jī)箱、機(jī)架式服務(wù)器、刀片式服務(wù)器和/或具有存儲(chǔ)在易失性存儲(chǔ)器中的數(shù)據(jù)的這種服務(wù)器的單獨(dú)部件之后,數(shù)據(jù)可能丟失并且不可恢復(fù)。減少或防止數(shù)據(jù)丟失的一種方法是跨數(shù)據(jù)中心中的多個(gè)服務(wù)器或者甚至跨地理上分離的數(shù)據(jù)中心復(fù)制數(shù)據(jù)。然而,各種各樣的其他方法也可以用于在功率損失的情況下保存數(shù)據(jù)。不同的方法具有不同的技術(shù)特性,并且除了共享保存數(shù)據(jù)以防功率損失這一概念,任何兩個(gè)給定的方法不必彼此相關(guān)功率損失。
技術(shù)實(shí)現(xiàn)要素:
一些實(shí)施例或示例包括到共享功率源(例如,機(jī)箱或機(jī)架電池或發(fā)電機(jī))的耦合。在一些實(shí)施例或示例中,數(shù)據(jù)保存觸發(fā)控制器在以下條件中的一個(gè)或多個(gè)條件下向諸如NVDIMM和PCIe設(shè)備等耦合的易失性存儲(chǔ)器設(shè)備發(fā)送數(shù)據(jù)保存命令:可編程時(shí)間量逝去而沒有AC功率,電壓電平降低到低于正常但仍然足以在數(shù)據(jù)保存操作期間對(duì)易失性存儲(chǔ)器設(shè)備供電,觸發(fā)控制器被通知操作系統(tǒng)關(guān)閉命令,和/或觸發(fā)控制器在沒有關(guān)閉命令的情況下被通知明確的數(shù)據(jù)保存命令。
給出的示例僅僅是說明性的。本發(fā)明內(nèi)容不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)的主題的范圍。相反,提供本發(fā)明內(nèi)容以便以簡(jiǎn)化的形式介紹在下面的具體實(shí)施方式中進(jìn)一步描述的一些技術(shù)概念。創(chuàng)新由權(quán)利要求限定,并且在本發(fā)明內(nèi)容與權(quán)利要求沖突的情況下,應(yīng)以權(quán)利要求為準(zhǔn)。
附圖說明
將參考附圖給出更具體的描述。這些附圖僅示出所選擇的方面,因此不完全確定任何示例的覆蓋或范圍。
圖1是示出具有在硬件和/或軟件的控制下彼此交互的至少一個(gè)處理器和至少一個(gè)存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)、以及示出操作環(huán)境中可以在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上延伸的其它項(xiàng)目、以及還示出一些配置的存儲(chǔ)介質(zhì)的各方面的框圖;
圖2是示出支持?jǐn)?shù)據(jù)保存觸發(fā)的架構(gòu)中的一些部件和一些耦合的圖;
圖3是示出用于可配置的數(shù)據(jù)保存操作的一些過程和一些配置的存儲(chǔ)介質(zhì)的步驟的流程圖;
圖4示出了電源排序時(shí)序圖;
圖5是示出云服務(wù)器功率和功率管理基礎(chǔ)設(shè)施的一些方面的圖;
圖6和圖7共同示出了刀片主板和相關(guān)聯(lián)的機(jī)箱;
圖8示出了使用超級(jí)電容器備份源的云服務(wù)器上的NVDIMM實(shí)現(xiàn)方式的主板框圖;
圖9示出了使用12V輔助備份源的云服務(wù)器上的NVDIMM實(shí)現(xiàn)方式的主板框圖;
圖10是示出具有框架級(jí)電源和電池基礎(chǔ)設(shè)施形式的本地能量存儲(chǔ)的電池操作的曲線圖;以及
圖11包括說明功率排序設(shè)備狀態(tài)轉(zhuǎn)變和定時(shí)的圖和表。
具體實(shí)施方式
縮略語
下面定義一些首字母縮略詞和其他術(shù)語,但是其他術(shù)語可以在本文中在別處定義或者不需要定義以被本領(lǐng)域技術(shù)人員理解。
AC:交流電
ACPI DSDT/SSDT:高級(jí)配置和電源接口區(qū)分系統(tǒng)描述表/輔助系統(tǒng)描述表
ADR:異步DRAM刷新
ALU:算術(shù)和邏輯單元
AND:一種類型的邏輯門(不是首字母縮略詞)
API:應(yīng)用程序接口
ASCII:用于信息交換的美國標(biāo)準(zhǔn)代碼
ASL:ACPI源語言
Aux:輔助
BIOS:基本輸入/輸出系統(tǒng)
BMC:基板管理控制器
CD:光盤
CKTS:電路
CM:機(jī)箱管理器
CPLD:復(fù)雜可編程邏輯器件
CPU:中央處理單元
CRB:客戶參考板
CRC:循環(huán)冗余校驗(yàn)
DC:直流電
DCU:數(shù)字控制單元(控制器的示例)
DDR3:雙倍數(shù)據(jù)速率類型3
DG:柴油發(fā)電機(jī)
DIMM:雙列直插存儲(chǔ)器模塊
DSM:設(shè)備特定的方法
DRAM:動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器
DVD:數(shù)字多功能盤或數(shù)字視頻盤
FBDIMM:完全緩沖的DIMM
FPGA:現(xiàn)場(chǎng)可編程門陣列
FPU:浮點(diǎn)處理單元
FW:固件
GB:千兆字節(jié)
GbE或GBE:千兆以太網(wǎng)
GPIO:通用輸入/輸出
GPU:圖形處理單元
GUI:圖形用戶界面
HDD:硬盤驅(qū)動(dòng)器
HSC:熱插拔控制器
I2C:集成電路
IDE:集成開發(fā)環(huán)境,有時(shí)也被稱為“交互式開發(fā)環(huán)境”
IIO:集成輸入/輸出
IoT:物聯(lián)網(wǎng)
IPMI:智能平臺(tái)管理接口
ISO/IEC:國際標(biāo)準(zhǔn)化組織/國際電工委員會(huì)
LES:本地能量存儲(chǔ)
M.2:用于內(nèi)部安裝的計(jì)算機(jī)擴(kuò)展卡和連接器的規(guī)范
MEZZ:夾層
MSB:最高有效位
NAND:取反AND(與)/非AND(與)
NIC:網(wǎng)絡(luò)接口卡
NV:非易失性
NVMe:非易失性存儲(chǔ)器快速
OS:操作系統(tǒng)
PCH:平臺(tái)控制器中樞
PCIe:外圍部件互連快速;本文有時(shí)被寫為PCIE
PMBUS:電源管理總線
PSU:電源單元
QD:隊(duì)列深度
RAID:獨(dú)立磁盤冗余陣列
RAM:隨機(jī)存取存儲(chǔ)器
RDIMM:注冊(cè)的雙列直插存儲(chǔ)器模塊
ROM:只讀存儲(chǔ)器
SAS:串行連接的SCSI
SATA:串行ATA/串行AT附件/串行高級(jí)技術(shù)附件
SSATA:輔助SATA
SCSI:小型計(jì)算機(jī)系統(tǒng)接口
SMBUS:系統(tǒng)管理總線
SPD:串行存在檢測(cè)
SRAM:靜態(tài)RAM
SSD:固態(tài)驅(qū)動(dòng)
Supercap:超級(jí)電容器
UART:通用異步接收器/傳輸器
UEFI:統(tǒng)一可擴(kuò)展固件接口
UPS:不間斷電源
V:伏特
概述
本文中所描述的示例的技術(shù)特征對(duì)于本領(lǐng)域的普通技術(shù)人員將是容易理解的,并且還將以多種方式對(duì)于寬范圍的細(xì)心讀者是容易理解的。首先,一些實(shí)施例解決各種技術(shù)問題,諸如面臨即將來臨或?qū)嶋H功率損失的數(shù)據(jù)保存、成本有效功率監(jiān)測(cè)、超級(jí)電容器冷卻要求和/或用于易失性存儲(chǔ)器設(shè)備的專用電池的主板不動(dòng)產(chǎn)(real estate)要求。第二,一些實(shí)施例包括諸如計(jì)算硬件等技術(shù)部件,其以超出通用計(jì)算機(jī)的典型操作的方式操作,例如通過繼續(xù)向PCIe軌道和/或NVDIMM插槽供電,盡管AC功率損失和缺少專用于特定PCIe軌道或NVDIMM插槽的任何電池或超級(jí)電容器。第三,一些實(shí)施例提供的技術(shù)效果包括保存否則當(dāng)AC功率損失時(shí)將從易失性存儲(chǔ)器丟失的數(shù)據(jù)。本文還描述了各種技術(shù)適應(yīng),特別是在幾個(gè)示例性架構(gòu)文本論述和/或附圖中。
本文中所描述的一些示例可以在更廣泛的上下文中查看。例如,諸如數(shù)據(jù)、延遲、功率、保存和/或觸發(fā)等概念可以與特定實(shí)施例相關(guān)。然而,它不由廣泛的上下文的可用性推斷,其中在本文中排他性的權(quán)利正在被尋找用于抽象的想法;它們不是。相反,本公開集中于提供適當(dāng)?shù)奶囟▽?shí)施例,其技術(shù)效果完全或部分地解決特定技術(shù)問題并改進(jìn)計(jì)算機(jī)系統(tǒng)的功能。涉及數(shù)據(jù)、延遲、功率、保存和/或觸發(fā)的其他介質(zhì)、系統(tǒng)和方法在本范圍之外。因此,在適當(dāng)?shù)乩斫獗竟_的情況下,也避免了模糊性、純粹的抽象性、缺乏技術(shù)特性和伴隨的證明問題。
一些術(shù)語
現(xiàn)在將參考諸如附圖所示的示例性實(shí)施例,并且本文將使用特定語言來描述這些實(shí)施例。但是本文所示的特征的更改和進(jìn)一步修改以及由本文中的特定實(shí)施例所示出的抽象原理的附加技術(shù)應(yīng)用(其是相關(guān)領(lǐng)域的擁有本公開的技術(shù)人員想到的)應(yīng)當(dāng)被認(rèn)為在權(quán)利要求的范圍。
在本公開中闡明了術(shù)語的含義,因此應(yīng)當(dāng)仔細(xì)地注意這些說明來閱讀權(quán)利要求。給出了具體的示例,但是相關(guān)領(lǐng)域的技術(shù)人員將理解,其他示例也可以落入所使用的術(shù)語的含義內(nèi),并且在一個(gè)或多個(gè)權(quán)利要求的范圍內(nèi)。在這里,術(shù)語不一定具有它們?cè)谝话闶褂弥?特別是在非技術(shù)使用中)或在特定行業(yè)的使用中或在特定字典或字典集合中具有相同的含義。附圖標(biāo)記可以與各種短語一起使用,以幫助示出術(shù)語的寬度。從給定的文本片段省略附圖標(biāo)記不一定表示文本不討論圖的內(nèi)容。發(fā)明人主張和行使他們自己的詞典編纂的權(quán)利,包括將語言復(fù)制到權(quán)利要求中和從這里的任何位置到后代應(yīng)用的權(quán)利。帶引號(hào)的術(shù)語是明確定義的,但在隱含地定義術(shù)語時(shí)不使用引號(hào)。術(shù)語可以明確地或隱含地在此處在詳細(xì)描述中和/或在應(yīng)用文件的其他地方定義。
如本文所使用的,“計(jì)算機(jī)系統(tǒng)”可以包括例如一個(gè)或多個(gè)服務(wù)器、主板、處理節(jié)點(diǎn)、個(gè)人計(jì)算機(jī)(便攜式或非便攜式)、個(gè)人數(shù)字助理、智能電話、蜂窩或移動(dòng)電話、至少具有處理器和存儲(chǔ)器的其他移動(dòng)設(shè)備、和/或提供至少部分地由指令控制的一個(gè)或多個(gè)處理器的其他設(shè)備。指令可以是存儲(chǔ)器和/或?qū)S秒娐分械墓碳蚱渌浖男问?。具體地,盡管可能發(fā)生很多實(shí)施例在工作站或膝上型計(jì)算機(jī)上運(yùn)行,但是其他實(shí)施例可以在其他計(jì)算設(shè)備上運(yùn)行,并且任何一個(gè)或多個(gè)這樣的設(shè)備可以是給定實(shí)施例的一部分。云服務(wù)器被討論為計(jì)算機(jī)系統(tǒng)的特定示例,但是云服務(wù)器和云服務(wù)器子系統(tǒng)不是可以結(jié)合本文中呈現(xiàn)的教導(dǎo)的計(jì)算機(jī)系統(tǒng)或設(shè)備的僅有示例。
“多線程”計(jì)算機(jī)系統(tǒng)是支持多個(gè)執(zhí)行線程的計(jì)算機(jī)系統(tǒng)。術(shù)語“線程”應(yīng)當(dāng)被理解為包括能夠或者經(jīng)歷調(diào)度(并且可能精力同步)的任何代碼,并且還可以由諸如“任務(wù)”、“進(jìn)程”或“協(xié)同程序”等另一名稱來知道。線程可以并行地、順序地或以并行執(zhí)行(例如,多處理)和順序執(zhí)行(例如,時(shí)間分片)的組合來運(yùn)行。多線程環(huán)境已經(jīng)在各種配置中設(shè)計(jì)。執(zhí)行線程可以并行運(yùn)行,或者線程可以被組織用于并行執(zhí)行,但實(shí)際上依次順序執(zhí)行。多線程可以例如通過在多處理環(huán)境中在不同核上運(yùn)行不同的線程,通過在單個(gè)處理器核上對(duì)不同線程進(jìn)行時(shí)間分片,或通過時(shí)間分片和多處理器線程的某種組合來實(shí)現(xiàn)。線程上下文切換可以例如由內(nèi)核的線程調(diào)度器、用戶空間信號(hào)或用戶空間和內(nèi)核操作的組合來發(fā)起。例如,線程可以輪流對(duì)共享數(shù)據(jù)進(jìn)行操作,或者每個(gè)線程可以對(duì)其自己的數(shù)據(jù)進(jìn)行操作。
“邏輯處理器”或“處理器”是單個(gè)獨(dú)立的硬件線程處理單元,例如同時(shí)多線程實(shí)現(xiàn)中的核。作為另一示例,每個(gè)核運(yùn)行兩個(gè)線程的超線程四核芯片具有八個(gè)邏輯處理器。邏輯處理器包括硬件。術(shù)語“邏輯”用于防止給定芯片具有至多一個(gè)處理器的錯(cuò)誤結(jié)論;“邏輯處理器”和“處理器”在本文中可互換地使用。處理器可以是通用的,或者它們可以被定制用于諸如圖形處理、信號(hào)處理、浮點(diǎn)算術(shù)處理、加密、I/O處理等特定用途。
“多處理器”計(jì)算機(jī)系統(tǒng)是具有多個(gè)邏輯處理器的計(jì)算機(jī)系統(tǒng)。多處理器環(huán)境以各種配置發(fā)生。在給定配置中,所有處理器可以在功能上相等,而在另一配置中,一些處理器可以通過具有不同的硬件能力、不同的軟件分配或兩者而不同于其他處理器。根據(jù)配置,處理器可以在單個(gè)總線上彼此緊密耦合,或者它們可以松散耦合。在一些配置中,處理器共享中央存儲(chǔ)器,在一些配置中它們各自具有它們自己的本地存儲(chǔ)器,并且在一些配置中存在共享存儲(chǔ)器和本地存儲(chǔ)器。
“內(nèi)核”包括操作系統(tǒng)、管理程序、虛擬機(jī)、BIOS代碼和類似的硬件接口軟件。
“代碼”是指處理器指令、數(shù)據(jù)(其包括常量、變量和數(shù)據(jù)結(jié)構(gòu))、或者指令和數(shù)據(jù)兩者。
在此廣泛使用“程序”以包括由程序員(也被稱為開發(fā)者)編寫的應(yīng)用、內(nèi)核、驅(qū)動(dòng)器、中斷處理程序、固件、狀態(tài)機(jī)、庫和其他代碼。
“例程”是指通過跳轉(zhuǎn)和上下文保存接收控制的函數(shù)、過程、異常處理程序、中斷處理程序或另一指令塊。上下文保存在堆棧上推送返回地址或以其他方式保存返回地址,并且還可保存在從例程返回時(shí)要恢復(fù)的寄存器內(nèi)容。
“IoT”或“物聯(lián)網(wǎng)”表示可尋址嵌入式計(jì)算節(jié)點(diǎn)的任何聯(lián)網(wǎng)集合。這樣的節(jié)點(diǎn)是如本文所定義的計(jì)算機(jī)系統(tǒng)的示例,但是它們還具有以下特征中的至少兩個(gè):(a)沒有本地的人類可讀顯示;(b)沒有本地鍵盤;(c)主要輸入源是跟蹤非語言數(shù)據(jù)源的傳感器;(d)沒有局部旋轉(zhuǎn)磁盤存儲(chǔ)-RAM芯片或ROM芯片提供唯一的本地存儲(chǔ)器;(e)沒有CD或DVD驅(qū)動(dòng)器;(f)嵌入家用電器;(g)嵌入植入的醫(yī)療裝置中;(h)嵌入在車輛中;(i)嵌入在過程自動(dòng)化控制系統(tǒng)中;或(j)側(cè)重于以下之一的設(shè)計(jì):環(huán)境監(jiān)測(cè)、公民基礎(chǔ)設(shè)施監(jiān)測(cè)、工業(yè)設(shè)備監(jiān)測(cè)、能源使用監(jiān)測(cè)、人或動(dòng)物健康監(jiān)測(cè)或物理運(yùn)輸系統(tǒng)監(jiān)測(cè)。
如本文所使用的,除非另有說明,否則“包括”允許另外的元件(即,包括裝置包括)?!坝?..組成”是指基本上由或完全由...組成。當(dāng)X的非Y部分(如果有的話)可以被自由地改變、移除和/或添加,而不改變所要求保護(hù)的實(shí)施例的功能性,就所涉及的權(quán)利要求而言,X基本上由Y組成。
“過程”在本文中可以用作計(jì)算科學(xué)領(lǐng)域的術(shù)語,并且在技術(shù)意義上包括例如資源用戶,即協(xié)同程序、線程、任務(wù)、中斷處理程序、應(yīng)用程序進(jìn)程、內(nèi)核進(jìn)程、過程和對(duì)象方法?!斑^程”也可以在本文中用作專利法術(shù)語術(shù)語,例如在描述與系統(tǒng)權(quán)利要求或制品(配置的存儲(chǔ)介質(zhì))權(quán)利要求相對(duì)的過程權(quán)利要求中。類似地,“方法”在本文中有時(shí)可以用作計(jì)算科學(xué)領(lǐng)域中的技術(shù)術(shù)語(一種“常規(guī)”),有時(shí)也用作專利法術(shù)語術(shù)語(“過程”)。本領(lǐng)域技術(shù)人員將理解在特定情況下表示哪個(gè)含義,并且還將理解,給定的要求保護(hù)的過程或方法(在專利法意義上)有時(shí)可以使用一個(gè)或多個(gè)過程或方法(在計(jì)算科學(xué)意義上)。
“自動(dòng)地”是指通過使用自動(dòng)化(例如,由用于本文所討論的特定操作和技術(shù)效果的軟件配置的通用計(jì)算硬件),而不是沒有自動(dòng)化。特別地,“自動(dòng)地”執(zhí)行的步驟不是手動(dòng)地在紙上或在人的頭腦中執(zhí)行,盡管它們可以由人來發(fā)起或由人交互地引導(dǎo)。利用機(jī)器執(zhí)行自動(dòng)步驟以便獲得在沒有如此提供的技術(shù)交互的情況下不能實(shí)現(xiàn)的一個(gè)或多個(gè)技術(shù)效果。
技術(shù)人員理解技術(shù)效果是技術(shù)實(shí)施例的推測(cè)目的。例如,在實(shí)施例中涉及計(jì)算,并且還可以在沒有技術(shù)部件(例如,通過紙和鉛筆,或甚至作為心理步驟)的情況下執(zhí)行一些計(jì)算不會(huì)移除技術(shù)效果的存在或改變本實(shí)施例的具體和技術(shù)性質(zhì)。技術(shù)人員將認(rèn)識(shí)到,在一些情況下,計(jì)算簡(jiǎn)單地不能通過心理步驟或通過紙和鉛筆足夠快速和足夠可靠地執(zhí)行,以提供實(shí)施例的技術(shù)效果。
“計(jì)算地”同樣表示正在使用的計(jì)算設(shè)備(至少處理器加上存儲(chǔ)器),并且排除僅通過人的思想或僅僅人的動(dòng)作獲得結(jié)果。例如,用紙和鉛筆進(jìn)行算術(shù)不是如本文所理解的計(jì)算運(yùn)算。計(jì)算結(jié)果更快、更寬、更深、更準(zhǔn)確、更一致、更全面,和/或以其它方式提供超出人類性能范圍的技術(shù)效果?!坝?jì)算步驟”是計(jì)算執(zhí)行的步驟?!白詣?dòng)地”或“計(jì)算地”不一定表示“立即”?!坝?jì)算地”和“自動(dòng)地”在本文中可互換地使用。
“主動(dòng)地”表示沒有來自用戶的直接請(qǐng)求。實(shí)際上,用戶甚至可能不知道實(shí)施例的主動(dòng)步驟是可能的,直到步驟的結(jié)果已經(jīng)呈現(xiàn)給用戶。除非另有說明,本文所述的任何計(jì)算和/或自動(dòng)步驟也可以主動(dòng)地進(jìn)行。
“語言上”是指通過使用自然語言或通常用于面對(duì)面的人對(duì)人通信的另一種形式的通信。在語言上溝通包括例如用他的手指、手、臉和/或身體說話、打字或打手勢(shì)。
在本文中,使用任選的復(fù)數(shù)“(s)”、“(es)”或“(s)”是指存在一個(gè)或多個(gè)所指出的特征。例如,“處理器”表示“一個(gè)或多個(gè)處理器”或等效地“至少一個(gè)處理器”。
在本文檔中,除非另有明確說明,否則對(duì)過程中的步驟的任何引用假定該步驟可以由感興趣的一方直接執(zhí)行和/或由該方通過中介機(jī)制和/或中間實(shí)體間接執(zhí)行,以及仍然在該步驟的范圍內(nèi)。也就是說,除非直接執(zhí)行是明確規(guī)定的要求,否則不需要由感興趣的一方直接執(zhí)行步驟。例如,涉及由諸如連接、控制、協(xié)調(diào)、耦合、檢測(cè)、執(zhí)行、丟棄、降低、監(jiān)測(cè)、通知、操作、供電、編程、提供、接收、保存、發(fā)送、關(guān)于目的地或其他主題的共享、關(guān)閉、觸發(fā)(以及連接、連接的、控制、控制的等)可以涉及干預(yù)動(dòng)作,諸如禁用、啟用、轉(zhuǎn)發(fā)、復(fù)制、上傳、下載、編碼、解碼、壓縮、解壓縮、加密、解密、認(rèn)證、調(diào)用等,但仍被理解為由感興趣的一方直接執(zhí)行。
例如,每當(dāng)提及數(shù)據(jù)或指令時(shí),應(yīng)理解這些項(xiàng)目配置計(jì)算機(jī)可讀存儲(chǔ)器和/或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),從而將其轉(zhuǎn)換成特定物品,而不是簡(jiǎn)單地存在于紙上、一個(gè)人的心里、或者作為一個(gè)傳播的信號(hào)。除非在權(quán)利要求中另有明確說明,否則權(quán)利要求不涵蓋信號(hào)本身。為了在美國的專利保護(hù)的目的,存儲(chǔ)器、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和任何其他計(jì)算機(jī)可讀介質(zhì)不是傳播信號(hào)或載波,并且它在美國專利商標(biāo)局(USPTO)關(guān)于Nuijten案的解釋下不在可專利主題的范圍之內(nèi)。
此外,盡管在本文其它地方明顯有相反的含義,但是應(yīng)當(dāng)理解在(a)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、計(jì)算機(jī)可讀介質(zhì)和計(jì)算機(jī)可讀存儲(chǔ)器與(b)傳輸介質(zhì)(也稱為信號(hào)媒體或傳播信號(hào))之間的明確區(qū)分。傳輸介質(zhì)是傳播信號(hào)或載波介質(zhì)。相比之下,計(jì)算機(jī)可讀介質(zhì)、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)可讀存儲(chǔ)器不是傳播信號(hào)或載波介質(zhì)。除非另有明確說明,否則“計(jì)算機(jī)可讀介質(zhì)”是指計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),而不是傳播信號(hào)本身。
本文中的“實(shí)施例”是示例。術(shù)語“實(shí)施例”不能與“本發(fā)明”互換;術(shù)語“示例”也不能。實(shí)施例可以自由地共享或借用方面以創(chuàng)建其他實(shí)施例(假定結(jié)果是可操作的),即使所得到的方面組合本身沒有明確地描述。要求每個(gè)允許的組合被明確描述對(duì)于本領(lǐng)域技術(shù)人員是不必要的,并且將違背承認(rèn)專利說明書是為本領(lǐng)域技術(shù)人員撰寫的策略。關(guān)于從甚至少量可組合特征產(chǎn)生的可能組合的數(shù)目的形式組合計(jì)算和非正式常見直覺也將指示對(duì)于本文中所描述的方面存在大量方面組合。因此,要求對(duì)每個(gè)組合的明確敘述將與要求專利說明書簡(jiǎn)潔的政策相矛盾,并且使讀者在相關(guān)技術(shù)領(lǐng)域中具有知識(shí)。
操作環(huán)境
參考圖1,用于實(shí)施例的操作環(huán)境100可以包括計(jì)算機(jī)系統(tǒng)102。計(jì)算機(jī)系統(tǒng)102可以是多處理器計(jì)算機(jī)系統(tǒng),或者不是。操作環(huán)境可以包括給定計(jì)算機(jī)系統(tǒng)中的一個(gè)或多個(gè)機(jī)器,其可以是集群的、客戶端-服務(wù)器網(wǎng)絡(luò)的和/或?qū)Φ染W(wǎng)絡(luò)的。單個(gè)機(jī)器是計(jì)算機(jī)系統(tǒng),并且一組協(xié)作機(jī)器也是計(jì)算機(jī)系統(tǒng)。給定計(jì)算機(jī)系統(tǒng)102可以被配置用于端用戶,例如具有應(yīng)用、用于管理員、作為服務(wù)器、作為分布式處理節(jié)點(diǎn)、作為IoT節(jié)點(diǎn)和/或以其他方式。
人類用戶104可以通過使用顯示器、鍵盤和其他外圍設(shè)備106,經(jīng)由打字文本、觸摸、語音、移動(dòng)、計(jì)算機(jī)視覺、手勢(shì)和/或其他形式的I/O與計(jì)算機(jī)系統(tǒng)102交互。用戶界面可以支持實(shí)施例與一個(gè)或多個(gè)人類用戶之間的交互。用戶界面可以包括命令行接口、圖形用戶界面(GUI)、自然用戶界面(NUI)、語音命令接口和/或其他接口呈現(xiàn)。例如,可以在本地臺(tái)式計(jì)算機(jī)上或在智能電話上生成用戶界面,或者可以從web服務(wù)器生成用戶界面并將其發(fā)送到客戶端。用戶界面可以被生成為服務(wù)的一部分,并且它可以與諸如社交網(wǎng)絡(luò)服務(wù)等其他服務(wù)集成。給定的操作環(huán)境包括支持這些不同的用戶界面生成選項(xiàng)和用途的設(shè)備和基礎(chǔ)設(shè)施。
自然用戶界面(NUI)操作可以使用語音識(shí)別、觸摸和觸筆識(shí)別、屏幕上和屏幕附近的姿勢(shì)識(shí)別、空氣姿勢(shì)、頭部和眼睛跟蹤、語音和語音、視覺、觸摸、手勢(shì)和/或機(jī)器智能。NUI技術(shù)的一些示例包括觸敏顯示器、語音和語音識(shí)別、意圖和目標(biāo)理解、使用深度相機(jī)的運(yùn)動(dòng)姿勢(shì)檢測(cè)(諸如立體相機(jī)系統(tǒng)、紅外相機(jī)系統(tǒng)、RGB相機(jī)系統(tǒng)及其組合)、運(yùn)動(dòng)姿勢(shì)檢測(cè)加速度計(jì)/陀螺儀、面部識(shí)別、3D顯示器、頭部、眼睛和注視跟蹤、沉浸式增強(qiáng)現(xiàn)實(shí)和虛擬現(xiàn)實(shí)系統(tǒng),所有這些都提供更自然的接口,以及使用電場(chǎng)感測(cè)電極(腦電圖和相關(guān)工具)。
作為另一示例,游戲可以駐留在微軟XBOX服務(wù)器(微軟公司的標(biāo)記)或其他游戲服務(wù)器上。游戲可以從控制臺(tái)購買,并且可以在服務(wù)器上,在控制臺(tái)上或者兩者上全部或部分地執(zhí)行。多個(gè)用戶可以使用標(biāo)準(zhǔn)控制器、空中手勢(shì)、語音或使用諸如智能手機(jī)或平板電腦的伴隨設(shè)備與游戲交互。給定的操作環(huán)境包括支持這些不同使用場(chǎng)景的設(shè)備和基礎(chǔ)設(shè)施。
系統(tǒng)管理員、開發(fā)者、工程師和端用戶各自是特定類型的用戶104。代表一個(gè)或多個(gè)人行動(dòng)的自動(dòng)代理、腳本、回放軟件等也可以是用戶104。存儲(chǔ)設(shè)備和/或網(wǎng)絡(luò)設(shè)備在一些實(shí)施例中可以被認(rèn)為是外圍設(shè)備。例如,圖1中未示出的其他計(jì)算機(jī)系統(tǒng)可以以技術(shù)方式經(jīng)由網(wǎng)絡(luò)接口設(shè)備使用到網(wǎng)絡(luò)108的一個(gè)或多個(gè)耦合和/或連接與計(jì)算機(jī)系統(tǒng)102或另一系統(tǒng)實(shí)施例交互。
計(jì)算機(jī)系統(tǒng)102包括具有一個(gè)或多個(gè)處理器高速緩存120的至少一個(gè)邏輯處理器110。與其他合適的系統(tǒng)一樣,計(jì)算機(jī)系統(tǒng)102還包括一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112。介質(zhì)112可以是不同的物理類型。介質(zhì)112可以是易失性存儲(chǔ)器122、非易失性存儲(chǔ)器124、固定在適當(dāng)位置的介質(zhì)、可移除介質(zhì)、磁性介質(zhì)、光學(xué)介質(zhì)、固態(tài)介質(zhì)和/或其他類型的物理耐用存儲(chǔ)介質(zhì)(與僅僅傳播信號(hào)相反)。特別地,諸如便攜式(即外部)硬盤驅(qū)動(dòng)器、CD、DVD、記憶棒或其他可移除非易失性存儲(chǔ)介質(zhì)等配置介質(zhì)114在插入或以其他方式安裝時(shí)可以成為計(jì)算機(jī)系統(tǒng)的功能上的一部分,使得其內(nèi)容可訪問以與處理器110交互并由處理器110使用??梢瞥渲媒橘|(zhì)114是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112的示例。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112的一些其他示例包括內(nèi)置RAM、ROM、硬盤以及用戶104不容易移除的其他存儲(chǔ)器存儲(chǔ)設(shè)備。為了符合當(dāng)前的美國專利要求,計(jì)算機(jī)可讀介質(zhì)、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)可讀存儲(chǔ)器都不是信號(hào)本身。
介質(zhì)114和/或其他介質(zhì)112配置有由處理器110可執(zhí)行的指令116;在本文中,“可執(zhí)行的”在廣義上用于包括例如在虛擬機(jī)上運(yùn)行的機(jī)器代碼、可解釋代碼、字節(jié)代碼、固件和/或代碼。介質(zhì)114還配置有通過執(zhí)行指令116來創(chuàng)建、修改、參考和/或以其它方式用于技術(shù)效果的數(shù)據(jù)118。指令116和數(shù)據(jù)118配置它們駐留在其中的存儲(chǔ)器或其他存儲(chǔ)介質(zhì)114;當(dāng)該存儲(chǔ)器或其他計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)是給定計(jì)算機(jī)系統(tǒng)的功能部分時(shí),指令116和數(shù)據(jù)118還配置該計(jì)算機(jī)系統(tǒng)。在一些實(shí)施例中,數(shù)據(jù)118的一部分表示諸如產(chǎn)品特性、庫存、物理測(cè)量、設(shè)置、圖像、讀數(shù)、目標(biāo)、體積等真實(shí)世界項(xiàng)目。這樣的數(shù)據(jù)也通過備份、恢復(fù)、提交、中止、重新格式化和/或其他技術(shù)操作來轉(zhuǎn)換。
盡管實(shí)施例可以被描述為被實(shí)現(xiàn)為由計(jì)算設(shè)備(例如,通用計(jì)算機(jī)、蜂窩電話或游戲控制臺(tái))中的一個(gè)或多個(gè)處理器執(zhí)行的軟件指令,但是這樣的描述并不表示窮盡所有可能的實(shí)施例。本領(lǐng)域技術(shù)人員將理解,相同或類似的功能也可以通常直接在硬件邏輯中全部或部分地實(shí)現(xiàn),以提供相同或相似的技術(shù)效果。備選地或除了軟件實(shí)現(xiàn)之外,本文所描述的技術(shù)功能可以至少部分地由一個(gè)或多個(gè)硬件邏輯部件執(zhí)行。例如,并且在不排除其他實(shí)現(xiàn)的情況下,實(shí)施例可以包括硬件邏輯部件,諸如現(xiàn)場(chǎng)可編程門陣列(FPGA)、專用集成電路(ASIC)、專用標(biāo)準(zhǔn)產(chǎn)品(ASSP)、系統(tǒng)級(jí)-芯片部件(SOC)、復(fù)雜可編程邏輯器件(CPLD)和類似部件。例如,實(shí)施例的部件可以基于它們的輸入、輸出和/或它們的技術(shù)效果而被分組成交互功能模塊。
在所示的環(huán)境100中,諸如源代碼和/或可執(zhí)行代碼等代碼126可以駐留在介質(zhì)112中和/或駐留在其他硬件中,例如作為固件。代碼可以包括對(duì)例程的調(diào)用,并且可以包括諸如對(duì)象、列表、樹、其他鏈接結(jié)構(gòu)和/或其他構(gòu)造(有時(shí)被稱為“偽像”)等數(shù)據(jù)結(jié)構(gòu)。操作系統(tǒng)142和其他內(nèi)核包括代碼126。應(yīng)用也包括代碼126。本文廣泛使用術(shù)語“應(yīng)用”。應(yīng)用的一些示例包括商業(yè)軟件、工業(yè)軟件、醫(yī)療應(yīng)用、協(xié)作軟件、提供對(duì)數(shù)據(jù)庫的訪問的軟件、顯示可編輯信息的軟件、游戲、應(yīng)用商店購買、軟件即服務(wù)代碼、中間件、內(nèi)核、服務(wù)器代碼和其他后端應(yīng)用程序、以及Web瀏覽器和腳本或由他們作為插件運(yùn)行的其他代碼。源代碼以一種或多種編程語言編寫。從給定編程語言中的源創(chuàng)建的可執(zhí)行代碼有時(shí)也被稱為以該語言,但可執(zhí)行代碼被理解為包括機(jī)器代碼。如本文所使用的,“機(jī)器代碼”是指針對(duì)特定硬件架構(gòu)定制或針對(duì)特定虛擬機(jī)架構(gòu)定制的低級(jí)代碼或計(jì)算機(jī)代碼。機(jī)器代碼的一些常見示例包括編譯代碼、微代碼、固件代碼、二進(jìn)制代碼、本機(jī)代碼、目標(biāo)代碼、匯編語言代碼、p代碼、字節(jié)代碼、動(dòng)態(tài)鏈接庫代碼和公共中間語言代碼。
在附圖中示出和/或在文中討論的代碼126、數(shù)據(jù)118和其他項(xiàng)目可以各自部分地或完全地駐留在一個(gè)或多個(gè)硬件介質(zhì)內(nèi),從而將這些介質(zhì)配置為超出“正?!?即,最小公分母)交互固有的所有硬件-軟件協(xié)作操作。
除了處理器110(CPU、ALU、FPU和/或GPU)和存儲(chǔ)器/存儲(chǔ)介質(zhì)112之外,操作環(huán)境還可以包括其它硬件,例如主板128中的硬件、機(jī)架130、一個(gè)或多個(gè)機(jī)箱132、總線、電源和/或電池和/或其他功率源134、PCIe設(shè)備136、NVDIMM 138、有線和無線網(wǎng)絡(luò)接口卡、加速器和顯示器140,其各自的操作在本文中以本領(lǐng)域技術(shù)人員不明顯的程度描述。NVDIMM包含易失性存儲(chǔ)器和非易失性存儲(chǔ)器。NVDIMM的易失性存儲(chǔ)器中的數(shù)據(jù)可以備份到該NVDIMM的非易失性存儲(chǔ)器。非易失性存儲(chǔ)器部件的存在是區(qū)分NVDIMM與DIMM的特性。關(guān)于存儲(chǔ)設(shè)備性能,具有NVDIMM的系統(tǒng)102可以具有四個(gè)不同的存儲(chǔ)設(shè)備性能層,例如處理器110高速緩存、NVDIMM易失性存儲(chǔ)器、RAM盤或SSD、以及硬盤或網(wǎng)絡(luò)附接存儲(chǔ)。將NVDIMM添加到系統(tǒng)架構(gòu)可以在降低的等待時(shí)間和增加的吞吐量中提供數(shù)量級(jí)的增益。
在一些實(shí)施例中,諸如人類用戶I/O設(shè)備(屏幕、鍵盤、鼠標(biāo)、平板電腦、麥克風(fēng)、揚(yáng)聲器、運(yùn)動(dòng)傳感器等)等外圍設(shè)備106將存在與一個(gè)或多個(gè)處理器110和存儲(chǔ)器可操作地通信。然而,實(shí)施例還可以深深嵌入在諸如物聯(lián)網(wǎng)的一部分的技術(shù)系統(tǒng)中,使得沒有人類用戶104與該實(shí)施例直接地和語言地交互。軟件過程可以是用戶104。
在一些實(shí)施例中,系統(tǒng)包括在網(wǎng)絡(luò)中物理連接和/或無線耦合的多個(gè)計(jì)算機(jī)或其他設(shè)備102。聯(lián)網(wǎng)接口設(shè)備可以使用例如可以存在于給定計(jì)算機(jī)系統(tǒng)中的分組交換網(wǎng)絡(luò)接口卡、無線收發(fā)器或電話網(wǎng)絡(luò)接口的部件來提供對(duì)網(wǎng)絡(luò)108的接入。然而,實(shí)施例還可以通過直接存儲(chǔ)器訪問、可移除非易失性介質(zhì)或其他信息存儲(chǔ)-檢索和/或傳輸方法來傳達(dá)技術(shù)數(shù)據(jù)和/或技術(shù)指令,或者計(jì)算機(jī)系統(tǒng)中的實(shí)施例可以在不與其他計(jì)算機(jī)系統(tǒng)。
一些實(shí)施例在“云”計(jì)算環(huán)境和/或“云”存儲(chǔ)環(huán)境中操作,其中計(jì)算服務(wù)不是所有的,而是按需提供的。云服務(wù)器在這里用作示例,但是本教導(dǎo)也可以應(yīng)用于在其他能力中使用的服務(wù)器,例如LAN服務(wù)器、數(shù)據(jù)庫服務(wù)器、與互聯(lián)網(wǎng)物理地和/或通過防火墻或安全軟件分離的數(shù)據(jù)中心服務(wù)器、服務(wù)器集群和其他服務(wù)器,這些服務(wù)器不是完全(并且在一些情況下甚至不是部分地)被技術(shù)人員視為云服務(wù)器。在易失性存儲(chǔ)器中具有數(shù)據(jù)并且由于間歇或中斷的功率而潛在地遭受劣化、損壞或這樣的數(shù)據(jù)丟失的任何服務(wù)器可以從本技術(shù)的實(shí)現(xiàn)中受益。
在附圖中可以以輪廓形式示出一個(gè)或多個(gè)項(xiàng)目,以強(qiáng)調(diào)它們不一定是所示出的操作環(huán)境或所有實(shí)施例的一部分,而是可以與操作環(huán)境中的項(xiàng)目或如本文所討論的一些實(shí)施例互操作。在任何附圖或任何實(shí)施例中不一定需要不是以輪廓形式的項(xiàng)目。具體地,為了方便提供圖1;包括圖1中的項(xiàng)目并不表示該項(xiàng)目或該項(xiàng)目的描述用途在當(dāng)前創(chuàng)新之前是已知的。
主板示例
一些示例包括以與圖2中的圖一致的架構(gòu)耦合的部件。在這個(gè)意義上,“與...一致”表示可以存在附圖中未示出的附加耦合或連接或部件,所示的耦合或連接可以是單向的或雙向的,所示的耦合或連接可以包括在圖中未明確示出的邏輯門,并且特定實(shí)現(xiàn)可以具有電壓電平、電阻器、特定引腳分配和/或在圖中未明確示出的特定芯片。圖所示的給定部件可以使用一個(gè)或多個(gè)芯片和/或總線來實(shí)現(xiàn)。
在與圖2一致的一個(gè)示例實(shí)現(xiàn)中,主板128是服務(wù)器刀片主板,基板控制器210包括BMC,平臺(tái)控制器中樞212包括PCH,數(shù)據(jù)保存狀態(tài)機(jī)214包括CPLD。在圖2中用線表示耦合(例如,連接),應(yīng)當(dāng)理解,給定的線可以表示一個(gè)或多個(gè)連接。例如,在一些實(shí)現(xiàn)中,PCH 212和數(shù)據(jù)保存狀態(tài)機(jī)210之間的線表示每個(gè)部件的多個(gè)引腳之間的電連接,如其他圖所示。通常,圖2的線示意性地表示一個(gè)或多個(gè)電源、接地、命令、數(shù)據(jù)和/或其它連接。本領(lǐng)域技術(shù)人員還將理解,在圖中未明確示出的附加連接也可以存在于給定實(shí)現(xiàn)中,并且將容易地提供這樣的添加作為實(shí)現(xiàn)細(xì)節(jié)。
在一些實(shí)施例中,針對(duì)與圖2架構(gòu)的相應(yīng)部分相關(guān)聯(lián)的事件如下實(shí)現(xiàn)數(shù)據(jù)保存觸發(fā):
A:電池應(yīng)急能力
B:12V電壓降
C:明確的OS關(guān)閉
D:軟/硬關(guān)機(jī)
一些示例包括用于系統(tǒng)102中的主板128的易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200。子系統(tǒng)200包括易失性存儲(chǔ)器設(shè)備共享功率源耦合201,易失性存儲(chǔ)器設(shè)備共享功率源耦合201當(dāng)耦合到共享功率源202和/或204并且還通過主板128耦合到易失性存儲(chǔ)器設(shè)備110、136和/或138時(shí)向易失性存儲(chǔ)器設(shè)備提供操作功率。在本示例中,易失性存儲(chǔ)器設(shè)備共享功率源耦合201至少包括熱交換控制器208和從共享功率源向易失性存儲(chǔ)器設(shè)備傳送功率的跡線203。在本示例中,每個(gè)易失性存儲(chǔ)器設(shè)備是從共享功率源接收功率的至少兩個(gè)單獨(dú)可插式設(shè)備之一。NVDIMM和PCIe設(shè)備是可插式設(shè)備。在這個(gè)意義上,CPU也被認(rèn)為是“可插式”設(shè)備,即使它們被焊接到主板,因?yàn)樗鼈冊(cè)谳^早的時(shí)間被插入主板。相比之下,軌跡203是不可插式的,而是從它們創(chuàng)建的時(shí)刻起是主板的整體部分。
所示的子系統(tǒng)200還包括數(shù)據(jù)保存觸發(fā)耦合205,數(shù)據(jù)保存觸發(fā)耦合205在耦合到易失性存儲(chǔ)器設(shè)備并且被觸發(fā)時(shí)向易失性存儲(chǔ)器設(shè)備發(fā)送數(shù)據(jù)保存命令。在本示例中,數(shù)據(jù)保存觸發(fā)耦合205至少包括攜帶數(shù)據(jù)保存命令信號(hào)的跡線203。
所示的子系統(tǒng)200還包括數(shù)據(jù)保存觸發(fā)控制器207,數(shù)據(jù)保存觸發(fā)控制器207操作以觸發(fā)數(shù)據(jù)保存觸發(fā)耦合205。在本示例中,數(shù)據(jù)保存觸發(fā)控制器207至少包括數(shù)據(jù)保存狀態(tài)機(jī)214和平臺(tái)控制器中樞212。當(dāng)發(fā)生以下表示的(a)至(d)中的至少一個(gè)條件時(shí),數(shù)據(jù)保存觸發(fā)控制器207觸發(fā)數(shù)據(jù)保存操作。給定實(shí)施例可以根據(jù)特定實(shí)施例僅檢測(cè)和響應(yīng)這些條件中的一個(gè),或這些條件中的任何兩個(gè),或這些條件中的任何三個(gè),或者所有四個(gè)條件。給定實(shí)施例還可以執(zhí)行響應(yīng)于一個(gè)或多個(gè)其他條件而觸發(fā)的數(shù)據(jù)保存操作。
條件(a)是可編程時(shí)間量逝去,易失性存儲(chǔ)器設(shè)備由不由AC功率源驅(qū)動(dòng)的源供電。在所示的架構(gòu)中,這涉及由機(jī)箱電池204或由例如由本地應(yīng)急發(fā)電機(jī)(未示出)饋電的電源202驅(qū)動(dòng)的設(shè)備110、136、138中的任何或全部??梢灶愃频厥褂脵C(jī)架130電池。
條件(b)是易失性存儲(chǔ)器設(shè)備共享功率源上的電壓電平降低到小于正常操作功率但仍然足以在數(shù)據(jù)保存操作期間為易失性存儲(chǔ)器設(shè)備供電的值。在示例架構(gòu)中,這涉及到去往并且通過熱插拔控制器208的電壓降。
條件(c)是向數(shù)據(jù)保存觸發(fā)控制器通知操作系統(tǒng)關(guān)閉命令。在示例架構(gòu)中,這涉及由機(jī)箱管理器206發(fā)送的通知;關(guān)閉通知可以類似地由機(jī)架130管理器提供。
條件(d)是在沒有操作系統(tǒng)關(guān)閉命令的情況下向數(shù)據(jù)保存觸發(fā)控制器通知明確的數(shù)據(jù)保存命令。在示例架構(gòu)中,這涉及從平臺(tái)控制器中樞212到CPU 110的ADR信號(hào)。在一些示例中,它還可以涉及來自機(jī)架管理器和/或機(jī)箱管理器的數(shù)據(jù)保存命令。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200的一些實(shí)施例中,易失性存儲(chǔ)器設(shè)備包括NVDIMM 138,易失性存儲(chǔ)器設(shè)備共享功率源耦合201包括NVDIMM插槽209,并且共享功率源包括以下中的至少一個(gè):機(jī)箱電池204、共享機(jī)架級(jí)電池系統(tǒng)204、柴油發(fā)電機(jī)216、天然氣發(fā)電機(jī)216、另一發(fā)電機(jī)216。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200的一些實(shí)施例中,易失性存儲(chǔ)器設(shè)備包括沒有專用超級(jí)電容器并且也沒有專用電池的NVDIMM 138。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200的一些實(shí)施例中,易失性存儲(chǔ)器設(shè)備包括PCIe設(shè)備136,并且易失性存儲(chǔ)器設(shè)備共享功率源耦合包括主板上的PCIe軌道211。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200的一些實(shí)施例中,數(shù)據(jù)保存觸發(fā)控制器207操作以在可編程量的時(shí)間過去時(shí)觸發(fā)數(shù)據(jù)保存觸發(fā)耦合,易失性存儲(chǔ)器設(shè)備由機(jī)箱電池204供電,并且基于機(jī)箱電池功率估計(jì)來預(yù)先編程可編程時(shí)間量。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200的一些實(shí)施例中,數(shù)據(jù)保存觸發(fā)控制器207操作以在易失性存儲(chǔ)器設(shè)備共享功率源上的功率電平降低到低于12V正常操作功率到足以在數(shù)據(jù)保存操作期間為易失性存儲(chǔ)器設(shè)備供電的10.8V與11.5V之間的電平時(shí)觸發(fā)數(shù)據(jù)保存觸發(fā)耦合。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200的一些實(shí)施例中,數(shù)據(jù)保存觸發(fā)控制器207操作以在沒有操作系統(tǒng)關(guān)閉命令的情況下向數(shù)據(jù)保存觸發(fā)控制器通知明確數(shù)據(jù)保存命令時(shí)觸發(fā)數(shù)據(jù)保存觸發(fā)耦合。
一些示例包括一種用于服務(wù)器系統(tǒng)102中的主板128的易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200。子系統(tǒng)200包括具有電源202和框架管理器206的框架213??蚣?13包括至少一個(gè)機(jī)箱132和/或至少一個(gè)機(jī)架130。多個(gè)易失性存儲(chǔ)器設(shè)備功率源耦合201耦合到框架電源202和相應(yīng)的易失性存儲(chǔ)器設(shè)備組,每個(gè)易失性存儲(chǔ)器設(shè)備組包括至少一個(gè)易失性存儲(chǔ)器設(shè)備110、136和/或138。數(shù)據(jù)保存觸發(fā)耦合205當(dāng)耦合到易失性存儲(chǔ)器設(shè)備中的至少一個(gè)并且被觸發(fā)時(shí)向易失性存儲(chǔ)器設(shè)備中的至少一個(gè)發(fā)送數(shù)據(jù)保存命令。當(dāng)以下條件中的至少一個(gè)發(fā)生時(shí),數(shù)據(jù)保存觸發(fā)控制器207操作以觸發(fā)數(shù)據(jù)保存觸發(fā)耦合:(a)在框架電源未接收AC功率的情況下,可編程時(shí)間量逝去;(b)框架電源將輸出電壓降低到小于正常操作電平但仍然足以在數(shù)據(jù)保存操作期間為易失性存儲(chǔ)器設(shè)備供電的值;(c)向數(shù)據(jù)保存觸發(fā)控制器通知操作系統(tǒng)關(guān)閉命令;或(d)在沒有操作系統(tǒng)關(guān)閉命令的情況下,向數(shù)據(jù)保存觸發(fā)控制器通知明確的數(shù)據(jù)保存命令。在一些示例中,服務(wù)器系統(tǒng)102的特征還在于,每個(gè)易失性存儲(chǔ)器設(shè)備沒有專用超級(jí)電容器并且也沒有專用電池。也就是說,所討論的易失性存儲(chǔ)器設(shè)備僅從每個(gè)易失性存儲(chǔ)器設(shè)備與至少一個(gè)其它易失性存儲(chǔ)器設(shè)備共享的源供電。具有專用功率源的附加易失性存儲(chǔ)器設(shè)備也可以存在于服務(wù)器中,但它們不是易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)的一部分。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200的一些實(shí)施例中,數(shù)據(jù)保存觸發(fā)控制器207的至少一部分駐留在框架管理器206中。例如,管理器206中檢測(cè)OS關(guān)閉的代碼和/或硬件命令在一些實(shí)施例中可以被認(rèn)為是數(shù)據(jù)保存觸發(fā)控制器207的一部分。此外,管理器206中檢測(cè)AC功率損失、預(yù)測(cè)電池204功率可用性和/或以其他方式檢測(cè)或?qū)崿F(xiàn)觸發(fā)條件(a)-(d)中的一個(gè)或多個(gè)的代碼和/或硬件在一些實(shí)施例中可以被認(rèn)為是數(shù)據(jù)保存觸發(fā)控制器207的一部分。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)的一些實(shí)施例中,易失性存儲(chǔ)器設(shè)備功率源耦合205包括以下中的至少一個(gè):NVDIMM插槽209、PCIe軌道211。
在一些實(shí)施例中,框架213包括機(jī)箱132,電源204是機(jī)箱電源,并且易失性存儲(chǔ)器設(shè)備中的至少一個(gè)駐留在耦合到機(jī)箱132的刀片服務(wù)器102上。在一些實(shí)施例中,框架213包括機(jī)架130,電源204是機(jī)架電源,并且至少一個(gè)易失性存儲(chǔ)設(shè)備駐留在耦合到機(jī)架130的機(jī)架式服務(wù)器102上。
在易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng)200的一些實(shí)施例中,框架數(shù)據(jù)保存觸發(fā)耦合205耦合到主板128上的所有易失性存儲(chǔ)器設(shè)備,并且當(dāng)被觸發(fā)時(shí),耦合205向所有易失性存儲(chǔ)器發(fā)送數(shù)據(jù)保存命令設(shè)備。
方法
圖3示出了流程圖300中的一些過程實(shí)施例。在一些實(shí)施例中,可以例如通過需要很少或沒有同時(shí)的實(shí)況用戶輸入的代碼和/或硬件來自動(dòng)執(zhí)行附圖中所示或以其它方式公開的技術(shù)過程。除非另有說明,否則還可以部分地自動(dòng)地和部分地手動(dòng)地執(zhí)行過程。在給定的實(shí)施例中,過程的零個(gè)或多個(gè)步驟可以重復(fù),可能使用不同的參數(shù)或數(shù)據(jù)來操作。實(shí)施例中的步驟也可以以與圖3或這里其他示例所示的順序不同的順序來完成。步驟可以以連續(xù)、部分重疊的方式或完全并行地執(zhí)行。在過程期間圖3被遍歷和/或其中執(zhí)行步驟的順序和程度可以從過程的一個(gè)執(zhí)行到過程的另一執(zhí)行不同。流程圖遍歷順序和范圍還可以從一個(gè)過程實(shí)施例到另一過程實(shí)施例變化。只要所執(zhí)行的過程是可操作的并且符合至少一個(gè)權(quán)利要求,步驟也可以被省略、組合、重命名、重新分組或以其他方式偏離給定示例的流程。
本文提供了實(shí)施例以幫助說明本技術(shù)的各方面,但是本文獻(xiàn)中給出的實(shí)施例不描述所有可能的實(shí)施例。實(shí)施例不限于本文提供的具體實(shí)現(xiàn)、布置、顯示、特征、方法或場(chǎng)景。給定的實(shí)施例可以包括例如附加的或不同的技術(shù)特征、機(jī)制和/或數(shù)據(jù)結(jié)構(gòu),并且可以另外偏離本文提供的示例。
在一些示例中,用于盡管斷電保存數(shù)據(jù)的數(shù)據(jù)保存技術(shù)方法包括檢測(cè)302計(jì)算系統(tǒng)102中的數(shù)據(jù)保存觸發(fā)條件304,向易失性存儲(chǔ)器設(shè)備發(fā)送326數(shù)據(jù)保存命令330,以及從共享功率源向易失性存儲(chǔ)器設(shè)備提供324功率。共享功率源是在至少兩個(gè)易失性存儲(chǔ)器設(shè)備之間共享的功率源,在共享時(shí)它們都不具有有效的專用功率源。檢測(cè)302觸發(fā)條件可以包括檢測(cè)指定時(shí)間段306(其可以基于電池特性被預(yù)先編程308)的AC功率損失,檢測(cè)故意產(chǎn)生的310電壓降312,檢測(cè)OS關(guān)閉318,和/或檢測(cè)將數(shù)據(jù)保存到非易失性存儲(chǔ)器中的明確命令322。OS關(guān)閉和明確的數(shù)據(jù)保存可以實(shí)現(xiàn)為通知320。
在一些示例中,數(shù)據(jù)保存技術(shù)方法還包括易失性存儲(chǔ)器設(shè)備,其接收328執(zhí)行332數(shù)據(jù)保存操作334的數(shù)據(jù)保存命令,即,將來自易失性存儲(chǔ)器122的數(shù)據(jù)保存到非易失性存儲(chǔ)器124中的操作。利用從共享功率源提供324的功率執(zhí)行數(shù)據(jù)保存操作。
在數(shù)據(jù)保存技術(shù)方法的一些示例中,發(fā)送326數(shù)據(jù)保存信號(hào)330包括將電源輸出降低310到小于正常操作功率314但仍然足以在數(shù)據(jù)保存操作334期間為易失性存儲(chǔ)器設(shè)備供電的值316。例如,電壓可以從12V正常水平314降低310到在12V的10%內(nèi)或者至少9.6V內(nèi)的較低水平316。在一些示例中,降低310使得電壓足夠低,以使得控制器能夠觸發(fā)數(shù)據(jù)保存操作,但是不至于太低而不能為數(shù)據(jù)保存操作供電。
在一些示例中,該過程包括降低348電源202的輸出瓦數(shù),從而提供用于長時(shí)間操作電池的安全機(jī)制。
在一些示例中,從共享功率源向易失性存儲(chǔ)器設(shè)備提供功率324包括執(zhí)行用于協(xié)調(diào)340電壓逐步降低342的至少一種方法。下面提供一些示例。
電源協(xié)調(diào)方法1
當(dāng)AC損失時(shí),通知機(jī)箱132,并且其將刀片功率降低到刀片服務(wù)器可以在電池上運(yùn)行延長的時(shí)間的點(diǎn),例如,至少足夠長以用于NVDIMM備份334的時(shí)間量加上該量的至少六分之一的緩沖。如果AC在35秒內(nèi)沒有返回,則一些實(shí)施例關(guān)閉電源202。在一些實(shí)施例中,在AC損失之后35秒,電源將查看356它提供的輸出功率。如果它低于75瓦特(或小于正常瓦數(shù)的另一可配置的數(shù)字),則電源將允許高達(dá)200秒運(yùn)行時(shí)間以允許NVDIMM備份。
電源協(xié)調(diào)方法2
在一些實(shí)施例中,在AC損失之后35秒,電源將將其電壓降低到約11.5V,以觸發(fā)354NVDIMM備份334。如果電源不同時(shí)降低348其電壓,則降低其電壓的電源最后將接管所有負(fù)載,并且可能過流并鎖定。避免這種情況的一種方法是,電源監(jiān)測(cè)356在AC損失之后的定時(shí),使得它們?cè)诖笾孪嗤臅r(shí)間都降低電壓。此外,它們可以在1-2秒的窗口上降低電壓,并且當(dāng)它們擊中最大輸出電流時(shí),它們可以延遲340降低斜坡以使其他電源202趕上。例如,使用6個(gè)電源,電源1首先開始降低電壓。假定11.8V的電源1達(dá)到其最大輸出電流131A。它將保持在11.8V,而其他電源趕上并達(dá)到11.8V。此時(shí),其他電源202將再次共享負(fù)載,因此電源1可以將其電壓下降恢復(fù)310到11.5V。
在一些實(shí)施例中,電源202將具有將被所有電源監(jiān)測(cè)的稱為VDROP的公共信號(hào)。低=VDROP,HI=正常輸出電壓。為了彼此協(xié)調(diào)340,在AC功率損失之后,電源啟動(dòng)定時(shí)器。定時(shí)可能在電源之間以10毫秒為單位。第一電源達(dá)到35秒會(huì)將其電壓下降至11.5V,同時(shí)將VDROP拉低。其余電源將看到VDROP變低,并也將立即降低其輸出。電源具有可以在適當(dāng)時(shí)禁用VDROP的寄存器。這種協(xié)調(diào)340還可以使用機(jī)箱管理器206來實(shí)現(xiàn),其中機(jī)箱管理器在AC損失之后執(zhí)行定時(shí)并且將VDROP拉低。
在數(shù)據(jù)保存技術(shù)方法的一些示例中,NVDIMM響應(yīng)于數(shù)據(jù)保存命令330執(zhí)行336異步DRAM復(fù)位338(ADR)。ADR操作可以遵循不可屏蔽中斷(NMI)或其它內(nèi)務(wù)處理操作,其將來自CPU 110高速緩存的數(shù)據(jù)保存到NVDIMM易失性存儲(chǔ)器中。通過NMI操作將數(shù)據(jù)從處理器高速緩存刷新358到NVDIMM易失性儲(chǔ)存庫中,然后通過ADR操作將數(shù)據(jù)從那里復(fù)制到NVDIMM的非易失性存儲(chǔ)器中。
在一些示例中,向易失性存儲(chǔ)器設(shè)備提供324功率包括維持到PCIe軌道211的功率和/或維持344到DIMM軌道209的功率,然后在數(shù)據(jù)保存操作334完成之后移除346到軌道的功率。在一些示例中,在命令的數(shù)據(jù)保存操作334完成之后,從易失性存儲(chǔ)器設(shè)備移除346功率,并且對(duì)計(jì)算系統(tǒng)352復(fù)位350并且(重新)啟動(dòng)352。
配置的媒體
一些實(shí)施例包括配置的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112。介質(zhì)112可以包括磁盤(磁、光或其它)、RAM、EEPROM或其它ROM、和/或其他可配置存儲(chǔ)器,特別包括計(jì)算機(jī)可讀介質(zhì)(與單純傳播的信號(hào)相反)。被配置的存儲(chǔ)介質(zhì)可以特別地是可移除存儲(chǔ)介質(zhì)114,諸如CD、DVD或閃存??梢允强梢瞥幕虿豢梢瞥牟⑶铱梢允且资缘幕蚍且资缘耐ㄓ么鎯?chǔ)器可以被配置成如下實(shí)施例:其中使用從可移除介質(zhì)114和/或另一源讀取的數(shù)據(jù)118和指令116形式的偽像作為網(wǎng)絡(luò)連接以形成配置的介質(zhì)。在一些示例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)114被配置有數(shù)據(jù)和指令,指令當(dāng)由至少一個(gè)處理器110和/或其他可編程部件(例如,CPLD)執(zhí)行時(shí)引起可編程部件執(zhí)行本文中所描述的部分或全部技術(shù)過程。具體地,可以在由此編程的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的控制或影響下執(zhí)行圖3所示或本文另外公開的任何步驟、組步驟或步驟序列的執(zhí)行。
為了公開的目的,在“配置的媒體”標(biāo)題下的討論被認(rèn)為在“過程”標(biāo)題下被復(fù)制,并且在“過程”標(biāo)題下的討論被認(rèn)為在該“配置的媒體”標(biāo)題下被復(fù)制。此外,在本公開中的其它地方,在兩個(gè)標(biāo)題下也討論了方法。標(biāo)題只是為了方便;但是它們不限制本文的教導(dǎo)的范圍或內(nèi)容。
附加示例
下面提供了附加的細(xì)節(jié)和設(shè)計(jì)考慮。與本文的其他示例一樣,在給定實(shí)施例中,所描述的特征可以單獨(dú)使用和/或組合使用,或者根本不使用。
本領(lǐng)域技術(shù)人員將理解,實(shí)現(xiàn)細(xì)節(jié)可以涉及特定代碼,諸如特定API、特定存儲(chǔ)器地址、特定屬性和對(duì)象名稱、以及特定樣本程序,因此不需要出現(xiàn)在每個(gè)實(shí)施例中。本領(lǐng)域技術(shù)人員還將理解,在討論細(xì)節(jié)時(shí)使用的程序標(biāo)識(shí)符和一些其他術(shù)語是實(shí)現(xiàn)特定的,因此不需要涉及每個(gè)實(shí)施例。盡管如此,盡管它們不一定需要存在于這里,但是提供這些細(xì)節(jié)是因?yàn)樗鼈兛梢酝ㄟ^提供上下文幫助一些讀者和/或可以示出本文所討論的技術(shù)的很多可能實(shí)現(xiàn)中的幾個(gè)。
本文中的一些討論源自一些云服務(wù)器/微軟云服務(wù)器規(guī)范文檔,其包括對(duì)由微軟公司(微軟公司的標(biāo)記)實(shí)現(xiàn)的技術(shù)的討論。該軟件和/或文檔的方面與本文中所描述的一些實(shí)施例的方面一致或以其它方式示出。然而,將理解,這樣的文檔和/或?qū)崿F(xiàn)選擇不一定限制本文所描述的任何示例或?qū)嵤├姆秶?,并且同樣地,微軟產(chǎn)品代碼和部件和/或它們的文檔可能包含在這些實(shí)施例和實(shí)施例的范圍之外的特征。還將理解,本文中的一些討論部分地被提供為對(duì)不一定是本領(lǐng)域普通技術(shù)的讀者的幫助,并且因此可以包含和/或省略下面的詳述不是嚴(yán)格地需要用于支持本公開的細(xì)節(jié)。
在一些示例中,NVDIMM 138包括板上DRAM、板上NAND閃存和將數(shù)據(jù)從DRAM復(fù)制到NAND閃存的板載控制器。在一些實(shí)施例中,可以在NVDIMM和/或PCIe設(shè)備的正常操作功率源和備份操作功率源之間進(jìn)行區(qū)分。在一些實(shí)施例中,NVDIMM在正常操作期間從主板128供電。在一些實(shí)施例中,在NVDIMM易失性存儲(chǔ)器到NVDIMM的非易失性存儲(chǔ)器的備份期間,NVDIMM可以由專用超級(jí)電容器或?qū)S秒姵毓╇?,即,給定的超級(jí)電容器/電池專用于給定的NVDIMM以僅由該NVDIMM使用。在一些實(shí)施例中,超級(jí)電容器可以與NVDIMM相距12-18英寸,通過電纜連接到NVDIMM。然而,在一些這些實(shí)施例中,專用能量源使用在NVDIMM及其主板的幾英寸內(nèi)的房地產(chǎn),因此比距離主板更遠(yuǎn)或更遠(yuǎn)的不動(dòng)產(chǎn)更有價(jià)值。超級(jí)電容器也可以施加NVDIMM本身不需要的冷卻要求。本文中所描述的一些實(shí)施例通過減少或移除使用專用超級(jí)電容器來為那些NVDIMM供電而提供NVDIMMS的低等待時(shí)間DRAM速度寫入,而沒有過度供應(yīng)SSD。相反,利用在多個(gè)NVDIMM中共享的機(jī)箱級(jí)電池204來提供合適的功率,使得不需要昂貴的超級(jí)電容器。
一些示例利用遠(yuǎn)程或機(jī)箱級(jí)電池204來為NVDIMM保存到閃存操作334供電。一些示例以以下一種或多種方式改變主板的電源排序:一些電源軌在一個(gè)時(shí)段保持活躍344和其他電源軌立即斷電346;管理處理器有權(quán)主張ADR;電池輸出電壓可以在交流電源丟失設(shè)定的時(shí)間段后通過電壓調(diào)節(jié)來調(diào)用310ADR。圖4示出了用于NVDIMM支持的CPLD功率測(cè)序的時(shí)序圖,示出了一些實(shí)施例的操作和固件編碼。
在一些示例中,F(xiàn)W支持RDIMM和NVDIMM的任何組合。一些實(shí)施例支持8GB和16GB NVDIMM。在一些示例中,一個(gè)HDD被重新用于容納電容器。一些包括在低電池容量下自動(dòng)觸發(fā)NVDIMM備份到閃存。一些示例實(shí)現(xiàn)功率安全的NVDIMM和PCIe器件。一些在云服務(wù)器中實(shí)現(xiàn)強(qiáng)大的NVDIMM和PCIe設(shè)備。一些云服務(wù)器架構(gòu)提供非限制性示例。
功率操作示例
本公開的該部分集中于云服務(wù)器上的NVDIMM和PCIe設(shè)備的功率安全實(shí)現(xiàn)。“功率安全操作”是可配置數(shù)據(jù)保存觸發(fā)功能的示例。此部分從云服務(wù)器機(jī)箱基礎(chǔ)結(jié)構(gòu)上的簡(jiǎn)要背景開始,隨后是功率安全NVDIMM/PCIe設(shè)備實(shí)現(xiàn)的端到端描述。討論了用于在示例云服務(wù)器機(jī)箱中支持這些功率安全器件的架構(gòu)、物理、機(jī)械、電、熱和軟件(例如,BMC/BIOS)實(shí)現(xiàn)方面以及NVDIMM特性。
圖5示出了云服務(wù)器和機(jī)箱基礎(chǔ)結(jié)構(gòu)的架構(gòu)上下文。諸如機(jī)箱管理器等框架管理器206向刀片502或其他服務(wù)器102系統(tǒng)/子系統(tǒng)的控制器210傳送查詢。管理器206管理PSU 202和UPS 204的共享池。因此,給定示例中的云服務(wù)器機(jī)箱包括一定數(shù)目的服務(wù)器或刀片(諸如24)、電源202和電池204的共享池以及機(jī)箱管理器206(也稱為機(jī)箱管理器服務(wù)器)。在本示例中,機(jī)箱管理器206通過串行接口使用IPMI與基板管理控制器(BMC)210通信,并且通過I2C接口使用PMBUS與電源基礎(chǔ)設(shè)施(PSU/電池)通信。機(jī)箱管理器206使用這些通信接口來從刀片和電源/電池查詢健康和狀態(tài)信息。
一些云服務(wù)器具有向服務(wù)器傳遞12V電源電壓的熱插拔控制器(HSC)208。在電源故障期間,機(jī)箱級(jí)UPS電池204自動(dòng)接合,并且服務(wù)器將無縫地接收12V輸入電壓。機(jī)箱級(jí)電池主要用于在公用事業(yè)AC損失(停電)之后作為柴油發(fā)電機(jī)(DG)功率或其它本地應(yīng)急發(fā)電機(jī)功率的轉(zhuǎn)換機(jī)構(gòu)。
在一些實(shí)施例中,在等待DG轉(zhuǎn)換時(shí)間306(例如,5-20秒)之后啟動(dòng)354功率安全操作。在一些情況下,DG轉(zhuǎn)換時(shí)間為17s(17秒),并且云服務(wù)器電池被設(shè)置為維持初級(jí)DG故障和隨后轉(zhuǎn)移到次級(jí)DG。本示例轉(zhuǎn)換為至少34秒(2*17秒)的電池保持時(shí)間段(足夠承受全機(jī)箱負(fù)載的容量)。
每個(gè)云服務(wù)器刀片可以包括一定數(shù)目的功率安全器件,例如NVDIMM和PCIe設(shè)備(如RAID控制器、SSD)。這些功率安全器件通常具有(在DRAM/SRAM中)易失性狀態(tài),其可能在正常操作期間不會(huì)立即持續(xù)到非易失性介質(zhì),以便改善訪問等待時(shí)間。這樣的功率安全器件具有相關(guān)的保持時(shí)間,用于在功率損失事件之后保持其易失性狀態(tài)(數(shù)據(jù)備份)。在功率安全器件的情況下的功率損失可以是公用事業(yè)中斷事件(以及隨后的DG故障)或另一功率網(wǎng)絡(luò)故障事件,例如PDU/變壓器故障、斷路器跳閘等。
在這些功率損失事件下的功率安全器件的操作保持時(shí)間可以例如使用來自以下的功率來提供:(i)本地能量存儲(chǔ)設(shè)備,例如電容或電池(通常嵌入在功率安全器件內(nèi)或直接附接到功率安全器件),和/或(ii)已經(jīng)作為云服務(wù)器機(jī)箱基礎(chǔ)設(shè)施的一部分可用的機(jī)箱級(jí)UPS電池。
一些云服務(wù)器支持這些模式的設(shè)備備份能量源。這些模式的能量源中的每一種都具有相關(guān)的可行性考慮。雖然本地能量存儲(chǔ)主要受物理空間和成本約束的限制,但機(jī)箱級(jí)電池具有相關(guān)聯(lián)的功率和能量限制。
文檔的該部分現(xiàn)在將描述使得功率安全器件能夠在功率損失之后成功地保存其易失性狀態(tài)并且在功率恢復(fù)時(shí)恢復(fù)狀態(tài)的一些云服務(wù)器基礎(chǔ)設(shè)施改變(在機(jī)箱、刀片和附帶軟件方面)。NVDIMM實(shí)現(xiàn)和功率安全PCIe設(shè)備實(shí)現(xiàn)被討論作為示例。
NVDIMM支持
NVDIMM支持的一些技術(shù)優(yōu)點(diǎn)
更高的性能:NVDIMM或非易失性DIMM允許在確保數(shù)據(jù)持久性的同時(shí)對(duì)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行快速訪問(與傳統(tǒng)SSD相比等待時(shí)間的數(shù)量級(jí)改進(jìn))。依賴或受益于低等待時(shí)間內(nèi)存寫入(例如,內(nèi)存數(shù)據(jù)庫提交、持久數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)緩存或事務(wù)日志)的應(yīng)用可以利用NVDIMM來優(yōu)化性能/美元。
較低的成本:今天,寫密集型(到持久存儲(chǔ))應(yīng)用通常過度提供SSD容量以實(shí)現(xiàn)耐力目標(biāo),導(dǎo)致成本增加,其可以使用NVDIMM來減少或避免。此外,一些云服務(wù)器利用機(jī)箱級(jí)電池替代昂貴的超級(jí)電容器以降低NVDIMM成本。
NVDIMM操作
一些云服務(wù)器將支持具有DDR3RDIMM DRAM和基于NAND閃存的持久備份的NVDIMM。這些DIMM中的一些具有由存儲(chǔ)器參考代碼(MRC)管理的制造商特定接口。NVDIMM與正常DDR3DRAM類似地執(zhí)行,直到SAVE信號(hào)322經(jīng)由PCH被驅(qū)動(dòng)到NVDIMM。在接收到SAVE(保存)信號(hào)時(shí),NVDIMM通常使用在DIMM模塊138內(nèi)的FPGA/ASIC NVDIMM控制器將DRAM中的數(shù)據(jù)備份334到NAND閃存。該NVDIMM保存或備份操作334旨在用于到刀片的功率損失的情況或基于明確的軟件請(qǐng)求322來使用。當(dāng)NVDIMM進(jìn)入這種狀態(tài)時(shí),它從操作系統(tǒng)142不再可用,直到隨后的刀片重啟352。在備份操作期間,NVDIMM可以如下被供電(i)使用使用系繩電纜連接到NVDIMM的外部超級(jí)電容器(或等效電池模塊),或(ii)使用使用來自主板的12V輔助電源的機(jī)箱級(jí)UPS電池。注意,在該備份/保存操作期間,除了NVDIMM之外,所有其他服務(wù)器部件(如CPU,HDD)可以被斷電346。
作為刀片重新啟動(dòng)過程的一部分,云服務(wù)器BIOS初始化NVDIMM。在該初始化期間,BIOS將通過與NVDIMM控制器通信來啟動(dòng)從NAND閃回回到DRAM(如果存在有效備份圖像)的數(shù)據(jù)的恢復(fù)。在OS 142獲得對(duì)服務(wù)器的控制之后,合適的設(shè)備驅(qū)動(dòng)器將暴露該NVDIMM存儲(chǔ)器區(qū)域以供系統(tǒng)軟件使用。
云服務(wù)器上的NVDIMM實(shí)現(xiàn)
本部分描述了用于實(shí)現(xiàn)功率安全NVDIMM的示例云服務(wù)器硬件和軟件實(shí)現(xiàn)。硬件實(shí)現(xiàn)的討論包括與NVDIMM相關(guān)的特征,諸如PCH、電源排序CPLD以及BMC、CPLD和PCH之間的信號(hào)。軟件實(shí)現(xiàn)的討論包括與電源排序CPLD內(nèi)的BIOS、BMC和邏輯相關(guān)的特征。還包括與示例云服務(wù)器主板(包括BMC/CM)的中等高級(jí)別概述,其具有用于實(shí)現(xiàn)功率安全NVDIMM器件的掛鉤,與圖6和圖7一致。
圖6和圖7共同示出了云服務(wù)器上的NVDIMM實(shí)現(xiàn)的硬件示意圖。注意,在圖4和圖7中,引腳和信號(hào)標(biāo)識(shí)符使用連字符(例如,“ADR-COMPLETE(完成)”),其中文本使用相應(yīng)項(xiàng)目的下劃線(“ADR_COMPLETE”);這種裝飾性調(diào)整是為了繪制一致性并且便于符合圖4時(shí)序圖中的諸如“ST-DONE(完成)”和“ST-RESET(復(fù)位)”等術(shù)語的繪制格式要求。此外,在圖7中,UVM表示欠電壓顯示器,PD表示編程延遲,SYS-PWROK后面的星號(hào)表示“由ADR_COMPLETE門控”。
如前所述,一些云服務(wù)器支持三種備份源,(i)超級(jí)電容器,(ii)機(jī)箱級(jí)電池,以及(iii)機(jī)架級(jí)電池。圖8示出了使用超級(jí)電容器802備份源的云服務(wù)器上的NVDIMM實(shí)現(xiàn)的示例配置。在該實(shí)現(xiàn)中,NVDIMM直接連接到放置在HDD托架中的超級(jí)電容器。
圖9示出了使用12V輔助備份源的云服務(wù)器上的NVDIMM實(shí)現(xiàn)的基于機(jī)箱電池的備份配置。在該實(shí)現(xiàn)中,來自HSC的12V刀片電源輸入被直接饋送到NVDIMM。一些示例使用主板上的連接器,引腳1和引腳2接地(2A電容),引腳3連接12V輔助(2A電容),引腳4未連接。
本部分的其余部分提供了對(duì)一些云服務(wù)器上的NVDIMM實(shí)現(xiàn)的高級(jí)概述以及對(duì)不同硬件和軟件部件的實(shí)現(xiàn)的詳細(xì)討論。討論介紹NVDIMM的操作狀態(tài)的四個(gè)方面:NVDIMM/系統(tǒng)初始化、正常操作、備份操作和恢復(fù)操作。本領(lǐng)域技術(shù)人員還將理解其他實(shí)現(xiàn),并且可以使用實(shí)施本文中呈現(xiàn)的一個(gè)或多個(gè)教導(dǎo)的實(shí)現(xiàn)的其他描述。
NVDIMM/系統(tǒng)初始化
每當(dāng)云服務(wù)器啟動(dòng)(引導(dǎo)過程)時(shí),執(zhí)行以下高級(jí)初始化活動(dòng)以啟用NVDIMM操作。
(i)云服務(wù)器BIOS檢測(cè)NVDIMM的存在并且填充meminfo(內(nèi)存信息)數(shù)據(jù)結(jié)構(gòu)或另一數(shù)據(jù)結(jié)構(gòu)以指示哪些DIMM具有NVDIMM能力。
(ii)BIOS執(zhí)行存儲(chǔ)器初始化(包括NVDIMM)。作為NVDIMM初始化的一部分,BIOS(a)等待任何未決的NVDIMM備份操作完成,(b)可以等待NVDIMM超級(jí)電容器充分被充電,以及(c)在這樣的備份圖像存在并且有效的情況下恢復(fù)已經(jīng)存在的備份NVDIMM圖像。
(iii)BIOS通過填充適當(dāng)?shù)腁CPI表將NVDIMM作為非易失性存儲(chǔ)器設(shè)備暴露給OS。
Meminfo結(jié)構(gòu)
在一些實(shí)現(xiàn)中,BIOS填充meminfo數(shù)據(jù)結(jié)構(gòu),以指示每個(gè)主板DIMM插槽中NVDIMM的存在或不存在。可選地,BIOS還可以填充用于NVDIMM的超級(jí)電容器支持的存在作為meminfo數(shù)據(jù)結(jié)構(gòu)的一部分。關(guān)于超級(jí)電容器的存在的這個(gè)信息可以涉及到NVDIMM控制器的定制接口,諸如以下:
位[5:0]:類型
00h:SDRAM
01h:DDR-1RAM
02h:Rambus
03h:DDR-2RAM
04h:FBDIMM
05h:DDR-3RAM
06h:DDR-4內(nèi)存
07h:DDR-3NVDIMM
08h:DDR-4NDVIMM
09h:具有超級(jí)電容器的DDR-3NVDIMM
0Ah:具有超級(jí)電容器的DDR-4NVDIMM
3Fh:沒有DIMM
......
BMC將在BIOS已經(jīng)經(jīng)由KCS(鍵盤控制器樣式)或BIOS向BMC協(xié)議傳送了該meminfo結(jié)構(gòu)之后立即讀取meminfo數(shù)據(jù)結(jié)構(gòu)。BMC將隨后使用該信息來執(zhí)行NVDIMM備份操作。
將NVDIMM暴露給OS
下面列出了在一個(gè)示例中用于NVDIMM OS支持的一些初步BIOS特性;在其他示例中,BIOS特性可以不同。通過提供這些特性,內(nèi)核142可以呈現(xiàn)NVDIMM模塊(或模塊系列)的塊存儲(chǔ)視圖,使得OS應(yīng)用可以將其用作常規(guī)存儲(chǔ)設(shè)備。即,NVDIMM可以被識(shí)別為盤類型設(shè)備,可以被分區(qū),可以被安裝并且可以以與呈現(xiàn)給系統(tǒng)的任何其它存儲(chǔ)設(shè)備大致相同的方式被使用。
項(xiàng)目1.如果固件/BIOS使用沒有任何修改地支持NVDIMM或者已經(jīng)支持NVDIMM的MRC庫,則轉(zhuǎn)到項(xiàng)目4。
DDR3NVDIMM從各種供應(yīng)商商購可獲得。本領(lǐng)域技術(shù)人員將理解,本文給出的教導(dǎo)適用于包括或利用來自各種供應(yīng)商的產(chǎn)品的系統(tǒng)、設(shè)備和方法,并且實(shí)施例不限于具有本文提及的特定供應(yīng)商的產(chǎn)品的那些實(shí)施例。在一些示例中,所有NVDIMM駐留在與DRAM所占用的空間分離的連續(xù)系統(tǒng)地址空間中。示例可以檢查NVDIMM上的任何保存的圖像,并且如果找到有效的保存的圖像,則啟動(dòng)恢復(fù)。示例可以檢查超級(jí)電容器充電狀態(tài),并等待超級(jí)電容器充滿電,然后繼續(xù)引導(dǎo)。在一些示例中,NVDIMM可以被交織。交織可以使用適用于常規(guī)DIMM和NVDIMM的全部或全無方法。交織設(shè)置可能對(duì)存在于ACPI表中的對(duì)象有影響。
項(xiàng)目2.在存儲(chǔ)器設(shè)備檢測(cè)期間,識(shí)別所有支持的NVDIMM,并將所有NVDIMM放入與DRAM所占用的系統(tǒng)地址空間分離的連續(xù)系統(tǒng)地址空間中。NVDIMM的內(nèi)存總線時(shí)序可能與常規(guī)DIMM不同。
項(xiàng)目3.對(duì)于所有支持的NVDIMM,在本示例中存在以下功能。檢查NVDIMM上是否有任何保存的圖像。如果存在有效的保存圖像,則啟動(dòng)恢復(fù)操作。提供在繼續(xù)引導(dǎo)之前強(qiáng)制固件/BIOS等待備份電源充足電的選項(xiàng)。如果備份電源是超級(jí)電容器,則固件/BIOS將檢查超級(jí)電容器充電狀態(tài),并等待超級(jí)電容器充滿電后再繼續(xù)引導(dǎo)。提供擦除和布防NVDIMM進(jìn)行保存操作的選項(xiàng)。如果啟用此選項(xiàng),則固件/BIOS將在恢復(fù)操作完成后擦除NVDIMM上的NAND。在擦除NAND之后,固件/BIOS將使NVDIMM進(jìn)行保存操作。提供啟用/禁用跨NVDIMM的交織的選項(xiàng)。NVDIMM的交織可以是系統(tǒng)中的所有NVDIMM或者連接到特定存儲(chǔ)器控制器的所有NVDIMM。如果支持兩個(gè)選項(xiàng),則提供選擇所需的交織的配置選項(xiàng)。交織選項(xiàng)可以影響ACPI表中存在的對(duì)象。
項(xiàng)目4.在UEFI機(jī)器上,由NVDIMM占據(jù)的存儲(chǔ)器區(qū)域被標(biāo)記為類型EFI_MEMORY(存儲(chǔ)器)_TYPE(類型)14(這當(dāng)前是保留的值)。在BIOS機(jī)器上,內(nèi)存區(qū)域在E820表中標(biāo)記為值7(這當(dāng)前是保留的值)。這將存儲(chǔ)器區(qū)域標(biāo)記為OS不可用。這些是示例標(biāo)記值;其他實(shí)現(xiàn)可以使用其他可用的值。
項(xiàng)目5.如果支持故障恢復(fù)引導(dǎo)(FRB),則確保FRB定時(shí)值可以適應(yīng)NVDIMM恢復(fù)其內(nèi)容或等待超級(jí)電容器完全充電的額外引導(dǎo)時(shí)間。
項(xiàng)目6.能夠在系統(tǒng)的有序關(guān)閉時(shí)觸發(fā)ADR保存以將NVDIMM內(nèi)容保存到NAND的能力。在以下電源開啟時(shí),在本例中,在NVDIMM上存在已保存的數(shù)據(jù)的恢復(fù)。
項(xiàng)目7.呈現(xiàn)給OS的ACPI DSDT或SSDT表包含在ACPI對(duì)象定義部分中描述的至少一個(gè)NVDIMM ACPI對(duì)象。如果禁用NVDIMM的交織,則在本示例中,系統(tǒng)中每個(gè)NVDIMM有一個(gè)NVDIMM ACPI對(duì)象。
可以使用的附加信息包括關(guān)于用于NVDIMM的初始化和對(duì)備選功率源(如果適用)充電的流的信息、關(guān)于BIOS恢復(fù)行為的信息和用于根據(jù)故障恢復(fù)的條件、以及關(guān)于NVDIMM故障模式的信息和在這些場(chǎng)景中的BIOS行為。NVDIMM模塊本身上的嵌入式控制器的規(guī)范和訪問方法可以包括寄存器定義和管理能力。
ACPI對(duì)象定義
為了使OS 142發(fā)現(xiàn)NVDIMM 138的存在并確定OS是否要加載塊存儲(chǔ)驅(qū)動(dòng)器,BIOS在該實(shí)現(xiàn)中暴露ACPI對(duì)象。ACPI對(duì)象位于DSDT或SSDT表中,位于_SB命名空間下。它支持以下ACPI方法。這將允許驅(qū)動(dòng)程序加載和暴露NVDIMM區(qū)域作為塊存儲(chǔ)設(shè)備。
_HID(硬件ID)——硬件ID是字符串,并且基于SPD(串行存在檢測(cè))表中的信息。_HID的格式為字符串XXXXYYYYYYYY,其中XXXX和YYYYYYYY具有以下信息。XXXX在存在單個(gè)NVDIMM的情況下是來自SPD的字節(jié)117-118的ASCII表示。對(duì)于多個(gè)NVDIMM,XXXX設(shè)置為“NVDM”。YYYYYYYY是在存在以CRC32值的MSB開始的單個(gè)NVDIMM的情況下來自SPD的字節(jié)128到145的CRC32十六進(jìn)制值的ASCII表示。對(duì)于多個(gè)NVDIMM,YYYYYYYY是基于DIMM插槽順序根據(jù)來自與該對(duì)象相關(guān)聯(lián)的所有NVDIMM的SPD的字節(jié)117-118和字節(jié)128到145的串聯(lián)生成的CRC32十六進(jìn)制值的ASCII表示。CRC32十六進(jìn)制值為MSB第一,DIMM插槽順序?yàn)閺淖钚【幪?hào)插槽到最大編號(hào)插槽。
_CID(兼容ID)——兼容ID是字符串“PNP0C90”。
_ADR(地址)——映射到從1開始的DIMM插槽的整數(shù)。如果存在與該對(duì)象相關(guān)聯(lián)的多個(gè)NVDIMM,則使用值0。
_UID(唯一ID)——唯一ID是字符串,并且基于SPD中的信息。_UID的格式為字符串YYYYYYYY。對(duì)于單個(gè)NVDIMM,YYYYYYYY是來自以CRC32值的MSB開始的SPD的字節(jié)117到125的CRC32十六進(jìn)制值的ASCII表示。對(duì)于多個(gè)NVDIMM,YYYYYYYY是基于NVDIMM槽順序根據(jù)來自與該對(duì)象相關(guān)聯(lián)的所有NVDIMM的SPD的字節(jié)117到125的串聯(lián)生成的CRC32十六進(jìn)制值的ASCII等價(jià)物。CRC32十六進(jìn)制值是MSB第一,并且時(shí)隙順序是從最低編號(hào)時(shí)隙到最高編號(hào)時(shí)隙。
_HRV(硬件修訂)——硬件修訂是整數(shù)并且基于SPD中的信息。對(duì)于單個(gè)NVDIMM,_HRV是來自SPD的字節(jié)146-147。對(duì)于多個(gè)NVDIMM,_HRV是基于NVDIMM時(shí)隙順序根據(jù)來自系統(tǒng)上所有NVDIMM的SPD的字節(jié)146-147的級(jí)聯(lián)生成的CRC32值。插槽順序是從最低編號(hào)插槽到最大編號(hào)插槽。
_CRS(當(dāng)前資源設(shè)置)——描述與NVDIMM相關(guān)聯(lián)的存儲(chǔ)器資源的緩沖器。緩沖器包含擴(kuò)展地址空間描述符,其是描述由與該對(duì)象相關(guān)聯(lián)的NVDIMM使用的一個(gè)連續(xù)地址范圍的存儲(chǔ)器范圍資源類型。設(shè)置ACPI_MEMORY(存儲(chǔ)器)_NV類型特定屬性。如果適用,可以設(shè)置其它存儲(chǔ)器類型屬性(例如,ACPI_MEMORY(存儲(chǔ)器)_UC)。
_STA(狀態(tài))——返回設(shè)備的當(dāng)前狀態(tài)的整數(shù)。如果與此對(duì)象關(guān)聯(lián)的NVDIMM可用,則返回值0x1f。如果與此對(duì)象關(guān)聯(lián)的NVDIMM不可用,則返回0。
_MGT(管理)——這是用于返回關(guān)于NVDIMM的狀態(tài)的更詳細(xì)信息的占位符函數(shù)。這可以由_DSM方法替代,它提供以下內(nèi)容:?jiǎn)?dòng)保存操作,查詢保存/恢復(fù)狀態(tài),查詢超級(jí)電容器充電狀態(tài),查詢溫度,配置設(shè)備故障通知。
下面是對(duì)于4GB地址范圍的NVDIMM對(duì)象的示例ASL定義:0x1.4000.0000-0x02.3FFF.FFFF
設(shè)備(\_SB_.NVD_){
名稱(_ADR,0x2)
名稱(_HID,“04D501234567”)
名稱(_CID,“PNP0C90”)
名稱(_UID,“01234567”)
名稱(_HRV,0x1)
名稱(_CRS,緩沖區(qū)(0x3a)
{
0x8b,//擴(kuò)展地址空間描述符
0x35,0x00,//長度位0x35=53字節(jié)
0x00,//資源類型=內(nèi)存范圍
0x0d,//一般標(biāo)志=1101
0x09,//類型特定的標(biāo)志=1001
0x00,//修訂ID
0x00,//保留
0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00,//_GRA:地址空間粒度
0x00、0x00、0x00、0x40、0x01、0x00、0x00、0x00,//_MIN:地址范圍最小值
0xff,0xff,0xff,0x3f,0x02,0x00,0x00,0x00,//_MAX:地址范圍最大
0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00,//_TRA:地址轉(zhuǎn)換偏移量
0x00、0x00、0x00、0x00、0x01、0x00、0x00、0x00,//_LEN:地址長度=4G字節(jié)
0x04、0x80、0x00、0x00、0x00、0x00、0x00、0x00,//_ATT:類型特定屬性
0x79,0x0//資源列表的結(jié)束標(biāo)記
})
方法(_STA,0x0,NotSerialized(未序列化)){
返回(0x1f)
}
方法(_MGT,0x0,NotSerialized(未序列化)){
返回(0x1f)
}
}
注意,所使用的特定CRC32算法對(duì)于本示例無關(guān)緊要,只要其導(dǎo)致4字節(jié)的值。
正常操作
正常操作涉及從系統(tǒng)軟件的角度看NVDIMM表現(xiàn)為正常DIMM以提供與正常DIMM相同的性能的狀態(tài)。
OS到BIOS到NVDIMM:在正常操作期間,NVDIMM控制器將通過SMBUS接口響應(yīng)BIOS/OS接口調(diào)用。一些示例包括例如使用ACPI調(diào)用的DSM方法,用于獲得NVDIMM健康信息。BIOS可以直接訪問SMBUS。
NVDIMM到OS/BIOS:NVDIMM還可以基于不同的警報(bào)事件向主機(jī)CPU發(fā)送SMALERT信號(hào)。這可能包括利用DIMM上的溫度傳感器信號(hào)。
備份操作
備份操作涉及其中NVDIMM將其易失性狀態(tài)從DRAM保存到DIMM中的集成NAND閃存的狀態(tài)。下面描述作為NVDIMM備份操作的一部分涉及的各個(gè)步驟。它們可以被組織成三個(gè)主要塊,其可以被視為步驟,或被視為步驟或事件的集合。
塊1:觸發(fā)備份。這包括12V電源損耗、刀片斷電(通過CM)、電池消耗(通過CM)和OS關(guān)閉。
塊2:?jiǎn)?dòng)備份。這包括通知CPU停止存儲(chǔ)器訪問(PM_SYNC),刷新I/O緩沖區(qū)和存儲(chǔ)器緩沖區(qū),以及啟動(dòng)NVDIMM備份。
塊3:供電備份。這包括將系統(tǒng)102保持在復(fù)位模式5-10s以供PCIe設(shè)備136備份,并且NVDIMM直接連接到超級(jí)電容器或12V輔助電源用于備份。
備份示例步驟1——觸發(fā)備份。在一些示例中,一些備份觸發(fā)源包括臨界電池閾值、刀片處的欠電壓以及數(shù)據(jù)安全斷電CM API 602。這些中的一個(gè)或多個(gè)可以觸發(fā)354云服務(wù)器或其他服務(wù)器102備份。在NVDIMM中,備份可以包括將數(shù)據(jù)從DDR3DRAM備份到NVDIMM中的NAND閃存。這個(gè)備份過程可以由這三個(gè)主要事件在一些云服務(wù)器中啟動(dòng)。然而,除了這些事件之外,諸如THERM_TRIP等一些內(nèi)部事件也可以觸發(fā)354備份操作。
下面參考圖4所示的CPLD定時(shí)圖。在圖中從圖12的基本臨時(shí)應(yīng)用中提供的圖中進(jìn)行了一些裝飾性格式化改變,以便于符合專利圖格式要求。例如,標(biāo)識(shí)符中的下劃線已替換為連字符。小寫字母也已大寫,一些文本已由占位符替代,并且已進(jìn)行其他外觀更改。對(duì)應(yīng)關(guān)系如下:
P12V-AUX表示:P12V_AUX
ADR-TRIGGER#表示:ADR_TRIGGER(觸發(fā))#
PM-SYNC表示:PM_SYNC
ADR-COMPLETE表示:ADR_COMPLETE(完成)
SYS-PWROK表示:SYS_PWROK
CPLD-STATE表示:cpld_STATE(狀態(tài))
M2-STATE表示:M.2_STATE
RAID-STATE表示:RAID_STATE
NVDIMM-STATE表示:NVDIMM_STATE
ST-DONE表示:st_DONE(完成)
ST-NORMAL-OP表示:st_Normal(正常)_OP
ST_RESET表示:st_RESET(復(fù)位)
ST-SV表示:st_SAVE(保存)
ST-DN表示:st_DONE(完成)
ST-SHTDWN表示:st_SHUTDOWN(關(guān)閉)
ST-PFF表示:St_PCH_off(原文如此st_PCH_off)
ST-OFF表示:st_OFF
橢圓中的35表示:35s
橢圓形中的50表示:50us
橢圓中的3表示:<3s
橢圓中的7表示:<7s
橢圓中的160表示:<160s
AA表示:系統(tǒng)電源關(guān)閉
BB表示:當(dāng)M.2和RAID保存完成時(shí),BMC禁用電源[換行]CPLD狀態(tài)機(jī)關(guān)閉電源
CC表示:AC電源故障觸發(fā)事件
DD表示:CM[機(jī)箱管理器]監(jiān)測(cè)用于恢復(fù)的AC功率
EE表示:CM聲明ADR_TRIGGER(觸發(fā))#
FF表示:PCH聲明ADR_COMPLETE(完成)
GG表示:BMC在M.2之后禁用功率并且RAID保存完成
HH表示:NVDIMM保存完成
JJ表示:PSU禁用在PSU中編程的12V[換行]延遲時(shí)間
KK表示:BMC中的定時(shí)器
LL表示:BMC中的定時(shí)器
MM表示:ADR_COMPLETE(完成)取消聲明ADR_TRIGGER(觸發(fā))#
NN表示:CPLD聲明SAVE(保存)#發(fā)起NVDIMM SAVE(保存)
PP表示:ADR_COMPLETE(完成)將SYS_PWROK取消置為PCH
QQ表示:PCH聲明平臺(tái)復(fù)位到系統(tǒng)(CPLD)
RR表示:CPLD聲明發(fā)起M.2SAVE(保存)的PERST(復(fù)位)#
SS表示:當(dāng)移除功率時(shí),ADR無效
事件1.檢測(cè)來自HSC的12V功率損失(這僅適用于超級(jí)電容器)。這種觸發(fā)NVDIMM備份的方法主要應(yīng)用于當(dāng)超級(jí)電容器或局部能量存儲(chǔ)用作NVDIMM的備份能量源時(shí)。如圖4和圖7所示,熱插拔控制器(HSC)之后的欠電壓監(jiān)測(cè)器(UVM)電路監(jiān)測(cè)服務(wù)器的12V輸入電壓,一旦輸入電壓達(dá)到11.2V,則在PCH上聲明ADR_TRIGGER(觸發(fā))(GPIO37)(在其他實(shí)施例中可以使用其它電壓)。一些云服務(wù)器使用這種欠電壓檢測(cè)作為功率損失的指示,這是由于機(jī)箱PSU中的AC功率的損失或者從機(jī)箱中物理地移除刀片。刀片BMC可以通過清除GPIOA7上的使能來禁用此基于欠電壓事件的ADR_TRIGGER(觸發(fā))(這將針對(duì)基于電池的NVDIMM備份進(jìn)行)。圖4示出了一些合適的邏輯。當(dāng)使用沒有超級(jí)電容器的NVDIMMS時(shí),通過用于檢測(cè)來自HSC的電壓損耗的比較器的觸發(fā)NVDIMM備份可以通過來自具有電池備份的機(jī)箱級(jí)電源的電壓調(diào)節(jié)來調(diào)用。在電池上運(yùn)行的給定時(shí)間段之后,如果機(jī)箱管理模塊206沒有觸發(fā)ADR,則機(jī)箱電池電源可以將輸出電壓降低到低于比較器的ADR觸發(fā)閾值的水平。
事件2.經(jīng)由BMC來自機(jī)箱管理器(CM)的明確的ADR命令。CM基于兩類事件觸發(fā)NVDIMM備份。對(duì)于第一類,CM監(jiān)測(cè)電池容量,并且當(dāng)電池達(dá)到某個(gè)臨界閾值時(shí)(例如,在AC損失之后35-40秒從電池供電之后),其通過到具有NVDIMM的機(jī)箱中的所有刀片502的IPMI(Set_NVDIMM_Trigger)命令發(fā)送明確的NVDIMM備份觸發(fā)。如果由于任何原因,機(jī)箱管理器在電池已經(jīng)達(dá)到臨界閾值之后無法調(diào)用ADR觸發(fā),則電池204可以將其輸出電壓降低310到低于比較器或熱插拔控制器的功率損失檢測(cè)的點(diǎn)316,以自動(dòng)調(diào)用ADR觸發(fā)。在該配置下,電池可以保持在輸出電壓電平或返回到12V,然而預(yù)期PCIe設(shè)備和NVDIMM將在上面事件1中概述的比較器電壓電平操作。
對(duì)于第二類別,只要接收到移除服務(wù)器的電源的用戶請(qǐng)求,CM就在服務(wù)器上調(diào)用明確的NVDIMM備份。CM為數(shù)據(jù)中心操作員提供三個(gè)主要接口,以便移除云服務(wù)器的電源(如下所示):(i)datasafesetpoweroff(數(shù)據(jù)安全設(shè)置關(guān)機(jī))移除服務(wù)器的12V電源,(ii)datasafesetbladeoff(數(shù)據(jù)安全設(shè)置刀片關(guān)閉)移除服務(wù)器主板的電源,同時(shí)不影響12V輸入電源,(iii)datasafesetbladeactivepowercycle(數(shù)據(jù)安全設(shè)置刀片有源功率循環(huán))移除主板電源,隨后重新啟用刀片電源。CM還具有與下面列出的示例一致的相應(yīng)的通電API 602,用于對(duì)刀片供電而不影響任何未決的數(shù)據(jù)安全備份操作。對(duì)于具有NVDIMM的服務(wù)器(使用meminfo數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)),CM會(huì)攔截這兩個(gè)與刀片電源相關(guān)的接口,并且通過向刀片式BMC發(fā)送Set_NVDIMM_Trigger(觸發(fā))IPMI命令來觸發(fā)NVDIMM備份。原始用戶移除刀片電源的請(qǐng)求將僅在備份操作完成后執(zhí)行。
DatasafeSetBladeOff(數(shù)據(jù)安全設(shè)置刀片關(guān)閉)(int bladeId);
DatasafeSetBladeOn(數(shù)據(jù)安全設(shè)置刀片開啟)(int bladeId);
DatasafeSetPowerOff(數(shù)據(jù)安全設(shè)置關(guān)機(jī))(int bladeId);
DatasafeSetPowerOn(數(shù)據(jù)安全設(shè)置開機(jī))(int bladeId);
DatasafeSetBladeActivePowerCycle(數(shù)據(jù)安全設(shè)置刀片有源功率循環(huán))(int bladeId);
GetBladeDatasafePowerState(獲取刀片數(shù)據(jù)安全功率狀態(tài))(int bladeId);
事件3.經(jīng)由BMC來自主機(jī)軟件(BIOS/OS)的明確的ADR命令。BIOS(或OS)可以通過經(jīng)由BMC在PCH上聲明ADR_TRIGGER來調(diào)用NVDIMM備份操作。BIOS通過使用KCS接口與BMC通信(通過IPMI命令)來實(shí)現(xiàn)這一點(diǎn)。此方法通常由BIOS用作其正常關(guān)閉序列的一部分。這確保了NVDIMM中的易失性狀態(tài)在NVDIMM失去功率之前被備份,作為轉(zhuǎn)換到S5關(guān)斷功率狀態(tài)的一部分。注意,服務(wù)器重新啟動(dòng)不需要NVDIMM備份,因?yàn)镹VDIMM的電源不會(huì)丟失。在一些實(shí)施例中,考慮到ADR,云服務(wù)器不支持休眠。
備份示例步驟2——初始化備份
在一些情況下,存儲(chǔ)器自刷新在ADR_COMPLETE(完成)之前。一旦通過上面討論的替代方法之一在PCH上聲明了ADR_TRIGGER(觸發(fā)),PCH在開始NVDIMM保存過程之前執(zhí)行一些備份——初始化/清除活動(dòng)。此清除活動(dòng)包括向CPU發(fā)送PM_SYNC以暫停內(nèi)存操作,刷新內(nèi)存控制器緩沖區(qū),刷新IIO PCIe緩沖區(qū)和刷新DIMM行寄存器。為了確保所有這些易失性狀態(tài)被刷入NVDIMM中,一些實(shí)施例在通過觸發(fā)NVDIMM上的SAVE信號(hào)開始NVDIMM保存過程之前等待PCH中的(例如)200μs的編程延遲(在接收到ADR_TRIGGER(觸發(fā))之后)。例如,如果PCH B0步進(jìn)僅允許60us延遲定時(shí)器,則一些實(shí)現(xiàn)在ADR_COMPLETE(完成)和SAVE(保存)之間增加140us的延遲,如圖4中的電源定序CPLD所示。在其他實(shí)現(xiàn)中可以避免該附加延遲,其中PCH B1步進(jìn)允許高達(dá)800us的延遲定時(shí)器,從而允許ADR_COMPLETE(完成)直接連接到NVDIMM上的SAVE(保存)引腳。一些NVDIMM軟件實(shí)現(xiàn)使用非暫態(tài)存儲(chǔ),因此不需要CPU數(shù)據(jù)高速緩存刷新。
清除時(shí)間的為200us(200微秒)的這段時(shí)間表示在ADR_TRIGGER(觸發(fā))事件和當(dāng)使用PWRGD_PS_PWROK信號(hào)指示的系統(tǒng)電壓軌電源關(guān)閉時(shí)之間的至少200us的服務(wù)器保持時(shí)間。這在一些實(shí)施例中允許基于超級(jí)電容器的NVDIMM備份操作(通過HSC欠電壓電路觸發(fā))。一些實(shí)現(xiàn)為PWRGD_PS_PWROK信號(hào)設(shè)置電壓閾值,以允許在ADR_TRIGGER(觸發(fā))和PWRGD_PS_PWROK之間有200us的保持時(shí)間(基于在服務(wù)器主板中具有足夠的電容以維持200us的全部服務(wù)器負(fù)載)?;诮?jīng)驗(yàn)測(cè)量,PWRGD_PS_PWROK的該閾值電壓被確定為10.2V(該值在一些實(shí)施例中可以不同,例如可以低至9.6V)。在基于電池的NVDIMM備份的情況下,機(jī)架級(jí)電池可以用于在ADR_TRIGGER之后為整個(gè)服務(wù)器供電200us。200us是一個(gè)示例;技術(shù)人員將確定其他實(shí)現(xiàn)的相應(yīng)時(shí)間。
備份示例步驟3——為備份供電
在超級(jí)電容器和機(jī)箱級(jí)電池的情況下,在使用到NVDIMM的ADR_COMPLETE/SAVE(完成/保存)信號(hào)啟動(dòng)備份之后,可以安全地關(guān)閉主板電壓軌(但是對(duì)于一些PCIe設(shè)備,一些示例仍然使電壓軌保持活動(dòng)幾秒鐘),因?yàn)镹VDIMM直接連接到備份功率源。
在備份操作期間,采取步驟以幫助確保備份操作不中斷。特別地,可以防止在備份操作期間使云服務(wù)器斷電(切斷對(duì)HSC的電源)的任何嘗試。一些云服務(wù)器使用刀片式BMC和機(jī)箱管理器(CM)實(shí)現(xiàn)的組合來實(shí)現(xiàn)這一點(diǎn),這將在下面詳細(xì)描述。
一些實(shí)施例的附加實(shí)現(xiàn)細(xì)節(jié)
CM改變。在一些實(shí)施例中,存在CM實(shí)現(xiàn)的兩個(gè)附加的NVDIMM相關(guān)IPMI消息。這些消息如下所述。
Set(設(shè)置)_NVDIMM_Trigger(觸發(fā))——該消息既用于配置上述NVDIMM觸發(fā)機(jī)制,又用于使得在BMC上的GPIO的聲明導(dǎo)致NVDIMM保存。
Get(獲取)_NVDIMM_Trigger(觸發(fā))——該消息用于從BMC查詢NVDIMM配置的當(dāng)前狀態(tài)。
此外,CM負(fù)責(zé)啟用或禁用來自HSC的欠電壓驅(qū)動(dòng)的ADR_TRIGGER(觸發(fā))信號(hào)。CM將向BMC發(fā)送Set(設(shè)置)_NVDIMM_Trigger(觸發(fā))命令,字節(jié)1設(shè)置為00h,以禁止來自HSC的ADR_TRIGGER(觸發(fā))。
CM 206監(jiān)測(cè)電池容量,并且當(dāng)電池達(dá)到某個(gè)臨界閾值時(shí)(例如,在源出35秒之后接著是AC損失),其通過ADR IPMI(Set(設(shè)置)_NVDIMM_Trigger(觸發(fā)))命令向具有NVDIMM(通過內(nèi)存信息數(shù)據(jù)結(jié)構(gòu)為每個(gè)刀片標(biāo)識(shí))的所有刀片發(fā)送明確的NVDIMM備份觸發(fā)。BMC使用對(duì)在NVDIMM刀片上執(zhí)行任何電源操作之前CM將等待的時(shí)間量響應(yīng)該命令。
當(dāng)接收到針對(duì)該刀片的刀片功率狀態(tài)改變命令(諸如SetPowerOff(設(shè)置關(guān)機(jī))或SetBladeOff(設(shè)置刀片關(guān)閉)命令)時(shí),CM還向NVDIMM刀片發(fā)送明確的ADR IPMI(Set(設(shè)置)_NVDIMM_Trigger(觸發(fā)))命令。然后,CM將在執(zhí)行實(shí)際用戶命令之前等待由BMC響應(yīng)Set(設(shè)置)_NVDIMM_Trigger(觸發(fā))命令指定的時(shí)間量。
CM基于meminfo結(jié)構(gòu)的內(nèi)容——NVDIMM的存在和超級(jí)電容器(在服務(wù)器上的一個(gè)或多個(gè)DIMM上)的存在來設(shè)置BMP中的Nvdimm_Backup_Delay持續(xù)時(shí)間(完成整個(gè)備份的估計(jì)時(shí)間)。
BMC改變。當(dāng)BMC接收到IPMI Set_NVDIMM_Trigger消息時(shí),它在PCH上聲明GPIO37以驅(qū)動(dòng)ADR_TRIGGER。在BIOS使用KCS接口通信后,BMC將讀取meminfo結(jié)構(gòu)。BMC將根據(jù)請(qǐng)求將meminfo結(jié)構(gòu)傳送給機(jī)箱管理器。如圖4所示,通過將ADR_COMPLETE信號(hào)連接到BMC GPIO10來向BMC通知NVDIMM備份操作。在ADR_COMPLETE信號(hào)的通知之后,BMC將在解除聲明CPLD上的FM_BMC_ONCTL#引腳之前等待預(yù)定量的時(shí)間(例如,5-10秒),這復(fù)位整個(gè)主板128。這是為了支持PCIe的數(shù)據(jù)安全操作。在聲明FM_BMC_ONCTL之后,BMC將內(nèi)部定時(shí)器運(yùn)行一定時(shí)間(Nvdimm_Backup_Delay秒)以確保NVDIMM備份有足夠的時(shí)間。BMC固件將具有此參數(shù)的默認(rèn)值(200s),其也可以使用set_ADR_Trigger IPMI命令從CM配置。(在給定的替代實(shí)施例中,在示例中使用的任何時(shí)間段可以被改變和/或被編程或以其它方式不同地配置)。在此等待時(shí)間期間,BMC的IPMI命令請(qǐng)求-響應(yīng)以兩種主要方式改變。首先,除非提供了明確的nvdimm-backup(備份)-override(覆蓋)標(biāo)志,否則任何刀片電源命令(來自CM或刀片上的帶內(nèi))都將用故障通知進(jìn)行響應(yīng)。第二,來自CM的ADR IPMI命令被用時(shí)間延遲值(以秒為單位)來響應(yīng),該時(shí)間延遲值指示CM206在發(fā)送任何刀片電源關(guān)閉命令之前將等待的時(shí)間量。此時(shí)間延遲值表示NVDIMM保存操作中剩余的時(shí)間量(在Nvdimm_Backup_Delay(延遲)秒的等待時(shí)間內(nèi))。
BIOS改變。代碼現(xiàn)在使用NVDIMM/超級(jí)電容器存在信息填充meminfo結(jié)構(gòu)。代碼還提供了通過在開機(jī)時(shí)相應(yīng)地恢復(fù)保存的數(shù)據(jù)來觸發(fā)ADR保存以便有序關(guān)閉的功能。在重新啟動(dòng)過程中,BIOS不會(huì)觸發(fā)ADR。
PSU/電池固件更改。AC電源丟失后的PSU固件行為如下。它在AC損失后等待38s(如果柴油發(fā)電機(jī)在這段時(shí)間內(nèi)沒有承受負(fù)載,則假定NVDIMM備份已由CM啟動(dòng))。它檢查電池輸出功率是否低于每個(gè)電池75W。如果沒有,則關(guān)閉電池。如果電池輸出功率小于75W,則將電池的運(yùn)行時(shí)間延長200秒鐘(之后電池將關(guān)閉)。在此期間,如果電池電量大于75W,固件會(huì)持續(xù)檢查電池電量并關(guān)閉。注意,在上述電池放電之后關(guān)閉電池(與使其完全耗盡電荷相反),以防止電池深度放電和隨之而來的電池過早故障。圖10示出了使用具有機(jī)箱級(jí)PSU/電池基礎(chǔ)設(shè)施形式的本地能量存儲(chǔ)的虛擬電池實(shí)現(xiàn)(即,仿真)的圖的電池操作。一些其他基于框架的電源和電池基礎(chǔ)設(shè)施在性能上在性質(zhì)上相似,但是具有與圖10的示例不同的時(shí)間和電壓電平。
該方法轉(zhuǎn)化為用于基于電池的NVDIMM備份源的至少兩個(gè)約束。首先,NVDIMM備份期間每個(gè)云服務(wù)器的功耗限制為小于18.75W(75W*6/24,假定6個(gè)電池和24個(gè)服務(wù)器使用NVDIMM)。其次,一旦云服務(wù)器進(jìn)入NVDIMM備份操作模式,其在此狀態(tài)下的最大時(shí)間量被限制為200秒。
還要注意,在本示例中的12V輔助連接器支持在服務(wù)器中的所有NVDIMM上的24W或2Amps的最大功率。其他實(shí)現(xiàn)可能不同。
錯(cuò)誤處理。記錄錯(cuò)誤事件。僅在內(nèi)存初始化(服務(wù)器引導(dǎo)過程中)時(shí)才響應(yīng)備份錯(cuò)誤。
恢復(fù)操作
NVDIMM恢復(fù)操作(將數(shù)據(jù)從NVDIMM中的NAND閃存復(fù)制到DRAM)作為在電源恢復(fù)到服務(wù)器之后的服務(wù)器引導(dǎo)過程的一部分發(fā)生。盡管在NVDIMM備份操作完成之前可以恢復(fù)交流電源,但一個(gè)云服務(wù)器BMC將確保在備份操作完成后(通過在等待Nvdimm_Backup_Delay之后取消聲明FM_BMC_ONCTL)電源已完全從服務(wù)器中移除。在備份操作完成之后,使用對(duì)刀片供電(和重新啟動(dòng))的明確命令(從數(shù)據(jù)中心操作員通過CM API 602)。BMC將在接收到明確的“刀片電源開啟”IPMI命令之后或在BMC本身被復(fù)位之后恢復(fù)對(duì)刀片主板128的功率。
BIOS將作為服務(wù)器重新啟動(dòng)過程的一部分開始執(zhí)行。在初始化NVDIMM 138之后,如果存在有效的備份圖像,則BIOS將嘗試恢復(fù)NVDIMM備份數(shù)據(jù)。在NVDIMM備份過程期間發(fā)生的任何錯(cuò)誤將由NVDIMM控制器在此階段傳送到BIOS。BIOS還將知道作為恢復(fù)操作的一部分發(fā)生的錯(cuò)誤。這些錯(cuò)誤將由BIOS記錄在刀片式系統(tǒng)事件日志中。
作為NVDIMM恢復(fù)操作的一部分,BIOS確保NVDIMM的DIMM部分的內(nèi)容不被修改/損壞(即,作為重啟的一部分,NVDIMM138的電源不會(huì)丟失)。根據(jù)配置,在啟動(dòng)恢復(fù)操作(NVDIMM控制器可以將超級(jí)電容器電荷電平傳送到BIOS)之前,BIOS可以或可以不等待超級(jí)電容器充分充電(用于后續(xù)的電源損耗/備份)。在恢復(fù)操作完成后(通過來自NVDIMM控制器的通知),BIOS將NVDIMM的控制權(quán)移交給OS。
功率安全PCIe設(shè)備
云服務(wù)器中的PCIe設(shè)備
一些云服務(wù)器具有M.2 SSD和RAID控制器,其在內(nèi)部使用DRAM以提高寫入性能;該DRAM將在掉電后安全地保持。例如,某些RAID控制器使用高達(dá)2GB的DRAM,在電源故障時(shí)可能需要15秒鐘刷新持久性介質(zhì)。傳統(tǒng)上,這些PCIe設(shè)備使用定制的超級(jí)電容器能量存儲(chǔ)設(shè)備來執(zhí)行易失性狀態(tài)備份。本文中所描述的一些云服務(wù)器實(shí)施例利用機(jī)箱級(jí)和/或機(jī)架級(jí)UPS電池用于在PCIe設(shè)備中執(zhí)行備份,從而減少或移除來自超級(jí)電容器的成本開銷。
功率安全的PCIe設(shè)備實(shí)現(xiàn)
PCIe設(shè)備的功率安全實(shí)現(xiàn)類似于NVDIMM,具有以下所述的一些差異。
上電備份
與基于超級(jí)電容器的PCIe備份不同,整個(gè)服務(wù)器主板可能潛在地被斷電,基于機(jī)箱-電池的PCIe備份保持主板電源軌在備份操作的整個(gè)持續(xù)時(shí)間內(nèi)活動(dòng)。這涉及電源序列CPLD行為的改變;電源排序CPLD狀態(tài)轉(zhuǎn)換的示例在圖11中示出,并且在下面討論。在圖11的示例中,LES指示共享的本地能量存儲(chǔ)器,例如機(jī)箱級(jí)電池204或機(jī)架級(jí)電池204。此外,服務(wù)器BMC不知道強(qiáng)制安全PCIe設(shè)備136的存在/不存在,因此BMC延遲電源排序1-5s,而不考慮服務(wù)器配置。然而,BMC通過meminfo數(shù)據(jù)結(jié)構(gòu)知道NVDIMM及其超級(jí)電容器的存在/不存在。
在存在使用三種功率狀態(tài)的安全PCIe設(shè)備的情況下的CPLD功率排序操作在圖4中示出。在正常服務(wù)器操作期間,CPLD保持在st_Done狀態(tài),其中所有功率都良好,并且CPLD的范圍中的一切退出復(fù)位。使用ADR_COMPLETE信號(hào)使CPLD了解即將發(fā)生的PCIe備份。在此備份操作期間,CPLD保持為用于PCIe備份操作的所有電壓軌供電344。這通過轉(zhuǎn)換到st_RESET電源狀態(tài)來實(shí)現(xiàn),其中該實(shí)現(xiàn)向PCIe設(shè)備136發(fā)送PERST/RESET信號(hào),并且保持它們的電壓軌有效但可能處于低功率復(fù)位模式。在一些實(shí)施例中,在st_RESET中,CPLD忽略所有斷電信號(hào),如S5。這些電壓軌保持活動(dòng)(在st_RESET狀態(tài)下的占用持續(xù)時(shí)間)的持續(xù)時(shí)間取決于諸如PCIe的存在、PCIe上的超級(jí)電容器上存在、PCIe設(shè)備中使用的DRAM大小等因素。本示例使用10秒(十秒)作為允許的PCIe設(shè)備備份時(shí)間(也可以配置此持續(xù)時(shí)間)。如圖所示,通過將ADR_COMPLETE信號(hào)連接到BMC GPIO10來向BMC通知PCIe備份操作。在通知ADR_COMPLETE信號(hào)之后,BMC將在取消聲明CPLD上的FM_BMC_ONCTL#引腳之前等待預(yù)定量的時(shí)間(10s),這將復(fù)位整個(gè)主板。
連接備選和術(shù)語
一些實(shí)施例包括連接/被連接,其中其它實(shí)施例包括耦合/被耦合。例如,一些實(shí)施例提供了一種用于系統(tǒng)中的主板的易失性存儲(chǔ)器數(shù)據(jù)保存子系統(tǒng),子系統(tǒng)包括:易失性存儲(chǔ)器設(shè)備共享功率源連接,其在連接到共享功率源并且還通過主板連接到易失性存儲(chǔ)器設(shè)備時(shí)向所述易失性存儲(chǔ)器設(shè)備提供操作功率,所述易失性存儲(chǔ)器設(shè)備是從共享功率源接收功率的至少兩個(gè)單獨(dú)可插式設(shè)備之一;數(shù)據(jù)保存觸發(fā)連接,其在連接到易失性存儲(chǔ)器設(shè)備并且被觸發(fā)時(shí)向易失性存儲(chǔ)器設(shè)備發(fā)送數(shù)據(jù)保存命令;以及數(shù)據(jù)保存觸發(fā)控制器,其操作以在以下條件中的至少一個(gè)發(fā)生時(shí)觸發(fā)數(shù)據(jù)保存觸發(fā)連接:(a)可編程時(shí)間量逝去,易失性存儲(chǔ)器設(shè)備由不是由AC功率源驅(qū)動(dòng)的源來供電;(b)易失性存儲(chǔ)器設(shè)備共享功率源上的功率電平降低到小于正常操作功率但仍然足以在數(shù)據(jù)保存操作期間為易失性存儲(chǔ)器設(shè)備供電的值;(c)向數(shù)據(jù)保存觸發(fā)控制器通知操作系統(tǒng)關(guān)閉命令;或(d)在沒有操作系統(tǒng)關(guān)閉命令的情況下,向數(shù)據(jù)保存觸發(fā)控制器通知明確的數(shù)據(jù)保存命令。對(duì)于其它實(shí)施例,存在類似的耦合與連接替代。
主板上的“連接的”項(xiàng)目彼此接觸和/或彼此具有直接電連接。相反,項(xiàng)目可以電和/或行為“耦合”,即使它們彼此不接觸或具有直接電連接。另外,當(dāng)討論網(wǎng)絡(luò)連接、因果關(guān)系和其中不一定存在物理接觸或直接電連接的其他情況時(shí),在本領(lǐng)域中也使用“連接”,并且其應(yīng)當(dāng)被相應(yīng)地理解。
機(jī)架與機(jī)箱
機(jī)架式服務(wù)器使用自包含的硬件,在這種意義上,可以將機(jī)架式服務(wù)器插入標(biāo)準(zhǔn)電源插座,連接網(wǎng)絡(luò)電纜、引導(dǎo),并且具有操作服務(wù)器。它們通常安裝在通常為19英寸寬的計(jì)算機(jī)硬件機(jī)架中,但它們可以坐在桌子或其他表面上。刀片式服務(wù)器不是獨(dú)立的。它們?cè)O(shè)計(jì)為安裝在被稱為“機(jī)箱”的刀片外殼中,外殼包括電源和網(wǎng)絡(luò)部件。插入有刀片的機(jī)架可以是機(jī)架可安裝的。術(shù)語“框架”在本文中用于表示機(jī)架和/或機(jī)箱。
附加觀察
當(dāng)向系統(tǒng)主板斷電時(shí),NVDIMM傳統(tǒng)上在DIMM上使用超級(jí)電容器來將其DRAM內(nèi)容備份到持久存儲(chǔ)器。這些超級(jí)電容器通常根據(jù)DIMM安裝,并且在財(cái)政成本和服務(wù)器機(jī)箱內(nèi)的物理空間上特別是在高密度配置中是昂貴的。此外,這些超級(jí)電容器的低溫操作條件使得難以用NVDIMM冷卻高密度配置。
用超級(jí)電容器啟動(dòng)NVDIMM備份的熟悉的過程通過芯片組ADR引腳。此引腳使芯片組刷新CPU內(nèi)存緩沖區(qū),并在所有NVDIMM上聲明ADR引腳。ADR是低電平有效信號(hào),通常由于系統(tǒng)主板或主板上的比較器的功率損失而被驅(qū)動(dòng)為低電平,這響應(yīng)于當(dāng)?shù)诫娫吹腁C電源丟失時(shí)主板的功率惡化時(shí)的電壓降。耦合到NVDIMM的超級(jí)電容器通常將為DIMM備份操作提供功率。
相關(guān)機(jī)制可以用于備份每個(gè)DIMM模塊內(nèi)部電池模塊沒有超級(jí)電容器的NVDIMM。取而代之,NVDIMM具有位于服務(wù)器主板之外并且跨一個(gè)或多個(gè)系統(tǒng)(諸如云服務(wù)器本地能量存儲(chǔ)(LES)/云服務(wù)器機(jī)箱電池(微軟公司的標(biāo)記))共享的集中式電池。在用于機(jī)箱管理器模塊的微軟云服務(wù)器(Microsoft Cloud Server)的一些實(shí)施例中還存在觸發(fā)NVDIMM數(shù)據(jù)保存的規(guī)定,而本地能量存儲(chǔ)器提供電容
一些實(shí)施例具有云服務(wù)器LES解決方案,在電池上的預(yù)定時(shí)間之后更低的310輸出電壓,其通常被配置為發(fā)電機(jī)轉(zhuǎn)換時(shí)間。在這段時(shí)間過后,AC功率沒有返回,電源或電池模塊知道發(fā)電機(jī)沒有上線,并且功率損失即將來臨。在電池容量耗盡之前,電源控制模塊或電池管理模塊可以將電池的電壓從12伏降低到刀片主板比較器下方的點(diǎn)316,以用信號(hào)通知PCH上的ADR引腳。
通過將電壓輸出降低到低于主板比較器的點(diǎn),NVDIMM備份將被自動(dòng)觸發(fā),同時(shí)DIMM輔助電源軌保持在11伏或剛好低于比較器觸發(fā)電平的點(diǎn)上供電。較低電壓速率316足以完成對(duì)持久存儲(chǔ)器的NVDIMM備份。在一些實(shí)施例中,在備份期間在輔助電源和正常電源軌之間沒有區(qū)別。相同的觸發(fā)354機(jī)制可以用于較高電壓實(shí)現(xiàn)。
在一些實(shí)施例中,云服務(wù)器NVDIMM和PCIe設(shè)備解決方案具有沒有內(nèi)部電池或超級(jí)電容器的持久性數(shù)據(jù)保存電容。它們使用來自外部電源控制電路的電壓調(diào)節(jié)來有意地調(diào)用刀片的主板電壓比較器來觸發(fā)ADR引腳,同時(shí)電源電池仍具有足夠的容量來執(zhí)行NVDIMM備份。本文還描述了用于在云服務(wù)器中使用的NVDIMM方法和電源排序。
本實(shí)現(xiàn)的益處是移除了內(nèi)部電容器和電池,同時(shí)移除了系統(tǒng)中的單點(diǎn)故障并且涵蓋在持續(xù)RAM備份期間數(shù)據(jù)丟失的角落情況。討論的一些示例特定于微軟云服務(wù)器,但是它們的教導(dǎo)和在機(jī)箱或機(jī)架配置中實(shí)現(xiàn)NVDIMM而沒有離散DIMM電容或電池的方法更廣泛地適用。
在一些實(shí)施例中,ADR觸發(fā)(DIMM備份)事件主要來自于3個(gè)實(shí)體:PCH、CM和12V欠電壓。
PCH-OS或另一軟件實(shí)體可以通過PCH命令A(yù)DR作為有序關(guān)閉或重新啟動(dòng)的一部分。
機(jī)箱管理器——機(jī)箱管理器可以通過BMC命令A(yù)DR作為監(jiān)測(cè)機(jī)箱12V電源的一部分。在由電源發(fā)出警報(bào)的情況下,機(jī)箱管理器負(fù)責(zé)評(píng)估警報(bào)的臨界性并通過BMC對(duì)ADR進(jìn)行排序。在這種情況下,BMC將負(fù)責(zé)將GPIO驅(qū)動(dòng)到PCH的ADR_TRIGGER#引腳。這主要適用于具有其中可以檢測(cè)到故障的機(jī)箱內(nèi)部電池備份的系統(tǒng),但本地12V電源沒有立即丟失。
12V欠電壓——對(duì)12V熱插拔控制器的輸出的欠電壓監(jiān)測(cè)可以產(chǎn)生到PCH的ADR_TRIGGER#。這可以用于具有NVDIMM和超級(jí)電容器的系統(tǒng)以及用于具有NVDIMM并且沒有本地電容的系統(tǒng)。機(jī)箱電池備份可以為備份提供能量,而電池DCU或控制器可以降低輸出電壓以調(diào)用欠電壓條件。
進(jìn)一步關(guān)注圖4,下面討論一些云服務(wù)器ADR觸發(fā)信號(hào)。ADR_TRIGGER#——從12V欠電壓監(jiān)控器或直接從BMC供電。當(dāng)被聲明時(shí),該信號(hào)在PCH內(nèi)啟動(dòng)ADR。欠電壓可以由PSU/電池有意地調(diào)用,或者在掉電期間由于主板的電壓損失而自然調(diào)用。
ADR_COMPLETE——來自PCH。當(dāng)被聲明時(shí),該信號(hào)指示ADR操作已經(jīng)完成并且NVDIMM保存操作可以開始。如果配置為NVDIMM+機(jī)箱電池,則CPLD狀態(tài)機(jī)通過啟動(dòng)系統(tǒng)復(fù)位并啟動(dòng)復(fù)位或保存到數(shù)據(jù)安全存儲(chǔ)設(shè)備來響應(yīng)ADR_COMPLETE。
NVDIMM_PRSNT——從BMC驅(qū)動(dòng)。NVDIMM+機(jī)箱電池。向CPLD指示包含機(jī)箱內(nèi)部電池備份的系統(tǒng)中存在NVDIMM。該信號(hào)用于限定ADR_COMPLETE,使得在配置不是NVDIMM+機(jī)箱電池的情況下CPLD狀態(tài)機(jī)不響應(yīng)ADR_COMPLETE。這將確保在配置不是NVDIMM+機(jī)箱電池的情況下會(huì)發(fā)生正常關(guān)閉。
SAVE#——聲明時(shí),該信號(hào)將NVDIMM置于保存模式。該信號(hào)由ADR_COMPLETE觸發(fā)。它通過CPLD緩沖以提供鑒定。
FM_BMC_ONCTL#——來自BMC或PCH的功率使能信號(hào)。預(yù)計(jì)這是對(duì)CPLD狀態(tài)機(jī)的PWREN輸入。對(duì)于NVDIMM+機(jī)箱電池,接觸聲明該信號(hào)將導(dǎo)致CPLD禁用刀片上的開關(guān)電源。
一些附加組合和變型
代碼、數(shù)據(jù)結(jié)構(gòu)、邏輯、部件、信號(hào)、信號(hào)定時(shí)和/或其功能等同物的這些組合中的任一者也可以與上述系統(tǒng)及其變型中的任一者組合。過程可以包括可操作的任何子集或組合或序列中的本文所描述的任何步驟。每個(gè)變體可以單獨(dú)出現(xiàn),或與任何一個(gè)或多個(gè)其他變體組合出現(xiàn)。每個(gè)變體可以與任何過程一起發(fā)生,并且每個(gè)過程可以與任何一個(gè)或多個(gè)其他過程組合。每個(gè)過程或過程組合(包括變體)可以與上文所述的任何培養(yǎng)基組合和變體組合。
在一些示例中,用于在AC功率損失的情況下保留數(shù)據(jù)的裝置包括數(shù)據(jù)保存狀態(tài)機(jī)214。在一些示例中,用于在AC功率損失的情況下保存數(shù)據(jù)的裝置包括與圖2一致的裝置和/或電路。在一些示例中,用于在AC功率損失的情況下保存數(shù)據(jù)的裝置包括其操作與圖4一致的設(shè)備和/或電路。在一些示例中,用于在AC功率損失的情況下保存數(shù)據(jù)的裝置包括其操作與圖11所示的狀態(tài)轉(zhuǎn)換一致的設(shè)備和/或電路。在一些示例中,用于在AC功率損失的情況下保存數(shù)據(jù)的裝置包括CPLD。在一些示例中,用于在AC功率損失的情況下保留數(shù)據(jù)的裝置包括耦合到BMC的CPLD。在一些示例中,用于在AC功率損失的情況下保存數(shù)據(jù)的裝置包括如圖2所示耦合在一起的CPLD、BMC和PCH。在一些示例中,用于在AC功率損失的情況下保存數(shù)據(jù)的裝置包括如圖7所示耦合在一起的CPLD、BMC和PCH。
一些實(shí)施例包括與圖2一致的主板、熱插拔控制器、基板控制器、數(shù)據(jù)保存狀態(tài)機(jī)和平臺(tái)控制器中樞。一些實(shí)施例包括與圖2一致的主板、熱插拔控制器、基板控制器、數(shù)據(jù)保存狀態(tài)機(jī)、平臺(tái)控制器集線器和框架管理器。一些實(shí)施例包括除了發(fā)生器216之外的圖2所示的所有項(xiàng)目。在一些實(shí)施例中,框架是機(jī)箱;在一些實(shí)施例中,它是機(jī)架。一些實(shí)施例包括圖7所示的項(xiàng)目。一些實(shí)施例包括圖8所示的項(xiàng)目。一些實(shí)施例包括圖9所示的項(xiàng)目。一些實(shí)施例包括其操作與如圖10所示的數(shù)據(jù)安全操作一致但不一定具有相同的時(shí)間的設(shè)備和/或電路。
一些實(shí)施例包括步驟302和324。一些實(shí)施例包括步驟302、324和332。一些實(shí)施例包括步驟302、328和332。一些實(shí)施例包括步驟310和324。一些實(shí)施例包括步驟310、324和326。一些實(shí)施例包括步驟324和340。一些實(shí)施例包括步驟356和324。這些僅是對(duì)本領(lǐng)域技術(shù)人員容易理解的很多可能示例中的一些示例。
結(jié)論
盡管本文中明確地示出和描述了特定實(shí)施例作為過程、配置的介質(zhì)或系統(tǒng),但是應(yīng)當(dāng)理解,一種類型的實(shí)施例的討論一般也延伸到其他實(shí)施例類型。例如,關(guān)于任何附圖的過程的描述還有助于描述配置的介質(zhì),并且?guī)椭枋鋈缃Y(jié)合其他附圖討論的系統(tǒng)和制造的技術(shù)效果和操作。不會(huì)認(rèn)為來自一個(gè)實(shí)施例的限制必然被讀入另一實(shí)施例。特別地,過程不一定限于在討論系統(tǒng)或制造、例如配置的存儲(chǔ)器時(shí)呈現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和布置。
本文中對(duì)具有一些特征X的實(shí)施例的引用和本文其它地方對(duì)具有一些特征Y的實(shí)施例的引用并不排除具有特征X和特征Y的實(shí)施例,除非這里明確陳述了這種排除。所有可能的否定權(quán)利要求限制在本公開的范圍內(nèi),在某種意義上,被聲明為實(shí)施例的一部分的任何特征也可以被明確地從包括在另一實(shí)施例中移除,即使在任何示例中沒有給出該特定排除。術(shù)語“實(shí)施例”在這里僅被用作“過程、系統(tǒng)、制造品、配置的計(jì)算機(jī)可讀介質(zhì)和/或本文中以與適用法律一致的方式應(yīng)用的教導(dǎo)的其他示例”的更方便的形式。因此,給定的“實(shí)施例”可以包括本文公開的特征的任何組合,只要該實(shí)施例與至少一個(gè)權(quán)利要求一致即可。
并非圖中所示的每個(gè)項(xiàng)目都需要存在于每個(gè)實(shí)施例中。相反,實(shí)施例可以包含在附圖中未明確示出的項(xiàng)目。盡管這里在文本和附圖中通過具體示例示出了一些可能性,但是實(shí)施例可以偏離這些示例。例如,示例的具體技術(shù)效果或技術(shù)特征可以以不同的硬件和/或軟件被省略、重命名、不同地分組、重復(fù)、實(shí)例化、或者是在兩個(gè)或更多個(gè)示例中出現(xiàn)的效果或特征的混合。在一些實(shí)施例中,在一個(gè)位置處示出的功能還可以在不同位置處提供;技術(shù)人員認(rèn)識(shí)到,可以在給定實(shí)現(xiàn)中以各種方式定義功能模塊,而不必從作為整體觀看的交互模塊的集合中省略期望的技術(shù)效果。
貫穿全文通過附圖標(biāo)記參考了附圖。在附圖中或在文本中與給定附圖標(biāo)記相關(guān)聯(lián)的短語中的任何明顯不一致性應(yīng)當(dāng)被理解為簡(jiǎn)單地加寬由該標(biāo)記引用的范圍。給定附圖標(biāo)記的不同實(shí)例可以指代不同的實(shí)施例,即使使用相同的附圖標(biāo)記。
如本文所使用的,諸如“一個(gè)(a)”和“該(the)”等術(shù)語包括一個(gè)或多個(gè)所指示的項(xiàng)目或步驟。特別地,在權(quán)利要求中,對(duì)項(xiàng)目的引用通常表示存在至少一個(gè)這樣的項(xiàng)目,并且對(duì)步驟的引用表示執(zhí)行步驟的至少一個(gè)實(shí)例。
標(biāo)題僅是為了方便;關(guān)于給定主題的信息可以在其標(biāo)題指示該主題的部分之外找到。
所提交的所有權(quán)利要求和摘要是說明書的一部分。
盡管已經(jīng)在附圖中示出并在上面描述了示例性實(shí)施例,但是對(duì)于本領(lǐng)域普通技術(shù)人員來說容易理解的是,在不脫離權(quán)利要求中闡述的原理和概念的情況下,可以進(jìn)行很多修改,修改不需要包含整個(gè)抽象概念。雖然以結(jié)構(gòu)特征和/或過程動(dòng)作專用的語言描述了主題,但是應(yīng)當(dāng)理解,所附權(quán)利要求中定義的主題不一定限于權(quán)利要求中描述的具體技術(shù)特征或動(dòng)作。在給定的定義或?qū)嵤├凶R(shí)別的每種方式或方面或技術(shù)效果不必存在于或用于每個(gè)實(shí)施例中。相反,所描述的具體特征和動(dòng)作和效果被公開作為在實(shí)現(xiàn)權(quán)利要求時(shí)考慮的示例。
不滿足包括整個(gè)抽象概念但落入權(quán)利要求的等同物的含義和范圍內(nèi)的所有變化將被包括在其法律允許的最大范圍內(nèi)的范圍內(nèi)。