本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法及裝置。
背景技術(shù):
內(nèi)存作為服務(wù)器系統(tǒng)的關(guān)鍵組成部分,其好壞直接影響服務(wù)器能否正常工作。其中,內(nèi)存具有間隔性刷新的特性,以保證內(nèi)存中的數(shù)據(jù)不被丟失。
現(xiàn)有技術(shù)中,可以根據(jù)經(jīng)驗(yàn)值來設(shè)置內(nèi)存的刷新參數(shù),以利用該刷新參數(shù)中對應(yīng)的刷新時間段,周期性的對內(nèi)存進(jìn)行刷新。
然而,若內(nèi)存的實(shí)際刷新時間段遠(yuǎn)遠(yuǎn)大于經(jīng)驗(yàn)值對應(yīng)的刷新時間段,那么根據(jù)經(jīng)驗(yàn)值設(shè)置的刷新參數(shù)會造成刷新資源的浪費(fèi);若內(nèi)存的實(shí)際刷新時間段小于經(jīng)驗(yàn)值對應(yīng)的刷新時間段,那么根據(jù)經(jīng)驗(yàn)值設(shè)置的刷新參數(shù)會造成內(nèi)存數(shù)據(jù)丟失。因此,現(xiàn)有技術(shù)無法準(zhǔn)確的確定內(nèi)存的刷新參數(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法及裝置,以便能準(zhǔn)確的確定內(nèi)存的刷新參數(shù)。
第一方面,本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法包括:
S1:確定初始刷新參數(shù);
S2:利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新;
S3:判斷刷新后的內(nèi)存是否正常工作,若正常工作,則執(zhí)行S4;否則,將當(dāng)前使用的刷新參數(shù)確定為目標(biāo)刷新參數(shù);
S4:按照刷新粒度對所述初始刷新參數(shù)進(jìn)行更新,并利用更新后的刷新參數(shù)對內(nèi)存進(jìn)行刷新,并執(zhí)行S3。
優(yōu)選地,
根據(jù)所述目標(biāo)刷新參數(shù)確定內(nèi)存使用時對應(yīng)的刷新參數(shù),其中,所述內(nèi)存使用時對應(yīng)的刷新參數(shù)小于所述目標(biāo)刷新參數(shù)。
優(yōu)選地,
所述利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新,包括:
獲取啟動盤;
將刷新參數(shù)的設(shè)置程序和內(nèi)存測試程序拷貝到所述啟動盤中;
在所述啟動盤中根據(jù)所述刷新參數(shù)的設(shè)置程序設(shè)置所述初始刷新參數(shù);
根據(jù)內(nèi)存測試程序讀取設(shè)置的所述初始刷新參數(shù),并根據(jù)讀取的所述初始刷新參數(shù)對內(nèi)存進(jìn)行刷新。
優(yōu)選地,
所述啟動盤包括:DOS(Disk Operating System,磁盤操作系統(tǒng))啟動盤。
優(yōu)選地,
所述刷新粒度包括:1ms-32ms;
和/或,
所述內(nèi)存包括:DRAM(Dynamic Random Access Memory,動態(tài)隨機(jī)存取存儲器)。
第二方面,本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定裝置,包括:
設(shè)置單元,用于設(shè)置刷新粒度,將所述刷新粒度輸出給處理單元;
第一確定單元,用于確定初始刷新參數(shù),將所述初始刷新參數(shù)輸出給刷新單元;
所述刷新單元,用于利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新;
判斷單元,用于判斷刷新后的內(nèi)存是否正常工作,若正常工作,則觸發(fā)處理單元執(zhí)行相應(yīng)操作;否則,觸發(fā)第二確定單元執(zhí)行相應(yīng)操作;
所述第二確定單元,用于將當(dāng)前使用的刷新參數(shù)確定為目標(biāo)刷新參數(shù);
所述處理單元,用于按照刷新粒度對所述初始刷新參數(shù)進(jìn)行更新,并利用更新后的刷新參數(shù)對內(nèi)存進(jìn)行刷新,并觸發(fā)所述判斷單元執(zhí)行相應(yīng)操作。
優(yōu)選地,
所述的內(nèi)存目標(biāo)刷新參數(shù)的確定裝置,進(jìn)一步包括:
第三確定單元,用于根據(jù)所述目標(biāo)刷新參數(shù)確定內(nèi)存使用時對應(yīng)的刷新參數(shù),其中,所述內(nèi)存使用時對應(yīng)的刷新參數(shù)小于所述目標(biāo)刷新參數(shù)。
優(yōu)選地,
所述刷新單元,包括:
獲取模塊,用于獲取啟動盤;
拷貝模塊,用于將刷新參數(shù)的設(shè)置程序和內(nèi)存測試程序拷貝到所述啟動盤中;
設(shè)置模塊,用于在所述啟動盤中根據(jù)所述刷新參數(shù)的設(shè)置程序設(shè)置所述初始刷新參數(shù);
處理模塊,用于根據(jù)內(nèi)存測試程序讀取設(shè)置的所述初始刷新參數(shù),并根據(jù)讀取的所述初始刷新參數(shù)對內(nèi)存進(jìn)行刷新。
優(yōu)選地,
所述啟動盤包括:DOS啟動盤。
優(yōu)選地,
所述刷新粒度包括:1ms-32ms;
和/或,
所述內(nèi)存包括:DRAM。
本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法及裝置,通過確定初始刷新參數(shù),并利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新,判斷刷新后的內(nèi)存是否正常工作,若正常工作,則表明當(dāng)前使用的刷新參數(shù)可以滿足內(nèi)存的正常刷新,通過刷新粒度對該當(dāng)前使用的刷新參數(shù)進(jìn)行更新,以利用更新后的刷新參數(shù)對內(nèi)存進(jìn)行刷新,直到確定出當(dāng)前使用的刷新參數(shù)使得刷新后的內(nèi)存無法正常工作時,將當(dāng)前使用的刷新參數(shù)確定為目標(biāo)刷新參數(shù)。本方案通過該刷新粒度可以準(zhǔn)確的確定出內(nèi)存的刷新參數(shù)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個實(shí)施例提供的一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法流程圖;
圖2是本發(fā)明一個實(shí)施例提供的另一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法流程圖;
圖3是本發(fā)明一個實(shí)施例提供的裝置所在設(shè)備的硬件架構(gòu)圖;
圖4是本發(fā)明一個實(shí)施例提供的一種內(nèi)存目標(biāo)刷新參數(shù)的確定裝置結(jié)構(gòu)圖;
圖5是本發(fā)明一個實(shí)施例提供的另一種內(nèi)存目標(biāo)刷新參數(shù)的確定裝置結(jié)構(gòu)圖;
圖6是本發(fā)明一個實(shí)施例提供的另一種內(nèi)存目標(biāo)刷新參數(shù)的確定裝置結(jié)構(gòu)圖;
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法,其特征在于,預(yù)先設(shè)置刷新粒度,該方法可以包括以下步驟:
步驟101:確定初始刷新參數(shù);
步驟102:利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新;
步驟103:判斷刷新后的內(nèi)存是否正常工作,若正常工作,則執(zhí)行步驟104;否則,執(zhí)行步驟105;
步驟104:按照刷新粒度對所述初始刷新參數(shù)進(jìn)行更新,并利用更新后的刷新參數(shù)對內(nèi)存進(jìn)行刷新,并執(zhí)行步驟103。
步驟105:將當(dāng)前使用的刷新參數(shù)確定為目標(biāo)刷新參數(shù);
本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法及裝置,通過確定初始刷新參數(shù),并利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新,判斷刷新后的內(nèi)存是否正常工作,若正常工作,則表明當(dāng)前使用的刷新參數(shù)可以滿足內(nèi)存的正常刷新,通過刷新粒度對該當(dāng)前使用的刷新參數(shù)進(jìn)行更新,以利用更新后的刷新參數(shù)對內(nèi)存進(jìn)行刷新,直到確定出當(dāng)前使用的刷新參數(shù)使得刷新后的內(nèi)存無法正常工作時,將當(dāng)前使用的刷新參數(shù)確定為目標(biāo)刷新參數(shù)。本方案通過該刷新粒度可以準(zhǔn)確的確定出內(nèi)存的刷新參數(shù)。
在一種可能的實(shí)現(xiàn)方式中,為了更快地確定目標(biāo)刷新參數(shù),所述利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新,包括:
獲取啟動盤;
將刷新參數(shù)的設(shè)置程序和內(nèi)存測試程序拷貝到所述啟動盤中;
在所述啟動盤中根據(jù)所述刷新參數(shù)的設(shè)置程序設(shè)置所述初始刷新參數(shù);
根據(jù)內(nèi)存測試程序讀取設(shè)置的所述初始刷新參數(shù),并根據(jù)讀取的所述初始刷新參數(shù)對內(nèi)存進(jìn)行刷新。
例如,制作一個DOS(Disk Operating System,磁盤操作系統(tǒng))啟動盤,將刷新時間設(shè)置程序refresh.exe和內(nèi)存測試程序拷貝到DOS盤中,開機(jī)進(jìn)入DOS盤,運(yùn)行refresh.exe設(shè)置初始刷新時間32ms,運(yùn)行內(nèi)存測試程序?qū)?nèi)存進(jìn)行刷新。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對本發(fā)明作進(jìn)一步地詳細(xì)描述。
如圖2所示,本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法,該方法可以包括以下步驟:
步驟201:獲取啟動盤。
在本實(shí)施例中,選擇一個啟動盤,其中,該啟動盤可以為U盤、光盤、移動硬盤等。本發(fā)明實(shí)施例以DOS啟動盤為例進(jìn)行說明。
步驟202:將刷新參數(shù)設(shè)置程序和內(nèi)存測試程序拷貝到DOS啟動盤中。
其中,該刷新參數(shù)設(shè)置程序可以預(yù)先設(shè)計好,并為該刷新參數(shù)設(shè)置程序進(jìn)行命名,例如,為refresh.exe。該內(nèi)存測試程序也可以預(yù)先設(shè)計好。在獲取到DOS啟動盤之后,將refresh.exe和內(nèi)存測試程序拷貝到DOS啟動盤中。
在本發(fā)明一個實(shí)施例中,也可以直接在DOS啟動盤中進(jìn)行刷新參數(shù)設(shè)置程序和內(nèi)存測試程序的設(shè)計。
步驟203:確定初始刷新參數(shù)。
在本實(shí)施例中,所測試內(nèi)存為DRAM(Dynamic Random Access Memory,動態(tài)隨機(jī)存取存儲器)。刷新時間的間隔標(biāo)準(zhǔn)為64ms,即正常情況下要保證存儲電容能保持?jǐn)?shù)據(jù)64ms。當(dāng)延長刷新時間時,意味著每次刷新數(shù)據(jù)的時間間隔變長,內(nèi)存中一些保持?jǐn)?shù)據(jù)能力較差的數(shù)據(jù)位經(jīng)過更長時間的漏電可能由高電平變?yōu)榈碗娖?,?dǎo)致數(shù)據(jù)發(fā)生錯誤。為了確定內(nèi)存正常工作的刷新時間,本實(shí)施例中,選擇初始刷新時間為32ms。
步驟204:開機(jī)進(jìn)入啟動盤,運(yùn)行程序。
在本實(shí)施例中,開機(jī)進(jìn)入DOS盤,運(yùn)行參數(shù)設(shè)置程序refresh.exe和內(nèi)存測試程序。
步驟205:利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新。
利用初始刷新時間,即32ms,對內(nèi)存進(jìn)行測試。
步驟206:判斷刷新后的內(nèi)存是否正常工作,若正常工作,則執(zhí)行步驟207;否則,執(zhí)行步驟208。
在本實(shí)施例中,刷新后的內(nèi)存如果能正常工作,則更新刷新參數(shù)為64ms,繼續(xù)對內(nèi)存進(jìn)行刷新,否則將當(dāng)前使用的刷新參數(shù)32ms確定為目標(biāo)刷新參數(shù)。
在本實(shí)施例中,可以通過判斷是否發(fā)生數(shù)據(jù)丟失來確定刷新后的內(nèi)存能否正常工作,若發(fā)生了數(shù)據(jù)丟失,則表征內(nèi)存無法正常工作,若未發(fā)生數(shù)據(jù)丟失,則表征內(nèi)存能夠正常工作。
步驟207:按照刷新粒度對當(dāng)前使用的刷新參數(shù)進(jìn)行更新,并利用更新后的刷新參數(shù)對內(nèi)存進(jìn)行刷新,并執(zhí)行步驟206。
在本發(fā)明一個實(shí)施例中,該刷新粒度可以為1ms-32ms。
在本實(shí)施例中,刷新粒度設(shè)置的越小,確定出的目標(biāo)刷新參數(shù)越準(zhǔn)確,刷新粒度設(shè)置的越大,在確定出目標(biāo)刷新參數(shù)時經(jīng)過的刷新次數(shù)越少,所以,為了平衡目標(biāo)刷新參數(shù)準(zhǔn)確度和刷新效率,可以選擇最佳的刷新粒度對應(yīng)的值。例如,
該刷新粒度為32ms。
由于初始刷新時間為32ms,那么利用刷新粒度對該初始刷新時間進(jìn)行更新后,得到更新后的刷新參數(shù)為64ms,即利用64ms執(zhí)行步驟206。更新刷新粒度后,繼續(xù)對所測試內(nèi)存進(jìn)行刷新,接著執(zhí)行步驟206。
步驟208:將當(dāng)前使用的刷新參數(shù)確定為目標(biāo)刷新參數(shù)。
當(dāng)刷新后的內(nèi)存無法正常工作時,此時使用的刷新時間確定為目標(biāo)刷新時間。
步驟209:根據(jù)所述目標(biāo)刷新參數(shù)確定內(nèi)存使用時對應(yīng)的刷新參數(shù),其中,所述內(nèi)存使用時對應(yīng)的刷新參數(shù)小于所述目標(biāo)刷新參數(shù)。
比如,當(dāng)確定的目標(biāo)刷新參數(shù)為64ms時,為了保證目標(biāo)內(nèi)存能夠正常工作,所述內(nèi)存使用時對應(yīng)的刷新參數(shù)小于所述目標(biāo)刷新參數(shù),因此,可以將內(nèi)存使用時的刷新參數(shù)設(shè)置為63ms。
如圖3、圖4所示,本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定裝置。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。從硬件層面而言,如圖3所示,為本發(fā)明實(shí)施例提供的內(nèi)存目標(biāo)刷新參數(shù)的確定裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報文的轉(zhuǎn)發(fā)芯片等等。以軟件實(shí)現(xiàn)為例,如圖4所示,作為一個邏輯意義上的裝置,是通過其所在設(shè)備的CPU將非易失性存儲器中對應(yīng)的計算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。本實(shí)施例提供的內(nèi)存目標(biāo)刷新參數(shù)的確定裝置,包括:
設(shè)置單元401,用于設(shè)置刷新粒度,將所述刷新粒度輸出給處理單元;
第一確定單元402,用于確定初始刷新參數(shù),將所述初始刷新參數(shù)輸出給刷新單元;
刷新單元403,用于利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新;
判斷單元404,用于判斷刷新后的內(nèi)存是否正常工作,若正常工作,則觸發(fā)處理單元執(zhí)行相應(yīng)操作;否則,觸發(fā)第二確定單元執(zhí)行相應(yīng)操作;
第二確定單元405,用于將當(dāng)前使用的刷新參數(shù)確定為目標(biāo)刷新參數(shù);
處理單元406,用于按照刷新粒度對所述初始刷新參數(shù)進(jìn)行更新,并利用更新后的刷新參數(shù)對內(nèi)存進(jìn)行刷新,并觸發(fā)所述判斷單元執(zhí)行相應(yīng)操作。
在本發(fā)明一個實(shí)施例中,請參考圖5,該內(nèi)存目標(biāo)刷新參數(shù)的確定裝置可以進(jìn)一步包括:
第三確定單元501,用于根據(jù)所述目標(biāo)刷新參數(shù)確定內(nèi)存使用時對應(yīng)的刷新參數(shù),其中,所述內(nèi)存使用時對應(yīng)的刷新參數(shù)小于所述目標(biāo)刷新參數(shù)。
在本發(fā)明一個實(shí)施例中,請參考圖6,所述刷新單元403,可以包括:
獲取模塊601,用于獲取啟動盤;
拷貝模塊602,用于將刷新參數(shù)的設(shè)置程序和內(nèi)存測試程序拷貝到所述啟動盤中;
設(shè)置模塊603,用于在所述啟動盤中根據(jù)所述刷新參數(shù)的設(shè)置程序設(shè)置所述初始刷新參數(shù);
處理模塊604,用于根據(jù)內(nèi)存測試程序讀取設(shè)置的所述初始刷新參數(shù),并根據(jù)讀取的所述初始刷新參數(shù)對內(nèi)存進(jìn)行刷新。
在本發(fā)明一個實(shí)施例中,該刷新粒度可以為1ms-32ms。
在本實(shí)施例中,刷新粒度設(shè)置的越小,確定出的目標(biāo)刷新參數(shù)越準(zhǔn)確,刷新粒度設(shè)置的越大,在確定出目標(biāo)刷新參數(shù)時經(jīng)過的刷新次數(shù)越少,所以,為了平衡目標(biāo)刷新參數(shù)準(zhǔn)確度和刷新效率,可以選擇最佳的刷新粒度對應(yīng)的值。例如,
該刷新粒度為32ms。
在本實(shí)施例中,所測試內(nèi)存為DRAM。
在本實(shí)施例中,選擇一個啟動盤,其中,該啟動盤可以為U盤、光盤、移動硬盤,本發(fā)明實(shí)施選擇DOS啟動盤。
綜上,本發(fā)明各個實(shí)施例具有如下效果:
1、本發(fā)明實(shí)施例提供了一種內(nèi)存目標(biāo)刷新參數(shù)的確定方法及裝置,通過確定初始刷新參數(shù),并利用初始刷新參數(shù)對內(nèi)存進(jìn)行刷新,判斷刷新后的內(nèi)存是否正常工作,若正常工作,則表明當(dāng)前使用的刷新參數(shù)可以滿足內(nèi)存的正常刷新,通過刷新粒度對該當(dāng)前使用的刷新參數(shù)進(jìn)行更新,以利用更新后的刷新參數(shù)對內(nèi)存進(jìn)行刷新,直到確定出當(dāng)前使用的刷新參數(shù)使得刷新后的內(nèi)存無法正常工作時,將當(dāng)前使用的刷新參數(shù)確定為目標(biāo)刷新參數(shù)。本方案通過該刷新粒度可以準(zhǔn)確的確定出內(nèi)存的刷新參數(shù)。
2、在本發(fā)明實(shí)施例中,通過刷新參數(shù)對內(nèi)存進(jìn)行測試,不但可以更快地確定目標(biāo)內(nèi)存的刷新參數(shù),還可以篩選出故障內(nèi)存和一些有風(fēng)險的內(nèi)存,有效的保障篩選后的內(nèi)存在客戶端穩(wěn)定正常的工作,可以提高內(nèi)存的穩(wěn)定性和可靠性。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲在計算機(jī)可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。