两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種串行閃存數(shù)據(jù)保護方法和裝置與流程

文檔序號:11774408閱讀:278來源:國知局

本發(fā)明涉及一種串行閃存數(shù)據(jù)保護方法和裝置,屬于計算機領域。



背景技術:

串行falsh存儲器因接口簡單、容量巨大,廣泛應用于單片機產品開發(fā)環(huán)境。但其讀寫速度相對緩慢的特點,導致其在進行數(shù)據(jù)寫入操作階段,意外發(fā)生掉電情況時會極高概率出現(xiàn)文件丟失,甚至導致整個文件系統(tǒng)崩潰現(xiàn)象。

現(xiàn)有階段解決此問題的方法通常:在硬件方面進行彌補,比如掉電保護電路等策略;此方法很大程度上解決了意外掉電帶來數(shù)據(jù)丟失的問題,但涉及的技術環(huán)節(jié)過多,并且同樣需要軟件方面配合,因此無法100%保證其可靠性。最大不足就是保護電路會極大地提升了產品開發(fā)成本(硬件成本)。



技術實現(xiàn)要素:

為了解決上述問題,本發(fā)明提供一種串行閃存數(shù)據(jù)保護方法和裝置。

本發(fā)明采用的技術方案一方面為一種串行閃存數(shù)據(jù)保護方法,包括以下步驟:基于邏輯地址劃分串行閃存為緩存區(qū)和實際區(qū);建立緩存區(qū)與實際區(qū)之間的頁面映射;將待寫入數(shù)據(jù)逐區(qū)寫入緩存區(qū)的映射扇區(qū),當緩存區(qū)的剩余的映射扇區(qū)的空間不足或者數(shù)據(jù)需要轉換扇區(qū)時,將映射扇區(qū)的數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

優(yōu)選地,還包括以下步驟:獲取需要寫入數(shù)據(jù)的實際區(qū)的絕對地址,查詢該絕對地址是否在緩存區(qū)存在對應的映射扇區(qū),如果不存在,則確定一個映射扇區(qū)并建立與所述絕對地址的頁面映射;如果存在,則讀取該映射扇區(qū)的數(shù)據(jù)并存入ram,所述ram用于存儲待寫入實際區(qū)的數(shù)據(jù)。

優(yōu)選地,當緩存區(qū)的剩余的映射扇區(qū)的空間不足時,ram從已寫入數(shù)據(jù)的映射扇區(qū)讀取數(shù)據(jù),基于頁面映射將數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

優(yōu)選地,當需要轉換扇區(qū)時,ram從對應的映射扇區(qū)讀取數(shù)據(jù),基于頁面映射將數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

本發(fā)明采用的技術方案另一方面為一種串行閃存數(shù)據(jù)保護裝置,包括以下模塊:

劃分模塊,用于基于邏輯地址劃分串行閃存為緩存區(qū)和實際區(qū);映射模塊,用于建立緩存區(qū)與實際區(qū)之間的頁面映射;數(shù)據(jù)處理模塊,用于將待寫入數(shù)據(jù)逐區(qū)寫入緩存區(qū)的映射扇區(qū),當緩存區(qū)的剩余的映射扇區(qū)的空間不足或者數(shù)據(jù)需要轉換扇區(qū)時,將映射扇區(qū)的數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

優(yōu)選地,所述映射模塊還用于獲取需要寫入數(shù)據(jù)的實際區(qū)的絕對地址,查詢該絕對地址是否在緩存區(qū)存在對應的映射扇區(qū),如果不存在,則確定一個映射扇區(qū)并建立與所述絕對地址的頁面映射;如果存在,則讀取該映射扇區(qū)的數(shù)據(jù)并存入ram,所述ram用于存儲待寫入實際區(qū)的數(shù)據(jù)。

優(yōu)選地,所述數(shù)據(jù)處理模塊,還用于當緩存區(qū)的剩余的映射扇區(qū)的空間不足時,ram從已寫入數(shù)據(jù)的映射扇區(qū)讀取數(shù)據(jù),基于頁面映射將數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

優(yōu)選地,所述數(shù)據(jù)處理模塊,還用于當需要轉換扇區(qū)時,ram從對應的映射扇區(qū)讀取數(shù)據(jù),基于頁面映射將數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

本發(fā)明的有益效果為通過設定緩存區(qū)和實際區(qū),通過頁映射進行數(shù)據(jù)之間的轉移,當緩存區(qū)溢出或者需要特定的數(shù)據(jù)轉移的時候進行數(shù)據(jù)的轉移,只有當數(shù)據(jù)被完整的轉移之后才進行數(shù)據(jù)的清除,能夠確保數(shù)據(jù)在斷電的情況下仍能進行數(shù)據(jù)的保存。

附圖說明

圖1所示為基于本發(fā)明實施例的一種串行閃存數(shù)據(jù)保護方法的示意圖。

具體實施方式

以下結合實施例對本發(fā)明進行說明。

基于發(fā)明的實施例1,如圖1所示一種串行閃存數(shù)據(jù)保護方法,包括以下步驟:基于邏輯地址劃分串行閃存為緩存區(qū)和實際區(qū);建立緩存區(qū)與實際區(qū)之間的頁面映射;將待寫入數(shù)據(jù)逐區(qū)寫入緩存區(qū)的映射扇區(qū),當緩存區(qū)的剩余的映射扇區(qū)的空間不足或者數(shù)據(jù)需要轉換扇區(qū)時,將映射扇區(qū)的數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

使用程序(基于邏輯地址劃分)將閃存劃分為緩存區(qū)和實際區(qū),所述實際區(qū)是最終用來存儲數(shù)據(jù)的空間,通過頁式存儲的形式將緩存區(qū)和實際區(qū)進行存儲單元的分配,通過建立兩者之間的頁面映射,即頁與頁之間對應(同時將映射的記錄做成映射表,包括扇區(qū)號,對應的物理地址和邏輯地址等信息);而數(shù)據(jù)寫入的步驟,第一步是外部的待寫入數(shù)據(jù)首先會被按頁(即映射扇區(qū))存入緩存區(qū),由于緩存區(qū)的設定是由程序控制的,因此根據(jù)映射扇區(qū)的扇區(qū)號的使用記錄就可以知道扇區(qū)的使用情況,當緩存區(qū)沒有多余的映射扇區(qū)或者需要將緩存區(qū)的數(shù)據(jù)存入實際區(qū)的時候,根據(jù)映射扇區(qū)之間的頁面映射關系,進行數(shù)據(jù)的移動,當數(shù)據(jù)寫入完成的時候,擦拭緩存區(qū)的對應的映射扇區(qū)的數(shù)據(jù)并拆除頁面映射關系。

基于發(fā)明的實施例1的一種串行閃存數(shù)據(jù)保護方法,還包括以下步驟:獲取需要寫入數(shù)據(jù)的實際區(qū)的絕對地址,查詢該絕對地址是否在緩存區(qū)存在對應的映射扇區(qū),如果不存在,則確定一個映射扇區(qū)并建立與所述絕對地址的頁面映射;如果存在,則讀取該映射扇區(qū)的數(shù)據(jù)并存入ram,所述ram用于存儲待寫入實際區(qū)的數(shù)據(jù)。

當數(shù)據(jù)需要寫入實際區(qū)的某個絕對地址時,通過查詢建立頁面映射的映射表,可以知道是否已經有設定好的映射關系,如果存在的話,就不用重新進行映射關系的建立,就可以直接通過內存進行數(shù)據(jù)的轉移,如果不存在的話,那么在緩存區(qū)內確定一個映射扇區(qū)(可以是本來沒有寫入數(shù)據(jù)的部分,也可以是經過擦拭后獲得的部分);獲取該映射扇區(qū)的數(shù)據(jù)并存入ram。

基于發(fā)明的實施例1的一種串行閃存數(shù)據(jù)保護方法,當緩存區(qū)的剩余的映射扇區(qū)的空間不足時,ram從已寫入數(shù)據(jù)的映射扇區(qū)讀取數(shù)據(jù),基于頁面映射將數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

通過數(shù)據(jù)寫入或者擦拭記錄,很容易知道閃存空間的使用情況,當緩存區(qū)的剩余的映射扇區(qū)(即沒有存儲有數(shù)據(jù)的扇區(qū))數(shù)量或者扇區(qū)空間不足的時候,獲取已寫入數(shù)據(jù)的扇區(qū)的資料,選擇其中的若干扇區(qū)進行數(shù)據(jù)轉移(可以隨機選擇扇區(qū)或者按照數(shù)據(jù)寫入時間的順序選最老的扇區(qū)),當數(shù)據(jù)寫入完成的時候,則擦拭緩存區(qū)的對應的扇區(qū)并拆除頁面映射關系。

基于發(fā)明的實施例1的一種串行閃存數(shù)據(jù)保護方法,當需要轉換扇區(qū)時,ram從對應的映射扇區(qū)讀取數(shù)據(jù),基于頁面映射將數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

由于需要將特定的數(shù)據(jù)進行轉移,因此,會從特定的扇區(qū)進行數(shù)據(jù)的轉移,通過ram從特定的映射扇區(qū)讀取數(shù)據(jù),然后基于頁面映射的關系將數(shù)據(jù)寫入實際區(qū)對應的扇區(qū)/頁,當數(shù)據(jù)寫入完成的時候,則擦拭緩存區(qū)的對應的扇區(qū)并拆除頁面映射關系。

基于本發(fā)明的實施例2,一種串行閃存數(shù)據(jù)保護裝置,包括以下模塊:

劃分模塊,用于基于邏輯地址劃分串行閃存為緩存區(qū)和實際區(qū);映射模塊,用于建立緩存區(qū)與實際區(qū)之間的頁面映射;數(shù)據(jù)處理模塊,用于將待寫入數(shù)據(jù)逐區(qū)寫入緩存區(qū)的映射扇區(qū),當緩存區(qū)的剩余的映射扇區(qū)的空間不足或者數(shù)據(jù)需要轉換扇區(qū)時,將映射扇區(qū)的數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

基于本發(fā)明的實施例2的一種串行閃存數(shù)據(jù)保護裝置,所述映射模塊還用于獲取需要寫入數(shù)據(jù)的實際區(qū)的絕對地址,查詢該絕對地址是否在緩存區(qū)存在對應的映射扇區(qū),如果不存在,則確定一個映射扇區(qū)并建立與所述絕對地址的頁面映射;如果存在,則讀取該映射扇區(qū)的數(shù)據(jù)并存入ram,所述ram用于存儲待寫入實際區(qū)的數(shù)據(jù)。

基于本發(fā)明的實施例2的一種串行閃存數(shù)據(jù)保護裝置,所述數(shù)據(jù)處理模塊,還用于當緩存區(qū)的剩余的映射扇區(qū)的空間不足時,ram從已寫入數(shù)據(jù)的映射扇區(qū)讀取數(shù)據(jù),基于頁面映射將數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

基于本發(fā)明的實施例2的一種串行閃存數(shù)據(jù)保護裝置,所述數(shù)據(jù)處理模塊,還用于當需要轉換扇區(qū)時,ram從對應的映射扇區(qū)讀取數(shù)據(jù),基于頁面映射將數(shù)據(jù)寫入實際區(qū),當數(shù)據(jù)寫入完成時,擦拭緩存區(qū)對應的映射扇區(qū)并拆除頁面映射關系。

以上所述,只是本發(fā)明的較佳實施例而已,本發(fā)明并不局限于上述實施方式,只要其以相同的手段達到本發(fā)明的技術效果,都應屬于本發(fā)明的保護范圍。在本發(fā)明的保護范圍內其技術方案和/或實施方式可以有各種不同的修改和變化。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
德江县| 略阳县| 南通市| 武强县| 蓬安县| 四会市| 永城市| 无极县| 浠水县| 承德县| 册亨县| 郓城县| 台中市| 儋州市| 南阳市| 罗定市| 思茅市| 保亭| 元朗区| 宁乡县| 涿州市| 兴城市| 罗江县| 榆中县| 红桥区| 衡阳县| 图木舒克市| 黎川县| 武邑县| 襄汾县| 北票市| 英超| 朔州市| 锡林郭勒盟| 开原市| 明溪县| 比如县| 乌兰察布市| 佛山市| 灌阳县| 鄂伦春自治旗|