CN112912834B - 存取单元和管理片段存储器操作 - Google Patents
存取单元和管理片段存储器操作 Download PDFInfo
- Publication number
- CN112912834B CN112912834B CN201980064685.7A CN201980064685A CN112912834B CN 112912834 B CN112912834 B CN 112912834B CN 201980064685 A CN201980064685 A CN 201980064685A CN 112912834 B CN112912834 B CN 112912834B
- Authority
- CN
- China
- Prior art keywords
- memory
- management
- access
- memory component
- segment
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
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 Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种系统,其包含第一存储器组件,其具有与执行存储器操作相关联的特定存取大小;第二存储器组件,其存储逻辑到物理数据结构,所述数据结构的条目将管理片段映射到所述存储器组件中的相应物理位置,其中每一管理片段对应于具有所述特定存取大小的经聚合的多个逻辑存取单元;和处理装置,其可操作地耦合到所述存储器组件。所述处理装置可通过以下操作在每管理片段基础上执行存储器管理操作:对于每一相应管理片段,跟踪对与所述相应管理片段对应的组员存取单元的存取请求;和基于所述跟踪确定是否对所述相应管理片段执行特定存储器管理操作。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及存取单元和管理片段存储器操作。
背景技术
存储器子系统可以是存储系统,如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。存储器子系统可为存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器子系统可包含一或多个存储器组件。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
发明内容
本公开的实施例提供一种系统,其包括:第一存储器组件,其具有与逻辑存取单元对应的特定存取大小,所述逻辑存取单元具有与耦合到所述第一存储器组件的处理装置的与存储器操作的执行相关联的高速缓存行大小相同的大小;第二存储器组件,其存储逻辑到物理数据结构,所述数据结构的管理条目将管理片段映射到所述存储器组件中的相应物理位置,其中每一管理片段对应于具有所述特定存取大小的经聚合的多个逻辑存取单元,且其中所述管理条目包括管理片段地址、时间戳或存取计数或其组合中的至少一个;优先级排序器电路,其被配置成协调与所述第一存储器组件相关联的被动干扰管理操作的执行;和处理装置,其可操作地耦合到所述第一存储器组件,所述处理装置被配置成:通过控制具有与所述逻辑存取单元对应的所述特定存取大小的数据到所述第一存储器组件的传送,致使所述被动干扰管理操作的执行;和在每管理片段基础上通过以下操作来执行存储器管理操作:对于每一相应管理片段,跟踪对与所述相应管理片段对应的组员存取单元的存取请求;和基于所述跟踪和来自所述优先级排序器电路的输入确定是否对所述相应管理片段执行特定存储器管理操作。
本公开的另一实施例提供一种系统,其包括:存储器组件,其具有与逻辑存取单元对应的特定存取大小,所述逻辑存取单元具有与耦合到所述存储器组件的处理装置的与存储器操作相关联的高速缓存行大小相同的大小;逻辑到物理数据结构,其条目将管理片段映射到所述存储器组件中的相应物理位置,其中每一管理片段对应于具有所述特定存取大小的经聚合的多个逻辑存取单元;优先级排序器电路,其被配置成协调与所述存储器组件相关联的被动干扰管理操作的执行;和处理装置,其被配置成:通过控制具有与所述逻辑存取单元对应的所述特定存取大小的数据到所述存储器组件的传送,致使所述被动干扰管理操作的执行;和响应于接收到的对具有所述特定存取大小的特定存取单元执行存储器操作的请求:确定与所述特定存取单元对应的管理条目,其中所述管理条目包括管理片段地址、时间戳或存取计数或其组合中的至少一个;更新所述管理条目的属性数据;和基于所述经更新属性数据确定是否对与所述管理条目对应的所述管理片段执行媒体管理操作。
本公开的又一实施例提供一种方法,其包括:使用将管理片段映射到存储器组件的相应物理位置的管理条目执行存储器管理操作,其中每一管理片段对应于具有特定存取大小的经聚合的多个逻辑存取单元,所述特定存取大小对应于具有与处理装置的高速缓存行大小相同的大小的逻辑存取单元,且其中所述管理条目包括管理片段地址、时间戳或存取计数或其组合中的至少一个;跟踪对应于每一管理片段的存取请求;基于从优先级排序器电路接收到的输入,通过控制具有对应于所述逻辑存取单元的所述特定存取大小的数据到所述存储器组件的传送来执行被动干扰管理操作;和至少部分地基于所述跟踪,确定是否对相应管理片段执行特定存储器管理操作。
附图说明
根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
图2说明根据本公开的一些实施例的包含存储器子系统的另一实例计算环境。
图3说明根据本公开的一些实施例的存储器组件的一部分的实例。
图4是根据本公开的一些实施例的对应于存取单元和管理片段存储器操作的实例方法的流程图。
图5是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的方面针对于存取单元和管理片段存储器操作。存储器子系统在下文也称为“存储器装置”。存储器子系统的实例是通过外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器和硬盘驱动器(HDD)。存储器子系统的另一实例是经由存储器总线联接到CPU的存储器模块。.存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。在一些实施例中,存储器子系统是混合式存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统(例如,SSD)可包含媒体管理组件,其可用以对提供管理操作的处置以维持存储器子系统健康。一些新兴的存储器子系统(例如三维交叉点(3-DXP)存储器子系统)可要求超出“与非”(NAND)类型存储器的常规动态随机存取(DRAM)的管理处置的特殊管理处置。举例来说,一些存储器子系统可要求对例如以下特性的管理:对读取和/或写入循环的数目的耐久性限制、读取分界电压的漂移、对写入操作的近接干扰效应和/或对读取操作的自干扰效应。
处置对以上特性的管理的一些常规方法可包含耗损均衡、干扰管理和/或漂移管理。然而,在一些常规方法中,这些技术同时实施于数据页(例如,大约4千字节(KB)的数据)上。一般来说,随着在执行耗损均衡、干扰管理和/或漂移管理技术时使用的数据量增加,对存储器子系统的有害影响也可增加。举例来说,使用大约存储器子系统的一个页大小(例如,4KB)的单元执行干扰管理的一些方法可对写入或读取的整个页产生近接干扰和/或自干扰效应。
相比之下,本文中所描述的实施例允许小于存储器子系统的页大小的存取单元大小。在一些实施例中,举例来说,存取单元大小可为64字节(例如,页大小的1/64大小)或128字节(例如,页大小的1/32大小)。相较于使用与页大小相当的存取单元大小的方法,通过提供小于页大小的存取单元大小,可实现改进的写入放大。另外,在一些实施例中,存取单元大小可与供与存储器子系统相关联的处理资源的高速缓存行使用的码字大小相当,这与使用与页大小相当的存取单元大小的方法相比可精简码字处理量。处理资源是对外部数据源执行操作的硬件装置。码字是代码或协议元素,例如与计算机代码或计算协议相关联的连续位串。高速缓存行是在计算机存储器和计算装置的各个高速缓存器之间传送的固定大小的数据单元。
另外,本公开描述具有小于页大小的大小的存取单元的利用,这与利用与页大小相当的存取单元大小的方法相比可减少错误校正需求。举例来说,归因于与较小存取单元相关联的写入干扰的效应减小,可需要较少错误校正来确保数据完整性。
在一些实施例中,可使用与页大小相当的管理片段执行耗损均衡。举例来说,64字节存取单元可组合成具有大约4KB的大小的单个管理片段。通过对更大管理片段执行耗损均衡,可优化耗损均衡操作,同时通过使用较小存取单元大小来降低干扰效应。以组合方式,归因于上文所提及的降低的干扰效应结合优化的耗损均衡,这些可允许改进写入放大。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,如存储器组件112A到112N。存储器组件112A到112N可以是易失性存储器组件、非易失性存储器组件或这类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合式存储器/存储装置子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可为计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、支持物联网的装置,或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120还可利用NVM高速(NVMe)接口来存取存储器组件112A到112N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。
存储器组件112A到112N可以包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含“与非”(NAND)类型快闪存储器。存储器组件112A到112N中的每一个可包含一或多个存储器单元阵列,如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可以包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一个可存储供主机系统120使用的一或多个数据位(例如,数据块)。虽然描述如NAND类型快闪存储器的非易失性存储器组件,但存储器组件112A到112N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112A到112N可以是(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112A到112N的存储器单元可分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
存储器系统控制器115(下文称为“控制器”)可与存储器组件112A到112N通信以执行操作,例如在存储器组件112A到112N处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器115可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。控制器115可包含处理装置(例如,处理器117),其被配置成执行存储于本地存储器119中的指令。在所说明的实例中,控制器115的本地存储器119包含被配置成存储指令以用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程以及例程的嵌入式存储器。在一些实施例中,本地存储器119可以包含存储器寄存器,其存储存储器指针、提取的数据等。本地存储器119还可以包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可能不包含控制器115,且可改为依靠(例如由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
在一些实施例中,控制器115包含媒体管理组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,媒体管理组件113是主机系统120、应用程序或操作系统的部分。然而,实施例不限于此,且媒体管理组件113可部署在控制器115外部。
一般来说,控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适合的命令以实现对存储器组件112A到112N的所需存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和在与存储器组件112A到112N相关联的逻辑块地址与物理块地址之间的地址转译。控制器115可另外包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器组件112A到112N,以及将与存储器组件112A到112N相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。举例来说,存储器组件112A到112N可包含控制电路系统、地址电路系统(例如,行和列解码电路系统)和/或所述存储器组件可与控制器115和/或主机120通信所借助的输入/输出(I/O)电路系统。作为实例,在一些实施例中,地址电路系统(可从控制器115接收地址且解码所述地址以存取存储器组件112A到112N)。
存储器子系统110包含媒体管理组件113(例如,如本文中所描述的被配置成执行用于存储器子系统110的管理操作的电路系统和/或逻辑)。媒体管理组件113可在本文中替代地被称为“处理装置”。媒体管理组件113可被配置成致使产生各自包含特定量的数据的存取单元。在一些实施例中,媒体管理组件113可被配置成产生对应于处理器117的高速缓存行大小的存取单元。举例来说,媒体管理组件113可被配置成产生含有64字节数据、128字节的数据等的存取单元。在一些实施例中,存取单元可包括可被存储器组件112A到112N存取(例如,写入到存储器组件112A到112N、从存储器组件112A到112N读取、由存储器组件112A到112N存储、传送到存储器组件112A到112N或从存储器组件112A到112N传送等)的码字。举例来说,媒体管理组件113可接收和/或发射用以产生存取单元(例如,本文中结合图3描述的存取单元330)和/或管理片段(例如,本文中结合图3描述的管理片段332)的信号。
媒体管理组件113可被进一步配置成产生包含多个存取单元的管理片段。在一些实施例中,管理片段可具有对应于存储器组件112A到112N的页大小的大小(例如,4KB)。在此实例中,管理单元可包含六十四个64字节存取单元、三十二个128字节存取片段等。
在一些实施例中,媒体管理组件113可被配置成致使使用管理片段执行存储器管理操作。作为实例,媒体管理组件113可被配置成致使对管理片段执行耗损均衡操作。然而,实施例不限于此,且在一些实施例中,媒体管理组件113可被配置成致使对存储器组件112A到112N的其中存储有存取单元的部分执行被动干扰管理操作。如本文中所使用,举例来说,“被动干扰管理操作”可指管理或降低当数据写入到存储器组件112A到112N时可出现的干扰效应的影响的操作。举例来说,如本文中更详细地描述,可通过限制存取单元的大小和/或写入跨存储器组件112A到112N的通道的存取单元,执行被动写入干扰管理操作。然而,实施例不限于耗损均衡操作或一干扰管理操作中的任一个的性能,且在一些实施例中,媒体管理组件113可执行耗损均衡操作和被动干扰管理操作两者。
媒体管理组件113可被配置成产生和/或附加存取计数计数器121到管理片段。举例来说,媒体管理组件113可致使存取计数计数器121对应于使用管理片段执行存储器管理操作的次数和/或已对存储器组件112A到112N的特定页执行存储器管理操作的次数。另外,或在替代方案中,如下文更详细地描述,存取计数计数器121可被配置成跟踪对存储器组件112A到112N的部分的存取频率。在一些实施例中,与跟踪存储器组件112A到112N的特定位置参与执行存储器管理操作的次数的一些先前方法相比,存取计数器121可用于为存储器组件112A到112N提供改进的写入放大特性。另外,媒体管理组件113可使用存取计数计数器121采取例如以下动作来减少对存储器组件112A到112N的某些部分的写入放大:致使对存储器组件112A到112N的与存储器组件112A到112N的其它部分相比较不频繁被使用的部分执行存储器管理操作。
图2说明根据本公开的一些实施例的包含存储器子系统110的另一实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N和/或主存储器,例如DRAM209。存储器组件112A到112N可以是易失性存储器组件、非易失性存储器组件或这类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合式存储器/存储子系统(例如,包含3DXPoint存储器部分和主存储器部分(例如DRAM部分)的存储器子系统)。图2中所说明的计算环境100可类似于图1中所说明的计算环境100。
在本文中,存储器子系统110可耦合到接口207,所述接口207可耦合到主机系统,例如图1中所说明的主机系统120。在一些实施例中,接口207可为双倍数据速率接口,例如DDR4、DDR5、DDR-T等接口,或非易失性双列直插式存储器(NVDIMM)接口,例如NVDIMM-N、NVDIMM-P等接口。然而,实施例不限于列举的这些实例,且接口207可为如下任何类别的接口:将命令(例如,CMD)提供到存储器子系统110和/或提供进出存储器子系统100的双向数据路径(例如,DATA)。另外,在一些实施例中,存储器子系统110可包括DDR DIMM,其包含主存储器部分,例如动态随机存取存储器(DRAM)部分,以及三维非易失性存储器部分,例如3D交叉点(3D XPoint)存储器部分。在一些实施例中,主机系统120可经由事务DDR接口存取非易失性存储器部分。举例来说,可经由来自主机系统120的DDR存取请求存取非易失性存储器部分。
存储器子系统110可包含媒体管理组件113(本文中结合图1更详细地描述),其可包含逻辑到物理(L2P)表216。存储器子系统110可另外包含管理子组件214和/或优先级排序器218。管理子组件214可包含被配置成与媒体管理组件113协同执行媒体管理操作的电路系统和/或逻辑。举例来说,管理子组件214可包含如下子组件:被配置成执行对存取媒体112A到112N的监测以例如协调响应于干扰效应、耗损均衡、写入到读取和/或写入到写入时序管理、漂移管理和/或后台媒体监测而执行的校正性读取和/或刷新操作。
L2P表216可在管理片段层级上执行逻辑到物理地址转译。举例来说,L2P表216可被配置成为存储器子系统110所使用的管理片段提供逻辑到物理地址转译。在一些实施例中,L2P表216可在本文中被称作管理片段表。如本文中所使用,管理片段表可包含对应于片段地址(例如,对应于存取单元和/或管理片段的地址)、与存取单元和/或管理片段相关联的时间戳和/或管理片段存取计数值(例如,存取计数计数器值)的信息。
优先级排序器218可包含如下电路系统和/或逻辑:被配置成协调管理子组件214所执行的操作和/或为管理子组件214所执行的操作指配优先级等级以协调管理子组件214所执行的操作。举例来说,优先级排序器218可被配置成确定执行上文所描述的与管理子组件214相关联的操作的次序。虽然在图2中示出为控制器115的部分,但管理子组件214和/或优先级排序器218无需物理上安置于控制器上或内。举例来说,在一些实施例中,管理子组件214和/或优先级排序器可位于存储器子系统110上或内和/或管理子组件214和/或优先级排序器218的部分可部分地位于控制器115上或内。
在一些实施例中,计算环境100可包括用于存取单元和管理片段存储器操作的系统。举例来说,媒体管理组件113可维持逻辑到物理数据结构216,其条目将管理片段映射到存储器组件113中的相应物理位置。管理片段可对应于具有特定存取大小的经聚合的多个逻辑存取单元。媒体管理组件113可被配置成对具有特定存取大小的特定存取单元执行存储器操作,确定特定存取单元对应的管理条目,更新管理条目的属性数据,以及基于经更新属性数据确定是否在对应于管理条目的管理片段上执行媒体管理操作。所述属性数据可包含管理条目内的计数值(例如,存取计数器121所存储的值)、旗标、阈值计数值等。在一些实施例中,管理条目可包含管理片段地址、时间戳和/或存取计数。
存储器组件112A到112N可具有与其相关联的特定存取大小。所述特定存取大小可对应于存储器组件的输入/输出(I/O)传送大小并且与主机(例如,本文中在图1中所说明的主机系统120)的传送大小对准。举例来说,所述特定存取大小可对应于主机的与用于计算环境100的存储器操作的执行相关联的高速缓存行大小。
如上文所描述,存储器组件112A到112N可包括非易失性存储器。举例来说,存储器组件112A到112N可包括具有非易失性就地写入能力的非易失性存储器和/或响应于存储器操作的执行受到耗损的存储器。在一些实施例中,除了非易失性存储器组件112A到112N之外,DRAM存储器部分209也可提供给计算环境。应注意,在一些实施例中,如上文所描述,存储器组件112A到112N可经由DDR接口与主机通信。
图3说明根据本公开的一些实施例的存储器组件112的一部分的实例。存储器组件112的部分可包含多个存储器通道,所述存储器通道可包含存储器页和/或存储器分区。举例来说,如图3中所示,每一存储器通道(C)可包含存储器页(n、n+1、n+2、……、n+5)和/或存储器分区(0到31)。
可跨存储器组件113的一部分的多个通道存储存取单元330(其可由在本文中结合图1论述的媒体管理组件113产生)。在一些实施例中,存取单元330具有对应于耦合到存储器组件112的处理器(例如,本文中在图1中所说明的处理器117)的高速缓存行大小的大小。举例来说,存取单元330可具有大约64字节、128字节等的大小。如图3中所示,跨延伸到存储器组件112的含有存储器组件112的页n和/或n+1和分区31的部分的页中的通道C(例如,通道C=0到通道C-1,如图3的右下角所示)存储存取单元330。如将了解,此特定实例并非限制性,且可跨存储器组件112的不同页和/或分区的不同通道存储存取单元330。
在一些实施例中,与一些先前方法相比,通过跨存储器组件112的多个通道存储存取单元330,可减轻写入干扰效应。另外,在一些实施例中,与一些先前方法相比,通过将存取单元330的大小限制为对应于耦合到存储器组件112的处理器(例如,本文中在图1中所说明的处理器117)的高速缓存行的大小,可将写入干扰效应降到最低。这可引起随后可对存取单元330执行的错误校正操作的减少。
可跨多个存储器页(例如,页n+2和/或n+3)和/或分区(例如,分区0到31)存储管理片段332(可由本文中结合图1论述的媒体管理组件113)产生。如将了解,此特定实例并非限制性,且可跨存储器组件112的不同页和/或分区存储管理片段332。在一些实施例中,与一些先前方法相比,通过跨存储器组件113的多个页和/或分区存储管理片段332,可使用对应于存储器组件112的页大小的数量的数据执行存储器管理操作,例如耗损均衡操作,这可允许在将写入放大效应降到最低的同时有效管理耗损均衡操作。
在一些实施例中,管理片段332可具有对应于存储器组件112的页大小的大小。举例来说,管理片段332可具有大约4KB的大小,所述大小可对应于存储器组件112的页大小。因此,在其中存取单元330大小是64字节且管理片段332大小是大约4KB的实例中,管理片段332可包含六十四个存取单元330。换句话说,在一些实例中,管理片段332可通过组合多个存取单元330产生。在一些实施例中,可使用上文结合图1和图2描述的媒体管理组件组合存取单元330以形成管理片段332。换句话说,管理片段332可包括存取单元330的聚合。这可降低独立跟踪存取单元330的复杂性。
在一些实施例中,管理片段332可包含片段元数据333。片段元数据333可为具有与其相关联的特定位量或字节量的码字。片段元数据332可包含与存储器组件112和/或管理片段332相关联的各种管理数据。在一些实施例中,片段元数据333可为包含存取计数计数器的码字。存取计数计数器可响应于存储器管理操作的执行而递增。举例来说,上文结合图1和图2描述的媒体管理组件可被配置成致使存取计数计数器响应于管理片段332和/或存取单元330进行的存取而递增。另外,在一些实施例中,与一些先前方法相比,片段元数据可跟踪存储器管理操作的执行频率以提供改进的写入放大。
作为改进存储器组件112的写入放大的过程的部分,可监测存取计数计数器(例如,本文中在图1和图2中所说明的存取计数器121)。举例来说,一旦存取计数计数器已达到阈值计数量,媒体管理组件便可采取校正性动作以减少用于存储器组件112的写入放大。在一些实施例中,可在存储器组件112的寿命内维持存取计数计数器。
如图3中所示,管理片段332可具有物理上位于管理片段332上方的北相邻者片段336和物理上位于管理片段332下方的南相邻者片段338。一般来说,当从存储器组件112的读取数据或将数据写入到存储器组件112的部分时,相邻区可经历干扰效应。举例来说,当管理片段332写入到对其进行存储的分区或从所述分区进行读取时,北相邻者片段336和/或南相邻者片段338可经历干扰(例如,写入干扰和/或近接干扰)效应,这可给存储于北相邻者片段336和/或南相邻者片段338中的数据带来非所要结果。
然而,在一些实施例中,可缓解给存储于北相邻者片段336和/或南相邻者片段338中的数据带来非所要结果。举例来说,如上文所描述,与一些先前方法相比,通过使用存取单元330和管理片段332,可降低可给北管理片段336和/或南管理片段338带来的非所要效应。也就是说,在一些实施例中,相较于先前方法,通过组合利用大小类似于处理器的高速缓存行大小的存取单元330对存储器组件的被动干扰管理操作的执行与由选择大于存取单元330大小的管理片段332大小引起的干扰管理操作的执行,可实现写入放大的改进。
图4是根据本公开的一些实施例的对应于存取单元和管理片段存储器操作的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的媒体管理组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在一些实施例中,处理装置可维持逻辑到物理数据结构,其条目将管理片段映射到存储器组件中的相应物理位置,其中每一管理片段对应于具有特定存取大小的经聚合的多个逻辑存取单元。在一些实施例中,存取单元包括第一数量的数据。处理装置可类似于本文中结合图1和图2描述的媒体管理组件113,或包含所述媒体管理组件113的一部分。存取单元可类似于本文中结合图3描述的存取单元330。在一些实施例中,存取单元可包括具有与其相关联的数量的数据的码字,所述数量对应于处理装置的高速缓存行大小(例如,对应于存储器组件的输入/输出(I/O)传送大小并且与主机的传送大小对准)。举例来说,第一数量的数据可为64字节、128字节等。
在框443处,处理装置使用管理片段执行存储器管理操作,其中每一管理片段对应于具有特定存取大小的经聚合的多个逻辑存取单元。存储器管理操作可包含耗损均衡操作、干扰管理操作(例如,被动干扰管理操作)等。在一些实施例中,存储器管理操作的执行可包含同时执行耗损均衡操作和干扰管理操作。
在框445处,处理装置跟踪对应于每一管理片段的存取请求。可借助于存取计数器(例如,本文中在图1和图2中所说明的存取计数器121)执行所述跟踪。举例来说,存取计数器可响应于存储器管理操作的执行而递增直到达到阈值计数值。在一些实施例中,可提供多个存取计数器。举例来说,可为每一管理片段提供存取计数器。在一些实施例中,作为根据本公开的一些实施例改进写入放大的部分,存取计数计数器可响应于存储器操作的执行而递增。
在一些实施例中,处理装置可监测存取计数计数器以确定已使用管理片段执行了多少个存储器操作和/或已对存储器组件的特定部分(例如,特定页)执行了多少个存储器操作。一旦存取计数计数器已递增到阈值,处理装置可致使使用管理片段对存储器组件的不同部分执行后续存储器操作。另外(或在替代方案中),一旦存取计数计数器已递增到阈值,处理装置便可致使使用不同管理片段执行后续存储器操作,所述不同管理片段可使用相同存取单元或不同存取单元形成。
在框447处,处理装置至少部分地基于跟踪,确定是否对相应管理片段执行特定存储器管理操作。举例来说,如果存取计数器已递增到阈值,那么处理装置可确定不执行特定存储器操作。相比之下,如果处理装置确定存取计数器尚未递增到阈值,那么处理装置可确定可使用管理片段执行另一存储器管理操作。
在一些实施例中,处理装置将存取单元传送到存储器组件的多个通道。在一些实施例中,存储器组件可类似于本文中结合图1论述的存储器组件112A到112N。如本文中结合图3所描述,存取单元可传送到存储器组件的多个通道。举例来说,存取单元可传送到存储器组件的C通道。在一些实施例中,将存取单元传送到存储器组件的多个通道可包含对存储器组件执行被动干扰管理操作。举例来说,与一些先前方法相比,通过传送大小与处理装置的高速缓存行相当的存取单元,可同时写入到存储器组件的较少部分,这继而可引起存储器组件经历的写入干扰效应减少。
处理装置可进一步从存取单元产生管理片段。管理片段可包含阈值数量的存取单元。举例来说,管理片段可为聚合数量的存取单元。存取单元可类似于本文中结合图3描述的管理片段332。在一些实施例中,产生管理片段可包含将一定数量的存取单元组合成管理片段。因此,管理片段可具有与其相关联的数量的数据,所述数量大于与存取单元相关联的数据数量。举例来说,管理片段可包含存储器组件的大约页大小(例如,大约4KB)的数据。
处理装置可将管理片段存储于存储器组件的页中。如本文中结合图3所描述,管理片段可存储于存储器组件的多个页中和/或多个分区上。如上文所描述,管理片段可包含元数据片段(例如,本文中在图3中所说明的元数据片段333),其可包含存取计数计数器和/或管理元数据。
在一些实施例中,处理装置可对管理片段执行存储器管理操作。存储器管理操作可为如上文所描述的耗损均衡操作。举例来说,处理装置可致使对管理片段执行耗损均衡操作。可执行耗损均衡操作以确保存储器组件的特定部分不被过度使用且因此不会比存储器组件的其它部分更快速劣化。
在一些实施例中,处理装置可致使产生存取单元,其各自包括具有第一数量的数据的码字。在一些实施例中,所述第一数量的数据可对应于处理装置的高速缓存行大小(例如,64字节、128字节等)。在一些实施例中,处理装置可执行指令以致使基于存储于存储器组件的逻辑到物理映射表中的数据产生存取单元。
处理装置可进一步致使跨存储器组件的c通道存储存取单元。举例来说,如上文结合图3所描述,处理装置可执行指令以致使存取单元跨存储器组件的多个通道分布。在一些实施例中,通过跨存储器组件的多个通道分布存取单元,可对存储器组件执行被动干扰管理操作。举例来说,与一些先前方法相比,通过以此方式存储存取单元,可写入到存储器组件的较少存储器位置,这可引起写入干扰效应减少。
处理装置可进一步致使产生具有第二数量的数据的管理片段。所述第二数量的数据可大于所述第一数量的数据。在一些实施例中,管理片段包含阈值数量的存取单元。举例来说,如果管理片段的大小是大约4KB且存取单元各自包含64字节,那么管理单元可包含六十四个64字节存取单元。
在一些实施例中,处理装置可进一步致使元数据码字包含在管理片段中。所述元数据码字可包含对应于将存取单元和管理片段存储于存储器组件中的频率的信息。举例来说,元数据码字可包含允许做出关于将存取单元和/或管理片段存储于存储器组件中的频率的确定的信息。此信息可用作执行耗损均衡操作以与一些先前方法相比改进存储器组件的写入放大的部分。
处理装置可进一步致使管理片段存储于存储器组件的特定页中。举例来说,如上文结合图3所描述,管理片段可存储于存储器组件的一或多个页和/或分区中。在其中管理片段的大小对应于存储器组件的页大小的实施例中,管理片段可存储于存储器组件的单个页中。然而,实施例不限于此,且取决于存储器装置的页大小和/或管理片段的大小,可跨存储器组件的多个页和/或分区存储管理片段。
处理装置可进一步致使对存储器组件的上面存储有管理片段的特定页执行耗损均衡操作。如上文所描述,可执行耗损均衡操作以确保存储器组件的特定部分不被过度使用且因此不会比存储器组件的其它部分更快速劣化。
处理装置可进一步致使对存储器组件的上面存储有管理片段的特定页执行耗损均衡操作。如上文所描述,可执行耗损均衡操作以确保存储器组件的特定部分不被过度使用且因此不会比存储器组件的其它部分更快速劣化。
在一些实施例中,处理装置可进一步致使元数据码字包含在管理片段中。元数据码字可包含对应于与管理片段相关联的存取计数量的信息。如上文所描述,存取计数计数器可响应于与管理片段相关联的存取计数量而递增。举例来说,存取计数计数器可响应于使用管理片段执行存储器操作和/或在存储器组件的上面存储有管理片段的位置处执行存储器操作而递增。在一些实施例中,存取计数器可在不考虑存取管理片段内的哪个存取单元的情况下递增。这可允许准确跟踪存取单元被存取的次数,进而与无法跟踪对存取单元的每次存取的方法相比改进对管理特性的处置。
处理装置可进一步致使做出已达到与管理片段相关联的存取计数的数量的确定,致使管理片段存储于存储器组件的不同页上,和/或致使对管理片段传送到的存储器组件的不同页执行后续耗损均衡操作。举例来说,一旦存取计数计数器已递增到阈值,处理装置便可致使使用管理片段对存储器组件的不同部分执行后续存储器操作。另外,一旦存取计数计数器已递增到阈值,处理装置便可致使使用不同管理片段执行后续存储器操作。
图5说明计算机系统500的实例机器,可执行所述计算机系统500内的用于致使所述机器执行本文中所论述的方法中的任一种或多种方法的指令集。在一些实施例中,计算机系统500可对应于包含、耦合到或使用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,以执行操作系统来执行对应于图1的媒体管理组件113的操作)的主机系统(例如,图1的主机系统120)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器506(例如,闪存存储器、静态随机存取存储器(SRAM)等),以及数据存储系统518,其经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502被配置成执行指令526以用于执行本文中所论述的操作和步骤。计算机系统500可另外包含网络接口装置508以在网络520上通信。
数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),其上存储有一或多个指令集526或体现本文中所描述的方法或功能中的任一或多种的软件。指令526还可在由计算机系统500执行期间完全或至少部分地驻存在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
在一个实施例中,指令526包含实施对应于电力管理组件(例如,图1的媒体管理组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
Claims (18)
1.一种存储器系统,其包括:
第一存储器组件,其具有与逻辑存取单元对应的特定存取大小,所述逻辑存取单元具有与耦合到所述第一存储器组件的处理装置的与存储器操作的执行相关联的高速缓存行大小相同的大小;
第二存储器组件,其存储逻辑到物理数据结构,所述物理数据结构的管理条目将管理片段映射到所述第二存储器组件中的相应物理位置,其中每一管理片段对应于具有所述特定存取大小的经聚合的多个逻辑存取单元,且其中所述管理条目包括管理片段地址、时间戳或存取计数或其组合中的至少一个;
优先级排序器电路,其被配置成协调与所述第一存储器组件相关联的被动干扰管理操作的执行;和
处理装置,其可操作地耦合到所述第一存储器组件,所述处理装置被配置成:
通过控制具有与所述逻辑存取单元对应的所述特定存取大小的数据到所述第一存储器组件的传送,致使所述被动干扰管理操作的执行;和
通过以下操作在每管理片段基础上执行存储器管理操作:
对于每一相应管理片段,跟踪对与所述相应管理片段对应的组员存取单元的存取请求;和
基于所述跟踪和来自所述优先级排序器电路的输入确定是否对所述相应管理片段执行特定存储器管理操作。
2.根据权利要求1所述的系统,其中与相应逻辑存取单元相关联的数据数量小于与所述相应管理片段相关联的数据数量。
3.根据权利要求1所述的系统,其中所述处理装置被配置成作为执行所述存储器操作的部分,对所述管理片段执行耗损均衡操作。
4.根据权利要求1所述的系统,其中所述处理装置的所述高速缓存行大小是128字节或更少。
5.根据权利要求1所述的系统,其中所述管理片段包括存取计数器,且其中所述存取计数器可响应于每一存储器管理操作的执行而递增。
6.根据权利要求1所述的系统,其中所述处理装置被配置成致使跨所述第一存储器组件的第一部分的c通道写入所述存取单元。
7.根据权利要求1所述的系统,其中所述第一存储器组件包括多个存储器组件,且其中至少一个存储器组件包括易失性存储器组件且至少一个存储器组件包括三维交叉点存储器组件。
8.一种存储器系统,其包括:
存储器组件,其具有与逻辑存取单元对应的特定存取大小,所述逻辑存取单元具有与耦合到所述存储器组件的处理装置的与存储器操作相关联的高速缓存行大小相同的大小;
逻辑到物理数据结构,其条目将管理片段映射到所述存储器组件中的相应物理位置,其中每一管理片段对应于具有所述特定存取大小的经聚合的多个逻辑存取单元;
优先级排序器电路,其被配置成协调与所述存储器组件相关联的被动干扰管理操作的执行;和
处理装置,其被配置成:
通过控制具有与所述逻辑存取单元对应的所述特定存取大小的数据到所述存储器组件的传送,致使所述被动干扰管理操作的执行;和
响应于接收到的对具有所述特定存取大小的特定存取单元执行存储器操作的请求:
确定与所述特定存取单元对应的管理条目,其中所述管理条目包括管理片段地址、时间戳或存取计数或其组合中的至少一个;
更新所述管理条目的属性数据;和
基于所述经更新属性数据,确定是否对与所述管理条目对应的所述管理片段执行媒体管理操作。
9.根据权利要求8所述的系统,其中所述特定存取大小是所述存储器组件的输入/输出I/O传送大小并且与主机的传送大小对准。
10.根据权利要求8所述的系统,其中所述存储器组件包括第一存储器部分和第二存储器部分,所述第一存储器部分包括易失性存储器,所述第二存储器部分包括具有就地写入能力的非易失性存储器。
11.根据权利要求8所述的系统,其中所述存储器组件包括第一存储器部分和第二存储器部分,所述第一存储器部分包括易失性存储器,所述第二存储器部分包括响应于存储器操作的执行受到耗损的非易失性存储器。
12.根据权利要求8所述的系统,其中所述媒体管理操作包括耗损均衡操作和干扰管理操作。
13.根据权利要求8所述的系统,其中所述处理装置被进一步配置成响应于所述存储器操作的执行而使存取计数器递增。
14.一种在存储器系统中使用的方法,其包括:
使用将管理片段映射到存储器组件的相应物理位置的管理条目执行存储器管理操作,其中每一管理片段对应于具有特定存取大小的经聚合的多个逻辑存取单元,所述特定存取大小对应于具有与处理装置的高速缓存行大小相同的大小的逻辑存取单元,且其中所述管理条目包括管理片段地址、时间戳或存取计数或其组合中的至少一个;
跟踪对应于每一管理片段的存取请求;
基于从优先级排序器电路接收到的输入,通过控制具有对应于所述逻辑存取单元的所述特定存取大小的数据到所述存储器组件的传送来执行被动干扰管理操作;和
至少部分地基于所述跟踪,确定是否对相应管理片段执行特定存储器管理操作。
15.根据权利要求14所述的方法,其中执行所述存储器管理操作包括执行耗损均衡操作。
16.根据权利要求14所述的方法,其中所述跟踪包括响应于每一存储器管理操作的执行而使存取计数器递增。
17.根据权利要求16所述的方法,其另外包括:
确定所述存取计数器已递增到阈值;和
响应于所述确定,使用所述存储器组件的不同页对不同管理片段执行后续存储器管理操作。
18.根据权利要求14所述的方法,其中所述存储器组件包括第一存储器部分和第二存储器部分,所述第一存储器部分包括易失性存储器,所述第二存储器部分包括响应于存储器操作的执行受到耗损的非易失性存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210156617.7A CN114527943A (zh) | 2018-10-02 | 2019-10-01 | 存取单元和管理片段存储器操作 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/149,961 | 2018-10-02 | ||
US16/149,961 US10817430B2 (en) | 2018-10-02 | 2018-10-02 | Access unit and management segment memory operations |
PCT/US2019/054019 WO2020072462A1 (en) | 2018-10-02 | 2019-10-01 | Access unit and management segment memory operations |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210156617.7A Division CN114527943A (zh) | 2018-10-02 | 2019-10-01 | 存取单元和管理片段存储器操作 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112912834A CN112912834A (zh) | 2021-06-04 |
CN112912834B true CN112912834B (zh) | 2022-03-11 |
Family
ID=69947498
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980064685.7A Active CN112912834B (zh) | 2018-10-02 | 2019-10-01 | 存取单元和管理片段存储器操作 |
CN202210156617.7A Pending CN114527943A (zh) | 2018-10-02 | 2019-10-01 | 存取单元和管理片段存储器操作 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210156617.7A Pending CN114527943A (zh) | 2018-10-02 | 2019-10-01 | 存取单元和管理片段存储器操作 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10817430B2 (zh) |
EP (1) | EP3861429A4 (zh) |
KR (1) | KR20210054584A (zh) |
CN (2) | CN112912834B (zh) |
WO (1) | WO2020072462A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817430B2 (en) * | 2018-10-02 | 2020-10-27 | Micron Technology, Inc. | Access unit and management segment memory operations |
US20240256150A1 (en) | 2023-01-29 | 2024-08-01 | Winbond Electronics Corporation | Memory Segmentation with Substitution |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914398A (zh) * | 2013-01-03 | 2014-07-09 | 旺宏电子股份有限公司 | 用以管理具有实体地址空间的存储器使用率的方法及装置 |
CN104025060A (zh) * | 2011-09-30 | 2014-09-03 | 英特尔公司 | 支持近存储器和远存储器访问的存储器通道 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4473878A (en) | 1981-11-23 | 1984-09-25 | Motorola, Inc. | Memory management unit |
US7010654B2 (en) * | 2003-07-24 | 2006-03-07 | International Business Machines Corporation | Methods and systems for re-ordering commands to access memory |
US8363519B2 (en) * | 2006-06-30 | 2013-01-29 | Seagate Technology Llc | Hot data zones |
KR101532951B1 (ko) * | 2006-12-06 | 2015-07-09 | 론지튜드 엔터프라이즈 플래시 에스.에이.알.엘. | 고-용량, 비-휘발성 스토리지를 위한 캐시로서의 솔리드-스테이트 스토리지 장치, 시스템 및 방법 |
US7793036B2 (en) | 2007-05-30 | 2010-09-07 | Intel Corporation | Method and arrangements for utilizing NAND memory |
US8429329B2 (en) * | 2007-10-17 | 2013-04-23 | Micron Technology, Inc. | Serial interface NAND |
US7855916B2 (en) * | 2007-10-24 | 2010-12-21 | Rao G R Mohan | Nonvolatile memory systems with embedded fast read and write memories |
JP5032371B2 (ja) * | 2008-03-01 | 2012-09-26 | 株式会社東芝 | メモリシステム |
JP2009211233A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US8386697B2 (en) * | 2008-09-09 | 2013-02-26 | Phison Electronics Corp. | Memory managing method for non-volatile memory and controller using the same |
US10236032B2 (en) * | 2008-09-18 | 2019-03-19 | Novachips Canada Inc. | Mass data storage system with non-volatile memory modules |
US8316201B2 (en) * | 2008-12-18 | 2012-11-20 | Sandisk Il Ltd. | Methods for executing a command to write data from a source location to a destination location in a memory device |
US8694718B2 (en) | 2008-12-30 | 2014-04-08 | Micron Technology, Inc. | Wear leveling for erasable memories |
US20100262773A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Data striping in a flash memory data storage device |
US8189379B2 (en) | 2009-08-12 | 2012-05-29 | Texas Memory Systems, Inc. | Reduction of read disturb errors in NAND FLASH memory |
US9026767B2 (en) * | 2009-12-23 | 2015-05-05 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
WO2011099963A1 (en) * | 2010-02-10 | 2011-08-18 | Hewlett-Packard Development Company, L.P. | Identifying a location containing invalid data in a storage media |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
US9189385B2 (en) * | 2010-03-22 | 2015-11-17 | Seagate Technology Llc | Scalable data structures for control and management of non-volatile storage |
US9170933B2 (en) | 2010-06-28 | 2015-10-27 | International Business Machines Corporation | Wear-level of cells/pages/sub-pages/blocks of a memory |
US8949513B2 (en) * | 2011-05-10 | 2015-02-03 | Marvell World Trade Ltd. | Data compression and compacting for memory devices |
US9514838B2 (en) * | 2011-05-31 | 2016-12-06 | Micron Technology, Inc. | Apparatus including memory system controllers and related methods for memory management using block tables |
US9323659B2 (en) * | 2011-08-12 | 2016-04-26 | Sandisk Enterprise Ip Llc | Cache management including solid state device virtualization |
CN102289412B (zh) * | 2011-09-07 | 2013-08-14 | 上海交通大学 | 固态硬盘的静态磨损均衡方法及系统 |
US9213632B1 (en) * | 2012-02-29 | 2015-12-15 | Marvell International Ltd. | Systems and methods for data storage devices to use external resources |
US9026887B2 (en) * | 2012-03-15 | 2015-05-05 | Micron Technology, Inc. | Physical page, logical page, and codeword correspondence |
US9329948B2 (en) | 2012-09-15 | 2016-05-03 | Seagate Technology Llc | Measuring cell damage for wear leveling in a non-volatile memory |
US9218881B2 (en) | 2012-10-23 | 2015-12-22 | Sandisk Technologies Inc. | Flash memory blocks with extended data retention |
US9092310B2 (en) | 2013-03-15 | 2015-07-28 | Seagate Technology Llc | Host command based read disturb methodology |
JP5931816B2 (ja) * | 2013-08-22 | 2016-06-08 | 株式会社東芝 | ストレージ装置 |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US20160118132A1 (en) * | 2014-10-27 | 2016-04-28 | Sandisk Enterprise Ip Llc | Low Impact Read Disturb Handling |
US9830087B2 (en) | 2014-11-13 | 2017-11-28 | Micron Technology, Inc. | Memory wear leveling |
JP6518159B2 (ja) * | 2015-07-27 | 2019-05-22 | 株式会社デンソーテン | バイナリイメージをメモリデバイスに転写する方法および装置 |
US9507628B1 (en) | 2015-09-28 | 2016-11-29 | International Business Machines Corporation | Memory access request for a memory protocol |
US10031845B2 (en) * | 2016-04-01 | 2018-07-24 | Intel Corporation | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device |
US10152262B2 (en) * | 2016-05-03 | 2018-12-11 | Micron Technology, Inc. | Memory access techniques in memory devices with multiple partitions |
US10032508B1 (en) * | 2016-12-30 | 2018-07-24 | Intel Corporation | Method and apparatus for multi-level setback read for three dimensional crosspoint memory |
JP6860787B2 (ja) * | 2017-07-25 | 2021-04-21 | 富士通株式会社 | メモリ制御回路、メモリ、及びメモリ制御方法 |
US10922221B2 (en) * | 2018-03-28 | 2021-02-16 | Micron Technology, Inc. | Memory management |
US10761739B2 (en) * | 2018-08-23 | 2020-09-01 | Micron Technology, Inc. | Multi-level wear leveling for non-volatile memory |
US11537307B2 (en) * | 2018-08-23 | 2022-12-27 | Micron Technology, Inc. | Hybrid wear leveling for in-place data replacement media |
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 |
US10817430B2 (en) * | 2018-10-02 | 2020-10-27 | Micron Technology, Inc. | Access unit and management segment memory operations |
-
2018
- 2018-10-02 US US16/149,961 patent/US10817430B2/en active Active
-
2019
- 2019-10-01 KR KR1020217012883A patent/KR20210054584A/ko not_active Application Discontinuation
- 2019-10-01 WO PCT/US2019/054019 patent/WO2020072462A1/en unknown
- 2019-10-01 CN CN201980064685.7A patent/CN112912834B/zh active Active
- 2019-10-01 EP EP19869953.0A patent/EP3861429A4/en not_active Withdrawn
- 2019-10-01 CN CN202210156617.7A patent/CN114527943A/zh active Pending
-
2020
- 2020-08-31 US US17/007,772 patent/US11301391B2/en active Active
-
2022
- 2022-03-30 US US17/708,677 patent/US11868267B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025060A (zh) * | 2011-09-30 | 2014-09-03 | 英特尔公司 | 支持近存储器和远存储器访问的存储器通道 |
CN103914398A (zh) * | 2013-01-03 | 2014-07-09 | 旺宏电子股份有限公司 | 用以管理具有实体地址空间的存储器使用率的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20220222181A1 (en) | 2022-07-14 |
US11868267B2 (en) | 2024-01-09 |
US11301391B2 (en) | 2022-04-12 |
US10817430B2 (en) | 2020-10-27 |
CN114527943A (zh) | 2022-05-24 |
KR20210054584A (ko) | 2021-05-13 |
EP3861429A4 (en) | 2022-07-27 |
WO2020072462A1 (en) | 2020-04-09 |
CN112912834A (zh) | 2021-06-04 |
US20200104263A1 (en) | 2020-04-02 |
EP3861429A1 (en) | 2021-08-11 |
US20200394140A1 (en) | 2020-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119940B2 (en) | Sequential-write-based partitions in a logical-to-physical table cache | |
US11693768B2 (en) | Power loss data protection in a memory sub-system | |
US11775389B2 (en) | Deferred error-correction parity calculations | |
US11422945B2 (en) | Generating, maintaining, or utilizing a compressed logical-to-physical table based on sequential writes | |
US11868267B2 (en) | Access unit and management segment memory operations | |
US11656995B2 (en) | Dynamic access granularity in a cache media | |
US11086808B2 (en) | Direct memory access (DMA) commands for noncontiguous source and destination memory addresses | |
US11561902B2 (en) | Cache operations in a hybrid dual in-line memory module | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
US20220188231A1 (en) | Low-bit density memory caching of parallel independent threads | |
US20230129363A1 (en) | Memory overlay using a host memory buffer | |
US11922011B2 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
US11741008B2 (en) | Disassociating memory units with a host system | |
US11847349B2 (en) | Dynamic partition command queues for a memory device | |
US20240118971A1 (en) | Temporary parity buffer allocation for zones in a parity group | |
US20220113903A1 (en) | Single memory bank storage for servicing memory access commands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |