數(shù)據(jù)到非易失性存儲器的事件觸發(fā)的存儲的制作方法
【專利說明】
[0001]發(fā)明人:Sarathy Jayakumar, Mohan J.Kumar JPIKrishnakanth V.Sistla0
【背景技術】
[0002]許多現(xiàn)代計算機化的設備需要持久地在非易失性存儲器中存儲數(shù)據(jù)的能力,甚至當給設備的電力關斷的時候。能夠?qū)崿F(xiàn)這一點的存儲器的示例是非易失性雙列直插式存儲器模塊(NVDI麗)。典型的NVDMM包括非易失性存儲介質(zhì),諸如NAND或NOR閃速存儲器,用于在存儲器單元的陣列中存儲數(shù)字信息。因為數(shù)字信息(即數(shù)據(jù))存儲在非易失性NAND/N0R閃速存儲器中,所以數(shù)據(jù)是“耐久的”,并且在電力丟失或系統(tǒng)故障期間繼續(xù)存在于計算機系統(tǒng)/計算機化的設備中。在電力復原到利用NVDIMM的計算機化的設備之后,對應的計算機化的設備可以從NVDIMM訪問存儲的數(shù)字數(shù)據(jù)。
[0003]在某些實例中,根據(jù)接收的輸入,相應計算機設備中的軟件可以修改在非易失性存儲器中存儲的數(shù)據(jù)。例如,假設:軟件期望更新在非易失性存儲器中存儲的記錄(諸如記錄A)。在這樣的實例中,軟件檢索在非易失性存儲器中存儲的原始記錄A的拷貝,并在對應的易失性存儲器中存儲記錄A的拷貝。
[0004]當在易失性存儲器中時,軟件對記錄的拷貝(即記錄A’)做出適當?shù)母淖兓蚋?。在完成對易失性存儲器中的記錄A’(拷貝)的任何改變之后,軟件然后發(fā)起記錄A’的經(jīng)更新的拷貝到非易失性存儲器的存儲。如上所討論的,如果記錄A’的存儲在去除供電(depower)之前被成功地拷貝到非易失性存儲器,則經(jīng)修改的記錄A’是從非易失性存儲器可檢索的。
[0005]如果諸如電力丟失之類的故障在完成經(jīng)修改的記錄A’到目標非易失性存儲器的存儲之前發(fā)生,則可能的是:沒有任何的記錄A’或只有一部分的記錄A’(如與所有的記錄A’相對)被寫入到非易失性存儲器。
[0006]在某些實例中,作為故障的結(jié)果,與記錄A’相關聯(lián)的對應狀態(tài)信息可能錯誤地指示:在非易失性存儲器中的記錄A’的部分寫入的(或潛在地劣化的)拷貝是針對記錄A的最近的拷貝。在這樣的實例中,電力故障導致數(shù)據(jù)丟失,因為經(jīng)修改的記錄A’未被恰當?shù)卮鎯υ诜且资源鎯ζ髦小?br>【附圖說明】
[0007]被并入到此說明書中并構(gòu)成此說明書的一部分的附圖圖示本文所述的一個或多個實施例,并且連同【具體實施方式】一起,解釋這些實施例。在附圖中:
圖1是根據(jù)本文實施例的示例性處理器環(huán)境的框圖;
圖2是根據(jù)本文實施例的圖示不同類型的事件的監(jiān)視的示例性圖解;
圖3是根據(jù)本文實施例的圖示被配置成管理所檢測的觸發(fā)事件的SMI(系統(tǒng)管理中斷)處理機(hand I er )的實現(xiàn)方式的示例性圖解;
圖4是根據(jù)本文實施例的操作以實現(xiàn)方法的示例性計算機系統(tǒng)的框圖;
圖5是根據(jù)本文實施例的圖示管理所檢測的觸發(fā)事件的示例性方法的流程圖;以及圖6是根據(jù)本文實施例的圖示計算機系統(tǒng)和對應的顯示屏的示例性圖解。
【具體實施方式】
[0008]通常,數(shù)據(jù)丟失(由于諸如電力丟失、硬件故障、軟件復位等等之類的事件)是高度不合期望的,因為它阻止相應的計算機系統(tǒng)恢復回到其在事件發(fā)生之前的原始狀態(tài)。例如,如上所討論的,在相應計算機系統(tǒng)的完全電力關斷之前,記錄中的經(jīng)修改的數(shù)據(jù)可能未被恰當?shù)卮鎯υ谙鄳姆且资源鎯ζ髦小?br>[0009]如本文討論的某些實施例包括事件管理資源,所述事件管理資源與常規(guī)技術相比提供更先進的保存數(shù)據(jù)方式。例如,事件管理資源監(jiān)視處理器環(huán)境。與常規(guī)技術形成對比,并且響應于檢測到處理器環(huán)境中觸發(fā)事件的發(fā)生,事件管理資源發(fā)起處理器高速緩存數(shù)據(jù)從處理器環(huán)境中的易失性存儲裝置(諸如一個或多個對應的高速緩存)到非易失性存儲器的傳遞。
[0010]在一個實施例中,事件管理資源可以被配置成產(chǎn)生與高速緩存數(shù)據(jù)到相應非易失性存儲器資源的傳遞相關聯(lián)的狀態(tài)信息。事件管理資源在非易失性存儲資源中存儲狀態(tài)信息以供稍后檢索。因此,可以使得與引起傳遞的事件相關聯(lián)的狀態(tài)信息可用于在相應計算機系統(tǒng)的隨后加電或重新引導時的分析。
[0011]通過非限制性示例的進一步方式,事件管理資源可以被配置成產(chǎn)生第一狀態(tài)信息,所述第一狀態(tài)信息指示引起高速緩存數(shù)據(jù)到非易失性存儲器的傳遞的底層觸發(fā)事件的發(fā)生。事件管理資源可以被配置成在非易失性存儲資源中存儲第一狀態(tài)信息,使得狀態(tài)信息在電力的移除和隨后的再施加之后的稍后時間點處是可用的。
[0012]根據(jù)還另外的實施例,事件管理資源可以被配置成產(chǎn)生第二狀態(tài)信息,以指示所發(fā)起的處理器高速緩存數(shù)據(jù)到非易失性存儲器的傳遞是否成功。事件管理資源還可以被配置成在相應的非易失性存儲資源中存儲第二狀態(tài)信息,使得狀態(tài)信息在電力的移除和再施加之后的稍后時間點處是可用的。
[0013]因此,在處理器環(huán)境的隨后的加電和/或重新引導時,第一狀態(tài)信息和第二狀態(tài)信息可用于檢索和分析,以確定在使用計算機的先前會話期間的高速緩存數(shù)據(jù)是否在復位事件之前被存儲在非易失性存儲器中。
[0014]在一個實施例中,計算機系統(tǒng)可以被配置成在計算機系統(tǒng)的重新引導時執(zhí)行B1S(基本輸入輸出系統(tǒng))軟件。軟件可以被配置成做出關于所存儲的狀態(tài)信息的設置的查詢,以確定相應的計算機系統(tǒng)的最后的掉電是否由對應的不合期望的事件(諸如電力故障)引起。此外,基于狀態(tài)信息的設置,軟件可以確定對應的數(shù)據(jù)(諸如在易失性存儲裝置中存儲的高速緩存數(shù)據(jù))是否在完全的電力丟失之前被恰當?shù)卮鎯Φ椒且资源鎯ζ鳌?br>[0015]在還另外的實施例中,在隨后的重新引導時,軟件(或其它合適的資源)可以被配置成在相應的軟件重新引導時復位第一狀態(tài)信息和第二信息。狀態(tài)信息的清除確保:每當在初始加電期間從存儲裝置讀取狀態(tài)信息時,指示針對使用相應計算機設備的先前會話的對應高速緩存數(shù)據(jù)是否被存儲在非易失性存儲器中。
[0016]通過非限制性示例的進一步方式,故障管理器資源可以被配置成檢索狀態(tài)信息并在相應的日志中存儲這樣的信息。因此,相應的日志可以用于檢測故障條件、復位條件等等的歷史。
[0017]在某些實例中,保存到非易失性存儲器的高速緩存數(shù)據(jù)可以用于將處理器環(huán)境還原到在發(fā)生相應故障之前的狀態(tài)。因此,本文的實施例包括:減輕在諸如電力丟失之類的觸發(fā)事件期間的數(shù)據(jù)丟失。
[0018]現(xiàn)在,更具體地,圖1是根據(jù)本文實施例的圖示處理器環(huán)境的示例性圖解。
[0019]正如所示,處理器環(huán)境100可以包括處理器資源122、對應的電源156、監(jiān)視器資源144、事件管理資源140、非易失性存儲器資源160、存儲資源195、故障管理器198和儲存庫180。
[0020]正如所示,電源156產(chǎn)生電力信號104以給處理器資源122供電。電力信號104可以被配置成生成任何合適的電壓,以給處理器環(huán)境100中的一個或多個不同類型的設備供電。
[0021]在該非限制性示例性實施例中,諸如一個或多個電容器之類的能量存儲資源103存儲由電源156提供的電力的至少一部分。在電力故障的事件中(諸如其中電源156不再輸出恰當電壓范圍中的電力信號104以給處理器環(huán)境122供電的條件),能量存儲資源103中存儲的能量在至少有限量的保持(holdup)時間內(nèi)繼續(xù)向處理器資源122提供適當?shù)碾娏Α?br>[0022]保持時間的量可以變化,這取決于諸如以下各項的參數(shù):由處理器資源122消耗的電力的量、與能量存儲資源103相關聯(lián)的能量存儲容量等等。通過非限制性示例的方式,能量存儲資源可以被配置成保持處理器資源122大約數(shù)毫秒或任何其它合適的量。
[0023]如進一步所示,處理器資源122可以被配置成包括一個或多個處理器單元110,諸如處理器單元110-1、處理器單元110-2等等。
[0024]在一個實施例中,處理器單元110執(zhí)行對應的軟件指令以執(zhí)行相同或不同的功能。由處理器單元110執(zhí)行的軟件指令可以從任何合適的資源檢索,諸如非易失性存儲器資源160的存儲單元167。
[0025]在該示例性實施例中,處理器單元110中的每一個包括促進相應處理線程的執(zhí)行的對應高速緩存資源。高速緩存120(高速緩存120-1、高速緩存120-2,...)可以被配置成存儲由相應的處理器單元使用的任何合適類型的信息,諸如可執(zhí)行代碼、檢索的數(shù)據(jù)、修改的數(shù)據(jù)等等。
[0026]典型地,高速緩存120存儲數(shù)據(jù)(代表相應的處理器單元),使得(由相應的處理器單元)對該數(shù)據(jù)的未來請求可以被更快地服務。例如,在相應的高速緩存中存儲的數(shù)據(jù)可以包括數(shù)據(jù)值,諸如還被存儲在別處的先前計算的值。如果請求的數(shù)據(jù)被包含在高速緩存中(即存在高速緩存命中),則相應的請求可以通過簡單地讀取高速緩存而被服務。從對應