一種數據更新的方法和裝置與流程
2023-09-14 22:37:40
本發明實施例涉及計算機數據處理領域,尤其涉及一種數據更新的方法和裝置。
背景技術:
隨著嵌入式產品的越來越多的應用,其短暫的使用壽命也逐步體現出來,往往一臺設備用不了幾年就因設備老化等原因而不得不從第一線退役下來。其中的一個重要因素就是存儲晶片的老化。Flash存儲晶片在其生產出來時就有著明確的擦寫次數限制,市場上很多產品在其開發階段沒有充分考慮對Flash壽命的節約使用,過度擦寫破壞Flash存儲晶片的存儲區並最終導致數據丟失、嵌入式程序無法正常的運行等致命問題。一臺嵌入式設備往往有很多的硬體和軟體相結合來實現其特定功能,由於Flash存儲晶片的不合理利用導致整個產品的報廢,最終造成了資源的極大浪費。
技術實現要素:
本發明實施例提供一種數據更新的方法和裝置,用於減少Flash存儲晶片的擦寫次數,從而延長Flash存儲晶片使用壽命,降低設備的維護成本。
本發明實施例提供了一種數據更新的方法,包括:
接收對存儲晶片中的嵌入式資料庫的訪問請求;
確定所述嵌入式資料庫中的第一數據,將所述第一數據保存至內存空間;
接收針對所述第一數據的訪問請求時,讀寫所述內存空間中的所述第一數據;
在設定時間段之後將所述第一數據更新至所述存儲晶片。
可選地,所述接收對存儲晶片中的嵌入式資料庫的訪問請求之前,還包括:
將所述嵌入式資料庫中的數據分為第一數據和第二數據,所述第一數據為非重要性和\或讀寫頻率高的數據,所述第二數據為重要性數據。
可選地,所述接收對存儲晶片中的嵌入式資料庫的訪問請求之後,還包括:
接收針對所述第二數據的訪問請求時,讀寫所述存儲晶片中的所述第二數據。
可選地,所述在設定時間段之後將所述第一數據更新至所述存儲晶片,包括:
確定在所述設定時間段內所述第一數據是否發生變化;
若發生變化,則將發生變化的第一數據更新到所述存儲晶片。
可選地,接收對存儲晶片中的嵌入式資料庫的訪問請求,包括:
接收應用軟體對所述存儲晶片中的嵌入式資料庫的訪問請求;
在設定時間段之後將所述第一數據更新至所述存儲晶片之後,還包括:
若接收到針對所述第一數據的訪問請求,則讀寫所述內存空間中的所述第一數據;
若接收到所述應用軟體執行結束指令,則將所述內存空間中的所述第一數據更新至所述存儲晶片並刪除所述內存空間。
相應地,本發明實施例還提供了一種數據更新的裝置,包括:
接收模塊,用於接收對存儲晶片中的嵌入式資料庫的訪問請求;
保存模塊,用於確定所述嵌入式資料庫中的第一數據,將所述第一數據保存至內存空間;
處理模塊,用於接收針對所述第一數據的訪問請求時,讀寫所述內存空間中的所述第一數據;
更新模塊,用於在設定時間段之後將所述第一數據更新至所述存儲晶片。
可選地,所述接收模塊還用於:
將所述嵌入式資料庫中的數據分為第一數據和第二數據,所述第一數據為非重要性和\或讀寫頻率高的數據,所述第二數據為重要性數據。
可選地,所述接收模塊還用於:
接收針對所述第二數據的訪問請求時,讀寫所述存儲晶片中的所述第二數據。
可選地,所述更新模塊具體用於:
確定在所述設定時間段內第一數據是否發生變化;
若發生變化,則將發生變化的第一數據更新到所述存儲晶片。
可選地,接收模塊具體用於:接收應用軟體對所述存儲晶片中的嵌入式資料庫的訪問請求;
處理模塊還用於:若接收到針對所述第一數據的訪問請求,則讀寫所述內存空間中的所述第一數據;
若接收到所述應用軟體執行結束指令,則將所述內存空間中的所述第一數據更新至所述存儲晶片並刪除所述內存空間。
本發明實施例提供了一種數據更新的方法和裝置,首先接收對存儲晶片中的嵌入式資料庫的訪問請求並確定所述嵌入式資料庫中的第一數據,然後將所述第一數據保存至內存空間。接收針對所述第一數據的訪問請求時,讀寫所述內存空間中的所述第一數據,在設定時間段之後將所述第一數據更新至所述存儲晶片。本發明實施例中,由於在對嵌入式資料庫中的第一數據進行讀寫操作時,並不是每次讀寫操作後更新至存儲晶片,而是將第一數據保存至內存空間,並且在內存空間中執行對第一數據的讀寫操作,設定時間段後再更新到存儲晶片中,故大幅減少了對存儲晶片的擦寫次數,從而延長了存儲晶片使用壽命,降低設備的維護成本。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種數據更新的方法的流程示意圖;
圖2為本發明實施例提供的另一種數據更新的方法的流程示意圖;
圖3為本發明實施例提供的一種數據更新的裝置的結構示意圖。
具體實施方式
為了使本發明的目的、技術方案及有益效果更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
本發明實施例中存儲晶片為Flash,Flash是存儲晶片的一種,通過特定的程序可以修改裡面的數據。Flash存儲器又稱快閃記憶體,它結合了只讀存儲器(Read-Only Memory,簡稱ROM)和隨機存取存儲器(Random Access Memory,簡稱RAM)的長處,不僅具備電子可擦除可編程的性能,還可以快速讀取數據,使數據不會因為斷電而丟失。
圖1例性示出了本發明實施例提供的一種數據更新的方法的流程,該流程由數據更新的裝置執行。
如圖1所示,該流程的具體步驟包括:
步驟S101,接收對存儲晶片中的嵌入式資料庫的訪問請求。
步驟S102,確定嵌入式資料庫中的第一數據,將第一數據保存至內存空間。
步驟S103,接收針對第一數據的訪問請求時,讀寫內存空間中的第一數據。
步驟S104,在設定時間段之後將第一數據更新至存儲晶片。
以應用軟體為例,嵌入式資料庫通常是開發人員在開發應用軟體時創建的,並將與應用軟體相關的數據保存至嵌入式資料庫之後,將嵌入式資料庫保存至Flash存儲晶片中。應用軟體在啟動時加載嵌入式資料庫並訪問嵌入式資料庫中的數據。應用軟體在運行過程中也需要訪問嵌入式資料庫,或者對嵌入式資料庫中的數據進行修改,因而導致Flash存儲晶片的多次讀寫操作。在本發明實施例中,通過將嵌入式資料庫中的第一數據保存至內存空間,然後從內存空間中讀寫第一數據,在設定時間後才將第一數據更新至存儲晶片,從而減少了對存儲晶片的讀寫次數。第一數據可以是嵌入式資料庫中的所有數據,也可以是嵌入式資料庫中的部分數據,還可以是根據設定規則將嵌入式資料庫中的數據進行一定的劃分。
可選的,在步驟S102中,確定嵌入式資料庫中的第一數據之前,將嵌入式資料庫中的數據分為第一數據和第二數據,第一數據為非重要性和\或讀寫頻率高的數據,第二數據為重要性數據,如實時同步要求高的數據。應用軟體運行時創建內存空間,並將嵌入式資料庫中的第一數據保存至內存空間。此實施例可以使得應用軟體中的非重要數據在存儲晶片中的讀寫次數減少,一方面延長了存儲晶片的使用時間,另一方面也降低了對內存空間的要求。
可選的,本發明實施例中,為了保證第二數據不發生意外丟失,第二數據不能保存在內存空間中。在接收針對第二數據的訪問請求時,直接在Flash存儲晶片中讀寫第二數據,第二數據即為重要性數據。此實施例中確保了重要數據的及時更新及不丟失。
在步驟S103和步驟S104,應用軟體在運行期間,需要對第一數據進行訪問時,在內存空間中讀寫第一數據。在設定時間段之後將第一數據更新至Flash存儲晶片。設定的時間段可根據具體情況設定。將第一數據更新至Flash存儲晶片後,若後續應用軟體仍在繼續運行,則繼續在內存空間中讀寫第一數據,並以設定時間段為周期循環更新內存空間中的第一數據,直至應用軟體執行結束指令時結束循環,並將內存空間中的第一數據更新至Flash存儲晶片並刪除內存空間。具體實施中,還可以在外部配置嵌入式資料庫的參數時結束循環,將內存空間中的第一數據更新至Flash存儲晶片並刪除內存空間。
由於在創建嵌入式資料庫時便將資料庫中的數據進行分類,並在程序運行時將非重要性和\或讀寫頻率高的數據保存至內存空間,故在內存空間中對非重要性和\或讀寫頻率高的數據進行讀寫,經過多次讀寫後才將內存空間中的數據更新至Flash存儲晶片,從而減少了Flash存儲晶片的擦寫次數,延長了Flash存儲晶片的使用壽命。
可選地,在設定時間段之後將第一數據更新至Flash存儲晶片具體為:首先確定在設定時間段內第一數據是否發生變化。若第一數據發生變化,則將發生變化的第一數據更新到Flash存儲晶片。例如,設定內存空間中原始第一數據為A、B、C、D、E,設定時間段內數據A變為數據a,之後又變為a1,數據C變為數據c,則將數據a1和c更新至Flash存儲晶片,數據B、D、E不需要更新。若第一數據沒有發生變化,則不需要執行將第一數據更新到Flash存儲晶片的操作,例如設定內存空間中原始第一數據為A、B、C、D、E,設定時間段後數據A首先變為數據a,之後又從數據a變為數據A,由此在設定時間段內第一數據為A、B、C、D、E沒有發生變化,故不需要執行將第一數據更新到Flash存儲晶片的操作。由上述實施例可知,在程序運行期間,非重要性和\或讀寫頻率高的數據會進行多次讀寫,並且在多次讀寫後會發生多次變換,有時也會出現數據發生多次變化後變回原始數據的情況。若每次對非重要性和\或讀寫頻率高的數據進行讀寫後更新至Flash存儲晶片,則需要多次擦寫Flash存儲晶片,這樣一方面保存的數據意義不大,另一方面浪費了Flash存儲晶片的擦寫次數。故設定時間段後將內存空間中發生變化的第一數據更新到Flash存儲晶片能大幅較少Flash存儲晶片的擦寫次數,延長Flash存儲晶片的使用壽命。
為了更好的解釋本發明實施例,下面通過具體的實施場景描述本發明實施例提供的一種數據更新的方法的流程。
如圖2所示,該方法包括以下步驟:
步驟S201,將嵌入式資料庫中的數據分為第一數據和第二數據。
步驟S202,應用軟體加載嵌入式資料庫。
步驟S203,創建內存空間並將第一數據保存至內存空間。
步驟S204,判斷第一數據是否發生更新,若是執行步驟S205,否則執行步驟S207。
步驟S205,在內存空間中更新第一數據。
步驟S206,設定時間段或特定事件觸發後將內存空間的數據更新到Flash存儲晶片。
步驟S207,判斷第二數據是否發生更新,若是執行步驟S208,否則執行步驟S209。
步驟S208,在Flash存儲晶片中直接更新第二數據。
步驟S209,不執行將數據更新到Flash存儲晶片的操作。
從上述內容可以看出,本發明實施例提供了一種數據更新的方法和裝置,首先接收對存儲晶片中的嵌入式資料庫的訪問請求並確定所述嵌入式資料庫中的第一數據,然後將所述第一數據保存至內存空間。接收針對所述第一數據的訪問請求時,讀寫所述內存空間中的所述第一數據,在設定時間段之後將所述第一數據更新至所述存儲晶片。本發明實施例中,由於在對嵌入式資料庫中的第一數據進行讀寫操作時,並不是每次讀寫操作後更新至Flash存儲晶片,而是將第一數據保存至內存空間,並且在內存空間中執行對第一數據的讀寫操作,設定時間段後再更新到Flash存儲晶片中,故大幅減少了對Flash存儲晶片的擦寫次數,從而延長了Flash存儲晶片使用壽命,降低設備的維護成本。
基於相同構思,圖3示例性的示出了本發明實施例提供的一種數據更新的裝置的結構,該裝置可以執行數據更新的方法的流程。
如圖3所示,該裝置包括:
接收模塊301,用於接收對存儲晶片中的嵌入式資料庫的訪問請求;
保存模塊302,用於確定所述嵌入式資料庫中的第一數據,將所述第一數據保存至內存空間;
處理模塊303,用於接收針對所述第一數據的訪問請求時,讀寫所述內存空間中的所述第一數據;
更新模塊304,用於在設定時間段之後將所述第一數據更新至所述存儲晶片。
可選地,所述接收模塊301還用於:
將所述嵌入式資料庫中的數據分為第一數據和第二數據,所述第一數據為非重要性和\或讀寫頻率高的數據,所述第二數據為重要性數據。
可選地,所述接收模塊301還用於:
接收針對所述第二數據的訪問請求時,讀寫所述存儲晶片中的所述第二數據。
可選地,所述更新模塊304具體用於:
確定在所述設定時間段內所述第一數據是否發生變化;
若發生變化,則將發生變化的第一數據更新到所述存儲晶片。
可選地,接收模塊301具體用於:接收應用軟體對所述存儲晶片中的嵌入式資料庫的訪問請求;
處理模塊303還用於:若接收到針對所述第一數據的訪問請求,則讀寫所述內存空間中的所述第一數據;
若接收到所述應用軟體執行結束指令,則將所述內存空間中的所述第一數據更新至所述存儲晶片並刪除所述內存空間。
從上述內容可以看出,本發明實施例提供了一種數據更新的方法和裝置,首先接收對存儲晶片中的嵌入式資料庫的訪問請求並確定所述嵌入式資料庫中的第一數據,然後將所述第一數據保存至內存空間。接收針對所述第一數據的訪問請求時,讀寫所述內存空間中的所述第一數據,在設定時間段之後將所述第一數據更新至所述存儲晶片。本發明實施例中,由於在對嵌入式資料庫中的第一數據進行讀寫操作時,並不是每次讀寫操作後更新至Flash存儲晶片,而是將第一數據保存至內存空間,並且在內存空間中執行對第一數據的讀寫操作,設定時間段後再更新到Flash存儲晶片中,故大幅減少了對Flash存儲晶片的擦寫次數,從而延長了Flash存儲晶片使用壽命,降低設備的維護成本。
本領域內的技術人員應明白,本發明的實施例可提供為方法、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、CD-ROM、光學存儲器等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
儘管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明範圍的所有變更和修改。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。