新四季網

NANDFlash頁面自適應的方法及裝置製造方法

2023-08-04 17:52:31

NAND Flash頁面自適應的方法及裝置製造方法
【專利摘要】本發明適用於存儲【技術領域】,提供了一種NAND?Flash頁面自適應的方法及裝置,所述方法包括如下步驟:當進行NAND?Flash頁面讀寫操作,且所述NAND?Flash的頁面大小為第一數值和第二數值時,對所述NAND?Flash頁面起始位置的第三數值的空間進行讀寫操作;所述第三數值小於第一數值和第二數值;當進行NAND?Flash頁面讀寫操作,且所述NAND?Flash的頁面大小為第三數值時,對所述NAND?Flash的全部空間進行讀寫操作。本發明提出的方法及裝置可適應不同頁面大小的NAND?Flash的讀寫操作。
【專利說明】NAND Flash頁面自適應的方法及裝置
【技術領域】
[0001]本發明屬於存儲【技術領域】,尤其涉及一種NAND Flash頁面自適應的方法及裝置。【背景技術】
[0002]隨著嵌入式技術的飛速發展,各種應用對存儲設備的要求也隨之提高。嵌入式設備由於受成本、體積等因素的影響通常需要使用較大容量的非易失性的存儲設備。NANDFlash存儲器由於其具有存儲容量大、價格便宜、掉電數據不丟失等優點,目前被廣泛用於行動電話、數位相機、電視機頂盒等電子產品中。
[0003]NAND Flash設備的結構分為多個存儲塊(Block),每個Block由多個頁(Page)組成。Block是NAND Flash的最小可擦除的單位,Block的基本組成單位Page是NANDFlash的最小可編程單位。Page進一步劃分為主數據區(main data)和剩餘數據區(sparedata)ο NAND Flash常見的頁面大小有512B、2KB和4KB這3種類型。512B的頁實際大小是528位元組,它的主數據區大小是512B,其他數據區佔16B (其中Spare User Data_5bytes,ECC-lObytes, Reserved-1byte)0而2KB和4KB頁分別由4個和8個528位元組的數據區組成,每個528位元組的數據區的主數據區大小都是512位元組。512B與2KB頁面結構的對比如圖1、圖2所示。
[0004]EFS是高通設計的基於NAND Flash的文件系統,文件系統與Flash頁的結構密切相關,EFS文件系統分為5層,最底層是硬體層,NAND Flash硬體處於硬體層;第二層是NAND Controller層,該層的作用的提供訪問NAND Flash設備的接口給上層;第三層是NAND Flash驅動層,該層的功能是提供基本的Flash讀寫擦出等操作接口給上層;第四層是文件系統層,提供文件操作API給應用層;最上層是應用層。
[0005]由於不同大小頁面的結構不同,因此NAND Flash的讀寫訪問時需要針對不同的頁面做不同的處理。傳統的做法是對於不同的頁面編寫不同的驅動代碼,然後生成各自的bin文件燒寫到對應的NAND Flash中,這種做法的缺點是會帶來軟體維護方面的麻煩。另一種常見的做法是編寫2套不同的文件系統代碼來適應小頁面(512B)和大頁面(2KB和4KB),例如Linux系統下流行的yaffs文件系統用於小頁面,而yaffs2文件系統用於大頁面。這種做法的好處是能夠自適應不同的頁面,缺點是需要使用2套不同的文件系統代碼接口,在軟體的設計上比較麻煩。

【發明內容】

