數(shù)據(jù)儲存裝置以及其數(shù)據(jù)存取方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是關(guān)于一種數(shù)據(jù)儲存裝置,特別是關(guān)于可對頁面進行存取的數(shù)據(jù)儲存裝置。
【背景技術(shù)】
[0002]快閃存儲器為一種可以被電抹除并且重新寫入的非易失性存儲器,并且主要是應(yīng)用在存儲卡、USB隨身碟、eMMC以及固態(tài)硬盤(Solid-State Disk)中,借以作為一般的儲存與電腦裝置和數(shù)字產(chǎn)品間的數(shù)據(jù)的轉(zhuǎn)運。
[0003]快閃存儲器包括眾多的存儲區(qū)塊(block),并且每一存儲區(qū)塊具有多個用以儲存數(shù)據(jù)的儲存頁面(page)??扉W存儲器是以存儲區(qū)塊為單元進行抹除,而以儲存頁面為單位進行寫入。當(dāng)快閃存儲器接收到將區(qū)塊全部抹除的命令時,快閃存儲器會逐一對每一區(qū)塊中的每一頁面進行抹除的動作。當(dāng)快閃存儲器需要更新頁面中的部分數(shù)據(jù)時,快閃存儲器需要將原本頁面中的數(shù)據(jù)讀出,并將更新的數(shù)據(jù)以及原頁面不需更新的數(shù)據(jù)整合后,寫入另一個實體頁面中。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種數(shù)據(jù)儲存裝置。數(shù)據(jù)儲存裝置包括一快閃存儲器以及一控制器??扉W存儲器包括多個區(qū)塊,并且每一區(qū)塊包括多個頁面,其中每一頁面具有多個子頁面以及多個備用區(qū)塊,每一備用區(qū)塊用以儲存一保留信息(Spare Data),保留信息分別相應(yīng)于每一子頁面。控制器用以根據(jù)保留信息對子頁面進行存取。保留信息包括所相應(yīng)的子頁面的一元數(shù)據(jù)(Meta Data),用以記錄所相應(yīng)的子頁面的數(shù)據(jù)。在另一實施例中,保留信息更包括所相應(yīng)的元數(shù)據(jù)的一錯誤檢查碼(ECC Parity)。另外,每一子頁面包括一數(shù)據(jù)區(qū)塊。在另一實施例中,每一子頁面更包括相應(yīng)于數(shù)據(jù)區(qū)塊的一錯誤檢查碼。另外,備用區(qū)塊以及子頁面是交錯排列于頁面中、頁面中的一個的所有備用區(qū)塊排列于頁面的前端,或者頁面中的一個的所有備用區(qū)塊排列于頁面的后端。在一實施例中,快閃存儲器更包括至少一既定頁面,用以儲存一頁面大小參數(shù),并且頁面大小參數(shù)用以代表每一頁面的一頁面大小。
[0005]本發(fā)明另提供一種數(shù)據(jù)存取方法,適用于一數(shù)據(jù)儲存裝置,其中數(shù)據(jù)儲存裝置包括一快閃存儲器,快閃存儲器包括多個區(qū)塊,每一區(qū)塊包括多個頁面,每一頁面具有多個子頁面。數(shù)據(jù)存取方法包括:接收相應(yīng)于對子頁面中的一第一子頁面進行存取的一存取命令,其中每一頁面更包括多個備用區(qū)塊,每一備用區(qū)塊用以儲存一保留信息(Spare Data),保留信息分別相應(yīng)于每一子頁面;以及根據(jù)相應(yīng)于第一子頁面的保留信息,對第一子頁面進行存取,其中保留信息包括所相應(yīng)的子頁面的一元數(shù)據(jù)(Meta Data),用以記錄所相應(yīng)的子頁面的數(shù)據(jù)。保留信息更包括所相應(yīng)的元數(shù)據(jù)的一錯誤檢查碼(ECC Parity),并且對第一子頁面進行存取的步驟更包括根據(jù)錯誤檢查碼修正元數(shù)據(jù)的至少一錯誤比特。每一子頁面包括一數(shù)據(jù)區(qū)塊以及相應(yīng)于數(shù)據(jù)區(qū)塊的一錯誤檢查碼,并且對第一子頁面進行存取的步驟更包括根據(jù)錯誤檢查碼修正子頁面的至少一錯誤比特。在一實施例中,快閃存儲器更包括至少一既定頁面,用以儲存一頁面大小參數(shù),并且頁面大小參數(shù)用以代表每一頁面的一頁面大小。
【附圖說明】
[0006]圖1為本發(fā)明所提供的一電子系統(tǒng)的一種實施例的方塊圖。
[0007]圖2A為本發(fā)明所提供的頁面的一種實施例的示意圖。
[0008]圖2B為本發(fā)明所提供的頁面的另一種實施例的示意圖。
[0009]圖2C為本發(fā)明所提供的頁面的另一種實施例的示意圖。
[0010]圖2D為本發(fā)明所提供的頁面的另一種實施例的示意圖。
[0011]圖3為本發(fā)明所提供的一數(shù)據(jù)存取方法的一種實施例的流程圖。
[0012]【附圖標(biāo)記說明】
[0013]100電子系統(tǒng);
[0014]120 主機;
[0015]140數(shù)據(jù)儲存裝置;
[0016]160 控制器;
[0017]162運算單元;
[0018]164永久存儲器;
[0019]180快閃存儲器;
[0020]SP1-SP2 備用區(qū)塊;
[0021]SPG1-SPG2 頁面;
[0022]S300-S402 步驟。
【具體實施方式】
[0023]以下將詳細討論本發(fā)明各種實施例的裝置及使用方法。然而值得注意的是,本發(fā)明所提供的許多可行的發(fā)明概念可實施在各種特定范圍中。這些特定實施例僅用于舉例說明本發(fā)明的裝置及使用方法,但非用于限定本發(fā)明的范圍。
[0024]圖1為本發(fā)明所提供的一電子系統(tǒng)的一種實施例的方塊圖。電子系統(tǒng)100包括一主機120以及一數(shù)據(jù)儲存裝置140。數(shù)據(jù)儲存裝置140包括一快閃存儲器180以及一控制器160,且可根據(jù)主機110所下達的命令操作??刂破?60包括一運算單元162以及一永久存儲器(如,只讀存儲器ROM) 164。永久存儲器164與所載的程序碼、數(shù)據(jù)組成固件(firmware),由運算單元162執(zhí)行,使控制器160基于該固件控制該快閃存儲器180??扉W存儲器180包括多個區(qū)塊,并且每一區(qū)塊包括多個頁面。另外,每一頁面具有多個子頁面以及多個備用區(qū)塊(Spare Area)。每一子頁面包括一數(shù)據(jù)區(qū)塊。在另一實施例中,每一子頁面更包括相應(yīng)于數(shù)據(jù)區(qū)塊的一錯誤檢查碼。每一備用區(qū)塊用以儲存一保留信息(Spare Data),保留信息分別相應(yīng)于每一子頁面。在一實施例中,保留信息包括所相應(yīng)的子頁面的一元數(shù)據(jù)(Meta Data),用以記錄所相應(yīng)的子頁面的數(shù)據(jù)。舉例而言,元數(shù)據(jù)可包括各區(qū)塊、各頁面以及各子頁面的數(shù)據(jù)屬性,例如從實體子頁面到邏輯子頁面的反轉(zhuǎn)信息等等,本發(fā)明不限于此。在另一實施例中,保留信息更包括所相應(yīng)的元數(shù)據(jù)的一錯誤檢查碼(ECC Parity)。因此,控制器160可根據(jù)保留信息對頁面中的子頁面進行存取。當(dāng)每一頁面僅包括一備用區(qū)塊時,控制器160僅可對整個頁面進行存取,其中當(dāng)控制器160所接收的存取命令僅指示對一第一頁面中的一第一扇區(qū)(sector)進行寫入時,控制器160需將第一頁面的第一扇區(qū)外的其他扇區(qū)的數(shù)據(jù)讀出,并與存取命令所指示需要寫入的數(shù)據(jù)整合,再將整合后的數(shù)據(jù)寫入另一頁面中。當(dāng)頁面中具有多個子頁面以及所相應(yīng)的多個備用區(qū)塊時,控制器160可直接對小于頁面的子頁面進行寫入,其中當(dāng)控制器160所接收的存取命令僅指示對一第一頁面中的一第一扇區(qū)進行寫入,并且第一扇區(qū)構(gòu)成一子頁面時,控制器160可直接將存取命令所指示需要寫入的數(shù)據(jù)寫入子頁面中。
[0025]值得注意的是,在快閃存儲器180具有至少一既定頁面,用以儲存一頁面大小參數(shù),并且頁面大小參數(shù)用以代表每一頁面的一頁面大小。舉例而言,在數(shù)據(jù)儲存裝置140被格式化后,快閃存儲器180中的每一頁面具有一固定的頁面大小,并且相應(yīng)于頁面大小的頁面大小參數(shù)會被儲存于快閃存儲器180的至少一既定頁面中,但本發(fā)明不限于此。在其他實施例中,頁面大小參數(shù)亦可儲存于電子系統(tǒng)100中的其他存儲器中,并且既定頁面亦可包括其他數(shù)據(jù),例如相應(yīng)于區(qū)塊大小的參數(shù)、相應(yīng)于子頁面大小的參數(shù)等等,本發(fā)明不限于此。另外,頁面大小可為4K、8K、16K等等,本發(fā)明不限于此。子頁面的大小可為1Κ、2Κ、4Κ、8Κ等等,本發(fā)明不限于此。當(dāng)數(shù)據(jù)儲存裝置140上電時,控制器160讀取既定頁面中的數(shù)據(jù),并借以獲得區(qū)塊、頁面、子頁面的大小,以根據(jù)不同存取模式對快閃存儲器180進行存取。
[0026]舉例而言,每一區(qū)塊中的每一頁面的每一子頁面分別具有一邏輯地址以及一實體地址,并且數(shù)據(jù)儲存裝置140更包括至少一映射表,用以儲存每一區(qū)塊中每一子頁面的邏輯地址以及實體地址的對應(yīng)關(guān)系。舉例而言,映射表可儲存于永久存儲器164或者快閃存儲器180中,本發(fā)明不限于此。另外,映射表可包括至少一區(qū)塊映射表、多個頁面映射表及/或多個子頁面映射表。舉例而言,控制器160可借由邏輯地址計算出邏輯地址所相應(yīng)的邏輯區(qū)塊以及邏輯子頁面,并且根據(jù)區(qū)塊映射表,獲得相應(yīng)于邏輯區(qū)塊的實體區(qū)塊。接著,根據(jù)相應(yīng)于邏輯區(qū)塊的子頁面映射表,獲得相應(yīng)的子邏輯頁面,再根據(jù)子邏輯頁面定位至實體子頁面,但本發(fā)明不限于此??山栌刹楸碚页鱿鄳?yīng)于邏輯地址的子頁面的實體地址皆為本發(fā)明的范疇。
[0027]圖2Α為本發(fā)明所提供的頁面的一種實施例的示意圖。在本實施例中,頁面200Α的頁面大小為8Κ。頁面200Α具有兩個子頁面SPG1-SPG2,子頁面SPG1-SPG2的子頁面大小分別為4Κ,但本發(fā)明不限于此。頁面200Α亦可包括子頁面大小為2Κ的4個子頁面或者子頁面大小為IK的8個子頁面。頁面200Α的頁面大亦不限于此。在本實施例中,頁面200Α中的備用區(qū)塊SP1-SP2是排列于頁面200Α的前端,子頁面SPG1-SPG2是排列于頁面200Α的后端,其中備用區(qū)塊SPl相應(yīng)于子頁面SPGl,備用區(qū)塊SP2相應(yīng)于子頁面SPG2。
[0028]圖2Β為本發(fā)明所提供的頁面的另一種實施例的示意圖。在本實施例中,頁面200Β的頁面大小為8Κ。頁面200Β具有兩個子頁面SPG1-SPG2,子頁面SPG1-SPG2的子頁面大小分別為4Κ,但本發(fā)明不限于此。頁面200Β亦可包括子頁面大小為2Κ的4個子頁面或者子頁面大小為IK的8個子頁面。頁面200Β的頁面大亦不限于此。在本實施例中,頁面200Β中所有備用區(qū)塊SP1-