TW202324112A - 用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體 - Google Patents

用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體 Download PDF

Info

Publication number
TW202324112A
TW202324112A TW110145996A TW110145996A TW202324112A TW 202324112 A TW202324112 A TW 202324112A TW 110145996 A TW110145996 A TW 110145996A TW 110145996 A TW110145996 A TW 110145996A TW 202324112 A TW202324112 A TW 202324112A
Authority
TW
Taiwan
Prior art keywords
read
storage device
count
block
host
Prior art date
Application number
TW110145996A
Other languages
English (en)
Inventor
賴敬中
李連春
陳春樹
Original Assignee
韓商愛思開海力士有限公司
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 韓商愛思開海力士有限公司 filed Critical 韓商愛思開海力士有限公司
Priority to TW110145996A priority Critical patent/TW202324112A/zh
Priority to US17/683,898 priority patent/US11789659B2/en
Publication of TW202324112A publication Critical patent/TW202324112A/zh

Links

Images

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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)

Abstract

一種用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體。該方法包括:由儲存裝置的控制器控制儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率符合第一數值,並累計儲存裝置中的總讀取請求計數;當關於比率的更新條件滿足時,由控制器依據總讀取請求計數以及儲存裝置中的待刷新的區塊的資訊來確定關於主機讀取運作及讀取刷新運作的數量的比率的第二數值;以及由控制器控制主機讀取運作及讀取刷新運作的數量,使主機讀取運作及讀取刷新運作的數量的比率符合第二數值。

Description

用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體
本發明係關於一種電子裝置,更特別的是關於一種用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體。
由於非揮發性儲存裝置儲存之資料在斷電後也不會消失,且具有省電與體積小的特性,故此非揮發性儲存裝置如基於快閃記憶體的儲存裝置大量地應用於電子裝置上。此外,非揮發性儲存裝置如固態儲存裝置(solid-state drive / solid-state device / solid-state storage device,SSD)亦已逐漸成為桌上型電腦、筆記型電腦、伺服器之類的電腦系統中所配備的儲存裝置。
電子裝置(或稱主機)在執行應用程式以儲存文字、數據、照片、播放音訊或視訊等各種的資料時,往往在短時間內需要向儲存裝置(如SSD)提出大量資料寫入動作或資料讀取的請求。為了提高如SSD的儲存裝置的容量和性能,SSD中的記憶體晶片的數量和通道數量也逐漸增加。SSD控制器利用這些記憶體晶片,透過多通道和記憶體晶片交錯(interleaving)的頁讀取或寫入運作,實現高性能的輸入輸出運作。
然而,在實際的應用情景中,固態儲存裝置有其物理性質上的限制條件,SSD控制器在設計時就必須考量這些限制條件並在處理資料的頁讀取或寫入運作時作出對應的處理。如此一來,頁讀取運作的效率可能受到影響。舉例而言,在NAND快閃記憶體技術中,當資料自快閃記憶體裝置讀取出來時,有一種稱為「讀取干擾」(Read Disturbance)的現象會影響記憶體單元(cell)。舉例而言,當記憶體的一個區塊中的一條字元線的記憶體單元被多次讀取時,該區塊內鄰近的字元線的記憶體單元會由於電子遷移而造成影響,使得這些鄰近的記憶體單元中所儲存的資料逐漸產生改變,或可稱受到干擾。如此,在一段時間後該區塊被多次的讀取,其儲存的資料正確性、可靠性會變差,導致讀取資料時可能會出現很多錯誤位元,且連錯誤校正碼(Error-correction code,ECC)也無法恢復錯誤位元的狀況。這就是所謂的讀取干擾問題。為了防禦讀取干擾,SSD控制器被配置來執行稱為讀取刷新(Read Refresh)或讀取回收(Read Reclaim)的運作,從而將具有讀取計數(read count)較高的區塊的資料移動至一個自由區塊(free block)。
例如,對於提供多使用者的線上串流媒體服務的伺服器的應用情景中,伺服器使用的SSD設備很可能會處於資料讀取頻繁但很少資料寫入的情形。對於儲存熱點資料的區塊(例如線上串流媒體服務的伺服器中的熱門視頻),讀取次數會很快達到讀取刷新閾值,SSD設備的控制器會將這些區塊放入讀取刷新佇列。SSD設備的控制器在處理來自主機的頻繁讀取請求時,需要分配一些時間來處理讀取刷新佇列中這些區塊的讀取刷新運作。這時,SSD設備的讀取性能可能會急劇下降。
實施方式提供了一種用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體。依此,可實現儲存裝置中的主機讀取運作及讀取刷新運作的動態管理方式,透過動態地控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率,以因應多個讀取請求。
實施方式提供一種用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法,該方法包括以下步驟:(a)由該儲存裝置的一控制器控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率符合一第一數值,並累計該儲存裝置中的總讀取請求計數;(b)當關於該比率的更新條件滿足時,由該控制器依據該總讀取請求計數以及該儲存裝置中的待刷新的區塊的資訊來確定關於主機讀取運作及讀取刷新運作的數量的比率的一第二數值以因應該總讀取請求計數的讀取請求;以及(c)由該控制器控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量,使該主機讀取運作及該讀取刷新運作的數量的比率符合該第二數值。
於一些實施例中,在該步驟(b)中,該儲存裝置中的待刷新的區塊包含多個待刷新的區塊,該待刷新的區塊的資訊包括各待刷新的區塊對應的一讀取干擾閾值和一讀取計數之間的差值、增加的讀取計數及有效頁計數。
於一些實施例中,該控制器針對該等待刷新的區塊中的各個待刷新的區塊,依據該總讀取請求計數以及在累計而得到該總讀取請求計數的期間該待刷新的區塊對應的該讀取干擾閾值和該讀取計數之間的差值、該增加的讀取計數及該有效頁計數來計算該待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率,並依據該等待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率來確定該第二數值。
於一些實施例中,該關於該比率的更新條件包含一計時數值是否已到期。
於一些實施例中,該關於該比率的更新條件包含該總讀取請求計數是否已大於或等於一讀取請求閾值。
於一些實施例中,該關於該比率的更新條件包含該儲存裝置中的待刷新的區塊的資訊是否有改變。
於一些實施例中,於該步驟(c)中,由該控制器重置該總讀取請求計數,並重新累計該儲存裝置中的總讀取請求計數,該方法更包括:重覆該步驟(b)來更新該第二數值,以及依據更新的該第二數值來重覆該步驟(c)。
實施方式又提供一種記錄媒體,其記錄用以讓一儲存裝置執行如上述多個實施例中任一個實施例所述之用以動態管理該儲存裝置中的主機讀取運作及讀取刷新運作的方法的程式碼。
實施方式另外提供一種儲存裝置,其包括:多個記憶體晶片;和一控制器。該控制器耦接至該等記憶體晶片,且該控制器被配置為執行多個運作,該等運作包括:(a)控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率符合一第一數值,並累計該儲存裝置中的總讀取請求計數;(b)當關於該比率的更新條件滿足時,依據該總讀取請求計數以及該儲存裝置中的待刷新的區塊的資訊來確定關於主機讀取運作及讀取刷新運作的數量的比率的一第二數值以因應該總讀取請求計數的讀取請求;以及(c)控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量,使該主機讀取運作及該讀取刷新運作的數量的比率符合該第二數值。
於一些實施例中,在該運作(b)中,該儲存裝置中的待刷新的區塊包含多個待刷新的區塊,該待刷新的區塊的資訊包括各待刷新的區塊對應的一讀取干擾閾值和一讀取計數之間的差值、增加的讀取計數及有效頁計數。
於一些實施例中,該控制器針對該等待刷新的區塊中的各個待刷新的區塊,依據該總讀取請求計數以及在累計而得到該總讀取請求計數的期間該待刷新的區塊對應的該讀取干擾閾值和該讀取計數之間的差值、該增加的讀取計數及該有效頁計數來計算該待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率,並依據該等待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率來確定該第二數值。
於一些實施例中,該關於該比率的更新條件包含一計時數值是否已到期。
於一些實施例中,該關於該比率的更新條件包含該總讀取請求計數是否已大於或等於一讀取請求閾值。
於一些實施例中,該關於該比率的更新條件包含該儲存裝置中的待刷新的區塊的資訊是否有改變。
於一些實施例中,於該運作(c)中,該控制器重置該總讀取請求計數,並重新累計該儲存裝置中的總讀取請求計數,該等運作更包括:重覆該運作(b)來更新該第二數值,以及依據更新的該第二數值來重覆該運作(c)。
藉此,上述實施方式提供了一種用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體。依此,可實現儲存裝置中的主機讀取運作及讀取刷新運作的動態管理方式,透過動態地控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率,以因應多個讀取請求。藉此,能夠促進儲存裝置處理主機讀取請求的效能提升,並同時能夠讓該儲存裝置在發生讀取干擾錯誤之前完成讀取刷新運作。
為充分瞭解本發明之目的、特徵及功效,茲藉由下述具體之實施例,並配合所附之圖式,對本發明做詳細說明,說明如後。
請參考圖1,其為用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法的一實施例之示意流程圖。請參考圖2,其繪示本發明之儲存裝置20的一實施例,圖2的儲存裝置20可用以實現圖1的方法或相關之實施例。以下關於圖2的示例為說明本發明實現時可適用的應用情景。例如,在圖2中,主機10如運算裝置譬如伺服器、手機、平板、個人電腦等,而儲存裝置20例如內建或外建的SSD設備或記憶單元等。主機10例如要讀取儲存裝置20中的資料如視訊或多媒體資料而發出許多主機讀取請求。
如圖1所示,該方法之一實施例包括以下步驟S10至S30。其中引用了圖2中的元件作示例作輔助說明,然而該方法的實現並不受示例的限制。
如步驟S10所示,儲存裝置(如圖2的20)的控制器(如圖2的100)控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率符合一第一數值,並累計該儲存裝置中的總讀取請求計數。該第一數值例如是一初始值。
如步驟S20所示,當關於該比率的更新條件滿足時,由該控制器依據該總讀取請求計數以及該儲存裝置中的待刷新的區塊的資訊來確定關於主機讀取運作及讀取刷新運作的數量的比率的一第二數值以因應該總讀取請求計數的讀取請求。
如步驟S30所示,由該控制器控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量,使該主機讀取運作及該讀取刷新運作的數量的比率符合該第二數值。
基於圖1的方法,可實現儲存裝置中的主機讀取運作及讀取刷新運作的動態管理的多種方式,透過動態地控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率,以因應在累計而得到該總讀取請求計數的期間的多個讀取請求。
依據圖1的方法的一些實施例中,於該步驟S30中,由該控制器重置該總讀取請求計數,並重新累計該儲存裝置中的總讀取請求計數,該方法更可包括:重覆該步驟S20來更新該第二數值,以及依據更新的該第二數值來重覆該步驟S30。如此,可以在該儲存裝置的運作過程中,動態地不斷的更新該第二數值,使該控制器能因應來自主機(如圖2的10)的主機讀取請求而對該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率作出相對應的調整。
藉此,基於圖1的方法的實施例能夠促進儲存裝置處理主機讀取請求的效能提升,並同時能夠讓該儲存裝置在發生讀取干擾錯誤之前完成讀取刷新運作。依據圖1的方法,可依據需要進一步配置或實現各種確定
基於圖1的方法,動態地更新該第二數值的時機係可以利用關於該比率的更新條件而作有彈性的配置。更新條件可以具有一個或多個判斷準則。
譬如,於一些實施例中,該關於該比率的更新條件包含一計時數值是否已到期。例如,於該控制器中實現一計數器,並於該計數器計數達至一時間閾值時,依據步驟S20,該控制器更新該第二數值。
於一些實施例中,該關於該比率的更新條件包含該總讀取請求計數是否已大於或等於一讀取請求閾值。例如,於該控制器中實現一暫存器以累計該儲存裝置中的總讀取請求計數,並於該總讀取請求計數達至該讀取請求閾值時,依據步驟S20,該控制器更新該第二數值。
於一些實施例中,該關於該比率的更新條件包含該儲存裝置中的待刷新的區塊的資訊是否有改變。
例如,於該控制器中實現一讀取刷新區塊佇列,該控制器記錄了儲存裝置的記憶體(如圖2的200)的每個區塊的讀取計數。舉例而言,當有記憶體中的區塊的讀取計數大於該區塊的讀取刷新閾值時,則該區塊可被設定為待讀取刷新的區塊放入讀取刷新區塊佇列,以等待該控制器調度執行讀取刷新運作。當該讀取刷新區塊佇列有改變時,如有新的區域放入該讀取刷新區塊佇列或在該讀取刷新區塊佇列中的區塊的資訊有改變時,這些情況中的一個或多個可以設定為待刷新的區塊的資訊有改變,由此,依據步驟S20,該控制器更新該第二數值。
於一些實施例中,在該步驟S20中,該儲存裝置中的待刷新的區塊包含多個待刷新的區塊,該待刷新的區塊的資訊包括各待刷新的區塊對應的一讀取干擾閾值和一讀取計數之間的差值、增加的讀取計數及有效頁計數。
於一些實施例中,在該步驟S20中,該控制器針對該等待刷新的區塊中的各個待刷新的區塊,依據該總讀取請求計數以及在累計而得到該總讀取請求計數的期間該待刷新的區塊對應的該讀取干擾閾值和該讀取計數之間的差值、該增加的讀取計數及該有效頁計數來計算該待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率,並依據該等待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率來確定該第二數值。
由此,依上述關於步驟S20的實施例,可以配置各種適當的計算比率的方式以因應來自主機(如圖2的10)的主機讀取請求而對該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率作出相對應的調整。對於比率的計算,將稍後舉詳細的實施例來舉例說明。
以下更進一步舉例說明依據上述圖1的方法的各種實現方式。
請參考圖2,其繪示本發明之儲存裝置的一實施例,圖2的儲存裝置可用以實現圖2的用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法或相關之實施例。以下關於圖2及圖3的示例為說明本發明實現時可適用的應用情景;誠然,本發明之實現並不受示例的限制。
如圖2所示,儲存裝置20包括控制器100及記憶體200。控制器100包括處理單元110、緩衝單元120、複數個記憶通道130_1~130_N(如N為大於1的整數)及對應的記憶通道控制單元140。緩衝單元120可以利用揮發性記憶體或非揮發性記憶體來實現。記憶體200包括複數個記憶體晶片D1_1~D1_M至DN_1~DN_M(如N、M為大於1的整數)。舉例而言,記憶體晶片為快閃記憶體,譬如NOR型記憶體或NAND型記憶體,然而本發明的實現並不受此例子限制。記憶體200提供了記憶的多個實體位置,可依據需要分割為多個區塊,各個區塊包含多個頁。儲存裝置20中以頁為資料讀取或資料寫入的資料單位。
控制器100可藉由主機介面單元150與主機10通訊以接收來自主機10的讀取請求或寫入請求。控制器100就主機讀取請求或主機寫入請求而產生對應的讀取命令或寫入命令,並將產生的對應的命令傳送至對應的記憶通道(如130_1~130_N)的記憶通道控制單元140。記憶通道控制單元140用以控制至少一記憶體晶片。例如,記憶通道控制單元140傳送資料讀取命令至某一記憶體晶片並將因此而讀取之資料傳送至控制器100中,譬如緩衝單元120中。控制器100將主機10所請求的資料傳送至主機10。又例如,記憶通道控制單元140依據資料寫入命令而將欲寫入之資料寫入至記憶體晶片中。當控制器100控制記憶體200的運作時,緩衝單元120可以儲存由控制器100和記憶體200來使用以用於諸如讀取運作、寫入運作、程式化運作和抹除運作的各種運作的資料。在圖2中,複數個記憶通道控制單元140以平行處理的方式運作讀取或寫入動作。此外,處理單元110可以透過匯流排160而與記憶通道(如130_1~130_N)電性耦接。然而,本發明之實現並不受上述例子限制。例如,前述各個記憶通道控制單元可以利用邏輯電路或可程式化電路來實現,或者以軟體方式來實現並且由處理單元110來執行。
主機介面單元150可以處理從主機10提供的命令和資料,以及可以透過諸如通用序列匯流排(USB)、多媒體卡(MMC)、周邊元件連接-快速(PCI-E)、串列連接SCSI(SAS)、串列高級技術連接(SATA)、並行高級技術連接(PATA)、小型電腦系統介面(SCSI)、增強小型磁片介面(ESDI)和集成驅動電路(IDE)、進階主機控制器介面(AHCI)、非揮發性記憶體主機控制器介面規範(Non-Volatile Memory express, NVMe)的各種介面協定中的至少一種來與主機10通信。
請同時參考圖2與圖3,其中圖3為控制器的一實施例之示意方區塊圖。圖2呈現控制器300以韌體或軟體方式來實現時的架構。譬如,控制器300包含主機介面層310、快閃記憶體轉換層320、快閃記憶體介面層330。主機介面層310用以與主機10通訊並作為主機10與控制器300之介面。快閃記憶體轉換層320用來進行對讀取、寫入、抹除運作的管理。快閃記憶體轉換層320更用以將邏輯位址(如邏輯區塊位址或邏輯頁位址)轉換為記憶體200之記憶體晶片(如D1_1~D1_M至DN_1~DN_M)所對應的實體位址(如實體區塊位址或實體頁位址)。快閃記憶體介面層330用於處理快閃記憶體轉換層320及記憶體200之通訊,譬如將命令自快閃記憶體轉換層320傳送至記憶體200。
圖3所示的控制器300可利用圖2的硬體架構來實現。快閃記憶體轉換層320在進行邏輯位址轉換為實體位址時需要參考及維護一位址映對表。由於位址映對表的資料量大,快閃記憶體轉換層320將位址映對表的部分區段儲存於快取中。當快取中沒有轉換所需的邏輯位址與實體位址的對應關係時,快閃記憶體轉換層320需要將快取中位址映對表的區段內容更新而產生映對表讀取命令。此外,在某些記憶體產品的應用場合中,例如是嵌入式多媒體卡(eMMC)或其他的記憶體產品,位址映對表係儲存於記憶體產品的記憶體中,且本發明並不受此例子限制。
控制器300控制針對記憶體200的各種運作,例如,寫入運作、讀取運作、程式化運作、抹除運作。例如,控制器可在主機10的寫入請求下產生寫入命令,並執行所產生的寫入命令。控制器可利用命令佇列以儲存主機寫入命令。控制器可依序處理儲存於命令佇列中的主機寫入命令以進行資料寫入動作。
此外,控制器300更可控制用於快閃記憶體轉換層320的韌體演算法。例如,控制器300可以實現包括垃圾收集(GC,garbage collection)、耗損平衡(WL,wear-leveling)、區塊收回(BC,block reclaim)及故障區塊(RBB,runtime bad block)之演算法。
在讀取干擾的防禦運作中,控制器300可配置為記錄了每個區塊的讀取計數。舉例而言,當有區塊的一個頁被讀取一次時,控制器300將讀取計數增加1。如果一個區塊的讀取計數大於該區塊的讀取刷新閾值,則該區塊可能被放入讀取刷新區塊佇列,以控制器300控制器調度執行讀取刷新運作。讀取刷新區塊佇列中的區塊資料應在讀取計數達到讀取干擾閾值之前移動至一個自由區塊,其中達到讀取干擾閾值是意味著ECC可能無法恢復錯誤元位的狀況。此外,每個區塊的讀取干擾閾值和讀取刷新閾值可能會因區塊擦除週期、讀取刷新區塊佇列中的區塊數等不同而有所不同。
以上圖2及圖3為說明本發明實現時可適用的應用情景,誠然,本發明之實現並不受上述示例限制。在實際的應用情景中,主機可能執行一個或多個應用程式或執行服務程式,這些程式可能同時或相近時間內提出大量讀取資料的請求;這些讀取資料的請求就會像隨機資料一樣,不規則地傳輸到儲存裝置(如SSD)中。
圖4為依據圖1的方法實現控制器的一種實施例之示意架構圖。依據圖1的方法,可以將控制器(如圖2的100或圖3的300)配置為具有如圖4中所示的架構。
在圖4中,讀取請求及讀取刷新管理模組500可依據圖1的方法來實現,用以控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量,使該主機讀取運作及該讀取刷新運作的數量的比率符合一數值,並負責更新比率的數值的計算。讀取請求及讀取刷新管理模組500可配置為向控制器(如圖2的100或圖3的300)的快閃記憶體轉換層320中所實現的一個或多個查找表(look-up tables)400(如包含前述的位址映對表)取得關於主機讀取請求的資訊或讀取刷新的區塊的資訊。讀取請求及讀取刷新管理模組500也可配置為向讀取刷新處理模組420取得讀取刷新的區塊的資訊。
此外,讀取累計模組510配置為用以累計該儲存裝置20中的總讀取請求計數。舉例而言,讀取請求及讀取刷新管理模組500可配置為對讀取累計模組510進行各種運作,如取得總讀取請求計數的運作、觸發讀取累計模組510進行累計讀取請求的運作或重置讀取累計模組510的總讀取請求計數的運作。由此,讀取請求及讀取刷新管理模組500及讀取累計模組510可被配置為依據圖1的步驟S10-S30而實現。例如,當讀取請求及讀取刷新管理模組500控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率符合一數值(如步驟S10或S30)時,可觸發讀取累計模組510以累計該儲存裝置中的總讀取請求計數。當比率的更新條件滿足時(如步驟S20),讀取請求及讀取刷新管理模組500可從讀取累計模組510取得總讀取請求計數,以便計算該比率的更新數值。當讀取請求及讀取刷新管理模組500更新了該比率的數值並據以進行控制(如步驟S30)時,可重置及重新觸發讀取累計模組510以重新累計總讀取請求計數。
此外,在一實施例中,儲存裝置的控制器亦配置計時模組520來計時,並於計時值達至一時間閾值時,觸發讀取請求及讀取刷新管理模組500進行更新比率。
此外,在圖4中,主機讀取處理模組410用以就主機讀取請求進行對應讀取運作。讀取刷新處理模組420用以就讀取刷新進行對應的處理以完成讀取刷新運作。主機讀取處理模組410及讀取刷新處理模組420皆可配置為查詢前述查找表400中的位址映對表來進行讀取邏輯位址(如邏輯區塊位址或邏輯頁位址)轉換的實體位址(如實體區塊位址或實體頁位址)的轉換。
此外,讀取刷新處理模組420可配置為於進行對應讀取運作後,向該控制器提出更新區塊讀取計數以更新前述查找表400。
讀取刷新處理模組420可配置為實現一讀取刷新區塊佇列(Read Refresh Block Queue,RRBQ)。讀取刷新處理模組420可配置為查詢前述查找表400來取得區塊讀取計數、讀取干擾閾值之類與讀取刷新相關的資訊並據以偵測各區塊關於讀取干擾的情況。此外,讀取刷新處理模組420偵測各區塊關於讀取干擾的情況,並依據此情況而進行關於讀取刷新的處理而移動區塊,並於該處理後更新相關區塊地址映對關係、區塊讀取計數、有效頁計算之類相關的資訊。讀取刷新處理模組420可配置為向該控制器提出更新相關區塊地址映對關係、區塊讀取計數、有效頁計算之類相關的資訊以更新前述查找表400。
依據步驟S10、S20,為了實現儲存裝置(如圖2的20)的控制器(如圖2的100)控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率符合一數值(如第一數值、第二數值或其更新的第二數值),可以有多種實現方式。
在一實施例中,主機讀取請求處理模組410可配置為每次要進行讀取運作前需要從該控制器取得授權才可能進行主機讀取運作,主機讀取請求處理模組410可以首先向該控制器取得請求,並經該控制器的回應允許授權以後才可進行主機讀取運作,其中該控制器依據步驟S10或S30的比率來決定是否給予授權。
在另一實施例中,主機讀取請求處理模組410可配置為需要從該控制器請求授權並取得進行讀取運作的次數的額度值(quota);如該控制器依據步驟S10或S30的比率,給予主機讀取請求處理模組410的額度值為一第一次數,當主機讀取請求處理模組410進行讀取運作的次數達到該額度值時,則需再次從該控制器請求授權並取得進行讀取運作的次數的新的額度值(quota)。上述的授權或額度值可以利用讀取請求及讀取刷新管理模組500來實現。
另一方面,在一實施例中,讀取刷新處理模組420讀取刷新處理模組420可配置為每次要進行讀取刷新運作前需要從該控制器取得授權才可能進行讀取刷新運作,讀取刷新處理模組420可以首先向該控制器取得請求,並經該控制器的回應允許授權以後才可進行讀取刷新運作,其中該控制器依據步驟S10或S30的比率來決定是否給予授權。
在另一實施例中,讀取刷新處理模組420可配置為需要從該控制器請求授權並取得進行讀取刷新運作的次數的額度值(quota);如該控制器依據步驟S10或S30的比率,給予讀取刷新處理模組420的額度值為一第二次數,當讀取刷新處理模組420進行讀取刷新運作的次數達到該額度值時,則需再次從該控制器請求授權並取得進行讀取刷新運作的次數的新的額度值(quota)。
上述的實施例中關於授權或額度值的給予,可以利用讀取請求及讀取刷新管理模組500來實現,或可以利用該控制器中配置一控制模組或其他模組來實現。
以下進一步提出關於步驟S20中,計算用以控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率的數值的實施例。
在主機10為伺服器的應用情景中,儲存裝置20很可能會處於資料讀取頻繁但很少資料寫入的情形。對於儲存熱點資料的區塊(例如線上串流媒體服務的伺服器中的熱門視頻),讀取次數會很快達到讀取刷新閾值,儲存裝置20的控制器100會將這些區塊放入讀取刷新佇列。儲存裝置20的控制器100在處理來自主機的頻繁讀取請求時,儲存裝置20需要分配一些時間來處理讀取刷新佇列中這些區塊的讀取刷新運作。這時,儲存裝置20的讀取性能可能會急劇下降。
圖5A為一區塊A的讀取請求及讀取刷新隨時間變化之示意圖。圖5B為另一區塊B的讀取請求及讀取刷新隨時間變化之示意圖。如圖5A及圖5B所示,相較於區塊B來說,區塊A的讀取計數的增加情形較為緩和,並且區塊A的讀取計數達至讀取刷新閾值後,離讀取干擾閾值有較長的時間間隔;而區塊B的讀取計數的變化較大,有時快速地增加,有時緩慢地增加,並且區塊B的讀取計數達至讀取刷新閾值後,離讀取干擾閾值有較短的時間間隔。由此可見,隨著時間的推移連續計算最佳化的(或自適應)比率並不容易。儲存裝置的控制器在一段時間間隔內,在處理主機讀取請求的同時,有許多待讀取刷新的區塊需要同時執行讀取刷新運作,又隨時會有新增的待讀取刷新的區塊產生。再者,每個待刷新的區塊的讀取計數增加率(即讀取行為)將隨著時間而改變,譬如圖5A及圖5B所示。而每個待刷新的區塊有不同的有效頁計數和讀取刷新閾值,這都會影響完成讀取刷新運作所需的時間。
為了解決讀取刷新運作期間可能發生的讀取性能急劇下降,以下實施例提出管理或調整處理主機讀取請求與內部區塊資料移動的比率的方式。該比率可設定為旨在保持盡可能穩定和高的讀取性能,並且可以在出現讀取干擾錯誤(即區塊讀取計數達到讀取干擾閾值)之前完成讀取刷新運作。
在一些實施例中,處理主機讀取請求與讀取刷新區塊頁移動(block page moves)的比例的數值是根據讀取刷新區塊佇列(Read Refresh Block Queue,RRBQ)中的區塊的資訊確定的,例如一個週期內增加的讀取計數(increased read count,IRC)、需要移動的有效頁計數(valid page count,VPC)、讀取干擾閾值(read disturb threshold,RDT)。依據以上資訊可以進一步計算出一個最佳的M:1比例作為基於圖1的方法的步驟S20、S30中的第二數值,依此比例的第二數值(或視為目標數值),例如控制器可以控制或允許每週期服務M個主機讀取請求和一個區塊頁移動,或者一個週期內服務N個主機讀取請求和N/M個區塊頁移動。舉例而言,依據基於圖1的方式的步驟S30中,該控制器控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量,使該主機讀取運作及該讀取刷新運作的數量的比率符合M:1。
在提出最佳比例的計算的實施例之前,首先提出以下關於讀取刷新區塊佇列的示例。當讀取刷新區塊佇列中有多個區塊時,儲存裝置的控制器(如圖2的100或圖3的300)或快閃記憶體轉換層(如圖3的320)的會依據順序對這些區塊進行讀取刷新運作,如圖6中的虛線箭號所示意。控制器或快閃記憶體轉換層將根據先進先出(FIFO)、區塊讀取計數、區塊有效頁計數等確定該順序。經過一段時間後,主機讀取請求(例如:有N個主機讀取請求),每個區塊增加的讀取計數(IRC)可能會有所不同,如圖7所示。
下面是計算主機讀取請求與讀取刷新區塊頁移動的最佳比率的流程示例。
1.從讀取刷新區塊佇列(RRBQ)中獲取如下區塊的資訊,區塊的資訊包含(1)各區塊的差值(Delta)、(2)增加的讀取計數(IRC)及(3)有效頁計數(VPC)。
(1)差值(Delta)為讀取刷新區塊佇列(RRBQ)中各區塊對應的讀取干擾閾值(RDT)和讀取計數(read count,RC)之間的差值,例如以下公式表示: Delta i= RDT i- RC i, 其中在讀取刷新區塊佇列(RRBQ)中區塊的個數為k,RDT i、RC i、Delta i分別代表區塊i的讀取干擾閾值、讀取計數以及兩者之間的差值,其中i為1至k中的整體。
(2)增加的讀取計數(IRC)為N個主機讀取請求期間各區塊對應的增加的讀取計數。此外,區塊i的讀取計數RC i可以為原有的讀取計數及增加的讀取計數(如記作IRC i)之和。
(3) 有效頁計數(VPC)為各區塊對應的有效頁計數。
2.假設每N個主機讀取請求令區塊i增加的讀取計數表示為IRC i。因此,在讀取干擾發生之前,對區塊i來說「可接受的主機讀取請求的數量」(number of acceptable host read requests)可以估計為: AcptHostRd i= (Delta i/IRC i)*N。 對區塊i來說,增加主機讀取請求的數目為AcptHostRd i時,將會令區塊i的讀取計數達到讀取干擾閾值(RDT)。
3. 對於圖7中讀取刷新區塊佇列(RRBQ)的各個區塊,進一步確定對於區塊i來說,從區塊1到區塊i的有效頁計數的累加,以MVPC i來代表,如以下公式表示: MVPC i= VPC 1+ ... + VPC i­。 MVPC i可表示對於讀取刷新區塊佇列(RRBQ)中的區塊1到區塊i來說完成讀取刷新運作所需移動的頁的數量。
4. 對於各個區塊,計算主機讀取請求與所需移動的頁的數量的比率,例如透過AcptHostRd i除以MVPC i得到區塊i的HostRdPerMv i比率,如下公式所示: HostRdPerMv i= AcptHostRd i/MVPC i。 因為假設在AcptHostRd i個主機讀取請求後,區塊i的讀取計數將達到讀取干擾閾值(RDT),並且MVPC i區塊頁移動後,區塊i將完成讀取刷新運作。因此,使用 HostRdPerMv i作為比率可以處理最多的主機讀取請求,並在發生讀取干擾錯誤之前完成區塊i的讀取刷新運作。
5. 使用HostRdPerMv i作為比例可以處理最多的主機讀取請求,並且可以防止區塊i出現讀取干擾錯誤,但對於其他區塊可能不行。故在一實施例中,選擇 HostRdPerMv 1~HostRdPerMv k中的最小值作為最佳比率 M 可以滿足所有區塊。例如,獲得主機讀取請求與區塊頁移動的最佳比率的公式可表示為:
Figure 02_image001
Figure 02_image003
如圖8所示,在一個示例中讀取刷新區塊佇列(RRBQ)中有3個區塊,各個區塊的讀取干擾閾值皆為1000,讀取計數分別為720、700、850。 一段時間後,又收到了300個主機讀取請求,它們的讀取計數分別改變為820、780和870(即增加的讀取計數為100、80和20)。如表1所示,根據以上資訊,計算出主機讀取請求與區塊頁移動的最佳比率M為11。因此,依據此最佳比率M=11,在下一個週期,每個週期處理11個主機讀取請求和一個區塊頁移動,或總共500個主機讀取請求和45個區塊頁移動。 表1
  區塊1 區塊2 區塊3
差值Delta i 180 220 130
增加的讀取計數IRC i 100 80 20
有效頁計數VPC i 10 60 25
可接受的主機讀取請求的數量AcptHostRd i (180/100)*300 =540 (220/80)*300 = 825 (130/20)*300 = 1950
完成讀取刷新運作所需要移動的頁的數量MVPC i 10 10+60 =70 10+60+25 =95
主機讀取請求與區塊頁移動的比率HostRdPerMv i 540/10 = 54 825/70 = 11 1950/20 = 20
M Min{54, 11, 20} = 11
在一些實施例中,提供一種儲存裝置包括:多個記憶體晶片(如圖2中記憶體200所示)和控制器(如圖2的控制器100或圖3的300)。控制器透過多個記憶通道耦接至該等記憶體晶片,控制器被配置為執行多個運作,該等運作包括對應至圖1的方式中步驟S10~S30的運作。在一些實施例中,該儲存裝置更可被配置或被程式化為實現如上基於圖1的方法的多個實施例中的至少一個或其組合。該儲存裝置可以實現為固態儲存裝置(SSD)、通用快閃記憶體(UFS)、嵌入式多媒體卡(eMMC)或其他任何合適的儲存裝置或基於儲存裝置的產品。
此外,在上述關於儲存裝置的實施例(如圖2、圖3)中,處理單元110、記憶通道控制單元140、主機介面單元150中至少一者或其組合,係可以利用一個或多個電路來實現,如微控制器、處理器、或數位訊號處理器。或是可以基於使用硬體描述語言(HDL)或本領域技術人員所熟悉的數位電路的任何其他設計方法的技術進行設計,並且可以基於使用現場可程式邏輯閘陣列(field programmable gate array, FPGA)、或特定積體電路(application specific integrated circuit,ASIC)或複雜可編程邏輯器件(CPLD)之類的電路中之一個或多個電路來實現,亦可使用專屬的電路或模組來實現。再者,記憶通道控制單元亦可利用軟體方式如以行程、執行緒、程式模組或其他軟體方式來實現。然而,本發明之實現並不受此等例子所限制。此外,前述圖1的步驟S10~S30來加以實現,如邏輯電路或其他合適的數位電路來實現。
此外,在一些實施例中,提出一種非暫態的記錄媒體,其記錄用以讓一運算裝置(如前述圖2或圖3所示的儲存裝置),藉由儲存裝置中的控制器來執行用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法之程式碼,其中方法包含依據圖3之方法的任一實施例或其組合。舉例而言,程式碼是一個或多個程式或程式模組,如用於實現依據圖1的步驟S10至S30,此等模組之程式碼係協同運作,且可以用任何適合的順序或平行而被執行。當運算裝置執行此程式碼時,能導致運算裝置執行基於圖1之用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法之一實施例。上述可讀取記錄媒體例如為靭體、ROM、RAM、記憶卡、光學式資訊儲存媒體、磁式資訊儲存媒體或其他任何種類的儲存媒體或記憶體,且本發明之實現方式並不受此例子限制。
藉此,上述實施方式提供了一種用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體。依此,可實現儲存裝置中的主機讀取運作及讀取刷新運作的動態管理方式,透過動態地控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率,以因應多個讀取請求。藉此,能夠促進儲存裝置處理主機讀取請求的效能提升,並同時能夠讓該儲存裝置在發生讀取干擾錯誤之前完成讀取刷新運作。
本發明在上文中已以較佳實施例揭露,然熟習本項技術者應理解的是,該實施例僅用於描繪本發明,而不應解讀為限制本發明之範圍。應注意的是,舉凡與該實施例等效之變化與置換,均應設為涵蓋於本發明之範疇內。因此,本發明之保護範圍當以申請專利範圍所界定者為準。
10:主機 20:儲存裝置 100、300:控制器 110:處理單元 120:緩衝單元 130_1~130_N:記憶通道 140:記憶通道控制單元 150:主機介面單元 160:匯流排 200:記憶體 D1_1~D1_M、DN_1~DN_M:記憶體晶片 310:主機介面層 320:快閃記憶體轉換層 330:快閃記憶體介面層 400:查找表 410:主機讀取處理模組 420:讀取刷新處理模組 500:讀取請求及讀取刷新管理模組 510:讀取累計模組 520:計時模組 S10~S30:步驟
圖1為用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法的一實施例之示意流程圖。 圖2為儲存裝置的一實施例之示意方區塊圖。 圖3為控制器的一實施例之示意方區塊圖。 圖4為依據圖1的方法實現控制器的一種實施例之示意架構圖。 圖5A為一區塊的讀取請求及讀取刷新隨時間變化之示意圖。 圖5B為另一區塊的讀取請求及讀取刷新隨時間變化之示意圖。 圖6為關於讀取刷新區塊佇列之一實施例之示意圖。 圖7為關於讀取刷新區塊佇列之另一實施例之示意圖。 圖8為步驟S20之控制比率之更新數值計算之一實施例之示意圖。
步驟:S10~S30

Claims (15)

  1. 一種用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法,該方法包括以下步驟: (a)由該儲存裝置的一控制器控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率符合一第一數值,並累計該儲存裝置中的總讀取請求計數; (b)當關於該比率的更新條件滿足時,由該控制器依據該總讀取請求計數以及該儲存裝置中的待刷新的區塊的資訊來確定關於主機讀取運作及讀取刷新運作的數量的比率的一第二數值以因應該總讀取請求計數的讀取請求;以及 (c)由該控制器控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量,使該主機讀取運作及該讀取刷新運作的數量的比率符合該第二數值。
  2. 如請求項1所述之方法,其中在該步驟(b)中,該儲存裝置中的待刷新的區塊包含多個待刷新的區塊,該待刷新的區塊的資訊包括各待刷新的區塊對應的一讀取干擾閾值和一讀取計數之間的差值、一增加的讀取計數及一有效頁計數。
  3. 如請求項2所述之方法,其中該控制器針對該等待刷新的區塊中的各個待刷新的區塊,依據該總讀取請求計數以及在累計而得到該總讀取請求計數的期間該待刷新的區塊對應的該讀取干擾閾值和該讀取計數之間的差值、該增加的讀取計數及該有效頁計數來計算該待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率,並依據該等待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率來確定該第二數值。
  4. 如請求項1所述之方法,其中該關於該比率的更新條件包含一計時數值是否已到期。
  5. 如請求項1所述之方法,其中該關於該比率的更新條件包含該總讀取請求計數是否已大於或等於一讀取請求閾值。
  6. 如請求項1所述之方法,其中該關於該比率的更新條件包含該儲存裝置中的待刷新的區塊的資訊是否有改變。
  7. 如請求項1所述之方法,其中於該步驟(c)中,由該控制器重置該總讀取請求計數,並重新累計該儲存裝置中的總讀取請求計數,該方法更包括: 重覆該步驟(b)來更新該第二數值,以及 依據更新的該第二數值來重覆該步驟(c)。
  8. 一種記錄媒體,其記錄用以讓一儲存裝置執行如請求項1至7中任一項所述之用以動態管理該儲存裝置中的主機讀取運作及讀取刷新運作的方法的程式碼。
  9. 一種儲存裝置,包括: 多個記憶體晶片;和 一控制器,該控制器耦接至該等記憶體晶片,其中該控制器被配置為執行多個運作,該等運作包括: (a)控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量的比率符合一第一數值,並累計該儲存裝置中的總讀取請求計數; (b)當關於該比率的更新條件滿足時,依據該總讀取請求計數以及該儲存裝置中的待刷新的區塊的資訊來確定關於主機讀取運作及讀取刷新運作的數量的比率的一第二數值以因應該總讀取請求計數的讀取請求;以及 (c)控制該儲存裝置中的主機讀取運作及讀取刷新運作的數量,使該主機讀取運作及該讀取刷新運作的數量的比率符合該第二數值。
  10. 如請求項9所述之儲存裝置,其中在該運作(b)中,該儲存裝置中的待刷新的區塊包含多個待刷新的區塊,該待刷新的區塊的資訊包括各待刷新的區塊對應的一讀取干擾閾值和一讀取計數之間的差值、一增加的讀取計數及一有效頁計數。
  11. 如請求項10所述之儲存裝置,其中該控制器針對該等待刷新的區塊中的各個待刷新的區塊,依據該總讀取請求計數以及在累計而得到該總讀取請求計數的期間該待刷新的區塊對應的該讀取干擾閾值和該讀取計數之間的差值、該增加的讀取計數及該有效頁計數來計算該待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率,並依據該等待刷新的區塊對應的主機讀取請求與所需移動的頁的數量的比率來確定該第二數值。
  12. 如請求項9所述之儲存裝置,其中該關於該比率的更新條件包含一計時數值是否已到期。
  13. 如請求項9所述之儲存裝置,其中該關於該比率的更新條件包含該總讀取請求計數是否已大於或等於一讀取請求閾值。
  14. 如請求項9所述之儲存裝置,其中該關於該比率的更新條件包含該儲存裝置中的待刷新的區塊的資訊是否有改變。
  15. 如請求項9所述之儲存裝置,其中於該運作(c)中,該控制器重置該總讀取請求計數,並重新累計該儲存裝置中的總讀取請求計數,該等運作更包括: 重覆該運作(b)來更新該第二數值,以及 依據更新的該第二數值來重覆該運作(c)。
TW110145996A 2021-12-09 2021-12-09 用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體 TW202324112A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110145996A TW202324112A (zh) 2021-12-09 2021-12-09 用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體
US17/683,898 US11789659B2 (en) 2021-12-09 2022-03-01 Method for dynamically managing host read operation and read refresh operation in a storage device, storage device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110145996A TW202324112A (zh) 2021-12-09 2021-12-09 用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體

Publications (1)

Publication Number Publication Date
TW202324112A true TW202324112A (zh) 2023-06-16

Family

ID=86695608

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110145996A TW202324112A (zh) 2021-12-09 2021-12-09 用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體

Country Status (2)

Country Link
US (1) US11789659B2 (zh)
TW (1) TW202324112A (zh)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4256198B2 (ja) 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
EP2077559B1 (en) 2007-12-27 2012-11-07 Hagiwara Solutions Co., Ltd. Refresh method of a flash memory
JP5422984B2 (ja) * 2008-12-08 2014-02-19 富士通株式会社 不揮発性メモリ、メモリ制御装置、メモリ制御システムおよび不揮発性メモリの制御方法
KR20120001405A (ko) 2010-06-29 2012-01-04 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
KR102164630B1 (ko) 2013-06-28 2020-10-12 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US10031865B2 (en) 2014-11-26 2018-07-24 Sony Corporation Memory system, storage device, and method for controlling memory system
US10121553B2 (en) 2015-09-30 2018-11-06 Sunrise Memory Corporation Capacitive-coupled non-volatile thin-film transistor NOR strings in three-dimensional arrays
KR102606490B1 (ko) * 2016-06-30 2023-11-30 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
US10095568B2 (en) 2017-02-08 2018-10-09 Seagate Technology Llc Background reads to condition programmed semiconductor memory cells
KR102419036B1 (ko) * 2017-12-18 2022-07-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102434343B1 (ko) * 2018-04-23 2022-08-22 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11139016B1 (en) * 2020-04-07 2021-10-05 Micron Technology, Inc. Read refresh operation
WO2022027610A1 (en) * 2020-08-07 2022-02-10 Micron Technology, Inc. Balanced three-level read distrub management in a memory device

Also Published As

Publication number Publication date
US11789659B2 (en) 2023-10-17
US20230185488A1 (en) 2023-06-15

Similar Documents

Publication Publication Date Title
KR102580577B1 (ko) 솔리드 스테이트 드라이브들 내의 zns들
KR102370760B1 (ko) 존 네임스페이스에 대한 존 형성
US11126378B1 (en) Rate limit on the transitions of zones to open
US9916087B2 (en) Method and system for throttling bandwidth based on temperature
KR102098697B1 (ko) 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법
US11055176B1 (en) Storage devices hiding parity swapping behavior
US20160118132A1 (en) Low Impact Read Disturb Handling
US9880605B2 (en) Method and system for throttling power consumption
US10795827B2 (en) Adaptive management of intermediate storage
US11126369B1 (en) Data storage with improved suspend resume performance
US10126970B2 (en) Paired metablocks in non-volatile storage device
US20110238891A1 (en) Method for suppressing errors, and associated memory device and controller thereof
US12061817B2 (en) Integrated circuit memory devices with enhanced buffer memory utilization during read and write operations and methods of operating same
KR20210006102A (ko) 데이터 입출력 속도에 따라 버퍼의 사용을 결정할 수 있는 메모리 시스템 및 그의 동작 방법
US20210373809A1 (en) Write Data-Transfer Scheduling in ZNS Drive
US11656984B2 (en) Keeping zones open with intermediate padding
TW202318205A (zh) 記憶體系統及資料輸入輸出系統
US11537293B2 (en) Wear leveling methods for zoned namespace solid state drive
TW202038106A (zh) 儲存裝置、儲存裝置的控制方法及記錄媒體
CN114730247A (zh) 具有数据的最小写入大小的存储设备
US9652172B2 (en) Data storage device performing merging process on groups of memory blocks and operation method thereof
TW202324112A (zh) 用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體
US20210334031A1 (en) Data Parking for SSDs with Zones
Zuolo et al. Memory driven design methodologies for optimal SSD performance
US11640267B2 (en) Method and system for maintenance allocation between NVM groups