險(xiǎn)模塊410進(jìn)行以下操作:(i)檢測電源危險(xiǎn)狀況(在該示例中,從主電源207切換為次電源209);以及
(ii)將電源危險(xiǎn)信號(hào)(經(jīng)由處理器集204)發(fā)送出至非易失性數(shù)據(jù)存儲(chǔ)處理器242。
[0033]處理進(jìn)入步驟S315,其中在該步驟S315中,(如正在非易失性數(shù)據(jù)存儲(chǔ)處理器242上執(zhí)行的)電源危險(xiǎn)接收模塊415接收步驟S310中發(fā)送出的電源危險(xiǎn)信號(hào)。響應(yīng)于該信號(hào),非易失性數(shù)據(jù)存儲(chǔ)子系統(tǒng)進(jìn)入“電源危險(xiǎn)模式”,其中將與以下的步驟S320有關(guān)地解釋其結(jié)果。
[0034]處理進(jìn)入步驟S320,其中在步驟S320中,LOC非易失性數(shù)據(jù)存儲(chǔ)處理器242 (根據(jù)作為重新排序模塊420所存儲(chǔ)的代碼)使用來自規(guī)則數(shù)據(jù)庫421的規(guī)則來對(duì)LOC 231重新排序。在該簡單示例中,僅存在如下一個(gè)規(guī)則:取消所有的數(shù)據(jù)完整性相關(guān)任務(wù)并且從LOC231去除這些任務(wù)??蛇x地,可以存在更多規(guī)則和更復(fù)雜規(guī)則以對(duì)LOC重新排序。將在本【具體實(shí)施方式】部分的更多說明和/或?qū)嵤├硬糠种谐尸F(xiàn)具有更多且更復(fù)雜規(guī)則的系統(tǒng)的示例。在本示例中,由于將數(shù)據(jù)完整性相關(guān)任務(wù)從LOC 231去除,因此這意味著數(shù)據(jù)將總體上更加快速地從寫高速緩存232寫入非易失性數(shù)據(jù)存儲(chǔ)介質(zhì)244的應(yīng)用程序相關(guān)數(shù)據(jù)部分245。這里將已響應(yīng)于電源危險(xiǎn)模式而重新排序之后的LOC稱為“重新排序L0C”。如步驟S325所示,根據(jù)重新排序LOC的操作繼續(xù)進(jìn)行,直到以下為止:(i)次電源209耗盡并且不存在更多電力;或者(ii)主電源恢復(fù)并且恢復(fù)正常操作(如以上與步驟S305有關(guān)地所述)。
[0035]II1.更多說明和/或?qū)嵤├?br>[0036]本發(fā)明意識(shí)到如今非易失性存儲(chǔ)子系統(tǒng)和數(shù)據(jù)存儲(chǔ)應(yīng)用層之間的協(xié)作不斷增加。本發(fā)明意識(shí)到由于非易失性存儲(chǔ)子系統(tǒng)和數(shù)據(jù)存儲(chǔ)應(yīng)用層之間的協(xié)作這一事實(shí)所引起的潛在問題經(jīng)常局限于:(i)與數(shù)據(jù)完整性檢查之間的總時(shí)間有關(guān)的限制;以及(ii)使數(shù)據(jù)完整性檢查功能有效或無效。本發(fā)明還意識(shí)到,由于非易失性存儲(chǔ)子系統(tǒng)可能被編程為在諸如由于電源丟失所引起的緊急停機(jī)操作期間等的、被證明是不合時(shí)宜時(shí)間的時(shí)間執(zhí)行這些后臺(tái)任務(wù),因此這可能成為問題。
[0037]本發(fā)明的一些實(shí)施例可以具有以下特征、特性和/或優(yōu)點(diǎn)中的一個(gè)或多個(gè):(i)主應(yīng)用程序和其關(guān)聯(lián)的非易失性數(shù)據(jù)存儲(chǔ)子系統(tǒng)之間的握手(附注:在本文獻(xiàn)中,可互換地使用術(shù)語握手和命令)向非易失性數(shù)據(jù)存儲(chǔ)子系統(tǒng)通知緊急停機(jī)可能即將來臨;(ii)響應(yīng)于被通知了停機(jī)可能即將來臨,非易失性數(shù)據(jù)存儲(chǔ)子系統(tǒng)重新排列其工作的優(yōu)先順序(即,重新排序?qū)⒁裱募捌淇勺x指令)。
[0038]關(guān)于前一自然段的列表中的項(xiàng)(ii),可以根據(jù)以下規(guī)則中的一個(gè)或多個(gè)來進(jìn)行指令的重新排序:(a)暫停所有后臺(tái)任務(wù)(諸如后臺(tái)介質(zhì)掃描等);(b)按順序執(zhí)行所有命令(無電源危險(xiǎn)模式重新排序);(c)使外部盤上所容納的任何內(nèi)部寫高速緩存無效(這意味著針對(duì)寫等的任何返回狀態(tài)表示向著非易失性存儲(chǔ)器的命令的狀態(tài));(d)相對(duì)于所有其它命令(這里有時(shí)稱為“cmd”)、優(yōu)先所有的寫;(e)在任何待定的寫請求之后,優(yōu)先所有的讀;(f)在針對(duì)現(xiàn)有的排隊(duì)命令的初始讀或?qū)懻埱笾?,?yōu)先錯(cuò)誤恢復(fù);以及(g)盤將記錄針對(duì)在該潛在錯(cuò)誤恢復(fù)時(shí)間段內(nèi)所執(zhí)行的各cmd的關(guān)鍵數(shù)據(jù)。關(guān)于規(guī)則(e),由于在0.5秒內(nèi)進(jìn)行95% (及以上)的成功錯(cuò)誤恢復(fù)并不少見,因此該規(guī)則可以是有幫助的。然而,如果進(jìn)行所有的可利用恢復(fù)步驟,則整個(gè)錯(cuò)誤恢復(fù)可能占用20秒的掛鐘時(shí)間。在該錯(cuò)誤恢復(fù)時(shí)間內(nèi),暫停(除錯(cuò)誤恢復(fù)以外的)針對(duì)盤的所有命令,從而(特別是在需要恢復(fù)一個(gè)以上的盤塊的情況下)創(chuàng)建可能占用你的可用UPS(不間斷電源)的高百分比的有效中斷期(blackout per1d)。關(guān)于規(guī)則(g),作為例示性示例,在處于該模式的狀態(tài)下,可以記錄請求類型、受影響的塊地址、完成狀況等。經(jīng)常將2個(gè)以上的單獨(dú)數(shù)據(jù)備份保持在存儲(chǔ)系統(tǒng)中。該數(shù)據(jù)隨后可用于解決數(shù)據(jù)的不一致(discrepancy)。
[0039]在至少一部分(如果不是所有)實(shí)施例中,在計(jì)算機(jī)主機(jī)向非易失性數(shù)據(jù)存儲(chǔ)子系統(tǒng)通知了電源丟失可能即將來臨之后,預(yù)期到非易失性數(shù)據(jù)存儲(chǔ)子系統(tǒng)保持通電,并且自身不會(huì)斷電(或至少自身不會(huì)立即斷電)。例如,即將來臨的電源丟失的警告可能由于以下原因中的至少一個(gè)原因而推進(jìn)電源的實(shí)際丟失:(i)存在臨時(shí)接管的次電源(例如,UPS);以及/或者(ii)檢測到用信號(hào)表示可能的電力丟失(例如,區(qū)域內(nèi)的電子風(fēng)暴)的狀況。從主機(jī)系統(tǒng)向著非易失性存儲(chǔ)子系統(tǒng)的“握手”通信的目的是使非易失性數(shù)據(jù)存儲(chǔ)子系統(tǒng)為停機(jī)做好準(zhǔn)備、并且使得不在允許主機(jī)將其所有數(shù)據(jù)寫入盤的通電工作時(shí)間的情況下的數(shù)據(jù)丟失(或至少相對(duì)重要數(shù)據(jù)的丟失)的可能性最小。
[0040]如果在次電源(例如,UPS)能夠支持盤電源要求的情況下電源恢復(fù),則主機(jī)進(jìn)行新的“握手”通信從而取消該特殊“電源危險(xiǎn)模式”,并且(在利用非易失性存儲(chǔ)子系統(tǒng)進(jìn)行了任何剩余的重新排序指令之前或之后)非易失性存儲(chǔ)子系統(tǒng)優(yōu)先級(jí)將恢復(fù)為正常。
[0041]一些傳統(tǒng)裝置可能具有以下特征:基于處理器從第一供電狀態(tài)進(jìn)入第二供電狀態(tài),CPU觸發(fā)從高速緩存向著盤的刷新。然而,這并沒有解決在盤自身上執(zhí)行的命令的處理順序。
[0042]一些傳統(tǒng)裝置可能包括以下特征:在通知即將發(fā)生的電源丟失時(shí),各主機(jī)將它們的本地高速緩存存儲(chǔ)器備份至這兩個(gè)盤,因而在重新開始正常操作時(shí),如果集群(cluster)之一隨后無法重新開始正常操作,則通過工作中的裝置可利用來自該失敗的集群的數(shù)據(jù)。然而,這并沒有解決盤(或存儲(chǔ)裝置)上的命令的排序。
[0043]一些傳統(tǒng)裝置可以包括以下算法:其中在存在盤驅(qū)動(dòng)電源的情況下,從易失性寫緩沖器直接流入盤驅(qū)動(dòng)器的數(shù)據(jù)繞過非易失性高速緩存。然而,這并沒有解決盤上的命令的排序。
[0044]—些傳統(tǒng)裝置可以具有如下特征:相對(duì)于來自應(yīng)用程序的新的I/O請求,優(yōu)先正刷新高速緩存的主機(jī)側(cè)的盤I/O操作。所有這些優(yōu)先級(jí)變化均在主機(jī)處理器側(cè),而不是在盤側(cè)。
[0045]一些傳統(tǒng)裝置可以具有如下特征:監(jiān)視NVRAM(非易失性隨機(jī)訪問存儲(chǔ)器)裝置是否具有后臺(tái)任務(wù)待定,并且在電源丟失即將來臨的情況下,對(duì)該任務(wù)進(jìn)行調(diào)度。如果NVRAM裝置執(zhí)行后臺(tái)操作,則在供電丟失之前,NVRAM裝置暫停后臺(tái)操作或完成后臺(tái)操作。然而,這并沒有解決盤上的命令的排序。
[0046]本公開的一些實(shí)施例如下:(i)(與以主機(jī)邏輯所實(shí)現(xiàn)的電源危險(xiǎn)響應(yīng)系統(tǒng)相對(duì)比)利用新的盤處理器邏輯來實(shí)現(xiàn);以及(ii)(根據(jù)一組規(guī)則中的規(guī)則)的后臺(tái)任務(wù)的肯定地(affirmatively)命令(而不是僅允許)暫停。
[0047]IV.定義
[0048]本發(fā)明:不應(yīng)被視為如下的絕對(duì)指示:術(shù)語“本發(fā)明”所述的主題被遞交的權(quán)利要求書或?qū)@麑彶檫^程之后最終授權(quán)的權(quán)利要求書所覆蓋。盡管術(shù)語“本發(fā)明”用于幫助讀者獲得這里的公開內(nèi)容可能被認(rèn)為是新的一般感覺,但如通過使用主語“本發(fā)明”所表示的該理解是暫定臨時(shí)的,并且由于發(fā)展了相關(guān)信息并且權(quán)利要求書可能修改,因此在專利審查期間改變。
[0049]實(shí)施例:參見以上針對(duì)“本發(fā)明”的定義-相似的注意事項(xiàng)適用于術(shù)語“實(shí)施例”。
當(dāng)前第3頁
1 
2 
3 
4