TW201832085A - 記憶體系統的操作方法 - Google Patents

記憶體系統的操作方法 Download PDF

Info

Publication number
TW201832085A
TW201832085A TW106141243A TW106141243A TW201832085A TW 201832085 A TW201832085 A TW 201832085A TW 106141243 A TW106141243 A TW 106141243A TW 106141243 A TW106141243 A TW 106141243A TW 201832085 A TW201832085 A TW 201832085A
Authority
TW
Taiwan
Prior art keywords
list
memory
area
data
memory area
Prior art date
Application number
TW106141243A
Other languages
English (en)
Other versions
TWI769193B (zh
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 南韓商愛思開海力士有限公司
Publication of TW201832085A publication Critical patent/TW201832085A/zh
Application granted granted Critical
Publication of TWI769193B publication Critical patent/TWI769193B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0653Monitoring storage devices or systems
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一種用於操作記憶體系統的方法,包括:在存取包括在用於數據儲存的第一列表之內的一個或多個第一記憶體區域的全部區域之後,更新第一記憶體區域的映射數據;基於記憶體系統的工作負載確定列表大小,並根據列表大小產生包括一個或多個第二記憶體區域的第二列表;以及在更新映射數據之後,存取用於數據儲存的第二記憶體區域。

Description

記憶體系統的操作方法
各種實施例一般關於半導體記憶體系統,並更具體地關於包括非揮發性記憶體裝置的記憶體系統及其操作方法。
半導體技術記憶體系統,也簡稱為記憶體系統,可回應於寫入請求儲存由外部裝置提供的數據。記憶體系統也可回應於讀取請求將儲存的數據提供到外部裝置。外部裝置可為任何電子裝置。外部裝置可為記憶體系統附接到或嵌入其中的主機電子裝置。 使用用於儲存數據的記憶體系統的外部裝置的示例包括桌上型電腦、便攜式電腦、平板電腦、數位相機、行動電話、智慧型手機、電子記事本、電子書閱讀器等。記憶體系統可在外部裝置的製造期間被嵌入外部裝置,也可被單獨製造並隨後連接到外部裝置。
相關申請案的交叉引用: 本申請案請求於2017年2月23日向韓國智慧財產局提交的申請號為10-2017-0023891的韓國專利申請案的優先權和權益,其全部內容透過引用併入本文。
本發明提供一種改進的用於採用一個或多個記憶體裝置的記憶體系統的操作方法。該操作方法可保證比現有裝置更高的數據可靠性。此外,可提高一個或多個記憶體裝置的使用效率。
在一個實施例中,用於操作記憶體系統的方法可包括:在存取包括在用於數據儲存的第一列表內的一個或多個第一記憶體區域的全部區域之後,更新第一記憶體區域的映射數據;基於記憶體系統的工作負載確定列表大小,並且基於列表大小產生包括一個或多個第二記憶體區域的第二列表;以及在更新映射數據之後,存取用於數據儲存的第二記憶體區域。
在一個實施例中,用於操作記憶體系統的方法可包括:基於記憶體系統的工作負載確定列表大小,並根據列表大小產生包括一個或多個記憶體區域的列表;在存取用於數據儲存的記憶體區域之前,在記錄區域中記錄列表;以及在存取用於數據儲存的全部記憶體區域之後,更新記憶體區域的映射數據。
在一個實施例中,用於操作記憶體系統的方法可包括:在存取包括在用於數據儲存的第一列表內的一個或多個第一記憶體區域之前,在記錄區域中記錄第一列表;在存取用於數據儲存的全部第一記憶體區域之後,更新第一記憶體區域的映射數據;以及在存取包括在用於數據儲存的第二列表內的一個或多個第二記憶體區域之前,在記錄區域中記錄第二列表,其中,繼映射數據的更新之後記錄第二列表。
下文將參考附圖描述包括記憶體系統及其操作方法的本發明的各種示例性實施例。然而,本發明可以不同形式實施並不應被認為限於本文說明的實施例。此外,提供這些實施例是為了足夠詳細的描述本發明,以使與本發明相關的本領域技術人員無需過度試驗而實現本發明的技術概念。
應理解本發明的實施例不限於附圖中所示細節,且附圖不一定按比例繪製,同樣在一些情況下,多種比例的附圖可被放大以更清晰地描述本發明的某些特徵或元件。此外,儘管使用了特定術語,應理解該術語的使用僅是為了描述特定實施例而不意圖限制本發明的範圍。
應進一步理解當特徵或元件被提到「連接到」或「耦接到」另一元件時,其可直接連接或耦接到該另一元件或可存在一個或多個中間元件。此外,同樣應理解當元件被提到在兩個元件「之間」時,其可為該兩個元件之間的唯一元件或也可存在一個或多個中間元件。
當本文中結合一列物件使用短語「…和…中的至少一個」時,其表示該列中任何單個物件或該列中物件的任意組合。例如,「A、B和C中的至少一個」表示僅A、僅B、僅C、或A、B和C的任意組合。
本文所使用的術語「或」表示兩個或更多可選物件中的任一個但不是兩個或其任意組合。
如在本文使用,單數形式意圖同樣包括複數形式,除非行文有明確相反說明。應進一步理解當本說明書中使用「包含」、「包括」、「含有」和「具有」時表示存在所述的原件,但不宜圖排除一個或多個其他未提及元件的存在或附加。如在本文使用,術語「和/或」包括一個或多個相關列出條目的任意和全部組合。
除非有相反的定義,本文中使用的包括技術和科學術語的全部術語具有的含義與本發明相關領域內的普通技術人員參照本發明而一般地理解的含義相同。應進一步理解,如辭典中一般使用的那些術語一樣,這些術語應被理解為所具有的含義與本發明行文和相關技術中它們所具有的含義一致,並且除文中特別地限定外,其不應被理想化或過於形式上地理解。
在下文描述中,多個特定細節被說明以提供對本發明透徹的理解。本發明可在沒有一些或全部這些具體細節的情況下實施。在其他情況下,沒有詳細描述公眾知悉的處理結構和/或處理器以避免不必要地模糊本發明。
同樣應注意,在一些情況下,除非有明確相反說明,對相關領域技術人員來說,作為結合一個實施例描述的特徵,原件可被單獨使用或結合另一實施例的其他原件使用。
下文中,將參照附圖詳細描述本發明的多種實施例。
圖1是示出根據本發明實施例的記憶體系統10的方塊圖。
記憶體系統10可被用作任意適當電子裝置的用於儲存數據的數據儲存。記憶體系統10可被配置為回應於從外部裝置接收的寫入請求儲存由外部裝置提供的數據,該外部裝置可操作地與記憶體系統10耦接。同樣,記憶體系統10可被配置為回應於從外部裝置接收的讀取請求向外部裝置提供儲存的數據。
例如,記憶體系統10可被可操作地耦接到或配置為國際個人電腦記憶卡協會(PCMCIA)卡、標準快閃記憶體(CF)卡、智慧媒體卡、記憶棒、多媒體卡(MMC、eMMC、RS-MMC和MMC-Micro)、各種安全數位卡(SD、Mini-SD和Micro-SD)、通用快閃記憶體儲存(UFS)、 固態硬碟(SSD)等。
記憶體系統10可包括控制器100和儲存媒介200。控制器100可包括處理器110和工作記憶體120。控制器100可控制記憶體系統10的操作,例如,記憶體系統的前臺和/或後臺操作。前臺和後臺操作在此也可被稱為一般操作。前臺操作可包括,例如,讀取和寫入操作,而後臺操作可包括刷新、損耗均衡、映射更新、垃圾收集操作。在一個實施例中,控制器100可控制記憶體系統10的全部一般操作,然而,本發明不限於此方式。
處理器110可控制控制器100的一個或多個操作。例如,處理器110可回應於從外部裝置接收的寫入請求控制包括在儲存媒介200內的正常區域220的記憶體區域MR1~MRi內數據的儲存,並可回應於從外部裝置接收的讀取請求,讀出記憶體區域MR1~MRi內儲存的數據並將被讀出的數據輸出至外部裝置。
根據一個實施例,處理器110可首先存取用於儲存數據的一個或多個第一記憶體區域的全部區域。第一記憶體區域可包括在第一記憶體區域列表內。第一記憶體列表可包括一個或多個第一記憶體區域,其適於為第一目的儲存數據。然後,在存取一個或多個第一記憶體區域的全部區域並完成在一個或多個第一記憶體區域的全部區域內的數據儲存之後,處理器110 可更新第一記憶體區域的映射數據並且基於記憶體系統10的工作負載確定列表大小。處理器110可隨後產生包括一個或多個第二記憶體區域的第二記憶體區域列表,該一個或多個第二記憶體區域用於依照新確定的列表大小為第一目的儲存數據。在更新第一記憶體區域的映射數據之後,處理器110可存取用於儲存數據的第二記憶體區域。
根據一個實施例,處理器110可基於記憶體系統10的工作負載確定列表大小,依照列表大小產生包括一個或多個記憶體區域的記憶體區域列表,在存取包括在用於數據記憶體區域列表內的記憶體區域之前記錄記憶體區域列表,並在存取用於數據儲存的全部記憶體區域之後更新記憶體區域的映射數據。
根據一個實施例,處理器110可在存取包括在用於數據儲存的第一記憶體區域列表中的一個或多個第一記憶體區域之前記錄第一記憶體區域列表,可在存取用於數據儲存的全部第一記憶體區域之後更新第一記憶體區域的映射數據,並可在存取包括在用於數據儲存的第二記憶體區域列表之內的一個或多個第二記憶體區域之前記錄第二記憶體區域列表。更新第一記憶體區域的映射數據隨後可記錄第二記憶體區域列表。第一記憶體區域列表和第二記憶體區域列表的大小可基於記憶體系統10的工作負載,並可因工作負載的改變而不同。因此,第一記憶體區域列表的大小可基於在記錄第一記憶體區域列表之前計算的記憶體系統10的第一工作負載,而第二記憶體區域列表的大小可基於在更新第一記憶體區域的映射數據之後並在記錄第二記憶體區域列表之前計算的記憶體系統10的第二工作負載。
處理器110可包括列表產生單元111、記錄單元112、映射管理單元113和恢復單元114。
列表產生單元111可產生記憶體區域列表。記憶體區域列表可包括一個或多個記憶體區域,其將被依序地存取以用於數據儲存。於被包括在先記憶體區域列表內的全部記憶體區域被存取之前,列表產生單元111 可優先產生後續記憶體區域列表。可替換地,列表產生單元111可在包括於先記憶體區域列內的全部記憶體區域被存取後產生後續記憶體區域列表。列表產生單元111可依照損耗均衡策略選擇將包括在記憶體區域列表內的記憶體區域。
特別地,列表產生單元111可基於記憶體系統10的工作負載確定將被包括在記憶體區域列表內的記憶體區域的數量(即,列表大小)。由於記憶體系統10的性能和非正常斷電後的恢復時間相對於列表大小具有權衡關係,依照本實施例的列表產生單元111可考慮到這些因素而確定列表大小。將參考圖6至8給出詳細描述。
當包括在先記憶體區域列表內的全部記憶體區域被存取時並且在包括於後續記憶體區域列表內的記憶體區域開始被存取前,記錄單元112可在記錄區域211內記錄後續記憶體區域列表。具體的,僅在先記憶體區域列表的映射數據121被映射管理單元113更新之後,記錄單元112可在記錄區域211內記錄後續記憶體區域列表。
同樣,記憶體區域每次被完全存取,也就是說,記憶體區域每次被關閉時,記錄單元112可在記錄區域211內記錄關於被關閉的記憶體區域的資訊。當在非正常斷電後執行恢復操作時,記錄區域211的記錄可被用於確定恢復範圍。將參考圖2描述記錄單元112的詳細操作。
映射管理單元113可管理映射數據121,其中邏輯位址與物理位址被映射。邏輯位址可被外部裝置使用以存取儲存媒介200,而物理位址可為儲存媒介200的實際位址。在映射數據121中,映射管理單元113可映射伴隨來自外部裝置的數據一起被提供的邏輯位址和所提供的數據被寫入其中的正常區域220的物理位址。當外部裝置請求伴隨讀取請求提供的邏輯位址的讀取數據時,映射管理單元113可識別映射數據121中被映射到所提供的邏輯位址映射的物理位址,並讀出所識別的物理位址的數據並將所讀出的數據提供到外部裝置。
映射管理單元113可產生與每次被儲存在正常區域220的數據對應的映射數據121。也就是說,映射數據121可隨著數據被儲存到正常區域220而被更新。相反地,過期的儲存媒介200的映射數據區域212可被管理。相應地,映射管理單元113可基於最新映射數據121來更新被儲存在映射數據區域212中的過期的映射數據。具體地,當包括在某一記憶體區域列表內的全部記憶體區域被存取時,映射管理單元113可將對應記憶體區域的最新映射數據121反映(reflect)到映射數據區域212中。
同時,即使在映射數據121被反映到映射數據區域212之前,映射數據121可與對應數據一同被儲存在正常區域220。如將在下文被描述,當映射數據121還沒被反映到映射數據區域212並且由於非正常斷電而被丟失時,映射數據121可基於被儲存在正常區域220的映射數據121而被恢復。
恢復單元114 可執行非正常斷電的恢復操作。恢復單元114 可透過追蹤儲存在記錄區域211的記錄來確定恢復範圍。恢復單元114的恢復操作可包括映射數據的丟失範圍的映射數據恢復工作和記憶體區域的損壞範圍的數據移動工作。將參考圖5和9對恢復單元114 的恢復操作進行詳細描述。
工作記憶體120可保持由映射管理單元113管理的映射數據121。如上文所述,可在預定的時間,即,當包括在對應記憶體區域列表內的全部記憶體塊已經被存取時,將最新的映射數據121複製在映射數據區域212中。
工作記憶體120可為揮發性記憶體裝置,如靜態隨機存取記憶體(SRAM)和動態隨機存取記憶體(DRAM)。當發生斷電時,揮發性記憶體裝置丟失儲存在其中的數據。
然而,根據實施例,工作記憶體120可以是非揮發性記憶體裝置,如快閃記憶體,例如NAND快閃記憶體或NOR快閃記憶體,鐵電隨機存取記憶體(FeRAM)、相變隨機存取記憶體(PCRAM)、磁阻隨機存取記憶體(MRAM)、電阻隨機存取記憶體(ReRAM)等。
在控制器100的控制下,儲存媒介200可儲存從控制器100傳輸的數據,可讀出被儲存的數據並且將讀出的數據傳輸到控制器100。儲存媒介200可包括元區域(meta region)210和正常區域220。
元區域210可儲存包括記憶體系統10的操作所必要的各個操作數據的元數據。元區域210可包括其中透過記錄單元112儲存記錄的記錄區域211,以及其中透過映射管理單元113儲存映射數據的映射數據區域212 。
正常區域220可儲存除了被儲存在元區域210的元數據之外的從外部裝置傳輸的正常數據。正常區域220可包括多個記憶體區域MR1~MRi,且可為正常區域220的這些記憶體區域MR1~MRi 產生記憶體區域列表。
同時,儲存媒介200可包括一個或多個非揮發性記憶體裝置。包括在正常區域220的每個記憶體區域MR1~MRi可存在於一個或多個非揮發性記憶體裝置中。例如,每個記憶體區域可包括記憶體塊,其在各個揮發性記憶體裝置中具有相同的位址。記憶體塊可以是對非揮發性記憶體裝置的擦除操作的單元。記憶體塊可包括多個頁面,每個頁面包括連接到相同字元線的記憶體單元。
圖2是示出操作圖1所示記憶體系統10的方法的示圖。圖2 示出依照存取第一記憶體區域列表LIST 1和第二記憶體區域列表LIST 2的記錄進程和映射數據更新進程。在圖2中,產生第一記憶體區域列表LIST 1和第二記憶體區域列表LIST 2的進程被省略。
首先,在時間T1,記錄單元112可在儲存媒介200的元區域210的記錄區域211中記錄第一記憶體區域列表LIST 1。第一記憶體區域列表LIST 1可包括將被依序存取的記憶體區域MR11~MR1m。第一記憶體區域列表LIST 1的大小,即列表中記憶體區域MR11~MR1m的數量,可依照下文描述的方法被確定。
在時間T2,記憶體區域MR11可依照第一記憶體區域列表LIST 1中安排的存取順序被存取。當記憶體區域MR11被關閉時,記錄單元112可在記錄區域211內記錄關於記憶體區域MR11的資訊。關於記憶體區域MR11的資訊可以是記憶體區域MR11的位址。當記憶體區域被寫滿數據時,記憶體區域被關閉。
從時間T3至時間T4,記憶體區域MR12~MR1m可依照第一記憶體區域列表LIST 1內安排的存取順序被依序地存取。每次記憶體區域MR12~MR1m中的記憶體區域被關閉,記錄單元112可在記錄區域211內記錄關於被分別關閉的記憶體區域的資訊。
在時間T5,當全部記憶體區域MR11~MR1m被存取時,映射管理單元113可基於儲存在工作記憶體120內的記憶體區域MR11~MR1m的最新映射數據121來更新被儲存在映射數據區域212中的過期映射數據 。
在時間T6,記錄單元112可在記錄區域211中記錄第二記憶體區域列表LIST 2。第二記憶體區域列表LIST 2可包括將被依序地存取的記憶體區域MR21~MR2n。第二記憶體區域列表LIST 2的列表大小,即記憶體區域MR21~MR2n的數量,可依照下文描述的方法被確定。
在時間T7,記憶體區域MR21可依照第二記憶體區域列表LIST 2內安排的存取順序被存取。當記憶體區域MR21被關閉時,記錄單元112可在記錄區域211內記錄關於記憶體區域MR21的資訊。同樣,第二記憶體區域列表LIST 2內的每個區域被依序存取,並且當每個記憶體區域被關閉時,記錄單元記錄關於被關閉的各個記憶體區域的資訊。
例如,在時間T8,記憶體區域MR22可依照第二記憶體區域列表LIST 2內安排的存取順序被存取。
如上文所述,參考圖2,在時間T5處第一記憶體區域列表LIST 1的映射數據的更新先於在時間T6處第二記憶體區域列表LIST 2的記錄。同樣,如上文說明,當全部記憶體塊被存取且隨後儲存在記憶體120內更新的映射數據被複製到映射數據區域212。相應地,記錄區域211內後續記憶體區域列表的記錄,可確保在先記憶體區域列表的映射數據的更新被完成。
圖3是示出在圖2中時間T5和時間 T8處的映射數據的狀態的圖表。
參考圖3,在時間T5,當第一記憶體區域列表LIST 1內包括的全部記憶體區域MR11~MR1m已經被存取時,工作記憶體120內儲存的第一記憶體區域列表LIST 1的映射數據MAP_LIST 1_N 可以是最新的,這是因為當記憶體區域MR11~MR1m被存取的同時他們被產生。最新的映射數據MAP_LIST 1_N 可包括記憶體區域MR11~MR1m的映射數據MAP_MR11_N~MAP_MR1m_N。相反地,第一記憶體區域列表LIST 1的過期的映射數據MAP_LIST 1_O可包括第一記憶體區域列表LIST 1被存取之前的映射資訊。因此,映射數據區域212內儲存的過期映射數據MAP_LIST 1_O可基於在工作記憶體120內儲存的最新的映射數據MAP_LIST 1_N被更新。例如,如上文說明,當第一記憶體列表的記憶體區域已經被存取並且在新的記憶體區域列表被記錄之前,工作記憶體120內儲存的更新的映射數據可被複製到映射數據區域212中。
同時,在時間T5,映射數據區域212可同樣保持第二記憶體區域列表LIST 2的映射數據MAP_LIST 2_O。映射數據MAP_LIST 2_O 可包括在第二記憶體區域列表LIST 2被存取之前的映射資訊。因為映射數據MAP_LIST 2_O在第二記憶體區域列表LIST 2被存取之前被存取,映射數據MAP_LIST 2_O可仍為最新的。然而,在第二記憶體區域列表LIST 2所包括的全部記憶體區域MR21~MR2n被擦除的情況下,映射數據MAP_LIST 2_O可以是過期的。
在時間T8,當第二記憶體區域列表LIST 2內包括的記憶體區域MR22被存取時,工作記憶體120可保持第二記憶體區域列表LIST 2的最新映射數據MAP_LIST 2_N。最新映射數據MAP_LIST 2_N可包括記憶體區域MR21和記憶體區域MR22的映射數據MAP_MR21_N和映射數據MAP_MR22_N。然而,映射數據區域212內儲存的映射數據MAP_MR21_O和映射數據MAP_MR22_O可以依然是過期的,因為其在最新映射數據MAP_LIST 2_N被複製之前被複製到映射數據區域。
圖4是示出在圖2和圖3的時間T8後發生非正常斷電時的映射數據恢復工作的示圖。
參考圖4,在時間T8後的時間T9,當工作記憶體120是揮發性時,如果發生非正常斷電,工作記憶體120內儲存的全部映射數據可被丟失。然而,在映射數據區域212內儲存的映射數據MAP_LIST 1_N和映射數據MAP_LIST 2_O被保持。
在時間T10,恢復單元114可僅恢復第二記憶體區域列表LIST 2的映射數據MAP_LIST 2_N。也就是說,因為在非正常斷電時第二記憶體區域列表LIST 2的記憶體區域MR21和記憶體區域MR22的最新映射數據MAP_LIST 2_N還未被反映在映射數據區域212中,所以他們應該被恢復。然而,因為在非正常斷電時第一記憶體區域列表LIST 1的最新映射數據MAP_LIST 1_N未被反映(複製,更新)在映射數據區域212內,所述他們無需被恢復。
如上文所述,為了記憶體區域MR21和記憶體區域MR22而將被恢復的映射數據可與對應數據一起被儲存在記憶體區域MR21和記憶體區域MR22。恢復工作可透過收集儲存在恢復範圍內的映射數據而被執行,即記憶體區域MR21和記憶體區域MR22。
隨著將被恢復的映射數據的量變得更大,恢復工作記憶體的映射數據需要更長時間。因此,較佳地僅恢復要求恢復的數據量。在本實施例中,恢復單元114可確定映射數據恢復範圍,即映射數據丟失範圍。在圖4中,映射數據丟失範圍可為記憶體區域MR21和記憶體區域MR22。如將在下文描述,映射數據丟失範圍可透過追蹤記錄區域211而被有效確定。
圖5是示出透過恢復單元114確定映射數據丟失範圍的方法的示圖。
參考圖5,恢復單元114可檢測記錄區域211內最後記錄的記憶體區域列表。如果第二記憶體區域列表LIST 2是記錄區域211內被最後記錄的,恢復單元114可確定,在被認為於第二記憶體區域列表LIST 2之前被記錄的第一記憶體區域列表LIST 1內包括的記憶體區域MR11~MR1m的全部映射數據,其被更新到映射數據區域212。也就是說,如上文所述,因為在記錄第二記憶體區域列表LIST 2之前,第一記憶體區域列表LIST 1的映射數據被更新到映射數據區域212,第二記憶體區域列表LIST 2的記錄可表示第一記憶體區域列表LIST 1的映射數據被更新到映射數據區域212已完成。
此外,基於關於第二記憶體區域列表LIST 2的資訊和最後記錄的記憶體區域MR21,恢復單元114可檢測最後記錄的記憶體區域MR21在非正常斷電之前恰被關閉,且緊隨最後記錄的記憶體區域MR21之後的記憶體區域MR22在非正常斷電時被使用。因此,恢復單元114可確定記憶體區域MR21和記憶體區域MR22的映射數據沒被更新到映射數據區域212,並確定記憶體區域MR21和記憶體區域MR22為映射數據丟失範圍。
綜上,恢復單元114可檢測最後記錄的記憶體區域列表和記錄區域211內最後記錄的(即,最後關閉)記憶體區域,並將最後記錄的記憶體區域列表內記憶體區域中緊隨最後關閉的記憶體區域之後的一個區域確定為映射數據丟失範圍。
下文將描述映射數據丟失範圍和最後記錄的記憶體區域列表的列表大小。
圖6A 是示出列表大小和記憶體系統10 的性能之間關係的示圖。圖6B是示出列表大小和最大映射數據恢復範圍之間關係的示圖。
參考圖6A,隨著記憶體區域列表的列表大小變得更大,記憶體系統10的性能也可提高。這是因為,如果記憶體區域列表所包括的記憶體區域數量增加,記憶體系統的映射數據更新被不那麼頻繁地執行。一般地,頻繁的映射數據更新會降低記憶體系統10的性能。
參考圖6B,隨著在非正常斷電時最後記錄的一個記憶體區域列表的列表大小變得更大,最大映射數據丟失範圍也可增加。最大映射數據丟失範圍可以是最後記錄的記憶體區域列表內包括的全部記憶體區域。這需要更長恢復時間以恢復更大映射數據丟失範圍的記憶體區域。一般地,不希望在記憶體系統10的啟動期間有更長的恢復進程。
綜上,記憶體系統10的性能和最大恢復時間與列表大小成權衡關係。也就是說,隨著列表大小變得更大,記憶體系統10的性能可增強, 然而恢復時間可增加。在此情況下,如將在下文描述,列表產生單元111可基於記憶體系統10的工作負載確定加強記憶體系統10性能增強或短恢復時間之間的哪個效果需要被強調,並由此確定列表大小。
圖7是示出基於記憶體系統10的工作負載確定列表大小的方法的示圖。
參考圖7,列表產生單元111可基於分析記憶體系統10的工作負載的結果來確定依序寫入操作或隨機寫入操作哪個將更頻繁。當依序寫入操作比隨機寫入操作更頻繁,列表產生單元111可確定列表大小為「Ns」,而當隨機寫入操作比依序寫入操作更頻繁時確定列表大小為為「Nr」。「Ns」 可等於或大於1且可等於或小於「Nr」。「Nr」可等於或大於「Ns」並且可等於或小於「Nsp」。「Nsp」可為在預定啟動時間期間可處理的最大列表大小。
以這種方式確定列表大小的理由如下。首先,透過依序寫入操作(例如,大容量視訊檔案的數據片段)的數據寫入一般相對難以改變,因此這類依序寫入操作的數據的映射數據可能不被頻繁更新,即使具有小的列表大小的記憶體區域列表,這表示即使具有小的列表大小的記憶體區域列表的記憶體系統10的性能下降可被避免。同時,當記憶體區域列表的列表大小對於依序寫入操作的數據較小時,非正常斷電發生時映射數據恢復時間將縮短。因此,當確定依序寫入操作比隨機寫入操作更頻繁時,列表產生單元111可透過確定列表大小為「Ns」而專注於短映射數據恢復時間。
然而,透過隨機寫入操作而寫入的數據可能被相對頻繁的改變。因為改變的數據應被寫入記憶體系統10內新的位置,數據的改變可導致對應映射數據的更新。因此,當隨機寫入操作被確定比依序寫入操作更頻繁時,對於隨機寫入操作的數據,較佳為具有大列表大小的記憶體區域列表,從而避免映射數據的頻繁更新,這表示避免具有大列表大小的記憶體區域列表的記憶體系統10的性能下降。因此,當確定隨機寫入操作比依序寫入操作更頻繁時,列表產生單元111可以透過確定列表大小為「Nr」等於或大於」Ns」,以短映射數據恢復時間為代價而專注於提高記憶體系統10的性能。
同時,根據實施例,如果確定依序寫入操作的頻率與隨機寫入操作相同,列表產生單元111可確定「Ns」和「Nr」之間某一值為列表大小。
如圖7所示,列表產生單元111可透過將單個值分配到每個依序寫入操作和隨機寫入操作來確定列表大小。與此不同,如在下文描述,列表產生單元111可透過分配多個值給每個依序寫入操作和隨機寫入操作來確定列表大小。
圖8是示出基於記憶體系統 10的工作負載確定列表大小的另一方法的示圖。
參考圖8,列表產生單元111可基於記憶體系統10的工作負載的分析結果確定依序寫入操作或隨機寫入操作哪個將更頻繁以及依序寫入操作和隨機寫入操作哪個很頻繁或略頻繁。如上文所述,隨著依序寫入操作的頻率變大,列表產生單元111可確定更小的列表大小,而隨著隨機寫入操作的頻率變大,列表產生單元111可確定更大的列表大小。換句話說,當依序寫入操作的頻率較強時,列表產生單元111可確定列表大小為「Ns1」等於或大於「1」 ,而當依序寫入操作的頻率較弱時, 確定為「Ns2」等於或大於「Ns1」。此外,當隨機寫入操作的頻率較弱時,列表產生單元111可確定列表大小為「Nr1」等於或大於「Ns2」,而當隨機寫入操作當頻率較強時,將其確定為「Nr2」等於或大於「Nr1」。如上文所述,「Nsp」可為在預定啟動時間期間可處理的最大列表大小。
根據一個實施例,三個或更多值可被分配給依序寫入操作和隨機寫入操作中的每一個。
工作負載的分析可基於本領域已知或可知的多種分析技術被執行。因為分析不構成本實施例的必要特徵,本文省略對其的詳細描述。
圖9是示出記憶體區域損壞範圍的恢復單元114 的恢復操作的示圖。
參照圖5如上文所述,恢復單元114可在緊隨非正常斷電後的啟動操作期間確定映射數據損失範圍,並執行映射數據損失範圍的恢復工作。此外,恢復單元114可在啟動操作期間執行記憶體區域損壞範圍的數據移動工作。記憶體區域損壞範圍可以是非正常斷電時正被使用的記憶體區域。確定記憶體區域損壞範圍的進程可與上文所述確定映射數據丟失範圍的進程基本相同,並可被同步執行。換句話說,恢復單元114可檢測最後記錄的記憶體區域列表和記錄區域211內最後記錄的(即,最後關閉)記憶體區域,並將緊隨最後記錄的記憶體區域列表內最後關閉的記憶體區域之後的映射區域確定為記憶體區域損壞範圍。
具體地,參考圖9,恢復單元114可基於記錄區域211內儲存的記錄確定記憶體區域MR22為記憶體區域損壞範圍。也就是說,對於第二記憶體區域列表LIST 2和在記錄區域211中最後記錄的記憶體區域MR21,恢復單元114可確定記憶體區域MR21在非正常斷電前被關閉並且記憶體區域MR22 在非正常斷電時正被使用。
隨後,恢復單元114可在記錄區域211內儲存關於記憶體區域損壞範圍MR22 和移動位置MR23(即,記憶體區域損壞範圍MR22的新的記憶體區域)的記錄RBL。在儲存記錄RBL之後,恢復單元114可將記憶體範圍損壞範圍MR22內儲存的數據移動到新的記憶體區域MR23。也就是說,依照第二記憶體區域列表LIST 2內安排的順序,移動位置MR23可以是緊隨記憶體區域損壞範圍MR22之後的記憶體區域。
記錄RBL可被儲存以防止對損壞範圍MR22的記憶體區域MR23執行數據移動工作的同時重複發生非正常斷電的情況。如果在非正常斷電後的啟動期間在記錄區域211中發現記錄RBL,則表示對損壞範圍MR22的新記憶體區域MR23執行數據移動工作的同時重複發生非正常斷電,恢復單元114可忽略記錄RBL的當前值。恢復單元114 可在記錄區域211內儲存關於記憶體區域損壞範圍MR22 和新的移動位置MR24的記錄RBL,並隨後對記憶體區域損壞範圍MR22的新的移動位置MR24執行數據移動工作。
圖10是示出操作列表產生單元111的方法的流程圖。
在步驟S110,如上文參照圖6A至圖8所述,列表產生單元111可根據依序寫入操作和隨機寫入操作頻率確定列表大小。具體地,當確定依序寫入操作比隨機寫入操作更頻繁時,列表大小可被確定為第一大小(例如「Ns」),而當確定隨機寫入操作比依序寫入操作更頻繁時可確定為第二大小(例如「Nr」)等於或大於第一大小。根據一個實施例,如上文參照圖8所述,隨著依序寫入操作的頻率變大,列表大小可確定為變小,而隨著隨機寫入操作的頻率變大,其可被確定為變大。
在步驟S120,列表產生單元111可根據列表大小產生包括一個或多個記憶體區域的記憶體區域列表,其隨後被用於數據儲存。列表產生單元111可在先記憶體區域列表內包括的全部記憶體區域被存取之前優先產生後續記憶體區域列表。可替換地,列表產生單元111可在先記憶體區域列表內包括的全部記憶體區域被存取後產生後續記憶體區域列表。
圖11是示出操作記錄單元112的方法的流程圖。
在步驟S210,在先記憶體區域列表的映射數據被更新後,記錄單元112可在存取後續記憶體區域列表內包括的記憶體區域之前,在記錄區域211中記錄後續記憶體區域列表。
在步驟S220,在每一次中,每個記憶體區域被完全存取,即被關閉,記錄單元112可在記錄區域211中記錄關於被完全存取的記憶體區域的資訊。
圖12是示出操作映射管理單元113的方法的流程圖。
在步驟S310,在記憶體區域列表包括的全部記憶體區域被存取後,映射管理單元113可更新記憶體區域的映射數據。具體地,映射管理單元113可基於工作記憶體120內儲存的最新映射數據更新在映射數據區域212內儲存的過期的映射數據。
圖13是示出恢復單元114的恢復操作方法的流程圖。
在步驟S410,恢復單元114可檢測來自記錄區域211內記錄數據的最後記錄的記憶體區域列表。
在步驟S420,恢復單元114可檢測來自記錄區域211內記錄數據的最後記錄的(即,最後關閉)記憶體區域。
在步驟S430,恢復單元114可基於記憶體區域列表和關於被檢測的記憶體區域的資訊來確定恢復範圍。具體地,恢復單元114可將最後記錄的記憶體區域列表內的記憶體區域中的第一個到緊隨著最後關閉的記憶體區域之後的一個確定為映射數據損失範圍。最後,恢復單元114可將最後記錄的記憶體區域列表中緊隨著最後關閉的記憶體區域的記憶體區域確定為記憶體區域損壞範圍。
在步驟S440,恢復單元114可為映射數據損失範圍執行映射數據恢復工作。恢復單元114可透過收集作為映射數據損失範圍的記憶體區域內儲存的映射數據來恢復工作記憶體120內損失的映射數據。
在步驟S450,恢復單元114可為記憶體區域損壞範圍執行數據移動工作。恢復單元114可將緊隨著最後記錄的記憶體區域列表內的記憶體區域損壞範圍之後的記憶體區域確定為移動位置,並將記憶體區域損壞範圍內儲存的數據移動到該移動位置。
雖然圖13示出了在執行映射數據恢復工作執行後在步驟S450執行數據移動工作,應注意本實施例不限於該順序。
圖14是示出依照實施例的固態硬碟(SSD)1000的方塊圖。
SSD 1000可包括控制器1100和儲存媒介1200。
控制器1100可控制主機設備1500和儲存媒介1200之間的數據交換。控制器1100可包括透過內部匯流排1170連接的處理器1110、RAM 1120、ROM 1130、ECC單元1140、主機介面1150和儲存媒介介面1160。
處理器1110可控制控制器1100的一般操作。處理器1110可依照來自主機設備1500的數據處理請求在儲存媒介1200內儲存數據並從儲存媒介讀取所儲存的數據。為了有效管理儲存媒介1200,處理器1110 可控制SSD 1000 的內部操作,例如合併操作、損耗均衡操作等。
對於儲存媒介1200中包括的記憶體區域,處理器1110可以基本上類似於圖1的處理器110來配置和操作。也就是說,在存取用於數據儲存的第一記憶體區域中包括的一個或多個第一記憶體區域的全部區域之後,處理器1110可以更新第一記憶體區域的映射數據,基於SSD 1000的工作負載確定列表大小,根據列表大小產生包括一個或多個第二記憶體區域的第二記憶體區域,並且在更新第一記憶體區域的映射數據之後使用用於數據儲存的第二記憶體區域。
根據實施例,處理器1110基於SSD 1000的工作負載可確定列表大小,根據列表大小產生包括一個或多個記憶體區域的記憶體區域,在存取用於數據儲存的記憶體區域列表中包括的記憶體區域之前記錄記憶體區域列表,並且在存取用於數據儲存的全部記憶體區域之後更新記憶體區域的映射數據。
根據實施例,在存取用於數據儲存的第一記憶體區域列表中包括的一個或多個第一記憶體區域之前,處理器1110 可記錄第一記憶體區域列表,在存取用於數據儲存的全部第一記憶體區域之後,更新第一記憶體區域的映射數,並且在存取用於數據儲存的第二記憶體區域列表中包括的一個或多個第二記憶體區域之前,記錄第二記憶體區域列表,其中記錄第二記憶體區域列表可成功更新第一記憶體區域的映射數據。
RAM 1120可儲存待被處理器1110使用的程式和編程數據。在將從主機介面1150傳輸的數據傳輸到儲存媒介1200之前,RAM 1120 可臨時儲存該數據。並且在將從儲存媒介傳輸的數據傳輸到主機裝置1500之前,可以臨時儲存該數據。
RAM 1120 可對應於圖1的工作記憶體120。也就是說, RAM 1120可保持新的映射數據121。
ROM 1130可儲存待被處理器1110讀取的程式編碼。程式編碼可包括待被處理器1110處理的用於使處理器1110控制控制器1100的內部單元的命令。
ECC單元1140可對將被儲存在儲存媒介1200中的數據進行編碼,並可解碼從儲存媒介1200讀取的數據。ECC單元1140 可依照ECC演算法檢測並校正數據中出現的錯誤。
主機介面1150可與主機裝置1500交換數據處理請求、數據等。
儲存媒介介面1160可以將控制信號和數據傳輸到儲存媒介1200。儲存媒介介面1160可以與來自儲存媒介1200的數據一起被發送。儲存媒介介面1160可以透過多個通道CH0至通道CHn與儲存媒介1200耦接。
儲存媒介1200可以包括多個非揮發性記憶體裝置NVM0~NVMn。 多個非揮發性記憶體裝置NVM0~NVMn中的每一個可以根據控制器1100的控制執行寫入操作和讀取操作。
儲存媒介1200可以以與圖2所示的儲存媒介200基本相同的方式配置和操作。
圖15是示出應用了根據實施例的記憶體系統10的數據處理系統2000的方塊圖。
數據處理系統2000可以包括電腦、膝上型電腦、小筆電、智慧型手機、數位電視機、數位相機、導航儀等。數據處理系統2000可以包括主處理器2100,主處理器裝置2200,記憶體系統2300和輸入/輸出設備2400。數據處理系統2000的內部單元可以透過系統匯流排2500交換數據,控制信號等。
主處理器2100可以控制數據處理系統2000的一般操作。主處理器2100可以是諸如微處理器的中央處理單元。主處理器2100可以在主儲存裝置2200上執行諸如作業系統,應用程式,設備驅動程式等的軟體。
主記憶體裝置2200可以儲存待由主處理器2100使用的程式和編程數據。主記憶體裝置2200可以臨時儲存待傳輸到記憶體系統2300和輸入/輸出設備2400的數據。
記憶體系統2300可以包括控制器2310和儲存媒介2320。記憶體系統2300可以被配置並且基本上類似於圖1的記憶體系統10來操作。
輸入/輸出設備2400可以包括能夠與使用者交換數據的鍵盤、掃描器、觸控式螢幕、螢幕監視器、印表機、滑鼠等,以及能夠與使用者交換數據,諸如從使用者接收用於控制的數據處理系統2000的命令或將處理結果提供給使用者。
根據一個實施例,數據處理系統2000可以透過諸如LAN(區域網路)、WAN(廣域網路)、無線網路等的網路2600與至少一個伺服器2700通訊。數據處理系統2000可以包括存取網路2600的網路介面(未示出)。
雖然上文已經描述了各種實施例,但是本領域技術人員將會理解,所描述的實施例僅是示例。因此,這裡描述的記憶體系統及其操作方法不應限於所描述的實施例。對於本發明所屬領域的技術人員而言顯而易見的是,在不脫離如所附申請專利範圍所定義的本發明的精神和範圍的情況下,可以進行各種其他改變和修改。
10‧‧‧記憶體系統
100‧‧‧控制器
110‧‧‧處理器
111‧‧‧列表產生單元
112‧‧‧記錄單元
113‧‧‧映射管理單元
114‧‧‧恢復單元
120‧‧‧工作記憶體
1000‧‧‧SSD
1100‧‧‧控制器
1110‧‧‧處理器
1120‧‧‧RAM
1130‧‧‧ROM
1140‧‧‧ECC單元
1150‧‧‧主機介面
1160‧‧‧儲存媒介介面
1170‧‧‧內部匯流排
1200‧‧‧儲存媒介
1500‧‧‧主機裝置
121‧‧‧映射數據
200‧‧‧儲存媒介
210‧‧‧元區域
211‧‧‧記錄區域
212‧‧‧映射數據區域
220‧‧‧正常區域
2000‧‧‧數據處理系統
2100‧‧‧主處理器
2200‧‧‧主處理器裝置
2300‧‧‧記憶體系統
2310‧‧‧控制器
2320‧‧‧儲存媒介
2400‧‧‧輸入/輸出設備
2500‧‧‧系統匯流排
2600‧‧‧網路
2700‧‧‧伺服器
CH0~CHn‧‧‧通道
MAP_LIST 1_N‧‧‧映射數據
MAP_LIST 2_N‧‧‧映射數據
MAP_LIST 1_O‧‧‧映射數據
MAP_LIST 2_O‧‧‧映射數據
MAP_MR11_N~MAP_MR1m_N‧‧‧映射數據
MAP_MR21_O~MAP_MR2n_O‧‧‧映射數據
MAP_MR21_N‧‧‧映射數據
MAP_MR22_N‧‧‧映射數據
MAP_MR21_O~MAP_MR2n_O‧‧‧映射數據
MR1~MRi‧‧‧記憶體區域
MR11~MR1m‧‧‧記憶體區域
MR21~MR2n‧‧‧記憶體區域
Nr‧‧‧列表大小
Nr1‧‧‧列表大小
Nr2‧‧‧列表大小
Ns‧‧‧列表大小
Ns1‧‧‧列表大小
Ns2‧‧‧列表大小
Nsp‧‧‧列表大小
NVM0~NVMn‧‧‧非揮發性記憶體裝置
RBL‧‧‧記錄
S110‧‧‧步驟
S120‧‧‧步驟
S210‧‧‧步驟
S220‧‧‧步驟
S310‧‧‧步驟
S410‧‧‧步驟
S420‧‧‧步驟
S430‧‧‧步驟
S440‧‧‧步驟
S450‧‧‧步驟
T1~T10‧‧‧時間
透過基於附圖對本發明多個實施例的描述,本發明的上述或其他特徵及優點對本領域技術人員來說將變得更加清楚,其中: 圖1是示出根據本發明實施例的記憶體系統的方塊圖; 圖2是示出操作圖1所示記憶體系統的方法的示圖; 圖3是示出映射數據的狀態的示圖; 圖4是示出當非正常斷電發生時映射數據恢復工作的示圖; 圖5是示出確定映射數據丟失範圍的方法的示圖; 圖6A是示出列表大小和記憶體系統的性能之間關係的示圖; 圖6B是示出列表大小和最大映射數據恢復範圍之間關係的示圖; 圖7是示出基於記憶體系統的工作負載確定列表大小的方法的示圖; 圖8是示出基於記憶體系統的工作負載確定列表大小的方法的示圖; 圖9是示出記憶體區域損壞範圍的恢復單元的恢復操作的示圖; 圖10是示出操作圖1中列表產生單元的方法的流程圖; 圖11是示出操作圖1所示記錄單元的方法的流程圖; 圖12是示出操作圖1所示映射管理單元的方法的流程圖; 圖13是示出非正常斷電時圖1所示恢復單元的恢復操作方法的流程圖; 圖14是示出依照實施例的固態硬碟(SSD)的方塊圖;以及 圖15是示出採用依照實施例的記憶體系統的示例性數據處理系統的方塊圖。

Claims (20)

  1. 一種用於操作記憶體系統的方法,其包括: 在存取包括於用於數據儲存的第一列表中的一個或多個第一記憶體區域的全部區域之後,更新所述第一記憶體區域的映射數據; 基於所述記憶體系統的工作負載確定列表大小,並根據所述列表大小產生包括一個或多個第二記憶體區域的第二列表;以及 在更新所述映射數據之後,存取用於數據儲存的所述第二記憶體區域。
  2. 如請求項1所述的方法,其中,當確定依序寫入操作比隨機寫入操作更頻繁時,所述列表大小被確定為具有第一值,並且當確定隨機寫入操作比依序寫入操作更頻繁時,所述列表大小被確定為具有等於或大於所述第一值的第二值。
  3. 如請求項1所述的方法,其中,當依序寫入操作的頻率變大時,所述列表大小被確定為具有更小值,並且當隨機寫入操作的頻率變大時,所述列表大小被確定為具有更大值。
  4. 如請求項1所述的方法,其進一步包括:在更新所述映射數據之後且在存取所述第二記憶體區域之前,在記錄區域中記錄所述第二列表。
  5. 如請求項4所述的方法,其進一步包括:在每個所述第二記憶體區域每次被完全存取時,在所述記錄區域中記錄關於被完全存取的第二記憶體區域的資訊。
  6. 如請求項5所述的方法,其進一步包括: 從所述記錄區域內的記錄數據檢測最後記錄的列表; 從所述記錄區域內的所述記錄數據檢測最後記錄的記憶體區域; 基於檢測的列表和檢測的記憶體區域確定映射數據丟失範圍;以及 針對丟失範圍執行映射數據恢復工作。
  7. 如請求項5所述的方法,其進一步包括: 從所述記錄區域內的記錄數據檢測最後記錄的列表; 從所述記錄區域內的所述記錄數據檢測最後記錄的記憶體區域; 基於檢測的列表和檢測的記憶體區域確定記憶體區域損壞範圍;以及 針對所述損壞範圍執行數據移動工作。
  8. 如請求項7所述的方法,其在執行所述數據移動工作之前進一步包括: 基於檢測的列表確定被儲存在所述記憶體區域損壞範圍內的數據將要被移動到的移動位置;以及 在所述記錄區域中記錄關於所述記憶體區域損壞範圍的資訊以及所述移動位置。
  9. 如請求項1所述的方法,其中,更新所述映射數據包括:基於工作記憶體內儲存的映射數據更新被儲存在非揮發性記憶體內的映射數據。
  10. 一種用於操作記憶體系統的方法,其包括: 基於所述記憶體系統的工作負載確定列表大小,並根據所述列表大小產生包括一個或多個記憶體區域的列表; 在存取用於數據儲存的所述記憶體區域之前,在記錄區域中記錄所述列表;以及 在存取用於數據儲存的全部所述記憶體區域之後,為所述記憶體區域更新映射數據。
  11. 如請求項10所述方法,其中,在被包括於先前列表內的全部記憶體區域的映射數據被更新後,執行在所述記錄區域內的所述列表的記錄。
  12. 如請求項10所述方法,其中,根據依序寫入操作和隨機寫入操作的頻率確定所述列表大小。
  13. 如請求項10所述的方法,其進一步包括:在每個所述記憶體區域每次被完全存取時,在所述記錄區域中記錄關於被完全存取的記憶體區域的資訊。
  14. 如請求項13所述的方法,其進一步包括: 從所述記錄區域內的記錄數據檢測最後記錄的列表; 從所述記錄區域內的記錄數據檢測最後記錄的記憶體區域; 基於檢測的列表和檢測的記憶體區域確定映射數據丟失範圍;以及 針對丟失範圍執行映射數據恢復工作。
  15. 如請求項13所述的方法,其進一步包括: 從所述記錄區域內的記錄數據檢測最後記錄的列表; 從所述記錄區域內的記錄數據檢測最後記錄的記憶體區域; 基於檢測的列表和檢測的記憶體區域確定記憶體區域損壞範圍;以及 針對所述損壞範圍執行數據移動工作。
  16. 如請求項15所述的方法,其在執行所述數據移動工作之前進一步包括: 基於檢測的列表確定被儲存在所述記憶體區域損壞範圍內的數據將要被移動到的移動位置;以及 在所述記錄區域中記錄關於所述記憶體區域損壞範圍的資訊以及所述移動位置。
  17. 一種用於操作記憶體系統的方法,其包括: 在存取包括於用於數據儲存的第一列表中的一個或多個第一記憶體區域之前,在記錄區域中記錄所述第一列表; 在存取用於數據儲存的全部所述第一記憶體區域之後,更新所述第一記憶體區域的映射數據;以及 在存取包括於用於數據儲存的第二列表中的一個或多個第二記憶體區域之前,在所述記錄區域中記錄所述第二列表, 其中,繼更新所述映射數據之後記錄所述第二列表。
  18. 如請求項17所述的方法,其進一步包括:基於所述記憶體系統的工作負載確定列表大小,並根據所述列表大小產生所述第二列表。
  19. 如請求項17所述的方法,其中,根據依序寫入操作和隨機寫入操作的頻率確定所述列表大小。
  20. 如請求項17所述的方法,其進一步包括:當非正常斷電發生時,對基於所述記錄區域所確定的恢復範圍執行恢復操作。
TW106141243A 2017-02-23 2017-11-27 記憶體系統的操作方法 TWI769193B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020170023891A KR20180097220A (ko) 2017-02-23 2017-02-23 데이터 저장 장치의 동작 방법
KR10-2017-0023891 2017-02-23
??10-2017-0023891 2017-02-23

Publications (2)

Publication Number Publication Date
TW201832085A true TW201832085A (zh) 2018-09-01
TWI769193B TWI769193B (zh) 2022-07-01

Family

ID=63167776

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106141243A TWI769193B (zh) 2017-02-23 2017-11-27 記憶體系統的操作方法

Country Status (4)

Country Link
US (1) US10656846B2 (zh)
KR (1) KR20180097220A (zh)
CN (1) CN108509295B (zh)
TW (1) TWI769193B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877691B2 (en) * 2017-12-29 2020-12-29 Intel Corporation Stream classification based on logical regions

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5664106A (en) * 1993-06-04 1997-09-02 Digital Equipment Corporation Phase-space surface representation of server computer performance in a computer network
US6993679B2 (en) * 2002-02-28 2006-01-31 Sun Microsystems, Inc. System and method for inhibiting reads to non-guaranteed data in remapped portions of a storage medium
US7464246B2 (en) * 2004-09-30 2008-12-09 International Business Machines Corporation System and method for dynamic sizing of cache sequential list
KR100809320B1 (ko) * 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
TWI435329B (zh) * 2009-12-15 2014-04-21 Phison Electronics Corp 快閃記憶體管理方法、快閃記憶體控制器與儲存系統
KR20130019891A (ko) 2011-08-18 2013-02-27 삼성전자주식회사 메타 라이팅 빈도를 줄이기 위한 메타 데이터 라이팅 방법
US20140258595A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for dynamic cache sharing in a flash-based caching solution supporting virtual machines
US10372685B2 (en) * 2014-03-31 2019-08-06 Amazon Technologies, Inc. Scalable file storage service
US9563382B2 (en) * 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer

Also Published As

Publication number Publication date
TWI769193B (zh) 2022-07-01
KR20180097220A (ko) 2018-08-31
CN108509295B (zh) 2022-01-25
US10656846B2 (en) 2020-05-19
US20180239548A1 (en) 2018-08-23
CN108509295A (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
US10866797B2 (en) Data storage device and method for reducing firmware update time and data processing system including the device
US9996297B2 (en) Hot-cold data separation method in flash translation layer
US20190251028A1 (en) Preserving data upon a power shutdown
US11112997B2 (en) Storage device and operating method thereof
US20170220274A1 (en) Data storage device and operating method thereof
US7529879B2 (en) Incremental merge methods and memory systems using the same
US20140095555A1 (en) File management device and method for storage system
US20110231595A1 (en) Systems and methods for handling hibernation data
KR20200113992A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
TW201011767A (en) NAND error management
US20200034081A1 (en) Apparatus and method for processing data in memory system
KR20200033625A (ko) 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
KR20200031852A (ko) 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치
US20160026408A1 (en) Storage device metadata synchronization
US20140325168A1 (en) Management of stored data based on corresponding attribute data
US11294579B2 (en) Mode handling in multi-protocol devices
KR20200087487A (ko) 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
US11567867B2 (en) Controller for storing data having different types in one memory block when SPO occurs, and method of operating the same
US20190227740A1 (en) Atomic write method for multi-transaction
TWI769193B (zh) 記憶體系統的操作方法
US12014074B2 (en) System and method for storing dump data
US11449321B2 (en) Controller and method for installing and executing bridge firmware data
US11392310B2 (en) Memory system and controller
US8850160B2 (en) Adaptive write behavior for a system having non-volatile memory
US11620234B2 (en) Operation-deterministic write operations for data recovery and integrity checks