本發(fā)明涉及一種數(shù)據(jù)儲存之相關(guān)技術(shù),尤其是關(guān)于一種損壞數(shù)據(jù)行的篩選方法與一種具有損壞數(shù)據(jù)行總表的數(shù)據(jù)儲存裝置。
背景技術(shù):
數(shù)據(jù)儲存裝置,例如是固態(tài)硬盤(solidstatedrive,ssd)、sd記憶卡(securedigitalmemorycard)或閃存碟(u盤)等,主要由控制單元與數(shù)據(jù)儲存媒體所構(gòu)成,而其中數(shù)據(jù)儲存媒體又是由多個用以儲存數(shù)據(jù)的數(shù)據(jù)行(column)所構(gòu)成。
在數(shù)據(jù)儲存裝置的制造過程中,難免會生產(chǎn)出次級品,而這些次級品在販賣給使用者之前,都要先將數(shù)據(jù)儲存媒體中的損壞數(shù)據(jù)行(badcolumn)篩選出來并記錄在損壞數(shù)據(jù)行總表中。據(jù)此,控制單元在往后的操作中,便不會再對記錄的損壞數(shù)據(jù)行存取數(shù)據(jù),進而避免存取的數(shù)據(jù)發(fā)生錯誤。
數(shù)據(jù)儲存裝置系利用錯誤校正碼(errorcorrectingcode,ecc)來校正其所儲存的數(shù)據(jù),習(xí)知的損壞數(shù)據(jù)行篩選方法不僅會浪費許多原本可用的數(shù)據(jù)儲存空間,亦無法有效地降低損壞數(shù)據(jù)行所造成的數(shù)據(jù)保存或校正的問題。
技術(shù)實現(xiàn)要素:
因此,本發(fā)明之一目的在提供一種損壞數(shù)據(jù)行的篩選方法,其可應(yīng)用于數(shù)據(jù)儲存媒體,使用此新篩選方法可以保留數(shù)據(jù)儲存媒體中許多原本會被錯殺的數(shù)據(jù)儲存空間,進而避免過分地減少數(shù)據(jù)儲存媒體的數(shù)據(jù)儲存容量。
本發(fā)明之另一目的在提供一種具有損壞數(shù)據(jù)行總表的數(shù)據(jù)儲存裝置,其采用上述之損壞數(shù)據(jù)行的篩選方法。
本發(fā)明提出一種損壞數(shù)據(jù)行的篩選方法,其可應(yīng)用于數(shù)據(jù)儲存媒體。所述數(shù)據(jù)儲存媒體包括有復(fù)數(shù)數(shù)據(jù)區(qū)塊,每一數(shù)據(jù)區(qū)塊包括復(fù)數(shù)數(shù)據(jù)行并將上述數(shù)據(jù)行劃分為復(fù)數(shù)區(qū)段,且所述數(shù)據(jù)儲存媒體包括復(fù)數(shù)數(shù)據(jù)頁,每一數(shù)據(jù)頁包括位于同一列的數(shù)據(jù)行。所述之篩選方法包括:讀取至少一數(shù)據(jù)區(qū)塊之至少一數(shù)據(jù)頁的寫入數(shù)據(jù);比對至少一默認(rèn)數(shù)據(jù)與至少一數(shù)據(jù)頁的寫入數(shù)據(jù)以取得每一區(qū)段之每一數(shù)據(jù)行之錯誤比特數(shù),并據(jù)以計算每一區(qū)段之錯誤數(shù);選取其中之一區(qū)段其具有最大之錯誤數(shù);以及將其中之一區(qū)段中具有最大之錯誤比特數(shù)之其中之一數(shù)據(jù)行記錄成損壞數(shù)據(jù)行。
本發(fā)明另提出一種具有損壞數(shù)據(jù)行總表的數(shù)據(jù)儲存裝置,所述數(shù)據(jù)儲存裝置包括控制單元以及數(shù)據(jù)儲存媒體,且數(shù)據(jù)儲存媒體包括復(fù)數(shù)數(shù)據(jù)區(qū)塊,每一數(shù)據(jù)區(qū)塊包括復(fù)數(shù)數(shù)據(jù)行并將上述數(shù)據(jù)行劃分為復(fù)數(shù)區(qū)段。所述之?dāng)?shù)據(jù)儲存媒體包括復(fù)數(shù)數(shù)據(jù)頁,每一數(shù)據(jù)頁包括位于同一列的數(shù)據(jù)行。所述損壞數(shù)據(jù)行總表系依據(jù)下列步驟而產(chǎn)生,包括:讀取至少一數(shù)據(jù)區(qū)塊之至少一數(shù)據(jù)頁的寫入數(shù)據(jù);比對至少一默認(rèn)數(shù)據(jù)與至少一數(shù)據(jù)頁的寫入數(shù)據(jù)以取得每一區(qū)段之每一數(shù)據(jù)行之錯誤比特數(shù),并據(jù)以計算每一區(qū)段之錯誤數(shù);選取其中之一區(qū)段其具有最大之錯誤數(shù);以及將其中之一區(qū)段中具有最大之錯誤比特數(shù)之其中之一數(shù)據(jù)行記錄至損壞數(shù)據(jù)行總表。
本發(fā)明之篩選方法系在上述區(qū)段中找出具有最高的錯誤數(shù)的區(qū)段,再將此區(qū)段中具有最高錯誤比特數(shù)或最高平均錯誤比特數(shù)的數(shù)據(jù)行視為損壞數(shù)據(jù)行,并將其記錄至損壞數(shù)據(jù)行總表中,控制單元不會再對損壞數(shù)據(jù)行總表的損壞數(shù)據(jù)行存取數(shù)據(jù),因此,除了損壞數(shù)據(jù)行之外,其他數(shù)據(jù)行皆可用以儲存數(shù)據(jù),因此,可以將數(shù)據(jù)儲存媒體的數(shù)據(jù)儲存容量優(yōu)化。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點能夠更明顯易懂,以下特舉優(yōu)選實施例,并配合附圖,詳細(xì)說明如下。
附圖說明
圖1為數(shù)據(jù)儲存媒體的示意圖。
圖2為依照本發(fā)明一實施例之?dāng)?shù)據(jù)儲存媒體之損壞數(shù)據(jù)行的篩選方法的流程圖。
圖3繪示8個區(qū)段的錯誤比特數(shù)之加總結(jié)果的示意圖。
圖4為重新劃分多個區(qū)段的示意圖。
圖5為數(shù)據(jù)儲存媒體的另一示意圖。
圖6為數(shù)據(jù)儲存裝置的示意圖。
具體實施方式
圖6為數(shù)據(jù)儲存裝置的示意圖。如圖6所示,數(shù)據(jù)儲存裝置包括數(shù)據(jù)儲存媒體10與控制單元20,其中控制單元20電性耦接數(shù)據(jù)儲存媒體10,以對數(shù)據(jù)儲存媒體10存取數(shù)據(jù)。
圖1為數(shù)據(jù)儲存媒體的示意圖。如圖1所示,此數(shù)據(jù)儲存媒體10包括z個數(shù)據(jù)區(qū)塊(block),即數(shù)據(jù)區(qū)塊b0到bz-1。因應(yīng)數(shù)據(jù)邏輯管理上的方便,數(shù)據(jù)儲存媒體10包括數(shù)據(jù)區(qū)11與備用區(qū)12,數(shù)據(jù)區(qū)11與備用區(qū)12各自包含許多數(shù)據(jù)行(column)以分別儲存數(shù)據(jù)以及額外數(shù)據(jù),額外數(shù)據(jù)報括詮釋數(shù)據(jù)(metadata)。其中,每一數(shù)據(jù)行較佳可儲存8個比特(bit)的數(shù)據(jù)。另外,置于同一列的數(shù)據(jù)行稱之為數(shù)據(jù)頁(page)。每一數(shù)據(jù)區(qū)塊包含n個數(shù)據(jù)頁,即數(shù)據(jù)頁p0到pn-1。每一數(shù)據(jù)頁包括數(shù)據(jù)區(qū)11與備用區(qū)12的數(shù)據(jù)行。依據(jù)用戶之需求可將數(shù)據(jù)區(qū)11的數(shù)據(jù)行劃分為m個區(qū)段(segment),即區(qū)段s0到sm-1,每一區(qū)段包含y個數(shù)據(jù)行。其中,數(shù)據(jù)區(qū)11的數(shù)據(jù)行的總數(shù)可被m所整除。上述中的z、n、m及y皆為正整數(shù)。而在此例中,數(shù)據(jù)儲存媒體10包括以非揮發(fā)性內(nèi)存來實現(xiàn),例如是以閃存(flashmemory)、磁阻式隨機存取內(nèi)存(magnetoresistiveram)、相變內(nèi)存(phase-changememory)、鐵電隨機存取內(nèi)存(ferroelectricram)等具有長時間數(shù)據(jù)保存之內(nèi)存裝置來實現(xiàn)。
接下來將說明本發(fā)明之損壞數(shù)據(jù)行的篩選方法,為了提高此方法之執(zhí)行效率,較佳為隨機挑選數(shù)據(jù)儲存媒體10的數(shù)個數(shù)據(jù)區(qū)塊當(dāng)作樣本區(qū)塊來執(zhí)行本發(fā)明損壞數(shù)據(jù)行的篩選方法,而不必使用到全部的數(shù)據(jù)區(qū)塊,但不以此為限。以下將以數(shù)據(jù)區(qū)塊b0與b1作為樣本區(qū)塊來進行說明。
圖2為依照本發(fā)明一實施例之?dāng)?shù)據(jù)儲存媒體之損壞數(shù)據(jù)行的篩選方法的流程圖。請同時參照圖1與圖2,首先,將默認(rèn)數(shù)據(jù)寫入樣本區(qū)塊之?dāng)?shù)據(jù)頁(如步驟s201所示),以此例而言就是將默認(rèn)數(shù)據(jù)寫入樣本區(qū)塊b0與b1之?dāng)?shù)據(jù)頁p0到pn-1,其中,默認(rèn)數(shù)據(jù)可為連續(xù)相同、不同或隨機產(chǎn)生的數(shù)據(jù)。接著,讀取上述樣本區(qū)塊之?dāng)?shù)據(jù)頁所儲存之?dāng)?shù)據(jù)以取得寫入數(shù)據(jù)(如步驟s202所示),以此例而言就是讀取樣本區(qū)塊b0與b1之?dāng)?shù)據(jù)頁p0到pn-1所儲存的寫入數(shù)據(jù)。然后,以比特為單位,比對默認(rèn)數(shù)據(jù)與寫入數(shù)據(jù)是否相同,如果有比特不同則視為錯誤比特,加總樣本區(qū)塊b0與b1之每一數(shù)據(jù)行的錯誤比特數(shù)(如步驟s203所示),以取得每一數(shù)據(jù)行之錯誤比特數(shù)的總數(shù)。需注意的是,由于數(shù)據(jù)行較佳可儲存8個比特,若僅有1個比特數(shù)據(jù)錯誤則錯誤比特數(shù)為1;若8個比特的數(shù)據(jù)全部錯誤則錯誤元數(shù)為8,以此類推。
假設(shè)m=8,圖3即繪示此8個區(qū)段的錯誤比特數(shù)之加總結(jié)果的示意圖,直線的位置代表數(shù)據(jù)行的位置,長度即代表對應(yīng)之?dāng)?shù)據(jù)行之錯誤比特數(shù)的總數(shù),長度愈長表示錯誤比特數(shù)的總數(shù)愈大,而數(shù)據(jù)行的錯誤比特數(shù)的總數(shù)低于一閾值者予以省略。由圖3可知,區(qū)段s1有三條直線且直線304的長度最長;區(qū)段s4中有一條直線302且直線302的長度長于直線304。
請同時參照圖2與圖3,在執(zhí)行完步驟s203之后,將每一區(qū)段的每一數(shù)據(jù)行之錯誤比特數(shù)的總數(shù)加總即可取得每一區(qū)段的錯誤比特數(shù)的總數(shù)(如步驟s204所示)。接著,選取錯誤比特數(shù)的總數(shù)最高的區(qū)段,如步驟s205所示。假設(shè)區(qū)段s4的直線302所對應(yīng)之總數(shù)為60,而區(qū)段s1的三條直線所對應(yīng)之總數(shù)分別25、30及20。雖然直線302所對應(yīng)之總數(shù)大于直線304所對應(yīng)之總數(shù),但是,經(jīng)過計算的結(jié)果,區(qū)段s1為錯誤比特數(shù)的總數(shù)最高的區(qū)段,其總數(shù)為75。在執(zhí)行完步驟s205之后,將錯誤比特數(shù)的總數(shù)最高的區(qū)段中錯誤比特數(shù)的總數(shù)最大的數(shù)據(jù)行記錄為損壞數(shù)據(jù)行(如步驟s206所示)。由于區(qū)段s1中直線304的錯誤比特數(shù)的總數(shù)最大,因此被列成損壞數(shù)據(jù)行,并記錄在一個損壞數(shù)據(jù)行總表中,該損壞數(shù)據(jù)行總表可儲存于數(shù)據(jù)儲存裝置中。圖3中標(biāo)上符號”x”的直線304即表示其被記錄為損壞數(shù)據(jù)行。重復(fù)上述步驟即可將直線302記錄為損壞數(shù)據(jù)行,并記錄在一個損壞數(shù)據(jù)行總表,依此類推。
數(shù)據(jù)儲存裝置中的控制單元藉由讀取損壞數(shù)據(jù)行總表而得知損壞數(shù)據(jù)行之位置,便不會再對損壞數(shù)據(jù)行存取數(shù)據(jù)。當(dāng)直線304被記錄為損壞數(shù)據(jù)行,造成區(qū)段s1的數(shù)據(jù)行的總數(shù)減少。為了確保區(qū)段s1的正常運作,區(qū)段s1的邊界向區(qū)段s2延申一個數(shù)據(jù)行,使區(qū)段s1的數(shù)據(jù)行的總數(shù)維持不變,而后續(xù)區(qū)段的邊界,包含區(qū)段s2至區(qū)段s7,則進行重新劃分,可想而知地,區(qū)段s7的邊界將包含備用區(qū)的一個數(shù)據(jù)行,而備用區(qū)將減少一個數(shù)據(jù)行。圖4為重新劃分多個區(qū)段的示意圖。如圖4所示,由于區(qū)段s1中包含有一個損壞數(shù)據(jù)行,因此區(qū)段s1的右邊界右移至原本屬于區(qū)段s2的直線306,使區(qū)段s1在扣除掉損壞數(shù)據(jù)行后的數(shù)據(jù)行的總數(shù)維持不變。而由于區(qū)段s1的右邊界右移一個數(shù)據(jù)行,因此區(qū)段s2至區(qū)段s7的邊界也都會右移一個數(shù)據(jù)行,而區(qū)段s7的邊界將包含備用區(qū)的一個直線頁308。當(dāng)重復(fù)上述的步驟四次后,區(qū)段s1的三條直線且以及區(qū)段s4的一條直線302都會被記錄至損壞數(shù)據(jù)行總表中,使重新劃分后之多數(shù)區(qū)段的比特錯誤平均值越來越接近。
ecc的校正能力與區(qū)段中所包含的比特錯誤數(shù)成反比。以上述區(qū)段s1以區(qū)段s2為例,區(qū)段s1的損壞數(shù)據(jù)行的錯誤比特數(shù)皆小于直線302的錯誤比特數(shù),然而,區(qū)段s1的錯誤比特數(shù)的總數(shù)卻大于區(qū)段s4,可能超過ecc的校正能力,因此,區(qū)段s1比區(qū)段s4更需要移除區(qū)段內(nèi)的損壞數(shù)據(jù)行。
上述找出損壞數(shù)據(jù)行的操作可以重復(fù)地執(zhí)行,直到損壞數(shù)據(jù)行總表已無法再記錄損壞數(shù)據(jù)行為止,例如:上限為256條損壞數(shù)據(jù),或所有區(qū)段的平均錯誤比特數(shù)皆低于一個閾值為止,例如:閾值為10。利用本發(fā)明損壞數(shù)據(jù)行的篩選方法來移除損壞數(shù)據(jù)行,可有效地降低需修正的錯誤比特數(shù)超出了錯誤校正碼的修正能力(例如可修正44個錯誤比特),而導(dǎo)致必須將對應(yīng)的整個數(shù)據(jù)頁視為損壞數(shù)據(jù)頁之情況。綜上所述,本發(fā)明所提出的損壞數(shù)據(jù)行的篩選方法雖然會降低備用區(qū)的數(shù)據(jù)行的數(shù)目,但是可以使用原本會被記錄而不再使用的區(qū)段,這使得數(shù)據(jù)儲存裝置所能提供的數(shù)據(jù)儲存容量增加,同時也確保數(shù)據(jù)儲存裝置所儲存的數(shù)據(jù)皆能被有效地讀取或校正。
在另一實施例中,錯誤比特數(shù)的總數(shù)可被替代為錯誤比特數(shù)的平均值,此乃數(shù)值計算上的另一種選擇,其他步驟可依上述之說明或類推得知,一樣可以達到本發(fā)明之目的,故不多作說明。
在另一實施例中,為了加速本發(fā)明所提出的損壞數(shù)據(jù)行的篩選方法之執(zhí)行,僅計算少數(shù)數(shù)據(jù)頁的每一數(shù)據(jù)行的錯誤比特數(shù),而非全部數(shù)據(jù)頁的每一數(shù)據(jù)行的錯誤比特數(shù)。此乃數(shù)值取樣上的另一種選擇,其他步驟可依上述之說明或類推得知,一樣可以達到本發(fā)明之目的,故不多作說明。
圖5為數(shù)據(jù)儲存媒體的另一示意圖。圖5與圖1的主要差別在于備用區(qū)12的位置。如圖5所示,備用區(qū)12與數(shù)據(jù)區(qū)11皆置于同一區(qū)段內(nèi),如區(qū)段s1所示。此乃數(shù)據(jù)儲存媒體在數(shù)據(jù)管理上的設(shè)計,仍可適用本發(fā)明所提出的損壞數(shù)據(jù)行的篩選方法。
綜上所述,本發(fā)明之篩選方法系在上述區(qū)段中找出具有最高的平均錯誤比特數(shù)的區(qū)段,再將此區(qū)段中具有最高錯誤比特數(shù)或最高平均錯誤比特數(shù)的數(shù)據(jù)行視為損壞數(shù)據(jù)行,并將其記錄至損壞數(shù)據(jù)行總表中,控制單元不會再對損壞數(shù)據(jù)行總表的損壞數(shù)據(jù)行存取數(shù)據(jù),因此,除了損壞數(shù)據(jù)行之外,其他數(shù)據(jù)行皆可用以儲存數(shù)據(jù),因此,可以將數(shù)據(jù)儲存媒體的數(shù)據(jù)儲存容量優(yōu)化。
雖然本發(fā)明以前述的實施例揭露如上,然其并非用以限定本發(fā)明,任何熟習(xí)此技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動與潤飾,因此本發(fā)明的專利保護范圍須視本說明書所附的申請專利范圍所界定者為準(zhǔn)。