塊具有多個邏輯頁面并且此些邏輯頁面是依序地映射對應的數(shù)據(jù)實體區(qū)塊的實體頁面。例如,在存儲器儲存裝置100被格式化時,邏輯區(qū)塊610(0)?610(H)會初始地映射數(shù)據(jù)區(qū)502的實體區(qū)塊410 (O)?410 (F-1)。
[0120]在本發(fā)明范例實施例中,存儲器管理電路202會維護邏輯區(qū)塊-實體區(qū)塊映射表(logical block-physical block mapping table)以記錄邏輯區(qū)塊610 (0)?610 (H)與數(shù)據(jù)區(qū)502的實體區(qū)塊之間的映射關系。此外,由于主機系統(tǒng)1000是以邏輯存取地址(例如,扇區(qū)(Sector))為單位來存取數(shù)據(jù),當主機系統(tǒng)1000存取數(shù)據(jù)時存儲器管理電路202會將對應存儲器儲存裝置100的邏輯存取地址710 (0)?710 (K)轉換成對應的邏輯頁面。例如,當主機系統(tǒng)1000欲存取某一邏輯存取地址時,存儲器管理電路202會將主機系統(tǒng)1000所存取的邏輯存取地址轉換為以對應的邏輯區(qū)塊與邏輯頁面所構成的多維地址,并且通過邏輯區(qū)塊-實體區(qū)塊映射表于對應的實體頁面中存取數(shù)據(jù)。
[0121]在本范例實施例中,在存儲器儲存裝置100被電源啟動(power on)之后,存儲器管理電路202會為閑置區(qū)504的每一實體區(qū)塊配置一抹除標記。
[0122]例如,當存儲器儲存裝置100被使能時,存儲器管理電路202會執(zhí)行相關的初始化作業(yè)以使存儲器儲存裝置100進入可接收與處理來自于主機系統(tǒng)1000的指令的待命狀態(tài)。在執(zhí)行此初始化作業(yè)的期間,存儲器管理電路202會建立一閑置實體區(qū)塊抹除表(如圖5所示的閑置實體區(qū)塊抹除表600)以記錄對應閑置區(qū)504的每一實體區(qū)塊的抹除標記并且初始地將對應閑置區(qū)504的實體區(qū)塊的所有抹除標記設定為未抹除狀態(tài)。
[0123]特別是,在執(zhí)行此初始化作業(yè)的期間,存儲器管理電路202不會對閑置區(qū)504的實體區(qū)塊執(zhí)行抹除指令,由此縮短存儲器儲存裝置100進入可接收與處理來自于主機系統(tǒng)1000的指令的待命狀態(tài)所需的時間。
[0124]例如,在存儲器儲存裝置100進入可接收與處理來自于主機系統(tǒng)1000的指令的待命狀態(tài)之后,存儲器管理電路202既可根據(jù)主機系統(tǒng)1000的指令來存取可復寫式非易失性記體模組106。特別是,當從提取閑置區(qū)504的實體區(qū)塊來寫入數(shù)據(jù)時,存儲器管理電路202會判斷對應所提取的實體區(qū)塊的抹除標記是否被設定為未抹除狀態(tài)。倘若對應所提取的實體區(qū)塊的抹除標記被設定為未抹除狀態(tài)時,存儲器管理電路202會在寫入數(shù)據(jù)至此實體區(qū)塊之前對此實體區(qū)塊執(zhí)行抹除指令并且將對應此實體區(qū)塊的抹除標記重新設定為已抹除狀態(tài)。
[0125]例如,在閑置實體區(qū)塊抹除表600的抹除標記中,“O”表示未抹除狀態(tài)并且“I”表示已抹除狀態(tài),但本發(fā)明不限于此。此外,在本范例實施例中,存儲器管理電路202僅會將閑置實體區(qū)塊抹除表600儲存在緩沖存儲器254中并且于存儲器儲存裝置100運作期間持續(xù)地更新此些抹除標記。也就是說,每當存儲器儲存裝置100電源啟動時,閑置實體區(qū)塊抹除表600會重新被建立并且在存儲器儲存裝置100的運作期間存儲器管理電路202會根據(jù)此些抹除標記來決定是否對閑置區(qū)504的實體區(qū)塊執(zhí)行抹除指令?;?,本范例實施例的存儲器儲存裝置100及其存儲器控制器104可有效地縮短電源啟動時進入待命狀態(tài)所需的時間,同時亦可確保不會發(fā)生對因異常斷電而存有不完整數(shù)據(jù)的實體區(qū)塊,進行重復編程的錯誤。
[0126]圖6是根據(jù)第一范例實施例所示的存儲器抹除方法的流程圖。
[0127]請參照圖6,在步驟S601中,存儲器管理電路202會將可復寫式非易失性存儲器模組106的實體區(qū)塊邏輯地分組為數(shù)據(jù)區(qū)502、閑置區(qū)504、系統(tǒng)區(qū)506與取代區(qū)508。必須了解的是,盡管在本發(fā)明范例實施例中,實體區(qū)塊會被邏輯地分組為數(shù)據(jù)區(qū)502、閑置區(qū)504、系統(tǒng)區(qū)506與取代區(qū)508,然而,在本發(fā)明另一范例實例中,實體區(qū)塊可僅被分組為數(shù)據(jù)區(qū)502與閑置區(qū)504。
[0128]在步驟S603中,在存儲器儲存裝置100被電源啟動之后存儲器管理電路202會建立對應閑置區(qū)504的每一實體區(qū)塊的抹除標記并且初始地將每一抹除標記設定為未抹除狀態(tài)。
[0129]之后,在步驟S605中,存儲器管理電路202會判斷是否需要從閑置區(qū)504中提取實體區(qū)塊來執(zhí)行來自于主機系統(tǒng)1000的指令。
[0130]倘若無需要從閑置區(qū)504中提取實體區(qū)塊時,則在步驟S607中,存儲器管理電路202會執(zhí)行主機系統(tǒng)1000的指令。并且,之后,步驟S605會被執(zhí)行。
[0131]倘若需要從閑置區(qū)504中提取實體區(qū)塊時,在步驟S609中,存儲器管理電路202會從閑置區(qū)504中提取實體區(qū)塊(以下稱為第一實體區(qū)塊)并且判斷第一實體區(qū)塊的抹除標記是否被設定為未抹除狀態(tài)。
[0132]倘若第一實體區(qū)塊的抹除標記未被設定為未抹除狀態(tài)時,則步驟S607會被執(zhí)行。倘若第一實體區(qū)塊的抹除標記被設定為未抹除狀態(tài)時,則在步驟S611中,存儲器管理電路202會對第一實體區(qū)塊執(zhí)行抹除指令并且將第一實體區(qū)塊的抹除標記重新設定為已抹除狀態(tài)。之后,步驟S607會被執(zhí)行。
[0133][第二范例實施例]
[0134]第二范例實施例與第一范例實施例的差異之處僅在于存儲器控制器104會在主機系統(tǒng)1000持續(xù)未下達任何指令時,開始對閑置區(qū)504的實體區(qū)塊執(zhí)行抹除指令。基此,可更有效地縮短執(zhí)行寫入指令的時間并且提升存儲器儲存裝置1000的效能。以下將利用第一范例實施例的圖示,僅對第二范例實施例與第一范例實施例的差異之處進行描述。
[0135]在第二范例實施例中,當存儲器儲存裝置100進入待命狀態(tài)并且持續(xù)未接收到來自主機系統(tǒng)1000的指令時,存儲器管理電路202會開始對閑置區(qū)504的實體區(qū)塊執(zhí)行抹除指令并且將對應已抹除實體區(qū)塊的抹除標記重新設定為已抹除狀態(tài)。
[0136]例如,存儲器管理電路202包括一計時器(未示出)并且每當存儲器儲存裝置100進入待命狀態(tài)時,此計時器會開始計時。倘若在計時器到達預定時間(例如,3秒鐘)之后,存儲器儲存裝置100仍未接收到任何來自于主機系統(tǒng)1000的指令時,存儲器管理電路202會從閑置區(qū)504中選擇實體區(qū)塊來進行抹除運作,直到接收到來自于主機系統(tǒng)1000的指令為止。也就是說,存儲器管理電路202會利用無需處理來自于主機系統(tǒng)1000的指令的期間,對閑置區(qū)504的實體區(qū)塊執(zhí)行抹除指令并且將對應已抹除實體區(qū)塊的抹除標記重新設定為已抹除狀態(tài)。倘若在計時器到達預定時間之前或者在對閑置區(qū)504的實體區(qū)塊執(zhí)行抹除指令期間存儲器儲存裝置100接收到來自于主機系統(tǒng)1000的指令時,存儲器管理電路202會執(zhí)行此指令并且重置計時器(例如,將計時器歸零)。
[0137]圖7是根據(jù)第二范例實施例所示的存儲器抹除方法的流程圖。
[0138]請參照圖7,在步驟S701中,存儲器管理電路202會將可復寫式非易失性存儲器模組106的實體區(qū)塊邏輯地分組為數(shù)據(jù)區(qū)502、閑置區(qū)504、系統(tǒng)區(qū)506與取代區(qū)508。必須了解的是,盡管在本發(fā)明范例實施例中,實體區(qū)塊會被邏輯地分組為數(shù)據(jù)區(qū)502、閑置區(qū)504、系統(tǒng)區(qū)506與取代區(qū)508,然而,在本發(fā)明另一范例實例中,實體區(qū)塊可僅被分組為數(shù)據(jù)區(qū)502與閑置區(qū)504。
[0139]在步驟S703中,在存儲器儲存裝置100被電源啟動之后存儲器管理電路202會建立對應閑置區(qū)504的每一實體區(qū)塊的抹除標記并且初始地將每一抹除標記設定為未抹除狀態(tài)。
[0140]之后,在步驟S705中,存儲器管理電路202會判斷是否在預定時間期間未接收到來自于主機系統(tǒng)1000的任何指令。
[0141]倘若在預定時間期間未接收到來自于主機系統(tǒng)1000的任何指令時,則在步驟S707中,存儲器管理電路202會對閑置區(qū)504中抹除標記為未抹除狀態(tài)的部分實體區(qū)塊(以下稱為第二實體區(qū)塊)執(zhí)行抹除指令并且將第二實體區(qū)塊的抹除標記重新設定為已抹除狀態(tài)。
[0142]之后,在步驟S709中,存儲器管理電路202會判斷是否接收到來自于主機系統(tǒng)1000的任何指令。
[0143]倘若未接收到來自于主機系統(tǒng)1000的任何指令時,則步驟S707會被執(zhí)行。倘若接收到來自于主機系統(tǒng)1000的指令時,在步驟S711中,存儲器管理電路202會判斷是否需要從閑置區(qū)504中提取實體區(qū)塊來執(zhí)行此指令。
[0144]倘若無需要從閑置區(qū)504中提取實體區(qū)塊時,則在步驟S713中,存儲器管理電路202會執(zhí)行主機系統(tǒng)1000的指令。并且,之后,步驟S707會被執(zhí)行。倘若需要從閑置區(qū)504中提取實體區(qū)塊時,在步驟S715中,存儲器管理電路202會從閑置區(qū)504中提取實體區(qū)塊(以下稱為第一實體區(qū)塊)并且判斷第一實體區(qū)塊的抹除標記是否被設定為未抹除狀態(tài)。
[0145]倘若第一實體區(qū)塊的抹除標記未被設定為未抹除狀態(tài)時,則步驟S713會被執(zhí)行。倘若第一實體區(qū)塊的抹除標記被設定為未抹除狀態(tài)時,則在步驟S717中,存儲器管理電路202會對第一實體區(qū)塊執(zhí)行抹除指令并且將第一實體區(qū)塊的抹除標記重新設定為已抹除狀態(tài)。之后,步驟S713會被執(zhí)行。
[0146]倘若在預定時間期間接收到來自于主機系統(tǒng)1000的任何指令時,則步驟S711會被執(zhí)行。
[0147][第三范例實施例]
[0148]第三范例實施例的硬件架構