CN113906397A - 用于媒体码字的区域分组的码字轮换 - Google Patents
用于媒体码字的区域分组的码字轮换 Download PDFInfo
- Publication number
- CN113906397A CN113906397A CN202080040394.7A CN202080040394A CN113906397A CN 113906397 A CN113906397 A CN 113906397A CN 202080040394 A CN202080040394 A CN 202080040394A CN 113906397 A CN113906397 A CN 113906397A
- Authority
- CN
- China
- Prior art keywords
- pointer
- memory
- value
- address
- commands
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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
- 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/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- 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
-
- 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
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0653—Monitoring storage devices or systems
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2782—Interleaver implementations, which reduce the amount of required interleaving memory
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6563—Implementations using multi-port memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
描述了用于媒体码字的区域分组的码字轮换的方法、系统和装置。第一指针的值可配置成对应于存储器区内的第一存储器地址,且第二指针的值可配置成对应于所述存储器区内的第二存储器地址。所述方法可以包含监控用于在所述存储器区内执行存取操作的存取命令,其中多个存取命令可以与所述存储器区内的所请求地址相关联。所述方法可以包含基于被监控的所述命令的数量满足阈值来更新所述第二指针的所述值且在所述存储器区内的位置上执行所述多个命令。所述位置可以基于所述所请求地址、所述第一指针的所述值和所述第二指针的所述值。
Description
交叉参考
本专利申请要求约瑟夫.帕夫洛夫斯基(Joseph Pawlowski)于2019年5月16日提交的题为“用于媒体码字的区域分组的码字轮换(CODEWORD ROTATION FOR ZONE GROUPINGOF MEDIA CODEWORDS)”的第16/414,771号美国专利申请的优先权,前述申请转让给其受让人并以引用的方式明确并入本文中。
背景技术
下文大体上涉及一种包含至少一个存储器装置的系统,且更具体地,涉及用于媒体码字的区域分组的码字轮换。
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等的各种电子装置中。通过对存储器装置的不同状态进行编程来存储信息。例如,二进制装置最经常存储两个状态中的一个,经常由逻辑1或逻辑0表示。在其它装置中,可存储两个以上状态。为了存取所存储的信息,装置的组件可读取或感测存储器装置中的至少一个所存储状态。为了存储信息,装置的组件可写入或编程存储器装置中的状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)等。存储器装置可以是易失性或非易失性的。例如FeRAM的非易失性存储器可维持其所存储的逻辑状态很长一段时间,即使无外部电源存在也是这样。例如DRAM的易失性存储器装置在与外部电源断开连接时可能会丢失其所存储的状态。FeRAM能够实现类似于易失性存储器的密度,但可具有非易失性特性,这是因为使用铁电电容器作为存储装置。
改进计算系统可以包含增强存储器系统的性能,例如降低功率消耗、增加存储器容量、提高读取/写入速度、通过使用永久存储器媒体而提供非易失性,或降低某一性能点的制造成本,以及其它度量。在不降低存储器性能的情况下,一些类型的存储器关于可对每个单元执行的存取操作(例如,写入操作和/或读取操作)的数目可能有限制。另外,存储器存取的一些模式可对存储器的某些区进行频繁存取,包含可能有意试图破坏所存储的存储器状态的一些模式。因此,在各种条件下保持存储器性能,包含恶意行为者的存在,可能会带来挑战。
附图说明
图1示出根据本公开的实例支持多端口存储级存储器接口的计算系统的实例。
图2示出根据本公开的实例配置有支持多端口存储级存储器接口的接口的计算系统的实例。
图3示出根据本公开的实例支持多端口存储级存储器接口的装置的实例。
图4示出根据本公开的实例支持多端口存储级存储器接口的计算系统的实例。
图5A示出根据本公开的实例支持多端口存储级存储器接口的存储器子系统的实例。
图5B示出图,示出根据本公开的实例支持多端口存储级存储器接口的磨损均衡操作。
图6示出根据本公开的方面支持用于媒体码字的区域分组的码字轮换的存储器装置的框图。
图7和8示出流程图,示出根据本公开的方面支持用于媒体码字的区域分组的码字轮换的一或多种方法。
具体实施方式
当对存储器装置的存储器单元的存取操作(例如,读取、写入等)的数量超过磨损阈值时,这些单元可能磨损或停止可靠地存储存储器状态。在一些情况下,例如由于存储器装置的正常操作或恶意攻击,一或多个存储器单元可能会经历更高集中度的存取操作。因此,一些存储器单元可能在存储器阵列的其它较少存取的存储器单元之前磨损。因此,存储在这些单元中的逻辑状态可能会被破坏,或者如果被识别,则存储器装置可能需要将资源专用于校正错误或存储与磨损的存储器单元相关联的数据。
存储器装置可以包含用于将存储器地址与物理存储器位置相关联的一或多个逻辑结构。例如,存储器阵列可以具有将码字地址与存储器阵列的物理位置(例如,存储器单元)相关联的区域。在一些情况下,作为执行与存储在一或多个区域的码字相关联的存取操作的一部分,存储器装置可以执行磨损均衡操作。在一些情况下,存储器装置可以建立由多个码字地址位置组成的区域。存储器装置可以定义用于执行用于磨损保护和磨损平滑功能的码字轮换的存储器区域的额外地址。
存储器装置可以将基指针(例如,第一指针)配置为对应于存储器区内的第一码字地址且将空闲指针(例如,第二指针)配置为对应于存储器区域内的最后码字地址。存储器装置可以监控对存储器区域的存取命令,并且每次存取命令的数量满足阈值时更新空闲指针的码字地址。例如,每次存取命令的数目满足阈值时,存储器装置可以将空闲指针递减一个码字地址。此外,每次存取命令指定大于空闲指针地址时,存储器装置可以将码字写入不同的码字地址。例如,存储器地址可以将命令地址递增一。一旦空闲指针已被递减到等于基指针的地址,存储器装置可以将基指针递增一并在每次存取命令的另一数量满足阈值时继续递减空闲指针。因此,存储器装置可将存取操作移位或平滑到接收更高集中度存取命令的存储器单元以跨区域的更多数目的存储器单元分布存取操作。
下文在图1的上下文中进一步描述上文所介绍的本公开的特征。然后针对图2到5描述具体实例。进一步通过与参考图6-8描述的用于媒体码字的区域分组的码字轮换相关的设备图和流程图示出且参考所述设备图和流程图描述本公开的这些和其它特征。
图1示出根据本公开的实例支持多端口存储级存储器接口的计算系统100的实例。计算系统100可以包含装置105。装置105可以包含处理器130、接口控制器120以及各种存储器装置170、175和180。存储器装置170、175和180可以被称为存储器媒体。装置105还可以包含输入/输出控制器135、基本输入/输出系统(BIOS)组件125、板支持包(BSP)115、外围组件140、直接存储器存取控制器(DMAC)160。装置105的组件可以通过总线110彼此电子连通。
装置105可以是存储器子系统或存储器组件、计算装置、电子装置、移动计算装置或无线装置。装置105可以是便携式电子装置。装置105可以是计算机、膝上型计算机、平板计算机、智能电话、蜂窝电话、可穿戴装置、互联网连接装置等。在一些情况下,装置105可配置成用于与基站或接入点或经由基站或接入点进行双向无线通信。
处理器130可配置成与各种存储器媒体170、175、180或其任何组合直接或经由接口控制器120一起操作。在一些情况下,处理器130可以执行接口控制器120的功能。处理器130可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其可能是这些类型组件的组合。
接口控制器120可配置成与处理器130一起操作。在一些实例中,接口控制器120可以被集成为处理器130的一部分。接口控制器120还可配置成与各种存储器媒体170、175、180或其任何组合一起操作。
存储器媒体170可以各自包含存储数字信息的一或多个存储器单元阵列。存储器媒体170可配置成与处理器130、接口控制器120或两者一起操作。在一些实例中,存储器媒体170可配置成用作处理器130或接口控制器120的存储器组的缓冲存储器。
存储器媒体175可以包含本地控制器,其配置成与两层或更多层结构的存储器单元阵列一起操作。存储器媒体175的本地控制器也可配置成操作处理器130或接口控制器120。存储器媒体175的本地控制器可配置成利用存储器单元的不同特性来有效地与处理器130或接口控制器120一起操作。在一些实例中,第一层存储器单元可以是3DXP存储器,其可以较短的响应时间提供大量的每秒输入/输出操作(IOPS)以处理各种工作负载。在一些实例中,第二层存储器单元可以是三维NAND存储器,其可以比第一层存储器单元相对较低的成本提供用于数据存储的高容量。在一些情况下,存储器媒体175可以包含其它类型或组合的存储器阵列。
存储器媒体180可以包含配置成与一或多个存储器单元阵列一起操作的本地控制器。存储器媒体180的本地控制器还可配置成与处理器130或接口控制器120一起操作。在一些实例中,存储器单元可以包含非易失性或易失性存储器单元,或非易失性和易失性存储器单元的组合。在一些实例中,存储器媒体180的本地控制器可配置成处理存储器阵列的可变页面大小,其中存储器阵列包含非易失性存储器单元,例如铁电存储器单元。在一些实例中,一或多个存储器媒体180可以存在于装置105中。在一些实例中,存储器媒体180的本地控制器可配置成管理跨多个存储器裸片划分的码字,其中存储器裸片包含3DXP存储器单元阵列。在一些实例中,处理器130或接口控制器120可配置成从存储器媒体180的本地控制器接收被划分的码字的部分以整体地生成码字。在一些实例中,3DXP存储器阵列可以包含多个分区(例如,32个分区)。多个分区中的每个分区还可配置成与其它分区同时执行任务。
DMAC 160可以使处理器130能够对存储器媒体170、175或180执行直接存储器存取。例如,DMAC 160可以支持处理器130直接存取存储器媒体170、175或180而无需接口控制器120的参与或操作。
外围组件140可以是可集成到装置105中的输入或输出装置或用于此类装置的接口。实例可以包含磁盘控制器、声音控制器、图形控制器、以太网控制器、调制解调器、通用串行总线(USB)控制器、串行或并行端口或外围卡插槽,例如外围组件互连(PCI)或加速图形端口(AGP)插槽。外围组件140可以是本领域技术人员理解为外围设备的其它组件。
BIOS组件125或BSP 115可以是包含作为固件操作的基本输入/输出系统(BIOS)的软件组件,其可以初始化和运行计算系统100的各种硬件组件。BIOS组件125或BSP 115还可以管理处理器130与例如外围组件140、输入/输出控制器135等各种组件之间的数据流。BIOS组件125或BSP 115可以包含存储在只读存储器(ROM)、快闪存储器或任何其它非易失性存储器中的程序或软件。
输入/输出控制器135可以管理处理器130与外围组件140、输入装置145或输出装置150之间的数据通信。输入/输出控制器135还可以管理不是装置105的部分的外部外围设备。在一些情况下,输入/输出控制器135可表示到外部外围设备的物理连接或端口。
输入145可表示在装置105外部的将输入提供到装置105或其组件的装置、信号或接口。这可包含用户接口或与其它装置或在其它装置之间的接口。在一些情况下,输入145可以是经由外围组件140与装置105介接的外围设备或可由输入/输出控制器135管理。在一些实例中,输入145可以是与主机装置或主机接口相关联的主机链路。
输出150可以表示在装置105外部的配置成从装置105或其任何组件接收输出的装置、信号或接口。输出150的实例可包含显示器、音频扬声器、打印装置或印刷电路板上的另一处理器等。在一些情况下,输出150可以是经由外围组件140与装置105介接的外围设备或可由输入/输出控制器135管理。在一些实例中,输出150可以是与主机装置或主机接口相关联的主机链路。
装置105的组件可以包含设计成执行组件的各种功能的电路系统。这可以包含配置成执行本文描述的组件的功能的各种电路元件,例如导电线、晶体管、电容器、电感器、电阻器、放大器或其它有源或无源元件。
在一些实例中,装置105可以配置有一或多个接口组件并且可以从主机装置(未示出)接收存取命令或主机请求(例如,通过输入145)。接口组件可配置成与Gen-Z或CCIX协议以及其它实例兼容。主机请求(例如,读取操作、写入操作)可以与主机地址相关联并且装置105可以基于主机请求中的信息生成具有交织地址的第二命令以并行化跨多个媒体端口的操作。在一些实例中,装置105可配置成基于传入主机地址生成具有低延迟的物理媒体地址(例如,与存储器媒体170、175或180相关联的地址)。接着,由于或基于将第二命令发送到与存储器媒体(例如,存储器媒体175或180)相关联的本地控制器,装置105可以从多个媒体端口中检索主机所请求的数据(例如,当主机请求包含读取操作时)。随后,装置105可以根据与主机链路相关联的协议通过接口组件生成要(例如,通过输出150)发送到主机的数据包。
图2示出根据本公开的各种实例配置有支持多端口存储级存储器接口的接口的计算系统200的实例。计算系统200可以是参考图1描述的计算系统100的实例。计算系统200可以包含通过主机链路215与装置240耦合的主机装置205。主机装置205可以是服务器、片上系统(SoC)或中央处理单元(CPU)。在一些实例中,主机装置205可以通过主机链路215存取(例如,读取、写入)位于装置240中的一或多个存储器媒体230。另外,主机装置205可以设置寄存器以配置如何存取存储器媒体230。
主机链路215可以是参考图1描述的输入145、输出150或其组合的实例。主机链路215可以采用协议(例如,Gen-Z、CCIX协议)。在一些实例中,主机链路215可配置成在通过主机链路的每个方向(例如,发送或接收)上以某一数据传送速率(例如,每秒25千兆字节(GBps))传送数据。在一些实例中,当事务为64字节时,25GBps的数据传送速率可以支持每秒5.86亿个事务。在其它实例中,当事务为128字节时,25GBps的数据传送速率可以支持每秒3.125亿个事务。
装置240可以是参考图1描述的装置105的实例。装置240可以包含控制器220,其可以通过聚合信道225与存储器媒体230耦合。在一些实例中,控制器220和存储器媒体230可以与板(例如,外围组件互连快速(PCIe)板)集成、接触或放置在板上。在一些实例中,装置240可以被称为存储器子系统或存储器组件。除了参考图1描述的存储器媒体170、175和180之外,控制器220还可以包含装置105的各种功能块。在一些实例中,控制器220可以是ASIC、通用处理器、其它可编程逻辑装置、离散硬件组件,或其可以是这些类型组件的组合。在一些实例中,控制器220可以通过主机链路215从主机装置205接收主机请求(例如,读取或写入存储器媒体230中的存储器单元的存取命令)。在一些实例中,控制器220可以基于主机请求中的信息(例如,主机地址)生成包含用于存储器媒体230的交织地址的命令。交织地址可以与一或多个存储器媒体230相关联。
在一些实例中,控制器220可以向与存储器媒体230相关联的本地控制器(例如,参考图1描述的存储器媒体175或180的本地控制器)发送包含交织地址的命令。在一些实例中,控制器220可以结合本地控制器执行各种操作(例如,将数据写入存储器单元、从存储器单元读取数据、以与聚合信道225兼容的格式配置数据)而从存储器媒体230读取数据或在所述存储器媒体处写入数据。在一些实例中,本地控制器可以通过聚合信道225将所请求数据发送到控制器220。在一些实例中,本地控制器可以响应于接收到命令(例如,写入命令)而发送成功写入数据的指示。在一些实例中,控制器220可以将从本地控制器接收的数据存储在高速缓存存储器(例如,参考图3描述的高速缓存365-a)处。在一些实例中,控制器220可以将含有存储器媒体230的内容的数据包汇编成主机装置205可以使用的可消耗形式。控制器220可以根据接口协议(例如,Gen-Z、CCIX协议)通过主机链路215将数据包发送到主机装置205。
在一些实例中,存储器媒体230中的单独的存储器媒体(例如,存储器媒体230-a)可以包含多个存储器裸片(例如,十六个存储器裸片)以获得期望的存储器容量。每个存储器裸片可以包含本地控制器(例如,参考图1描述的存储器媒体175或180的本地控制器)以与控制器220协作并管理存储器裸片内的各种存储器操作。另外,单独的存储器媒体内的多个存储器裸片可以并行操作以生成期望的聚合数据传送速率。
在一些实例中,存储器裸片可以包含非易失性存储器单元(例如,相变存储器单元的3DXP阵列)。在其它实例中,存储器裸片可以包含含有硫属化物合金的非易失性存储器单元。在一些实例中,码字(例如,128字节的数据单元)可以跨存储器媒体(例如,存储器媒体230-a)内的多个存储器裸片划分。聚合信道225可配置成在控制器220与存储器媒体230(例如,本地控制器)之间传输数据。在一些实例中,聚合信道225中的每一个(例如,聚合信道225-a)可以包含用于数据传输的第一数目(例如,八个)逻辑信道。在一些实例中,聚合信道225中的每个聚合信道(例如聚合信道225-a)可以包含额外信道以携带与各种辅助功能(例如,纠错码(ECC)或元数据)相关的信息。
图3示出根据本公开的实例支持多端口存储级存储器接口的装置300的实例。装置300可以是参考图1和2描述的接口控制器120或控制器220的实例。在一些实例中,装置300可以是ASIC。装置300可以包含一或多个接口组件310,其可以使用采用如上所述的接口协议(例如,Gen-Z协议、CCIX协议)的主机链路与主机装置(未示出)耦合。装置300还可以包含耦合在接口组件310与一或多个媒体端口管理器360之间的互连路由器340。单独的媒体端口管理器(例如,媒体端口管理器360-a)可以使用如图2和4描绘的聚合信道225或490中的一个与存储器媒体耦合。
接口组件310可以包含链路接口元件315、链路从设备320和链路主设备325。链路接口元件315可以包含用于通过与主机装置耦合的主机链路传输和接收数据的物理层。在一些实例中,链路接口元件315可配置成在通过主机链路的每个方向(例如,发送或接收)上以第一数据传送速率(例如,25GBps)传送数据。链路从设备320可以通过主机链路接收事务层协议包并且可以对所述包进行解码以提取来自主机装置的请求以及与所述请求相关联的地址和数据。
在一些实例中,链路从设备320可以通过第一信号路径330(例如,第一信号路径330-a)以第一数据传送速率(例如,25GBps)向互连路由器340发送经解码信息。链路主设备325可以生成事务层协议包并且通过主机链路将所述包传输到主机。在一些实例中,链路主设备325可以通过第二信号路径335(例如,第二信号路径335-a)以第一数据传送速率(例如,25GBps)从互连路由器340接收信息。借助于实例,图3中描绘的装置300包含两个接口组件310-a和310-b,并且当使用两个主机链路(例如,与接口组件310-a耦合的第一主机链路以及与接口组件310-b耦合的第二主机链路)与主机装置耦合时能够处理100GBps的总数据传送速率。然而,如本领域普通技术人员将理解的,其它替代方案和不同变体被具体考虑并且落入本公开的范围内。
在一些实例中,互连路由器340可以提供路由网络以允许超过一个主机链路连接到与媒体端口管理器360相关联的超过一个媒体端口。在一些情况下,互连路由器340可以被视为开关阵列。借助于实例,图3中描绘的装置300示出使用接口组件310-a的第一主机链路可以连接到一或多个媒体端口管理器(例如,360-a、360-b、360-c和360-d),而使用接口组件310-b的第二主机链路可以同时连接到一或多个媒体端口管理器(例如,360-a、360-b、360-c和360-d)。在路由过程期间,互连路由器340可以从主机地址(例如,用存储器空间块指定的顺序地址)生成交织地址以跨多个媒体端口分布来自主机装置的请求。因此,主机地址(例如,顺序地址)可以在接口组件310的域中,而交织地址可以在媒体端口管理器360和相关联的存储器媒体的域中。在一些实例中,交织寻址方案可配置成在与主机地址(例如,顺序地址)相关联的存储器空间块中不留下间隙。在一些实例中,互连路由器340可以通过第三信号路径350与媒体端口管理器360交换数据。在一些实例中,如下所述,第三信号路径(例如,第三信号路径350-a)中的每个路径可配置成以第二数据传送速率(例如,12.8GBps)交换数据。
媒体端口管理器360中的单独的媒体端口管理器可以包含高速缓存365、地址转换器370和端口信道控制器375。在一些情况下,单独的媒体端口管理器(例如,媒体端口管理器360-a)能够执行单独的媒体端口逻辑算法,使得每个媒体端口管理器可以彼此完全独立地操作(例如,媒体端口管理器360-b、360-c或360-d)。
高速缓存365可以包含完全关联的写回高速缓存和关联的内容可寻址存储器(CAM)。在一些情况下,CAM可以在呈现数据(例如,地址内容)时搜索其存储器空间,以查看数据是否存储在CAM中的任何位置。这种CAM操作可能比常规存储器(例如,DRAM)消耗相对更多的功率。高速缓存365可以提高参考图2和4描述的装置240或存储器子系统420的性能。在一些情况下,包含CAM的高速缓存365-a可以促进媒体端口管理器360-a确定所呈现的地址的内容是否在高速缓存365-a内。媒体端口管理器360-a可以获取内容(例如,当找到内容时,从高速缓存365-a内的静态随机存取存储器(SRAM)中获取内容,从而避免额外的延迟)或采取后续步骤(例如,当在高速缓存365-a中未找到内容时确定存取存储器媒体并存取与媒体端口管理器360-a相关联的存储器媒体)。
与集中式高速缓存配置相比,分布式高速缓存配置可以减轻和与CAM相关联的功耗相关的问题。借助于实例,图3中描绘的分布式高速缓存配置(例如,高速缓存365-a、365-b、365-c和365-d)与单个高速缓存配置相比可以降低功率消耗(例如,下降到四分之一),因为一或多个高速缓存(例如,高速缓存365-a、365-b、365-c或365-d)对于一或多个CAM搜索操作可能是无作用的。分布式高速缓存配置还可以提高存储器子系统的效率,因为分布式高速缓存的每个高速缓存可以彼此独立地操作并且分布高速缓存的加载以并行处理请求。另外,高速缓存365可以通过在磨损均衡池内分布多个读取或写入循环来促进屏蔽存储器媒体免受过多事务(例如,对存储器单元的读取或写入操作)。高速缓存365还可以存储在链路主设备325制定要发送到主机的包响应之前从存储器媒体获取的数据。高速缓存365可以使用参考图5描述的逻辑地址(例如,与一组媒体端口相关联的交织地址)来操作。
地址转换器370可以与参考图5描述的管理区域内磨损均衡操作相关联。地址转换器370可以包含地址随机化器、区域转换SRAM/表(ZTS)、无基区域轮换逻辑或区域重映射逻辑。参考图5描述的中间地址可以在地址转换器370中。
端口信道控制器375可以包含命令队列和相关联的冲突控制逻辑、写入数据缓冲器、媒体ECC编码器、媒体ECC解码器、读取响应队列或存储器媒体的输入/输出。端口信道控制器375可以使用参考图5描述的物理地址来操作。
在一些情况下,媒体端口管理器中的单独的媒体端口管理器可以包含写入缓冲器380。写入缓冲器380可配置成保持写入-读取漂移缓冲器(例如,写入-读取缓冲器)和相关联CAM或保持写入受害者高速缓存和相关联CAM。在一些实例中,写入缓冲器380可配置成存储在特定持续时间内写入存储器媒体的数据。
图4示出根据本公开的各种实例支持多端口存储级存储器接口的计算系统400的实例。计算系统400可以是参考图1和2描述的计算系统100或200的实例。计算系统400可以包含使用主机链路415与存储器子系统420耦合的主机装置405。主机装置405可以是参考图2描述的主机装置205的实例。主机链路415可以是参考图2描述的主机链路215的实例。在一些实例中,主机链路415-a可配置成以某一数据传送速率(例如,50GBps,每个方向上25GBps)传送数据。借助于实例,图4中描绘的计算系统400可配置成根据两个主机链路(例如主机链路415-a和主机链路415-b)以第二数据传送速率(例如,100GBps)传送数据,所述两个主机链路各自可配置成传送数据(例如,50GBps)。
计算系统400可以包含存储器子系统420。存储器子系统420可以是参考图1和2描述的装置105或装置240的实例。存储器子系统420可以包含控制器430。控制器430可以是参考图3描述的装置300的实例。控制器430可以包含一或多个接口组件410、互连路由器440和一或多个媒体端口管理器460。接口组件410、互连路由器440和媒体端口管理器460可分别是参考图3描述的接口组件310、互连路由器340和媒体端口管理器360的实例。
在一些实例中,媒体端口管理器460中的单独的媒体端口管理器(例如,媒体端口管理器460-b)可以通过聚合信道490中的一个(例如,聚合信道490-b)与媒体端口495中的一个(例如,媒体端口495-b)耦合。媒体端口495可以是参考图2描述的存储器媒体230的实例。聚合信道490中的单独的聚合信道可以包含一或多个逻辑信道491。在一些实例中,聚合信道490中的每一个可以包含八个逻辑信道491。针对媒体端口管理器460-a示出八个逻辑信道(例如,逻辑信道491-a到逻辑信道491-h),表示聚合信道490中的一个(例如聚合信道490-a(未示出)),而针对媒体端口管理器460-b、460-c和460-d示出聚合信道490(例如,聚合信道490-b、490-c和490-d),以便提高所描绘特征的可见性和清晰度。
在一些实例中,媒体端口495中的单独的媒体端口(例如,媒体端口495-a)可以包含一或多个存储器装置(例如,具有3DXP存储器单元的存储器装置,在下文中也称为3DXP裸片)。在一些情况下,存储器装置可以并行操作以通过聚合信道490获得期望的聚合带宽。在一些实例中,一个3DXP裸片可以具有256千兆比特的存储器容量,例如32千兆字节的存储器容量。在一些实例中,媒体端口495中的一个可以包含十六个此类3DXP裸片以产生512千兆比特容量,即每个媒体端口(例如,媒体端口495-a)0.5太字节容量。在一些实例中,3DXP裸片可配置成具有8位宽的数据总线,并且可以为每个逻辑信道(例如,信道491-a)分配两个3DXP裸片,从而使每个逻辑信道16位(例如,两个字节)宽。在一些实例中,聚合信道490中的单独的聚合信道可以包含八个逻辑信道(例如,聚合信道490-a包含逻辑信道491-a到信道491-h)。结果,当十六个3DXP裸片以800MHz并行操作时,聚合信道490中的每一个可以在12.8GBps的带宽下操作(即,每个逻辑信道491有2个字节,从而使每个聚合信道490(例如,聚合信道490-a)有16字节在800MHz下操作)。可以从媒体端口的逻辑视图来理解以上描述。在一些实例中,考虑到与媒体端口相关联的存储器操作相关的开销,媒体端口中可以存在比逻辑3DXP裸片数量更多的物理3DXP裸片。
在一些实例中,每个3DXP存储器裸片可配置成包含多个(例如,三十二个)分区。3DXP裸片的每个分区可以独立于3DXP裸片内的其它分区同时操作。在一些实例中,每个逻辑信道(例如,逻辑信道491-a)可以与两个3DXP裸片耦合,因此总共64个分区可以与逻辑信道(例如,逻辑信道491-a)耦合。控制器430可以存取与通过每个媒体端口轮换的逻辑信道耦合的3DXP裸片的一个分区。
借助于实例,使用图4中描绘的存储器子系统420,控制器430可以存取媒体端口495-a中的3DXP裸片(例如,3DXP裸片A,未示出)的第一分区(例如,32个分区中的分区1)。然后,控制器430可以存取媒体端口495-b中的3DXP裸片(例如,3DXP裸片B,未示出)的第一分区(例如,32个分区中的分区1)。然后,控制器430可以存取媒体端口495-c中的3DXP裸片(例如,3DXP裸片C,未示出)的第一分区(例如,32个分区中的分区1)。然后,控制器430可以存取媒体端口495-d中的3DXP裸片(例如,3DXP裸片D,未示出)的第一分区(例如,32个分区中的分区1)。然后,控制器430可以返回到媒体端口495-a并存取媒体端口495-a中的3DXP裸片(例如,3DXP裸片A,未示出)的第二分区(例如,32个分区中的分区2)。因为两个3DXP裸片耦合到逻辑信道,使每个逻辑信道有64个分区,所以控制器430可以通过四个媒体端口总共重复64次轮换来重复上述操作。
在媒体端口内,码字可以被划分为不止一个裸片(例如,跨四个3DXP裸片划分的128字节码字)。基于每个分区独立于3DXP裸片内的其它分区操作的性质,这种划分可能是可行的。在一些情况下,结合跨如并行逻辑信道(例如,逻辑信道491-a到491-h)所描绘的媒体端口中存在的多个3DXP裸片的多个并行存取,每个事务只能存取一个分区(例如,3DXP裸片内的三十二个分区中的一个分区)。这种并行操作可以减少与对由经划分码字获取的信息的纠错码(ECC)操作和跨多个3DXP裸片的经划分码字的并行处理相关联的处理时间。端口信道控制器375可以处理经划分码字和经划分码字的并行处理。
使用3DXP裸片的各种实例说明了如何根据本公开的方法、装置和系统来配置和运行存储器子系统420中的媒体端口495。在一些情况下,媒体端口495可以包含采用与3DXP技术不同的存储器技术的其它存储器装置。因此,本公开不限于3DXP裸片。
如上所述,控制器430可以利用媒体端口管理器460的独立性质(例如,媒体端口管理器460-a独立于其它三个媒体端口管理器460-b、460-c和460-d操作)以及存储器媒体的独立性质(例如,3DXP存储器裸片中的三十二个分区中的一个分区独立于其它三十一个分区操作)以低延迟获得期望的数据传送速率,以支持主机链路415的高性能。描述以上实例以说明控制器430在计算系统400中操作期间其各种功能,并且本公开可不受这些实例的限制。
在一些实例中,互连路由器440可以耦合在接口组件410与媒体端口管理器460之间。互连路由器440与媒体端口管理器460之间的第三信号路径450可配置成在其之间交换数据。第三信号路径450可以是参考图3描述的第三信号路径350的实例。在一些实例中,第三信号路径450中的每一个(例如,第三信号路径450-a)可配置成以根据上述实例的速率(例如,12.8GBps)交换数据。在一些实例中,接口组件410可以通过第一信号路径330-c以某一数据传送速率(例如,25GBps)向互连路由器440发送经解码信息。在一些实例中,接口组件410可以通过第二信号路径335-c以某一数据传送速率(例如,25GBps)从互连路由器440接收信息。
作为一个实例,图4中描绘的控制器430包含两个接口组件410-a和410-b并且能够处理100GBps的总数据传送速率。在一些实例中,与主机链路协议相关联的开销可能占据总数据传送速率的一部分并且计算系统400的实际带宽可能小于100GBps(例如,80GBps)。在一些实例中,由多个媒体端口产生的总带宽(例如,通过第三信号路径450的51.2GBps,例如第三信号路径450中的每一个各12.8GBps)可能不会使控制器430可配置成处理的实际带宽(例如,80GBps)饱和。在一些实例中,由多个媒体端口产生的总带宽(例如,通过第三信号路径450的102.4GBps,即第三信号路径450中的每一个各25.6GBps)可能大于控制器430可配置成处理的实际带宽(例如,80GBps)并且可能使最大主机链路容量(例如,100GBps数据传送速率)饱和。
在一些情况下,控制器430可以包含配置成从主机装置接收第一存取命令的至少一个主机接口、配置成使用包括交织地址的第二存取命令存取一或多个存储器媒体的多个端口管理器,以及耦合在至少一个主机接口与多个端口管理器之间的开关阵列,所述开关阵列配置成至少部分地基于第一存取命令生成交织地址。
在一些情况下,多个端口管理器中的每个端口管理器可以包含高速缓存、配置成促进磨损均衡操作的地址转换器,以及配置成控制与一或多个存储器媒体相关联的信道的信道控制器。在一些情况下,高速缓存至少部分地基于第二存取命令来配置,并且进一步包含完全关联的写回高速缓存或完全关联的内容可寻址存储器或其组合。在一些情况下,多个端口管理器中的每个端口管理器进一步包含配置成存储写入一或多个存储器媒体的数据的写入-读取缓冲器。在一些情况下,至少一个主机接口包含配置成接收或传输包括数据的包的链路接口、配置成对接收的包进行解码的链路从设备,以及配置成生成要传输的包的链路主设备。在一些情况下,多个端口管理器中的每个端口管理器可以与相变存储器单元的三维交叉点阵列耦合。
在一些情况下,控制器430可配置成与主机装置和存储器媒体介接,并且可用于从主机装置接收对存储器媒体的第一存取命令,至少部分地基于接收到第一存取命令而生成包括存储器媒体的交织地址的第二存取命令,并将第二存取命令发送到存储器媒体处的本地控制器。在一些情况下,控制器430可用于跨存储器媒体分布存取操作以控制与存储器媒体的一部分相关联的磨损水平。在一些情况下,控制器430可用于从存储器媒体的信道接收经划分码字,其中所述信道包括一或多个存储器装置。在一些情况下,控制器430可用于至少部分地基于发送第二存取命令而将数据写入存储器媒体并将数据存储在缓冲器中,其中所述缓冲器配置成将写入存储器媒体的数据保留一定持续时间。在一些情况下,控制器430可用于对从主机装置接收的第一包进行解码以提取存取请求和与存取请求相关联的地址并且至少部分地基于提取存取请求而生成第二包以传输到主机装置。
图5示出根据本公开的各种实例支持多端口存储级存储器接口的存储器子系统501的实例。存储器子系统501可以是参考图1、2和4描述的装置105、装置240、存储器子系统420的实例。存储器子系统501可以包含一或多个主机链路515、控制器530和一或多个媒体端口595。主机链路515和媒体端口595可以是参考图4描述的主机链路415和媒体端口495的实例。控制器530可以是参考图1到4描述的处理器130、控制器220、装置300或控制器430的实例。
控制器530和媒体端口595可以通过聚合信道590交换数据。聚合信道590可以是参考图4描述的聚合信道490的实例。聚合信道590可配置成支持某一数据传送速率(例如,12.8GBps)。在一些实例中,媒体端口595中的每个媒体端口(例如,媒体端口595-a)可配置成具有一定存储器容量(例如,512千兆字节)。在一些实例中,媒体端口595中的每个媒体端口(例如,媒体端口595-a)可配置成包含多个区域(例如,256×1,024个区域)。在一些实例中,多个区域中的每个区域可配置成存储多个码字(例如,16,384个码字),其中每个码字可以是128字节大。在一些实例中,媒体端口中的区域数目可以是固定的(例如,256×1,024个区域)并且码字的大小可以是固定的(例如,128字节)。可以基于媒体端口的特定存储器容量来确定可以存储在媒体端口的多个区域(例如,256×1,024个区域)中的每个区域中的码字的数目。
在存储器子系统501的操作期间可以利用各种寻址方案。以下描述说明了图5中描绘的存储器子系统501(例如,与四个媒体端口595耦合的控制器530,每个媒体端口配置有512千兆字节的存储器容量)可以如何使用纯字节地址形式以各种寻址方案操作的实例。可以在存储器子系统501中实施的实际地址形式可以不同于纯字节地址形式,因为与主机链路515相关联的各种链路接口协议可以具有不同层级的地址截断。例如,与CCIX协议相比,Gen-Z协议可具有不同的地址截断。
存储器子系统501可以从主机装置(未示出)接收与主机地址相关联的请求。主机装置可以通过读取存储器子系统501中的控制器530上的寄存器来识别可允许的地址范围。作为实例,存储器子系统501可以支持两太字节的存储器容量(例如,每个媒体端口595-a、595-b、595-c和595-d中512千兆字节)。两太字节的存储器容量可以由具有41位的地址来表示(例如,A40..A0,其中A40..A0可以表示一系列四十一个0和1,其中A40是最高有效位(例如,一系列四十一个0和1中的第41位)且A0是最低有效位(例如,一系列四十一个0和1中的第一位)。
例如,主机地址可以与具有四十一位的寻址方案相关联并且可以被认为是顺序地址。可以分配四十一位中的最低七位(例如,A6..A0)以指定128字节的每个码字内的128个地址中的一个。码字可以是存储器子系统501可以控制的最小数据单元(例如,128字节的粒度)。可以分配41位中的接下来的2位(例如,A8..A7)来指定四个媒体端口中的一个。41位主机地址的剩余部分(即A40..A0中的32位:A40..A9)可以呈现给每个端口(四个媒体端口中的一个)并被视为端口逻辑地址(PLA)。应了解,一旦确定媒体端口的逻辑地址,与PLA相关联的地址就指定对应于四个媒体端口中的一个的地址空间。因此,端口逻辑地址可以被认为是跨四个媒体端口的交织地址。
每个媒体端口可以被分成多个区域(例如,256×1,024个区域,即262,144个区域)。多个区域中的每个区域的存储器容量(例如,2兆字节,即2,097,152字节)可以进一步除以码字大小(例如,128字节)以确定每个区域可以存储的码字数目(例如,每个区域中有128字节的16,384个码字)。多个区域可以促进磨损均衡操作。在磨损均衡操作期间可以利用媒体端口内的不同区域,使得可以跨媒体端口在时间上均匀分布事务(例如,存取媒体端口的存储器单元)。在512千兆字节媒体端口的实例中,可以分配32位PLA的18位来指定262,144个区域中的一个。可以分配32位PLA的其余14位来指定16,384个地址中的一个以存储码字。可以保留16,383个码字中的一个码字作为空白空间以允许区域内码字轮换,并且在磨损均衡操作期间可只使用16,383个地址。
可以通过媒体端口管理器(例如,参考图4描述的媒体端口管理器460)中的区域转换SRAM/表(ZTS)来跟踪用于磨损均衡操作的区域交换和其它支持功能。ZTS中包含的18位地址可以提供查找地址以指示与主机请求相关联的特定目的地区域。在具有41位的地址的本实例中,可以通过PLA div 16,383获得中间地址,其中div是最高18位的整数除法,产生较低14位作为整数除法的余数。中间地址可被称为ZTS的输入地址。此外,可以将物理地址呈现给端口信道控制器(例如,参考图3描述的端口信道控制器375-a)。物理地址的较高部分可以对应于从ZTS检索到的查找值(例如,指定262,144个区域中的一个)。可以使用剩余的14位结合两个指针(例如,基指针和空闲指针)确定物理地址的较低部分,以促进参考图5B描述的区域内码字轮换。
图5B示出图502,示出根据本公开的各种实例支持多端口存储级存储器接口的磨损均衡操作。图502示出磨损均衡操作的不同阶段的区域图580。区域图580可以表示具有N个物理地址位置并且配置成存储N-1个码字的媒体端口中的区域中的一个(例如,表示为Zone_i的特定区域)。Zone_i内的地址用第一码字地址581、第二码字地址582、(N-2)码字地址583、(N-1)码字地址584和N码字地址585来说明。在一些实例中,N可对应于16,384并且每个码字可以是128字节。
例如,Zone_i可以位于媒体端口595-a中,所述媒体端口可配置成包含256×1,024个区域。每个码字地址可以用上述物理地址来指定。在区域内的N个码字地址中,可以将一个码字地址指定为由空闲指针标识的空白空间。另外,可以将另一个码字地址指定为用基指针标识的基。区域中的空白空间可以促进下文描述的区域内码字轮换。区域图580-a示出Zone_i配置了分配有基指针的第一码字地址581和分配有空闲指针的最后码字地址(例如,N码字地址585)。N码字地址585最初可以是不在Zone_i的可寻址地址空间内的额外存储器地址。
当出现存取与主机地址相关联的码字的主机请求时,控制器530可以识别物理码字地址以存储码字的内容(例如,当主机请求包含写入操作时)。控制器530可以基于主机地址确定与媒体端口中的一个(例如,媒体端口595-a)相关联的逻辑地址。互连路由器440可以与基于主机地址确定逻辑地址的过程相关联。随后,控制器530可以使用指定目的地(例如,媒体端口595-a中的Zone_i)的媒体端口管理器(例如,媒体端口管理器460-a)内的ZTS中的信息来确定中间地址。
在一些实例中,控制器530可以基于基指针和空闲指针的位置来确定Zone_i内的物理码字地址。借助于实例,控制器530可以确定将码字的内容存储在由第一码字地址581处的基指针和N码字地址585处的空闲指针确定(例如,由基指针与空闲指针之间的地址空间中的相对距离确定)的码字地址处。在一个实例中,控制器530可以接收所请求地址(AR)以存取(例如,读取或写入)码字的内容,并在所请求地址小于或等于Modulo(Free-Base-1,N)的情况下根据由Modulo(AR+Base,N)给出的地址,否则根据由Modulo(AR+Base+1,N)给出的地址来确定对码字执行存取的物理地址,其中Base是基指针的当前值,并且Free是空闲指针的当前值。控制器可以使用所确定的物理地址来执行存取命令(例如,读取和写入)。
控制器530可以监控与读取和/或写入操作相关联的参数并且可以在参数满足阈值时将空闲指针移动到(N-1)码字地址584,如区域图580-b中所示。在将空闲指针移动到(N-1)码字地址584时,控制器530可以将码字从对应于空闲指针的经更新值的存储器位置(例如,对于区域图580-b的情况,N-1)复制到对应于空闲指针的先前值的存储器位置(例如,对于区域图580-b的情况,N)。控制器530还可以重置参数。
对于区域图580-b,如果向控制器530呈现由主机装置存取(例如,读取或写入)具有码字地址584的码字的命令,则控制器530可以对码字地址585处(例如,N)而不是码字地址584处(例如,N-1)的码字执行命令,这是因为空闲指针的位置不同。即,所请求地址584不小于或等于Modulo(Free-Base-1,N),且因此控制器530根据Modulo(AR+Base+1,N)生成偏移地址,这产生码字地址585(例如,N)。然后,(例如,如果参数随后再次满足阈值)可以将空闲指针移动到(N-2)码字地址583,如区域图580-c中所示。在将空闲指针移动到(N-2)码字地址583时,控制器530可以将码字从对应于空闲指针的经更新值的存储器位置(例如,对于区域图580-c的情况,N-2)复制到对应于空闲指针的先前值的存储器位置(例如,对于区域图580-c的情况,N-1)。因此,由于区域内磨损均衡操作,控制器530可以将具有相同主机地址的码字的内容存储到不同物理地址(即,不同物理存储器单元)。磨损均衡操作可以及时分布多个事务(例如,对存储器单元的读取或写入操作)以避免对存储器媒体(例如,3DXP裸片)的特定物理部分的过度写入或读取操作。
当空闲指针在区域内的整个码字地址集合中轮换(例如,每次参数满足阈值时轮换)而基指针固定在第一码字地址581时,控制器530可以将基指针移动到不同码字地址(例如,第二码字地址582)。例如,控制器530可以将空闲指针移动到第一码字地址581(例如,将码字从与对应于空闲指针的经更新值的存储器位置复制到对应于空闲指针的先前值的存储器位置),并且可以(例如,同时)将基指针更新到第二码字地址582,如Zone_i的区域图580-d所示。控制器530可以在基指针位于第二码字地址582处的情况下通过Zone_i轮换空闲指针(例如,每次参数满足阈值时,更新空闲指针的值并将码字从对应于经更新值的位置复制到对应于先前值的位置)。如上所述,可以将存取命令转换到基于所请求地址、基指针的值以及所请求地址、基指针和空闲指针之间的关系的偏移地址。可以在偏移地址处执行存取命令。此外,控制器530可以用媒体端口的另一区域物理地替换Zone_i(也可被称为区域交换)以在媒体端口(例如,媒体端口595-a)内的多个区域(例如,256×1,024个区域)之间及时分布事务。
控制器530可以利用所述参数来确定在磨损均衡操作期间是否重新定位空闲指针、基指针或两者。取决于对非易失性存储器单元执行的存取操作的类型,某些非易失性存储器技术可能表现出不同的可靠性特性。例如,当执行多个写入操作时,与相同数目的读取操作相比,非易失性存储器单元可能会劣化得更多。在一些情况下,控制器530可以跟踪存取计数,包含对区域的存储器单元执行的写入操作的数目和读取操作的数目。在一些实例中,存取计数可以包含权重因子以适当地分配与存取操作类型相关联的可靠性风险(例如,写入操作的权重因子比读取操作的权重因子更大)。即,控制器530可以针对每个读取命令将存取计数增加第一因子并且针对每个写入命令将存取计数增加第二因子。控制器530可以基于存取计数、基指针以及空闲指针的经更新值(例如,当空闲指针被更新为等于基指针时更新基指针)来确定是否重新定位空闲指针、基指针或两者。
可以选择阈值使得可以避免耐久性限制。例如,可以选择阈值以使得对相同地址位置的重复存取将导致在达到耐久性限制之前轮换物理存储器位置。在一个实例中,最大生命周期ReadWrite Count可以是8亿(例如,读取为400M×1,写入为4M×100,在这种情况下,读取因子为1且写入因子为100)。在此实例中,为了说明的目的,可以简化为仅查看写入(例如,4M写入的耐久性限制)。出于安全目的,希望允许在恶意攻击下达到不超过媒体生命周期能力的1/3,因此只允许1.3M写入。在最坏的情况下,可以经历递减空闲指针的16,383次循环,然后再进行缓解。为了涵盖最坏的情况,可以将阈值确定为1.3333333M/16,383=81.39,并向下取整。因此,可以将阈值设置为81次写入操作。现在将其转换回ReadWriteCount(例如,写入因子为100),将ReadWrite Count阈值设置为8100。在此实例中,这也意味着对于每81次写入,将产生一个额外写入以将数据复制到当递减空闲指针时的新位置。这构成了系统中的写入放大因子,例如,每81次有1次额外写入,因此写入放大因子为1+1/81=1.012x。这种写入放大可能不会对系统性能造成重大负担,并且考虑到磨损均衡益处,可能不会导致显著的整体中间生命周期能力。
尽管在图5B所示的实例中讨论为当存取计数达到阈值时递减空闲指针并且当空闲指针递减到等于基指针时递增基指针,但在一些情况下更新方向可以颠倒。即,当存取计数达到阈值时可以递增空闲指针,并且当空闲指针递增到等于基指针时可以递减基指针。偏移地址的确定将基于空闲指针和基指针的更新方向而相应地改变。
另外,当存储器子系统501可具有多个媒体端口(例如,媒体端口595-a到595-d)且在媒体端口中的每一个中具有间隙(例如,每16,383个码字)时,存储器子系统501可配置成避免主机地址中的间隙。参考图3描述的控制器530的各个部分可配置成实施本文描述的此特征。
基于控制器530的互连路由器340将主机链路(例如,主机链路515-a)路由到媒体端口管理器中的一个(例如,媒体端口管理器360-a),媒体端口管理器360可以将事务的逻辑地址存储在高速缓存365(例如媒体端口管理器360-a的高速缓存365-a)处。随后,地址转换器370(例如,媒体端口管理器360-a的地址转换器370-a)可以生成与逻辑地址相关联的中间地址。
在一些实例中,中间地址可以对应于逻辑地址除以整数除法器(例如,IA=LAdiv16,383)。此外,与磨损均衡操作相关的区域交换和其它支持功能可以由地址转换器370中的区域转换SRAM(ZTS)跟踪。在一些实例中,中间地址可以是ZTS的输入地址。ZTS中包含的十八位地址(即,对应于256k区域)提供查找地址以指示请求的目的地(即256k区域中的特定区域)。随后,地址转换器370可以通过使用包含空闲指针和基指针位置的函数关系(例如,作为区域内的空闲指针位置和基指针位置的函数的模运算)来生成区域内的16,383码字空间(即,16,384个空间减去空闲指针指定的一个空间)的物理地址。随后,端口信道控制器375可以管理用于在存储器媒体内的特定物理位置处存储事务内容的物理地址。
在一些实例中,由于完全分离的端口逻辑算法,可以针对不同的媒体端口(例如,媒体端口595-a到媒体端口595-d)同时执行以上所示的磨损均衡操作。因此,存储器子系统501可以在没有任何中断的情况下保持主机地址而不管存储器媒体端口的数目,在任何一个媒体端口中的多个区域(例如,每16,383个码字)中存在间隙,而存储器子系统501可以跨媒体端口分配多个事务,以避免某些物理码字或码字群组积累过多的存取。
图6示出根据本文公开的实例支持用于媒体码字的区域分组的码字轮换的存储器装置605的框图600。存储器装置605可以是如参考图1-5描述的存储器装置的方面的实例。存储器装置605可以包含指针管理器610、命令监控管理器615、命令执行组件620和存储器轮换管理器625。这些模块中的每一个可以直接或间接地彼此通信(例如,经由一或多个总线)。
指针管理器610可以将第一指针的值配置为对应于存储器区内的第一存储器地址并将第二指针的值配置为对应于存储器区内的第二存储器地址。在一些实例中,指针管理器610可以基于被监控的命令集的数量满足阈值来更新第二指针的值。在一些实例中,指针管理器610可以基于第二指针的经更新值与第一指针的值之间的对应关系来更新第一指针的值。在一些实例中,指针管理器610可以将第一指针的值配置为对应于存储器区内的第一存储器地址并将第二指针的值配置为对应于存储器区内的第二存储器地址。在一些实例中,指针管理器610可以基于确定而将第二指针的值更新为对应于存储器区内的第三存储器地址。在一些实例中,指针管理器610可以在每次存取计数满足阈值时更新第二指针的值。
在一些实例中,更新第二指针的值包含递减第二指针。在一些实例中,更新第一指针的值包含递增第一指针。在一些实例中,指针管理器610可以基于接收到第三命令集而将第二指针的值更新为对应于第一存储器地址。在一些实例中,指针管理器610可以基于将第二指针的值更新为对应于第一存储器地址而将第一指针的值更新为对应于第四存储器地址。在一些情况下,更新第一指针的值是基于第一指针的值与第二指针的经更新值一致。在一些情况下,存储器区包含命令集的在可寻址地址空间之外的至少一个额外存储器地址。
命令监控管理器615可以监控用于在存储器区内执行存取操作的命令集,所述命令集与存储器区内的所请求地址相关联。在一些实例中,命令监控管理器615可以接收用于在存储器区内执行存取操作的第一命令集。在一些实例中,命令监控管理器615可以确定第一命令集的数量满足阈值。在一些实例中,命令监控管理器615可以在接收到第一命令集之后接收用于在存储器区内执行存取操作的第二命令集。
在一些实例中,命令监控管理器615可以跟踪与在存储器区处执行的命令集相关联的存取计数,其中更新第二指针的值是基于存取计数满足阈值。在一些实例中,命令监控管理器615可以对于在存储器区执行的每个读取命令将与存取计数相关联的值增加第一因子且对于在存储器区执行的每个写入命令将与存取计数相关联的值增加第二因子。在一些实例中,命令监控管理器615可以在每次存取计数满足阈值时重置存取计数。在一些实例中,命令监控管理器615可以在接收到第二命令集之后接收用于在存储器区内执行存取操作的第三命令集。在一些实例中,命令监控管理器615可以接收用于在存储器区内执行存取操作的第四命令集。
命令执行组件620可以在存储器区内的一组位置上执行命令集,所述组位置基于所请求地址、第一指针的值和第二指针的值。在一些实例中,执行第二命令集,其中所述执行包含基于第一指针和第二指针将存取第三存储器地址的命令偏移到第二存储器地址。
在一些实例中,命令执行组件620可以至少部分地基于命令集的所请求地址、第一指针以及所请求地址与第一指针和第二指针的关系来确定用于在存储器区内执行存取的偏移存储器地址。在一些实例中,执行第四命令集,其中执行第四命令集包含将第四命令集的第一子集的所请求地址偏移第一量且将第四命令集的第二子集的所请求地址偏移第二量。
存储器轮换管理器625可以基于更新第二指针的值而将码字从第三存储器地址复制到第二存储器地址。在一些实例中,存储器轮换管理器625可以基于将第二指针的值从第二存储器地址更新到第三存储器地址而将码字从对应于第二指针的经更新值的存储器位置复制到对应于第二指针的先前值的存储器位置。在一些实例中,存储器轮换管理器625可以在每次存取计数满足阈值时将码字从对应于第二指针的经更新值的存储器位置复制到对应于第二指针的先前值的存储器位置。在一些情况下,存储器区的每个存储器地址与不同的码字相关联。
图7示出流程图,示出根据本公开的方面支持用于媒体码字的区域分组的码字轮换的一或多种方法700。方法700的操作可以由如本文描述的存储器装置或其组件来实施。例如,方法700的操作可以由如参考图6描述的存储器装置来执行。在一些实例中,存储器装置可以执行指令集以控制存储器装置的功能元件来执行所描述的功能。另外或替代地,存储器装置可以使用专用硬件来执行所描述的功能的方面。
在705,存储器装置可以将第一指针的值配置为对应于存储器区内的第一存储器地址并将第二指针的值配置为对应于存储器区内的第二存储器地址。705的操作可以根据本文描述的方法来执行。在一些实例中,705的操作的方面可以由如参考图6描述的指针管理器来执行。
在710,存储器装置可以监控用于在存储器区内执行存取操作的命令集,所述命令集与存储器区内的所请求地址相关联。710的操作可以根据本文描述的方法来执行。在一些实例中,710的操作的方面可以由如参考图6描述的命令监控管理器来执行。
在715,存储器装置可以基于被监控的命令集的数量满足阈值来更新第二指针的值。715的操作可以根据本文描述的方法来执行。在一些实例中,715的操作的方面可以由如参考图6描述的指针管理器来执行。
在720,存储器装置可以基于第二指针的经更新值与第一指针的值之间的对应关系来更新第一指针的值。720的操作可以根据本文描述的方法来执行。在一些实例中,720的操作的方面可以由如参考图6描述的指针管理器来执行。
在725,存储器装置可以在存储器区内的一组位置上执行命令集,所述组位置基于所请求地址、第一指针的值和第二指针的值。725的操作可以根据本文描述的方法来执行。在一些实例中,725的操作的方面可以由如参考图6描述的命令执行组件来执行。
在一些实例中,如本文描述的设备可以执行一或多种方法,例如方法700。所述设备可以包含用于以下项的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):将第一指针的值配置为对应于存储器区内的第一存储器地址并将第二指针的值配置为对应于存储器区内的第二存储器地址;监控用于在存储器区内执行存取操作的多个命令,所述多个命令与存储器区内的所请求地址相关联;基于被监控的命令集的数量满足阈值来更新第二指针的值;基于第二指针的经更新值与第一指针的值之间的对应关系来更新第一指针的值;以及在存储器区内的一组位置上执行命令集,所述组位置基于所请求地址、第一指针的值和第二指针的值。
方法700和本文描述的设备的一些实例可进一步包含用于以下项的操作、特征、构件或指令:基于将第二指针的值从第二存储器地址更新为第三存储器地址,将码字从对应于第二指针的经更新值的存储器位置复制到对应于第二指针的先前值的存储器位置。
在方法700和本文描述的设备的一些实例中,监控命令集可进一步包含用于以下项的操作、特征、构件或指令:跟踪与在存储器区执行的命令集相关联的存取计数,其中更新第二指针的值可以基于存取计数满足阈值。
在方法700和本文描述的设备的一些实例中,跟踪存取计数可以包含用于以下项的操作、特征、构件或指令:对于在存储器区执行的每个读取命令,将与存取计数相关联的值增加第一因子,并且对于在存储器区执行的每个写入命令,将与存取计数相关联的值增加第二因子。
方法700和本文描述的设备的一些实例可进一步包含用于以下项的操作、特征、构件或指令:每次存取计数满足阈值时重置存取计数;每次存取计数满足阈值时更新第二指针的值;以及每次存取计数满足阈值时,将码字从对应于第二指针的经更新值的存储器位置复制到对应于第二指针的先前值的存储器位置。
在方法700和本文描述的设备的一些实例中,更新第二指针的值可以包含用于递减第二指针的操作、特征、构件或指令,并且更新第一指针的值可以包含用于递增第一指针的操作、特征、构件或指令。
在方法700和本文描述的设备的一些实例中,更新第一指针的值可以基于第一指针的值与第二指针的经更新值一致。
在方法700和本文描述的设备的一些实例中,存储器区包含可以在命令集的可寻址地址空间之外的至少一个额外存储器地址,并且配置第二指针包含将第二指针的值分配给至少一个额外存储器地址。
在方法700和本文描述的设备的一些实例中,存储器区的每个存储器地址可以与不同码字相关联。
在方法700和本文描述的设备的一些实例中,执行命令集可以包含用于以下项的操作、特征、构件或指令:至少部分地基于命令集的所请求地址、第一指针以及所请求地址与第一指针和第二指针的关系来确定用于在存储器区内执行存取的偏移存储器地址。
图8示出流程图,示出根据本公开的方面支持用于媒体码字的区域分组的码字轮换的一或多种方法800。方法800的操作可以由如本文描述的存储器装置或其组件来实施。例如,方法800的操作可以由如参考图6描述的存储器装置来执行。在一些实例中,存储器装置可以执行指令集以控制存储器装置的功能元件来执行所描述的功能。另外或替代地,存储器装置可以使用专用硬件来执行所描述的功能的方面。
在805,存储器装置可以将第一指针的值配置为对应于存储器区内的第一存储器地址并将第二指针的值配置为对应于存储器区内的第二存储器地址。805的操作可以根据本文描述的方法来执行。在一些实例中,805的操作的方面可以由如参考图6描述的指针管理器来执行。
在810,存储器装置可以接收用于在存储器区内执行存取操作的第一命令集。810的操作可以根据本文描述的方法来执行。在一些实例中,810的操作的方面可以由如参考图6描述的命令监控管理器来执行。
在815,存储器装置可以确定第一命令集的数量满足阈值。815的操作可以根据本文描述的方法来执行。在一些实例中,815的操作的方面可以由如参考图6描述的命令监控管理器来执行。
在820,存储器装置可以基于确定而将第二指针的值更新为对应于存储器区内的第三存储器地址。820的操作可以根据本文描述的方法来执行。在一些实例中,820的操作的方面可以由如参考图6描述的指针管理器来执行。
在825,存储器装置可以基于更新第二指针的值而将码字从第三存储器地址复制到第二存储器地址。825的操作可以根据本文描述的方法来执行。在一些实例中,825的操作的方面可以由如参考图6描述的存储器轮换管理器来执行。
在830,存储器装置可以在接收到第一命令集之后接收用于在存储器区内执行存取操作的第二命令集。830的操作可以根据本文描述的方法来执行。在一些实例中,830的操作的方面可以由如参考图6描述的命令监控管理器来执行。
在835,存储器装置可以执行第二命令集,其中所述执行包含基于第一指针和第二指针而将存取第三存储器地址的命令偏移到第二存储器地址。835的操作可以根据本文描述的方法来执行。在一些实例中,835的操作的方面可以由如参考图6描述的命令执行组件来执行。
在一些实例中,如本文描述的设备可以执行一或多种方法,例如方法800。所述设备可以包含用于以下项的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):将第一指针的值配置为对应于存储器区内的第一存储器地址并将第二指针的值配置为对应于存储器区内的第二存储器地址;接收用于在存储器区内执行存取操作的第一命令集;确定第一命令集的数量满足阈值;基于确定而将第二指针的值更新为对应于存储器区内的第三存储器地址;基于更新第二指针的值,将码字从第三存储器地址复制到第二存储器地址;在接收到第一命令集之后接收用于在存储器区内执行存取操作的第二命令集;以及执行第二命令集,其中执行包含基于第一指针和第二指针而将存取第三存储器地址的命令偏移到第二存储器地址。
方法800和本文描述的设备的一些实例可进一步包含用于以下项的操作、特征、构件或指令:在接收到第二命令集之后接收用于在存储器区内执行存取操作的第三命令集;基于接收到第三命令集而将第二指针的值更新为对应于第一存储器地址;以及基于将第二指针的值更新为对应于第一存储器地址而将第一指针的值更新为对应于第四存储器地址。
方法800和本文描述的设备的一些实例可进一步包含用于以下项的操作、特征、构件或指令:接收用于在存储器区内执行存取操作的第四命令集;以及执行第四命令集,其中执行第四命令集包含将第四命令集的第一子集的所请求地址偏移第一量且将第四命令集的第二子集的所请求地址偏移第二量。
应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。此外,可以组合来自方法中的两个或更多个的部分。
可使用多种不同技术和技艺中的任一个来表示本文描述的信息和信号。例如,可以通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能引用的数据、指令、命令、信息、信号、位、符号和码片。一些图可将信号示为单个信号;然而,所属领域的一般技术人员应理解,信号可表示三信号的总线,其中总线可具有各种位宽度。
如本文所使用,术语“虚拟接地”是指保持在大约零伏(0V)的电压下而不直接与地耦合的电路节点。因此,虚拟接地的电压可能会暂时波动并返回到大约0V。可以使用例如由运算放大器和电阻器构成的分压器等各种电子电路元件来实施虚拟接地。其它实施方案也是可能的。“虚拟接地”或“被虚拟接地”意味着连接到大约0V。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可以包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些情况下,可例如使用如开关或晶体管的一或多个中间组件将所连接组件之间的信号流动中断一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传送,在闭路关系中,信号能够通过导电路径在组件之间传送。当例如控制器等组件将其它组件耦合在一起时,组件起始允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。例如,由定位在两个组件之间的开关间隔开的组件在开关断开时彼此隔离。当控制器使两个组件彼此分隔开时,所述控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文中使用的术语“层”是指几何结构的分层或薄片。每一层可具有三个维度(例如,高度、宽度和深度)并且可覆盖表面的至少一部分。举例来说,层可以是两个维度大于第三维度的三维结构,例如薄膜。层可以包含不同元件、组件和/或材料。在一些情况下,一个层可由两个或两个以上子层组成。在一些附图中,出于说明的目的而描绘三维层中的两个维度。
如本文所用,术语“大体上”意指经修饰特征(例如由术语大体上修饰的动词或形容词)不必是绝对的但要足够接近以便获得特征的优点。
本文讨论的包含存储器阵列的装置可形成在半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些情况下,衬底为半导体晶片。在其它状况下,衬底可以是绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端子装置。所述端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可以是导电的,且可包括经重掺杂,例如简并,半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分离。如果沟道是n型(例如,大部分载流子为电子),那么FET可以被称作n型FET。如果沟道是p型的(即,大部分载体为空穴),那么FET可被称为p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。例如,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变得导电。当大于或等于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“接通”或“激活”。当小于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“断开”或“去激活”。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文所用的术语“示例性”意指“充当实例、例子或说明”,而不是“优选”或“优于其它实例”。详细描述包含具体细节,以提供对所描述技术的理解。然而,可以在没有这些具特定细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可以具有相同的参考标记。另外,可通过在参考标记之后跟着短划线及在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
可使用多种不同技术和技艺中的任一个来表示本文描述的信息和信号。例如,可以通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能引用的数据、指令、命令、信息、信号、位、符号和码片。
结合本文公开内容描述的各种说明性块和模块可使用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件、或设计成执行本文描述的功能的其任何组合来实施或执行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何处理器、控制器、微控制器或状态机。处理器还可以实施为计算装置的组合(例如,DSP和微处理器的组合、多个微处理器、与DSP核心结合的一或多个微处理器,或任何其它此类配置)。
本文描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软件来实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体予以传输。其它实例和实施在本公开和所附权利要求书的范围内。例如,由于软件的本质,上文所描述的功能可以使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一者的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。并且,如本文中所使用,包含在权利要求书中,项目的列表(例如,以例如“中的至少一者”或“中的一或多者”的短语开始的项目的列表)中所使用的“或”指示包含性列表,使得(例如)A、B或C中的至少一者的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文所使用,短语“基于”不应理解为提及封闭条件集。例如,在不脱离本公开的范围的情况下,描述为“基于条件A”的实例性步骤可基于条件A和条件B两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传递到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可以是可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、压缩光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘使用激光以光学方式复制数据。以上各者的组合也包含在计算机可读媒体的范围内。
提供本文中的描述使得所属领域技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文描述的实例和设计,而是被赋予与本文公开的原理和新颖特征一致的最宽范围。
Claims (20)
1.一种方法,其包括:
将第一指针的值配置为对应于存储器区内的第一存储器地址并将第二指针的值配置为对应于所述存储器区内的第二存储器地址;
监控用于在所述存储器区内执行存取操作的多个命令,所述多个命令与所述存储器区内的所请求地址相关联;
至少部分地基于被监控的所述多个命令的数量满足阈值来更新所述第二指针的所述值;
至少部分地基于所述第二指针的经更新值与所述第一指针的所述值之间的对应关系来更新所述第一指针的所述值;以及
在所述存储器区内的一组位置上执行所述多个命令,所述组位置至少部分地基于所述所请求地址、所述第一指针的所述值和所述第二指针的所述值。
2.根据权利要求1所述的方法,其进一步包括:
至少部分地基于将所述第二指针的所述值从所述第二存储器地址更新为第三存储器地址,将码字从对应于所述第二指针的所述经更新值的存储器位置复制到对应于所述第二指针的先前值的存储器位置。
3.根据权利要求1所述的方法,其中监控所述多个命令进一步包括:
跟踪与在所述存储器区处执行的所述多个命令相关联的存取计数,其中更新所述第二指针的所述值至少部分地基于所述存取计数满足所述阈值。
4.根据权利要求3所述的方法,其中跟踪所述存取计数包括:
对于在所述存储器区处执行的每个读取命令,将与所述存取计数相关联的值增加第一因子,并且对于在所述存储器区处执行的每个写入命令,将与所述存取计数相关联的值增加第二因子。
5.根据权利要求3所述的方法,其进一步包括:
每次所述存取计数满足所述阈值时重置所述存取计数;
每次所述存取计数满足所述阈值时更新所述第二指针的所述值;以及
每次所述存取计数满足所述阈值时,将码字从对应于所述第二指针的所述经更新值的存储器位置复制到对应于所述第二指针的先前值的存储器位置。
6.根据权利要求1所述的方法,其中:
更新所述第二指针的所述值包括递减所述第二指针;以及
更新所述第一指针的所述值包括递增所述第一指针。
7.根据权利要求1所述的方法,其中所述更新所述第一指针的所述值至少部分地基于所述第一指针的所述值与所述第二指针的所述经更新值一致。
8.根据权利要求1所述的方法,其中:
所述存储器区包括所述多个命令的在可寻址地址空间之外的至少一个额外存储器地址;并且
所述配置所述第二指针包括将所述第二指针的所述值分配给所述至少一个额外存储器地址。
9.根据权利要求1所述的方法,其中所述存储器区的每个存储器地址与不同码字相关联。
10.根据权利要求1所述的方法,其中所述执行所述多个命令包括:
至少部分地基于所述多个命令的所述所请求地址、所述第一指针以及所述所请求地址与所述第一指针和所述第二指针的关系来确定用于在所述存储器区内执行存取的偏移存储器地址。
11.一种装置,其包括:
存储器区,其与多个存储器地址相关联;
存储器接口,其与所述存储器区耦合且可用于从主机装置接收地址存取命令;
电路系统,其与所述存储器区和所述存储器接口耦合且可用于:
将第一指针设置为对应于所述存储器区内的第一存储器地址的第一值并将第二指针设置为对应于所述存储器内的第二存储器地址的第二值;
监控用于在所述存储器区内执行存取操作的多个命令,所述多个命令与所述存储器区内的所请求地址相关联;
至少部分地基于被监控的所述多个命令的数量满足阈值而将所述第二指针从所述第二值更新为第三值;
至少部分地基于所述第二指针的所述第三值与所述第一指针的所述第一值之间的对应关系而将所述第一指针从所述第一值更新为第四值;以及
至少部分地基于所述多个命令、所述第一指针的所述第四值和所述第二指针的所述第三值来存取所述存储器区。
12.根据权利要求11所述的装置,其中所述电路系统可进一步用于:
至少部分地基于将所述第二指针从所述第二值更新为所述第三值,将码字从对应于所述第三值的存储器位置复制到对应于所述第二值的存储器位置。
13.根据权利要求11所述的装置,其中所述电路系统可进一步用于:
跟踪与所述存储器区的所述存取相关联的存取计数;以及
至少部分地基于所述存取计数满足所述阈值而将所述第二指针从所述第二值更新为所述第三值。
14.根据权利要求12所述的装置,其中:
操作所述电路系统以跟踪所述存取计数包括:对于所述存储器区内的每个读取存取将与所述存取计数相关联的值增加第一因子且对于所述存储器区内的每个写入存取将与所述存取计数相关联的值增加第二因子。
15.根据权利要求12所述的装置,其中所述电路系统可进一步用于:
每次所述存取计数满足所述阈值时重置所述存取计数;
每次所述存取计数满足所述阈值时更新所述第二指针;以及
每次所述存取计数满足所述阈值时,将码字从对应于经更新第二指针的值的存储器位置复制到对应于所述第二指针的先前值的存储器位置。
16.根据权利要求11所述的装置,其中所述电路系统可进一步用于:
对于所述多个命令中的每一个,至少部分地基于所述第一指针的值和所述所请求地址与所述第一指针的所述值和所述第二指针的值的函数的关系而将所述所请求地址转换为存取地址。
17.根据权利要求15所述的装置,其中所述第一指针和所述第二指针的所述函数包括从所述第二指针的所述值中减去所述第一指针的所述值和所述存储器区的大小的模运算。
18.一种方法,其包括:
将第一指针的值配置为对应于存储器区内的第一存储器地址并将第二指针的值配置为对应于所述存储器区内的第二存储器地址;
接收用于在所述存储器区内执行存取操作的第一多个命令;
确定所述第一多个命令的数量满足阈值;
至少部分地基于所述确定而将所述第二指针的所述值更新为对应于所述存储器区内的第三存储器地址;
至少部分地基于更新所述第二指针的所述值,将码字从所述第三存储器地址复制到所述第二存储器地址;
在接收到所述第一多个命令之后接收用于在所述存储器区内执行存取操作的第二多个命令;以及
执行所述第二多个命令,其中所述执行包括至少部分地基于所述第一指针和所述第二指针而将存取所述第三存储器地址的命令偏移到所述第二存储器地址。
19.根据权利要求17所述的方法,其进一步包括:
在接收到所述第二多个命令之后,接收用于在所述存储器区内执行存取操作的第三多个命令;
至少部分地基于接收到所述第三多个命令而将所述第二指针的所述值更新为对应于所述第一存储器地址;以及
至少部分地基于将所述第二指针的所述值更新为对应于所述第一存储器地址而将所述第一指针的所述值更新为对应于第四存储器地址。
20.根据权利要求18所述的方法,其进一步包括:
接收用于在所述存储器区内执行存取操作的第四多个命令;以及
执行所述第四多个命令,其中执行所述第四多个命令包括将所述第四多个命令的第一子集的所请求地址偏移第一量且将所述第四多个命令的第二子集的所请求地址偏移第二量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/414,771 US11119946B2 (en) | 2019-05-16 | 2019-05-16 | Codeword rotation for zone grouping of media codewords |
US16/414,771 | 2019-05-16 | ||
PCT/US2020/031693 WO2020231704A1 (en) | 2019-05-16 | 2020-05-06 | Codeword rotation for zone grouping of media codewords |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113906397A true CN113906397A (zh) | 2022-01-07 |
Family
ID=73228480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080040394.7A Pending CN113906397A (zh) | 2019-05-16 | 2020-05-06 | 用于媒体码字的区域分组的码字轮换 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11119946B2 (zh) |
EP (1) | EP3969997A4 (zh) |
KR (1) | KR20210154997A (zh) |
CN (1) | CN113906397A (zh) |
WO (1) | WO2020231704A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11488650B2 (en) * | 2020-04-06 | 2022-11-01 | Memryx Incorporated | Memory processing unit architecture |
US11609846B2 (en) | 2020-09-11 | 2023-03-21 | Micron Technology, Inc. | Managing workload of programming sets of pages to memory device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101675479A (zh) * | 2007-05-03 | 2010-03-17 | 爱特梅尔公司 | 损耗均衡 |
US20120079172A1 (en) * | 2010-09-24 | 2012-03-29 | Kabushiki Kaisha Toshiba | Memory system |
CN102981972A (zh) * | 2012-12-25 | 2013-03-20 | 重庆大学 | 一种相变存储器的损耗均衡方法 |
CN102981971A (zh) * | 2012-12-25 | 2013-03-20 | 重庆大学 | 一种快速响应的相变存储器损耗均衡方法 |
CN105930280A (zh) * | 2016-05-27 | 2016-09-07 | 诸葛晴凤 | 一种面向非易失性内存的高效的页面组织和管理方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806171B2 (en) | 2011-05-24 | 2014-08-12 | Georgia Tech Research Corporation | Systems and methods providing wear leveling using dynamic randomization for non-volatile memory |
US9256531B2 (en) * | 2012-06-19 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear addresss remapping logic |
US9588882B2 (en) * | 2013-12-02 | 2017-03-07 | Intel Corporation | Non-volatile memory sector rotation |
US10003675B2 (en) * | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
US9460001B2 (en) * | 2014-03-21 | 2016-10-04 | Veritas Technologies Llc | Systems and methods for identifying access rate boundaries of workloads |
US20160118132A1 (en) * | 2014-10-27 | 2016-04-28 | Sandisk Enterprise Ip Llc | Low Impact Read Disturb Handling |
US9811456B2 (en) | 2014-11-26 | 2017-11-07 | Advanced Micro Devices, Inc. | Reliable wear-leveling for non-volatile memory and method therefor |
WO2017058184A1 (en) | 2015-09-30 | 2017-04-06 | Hewlett Packard Enterprise Development Lp | Remapping operations |
US10248571B2 (en) | 2016-08-11 | 2019-04-02 | Hewlett Packard Enterprise Development Lp | Saving position of a wear level rotation |
US11556462B2 (en) * | 2016-08-24 | 2023-01-17 | Futurewei Technologies, Inc. | Wear-leveling method for cross-point memory for multiple data temperature zones |
-
2019
- 2019-05-16 US US16/414,771 patent/US11119946B2/en active Active
-
2020
- 2020-05-06 WO PCT/US2020/031693 patent/WO2020231704A1/en active Application Filing
- 2020-05-06 KR KR1020217040920A patent/KR20210154997A/ko not_active Application Discontinuation
- 2020-05-06 EP EP20805649.9A patent/EP3969997A4/en not_active Withdrawn
- 2020-05-06 CN CN202080040394.7A patent/CN113906397A/zh active Pending
-
2021
- 2021-09-07 US US17/468,160 patent/US11720502B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101675479A (zh) * | 2007-05-03 | 2010-03-17 | 爱特梅尔公司 | 损耗均衡 |
US20120079172A1 (en) * | 2010-09-24 | 2012-03-29 | Kabushiki Kaisha Toshiba | Memory system |
CN102981972A (zh) * | 2012-12-25 | 2013-03-20 | 重庆大学 | 一种相变存储器的损耗均衡方法 |
CN102981971A (zh) * | 2012-12-25 | 2013-03-20 | 重庆大学 | 一种快速响应的相变存储器损耗均衡方法 |
CN105930280A (zh) * | 2016-05-27 | 2016-09-07 | 诸葛晴凤 | 一种面向非易失性内存的高效的页面组织和管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US11119946B2 (en) | 2021-09-14 |
EP3969997A1 (en) | 2022-03-23 |
WO2020231704A1 (en) | 2020-11-19 |
US20220066949A1 (en) | 2022-03-03 |
KR20210154997A (ko) | 2021-12-21 |
US20200364155A1 (en) | 2020-11-19 |
EP3969997A4 (en) | 2023-06-14 |
US11720502B2 (en) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11727999B2 (en) | Zone swapping for wear leveling memory | |
CN109800183B (zh) | 用于多端口存储类存储器接口的方法及设备 | |
US11720502B2 (en) | Codeword rotation for zone grouping of media codewords | |
US11537527B2 (en) | Dynamic logical page sizes for memory devices | |
US20230185728A1 (en) | Data alignment for logical to physical table compression | |
US20230342077A1 (en) | Unmap backlog in a memory system | |
CN114691031A (zh) | 基于分片操作的存储器系统的存取 | |
CN114756167A (zh) | 使用压缩存储器的读取操作 | |
US11797380B2 (en) | Host-configurable error protection | |
WO2022193143A1 (en) | Validity mapping techniques | |
CN114546895B (zh) | 主机侧存储器地址管理 | |
US11989133B2 (en) | Logical-to-physical mapping compression techniques | |
US20230176778A1 (en) | Managing single-level and multi-level programming operations | |
WO2022193233A1 (en) | Memory write performance techniques | |
WO2022193271A1 (en) | Techniques for afragment cursor | |
WO2022047619A1 (en) | Dynamically tuning host performance booster thresholds | |
CN117063167A (zh) | 共享虚拟地址空间 | |
CN114116526A (zh) | 用于用嵌入式存储器系统进行受管理nand转译的技术 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20220107 |
|
WD01 | Invention patent application deemed withdrawn after publication |