TWI408688B - 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 - Google Patents

用於快閃記憶體的資料寫入方法及其控制器與儲存系統 Download PDF

Info

Publication number
TWI408688B
TWI408688B TW098134508A TW98134508A TWI408688B TW I408688 B TWI408688 B TW I408688B TW 098134508 A TW098134508 A TW 098134508A TW 98134508 A TW98134508 A TW 98134508A TW I408688 B TWI408688 B TW I408688B
Authority
TW
Taiwan
Prior art keywords
data
flash memory
physical
physical block
stored
Prior art date
Application number
TW098134508A
Other languages
English (en)
Other versions
TW201113887A (en
Inventor
Hsiang Hsiung Yu
Yi Hsiang Huang
Chung Lin Wu
Yu Chung Shen
Original Assignee
Phison Electronics Corp
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 Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW098134508A priority Critical patent/TWI408688B/zh
Priority to US12/622,084 priority patent/US8806301B2/en
Publication of TW201113887A publication Critical patent/TW201113887A/zh
Application granted granted Critical
Publication of TWI408688B publication Critical patent/TWI408688B/zh

Links

Classifications

    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
    • 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/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

用於快閃記憶體的資料寫入方法及其控制器與儲存系統
本發明是有關於一種用於快閃記憶體的資料寫入方法,且特別是有關於一種能夠有效地確保已正確將資料寫入至快閃記憶體的資料寫入方法以及使用此方法的快閃記憶體控制器與快閃記憶體儲存系統。
由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,最適合使用於由電池供電的可攜式電子產品上。例如,固態硬碟就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置,並且已廣泛配置於筆記型電腦中作為主要的儲存裝置。
快閃記憶體儲存裝置中的快閃記憶體具有多個實體區塊(physical block),且每一實體區塊具有多個實體頁面(page),其中在實體區塊中寫入資料時必須依據實體頁面的順序依序地寫入資料。此外,快閃記憶體依據每一記憶胞可儲存的位元數可區分為單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體與多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體。由於,在單層記憶胞NAND快閃記憶體中,1個記憶胞中所儲存電荷是以一個位準來區分識別此記憶胞所儲存的位元是“1”或“0”,因此,在SLC NAND快閃記憶體中每一個記憶胞僅能儲存1個位元的資料。
隨著快閃記憶體製程的進步,目前MLC NAND快閃記憶體已被發展出來。具體來說,在多層記憶胞NAND快閃記憶體中,1個記憶胞中所儲存的電荷可被區分為多個位準。因此,在MLC NAND快閃記憶體中,1個記憶胞可儲存多個位元的資料。基此,在相同記憶胞數目下,MLC NAND快閃記憶體之頁面數會是SLC NAND快閃記憶體之頁面數的數倍。
由於在MLC NAND快閃記憶體中,1個記憶胞可儲存多個位元的資料,因此,MLC NAND快閃記憶體之實體區塊的程式化可分為多階段。例如,以2層記憶胞為例,實體區塊的程式化可分為2階段。第一階段是下頁(lower page)的程式化部分,其物理特性類似於SLC NAND快閃記憶體,在完成第一階段之後才程式化上頁(upper page),其中下頁的程式化速度會快於上頁。類似地,在8層記憶胞或16層記憶胞的案例中,記憶胞包括更多個實體頁面並且會以更多階段來寫入。
在MLC NAND快閃記憶體中每一階段的程式化彼此會有耦合關係,因此,一般來說,MLC NAND快閃記憶體的可靠性是較SLC NAND快閃記憶體低。也就是說,在MLC NAND快閃記憶體中寫入資料時發生錯誤的機率較高。特別是,隨著多層記憶胞快閃記憶體每一記憶胞可儲存的位元數越多,發生錯誤的機率也越高。因此,如何確保在快閃記憶體所寫入資料的正確性是此領域技術人員所致力的目標。
本發明提供一種資料寫入方法,其能夠有效地確保寫入至快閃記憶體之資料的正確性。
本發明提供一種快閃記憶體控制器,其能夠有效地確保寫入至快閃記憶體之資料的正確性。
本發明範例實施例提供一種快閃記憶體儲存系統,其能夠有效地確保寫入至快閃記憶體之資料的正確性。
本發明提出一種資料寫入方法,用於將來自於主機系統的資料寫入至快閃記憶體晶片中,其中此快閃記憶體晶片包括多個實體區塊。本資料寫入方法包括配置一快閃記憶體控制器,從主機系統中接收主機寫入指令以及對應此主機寫入指令的寫入資料,並且藉由快閃記憶體控制器執行此主機寫入指令。本資料寫入方法也包括在執行此主機寫入指令期間向快閃記憶體晶片傳送一資料程式化指令來將此寫入資料寫入至其中一個實體區塊中,以及在執行此主機寫入指令期間向快閃記憶體晶片傳送一指令來判斷儲存於此實體區塊中的至少部分資料是否存有錯誤位元。
在本發明之一實施例中,上述之快閃記憶體控制器具有一錯誤校正單元,並且上述之向快閃記憶體晶片傳送指令來判斷儲存於此實體區塊中的資料是否存有錯誤位元的步驟包括:向快閃記憶體晶片傳送一讀取指令來從此實體區塊中讀取資料,以及透過此錯誤校正單元依據所讀取的資料來判斷儲存於此實體區塊中的資料是否具有錯誤位元。
在本發明之一實施例中,上述之判斷儲存於此實體區塊中的至少部分資料是否存有錯誤位元的步驟包括:僅判斷儲存於此實體區塊中對應主機寫入指令的寫入資料是否存有錯誤位元。
在本發明之一實施例中,每一實體區塊具有多個實體頁面且上述之資料寫入方法更包括:當儲存於此實體區塊內的其中一個實體頁面中的資料存有錯誤位元並且此錯誤位元的數目超過上述錯誤校正單元的最大錯誤校正位元數時,則將儲存於此實體區塊內其他實體頁面中的資料搬移至另一個實體區塊,並且將此實體區塊標記為一壞實體區塊。
在本發明之一實施例中,當上述存有錯誤位元的實體頁面中的資料為對應上述主機寫入指令的寫入資料時,上述快閃記憶體控制器向上述主機系統傳送一寫入錯誤訊息。
在本發明之一實施例中,每一實體區塊具有多個實體頁面且上述之資料寫入方法更包括:當儲存於此實體區塊內的其中一個實體頁面中的資料存有錯誤位元,同時此錯誤位元的數目超過一錯誤位元門檻值且未超過上述錯誤校正單元的最大錯誤校正位元數時,則將儲存於此實體區塊中的資料搬移至另一個實體區塊,並且將此實體區塊標記為一壞實體區塊。
在本發明之一實施例中,每一實體區塊具有多個實體頁面且上述之資料寫入方法更包括:當儲存於此實體區塊內的其中一個實體頁面中的資料存有錯誤位元並且此錯誤位元的數目未超過錯誤位元門檻值時,則將此實體區塊標記為一不可靠實體區塊。
在本發明之一實施例中,上述之資料寫入方法更包括使用一不可靠實體區塊記錄表來記錄上述不可靠實體區塊。
在本發明之一實施例中,上述之向快閃記憶體晶片傳送指令來判斷儲存於此實體區塊中的資料是否存有錯誤位元的步驟包括:向快閃記憶體晶片傳送一讀取指令來從此實體區塊中讀取對應主機寫入指令的寫入資料;比對所讀取的資料的是否相同於所寫入的資料;以及當所讀取的資料相同於所寫入的資料時,則判斷儲存於此實體區塊中對應主機寫入指令的寫入資料不存有錯誤位元,並且當所讀取的資料不相同於所寫入的資料時,則判斷儲存於此實體區塊中對應主機寫入指令的寫入資料存有錯誤位元。
在本發明之一實施例中,上述之快閃記憶體晶片具有一錯誤校正單元,並且上述之向快閃記憶體晶片傳送指令來判斷儲存於此實體區塊中的資料是否存有錯誤位元的步驟包括:向快閃記憶體晶片傳送一寫入確認指令;以及透過此錯誤校正單元依據寫入確認指令來判斷儲存於此實體區塊中的資料是否具有錯誤位元。
本發明範例實施例提出一種快閃記憶體控制器,用於將來自於主機系統的資料寫入至快閃記憶體晶片中,其中此快閃記憶體晶片包括多個實體區塊。本快閃記憶體控制器包括微處理器單元、快閃記憶體介面單元、主機介面單元與記憶體管理單元。快閃記憶體介面單元耦接至微處理器單元,並且用以耦接至上述快閃記憶體晶片。主機介面單元耦接至微處理器單元,用以耦接至主機系統並且從主機系統中接收主機寫入指令以及對應此主機寫入指令的寫入資料。記憶體管理單元耦接至微處理器單元,用以在執行此主機寫入指令期間向快閃記憶體晶片傳送一資料程式化指令來將寫入資料寫入至其中一個實體區塊中。此外,記憶體管理單元在執行此主機寫入指令期間向快閃記憶體晶片傳送一指令來判斷儲存於此實體區塊中的至少部分資料是否存有錯誤位元。
在本發明之一實施例中,上述之快閃記憶體控制器更包括一錯誤校正單元,其中記憶體管理單元在執行此主機寫入指令期間向快閃記憶體晶片傳送一讀取指令來從此實體區塊中讀取資料,並且此錯誤校正單元依據所讀取的資料來判斷儲存於此實體區塊中的資料是否具有錯誤位元。
在本發明之一實施例中,上述之記憶體管理單元僅判斷儲存於上述其中一個實體區塊中對應主機寫入指令的寫入資料是否存有錯誤位元。
在本發明之一實施例中,每一實體區塊具有多個實體頁面,並且當儲存於此實體區塊內的其中一個實體頁面中的資料存有錯誤位元並且此錯誤位元的數目超過此錯誤校正單元的最大錯誤校正位元數時,則上述記憶體管理單元將儲存於此實體區塊內其他實體頁面中的資料搬移至另一個實體區塊,並且將此實體區塊標記為一壞實體區塊。
在本發明之一實施例中,當存有錯誤位元的實體頁面中的資料為對應主機寫入指令的寫入資料時,則記憶體管理單元向主機系統傳送一寫入錯誤訊息。
在本發明之一實施例中,每一實體區塊具有多個實體頁面,並且當儲存於此實體區塊內的其中一個實體頁面的資料存有錯誤位元,同時此錯誤位元的數目超過錯誤位元門檻值且未超過此錯誤校正單元的最大錯誤校正位元數時,則上述記憶體管理單元將儲存於此實體區塊中的資料搬移至另一個實體區塊,並且將此實體區塊標記為一壞實體區塊。
在本發明之一實施例中,每一實體區塊具有多個實體頁面,並且當儲存於此實體區塊內的其中一個實體頁面的資料存有錯誤位元並且此錯誤位元的數目未超過一錯誤位元門檻值時,則上述記憶體管理單元將此實體區塊標記為一不可靠實體區塊。
在本發明之一實施例中,上述之記憶體管理單元使用一不可靠實體區塊記錄表來記錄上述不可靠實體區塊。
在本發明之一實施例中,上述之記憶體管理單元向快閃記憶體晶片傳送一讀取指令來從此實體區塊中讀取對應主機寫入指令的寫入資料,並且比對所讀取的資料的是否相同於所寫入的資料,其中當所讀取的資料相同於所寫入的資料時,則上述記憶體管理單元判斷儲存於此實體區塊內對應主機寫入指令的寫入資料不存有錯誤位元,並且當所讀取的資料不相同於所寫入的資料時,則上述記憶體管理單元判斷儲存於此實體區塊內對應主機寫入指令的寫入資料存有錯誤位元。
在本發明之一實施例中,上述之快閃記憶體晶片具有一錯誤校正單元,其中上述記憶體管理單元向快閃記憶體晶片傳送一寫入確認指令,並且此錯誤校正單元依據寫入確認指令來判斷儲存於此實體區塊中的資料是否具有錯誤位元。
本範例實施例提出一種快閃記憶體儲存系統,其包括快閃記憶體晶片、連接器與快閃記憶體控制器。快閃記憶體晶片具有多個實體區塊。連接器用以至主機系統並且從主機系統中接收主機寫入指令以及對應此主機寫入指令的寫入資料。快閃記憶體控制器耦接至快閃記憶體晶片與連接器,用以在執行此主機寫入指令期間向快閃記憶體晶片傳送一資料程式化指令來將寫入資料寫入至其中一個實體區塊中。此外,快閃記憶體控制器在執行此主機寫入指令期間向快閃記憶體晶片傳送一指令來判斷儲存於此實體區塊中的至少部分資料是否存有錯誤位元。
在本發明之一實施例中,上述之快閃記憶體控制器更包括一錯誤校正單元,其中上述快閃記憶體控制器在執行主機寫入指令期間向快閃記憶體晶片傳送一讀取指令來從此實體區塊中讀取資料,並且此錯誤校正單元依據所讀取的資料來判斷儲存於此實體區塊中的資料是否具有錯誤位元。
在本發明之一實施例中,上述之快閃記憶體控制器僅判斷儲存於此實體區塊中對應主機寫入指令的寫入資料是否存有錯誤位元。
在本發明之一實施例中,每一實體區塊具有多個實體頁面,並且當儲存於此實體區塊的其中一個實體頁面中的資料存有錯誤位元並且此錯誤位元的數目超過此錯誤校正單元的最大錯誤校正位元數時,則上述快閃記憶體控制器將儲存於此實體區塊內其他實體頁面中的資料搬移至另一個實體區塊,並且將此實體區塊標記為一壞實體區塊。
在本發明之一實施例中,當存有錯誤位元的實體區塊中的資料為對應主機寫入指令的寫入資料時,快閃記憶體控制器向主機系統傳送一寫入錯誤訊息。
在本發明之一實施例中,每一實體區塊具有多個實體頁面,並且當儲存於此實體區塊內的其中一個實體頁面中的資料存有錯誤位元,同時此錯誤位元的數目超過一錯誤位元門檻值且未超過此錯誤校正單元的最大錯誤校正位元數時,則上述快閃記憶體控制器將儲存於此實體區塊中的資料搬移至另一個實體區塊,並且將此實體區塊標記為一壞實體區塊。
在本發明之一實施例中,每一實體區塊具有多個實體頁面,並且當儲存於此實體區塊內的其中一個實體頁面中的資料存有錯誤位元並且此錯誤位元的數目未超過一錯誤位元門檻值時,則上述快閃記憶體控制器將此實體區塊標記為一不可靠實體區塊。
在本發明之一實施例中,上述之快閃記憶體控制器使用一不可靠實體區塊記錄表來記錄上述不可靠實體區塊。
在本發明之一實施例中,上述之快閃記憶體控制器向快閃記憶體晶片傳送一讀取指令來從此實體區塊中讀取對應主機寫入指令的寫入資料,並且比對所讀取的資料是否相同於所寫入的資料,其中當所讀取的資料相同於所寫入的資料時,則上述快閃記憶體控制器判斷儲存於此實體區塊中對應主機寫入指令的寫入資料不存有錯誤位元,並且當所讀取的資料不相同於所寫入的資料時,則上述快閃記憶體控制器判斷儲存於此實體區塊中對應主機寫入指令的寫入資料存有錯誤位元。
在本發明之一實施例中,上述之快閃記憶體晶片具有一錯誤校正單元,其中上述快閃記憶體控制器向快閃記憶體晶片傳送一寫入確認指令,並且此錯誤校正單元依據寫入確認指令來判斷儲存於此實體區塊中的資料是否具有錯誤位元。
基於上述,本發明範例實施例的資料寫入方法在執行主機寫入指令時會判斷寫入至快閃記憶體中之資料是否存有錯誤位元,由此確保資料的正確性。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
快閃記憶體儲存裝置一般而言包括快閃記憶體晶片與控制器(亦稱,控制電路)。通常快閃記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至快閃記憶體儲存裝置或從快閃記憶體儲存裝置中讀取資料。另外,亦有快閃記憶體儲存裝置是包括嵌入式快閃記憶體與可執行於主機系統上以實質地作為此嵌入式快閃記憶體之控制器的軟體。
[第一範例實施例]
圖1A是根據本發明第一範例實施例所繪示的使用快閃記憶體儲存裝置的主機系統。
請參照圖1A,主機系統1000包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,快閃記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的處理主機系統1000可將資料寫入至快閃記憶體儲存裝置100或從快閃記憶體儲存裝置100中讀取資料。例如,快閃記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,快閃記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖1D是繪示圖1A所示的快閃記憶體儲存裝置100的概要方塊圖。
請參照圖1D,快閃記憶體儲存裝置100包括連接器102、快閃記憶體控制器104與快閃記憶體晶片106。
連接器102是耦接至快閃記憶體控制器104並且用以耦接至主機系統1000。在本範例實施例中,連接器102為串列式進階技術附加裝置(Serial Advanced Technology Attachment,SATA)連接器。然而,必須瞭解的是本發明不限於此,連接器102亦可以是並列式進階技術附加裝置(Parallel Advanced Technology Attachment,PATA)連接器、通用序列匯流排(Universal Serial Bus,USB)連接器、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394連接器、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)連接器、安全數位(secure digital,SD)介面連接器、記憶棒(Memory Sick,MS)介面連接器、多媒體儲存卡(Multi Media Card,MMC)介面連接器、小型快閃(Compact Flash,CF)介面連接器、整合式驅動電子介面(Integrated Device Electronics,IDE)連接器或其他適合的連接器。
快閃記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在快閃記憶體晶片106中進行資料的寫入、讀取與抹除等運作。快閃記憶體控制器104包括微處理器單元202、記憶體管理單元204、主機介面單元206、快閃記憶體介面單元208與錯誤校正單元210。
微處理器單元202為快閃記憶體控制器104的主控單元,用以與記憶體管理單元204、主機介面單元206、快閃記憶體介面單元208與錯誤校正單元210等協同合作以進行快閃記憶體儲存裝置100的各種運作。
記憶體管理單元204是耦接至微處理器單元202,用以執行根據本範例實施例的資料寫入機制與區塊管理機制,記憶體管理單元204的運作將於以下配合圖式作詳細說明。
在本範例實施例中,記憶體管理單元204是以一韌體型式實作在快閃記憶體控制器104中。例如,將包括多個控制指令的記憶體管理單元204燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中並且將此程式記憶體嵌入在快閃記憶體控制器104中,當快閃記憶體儲存裝置100運作時,記憶體管理單元204的多個控制指令會由微處理器單元202來執行以完成根據本發明實施例的資料寫入機制與區塊管理機制。
在本發明另一範例實施例中,記憶體管理單元204的控制指令亦可以程式碼型式儲存於快閃記憶體晶片106的特定區域(例如,快閃記憶體晶片中專用於存放系統資料的系統區)中。同樣的,當快閃記憶體儲存裝置100運作時,記憶體管理單元204的多個控制指令會由微處理器單元202來執行。此外,在本發明另一範例實施例中,記憶體管理單元204亦可以一硬體型式實作在快閃記憶體控制器104中。
主機介面單元206是耦接至微處理器單元202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面單元206來傳送至微處理器單元202。在本範例實施例中,主機介面單元206是對應連接器204為SATA介面。然而,必須瞭解的是本發明不限於此,主機介面單元210亦可以是PATA介面、USB介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、MMC介面、CF介面、IDE介面或其他適合的資料傳輸介面。
快閃記憶體介面單元208是耦接至微處理器單元202並且用以存取快閃記憶體晶片106。也就是說,欲寫入至快閃記憶體晶片106的資料會經由快閃記憶體介面單元208轉換為快閃記憶體晶片106所能接受的格式。
錯誤校正單元210是耦接至微處理器單元202並且用以執行一錯誤校正程序以確保資料的正確性。具體來說,當記憶體管理單元204從主機系統1000中接收到主機寫入指令時,錯誤校正單元210會為對應此主機寫入指令的寫入資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理單元204會將此寫入資料與對應的錯誤校正碼寫入至快閃記憶體晶片106中。之後,當記憶體管理單元204從快閃記憶體晶片106中讀取資料時會同時讀取此資料對應的錯誤校正碼,並且錯誤校正單元210會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。在本範例實施例中,錯誤校正單元210的最大錯誤校正位元數為26。也就是說,在資料的錯誤位元數不超過26的情況下,錯誤校正單元210能夠偵測此些錯誤位元並且將資料進行校正。必須瞭解的是,本發明不限於此,錯誤校正單元的最大錯誤校正位元數可以是任何適當的數值,例如4個位元、16個位元或64個位元。
在本發明另一範例實施例中,快閃記憶體控制器亦可更包括其他功能模組。圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的概要方塊圖。
請參照圖2,除了微處理器單元202、記憶體管理單元204、主機介面單元206與快閃記憶體介面單元208之外,快閃記憶體控制器104'更包括緩衝記憶體302與電源管理單元304。
緩衝記憶體302是耦接至微處理器單元202並且用以暫存來自於主機系統1000的資料與指令或來自於快閃記憶體晶片106的資料。
電源管理單元304是耦接至微處理器單元202並且用以控制快閃記憶體儲存裝置100的電源。
快閃記憶體晶片106是耦接至快閃記憶體控制器104並且用以儲存資料。快閃記憶體晶片106具有實體區塊122-(0)~122-(N)。實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊具有數個實體頁面(page)。在本範例實施例中,實體頁面為程式化的最小單元。換言之,實體頁面為寫入資料或讀取資料的最小單元。每一實體頁面通常包括使用者資料區與冗餘區。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤檢查與校正碼)。在本範例實施例中,快閃記憶體晶片106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片。然而,本發明不限於此,快閃記憶體晶片106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片。
圖3是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖,並且圖4A~4C是根據本發明第一範例實施例所繪示之實體區塊的運作示意圖。
請參照圖4A~4C,快閃記憶體晶片106的記憶胞僅能從“1”程式化為“0”,因此要更新實體區塊內的資料時必須先抹除實體區塊內的資料。然而,快閃記憶體的寫入是以
頁面為單位,而抹除是以實體區塊為單位,所以在本範例實施例中,實體區塊會以輪替方式來儲存資料。
具體來說,記憶體管理單元204會將實體區塊122-(0)~122-(N)邏輯地分組為系統區(system area)302、資料區(data area)304、備用區(spare area)306與取代區(replacement area)308。
邏輯上屬於系統區302的實體區塊122-(0)~122-(S)是用以記錄系統資料,此系統資料包括關於快閃記憶體晶片的製造商與型號、每一快閃記憶體晶片的區域數、每一區域的實體區塊的數目、每一實體區塊的頁面數等。
邏輯上屬於資料區304的實體區塊122-(S+1)~122-(D)用以儲存使用者的資料,一般來說就是主機系統1000所存取之邏輯區塊所映射的實體區塊。也就是說,資料區的實體區塊為儲存有效資料的單元。
邏輯上屬於備用區306的實體區塊122-(D+1)~122-(A)是用以輪替資料區中的實體區塊,因此在備用區中的實體區塊為空或可使用的單元,即無記錄資料或標記為已沒用的無效資料。也就是說,資料區與備用區的實體區塊會以輪替方式來儲存主機系統1000對快閃記憶體儲存裝置100寫入的資料。
邏輯上屬於取代區308中的實體區塊122-(A+1)~122-(N)是替代實體區塊。例如,快閃記憶體晶片130於出廠時會預留4%的實體區塊作為更換使用。也就是說,當系統區302、資料區304與備用區306中的實體區塊損毀時,預留於取代區308中的實體區塊可用以取代損壞的實體區塊(即,壞實體區塊(bad block))。因此,倘若取代區308中仍存有可用之實體區塊且發生實體區塊損毀時,記憶體管理模組110b會從取代區308中提取可用的實體區塊來更換損毀的實體區塊。倘若取代區308中無可用之實體區塊且發生實體區塊損毀時,則快閃記憶體儲存裝置100將會被宣告為寫入保護(write protect),而無法再寫入資料。
由於快閃記憶體儲存裝置100是以輪替方式儲存主機系統1000欲儲存之資料,因此快閃記憶體控制器104會提供邏輯區塊350-(0)~350-(H)給主機系統1000以進行資料存取,並且維護邏輯位址-實體位址映射表來記錄邏輯區塊350-(0)~350-H與實體區塊122-(0)~122-(N)之間的映射關係。
例如,當主機系統欲寫入資料至邏輯區塊350-(0)時,快閃記憶體控制器104透過邏輯位址-實體位址映射表得知邏輯區塊350-(0)目前是映射邏輯上屬於資料區304的實體區塊122-(S+1)。因此,記憶體管理單元204會對實體區塊122-(S+1)中的資料進行更新,期間,快閃記憶體控制器104會從備用區306中提取實體區塊122-(D+1)來輪替資料區304的實體區塊122-(S+1)。然而,當記憶體管理單元204將新資料寫入至實體區塊122-(D+1)的同時,記憶體管理單元204不會立刻將實體區塊122-(S+1)中的所有有效舊資料搬移至實體區塊122-(D+1)而抹除實體區塊122-(S+1)。具體來說,記憶體管理單元204會將實體區塊122-(S+1)中欲寫入頁面之前的有效舊資料(即,實體頁面P0與P1)複製至實體區塊122-(D+1)(如圖4A所示),並且將新資料(即,實體區塊122-(D+1)的實體頁面P2)寫入至實體區塊122-(D+1)(如圖4B所示)。此時,快閃記憶體控制器104即完成寫入的動作,並回應主機系統1000已完成寫入指令。因為,實體區塊122-(S+1)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊122-(S+1)中的所有有效舊資料搬移至實體區塊122-(D+1)可能會造成無謂的搬移。在此案例中,實體區塊122-(S+1)與實體區塊122-(D+1)的內容整合起來才是所映射邏輯區塊350-0的完整內容。在此,此時實體區塊122-(S+1)與實體區塊122-(D+1)稱為母子區塊,而母子區塊的組數是依據快閃記憶體控制器104中緩衝記憶體的大小而定,而暫時地維持此種母子區塊暫態關係的動作稱為開啟(open)母子區塊。
之後,當需要將實體區塊122-(S+1)與實體區塊122-(D+1)的內容真正合併時,快閃記憶體控制器104才會將實體區塊122-(S+1)與實體區塊122-(D+1)整併為一個實體區塊,由此提升區塊的使用效率,此合併的動作稱為關閉(close)母子區塊。
例如,如圖4C所示,當主機系統1000傳送一寫入指令至快閃記憶體控制器104以在另一邏輯區塊儲存資料,並且記憶體管理單元204判斷開啟母子區塊的組數已達系統設計的上限而需合併實體區塊122-(S+1)與實體區塊122-(D+1)時,記憶體管理單元204會將實體區塊122-(S+1)中剩餘的有效舊資料(即,實體頁面P3~PN)複製至實體區塊122-(D+1),然後將實體區塊122-(S+1)抹除並關聯為備用區306,同時,將實體區塊122-(D+1)關聯為資料區304,並且在邏輯位址-實體位址映射表中將邏輯區塊350-0的映射更改為實體區塊122-(D+1),由此完成關閉母子區塊的動作。
在本範例實施例中,當主機介面單元206接收到來自於主機系統1000的主機寫入指令以及對應此主機寫入指令的寫入資料時,記憶體管理單元204會向快閃記憶體晶片106發送資料程式化指令以將來自於主機系統1000的寫入資料寫入至實體區塊。具體來說,每一邏輯區塊350-(0)~350-(H)會包括多個邏輯頁面,且每一邏輯頁面是由數個邏輯位址所組成,因此當主機系統1000在邏輯位址中存取資料時,記憶體管理單元204就可依據所存取之邏輯位址所屬的邏輯區塊來在實體區塊的實體頁面中實際地讀取或寫入資料。在本範例實施例中,記憶體管理單元204是使用邏輯運算式將此主機寫入指令中所指示的邏輯位址轉換至映射的邏輯區塊,並且依據邏輯位址-實體位址映射表來將所映射之邏輯區塊映射至實體區塊。
特別是,記憶體管理單元204在將寫入資料寫入至實體區塊的實體頁面後,記憶體管理單元204會向快閃記憶體晶片106發送讀取指令以將剛剛所寫入的資料讀取出來,並且錯誤校正單元210會對所讀取的資料執行錯誤校正程序來判斷寫入運作是否有發生錯誤。例如,當記憶體管理單元204使用資料程式化指令將寫入資料寫入至實體區塊122-(D+1)的實體頁面P2之後,記憶體管理單元204會立即下達讀取指令來讀取儲存於實體區塊122-(D+1)的實體頁面P2中的資料,並且錯誤校正單元210會對所讀取的資料執行錯誤校正程序,其中當錯誤校正單元210判斷所讀取的資料存有錯誤位元時,則記憶體管理單元204會判定寫入運作有發生錯誤且儲存在實體區塊122-(D+1)的實體頁面P2中的資料存有錯誤位元。也就是說,在本範例實施例中,在快閃記憶體控制器104執行主機寫入指令期間,記憶體管理單元204除了將寫入資料寫入至快閃記憶體晶片106之外,記憶體管理單元204還會將所寫入的資料讀取出來以驗證資料的正確性。在此,所謂“執行主機寫入指令期間”是指從主機系統1000向快閃記憶體儲存裝置100下達主機寫入指令到快閃記憶體控制器104回應主機系統1000確認訊息(即,告知主機系統已完成寫入的訊息)的一段期間。
例如,在執行主機寫入指令期間,當錯誤校正單元210判斷從實體區塊122-(D+1)的實體頁面P2中所讀取的資料存有錯誤位元且此錯誤位元的數目超過錯誤校正單元210的最大錯誤校正位元數(即,錯誤校正單元210無法將錯誤位元進行更正)時,記憶體管理單元204會將實體區塊122-(D+1)內其他實體頁面中的有效資料搬移至另一個實體區塊(例如,實體區塊122-(D+2))中,並且將實體區塊122-(D+1)標記為壞實體區塊。同時,記憶體管理單元204會向主機系統1000傳送一寫入錯誤訊息。例如,主機系統1000可依據此寫入錯誤訊息,重新傳送主機寫入指令與對應的寫入資料。
此外,在錯誤校正單元210判斷從實體區塊122-(D+1)的實體頁面P2中所讀取的資料存有錯誤位元的例子中,倘若此錯誤位元的數目未超過錯誤校正單元210的最大錯誤校正位元數(即,錯誤校正單元210可將錯誤位元進行更正)時,則記憶體管理單元204會依據錯誤校正單元210的錯誤校正結果來判斷此錯誤位元的數目是否超過一錯誤位元門檻值。另外,倘若此錯誤位元的數目超過錯誤位元門檻值時,則記憶體管理單元204會將實體區塊122-(D+1)內的所有有效資料搬移至另一個實體區塊(例如,實體區塊122-(D+2))中,並且將實體區塊310(D+1)標記為壞實體區塊。在此,錯誤位元門檻值是依據欲達到的可靠度來設定,其可以是任何適當的數值。具體來說,儘管所讀取之資料的錯誤位元的數目未超過錯誤校正單元210的最大錯誤校正位元數,然而,當所儲存之資料的錯誤位元的數目過多時,此實體區塊亦處於相當不可靠的狀態,因此,記憶體管理單元204會將此實體區塊標記為壞實體區塊。在本範例實施例中,錯誤位元門檻值是設定為錯誤校正單元210的最大錯誤校正位元數的50%。
再者,例如,在記憶體管理單元204依據錯誤校正單元210的錯誤校正結果判斷從實體區塊122-(D+1)的實體頁面P2中所讀取的資料之錯誤位元的數目未超過錯誤位元門檻值的例子中,記憶體管理單元204會將實體區塊122-(D+1)標記為不可靠實體區塊。具體來說,記憶體管理單元204會使用一不可靠實體區塊記錄表來記錄關於實體區塊122-(D+1)的資訊。特別是,後續當記憶體管理單元204執行寫入運作而以上述輪替方式來儲存資料時,被記錄於不可靠實體區塊記錄表中的實體區塊將不會優先被使用。例如,記憶體管理單元204會先使用取代區308中的實體區塊來儲存資料,並且當壞實體區塊過多而無法執行寫入運作來寫入資料時,記憶體管理單元204才會使用不可靠實體區塊記錄表中的實體區塊來寫入資料。
值得一提的是,在本範例實施例中,當記憶體管理單元204對實體區塊執行寫入運作時,記憶體管理單元204會將剛剛所寫入的資料讀取出來以確認所寫入的資料是否正確。然而,本發明不限於此,在本發明另一範例實施例中,記憶體管理單元204亦可從所寫入實體區塊一併讀取其他頁面中所儲存之資料,由此確認實體區塊的狀態。
圖5是根據本發明第一範例實施例所繪示資料寫入方法的流程圖。
請參照圖5,在步驟S501中快閃記憶體控制器104從主機系統1000中接收主機寫入指令與對應此主機寫入指令的邏輯位址與寫入資料。
在步驟S503中,快閃記憶體控制器104的記憶體管理單元204會依據對應主機寫入的邏輯位址所對映的邏輯區塊使用資料程式化指令將寫入資料寫入至快閃記憶體晶片106的實體區塊的實體頁面(例如,實體區塊122-(D+1)的實體頁面P2)中。
之後,在步驟S505中,記憶體管理單元204會向快閃記憶體晶片106發送讀取指令以從剛剛被寫入之實體區塊(例如,實體區塊122-(D+1)的實體頁面P2)中讀取資料,並且在步驟S507中錯誤校正單元210會對所讀取之資料進行錯誤校正程序以判斷所讀取之資料是否存有錯誤位元。
倘若在步驟S507中錯誤校正單元210判斷所讀取之資料無存有錯誤位元時,則結束圖5所示的資料寫入流程。
倘若在步驟S507中錯誤校正單元210判斷所讀取之資料存有錯誤位元時,則在步驟S509中記憶體管理單元204會依據錯誤校正的結果判斷錯誤位元的數目是否超過最大錯誤校正位元數。倘若錯誤位元的數目超過最大錯誤校正位元數時,則在步驟S511中記憶體管理單元204會將此實體區塊內其他正確的資料複製到另一實體區塊(例如,實體區塊122-(D+2)),並且在步驟S513中將此實體區塊(即,在步驟S503中被寫入資料的實體區塊)標記為壞實體區塊。接著,在步驟S515中向主機系統1000傳送對應此主機寫入指令的寫入錯誤訊息並結束圖5所示的資料寫入流程。
倘若錯誤位元的數目未超過最大錯誤校正位元數時,則在步驟S517中記憶體管理單元204會依據錯誤校正的結果判斷錯誤位元的數目是否超過錯誤位元門檻值。倘若錯誤位元的數目超過錯誤位元門檻值時,則在步驟S519中記憶體管理單元204會將此實體區塊內所有資料複製到另一實體區塊(例如,實體區塊310-(D+2))。接著,在步驟S521中將此實體區塊(即,在步驟S503中被寫入資料的實體區塊)標記為壞實體區塊並結束圖5所示的資料寫入流程。
倘若錯誤位元的數目未超過錯誤位元門檻值時,則在步驟S523中記憶體管理單元204會將此實體區塊(即,在步驟S503中被寫入資料的實體區塊)標記為不可靠實體區塊並結束圖5所示的資料寫入流程。如上所述,例如,在步驟523中記憶體管理單元204使用不可靠實體區塊記錄表來記錄標記為不可靠實體區塊之實體區塊的資訊。
值得一提的是,在本範例實施例中,在執行主機寫入指令時記憶體管理單元204會從剛剛寫入資料的實體頁面中讀取資料並由錯誤校正單元210來執行錯誤校正程序以判斷所讀取之資料是否存有錯誤位元。然而,本發明不限於此,在本發明另一範例實施例中,記憶體管理單元204亦可將所讀取之資料與從主機系統1000中所接收之寫入資料來一個位元接著一個位元來逐一比對,以判斷所讀取之資料是否存有錯誤位元及其存有之錯誤位元的個數。
[第二範例實施例]
圖6是根據本發明第二範例實施例所繪示的快閃記憶體儲存裝置的概要方塊圖。
快閃記憶體裝置600是透過資料傳輸介面1110與主機系統1000的其他元件耦接,並且藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作,主機系統1000可將資料寫入至快閃記憶體儲存裝置600或從快閃記憶體儲存裝置600中讀取資料。同樣的,快閃記憶體儲存裝置600可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟1216,或者是如圖1C所示的SD卡1312、MMC卡1314、記憶棒1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
請參照圖6,快閃記憶體儲存裝置600包括連接器602、快閃記憶體控制器604與快閃記憶體晶片606。
連接器602是耦接至快閃記憶體控制器604並且用以耦接至主機系統1000。在本範例實施例中,連接器602為SATA連接器。然而,必須瞭解的是本發明不限於此,連接器602亦可以是PATA連接器、USB連接器、IEEE 1394連接器、PCI Express連接器、SD介面連接器、MS介面連接器、MMC介面連接器、CF介面連接器、IDE連接器或其他適合的連接器。
快閃記憶體控制器604會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在快閃記憶體晶片606中進行資料的寫入、讀取與抹除等運作。快閃記憶體控制器604包括微處理器單元612、記憶體管理單元614、主機介面單元616與快閃記憶體介面單元618。微處理器單元612、主機介面單元616與快閃記憶體介面單元618本質上是相同於微處理器單元202、主機介面單元206與快閃記憶體介面單元208,在此不重複描述。
記憶體管理單元614是耦接至微處理器單元612,用以執行根據本範例實施例的資料寫入機制與區塊管理機制,記憶體管理單元614的運作將於以下配合圖式作詳細說明。
在本範例實施例中,記憶體管理單元614是以一韌體型式實作在快閃記憶體控制器604中。例如,將包括多個控制指令的記憶體管理單元614燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中並且將此程式記憶體嵌入在快閃記憶體控制器604中,當快閃記憶體儲存裝置600運作時,記憶體管理單元614的多個控制指令會由微處理器單元612來執行以完成根據本發明實施例的資料寫入機制與區塊管理機制。
在本發明另一範例實施例中,記憶體管理單元614的控制指令亦可以程式碼型式儲存於快閃記憶體晶片606的特定區域(例如,快閃記憶體晶片中專用於存放系統資料的系統區)中。同樣的,當快閃記憶體儲存裝置600運作時,記憶體管理單元614的多個控制指令會由微處理器單元612來執行。此外,在本發明另一範例實施例中,記憶體管理單元614亦可以一硬體型式實作在快閃記憶體控制器604中。
快閃記憶體晶片606是耦接至快閃記憶體控制器604並且用以儲存資料。快閃記憶體晶片606是MLC NAND快閃記憶體晶片,其具有實體區塊122-(0)~122-(N)與錯誤校正單元620。在第二範例實施例中,實體區塊的配置與運作方式是相同於第一範例實施例,在此不再重複描述。
錯誤校正單元620用以執行錯誤校正程序以確保資料的正確性。具體來說,當記憶體管理單元614從主機系統1000中接收到主機寫入指令並且將資料寫入至快閃記憶體晶片606時,錯誤校正單元620會為所寫入之寫入資料產生對應的錯誤檢查與校正碼,並且所產生之錯誤檢查與校正碼會與此寫入資料一起寫入至實體區塊122-(0)~122-(N)中。之後,當記憶體管理單元614從快閃記憶體晶片606中讀取資料時錯誤校正單元620會依據所讀取之資料對應的錯誤校正碼來執行錯誤校正程序,以確認所讀取之資料的正確性。在本範例實施例中,錯誤校正單元620的最大錯誤校正位元數為26。也就是說,在資料的錯誤位元數不超過26的情況下,錯誤校正單元620能夠偵測此些錯誤位元並且將資料進行校正。必須瞭解的是,本發明不限於此,錯誤校正單元的最大錯誤校正位元數可以是任何適當的數值,例如4個位元、16個位元或64個位元。
特別是,記憶體管理單元614在將寫入資料寫入至實體區塊的實體頁面後,記憶體管理單元614會向快閃記憶體晶片606發送寫入確認指令以判斷剛剛所寫入之資料是否存有錯誤位元。具體來說,當快閃記憶體晶片606接收到寫入確認指令時,快閃記憶體晶片606會從剛剛所寫入實體頁面中讀取資料,由錯誤校正單元620執行錯誤校正程序以判斷所儲存之資料是否存有錯誤位元,並且快閃記憶體晶片606會將錯誤校正結果傳送給記憶體管理單元614,由此記憶體管理單元614可依據錯誤校正單元620的錯誤校正結果來判斷剛剛所寫入之資料是否存有錯誤位元。
例如,在執行主機寫入指令期間,在錯誤校正單元620判斷從實體區塊122-(D+1)的實體頁面P2中所讀取的資料存有錯誤位元且此錯誤位元的數目超過錯誤校正單元620的最大錯誤校正位元數(即,錯誤校正單元620無法將錯誤位元進行更正)的例子中,記憶體管理單元614會將實體區塊122-(D+1)內其他實體頁面中的有效資料搬移至另一個實體區塊(例如,實體區塊122-(D+2))中,並且將實體區塊122-(D+1)標記為壞實體區塊。同時,記憶體管理單元614會向主機系統1000傳送一寫入錯誤訊息。例如,主機系統1000可依據此寫入錯誤訊息,重新傳送主機寫入指令與對應的寫入資料。
此外,在錯誤校正單元620判斷從實體區塊122-(D+1)的實體頁面P2中所讀取的資料存有錯誤位元的例子中,倘若此錯誤位元的數目未超過錯誤校正單元620的最大錯誤校正位元數(即,錯誤校正單元620可將錯誤位元進行更正)時,則記憶體管理單元614會依據錯誤校正單元620的錯誤校正結果來判斷此錯誤位元的數目是否超過上述之錯誤位元門檻值,其中當此錯誤位元的數目超過錯誤位元門檻值時,記憶體管理單元614會將實體區塊122-(D+1)內的所有有效資料搬移至另一個實體區塊(例如,實體區塊122-(D+2))中,並且將實體區塊122-(D+1)標記為壞實體區塊。
再者,在記憶體管理單元614依據錯誤校正單元620的錯誤校正結果判斷從實體區塊122-(D+1)的實體頁面P2中所讀取的資料之錯誤位元的數目未超過錯誤位元門檻值的例子中,記憶體管理單元614會將實體區塊122-(D+1)標記為上述之不可靠實體區塊。
值得一提的是,在本範例實施例中,當記憶體管理單元614對實體區塊執行寫入運作時,記憶體管理單元614會確認所寫入的資料是否正確。然而,本發明不限於此,在本發明另一範例實施例中,記憶體管理單元614亦會確認其他頁面中所儲存之資料是否正確,由此確認實體區塊的狀態。
圖7是根據本發明第二範例實施例所繪示資料寫入方法的流程圖。
請參照圖7,在步驟S701中快閃記憶體控制器604從主機系統1000中接收主機寫入指令與對應此主機寫入指令的邏輯位址與寫入資料。
在步驟S703中,快閃記憶體控制器604的記憶體管理單元614會依據對應主機寫入的邏輯位址所對映的邏輯區塊使用資料程式化指令將寫入資料寫入至快閃記憶體晶片606的實體區塊的實體頁面(例如,實體區塊122-(D+1)的實體頁面P2)中。
之後,在步驟S705中,記憶體管理單元614會向快閃記憶體晶片606發送寫入確認指令,並且從快閃記體晶片606中接收到錯誤校正結果。接著,在步驟S707中記憶體管理單元614會依據錯誤校正結果來判斷剛剛寫入至實體頁面(例如,實體區塊122-(D+1)的實體頁面P2)的資料是否存有錯誤位元。
倘若在步驟S707中依據錯誤校正結果判斷剛剛所寫入之資料無存有錯誤位元時,則結束圖7所示的資料寫入流程。
倘若在步驟S707中判斷所寫入之資料存有錯誤位元時,則在步驟S709中記憶體管理單元614會依據錯誤校正結果判斷錯誤位元的數目是否超過最大錯誤校正位元數。倘若錯誤位元的數目超過最大錯誤校正位元數時,則在步驟S711中記憶體管理單元614會將此實體區塊內其他正確的資料複製到另一實體區塊(例如,實體區塊122-(D+2)),並且在步驟S713中將此實體區塊(即,在步驟S703中被寫入資料的實體區塊)標記為壞實體區塊。接著,在步驟S715中向主機系統1000傳送對應此主機寫入指令的寫入錯誤訊息並結束圖7所示的資料寫入流程。
倘若錯誤位元的數目未超過最大錯誤校正位元數時,則在步驟S717中記憶體管理單元614會依據錯誤校正結果判斷錯誤位元的數目是否超過錯誤位元門檻值。倘若錯誤位元的數目超過錯誤位元門檻值時,則在步驟S719中記憶體管理單元614會將此實體區塊內所有資料複製到另一實體區塊(例如,實體區塊122-(D+2))。接著,在步驟S721中將此實體區塊(即,在步驟S503中被寫入資料的實體區塊)標記為壞實體區塊並結束圖7所示的資料寫入流程。
倘若錯誤位元的數目未超過錯誤位元門檻值時,則在步驟S723中記憶體管理單元614會將此實體區塊(即,在步驟S703中被寫入資料的實體區塊)標記為不可靠實體區塊並結束圖7所示的資料寫入流程。
綜上所述,根據本發明範例實施例的資料寫入方法會在執行主機寫入指令期間判斷所寫入至實體頁面的資料是否存有錯誤位元,基此,可有效地確保所程式化之資料的正確性。此外,當資料存有錯誤位元時,依據發生錯誤的程度來標記實體區塊,由此避免再次使用有問題的實體區塊,以提升快閃記憶體儲存系統的可靠性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...快閃記憶體儲存裝置
102...連接器
104...快閃記憶體控制器
106...快閃記憶體晶片
122-(0)~122(N)...實體區塊
202...微處理器單元
204...記憶體管理單元
206...主機介面單元
208...快閃記憶體介面單元
210...錯誤校正單元
302...緩衝記憶體
304...電源管理單元
350-(0)~350-(H)...邏輯區塊
S501、S503、S505、S507、S509、S511、S513、S515、S517、S519、S521、S523...資料寫入步驟
600...快閃記憶體儲存裝置
602...連接器
604...快閃記憶體控制器
606...快閃記憶體晶片
612...微處理器單元
614...記憶體管理單元
616...主機介面單元
618...快閃記憶體介面單元
620...錯誤校正單元
S701、S703、S705、S707、S709、S711、S713、S715、S717、S719、S721、S723...資料寫入步驟
圖1A是根據本發明第一範例實施例繪示使用快閃記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與快閃記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與快閃記憶體儲存裝置的示意圖。
圖1D是繪示圖1A所示快閃記憶體儲存裝置的概要方塊圖。
圖2是根據本發明另一範例實施例所繪示的快閃記憶體控制器的概要方塊圖。
圖3是根據本發明第一範例實施例所繪示之快閃記憶體晶片的方塊圖。
圖4A~4C是根據本發明第一範例實施例所繪示之實體區塊的運作示意圖。
圖5是根據本發明第一範例實施例所繪示資料寫入方法的流程圖。
圖6是根據本發明第二範例實施例所繪示的快閃記憶體儲存裝置的概要方塊圖。
圖7是根據本發明第二範例實施例所繪示資料寫入方法的流程圖。
S501、S503、S505、S507、S509、S511、S513、S515、S517、S519、S521、S523...資料寫入步驟

Claims (30)

  1. 一種資料寫入方法,用於將來自於一主機系統的資料寫入至一快閃記憶體晶片中,其中該快閃記憶體晶片包括多個實體區塊,該資料寫入方法包括:配置一快閃記憶體控制器;從該主機系統中接收一主機寫入指令以及對應該主機寫入指令的寫入資料,並且藉由該快閃記憶體控制器執行該主機寫入指令;在執行該主機寫入指令期間向該快閃記憶體晶片傳送一資料程式化指令來將該寫入資料寫入至該些實體區塊之中的其中一個實體區塊內;以及在執行該主機寫入指令期間向該快閃記憶體晶片傳送一指令來判斷儲存於該其中一個實體區塊中的至少部分資料是否存有至少一錯誤位元。
  2. 如申請專利範圍第1項所述之資料寫入方法,其中該快閃記憶體控制器具有一錯誤校正單元,其中向該快閃記憶體晶片傳送該指令來判斷儲存於該其中一個實體區塊中的至少部分資料是否存有該至少一錯誤位元的步驟包括:向該快閃記憶體晶片傳送一讀取指令來從該其中一個實體區塊中讀取資料;以及透過該錯誤校正單元依據所讀取的資料來判斷儲存於該其中一個實體區塊中的資料是否具有該至少一錯誤位元。
  3. 如申請專利範圍第1項所述之資料寫入方法,其中判斷儲存於該其中一個實體區塊中的至少部分資料是否存有至少一錯誤位元的步驟包括:僅判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料是否存有該至少一錯誤位元。
  4. 如申請專利範圍第2項所述之資料寫入方法,其中每一實體區塊具有多個實體頁面且更包括:當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元並且該至少一錯誤位元的數目超過該錯誤校正單元的最大錯誤校正位元數時,則將儲存於該其中一個實體區塊內其他實體頁面中的資料搬移至該些實體區塊之中的另一個實體區塊,將該其中一個實體區塊標記為一壞實體區塊。
  5. 如申請專利範圍第2項所述之資料寫入方法,其中當該存有該至少一錯誤位元的實體區塊中的資料為對應該主機寫入指令的寫入資料時,藉由該快閃記憶體控制器向該主機系統傳送一寫入錯誤訊息。
  6. 如申請專利範圍第2項所述之資料寫入方法,其中每一實體區塊具有多個實體頁面且更包括:當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元,同時該至少一錯誤位元的數目超過一錯誤位元門檻值且未超過該錯誤校正單元的最大錯誤校正位元數時,則將儲存於該其中一個實體區塊中的資料搬移至該些實體區塊之中的另一個實體區塊,並且將該其中一個實體區塊標記為一壞實體區塊。
  7. 如申請專利範圍第2項所述之資料寫入方法,其中每一實體區塊具有多個實體頁面且更包括:當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元並且該至少一錯誤位元的數目未超過一錯誤位元門檻值時,則將該其中一個實體區塊標記為一不可靠實體區塊。
  8. 如申請專利範圍第7項所述之資料寫入方法,更包括使用一不可靠實體區塊記錄表來記錄該不可靠實體區塊。
  9. 如申請專利範圍第1項所述之資料寫入方法,其中向該快閃記憶體晶片傳送該指令來判斷儲存於該其中一個實體區塊中的資料是否存有該至少一錯誤位元的步驟包括:向該快閃記憶體晶片傳送一讀取指令來從該其中一個實體區塊中讀取對應該主機寫入指令的寫入資料;比對所讀取的資料是否相同於所寫入的資料;以及當所讀取的資料相同於所寫入的資料時,則判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料不存有該至少一錯誤位元,並且當所讀取的資料不相同於所寫入的資料時,則判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料存有該至少一錯誤位元。
  10. 如申請專利範圍第1項所述之資料寫入方法,其中該快閃記憶體晶片具有一錯誤校正單元,並且其中向該快閃記憶體晶片傳送該指令來判斷儲存於該其中一個實體區塊中的資料是否存有該至少一錯誤位元的步驟包括:向該快閃記憶體晶片傳送一寫入確認指令;以及透過該錯誤校正單元依據該寫入確認指令來判斷儲存於該其中一個實體區塊中的至少部分資料是否具有該至少一錯誤位元。
  11. 一種快閃記憶體控制器,用於將來自於一主機系統的資料寫入至一快閃記憶體晶片中,其中該快閃記憶體晶片包括多個實體區塊,該快閃記憶體控制器包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用以耦接至該快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以耦接至該主機系統,並且從該主機系統中接收一主機寫入指令以及對應該主機寫入指令的寫入資料;以及一記憶體管理單元,耦接至該微處理器單元,用以在執行該主機寫入指令期間向該快閃記憶體晶片傳送一資料程式化指令來將該寫入資料寫入至該些實體區塊之中的其中一個實體區塊內,其中該記憶體管理單元在執行該主機寫入指令期間向該快閃記憶體晶片傳送一指令來判斷儲存於該其中一個實體區塊中的至少部分資料是否存有至少一錯誤位元。
  12. 如申請專利範圍第11項所述之快閃記憶體控制器,更包括一錯誤校正單元,其中該記憶體管理單元在執行該主機寫入指令期間向該快閃記憶體晶片傳送一讀取指令來從該其中一個實體區塊中讀取資料,並且該錯誤校正單元依據所讀取的資料來判斷儲存於該其中一個實體區塊中的至少部分資料是否具有該至少一錯誤位元。
  13. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該記憶體管理單元僅判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料是否存有該至少一錯誤位元。
  14. 如申請專利範圍第12項所述之快閃記憶體控制器,其中每一實體區塊具有多個實體頁面,以及其中當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元並且該至少一錯誤位元的數目超過該錯誤校正單元的最大錯誤校正位元數時,則該記憶體管理單元將儲存於該其中一個實體區塊內其他實體頁面中的資料搬移至該些實體區塊之中的另一個實體區塊,將該其中一個實體區塊標記為一壞實體區塊。
  15. 如申請專利範圍第12項所述之快閃記憶體控制器,其中當該存有該至少一錯誤位元的實體區塊中的資料為對應該主機寫入指令的寫入資料時,該記憶體管理單元向該主機系統傳送一寫入錯誤訊息。
  16. 如申請專利範圍第12項所述之快閃記憶體控制器,其中每一實體區塊具有多個實體頁面,以及其中當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元,同時該至少一錯誤位元的數目超過一錯誤位元門檻值且未超過該錯誤校正單元的最大錯誤校正位元數時,則該記憶體管理單元將儲存於該其中一個實體區塊中的資料搬移至該些實體區塊之中的另一個實體區塊,並且將該其中一個實體區塊標記為一壞實體區塊。
  17. 如申請專利範圍第12項所述之快閃記憶體控制器,其中每一實體區塊具有多個實體頁面,其中當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元並且該至少一錯誤位元的數目未超過一錯誤位元門檻值時,則該記憶體管理單元將該其中一個實體區塊標記為一不可靠實體區塊。
  18. 如申請專利範圍第17項所述之快閃記憶體控制器,其中該記憶體管理單元使用一不可靠實體區塊記錄表來記錄該不可靠實體區塊。
  19. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該記憶體管理單元向該快閃記憶體晶片傳送一讀取指令來從該其中一個實體區塊中讀取對應該主機寫入指令的寫入資料,並且比對所讀取的資料是否相同於所寫入的資料,其中當所讀取的資料相同於所寫入的資料時,則該記憶體管理單元判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料不存有該至少一錯誤位元,並且當所讀取的資料不相同於所寫入的資料時,則該記憶體管理單元判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料存有該至少一錯誤位元。
  20. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該快閃記憶體晶片具有一錯誤校正單元,其中該記憶體管理單元向該快閃記憶體晶片傳送一寫入確認指令,並且該錯誤校正單元依據該寫入確認指令來判斷儲存於該其中一個實體區塊中的至少部分資料是否具有該至少一錯誤位元。
  21. 一種快閃記憶體儲存系統,包括:一快閃記憶體晶片,具有多個實體區塊;一連接器,用以耦接至一主機系統並且從該主機系統中接收一主機寫入指令以及對應該主機寫入指令的寫入資料;以及一快閃記憶體控制器,耦接至該快閃記憶體晶片與該連接器,用以在執行該主機寫入指令期間向該快閃記憶體晶片傳送一資料程式化指令來將該寫入資料寫入至該些實體區塊之中的其中一個實體區塊內,其中該快閃記憶體控制器在執行該主機寫入指令期間向該快閃記憶體晶片傳送一指令來判斷儲存於該其中一個實體區塊中的至少部分資料是否存有至少一錯誤位元。
  22. 如申請專利範圍第21項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更包括一錯誤校正單元,其中該快閃記憶體控制器在執行該主機寫入指令期間向該快閃記憶體晶片傳送一讀取指令來從該其中一個實體區塊中讀取資料,並且該錯誤校正單元依據所讀取的資料來判斷儲存於該其中一個實體區塊中的資料是否具有該至少一錯誤位元。
  23. 如申請專利範圍第21項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器僅判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料是否存有該至少一錯誤位元。
  24. 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中每一實體區塊具有多個實體頁面,以及其中當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元並且該至少一錯誤位元的數目超過該錯誤校正單元的最大錯誤校正位元數時,則該快閃記憶體控制器將儲存於該其中一個實體區塊內其他實體頁面中的資料搬移至該些實體區塊之中的另一個實體區塊,將該其中一個實體區塊標記為一壞實體區塊。
  25. 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中當該存有該至少一錯誤位元的實體區塊中的資料為對應該主機寫入指令的寫入資料時,該快閃記憶體控制器向該主機系統傳送一寫入錯誤訊息。
  26. 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中每一實體區塊具有多個實體頁面,以及其中當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元,同時該至少一錯誤位元的數目超過一錯誤位元門檻值且未超過該錯誤校正單元的最大錯誤校正位元數時,則該快閃記憶體控制器將儲存於該其中一個實體區塊中的資料搬移至該些實體區塊之中的另一個實體區塊,並且將該其中一個實體區塊標記為一壞實體區塊。
  27. 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中每一實體區塊具有多個實體頁面,其中當儲存於該其中一個實體區塊內的其中一個實體頁面中的資料存有該至少一錯誤位元並且該至少一錯誤位元的數目未超過一錯誤位元門檻值時,則該快閃記憶體控制器將該其中一個實體區塊標記為一不可靠實體區塊。
  28. 如申請專利範圍第27項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器使用一不可靠實體區塊記錄表來記錄該不可靠實體區塊。
  29. 如申請專利範圍第21項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器向該快閃記憶體晶片傳送一讀取指令來從該其中一個實體區塊中讀取對應該主機寫入指令的寫入資料,並且比對所讀取的資料是否相同於所寫入的資料,其中當所讀取的資料相同於所寫入的資料時,則該快閃記憶體控制器判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料不存有該至少一錯誤位元,並且當所讀取的資料不相同於所寫入的資料時,則該快閃記憶體控制器判斷儲存於該其中一個實體區塊中對應該主機寫入指令的寫入資料存有該至少一錯誤位元。
  30. 如申請專利範圍第21項所述之快閃記憶體儲存系統,其中該快閃記憶體晶片具有一錯誤校正單元,其中該快閃記憶體控制器向該快閃記憶體晶片傳送一寫入確認指令,並且該錯誤校正單元依據該寫入確認指令來判斷儲存於該其中一個實體區塊中的至少部分資料是否具有該至少一錯誤位元。
