一種存儲(chǔ)系統(tǒng)的掉電處理方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例公開(kāi)了一種存儲(chǔ)系統(tǒng)的掉電處理方法,存儲(chǔ)系統(tǒng)包括主電源、備用電源、第一控制器、第二控制器以及存儲(chǔ)器,第一控制器包括第一緩存,第二控制器包括第二緩存,所述方法包括:當(dāng)主電源掉電時(shí),第一控制器利用備用電源執(zhí)行將第一緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器的操作,并且,第二控制器利用備用電源執(zhí)行將第二緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器的操作;當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)全部被寫(xiě)入存儲(chǔ)器而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器向備用電源發(fā)送第一關(guān)閉信號(hào),以使第一控制器完成下電操作;當(dāng)主電源恢復(fù)供電時(shí),第一控制器利用主電源發(fā)起上電操作。本發(fā)明實(shí)施例還公開(kāi)了一種存儲(chǔ)系統(tǒng)。本發(fā)明實(shí)施例的方法能夠提高存儲(chǔ)系統(tǒng)的恢復(fù)能力和可靠性。
【專利說(shuō)明】一種存儲(chǔ)系統(tǒng)的掉電處理方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子【技術(shù)領(lǐng)域】,尤其涉及一種存儲(chǔ)系統(tǒng)的掉電處理方法及系統(tǒng)。
【背景技術(shù)】
[0002]存儲(chǔ)系統(tǒng)中主電源發(fā)生掉電事件時(shí),需要通過(guò)掉電處理流程對(duì)雙控系統(tǒng)中的主控制器和從控制器中各自緩存的數(shù)據(jù)進(jìn)行保存。具體實(shí)現(xiàn)時(shí),在主電源掉電的情況下,備用電源(Battery Backup Unit, BBU)作為供電設(shè)備為主控制器和從控制器供電,主控制器和從控制器分別將各自緩存的數(shù)據(jù)(cache)寫(xiě)入非易失儲(chǔ)存介質(zhì)的同時(shí),通過(guò)心跳串口保持通訊,當(dāng)主控制器檢測(cè)到主控制器和從控制器均完成寫(xiě)入存儲(chǔ)器的操作后,發(fā)出備用電源關(guān)閉信號(hào),使備用電源關(guān)閉,并結(jié)束掉電處理流程。在掉電處理流程結(jié)束后,當(dāng)主電源恢復(fù)供電時(shí),主控制器利用主電源發(fā)起主控制器和從控制器的上電操作,使存儲(chǔ)系統(tǒng)恢復(fù)正常工作狀態(tài)。
[0003]本領(lǐng)域人員可以知道,掉電處理流程中控制器的軟、硬件故障可能導(dǎo)致無(wú)法寫(xiě)完cache數(shù)據(jù),若主控制器和從控制器之間的心跳通信出現(xiàn)故障可能導(dǎo)致主控制器檢測(cè)不到主控制器和從控制器是否均完成寫(xiě)入操作。因此,在這種情形下,現(xiàn)有技術(shù)方法可能造成主控制器無(wú)法結(jié)束掉電處理流程,并相應(yīng)地,無(wú)法在主電源恢復(fù)供電后發(fā)起上電操作,以及恢復(fù)存儲(chǔ)系統(tǒng)正常工作。故采用現(xiàn)有技術(shù),存儲(chǔ)系統(tǒng)執(zhí)行掉電處理流程操作的可靠性低,恢復(fù)能力差。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種存儲(chǔ)系統(tǒng)的掉電處理方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中存在的存儲(chǔ)系統(tǒng)中軟、硬件故障以及通信故障,從而導(dǎo)致執(zhí)行掉電處理流程操作的可靠性低、恢復(fù)能力差的問(wèn)題。
[0005]為了解決上述問(wèn)題,本發(fā)明實(shí)施例第一方面提供了一種存儲(chǔ)系統(tǒng)的掉電處理方法,所述存儲(chǔ)系統(tǒng)包括主電源、備用電源、第一控制器、第二控制器以及存儲(chǔ)器,所述第一控制器包括第一緩存,所述第二控制器包括第二緩存,所述方法包括:
[0006]當(dāng)主電源掉電時(shí),所述第一控制器利用所述備用電源執(zhí)行將所述第一緩存的數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器的操作,并且,所述第二控制器利用所述備用電源執(zhí)行將所述第二緩存的數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器的操作;
[0007]當(dāng)所述第一緩存的數(shù)據(jù)已經(jīng)全部被寫(xiě)入所述存儲(chǔ)器,而所述第二緩存的數(shù)據(jù)還未被全部寫(xiě)入所述存儲(chǔ)器時(shí),所述第一控制器向所述備用電源發(fā)送第一關(guān)閉信號(hào),以使所述第一控制器完成下電操作;
[0008]當(dāng)所述主電源恢復(fù)供電時(shí),所述第一控制器利用所述主電源發(fā)起上電操作。
[0009]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0010]當(dāng)所述第二緩存的數(shù)據(jù)全部寫(xiě)入所述存儲(chǔ)器時(shí),所述第二控制器向所述備用電源發(fā)送第二關(guān)閉信號(hào),以使所述第二控制器完成下電操作;[0011 ] 所述第二控制器利用所述主電源發(fā)起上電操作。
[0012]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0013]所述備用電源根據(jù)所述第一關(guān)閉信號(hào)以及所述第二關(guān)閉信號(hào)結(jié)束供電操作。
[0014]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述備用電源根據(jù)所述第一關(guān)閉信號(hào)以及所述第二關(guān)閉信號(hào)結(jié)束供電操作包括:
[0015]當(dāng)所述第一關(guān)閉信號(hào)出現(xiàn)上升沿后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)上升沿,所述備用電源結(jié)束供電操作;或
[0016]當(dāng)所述第一關(guān)閉信號(hào)出現(xiàn)下降沿后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)下降沿,所述備用電源結(jié)束供電操作。
[0017]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述備用電源根據(jù)所述第一關(guān)閉信號(hào)以及所述第二關(guān)閉信號(hào)結(jié)束供電操作包括:
[0018]當(dāng)所述第一關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變,所述備用電源結(jié)束供電操作;或
[0019]當(dāng)所述第一關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變,所述備用電源結(jié)束供電操作。
[0020]相應(yīng)地,本發(fā)明實(shí)施例第二方面還提供了 一種存儲(chǔ)系統(tǒng),所述存儲(chǔ)系統(tǒng)包括主電源、備用電源、第一控制器、第二控制器以及存儲(chǔ)器,所述第一控制器包括第一緩存,所述第二控制器包括第二緩存,其中:
[0021]所述第一控制器,用于當(dāng)所述主電源掉電時(shí),利用所述備用電源執(zhí)行將所述第一緩存的數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器的操作;
[0022]所述第二控制器,用于當(dāng)所述主電源掉電時(shí),利用所述備用電源執(zhí)行將所述第二緩存的數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器的操作;
[0023]所述第一控制器,還用于當(dāng)所述第一緩存的數(shù)據(jù)已經(jīng)全部被寫(xiě)入所述存儲(chǔ)器,而所述第二緩存的數(shù)據(jù)還未被全部寫(xiě)入所述存儲(chǔ)器時(shí),向所述備用電源發(fā)送第一關(guān)閉信號(hào),完成所述第一控制器的下電操作;當(dāng)所述主電源恢復(fù)供電時(shí),還用于利用所述主電源發(fā)起上電操作。
[0024]在第二方面的第一種可能的實(shí)現(xiàn)方式中,當(dāng)所述第二緩存的數(shù)據(jù)全部寫(xiě)入所述存儲(chǔ)器時(shí),所述第二控制器還用于向所述備用電源發(fā)送第二關(guān)閉信號(hào),完成所述第二控制器的下電操作;還用于利用所述主電源發(fā)起上電操作。
[0025]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述備用電源,還用于根據(jù)所述第一關(guān)閉信號(hào)以及所述第二關(guān)閉信號(hào)結(jié)束供電操作。
[0026]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述備用電源,具體用于當(dāng)檢測(cè)到所述第一關(guān)閉信號(hào)出現(xiàn)上升沿后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)上升沿,則結(jié)束供電操作;或
[0027]當(dāng)檢測(cè)到所述第一關(guān)閉信號(hào)出現(xiàn)下降沿后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)下降沿,則結(jié)束供電操作。
[0028]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述備用電源,具體用于當(dāng)檢測(cè)到所述第一關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變,所述備用電源結(jié)束供電操作;或
[0029]當(dāng)檢測(cè)到所述第一關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變,所述備用電源結(jié)束供電操作。
[0030]通過(guò)本發(fā)明實(shí)施例,存儲(chǔ)系統(tǒng)中,當(dāng)主電源掉電時(shí),第一控制器和第二控制器可利用備用電源各自進(jìn)行緩存數(shù)據(jù)的數(shù)據(jù)備份,并在數(shù)據(jù)備份結(jié)束后完成下電操作,若第一控制器先于第二控制器完成下電操作,則當(dāng)主電源恢復(fù)供電時(shí),第一控制器首先利用主電源發(fā)起上電操作,使存儲(chǔ)系統(tǒng)及時(shí)恢復(fù)正常工作狀態(tài),本發(fā)明實(shí)施例的方法能夠提高存儲(chǔ)系統(tǒng)的恢復(fù)能力和可靠性。
【專利附圖】
【附圖說(shuō)明】
[0031]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0032]圖1是本發(fā)明實(shí)施例中一種存儲(chǔ)系統(tǒng)的掉電處理方法的流程圖;
[0033]圖2是本發(fā)明另一實(shí)施例中一種存儲(chǔ)系統(tǒng)的掉電處理方法的流程圖;
[0034]圖3是本發(fā)明一實(shí)施例中一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0035]圖4是本發(fā)明實(shí)施例提供的一種控制器的結(jié)構(gòu)組成示意圖;
[0036]圖5是本發(fā)明實(shí)施例的一種存儲(chǔ)系統(tǒng)的工作流程圖;
[0037]圖6是本發(fā)明另一實(shí)施例中一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0038]圖7是本發(fā)明又一實(shí)施例中一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0039]圖8是本發(fā)明再一實(shí)施例中一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)組成示意圖。
【具體實(shí)施方式】
[0040]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0041]圖1是本發(fā)明實(shí)施例中一種存儲(chǔ)系統(tǒng)的掉電處理方法的流程圖。該方法可以適用于具有兩個(gè)控制器的存儲(chǔ)系統(tǒng)中。本發(fā)明實(shí)施例所采用的存儲(chǔ)系統(tǒng)包括主電源、備用電源、第一控制器、第二控制器以及存儲(chǔ)器,其中,第一控制器包括第一緩存,第二控制器包括第二緩存。實(shí)際應(yīng)用中,在存儲(chǔ)系統(tǒng)正常運(yùn)行的狀態(tài)下,第一控制器和第二控制器在主電源的供電支持下工作,備用電源不向第一控制器和第二控制器供電。在本發(fā)明實(shí)施例中,若該存儲(chǔ)系統(tǒng)的主電源異常掉電,可以采用如圖1所示的方法進(jìn)行處理。如圖1所示,本實(shí)施例的處理流程包括以下步驟:
[0042]步驟S110,當(dāng)主電源掉電時(shí),第一控制器利用備用電源執(zhí)行將第一緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器的操作,并且,第二控制器利用備用電源執(zhí)行將第二緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器的操作。[0043]實(shí)際應(yīng)用中,當(dāng)主電源掉電時(shí),存儲(chǔ)系統(tǒng)啟動(dòng)掉電處理流程,備用電源開(kāi)始向第一控制器和第二控制器供電,支持第一控制器將第一控制器的第一緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器,以及支持第二控制器將第二控制器的第二緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器,相應(yīng)地,本發(fā)明實(shí)施例采用的存儲(chǔ)系統(tǒng)中,用于保存第一緩存的數(shù)據(jù)和第二緩存的數(shù)據(jù)的存儲(chǔ)器也可以接受備用電源供電,以完成數(shù)據(jù)備份和保存的工作。
[0044]本發(fā)明實(shí)施例采用的存儲(chǔ)系統(tǒng)中,用于保存第一緩存的數(shù)據(jù)和第二緩存的數(shù)據(jù)的存儲(chǔ)器采用非易失性儲(chǔ)存介質(zhì),如FLASH,以保證寫(xiě)入的數(shù)據(jù)的安全。
[0045]步驟S111,當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)全部被寫(xiě)入存儲(chǔ)器,而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器向備用電源發(fā)送第一關(guān)閉信號(hào),以使第一控制器完成下電操作。其中,完成下電操作的第一控制器處于非工作狀態(tài)。
[0046]本發(fā)明實(shí)施例中,第一控制器將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器后,無(wú)需輪詢第二控制器,可直接發(fā)送第一關(guān)閉信號(hào)至備用電源,完成下電操作。由此可知,當(dāng)?shù)诙刂破鲗⒌诙彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器后,也無(wú)需輪詢第一控制器,可直接發(fā)送第二關(guān)閉信號(hào)至備用電源,完成下電操作。
[0047]當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)全部被寫(xiě)入存儲(chǔ)器,而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器可以先于第二控制器,向備用電源發(fā)送第一關(guān)閉信號(hào),以及完成下電操作。
[0048]具體實(shí)現(xiàn)中,第一控制器向備用電源發(fā)送第一關(guān)閉信號(hào)可以有以下方式:
[0049]方式一,可規(guī)定存儲(chǔ)系統(tǒng)中第一控制器接受主電源供電時(shí),第一控制器與備用電源相連接的串口保持高電平,當(dāng)主電源掉電,第一控制器未將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器的該串口變?yōu)楸3值碗娖剑瑒t通過(guò)第一控制器該串口輸出的第一關(guān)閉信號(hào)保持下降沿,當(dāng)?shù)谝豢刂破鲗⒌谝痪彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器的該串口由低電平變?yōu)楦唠娖?,那么相?yīng)地,第一關(guān)閉信號(hào)出現(xiàn)上升沿。
[0050]方式二,可規(guī)定存儲(chǔ)系統(tǒng)中第一控制器接受主電源供電時(shí),第一控制器與備用電源相連接的串口保持低電平,當(dāng)主電源掉電,第一控制器未將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器的該串口變?yōu)楸3指唠娖?,則通過(guò)第一控制器該串口輸出的第一關(guān)閉信號(hào)保持上升沿,當(dāng)?shù)谝豢刂破鲗⒌谝痪彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器的該串口由高電平變?yōu)榈碗娖剑敲聪鄳?yīng)地,第一關(guān)閉信號(hào)出現(xiàn)下降沿。
[0051]方式三,可規(guī)定存儲(chǔ)系統(tǒng)中第一控制器接受主電源供電時(shí),第一控制器與備用電源相連接的串口輸出的信號(hào)為高阻態(tài)信號(hào),當(dāng)主電源掉電,第一控制器未將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器的該串口輸出的信號(hào)由高阻態(tài)跳變?yōu)楦唠娖?,此時(shí),通過(guò)第一控制器的該串口輸出的第一關(guān)閉信號(hào)為高電平,當(dāng)?shù)谝豢刂破鲗⒌谝痪彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器的該串口輸出的第一關(guān)閉信號(hào)由高電平跳變?yōu)楦咦钁B(tài)。
[0052]方式四,可規(guī)定存儲(chǔ)系統(tǒng)中第一控制器接受主電源供電時(shí),第一控制器與備用電源相連接的串口輸出的信號(hào)為高阻態(tài)信號(hào),當(dāng)主電源掉電,第一控制器未將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器的該串口輸出的信號(hào)由高阻態(tài)跳變?yōu)榈碗娖?,此時(shí),通過(guò)第一控制器的該串口輸出的第一關(guān)閉信號(hào)為低電平,當(dāng)?shù)谝豢刂破鲗⒌谝痪彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器的該串口輸出的第一關(guān)閉信號(hào)由低電平跳變?yōu)楦咦钁B(tài)。
[0053]步驟S112,當(dāng)主電源恢復(fù)供電時(shí),第一控制器利用主電源發(fā)起上電操作。具體實(shí)現(xiàn)中,第一控制器執(zhí)行下電操作后,可在主電源恢復(fù)供電時(shí),接受主電源供電,并通過(guò)主電源發(fā)起上電操作。
[0054]在本發(fā)明實(shí)施例中,如果在步驟Slll中,第一控制器先于第二控制器執(zhí)行下電操作,則在步驟S112中,第一控制器也可以先于第二控制器通過(guò)主電源發(fā)起上電操作。優(yōu)先發(fā)起上電操作的第一控制器可使存儲(chǔ)系統(tǒng)恢復(fù)正常工作。
[0055]本發(fā)明實(shí)施例的一種存儲(chǔ)系統(tǒng)的掉電處理方法,當(dāng)主電源掉電時(shí),第一控制器和第二控制器利用備用電源將各自緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器,當(dāng)?shù)谝痪彺娴臄?shù)據(jù)全部被寫(xiě)入存儲(chǔ)器,而第二緩存的數(shù)據(jù)還未全部被寫(xiě)入存儲(chǔ)器時(shí),第一控制器向備用電源發(fā)送第一關(guān)閉信號(hào),并先于第二控制器完成下電操作,并且當(dāng)主電源恢復(fù)供電時(shí),第一控制器首先利用主電源發(fā)起上電操作,使存儲(chǔ)系統(tǒng)及時(shí)恢復(fù)正常工作狀態(tài),采用本發(fā)明實(shí)施例,兩個(gè)控制器中任一先完成下電操作的控制器均可以利用主電源發(fā)起上電操作,使存儲(chǔ)系統(tǒng)及時(shí)地恢復(fù)正常工作,提高了存儲(chǔ)系統(tǒng)的恢復(fù)能力和可靠性。
[0056]本發(fā)明實(shí)施例提供一種存儲(chǔ)系統(tǒng)的掉電處理方法中,主電源恢復(fù)時(shí),第一控制器和第二控制器中任一先完成掉電處理流程中下電操作的控制器均可以利用主電源發(fā)起上電操作,及時(shí)地使存儲(chǔ)系統(tǒng)恢復(fù)正常工作;其中,在存儲(chǔ)系統(tǒng)恢復(fù)正常工作后,第二控制器可以繼續(xù)將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器,以保證緩存數(shù)據(jù)安全可靠;本發(fā)明實(shí)施例的備用電源同時(shí)受第一控制器和第二控制器控制,根據(jù)第一控制器發(fā)送的第一關(guān)閉信號(hào)和第二控制器發(fā)送的第二關(guān)閉信號(hào)實(shí)現(xiàn)備用電源的供電操作控制;本發(fā)明實(shí)施例的方法保證存儲(chǔ)系統(tǒng)中緩存數(shù)據(jù)安全可靠的同時(shí),能夠及時(shí)地恢復(fù)系統(tǒng)正常工作,提高了存儲(chǔ)系統(tǒng)的恢復(fù)能力和可靠性。
[0057]圖2是本發(fā)明另一實(shí)施例中一種存儲(chǔ)系統(tǒng)的掉電處理方法的流程圖。如圖2所示,本實(shí)施例的處理流程包括以下步驟:
[0058]步驟S210,當(dāng)主電源掉電時(shí),第一控制器利用備用電源執(zhí)行將第一緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器的操作,并且,第二控制器利用備用電源執(zhí)行將第二緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器的操作。
[0059]步驟S211,當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)全部被寫(xiě)入存儲(chǔ)器,而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器時(shí),第一控制器向備用電源發(fā)送第一關(guān)閉信號(hào),以使第一控制器完成下電操作。
[0060]步驟S212,當(dāng)主電源恢復(fù)供電時(shí),第一控制器利用主電源發(fā)起上電操作。
[0061]步驟S213,當(dāng)?shù)诙彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器向備用電源發(fā)送第二關(guān)閉信號(hào),以使第二控制器完成下電操作。具體實(shí)現(xiàn)中,步驟S212之后,存儲(chǔ)系統(tǒng)恢復(fù)正常工作的情況下,本步驟第二控制器繼續(xù)將第二緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器,并在將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器后,向備用電源發(fā)送第二關(guān)閉信號(hào),完成下電操作。
[0062]其中,第二關(guān)閉信號(hào)與步驟S211第一控制器生成的第一關(guān)閉信號(hào)類型相同,具體實(shí)現(xiàn)中,第二控制器向備用電源發(fā)送第二關(guān)閉信號(hào)可以有以下方式:
[0063]方式一,可規(guī)定存儲(chǔ)系統(tǒng)中第二控制器接受主電源供電時(shí),第二控制器與備用電源相連接的串口保持高電平,當(dāng)主電源掉電,第二控制器還未將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器的該串口變?yōu)楸3值碗娖?,則通過(guò)第二控制器該串口輸出的第二關(guān)閉信號(hào)保持下降沿,當(dāng)?shù)诙刂破鲗⒌诙彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器的該串口由低電平變?yōu)楦唠娖?,那么相?yīng)地,第二關(guān)閉信號(hào)出現(xiàn)上升沿。
[0064]方式二,可規(guī)定存儲(chǔ)系統(tǒng)中第二控制器接受主電源供電時(shí),第二控制器與備用電源相連接的串口保持低電平,當(dāng)主電源掉電,第二控制器還未將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器的該串口變?yōu)楸3指唠娖?,則通過(guò)第二控制器該串口輸出的第二關(guān)閉信號(hào)保持上升沿,當(dāng)?shù)诙刂破鲗⒌诙彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器的該串口由高電平變?yōu)榈碗娖剑敲聪鄳?yīng)地,第二關(guān)閉信號(hào)出現(xiàn)下降沿。
[0065]方式三,可規(guī)定存儲(chǔ)系統(tǒng)中第二控制器接受主電源供電時(shí),第二控制器與備用電源相連接的串口輸出的信號(hào)為高阻態(tài)信號(hào),當(dāng)主電源掉電,第二控制器未還將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器的該串口輸出的信號(hào)由高阻態(tài)跳變?yōu)榈碗娖?,此時(shí),通過(guò)第二控制器的該串口輸出的第二關(guān)閉信號(hào)為低電平,當(dāng)?shù)诙刂破鲗⒌诙彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器的該串口輸出的第二關(guān)閉信號(hào)由低電平跳變?yōu)楦咦钁B(tài)。
[0066]方式四,可規(guī)定存儲(chǔ)系統(tǒng)中第二控制器接受主電源供電時(shí),第二控制器與備用電源相連接的串口輸出的信號(hào)為高阻態(tài)信號(hào),當(dāng)主電源掉電,第二控制器還未將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器的該串口輸出的信號(hào)由高阻態(tài)跳變?yōu)楦唠娖剑藭r(shí),通過(guò)第二控制器的該串口輸出的第二關(guān)閉信號(hào)為高電平,當(dāng)?shù)诙刂破鲗⒌诙彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器時(shí),第二控制器的該串口輸出的第二關(guān)閉信號(hào)由高電平跳變?yōu)楦咦钁B(tài)。
[0067]步驟S214,第二控制器利用主電源發(fā)起上電操作。具體實(shí)現(xiàn)中,第二控制器執(zhí)行下電操作后,可通過(guò)主電源發(fā)起上電操作,恢復(fù)第二控制器的正常工作。
[0068]進(jìn)一步的,本發(fā)明實(shí)施例采用的存儲(chǔ)系統(tǒng)中,備用電源是根據(jù)第一關(guān)閉信號(hào)和第二關(guān)閉信號(hào)控制供電操作的,其中,第一關(guān)閉信號(hào)是第一控制器將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器后發(fā)送的,第二關(guān)閉信號(hào)是第二控制器將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器后發(fā)送的。
[0069]相應(yīng)地,根據(jù)第一關(guān)閉信號(hào)與第二關(guān)閉信號(hào)的類型,本發(fā)明實(shí)施例為備用電源提供以下幾種關(guān)閉方案:
[0070]方案一、當(dāng)?shù)谝魂P(guān)閉信號(hào)出現(xiàn)上升沿后,若檢測(cè)到第二關(guān)閉信號(hào)出現(xiàn)上升沿,則備用電源結(jié)束供電操作。
[0071]具體實(shí)現(xiàn)中,備用電源與第一控制器和第二控制器相連接,并通過(guò)線路接收來(lái)自于第一控制器的第一關(guān)閉信號(hào)和來(lái)自于第二控制器的第二關(guān)閉信號(hào)。主電源掉電后,當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)全部被寫(xiě)入存儲(chǔ)器,而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器時(shí),備用電源可檢測(cè)到第一關(guān)閉信號(hào)首先出現(xiàn)上升沿,可設(shè)定備用電源在檢測(cè)到第一關(guān)閉信號(hào)和第二關(guān)閉信號(hào)同時(shí)為上升沿時(shí)結(jié)束供電操作,那么,當(dāng)?shù)诙彺娴臄?shù)據(jù)全部被寫(xiě)入存儲(chǔ)器時(shí),備用電源可檢測(cè)到第二關(guān)閉信號(hào)也出現(xiàn)上升沿,此時(shí),備用電源結(jié)束供電操作。
[0072]方案二、當(dāng)?shù)谝魂P(guān)閉信號(hào)出現(xiàn)下降沿后,若檢測(cè)到第二關(guān)閉信號(hào)出現(xiàn)下降沿,則備用電源結(jié)束供電操作。
[0073]具體實(shí)現(xiàn)中,備用電源與第一控制器和第二控制器相連接,并通過(guò)線路接收來(lái)自于第一控制器的第一關(guān)閉信號(hào)和來(lái)自于第二控制器的第二關(guān)閉信號(hào)。主電源掉電后,當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)被全部寫(xiě)入存儲(chǔ)器,而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器時(shí),備用電源可檢測(cè)到第一關(guān)閉信號(hào)首先出現(xiàn)下降沿,可設(shè)定備用電源在檢測(cè)到第一關(guān)閉信號(hào)和第二關(guān)閉信號(hào)同時(shí)為下降沿時(shí)結(jié)束供電操作,那么,當(dāng)?shù)诙彺娴臄?shù)據(jù)全部被寫(xiě)入存儲(chǔ)器時(shí),備用電源可檢測(cè)到第二關(guān)閉信號(hào)也出現(xiàn)下降沿,此時(shí),備用電源結(jié)束供電操作。
[0074]方案三、當(dāng)?shù)谝魂P(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變后,若檢測(cè)到第二關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變,則備用電源結(jié)束供電操作。
[0075]具體實(shí)現(xiàn)中,備用電源與第一控制器和第二控制器相連接,并通過(guò)線路接收來(lái)自于第一控制器的第一關(guān)閉信號(hào)和來(lái)自于第二控制器的第二關(guān)閉信號(hào)。主電源掉電后,當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)被全部寫(xiě)入存儲(chǔ)器,而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器時(shí),備用電源可檢測(cè)到第一關(guān)閉信號(hào)首先出現(xiàn)由高電平到高阻態(tài)的跳變,可設(shè)定備用電源在檢測(cè)到第一關(guān)閉信號(hào)和第二關(guān)閉信號(hào)均跳變到高阻態(tài)后結(jié)束供電操作,那么,當(dāng)?shù)诙彺娴臄?shù)據(jù)被全部寫(xiě)入存儲(chǔ)器時(shí),備用電源可檢測(cè)到第二關(guān)閉信號(hào)也出現(xiàn)由高電平到高阻態(tài)的跳變,此時(shí),備用電源結(jié)束供電操作。
[0076]方案四,當(dāng)?shù)谝魂P(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變后,若檢測(cè)到第二關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變,則備用電源結(jié)束供電操作。
[0077]具體實(shí)現(xiàn)中,備用電源與第一控制器和第二控制器相連接,并通過(guò)線路接收來(lái)自于第一控制器的第一關(guān)閉信號(hào)和來(lái)自第二控制器的第二關(guān)閉信號(hào)。主電源掉電后,當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)被全部寫(xiě)入存儲(chǔ)器,而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器時(shí),備用電源可檢測(cè)到第一關(guān)閉信號(hào)首先出現(xiàn)由低電平到高阻態(tài)的跳變,可設(shè)定備用電源在檢測(cè)到第一關(guān)閉信號(hào)和第二關(guān)閉信號(hào)均跳變到高阻態(tài)后結(jié)束供電操作,那么,當(dāng)?shù)诙彺娴臄?shù)據(jù)全部被寫(xiě)入存儲(chǔ)器時(shí),備用電源可檢測(cè)到第二關(guān)閉信號(hào)也出現(xiàn)由低電平到高阻態(tài)的跳變,此時(shí),備用電源結(jié)束供電操作。
[0078]上述方法一至方法四所描述的方法即可以通過(guò)硬件裝置實(shí)現(xiàn),如元器件及相關(guān)電路,同時(shí)也可以通過(guò)軟件控制實(shí)現(xiàn),本發(fā)明實(shí)施例對(duì)采用上述方法一?方法四實(shí)現(xiàn)備用電源結(jié)束供電操作的實(shí)現(xiàn)方式不加以限定。
[0079]上述方法一至方法四以外,還可以有更多根據(jù)第一關(guān)閉信號(hào)和第二關(guān)閉信號(hào)結(jié)束供電操作的方法,本發(fā)明實(shí)施例不限定于上述方法一?方法四所提供的方法。
[0080]本發(fā)明實(shí)施例采用的存儲(chǔ)系統(tǒng)中,用于保存第一緩存的數(shù)據(jù)和第二緩存的數(shù)據(jù)的存儲(chǔ)器為非易失性儲(chǔ)存介質(zhì),如只讀存儲(chǔ)器(Read-only Memory, ROM)、可編程只讀存儲(chǔ)器(Programmable Read-only Memory, PR0M)、電可改寫(xiě)只讀存儲(chǔ)器(Electrically AlterableRead-Only Memory, EAR0M)、可擦可編程只讀存儲(chǔ)器(Erasable Programmable Read-OnlyMemory, EPROM)、電可擦可編程只讀存儲(chǔ)器(Electrically Erasable ProgrammableRead-Only Memory, EEPR0M)、閃存(Flash Memory)等,以保證寫(xiě)入的數(shù)據(jù)的安全。
[0081]進(jìn)一步的,根據(jù)實(shí)際的使用需求,存儲(chǔ)系統(tǒng)中也可以采用多于兩個(gè)控制器。當(dāng)存儲(chǔ)系統(tǒng)中的主電源掉電時(shí),多個(gè)控制器可以以同樣的方式實(shí)施本發(fā)明實(shí)施例提供的掉電處理方法進(jìn)行緩存數(shù)據(jù)備份以及系統(tǒng)恢復(fù)工作,相應(yīng)地,當(dāng)備用電源受到多個(gè)控制器控制時(shí),可根據(jù)實(shí)際情況設(shè)置信號(hào)處理方法,以結(jié)束供電操作。
[0082]本發(fā)明實(shí)施例提供一種存儲(chǔ)系統(tǒng)的掉電處理方法中,主電源恢復(fù)時(shí),第一控制器和第二控制器中任一先完成掉電處理流程中下電操作的控制器均可以利用主電源發(fā)起上電操作,及時(shí)地使存儲(chǔ)系統(tǒng)恢復(fù)正常工作;其中,在存儲(chǔ)系統(tǒng)恢復(fù)正常工作后,第二控制器可以繼續(xù)將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器,以保證緩存數(shù)據(jù)安全可靠;本發(fā)明實(shí)施例的備用電源同時(shí)受第一控制器和第二控制器控制,根據(jù)第一控制器發(fā)送的第一關(guān)閉信號(hào)和第二控制器發(fā)送的第二關(guān)閉信號(hào)實(shí)現(xiàn)備用電源的供電操作控制;本發(fā)明實(shí)施例的方法保證存儲(chǔ)系統(tǒng)中緩存數(shù)據(jù)安全可靠的同時(shí),能夠及時(shí)地恢復(fù)系統(tǒng)正常工作,提高了存儲(chǔ)系統(tǒng)的恢復(fù)能力和可靠性。
[0083]圖3為本發(fā)明實(shí)施例中的一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)組成示意圖。如圖所示,本發(fā)明實(shí)施例中存儲(chǔ)系統(tǒng)至少可以包括:主電源31、第一控制器32、第二控制器33、備用電源34和存儲(chǔ)器35,其中:
[0084]第一控制器32,當(dāng)主電源31掉電時(shí),用于利用備用電源34執(zhí)行將第一控制器32的第一緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器35的操作。
[0085]第二控制器33,當(dāng)主電源31掉電時(shí),用于利用備用電源34執(zhí)行將第二控制器33的第二緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器35的操作。
[0086]第一控制器32,當(dāng)?shù)谝痪彺娴臄?shù)據(jù)已經(jīng)全部被寫(xiě)入存儲(chǔ)器35,而第二緩存的數(shù)據(jù)還未被全部寫(xiě)入存儲(chǔ)器35時(shí),還用于向備用電源34發(fā)送第一關(guān)閉信號(hào),完成第一控制器32的下電操作;當(dāng)主電源31恢復(fù)供電時(shí),還用于利用主電源31發(fā)起上電操作。
[0087]進(jìn)一步可選地,第一控制器32向備用電源34發(fā)送第一關(guān)閉信號(hào)可以有以下方式:
[0088]方式一,可規(guī)定存儲(chǔ)系統(tǒng)中第一控制器32接受主電源31供電時(shí),第一控制器32與備用電源34相連接的串口保持高電平,當(dāng)主電源31掉電,第一控制器32未將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第一控制器32的該串口變?yōu)榈碗娖?,則通過(guò)第一控制器32該串口輸出的第一關(guān)閉信號(hào)為下降沿,當(dāng)?shù)谝豢刂破?2將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第一控制器32的該串口由低電平變?yōu)楦唠娖剑敲聪鄳?yīng)地,第一關(guān)閉信號(hào)出現(xiàn)上升沿。例如,可通過(guò)圖6所示的第一控制器32的一引腳串口輸出第一關(guān)閉信號(hào)。
[0089]方式二,可規(guī)定存儲(chǔ)系統(tǒng)中第一控制器32接受主電源31供電時(shí),第一控制器32與備用電源34相連接的串口保持低電平,當(dāng)主電源31掉電,第一控制器32未將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第一控制器32的該串口變?yōu)楦唠娖?,則通過(guò)第一控制器32該串口輸出的第一關(guān)閉信號(hào)保持上升沿,當(dāng)?shù)谝豢刂破?2將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第一控制器32的該串口由高電平變?yōu)榈碗娖?,那么相?yīng)地,第一關(guān)閉信號(hào)出現(xiàn)下降沿。例如,可通過(guò)圖6所示的第一控制器32的一引腳串口輸出第一關(guān)閉信號(hào)。
[0090]方式三,可規(guī)定存儲(chǔ)系統(tǒng)中第一控制器32接受主電源31供電時(shí),第一控制器32與備用電源34相連接的串口輸出的信號(hào)為高阻態(tài)信號(hào),當(dāng)主電源31掉電,第一控制器32未將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第一控制器32的該串口輸出的信號(hào)由高阻態(tài)跳變?yōu)榈碗娖?,此時(shí),通過(guò)第一控制器32的該串口輸出的第一關(guān)閉信號(hào)為低電平,當(dāng)?shù)谝豢刂破?2將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第一控制器32的該串口輸出的第一關(guān)閉信號(hào)由低電平跳變?yōu)楦咦钁B(tài)。例如,可通過(guò)圖7所示的第一控制器32的一引腳串口輸出第一關(guān)閉信號(hào)。
[0091]方式四,可規(guī)定存儲(chǔ)系統(tǒng)中第一控制器32接受主電源31供電時(shí),第一控制器32與備用電源34相連接的串口輸出的信號(hào)為高阻態(tài)信號(hào),當(dāng)主電源31掉電,第一控制器32未將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第一控制器32的該串口輸出的信號(hào)由高阻態(tài)跳變?yōu)楦唠娖?,此時(shí),通過(guò)第一控制器32的該串口輸出的第一關(guān)閉信號(hào)為高電平,當(dāng)?shù)谝豢刂破?2將第一緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第一控制器32的該串口輸出的第一關(guān)閉信號(hào)由高電平跳變?yōu)楦咦钁B(tài)。例如,可通過(guò)圖8所示的第一控制器32的一引腳串口輸出
第一關(guān)閉信號(hào)。
[0092]具體實(shí)現(xiàn)中,完成下電操作的第一控制器32處于非工作狀態(tài),當(dāng)主電源31恢復(fù)供電后,第一控制器32利用主電源31發(fā)起上電操作后,可恢復(fù)本發(fā)明實(shí)施例的存儲(chǔ)系統(tǒng)的正
常工作。
[0093]進(jìn)一步可選地,當(dāng)存儲(chǔ)系統(tǒng)恢復(fù)正常工作后,存儲(chǔ)系統(tǒng)中第二控制器33還繼續(xù)將第二緩存的數(shù)據(jù)寫(xiě)入存儲(chǔ)器35,以保證緩存數(shù)據(jù)的完整可靠,其中:
[0094]第二控制器33,當(dāng)?shù)诙彺娴臄?shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),還用于向備用電源34發(fā)送第二關(guān)閉信號(hào),完成第二控制器33的下電操作;還用于利用主電源31發(fā)起上電操作。
[0095]進(jìn)一步可選地,第二控制器33向備用電源34發(fā)送第二關(guān)閉信號(hào)可以有以下方式:
[0096]方式一,可規(guī)定存儲(chǔ)系統(tǒng)中第二控制器33接受主電源31供電時(shí),第二控制器33與備用電源34相連接的串口保持高電平,當(dāng)主電源31掉電,第二控制器33未將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第二控制器33的該串口變?yōu)榈碗娖?,則通過(guò)第二控制器33該串口輸出的第二關(guān)閉信號(hào)保持下降沿,當(dāng)?shù)诙刂破?3將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第二控制器33的該串口由低電平變?yōu)楦唠娖?,那么相?yīng)地,第二關(guān)閉信號(hào)出現(xiàn)上升沿。例如,可通過(guò)圖6所示的第二控制器33的一引腳串口輸出第二關(guān)閉信號(hào)。
[0097]方式二,可規(guī)定存儲(chǔ)系統(tǒng)中第二控制器33接受主電源31供電時(shí),第二控制器33與備用電源34相連接的串口保持低電平,當(dāng)主電源31掉電,第二控制器33未將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第二控制器33的該串口變?yōu)楦唠娖?,則通過(guò)第二控制器33該串口輸出的第二關(guān)閉信號(hào)保持上升沿,當(dāng)?shù)诙刂破?3將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第二控制器33的該串口由高電平變?yōu)榈碗娖?,那么相?yīng)地,第二關(guān)閉信號(hào)出現(xiàn)下降沿。例如,可通過(guò)圖7所示的第二控制器33的一引腳串口輸出第二關(guān)閉信號(hào)。
[0098]方式三,可規(guī)定存儲(chǔ)系統(tǒng)中第二控制器33接受主電源31供電時(shí),第二控制器33與備用電源34相連接的串口輸出的信號(hào)為高阻態(tài)信號(hào),當(dāng)主電源31掉電,第二控制器33未將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第二控制器33的該串口輸出的信號(hào)由高阻態(tài)跳變?yōu)榈碗娖?,此時(shí),通過(guò)第二控制器33的該串口輸出的第二關(guān)閉信號(hào)為低電平,當(dāng)?shù)诙刂破?3將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第二控制器33的該串口輸出的第二關(guān)閉信號(hào)由低電平跳變?yōu)楦咦钁B(tài)。例如,可通過(guò)圖8所示的第二控制器33的一引腳串口輸出第二關(guān)閉信號(hào)。
[0099]方式四,可規(guī)定存儲(chǔ)系統(tǒng)中第二控制器33接受主電源31供電時(shí),第二控制器33與備用電源34相連接的串口輸出的信號(hào)為高阻態(tài)信號(hào),當(dāng)主電源31掉電,第二控制器33未將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第二控制器33的該串口輸出的信號(hào)由高阻態(tài)跳變?yōu)楦唠娖剑藭r(shí),通過(guò)第二控制器33的該串口輸出的第二關(guān)閉信號(hào)為高電平,當(dāng)?shù)诙刂破?3將第二緩存的數(shù)據(jù)全部寫(xiě)入存儲(chǔ)器35時(shí),第二控制器33的該串口輸出的第二關(guān)閉信號(hào)由高電平跳變?yōu)楦咦钁B(tài)。例如,可通過(guò)圖8所示的第二控制器33的一引腳串口輸出第二關(guān)閉信號(hào)。
[0100]備用電源33,用于接收第一控制器32發(fā)送的第一關(guān)閉信號(hào);還用于接收第二控制器33發(fā)送的第二關(guān)閉信號(hào);還用于根據(jù)第一關(guān)閉信號(hào)以及第二關(guān)閉信號(hào)結(jié)束供電操作。[0101]進(jìn)一步可選地,備用電源34可通過(guò)以下四種方式實(shí)現(xiàn)備用電源34的結(jié)束供電操作:
[0102]方式一,當(dāng)備用電源34檢測(cè)出第一關(guān)閉信號(hào)出現(xiàn)上升沿后,若檢測(cè)到第二關(guān)閉信號(hào)出現(xiàn)上升沿,結(jié)束供電操作。
[0103]圖6為備用電源34結(jié)束供電操作的一種實(shí)現(xiàn)方案,其中,備用電源34分別與第一控制器32和第二控制器33建立連接,通過(guò)第一控制器32中第一三極管Ql的集電極cl進(jìn)行信號(hào)采樣,檢測(cè)第一控制器32芯片串口輸出的第一關(guān)閉信號(hào)(第一 BBU_0FF_10),通過(guò)第二控制器33中第二三極管Q2的集電極c2進(jìn)行信號(hào)采樣,檢測(cè)第二控制器33芯片串口輸出的第二關(guān)閉信號(hào)(第二 BBU_0FF_10)。由于第一緩存的數(shù)據(jù)全部被寫(xiě)入存儲(chǔ)器35后,第一控制器32芯片串口輸出的第一關(guān)閉信號(hào)改變?yōu)樯仙?,第二緩存的?shù)據(jù)全部被寫(xiě)入存儲(chǔ)器35后,第二控制器33芯片串口輸出的第二關(guān)閉信號(hào)改變?yōu)樯仙?,可將本?shí)現(xiàn)方案規(guī)定為第一關(guān)閉信號(hào)與第二關(guān)閉信號(hào)的與邏輯檢測(cè)方式:
[0104]當(dāng)?shù)谝痪彺娴臄?shù)據(jù)全部被寫(xiě)入存儲(chǔ)器35,并且第二緩存的數(shù)據(jù)未全部被寫(xiě)入存儲(chǔ)器35時(shí),備用電源34將通過(guò)集電極Cl獲得采樣信號(hào)1,該采樣信號(hào)I為高電平,并認(rèn)為檢測(cè)到第一控制器32芯片串口發(fā)送的第一關(guān)閉信號(hào)改變?yōu)樯仙?,同時(shí),備用電源34通過(guò)集電極c2獲得采樣信號(hào)2,該采樣信號(hào)2為低電平,此時(shí)認(rèn)為第二控制器33芯片串口發(fā)送的第二關(guān)閉信號(hào)未改變?yōu)樯仙?,?dāng)前不能結(jié)束供電;當(dāng)?shù)诙彺娴臄?shù)據(jù)全部被寫(xiě)入存儲(chǔ)器35時(shí),備用電源34通過(guò)集電極c2獲得的采樣信號(hào)2為高電平,此時(shí)認(rèn)為第二控制器33芯片串口發(fā)送的第二關(guān)閉信號(hào)改變?yōu)樯仙?,則根據(jù)第一關(guān)閉信號(hào)和第二關(guān)閉信號(hào)的變化情況判斷出當(dāng)前可以結(jié)束供電操作,并結(jié)束供電操作。
[0105]可參照表格I,其中BBU_0FF_10為備用電源34同時(shí)檢測(cè)第一關(guān)閉信號(hào)(第一 BBU_0FF_10)和第二關(guān)閉信號(hào)(第二 BBU_0FF_10)后的邏輯運(yùn)算結(jié)果:
[0106]
【權(quán)利要求】
1.一種存儲(chǔ)系統(tǒng)的掉電處理方法,其特征在于,所述存儲(chǔ)系統(tǒng)包括主電源、備用電源、第一控制器、第二控制器以及存儲(chǔ)器,所述第一控制器包括第一緩存,所述第二控制器包括第二緩存,所述方法包括: 當(dāng)主電源掉電時(shí),所述第一控制器利用所述備用電源執(zhí)行將所述第一緩存的數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器的操作,并且,所述第二控制器利用所述備用電源執(zhí)行將所述第二緩存的數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器的操作; 當(dāng)所述第一緩存的數(shù)據(jù)已經(jīng)全部被寫(xiě)入所述存儲(chǔ)器,而所述第二緩存的數(shù)據(jù)還未被全部寫(xiě)入所述存儲(chǔ)器時(shí),所述第一控制器向所述備用電源發(fā)送第一關(guān)閉信號(hào),以使所述第一控制器完成下電操作; 當(dāng)所述主電源恢復(fù)供電時(shí),所述第一控制器利用所述主電源發(fā)起上電操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 當(dāng)所述第二緩存的數(shù)據(jù)全部寫(xiě)入所述存儲(chǔ)器時(shí),所述第二控制器向所述備用電源發(fā)送第二關(guān)閉信號(hào),以使所述第二控制器完成下電操作; 所述第二控制器利用所述主電源發(fā)起上電操作。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 所述備用電源根據(jù)所述第一關(guān)閉信號(hào)以及所述第二關(guān)閉信號(hào)結(jié)束供電操作。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述備用電源根據(jù)所述第一關(guān)閉信號(hào)以及所述第二關(guān)閉信號(hào)結(jié)束供電操作包括: 當(dāng)所述第一關(guān)閉信號(hào)出現(xiàn)上升沿后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)上升沿,所述備用電源結(jié)束供電操作;或 當(dāng)所述第一關(guān)閉信號(hào)出現(xiàn)下降沿后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)下降沿,所述備用電源結(jié)束供電操作。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述備用電源根據(jù)所述第一關(guān)閉信號(hào)以及所述第二關(guān)閉信號(hào)結(jié)束供電操作包括: 當(dāng)所述第一關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變,所述備用電源結(jié)束供電操作;或 當(dāng)所述第一關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變,所述備用電源結(jié)束供電操作。
6.一種存儲(chǔ)系統(tǒng),其特征在于,所述存儲(chǔ)系統(tǒng)包括主電源、備用電源、第一控制器、第二控制器以及存儲(chǔ)器,所述第一控制器包括第一緩存,所述第二控制器包括第二緩存,其中: 所述第一控制器,用于當(dāng)所述主電源掉電時(shí),利用所述備用電源執(zhí)行將所述第一緩存的數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器的操作; 所述第二控制器,用于當(dāng)所述主電源掉電時(shí),利用所述備用電源執(zhí)行將所述第二緩存的數(shù)據(jù)寫(xiě)入所述存儲(chǔ)器的操作; 所述第一控制器,還用于當(dāng)所述第一緩存的數(shù)據(jù)已經(jīng)全部被寫(xiě)入所述存儲(chǔ)器,而所述第二緩存的數(shù)據(jù)還未被全部寫(xiě)入所述存儲(chǔ)器時(shí),向所述備用電源發(fā)送第一關(guān)閉信號(hào),完成所述第一控制器的下電操作;當(dāng)所述主電源恢復(fù)供電時(shí),還用于利用所述主電源發(fā)起上電操作。
7.根據(jù)權(quán)利要求6所述的存儲(chǔ)系統(tǒng),其特征在于:當(dāng)所述第二緩存的數(shù)據(jù)全部寫(xiě)入所述存儲(chǔ)器時(shí),所述第二控制器還用于向所述備用電源發(fā)送第二關(guān)閉信號(hào),完成所述第二控制器的下電操作;還用于利用所述主電源發(fā)起上電操作。
8.根據(jù)權(quán)利要求7所述的存儲(chǔ)系統(tǒng),其特征在于: 所述備用電源,還用于根據(jù)所述第一關(guān)閉信號(hào)以及所述第二關(guān)閉信號(hào)結(jié)束供電操作。
9.根據(jù)權(quán)利要求8所述的存儲(chǔ)系統(tǒng),其特征在于: 所述備用電源,具體用于當(dāng)檢測(cè)到所述第一關(guān)閉信號(hào)出現(xiàn)上升沿后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)上升沿,則結(jié)束供電操作;或 當(dāng)檢測(cè)到所述第一關(guān)閉信號(hào)出現(xiàn)下降沿后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)下降沿,則結(jié)束供電操作。
10.根據(jù)權(quán)利要求8所述的存儲(chǔ)系統(tǒng),其特征在于: 所述備用電 源,具體用于當(dāng)檢測(cè)到所述第一關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)由高電平到高阻態(tài)的跳變,所述備用電源結(jié)束供電操作;或 當(dāng)檢測(cè)到所述第一關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變后,若檢測(cè)到所述第二關(guān)閉信號(hào)出現(xiàn)由低電平到高阻態(tài)的跳變,所述備用電源結(jié)束供電操作。
【文檔編號(hào)】G06F12/16GK103678178SQ201310469593
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年10月10日 優(yōu)先權(quán)日:2013年10月10日
【發(fā)明者】胡章雄 申請(qǐng)人:華為技術(shù)有限公司