TWI687807B - 混合記憶體中之資料重新定位 - Google Patents

混合記憶體中之資料重新定位 Download PDF

Info

Publication number
TWI687807B
TWI687807B TW106129582A TW106129582A TWI687807B TW I687807 B TWI687807 B TW I687807B TW 106129582 A TW106129582 A TW 106129582A TW 106129582 A TW106129582 A TW 106129582A TW I687807 B TWI687807 B TW I687807B
Authority
TW
Taiwan
Prior art keywords
memory
data
type
subset
stored
Prior art date
Application number
TW106129582A
Other languages
English (en)
Other versions
TW201818250A (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 TW201818250A publication Critical patent/TW201818250A/zh
Application granted granted Critical
Publication of TWI687807B publication Critical patent/TWI687807B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/0656Data buffering arrangements
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/061Improving I/O performance
    • 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/0647Migration 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/0658Controller construction arrangements
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/10Programming or data input circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本發明包含用於混合記憶體中之資料重新定位之設備、方法及系統。若干項實施例包含:一記憶體,其中該記憶體包含一第一類型之記憶體及一第二類型之記憶體;及一控制器,其經組態以至少部分地基於在對該記憶體執行之程式化操作期間對應於儲存於該第一類型之記憶體中之一資料子集之一位址被存取之一頻率而識別儲存於該第一類型之記憶體中之該資料子集以將其重新定位至該第二類型之記憶體。

Description

混合記憶體中之資料重新定位
本發明一般而言係關於半導體記憶體及方法,且更特定而言,係關於混合記憶體中之資料重新定位。
通常提供記憶體裝置作為電腦或其他電子裝置中之內部半導體積體電路及/或外部可抽換式裝置。存在包含揮發性及非揮發性記憶體之諸多不同類型之記憶體。揮發性記憶體可需要電力來維持其資料,且可包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM),以及其他。非揮發性記憶體可藉由在未被供電時保留所儲存資料而提供持久資料,且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)及磁性隨機存取記憶體)以及其他記憶體。 可將記憶體裝置組合在一起以形成一固態磁碟機(SSD)、一嵌入式多媒體卡(e.MMC)及/或一通用快閃儲存(UFS)裝置。一SSD、e.MMC及/或UFS裝置可包含非揮發性記憶體(例如,NAND快閃記憶體及/或NOR快閃記憶體),及/或可包含揮發性記憶體(例如,DRAM及/或SDRAM)以及各種其他類型之非揮發性及揮發性記憶體。非揮發性記憶體可用於一廣泛範圍之電子應用中,諸如個人電腦、可攜式記憶卡、數位相機、蜂巢式電話、諸如MP3播放器之可攜式音樂播放器、電影播放器及其他電子裝置。 快閃記憶體裝置可包含將資料儲存於諸如一浮動閘極之一電荷儲存結構中之記憶體胞元,舉例而言。快閃記憶體裝置通常使用允許高記憶體密度、高可靠性及低電力消耗之一單電晶體記憶體胞元。電阻可變記憶體裝置可包含可基於一儲存元件(例如,具有一可變電阻之一電阻式記憶體元件)之電阻狀態來儲存資料之電阻式記憶體胞元。 可將記憶體胞元配置成陣列,且可將一陣列架構中之記憶體胞元程式化至一目標(例如,期望)狀態。舉例而言,可將電荷置於一快閃記憶體胞元之電荷儲存架構(例如,浮動閘極)上或自該電荷儲存架構移除以將該胞元程式化至一特定資料狀態。胞元之電荷儲存結構上之所儲存電荷可指示該胞元之一臨限電壓(Vt)。一快閃記憶體胞元之一狀態可藉由感測該胞元之電荷儲存結構上之所儲存電荷(例如,Vt)而判定。 作為一額外實例,電阻式記憶體胞元可經程式化以藉由使電阻式記憶體元件之電阻位準變化而儲存對應於一目標資料狀態之資料。可藉由將一電場源或能源(諸如正電脈衝或負電脈衝(例如,正電壓或電流脈衝或者負電壓或電流脈衝))施加至胞元(例如,施加至胞元之電阻式記憶體元件)達一特定持續時間而將電阻式記憶體胞元程式化至一目標資料狀態(例如,對應於一特定電阻狀態)。可藉由感測回應於一所施加訊問電壓而通過胞元之電流來判定一電阻式記憶體胞元之一狀態。基於胞元之電阻位準而變化之所感測電流可指示胞元之狀態。 可將一單層記憶體胞元(SLC)程式化至可由二進位單位1或0表示之兩個不同資料狀態中之一標定者。可將某些快閃記憶體胞元及電阻式記憶體胞元程式化至兩個以上資料狀態(例如,1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110及1110)中之一標定者。此等胞元可稱為多狀態記憶體胞元、多單位胞元或多層胞元(MLC)。MLC可在不增加記憶體胞元之數目之情況下提供較高密度記憶體,此乃因每一胞元可表示一個以上數字(例如,一個以上位元)。
本發明包含用於混合記憶體中之資料重新定位之設備、方法及系統。若干項實施例包含:一記憶體,其中該記憶體包含一第一類型之記憶體及一第二類型之記憶體;及一控制器,其經組態以至少部分地基於在對該記憶體執行之程式化操作期間對應於儲存於該第一類型之記憶體中之一資料子集之一位址被存取之一頻率而識別儲存於該第一類型之記憶體中之該資料子集以將其重新定位至該第二類型之記憶體。 包含用作次要儲存器(例如,除諸如DRAM或SDRAM之主記憶體之外的及/或與諸如DRAM或SDRAM之主記憶體分離的儲存器)之兩種不同類型之記憶體之記憶體(諸如本文中所闡述之記憶體)可稱為混合記憶體。兩種類型之記憶體中之一者可具有比另一者更快之一存取時間,且將少量資料之程式化重新引導至具有較快存取時間之記憶體可增加混合記憶體之效能(例如,增加速度、增加可靠性及/或減小功率消耗)。此外,將少量資料及/或經頻繁感測之資料自具有較慢存取時間之記憶體重新定位至具有較快存取時間之記憶體可增加混合記憶體之效能。 然而,為以此一方式有效地增加混合記憶體之效能,在資料可經程式化至及/或經重新定位至之具有較快存取時間之記憶體中存在可用自由空間可係有益地,(例如,若具有較快存取時間之記憶體係滿的,則額外資料不可在其中經程式化及/或經重新定位)。本發明之實施例可有效地識別正儲存於具有較快存取時間之記憶體中可重新定位至具有較慢存取時間之記憶體的資料,並將經識別資料重新定位至具有較慢存取時間之記憶體以確保自由空間在具有較快存取時間之記憶體中持續保持可用且承受混合記憶體之高效能。此外,本發明之實施例可有效地識別正儲存於具有較慢存取時間之記憶體中可重新定位至具有較快存取時間之記憶體的資料,並將經識別資料重新定位至具有較快存取時間之記憶體以增加混合記憶體之效能。本發明之實施例可協同地執行此等類型之資料兩者之識別及重新定位,而無需使用可增加功率消耗且減小混合記憶體之效能之資料迴路。 如本文中所使用,「若干個」某物可係指一或多個此類事物。舉例而言,若干個記憶體胞元可係指一或多個記憶體胞元。另外,如本文中所使用之指示符「R」、「B」、「S」及「N」(尤其相對於圖式中之元件符號)指示本發明之若干項實施例可包含如此指定之若干個特定特徵。 本文中之圖遵循其中第一個數字或前幾個數字對應於圖式之圖編號且其餘數字識別圖式中之元件或組件之編號慣例。不同圖之間的類似元件或組件可藉由使用類似數字來識別。舉例而言,206在圖2中可係指元件「06」,且在圖3中一類似元件可指代為306。 圖1圖解說明根據本發明之若干項實施例之具有若干個實體區塊之一記憶體陣列101之一部分之一圖式。記憶體陣列101可係(舉例而言)一NAND快閃記憶體陣列。作為一額外實例,記憶體陣列101可係一儲存級記憶體(SCM)陣列,例如一3D XPoint記憶體陣列、一鐵電RAM (FRAM)陣列或諸如一PCRAM、RRAM或自旋扭矩轉移(STT)陣列之一電阻可變記憶體陣列以及其他陣列。記憶體陣列101可係一混合記憶體之部分,如本文中將進一步(例如,結合圖2)闡述。此外,儘管圖1中未展示,但記憶體陣列101可連同與其操作相關聯之各種周邊電路一起定位於一特定半導體晶粒上。 如圖1中所展示,記憶體陣列101具有若干個記憶體胞元實體區塊107-0 (區塊0)、107-1 (區塊1)、…、107-B (區塊B)。記憶體胞元可係單層胞元及/或例如雙層胞元、三層胞元(TLC)或四層胞元(QLC)之多層胞元。作為一實例,記憶體陣列101中之實體區塊之數目可係128個區塊、512個區塊或1,024個區塊,但實施例並不將記憶體陣列101中實體區塊之數目限定為二的某一特定冪次或任何特定數目。 若干個記憶體胞元實體區塊(例如,區塊107-0、107-1、…、107-B)可包含於一記憶體胞元平面中,且若干個記憶體胞元平面可包含於一晶粒上。舉例而言,在圖1中所展示之實例中,每一實體區塊107-0、107-1、…、107-B可一單個晶粒之一部分。亦即,圖1中所圖解說明之記憶體陣列101之部分可係記憶體胞元之一晶粒。 如圖1中所展示,每一實體區塊107-0、107-1、…、107-B包含耦合至存取線(例如,字線)之若干個記憶體胞元實體列(例如,103-0、103-1、…、103-R)。每一實體區塊中之列(例如,字線)之數目可係32個,但實施例並不限於每實體區塊一特定數目個列103-0、103-1、…、103-R。此外,儘管圖1中未展示,但記憶體胞元可耦合至感測線(例如,資料線及/或數位線)。 如熟習此項技術者將瞭解,每一列103-0、103-1、…、103-R可包含若干個記憶體胞元頁(例如,實體頁)。一實體頁係指一程式化及/或感測單元(例如,作為一功能群組一起經程式化及/或經感測之若干個記憶體胞元)。在圖1中所展示之實施例中,每一列103-0、103-1、…、103-R包括一個記憶體胞元實體頁。然而,本發明之實例並不受如此限制。舉例而言,在若干項實施例中,每一列可包括多個記憶體胞元實體頁(例如,耦合至偶數位元線之一或多個記憶體胞元偶數頁,及耦合至奇數位元線之一或多個記憶體胞元奇數頁)。另外,對於包含多層胞元之實施例,一記憶體胞元實體頁可儲存多個資料頁(例如,邏輯頁) (例如,一上部資料頁及一下部資料頁,其中一實體頁中之每一胞元儲存朝向一上部資料頁之一或多個位元及朝向一下部資料頁之一或多個位元)。 在本發明之若干項實施例中,且如圖1中所展示,一記憶體胞元頁可包括若干個實體區塊105-0、105-1、…、105-S (例如,記憶體胞元之子集)。胞元之每一實體區塊105-0、105-1、…、105-S可儲存若干個資料邏輯區塊(例如,資料字)。另外,每一資料邏輯區塊可對應於一特定資料頁之一部分。作為一實例,儲存於一特定實體區塊中之一第一資料邏輯區塊可對應於一邏輯區塊,該邏輯區塊對應於一第一資料頁,且儲存於特定實體區塊中之一第二資料邏輯區塊可對應於一第二資料頁。每一實體區塊105-0、105-1、…、105-S可儲存系統及/或使用者資料,及/或可包含附加項資料,諸如錯誤校正碼(ECC)資料、邏輯區塊位址(LBA)資料及週期性錯誤資料。 邏輯區塊定址係可由用於識別一資料邏輯區塊之一主機使用之一方案。舉例而言,每一邏輯區塊可對應於一唯一邏輯區塊位址(LBA)。另外,一LBA亦可對應(例如,動態地映射)至一實體位址。一資料邏輯區塊可係若干個資料位元組(例如,256個位元組、512個位元組、1,024個位元組或4,096個位元組)。然而,實施例並不限於此等實例。 應注意,實體區塊107-0、107-1、…、107-B,列103-0、103-1、…、103-R,區塊105-0、105-1、…、105-S及頁之其他組態係可能的。舉例而言,實體區塊107-0、107-1、…、107-B之列103-0、103-1、…、103-R可各自儲存對應於一單個邏輯區塊之資料,該單個邏輯區塊可包含(舉例而言)多於或少於512個資料位元組。 圖2係根據本發明之若干項實施例之包含一主機及呈一記憶體裝置206之形式之一設備之一計算系統200的一方塊圖。如本文中所使用,一「設備」可係指但不限於各種結構或結構組合中之任何者(舉例而言)諸如一或多個電路、一或多個晶粒、一或多個模組、一或多個裝置或者一或多個系統。此外,在若干項實施例中,計算系統200可包含與記憶體裝置206相似之若干個記憶體裝置。 在圖2中所圖解說明之實施例中,記憶體裝置206可包含一第一類型之記憶體(例如,一第一記憶體陣列210)及一第二類型之記憶體(例如,若干個第二記憶體陣列212-1、…、212-N)。記憶體裝置206可係一混合記憶體裝置,其中記憶體裝置206包含係與若干個第二記憶體陣列212-1、…、212-N不同之一類型之記憶體之第一記憶體陣列210。第一記憶體陣列210可係儲存級記憶體(SCM),該儲存級記憶體可係充當記憶體裝置206之記憶體之一非揮發性記憶體,此乃因其具有比若干個第二記憶體陣列212-1、…、212-N快之存取時間。舉例而言,第一記憶體陣列210可係3D XPoint記憶體、FRAM或電阻可變記憶體(諸如PCRAM、RRAM或STT)以及其他。若干個第二記憶體陣列212-1、…、212-N可係NAND快閃記憶體以及其他類型之記憶體。 記憶體陣列210及記憶體陣列212-1、…、212-N可以與先前結合圖1所闡述之記憶體陣列101相似之一方式各自具有若干個記憶體胞元實體區塊。此外,記憶體陣列210及記憶體陣列212-1、…、212-N可包含(例如,儲存)若干個資料子集。每一各別資料子集可包含系統及/或使用者(例如,主機)資料、後設資料及ECC資料(例如,同位位元) (例如,由系統及/或使用者(例如,主機)資料、後設資料及ECC資料(例如,同位位元)構成)。此等資料子集在本文中可稱為大管理單元(LMU),且可包含(舉例而言) 4 kB之主機資料。 此外,記憶體陣列210及/或記憶體陣列212-1、…、212-N可包含(例如,儲存)包含若干個項目之一資料表。表中之每一各別項目可對應於若干個資料子集中之一不同者。舉例而言,表中之每一各別項目可包含指示其各別資料子集是否儲存於記憶體陣列210及/或記憶體陣列212-1、…、212-N中之資料,及指示其各別資料子集在彼陣列中之位置之資料,如本文中將進一步(例如,結合圖4)闡述。每一各別表項目亦可包含指示在其下對應於各別表項目之各別資料子集之一位址在對記憶體陣列210及212-1、…、212-N執行之程式化操作期間已被存取之頻率的資料,如本文中將進一步(例如,結合圖4)闡述。此等項目在本文中可稱為小管理單元(SMU),且可包含(舉例而言) 64 B之資料。在若干項實施例中,表項目之大小可小於SMU之大小。在此等實施例中,每一各別SMU可包含多個表項目。 儘管圖2中所圖解說明之實施例包含第一類型之記憶體之一個記憶體陣列,但本發明之實施例並不如此受限制。舉例而言,在若干項實施例中,記憶體裝置206可包含若干個SCM陣列。然而,記憶體裝置206可包含比第二類型之記憶體少之第一類型之記憶體。舉例而言,記憶體陣列210可儲存比記憶體陣列212-1、…、212-N中所儲存少之資料。 如圖2中所圖解說明,主機202可經由介面204耦合至記憶體裝置206。主機202與記憶體裝置206可用介面204進行通信(例如,發送命令及/或資料)。主機202可係一膝上型電腦、個人電腦、數位相機、數位記錄及回放裝置、行動電話、PDA、記憶體讀卡器、介面集線器以及其他主機系統,且可包含一記憶體存取裝置(例如,一處理器)。熟習此項技術者將瞭解「一處理器」可意欲係一或多個處理器,諸如一並行處理系統、若干協同處理器等。 介面204可呈一標準化實體介面形式。舉例而言,當記憶體裝置206用於計算系統200中之資訊儲存時,介面204可係一串列進階技術附接(SATA)實體介面、一高速周邊組件互連(PCIe)實體介面或一通用串列匯流排(USB)實體介面或一小電腦系統介面(SCSI)以及其他實體連接器及/或介面。然而,一般而言,介面204可提供一介面以用於在記憶體裝置206與具有用於介面204之相容接受器之一主機(例如,主機202)之間傳遞控制、位址、資訊(例如,資料)及/或其他信號。 記憶體裝置206包含控制器208以與主機202且與第一記憶體陣列210及若干個第二記憶體陣列212-1、…、212-N通信。控制器208可發送命令來執行對第一記憶體陣列210及若干個第二記憶體陣列212-1、…、212-N之操作。控制器208可與第一記憶體陣列210及若干個第二記憶體陣列212-1、…、212-N通信以感測(例如,讀取)、程式化(例如,寫入)、移動及/或抹除資料以及其他操作。 控制器208可包含於與記憶體210及212-1、…、212-N相同之實體裝置(例如,相同晶粒)上。另一選擇係,控制器208可包含於通信地耦合至包含記憶體210及212-1、…、212-N之實體裝置的一單獨實體裝置上。在若干項實施例中,控制器208之組件可跨越多個實體裝置(例如,與記憶體相同之晶粒上之某些組件及一不同晶粒、模組或電路板上之某些組件)散佈作為一分散式控制器。 主機202可包含一主機控制器以與記憶體裝置206通信。主機控制器可經由介面204將命令發送至記憶體裝置206。主機控制器可與記憶體裝置206及/或記憶體裝置206上之控制器208通信以讀取、寫入及/或抹除資料以及其他操作。 記憶體裝置206上之控制器208及/或主機202上之主機控制器可包含控制電路及/或邏輯(例如,硬體及韌體)。在若干項實施例中,記憶體裝置206上之控制器208及/或主機202上之主機控制器可係耦合至包含一實體介面之一印刷電路板之一特殊應用積體電路(ASIC)。並且,記憶體裝置206及/或主機202可包含揮發性及/或非揮發性記憶體之一緩衝器以及一暫存器。 在若干項實施例中,控制器208可至少部分地基於在對記憶體陣列210及212-1、…、212-N執行(例如,作為主機寫入命令之一結果而執行)程式化操作期間對應於儲存於第一類型之記憶體中之資料子集之位址被存取之頻率(例如,LBA識別資料子集之頻率)而識別儲存於第一類型之記憶體中(例如,記憶體陣列210中)之資料子集(例如,LMU)以重新定位(例如,遷移)至第二類型之記憶體(例如,記憶體陣列212-1、…、212-N),並將經識別子集自第一類型之記憶體重新定位至第二類型之記憶體。舉例而言,控制器208可自儲存於第一類型之記憶體中之若干個資料子集當中識別在對記憶體陣列210及212-1、…、212-N執行之程式化操作期間最不頻繁地被存取之一資料子集,且將彼資料子集重新定位至第二類型之記憶體。可使用儲存於記憶體陣列210中之表中之資料來執行識別及重新定位,且將在本文中進一步闡述。 此外,在若干項實施例中,控制器208可至少部分地基於在對儲存於第二類型之記憶體中之資料子集執行之感測操作期間所感測之資料之量(例如,由主機讀取命令請求之資料之量)及/或在對記憶體陣列210及212-1、…、212-N執行感測操作期間對應於儲存於第二類型之記憶體中之資料子集之位址被存取之頻率而識別儲存於第二類型之記憶體中之資料子集以將其重新定位至第一類型之記憶體,並將經識別子集自第二類型之記憶體重新定位至第一類型之記憶體。舉例而言,控制器208可判定在對儲存於第二類型之記憶體中之一資料子集執行之一感測操作期間所感測之資料之量是否滿足或超出一特定臨限值,且在判定資料之量並不滿足或超出(例如,小於)特定臨限值之後將彼資料子集重新定位至第一類型之記憶體。本文中將進一步所闡述識別及重新定位。 圖2中所圖解說明之實施例可包含未圖解說明以便不使本發明之實施例模糊之額外電路、邏輯及/或組件。舉例而言,記憶體裝置206可包含位址電路以鎖存透過I/O電路經由I/O連接器提供之位址信號。位址信號可由一列解碼器及一行解碼器接收並解碼以存取記憶體陣列210及212-1、…、212-N。此外,記憶體裝置206可包含與記憶體陣列210-1及212-1、…、212-N分離及/或除記憶體陣列210-1及212-1、…、212-N之外的一主記憶體,例如一DRAM或SDRAM。 圖3圖解說明根據本發明之若干項實施例之一記憶體裝置上之一控制器308。控制器308可係(舉例而言)先前結合圖2所闡述的記憶體裝置206上之控制器208。舉例而言,控制器308可與一主機(例如,圖2中之主機202)及/或記憶體陣列(例如,圖2中之第一記憶體陣列210及/或若干個第二記憶體陣列212-1、…、212-N)通信以讀取、寫入、移動及/或抹除去往及/或來自主機及/或記憶體陣列之資料。 如圖3中所展示,控制器308可包含一前端管理器模組320、一資料與媒體管理器模組330及一後端管理器模組340。前端管理器320可自一主機接收命令且解譯彼等命令。前端管理器320可執行對與命令相關聯之資料邏輯位址之一轉譯。如本文中所使用,一「模組」可包含可用於執行一特定功能之硬體、韌體、軟體及/或邏輯。 資料與媒體管理器330可進一步處理自一主機接收之命令。資料與媒體管理器330可包含資料管理器排程器模組332、媒體轉譯層(MTL)服務模組334及MTL管理器模組336。資料管理器排程器332可判定將執行自一主機接收之命令中之每一者之時間。MTL服務334可包含若干組應用程式開發介面(API)指令以為MTL管理器336提供功能性。舉例而言,MTL服務334可包含API指令以執行邏輯位址至實體位址之轉譯、自記憶體陣列讀取資料及/或將資料寫入至記憶體陣列,以及其他服務。 如圖3中所展示,MTL管理器336可包含表管理器模組338-1、讀取管理器模組338-2、載入管理器模組338-3、寫入管理器模組338-4、清除管理器模組338-5及清理管理器模組338-6以執行對記憶體陣列之操作。表管理器338-1可提供且管理可用於定位儲存於記憶體陣列中之資料(例如,資料子集)且用於識別在其下對應於儲存於記憶體陣列中之資料(例如,資料子集)之位址(例如,LBA)在程式化操作期間已被存取之頻率的資訊(例如,資料)。此資訊可儲存於各類型之記憶體陣列中之一者(例如,陣列210)中之一表中。舉例而言,該表可包含若干項目,其中每一不同項目包含指示一各別資料子集在記憶體陣列中之位置之資料及指示在其下對應於彼各別子集之位址在程式化操作期間已被存取之頻率之資料。 舉例而言,表管理器338-1可藉由產生及儲存用於第一類型之記憶體(例如,陣列210)中之資料之一邏輯轉實體表而提供用於儲存於記憶體裝置206之實體記憶體陣列中之邏輯區塊之邏輯位址至實體位址映射。邏輯轉實體表可在邏輯位址至實體位址映射中包含指示資料是否儲存於第一類型之記憶體(例如,陣列210)及/或第二類型之記憶體(例如,陣列212-1、…、212-N)中之一或多個位元。此等位元在本文中可稱為駐留資料或駐留位元,且將在本文中進一步(例如,結合圖4)闡述。表管理器338-1亦可產生並儲存邏輯轉實體指標以將資料定位於記憶體陣列中。 此外,表管理器338-1可藉由使用一計數器來提供儲存於記憶體陣列中之資料之頻率資訊以在表中產生並儲存指示資料在對記憶體陣列執行之程式化操作期間是否已被存取及/或存取之頻率之一或多個位元。此等位元在本文中可稱為熱度資料或熱度位元,且將在本文中進一步(例如,結合圖4)闡述。此等熱度位元亦可在記憶體之操作期間更新。舉例而言,一資料子集之熱度位元可在記憶體之操作期間週期性地遞減及/或可在子集於一程式化操作期間被存取之後遞減,如本文中將進一步(例如,結合圖5)闡述。 此外,表管理器338-1可將資料子集(例如,每一各別子集之表項目)組織於第一類型之記憶體中之若干個先進先出(FIFO)緩衝器中,其中每一各別緩衝器對應於不同熱度資料。緩衝器可係(舉例而言)一循環緩衝器。一資料子集在一特定緩衝器中之位置及/或資料子集是否在緩衝器中可對應於在其下對應於彼資料子集之位址在程式化操作期間已被存取之頻率,該頻率可對應於與彼位址關聯之資料之年齡。舉例而言,一特定緩衝器中之最舊資料子集及/或已被自彼緩衝器移除(例如,及在緩衝器中用另一子集替換)之資料子集可係對應於彼緩衝器之熱度資料之最不頻繁地被存取之資料子集。將在本文中進一步(例如,結合圖5)闡述此等緩衝器。 讀取管理器338-2可藉由將資料定位於記憶體陣列中及致使將與感測命令相關聯之資料傳送至主機來執行感測(例如,讀取)命令。舉例而言,回應於自主機接收一感測(例如,讀取)命令,讀取管理器338-2可起始一感測操作來感測與命令相關聯之資料。讀取管理器338-2可使用儲存於由表管理器338-1管理之表中之駐留資料來判定在感測操作期間待感測之資料是否儲存於第一類型之記憶體(例如,陣列210)或第二類型之記憶體(例如,陣列212-1、…、212-N)中,且可然後感測來自適當位置之資料並將所感測資料傳送至主機。所感測資料可包括儲存於記憶體陣列中之若干個資料子集中之一或多者中之一部分或全部。 載入管理器338-3可在藉由讀取管理器338-2對第二類型之記憶體(例如,若所感測資料儲存於陣列212-1、…、212-N中)執行感測操作之後至少部分地基於在感測操作期間所感測之資料之量及/或在藉由讀取管理器338-2執行感測操作期間對應於儲存於第二類型之記憶體中之資料子集之位址被存取之頻率而識別儲存於第二類型之記憶體中之一或多個資料子集(例如,LMU)以將其重新定位至第一類型之記憶體(例如,陣列210)。舉例而言,若在由讀取管理器338-2執行之一感測操作期間所感測之資料儲存於第二類型之記憶體中,且若儲存於第一類型之記憶體中之資料之量並不滿足或超出一預定義臨限值,則載入管理器338-3可判定在感測操作期間感測到之資料之量是否滿足或超出一特定臨限值及/或在其下資料已經感測之頻率是否滿足或超出一特定臨限值。若所感測之資料之量並不滿足或超出彼特定臨限值,及/或若在其下資料已經感測之頻率滿足或超出彼特定臨限值,則載入管理器338-3可識別包含所感測資料之資料子集作為重新定位至第一類型之記憶體之子集。 在識別重新定位至第一類型之記憶體之資料子集之後,載入管理器338-3可繼續進行重新定位(例如,遷移)。舉例而言,載入管理器338-3可指令寫入管理器338-4來執行一程式化操作以將在由讀取管理器338-2執行之感測操作期間感測之資料程式化至第一類型之記憶體,且可指令表管理器338-1用所感測資料被程式化到的第一類型之記憶體中之位置來更新表中之經識別子集之位置(例如,駐留)資料。此外,若不存在儲存於第二類型之記憶體中之所感測資料之一備份複本,則載入管理器338-3可使儲存於第二類型之記憶體中之資料之原始版本無效。然而,若存在一備份複本,則無此無效可發生。 在若干項實施例中,經識別子集可係儲存於第一類型之記憶體中之資料子集之一順序群組(例如,叢集)之一部分。在此等實施例中,可將整個子集群組(例如,群組中之所有資料子集,並非僅經識別子集)重新定位至第二類型之記憶體。子集群組之大小可(舉例而言)等於儲存於第一類型之記憶體中之一資料頁之大小。 寫入管理器338-4可藉由將與程式化命令相關聯之資料路由至第一類型之記憶體(例如,陣列210)及/或第二類型之記憶體(例如,陣列212-1、…、212-N)而執行程式化(例如,寫入)命令。舉例而言,回應於自主機接收一程式化命令,寫入管理器338-4可起始一程式化操作以程式化與命令相關聯之資料。 寫入管理器338-4可基於若干項準則來判定是否將資料程式化至第一類型之記憶體、第二類型之記憶體或其兩者。若干項準則可包含經程式化之資料之大小、記憶體陣列中之可用空間之量及/或資料寫入至記憶體陣列之頻率以及其他準則。舉例而言,若儲存於第一類型之記憶體中之資料之量滿足或超出一預定義臨限值,則寫入管理器338-4可將資料程式化至第二類型之記憶體。此外,若儲存於第一類型之記憶體中之資料之量並不滿足或超出預定義臨限值,但待程式化之資料之量滿足或超出一預定義臨限值,則寫入管理器338-4亦可將資料程式化至第二類型之記憶體。然而,若儲存於第一類型之記憶體中之資料之量不滿足或超出彼預定義臨限值,且若待程式化之資料之量不滿足或超出彼預定義臨限值,則寫入管理器338-4可將資料程式化至第一類型之記憶體。 清除管理器338-5可在儲存於第一類型之記憶體(例如,陣列210)中之資料之量滿足或超出彼預定義臨限值之後至少部分地基於在由寫入管理器338-4執行之程式化操作期間對應於儲存於第一類型之記憶體中之資料子集之位址被存取之頻率而識別儲存於第一類型之記憶體中之一或多個資料子集(例如,LMU)以將其重新定位至第二類型之記憶體(例如,陣列212-1、…、212-N)。舉例而言,清除管理器338-5可在預定義臨限值滿足之後或在預定義臨限值已滿足之後發生下一功率循環時立即執行此識別。 作為一實例,清除管理器338-5可自儲存於第一類型之記憶體中之若干個資料子集當中識別在由寫入管理器338-4執行之程式化操作期間最不頻繁地被存取之資料子集作為重新定位至第二類型之記憶體之子集。清除管理器338-5可使用儲存於由表管理器338-1管理之表中之頻率(例如,熱度)資料來識別最不頻繁地被存取之子集。此外,清除管理器338-5可基於哪些子集在由表管理器338-1管理之緩衝器中及/或基於子集在緩衝器中之位置來識別最不頻繁地被存取之子集。舉例而言,清除管理器338-5可將已被自緩衝器移除之子集識別為最不頻繁地被存取之子集。作為一額外實例,清除管理器338-5可基於緩衝器中之每一各別子集之表項目之位置來識別最不頻繁地被存取之子集。本文中將進一步(例如,結合圖5)闡述對最不頻繁地被存取之子集之識別。 在識別資料子集以將其重新定位至第二類型之記憶體之後,清除管理器338-5可繼續進行重新定位(例如,遷移)。舉例而言,若經識別子集之頻率資料指示對應於彼子集之位址在一(例如,一個)程式化操作期間已被存取,則清除管理器338-5可指令讀取管理器338-2來執行一感測操作以感測儲存於經識別子集中之資料,指令寫入管理器338-4來執行一程式化操作以將此所感測資料程式化至第二類型之記憶體、指令表管理器338-1來用所感測資料被程式化到的第二類型之記憶體中之位置來更新表中之經識別子集之位置(例如,駐留)資料且使儲存於第一類型之記憶體中之經識別子集中之資料無效。若經識別子集之頻率資料指示對應於彼子集之位址在任何程式化操作期間未被存取,且若存在儲存於經識別子集中之資料之一備份複本,則清除管理器338-5可檢索在第二類型之記憶體中資料之備份複本所儲存之位置,指令表管理器338-1用此經檢索位置來更新表中之經識別子集之位置(例如,駐留)資料且使儲存於第一類型之記憶體中之經識別子集中之資料無效。若不存在儲存於經識別子集中之資料之一備份複本,則清除管理器338-5可以與結合指示對應於彼子集之位址在一程式化操作期間已被存取之經識別子集之頻率資料所闡述之方式相似之一方式重新定位經識別子集。 清理管理器338-6可將無效資料子集(例如,無效LMU)重設為一預定義值,且相應地更新重設LMU之狀態(例如,將狀態自無效改變為自由)。舉例而言,若藉由主機更新了先前寫入第一類型之記憶體中之資料,且表管理器338-1實施一不適合更新策略,則可將經更新資料寫入第一類型之記憶體中一新的實體位置中,且可使先前資料無效。無效資料可隨後被清理管理器338-6清理。 圖4圖解說明根據本發明之若干項實施例之儲存於記憶體中且由一表管理器管理之一表中之一項目440之一實例。舉例而言,項目440可係儲存於一第一類型之記憶體(例如,先前結合圖2所闡述之可係(舉例而言)SCM之陣列210)中且由先前結合圖3所闡述之表管理器模組338-1管理之一表中之一項目(例如,一SMU)。此外,項目440可對應於儲存於第一類型之記憶體及/或一第二類型之記憶體(例如,先前結合圖2所闡述之可係舉例而言NAND快閃記憶體之陣列212-1、…、212-N)中之一資料子集(例如,LMU)。 如圖4中所展示,項目440可包含一邏輯區塊位址(LBA) 442、頻率(例如,熱度)資料444、駐留資料446及一實體區塊位址(PBA) 448。駐留資料446可指示資料子集是否儲存於第一類型之記憶體(例如,SCM)、第二類型之記憶體(例如,快閃記憶體)或其兩者中,且LBA 442及PBA 448可用於將資料子集定位於其中儲存資料子集之陣列中。 圖4中所展示之表447圖解說明可包含於項目440中之不同可能駐留資料(例如,位元)之實例。在表447中所圖解說明之實例中,駐留資料446可包含可指示資料子集是否儲存於SCM中之一第一位元(例如,一儲存級駐留位元),及可指示資料子集是否儲存於快閃記憶體中之一第二位元(例如,一快閃駐留位元)。舉例而言,如表447中所圖解說明,一儲存級駐留位元0及一快閃駐留位元1指示資料子集儲存於(例如,LBA 442映射至PBA 448以定位資料)快閃記憶體中,一儲存級駐留位元1及一快閃駐留位元0指示資料子集儲存於(例如,LBA 442映射至PBA 448以定位資料) SCM中,且一儲存級駐留位元1及一快閃駐留位元1指示資料子集儲存於(例如,LBA 442映射至PBA 448以定位資料) SCM及快閃記憶體兩者中。儲存級駐留位元及快閃駐留位元兩者皆可針對一未經映射LBA預設為0。 頻率(例如,熱度)資料444可指示在其下對應於(例如,LBA識別)資料子集之位址在程式化操作期間已被存取之頻率。圖4中所展示之表445圖解說明可包含於項目440中之不同可能頻率資料(例如,位元)之實例。在表445中所圖解說明之實例中,頻率資料444可包含兩個位元,該兩個位元可用於指示在其下對應於資料子集之位址可已被存取之四個可能頻率。舉例而言,如表445中所圖解說明,頻率位元00指示資料子集已被自快閃記憶體重新定位至SCM,但在被重新定位之後的任何程式化操作期間還未被存取。頻率位元01指示在程式化操作期間資料子集已被存取一次,此可發生在資料至SCM之一直接寫入期間或發生在子集已被自快閃記憶體重新定位之後對該子集執行之第一次寫入期間。頻率位元10指示在程式化操作期間資料子集已被存取兩次,且頻率位元11指示在程式化操作期間資料子集已被存取三次或更多次。 圖5圖解說明根據本發明之若干項實施例之用於識別資料以重新定位於記憶體中之之一程序之一概念性實例550。舉例而言,圖5圖解說明用於識別儲存於一第一類型之記憶體中之資料子集(例如,LMU)以將其重新定位至一第二類型之記憶體之一實例性程序。第一類型之記憶體可係(舉例而言)先前結合圖2所闡述之陣列210 (例如,SCM),第二類型之記憶體可係(舉例而言)結合圖2所闡述之陣列212-1、…、212-N (例如,NAND快閃記憶體),且程序可分別藉由(舉例而言)先前結合圖2及圖3所闡述之控制器208及/或308執行。由圖5中所圖解說明之圓圈表示資料子集。舉例而言,圖5中所圖解說明之每一圓圈表示儲存於第一類型之記憶體中之一不同資料子集。 如先前本文中所闡述,資料子集中之每一者可具有與其相關聯之儲存於第一類型之記憶體之表中之頻率(例如,熱度)資料,該頻率(例如,熱度)資料指示在其下對應於彼各別資料子集之位址在對記憶體執行之程式化操作期間已被存取之頻率。在圖5中所圖解說明之實例中,資料子集中每一者與四個可能頻率值(例如,00、01、10或11)中之每一者相關聯,此與先前結合圖4所闡述之頻率資料(例如,位元)相似,(例如,與位元00相關聯之資料子集已被自快閃記憶體重新定位至SCM,但在被重新定位之後的任何程式化操作期間還未被存取,在程式化操作期間與位元01相關聯之資料子集已被存取一次,在程式化操作期間與位元10相關聯之資料子集已被存取兩次且在程式化操作期間與位元11相關聯之資料子集已被存取三次或更多次)。集合552-1包括與位元00相關聯之資料子集,集合552-2包括與位元01相關聯之資料子集,集合552-3包括與位元10相關聯之資料子集且集合552-4包括與位元11相關聯之資料子集。 如先前本文中所闡述,可至少部分地將資料子集552組織(例如,藉由先前結合圖3所闡述之表管理器338-1)於第一類型之記憶體中之FIFO緩衝器558中。在圖5中所圖解說明之實例中,第一類型之記憶體包含四個FIFO緩衝器(例如,558-1、558-2、558-3及558-4),其中與頻率位元00相關聯之資料子集(例如,集合552-1中之資料子集)組織於緩衝器558-1中,與頻率位元01相關聯之資料子集(例如,集合552-2中之資料子集)組織於緩衝器558-2中,與頻率位元10相關聯之資料子集(例如,集合552-3中之資料子集)組織於緩衝器558-3中且與頻率位元11相關聯之資料子集(例如,集合552-4中之資料子集)組織於緩衝器558-4中。 可根據資料子集在一程式化操作期間最近被存取之時間而將其組織於每一各別緩衝器558-1、558-2、558-3及558-4中。如此,一子集在一各別緩衝器558-1、558-2、558-3及558-4中之位置可提供對在其下對應於彼子集之位址在程式化操作期間已被存取之頻率之一進一步指示。此外,每一各別緩衝器558可比各別資料子集552小,使得根據資料子集最近被存取之時間僅組織經較最近存取之資料。 舉例而言,在將一資料子集自快閃記憶體重新定位至SCM時,可將子集置於緩衝器558-1中之第一(例如,最新)位置中,如圖5中所圖解說明。當將另一資料子集自快閃記憶體重新定位至SCM時,可將彼子集置於緩衝器558-1中之第一位置中,且可將第一子集移動至緩衝器558-1中之下一位置中,如圖5中所圖解說明。此程序可隨著將額外資料子集自快閃記憶體重新定位至SCM而繼續直至將緩衝器558-1填滿為止(例如,直至已將一資料子集移動至緩衝器558-1中之最後位置為止)。如此,一子集在緩衝器558-1中之位置越舊,彼子集越不頻繁地被存取。舉例而言,在緩衝器558-1中之最後(例如,最舊)位置中之資料子集在緩衝器558-1中之資料子集當中最不頻繁地被存取。 當將一資料子集自快閃記憶體重新定位至SCM同時緩衝器558-1被填滿時,可藉由將處於最後位置中之資料子集(例如,最舊資料子集)自緩衝器558-1移除且將緩衝器558-1中之各別子集彼此移動至其在緩衝器558-1中之各別下一位置而在緩衝器558-1中為彼資料子集創造空間,如圖5中所圖解說明。可然後將新經重新定位之資料子集置於緩衝器558-1中之第一(例如,最新)位置中。可(舉例而言)使用一循環緩衝器(例如,緩衝器558-1可係一循環緩衝器)來實施此程序。集合552-1之子集554-1包括已被自集合552-1中之緩衝器558-1移除之資料子集,如圖5中所圖解說明。 如此,一資料子集是否已被自緩衝器558-1移除可提供對在其下對應於彼子集之位址在程式化操作期間已被存取之頻率之一進一步指示。舉例而言,一資料子集是否已被自緩衝器558-1移除可提供對資料之年齡之一指示,藉此在最近寫入之資料與最舊資料之間進行區分。舉例而言,已被自緩衝器558-1移除之資料子集(例如,子集554-1中之資料子集)係在與頻率位元00相關聯之資料子集當中最不頻繁地被存取之資料子集(例如,集合552-1中之資料子集)。如此,可將已被自緩衝器558-1移除之子集中之一或多者識別為用以自第一類型之記憶體(例如,SCM)重新定位至第二類型之記憶體(例如,快閃記憶體)之資料子集。 舉例而言,可將已被自緩衝器558-1移除之一子集群組(例如,叢集)識別為用以自SCM重新定位至快閃記憶體之資料子集。舉例而言,在圖5中所圖解說明之實例中,已將子集554-1中之資料子集群組556-1識別為用以重新定位之子集。此一群組可係來自緩衝器558-1之一順序子集群組,該順序子集群組之大小等於儲存於快閃記憶體中之一資料頁之大小。 如圖5中所展示,在針對集合552-1中之一資料子集發生第一程式化操作存取之後,可將資料子集之頻率位元自00更新(例如,遞增)至01,且可將資料子集自集合552-1移動至集合552-2。舉例而言,可將資料子集置於集合552-2中之緩衝器558-2中之第一(例如,最新)位置中,如圖5中所圖解說明。此外,可將其第一程式化操作存取作為至SCM之一直接寫入之一部分發生之一資料子集置於集合552-2中之緩衝器558-2中之第一位置中,如圖5中所圖解說明。 當另一資料子集經受其第一程式化操作時,可將彼子集置於緩衝器558-2中之第一位置中,且可將第一子集移動至緩衝器558-2中之下一位置,如圖5中所圖解說明。此程序可隨著額外資料子集經受其各別第一程式化操作而繼續直至將緩衝器558-2填滿為止。如此,一子集在緩衝器558-2中之位置越舊,彼子集越不頻繁地被存取(以與針對緩衝器558-1闡述之方式相似之一方式)。 在一資料子集經受其第一程式化操作同時緩衝器558-2被填滿時,可藉由將處於最後位置中之資料子集(例如,最舊資料子集)自緩衝器558-2移除且將緩衝器558-2中之各別子集彼此移動至其在緩衝器558-2中之各別下一位置而在緩衝器558-2中為彼子集創造空間,如圖5中所圖解說明。可然後將新經程式化之資料子集置於緩衝器558-2中之第一位置中。集合552-2之子集554-2包括已被自集合552-2中之緩衝器558-2移除之資料子集,如圖5中所圖解說明。 如此,一資料子集是否已被自緩衝器558-2移除可提供對在其下對應於彼子集之位址在程式化操作期間已被存取之頻率之一進一步指示。舉例而言,已被自緩衝器558-2移除之資料子集(例如,子集554-2中之資料子集)係與頻率位元01相關聯之資料子集當中最不頻繁地被存取之資料子集(例如,集合552-2中之資料子集)。如此,可將已被自緩衝器558-2移除之子集中之一或多者識別為用以自第一類型之記憶體(例如,SCM)重新定位至第二類型之記憶體(例如,快閃記憶體)之資料子集。 舉例而言,可將已被自緩衝器558-2移除之一子集群組(例如,叢集)識別為用以自SCM重新定位至快閃記憶體之資料子集。舉例而言,在圖5中所圖解說明之實例中,已將子集554-2中之資料子集群組556-2識別為重新定位之子集(例如,連同子集554-1中之資料子集一起)。此一群組可係來自緩衝器558-2之一順序子集群組,該順序子集群組之大小等於儲存於快閃記憶體中之一資料頁之大小。 如圖5中所展示,在針對集合552-2中之一資料子集發生第二程式化操作存取之後,可將資料子集之頻率位元可自01更新(例如,遞增)至10,且可將資料子集自集合552-2移動至集合552-3。舉例而言,可將資料子集置於集合552-3中之緩衝器558-3中之第一位置中,如圖5中所圖解說明。當另一資料子集經受其第二程式化操作,可將彼子集置於緩衝器558-3中之第一位置,且可將第一子集移動至緩衝器558-3中之下一位置,且此程序可隨著額外資料子集經受其各別第二程式化操作而繼續直至將緩衝器558-3填滿為止(以與針對緩衝器558-1及558-2所闡述之方式相似之一方式)。 在一資料子集經受其第二程式化操作同時緩衝器558-3被填滿時,可藉由將處於最後位置中之資料子集自緩衝器558-3移除且將緩衝器558-3中之各別子集彼此移動至其在緩衝器558-3中之各別下一位置而在緩衝器558-3中為彼子集創造空間,如圖5中所圖解說明。可然後將新經程式化之資料子集置於緩衝器558-3中之第一位置中。集合552-3之子集554-3包括已被自集合552-3中之緩衝器558-3移除之資料子集,且可包含一子集群組(例如,叢集) 556-3,如圖5中所圖解說明。 如圖5中所展示,可將已被自緩衝器558-3移除之資料子集(例如,子集554-3中之資料子集)之頻率位元自10週期性地更新(例如,遞減)至01,且可將此等資料子集自集合552-3移動至集合552-2。舉例而言,可將此等資料子集置於集合552-2之子集554-2中,如圖5中所圖解說明。可(舉例而言)在對記憶體執行一預定義數目個程式化操作之後發生及/或可以一循環執行次序發生對資料子集之週期性更新。 如圖5中所展示,在針對集合552-3中之一資料子集發生第三程式化操作存取之後,可將資料子集之頻率位元自10更新(例如,遞增)至11,且可將資料子集自集合552-3移動至集合552-4。舉例而言,可將資料子集置於集合552-4中之緩衝器558-4中之第一位置中,如圖5中所圖解說明。當另一資料子集經受其第三程式化操作時,可將彼子集置於緩衝器558-4中之第一位置中,且可將第一子集移動至緩衝器558-4中之下一位置,且此程序可隨著額外資料子集經受其各別第三程式化操作而繼續直至將緩衝器558-4填滿為止(以與針對緩衝器558-1及558-2以及558-3所闡述之方式相似之一方式)。 在一資料子集經受其第三程式化操作同時緩衝器558-4被填滿時,可藉由將處於最後位置中之資料子集自緩衝器558-4移除且將緩衝器558-4中之各別子集彼此移動至其在緩衝器558-4中之各別下一位置而在緩衝器558-4中為彼子集創造空間,如圖5中所圖解說明。可然後將新經程式化之資料子集置於緩衝器558-4中之第一位置中。集合552-4之子集554-4包括已被自集合552-4中之緩衝器558-4移除之資料子集,且可包含一子集群組(例如,叢集) 556-4,如圖5中所圖解說明。 如圖5中所展示,可將已被自緩衝器558-4移除之資料子集(例如,子集554-4中之資料子集)之頻率位元自11週期性地更新(例如,遞減)至10,且可將此等資料子集自集合552-4移動至集合552-3。舉例而言,可將此等資料子集置於集合552-3之子集554-3中,如圖5中所圖解說明。週期性更新可(舉例而言)與結合集合552-3所闡述之週期性更新同時發生(例如,兩者皆可作為同一週期性更新之部分發生)。然而,應注意,在圖5中所圖解說明之實例中,此週期性更新並不包含更新已被自緩衝器558-2或558-1 (例如,子集554-2或子集554-1中之資料子集)移除之資料子集的頻率位元。亦即,已被自緩衝器558-2及緩衝器558-1移除之資料子集的頻率位元並不作為週期性更新之一部分遞減。 圖6A至圖6B圖解說明根據本發明之若干項實施例之用於操作記憶體(例如,先前結合圖2所闡述之記憶體210 (例如,SCM)及212-1、…、212-N (例如,快閃記憶體))之一方法660。可分別藉由(舉例而言)先前結合圖2及圖3所闡述之控制器208及/或308來執行方法660。 在區塊662處,方法660包含起始一程式化操作以將資料程式化至記憶體,且在區塊664處方法660包含判定儲存於SCM中之資料之量是否滿足或超出一預定義臨限值,例如,SCM是否已填滿或接近於填滿(例如,在記憶體之操作期間並未頻繁地滿足或超出一臨限值)。 若判定儲存於SCM中之資料之量並不滿足或超出此預定義臨限值,則在區塊666處判定在程式化操作期間待程式化之資料之量是否滿足或超出一預定義臨限值,例如4 KB、128 KB或512 KB。若判定待程式化之資料之量滿足或超出此預定義臨限值,則可在區塊668處將資料程式化至快閃記憶體。然而,若判定待程式化之資料之量並不滿足或超出此預定義臨限值,則可在區塊670處將資料程式化至SCM。4 KB之一預定義臨限值可確保將使僅少量資料程式化至SCM,128 KB之一預定義臨限值可確保將使涉及隨機寫入存取之資料程式化至SCM,且512 KB之一預定義臨限值可確保使所有資料程式化至SCM。 若在區塊664處判定儲存於SCM中之資料之量滿足或超出預定義臨限值,則在區塊668處在程式化操作期間將待程式化之資料程式化至快閃記憶體,且方法660亦進行至區塊672。在區塊672處,方法660包含識別儲存於SCM中之一或多個資料子集(例如,LMU)以重新定位(例如,遷移)至快閃記憶體。可至少部分地基於在其下對應於儲存於SCM中之資料子集之位址(例如,LBA)在對記憶體執行之先前程式化操作期間已被存取之頻率來識別子集,如先前本文中所闡述。舉例而言,經識別子集可包含還未被存取及/或已被存取一次之子集,如先前本文中所闡述。 在區塊674處,方法660包含判定經識別子集是否具有與其相關聯之指示經識別子集在先前程式化操作期間已被存取一次之頻率資料(例如,先前結合圖4及圖5所闡述之頻率資料01)。若判定經識別子集具有與其相關聯之指示其在先前程式化操作期間已被存取一次之頻率資料,則可在區塊676處感測儲存於經識別子集中之資料,可在區塊678處將此所感測資料程式化至快閃記憶體,可在區塊680處用所感測資料被程式化到的快閃記憶體中之位置來更新儲存於SCM中之一表中之經識別子集之位置(例如,駐留)資料(如先前本文中所闡述),且可在區塊682處使儲存於SCM中之經識別子集中之資料無效。若判定經識別子集不具有與其相關聯之指示經識別子集在先前程式化操作期間已經被存取一次之頻率資料,則方法660進行至區塊681。 在區塊681處,方法660包含判定經識別子集是否具有與其相關聯之指示經識別子集在先前程式化操作期間未被存取之頻率資料(例如,先前結合圖4及圖5所闡述之頻率資料00)。若判定經識別子集不具有與其相關聯之指示其在先前程式化操作期間未被存取之頻率資料,則在區塊683處方法660結束。若判定經識別子集具有與其相關聯之指示其在先前程式化操作期間未經存取之頻率資料,則方法660進行至區塊684處。 在區塊684處,方法660包含判定是否存在儲存於快閃記憶體中之經識別子集中之資料之一備份複本。若存在儲存於快閃記憶體中之資料之一備份複本,則可在區塊686處在檢索資料之備份複本在快閃記憶體中所儲存之一位置,可在區塊688處用所檢索位置更新經識別子集之位置資料,且可在區塊690處使儲存於SCM中之經識別子集中之資料無效。若快閃記憶體中未儲存有資料之一備份複本,則可在區塊692處感測儲存於經識別子集中之資料,可在區塊694處將此所感測資料程式化至快閃記憶體,可在區塊696處用所感測資料被程式化到的快閃記憶體中之位置來更新處儲存於SCM中之一表中之經識別子集之位置(例如,駐留)資料(如先前本文中所闡述),且可在區塊698處使儲存於SCM中之經識別子集中之資料無效。 圖7圖解說明根據本發明之若干項實施例之用於操作記憶體(例如先前結合圖2所闡述之記憶體210 (例如,SCM)及212-1、…、212-N (例如,快閃記憶體))之一方法761。可分別藉由(舉例而言)先前結合圖2及圖3所闡述之控制器208及/或308來執行方法761。 在區塊763處,方法761包含起始一感測操作以感測儲存於記憶體中之資料,且在區塊765處方法761包含判定在感測操作期間待感測之資料是否儲存於快閃記憶體中。舉例而言,可使用儲存於SCM中之一表中之位置(例如,駐留)資料來做出此判定,如先前本文中所闡述。若判定待感測之資料未儲存於快閃記憶體中,則可在區塊767處感測來自SCM之資料。若判定待感測之資料儲存於快閃記憶體中,則可在區塊769處感測來自快閃記憶體之資料,且方法761亦進行至區塊771。 在區塊771處,方法761包含判定儲存於SCM中之資料之量是否滿足或超出一預定義臨限值。此臨限值可係(舉例而言)在圖6A之區塊664處所使用之相同臨限值。若判定儲存於SCM中之資料之量滿足或超出預定義臨限值,則在區塊773處方法761結束。若判定儲存於SCM中之資料之量並不滿足或超出預定義臨限值,則方法761進行至區塊775。 在區塊775處,方法761包含判定在感測操作期間自快閃記憶體感測之資料之量是否滿足或超出一特定臨限值,例如4 KB或512 KB。4 KB之一臨限值可確保將使僅少量所感測資料重新定位至SCM,而512 KB之一臨限值可確保將使所有所感測資料重新定位至SCM。若判定在感測操作期間所感測之資料之量滿足或超出特定臨限值,則在區塊777處方法761結束。若判定在感測操作期間所感測之資料之量並不滿足或超出特定臨限值,則方法761進行至區塊779。 在區塊779處,方法761包含判定是否需要在感測操作期間所感測資料之一備份複本。此判定可係(舉例而言)對一組態位元之一檢查。若判定不需要所感測資料之一備份複本,則在區塊781處將所感測資料程式化至SCM,可在區塊783處用所感測資料被程式化到的SCM中之位置來更新資料子集之位置資料,且可在區塊785處使儲存於快閃記憶體中之原始資料無效。若判定需要所感測資料之一備份複本,則可在區塊787處將所感測資料程式化至SCM,且可在區塊789處用所感測資料被程式化到的SCM中之位置來更新資料子集之位置資料。 儘管本文中已圖解說明及闡述了具體實施例,但熟習此項技術者將瞭解旨在達成相同結果之配置可替代所展示之具體實施例。本發明意欲涵蓋本發明之若干項實施例之變更形式或變化形式。應理解,已以一說明性方式而非一限定性方式做出以上說明。在審閱以上說明之後,熟習此項技術者將明瞭以上實施例之組合及在本文中未具體闡述之其他實施例。本發明之若干項實施例之範疇包含其中使用上述結構及方法之其他應用。因此,應參考隨附申請專利範圍以及此等申請專利範圍授權之等效內容之全部範圍來判定本發明之若干項實施例之範疇。 在前述實施方式中,出於簡化本發明之目之將某些特徵一起分群於一單項實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一技術方案中更多之特徵之一意圖。而是,如以下申請專利範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,特此將以下申請專利範圍併入至實施方式中,其中每一技術方案獨立地作為一單獨實施例。
00‧‧‧頻率值/頻率位元/位元01‧‧‧頻率值/頻率位元/位元10‧‧‧頻率值/頻率位元/位元11‧‧‧頻率值/頻率位元/位元101‧‧‧記憶體陣列103-0‧‧‧記憶體胞元實體列/列103-1‧‧‧記憶體胞元實體列/列103-R‧‧‧記憶體胞元實體列/列105-0‧‧‧實體區塊/區塊105-1‧‧‧實體區塊/區塊105-S‧‧‧實體區塊/區塊107-0‧‧‧記憶體胞元實體區塊/實體區塊/區塊107-1‧‧‧記憶體胞元實體區塊/實體區塊/區塊107-B‧‧‧記憶體胞元實體區塊/實體區塊/區塊200‧‧‧計算系統202‧‧‧主機204‧‧‧介面206‧‧‧記憶體裝置208‧‧‧控制器210‧‧‧第一記憶體陣列/記憶體陣列/記憶體/陣列212-1‧‧‧第二記憶體陣列/記憶體陣列/記憶體/陣列212-N‧‧‧第二記憶體陣列/記憶體陣列/記憶體/陣列308‧‧‧控制器320‧‧‧前端管理器模組/前端管理器330‧‧‧資料與媒體管理器模組/資料與媒體管理器332‧‧‧資料管理器排程器模組/資料管理器排程器334‧‧‧媒體轉譯層服務模組/媒體轉譯層服務336‧‧‧媒體轉譯層管理器模組/媒體轉譯層管理器338-1‧‧‧表管理器模組/表管理器338-2‧‧‧讀取管理器模組/讀取管理器338-3‧‧‧載入管理器模組/載入管理器338-4‧‧‧寫入管理器模組/寫入管理器338-5‧‧‧清除管理器模組/清除管理器338-6‧‧‧清理管理器模組/清理管理器340‧‧‧後端管理器模組440‧‧‧項目442‧‧‧邏輯區塊位址444‧‧‧頻率資料445‧‧‧表446‧‧‧駐留資料447‧‧‧表448‧‧‧實體區塊位址550‧‧‧概念性實例552-1‧‧‧集合552-2‧‧‧集合552-3‧‧‧集合552-4‧‧‧集合554-1‧‧‧子集554-2‧‧‧子集554-3‧‧‧子集554-4‧‧‧子集556-1‧‧‧資料子集群組556-2‧‧‧資料子集群組556-3‧‧‧子集群組556-4‧‧‧子集群組558-1‧‧‧先進先出緩衝器/緩衝器558-2‧‧‧先進先出緩衝器/緩衝器558-3‧‧‧先進先出緩衝器/緩衝器558-4‧‧‧先進先出緩衝器/緩衝器
圖1圖解說明根據本發明之若干項實施例之具有若干個實體區塊之一記憶體陣列之一部分之一圖式。 圖2係根據本發明之若干項實施例之包含一主機及呈一記憶體裝置之形式之一設備之一計算系統之一方塊圖。 圖3圖解說明根據本發明之若干項實施例之一記憶體裝置上之一控制器。 圖4圖解說明根據本發明之若干項實施例之儲存於記憶體中且由一表管理器管理之一表中之一項目之一實例。 圖5圖解說明根據本發明之若干項實施例之用於識別資料以重新定位於記憶體中之一程序之一概念性實例。 圖6A至圖6B圖解說明根據本發明之若干項實施例之用於操作記憶體之一方法。 圖7圖解說明根據本發明之若干項實施例之用於操作記憶體之一方法。
308‧‧‧控制器
320‧‧‧前端管理器模組/前端管理器
330‧‧‧資料與媒體管理器模組/資料與媒體管理器
332‧‧‧資料管理器排程器模組/資料管理器排程器
334‧‧‧媒體轉譯層服務模組/媒體轉譯層服務
336‧‧‧媒體轉譯層管理器模組/媒體轉譯層管理器
338-1‧‧‧表管理器模組/表管理器
338-2‧‧‧讀取管理器模組/讀取管理器
338-3‧‧‧載入管理器模組/載入管理器
338-4‧‧‧寫入管理器模組/寫入管理器
338-5‧‧‧清除管理器模組/清除管理器
338-6‧‧‧清理管理器模組/清理管理器
340‧‧‧後端管理器模組

