两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

緩沖存儲器存取方法、存儲器控制器與存儲器存儲裝置與流程

文檔序號:12597101閱讀:429來源:國知局
本發(fā)明是有關(guān)于一種緩沖存儲器的管理方法,且特別是有關(guān)于一種緩沖存儲器存取方法、存儲器控制器與存儲器存儲裝置。
背景技術(shù)
::數(shù)碼相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對存儲媒體的需求也急速增加。由于可復(fù)寫式非易失性存儲器(rewritablenon-volatilememory)具有數(shù)據(jù)非易失性、省電、體積小、無機械結(jié)構(gòu)、讀寫速度快等特性,最適于可攜式電子產(chǎn)品,例如筆記本電腦。固態(tài)硬盤就是一種以快閃存儲器作為存儲媒體的存儲器存儲裝置。因此,近年快閃存儲器產(chǎn)業(yè)成為電子產(chǎn)業(yè)中相當(dāng)熱門的一環(huán)。在使用可復(fù)寫式非易失性存儲器作為存儲媒體的存儲器存儲裝置中,通常也會配置緩沖存儲器,用以暫存程序代碼、數(shù)據(jù)或是用于存儲器存儲裝置在執(zhí)行背景(background)工作時數(shù)據(jù)的暫存區(qū)域。由于成本的考量,這樣的緩沖存儲器并不會有很大的存儲空間。在緩沖存儲器的存儲空間不足的情況下,存儲器存儲裝置的運作會嚴(yán)重受到影響。例如,當(dāng)來自主機系統(tǒng)的寫入指令以及數(shù)據(jù)無法即時寫入緩沖存儲器時,可能會導(dǎo)致主機系統(tǒng)寫入的延遲(latency)時間過長,而造成逾時并中斷。因此,如何確保主機系統(tǒng)寫入的延遲時間在一固定的時間內(nèi),以避免造成逾時,為此領(lǐng)域技術(shù)人員所關(guān)心的議題。技術(shù)實現(xiàn)要素:本發(fā)明提供一種緩沖存儲器存取方法、存儲器控制器與存儲器存儲裝置,可以有效降低主機系統(tǒng)寫入操作的延遲時間。本發(fā)明的一范例實施例提供一種緩沖存儲器存取方法,用于一存儲器存儲裝置的緩沖存儲器,其中此存儲器存儲裝置包括一可復(fù)寫式非易失性存儲器模塊且緩沖存儲器具有多個寫入緩存單元。本緩沖存儲器存取方法包括: 從主機系統(tǒng)接收寫入數(shù)據(jù),并判斷寫入緩存單元之中被占用的寫入緩存單元的數(shù)目是否非小于一預(yù)先定義值。本緩沖存儲器存取方法還包括:倘若寫入緩存單元之中被占用的寫入緩存單元的數(shù)目小于預(yù)先定義值時,將寫入數(shù)據(jù)暫存至寫入緩存單元之中未被占用的其中一個寫入緩存單元,并且傳送對應(yīng)此寫入數(shù)據(jù)的一確認信息給主機系統(tǒng)。本緩沖存儲器存取方法還包括:倘若寫入緩存單元之中被占用的寫入緩存單元的數(shù)目非小于預(yù)先定義值時,將寫入數(shù)據(jù)暫存至寫入緩存單元之中未被占用的其中一個寫入緩存單元,并且在一預(yù)先定義時間間隔后傳送對應(yīng)此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)。在本發(fā)明的一實施例中,上述的緩沖存儲器存取方法還包括記錄對應(yīng)在存儲器存儲裝置中運行的多個背景工作中的多個執(zhí)行時間,并且記錄此些執(zhí)行時間之中的一第一執(zhí)行時間,其中此第一執(zhí)行時間不小于此些執(zhí)行時間之中的其他執(zhí)行時間,其中此些背景工作會占用緩沖存儲器的部分寫入緩存單元,以及根據(jù)此第一執(zhí)行時間以及預(yù)先定義時間間隔,設(shè)定預(yù)先定義值。在本發(fā)明的一實施例中,上述的緩沖存儲器存取方法還包括將寫入緩存單元的數(shù)目減去一第一數(shù)值以獲得預(yù)先定義值,其中第一數(shù)值是通過第一執(zhí)行時間除以預(yù)先定義時間間隔所獲得。在本發(fā)明的一實施例中,上述的緩沖存儲器存取方法還包括當(dāng)傳送確認信息后,從主機系統(tǒng)接收另一寫入數(shù)據(jù),并將此另一寫入數(shù)據(jù)暫存至緩沖存儲器中。在本發(fā)明的一實施例中,上述的緩沖存儲器存取方法還包括在緩沖存儲器中的寫入緩存單元皆被占用之后,將寫入緩存單元中的數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲器模塊中。在本發(fā)明的一實施例中,上述的緩沖存儲器存取方法的背景工作包括映射表存儲、數(shù)據(jù)合并與錯誤校正。本發(fā)明一范例實施例提供一種用于控制可復(fù)寫式非易失性存儲器模塊的存儲器控制器。此存儲器控制器包括:用以電性連接至主機系統(tǒng)的主機接口;用以電性連接至可復(fù)寫式非易失性存儲器模塊的存儲器接口;電性連接至主機接口及存儲器接口的緩沖存儲器,此緩沖存儲器具有多個寫入緩存單元;以及電性連接至主機接口、存儲器接口與緩沖存儲器的存儲器管理電路。存儲器管理電路用以從主機系統(tǒng)接收寫入數(shù)據(jù),并判斷寫入緩存單元之中被占 用的寫入緩存單元的數(shù)目是否非小于預(yù)先定義值。倘若寫入緩存單元之中被占用的寫入緩存單元的數(shù)目小于預(yù)先定義值時,存儲器管理電路將寫入數(shù)據(jù)暫存至寫入緩存單元之中未被占用的其中一個寫入緩存單元,并且傳送對應(yīng)此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)。倘若寫入緩存單元之中被占用的寫入緩存單元的數(shù)目非小于預(yù)先定義值時,存儲器管理電路將寫入數(shù)據(jù)暫存至寫入緩存單元之中未被占用的其中一個寫入緩存單元,并且在預(yù)先定義時間間隔后傳送對應(yīng)此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)。在本發(fā)明的一實施例中,上述的存儲器管理電路還用以記錄對應(yīng)在存儲器控制器中運行的多個背景工作的多個執(zhí)行時間,并且記錄此些執(zhí)行時間之中的一第一執(zhí)行時間,其中此第一執(zhí)行時間不小于此些執(zhí)行時間之中的其他執(zhí)行時間,其中背景工作會占用緩沖存儲器的部分寫入緩存單元,并根據(jù)此第一執(zhí)行時間以及預(yù)先定義時間間隔,設(shè)定預(yù)先定義值。在本發(fā)明的一實施例中,上述的存儲器管理電路更用以將寫入緩存單元的數(shù)目減去一第一數(shù)值以獲得預(yù)先定義值,其中第一數(shù)值是通過存儲器管理電路將第一執(zhí)行時間除以預(yù)先定義時間間隔所獲得。在本發(fā)明的一實施例中,當(dāng)存儲器管理電路傳送該確認信息后,上述存儲器管理電路更用以從主機系統(tǒng)接收另一寫入數(shù)據(jù),并將此另一寫入數(shù)據(jù)暫存至緩沖存儲器中。在本發(fā)明的一實施例中,在緩沖存儲器中的寫入緩存單元皆被占用之后,上述存儲器管理電路更用以將寫入緩存單元中的數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲器模塊中。在本發(fā)明的一實施例中,上述的背景工作包括映射表存儲、數(shù)據(jù)合并與錯誤校正。本發(fā)明一范例實施例提供一種存儲器存儲裝置。其包括:用以電性連接至主機系統(tǒng)的連接接口單元、可復(fù)寫式非易失性存儲器模塊以及電性連接至連接接口單元與可復(fù)寫式非易失性存儲器模塊的存儲器控制器。其中存儲器控制器包括緩沖存儲器,其中緩沖存儲器具有多個寫入緩存單元。存儲器控制器用以從主機系統(tǒng)接收寫入數(shù)據(jù),并判斷寫入緩存單元之中被占用的寫入緩存單元的數(shù)目是否非小于預(yù)先定義值。倘若寫入緩存單元之中被占用的寫入緩存單元的數(shù)目小于預(yù)先定義值時,存儲器控制器將寫入數(shù)據(jù)暫存至寫入 緩存單元之中未被占用的其中一個寫入緩存單元,并且傳送對應(yīng)此寫入數(shù)據(jù)的一確認信息給該主機系統(tǒng)。倘若寫入緩存單元之中被占用的寫入緩存單元的數(shù)目非小于預(yù)先定義值時,存儲器控制器將寫入數(shù)據(jù)暫存至寫入緩存單元之中未被占用的其中一個寫入緩存單元,并且在預(yù)先定義時間間隔后傳送對應(yīng)此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)。在本發(fā)明的一范例實施例中,上述存儲器控制器還用以記錄對應(yīng)在該存儲器存儲裝置中運行的多個背景工作的多個執(zhí)行時間,并且記錄此些執(zhí)行時間之中的一第一執(zhí)行時間,其中此第一執(zhí)行時間不小于此些執(zhí)行時間之中的其他執(zhí)行時間,其中背景工作會占用緩沖存儲器的部分寫入緩存單元,并根據(jù)第一執(zhí)行時間以及預(yù)先定義時間間隔,設(shè)定預(yù)先定義值。在本發(fā)明的一范例實施例中,上述存儲器控制器更用以將寫入緩存單元的數(shù)目減去第一數(shù)值以獲得預(yù)先定義值,其中第一數(shù)值是通過存儲器控制器將第一執(zhí)行時間除以預(yù)先定義時間間隔所獲得。在本發(fā)明的一范例實施例中,其中當(dāng)該存儲器控制器傳送該確認信息后,上述存儲器控制器更用以從主機系統(tǒng)接收另一寫入數(shù)據(jù),并將此另一寫入數(shù)據(jù)暫存至緩沖存儲器中。在本發(fā)明的一范例實施例中,其中在緩沖存儲器中的寫入緩存單元皆被占用之后,上述存儲器控制器更用以將寫入緩存單元中的數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲器模塊中。在本發(fā)明的一范例實施例中,所述背景工作包括映射表存儲、數(shù)據(jù)合并與錯誤校正。基于上述,本發(fā)明的緩沖存儲器存取方法,通過兩階段的寫入方式可以有效降低主機系統(tǒng)寫入操作的延遲時間,以解決當(dāng)緩沖存儲器被寫滿時,主機系統(tǒng)寫入操作等待時間過長的問題。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。附圖說明圖1A是根據(jù)一范例實施例所示出的主機系統(tǒng)與存儲器存儲裝置;圖1B是根據(jù)本發(fā)明范例實施例所示出的電腦、輸入/輸出裝置與存儲器 存儲裝置的示意圖;圖1C是根據(jù)本發(fā)明范例實施例所示出的主機系統(tǒng)與存儲器存儲裝置的示意圖;圖2是根據(jù)一范例實施例所示出的存儲器存儲裝置的概要方塊圖;圖3是根據(jù)一范例實施例所示出的存儲器控制器的概要方塊圖;圖4是根據(jù)一范例實施例所示出的緩沖存儲器的示意圖;圖5A~圖5D是根據(jù)一范例實施例所示出的緩沖存儲器存取方法的示意圖;圖6是根據(jù)一范例實施例所示出的緩沖存儲器存取方法的流程圖。附圖標(biāo)記說明:1000:主機系統(tǒng);1100:電腦;1102:微處理器;1104:隨機存取存儲器;1106:輸入/輸出裝置;1108:系統(tǒng)總線;1110:數(shù)據(jù)傳輸接口;1202:鼠標(biāo);1204:鍵盤;1206:顯示器;1208:打印機;1212:移動硬盤;1214:存儲卡;1216:固態(tài)硬盤;1310:數(shù)碼相機;1312:SD卡;1314:MMC卡;1316:存儲棒;1318:CF卡;1320:嵌入式存儲裝置;100:存儲器存儲裝置;102:連接接口單元;104:存儲器控制器;106:可復(fù)寫式非易失性存儲器模塊;302:存儲器管理電路;304:主機接口;306:存儲器接口;308:緩沖存儲器;310:電源管理電路;312:錯誤檢查與校正電路;410(0)~410(511):寫入緩存單元;S601、S603、S605、S607:步驟。具體實施方式圖1A是根據(jù)一范例實施例所示出的主機系統(tǒng)與存儲器存儲裝置的示意圖。請參照圖1A,主機系統(tǒng)1000一般包括電腦1100與輸入/輸出(input/output,簡稱I/O)裝置1106。電腦1100包括微處理器1102、隨機存取存儲器(randomaccessmemory,簡稱RAM)1104、系統(tǒng)總線1108與數(shù)據(jù)傳輸接口1110。輸入/輸出裝置1106包括如圖1B的鼠標(biāo)1202、鍵盤1204、顯示器1206與打印機1208。必須了解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可還包括其他裝置。在本范例實施例中,存儲器存儲裝置100是通過數(shù)據(jù)傳輸接口1110與主機系統(tǒng)1000的其他元件電性連接。通過微處理器1102、隨機存取存儲器1104與輸入/輸出裝置1106的運作可將數(shù)據(jù)寫入至存儲器存儲裝置100或從存儲器存儲裝置100中讀取數(shù)據(jù)。例如,存儲器存儲裝置100可以是如圖1B所示的移動硬盤1212、存儲卡1214或固態(tài)硬盤(SolidStateDrive,簡稱SSD)1216等的可復(fù)寫式非易失性存儲器存儲裝置。一般而言,主機系統(tǒng)1000為可實質(zhì)地與存儲器存儲裝置100配合以存儲數(shù)據(jù)的任意系統(tǒng)。雖然在本范例實施例中,主機系統(tǒng)1000是以電腦系統(tǒng)來做 說明,然而,在本發(fā)明另一范例實施例中主機系統(tǒng)1000可以是數(shù)碼相機、攝影機、通信裝置、音頻播放器或視頻播放器等系統(tǒng)。例如,在主機系統(tǒng)為圖1C中的數(shù)碼相機(攝影機)1310時,可復(fù)寫式非易失性存儲器存儲裝置則為其所使用的SD卡1312、MMC卡1314、存儲棒(memorystick)1316、CF卡1318或嵌入式存儲裝置1320(如圖1C所示)。嵌入式存儲裝置1320包括嵌入式多媒體卡(embeddedMMC,簡稱eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接于主機系統(tǒng)的基板上。圖2是根據(jù)一范例實施例所示出的存儲器存儲裝置的概要方塊圖。請參照圖2,存儲器存儲裝置100包括連接接口單元102、存儲器控制器104與可復(fù)寫式非易失性存儲器模塊106。在本范例實施例中,連接接口單元102是相容于安全數(shù)字(SecureDigital,簡稱SD)接口標(biāo)準(zhǔn)。然而,必須了解的是,本發(fā)明不限于此,連接接口單元102也可以是符合并行高級技術(shù)附件(ParallelAdvancedTechnologyAttachment,簡稱PATA)標(biāo)準(zhǔn)、電氣和電子工程師協(xié)會(InstituteofElectricalandElectronicEngineers,簡稱IEEE)1394標(biāo)準(zhǔn)、高速周邊零件連接接口(PeripheralComponentInterconnectExpress,簡稱PCIExpress)標(biāo)準(zhǔn)、通用串行總線(UniversalSerialBus,簡稱USB)標(biāo)準(zhǔn)、超高速一代(UltraHighSpeed-I,簡稱UHS-I)接口標(biāo)準(zhǔn)、超高速二代(UltraHighSpeed-II,簡稱UHS-II)接口標(biāo)準(zhǔn)、串行高級技術(shù)附件(SerialAdvancedTechnologyAttachment,簡稱SATA)標(biāo)準(zhǔn)、存儲棒(MemoryStick,簡稱MS)接口標(biāo)準(zhǔn)、多媒體存儲卡(MultiMediaCard,簡稱MMC)接口標(biāo)準(zhǔn)、小型快閃(CompactFlash,簡稱CF)接口標(biāo)準(zhǔn)、整合式驅(qū)動電子接口(IntegratedDeviceElectronics,簡稱IDE)標(biāo)準(zhǔn)或其他適合的標(biāo)準(zhǔn)。在本范例實施例中,連接接口單元可與存儲器控制器封裝在一個芯片中,或布設(shè)于一包含存儲器控制器的芯片外。存儲器控制器104用以執(zhí)行以硬件形式或固件形式實作的多個邏輯門或控制指令,并且根據(jù)主機系統(tǒng)1000的指令在可復(fù)寫式非易失性存儲器模塊106中進行數(shù)據(jù)的寫入、讀取、抹除與合并等運作??蓮?fù)寫式非易失性存儲器模塊106是電性連接至存儲器控制器104,并且用以存儲主機系統(tǒng)1000所寫入的數(shù)據(jù)??蓮?fù)寫式非易失性存儲器模塊106具有多個實體抹除單元。例如,此些實體抹除單元可屬于同一個存儲器晶粒 (die)或者屬于不同的存儲器晶粒。每一實體抹除單元分別具有復(fù)數(shù)個實體程序化單元,例如本發(fā)明的范例實施例中,每一個實體抹除單元包含258個實體程序化單元,而其中屬于同一個實體抹除單元的實體程序化單元可被獨立地寫入且被同時地抹除。然而,必須了解的是,本發(fā)明不限于此,每一實體抹除單元是可由64個實體程序化單元、256個實體程序化單元或其他任意個實體程序化單元所組成。更詳細來說,實體抹除單元為抹除的最小單位。也即,每一實體抹除單元含有最小數(shù)目之一并被抹除的存儲單元。實體程序化單元為程序化的最小單元。即,實體程序化單元為寫入數(shù)據(jù)的最小單元。每一實體程序化單元通常包括數(shù)據(jù)比特區(qū)與冗余比特區(qū)。數(shù)據(jù)比特區(qū)包含多個實體存取地址用以存儲使用者的數(shù)據(jù),而冗余比特區(qū)用以存儲系統(tǒng)的數(shù)據(jù)(例如,控制信息與錯誤更正碼)。在本范例實施例中,每一個實體程序化單元的數(shù)據(jù)比特區(qū)中會包含4個實體存取地址,且一個實體存取地址的大小為512字節(jié)(byte)。然而,在其他范例實施例中,數(shù)據(jù)比特區(qū)中也可包含數(shù)目更多或更少的實體存取地址,本發(fā)明并不限制實體存取地址的大小以及個數(shù)。在本范例實施例中,可復(fù)寫式非易失性存儲器模塊106為多階存儲單元(MultiLevelCell,簡稱MLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲2個數(shù)據(jù)比特的快閃存儲器模塊)。然而,本發(fā)明不限于此,可復(fù)寫式非易失性存儲器模塊106也可是單階存儲單元(SingleLevelCell,簡稱SLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲1個數(shù)據(jù)比特的快閃存儲器模塊)、復(fù)數(shù)階存儲單元(TrinaryLevelCell,簡稱TLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲3個數(shù)據(jù)比特的快閃存儲器模塊)、其他快閃存儲器模塊或其他具有相同特性的存儲器模塊。圖3是根據(jù)一范例實施例所示出的存儲器控制器的概要方塊圖。必須了解的是,圖3所示出的存儲器控制器僅為一個范例,本發(fā)明不限于此。請參照圖3,存儲器控制器104包括存儲器管理電路302、主機接口304、存儲器接口306與緩沖存儲器308。存儲器管理電路302用以控制存儲器控制器104的整體運作。具體來說,存儲器管理電路302具有多個控制指令,并且在存儲器存儲裝置100運作時,此些控制指令會被執(zhí)行以進行數(shù)據(jù)的寫入、讀取、抹除與合并等運作。在本范例實施例中,存儲器管理電路302的控制指令是以固件形式來實作。例如,存儲器管理電路302具有微處理器單元(未示出)與只讀存儲器(未示出),并且此些控制指令是被燒錄至此只讀存儲器中。當(dāng)存儲器存儲裝置100運作時,此些控制指令會由微處理器單元來執(zhí)行以進行數(shù)據(jù)的寫入、讀取、抹除與合并等運作。在本發(fā)明另一范例實施例中,存儲器管理電路302的控制指令也可以程序編碼形式存儲于可復(fù)寫式非易失性存儲器模塊106的特定區(qū)域(例如,存儲器模塊中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。此外,存儲器管理電路302具有微處理器單元(未示出)、只讀存儲器(未示出)及隨機存取存儲器(未示出)。特別是,此只讀存儲器具有驅(qū)動碼,并且當(dāng)存儲器控制器104被致能時,微處理器單元會先執(zhí)行此驅(qū)動碼段來將存儲于可復(fù)寫式非易失性存儲器模塊106中的控制指令載入至存儲器管理電路302的隨機存取存儲器中。之后,微處理器單元會運轉(zhuǎn)此些控制指令以進行數(shù)據(jù)的寫入、讀取、抹除與合并等運作。此外,在本發(fā)明另一范例實施例中,存儲器管理電路302的控制指令也可以一硬件形式來實作。例如,存儲器管理電路302包括微控制器、存儲單元管理電路、存儲器寫入電路、存儲器讀取電路、存儲器抹除電路與數(shù)據(jù)處理電路。存儲單元管理電路、存儲器寫入電路、存儲器讀取電路、存儲器抹除電路與數(shù)據(jù)處理電路是電性連接至微控制器。其中,存儲單元管理電路用以管理可復(fù)寫式非易失性存儲器模塊106的實體抹除單元;存儲器寫入電路用以對可復(fù)寫式非易失性存儲器模塊106下達寫入指令以將數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲器模塊106中;存儲器讀取電路用以對可復(fù)寫式非易失性存儲器模塊106下達讀取指令以從可復(fù)寫式非易失性存儲器模塊106中讀取數(shù)據(jù);存儲器抹除電路用以對可復(fù)寫式非易失性存儲器模塊106下達抹除指令以將數(shù)據(jù)從可復(fù)寫式非易失性存儲器模塊106中抹除;而數(shù)據(jù)處理電路用以處理欲寫入至可復(fù)寫式非易失性存儲器模塊106的數(shù)據(jù)以及從可復(fù)寫式非易失性存儲器模塊106中讀取的數(shù)據(jù)。主機接口304是電性連接至存儲器管理電路302并且用以接收與識別主機系統(tǒng)1000所傳送的指令與數(shù)據(jù)。也就是說,主機系統(tǒng)1000所傳送的指令與數(shù)據(jù)會通過主機接口304來傳送至存儲器管理電路302。在本范例實施例 中,主機接口304是相容于SD標(biāo)準(zhǔn)。然而,必須了解的是本發(fā)明不限于此,主機接口304也可以是相容于PATA標(biāo)準(zhǔn)、IEEE1394標(biāo)準(zhǔn)、PCIExpress標(biāo)準(zhǔn)、USB標(biāo)準(zhǔn)、UHS-I接口標(biāo)準(zhǔn)、UHS-II接口標(biāo)準(zhǔn)、SATA標(biāo)準(zhǔn)、MS標(biāo)準(zhǔn)、MMC標(biāo)準(zhǔn)、CF標(biāo)準(zhǔn)、IDE標(biāo)準(zhǔn)或其他適合的數(shù)據(jù)傳輸標(biāo)準(zhǔn)。存儲器接口306是電性連接至存儲器管理電路302并且用以存取可復(fù)寫式非易失性存儲器模塊106。也就是說,欲寫入至可復(fù)寫式非易失性存儲器模塊106的數(shù)據(jù)會通過存儲器接口306轉(zhuǎn)換為可復(fù)寫式非易失性存儲器模塊106所能接受的格式。緩沖存儲器308是電性連接至存儲器管理電路302、主機接口304及存儲器接口306。圖4是根據(jù)一范例實施例所示出的緩沖存儲器的示意圖。請參照圖4,在本范例實施例中,緩沖存儲器308具有512個寫入緩存單元(即,寫入緩存單元410(0)~410(511)),每一個寫入緩存單元的大小為4KB,且主機系統(tǒng)1000是以4KB為單位來傳送數(shù)據(jù)。此外,在本范例實施例中,四個寫入緩存單元的大小為對應(yīng)一個可復(fù)寫式非易失性存儲器的實體程序化單元的大小。然而,必須了解的是,本范例實施例不限定配置在緩沖存儲器308中的寫入緩存單元的個數(shù)、寫入緩存單元的大小以及主機系統(tǒng)1000傳送數(shù)據(jù)的大小。在其他范例實施例中,緩沖存儲器308中寫入緩存單元的個數(shù)可以多于或少于512個,且寫入緩存單元的大小以及主機系統(tǒng)1000傳送數(shù)據(jù)的大小也可以大于或小于4KB。寫入緩存單元410(0)~410(511)用以暫存來自于主機系統(tǒng)1000欲寫入至可復(fù)寫式非易失性存儲器模塊106的數(shù)據(jù)與指令,或來自于可復(fù)寫式非易失性存儲器模塊106的數(shù)據(jù)。此外,寫入緩存單元410(0)~410(511)也可用于存儲器存儲裝置100中存儲器控制器104(或存儲器管理電路302)執(zhí)行背景工作時數(shù)據(jù)的暫存區(qū)域。例如,背景工作為映射表存儲、數(shù)據(jù)合并(garbagecollection)及/或錯誤校正(errorcorrection)等。請再參照圖3,在本發(fā)明一范例實施例中,存儲器控制器104還包括電源管理電路310與錯誤檢查與校正電路312。電源管理電路310是電性連接至存儲器管理電路302并且用以控制存儲器存儲裝置100的電源。錯誤檢查與校正電路312是電性連接至存儲器管理電路302并且用以執(zhí)行錯誤檢查與校正程序以確保數(shù)據(jù)的正確性。具體來說,當(dāng)存儲器管理電路302從主機系統(tǒng)1000中接收到寫入指令時,錯誤檢查與校正電路312會為對應(yīng)此寫入指令的數(shù)據(jù)產(chǎn)生對應(yīng)的錯誤檢查與校正碼(ErrorCheckingandCorrectingCode,簡稱ECCCode),并且存儲器管理電路302會將對應(yīng)此寫入指令的數(shù)據(jù)與對應(yīng)的錯誤檢查與校正碼寫入至可復(fù)寫式非易失性存儲器模塊106中。之后,當(dāng)存儲器管理電路302從可復(fù)寫式非易失性存儲器模塊106中讀取數(shù)據(jù)時會同時讀取此數(shù)據(jù)對應(yīng)的錯誤檢查與校正碼,并且錯誤檢查與校正電路312會依據(jù)此錯誤檢查與校正碼對所讀取的數(shù)據(jù)執(zhí)行錯誤檢查與校正程序。圖5A~圖5D是根據(jù)一范例實施例所示出的緩沖存儲器存取方法的示意圖。請參照圖5A~圖5D,必須了解的是,在一般的緩沖存儲器308的存取中,當(dāng)主機系統(tǒng)1000執(zhí)行寫入操作時,存儲器控制器104(或存儲器管理電路302)會將此寫入操作的寫入數(shù)據(jù)暫存至緩沖存儲器308中未被占用的寫入緩存單元中。當(dāng)寫入數(shù)據(jù)順利地暫存至緩沖存儲器308后,存儲器控制器104(或存儲器管理電路302)會發(fā)送一個確認信息給主機系統(tǒng)1000,以通知主機系統(tǒng)1000此寫入操作已完成。然而,當(dāng)緩沖存儲器308中的寫入緩存單元410(0)~410(511)皆被占用時,來自主機系統(tǒng)1000的寫入數(shù)據(jù)會無法即時地被寫入緩沖存儲器308,并增加主機系統(tǒng)1000的延遲(latency)時間。為了避免延遲時間過長而造成逾時,在本范例實施例中,在寫入緩存單元410(0)~410(511)已被占用預(yù)定的空間后,存儲器控制器104(或存儲器管理電路302)會減緩寫入數(shù)據(jù)至緩沖存儲器308的頻率。例如,在被占用的寫入緩存單元的數(shù)目小于預(yù)先定義值,且需暫存數(shù)據(jù)至緩沖存儲器308時,存儲器控制器104(或存儲器管理電路302)會直接將數(shù)據(jù)暫存至寫入緩存單元410(0)~410(511);而在被占用的寫入緩存單元的數(shù)目大于或等于預(yù)先定義值,且需暫存數(shù)據(jù)至緩沖存儲器308時,存儲器控制器104(或存儲器管理電路302)會根據(jù)預(yù)先定義時間間隔來使用寫入緩存單元410(0)~410(511)。在此,預(yù)先定義時間間隔會被設(shè)定為主機系統(tǒng)1000所能允許的最長延遲時間,例如,10ms。此外,存儲器控制器104(或存儲器管理電路302)還 會記錄運行在存儲器存儲裝置100中每個背景工作的執(zhí)行時間,并且記錄最長的執(zhí)行時間(以下稱為,第一執(zhí)行時間)。例如,執(zhí)行時間最長的背景工作為映射表存儲,且其執(zhí)行時間為1280ms。存儲器控制器104(或存儲器管理電路302)會根據(jù)上述預(yù)先定義時間間隔及第一執(zhí)行時間,來設(shè)定上述預(yù)先定義值。具體來說,在本范例時實施例中,存儲器控制器104(或存儲器管理電路302)會將第一時間除以預(yù)先定義時間間隔以獲得第一數(shù)值,并且將寫入緩存單元的數(shù)目減去此第一數(shù)值所獲得的值作為預(yù)先定義值。例如,在第一時間為1280,預(yù)先定義時間間隔為10且寫入緩存單元的個數(shù)為512的例子中,第一數(shù)值為128(即,1280/10=128),且預(yù)先定義值為384(即,512-128=384)。也就是說,存儲器控制器104(或存儲器管理電路302)會保留緩沖存儲器308中的128個寫入緩存單元,用以調(diào)節(jié)主機系統(tǒng)1000的數(shù)據(jù)寫入。必須了解的是,所述“保留緩沖存儲器308中128個寫入緩存單元”并非用于保留特定的128個寫入緩存單元,而是當(dāng)緩沖存儲器308中未被占用的寫入緩存單元剩下128個時,此些128個寫入緩存單元會被用以僅接收來自主機系統(tǒng)1000的寫入數(shù)據(jù),以調(diào)節(jié)主機系統(tǒng)1000的寫入操作,以避免主機系統(tǒng)1000的寫入延遲時間過長。在本范例實施例中,當(dāng)存儲器控制器104(或存儲器管理電路302)從主機系統(tǒng)1000接收寫入數(shù)據(jù)且緩沖存儲器308中被占用的寫入緩存單元的數(shù)目小于此預(yù)先定義值時,存儲器控制器104(或存儲器管理電路302)會將此寫入數(shù)據(jù)寫入緩沖存儲器308,并直接回復(fù)對應(yīng)此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)1000。當(dāng)存儲器控制器104(或存儲器管理電路302)從主機系統(tǒng)1000接收寫入數(shù)據(jù)且緩沖存儲器308中被占用的寫入緩存單元的數(shù)目非小于此預(yù)先定義值時,存儲器控制器104(或存儲器管理電路302)會將此寫入數(shù)據(jù)寫入緩沖存儲器308,并在預(yù)先定義時間間隔后才回復(fù)對應(yīng)此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)1000。如圖5A所示,假設(shè)目前緩沖存儲器308被占用的寫入緩存單元的數(shù)目為383個(例如,被占用的寫入緩存單元為寫入緩存單元410(0)~410(382))。當(dāng)存儲器控制器104(或存儲器管理電路302)從主機系統(tǒng)1000接收一個寫入數(shù)據(jù)WDATA1時,存儲器控制器104(或存儲器管理電路302)會判斷出目前緩沖存儲器308中被占用的寫入緩存單元的數(shù)目為小于上述預(yù)先定義值(即,384)。接著,存儲器控制器104(或存儲器管理電路 302)會將此寫入操作的寫入數(shù)據(jù)WDATA1直接暫存至未被占用的寫入緩存單元中(例如,寫入緩存單元410(383)),并立即傳送指示已完成此寫入數(shù)據(jù)WDATA1的寫入的確認信息給主機系統(tǒng)1000。例如,主機系統(tǒng)1000可以再執(zhí)行下一個寫入操作。如圖5B所示,假設(shè)目前緩沖存儲器308被占用的寫入緩存單元的數(shù)目為384個(例如,被占用的寫入緩存單元為寫入緩存單元410(0)~410(383))。當(dāng)存儲器控制器104(或存儲器管理電路302)從主機系統(tǒng)1000接收一個寫入數(shù)據(jù)WDATA2時,存儲器控制器104(或存儲器管理電路302)會判斷出目前緩沖存儲器308中被占用的寫入緩存單元的數(shù)目為非小于上述預(yù)先定義值(即,384)。接著,存儲器控制器104(或存儲器管理電路302)會將此寫入操作的寫入數(shù)據(jù)WDATA2直接暫存至未被占用的寫入緩存單元中(例如,寫入緩存單元410(384)),并在上述預(yù)先定義時間間隔(即,10ms)后才傳送指示已完成此寫入數(shù)據(jù)WDATA2的寫入的確認信息給主機系統(tǒng)1000。也就是說,當(dāng)寫入緩存單元的數(shù)目為非小于上述預(yù)先定義值時,主機系統(tǒng)1000在執(zhí)行一個寫入操作后,需等待預(yù)先定義時間間隔才能再執(zhí)行下一個寫入操作。如圖5C所示,假設(shè)目前緩沖存儲器308被占用的寫入緩存單元的數(shù)目為385個(例如,被占用的寫入緩存單元為寫入緩存單元410(0)~410(384))。當(dāng)存儲器控制器104(或存儲器管理電路302)從主機系統(tǒng)1000接收一個寫入數(shù)據(jù)WDATA3時,存儲器控制器104(或存儲器管理電路302)會判斷出目前緩沖存儲器308中被占用的寫入緩存單元的數(shù)目為非小于上述預(yù)先定義值(即,384)。接著,存儲器控制器104(或存儲器管理電路302)會將此寫入操作的寫入數(shù)據(jù)WDATA3直接暫存至未被占用的寫入緩存單元中(例如,寫入緩存單元410(385)),并在上述預(yù)先定義時間間隔后才傳送指示已完成此寫入數(shù)據(jù)WDATA3的寫入的確認信息給主機系統(tǒng)1000。如圖5D所示,假設(shè)目前緩沖存儲器308被占用的寫入緩存單元的數(shù)目為511個(例如,被占用的寫入緩存單元為寫入緩存單元410(0)~410(510))。當(dāng)存儲器控制器104(或存儲器管理電路302)從主機系統(tǒng)1000接收一個寫入數(shù)據(jù)WDATA4時,存儲器控制器104(或存儲器管理電路302)會判斷出目前緩沖存儲器308中被占用的寫入緩存單元的數(shù)目為非小于上述預(yù)先定義值(即,384)。接著,存儲器控制器104(或存儲器管理電路302)會將此寫入 操作的寫入數(shù)據(jù)WDATA4直接暫存至未被占用的寫入緩存單元中(例如,寫入緩存單元410(511)),并在上述預(yù)先定義時間間隔后才傳送指示已完成此寫入數(shù)據(jù)WDATA4的寫入的確認信息給主機系統(tǒng)1000。特別是,由于此時緩沖存儲器308中的寫入緩存單元410(0)~410(511)皆被占用,因此存儲器控制器104(或存儲器管理電路302)會在可復(fù)寫式非易失性存儲器模塊106的背景工作皆已完成下,將所有寫入緩存單元410(0)~410(511)的數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲器模塊106中,以清空寫入緩存單元410(0)~410(511)中的數(shù)據(jù),用以再次接收來自主機系統(tǒng)1000新的寫入數(shù)據(jù)或用于執(zhí)行背景工作。例如,以運行所需執(zhí)行時間為1280ms的映射表存儲為例,假設(shè)目前被占用的384個寫入緩存單元中,被占用的寫入緩存單元410(0)~410(383)中包含了存儲器控制器104(或存儲器管理電路302)執(zhí)行映射表存儲工作所占用的寫入緩存單元(即,映射表存儲正被執(zhí)行)。當(dāng)主機系統(tǒng)1000欲執(zhí)行連續(xù)的寫入操作時,如圖5B至圖5D所示,由于當(dāng)被占用的寫入緩存單元的個數(shù)非小于384個時,主機系統(tǒng)1000執(zhí)行一個寫入操作后需等待10ms才能再執(zhí)行下一個寫入操作。故當(dāng)剩下未被占用的128個寫入緩存單元(即,寫入緩存單元410(384)~410(511))皆用于存儲主機系統(tǒng)1000連續(xù)的寫入數(shù)據(jù)寫入時,其也需花費1280ms。藉此,當(dāng)寫入緩存單元410(384)~410(511)被寫滿時,背景工作(即,映射表存儲)也執(zhí)行結(jié)束,此時存儲器控制器104(或存儲器管理電路302)會將緩沖存儲器308中所有寫入緩存單元410(0)~410(511)的數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲器模塊106中,以清空寫入緩存單元410(0)~410(511)中的數(shù)據(jù),用以再次接收來自主機系統(tǒng)1000新的寫入數(shù)據(jù)或用于執(zhí)行背景工作?;耍捎行У乇苊猱?dāng)背景工作正被執(zhí)行且緩沖區(qū)308中寫入緩存單元被占滿時,主機系統(tǒng)1000執(zhí)行寫入所產(chǎn)生的逾時的問題。必須了解的是,圖5A至圖5D所示出的示意圖僅方便于理解。在另一實施例中,存儲器控制器104(或存儲器管理電路302)對于寫入緩存單元中數(shù)據(jù)的寫入方式并非按照寫入緩存單元410(0)~411(511)的排列方式。其中,存儲器控制器104(或存儲器管理電路302)可以任意地使用緩沖存儲器308中目前未被占用的部份寫入緩存單元來執(zhí)行背景工作,或者將主機系統(tǒng)1000的寫入數(shù)據(jù)任意地寫入緩沖存儲器308中目前未被占用的寫入緩存單元的其中之一。此外,存儲器控制器104(或存儲器管理電路302)也僅需根據(jù)目前緩 沖存儲器308中被占用的寫入緩存單元的個數(shù)以及預(yù)先定義值,用以判斷將來自主機系統(tǒng)1000的寫入數(shù)據(jù)暫存至緩沖存儲器308后,是否在預(yù)先定義時間間隔后才傳送此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)1000。圖6是根據(jù)一范例實施例所示出的緩沖存儲器存取方法的流程圖。請參照圖6。在步驟S601中,存儲器控制器104(或存儲器管理電路302)會從主機系統(tǒng)1000接收一個寫入數(shù)據(jù)。在步驟S603中,存儲器控制器104(或存儲器管理電路302)會判斷目前緩沖存儲器308的寫入緩存單元410(0)~410(511)中,被占用的寫入緩存單元的數(shù)目是否非小于預(yù)先定義值。倘若目前緩沖存儲器308的寫入緩存單元410(0)~410(511)中,被占用的寫入緩存單元的數(shù)目小于預(yù)先定義值,則在步驟S605中,存儲器控制器104(或存儲器管理電路302)會將寫入數(shù)據(jù)暫存至寫入緩存單元之中未被占用的其中一個寫入緩存單元,并傳送對應(yīng)此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)1000。倘若目前緩沖存儲器308的寫入緩存單元410(0)~410(511)中,被占用的寫入緩存單元的數(shù)目非小于預(yù)先定義值,則在步驟S607中,存儲器控制器104(或存儲器管理電路302)會將寫入數(shù)據(jù)暫存至寫入緩存單元之中未被占用的其中一個寫入緩存單元,并在一預(yù)先定義時間間隔后傳送對應(yīng)此寫入數(shù)據(jù)的確認信息給主機系統(tǒng)1000。當(dāng)該存儲器控制器104(或存儲器管理電路302)傳送該確認信息后,主機系統(tǒng)1000接收到上述步驟S605或步驟S607的確認信息,主機系統(tǒng)1000即可以再發(fā)送另一個寫入數(shù)據(jù),而存儲器控制器104(或存儲器管理電路302)會再執(zhí)行步驟S601以從主機系統(tǒng)1000接收此另一個寫入數(shù)據(jù)。綜上所述,本發(fā)明提出一種兩段式的緩沖存儲器的存取,當(dāng)緩沖存儲器中的寫入緩存單元被占用的數(shù)目小于預(yù)先定義值時,存儲器控制器(或存儲器管理電路)會直接將寫入數(shù)據(jù)暫存至一個未被占用的寫入緩存單元中,并立即回復(fù)寫入數(shù)據(jù)的確認信息給主機系統(tǒng);當(dāng)緩沖存儲器中的寫入緩存單元被占用的數(shù)目非小于預(yù)先定義值時,存儲器控制器(或存儲器管理電路)會直接將寫入數(shù)據(jù)暫存至一個未被占用的寫入緩存單元中,并在預(yù)先定義時間間隔后才回復(fù)寫入數(shù)據(jù)的確認信息給主機系統(tǒng)?;?,可以有效降低主機系統(tǒng)寫入操作的延遲時間,以有效解決當(dāng)緩沖存儲器被寫滿時,主機系統(tǒng)寫入 操作等待時間過長的問題。最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
珲春市| 大荔县| 漾濞| 墨玉县| 桐城市| 汶上县| 宿迁市| 赤城县| 满洲里市| 大石桥市| 龙岩市| 平潭县| 诸城市| 浮梁县| 高邑县| 清河县| 新源县| 府谷县| 水富县| 北流市| 清流县| 庄河市| 皋兰县| 汉中市| 湘潭县| 靖宇县| 海晏县| 营山县| 济南市| 玉田县| 监利县| 麦盖提县| 凭祥市| 翁牛特旗| 大新县| 略阳县| 宜兰县| 宣恩县| 桃园县| 景宁| 海门市|