CN114647375B - 使装置具备增强型持久性存储器区存取能力 - Google Patents

使装置具备增强型持久性存储器区存取能力 Download PDF

Info

Publication number
CN114647375B
CN114647375B CN202111551010.0A CN202111551010A CN114647375B CN 114647375 B CN114647375 B CN 114647375B CN 202111551010 A CN202111551010 A CN 202111551010A CN 114647375 B CN114647375 B CN 114647375B
Authority
CN
China
Prior art keywords
memory
protocol
pmr
interface standard
cxl
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
Application number
CN202111551010.0A
Other languages
English (en)
Other versions
CN114647375A (zh
Inventor
J·H·斯坦梅茨
L·伯特
W·阿金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN114647375A publication Critical patent/CN114647375A/zh
Application granted granted Critical
Publication of CN114647375B publication Critical patent/CN114647375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请案涉及使装置具备增强型持久性存储器区存取能力。接收主机命令以配置系统以使其具有指定用于揭露存储元件及持久性存储器区PMR的接口标准的配置。所述存储元件对所述接口标准的第一协议可见且所述PMR对所述接口标准的第二协议可见。所述存储元件在包含非易失性存储器装置的所述系统的第一存储器装置上实施且所述PMR在所述系统的第二存储器装置上实施。所述系统是根据所述配置来配置。

Description

使装置具备增强型持久性存储器区存取能力
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及使装置具备增强型持久性存储器区(PMR)存取能力。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。所述存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统以将数据存储在所述存储器装置处及从所述存储器装置检索数据。
发明内容
根据本申请案的一方面,提供一种系统。所述系统包括:第一存储器装置,其包括非易失性存储器装置;第二存储器装置;及处理装置,其与所述第一及第二存储器装置可操作地耦合,以执行包括以下的操作:接收主机命令以配置所述系统以使其具有指定用于揭露在所述第一存储器装置上实施的存储元件及在所述第二存储器装置上实施的持久性存储器区(PMR)的接口标准的配置,所述存储元件对所述接口标准的第一协议可见且所述PMR对所述接口标准的第二协议可见;及根据所述配置来配置所述系统。
根据本申请案的另一方面,提供一种方法。所述方法包括:接收主机命令以配置系统以使其具有指定用于揭露存储元件及持久性存储器区(PMR)的接口标准的配置,所述存储元件对所述接口标准的第一协议可见且所述PMR对所述接口标准的第二协议可见,其中所述存储元件是在包括非易失性存储器装置的所述系统的第一存储器装置上实施且所述PMR是在所述系统的第二存储器装置上实施;及根据所述配置来配置所述系统。
根据本申请案的又一方面,提供一种非暂时性计算机可读存储媒体,所述非暂时性计算机可读存储媒体包括指令,所述指令在由处理装置执行时致使所述处理装置执行包括以下的操作:引导包括第一存储器装置及第二存储器装置的系统以使其具有与第一接口标准相关联的第一配置,所述第一存储器装置包括非易失性存储器装置;接收主机命令以配置所述系统以使其具有指定用于揭露在所述第一存储器装置上实施的存储元件及在所述第二存储器装置上实施的持久性存储器区(PMR)的第二接口标准的第二配置,所述存储元件对所述第二接口标准的第一协议可见且所述PMR对所述第二接口标准的第二协议可见;及根据所述第二配置来配置所述系统。
附图说明
从下文所给出的详细描述及从本公开的各种实施例的附图,将更全面地理解本公开。然而,附图不应被视为将本公开限于特定实施例,而是仅用于解释及理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2是根据本公开的一些实施例的用于使装置具备增强型持久性存储器区(PMR)存取能力的实例方法的流程图。
图3是根据本公开的一些实施例的包含具备增强型持久性存储器区(PMR)存取能力的装置的实例系统的框图。
图4是根据本公开的一些实施例的实施具备增强型持久性存储器区(PMR)存取能力的装置的实例系统的框图。
图5是说明根据本发明的一些实施例的用于实施电容器(CAP)检查的系统的框图。
图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及使装置具备增强型持久性存储器区(PMR)存取能力。存储器子系统可为存储装置、存储器模块或存储装置或存储器模块的组合。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件的存储器子系统,所述组件例如存储数据的存储器装置。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。
存储器子系统可包含高密度非易失性存储器装置,其中当没有电力被供应到所述存储器装置时期望保留数据。非易失性存储器装置的一个实例是“与非”(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由一组物理块组成。每一块由一组页面组成。每一页面由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,且具有与被存储的位的数目相关的各种逻辑状态。所述逻辑状态可由二进制值,例如“0”及“1”,或此类值的组合来表示。
对于可利用面向事务的持久性存储器的多种实施方案或使用案例,在块存储元件旁边具有系统揭露的字节可寻址存储器的区变得更加重要,且现代应用对事务一致性的依赖性已显著地增长。可利用面向事务的持久性存储器的示范性实施方案包含但不限于写入日志记录,软件RAID及纠删编码系统的日志,数据库的提交日志,压缩卷的元数据,重复数据删除、压缩等的分级,故障转移环境中的状态转移,错误/警告日志记录(例如,装置面包屑导航),用于行内块压缩的压缩元数据表及协作存储域元数据(例如,虚拟驱动器群组)。
一种正在实施的解决方案是使用非易失性直插式存储器模块(NVDIMM)。然而,NVDIMM实施方案可能很昂贵且具有它们本身的局限性。例如,NVDIMM将来可能不实用,因为所述技术可能不容易适用于现代系统架构且因为其在节点之间的保护机制无法相应地伸缩。
存储器子系统中的存储器装置,例如固态驱动器(SSD)可通过经由总线附接的逻辑装置接口来存取。用于存取存储器装置的此逻辑装置接口的一个实例是非易失性存储器快速(NVMe)。主机系统(“主机”)可经由例如外围组件互连快速(PCIe)总线存取存储器子系统,且对存储器子系统的(若干)存储器装置的存取在本文中可被称为PCIe NVMe。更具体来说,存储器子系统(例如,SSD)可包含存储元件及持久性存储器区(PMR)。例如,存储元件可包含块存储元件。PMR对应于被实施为电源保护易失性存储器装置(例如,电源保护动态随机存取存储器(DRAM))的可读持久性存储器的区域。更具体来说,PMR可为可通过基地址寄存器(BAR)存取的字节可寻址存储器区。NVMe SSD连接的存储器装置可包含PMR,其中此装置被称为具有PMR的NVMe SSD装置。
尽管举例来说例如具有PMR的NVMe SSD装置的装置可在存储元件旁边提供所要系统揭露的字节可寻址存储器,但可高速缓存性及/或一致性的潜在缺乏可能使此类装置不太有用,因为其可使管理更加困难,可能需要定制软件,且可能限制性能。另外,PMR内的存储器大小对于许多解决方案来说可能太小。因此,这些示范性缺陷限制了行业广泛采用其作为可利用面向事务的持久性存储器的解决方案。
本公开的方面通过具有使装置具备增强型PMR存取能力的存储器子系统而解决上述及其它缺陷。例如,本文中所描述的装置可为具有PMR的NVMe SSD。更具体来说,本公开的方面用提供对PMR的增强型存取的底层接口标准,在单个装置中将在包含非易失性存储器装置的第一存储器装置上实施的存储元件与在第二存储器装置上实施的PMR组合。例如,存储器子系统可包含具有PMR的NVMe SSD装置,其中存储元件是NVMe块存储元件。作为一个实例,PMR可被实施为易失性存储器装置上的电源保护区。此处,易失性存储器装置可包含DRAM。作为另一实例,PMR可在本机非易失性存储器装置,例如磁性RAM(MRAM)或其它类似的非易失性存储器装置上实施。然而,此类实例不应被视为限制性的。本文中所描述的装置可用于执行(若干)任何合适应用程序。例如,装置可被实施为存储器缓冲区以执行一或多个持久性存储器应用程序。
底层接口标准可实施由另一接口标准支持的一或多个替代协议。例如,底层接口标准可实施由PCIe支持的一或多个替代协议(例如,非PCIe协议)。在一些实施例中,底层接口标准是计算快速链路(CXL)。
通常,CXL是可支持可在PCIe的顶部上运行的数种协议,包含CXL.io协议、CXL.mem协议及CXL.cache协议的接口标准。CXL.io协议是可被视为能够腾出受管理存储器的“增强型”PCIe协议的类PCIe协议。CXL.io可用于初始化、链接、装置发现及枚举、寄存器存取,且可为I/O装置提供接口。CXL.mem协议可使主机能够使用存储器语义(例如,加载及存储命令)来存取所附接装置的存储器。这种方法可支持易失性及持久性存储器架构两者。CXL.cache协议可定义主机装置交互以实现使用请求及响应方法以低延时高效地高速缓存主机存储器。流量(例如,NVMe流量)可贯穿CXL.io协议,且CXL.mem及CXL.cache协议可共享共同链路层及事务层。因此,CXL协议可经由PCIe物理层进行多路复用及传输。如本文将进一步详细地描述,CXL.io可用于揭露存储元件且CXL.mem及/或CXL.cache可用于以提供增强型PMR存取的方式揭露PMR。
本公开的优点包含但不限于:以增加的可高速缓存性及/或一致性揭露在SSD块存储元件旁边的字节可寻址存储器的区;块存储元件的附加延时可忽略不计(例如,约25ns);及可与未来的中央处理单元(CPU)及切换配置兼容。例如,CXL.mem协议可提供存储器语义(例如,加载及存储命令)以使PMR能够容易以使其可高速缓存且一致的方式映射到系统存储器中。这种能力的此可伸缩性扩展到多CPU及多系统。CXL.mem的其它特征,例如举例来说全局持久性刷新、异常关闭、病毒错误遏制及邮箱命令接口,至少可解决PMR(例如,NVMe)的一些现存局限性。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。
存储器子系统110可为存储装置、存储器模块或存储装置及存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪存储器驱动器、通用串行总线(USB)快闪存储器驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储装置(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)启用装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的计算机)或包含存储器及处理装置的此计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到…”或“与…耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中介组件),无论是有线还是无线,包含例如电连接、光学连接、磁性连接等的连接。
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110例如以将数据写入到存储器子系统110及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附接(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双倍数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM插槽接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可进一步利用NVM Express(NVMe)接口以存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1将存储器子系统110作为实例进行说明。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可基于体电阻的变化,结合可堆叠交叉网格数据存取阵列来执行位存储。另外,与许多基于快闪存储器的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在无需事先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置130中的每一者可包含存储器单元的一或多个阵列。一种类型的存储器单元,例如单电平单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含例如SLC、MLC、TLC、QLC、PLC或其任何组合的存储器单元的一或多个阵列。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可被分组为可指用于存储数据的存储器装置的逻辑单位的页面。对于一些类型的存储器(例如,NAND),页面可经分组以形成块。
尽管描述例如非易失性存储器单元的3D交叉点阵列及NAND型快闪存储器(例如,2D NAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见是控制器115)可与存储器装置130进行通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作以及其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路及/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适处理器。
存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理装置,所述处理装置包含一或多个处理器(例如,处理器117)。在所说明实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程及例程的指令的嵌入式存储器。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已被说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而可代替地依赖于外部控制(例如,由外部主机提供,或由与存储器子系统分开的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将命令或操作转换成指令或适当命令以实现对存储器装置130的所要存取。存储器子系统控制器115可负责与存储器装置130相关联的其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作及逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120进行通信。主机接口电路系统可将从主机系统接收的命令转换成用于存取存储器装置130的命令指令并且将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130的高速缓存或缓冲区(例如,DRAM)及地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置130包含结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其是具有裸片上的控制逻辑(例如,本地控制器135)及用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。
可见性配置(VC)组件113可用于使存储器子系统110(例如,NVMe SSD装置)具备增强型PMR存取能力。VC组件113可在单个装置中将在存储器装置130(其对应于非易失性存储器装置(例如,NVMe SSD块存储元件))上实施的存储元件137与在存储器装置140上实施的PMR 145组合。例如,存储器装置140可包含易失性存储器装置(例如,DRAM)且PMR 145可被实施为易失性存储器装置上的电源保护区。作为另一实例,存储器装置140可包含非易失性存储器装置(例如,MRAM)且PMR 145可在非易失性存储器装置上实施。在一些实施例中,存储器子系统110可为支持CXL协议的CXL装置。例如,VC组件113可通过CXL.io配置存储元件137的可见性且通过CXL.mem及/或CXL.cache配置PMR 145的可见性,以使支持块存储及PMR两者的单个CXL装置具备增强型PMR存取能力。VC组件113可用于实施任何合适装置以执行(若干)任何合适应用程序。例如,可实施存储器缓冲区以执行一或多个持久性存储器应用程序。在一些实施例中,存储器子系统控制器115包含VC组件113的至少一部分。在一些实施例中,VC组件113是主机系统120、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含VC组件113的至少一部分且经配置以执行本文中所描述的功能性。下文描述关于VC组件113的操作的进一步细节。
图2是根据本公开的一些实施例的使装置具备增强型持久性存储器区(PMR)存取能力的实例方法200的流程图。方法200可由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的VC组件113执行。尽管以特定顺序或次序展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,在各个实施例中可省略一或多个过程。因此,并非在每个实施例中均需要所有过程。其它过程流程也是可能的。
在操作210,处理逻辑引导包含第一存储器装置及第二存储器装置的系统以使其具有与第一接口标准相关联的第一配置。在一个实施例中,第一接口标准是PCIe。然而,此实施例不应被视为限制性,且第一接口标准可为根据本文中所描述的实施例的任何合适接口标准。更具体来说,第一存储器装置可包含非易失性存储器装置。在一些实施例中,非易失性存储器装置包含NAND快闪存储器。第二存储器装置可为用于支持持久性存储器区(PMR)的任何合适装置。在一些实施例中,第二存储器装置包含易失性存储器装置。例如,易失性存储器装置可包含DRAM,所述DRAM可对应于DDR。在一些实施例中,第二存储器装置包含第二非易失性存储器装置。例如,第二非易失性存储器装置可包含MRAM或其它合适的非易失性存储器装置。在一些实施例中,所述系统包含NVMe SSD装置。
在操作220,处理逻辑接收主机命令以配置所述装置以使其具有指定用于揭露在第一存储器装置上实施的存储元件及在第二存储器装置上实施的持久性存储器区(PMR)的第二接口标准的第二配置。例如,在其中第二存储器装置包含易失性存储器装置的实施例中,PMR可被实施为易失性存储器装置上的电源保护区。更具体来说,存储元件将通过第二接口标准的第一协议可见且PMR区将通过第二接口标准的第二协议可见。在其中所述系统包含NVMe SSD装置的实施例中,存储元件可为NVMe块存储元件。
第二接口标准实现对PMR的增强型存取。例如,第一协议及第二协议可为由第一接口标准支持的替代协议。在一些实施例中,第二接口标准是支持用于揭露存储元件的第一CXL协议及用于揭露PMR的第二CXL协议的计算快速链路(CXL)。例如,第一CXL协议可为CXL.io协议且第二CXL协议可为CXL.mem协议或CXL.cache协议。CXL.mem协议及/或CXL.cache协议的选择可取决于所要实施方案。然而,此实施例不应被视为限制性,且第二接口标准可为根据本文中所描述的实施例的任何合适接口标准。
更具体来说,所述系统可将自身重新配置为多端口系统,其中数个端口中的每一者具有其本身的协商协议。在本文中,所有端口可独立及/或同时配置。在配置之后,可能需要重新引导。在一些实施例中,第二配置在第一端口处指定用于揭露存储元件及PMR的第一区的第二接口标准,且在第二端口处指定用于揭露存储元件及PMR的第二区的第二接口标准。例如,在其中第一及第二端口对称的此双端口模式中,第一端口及第二端口可各自允许使用第一协议(例如,CXL.io)来存取存储元件及使用第二协议(例如,CXL.mem或CXL.cache)来存取它们相应的PMR的区。
在固件控制下,可针对独立或重叠的第一及第二区以编程方式配置PMR。例如,如果PMR具有32MB的大小,第一端口可被指派0-15MB且第二端口可被指派16-32MB,那么第一及第二区是独立的。作为另一实例,如果第一端口被指派0-30MB且第二端口被指派15-32MB,那么第一及第二区是重叠的。在重叠情况下,主机的责任可为解决写入冲突及/或排序。PMR存储器范围可由所述装置在以第二配置引导之前启用。存在关于如何映射及发现存储器的特定协议(例如,在第一及第二接口标准中)且必须根据需要遵循每一协议。
根据本文中所描述的实施例,可使用(若干)任何合适机制来将PMR实施为易失性存储器装置上的电源保护区。例如,PMR可通过采用备用电容器而实施为易失性存储器装置上的电源保护区。此类备用电容器可存储可用于响应于掉电事件而启用PMR来写入数据的电荷。更具体来说,(若干)PMR存储器区可基于由备用电容器提供的能量来写入到非易失性存储器(例如,SSD NAND)。如下文将参考图5进一步详细地描述,所述系统可发起电容器(CAP)检查以评估备用电容器降级。
在操作230,处理逻辑根据第二配置来配置所述系统。例如,如果固件在控制中,那么固件可通过从其内部存储器映射为PMR腾出所需存储器空间而配置所述系统。所述存储器空间可为简单地以内部存储器偏移及长度表征的连续存储器段,且这将正好作为存储器偏移向系统揭露,因为基地址将由可扩展固件接口(EFI)及引导加载程序提供。在一些实施例中,如上文所描述,所述系统可将自身重新配置为多端口(例如,双端口)系统。
在操作240,处理逻辑在配置所述系统之后发起重新引导。可能需要重新引导以在配置改变之后重新扫描装置,且在一些实施例中不需要重新引导。例如,所述系统可在重新引导之后作为多端口(例如,双端口)系统出现。在其中第二接口标准是CXL的实施例中,CXL.io协议可用于发现能力且可检测有CXL.mem协议及/或CXL.cache协议能力的存储器区。
在操作230之后(及在操作240的任何所需重新引导之后),主机系统可看到对应于第一及第二接口标准中的相应者的两个单独的第一及第二标识。例如,在其中第一接口标准是PCIe且第二接口标准是CXL的情况下,第一标识可包含命名空间且第二标识可包含CXL存储器。主机系统接着可使用单独的数据路径来独立地寻址单独的第一及第二标识,就好像它们在完全单独的装置上一样,从而确保完全的数据分离及隔离。例如,SSD命名空间可由NVMe存储驱动程序声明,而CXL存储器可取决于使用模型而映射到内核存储器或甚至用户空间存储器中,且可为可直接字节存取、一致的及可高速缓存的,且几乎无法与常规存储器区分开。EFI及操作系统(OS)可映射OS可映射OS可高速缓存存储器映射(例如,输入输出存储器管理单元(IOMMU)映射)内的连续区。因此,所述系统可经配置以将PMR的段分配为通过第二接口标准标记为可见的可高速缓存存储器,且PMR的段可被检测为通过第二接口标准共享的内部存储器范围。
在操作250,处理逻辑基于所述配置来执行至少一个系统操作。在一些实施例中,至少一个系统操作可包含至少一个错误管理操作。错误管理操作的实例包含协议错误管理及数据错误管理。在一些实施例中,至少一个系统操作在任选重新引导之后执行。
协议错误可为例如响应于所述系统尝试存取存储器而产生的错误。执行协议错误管理可包含接收协议错误且通过第二接口标准(例如,CXL.io)报告协议错误。
数据错误可为例如由第一接口标准侧(例如,SSD侧)尝试从第二接口标准侧(例如,CXL侧)放置或接收数据而引起的错误。在数据错误管理中,数据错误将不会向第二接口标准侧揭露。代替地,执行数据错误管理可包含接收数据管理错误,由存储元件处理数据管理错误,及通过与存储元件相关联的报告机制报告数据管理错误。这可保证单独的数据流路径(通过第二接口标准,如果需要)及控制路径(通过第一接口标准侧)。
另外,可能有必要跟踪PMR的每个“行”(例如,64B)的中毒状态。中毒状态可通过电力循环保持,且取决于用于PMR的存储器技术,可能需要某种形式的存储器清除(例如,“巡视清除”)。
图3是根据本公开的一些实施例的具备增强型持久性存储器区(PMR)存取能力的装置的实例系统300的框图。更具体来说,在这个说明性实例中,系统300包含具有PMR的启用计算快速链路(CXL)的NVMe SSD装置。
系统300可包含中央处理单元(CPU)310。所述CPU可对应于主机系统,例如主机系统120。例如,主机系统可为NVMe主机。系统300可进一步包含经由第一CXL连接315可操作地耦合到CPU组件320的CXL开关320。第一CXL连接315可包含用于实施CXL协议(包含CXL.io、CXL.mem及CXL.cache)的一组数据传输通路(“通路”)。根据本文中所描述的实施例,第一CXL连接315可包含任何合适数目个通路。例如,第一CXL连接315可包含16个通路(即,CXLx16)。
系统300可进一步包含数个第二CXL连接325-1到325-4,以及经由第二CXL连接325-1到325-4中的一者可操作地耦合到CXL开关的CXL装置330。在这个说明性实例中,CXL装置330经由第二CXL连接325-4可操作地耦合到CXL开关320。根据本文中所描述的实施例,第二CXL连接325-1到325-4中的每一者可包含各自包含任何合适数目个通路的一组对应通路。例如,第二CXL连接325-4可包含4个通路(CXL x4)。
在这个说明性实例中,CXL装置330是包含数个子组件的NVMe SSD装置。更具体来说,所述子组件包含PMR 332、DDR存储器334(例如,存储器装置140)、NVMe块存储元件336及NAND存储器338(例如,存储器装置130)。DDR存储器334也可用于NAND存储器338的操作中,但作为逻辑上不同的DDR。DDR存储器334、NVMe块存储元件336及NAND存储器338在这个说明性NVMe SSD实例中是示范性的。
CXL装置330可对至少CXL.io及CXL.mem提供支持。更具体来说,PMR 332可通过CXL.mem存取且NVMe块存储元件336可通过CXL.io存取。通过将例如CXL.io用于NVMe块存储元件336及将例如CXL.mem用于PMR 332,可获得支持块存储及可高速缓存且一致的PMR两者的单个装置。由于CXL被设计为低延时,因此NVMe块存储元件336的附加延时(例如,25ns)可忽略不计。假设存储器处于DDR速度下,则CXL.mem延时的目标是~80ns。在其中PMR 332通过CXL.mem可见的实施例中,CXL装置330可在存储器缓冲区内实施以执行一或多个持久性存储器应用程序,如下文将参考图4进一步详细地描述。
使用图3中所展示的配置,CXL装置330可引导为例如具有CXL.io协议及CXL.mem协议支持的PCIe。可使用CXL.io来存取NVMe块存储元件336,其中使用CXL.mem来提供增强型PMR存取。更具体来说,CXL装置330可为将通过CXL.mem可见的PMR332分配存储器段。例如,PMR 332可具有32MB的大小。然而,此大小纯粹是示范性的。接着,可将对应于PMR 332的这个存储器段标记为可共享且可高速缓存。
考虑包含对称的第一及第二端口的双端口模式。在固件控制下,可针对独立或重叠的存储器区以编程方式配置PMR 332内的区。例如,假设PMR 332具有32MB的大小。在一种情况下,第一端口可被指派0-15MB且第二端口可被指派16-32MB。在另一情况下,第一端口可被指派0-30MB且第二端口可被指派15-32MB。在后一情况下,跨第一及第二端口共享15-30MB,从而导致跨第一及第二端口的重叠。主机的责任是解决冲突及/或排序。
系统300可提供各种类型的错误管理,包含协议错误管理及数据错误管理。在协议错误管理中,协议错误(例如,响应于所述系统尝试存取存储器而产生的错误)通过CXL.io报告。在数据错误管理中,数据错误(例如,由SSD侧尝试从CXL侧放置或接收数据而引起的错误)将不会向CXL侧揭露。代替地,数据错误可由SSD侧处理且通过SSD错误报告机制报告。这可保证单独的数据流路径(通过CXL,如果需要)及控制路径(通过SSD侧)。另外,CXL包含中毒指示的可能性。可能有必要跟踪PMR 332的每个“行”(例如,64B)的中毒状态。中毒状态应通过电力循环保持,且取决于用于PMR 332的存储器技术,可能需要某种形式的存储器清除(例如,“巡视清除”)。
可考虑数个考虑因素以确保由使用CXL.mem协议来揭露PMR而产生的适当PMR操作及性能。一个考虑因素是启动及关机。例如,由于PMR是持久性的,因此可提供特殊的启动及关机解决方案以使“状态”与主机同步。主机可能不知晓致使PMR未“就绪”或可用的事情,例如举例来说掉电或存储器降级。因此,可根据本文中所描述的实施例提供机制以向主机通知或传达某些PMR状态或就绪状态。更具体来说,可定义指示“就绪百分比”的特殊状态寄存器,其中0%-100%的标度不仅给出“未就绪”的指示,而且给出还要多长时间才能“就绪”的线性估计。这个寄存器改变状态的通知可通过异步事件通知(AEN)来完成,其是定义为例如NVMe规范的部分的机制。因此,使用PMR能力的主机应用程序可在一天开始时及在任何AEN之后观察PMR就绪状态寄存器作为通往任何PMR操作的门,或冒丢失数据的风险。应注意,用于引导的时间及用于PMR就绪状态的时间可因PMR大小而异。为了确保完整性及与主机的同步性,可使用存储器区域散列。例如,主机可保留其本身的散列且在100%就绪后,可与所述散列的装置版本进行比较。所述散列也可经存储在所述系统(例如,SSD)的存储(例如,NAND)侧中(或甚至在另一存储装置上)。可基于使PMR进入就绪或可用状态需要采取的动作来估计到PMR就绪或可用的时间。
另一考虑因素是AEN。AEN自身并不直接与利用PMR的应用程序进行通信。相反,AEN通常通知存储器碰巧附接到的存储驱动程序。由于PMR应用程序不是存储驱动程序,与PMR应用程序进行通信的在主机上的存储堆叠中的瘦驱动程序可用于使用AEN机制(例如,通过采用装置映射程序)来管理此类事件的递送。更具体来说,瘦驱动程序可检测与PMR相关的相关AEN事件且向恰当PMR驱动程序发信号通知相关AEN事件。
另一考虑因素是降级的能力。例如,在掉电的情况下,具有提供足够时间来写入未提交给非易失性存储器的任何数据的机制可能很重要。例如,如上文参考图2所描述,备用电容器可用于储存能量以在掉电的情况下实现数据写入。在其中PMR被实施为易失性存储器装置(例如,DRAM)上的电源保护区的实施例中,PMR可依赖于例如举例来说电容器的机构来实现在掉电的情况下将数据写入到非易失性存储器(例如,NAND快闪存储器)。然而,电容器可能随时间而降级,且因此不利地影响电容器在掉电事件期间提供数据写入支持的能力。为了确保恰当PMR操作,可采用周期性电容器检查(“CAP检查”)。此类CAP检查可验证在掉电的情况下存在足够能量,使得所述装置可具有足够时间来确保当前存储在易失性存储器(例如,DRAM)中的数据可成功地写入到非易失性存储器(例如,NAND快闪存储器)中。下文将参考图5描述关于此类CAP检查的进一步细节。
可定义多个级别或操作模式以匹配CAP条件。例如,所述模式可包含部分降级的PMR容量减少模式(即,可减少所使用的PMR存储器的数量)及只读模式(例如,此时PMR可能不再受(若干)电容器保护)。这个事件可通过AEN报告给主机且由以上相同瘦驱动程序管理。因此,AEN通知可使主机能够调整正被使用的存储器的数量,完全停止使用存储器,对存储器进行备份等。
如上文所提及,可存在其中发生某种降级且有必要使用主机来调整PMR大小的情况。情况的实例包含但不限于电容器降级、非易失性存储器(例如,NAND)容量减少及易失性存储器(例如,DRAM)容量减少及/或使用错误校正码(ECC)无法解决的高错误率。为了解决此类情况,可使用一机构来基于情况的严重性来指定PMR大小。更具体来说,所述机构可包含寄存器。例如,如果所述装置失去可靠地保护例如现存PMR的50%的能力,那么可各自指示将仅被读取的PMR范围(先前存储到非易失性存储器且仍可存取)及仍可进行读取/写入的另一区。在严重情况下,所述范围可能完全是只读或甚至“离线”的。
另一考虑因素是性能度量定制。例如,在一些例子中,具有带有针对具有不同优先级的不同应用程序定制的性能度量的PMR区可能是有用的。为了实现这一点,可定义控制寄存器连同主机与装置之间的协议约定以与所述性能度量一起启用区(例如,地址范围)。性能度量的实例包含但不限于“最大性能/处理量”(例如,如果区被标记为最大性能/处理量,那么容许持续存取以实现最大处理量)、“最低延时”(例如,如果区被标记为最低延时,那么所述区可在存取时优先化)、“只读”(例如,如果区被标记为只读,那么可确保数据已写入到非易失性存储器(例如,NAND快闪存储器)且不允许任何写入)及“平衡的性能”。
与性能降级相关的另一考虑因素是“脏PMR行”,其中自上次从非易失性存储器(例如,NAND快闪存储器)刷新以来内容已改变。与其中保护PMR的能力降低的降级操作模式相关,可采用与每一PMR“行”相关联的指示所述行是否是“脏”的额外元数据。如果元数据指示“脏PMR行”,那么主机已以某种方式修改内容。在异步掉电(APL)的情况下,脏PMR行可能要负责任。然而,可通过跟踪“脏”的PMR行的百分比与将“脏”行写入到NAND所需的时间而扩展PMR在降级状态下的操作。例如,如果存在1,000个受管理PMR行,但仅可应对500个,那么未解决的脏行的数目不能超过500个。
图4是实例系统400的框图。如所展示,系统400包含可操作地耦合到数个DDR(包含DDR 412-1及DDR 412-2)的处理器410。系统400进一步包含可操作地耦合到数个存储器(包含存储器422-1到422-4)的存储器缓冲区420。处理器410及存储器缓冲区420经由链路430进行通信。存储器缓冲区420可包含具备增强型PMR存取能力的装置,例如图3的装置330。例如,链路430可运行CXL接口标准协议,且存储器缓冲区420可包含通过例如CXL.io可见的存储元件及通过例如CXL.mem可见的PMR。然而,此实施例不应被视为限制性。
在这个说明性实施例中,系统400实施存储器缓冲区420以执行一或多个持久性存储器应用程序。然而,此实施方案纯粹是示范性的,且如本文中所描述的具备增强型PMR存取能力的装置可在任何合适背景下实施。
图5说明根据本公开的一些实施例的实例电源系统500。如所展示,电源系统500包含主机连接器组件510、电源管理组件520及具备增强型持久性存储器区(PMR)存取能力的子系统组件530,例如图1的子系统110。
在一些实施例中,主机连接器组件510是NVMe主机连接器。电源管理组件520与存储电压(Vstrg)相关联且可包含电源管理集成电路(PMIC)子组件及浪涌/备用子组件。子系统组件530可包含控制器组件532(例如,专用集成电路(ASIC)控制器)。电源管理组件520可经由例如集成电路间(I2C)协议与控制器组件532可操作地耦合。子系统组件530可进一步包含NAND 534、DDR 536及PMR 538。控制器组件532可操作地耦合到NAND 534及DDR 536。在一些实施例中,子系统组件530包含NVMe SSD装置。
组件510-530可彼此进行通信以启用电容器(CAP)检查或测试以确保PMR 538的恰当操作,如上文参考图2及3所描述。更具体来说,控制器组件532可与电源管理组件520周期性地进行通信以触发CAP检查,接收CAP检查的结果且基于所述结果来确定PMR 538的可用性或状态。例如,在CAP检查期间,电容器可通过外部电阻器从连接到电容器的用于能量存储及释放的第一引脚放电到用来连接用于CAP测试的外部电阻器的第二引脚。晶体管(例如,场效应晶体管(FET))可连接到第二引脚及连接到接地的第三引脚。当(例如,经由I2C接口)设置起始CAP测试寄存器位时,第二引脚可通过晶体管连接到接地以用于能量释放。更具体来说,电源可在初始时间被停止,此时电容器可开始从初始电压放电且内部定时器开始计数。内部定时器可保持计数直到存储电压在结束时间达到阈值,此时内部定时器可停止计数且可测量结束电压。因此,放电时间可被测量为初始时间与结束时间之间的差,且电压放电可被测量为初始电压与结束电压之间的差。
图6说明计算机系统600的实例机器,可在所述计算机系统600内执行用于致使所述机器执行本文中所论述的方法中的任何一或多者的一组指令。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、经耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的VC组件113的操作)。在替代实施例中,所述机器可连接(例如,经联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述机器可在客户端服务器网络环境中以服务器或客户端机器的身份操作,作为对等(或分布式)网络环境中的对等机器操作,或作为云计算基础架构或环境中的服务器或客户端机器操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设施、服务器、网络路由器、交换机或网桥,或能够执行一组指令(循序指令或其它指令)的机器,所述指令指定将由那个机器采取的动作。此外,虽然说明单个机器,但术语“机器”也应被理解为包含个别地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多者的机器的任何集合。
实例计算机系统600包含经由总线630彼此进行通信的处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或RDRAM等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储系统618。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,所述处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602经配置以执行指令626以执行本文中所论述的操作及步骤。计算机系统600可进一步包含网络接口装置608以通过网络620进行通信。
数据存储系统618可包含其上存储有体现本文中所描述的方法或功能中的任何一或多者的一或多组指令626或软件的机器可读存储媒体624(也被称为计算机可读媒体)。指令626在由计算机系统600执行期间也可全部或至少部分地驻留在主存储器604内及/或处理装置602内,主存储器604及处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618及/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含用于实施对应于VC组件(例如,图1的VC组件113)的功能性的指令。虽然机器可读存储媒体624在实例实施例中被展示为单个媒体,但术语“机器可读存储媒体”应被理解为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被理解为包含能够存储或编码一组指令以供机器执行且致使机器执行本公开的方法中的任何一或多者的任何媒体。因此,术语“机器可读存储媒体”应被理解为包含但不限于固态存储器、光学媒体及磁性媒体。
已根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的一些部分。这些算法描述及表示是被数据处理领域的技术人员用于最有效地向所属领域的其它技术人员传达他们的工作实质的方式。算法在本文中被认为且通常被认为是导向所要结果的自洽操作序列。所述操作是需要对物理量进行物理操纵的操作。通常,尽管并非必需的,但这些量采取能够被存储、组合、比较及以其它方式操纵的电信号或磁性信号的形式。已证明,有时主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字等是方便的。
然而,应记住,所有这些及类似术语应与适当物理量相关联且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。这个设备可经专门构造用于预期目的,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可经存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或适合存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中所提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造更专用设备来执行所述方法是方便的。多种这些系统的结构将如在以下描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本公开。将明白,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,所述计算机程序产品或软件可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已参考其特定实例实施例进行描述。将显而易见的是,在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛精神及范围的情况下,可对本公开进行各种修改。因此,说明书及附图应被视为说明性意义而非限制性意义。

Claims (20)

1.一种存储器系统,其包括:
第一存储器装置,其包括非易失性存储器装置;
第二存储器装置;及
处理装置,其与所述第一及第二存储器装置可操作地耦合,以执行包括以下的操作:
接收主机命令以配置所述存储器系统以使其具有指定用于揭露在所述第一存储器装置上实施的存储元件及在所述第二存储器装置上实施的持久性存储器区PMR的接口标准的配置,所述存储元件对所述接口标准的第一协议可见且所述PMR对所述接口标准的第二协议可见;及
根据所述配置来配置所述存储器系统。
2.根据权利要求1所述的存储器系统,其中所述存储器系统包括非易失性存储器快速固态驱动器NVMe SSD且所述存储元件是NVMe块存储元件。
3.根据权利要求1所述的存储器系统,其中所述第二存储器装置包括第二非易失性存储器装置或易失性存储器装置。
4.根据权利要求1所述的存储器系统,其中所述第一协议及所述第二协议是由外围组件互连快速PCIe支持的替代协议,所述接口标准是计算快速链路CXL,所述第一协议是CXL.io协议,且所述第二协议是CXL.mem协议或CXL.cache协议中的至少一者。
5.根据权利要求1所述的存储器系统,其中所述配置在第一端口处指定用于揭露所述存储元件及所述PMR的第一区的所述接口标准,且在第二端口处指定用于揭露所述存储元件及所述PMR的第二区的所述接口标准。
6.根据权利要求1所述的存储器系统,其中所述操作进一步包括基于所述配置来执行至少一个系统操作,且其中执行所述至少一个系统操作包括执行以下中的至少一者:
接收协议错误且通过所述接口标准报告所述协议错误;或
接收数据管理错误,由所述存储元件处理所述数据管理错误,且通过与所述存储元件相关联的报告机制报告所述数据管理错误,由此支持单独的控制路径及数据流路径。
7.根据权利要求6所述的存储器系统,其中配置所述存储器系统包括将所述PMR的段分配为通过所述接口标准标记为可见的可高速缓存存储器,且其中所述PMR的所述段被检测为通过所述接口标准共享的内部存储器范围。
8.一种操作存储器系统的方法,所述方法包括:
接收主机命令以配置所述存储器系统以使其具有指定用于揭露存储元件及持久性存储器区PMR的接口标准的配置,所述存储元件对所述接口标准的第一协议可见且所述PMR对所述接口标准的第二协议可见,其中所述存储元件是在包括非易失性存储器装置的所述存储器系统的第一存储器装置上实施且所述PMR是在所述存储器系统的第二存储器装置上实施;及
根据所述配置来配置所述存储器系统。
9.根据权利要求8所述的方法,其中所述存储器系统包括非易失性存储器快速固态驱动器NVMe SSD且所述存储元件是NVMe块存储元件。
10.根据权利要求8所述的方法,其中所述第二存储器装置包括第二非易失性存储器装置或易失性存储器装置。
11.根据权利要求8所述的方法,其中所述第一协议及所述第二协议是由外围组件互连快速PCIe支持的替代协议,所述接口标准是计算快速链路CXL,所述第一协议是CXL.io协议,且所述第二协议是CXL.mem协议或CXL.cache协议中的至少一者。
12.根据权利要求8所述的方法,其中所述配置在第一端口处指定用于揭露所述存储元件及所述PMR的第一区的所述接口标准,且在第二端口处指定用于揭露所述存储元件及所述PMR的第二区的所述接口标准。
13.根据权利要求8所述的方法,其进一步包括基于所述配置来执行至少一个系统操作,其中执行所述至少一个系统操作进一步包括执行以下中的至少一者:
接收协议错误且通过所述接口标准报告所述协议错误;或
接收数据管理错误,由所述存储元件处理所述数据管理错误,且通过与所述存储元件相关联的报告机制报告所述数据管理错误,由此支持单独的控制路径及数据流路径。
14.根据权利要求13所述的方法,其中配置所述存储器系统包括将所述PMR的段分配为通过所述接口标准标记为可见的可高速缓存存储器,且其中所述PMR的所述段被检测为通过所述接口标准共享的内部存储器范围。
15.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时致使所述处理装置执行包括以下的操作:
引导包括第一存储器装置及第二存储器装置的系统以使其具有与第一接口标准相关联的第一配置,所述第一存储器装置包括非易失性存储器装置;
接收主机命令以配置所述系统以使其具有指定用于揭露在所述第一存储器装置上实施的存储元件及在所述第二存储器装置上实施的持久性存储器区PMR的第二接口标准的第二配置,所述存储元件对所述第二接口标准的第一协议可见且所述PMR对所述第二接口标准的第二协议可见;及
根据所述第二配置来配置所述系统。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述系统包括非易失性存储器快速固态驱动器NVMe SSD且所述存储元件是NVMe块存储元件。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述第一接口标准是外围组件互连快速PCIe且所述第二接口标准是计算快速链路CXL,所述第一协议是CXL.io协议,且所述第二协议是CXL.mem协议或CXL.cache协议中的至少一者。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述配置在第一端口处指定用于揭露所述存储元件及所述PMR的第一区的所述第二接口标准,且在第二端口处指定用于揭露所述存储元件及所述PMR的第二区的所述第二接口标准。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括执行至少一个系统操作,且其中执行所述至少一个系统操作包括执行以下中的至少一者:
接收协议错误且通过所述第二接口标准报告所述协议错误;或
接收数据管理错误,由所述存储元件处理所述数据管理错误,且通过与所述存储元件相关联的报告机制报告所述数据管理错误,由此支持单独的控制路径及数据流路径。
20.根据权利要求15所述的非暂时性计算机可读存储媒体,其中配置所述系统包括将所述PMR的段分配为通过所述第二接口标准标记为可见的可高速缓存存储器,且其中所述PMR的所述段被检测为通过所述第二接口标准共享的内部存储器范围。
CN202111551010.0A 2020-12-18 2021-12-17 使装置具备增强型持久性存储器区存取能力 Active CN114647375B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063127210P 2020-12-18 2020-12-18
US63/127,210 2020-12-18
US17/159,487 US11429544B2 (en) 2020-12-18 2021-01-27 Enabling devices with enhanced persistent memory region access
US17/159,487 2021-01-27

Publications (2)

Publication Number Publication Date
CN114647375A CN114647375A (zh) 2022-06-21
CN114647375B true CN114647375B (zh) 2023-07-25

Family

ID=81991963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111551010.0A Active CN114647375B (zh) 2020-12-18 2021-12-17 使装置具备增强型持久性存储器区存取能力

Country Status (2)

Country Link
US (2) US11429544B2 (zh)
CN (1) CN114647375B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230305922A1 (en) * 2022-03-24 2023-09-28 Smart Modular Technologies, Inc. Serial attached non-volatile memory
US20240094950A1 (en) * 2022-09-16 2024-03-21 Western Digital Technologies, Inc. Block layer persistent memory buffer
US20240193085A1 (en) * 2022-12-12 2024-06-13 Micron Technology, Inc. Data Storage Device with Memory Services based on Storage Capacity

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620731B1 (en) * 2001-02-21 2009-11-17 Microsoft Corporation Isolated persistent storage

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817502B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
WO2012082792A2 (en) * 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
EP3074873A4 (en) * 2013-11-26 2017-08-16 Intel Corporation Method and apparatus for storing data
US10754580B2 (en) * 2017-10-23 2020-08-25 Micron Technology, Inc. Virtual partition management in a memory device
US10705902B2 (en) * 2018-05-03 2020-07-07 Western Digital Technologies, Inc. Crash log storage and retrieval using boot partitions in solid state systems
US11061787B2 (en) * 2019-04-23 2021-07-13 Micron Technology, Inc. Custom error recovery in selected regions of a data storage device
US11210001B2 (en) * 2020-04-22 2021-12-28 Western Digital Technologies, Inc. Storage device parameter monitoring for load balancing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620731B1 (en) * 2001-02-21 2009-11-17 Microsoft Corporation Isolated persistent storage

Also Published As

Publication number Publication date
CN114647375A (zh) 2022-06-21
US11429544B2 (en) 2022-08-30
US20220350759A1 (en) 2022-11-03
US20220197833A1 (en) 2022-06-23
US11693797B2 (en) 2023-07-04

Similar Documents

Publication Publication Date Title
CN114647375B (zh) 使装置具备增强型持久性存储器区存取能力
WO2017091280A1 (en) Multi-level logical to physical address mapping using distributed processors in non-volatile storage device
US11775368B2 (en) Node coherency for storage related data
US20230297286A1 (en) Split protocol approaches for enabling devices with enhanced persistent memory region access
WO2021108259A1 (en) Enhanced filesystem support for zone namespace memory
CN112948284A (zh) 高速缓存媒体中的动态存取粒度
US11704057B2 (en) Memory sub-systems including memory devices of various latencies and capacities
CN112540869A (zh) 存储器控制器、存储装置和存储装置的操作方法
CN109542491B (zh) 用于后台固件更新的方法和装置
US20220283735A1 (en) Enabling memory access transactions for persistent memory
CN112860182B (zh) 用于写回合并的位屏蔽有效扇区
CN113377285B (zh) 用于读取干扰的预测性媒体管理
US11301390B2 (en) Elastic buffer in a memory sub-system for debugging information
CN114077402A (zh) 写入类型指示命令
CN113168387A (zh) 向主机系统提供存储器子系统的控制器存储缓冲器弹性状态的信息
US20230393760A1 (en) Safe area for critical control data
US11704029B2 (en) Elastic persistent memory regions
US11726671B2 (en) Memory access mode selection
US11726678B2 (en) Configurable solid state drive with multiple form factors
US11734094B2 (en) Memory component quality statistics
US11650925B2 (en) Memory interface management
US20240176745A1 (en) Identification of Available Memory of a Data Storage Device Attachable as a Memory Device
CN113126899A (zh) 完全多平面操作启用
CN117631986A (zh) 区域存储器系统中的延迟区域调整
CN118092786A (zh) 可作为存储器装置附接的数据存储装置的可用存储器的识别

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