Claims (18)

  1. 一種記憶體設備,其包括:一記憶體,其中該記憶體包含一第一類型之記憶體及一第二類型之記憶體;及一控制器,其經組態以:在判定對該記憶體執行之程式化操作期間對應於儲存於該第一類型之記憶體中之一資料子集之一位址最不頻繁地被存取之後識別儲存於該第一類型之記憶體中之該資料子集以將其重新定位至該第二類型之記憶體;設定一臨限資料量,其用於判定是否將儲存於該第二類型之記憶體中之資料重新定位至該第一類型之記憶體;在判定在對儲存於該第二類型之記憶體中之一資料子集執行一感測操作期間所感測之一資料量不滿足或超出該臨限資料量之後識別儲存於該第二類型之記憶體中之該資料子集以將其重新定位至該第一類型之記憶體;及在判定該感測操作期間所感測之該資料量不滿足該臨限資料量時,起始將儲存於該第二類型之記憶體中之該已識別資料子集自該第二類型之記憶體至該第一類型之記憶體之一重新定位。
  2. 如請求項1之記憶體設備,其中指示在對該記憶體執行之程式化操作期間對應於儲存於該第一類型之記憶體中之該資料子集之該位址被存取之該頻率的資料包含於該第一類型之記憶體中。
  3. 如請求項1之記憶體設備,其中該控制器經組態以至少部分地基於儲存於該第一類型之記憶體中之該資料子集在該第一類型之記憶體中之一先進先出(FIFO)緩衝器中之一位置而識別該資料子集以將其重新定位至該第二類型之記憶體。
  4. 一種記憶體設備,其包括:一記憶體,其中該記憶體包含一第一類型之記憶體及一第二類型之記憶體;及一控制器,其經組態以:設定一臨限資料量,其用於判定是否將儲存於該第一類型之記憶體中之資料重新定位至該第二類型之記憶體;在判定在對儲存於該第一類型之記憶體中之一資料子集執行之一感測操作期間所感測之一資料量不滿足或超出該臨限資料量之後識別儲存於該第一類型之記憶體中之該資料子集以將其重新定位至該第二類型之記憶體;在判定該感測操作期間所感測之該資料量不滿足該臨限資料量時,起始將儲存於該第一類型之記憶體中之該已識別資料子集自該第一類型之記憶體至該第二類型之記憶體之一重新定位;及在判定在對該記憶體執行之程式化操作期間對應於儲存於該第一類型之記憶體中之該資料子集之一位址最不頻繁地被存取之後識別儲存於該第二類型之記憶體中之一資料子集以將其重新定位至該第一類型之記憶體。
  5. 如請求項4之記憶體設備,其中該控制器經組態以在對儲存於該第一類型之記憶體中之該資料子集執行之該感測操作之後識別儲存於該第一類型之記憶體中之該資料子集以將其重新定位至該第二類型之記憶體。
  6. 一種用於操作記憶體之方法,其包括:在判定若干個資料子集當中一第一資料子集在對該記憶體執行之程式化操作期間最不頻繁地被存取之後識別該第一資料子集以將其重新定位至一第二類型之記憶體,其中該若干個資料子集儲存於一第一類型之記憶體中;設定一臨限資料量,其用於判定是否將儲存於該第二類型之記憶體中之資料重新定位至該第一類型之記憶體;及在判定在對儲存於該第二類型之記憶體中之一資料子集執行一感測操作期間所感測之一資料量不滿足或超出該臨限資料量之後識別儲存於該第二類型之記憶體中之該資料子集以將其重新定位至該第一類型之記憶體;將該經識別第一資料子集自該第一類型之記憶體重新定位至該第二類型之記憶體;及在判定該感測操作期間所感測之該資料量不滿足該臨限資料量時,將該經識別第二資料子集自該第二類型之記憶體重新定位至該第一類型之記憶體。
  7. 如請求項6之方法,其中在對該記憶體執行之程式化操作期間最不頻 繁地被存取之該第一資料子集係該第一類型之記憶體中之一先進先出(FIFO)緩衝器中之一最舊資料子集。
  8. 如請求項6至7中任一項之方法,其中在對該記憶體執行之程式化操作期間最不頻繁地被存取之該第一資料子集係已自該第一類型之記憶體中之一先進先出(FIFO)緩衝器移除之一資料子集。
  9. 如請求項6至7中任一項之方法,其中:該第一類型之記憶體包含若干個先進先出(FIFO)緩衝器,其中:該若干個FIFO緩衝器中之一第一者包含已自該第二類型之記憶體重新定位至該第一類型之記憶體且在被重新定位之後在對該記憶體執行之程式化操作期間未被存取之儲存於該第一類型之記憶體中之資料子集;該若干個FIFO緩衝器中之一第二者包含在對該記憶體執行之程式化操作期間被存取一次之儲存於該第一類型之記憶體中之資料子集;該若干個FIFO緩衝器中之一第三者包含在對該記憶體執行之程式化操作期間被存取兩次之儲存於該第一類型之記憶體中之資料子集;該若干個FIFO緩衝器中之一第四者包含在對該記憶體執行之程式化操作期間被存取三次或更多次之儲存於該第一類型之記憶體中之資料子集;且在對該記憶體執行之程式化操作期間最不頻繁地被存取之該第一資 料子集係已自該若干個FIFO緩衝器中之該第一者或該若干個FIFO緩衝器中之該第二者移除之一資料子集。
  10. 一種用於操作記憶體之方法,其包括:設定一臨限資料量,其用於判定是否將儲存於一第一類型之記憶體中之資料重新定位至一第二類型之記憶體;判定在對儲存於該第一類型之記憶體中之一第一資料子集執行之一感測操作期間所感測之一資料量是否滿足或超出該臨限資料量;在判定該資料量並不滿足或超出該臨限資料量之後將該第一資料子集自該第一類型之記憶體重新定位至該第二類型之記憶體;在判定儲存於該第二類型之記憶體中之一第二子集資料在對該記憶體執行之程式化操作期間較不頻繁地被存取之後識別該第二資料子集以將其重新定位至該第一類型之記憶體;及將該第二資料子集自該第二類型之記憶體重新定位至該第一類型之記憶體。
  11. 如請求項10之方法,其中:該第一資料子集係儲存於該第一類型之記憶體中之一資料子集群組中之一個資料子集;且該方法包含在判定該資料量並不滿足或超出臨限資料值之後將該資料子集群組自該第一類型之記憶體重新定位至該第二類型之記憶體。
  12. 如請求項10之方法,其中將該第一資料子集自該第一類型之記憶體 重新定位至該第二類型之記憶體包含:執行一程式化操作以將在對該第二類型之記憶體之該感測操作期間所感測之資料程式化;及用該所感測資料被程式化到的該第二類型之記憶體中之一位置來更新該第一資料子集之位置資料。
  13. 如請求項12之方法,其中將該第一資料子集自該第一類型之記憶體重新定位至該第二類型之記憶體包含使儲存於該第一類型之記憶體中之該第一資料子集中之資料無效。
  14. 一種記憶體設備,其包括:一記憶體,其中該記憶體包含一第一類型之記憶體及一第二類型之記憶體;及一控制器,其經組態以:在判定對該記憶體執行之程式化操作期間對應於儲存於該第一類型之記憶體中之資料子集之位址最不頻繁地被存取之後識別儲存於該第一類型之記憶體中之該等資料子集以將其重新定位至該第二類型之記憶體;設定一臨限資料量,其用於判定是否將儲存於該第二類型之記憶體中之資料重新定位至該第一類型之記憶體;在判定在對儲存於該第二類型之記憶體中之資料子集執行之感測操作期間所感測之一資料量不滿足或超出該臨限資料量之後識別儲存於該第二類型之記憶體中之該等資料子集以將其重新定位至該 第一類型之記憶體;及在判定該感測操作期間所感測之該資料量不滿足該臨限資料量時,起始將儲存於該第二類型之記憶體中之該已識別資料子集自該第二類型之記憶體至該第一類型之記憶體之一重新定位。
  15. 如請求項14之記憶體設備,其中該控制器包含:一第一模組,其經組態以識別儲存於該第一類型之記憶體中之該等資料子集以將其重新定位至該第二類型之記憶體;及一第二模組,其經組態以識別儲存於該第二類型之記憶體中之該等資料子集以將其重新定位至該第一類型之記憶體。
  16. 如請求項14至15中任一項之記憶體設備,其中該控制器經組態以在儲存於該第一類型之記憶體中之一資料量滿足或超出一預定義臨限值之後識別儲存於該第一類型之記憶體中之該等資料子集以將其重新定位至該第二類型之記憶體。
  17. 如請求項14之記憶體設備,其中該控制器經組態以在識別儲存於該第一類型之記憶體中之該等資料子集以將其重新定位至該第二類型之記憶體之後進行以下操作:執行一感測操作以感測儲存於該第一類型之記憶體中之該等經識別資料子集中之資料;執行一程式化操作以將該所感測資料程式化至該第二類型之記憶體;用該所感測資料被程式化到的該第二類型之記憶體中之一位置來更 新該等經識別資料子集之位置資料;且使儲存於該第一類型之記憶體中之該等經識別資料子集中的該資料無效。
  18. 如請求項14之記憶體設備,其中該控制器經組態以在識別儲存於該第一類型之記憶體中之該等資料子集以將其重新定位至該第二類型之記憶體之後進行以下操作:檢索儲存於該等經識別資料子集中之資料之一備份複本在該第二類型之記憶體中所儲存之一位置;用該所檢索位置來更新該等識別資料子集之位置資料;及使儲存於該第一類型之記憶體中之該等經識別資料子集中的該資料無效。
TW106129582A 2016-11-08 2017-08-30 混合記憶體中之資料重新定位 TWI687807B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/345,919 2016-11-08
US15/345,919 US10649665B2 (en) 2016-11-08 2016-11-08 Data relocation in hybrid memory

Publications (2)

Publication Number Publication Date
TW201818250A TW201818250A (zh) 2018-05-16
TWI687807B true TWI687807B (zh) 2020-03-11

Family

ID=62064537

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106129582A TWI687807B (zh) 2016-11-08 2017-08-30 混合記憶體中之資料重新定位

Country Status (6)

Country Link
US (2) US10649665B2 (zh)
EP (1) EP3539005A4 (zh)
KR (1) KR102271643B1 (zh)
CN (1) CN109923530A (zh)
TW (1) TWI687807B (zh)
WO (1) WO2018089085A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740016B2 (en) * 2016-11-11 2020-08-11 Scale Computing, Inc. Management of block storage devices based on access frequency wherein migration of block is based on maximum and minimum heat values of data structure that maps heat values to block identifiers, said block identifiers are also mapped to said heat values in first data structure
JP6779821B2 (ja) * 2017-03-24 2020-11-04 キオクシア株式会社 メモリシステム及びデータの読み出し方法
US10957392B2 (en) 2018-01-17 2021-03-23 Macronix International Co., Ltd. 2D and 3D sum-of-products array for neuromorphic computing system
US10705963B2 (en) 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10809942B2 (en) * 2018-03-21 2020-10-20 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705747B2 (en) 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
TWI686698B (zh) * 2018-05-24 2020-03-01 大陸商深圳大心電子科技有限公司 邏輯轉實體表更新方法及儲存控制器
US10585795B2 (en) * 2018-05-31 2020-03-10 Micron Technology, Inc. Data relocation in memory having two portions of data
US11138497B2 (en) 2018-07-17 2021-10-05 Macronix International Co., Ltd In-memory computing devices for neural networks
KR20200015185A (ko) * 2018-08-03 2020-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10916324B2 (en) * 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
TW202014898A (zh) 2018-10-04 2020-04-16 宏碁股份有限公司 電腦系統、其遊戲載入方法及電腦程式產品
KR20200044312A (ko) 2018-10-19 2020-04-29 삼성전자주식회사 반도체 장치
US11636325B2 (en) 2018-10-24 2023-04-25 Macronix International Co., Ltd. In-memory data pooling for machine learning
US11562229B2 (en) 2018-11-30 2023-01-24 Macronix International Co., Ltd. Convolution accelerator using in-memory computation
US11934480B2 (en) 2018-12-18 2024-03-19 Macronix International Co., Ltd. NAND block architecture for in-memory multiply-and-accumulate operations
US11119674B2 (en) * 2019-02-19 2021-09-14 Macronix International Co., Ltd. Memory devices and methods for operating the same
US11132176B2 (en) 2019-03-20 2021-09-28 Macronix International Co., Ltd. Non-volatile computing method in flash memory
US11226778B2 (en) * 2019-04-30 2022-01-18 EMC IP Holding Company LLC Method, apparatus and computer program product for managing metadata migration
KR102089450B1 (ko) 2019-09-19 2020-05-26 한국과학기술정보연구원 데이터이주장치 및 그 동작 방법
KR20210045029A (ko) * 2019-10-16 2021-04-26 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN113297014B (zh) * 2020-02-22 2024-03-08 广州希姆半导体科技有限公司 待测内存容量的识别方法及装置、电子设备及存储介质
KR102425038B1 (ko) * 2020-10-26 2022-07-27 주식회사 에이직랜드 온칩 시스템의 데이터 관리 장치 및 방법
US11397657B1 (en) * 2021-01-07 2022-07-26 Micron Technology, Inc. Managing memory objects that are assigned a respective designation
CN114281251B (zh) * 2021-12-10 2023-08-11 重庆邮电大学 面向3d tlc闪存存储器的数据分配与重编程优化方法
US11934692B2 (en) * 2021-12-20 2024-03-19 Micron Technology, Inc. Write booster buffer and hibernate

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020056025A1 (en) * 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US20090049234A1 (en) * 2007-08-14 2009-02-19 Samsung Electronics Co., Ltd. Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
US20120047287A1 (en) * 2010-08-23 2012-02-23 International Business Machines Corporation Using information on input/output (i/o) sizes of accesses to an extent to determine a type of storage device for the extent
US20130111160A1 (en) * 2011-10-31 2013-05-02 International Business Machines Corporation Selective space reclamation of data storage memory employing heat and relocation metrics
US20150106582A1 (en) * 2013-10-14 2015-04-16 Electronics And Telecommunications Research Institute Apparatus and method for managing data in hybrid memory

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124272B1 (en) 2003-04-18 2006-10-17 Symantec Corporation File usage history log for improved placement of files in differential rate memory according to frequency of utilizations and volatility of allocation space
US7844801B2 (en) * 2003-07-31 2010-11-30 Intel Corporation Method and apparatus for affinity-guided speculative helper threads in chip multiprocessors
US20050055495A1 (en) 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
US7356651B2 (en) 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
GB0603552D0 (en) * 2006-02-22 2006-04-05 Advanced Risc Mach Ltd Cache management within a data processing apparatus
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US8850102B2 (en) 2007-08-23 2014-09-30 Nokia Corporation Flash memory with small data programming capability
US8112603B2 (en) 2007-10-19 2012-02-07 International Business Machines Corporation Methods, systems, and computer program products for file relocation on a data storage device
JP5284685B2 (ja) 2008-05-16 2013-09-11 インターナショナル・ビジネス・マシーンズ・コーポレーション ファイルの再配置装置、再配置方法、及び再配置プログラム
US20100169708A1 (en) 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
US8171216B2 (en) * 2009-05-29 2012-05-01 Dell Products, Lp System and method for managing devices in an information handling system
US20110167197A1 (en) 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
US20130219105A1 (en) 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for caching for non-volatile memory device
US8897072B2 (en) * 2012-10-11 2014-11-25 Micron Technology, Inc. Sensing data stored in memory
CN105122218B (zh) * 2013-03-14 2019-01-18 美光科技公司 包含训练、数据组织及/或遮蔽的存储器系统及方法
US9921980B2 (en) * 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
KR102190670B1 (ko) * 2014-03-03 2020-12-14 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
FR3027450B1 (fr) * 2014-10-20 2016-11-04 Commissariat Energie Atomique Dispositif memoire non volatile hybride et procede de fabrication d'un tel dispositif
US9436392B1 (en) 2015-02-17 2016-09-06 Nimble Storage, Inc. Access-based eviction of blocks from solid state drive cache memory
US10116557B2 (en) * 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020056025A1 (en) * 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US20090049234A1 (en) * 2007-08-14 2009-02-19 Samsung Electronics Co., Ltd. Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
US20120047287A1 (en) * 2010-08-23 2012-02-23 International Business Machines Corporation Using information on input/output (i/o) sizes of accesses to an extent to determine a type of storage device for the extent
US20130111160A1 (en) * 2011-10-31 2013-05-02 International Business Machines Corporation Selective space reclamation of data storage memory employing heat and relocation metrics
US20150106582A1 (en) * 2013-10-14 2015-04-16 Electronics And Telecommunications Research Institute Apparatus and method for managing data in hybrid memory

