TWI669607B - 用於對資料之記憶體操作之設備及方法 - Google Patents

用於對資料之記憶體操作之設備及方法 Download PDF

Info

Publication number
TWI669607B
TWI669607B TW106129580A TW106129580A TWI669607B TW I669607 B TWI669607 B TW I669607B TW 106129580 A TW106129580 A TW 106129580A TW 106129580 A TW106129580 A TW 106129580A TW I669607 B TWI669607 B TW I669607B
Authority
TW
Taiwan
Prior art keywords
management unit
data
memory
specific distance
management
Prior art date
Application number
TW106129580A
Other languages
English (en)
Other versions
TW201818252A (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 TW201818252A publication Critical patent/TW201818252A/zh
Application granted granted Critical
Publication of TWI669607B publication Critical patent/TWI669607B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/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/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
    • 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/0683Plurality of storage devices
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本發明包含關於對資料之記憶體操作之設備及方法。一實例性方法可包含:藉由將資料從一第一管理單元寫入至一第二管理單元而執行一操作;且將該第一管理單元置於一自由狀態,其中該第一管理單元位於離該第二管理單元一特定距離處。

Description

用於對資料之記憶體操作之設備及方法
本發明大體上係關於記憶體裝置,且更特定言之,本發明係關於用於對資料之記憶體操作之設備及方法。
記憶體裝置通常設置為電腦或其他電子裝置中之內部半導體積體電路。存在諸多不同類型之記憶體,包含揮發性及非揮發性記憶體。揮發性記憶體可需要維持其資料之電力且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)等等。非揮發性記憶體可藉由當未供電時保留儲存之資料而提供永久性資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除程式化ROM(EEPROM)、可擦除程式化ROM(EPROM)及電阻可變記憶體,諸如相變隨機存取記憶體(PCRAM)、電阻隨機存取記憶體(RRAM)及磁阻隨機存取記憶體(MRAM)等等。
記憶體亦用作為各種電子應用之揮發性及非揮發性資料儲存。非揮發性記憶體可在(例如)個人電腦、可攜式記憶體棒、數位相機、蜂巢式電話、可攜式音樂播放器,諸如MP3播放器、電影播放器及其他電子裝置中使用。記憶體胞可配置成具有正在記憶體裝置中使用之陣列。
100‧‧‧運算系統
102‧‧‧主機
104‧‧‧介面
106‧‧‧記憶體裝置
108‧‧‧控制器
110‧‧‧第一記憶體陣列
112-1,...,112-N‧‧‧第二記憶體陣列
114‧‧‧計數器
208‧‧‧控制器
220‧‧‧前端管理器
230‧‧‧資料及媒體管理器
232‧‧‧資料管理器
234‧‧‧媒體轉譯層(MTL)服務
236‧‧‧媒體轉譯層(MTL)管理器
238-1‧‧‧表管理器
238-2‧‧‧讀取管理器
238-3‧‧‧負載管理器
238-4‧‧‧寫入管理器
238-5‧‧‧清空管理器
238-6‧‧‧清除管理器
240‧‧‧後端管理器
340‧‧‧管理單元
342‧‧‧主機資料
344‧‧‧位址資料
346‧‧‧失誤校正(ECC)資料
450-0‧‧‧管理單元
450-1‧‧‧管理單元
450-2‧‧‧管理單元
450-3‧‧‧管理單元
450-4‧‧‧管理單元
450-5‧‧‧管理單元
450-6‧‧‧管理單元
450-7‧‧‧管理單元
452-0‧‧‧資料
452-1‧‧‧資料
452-2‧‧‧資料
452-3‧‧‧資料
452-4‧‧‧資料
452-5‧‧‧資料
452-6‧‧‧資料
454-1‧‧‧第一損耗均衡操作
454-2‧‧‧第二損耗均衡操作
454-3‧‧‧第三損耗均衡操作
550-0‧‧‧管理單元
550-1‧‧‧管理單元
550-2‧‧‧管理單元
550-3‧‧‧管理單元
550-4‧‧‧管理單元
550-5‧‧‧管理單元
550-6‧‧‧管理單元
550-7‧‧‧管理單元
552-0‧‧‧資料
552-1‧‧‧資料
552-2‧‧‧資料
552-3‧‧‧資料
552-4‧‧‧資料
552-5‧‧‧資料
552-6‧‧‧資料
556-1‧‧‧第一損耗均衡操作
556-2‧‧‧第二損耗均衡操作
556-3‧‧‧第三損耗均衡操作
680‧‧‧方法
682‧‧‧區塊
684‧‧‧區塊
686‧‧‧區塊
688‧‧‧區塊
690‧‧‧區塊
692‧‧‧區塊
694‧‧‧區塊
696‧‧‧區塊
750-0‧‧‧管理單元
750-3‧‧‧管理單元
750-4‧‧‧管理單元
752-2‧‧‧資料
752-6‧‧‧資料
770‧‧‧邏輯至實體表
772‧‧‧邏輯位址
774‧‧‧實體位址
776-0‧‧‧列
776-1‧‧‧列
776-2‧‧‧列
776-3‧‧‧列
776-4‧‧‧列
776-5‧‧‧列
776-6‧‧‧列
776-7‧‧‧列
圖1係根據本發明之數個實施例之為包含一記憶體裝置之一運算系統之形式之一設備之一方塊圖。
圖2係根據本發明之數個實施例之一記憶體裝置上之一控制器之一方塊圖。
圖3繪示根據本發明之數個實施例之一記憶體裝置上之一實例性管理單元。
圖4繪示根據本發明之數個實施例之在數個管理單元上執行之數個損耗均衡操作。
圖5繪示根據本發明之數個實施例之在數個管理單元上執行之數個損耗均衡操作。
圖6繪示根據本發明之數個實施例之用於一記憶體裝置上之一損耗均衡操作之一方法之一實例之一圖式。
圖7繪示根據本發明之數個實施例之一邏輯至實體表。
本發明包含關於對資料之記憶體操作之設備及方法。一實例性方法可包含:藉由將資料自一第一管理單元寫入至一第二管理單元而執行一操作;且將該第一管理單元置於一自由狀態,其中該第一管理單元位於離該第二管理單元一特定距離處。
本發明之實施例可包含藉由連續將儲存於一個位置中之資料寫入至位於離該初始位置一特定距離處之另一位置而執行一操作(例如,損耗均衡操作)。例如,本發明之數個實施例可在不分析於各記憶體胞上執行之數個寫入操作之情況下執行一損耗均衡操作。因而,根據本發明之數個實 施例之一損耗均衡操作不可使用額外組件(諸如一計數器)來追蹤於各記憶體胞上執行之數個損耗均衡操作。在不追蹤該數個損耗均衡操作之情況下執行損耗均衡操作提供諸如降低與該等損耗均衡操作相關聯之延時之優勢。
儘管實施例不限制於一特定記憶體裝置,但可在包含一第一記憶體陣列(可為一儲存級記憶體)及數個第二記憶體陣列(可為NAND快閃記憶體)之一混合記憶體裝置上執行根據本發明之數個實施例之損耗均衡操作。該操作可在該第一記憶體陣列及/或數個第二記憶體陣列上執行且增加該混合裝置之效能(例如,增加速度、增加可靠性及/或減少功率消耗)。
在本發明之以下詳細描述中,參考形成本發明之一部分之附圖,且其中以繪示之方式展示可如何實踐本發明之一或多個實施例。充分詳細地描述此等實施例以使得一般技術者能夠實踐本發明之實施例,且將瞭解可利用其它實施例且可在不違背本發明之範疇之情況下做出程序、電及結構改變。
如本文所使用,諸如「X」、「Y」、「N」、「M」等等之元件符號(尤其係相對於圖中之元件符號)指示可包含如此標記之數個特定特徵。亦將瞭解在本文中使用之術語僅係為了描述特定實施例之目的且不意欲具有限制性。除非本文另外清楚指示,否則如本文所使用,單數形式「一」(a、an)及「該」可包含單數及複數指示物兩者。另外,「數個」、「至少一者」及「一或多個」(例如,數個記憶體陣列)可係指一或多個記憶體陣列,而「複數個」意欲係指此等物體之一個以上。此外,術語「可」(can及may)以一寬容意義(即,具有潛力可、能夠)而非一強制意義(即必須)在本申請案中使用。術語「包含」及其衍生物意謂「包含但不限制 於」。若適合背景內容,則術語「耦合」(coupled及coupling)意謂直接或間接實體地連接或存取及命令及/或資料之移動(傳輸)。若適合背景內容,則術語「資料」及「資料值」在本文中交叉使用且可具有相同意義。
本文中之圖遵循其中第一數字或前幾個數字對應於圖編號且剩餘數字識別圖中之一元件或組件之一編號慣例。可藉由使用類似數字識別不同圖之間之類似元件或組件。例如,108可係圖1中之參考元件「08」,且一類似元件可在圖2中參考為208。如將明白,本文之各種實施例中展示之元件可經添加、交換及/或消除以提供本發明之數個額外實施例。另外,圖中提供之元件之比例及/或相對尺寸意欲繪示本發明之特定實施例,且不應視作一限制。
圖1係根據本發明之數個實施例之包含一記憶體裝置106之一運算系統100之形式之一設備之一方塊圖。如本文所使用,一「設備」可係指(但不限於)各種結構或結構之組合之任何者,諸如(例如)一或若干電路、一或若干晶粒、一或若干模組、一或若干裝置或一或若干系統。在數個實施例中,運算系統100可包含數個記憶體裝置。在圖1中繪示之實施例中,記憶體裝置106可包含一第一記憶體類型(例如,一第一記憶體陣列110)及一第二記憶體類型(例如,數個第二記憶體陣列112-1,...,112-N)。記憶體裝置106可為一混合記憶體裝置,其中記憶體裝置106包含不同於數個第二記憶體陣列112-1,...,112-N之一記憶體類型之第一記憶體陣列110。第一記憶體陣列110可為儲存級記憶體(SCM),此可係充當用於記憶體裝置106之主要記憶體之一非揮發性記憶體,因為其具有比數個第二記憶體陣列112-1,...,112-N更快之存取時間。第一記憶體陣列110可為相變記憶體(PCM)、自旋力矩轉移(SST)記憶體、鐵電(FRAM)及/或電阻(RRAM), 以及其他類型之非揮發性記憶體。數個第二記憶體陣列112-1,...,112-N可充當為用於記憶體裝置106之一資料儲存器(例如,儲存記憶體)且可為NAND快閃記憶體,以及其他類型之記憶體。例如,數個第二記憶體陣列112-1,...,112-N可為RAM、ROM、DRAM、SDRAM、PCRAM、RRAM及快閃記憶體等等。
如圖1中所繪示,主機102可經由介面104耦合至記憶體裝置106。主機102及記憶體裝置106可在介面104上通信(例如,發送命令及/或資料)。主機102可為-膝上型電腦、個人電腦、數位相機、數位錄影及播放裝置、行動電話、PDA、記憶卡讀取器、介面集線器,以及其他主機系統,且可包含一記憶體存取裝置(例如一處理器)。一般技術者將明白「一處理器」可意欲為一或多個處理器,諸如一平行處理系統、數個共處理器等等。
記憶體裝置106包含與主機102及第一記憶體陣列110及數個第二記憶體陣列112-1,...,112-N通信之控制器108。控制器108可發送在第一記憶體陣列110及數個第二記憶體陣列112-1,...,112-N上執行操作之命令。控制器108可與第一記憶體陣列110及數個第二記憶體陣列112-1,...,112-N通信以讀取、寫入、移動及/或擦除資料,以及其他操作。控制器108可控制記憶體裝置106上之數個資料流。例如,控制器108可控制:將資料寫入至第一記憶體陣列110;將資料寫入至數個第二記憶體陣列112-1,...,112-N;自第一記憶體陣列110讀取資料;自數個第二記憶體陣列112-1,...,112-N讀取資料;將資料自第一記憶體陣列110移動至數個第二記憶體陣列112-1,...,112-N;且將資料自數個第二記憶體陣列112-1,...,112-N移動至第一記憶體陣列110。在一些實施例中,控制器108可在數個第二 記憶體陣列112-1,...,112-N中移動資料。
控制器108可包括包含用於執行數個操作之一計數器114之數個組件。例如,計數器114可經組態以回應於正由記憶體裝置執行之特定數目個寫入操作而發送一初始化信號,且控制器108可回應於接收該初始化信號(自計數器114接收)而啟動該操作。
主機102包含與記憶體裝置106通信之一主機控制器。該主機控制器可經由介面104將命令發送至記憶體裝置106。該主機控制器可與記憶體裝置106及/或記憶體裝置106上之控制器108通信以讀取、寫入及擦除資料,以及其他操作。
記憶體裝置106上之控制器108及/或主機102上之主機控制器可包含控制電路(例如,硬體、韌體及/或軟體)。在一或多個實施例中,記憶體裝置106上之控制器108及/或主機102上之主機控制器可包含控制電路,該控制電路可為耦合至包含一實體介面之一印刷電路板之一特定應用積體電路(ASIC)。再者,記憶體裝置106及主機102可包含揮發性及/或非揮發性記憶體之一緩衝器及數個暫存器。
圖2係根據本發明之數個實施例之一控制器208之一方塊圖。控制器208可與一主機(例如,圖1中之主機102)及/或記憶體陣列(例如,圖1中之第一記憶體陣列110及/或數個第二記憶體陣列112-1,...,112-N)通信以將資料讀取、寫入、移動及/或擦除至主機或記憶體陣列及/或自主機或記憶體陣列讀取、寫入、移動及/或擦除資料。控制器208包含前端管理器220、資料及媒體管理器230及後端管理器240。
前端管理器220可自一主機接收命令且解譯彼等命令。前端管理器220可執行與該等命令相關聯之資料之邏輯位址之一轉譯。
資料及媒體管理器230可進一步處理自一主機接收之命令。資料及媒體管理器230可包含資料管理器232、媒體轉譯層(MTL)服務234及媒體轉譯層(MTL)管理器236。資料管理器232可判定將如何執行自一主機接收之命令之各者。MTL服務234可包含將功能提供至MTL管理器236之數組應用程式化介面(API)指令。MTL服務234可包含執行邏輯位址至實體位址轉譯、自記憶體陣列讀取資料及/或將資料寫入至記憶體陣列,以及其他服務之API指令。
MTL管理器236可包含執行記憶體陣列上之操作之表管理器238-1、讀取管理器238-2、負載管理器238-3、寫入管理器238-4、清空管理器238-5及清除管理器238-6。
表管理器238-1可提供用於儲存於記憶體陣列中之資料之邏輯位址至實體位址映射。可將由表管理器238-1管理之資訊儲存於記憶體陣列中。表管理器238-1可產生且儲存一邏輯至實體表(儲存記憶體陣列)以定位資料。該邏輯至實體表可包含邏輯位址至實體位址映射中指示資料是否儲存於第一類型之記憶體及/或第二類型之記憶體陣列中之一位元。表管理器238-1亦可產生且儲存將資料定位於記憶體陣列中之邏輯至實體指標。
讀取管理器238-2可藉由將資料定位於記憶體陣列中且使得與讀取命令相關聯之資料傳送至主機而執行讀取命令。讀取管理器238-2亦可判定自一第二類型之記憶體陣列讀取之資料是否應保留及/或移動至記憶體裝置中之第一類型之記憶體陣列中。若讀取管理器238-2判定應將資料自一第二類型之記憶體陣列移動至一第一類型之記憶體陣列,則讀取管理器238-2通知負載管理器238-3執行此操作。
負載管理器238-4可執行將資料自一第二類型之記憶體陣列(例如, NAND)移動至一第一類型之記憶體陣列(例如,SCM)。負載管理器238-4可使得資料移動至第一類型之記憶體陣列且使第二類型之記憶體陣列中之資料之初始版本無效。
寫入管理器238-4可藉由將與寫入命令相關聯之資料路由至第一類型之記憶體陣列及/或第二類型之記憶體陣列而執行寫入命令。寫入管理器238-4可判定是否基於數個準則將資料寫入至第一類型之記憶體陣列、第二類型之記憶體陣列或該兩者。該數個準則可包含正寫入之資料之尺寸、記憶體陣列中之可用空間之量及/或資料正寫入至記憶體陣列之頻率,以及其他準則。
清空管理器238-5可執行將資料自一第一類型之記憶體陣列(例如,SCM)移動至一第二類型之記憶體陣列(例如,NAND)。清空管理器238-5可基於數個準則移動資料。該準則可為(例如)第一類型之記憶體陣列已到達一容量臨限值。清空管理器238-5可將資料移動至第二類型之記憶體陣列且使第一類型之記憶體陣列中之資料之初始版本無效。
清除管理器238-6可執行將資料自第一類型之記憶體陣列(例如,SCM)中之一第一位置移動至第一類型之記憶體陣列中之一第二位置。清除管理器238-6可移動資料作為一損耗均衡操作,使得第一類型之記憶體陣列中之特定實體位置不會比其他實體位置寫入更多次。清除管理器238-6可執行將一管理單元之各位元寫入至具有一無效狀態之各管理單元上之一特定邏輯狀態。在數個實施例中,清除管理器238-6可包含將一管理單元之各位元程式化至比另一邏輯狀態使用更多功率及/或具有比另一邏輯狀態更高之一延時之一邏輯狀態。
圖3繪示根據本發明之數個實施例之一記憶體裝置上之一實例性管理 單元340。如本文所使用,一管理單元係指在操作期間一起管理之一陣列中之一組記憶體胞。一管理單元之尺寸可基於儲存於管理單元中之資料類型及/或在該管理單元上執行之操作類型而不同。例如,一個管理單元(例如,大型管理單元)可包含4KB資料且儲存來自一主機之資料,而另一管理單元可包含64B資料且可儲存與該大型管理單元中之資料相關聯之一邏輯至實體表。
實例性管理單元340可包含包括主機資料342、位址資料344及失誤校正(ECC)資料346(例如,同位位元)之資料,如圖3中所繪示。儘管未在圖3中繪示,該資料亦可包括其他類型之資料,諸如元資料。
實例性管理單元340可具有與其相關聯之一狀態。例如,實例性管理單元340可具有有效、無效、自由或不使用之一狀態。一有效管理單元包含最新版本資料。一無效管理單元包含不係最新版本資料之資料。一「不使用」管理單元由於一特定理由不用於儲存資料,諸如該管理單元不再能夠可靠地儲存資料。一自由管理單元包含處於一預定狀態(例如,擦除之狀態或重設狀態)且備妥接受程式化(例如,接受寫入)之記憶體胞。例如,一重設狀態可為其中管理單元之所有記憶體胞經程式化至一特定邏輯狀態(例如,(例如)邏輯狀態0或邏輯狀態1)。
圖4繪示根據本發明之數個實施例之在數個管理單元450-0、450-1、450-2、450-3、450-4、450-5、450-6及450-7上執行之數個損耗均衡操作454-1、454-2及454-3。在圖4中繪示之數個管理單元可包含8個管理單元,且該數個管理單元中之7個可儲存一組資料而一個管理單元處於一自由狀態中。
儲存於各管理單元中之資料可包括分配有一特定邏輯位址之位址資 料(例如,位址資料344),且一記憶體裝置(例如,控制器108)可經組態以基於位址資料之邏輯位址計算出儲存之資料定位於管理單元中之何處。例如,一控制器可讀取且解碼儲存於一管理單元450-1中之位址資料,且總結資料452-3當前儲存於管理單元450-1中。
數個管理單元在一第一操作454-1之前包含置於一自由狀態中之一管理單元450-0,且管理單元450-1、450-2、450-3、450-4、450-5、450-6及450-7分別儲存對應資料452-3、452-0、452-6、452-2、452-5、452-1及452-4。在各損耗均衡操作中,可將資料自定位於離一第二管理單元一特定距離處之一第一管理單元寫入至一第二管理單元,且在操作後可將該第一管理單元置於一自由狀態中。如本文所使用,一距離(例如,一特定距離)係指自一管理單元到達位於離該管理單元該距離處之另一管理單元將計數之管理單元之數目。例如,如圖4中所繪示,定位於離一第一管理單元(450-3)一距離3處之一第二管理單元(例如,450-0)指示到達第一管理單元(450-3)將計數3個管理單元(例如,450-0、450-1及450-2)。儘管實施例不受限制,但一特定距離可為相對於管理單元之數目之一相對質數。若一特定數目不與管理單元之數目共用除了1以外之共同正因子(例如除數),則該特定數目係相對於管理單元數目之一相對質數。例如,當存在8個管理單元(如圖4中所繪示)時,一特定距離可為3、5及7,因為彼等數字(3、5及7)不與8共用除了1之外之共同正因子。可在執行損耗均衡操作之前預定一特定距離,儘管實施例不限制於此。
一第一損耗均衡操作454-1開始於位於離置於一自由狀態中之管理單元450-0距離3處之管理單元450-3。第一損耗均衡操作454-1將儲存於管理單元450-3中之資料452-6寫入至管理單元450-0,如圖4中所繪示。當將資 料452-6自管理單元450-3寫入至管理單元450-0後,即可將管理單元450-3置於一自由狀態中,且可將管理單元450-0置於一有效狀態中。
將在一先前損耗均衡操作中置於一自由狀態中之一管理單元自在一記憶體裝置中執行之數個非損耗均衡寫入操作排除直至一下一損耗均衡操作。例如,記憶體裝置(例如,記憶體裝置106)可在數個管理單元450-0、450-1、450-2、450-4、450-5、450-6及450-7(除管理單元450-3外)上執行數個非損耗均衡寫入操作。因而,數個實施例藉由不將資料寫入至置於一自由狀態中之管理單元450-3直至一下一損耗均衡操作而確保不過度寫入管理單元450-3。
可基於數個回應或標準而觸發各損耗均衡操作。在一些實施例中,一計數器(例如,計數器114)可經組態以回應於正由一記憶體裝置執行之特定數目個寫入操作而發送一初始化信號,且一控制器可經組態以回應於自一計數器接收之該初始化信號而執行一損耗均衡操作。在一些實施例中,該控制器可經組態以回應於在一記憶體裝置中發生之特定數目個功率狀態轉變(例如,自主動至閒置、備用或關閉)而執行一損耗均衡操作。
第二損耗均衡操作454-2可開始於位於離由於第一損耗均衡操作454-1而置於一自由狀態中之管理單元450-3距離3處之管理單元450-6。第二損耗均衡操作454-2將資料452-1自管理單元450-6寫入至在一先前操作中置於一自由狀態中之管理單元450-3。當將資料452-1寫入至管理單元450-3後,即可將管理單元450-6置於一自由狀態中,且可將管理單元450-3置於一有效狀態中。
一第三損耗均衡操作454-3可開始於管理單元450-1。如圖4中所繪示,實施例可循序搜索數個管理單元(例如,450-0、450-1、450-2、450- 3、450-4、450-5、450-6及50-7)之一下一管理單元。例如,由於不存在超過管理單元450-7之更多管理單元,所以第三損耗均衡操作454-3可在為管理單元450-7計數後繼續計數離管理單元450-0之距離。因而,實施例可為管理單元450-7、450-0及450-1計數距離3,使得可在管理單元450-1上執行操作。因此,正在管理單元450-1上執行之第三損耗均衡操作454-3可將資料452-3(儲存於管理單元450-1中)寫入至在一先前操作中置於一自由狀態中之管理單元450-6。當將資料452-3寫入至管理單元450-6後,即可將管理單元450-1置於一自由狀態中,且可將管理單元450-6置於一有效狀態中。
圖5繪示根據本發明之數個實施例之在數個管理單元550-0、550-1、550-2、550-3、550-4、550-5、550-6及550-7上執行之數個損耗均衡操作556-1、556-2及556-3。數個管理單元550-0、550-1、550-2、550-3、550-4、550-5、550-6及550-7可類似於結合圖4繪示之彼等管理單元。
數個管理單元在一第一操作556-1之前包含置於一自由狀態中之一管理單元550-0,且其他管理單元550-1、550-2、550-3、550-4、550-5、550-6及550-7分別儲存對應資料552-3、552-0、552-6、552-2、552-5、552-1及552-4。在各操作中,將由寫入游標(例如,如圖5中繪示之虛線)指示之一第一管理單元寫入至置於一自由狀態中之一管理單元,且當完成將資料寫入至處於一自由狀態中之管理單元後,即將第一管理單元置於一自由狀態中。在各操作之後,將寫入游標置於位於離第一管理單元一特定距離處之一第二管理單元處。如圖5中所繪示,由一粗線描述該操作,且由一虛線描述該寫入游標。
一第一損耗均衡操作556-1開始於管理單元550-3。第一損耗均衡操 作556-1之寫入游標可在執行第一損耗均衡操作556-1(儘管未在圖5中展示)之前置於管理單元550-3處,且第一損耗均衡操作556-1將儲存於管理單元550-3中之資料552-6(先前由寫入游標指示)寫入至置於一自由狀態中之管理單元550-0。當完成將資料寫入至管理單元550-0後,即可將管理單元550-3置於一自由狀態中,且可將管理單元550-0置於一有效狀態中。
當完成第一損耗均衡操作556-1後即可更新寫入游標。例如,寫入游標可經更新以置於位於離管理單元550-3一特定距離(例如,如結合圖5描述之距離3)處之管理單元550-6處。因此,當完成第一損耗均衡操作556-1後,一第二損耗均衡操作556-2即可開始於由寫入游標指示之管理單元550-6。第二損耗均衡操作556-2將儲存於管理單元550-6中之資料552-1寫入至在第一損耗均衡操作556-1期間置於一自由狀態中之管理單元550-3。
一損耗均衡操作亦可採用一索引系統。一記憶體裝置(例如,控制器108)可循序為各管理單元分配一特定索引,且在各操作中更新該索引以判定自何處開始該損耗均衡操作。例如,可將一對應索引0、1、2、3、4、5、6及7分別循序分配至各管理單元550-0、550-1、550-2、550-3、550-4、550-5、550-6、550-7,且該控制器可經組態以在大於一先前起始索引一特定(例如,預定)距離之一特定索引處啟動各操作。舉一實例而言,若一特定距離判定為3,則當在索引0處啟動一先前損耗均衡操作時,該控制器可在索引3處啟動另一損耗均衡操作。
當完成第二損耗均衡操作556-2後,寫入游標即可經更新以指示在一不同管理單元處。當自一管理單元之一特定距離(具有一特定向量)超過管理單元之數目時,一損耗均衡操作可搜索該數個管理單元之一不同側處之一更新之管理單元。例如,在圖5中,寫入游標已藉由沿數個管理單元之 一向下方向計數一特定距離而搜索一更新之管理單元。在第二損耗均衡操作556-2期間,當該寫入游標可不再沿該向下方向搜索更新之管理單元(由於管理單元550-6下方僅存在一個管理單元)時,寫入游標可繼續計數離數個管理單元之其他側之特定距離。例如,該寫入游標可計數管理單元550-7,且進一步計數離數個管理單元之其他側之550-0及550-1。因此,數個計數之管理單元550-7、550-0及550-1達到一特定距離3,且將寫入游標置於管理單元550-1處。因此,第三損耗均衡操作556-3可將儲存於由寫入游標指示之管理單元550-1中之資料552-3寫入至在第二損耗均衡操作556-2期間置於一自由狀態中之管理單元550-6,且當完成將資料552-3寫入至管理單元550-6後即將管理單元550-1置於一自由狀態中。當完成第三損耗均衡操作556-3後,寫入游標即可經更新以指示位於離管理單元550-1一特定距離處之一下一管理單元(例如,包含資料552-2之管理單元550-4)。
圖6繪示根據本發明之數個實施例之用於一記憶體裝置上之一損耗均衡操作之一方法680之一實例之一圖。可藉由(例如)先前分別結合圖1及圖2描述之控制器108及/或208執行方法。
在區塊682中,方法680包含將一特定索引分配至各管理單元且在一特定編入索引之管理單元處啟動一操作。例如,一控制器可經組態以將一特定索引分配至各管理單元且在分配有一索引0之一管理單元處啟動一操作。
在區塊684中,方法680包含判定位於離特定編入索引之管理單元一特定距離處之一管理單元之一狀態是否有效。當控制器啟動索引0之管理單元中之操作時,例如,若一特定距離判定為3,則接著該控制器可判定索引3之一管理單元之一狀態。
若判定位於離特定編入索引之管理單元該特定距離處之管理單元之 狀態係有效的,則接著方法680行進至區塊686。在區塊686中,方法680包含讀取且解碼儲存於管理單元中之資料以識別資料之一邏輯位址。可基於儲存於正經檢查(例如,藉由一控制器)之管理單元中之資料之位址資料(例如,先前結合圖3描述之位址資料)識別一邏輯位址。
在區塊688中,方法680包含將資料自位於離特定編入索引之管理單元特定距離處之管理單元寫入至特定編入索引之管理單元。例如,當控制器啟動索引0之管理單元上之操作且特定距離預定為3時,則接著該控制器可將儲存於索引3之管理單元(例如,一第一管理單元)中之資料寫入至索引0之管理單元(例如,一第二管理單元)。當寫入資料後,方法680即包含根據在區塊690處執行之操作更新一邏輯至實體表,如將進一步結合圖7所描述。此外,方法680包含根據在區塊692處執行之操作更新各管理單元之一狀態。例如,當該控制器將儲存於索引3之管理單元中之資料寫入至索引0之管理單元時,該控制器可將索引0之管理單元置於一有效狀態中(例如,指示索引0之管理單元現在主動地涉及正在一記憶體裝置上執行之數個非損耗均衡寫入操作),且將索引3之管理單元置於一自由狀態(例如,指示索引3之管理單元不再主動地涉及正在一記憶體裝置上執行之數個非損耗均衡寫入操作)。當更新涉及該操作之各管理單元之一狀態及邏輯至實體表後,方法680即可在區塊694處啟動位於離特定編入索引之管理單元特定距離之管理單元處之另一操作。例如,該控制器可啟動索引3之管理單元處之另一操作,且判定位於離索引3之管理單元一特定(例如,預定)距離處之索引6之一管理單元之一狀態。
方法680亦可包含當位於離特定編入索引之管理單元(例如,一第二管理單元)特定距離處之管理單元(例如,一第一管理單元)之一狀態處於 一自由或無效狀態時跳過操作(例如,區塊686、688、690中描述之操作),且檢查位於離該管理單元(例如,一第一管理單元)特定距離處之一第三管理單元之一狀態。即,若在區塊684處判定位於離特定編入索引之管理單元特定距離處之管理單元處於一自由或無效狀態,則方法680可在區塊694處啟動第三管理單元上之另一操作。
若在區塊684處判定位於離該特定編入索引之管理單元特定距離處之管理單元處於一無效狀態,則方法680可在區塊696處執行一無效管理單元上之一清除操作以將該無效管理單元置於一自由狀態。例如,若判定正由控制器檢查之索引3之管理單元處於一無效狀態,則該控制器可執行索引3之管理單元上之清除操作,且將索引3之管理單元置於一自由狀態。然而,實施例不限制於此。例如,若判定該管理單元處於一無效狀態,則如區塊694處所繪示,該方法可包含啟動定位於離特定編入索引之管理單元特定距離處之一管理單元處之另一操作,猶如將該管理單元置於一自由狀態。即,在一些實施例中,當將該管理單元置於一無效狀態時,方法可不執行該清除操作。
圖7繪示根據本發明之數個實施例之一邏輯至實體表770。邏輯至實體表770可包含列及行,其中各列776-0、776-1、776-2、776-3、776-4、776-5、776-6及776-7可對應於一分離表項目。因而,各列776-0、776-1、776-2、776-3、776-4、776-5、776-6及776-7包含各資料之一邏輯位址772及各管理單元之一實體位址774。儘管邏輯至實體表770包含8列,但實施例不限制於此。例如,邏輯至實體表770可包含與一記憶體裝置包含之數個管理單元一樣多之列。
一記憶體裝置(例如,控制器108)可經組態以根據在數個管理單元上 執行之損耗均衡操作更新邏輯至實體表770。例如,圖7繪示根據正在置於一自由狀態中之一管理單元750-0上執行之損耗均衡操作而更新邏輯至實體表。在此特定損耗均衡操作中,可將儲存於位於離管理單元750-0一特定距離處之一管理單元750-3中之資料752-6寫入至管理單元750-0。當將資料752-6寫入至管理單元750-0後,即可分別將管理單元750-0及750-3置於一有效及一自由狀態中。當藉由將一第一列772-1自「自由」更新至「資料752-6」且將一第四列自「資料752-6」更新至「自由」而完成實例性損耗均衡操作後,即可更新邏輯至實體表770。此更新展示資料752-6已自管理單元750-3移動至管理單元750-0,且管理單元750-3在損耗均衡操作之後不再儲存對應資料。邏輯至實體表770可在各操作中更新,且用於識別儲存於一特定管理單元中之資料之一邏輯位址。例如,該控制器可經組態以使用邏輯至實體表770識別資料752-2(對應於列776-4及行772)儲存於一管理單元750-4(對應於列776-4及行774)中。
儘管已在本文中繪示且描述特定實施例,但一般技術者將明白經計算以達成相同結果之一配置可替換所展示之特定實施例。本發明意欲涵蓋本發明之各種實施例之調適或變動。應瞭解,已按一繪示性方式而非一限制性方式做出以上描述。熟習技術者當檢視以上描述時將明白未在本文特定描述之以上實施例及其他實施例之組合。本發明之各種實施例之範疇包含其中使用以上結構及方法之其他應用。因此,應參考隨附申請專利範圍以及此申請專利範圍所授權之等效物之整個範圍來判定本發明之各種實施例之範疇。
在以上[實施方式]中,各種特徵為提高效率之目的在一單一實施例中組合在一起。本發明之此方法不應解譯為反應本發明之所揭示之實施例必 須使用比在各申請專利範圍中明確所述之更多特徵之一意向。相反,如以下申請專利範圍所反應,本發明標的在於少於一單一揭示實施例之所有特徵。因此,以下申請專利範圍在本文中併入至[實施方式]內,其中各申請專利範圍單獨作為一分離實施例。

Claims (20)

  1. 一種用於對資料之記憶體操作之方法,其包括:判定一操作將基於其被執行之一特定距離,其中該特定距離指示自一管理單元到達另一管理單元將計數之管理單元之數目(a number of managed units);藉由以下動作執行該操作以寫入儲存於一第一管理單元之資料:判定一第二管理單元位於離該第一管理單元該特定距離處;及將該資料寫入至該第二管理單元;及將該第一管理單元置於一自由狀態。
  2. 如請求項1之方法,其中該方法包含藉由將處於一無效狀態之各管理單元置於一自由狀態而執行處於一無效狀態之各管理單元上之一清除操作。
  3. 如請求項1之方法,其中該方法包含當該第一管理單元之一狀態指示為有效時執行該操作。
  4. 如請求項1之方法,其中該方法包含:當該第一管理單元之一狀態係自由或無效時跳過該操作;且檢查一第三管理單元之一狀態,其中該第三管理單元位於離該第一管理單元該特定距離處。
  5. 如請求項1之方法,其中該方法包含在不追蹤於各管理單元上執行之數個寫入操作之情況下執行該操作。
  6. 一種用於對資料之記憶體操作之設備,其包括:數個記憶體陣列,其包含一第一管理單元及一第二管理單元;及一控制器,其耦合至該數個記憶體陣列且經組態以:判定一操作將基於其被執行之一特定距離,其中該特定距離與兩管理單元之間之管理單元之數目(a number of managed units)相關;循序搜索一下一管理單元,該下一管理單元位於離其資料將被寫入至該下一管理單元之一管理單元之一特定距離處;及回應於判定該第二管理單元位於離該第一管理單元該特定距離處,藉由將資料自該第一管理單元寫入至該第二管理單元而執行一操作。
  7. 如請求項6之設備,其中該控制器經組態以使用一邏輯至實體表識別儲存於各管理單元中之該資料之邏輯位址,其中該邏輯至實體表提供用於儲存於各管理單元中之該資料之邏輯位址至實體位址映射。
  8. 如請求項6之設備,其中該控制器經組態以:當完成該操作後即將該第一管理單元置於一自由狀態;且當完成該操作後即將該第二管理單元置於一有效狀態。
  9. 如請求項6之設備,其中該控制器包括一計數器,其中該計數器經組態以回應於正由該設備執行之特定數目個寫入操作而發送一初始化信號,其中該控制器經組態以回應於接收該初始化信號而啟動該操作。
  10. 如請求項6之設備,其中該控制器包括一計數器,其中該計數器經組態以在不追蹤於各管理單元上執行之數個寫入操作之情況下發送一初始化信號,其中該控制器經組態以回應於接收該初始化信號而啟動該操作。
  11. 如請求項6之設備,其中該控制器經組態以回應於發生於該設備中之特定數目個功率狀態轉變而執行該操作。
  12. 一種用於對資料之記憶體操作之方法,其包括:在執行一操作之前,判定一操作將基於其被執行之一特定距離,其中該特定距離指示自一管理單元到達儲存於該管理單元中之資料將被寫入至其之一下一管理單元將計數之管理單元之數目(a number of managed units);回應於判定該第一管理單元位於離該第二管理單元該特定距離處,藉由將資料自該第二管理單元寫入至該第一管理單元,在數個管理單元(a number of managed units)上執行一操作;及將該第二管理單元置於一自由狀態。
  13. 如請求項12之方法,其中該方法包含將一特定邏輯位址分配至正寫入至該數個管理單元之各資料。
  14. 如請求項12之方法,其中該方法包含不將該資料寫入至置於一自由狀態之一特定管理單元。
  15. 如請求項12之方法,其中該方法包含開始於置於一自由狀態之一特定管理單元執行該操作。
  16. 一種用於對資料之記憶體操作之方法,其包括:判定一操作將基於其被執行之一特定距離,其中該特定距離指示自一管理單元到達另一管理單元將計數之管理單元之數目(a number of managed units);藉由將儲存於由一寫入游標指示之一第一管理單元中之資料寫入至處於一自由狀態之一管理單元而執行一操作;及回應於判定一第二管理單元位於離該第一管理單元該特定距離處,將該寫入游標之一位置更新至第二管理單元。
  17. 如請求項16之方法,其中該方法包含當完成將該資料寫入至處於一自由狀態之該管理單元後即將該第一管理單元置於一自由狀態。
  18. 如請求項16之方法,其中該方法包含:若該第一管理單元處於一自由或一無效狀態則跳過該第一管理單元上之該操作;且將該寫入游標置於位於離該第一管理單元該特定距離處之該第二管理單元處。
  19. 如請求項16之方法,其中該方法包含若該第一管理單元處於一無效狀態則執行該第一管理單元上之一清除操作。
  20. 如請求項16之方法,其中該方法包含在不追蹤於各管理單元上執行之數個寫入操作之情況下執行該操作。
