專利名稱::用于閃存的區塊管理方法、控制器與存儲系統的制作方法
技術領域:
:本發明涉及一種用于閃存的區塊管理方法,且特別涉及一種能夠有效地延長閃存壽命的區塊管理方法以及使用此方法的閃存控制器與閃存存儲系統。
背景技術:
:數碼相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對存儲媒體的需求也急速增加。由于閃存(FlashMemory)具有數據非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用于這類可攜式由電池供電的產品上。固態硬盤(SolidStateDrive,以下簡稱SSD)就是一種以NAND閃存作為存儲媒體的存儲裝置。由于閃存體積小容量大,所以已廣泛用于個人重要數據的存儲。因此,近年閃存產業成為電子產業中相當熱門的一環。一般來說,在閃存存儲裝置中閃存晶片的實體區塊會由閃存存儲裝置的閃存控制器邏輯地分組為系統區(systemarea)、數據區(dataarea)、備用區(sparearea)與取代區(!^placementarea)0系統區的實體區塊是用以存儲閃存存儲裝置的相關重要信息,而取代區的實體區塊是用以取代數據區或備用區中已損壞的實體區塊(S卩,壞實體區塊),因此在一般存取狀態下,主機系統是無法存取系統區與取代區中的實體區塊。至于歸類為數據區的實體區塊中會存儲由寫入指令所寫入的有效數據,而備用區中的實體區塊是用以在執行寫入指令時替換數據區中的實體區塊。具體來說,當閃存存儲裝置接受到主機系統的寫入指令而欲對數據區的實體區塊進行寫入時,閃存存儲裝置會從備用區中提取一實體區塊并且將在數據區中欲寫入的實體區塊中的有效舊數據與欲寫入的新數據寫入至從備用區中提取的實體區塊中并且將已寫入新數據的實體區塊邏輯地關聯為數據區,并且將原本數據區的實體區塊進行抹除并邏輯地關聯為備用區。為了能夠讓主機系統能夠順利地存取以輪替方式存儲數據的實體區塊,閃存存儲裝置會提供邏輯區塊給主機系統。也就是說,閃存存儲裝置會通過在邏輯區塊-實體區塊映射表(logicalblock-physicalblockmappingtable)中記錄與更新邏輯區塊與數據區的實體區塊之間的映射關系來反映實體區塊的輪替,所以主機系統僅需要針對所提供邏輯區塊進行寫入而閃存存儲裝置會依據邏輯區塊-實體區塊映射表對所映射的實體區塊進行讀取或寫入數據。然而,實體區塊的抹除次數是有限的(例如,實體區塊抹除一萬次后就會損壞)。當實體區塊被不斷進行程序化與抹除而導致損毀時,閃存控制器會將損毀的實體區塊標示為壞實體區塊而不會再使用,并且從取代區中提取新的實體區塊來取代。然而,一旦損毀的實體區塊數超過一定數量而使得實體區塊的數目不足以提供主機對上述邏輯區塊的存取時,此閃存存儲裝置會被宣告為寫入保護(writeprotect)狀態或無法再使用。基此,如何延長閃存存儲裝置的壽命是此領域技術人員所致力的目標。
發明內容本發明提供一種區塊管理方法,其能夠有效地延長閃存的使用壽命。本發明提供一種閃存控制器,其所執行的區塊管理方法能夠有效地延長閃存的使用壽命。本發明提供一種閃存存儲系統,其所執行的區塊管理方法能夠有效地延長閃存的使用壽命。本發明實施例提出一種區塊管理方法,用于管理一閃存晶片的多個實體區塊。本區塊管理方法包括配置多個邏輯地址,將這些邏輯地址映射至多個邏輯區塊,并且將這些邏輯區塊映射至上述實體區塊。本區塊管理方法也包括配置一邏輯區塊-實體區塊映射表以記錄這些邏輯區塊與這些實體區塊之間的一映射關系。此外,本區塊管理方法還包括從主機系統中獲取至少一刪除記錄,其中此刪除記錄包括關于這些邏輯地址之中多個已刪除邏輯地址的信息,且存儲于這些已刪除邏輯地址中的數據已于主機系統中被刪除。另外,本區塊管理方法還包括依據此刪除記錄獲取一已刪除邏輯區塊并且將映射至此已刪除邏輯區塊的每一邏輯地址標示為一壞邏輯地址,其中存儲于對應此已刪除邏輯區塊的邏輯地址中的數據已于主機系統中被刪除,且主機系統無法存取此壞邏輯地址。本發明實施例提出一種閃存控制器,用于管理一閃存晶片的多個實體區塊。本閃存控制器包括微處理器單元、閃存接口單元、主機接口單元與存儲器管理單元。閃存接口單元電性連接至微處理器單元,并且用以電性連接至上述閃存晶片。主機接口單元電性連接至微處理器單元,并且用以連接一主機系統。存儲器管理單元電性連接至微處理器單元,并且用以配置多個邏輯地址。在此,存儲器管理單元將這些邏輯地址映射至多個邏輯區塊,將這些邏輯區塊映射至上述實體區塊,并且配置一邏輯區塊-實體區塊映射表以記錄這些邏輯區塊與這些實體區塊之間的映射關系。此外,存儲器管理單元通過主機接口單元從主機系統中獲取至少一刪除記錄,其中此刪除記錄包括關于多個已刪除邏輯地址的信息,并且存儲于這些已刪除邏輯地址中的數據已于主機系統中被刪除。另外,存儲器管理單元依據此刪除記錄獲取一已刪除邏輯區塊并且將映射至此已刪除邏輯區塊的每一該些邏輯地址標示為一壞邏輯地址,其中存儲于對應此已刪除邏輯區塊的邏輯地址中的數據已于主機系統中被刪除,并且主機系統無法存取已標記的壞邏輯地址。本范例例提出一種閃存存儲系統,其包括閃存晶片、連接器與閃存控制器。閃存晶片具有多個實體區塊。連接器用以電性連接一主機系統。閃存控制器電性連接至此閃存晶片與連接器,并且用以配置多個邏輯地址。在此,閃存控制器將這些邏輯地址映射至多個邏輯區塊,將這些邏輯區塊映射至上述實體區塊,并且配置一邏輯區塊-實體區塊映射表以記錄這些邏輯區塊與這些實體區塊之間的一映射關系。此外,閃存控制器通過連接器從主機系統中獲取至少一刪除記錄,其中此刪除記錄包括關于多個已刪除邏輯地址的信息,并且存儲于這些已刪除邏輯地址中的數據已于主機系統中被刪除。另外,閃存控制器依據此刪除記錄獲取一已刪除邏輯區塊并且將映射至此已刪除邏輯區塊的每一邏輯地址標示為一壞邏輯地址,其中存儲于對應此已刪除邏輯區塊的邏輯地址中的數據已于主機系統中被刪除,并且主機系統無法存取已標記的壞邏輯地址。本實施例提出一種區塊管理方法,用于管理閃存晶片的多個實體區塊。本區塊管理方法包括配置多個邏輯地址,以及將實體區塊至少分組為一數據區與一備用區,其中該備用區中的實體區塊是用以于執行主機寫入指令時替換該數據區中的實體區塊,且每一邏輯地址映射至數據區的實體區塊的其中之一。本區塊管理方法也包括將映射至數據區的至少一邏輯地址標示為至少一壞邏輯地址,并將此壞邏輯地址所映射至的實體區塊關聯為備用區。基于上述,本發明實施例能夠有效地延長閃存的使用壽命。為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。圖IA為本發明第一實施例所繪示的使用閃存存儲裝置的主機系統。圖IB為本發明實施例所繪示的電腦、輸入/輸出裝置與閃存存儲裝置的示意圖。圖IC為本發明另一實施例所繪示的主機系統與閃存存儲裝置的示意圖。圖ID為繪示圖IA所示閃存存儲裝置的概要方塊圖。圖2為本發明另一實施例所繪示的閃存控制器的概要方塊圖。圖3A為本發明第一實施例所繪示的閃存晶片的方塊圖。圖;3B為本發明第一實施例所繪示的記錄邏輯區塊與實體區塊之間的映射關系的運作示意圖。圖4A與圖4B為本發明第一實施例所繪示的更改壞邏輯區塊的映射關系的區塊整理。圖5為本發明第一實施例所繪示的區塊管理方法的流程圖。圖6為本發明第二實施例所繪示的記錄邏輯區塊與實體區塊之間的映射關系的運作示意圖。圖7A與圖7B為本發明第二實施例所繪示的重新映射邏輯地址與更改壞邏輯區塊的映射關系的區塊整理實施例。圖8為本發明第二實施例所繪示的區塊管理方法的流程圖,主要元件符號說明1000主機系統1102微處理器1106:輸入/輸出裝置1110:數據傳輸接口1204鍵盤1208打印機1214記憶卡1310數碼相機1314=MMC卡1318記憶棒100:閃存存儲裝置104:閃存控制器122-(0)122(N)實體區塊204存儲器管理單元208閃存接口單元1100電腦1104隨機存取存儲器1108系統總線1202鼠標1206顯示器1212隨身碟1216固態硬盤1312=SD卡1316=CF卡1320嵌入式MMC102連接器106閃存晶片202微處理器單元206主機接口單元240第一轉換層242運算單元260邏輯區塊-實體區塊映射表294電源管理單元302系統區306:備用區350-(0)350-(H)邏輯區塊602邏輯地址-邏輯區塊映射表S801、S803、S805、S807、S809250第二轉換層292錯誤校正單元296緩沖存儲器304數據區308取代區360-(0)~360-(K)邏輯地址S501、S503、S505、S507、S509、S511區塊管理步驟S811、S813、S815、區塊管理步驟具體實施例方式閃存存儲裝置一般而言包括閃存晶片與控制器(還稱,控制電路)。通常閃存存儲裝置會與主機系統一起使用,以使主機系統可將數據寫入至閃存存儲裝置或從閃存存儲裝置中讀取數據。另外,還有閃存存儲裝置是包括嵌入式閃存與可執行于主機系統上以實質地作為此嵌入式閃存的控制器的軟件。第一實施例圖IA為本發明第一實施例所繪示的使用閃存存儲裝置的主機系統。請參照圖1A,主機系統1000包括電腦1100與輸入/輸出anput/Output,以下簡稱1/0)裝置1106。電腦1100包括微處理器1102、隨機存取存儲器(randomaccessmemory,以下簡稱RAM)1104、系統總線1108以及數據傳輸接口1110。圖IB為本發明實施例所繪示的電腦、輸入/輸出裝置與閃存存儲裝置的示意圖,輸入/輸出裝置1106包括如圖IB所示的鼠標1202、鍵盤1204、顯示器1206與打印機1208。必須了解的是,圖IB所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可還包括其他裝置。在本發明實施例中,閃存存儲裝置100是通過數據傳輸接口1110與主機系統1000的其他元件電性連接。通過微處理器1102、隨機存取存儲器1104與輸入/輸出裝置1106的處理,主機系統1000可將數據寫入至閃存存儲裝置100或從閃存存儲裝置100中讀取數據。圖IC為本發明另一實施例所繪示的主機系統與閃存存儲裝置的示意圖。例如,閃存存儲裝置100可以是如圖IB所示的隨身碟1212、記憶卡1214或固態硬盤(SolidStateDrive,以下簡稱:SSD)1216。—般而言,主機系統1000為可存儲數據的任意系統。雖然在本實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一實施例中,主機系統1000還可以是數碼相機、攝影機、通信裝置、音樂播放器或視頻播放器等系統。例如,在主機系統1000為數碼相機1310時,閃存存儲裝置100則為其所使用的SD卡1312、MMC卡1314、CF卡1316或記憶棒(memorystick)1318(如圖IC所示),或者還可為配置于數碼相機1310內的嵌入式MMC(EmbededMMC,eMMC)1320。圖ID為繪示圖IA所示的閃存存儲裝置100的概要方塊圖。請參照圖1D,閃存存儲裝置100包括連接器102、閃存控制器104與閃存晶片106。連接器102是電性連接至閃存控制器104并且用以電性連接至主機系統1000。在本實施例中,連接器102為串行高級技術附件(SerialAdvancedTechnologyAttachment,以下簡稱SATA)連接器。然而,必須了解的是本發明不限于此,連接器102還可以是平行先進附件(ParallelAdvancedTechnologyAttachment,以下簡稱PATA)、通用序列總線(UniversalSerialBus,以下簡稱USB)連接器、電氣和電子工程師協會(InstituteofElectricalandElectronicEngineers,以下簡稱IEEE)1394連接器、高速周邊零件連接接口(PeripheralComponentInterconnectExpress,以下簡禾爾PCIExpress)連接器、安全數碼(securedigital,以下簡稱=SD)接口連接器、記憶棒(MemorySick,以下簡稱MS)接口連接器、多媒體存儲卡(MultiMediaCard,以下簡稱MMC)接口連接器、小型快閃(CompactFlash,以下簡稱CF)接口連接器、整合式驅動電子接口QntegratedDeviceElectronics,以下簡稱IDE)連接器或其他適合的連接器。閃存控制器104會執行以硬件型式或固件型式實作的多個邏輯閘或控制指令,并且根據主機系統1000的指令在閃存晶片106中進行數據的寫入、讀取與抹除等運作。閃存控制器104包括微處理器單元202、存儲器管理單元204、主機接口單元206與閃存接口單元208。微處理器單元202為閃存控制器104的主控單元,用以與存儲器管理單元204、主機接口單元206與閃存接口單元208等協同合作以進行閃存存儲裝置100的各種運作。存儲器管理單元204是電性連接至微處理器單元202,用以執行根據本實施例的數據讀取機制與區塊管理機制,存儲器管理單元204的運作將于以下配合圖式作詳細說明。在本實施例中,存儲器管理單元204是以一固件型式實作在閃存控制器104中。例如,將包括多個控制指令的存儲器管理單元204刻錄至一程序存儲器(例如,只讀存儲器(ReadOnlyMemory,以下簡稱ROM))中并且將此程序存儲器嵌入在閃存控制器104中,當閃存存儲裝置100運作時,存儲器管理單元204的多個控制指令會由微處理器單元202來執行以完成根據本發明實施例的數據讀取機制與區塊管理機制。在本發明另一實施例中,存儲器管理單元204的控制指令還可以程序碼型式存儲于閃存晶片106的特定區域(例如,閃存晶片中專用于存放系統數據的系統區)中。同樣的,當閃存存儲裝置100運作時,存儲器管理單元204的多個控制指令會由微處理器單元202來執行。此外,在本發明另一實施例中,存儲器管理單元204還可以一硬件型式實作在閃存控制器104中。主機接口單元206是電性連接至微處理器單元202并且用以接收與識別主機系統1000所傳送的指令與數據。也就是說,主機系統1000所傳送的指令與數據會通過主機接口單元206來傳送至微處理器單元202。在本實施例中,主機接口單元206可支援全速命令隊列(NativeCommandQueuing;以下簡稱NCQ)協定且對應連接器102為SATA接口。然而,必須了解的是本發明不限于此,主機接口單元206還可以是PATA接口、USB接口、IEEE1394接口、PCIExpress接口、SD接口、MS接口、MMC接口、CF接口、IDE接口或其他適合的數據傳輸接口。閃存接口單元208是電性連接至微處理器單元202并且用以存取閃存晶片106。也就是說,欲寫入至閃存晶片106的數據會經由閃存接口單元208轉換為閃存晶片106所能接受的格式。在本發明另一實施例中,閃存控制器還可還包括其他功能模組。圖2為本發明另一實施例所繪示的閃存控制器的概要方塊圖。請參照圖2,除了微處理器單元202、存儲器管理單元204、主機接口單元206與閃存接口單元208之外,閃存控制器104還包括錯誤校正單元四2、電源管理單元294與緩沖存儲器四6。錯誤校正單元292是電性連接至微處理器單元202并且用以執行一錯誤校正程序以確保數據的正確性。具體來說,當存儲器管理單元204從主機系統1000中接收到主機寫入指令時,錯誤校正單元292會為對應此主機寫入指令的寫入數據產生對應的錯誤檢查與校正碼(ErrorCheckingandCorrectingCode,以下簡稱ECCCode),并且存儲器管理單元204會將此寫入數據與對應的錯誤校正碼寫入至閃存晶片106中。而,當存儲器管理單元204從主機系統1000中接收到主機讀取指令時,存儲器管理單元204會從閃存晶片106中讀取對應此主機讀取指令的數據及其錯誤校正碼,并且錯誤校正單元292會依據此錯誤校正碼對所讀取的數據執行錯誤校正。電源管理單元294是電性連接至微處理器單元202并且用以控制閃存存儲裝置100的電源。緩沖存儲器296是電性連接至微處理器單元202并且用以暫存來自于主機系統1000的數據與指令或來自于閃存晶片106的數據。閃存晶片106是電性連接至閃存控制器104并且用以存儲數據。閃存晶片106具有實體區塊122-(0)122-(N)。實體區塊為抹除的最小單位。還即,每一實體區塊含有最小數目之一并被抹除的記憶胞。每一實體區塊具有數個實體頁面(page)。在本實施例中,實體頁面為程序化的最小單元。換言之,實體頁面為寫入數據或讀取數據的最小單元。每一實體頁面通常包括使用者數據區與冗余區。使用者數據區用以存儲使用者的數據,而冗余區用以存儲系統的數據(例如,錯誤檢查與校正碼)。在本范例實施例中,閃存晶片106為多層記憶胞(MultiLevelCell,MLC)NAND閃存模組。然而,本發明不限于此,閃存晶片106還可是單層記憶胞(SingleLevelCell,SLC)NAND閃存模組。圖3A為本發明第一實施例所繪示的閃存晶片的方塊圖。請參照圖3A,閃存晶片106的記憶胞僅能從“1”程序化為“0”,因此要更新實體區塊內的數據時必須先抹除實體區塊內的數據。然而,閃存的寫入是以頁面為單位,而抹除是以實體區塊為單位,所以在本實施例中,實體區塊會以輪替方式來存儲數據。具體來說,存儲器管理單元204會將實體區塊122-(0)122-(N)邏輯地分組為系統區(systemarea)302、數據區(dataarea)304、備用區(sparearea)306與取代區(replacementarea)308,其中分組為系統區302的實體區塊是用以存儲閃存存儲裝置的相關重要信息,而分組為取代區308的實體區塊是用以取代數據區304或備用區306中的壞實體區塊,因此在一般存取狀態下,主機系統1000是無法存取系統區302與取代區308中的實體區塊。至于分組為數據區304的實體區塊會存儲由主機寫入指令所寫入的數據,而備用區306中的實體區塊是用以在執行主機寫入指令時替換數據區304中的實體區塊。例如,當閃存存儲裝置100接收到主機系統1000的主機寫入指令而欲更新(或寫入)數據至數據區304中某一實體區塊的某一頁面時,存儲器管理單元204會從備用區306中提取一實體區塊并且將欲被更新的實體區塊中的有效舊數據與欲寫入的新數據寫入至從備用區306中提取的實體區塊的頁面中,并且將已寫入有效舊數據與新數據的實體區塊邏輯地關聯為數據區304,并且將數據區304中欲被更新的實體區塊進行抹除并邏輯地關聯為備用區306。為了能夠讓主機系統1000能夠順利地存取以輪替方式存儲數據的實體區塊,閃存存儲裝置100會配置多個邏輯地址及其映射的邏輯區塊以供主機系統1000存取,并且記錄邏輯區塊與實體區塊之間的映射關系。也就是說,在此描述閃存實體區塊的運作時,以“提取”、“交換”、“替換”、“輪替”、“分組”、“關聯”等詞來操作閃存模組的實體區塊是邏輯上的概念,閃存的實體區塊的實際位置并未更動,而是通過更新邏輯區塊與實體區塊之間的映射關系來反映對實體區塊的操作。圖;3B為本發明第一實施例所繪示的記錄邏輯區塊與實體區塊之間的映射關系的運作示意圖。請參照圖3B,閃存控制器104會配置多個邏輯地址360-(0)360-(K),并且提供第一轉換層240與第二轉換層250來將邏輯地址360-(0)360-(K)映射至邏輯區塊350-(0)350-(H),并將邏輯區塊350-(0)350_(H)映射至閃存晶片106的實體區塊122-(0)122-(N),其中這些邏輯地址360-(0)360-(K)是對應主機系統1000的存取單位(例如,扇區)。第一轉換層240配置有運算單元對2,其用以將邏輯地址360-(0)360-(K)映射至邏輯區塊350-(0)350-(H)。例如,運算單元242為一余數運算器,并且存儲器管理單元204將邏輯地址的編號進行一余數運算,由此依據所計算的余數來將邏輯地址映射至邏輯區塊,其中每一邏輯地址是映射邏輯區塊350-(0)350-(H)的其中之一。第二轉換層250具有邏輯區塊-實體區塊映射表(logicalblock-physicalblockmappingtable)260,其用以記錄邏輯區塊所映射的實體區塊。具體來說,每一邏輯區塊350-(0)350_(H)會包括多個邏輯頁面,且每一邏輯頁面是由數個邏輯地址所組成,因此當主機系統1000在邏輯地址360-(0)360-(K)中存取數據時,閃存控制器104就可依據所存取的邏輯地址所屬的邏輯區塊來在實體區塊中實際地讀取或寫入數據。例如,假設邏輯地址360-(0)是映射邏輯區塊350-(0)并且邏輯區塊350-(0)是映射實體區塊122-(0)的例子中,當主機系統1000在邏輯地址360-(0)中存取數據時,存儲器管理單元204會經由第一轉換層240計算出所存取的邏輯地址360-(0)所映射的邏輯區塊350-(0),并且第二轉換層250的依據邏輯區塊-實體區塊映射表260來在所映射的實體區塊122-(0)中實際地存取數據。此外,值得一提的是,邏輯區塊-實體區塊映射表260會被存儲于閃存晶片106中(例如,系統區302中),并且在閃存存儲裝置100運作期間,邏輯區塊-實體區塊映射表沈0會被載入至緩沖存儲器296中以使得存儲器管理單元204能夠讀取與更新邏輯區塊-實體區塊映射表260。然而,在緩沖存儲器四6的存儲空間較小的例子中,緩沖存儲器296可能無法暫存記錄所有邏輯區塊的映射關系的邏輯區塊-實體區塊映射表260。因此,在本發明另一實施例中,存儲器管理單元204會將邏輯區塊350-(0)350-(H)分組為多個邏輯區域(logicalzone),并且為每一邏輯區域獨立地配置一邏輯區塊-實體區塊映射表沈0。也就是說,每一邏輯區塊會屬于其中一個邏輯區域,并且存儲器管理單元204將邏輯區塊的映射關系分別地記錄在其所屬的邏輯區域的邏輯區塊-實體區塊映射表260中。基此,當主機系統1000欲存取某一邏輯區塊時,存儲器管理單元204會依據欲存取的邏輯區塊所屬的邏輯區域來從閃存晶片106中載入對應的邏輯區塊-實體區塊映射表260至緩沖存儲器四6,并且依據對應的邏輯區塊-實體區塊映射表260來進行數據的存取。之后,當需存取另一邏輯區域的邏輯區塊時,存儲器管理單元204會將目前使用的邏輯區塊-實體區塊映射表沈0回存至閃存晶片106中并載入對應的另一邏輯區塊-實體區塊映射表260至緩沖存儲器四6。基此,可避免緩沖存儲器296無法存儲所有邏輯區塊的映射關系的問題。如上所述,當閃存控制器104執行來自于主機系統1000的主機寫入指令時,存儲器管理單元204是以輪替方式來使用數據區304與備用區306的實體區塊。特別是,在本實施例中,當備用區306中的實體區塊都已成為壞實體區塊或無法正常使用(例如,所存儲的數據具有錯誤檢查和糾正(ErrorCheckingandCorrecting;以下簡稱ECC)錯誤或曾發生程序化錯誤(programfail)),并且取代區308中還無可正常使用的實體區塊時,或者當閃存晶片106中的壞實體區塊的數目已達一門檻值(例如,此門檻值為原本屬于備用區306的實體區塊的數目的80%)時,存儲器管理單元204會執行區塊整理機制,以整理出主機系統1000“未使用”或“仍可正常使用”的邏輯區塊所映射的實體區塊來作為備用區306的實體區塊。例如,在主機系統1000的操作系統的檔案管理機制中操作系統是通過檔案配置表來管理存儲于存儲裝置中的數據,其中,在操作系統執行數據的刪除運作的例子中,操作系統僅會于檔案配置表中注記欲刪除的邏輯地址中的數據已為無效,即完成刪除數據的運作,而不會實際地將所存儲的數據進行刪除。之后,當操作系統欲在這些邏輯地址中寫入數據時,操作系統會將數據直接寫入。值得一提的是,在主機系統1000的操作系統執行刪除運作時,主機系統1000的操作系統會傳送刪除記錄,以告知閃存控制器104哪些邏輯地址中的數據已被刪除(即,對于主機系統1000來說,哪些邏輯地址為已刪除邏輯地址),基此,存儲器管理單元204會依據此刪除記錄來整理邏輯區塊。例如,在本實施例中,主機系統1000的操作系統為微軟視窗操作系統,并且微軟視窗操作系統是通過整理(trim)指令來傳送刪除記錄,而主機接口單元206與存儲器管理單元204可支援與識別此整理指令。值得一提的是,本發明不限于此,任何可傳送刪除記錄的指令都可應用于本發明。特別是,在本實施例中,當備用區306中的實體區塊都成為壞實體區塊或無法正常使用,并且取代區308中還無正常的實體區塊時,存儲器管理單元204會依據所接收的整理指令內的刪除記錄來整理出哪個邏輯區塊內的邏輯地址中的數據都已被主機系統1000刪除,并且將至少部份此邏輯區塊標記為壞邏輯區塊,以禁止主機系統1000再使用。例如,存儲器管理單元204可直接修改上述檔案配置表中的信息,以將此邏輯區塊標示為壞邏輯區塊,或者,存儲器管理單元204還可于主機系統1000欲寫入數據至此邏輯區塊時告知主機系統1000的操作系統此邏輯區塊為壞邏輯區塊,并由主機系統1000的操作系統來修改檔案配置表。此外,存儲器管理單元204會更新邏輯區塊-實體區塊映射表沈0,將此壞邏輯區塊所映射的實體區塊邏輯地關聯為備用區306,并且此壞邏輯區塊將不再映射任何實體區塊。圖4A與圖4B為本發明第一實施例所繪示的更改壞邏輯區塊的映射關系的區塊整理。請參照圖4A,在實施例中,邏輯區塊350-(0)是映射實體區塊122-(S+1),邏輯區塊350-(1)是映射實體區塊122-(S+2),且邏輯區塊350-(H)是映射實體區塊122-(D)。盡12管在圖4A中未繪示其他邏輯區塊的映射關系,但必須了解的是,其他邏輯區塊還是類似地映射實體區塊。在此,假設主機系統1000已刪除存儲于邏輯區塊350-(0)的所有邏輯地址的數據,即僅于檔案配置表中注記邏輯區塊350-(0)中的數據已為無效,而未實際地將所存儲于實體區塊122-(S+1)的數據刪除。此時,倘若實體區塊122-Φ+1)已成為壞實體區塊而無法再存儲數據,且在取代區308中已無正常的實體區塊可用于取代實體區塊122-(D+1)時,如圖4B所示,存儲器管理單元204會依據所接收的刪除記錄將邏輯區塊350-(0)識別為已刪除邏輯區塊并且將其標示壞邏輯區塊。此外,存儲器管理單元204會在邏輯區塊-實體區塊映射表260中將此已刪除邏輯區塊(即,邏輯區塊350-(0))所映射的實體區塊(即,實體區塊122-(S+1))中的數據刪除并關聯為備用區。也就是說,實體區塊122-(S+1)會被用作為備用區306的實體區塊,以在存儲器管理單元204執行主機系統指令時用于輪替數據區304的實體區塊。因此,備用區306的實體區塊的數目仍會被維持,且存儲器管理單元204能夠完成以上述輪替方式所進行的數據寫入運作,由此,可有效地延長閃存存儲裝置100的壽命。圖5為本發明第一實施例所繪示的區塊管理方法的流程圖。請參照圖5,當發生實體區塊損壞時,首先,在步驟S501中閃存控制器104的存儲器管理單元204會判斷取代區308中是否存有正常的實體區塊。倘若取代區308中存有正常的實體區塊時,則在步驟S503中存儲器管理單元204會以取代區308中正常的實體區塊來取代已損壞的實體區塊并更新邏輯區塊-實體區塊映射表沈0。在步驟S503之后,圖5的流程會被結束。值得一提的是,在本實施例中是以取代區308中是否存有正常的實體區塊來決定是否來取代損壞的實體區塊,然而,本發明不限于此,在本發明另一實施例中,還可以判斷取代區308中的正常實體區塊的數目是否低于一門檻值來替換步驟S501,其中當取代區308中的正常的實體區塊的數目不低于一門檻值當則執行步驟S503,反之則執行下述步驟S505。倘若在步驟S501中判斷取代區308中無存有正常的實體區塊時,則在步驟S505中存儲器管理單元204會依據來自于主機系統1000的刪除記錄判斷是否邏輯區塊之中存有已被刪除邏輯區塊(例如,圖4B中的邏輯區塊350-(0))。倘若邏輯區塊之中存有已被刪除邏輯區塊時,則在步驟S507中將已被刪除邏輯區塊標記為壞邏輯區塊,并且在步驟S509中將已被刪除邏輯區塊所映射的實體區塊邏輯地關聯為備用區306,并且更新邏輯區塊-實體區塊映射表沈0,其中此已被刪除邏輯區塊將不再映射任何實體區塊。在步驟S509之后,圖5的流程會被結束。倘若邏輯區塊之中無存有已被刪除邏輯區塊時,則在步驟S511中存儲器管理單元204會向主機系統1000宣告閃存存儲裝置100為寫入保護(writeprotect)狀態,并且圖5的流程會被結束。第二實施例本發明第二實施例的閃存存儲裝置與主機系統本質上是相同于第一實施例的的閃存存儲裝置與主機系統,其中差異在于第二實施例的存儲器管理單元會將邏輯地址重新映射至邏輯區塊,以將多個已刪除邏輯地址集中至同一邏輯區塊中。以下將使用第一實施例的圖1A、圖ID與圖3A來描述第二實施例。在第一實施例中,當備用區306中的實體區塊都已成為壞實體區塊或無法正常使用,并且取代區308中還無正常的實體區塊時,閃存控制器104的存儲器管理單元204會依據刪除記錄尋找已刪除邏輯區塊。也就是說,存儲器管理單元204會判斷哪一個邏輯區塊所映射的所有邏輯地址所存儲的數據都已被主機系統1000刪除。然而,在一些例子中,雖然存儲器管理單元204無法找到任何已刪除邏輯區塊,但已刪除邏輯地址的大小是相同或超過一個邏輯區塊的大小。也就是說,在此例子中,已刪除邏輯地址是分散地映射于多個邏輯區塊,因此存儲器管理單元204無法找到任何已刪除邏輯區塊。在本實施例中,閃存控制器104會重新映射邏輯地址與邏輯區塊的映射關系,以將已刪除邏輯地址重新映射為同一個邏輯區塊。由此,存儲器管理單元204就能夠執行如第一實施例的區塊整理機制,以將主機系統1000實際上未使用的邏輯區塊所映射的實體區塊來作為備用區306的實體區塊。圖6為本發明第二實施例所繪示的記錄邏輯區塊與實體區塊之間的映射關系的運作示意圖。圖6所示的映射運作本質上是相同于圖;3B的映射運作,以下僅描述圖6與圖;3B的差異處。在圖6中第一轉換層240包括邏輯地址-邏輯區塊映射表602,并且邏輯地址-邏輯區塊映射表602是用以取代第一實施例的運算單元242來記錄邏輯地址與邏輯區塊的映射關系。詳細來說,由于在本實施例中邏輯地址與邏輯區塊的映射關系會被重新映射,因此重新映射后的邏輯地址與邏輯區塊的映射關系可能無法簡單以運算器來計算。因此,在本發明實施例中,第一轉換層240包括邏輯地址-邏輯區塊映射表602,并且存儲器管理單元204會更新邏輯地址-邏輯區塊映射表602來記錄重新映射的結果。圖7A與圖7B為本發明第二實施例所繪示的重新映射邏輯地址與更改壞邏輯區塊的映射關系的區塊整理實施例。請參照圖7A,在實施例中,邏輯地址360-(0)360-⑵是映射邏輯區塊350-(0),邏輯地址360-(3)360-(5)是映射邏輯區塊350-(1),且邏輯地址360-(K-2)360-(K)是映射邏輯區塊350-(0)。盡管圖7A中未繪示其他邏輯地址的映射關系,但必須了解的是,其他邏輯地址還是類似地映射邏輯區塊。另外,邏輯區塊350-(0)是映射實體區塊122-(S+1),邏輯區塊350-(1)是映射實體區塊122-(S+2),且邏輯區塊350-(H)是映射實體區塊122-(D)。同樣的,盡管在圖7B中未繪示其他邏輯區塊的映射關系,但必須了解的是,其他邏輯區塊還是類似地映射實體區塊。此外,在本實施例中,是以3個邏輯地址是映射1個邏輯區塊來作說明,然而,本發明不限于此,1個邏輯區塊所映射的邏輯地址的數目可以是任意數目。在此實施例中,假設主機系統1000已刪除存儲于邏輯地址360-(0)、邏輯地址360-(1)與邏輯地址360-)的數據。此時,倘若實體區塊122_(D+1)已成為壞實體區塊而無法再存儲數據,且取代區308無可用的實體區塊可取代實體區塊122-(D+1)時,如圖7B所示,存儲器管理單元204會依據所接收的刪除記錄識別出邏輯地址360-(0)、邏輯地址360-(1)與邏輯地址360-(4)為已刪除邏輯地址。特別是,存儲器管理單元204會判斷邏輯地址360-(0)、邏輯地址360-(1)與邏輯地址360-(4)的大小是相同于1個邏輯區塊,并且執行重新映射。例如,存儲器管理單元204會邏輯地址360-(0)、邏輯地址360-(1)與邏輯地址360-(4)重新映射至邏輯區塊350-(0),并且將邏輯地址360-(、邏輯地址360-C3)與邏輯地址360-(重新映射至邏輯區塊350-(1)。基此,邏輯區塊350-(0)內的所有邏輯地址皆為已刪除邏輯地址,所以存儲器管理單元204會將邏輯地址360-(0)、邏輯地址360-(1)與邏輯地址360-(4)標示壞邏輯地址。同時,存儲器管理單元204會將邏輯區塊350-(0)識別為已刪除邏輯區塊,并且將其標示壞邏輯區塊。此外,類似第一實施例,存儲器管理單元204會在邏輯區塊-實體區塊映射表沈0中將此已刪除邏輯區塊(即,邏輯區塊350-(0))所映射的實體區塊(即,實體區塊122-(S+1))關聯為備用區。也就是說,備用區306的實體區塊的數目仍會被維持,且存儲器管理單元204能夠完成以上述輪替方式所進行的數據寫入運作,由此,可有效地延長閃存存儲裝置100的壽命。圖8為本發明第二實施例所繪示的區塊管理方法的流程圖。請參照圖8,當發生實體區塊損壞時,首先,在步驟S801中閃存控制器104的存儲器管理單元204會判斷取代區308中是否存有正常的實體區塊。倘若取代區308中存有正常的實體區塊時,則在步驟S803中存儲器管理單元204會以取代區308中正常的實體區塊來取代已損壞的實體區塊并更新邏輯區塊-實體區塊映射表沈0。在步驟S803之后,圖8的流程會被結束。倘若在步驟S801中判斷取代區308中無存有正常的實體區塊時,則在步驟S805中存儲器管理單元204會依據來自于主機系統1000的刪除記錄判斷是否邏輯區塊之中存有已被刪除邏輯區塊。倘若邏輯區塊之中存有已被刪除邏輯區塊時,則在步驟S807中將已被刪除邏輯區塊標記為壞邏輯區塊,并且在步驟S809中將已被刪除邏輯區塊所映射的實體區塊邏輯地關聯為備用區306,并且更新邏輯區塊-實體區塊映射表沈0,其中已被刪除邏輯區塊將不再映射任何實體區塊。在步驟S809之后,圖8的流程會被結束。倘若在步驟S805中判斷邏輯區塊之中無存有已被刪除邏輯區塊時,則在步驟S811中存儲器管理單元204會依據來自于主機系統1000的刪除記錄判斷已刪除邏輯地址的大小是否等于或超過1個邏輯區塊的大小。倘若已刪除邏輯地址的大小等于或超過1個邏輯區塊的大小時,則在步驟S813中存儲器管理單元204會將足以構成1個已刪除邏輯區塊的已刪除邏輯地址重新映射至同一個邏輯區塊(如圖7B的邏輯區塊350-(0)),并且執行步驟S805。倘若在步驟S811中判斷已刪除邏輯地址的大小非等于或超過1個邏輯區塊的大小(即,已刪除邏輯地址不足以構成1個已刪除邏輯區塊)時,則在步驟S815中存儲器管理單元204會向主機系統1000宣告閃存存儲裝置100為寫入保護狀態,并且圖8的流程會被結束。綜上所述,當發生備用區的實體區塊的數目不足以完成數據寫入運作時,上述實施例的區塊管理方法會依據主機系統所傳送的刪除記錄搜尋那個邏輯區塊中的所有數據已被主機系統刪除,并且將所搜尋到的邏輯區塊所映射的實體區塊作為備用區的實體區塊,由此,有效地延長閃存存儲裝置的壽命。此外,在無存有已被主機系統刪除所有數據的邏輯區塊時,上述實施例的區塊管理方法會重新映射邏輯地址與邏輯區塊的映射關系,由此整理出所有數據都已被主機系統刪除的邏輯區塊,并且將此邏輯區塊所映射的實體區塊作為備用區的實體區塊,由此,有效地延長閃存存儲裝置的壽命。最后應說明的是以上實施例僅用以說明本發明的技術方案而非對其進行限制,盡管參照較佳實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對本發明的技術方案進行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術方案脫離本發明技術方案的精神和范圍。權利要求1.一種區塊管理方法,用于管理一閃存晶片的多個實體區塊,所述區塊管理方法包括配置多個邏輯地址;將所述多個邏輯地址映射至多個邏輯區塊,并且將所述多個邏輯區塊映射至所述多個實體區塊;配置一邏輯區塊-實體區塊映射表以記錄所述多個邏輯區塊與所述多個實體區塊之間的一映射關系;從一主機系統中獲取至少一刪除記錄,其中所述至少一刪除記錄包括關于所述多個邏輯地址之中多個已刪除邏輯地址的信息,并且存儲于所述多個已刪除邏輯地址中的數據已于所述主機系統中被刪除;依據所述至少一刪除記錄獲取所述多個邏輯區塊之中的一已刪除邏輯區塊,其中存儲于對應所述已刪除邏輯區塊的所述多個邏輯地址中的數據已于所述主機系統中被刪除;以及將映射至所述已刪除邏輯區塊的每一所述多個邏輯地址標示為一壞邏輯地址,其中所述主機系統無法存取所述壞邏輯地址。2.根據權利要求1所述的區塊管理方法,還包括將所述多個實體區塊至少分組為一數據區與一備用區,其中每一所述多個邏輯區塊映射所述數據區的實體區塊的其中之一;以及將所述已刪除邏輯區塊所映射的實體區塊分組為所述備用區。3.根據權利要求2所述的區塊管理方法,還包括更新所述邏輯區塊-實體區塊映射表,其中在所述邏輯區塊-實體區塊映射表中所述已刪除邏輯區塊無映射任何實體區塊。4.根據權利要求1所述的區塊管理方法,還包括依據所述至少一刪除信息將所述多個邏輯地址重新映射至所述多個邏輯區塊,其中所述多個已刪除邏輯地址之中的至少一部份已刪除邏輯地址會被重新映射至所述多個邏輯區塊的其中之一,其中存儲于重新映射所述至少一部份已刪除邏輯地址的邏輯區塊中的數據已被所述主機系統刪除;以及依據所述重新映射更新記錄在所述邏輯區塊-實體區塊映射表中的所述映射關系。5.根據權利要求4所述的區塊管理方法,還包括將所述多個實體區塊至少分組為一數據區與一備用區,其中每一所述多個邏輯區塊映射所述數據區的實體區塊的其中之一;以及將所述已刪除邏輯區塊所映射的實體區塊分組為所述備用區。6.根據權利要求5所述的區塊管理方法,還包括更新所述邏輯區塊-實體區塊映射表,其中在所述邏輯區塊-實體區塊映射表中所述已刪除邏輯區塊無映射任何實體區塊。7.根據權利要求1所述的區塊管理方法,其中從所述主機系統中獲取所述至少一刪除記錄的步驟包括從所述主機系統接收至少一整理指令;以及識別所述至少一整理指令以獲取所述至少一刪除記錄。8.—種閃存控制器,用于管理一閃存晶片的多個實體區塊,所述閃存控制器包括一微處理器單元;一閃存接口單元,電性連接至所述微處理器單元,用以電性連接至所述閃存晶片;一主機接口單元,電性連接至所述微處理器單元,用以連接一主機系統;以及一存儲器管理單元,電性連接至所述微處理器單元,用以配置多個邏輯地址,其中所述存儲器管理單元將所述多個邏輯地址映射至多個邏輯區塊,將所述多個邏輯區塊映射至所述多個實體區塊,并且配置一邏輯區塊-實體區塊映射表以記錄所述多個邏輯區塊與所述多個實體區塊之間的一映射關系,其中所述存儲器管理單元通過所述主機接口單元從所述主機系統中獲取至少一刪除記錄,其中所述至少一刪除記錄包括關于所述多個邏輯地址之中多個已刪除邏輯地址的信息,并且存儲于所述多個已刪除邏輯地址中的數據已于所述主機系統中被刪除,其中所述存儲器管理單元依據所述至少一刪除記錄獲取所述多個邏輯區塊之中的一已刪除邏輯區塊并且將映射至所述已刪除邏輯區塊的每一所述多個邏輯地址標示為一壞邏輯地址,其中存儲于對應所述已刪除邏輯區塊的所述多個邏輯地址中的數據已于所述主機系統中被刪除,并且所述主機系統無法存取所述壞邏輯地址。9.根據權利要求8所述的閃存控制器,其中所述存儲器管理單元將所述多個實體區塊至少分組為一數據區與一備用區,其中每一所述多個邏輯區塊映射所述數據區的實體區塊的其中之一,其中所述存儲器管理單元將所述已刪除邏輯區塊所映射的實體區塊分組為所述備用區。10.根據權利要求9所述的閃存控制器,其中所述存儲器管理單元更新所述邏輯區塊-實體區塊映射表,并且在所述邏輯區塊-實體區塊映射表中所述已刪除邏輯區塊無映射任何實體區塊。11.根據權利要求8所述的閃存控制器,其中所述存儲器管理單元還依據所述至少一刪除信息將所述多個邏輯地址重新映射至所述多個邏輯區塊,并且依據所述重新映射更新記錄在所述邏輯區塊-實體區塊映射表中的所述映射關系,其中所述多個已刪除邏輯地址之中的至少一部份已刪除邏輯地址會被重新映射至所述多個邏輯區塊的其中之一,并且存儲于重新映射所述至少一部份已刪除邏輯地址的邏輯區塊中的數據已被所述主機系統刪除。12.根據權利要求11所述的閃存控制器,其中所述存儲器管理單元將所述多個實體區塊至少分組為一數據區與一備用區,其中每一所述多個邏輯區塊映射所述數據區的實體區塊的其中之一,其中所述存儲器管理單元將所述已刪除邏輯區塊所映射的實體區塊分組為所述備用區。13.根據權利要求12所述的閃存控制器,其中所述存儲器管理單元更新所述邏輯區塊-實體區塊映射表,其中在所述邏輯區塊-實體區塊映射表中所述已刪除邏輯區塊無映射任何實體區塊。14.根據權利要求8所述的閃存控制器,其中所述主機接口單元從所述主機系統接收至少一整理指令,并且所述存儲器管理單元識別所述至少一整理指令以獲取所述至少一刪除記錄。15.一種閃存存儲系統,包括一閃存晶片,具有多個實體區塊;一連接器,用以電性連接一主機系統;以及一閃存控制器,電性連接至所述閃存晶片與所述連接器,用以配置多個邏輯地址,其中所述閃存控制器將所述多個邏輯地址映射至多個邏輯區塊,將所述多個邏輯區塊映射至所述多個實體區塊,并且配置一邏輯區塊-實體區塊映射表以記錄所述多個邏輯區塊與所述多個實體區塊之間的一映射關系,其中所述閃存控制器通過所述連接器從所述主機系統中獲取至少一刪除記錄,其中所述至少一刪除記錄包括關于所述多個邏輯地址之中多個已刪除邏輯地址的信息,并且存儲于所述多個已刪除邏輯地址中的數據已于所述主機系統中被刪除,其中所述閃存控制器依據所述至少一刪除記錄獲取所述多個邏輯區塊之中的一已刪除邏輯區塊并且將映射至所述已刪除邏輯區塊的每一所述多個邏輯地址標示為一壞邏輯地址,其中存儲于對應所述已刪除邏輯區塊的所述多個邏輯地址中的數據已于所述主機系統中被刪除,并且所述主機系統無法存取所述壞邏輯地址。16.根據權利要求15所述的閃存存儲系統,其中所述閃存控制器將所述多個實體區塊至少分組為一數據區與一備用區,其中每一所述多個邏輯區塊映射所述數據區的實體區塊的其中之一,其中所述閃存控制器將所述已刪除邏輯區塊所映射的實體區塊分組為所述備用區。17.根據權利要求16所述的閃存存儲系統,其中所述閃存控制器更新所述邏輯區塊-實體區塊映射表,其中在所述邏輯區塊-實體區塊映射表中所述已刪除邏輯區塊無映射任何實體區塊。18.—種區塊管理方法,用于管理一閃存晶片的多個實體區塊,所述區塊管理方法包括配置多個邏輯地址;將所述多個實體區塊至少分組為一數據區與一備用區,其中所述備用區中的實體區塊是用以于執行一主機寫入指令時替換所述數據區中的實體區塊,且每一所述多個邏輯地址映射至所述數據區的實體區塊的其中之一;以及將映射至所述數據區的至少一邏輯地址標示為至少一壞邏輯地址,并將所述至少一壞邏輯地址所映射至的實體區塊關聯為所述備用區。19.根據權利要求18所述的區塊管理方法,還包括從所述主機系統中獲取至少一刪除記錄,其中所述至少一刪除記錄包括關于所述多個邏輯地址之中至少一個已刪除邏輯地址的信息,并且存儲于所述多個已刪除邏輯地址中的數據已于所述主機系統中被刪除。20.根據權利要求19所述的區塊管理方法,其中被標示為所述至少一壞邏輯地址的所述至少一邏輯地址是所述至少一刪除記錄中所提供的邏輯地址。全文摘要本發明提供了一種用于閃存的區塊管理方法、控制器與存儲系統,其中區塊管理方法,用于管理閃存晶片的多個實體區塊。本方法包括配置多個邏輯地址,將這些邏輯地址映射至多個邏輯區塊,并且將這些邏輯區塊映射至上述實體區塊。此外,本方法還包括從主機系統中獲取關于多個已刪除邏輯地址的刪除記錄,其中存儲于這些已刪除邏輯地址中的數據于主機系統中被刪除。另外,本方法還包括依據此刪除記錄獲取已刪除邏輯區塊、將映射至此已刪除邏輯區塊的每一邏輯地址標示為一壞邏輯地址,并將此已刪除邏輯區塊所映射的實體區塊關聯為備用區。基此,可有效地延長閃存晶片的壽命。文檔編號G06F12/06GK102043724SQ200910204139公開日2011年5月4日申請日期2009年10月15日優先權日2009年10月15日發明者葉志剛,謝承騏申請人:群聯電子股份有限公司