TW098134508A 2009-10-12 2009-10-12 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 TWI408688B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW098134508A TWI408688B (zh) 2009-10-12 2009-10-12 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
US12/622,084 US8806301B2 (en) 2009-10-12 2009-11-19 Data writing method for a flash memory, and controller and storage system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW098134508A TWI408688B (zh) 2009-10-12 2009-10-12 用於快閃記憶體的資料寫入方法及其控制器與儲存系統

Publications (2)

Publication Number Publication Date
TW201113887A TW201113887A (en) 2011-04-16
TWI408688B true TWI408688B (zh) 2013-09-11

Family

ID=43855802

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098134508A TWI408688B (zh) 2009-10-12 2009-10-12 用於快閃記憶體的資料寫入方法及其控制器與儲存系統

Country Status (2)

Country Link
US (1) US8806301B2 (zh)
TW (1) TWI408688B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
JP5614337B2 (ja) * 2011-03-08 2014-10-29 富士通セミコンダクター株式会社 メモリの制御方法、メモリの制御回路、記憶装置、及び電子機器
JP6275427B2 (ja) * 2013-09-06 2018-02-07 株式会社東芝 メモリ制御回路およびキャッシュメモリ
KR20150050879A (ko) * 2013-11-01 2015-05-11 에스케이하이닉스 주식회사 반도체 메모리 장치, 메모리 시스템 및 그 동작 방법
US9443616B2 (en) * 2014-04-02 2016-09-13 Seagate Technology Llc Bad memory unit detection in a solid state drive
WO2016162916A1 (ja) * 2015-04-06 2016-10-13 株式会社日立製作所 管理計算機およびリソース管理方法
KR20160132169A (ko) 2015-05-06 2016-11-17 에스케이하이닉스 주식회사 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
CN108701488A (zh) * 2015-12-01 2018-10-23 科内克斯实验室公司 用于在逻辑上去除非易失性存储器存储设备中的缺陷页的方法和装置
TWI581093B (zh) 2016-06-24 2017-05-01 慧榮科技股份有限公司 資料儲存媒體之損壞資料行的篩選方法
TWI670717B (zh) * 2016-09-13 2019-09-01 東芝記憶體股份有限公司 記憶裝置及記憶體系統
CN108958961B (zh) * 2017-05-22 2021-11-30 上海宝存信息科技有限公司 数据储存装置以及数据错误管理方法
TWI703442B (zh) * 2018-08-31 2020-09-01 大陸商合肥沛睿微電子股份有限公司 快閃記憶體控制器及相關的存取方法及電子裝置
CN110888589B (zh) * 2018-09-07 2023-10-20 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关的存取方法及电子装置
TWI688953B (zh) * 2019-04-10 2020-03-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN112579328A (zh) * 2019-09-27 2021-03-30 北京忆恒创源科技有限公司 处理编程出错的方法与存储设备
CN111625184A (zh) * 2020-04-20 2020-09-04 珠海妙存科技有限公司 闪存数据烧录方法及系统
CN112068772B (zh) * 2020-08-19 2023-05-16 浙江华忆芯科技有限公司 数据存储方法、数据存储装置及存储装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842793B2 (en) * 2002-03-28 2005-01-11 Hitachi, Ltd. Method and apparatus for verifying data in a storage system
US20050204212A1 (en) * 2004-02-27 2005-09-15 Mitsuhiro Noguchi Data memory system
US20070245069A1 (en) * 2004-09-10 2007-10-18 Syuichi Kikuchi Storage Device, Memory Management Method and Program
US20080074928A1 (en) * 2006-09-22 2008-03-27 Choi Jin-Hyeok Nonvolatile memory system and associated programming methods
US20080270680A1 (en) * 2005-11-17 2008-10-30 Chee Keng Chang Controller for Non-Volatile Memories and Methods of Operating the Memory Controller
US20080307270A1 (en) * 2007-06-07 2008-12-11 Micron Technology, Inc. Emerging bad block detection
US20090106484A1 (en) * 2007-10-19 2009-04-23 Phison Electronics Corp. Data writing method for non-volatile memory and controller using the same
US20090198875A1 (en) * 2008-02-05 2009-08-06 Phison Electronics Corp. Data writing method for flash memory, and controller and system using the same
TW200937432A (en) * 2008-02-21 2009-09-01 Phison Electronics Corp Storage apparatus, controller and data accessing method thereof

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909334A (en) * 1996-05-10 1999-06-01 Western Digital Corporation Verifying write operations in a magnetic disk drive
US7647544B1 (en) * 2005-11-22 2010-01-12 Western Digital Technologies, Inc. Disk drive implementing data path protection without writing the error detection code data to the disk
US20070233752A1 (en) * 2006-03-30 2007-10-04 Kiran Bangalore Method and apparatus to reclaim nonvolatile memory space
US8516343B2 (en) * 2008-11-10 2013-08-20 Fusion-Io, Inc. Apparatus, system, and method for retiring storage regions
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842793B2 (en) * 2002-03-28 2005-01-11 Hitachi, Ltd. Method and apparatus for verifying data in a storage system
US20050204212A1 (en) * 2004-02-27 2005-09-15 Mitsuhiro Noguchi Data memory system
US20070245069A1 (en) * 2004-09-10 2007-10-18 Syuichi Kikuchi Storage Device, Memory Management Method and Program
US20080270680A1 (en) * 2005-11-17 2008-10-30 Chee Keng Chang Controller for Non-Volatile Memories and Methods of Operating the Memory Controller
US20080074928A1 (en) * 2006-09-22 2008-03-27 Choi Jin-Hyeok Nonvolatile memory system and associated programming methods
US20080307270A1 (en) * 2007-06-07 2008-12-11 Micron Technology, Inc. Emerging bad block detection
US20090106484A1 (en) * 2007-10-19 2009-04-23 Phison Electronics Corp. Data writing method for non-volatile memory and controller using the same
US20090198875A1 (en) * 2008-02-05 2009-08-06 Phison Electronics Corp. Data writing method for flash memory, and controller and system using the same
TW200937432A (en) * 2008-02-21 2009-09-01 Phison Electronics Corp Storage apparatus, controller and data accessing method thereof

Also Published As

Publication number Publication date
US20110087950A1 (en) 2011-04-14
US8806301B2 (en) 2014-08-12
TW201113887A (en) 2011-04-16

Similar Documents

Publication Publication Date Title
TWI408688B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
TWI426528B (zh) 用於快閃記憶體的區塊管理方法、控制器與儲存系統
TWI480733B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI435329B (zh) 快閃記憶體管理方法、快閃記憶體控制器與儲存系統
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
TWI476590B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI479492B (zh) 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TWI479314B (zh) 系統資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN102043725B (zh) 用于闪存的数据写入方法及其控制器与储存系统
TWI611410B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI447579B (zh) 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置
TWI768764B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI486765B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI509615B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI591640B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI448892B (zh) 資料搬移方法、記憶體控制器與記憶體儲存裝置
CN107045890B (zh) 数据保护方法、存储器控制电路单元及存储器存储装置
TWI467364B (zh) 記憶體儲存裝置、記憶體控制器與資料寫入方法
TWI451247B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TWI414940B (zh) 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置