[0006]本發明實施例的目的在於提供一種NAND Flash頁面自適應的方法及裝置,旨在解決現有的NAND Flash在訪問時因不同頁面大小需要不同的代碼造成維護困難的問題。
[0007]本發明實施例是這樣實現的,一種NAND Flash頁面自適應的方法,所述方法包括如下步驟:
[0008]當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第一數值和第二數值時,對所述NAND Flash頁面起始位置的第三數值的空間進行讀寫操作;所述第三數值小於第一數值和第二數值;
[0009]當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第三數值時,對所述NAND Flash的全部空間進行讀寫操作。
[0010]進一步地,所述對NAND Flash頁面起始位置的第三數值的空間進行讀寫操作進一步為:
[0011]通過寫頁面函數寫入所述NAND Flash頁面起始位置的第三數值的空間;
[0012]通過讀頁面函數讀取所述NAND Flash頁面起始位置的第三數值的空間。
[0013]進一步地,所述通過寫頁面函數寫入NAND Flash頁面起始位置的第三數值的空間包括:
[0014]申請一個大小為第三數值的第一 Buffer ;
[0015]將待寫入的數據拷貝至所述申請的第一 Buffer ;
[0016]調用write_page函數將所述第一 Buffer中的數據寫入所述NAND Flash的某一頁面起始位置的第三數值的空間。
[0017]進一步地,在執行所述調用write_page函數將第一 Buffer中的數據寫入NANDFlash的某一頁面起始位置的第三數值的空間之後,還包括:
[0018]調用read_page函數讀取所述NAND Flash頁面起始位置的第三數值的數據至Verify_buffer ;
[0019]比較所述Verify_buffer前第三數值的數據與第一 Buffer的數據,相同則寫成功,否則失敗。
[0020]進一步地,所述通過讀頁面函數讀取NAND Flash頁面起始位置的第三數值的空間包括:
[0021]申請一個大小為第三數值的第二 Buffer ;
[0022]通過read_page函數讀取所述NAND Flash頁面起始位置的第三數值的數據至所述第二 Buffer ;
[0023]將所述第二 Buffer的數據拷貝至指定的存儲空間。
[0024]本發明還提出一種NAND Flash頁面自適應的裝置,所述裝置包括:
[0025]大頁面讀寫模塊,用於當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第一數值和第二數值時,對所述NAND Flash頁面起始位置的第三數值的空間進行讀寫操作;所述第三數值小於第一數值和第二數值;
[0026]小頁面讀寫模塊,用於當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第三數值時,對所述NAND Flash的全部空間進行讀寫操作。
[0027]進一步地,所述大頁面讀寫模塊包括:
[0028]寫單元,用於通過寫頁面函數寫入所述NAND Flash頁面起始位置的第三數值的空間;
[0029]讀單元,用於通過讀頁面函數讀取所述NAND Flash頁面起始位置的第三數值的空間。
[0030]進一步地,所述寫單元包括:
[0031]申請第一子單元,用於申請一個大小為第三數值的第一 Buffer ;
[0032]緩衝子單元,用於將待寫入的數據拷貝至所述申請的第一 Buffer ;[0033]調用子單元,用於調用Write_page函數將所述第一 Buffer中的數據寫入所述NAND Flash的某一頁面起始位置的第三數值的空間。
[0034]進一步地,所述寫單元還包括:
[0035]檢驗子單元,用於調用通過read_page函數讀取所述NAND Flash頁面起始位置的第三數值的數據至Verify_buffer ;以及比較所述Verify_buffer前第三數值的數據與第-Buffer的數據,相同則寫成功,否則失敗。
[0036]進一步地,所述讀單元包括:
[0037]申請第二子單元,用於申請一個大小為第三數值的第二 Buffer ;
[0038]讀取子單元,用於通過read_page函數讀取所述NAND Flash頁面的起始位置的第三數值的數據至所述第二 Buffer ;
[0039]拷貝子單元,用於將所述第二 Buffer的數據拷貝至指定的存儲空間。
[0040]本發明實施例考慮到NAND Flash中,2KB頁面、4KB頁面與512B頁面的相似性,通過僅使用2KB和4KB頁面起始位置的512B區域進行NAND Flash頁的讀寫擦除等操作,從而達到只用一份代碼便可以兼容上述幾種大小頁面的NAND Flash,使系統能正常啟動。無需針對不同的NAND Flash頁面編寫不同的文件系統接口,簡化了軟體代碼設計。
【專利附圖】

