硬盤控制方法和裝置制造方法
【專利摘要】一種硬盤控制方法,包括以下步驟:將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤;控制所述至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑的其余硬盤進入深度休眠狀態(tài);循環(huán)執(zhí)行以下步驟:執(zhí)行倒計時指令;當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài);將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,且從下一條寫入指令起將數(shù)據(jù)記錄在所述進入喚醒狀態(tài)的硬盤;判定是否沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的硬盤的前一塊硬盤,若是,則控制所述前一塊硬盤進入深度休眠狀態(tài)。此外還提供了一種硬盤控制裝置。上述硬盤控制方法和裝置,如此控制多個硬盤交替工作,延長了硬盤的使用壽命。
【專利說明】硬盤控制方法和裝置
【技術(shù)領域】
[0001]本發(fā)明涉及計算機控制領域,特別是涉及一種硬盤控制方法和裝置。
【背景技術(shù)】
[0002]硬盤作為常用存儲設備,主要分為普通硬盤和寬溫硬盤。普通硬盤正常工作時間是連續(xù)5天工作,每天連續(xù)工作8小時;寬溫硬盤,在普通硬盤基礎上,對其內(nèi)部機械結(jié)構(gòu)、化學材料、電子器件做了特殊處理,因而其可以工作在更寬的溫度范圍。就硬盤的設計特點而言,其內(nèi)部具有非常精密的機械結(jié)構(gòu)設計,搭配控制芯片及控制軟件,將數(shù)據(jù)記錄到高速旋轉(zhuǎn)的磁盤上。
[0003]經(jīng)過大量數(shù)據(jù)統(tǒng)計,普通硬盤其工作時間超過5X8規(guī)格時,會隨機發(fā)生某些不確定故障,如數(shù)據(jù)讀寫錯誤、硬盤控制器狀態(tài)異常等,導致數(shù)據(jù)傳輸不穩(wěn)定、不可靠。所以,當需要使用普通硬盤作為視頻監(jiān)控數(shù)據(jù)記錄存儲設備時(如將普通硬盤應用于智能交通行業(yè)卡口工控機上),其往往需要24小時不間斷連續(xù)工作,直到定期維護檢修,其連續(xù)工作時間必定會遠遠超出其規(guī)格,降低硬盤壽命,甚至造成應用故障。
【發(fā)明內(nèi)容】
[0004]基于此,有必要提供一種能延長普通硬盤使用壽命的硬盤控制方法。
[0005]此外,還有必要提供一種能延長普通硬盤使用壽命的硬盤控制裝置。
[0006]一種硬盤控制方法,包括以下步驟:
[0007]將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤;
[0008]控制所述至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑的其余硬盤進入深度休眠狀態(tài);
[0009]執(zhí)行倒計時指令;
[0010]當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài);
[0011]將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,且從下一條寫入指令起將數(shù)據(jù)記錄在所述進入喚醒狀態(tài)的硬盤;
[0012]判定是否沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的硬盤的前一塊硬盤,若是,則控制所述前一塊硬盤進入深度休眠狀態(tài)。
[0013]在其中一個實施例中,在所述將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤的步驟之前,還包括步驟:
[0014]讀取所述至少兩塊硬盤的狀態(tài),判斷是否正常工作,若是,則將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤,否則重啟操作系統(tǒng)。
[0015]在其中一個實施例中,所述控制所述至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑的其余硬盤進入深度休眠狀態(tài)的步驟之后,還包括:
[0016]讀取所述其余硬盤的狀態(tài)寄存器值,判斷所述其余硬盤是否進入深度休眠狀態(tài),若是,則執(zhí)行倒計時指令,若否,則控制未進入深度休眠狀態(tài)的其余硬盤進行復位,然后再控制復位后的硬盤進入深度休眠狀態(tài)。
[0017]在其中一個實施例中,所述當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中的一塊硬盤進入喚醒狀態(tài)的步驟之后,還包括步驟:
[0018]讀取所述進入喚醒狀態(tài)的硬盤的狀態(tài)寄存器值,判斷所述進入喚醒狀態(tài)的硬盤是否進入正常工作狀態(tài),若是,則將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,若否,則將所述進入喚醒狀態(tài)的硬盤進行復位,然后再將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤。
[0019]在其中一個實施例中,所述當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài)的步驟之后,還包括步驟:
[0020]向所述進入喚醒狀態(tài)的硬盤寫入預定數(shù)據(jù),并校驗數(shù)據(jù);
[0021]判斷校驗是否通過,若是,則將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,若否,則對所述進入喚醒狀態(tài)的硬盤重新寫入喚醒指令。
[0022]一種硬盤控制裝置,包括:
[0023]路徑設置模塊,用于將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤;
[0024]休眠控制模塊,用于控制所述至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑的其余硬盤進入深度休眠狀態(tài);
[0025]計時模塊,用于執(zhí)行倒計時指令;
[0026]喚醒模塊,用于當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài);
[0027]所述路徑設置模塊還用于將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,且從下一條寫入指令起將數(shù)據(jù)記錄在所述進入喚醒狀態(tài)的硬盤;
[0028]數(shù)據(jù)寫入判斷模塊,用于判定是否沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的硬盤的前一塊硬盤;
[0029]所述休眠控制模塊還用于在判定沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的硬盤的前一塊硬盤時,控制所述前一塊硬盤進入深度休眠狀態(tài),然后所述計時模塊、喚醒模塊、路徑設置模塊、數(shù)據(jù)寫入判斷模塊依次執(zhí)行。
[0030]在其中一個實施例中,還包括:
[0031]第一狀態(tài)判斷模塊,用于讀取所述至少兩個硬盤的狀態(tài),判斷是否正常工作;
[0032]所述路徑設置模塊還用于在判斷出至少兩個硬盤正常工作時,將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤;
[0033]重啟模塊,用于在判斷出至少兩個硬盤未正常工作時,重啟操作系統(tǒng)。
[0034]在其中一個實施例中,還包括:
[0035]休眠狀態(tài)判斷模塊,用于讀取所述其余硬盤的狀態(tài)寄存器值,判斷所述其余硬盤是否進入深度休眠狀態(tài);
[0036]所述計時模塊還用于在判斷出所述其余硬盤進入深度休眠狀態(tài)時,執(zhí)行倒計時指令;
[0037]第一復位模塊,用于在判斷出所述其余硬盤未進入深度休眠狀態(tài)時,則對未進入深度休眠狀態(tài)的其余硬盤進行復位;
[0038]所述休眠控制模塊還用于控制復位后的硬盤進入深度休眠狀態(tài)。[0039]在其中一個實施例中,還包括:
[0040]第二狀態(tài)判斷模塊,用于讀取所述進入喚醒狀態(tài)的硬盤的狀態(tài)寄存器值,判斷所述進入喚醒狀態(tài)的硬盤是否進入正常工作狀態(tài);
[0041]所述路徑設置模塊還用于在判斷出所述進入喚醒狀態(tài)的硬盤進入正常工作狀態(tài)時,將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤;
[0042]第二復位模塊,用于在判斷出所述控制進入喚醒狀態(tài)的硬盤未進入正常工作狀態(tài)時,將所述進入喚醒狀態(tài)的硬盤進行復位,然后所述路徑設置模塊將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤。
[0043]在其中一個實施例中,還包括:
[0044]校驗模塊,用于向所述進入喚醒狀態(tài)的硬盤寫入預定數(shù)據(jù),并校驗數(shù)據(jù),并判斷校驗是否通過;
[0045]所述路徑設置模塊還用于判斷校驗通過時,將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤;
[0046]所述喚醒模塊還用于在校驗未通過時,對所述進入喚醒狀態(tài)的硬盤重新寫入喚醒指令。
[0047]上述硬盤控制方法和裝置,通過設置至少兩塊硬盤中的一塊硬盤作為數(shù)據(jù)記錄路徑,控制其余硬盤進入深度休眠狀態(tài),并計時,計時時間到,喚醒一塊處于深度休眠狀態(tài)的硬盤設置為數(shù)據(jù)記錄路徑,將原來處于工作狀態(tài)的硬盤控制進入深度休眠狀態(tài),如此控制多個硬盤交替工作,延長了硬盤的使用壽命,且判斷沒有數(shù)據(jù)寫入原來處于工作狀態(tài)的硬盤,才控制其進入深度休眠狀態(tài),確保切換硬盤時,不丟失數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0048]圖1為一個實施例中硬盤控制方法的流程示意圖;
[0049]圖2為以兩塊硬盤為例的硬盤控制方法的流程示意圖;
[0050]圖3為一個實施例中硬盤控制裝置的內(nèi)部結(jié)構(gòu)示意圖;
[0051]圖4為另一個實施例中硬盤控制裝置的內(nèi)部結(jié)構(gòu)示意圖;
[0052]圖5為另一個實施例中硬盤控制裝置的內(nèi)部結(jié)構(gòu)示意圖;
[0053]圖6為硬盤控制裝置設置在南橋上的應用示意圖。
【具體實施方式】
[0054]下面結(jié)合具體的實施例及附圖對硬盤控制方法和裝置的技術(shù)方案進行詳細的描述,以使其更加清楚。
[0055]如圖1所示,在一個實施例中,一種硬盤控制方法,包括以下步驟:
[0056]步驟S110,將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤。
[0057]具體的,至少兩塊硬盤可為兩塊、三塊以上硬盤等。選擇其中任意一塊硬盤作為數(shù)據(jù)記錄路徑的硬盤。例如,至少兩塊硬盤為硬盤A、硬盤B和硬盤C,將數(shù)據(jù)記錄路徑設置為硬盤A。將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤是指數(shù)據(jù)記錄路徑設置為某一硬盤盤符,如硬盤盤符A。設置數(shù)據(jù)記錄路徑后,后續(xù)將數(shù)據(jù)存儲至作為數(shù)據(jù)記錄路徑的硬盤。[0058]在一個優(yōu)選的實施例中,為了保證操作系統(tǒng)長期穩(wěn)定工作,本實施例中的硬盤控制方法執(zhí)行之前,先將操作系統(tǒng)安裝在固態(tài)電子盤內(nèi),選擇至少兩塊普通硬盤作為視頻、圖片或文本數(shù)據(jù)存儲記錄的設備。當然,也可將操作系統(tǒng)安裝在CF卡或者其他讀寫壽命較長的存儲設備中,本發(fā)明實施例中的硬盤控制方法是針對作為視頻、圖片或文本數(shù)據(jù)存儲記錄的普通硬盤進行控制的。
[0059]其次,啟動操作系統(tǒng),讀取至少兩塊硬盤的狀態(tài),具體是指讀取至少兩塊硬盤的狀態(tài)寄存器的值,通過狀態(tài)寄存器的值判斷至少兩塊硬盤是否正常工作,若是,則將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤,否則重啟操作系統(tǒng)。具體的,正常工作是指硬盤可正常運行,可從硬盤進行準確讀取或?qū)懭霐?shù)據(jù),且能進行控制。
[0060]步驟S120,控制至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑的其余硬盤進入深度休眠狀態(tài)。
[0061]具體的,至少兩塊硬盤中選擇其中一塊硬盤作為數(shù)據(jù)記錄路徑的硬盤,則可控制其余硬盤進入深度休眠狀態(tài),使得只需一個硬盤處于工作狀態(tài)。通過向其余硬盤寫入休眠指令,控制其余硬盤進入深度休眠狀態(tài)。寫入休眠指令可為往其余硬盤控制芯片電源管理寄存器中寫值。然后根據(jù)寫入的值控制硬盤進入深度休眠狀態(tài)。處于深度休眠狀態(tài)的硬盤沒有運轉(zhuǎn),沒有進行數(shù)據(jù)讀寫操作,延長了硬盤的使用壽命。
[0062]在一個實施例中,在步驟S120之后,還包括步驟:讀取其余硬盤的狀態(tài)寄存器值,判斷其余硬盤是否進入深度休眠狀態(tài),若是,則執(zhí)行倒計時指令,若否,則對未進入深度休眠狀態(tài)的其余硬盤進行復位,然后再控制復位后的硬盤進入深度休眠狀態(tài)。
[0063]具體的,可預先設定狀態(tài)寄存器值為第一預定值時表示深度休眠狀態(tài),狀態(tài)寄存器值為第二預定值時表示喚醒狀態(tài)等。讀取硬盤的狀態(tài)寄存器值,將讀取的狀態(tài)寄存器值與第一預定值比較,若相同,則表示硬盤進入深度休眠狀態(tài)。
[0064]向未進入深度休眠狀態(tài)的其余硬盤中寫入復位指令,根據(jù)復位指令對其進行復位。硬盤復位是指將硬盤重啟,變?yōu)槌跏蓟癄顟B(tài),該初始化狀態(tài)是指硬盤處于正常工作狀態(tài)。具體的,正常工作狀態(tài)是指硬盤可正常運行,可從硬盤進行準確讀取或?qū)懭霐?shù)據(jù),且能進行控制。
[0065]步驟S130,執(zhí)行倒計時指令。
[0066]具體的,倒計時的時間可根據(jù)實際應用設置,如7小時50分等,但不限于此。倒計時的時間小于硬盤允許的正常工作時間,如普通硬盤的允許工作時間為8小時,倒計時時間為7小時50分。
[0067]步驟S140,當?shù)褂嫊r結(jié)束時控制處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài)。
[0068]具體的,計時時間到,只需將其余硬盤中的其中一塊硬盤喚醒,作為數(shù)據(jù)記錄路徑的新硬盤,其他硬盤讓其仍處于深度休眠狀態(tài),可延長硬盤的使用壽命。通過對處于深度休眠狀態(tài)的其中一塊硬盤寫入喚醒指令,根據(jù)喚醒指令控制寫入喚醒指令的硬盤從深度休眠狀態(tài)進入喚醒狀態(tài)。本實施例中,可往處于深度休眠狀態(tài)的其中一塊硬盤的控制芯片的電源管理寄存器中寫值,根據(jù)寫值喚醒該硬盤。
[0069]在一個實施例中,在步驟S140之后,還包括步驟:讀取進入喚醒狀態(tài)的硬盤的狀態(tài)寄存器值,判斷進入喚醒狀態(tài)的硬盤是否進入正常工作狀態(tài),若是,則將數(shù)據(jù)記錄路徑設置為該進入喚醒狀態(tài)的硬盤,若否,則將進入喚醒狀態(tài)的硬盤進行復位,然后再將數(shù)據(jù)記錄路徑設置為進入喚醒狀態(tài)的硬盤。
[0070]具體的,讀取硬盤的狀態(tài)寄存器值,將讀取的狀態(tài)寄存器值與第二預定值比較,若相同,則表示硬盤進入正常工作狀態(tài)。向進入喚醒狀態(tài)的硬盤寫入復位指令,根據(jù)復位指令對其進行復位。硬盤復位是指將硬盤重啟,變?yōu)槌跏蓟癄顟B(tài),該初始化狀態(tài)是指硬盤處于正常工作狀態(tài)。在硬盤為被喚醒進入正常工作狀態(tài)時,可采用對硬盤進行復位,使其進入正常工作狀態(tài),以保證處于深度休眠狀態(tài)的硬盤被喚醒,確保有喚醒的硬盤代替已持續(xù)工作倒計時時間的硬盤。
[0071]進一步的,在一個實施例中,在步驟S140之后,還包括步驟:向進入喚醒狀態(tài)的硬盤寫入預定數(shù)據(jù),并校驗數(shù)據(jù);判斷校驗是否通過,若是,則將數(shù)據(jù)記錄路徑設置為進入喚醒狀態(tài)的硬盤,若否,則對進入喚醒狀態(tài)的硬盤重新寫入喚醒指令。
[0072]具體的,預定數(shù)據(jù)可根據(jù)需要選定,校驗該預定數(shù)據(jù)是否正確,可避免喚醒狀態(tài)的硬盤存儲數(shù)據(jù)出現(xiàn)不穩(wěn)定,加強數(shù)據(jù)記錄可靠性。
[0073]步驟S150,將數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,且從下一條寫入指令起將數(shù)據(jù)記錄在所述進入喚醒狀態(tài)的硬盤。
[0074]具體的,將數(shù)據(jù)記錄路徑設置為進入喚醒狀態(tài)的硬盤后,執(zhí)行新的寫入指令,將數(shù)據(jù)均記錄在進入喚醒狀態(tài)的硬盤上。
[0075]步驟S160,判定是否沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的前一塊硬盤,若是,執(zhí)行步驟S170,若否,返回步驟S160。
[0076]例如,首先數(shù)據(jù)記錄路徑設置為硬盤A,倒計時間結(jié)束時,控制處于深度休眠狀態(tài)的硬盤B進入喚醒狀態(tài),并將數(shù)據(jù)記錄路徑設置為硬盤B,那么硬盤A為被設置為數(shù)據(jù)記錄路徑的硬盤B的前一塊硬盤。
[0077]步驟S170,控制前一塊硬盤進入深度休眠狀態(tài)。
[0078]具體的,判斷沒有數(shù)據(jù)寫入前一塊硬盤時,將該前一塊硬盤控制進入深度休眠狀態(tài),使得前一塊硬盤處于休息狀態(tài),延長前一塊硬盤的使用壽命。判斷沒有數(shù)據(jù)寫入前一塊硬盤,可避免切換硬盤造成數(shù)據(jù)存儲遺漏。
[0079]循環(huán)執(zhí)行上述步驟S130至步驟S170。
[0080]上述硬盤控制方法,通過設置至少兩塊硬盤中的一塊硬盤作為數(shù)據(jù)記錄路徑,控制其余硬盤進入深度休眠狀態(tài),并計時,計時時間到,喚醒一塊處于深度休眠狀態(tài)的硬盤設置為數(shù)據(jù)記錄路徑,將原來處于工作狀態(tài)的硬盤控制進入深度休眠狀態(tài),如此控制多個硬盤交替工作,延長了硬盤的使用壽命,且判斷沒有數(shù)據(jù)寫入原來處于工作狀態(tài)的硬盤后,才控制其進入深度休眠狀態(tài),確保切換硬盤時,不丟失數(shù)據(jù)。
[0081]如圖2所示,在一個實施例中,以兩塊硬盤(硬盤A和硬盤B)為例,詳細描述硬盤控制方法的工作步驟,具體包括:
[0082]步驟S201,開機/重啟操作系統(tǒng),并啟動硬盤管理程序。
[0083]具體的,硬盤管理程序即為硬盤控制軟件,用來實現(xiàn)上述硬盤控制方法。
[0084]步驟S203,檢測兩塊硬盤是否正常工作,若是,執(zhí)行步驟S205,若否,返回步驟S201。
[0085]具體的,兩塊硬盤正常工作是指硬盤可正常運行,可從硬盤進行準確讀取或?qū)懭霐?shù)據(jù),且能進行控制。具體是指讀取兩塊硬盤的狀態(tài)寄存器的值,通過狀態(tài)寄存器的值判斷兩塊硬盤是否正常工作。
[0086]步驟S205,將數(shù)據(jù)記錄路徑設置為硬盤A,并開始將數(shù)據(jù)存儲至硬盤A。步驟S207,控制硬盤B進入深度休眠狀態(tài)。
[0087]具體的,對硬盤B寫入休眠指令,根據(jù)休眠指令控制硬盤B進入深度休眠狀態(tài)。
[0088]步驟S209,判斷硬盤B是否進入深度休眠狀態(tài),若是,則執(zhí)行步驟S213,若否,則執(zhí)行步驟S211。
[0089]步驟S211,對硬盤B進行復位,再返回步驟S207。
[0090]具體的,對硬盤B寫入復位指令,根據(jù)復位指令對硬盤B進行復位。
[0091]步驟S213,執(zhí)行倒計時指令。
[0092]步驟S215,判斷倒計時是否結(jié)束,若是,則執(zhí)行步驟S217,否則繼續(xù)執(zhí)行步驟S215。
[0093]步驟S217,對硬盤B寫入喚醒指令。
[0094]步驟S219,判斷硬盤B是否進入正常工作狀態(tài),若是,則執(zhí)行步驟S223,若否,則執(zhí)行步驟S221。
[0095]步驟S221,對硬盤B進行復位。
[0096]具體的,對硬盤B寫入復位指令,根據(jù)復位指令對硬盤B進行復位。
[0097]步驟S223,向硬盤B寫入一串預定數(shù)據(jù)并且校驗數(shù)據(jù)。
[0098]步驟S225,判斷硬盤B是否可正常記錄數(shù)據(jù),若是,則執(zhí)行步驟S227,否則返回步驟 S217。
[0099]步驟S227,將數(shù)據(jù)記錄路徑設置為硬盤B,從下一條寫入指令起將數(shù)據(jù)記錄在硬盤B。步驟S229,判定是否無數(shù)據(jù)寫入硬盤A,若是,執(zhí)行步驟S231,若否,返回步驟S229。
[0100]步驟S231,控制硬盤A進入深度休眠狀態(tài)。
[0101]具體的,對硬盤A寫入休眠指令,根據(jù)休眠指令控制硬盤A進入深度休眠狀態(tài)。
[0102]步驟S233,判斷硬盤A是否進入深度休眠狀態(tài),若是,則執(zhí)行步驟S237,若否,執(zhí)行步驟S235。
[0103]步驟S235,對硬盤A進行復位,再返回步驟S231。
[0104]具體的,對硬盤A寫入復位指令,根據(jù)復位指令對硬盤A進行復位。
[0105]步驟S237,執(zhí)行倒計時指令。
[0106]步驟S239,判斷倒計時是否結(jié)束,若是,執(zhí)行步驟S241,否則返回步驟S239。
[0107]步驟S241,對硬盤A寫入喚醒指令。
[0108]步驟S243,判斷硬盤A是否進入正常工作狀態(tài),若是,執(zhí)行步驟S247,若否,執(zhí)行步驟 S245。
[0109]步驟S245,對硬盤A進行復位。
[0110]具體的,對硬盤A寫入復位指令,根據(jù)復位指令對硬盤A進行復位。
[0111]步驟S247,向硬盤A寫入一串預定數(shù)據(jù)并且校驗數(shù)據(jù)。
[0112]步驟S249,判斷硬盤A是否可正常記錄數(shù)據(jù),若是,執(zhí)行步驟S251,若否,執(zhí)行步驟S241。
[0113]步驟S251,將數(shù)據(jù)記錄路徑設置為硬盤A,從下一條寫入指令起將數(shù)據(jù)記錄在硬盤A。
[0114]步驟S253,判定是否無數(shù)據(jù)寫入硬盤B,若是返回步驟S207,若否,則返回步驟S253。
[0115]上述硬盤控制方法,通過采用兩塊硬盤交替工作,既保證了數(shù)據(jù)記錄存儲,也保證了硬盤在正常工作時間范圍內(nèi)工作,延長了硬盤的使用壽命,且判斷沒有數(shù)據(jù)寫入原來處于工作狀態(tài)的硬盤后,才控制其進入深度休眠狀態(tài),確保切換硬盤時,不丟失數(shù)據(jù)。
[0116]如圖3所示,在一個實施例中,一種硬盤控制裝置,包括路徑設置模塊110、休眠控制模塊120、計時模塊130、喚醒模塊140和數(shù)據(jù)寫入判斷模塊150。其中:
[0117]路徑設置模塊110用于將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤。
[0118]具體的,至少兩塊硬盤可為兩塊、三塊以上硬盤等。選擇其中任意一塊硬盤作為數(shù)據(jù)記錄路徑的硬盤。例如,至少兩塊硬盤為硬盤A、硬盤B和硬盤C,將數(shù)據(jù)記錄路徑設置為硬盤A。將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤是指數(shù)據(jù)記錄路徑設置為某一硬盤盤符,如硬盤盤符A。設置數(shù)據(jù)記錄路徑后,后續(xù)將數(shù)據(jù)存儲至作為數(shù)據(jù)記錄路徑的硬盤。
[0119]為了保證操作系統(tǒng)長期穩(wěn)定工作,本實施例中的硬盤控制裝置工作之前,先將操作系統(tǒng)安裝在固態(tài)電子盤內(nèi),選擇至少兩塊普通硬盤作為視頻、圖片或文本數(shù)據(jù)存儲記錄的設備。當然,也可將操作系統(tǒng)安裝在CF卡或者其他讀寫壽命較長的存儲設備中,本發(fā)明實施例中的硬盤控制裝置是針對作為視頻、圖片或文本數(shù)據(jù)存儲記錄的普通硬盤進行控制的。其次,啟動操作系統(tǒng),讀取至少兩塊硬盤的狀態(tài),判斷至少兩塊硬盤是否正常工作,若是,則將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤,否則重啟操作系統(tǒng)。具體的,正常工作是指硬盤可正常運行,可從硬盤進行準確讀取或?qū)懭霐?shù)據(jù),且能進行控制。
[0120]休眠控制模塊120用于控制至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑的其余硬盤進入深度休眠狀態(tài)。
[0121]具體的,至少兩塊硬盤中選擇其中一塊硬盤作為數(shù)據(jù)記錄路徑的硬盤,則休眠控制模塊120可控制其余硬盤進入深度休眠狀態(tài),使得只需一個硬盤處于工作狀態(tài)。通過向其余硬盤寫入休眠指令,控制其余硬盤進入深度休眠狀態(tài)。寫入休眠指令可為往其余硬盤控制芯片電源管理寄存器中寫值。然后根據(jù)寫入的值控制硬盤進入深度休眠狀態(tài)。處于深度休眠狀態(tài)的硬盤沒有運轉(zhuǎn),沒有進行數(shù)據(jù)讀寫操作,延長了硬盤的使用壽命。
[0122]計時模塊130用于執(zhí)行倒計時指令。具體的,倒計時的時間可根據(jù)實際應用設置,如7小時50分等,但不限于此。倒計時的時間小于硬盤允許的正常工作時間,如普通硬盤的允許工作時間為8小時,倒計時時間為7小時50分。
[0123]喚醒模塊140用于倒計時結(jié)束,對處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài)。
[0124]具體的,計時時間到,只需將其余硬盤中的其中一塊硬盤喚醒,作為數(shù)據(jù)記錄路徑的新硬盤,其他硬盤讓其仍處于深度休眠狀態(tài),可延長硬盤的使用壽命。通過對處于深度休眠狀態(tài)的其中一塊硬盤寫入喚醒指令,根據(jù)喚醒指令控制寫入喚醒指令的硬盤從深度休眠狀態(tài)進入喚醒狀態(tài)。本實施例中,喚醒模塊140可往處于深度休眠狀態(tài)的其中一塊硬盤的控制芯片的電源管理寄存器中寫值,根據(jù)寫值喚醒該硬盤。
[0125]路徑設置模塊110還用于將所述數(shù)據(jù)記錄路徑設置為進入喚醒狀態(tài)的硬盤,且從下一條寫指令起將數(shù)據(jù)記錄到進入喚醒狀態(tài)的硬盤。
[0126]數(shù)據(jù)寫入判斷模塊150用于判定是否沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的前一塊硬盤。
[0127]例如,首先數(shù)據(jù)記錄路徑設置為硬盤A,倒計時間結(jié)束時,控制處于深度休眠狀態(tài)的硬盤B進入喚醒狀態(tài),并將數(shù)據(jù)記錄路徑設置為硬盤B,那么硬盤A為被設置為數(shù)據(jù)記錄路徑的硬盤B的前一塊硬盤。
[0128]休眠控制模塊120還用于在判定沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的前一塊硬盤時,控制前一塊硬盤進入深度休眠狀態(tài),然后計時模塊130、喚醒模塊140、路徑設置模塊110、數(shù)據(jù)寫入判斷模塊150依次執(zhí)行。
[0129]具體的,判斷沒有數(shù)據(jù)寫入前一塊硬盤時,將該前一塊硬盤控制進入深度休眠狀態(tài),使得前一塊硬盤處于休息狀態(tài),延長前一塊硬盤的使用壽命。判斷沒有數(shù)據(jù)寫入前一塊硬盤,可避免切換硬盤造成數(shù)據(jù)存儲遺漏。
[0130]上述硬盤控制裝置,路徑設置模塊110設置至少兩塊硬盤中的一塊硬盤作為數(shù)據(jù)記錄路徑,休眠控制模塊120控制其余硬盤進入深度休眠狀態(tài),計時模塊130計時,計時時間到,喚醒模塊140喚醒一塊處于深度休眠狀態(tài)的硬盤,且路徑設置模塊110將喚醒的硬盤設置為數(shù)據(jù)記錄路徑,休眠控制模塊120將原來處于工作狀態(tài)的硬盤控制進入深度休眠狀態(tài),如此控制多個硬盤交替工作,延長了硬盤的使用壽命,且判斷沒有數(shù)據(jù)寫入原來處于工作狀態(tài)的硬盤,才控制其進入深度休眠狀態(tài),確保切換硬盤時,不丟失數(shù)據(jù)。
[0131]如圖4所示,在一個實施例中,上述硬盤控制裝置,除了包括路徑設置模塊110、休眠控制模塊120、計時模塊130、喚醒模塊140和數(shù)據(jù)寫入判斷模塊150,還包括第一狀態(tài)判斷模塊160和重啟模塊170。其中:
[0132]第一狀態(tài)判斷模塊160用于讀取所述至少兩個硬盤的狀態(tài),具體是指第一狀態(tài)判斷模塊160讀取至少兩塊硬盤的狀態(tài)寄存器的值,通過狀態(tài)寄存器的值判斷是否正常工作。
[0133]路徑設置模塊110還用于在判斷出至少兩個硬盤正常工作時,將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤。
[0134]重啟模塊170用于在判斷出至少兩個硬盤未正常工作時,重啟操作系統(tǒng)。具體的,正常工作是指硬盤可正常運行,可從硬盤進行準確讀取或?qū)懭霐?shù)據(jù),且能進行控制。
[0135]本實施例中,通過判斷至少兩個硬盤的狀態(tài),在數(shù)據(jù)寫入前,保證硬盤能正常工作。
[0136]如圖5所示,在一個實施例中,上述硬盤控制裝置,除了包括路徑設置模塊110、休眠控制模塊120、計時模塊130、喚醒模塊140和數(shù)據(jù)寫入判斷模塊150,還包括休眠狀態(tài)判斷模塊180、第一復位模塊190、第二狀態(tài)判斷模塊200、第二復位模塊210和校驗模塊220。其中:
[0137]休眠狀態(tài)判斷模塊180用于在休眠控制模塊120根據(jù)休眠指令控制其余硬盤進入深度休眠狀態(tài)之后,讀取其余硬盤的狀態(tài)寄存器值,判斷其余硬盤是否進入深度休眠狀態(tài)。
[0138]具體的,可預先設定狀態(tài)寄存器值為第一預定值時表示深度休眠狀態(tài),狀態(tài)寄存器值為第二預定值時表示喚醒且正常工作狀態(tài)等。讀取硬盤的狀態(tài)寄存器值,將讀取的狀態(tài)寄存器值與第一預定值比較,若相同,則表示硬盤進入深度休眠狀態(tài)。[0139]計時模塊130還用于在判斷出其余硬盤進入深度休眠狀態(tài)時,執(zhí)行倒計時指令。
[0140]第一復位模塊190用于在判斷出其余硬盤未進入深度休眠狀態(tài)時,則對未進入深度休眠狀態(tài)的其余硬盤進行復位。
[0141]具體的,向未進入深度休眠狀態(tài)的其余硬盤中寫入復位指令,根據(jù)復位指令對其進行復位。硬盤復位是指將硬盤重啟,變?yōu)槌跏蓟癄顟B(tài),該初始化狀態(tài)是指硬盤處于正常工作狀態(tài)。具體的,正常工作狀態(tài)是指硬盤可正常運行,可從硬盤進行準確讀取或?qū)懭霐?shù)據(jù),且能進行控制。
[0142]休眠控制模塊120還用于控制復位后的硬盤進入深度休眠狀態(tài)。
[0143]第二狀態(tài)判斷模塊200用于在喚醒模塊140控制處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài)后,讀取進入喚醒狀態(tài)的硬盤的狀態(tài)寄存器值,判斷進入喚醒狀態(tài)的硬盤是否進入正常工作狀態(tài)。
[0144]具體的,讀取硬盤的狀態(tài)寄存器值,將讀取的狀態(tài)寄存器值與第二預定值比較,若相同,則表示硬盤進入正常工作狀態(tài)。
[0145]路徑設置模塊110還用于在判斷出進入喚醒狀態(tài)的硬盤進入正常工作狀態(tài)時,將數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤。
[0146]第二復位模塊210用于在判斷出進入喚醒狀態(tài)的硬盤未進入正常工作狀態(tài)時,將所述進入喚醒狀態(tài)的硬盤進行復位。然后路徑設置模塊110將數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤。
[0147]具體的,第二復位模塊210向進入喚醒狀態(tài)的硬盤寫入復位指令,根據(jù)復位指令對其進行復位。硬盤復位是指將硬盤重啟,變?yōu)槌跏蓟癄顟B(tài),該初始化狀態(tài)是指硬盤處于正常工作狀態(tài)。在硬盤為被喚醒進入正常工作狀態(tài)時,可采用對硬盤進行復位,使其進入正常工作狀態(tài),以保證處于深度休眠狀態(tài)的硬盤被喚醒,確保有喚醒的硬盤代替已持續(xù)工作倒計時時間的硬盤。
[0148]校驗模塊220用于向進入喚醒狀態(tài)的硬盤寫入預定數(shù)據(jù),校驗數(shù)據(jù),并判斷校驗是否通過。
[0149]具體的,預定數(shù)據(jù)可根據(jù)需要選定,校驗該預定數(shù)據(jù)是否正確,可避免喚醒狀態(tài)的硬盤存儲數(shù)據(jù)出現(xiàn)不穩(wěn)定,加強數(shù)據(jù)記錄可靠性。
[0150]路徑設置模塊110還用于判斷校驗通過時,將數(shù)據(jù)記錄路徑設置為進入喚醒狀態(tài)的硬盤。
[0151]喚醒模塊140還用于在校驗未通過時,對進入喚醒狀態(tài)的硬盤重新寫入喚醒指令。具體的,喚醒模塊140對進入喚醒狀態(tài)的硬盤重新寫入喚醒指令,以重新使該硬盤進入喚醒狀態(tài)。
[0152]在其他實施例中,上述硬盤控制裝置,除了包括路徑設置模塊110、休眠控制模塊120、計時模塊130、喚醒模塊140和數(shù)據(jù)寫入判斷模塊150,還包括休眠狀態(tài)判斷模塊180和第一復位模塊190 ;或者,還可包括第二狀態(tài)判斷模塊200和第二復位模塊210 ;或者還可包括校驗模塊220等。第一復位模塊190和第二復位模塊210可統(tǒng)稱為復位模塊。
[0153]在一個實施例中,以兩塊硬盤(硬盤A和硬盤B)為例,詳細描述硬盤控制裝置的工作過程,具體包括:
[0154](I)開機/重啟操作系統(tǒng),并啟動硬盤管理程序。[0155]具體的,硬盤管理程序即為硬盤控制軟件,用來實現(xiàn)硬盤控制方法。
[0156](2)第一狀態(tài)判斷模塊160檢測兩塊硬盤是否工作正常,若是,執(zhí)行(3),若否,返回(I)。
[0157]具體的,兩塊硬盤工作正常是指能進行讀取、寫入數(shù)據(jù)。
[0158](3 )路徑設置模塊110將數(shù)據(jù)記錄路徑設置為硬盤A,并開始將數(shù)據(jù)存儲至硬盤A。
[0159](4)休眠控制模塊120控制硬盤B進入深度休眠狀態(tài)。
[0160]具體的,對硬盤B寫入休眠指令,根據(jù)休眠指令控制硬盤B進入深度休眠狀態(tài)。
[0161](5)休眠狀態(tài)判斷模塊180判斷硬盤B是否進入深度休眠狀態(tài),若是,則執(zhí)行(7),若否,則執(zhí)行(6)。
[0162](6)第一復位模塊190對硬盤B進行復位,再返回(4)。
[0163]具體的,對硬盤B寫入復位指令,根據(jù)復位指令對硬盤B進行復位。
[0164](7)計時模塊130執(zhí)行倒計時指令。
[0165](8)計時模塊130判斷倒計時是否結(jié)束,若是,則執(zhí)行(9),否則繼續(xù)執(zhí)行(8)。
[0166](9)喚醒模塊140對硬盤B寫入喚醒指令。
[0167](10)第二狀態(tài)判斷模塊160判斷硬盤B是否進入正常工作狀態(tài),若是,則執(zhí)行
(12),若否,則執(zhí)行(11)。
[0168](11)第二復位模塊210對硬盤B進行復位。
[0169]具體的,對硬盤B寫入復位指令,根據(jù)復位指令對硬盤B進行復位。
[0170](12)校驗模塊220向硬盤B寫入一串預定數(shù)據(jù)并且校驗數(shù)據(jù)。
[0171](13)校驗模塊220判斷硬盤B是否可正常記錄數(shù)據(jù),若是,則執(zhí)行(14),否則返回步(9)。
[0172](14)路徑設置模塊110將操作系統(tǒng)數(shù)據(jù)記錄路徑設置為硬盤B。
[0173](15)數(shù)寫入判斷模塊150判斷是否無數(shù)據(jù)寫入硬盤A,若是,執(zhí)行(16),若否,返回
(15)。
[0174](16)休眠控制模塊120控制硬盤A進入深度休眠狀態(tài)。
[0175]具體的,對硬盤B寫入休眠指令,根據(jù)休眠指令控制硬盤B進入深度休眠狀態(tài)。
[0176](17)休眠狀態(tài)判斷模塊180判斷硬盤A是否進入深度休眠狀態(tài),若是,則執(zhí)行
(19),若否,執(zhí)行(18)。
[0177](18)第一復位模塊190對硬盤A進行復位,再返回(16)。
[0178]具體的,對硬盤A寫入復位指令,根據(jù)復位指令對硬盤A進行復位。
[0179](19)計時模塊130執(zhí)行倒計時指令。
[0180](20)計時模塊130判斷倒計時是否結(jié)束,若是,執(zhí)行(21),否則(20)。
[0181](21)喚醒模塊140對硬盤A寫入喚醒指令。
[0182](22 )第二狀態(tài)判斷模塊200判斷硬盤A是否進入正常工作狀態(tài),若是,執(zhí)行(24 ),若否,執(zhí)行(23)。
[0183](23)第二復位模塊210對硬盤A進行復位,執(zhí)行(24)。
[0184]具體的,對硬盤A寫入復位指令,根據(jù)復位指令對硬盤A進行復位。
[0185](24)校驗模塊220向硬盤A寫入一串預定數(shù)據(jù)并且校驗數(shù)據(jù)。
[0186](25)校驗模塊220判斷硬盤A是否可正常記錄數(shù)據(jù),若是,執(zhí)行(26),若否,執(zhí)行(21)。
[0187](26)路徑設置模塊110將操作系統(tǒng)數(shù)據(jù)記錄路徑設置為硬盤A。
[0188](27)數(shù)據(jù)寫入判斷模塊150判定是否無數(shù)據(jù)寫入硬盤B,若是返回(4),若否,則返回(27)。
[0189]上述硬盤控制裝置,通過采用兩塊硬盤交替工作,既保證了數(shù)據(jù)記錄存儲,也保證了硬盤在正常工作時間范圍內(nèi)工作,延長了硬盤的使用壽命,且判斷沒有數(shù)據(jù)寫入原來處于工作狀態(tài)的硬盤,才控制其進入深度休眠狀態(tài),確保切換硬盤時,不丟失數(shù)據(jù)。
[0190]此外,上述硬盤控制裝置可設置在計算機的南橋(South Bridge)內(nèi),也可設置在計算機的 PCH (Platform Controller Hub,平臺控制器中心)或 CPU (Center ProcessingUnit,中央處理器)內(nèi)。以硬盤控制裝置設置在計算機的南橋內(nèi)為例進行說明。如圖6所示,
南橋與多個硬盤(硬盤1、硬盤2、......、硬盤η)通過SATA (Serial Advanced Technology
Attachment,串行高級技術(shù))總線相連,南橋?qū)?shù)據(jù)通過控制總線傳輸?shù)奖睒?然后再由北橋?qū)?shù)據(jù)通過控制總線傳輸給中央處理器。硬盤控制裝置的路徑設置模塊110將數(shù)據(jù)記錄路徑設置為硬盤I,休眠控制模塊120控制硬盤2至硬盤η進入深度休眠狀態(tài),計時模塊130開始計時,計時時間到,喚醒模塊140控制處于深度休眠狀態(tài)的硬盤2進入喚醒狀態(tài),然后路徑設置模塊110將數(shù)據(jù)記錄路徑設置為硬盤2,數(shù)據(jù)寫入判斷模塊150判斷是否沒有數(shù)據(jù)寫入到硬盤I中,若是,則休眠控制模塊120控制硬盤I進入深度休眠狀態(tài),計時模塊130開始計時,計時時間到,喚醒模塊140控制處于深度休眠狀態(tài)的硬盤3進入喚醒狀態(tài),路徑設置模塊110將數(shù)據(jù)記錄路徑設置為硬盤3,數(shù)據(jù)寫入判斷模塊150判斷是否沒有數(shù)據(jù)寫入到硬盤3中,若是,則休眠控制模塊120控制硬盤2進入深度休眠狀態(tài),如此依次循環(huán)執(zhí)行。每次控制一塊硬盤工作,其他硬盤處于深度休眠狀態(tài),延長硬盤的使用壽命。每次喚醒的硬盤不需按照硬盤次序任意喚`醒。
[0191]進一步,需要說明的是為了延長普通機械硬盤使用壽命,上述硬盤控制方法和裝置,需要確保至少有兩塊硬盤可以正常工作,才能達到硬盤交替工作的目的。
[0192]為此,在系統(tǒng)啟動時,會將每個SATA控制器接口對應的硬盤分配固定盤符,如:與SATA P0RT1連接的硬盤固定為盤符Α,與SATA P0RT2連接的硬盤固定為盤符B,與SATAP0RT3連接的硬盤固定為盤符C,與SATA P0RT4連接的硬盤固定為盤符D……依此類推。
[0193]當判定任一硬盤故障或判定正常工作的硬盤數(shù)量小于2時,監(jiān)控軟件會報告硬盤故障信息,要求進行設備維護,并關(guān)閉整臺監(jiān)控設備。若設備僅配置了 2個硬盤,當判定任一硬盤故障時,監(jiān)控軟件會關(guān)閉設備操作系統(tǒng);若設備配置了多個硬盤,如4個,當判定任一硬盤故障時(如硬盤B故障),監(jiān)控軟件會將數(shù)據(jù)記錄路徑設置為下一個硬盤C ;當判定多個硬盤故障時(如硬盤B,C故障),監(jiān)控軟件會將數(shù)據(jù)記錄路徑設置為下一個硬盤D。其中,路徑設置順序可采用“Α — B — C — D —……一Α”循環(huán),直到判定正常工作的硬盤數(shù)量小于2時,關(guān)閉設備操作系統(tǒng)。如此,當硬盤出現(xiàn)故障時,避免監(jiān)控軟件進入死循環(huán)狀態(tài),并發(fā)出硬盤故障報告,要求對設備進行必要的維護。其中,監(jiān)控軟件即為上述描述的硬盤控制方法或裝置對應的程序。
[0194]上述硬盤控制方法和裝置,通過設置至少兩塊硬盤中的一塊硬盤作為數(shù)據(jù)記錄路徑,控制其余硬盤進入深度休眠狀態(tài),并計時,計時時間到,喚醒一塊處于深度休眠狀態(tài)的硬盤設置為數(shù)據(jù)記錄路徑,將原來處于工作狀態(tài)的硬盤控制進入深度休眠狀態(tài),如此控制多個硬盤交替工作,延長了硬盤的使用壽命,且判斷沒有數(shù)據(jù)寫入原來處于工作狀態(tài)的硬盤,才控制其進入深度休眠狀態(tài),確保切換硬盤時,不丟失數(shù)據(jù)。
[0195]另外,通過檢測狀態(tài)寄存器值判斷硬盤是否進入深度休眠狀態(tài),可提高控制的準確性,保證未設置為數(shù)據(jù)記錄路徑的硬盤處于深度休眠狀態(tài),以延長其使用壽命;通過對檢測喚醒的硬盤的狀態(tài)寄存器值判斷硬盤未進入正常工作狀態(tài)時,可對其進行復位,保證喚醒的硬盤能正常工作,確保可替換已達到正常工作時間的硬盤;通過向喚醒的硬盤寫入數(shù)據(jù)并校驗,確保被喚醒的硬盤數(shù)據(jù)寫入的準確性。
[0196]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權(quán)利要求為準。
【權(quán)利要求】
1.一種硬盤控制方法,包括以下步驟: 將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤; 控制所述至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑的其余硬盤進入深度休眠狀態(tài); 循環(huán)執(zhí)行以下步驟: 執(zhí)行倒計時指令; 當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài); 將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,且從下一條寫入指令起將數(shù)據(jù)記錄在所述進入喚醒狀態(tài)的硬盤; 判定是否沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的硬盤的前一塊硬盤,若是,則控制所述前一塊硬盤進入深度休眠狀態(tài)。
2.根據(jù)權(quán)利要求1所述的硬盤控制方法,其特征在于,在所述將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤的步驟之前,還包括步驟: 讀取所述至少兩塊硬盤的狀態(tài),判斷是否正常工作,若是,則將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤,否則重啟操作系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的硬盤控制方法,其特征在于,所述控制所述至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑 的其余硬盤進入深度休眠狀態(tài)的步驟之后,還包括: 讀取所述其余硬盤的狀態(tài)寄存器值,判斷所述其余硬盤是否進入深度休眠狀態(tài),若是,則執(zhí)行倒計時指令,若否,則控制未進入深度休眠狀態(tài)的其余硬盤進行復位,然后再控制復位后的硬盤進入深度休眠狀態(tài)。
4.根據(jù)權(quán)利要求1所述的硬盤控制方法,其特征在于,所述當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中的一塊硬盤進入喚醒狀態(tài)的步驟之后,還包括步驟: 讀取所述進入喚醒狀態(tài)的硬盤的狀態(tài)寄存器值,判斷所述進入喚醒狀態(tài)的硬盤是否進入正常工作狀態(tài),若是,則將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,若否,則將所述進入喚醒狀態(tài)的硬盤進行復位,然后再將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤。
5.根據(jù)權(quán)利要求1至4中任一項所述的硬盤控制方法,其特征在于,所述當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài)的步驟之后,還包括步驟: 向所述進入喚醒狀態(tài)的硬盤寫入預定數(shù)據(jù),并校驗數(shù)據(jù); 判斷校驗是否通過,若是,則將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,若否,則對所述進入喚醒狀態(tài)的硬盤重新寫入喚醒指令。
6.一種硬盤控制裝置,其特征在于,包括: 路徑設置模塊,用于將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤; 休眠控制模塊,用于控制所述至少兩塊硬盤中未設置為數(shù)據(jù)記錄路徑的其余硬盤進入深度休眠狀態(tài); 計時模塊,用于執(zhí)行倒計時指令; 喚醒模塊,用于當?shù)褂嫊r結(jié)束時控制所述處于深度休眠狀態(tài)的其中一塊硬盤進入喚醒狀態(tài); 所述路徑設置模塊還用于將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤,且從下一條寫入指令起將數(shù)據(jù)記錄在所述進入喚醒狀態(tài)的硬盤;數(shù)據(jù)寫入判斷模塊,用于判定是否沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的硬盤的前一塊硬盤; 所述休眠控制模塊還用于在判定沒有數(shù)據(jù)寫入到被設置為數(shù)據(jù)記錄路徑的所述進入喚醒狀態(tài)的硬盤的前一塊硬盤時,控制所述前一塊硬盤進入深度休眠狀態(tài),然后所述計時模塊、喚醒模塊、路徑設置模塊、數(shù)據(jù)寫入判斷模塊依次執(zhí)行。
7.根據(jù)權(quán)利要求6所述的硬盤控制裝置,其特征在于,還包括: 第一狀態(tài)判斷模塊,用于讀取所述至少兩個硬盤的狀態(tài),判斷是否正常工作; 所述路徑設置模塊還用于在判斷出至少兩個硬盤正常工作時,將數(shù)據(jù)記錄路徑設置為至少兩塊硬盤中的一塊硬盤; 重啟模塊,用于在判斷出至少兩個硬盤未正常工作時,重啟操作系統(tǒng)。
8.根據(jù)權(quán)利要求6所述的硬盤控制裝置,其特征在于,還包括: 休眠狀態(tài)判斷模塊,用于讀取所述其余硬盤的狀態(tài)寄存器值,判斷所述其余硬盤是否進入深度休眠狀態(tài); 所述計時模塊還用于在判斷出所述其余硬盤進入深度休眠狀態(tài)時,執(zhí)行倒計時指令;第一復位模塊,用于在判斷出所述其余硬盤未進入深度休眠狀態(tài)時,則對未進入深度休眠狀態(tài)的其余硬盤進行復位; 所述休眠控制模塊還用于控制復位后的硬盤進入深度休眠狀態(tài)。
9.根據(jù)權(quán)利要求6所述`的硬盤控制裝置,其特征在于,還包括: 第二狀態(tài)判斷模塊,用于讀取所述進入喚醒狀態(tài)的硬盤的狀態(tài)寄存器值,判斷所述進入喚醒狀態(tài)的硬盤是否進入正常工作狀態(tài); 所述路徑設置模塊還用于在判斷出所述進入喚醒狀態(tài)的硬盤進入正常工作狀態(tài)時,將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤; 第二復位模塊,用于在判斷出所述控制進入喚醒狀態(tài)的硬盤未進入正常工作狀態(tài)時,將所述進入喚醒狀態(tài)的硬盤進行復位,然后所述路徑設置模塊將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤。
10.根據(jù)權(quán)利要求6至9中任一項所述的硬盤控制裝置,其特征在于,還包括: 校驗模塊,用于向所述進入喚醒狀態(tài)的硬盤寫入預定數(shù)據(jù),并校驗數(shù)據(jù),并判斷校驗是否通過; 所述路徑設置模塊還用于判斷校驗通過時,將所述數(shù)據(jù)記錄路徑設置為所述進入喚醒狀態(tài)的硬盤; 所述喚醒模塊還用于在校驗未通過時,對所述進入喚醒狀態(tài)的硬盤重新寫入喚醒指令。
【文檔編號】G06F3/06GK103777893SQ201210395262
【公開日】2014年5月7日 申請日期:2012年10月17日 優(yōu)先權(quán)日:2012年10月17日
【發(fā)明者】陳志列, 艾宇 申請人:研祥智能科技股份有限公司