TW106129580A 2016-11-08 2017-08-30 用於對資料之記憶體操作之設備及方法 TWI669607B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/345,783 US10430085B2 (en) 2016-11-08 2016-11-08 Memory operations on data
US15/345,783 2016-11-08

Publications (2)

Publication Number Publication Date
TW201818252A TW201818252A (zh) 2018-05-16
TWI669607B true TWI669607B (zh) 2019-08-21

Family

ID=62064547

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106129580A TWI669607B (zh) 2016-11-08 2017-08-30 用於對資料之記憶體操作之設備及方法

Country Status (6)

Country Link
US (3) US10430085B2 (zh)
EP (1) EP3538983A4 (zh)
KR (1) KR102271117B1 (zh)
CN (1) CN109923514B (zh)
TW (1) TWI669607B (zh)
WO (1) WO2018089084A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
JP6779821B2 (ja) * 2017-03-24 2020-11-04 キオクシア株式会社 メモリシステム及びデータの読み出し方法
US10585795B2 (en) 2018-05-31 2020-03-10 Micron Technology, Inc. Data relocation in memory having two portions of data
US10891224B2 (en) * 2018-09-06 2021-01-12 Micron Technology, Inc. Maintaining data consistency in a memory sub system that uses hybrid wear leveling operations
US10916324B2 (en) 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
TWI786288B (zh) * 2019-04-09 2022-12-11 韓商愛思開海力士有限公司 儲存裝置、儲存裝置的控制方法及記錄媒體

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120729B2 (en) * 2002-10-28 2006-10-10 Sandisk Corporation Automated wear leveling in non-volatile storage systems
US20130282967A1 (en) * 2011-09-30 2013-10-24 Raj K. Ramanujan Statistical wear leveling for non-volatile system memory
TW201502775A (zh) * 2013-02-15 2015-01-16 Lsi Corp 使用與低級可程式設計定序器結合的通用可程式設計處理器的非易失性記憶體通道控制

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1069420A (ja) 1996-08-29 1998-03-10 Sony Corp 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法
US6363008B1 (en) 2000-02-17 2002-03-26 Multi Level Memory Technology Multi-bit-cell non-volatile memory with maximized data capacity
US7139866B2 (en) 2002-12-30 2006-11-21 Micron Technology, Inc. CAM with automatic writing to the next free address
US20050055495A1 (en) 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
KR100684887B1 (ko) 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US7523381B2 (en) 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
EP1960863A2 (en) 2005-12-13 2008-08-27 SanDisk Corporation Logically-addressed file storage
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US20090013148A1 (en) 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
US8850102B2 (en) 2007-08-23 2014-09-30 Nokia Corporation Flash memory with small data programming capability
US20090259819A1 (en) 2008-04-09 2009-10-15 Skymedi Corporation Method of wear leveling for non-volatile memory
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
JP5188328B2 (ja) 2008-08-29 2013-04-24 株式会社日立製作所 半導体装置
US20100169708A1 (en) 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
US8255613B2 (en) * 2009-04-30 2012-08-28 International Business Machines Corporation Wear-leveling and bad block management of limited lifetime memory devices
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US20110167197A1 (en) 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
WO2011099963A1 (en) 2010-02-10 2011-08-18 Hewlett-Packard Development Company, L.P. Identifying a location containing invalid data in a storage media
WO2012009318A1 (en) 2010-07-13 2012-01-19 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US8949506B2 (en) 2010-07-30 2015-02-03 Apple Inc. Initiating wear leveling for a non-volatile memory
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
US8626989B2 (en) 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US9158546B1 (en) * 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US9164679B2 (en) * 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
TWI587136B (zh) 2011-05-06 2017-06-11 創惟科技股份有限公司 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法
US20130028296A1 (en) * 2011-07-27 2013-01-31 Khandekar Aamod D Chip x2 correlation hypotheses using chip x1 samples
US9158672B1 (en) * 2011-10-17 2015-10-13 Rambus Inc. Dynamic deterministic address translation for shuffled memory spaces
KR101572403B1 (ko) * 2011-12-22 2015-11-26 인텔 코포레이션 메모리 채널 셧다운에 의한 전력 절약
US20130219105A1 (en) 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for caching for non-volatile memory device
US9021275B1 (en) * 2012-03-30 2015-04-28 Emc Corporation Method and apparatus to exercise and manage a related set of power managed storage devices
US9645177B2 (en) 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
US20140012975A1 (en) * 2012-07-09 2014-01-09 National Applied Research Laboratories Computer cluster, management method and management system for the same
US20140129758A1 (en) 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
US8959281B1 (en) * 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
US9164832B2 (en) 2013-02-27 2015-10-20 Seagate Technology Llc ECC management for variable resistance memory cells
WO2014139047A1 (en) * 2013-03-14 2014-09-18 Micron Technology, Inc. Memory systems and methods including training,data organizing,and/or shadowing
US10073626B2 (en) * 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
TW201510724A (zh) 2013-09-11 2015-03-16 Skymedi Corp 非揮發性儲存裝置及其資料寫入方法
US9229860B2 (en) 2014-03-26 2016-01-05 Hitachi, Ltd. Storage system
US9361182B2 (en) 2014-05-20 2016-06-07 Transcend Information, Inc. Method for read disturbance management in non-volatile memory devices
US9239757B2 (en) 2014-05-30 2016-01-19 Sandisk Technologies Inc. Method and apparatus for relocating data in non-volatile memory
US9471451B2 (en) * 2014-06-18 2016-10-18 International Business Machines Corporation Implementing enhanced wear leveling in 3D flash memories
WO2016088234A1 (ja) 2014-12-04 2016-06-09 株式会社 東芝 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置
US9703725B2 (en) * 2014-12-19 2017-07-11 Dell Products, Lp System and method for providing kernel intrusion prevention and notification
US11755201B2 (en) * 2015-01-20 2023-09-12 Ultrata, Llc Implementation of an object memory centric cloud
US9891825B2 (en) * 2015-01-23 2018-02-13 Toshiba Memory Corporation Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity
US10318475B2 (en) * 2015-06-24 2019-06-11 Oracle International Corporation System and method for persistence of application data using replication over remote direct memory access
US9910791B1 (en) * 2015-06-30 2018-03-06 EMC IP Holding Company LLC Managing system-wide encryption keys for data storage systems
US9842059B2 (en) * 2016-04-14 2017-12-12 Western Digital Technologies, Inc. Wear leveling in storage devices
US10474567B2 (en) * 2016-05-25 2019-11-12 Samsung Electronics Co., Ltd. Multi-bit data representation framework to enable dual program operation on solid-state flash devices
KR102564563B1 (ko) * 2016-06-27 2023-08-11 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US10096649B2 (en) * 2016-08-04 2018-10-09 Qualcomm Incorporated Reducing or avoiding metal deposition from etching magnetic tunnel junction (MTJ) devices, including magnetic random access memory (MRAM) devices
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10198195B1 (en) * 2017-08-04 2019-02-05 Micron Technology, Inc. Wear leveling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120729B2 (en) * 2002-10-28 2006-10-10 Sandisk Corporation Automated wear leveling in non-volatile storage systems
US20130282967A1 (en) * 2011-09-30 2013-10-24 Raj K. Ramanujan Statistical wear leveling for non-volatile system memory
TW201502775A (zh) * 2013-02-15 2015-01-16 Lsi Corp 使用與低級可程式設計定序器結合的通用可程式設計處理器的非易失性記憶體通道控制

