TW201526007A - Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統 - Google Patents

Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統 Download PDF

Info

Publication number
TW201526007A
TW201526007A TW103102667A TW103102667A TW201526007A TW 201526007 A TW201526007 A TW 201526007A TW 103102667 A TW103102667 A TW 103102667A TW 103102667 A TW103102667 A TW 103102667A TW 201526007 A TW201526007 A TW 201526007A
Authority
TW
Taiwan
Prior art keywords
block
data
preset
empty
blocks
Prior art date
Application number
TW103102667A
Other languages
English (en)
Other versions
TWI486957B (zh
Inventor
Tao Zhou
Original Assignee
Mstar Semiconductor Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mstar Semiconductor Inc filed Critical Mstar Semiconductor Inc
Application granted granted Critical
Publication of TWI486957B publication Critical patent/TWI486957B/zh
Publication of TW201526007A publication Critical patent/TW201526007A/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Abstract

本發明公開了一種NAND Flash燒錄資料的處理、使用方法及裝置、系統。其中,NAND Flash燒錄資料的處理方法包括:識別出NAND Flash燒錄資料中的所有半空區塊,半空區塊是燒錄資料中部分頁寫有資料、其餘頁空白的區塊,在所有半空區塊的所有空白頁中寫入預設標記字元,以使半空區塊均轉換為全滿區塊。通過上述方式,本發明能夠使得燒錄資料區塊都滿足每個頁都空或者每個頁都寫有資料的要求,從而避免高溫貼片時已燒錄資料出現損壞,提高產品品質和可靠性。

Description

NAND快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統
本發明涉及電腦資料存儲領域,特別是涉及一種NAND Flash燒錄資料的處理、使用方法及裝置、運行系統。
反及快閃記憶體(NAND Flash)以其容量大、存取速度快以及單位容量的成本低廉等特點,在嵌入式領域越來越廣泛地被用作存放資料的載體。雖然NAND Flash在各類快閃記憶體晶片中有容量和成本上的優勢,但可靠性相對較差也是其固有的缺陷。
NAND Flash根據其工藝結構又可分為單層單元(Single Level Cell,SLC)和多層單元(Multi Level Cell,MLC)兩種類型。SLC用一個存儲單元存放一個位元的資訊,而MLC一個存儲單元則可以存放兩個位元的資訊,因此MLC有著成本上的天然優勢,隨著市場對NAND Flash容量越來越大的需求,MLC的應用逐漸廣泛。但也由於其特殊的物理結構,MLC的可靠性相對於SLC要差地多,因此在取得成本優勢的同時提高MLC可靠性成了必須解決的問題。
NAND Flash在量產時,一般是使用專門的燒錄器將燒錄資料寫入到NAND Flash,然後通過高溫貼片方式將NAND Flash貼片到電路板 上。但是高溫貼片可能會使其中已經寫好的資料發生損壞,從而影響產品品質。
本發明主要解決的技術問題是提供一種NAND Flash燒錄資料的處理、使用方法及裝置、系統,能夠使低成本的MLC NAND Flash大規模應用於產品中,在保證生產效率的同時還能確保NAND Flash的可靠性。為解決上述技術問題,本發明採用的一個技術方案是:提供一種NAND Flash燒錄資料的處理方法,在燒錄資料之前,包括:識別出NAND Flash燒錄資料中的所有半空區塊,所述半空區塊是燒錄資料中部分頁寫有資料、其餘頁空白的區塊;在所有所述半空區塊的所有空白頁中寫入預設標記字元,以使所述半空區塊均轉換為全滿區塊,所述全滿區塊是每頁均寫有資料的區塊,所述預設標記字元用於區別寫入預設標記字元的區塊與其他全滿區塊。
為解決上述技術問題,本發明採用的另一個技術方案是:提供一種NAND Flash的使用方法,所述方法包括:系統通電時,判斷所述NAND Flash燒錄資料區塊中是否存在預設標記字元,所述預設標記字元用於區別寫入預設標記字元的半空區塊與其他全滿區塊;若所述NAND Flash燒錄資料區塊中存在預設標記字元,則將所述存在預設標記字元的區塊中的有效資料寫入空白區塊,並對所述存在預設標記字元的區塊進行抹除處理。
為解決上述技術問題,本發明提供的又一種技術方案是:提供一種NAND Flash燒錄資料的處理裝置,所述裝置包括識別模組和寫入模 組,其中:所述識別模組用於識別出NAND Flash燒錄資料中的所有半空區塊,所述半空區塊是燒錄資料中部分頁寫有資料、其餘頁空白的區塊;所述寫入模組用於在所有所述半空區塊的所有空白頁中寫入預設標記字元,以使所述半空區塊均轉換為全滿區塊,所述全滿區塊是每頁均寫有資料的區塊,所述預設標記字元用於區別寫入預設標記字元的區塊與其他全滿區塊。
為解決上述技術問題,本發明提供的還有一種技術方案是:提供一種NAND Flash的運行系統,所述運行系統包括判斷模組和處理模組,其中:所述判斷模組用於在系統通電時,判斷所述NAND Flash燒錄資料區塊中是否存在預設標記字元,所述預設標記字元用於區別寫入預設標記字元的半空區塊與其他全滿區塊;所述處理模組用於在所述NAND Flash燒錄資料區塊中存在預設標記字元,則將所述存在預設標記字元的區塊中的有效資料寫入空白區塊,並對所述存在預設標記字元的區塊進行抹除處理。
本發明的有益效果是:區別于現有技術的情況,本發明通過在燒錄資料之前,識別出NAND Flash燒錄資料中的部分頁寫有資料、其餘頁空白的所有半空區塊,在所有半空區塊的所有空白頁中寫入預設標記字元,以使半空區塊均轉換為每頁均寫有資料的全滿區塊,其中預設標記字元用於區別寫入預設標記字元的區塊與其他全滿區塊。通過這樣的方式,對半空區塊進行處理,使得燒錄資料區塊都滿足每個頁都空或者每個頁都寫有資料的要求,從而避免高溫貼片時已燒錄資料出現損壞,提高產品品質和可靠性。
100‧‧‧處理裝置
11‧‧‧識別模組
12‧‧‧寫入模組
200‧‧‧運行系統
21‧‧‧判斷模組
22‧‧‧處理模組
圖1是本發明提供的一種NAND Flash燒錄資料的處理方法一個實施方式的流程圖;圖2是本發明提供的一種NAND Flash的使用方法一個實施方式的流程圖;圖3是本發明提供的一種NAND Flash燒錄資料的處理裝置一個實施方式的結構示意圖;圖4是本發明提供的一種NAND Flash的運行系統一個實施方式的結構示意圖。
請參閱圖1,圖1是本發明提供的一種NAND Flash燒錄資料的處理方法一個實施方式的流程圖,本實施方式的NAND Flash燒錄資料的處理方法包括:
S101:識別出NAND Flash燒錄資料中的所有半空區塊;在燒錄資料之前,對燒錄資料進行處理,其主要目的是為了使燒錄資料的所有資料區塊的每個頁都空或者每個頁都寫有資料的要求,而不要出現一個半空區塊的狀態。所述半空區塊是指部分頁寫有資料,而其餘頁空白的區塊。因此,對燒錄資料進行處理需要先識別出燒錄資料中的半空區塊。
可以通過對燒錄資料按頁順序讀取來一一識別燒錄資料中的所有半空區塊。
對於MLC NAND Flash,一般而言其要求一個區塊從前往後順序寫,而不是反過來從後往前寫資料。因此,一個半空區塊一定是前半 部分存放有資料,後半部分為空區域。利用這一點可以提高識別半空區塊的效率。如果一個區塊的第一個頁就是空頁,可以認為這個區塊是完全沒使用的空區塊,不再需要判斷後面的頁。如果從前往後判斷發現中間某個頁為空頁,則可以認為這個區塊是半空區塊,也不需要再判斷後面頁的情況了。當然,為提高速度,當從前往後判斷發現區塊中第一頁有資料,則立即判斷該區塊的最後一頁是否有資料,若沒有資料則認為是半空區塊,反之則認為是全滿區塊。這樣可以提高對MLC NAND Flash的燒錄資料中半空區塊的識別效率。
S102:在所有半空區塊的所有空白頁中寫入預設標記字元,以使半空區塊均轉換為全滿區塊;一般NAND Flash在生產時,都通過燒錄器將燒錄資料寫入Flash中,但是燒錄器只負責燒錄環節,用戶提供什麼資料,它就原樣燒錄什麼資料。由於NAND Flash抹除後的預設值就是1,如果燒錄資料中某個頁的值全部是1就可以認為這是一個空頁。而燒錄器在寫NAND Flash之前會將整個NAND Flash抹除一遍,因此出於加快燒錄速度的考慮,燒錄器如果發現燒錄資料中某個頁是空的會跳過去不做燒錄,NAND Flash中對應的位置自然就保持在抹除後的空頁狀態。
對於MLC NAND Flash,一般而言只有整個區塊都是空的狀態才適合在燒錄時直接跳過去,而半空區塊儘管也含有空頁,但是這些空頁也不應該跳過去,需要強制燒錄其中的每一個頁。因此需要對半空區塊進行處理以避免在燒錄時其被跳過。
本發明實施方式中通過在所有半空區塊的所有空白頁中寫 入預設標記字元,以使半空區塊均轉換為全滿區塊。這裏預設標記字元是用於區別寫入預設標記字元的區塊與其他全滿區塊。
作為一種優選的實現方式,可以在所有半空區塊中所有空白頁的開頭預定位元寫入預設標記字元。
另外,為了產品性能,進一步考慮NAND Flash的改錯碼(ECC,Error Correction Code)校驗碼問題,如下:由於NAND Flash的可靠性較差,因此需要在每個頁面中加入ECC校驗碼來確保用戶資料的完整性。在寫入資料的時候生成ECC,ECC連同用戶資料一起寫入NAND Flash中。而在讀取資料時會重新計算ECC值並和寫入的ECC進行比對,看資料是否有損壞。ECC還具有一定的糾錯能力,如果錯誤的位元數沒有超出所用ECC演算法的糾錯能力,損壞的資料可以糾正回來。
為了避免對半空區塊的所有空白頁寫入預設標記字元而不會導致以後讀到這些頁出現系統報告ECC錯誤。對半空區塊的所有空白頁寫入預設標記字元通過以下這種優選方式實現:即在半空區塊的所有空白頁的開頭幾個位元寫入預設標記字元0,並且寫入預設標記字元位元數控制在ECC可糾錯的位元範圍內(即寫入預設標記字元位元數小於或等於ECC可糾錯的位元數量)。比如ECC可糾錯範圍為10位元,這裏寫入預設標記字元位元數可以是10的任何位元數。當然為了方便,可以只寫在每頁開頭1位元寫入預設標記字元。
這樣,ECC就不用重新計算。系統初始化時,讀到這些經過處理的半空區塊的空白頁,既不會有實際的資料損壞發生,同時又能找出這些標記過的半空區塊。
燒錄器在燒錄以上經過處理的燒錄資料時,看到的燒錄資料要麼是全部內容為空的區塊,要麼是所有頁都寫過資料的區塊,因此,燒錄器要麼對所有頁都寫過資料的區塊進行完整的寫入,而跳過全部內容為空的區塊。
S103:在所有半空區塊的所有空白頁中寫入預設標記字元後,對NAND Flash進行燒錄資料的處理。
通過上述實施方式的描述,可以理解,本發明實施方式的NAND Flash燒錄資料的處理方法,通過在燒錄資料之前,識別出NAND Flash燒錄資料中的部分頁寫有資料、其餘頁空白的所有半空區塊,在所有半空區塊的所有空白頁中寫入預設標記字元,以使半空區塊均轉換為每頁均寫有資料的全滿區塊,其中預設標記字元用於區別寫入預設標記字元的區塊與其他全滿區塊。通過這樣的方式,對半空區塊進行處理,使得燒錄資料區塊都滿足每個頁都空或者每個頁都寫有資料的要求,從而避免高溫貼片時已燒錄資料出現損壞,提高產品品質和可靠性。
另外,在優選實現方式中半空區塊中空白頁寫入預設標記字元位元數控制在ECC可糾錯的範圍內,這樣後續在讀到這些頁的時候,既不會有實際的資料損壞,又能方便找出這些經過處理的頁進行修復處理以便這些頁可以被重複利用。
進一步地,在半空區塊的所有空白頁的開頭幾個位元寫入能被ECC糾錯的預設標記字元後,可以不在該寫入預設標記字元的頁中設置ECC校驗碼,以方便後續系統初始化時能夠根據不設置ECC校驗碼但又有位元寫入的特徵快速識別出寫入預設標記字元的全滿區塊。當然,在其他實 施方式中,也可以在寫入預設標記字元的同時設置ECC校驗碼。此時,寫入預設標記字元的頁中,除了預設標記字元外,沒有其他資料,以此為特徵來識別該區塊是寫入預設標記字元的全滿區塊。在萬一出現沒有預設標記字元的其他全滿區塊的相應頁前面也碰巧同樣存在預設標記字元時,因為這種情況下預設標記字元的後面會跟隨資料,因此也可以以此為特徵來識別該區塊是沒有預設標記字元的全滿區塊。
本發明用於區別寫入預設標記字元的全滿區塊的方式,不限於上述設定預定數量的0作為預設標記字元的方式,還可以其他任何能夠區別寫入預設標記字元的全滿區塊與其他沒有寫入預設標記字元的全滿區塊的方式,比如設計可標識的字元排列或字元內容等等。
而本發明讀取NAND Flash的順序也不限於從前到後,在合適情況下也可以設計為其他順序比如從後到前,此時本發明區別寫入預設標記字元的全滿區塊的方式則適應性調整,不再贅述。
請參閱圖2,圖2是本發明提供的一種NAND Flash的使用方法的一個實施方式流程圖,本實施方式的NAND Flash的使用方法包括:
S201:系統通電;系統通電時,會對NAND Flash每個區塊進行讀取,以便獲得檔案系統相關的資訊。
S202:判斷NAND Flash燒錄資料區塊中是否存在預設標記字元;通過對NAND Flash每個區塊的資料進行讀取,從中判斷NAND Flash燒錄資料區塊中是否存在預設標記字元。
原來系統通電時一般讀取每個區塊的開頭兩頁,而本發明一 種比較優選的實施方式中,針對MLC NAND Flash,為了找出燒錄資料中原本屬於半空區塊,但是在燒錄資料時做過預設標記字元的區塊,讀取燒錄資料每個區塊開頭兩頁後,再多讀取燒錄資料區塊最後一頁。由於MLC NAND Flash要求一個區塊必須從前往後順序寫,因此半空區塊的後半部分為做過標記的空區域,讀取其最後一頁,通常會得到一個可糾正的ECC結果。如果得到一個可糾正的ECC結果,則可以認為讀到一個存在預設標記字元的半空區塊。
為了便於找到存在預設標記字元的資料區塊,預存預設標記字元為0,並控制寫入預設標記字元位元數小於或等於ECC可糾錯的位元數。這樣,當某個區塊的最後一頁得到ECC結果時,該頁已被ECC糾正,所以邏輯上看來被標記的半空區塊後半部分還是空頁狀態,並沒有之前被標記的預設標記字元0。
可以對系統通電後找到的存在預存預設標記字元的區塊資訊用一個專門的空區塊來記錄,以後如果在開機則只對沒有記錄的區塊讀取最後一個頁,可以加快後續開機的速度。
S203:將存在預設標記字元的區塊中的有效資料寫入空白區塊,並對存在預設標記字元的區塊進行抹除處理。
存在預設標記字元的區塊是被預先做過標記的半空區塊,但是其並不是真正的半空狀態,其空頁還不能直接用於存放資料。因此,會將找出的存在預設標記字元的區塊進行修復處理以便能重新使用。所述的修復處理是將存在預設標記字元的區塊中的有效資料拷貝出來,寫入空白區塊,然後對存在預設標記字元的區塊進行抹除處理。抹除之後的區塊, 可以在以後重新使用,即可以直接寫入資料。
通過這樣的方式,對標記過的半空區塊,能夠釋放其空白頁,使這些頁又能夠被利用,一般而言上述修復處理過程,不會對空白頁進行拷貝,所以原來的空頁中寫入的一定位元預設標記字元在經過上述修復處理後自然就消失了。
對存在預設標記字元的區塊中的有效資料拷貝出來屬於一個讀過程,而又將其寫入空白區塊屬於一個寫過程,為提高效率,讀、寫過程是可以同步完成的。而對存在預設標記字元的區塊進行抹除處理的步驟,則可以在後台非同步完成。
如果燒錄資料區塊中存在預設標記字元的區塊在很長時間內不會被寫入資料,那麼這個存在預設標記字元的區塊在被寫入資料前,某個系統空閒時間內,將這個區塊的有效資料寫入空白區塊,並對這個區塊進行抹除處理。這時該執行動作是在後台完成的。
一個存在預設標記字元的區塊在被修復處理之前,可以直接讀和抹除,但是通常不能直接寫。這樣,如果後台的修復處理還沒有做,但又需要對存在預設標記字元的區塊進行寫操作,則可以同步的強制做修復處理。因此,修復處理分兩種情況:一種情況是在後台非同步完成,它對系統性能影響較小;另一種是在寫請求之前同步完成。
另外,為了避免在開機過程中集中進行多個區塊的修復處理而影響開機速度,如果在後台非同步執行修復處理時,可以設定當開機預定時間內需要修復處理的區塊多於預定數量時,暫時關閉後台修復處理。這裏的預定時間和預定數量可以根據系統性能設置。比如開機50秒內需要 修復處理的區塊數量多於8個,就關閉後台修復處理。或者1分鐘內需要修復處理的區塊數量多於10個時就關閉後台修復處理等等。
通過以上實施方式的描述,本發明提供的NAND Flash燒錄資料的處理方法以及NAND Flash的使用方法,通過在燒錄資料之前,識別出NAND Flash燒錄資料中的部分頁寫有資料、其餘頁空白的所有半空區塊,在所有半空區塊的所有空白頁中寫入預設標記字元,以使半空區塊均轉換為每頁均寫有資料的全滿區塊,能夠確保提供給燒錄器使用的燒錄資料不含半空狀態的區塊。另外,在系統通電後,能夠識別出標記過的半空區塊,並且對這些標記過的半空區塊做修復處理,使其空餘的空間能夠釋放出來被重新使用,又能儘量減少對開機時間的影響。
因此,本發明能夠使低成本的MLC NAND Flash大規模應用於產品中,在保證生產效率的同時確保產品品質的可靠。
請參閱圖3,圖3是本發明提供的一種NAND Flash燒錄資料的處理裝置一個實施方式的結構示意圖,本實施方式的NAND Flash燒錄資料的處理裝置100包括識別模組11和寫入模組12,其中:識別模組11用於識別出NAND Flash燒錄資料中的所有半空區塊,半空區塊是燒錄資料中部分頁寫有資料、其餘頁空白的區塊;在燒錄資料之前,本實施方式的NAND Flash燒錄資料的處理裝置對燒錄資料進行處理,其主要目的是為了使燒錄資料的所有資料區塊的每個頁都空或者每個頁都寫有資料的要求,而不要出現一個半空區塊的狀態。所述半空區塊是指部分頁寫有資料,而其餘頁空白的區塊。因此,對燒錄資料進行處理需要先識別出燒錄資料中的半空區塊。
其中,識別模組11可以通過對燒錄資料按頁順序讀取來一一識別燒錄資料中的所有半空區塊。其中,識別模組11用於對燒錄資料中的區塊,按照頁的順序從前往後查找,如果區塊的第一頁有資料,而第一頁之後的任意一頁為空白,則識別出區塊為半空區塊。
對於MLC NAND Flash,一般而言其要求一個區塊必須從前往後順序寫,而不是反過來從後往前寫資料。因此,一個半空區塊一定是前半部分存放有資料,後半部分為空區域。利用這一點可以提高識別半空區塊的效率。如果一個區塊的第一個頁就是空頁,可以認為這個區塊是完全沒使用的空區塊,不再需要判斷後面的頁。如果從前往後判斷發現中間某個頁為空頁,則可以認為這個區塊是半空區塊,也不需要再判斷後面頁的情況了。當然,為提高速度,當從前往後判斷發現區塊中第一頁有資料,則立即判斷該區塊的最後一頁是否有資料,若沒有資料則認為是半空區塊,反之則認為是全滿區塊。這樣可以提高對MLC NAND Flash的燒錄資料中半空區塊的識別效率。
寫入模組12用於在所有所述半空區塊的所有空白頁中寫入預設標記字元,以使半空區塊均轉換為全滿區塊,全滿區塊是每頁均寫有資料的區塊,預設標記字元用於區別寫入預設標記字元的區塊與其他全滿區塊。
一般NAND Flash在生產時,都通過燒錄器將燒錄資料寫入Flash中,但是燒錄器只負責燒錄環節,用戶提供什麼資料,它就原樣燒錄什麼資料。由於NAND Flash抹除後的預設值就是1,如果燒錄資料中某個頁的值全部是1就可以認為這是一個空頁。而燒錄器在寫NAND Flash之前會將 整個NAND Flash抹除一遍,因此出於加快燒錄速度的考慮,燒錄器如果發現燒錄資料中某個頁是空的會跳過去不做燒錄,NAND Flash中對應的位置自然就保持在抹除後的空頁狀態。
對於MLC NAND Flash,一般而言只有整個區塊都是空的狀態才適合在燒錄時直接跳過去,而半空區塊儘管也含有空頁,但是這些空頁也不應該跳過去,需要強制燒錄其中的每一個頁。因此需要對半空區塊進行處理以避免在燒錄時其被跳過。
本發明實施方式中通過寫入模組在所有半空區塊的所有空白頁中寫入預設標記字元,以使半空區塊均轉換為全滿區塊。這裏預設標記字元是用於區別寫入預設標記字元的區塊與其他全滿區塊。
作為一種優選的實現方式,寫入模組12用於在所有半空區塊中所有空白頁的開頭預定位元寫入預設標記字元。其中,更優選地?,預設標記字元是0,預定位元小於或等於改錯碼可糾錯的位元數量。比如ECC可糾錯範圍為10位元,這裏寫入預設標記字元位元數可以是10的任何位元數。當然為了方便,可以只寫在每頁開頭1位元寫入預設標記字元。這樣,ECC就不用重新計算。系統初始化時,讀到這些經過處理的半空區塊的空白頁,既不會有實際的資料損壞發生,同時又能找出這些標記過的半空區塊。
燒錄器在燒錄以上經過處理的燒錄資料時,看到的燒錄資料要麼是全部內容為空的區塊,要麼是所有頁都寫過資料的區塊,因此,燒錄器要麼對所有頁都寫過資料的區塊進行完整的寫入,而跳過全部內容為空的區塊。
在所有半空區塊的所有空白頁中寫入預設標記字元後,對NAND Flash進行燒錄資料的處理。
請參閱圖4,圖4是本發明提供的一種NAND Flash的運行系統一個實施方式的結構示意圖,本實施方式的NAND Flash的運行系統200包括判斷模組21和處理模組22,其中:判斷模組21用於在系統通電時,判斷NAND Flash燒錄資料區塊中是否存在預設標記字元,預設標記字元用於區別寫入預設標記字元的半空區塊與其他全滿區塊。
本實施方式的NAND Flash的運行系統通過對NAND Flash每個區塊的資料進行讀取,通過判斷模組21從中判斷NAND Flash燒錄資料區塊中是否存在預設標記字元。
原來系統通電時一般讀取每個區塊的開頭兩頁,而本發明一種比較優選的實施方式中,針對MLC NAND Flash,為了找出燒錄資料中原本屬於半空區塊,但是在燒錄資料時做過預設標記字元的區塊,判斷模組21讀取燒錄資料每個區塊開頭兩頁後,再多讀取燒錄資料區塊最後一頁。如果最後一頁存在預設標記字元,則確定燒錄資料區塊存在預設標記字元。
因為MLC NAND Flash要求一個區塊必須從前往後順序寫,因此半空區塊的後半部分為做過標記的空區域,讀取其最後一頁,只要最後一頁有預設標記字元,則表明這個區塊被標記過,而避免每一頁的逐個判斷浪費不必要的時間。而且讀取資料區塊的最後一頁,通常會得到一個可糾正的ECC結果。因此如果得到一個可糾正的ECC結果,也可以認為讀到一個存在預設標記字元的半空區塊。
處理模組22用於在NAND Flash燒錄資料區塊中存在預設標記字元,則將存在預設標記字元的區塊中的有效資料寫入空白區塊,並對存在預設標記字元的區塊進行抹除處理。
存在預設標記字元的區塊是被預先做過標記的半空區塊,但是其並不是真正的半空狀態,其空頁還不能直接用於存放資料。因此,處理模組22會將找出的存在預設標記字元的區塊進行修復處理以便能重新使用。所述的修復處理是將存在預設標記字元的區塊中的有效資料拷貝出來,寫入空白區塊,然後對存在預設標記字元的區塊進行抹除處理。抹除之後的區塊,可以在以後重新使用,即可以直接寫入資料。
通過這樣的方式,對標記過的半空區塊,能夠釋放其空白頁,使這些頁又能夠被利用,一般而言上述修復處理過程,不會對空白頁進行拷貝,所以原來的空頁中寫入的一定位元預設標記字元在經過上述修復處理後自然就消失了。
對存在預設標記字元的區塊中的有效資料拷貝出來屬於一個讀過程,而又將其寫入空白區塊屬於一個寫過程,為提高效率,讀、寫過程是可以同步完成的。而對存在預設標記字元的區塊進行抹除處理的步驟,則可以在後台非同步完成。
如果燒錄資料區塊中存在預設標記字元的區塊在很長時間內不會被寫入資料,那麼這個存在預設標記字元的區塊在被寫入資料前,處理模組22在某個系統空閒時間內,將這個區塊的有效資料寫入空白區塊,並對這個區塊進行抹除處理。這時處理模組22執行該修復處理動作是在後台完成的。
一個存在預設標記字元的區塊在被修復處理之前,可以直接讀和抹除,但是通常不能直接寫。這樣,如果後台的修復處理還沒有做,但又需要對存在預設標記字元的區塊進行寫操作,則可以同步的強制做修復處理。因此,修復處理分兩種情況:一種情況是在後台非同步完成,它對系統性能影響較小;另一種是在寫請求之前同步完成。
為了避免在開機過程中集中進行多個區塊的修復處理而影響開機速度,如果在後台非同步執行修復處理時,可以設定當開機預定時間內需要修復處理的區塊多於預定數量時,處理模組22暫時關閉後台修復處理。這裏的預定時間和預定數量可以根據系統性能設置。比如開機50秒內需要修復處理的區塊數量多於8個,就關閉後台修復處理。或者1分鐘內需要修復處理的區塊數量多於10個時就關閉後台修復處理等等。
通過以上實施方式的描述,通過在燒錄資料之前,識別出NAND Flash燒錄資料中的部分頁寫有資料、其餘頁空白的所有半空區塊,在所有半空區塊的所有空白頁中寫入預設標記字元,以使半空區塊均轉換為每頁均寫有資料的全滿區塊,能夠確保提供給燒錄器使用的燒錄資料不含半空狀態的區塊。另外,在系統通電後,能夠識別出標記過的半空區塊,並且對這些標記過的半空區塊做修復處理,使其空餘的空間能夠釋放出來被重新使用,又能儘量減少對開機時間的影響。
因此,本發明能夠使低成本的MLC NAND Flash大規模應用於產品中,在保證生產效率的同時確保產品品質的可靠。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其他的方式實現。例如,以上所描述的裝置實 施例僅僅是示意性的,例如,所述模組或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面,裝置或單元的間接耦合或通信連接,可以是電性,機械或其他的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個電腦可讀取存儲介質中。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品存儲在一個存儲介質中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)或處理器(processor)執行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:隨身碟/快閃記憶體、行動硬碟、唯讀記憶體(ROM,Read-Only Memory)、隨機存取記憶體(RAM,Random Access Memory)、磁碟或者光碟等各種可以存儲 程式碼的介質。
以上所述僅為本申請的實施例,並非因此限制本申請的專利範圍,凡是利用本申請說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本申請的專利保護範圍內。

