TWI421877B - 平衡主機寫入作業和快取清除之方法和系統 - Google Patents

平衡主機寫入作業和快取清除之方法和系統 Download PDF

Info

Publication number
TWI421877B
TWI421877B TW097150465A TW97150465A TWI421877B TW I421877 B TWI421877 B TW I421877B TW 097150465 A TW097150465 A TW 097150465A TW 97150465 A TW97150465 A TW 97150465A TW I421877 B TWI421877 B TW I421877B
Authority
TW
Taiwan
Prior art keywords
cache
host
storage device
data
command
Prior art date
Application number
TW097150465A
Other languages
English (en)
Other versions
TW200937424A (en
Inventor
Menahem Lasser
Itshak Afriat
Opher Lieber
Mark Shlick
Original Assignee
Sandisk Il Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sandisk Il Ltd filed Critical Sandisk Il Ltd
Publication of TW200937424A publication Critical patent/TW200937424A/zh
Application granted granted Critical
Publication of TWI421877B publication Critical patent/TWI421877B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

平衡主機寫入作業和快取清除之方法和系統
已廣泛採用非揮發性記憶體系統(諸如,快閃記憶體)用於消費型產品中。可發現呈不同形式之快閃記憶體,例如呈可在主機裝置之間載運的攜帶型記憶卡之形式或作為嵌入於主機裝置中之固態磁碟(SSD)。在快閃記憶體中發現之兩個通用記憶體單元架構包括NOR及NAND。在一典型NOR架構中,記憶體單元連接於在一行方向上延伸之鄰近位元線源極與汲極擴散之間,其中連接至字線之控制閘極沿單元列延伸。記憶體單元包括定位於源極與汲極之間的單元通道區域之至少一部分上方的至少一儲存元件。儲存元件上之電荷之經程式化位準由此控制單元之作業特徵,其可接著藉由將適當電壓施加至經定址之記憶體單元而讀取。
一典型NAND架構利用連同在個別位元線與參考電位之間的一或多個選擇電晶體連接在一起的兩個以上(諸如,16或32個)串接式記憶體單元之串以形成單元行。字線延伸跨越許多此等行內之單元。藉由使串中之剩餘單元接通以使得流動通過串之電流視定址單元中所儲存之電荷位準而定來在程式化期間讀取並驗證行內的個別單元。
一些快閃記憶體管理系統使用自快取架構,其中自一主機接收之資料首先儲存於快閃記憶體之經指定為快取記憶體之一部分中,且稍後複製至快閃記憶體之經指定為主要儲存區域之一部分。在此類型之快閃記憶體管理系統中,存在何時排程快取清除作業的問題。在快取清除作業中,快取記憶體中之資料之一部分(通常為對應於一共同邏輯區塊之資料)自快取記憶體複製至主要儲存區域,且接著自快取記憶體移除以在快取記憶體中為新的輸入資料騰出空間。如本文所使用,術語"快取清除"與"快取清理"為同義的。
自快取快閃記憶體管理系統可使用關於快閃清除作業之排程及關於待清除之特定資料之選擇的不同策略。通常,影響排程決策之因素為快取記憶體之充滿程度,及是否存在自主機到達之必須服務之存取請求。當儲存系統相對於主機請求為閒置時,快閃記憶體管理系統將通常清除快取記憶體中之所有資料,以使得快取記憶體更好地為未來可能瞬間爆發之主機活動作準備。
自快取儲存裝置之寫入效能大體由兩個數字規定。第一數字為瞬間寫入效能。瞬間寫入效能為在於快取記憶體中存在足夠空間時儲存裝置可吸收輸入資料流之速率。因此,瞬間寫入效能僅視快取記憶體之寫入效能而定,而不視主要儲存區域之寫入效能而定。第二數字為持續寫入效能。持續寫入效能為儲存裝置可吸收比快取記憶體大小大得多之輸入資料流之速率。持續寫入效能隨快取記憶體寫入效能及主要儲存區域寫入效能兩者而變。若主要儲存區域比快取記憶體慢得多,則持續寫入效能主要由主要儲存區域寫入效能判定。
即使一儲存裝置經規定用於一些給定持續輸入速率,仍無任何物阻止主機以比所規定速率高的速率將資料發送至儲存裝置中且依賴於儲存裝置提出"忙碌"條件以在不能夠保持步調一致時延遲輸入流,且在可接收更多輸入時清理忙碌狀態。此為實際上作業之現實主機的數目。主機將儘可能快地發送待寫入至儲存裝置中之資料,且繼續如此進行直至儲存裝置迫使其延緩且等待為止。
當遵循此作業樣式時,典型觀測到之效應將如下。假設儲存裝置之快取記憶體開始為空,主機將首先經歷等於瞬間寫入效能之高效能。逐漸地,快取記憶體將被填滿,但效能將仍為瞬間效能,直至快取記憶體完全變滿或非常接近於滿的點為止。在此點處,儲存裝置必須提出忙碌狀態且藉由將一些內容移動至主要儲存區域而開始清理快取記憶體中之空間。通常,忙碌狀態將僅在自快取記憶體複製對應於充滿邏輯區塊之資料之後被清理。結果,若主要儲存器慢且區塊大,則主機可能遭遇可為十分之幾秒或甚至幾秒的相對較長忙碌週期。儘管由主機經歷之平均效能可仍在所宣傳之持續寫入效能速率規範內,但一些主機可能不能夠處理此等長的忙碌週期。此係因為長忙碌週期需要主機中用於累積可能在忙碌週期期間於最糟狀況情形下產生之所有新的資料的更大緩衝器。
在一些快取實施中,因為隨著快取記憶體變得更滿,將資料清理出快取記憶體之有效速率可減小,所以問題可甚至更糟。當主機將資料寫入至隨機位址而非順序地寫入資料時,及在快取記憶體使用在含有許多資料頁之大區塊中組織的快閃記憶體之情況下,此可能發生。當快取記憶體不斷接近其最滿狀態而作業時,在此等裝置中不僅忙碌週期更長,而且可能不滿足持續寫入效能。
在一些狀況下,在儲存裝置可指示忙碌狀態之時間上亦存在硬限制,且違反此限制可能引起主機中止異動。舉例而言,快閃記憶體之安全數位(SD)標準要求符合SD之卡總是在不多於250毫秒內回應主機寫入命令。若卡不滿足此嚴格時間限制,則主機可終止與該卡之通信會話且中止資料儲存作業。因此,進入"總是滿快取記憶體"作業模式可顯著增加違反此時間限制的風險。
經快取儲存裝置大體使用一用於清除資料之策略,其中資料在兩個條件中之一者上自快取記憶體清除。第一條件為在儲存裝置閒置時,其中在儲存裝置不自主機接收資料或另外由主機存取時將其界定為閒置。第二條件為在因為在快取記憶體中不存在更多空間而不存在其他方式接收新的資料時。此快取清除策略可導致上文解釋之問題。一些經快取儲存裝置向主機提供對快閃作業之明確控制,然而對於主機而言難以利用對快取作業之此控制來避免以上問題。一主機進行此需要對儲存裝置之內部之詳細瞭解及理解,其為一般主機不具有之資訊。
為了解決上文提出之問題,揭示一種用於平衡主機寫入作業與快取清除之方法及系統。
根據本發明之第一態樣,揭示一種用於在一儲存裝置中管理資料自一快取儲存器移動至一主要儲存器之方法,於該儲存裝置中將在來自一外部主機之寫入命令中接收之傳入資料先儲存於該快取儲存器中,且稍後移動至該主要儲存器。該方法包括:在該儲存裝置處接收一來自該主機之寫入命令;將利用該寫入命令接收之資料儲存於該快取儲存器中;及在接收該寫入命令之後在該儲存裝置處產生一忙碌狀態。該方法進一步包括:在將該資料儲存於該快取儲存器中之後,維持該忙碌狀態並同時將來自該快取儲存器之資料之至少一部分複製至該主要儲存器,其中當起始該複製時,該快取記憶體中存在足夠的可用容量,以用於在一來自該主機之後續寫入命令中接收資料。
根據另一態樣,揭示一種在一儲存裝置中管理資料自一快取儲存器移動至一主要儲存器之方法,在該儲存裝置中將在來自一外部主機之寫入命令中接收之傳入資料先儲存於該快取儲存器中,且稍後移動至該主要儲存器。該方法包括偵測該快取儲存器之一可用容量,及基於快取儲存器之該偵測到之可用容量而判定快取清理步驟相對於主機寫入命令的一比率。快取清理步驟與主機寫入命令之執行交錯以達成該經判定比率,其中快取清理步驟之執行包括維持一在該儲存裝置處產生的由一主機寫入命令觸發之忙碌狀態達一超出一足以執行該主機寫入命令之時間的時間週期,及在該時間週期內將來自該快取儲存器之資料複製至該主要儲存器。
在又一態樣中,一種在一儲存裝置中管理資料自一快取儲存器移動至一主要儲存器之方法包括:偵測快取儲存器之一可用容量,及接著基於該偵測到之可用容量而判定快取清理步驟相對於主機命令的一比率。快取清理步驟與主機命令之執行交錯以達成快取清理步驟相對於主機命令的該經判定比率。快取清理步驟之執行包括維持一在該儲存裝置處產生且由一主機命令觸發之忙碌狀態達一超出一足以執行該主機命令之時間的時間週期,及在該時間週期內將來自該快取儲存器之資料之至少一部分複製至該主要儲存器。
在本發明之另一態樣中,一種儲存裝置包括:一快取儲存器,其經組態以用於接收與主機寫入命令相關聯之資料;一主要儲存器,其與該快取儲存器通信且經組態以接收自該快取儲存器傳送之資料;及一控制器,其經配置以管理資料自該快取儲存器至該主要儲存器之傳送。該控制器經組態以在接收一主機寫入命令之後產生一忙碌狀態,且在將使用該主機寫入命令接收之該資料寫入至該快取儲存器之後,維持該忙碌狀態並同時將來自該快取儲存器之資料之至少一部分複製至該主要儲存器,其中當起始複製時,該快取儲存器中存在足夠的可用容量,以用於在一來自該主機之後續寫入命令中接收資料。
在本發明之另一態樣中,揭示一種儲存裝置,其具有:一快取儲存器,其經組態以用於接收來自一主機之資料;一主要儲存器,其與該快取儲存器通信且經組態以接收自該快取儲存器傳送之資料;及一控制器,其經配置以管理資料自該快取儲存器至該主要儲存器之傳送。該控制器經進一步組態以偵測該快取儲存器之可用容量是否大於一用於接收來自該主機之資料之最小容量且小於一所要臨限容量。該控制器亦經組態以基於偵測到之可用容量判定快取清理步驟相對於主機命令的比率,且接著交錯快取清理步驟之執行與主機命令之執行以達成快取清理步驟相對於主機命令的該經判定比率,其中快取清理步驟之執行包括維持一在該儲存裝置處產生且由一主機命令觸發之忙碌狀態達一超出一足以執行該主機命令之時間的時間週期,及在該時間週期內將來自該快取儲存器之資料複製至該主要儲存器。
根據另一態樣,揭示一種處理器可讀媒體,其含有用於平衡自快取儲存裝置中主機命令之執行與快取清理的處理器可執行指令。該等處理器可執行指令經組態以使一處理器執行偵測快取儲存器之一可用容量,基於該偵測到之可用容量而判定快取清理步驟相對於主機命令的一比率,及交錯快取清理步驟之執行與主機命令之執行以達成快取清理步驟相對於主機命令的該經判定比率的動作。快取清理步驟之執行包括維持一在該儲存裝置處產生且由一主機命令觸發之忙碌狀態達一超出一足以執行該主機命令之時間的時間週期,及在該時間週期內將來自該快取儲存器之資料之至少一部分複製至主要儲存器。
在另一態樣中,揭示一種電路,該電路含有一控制器,該控制器經配置以在一儲存裝置中管理資料自一快取儲存器至一主要儲存器之傳送。該控制器經組態以偵測快取儲存器之一可用容量,基於快取儲存器之該偵測到之可用容量判定快取清理步驟相對於主機命令的一比率,及交錯快取清理步驟之執行與主機命令之執行以達成快取清理步驟相對於主機命令的該經判定比率。快取清理步驟之執行包括維持一在該儲存裝置處產生且由一主機命令觸發之忙碌狀態達一超出一足以執行該主機命令之時間的時間週期,及在該時間週期內將來自該快取儲存器之資料複製至該主要儲存器。
根據又一態樣,一種電路包括一控制器,該控制器經配置以在一儲存裝置中管理資料自一快取儲存器至一主要儲存器之傳送。該控制器經組態以在接收一主機寫入命令之後產生一忙碌狀態,且在將用該主機寫入命令接收之該資料寫入至該快取儲存器之後,維持該忙碌狀態並同時將來自該快取儲存器之資料之至少一部分複製至該主要儲存器,其中當起始複製時,該快取儲存器中存在足夠的可用容量,以用於在一來自該主機之後續寫入命令中接收資料。
在圖1中展示適用於實施本發明之態樣之快閃記憶體系統。主機系統10將資料儲存至自快取快閃儲存裝置12中且自自快取快閃儲存裝置12擷取資料。儲存裝置12可嵌入於主機中或可以卡或經由機械及電連接器可抽取地連接至主機10之其他抽取式驅動器之形式存在。主機10可為多個資料產生裝置中之任一者,諸如個人電腦。主機10經由通信通道14與儲存裝置通信。
儲存裝置12含有配置為快取儲存器16及主要儲存器18之非揮發性記憶體單元。快取儲存器16及主要儲存器18可由經組態而以不同模式作業之相同類型的快閃記憶體單元或不同類型之快閃記憶體單元構成。舉例而言,快取儲存器16可以單級單元(SLC)類型之快閃組態來組態,而主要儲存器18可由多級單元(MLC)類型之快閃記憶體組態組成以利用SLC快閃之較高寫入速度及MLC快閃之較高密度。對於快取儲存器16及主要儲存器18亦預期快閃記憶體類型之不同組合。儲存裝置12亦包括控制器19,控制器19可包括處理器20、用於操作處理器20之指令22及邏輯區塊至實體區塊轉譯表23。可經調適以實施本文描述之快取清除策略之合適自快取快閃記憶體組態的實例揭示於Lee等人之美國專利第5,930,167號中及Lasser等人之美國申請案序號第11/318,906號中,該兩者之全文以引用的方式併入本文中。
如上文提及之快取儲存器16及主要儲存器18可為配置於記憶體單元區塊中之非揮發性快閃記憶體。一記憶體單元區塊為抹除單位,亦即,可一起實體地抹除之最小數目之記憶體單元。然而,對於增加的並行性,區塊可以較大中繼區塊單位作業。來自記憶體單元之每一平面之一個區塊可邏輯地鏈接在一起以形成中繼區塊。在快取儲存器16呈SLC組態且主要儲存器18呈MLC組態之儲存裝置中,因為可能需要多個快取區塊儲存等於一個主要儲存區塊之資料量,所以中繼區塊配置為有用的。參看圖2,展示一代表性快閃記憶體單元陣列之概念說明。記憶體單元之四個平面或子陣列30、32、34及36可處於單一積體記憶體單元晶片上、兩個晶片(每一晶片上,平面中之兩者)上或四個獨立晶片上。特定配置對於下文之論述並不重要,且在系統中可存在其他數目之平面。該等平面藉由位於各別平面30、32、34及36中之矩形個別地劃分成圖2中展示之記憶體單元區塊(諸如,區塊38、40、42及44)。在每一平面中可存在數十或數百個區塊。區塊可邏輯地鏈接在一起以形成可作為單一單位抹除之中繼區塊。舉例而言,區塊38、40、42及44可形成第一中繼區塊46。用於形成一中繼區塊之區塊不限於在其各別平面內之相同的相對位置,如由區塊50、52、54及56構成之第二中繼區塊48中所示。
如圖3中說明,個別區塊基於作業目的又劃分成記憶體單元頁。舉例而言,區塊38、40、42及44中之每一者之記憶體單元各劃分成八個頁P0至P7。或者,在每一區塊內可存在記憶體單元之16、32或更多個頁。頁為一區塊內資料程式化(寫入)及讀取之單位,其含有一次程式化(寫入)或讀取之最小資料量。中繼頁58在圖3中說明為由四個區塊38、40、42及44中之每一者之一個實體頁形成。中繼頁58包括四個區塊中之每一者中之頁P2,但中繼頁之頁不必在該等區塊中之每一者內具有相同的相對位置。中繼頁為最大程式化單位。圖2至圖3中所揭示之區塊在本文中稱為實體區塊,因為其與如上文論述之實體記憶體單元群組相關。如本文所使用,邏輯區塊為經界定具有與實體區塊相同的大小之位址空間的虛擬單位。每一邏輯區塊包括與自主機10接收之資料相關聯之邏輯區塊位址(LBA)的範圍。LBA接著映射至儲存裝置12中實體地儲存資料之一或多個實體區塊。在作業中,儲存裝置12之快取儲存器16將接收來自主機10之與主機寫入命令相關聯之資料。在快取儲存器16處接收之資料由主機在位址邏輯區塊中定址,且當資料儲存於快取儲存器16中時,與一給定位址邏輯區塊相關聯之資料可儲存於快取儲存器16中之單一實體區塊中或分散於快取儲存器16中之多個不同實體區塊上。處理器20追蹤邏輯至實體映射表23中邏輯位址至實體位址之映射。處理器20將查看當前快取儲存器容量以判定本文描述之主機寫入及快取清除平衡機制是否應基於指令資料庫22中之處理器可執行指令而起始。當基於當前快取記憶體容量及平衡演算法批准快取儲存器清除時,處理器將查看資料邏輯區塊以判定駐留於快取儲存器16之對應於一特定邏輯區塊之一或多個實體區塊中的資料之部分是否將複製至主要儲存器18。可經修改以併有本文所揭示之主機寫入及快取清除平衡演算法之快閃管理系統的實例可在Ban之美國專利第5,937,425號及Lasser之美國專利第6,678,785號中發現,且此等專利中之每一者之全文特此以引用的方式併入。
為了平衡經提供以支援主機之儲存裝置12之資源與經分配以用於防止快取儲存器16過滿之資源,儲存裝置12經組態以實施故意地向主機10提供比其實際上能夠提供之效能低的效能的主機寫入及快取清除平衡演算法。即使當不需要清除作業時,儲存裝置仍利用"竊取"時間來清除快取儲存器。儘管本文所提供之實例聚焦於平衡主機寫入命令與快取清除,但預期諸如主機讀取命令或抹除命令之其他主機命令亦可與快取清理步驟交錯以達成快取儲存器均衡。
如圖4中說明,當快取儲存器16相對較空時,儲存裝置12可使用一已知快取清除策略以使得主機10接收最大支援且經歷最大效能(瞬間寫入效能)。除非主機10未存取裝置或儲存裝置變成閒置(在60、62處),否則無資料自快取儲存器16清除。但當快取儲存器16相對較滿時,儲存裝置12啟動在伺服主機10與伺服快取儲存器12之間分配時間的平衡機制(在60、64處)。作為一非限制實例,快取記憶體可在其小於半滿時視為相對較空,且在其等於或大於半滿時視為相對較滿。亦可使用其他臨限值來設定用於啟動平衡機制之觸發點。
在圖5中展示主機寫入及快取清除平衡機制之一實施之更詳細實例。若快取儲存器中之可用容量小於所要容量(亦即,如上文描述快取儲存器16相對較滿),則處理器20將判定使多個快取清除步驟插入於每兩個連續主機請求之間(在68、70處)。在受限情況下,若快取儲存器16滿到以致於可用容量小於允許儲存裝置12在未先執行快取清理步驟之情況下作業的最小臨限值,則快取清除與主機寫入步驟之平衡可能會延遲(在66處)。作為一非限制實例,若一特定儲存裝置之最小臨限值為1%可用容量且快取記憶體中之當前可用容量低於此臨限值,則儲存裝置可延緩主機寫入與快取清除步驟之任何平衡,直到可執行快取清理步驟以使得可用容量至少到達此最小臨限值為止。
在一實施例中,快取清除步驟之數目可藉由處理器20查詢儲存於與相對於快取儲存器16中的可用容量之不同觸發位準之不同比率相關的表中之執行快取清理步驟相對於主機命令之比率而判定。與快取儲存器16中之偵測到之可用容量相關的比率可接著由處理器20使用,以排定要在對應於該比率之連續主機命令之間交錯之多個快取清除步驟。舉例而言,比率2將使得處理器20在每一主機命令之後排程兩個快取清除步驟。為能夠讓執行快取清除與主機命令之間的平衡達到更好的解決及微調,比率可包括非整數。作為一實例,對於可用快取儲存器之一特定觸發位準之比率可為3.5。處理器20將接著排程一個主機命令繼之以3個快取清除步驟及一個第二主機命令繼之以4個快取清除步驟的重複樣式以達成有效比率3.5。若僅需要小量快取清除,則比率可小於1,在該狀況下在排程一快取清理步驟之前可執行連貫主機命令。
在替代實施例中,除了快取儲存器之偵測到之可用容量之外,一或多個其他參數可為判定快取清除步驟相對於主機寫入命令之比率的因素。可使用儲存裝置負載參數,諸如儲存裝置12中之經分配之堆積記憶體(heap memory)之當前量。此等額外參數可為比率判定之因素以更改選擇下一比率的觸發點。可使用之其他儲存裝置負載參數對於儲存裝置12中實施之特定快閃管理演算法可為特定的。此等其他參數可包括由快閃管理演算法利用之某些清單之長度、某些雜湊表中所使用空間量等。
再次參看圖5,在判定並排程快取清除步驟相對於主機命令之數目之後,處理器可藉由在接收到主機命令後即設定儲存裝置之忙碌狀態而實施排程(在72處)。在執行主機命令之後,處理器將延長主機命令之後由儲存裝置12設定之忙碌狀態之持續時間。忙碌狀態指示為儲存裝置12將設定及主機10將認可之防止主機10發送更多資料,且通常亦防止主機發送最多命令直至清理忙碌狀態為止的標準條件。儲存裝置12將大體在接收一主機命令之後設定一忙碌狀態,且維持該忙碌狀態歷時儲存裝置12完成執行該命令所必要之步驟所花費的時間週期。當實施該平衡機制時,處理器延長儲存裝置維持忙碌狀態之時間週期超出執行該特定命令所需之時間,且直至已執行經排程數目之快取清除步驟為止(在74處)。一裝置之忙碌狀態之特定實施將視該裝置之協定而定。舉例而言,若儲存裝置為NAND裝置或仿真NAND裝置協定,則忙碌狀態可為由儲存裝置12控制之通知主機10其為忙碌或準備好之獨立信號。在SD協定裝置中,儲存裝置藉由控制用於傳送資料之線中之一者而指示其為忙碌的。主機10將在預定時間點取樣該線以判定其是否可發送待寫入之下批資料。其他協定可使用其他方案以提供本文論述之忙碌狀態,且可在本文所揭示之系統及方法中利用多個類型之忙碌狀態指示中之任一者。
每一快取清除步驟可由選擇一位址邏輯區塊及將來自快取儲存器16之與該特定邏輯區塊相關聯之資料之至少一頁複製至主要儲存器18中組成。儘管一快取清除步驟亦可由複製與選定邏輯區塊相關聯之資料之所有頁(亦即,整個邏輯區塊)組成,但單一頁或總計小於與選定邏輯區塊相關聯之所有資料的頁群組可為更典型的。複製可在一連串獨立頁複製作業中進行的系統之一實例可在2007年10月23日申請之名為"Interruptible Cache Flushing in Flash Memory Systems"之申請中之美國申請案序號第11/876,893號中發現,其全文以引用的方式併入本文中。在完成經判定數目之快取清除步驟時維持忙碌狀態,且接著清理忙碌狀態以允許主機發送另一命令。哪個特定邏輯區塊將使其對應資料複製至主要儲存器之選擇可基於多個準則中之任一者。舉例而言,該選擇可基於哪個邏輯區塊具有快取儲存器16之實體區塊中之最多資料,或哪個邏輯區塊具有快取儲存器16中之最大數目之實體區塊中之資料。
若吾人假設快取儲存器16中之可用容量高於最小容量且小於所要容量,且經排程之快取清理步驟相對於主機寫入請求之經判定比率為N1,則由主機感知之平均效能將為W1(以百萬位元組每秒量測)。在執行快取清理步驟之時間期間,儲存裝置12維持一忙碌狀態指示。具體言之,其在主機發送一寫入請求之後開始該忙碌狀態,且亦維持該忙碌狀態歷時所插入之快取清理步驟所需之時間。維持忙碌狀態之附加時間迫使主機10減慢,從而減小發送至儲存裝置12之資料之速率。然而,注意,在此階段,減小之速率可能仍高於持續寫入效能等級。
在起始平衡機制之後,儲存裝置12之處理器20繼續監控快取記憶體之狀態。結果可為快取清理步驟相對於主機命令之當前比率已阻止快取儲存器16再進一步填滿,但有時其可繼續填滿。若此發生,則將到達第二觸發點。舉例而言,若快取記憶體為50%滿之初始條件觸發平衡機制,則快取記憶體為60%滿之條件可為第二觸發點。若儲存裝置偵測到該條件,則可採用更主動策略。替代於排程每一主機請求N1個快取清理步驟之比率,將排程N2個步驟之比率,其中N2>N1。由主機經歷之有效持續寫入效能將下降至W2,其中W2<W1。此更加減少之效能模式可能足以將系統平衡於快取記憶體停止填滿的均衡中,或其可能仍並不足夠,在該狀況下啟動具有對應之進一步減少主機效能值之額外此等觸發點。最終,到達以某一平均速率服務主機同時快取記憶體不再變得更滿的均衡。
儘管有可能使用單一觸發點來嘗試主機寫入及快取清除平衡之粗糙形式,但較佳使用多個觸發點,因為儲存裝置之現實效能視主機10之存取樣式而定。通常,儲存裝置之所宣傳持續寫入效能對於將資料寫入至順序位址中的主機校正。當主機10將資料寫入至隨機位址中時,持續寫入效能大體較低。存取樣式愈隨機,有效效能愈低。此效應係歸因於在處理隨機位址樣式時快閃管理演算法之相對無效性。由於此,使快取記憶體進入均衡之恰當平衡比率可為不可預測的,且一連串觸發條件對於連續地減少主機服務效能係大體需要的直至到達均衡為止。亦應注意,在隨機位址樣式下,均衡點可導致甚至低於所宣傳持續寫入效能的平均持續寫入效能(如由主機經歷)。
再次參看圖5,當主機在產生新資料過程中開始減慢時,一相反過程發生。隨著快取儲存器16變空,導致處理器20隨著快取記憶體之可用容量變小而應用快取清理步驟相對於主機命令的增加比率的相同觸發位準可隨著快取記憶體變空且可用容量增加而以相反次序應用,以使得較少資源提交給快取清理過程。在一替代實施例中,用於在快取記憶體填滿時應用逐漸增加的比率之觸發可不同於用於隨著快取記憶體騰空而應用相同或不同比率的觸發。舉例而言,用於在快取記憶體填滿時自第一比率改變至第二比率的觸發可為在快取記憶體為60%滿時,但在快取記憶體騰空時用於自第二比率切換回至第一比率的觸發點可設定為在快取儲存器為55%滿時。以此方式,為觸發條件提供類似滯後之效應,且可避免兩個排程模式之間的高頻雙態觸發。最終,快取儲存器16將到達一相對較空狀態(例如,小於50%滿),且儲存裝置12將後退至將完整優先權(瞬間寫入效能)提供至主機請求的初始模式。
已揭示用於實施主機寫入作業及快取清除平衡機制之方法及系統,該機制犧牲一資料寫入效能量以維持快取均衡且避免延長之超時週期的情況。該方法藉由判定自快取儲存裝置之快取儲存器部分中之可用容量,判定在可用容量低於所要臨限值之情況下快取清除步驟相對於主機寫入命令之比率且交錯快取清除步驟與主機命令以達成該比率而平衡主機命令的執行。可藉由在執行一主機寫入命令之後維持儲存裝置忙碌狀態且利用此額外時間將資料之一部分自快取儲存器複製至主要儲存器中而執行該等快取清除步驟。儘管提供至主機之效能由此方法減少,但其可仍為相當高的,可能甚至比所宣傳持續速率高。
10...主機系統/主機
12...自快取快閃儲存裝置
14...通信通道
16...快取儲存器
18...主要儲存器
19...控制器
20...處理器
22...指令/指令資料庫
23...邏輯區塊至實體區塊轉譯表/邏輯至實體映射表
30...平面/子陣列
32...平面/子陣列
34...平面/子陣列
36...平面/子陣列
38...區塊
40...區塊
42...區塊
44...區塊
46...第一中繼區塊
48...第二中繼區塊
50...區塊
52...區塊
54...區塊
56...區塊
58...中繼頁
P0至P7...頁
圖1為一自快取記憶體系統的方塊圖。
圖2說明圖1之系統之實例實體記憶體組織。
圖3展示圖2之實體記憶體之一部分的展開圖。
圖4為說明根據一較佳實施例判定是否實施一寫入及快取清除平衡機制之方法的流程圖。
圖5為說明根據一較佳實施例之主機寫入及快取清除平衡機制之一實施例的流程圖。
10...主機系統/主機
12...自快取快閃儲存裝置
14...通信通道
16...快取儲存器
18...主要儲存器
19...控制器
20...處理器
22...指令/指令資料庫
23...邏輯區塊至實體區塊轉譯表/邏輯至實體映射表

Claims (21)

  1. 一種在一儲存裝置中管理資料自一快取儲存器移動至一主要儲存器之方法,於該儲存裝置中將在來自一外部主機之寫入命令中接收之傳入資料先儲存於該快取儲存器中,且稍後移動至該主要儲存器,該方法包含:在該儲存裝置處接收一來自該主機之寫入命令;將利用該寫入命令接收之資料儲存於該快取儲存器中;在接收該寫入命令之後,在該儲存裝置處產生一忙碌狀態;及在將該資料儲存於該快取儲存器中之後,維持該忙碌狀態並同時將來自該快取儲存器之資料之至少一部分複製至該主要儲存器,其中當起始該複製時,該快取記憶體中存在足夠的可用容量,以用於在一來自該主機之後續寫入命令中接收資料,其中複製來自該快取儲存器之該資料之至少一部分包含執行一可選擇數目之快取清理步驟,且其中每一快取清理步驟係將來自該快取儲存器中之至少一頁的資料複製至該主要儲存器。
  2. 如請求項1之方法,其進一步包含至少部分地基於該快取儲存器中之一可用容量而判定該可選擇數目。
  3. 一種在一儲存裝置中管理資料自一快取儲存器移動至一主要儲存器之方法,在該儲存裝置中將來自一外部主機之傳入資料先儲存於該快取儲存器中,且稍後移動至該 主要儲存器,該方法包含:偵測快取儲存器之一可用容量;及基於該偵測到之可用容量而判定快取清理步驟相對於主機命令的一比率;及交錯快取清理步驟之執行與主機命令之執行以達成快取清理步驟相對於主機命令的該經判定比率,其中快取清理步驟之執行包含維持一在該儲存裝置處產生且由一主機命令觸發之忙碌狀態達一超出一足以執行該主機命令之時間的時間週期,及在該時間週期內將來自該快取儲存器之資料之至少一部分複製至該主要儲存器。
  4. 如請求項3之方法,其中該比率包含一非整數比率。
  5. 如請求項3之方法,其中該等主機命令包含主機寫入命令。
  6. 如請求項3之方法,其中該等主機命令包含主機讀取命令。
  7. 如請求項3之方法,其中該等主機命令包含主機抹除命令。
  8. 如請求項3之方法,其中判定快取清理步驟相對於主機命令的該比率係基於該偵測到之可用容量之外再加上至少一額外參數。
  9. 如請求項8之方法,其中該至少一額外參數包含一儲存裝置負載參數。
  10. 如請求項9之方法,其中該儲存裝置負載參數包含經分配之堆積記憶體之一當前量。
  11. 如請求項3之方法,其進一步包含僅在該偵測到之可用容量小於一所要臨限容量之情況下判定快取清理步驟相對於主機命令的該比率,且交錯快取清理步驟之執行與主機命令之執行。
  12. 如請求項3之方法,其進一步包含僅在該偵測到之可用容量大於一用於接收來自一主機之資料之最小容量且小於一所要臨限容量之情況下判定快取清理步驟相對於主機命令的該比率且交錯快取清理步驟之執行與主機命令之執行。
  13. 一種儲存裝置,其包含:一快取儲存器,其經組態以用於接收來自一主機之資料;一主要儲存器,其與該快取儲存器通信且經組態以接收自該快取儲存器傳送之資料;及一控制器,其經配置以管理資料自該快取儲存器至該主要儲存器之傳送,其中該控制器經組態以:偵測該快取儲存器之一可用容量;基於該快取儲存器之該偵測到之可用容量而判定快取清理步驟相對於主機命令的一比率;及交錯快取清理步驟之執行與主機命令之執行以達成快取清理步驟相對於主機命令的該經判定比率,其中快取清理步驟之執行包含維持一在該儲存裝置處產生且由一主機命令觸發之忙碌狀態達一超出一足以執行該主機命令之時間的時間週期,及在該時間週期內將 來自該快取儲存器之資料複製至該主要儲存器。
  14. 如請求項13之儲存裝置,其中該控制器經組態以基於該偵測到之可用容量之外再加上至少一額外參數,而判定快取清理步驟相對於主機命令的該比率。
  15. 如請求項14之儲存裝置,其中該至少一額外參數包含一儲存裝置負載參數。
  16. 如請求項15之儲存裝置,其中該儲存裝置負載參數包含經分配之堆積記憶體之一當前量。
  17. 如請求項13之儲存裝置,其中該等主機命令包含主機寫入命令,且其中足以執行該等主機寫入命令中之一者之該時間包含一將與該主機寫入命令相關聯之資料寫入至該快取記憶體的時間週期。
  18. 如請求項13之儲存裝置,其中該控制器經組態以執行一可選擇數目之快取清理步驟,且其中每一快取清理步驟包含將來自該快取儲存器中之至少一頁的資料複製至該主要儲存器。
  19. 如請求項18之儲存裝置,其中該控制器經進一步組態以至少部分地基於該快取儲存器中之一可用容量而判定該可選擇數目。
  20. 如請求項13之儲存裝置,其中該控制器經進一步組態以僅在該偵測到之可用容量小於一所要臨限容量之情況下,判定快取清理步驟相對於主機命令的該比率,且交錯快取清理步驟之執行與主機命令之執行。
  21. 如請求項13之儲存裝置,其中該控制器經進一步組態以 僅在該偵測到之可用容量大於一用於接收來自該主機之資料之最小容量且小於一所要臨限容量之情況下,判定快取清理步驟相對於主機命令的該比率,且交錯快取清理步驟之執行與主機命令之執行。
TW097150465A 2007-12-31 2008-12-24 平衡主機寫入作業和快取清除之方法和系統 TWI421877B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/967,369 US7865658B2 (en) 2007-12-31 2007-12-31 Method and system for balancing host write operations and cache flushing

Publications (2)

Publication Number Publication Date
TW200937424A TW200937424A (en) 2009-09-01
TWI421877B true TWI421877B (zh) 2014-01-01

Family

ID=40800012

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097150465A TWI421877B (zh) 2007-12-31 2008-12-24 平衡主機寫入作業和快取清除之方法和系統

Country Status (6)

Country Link
US (1) US7865658B2 (zh)
EP (1) EP2227740B1 (zh)
JP (1) JP5443384B2 (zh)
KR (1) KR101563875B1 (zh)
TW (1) TWI421877B (zh)
WO (1) WO2009088626A2 (zh)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200904B2 (en) * 2007-12-12 2012-06-12 Sandisk Il Ltd. System and method for clearing data from a cache
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
US8261009B2 (en) * 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US8838903B2 (en) * 2010-02-04 2014-09-16 Dataram, Inc. Priority ordered multi-medium solid-state storage system and methods for use
US8239617B1 (en) * 2010-02-12 2012-08-07 Emc Corporation Enterprise data storage system using multi-level cell flash memory
US8402226B1 (en) * 2010-06-18 2013-03-19 Emc Corporation Rate proportional cache write-back in a storage server
JP2012141946A (ja) * 2010-12-16 2012-07-26 Toshiba Corp 半導体記憶装置
KR20120088454A (ko) * 2011-01-31 2012-08-08 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법
US20130067168A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Caching for a file system
US8856443B2 (en) * 2012-03-12 2014-10-07 Infinidat Ltd. Avoiding duplication of data units in a cache memory of a storage system
US9606730B2 (en) 2012-05-04 2017-03-28 Samsung Electronics Co., Ltd. System and method including three dimensional nonvolatile memory device and random access memory
CN103514111A (zh) * 2012-06-21 2014-01-15 华为技术有限公司 一种Cache的替换方法及装置
KR102024850B1 (ko) * 2012-08-08 2019-11-05 삼성전자주식회사 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US9112922B2 (en) * 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
US9740485B2 (en) 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9280482B2 (en) * 2012-12-13 2016-03-08 Western Digital Technologies, Inc. Methods and systems for provisioning a bootable image on to an external drive
US9141531B1 (en) 2012-12-14 2015-09-22 Western Digital Technologies, Inc. Data flush from cache to disk based on track limit
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9542306B2 (en) * 2013-03-13 2017-01-10 Seagate Technology Llc Dynamic storage device provisioning
US9727453B2 (en) 2013-03-14 2017-08-08 Sandisk Technologies Llc Multi-level table deltas
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US20160154743A1 (en) * 2013-06-25 2016-06-02 Hewlett-Packard Development Company, L.P. Flushing dirty data from cache memory
US9026693B2 (en) * 2013-08-05 2015-05-05 Samsung Electronics Co., Ltd. Method for filtering cached input/output data based on data generation/consumption
US9563565B2 (en) 2013-08-14 2017-02-07 Micron Technology, Inc. Apparatuses and methods for providing data from a buffer
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US9170943B2 (en) * 2013-08-29 2015-10-27 Globalfoundries U.S. 2 Llc Selectively enabling write caching in a storage system based on performance metrics
US9824004B2 (en) 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
US10108372B2 (en) 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
US10365835B2 (en) 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
US9720837B2 (en) * 2014-06-27 2017-08-01 International Business Machines Corporation Allowing non-cacheable loads within a transaction
CA2955098C (en) 2014-08-15 2021-10-26 Microsoft Technology Licensing, Llc Flushing in file system
US10127157B2 (en) * 2014-10-06 2018-11-13 SK Hynix Inc. Sizing a cache while taking into account a total bytes written requirement
US9940259B2 (en) * 2015-01-16 2018-04-10 International Business Machines Corporation Virtual disk alignment access
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
TWI598733B (zh) * 2016-01-12 2017-09-11 瑞昱半導體股份有限公司 權重式資料搬遷控制裝置與方法
US20170212711A1 (en) * 2016-01-21 2017-07-27 Kabushiki Kaisha Toshiba Disk apparatus and control method
US20180239532A1 (en) 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10372351B2 (en) 2017-02-23 2019-08-06 Western Digital Technologies, Inc. Techniques for non-blocking control information and data synchronization by a data storage device
US10359955B2 (en) 2017-02-23 2019-07-23 Western Digital Technologies, Inc. Data storage device configured to perform a non-blocking control update operation
TWI645286B (zh) * 2017-08-31 2018-12-21 慧榮科技股份有限公司 記憶體控制裝置和方法
US10877686B2 (en) * 2018-04-13 2020-12-29 Intel Corporation Mass storage device with host initiated buffer flushing
US11188474B2 (en) 2018-06-19 2021-11-30 Western Digital Technologies, Inc. Balanced caching between a cache and a non-volatile memory based on rates corresponding to the cache and the non-volatile memory
US10782916B2 (en) * 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US11409436B2 (en) 2018-08-08 2022-08-09 Micron Technology, Inc. Buffer management in memory systems for read and write requests
KR102243923B1 (ko) 2018-12-31 2021-04-22 강원대학교산학협력단 캐쉬를 동반한 효율적인 페이지 컬렉션 매핑을 이용하는 비휘발성 메모리 장치 및 그 동작 방법
US11023150B2 (en) 2019-07-01 2021-06-01 International Business Machines Corporation Block mode toggling using hybrid controllers
US11182089B2 (en) 2019-07-01 2021-11-23 International Business Machines.Corporation Adapting memory block pool sizes using hybrid controllers
CN112181938B (zh) * 2019-07-05 2024-06-14 杭州海康威视数字技术股份有限公司 数据库清理方法、装置和计算机可读存储介质
KR102650809B1 (ko) * 2019-08-02 2024-03-26 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
US11994983B2 (en) * 2022-08-24 2024-05-28 Micron Technology, Inc. Multimedia card command timeout measurement

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883904A (en) * 1997-04-14 1999-03-16 International Business Machines Corporation Method for recoverability via redundant cache arrays
US20040073751A1 (en) * 1999-12-15 2004-04-15 Intel Corporation Cache flushing
US20050055512A1 (en) * 2003-09-05 2005-03-10 Kishi Gregory Tad Apparatus, system, and method flushing data from a cache to secondary storage
US7076605B1 (en) * 2003-04-25 2006-07-11 Network Appliance, Inc. Method and apparatus for writing data to a storage device
US20070118698A1 (en) * 2005-11-18 2007-05-24 Lafrese Lee C Priority scheme for transmitting blocks of data
US20070283081A1 (en) * 2006-06-06 2007-12-06 Msystem Ltd. Cache control in a non-volatile memory device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636355A (en) 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
US6412045B1 (en) 1995-05-23 2002-06-25 Lsi Logic Corporation Method for transferring data from a host computer to a storage media using selectable caching strategies
JP3484874B2 (ja) * 1996-05-01 2004-01-06 日本電気株式会社 記憶システム
US5895488A (en) 1997-02-24 1999-04-20 Eccs, Inc. Cache flushing methods and apparatus
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
WO2000005652A1 (en) * 1998-07-24 2000-02-03 Sun Microsystems, Inc. Method and apparatus for achieving deterministic memory allocation response in a computer system
JPH11288387A (ja) * 1998-12-11 1999-10-19 Fujitsu Ltd ディスクキャッシュ装置
JP2001135017A (ja) * 1999-11-02 2001-05-18 Nec Corp データ記憶装置及びデータ記憶装置用インタフェース装置
US6678785B2 (en) 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US6976128B1 (en) 2002-09-26 2005-12-13 Unisys Corporation Cache flush system and method
US7356651B2 (en) 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
JP4402997B2 (ja) 2004-03-26 2010-01-20 株式会社日立製作所 ストレージ装置
US7752382B2 (en) 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US7395377B2 (en) 2006-04-20 2008-07-01 International Business Machines Corporation Method and system for adaptive back-off and advance for non-volatile storage (NVS) occupancy level management
US8200904B2 (en) 2007-12-12 2012-06-12 Sandisk Il Ltd. System and method for clearing data from a cache

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883904A (en) * 1997-04-14 1999-03-16 International Business Machines Corporation Method for recoverability via redundant cache arrays
US20040073751A1 (en) * 1999-12-15 2004-04-15 Intel Corporation Cache flushing
US7076605B1 (en) * 2003-04-25 2006-07-11 Network Appliance, Inc. Method and apparatus for writing data to a storage device
US20050055512A1 (en) * 2003-09-05 2005-03-10 Kishi Gregory Tad Apparatus, system, and method flushing data from a cache to secondary storage
US20070118698A1 (en) * 2005-11-18 2007-05-24 Lafrese Lee C Priority scheme for transmitting blocks of data
US20070283081A1 (en) * 2006-06-06 2007-12-06 Msystem Ltd. Cache control in a non-volatile memory device

Also Published As

Publication number Publication date
JP2011508347A (ja) 2011-03-10
JP5443384B2 (ja) 2014-03-19
EP2227740A2 (en) 2010-09-15
WO2009088626A2 (en) 2009-07-16
US20090172286A1 (en) 2009-07-02
TW200937424A (en) 2009-09-01
EP2227740A4 (en) 2011-11-16
EP2227740B1 (en) 2018-01-24
KR101563875B1 (ko) 2015-10-28
KR20100107456A (ko) 2010-10-05
US7865658B2 (en) 2011-01-04
WO2009088626A3 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
TWI421877B (zh) 平衡主機寫入作業和快取清除之方法和系統
US11355197B2 (en) Memory system with nonvolatile cache and control method thereof
US11416161B2 (en) Zone formation for zoned namespaces
US8200904B2 (en) System and method for clearing data from a cache
CN102713866B (zh) 减少基于闪存的存储系统中的存取争用
US9778855B2 (en) System and method for precision interleaving of data writes in a non-volatile memory
JP4759057B2 (ja) フロントメモリストレージシステムおよび方法
US8495320B1 (en) Method and apparatus for storing data in a flash memory including single level memory cells and multi level memory cells
US20080294814A1 (en) Flash Memory System with Management of Housekeeping Operations
US9696934B2 (en) Hybrid solid state drive (SSD) using PCM or other high performance solid-state memory
US20080294813A1 (en) Managing Housekeeping Operations in Flash Memory
CN114072774A (zh) 数据存储系统中的块模式切换
KR102276350B1 (ko) Nand 버퍼를 갖는 nand 플래시 저장 디바이스
JP2018190483A (ja) 低キュー深度環境における、nレベルのnand型フラッシュセルのプログラミング
KR20090050382A (ko) 스토리지 관리 방법 및 관리 시스템
JP7486534B2 (ja) ストレージ・システムにおけるブロック・プール・サイズの適合
JP7496841B2 (ja) 読出しヒート・データ分離をサポートしている書込みキャッシュ・アーキテクチャ内でのデータ配置
TW201911052A (zh) 磨損平整
KR20090102192A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
WO2008147752A1 (en) Managing housekeeping operations in flash memory
KR20120055707A (ko) 메모리 시스템
JP2018101301A (ja) 情報処理装置およびメモリアクセス方法
KR20230142795A (ko) Zns 디바이스들에서의 상이한 기입 우선순위화
TWI712882B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US20210181980A1 (en) Storage System and Method for Improving Utilization of a Communication Channel between a Host and the Storage System

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees