TW201314452A - 緩衝資料的系統及方法 - Google Patents

緩衝資料的系統及方法 Download PDF

Info

Publication number
TW201314452A
TW201314452A TW101118596A TW101118596A TW201314452A TW 201314452 A TW201314452 A TW 201314452A TW 101118596 A TW101118596 A TW 101118596A TW 101118596 A TW101118596 A TW 101118596A TW 201314452 A TW201314452 A TW 201314452A
Authority
TW
Taiwan
Prior art keywords
data
buffer
identifier
read
volatile memory
Prior art date
Application number
TW101118596A
Other languages
English (en)
Inventor
Reuven Elhamias
Original Assignee
Sandisk Technologies Inc
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 Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW201314452A publication Critical patent/TW201314452A/zh

Links

Classifications

    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/221Static RAM
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本發明揭示一種資料儲存裝置,其包含一控制器、一非揮發性記憶體及該控制器可存取之一緩衝器。該緩衝器經組態以回應於自一主機裝置接收對該非揮發性記憶體之讀取存取之一或多個請求而儲存擷取自該主機裝置可存取之該非揮發性記憶體之資料,同時該資料儲存裝置經操作地耦合至該主機裝置。該控制器經組態以回應於接收對該非揮發性記憶體之讀取存取之一請求而讀取快取資料之一指示符。該請求包含一資料識別符。回應於快取資料之該指示符未指示對應於該資料識別符之資料係在該緩衝器中,該控制器經組態以自該非揮發性記憶體擷取對應於該資料識別符之資料以及額外資料,且將對應於該資料識別符之該資料及該額外資料寫入至該緩衝器。該控制器經組態以回應於來自該非揮發性記憶體之所擷取資料經寫入至該緩衝器而更新快取資料之該指示符。

Description