Claims (22)

  1. 一種NAND快閃記憶體燒錄資料的處理方法,其特徵在於,在燒錄資料之前,包括:識別出NAND Flash燒錄資料中的所有半空區塊,所述半空區塊是燒錄資料中部分頁寫有資料、其餘頁空白的區塊;在所有所述半空區塊的所有空白頁中寫入預設標記字元,以使所述半空區塊均轉換為全滿區塊,所述全滿區塊是每頁均寫有資料的區塊,所述預設標記字元用於區別寫入預設標記字元的區塊與其他全滿區塊。
  2. 根據申請專利範圍第1項所述的方法,其特徵在於,所述在所有所述半空區塊的所有空白頁中寫入預設標記字元的步驟包括:在所有所述半空區塊中所有空白頁的開頭預定位元寫入預設標記字元。
  3. 根據申請專利範圍第2項所述的方法,其特徵在於,所述預設標記字元是0。
  4. 根據申請專利範圍第2項所述的方法,其特徵在於,所述預定位元小於或等於改錯碼可糾錯的位元數量。
  5. 根據申請專利範圍第1項所述的方法,其特徵在於,所述識別出燒錄資料中的半空區塊的步驟包括:對於燒錄資料中的區塊,按照頁的順序從前往後查找;如果所述區塊的第一頁有資料,而所述第一頁之後的任意一頁為空白,則識別出所述區塊為半空區塊。
  6. 一種NAND快閃記憶體的使用方法,其特徵在於,所述方法包括:系統通電時,判斷所述NAND Flash燒錄資料區塊中是否存在預設標記字元,所述預設標記字元用於區別寫入標記字元的半空區塊與其他全滿區塊;若所述NAND Flash燒錄資料區塊中存在預設標記字元,則將所述存在預設標記字元的區塊中的有效資料寫入空白區塊,並對所述存在預設標記字元的區塊進行抹除處理。
  7. 根據申請專利範圍第6項所述的方法,其特徵在於,所述預設標記字元是0。
  8. 根據申請專利範圍第6項所述的方法,其特徵在於,所述預設標記字元的位元數小於或等於改錯碼可糾錯的位元數。
  9. 根據申請專利範圍第6項所述的方法,其特徵在於,所述判斷所述NAND Flash燒錄資料區塊中是否存在預設標記字元的步驟包括:讀取所有所述NAND Flash燒錄資料區塊中的最後一頁;若所述最後一頁存在預設標記字元,則確定所述燒錄資料區塊存在預設標記字元。
  10. 根據申請專利範圍第6項所述的方法,其特徵在於,所述將所述存在預設標記字元的區塊中的有效資料寫入空白區塊,並對所述存在預設標記字元的區塊進行抹除處理的步驟在後台非同步執行或在回應所述存在預設標記字元的區塊的寫請求之前同步執行。
  11. 根據申請專利範圍第10項所述的方法,其特徵在於,當所述將所述存在預設標記字元的區塊中的有效資料寫入空白區塊,並對所述存在預設標記字元的區塊進行抹除處理的步驟在後台非同步執行時,如果所述系統通電預定時間內所述存在預設標記字元的區塊多於預定數量,關閉所述後台非同步執行。
  12. 一種NAND快閃記憶體燒錄資料的處理裝置,其特徵在於,所述裝置包括識別模組和寫入模組,其中:所述識別模組用於識別出NAND Flash燒錄資料中的所有半空區塊,所述半空區塊是燒錄資料中部分頁寫有資料、其餘頁空白的區塊;所述寫入模組用於在所有所述半空區塊的所有空白頁中寫入預設標記字元,以使所述半空區塊均轉換為全滿區塊,所述全滿區塊是每頁均寫有資料的區塊,所述預設標記字元用於區別寫入預設標記字元的區塊與其他全滿區塊,所述預定位元小於或等於改錯碼可糾錯的位元數量。
  13. 根據申請專利範圍第12項所述的裝置,其特徵在於,所述寫入模組用於在所有所述半空區塊中所有空白頁的開頭預定位元寫入預設標記字元。
  14. 根據申請專利範圍第13項所述的裝置,其特徵在於,所述預設標記字元是0。
  15. 根據申請專利範圍第13項所述的裝置,其特徵在於,所述預定位元小於或等於改錯碼可糾錯的位元數量。
  16. 根據申請專利範圍第12項所述的裝置,其特徵在於,所述識別模組用於對燒錄資料中的區塊,按照頁的順序從前往後查找,如果所述區塊的第一頁有資料,而所述第一頁之後的任意一頁為空白,則識別出所述區塊為半空區塊。
  17. 一種NAND快閃記憶體的運行系統,其特徵在於,所述運行系統包括判斷模組和處理模組,其中:所述判斷模組用於在系統通電時,判斷所述NAND Flash燒錄資料區塊中是否存在預設標記字元,所述預設標記字元用於區別寫入預設標記字元的半空區塊與其他全滿區塊;所述處理模組用於在所述NAND Flash燒錄資料區塊中存在預設標記字元,則將所述存在預設標記字元的區塊中的有效資料寫入空白區塊,並對所述存在預設標記字元的區塊進行抹除處理。
  18. 根據申請專利範圍第17項所述的系統,其特徵在於,所述預設標記字元是0。
  19. 根據申請專利範圍第17項所述的系統,其特徵在於,所述預設標記字元位元數小於或等於改錯碼可糾錯的位元數。
  20. 根據申請專利範圍第17項所述的系統,其特徵在於,所述判斷模組用於讀取所有所述NAND Flash燒錄資料區塊中的最後一頁,若所述最後一頁存在預設標記字元,則確定所述燒錄資料區塊存在預設標記字元。
  21. 根據申請專利範圍第17項所述的系統,其特徵在於,所述處理模組用於在後台非同步執行或回應所述存在預設標記字元的區塊的寫請求之前同步執行所述將所述存在預設標記字元的區塊中的有效資料寫入空白區塊,並對所述存在預設標記字元的區塊進行抹除處理的步驟。
  22. 根據申請專利範圍第21項所述的系統,其特徵在於,當所述處理模組在後台非同步執行所述將所述存在預設標記字元的區塊中的有效資料寫入空白區塊,並對所述存在預設標記字元的區塊進行抹除處理的步驟時,如果所述系統通電預定時間內需要做修復處理的區塊多於預定數量,所述處理模組關閉所述後台非同步執行。
