TWI650764B - 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 - Google Patents

存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 Download PDF

Info

Publication number
TWI650764B
TWI650764B TW106145735A TW106145735A TWI650764B TW I650764 B TWI650764 B TW I650764B TW 106145735 A TW106145735 A TW 106145735A TW 106145735 A TW106145735 A TW 106145735A TW I650764 B TWI650764 B TW I650764B
Authority
TW
Taiwan
Prior art keywords
flash memory
data
check codes
block
super block
Prior art date
Application number
TW106145735A
Other languages
English (en)
Other versions
TW201812788A (zh
Inventor
楊宗杰
許鴻榮
Original Assignee
慧榮科技股份有限公司
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 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Publication of TW201812788A publication Critical patent/TW201812788A/zh
Application granted granted Critical
Publication of TWI650764B publication Critical patent/TWI650764B/zh

Links

Abstract

本發明揭露一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組係為包含了多個快閃記憶體晶片的一立體快閃記憶體模組,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁;以及該方法包含有:規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一超級區塊;以及指派一緩衝記憶體空間以用來儲存在一資料寫入至該至少一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。

Description

存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
本發明係有關於快閃記憶體,尤指一種存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置。
為了讓快閃記憶體能夠有更高的密度以及更大的容量,快閃記憶體的製程也朝向立體化的發展,而產生了幾種不同的立體NAND型快閃記憶體(3D NAND-type flash)。在立體NAND型快閃記憶體中,由於整體結構的不同以及浮閘形狀位置的改變,因此在資料的寫入以及讀取上也較傳統的平面NAND型快閃記憶體多出了些許的問題。舉例來說,在某些立體NAND型快閃記憶體中,會將多條字元線(word line)定義為一字元線組,而該字元線組會共同具有部分的控制電路,進而導致當資料寫入到該字元線組之一條字元線上的浮閘電晶體發生失敗時(寫入失敗),會連帶導致該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤;此外,若是該字元線組中的一條字元線發生斷路或短路的狀況時,也會連帶影響到該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤,因此,如何就上述問題提出一種錯誤更正方式,以盡可能地維持資料的正確性,且又不會浪費記憶體空間以節省成本,是一個重要的課題。
因此,本發明的目的之一在於提出一種存取一快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置,其使用類似容錯式磁碟陣列(Redundant Array of Independent Disks,RAID)的錯誤更正方式,但是卻不會大幅浪費快閃記憶體空間,且在快閃記憶體控制器的處理過程中也僅需要很少量的緩衝記憶體空間,以解決先前技術中的問題。
根據本發明的實施例,其係揭露了一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組係為一立體快閃記憶體(3D NAND-type flash)模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,該多個區塊包含了多個多層式儲存(Multiple-Level Cell,MLC)區塊,每一個區塊包含了多個資料頁,每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁。以及該方法包含有:對一資料進行編碼以產生至少一組校驗碼,其中該資料係準備寫入到該多個快閃記憶體晶片的一超級區塊(super block)中,其中該超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊;將該資料寫入至該超級區塊;將該至少一組校驗碼寫入暫存至一緩衝記憶體中;以及從該緩衝記憶體讀取出該至少一組校驗碼,對該至少一組校驗碼進行編碼以產生至少一組最終校驗碼,將該至少一組最終校驗碼寫入至該超級區塊之一快閃記憶體晶片之複數資料頁。
根據本發明的實施例,其另揭露了一種快閃記憶體控制器,該快閃記憶體控制器係用來存取一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,該多個區塊包含了多個多層式儲存區塊,每一個區塊包含了多個資料頁,每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁。該快閃記憶體控制器包含有一記憶體、一微處理器及一編解碼器,該記憶體係用來儲存一程式碼,微處理器係用來執行該程式碼以控制對該快閃記憶體模組之存取,該編解碼器係對一資料進行編碼以產生至少一組校驗碼,其中該資料係準備寫入到該多個快閃記憶體晶片的一超級區塊中,其中該超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊,以及該微處理器將該資料寫入至該超級區塊,將該至少一組校驗碼寫入暫存至一緩衝記憶體中,以及從該緩衝記憶體讀取出該至少一組校驗碼,對該至少一組校驗碼進行編碼以產生至少一組最終校驗碼,將該至少一組最終校驗碼寫入至該超級區塊之一快閃記憶體晶片之複數資料頁。
根據本發明的實施例,其另揭露了 一種記憶裝置,記憶裝置包含有一快閃記憶體模組及一快閃記憶體控制器,快閃記憶體模組係為一立體快閃記憶體模組並包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,該多個區塊包含了多個多層式儲存區塊,每一個區塊包含了多個資料頁,每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁。快閃記憶體控制器係用來存取快閃記憶體模組,當接收到來自一主機的寫入指令以要求將一資料寫入至快閃記憶體模組中時,快閃記憶體控制器對該資料進行編碼以產生至少一組校驗碼,並將該資料寫入到多個快閃記憶體晶片的一超級區塊中,其中該超級區塊包含了該多個快閃記憶體晶片中每一個快閃記憶體晶片的一個多層式儲存區塊,快閃記憶體控制器係將該至少一組校驗碼寫入暫存至一緩衝記憶體中,以及從緩衝記憶體讀取出該至少一組校驗碼,對該至少一組校驗碼進行編碼以產生至少一組最終校驗碼,將該至少一組最終校驗碼寫入至該超級區塊之一快閃記憶體晶片之複數資料頁。
根據本發明的實施例,其另揭露了一種存取一快閃記憶體模組的方法,快閃記憶體模組係為一立體快閃記憶體模組並包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁,每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁。該方法包含有:規劃該多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一超級區塊;以及配置一緩衝記憶體空間以用來儲存在一資料寫入至該至少一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。
根據本發明的實施例,其另揭露了一種快閃記憶體控制器,快閃記憶體控制器係用來存取一快閃記憶體模組,其中快閃記憶體模組係為一立體快閃記憶體模組並包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁,每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁。快閃記憶體控制器包含有一記憶體、一微處理器及一編解碼器,記憶體係用來儲存一程式碼,微處理器係用來執行該程式碼以控制對快閃記憶體模組之存取,微處理器規劃多個快閃記憶體晶片以使得該多個快閃記憶體晶片具有至少一超級區塊,以及配置一緩衝記憶體空間以用來儲存在一資料寫入至該至少一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。
根據本發明的實施例,其另揭露了一種記憶裝置,記憶體裝置包含有一快閃記憶體模組及一快閃記憶體控制器,快閃記憶體模組係為一立體快閃記憶體模組並包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,每一個區塊包含了多個資料頁,每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁。快閃記憶體控制器係用來存取快閃記憶體模組,快閃記憶體控制器規劃多個快閃記憶體晶片以使得多個快閃記憶體晶片具有至少一超級區塊,以及指派一緩衝記憶體空間以用來儲存在一資料寫入至該至少一超級區塊的過程中所編碼產生之多組暫時性的校驗碼。
請參考第1圖,第1圖為依據本發明一實施例之一種記憶裝置100的示意圖,其中本實施例之記憶裝置100尤其係為可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。其他實施例中,緩衝記憶體116可設置於控制器110的外部,並利用一動態隨機存取記憶體所配置的一塊儲存空間來實現。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之快閃記憶體控制器110)對快閃記憶體模組120進行複製、抹除、合併資料等運作係以區塊為單位來進行複製、抹除、合併資料。另外,一區塊可記錄特定數量的資料頁(Page),其中該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體模組120進行寫入資料(Program)之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。
另一方面,在本實施例中,控制邏輯114包含了一第一編解碼器(codec)132以及一第二編解碼器134,其中第一編解碼器132係用來對寫入到快閃記憶體模組120之一區塊中的資料進行編碼,以產生對應的錯誤更正碼(error correction code),其中第一編解碼器132所產生的錯誤更正碼僅是根據寫入到一資料頁中一區段(sector)的內容所產生的,且所產生的錯誤更正碼會連同該區段的資料內容一併寫入到該資料頁中。另外,第二編解碼器134為一容錯式磁碟陣列(RAID)編解碼器,其是用來對寫入至多個快閃記憶體晶片中的資料進行編碼,以產生對應的校驗碼,其操作將於以下內容中詳述。
在本實施例中,快閃記憶體模組120係為一立體NAND型快閃記憶體(3D NAND-type flash)模組,請參考第2圖,其為一立體NAND型快閃記憶體的範例示意圖,如第2圖所示,立體NAND型快閃記憶體包含了多個浮閘電晶體202,其透過多條位元線(圖示僅繪示了BL1~BL3)及多條字元線(例如圖示的WL0~WL2、WL4~WL6)來構成立體NAND型快閃記憶體架構,本實施例中一字元線又可被稱作為字串(String)。在第2圖中,以最上面的一個平面為例,字元線WL0上的所有浮閘電晶體構成了至少一資料頁,字元線WL1上的所有浮閘電晶體構成了另至少一資料頁,而字元線WL2的所有浮閘電晶體構成了再另至少一資料頁…以此類堆。此外,根據快閃記憶體寫入方式的不同,字元線WL0與資料頁(邏輯資料頁)之間的定義也會有所不同,詳細來說,當使用單層式儲存(Single-Level Cell,SLC)的方式寫入時,字元線WL0上的所有浮閘電晶體僅對應到單一邏輯資料頁;當使用多層式儲存(Multi-Level Cell,MLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到兩個、三個或是四個邏輯資料頁,其中字元線WL0上的所有浮閘電晶體對應到三個邏輯資料頁的情形可以稱為三層式儲存(Triple-Level Cell,TLC)架構,而字元線WL0上的所有浮閘電晶體對應到四個邏輯資料頁的情形可以稱為四層式儲存(Quad-Level Cell,QLC)架構。由於本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體的結構以及字元線及資料頁之間的關係,故相關的細節在此不予贅述。另外,在快閃記憶體控制器110的操作中,“資料頁”為一最小寫入單位,且“區塊”為一最小抹除單位。
請參考第3圖,其為浮閘電晶體202結構的概念示意圖,如第3圖所示,每一個浮閘電晶體的閘極及浮閘是圍繞在源極與汲極周圍(gate all around),以增強通道感應能力。
需注意的是,第2、3圖所示的僅為立體NAND型快閃記憶體與浮閘電晶體202的範例,而並非是作為本發明的限制,本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體尚有其他種型式,例如部分的字元線可彼此連接..等等,且浮閘電晶體202的設計也能有些許的改變。
如先前技術中所述,在某些立體NAND型快閃記憶體中,會將多條字元線定義為一字元線組,而該字元線組會共同具有部分的控制電路,進而導致當資料寫入到該字元線組之一條字元線上的浮閘電晶體發生失敗時(寫入失敗),會連帶導致該字元線組的其他字元線上的浮閘電晶體的資料發生錯誤。在一實施例中,位於同一個平面上的字元線會被設定為一字元線組,參考第2圖,字元線WL0~WL3會被歸於第一字元線組,而字元線WL4~WL7會被歸於第二字元線組…以此類推。請參考第4圖,其為一區塊中多個字元線組的示意圖,在第4圖中係假設該區塊包含了48個立體堆疊平面(亦即48個字元線組),每一字元線組包括4條字元線,因此該區塊共包括了192條字元線上的所有浮閘電晶體,因此,在第4圖中的區塊係包含了48個字元線組(以WL_G0~WL_G47表示之);另外,在圖式中該區塊為三層式儲存(TLC)區塊,亦即每一條字元線上的浮閘電晶體可用來儲存三個資料頁的資料,如第4圖所示,以字元線組WL_G0為例,其包含之字元線WL0上的浮閘電晶體可用來儲存低資料頁P0L、中間資料頁P0M及高資料頁P0U,字元線WL1上的浮閘電晶體可用來儲存低資料頁P1L、中間資料頁P1M及高資料頁P1U,字元線WL2上的浮閘電晶體可用來儲存低資料頁P2L、中間資料頁P2M及高資料頁P2U,以及字元線WL3上的浮閘電晶體可用來儲存低資料頁P3L、中間資料頁P3M及高資料頁P3U。當控制器將資料寫入到字元線組WL_G0的資料頁時,係循序將資料寫入到字元線WL0、WL1、WL2、WL3中的浮閘電晶體,如果字元線WL0、WL1上的資料都成功寫入,但是當資料寫入字元線WL2時發生寫入失敗(Program fail),則會連帶使得字元線WL0、WL1上原本寫入成功的資料也發生錯誤,亦即字元線組WL_G0發生寫入失敗。
另外,在某些情況下,即使資料已經成功寫入,但在後續的讀取中仍然可能會發生無法讀取或是讀取錯誤的情形,例如字元線發生斷路(open)的情形而造成無法讀取資料的情形,此外,如先前所述,一個字元線組中只要有一條字元線發生斷路,便會造成整個字元線組的資料都會發生錯誤。另一方面,若是在不同字元線組中的兩個字元線發生短路,例如第4圖中的字元線WL3和字元線WL4發生短路的現象,則會造成兩個字元線組WL_G0與WL_G1上的資料均無法成功讀取,視為是兩個字元線組WL_G0與WL_G1發生短路的現象。
如上所述,由於快閃記憶體在寫入資料以及後續的讀取中會碰到上述寫入失敗、字元線斷路以及字元線短路的情形而造成一個或兩個相鄰字元線組的資料均發生錯誤,因此,本發明在以下的實施例中提出了一種可以確實解決上述問題的存取快閃記憶體模組120的方法,且僅需要很少的資源(亦即很少的記憶體空間)便可以完成。具體內容如下所述。
請搭配參考第1圖與第5圖,第5圖為快閃記憶體控制器110將資料寫入到快閃記憶體模組120的示意圖。如第5圖所示,快閃記憶體模組120包含了多個通道(在本實施例中,係以兩個通道510、520為例),且每一個通道在快閃記憶體控制器110中有各自的序列傳輸器(sequencer)且均包含了多個快閃記憶體晶片,而在本實施例中通道510包含了快閃記憶體晶片512、514,且通道520包含了快閃記憶體晶片522、524。另外,每一個快閃記憶體晶片512、514、522、524中的一個區塊會被組態為一個超級區塊(super block),而快閃記憶體控制器110會將資料以超級區塊為單位來進行寫入,並且在資料寫入的過程中,快閃記憶體控制器110的控制邏輯114係通過存取緩衝記憶體116來暫存第二編解碼器134所產生之暫時的部分校驗碼於緩衝記憶體116以及從緩衝記憶體116讀取所暫存的部分校驗碼,由於緩衝記憶體116可由動態隨機存取記憶體來實現,因此可降低電路成本,舉例來說,可採用一動態隨機存取記憶體,該動態隨機存取記憶體可儲存有一般資料區、對照表資料區以及另指派配置一塊記憶體儲存空間來暫存校驗碼或部分校驗碼,該配置的記憶體儲存空間可以是具有固定的實體位址或是邏輯位址。在本實施例中,超級區塊530包含了每一個快閃記憶體晶片512、514、522、524中的一個三層式儲存區塊;需注意的是,在本發明的其他實施例中,超級區塊530所包含的也可以是每一個快閃記憶體晶片512、514、522、524中的一個四層式儲存(Quad-Level Cell,QLC)區塊。
請參考第6圖,其中第6圖為依據本發明一第一實施例之快閃記憶體控制器110將資料寫入到超級區塊530的示意圖,其中在以下的敘述中,每一筆資料係寫入到快閃記憶體晶片512、514、522、524的一個資料頁,例如,第1筆資料會被寫入到每一個快閃記憶體晶片512、514、522、524中的第一個資料頁P0的低資料頁P0L、中間資料頁P0M、高資料頁P0U,第2筆資料會被寫入到每一個快閃記憶體晶片512、514、522、524中的第二個資料頁P1的低資料頁P1L、中間資料頁P1M、高資料頁P1U,…,第N筆資料會被寫入到每一個快閃記憶體晶片512、514、522、524中的第N個資料頁P(N-1) 的低資料頁P(N-1)L、中間資料頁P(N-1)M、高資料頁P(N-1)U,N例如是192。
當快閃記憶體控制器110需要將第1筆資料寫入至超級區塊530中時,首先,第一編解碼器132分別對第1筆資料進行編碼以產生對應的錯誤更正碼,並將第1筆資料與第一編解碼器132所產生的錯誤更正碼一併寫入到每一個快閃記憶體晶片512、514、522、524中的第一個資料頁P0中,詳細來說,第一編解碼器132對第1筆資料中第一部分資料進行編碼以產生錯誤更正碼,並將第一部分資料與其錯誤更正碼寫入到快閃記憶體晶片512的第一個資料頁P0的低資料頁P0L、中間資料頁P0M、高資料頁P0U;第一編解碼器132對第1筆資料中第二部分資料進行編碼以產生錯誤更正碼,並將第二部分資料與其錯誤更正碼寫入到快閃記憶體晶片514的第一個資料頁P0的低資料頁P0L、中間資料頁P0M、高資料頁P0U;第一編解碼器132對第1筆資料中第三部分資料進行編碼以產生錯誤更正碼,並將第三部分資料與其錯誤更正碼寫入到快閃記憶體晶片522的第一個資料頁P0的低資料頁P0L、中間資料頁P0M、高資料頁P0U;以及第一編解碼器132對第1筆資料中第四部分資料(最後一部分資料)進行編碼以產生錯誤更正碼,並將第四部分資料與其錯誤更正碼寫入到快閃記憶體晶片524的第一個資料頁P0的低資料頁P0L、中間資料頁P0M、高資料頁P0U。需注意的是,第一編解碼器132要的操作可以是以一個區段(sector)為單位來進行,其中每一個資料頁係由多個區段所組成。
在第1筆資料以及第一編解碼器132所產生的錯誤更正碼寫入至超級區塊530之前,快閃記憶體控制器110中的第二編解碼器134會針對第1筆資料以及其錯誤更正碼進行RAID編碼以產生第1組校驗碼S0。在一實施例中,第二編解碼器134可以採用里德-所羅門( Reed Solomon,RS )編碼方式或是互斥或(exclusive-OR,XOR)運算來對寫入到每一個快閃記憶體晶片512、514、522、524中的第一個資料頁P0的資料進行編碼,以產生第1組校驗碼S0。舉例來說,但並非作為本發明的限制,第二編解碼器134可以對快閃記憶體晶片512、514、522、524中的第一個資料頁P0的低資料頁P0L的資料彼此一起作互斥或運算來得到第1組校驗碼S0的第一部分校驗碼S0L,對快閃記憶體晶片512、514、522、524中的第一個資料頁P0的中間資料頁P0M的資料彼此一起作互斥或運算來得到第1組校驗碼S0的第二部分校驗碼S0M,以及對快閃記憶體晶片512、514、522、524中的第一個資料頁P0的高資料頁P0U的資料彼此一起作互斥或運算來得到第1組校驗碼S0的第三部分校驗碼S0U;也就是說,第1組校驗碼S0包括有第一部分校驗碼S0L、第二部分校驗碼S0M、第三部分校驗碼S0U,而這三個部分校驗碼是通過不同次的互斥或運算而產生的,實作上,第二編解碼器134可包括有3個編解碼引擎來產生這3個不同的部分校驗碼;相似地,對於其他組的校驗碼,亦可利用第二編解碼器134所包括的3個編解碼引擎來分別產生相對應的3個不同的部分校驗碼。另外,如果採用里德-所羅門的編碼,則第二編解碼器134係直接對快閃記憶體晶片512、514、522、524中的第一個資料頁P0的資料彼此一起作互斥或運算來得到第1組校驗碼S0,而不需採用3組編解碼引擎來分別產生這3個不同的部分校驗碼。
第二編解碼器134所產生的第1組校驗碼S0係用來當快閃記憶體晶片512、514、522或524中的其中一個快閃記憶體晶片的第一個資料頁P0發生資料錯誤時進行錯誤更正,舉例來說,以互斥或運算編碼為例,若快閃記憶體晶片512中的第一個資料頁P0的低資料頁P0L的資料發生無法利用本身的資料進行更正的錯誤時(亦即,無法利用第一編解碼器132所產生的錯誤更正碼來進行更正時),第二編解碼器134可以讀取快閃記憶體晶片514、522、524中所有第一個資料頁P0的低資料頁P0L的資料,再加上第1組校驗碼S0的第一部分校驗碼S0L,來進行錯誤更正以決定出快閃記憶體晶片512中的第一個資料頁P0的低資料頁P0L的資料,相同地,對於資料頁P0的中間資料頁P0M或高資料頁P0U的資料發生無法利用本身的資料進行更正的錯誤時,第二編解碼器134可以讀取快閃記憶體晶片514、522、524中所有第一個資料頁P0的中間資料頁P0M的資料,再加上第1組校驗碼S0的第二部分校驗碼S0M,來進行錯誤更正以決定出快閃記憶體晶片512中的第一個資料頁P0的中間資料頁P0M的資料,以及可以讀取快閃記憶體晶片514、522、524中所有第一個資料頁P0的高資料頁P0U的資料,再加上第1組校驗碼S0的第三部分校驗碼S0U,來進行錯誤更正以決定出快閃記憶體晶片512中的第一個資料頁P0的高資料頁P0U的資料。另外,以里德-所羅門編碼為例,若快閃記憶體晶片512中的第一個資料頁P0的資料發生無法利用本身的資料進行更正的錯誤時,第二編解碼器134可以讀取快閃記憶體晶片514、522、524中所有第一個資料頁P0的資料,再加上第1組校驗碼S0,來進行錯誤更正以決定出快閃記憶體晶片512中的第一個資料頁P0的資料。
此外,第二編解碼器134所產生的第1組校驗碼S0會先暫時儲存在快閃記憶體控制器110的緩衝記憶體116中。
另外,在第1筆資料寫入的過程中,快閃記憶體控制器110會對寫入的資料進行讀取檢查的操作,以確定資料是否成功寫入。當資料寫入錯誤或失敗時,第二編解碼器134可以直接使用儲存在緩衝記憶體116中的第1組校驗碼S0來對所讀出的資料進行更正,而由於快閃記憶體模組120無法直接對已寫入的資料做修正,更正後的資料(更正後的第1筆資料)可以等待後續適合的時間連同超級區塊530中的其他資料一併寫入到另外一個超級區塊中。
接著,當快閃記憶體控制器110需要將第2筆資料寫入至超級區塊530中時,首先,第一編解碼器132分別對第2筆資料進行編碼以產生對應的錯誤更正碼,並將第2筆資料與第一編解碼器132所產生的錯誤更正碼一併寫入到每一個快閃記憶體晶片512、514、522、524中的第二個資料頁P1中。在第2筆資料以及第一編解碼器132所產生的錯誤更正碼寫入至超級區塊530之前,快閃記憶體控制器110中的第二編解碼器134會針對第2筆資料以及其錯誤更正碼進行RAID編碼以產生第2組校驗碼S1。在一實施例中,第二編解碼器134可以採用里德-所羅門編碼方式或是互斥或運算來對寫入到每一個快閃記憶體晶片512、514、522、524中的第二個資料頁P1的資料進行編碼,以產生第2組錯誤更正碼S1。以互斥或運算為例,第二編解碼器134對快閃記憶體晶片512、514、522、524中的第二個資料頁P1的低資料頁P1L的資料彼此一起作互斥或運算來得到第2組校驗碼S1的第一部分校驗碼S1L,對該些第二個資料頁P1的中間資料頁P1M的資料彼此一起作互斥或運算來得到第2組校驗碼S1的第二部分校驗碼S1M,以及對該些第二個資料頁P1的高資料頁P1U的資料彼此一起作互斥或運算來得到第2組校驗碼S1的第三部分校驗碼S1U;也就是說,第2組校驗碼S1包括有第一部分校驗碼S1L、第二部分校驗碼S1M、第三部分校驗碼S1U,而這三個部分校驗碼是通過不同次的互斥或運算而產生的,第二編解碼器134可通過前述3個編解碼引擎來產生這3個不同的部分校驗碼;相似地,對於其他組的校驗碼,亦可利用第二編解碼器134所包括的3個編解碼引擎來分別產生相對應的3個不同的部分校驗碼。另外,如果採用里德-所羅門的編碼,則第二編解碼器134係直接對該些第二個資料頁P1的資料彼此一起作互斥或運算來得到第2組校驗碼S1,而不需採用3組編解碼引擎來分別產生這3個不同的部分校驗碼。
此外,第二編解碼器134所產生的第2組校驗碼S1會先暫時儲存在快閃記憶體控制器110的緩衝記憶體116中。類似地,在第2筆資料寫入的過程中,快閃記憶體控制器110也會對寫入的資料進行讀取檢查的操作,以確定資料是否成功寫入。當資料寫入錯誤時,第二編解碼器134可以直接使用儲存在緩衝記憶體116中的第2組校驗碼S1來對所讀出的資料進行更正,而更正後的資料(更正後的第2筆資料)可以等待後續適合的時間連同超級區塊530中的其他資料一併寫入到另外一個超級區塊中。
需注意的是,當第2筆資料寫入的過程中也發生寫入錯誤的情形時,則由於資料頁P1、P0是屬於同一個字元線組WL_G0,因此,快閃記憶體晶片512、514、522、524中的資料頁P0也有可能發生損壞。舉例來說,假設快閃記憶體晶片514的資料頁P1在資料寫入的過程中發生錯誤,則先前已成功寫入的快閃記憶體晶片514的資料頁P0也會發生錯誤。此時,由於緩衝記憶體116本身並沒有儲存第1組校驗碼S0,因此,快閃記憶體控制器110會自緩衝記憶體116中讀取第1組校驗碼S0,來對自超級區塊530所讀取的第1筆資料來進行更正。
基於同樣的操作,快閃記憶體控制器110繼續將第3筆資料寫入至快閃記憶體晶片512、514、522、524中的第三個資料頁P2中,並產生相對應的第3組校驗碼S2;以及將第4筆資料寫入至快閃記憶體晶片512、514、522、524中的第四個資料頁P3中,並產生相對應的第4組校驗碼S3,以完成字元線組WL_G0的資料寫入。相同地,快閃記憶體控制器110繼續將接下來的第5~8筆資料分別寫入至快閃記憶體晶片512、514、522、524中的資料頁P4~P7中,並產生相對應的字元線組WL_G1的第1~4組校驗碼S4~S7,完成字元線組WL_G1的資料寫入。為了電路成本考量,緩衝記憶體116係以動態隨機存取記憶體實現並配置有一塊儲存空間,可用來暫存快閃記憶體控制器110所產生的RAID編碼的校驗碼。控制器110可於產生每一組校驗碼時將該組校驗碼暫存於緩衝記憶體116,或是於產生8組校驗碼時將該8組校驗碼一同暫存於緩衝記憶體116。
接著,類似以上步驟,快閃記憶體控制器110將接下來的第5~184筆資料寫入至快閃記憶體晶片512、514、522、524中,且第二編解碼器134對第5~184筆資料進行RAID編碼以分別產生字元線組WL_G2~WL_G45各自的第1~4組校驗碼S8~S183,並將該些組校驗碼S8~S183暫存於緩衝記憶體116。
對於超級區塊530的最後兩個字元線組WL_G46、WL_G47,控制器110係被安排將相關的校驗碼進行處理並寫入至最後一個晶片(亦即晶片524)的資料頁P184~P191,而為了解決字元線組寫入失敗、斷號及短路的情況,控制器110於處理相關的校驗碼時係將所有字元線組依寫入順序區分為奇數組的複數字元線組(亦即WL_G0、WL_G2、WL_G4、WL_G6、…、WL_G44、WL_G46)以及偶數組的複數字元線組(亦即WL_G1、WL_G3、WL_G5、WL_G7、…、WL_G45、WL_G47)。針對第185筆資料,快閃記憶體控制器110係將第185筆資料連同第一編解碼器132所產生的錯誤更正碼來寫入至快閃記憶體晶片512、514、522中的資料頁P184(奇數組字元線組的最後一個字元線組WL_G46),而並不會將資料寫入到快閃記憶體晶片524中的資料頁P184。在第185筆資料寫入至超級區塊530之前,第二編解碼器134對第185筆資料及其錯誤更正碼來進行編碼以產生第185組校驗碼S184,以里德-所羅門編碼為例,快閃記憶體控制器110自緩衝記憶體116中讀取先前奇數組字元線組中每一個字元線組WL_G0、WL_G2、WL_G4、WL_G6、…、WL_G44的第一組校驗碼S0、S8、S16、…、S176,且第二編解碼器對校驗碼S0、S8、S16、…、S176以及校驗碼S184彼此一起作里德-所羅門編碼來得到最終校驗碼SF0,快閃記憶體控制器110將最終校驗碼SF0寫入到快閃記憶體晶片524中的資料頁P184。若以互斥或運算作為RAID編碼機制,在一實施例中,第二編解碼器134係通過第一編碼引擎對校驗碼S0、S8、S16、…、S176、S184中的第一部分校驗碼(S0L、S8L、S16L、…、S176L、S184L)一起作互斥或運算來產生最終校驗碼SF0的第一部分校驗碼,通過第二編碼引擎對校驗碼S0、S8、S16、…、S176、S184中的第二部分校驗碼(S0M、S8M、S16M、…、S176M、S184M)一起作互斥或運算來產生最終校驗碼SF0的第二部分校驗碼,以及通過第三編碼引擎對校驗碼S0、S8、S16、…、S176、S184中的第三部分校驗碼(S0U、S8U、S16U、…、S176U、S184U)一起作互斥或運算來產生最終校驗碼SF0的第三部分校驗碼,最終校驗碼SF0的第一、第二、第三部分校驗碼係分別被控制器110寫入至晶片524的資料頁P184的低資料頁、中間資料頁及高資料頁中。
同樣地,例如針對第186~188筆資料,快閃記憶體控制器110係將第186~188筆資料連同第一編解碼器132所產生的錯誤更正碼分別寫入至快閃記憶體晶片512、514、522中的資料頁P185~P187(奇數組字元線組的最後一個字元線組WL_G46),而並不會將資料寫入到快閃記憶體晶片524中的資料頁P185~P187。以第186筆資料來說,在第186筆資料寫入至超級區塊530之前,第二編解碼器134對第186筆資料及其錯誤更正碼來進行編碼以產生第186組校驗碼S185,以里德-所羅門編碼為例,快閃記憶體控制器110自緩衝記憶體116中讀取先前奇數組字元線組中每一個字元線組WL_G0、WL_G2、WL_G4、WL_G6、…、WL_G44的第二組校驗碼S1、S9、S17、…、S177,且第二編解碼器對校驗碼S1、S9、S17、…、S177以及校驗碼S185彼此一起作里德-所羅門編碼來得到最終校驗碼SF1,快閃記憶體控制器110將最終校驗碼SF1寫入到快閃記憶體晶片524中的資料頁P185。若以互斥或運算作為RAID編碼機制,在一實施例中,第二編解碼器134係通過第一編碼引擎對校驗碼S1、S9、S17、…、S177、S185中的第一部分校驗碼(S1L、S9L、S17L、…、S177L、S185L)一起作互斥或運算來產生最終校驗碼SF1的第一部分校驗碼,通過第二編碼引擎對校驗碼S1、S9、S17、…、S177、S185中的第二部分校驗碼(S1M、S9M、S17M、…、S177M、S185M)一起作互斥或運算來產生最終校驗碼SF1的第二部分校驗碼,以及通過第三編碼引擎對校驗碼S1、S9、S17、…、S177、S185中的第三部分校驗碼(S1U、S9U、S17U、…、S177U、S185U)一起作互斥或運算來產生最終校驗碼SF1的第三部分校驗碼,最終校驗碼SF1的第一、第二、第三部分校驗碼係分別被控制器110寫入至晶片524的資料頁P185的低資料頁、中間資料頁及高資料頁中。
基於類似的操作,針對第189~192筆資料,快閃記憶體控制器110將第189~192筆資料連同第一編解碼器132所產生的錯誤更正碼來寫入至快閃記憶體晶片512、514、522中的資料頁P188~P191;且第二編解碼器134也根據上述類似的操作來產生偶數組字元線組的第一至第四組最終校驗碼SF4~SF7,並將最終校驗碼SF4~SF7分別寫入到快閃記憶體晶片524中的資料頁P188~P191。
上述根據第1~192組校驗碼S0~S191來產生奇數組字元線組與偶數組字元線組的最終校驗碼SF0~SF7的概念可以參考第7、8圖所示的內容,其中第7圖為採用里德-所羅門編碼作為RAID編碼運算的示意圖,第8圖為採用互斥或運算作為RAID編碼運算的示意圖。
需注意的是,上述的最終校驗碼SF0~SF7是由校驗碼S0~S191所分別對應產生的,最終校驗碼SF0~SF7實質上便帶有先前每一組校驗碼S0~S191的資訊。亦即,在後續的讀取操作中,每一組校驗碼S0~S191除了可以再次根據相對應的資料頁內容來得到之外(例如讀取快閃記憶體晶片512、514、522、524的資料頁P1來得到校驗碼S1),若是發生錯誤時也可以透過相對應的最終校驗碼SF0~SF7來進行更正。舉例來說,假設字元線組WL_G0中有一條字元線發生斷路,例如快閃記憶體晶片514之資料頁P0所對應到的字元線斷路,則快閃記憶體控制器110可以讀取其他字元線組中的資料來重新產生校驗碼S8、S16、...、S184以及最終校驗碼SF0,以重新產生校驗碼S0,之後再使用校驗碼S0以及自快閃記憶體晶片512、522、524之資料頁P0所讀取的內容來重新產生快閃記憶體晶片514之資料頁P0的資料;快閃記憶體控制器110讀取其他字元線組中的資料來重新產生校驗碼S9、S17、...、S185以及最終校驗碼SF1,以重新產生校驗碼S1,之後再使用校驗碼S1以及自快閃記憶體晶片512、522、524之資料頁P1所讀取的內容來重新產生快閃記憶體晶片514之資料頁P1的資料;以及根據上述類似操作來重新產生快閃記憶體晶片514之資料頁P2、P3的資料。如上所述,透過上述操作,只要超級區塊530沒有出現多個資料線斷路的情形,均可以順利地將資料更正還原,而不會發生資料無法修復的情形。
此外,若是字元線組WL_G0和WL_G1之間發生兩條資料線短路,例如快閃記憶體晶片514之資料頁P3、P4所對應到的字元線短路的情形,亦可以透過上一個段落所提及的方法來將字元線組WL_G0和WL_G1內的資料更正還原,而不會發生資料無法修復的情形。
需注意的是,第6圖所繪示的P0~P191的每一者所代表的並非限定是三個資料頁,而可能是2個或是4個資料頁,例如在兩層式MLC架構中,P0~P191的每一者包括有2個資料頁,而在四層式QLC架構中,P0~P191的每一者包括有4個資料頁。
另外,在第5圖中,超級區塊530僅包含了每一個快閃記憶體晶片512、514、522、524中的一個三層式儲存區塊,然而,在其他實施例中,例如一實施例中快閃記憶體模組120是被組態為兩個區塊平面(Block Plane)的情形之下,超級區塊530可以包含了每一個快閃記憶體晶片512、514、522、524中的兩個三層式儲存區塊,快閃記憶體控制器110將資料寫入到超級區塊530的示意圖可以參考第9圖,第10圖與第11圖則分別繪示了根據第9圖之第1~192組校驗碼S0~S191通過里德-所羅門編碼及互斥或運算來產生8組最終校驗碼SF0~SF7的示意圖;其對應的運作與第6圖至第8圖所示之實施例的操作類似,為避免篇幅過於冗長,不再贅述。
簡要歸納本發明,在本發明的存取快閃記憶體模組的方法的實施例中,第二編解碼器會循序對寫入至多層式儲存的超級區塊的多筆資料來進行編碼,並將所產生之暫時性的校驗碼儲存至一緩衝記憶體中,該緩衝記憶體例如一動態隨機存取記憶體內所配置出的一塊儲存空間(取代使用靜態隨機存取記憶體來節省電路成本),之後再讀取該緩衝記憶體中所儲存的暫時性的校驗碼來產生資料量很低的最終校驗碼,並將最終校驗碼儲存至多層式儲存的超級區塊中最後一組奇數組字元線組之最後一資料頁以及最後一組偶數組字元線組之最後一資料頁。透過上述存取方式,除了可以對資料寫入錯誤、字元線斷路以及字元線短路所造成的資料讀取錯誤進行更正之外,也可以大幅降低快閃記憶體控制器中緩衝記憶體的容量需求,且快閃記憶體模組中也不需要浪費太多個空間來儲存校驗碼,故可以大幅降低快閃記憶體控制器的成本以及快閃記憶體模組的使用效率。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧記憶裝置
110‧‧‧快閃記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧快閃記憶體模組
132‧‧‧第一編解碼器
134‧‧‧第二編解碼器
202‧‧‧浮閘電晶體
510、520‧‧‧通道
512、514、516、518‧‧‧快閃記憶體晶片
530‧‧‧超級區塊
B1~B3‧‧‧位元線
WL0~WL47‧‧‧字元線
WL_G0~WL_G47‧‧‧字元線組
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。 第2圖為一立體NAND型快閃記憶體的範例示意圖。 第3圖為浮閘電晶體結構的概念示意圖。 第4圖為一區塊中多個字元線組的示意圖。 第5圖為快閃記憶體控制器將資料寫入到快閃記憶體模組、以及超級區塊的示意圖。 第6圖為依據本發明一第一實施例之快閃記憶體控制器將資料寫入到超級區塊的示意圖。 第7圖為根據第6圖所示之第1~192組校驗碼S0~S191採用里德-所羅門編碼來產生8組最終校驗碼SF0~SF7的示意圖。 第8圖為根據第6圖所示之第1~192組校驗碼S0~S191採用互斥或運算來產生8組最終校驗碼SF0~SF7的示意圖。 第9圖為依據本發明一第二實施例之快閃記憶體控制器將資料寫入到超級區塊的示意圖。 第10圖為根據第9圖所示之第1~192組校驗碼S0~S191採用里德-所羅門碼來產生8組最終校驗碼SF0~SF7的示意圖。 第11圖為根據第9圖所示之第1~192組校驗碼S0~S191採用互斥或運算來產生8組最終校驗碼SF0~SF7的示意圖。

Claims (15)

  1. 一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組係為一立體快閃記憶體(3D NAND-type flash)模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,該多個區塊包含了多個多層式儲存(Multiple-Level Cell,MLC)區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該方法包含有:對一資料進行編碼以產生至少一組校驗碼,其中該資料係準備寫入到該多個快閃記憶體晶片的一超級區塊(super block)中,其中該超級區塊包含了該多個快閃記憶體晶片中複數個快閃記憶體晶片的至少一個儲存區塊;將該資料寫入至該超級區塊;將該至少一組校驗碼寫入暫存至一緩衝記憶體中;以及從該緩衝記憶體讀取出該至少一組校驗碼,對該至少一組校驗碼進行編碼以產生至少一組最終校驗碼,將該至少一組最終校驗碼寫入至該超級區塊之資料頁。
  2. 如申請專利範圍第1項所述之方法,另包含有:當該資料發生寫入錯誤或寫入失敗的情形時,直接使用暫存在該緩衝記憶體中的該至少一組校驗碼來對該資料進行更正。
  3. 如申請專利範圍第1項所述之方法,另包含有:在該資料寫入至該超級區塊的過程中: 自該超級區塊讀取該資料之已經寫入至該超級區塊的部分內容;當讀取該資料的部分內容的過程中發生無法更正的錯誤時,自該緩衝記憶體讀取出至少一部份的校驗碼,並使用該至少一部份的校驗碼來對所讀取的資料進行錯誤更正。
  4. 如申請專利範圍第1項所述之方法,其中對該資料進行編碼以產生該至少一組校驗碼的步驟包含有:依序對第1~N筆資料進行編碼以產生第1~N組校驗碼;以及將該資料寫入至該超級區塊的步驟包含有:將該第1~N筆資料分別寫入至該超級區塊之對應於該多個快閃記憶體晶片的第1~N個資料頁中;以及將該組校驗碼寫入至該緩衝記憶體的步驟包含有:將該第1~N組校驗碼寫入至該緩衝記憶體。
  5. 如申請專利範圍第4項所述之方法,其中該至少一組校驗碼為一暫時性的校驗碼,且該方法另包含有:自該緩衝記憶體讀取該第1~N組校驗碼,並根據該第1~N組校驗碼來產生多組最終校驗碼;以及將該多組最終校驗碼寫入至該超級區塊中。
  6. 如申請專利範圍第5項所述之方法,其中每一個區塊中位於同一個平面上的多條字元線構成一個字元線組,以及將該多組最終校驗碼寫入至該超級區塊的步驟包含有:將該多組最終校驗碼寫入至該超級區塊之最後兩個字元線組中對應於一快 閃記憶體晶片的資料頁中。
  7. 如申請專利範圍第1項所述之方法,其中該多層式儲存區塊為三層式儲存(Triple-Level Cell,TLC)區塊或是四層式儲存(Quad-Level Cell,QLC)區塊。
  8. 一種快閃記憶體控制器,該快閃記憶體控制器係用來存取一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,該多個區塊包含了多個多層式儲存區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及該快閃記憶體控制器包含有:一記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一編解碼器;該編解碼器對一資料進行編碼以產生至少一組校驗碼,其中該資料係準備寫入到該多個快閃記憶體晶片的一超級區塊中,其中該超級區塊包含了該多個快閃記憶體晶片中複數個快閃記憶體晶片的至少一個儲存區塊;以及該微處理器將該資料寫入至該超級區塊,將該至少一組校驗碼寫入暫存至一緩衝記憶體中,以及從該緩衝記憶體讀取出該至少一組校驗碼,對該至少一組校驗碼進行編碼以產生至少一組最終校驗碼,將該至少一組最終校驗碼寫入至該超級區塊之資料頁。
  9. 如申請專利範圍第8項所述之快閃記憶體控制器,其中當該資料發生寫入錯誤或寫入失敗的情形時,該編解碼器直接使用儲存在該緩衝記憶體中的該至少一組校驗碼來對該資料進行更正。
  10. 如申請專利範圍第8項所述之快閃記憶體控制器,其中在該資料寫入至該超級區塊的過程中:該微處理器自該超級區塊讀取該資料之已經寫入至該超級區塊的部分內容;以及當讀取該資料的部分內容的過程中發生無法更正的錯誤時,該微處理器自該緩衝記憶體讀取出至少一部份的校驗碼,且該編解碼器使用該至少一部份的校驗碼來對所讀取的資料進行錯誤更正。
  11. 如申請專利範圍第8項所述之快閃記憶體控制器,其中該編解碼器依序對第1~N筆資料進行編碼以產生第1~N組校驗碼,並將該第1~N筆資料分別寫入至該超級區塊之對應於該多個快閃記憶體晶片的第1~N個資料頁中;以及該微處理器將該第1~N組校驗碼寫入至該緩衝記憶體。
  12. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該至少一組校驗碼為一暫時性的校驗碼,且該微處理器自該第二超級區塊讀取該第1~N組校驗碼,並根據該第1~N組校驗碼來產生多組最終校驗碼,之後再將該多組最終校驗碼寫入至該超級區塊中。
  13. 如申請專利範圍第12項所述之快閃記憶體控制器,其中每一個區塊中位於同一個平面上的多條字元線構成一個字元線組,且該微處理器將該多組最終校驗碼寫入至該超級區塊之最後兩個字元線組中對應於一快閃記 憶體晶片的資料頁中。
  14. 如申請專利範圍第8項所述之快閃記憶體控制器,其中該多層式儲存區塊為三層式儲存區塊或是四層式儲存區塊。
  15. 一種記憶裝置,其包含有:一快閃記憶體模組,其中該快閃記憶體模組係為一立體快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含了多個區塊,該多個區塊包含了多個多層式儲存區塊,每一個區塊包含了多個資料頁;每一個區塊包含了分別位於多個不同平面之多條字元線以及位元線來控制的多個浮閘電晶體,且每一條字元線上的浮閘電晶體構成了該多個資料頁中的至少一資料頁;以及一快閃記憶體控制器,用來存取該快閃記憶體模組;其中當接收到來自一主機的寫入指令以要求將一資料寫入至該快閃記憶體模組中時,該快閃記憶體控制器對該資料進行編碼以產生至少一組校驗碼,並將該資料寫入到該多個快閃記憶體晶片的一超級區塊中,其中該超級區塊包含了該多個快閃記憶體晶片中複數個快閃記憶體晶片的至少一個儲存區塊;該快閃記憶體控制器係將該至少一組校驗碼寫入暫存至一緩衝記憶體中,以及從該緩衝記憶體讀取出該至少一組校驗碼,對該至少一組校驗碼進行編碼以產生至少一組最終校驗碼,將該至少一組最終校驗碼寫入至該超級區塊之資料頁。
TW106145735A 2016-04-27 2017-01-03 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 TWI650764B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662328027P 2016-04-27 2016-04-27
US201662328025P 2016-04-27 2016-04-27
US62/328,027 2016-04-27
US62/328,025 2016-04-27

Publications (2)

Publication Number Publication Date
TW201812788A TW201812788A (zh) 2018-04-01
TWI650764B true TWI650764B (zh) 2019-02-11

Family

ID=61022890

Family Applications (7)

Application Number Title Priority Date Filing Date
TW106100010A TWI614759B (zh) 2016-04-27 2017-01-03 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW107136200A TWI672703B (zh) 2016-04-27 2017-01-03 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW106145735A TWI650764B (zh) 2016-04-27 2017-01-03 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW108119159A TWI691966B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW107117861A TWI674586B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW106110446A TWI629690B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW106110436A TWI665679B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW106100010A TWI614759B (zh) 2016-04-27 2017-01-03 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW107136200A TWI672703B (zh) 2016-04-27 2017-01-03 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置

Family Applications After (4)

Application Number Title Priority Date Filing Date
TW108119159A TWI691966B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW107117861A TWI674586B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW106110446A TWI629690B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW106110436A TWI665679B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置

Country Status (1)

Country Link
TW (7) TWI614759B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949123B2 (en) * 2018-10-18 2021-03-16 Western Digital Technologies, Inc. Using interleaved writes to separate die planes
CN109582227B (zh) * 2018-11-15 2022-01-21 深圳忆联信息系统有限公司 固态硬盘写入方法、装置、计算机设备和存储介质
JP2022094705A (ja) * 2020-12-15 2022-06-27 キオクシア株式会社 メモリシステムおよび制御方法
TWI821965B (zh) * 2021-09-29 2023-11-11 慧榮科技股份有限公司 編碼歷程資訊的存取方法及電腦程式產品及裝置
US11966607B2 (en) 2021-09-29 2024-04-23 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information
TWI831701B (zh) * 2023-05-31 2024-02-01 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TWI831704B (zh) * 2023-06-12 2024-02-01 慧榮科技股份有限公司 藉助於動態區塊配置來進行記憶體裝置的儲存空間管理之方法、記憶體控制器、記憶體裝置以及電子裝置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297984A1 (en) * 2008-02-29 2013-11-07 Kabushiki Kaisha Toshiba Semiconductor storage device, method of controlling the same, and error correction system
US20140185376A1 (en) * 2012-12-31 2014-07-03 Alan Welsh Sinclair Method and system for asynchronous die operations in a non-volatile memory
US20150058699A1 (en) * 2013-08-23 2015-02-26 Silicon Motion, Inc. Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same
US20150058661A1 (en) * 2013-08-23 2015-02-26 Silicon Motion, Inc. Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same
US20150058700A1 (en) * 2013-08-23 2015-02-26 Silicon Motion, Inc. Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same
US20150178149A1 (en) * 2013-12-20 2015-06-25 Lsi Corporation Method to distribute user data and error correction data over different page types by leveraging error rate variations
US20160104539A1 (en) * 2014-10-08 2016-04-14 Kyungryun Kim Storage device and reliability verification method
US20160110249A1 (en) * 2014-10-20 2016-04-21 Fusion-Io, Inc. Adaptive storage reliability management

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6906961B2 (en) * 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US8024637B2 (en) * 2007-04-02 2011-09-20 Broadcom Corporation Super block error correction code (ECC) adaptable to communication systems including hard disk drives (HDDs) and other memory storage devices
JP2008257773A (ja) * 2007-04-02 2008-10-23 Toshiba Corp 不揮発性半導体記憶装置、不揮発性半導体記憶装置の制御方法、不揮発性半導体記憶システム、及びメモリカード
US8892981B2 (en) * 2010-09-30 2014-11-18 Apple Inc. Data recovery using outer codewords stored in volatile memory
US8856611B2 (en) * 2012-08-04 2014-10-07 Lsi Corporation Soft-decision compensation for flash channel variation
KR102025263B1 (ko) * 2012-10-05 2019-09-25 삼성전자주식회사 메모리 시스템 및 그것의 읽기 교정 방법
US8958244B2 (en) * 2012-10-16 2015-02-17 Conversant Intellectual Property Management Inc. Split block decoder for a nonvolatile memory device
US8914670B2 (en) * 2012-11-07 2014-12-16 Apple Inc. Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
CN103839594A (zh) * 2012-11-27 2014-06-04 建兴电子科技股份有限公司 固态储存装置及其联合编解码方法
US9286985B2 (en) * 2013-02-12 2016-03-15 Kabushiki Kaisha Toshiba Semiconductor device with power mode transitioning operation
US9672910B2 (en) * 2013-04-30 2017-06-06 International Business Machines Corporation Memory architecture for storing data in a plurality of memory chips
TWI649760B (zh) * 2013-08-23 2019-02-01 慧榮科技股份有限公司 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置
US9424126B2 (en) * 2013-09-03 2016-08-23 Kabushiki Kaisha Toshiba Memory controller
US9105333B1 (en) * 2014-07-03 2015-08-11 Sandisk Technologies Inc. On-chip copying of data between NAND flash memory and ReRAM of a memory die
US9984768B2 (en) * 2014-10-20 2018-05-29 Sandisk Technologies Llc Distributing storage of ECC code words

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297984A1 (en) * 2008-02-29 2013-11-07 Kabushiki Kaisha Toshiba Semiconductor storage device, method of controlling the same, and error correction system
US20140185376A1 (en) * 2012-12-31 2014-07-03 Alan Welsh Sinclair Method and system for asynchronous die operations in a non-volatile memory
US20150058699A1 (en) * 2013-08-23 2015-02-26 Silicon Motion, Inc. Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same
US20150058661A1 (en) * 2013-08-23 2015-02-26 Silicon Motion, Inc. Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same
US20150058700A1 (en) * 2013-08-23 2015-02-26 Silicon Motion, Inc. Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same
US20150178149A1 (en) * 2013-12-20 2015-06-25 Lsi Corporation Method to distribute user data and error correction data over different page types by leveraging error rate variations
US20160104539A1 (en) * 2014-10-08 2016-04-14 Kyungryun Kim Storage device and reliability verification method
US20160110249A1 (en) * 2014-10-20 2016-04-21 Fusion-Io, Inc. Adaptive storage reliability management

Also Published As

Publication number Publication date
TWI665679B (zh) 2019-07-11
TW201738900A (zh) 2017-11-01
TWI672703B (zh) 2019-09-21
TWI691966B (zh) 2020-04-21
TW201935486A (zh) 2019-09-01
TW201903784A (zh) 2019-01-16
TW201812788A (zh) 2018-04-01
TWI614759B (zh) 2018-02-11
TWI674586B (zh) 2019-10-11
TW201830393A (zh) 2018-08-16
TW201738895A (zh) 2017-11-01
TW201738885A (zh) 2017-11-01
TWI629690B (zh) 2018-07-11

Similar Documents

Publication Publication Date Title
TWI575531B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
CN107391296B (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN107403640B (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
TWI650764B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
CN107423158B (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN112463433B (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN111951855B (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN112214348B (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
TWI575530B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置