TWI709975B - 寫入控制方法以及資料儲存裝置及其控制器 - Google Patents
寫入控制方法以及資料儲存裝置及其控制器 Download PDFInfo
- Publication number
- TWI709975B TWI709975B TW109116137A TW109116137A TWI709975B TW I709975 B TWI709975 B TW I709975B TW 109116137 A TW109116137 A TW 109116137A TW 109116137 A TW109116137 A TW 109116137A TW I709975 B TWI709975 B TW I709975B
- Authority
- TW
- Taiwan
- Prior art keywords
- write
- commands
- buffer
- command
- data
- Prior art date
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供一種寫入控制方法以及資料儲存裝置及其控制器。該寫入控制方法可包含:從主機接收命令且執行命令,且進行判斷操作以產生判斷結果;因應判斷結果,開始進行寫入收集;收集且處置寫入命令以透過一緩衝記憶體緩衝寫入命令的資料,且進行其它判斷操作以產生其它判斷結果;因應其它判斷結果,依據一或多個已收集且處置的寫入命令的數量判斷其資料是否已填滿該緩衝記憶體中的一寫入緩衝區;以及因應該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區,快刷該寫入緩衝區,以將該寫入緩衝區中的資料寫入非揮發性記憶體。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種寫入控制方法以及相關之資料儲存裝置及其控制器。
快閃記憶體可廣泛地應用於各種可攜式或非可攜式資料儲存裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)中。以常用的NAND型快閃記憶體而言,最初有單階細胞(single level cell,SLC)、多階細胞(multiple level cell,MLC)等類型的快閃記憶體。由於記憶體的技術不斷地發展,較新的資料儲存裝置產品可採用三階細胞(triple level cell,TLC)快閃記憶體,甚至四階細胞(quadruple level cell,QLC)快閃記憶體。為了確保資料儲存裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理其內部運作。
依據相關技術,有了這些管理機制的資料儲存裝置還是有不足之處。舉例來說,於一特定模式中,該資料儲存裝置從主機(host device)接收的資料可直接進入位於一控制器積體電路中的內部記憶體,而非進入位於該控制器積體電路以外的外部記憶體。由於該內部記憶體的儲存容量遠小於該外部記憶體的儲存容量,故該內部記憶體中的緩衝空間相當有限。雖然該特定模式可用來提升該資料儲存裝置的寫入效能,但該內部記憶體的有限緩衝空間可對應於將緩衝資料寫入快閃記憶體的提早觸發。由於緩衝資料的資料量不足,故快閃記憶體中的一部分的快閃記憶體裸晶(die)處於閒置狀態。當主機發出讀取命令時,快閃記憶體中的快閃記憶體裸晶的不同時閒置可造成該快閃記憶體的整體傳輸帶寬(bandwidth)下降,使該資料儲存裝置的整體效能下降。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下實現具有可靠的管理機制之資料儲存裝置。
本發明之一目的在於提供一種寫入控制方法以及相關之資料儲存裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種寫入控制方法以及相關之資料儲存裝置及其控制器,以在沒有副作用或較不可能帶來副作用之狀況下將可靠的管理機制賦予資料儲存裝置。
本發明之至少一實施例提供一種寫入控制方法,其中該寫入控制方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory,NV memory)以及用來控制該非揮發性記憶體的存取之一記憶體控制器,該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),以及上述至少一非揮發性記憶體元件包含複數個區塊。該寫入控制方法可包含:從一主機(host device)接收至少一命令且執行所述至少一命令;判斷一目前時間與一起始時間之間的一時間區間的長度是否達到一預定時間長度門檻值;判斷在該時間區間以內從該主機接收到的複數個命令的數量是否達到一預定命令數門檻值,其中該複數個命令包含所述至少一命令;判斷在該複數個命令中的多個讀取命令與多個寫入命令之各自的數量是否分別大於一預定讀取命令數門檻值與一預定寫入命令數門檻值;因應該時間區間的該長度達到該預定時間長度門檻值、該複數個命令的該數量達到該預定命令數門檻值、且該多個讀取命令與該多個寫入命令之各自的所述數量分別大於該預定讀取命令數門檻值與該預定寫入命令數門檻值,開始進行寫入收集(write collection);針對該寫入收集,收集從該主機接收之一寫入命令,且處置該寫入命令以透過一緩衝記憶體緩衝該寫入命令的資料,其中該緩衝記憶體位於該記憶體控制器;判斷另一目前時間與另一起始時間之間的另一時間區間的長度是否大於另一預定時間長度門檻值;判斷是否沒有額外的主機命令;因應該另一時間區間的該長度並未大於該另一預定時間長度門檻值、且並未發生沒有所述額外的主機命令的情況,依據一或多個已收集且處置的寫入命令的數量判斷該一或多個已收集且處置的寫入命令的資料是否已填滿該緩衝記憶體中的一寫入緩衝區,其中該一或多個已收集且處置的寫入命令包含該寫入命令;以及因應該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區,快刷(Flush)該寫入緩衝區,以將該寫入緩衝區中的資料寫入該非揮發性記憶體。
本發明之至少一實施例提供一種資料儲存裝置,其可包含:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件,以及上述至少一非揮發性記憶體元件包含複數個區塊;以及一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作。該控制器可包含一緩衝記憶體,用來暫時地儲存資訊;以及一處理電路,其中該處理電路可依據來自一主機(host device)的複數個主機命令(host command)控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器從該主機接收至少一命令,且執行所述至少一命令;該控制器判斷一目前時間與一起始時間之間的一時間區間的長度是否達到一預定時間長度門檻值;該控制器判斷在該時間區間以內從該主機接收到的複數個命令的數量是否達到一預定命令數門檻值,其中該複數個命令包含所述至少一命令,且屬於該複數個主機命令;該控制器判斷在該複數個命令中的多個讀取命令與多個寫入命令之各自的數量是否分別大於一預定讀取命令數門檻值與一預定寫入命令數門檻值;因應該時間區間的該長度達到該預定時間長度門檻值、該複數個命令的該數量達到該預定命令數門檻值、且該多個讀取命令與該多個寫入命令之各自的所述數量分別大於該預定讀取命令數門檻值與該預定寫入命令數門檻值,該控制器開始進行寫入收集;針對該寫入收集,該控制器收集從該主機接收之一寫入命令,且處置該寫入命令以透過該緩衝記憶體緩衝該寫入命令的資料;該控制器判斷另一目前時間與另一起始時間之間的另一時間區間的長度是否大於另一預定時間長度門檻值;該控制器判斷是否沒有額外的主機命令;因應該另一時間區間的該長度並未大於該另一預定時間長度門檻值、且並未發生沒有所述額外的主機命令的情況,該控制器依據一或多個已收集且處置的寫入命令的數量判斷該一或多個已收集且處置的寫入命令的資料是否已填滿該緩衝記憶體中的一寫入緩衝區,其中該一或多個已收集且處置的寫入命令包含該寫入命令,且屬於該複數個主機命令;以及因應該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區,該控制器快刷該寫入緩衝區,以將該寫入緩衝區中的資料寫入該非揮發性記憶體。
本發明之至少一實施例提供一種資料儲存裝置之控制器,其中該資料儲存裝置包含該控制器與一非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體元件,以及上述至少一非揮發性記憶體元件包含複數個區塊。該控制器可包含一緩衝記憶體,用來暫時地儲存資訊;以及一處理電路,其中該處理電路可依據來自一主機的複數個主機命令控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器從該主機接收至少一命令,且執行所述至少一命令;該控制器判斷一目前時間與一起始時間之間的一時間區間的長度是否達到一預定時間長度門檻值;該控制器判斷在該時間區間以內從該主機接收到的複數個命令的數量是否達到一預定命令數門檻值,其中該複數個命令包含所述至少一命令,且屬於該複數個主機命令;該控制器判斷在該複數個命令中的多個讀取命令與多個寫入命令之各自的數量是否分別大於一預定讀取命令數門檻值與一預定寫入命令數門檻值;因應該時間區間的該長度達到該預定時間長度門檻值、該複數個命令的該數量達到該預定命令數門檻值、且該多個讀取命令與該多個寫入命令之各自的所述數量分別大於該預定讀取命令數門檻值與該預定寫入命令數門檻值,該控制器開始進行寫入收集;針對該寫入收集,該控制器收集從該主機接收之一寫入命令,且處置該寫入命令以透過該緩衝記憶體緩衝該寫入命令的資料;該控制器判斷另一目前時間與另一起始時間之間的另一時間區間的長度是否大於另一預定時間長度門檻值;該控制器判斷是否沒有額外的主機命令;因應該另一時間區間的該長度並未大於該另一預定時間長度門檻值、且並未發生沒有所述額外的主機命令的情況,該控制器依據一或多個已收集且處置的寫入命令的數量判斷該一或多個已收集且處置的寫入命令的資料是否已填滿該緩衝記憶體中的一寫入緩衝區,其中該一或多個已收集且處置的寫入命令包含該寫入命令,且屬於該複數個主機命令;以及因應該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區,該控制器快刷該寫入緩衝區,以將該寫入緩衝區中的資料寫入該非揮發性記憶體。
本發明的好處之一是,透過仔細設計之管理機制,本發明能針對該控制器的運作進行妥善的控制,尤其,使資料儲存裝置能於接收到包含寫入命令與讀取命令的眾多命令時進行命令重新排列(command rearrangement)。由於資料儲存裝置能於接收到上述眾多命令時進行命令重新排列,故本發明能大幅地降低快閃記憶體中的快閃記憶體裸晶的不同時閒置的機率,以提升快閃記憶體的整體傳輸帶寬(bandwidth),並且提升該資料儲存裝置的整體效能。另外,依據本發明之實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於傳統架構,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到資料儲存裝置之最佳化效能。
請參考第1圖,第1圖為依據本發明一第一實施例之一種資料儲存裝置100與一主機(Host Device)50的示意圖。例如:資料儲存裝置100可為固態硬碟(Solid State Drive,SSD)。另外,主機50的例子可包含(但不限於):多功能行動電話(Multifunctional Mobile Phone)、平板電腦(Tablet)、以及個人電腦(Personal Computer)諸如桌上型電腦與膝上型電腦。依據本實施例,資料儲存裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(Non-Volatile Memory,NV Memory)120,其中該控制器係用來存取(Access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。
非揮發性記憶體120可包含複數個非揮發性記憶體元件(NV memory element)122-1、122-2、…與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、…與122-N可分別為複數個快閃記憶體晶片或複數個快閃記憶體裸晶(Die),但本發明並不限於此。此外,資料儲存裝置100可更包括揮發性記憶體元件130以供進行資料緩衝,其中,揮發性記憶體元件130較佳為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。在記憶體控制器110的控制下,資料儲存裝置100可利用揮發性記憶體元件130的儲存空間的至少一部分(例如一部分或全部)作為資料緩衝空間,以供暫時地儲存資料,例如在存取非揮發性記憶體120的期間。另外,揮發性記憶體元件130為非必要元件。
記憶體控制器110可包含處理電路諸如微處理器112、儲存器諸如一唯讀記憶體(Read Only Memory,ROM)112M、控制邏輯電路114、緩衝記憶體116、與傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。緩衝記憶體116較佳為靜態隨機存取記憶體(Static Random Access Memory,SRAM)。舉例來說,記憶體控制器110可利用緩衝記憶體116諸如SRAM作為第一層快取(Cache),並利用揮發性記憶體元件130諸如DRAM作為第二層快取。DRAM的資料儲存量較佳大於緩衝記憶體116的資料儲存量,而緩衝記憶體116所緩衝處理的資料可源自於DRAM或非揮發性記憶體120。
本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可包含至少一錯誤更正碼(Error Correction Code,簡稱ECC)電路(未顯示),以保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準或非揮發性記憶體快捷(Non-Volatile Memory Express,NVME)標準)且可依據該特定通訊標準進行通訊,尤其,可依據該特定通訊標對主機50進行通訊。
於本實施例中,主機50可傳送複數個主機命令(Host Command)至資料儲存裝置100,記憶體控制器110再依據主機命令而對非揮發性記憶體120進行存取(例如讀取或寫入資料),其中上述資料較佳為源自於主機50之使用者資料。主機命令包括邏輯位址,例如:邏輯區塊位址(Logical Block Address)。記憶體控制器110可接收主機命令並將主機命令分別轉譯成記憶體操作命令(簡稱操作命令),再以操作命令控制非揮發性記憶體120讀取、寫入(Write)/編程(Program)非揮發性記憶體120當中特定實體位址之頁面(Page)。記憶體控制器110將資料的邏輯位址與實體位址之間的映射關係記錄於邏輯對實體位址映射表(Logical-to-Physical Address Mapping Table,簡稱「L2P映射表」),其中,實體位址可由通道(Channel)編號、邏輯單元編號(Logical Unit Number,LUN)、平面(Plane)編號、區塊編號、頁面編號以及偏移量(Offset)所組成。於某些實施例中,實體位址的實施可予以變化。例如,實體位址可包含通道編號、邏輯單元編號、平面編號、區塊編號、頁面編號、及/或偏移量。
L2P映射表可儲存於非揮發性記憶體120中之一系統區塊中,且可分割成多個群組(Group)映射表,系統區塊較佳為加密區塊且以SLC模式進行資料的編程。記憶體控制器110可依緩衝記憶體116的容量大小而將該多個群組映射表中的一部分或全部群組映射表從非揮發性記憶體120載入緩衝記憶體116,以供快速參考,但本發明不限於此。當使用者資料更新時,記憶體控制器110可依據使用者資料的最新映射關係來更新群組映射表。該多個群組映射表中的任何群組映射表的大小較佳等於非揮發性記憶體元件122-n的一個頁面(Page)的大小,例如16KB(kilobytes;千位元組),其中符號「n」可代表區間[1, N]中之任一正整數,但本發明不限於此。例如,上述任何群組映射表的大小可小於頁面的大小,例如4 KB或1 KB。當然,上述任何群組映射表的大小亦可等於多個非揮發性記憶體元件122-n的一個頁面的大小。
非揮發性記憶體元件122-n可包含多個平面(Planes),諸如平面#0與#1,每一個平面包含多個區塊,每一區塊包含多個頁面。在此情況下,記憶體控制器110可將平面#0與#1之各自的一個頁面組合成一個大頁面,則大頁面的大小等於一個頁面的大小的2倍,諸如32 KB。
另外,記憶體控制器110可將多個通道,例如4個通道CH0~CH3,中各自的一個非揮發性記憶體元件122-n之各自的一個大頁面組合成一個超級頁面(Super Page),且此4個非揮發性記憶體元件122-n可由同一晶片啟用(Chip Enable,CE)訊號所控制。在此設定下,超級頁面的大小SP_SIZE等於128 KB(例如:(32 KB) * 4 = 128 KB),但本發明不限於此。例如,在通道數量等於8的設定下,諸如通道CH0~CH7,通道CH0~CH7中的各自的一個非揮發性記憶體元件之各自的一個大頁面所組成的超級頁面的大小SP_SIZE等於256 KB(例如:(32 KB) * 8 = 256 KB)。
此外,記憶體控制器110對非揮發性記憶體120進行編程運作的最小單位可為一個頁面,而記憶體控制器110對非揮發性記憶體120進行抹除(Erase)運作的最小單位可為一個區塊。
在寫入快取(Write Cache)模式中,主機50可發出寫入命令以請求記憶體控制器110將一筆使用者資料(簡稱資料)寫入非揮發性記憶體120。記憶體控制器110可從主機50接收或下載這筆資料、利用緩衝記憶體116對該筆資料進行緩衝、且利用揮發性記憶體元件130暫存該筆資料,接著,直接回覆寫入命令執行完成的訊息至主機50。之後,當寫入條件滿足時,例如累積的資料長度等於或大於頁面長度或超級頁面長度,記憶體控制器110再將快取的資料寫入至非揮發性記憶體120,但本發明不限於此。
另外,在寫入快取(Write Cache)模式下,揮發性記憶體元件130為非必要(Optional)元件。舉例來說,資料儲存裝置100將從主機50接收的資料暫存在緩衝記憶體116諸如SRAM,接著,直接回覆寫入命令執行完成的訊息至主機50。由於SRAM的儲存容量遠小於DRAM的儲存容量,故SRAM中的寫入緩衝區的大小相當有限,例如可為512 KB。以4個通道CH0~CH3為例,超級頁面的大小SP_SIZE等於128 KB,因此,緩衝記憶體116可暫存4筆超級頁面大小的資料。以8個通道CH0~CH7為例,超級頁面的大小SP_SIZE等於256 KB,因此,緩衝記憶體116僅可暫存2筆超級頁面大小的資料。
在真實的情況下,主機50的邏輯區塊位址(Logical Block Address,LBA)序列可以相當複雜,例如,主機50通常會發出混和寫入命令以及讀取命令至資料儲存裝置100的記憶體控制器110,如第2圖所示,如果可以將寫入命令(標示為「W」)以及讀取命令(標示為「R」)進行命令重新排列(Command Rearrangement),再將寫入命令的資料暫存在緩衝記憶體116,待已暫存在緩衝記憶體116中的資料之大小等於一預定資料大小諸如一或多個超級頁面的大小(例如:該預定資料大小等於512KB)時,再將已暫存在緩衝記憶體116中的資料寫入非揮發性記憶體120中的超級頁面,則可顯著地提升寫入命令的執行效率。
第3圖繪示依據本發明一實施例之一種寫入控制方法的流程圖。此寫入控制方法可應用於資料儲存裝置100,並由資料儲存裝置100的記憶體控制器110所執行,且可針對主機50發出混和寫入命令以及讀取命令進行資料儲存裝置100的寫入控制。本發明寫入控制方法可使資料儲存裝置100能進行上述命令重新排列以大幅地提升寫入命令的執行效率,且不影響讀取命令的執行效率,進而提升資料儲存裝置100的整體效能。
在第3圖所示工作流程中,記憶體控制器110可透過步驟S10~S18偵測主機50是否有顯著的混和讀取與寫入行為,並且於偵測到主機50有顯著的混和讀取與寫入行為時,透過從步驟S20起的一系列步驟在不導致任何超時(Timeout)的情況下進行上述命令重新排列。步驟S10~S18可統稱為本發明寫入控制方法的初始步驟,步驟S20~S36可統稱為本發明寫入控制方法的寫入收集(Write Collection)步驟且其一部分步驟諸如S26~S30可視為超時管理步驟,每一步驟的說明如下所述。
於步驟S10中,記憶體控制器110記錄一起始時間T_start0。起始時間T_start0可代表用來觀測主機50的行為的一時間視窗的參考時間。記憶體控制器110可進行時間量測以依據從起始時間T_start0開始的一時間區間的長度判斷該時間區間是否達到這個時間視窗的預定大小。
於步驟S12中,記憶體控制器110從主機50接收至少一命令(例如一或多個命令)諸如命令CMD,且執行上述至少一命令諸如命令CMD。
於步驟S14中,記憶體控制器110判斷一目前時間T_current0與起始時間T_start0之間的時間區間[T_start0, T_current0]的長度(T_current0 - T_start0)是否達到(例如大於或等於)一預定時間長度門檻值Th_Time0。如果是,進入步驟S16;如果否,進入步驟S12。依據本實施例,預定時間長度門檻值Th_Time0等於20 ms(millisecond;毫秒),但本發明並不限於此。
於步驟S16中,記憶體控制器110判斷在時間區間[T_start0, T_current0]以內從主機50接收到的複數個命令{CMD}的數量N_CMD是否達到(例如大於或等於)一預定命令數門檻值Th_CMD。如果是,進入步驟S18;如果否,進入步驟S10。依據本實施例,Th_CMD = 256,但本發明並不限於此。這個判斷操作中的該複數個命令{CMD}包含上述至少一命令諸如命令CMD(例如步驟S12的多次執行之各自的命令CMD)。另外,步驟S16中的時間區間[T_start0, T_current0]的長度(T_current0 - T_start0)可等於或略大於預定時間長度門檻值Th_Time0,尤其,可在忽略時間誤差的狀況下被視為等於預定時間長度門檻值Th_Time0。
於步驟S18中,記憶體控制器110判斷在該複數個命令{CMD}中的多個讀取命令{RCMD}與多個寫入命令{WCMD}之各自的數量N_RCMD與N_WCMD是否分別大於一預定讀取命令數門檻值Th_RCMD與一預定寫入命令數門檻值Th_WCMD。如果是,進入步驟S20;如果否,進入步驟S10。依據本實施例,Th_RCMD = 16且Th_WCMD = 16,但本發明並不限於此。這個判斷操作的判斷結果可指出主機50是否有顯著的混和讀取與寫入行為。因應連續執行的步驟S14、S16與S18之各自的判斷結果均為「是」(這表示主機50有顯著的混和讀取與寫入行為),記憶體控制器110開始進行寫入收集,例如,進行從步驟S20起的某些後續步驟。由於預定時間長度門檻值Th_Time0典型地很小,故在進入步驟S20時,這些混和讀取與寫入行為剛開始出現。
於步驟S20中,記憶體控制器110記錄一起始時間T_start1。起始時間T_start1可代表用來偵測是否即將發生超時的參考時間。記憶體控制器110可進行時間量測以依據從起始時間T_start1開始的一時間區間的長度判斷是否即將發生超時。
於步驟S22中,記憶體控制器110將索引i設定為初始值諸如0。
於步驟S24中,記憶體控制器110收集從主機50接收之一寫入命令WCMD(i),且處置寫入命令WCMD(i)以透過緩衝記憶體116諸如SRAM緩衝寫入命令WCMD(i)的資料。例如,透過多次執行包含步驟S24、S26、S30、S32等的迴圈,記憶體控制器110可開始收集並處置該複數個命令{CMD}的後續命令中的寫入命令{WCMD(0), WCMD(1), …},但本發明不限於此。
於步驟S26中,記憶體控制器110判斷是否一目前時間T_current1與起始時間T_start1之間的時間區間[T_start1, T_current1]的長度(T_current1 - T_start1)大於一預定時間長度門檻值Th_Time1或一累積資料量ACCU_DATA大於一預定累積資料量門檻值Th_Data。如果是(例如:(T_current1 - T_start1) > Th_Time1或ACCU_DATA > Th_Data),進入步驟S28;如果否(例如:(T_current1 - T_start1) > Th_Time1且ACCU_DATA > Th_Data),進入步驟S30。依據本實施例,預定時間長度門檻值Th_Time1等於10 ms,預定累積資料量門檻值Th_Data等於51200 KB,且累積資料量ACCU_DATA等於(SP_SIZE * (i + 1)),但本發明並不限於此。例如,預定時間長度門檻值Th_Time1及/或預定累積資料量門檻值Th_Data可予以變化。於某些實施例中,累積資料量ACCU_DATA與預定累積資料量門檻值Th_Data可分別被取代為索引i與一預定索引門檻值Th_Index,其中預定索引門檻值Th_Index等於399,但本發明並不限於此。例如,預定索引門檻值Th_Index可予以變化。
於步驟S28中,記憶體控制器110快刷(Flush)緩衝記憶體116諸如SRAM中的該寫入緩衝區,以將該寫入緩衝區中的任何資料(例如任何寫入命令WCMD的資料)寫入非揮發性記憶體120。
於步驟S30中,記憶體控制器110判斷是否沒有額外的主機命令,諸如來自主機50的額外的命令CMD(例如額外的讀取命令RCMD與額外的寫入命令WCMD)。如果是,進入步驟S28;如果否,進入步驟S32。
於步驟S32中,記憶體控制器110判斷是否索引i除以預定命令數量BW的餘數(i % BW)小於(BW - 1),以依據一或多個已收集且處置的寫入命令WCMD的數量判斷該一或多個已收集且處置的寫入命令WCMD的資料是否已填滿該寫入緩衝區(例如512 KB的緩衝空間),其中預定命令數量BW是大於一的正整數,且符號「%」代表模運算符(modulo operator)。如果是,進入步驟S34;如果否,進入步驟S36。
預定命令數量BW可依該超級頁面的大小SP_SIZE來決定。記憶體控制器110可利用該超級頁面的大小SP_SIZE(例如128 KB)為基底來收集寫入命令{WCMD(0), WCMD(1), …},尤其,寫入命令{WCMD(0), WCMD(1), …}中的每一寫入命令WCMD的資料之資料量可等於該超級頁面的大小SP_SIZE。記憶體控制器110可將預定命令數量BW決定為該寫入緩衝區的大小WBUF_SIZE除以該超級頁面的大小SP_SIZE的商(WBUF_SIZE / SP_SIZE)。例如,當WBUF_SIZE = 512(KB)且SP_SIZE = 128(KB)時,BW = (512 / 128) = 4。此情況下,記憶體控制器110可透過執行步驟S24四次,於該寫入緩衝區中緩衝4個連續的寫入命令的資料,以填滿該寫入緩衝區(例如512 KB的緩衝空間)。
於步驟S34中,記憶體控制器110以一增量諸如1來增加索引i(於第3圖中標示為「i++」,以求簡明)。之後,進入步驟S24。記憶體控制器110可透過再一次執行步驟S24,收集且處置下一個寫入命令諸如最新的寫入命令WCMD(i)。
於步驟S36中,記憶體控制器110快刷緩衝記憶體116諸如SRAM中的該寫入緩衝區,以將該寫入緩衝區中的資料(例如最新收集的BW個寫入命令的資料,諸如對應索引i目前值之目前的寫入命令{WCMD(i - (BW - 1)), …, WCMD(i - 1), WCMD(i)}的資料)寫入非揮發性記憶體120。
依據本實施例,透過多次執行包含步驟S24、S26、S30、S32等的迴圈,記憶體控制器110可處置其所收集的寫入命令{WCMD(0), WCMD(1), …}中的這一組寫入命令{WCMD(i - (BW - 1)), …, WCMD(i - 1), WCMD(i)},尤其,將這一組寫入命令{WCMD(i - (BW - 1)), …, WCMD(i - 1), WCMD(i)}的資料緩衝於該寫入緩衝區中,並且快刷該寫入緩衝區以將這一組寫入命令{WCMD(i - (BW - 1)), …, WCMD(i - 1), WCMD(i)}的資料寫入非揮發性記憶體120。例如,當WBUF_SIZE = 512(KB)且SP_SIZE = 128(KB)時,BW = 4。此情況下,記憶體控制器110可將寫入命令{WCMD(0), WCMD(1), WCMD(2), WCMD(3)}之各自的資料DATA(0)、DATA(1)、DATA(2)與DATA(3)緩衝於該寫入緩衝區中,並且快刷該寫入緩衝區以分別將資料DATA(0)、DATA(1)、DATA(2)與DATA(3)寫入非揮發性記憶體120中,成為分佈於16個非揮發性記憶體元件122(例如N = 16)的四個超級頁面SP(0)、SP(1)、SP(2)與SP(3),如第4圖所示。
這四個超級頁面SP(0)、SP(1)、SP(2)與SP(3)分別包含四列(Row)對應的非揮發性記憶體元件之各自的四個大頁面(於第4圖中以陰影表示),且後續的四個超級頁面分別包含這四列對應的非揮發性記憶體元件之各自的四個後續大頁面(於第4圖中以符號「…」表示),依此類推。由於快刷該寫入緩衝區的操作容許記憶體控制器110繼續緩衝後續收集的寫入命令的資料,故記憶體控制器110可連續地寫入這四個超級頁面SP(0)、SP(1)、SP(2)與SP(3)及後續的多組四個超級頁面,直到至少一超時避免(Timeout Avoidance)條件滿足(例如從步驟S26或S30進入步驟S28的情況)。針對主機50之顯著的混和讀取與寫入行為,本發明寫入控制方法能大幅地提升非揮發性記憶體120(諸如快閃記憶體)的整體傳輸帶寬,並且提升資料儲存裝置100的整體效能。
另外,該超級頁面的大小SP_SIZE可予以擴大。例如,當WBUF_SIZE = 512(KB)且SP_SIZE = 256(KB)時,BW = (512 / 256) = 2。此情況下,記憶體控制器110可將寫入命令{WCMD(0), WCMD(1)}之各自的資料DATA(0)與DATA(1)緩衝於該寫入緩衝區中,並且快刷該寫入緩衝區以分別將資料DATA(0)與DATA(1)寫入非揮發性記憶體120中,成為分佈於16個非揮發性記憶體元件122(例如N = 16)的二個超級頁面SP(0)與SP(1),如第5圖所示。例如,超級頁面SP(0)包含第一列及第二列非揮發性記憶體元件之各自的大頁面群組PR0(0)與PR1(0),且超級頁面SP(1)包含第三列及第四列非揮發性記憶體元件之各自的大頁面群組PR2(0)與PR3(0);超級頁面SP(2)包含第一列及第二列非揮發性記憶體元件之各自的後續的大頁面群組,且超級頁面SP(3)包含第三列及第四列非揮發性記憶體元件之各自的後續的大頁面群組;依此類推。
此外,該超級頁面的大小SP_SIZE可進一步擴大。例如,當WBUF_SIZE = 512(KB)且SP_SIZE = 512(KB)時,BW = (512 / 512) = 1。此情況下,記憶體控制器110可將寫入命令WCMD(0)的資料DATA(0)緩衝於該寫入緩衝區中,並且快刷該寫入緩衝區以將資料DATA(0)寫入非揮發性記憶體120中,成為分佈於16個非揮發性記憶體元件122(例如N = 16)的一個超級頁面SP(0),如第6圖所示。例如,超級頁面SP(0)包含第一列至第四列非揮發性記憶體元件之各自的大頁面群組PR0(0)、PR1(0)、PR2(0)與PR3(0);超級頁面SP(1)包含第一列至第四列非揮發性記憶體元件之各自的後續的大頁面群組;依此類推。
因應非揮發性記憶體120的架構的變化,上述寫入緩衝區的大小WBUF_SIZE可予以擴大。例如,非揮發性記憶體元件122-n可包含4個平面,諸如平面#0、#1、#2與#3。此情況下,平面#0、#1、#2與#3之各自的一個頁面可被組合成一個大頁面,且大頁面的大小可等於一個頁面的大小的4倍,諸如64 KB。另外,於非揮發性記憶體120中,分別對應於多個通道(例如通道CH0、CH1、CH2與CH3)的某些非揮發性記憶體元件之各自的一個大頁面可被組合成一個超級頁面,且這個超級頁面的大小SP_SIZE可包含上述4倍的因子。尤其,該多個通道可包含通道CH0、CH1、CH2與CH3,且通道CH0、CH1、CH2與CH3之各自的晶片啟用訊號CE0、CE1、CE2與CE3可分別用來控制對應的非揮發性記憶體元件。
當該超級頁面包含通道CH0、CH1、CH2與CH3之各自的晶片啟用訊號CE0所控制的4個非揮發性記憶體元件122-n之各自的一個大頁面時,該超級頁面的大小SP_SIZE等於256 KB(例如:(64 KB) * 4 = 256 KB)。例如,當WBUF_SIZE = 1024(KB)且SP_SIZE = 256(KB)時,BW = (1024/ 256) = 4。此情況下,記憶體控制器110可將寫入命令{WCMD(0), WCMD(1), WCMD(2), WCMD(3)}之各自的資料DATA(0)、DATA(1)、DATA(2)與DATA(3)緩衝於該寫入緩衝區中,並且快刷該寫入緩衝區以分別將資料DATA(0)、DATA(1)、DATA(2)與DATA(3)寫入非揮發性記憶體120中,成為分佈於16個非揮發性記憶體元件122(例如N = 16)的四個超級頁面SP(0)、SP(1)、SP(2)與SP(3),如第4圖所示。
當該超級頁面包含通道CH0、CH1、CH2與CH3之各自的晶片啟用訊號CE0與CE1所控制的8個非揮發性記憶體元件122-n之各自的一個大頁面時,該超級頁面的大小SP_SIZE等於512 KB(例如:(64 KB) * 8 = 512 KB)。例如,當WBUF_SIZE = 1024(KB)且SP_SIZE = 512(KB)時,BW = (1024 / 512) = 2。此情況下,記憶體控制器110可將寫入命令{WCMD(0), WCMD(1)}之各自的資料DATA(0)與DATA(1)緩衝於該寫入緩衝區中,並且快刷該寫入緩衝區以分別將資料DATA(0)與DATA(1)寫入非揮發性記憶體120中,成為分佈於16個非揮發性記憶體元件122(例如N = 16)的二個超級頁面SP(0)與SP(1),如第5圖所示。
當該超級頁面包含通道CH0、CH1、CH2與CH3之各自的晶片啟用訊號CE0、CE1、CE2與CE3所控制的16個非揮發性記憶體元件122-n之各自的一個大頁面時,該超級頁面的大小SP_SIZE等於1024 KB(例如:(64 KB) * 16 = 1024 KB)。例如,當WBUF_SIZE = 1024(KB)且SP_SIZE = 1024(KB)時,BW = (1024 / 1024) = 1。此情況下,記憶體控制器110可將寫入命令WCMD(0)的資料DATA(0)緩衝於該寫入緩衝區中,並且快刷該寫入緩衝區以將資料DATA(0)寫入非揮發性記憶體120中,成為分佈於16個非揮發性記憶體元件122(例如N = 16)的一個超級頁面SP(0),如第6圖所示。
在第3圖所示工作流程中的某些步驟可包含判斷操作,而記憶體控制器110可依據這些判斷操作之各自的判斷結果執行這個工作流程中的後續步驟之操作,諸如對應於這些判斷結果之後續操作,以達到資料儲存裝置100之最佳化效能。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
50:主機
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:緩衝記憶體
118:傳輸介面電路
120:非揮發性記憶體
122,122-1,122-2~122-N:非揮發性記憶體元件
130:揮發性記憶體元件
R,W:資料
S10,S12,S14,S16,S18,S20,S22,S24,S26,S28,S30,S32,S34,S36:步驟
CH0,CH1,CH2,CH3:通道
CE0,CE1,CE2,CE3:晶片啟用訊號
SP(0),SP(1),SP(2),SP(3):超級頁面
PR0(0),PR1(0),PR2(0),PR3(0):大頁面群組
第1圖為依據本發明一實施例之一種資料儲存裝置與一主機(host device)的示意圖。
第2圖繪示依據本發明一實施例之一命令重新排列(command rearrangement)控制方案。
第3圖繪示依據本發明一實施例之一種寫入控制方法的流程圖。
第4圖繪示依據本發明一實施例之如第3圖所示寫入控制方法的寫入控制方案。
第5圖繪示依據本發明另一實施例之如第3圖所示寫入控制方法的寫入控制方案。
第6圖繪示依據本發明另一實施例之如第3圖所示寫入控制方法的寫入控制方案。
S10,S12,S14,S16,S18,S20,S22,S24,S26,S28,S30,S32,S34,S36:步驟
Claims (20)
- 一種寫入控制方法,該寫入控制方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory,NV memory)以及用來控制該非揮發性記憶體的存取之一記憶體控制器,該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該至少一非揮發性記憶體元件包含複數個區塊,該寫入控制方法包含有: 從一主機(host device)接收至少一命令,且執行所述至少一命令; 判斷一目前時間與一起始時間之間的一時間區間的長度是否達到一預定時間長度門檻值,其中該記憶體控制器在該時間區間以內從該主機接收到複數個命令,而該複數個命令包含所述至少一命令; 判斷在該複數個命令中的多個讀取命令與多個寫入命令之各自的數量是否分別大於一預定讀取命令數門檻值與一預定寫入命令數門檻值; 因應該時間區間的該長度達到該預定時間長度門檻值、且該多個讀取命令與該多個寫入命令之各自的所述數量分別大於該預定讀取命令數門檻值與該預定寫入命令數門檻值,開始進行寫入收集(write collection); 針對該寫入收集,收集從該主機接收之一寫入命令,且處置該寫入命令以透過一緩衝記憶體緩衝該寫入命令的資料,其中該緩衝記憶體位於該記憶體控制器; 判斷另一目前時間與另一起始時間之間的另一時間區間的長度是否大於另一預定時間長度門檻值; 判斷是否沒有額外的主機命令; 因應該另一時間區間的該長度並未大於該另一預定時間長度門檻值、且並未發生沒有所述額外的主機命令的情況,依據一或多個已收集且處置的寫入命令的數量判斷該一或多個已收集且處置的寫入命令的資料是否已填滿該緩衝記憶體中的一寫入緩衝區,其中該一或多個已收集且處置的寫入命令包含該寫入命令;以及 因應該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區,快刷(Flush)該寫入緩衝區,以將該寫入緩衝區中的資料寫入該非揮發性記憶體。
- 如申請專利範圍第1項所述之寫入控制方法,其中從該主機接收所述至少一命令的步驟被執行多次,且該複數個命令包含從該主機接收所述至少一命令的步驟的多次執行之各自的命令。
- 如申請專利範圍第1項所述之寫入控制方法,其中判斷該另一目前時間與該另一起始時間之間的該另一時間區間的該長度是否大於該另一預定時間長度門檻值的步驟被執行多次以分別產生一第一判斷結果與一第二判斷結果,其中該第一判斷結果與該第二判斷結果分別指出該另一時間區間的該長度並未大於該另一預定時間長度門檻值以及該另一時間區間的該長度大於該另一預定時間長度門檻值;依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的步驟是因應該第一判斷結果來進行;以及該方法另包含: 因應該第二判斷結果,快刷該寫入緩衝區,以將該寫入緩衝區中的任何資料寫入該非揮發性記憶體。
- 如申請專利範圍第3項所述之寫入控制方法,其中判斷是否沒有所述額外的主機命令的步驟被執行多次以分別產生一第三判斷結果與一第四判斷結果,其中該第三判斷結果與該第四判斷結果中的每一判斷結果指出並未發生沒有所述額外的主機命令的該情況。
- 如申請專利範圍第4項所述之寫入控制方法,其中依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的步驟被執行多次以分別產生一第五判斷結果與一第六判斷結果,其中該第五判斷結果與該第六判斷結果分別指出該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區以及該一或多個已收集且處置的寫入命令的該資料並未填滿該寫入緩衝區;快刷該寫入緩衝區以將該寫入緩衝區中的該資料寫入該非揮發性記憶體的步驟是因應該第五判斷結果來進行;以及該方法另包含: 因應該第六判斷結果,收集從該主機接收之另一寫入命令且處置該另一寫入命令以透過該緩衝記憶體緩衝該另一寫入命令的資料。
- 如申請專利範圍第1項所述之寫入控制方法,其中判斷該另一目前時間與該另一起始時間之間的該另一時間區間的該長度是否大於該另一預定時間長度門檻值的步驟被執行多次以分別產生一第一判斷結果與一第二判斷結果,其中該第一判斷結果與該第二判斷結果中的每一判斷結果指出該另一時間區間的該長度並未大於該另一預定時間長度門檻值。
- 如申請專利範圍第6項所述之寫入控制方法,其中判斷是否沒有所述額外的主機命令的步驟被執行多次以分別產生一第三判斷結果與一第四判斷結果,其中該第三判斷結果與該第四判斷結果分別指出並未發生沒有所述額外的主機命令的該情況以及發生沒有所述額外的主機命令的情況;依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的步驟是因應該第三判斷結果來進行;以及該方法另包含: 因應該第四判斷結果,快刷該寫入緩衝區,以將該寫入緩衝區中的任何資料寫入該非揮發性記憶體。
- 如申請專利範圍第7項所述之寫入控制方法,其中依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的步驟被執行多次以分別產生一第五判斷結果與一第六判斷結果,其中該第五判斷結果與該第六判斷結果分別指出該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區以及該一或多個已收集且處置的寫入命令的該資料並未填滿該寫入緩衝區;快刷該寫入緩衝區以將該寫入緩衝區中的該資料寫入該非揮發性記憶體的步驟是因應該第五判斷結果來進行;以及該方法另包含: 因應該第六判斷結果,收集從該主機接收之另一寫入命令且處置該另一寫入命令以透過該緩衝記憶體緩衝該另一寫入命令的資料。
- 如申請專利範圍第1項所述之寫入控制方法,其中依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的步驟被執行多次以分別產生一第五判斷結果與一第六判斷結果,其中該第五判斷結果與該第六判斷結果分別指出該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區以及該一或多個已收集且處置的寫入命令的該資料並未填滿該寫入緩衝區;快刷該寫入緩衝區以將該寫入緩衝區中的該資料寫入該非揮發性記憶體的步驟是因應該第五判斷結果來進行;以及該方法另包含: 因應該第六判斷結果,收集從該主機接收之另一寫入命令且處置該另一寫入命令以透過該緩衝記憶體緩衝該另一寫入命令的資料。
- 如申請專利範圍第1項所述之寫入控制方法,其中該一或多個已收集且處置的寫入命令是從該複數個命令的後續命令中收集的。
- 一種資料儲存裝置,包含有: 一非揮發性記憶體(non-volatile memory,NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),以及該至少一非揮發性記憶體元件包含複數個區塊;以及 一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作,其中該控制器包含: 一緩衝記憶體,用來暫時地儲存資訊;以及 一處理電路,用來依據來自一主機(host device)的複數個主機命令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器從該主機接收至少一命令,且執行所述至少一命令; 該控制器判斷一目前時間與一起始時間之間的一時間區間的長度是否達到一預定時間長度門檻值,其中該控制器在該時間區間以內從該主機接收到複數個命令,而該複數個命令包含所述至少一命令,且屬於該複數個主機命令; 該控制器判斷在該複數個命令中的多個讀取命令與多個寫入命令之各自的數量是否分別大於一預定讀取命令數門檻值與一預定寫入命令數門檻值; 因應該時間區間的該長度達到該預定時間長度門檻值、且該多個讀取命令與該多個寫入命令之各自的所述數量分別大於該預定讀取命令數門檻值與該預定寫入命令數門檻值,該控制器開始進行寫入收集(write collection); 針對該寫入收集,該控制器收集從該主機接收之一寫入命令,且處置該寫入命令以透過該緩衝記憶體緩衝該寫入命令的資料; 該控制器判斷另一目前時間與另一起始時間之間的另一時間區間的長度是否大於另一預定時間長度門檻值; 該控制器判斷是否沒有額外的主機命令; 因應該另一時間區間的該長度並未大於該另一預定時間長度門檻值、且並未發生沒有所述額外的主機命令的情況,該控制器依據一或多個已收集且處置的寫入命令的數量判斷該一或多個已收集且處置的寫入命令的資料是否已填滿該緩衝記憶體中的一寫入緩衝區,其中該一或多個已收集且處置的寫入命令包含該寫入命令,且屬於該複數個主機命令;以及 因應該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區,該控制器快刷(Flush)該寫入緩衝區,以將該寫入緩衝區中的資料寫入該非揮發性記憶體。
- 如申請專利範圍第11項所述之資料儲存裝置,其中從該主機接收所述至少一命令的操作被執行多次,且該複數個命令包含從該主機接收所述至少一命令的操作的多次執行之各自的命令。
- 如申請專利範圍第11項所述之資料儲存裝置,其中判斷該另一目前時間與該另一起始時間之間的該另一時間區間的該長度是否大於該另一預定時間長度門檻值的操作被執行多次以分別產生一第一判斷結果與一第二判斷結果,其中該第一判斷結果與該第二判斷結果分別指出該另一時間區間的該長度並未大於該另一預定時間長度門檻值以及該另一時間區間的該長度大於該另一預定時間長度門檻值;依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的操作是因應該第一判斷結果來進行;以及因應該第二判斷結果,該控制器快刷該寫入緩衝區,以將該寫入緩衝區中的任何資料寫入該非揮發性記憶體。
- 如申請專利範圍第13項所述之資料儲存裝置,其中判斷是否沒有所述額外的主機命令的操作被執行多次以分別產生一第三判斷結果與一第四判斷結果,其中該第三判斷結果與該第四判斷結果中的每一判斷結果指出並未發生沒有所述額外的主機命令的該情況。
- 如申請專利範圍第14項所述之資料儲存裝置,其中依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的操作被執行多次以分別產生一第五判斷結果與一第六判斷結果,其中該第五判斷結果與該第六判斷結果分別指出該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區以及該一或多個已收集且處置的寫入命令的該資料並未填滿該寫入緩衝區;快刷該寫入緩衝區以將該寫入緩衝區中的該資料寫入該非揮發性記憶體的操作是因應該第五判斷結果來進行;以及因應該第六判斷結果,該控制器收集從該主機接收之另一寫入命令且處置該另一寫入命令以透過該緩衝記憶體緩衝該另一寫入命令的資料。
- 如申請專利範圍第11項所述之資料儲存裝置,其中判斷該另一目前時間與該另一起始時間之間的該另一時間區間的該長度是否大於該另一預定時間長度門檻值的操作被執行多次以分別產生一第一判斷結果與一第二判斷結果,其中該第一判斷結果與該第二判斷結果中的每一判斷結果指出該另一時間區間的該長度並未大於該另一預定時間長度門檻值。
- 如申請專利範圍第16項所述之資料儲存裝置,其中判斷是否沒有所述額外的主機命令的操作被執行多次以分別產生一第三判斷結果與一第四判斷結果,其中該第三判斷結果與該第四判斷結果分別指出並未發生沒有所述額外的主機命令的該情況以及發生沒有所述額外的主機命令的情況;依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的操作是因應該第三判斷結果來進行;以及因應該第四判斷結果,該控制器快刷該寫入緩衝區,以將該寫入緩衝區中的任何資料寫入該非揮發性記憶體。
- 如申請專利範圍第17項所述之資料儲存裝置,其中依據該一或多個已收集且處置的寫入命令的該數量判斷該一或多個已收集且處置的寫入命令的該資料是否已填滿該緩衝記憶體中的該寫入緩衝區的操作被執行多次以分別產生一第五判斷結果與一第六判斷結果,其中該第五判斷結果與該第六判斷結果分別指出該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區以及該一或多個已收集且處置的寫入命令的該資料並未填滿該寫入緩衝區;快刷該寫入緩衝區以將該寫入緩衝區中的該資料寫入該非揮發性記憶體的操作是因應該第五判斷結果來進行;以及因應該第六判斷結果,該控制器收集從該主機接收之另一寫入命令且處置該另一寫入命令以透過該緩衝記憶體緩衝該另一寫入命令的資料。
- 一種資料儲存裝置之控制器,該資料儲存裝置包含該控制器與一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該至少一非揮發性記憶體元件包含複數個區塊,該控制器包含有: 一緩衝記憶體,用來暫時地儲存資訊;以及 一處理電路,用來依據來自一主機(host device)的複數個主機命令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器從該主機接收至少一命令,且執行所述至少一命令; 該控制器判斷一目前時間與一起始時間之間的一時間區間的長度是否達到一預定時間長度門檻值,其中該控制器在該時間區間以內從該主機接收到複數個命令,而該複數個命令包含所述至少一命令,且屬於該複數個主機命令; 該控制器判斷在該複數個命令中的多個讀取命令與多個寫入命令之各自的數量是否分別大於一預定讀取命令數門檻值與一預定寫入命令數門檻值; 因應該時間區間的該長度達到該預定時間長度門檻值、且該多個讀取命令與該多個寫入命令之各自的所述數量分別大於該預定讀取命令數門檻值與該預定寫入命令數門檻值,該控制器開始進行寫入收集(write collection); 針對該寫入收集,該控制器收集從該主機接收之一寫入命令,且處置該寫入命令以透過該緩衝記憶體緩衝該寫入命令的資料; 該控制器判斷另一目前時間與另一起始時間之間的另一時間區間的長度是否大於另一預定時間長度門檻值; 該控制器判斷是否沒有額外的主機命令; 因應該另一時間區間的該長度並未大於該另一預定時間長度門檻值、且並未發生沒有所述額外的主機命令的情況,該控制器依據一或多個已收集且處置的寫入命令的數量判斷該一或多個已收集且處置的寫入命令的資料是否已填滿該緩衝記憶體中的一寫入緩衝區,其中該一或多個已收集且處置的寫入命令包含該寫入命令,且屬於該複數個主機命令;以及 因應該一或多個已收集且處置的寫入命令的該資料已填滿該寫入緩衝區,該控制器快刷(Flush)該寫入緩衝區,以將該寫入緩衝區中的資料寫入該非揮發性記憶體。
- 如申請專利範圍第19項所述之控制器,其中從該主機接收所述至少一命令的操作被執行多次,且該複數個命令包含從該主機接收所述至少一命令的操作的多次執行之各自的命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862740439P | 2018-10-03 | 2018-10-03 | |
US62/740,439 | 2018-10-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202032547A TW202032547A (zh) | 2020-09-01 |
TWI709975B true TWI709975B (zh) | 2020-11-11 |
Family
ID=70413304
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108116832A TWI684988B (zh) | 2018-10-03 | 2019-05-16 | 錯誤處置方法以及資料儲存裝置及其控制器 |
TW108124909A TWI697009B (zh) | 2018-10-03 | 2019-07-15 | 寫入控制方法以及資料儲存裝置及其控制器 |
TW109116137A TWI709975B (zh) | 2018-10-03 | 2019-07-15 | 寫入控制方法以及資料儲存裝置及其控制器 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108116832A TWI684988B (zh) | 2018-10-03 | 2019-05-16 | 錯誤處置方法以及資料儲存裝置及其控制器 |
TW108124909A TWI697009B (zh) | 2018-10-03 | 2019-07-15 | 寫入控制方法以及資料儲存裝置及其控制器 |
Country Status (1)
Country | Link |
---|---|
TW (3) | TWI684988B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11366618B2 (en) * | 2020-03-02 | 2022-06-21 | Silicon Motion, Inc. | All flash array server and control method thereof |
TWI748507B (zh) * | 2020-06-08 | 2021-12-01 | 瑞昱半導體股份有限公司 | 資料存取系統及操作資料存取系統的方法 |
JP2022147448A (ja) | 2021-03-23 | 2022-10-06 | キオクシア株式会社 | メモリシステム及びデータ管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160291883A1 (en) * | 2015-03-31 | 2016-10-06 | Sandisk Technologies Inc. | Inherent adaptive trimming |
US20170177276A1 (en) * | 2015-12-21 | 2017-06-22 | Ocz Storage Solutions, Inc. | Dual buffer solid state drive |
US20170262202A1 (en) * | 2016-03-14 | 2017-09-14 | Samsung Electronics Co., Ltd. | Data storage device and data processing system including the same |
US20180060232A1 (en) * | 2016-08-31 | 2018-03-01 | Sandisk Technologies Llc | Flush command consolidation |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE139632T1 (de) * | 1989-08-01 | 1996-07-15 | Digital Equipment Corp | Verfahren zur softwarefehlerbehandlung |
JPH0799512B2 (ja) * | 1992-11-18 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | プログラム可能な外部記憶制御装置 |
US6762733B2 (en) * | 1993-06-24 | 2004-07-13 | Nintendo Co. Ltd. | Electronic entertainment and communication system |
US6804794B1 (en) * | 2001-02-28 | 2004-10-12 | Emc Corporation | Error condition handling |
US7096407B2 (en) * | 2003-02-18 | 2006-08-22 | Hewlett-Packard Development Company, L.P. | Technique for implementing chipkill in a memory system |
US9063836B2 (en) * | 2010-07-26 | 2015-06-23 | Intel Corporation | Methods and apparatus to protect segments of memory |
US9262270B2 (en) * | 2012-12-28 | 2016-02-16 | Intel Corporation | Live error recovery |
US10042750B2 (en) * | 2013-03-15 | 2018-08-07 | Micron Technology, Inc. | Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor |
-
2019
- 2019-05-16 TW TW108116832A patent/TWI684988B/zh active
- 2019-07-15 TW TW108124909A patent/TWI697009B/zh active
- 2019-07-15 TW TW109116137A patent/TWI709975B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160291883A1 (en) * | 2015-03-31 | 2016-10-06 | Sandisk Technologies Inc. | Inherent adaptive trimming |
US20170177276A1 (en) * | 2015-12-21 | 2017-06-22 | Ocz Storage Solutions, Inc. | Dual buffer solid state drive |
US20170262202A1 (en) * | 2016-03-14 | 2017-09-14 | Samsung Electronics Co., Ltd. | Data storage device and data processing system including the same |
US20180060232A1 (en) * | 2016-08-31 | 2018-03-01 | Sandisk Technologies Llc | Flush command consolidation |
Also Published As
Publication number | Publication date |
---|---|
TW202032547A (zh) | 2020-09-01 |
TW202015065A (zh) | 2020-04-16 |
TWI684988B (zh) | 2020-02-11 |
TWI697009B (zh) | 2020-06-21 |
TW202015045A (zh) | 2020-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237765B2 (en) | Data writing method and storage device | |
US10997065B2 (en) | Memory system and operating method thereof | |
CN110989918B (zh) | 写入控制方法以及数据存储装置及其控制器 | |
US10599345B2 (en) | Memory device that writes data into a block based on time passage since erasure of data from the block | |
US10628257B2 (en) | Memory management method and storage controller | |
TWI709975B (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
JP2011522350A (ja) | ハイブリッドメモリ管理 | |
US11734178B2 (en) | Storage device performing cache read operation using page buffer and operating method thereof | |
TWI802068B (zh) | 記憶體效能優化方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US20200319822A1 (en) | Memory control method, memory storage device and memory control circuit unit | |
US11573891B2 (en) | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device | |
US10339045B2 (en) | Valid data management method and storage controller | |
TW202042068A (zh) | 資料儲存裝置與資料處理方法 | |
KR20210014412A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
TWI792534B (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
US11334273B1 (en) | Valid data merging method, memory storage device and memory control circuit unit | |
US11755492B2 (en) | Storage device and operating method thereof | |
TWI721365B (zh) | 高效能垃圾收集方法以及資料儲存裝置及其控制器 | |
TW202125264A (zh) | 非對稱型平面管理方法以及資料儲存裝置及其控制器 | |
TWI823792B (zh) | 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
US11694728B2 (en) | Storage device and operating method thereof | |
TWI818370B (zh) | 資料儲存分配方法、記憶體儲存裝置及記憶體控制電路單元 | |
US20240143226A1 (en) | Data storage device and method for managing a write buffer | |
US20240126473A1 (en) | Data storage device and method for managing a write buffer | |
US20220292029A1 (en) | Storage device and operating method thereof |