指令執行方法、存儲器控制器與存儲器儲存裝置的製作方法
2023-06-19 15:35:41 1
專利名稱::指令執行方法、存儲器控制器與存儲器儲存裝置的製作方法
技術領域:
:本發明涉及一種指令執行方法,尤其涉及一種在存儲器儲存裝置中執行來自於主機系統的多個寫入指令的指令執行方法及使用此方法的存儲器控制器與存儲器儲存裝置。
背景技術:
:數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非易失性存儲器(rewritablenon-volatilememory)具有數據非易失性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記本式計算機。固態硬碟就是一種以閃速存儲器模組作為儲存媒體的儲存裝置。因此,近年閃速存儲器產業成為電子產業中相當熱門的一環。可複寫式非易失性存儲器具有多個實體區塊(physicalblock),且每一實體區塊具有多個實體頁面(physicalpage),其中在實體區塊中寫入數據時必須依據實體頁面的順序依序地寫入數據。此外,已被寫入數據的實體頁面必需先被抹除後才能再次用於寫入數據。特別是,實體區塊為抹除的最小單位,並且實體頁面為編程(亦稱寫入)的最小單元。因此,一般來說,在可複寫式非易失性存儲器模組的管理中,實體區塊至少會被區分為數據區(dataarea)與閒置區(freearea)。數據區的實體區塊(亦稱為數據實體區塊)是用以儲存主機系統所儲存的數據。具體來說,存儲器管理電路會將主機系統所存取的邏輯存取地址轉換為邏輯區塊的邏輯頁面並且將邏輯區塊的邏輯頁面映射至數據區的實體區塊的實體頁面。也就是說,在閃速存儲器模組的管理中,數據區的實體區塊是被視為已被使用的實體區塊(例如,已儲存主機系統所寫入的數據)。例如,存儲器管理電路會使用邏輯區塊-實體區塊映射表來記載邏輯區塊與數據區的實體區塊之間的映射關係,其中邏輯區塊中的邏輯頁面是依序的對應所映射的實體區塊的實體頁面。閒置區的實體區塊(亦稱為閒置實體區塊)是用以輪替數據區中的實體區塊。具體來說,如上所述,已寫入數據的實體區塊必須被抹除後才可再次用於寫入數據,而閒置區的實體區塊是被設計用於寫入更新數據以替換原先映射邏輯區塊的實體區塊。基此,在閒置區中的實體區塊為空或可使用的實體區塊,即無記錄數據或標記為已沒用的無效數據。也就是說,數據區與閒置區的實體區塊的實體頁面是以輪替方式來映射邏輯區塊的邏輯頁面,以儲存主機系統所寫入的數據。例如,當主機系統欲寫入更新頁面數據的邏輯存取地址是對應儲存裝置的某一邏輯區塊的某一邏輯頁面時,儲存裝置的存儲器管理電路會從閒置區中提取一個實體區塊,並且將此更新數據寫入至所提取的實體區塊的實體頁面中。之後,當閒置區的實體區塊快耗盡時,存儲器管理電路會對此邏輯區塊執行數據合併(Merge)操作。例如,在數據合併操作中,存儲器管理電路會從閒置區中提取一個實體區塊作為新數據實體區塊,將屬於此邏輯區塊的所有最新頁面數據寫入至此新數據實體區塊中並且將此邏輯區塊重新映射至此實體區塊。為了有效地提升存取效能,一般來說,存儲器儲存裝置內會配置緩衝存儲器。例如,當從主機系統中接收到寫入指令與欲寫入的數據時,存儲器管理電路會將欲寫入的數據及其相關信息(例如,此寫入數據是屬於那個邏輯頁面)暫存於緩衝存儲器之後,即傳送告知已完成此寫入指令的確認信息給主機系統,由此縮短響應時間。之後,當緩衝存儲器已被存滿時,才將緩衝存儲器中的數據寫入至可複寫式非易失性存儲器模組中,以空出緩衝存儲器的儲存空間來儲存下一筆寫入數據。然而,在緩衝存儲器已被存滿並且閒置區的實體區塊亦快耗盡的狀況下,倘若接收到來自於主機系統的寫入指令時,存儲器管理電路需完成數據合併操作才能夠執行此寫入指令。由於執行數據合併操作需要花費相當多時間,因此,相較於執行其他存取指令,主機系統需等待相當長的時間才能從存儲器儲存裝置中接收到告知已完成此寫入指令的響應信息(responsemessage)。往往在此過程中,主機系統的使用者會誤以為存儲器儲存裝置已當機或者感覺存儲器儲存裝置很不穩定。因此,在緩衝存儲器已被存滿並且閒置區的實體區塊亦快耗盡的狀況下,如何縮短主機系統接收到響應信息的時間,是此領域技術人員欲解決的問題。
發明內容本發明提供一種指令執行方法、存儲器控制器與存儲器儲存裝置,其能夠平均在執行數據合併操作期間所同時執行的多個寫入指令的時間。本發明範例實施例提出一種指令執行方法,用於存儲器儲存裝置,其中此存儲器儲存裝置具有緩衝存儲器與可複寫式非易失性存儲器模組,可複寫式非易失性存儲器模組具有多個實體區塊,這些實體區塊被邏輯地至少被分組為數據區與閒置區,並且數據區的實體區塊被映射至多個邏輯區塊。本指令執行方法包括對這些邏輯區塊之中的第一邏輯區塊執行數據合併操作,其中在這數據合併操作中屬於第一邏輯區塊的有效數據會被複製到從閒置區的實體區塊中提取的第一實體區塊並且第一實體區塊具有多個實體頁面。本指令執行方法也包括,在執行該數據合併操作期間,從主機系統接收寫入指令與對應這寫入指令的寫入數據。本指令執行方法還包括,判斷第一實體區塊的實體頁面之中已被寫入數據的多個實體頁面的數目是否大於預設實體頁面數目。本指令執行方法還包括,當第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目非大於預設實體頁面數目時,將寫入數據暫存於該緩衝存儲器中並且在一延遲時間點傳送一響應信息給該主機系統,其中這延遲時間點是以完成將寫入數據暫存於緩衝存儲器的時間點加上虛擬延遲時間來設定並且這響應信息用以告知這寫入指令已被完成。在本發明的一實施例中,上述的指令執行方法還包括,當第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目大於預設實體頁面數目時,在完成將寫入數據暫存於緩衝存儲器的時間點傳送上述的響應信息給主機系統。在本發明的一實施例中,上述的指令執行方法還包括判斷緩衝存儲器的剩餘容量是否小於預先定義容量並且判斷屬於閒置區的實體區塊的數目是否小於預先定義數目,其中上述的判斷第一實體區塊的實體頁面之中已被寫入數據的實體頁面的該數目是否大於預設實體頁面數目的步驟是在當緩衝存儲器的剩餘容量小於預先定義容量並且屬於閒置區的實體區塊的數目小於預先定義數目時被執行。在本發明的一實施例中,上述的指令執行方法還包括,當緩衝存儲器的剩餘容量非小於預先定義容量或者屬於閒置區的實體區塊的數目非小於預先定義數目時,在完成將寫入數據暫存於緩衝存儲器的時間點傳送上述的響應信息給主機系統。在本發明的一實施例中,上述的指令執行方法還包括將上述的虛擬延遲時間設定為一固定預定值。在本發明的一實施例中,上述的指令執行方法還包括根據對應上述的數據合併操作的執行進度動態地設定上述的虛擬延遲時間。本發明範例實施例提出一種存儲器控制器,用以控制可複寫式非易失性存儲器模組。本存儲器控制器包括主機接口、存儲器接口、存儲器管理電路與緩衝存儲器。主機接口用以電性連接至主機系統。存儲器接口電性連接至可複寫式非易失性存儲器模組,其中這可複寫式非易失性存儲器模組具有多個實體區塊。存儲器管理電路電性連接至主機接口與存儲器接口。緩衝存儲器電性連接至存儲器管理電路。存儲器管理電路用以將這些實體區塊邏輯地至少分組為數據區與閒置區,並且配置多個邏輯區塊以映射數據區的實體區塊。此外,存儲器管理電路對這些邏輯區塊之中的第一邏輯區塊執行數據合併操作,並且在這數據合併操作中屬於第一邏輯區塊的有效數據會被複製到從閒置區的實體區塊中提取的第一實體區塊,其中第一實體區塊具有多個實體頁面。另外,在執行該數據合併操作期間,存儲器管理電路會從主機系統接收寫入指令與對應這寫入指令的寫入數據。此外,存儲器管理電路會判斷第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目是否大於預設實體頁面數目。當第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目非大於預設實體頁面數目時,存儲器管理電路會將這寫入數據暫存於緩衝存儲器中並且在一延遲時間點傳送響應信息給主機系統,其中這延遲時間點是以完成將這寫入數據暫存於該緩衝存儲器的時間點加上一虛擬延遲時間來設定並且這響應信息用以告知寫入指令已被完成。在本發明的一實施例中,其中當第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目大於預設實體頁面數目時,存儲器管理電路在完成將這寫入數據暫存於緩衝存儲器的該時間點傳送上述的響應信息給主機系統。在本發明的一實施例中,上述的存儲器管理電路還用以判斷緩衝存儲器的剩餘容量是否小於預先定義容量並且判斷屬於閒置區的實體區塊的數目是否小於預先定義數目,其中僅當緩衝存儲器的剩餘容量小於預先定義容量並且屬於閒置區的實體區塊的數目小於預先定義數目時,上述的存儲器管理電路才判斷第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目是否大於預設實體頁面數目。在本發明的一實施例中,當緩衝存儲器的剩餘容量非小於預先定義容量或者屬於閒置區的實體區塊的數目非小於預先定義數目時,存儲器管理電路在完成將這寫入數據暫存於緩衝存儲器的該時間點傳送上述的響應信息給主機系統。在本發明的一實施例中,上述的虛擬延遲時間為一固定預定值。在本發明的一實施例中,上述的存儲器管理電路根據對應上述的數據合併操作的執行進度動態地設定上述的虛擬延遲時間。本發明範例實施例提出一種存儲器儲存裝置,其包括連接器、可複寫式非易失性存儲器模組與存儲器控制器。連接器用以電性連接至主機系統。可複寫式非易失性存儲器模組具有多個實體區塊。存儲器控制器電性連接至可複寫式非易失性存儲器模組與連接器。存儲器控制器用以將這些實體區塊邏輯地至少分組為數據區與閒置區,並且配置多個邏輯區塊以映射數據區的實體區塊。此外,存儲器控制器對這些邏輯區塊之中的第一邏輯區塊執行數據合併操作,並且在這數據合併操作中屬於第一邏輯區塊的有效數據會被複製到從閒置區的實體區塊中提取的第一實體區塊,其中第一實體區塊具有多個實體頁面。另夕卜,在執行該數據合併操作期間,存儲器控制器會從主機系統接收寫入指令與對應這寫入指令的寫入數據。此外,存儲器控制器會判斷第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目是否大於預設實體頁面數目。當第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目非大於預設實體頁面數目時,存儲器控制器會將這寫入數據暫存於緩衝存儲器中並且在一延遲時間點傳送響應信息給主機系統,其中這延遲時間點是以完成將這寫入數據暫存於該緩衝存儲器的時間點加上一虛擬延遲時間來設定並且這響應信息用以告知寫入指令已被完成。在本發明的一實施例中,當第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目大於預設實體頁面數目時,存儲器控制器在完成將這寫入數據暫存於緩衝存儲器的該時間點傳送上述的響應信息給主機系統。·在本發明的一實施例中,存儲器控制器還用以判斷緩衝存儲器的剩餘容量是否小於預先定義容量並且判斷屬於閒置區的實體區塊的數目是否小於預先定義數目,其中僅當緩衝存儲器的剩餘容量小於預先定義容量並且屬於閒置區的實體區塊的數目小於預先定義數目時,上述的存儲器控制器才判斷第一實體區塊的實體頁面之中已被寫入數據的實體頁面的數目是否大於預設實體頁面數目。在本發明的一實施例中,當緩衝存儲器的剩餘容量非小於預先定義容量或者屬於閒置區的實體區塊的數目非小於預先定義數目時,存儲器控制器在完成將這寫入數據暫存於緩衝存儲器的該時間點傳送上述的響應信息給主機系統。在本發明的一實施例中,上述的存儲器控制器根據對應上述的數據合併操作的執行進度動態地設定上述的虛擬延遲時間。本發明範例實施例提出一種指令執行方法,用於存儲器儲存裝置,其中這存儲器儲存裝置具有緩衝存儲器與可複寫式非易失性存儲器模組,這可複寫式非易失性存儲器模組具有多個實體區塊,這些實體區塊被邏輯地至少被分組為數據區與閒置區,並且數據區的實體區塊被映射至多個邏輯區塊。本指令執行方法包括對這些邏輯區塊之中的第一邏輯區塊執行數據合併操作,其中在這數據合併操作中屬於第一邏輯區塊的有效數據會被複製到從閒置區的實體區塊中提取的第一實體區塊。本指令執行方法也包括,在執行這數據合併操作期間,從主機系統接收第一寫入指令與對應第一寫入指令的第一寫入數據並且將第一寫入數據暫存於緩衝存儲器中。本指令執行方法還包括,在第一時間點傳送第一響應信息給主機系統,其中第一時間點是以完成將第一寫入數據暫存於緩衝存儲器的時間點加上第一虛擬延遲時間來設定並且第一響應信息用以告知第一寫入指令已被完成。在本發明的一實施例中,上述的指令執行方法還包括在執行該數據合併操作期間,從主機系統接收第二寫入指令與對應第二寫入指令的第二寫入數據並且將第二寫入數據暫存於該緩衝存儲器中。上述的指令執行方法還包括在第二時間點傳送第二響應信息給主機系統,其中第二時間點是以完成將第二寫入數據暫存於緩衝存儲器的時間點加上第二虛擬延遲時間來設定並且第二響應信息用以告知第二寫入指令已被完成。上述的指令執行方法還包括在執行數據合併操作期間,從主機系統接收第三寫入指令與對應第三寫入指令的第三寫入數據並且將第三寫入數據暫存於緩衝存儲器中。上述的指令執行方法還包括在第三時間點傳送第三響應信息給主機系統,其中第三時間點是以完成將第三寫入數據暫存於緩衝存儲器的時間點加上第三虛擬延遲時間來設定並且第三響應信息用以告知第三寫入指令已被完成。在本發明的一實施例中,上述的指令執行方法還包括,在執行數據合併操作期間,從主機系統接收第四寫入指令與對應第四寫入指令的第四寫入數據並且將第四寫入數據暫存於緩衝存儲器中。上述的指令執行方法還包括在第四時間點傳送第四響應信息給主機系統,其中第四時間點是在完成將第四寫入數據暫存於緩衝存儲器並且完成數據合併操作之後,其中第四響應信息用以告知第四寫入指令已被完成。在本發明的一實施例中,上述的指令執行方法還包括將第一虛擬延遲時間、第二虛擬延遲時間與第三虛擬延遲時間設定為固定預定值。在本發明的一實施例中,上述的指令執行方法還包括根據對應數據合併操作的執行進度分別地設定第一虛擬延遲時間、第二虛擬延遲時間與第三虛擬延遲時間。在此,上述的第一實體區塊具有多個實體頁面,並且在上述的第一時間點,第一實體區塊的實體頁面之中已完成上述的數據合併操作的實體頁面的頁面數大於或等於第一頁面數門檻值。此夕卜,在第二時間點,第一實體區塊的實體頁面之中已完成上述的數據合併操作的實體頁面的頁面數大於或等於第二頁面數門檻值,並且在第三時間點,第一實體區塊的實體頁面之中已完成上述數據合併操作的實體頁面的頁面數大於或等於第三頁面數門檻值。本發明範例實施例提出一種存儲器控制器,用以控制可複寫式非易失性存儲器模組。本存儲器控制器包括主機接口、存儲器接口、存儲器管理電路與緩衝存儲器。主機接口用以電性連接至主機系統。存儲器接口電性連接至可複寫式非易失性存儲器模組,其中這可複寫式非易失性存儲器模組具有多個實體區塊。存儲器管理電路電性連接至主機接口與存儲器接口。緩衝存儲器電性連接至存儲器管理電路。存儲器管理電路用以將這些實體區塊邏輯地至少分組為數據區與閒置區,並且配置多個邏輯區塊以映射數據區的實體區塊。此外,存儲器管理電路對這些邏輯區塊之中的第一邏輯區塊執行數據合併操作,並且在數據合併操作中屬於第一邏輯區塊的有效數據會被複製到從閒置區的實體區塊中提取的第一實體區塊。另外,存儲器管理電路在執行數據合併操作期間,從主機系統接收第一寫入指令與對應第一寫入指令的第一寫入數據並且將第一寫入數據暫存於緩衝存儲器中。再者,存儲器管理電路在第一時間點傳送第一響應信息給主機系統,其中第一時間點是以完成將第一寫入數據暫存於緩衝存儲器的時間點加上第一虛擬延遲時間來設定並且第一響應信息用以告知第一寫入指令已被完成。本發明範例實施例提出一種存儲器儲存裝置,其包括連接器、可複寫式非易失性存儲器模組與存儲器控制器。連接器用以電性連接至主機系統。可複寫式非易失性存儲器模組具有多個實體區塊。存儲器控制器電性連接至可複寫式非易失性存儲器模組與連接器。存儲器控制器用以將這些實體區塊邏輯地至少分組為數據區與閒置區,並且配置多個邏輯區塊以映射數據區的實體區塊。此外,存儲器控制器對這些邏輯區塊之中的第一邏輯區塊執行數據合併操作,並且在數據合併操作中屬於第一邏輯區塊的有效數據會被複製到從閒置區的實體區塊中提取的第一實體區塊。另外,存儲器控制器在執行數據合併操作期間,從主機系統接收第一寫入指令與對應第一寫入指令的第一寫入數據並且將第一寫入數據暫存於緩衝存儲器中。再者,存儲器控制器在第一時間點傳送第一響應信息給主機系統,其中第一時間點是以完成將第一寫入數據暫存於緩衝存儲器的時間點加上第一虛擬延遲時間來設定並且第一響應信息用以告知第一寫入指令已被完成。基於上述,本發明範例實施例能夠使得在執行數據合併操作期間響應每個寫入指令的時間能夠平均,由此縮短最大的存取時間並且使得存儲器儲存裝置的存取更為順暢。為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合附圖作詳細說明如下。圖IA是根據本範例實施例所示的主機系統與存儲器儲存裝置。圖IB是根據本範例實施例所示的計算機、輸入/輸出裝置與存儲器儲存裝置的示意圖。圖IC是根據本另一範例實施例所示的主機系統與存儲器儲存裝置的示意圖。圖2是圖IA所示的存儲器儲存裝置的概要方框圖。圖3是根據本範例實施例所示的存儲器控制器的概要方框圖。圖4與圖5是根據本範例實施例所示管理可複寫式非易失性存儲器模組的實體區塊的不意圖。圖6圖8是根據本範例實施例所示的使用子實體區塊來寫入更新數據的範例。圖9是根據本範例實施例所示的使用子實體區塊與混亂實體區塊寫入數據的示意圖。圖10是根據本範例實施例所示的使用子實體區塊與混亂實體區塊寫入數據的示意圖。圖11與12是根據本範例實施例所示的執行來自於主機系統的寫入指令的流程圖與時序圖。圖13是根據本範例實施例所示的指令執行方法的流程圖。圖14是根據另一範例實施例所示的指令執行方法的流程圖。附圖標記1000:主機系統1100:計算機1102:微處理器1104:隨機存取存儲器1106:輸入/輸出裝置1108:系統總線1110:數據傳輸接口1202:滑鼠1204:鍵盤1206:顯示器1208:印表機1212:隨身碟1214:記憶卡1216:固態硬碟1310:數位相機1312SD卡1314:MMC卡·1316:記憶棒1318:CF卡1320:嵌入式儲存裝置100:存儲器儲存裝置102:連接器104:存儲器控制器106:可複寫式非易失性存儲器模組202:存儲器管理電路204:主機接口206:存儲器接口208:緩衝存儲器254:電源管理電路256:錯誤檢查與校正電路502:數據區504:閒置區506:系統區508:取代區410(0)410(N):實體區塊610(0)610(H):邏輯區塊710(0)710(K):邏輯存取地址S1101、S1103、S1105、S1107、S1109、S1111、S1113、S1115、S1117:執行指令的步驟T1、T2、T3、T4:執行指令時間D1、D2、D3:虛擬延遲時間DM:執行數據合併操作S1301、S1303、S1305、S1307、S1309:指令執行方法的步驟S1401、S1403、S1405、S1407、S1409、S1411、S1413:指令執行方法的步驟具體實施例方式—般而言,存儲器儲存裝置(亦稱,存儲器儲存系統)包括可複寫式非易失性存儲器模組與控制器(亦稱,控制電路)。通常存儲器儲存裝置是與主機系統一起使用,以使主機系統可將數據寫入至存儲器儲存裝置或從存儲器儲存裝置中讀取數據。圖IA是根據本發明範例實施例所示的主機系統與存儲器儲存裝置。請參照圖1A,主機系統1000—般包括計算機1100與輸入/輸出(input/output,I/O)裝置1106。計算機1100包括微處理器1102、隨機存取存儲器(randomaccessmemory,RAM)1104、系統總線1108與數據傳輸接口1110。輸入/輸出裝置1106包括如圖IB的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須了解的是,圖IB所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可還包括其他裝置。在本發明實施例中,存儲器儲存裝置100是通過數據傳輸接1110與主機系統1000的其他元件電性連接。藉由微處理器1102、隨機存取存儲器1104與輸入/輸出裝置1106的運作可將數據寫入至存儲器儲存裝置100或從存儲器儲存裝置100中讀取數據。例如,存儲器儲存裝置100可以是如圖IB所示的隨身碟1212、記憶卡1214或固態硬碟(SolidStateDrive,SSD)1216等的可複寫式非易失性存儲器儲存裝置。一般而言,主機系統1000可實質地為可與存儲器儲存裝置100配合以儲存數據的任意系統。雖然在本範例實施例中,主機系統1000是以計算機系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝像機、通信裝置、音頻播放器或視頻播放器等系統。例如,在主機系統為數位相機(攝像機)1310時,可複寫式非易失性存儲器儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memorystick)1316、CF卡1318或嵌入式儲存裝置1320(如圖IC所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接於主機系統的基板上。圖2是圖IA所示的存儲器儲存裝置的概要方框圖。請參照圖2,存儲器儲存裝置100包括連接器102、存儲器控制器104與可複寫式非易失性存儲器模組106。在本範例實施例中,連接器102是相容於串行高級技術附件(SerialAdvancedTechnologyAttachment,SATA)標準。然而,必須了解的是,本發明不限於此,連接器102亦可以是符合電氣和電子工程師協會(InstituteofElectricalandElectronicEngineers,IEEE)1394標準、高速周邊零件連接接口(PeripheralComponentInterconnectExpress,PCIExpress)標準、通用串行總線(UniversalSerialBus,USB)標準、平行高級技術附件(ParallelAdvancedTechnologyAttachment,PATA)標準、安全數碼(SecureDigital,SD)接口標準、記憶棒(MemoryStick,MS)接口標準、多媒體儲存卡(MultiMediaCard,MMC)接口標準、小型閃速(CompactFlash,CF)接口標準、集成式驅動電子接口(IntegratedDeviceElectronics,IDE)標準或其他適合的標準。存儲器控制器104用以執行以硬體型式或固件型式實作的多個邏輯門或控制指令,並且根據主機系統1000的指令在可複寫式非易失性存儲器模組106中進行數據的寫入、讀取、抹除與合併等運作。可複寫式非易失性存儲器模組106是電性連接至存儲器控制器104,並且具有多個實體區塊以儲存主機系統1000所寫入的數據。在本範例實施例中,每一實體區塊分別具有多個實體頁面,其中屬於同一個實體區塊的實體頁面可被獨立地寫入且被同時地抹除。例如,每一實體區塊是由128個實體頁面所組成,並且每一實體頁面的容量為4千位元組(Kilobyte,KB)。然而,必須了解的是,本發明不限於此,每一實體區塊是可由64個實體頁面、256個實體頁面或其他任意個實體頁面所組成。更詳細來說,實體區塊為抹除的最小單位。亦即,每一實體區塊含有最小數目的一併被抹除的存儲單元。實體頁面為編程的最小單元。即,實體頁面為寫入數據的最小單元。然而,必須了解的是,在本發明另一範例實施例中,寫入數據的最小單位亦可以是實體扇區或其他大小。每一實體頁面通常包括數據位元區與冗餘位元區。數據位元區用以儲存使用者的數據,而冗餘位元區用以儲存系統的數據(例如,錯誤檢查與校正碼)。在本範例實施例中,可複寫式非易失性存儲器模組106為多階存儲單元(MultiLevelCelI,MLC)NAND閃速存儲器模組。然而,本發明不限於此,可複寫式非易失性存儲器模組106亦可是單階存儲單元(SingleLevelCell,SLC)NAND閃速存儲器模組、其他閃速存儲器模組或其他具有相同特性的存儲器模組。圖3是根據本發明範例實施例所示的存儲器控制器的概要方框圖。請參照圖3,存儲器控制器104包括存儲器管理電路202、主機接口204、存儲器接口206與緩衝存儲器208。存儲器管理電路202用以控制存儲器控制器104的整體運作。具體來說,存儲器管理電路202具有多個控制指令,並且在存儲器儲存裝置100運作時,此些控制指令會被執行以根據主機系統1000的指令在可複寫式非易失性存儲器模組106中進行數據的寫入、讀取、抹除與合併等運作。在本範例實施例中,存儲器管理電路202的控制指令是以固件型式來實作。例如,存儲器管理電路202具有微處理器單元(未示出)與只讀存儲器(未示出),並且此些控制指令是被燒錄至此只讀存儲器中。當存儲器儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行數據的寫入、讀取與抹除等運作。在本發明另一範例實施例中,存儲器管理電路202的控制指令亦可以程序碼型式儲存於可複寫式非易失性存儲器模組106的特定區域(例如,存儲器模組中專用於存放系統數據的系統區)中。此外,存儲器管理電路202具有微處理器單元(未示出)、只讀存儲器(未示出)及隨機存取存儲器(未示出)。特別是,此只讀存儲器具有驅動碼段,並且當存儲器控制器104被使能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非易失性存儲器模組106中的控制指令載入至存儲器管理電路202的隨機存取存儲器中。之後,微處理器單元會運轉此些控制指令以進行數據的寫入、讀取與抹除等運作。此外,在本發明另一範例實施例中,存儲器管理電路202的控制指令亦可以一硬體型式來實作。主機接口204是電性連接至存儲器管理電路202並且用以接收與識別主機系統1000所傳送的指令與數據。也就是說,主機系統1000所傳送的指令與數據會通過主機接口204來傳送至存儲器管理電路202。在本範例實施例中,主機接口204是相容於SATA標準。然而,必須了解的是本發明不限於此,主機接口204亦可以是相容於PATA標準、IEEE1394標準、PCIExpress標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的數據傳輸標準。存儲器接口206是電性連接至存儲器管理電路202並且用以存取可複寫式非易失性存儲器模組106。也就是說,欲寫入至可複寫式非易失性存儲器模組106的數據會經由存儲器接口206轉換為可複寫式非易失性存儲器模組106所能接受的格式。緩衝存儲器208是電性連接至存儲器管理電路202並且用以暫存來自於主機系統1000的數據與指令或來自於可複寫式非易失性存儲器模組106的數據。特別是,當從主機系統中接收到寫入指令與欲寫入的數據時,存儲器管理電路會將欲寫入的數據及其相關信息(例如,此寫入數據是屬於那個邏輯頁面)暫存於緩衝存儲器之後,即傳送告知已完成此寫入指令的確認信息給主機系統,由此縮短響應時間。直到緩衝存儲器208被存滿時,存儲器管理電路202才會將寫入數據實際地寫入至可複寫式非易失性存儲器模組106。值得一提的是,在本範例實施例中,存儲器管理電路202是以多工(multi-task)架構來設計。具體來說,由於通過主機接口204從主機系統1000接收指令與數據的所需的時間遠短於通過存儲器接口206傳送數據至可複寫式非易失性存儲器模組106與等候可複寫式非易失性存儲器模組106編程數據所需的時間,因此,通過多工來進行數據的寫入,可有效地提升存儲器儲存裝置的寫入速度。例如,在對可複寫式非易失性存儲器模組106下達寫入指令之後,存儲器管理電路202即可繼續從主機系統1000接收下一個指令,而無需等待可複寫式非易失性存儲器模組106完成此寫入指令。在本發明一範例實施例中,存儲器控制器104還包括電源管理電路254。電源管理電路254是電性連接至存儲器管理電路202並且用以控制存儲器儲存裝置100的電源。在本發明一範例實施例中,存儲器控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是電性連接至存儲器管理電路202並且用以執行錯誤檢查與校正程序以確保數據的正確性。具體來說,當存儲器管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的數據產生對應的錯誤檢查與校正碼(ErrorCheckingandCorrectingCode,ECCCode),並且存儲器管理電路202會將對應此寫入指令的數據與對應的錯誤檢查與校正碼寫入至可複寫式非易失性存儲器模組106中。之後,當存儲器管理電路202從可複寫式非易失性存儲器模組106中讀取數據時會同時讀取此數據對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的數據執行錯誤檢查與校正程序。圖4與圖5是根據本發明範例實施例所示管理可複寫式非易失性存儲器模組的實體區塊的示意圖。請參照圖4,可複寫式非易失性存儲器模組106具有實體區塊410(O)410(N),並且存儲器控制器104的存儲器管理電路202會將實體區塊410(O)410(N)邏輯地分組為數據區(dataarea)502、閒置區(freearea)504、系統區(systemarea)506與取代區(replacementarea)508。邏輯上屬於數據區502與閒置區504的實體區塊是用以儲存來自於主機系統1000的數據。具體來說,數據區502的實體區塊(亦稱為數據實體區塊)是被視為已儲存數據的實體區塊,而閒置區504的實體區塊(亦稱為閒置實體區塊)是用以寫入新數據的實體區塊。例如,當從主機系統1000接收到寫入指令與欲寫入的數據時,存儲器管理電路202會從閒置區504中提取實體區塊,並且將數據寫入至此實體區塊中。再例如,當對某一邏輯區塊執行數據合併操作時,存儲器管理電路202會從閒置區504中提取實體區塊作為對應此邏輯區塊的新數據實體區塊來寫入數據,並且替換原先映射此邏輯區塊的數據實體區塊。邏輯上屬於系統區506的實體區塊是用以記錄系統數據。例如,系統數據包括關於可複寫式非易失性存儲器模組的製造商與型號、可複寫式非易失性存儲器模組的實體區塊數、每一實體區塊的實體頁面數等。邏輯上屬於取代區508中的實體區塊是用於壞實體區塊取代程序,以取代損壞的實體區塊。具體來說,倘若取代區508中仍存有正常的實體區塊並且數據區502的實體區塊損壞時,存儲器管理電路202會從取代區508中提取正常的實體區塊來更換損壞的實體區塊。基於上述,在存儲器儲存裝置100的運作中,數據區502、閒置區504、系統區506與取代區508的實體區塊會動態地變動。例如,用以輪替儲存數據的實體區塊會變動地屬於數據區502或閒置區504。值得一提的是,在本範例實施例中,存儲器管理電路202是以每一實體區塊為單位來進行管理。然而,本發明不限於此,在另一範例實施例中,存儲器管理電路202亦可將實體區塊分組為多個實體單元,並且以實體單元為單位來進行管理。例如,每一實體單元可由同一存儲器子模組或不同存儲器子模組中的至少一個實體區塊所組成。此外,在本發明另一範例實施例中,此些實體區塊或實體單元亦可被區分為多個區域來分別地管理。請參照圖5,存儲器管理電路202會配置邏輯區塊610(0)610(H)以映射數據區502的實體區塊,其中每一邏輯區塊具有多個邏輯頁面並且此些邏輯頁面是依序地映射對應的數據實體區塊的實體頁面。例如,在存儲器儲存裝置100被格式化時,邏輯區塊610(0)610(H)會初始地映射數據區502的實體區塊410(0)410(F-I)。在本發明範例實施例中,存儲器管理電路202會維護邏輯區塊-實體區塊映射表(logicalblock-physicalblockmappingtable)以記錄邏輯區塊610(0)~610(H)與數據區502的實體區塊之間的映射關係。此外,由於主機系統1000是以邏輯存取地址(例如,扇區(Sector))為單位來存取數據,當主機系統1000存取數據時存儲器管理電路202會將對應存儲器儲存裝置100的邏輯存取地址710(O)710(K)轉換成對應的邏輯頁面。例如,當主機系統1000欲存取某一邏輯存取地址時,存儲器管理電路202會將主機系統1000所存取的邏輯存取地址轉換為以對應的邏輯區塊與邏輯頁面所構成的多維地址,並且通過邏輯區塊-實體區塊映射表於對應的實體頁面中存取數據。例如,存儲器儲存裝置100被格式化時,存儲器管理電路202會將初始地將數據區502的實體區塊映射至邏輯區塊610(O)610(H)。特別是,在初始化之後,儘管數據區502的實體區塊未實際地被寫入數據,但其仍會被視為已儲存數據的實體區塊。經過上述初始化程序之後,存儲器儲存裝置100就可接收主機系統1000的寫入指令來寫入數據。圖6圖8是根據本發明範例實施例所示的使用子實體區塊來寫入更新數據的範例。請同時參照圖6圖8,例如,在邏輯區塊610(0)是映射至實體區塊410(0)的映射狀態下,當存儲器控制器104從主機系統1000中接收到寫入指令而欲寫入數據至屬於邏輯區塊610(O)的邏輯頁面時,存儲器管理電路202會依據邏輯區塊-實體區塊映射表識別邏輯區塊610(O)目前是映射至實體區塊410(O)並且從閒置區504中提取實體區塊410(F)作為替換實體區塊來輪替實體區塊410(0)。然而,當存儲器管理電路202將新數據寫入至實體區塊410(F)的同時,存儲器管理電路202不會立刻將實體區塊410(0)中的所有有效數據搬移至實體區塊410(F)而抹除實體區塊410(O)。具體來說,存儲器管理電路202會將實體區塊410(O)中欲寫入實體頁面之前的有效數據(即,實體區塊410(O)的第O實體頁面與第I實體頁面中的數據)複製至實體區塊410(F)的第O實體頁面與第I實體頁面中(如圖6所示),並且將新數據寫入至實體區塊410(F)的第24個實體頁面中(如圖7所示)。此時,存儲器管理電路202即完成寫入的運作。因為實體區塊410(0)中的有效數據有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊410(O)中的其他有效數據搬移至實體區塊410(F)可能會造成無謂的搬移。此外,數據必須依序地寫入至實體區塊內的實體頁面,因此,存儲器管理電路202僅會先搬移欲寫入實體頁面之前的有效數據(即,儲存在實體區塊410(O)的第O實體頁面與第I實體頁面中數據),並且暫不搬移其餘有效數據(即,儲存在實體區塊410(O)的第5K實體頁面中數據)。在本範例實施例中,暫時地維持此等暫態關係的運作稱為開啟(open)母子區塊,並且原實體區塊(例如,上述實體區塊410(O))稱為母實體區塊而替換實體區塊(例如,上述與實體區塊410(F))稱為子實體區塊。在此,一個母實體區塊以及其對應的至少一子實體區塊稱為母子區塊組。之後,當需要將實體區塊410(O)與實體區塊410(F)的數據合併(merge)時,存儲器管理電路202會將實體區塊410(O)與實體區塊410(F)的數據整並至一個實體區塊,由此提升實體區塊的使用效率。在此,合併母子區塊的運作稱為數據合併操作或關閉(close)母子區塊。例如,如圖9所示,當進行關閉母子區塊時,存儲器管理電路202會將實體區塊410(0)中剩餘的有效數據(即,實體區塊410(0)的第5K實體頁面中的數據)複製至替換實體區塊410(F)的第5實體頁面第K實體頁面中,然後對實體區塊410(0)執行抹除操作並將抹除後的實體區塊410(O)關聯至閒置區504,同時,將實體區塊410(F)關聯至數據區502。也就是說,存儲器管理電路202會在邏輯區塊-實體區塊映射表中將邏輯區塊610(0)重新映射至實體區塊410(F)。此外,在本範例實施例中,存儲器管理電路202會建立閒置區實體區塊表(未示出)來記錄目前被關聯至閒置區504的實體區塊。值得一提的是,閒置區504中實體區塊的數目是有限的,基此,在存儲器儲存裝置100運作期間,已開啟的母子區塊組的數目亦會受到限制。因此,當存儲器儲存裝置100接收到來自於主機系統1000的寫入指令時,倘若閒置區504中實體區塊的數目小於預先定義數目時,存儲器管理電路202需關閉至少一組目前已開啟的母子區塊組後才可執行此寫入指令。例如,在本範例實施例中,此預先定義數目會被設定為2。但必須了解的是,預先定義數目亦可為其他適當的數目。除了上述使用子實體區塊來寫入更新數據外,在本範例實施例中,在本範例實施例中,存儲器管理電路202還會從閒置區504中提取至少一實體區塊作為混亂(Random)實體區塊並且使用混亂實體區塊來寫入更新數據。例如,倘若主機系統1000欲更新的邏輯頁面的數據已被寫入至子實體區塊時,此更新數據會被寫入至混亂實體區塊,以避免反覆執行上述數據合併操作。圖9是根據本發明範例實施例所示的使用子實體區塊與混亂實體區塊寫入數據的示意圖。請參照圖9,假設實體區塊410(S_1)被提取作為混亂實體區塊並且在圖7所示的儲存狀態下主機系統1000欲寫入更新數據至邏輯區塊610(O)的第I邏輯頁面時,存儲器管理電路202會將此更新數據寫入至混亂實體區塊中第一個空的實體頁面(例如,實體區塊410(S-I)的第O實體頁面)中。在本範例實施例中,當目前所使用的混亂實體區塊已被寫滿時,存儲器管理電路202會再從閒置區504中提取另一個實體區塊作為新的混亂實體區塊,直到閒置區504中實體區塊的數目小於預先定義數目為止。具體來說,閒置區504的實體區塊是有限的,因此,作為混亂實體區塊的實體區塊的數目亦會受到限制。當閒置區504中實體區塊的數目小於預先定義數目時,存儲器管理電路202會執行上述數據合併操作,對所儲存的數據皆為無效數據的混亂實體區塊執行抹除運作並且將已抹除的實體區塊關聯至閒置區504。由此,在執行下一個寫入指令時,存儲器管理電路202就可再從閒置區504提取空的實體區塊作為混亂實體區塊。圖10是根據本範例實施例所示的執行數據合併操作的一範例。請參照圖10,倘若在圖9所示的狀態下對邏輯區塊610(0)執行數據合併操作時,存儲器管理電路202會從閒置區504中提取一個空的實體區塊410(F+1),將屬於邏輯區塊610(0)的有效數據從母實體區塊410(O)、子實體區塊410(F)與混亂實體區塊410(S-I)中複製到實體區塊410(F+1),並且將邏輯區塊610(O)重新映射至實體區塊410(F+1)。·具體來說,在有效數據複製過程中,實體區塊410(O)的第O實體頁面中的數據會被讀取並被寫入至實體區塊410(F+1)的第O實體頁面。然後,實體區塊410(S-I)的第I實體頁面中的數據會被讀取並被寫入至實體區塊410(F+1)的第I實體頁面。之後,實體區塊410(F)的第24個實體頁面中的數據會依序地被讀取並依序地被寫入至實體區塊410(F+1)的第24個實體頁面。最後,實體區塊410(O)的第5K實體頁面中的數據會依序地被讀取並依序地被寫入至實體區塊410(F+1)的第5K個實體頁面。也就是說,在數據合併操作中,存儲器管理電路202必須持續地對可複寫式非易失性存儲器模組106下達讀取與寫入指令並且可複寫式非易失性存儲器模組106需花費相當長的時間才能完成此些讀取與寫入指令。如上所述,由於存儲器管理電路202具有多工功能,因此,在對可複寫式非易失性存儲器模組106下達指令之後,存儲器管理電路202仍可從主機系統1000中接收指令。特別是,在本範例實施例中,當對可複寫式非易失性存儲器模組106執行數據合併操作且同時從主機系統1000接收到寫入指令及對應此寫入指令的寫入數據時,存儲器管理電路202會判斷緩衝存儲器208的剩餘容量(即,可用的儲存空間)是否小於預先定義容量並且判斷閒置區504中的實體區塊的數目是否小於預先定義數目。在此,例如,預先定義容量是被設定為16KB,但本發明不限於此。倘若緩衝存儲器208的剩餘容量小於預先定義容量並且閒置區504中的實體區塊的數目小於預先定義數目時,在將對應此寫入指令的寫入數據暫存於緩衝存儲器208之後,存儲器管理電路202會等候一段虛擬延遲時間後才將指示已完成指令的響應信息傳送給主機系統1000,而不會立即將此響應信息傳送給主機系統1000。更詳細來說,由於執行數據合併操作所需的時間較長,因此,在執行數據合併操作期間,存儲器管理電路202可能會從主機系統1000中接收到多個寫入指令。倘若在接收此些寫入指令的過程中緩衝存儲器208已被寫滿時,存儲器管理電路202必須在完成數據合併操作並且將緩衝存儲器208內的部分數據寫入至可複寫式非易失性存儲器模組106之後才能繼續接收來自於主機系統1000的寫入指令及其寫入數據。也就是說,在需完成數據合併操作才能繼續執行寫入指令的情況下,相對於前面數個寫入指令,主機系統1000必須等候很長的時間才能收到對應此寫入指令響應信息。因此,在本發明範例實施例中,存儲器管理電路202會在執行此些寫入指令之後等候一段虛擬延遲時間才傳送響應信息,以致於執行每個寫入指令的時間較為平均。圖11與12是根據本範例實施例所示的執行來自於主機系統1000的寫入指令的流程圖與時序圖,其顯示在執行數據合併程序期間同時執行多個寫入指令的範例,其中緩衝存儲器208的剩餘容量小於預先定義容量且閒置區504中的實體區塊的數目小於預先定義數目。請同時參照圖11與圖12,假設緩衝存儲器208的剩餘容量僅能再存放對應3個寫入指令的寫入數據的情況下,在步驟SllOl中,存儲器管理電路202會對一個邏輯區塊(以下稱為第一邏輯區塊)開始執行數據合併操作DM(S卩,將屬於第一邏輯區塊的有效數據複製到一個實體區塊(以下稱為第一實體區塊))。在步驟S1103中,存儲器管理電路202會從主機系統1000接收到寫入指令(以下稱為第一寫入指令)與對應此寫入指令的寫入數據(以下稱為第一寫入數據)。然後,在步驟S1105中,存儲器管理電路202花費一段時間Tl執行此第一寫入指令以將第一寫入數據暫存於緩衝存儲器208中,並且在完成第一寫入指令且等候一虛擬延遲時間Dl(以下稱為第一虛擬延遲時間)後,將指示第一寫入指令已被完成的響應信息(以下稱為第一響應信息)傳送給主機系統1000。在此,傳送第一響應信息的時間點亦稱為第一時間點。之後,在步驟S1107中,存儲器管理電路202從主機系統1000接收到下一個寫入指令(以下稱為第二寫入指令)與對應此寫入指令的寫入數據(以下稱為第二寫入數據)。然後,在步驟S1109中,存儲器管理電路202花費一段時間T2執行此第二寫入指令以將第二寫入數據暫存於緩衝存儲器208中,並且在完成第二寫入指令且等候一虛擬延遲時間D2(以下稱為第二虛擬延遲時間)後,將指示第二寫入指令已被完成的響應信息(以下稱為第二響應信息)傳送給主機系統1000。在此,傳送第二響應信息的時間點亦稱為第二時間點。之後,在步驟Sllll中,存儲器管理電路202從主機系統1000接收到下一個寫入指令(以下稱為第三寫入指令)與對應此寫入指令的寫入數據(以下稱為第三寫入數據)。然後,在步驟S1113中,存儲器管理電路202花費一段時間T3執行此第三寫入指令以將第三寫入數據暫存於緩衝存儲器208中,並且在完成第三寫入指令且等候一虛擬延遲時間D3(以下稱為第三虛擬延遲時間)後,將指示第三寫入指令已被完成的響應信息(以下稱為第三響應信息)傳送給主機系統1000。在此,傳送第三響應信息的時間點亦稱為第三時間點。之後,在步驟S1115中,存儲器管理電路202從主機系統1000接收到下一個寫入指令(以下稱為第四寫入指令)與對應此寫入指令的寫入數據(以下稱為第四寫入數據)時。然後,在步驟S1117中,存儲器管理電路202花費一段時間T4執行此第四寫入指令以將第四寫入數據暫存於緩衝存儲器208中,並且在完成第四寫入指令後,將指示第四寫入指令已被完成的響應信息(以下稱為第四響應信息)傳送給主機系統1000。在此,傳送第四響應信息的時間點亦稱為第四時間點。特別是,由於緩衝存儲器208已被存滿,因此,存儲器管理電路202需在完成數據合併操作DM並且將緩衝存儲器208中部分的數據寫入至可複寫式非易失性存儲器模組106之後,才能將第四寫入數據暫存於緩衝存儲器208中。因此,相較於時間Tl、時間T2與時間T3,完成第四寫入指令所需的時間T4會較長。在本範例中,第一虛擬延遲時間Dl、第二虛擬延遲時間D2與第三虛擬延遲時間D3是事先設定的相同固定預設值,其能夠使時間Tl加上第一虛擬延遲時間Dl的時間、時間T2加上第二虛擬延遲時間D2的時間、時間T3加上第三虛擬延遲時間D3的時間和時間T4彼此之間的差異較小。例如,在圖11的範例中,執行數據合併操作所需的時間可大約被估計並且第一虛擬延遲時間Dl、第二虛擬延遲時間D2與第三虛擬延遲時間D3可以將所估計的時間除以4來設定。此外,在本發明另一範例實施例中,存儲器管理電路202亦可根據對應數據合併操作的執行進度分別地設定第一虛擬延遲時間D1、第二虛擬延遲時間D2與第三虛擬延遲時間D3。例如,在圖11與圖12所述的範例中,存儲器管理電路202可根據第一實體區塊已被寫入有效數據的頁面數來決定第一虛擬延遲時間D1、第二虛擬延遲時間D2與第三虛擬延遲時間D3。具體來說,當完成第一寫入指令時,存儲器管理電路202會持續判斷第一實體區塊中已完成數據合併操作的實體頁面(即,已被寫入有效數據的實體頁面)的數目是否大於或等於第一頁面數門檻值。當第一實體區塊中已完成數據合併操作的實體頁面的數目大於或等於第一頁面數門檻值時,存儲器管理電路202會傳送第一響應信息給主機系統1000。而當完成第二寫入指令時,存儲器管理電路202會持續判斷第一實體區塊中已完成數據合併操作的實體頁面的數目是否大於或等於第二頁面數門檻值。當第一實體區塊中已完成數據合併操作的實體頁面的數目大於或等於第二頁面數門檻值時,存儲器管理電路202會傳送第二響應信息給主機系統1000。類似地,完成第三寫入指令時,存儲器管理電路202會持續判斷第一實體區塊中已完成數據合併操作的實體頁面的數目是否大於或等於第三頁面數門檻值。當第一實體區塊中已完成數據合併操作的實體頁面的數目大於或等於第三頁面數門檻值時,存儲器管理電路202會傳送第三響應信息給主機系統1000。例如,在本範例實施例中,一個實體區塊具有128個實體頁面,並且第一頁面數門檻值、第二頁面數門檻值與第三頁面數門檻值會據此分別地設定為32、64與96。也就是說,第一虛擬延遲時間Dl、第二虛擬延遲時間D2與第三虛擬延遲時間D3是根據數據合併操作的執行進度動態地被決定。圖13是根據本範例實施例所示的指令執行方法的流程圖,其顯示在執行數據合併程序期間連續執行多個寫入指令的步驟。請參照圖13,在開始對某一個邏輯區塊(B卩,上述的第一邏輯區塊)執行數據合併操作(即,步驟S1301)之後,在步驟S1303中,存儲器管理電路202會從主機系統1000中接收寫入指令及對應此寫入指令的寫入數據,並且在步驟S1305中,存儲器管理電路202會判斷在數據合併操作中用於寫入有效數據的目標實體區塊(即,上述第一實體區塊)中已被寫入有效數據的實體頁面的數目是否大於一預設頁面數目。例如,預設頁面數目會被設定為一個實體區塊的實體頁面數的75%。例如,在本範例實施例中,一個實體區塊具有128個實體頁面,並且預設頁面數目被設定為96。倘若在數據合併操作中用於寫入有效數據的目標實體區塊中已被寫入有效數據的實體頁面的數目非大於預設頁面數目時,在步驟S1307中,存儲器管理電路202會將寫入數據暫存於緩衝存儲器208中並且等候一段虛擬延遲時間之後(即,在延遲時間點)傳送指示完成寫入指令的響應信息給主機系統1000。倘若在數據合併操作中用於寫入有效數據的目標實體區塊中已被寫入有效數據的實體頁面的數目大於預設頁面數目時,在步驟S1309中,存儲器管理電路202會在數據合併操作完成後將寫入數據暫存於緩衝存儲器208中並且傳送指示完成寫入指令的響應信息給主機系統1000。值得一提的是,如上所述,倘若緩衝存儲器208仍存有足夠的剩餘容量或者閒置區504仍存有足夠的實體區塊時,存儲器管理電路202可將來自於主機系統1000的寫入數據快速地暫存至緩衝存儲器208或者暫時地寫入至混亂實體區塊中,由此縮短響應寫入指令所需的時間。因此,圖13是根據本範例實施例所示的指令執行方法的流程圖可還包括判斷緩衝存儲器208的剩餘容量是否小於預先定義容量並且判斷閒置區504中的實體區塊的數目是否小於預先定義數目的步驟(如圖14所示)。圖14是根據另一範例實施例所示的指令執行方法的流程圖,其顯示在執行數據合併程序期間連續執行多個寫入指令的步驟。請參照圖14,在開始對某一個邏輯區塊(B卩,上述的第一邏輯區塊)執行數據合併操作(即,步驟S1401)之後,在步驟S1403中,存儲器管理電路202會從主機系統1000中接收寫入指令及對應此寫入指令的寫入數據,並且在步驟S1405中,存儲器管理電路202會判斷緩衝存儲器208的剩餘容量是否小於預先定義容量並且判斷閒置區504中的實體區塊的數目是否小於預先定義數目。倘若緩衝存儲器208的剩餘容量非小於預先定義容量或者閒置區504中的實體區塊的數目非小於預先定義數目時,在步驟S1407中,存儲器管理電路202會將寫入數據暫存於緩衝存儲器208中並且之後立即傳送指示完成寫入指令的響應信息給主機系統1000。倘若緩衝存儲器208的剩餘容量小於預先定義容量且閒置區504中的實體區塊的數目小於預先定義數目時,在步驟S1409中,存儲器管理電路202會判斷在數據合併操作中用於寫入有效數據的目標實體區塊(即,上述第一實體區塊)中已被寫入有效數據的實體頁面的數目是否大於一預設頁面數目。倘若在數據合併操作中用於寫入有效數據的目標實體區塊中已被寫入有效數據的實體頁面的數目非大於預設頁面數目時,在步驟S1411中,存儲器管理電路202會將寫入數據暫存於緩衝存儲器208中並且等候一段虛擬延遲時間之後(即,在延遲時間點)傳送指示完成寫入指令的響應信息給主機系統1000。倘若在數據合併操作中用於寫入有效數據的目標實體區塊中已被寫入有效數據的實體頁面的數目大於預設頁面數目時,在步驟S1413中,存儲器管理電路202會在數據合併操作完成後將寫入數據暫存於緩衝存儲器208中並且傳送指示完成寫入指令的響應信息給主機系統1000。綜上所述,當在數據合併操作期間執行來自於主機系統的寫入指令時,本發明範例實施例的指令執行方法、存儲器控制器與存儲器儲存裝置會在完成寫入指令並且等候一段虛擬延遲時間之後才傳送指示完成指令的響應信息給主機系統。由此,在執行數據合併操作期間將對應每個寫入指令的響應時間平均化並且使得存儲器儲存裝置的存取更為順暢。雖然本發明已以實施例揭示如上,然其並非用以限定本發明,任何所屬
技術領域:
的普通技術人員,可作些許更動與潤飾,而不脫離本發明的精神和範圍。權利要求1.一種指令執行方法,用於一存儲器儲存裝置,其中該存儲器儲存裝置具有一緩衝存儲器與一可複寫式非易失性存儲器模組,該可複寫式非易失性存儲器模組具有多個實體區塊,該些實體區塊被邏輯地至少被分組為一數據區與一閒置區,並且該數據區的該些實體區塊被映射至多個邏輯區塊,該指令執行方法包括對該些邏輯區塊之中的一第一邏輯區塊執行一數據合併操作,其中在該數據合併操作中屬於該第一邏輯區塊的有效數據會被複製到從該閒置區的該些實體區塊中提取的一第一實體區塊並且該第一實體區塊具有多個實體頁面;在執行該數據合併操作期間,從一主機系統接收一寫入指令與對應該寫入指令的一寫入數據;判斷該第一實體區塊的該些實體頁面之中已被寫入數據的多個實體頁面的一數目是否大於一預設實體頁面數目;以及當該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的數目非大於該預設實體頁面數目時,將該寫入數據暫存於該緩衝存儲器中並且在一延遲時間點傳送一響應信息給該主機系統,其中該延遲時間點是以完成將該寫入數據暫存於該緩衝存儲器的一時間點加上一虛擬延遲時間來設定並且該響應信息用以告知該寫入指令已被完成。2.根據權利要求I所述的指令執行方法,其中還包括當該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的數目大於該預設實體頁面數目時,在完成將該寫入數據暫存於該緩衝存儲器的該時間點傳送該響應信息給該主機系統。3.根據權利要求I所述的指令執行方法,其中還包括判斷該緩衝存儲器的一剩餘容量是否小於一預先定義容量並且判斷屬於該閒置區的該些實體區塊的一數目是否小於一預先定義數目,其中判斷該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的該數目是否大於該預設實體頁面數目的步驟是在當該緩衝存儲器的該剩餘容量小於該預先定義容量並且屬於該閒置區的該些實體區塊的該數目小於該預先定義數目時被執行。4.根據權利要求3所述的指令執行方法,其中還包括當該緩衝存儲器的該剩餘容量非小於該預先定義容量或者屬於該閒置區的該些實體區塊的該數目非小於該預先定義數目時,在完成將該寫入數據暫存於該緩衝存儲器的該時間點傳送該響應信息給該主機系統。5.根據權利要求I所述的指令執行方法,其中還包括將該虛擬延遲時間設定為一固定預定值。6.根據權利要求I所述的指令執行方法,其中還包括根據對應該數據合併操作的一執行進度動態地設定該虛擬延遲時間。7.一種存儲器控制器,用以控制一可複寫式非易失性存儲器模組,該存儲器控制器包括一主機接口,用以電性連接至一主機系統;一存儲器接口,電性連接至該可複寫式非易失性存儲器模組,其中該可複寫式非易失性存儲器模組具有多個實體區塊;一存儲器管理電路,電性連接至該主機接口與該存儲器接口;以及一緩衝存儲器,電性連接至該存儲器管理電路,其中該存儲器管理電路用以將該些實體區塊邏輯地至少分組為一數據區與一閒置區,並且配置多個邏輯區塊以映射該數據區的該些實體區塊,其中該存儲器管理電路對該些邏輯區塊之中的一第一邏輯區塊執行一數據合併操作,並且在該數據合併操作中屬於該第一邏輯區塊的有效數據會被複製到從該閒置區的該些實體區塊中提取的一第一實體區塊,其中該第一實體區塊具有多個實體頁面,其中該存儲器管理電路在執行該數據合併操作期間,從該主機系統接收一寫入指令與對應該寫入指令的一寫入數據,其中該存儲器管理電路會判斷該第一實體區塊的該些實體頁面之中已被寫入數據的多個實體頁面的一數目是否大於一預設實體頁面數目,其中當該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的數目非大於該預設實體頁面數目時,該存儲器管理電路會將該寫入數據暫存於該緩衝存儲器中並且在一延遲時間點傳送一響應信息給該主機系統,其中該延遲時間點是以完成將該寫入數據暫存於該緩衝存儲器的一時間點加上一虛擬延遲時間來設定並且該響應信息用以告知該寫入指令已被完成。8.根據權利要求7所述的存儲器控制器,其中當該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的數目大於該預設實體頁面數目時,該存儲器管理電路在完成將該寫入數據暫存於該緩衝存儲器的該時間點傳送該響應信息給該主機系統。9.根據權利要求7所述的存儲器控制器,其中該存儲器管理電路還用以判斷該緩衝存儲器的一剩餘容量是否小於一預先定義容量並且判斷屬於該閒置區的該些實體區塊的一數目是否小於一預先定義數目,其中僅當該緩衝存儲器的該剩餘容量小於該預先定義容量並且屬於該閒置區的該些實體區塊的該數目小於該預先定義數目時,該存儲器管理電路才判斷該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的該數目是否大於該預設實體頁面數目。10.根據權利要求9所述的存儲器控制器,其中當該緩衝存儲器的該剩餘容量非小於該預先定義容量或者屬於該閒置區的該些實體區塊的該數目非小於該預先定義數目時,該存儲器管理電路在完成將該寫入數據暫存於該緩衝存儲器的該時間點傳送該響應信息給該主機系統。11.根據權利要求7所述的存儲器控制器,其中該虛擬延遲時間為一固定預定值。12.根據權利要求7所述的存儲器控制器,其中該存儲器管理電路根據對應該數據合併操作的一執行進度動態地設定該虛擬延遲時間。13.一種存儲器儲存裝置,包括一連接器,用以電性連接至一主機系統;一可複寫式非易失性存儲器模組,具有多個實體區塊;以及一存儲器控制器,電性連接至該可複寫式非易失性存儲器模組與該連接器,其中該存儲器控制器用以將該些實體區塊邏輯地至少分組為一數據區與一閒置區,並且配置多個邏輯區塊以映射該數據區的該些實體區塊,其中該存儲器控制器對該些邏輯區塊之中的一第一邏輯區塊執行一數據合併操作,並且在該數據合併操作中屬於該第一邏輯區塊的有效數據會被複製到從該閒置區的該些實體區塊中提取的一第一實體區塊,其中該第一實體區塊具有多個實體頁面,其中該存儲器控制器在執行該數據合併操作期間,從該主機系統接收一寫入指令與對應該寫入指令的一寫入數據,其中該存儲器控制器會判斷該第一實體區塊的該些實體頁面之中已被寫入數據的多個實體頁面的一數目是否大於一預設實體頁面數目,其中當該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的數目非大於該預設實體頁面數目時,該存儲器控制器會將該寫入數據暫存於該緩衝存儲器中並且在一延遲時間點傳送一響應信息給該主機系統,其中該延遲時間點是以完成將該寫入數據暫存於該緩衝存儲器的一時間點加上一虛擬延遲時間來設定並且該響應信息用以告知該與入指令已被完成。14.根據權利要求13所述的存儲器儲存裝置,其中當該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的數目大於該預設實體頁面數目時,該存儲器控制器在完成將該寫入數據暫存於該緩衝存儲器的該時間點傳送該響應信息給該主機系統。15.根據權利要求13所述的存儲器儲存裝置,其中該存儲器控制器還用以判斷該緩衝存儲器的一剩餘容量是否小於一預先定義容量並且判斷屬於該閒置區的該些實體區塊的一數目是否小於一預先定義數目,其中僅當該緩衝存儲器的該剩餘容量小於該預先定義容量並且屬於該閒置區的該些實體區塊的該數目小於該預先定義數目時,該存儲器控制器才判斷該第一實體區塊的該些實體頁面之中已被寫入數據的該些實體頁面的該數目是否大於該預設實體頁面數目。16.根據權利要求15所述的存儲器儲存裝置,其中當該緩衝存儲器的該剩餘容量非小於該預先定義容量或者屬於該閒置區的該些實體區塊的該數目非小於該預先定義數目時,該存儲器控制器在完成將該寫入數據暫存於該緩衝存儲器的該時間點傳送該響應信息給該主機系統。17.根據權利要求13所述的存儲器儲存裝置,其中該虛擬延遲時間為一固定預定值。18.根據權利要求13所述的存儲器儲存裝置,其中該存儲器控制器根據對應該數據合併操作的一執行進度動態地設定該虛擬延遲時間。19.一種指令執行方法,用於一存儲器儲存裝置,其中該存儲器儲存裝置具有一緩衝存儲器與一可複寫式非易失性存儲器模組,該可複寫式非易失性存儲器模組具有多個實體區塊,該些實體區塊被邏輯地至少被分組為一數據區與一閒置區,並且該數據區的該些實體區塊被映射至多個邏輯區塊,該指令執行方法包括對該些邏輯區塊之中的一第一邏輯區塊執行一數據合併操作,其中在該數據合併操作中屬於該第一邏輯區塊的有效數據會被複製到從該閒置區的該些實體區塊中提取的一第一實體區塊;在執行該數據合併操作期間,從一主機系統接收一第一寫入指令與對應該第一寫入指令的一第一寫入數據並且將該第一寫入數據暫存於該緩衝存儲器中;以及在一第一時間點傳送一第一響應信息給該主機系統,其中該第一時間點是以完成將該第一寫入數據暫存於該緩衝存儲器的一時間點加上一第一虛擬延遲時間來設定並且該第一響應信息用以告知該第一寫入指令已被完成。20.根據權利要求19所述的指令執行方法,其中還包括在執行該數據合併操作期間,從該主機系統接收一第二寫入指令與對應該第二寫入指令的一第二寫入數據並且將該第二寫入數據暫存於該緩衝存儲器中;在一第二時間點傳送一第二響應信息給該主機系統,其中該第二時間點是以完成將該第二寫入數據暫存於該緩衝存儲器的一時間點加上一第二虛擬延遲時間來設定並且該第二響應信息用以告知該第二寫入指令已被完成;在執行該數據合併操作期間,從該主機系統接收一第三寫入指令與對應該第三寫入指令的一第三寫入數據並且將該第三寫入數據暫存於該緩衝存儲器中;在一第三時間點傳送一第三響應信息給該主機系統,其中該第三時間點是以完成將該第三寫入數據暫存於該緩衝存儲器的一時間點加上一第三虛擬延遲時間來設定並且該第三響應信息用以告知該第三寫入指令已被完成。21.根據權利要求19所述的指令執行方法,其中還包括在執行該數據合併操作期間,從該主機系統接收一第四寫入指令與對應該第四寫入指令的一第四寫入數據並且將該第四寫入數據暫存於該緩衝存儲器中;以及在一第四時間點傳送一第四響應信息給該主機系統,其中該第四時間點是在完成將該第四寫入數據暫存於該緩衝存儲器並且完成該數據合併操作之後,其中該第四響應信息用以告知該第四寫入指令已被完成。22.根據權利要求20所述的指令執行方法,其中還包括將該第一虛擬延遲時間、該第二虛擬延遲時間與該第三虛擬延遲時間設定為一固定預定值。23.根據權利要求20所述的指令執行方法,其中還包括根據對應該數據合併操作的一執行進度分別地設定該第一虛擬延遲時間、該第二虛擬延遲時間與該第三虛擬延遲時間,其中該第一實體區塊具有多個實體頁面,其中在該第一時間點,該第一實體區塊的該些實體頁面之中已完成該數據合併操作的多個實體頁面的一頁面數大於或等於一第一頁面數門檻值,其中在該第二時間點,該第一實體區塊的該些實體頁面之中已完成該數據合併操作的該些實體頁面的該頁面數大於或等於一第二頁面數門檻值,其中在該第三時間點,該第一實體區塊的該些實體頁面之中已完成該數據合併操作的該些實體頁面的該頁面數大於或等於一第三頁面數門檻值。24.一種存儲器控制器,用以控制一可複寫式非易失性存儲器模組,該存儲器控制器包括一主機接口,用以電性連接至一主機系統;一存儲器接口,電性連接至該可複寫式非易失性存儲器模組,其中該可複寫式非易失性存儲器模組具有多個實體區塊;一存儲器管理電路,電性連接至該主機接口與該存儲器接口;以及一緩衝存儲器,電性連接至該存儲器管理電路,其中該存儲器管理電路用以將該些實體區塊邏輯地至少分組為一數據區與一閒置區,並且配置多個邏輯區塊以映射該數據區的該些實體區塊,其中該存儲器管理電路對該些邏輯區塊之中的一第一邏輯區塊執行一數據合併操作,並且在該數據合併操作中屬於該第一邏輯區塊的有效數據會被複製到從該閒置區的該些實體區塊中提取的一第一實體區塊,其中該存儲器管理電路在執行該數據合併操作期間,從該主機系統接收一第一寫入指令與對應該第一寫入指令的一第一寫入數據並且將該第一寫入數據暫存於該緩衝存儲器中,其中該存儲器管理電路在一第一時間點傳送一第一響應信息給該主機系統,其中該第一時間點是以完成將該第一寫入數據暫存於該緩衝存儲器的一時間點加上一第一虛擬延遲時間來設定並且該第一響應信息用以告知該第一寫入指令已被完成。25.一種存儲器儲存裝置,包括一連接器,用以電性連接至一主機系統;一可複寫式非易失性存儲器模組,具有多個實體區塊;以及一存儲器控制器,電性連接至該可複寫式非易失性存儲器模組與該連接器,其中該存儲器控制器用以將該些實體區塊邏輯地至少分組為一數據區與一閒置區,並且配置多個邏輯區塊以映射該數據區的該些實體區塊,其中該存儲器控制器對該些邏輯區塊之中的一第一邏輯區塊執行一數據合併操作,並且在該數據合併操作中屬於該第一邏輯區塊的有效數據會被複製到從該閒置區的該些實體區塊中提取的一第一實體區塊,其中該存儲器控制器在執行該數據合併操作期間,從該主機系統接收一第一寫入指令與對應該第一寫入指令的一第一寫入數據並且將該第一寫入數據暫存於該緩衝存儲器中,其中該存儲器控制器在一第一時間點傳送一第一響應信息給該主機系統,其中該第一時間點是以完成將該第一寫入數據暫存於該緩衝存儲器的一時間點加上一第一虛擬延遲時間來設定並且該第一響應信息用以告知該第一寫入指令已被完成。全文摘要本發明提出一種指令執行方法、存儲器控制器與存儲器儲存裝置。本方法包括,在執行數據合併操作期間,從主機系統接收寫入指令與對應這寫入指令的寫入數據。本方法也包括,將寫入數據暫存於緩衝存儲器中並且在一延遲時間點傳送響應信息給主機系統,其中延遲時間點是以完成將寫入數據暫存於緩衝存儲器的時間點加上虛擬延遲時間來設定。基此,本方法可有效地平均對應在執行數據合併操作期間所執行的寫入指令的響應時間,由此縮短最大存取時間。文檔編號G06F12/02GK102890653SQ201110200389公開日2013年1月23日申請日期2011年7月18日優先權日2011年7月18日發明者葉志剛申請人:群聯電子股份有限公司