TW103102667A 2013-12-30 2014-01-24 Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統 TWI486957B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310746872.8A CN103778964B (zh) 2013-12-30 2013-12-30 一种NAND Flash烧写数据的处理、使用方法及装置、系统

Publications (2)

Publication Number Publication Date
TWI486957B TWI486957B (zh) 2015-06-01
TW201526007A true TW201526007A (zh) 2015-07-01

Family

ID=50571118

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103102667A TWI486957B (zh) 2013-12-30 2014-01-24 Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統

Country Status (3)

Country Link
US (1) US9524212B2 (zh)
CN (1) CN103778964B (zh)
TW (1) TWI486957B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794019B (zh) * 2015-04-17 2017-12-05 深圳市江波龙电子有限公司 一种嵌入式存储器的数据保护方法及装置
TWI561985B (en) * 2015-10-22 2016-12-11 Silicon Motion Inc Data storage device and data maintenance method thereof
CN105653469B (zh) * 2015-12-30 2018-11-02 深圳Tcl数字技术有限公司 数据写入方法和装置
CN106156639A (zh) * 2016-06-28 2016-11-23 北京小米移动软件有限公司 数据分区加密方法及装置
CN108614666B (zh) * 2016-12-09 2021-10-26 北京兆易创新科技股份有限公司 基于NAND flash的数据块处理方法和装置
CN111324281B (zh) * 2018-12-14 2024-02-06 兆易创新科技集团股份有限公司 一种存储器及其控制方法和装置
CN111638889B (zh) * 2020-06-01 2023-05-05 杭州万高科技股份有限公司 一种烧写器及一种防错的烧写方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE396680A (zh) * 1931-07-30
KR100397316B1 (ko) * 1998-01-21 2003-09-06 비.유.지., 인크. 기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법
JP3078530B2 (ja) * 1998-10-12 2000-08-21 ローム株式会社 不揮発性半導体メモリic及びそのバーンインテスト方法
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
EP1533702A4 (en) * 2002-08-29 2007-05-23 Matsushita Electric Ind Co Ltd SEMICONDUCTOR MEMORY AND METHOD FOR RECORDING DATA IN A FLASH MEMORY
US6845061B2 (en) * 2003-02-05 2005-01-18 Megawin Technology Co., Ltd. Method for quickly detecting the state of a nonvolatile storage medium
TWI249670B (en) * 2004-04-29 2006-02-21 Mediatek Inc System and method capable of sequentially writing a flash memory
JP4889961B2 (ja) * 2005-05-06 2012-03-07 ルネサスエレクトロニクス株式会社 半導体集積回路及びそのバーインテスト方法
JP2007133541A (ja) * 2005-11-09 2007-05-31 Tokyo Electron Device Ltd 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム
JP4235646B2 (ja) * 2005-12-28 2009-03-11 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム
JP2007233838A (ja) * 2006-03-02 2007-09-13 Toshiba Corp メモリシステムの制御方法
EP2003569B1 (en) * 2006-03-13 2010-06-02 Panasonic Corporation Flash memory controller
US20100008170A1 (en) * 2006-06-27 2010-01-14 Shinya Sato Semiconductor tester and testing method of semiconductor memory
CN101162608B (zh) * 2006-10-10 2010-12-01 北京华旗资讯数码科技有限公司 闪存的存储块的标识方法
KR100843208B1 (ko) * 2006-11-02 2008-07-02 삼성전자주식회사 반도체 칩 패키지 및 그 테스트 방법
US8344475B2 (en) * 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
US7861056B2 (en) * 2007-01-03 2010-12-28 Tekelec Methods, systems, and computer program products for providing memory management with constant defragmentation time
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching
US8954654B2 (en) * 2008-06-18 2015-02-10 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US9548108B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver for enhanced flash endurance
US8180955B2 (en) * 2009-05-06 2012-05-15 Via Telecom, Inc. Computing systems and methods for managing flash memory device
TWI450099B (zh) * 2009-12-10 2014-08-21 Phison Electronics Corp 模擬可覆寫光碟裝置的儲存系統、控制器、電腦系統及方法
US8381018B2 (en) * 2010-05-21 2013-02-19 Mediatek Inc. Method for data recovery for flash devices
TW201312349A (zh) * 2011-09-09 2013-03-16 Fluiditech Ip Ltd 回收重建記憶體空間方法
TWI489474B (zh) * 2011-10-25 2015-06-21 Silicon Motion Inc 內嵌閃存卡燒機方法以及測試板、以及內嵌閃存卡
CN103310842A (zh) * 2012-03-06 2013-09-18 富泰华工业(深圳)有限公司 烧录系统及烧录方法
US9285423B2 (en) * 2013-12-16 2016-03-15 International Business Machines Corporation Managing chip testing data