【附圖說明】
[0041]圖1是NAND Flash頁面大小為512B時的頁面結構圖;
[0042]圖2是NAND Flash頁面大小為2K時的頁面結構圖;
[0043]圖3是本發明實施例一提供的NAND Flash頁面自適應的方法的流程圖;
[0044]圖4是本發明實施例一提供的NAND Flash頁面自適應的方法中寫操作的流程圖;
[0045]圖5是本發明實施例二提供的NAND Flash頁面自適應的裝置的結構圖;
[0046]圖6是本發明實施例二提供的NAND Flash頁面自適應的裝置中大頁面讀寫模塊的結構圖;
[0047]圖7是本發明實施例二提供的NAND Flash頁面自適應的裝置中寫單元的結構圖;
[0048]圖8是本發明實施例二提供的NAND Flash頁面自適應的裝置中讀單元的結構圖。
【具體實施方式】
[0049]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0050]實施例一
[0051]本發明實施例一提出一種NAND Flash頁面自適應的方法。如圖3所示,本發明實施例一的方法包括如下步驟:
[0052]S1、當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第一數值和第二數值時,對所述NAND Flash頁面起始位置的第三數值的空間進行讀寫操作;所述第
三數值小於第一數值和第二數值;
[0053]S2、當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第三數值時,對所述NAND Flash的全部空間進行讀寫操作。[0054]本發明實施例一以EFS文件系統、第一數值為2KB,第二數值為4KB,第三數值為512KB為例進行說明,實際應用當中,不僅限於EFS文件系統和上述數值限定。對NANDFlash進行讀寫操作前,通常需要先進行NAND Flash復位。在EFS文件系統這一層,需要對NAND Flash進行讀寫操作。如果NAND Flash的頁面大小是512B,則使用NAND Flash的全部存儲空間,如果NAND Flash的頁面大小是2KB或者4KB,那麼僅僅使用某一頁面起始位置的528位元組(包括512位元組的主數據區加上16位元組的剩餘數據區)。這樣,以犧牲2KB或者4KB大頁面的部分存儲空間為代價,換來不同頁面的NAND Flash自適應。
[0055]具體地,在EFS2文件系統層,通過調用寫函數fs_device_write_page O完成寫NAND Flash頁面的功能,對於NAND Flash頁面大小為2KB或4KB時,寫入頁面的數據的實際長度為512B,從2KB或4KB頁面的某一頁面的起始位置起算。如圖4所示,步驟SI包括:
[0056]步驟S11、首先需要申請一個512B大小的第一 Buffer ;
[0057]步驟S12、將待寫入數據拷貝到第一 Buffer中;
[0058]步驟S13、通過write_page O回調函數將第一 Buffer中的數據寫入NAND Flash的某一個頁面。write_page回調函數實際是NAND Controller層的函數flash_nand_ctrl_c_write_page;
[0059]步驟S14、調用底層的read_page函數讀取該頁面中的數據到verify_buffer ;
[0060]步驟S15、比較第一 Buffer與verify_buffer的前512B內的數據,如果相同表示寫操作0K,否者寫操作錯誤,返回失敗。
[0061]類似地,fs_device_read_page用於完成讀某個NAND Flash頁面的功能。先申請一個521B的第二 Buffer,然後通過read_page函數讀取NAND Flash頁面起始位置的512B至第二 Buffer,通過data指針將第二 Buffer的數據拷貝至data指針指定的存儲空間。
[0062]本發明實施例一考慮到NAND Flash中,2KB頁面、4KB頁面與512B頁面的相似性,通過僅使用2KB和4KB頁面起始位置的512B區域進行NAND Flash頁的讀寫擦除等操作,從而達到只用一份代碼便可以兼容上述幾種大小頁面的NAND Flash,無需針對不同的NANDFlash頁面編寫不同的文件系統接口,簡化了軟體代碼設計。
[0063]實施例二
[0064]本發明實施例二提供了一種NAND Flash頁面自適應的裝置。如圖5所示,本發明實施例二的裝置包括大頁面讀寫模塊10和小頁面讀寫模塊20,其中,大頁面讀寫模塊10當進行NAND Flash頁面讀寫操作,且NAND Flash的頁面大小為第一數值和第二數值時,對NAND Flash頁面起始位置的第三數值的空間進行讀寫操作,第三數值小於第一數值和第二數值;小頁面讀寫模塊20當進行NAND Flash頁面讀寫操作,且NAND Flash的頁面大小為第三數值時,對NAND Flash的全部空間進行讀寫操作。
[0065]本發明實施例二的裝置以應用於EFS文件系統、第一數值為2KB,第二數值為4KB,第三數值為512KB為例進行說明,實際應用當中,不僅限於EFS文件系統。對NAND Flash進行讀寫操作前,通常需要先進行NAND Flash復位。在EFS文件系統這一層,需要對NANDFlash進行讀寫操作。如果NAND Flash的頁面大小是512B,則小頁面讀寫模塊20使用NANDFlash的全部存儲空間,如果NAND Flash的頁面大小是2KB或者4KB,那麼大頁面讀寫模塊10僅僅使用某一頁面起始位置的528位元組(包括512位元組的主數據區加上16位元組的剩餘數據區)。這樣,以犧牲2KB或者4KB大頁面的部分存儲空間為代價,換來不同頁面的NANDFlash自適應。
[0066]參照圖6,大頁面讀寫模塊10包括寫單元11和讀單元12。其中,寫單元11用於通過寫頁面函數寫入NAND Flash頁面起始位置的第三數值的空間;讀單元12用於通過讀頁面函數讀取NAND Flash頁面起始位置的第三數值的空間。
[0067]參照圖7,寫單元11包括申請第一子單元111、緩衝子單元112、調用子單元113和檢驗子單元114。其中,申請第一子單元111用於申請一個大小為第三數值的第一 Buffer ;緩衝子單元112用於將待寫入的數據拷貝至申請的第一 Buffer ;調用子單元113用於調用write_page函數將第一 Buffer中的數據寫入NAND Flash的某一頁面起始位置的第三數值的空間;檢驗子單元114用於調用通過read_page函數讀取NAND Flash頁面起始位置的第三數值的數據至Verify_buffer ;以及比較Verify_buffer前512B的數據與第一 Buffer的數據,相同則寫成功,否則失敗。
[0068]參照圖8,讀單元12包括申請第二子單元121、讀取子單元122和拷貝子單元123。其中,申請第二子單元121用於申請一個大小為第三數值的第二 Buffer ;讀取子單元122用於通過read_page函數讀取NAND Flash頁面的起始位置的第三數值的數據至第二Buffer ;拷貝子單元123用於將第二 Buffer的數據拷貝至指定的存儲空間。
[0069]本發明實施例二考慮到NAND Flash中,2KB頁面、4KB頁面與512B頁面的相似性,通過僅使用2KB和4KB頁面起始位置的512B區域進行NAND Flash頁的讀寫擦除等操作,從而達到只用一份代碼便可以兼容上述幾種大小頁面的NAND Flash,無需針對不同的NANDFlash頁面編寫不同的文件系統接口,簡化了軟體代碼設計。
[0070]以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種NAND Flash頁面自適應的方法,其特徵在於,所述方法包括如下步驟: 當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第一數值和第二數值時,對所述NAND Flash頁面起始位置的第三數值的空間進行讀寫操作;所述第三數值小於第一數值和第二數值; 當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第三數值時,對所述NAND Flash的全部空間進行讀寫操作。
2.如權利要求1所述的方法,其特徵在於,所述對NANDFlash頁面起始位置的第三數值的空間進行讀寫操作進一步為: 通過寫頁面函數寫入所述NAND Flash頁面起始位置的第三數值的空間; 通過讀頁面函數讀取所述NAND Flash頁面起始位置的第三數值的空間。
3.如權利要求2所述的方法,其特徵在於,所述通過寫頁面函數寫入NANDFlash頁面起始位置的第三數值的空間包括: 申請一個大小為第三數值的第一 Buffer ; 將待寫入的數據拷貝至所述申請的第一 Buffer ; 調用write_page函數將所述第一 Buffer中的數據寫入所述NAND Flash的某一頁面起始位置的第三數值的空間。
4.如權利要求3所述的方法,其特徵在於,在執行所述調用Write_page函數將第一Buffer中的數據寫入NAND Flash的某一頁面起始位置的第三數值的空間之後,還包括: 調用read_page函數讀取所述NAND Flash頁面起始位置的第三數值的數據至Verify_buffer ; 比較所述Verify_buffer前第三數值的數據與第一 Buffer的數據,相同則寫成功,否則失敗。
5.如權利要求2所述的方法,其特徵在於,所述通過讀頁面函數讀取NANDFlash頁面起始位置的第三數值的空間包括: 申請一個大小為第三數值的第二 Buffer ; 通過read_page函數讀取所述NAND Flash頁面起始位置的第三數值的數據至所述第二 Buffer ; 將所述第二 Buffer的數據拷貝至指定的存儲空間。
6.一種NAND Flash頁面自適應的裝置,其特徵在於,所述裝置包括: 大頁面讀寫模塊,用於當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第一數值和第二數值時,對所述NAND Flash頁面起始位置的第三數值的空間進行讀寫操作;所述第三數值小於第一數值和第二數值; 小頁面讀寫模塊,用於當進行NAND Flash頁面讀寫操作,且所述NAND Flash的頁面大小為第三數值時,對所述NAND Flash的全部空間進行讀寫操作。
7.如權利要求6所述的裝置,其特徵在於,所述大頁面讀寫模塊包括: 寫單元,用於通過寫頁面函數寫入所述NAND Flash頁面起始位置的第三數值的空間; 讀單元,用於通過讀頁面函數讀取所述NAND Flash頁面起始位置的第三數值的空間。
8.如權利要求7所述的裝置,其特徵在於,所述寫單元包括: 申請第一子單元,用於申請一個大小為第三數值的第一 Buffer ;緩衝子單元,用於將待寫入的數據拷貝至所述申請的第一 Buffer ; 調用子單元,用於調用write_page函數將所述第一 Buffer中的數據寫入所述NANDFlash的某一頁面起始位置的第三數值的空間。
9.如權利要求8所述的裝置,其特徵在於,所述寫單元還包括: 檢驗子單元,用於調用通過read_page函數讀取所述NAND Flash頁面起始位置的第三數值的數據至Verify_buffer ;以及比較所述Verify_buffer前第三數值的數據與第一Buffer的數據,相同則寫成功,否則失敗。
10.如權利要求7所述的裝置,其特徵在於,所述讀單元包括: 申請第二子單元,用於申請一個大小為第三數值的第二 Buffer ; 讀取子單元,用於通過read_page函數讀取所述NAND Flash頁面的起始位置的第三數值的數據至所述第二 Buffer ; 拷貝子單元,用於將所述第二 Buffer的數據拷貝至指定的存儲空間。
【文檔編號】G06F9/445GK103838608SQ201410078999
【公開日】2014年6月4日 申請日期:2014年3月5日 優先權日:2014年3月5日
【發明者】徐凱 申請人:深圳市中興物聯科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