專利名稱::區塊管理方法、存儲器控制器與存儲器存儲裝置的制作方法
技術領域:
:本發明涉及一種區塊管理方法,尤其涉及一種管理可復寫式非易失性存儲器模組的實體區塊的方法,以及使用此方法的存儲器控制器與存儲器存儲裝置。
背景技術:
:可復寫式非易失性存儲器(rewritablenon-volatilememory)具有數據非易失性、省電、體積小與無機械結構等特性,故被廣泛地應用于各種電子裝置。可復寫式非易失性存儲器具有多個實體區塊(physicalblock),且每一實體區塊具有多個實體頁面(physicalpage)。其中,實體區塊為數據抹除的最小單位,而實體頁面則是數據寫入的最小單位。當使用可復寫式非易失性存儲器的存儲裝置(以下稱為存儲器存儲裝置)被制造完成而進行第一次格式化(亦稱為開卡)時,存儲器存儲裝置的存儲器控制器會對可復寫式非易失性存儲器的所有實體區塊進行磁盤掃瞄以識別出正常及損毀的實體區塊。存儲器控制器會將正常的實體區塊優先分組至數據區與閑置區并且將剩余的實體區塊分組至取代區。其中,數據區的實體區塊是用以存儲來自主機系統的數據,閑置區的實體區塊是用以輪替數據區中的實體區塊,而取代區的實體區塊則是用以在存儲器存儲裝置運作過程中取代發生損壞的實體區塊。一般來說,正常的實體區塊亦會有不同的使用壽命,因此在使用存儲器存儲裝置的過程中,倘若實體區塊之間的使用壽命差距過大,則容易造成數據不穩定的情況。
發明內容有鑒于此,本發明提供一種區塊管理方法、存儲器控制器與存儲器存儲裝置,能減少因可復寫式非易失性存儲器模組中實體區塊的壽命差距過大而造成數據不穩定的現象。本發明提出一種區塊管理方法,用以管理可復寫式非易失性存儲器模組中的多個實體區塊。此方法包括維護錯誤信息對應表以記錄上述實體區塊中至少一錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數。此方法還包括依據錯誤信息對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入數據的實體區塊。從另一觀點來看,本發明提出一種存儲器控制器,用于管理存儲器存儲裝置中的可復寫式非易失性存儲器模組。此存儲器控制器包括主機系統介面、存儲器介面,以及存儲器管理電路。主機系統介面用以耦接至主機系統。存儲器介面用以耦接可復寫式非易失性存儲器模組,此可復寫式非易失性存儲器模組包括多個實體區塊。存儲器管理電路耦接至主機系統介面與存儲器介面,存儲器管理電路用以維護錯誤信息對應表以記錄上述實體區塊中至少一錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數,并且依據錯誤信息對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入數據的實體區塊。從又一觀點來看,本發明提出一種存儲器存儲裝置,包括可復寫式非易失性存儲器模組、連接器以及存儲器控制器。可復寫式非易失性存儲器模組包括多個實體區塊。連接器用以耦接主機系統。存儲器控制器耦接至可復寫式非易失性存儲器模組與連接器,存儲器控制器用以維護錯誤信息對應表以記錄上述實體區塊中至少一錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數,并且依據錯誤信息對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入數據的實體區塊。基于上述,本發明是依據各實體區塊是否通過寫入測試與抹除測試以及其錯誤位元數來對實體區塊進行管理。進一步來說,本發明是依照實體區塊的錯誤位元數來決定是否使用該實體區塊來寫入數據。據此,能讓可復寫式非易失性存儲器模組中的實體區塊使用壽命更為平均,從而增加數據穩定性。為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。圖1A是根據本發明一范例實施例顯示的使用存儲器存儲裝置的主機系統的示意圖。圖1B是根據本發明范例實施例所顯示的電腦、輸入/輸出裝置與存儲器存儲裝置的示意圖。圖1C是根據本發明另一范例實施例所顯示的主機系統與存儲器存儲裝置的示意圖。圖2是顯示圖1A所示的存儲器存儲裝置的概要方塊圖。圖3是根據本發明一范例實施例顯示的存儲器控制器的概要方塊圖。圖4是根據本發明的一范例實施例所顯示的管理實體區塊的示意圖。圖5A、5B是根據本發明的一范例實施例所顯示的錯誤信息對應表的示意圖。圖6是根據本發明的一范例實施例所顯示的區塊管理方法的流程圖。圖7是根據本發明的另一范例實施例所顯示的區塊管理方法的流程圖。主要元件符號說明:1000:主機系統1100:電腦1102:微處理器1104:隨機存取存儲器1106:輸入/輸出裝置1108:系統匯流排1110:數據傳輸介面1202:鼠標1204:鍵盤1206:顯示器1208:印表機1212:移動盤1214:記憶卡1216:固態硬盤1310:數碼相機1312:SD卡1314:MMC卡1316:記憶棒1318:CF卡1320:嵌入式存儲裝置100:存儲器存儲裝置102:連接器104:存儲器控制器106:可復寫式非易失性存儲器模組1041:主機系統介面1043:存儲器管理電路1045:存儲器介面3002:錯誤檢查與校正電路3004:緩沖存儲器3006:電源管理電路410(0)~410(N):實體區塊502:數據區504:閑置區506:系統區508:取代區610(0)610(L):邏輯區塊700、800:錯誤信息對應表PBA(i)、PBA(j)、PBA(k)、PBA(I)、PBA(m)、PBA(η)、PBA(a)、PBA(b)、PBA(c)、PBA(d):實體區塊位址800-0、800-l、800-2、800-(N-1)、800_N:分表S610S640:本發明的一實施例所述的區塊管理方法的各步驟S710S740:本發明的另一實施例所述的區塊管理方法的各步驟具體實施例方式一般而言,存儲器存儲裝置(亦稱,存儲器存儲系統)包括可復寫式非易失性存儲器模組與控制器(亦稱,控制電路)。通常存儲器存儲裝置會與主機系統一起使用,以使主機系統可將數據寫入至存儲器存儲裝置或從存儲器存儲裝置中讀取數據。另外,亦有存儲器存儲裝置是包括嵌入式存儲器與可執行于主機系統上以實質地作為此嵌入式存儲器的控制器的軟件。一般來說在存儲器存儲裝置出廠時,可復寫式非易失性存儲器模組便包括正常的實體區塊與損壞的實體區塊(亦稱,壞實體區塊),而各正常實體區塊隨著其讀取數據錯誤率的不同會有相異的使用壽命。本發明便是基于上述觀點而提出的一種區塊管理方法、存儲器控制器與存儲器存儲裝置,藉由平均實體區塊的使用壽命來增加數據的正確性。圖1A是根據本發明一范例實施例所顯示的使用存儲器存儲裝置的主機系統的示意圖。主機系統1000包括電腦1100與輸入/輸出(Input/Output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取存儲器(RandomAccessMemory,RAM)1104、系統匯流排1108以及數據傳輸介面1110。輸入/輸出裝置1106包括如圖1B所示的鼠標1202、鍵盤1204、顯示器1206與印表機1208。必須了解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可還包括其他裝置。在本發明范例實施例中,存儲器存儲裝置100是通過數據傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取存儲器1104以及輸入/輸出裝置1106的運作,主機系統1000可將數據寫入至存儲器存儲裝置100,或從存儲器存儲裝置100中讀取數據。例如,存儲器存儲裝置100可以是如圖1B所示的記憶卡1214、移動盤1212、或固態硬盤(SolidStateDrive,SSD)1216。一般而言,主機系統1000為可存儲數據的任意系統。雖然在本范例實施例中主機系統1000是以電腦系統來作說明,然而,在本發明另一范例實施例中,主機系統1000亦可以是手機、數碼相機、攝影機、通訊裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數碼相機1310時,存儲器存儲裝置則為其所使用的安全數位(SecureDigital,SD)卡1312、多媒體記憶(MultimediaCard,MMC)卡1314、記憶棒(MemoryStick)1316、小型快閃(CompactFlash,CF)卡1318或嵌入式存儲裝置1320(如圖1C所示)。嵌入式存儲裝置1320包括嵌入式多媒體卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接于主機系統的基板上。圖2是顯示圖1A所示的存儲器存儲裝置100的方塊圖。請參照圖2,存儲器存儲裝置100包括連接器102、存儲器控制器104與可復寫式非易失性存儲器模組106。連接器102耦接至存儲器控制器104,并且用以耦接主機系統1000。在本范例實施例中,連接器102所支援的傳輸介面種類為序列先進附件(SerialAdvancedTechnologyAttachment,SATA)介面。然而在其他范例實施例中,連接器102的傳輸介面種類也可以是通用序列匯流排(UniversalSerialBus,USB)介面、多媒體存儲卡(MultimediaCard,MMC)介面、平行先進附件(ParallelAdvancedTechnologyAttachment,PATA)介面、電氣和電子工程師協會(InstituteofElectricalandElectronicEngineers,IEEE)1394介面、高速周邊零件連接介面(PeripheralComponentInterconnectExpress,PCIExpress)介面、安全數位(SecureDigital,SD)介面、記憶棒(MemoryStick,MS)介面、小型快閃(CompactFlash,CF)介面,或整合驅動電子(IntegratedDriveElectronics,IDE)介面等任何適用的介面,在此并不加以限制。存儲器控制器104會執行以硬件型式或韌體型式實作的多個邏輯閘或控制指令,并根據主機系統1000的指令在可復寫式非易失性存儲器模組106中進行數據的寫入、讀取與抹除等運作。其中,存儲器控制器104還特別用以根據本范例實施例的區塊管理方法而依照錯誤位元數來對可復寫式非易失性存儲器模組106中的實體區塊進行使用與否的管理。本范例實施例的區塊管理方法將于后配合圖示再作說明。可復寫式非易失性存儲器模組106耦接至存儲器控制器104。可復寫式非易失性存儲器模組106包括多個實體區塊,且每一實體區塊包括多個實體頁面。舉例來說,可復寫式非易失性存儲器模組106為多階記憶胞(MultiLevelCelI,MLC)NAND快閃存儲器模組,但本發明不限于此,可復寫式非易失性存儲器模組106也可以是單階記憶胞(SingleLevelCell,SLC)NAND快閃存儲器模組、其他快閃存儲器模組或任何具有相同特性的存儲器模組。圖3是根據本發明一范例實施例所顯示的存儲器控制器的概要方塊圖。請參照圖3,存儲器控制器104包括主機系統介面1041、存儲器管理電路1043,以及存儲器介面1045。主機系統介面1041耦接至存儲器管理電路1043,并通過連接器102以耦接主機系統1000。主機系統介面1041是用以接收與識別主機系統1000所傳送的指令與數據。據此,主機系統1000所傳送的指令與數據會通過主機系統介面1041而傳送至存儲器管理電路1043。在本范例實施例中,主機系統介面1041對應連接器102而為SATA介面,而在其他范例實施例中,主機系統介面1041也可以是USB介面、MMC介面、PATA介面、IEEE1394介面、PCIExpress介面、SD介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。存儲器管理電路1043是用以控制存儲器控制器104的整體運作。具體來說,存儲器管理電路1043具有多個控制指令,在存儲器存儲裝置100運作時,上述控制指令會被執行以實現本范例實施例的區塊管理方法。在一范例實施例中,存儲器管理電路1043的控制指令是以韌體型式來實作。例如,存儲器管理電路1043具有微處理器單元(未顯示)與只讀存儲器(未顯示),且上述控制指令是被燒錄在只讀存儲器中。當存儲器存儲裝置100運作時,上述控制指令會由微處理器單元來執行以完成本范例實施例的區塊管理方法。在本發明另一范例實施例中,存儲器管理電路1043的控制指令亦可以程式碼型式存儲于可復寫式非易失性存儲器模組106的特定區域(例如,可復寫式非易失性存儲器模組106中專用于存放系統數據的系統區)中。此外,存儲器管理電路1043具有微處理器單元(未顯示)、只讀存儲器(未顯示)及隨機存取存儲器(未顯示)。其中,只讀存儲器具有驅動碼段,并且當存儲器控制器104被致能時,微處理器單元會先執行此驅動碼段來將存儲于可復寫式非易失性存儲器模組106中的控制指令載入至存儲器管理電路1043的隨機存取存儲器中。之后,微處理器單元會運轉上述控制指令以執行本范例實施例的區塊管理方法。此外,在本發明另一范例實施例中,存儲器管理電路1043的控制指令亦可以一硬件型式來實作。存儲器介面1045耦接至存儲器管理電路1043,以使存儲器控制器104與可復寫式非易失性存儲器模組106相耦接。據此,存儲器控制器104可對可復寫式非易失性存儲器模組106進行相關運作。也就是說,欲寫入至可復寫式非易失性存儲器模組106的數據會經由存儲器介面1045轉換為可復寫式非易失性存儲器模組106所能接受的格式。在本發明的另一范例實施例中,存儲器控制器104還包括錯誤檢查與校正電路3002。錯誤檢查與校正電路3002耦接至存儲器管理電路1043,用以執行錯誤檢查與校正程序以確保數據的正確性。具體而言,當存儲器管理電路1043接收到來自主機系統1000的寫入指令時,錯誤檢查與校正電路3002會為對應此寫入指令的數據產生對應的錯誤檢查與校正碼(ErrorCheckingandCorrectingCode,ECCCode),且存儲器管理電路1043會將對應此寫入指令的數據與對應的錯誤檢查與校正碼寫入至可復寫式非易失性存儲器模組106。之后當存儲器管理電路1043從可復寫式非易失性存儲器模組106中讀取數據時,會同時讀取此數據對應的錯誤檢查與校正碼,且錯誤檢查與校正電路3002會依據此錯誤檢查與校正碼對所讀取的數據執行錯誤檢查與校正程序,以識別該筆數據是否存在錯誤位元。在本發明的另一范例實施例中,存儲器控制器104還包括緩沖存儲器3004。緩沖存儲器3004可以是靜態隨機存取存儲器(StaticRandomAccessMemory,SRAM)、或動態隨機存取存儲器(DynamicRandomAccessMemory,DRAM)等,本發明并不加以限制。緩沖存儲器3004耦接至存儲器管理電路1043,用以暫存來自于主機系統1000的數據,或暫存來自于可復寫式非易失性存儲器模組106的數據。在本發明又一范例實施例中,存儲器控制器104還包括電源管理電路3006。電源管理電路3006耦接至存儲器管理電路1043,用以控制存儲器存儲裝置100的電源。圖4是根據本發明的一范例實施例所顯示的管理可復寫式非易失性存儲器模組的實體區塊的示意圖。請參照圖4,本范例實施例的可復寫式非易失性存儲器模組106包括實體區塊410(0)410(N),且每一實體區塊包括數個實體頁面。存儲器控制器104中的存儲器管理電路1043會將實體區塊410(O)410(N)邏輯地分組為數據區502、閑置區504、系統區506與取代區508。其中,圖4所標示的F、S、R與N為正整數,代表各區配置的實體區塊數量,其可由存儲器存儲裝置100的制造商依據所使用的可復寫式非易失性存儲器模組106的容量來設定。邏輯上屬于數據區502與閑置區504的實體區塊是用以存儲來自于主機系統1000的數據。具體來說,數據區502的實體區塊是被視為已存儲數據的實體區塊,而閑置區504的實體區塊是用以寫入新數據的實體區塊。換句話說,閑置區504的實體區塊為空或可使用的實體區塊(無記錄數據或標記為已沒用的無效數據)。當從主機系統1000接收到寫入指令與欲寫入的數據時,存儲器管理電路1043會從閑置區504中提取實體區塊,并且將數據寫入至所提取的實體區塊中,以替換數據區502的實體區塊。或者,當需要對一邏輯區塊執行數據合并程序時,存儲器管理電路1043會從閑置區504提取實體區塊并將數據寫入其中,以替換原先映射此邏輯區塊的實體區塊。邏輯上屬于系統區506的實體區塊是用以記錄系統數據。舉例來說,系統數據包括關于可復寫式非易失性存儲器模組106的制造商與型號、可復寫式非易失性存儲器模組106的實體區塊數、每一實體區塊的實體頁面數等等。邏輯上屬于取代區508的實體區塊是用以在數據區502、閑置區504或系統區506中的實體區塊損毀時,取代損壞的實體區塊。具體而言,在存儲器存儲裝置100運作期間,倘若取代區508中仍存有正常的實體區塊且數據區502的實體區塊損壞時,存儲器管理電路1043會從取代區508中提取正常的實體區塊來更換數據區502中損壞的實體區塊。也因此,在存儲器存儲裝置100的運作過程中,數據區502、閑置區504、系統區506與取代區508的實體區塊會動態地變動。例如,用以輪替存儲數據的實體區塊會變動地屬于數據區502或閑置區504。為了讓主機系統1000能對可復寫式非易失性存儲器模組106進行存取,存儲器管理電路1043會配置數個邏輯區塊610(0)610(L)以映射數據區502中的實體區塊410(0)410(F-1)。其中每一邏輯區塊包括多個邏輯頁面,而邏輯區塊610(O)610(L)中的邏輯頁面會依序映射實體區塊410(O)410(F-1)中的實體頁面。詳言之,存儲器管理電路1043將所配置的邏輯區塊610(O)610(L)提供給主機系統1000,并維護邏輯區塊-實體區塊映射表(logicalblock-physicalblockmappingtable)以記錄邏輯區塊610(0)610(L)與實體區塊410(O)410(F-1)的映射關系。因此,當主機系統1000欲存取一邏輯存取位址時,存儲器管理電路1043會將此邏輯存取位址轉換為對應的邏輯區塊的邏輯頁面,再透過邏輯區塊-實體區塊映射表找到其所映射的實體頁面來進行存取。在本范例實施例中,當存儲器存儲裝置100被制造完成而進行第一次格式化(亦稱為開卡)時,存儲器控制器104中的存儲器管理電路1043會對可復寫式非易失性存儲器模組106的所有實體區塊進行寫入測試、抹除測試,以及讀取測試。針對所有通過寫入測試與抹除測試的實體區塊,倘若其經過讀取測試而產生的錯誤位元數小于或等于錯誤位元數門檻值,則該些實體區塊將被存儲器管理電路1043識別為錯誤可修正實體區塊(亦即,其中的錯誤位元可被錯誤檢查與校正電路3002校正)。一般來說,存儲器管理電路1043在開卡程序中會優先將錯誤可修正實體區塊分組至數據區502與閑置區504。錯誤位元數門檻值的大小與可復寫式非易失性存儲器模組106的規格有關。舉例而言,倘若錯誤位元數門檻值為48,表示錯誤檢查與校正電路3002具有檢查與校正48個錯誤位元的能力。亦即,一旦所讀取的數據有超過48個錯誤位元,該筆數據便無法被錯誤檢查與校正電路3002校正。然而必須了解的是,本發明并不對錯誤位元數門檻值的大小加以限制。除此之外,存儲器管理電路1043會將有通過寫入測試與抹除測試,但在經過讀取測試所產生的錯誤位元數大于錯誤位元數門檻值的實體區塊,以及未通過寫入測試及/或抹除測試的實體區塊都識別為錯誤不可修正實體區塊。在本范例實施例中,存儲器管理電路1043會將各錯誤可修正實體區塊與其錯誤位元數的對應關系記錄于一錯誤信息對應表。在另一范例實施例中,存儲器管理電路1043可僅對可復寫式非易失性存儲器模組106的所有實體區塊進行寫入測試及讀取測試來取得錯誤位元數,并據以建立錯誤信息對應表。在又一范例實施例中,存儲器管理電路1043也可在存儲器存儲裝置100的運行中藉由數據寫入及讀取來建立錯誤信息對應表。圖5A是根據本發明的一范例實施例所顯示的錯誤信息對應表的示意圖。如圖5A的錯誤信息對應表700所示,假設錯誤位元數門檻值為48,存儲器管理電路1043將以O至48個錯誤位元為鍵值建立49個欄位,以分別記錄所對應的錯誤位元數以及符合該欄位的鍵值的錯誤可修正實體區塊的實體區塊位址。此外,存儲器管理電路1043會在錯誤信息對應表700建立一不可用實體區塊欄位,以記錄所有錯誤不可修正實體區塊的實體區塊位址。舉例來說,參照錯誤信息對應表700可得知實體區塊位址為PBA(k)以及PBA(I)的錯誤可修正實體區塊具有I個錯誤位元、實體區塊位址為PBA(a)以及PBA(b)的錯誤可修正實體區塊具有48個錯誤位元,且實體區塊位址為PBA(c)以及PBA(d)的實體區塊則屬于錯誤不可修正實體區塊。圖5B是根據本發明的另一范例實施例所顯示的錯誤信息對應表的示意圖。假設錯誤位元數門檻值為48,圖5B的錯誤信息對應表800包括50個分表(例如,分表800-0、800-1,800-2,800-(N-1)、800_N)以分別記錄所對應的錯誤位元數為O至48的錯誤可修正實體區塊的實體區塊位址以及錯誤不可修正實體區塊的實體區塊位址。在本范例實施例中,分表800-0是用以記錄所有具有O個錯誤位元的錯誤可修正實體區塊的實體區塊位址(例如,實體區塊位址PBA⑴、PBA⑴)、分表800-1是用以記錄所有具有I個錯誤位元的錯誤可修正實體區塊的實體區塊位址(例如,實體區塊位址PBA(k)、PBA(I)),而分表800-N則是用以記錄所有錯誤不可修正實體區塊的實體區塊位址(例如,實體區塊位址PBA(C)、PBA(d))。必須特別說明的是,圖5A、5B僅是為了說明而舉出的范例,本發明并不對存儲器管理電路1043如何實作錯誤信息對應表加以限制。且標示在圖5A、5B中的各實體區塊位址也僅是為了方便說明,與其所對應的實體區塊實際在可復寫式非易失性存儲器模組106是否相鄰無關。存儲器管理電路1043會將進行開卡程序后首次建立完成的錯誤信息對應表存儲在可復寫式非易失性存儲器模組106中的某一錯誤可修正實體區塊(例如,被區分為是統區506的錯誤可修正實體區塊)。爾后,在主機系統100對存儲器存儲裝置100進行存取時,存儲器管理電路1043會由系統區506將錯誤信息對應表讀回緩沖存儲器3004,并利用錯誤信息對應表來依據各錯誤可修正實體區塊的錯誤位元數去選擇用以寫入數據的實體區塊。基本上,存儲器管理電路1043會較常使用所對應的錯誤位元數較少的錯誤可修正實體區塊。進一步來說,在存儲器存儲裝置100被使用的期間,存儲器管理電路1043會查詢錯誤信息對應表來取得各錯誤可修正實體區塊的錯誤位元數,并據以將所有錯誤可修正實體區塊分為多個區塊隊列。其中各區塊隊列分別對應一區塊使用率,且所對應的錯誤位元數越少的區塊隊列的區塊使用率越高。在一范例實施例中,存儲器管理電路1043是直接依據錯誤位元數的數值將所有錯誤可修正實體區塊分為數個區塊隊列。例如,存儲器管理電路1043將所對應的錯誤位元數為O的所有錯誤可修正實體區塊分為同一個區塊隊列,并將所對應的錯誤位元數為I的所有錯誤可修正實體區塊分為同一個區塊隊列,以此類推。在另一范例實施例中,存儲器管理電路1043會依據錯誤檢查與校正電路3002能校正的錯誤位元數的上限(即,錯誤位元數門檻值)定義數個錯誤位元數區間,并將所對應的錯誤位元數屬于相同錯誤位元數區間的所有錯誤可修正實體區塊分為同一區塊隊列。舉例來說,假設錯誤位元數門檻值為48,本范例實施例的存儲器管理電路1043會將對應的錯誤位元數為O的所有錯誤可修正實體區塊分為第一區塊隊列、將對應的錯誤位元數介于I至20位元的錯誤可修正實體區塊分為第二區塊隊列、將對應的錯誤位元數介于21至40位元的錯誤可修正實體區塊分為第三區塊隊列,以及將對應的錯誤位元數介于41至48位元的錯誤可修正實體區塊分為第四區塊隊列。然而必須說明的是,本發明并不對區塊隊列的數量以及劃分規則加以限定。每當要將一數據寫入可復寫式非易失性存儲器模組106時,存儲器管理電路1043根據各區塊隊列的區塊使用率選擇一區塊隊列,并利用所選的區塊隊列中的錯誤可修正實體區塊來寫入數據。舉例來說,假設存儲器管理電路1043將所有的錯誤可修正實體區塊分為4個區塊隊列(以下稱第一、第二、第三,以及第四區塊隊列),且這4個區塊隊列分別對應的區塊使用率為70%、15%、10%,以及5%。那么在100次寫入數據的操作中,存儲器管理電路1043會有70次從第一區塊隊列取得用以寫入數據的錯誤可修正實體區塊、有15次從第二區塊隊列取得用以寫入數據的錯誤可修正實體區塊、有10次從第三區塊隊列取得用以寫入數據的錯誤可修正實體區塊,并且有5次從第四區塊隊列取得用以寫入數據的錯誤可修正實體區塊。在另一范例實施例中,為了提供更佳的數據穩定性,對于所有的錯誤可修正實體區塊,存儲器管理電路1043僅會將所對應的錯誤位元數小于或等于特定預設值的錯誤可修正實體區塊分為數個區塊隊列。舉例來說,假設特定預設值為40且錯誤位元數門檻值為48,對于所對應的錯誤位元數大于40位元的所有錯誤可修正實體區塊,即便其錯誤位元數并未超過錯誤檢查與校正電路3002能校正的錯誤位元數上限,存儲器管理電路1043仍不會將其分入任何區塊隊列。亦即,在有數據需要被寫入可復寫式非易失性存儲器模組106時,存儲器管理電路1043并不會使用所對應的錯誤位元數大于特定預設值的錯誤可修正實體區塊來寫入數據。如此一來可避免該些錯誤可修正實體區塊因已有較高的錯誤位元數,而在此次寫入數據時發生錯誤位元數激增且超過錯誤位元數門檻值的情況。必須特別說明的是,在使用可復寫式非易失性存儲器模組106的過程中,存儲器管理電路1043會依據各錯誤可修正實體區塊的錯誤位元數的變化來動態更新錯誤信息對應表。亦即,存儲器管理電路1043將使錯誤信息對應表能反映每一錯誤可修正實體區塊目前的錯誤位元數。而一旦有錯誤可修正實體區塊的錯誤位元數變為大于錯誤位元數門檻值,存儲器管理電路1043則重新將此錯誤可修正實體區塊識別為錯誤不可修正實體區塊,并將其記錄在錯誤信息對應表(例如,記錄在圖5A所示的不可用實體區塊欄位,或圖5B所示的不可用實體區塊分表800-N)。當需要抹除某個已使用的實體區塊中的數據時,存儲器管理電路1043也會根據錯誤信息對應表決定此實體區塊在被抹除后是否要加入區塊隊列。具體來說,存儲器管理電路1043會查找錯誤信息對應表以取得此實體區塊的錯誤位元數,再根據區塊隊列的劃分規則來判斷具有此錯誤位元數的實體區塊是否可被分入任何區塊隊列。舉例來說,假設存儲器管理電路1043定義有三個區塊隊列,其中第一區塊隊列包括錯誤位元數為O的錯誤可修正實體區塊、第二區塊隊列包括錯誤位元數介于I至20位元的錯誤可修正實體區塊,且第三區塊隊列包括錯誤位元數介于21至40位元的錯誤可修正實體區塊。若在查找錯誤信息對應表取得即將執行抹除程序的實體區塊的錯誤位元數為25個位元,那么在抹除其中的數據后,存儲器管理電路1043會將該實體區塊記錄在第三區塊隊列中。而倘若在查找錯誤信息對應表取得此實體區塊的錯誤位元數為45位元,那么在抹除其中的數據后該實體區塊將不會被加入任何區塊隊列。圖6是根據本發明的一范例實施例所顯示的區塊管理方法的流程圖。請參閱圖6,在存儲器存儲裝置100被制造完成而進行開卡程序時,首先如步驟S610所示,存儲器控制器104中的存儲器管理電路1043對可復寫式非易失性存儲器模組106中的所有實體區塊執行寫入測試、抹除測試,以及讀取測試。接著在步驟S620中,存儲器管理電路1043從所有的實體區塊中識別出錯誤可修正實體區塊,并將錯誤可修正實體區塊與所對應的錯誤位元數的對應關系記錄于錯誤信息對應表。其中,錯誤可修正實體區塊是指通過寫入測試與抹除測試,且經過讀取測試所產生的錯誤位元數小于或等于錯誤位元數門檻值的實體區塊。接著如步驟S630所示,存儲器管理電路1043依據錯誤信息對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入數據的實體區塊。在本范例實施例中,所對應的錯誤位元數較低的實體區塊會具有較高的使用率。并且如步驟S640所示,存儲器管理電路1043依據錯誤可修正實體區塊的錯誤位元數的變化來動態更新錯誤信息對應表。在使用可復寫式非易失性存儲器模組106的過程中,存儲器管理電路1043會反復執行步驟S630及S640的動作來維護錯誤信息對應表,以確保錯誤信息對應表記錄的是各錯誤可修正實體區塊目前的錯誤位元數,而存儲器管理電路1043是根據錯誤信息對應表所記錄的錯誤可修正實體區塊與錯誤位元數的對應關系來決定如何使用錯誤可修正實體區塊。圖7是根據本發明的另一范例實施例所顯示的區塊管理方法的流程圖。在本范例實施例中,存儲器管理電路1043可在存儲器存儲裝置100出廠前藉由測試操作來維護錯誤信息對應表,亦可在存儲器存儲裝置100運行中藉由數據寫入及讀取操作來建立錯誤信息對應表。詳細地說,在存儲器存儲裝置100被制造完成后,如步驟S710所示,在存儲器存儲裝置100出廠前,存儲器管理電路1043于開卡程序時對可復寫式非易失性存儲器模組106中的所有實體區塊執行寫入測試、抹除測試,以及讀取測試,以從中識別出錯誤可修正實體區塊,并據以維護錯誤信息對應表。亦即,存儲器管理電路1043將錯誤可修正實體區塊與所對應的錯誤位元數的對應關系記錄在錯誤信息對應表。爾后如步驟S720所示,在存儲器存儲裝置100出廠后,存儲器管理電路1043對可復寫式非易失性存儲器模組106中的所有實體區塊執行數據寫入操作以及數據讀取操作,進而在上述實體區塊中識別出錯誤可修正實體區塊,并據以維護錯誤信息對應表。具體來說,存儲器管理電路1043會從實體區塊中找出經過數據讀取操作而產生的錯誤位元數小于或等于錯誤位元數門檻值的實體區塊以識別為錯誤可修正實體區塊,并將錯誤可修正實體區塊與所對應的錯誤位元數的對應關系記錄于錯誤信息對應表。接下來如步驟S730所示,存儲器管理電路1043依據錯誤信息對應表中的錯誤可修正實體區塊以及錯誤可修正實體區塊所對應的錯誤位元數來選擇用以寫入數據的實體區塊。并如步驟S740所示,存儲器管理電路1043依據錯誤可修正實體區塊的錯誤位元數的變化來動態更新錯誤信息對應表。綜上所述,本發明所述的區塊管理方法、存儲器控制器與存儲器存儲裝置會維護一錯誤信息對應表以記錄每一錯誤可修正實體區塊所對應的錯誤位元數,并根據各實體區塊的錯誤位元數來選擇要利用哪個實體區塊來寫入數據。以上述方式對實體區塊進行管理不僅能平均可復寫式非易失性存儲器模組中的各實體區塊的使用壽命,還能增加存儲器存儲裝置中的數據穩定性。雖然本發明已以實施例揭示如上,但其并非用以限定本發明,任何所屬
技術領域:
的技術人員,在不脫離本發明的精神和范圍內,當可作適當的改動和同等替換,故本發明的保護范圍應當以本申請權利要求所界定的范圍為準。權利要求1.一種區塊管理方法,用以管理一可復寫式非易失性存儲器模組中的多個實體區塊,其特征在于,該方法包括:維護一錯誤信息對應表以記錄該些實體區塊中至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的一錯誤位元數;以及依據該錯誤信息對應表中的該至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的該錯誤位元數來選擇用以寫入數據的實體區塊。2.根據權利要求1所述的區塊管理方法,其中維護該錯誤信息對應表以記錄該至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的該錯誤位元數的步驟包括:對該些實體區塊執行一寫入測試、一抹除測試,以及一讀取測試;在該些實體區塊中識別出該至少一錯誤可修正實體區塊,其中該至少一錯誤可修正實體區塊是通過該寫入測試與該抹除測試,且經過該讀取測試所產生的該錯誤位元數小于或等于一錯誤位元數門檻值的實體區塊;以及將該至少一錯誤可修正實體區塊與所對應的該錯誤位元數的對應關系記錄于該錯誤信息對應表。3.根據權利要求2所述的區塊管理方法,其中在對該些實體區塊執行該寫入測試、該抹除測試,以及該讀取測試的步驟之后,該方法還包括:在該些實體區塊中識別出至少一錯誤不可修正實體區塊,其中該至少一錯誤不可修正實體區塊是未通過該寫入測試及/或該抹除測試的實體區塊,或是通過該寫入測試與該抹除測試但對應的該錯誤位元數大于該錯誤位元數門檻值的實體區塊;以及將該至少一錯誤不可修正實體區塊記錄在該錯誤信息對應表。4.根據權利要求1所述的區塊管理方法,其中維護該錯誤信息對應表以記錄該至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的該錯誤位元數的步驟包括:對該些實體區塊執行一數據寫入操作以及一數據讀取操作;在該些實體區塊中識別出該至少一錯誤可修正實體區塊,其中該至少一錯誤可修正實體區塊是該些實體區塊經過該數據讀取操作所產生的該錯誤位元數小于或等于一錯誤位元數門檻值的實體區塊;以及將該至少一錯誤可修正實體區塊與所對應的該錯誤位元數的對應關系記錄于該錯誤信息對應表。5.根據權利要求1所述的區塊管理方法,其中維護該錯誤信息對應表以記錄該至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的該錯誤位元數的步驟包括:在使用該可復寫式非易失性存儲器模組的過程中,依據該至少一錯誤可修正實體區塊所對應的該錯誤位元數的變化來動態更新該錯誤信息對應表。6.根據權利要求1所述的區塊管理方法,其中依據該錯誤信息對應表中的該至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的該錯誤位元數選擇用以寫入數據的實體區塊的步驟包括:查詢該錯誤信息對應表來取得該至少一錯誤可修正實體區塊的該錯誤位元數,并據以將該至少一錯誤可修正實體區塊分為至少一區塊隊列,其中該至少一區塊隊列分別對應一區塊使用率;以及當要將一數據寫入該可復寫式非易失性存儲器模組時,根據該至少一區塊隊列的該區塊使用率選擇實體區塊來寫入該數據。7.根據權利要求6所述的區塊管理方法,其中查詢該錯誤信息對應表來取得該至少一錯誤可修正實體區塊的該錯誤位元數,并據以將該至少一錯誤可修正實體區塊分為該至少一區塊隊列的步驟還包括:在該至少一錯誤可修正實體區塊中,僅將所對應的該錯誤位元數小于或等于一特定預設值的錯誤可修正實體區塊分為該至少一區塊隊列。8.根據權利要求6所述的區塊管理方法,還包括:根據該錯誤信息對應表決定一已使用的實體區塊在被抹除后是否要加入該至少一區塊隊列。9.根據權利要求1所述的區塊管理方法,其中該至少一錯誤可修正實體區塊所對應的該錯誤位元數是小于或等于一錯誤位元數門濫值。10.一種存儲器控制器,用于管理一存儲器存儲裝置中的一可復寫式非易失性存儲器模組,其特征在于,該存儲器控制器包括:一王機系統介面,用以I禹接一王機系統;一存儲器介面,用以耦接該可復寫式非易失性存儲器模組,其中該可復寫式非易失性存儲器模組包括多個實體區塊;以及一存儲器管理電路,耦接至該主機系統介面與該存儲器介面,該存儲器管理電路用以維護一錯誤信息對應表以記錄該些實體區塊中至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的一錯誤位元數,并且依據該錯誤信息對應表中的該至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的該錯誤位元數來選擇用以寫入數據的實體區塊。11.根據權利要求10所述的存儲器控制器,其中該存儲器管理電路對該些實體區塊執行一數據寫入操作以及一數據讀取操作,并在該些實體區塊中識別出該至少一錯誤可修正實體區塊,且將該至少一錯誤可修正實體區塊與所對應的該錯誤位元數的對應關系記錄于該錯誤信息對應表,其中該至少一錯誤可修正實體區塊是該些實體區塊經過該數據讀取操作所產生的該錯誤位元數小于或等于一錯誤位元數門檻值的實體區塊。12.根據權利要求10所述的存儲器控制器,其中在使用該可復寫式非易失性存儲器模組的過程中,該存儲器管理電路依據該至少一錯誤可修正實體區塊所對應的該錯誤位元數的變化來動態還新該錯誤信息對應表。13.根據權利要求10所述的存儲器控制器,其中該存儲器管理電路查詢該錯誤信息對應表來取得該至少一錯誤可修正實體區塊的該錯誤位元數,并據以將該至少一錯誤可修正實體區塊分為至少一區塊隊列,其中該至少一區塊隊列分別對應一區塊使用率,當要將一數據寫入該可復寫式非易失性存儲器模組時,該存儲器管理電路根據該至少一區塊隊列的該區塊使用率選擇實體區塊來寫入該數據。14.根據權利要求13所述的存儲器控制器,其中該存儲器管理電路還用以在該至少一錯誤可修正實體區塊中,僅將所對應的該錯誤位元數小于或等于一特定預設值的錯誤可修正實體區塊分為該至少一區塊隊列。15.根據權利要求13所述的存儲器控制器,其中該存儲器管理電路根據該錯誤信息對應表決定一已使用的實體區塊在被抹除后是否要加入該至少一區塊隊列。16.根據權利要求10所述的存儲器控制器,其中該至少一錯誤可修正實體區塊所對應的該錯誤位元數是小于或等于一錯誤位元數門檻值。17.一種存儲器存儲裝置,其特征在于,包括:一可復寫式非易失性存儲器模組,包括多個實體區塊;一連接器,用以耦接一主機系統;以及一存儲器控制器,耦接至該可復寫式非易失性存儲器模組與該連接器,該存儲器控制器用以維護一錯誤信息對應表以記錄該些實體區塊中至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的一錯誤位元數,并且依據該錯誤信息對應表中的該至少一錯誤可修正實體區塊以及該至少一錯誤可修正實體區塊所對應的該錯誤位元數來選擇用以寫入數據的實體區塊。18.根據權利要求17所述的存儲器存儲裝置,其中該存儲器控制器對該些實體區塊執行一數據寫入操作以及一數據讀取操作,并在該些實體區塊中識別出該至少一錯誤可修正實體區塊,且將該至少一錯誤可修正實體區塊與所對應的該錯誤位元數的對應關系記錄于該錯誤信息對應表,其中該至少一錯誤可修正實體區塊是該些實體區塊經過該數據讀取操作所產生的該錯誤位元數小于或等于一錯誤位元數門檻值的實體區塊。19.根據權利要求17所述的存儲器存儲裝置,其中在使用該可復寫式非易失性存儲器模組的過程中,該存儲器控制器依據該至少一錯誤可修正實體區塊所對應的該錯誤位元數的變化來動態更新該錯誤信息對應表。20.根據權利要求17所述的存儲器存儲裝置,其中該存儲器控制器查詢該錯誤信息對應表來取得該至少一錯誤可修正實體區塊的該錯誤位元數,并據以將該至少一錯誤可修正實體區塊分為至少一區塊隊列,其中該至少一區塊隊列分別對應一區塊使用率,當要將一數據寫入該可復寫式非易失性存儲器模組時,該存儲器控制器根據該至少一區塊隊列的該區塊使用率選擇實體區塊來寫入該數據。21.根據權利要求20所述的存儲器存儲裝置,其中該存儲器控制器還用以在該至少一錯誤可修正實體區塊中,僅將所對應的該錯誤位元數小于或等于一特定預設值的錯誤可修正實體區塊分為該至少一區塊隊列。22.根據權利要求20所述的存儲器存儲裝置,其中該存儲器控制器根據該錯誤信息對應表決定一已使用的實體區塊在被抹除后是否要加入該至少一區塊隊列。23.根據權利要求17所述的存儲器存儲裝置,其中該至少一錯誤可修正實體區塊所對應的該錯誤位元數是小于或等于一錯誤位元數門濫值。全文摘要一種區塊管理方法、存儲器控制器與存儲器存儲裝置。此方法用以管理存儲器存儲裝置中可復寫式非易失性存儲器模組的多個實體區塊。此方法包括維護錯誤信息對應表以記錄上述實體區塊中錯誤可修正實體區塊與錯誤可修正實體區塊所對應的錯誤位元數。此方法還包括依據錯誤信息對應表中的錯誤可修正實體區塊及其所對應的錯誤位元數來選擇用以寫入數據的實體區塊。據此可以提升存儲器存儲裝置的數據穩定性。文檔編號G06F3/06GK103106148SQ201110354608公開日2013年5月15日申請日期2011年11月10日優先權日2011年11月10日發明者朱健華申請人:群聯電子股份有限公司