防止讀取干擾的方法、存儲器控制電路單元與存儲裝置的制造方法【
技術領域:
】[0001]本發明是有關于一種用于可復寫式非易失性存儲器模塊的防止讀取干擾的方法、存儲器控制電路單元與存儲裝置。【
背景技術:
】[0002]數碼相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對存儲媒體的需求也急速增加。由于可復寫式非易失性存儲器(rewritablenon-volatilememory)具有數據非易失性、省電、體積小、無機械結構、讀寫速度快等特性,因此,近年可復寫式非易失性存儲器產業成為電子產業中相當熱門的一環。例如,以快閃存儲器作為存儲媒體的固態硬盤(Solid-statedrive)已廣泛應用作為電腦主機的硬盤,以提升電腦的存取效能。[0003]依據每個存儲單元可存儲的比特數,反及(NAND)型快閃存儲器可區分為單階存儲單元(SingleLevelCell,簡稱SLC)NAND型快閃存儲器、多階存儲單元(MultiLevelCell,簡稱MLC)NAND型快閃存儲器與復數階存儲單元(TrinaryLevelCell,簡稱TLC)NAND型快閃存儲器。其中SLCNAND型快閃存儲器的每個存儲單元可存儲1個比特的數據(即,“1”與“0”),MLCNAND型快閃存儲器的每個存儲單元可存儲2個比特的數據并且TLCNAND型快閃存儲器的每個存儲單元可存儲3個比特的數據。[0004]在NAND型快閃存儲器中,實體程序化單元是由排列在同一條字符線上的數個存儲單元所組成。由于SLCNAND型快閃存儲器的每個存儲單元可存儲1個比特的數據,因此,在SLCNAND型快閃存儲器中,排列在同一條字符線上的數個存儲單元是對應一個實體程序化單元。[0005]相對于SLCNAND型快閃存儲器來說,MLCNAND型快閃存儲器的每個存儲單元的浮動柵存儲層可存儲2個比特的數據,其中每一個存儲狀態(即,“11”、“10”、“01”與“00”)包括最低有效比特(LeastSignificantBit,簡稱LSB)以及最高有效比特(MostSignificantBit,簡稱MSB)。例如,存儲狀態中從左側算起的第1個比特的值為LSB,而從左側算起的第2個比特的值為MSB。因此,排列在同一條字符線上的數個存儲單元可組成2個實體程序化單元,其中由此些存儲單元的LSB所組成的實體程序化單元稱為下實體程序化單元(lowphysicalpage),并且由此些存儲單元的MSB所組成的實體程序化單元稱為上實體程序化單元(upperphysicalpage)。特別是,下實體程序化單元的寫入速度會快于上實體程序化單元的寫入速度,并且當程序化上實體程序化單元發生錯誤時,下實體程序化單元所存儲的數據也可能因此遺失。[0006]類似地,在TLCNAND型快閃存儲器中,每個存儲單元可存儲3個比特的數據,其中每一個存儲狀態(即,“111,,、“110,,、“101,,、“100,,、“011”、“010”、“001”與“000”)包括每一個存儲狀態包括左側算起的第1個比特的LSB、從左側算起的第2個比特的中間有效比特(CenterSignificantBit,簡稱CSB)以及從左側算起的第3個比特的MSB。因此,排列在同一條字符線上的數個存儲單元可組成3個實體程序化單元,其中由此些存儲單元的LSB所組成的實體程序化單元稱為下實體程序化單元,由此些存儲單元的CSB所組成的實體程序化單元稱為中實體程序化單元,并且由此些存儲單元的MSB所組成的實體程序化單元稱為上實體程序化單元。特別是,對排列在同一條字符線上的數個存儲單元進行程序化時,僅能選擇僅程序化下實體程序化單元或者同時程序化下實體程序化單元、中實體程序化單元與上實體程序化單元,否則所存儲的數據可能會遺失。[0007]然而,無論是哪種存儲單元快閃存儲器模塊,在對同一個實體區塊所存儲的數據進行多次讀取時,例如十萬至百萬次間的讀取次數,很有可能會發生所讀取的數據是錯誤的狀況,甚至此被多次讀取區塊內所存儲的數據會發生異常或遺失。而此類現象本領域技術人員慣稱為“讀取干擾”(read-disturb)。特別是,快閃存儲器模塊中會存儲快閃存儲器存儲系統的系統數據(例如固件碼(FirmwareCode)、文件配置表(FileAllocat1nTable,簡稱FAT),且此系統數據會在快閃存儲器存儲系統運作期間高頻率地的讀取。也因有著這樣的現象存在著,無不驅使著各家廠商必須發展出能確保正確存儲數據的機制。【
發明內容】[0008]本發明提供一種防止讀取干擾的方法、存儲器控制電路單元與存儲裝置,其能夠有效地預防讀取干擾的發生。[0009]本發明的一范例實施例提出一種用于可復寫式非易失性存儲器模塊的防止讀取干擾的方法,此可復寫式非易失性存儲器模塊包括多個實體抹除單元。本防止讀取干擾的方法包括:當從主機系統接收到操作指令時,計數操作次數值,其中此些實體抹除單元之中的第一實體抹除單元被選取以執行此操作指令。本防止讀取干擾的方法也包括,當操作次數值不小于操作次數門限值時,選擇此些實體抹除單元之中的第二實體抹除單元,并且從第二實體抹除單元中讀取數據。本防止讀取干擾的方法還包括:根據從第二實體抹除單元中所讀取的數據判斷第二實體抹除單元是否發生數據錯誤;以及倘若第二實體抹除單元發生數據錯誤時,選擇此些實體抹除單元之中的第三實體抹除單元,校正從第二實體抹除單元中所讀取的數據以產生已校正數據并且將已校正數據寫入至第三實體抹除單元。[0010]在本發明的一實施例中,上述防止讀取干擾的方法,還包括:將此些實體抹除單元至少分組為數據區與閑置區,其中當操作次數值不小于操作次數門限值時,選擇此些實體抹除單元之中的第二實體抹除單元的步驟包括:依序地從數據區的實體抹除單元之中除了對應操作指令的第一實體抹除單元以外的實體抹除單元之中來選出第二實體抹除單元。[0011]在本發明的一實施例中,上述防止讀取干擾的方法,還包括:將此些實體抹除單元至少分組為數據區與閑置區,其中當操作次數值不小于操作次數門限值時,選擇此些實體抹除單元之中的第二實體抹除單元的步驟包括:隨機地從數據區的實體抹除單元之中除了對應操作指令的第一實體抹除單元以外的實體抹除單元之中來選出第二實體抹除單元。[0012]在本發明的一實施例中,上述防止讀取干擾的方法,還包括:將此些實體抹除單元至少分組為數據區與閑置區并且配置多個邏輯地址,其中此些邏輯地址映射數據區的多個實體抹除單元。并且,上述當此操作次數值不小于操作次數門限值時,選擇此些實體抹除單元之中的第二實體抹除單元的步驟包括:隨機地從此些邏輯地址之中選擇第一邏輯地址,并且根據邏輯地址-實體抹除單元映射表獲取第二實體抹除單元,其中在邏輯地址-實體抹除單元映射表中第一邏輯地址映射第二實體抹除單元。[0013]在本發明的一實施例中,上述的防止讀取干擾的方法,還包括:為每一邏輯地址記錄一標記,其中此標記會被記錄為未選過狀態或已選過狀態,其中第一邏輯地址的標記被記錄為未選過狀態。[0014]在本發明的一實施例中,上述防止讀取干擾的方法,還包括:在選擇第一邏輯地址之后,將第一邏輯地址的標記重新記錄為已選過狀態。[0015]在本發明的一實施例中,上述根據從第二實體抹除單元中所讀取的數據判斷第二實體抹除單元是否發生數據錯誤的步驟包括:當對應從第二實體抹除單元中所讀取的數據的錯誤比特數目大于第一錯誤比特數目門限值且小于第二錯誤比特數目門限值時,判斷此第二實體抹除單元發生數據錯誤,其中第二錯誤比特數目門限值大于第一錯誤比特數目門限值。[0016]在本發明的一實施例中,上述防止讀取干擾的方法,還包括:在選擇此些實體抹除單元之中的第三實體抹除單元,校正從第二實體抹除單元中所讀取的數據以產生已校正數據并且將已校正數據寫入至第三實體抹除單元之后,將此操作次數值歸零。[0017]在本發明的一實施例中,上述防止讀取干擾的方法,還包括:倘若第二實體抹除單元未發生數據錯誤時,將此操作次數值歸零。[0018]在本發明的一實施例中,上述操作指令為讀取指令、寫入指令或抹除指令。[0019]在本發明的一實施例中,上述數據錯誤為讀取干擾、數據久置或存儲單元磨耗所造成。[0020]本發明的一范例實施例提出一種用于控制可復寫式非易失性存儲器模塊的存儲器控制電路單元。此存儲器控制電路單元包括主機接口、存儲器接口與存儲器管理電路。主機接口用以耦接至主機系統。存儲器接口用以耦接至可復寫式非易失性存儲器模塊,其中可復寫式非易失性存儲器模塊具有多個實體抹除單元。存儲器管理電路耦接至主機接口與存儲器接口。在此,存儲器管理電路還用以當從主機系統接收到操作指令時,計數操作次數值,其中此些實體抹除單元之中的第一實體抹除單元被選取以執行此操作指令。并且,存儲器管理電路還用以當操作次數值不小于操作次數門限值時,選擇此些實體抹除單元之中的第二實體抹除單元,并且下達第一指令序列以從第二實體抹除單元中讀取數據。此外,存儲器管理電路還用以根據從第二實體抹除單元中所讀取的數據判斷第二實體抹除單元是否發生數據錯誤,并且倘若此第二實體抹除單元發生數據錯誤時,存儲器管理電路選擇此些實體抹除單元之中的第三實體抹除單元,校正從第二實體抹除單元中所讀取的數據以產生已校正數據并且下達第二指令序列以將已校正數據寫入至第三實體抹除單元。[0021]在本發明的一實施例中,上述存儲器管理電路還用以將此些實體抹除單元至少分組為數據區與閑置區并且依序地從數據區的實體抹除單元之中除了對應操作指令的第一實體抹除單元以外的實體抹除單元之中來選出第二實體抹除單元。[0022]在本發明的一實施例中,上述存儲器管理電路還用以將此些實體抹除單元至少分組為數據區與閑置區并且隨機地從數據區的實體抹除單元之中除了對應操作指令的第一實體抹除單元以外的實體抹除單元之中來選出第二實體抹除單元。[0023]在本發明的一實施例中,上述存儲器管理電路還用以將此些實體抹除單元至少分組為數據區與閑置區并且配置多個邏輯地址,其中此些邏輯地址映射數據區的多個實體抹除單元。此外,存儲器管理電路還用以隨機地從此些邏輯地址之中選擇第一邏輯地址,并且根據邏輯地址-實體抹除單元映射表獲取第二實體抹除單元,其中在邏輯地址-實體抹除單元映射表中第一邏輯地址映射第二實體抹除單元。[0024]在本發明的一實施例中,上述存儲器管理電路還用以為每一邏輯地址記錄一標記,其中此標記會被記錄為未選過狀態或已選過狀態,其中第一邏輯地址的標記被記錄為未選過狀態。[0025]在本發明的一實施例中,上述在存儲器管理電路選擇第一邏輯地址之后,存儲器管理電路還用以將第一邏輯地址的標記重新記錄為已選過狀態。[0026]在本發明的一實施例中,上述存儲器管理電路還用以當對應從第二實體抹除單元中所讀取的數據的錯誤比特數目大于第一錯誤比特數目門限值且小于第二錯誤比特數目門限值時,判斷第二實體抹除單元發生數據錯誤,其中第二錯誤比特數目門限值大于第一錯誤比特數目門限值。[0027]在本發明的一實施例中,上述在存儲器管理電路選擇此些實體抹除單元之中的第三實體抹除單元,校正從第二實體抹除單元中所讀取的數據以產生已校正數據并且下達第二指令序列以將已校正數據寫入至第三實體抹除單元之后,存儲器管理電路還用以將操作次數值歸零。[0028]在本發明的一實施例中,上述存儲器管理電路還用以在倘若第二實體抹除單元未發生數據錯誤時,將操作次數值歸零。[0029]在本發明的一實施例中,上述操作指令為讀取指令、寫入指令或抹除指令。[0030]在本發明的一實施例中,上述數據錯誤為讀取干擾、數據久置或存儲單元磨耗所造成。[0031]本發明的一范例實施例提出一種存儲器存儲裝置,其包括連接接口單元、可復寫式非易失性存儲器模塊與存儲器控制電路單元。連接接口單元用以耦接至主機系統。可復寫式非易失性存儲器模塊具有多個實體抹除單元。存儲器控制電路單元耦接當前第1頁1 2 3 4 5 6