Also Published As

Publication number Publication date
TW201818250A (zh) 2018-05-16
US10649665B2 (en) 2020-05-12
EP3539005A1 (en) 2019-09-18
CN109923530A (zh) 2019-06-21
KR20190067938A (ko) 2019-06-17
US20200233585A1 (en) 2020-07-23
KR102271643B1 (ko) 2021-07-05
US20180129424A1 (en) 2018-05-10
EP3539005A4 (en) 2020-07-08
WO2018089085A1 (en) 2018-05-17

Similar Documents

Publication Publication Date Title
TWI687807B (zh) 混合記憶體中之資料重新定位
US11216362B2 (en) Data storage device and operating method thereof
US20180107603A1 (en) Memory having a static cache and a dynamic cache
CN110083545B (zh) 数据存储装置及其操作方法
KR20210001898A (ko) 존 네임스페이스에 대한 존 형성
US20130151759A1 (en) Storage device and operating method eliminating duplicate data storage
US20150347291A1 (en) Flash memory based storage system and operating method
US11037627B2 (en) Cell block allocation for hybrid dual write
KR102378295B1 (ko) 저장 캐시 관리
US10747462B2 (en) Data processing system and operating method thereof
KR20200135549A (ko) 카운터 업데이트 동작을 위한 장치 및 방법
CN114730290A (zh) 将变化日志表移动至与分区对准
KR20210028729A (ko) 논리적 대 물리적 테이블 프래그먼트들
US11113205B2 (en) Die addressing using a reduced size translation table entry
US11194708B2 (en) Data relocation in memory having two portions of data
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts
US20140149646A1 (en) Memory systems including flash memories, first buffer memories, second buffer memories and memory controllers and methods for operating the same
US20240126450A1 (en) Memory system and operation thereof
US12026384B2 (en) Open block relocation
US20240069773A1 (en) Open block relocation
CN118265971A (zh) 存储器系统及存储器系统的操作
TW202418097A (zh) 記憶體系統及記憶體系統的操作