Also Published As

Publication number Publication date
CN103778964A (zh) 2014-05-07
US9524212B2 (en) 2016-12-20
US20150186211A1 (en) 2015-07-02
TWI486957B (zh) 2015-06-01
CN103778964B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
TWI486957B (zh) Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
TWI692690B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US9043549B2 (en) Memory storage apparatus, memory controller, and method for transmitting and identifying data stream
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
TWI512742B (zh) 非揮發性快閃記憶體擦除異常存儲塊修復方法和裝置
TWI470431B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
TWI489466B (zh) 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
US9552287B2 (en) Data management method, memory controller and embedded memory storage apparatus using the same
TWI438630B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
TW201917578A (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US10340025B2 (en) Data-storage device and block-releasing method
CN102890655A (zh) 存储器储存装置、其存储器控制器与有效数据识别方法
CN102890645A (zh) 存储器储存装置、存储器控制器与数据写入方法
CN103593301B (zh) 坏块管理方法及系统
US8762685B2 (en) Data writing method, memory controller and memory storage apparatus
TW201820114A (zh) 資料寫入方法以及儲存控制器
US8832358B2 (en) Data writing method, memory controller and memory storage apparatus
US8312205B2 (en) Method for identifying a page of a block of flash memory, and associated memory device
CN111949198A (zh) 一种坏块管理方法、装置和存储设备
JP4656063B2 (ja) メモリカードの特定方法
US10169224B2 (en) Data protecting method for preventing received data from losing, memory storage apparatus and memory control circuit unit

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees
MM4A Annulment or lapse of patent due to non-payment of fees