專利名稱:Nand flash的數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及半導(dǎo)體存儲(chǔ)介質(zhì)技術(shù)領(lǐng)域,更具體地說,涉及一種NANDFLASH的數(shù)據(jù) 處理方法。 NAND FLASH(非易失性存儲(chǔ)器,簡(jiǎn)稱閃存)中擦除的最小單位為塊(Block),寫入 的最小單位為頁(Page),所有的用戶數(shù)據(jù)寫入操作需基于一個(gè)空塊進(jìn)行,即所有的寫入操 作需在FLASH中被擦除后沒有被編程的塊中進(jìn)行。若要根據(jù)邏輯地址A向一塊中寫入數(shù)據(jù) 將該塊中的數(shù)據(jù)更新,其流程大致如下 首先,找到一個(gè)空塊,將舊塊中A地址以上頁中的數(shù)據(jù)拷貝到空塊;例如,若要寫 入數(shù)據(jù)的塊中A地址對(duì)應(yīng)的頁為第20頁,則先將第0 19頁的數(shù)據(jù)拷貝到新塊中;
然后,將要寫入的數(shù)據(jù)寫入到空塊中對(duì)應(yīng)的頁;
最后,將舊塊的其他數(shù)據(jù)拷貝到空塊的相應(yīng)位置。 目前,要基于NAND FLASH向其文件系統(tǒng)中寫入一段數(shù)據(jù),首先要頻繁的修改它的 系統(tǒng)文件,例如,F(xiàn)AT文件系統(tǒng)要拷貝文件,必須要更新FAT表、FDT表,最后才更新用戶數(shù) 據(jù),而用戶數(shù)據(jù)長(zhǎng)度一般較長(zhǎng),需若干頁才能容置。所以在數(shù)據(jù)寫入過程中,文件系統(tǒng)經(jīng)常 打斷用戶數(shù)據(jù)的更新,而插入對(duì)FAT表與FDT表的更新操作。此時(shí),需結(jié)束當(dāng)前塊的操作, 而對(duì)FAT表與FDT表進(jìn)行更新操作,F(xiàn)AT表與FDT表的更新操作過程與上述數(shù)據(jù)更新操作 過程一致,即需重復(fù)上述用戶數(shù)據(jù)更新的步驟。當(dāng)FAT與FDT更新完后,用戶數(shù)據(jù)繼續(xù)往下 寫時(shí),又必須重復(fù)上述數(shù)據(jù)寫入過程,即將數(shù)據(jù)中斷時(shí)已寫入到塊中的數(shù)據(jù)和邏輯地址以 上頁的數(shù)據(jù)拷貝到一新塊,然后將未寫完的寫入到邏輯地址對(duì)應(yīng)的頁中,然后拷貝舊塊中 的其他數(shù)據(jù)。整個(gè)過程既耗時(shí)且FLASH的磨損又大,特別文件個(gè)數(shù)較多時(shí),F(xiàn)AT、FDT修改比 率就更高,導(dǎo)致FLASH拷貝文件速度過慢。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于針對(duì)現(xiàn)有技術(shù)缺陷,提供一種NAND FLASH的數(shù)據(jù)處理方
法,旨在減少FLASH的磨損,提高FLASH的文件拷貝速度。 本發(fā)明NAND FLASH的數(shù)據(jù)處理方法包括以下步驟 根據(jù)邏輯地址與物理地址映射表申請(qǐng)空塊,進(jìn)行用戶數(shù)據(jù)更新操作; 當(dāng)用戶數(shù)據(jù)更新操作被FAT表或FDT表更新中斷時(shí),保存空塊的物理地址和操作
環(huán)境; 更新FAT表或FDT表,記錄FAT表或FDT表的映射關(guān)系; 調(diào)取用戶數(shù)據(jù)更新操作中斷時(shí)空塊的物理地址和操作環(huán)境,繼續(xù)用戶數(shù)據(jù)更新操 作。 優(yōu)選地,所述當(dāng)用戶數(shù)據(jù)更新操作被FAT表或FDT表中斷時(shí),保存空塊的物理地址 和操作環(huán)境的步驟中包括
背景技術(shù):
設(shè)定數(shù)據(jù)長(zhǎng)度閾值; 比較FAT表或FDT表的長(zhǎng)度與數(shù)據(jù)長(zhǎng)度閾值; 當(dāng)FAT表或FDT表的長(zhǎng)度小于或等于數(shù)據(jù)長(zhǎng)度閾值時(shí),中斷用戶數(shù)據(jù)更新操作。
優(yōu)選地,所述更新FAT表或FDT表,記錄FAT表或FDT表的映射關(guān)系的步驟中還包 括 在FLASH冗余中記錄FAT表或FDT表的邏輯地址,并在內(nèi)存中記錄FAT表或FDT 表的映射關(guān)系。 優(yōu)選地,上述數(shù)據(jù)處理方法還包括以下步驟
當(dāng)用戶數(shù)據(jù)長(zhǎng)度大于所述閾值時(shí)結(jié)束數(shù)據(jù)更新操作;
申請(qǐng)用戶數(shù)據(jù)的邏輯地址與物理地址映射表;
保存當(dāng)前操作的結(jié)束物理地址與操作環(huán)境。 優(yōu)選地,所述調(diào)取用戶數(shù)據(jù)更新操作中斷時(shí)空塊的物理地址和操作環(huán)境,繼續(xù)數(shù) 據(jù)更新操作的步驟中還包括 判斷當(dāng)前操作的物理地址與結(jié)束物理地址是否一致;若否,則根據(jù)數(shù)據(jù)長(zhǎng)度閾值 中斷用戶數(shù)據(jù)更新操作;若是,則根據(jù)結(jié)束物理地址繼續(xù)更新數(shù)據(jù)。
優(yōu)選地,所述根據(jù)數(shù)據(jù)長(zhǎng)度閾值中斷數(shù)據(jù)更新操作的步驟中還包括以下
比較用戶數(shù)據(jù)長(zhǎng)度與閾值; 當(dāng)用戶數(shù)據(jù)長(zhǎng)度小于閾值時(shí),中斷用戶數(shù)據(jù)更新操作。 由上可知,本發(fā)明在數(shù)據(jù)操作被中斷時(shí),記錄當(dāng)時(shí)空塊的物理地址和操作環(huán)境,當(dāng) 文件系統(tǒng)的更新完成后,再通過調(diào)取空塊的物理地址和操作環(huán)境,實(shí)現(xiàn)對(duì)數(shù)據(jù)的續(xù)寫操作, 減少了 FLASH的磨損,提高了 FLASH的數(shù)據(jù)拷貝速度。
圖1是本發(fā)明的一個(gè)實(shí)施方式中NAND FLASH的數(shù)據(jù)處理方法流程圖; 圖2是上述實(shí)施方式的一個(gè)實(shí)施例中根據(jù)數(shù)據(jù)長(zhǎng)度閾值中斷用戶數(shù)據(jù)更新操作
的方法流程圖; 圖3是上述實(shí)施方式的另一個(gè)實(shí)施例中根據(jù)數(shù)據(jù)長(zhǎng)度閾值中斷用戶數(shù)據(jù)更新操 作的方法流程圖; 圖4是上述實(shí)施方式中續(xù)寫用戶數(shù)據(jù)的方法流程圖。 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。
具體實(shí)施例方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如本領(lǐng)域普通技術(shù)人員所周知,NAND FLASH由一個(gè)或多個(gè)晶粒封裝而成,每個(gè)晶 粒中包含一個(gè)或多個(gè)階(Plane),每個(gè)階包含若干個(gè)存儲(chǔ)塊(Block),每個(gè)存儲(chǔ)塊由若干個(gè) 頁(Page)構(gòu)成,每個(gè)頁包含多個(gè)扇區(qū)。寫入數(shù)據(jù)是以頁為單位,而擦除數(shù)據(jù)是以塊為單位。 在寫入數(shù)據(jù)時(shí),按頁的扇區(qū)順序?qū)懭?。并且,按順序給存儲(chǔ)塊分配地址,分配了地址的存儲(chǔ) 塊稱為物理塊,該地址稱為物理地址;而將存儲(chǔ)塊劃分為若干頁的虛擬地址稱為邏輯地址,邏輯地址與物理地址之間通過地址映射表建立映射關(guān)系。 FAT表(File Allocation Table,文件分配表),用于表示磁盤文件的空間分配信 息。FDT表(File Directory Table,文件目錄表),記錄根目錄下每個(gè)文件(目錄)的起始 單元,文件的屬性等。定位文件位置時(shí),操作系統(tǒng)根據(jù)DIR中的起始單元,結(jié)合FAT表就可 以知道文件在硬盤中的具體位置和大小了。 如圖1所示,本發(fā)明NAND FLASH多線程數(shù)據(jù)處理方法包括以下步驟
步驟S10,根據(jù)邏輯地址與物理地址映射表申請(qǐng)空塊,進(jìn)行用戶數(shù)據(jù)更新操作;
步驟S20,當(dāng)用戶數(shù)據(jù)更新操作被FAT表或FDT表更新中斷時(shí),保存空塊的物理地 址和操作環(huán)境; 步驟S30,更新FAT表或FDT表,記錄FAT表或FDT表的映射關(guān)系; 步驟S40,調(diào)取用戶數(shù)據(jù)更新操作中斷時(shí)空塊的物理地址和操作環(huán)境,繼續(xù)數(shù)據(jù)更
新操作。 在一實(shí)施例中,若要根據(jù)邏輯地址A將用戶數(shù)據(jù)寫入一塊中以對(duì)該塊進(jìn)行數(shù)據(jù)更
新時(shí),首先根據(jù)邏輯地址與物理地址映射表找到一空塊(因NANDFLASH器件的任何寫入操
作只能在空或已擦除的單元內(nèi)進(jìn)行),若用戶數(shù)據(jù)寫入的操作被FAT表或FDT表的更新中
斷,則通過閃存中的微控制器記錄寫操作被中斷時(shí)空塊的物理地址和操作環(huán)境,該操作環(huán)
境可包括邏輯地址對(duì)應(yīng)的塊、循環(huán)變量、狀態(tài)機(jī)狀態(tài)等,以便后續(xù)操作。在FAT表或FDT表更新時(shí),在FLASH的冗余中記錄FAT表或FDT表更新對(duì)應(yīng)頁所對(duì)
應(yīng)的邏輯地址,在內(nèi)存中記錄FAT表或FDT表的映射關(guān)系,以便當(dāng)文件系統(tǒng)再次插入對(duì)FAT
表或FDT表更新時(shí),可通過邏輯地址和映射關(guān)系找到前次FAT表或FDT表更新時(shí)所對(duì)應(yīng)的
頁,從而續(xù)接上次更新。 待FAT表或FDT表更新完畢,微控制器根據(jù)數(shù)據(jù)寫入操作中斷時(shí)的物理地址和操 作環(huán)境,找到上次數(shù)據(jù)寫入操作所在塊,繼續(xù)數(shù)據(jù)更新操作。 FAT表或FDT表的長(zhǎng)度都是固定的,F(xiàn)AT表一般為0. 5K,F(xiàn)DT表一般為4K。本發(fā)明 中,根據(jù)FAT表及FDT表長(zhǎng)度固定的特點(diǎn)以頁為單位對(duì)FAT表和FDT表進(jìn)行更新,在FLASH 的冗余區(qū)記錄其對(duì)應(yīng)的邏輯地址以方便掉電后恢復(fù)其映射關(guān)系,同時(shí)記錄其對(duì)應(yīng)的映射關(guān) 系方便運(yùn)行中使用。這樣就避免FAT表或FDT表更新時(shí)發(fā)生整個(gè)塊的數(shù)據(jù)重新拷貝,處理 完后再來更新用戶數(shù)據(jù)時(shí),只需要將上次結(jié)束物理地址與操作環(huán)境還原繼續(xù)往下寫,就像 發(fā)生一次中斷一樣。這樣系統(tǒng)文件區(qū)磨損次數(shù)將會(huì)大大降低,從而提高NAND FLASH的可用 性同時(shí)可以改善FLASH拷貝文件的速度。 如圖2所示,上述中斷數(shù)據(jù)更新操作可通過以下方法流程實(shí)現(xiàn)
步驟S21,設(shè)定數(shù)據(jù)長(zhǎng)度閾值; 步驟S22,比較FAT表或FDT表的長(zhǎng)度與數(shù)據(jù)長(zhǎng)度閾值; 步驟S23,當(dāng)FAT表或FDT表的長(zhǎng)度小于數(shù)據(jù)長(zhǎng)度閾值時(shí),中斷數(shù)據(jù)更新操作。
FAT表、FDT表的長(zhǎng)度固定,F(xiàn)AT表一般為0. 5K大小,而FDT表的大小一般為4K,而 用戶數(shù)據(jù)的長(zhǎng)度則往往大于FAT表或FDT表的長(zhǎng)度。例如,在編程時(shí), 一般數(shù)據(jù)長(zhǎng)度都超過 4K??筛鶕?jù)上述特點(diǎn),在FLASH中每隔一定長(zhǎng)度區(qū)域中預(yù)留出若干個(gè)物理塊,同時(shí)設(shè)置一數(shù) 據(jù)長(zhǎng)度閾值,以便判斷數(shù)據(jù)是否為FAT表或FDT表。在一實(shí)施例中,該閾值可以為4K,當(dāng)文 件系統(tǒng)插入對(duì)FAT表或FDT表的更新操作而中斷數(shù)據(jù)更新操作時(shí),可利用該閾值判斷插入
5的數(shù)據(jù)是否為FAT表或FDT表,若數(shù)據(jù)長(zhǎng)度小于或等于閾值,則中斷用戶數(shù)據(jù)更新操作,執(zhí) 行上述步驟S30,更新FAT表或FDT表,記錄FAT表或FDT表的映射關(guān)系。如圖3所示,若數(shù) 據(jù)長(zhǎng)度大于閾值,則判斷為用戶數(shù)據(jù),執(zhí)行以下步驟
步驟S40,結(jié)束用戶數(shù)據(jù)更新操作; 步驟S50,申請(qǐng)用戶數(shù)據(jù)的邏輯地址與物理地址映射表;
步驟S60,保存當(dāng)前操作的結(jié)束物理地址與操作環(huán)境。 當(dāng)用戶數(shù)據(jù)長(zhǎng)度與FAT表或FDT表一般大小,不滿足連續(xù)寫的條件時(shí),例如,若數(shù) 據(jù)長(zhǎng)度只有0. 5K時(shí),則執(zhí)行結(jié)束數(shù)據(jù)的更新操作,申請(qǐng)?jiān)撚脩魯?shù)據(jù)的邏輯地址與物理地址 映射表,保存操作的結(jié)束物理地址與操作環(huán)境,以便續(xù)寫。例如,續(xù)寫時(shí),可將操作結(jié)束的物 理地址和操作環(huán)境與當(dāng)前操作的物理地址比對(duì),若兩者一致,則可繼續(xù)用戶數(shù)據(jù)更新操作, 若兩者不一致,則中斷用戶數(shù)據(jù)更新操作,返回執(zhí)行上述步驟S22。如圖4所示,上述方法 中,續(xù)寫中斷時(shí)用戶數(shù)據(jù)的操作,可包括以下步驟 步驟S70,判斷當(dāng)前操作的物理地址與結(jié)束物理地址是否一致; 步驟S80,若否,則根據(jù)數(shù)據(jù)長(zhǎng)度閾值中斷數(shù)據(jù)更新操作;返回執(zhí)行上述步驟S22 ; 步驟S90,若是,則根據(jù)結(jié)束物理地址繼續(xù)更新數(shù)據(jù),返回執(zhí)行上述步驟S60。 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精
神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種NAND FLASH的數(shù)據(jù)處理方法,其特征在于,包括以下步驟根據(jù)邏輯地址與物理地址映射表申請(qǐng)空塊,進(jìn)行用戶數(shù)據(jù)更新操作;當(dāng)用戶數(shù)據(jù)更新操作被FAT表或FDT表更新中斷時(shí),保存空塊的物理地址和操作環(huán)境;更新FAT表或FDT表,記錄FAT表或FDT表的映射關(guān)系;調(diào)取用戶數(shù)據(jù)更新操作中斷時(shí)空塊的物理地址和操作環(huán)境,繼續(xù)用戶數(shù)據(jù)更新操作。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當(dāng)用戶數(shù)據(jù)更新操作被FAT表或FDT表中斷時(shí),保存空塊的物理地址和操作環(huán)境的步驟中包括設(shè)定數(shù)據(jù)長(zhǎng)度閾值;比較FAT表或FDT表的長(zhǎng)度與數(shù)據(jù)長(zhǎng)度閾值;當(dāng)FAT表或FDT表的長(zhǎng)度小于或等于數(shù)據(jù)長(zhǎng)度閾值時(shí),中斷用戶數(shù)據(jù)更新操作。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述更新FAT表或FDT表,記錄FAT表或FDT表的映射關(guān)系的步驟中包括在FLASH冗余中記錄FAT表或FDT表的邏輯地址,并在內(nèi)存中記錄FAT表或FDT表的映射關(guān)系。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括以下步驟當(dāng)用戶數(shù)據(jù)長(zhǎng)度大于所述閾值時(shí)結(jié)束數(shù)據(jù)更新操作;申請(qǐng)用戶數(shù)據(jù)的邏輯地址與物理地址映射表;保存當(dāng)前操作的結(jié)束物理地址與操作環(huán)境。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述調(diào)取用戶數(shù)據(jù)操作中斷時(shí)空塊的物理地址和操作環(huán)境,繼續(xù)用戶數(shù)據(jù)更新操作的步驟中還包括判斷當(dāng)前操作的物理地址與結(jié)束物理地址是否一致;若否,則根據(jù)數(shù)據(jù)長(zhǎng)度閾值中斷用戶數(shù)據(jù)更新操作;若是,則根據(jù)結(jié)束物理地址繼續(xù)更新用戶數(shù)據(jù)。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)數(shù)據(jù)長(zhǎng)度閾值中斷用戶數(shù)據(jù)更新操作的步驟中還包括比較用戶數(shù)據(jù)長(zhǎng)度與閾值;當(dāng)用戶數(shù)據(jù)長(zhǎng)度小于閾值時(shí),中斷數(shù)據(jù)更新操作。
全文摘要
本發(fā)明涉及半導(dǎo)體存儲(chǔ)介質(zhì)技術(shù)領(lǐng)域,提供了一種NAND FLASH數(shù)據(jù)處理方法的方法。該方法包括以下步驟根據(jù)邏輯地址與物理地址映射表申請(qǐng)空塊,以供用戶數(shù)據(jù)更新操作;當(dāng)用戶數(shù)據(jù)更新操作被FAT表或FDT表中斷時(shí),保存空塊的物理地址和操作環(huán)境;更新FAT表或FDT表,記錄FAT表或FDT表的映射關(guān)系;調(diào)取用戶數(shù)據(jù)更新操作中斷時(shí)空塊的物理地址和操作環(huán)境,繼續(xù)數(shù)據(jù)更新操作。本發(fā)明在用戶數(shù)據(jù)更新操作被中斷時(shí),記錄當(dāng)時(shí)空塊的物理地址和操作環(huán)境,當(dāng)文件系統(tǒng)的更新完成后,再通過調(diào)取空塊的物理地址和操作環(huán)境,實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)的續(xù)寫操作,減少了FLASH的磨損,提高了FLASH的數(shù)據(jù)拷貝速度。
文檔編號(hào)G06F12/02GK101794254SQ200910109880
公開日2010年8月4日 申請(qǐng)日期2009年11月25日 優(yōu)先權(quán)日2009年11月25日
發(fā)明者張彥偉, 成曉華, 李發(fā)生, 羅勝 申請(qǐng)人:深圳市硅格半導(dǎo)體有限公司