緩衝資料的系統及方法
本發明大致上係關於自一記憶體讀取資料。
諸如通用串列匯流排(USB)快閃記憶體驅動器及可抽換式儲存卡之非揮發性記憶體裝置增加資料及軟體應用程式之可攜性。此等記憶體裝置之資料擷取速度及功耗可影響一使用者經驗。因此,有利的是改良自一非揮發性記憶體裝置之資料擷取之一平均速度。亦有利的是減小與自一非揮發性記憶體裝置之資料擷取相關聯之功耗。
本發明揭示一種資料儲存裝置,其回應於接收對資料之一請求(諸如來自一主機裝置之一請求)而自一非揮發性記憶體擷取資料。所擷取之請求資料於一緩衝器中予以快取並自該緩衝器提供給該主機裝置。此外,亦回應於該請求而自該非揮發性記憶體擷取未請求資料。額外資料於該緩衝器中予以快取且可提供給該主機裝置。例如,可根據一預讀取程序經推測或預測自該非揮發性記憶體擷取額外資料(例如,作為下一個循序資料)。作為另一實例,額外資料可在與所請求資料相同之非揮發性記憶體之一資料讀取單元內。在隨後請求額外資料之情況下提供來自緩衝器之額外資料可增加如藉由主機裝置感知之資料擷取之速度。當額外資料係在與所請求資料相同之一資料讀取單元內時,亦可藉由避免對該非揮發性記憶體之相同資料讀取單 元之一第二存取減小功耗。
參考圖1,描繪包含一資料儲存裝置102及一主機裝置130之一系統之一特定實施例,且概括地以100指定該系統。該資料儲存裝置102係回應於對藉由擷取所請求資料及亦擷取儲存於一緩衝器108中之未請求額外資料而自該主機裝置130接收之讀取存取之一請求132。所請求資料自該緩衝器108返回至該主機裝置130,而未請求額外資料則仍儲存在該緩衝器108中以在隨後請求額外資料之情況下能夠加速對額外資料之存取。
該主機裝置130可為經組態以操作地耦合至該資料儲存裝置102之一裝置,諸如一行動電話、一音樂或視訊播放器、一個人數位助理(PDA)、一遊戲機裝置、一電子書閱讀器、一相機、一電腦(諸如一膝上型電腦或筆記型電腦)或任何其他電子裝置或其等之任何組合。該主機裝置130經組態以發送指令(諸如對讀取存取之請求132)至該資料儲存裝置102。
該資料儲存裝置102可為一記憶體卡,諸如保全數位SD®卡、一microSD®卡、一miniSD.TM卡(特拉華州威明頓市SD-3C有限責任公司之商標)、一MultiMediaCard.TM(MMC.TM)卡(弗吉尼亞州阿靈頓市JEDEC固態技術協會之商標)或一CompactFlash®(CF)卡(加利福尼亞州苗必達市SanDisk公司之商標)。作為另一實例,該資料儲存裝置102可為該主機裝置130中之嵌入式記憶體,諸如如闡釋性實例之 eMMC®(弗吉尼亞州阿靈頓市JEDEC固態技術協會之商標)及eSD。
該資料儲存裝置102包含一控制器106、一記憶體104及該緩衝器108。該記憶體104可為一固態非揮發性記憶體,諸如一快閃記憶體。在一闡釋性實施例中,該記憶體104包含一NAND快閃記憶體。
該控制器106經組態以自該主機裝置130接收諸如對讀取存取之請求132之訊息。該控制器106經組態以回應對該記憶體104之讀取存取之請求或對該記憶體104之寫入存取之請求。例如,該控制器106經組態以自該記憶體104擷取藉由該主機裝置130請求之資料且起始發送所請求資料至該主機裝置130。
該控制器106亦包含快取資料之一指示符110。該指示符110包含對應於儲存於該緩衝器108中之資料(諸如關於圖2描述)之一或多個指示。該控制器106經組態以回應於接收對該非揮發性記憶體104之讀取存取之一請求而讀取該指示符110以判定是否於該緩衝器108中快取所請求資料。回應於該指示符110指示於該緩衝器中快取該所請求資料,該控制器106將該所請求資料自該緩衝器108提供給該主機裝置130。否則,若不存在快取該所請求資料之指示,則該控制器106自該記憶體104擷取該所請求資料及未請求額外資料、將該所請求資料及該未請求額外資料儲存至該緩衝器108,且將該所請求資料自該緩衝器108提供給該主機裝置130。
該記憶體104包含所儲存資料,諸如Data 0 120至Data N 126。例如,該記憶體104包含第一資料(Data 1)122,該第一資料之後循序緊隨第二資料(Data 2)124。為圖解,作為闡釋性非限制性實例,資料120至126可對應於該記憶體104之一或多個字線、一字線之部分,諸如區段,或儲存於該記憶體104之多個連續記憶體位址中之資料。雖然圖解該記憶體104為儲存該資料120至126,但是應瞭解該記憶體104可儲存其他資料。
該緩衝器108經組態以儲存可經存取以藉由該主機裝置130讀取自該緩衝器108之資料。作為一闡釋性實例,該緩衝器108可包含可藉由該控制器106存取之一隨機存取記憶體(RAM)。讀取自該記憶體104之資料可在該主機裝置130可使用之前被處理。作為一實例,可對讀取自該記憶體104之資料執行錯誤校正處理(諸如一錯誤校正碼(ECC)程序)以識別並校正可發生於該記憶體104內之一或多個位元錯誤。如圖1中圖解,諸如緩衝第一資料154及緩衝第二資料156之錯誤校正資料可儲存於該緩衝器108內。
在操作期間,自該主機裝置130發送且在該控制器106處接收對讀取存取之請求132。該請求132包含指示該記憶體104處之第一資料122之一第一資料識別符138。例如,該第一資料識別符138可為該第一資料122之一位址。回應於接收該請求132,該控制器106讀取快取資料之指示符110以判定對應於該第一資料識別符138之第一資料122是否係在該緩衝器108中。回應於快取資料之指示符110指示對應 於該第一資料識別符138之第一資料122未在該緩衝器108中,該控制器106起始自該非揮發性記憶體104擷取第一資料122及第二資料124。
該第二資料124對應於不同於該第一識別符138之一第二資料識別符。例如,該第二資料124可能係相繼於該第一資料122後,且可根據預期隨後提供該第二資料124給該主機裝置130之一預讀取操作而擷取。可根據一預讀取程序經推測或預測地擷取該第二資料124,諸如當根據對讀取存取之一可預測請求序列自該記憶體104讀取一檔案時。該第一識別符138及該第二識別符可為如關於圖3描述之連續實體位址、如關於圖4描述之連續邏輯區塊位址(LBA)、如關於圖5描述之一快閃記憶體檔案系統實施方案中之一所識別檔案之連續部分、一或多個其他類型的識別符或其等之任何組合。
作為另一實例,該第二資料124可包含於與該第一資料122相同之記憶體104之一資料讀取區塊中。為圖解,該記憶體104可經組態以依「區塊」或可大於藉由該主機裝置130請求之資料量之其他讀取單位讀取。該第二資料124可與該第一資料122作為擷取自該記憶體104之一相同讀取單元之部分而一起讀取及處理。例如,如關於圖5所述,該第一資料122及該第二資料124可在一單一ECC碼字內。
該控制器106可藉由發出擷取該第一資料122之一第一指令136及藉由發出自該非揮發性記憶體104擷取該第二資料124之一第二指令134自該記憶體104擷取該第一資料122及 該第二資料124。回應於該等指令134及136,可將所擷取第一資料144及所擷取第二資料146自該記憶體104寫入至該緩衝器108。該所擷取第一資料144及該所擷取第二資料146可在寫入至該緩衝器108之前藉由(諸如)一基於硬體之ECC處理器而予以處理。作為另一實例,可經由(諸如)一基於處理器之ECC處理對已寫入至該緩衝器108之資料執行ECC處理。在處理該所擷取第一資料144及該第二所擷取第二資料146並將其等分別作為緩衝第一資料154及緩衝第二資料156儲存在該緩衝器108中後,藉由該控制器106更新快取資料之指示符110以指示該緩衝第一資料154及該緩衝第二資料156係儲存在該緩衝器108中。將該緩衝第一資料154自該緩衝器108作為發送第一資料164提供給該主機裝置130。該緩衝第二資料156保留在該緩衝器108中以在隨後可用於該主機裝置130。
該緩衝第二資料156可保留在該緩衝器108中直到其被擦除或覆寫。例如,在該緩衝器108係一揮發性記憶體之一實施方案中,當該資料儲存裝置102處發生一斷電事件時儲存在該緩衝器108處之資料可能丟失。作為另一實例,該控制器106可限制可於該緩衝器108處快取之讀取資料量。一旦達到該緩衝器處容許快取之讀取資料之界限,該控制器106可導致隨後請求資料覆寫該緩衝器108處之現有讀取資料。例如,該控制器106可實施一最近最少使用的置換決策或另一置換決策以管理該緩衝器108處之讀取資料之快取。在一些實施方案中,回應於快取資料經提供給 該主機裝置130,可擦除或指定快取資料以進行移除或置換。然而,在其他實施方案中,無關於資料是否已提供給該主機裝置130,皆可將快取資料維持在該緩衝器108中。例如,若預測該主機裝置130重複對讀取某一資料之一請求,則仍可快取所請求資料以可用於後續請求。
在一些實施方案中,該控制器106可經組態以依一管線方式自該非揮發性記憶體104讀取該第一資料122及該第二資料124。在一第一時間週期期間,可自該記憶體104擷取該第一資料122並將該第一資料122寫入至該緩衝器108中,且在一後續時間週期期間,可將該第一資料154自該緩衝器108提供給該主機裝置130,同時自該記憶體104擷取該第二資料124並將該第二資料124寫入至該緩衝器108。關於圖6進一步詳細描述管線資料擷取之一實例。
回應於對該第一資料122之讀取存取之請求132,在判定未於該緩衝器108中快取該第一資料122後,該控制器106將該第一資料122及該第二資料124擷取至該緩衝器108,且將該緩衝第一資料154提供給該主機裝置130。將該第二資料124寫入至該緩衝器108中作為該緩衝第二資料156將使該資料儲存裝置102能夠回應於對包含該第二資料識別符之讀取存取之一後續請求而略過自該非揮發性記憶體104讀取該第二資料124。對該記憶體104較少的讀取存取將使該記憶體104之讀取持久性增加。此外,歸因於在主機讀取請求之前經推測地於該緩衝器108中快取之資料之平均讀取延時減小,改良該主機裝置130之讀取效能。進 一步言之,減小對該記憶體104之存取次數可減小耗能。耗能減小延長該資料儲存裝置102或該主機裝置130之一電池壽命,且可增強一使用者經驗。
參考圖2,描繪圖1之包含快取資料之指示符110及該緩衝器108之系統之組件之進一步細節之一實例,且概括地用200指定該系統。快取資料之指示符110圖解為包含一或多個項之一列表,包含一第一項202、一第二項204及一第三項206。每一項202至206包含該緩衝器108中之對應資料之一識別符。例如,該第一項202包含具有對應於該緩衝器108中之第一資料(Data 1)230之一邏輯區塊位址之一識別符值(LBA-1)216之一識別符欄位210。該第二項204包含具有對應於該緩衝器108中之第二資料(Data 2)232之一邏輯區塊位址之一識別符值(LBA-2)之一識別符欄位。該第三項206包含具有對應於該緩衝器108中之第三資料(Data 3)234之一第三邏輯區塊位址之一識別符值(LBA-3)之一識別符欄位。
該列表之每一特定項202、204、206可指示該緩衝器108中對應於特定項之資料之一起始位址及長度資訊。例如,該第一項202包含該識別符欄位210且亦包含具有「1」之一長度值218之一長度欄位212。該識別符值216可對應於該對應第一資料230之一起始位址,且該長度值218(即,「1」)可指示該第一資料230具有1個單位之一長度。例如,「1」之一長度可指示資料來自圖1之非揮發性記憶體104之一單一區段。該第一項202亦包含具有指示該緩衝器 108中之一位置之一位置值220之一位置欄位214,該位置值220圖解為指向該對應的第一資料230在該緩衝器108中之一位置之一指標值(P1)。
類似地,該第二項204指示對應的第二資料232係在該緩衝器108中之一位置P2處、對應於開始於該邏輯位址LBA-2處之一資料單位,且具有一個單位之一長度(例如,圖1之記憶體104之一單一區段)。該第三項206指示對應的第三資料234係在該緩衝器108中之一位置P3處、對應於開始於該邏輯位址LBA-3處之一資料單位,且具有兩個單位之一長度(例如,圖1之記憶體104之兩個區段)。
藉由識別該緩衝器108處之資料之一起始位址及一資料長度,可藉由圖1之控制器106讀取快取資料之指示符110以判定所請求資料是否係在該緩衝器108中。例如,該控制器106可自該列表之第一項202讀取起始位址及長度資訊(諸如該識別符值216及該長度值218)以判定該第一項202之對應資料(即,該第一資料230)是否包含所請求資料。回應於判定該第一項202之對應資料並未包含該所請求資料,該控制器106可自該第二項204讀取該起始位址及該長度資訊。依此方式,該控制器106可在該列表之開始時開始讀取且可藉由在該指示符110中尋找一對應項而循序處理該列表之每一項,直到所請求資料位於該緩衝器108中,或直到該控制器106判定該指示符110中無對應於該所請求資料之項。在該控制器106判定該指示符110中無對應於該所請求資料之項後,該控制器106可起始一擷取操作以如圖1 中描述般自該記憶體104擷取該所請求資料及下一個後續資料。
雖然圖2中圖解該指示符110為項202至206之一列表,但是在其他實施方案中,該指示符110不一定為一列表且反而可包含一或多個其他類型的資料結構,諸如一陣列、一表格或能夠儲存對應於該緩衝器108處之資料之資訊之任何其他結構。此外,雖然該指示符110圖解為一單鏈結有序列表,但是在其他實施例中該指示符110可為一雙鏈結列表,可為無序列表或其等之任何組合。進一步言之,雖然每一項202至206圖解為具有識別符、長度及位置資訊,但是在其他實施方案中該指示符110不一定具有識別符、長度及位置資訊之一或多者。該指示符110反而可能具有使該控制器106能夠判定所請求資料是否儲存在該緩衝器108中且使所請求資料能夠藉由該控制器106自該緩衝器108擷取之一或多個其他類型的資料。
參考圖3,描繪根據實體位址自圖1之非揮發性記憶體104擷取資料之一特定實施例。一第一字線302(WL i)對應於該非揮發性記憶體104之一第i字線。一第二字線304(WL i+1)係該非揮發性記憶體104之下一個連續字線。該等字線302及304可彼此循序相鄰且可對應於連續實體位址。每一字線302至304係圖解為儲存包含一第一ECC頁306(ECC Page 0)、一第二ECC頁308(ECC Page 1)、一第三ECC頁310(ECC Page 2)及一第四ECC頁(ECC Page 3)之ECC頁306至312。
如圖解,該控制器106可經由圖1之讀取請求132回應於接收該第一資料識別符138而判定待讀取自該非揮發性記憶體104之資料。在圖3中圖解之實施方案中,該第一資料識別符138指示將自其讀取所請求資料之一實體位址(PA1)。如圖解,該實體位址PA1對應於儲存第一資料(Data 1)之第一字線302之第二ECC頁308。回應於該第一資料未儲存在圖1之緩衝器108處,該控制器106可起始一資料讀取以讀取儲存在該第一字線302之第二ECC頁308處之第一資料,且亦可自動請求對對應於該第一字線302之ECC頁310(Page 2)之第二資料(Data 2)之一資料讀取。該第二資料可為未請求之下一個連續資料,該連續資料有可能繼該第一資料後被存取。根據一預讀取操作,該控制器106可經組態以循序存取該第一字線302之剩餘ECC頁之各者,且在存取該ECC頁312(Page 3)處之第三資料(Data 3)後,可自該第二字線304之第一ECC頁306讀取下一個連續資料(Data 4)。
為圖解,該資料儲存裝置102可符合其中該資料儲存裝置102藉由執行連續讀取直到自該主機裝置130接收一停止命令而回應來自該主機裝置130之一讀取指令之一規格。因此,當該主機裝置130發出對指示該實體位址PA1之讀取存取之請求132時,該資料儲存裝置102可根據連續實體位址自該記憶體104循序讀取存取資料直到自該主機裝置130接收一停止指令。
替代地,該主機裝置130可經組態以發送指示一特定資 料量之一讀取指令。在回應中,該資料儲存裝置102可僅擷取所請求資料,諸如該第一資料(Data 1)。然而,回應於對所接收之第二資料之一後續讀取請求,該資料儲存裝置102亦可由於一後續讀取請求之一預測目標而擷取待於該緩衝器108中快取之第二資料(Data 2)以進行較快存取及擷取。
參考圖4,描繪包含一邏輯轉實體轉譯表格414以轉譯在對讀取存取之請求中自該主機裝置130接收之LBA之另一實施方案。例如,該主機裝置130可提供LBA給該資料儲存裝置102,且該控制器106可存取該邏輯轉實體轉譯表格414以在該非揮發性記憶體104之所接收LBA與實體位址之間進行轉譯。圖4描繪具有該等字線302及304之非揮發性記憶體104。該等字線302、304以類似於圖3之一方式分為ECC頁306至312。然而,圖4中之第一資料、第二資料及第三資料並未儲存在連續實體位址中。相比而言,在圖4中,根據該邏輯轉實體轉譯表格414,連續邏輯區塊位址LBA-0、LBA-1、LBA-2及LBA-3分別對應於非連續實體位址PA0、PA1、PA5及PA7。
回應於該控制器106接收指示LBA-1之第一資料識別符138以擷取該第一資料,該控制器106起始自PA1之一資料讀取(該第一字線302之第二ECC頁308(Page 1)),且進一步起始對來自對應於下一個連續LBA(LBA-2)之實體位址PA5之第二資料之一請求。在其中該控制器106繼續擷取連續資料元素直到自該主機裝置130接收一停止命令之一實施 方案中,可執行下一個連續資料讀取以自對應於下一個連續LBA(LBA-3)之實體位址PA7讀取第三資料。
依此方式,該主機裝置130無須維持該非揮發性記憶體104之實體位址資訊,且反而可使用邏輯區塊定址請求資料。該資料儲存裝置102可回應於各種因數(諸如損耗均衡、廢料收集)或與記憶體管理相關聯之一或多個其他因數更新該邏輯轉實體轉譯表格414。
參考圖5,描繪其中該資料儲存裝置102實施諸如一快閃記憶體檔案系統之一檔案系統之另一實施方案。檔案系統514圖解為具有一第一檔案項516,該第一檔案項516具有三個檔案部分518、520及522。該等檔案部分518、520及522為連續且分別儲存在實體位址PA1、PA5及PA7處。該第一實體位址PA1係藉由該第一檔案項516指示之檔案之第一資料之一位址,該第二實體位址PA5係該檔案之第二資料之一位址,且該第三實體位址PA7係該檔案之第三資料之一位址。在圖5之實施例中,該第一資料識別符138可藉由識別該檔案(諸如對應於該第一檔案項516之檔案)及一起始位置(諸如自該檔案之第一部分518讀取之一指示)來識別待讀取之資料。
儲存在該等字線302、304之每一ECC頁306、308、310、312之資料可儲存為一單一ECC碼字,諸如典型的ECC碼字540。該ECC碼字540具有一資料部分542及儲存同位檢查位元或當自該非揮發性記憶體104讀取該碼字540時能夠偵測並校正錯誤之其他冗餘資料之一冗餘部分 (ECC)544。該ECC碼字540可包含多個讀取區塊,諸如一第一讀取區塊RB1、一第二讀取區塊RB2、一第三讀取區塊RB3及一第四讀取區塊RB4。每一讀取區塊可經定大小以對應於由該主機裝置130使用之一讀取單元大小。例如,該主機裝置130可請求512位元組資料段,且該等讀取區塊RB1至RB4之各者可為512位元組長。然而,因為在許多ECC實施方案中一相關校正編碼強度隨著碼字長度增加而改良,所以該四個讀取區塊RB1至RB4可組合為一單一碼字。因此,與對每一讀取區塊使用一較小ECC碼字相比,錯誤校正有所增強。
為讀取該碼字540之任何特定讀取區塊,自該非揮發性記憶體擷取整個碼字540並將其解碼。該碼字之多個讀取區塊之各者可儲存於該緩衝器108中而非被丟棄。藉由儲存於該緩衝器108中,對該等讀取區塊RB1至RB4之任一者之後續讀取請求可在對該ECC頁執行一單一讀取及對該ECC碼字540執行一單一ECC錯誤校正程序後自於該緩衝器108處快取之資料而滿足。
雖然在圖5中所示之快閃記憶體檔案系統中已圖解一單一碼字實施方案內之多個讀取區塊,但是應瞭解圖1至圖5之實施方案之任一者可包含一單一ECC碼字中之多個讀取區塊之一類似實施方案。類似地,應瞭解與儲存一單一ECC碼字中之多個讀取區塊相比,圖1至圖5之任一者可包含其他實施方案,諸如每一ECC碼字儲存經定大小以對應一主機讀取單位大小之資料之實施方案。
圖6描繪根據LBA之一序列之管線資料擷取之一實例600。諸如圖1之主機裝置130之一主機602與諸如圖1之資料儲存裝置102之一資料儲存裝置通信。該資料儲存裝置包含一控制器604、一緩衝器606及一記憶體608。例如,該控制器604可對應於圖1之控制器106。該控制器604可包含可對應於圖4之邏輯轉實體轉譯表格414之一邏輯轉實體轉譯表格605。該緩衝器606可對應於圖1之緩衝器108,且該記憶體608可對應於圖1之記憶體104。
在一第一管線循環610期間,在620處可自該控制器604處之主機602接收一請求以讀取一第一LBA(LBA1)。在判決622處,該控制器604判定是否於該緩衝器606快取該第一LBA處。例如,該控制器604可存取於該緩衝器606處快取之資料之一指示符,諸如圖1之指示符110。回應於判定未於該緩衝器606處快取對應於第一LBA之資料,在624處該控制器604發送一指令以擷取該第一實體位址(PA1)處之請求資料。例如,該控制器604可對該邏輯轉實體轉譯表格605執行一表格查找操作以判定對應於第一邏輯區塊位址之一實體位址。
在626處,該記憶體608提供對應於該第一邏輯區塊位址及該第一實體位址之所擷取資料給該緩衝器606。在628處,回應於將所擷取資料儲存至該緩衝器606,該控制器604更新一指示符(諸如圖1之快取資料之指示符110)以指示該第一LBA。在630處,該控制器604亦產生下一個連續LBA並判定一對應實體位址,該連續LBA及該實體位址圖 解為LBA2及PA2。
在下一個管線循環612中,在判決640處,該控制器604判定對應於LBA2之資料是否儲存在該緩衝器606處。回應於判定未於該緩衝器606處快取對應於LBA2之資料,在642處,該控制器604發送一指令以擷取對應於LBA2之第二實體位址PA2處之資料。在644處,對應於該第二實體位址及該第二LBA之所擷取資料係擷取自該記憶體608且係儲存在該緩衝器606中。在646處,將對應於LBA1/PA1之資料自該緩衝器606提供給該主機裝置602。在648處,更新指示符以指示對應於LBA2之資料儲存在該緩衝器606中,且在650處,該控制器604產生該下一個連續LBA(LBA3)及對應於LBA3之一實體位址(PA3)。
在第三管線循環614中,在判決660處,該控制器604判是否於該緩衝器606處快取定對應於LBA3之資料。回應於判定對應於LBA3之資料未儲存於該緩衝器606中,該控制器604發送一指令至該記憶體608以自實體位址PA3擷取對應於LBA3之資料。在664處自該記憶體608擷取來自該實體位址PA3之資料,且將該資料儲存在該緩衝器606中。在668處,自該緩衝器606提供對應於該第二實體位址(PA2)及該第二LBA(LBA2)之資料提供給該主機602。在670處,該控制器604更新指示符以指示對應於LBA3之資料之儲存。在672處,該控制器604產生下一個連續LBA(LBA4)並判定對應於LBA4之一實體位址(PA4)。
在下一個連續管線循環中,在680處於該控制器604處接 收來自該主機602之一指令以停止讀取程序。因此,未將對應於LBA3之資料作為連續讀取操作之部分提供給該主機裝置130。然而,仍於該緩衝器606處快取對應於LBA3之資料,且可提供給該主機602以供來自該主機602之一可能後續讀取請求。對應於LBA1及LBA2之資料亦可基於可用緩衝器空間量及用於該緩衝器606之一讀取資料置換決策而保留在該緩衝器606中。
圖7描繪可在具有一控制器、一非揮發性記憶體及一緩衝器之一資料儲存裝置(諸如圖1之資料儲存裝置102)中執行之一方法之一流程圖。該非揮發性記憶體可包含一快閃記憶體,且該緩衝器可為該控制器可存取之一隨機存取記憶體(RAM)。
在702處,接收對讀取存取之一請求。該請求包含一資料識別符,諸如圖1之識別符138。對讀取存取之請求係接收自一主機裝置,同時該資料儲存裝置經操作地耦合至該主機裝置。例如,該主機裝置可為圖1之主機裝置130。
在704處,讀取一快取資料之一指示符以判定該讀取存取請求中之資料識別符是否對應於於該緩衝器中快取之資料。例如,快取資料之指示符可包含一或多個項之一列表,諸如圖2中圖解之指示符110。每一項可包含儲存於該緩衝器中之對應資料之一識別符,諸如圖2之識別符值216。接收自該讀取請求之資料識別符可包含一第一位址,且該列表之每一特定項中之識別符可指示該緩衝器中之對應資料之一起始位址及長度資訊(例如,圖2之長度值218)。
讀取指示符以判定讀取存取請求中之資料識別符是否對應於於緩衝器中快取之資料可包含自該列表之一第一項讀取起始位址及長度資訊。該起始位址及該長度資訊可用以判定該第一項之對應資料是否包含對應於資料識別符之資料。例如,可比較第一位址與起始位址,且可比較該第一位址與一結束位址(例如,該起始位置加上對應於該長度資訊之一位移)。在此實例中,當該第一位址大於或等於該起始位址且該第一位址小於或等於該結束位址時,該第一項對應於所請求資料。
回應於判定該第一項之對應資料未包含對應於資料識別符之資料,可自該列表之一第二項讀取起始位址及長度資訊。依此方式,可開始於一第一項且繼續至其他列表項而遍歷該列表,直到定位出對應於所請求資料之一項或直到已處理全部項。
在706處,回應於基於資料識別符及快取資料之指示符判定無對應於緩衝器中快取之該資料識別符之資料,在708處自非揮發性記憶體擷取對應於讀取存取請求中之資料識別符之資料以及額外資料。在一第一實施例中,該額外資料包含於與該資料相同之非揮發性記憶體之一資料讀取單元中。例如,所請求資料可在該碼字540之資料部分542內之第二讀取區塊(RB2)(圖5)中。該額外資料可為該碼字540之剩餘讀取區塊(例如,RB1、RB3及RB4)。該碼字540可被擷取且解碼為一單一碼字以恢復該資料(RB2)及該額外資料(RB1、RB3及RB4)。
在一第二實施例中,額外資料係根據預期接收具有另一資料識別符之對讀取存取之一後續請求之一預讀取操作而擷取之後續資料。可根據一預讀取程序經推測地或預測地擷取該額外資料,諸如當根據對讀取存取之一可預測請求序列自記憶體讀取一檔案時。在一預讀取操作之一實施方案中,如圖3中所述,資料識別符及另一資料識別符係連續實體位址。可藉由遞增含有一當前位址之至少一部分之一計數器值計算連續實體位址以產生下一個連續位址。
在一預讀取操作之另一實施方案中,如圖4中所述,資料識別符及另一資料識別符係連續邏輯區塊位址。可藉由遞增含有一當前LBA之一計數器值計算連續LBA以產生下一個連續LBA。該下一個連續LBA可作為一索引提供給一邏輯轉實體轉譯表格以在一表格查找操作中定位一對應的實體位址。對應於連序LBA之實體位址可連序或不連序。
在一預讀取操作之另一實施方案中,如圖5中所述,資料識別符及另一資料識別符識別一檔案且對應於該檔案之連續部分。例如,該檔案系統514之檔案項516可經存取以定位檔案之連續部分之實體位址。
可藉由發出擷取資料及額外資料之一或多個命令至記憶體以擷取該資料及該額外資料,諸如藉由發出圖1之第一指令136及第二指令134。在710處,於緩衝器中快取該資料及該額外資料。在712處,用資料識別符及對應於該額外資料之另一資料識別符二者更新快取資料之指示符。例如,可添加一新的項至指示符(例如,圖2之指示符110)之 列表並將對應於於緩衝器處快取之資料之資訊填入。為圖解,該新的項之識別符欄位210、長度欄位212及位置欄位214可填入識別並定位快取資料之值。此外,可添加另一新的項至該列表並將對應於於緩衝器處快取之額外資料之資訊填入。為圖解,該另一新的項之識別符欄位210、長度欄位212及位置欄位214可填入識別並定位快取額外資料之值。
在714處,將對應於資料識別符之資料自緩衝器提供給主機裝置。回應於對額外資料之讀取存取之一後續請求,將額外資料快取至緩衝器使資料儲存裝置能夠略過自非揮發性記憶體擷取額外資料。
該方法亦可包含在寫入資料至記憶體時撤銷指示符之至少一部分。寫入資料至記憶體可導致於緩衝器中快取之資料不再匹配儲存於記憶體中之資料。因此,可阻止進一步存取全部快取資料。例如,回應於接收包含資料識別符之對寫入存取之請求,可修改該列表以阻止自緩衝器讀取回應於讀取請求而已寫入緩衝器之全部資料。
替代地,可僅阻止在緩衝器處進一步存取受一記憶體寫入操作影響之快取資料。例如,回應於接收包含資料識別符之對寫入存取之一請求,可修改該列表以阻止自緩衝器讀取對應於緩衝器處之資料識別符之資料。修改該列表可包含定位對應於資料識別符之一項及執行以下至少一者:修改所定位項中之一起始位址、修改該所定位項中之長度資訊及修改該所定位項中之一緩衝器位址。
雖然本文描繪之各種組件係圖解為區塊組件且以一般術語描述,但是此等組件可包含一或多個微處理器、狀態機或經組態以使一資料儲存裝置(諸如圖1之資料儲存裝置102)能夠執行歸因於此等組件之特定功能之其他電路或其等之任何組合。例如,圖1之控制器106可表示實體組件,諸如控制器、狀態機、邏輯電路或使該資料儲存裝置102能夠自一記憶體擷取於一緩衝器中快取之請求資料及額外未請求資料之其他結構。
可使用經程式化以回應於接收對記憶體104之讀取存取之一請求而存取指示符110且發出對儲存於緩衝器108中之請求資料及對儲存於緩衝器108中之未請求額外資料之讀取命令之一微處理器或微控制器來實施控制器106。在一特定實施例中,藉由控制器106之一處理器執行儲存於記憶體104處之可執行指令來實施載入緩衝器108及更新指示符110。替代地或此外,藉由一處理器執行之可執行指令可儲存在並非記憶體104之部分之一單獨記憶體位置處,諸如一唯讀記憶體(ROM)處。
在一特定實施例中,資料儲存裝置102可為經組態以選擇性地耦合至一或多個外部裝置之一可攜式裝置。然而,在其他實施例中,資料儲存裝置102可附接或嵌入一或多個主機裝置內,諸如一可攜式通信裝置之一外殼內。例如,資料儲存裝置102可在一封裝設備(諸如一無線電話、一個人數位助理(PDA)、遊戲機裝置或主控台、一可攜式導航裝置或使用內部非揮發性記憶體之其他裝置)內。在 一特定實施例中,資料儲存裝置102包含一非揮發性記憶體,諸如一快閃記憶體(例如,NAND、NOR、多位階記憶體胞群組(MLC)、位元線分離NOR(DINOR)、AND、高電容耦合率(HiCR)、不對稱非接觸式電晶體(ACT)或其他快閃記憶體)、一可擦除可程式化唯讀記憶體(EPROM)、一電可擦除且可程式化唯讀記憶體(EEPROM)、一唯讀記憶體(ROM)、一次性可程式化記憶體(OTP)或任何其他類型的非揮發性記憶體。
對本文描述之實施例之圖解旨在提供對各種實施例之一大致理解。可使用其他實施例且可自本發明衍生出其他實施例,使得在不脫離本發明之範疇之情況下可作出結構及邏輯替代及改變。本發明旨在涵蓋各種實施例之任何及全部後續調適或變動。因此,本發明及該等圖式應被視為闡釋性而非限制性。
上文揭示之標的應被視為闡釋性且非限制性,且隨附申請專利範圍旨在涵蓋屬於本發明之範疇內之全部此等修改、增強及其他實施例。因此,在法律容許之最大程度內,應藉由下列申請專利範圍及其等等效物之最廣泛可允許解釋判定本發明之範疇,且該範疇不應受前述實施方式約束或限制。
100‧‧‧系統
102‧‧‧資料儲存裝置
104‧‧‧記憶體
106‧‧‧控制器
108‧‧‧緩衝器
110‧‧‧指示符
120‧‧‧資料
122‧‧‧第一資料
124‧‧‧第二資料
126‧‧‧資料
130‧‧‧主機裝置
132‧‧‧請求
134‧‧‧第二指令
136‧‧‧第一指令
138‧‧‧第一資料識別符
144‧‧‧所擷取第一資料
146‧‧‧所擷取第二資料
154‧‧‧緩衝第一資料
156‧‧‧緩衝第二資料
164‧‧‧發送第一資料
200‧‧‧系統
202‧‧‧第一項
204‧‧‧第二項
206‧‧‧第三項
210‧‧‧識別符欄位
212‧‧‧長度欄位
214‧‧‧位置欄位
216‧‧‧識別符值
218‧‧‧長度值
220‧‧‧位置值
230‧‧‧第一資料
232‧‧‧第二資料
234‧‧‧第三資料
302‧‧‧第一字線
304‧‧‧第二字線
306‧‧‧第一錯誤校正碼頁
308‧‧‧第二錯誤校正碼頁
310‧‧‧第三錯誤校正碼頁
312‧‧‧第四錯誤校正碼頁
414‧‧‧邏輯轉實體轉譯表格
514‧‧‧檔案系統
516‧‧‧第一檔案項
518‧‧‧檔案部分
520‧‧‧檔案部分
522‧‧‧檔案部分
540‧‧‧錯誤校正碼碼字
542‧‧‧資料部分
544‧‧‧冗餘部分
602‧‧‧主機
604‧‧‧控制器
605‧‧‧邏輯轉實體轉譯表格
606‧‧‧緩衝器
608‧‧‧記憶體
610‧‧‧管線循環1
612‧‧‧管線循環2
614‧‧‧管線循環3
LBA-1‧‧‧識別符值
LBA-2‧‧‧識別符值
LBA-3‧‧‧識別符值
圖1係用以於一資料儲存裝置之一緩衝器處快取之請求讀取資料及額外未請求資料之一系統之一特定實施例之一方塊圖; 圖2係圖解圖1之系統之組件之一總圖;圖3係根據可藉由圖1之資料儲存裝置實施之一實體定址方案之資料擷取之一示意圖解;圖4係根據可藉由圖1之資料儲存裝置實施之一邏輯區塊定址方案之資料擷取之一示意圖解;圖5係根據可藉由圖1之資料儲存裝置實施之一檔案系統之資料擷取之一示意圖解;圖6係圖解可藉由圖1之資料儲存裝置實施之管線資料擷取及緩衝之一特定實施例之一梯形圖;及圖7係圖解可藉由圖1之資料儲存裝置實施之資料擷取及緩衝之一特定實施例之一流程圖。
100‧‧‧系統
102‧‧‧資料儲存裝置
104‧‧‧記憶體
106‧‧‧控制器
108‧‧‧緩衝器
110‧‧‧指示符
120‧‧‧資料
122‧‧‧第一資料
124‧‧‧第二資料
126‧‧‧資料
130‧‧‧主機裝置
132‧‧‧請求
134‧‧‧第二指令
136‧‧‧第一指令
138‧‧‧第一資料識別符
144‧‧‧所擷取第一資料
146‧‧‧所擷取第二資料
154‧‧‧緩衝第一資料
156‧‧‧緩衝第二資料
164‧‧‧發送第一資料

Claims (25)

  1. 一種方法,其包括:在具有一控制器、一非揮發性記憶體及一緩衝器之一資料儲存裝置中,執行:接收對讀取存取之一請求,該請求包含一資料識別符,其中自一主機裝置接收對讀取存取之該請求,同時該資料儲存裝置經操作地耦合至該主機裝置;讀取快取資料之一指示符以判定該讀取存取請求中之該資料識別符是否對應於於該緩衝器中快取之資料;回應於基於該資料識別符及快取資料之該指示符判定無對應於該緩衝器中快取該資料識別符之資料:自該非揮發性記憶體擷取對應於該讀取存取請求中之該資料識別符之資料以及額外資料;於該緩衝器中快取該資料及該額外資料;及用該資料識別符及對應於該額外資料之另一資料識別符兩者更新快取資料之該指示符;及自該緩衝器提供對應於該資料識別符之該資料給該主機裝置,其中將該額外資料快取至該緩衝器使該資料儲存裝置能夠回應於對該額外資料之讀取存取之一後續請求而略過自該非揮發性記憶體擷取該額外資料。
  2. 如請求項1之方法,其中該額外資料係根據預期接收具有該另一資料識別符之對讀取存取之該後續請求之一預 讀取操作而擷取之後續資料。
  3. 如請求項1之方法,其中將該額外資料儲存在與該資料相同之該非揮發性記憶體之一資料讀取單元中。
  4. 如請求項1之方法,其中該資料識別符及該另一資料識別符係連續邏輯區塊位址。
  5. 如請求項1之方法,其中該資料識別符及該另一資料識別符係連續實體位址。
  6. 如請求項1之方法,其中該資料識別符及該另一資料識別符識別一檔案並對應於該檔案之連續部分。
  7. 如請求項1之方法,其中自該非揮發性記憶體擷取該資料及該額外資料作為讀取自該非揮發性記憶體之一單一碼字之部分。
  8. 如請求項1之方法,其中快取資料之該指示符包含一或多個項之一列表,每一項包含儲存於該緩衝器中之對應資料之一識別符。
  9. 如請求項8之方法,其中該資料識別符包含一第一位址,其中該列表之每一特定項中之識別符指示該緩衝器中之該對應資料之一起始位址及長度資訊,且其中讀取該指示符以判定該讀取存取請求中之該資料識別符是否對應於於該緩衝器中快取之資料包含:自該列表之一第一項讀取該起始位址及該長度資訊以判定該第一項之該對應資料是否包含對應於該資料識別符之該資料;及回應於判定該第一項之該對應資料未包含對應於該資 料識別符之該資料,自該列表之一第二項讀取該起始位址及該長度資訊。
  10. 如請求項8之方法,其進一步包括回應於接收包含該資料識別符之對寫入存取之一請求,修改該列表以阻止自該緩衝器讀取對應於該緩衝器處之該資料識別符之該資料。
  11. 如請求項10之方法,其進一步包括回應於接收包含該資料識別符之對寫入存取之該請求,修改該列表以阻止自該緩衝器讀取已回應於讀取請求而寫入至該緩衝器之全部資料。
  12. 如請求項10之方法,其中修改該列表包含定位出對應於該資料識別符之一項及執行以下至少一者:修改所定位項中之一起始位址;修改該所定位項中之長度資訊;及修改該所定位項中之一緩衝器位址。
  13. 如請求項1之方法,其中該非揮發性記憶體包含一快閃記憶體,且其中該緩衝器係該控制器可存取之一隨機存取記憶體(RAM)。
  14. 一種資料儲存裝置,其包括:一控制器;一非揮發性記憶體;及該控制器可存取之一緩衝器,其中該緩衝器經組態以儲存擷取自該非揮發性記憶體之資料,回應於自一主機裝置接收對該非揮發性記憶體之讀取存取之一或多個請求而使該主機裝置可存取該資料,同時該資料儲存裝置 經操作地耦合至該主機裝置,其中該控制器經組態以回應於接收對該非揮發性記憶體之讀取存取之一請求而讀取快取資料之一指示符,該請求包含一資料識別符,且回應於快取資料之該指示符未指示對應於該資料識別符之資料係在該緩衝器中,自該非揮發性記憶體擷取對應於該資料識別符之該資料以及額外資料且將對應於該資料識別符之該資料及該額外資料寫入至該緩衝器;及其中該控制器經組態以回應於來自該非揮發性記憶體之對應於該資料識別符之該資料及該額外資料經寫入至該緩衝器而更新快取資料之該指示符以指示該資料識別符及對應於該額外資料之另一資料識別符。
  15. 如請求項14之資料儲存裝置,其中該控制器經組態以依一管線方式自該非揮發性記憶體讀取對應於該資料識別符之該資料及該額外資料,其中在一第一時間週期期間,對應於該資料識別符之該資料係擷取自該非揮發性記憶體且被寫入至該緩衝器,且其中在一後續時間週期期間,自該緩衝器提供對應於該資料識別符之該資料提供給該主機裝置,同時該額外資料係擷取自該非揮發性記憶體且被寫入至該緩衝器。
  16. 如請求項15之資料儲存裝置,其中該資料識別符及對應於該額外資料之該另一資料識別符係連續邏輯區塊位址(LBA),且其中該控制器經組態以依該管線方式根據一LBA序列將來自該非揮發性記憶體之所擷取資料載入至 該緩衝器,直到自該主機裝置接收到停止讀取之一命令。
  17. 如請求項14之資料儲存裝置,其中該控制器經組態以自該非揮發性記憶體讀取對應於該資料識別符之該資料及該額外資料作為儲存於該非揮發性記憶體處之一單一碼字之部分,該單一碼字包含一資料部分及一同位檢查部分,且其中該控制器經組態以回應於接收對讀取存取之該請求而自該單一碼字之該資料部分將對應於該資料識別符之該資料及該額外資料寫入至該緩衝器。
  18. 如請求項14之資料儲存裝置,其中該資料識別符及該另一資料識別符係連續邏輯區塊位址。
  19. 如請求項14之資料儲存裝置,其中該資料識別符及該另一資料識別符係連續實體位址。
  20. 如請求項14之資料儲存裝置,其中該資料識別符及該另一資料識別符識別一檔案並對應於該檔案之連續部分。
  21. 如請求項14之資料儲存裝置,其中快取資料之該指示符包含一或多個項之一列表,每一項包含該緩衝器中之對應資料之一識別符。
  22. 如請求項21之資料儲存裝置,其中該列表之每一特定項包含該緩衝器中對應於該特定項之資料之一起始位址及長度資訊,且其中該控制器經組態以讀取該指示符以藉由以下各者判定對應於該資料識別符之該資料是否係在該緩衝器中:自該列表之一第一項讀取該起始位址及該長度資訊以 判定該第一項之該對應資料是否包含對應於該資料識別符之該資料;及回應於判定該第一項之該對應資料未包含對應於該資料識別符之該資料,自該列表之一第二項讀取該起始位址及該長度資訊。
  23. 如請求項21之資料儲存裝置,其中該控制器經組態以回應於接收對該非揮發性記憶體之寫入存取之一請求而修改該列表以阻止自該緩衝器讀取該緩衝器處之資料。
  24. 如請求項23之資料儲存裝置,其中該控制器經組態以定位出對應於該資料識別符所相對應之該資料之一項,且執行以下至少一者:修改該所定位項中之一起始位址;修改該所定位項中之長度資訊;及修改該所定位項中之一緩衝器位址。
  25. 如請求項14之資料儲存裝置,其中該非揮發性記憶體包含一快閃記憶體,且其中該緩衝器係該控制器可存取之一隨機存取記憶體(RAM)。
TW101118596A 2011-06-07 2012-05-24 緩衝資料的系統及方法 TW201314452A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/154,751 US10031850B2 (en) 2011-06-07 2011-06-07 System and method to buffer data

Publications (1)

Publication Number Publication Date
TW201314452A true TW201314452A (zh) 2013-04-01

Family

ID=46177508

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101118596A TW201314452A (zh) 2011-06-07 2012-05-24 緩衝資料的系統及方法

Country Status (4)

Country Link
US (1) US10031850B2 (zh)
EP (1) EP2718824A1 (zh)
TW (1) TW201314452A (zh)
WO (1) WO2012170141A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893275A (zh) * 2014-11-06 2016-08-24 慧荣科技股份有限公司 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101876574B1 (ko) * 2012-02-02 2018-07-09 에스케이하이닉스 주식회사 데이터 입출력 컨트롤러 및 이를 포함하는 시스템
US10455017B2 (en) * 2012-02-28 2019-10-22 Panasonic Intellectual Property Management Co., Ltd. Communication system, electric appliance, and portable terminal device
US20150074451A1 (en) * 2013-09-11 2015-03-12 Kabushiki Kaisha Toshiba Memory system
US9582204B2 (en) 2014-01-07 2017-02-28 Apple Inc. Speculative prefetching of data stored in flash memory
US9547553B1 (en) 2014-03-10 2017-01-17 Parallel Machines Ltd. Data resiliency in a shared memory pool
US9781027B1 (en) 2014-04-06 2017-10-03 Parallel Machines Ltd. Systems and methods to communicate with external destinations via a memory network
US9594696B1 (en) 2014-12-09 2017-03-14 Parallel Machines Ltd. Systems and methods for automatic generation of parallel data processing code
US9477412B1 (en) 2014-12-09 2016-10-25 Parallel Machines Ltd. Systems and methods for automatically aggregating write requests
US9690713B1 (en) 2014-04-22 2017-06-27 Parallel Machines Ltd. Systems and methods for effectively interacting with a flash memory
US9740621B2 (en) * 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US10503661B2 (en) 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
WO2015178926A1 (en) * 2014-05-23 2015-11-26 Hewlett-Packard Development Company, L.P. Read ahead buffer processing
US10824335B2 (en) * 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
US9495285B2 (en) 2014-09-16 2016-11-15 Integrated Device Technology, Inc. Initiating operation of a timing device using a read only memory (ROM) or a one time programmable non volatile memory (OTP NVM)
US9639473B1 (en) 2014-12-09 2017-05-02 Parallel Machines Ltd. Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location
US9781225B1 (en) 2014-12-09 2017-10-03 Parallel Machines Ltd. Systems and methods for cache streams
US9632936B1 (en) 2014-12-09 2017-04-25 Parallel Machines Ltd. Two-tier distributed memory
US9753873B1 (en) 2014-12-09 2017-09-05 Parallel Machines Ltd. Systems and methods for key-value transactions
US9553570B1 (en) 2014-12-10 2017-01-24 Integrated Device Technology, Inc. Crystal-less jitter attenuator
US20160210241A1 (en) * 2015-01-21 2016-07-21 HGST Netherlands B.V. Reducing a size of a logical to physical data address translation table
TWI557560B (zh) * 2015-02-12 2016-11-11 慧榮科技股份有限公司 資料儲存裝置以及資料讀取方法
US9369139B1 (en) 2015-02-14 2016-06-14 Integrated Device Technology, Inc. Fractional reference-injection PLL
US9336896B1 (en) 2015-03-23 2016-05-10 Integrated Device Technology, Inc. System and method for voltage regulation of one-time-programmable (OTP) memory programming voltage
CN106162756A (zh) * 2015-03-31 2016-11-23 北京三星通信技术研究有限公司 一种基于lte网络的业务数据缓存方法及设备
US9455045B1 (en) * 2015-04-20 2016-09-27 Integrated Device Technology, Inc. Controlling operation of a timing device using an OTP NVM to store timing device configurations in a RAM
US9362928B1 (en) 2015-07-08 2016-06-07 Integrated Device Technology, Inc. Low-spurious fractional N-frequency divider and method of use
US9954516B1 (en) 2015-08-19 2018-04-24 Integrated Device Technology, Inc. Timing device having multi-purpose pin with proactive function
US9590637B1 (en) 2015-08-28 2017-03-07 Integrated Device Technology, Inc. High-speed programmable frequency divider with 50% output duty cycle
US9847869B1 (en) 2015-10-23 2017-12-19 Integrated Device Technology, Inc. Frequency synthesizer with microcode control
US10049007B2 (en) 2015-10-28 2018-08-14 Via Technologies, Inc. Non-volatile memory device and read method thereof
US9614508B1 (en) 2015-12-03 2017-04-04 Integrated Device Technology, Inc. System and method for deskewing output clock signals
US10102145B1 (en) * 2015-12-07 2018-10-16 Seagate Technology Llc Out of order LBA processing
US10075284B1 (en) 2016-01-21 2018-09-11 Integrated Device Technology, Inc. Pulse width modulation (PWM) to align clocks across multiple separated cards within a communication system
US9852039B1 (en) 2016-02-03 2017-12-26 Integrated Device Technology, Inc Phase locked loop (PLL) timing device evaluation system and method for evaluating PLL timing devices
US9859901B1 (en) 2016-03-08 2018-01-02 Integrated Device Technology, Inc. Buffer with programmable input/output phase relationship
US9692394B1 (en) 2016-03-25 2017-06-27 Integrated Device Technology, Inc. Programmable low power high-speed current steering logic (LPHCSL) driver and method of use
US9698787B1 (en) 2016-03-28 2017-07-04 Integrated Device Technology, Inc. Integrated low voltage differential signaling (LVDS) and high-speed current steering logic (HCSL) circuit and method of use
US9954541B1 (en) 2016-03-29 2018-04-24 Integrated Device Technology, Inc. Bulk acoustic wave resonator based fractional frequency synthesizer and method of use
US9581973B1 (en) 2016-03-29 2017-02-28 Integrated Device Technology, Inc. Dual mode clock using a common resonator and associated method of use
US9654121B1 (en) 2016-06-01 2017-05-16 Integrated Device Technology, Inc. Calibration method and apparatus for phase locked loop circuit
US20190065373A1 (en) * 2017-08-30 2019-02-28 Micron Technology, Inc. Cache buffer
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse
US10782916B2 (en) * 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US10521383B1 (en) 2018-12-17 2019-12-31 Micron Technology, Inc. Handling operation collisions in a non-volatile memory
TWI724427B (zh) * 2019-05-22 2021-04-11 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
CN112015327B (zh) * 2019-05-30 2022-10-21 群联电子股份有限公司 数据写入方法、存储器存储装置及存储器控制电路单元
US11216364B2 (en) 2020-02-18 2022-01-04 Micron Technology, Inc. Sequential read optimization in a memory sub-system that programs sequentially
US11106390B1 (en) * 2020-04-24 2021-08-31 Seagate Technology Llc Combining in-process reads to reduce die collisions
US20220269437A1 (en) * 2021-02-19 2022-08-25 Western Digital Technologies, Inc. Data Storage Device and Method for Predetermined Transformations for Faster Retrieval

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080209114A1 (en) * 1999-08-04 2008-08-28 Super Talent Electronics, Inc. Reliability High Endurance Non-Volatile Memory Device with Zone-Based Non-Volatile Memory File System
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US20040088490A1 (en) * 2002-11-06 2004-05-06 Subir Ghosh Super predictive fetching system and method
US7069479B2 (en) * 2002-11-07 2006-06-27 International Business Machines Corporation Method and apparatus for obtaining diagnostic data for a device attached to a computer system
US7287133B2 (en) * 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7337273B2 (en) 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
US7360015B2 (en) * 2004-05-04 2008-04-15 Intel Corporation Preventing storage of streaming accesses in a cache
US7814377B2 (en) 2004-07-09 2010-10-12 Sandisk Corporation Non-volatile memory system with self test capability
US7427027B2 (en) 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
KR100608604B1 (ko) * 2004-09-15 2006-08-03 삼성전자주식회사 객체 식별자를 이용하여 이동형 저장 장치에서 권리객체를 검색하는 방법 및 장치
KR101114943B1 (ko) * 2004-09-23 2012-03-06 주식회사 히타치엘지 데이터 스토리지 코리아 광 기록매체의 재생배속 제어방법 및 장치
US8966284B2 (en) 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US7245556B1 (en) 2005-12-28 2007-07-17 Sandisk Corporation Methods for writing non-volatile memories for increased endurance
JP2007241927A (ja) * 2006-03-13 2007-09-20 Toshiba Corp データ記憶装置及び方法
US7809994B2 (en) * 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US7424587B2 (en) 2006-05-23 2008-09-09 Dataram, Inc. Methods for managing data writes and reads to a hybrid solid-state disk drive
US20080086603A1 (en) * 2006-10-05 2008-04-10 Vesa Lahtinen Memory management method and system
US7917719B2 (en) 2006-12-04 2011-03-29 Sandisk Corporation Portable module interface with timeout prevention by dummy blocks
US20080320253A1 (en) 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
KR101300657B1 (ko) 2007-07-06 2013-08-27 삼성전자주식회사 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
US8024545B2 (en) * 2007-10-19 2011-09-20 Inha-Industry Partnership Institute Efficient prefetching and asynchronous writing for flash memory
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
JP4643667B2 (ja) * 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
US8245095B2 (en) * 2008-04-30 2012-08-14 Futurewei Technologies, Inc. Upgraded codeword lock state machine
US7830700B2 (en) 2008-11-12 2010-11-09 Seagate Technology Llc Resistive sense memory array with partial block update capability
US8806144B2 (en) * 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
US20100318734A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Application-transparent hybridized caching for high-performance storage
US8484542B2 (en) * 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893275A (zh) * 2014-11-06 2016-08-24 慧荣科技股份有限公司 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置
TWI567554B (zh) * 2014-11-06 2017-01-21 慧榮科技股份有限公司 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置
US9779022B2 (en) 2014-11-06 2017-10-03 Silicon Motion, Inc. Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same

Also Published As

Publication number Publication date
US10031850B2 (en) 2018-07-24
EP2718824A1 (en) 2014-04-16
WO2012170141A1 (en) 2012-12-13
US20120317365A1 (en) 2012-12-13

Similar Documents

Publication Publication Date Title
US10031850B2 (en) System and method to buffer data
TWI613675B (zh) 具有減小讀取延時之資料儲存裝置及其操作方法
US10318414B2 (en) Memory system and memory management method thereof
EP2605142B1 (en) Lba bitmap usage
US10628326B2 (en) Logical to physical mapping
EP2587362B1 (en) Systems and methods for obtaining and using nonvolatile memory health information
US9514057B2 (en) Storage module and method for managing logical-to-physical address mapping
US11126544B2 (en) Method and apparatus for efficient garbage collection based on access probability of data
US9240235B2 (en) Mitigating disturb effects for non-volatile memory
CN107797759B (zh) 访问缓存信息的方法、装置与驱动器
US20170270045A1 (en) Hybrid memory device and operating method thereof
US20110004720A1 (en) Method and apparatus for performing full range random writing on a non-volatile memory
WO2015054338A1 (en) System and method of storing data in a data storage device with a selection of two writing orders in order to improve the reading speed of a differential look ahead reading mode.
CN107797760B (zh) 一种访问缓存信息的方法、装置与固态驱动器
US20130246716A1 (en) Memory system and data writing method
US20200349065A1 (en) Data storage devices and data processing methods
JP2015507798A5 (zh)
US9552300B2 (en) Cache system using solid state drive
US10025706B2 (en) Control device, storage device, and storage control method
CN111625482B (zh) 顺序流检测方法与装置
US11307786B2 (en) Data storage devices and data processing methods
CN113254363A (zh) 具有部分逻辑到物理地址转换表的非易失性存储控制器