[發明專利]基于閃存的數據存儲方法和裝置有效
| 申請號: | 201810361678.0 | 申請日: | 2018-04-20 |
| 公開(公告)號: | CN108710578B | 公開(公告)日: | 2022-07-26 |
| 發明(設計)人: | 余朝亮;艾駿 | 申請(專利權)人: | 深圳市戰音科技有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司 44205 | 代理人: | 樊思遠 |
| 地址: | 518000 廣東省深圳市寶安區*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 閃存 數據 存儲 方法 裝置 | ||
本發明提供了基于閃存的數據存儲方法,閃存分為索引區和數據區,寫入用戶數據的操作包括以下步驟:基于索引表獲取數據區的起始塊的位置、第一個空閑頁的位置和剩余空閑頁數;如果待寫入的用戶數據的大小小于數據區的剩余空閑頁的大小,則從數據區的第一個空閑頁起寫入該用戶數據;否則將先備份有效數據,再從數據區的起始塊起順次擦除相當于所述閃存的數據區所占塊數的所有的塊,再將備份的有效數據寫入從數據區的起始塊起的頁,再將所述待寫入的用戶數據寫入后續空閑頁;更新索引表。還提供了基于閃存的數據存儲裝置,以克服閃速存儲器的數據管理系統讀取慢,大幅降低存儲器壽命的問題。
技術領域
本發明涉及存儲器管理方法,特別涉及一種基于閃存的數據存儲方法和裝置。
背景技術
隨著物聯網的興起,智能硬件給人們生活帶來很多便利。智能硬件需要在本地儲存一些設備數據,因考慮成本,其中很多智能硬件都是使用RTOS實時操作系統,掛載SPIFLASH來作為儲存介質。但是因為SPI FLASH的一些特性(例如在基于NOR FLASH或者NANDFLASH技術的SPI FLASH芯片中,“塊”是擦除操作的基本單位,每塊大小一般是4KB,在擦除操作時將快內所有的位置置“1”;頁是讀寫操作的最小單位,然后每塊又分成頁,每頁大小一般是256字節,要修改SPI FLASH芯片中一個字節,必須重寫整個數據塊。不能直接覆蓋寫入,只能是擦除后再寫),導致儲存本地數據時,需要執行以下4個步驟:將閃存中的數據塊讀入內存;在內存中修改數據;擦除閃存的數據塊;將修改后的內存中的數據存入閃存中的數據塊。最終才能完成數據保存。這樣操作方式具有以下缺點:耗時,由于SPI FLASH的最小塊為4K,在修改的數據量較小時,需要同時操作以4K為單位的數據(即一整個數據塊);降低SPI FLASH的壽命,由于SPI FLASH的塊壽命是由擦除與寫入的次數決定,傳統的文件管理;容易丟失數據,由于這類產品隨時都可能掉電,如果在擦除完成,還沒有寫入時掉電的話,將會丟失所有數據。
綜上所述,智能硬件產品需要一種高效、穩定、可靠的存儲管理方法來對小型文件(數據)的存儲和讀取進行管理。
發明內容
本公開的目的在于提供一種基于閃存的數據存儲方法和裝置,克服SPI FLASH等基于閃速存儲器(閃存)的數據(文件)管理方法大幅降低存儲器壽命的技術問題。
為了解決上述問題,根據本公開的第一個方面,提供了一種基于閃存的數據存儲方法,其中閃存的存儲空間被分為索引區和數據區,索引區和數據區分別包括不同的塊,索引區包括具有1個以上的索引項的索引表,索引項包括用戶數據標識、用戶數據大小和用戶數據位置;其中,寫入用戶數據的操作包括以下步驟:A1.基于索引表,獲取數據區的起始塊的位置、第一個空閑頁的位置和剩余空閑頁數;A2.比較待寫入的用戶數據的大小和數據區的剩余空閑頁的大小,如果待寫入的用戶數據的大小小于數據區的剩余空閑頁的大小,則從數據區的第一個空閑頁起寫入該用戶數據;否則將先備份有效數據,再從數據區的起始塊起順次擦除相當于所述閃存的數據區所占塊數的所有的塊,再將備份的有效數據寫入從數據區的起始塊起的頁,再將所述待寫入的用戶數據寫入后續空閑頁;A3.更新索引表。
進一步地,更新索引表的步驟包括以下子步驟:B1.讀取索引區內的索引表;B2.查找在索引表內是否存在其用戶數據標識對應為寫入的用戶數據分配的標識的索引項,如果存在該查找的索引項,則基于為寫入的用戶數據分配的大小和位置而更新該查找的索引項,以形成新的索引表;如果不存在該查找的索引項,則基于為寫入的用戶數據分配的標識、大小和位置而創建新的索引項;B3.在創建新的索引項時,如果索引表的索引項數未達到上限,則在索引表的最后一項后添加所述新的索引項,以形成新的索引表;否則將索引表中有效的索引項讀入內存,再擦除索引區,并從索引區的起始頁起寫入有效的索引項和所述新的索引項,以形成新的索引表;B4.更新索引區。
進一步地,讀取用戶數據操作包括以下步驟:C1.讀取索引區內的索引表;C2.查找在索引表內其用戶數據標識對應待讀取的用戶數據的標識的索引項;C3.基于該查找的索引項的用戶數據大小和用戶數據位置,讀取對應的用戶數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市戰音科技有限公司,未經深圳市戰音科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810361678.0/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





