TWI778326B - 資料儲存媒體之損壞資料行的篩選方法 - Google Patents
資料儲存媒體之損壞資料行的篩選方法 Download PDFInfo
- Publication number
- TWI778326B TWI778326B TW109104322A TW109104322A TWI778326B TW I778326 B TWI778326 B TW I778326B TW 109104322 A TW109104322 A TW 109104322A TW 109104322 A TW109104322 A TW 109104322A TW I778326 B TWI778326 B TW I778326B
- Authority
- TW
- Taiwan
- Prior art keywords
- damaged data
- damaged
- data
- rows
- data rows
- Prior art date
Links
Images
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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/808—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1204—Bit line control
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)
- Semiconductor Memories (AREA)
- Image Analysis (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明實施例提供種資料儲存媒體之損壞資料行的篩選方法,資料儲存媒體耦接於控制單元,且資料儲存媒體包括有多個區塊,其中每一個區塊包括多個資料行,而多個資料行被劃分為多個大塊,損壞資料行的篩選方法包括以下步驟:(a)控制單元計算每一個大塊中多個損壞資料行的數量,並據以對多個大塊排序,其中多個損壞資料行係選自於多個資料行。(b)控制單元以多個損壞資料行群組,依序對每一個大塊中的多個損壞資料行標註或記錄,其中每一個損壞資料行群組標註或記錄每一個大塊中損壞資料行位置及損壞資料行數量。
Description
本發明是一種有關於資料儲存媒體的相關技術,且特別是有關於一種資料儲存媒體之損壞資料行的篩選方法。
一般而言,儲存裝置,例如是固態硬碟(Solid State Drive,SSD)、SD記憶卡(Secure Digital Memory Card)或隨身碟(USB)等,主要是由控制單元與資料儲存媒體所構成。資料儲存媒體是由多個資料行(column)所構成,而這些資料行則是用來儲存資料。由於儲存裝置在製造的過程中,難免會生產出一些次級品。這些次級品在販售給消費者之前,都得先將資料儲存媒體中損壞的資料行(bad column)篩選出來,並將它標註或記錄至損壞資料行表。控制單元便可根據損壞資料行表,越過這些已標註的損壞資料行,不對它進行資料的存取,從而避免發生存取資料錯誤的情況。
然而,舊有的標註或記錄方式,乃是逐一對損壞資料行進行標註或記錄。事實上,損壞資料行的標註是有數量上的限制(例如最多可標註254個)。因此,如果資料儲存媒體的瑕疵程度較嚴重,則損壞資料行的數量可能會超過可標註的數量。當可標註的數量用完時,那麼資料儲存媒體中剩餘未標註的損壞資料行,將可能消耗錯誤校正碼(Error Correcting Code,ECC)的校正能力,造成原本可以校正的資料無法被適當的校正。
嗣後,便有人提出新的篩選方法以改良舊有的缺失。新的篩選方法乃是將鄰近的損壞資料行合併成損壞資料行群組,以群組的方式來進行標註。因此,在相同標註數量的條件下,使用此篩選方法將可大幅提高標註損壞資料行的數量,亦即超過可標註數量在硬體上的限制。雖然此篩選方法可以標註所有的損壞資料行,但若損壞資料行的分布是呈離散而非集中的態樣,將大幅縮小資料儲存媒體的容量,甚至遠低於最低需求的容量,從而影響企業的營收獲利。
因此,如何提供一種篩選方法除了可以超過硬體上損壞資料行標註數量的限制,又可確保資料儲存媒體的容量可以滿足最低需求的容量,將是本案所要著重的問題與解決的重點。
有鑑於此,本發明實施例提供一種損壞資料行的篩選方法,適用於資料儲存媒體,資料儲存媒體耦接於控制單元,且資料儲存媒體包括有多個區塊,其中各區塊包括多個資料行,而些資料行被劃分為多個大塊,損壞資料行的篩選方法包括:(a)控制單元計算每一個大塊中多個損壞資料行的數量,並據以對多個大塊排序,其中多個損壞資料行係選自於多個資料行;以及(b)控制單元以多個損壞資料行群組,依序對每一個大塊中的多個損壞資料行標註或記錄,其中每一個損壞資料行群組標註或記錄每一個大塊中損壞資料行位置及損壞資料行數量。
在本發明的一實施例中,在步驟b的步驟後,更包括:(c)控制單元計算每一個大塊的容量,並加總多個大塊的多個容量,以求得多個大塊的總容量,並判斷總容量是否滿足最低需求容量。
在本發明的一實施例中,在步驟c的步驟後,更包括:(d) 當判斷為否時,判斷多個大塊中是否有至少一損壞資料行未被標註或記錄於多個損壞資料行群組,其中至少一損壞資料行未包含於多個損壞資料行;(e)當判斷為是時,控制單元將任二個相隔為K個資料行的多個損壞資料行標註或記錄於多個損壞資料行群組,其中K為正整數;(f)計算每一個大塊中多個損壞資料行的數量及任二個相隔為K個資料行的多個損壞資料行的數量,並據以對這多個大塊排序;以及(g)控制單元以多個損壞資料行群組來依序對每一個大塊中的多個損壞資料行及任二個相隔為K個資料行的多個損壞資料行標註或記錄,其中每一個損壞資料行群組標註或記錄每一個大塊中損壞資料行位置及損壞資料行數量。
在本發明的一實施例中,在步驟g的步驟後,更包括:(h)控制單元計算每一個大塊的容量,並加總多個大塊的多個容量,以求得多個大塊的總容量,並判斷總容量是否滿足最低需求容量;以及(i)當判斷為否時,調整K的數值並執行步驟e。
本發明實施例另提供一種損壞資料行的篩選方法,適用於資料儲存媒體,資料儲存媒體耦接於控制單元,且資料儲存媒體包括有多個區塊,其中各區塊包括多個資料行,而多個資料行被劃分為多個大塊,損壞資料行的篩選方法包括:(a)控制單元將任二個相隔為K個資料行的多個損壞資料行標註或記錄於多個損壞資料行群組,其中多個損壞資料行係選自於多個資料行,K為正整數;以及(b)控制單元計算每一個大塊中多個損壞資料行的數量及任二個相隔為K個資料行的多個損壞資料行的數量,並據以對這多個大塊排序。
在本發明的另一實施例中,在步驟b的步驟後,更包括:(c)控制單元以多個損壞資料行群組來依序對每一個大塊中的多個損壞資料行及任二個相隔為K個資料行的多個損壞資料行標註或記錄,以及控制單元計算每一個大塊的容量,並加總多個大塊的多個容量,以求得多個大塊的總容量並將總容量記錄在總容量記錄表中,其中每一個損壞資料行群組標註或記錄每一個大塊中損壞資料行位置及損壞資料行數量。
在本發明的另一實施例中,在步驟c的步驟後,更包括:(d)判斷多個損壞資料行群組的數量是否小於等於損壞資料行群組上限值;(e)當判斷為否時,調整K的數值並執行步驟a;以及(f)當判斷為是時,從總容量記錄表中選取最大的。
本發明實施例所提供的資料儲存媒體之損壞資料行的篩選方法,根據每一個大塊中損壞資料行或損壞資料行群組的數量進行排序,並按照排序的結果,依序對每一個大塊中的損壞資料行或損壞資料行群組標註直到可用的標註用完為止,最後選取總容量最大的,以達到總容量最佳化的目的。此外,還可根據最低需求容量的設定,而加快篩選方法的時間。
上述說明僅是本發明技術方案的概述,為了能夠更清楚瞭解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其他目的、特徵和優點能夠更明顯易懂,以下特舉較佳實施例,並配合附圖,詳細說明如下。為讓本發明之上述和其他目的、特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式,作詳細說明如下。
圖1為資料儲存裝置的示意圖。如圖1所示,資料儲存裝置包括有資料儲存媒體10與控制單元20,而控制單元20耦接至資料儲存媒體10,以對資料儲存媒體10存取資料。
圖2為資料儲存媒體的示意圖。如圖2所示,此資料儲存媒體10包括多個物理區塊(Physical Block)或簡稱區塊。每一區塊包括多個資料行11,置於同一列的資料行稱之為頁面(Page,如標示P0至PN-1所示)。此外,依據使用者的需求,可將資料行11劃分為M個大塊(Chunk,如標示C0至CM-1),每一個大塊C0至CM-1包含Y個資料行。資料行11的總數較佳大於等於M個大塊所需的M*Y個資料行。上述中的Z、N、M及Y皆為正整數。此外,每一個大塊C0至CM-1可劃分為資料區以及錯誤更正區,資料區用以儲存資料(或使用者資料),錯誤更正區用以儲存同位碼(Parity Code),同位碼可用以更正資料區的資料的錯誤位元(Error Bit)。在此例中,資料儲存媒體10包括以非揮發性記憶體來實現,例如是以快閃記憶體(Flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)等具有長時間資料保存之記憶體裝置來實現。
接下來要說明的是,本發明之損壞資料行12的篩選方法(下稱篩選方法),可用於篩選資料儲存媒體10中的損壞資料行12。為了提高此篩選方法的執行效率,較佳為設定大塊C0至CM-1的最低需求容量,例如是大塊C0至CM-1之總容量的七成。另外隨機挑選資料儲存媒體10的其中一個區塊B0至BZ-1,當作樣本區塊來執行此篩選方法,而不必使用到所有的區塊B0至BZ-1。此外為了簡化說明,本發明僅先使用十個損壞資料行的標註數量,而不使用到所有的標註數量,但不以此為限。以下將以區塊B0作為樣本區塊來說明。假設區塊B0中每一個頁面P0至PN-1可劃分為4個大塊,每一個大塊的大小可為1150Bytes,其中資料區的大小可為1024Bytes,錯誤更正區的大小可為126 Bytes。換言之,每一個頁面P0至PN-1的大小為4600Bytes。此時,每一個頁面P0至PN-1的最低需求容量較佳為3220Bytes。
圖3為依照本發明第一實施例之資料儲存媒體之損壞資料行的篩選方法的流程示意圖。在開始執行篩選方法後(如步驟S101所示),控制單元20計算每一個大塊C0至C3中損壞資料行12的數量,並根據每一個大塊C0至C3中損壞資料行12的數量,對這些大塊C0至C3進行排序,較佳為依照損壞資料行12的數量多寡進行排序,而其中損壞資料行12係選自於這些資料行11(如步驟S102所示)。至於從這些資料行11中判斷是否為損壞資料行12的方法屬習知技術的範疇,在此不再贅述。
圖4A為依照本發明第一實施例之第一輪標註損壞資料行的示意圖。在圖4A中,僅繪示損壞資料行12的部分,並未繪示可用的資料行11,而在損壞資料行12上打叉(亦即符號×),表示對這個損壞資料行12進行標註或記錄。大塊C0被檢查出有五個損壞資料行12,而其中任二個損壞資料行12之間,例如是相隔三個資料行11。換言之,大塊C0可用的資料行11數量至多為Y-5個;大塊C1被檢查出有八個損壞資料行12,而其中任二個損壞資料行12之間,例如是相隔一個資料行11。換言之,大塊C1可用的資料行11數量至多為Y-8個;大塊C2被檢查出有三個損壞資料行12,而其中任二個損壞資料行12之間,例如是相隔四個資料行11。換言之,大塊C2可用的資料行11數量至多為Y-3個;大塊C3被檢查出有四個損壞資料行12,而其中任二個損壞資料行12之間例如是相隔二個資料行11。換言之,大塊C3可用的資料行11數量至多為Y-4個。倘若以損壞資料行12數量的多寡,對這些大塊C0至C3重新排列其順序,則排序的結果為大塊C2、C3、C0及C1。
根據排序的結果,控制單元20係先以多個損壞資料行群組,依序對每一個大塊C0至C3中的損壞資料行12進行標註或記錄,而其中每一個損壞資料行群組標註或記錄每一個大塊C0至C3中損壞資料行12的位置以及損壞資料行12的數量(如步驟S103所示)。此時每一個損壞資料行群組僅標註或記錄一條損壞資料行12。
首先控制單元20先以損壞資料行群組,對大塊C2中的三個損壞資料行12標註或記錄。接著再對大塊C3中四個損壞資料行12標註或記錄於損壞資料行群組。緊接著再對大塊C0中五個損壞資料行12的其中三個標註或記錄損壞資料行群組。此時只有大塊C2與C3中所有損壞資料行12被標註或記錄,而大塊C0則只有部分損壞資料行12被標註或記錄,至於大塊C1的所有損壞資料行12皆未被標註或記錄。最後將結果標註或記錄於損壞資料行群組。據此控制單元20便可根據損壞資料行群組,不會對這些已標註的損壞資料行12進行資料的存取,從而避免存取資料時發生錯誤的情況。
接著控制單元20根據每一個大塊C0至C3的可用資料行11,來計算每一個大塊C0至C3的容量,將其加總後以求得大塊C0至C3的總容量,並判斷總容量是否滿足最低需求容量(如步驟S104所示),當判斷的結果為是時,則結束此篩選方法的流程(如步驟S105所示)。至於計算塊之容量的方法屬習知技術的範疇,在此不再贅述,僅作重點概述。在執行此篩選方法的第一輪後,根據損壞資料行12標註或記錄的情況,每一個頁面P0至PN-1可使用的塊僅剩下大塊C2、大塊C3及部分的大塊C0,大約剩下2.6塊可使用,所以大塊C0至C3可用的總容量大約為2990Bytes ,然而此總容量並不符合最低需求容量3220Bytes。
另外,當判斷的結果為否時,則繼續判斷大塊C0至C3中是否仍有損壞資料行12,亦即判斷大塊C0至C3中是否有至少一損壞資料行12未被標註或記錄於這些損壞資料行群組中,而其中至少一損壞資料行12未包含於這些損壞資料行12中(如步驟S106所示)。舉例來說,大塊C1便存在多個損壞資料行12未被標註或記錄於這些損壞資料行群組中。當判斷的結果為否時,則結束此篩選方法的流程(如步驟S107所示)。
反之,當判斷的結果為是時,控制單元20將任二個相隔為K個資料行11的損壞資料行12之間的K個資料行11皆當作損壞資料行12,並將這些損壞資料行12記錄於同一個損壞資料行群組,其中K為正整數(如步驟S108所示)。在此實施例中,K的初始值為1,但不以此為限。請參閱圖4B,圖4B為依照本發明第一實施例之第二輪標註損壞資料行的示意圖。在第一輪標註損壞資料行12時,由於限制只有十個損壞資料行12的標註數量,所以大塊C1中八個損壞資料行12皆未被標註(如圖4A所示)。由於大塊C1中存在四組兩兩相鄰的損壞資料行12,而其中任二個損壞資料行12之間例如是相隔一個資料行11,所以控制單元20可將兩兩相鄰的損壞資料行12連同其中一個被當作損壞資料行12的資料行11皆記錄於同一個損壞資料行群組(如標示g1至g4所示)。 至於大塊C0、大塊C2及大塊C3,如前面所陳述的,在此不再贅述。
接著控制單元20計算每一個大塊C0至C3中損壞資料行12的數量,及任二個相隔為K個資料行11的損壞資料行12的數量,並根據每一個大塊C0至 C3中損壞資料行12的數量以及任二個相隔為K個資料行11的損壞資料行12的數量,對這些大塊C0至C3進行排序,較佳為依照損壞資料行12的數量多寡進行排序(如步驟S109所示)。倘若以損壞資料行12數量的多寡,對這些大塊C0至C3重新排列其順序,則排序的結果為大塊C2、C3、C1及C0。
接著根據排序的結果,控制單元20以這些損壞資料行群組來依序對每一個大塊C0至C3中的損壞資料行12,及任二個相隔為K個資料行11的損壞資料行12標註或記錄,每一個損壞資料行群組標註或記錄每一個大塊C0至C3中損壞資料行12的位置及損壞資料行12的數量(如步驟S110所示)。此時,每一個損壞資料行群組可標註或記錄一條損壞資料行12或數條相鄰的損壞資料行12,除了記錄相鄰損壞資料行12的起始位置,也記錄相鄰損壞資料行12的數量。首先控制單元20先以損壞資料行群組,對大塊C2中的三個損壞資料行12標註或記錄。接著對大塊C3中四個損壞資料行12標註或記錄於損壞資料行群組。緊接著對大塊C1中四個損壞資料行12的群組g1至g4的其中三個標註或記錄。最後將結果標註或記錄於損壞資料行群組。此時只有大塊C2與C3中所有損壞資料行12被標註或記錄,而大塊C1的大部分損壞資料行12被標註或記錄,至於大塊C0的所有損壞資料行12皆未被標註或記錄。
然後控制單元20根據每一個大塊C0至C3的可用資料行11,來計算每一個大塊C0至C3的容量,將其加總後以求得大塊C0至C3的總容量,並判斷總容量是否滿足最低需求容量(如步驟S111所示),當判斷的結果為是時,則結束此篩選方法的流程(如步驟S112所示)。在執行此篩選方法的第二輪後,根據損壞資料行12及損壞資料行12的群組標註或記錄的情況,每一個頁面P0至PN-1可使用的容量僅剩下大塊C2、C3及大部分的大塊C1,大約剩下2.75塊可使用,所以大塊C0至C3可使用的總容量大約為3162Bytes。相較於第一輪,雖多了172 Bytes,但仍不符合最低需求容量3220Bytes。反之,當判斷的結果為否時,則調整K值,例如K調整為2,然後重新執行步驟S108至步驟S113,直到大塊C0至C3的總容量滿足最低需求為止(如步驟S111所示),便可結束整個流程(如步驟S112所示)。
有關步驟S108至S111的流程已經在前面陳述過,在此不再贅述,僅作重點陳述。請參閱圖4C,圖4C為依照本發明第一實施例之第三輪標註損壞資料行的示意圖。在步驟S108中,由於大塊C3中存在二組兩兩相鄰的損壞資料行12,而其中任二個損壞資料行12之間例如是相隔二個資料行11,所以控制單元20可將兩兩相鄰的損壞資料行12連同其中二個被當作損壞資料行12的資料行11皆記錄於同一個損壞資料行群組(如標示h1至h4所示)。倘若以損壞資料行12數量的多寡,對這些大塊C0至C3重新排列其順序,則排序的結果為大塊C3、C2、C1及C0(如步驟S109所示)。根據排序的結果,首先控制單元20對大塊C1中二個損壞資料行12的群組h1及h2標註或記錄。接著對大塊C2中的三個損壞資料行12標註或記錄。緊接著對大塊C1中四個損壞資料行12的群組g1至g4標註或記錄。然後對大塊C0中五個損壞資料行12的其中一個標註或記錄。最後將結果標註或記錄於損壞資料行群組。此時大塊C1至大塊C3中所有損壞資料行12被標註或記錄,而大塊C0則只有一個損壞資料行12被標註或記錄(如步驟S110所示)。在執行此篩選方法的第三輪結果後,根據損壞資料行12及損壞資料行12的群組標註或記錄的情況,每一個頁面P0至PN-1可使用的容量有大塊C1、C2、C3及少部分的大塊C0,大約剩下3.2大塊可使用,所以大塊C0至C3可使用的總容量大約為3680Bytes ,相較於第二輪多了518Bytes,同時也符合最低需求容量3220Bytes(如步驟S111所示),便可結束篩選方法的流程(如步驟S112所示)。由此可知,本發明第一實施例所執行的篩選方法,結合了大塊的排序及群組標註的方式,因此在相同的標註數量的限制下,仍可標註更多的損壞資料行,並且有效率的找出最佳化的標註或記錄的方式,以達到最低需求容量的要求,達到本發明的目的。
在本發明第二實施例中,控制單元20可根據大塊C0至C3的編號順序,依序對每一個大塊C0至C3的損壞資料行12或損壞資料行群組進行標註或記錄,直到可用的標註數量用完為止。舉例來說,在第一輪的篩選方法中,控制單元20可以先對大塊C0中的五個損壞資料行12標註或記錄。接著控制單元20對大塊C1中的其中五個損壞資料行12標註或記錄。然後將結果標註或記錄於損壞資料行群組。最後計算大塊C0至C3可使用的總容量,並判斷總容量是否符合最低需求容量。當判斷為是時,便可結束整個流程。反之,當判斷為否時,繼續判斷是否仍有損壞資料行12。至於接下來的步驟,則類似於本發明第一實施例所陳述的,在此不再贅述。值得注意的是,本發明第二實施例與本發明第一實施例近似,主要的差別在於是否先根據每一個大塊C0至C3的損壞資料行12的數量對大塊C0至C3排序,然後再對每一個大塊C0至C3的損壞資料行12或損壞資料行群組進行標註或記錄。然而使用本發明第二實施例的篩選方法,可使用的資料行11及總容量可能少於本發明第一個實施例,且執行上效率也可能劣於本發明第一個實施例。
接下來要說明的是 ,本發明第三實施例之資料儲存媒體之損壞資料行的篩選方法(下稱篩選方法)。為了簡化說明,本發明第三實施例使用十四個損壞資料行12的標註數量作為損壞資料行群組上限值,而不使用到所有的標註數量,但不以此為限。此外,本發明第三實施例的部分步驟及圖示說明已於前述實施例所詳加敘述,在此不再贅述,僅作重點概述。
圖5為依照本發明第三實施例之資料儲存媒體之損壞資料行的篩選方法的流程示意圖。圖6A為依照本發明第三實施例之損壞資料行的分佈示意圖。在圖6A中,損壞資料行12的數量有二十個,超過損壞資料行群組上限值。因此需要執行本發明的篩選方法(如步驟S201所示)來減少損壞資料行12的組數並獲得最大化的總容量。
首先,控制單元20將任二個相隔為K個資料行11的損壞資料行12之間的K個資料行11皆當作損壞資料行12,並將這些損壞資料行12記錄於同一個損壞資料行群組,其中K為正整數(如步驟S202所示)。在此實施例中,K的初始值為1,但不以此為限。請參閱圖6B,圖6B為依照本發明第三實施例之第一輪標註損壞資料行的示意圖。由於大塊C1中存在四組兩兩相鄰的損壞資料行12,而其中任二個損壞資料行12之間為相隔一個資料行11,所以控制單元20可將兩兩相鄰的損壞資料行12連同其中一個被當作損壞資料行12的資料行11皆記錄於同一個損壞資料行群組(如標示g1至g4所示)。 至於大塊C0、大塊C2及大塊C3,如本發明第一實施例所陳述的,在此不再贅述。
接著,控制單元20計算每一個大塊C0至C3中損壞資料行12的數量,及任二個相隔為K個資料行11的損壞資料行12的數量,並根據每一個大塊C0至C3中損壞資料行12的數量以及任二個相隔為K個資料行11的損壞資料行12的數量,對這些大塊C0至C3進行排序,較佳為依照損壞資料行12的數量多寡進行排序(如步驟S203所示)。倘若以損壞資料行12數量的多寡,對這些大塊C0至C3重新排列其順序,則排序的結果為大塊C2、C3、C1及C0或者是大塊C2、C1、C3及C0。倘若排序的結果出現多個,控制單元20可以隨機選取的方式選擇其中一個作為最終排序的結果,例如選取大塊C2、C3、C1及C0,但選取的方式不以此為限。
然後,控制單元20根據排序的結果,以這些損壞資料行群組來依序對每一個大塊C0至C3中的損壞資料行12,及任二個相隔為K個資料行11的損壞資料行12標註或記錄,每一個損壞資料行群組標註或記錄每一個大塊C0至C3中損壞資料行12的位置及損壞資料行12的數量,以及計算這些大塊C0至C3的總容量並將總容量記錄在總容量記錄表中(如步驟S204所示)。此時,每一個損壞資料行群組可標註或記錄一條損壞資料行12或數條相鄰的損壞資料行12,除了記錄相鄰損壞資料行12的起始位置,也記錄相鄰損壞資料行12的數量。首先,控制單元20先以損壞資料行群組對大塊C2中的三個損壞資料行12標註或記錄。接著,對大塊C3中四個損壞資料行12標註或記錄於損壞資料行群組。緊接著,對大塊C1中四個損壞資料行12的群組g1至g4標註或記錄。然後,對大塊C0中五個損壞資料行12的其中三個標註或記錄。之後,將結果標註或記錄於損壞資料行群組。接著,控制單元20根據每一個大塊C0至C3的可用資料行11,來計算並記錄每一個大塊C0至C3的容量,將其加總後以求得大塊C0至C3的總容量並將其記錄在總容量記錄表中。在執行此篩選方法的第一輪後,控制單元20根據損壞資料行12及損壞資料行12的群組標註或記錄的情況,每一個頁面P0至PN-1可使用的容量剩下大塊C1至C3及部分的大塊C0,大約剩下3.6塊可使用,所以大塊C0至C3可使用的總容量大約為4140Bytes。
之後,控制單元20判斷損壞資料行群組的數量是否小於等於損壞資料行群組上限值(如步驟S205所示)。在執行此篩選方法的第一輪後,雖然損壞資料行群組的數量降為十六個,但仍大於損壞資料行群組上限值,因此需要調整K值,例如K調整為2(如步驟S206所示),然後再重新執行步驟S202至步驟S204,直到損壞資料行群組的數量滿足小於等於損壞資料行群組上限值為止(如步驟205所示)。
請參閱圖6C,圖6C為依照本發明第三實施例之第二輪標註損壞資料行的示意圖。在步驟S202中,由於大塊C3中存在二組兩兩相鄰的損壞資料行12,而其中任二個損壞資料行12之間為相隔二個資料行11,所以控制單元20可將兩兩相鄰的損壞資料行12連同其中二個被當作損壞資料行12的資料行11皆記錄於同一個損壞資料行群組(如標示h1至h4所示)。倘若以損壞資料行12數量的多寡,對這些大塊C0至C3重新排列其順序,則排序的結果為大塊C3、C2、C1及C0(如步驟S203所示)。根據排序的結果,首先,控制單元20對大塊C1中二個損壞資料行12的群組h1及h2標註或記錄。接著,對大塊C2中的三個損壞資料行12標註或記錄。緊接著,對大塊C1中四個損壞資料行12的群組g1至g4標註或記錄。然後,對大塊C0中五個損壞資料行12標註或記錄。之後,將結果標註或記錄於損壞資料行群組。接著,控制單元20根據每一個大塊C0至C3的可用資料行11,來計算並記錄每一個大塊C0至C3的容量,將其加總後以求得大塊C0至C3的總容量並將其記錄在總容量記錄表中。在執行此篩選方法的第二輪後,控制單元20根據損壞資料行12及損壞資料行12的群組標註或記錄的情況,每一個頁面P0至PN-1可使用的容量有大塊C0至C3,大約有4塊可使用,所以大塊C0至C3可使用的總容量大約為4600Bytes。
接著,控制單元20判斷損壞資料行群組的數量是否小於等於損壞資料行群組上限值(如步驟S205所示)。在執行此篩選方法的第二輪後,損壞資料行群組的數量已降為十四個,剛好等於損壞資料行群組上限值,因此不需要調整K值。然後,控制單元20根據總容量記錄表中所記錄大塊C0至C3的總容量,從總容量記錄表中選取總容量最大的,並將此輪中這些損壞資料行群組所標註或記錄每一個大塊C0至C3中損壞資料行12的位置及損壞資料行12的數量,作為此資料儲存媒體10的預設值,之後便結束篩選方法的流程(如步驟S207所示)。由於篩選方法第二輪中大塊C0至C3的總容量(4600Bytes)大於篩選方法第一輪中大塊C0至C3的總容量(4140Bytes)。因此控制單元20將根據篩選方法第二輪時相關的標註或記錄,作為此資料儲存媒體10的預設值,以達到資料儲存媒體10的總容量得最佳化的目的。
綜上所述,本發明實施例所提供的資料儲存媒體之損壞資料行的篩選方法,結合了對大塊的排序及群組標註的方式,因此在相同的標註數量的限制下,仍可標註更多的損壞資料行,並且有效率的找出最佳化的標註或記錄的方式,最後選取總容量最大的,以達到總容量最佳化的目的。此外,本發明還可根據最低需求容量的設定,縮短篩選方法的時間,以達到最低需求容量的要求,達到本發明的目的。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10:資料儲存媒體
11:資料行
12:損壞資料行
20:控制單元
B0~BZ-1:區塊
C0~CM-1:大塊
P0~PN-1:頁面
S101~S113、S201~S207:步驟
g1~g4、h1~h2:損壞資料行的群組
圖1為資料儲存裝置的示意圖。
圖2為資料儲存媒體的示意圖。
圖3為依照本發明第一實施例之資料儲存媒體之損壞資料行的篩選方法的流程示意圖。
圖4A為依照本發明第一實施例之第一輪標註損壞資料行的示意圖。
圖4B為依照本發明第一實施例之第二輪標註損壞資料行的示意圖。
圖4C為依照本發明第一實施例之第三輪標註損壞資料行的示意圖。
圖5為依照本發明第三實施例之資料儲存媒體之損壞資料行的篩選方法的流程示意圖。
圖6A為依照本發明第三實施例之損壞資料行的分佈示意圖。
圖6B為依照本發明第三實施例之第一輪標註損壞資料行的示意圖。
圖6C為依照本發明第三實施例之第二輪標註損壞資料行的示意圖。
S101~S113:步驟
Claims (7)
- 一種損壞資料行的篩選方法,適用於一資料儲存媒體,該資料儲存媒體耦接於一控制單元,且資料儲存媒體包括有多個區塊,其中各該區塊包括多個資料行,而該等資料行被等分為多個大塊,該損壞資料行的篩選方法包括:(a)該控制單元計算各個大塊中多個損壞資料行的數量,並據以對該等大塊排序,其中該等損壞資料行係選自於該等資料行;以及(b)該控制單元以多個損壞資料行群組,依序對各個大塊中的該等損壞資料行標註或記錄,其中各個損壞資料行群組標註或記錄各個大塊中一損壞資料行位置及一損壞資料行數量。
- 如請求項1所述之損壞資料行的篩選方法,其中在步驟b的步驟後,更包括:(c)該控制單元計算各個大塊的一容量,並加總該等大塊的該等容量,以求得該等大塊的一總容量,並判斷該總容量是否滿足一最低需求容量。
- 如請求項2所述之損壞資料行的篩選方法,其中在步驟c的步驟後,更包括:(d)當判斷為否時,判斷該等大塊中是否有至少一損壞資料行未被標註或記錄於該等損壞資料行群組,其中該至少一損壞資料行未包含於該等損壞資料行;(e)當判斷為是時,該控制單元將任二個相隔為K個資料行的該等損壞資料行標註或記錄於該等損壞資料行群組,其中K為正整數; (f)計算各個大塊中該等損壞資料行的數量及任二個相隔為K個資料行的該等損壞資料行的數量,並據以對這該等大塊排序;以及(g)該控制單元以該等損壞資料行群組來依序對各個大塊中的該等損壞資料行及任二個相隔為K個資料行的該等損壞資料行標註或記錄,其中各個損壞資料行群組標註或記錄各個大塊中該損壞資料行位置及該損壞資料行數量。
- 如請求項3所述之損壞資料行的篩選方法,其中在步驟g的步驟後,更包括:(h)該控制單元計算各個大塊的該容量,並加總該等大塊的該等容量,以求得該等大塊的該總容量,並判斷該總容量是否滿足該最低需求容量;以及(i)當判斷為否時,調整K的數值並執行步驟e。
- 一種損壞資料行的篩選方法,適用於一資料儲存媒體,該資料儲存媒體耦接於一控制單元,且資料儲存媒體包括有多個區塊,其中各該區塊包括多個資料行,而該等資料行被等分為多個大塊,該損壞資料行的篩選方法包括:(a)該控制單元將任二個相隔為K個資料行的多個損壞資料行標註或記錄於多個損壞資料行群組,其中該等損壞資料行係選自於該等資料行,K為正整數;以及(b)該控制單元計算各個大塊中該等損壞資料行的數量及任二個相隔為K個資料行的該等損壞資料行的數量,並據以對這該等大塊排序。
- 如請求項5所述之損壞資料行的篩選方法,其中在步驟b的步驟後,更包括:(c)該控制單元以該等損壞資料行群組來依序對各個大塊中的該等損壞資料行及任二個相隔為K個資料行的該等損壞資料行標註或記錄,以及該控制單元計算各個大塊的一容量,並加總該等大塊的該等容量,以求得該等大塊的一總容量並將該總容量記錄在一總容量記錄表中,其中各個損壞資料行群組標註或記錄各個大塊中該損壞資料行位置及該損壞資料行數量。
- 如請求項6所述之損壞資料行的篩選方法,其中在步驟c的步驟後,更包括:(d)判斷該等損壞資料行群組的數量是否小於等於一損壞資料行群組上限值;(e)當判斷為否時,調整K的數值並執行步驟a;以及(f)當判斷為是時,從該總容量記錄表中選取最大的。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109104322A TWI778326B (zh) | 2020-02-12 | 2020-02-12 | 資料儲存媒體之損壞資料行的篩選方法 |
CN202010146533.6A CN113254257B (zh) | 2020-02-12 | 2020-03-05 | 数据存储媒体的损坏数据列的筛选方法 |
US17/037,795 US11335432B2 (en) | 2020-02-12 | 2020-09-30 | Method for selecting bad columns in data storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109104322A TWI778326B (zh) | 2020-02-12 | 2020-02-12 | 資料儲存媒體之損壞資料行的篩選方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202131346A TW202131346A (zh) | 2021-08-16 |
TWI778326B true TWI778326B (zh) | 2022-09-21 |
Family
ID=77177060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109104322A TWI778326B (zh) | 2020-02-12 | 2020-02-12 | 資料儲存媒體之損壞資料行的篩選方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11335432B2 (zh) |
CN (1) | CN113254257B (zh) |
TW (1) | TWI778326B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI763608B (zh) * | 2021-11-02 | 2022-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其損壞資料行的篩選方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180314428A1 (en) * | 2016-05-11 | 2018-11-01 | Silicon Motion, Inc. | Method for screening bad data columns in data stroage medium |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8086913B2 (en) * | 2008-09-11 | 2011-12-27 | Micron Technology, Inc. | Methods, apparatus, and systems to repair memory |
TWI581093B (zh) * | 2016-06-24 | 2017-05-01 | 慧榮科技股份有限公司 | 資料儲存媒體之損壞資料行的篩選方法 |
US10908838B2 (en) * | 2018-09-25 | 2021-02-02 | Sandisk Technologies Llc | Column replacement with non-dedicated replacement columns |
TWI748214B (zh) * | 2019-07-29 | 2021-12-01 | 慧榮科技股份有限公司 | 快閃記憶體控制器、儲存裝置及其讀取方法 |
-
2020
- 2020-02-12 TW TW109104322A patent/TWI778326B/zh active
- 2020-03-05 CN CN202010146533.6A patent/CN113254257B/zh active Active
- 2020-09-30 US US17/037,795 patent/US11335432B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180314428A1 (en) * | 2016-05-11 | 2018-11-01 | Silicon Motion, Inc. | Method for screening bad data columns in data stroage medium |
Also Published As
Publication number | Publication date |
---|---|
US11335432B2 (en) | 2022-05-17 |
CN113254257B (zh) | 2022-09-30 |
US20210249099A1 (en) | 2021-08-12 |
CN113254257A (zh) | 2021-08-13 |
TW202131346A (zh) | 2021-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7210077B2 (en) | System and method for configuring a solid-state storage device with error correction coding | |
US6751766B2 (en) | Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data | |
CN101183565B (zh) | 存储介质中数据校验方法 | |
TWI601148B (zh) | 損壞資料行的篩選方法與具有損壞資料行總表的資料儲存裝置 | |
US20120110419A1 (en) | Data Structure for Flash Memory and Data Reading/Writing Method Thereof | |
DE10233642A1 (de) | Fehlerkorrektur-Kodierung und -Dekodierung in einer Festkörper-Speicherungsvorrichtung | |
TWI581093B (zh) | 資料儲存媒體之損壞資料行的篩選方法 | |
WO2009072014A1 (en) | Correction of errors in a memory array | |
TWI778326B (zh) | 資料儲存媒體之損壞資料行的篩選方法 | |
CN107368258B (zh) | 数据储存媒体之损坏数据行的筛选方法 | |
CN113419688B (zh) | 一种mlc芯片的错误率分析方法、系统及装置 | |
TWI763608B (zh) | 資料儲存裝置及其損壞資料行的篩選方法 | |
JP5131158B2 (ja) | リダンダンシ演算方法及び装置並びにメモリ試験装置 | |
TWI795974B (zh) | 資料儲存裝置及其錯誤容忍度的篩選方法 | |
TWI637261B (zh) | 資料儲存媒體之損壞資料行的篩選方法 | |
CN101630535B (zh) | 数据处理电路及方法 | |
US11803312B2 (en) | Data storage device and selecting bad data block method thereof | |
TW202203020A (zh) | 資料的寫入方法及其資料儲存裝置 | |
US20030028840A1 (en) | Quality control in data transfer and storage apparatus | |
CN107391290A (zh) | 一种闪存制程差异的检测方法 | |
EP1286360A2 (en) | Manufacturing test for a fault tolerant magnetoresistive solid-state storage device | |
CN114077382A (zh) | 数据存储装置及其存储矩阵选择方法 | |
JP2003115196A5 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |