本申請(qǐng)涉及數(shù)據(jù)存儲(chǔ),更具體的,涉及一種掉電保持?jǐn)?shù)據(jù)同步方法及相關(guān)裝置。
背景技術(shù):
1、數(shù)據(jù)位號(hào)掉電保持是plc(programmable?logic?controller,可編程邏輯控制器)等產(chǎn)品重要的一項(xiàng)功能。數(shù)據(jù)位號(hào)一般都直接分配到讀寫速度快,容量大的易失性存儲(chǔ)設(shè)備中,如ddr?sdram(double?data?rate?sdram,雙倍速率sdram),然后數(shù)據(jù)位號(hào)通過實(shí)時(shí)同步操作,從易失性存儲(chǔ)設(shè)備實(shí)時(shí)同步至非易失性存儲(chǔ)設(shè)備,如mram(magnetic?randomaccess?memory,非揮發(fā)性的磁性隨機(jī)存儲(chǔ)器)。
2、由于mram的容量普遍遠(yuǎn)小于ddr?sdram的容量,為了方便管理與同步,一般在mram中固化了一片連續(xù)內(nèi)存區(qū)作為掉電保持區(qū),在ddr?sdram中選擇容量大小與mram相同、地址固定且連續(xù)的一片內(nèi)存區(qū)作為數(shù)據(jù)掉電保持可配置區(qū),數(shù)據(jù)掉電保持可配置區(qū)中被配置為掉電保持屬性的數(shù)據(jù)位號(hào),即掉電保持位號(hào)在數(shù)據(jù)掉電保持可配置區(qū)的偏移地址與在掉電保持區(qū)的偏移地址一致。在plc運(yùn)行過程中,掉電保持位號(hào)的數(shù)據(jù)被同步到掉電保持區(qū)中的相應(yīng)地址。基于上述同步方式,若數(shù)據(jù)掉電保持可配置區(qū)的數(shù)據(jù)位號(hào)已全部分配,當(dāng)再需要新建數(shù)據(jù)位號(hào)并使其具備掉電保持屬性時(shí),需要?jiǎng)h除數(shù)據(jù)掉電保持可配置區(qū)的數(shù)據(jù)位號(hào),使新建數(shù)據(jù)位號(hào)插入到已刪除數(shù)據(jù)位號(hào)的地址,掉電保持區(qū)配置操作復(fù)雜,且影響被刪除數(shù)據(jù)位號(hào)引用方的正常引用。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,本申請(qǐng)?zhí)峁┝艘环N掉電保持?jǐn)?shù)據(jù)同步方法及相關(guān)裝置,以實(shí)現(xiàn)對(duì)掉電保持區(qū)的靈活配置的目的。具體方案如下:
2、本申請(qǐng)第一方面提供一種掉電保持?jǐn)?shù)據(jù)同步方法,包括:
3、遍歷預(yù)先生成的映射表,獲取掉電保持位號(hào)在易失性內(nèi)存中的用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在非易失性內(nèi)存中的掉電保持區(qū)的偏移地址,所述映射表用于記錄所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址之間的映射關(guān)系;
4、根據(jù)所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,執(zhí)行所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)與所述掉電保持區(qū)之間的數(shù)據(jù)同步。
5、在一種可能的實(shí)現(xiàn)中,在遍歷預(yù)先生成的映射表之前,還包括:
6、響應(yīng)于更新配置或掉電重啟,解析非易失性存儲(chǔ)器中的掉電保持配置表,獲取所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址,所述掉電保持配置表用于配置所述用戶數(shù)據(jù)區(qū)中每個(gè)已申請(qǐng)數(shù)據(jù)位號(hào)是否為所述掉電保持位號(hào);
7、為所述掉電保持位號(hào)分配所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址;
8、根據(jù)所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,生成所述映射表。
9、在一種可能的實(shí)現(xiàn)中,所述根據(jù)所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,執(zhí)行所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)與所述掉電保持區(qū)之間的數(shù)據(jù)同步,包括:
10、在更新配置后的正常運(yùn)行過程中,周期性的根據(jù)所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,將所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的位號(hào)值同步至所述掉電保持區(qū)。
11、在一種可能的實(shí)現(xiàn)中,響應(yīng)于掉電重啟,解析非易失性存儲(chǔ)器中的掉電保持配置表,獲取所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址,包括:
12、遍歷所述掉電保持配置表,針對(duì)所述掉電保持配置表中的每個(gè)偏移地址,若偏移地址對(duì)應(yīng)的值為非0值,將偏移地址對(duì)應(yīng)的數(shù)據(jù)位號(hào)確定為所述掉電保持位號(hào),并將所述非0值確定為所述掉電保持位號(hào)的掉電保持標(biāo)記值,所述掉電保持標(biāo)記值表示所述掉電保持位號(hào)的每一位是否啟用掉電保持功能。
13、在一種可能的實(shí)現(xiàn)中,所述映射表還用于記錄所述掉電保持位號(hào)的所述掉電保持標(biāo)記值。
14、在一種可能的實(shí)現(xiàn)中,所述根據(jù)所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,執(zhí)行所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)與所述掉電保持區(qū)之間的數(shù)據(jù)同步,包括:
15、根據(jù)所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,獲取所述掉電保持位號(hào)的位號(hào)值;
16、對(duì)所述掉電保持位號(hào)的位號(hào)值和所述掉電保持標(biāo)記值執(zhí)行與操作,得到目標(biāo)位號(hào)值;
17、將所述目標(biāo)位號(hào)值寫入所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址。
18、本申請(qǐng)第二方面提供一種掉電保持?jǐn)?shù)據(jù)同步裝置,包括:
19、映射表遍歷單元,用于遍歷預(yù)先生成的映射表,獲取掉電保持位號(hào)在易失性內(nèi)存中的用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在非易失性內(nèi)存中的掉電保持區(qū)的偏移地址,所述映射表用于記錄所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址之間的映射關(guān)系;
20、數(shù)據(jù)同步單元,用于根據(jù)所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,執(zhí)行所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)與所述掉電保持區(qū)之間的數(shù)據(jù)同步。
21、本申請(qǐng)第三方面提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可讀指令,當(dāng)所述計(jì)算機(jī)可讀指令在電子設(shè)備上運(yùn)行時(shí),使得所述電子設(shè)備實(shí)現(xiàn)上述第一方面或第一方面任一實(shí)現(xiàn)方式的掉電保持?jǐn)?shù)據(jù)同步方法。
22、本申請(qǐng)第四方面提供一種電子設(shè)備,包括至少一個(gè)處理器和與所述處理器連接的存儲(chǔ)器,其中:
23、所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序;
24、所述處理器用于執(zhí)行所述計(jì)算機(jī)程序,以使所述電子設(shè)備能夠?qū)崿F(xiàn)上述第一方面或第一方面任一實(shí)現(xiàn)方式的掉電保持?jǐn)?shù)據(jù)同步方法。
25、本申請(qǐng)第五方面提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)承載有一個(gè)或多個(gè)計(jì)算機(jī)程序,當(dāng)所述一個(gè)或多個(gè)計(jì)算機(jī)程序被電子設(shè)備執(zhí)行時(shí),能夠使所述電子設(shè)備上述第一方面或第一方面任一實(shí)現(xiàn)方式的掉電保持?jǐn)?shù)據(jù)同步方法。
26、借由上述技術(shù)方案,本申請(qǐng)?zhí)峁┑囊环N掉電保持?jǐn)?shù)據(jù)同步方法,采用映射表記錄掉電保持位號(hào)在易失性內(nèi)存中的用戶數(shù)據(jù)區(qū)的偏移地址與掉電保持位號(hào)在非易失性內(nèi)存中的掉電保持區(qū)的偏移地址之間的映射關(guān)系,實(shí)現(xiàn)易失性內(nèi)存與非易失性內(nèi)存之間的映射,從而實(shí)現(xiàn)掉電保持位號(hào)在易失性內(nèi)存中用戶數(shù)據(jù)區(qū)與非易失性內(nèi)存中掉電保持區(qū)之間的數(shù)據(jù)同步。不需要在用戶數(shù)據(jù)區(qū)中固化與掉電保持區(qū)容量大小一致的內(nèi)存作為數(shù)據(jù)掉電保持可配置區(qū),只要用戶數(shù)據(jù)區(qū)中掉電保持位號(hào)的總量未達(dá)到掉電保持區(qū)的容量,用戶數(shù)據(jù)區(qū)中任意地址的數(shù)據(jù)位號(hào)均可被配置為掉電保持位號(hào),實(shí)現(xiàn)掉電保持區(qū)的靈活配置。
1.一種掉電保持?jǐn)?shù)據(jù)同步方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的掉電保持?jǐn)?shù)據(jù)同步方法,其特征在于,在遍歷預(yù)先生成的映射表之前,還包括:
3.根據(jù)權(quán)利要求1或2所述的掉電保持?jǐn)?shù)據(jù)同步方法,其特征在于,所述根據(jù)所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,執(zhí)行所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)與所述掉電保持區(qū)之間的數(shù)據(jù)同步,包括:
4.根據(jù)權(quán)利要求2所述的掉電保持?jǐn)?shù)據(jù)同步方法,其特征在于,響應(yīng)于掉電重啟,解析非易失性存儲(chǔ)器中的掉電保持配置表,獲取所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址,包括:
5.根據(jù)權(quán)利要求4所述的掉電保持?jǐn)?shù)據(jù)同步方法,其特征在于,所述映射表還用于記錄所述掉電保持位號(hào)的所述掉電保持標(biāo)記值。
6.根據(jù)權(quán)利要求5所述的掉電保持?jǐn)?shù)據(jù)同步方法,其特征在于,所述根據(jù)所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)的偏移地址與所述掉電保持位號(hào)在所述掉電保持區(qū)的偏移地址,執(zhí)行所述掉電保持位號(hào)在所述用戶數(shù)據(jù)區(qū)與所述掉電保持區(qū)之間的數(shù)據(jù)同步,包括:
7.一種掉電保持?jǐn)?shù)據(jù)同步裝置,其特征在于,包括:
8.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)可讀指令,當(dāng)所述計(jì)算機(jī)可讀指令在電子設(shè)備上運(yùn)行時(shí),使得所述電子設(shè)備實(shí)現(xiàn)如權(quán)利要求1至6中任意一項(xiàng)所述的掉電保持?jǐn)?shù)據(jù)同步方法。
9.一種電子設(shè)備,其特征在于,包括至少一個(gè)處理器和與所述處理器連接的存儲(chǔ)器,其中:
10.一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其特征在于,所述存儲(chǔ)介質(zhì)承載有一個(gè)或多個(gè)計(jì)算機(jī)程序,當(dāng)所述一個(gè)或多個(gè)計(jì)算機(jī)程序被電子設(shè)備執(zhí)行時(shí),能夠使所述電子設(shè)備實(shí)現(xiàn)如權(quán)利要求1至6中任意一項(xiàng)所述的掉電保持?jǐn)?shù)據(jù)同步方法。