Also Published As

Publication number Publication date
US20180129423A1 (en) 2018-05-10
EP3538983A1 (en) 2019-09-18
CN109923514B (zh) 2022-05-17
KR102271117B1 (ko) 2021-07-01
US10430085B2 (en) 2019-10-01
KR20190067921A (ko) 2019-06-17
TW201818252A (zh) 2018-05-16
US20190369878A1 (en) 2019-12-05
US11209986B2 (en) 2021-12-28
US20220107735A1 (en) 2022-04-07
WO2018089084A1 (en) 2018-05-17
CN109923514A (zh) 2019-06-21
EP3538983A4 (en) 2020-06-24
US11886710B2 (en) 2024-01-30

Similar Documents

Publication Publication Date Title
TWI669607B (zh) 用於對資料之記憶體操作之設備及方法
TWI658358B (zh) 記憶體中基於機率資料結構之前瞻修正動作
TWI644209B (zh) 記憶體管理
US8180954B2 (en) Flash management using logical page size
JP5649742B2 (ja) トランザクションログの復元
JP5522499B2 (ja) メモリデバイスおよびシステム中のブートパーティション
US20100318760A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
TWI727458B (zh) 記憶體裝置及用於控制記憶體裝置之方法
KR20230142795A (ko) Zns 디바이스들에서의 상이한 기입 우선순위화
TWI388986B (zh) 快閃記憶體裝置的運作方法及快閃記憶體裝置
CN114730250A (zh) 根据存储设备中的分区对读取命令加权
US20220262453A1 (en) Memory device and memory system
US11409459B2 (en) Data parking for SSDs with zones
TWI823649B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置
CN111949197B (zh) 一种3d tlc闪存存储器及其数据写入方法和装置
TWI763050B (zh) 自適應損耗平衡方法及演算法與相關記憶體裝置及設備