TWI555028B - 資料儲存裝置以及錯誤校正方法 - Google Patents
資料儲存裝置以及錯誤校正方法 Download PDFInfo
- Publication number
- TWI555028B TWI555028B TW104104676A TW104104676A TWI555028B TW I555028 B TWI555028 B TW I555028B TW 104104676 A TW104104676 A TW 104104676A TW 104104676 A TW104104676 A TW 104104676A TW I555028 B TWI555028 B TW I555028B
- Authority
- TW
- Taiwan
- Prior art keywords
- error correction
- memory plane
- error
- memory
- data
- Prior art date
Links
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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online 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
本發明係關於一種資料儲存裝置,特別係關於可對同一晶粒中之不同記憶體平面以不同之錯誤校正能力進行存取之資料儲存裝置。
快閃記憶體係為一種可以被電抹除並且重新寫入的非易失性記憶體,並且主要係應用在記憶卡、USB隨身碟、eMMC以及固態硬碟(Solid-State Disk)中,藉以作為一般的儲存與電腦裝置和數位產品間的資料之轉運。
快閃記憶體於生產過程中,會因為粉塵或是光罩問題,使得快閃記憶單元中的一整列(column)的資料都無法正確存取。傳統上,可以掃描的方式檢測出壞列的數量。但是,一旦無法存取的資料列數目太多,則會影響到錯誤檢查碼進行修正的能力。
本發明所提供之資料儲存裝置以及錯誤校正方法,可實施具有不同的錯誤位元更正能力的錯誤校正(Error Correction)在同一晶粒的不同記憶體平面上。
本發明提供一種資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體包括複數晶粒(die),並且每一晶粒包括一第一記憶體平面(plane)以及一第二記憶體平面
(plane),其中第一記憶體平面以及第二記憶體平面分別包括複數頁面(page)。控制器被設置為用以根據一錯誤校正能力表,對第一記憶體平面以及第二記憶體平面中所儲存之資料進行錯誤校正,其中錯誤校正能力表用以紀錄第一記憶體平面之一第一錯誤位元校正能力值以及第二記憶體平面所相應之一第二錯誤位元校正能力值。
在一實施例中,控制器更包括一隨機存取記憶體,並且控制器更用以將錯誤校正能力表載入隨機存取記憶體,以根據隨機存取記憶體中之錯誤校正能力表,對第一記憶體平面以及第二記憶體平面中之頁面的資料進行錯誤校正以及編碼。
在另一實施例中,控制器更包括一錯誤校正引擎,控制器更被設置為根據對第一記憶體平面進行讀取之一第一讀取命令,傳送隨機存取記憶體所儲存之錯誤校正能力表中相應於第一記憶體平面之第一錯誤位元校正能力值至錯誤校正引擎,使得錯誤校正引擎依照第一錯誤位元校正能力值對第一記憶體平面中之頁面的資料進行錯誤校正,或者根據對第二記憶體平面進行讀取之一第二讀取命令,傳送隨機存取記憶體所儲存之錯誤校正能力表中相應於第二記憶體平面之第二錯誤位元校正能力值至錯誤校正引擎,使得錯誤校正引擎依照第二錯誤位元校正能力值對第二記憶體平面中之頁面的資料進行錯誤校正。
又另一實施例中,控制器更包括一第一錯誤校正引擎以及一第二錯誤校正引擎,其中第一錯誤校正引擎係以第
一錯誤位元校正能力值對資料進行編碼以及錯誤校正,並且第二錯誤校正引擎係以第二錯誤位元校正能力值對資料進行編碼以及錯誤校正。控制器更被設置為用以根據錯誤校正能力表,將第一記憶體平面之頁面的資料分配給第一錯誤校正引擎進行編碼以及錯誤校正,並且將第二記憶體平面之頁面的資料分配給第二錯誤校正引擎進行編碼以及錯誤校正。
另外,第一記憶體平面以及第二記憶體平面中之每一頁面分別包括複數資料塊(chunk),每一資料塊包括一資料段以及一校驗碼(parity),其中第一記憶體平面中之校驗碼具有一第一長度,第二記憶體平面中之校驗碼具有一第二長度,並且第一長度不同於第二長度。
本發明亦提供一種錯誤校正方法,適用於一資料儲存裝置,其中資料儲存裝置包括一快閃記憶體,快閃記憶體包括複數晶粒(die),並且每一晶粒包括一第一記憶體平面(plane)以及一第二記憶體平面(plane),其中每一第一記憶體平面以及第二記憶體平面分別包括複數頁面(page)。資料存取方法包括:根據一第一錯誤位元校正能力值,對第一記憶體平面之頁面的資料進行錯誤校正;以及根據一第二錯誤位元校正能力值,對第二記憶體平面之頁面的資料進行錯誤校正。
在一實施例中,錯誤校正方法更包括:將一錯誤校正能力表,載入一隨機處理記憶體;根據用以對第一記憶體平面進行讀取之一第一讀取命令,傳送隨機存取記憶體所儲存之錯誤校正能力表中相應於第一記憶體平面之第一錯誤位元校正能力值至一錯誤校正引擎;以及根據用以對第二記憶體平
面進行讀取之一第二讀取命令,傳送隨機存取記憶體中之錯誤校正能力表中相應於第二記憶體平面之第二錯誤位元校正能力值至錯誤校正引擎,其中錯誤校正引擎係用以對第一記憶體平面以及第二記憶體平面中之頁面的資料進行錯誤校正。
在另一實施例中,錯誤校正方法更包括:將一錯誤校正能力表,載入一隨機處理記憶體,其中錯誤校正能力表用以紀錄第一記憶體平面之第一錯誤位元校正能力值以及第二記憶體平面所相應之第二錯誤位元校正能力值;根據對第一記憶體平面進行讀取之一第一讀取命令以及錯誤校正能力表,將第一記憶體平面之頁面的資料分配給一第一錯誤校正引擎進行編碼以及錯誤校正;以及根據對第二記憶體平面進行讀取之一第二讀取命令以及錯誤校正能力表,將第二記憶體平面之頁面的資料分配給一第二錯誤校正引擎進行編碼以及錯誤校正。
另外,第一記憶體平面以及第二記憶體平面中之每一頁面分別包括複數資料塊(chunk),每一資料塊包括一資料段以及一校驗碼(parity),其中錯誤校正方法更包括:根據第一記憶體平面中之資料塊中之校驗碼,對第一記憶體平面中之資料塊中之資料段進行錯誤校正;以及根據第二記憶體平面中之資料塊中之校驗碼,對第二記憶體平面中之資料塊中之資料段進行錯誤校正,其中第一記憶體平面中之校驗碼具有一第一長度,第二記憶體平面中之校驗碼具有一第二長度,並且第一長度不同於第二長度。
又另一實施例中,錯誤校正方法更包括根據第一
記憶體平面以及第二記憶體平面中之壞列(bad column),定義第一記憶體平面所相應之第一錯誤校正能力以及第二記憶體平面所相應之第二錯誤校正能力。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
182‧‧‧錯誤校正能力表
D0~DN‧‧‧晶粒
BU‧‧‧緩衝器
PL0、PL1‧‧‧記憶體平面
S500~S512、S600~S612‧‧‧步驟
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。
第2圖為本發明所提供之晶粒之一種實施例的示意圖。
第3圖為本發明所提供之頁面之一種實施例的示意圖。
第4圖為本發明所提供之頁面之另一種實施例的示意圖。
第5圖為本發明所提供之一錯誤校正方法之一種實施例的流程圖。
第6圖為本發明所提供之一錯誤校正方法之另一種實施例的流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖為本發明所提供之一電子系統之一種實施例的方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機110所下達的命令操作。控制器160包括一運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及隨
機存取記憶體(RAM)166。永久記憶體164與所載之程式碼、資料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180。隨機存取記憶體(RAM)166用以載入程式碼與參數以提供控制器160根據所載入的程式碼與參數動作。快閃記憶體180包括複數晶粒(die)D0~DN,如第2圖所示。每一晶粒D0~DN包括一緩衝器BU、一第一記憶體平面(plane)PL0以及一第二記憶體平面(plane)PL1。每一第一記憶體平面PL0以及第二記憶體平面PL1分別包括複數頁面(page)P0~PN。值得注意的是,在本實施例中,每一晶粒D0~DN包括一緩衝器BU,用以緩衝第一記憶體平面PL0以及第二記憶體平面PL1的資料,但本發明不限於此。在其他實施例中,每一晶粒D0~DN可包括兩個緩衝器,分別用以緩衝第一記憶體平面PL0以及第二記憶體平面PL1的資料。
快閃記憶體於生產過程中,會因為粉塵或是光罩問題,使得快閃記憶單元中的一整列(column)的資料都無法正確存取,損毀的列稱為壞列(bad column)。然而,在同一晶粒中的記憶體平面所具有壞列的數量可能彼此不同。壞列的數量越多,記憶體平面中之頁面裡可利用的記憶體空間則越少,其中記憶體空間的大小引響到錯誤位元校正能力。詳細而言,具有越高的錯誤位元校正能力之錯誤校正(Error Correction)的編碼,會產生長度越長的校驗碼(Parity)。
第3圖為本發明所提供之頁面之一種實施例的示意圖。在本實施例中,第一記憶體平面PL0的每一頁面中,分別具有1000位元組(Byte)無法使用的壞列,第二記憶體平面
PL1每一頁面中,分別具有900位元組(Byte)無法使用的壞列。值得注意的是,第3圖示意性的將壞列顯示於頁面P0尾端,但實際上壞列系隨機散落於頁面中。在本實施例中,產品設計者將同一晶粒中具有不同壞列數量之第一記憶體平面PL0以及第二記憶體平面PL1的錯誤位元校正能力,皆定義為同一錯誤位元校正能力值。舉例而言,在本實施例中,第一記憶體平面PL0以及第二記憶體平面PL1的錯誤位元校正能力值皆為59位元(Bit),59位元之錯誤位元校正能力值需要長度為104位元組的校驗碼。以第一記憶體平面PL0以及第二記憶體平面PL1的頁面P0為例,頁面P0分別具有7個資料塊(Chunk)C0~C6以及一元資料段(Meta data)MD。每一資料塊C0~C6分別具有一資料段以及一校驗碼段(parity)。資料段的長度為1024位元組。校驗碼的長度為104位元組。元資料段MD的長度為32位元組。如第3圖所示,具有較少壞列的第二記憶體平面PL1由於配合具有較多壞列的第一記憶體平面PL0,會損失可使用的100位元組,造成資源的浪費。值得注意的是,壞列的數量、元資料段MD的長度、資料段的長度、以及錯誤位元校正能力值皆為本發明之一種實施例,但本發明不限於此。每一個不同的記憶體平面皆可能由於不同之生產環境具有不同數量的壞列。頁面中資料塊的數量、錯誤位元校正能力值以及資料段的長度皆可由產品開發者自行決定,其中元資料段MD的長度則是由所決定之錯誤位元校正能力值以及錯誤校驗的種類而決定的。
第4圖為本發明所提供之頁面之另一種實施例的示意圖。在本實施例中,第一記憶體平面PL0的每一頁面中,
分別具有1000位元組(Byte)無法使用的壞列,第二記憶體平面PL1每一頁面中,分別具有900位元組(Byte)無法使用的壞列。值得注意的是,第4圖示意性的將壞列顯示於頁面P0尾端,但實際上壞列系隨機散落於頁面中。在本實施例中,相應於不同的壞列數量,第一記憶體平面PL0以及第二記憶體平面PL1具有不同的錯誤位元校正能力值。第一記憶體平面PL0具有一第一錯誤位元校正能力值並且第二記憶體平面PL1具有一第二錯誤位元校正能力值。另外,由於第一記憶體平面PL0以及第二記憶體平面PL1具有不同的錯誤位元校正能力值,因此第一記憶體平面PL0以及第二記憶體平面PL1中之校驗碼具有不同的長度。換言之,第一記憶體平面PL0中之校驗碼具有一第一長度,第二記憶體平面PL1中之校驗碼具有一第二長度,並且第一長度不同於第二長度。舉例而言,在本實施例中,第一記憶體平面PL0的錯誤位元校正能力值為59位元,第二記憶體平面PL1的錯誤位元校正能力值為67位元(Bit),但本發明不限於此。59位元之錯誤位元校正能力值需要長度為104位元組的校驗碼。67位元之錯誤位元校正能力值需要長度為118位元組的校驗碼。以第一記憶體平面PL0以及第二記憶體平面PL1的頁面P0為例,頁面P0分別具有7個資料塊(Chunk)C0~C6以及一元資料段(Meta data)MD。每一資料塊C0~C6分別具有一資料段以及一校驗碼段(parity)。在第一記憶體平面PL0中,資料段的長度為1024位元組、校驗碼的長度為104位元組以及元資料段MD的長度為32位元組。在第二記憶體平面PL1中,資料段的長度為1024位元組、校驗碼的長度為118位元組以及元資料段MD的長度為
32位元組。如第4圖所示,具有較少壞列的第二記憶體平面PL1具有較多的空間可以儲存具有較高錯誤位元校正能力的校驗碼。相較於第3圖的實施例,本實施例可較有效的利用記憶體空間。值得注意的是,壞列的數量、元資料段MD的長度、資料段的長度、以及錯誤位元校正能力值皆為本發明之一種實施例,但本發明不限於此。每一個不同的記憶體平面皆可能由於不同之生產環境具有不同數量的壞列。頁面中資料塊的數量、錯誤位元校正能力值以及資料段的長度皆可由產品開發者自行決定,其中元資料段MD的長度則是由所決定之錯誤位元校正能力值以及錯誤校驗的種類決定。
在第4圖的實施例中,快閃記憶體180更包括一錯誤校正能力表182,其中錯誤校正能力表182用以紀錄第一記憶體平面PL0之第一錯誤位元校正能力值以及第二記憶體平面PL1所相應之第二錯誤位元校正能力值。在資料儲存裝置140上電後,控制器160被設置為將錯誤校正能力表182載入隨機存取記憶體166,以根據隨機存取記憶體166中之錯誤校正能力表182,對第一記憶體平面PL0以及第二記憶體平面PL1中之頁面進行編碼以及錯誤校正。換言之,在讀取資料時,控制器160被設置為用以根據錯誤校正能力表182,對第一記憶體平面PL0以及第二記憶體平面PL1中所儲存之資料進行錯誤校正。在寫入資料時,控制器160被設置為用以根據錯誤校正能力表182,對將寫入第一記憶體平面PL0以及第二記憶體平面PL1中之資料進行編碼,以分別獲得具有不同長度的校驗碼,並且在獲得校驗碼後,將資料與校驗碼寫入第一記憶體平面PL0以及第二
記憶體平面PL1中。
在一實施例中,控制器160具有一錯誤校正引擎(未圖示)。在本實施例中,該一個錯誤校正引擎用以分別進行具有不同錯誤位元校正能力之錯誤校正。舉例而言,當控制器160接收到一讀取命令時,控制器160可根據讀取命令的位址判斷讀取命令係用以對第一記憶體平面PL0進行讀取之一第一讀取命令或者用以對第二記憶體平面PL1進行讀取之一第二讀取命令。當讀取命令係為用以對第一記憶體平面PL0進行讀取之第一讀取命令時,控制器160被設置為根據對第一記憶體平面PL0進行讀取之第一讀取命令,傳送隨機存取記憶體166所儲存之錯誤校正能力表182中相應於第一記憶體平面PL0之第一錯誤位元校正能力值至錯誤校正引擎,使得錯誤校正引擎可依照第一錯誤位元校正能力值對第一記憶體平面PL0中之頁面的資料進行錯誤校正。當讀取命令係為用以對第二記憶體平面PL1進行讀取之第二讀取命令時,控制器160被設置為根據對第二記憶體平面PL1進行讀取之第二讀取命令,傳送隨機存取記憶體166中所儲存之錯誤校正能力表182中相應於第二記憶體平面PL1之第二錯誤位元校正能力值至錯誤校正引擎,使得錯誤校正引擎依照第二錯誤位元校正能力值對第二記憶體平面PL1中之頁面的資料進行錯誤校正。同理,當控制器160接收到一寫入命令時,控制器160可根據資料寫入的位址判斷資料係預計被寫入第一記憶體平面PL0或者第二記憶體平面PL1。當資料係預計被寫入第一記憶體平面PL0時,控制器160被設置為傳送隨機存取記憶體166中之錯誤校正能力表182中相應於第一記憶
體平面PL0之第一錯誤位元校正能力值至錯誤校正引擎,使得錯誤校正引擎可依照第一錯誤位元校正能力值對預計寫入之資料進行編碼,並獲得符合第一錯誤位元校正能力值之校驗碼,以將資料以及校驗碼儲存至第一記憶體平面PL0。當資料係預計被寫入第二記憶體平面PL1時,控制器160被設置為傳送隨機存取記憶體166中所儲存之錯誤校正能力表182中相應於第二記憶體平面PL1之第二錯誤位元校正能力值至錯誤校正引擎,使得錯誤校正引擎依照第二錯誤位元校正能力值對預計寫入之資料進行編碼,並獲得符合第二錯誤位元校正能力值之校驗碼,以將資料以及校驗碼儲存至第二記憶體平面PL1。
在另一實施例中,控制器160更包括一第一錯誤校正引擎(未圖示)以及一第二錯誤校正引擎(未圖示),其中第一錯誤校正引擎具有第一錯誤位元校正能力值,並且第二錯誤校正引擎具有第二錯誤位元校正能力值。換言之,第一錯誤校正引擎係用以對第一記憶體平面PL0的資料進行編碼以及錯誤校正,而第二錯誤校正引擎係用以對第二記憶體平面PL1的資料進行編碼以及錯誤校正。在本實施例中,控制器160更被設置為用以根據錯誤校正能力表182,將第一記憶體平面PL0之頁面的資料分配給第一錯誤校正引擎進行編碼以及錯誤校正,並且將第二記憶體平面PL1之頁面的資料分配給第二錯誤校正引擎進行編碼以及錯誤校正。舉例而言,當控制器160接收到一讀取命令時,控制器160可根據讀取命令的位址判斷讀取命令係為對第一記憶體平面PL0進行讀取之一第一讀取命令或者對第二記憶體平面PL1進行讀取之一第二讀取命令。當讀取命令係
為用以對第一記憶體平面PL0進行讀取之第一讀取命令時,控制器160被設置為根據對第一記憶體平面PL0進行讀取之第一讀取命令,將所讀取之第一記憶體平面PL0的頁面的資料分配給第一錯誤校正引擎進行錯誤校正(解碼)。當讀取命令係為用以對第二記憶體平面PL1進行讀取之第二讀取命令時,控制器160被設置為根據對第二記憶體平面PL1進行讀取之第二讀取命令,將所讀取之第二記憶體平面PL1的頁面的資料分配給第二錯誤校正引擎進行錯誤校正(解碼)。同理,當控制器160接收到一寫入命令時,控制器160可根據資料寫入的位址判斷資料係預計被寫入第一記憶體平面PL0或者第二記憶體平面PL1。當資料係預計被寫入第一記憶體平面PL0時,控制器160被設置為將預計寫入第一記憶體平面PL0之資料傳送至第一錯誤校正引擎,使得第一錯誤校正引擎可依照第一錯誤位元校正能力值對預計寫入之資料進行編碼,並獲得符合第一錯誤位元校正能力值之校驗碼,以將資料以及校驗碼儲存至第一記憶體平面PL0。當資料係預計被寫入第二記憶體平面PL1時,控制器160被設置為將預計寫入第二記憶體平面PL1之資料傳送至第二錯誤位元校正引擎,使得第二錯誤校正引擎依照第二錯誤位元校正能力值對預計寫入之資料進行編碼,並獲得符合第二錯誤位元校正能力值之校驗碼,以將資料以及校驗碼儲存至第二記憶體平面PL1。
第5圖為本發明所提供之一錯誤校正方法之一種實施例的流程圖。錯誤校正方法適用於第1圖所示之電子系統100。流程開始於步驟S500。在步驟S500開始之前,產品設計
者可根據第一記憶體平面PL0以及第二記憶體平面PL1中之壞列(bad column)的數量,定義第一記憶體平面PL0所相應之第一錯誤校正能力以及相應於第二記憶體平面PL1所相應之第二錯誤校正能力。另外,在本實施例中,控制器160具有一錯誤校正引擎(未圖示),並且該一個錯誤校正引擎用以分別進行具有不同錯誤位元校正能力之錯誤校正。
在步驟S500中,在資料儲存裝置140上電後,控制器160被設置為將錯誤校正能力表182載入隨機存取記憶體166中,其中錯誤校正能力表182用以紀錄第一記憶體平面PL0之第一錯誤位元校正能力值以及第二記憶體平面PL1所相應之第二錯誤位元校正能力值。
接著,在步驟S502中,控制器160判斷資料儲存裝置140是否自主機120接收到一讀取命令。當資料儲存裝置140自主機120接收到讀取命令時,流程進行至步驟S504;否則,控制器160繼續判斷資料儲存裝置140是否自主機120接收到一讀取命令。
在步驟S504中,控制器160可根據讀取命令的位址判斷讀取命令係為對第一記憶體平面PL0進行讀取之一第一讀取命令或者對第二記憶體平面PL1進行讀取之一第二讀取命令。當讀取命令為第一讀取命令時,流程進行至步驟S506。當讀取命令為第二讀取命令時,流程進行至步驟S510。
在步驟S506中,控制器160被設置為傳送隨機存取記憶體166中所儲存之錯誤校正能力表182中相應於第一記憶體平面PL0之第一錯誤位元校正能力值至錯誤校正引擎。
接著,在步驟S508中,錯誤校正引擎依照第一錯誤位元校正能力值對第一記憶體平面PL0中之頁面的資料進行錯誤校正,其中錯誤校正引擎係根據第一記憶體平面PL0中之資料塊中之校驗碼,對第一記憶體平面PL0中之資料塊中之資料段進行錯誤校正。流程結束於步驟S508。
在步驟S510中,控制器160被設置為傳送隨機存取記憶體166中所儲存之錯誤校正能力表182中相應於第二記憶體平面PL1之第二錯誤位元校正能力值至錯誤校正引擎。
接著,在步驟S512中,錯誤校正引擎依照第二錯誤位元校正能力值對第二記憶體平面PL1中之頁面的資料進行錯誤校正,其中錯誤校正引擎係根據第二記憶體平面PL1中之資料塊中之校驗碼,對第二記憶體平面PL1中之資料塊中之資料段進行錯誤校正。值得注意的是,第二記憶體平面PL1之校驗碼與第一記憶體平面PL0之校驗碼的長度不同。流程結束於步驟S512。
第6圖為本發明所提供之一錯誤校正方法之另一種實施例的流程圖。錯誤校正方法適用於第1圖所示之電子系統100。流程開始於步驟S600。在步驟S600開始之前,產品設計者可根據第一記憶體平面PL0以及第二記憶體平面PL1中之壞列(bad column)的數量,定義第一記憶體平面PL0所相應之第一錯誤校正能力以及相應於第二記憶體平面PL1所相應之第二錯誤校正能力。在本實施例中,控制器160包括一第一錯誤校正引擎(未圖示)以及一第二錯誤校正引擎(未圖示),其中第一錯誤校正引擎係以第一錯誤位元校正能力值對資料進行編碼
以及錯誤校正,並且第二錯誤校正引擎係以第二錯誤位元校正能力值對資料進行編碼以及錯誤校正。值得注意的是,步驟S600~S604相似於第5圖之步驟S500~S504,步驟S600~S604之詳細說明請參考第5圖之說明,在此不在贅述。
在步驟S606中,控制器160讀取在隨機存取記憶體166中所儲存之錯誤校正能力表182中相應於第一記憶體平面PL0之第一錯誤位元校正能力值。
接著,在步驟S608中,控制器160根據第一錯誤位元校正能力值,將第一記憶體平面PL0之頁面的資料分配給第一錯誤校正引擎,使得第一錯誤校正引擎依照第一錯誤位元校正能力值對第一記憶體平面PL0中之頁面的資料進行解碼,其中錯誤校正引擎係根據第一記憶體平面PL0中之資料塊中之校錯誤校正,對第一記憶體平面PL0中之資料塊中之資料段進行錯誤校正。流程結束於步驟S608。
在步驟S610中,控制器160讀取在隨機存取記憶體166中所儲存之錯誤校正能力表182中相應於第二記憶體平面PL0之第二錯誤位元校正能力值。
接著,在步驟S612中,控制器160根據第二錯誤位元校正能力值,將第二記憶體平面PL1之頁面的資料分配給第二錯誤校正引擎,使得第二錯誤校正引擎依照第二錯誤位元校正能力值對第二記憶體平面PL0中之頁面的資料進行解碼,其中錯誤校正引擎係根據第二記憶體平面PL1中之資料塊中之校驗碼,對第二記憶體平面PL1中之資料塊中之資料段進行錯誤校正。流程結束於步驟S612。
本發明所提供之資料儲存裝置140以及錯誤校正方法,可實施具有不同的錯誤位元更正能力的錯誤校正(Error Correction)在同一晶粒的不同記憶體平面上。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
182‧‧‧錯誤校正能力表
Claims (11)
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數晶粒(die),並且每一上述晶粒包括一第一記憶體平面(plane)以及一第二記憶體平面(plane),其中上述第一記憶體平面以及上述第二記憶體平面分別包括複數頁面(page);以及一控制器,被設置為用以根據一錯誤校正能力表,對上述第一記憶體平面以及上述第二記憶體平面中所儲存之資料進行錯誤校正,其中上述錯誤校正能力表用以紀錄上述第一記憶體平面之一第一錯誤位元校正能力值以及上述第二記憶體平面所相應之一第二錯誤位元校正能力值,並且上述第一錯誤位元校正能力值不同於上述第二錯誤位元校正能力值。
- 如申請專利範圍第1項所述之資料儲存裝置,其中上述控制器更包括一隨機存取記憶體,並且上述控制器更用以將上述錯誤校正能力表載入上述隨機存取記憶體,以根據上述隨機存取記憶體中之上述錯誤校正能力表,對上述第一記憶體平面以及上述第二記憶體平面中之頁面的資料進行錯誤校正以及編碼。
- 如申請專利範圍第2項所述之資料儲存裝置,其中上述控制器更包括一錯誤校正引擎,上述控制器更被設置為根據對上述第一記憶體平面進行讀取之一第一讀取命令,傳送上述隨機存取記憶體所儲存之上述錯誤校正能力表中相應於上述第一記憶體平面之上述第一錯誤位元校正能力 值至上述錯誤校正引擎,使得上述錯誤校正引擎依照上述第一錯誤位元校正能力值對上述第一記憶體平面中之頁面的資料進行錯誤校正,或者根據對上述第二記憶體平面進行讀取之一第二讀取命令,傳送上述隨機存取記憶體所儲存之上述錯誤校正能力表中相應於上述第二記憶體平面之上述第二錯誤位元校正能力值至上述錯誤校正引擎,使得上述錯誤校正引擎依照上述第二錯誤位元校正能力值對上述第二記憶體平面中之頁面的資料進行錯誤校正。
- 如申請專利範圍第2項所述之資料儲存裝置,其中上述控制器更包括一第一錯誤校正引擎以及一第二錯誤校正引擎,其中上述第一錯誤校正引擎係以上述第一錯誤位元校正能力值對資料進行編碼以及錯誤校正,並且上述第二錯誤校正引擎係以上述第二錯誤位元校正能力值對資料進行編碼以及錯誤校正。
- 如申請專利範圍第4項所述之資料儲存裝置,其中上述控制器更被設置為用以根據上述錯誤校正能力表,將上述第一記憶體平面之上述頁面的資料分配給上述第一錯誤校正引擎進行編碼以及錯誤校正,並且將上述第二記憶體平面之上述頁面的資料分配給上述第二錯誤校正引擎進行編碼以及錯誤校正。
- 如申請專利範圍第1項所述之資料儲存裝置,其中上述第一記憶體平面以及上述第二記憶體平面中之每一上述頁面分別包括複數資料塊(chunk),每一上述資料塊包括一資 料段以及一校驗碼(parity),其中上述第一記憶體平面中之上述校驗碼具有一第一長度,上述第二記憶體平面中之上述校驗碼具有一第二長度,並且上述第一長度不同於上述第二長度。
- 一種錯誤校正方法,適用於一資料儲存裝置,其中上述資料儲存裝置包括一快閃記憶體,上述快閃記憶體包括複數晶粒(die),並且每一上述晶粒包括一第一記憶體平面(plane)以及一第二記憶體平面(plane),其中每一上述第一記憶體平面以及上述第二記憶體平面分別包括複數頁面(page),並且上述錯誤校正方法包括:根據一第一錯誤位元校正能力值,對上述第一記憶體平面之頁面的資料進行錯誤校正;以及根據一第二錯誤位元校正能力值,對上述第二記憶體平面之頁面的資料進行錯誤校正,其中上述第一錯誤位元校正能力值不同於上述第二錯誤位元校正能力值。
- 如申請專利範圍第7項所述之錯誤校正方法,更包括:將一錯誤校正能力表,載入一隨機處理記憶體;根據用以對上述第一記憶體平面進行讀取之一第一讀取命令,傳送上述隨機存取記憶體所儲存之上述錯誤校正能力表中相應於上述第一記憶體平面之上述第一錯誤位元校正能力值至一錯誤校正引擎;以及根據用以對上述第二記憶體平面進行讀取之一第二讀取命令,傳送上述隨機存取記憶體中之上述錯誤校正能力表中相應於上述第二記憶體平面之上述第二錯誤位元校正 能力值至上述錯誤校正引擎,其中上述錯誤校正引擎係用以對上述第一記憶體平面以及上述第二記憶體平面中之頁面的資料進行錯誤校正。
- 如申請專利範圍第7項所述之錯誤校正方法,更包括:將一錯誤校正能力表,載入一隨機處理記憶體,其中上述錯誤校正能力表用以紀錄上述第一記憶體平面之上述第一錯誤位元校正能力值以及上述第二記憶體平面所相應之上述第二錯誤位元校正能力值;根據對上述第一記憶體平面進行讀取之一第一讀取命令以及上述錯誤校正能力表,將上述第一記憶體平面之上述頁面的資料分配給一第一錯誤校正引擎進行錯誤校正;以及根據對上述第二記憶體平面進行讀取之一第二讀取命令以及上述錯誤校正能力表,將上述第二記憶體平面之上述頁面的資料分配給一第二錯誤校正引擎進行錯誤校正。
- 如申請專利範圍第7項所述之錯誤校正方法,其中上述第一記憶體平面以及上述第二記憶體平面中之每一上述頁面分別包括複數資料塊(chunk),每一上述資料塊包括一資料段以及一校驗碼(parity),其中上述錯誤校正方法更包括:根據上述第一記憶體平面中之上述資料塊中之上述校驗碼,對上述第一記憶體平面中之上述資料塊中之上述資料段進行錯誤校正;以及 根據上述第二記憶體平面中之上述資料塊中之上述校驗碼,對上述第二記憶體平面中之上述資料塊中之上述資料段進行錯誤校正,其中上述第一記憶體平面中之上述校驗碼具有一第一長度,上述第二記憶體平面中之上述校驗碼具有一第二長度,並且上述第一長度不同於上述第二長度。
- 如申請專利範圍第7項所述之錯誤校正方法,更包括根據上述第一記憶體平面以及上述第二記憶體平面中之壞列(bad column),定義上述第一記憶體平面所相應之上述第一錯誤校正能力以及上述第二記憶體平面所相應之上述第二錯誤校正能力。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104104676A TWI555028B (zh) | 2015-02-12 | 2015-02-12 | 資料儲存裝置以及錯誤校正方法 |
CN201510180624.0A CN106155830B (zh) | 2015-02-12 | 2015-04-16 | 数据储存装置以及错误校正方法 |
US14/951,025 US9928137B2 (en) | 2015-02-12 | 2015-11-24 | Data storage device and error correction method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104104676A TWI555028B (zh) | 2015-02-12 | 2015-02-12 | 資料儲存裝置以及錯誤校正方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201629980A TW201629980A (zh) | 2016-08-16 |
TWI555028B true TWI555028B (zh) | 2016-10-21 |
Family
ID=56622163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104104676A TWI555028B (zh) | 2015-02-12 | 2015-02-12 | 資料儲存裝置以及錯誤校正方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9928137B2 (zh) |
CN (1) | CN106155830B (zh) |
TW (1) | TWI555028B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI719880B (zh) * | 2019-12-16 | 2021-02-21 | 慧榮科技股份有限公司 | 寫入頁面群組的資料到閃存模組的裝置及方法 |
US11403010B2 (en) * | 2020-08-19 | 2022-08-02 | Silicon Motion, Inc. | Data storage device and plane selection method thereof |
CN112083887B (zh) * | 2020-09-10 | 2023-09-15 | 深圳芯邦科技股份有限公司 | 一种数据处理方法及相关设备 |
US11468963B2 (en) * | 2020-12-08 | 2022-10-11 | Macronix International Co., Ltd. | Memory device and read method thereof |
CN116431381B (zh) * | 2023-04-06 | 2024-01-05 | 深圳三地一芯电子股份有限公司 | 平衡闪存ecc纠错能力方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200945024A (en) * | 2008-04-24 | 2009-11-01 | Powerflash Technology Corp | Method for determining number of bits of ECC block in non-volatile memory |
US8225175B2 (en) * | 2010-02-04 | 2012-07-17 | Transcend Information, Inc. | Two-plane error correction method for a memory device and the memory device thereof |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747903B2 (en) * | 2007-07-09 | 2010-06-29 | Micron Technology, Inc. | Error correction for memory |
CN102034552A (zh) * | 2009-09-25 | 2011-04-27 | 威刚科技(苏州)有限公司 | 存储装置与其资料处理方法 |
JP2012084127A (ja) * | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
WO2012058328A1 (en) * | 2010-10-27 | 2012-05-03 | Sandforce, Inc. | Adaptive ecc techniques for flash memory based data storage |
US8898548B1 (en) * | 2012-08-24 | 2014-11-25 | Western Digital Technologies, Inc. | Methods, data storage devices and systems having variable size ECC page size |
US9720769B2 (en) * | 2014-12-03 | 2017-08-01 | Sandisk Technologies Llc | Storage parameters for a data storage device |
-
2015
- 2015-02-12 TW TW104104676A patent/TWI555028B/zh active
- 2015-04-16 CN CN201510180624.0A patent/CN106155830B/zh active Active
- 2015-11-24 US US14/951,025 patent/US9928137B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200945024A (en) * | 2008-04-24 | 2009-11-01 | Powerflash Technology Corp | Method for determining number of bits of ECC block in non-volatile memory |
US8225175B2 (en) * | 2010-02-04 | 2012-07-17 | Transcend Information, Inc. | Two-plane error correction method for a memory device and the memory device thereof |
Also Published As
Publication number | Publication date |
---|---|
TW201629980A (zh) | 2016-08-16 |
CN106155830A (zh) | 2016-11-23 |
CN106155830B (zh) | 2019-07-23 |
US20160239382A1 (en) | 2016-08-18 |
US9928137B2 (en) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI555028B (zh) | 資料儲存裝置以及錯誤校正方法 | |
US10474529B2 (en) | Error checking and correcting decoding method and apparatus | |
TWI604308B (zh) | 資料儲存裝置及其資料維護方法 | |
JP6025844B2 (ja) | データを蓄積するシステムおよび方法 | |
TWI603194B (zh) | 資料儲存裝置以及其資料存取方法 | |
TWI515737B (zh) | 資料儲存裝置以及其資料抹除方法 | |
TWI658364B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI631456B (zh) | 資料儲存裝置及資料維護方法 | |
TWI556254B (zh) | 資料儲存裝置及其資料存取方法 | |
TWI571742B (zh) | 資料儲存裝置及資料維護方法 | |
TW201545167A (zh) | 在非揮發性記憶體中處理錯誤更正碼的方法及其非揮發性儲存裝置 | |
US11456754B2 (en) | Fixed size soft bit lossy compression in flash memory | |
TWI523025B (zh) | 資料儲存裝置及其錯誤校正方法 | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
TWI666643B (zh) | 非依電性記憶體裝置及其資料去重複方法 | |
TWI467590B (zh) | 資料處理方法、記憶體控制器及記憶體儲存裝置 | |
TW201913372A (zh) | 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置 | |
TWI557560B (zh) | 資料儲存裝置以及資料讀取方法 | |
TWI608488B (zh) | 資料儲存裝置以及資料存取方法 | |
TW201907410A (zh) | 記憶體測試方法及其記憶體裝置 | |
TWI566094B (zh) | 資料儲存裝置及其資料更新方法 | |
TWI544490B (zh) | 資料儲存裝置及其資料維護方法 | |
CN112579329A (zh) | 快速处理uecc的方法及其存储设备 | |
JP6437428B2 (ja) | 不揮発性半導体メモリのコントローラ | |
TWI698750B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |