TW201633140A - 資料儲存裝置及其資料維護方法 - Google Patents
資料儲存裝置及其資料維護方法 Download PDFInfo
- Publication number
- TW201633140A TW201633140A TW104130401A TW104130401A TW201633140A TW 201633140 A TW201633140 A TW 201633140A TW 104130401 A TW104130401 A TW 104130401A TW 104130401 A TW104130401 A TW 104130401A TW 201633140 A TW201633140 A TW 201633140A
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- column
- wafers
- super
- columns
- Prior art date
Links
Landscapes
- Read Only Memory (AREA)
Abstract
本發明提供一種資料儲存裝置包括一快閃記憶體、一次數控制陣列以及一控制器。快閃記憶體包括複數晶片,每一晶片中之每一頁面以一既定排列順序構成複數超級區塊。次數控制陣列中之複數欄相應於晶片。控制器在讀取晶片中之一第一晶片時,讀取相應於第一晶片之一第一欄的值。當第一欄的值為一第一數值時,保持第一欄的值,並且將一第二數值寫入第一欄以外次數控制陣列中之所有欄。當第一欄的值為第二數值時,將第一數值寫入第一欄,並且保持第一欄以外次數控制陣列中之所有欄的數值。
Description
本發明係關於一種記憶體裝置之資料維護方法;特別係關於一種紀錄一超級區塊之讀取次數的資料維護方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等使用。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks)。各區塊包括複數頁面(pages),其中在快閃記憶體中資料寫入的單位是頁面,資料抹除之最小單位為區塊。由於快閃記憶體的存取過程中對同一頁面或者同一區塊反覆存取,可能會發生資料內容的錯誤。所以需要一種資料維護方法來避免對快閃記憶體中相同的頁面或者區塊讀取太多次。
本發明所提供之資料儲存裝置可將以及資料維護方法可降低超級區塊的讀取次數的累加,以減少不必要的更新動作。
本發明提供一種資料儲存裝置。資料儲存裝置包
括一快閃記憶體、複數次數控制陣列以及一控制器。快閃記憶體包括複數晶片,複數通道選擇線,以及複數晶片選擇線,其中每一晶片包括複數頁面,並且晶片構成一矩陣,通道選擇線用選擇矩陣中之行,晶片選擇線用以選擇矩陣中之列,每一晶片中之每一頁面以一既定排列順序構成複數超級區塊,並且每一超級區塊包括不同晶片的不同頁面。每一次數控制陣列包括複數欄,次數控制陣列分別相應於超級區塊,欄分別相應於晶片選擇線以及通道選擇線晶片之複數組合,並且組合分別相應於晶片。控制器用以在讀取超級區塊中之一第一超級區塊中晶片中之一第一晶片之資料時,讀取次數控制陣列中相應於第一超級區塊之一第一次數控制陣列,以獲得第一次數陣列中相應於第一晶片之一第一欄的值,其中當第一欄的值為一第一數值時,保持第一欄的值,並且將一第二數值寫入第一欄以外第一次數控制陣列中之所有欄,當第一欄的值為第二數值時,將第一數值寫入第一欄,並且保持第一欄以外第一次數控制陣列之所有欄的數值。
在一實施例中,超級區塊分別相應於複數讀取次數,控制器更用以在第一欄的值為第一數值時,將讀取次數中相應於第一超級區塊之一第一讀取次數加一,並且在第一欄的值為第二數值時,保持第一讀取次數的數值。
在另一實施例中資料儲存裝置更包括一讀取次數陣列,用以紀錄每一超級區塊之讀取次數。當讀取次數超過一既定值時,控制器更新相應於超過既定值之讀取次數的超級區塊。
又另一實施例中,控制器更用以初始化次數控制陣列,以將第一數值寫入次數控制陣列中之每一欄。次數控制陣列是設置於快閃記憶體中。
本發明提供另一種資料儲存裝置。資料儲存裝置包括一快閃記憶體、複數次數控制陣列以及一控制器。快閃記憶體包括複數晶片,每一晶片包括複數頁面,每一晶片中之每一頁面以一既定排列順序構成複數超級區塊,並且每一超級區塊包括不同晶片的不同頁面。
複數次數控制陣列,每一次數控制陣列包括複數欄,每一次數控制陣列相應於一個超級區塊,欄分別相應於一個晶片。控制器用以在讀取超級區塊中之一第一超級區塊中晶片中之一第一晶片的資料時,讀取相應於第一超級區塊之次數控制陣列中之一第一次數控制陣列,以獲得第一次數控制陣列之欄中相應於第一晶片之一第一欄的值,其中當第一欄的值為一第一數值時,保持第一欄的值,並且將一第二數值寫入第一欄以外第一次數控制陣列中之所有欄,當第一欄的值為第二數值時,將第一數值寫入第一欄,並且保持第一欄以外第一次數控制陣列中之所有欄的數值。
本發明另提供一種資料維護方法,適用於一資料儲存裝置,其中資料儲存裝置具有複數晶片,每一晶片包括複數頁面,每一晶片中之每一頁面以一既定排列順序構成複數超級區塊,並且每一超級區塊包括不同晶片的不同頁面。資料維護方法包括:讀取複數超級區塊中之一第一超級區塊中晶片中之一第一晶片的資料時,讀取複數次數控制陣列中相應於第一
超級區塊之一第一次數控制陣列,以獲得第一次數控制陣列中之複數欄中相應於第一晶片之一第一欄的值,其中次數控制陣列分別相應於超級區塊,次數控制陣列中之每一欄分別相應於一個晶片;當第一欄的值為一第一數值時,保持第一欄的值,並且將一第二數值寫入第一欄以外第一次數控制陣列中之所有欄;以及當第一欄的值為第二數值時,將第一數值寫入第一欄,並且保持第一欄以外第一次數控制陣列中之所有欄的數值。
在一實施例中,快閃記憶體更包括複數通道選擇線以及複數晶片選擇線,晶片構成一矩陣,通道選擇線用以選擇矩陣中之行,晶片選擇線用以選擇矩陣中之列,每一欄相應於晶片選擇線以及通道選擇線之複數組合,並且每一組合相應於晶片中之一者。
又另一實施例中,超級區塊分別相應於複數讀取次數,並且資料維護方法更包括在第一欄的值為第一數值時,將讀取次數中相應於第一超級區塊之一第一讀取次數加一,並且在第一欄的值為第二數值時,保持第一讀取次數的數值。
資料維護方法可更包括當讀取次數超過一既定值時,更新超級區塊。資料維護方法亦可更包括初始化次數控制陣列,以將第一數值寫入次數控制陣列中之每一欄。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧動態隨機存取器
180‧‧‧快閃記憶體
C0~CN‧‧‧晶片
CH0~CH3‧‧‧通道選擇線
CE0~CE3‧‧‧晶片選擇線
C0_P0~C0_PM、C1_P0~C1_PM、C2_P0~C2_PM、C3_P0~C3_PM、C4_P0~C4_PM、C5_P0~C5_PM、C6_P0~C6_PM、C7_P0~C7_PM、C8_P0~C8_PM、
C9_P0~C9_PM、C10_P0~C10_PM、C11_P0~C11_PM、C0_P0~C0_PM、C0_P0~C0_PM、C12_P0~C12_PM、C13_P0~C13_PM‧‧‧頁面
SB1、SB2‧‧‧超級區塊
SP0~SPK-1‧‧‧超級頁面
S700~S716‧‧‧步驟
第1圖係本發明之一種實施例之電子系統之方塊圖。
第2A~2B圖係本發明之一種實施例之快閃記憶體的示意
圖。
第3圖係本發明之一種實施例之超級區塊的示意圖。
第4圖係本發明之一種實施例之次數控制陣列的示意圖。
第5圖係本發明之一種實施例之次數控制陣列之操作的示意圖。
第6圖係本發明之另一種實施例之次數控制陣列之操作的示意圖。
第7圖係本發明之一種實施例之資料維護方法之流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第1圖係本發明之一種實施例之電子系統之方塊圖。電子系統100包括一主機120以及一資料儲存裝置140。資料儲存裝置140包括一快閃記憶體180以及一控制器160,且可根據主機120所下達的命令操作。
控制器160包括一運算單元162、一永久記憶體(如,唯讀記憶體ROM)164以及一動態隨機存取器(RAM)166。永久記憶體164與所載之程式碼、資料組成韌體(firmware),由運算單元162執行,使控制器160基於該韌體控制該快閃記憶體180,其中運算單元162更用以將快閃記憶體180中之頁面重組為至少一超級區塊(Super Block)。
快閃記憶體180包括複數晶片C0~CN,每一晶片
C0~CN中包括複數頁面。每一晶片C0-CN包括複數頁面,每一晶片C0-CN中之每一頁面以一既定排列順序構成至少一超級區塊SB。換言之,每一超級區塊包括不同晶片C0~CN的不同頁面。另外,快閃記憶體180更包括複數通道選擇線以及複數晶片選擇線。晶片C0~CN構成一矩陣,通道選擇線用以選擇矩陣中之行,晶片選擇線用以選擇矩陣中之列。
舉例而言,第2A~2B圖係本發明之一種實施例之快閃記憶體的示意圖。在本實施例中,快閃記憶體180包括16個晶片C0~C15。每一晶片C0~C15包括複數頁面,其中晶片C0包括複數頁面C0_P0~C0_PM、晶片C1包括複數頁面C1_P0~C1_PM、晶片C2包括複數頁面C2_P0~C2_PM,依此類推。快閃記憶體180更包括4條通道選擇線CH0~CH3以及4條晶片選擇線CE0~CE3。如第2A~2B圖所示,晶片C0~C15構成一矩陣,通道選擇線CH0~CH3用以選擇矩陣中之行,晶片選擇線CE0~CE3用以選擇矩陣中之列。詳細而言,通道選擇線CH0用以選擇在矩陣中第一行上的晶片C0、C4、C8以及C12,通道選擇線CH1用以選擇在矩陣中第二行上的晶片C1、C5、C9以及C13、通道選擇線CH2用以選擇在矩陣中第三行上的晶片C2、C6、C10以及C14、通道選擇線CH3用以選擇在矩陣中第四行上的晶片C3、C7、C11以及C15。另外,晶片選擇線CE0用以選擇矩陣中第一列上的晶片C0~C3、晶片選擇線CE1用以選擇矩陣中第二列上的晶片C4~C7、晶片選擇線CE2用以選擇矩陣中第三列上的晶片C8~C11、以及晶片選擇線CE3用以選擇矩陣中第四列上的晶片C12~C15。換言之,當控制器160要對晶片C10進
行存取時,快閃記憶體180則藉由通道選擇線CH2以及晶片選擇線CE2選擇晶片C10,依此類推。在另一實施例中,快閃記憶體180亦可包括32個晶片、4條通道選擇線以及8條晶片選擇線,但本發明不限於此。
第3圖係本發明之一種實施例之超級區塊的示意圖。第3圖係本發明之一種實施例之超級區塊的示意圖,其中第3圖是由第2A~2B圖所示之快閃記憶體180中之16個晶片C0-C15中之每一頁面以一既定排列順序,以構成兩個超級區塊SB1以及SB2,但本發明不限於此。在其他實施例中,經由下述規則,快閃記憶體180中之16個晶片C0-C15中之每一頁面以該既定排列順序,亦可構成兩個以上之超級區塊。如圖所示,既定排列順序為依序排列每一晶片C0-CN中位於頂端之一第一頁面P0以構成第一超級區塊SB1之第一超級頁面SP0,依序排列每一晶片C0-CN中次於第一頁面之一第二頁面P2以構成第一超級區塊SB1之第二超級頁面SP1,直到依序排列每一晶片C0-CN中之第K-1個頁面PK-1以構成第一超級區塊SB1之最後一個超級頁面SPK-1。接著,既定排列順序繼續依序排列每一晶片C0-CN中第K個頁面PK以構成第二超級區塊SB2之第一超級頁面SP0,依序排列每一晶片C0-CN中之第K+1個頁面PK+1以構成第二超級區塊SB2之第二超級頁面SP1,直到依序排列每一晶片C0-CN中之最後一個頁面PM以構成第二超級區塊SB2之最後一個超級頁面SPK-1。在本實施例中,第一超級區塊SB1以及第二超級區塊SB2中的超級頁面SP0~SPK-1的數量相同,並且每一超級頁面SP0~SPK-1係由複數個頁面所構成,但本發
明不限於此。在其他實施例中,每一超級區塊之超級頁面的數量可不相同,並且第一超級區塊SB1以及第二超級區塊SB2亦可由不同之排列方式所構成。
另外,資料儲存裝置140更具有複數次數控制陣列(未圖示),用以紀錄晶片C0~CN的讀取狀態。在一實施例中,次數控制陣列是設置於快閃記憶體180中,但本發明不限於此。在其他實施例中,次數控制陣列亦可設置於永久記憶體164中。次數控制陣列分別用以紀錄每一晶片C0~CN的讀取狀態,並且每一次數控制陣列相應於一超級區塊。另外,每一次數控制陣列包括複數欄,每一欄分別相應於一個晶片C0~CN。控制器160可將次數控制陣列由快閃記憶體180或者永久記憶體164中載入動態隨機存取器166中操作。
第4圖係本發明之一種實施例之次數控制陣列的示意圖。在本實施例中,次數控制陣列RCA1係對應於第3圖所示之第一超級區塊SB1,用以紀錄晶片C0~C15的讀取狀態,但本發明不限於此。值得注意的是,其他超級區塊之次數控制陣列亦可參照次數控制陣列RCA1。次數控制陣列RCA1包括16個欄,每一欄分別相應於一個晶片C0~C15。換言之,複數欄相應於晶片選擇線CE0~CE3以及通道選擇線CH0~CH3之複數組合CE0_CH0~CE3_CH_3,並且每一組合CE0_CH0~CE3_CH_3相應於可藉由該組合CE0_CH0~CE3_CH_3所選取之晶片C0~C15。
另外,資料儲存裝置140更具有一讀取次數陣列(未圖示),用以記錄每一超級區塊的讀取次數。在一實施例中,
讀取次數陣列是設置於快閃記憶體180中,但本發明不限於此。在其他實施例中,讀取次數陣列亦可設置於永久記憶體164中。控制器160可將讀取次數陣列由快閃記憶體180或者永久記憶體164中載入動態隨機存取器166中,並且根據次數控制陣列維持讀取次數陣列中之讀取次數。
詳細而言,資料儲存裝置140可藉由次數控制陣列來控制超級區塊被更新的次數。在某些實施例中,為了防止由於過多的讀取次數對於記憶體所儲存之資料的破壞,控制器160會在每一晶片選擇線以及每一通道選擇線被致能時,皆對讀取次數陣列中相應之所讀取之超級區塊的讀取次數加一,以計算超級區塊被讀取的次數。舉例而言,當控制器160對只有對第一超級區塊SB1中之一超級頁面SP0讀取一次時,相應於超級區塊SB1之讀取次數則會因為超級頁面SP0包含16個由不同的通道選擇線以及晶片選擇線所選取之頁面,而增加16。當讀取次數超過一既定值時,控制器160則將超級區塊之資料搬移至另一超級區塊,以更新讀取次數超過既定值得超級區塊。然而,在上述紀錄讀取次數的方式中,讀取次數很容易超過既定值。因此,控制器160會消耗很多資源在更新超級區塊,使得表現降低。在本實施例中,140可藉由次數控制陣列來降低超級區塊被更新的次數。
詳細而言,控制器160初始化次數控制陣列,以將第一數值寫入次數控制陣列中之每一欄。值得注意的是,控制器160只需要在超級區塊剛被更新或者剛建立時,才需要初始化次數控制陣列,但本發明不限於此。使用者亦可在其他狀況
下初始化次數控制陣列。接著,控制器160用以在讀取一第一超級區塊中晶片C0~CN中之一第一晶片的資料時,讀取複數次數控制陣列中相應於第一超級區塊之一第一次數控制陣列,以獲得第一次數控制陣列中相應於第一晶片之一第一欄的值。當第一欄的值為一第一數值時,控制器160保持第一次數控制陣列之第一欄的值,並且將一第二數值寫入第一欄以外第一次數控制陣列中之其他所有欄。當第一欄的值為第二數值時,控制器160將第一數值寫入第一次數控制陣列之第一欄,並且保持第一欄以外第一次數控制陣列中之其他所有欄的數值。值得注意的是,控制器160更用以在第一欄的值為第一數值時,將讀取次數陣列中相應於第一超級區塊之第一讀取次數加一,並且在第一欄的值為第二數值時,保持讀取次數陣列中相應於第一超級區塊之第一讀取次數的數值。另外,當讀取次數超過一既定值時,控制器160則更新相應於超過既定值之讀取次數的超級區塊,以將相應於超過既定值之讀取次數的超級區塊之資料搬移至另一超級區塊。
第5圖係本發明之一種實施例之次數控制陣列之操作的示意圖。在本實施例中,次數控制陣列RCA1是對應於第3圖所示之第一超級區塊SB1,用以紀錄晶片C0~C15的讀取狀態,但本發明不限於此。值得注意的是,其他超級區塊之次數控制陣列亦可參照次數控制陣列RCA1。另外,在本實施例中,控制器160係用以依序地讀取超級區塊SB中的資料。被初始化之次數控制陣列RCA1中之每一欄皆是第一數值”1”,如第一時間T1上之次數控制陣列RCA1所示。
首先,控制器160讀取第一超級區塊SB1中第一超級頁面SP0中之頁面C0_P0的資料。控制器160所讀取之頁面C0_P0在由晶片選擇線CE0以及通道選擇線CH0所選擇之晶片C0中,故控制器160讀取相應於晶片C0之欄CE0_CH0中之值。在本實施例中,如第一時間T1上之欄CE0_CH0所示,控制器160所讀取之欄CE0_CH0的值為第一數值”1”。因此,控制器160保持欄CE0_CH0的值,並且將第二數值”0”寫入欄CE0_CH0以外次數控制陣列RCA1中之其他所有欄CE0_CH1~CE3_CH3,如第二時間T2上之次數控制陣列RCA1所示。另外,由於控制器160所讀取之欄CE0_CH0的值為第一數值”1”,故控制器160將讀取次數陣列中相應於第一超級區塊SB1的第一讀取次數加一。
接著,控制器160讀取第一超級區塊SB1中第一超級頁面SP0中之頁面C1_P0的資料。控制器160所讀取之頁面C1_P0在由晶片選擇線CE0以及通道選擇線CH1所選擇之晶片C1中,故控制器160讀取相應於晶片C1之欄CE0_CH1中之值。在本實施例中,如第二時間T2上之欄CE0_CH1所示,控制器160所讀取之欄CE0_CH1的值為第二數值”0”。因此,控制器160將第一數值”1”寫入欄CE0_CH1,並且保持欄CE0_CH1以外次數控制陣列RCA1中之所有欄CE0_CH0以及CE0_CH2~CE3_CH3的數值,如第三時間T3上之次數控制陣列RCA1所示。另外,由於控制器160所讀取之欄CE0_CH1的值為第二數值”0”,故控制器160保持讀取次數陣列上相應於第一超級區塊之第一讀取次數的數值,依此類推。
當控制器160依序讀取完晶片C0~C15時,次數控制
陣列RCA1中之所有欄CE0_CH0~CE3_CH3的數值皆係第一數值”1”,如第十七時間T17上之次數控制陣列RCA1所示。值得注意的是,在時間T2~T17之間,讀取次數的數值皆未增加。換言之,在讀取第一超級頁面SP0的過程中,第一超級區塊SB1之第一讀取次數只會增加1。
當控制器160接著讀取第一超級區塊SB1中之第二超級頁面SP1中之頁面C0_P1的資料。控制器160所讀取之頁面C0_P1在由晶片選擇線CE0以及通道選擇線CH0所選擇之晶片C0中,故控制器160再次讀取相應於晶片C0之欄CE0_CH0中之值。在本實施例中,如第十七時間T17上之欄CE0_CH0所示,控制器160所讀取之欄CE0_CH0的值為第一數值”1”。因此,控制器160保持欄CE0_CH0的值,並且將第二數值”0”寫入欄CE0_CH0以外次數控制陣列RCA1中之其他所有欄CE0_CH1~CE3_CH3,如第十八時間T18上之次數控制陣列RCA1所示。另外,由於控制器160所讀取之欄CE0_CH0的值為第一數值”1”,故控制器160將讀取次數陣列中相應於第一超級區塊SB1之第一讀取次數加一。
由上述可知,在控制器160依序讀取晶片C0~C15的狀況下,第一超級區塊SB1之第一讀取次數只會增加1。因此,控制器160可藉由次數控制陣列RCA1有效地記錄超級區塊SB的讀取次數。另外,在本實施例中,第一數值為”1”,並且第二數值為”0”,但本發明不限於此。在其他實施例中,第一數值為”0”,並且第二數值為”1”,但本發明不限於此。再者,在本實施例中,每一欄僅需要1位元的記憶體容量。換言之,
16個晶片所構成之超級區塊僅需要16位元,32個晶片所構成之超級區塊只需要32位元,依此類推。
第6圖係本發明之另一種實施例之次數控制陣列之操作的示意圖。在本實施例中,次數控制陣列RCA1是對應於第3圖所示之第一超級區塊SB1,用以紀錄晶片C0~C15的讀取狀態,但本發明不限於此。值得注意的是,其他超級區塊之次數控制陣列亦可參照次數控制陣列RCA1。另外,在本實施例中,控制器160係用以隨機地讀取超級區塊SB中的資料。被初始化之次數控制陣列RCA1中之每一欄皆是第一數值”1”,如第一時間T1上之次數控制陣列RCA1所示。
首先,控制器160讀取第一超級區塊SB1中第一超級頁面SP0中之頁面C2_P0的資料。控制器160所讀取之頁面C2_P0在由晶片選擇線CE0以及通道選擇線CH2所選擇之晶片C02中,故控制器160讀取相應於晶片C2之欄CE0_CH2中之值。在本實施例中,如第一時間T1上之欄CE0_CH2所示,控制器160所讀取之欄CE0_CH0的值為第一數值”1”。因此,控制器160保持欄CE0_CH2的值,並且將第二數值”0”寫入欄CE0_CH2以外次數控制陣列RCA1中之其他所有欄CE0_CH0~CE0_CH1以及CE0_CH3~CE3_CH3,如第二時間T2上之次數控制陣列RCA1所示。另外,由於控制器160所讀取之欄CE0_CH0的值為第一數值”1”,故控制器160將讀取次數陣列中相應於第一超級區塊SB1之第一讀取次數加一。
接著,控制器160讀取第一超級區塊SB1中第三超級頁面SP2中之頁面C14_P2的資料。控制器160所讀取之頁面
C14_P2在由晶片選擇線CE3以及通道選擇線CH2所選擇之晶片C14中,故控制器160讀取相應於晶片C14之欄CE3_CH2中之值。在本實施例中,如第二時間T2上之欄CE3_CH2所示,控制器160所讀取之欄CE3_CH2的值為第二數值”0”。因此,控制器160將第一數值”1”寫入欄CE3_CH2,並且保持欄CE3_CH2以外次數控制陣列RCA1中之所有欄CE0_CH0~CE3_CH1以及CE3_CH3的數值,如第三時間T3上之次數控制陣列RCA1所示。另外,由於控制器160所讀取之欄CE3_CH2的值為第二數值”0”,故控制器160保持次數讀取陣列中相應於第一超級區塊之第一讀取次數的數值。
當控制器160在隨機的狀況下,又讀取了一次晶片C14。例如,控制器160讀取第一超級區塊SB1中第二超級頁面SP1中之頁面C14_P1的資料。控制器160所讀取之頁面C14_P1在由晶片選擇線CE3以及通道選擇線CH2所選擇之晶片C14中,故控制器160讀取相應於晶片C14之欄CE3_CH2中之值。在本實施例中,如第三時間T3上之欄CE3_CH2所示,控制器160所讀取之欄CE3_CH2的值為第一數值”1”。因此,控制器160保持欄CE3_CH2的值,並且將第二數值”0”寫入欄CE3_CH2以外次數控制陣列RCA1中之其他所有欄CE0_CH0~CE3_CH1以及CE3_CH3,如第四時間T4上之次數控制陣列RCA1所示。另外,由於控制器160所讀取之欄CE3_CH2的值為第一數值”1”,故控制器160將讀取陣列中相應於第一超級陣列SB1之第一讀取次數加一。
由上述可知,在控制器160在隨機讀取晶片C0~C15
的狀況下,只有在重複讀到同一個晶片時讀取次數才會增加1。否則,讀取次數也只會等到讀完所有晶片C0~C15一次後,才會增加1。因此,控制器160亦可藉由次數控制陣列RCA1減少超級區塊的無效的讀取次數。另外,在本實施例中,第一數值為”1”,並且第二數值為”0”,但本發明不限於此。在其他實施例中,第一數值為”0”,並且第二數值為”1”,但本發明不限於此。再者,在本實施例中,每一欄僅需要1位元的記憶體容量。
第7圖係本發明之一種實施例之資料維護方法之流程圖。資料維護方法適用於第1圖所示之資料儲存裝置140中。資料儲存裝置140具有複數次數控制陣列(未圖示)以及一讀取次數陣列。在一實施例中,次數控制陣列以及讀取次數陣列是設置於快閃記憶體180中,但本發明不限於此。在其他實施例中,次數控制陣列以及讀取次數陣列亦可設置於永久記憶體164中。次數控制陣列用以紀錄每一晶片C0~CN的讀取狀態,並且每一次數控制陣列相應於一超級區塊。讀取次數陣列用以記錄每一超級區塊之讀取次數。另外,每一次數控制陣列包括複數欄,每一欄分別相應於一個晶片C0~CN。流程開始於步驟S700。
在步驟S700中,控制器160初始化次數控制陣列,以將第一數值寫入次數控制陣列中之每一欄。值得注意的是,控制器160只需要在超級區塊剛被更新或者剛建立時,才需要初始化次數控制陣列,但本發明不限於此。使用者亦可在其他狀況下初始化次數控制陣列。換言之,當超級區塊之次數控制
陣列已初始化後,步驟S700則可不被執行。
接著,在步驟S702中,控制器160判斷是否接收到一讀取命令。當控制器160接收到讀取命令時,流程進行至步驟S703,否則,流程會到步驟S700,控制器160繼續判斷是否接收到讀取命令。值得注意的是,讀取命令係相應於對一頁面進行讀取之命令。控制器160可根據自主機120所接收到之一較長的讀取命令,產生多個相應於一個頁面的讀取命令,以依序根據多個所產生之讀取命令對快閃記憶體180中之頁面進行讀取,但本發明不限於此。
在步驟S704中,控制器160根據讀取命令,讀取一第一超級區塊中晶片C0~CN中之一第一晶片C0~CN的資料,並且讀取相應於所讀取之第一超級區塊之一第一次數控制陣列中相應於第一晶片C0~CN之欄中之一第一欄的值。
接著,在步驟S706中,控制器160判斷所讀取之第一欄的值為第一數值或者第二數值。在一實施例中,第一數值為”1”,並且第二數值為”0”,但本發明不限於此。在其他實施例中,第一數值為”0”,並且第二數值為”1”,但本發明不限於此。值得注意的是,在本實施例中,每一欄僅需要1位元的記憶體容量。當所讀取之第一欄的值為第一數值時,流程進行至步驟S708。當所讀取之第一欄的值為第二數值時,流程進行至步驟S712。
在步驟S708中,控制器160保持第一欄的值,並且將第二數值寫入第一欄以外第一次數控制陣列中之所有其他欄。
接著,在步驟S710中,控制器160將用以將讀取陣列中相應於第一超級區塊的一第一讀取次數加一。
在步驟S712中,控制器160將第一數值寫入第一欄,並且保持第一欄以外第一次數控制陣列中之所有其他欄的數值。
接著,在步驟S714中,控制器160判斷第一讀取次數是否超過一既定值。當第一讀取次數超過既定值時,流程進行至步驟S716。否則,流程回到步驟S702。
在步驟S716中,控制器160更新第一超級區塊。接著,流程回到步驟S702。值得注意的是,在其他實施例中,步驟S714以及步驟S716可在其他特定時間點進行,不限於在整理完次數控制陣列後,馬上進行。
本發明所提供之資料儲存裝置140可將以及資料維護方法可降低超級區塊的讀取次數的累加,以減少不必要的更新動作。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應
用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧動態隨機存取器
180‧‧‧快閃記憶體
C0~CN‧‧‧晶片
Claims (19)
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數晶片,複數通道選擇線,以及複數晶片選擇線,其中每一晶片包括複數頁面,並且上述晶片構成一矩陣,上述通道選擇線用選擇上述矩陣中之行,上述晶片選擇線用以選擇上述矩陣中之列,每一上述晶片中之每一上述頁面以一既定排列順序構成複數超級區塊,並且每一上述超級區塊包括不同上述晶片的不同上述頁面;複數次數控制陣列,每一上述次數控制陣列包括複數欄,上述次數控制陣列分別相應於上述超級區塊,上述欄分別相應於上述晶片選擇線以及上述通道選擇線上述晶片之複數組合,並且上述組合分別相應於上述晶片;以及一控制器,用以在讀取上述超級區塊中之一第一超級區塊中上述晶片中之一第一晶片之資料時,讀取上述次數控制陣列中相應於上述第一超級區塊之一第一次數控制陣列,以獲得上述第一次數陣列中相應於上述第一晶片之一第一欄的值,其中當上述第一欄的值為一第一數值時,保持上述第一欄的值,並且將一第二數值寫入上述第一欄以外上述第一次數控制陣列中之所有上述欄,當上述第一欄的值為上述第二數值時,將上述第一數值寫入上述第一欄,並且保持上述第一欄以外上述第一次數控制陣列之所有上述欄的數值。
- 根據申請專利範圍第1項之資料儲存裝置,其中上述超級區 塊分別相應於複數讀取次數,上述控制器更用以在上述第一欄的值為上述第一數值時,將上述讀取次數中相應於上述第一超級區塊之一第一讀取次數加一,並且在上述第一欄的值為上述第二數值時,保持上述第一讀取次數的數值。
- 根據申請專利範圍第2項之資料儲存裝置,更包括一讀取次數陣列,用以紀錄每一上述超級區塊之上述讀取次數。
- 根據申請專利範圍第2項之資料儲存裝置,其中當上述讀取次數超過一既定值時,上述控制器更新相應於超過上述既定值之上述讀取次數的上述超級區塊。
- 根據申請專利範圍第1項之資料儲存裝置,其中上述控制器更用以初始化上述次數控制陣列,以將上述第一數值寫入上述次數控制陣列中之每一上述欄。
- 根據申請專利範圍第1項之資料儲存裝置,其中上述次數控制陣列是設置於上述快閃記憶體中。
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數晶片,每一晶片包括複數頁面,每一上述晶片中之每一上述頁面以一既定排列順序構成複數超級區塊,並且每一上述超級區塊包括不同上述晶片的不同上述頁面;複數次數控制陣列,每一上述次數控制陣列包括複數欄,每一上述次數控制陣列相應於一個上述超級區塊,上述欄分別相應於一個上述晶片;以及一控制器,用以在讀取上述超級區塊中之一第一超級區塊中上述晶片中之一第一晶片的資料時,讀取相應於上述第 一超級區塊之上述次數控制陣列中之一第一次數控制陣列,以獲得上述第一次數控制陣列之上述欄中相應於上述第一晶片之一第一欄的值,其中當上述第一欄的值為一第一數值時,保持上述第一欄的值,並且將一第二數值寫入上述第一欄以外上述第一次數控制陣列中之所有上述欄,當上述第一欄的值為上述第二數值時,將上述第一數值寫入上述第一欄,並且保持上述第一欄以外上述第一次數控制陣列中之所有上述欄的數值。
- 根據申請專利範圍第7項之資料儲存裝置,其中上述快閃記憶體更包括複數通道選擇線以及複數晶片選擇線,上述晶片構成一矩陣,上述通道選擇線用以選擇上述矩陣中之行,上述晶片選擇線用以選擇上述矩陣中之列,每一上述欄相應於上述晶片選擇線以及上述通道選擇線之複數組合,並且每一組合相應於上述晶片中之一者。
- 根據申請專利範圍第7項之資料儲存裝置,其中上述超級區塊分別相應於複數讀取次數,上述控制器更用以在上述第一欄的值為上述第一數值時,將上述讀取次數中相應於上述第一超級區塊之一第一讀取次數加一,並且在上述第一欄的值為上述第二數值時,保持上述第一讀取次數的數值。
- 根據申請專利範圍第9項之資料儲存裝置,更包括一讀取次數陣列,用以紀錄每一上述超級區塊之上述讀取次數。
- 根據申請專利範圍第9項之資料儲存裝置,其中當上述讀取次數超過一既定值時,上述控制器更新相應於超過上述既定值之上述讀取次數的上述超級區塊。
- 根據申請專利範圍第7項之資料儲存裝置,其中上述控制器更用以初始化上述次數控制陣列,以將上述第一數值寫入上述次數控制陣列中之每一上述欄。
- 根據申請專利範圍第1項之資料儲存裝置,其中上述次數控制陣列是設置於上述快閃記憶體中。
- 一種資料維護方法,適用於一資料儲存裝置,其中上述資料儲存裝置具有複數晶片,每一晶片包括複數頁面,每一上述晶片中之每一上述頁面以一既定排列順序構成複數超級區塊,並且每一上述超級區塊包括不同上述晶片的不同上述頁面,上述資料維護方法包括:讀取上述複數超級區塊中之一第一超級區塊中上述晶片中之一第一晶片的資料時,讀取複數次數控制陣列中相應於上述第一超級區塊之一第一次數控制陣列,以獲得上述第一次數控制陣列中之複數欄中相應於上述第一晶片之一第一欄的值,其中上述次數控制陣列分別相應於上述超級區塊,上述次數控制陣列中之每一上述欄分別相應於一個上述晶片;當上述第一欄的值為一第一數值時,保持上述第一欄的值,並且將一第二數值寫入上述第一欄以外上述第一次數控制陣列中之所有上述欄;以及當上述第一欄的值為上述第二數值時,將上述第一數值寫入上述第一欄,並且保持上述第一欄以外上述第一次數控制陣列中之所有上述欄的數值。
- 根據申請專利範圍第14項之資料維護方法,其中上述快閃 記憶體更包括複數通道選擇線以及複數晶片選擇線,上述晶片構成一矩陣,上述通道選擇線用以選擇上述矩陣中之行,上述晶片選擇線用以選擇上述矩陣中之列,每一上述欄相應於上述晶片選擇線以及上述通道選擇線之複數組合,並且每一組合相應於上述晶片中之一者。
- 根據申請專利範圍第14項之資料維護方法,其中上述超級區塊分別相應於複數讀取次數,並且上述資料維護方法更包括在上述第一欄的值為上述第一數值時,將上述讀取次數中相應於上述第一超級區塊之一第一讀取次數加一,並且在上述第一欄的值為上述第二數值時,保持上述第一讀取次數的數值。
- 根據申請專利範圍第16項之資料維護方法,更包括當上述讀取次數超過一既定值時,更新上述超級區塊。
- 根據申請專利範圍第15項之資料維護方法,更包括初始化上述次數控制陣列,以將上述第一數值寫入上述次數控制陣列中之每一上述欄。
- 根據申請專利範圍第15項之資料儲存裝置,其中上述次數控制陣列是設置於上述快閃記憶體中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510901302.0A CN105938419B (zh) | 2015-03-04 | 2015-12-09 | 数据储存装置及其数据维护方法 |
US15/059,240 US9996304B2 (en) | 2015-03-04 | 2016-03-02 | Data storage device and data maintenance method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562127896P | 2015-03-04 | 2015-03-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201633140A true TW201633140A (zh) | 2016-09-16 |
TWI567550B TWI567550B (zh) | 2017-01-21 |
Family
ID=57443247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104130401A TWI567550B (zh) | 2015-03-04 | 2015-09-15 | 資料儲存裝置及其資料維護方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI567550B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI497293B (zh) * | 2009-12-17 | 2015-08-21 | Ibm | 固態儲存裝置內之資料管理 |
JP5565040B2 (ja) * | 2010-03-30 | 2014-08-06 | 富士通株式会社 | 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム |
US8645978B2 (en) * | 2011-09-02 | 2014-02-04 | Compuverde Ab | Method for data maintenance |
TWI479492B (zh) * | 2012-11-20 | 2015-04-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
-
2015
- 2015-09-15 TW TW104130401A patent/TWI567550B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI567550B (zh) | 2017-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9281068B2 (en) | Nonvolatile memory and related reprogramming method | |
US9478300B2 (en) | Operation method of nonvolatile memory system | |
KR102179270B1 (ko) | 불휘발성 메모리 장치 및 그것의 동작 방법 | |
KR102250423B1 (ko) | 불휘발성 메모리 시스템 및 그것의 동작 방법 | |
KR102190241B1 (ko) | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템 | |
JP5513289B2 (ja) | プログラミングの間にプログラム禁止電圧が変化する不揮発性メモリ装置及びそのプログラミング方法 | |
KR102118979B1 (ko) | 불휘발성 메모리 장치 및 그것의 프로그램 방법 | |
JP5659001B2 (ja) | 不揮発性データ貯蔵装置及びそのプログラム方法と、それを含むメモリシステム | |
US20170031626A1 (en) | Storage device including non-volatile memory device and program method thereof | |
JP5368735B2 (ja) | ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法 | |
US10048870B2 (en) | Electronic system and data maintenance method thereof | |
JP2013109823A (ja) | 不揮発性メモリ装置及び不揮発性メモリ装置を制御するコントローラの動作方法 | |
KR20150139112A (ko) | 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 | |
TW201734802A (zh) | 記憶體系統以及其操作方法 | |
KR20160087431A (ko) | 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법 | |
CN106373609B (zh) | 包括半导体存储装置的存储系统及其操作方法 | |
US20150046638A1 (en) | Multi-bit memory device and on-chip buffered program method thereof | |
JP2008108418A (ja) | マルチページプログラムの方法、及びこれを行うためのフラッシュメモリ装置 | |
US11609850B2 (en) | Method of operating a memory with dynamically changeable attributes | |
KR102187643B1 (ko) | 메모리 시스템 및 그것을 포함하는 유저 장치 | |
US20150220283A1 (en) | Operating method of nonvolatile memory device and nonvolatile memory system | |
KR20110099883A (ko) | 홀수의 매트들을 갖는 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 배속 동작 방법 | |
CN112099730A (zh) | 存储器件及其访问方法 | |
US20210034282A1 (en) | Method of operating storage device for improving qos latency and storage device performing the same | |
US9996304B2 (en) | Data storage device and data maintenance method thereof |