TWI774015B - 資料的寫入方法及其資料儲存裝置 - Google Patents
資料的寫入方法及其資料儲存裝置 Download PDFInfo
- Publication number
- TWI774015B TWI774015B TW109122482A TW109122482A TWI774015B TW I774015 B TWI774015 B TW I774015B TW 109122482 A TW109122482 A TW 109122482A TW 109122482 A TW109122482 A TW 109122482A TW I774015 B TWI774015 B TW I774015B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- predetermined period
- error rate
- control unit
- period
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本發明實施例提供一種資料的寫入方法及其資料儲存裝置。資料儲存裝置包括資料儲存媒體及耦接於資料儲存媒體的控制單元,其中資料儲存媒體包括多個資料行及至少一損壞資料行。控制單元依據週期參數及損壞參數,以將資料寫入至資料儲存媒體的多個資料行,其中週期參數儲存具有第一錯誤率的預定週期,損壞參數儲存在預定週期中錯誤率大於等於預定錯誤率的至少一損壞資料行的位置。
Description
本發明是有關一種資料的寫入方法及其資料儲存裝置,且特別是有關於一種具有週期性損壞資料行的資料儲存媒體之資料的寫入方法及其資料儲存裝置。
一般而言,儲存裝置,例如是固態硬碟(Solid State Drive,SSD)、SD記憶卡(Secure Digital Memory Card)或隨身碟(USB)等,主要是由控制單元與資料儲存媒體所構成。資料儲存媒體是由多個資料行(column)所構成,而這些資料行則是用來儲存資料。儲存裝置在製造的過程中,難免會生產出一些未達原廠合格標準的資料儲存媒體,而被歸類為降級(Downgrade)品。這些降級品在販售給消費者之前,都會先將資料儲存媒體中損壞資料行(bad column)偵測出來,並將它標註或記錄至損壞資料行表。控制單元便可根據損壞資料行表,跳過這些已標註或已記錄的損壞資料行,不對這些損壞資料行進行資料的寫入,藉此避免發生存取資料錯誤的情況。
然而,在這些降級品中通常會出現週期性損壞資料行的現象,亦即每隔一段區間會出現一個損壞資料行。值得注意的是,當週期很短時,將產生大量的損壞資料行,而這些大量的損壞資料行遠遠超過硬體可以標註的數量。倘若使用舊有的方式將偵測出來的損壞資料行一個一個地標註或記錄下來,將需要花費大量的記憶體空間來記錄損壞資料行的位置。舉例來說,倘若一個資料頁(page)有18000個資料行,而每間隔8個資料行會有一個資料行是損壞的,總共會有2250個損壞資料行。因此一個儲存矩陣(plane)需要2250個字組(4500 Bytes)來記錄損壞資料行的位置。更進一步來說,倘若資料儲存媒體配置16顆規格顆粒及4個儲存矩陣,則資料儲存媒體需要288 KBytes來記錄損壞資料行的位置,而此容量卻遠大於一般控制器所內建的靜態隨機存取記憶體(SRAM)的容量大小。此外,損壞資料行之標註或記錄的數量受限於硬體,倘若可標註的數量用完時,資料儲存媒體中這些剩餘未標註的損壞資料行,將可能消耗錯誤校正碼(Error Correcting Code,ECC)的校正能力,造成原本可以校正的資料無法被適當的校正。
因此,對於具有週期性損壞資料行的資料儲存媒體,如何在有限之硬體可標註的損壞資料行的數量限制下,提供一種可以大幅降低記錄損壞資料行位置所需花費的記憶體容量的方法,將是本案所要著重的問題與解決的重點。
有鑑於此,本發明實施例提供一種資料的寫入方法,適用於資料儲存媒體,資料儲存媒體耦接於控制單元,且資料儲存媒體包括多個資料行及至少一損壞資料行,資料的寫入方法包括: 控制單元依據週期參數及損壞參數,以將資料寫入至資料儲存媒體的多個資料行,其中週期參數儲存具有第一錯誤率的預定週期,損壞參數儲存在預定週期中錯誤率大於等於預定錯誤率的至少一損壞資料行的位置。
在本發明的一實施例中,其中週期參數及損壞參數儲存於資料儲存媒體中。
在本發明的一實施例中,在控制單元依據週期參數及損壞參數,以將資料寫入至資料儲存媒體的多個資料行的步驟前,更包括:控制單元設定偵測至少一損壞資料行的預定週期範圍;控制單元依據預定週期,將多個資料行劃分為X個週期,其中預定週期是選自於預定週期範圍,X為多個資料行除以預定週期且X為正整數,以及X個週期中的每一個週期具有T個資料行,其中T為預定週期且T為正整數;控制單元分別統計多個資料行在X個週期中損壞的數量,以取得多個資料行所對應的損壞資料行總數;控制單元分別將多個資料行所對應的損壞資料行總數作正規化,以分別計算出多個資料行在預定週期條件下的錯誤率,並分別將多個錯誤率記錄至錯誤率記錄表中;控制單元判斷預定週期的數值是否大於等於預定週期範圍的上限值;以及當判斷為是時,控制單元從錯誤率記錄表中選取具有第一錯誤率,即最高錯誤率的預定週期並儲存至週期參數,以及在預定週期中選取錯誤率大於等於預定錯誤率的至少一損壞資料行並將至少一損壞資料行的位置儲存至損壞參數。
在本發明的一實施例中,在控制單元判斷預定週期的數值是否大於等於預定週期範圍的上限值的步驟後,更包括:當判斷為否時,控制單元調整預定週期的數值,並執行控制單元依據預定週期將多個資料行劃分為X個週期的步驟。
本發明實施例另提供一種資料儲存裝置,包括:資料儲存媒體以及耦接於資料儲存媒體的控制單元。資料儲存媒體包括多個資料行及至少一損壞資料行。控制單元依據週期參數及損壞參數,以將資料寫入至資料儲存媒體的多個資料行,其中週期參數儲存具有第一錯誤率(通常是最高錯誤率)的預定週期,損壞參數儲存在預定週期中錯誤率大於等於預定錯誤率的至少一損壞資料行的位置。
在本發明的另一實施例中,其中週期參數及損壞參數儲存於資料儲存媒體中。
在本發明的另一實施例中,控制單元更包括:設定偵測至少一損壞資料行的預定週期範圍;依據預定週期,將多個資料行劃分為X個週期,其中預定週期是選自於預定週期範圍,X為多個資料行除以預定週期且X為正整數,以及X個週期中的每一個週期具有T個資料行,其中T為預定週期且T為正整數;分別統計多個資料行在X個週期中損壞的數量,以取得多個資料行所對應的損壞資料行總數;分別將多個資料行所對應的損壞資料行總數作正規化,以分別計算出多個資料行在預定週期條件下的錯誤率,並分別將多個錯誤率記錄至錯誤率記錄表中;判斷預定週期的數值是否大於等於預定週期範圍的上限值;以及當判斷為是時,從錯誤率記錄表中選取具有第一錯誤率(通常是最高錯誤率)的預定週期並儲存至週期參數,以及在預定週期中選取錯誤率大於等於預定錯誤率的至少一損壞資料行並將至少一損壞資料行的位置儲存至損壞參數。
在本發明的另一實施例中,控制單元更包括:當判斷為否時,調整預定週期的數值,並執行依據預定週期將多個資料行劃分為X個週期。
本發明實施例所提供資料的寫入方法及其資料儲存裝置,藉由讀取週期參數及損壞參數,以取得損壞資料行的位置,同時將資料準確地寫入至資料儲存媒體的資料行中,其中週期參數儲存具有第一錯誤率(通常是最高錯誤率)的預定週期,損壞參數儲存在預定週期中錯誤率大於等於預定錯誤率的至少一損壞資料行的位置。藉此,在寫入資料的過程中,可以主動跳過損壞資料行,以避免將資料寫入至資料儲存媒體的損壞資料行中,同時達到大幅降低儲存或記錄損壞資料行位置所需花費的記憶體容量的目的。
上述說明僅是本發明技術方案的概述,為了能夠更清楚瞭解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其他目的、特徵和優點能夠更明顯易懂,以下特舉較佳實施例,並配合附圖,詳細說明如下。為讓本發明之上述和其他目的、特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式,作詳細說明如下。
請參閱圖1,圖1為資料儲存裝置的示意圖。資料儲存裝置包括有資料儲存媒體10與控制單元20,其中控制單元20耦接至資料儲存媒體10,以對資料儲存媒體10存取資料。
請參閱圖2,圖2為資料儲存媒體的示意圖。資料儲存媒體10包括有多個資料行11,而置於同一列的資料行稱之為資料頁(Page,如標示P0至PN-1所示),每N個資料頁被劃分成一個資料區塊(Block,如標示B0至BZ-1所示)。其中N、Z皆為正整數。在本實施例中,資料儲存媒體10包括以非揮發性記憶體來實現,例如是以快閃記憶體(Flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)等具有長時間資料保存之記憶體裝置來實現。
本發明實施例之資料的寫入方法及其資料儲存裝置,可用於偵測具有週期性損壞資料行(未繪示)的資料儲存媒體10,以取得損壞資料行的位置。藉此確保資料可以準確地寫入至資料儲存媒體10的資料行11,而不會寫入至資料儲存媒體10的損壞資料行。假設每一個資料頁P0至PN-1有M個資料行11,而每間隔T個資料行11會有一個資料行11是損壞的,也就是每間隔T個資料行11會有一個損壞資料行,其中M、T皆為正整數。此外,為了簡化說明,本發明實施例隨機挑選資料儲存媒體10的其中一個區塊B0至BZ-1,當作樣本區塊來執行損壞資料行的偵測,而不必使用到所有的區塊B0至BZ-1。
圖3為依照本發明實施例資料儲存媒體之週期性損壞資料行的偵測方法的流程示意圖。在開始執行偵測方法後(如步驟S100所示)。首先,控制單元20設定偵測損壞資料行的預定週期範圍(如步驟S101所示),也就是對預定週期範圍內所有的資料行11進行偵測或掃描,以取得資料行11損壞的位置,亦即取得損壞資料行的位置。換言之,偵測到損壞的資料行11可以被視為損壞資料行。舉例來說,倘若設定的預定週期範圍為2至256個資料行11時。控制單元20會從週期為2開始進行損壞資料行的偵測,接著對週期為3進行損壞資料行的偵測,以此類推,最後對週期為256進行損壞資料行的偵測。值得注意的是,預定週期範圍乃是根據實際的需要而任意設定。在本發明實施例中,為了簡化說明,所以只使用8至10的數值作為預定偵測的週期範圍。
接著,請參閱圖4A,圖4A為依照本發明實施例之依據預定週期將M個資料行劃分為X個週期的示意圖。控制單元20依據預定週期T的數值,將M個資料行11劃分為X(M/T)個週期(即週期T0至週期TX-1),其中預定週期T的數值是選自於預定週期範圍中所設定的數值,並且每一個週期有T個資料行11(如步驟S102所示)。附加說明的是,倘若M個資料行11無法被預定週期T整除而產生餘數,亦即存在少部分的資料行11未被劃分至X個週期中,對於這少部分的資料行11可以跳過不看,或者將其視為非損壞的資料行。
請參閱圖4B,圖4B為依照本發明實施例之依據預定週期將M個資料行劃分為2048個週期的示意圖。假設每一個資料頁P0至PN-1有16384個資料行11(即M=16384),而預定週期T的數值為8,則16384個資料行11可以劃分為2048(即X=16384/8)個週期(即週期T0至週期T2047),其中每一個週期有8個資料行11(即第一資料行C0至第八資料行C7)。
接著,控制單元20分別統計M個資料行11在X個週期中損壞的數量(如步驟S103所示),也就是統計第一資料行C0在週期T0至週期T2047中損壞的數量,接著統計第二資料行C1在週期T0至週期T2047中損壞的數量,以此類推,然後統計第八資料行C7在週期T0至週期T2047中損壞的數量。附加說明的是,這些資料行11中的任何一個資料行11可以是在X個週期中全數是損壞;全數是沒有損壞的;部分是損壞的;部分是沒有損壞的。舉例來說,倘若這些資料行11中只有第三資料行C2及第六資料行C5在週期T0至週期T2047中有部分是損壞的,而其餘的資料行(即第一資料行C0、第二資料行C1、第四資料行C3、第五資料行C4、第七資料行C6及第八資料行C7)在週期T0至週期T2047中全數是沒有損壞的。更進一步來說,第三資料行C2在週期T0至週期TX-1中,有超過一半的週期是損壞的,例如是1024個週期,亦即總計有1024個第三資料行C2為損壞資料行,而第六資料行C5在週期T0至週期TX-1中,有超過四分之三的週期是損壞的,例如是1536個週期,亦即總計有1536個第六資料行C5為損壞資料行。最後控制單元20分別統計出第一資料行C0至第八資料行C在週期T0至週期T2047中損壞資料行的總數,並依資料行11的順序依序列出如下:0、0、1024、0、0、1536、0、0。
緊接著,控制單元20分別將這些資料行11的損壞資料行總數作正規化(Normalize),以分別計算出這些資料行11在預定週期T條件下的錯誤率,並分別將這些錯誤率記錄至錯誤率記錄表中(如步驟S104所示)。在本發明實施例中,當預定週期T為8時,控制單元20將第一資料行C0至第八資料行C7所分別對應的損壞資料行總數除以X(即2048)個週期,以執行正規化。更進一步來說,控制單元20將在步驟S103有關第一資料行C0至第八資料行C在週期T0至週期T2047中損壞資料行總數的統計結果“0、0、1024、0、0、1536、0、0”分別除以2048,以執行正規化,並將正規化的結果依序列出如下:0、0、0.5、0、0、0.75、0、0。這表示第三資料行C2及第六資料行C5的錯誤率分別為50%及75%,而其餘資料行的錯誤率為0%。然後,控制單元20將預定週期T為8時之正規化的結果儲存至錯誤率記錄表中(如圖6所示)。
之後,控制單元20判斷預定週期T是否大於等於預定週期範圍的上限值(如步驟S104所示)。若否,調整預定週期T的數值,並回到步驟S102(如步驟S106所示)。在本發明實施例中,由於預定週期T為8時是小於預定週期範圍的上限值(即10),因此,調整預定週期T的數值至9,並回到步驟S102。
請參閱圖4C,圖4C為依照本發明實施例之依據預定週期將M個資料行劃分為1820個週期的示意圖。在步驟S102中,依據預定週期T為9時,將16384個資料行劃分為1820(即X=16384/9)個週期(即週期T0至週期T1819),其中每一個週期有9個資料行11(即第一資料行C0至第九資料行C8)。
接著,在步驟S103中,控制單元20分別統計第一資料行C0至第九資料行C8在週期T0至週期T1819中損壞的數量。舉例來說,假設第一資料行C0、第二資料行C1、第三資料行C2、第四資料行C3、第五資料行C4、第六資料行C5、第七資料行C6、第八資料行C7和第九資料行C8,分別有十分之一的週期、十分之二的週期、十分之三的週期、十分之一的週期、十分之一的週期、十分之三的週期、十分之四的週期、十分之二的週期和十分之一的週期是損壞的。換言之,總計有182個第一資料行C0為損壞資料行;總計有364個第二資料行C1為損壞資料行;總計有546個第三資料行C2為損壞資料行;總計有182個第四資料行C3為損壞資料行;總計有182個第五資料行C4為損壞資料行;總計有546個第六資料行C5為損壞資料行;總計有728個第七資料行C6為損壞資料行;總計有364個第八資料行C7為損壞資料行;總計有182個第九資料行C8為損壞資料行。最後控制單元20分別統計出第一資料行C0至第九資料行C在週期T0至週期T1819中損壞資料行的總數,並依序列出如下:182、364、546、182、182、546、728、364、182。
緊接著,在步驟S104中,當預定週期T為9時,控制單元20將第一資料行C0至第九資料行C8所分別對應的損壞資料行總數除以X(即1820)個週期,以執行正規化。更進一步來說,控制單元20將在步驟S103有關第一資料行C0至九資料行C8在週期T0至週期T1819中損壞資料行總數的統計結果“182、364、546、182、182、546、728、364、182”分別除以1820,以執行正規化,並將正規化的結果依序列出如下:0.1、0.2、0.3、0.1、0.1、0.3、0.4、0.2、0.1。這表示第一資料行C0、第二資料行C1、第三資料行C2、第四資料行C3、第五資料行C4、第六資料行C5、第七資料行C6、第八資料行C7和第九資料行C8的錯誤率分別為10%、20%、30%、10%、10%、30%、40%、20%、和10%。然後,控制單元20將預定週期T為9之正規化的結果儲存至錯誤率記錄表中(如圖6所示)。
之後,在步驟S105中,判斷預定週期T是否大於等於預定週期範圍的上限值。在本發明實施例中,由於預定週期T為9小於預定週期範圍的上限值(即10),因此,調整預定週期T的數值至10,並回到步驟S102。
請參閱圖4D,圖4D為依照本發明實施例之依據預定週期將M個資料行劃分為1638個週期的示意圖。在步驟S102中,依據預定週期T為10時,將16384個資料行劃分為1638(即X=16384/10)個週期(即週期T0至週期T1637),其中每一個週期有10個資料行11(即第一資料行C0至第十資料行C9)。
接著,在步驟S103中,控制單元20分別統計第一資料行C0至第十資料行C9在週期T0至週期T1637中損壞的數量。舉例來說,假設第一資料行C0、第二資料行C1、第三資料行C2、第四資料行C3、第五資料行C4、第六資料行C5、第七資料行C6、第八資料行C7、第九資料行C8和第十資料行C9,分別有十分之一的週期、十分之一的週期、
十分之二的週期、十分之三的週期、十分之一的週期、十分之二的週期、十分之二的週期、十分之一的週期、十分之一的週期和十分之二的週期是損壞的。換言之,總計有163個第一資料行C0為損壞資料行;總計有163個第二資料行C1為損壞資料行;總計有327個第三資料行C2為損壞資料行;總計有491個第四資料行C3為損壞資料行;總計有163個第五資料行C4為損壞資料行;總計有327個第六資料行C5為損壞資料行;總計有327個第七資料行C6為損壞資料行;總計有163個第八資料行C7為損壞資料行;總計有163個第九資料行C8為損壞資料行;總計有327個第十資料行C9為損壞資料行。最後控制單元20分別統計出第一資料行C0至第十資料行C9在週期T0至週期T1637中損壞資料行的總數,並依序列出如下:163、163、327、491、163、327、327、163、163、327。
緊接著,在步驟S104中,針對在預定週期T為10時,控制單元20將第一資料行C0至第十資料行C9所分別對應的損壞資料行總數除以 X(即1638)個週期,以執行正規化。更進一步來說,控制單元20將在步驟S103有關第一資料行C0至第十資料行C9在週期T0至週期T1637中損壞資料行總數的統計結果“163、163、327、491、163、327、327、163、163、327”分別除以1638,以執行正規化,並將正規化的結果依序列出如下:0.1、0.1、0.2、0.3、0.1、0.2、0.2、0.1、0.1、0.2。這表示第一資料行C0、第二資料行C1、第三資料行C2、第四資料行C3、第五資料行C4、第六資料行C5、第七資料行C6、第八資料行C7、第九資料行C8和第十資料行C9的錯誤率分別為10%、10%、20%、30%、10%、20%、20%、10%、10%和20%。然後,控制單元20將預定週期T為10之正規化的結果儲存至錯誤率記錄表中(如圖6所示)。
之後,在步驟S105中,判斷預定週期T是否大於等於預定週期範圍的上限值。由於預定週期T為10等於預定週期範圍的上限值(即10),因此,執行步驟S107。
在步驟S107中,控制單元20從錯誤率記錄表中選取具有第一錯誤率(通常是最高錯誤率)的預定週期T的值。由錯誤率記錄表可知,當預定週期T為8時,其最高錯誤率為0.75;當預定週期T為9時,其最高錯誤率為0.4;當預定週期T為10時,其最高錯誤率為0.3。由於預定週期T等於8時,具有最高錯誤率。因此,控制單元20選取預定週期T為8,將此預定週期T視為具有最高錯誤率的預定週期T。然後,控制單元20在此預定週期T中,進一步選取錯誤率大於等於預定錯誤率的資料行11,並將此資料行11視為損壞資料行。更進一步來說,控制單元20在第一資料行C0至第八資料行C7中選取錯誤率大於等於預定錯誤率的資料行11,並將選取到的資料行11視為損壞資料行,同時將此損壞資料行記錄至資料儲存媒體10中。舉例來說,假設預定錯誤率設定為20%,在預定週期T為8時,除了第三資料行C2(錯誤率為30%)和第六資料行C5(錯誤率為75%)的錯誤率大於20%之外,其餘的資料行11皆小於20%,因此,第三資料行C2和第六資料行C5被標註或記錄為損壞資料行。
之後,控制單元20使用週期參數來儲存具有最高錯誤率的預定週期T的值,以及使用損壞參數來儲存在具有最高錯誤率的預定週期T時,損壞資料行的錯誤率大於等於預定錯誤率的位置(如步驟S108所示)。在本發明實施例中,週期參數所儲存預定週期T為8,而損壞參數所儲存損壞資料行的位置為第三資料行C2和第六資料行C5,其中週期參數及損壞參數可以儲存在資料儲存媒體10中或資料儲存裝置中。此外,還可以根據週期參數及損壞參數建立損壞資料行記錄表(未繪示),其用以記錄在預定週期T中損壞資料行的位置。
值得注意的是,由於設定的預定週期範圍為2至256,這代表最大的預定週期T為256個資料行,因此,只需要花費1 Byte的記憶體容量來記錄此預定週期T的值。此外,倘若每一個資料行用1個位元(bit)來記錄,則256個資料行就需要256個位元來記錄,因此,當預定週期範圍的上限值為256時,只需要花費32(256/8)Bytes的記憶體容量來記錄損壞資料行的位置。換言之,資料儲存裝置總共只需要花費33 Bytes的記憶體容量,便可記錄資料儲存媒體10中週期性損壞資料行的位置 。相較於舊有方式需要花費數千個Bytes的記憶體容量來記錄所有損壞資料行的位置,本發明實施例資料儲存媒體之週期性損壞資料行的偵測方法,只需要花費數十個Bytes的記憶體容量來記錄所有損壞資料行的位置,藉此大幅度降低儲存或記錄損壞資料行的位置所需花費的記憶體空間。
請參閱圖5,圖5為依照本發明實施例之資料的寫入方法的流程示意圖。更進一步來說,控制單元20只要藉由讀取週期參數及損壞參數(如步驟S201所示),便可依據週期參數所儲存預定週期T的數值以及損壞參數所儲存損壞資料行的位置,而取得資料儲存媒體10中損壞資料行的位置。然後,控制單元20在將資料寫入至資料儲存媒體10的資料行11的過程中,一旦遇到損壞資料行的位置便跳過或越過(bypass)此損壞資料行,而不會將資料寫入至此損壞資料行中。藉此,避免將資料寫入至資料儲存媒體的損壞資料行中。同樣的,在讀取資料時,控制單元20也可藉由讀取週期參數及損壞參數,來取得資料儲存媒體10中損壞資料行的位置,以便在讀取資料儲存媒體10的資料行11的過程中,一旦遇到損壞資料行的位置便跳過或越過,而不會讀取此損壞資料行。藉此,準確地讀取儲存在資料儲存媒體中的資料。
綜上所述,本發明實施例所提供資料的寫入方法及其資料儲存裝置,藉由讀取週期參數及損壞參數,以取得損壞資料行的位置,同時將資料準確地寫入至資料儲存媒體的資料行中,其中週期參數儲存具有最高錯誤率的預定週期,損壞參數儲存在預定週期中錯誤率大於等於預定錯誤率的至少一損壞資料行的位置。藉此,在寫入資料的過程中,可以主動跳過損壞資料行,以避免將資料寫入至資料儲存媒體的損壞資料行中,同時達到大幅降低儲存或記錄損壞資料行位置所需花費的記憶體容量的目的。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10:資料儲存媒體
11:資料行
20:控制單元
B0~BZ-1:區塊
C0:第一資料行
C1:第二資料行
C2:第三資料行
C3:第四資料行
C4:第五資料行
C5:第六資料行
C6:第七資料行
C7:第八資料行
C8:第九資料行
C9:第十資料行
M:資料行的數量
P0~PN-1:資料頁
S101~S108、S200~S202:步驟
T0、T1、T1637、T1819、T2047、TX-1:週期
圖1為資料儲存裝置的示意圖。
圖2為資料儲存媒體的示意圖。
圖3為依照本發明實施例資料儲存媒體之週期性損壞資料行的偵測方法的流程示意圖。
圖4A為依照本發明實施例之依據預定週期將M個資料行劃分為X個週期的示意圖。
圖4B為依照本發明實施例之依據預定週期將M個資料行劃分為2048個週期的示意圖。
圖4C為依照本發明實施例之依據預定週期將M個資料行劃分為1820個週期的示意圖。
圖4D為依照本發明實施例之依據預定週期將M個資料行劃分為1638個週期的示意圖。
圖5為依照本發明實施例之資料的寫入方法的流程示意圖。
圖6為依照本發明實施例之產生錯誤率記錄表的示意圖。
S200~S202:步驟
Claims (8)
- 一種資料的寫入方法,適用於一資料儲存媒體,該資料儲存媒體耦接於一控制單元,其中該資料儲存媒體包括多個資料行及至少一損壞資料行,該資料的寫入方法包括:該控制單元依據一週期參數及一損壞參數,以將一資料寫入至該資料儲存媒體的該些資料行,其中該週期參數儲存具有一第一錯誤率的一預定週期,該損壞參數用以儲存在該預定週期中的錯誤率大於等於一預定錯誤率的該至少一損壞資料行的位置。
- 如請求項1所述之資料的寫入方法,其中該週期參數及該損壞參數儲存於該資料儲存媒體中。
- 如請求項1所述之資料的寫入方法,其中在該控制單元依據該週期參數及該損壞參數,以將該資料寫入至該資料儲存媒體的該些資料行的步驟前,更包括:該控制單元設定偵測該至少一損壞資料行的一預定週期範圍;該控制單元依據該預定週期,將該些資料行劃分為X個週期,其中該預定週期是選自於該預定週期範圍,X為該些資料行除以該預定週期且X為正整數,且該X個週期中的每一個週期具有T個資料行,其中T為該預定週期且T為正整數;該控制單元分別統計該些資料行在該X個週期中損壞的數量,以取得該些資料行所對應的一損壞資料行總數;該控制單元分別將該些資料行所對應的該損壞資料行總數作正規化,以分別計算出該些資料行在該預定週期條件下的錯誤率,並分別將該些錯誤率記錄至一錯誤率記錄表中; 該控制單元判斷該預定週期的數值是否大於等於該預定週期範圍的上限值;以及當判斷為是時,該控制單元從該錯誤率記錄表中選取具有該第一錯誤率的該預定週期並儲存至該週期參數,以及在該預定週期中選取錯誤率大於等於該預定錯誤率的該至少一損壞資料行並將該至少一損壞資料行的位置儲存至該損壞參數。
- 如請求項3所述之資料的寫入方法,其中在該控制單元判斷該預定週期的數值是否大於等於該預定週期範圍的上限值的步驟後,更包括:當判斷為否時,該控制單元調整該預定週期的數值,並執行該控制單元依據該預定週期將該些資料行劃分為該X個週期的步驟。
- 一種資料儲存裝置,包括:一資料儲存媒體,包括多個資料行及至少一損壞資料行;以及一控制單元,耦接於該資料儲存媒體,該控制單元依據該週期參數及該損壞參數,以將一資料寫入至該資料儲存媒體的該些資料行,其中該週期參數儲存具有一第一錯誤率的一預定週期,該損壞參數用以儲存在該預定週期中的錯誤率大於等於一預定錯誤率的該至少一損壞資料行的位置。
- 如請求項5所述之資料儲存裝置,其中該週期參數及該損壞參數儲存於該資料儲存媒體中。
- 如請求項5所述之資料儲存裝置,其中該控制單元更包括:設定偵測該至少一損壞資料行的一預定週期範圍;依據該預定週期,將該些資料行劃分為X個週期,其中該預定週期是選自於該預定週期範圍,X為該些資料行除以該預定週期且X為正整數,且該X個週期中的每一個週期具有T個資料行,其中T為該預定週期且T為正整數; 分別統計該些資料行在該X個週期中損壞的數量,以取得該些資料行所對應的一損壞資料行總數;分別將該些資料行所對應的該損壞資料行總數作正規化,以分別計算出該些資料行在該預定週期條件下的錯誤率,並分別將該些錯誤率記錄至一錯誤率記錄表中;判斷該預定週期的數值是否大於等於該預定週期範圍的上限值;以及當判斷為是時,從該錯誤率記錄表中選取具有該第一錯誤率的該預定週期並儲存至該週期參數,以及在該預定週期中選取錯誤率大於等於該預定錯誤率的該至少一損壞資料行並將該至少一損壞資料行的位置儲存至該損壞參數。
- 如請求項7所述之資料儲存裝置,其中該控制單元更包括:當判斷為否時,調整該預定週期的數值,並執行依據該預定週期將該些資料行劃分為該X個週期。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109122482A TWI774015B (zh) | 2020-07-03 | 2020-07-03 | 資料的寫入方法及其資料儲存裝置 |
CN202010777138.8A CN113885777A (zh) | 2020-07-03 | 2020-08-05 | 数据的写入方法及其数据存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109122482A TWI774015B (zh) | 2020-07-03 | 2020-07-03 | 資料的寫入方法及其資料儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202203020A TW202203020A (zh) | 2022-01-16 |
TWI774015B true TWI774015B (zh) | 2022-08-11 |
Family
ID=79012039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109122482A TWI774015B (zh) | 2020-07-03 | 2020-07-03 | 資料的寫入方法及其資料儲存裝置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113885777A (zh) |
TW (1) | TWI774015B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201110132A (en) * | 2009-07-06 | 2011-03-16 | Sandisk Corp | Bad column management with bit information in non-volatile memory systems |
US8423841B1 (en) * | 2002-12-26 | 2013-04-16 | Marvell International Ltd. | Method and systems for memory testing and test data reporting during memory testing |
US9348694B1 (en) * | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
TWI601148B (zh) * | 2016-05-05 | 2017-10-01 | 慧榮科技股份有限公司 | 損壞資料行的篩選方法與具有損壞資料行總表的資料儲存裝置 |
TWI605462B (zh) * | 2016-05-11 | 2017-11-11 | 慧榮科技股份有限公司 | 資料儲存媒體之損壞資料行的篩選方法 |
US20180024880A1 (en) * | 2012-12-04 | 2018-01-25 | Sandisk Technologies Llc | Bad column handling in flash memory |
-
2020
- 2020-07-03 TW TW109122482A patent/TWI774015B/zh active
- 2020-08-05 CN CN202010777138.8A patent/CN113885777A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423841B1 (en) * | 2002-12-26 | 2013-04-16 | Marvell International Ltd. | Method and systems for memory testing and test data reporting during memory testing |
TW201110132A (en) * | 2009-07-06 | 2011-03-16 | Sandisk Corp | Bad column management with bit information in non-volatile memory systems |
US20180024880A1 (en) * | 2012-12-04 | 2018-01-25 | Sandisk Technologies Llc | Bad column handling in flash memory |
US9348694B1 (en) * | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
TWI601148B (zh) * | 2016-05-05 | 2017-10-01 | 慧榮科技股份有限公司 | 損壞資料行的篩選方法與具有損壞資料行總表的資料儲存裝置 |
TWI605462B (zh) * | 2016-05-11 | 2017-11-11 | 慧榮科技股份有限公司 | 資料儲存媒體之損壞資料行的篩選方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113885777A (zh) | 2022-01-04 |
TW202203020A (zh) | 2022-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6612392B1 (ja) | 半導体記憶装置 | |
US9449684B2 (en) | Storage control device, storage device, information processing system, and storage control method | |
US20090077432A1 (en) | Semiconductor Memory Device | |
US9747159B2 (en) | MRAM smart bit write algorithm with error correction parity bits | |
US10635527B2 (en) | Method for processing data stored in a memory device and a data storage device utilizing the same | |
US11682468B2 (en) | Method and system for replacement of memory cells | |
TWI581093B (zh) | 資料儲存媒體之損壞資料行的篩選方法 | |
TWI601148B (zh) | 損壞資料行的篩選方法與具有損壞資料行總表的資料儲存裝置 | |
CN110603530A (zh) | 基于位旗标草图的存储器管理的方法及利用所述方法的存储器装置 | |
CN105489242B (zh) | 数据储存器件及其操作方法 | |
TWI774015B (zh) | 資料的寫入方法及其資料儲存裝置 | |
TWI763608B (zh) | 資料儲存裝置及其損壞資料行的篩選方法 | |
TWI725306B (zh) | 記憶體的修復方法 | |
TWI605462B (zh) | 資料儲存媒體之損壞資料行的篩選方法 | |
US11335432B2 (en) | Method for selecting bad columns in data storage medium | |
TWI795974B (zh) | 資料儲存裝置及其錯誤容忍度的篩選方法 | |
CN114203252A (zh) | 非易失存储器的坏块检测方法、装置、设备及存储介质 | |
TWI637261B (zh) | 資料儲存媒體之損壞資料行的篩選方法 | |
US11803312B2 (en) | Data storage device and selecting bad data block method thereof | |
US11875864B2 (en) | Mitigating edge layer effect in partially written blocks | |
TWI731775B (zh) | 快閃記憶體的記憶體控制器及其控制方法 | |
JP5263251B2 (ja) | 半導体記憶装置 | |
CN110610737B (zh) | 存储器的修复方法 | |
US10522238B1 (en) | Memory correcting method | |
CN114077382A (zh) | 数据存储装置及其存储矩阵选择方法 |