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