TWI447739B - 錯誤校正方法、記憶體控制器與儲存系統 - Google Patents
錯誤校正方法、記憶體控制器與儲存系統 Download PDFInfo
- Publication number
- TWI447739B TWI447739B TW099108358A TW99108358A TWI447739B TW I447739 B TWI447739 B TW I447739B TW 099108358 A TW099108358 A TW 099108358A TW 99108358 A TW99108358 A TW 99108358A TW I447739 B TWI447739 B TW I447739B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- physical
- information
- memory
- physical block
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 53
- 230000005055 memory storage Effects 0.000 title claims description 47
- 238000012937 correction Methods 0.000 claims description 188
- 239000000463 material Substances 0.000 claims description 35
- 230000007717 exclusion Effects 0.000 claims description 17
- 230000000903 blocking effect Effects 0.000 claims 1
- 230000000739 chaotic effect Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 17
- 101000823089 Equus caballus Alpha-1-antiproteinase 1 Proteins 0.000 description 4
- 101000651211 Homo sapiens Transcription factor PU.1 Proteins 0.000 description 4
- 102100027654 Transcription factor PU.1 Human genes 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 102100037642 Elongation factor G, mitochondrial Human genes 0.000 description 3
- 101001093731 Homo sapiens Phosphatidylinositol N-acetylglucosaminyltransferase subunit Q Proteins 0.000 description 3
- 102100035193 Phosphatidylinositol N-acetylglucosaminyltransferase subunit Q Human genes 0.000 description 3
- 101150016954 efg1 gene Proteins 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 101150100117 gfm1 gene Proteins 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 101150011775 GPI2 gene Proteins 0.000 description 2
- 101100297628 Homo sapiens PIGC gene Proteins 0.000 description 2
- 101000595489 Homo sapiens Phosphatidylinositol N-acetylglucosaminyltransferase subunit A Proteins 0.000 description 2
- 101000719024 Homo sapiens Ribosome-releasing factor 2, mitochondrial Proteins 0.000 description 2
- 102100036050 Phosphatidylinositol N-acetylglucosaminyltransferase subunit A Human genes 0.000 description 2
- 102100036163 Phosphatidylinositol N-acetylglucosaminyltransferase subunit C Human genes 0.000 description 2
- 102100025784 Ribosome-releasing factor 2, mitochondrial Human genes 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
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
本發明是有關於一種用於校正儲存於可複寫式非揮發性記憶體中之資料的錯誤校正方法及使用此方法的記憶體控制器與記憶體儲存系統。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟就是一種以可複寫式非揮發性記憶體作為儲存媒體的儲存裝置。由於可複寫式非揮發性記憶體體積小容量大,所以已廣泛用於個人重要資料的儲存。因此,近年可複寫式非揮發性記憶體產業成為電子產業中相當熱門的一環。
由於儲存在可複寫式非揮發性記憶體的資料可能會因各種因素(例如,記憶體胞的漏電、程式化失敗、損毀等)而產生錯誤位元,因此,在記憶體儲存系統中一般會配置錯誤檢查與校正電路並為所儲存之資料產生錯誤檢查與校正碼以確保資料的正確性。然而,當資料中的錯誤位元數目超過錯誤檢查與校正電路所能偵測與校正的錯誤位元數時,含有錯誤位元的資料就無法被校正,而造成資料遺失。基此,如何能夠更正已無法藉由錯誤檢查碼所校正之錯誤位元是此領域技術人員所致力的目標。
本發明提供一種錯誤校正方法,其能夠有效地提升錯誤校正能力。
本發明提供一種記憶體控制器,其能夠有效地提升錯誤校正能力。
本發明提供一種記憶體儲存裝置,其能夠有效地提升錯誤校正能力。
本發明範例實施例提出一種錯誤校正方法,用於一記憶體晶片。此記憶體晶片具有多個實體區塊,每一實體區塊具有多個實體頁面並且每一實體區塊的實體頁面可獨立地被寫入且同時地被抹除。本錯誤校正方法包括將產生對應多筆資料的多個錯誤檢查與校正碼並且將此些資料與對應此些資料的錯誤與檢查校正碼依序地寫入至第一實體區塊的實體頁面中,並且依據此些資料產生一第一同位資訊。本錯誤校正方法還包括接續此些資料將所產生之第一同位資訊寫入至第一實體區塊的實體頁面的其中之一中。本錯誤校正方法更包括使用對應此些資料的錯誤檢查與校正碼來校正此些資料,並且當無法藉由使用此些資料的錯誤檢查與校正碼來校正此些資料時依據此第一同位資訊來校正儲存在第一實體區塊中的資料。
在本發明之一實施例中,上述之產生對應此些資料的錯誤檢查與校正碼並且將此些資料與對應此些資料的錯誤檢查與校正碼依序地寫入至第一實體區塊的實體頁面中的步驟包括:將此些資料分割為多個碼框;產生對應每一碼框的一錯誤檢查與校正碼;合併此些碼框與對應的錯誤檢查與校正碼以分別地產生多個錯誤校正碼框;以及將該此些誤校正碼框寫入至第一實體區塊的實體頁面中。
在本發明之一實施例中,上述之依據此些資料產生第一同位資訊的步驟包括:依序地依據每一資料執行一互斥(XOR)運算以產生上述第一同位資訊。
在本發明之一實施例中,上述之依據此些資料產生第一同位資訊的步驟包括:將此些錯誤校正碼框分組為多個錯誤校正碼框群;以及為每一錯誤校正碼框群產生對應的一子同位資訊。
在本發明之一實施例中,上述之第一同位資訊可校正的位元數的數目與此第一同位資訊的位元數相同。
在本發明之一實施例中,上述之錯誤校正方法更包括:產生對應多筆其他資料的多個錯誤檢查與校正碼並且將此些其他資料與對應此些其他資料的錯誤檢查與校正碼依序地寫入至第一實體區塊的實體頁面中;依據此些其他資料產生一第二同位資訊;接續此些其他資料將此第二同位資訊寫入至第一實體區塊的實體頁面的其中之一中;使用對應此些其他資料的錯誤檢查與校正碼來校正此些其他資料;以及當無法藉由使用此些其他資料的錯誤檢查與校正碼來校正此些其他資料時依據此第二同位資訊來校正在第一實體區塊中的此些其他資料。
在本發明之一實施例中,上述之第一實體區塊的實體頁面包括多個第一實體頁面與對應此些第一實體頁面的多個第二實體頁面,並且寫入資料至第一實體頁面的速度不同於寫入資料至第二實體頁面的速度。並且,上述之依據此些資料產生第一同位資訊的步驟包括:為此些資料之中被寫入至此些第一實體頁面的資料產生一第一子同位資訊;以及為此些資料之中被寫入至此些第二實體頁面的資料產生一第二子同位資訊。此外,上述之接續此些資料將第一同位資訊寫入至此些實體頁面的其中之一中的步驟包括:將此第一子同位資訊寫入至此些第二實體頁面的其中之一中;以及將此第二子同位資訊寫入至此些第二實體頁面的其中之一中。
在本發明之一實施例中,上述之寫入此第一子同位資訊的第二實體頁面與寫入此第二子同位資訊的第二實體頁面屬於不同的記憶胞。
本發明範例實施例提出一種記憶體控制器,用於管理一記憶體晶片。此記憶體晶片具有多個實體區塊,其中每一實體區塊具有多個實體頁面並且此些實體頁面可獨立地被寫入且同時地被抹除。本記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統,並且記憶體介面用以耦接至記憶體晶片。記憶體管理電路耦接至此主機介面與此記憶體介面,並且用以執行上述錯誤校正方法。
本發明範例實施例提出一種記憶體儲存系統,其包括連接器、記憶體晶片與記憶體控制器。記憶體晶片具有多個實體區塊,每一實體區塊具有多個實體頁面,並且每一實體區塊的實體頁面可獨立地被寫入且同時地被抹除。記憶體控制器耦接至此記憶體晶片與此連接器,並且用以執行上述錯誤校正方法。
基於上述,本發明範例實施例的錯誤校正方法、記憶體控制器與記憶體儲存裝置能夠有效地提升錯誤校正的能力。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括記憶體晶片與控制器(亦稱,控制電路)。通常記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。另外,亦有記憶體儲存裝置是包括嵌入式記憶體與可執行於主機系統上以實質地作為此嵌入式記憶體之控制器的軟體。
圖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的處理可將資料寫入至記憶體儲存裝置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)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與記憶體晶片106。
在本範例實施例中,連接器102為序列先進附件(Serial Advanced Technology Attachment,SATA)連接器。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是通用序列匯流排(Universal Serial Bus,USB)連接器、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394連接器、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)連接器、安全數位(secure digital,SD)介面連接器、記憶棒(Memory Stick,MS)介面連接器、多媒體儲存卡(Multi Media Card,MMC)介面連接器、小型快閃(Compact Flash,CF)介面連接器、整合式驅動電子介面(Integrated Device Electronics,IDE)連接器或其他適合的連接器。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在記憶體晶片106中進行資料的寫入、讀取與抹除等運作。特別是,記憶體控制器104用以執行根據本範例實施例的資料存取機制與記憶體管理機制。
記憶體晶片106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。記憶體晶片106包括實體區塊304(0)~304(R)。各實體區塊分別具有複數個頁面,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。
在本範例實施例中,記憶體晶片106為可複寫式非揮發性記憶體。例如,記憶體晶片106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片。然而,本發明不限於此,記憶體晶片106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片、其他快閃記憶體晶片或其他具有相同特性的記憶體晶片。
圖3是根據本發明第一範例實施例所繪示的記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以根據本範例實施例的錯誤校正機制、資料存取機制與記憶體管理機制來管理記憶體晶片106。此錯誤校正機制、資料存取機制與記憶體管理機制將於以下配合圖式作詳細說明。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以完成根據本發明實施例的錯誤校正機制、資料存取機制與記憶體管理機制。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於記憶體晶片106的特定區域(例如,記憶體晶片中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於記憶體晶片106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以執行本發明範例實施例的錯誤校正機制、資料存取機制與記憶體管理機制。此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是對應連接器102為SATA介面。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是PATA介面、USB介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、MMC介面、CF介面、IDE介面或其他適合的資料傳輸介面。
記憶體介面206是耦接至記憶體管理電路202並且用以存取記憶體晶片106。也就是說,欲寫入至記憶體晶片106的資料會經由記憶體介面206轉換為記憶體晶片106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252。緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於記憶體晶片106的資料。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路254。電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
在本發明一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行一錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至記憶體晶片106中。之後,當記憶體管理電路202從記憶體晶片106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤校正程序。
圖4是根據本發明第一範例實施例所繪示的將資料與對應的錯誤檢查與校正碼寫入至實體頁面的範例。
請參照圖4,當主機系統1000傳送寫入指令與對應此寫入指令的資料D給記憶體儲存裝置100時,記憶體管理電路202會將資料D以一預設大小為單位分割為至少一碼框。在此,此預設大小會根據錯誤檢查與校正電路256的設計而有所不同。例如,資料D被分割為碼框F1~F4。之後,錯誤檢查與校正電路256會分別地為碼框F1~F4產生對應的錯誤檢查與校正碼ECC1~ECC4。然後,錯誤檢查與校正電路256會將碼框F1~F4與錯誤檢與校正碼ECC1~ECC4合併以形成錯誤校正碼框EF1~EF4。接著,記憶體管理電路202會將所形成之錯誤校正碼框EF1~EF4寫入至實體頁面中。例如,當一個實體頁面的容量可儲存4個錯誤校正碼框時,則錯誤校正碼框EF1~EF4會被依序地寫入至一個實體頁面中。例如,當一個實體頁面的容量可儲存2個錯誤校正碼框時,則錯誤校正碼框EF1~EF4會被依序地寫入至2個實體頁面中。之後,當主機系統1000欲從記憶體儲存裝置100中讀取資料D時,記憶體管理電路202會從實體頁面中讀取錯誤校正碼框EF1~EF4,並且錯誤檢查與校正電路256會分別地依據錯誤檢查與校正碼ECC1~ECC4來對碼框F1~F4進行錯誤檢查與校正程序。基此,在錯誤檢查與校正電路256的錯誤校正能力範圍內,錯誤檢查與校正電路256可校正資料中的錯誤位元,由此確保資料的正確性。
圖5與圖6是根據本發明第一範例實施例所繪示之管理記憶體晶片的範例示意圖。
必須瞭解的是,在此描述記憶體晶片106之實體區塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區塊是邏輯上的概念。也就是說,記憶體晶片106之實體區塊的實際位置並未更動,而是邏輯上對記憶體晶片106的實體區塊進行操作。
請參照圖5,記憶體管理電路202會將記憶體晶片106的實體區塊304(0)~304(R)邏輯地分組為資料區402、備用區404、系統區406與取代區408。
資料區402與備用區404的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區402是已儲存資料的實體區塊,而備用區404的實體區塊是用以替換資料區402的實體區塊。因此,備用區404的實體區塊為空或可使用的實體區塊,即無記錄資料或標記為已沒用的無效資料。也就是說,在備用區中的實體區塊已被執行抹除運作,或者當備用區中的實體區塊被提取用於儲存資料之前所提取之實體區塊會被執行抹除運作。因此,備用區的實體區塊為可被使用的實體區塊。
邏輯上屬於系統區406的實體區塊是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體區塊數、每一實體區塊的實體頁面數等。
邏輯上屬於取代區408中的實體區塊是替代實體區塊。例如,記憶體晶片106於出廠時會預留4%的實體區塊作為更換使用。也就是說,當資料區402、備用區404與系統區406中的實體區塊損毀時,預留於取代區408中的實體區塊是用以取代損壞的實體區塊(即,壞實體區塊(bad block))。因此,倘若取代區408中仍存有正常之實體區塊且發生實體區塊損毀時,記憶體管理電路202會從取代區408中提取正常的實體區塊來更換損毀的實體區塊。倘若取代區408中無正常之實體區塊且發生實體區塊損毀時,則記憶體管理電路202會將記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,資料區402、備用區404、系統區406與取代區408之實體區塊的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體區塊關聯至資料區402、備用區404、系統區406與取代區408的分組關係會動態地變動。例如,當備用區中的實體區塊損壞而被取代區的實體區塊取代時,則原本取代區的實體區塊會被關聯至備用區。
請參照圖6,如上所述,資料區402與備用區404的實體區塊是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體管理電路202配置邏輯存取位址給主機系統1000以利於在以上述輪替方式來儲存資料之實體區塊中進行資料存取。特別是,記憶體管理電路202會將所提供的邏輯位存取址分組為邏輯區塊510(0)~510(H),並且將邏輯區塊510(0)~510(H)映射至資料區402的實體區塊。例如,當記憶體儲存裝置100被初始化(例如,格式化)時,邏輯區塊510(0)~510(H)分別地映射至資料區402的實體區塊304(0)~304(D)。也就是說,一個邏輯區塊會映射資料區402中的一個實體區塊。在此,記憶體管理電路202會建立邏輯區塊-實體區塊映射表(logical block-physical block mapping table),以記錄邏輯區塊與實體區塊之間的映射關係。
圖7~圖10是根據本發明第一範例實施例所繪示的寫入資料至記憶體晶片的範例。
請同時參照圖7~圖10,例如,在邏輯區塊510(0)是映射至實體區塊304(0)的映射狀態下,當記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入資料至屬於邏輯區塊510(0)的邏輯存取位址時,記憶體管理電路202會依據邏輯區塊-實體區塊映射表識別邏輯區塊510(0)目前是映射至實體區塊304(0)並且從備用區404中提取實體區塊304(D+1)作為替換實體區塊來輪替實體區塊304(0)。然而,當記憶體管理電路202將新資料寫入至實體區塊304(D+1)的同時,記憶體管理電路202不會立刻將實體區塊304(0)中的所有有效資料搬移至實體區塊304(D+1)而抹除實體區塊304(0)。具體來說,記憶體管理電路202會將實體區塊304(0)中欲寫入實體頁面之前的有效資料(即,實體區塊304(0)的第0實體頁面與第1實體頁面中的資料)複製至實體區塊304(D+1)的第0實體頁面與第1實體頁面中(如圖7所示),並且將新資料寫入至實體區塊304(D+1)的第2實體頁面與第3實體頁面中(如圖8所示)。此時,記憶體管理電路202即完成寫入的運作。因為實體區塊304(0)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊304(0)中的有效資料搬移至實體區塊304(D+1)可能會造成無謂的搬移。此外,資料必須依序地寫入至實體區塊內的實體頁面,因此,記憶體管理電路202僅會先搬移欲寫入實體頁面之前的有效資料。
在本範例實施例中,暫時地維持此等母子暫態關係(即,實體區塊304(0)與實體區塊304(D+1))的運作稱為開啟(open)母子區塊,並且原實體區塊稱為母實體區塊而替換實體區塊稱為子實體區塊。
之後,當需要將實體區塊304(0)與實體區塊304(D+1)的內容真正合併時,記憶體管理電路202才會將實體區塊304(0)與實體區塊304(D+1)的資料整併至一個實體區塊,由此提升實體區塊的使用效率。在此,合併母子區塊的運作稱為關閉(close)母子區塊。例如,如圖9所示,當進行關閉母子區塊時,記憶體管理電路202會將實體區塊304(0)中剩餘的有效資料(即,實體區塊304(0)的第4實體頁面~第(K-1)實體頁面中的資料)複製至替換實體區塊304(D+1)的第4實體頁面~第(K-1)實體頁面中,然後將實體區塊304(0)抹除並關聯至備用區404,同時,將實體區塊304(D+1)關聯至資料區402。也就是說,記憶體管理電路202會在邏輯區塊-實體區塊映射表中將邏輯區塊510(0)重新映射至304(D+1)。此外,在本範例實施例中,記憶體管理電路202會建立備用區實體區塊表(未繪示)來記錄目前被關聯至備用區的實體區塊。值得一提的是,在開啟母子區塊時記憶體管理電路202需使用更多緩衝記憶體252的儲存空間來儲存管理變數,以記錄更詳細的儲存狀態。例如,此些管理變數會記錄屬於邏輯區塊510(0)的有效資料被分散地儲存在實體區塊304(0)與實體區塊304(D+1)的哪些實體頁面中(如圖8所示)。基此,在記憶體儲存裝置100運作期間,母子區塊的組數是有限的。因此,當記憶體儲存裝置100接收到來自於主機系統1000的寫入指令時,倘若已開啟母子區塊的組數達到上限時,記憶體管理電路202需關閉至少一組目前已開啟之母子區塊(即,執行關閉母子區塊運作)以執行此寫入指令。
值得一提的是,除了上述錯誤檢查與校正程序之外,記憶體管理電路202更會為儲存於實體區塊內的資料產生同位資訊(Parity),以在上述錯誤檢查與校正程序無法校正資料中的錯誤位元時,藉由同位資訊來更正此錯誤位元。
具體來說,記憶體管理電路202會以實體區塊的實體頁面為單位使用互斥(XOR)運算為儲存於實體區塊內的所有資料產生一組同位資訊並且保留實體區塊內的最後一個實體頁面來儲存此同位資訊。也就是說,在本範例實施例中,記憶體管理電路202會使用實體區塊內的最後一個實體頁面來儲存關於此實體區塊內所有資料的同位資訊。例如,如圖10所示,當實體區塊304(D+1)的實體頁面P(0)~P(K-1)皆已被寫入資料後,記憶體管理電路202會為儲存於實體區塊304(D+1)的第0實體頁面~第(K-1)實體頁面中的資料產生同位資訊並且將此同位資訊儲存於實體區塊304(D+1)的第K實體頁面中。
圖11是根據本發明第一範例實施例所繪示之產生同位資訊並儲存此同位資訊的範例。為方便說明,在圖11所示的範例中,假設實體區塊304(D+1)具有6個實體頁面,並且每一實體頁面的容量為4個位元。然而必須瞭解的是,在實際的記憶體晶片中,一個實體區塊的實體頁面數可為64、128或192,且一個實體頁面的容量可為2千位元組、4千位元組或8千位元組。
請參照圖11,假設在"1010"、"1011"、"1100"、"0101"、"0011"等資料被依序地寫入至實體區塊304(D+1)的第0實體頁面~第4實體頁面之後,記憶體管理電路202會依據第0實體頁面中的資料與第1實體頁面中的資料來執行互斥運算而獲得"0001"。然後,記憶體管理電路202會依據所獲得之"0001"與第2實體頁面中的資料來執行互斥運算而獲得"1101"。之後,記憶體管理電路202會依據所獲得之"1101"與第3實體頁面中的資料來執行互斥運算而獲得"1000"。最後,記憶體管理電路202會依據所獲得之"1000"與第4實體頁面中的資料來執行互斥運算而獲得"1011",並且將"1011"作為對應儲存於實體區塊304(D+1)中之資料的同位資訊並將此同位資訊儲存於實體區塊304(D+1)的第5實體頁面中。
之後,倘若儲存於實體區塊304(D+1)的第0實體頁面~第4實體頁面的其中一個實體頁面中的資料存有錯誤位元且此錯誤位元無法藉由錯誤檢查與校正電路256所校正時,記憶體管理電路202會反向地執行上述互斥運算而獲得正確的值。
例如,倘若儲存於實體區塊304(D+1)的第3實體頁面中的資料存有錯誤位元且此錯誤位元無法藉由錯誤檢查與校正電路256而校正時,記憶體管理單元電路202會依據儲存於實體區塊304(D+1)的第5實體頁面中的同位資訊(即,"1011")與實體區塊304(D+1)的第4實體頁面中的資料來執行互斥運算而獲得"1000"。此外,記憶體管理電路202會依據第0實體頁面中的資料與第1實體頁面中的資料來執行互斥運算而獲得"0001";並且依據所獲得之"0001"與第2實體頁面中的資料執行互斥運算而獲得"1101"。最後,記憶體管理電路202會依據所獲得的"1000"與"1101"來執行互斥運算而獲得儲存於實體區塊304(D+1)的第3實體頁面中的正確資料(即,"0101")。
圖12是根據本發明第一範例實施例所繪示的錯誤校正方法的流程圖。
請參照圖12,當記憶體儲存裝置100從主機系統1000中接收到主機指令時,在步驟S1201中記憶體管理電路202會判斷主機指令為寫入指令或讀取指令。
當此主機指令為寫入指令時,在步驟S1203中記憶體管理電路202會完成資料的寫入,並且在步驟S1205中記憶體管理電路202會判斷被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面是否已被寫滿。
倘若被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面已被寫滿時,則在步驟S1207中記憶體管理電路202會依據此實體區塊內之資料來產生同位資訊並且將所產生之同位資訊儲存於此實體區塊的最後一個實體頁面中。產生同位資訊的方法已詳細描述如上,在此不重複描述。倘若被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面未被寫滿時,則圖12的流程會被結束。
當此主機指令為讀取指令時,在步驟S1209中記憶體管理電路202會從記憶體晶片106中讀取對應的資料。並且,在步驟S1211中錯誤檢查與校正電路256會對所讀取之資料執行錯誤檢查與校正程序。
之後,在步驟S1213中記憶體管理電路202會判斷所讀取之資料是否存有無法藉由錯誤檢查與校正電路256校正的錯誤位元。
倘若所讀取之資料存有無法藉由錯誤檢查與校正電路256校正的錯誤位元時,則在步驟S1215中記憶體管理電路202會使用儲存此資料之實體區塊內的同位資訊來更正所讀取之資料。使用同位資訊來更正資料中之錯誤位元的方法已詳細描述如上,在此不重複描述。之後,在步驟S1217中記憶體管理電路202會將所讀取之資料傳送給主機系統1000。
倘若所讀取之資料無存有無法藉由錯誤檢查與校正電路256校正的錯誤位元時,則步驟S1217會被執行。
第二範例實施例的記憶體儲存裝置本質上是相同於第一範例實施例的記憶體儲存裝置,在此,僅針對差異部分進行描述。以下將利用第一範例實施例的圖2與圖3來描述第二範例實施例。
第二範例實施例的記憶體管理電路202亦會如圖4~11所示的錯誤校正機制、資料存取機制與記憶體管理機制來對記憶體晶片106進行操作。在本範例實施例中,除了執行上述開啟母子實體區塊運作與關閉母子實體區塊運作來寫入資料外,記憶體管理電路202更用以執行一混亂寫入模式(Random Writing Mode)來寫入資料。
具體來說,由於快閃記憶體晶片106的程式化規格要求必須從每一實體區塊的第一實體頁面開始寫入至最後一個實體頁面並且在每個位元僅能程式一次(即由僅能“1”變為“0”)的條件下,一旦記憶體實體區塊的實體頁面被寫入資料後,若欲更新已寫入的資料就必須如圖7所示從備用區404中提取一實體區塊重新進行圖7~9所示的步驟。因此,當實體區塊在未進行圖9所示之關閉母子區塊運作之前(即處於圖8所示的暫態),而發生必須更新剛搬移的資料(例如圖7所示之第0實體頁面與第1實體頁面中的資料)時,則所搬移的舊資料就必須再搬移一次,此稱為混亂寫入模式。當執行混亂寫入模式時,記憶體管理電路202會從備用區404中提取一個實體區塊作為混亂實體區塊並直接從所提取之實體區塊的第1實體頁面開始寫入新資料而不進行圖7所示的動作(即,複製有效資料的動作)。並且,當混亂寫入模式結束後再從備用區404中提取另一實體區塊來寫入所有的有效資料。
特別是,在混亂寫入模式中,記憶體管理電路202會以每個寫入指令為單位來為所寫入的資料產生同位資訊。
圖13是根據本發明第二範例實施例所繪示在混亂寫入模式中產生同位資訊並儲存此同位資訊的範例。
請參照圖13,當從主機系統1000接收到寫入指令與對應兩個實體頁面的資料PD0與PD1與並且從備用區404中提取實體區塊304(D+2)作為混亂實體區塊而進入混亂寫入模式時,記憶體管理電路202會將資料及其對應的錯誤檢查與校正碼寫入至實體區塊304(D+2)的第0實體頁面與第1實體頁面。之後,記憶體管理電路202會使用互斥運算來產生對應第0實體頁面與第1實體頁面中之資料的同位資訊PI0並接續地將同位資訊PI0寫入至第2實體頁面中。在此,產生同位資訊的方法是相同於圖11所示之方法,在此不重複描述。
之後,當再次從主機系統1000接收到寫入指令與對應兩個實體頁面的資料PD2與PD3時,記憶體管理電路202會將資料及其對應的錯誤檢查與校正碼寫入至實體區塊304(D+2)的第3實體頁面與第4實體頁面。之後,記憶體管理電路202會使用互斥運算來產生對應第3實體頁面與第4實體頁面中之資料的同位資訊PI1並接續地將同位資訊PI1寫入至第5實體頁面中。也就是說,在執行混亂寫入模式期間,當混亂實體區塊被寫入對應多個寫入指令的資料時,記憶體管理電路202會在混亂實體區塊中使用多個實體頁面來儲存對應此些寫入指令之資料的多個同位資訊。並且,在執行混亂寫入模式期間,當儲存於混亂實體區塊的資料發生無法藉由錯誤檢查與校正電路256校正之錯誤位元時,記憶體管理電路202能夠根據混亂實體區塊中的同位資訊來更正此錯誤位元。
特別是,當混亂寫入模式結束時,記憶體管理電路202會以實體區塊為單位為實體區塊內的所有有效資料產生同位資訊。
圖14是根據本發明第二範例實施例所繪示的錯誤校正方法的流程圖。
請參照圖14,當記憶體儲存裝置100從主機系統1000中接收到主機指令時,在步驟S1401中記憶體管理電路202會判斷主機指令為寫入指令或讀取指令。
當此主機指令為寫入指令時,在步驟S1403中記憶體管理電路202會完成資料的寫入,並且在步驟S1405中記憶體管理電路202會判斷資料是否是以混亂寫入模式被寫入。
倘若資料是以混亂寫入模式被寫入時,則在步驟S1407中記憶體管理電路202會為此寫入指令之資料產生同位資訊並且接續地於寫入此資料之實體頁面的下一個實體頁面中儲存所產生之同位資訊。
倘若資料非以混亂寫入模式被寫入時,在步驟S1409中記憶體管理電路202會判斷被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面是否已被寫滿。
倘若被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面已被寫滿時,則在步驟S1411中記憶體管理電路202會依據此實體區塊內之資料來產生同位資訊並且將所產生之同位資訊儲存於此實體區塊的最後一個實體頁面中。倘若被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面未被寫滿時,則圖14的流程會被結束。
當此主機指令為讀取指令時,在步驟S1413中記憶體管理電路202會從記憶體晶片106中讀取對應的資料。並且在步驟S1415中錯誤檢查與校正電路256會對所讀取之資料執行錯誤檢查與校正程序。
之後,在步驟S1417中記憶體管理電路202會判斷所讀取之資料是否存有無法藉由錯誤檢查與校正電路256校正的錯誤位元。
倘若所讀取之資料存有無法藉由錯誤檢查與校正電路256校正的錯誤位元時,則在步驟S1419中記憶體管理電路202會判斷儲存所讀取之資料的實體區塊是否為混亂實體區塊。
倘若儲存所讀取之資料的實體區塊為混亂實體區塊時,則在步驟S1421中記憶體管理電路202會從混亂實體區塊中讀取對應此資料的同位資訊。具體來說,同位資訊被儲存在用於儲存資料之實體頁面之後的實體頁面,因此記憶體管理電路202可正確地讀取對應的同位資訊。之後,在步驟S1423中記憶體管理電路202會使用所讀取之同位資訊來更正所讀取之資料,並且在步驟S1425中記憶體管理電路202會將所讀取之資料傳送給主機系統1000。
倘若儲存所讀取之資料的實體區塊不為混亂實體區塊時,則在步驟S1427中記憶體管理電路202會使用儲存此資料之實體區塊內的同位資訊來更正所讀取之資料(如第一範例實施例所示)。之後,步驟S1425會被執行。
倘若所讀取之資料無存有無法藉由錯誤檢查與校正電路256校正的錯誤位元時,則步驟S1425會被執行。
第三範例實施例的記憶體儲存裝置本質上是相同於第一範例實施例的記憶體儲存裝置,在此,僅針對差異部分進行描述。以下將利用第一範例實施例的圖2與圖3來描述第三範例實施例。
第三範例實施例的記憶體管理電路202亦會如圖4~10所示的資料存取機制與記憶體管理機制來對記憶體晶片106進行操作。
記憶體晶片106為MLC NAND快閃記憶體,因此,每一記憶胞可儲存多個位元。具體來說,在對SLC NAND型快閃記憶體的記憶胞進行程式化(program)時僅能執行單階的程式化,因此每一記憶胞僅能儲存一個位元。而MLC NAND型快閃記憶體之實體區塊的程式化可分為多階段。例如,以2層記憶胞為例,實體區塊的程式化可分為2階段。第一階段是下實體頁面(lower physical page)的寫入部分,其物理特性類似於單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體,在完成第一階段之後才會程式化上實體頁面(upper physical page),其中下實體頁面的寫入速度會快於上實體頁面。因此,每一實體區塊的實體頁面可區分為慢速實體頁面(即,上實體頁面)與快速實體頁面(即,下實體頁面)。
類似地,在8層記憶胞或16層記憶胞的案例中,記憶胞會包括更多個實體頁面並且會以更多階段來寫入。在此,將寫入速度最快的實體頁面稱為下實體頁面,其他寫入速度較慢的頁面統稱為上實體頁面。例如,上實體頁面包括具有不同寫入速度的多個實體頁面。此外,在其他實施例中,上實體頁面也可為寫入速度最慢的實體頁面,或者寫入速度最慢與部份寫入速度快於寫入速度最慢實體頁面的實體頁面。例如,在4層記憶胞中,下實體頁面為寫入速度最快與寫入速度次快的實體頁面,上實體頁面則為寫入速度最慢與寫入速度次慢的實體頁面。
特別是,快速實體頁面與其對應的慢速實體頁面彼此具有電荷耦合效應。因此,當儲存於慢速實體頁面中的資料發生無法藉由錯誤檢查與校正電路256錯誤校正的錯誤位元時,儲存於此慢速實體頁面所對應之快速實體頁面中的資料亦可能出現錯誤位元。
在本範例實施例中,在一個實體區塊中,記憶體管理電路202會為儲存於此實體區塊之快速實體頁面中的資料產生子同位資訊,並且為儲存於此實體區塊之慢速實體頁面中的資料產生另一子同位資訊。
圖15是根據本發明第三範例實施例所繪示之依據實體頁面的種類來產生子同位資訊並儲存子同位資訊的範例。為方便說明,在此以2層記憶胞NAND快閃記憶體為例來進行說明,然而必須瞭解的是,記憶體晶片106不限於此,在本發明另一範例實施例中,記憶體晶片106亦可以是3或更多層記憶胞NAND快閃記憶體。
請參照圖15,實體區塊304(0)的第0實體頁面、第1實體頁面、第3實體頁面、第5實體頁面、第7實體頁面...第K-6實體頁面、第K-4實體頁面與第K-2實體頁面為快速實體頁面,並且實體區塊304(0)的第2實體頁面、第4實體頁面、第6實體頁面、第8實體頁面、第10實體頁面、第12實體頁面...第K-3實體頁面、第K-1實體頁面與第K實體頁面為慢速實體頁面。
當實體區塊304(0)的第0實體頁面~第K-2實體頁面已被寫滿資料時,記憶體管理電路202會使用互斥運算為第0實體頁面、第1實體頁面、第3實體頁面、第5實體頁面、第7實體頁面...第K-6實體頁面、第K-4實體頁面與第K-2實體頁面中的資料產生子同位資訊SPI0,並且為第2實體頁面、第4實體頁面、第6實體頁面、第8實體頁面、第10實體頁面、第12實體頁面...第K-3實體頁面、第K-1實體頁面與第K實體頁面中的資料產生子同位資訊SPI1。在此,使用互斥運算產生子同位資訊的方法是相同圖11所示之方法,在此不重複描述。此外,記憶體管理電路202會將子同位資訊SPI0儲存於實體區塊304(0)的第K-1實體頁面中,並且將子同位資訊SPI1儲存於實體區塊304(0)的第K實體頁面中。藉此,當儲存於實體區塊304(0)的快速實體頁面中之資料發生無法藉由錯誤檢查與校正電路256校正之錯誤位元時,記憶體管理電路202會使用子同位資訊SPI0來更正此資料的錯誤位元,並且當儲存於實體區塊304(0)的慢速實體頁面中之資料發生無法藉由錯誤檢查與校正電路256所校正之錯誤位元時,記憶體管理電路202會使用子同位資訊SPI1來更正此資料的錯誤位元。
圖16是根據本發明第三範例實施例所繪示的錯誤校正方法的流程圖。
請參照圖16,當記憶體儲存裝置100從主機系統1000中接收到主機指令時,在步驟S1601中記憶體管理電路202會判斷主機指令為寫入指令或讀取指令。
當此主機指令為寫入指令時,在步驟S1603中記憶體管理電路202會完成資料的寫入,並且在步驟S1605中記憶體管理電路202會判斷被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面是否已被寫滿。具體來說,在本範例實施例中,記憶體管理電路202會保留2個實體頁面來儲存對應2種寫入速度之實體頁面的子同位資訊。此外,在記憶體晶片為3層記憶體胞快閃記憶體的另一範例實施例中,記憶體管理電路202會保留3個實體頁面來儲存對應3種寫入速度之實體頁面的子同位資訊。
倘若被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面已被寫滿時,則在步驟S1607中記憶體管理電路202會依據此實體區塊內之儲存於快速實體頁面的資料來產生對應的子同位資訊並且依據此實體區塊內之儲存於慢速實體頁面的資料來產生對應的子同位資訊。然後,在步驟S1609中記憶體管理電路202會將對應快速實體頁面的子同位資訊儲存於倒數第二個慢速實體頁面中並且將對應慢速實體頁面的子同位資訊儲存於最後一個慢速實體頁面中。倘若被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面未被寫滿時,則圖16的流程會被結束。
當此主機指令為讀取指令時,在步驟S1611中記憶體管理電路202會從記憶體晶片106中讀取對應的資料。並且,在步驟S1613中錯誤檢查與校正電路256會對所讀取之資料執行錯誤檢查與校正程序。
之後,在步驟S1615中記憶體管理電路202會判斷所讀取之資料是否存有無法藉由錯誤檢查與校正電路256校正的錯誤位元。
倘若所讀取之資料存有無法藉由錯誤檢查與校正電路256校正的錯誤位元時,則在步驟S1617中記憶體管理電路202會判斷儲存此資料的實體頁面是否為快速實體頁面。倘若儲存此資料的實體頁面為快速實體頁面時,在步驟S1619中記憶體管理電路202會使用對應快速實體頁面的子同位資訊來更正所讀取之資料。倘若儲存此資料的實體頁面不為快速實體頁面時,在步驟S1621中記憶體管理電路202會使用對應慢速實體頁面的子同位資訊來更正所讀取之資料。之後,在步驟S1623中記憶體管理電路202會將所讀取之資料傳送給主機系統1000。
倘若所讀取之資料無存有無法藉由錯誤檢查與校正電路256校正的錯誤位元時,則步驟S1623會被執行。
第四範例實施例的記憶體儲存裝置本質上是相同於第一範例實施例的記憶體儲存裝置,在此,僅針對差異部分進行描述。以下將利用第一範例實施例的圖2與圖3來描述第四範例實施例。
第四範例實施例的記憶體管理電路202亦會如圖4~10所示的資料存取機制與記憶體管理機制來對記憶體晶片106進行操作。
在本範例實施例中,一個實體頁面的容量可儲存多個錯誤校正碼框。並且,記憶體管理電路202會將儲存於實體區塊內錯誤校正碼框分組為多個錯誤校正碼框群,並且為每一錯誤校正碼框群產生子同位資訊。也就是說,儲存於一個實體頁面的多個錯誤校正碼框分別地屬於其中一個錯誤校正碼框群,並且記憶體管理電路202是以錯誤校正碼框群為單位來產生對應的子同位資訊。
圖17是根據本發明第四範例實施例所繪示的產生與儲存子同位資訊的示意圖。為方便說明,在圖17所示的範例中,假設每一實體區塊具有6個實體頁面,並且每一實體頁面的容量可儲存4個錯誤校正碼框。然而,必須瞭解的是,本發明不限於此,在本發明另一範例實施例中,每一實體頁面的容量可儲存之錯誤校正碼框的數目可以為1、2或其他是適當的數值。
請參照圖17,在錯誤校正碼框EF1~EF20被寫入至實體區塊304(D+1)的第0實體頁面~第4實體頁面之後,記憶體管理單元202會將錯誤校正碼框EF1、EF5、EF9、EF13、EF17分組為錯誤校正碼框群EFG1;將錯誤校正碼框EF2、EF6、EF10、EF14、EF18分組為錯誤校正碼框群EFG2;將錯誤校正碼框EF3、EF7、EF11、EF15、EF19分組為錯誤校正碼框群EFG3;並且將錯誤校正碼框EF4、EF8、EF12、EF16、EF20分組為錯誤校正碼框群EFG4。必須瞭解的是,在此,錯誤校正碼框群的個數是根據實體頁面中可儲存之錯誤校正碼框的個數所決定,並且每一實體頁面中的每一錯誤校正碼框會被分組至其中一個錯誤校正碼框群。但,分組方式不限於圖17所示之方式,在本發明另一範例實施例中,記憶體管理電路202可使用任何可將每一實體頁面中的每一錯誤校正碼框分組至其中一個錯誤校正碼框群的方法來將實體區塊內之錯誤校正碼框進行分組。
在本範例中,記憶體管理電路202會分別地使用互斥運算為錯誤校正碼框群EFG1、EFG2、EFG3與EFG4產生子同位資訊GPI1、GPI2、GPI3與GPI4,並且將所產生之子同位資訊GPI1、GPI2、GPI3與GPI4儲存於實體區塊304(D+1)的第5實體頁面中。在此,使用互斥運算產生子同位資訊的方法是相同圖11所示的方法,在此不重複描述。
藉此,當儲存於實體區塊304(0)的實體頁面中之資料(即,包含於錯誤校正碼框中的資料)發生無法藉由錯誤檢查與校正電路256校正之錯誤位元時,記憶體管理電路202會使用對應的子同位資訊來更正此錯誤位元。值得一提的是,由於每一錯誤校正碼框群對應一個子同位資訊,因此,記憶體管理電路202在每一錯誤校正碼框群中能夠更正一個錯誤校正碼框中無法藉由錯誤檢查與校正電路256所校正之錯誤位元。
在第一範例實施例中,由於資料是以實體頁面為單位來進行互斥運算以產生同位資訊,因此,在每一實體區塊中記憶體管理電路202僅能更正在一個實體頁面中所發生之錯誤位元。然而,在本範例,資料是根據所分組之錯誤校正碼框群來進行互斥運算以產生同位資訊,因此,記憶體管理電路202有機會能夠更正多個實體頁面中所發生之錯誤位元。例如,在圖17所示的範例中,在實體區塊中有4個錯誤校正碼框發生無法藉由錯誤檢查與校正電路256所校正的錯誤位元的情況下,倘若此4個錯誤校正碼框分別地被儲存於4個不同的實體頁面中且屬於不同的錯誤校正碼框群時,記憶體管理電路202將能夠更正4個實體頁面中的資料。
圖18是根據本發明第四範例實施例所繪示的錯誤校正方法的流程圖。
請參照圖18,當記憶體儲存裝置100從主機系統1000中接收到主機指令時,在步驟S1801中記憶體管理電路202會判斷主機指令為寫入指令或讀取指令。
當此主機指令為寫入指令時,在步驟S1803中記憶體管理電路202會完成資料的寫入,並且在步驟S1805中記憶體管理電路202會判斷被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面是否已被寫滿。
倘若被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面已被寫滿時,則在步驟S1807中記憶體管理電路202會將此實體區塊內之錯誤校正碼框分組為多個錯誤校正碼框群。之後,在步驟S1809中記憶體管理電路202會以錯誤校正碼框群為單位來產生對應的多個子同位資訊並且將所產生之子同位資訊儲存於此實體區塊的最後一個實體頁面中。產生同位資訊的方法已詳細描述如上,在此不重複描述。倘若被寫入之實體區塊中除了保留用於儲存同位資訊之外的其他實體頁面未被寫滿時,則圖18的流程會被結束。
當此主機指令為讀取指令時,在步驟S1811中記憶體管理電路202會從記憶體晶片106中讀取對應的資料。並且,在步驟S1813中錯誤檢查與校正電路256會對所讀取之資料執行錯誤檢查與校正程序。
之後,在步驟S1815中記憶體管理電路202會判斷所讀取之資料是否存有無法藉由錯誤檢查與校正電路256校正的錯誤位元。
倘若所讀取之資料存有無法藉由錯誤檢查與校正電路256校正的錯誤位元時,則在步驟S1817中記憶體管理電路202會使用儲存此資料之實體區塊內對應的子同位資訊來更正所讀取之資料。使用子同位資訊來更正具錯誤位元之資料的方法已詳細描述如上,在此不重複描述。之後,在步驟S1819中記憶體管理電路202會將所讀取之資料傳送給主機系統1000。
倘若所讀取之資料無存有無法藉由錯誤檢查與校正電路256校正的錯誤位元時,則步驟S1819會被執行。
綜上所述,在本發明範例實施例中儲存於記憶體儲存裝置的實體區塊中的資料除了由錯誤檢查與校正電路執行錯誤檢查與校正程序之外,記憶體管理電路更會在實體區塊中儲存對應此實體區塊內之資料的同位資訊。基此,記憶體控制電路的錯誤校正能力能夠更為提升,由此更確保資料的正確性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1100...電腦
1106...輸入/輸出(input/output,I/O)裝置
1102...微處理器
1104...隨機存取記憶體(random access memory,RAM)
1108...系統匯流排
1110...資料傳輸介面
1212...隨身碟
1214...記憶卡
1216...固態硬碟(Solid State Drive,SSD)
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒(memory stick)
1318...CF卡
1320...嵌入式儲存裝置
100...記憶體儲存裝置
102...連接器
104...記憶體控制器
106...記憶體晶片
202...記憶體管理電路
204...主機介面
206...記憶體介面
252...緩衝記憶體
254...電源管理電路
256...錯誤檢查與校正電路
D...資料
F1~F4...碼框
ECC1~ECC4...錯誤檢查與校正碼
304(0)~304(R)...實體區塊
402...資料區
404...備用區
406...系統區
408...取代區
510(0)~510(H)...邏輯區塊
S1201、S1203、S1205、S1207、S1209、S1211、S1213、S1215、S1217...錯誤校正方法的步驟
PD0、PD1、PD2、PD3...資料
PI0、PI1...子同位資訊
S1401、S1403、S1405、S1407、S1409、S1411、S1413、S1415、S1417、S1419、S1421、S1423...錯誤校正方法的步驟
SPI0、SPI1...子同位資訊
S1601、S1603、S1605、S1607、S1609、S1611、S1613、S1615、S1617、S1619、S1621、S1623...錯誤校正方法的步驟
EF1~EF20...錯誤校正碼框
EFG1~EFG4...錯誤校正碼框群
GPI1~GPI4...子同位資訊
S1801、S1803、S1805、S1807、S1809、S1811、S1813、S1815、S1817、S1819、S1821...錯誤校正方法的步驟
圖1A是根據本發明第一範例實施例繪示使用記憶體儲存裝置的主機系統。
圖1B是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明第一範例實施例所繪示的記憶體控制器的概要方塊圖。
圖4是根據本發明第一範例實施例所繪示的將資料與對應的錯誤檢查與校正碼寫入至實體頁面的範例。
圖5與圖6是根據本發明第一範例實施例所繪示之管理記憶體晶片的範例示意圖。
圖7~圖10是根據本發明第一範例實施例所繪示的寫入資料至記憶體晶片的範例。
圖11是根據本發明第一範例實施例所繪示之產生同位資訊並儲存此同位資訊的範例。
圖12是根據本發明第一範例實施例所繪示的錯誤校正方法的流程圖。
圖13是根據本發明第二範例實施例所繪示在混亂寫入模式中產生同位資訊並儲存此同位資訊的範例。
圖14是根據本發明第二範例實施例所繪示的錯誤校正方法的流程圖。
圖15是根據本發明第三範例實施例所繪示之依據實體頁面的種類來產生子同位資訊並儲存子同位資訊的範例。
圖16是根據本發明第三範例實施例所繪示的錯誤校正方法的流程圖。
圖17是根據本發明第四範例實施例所繪示的產生與儲存子同位資訊的示意圖。
圖18是根據本發明第四範例實施例所繪示的錯誤校正方法的流程圖。
S1201、S1203、S1205、S1207、S1209、S1211、S1213、S1215、S1217...錯誤校正方法的步驟
Claims (15)
- 一種錯誤校正方法,用於一記憶體晶片,該記憶體晶片具有多個實體區塊,其中每一實體區塊具有多個實體頁面並且每一實體區塊的該些實體頁面可獨立地被寫入且同時地被抹除,該錯誤校正方法包括:產生對應多筆資料的多個錯誤檢查與校正碼並且將該些資料與對應該些資料的錯誤檢查與校正碼依序地寫入至該些實體區塊之中的一第一實體區塊的該些實體頁面中;依據該些資料產生一第一同位資訊;接續該些資料將該第一同位資訊寫入至該第一實體區塊的該些實體頁面的其中之一中;使用對應該些資料的錯誤檢查與校正碼來校正該些資料;以及當無法藉由使用該些資料的錯誤檢查與校正碼來校正該些資料時依據該第一同位資訊校正在該第一實體區塊中的該些資料。
- 如申請專利範圍第1項所述之錯誤校正方法,其中產生對應該些資料的錯誤檢查與校正碼並且將該些資料與對應該些資料的錯誤檢查與校正碼依序地寫入至該些實體區塊之中的該第一實體區塊的該些實體頁面中的步驟包括:將該些資料分割為多個碼框;產生對應每一碼框的一錯誤檢查與校正碼;合併該些碼框與對應的該些錯誤檢查與校正碼以分別地產生多個錯誤校正碼框;以及將該些錯誤校正碼框寫入至該第一實體區塊的該些實體頁面中。
- 如申請專利範圍第1項所述之錯誤校正方法,其中依據該些資料產生該第一同位資訊的步驟包括:依序地依據每一資料執行一互斥(XOR)運算以產生該第一同位資訊。
- 如申請專利範圍第2項所述之錯誤校正方法,其中依據該些資料產生該第一同位資訊的步驟包括:將該些錯誤校正碼框分組為多個錯誤校正碼框群;以及為每一錯誤校正碼框群產生對應的一子同位資訊。
- 如申請專利範圍第1項所述之錯誤校正方法,其中該第一同位資訊可校正的位元數的數目與該第一同位資訊的位元數相同。
- 如申請專利範圍第1項所述之錯誤校正方法,更包括:產生對應多筆其他資料的多個錯誤檢查與校正碼並且將該些其他資料與對應該些其他資料的錯誤檢查與校正碼依序地寫入至該第一實體區塊的該些實體頁面中;依據該些其他資料產生一第二同位資訊;接續該些其他資料將該第二同位資訊寫入至該第一實體區塊的該些實體頁面的其中之一中;使用對應該些其他資料的錯誤檢查與校正碼來校正該些其他資料;以及當無法藉由使用該些其他資料的錯誤檢查與校正碼來校正該些其他資料時依據該第二同位資訊來校正在該第一實體區塊中的該些其他資料。
- 如申請專利範圍第1項所述之錯誤校正方法,其中該第一實體區塊的該些實體頁面包括多個第一實體頁面與對應該些第一實體頁面的多個第二實體頁面,並且寫入資料至該些第一實體頁面的速度不同於寫入資料至該些第二實體頁面的速度,其中依據該些資料產生該同位資訊的步驟包括:為該些資料之中被寫入至該些第一實體頁面的資料產生一第一子同位資訊;以及為該些資料之中被寫入至該些第二實體頁面的資料產生一第二子同位資訊,其中接續該些資料將該第一同位資訊寫入至該些實體頁面的其中之一的步驟包括:將該第一子同位資訊寫入至該些第二實體頁面的其中之一中;以及將該第二子同位資訊寫入至該些第二實體頁面的其中之一中,其中寫入該第一子同位資訊的第二實體頁面與寫入該第二子同位資訊的第二實體頁面屬於不同的記憶胞。
- 一種記憶體控制器,用於管理一記憶體晶片,該記憶體晶片具有多個實體區塊,其中每一實體區塊具有多個實體頁面並且該些實體頁面可獨立地被寫入且同時地被抹除,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該記憶體晶片;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以執行至少下列程序:產生對應多筆資料的多個錯誤檢查與校正碼並且將該些資料與對應該些資料的錯誤檢查與校正碼依序地寫入至該些實體區塊之中的一第一實體區塊的該些實體頁面中;依據該些資料產生一第一同位資訊;接續該些資料將該第一同位資訊寫入至該第一實體區塊的該些實體頁面的其中之一中;使用對應該些資料的錯誤檢查與校正碼來校正該些資料;以及當無法藉由使用該些資料的錯誤檢查與校正碼來校正該些資料時依據該第一同位資訊校正在該第一實體區塊中的該些資料。
- 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路所執行之依據該些資料產生該第一同位資訊的程序包括:依序地依據每一資料執行一互斥(XOR)運算以產生該第一同位資訊。
- 如申請專利範圍第8項所述之記憶體控制器,其中該第一同位資訊可校正的位元數的數目與該第一同位資訊的位元數相同。
- 如申請專利範圍第8項所述之記憶體控制器,其中該記憶體管理電路更用以執行至少下列程序:產生對應多筆其他資料的多個錯誤檢查與校正碼並且將該些其他資料與對應該些其他資料的錯誤檢查與校正碼依序地寫入至該第一實體區塊的該些實體頁面中;依據該些其他資料產生一第二同位資訊;接續該些其他資料將該第二同位資訊寫入至該第一實體區塊的該些實體頁面的其中之一中;使用對應該些其他資料的錯誤檢查與校正碼來校正該些其他資料;以及當無法藉由使用該些其他資料的錯誤檢查與校正碼來校正該些其他資料時依據該第二同位資訊來校正在該第一實體區塊中的該些其他資料。
- 如申請專利範圍第8項所述之記憶體控制器,其中該第一實體區塊的該些實體頁面包括多個第一實體頁面與對應該些第一實體頁面的多個第二實體頁面,並且寫入資料至該些第一實體頁面的速度不同於寫入資料至該些第二實體頁面的速度,其中該記憶體管理電路所執行之依據該些資料產生該第一同位資訊的程序包括:為該些資料之中被寫入至該些第一實體頁面的資料產生一第一子同位資訊;以及為該些資料之中被寫入至該些第二實體頁面的資料產生一第二子同位資訊,其中該記憶體管理電路所執行之接續該些資料將該第一同位資訊寫入至該些實體頁面的其中之一的程序包括:將該第一子同位資訊寫入至該些第二實體頁面的其中之一中;以及將該第二子同位資訊寫入至該些第二實體頁面的其中之一中,其中寫入該第一子同位資訊的第二實體頁面與寫入該第二子同位資訊的第二實體頁面屬於不同的記憶胞。
- 一種記憶體儲存系統,包括:一連接器;一記憶體晶片,具有多個實體區塊,每一實體區塊具有多個實體頁面,並且每一實體區塊的該些實體頁面可獨立地被寫入且同時地被抹除;以及一記憶體控制器,耦接至該記憶體晶片與該連接器,用以執行至少下列程序:產生對應多筆資料的多個錯誤檢查與校正碼並且將該些資料與對應該些資料的錯誤檢查與校正碼依序地寫入至該些實體區塊之中的一第一實體區塊的該些實體頁面中;依據該些資料產生一第一同位資訊;接續該些資料將該第一同位資訊寫入至該第一實體區塊的該些實體頁面的其中之一中;使用對應該些資料的錯誤檢查與校正碼來校正該些資料;以及當無法藉由使用該些資料的錯誤檢查與校正碼來校正該些資料時依據該第一同位資訊校正在該第一實體區塊中的該些資料。
- 如申請專利範圍第13項所述之記憶體儲存系統,其中該記憶體控制器所執行之依據該些資料產生該第一同位資訊的程序包括:依序地依據每一資料執行一互斥(XOR)運算以產生該第一同位資訊。
- 如申請專利範圍第13項所述之記憶體儲存系統,其中該第一同位資訊可校正的位元數的數目與該第一同位資訊的位元數相同。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099108358A TWI447739B (zh) | 2010-03-22 | 2010-03-22 | 錯誤校正方法、記憶體控制器與儲存系統 |
US12/785,729 US8386905B2 (en) | 2010-03-22 | 2010-05-24 | Error correcting method, and memory controller and memory storage system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099108358A TWI447739B (zh) | 2010-03-22 | 2010-03-22 | 錯誤校正方法、記憶體控制器與儲存系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201133498A TW201133498A (en) | 2011-10-01 |
TWI447739B true TWI447739B (zh) | 2014-08-01 |
Family
ID=44648187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099108358A TWI447739B (zh) | 2010-03-22 | 2010-03-22 | 錯誤校正方法、記憶體控制器與儲存系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8386905B2 (zh) |
TW (1) | TWI447739B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417877B2 (en) * | 2010-08-31 | 2013-04-09 | Micron Technology, Inc | Stripe-based non-volatile multilevel memory operation |
US8949686B1 (en) | 2011-02-13 | 2015-02-03 | Apple Inc. | Protection against word line failure in memory devices |
TWI459197B (zh) * | 2011-04-21 | 2014-11-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
JP2013093012A (ja) * | 2011-10-07 | 2013-05-16 | Panasonic Corp | メモリコントローラ、記憶装置 |
CN103197985B (zh) * | 2011-11-08 | 2018-07-13 | 索尼公司 | 存储控制装置 |
US9053809B2 (en) * | 2011-11-09 | 2015-06-09 | Apple Inc. | Data protection from write failures in nonvolatile memory |
DE102012102856A1 (de) * | 2012-04-02 | 2013-10-02 | Minebea Co., Ltd. | Vorrichtung und Verfahren zum Lesen und Speichern von Daten |
TWI557636B (zh) * | 2012-11-12 | 2016-11-11 | 慧榮科技股份有限公司 | 儲存媒體、存取系統及方法 |
CN104810059B (zh) * | 2014-01-23 | 2018-04-13 | 群联电子股份有限公司 | 错误处理方法、存储器储存装置与存储器控制电路单元 |
US9684559B1 (en) | 2014-04-25 | 2017-06-20 | Altera Corporation | Methods and apparatus for storing error correction information on a memory controller circuit |
US9529671B2 (en) * | 2014-06-17 | 2016-12-27 | Arm Limited | Error detection in stored data values |
US9760438B2 (en) * | 2014-06-17 | 2017-09-12 | Arm Limited | Error detection in stored data values |
CN105335299B (zh) * | 2014-08-12 | 2018-10-02 | 群联电子股份有限公司 | 数据存储方法、存储器控制电路单元及存储器存储装置 |
CN104597843B (zh) * | 2014-12-19 | 2017-10-13 | 清能德创电气技术(北京)有限公司 | 一种判断存储设备中数据是否可用的方法 |
US9891976B2 (en) | 2015-02-26 | 2018-02-13 | Arm Limited | Error detection circuitry for use with memory |
US10410738B2 (en) * | 2016-03-15 | 2019-09-10 | Toshiba Memory Corporation | Memory system and control method |
US10254969B2 (en) * | 2016-05-13 | 2019-04-09 | Seagate Technology Llc | Data refresh in flash memory |
KR20180087494A (ko) * | 2017-01-23 | 2018-08-02 | 에스케이하이닉스 주식회사 | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
US20030066010A1 (en) * | 2001-09-28 | 2003-04-03 | Acton John D. | Xor processing incorporating error correction code data protection |
US6625061B2 (en) * | 2000-10-25 | 2003-09-23 | Fujitsu Limited | Method of managing a defect in a flash memory |
TW200412492A (en) * | 2002-12-21 | 2004-07-16 | Samsung Electronics Co Ltd | Method and apparatus for generating parity information for error correction |
US20060039196A1 (en) * | 2003-10-03 | 2006-02-23 | Gorobets Sergey A | Corrected data storage and handling methods |
US20060069941A1 (en) * | 2004-09-14 | 2006-03-30 | Seagate Technology Llc | Embedded system with reduced susceptibility to single event upset effects |
US20070061672A1 (en) * | 2005-09-01 | 2007-03-15 | David Eggleston | Non-volatile memory with error detection |
US20070237007A1 (en) * | 2006-04-10 | 2007-10-11 | Kabushiki Kaisha Toshiba | Memory controller |
TW200839778A (en) * | 2007-03-22 | 2008-10-01 | Hynix Semiconductor Inc | Semiconductor memory device |
TW200908007A (en) * | 2007-08-14 | 2009-02-16 | Macronix Int Co Ltd | Memory and 1-bit error checking method thereof |
US20090287956A1 (en) * | 2008-05-16 | 2009-11-19 | David Flynn | Apparatus, system, and method for detecting and replacing failed data storage |
US20090327839A1 (en) * | 2008-06-25 | 2009-12-31 | Chi-Weon Yoon | Flash memory device using ecc algorithm and method of operating the same |
US20100011276A1 (en) * | 2008-07-11 | 2010-01-14 | Genesys Logic, Inc. | Storage device for refreshing data pages of flash memory based on error correction code and method for the same |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7793192B2 (en) * | 2004-05-06 | 2010-09-07 | Panasonic Corporation | Semiconductor memory device |
EP2003569B1 (en) * | 2006-03-13 | 2010-06-02 | Panasonic Corporation | Flash memory controller |
US8316273B2 (en) * | 2009-05-18 | 2012-11-20 | Mediatek Inc. | Driving circuit for driving reading operation of optical drive and method for reading information from optical data storage medium |
US8307258B2 (en) * | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
-
2010
- 2010-03-22 TW TW099108358A patent/TWI447739B/zh active
- 2010-05-24 US US12/785,729 patent/US8386905B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
US6625061B2 (en) * | 2000-10-25 | 2003-09-23 | Fujitsu Limited | Method of managing a defect in a flash memory |
US20030066010A1 (en) * | 2001-09-28 | 2003-04-03 | Acton John D. | Xor processing incorporating error correction code data protection |
TW200412492A (en) * | 2002-12-21 | 2004-07-16 | Samsung Electronics Co Ltd | Method and apparatus for generating parity information for error correction |
US20060039196A1 (en) * | 2003-10-03 | 2006-02-23 | Gorobets Sergey A | Corrected data storage and handling methods |
US20060069941A1 (en) * | 2004-09-14 | 2006-03-30 | Seagate Technology Llc | Embedded system with reduced susceptibility to single event upset effects |
US20070061672A1 (en) * | 2005-09-01 | 2007-03-15 | David Eggleston | Non-volatile memory with error detection |
US20070237007A1 (en) * | 2006-04-10 | 2007-10-11 | Kabushiki Kaisha Toshiba | Memory controller |
TW200839778A (en) * | 2007-03-22 | 2008-10-01 | Hynix Semiconductor Inc | Semiconductor memory device |
TW200908007A (en) * | 2007-08-14 | 2009-02-16 | Macronix Int Co Ltd | Memory and 1-bit error checking method thereof |
US20090287956A1 (en) * | 2008-05-16 | 2009-11-19 | David Flynn | Apparatus, system, and method for detecting and replacing failed data storage |
US20090327839A1 (en) * | 2008-06-25 | 2009-12-31 | Chi-Weon Yoon | Flash memory device using ecc algorithm and method of operating the same |
US20100011276A1 (en) * | 2008-07-11 | 2010-01-14 | Genesys Logic, Inc. | Storage device for refreshing data pages of flash memory based on error correction code and method for the same |
Also Published As
Publication number | Publication date |
---|---|
TW201133498A (en) | 2011-10-01 |
US8386905B2 (en) | 2013-02-26 |
US20110231732A1 (en) | 2011-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI447739B (zh) | 錯誤校正方法、記憶體控制器與儲存系統 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI399643B (zh) | 快閃記憶體儲存系統及其控制器與資料寫入方法 | |
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI498898B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI443512B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI668570B (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI494948B (zh) | 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置 | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI447579B (zh) | 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置 | |
TW201305818A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN102592670B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102866861B (zh) | 闪存储存系统、闪存控制器与数据写入方法 | |
TWI448892B (zh) | 資料搬移方法、記憶體控制器與記憶體儲存裝置 | |
CN103593296A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI440044B (zh) | 記憶體管理與寫入方法、記憶體控制器與記憶體儲存系統 | |
CN102800357B (zh) | 程序码载入与存取方法、存储器控制器与存储器储存装置 | |
TW201525693A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI428743B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |