CN104781801B - 使固态驱动器配置成采用存储模式或存储器模式操作的技术 - Google Patents
使固态驱动器配置成采用存储模式或存储器模式操作的技术 Download PDFInfo
- Publication number
- CN104781801B CN104781801B CN201380060901.3A CN201380060901A CN104781801B CN 104781801 B CN104781801 B CN 104781801B CN 201380060901 A CN201380060901 A CN 201380060901A CN 104781801 B CN104781801 B CN 104781801B
- Authority
- CN
- China
- Prior art keywords
- memory
- configuration
- ssd
- module
- memory module
- 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
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/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
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
-
- 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/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/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/0688—Non-volatile semiconductor memory arrays
-
- 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/7206—Reconfiguration of flash memory system
-
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
Abstract
公开用于配置固态驱动器(SSD)以采用存储模式或存储器模式操作的示例。在一些示例中,一个或多个配置命令可在对于具有一个或多个非易失性存储器阵列的SSD的控制器处接收。SSD可配置成基于一个或多个配置命令采用存储模式、存储器模式或存储模式或存储器模式的组合中的至少一个操作。描述其他示例并且它们要求保护。
Description
背景技术
包括主机计算设备或系统的计算设备可包括使用例如固态驱动器(SSD)设备等存储设备类型。这些类型的存储设备可包括非易失性存储器,例如NAND或NOR闪存。SSD设备作为扩充或甚至替代与主机计算设备一起使用的硬盘驱动器的存储设备而越来越多地部署。对于SSD的控制器典型地包括设备驱动器、直接存储器访问能力和硬件控制器接口,用于与主机计算机设备的部分通信或起到主机计算设备的部分的作用。这些类型的控制器根据读入存储设备或从存储设备的写与主机计算设备处的处理器电路的相比低得多或具有高延迟这一假设来设计。它关于需要本文描述的示例的这些和其他挑战。
附图说明
图1图示示例存储器系统。
图2图示包括在示范性存储器系统的电路中的示例模块。
图3图示示例第一地址表。
图4图示示例第二地址表。
图5图示示例装置。
图6图示示例逻辑流。
图7图示示例存储介质。
图8图示示例计算平台。
具体实施方式
根据一些示例,较新类型的非易失性存储器可减少对可重新评估SSD只是作为存储设备作用的点的访问延迟。例如,存储器架构(例如3维(3D)交叉点存储器)可在SSD中实现并且可具有比NAND或NOR闪存架构明显更低的访问延迟。而且,近来采用的互连通信协议使用于访问SSD的延迟进一步减少。例如,例如在工业标准或规范(其包括子代或变化形式)中描述的那些等包括2010年11月发布的外围部件互连(PCI)高速基础规范(“PCI Express”或“PCIe”)修订3.0和/或2012年10月发布的非易失性存储器高速(NVMe)规范修订1.1的互连通信协议减少协议开销。减少的协议开销可导致与耦合于主机系统或主机计算设备的访问存储设备关联的较低访问延迟。
更快类型的非易失性存储器加上引入新互连通信协议现在使得使用SSD不仅作为存储设备而且还可能扩充系统存储器对于主机计算系统是切实可行的。系统存储器传统上仅包括易失性类型的存储器,例如动态随机存取存储器(DRAM)。DRAM具有可以比传统上用于存储的硬盘驱动器快许多倍的访问时间。另外,与具有更快类型的非易失性存储器的SSD一起使用的控制器可仍在较慢访问时间的范式下操作并且还可使用具有这样的开销的通信协议,其使得使用SSD与这些类型的控制器来扩充系统存储器不切实际。它关于需要本文描述的示例的这些和其他挑战。
在一些示例中,可实现与使SSD配置成采用存储模式或存储器模式操作关联的技术。这些技术可包括接收一个或多个配置命令来配置具有一个或多个非易失性存储器阵列的SSD和基于一个或多个配置命令配置该SSD以采用存储模式和存储器模式的组合操作。对于这些示例,SSD可通过具有访问非易失性存储器阵列中的一个或多个的直接存储器访问(DMA)能力并且还具有经由DMA能力的使用来协调到一个或多个非易失性存储器阵列的至少一部分的数据的存储的设备编程接口而采用存储模式操作。而且,对于这些示例,SSD可通过促使一个或多个非易失性存储器阵列的至少一部分经由接收的一个或多个配置命令中包括的存储器映射配置命令可寻址而采用存储器模式操作。
图1图示示例存储器系统100。如在图1中示出的,存储器系统100包括控制器110、非易失性存储器120和通信链路130。根据一些示例,控制器110可经由通信链路130从主机计算设备或主机系统接收和/或满足读/写请求。根据一些示例,存储器系统100可遵循包括PCIe和/或NVMe规范的一个或多个规范或标准操作。
在一些示例中,如在图1中示出的,控制器110可包括电路112、缓冲器114和寄存器116。如下文更多描述的,存储器系统100可以是主机系统的SSD并且逻辑和/或特征可由电路112执行来配置存储器系统100以采用存储模式或存储器模式操作。根据一些示例,由电路112执行的逻辑和/或特征可使用缓冲器114或寄存器116以采用存储或存储器模式配置存储器系统100和/或使存储器系统100采用存储或存储器模式操作。对于这些示例,存储模式可包括执行例如发帖等操作的逻辑和/或特征以及与仅在这些操作的逻辑和/或特征信号完成之后可用的结果的同步。相比之下,存储器模式可更直接并且结果可在完成读或写操作时可用(例如,对于主机系统)。例如,对于存储器模式的读(a)、写(a)可简单地包括读(a)、后跟写(a)。同时对于存储模式,逻辑和/或特征可“设置从(a)到DMA地址(xx)的读转移”;等待完成;读取DMA位点(x);设置从DMA地址(xx)到(a)的写转移;等待完成。
根据一些示例,如在图1中示出的,非易失性存储器阵列120包括任何数量的阵列120-1、120-2至120-n,其中“n”等于大于2的任意正整数。阵列120-1、120-2或120-n可共同或单独包括一个或多个类型的非易失性存储器,其包括但不限于,NAND闪存、NOR闪存、3D交叉点存储器、铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、聚合物存储器(例如铁电聚合物存储器)、铁电晶体管随机存取存储器(FeTRAM或FeRAM)、奥氏存储器、纳米线或电可擦除可编程只读存储器(EEPROM)。
根据一些示例,控制器110可包括逻辑和/或特征来接收一个或多个配置命令。对于这些示例,该一个或多个配置命令可根据PCIe或NVMe规范并且可经由通信链路130从主机计算设备或系统接收。控制器110的逻辑和/或特征然后可基于一个或多个配置命令配置存储器系统100以采用存储模式、存储器模式或存储模式和存储器模式的组合操作。根据操作模式,控制器110的逻辑和/或特征可设置寄存器116中包括的一个或多个控制寄存器来指示操作模式。寄存器116中包括的控制寄存器可由控制器110和/或访问非易失性存储器120的设备使用来确定存储器系统100的什么操作模式可用于访问阵列120-1至120-n的至少一部分。
在一些示例中,缓冲器114可由控制器110的逻辑和/或特征使用以促进存储器系统100采用存储器操作模式操作。例如,一个或多个缓冲器可由逻辑和/或特征设置或维持以至少暂时存储写入非易失性存储器120或从非易失性存储器120读取的少量数据。少量数据的暂时存储可使控制器110能够更高效处理来自主机系统的突发活动并且从而保留一些原子性,而不管对或从非易失性存储器120的访问的大小如何。
图2图示对于示例存储器系统100的电路122中包括的示例模块。在一些示例中,如在图2中示出的,电路122包括存储模块210、存储器模块220、接收模块230和配置模块240。对于这些示例,存储模块210、存储器模块220、接收模块230和配置模块240可包含逻辑和/或特征中的至少一些来接收配置命令、采用存储和/或存储器模式配置存储器系统100并且然后使存储器系统100采用存储和/或存储器模式操作。
在一些示例中,如在图2中示出的,存储模块210包括设备编程接口212和直接存储器访问(DMA)引擎214。而且,存储器模块220示出为包括存储器映射特征222。对于这些示例,电路122可以是这样的处理器电路,其设置成或能够执行存储模块210、存储器模块220、接收模块230或配置模块240。
根据一些示例,接收模块230可能够接收一个或多个配置命令以使存储器系统采用存储模式或存储器模式中的至少一个操作。对于这些示例,该一个或多个配置命令可以是从耦合于存储器系统100的主机系统接收的PCIe或NVMe兼容配置命令。但该公开不限于仅从主机系统接收PCIe或NVMe兼容配置命令。在其他示例中,配置命令的至少一部分可源于远程计算设备,其通过主机系统路由一个或多个配置命令以便配置存储器系统100。例如,该远程计算设备可路由NVMe配置命令以对远程计算设备实现远程DMA(RDMA)功能性。作为实现RDMA功能性的部分,配置模块240可促使阵列120-1至120-n的至少一部分由存储模块210采用存储操作模式操作。
在一些示例中,配置模块240可能够促使存储器系统100默认采用存储模式操作。对于这些示例,默认操作模式可在存储器系统100的初始设置或初始化时发生。继初始设置后并且响应于接收模块230接收一个或多个配置命令,配置模块240然后可配置存储器系统100以采用存储模式或存储器模式中的至少一个操作。根据一些示例,默认存储模式可包括首先作为PCIe存储设备操作并且然后转变成采用存储和存储器模式的组合操作或转变到纯存储器操作模式的存储器系统100。
根据一些示例,DMA引擎214可对存储模块210提供访问一个或多个阵列120-1至120-n的DMA能力。而且,设备编程接口212可促进或协调数据(例如,来自主机系统)经由使用DMA引擎214到阵列120-1至120-n的至少一部分的存储。对于这些系统,对于存储器系统100的存储操作模式可对于用电路122和更广泛程度上控制器110对非易失性存储器阵列120的访问维持大部分DMA智能或控制。这可与可将用于访问非易失性存储器120的至少存储器模式部分的大部分智能移到主机系统的逻辑和/或特征的存储器操作模式形成对比。由于将大部分智能移到主机系统,对于PCIe兼容存储器系统100,控制可似乎驻存在控制器110处维持的PCIe接口的根端口侧。
在一些示例中,存储器映射特征222可以是存储器模块220的特征,其使存储器模块220能够促使阵列120-1至120-n的至少一部分经由接收的一个或多个配置命令(例如,来自主机系统)中包括的存储器映射配置命令而可寻址。例如,接收的一个或多个配置命令中包括的存储器映射配置命令可包括PCIe或NVMe存储器映射配置命令,其可导致存储器映射特征222促使阵列120-1至120-n的至少部分对于主机系统可寻址以用作系统存储器。可寻址可包括在与阵列120-1至120-n的至少部分关联的可寻址范围内以限定的偏移映射到存储器系统100的PCIe或NVMe配置空间的能力。可寻址范围例如可包括与这些阵列关联的物理存储器地址的范围。
根据一些示例,基于接收的配置命令,配置模块240可配置寄存器116中包括的一个或多个控制寄存器。对于这些示例,控制寄存器一旦被配置可指示存储器系统100是采用存储模式、存储器模式还是存储模式或存储器模式的组合操作。在一些示例中,一个或多个控制寄存器可促使电路122的元件至少暂时被停用。例如,如果对于存储器系统100仅设置存储器操作模式,控制寄存器可配置成促使存储模块210的元件(例如DMA引擎214和/或设备编程接口212)被停用或对于主机系统或耦合于存储器系统100的其他计算设备不可访问。因此,存储器系统110对于主机系统可仅仅表现为要用于系统存储器的存储器设备并且将不表现为存储设备。
图3图示示例第一地址表。在一些示例中,如在图3中示出的,该第一示例地址表包括逻辑块地址表310和物理块地址表320。对于这些示例,逻辑块地址表310包括一系列逻辑块地址312-1至312-9的范围。而且,对于这些示例,该系列逻辑块地址可映射到非易失性存储器120中包括的阵列120-1至120-n的物理块地址或与之关联。阵列120-1的物理块地址在物理块地址表320中描绘为330-1、330-2和330-p。阵列120-2的物理块地址在物理块地址表320中描绘为340-1、340-2和340-q。阵列120-n的物理块地址在物理块地址表320中描绘为350-1、350-2和350-r。对于这些示例,“p”、“q”或“r”可独立代表大于2的任意正整数。
根据一些示例,由控制器110的电路122(例如,配置模块240)执行的逻辑和/或特征可配置存储器系统100以通过引起或设置分区315和325而采用存储模式或存储器模式中的至少一个操作。对于这些示例,如在图3中示出的,分区315包括阵列120-1并且分区325包括阵列120-2至120-n。而且,如在图3中示出的,阵列120-1的物理块地址可映射到逻辑块地址312-1至312-3并且分配给存储器操作模式。阵列120-2至120-n的物理块地址可映射到逻辑块地址312-4至312-9并且分配给存储操作模式。
在一些示例中,基于与分配给存储器模式的分区315关联的物理块地址的分配,存储器模块220的映射特征222可允许或促使这些物理块地址经由存储器映射配置命令而可寻址。存储器映射配置命令例如可从主机系统接收。存储器映射配置命令可根据PCIe或NVMe规范而格式化。对于这些示例,存储器系统100的分区315现在可能够充当对于主机系统的系统存储器的至少一部分。在一些示例中,用于决定数据在分区315中的放置的智能现在即使不是全部也大部分可从控制器110转移到主机系统。
根据一些示例,基于与分配给存储模式的分区325关联的物理块地址的分配,设备编程接口212和DMA引擎214可使主机系统能够使用分区325用于存储数据。对于这些示例,与阵列120-2至120-n的物理块地址关联的逻辑块地址可由DMA引擎214使用以基于经由设备编程接口212从主机系统接收的指令将数据存储到这些阵列。因为存储模块210的元件决定什么实际物理块地址存储数据,至少一些智能属于控制器110用于将数据存储到分区325。分区325从而可对主机系统表现为典型的存储设备。
图4图示示例第二地址表。在一些示例中,如在图4中示出的,该示例第二地址表包括逻辑块地址表410和物理块地址表420。对于这些示例,逻辑块地址表410包括与逻辑块地址表310相似的逻辑块范围。然而,在图4中示出两个差异。首先,分区415和分区425具有一些重叠物理块地址分配。例如,阵列120-2的物理块地址440-1包括在两个分区中并且映射到逻辑块地址412-3和412-7两者。其次,分区425包括非邻接物理地址。例如,分区425包括来自阵列120-1至120-n中的每个的物理地址但不包括阵列120-2的物理块地址中的全部。
根据一些示例,物理块地址的重叠可在使存储器系统100采用组合存储和存储器模式操作时对控制器110提供一些动态灵活性。主机系统可对于存储大量数据或需要更多存储器容量具有变动需求。存储大量数据可包括但不限于,存储高分辨率照片、视频或大的文档。需要更多系统存储器容量可包括但不限于主机系统运行例如交互游戏应用或3维渲染应用等图形密集型应用。
尽管图4示出这样的分区425,其与分区415中包括的那些相比包括更大部分的物理块地址。预想其他示例,其中分配给存储器模式的分区与分配给存储模式的分区相比具有相对更大部分的物理块地址。分配给任一模式的相对部分可取决于对于耦合于存储器系统100的主机系统的使用模型的类型。
而且,可发生物理地址的更多重叠以为了存储操作或扩充系统存储器使用非易失性存储器阵列提供更大的灵活性。存储模块210和存储器模块212可包括协调将数据存储到这些重叠物理块地址来确保数据未重写到相同物理块地址的一些能力。例如,任一模块可将地址标记为被占用并且定期向另一模块发送更新来指示占据状态是否改变。
根据一些示例,尽管未在图3或4中示出,非易失性存储器120的所有阵列可分配给存储模式或存储器模式。
图5图示示例装置500。尽管在图5中示出的装置500在某一拓扑中具有有限数量的元件,可意识到装置500可在备选拓扑中包括如对于指定实现所期望的更多或更少的元件。
装置500可包括计算机实现的装置,其可包括上文提到的对于图1-4的控制器100的逻辑和/或特征中的至少一些。计算机实现的装置500可设置成执行一个或多个软件模块522-a。值得注意的是如本文使用的“a”和“b”和“c”以及相似的标志符规定为代表任意正整数的变量。从而,例如,如果实现设置值a=4,则软件模块522-a的完整集可包括模块522-1、522-2、522-3或522-4。实施例在该上下文中不受限制。
根据一些示例,装置500可能够用例如存储器系统100(例如,包括在控制器110中)等存储器系统定位。对于这些示例,装置500可包括在处理器或处理器电路中或由其实现。在其他示例中,装置500可对于存储器系统的控制器实现为固件的部分。示例在该上下文中不受限制。
在一些示例中,如果在处理器中实现,该处理器可一般设置成执行一个或多个模块522-a。处理器可以是各种市售处理器中的任一个,其无限制地包括AMD® Athlon®、Duron®和Opteron®处理器;ARM®应用、嵌入式和安全处理器;IBM®和Motorola®DragonBall®和PowerPC®处理器;IBM和Sony® Cell处理器;Intel® Celeron®、Core(2)Duo®、Core i3、Core i5、Core i7、Pentium®和XScale®处理器;和相似的处理器。也可采用多核处理器和其他多处理器/核架构来实现装置500。
根据一些示例,装置500可包括接收模块522-1。接收模块522-1可由处理器电路520执行来接收配置命令510。对于这些示例,配置命令510可从耦合于存储器系统(其包括装置500)的主机系统接收。配置命令510可遵循包括PCIe或NVMe的一个或多个工业标准而格式化。接收模块522-1可维持协议信息524-a(例如,存储在例如查找表(LUT)等数据结构中)来解释配置命令510中包括的PCIe或NVMe配置命令。
在一些示例中,装置500还可包括配置模块522-2。配置模块522-2可由处理器电路520执行以基于接收的配置命令510而促使将存储器系统配置成采用存储模式或存储器模式中的至少一个操作。配置模块522-2可将配置信息526-b维持在LUT中或经由使用寄存器(例如在上文对于存储器系统100提到的寄存器116)来维持配置信息526-b。配置信息526-b可指示存储器系统中包括的一个或多个非易失性存储器阵列的分区以供在存储器模式或存储模式中使用。根据一些示例,配置信息526-b还可指示与未分配模式关联的元件是否被停用。例如,寄存器(例如寄存器116)可用于指示哪些元件被停用。
在一些示例中,装置500还可包括存储模块522-3。存储模块522-3可由处理器电路520执行以使存储器系统采用存储模式操作。对于这些示例,DMA信息528-c可包括由存储模块522-3维持(例如,在LUT中)的可与访问一个或多个非易失性存储器阵列(其配置成或分配成采用存储模式操作)的DMA能力关联的信息或指令。设备编程接口信息530-d还可由存储模块522-3维持(例如,在LUT中)并且可包括使存储模块522-3能够经由使用DMA能力而协调对一个或多个非易失性存储器阵列的存储请求/响应540。
根据一些示例,装置500还可包括存储器模块522-4。存储器模块522-4可由处理器电路520执行以使存储器系统采用存储器模式操作。对于这些示例,存储器映射信息532-e可包括指示哪些非易失性存储器单元配置成或分配成采用存储器模式操作的信息。存储器模块522-4可将存储器映射信息532-e维持在LUT中并且可使用存储器映射信息532-e来促使存储器系统的非易失性存储器单元的至少一部分可寻址或使其能够可寻址。非易失性存储器单元的该部分可经由接收的配置命令510中包括的存储器映射配置命令而可寻址。存储器映射配置命令可已从主机系统发送以对于主机系统能够使用非易失性存储器单元的部分作为系统存储器。存储器模块522-4可响应于从主机系统接收的存储器命令550使用存储器映射信息532-e。
本文包括一组逻辑流,其代表用于执行公开的架构的新颖方面的示例方法论。尽管为了解释的简单性目的,本文示出的一个或多个方法论示出且描述为一系列动作,本领域内技术人员将理解并且意识到这些方法论不受动作顺序的限制。一些动作可根据其而采用与本文示出且描述的其他动作不同的顺序和/或与来自本文示出且描述的其他动作同步出现。例如,本领域内技术人员将理解并且意识到方法论可以备选地表示为一系列相互关联的状态或事件,例如在状态图中。此外,对于新颖的实现可并不需要方法论中图示的所有动作。
逻辑流可在软件、固件和/或硬件中实现。在软件和固件实施例中,逻辑流可由存储在至少一个非暂时性计算机可读介质或机器可读介质(例如光、磁或半导体存储)上的计算机可执行指令实现。实施例在该上下文中不受限制。
图6图示逻辑流600。逻辑流600可代表由本文描述的一个或多个逻辑、特征或设备执行的操作中的一些或全部,例如可包括在对于存储器系统(例如存储器系统100)的控制器中或是存储器系统(例如存储器系统100)的控制器的部分的装置500。更特定地,逻辑流600可由接收模块522-1、配置模块522-2、存储模块522-3或存储器模块522-4实现。
根据一些示例,在框602处,逻辑流600可接收配置命令。对于这些示例,配置命令可由接收模块522-1接收并且可从耦合于存储器系统的主机系统或计算设备(例如具有控制器(其包括装置500)的SSD)接收。
在一些示例中,在框604处,逻辑流600可基于接收的配置命令促使SSD配置成采用存储模式或存储器模式中的至少一个操作。对于这些示例,配置模块522-2可配置一个或多个非易失性存储器阵列以采用存储模式和/或存储器模式操作。
根据一些示例,在框606处,逻辑流600可使SSD采用存储模式操作。而且,在框606处,逻辑流600可使用DMA能力来访问对于SSD的一个或多个非易失性存储器阵列并且使用设备编程接口以经由使用DMA能力协调数据到一个或多个非易失性存储器阵列的至少一部分的存储。对于这些示例,存储器模块522-3可使用DMA信息528-c和设备编程接口信息530-d以响应于存储请求/响应540来协调数据存储。存储请求/响应540中包括的存储请求可与主机系统协调。
在一些示例中,在框608处,逻辑流600可通过促使一个或多个非易失性存储器阵列的至少一部分经由接收的配置命令中包括的存储器映射配置命令而可寻址。对于这些示例,存储器模块522-4可使用存储器映射信息532-e来促使一个或多个非易失性存储器阵列经由存储器映射配置命令可寻址或使其能够经由存储器映射配置命令可寻址。
根据一些示例,在框610处,逻辑流600可基于接收的配置命令来配置控制寄存器。对于这些示例,配置模块522-2可配置控制寄存器来指示对于SSD的操作模式。如果SSD配置成仅采用存储器模式操作,配置的控制寄存器还可暂时停用存储器模块522-3。备选地,如果SSD配置成仅采用存储模式操作,配置的控制寄存器可至少暂时停用存储器模块522-4。
图7图示存储介质700的实施例。该存储介质700可包括制造物品。在一些示例中,存储介质700可包括任何非暂时性计算机可读介质或机器可读介质,例如光、磁或半导体存储。存储介质700可存储各种类型的计算机可执行指令,例如实现逻辑流600的指令。计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形介质,其包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器,等。计算机可执行指令的示例可包括任何适合类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码及类似物。示例在该上下文中不受限制。
图8图示示例计算平台800。在一些示例中,如在图8中示出的,计算平台800可包括存储器系统830、处理部件840、其他平台部件850或通信接口860。根据一些示例,计算平台800可在主机系统或主机计算设备中实现。
根据一些示例,存储器系统830可与存储器系统100相似。对于这些示例,驻存在存储器系统830处或与用存储器系统830定位的逻辑和/或特征(例如,包括在控制器中)可执行对于装置500的至少一些处理操作或逻辑。而且,存储器系统830可包括非易失性存储器(未示出),其可采用与在上文对于存储器系统100描述的相似的方式写入或读取并且可配置成采用存储模式或存储器模式来使用。
根据一些示例,处理部件840可包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、感应器,等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等。软件元件的示例可包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定示例是否使用硬件元件和/或软件元件实现可根据许多因素而变化,例如如对于给定示例所期望的期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束。
在一些示例中,其他平台部件850可包括共同计算元件,例如一个或多个处理器、多核处理器、协同处理器、存储器单元、芯片集、控制器、外设、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件(例如,数字显示器)、电力供应等。与其他平台部件850或存储器系统830关联的存储器单元的示例可无限制地包括采用一个或多个更高速存储器单元形式的各种类型的计算机可读存储介质,例如ROM、RAM、DRAM、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、SRAM、可编程ROM(PROM)、EPROM、EEPROM、NAND闪存、NOR闪存、聚合物存储器(例如铁电聚合物存储器)、铁电晶体管随机存取存储器(FeTRAM或FeRAM)、纳米线、奥氏存储器、铁电存储器、3维交叉点存储器、SONOS存储器、磁或光卡、例如独立盘冗余阵列(RAID)驱动器等设备阵列、固态存储器设备(例如,USB存储器)、SSD和适合于存储信息的任何其他类型的存储介质。
在一些示例中,通信接口860可包括逻辑和/或特征来支持通信接口。对于这些示例,通信接口860可包括一个或多个通信接口,其根据各种通信协议或标准操作以通过直接或网络通信链路通信。直接通信可经由使用在一个或多个工业标准(其包括子代和变化形式)中描述的通信协议或标准而发生,例如与系统管理总线(SMBus)规范、PCIe规范、NVMe规范、串行高级技术附件(SATA)规范或通用串行总线(USB)规范关联的那些。网络通信可经由使用通信协议或标准(例如在以太网标准中描述的那些)而发生。
计算平台800可以是主机系统或主机计算设备的部分,其例如可以是用户设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、平板、便携式游戏控制台、便携式媒体播放器、智能电话、服务器、服务器阵列或服务器场、web服务器、网络服务器、互联网服务器、工作站、微型计算机、主计算机、超型计算机、网络器具、web器具、分布式计算系统、多处理器系统、基于处理器的系统或其组合。因此,如适当期望的,本文描述的计算平台800的功能和/或特定配置可包括在计算平台800的各种实施例中或在其中省略。
计算平台800的部件和特征可使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合实现。此外,在适当情况下,计算平台800的特征可使用微控制器、可编程逻辑阵列和/或微处理器或前述的任何组合来实现。注意硬件、固件和/或软件元件可在本文共同或单独称为“逻辑”或“电路”。
应意识到在图8的框图中示出的示范性计算平台800可代表许多潜在实现的一个功能描述示例。因此,在附图中描绘的块功能的划分、省略或包含并未推断用于实现这些功能的硬件部件、电路、软件和/或元件将必定在实施例中划分、省略或包括。
至少一个实施例的一个或多个方面可由存储在机器可读介质上的代表性指令来实现,该机器可读介质代表处理器内的各种逻辑,其在被机器、计算设备或系统读取时促使该机器、计算设备或系统制造逻辑来执行本文描述的技术。这样的表示(称为“IP核”)可存储在有形的机器可读介质上并且供应给各种客户或制造设施来装入实际上制作逻辑或处理器的制造机器。
各种示例可使用硬件元件、软件元件或两者的组合来实现。在一些示例中,硬件元件可包括设备、部件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、感应器,等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等。在一些示例中,软件元件可包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定示例是否使用硬件元件和/或软件元件实现可根据许多因素而变化,例如如对于给定实现所期望的期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束。
一些示例可包括制造物品或至少一个计算机可读介质。计算机可读介质可包括非暂时性存储介质来存储逻辑。在一些示例中,非暂时性存储介质可包括能够存储电子数据的一个或多个类型的计算机可读存储介质,其包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器,等。在一些示例中,逻辑可包括各种软件元件,例如软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。
根据一些示例,计算机可读介质可包括非暂时性存储介质来存储或维持指令,其在由机器、计算设备或系统执行时促使该机器、计算设备或系统根据描述的示例执行方法和/或操作。指令可包括任何适合类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码及类似物。指令可根据预定义计算机语言、方式或语法实现,用于指示机器、计算设备或系统执行某一功能。指令可使用任何适合的高级、低级、面向对象、视觉、编译和/或解释性编程语言来实现。
一些示例可使用表达“在一个示例中”或“示例”连同它们的派生物来描述。这些术语意指连同示例描述的特定特征、结构或特性包括在至少一个示例中。短语“在一个示例中”在说明书中的各种地方中的出现不一定都指相同示例。
一些示例可使用表达“耦合”和“连接”连同它们的派生物来描述。这些术语不一定规定为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可指示两个或以上元件彼此直接物理或电接触。然而,术语“耦合”还可意指两个或以上元件彼此不直接接触,但仍彼此共同操作或交互。
强调提供本公开的摘要以遵守37 C.F.R.章节1.72(b),从而需要将允许读者快速弄清本技术公开的性质的摘要。认为并且理解它将不用于解释或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看到为了简化公开的目的而在单个实施例中将各种特征组合在一起。该公开的方法不解释为反映要求保护的实施例比在每个权利要求中明确详述的特征要求更多特征这样的意图。相反,如下列权利要求反映的,发明性主旨在于比单个公开的实施例的所有特征要少。从而,下列权利要求以此并入详细描述,其中每个权利要求立足于它自身作为独立的实施例。在附上的权利要求中,术语“包括”和“在…中”分别用作相应术语“包含”和“其中”的简明英语等同物。此外,术语“第一”、“第二”、“第三”等仅用作标号,而不意在对它们的对象施加数值要求。
根据一些示例,示例装置可包括处理器电路。该示例装置还可包括供在处理器电路上执行来接收一个或多个配置命令的接收器模块,和供在处理器电路上执行以基于接收的一个或多个配置命令促使SSD配置成采用存储模式或存储器模式中的至少一个操作的配置模块。示例装置还可包括供在处理器电路上执行以采用存储模式操作SSD的存储模块。该存储模块可具有访问对于SSD的一个或多个非易失性存储器阵列的DMA能力并且还可具有设备编程接口以经由使用DMA能力协调数据到一个或多个非易失性存储器阵列的至少一部分的存储。示例装置还可包括供在处理器电路上执行以采用存储器模式操作SSD的存储器模块。该存储器模块可促使一个或多个非易失性存储器阵列的至少一部分经由接收的一个或多个配置命令中包括的存储器映射配置命令而可寻址。
在一些示例中,示例装置还可包括与SSD关联的控制寄存器。这些控制寄存器可由配置模块基于接收的一个或多个配置命令配置。配置的控制寄存器可指示SSD是采用存储模式、存储器模式还是存储模式和存储器模式的组合操作。
根据示例装置的一些示例,配置模块可对SSD分区以采用存储模式或存储器模式操作使得一个或多个非易失性存储器阵列的第一部分包括在第一分区中并且一个或多个非易失性存储器阵列的第二部分包括在第二分区中。该第一分区可采用存储模式操作并且该第二分区可采用存储器模式操作。
在示例装置的一些示例中,促使SSD配置成采用存储模式或存储器模式中的至少一个操作可包括配置模块分配与存储模式关联的逻辑块地址。对于这些示例,分配的逻辑块地址中的至少一些可能够映射到与一个或多个非易失性存储器阵列的部分(其经由存储器映射配置命令而可寻址)关联的一个或多个物理存储器地址。
根据示例装置的一些示例,配置模块可基于一个或多个配置命令(其包括仅采用存储器操作模式操作SSD的指示)促使停用存储模块的DMA能力和设备编程接口。
在示例装置的一些示例中,一个或多个配置命令可包括遵循工业标准(其包括PCIe基础规范、修订3.0或NVMe规范修订1.1)设置的PCIe配置命令。
根据示例装置的一些示例,一个或多个配置命令可从耦合于SSD的主机系统接收。
在示例装置的一些示例中,接收的一个或多个配置命令中包括的存储器映射配置命令可包括PCIe或NVMe存储器映射配置命令。存储器模块可基于PCIe或NVMe配置命令促使一个或多个非易失性存储器阵列的部分对主机系统可寻址以用作系统存储器。
根据示例装置的一些示例,配置模块可配置SSD以初始默认采用存储模式操作并且然后基于接收的一个或多个PCIe或NVMe配置命令促使SSD配置成采用存储模式或存储器模式中的至少一个操作。
在示例装置的一些示例中,一个或多个非易失性存储器阵列可包括3维交叉点存储器、闪存、铁电存储器、SONOS存储器、聚合物存储器、纳米线、FeTRAM、FeRAM、纳米线或EEPROM中的至少一个。
在一些示例中,示例方法可包括在对于具有一个或多个非易失性存储器阵列的SSD的控制器处接收一个或多个配置命令。该示例方法还可包括基于一个或多个配置命令来配置SSD以采用存储器模式或存储模式和存储器模式的组合操作。
根据一些示例,示例方法还可包括设置与SSD关联的一个或多个控制寄存器来指示SSD是配置成采用存储器模式还是存储模式和存储器模式的组合操作。
在示例方法的一些示例中,采用存储模式操作SSD可包括提供访问一个或多个非易失性存储器阵列的DMA能力并且通过设备编程接口协调数据到一个或多个非易失性存储器阵列的至少一部分的存储。
根据示例方法的一些示例,采用存储器模式操作SSD可包括促使一个或多个非易失性存储器阵列的至少一部分经由接收的一个或多个配置命令中包括的存储器映射配置命令而可寻址。
在示例方法的一些示例中,采用存储模式和存储器模式的组合操作SSD可包括对SSD分区使得一个或多个非易失性存储器阵列的第一部分包括在第一分区中并且一个或多个非易失性存储器阵列的第二部分包括在第二分区中。采用存储模式和存储器模式的组合操作SSD还可包括将第一分区分配给存储操作模式并且将第二分区分配给存储器操作模式。
根据示例方法的一些示例,一个或多个配置命令可包括遵循工业标准(其包括PCIe基础规范修订3.0或NVMe规范修订1.1)设置的PCIe配置命令。
在示例方法的一些示例中,从主机计算设备接收一个或多个配置命令并且采用存储器模式操作SSD。接收的一个或多个配置命令可包括PCIe或NVMe存储器映射配置命令,其促使一个或多个非易失性存储器阵列的至少一部分经由主机计算设备可寻址以由主机计算设备用作系统存储器。
根据一些示例,示例方法还可包括在SSD的初始设置时采用存储模式操作SSD,并且响应于接收一个或多个PCIe或NVMe配置命令,基于接收的一个或多个PCIe或NVMe配置命令来配置SSD以采用存储模式或存储器模式中的至少一个操作。
在示例方法的一些示例中,一个或多个非易失性存储器阵列可包括3维交叉点存储器、闪存、铁电存储器、SONOS存储器、聚合物存储器、纳米线、FeTRAM、FeRAM、纳米线或EEPROM中的至少一个。
根据一些示例,至少一个机器可读介质包括多个指令,其响应于在系统上执行而促使该系统实施如上文提到的示例方法。
尽管主旨已经以结构特征和/或方法论行为特定的语言描述,要理解在附上的权利要求中限定的主旨不一定局限于上文描述的特定特征或动作。相反,上文描述的特定特征和动作作为实现权利要求的示例形式而公开。
Claims (21)
1.一种计算机实现的装置,其包括:
处理器电路;
接收器模块,用于在所述处理器电路上执行来接收一个或多个配置命令;
配置模块,用于在所述处理器电路上执行以基于接收的一个或多个配置命令促使固态驱动器(SSD)配置成采用存储模式或存储器模式中的至少一个操作;
存储模块,用于在所述处理器电路上执行以采用所述存储模式操作所述SSD,所述存储模块具有访问对于所述SSD的一个或多个非易失性存储器阵列的直接存储器访问(DMA)能力,和设备编程接口以经由使用所述DMA能力协调数据到所述一个或多个非易失性存储器阵列的至少一部分的存储;
存储器模块,用于在所述处理器电路上执行以采用所述存储器模式操作所述SSD,所述存储器模块促使所述一个或多个非易失性存储器阵列的至少一部分经由接收的一个或多个配置命令中包括的存储器映射配置命令而可寻址。
2.如权利要求1所述的装置,其包括与所述SSD关联的控制寄存器,所述控制寄存器由所述配置模块基于接收的一个或多个配置命令配置,配置的控制寄存器指示所述SSD是采用存储模式、存储器模式还是存储模式和存储器模式的组合操作。
3.如权利要求1所述的装置,所述配置模块对所述SSD分区以采用所述存储模式或所述存储器模式操作使得所述一个或多个非易失性存储器阵列的第一部分包括在第一分区中并且所述一个或多个非易失性存储器阵列的第二部分包括在第二分区中,所述第一分区采用所述存储模式操作并且所述第二分区采用所述存储器模式操作。
4.如权利要求1所述的装置,促使所述SSD配置成采用所述存储模式或所述存储器模式中的至少一个操作包括所述配置模块分配与所述存储模式关联的逻辑块地址,分配的逻辑块地址中的至少一些能够映射到与一个或多个非易失性存储器阵列的部分关联的一个或多个物理存储器地址,所述一个或多个非易失性存储器阵列的部分经由所述存储器映射配置命令而可寻址。
5.如权利要求1所述的装置,所述配置模块基于所述一个或多个配置命令促使停用所述存储模块的DMA能力和所述设备编程接口,所述一个或多个配置命令包括仅采用存储器操作模式操作所述SSD的指示。
6.如权利要求1所述的装置,所述一个或多个配置命令包括遵循包括外围部件互连高速(PCIe)基础规范修订3.0或非易失性存储器高速(NVMe)规范修订1.1的工业标准设置的PCIe配置命令。
7.如权利要求3所述的装置,所述一个或多个配置命令从耦合于所述SSD的主机系统接收。
8.如权利要求7所述的装置,接收的一个或多个配置命令中包括的存储器映射配置命令包括PCIe或NVMe存储器映射配置命令,所述存储器模块基于所述PCIe或NVMe配置命令促使所述一个或多个非易失性存储器阵列的部分对所述主机系统可寻址以用作系统存储器。
9.权利要求6所述的装置,所述配置模块配置所述SSD以初始默认采用存储模式操作并且然后基于接收的一个或多个PCIe或NVMe配置命令促使所述SSD配置成采用所述存储模式或所述存储器模式中的至少一个操作。
10.权利要求1所述的装置,所述一个或多个非易失性存储器阵列包括3维交叉点存储器、闪存、铁电存储器、硅-氧化物-氮化物-氧化物-硅SONOS存储器、聚合物存储器、纳米线、铁电晶体管随机存取存储器FeTRAM或FeRAM、纳米线或电可擦除可编程只读存储器(EEPROM)中的至少一个。
11.一种计算机实现的方法,其包括:
在对于具有一个或多个非易失性存储器阵列的固态驱动器SSD的控制器处接收一个或多个配置命令;以及
基于所述一个或多个配置命令来配置所述SSD以采用存储器模式或存储模式和所述存储器模式的组合操作。
12.如权利要求11所述的方法,其包括:
设置与所述SSD关联的一个或多个控制寄存器来指示所述SSD是配置成采用所述存储器模式还是所述存储模式和所述存储器模式的组合操作。
13.如权利要求11所述的方法,采用所述存储模式操作所述SSD包括提供访问所述一个或多个非易失性存储器阵列的DMA能力并且通过设备编程接口协调数据到所述一个或多个非易失性存储器阵列的至少一部分的存储。
14.如权利要求11所述的方法,采用所述存储器模式操作所述SSD包括促使所述一个或多个非易失性存储器阵列的至少一部分经由接收的一个或多个配置命令中包括的存储器映射配置命令而可寻址。
15.如权利要求11所述的方法,采用所述存储模式和所述存储器模式的组合操作所述SSD包括:
对所述SSD分区使得所述一个或多个非易失性存储器阵列的第一部分包括在第一分区中并且所述一个或多个非易失性存储器阵列的第二部分包括在第二分区中;
将所述第一分区分配给所述存储操作模式;以及
将所述第二分区分配给所述存储器操作模式。
16.如权利要求11所述的方法,所述一个或多个配置命令包括遵循包括外围部件互连高速(PCIe)基础规范修订3.0或非易失性存储器高速(NVMe)规范修订1.1的工业标准设置的PCIe配置命令。
17.如权利要求16所述的方法,其包括从主机计算设备接收所述一个或多个配置命令并且采用所述存储器模式操作SSD,接收的一个或多个配置命令包括PCIe或NVMe存储器映射配置命令,其促使所述一个或多个非易失性存储器阵列的至少一部分对所述主机计算设备可寻址以由所述主机计算设备用作系统存储器。
18.如权利要求16所述的方法,其包括:
在所述SSD的初始设置时采用存储模式操作所述SSD,并且响应于接收一个或多个PCIe或NVMe配置命令,基于接收的一个或多个PCIe或NVMe配置命令来配置所述SSD以采用所述存储模式或所述存储器模式中的至少一个操作。
19.如权利要求11所述的方法,所述一个或多个非易失性存储器阵列包括3维交叉点存储器、闪存、铁电存储器、硅-氧化物-氮化物-氧化物-硅SONOS存储器、聚合物存储器、纳米线、铁电晶体管随机存取存储器FeTRAM或FeRAM、纳米线或电可擦除可编程只读存储器(EEPROM)中的至少一个。
20.至少一个机器可读介质,其包括多个指令,所述指令响应于在系统上执行而促使所述系统执行如权利要求11-19中任一项所述的方法。
21.一种包括用于执行如权利要求11-19中任一项所述的方法的部件的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/725502 | 2012-12-21 | ||
US13/725,502 US9098402B2 (en) | 2012-12-21 | 2012-12-21 | Techniques to configure a solid state drive to operate in a storage mode or a memory mode |
PCT/US2013/048414 WO2014099025A1 (en) | 2012-12-21 | 2013-06-28 | Techniques to configure a solid state drive to operate in a storage mode or a memory mode |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104781801A CN104781801A (zh) | 2015-07-15 |
CN104781801B true CN104781801B (zh) | 2018-08-07 |
Family
ID=50976028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380060901.3A Active CN104781801B (zh) | 2012-12-21 | 2013-06-28 | 使固态驱动器配置成采用存储模式或存储器模式操作的技术 |
Country Status (4)
Country | Link |
---|---|
US (4) | US9098402B2 (zh) |
EP (1) | EP2936325B1 (zh) |
CN (1) | CN104781801B (zh) |
WO (1) | WO2014099025A1 (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104246742B (zh) | 2012-01-17 | 2017-11-10 | 英特尔公司 | 用于远程客户端访问存储设备的命令验证的技术 |
KR20140050941A (ko) * | 2012-10-22 | 2014-04-30 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 관리 방법 |
TWI569201B (zh) * | 2013-01-31 | 2017-02-01 | 群聯電子股份有限公司 | 控制方法、記憶體控制器與資料傳輸系統 |
US11221967B2 (en) * | 2013-03-28 | 2022-01-11 | Hewlett Packard Enterprise Development Lp | Split mode addressing a persistent memory |
US9986028B2 (en) * | 2013-07-08 | 2018-05-29 | Intel Corporation | Techniques to replicate data between storage servers |
US9727503B2 (en) * | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
US9696942B2 (en) | 2014-03-17 | 2017-07-04 | Mellanox Technologies, Ltd. | Accessing remote storage devices using a local bus protocol |
US10025736B1 (en) * | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US9959203B2 (en) * | 2014-06-23 | 2018-05-01 | Google Llc | Managing storage devices |
US10095638B2 (en) * | 2014-09-02 | 2018-10-09 | Toshiba Memory Corporation | Memory system capable of wireless communication and method of controlling memory system |
DE102016205257A1 (de) * | 2015-04-09 | 2016-10-13 | Borgwarner Inc., Patent Department | Abgas-zuführanordnung eines abgasturboladers |
US9886194B2 (en) * | 2015-07-13 | 2018-02-06 | Samsung Electronics Co., Ltd. | NVDIMM adaptive access mode and smart partition mechanism |
US10120823B2 (en) | 2015-09-25 | 2018-11-06 | Toshiba Memory Corporation | Host-safe firmware upgrade of a PCI express device |
US10108340B2 (en) | 2015-10-21 | 2018-10-23 | Western Digital Technologies, Inc. | Method and system for a common processing framework for memory device controllers |
US9886196B2 (en) | 2015-10-21 | 2018-02-06 | Western Digital Technologies, Inc. | Method and system for efficient common processing in memory device controllers |
US10013212B2 (en) * | 2015-11-30 | 2018-07-03 | Samsung Electronics Co., Ltd. | System architecture with memory channel DRAM FPGA module |
US20170155717A1 (en) * | 2015-11-30 | 2017-06-01 | Intel Corporation | Direct memory access for endpoint devices |
US20170255387A1 (en) * | 2016-03-04 | 2017-09-07 | Intel Corporation | Techniques to Cause a Content Pattern to be Stored to Memory Cells of a Memory Device |
US9804793B2 (en) * | 2016-03-04 | 2017-10-31 | Intel Corporation | Techniques for a write zero operation |
US10199084B2 (en) * | 2016-03-28 | 2019-02-05 | Intel Corporation | Techniques to use chip select signals for a dual in-line memory module |
US10318185B2 (en) * | 2016-07-01 | 2019-06-11 | Intel Corporation | Method and apparatus to provide both storage mode and memory mode access to non-volatile memory within a solid state drive |
US10034407B2 (en) * | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
KR102278721B1 (ko) * | 2016-07-22 | 2021-07-16 | 삼성전자주식회사 | 비휘발성 메모리 익스프레스(NVMe) 장치의 커맨드의 실행 조정을 위한 시스템 및 방법 |
US9940052B2 (en) | 2016-09-14 | 2018-04-10 | Micron Technology, Inc. | Memory device configuration commands |
US10713203B2 (en) * | 2017-02-28 | 2020-07-14 | Cisco Technology, Inc. | Dynamic partition of PCIe disk arrays based on software configuration / policy distribution |
US10733137B2 (en) * | 2017-04-25 | 2020-08-04 | Samsung Electronics Co., Ltd. | Low latency direct access block storage in NVME-of ethernet SSD |
US10642517B2 (en) * | 2018-02-02 | 2020-05-05 | Western Digital Technologies, Inc. | Adjustable performance parameters for SSDs |
KR102516106B1 (ko) * | 2018-02-14 | 2023-03-31 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US11016924B2 (en) | 2018-03-01 | 2021-05-25 | Samsung Electronics Co., Ltd. | System and method for supporting multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-oF) devices |
US11018444B2 (en) | 2018-03-09 | 2021-05-25 | Samsung Electronics Co., Ltd. | Multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-of) device |
US11544000B2 (en) * | 2018-08-08 | 2023-01-03 | Marvell Asia Pte Ltd. | Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services |
US10802750B2 (en) * | 2019-02-28 | 2020-10-13 | Silicon Motion Inc. | Universal flash storage memory module, controller and electronic device with advanced turbo write buffer and method for operating the memory module |
CN109947463B (zh) * | 2019-03-21 | 2022-03-29 | 深圳忆联信息系统有限公司 | 固态硬盘的颗粒配置方法、装置、计算机设备及存储介质 |
US11762798B2 (en) * | 2019-06-25 | 2023-09-19 | Micron Technology, Inc. | Aggregated and virtualized solid state drives with multiple host interfaces |
US11055249B2 (en) * | 2019-06-25 | 2021-07-06 | Micron Technology, Inc. | Access optimization in aggregated and virtualized solid state drives |
US11003376B2 (en) * | 2019-09-13 | 2021-05-11 | Toshiba Memory Corporation | Reconfigurable SSD storage pool |
US11314460B2 (en) * | 2019-09-13 | 2022-04-26 | Kioxia Corporation | Solid state drive supporting both byte addressable protocol and block addressable protocol |
US11797188B2 (en) * | 2019-12-12 | 2023-10-24 | Sk Hynix Nand Product Solutions Corp. | Solid state drive with multiplexed internal channel access during program data transfers |
US11379153B2 (en) * | 2020-07-23 | 2022-07-05 | Micron Technology, Inc. | Storage traffic pattern detection in memory devices |
US11507298B2 (en) * | 2020-08-18 | 2022-11-22 | PetaIO Inc. | Computational storage systems and methods |
KR20220061771A (ko) | 2020-11-06 | 2022-05-13 | 삼성전자주식회사 | 직접 메모리 억세스 엔진을 포함하는 메모리 장치, 이를 포함하는 시스템 및 메모리 장치의 동작방법 |
US11934658B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Enhanced storage protocol emulation in a peripheral device |
US11934333B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Storage protocol emulation in a peripheral device |
US11698751B2 (en) * | 2021-06-07 | 2023-07-11 | Western Digital Technologies, Inc. | Data storage device and method for low-latency power state transitions by having power islanding in a host memory buffer |
US11726666B2 (en) | 2021-07-11 | 2023-08-15 | Mellanox Technologies, Ltd. | Network adapter with efficient storage-protocol emulation |
US11922034B2 (en) | 2021-09-02 | 2024-03-05 | Samsung Electronics Co., Ltd. | Dual mode storage device |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102165409A (zh) * | 2008-09-30 | 2011-08-24 | 美光科技公司 | 具有扩充模式的固态存储装置控制器 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2433333B (en) | 2005-12-13 | 2011-07-13 | Advanced Risc Mach Ltd | Distributed direct memory access provision within a data processing system |
US7711890B2 (en) | 2006-06-06 | 2010-05-04 | Sandisk Il Ltd | Cache control in a non-volatile memory device |
US20080005462A1 (en) * | 2006-06-30 | 2008-01-03 | Mosaid Technologies Incorporated | Method of configuring non-volatile memory for a hybrid disk drive |
US8010768B2 (en) * | 2007-05-09 | 2011-08-30 | Kingston Technology Corporation | Secure and scalable solid state disk system |
KR101406493B1 (ko) * | 2007-07-19 | 2014-06-12 | 엘지전자 주식회사 | 플래쉬 메모리를 구비한 컴퓨터 및 플래쉬 메모리의구동방법 |
KR101498673B1 (ko) | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
US20110060869A1 (en) * | 2009-09-08 | 2011-03-10 | Ocz Technology Group, Inc. | Large capacity solid-state storage devices and methods therefor |
US8307151B1 (en) * | 2009-11-30 | 2012-11-06 | Micron Technology, Inc. | Multi-partitioning feature on e-MMC |
KR101303535B1 (ko) | 2009-12-04 | 2013-09-03 | 한국전자통신연구원 | 메인 메모리를 이용한 메모리 디스크 구성 방법 및 장치 |
US20110161597A1 (en) | 2009-12-30 | 2011-06-30 | International Business Machines Corporation | Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller |
US8588228B1 (en) * | 2010-08-16 | 2013-11-19 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner |
US20120246385A1 (en) * | 2011-03-22 | 2012-09-27 | American Megatrends, Inc. | Emulating spi or 12c prom/eprom/eeprom using flash memory of microcontroller |
DE112011105984T5 (de) | 2011-12-20 | 2014-09-18 | Intel Corporation | Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen |
US8918680B2 (en) * | 2012-01-23 | 2014-12-23 | Apple Inc. | Trace queue for peripheral component |
US10282287B2 (en) * | 2015-12-28 | 2019-05-07 | Intel Corporation | Interleaved direct access mode in byte addressible memory and related devices and systems |
US10824356B2 (en) * | 2018-05-11 | 2020-11-03 | Intel Corporation | Malleable controller for storage protocols |
-
2012
- 2012-12-21 US US13/725,502 patent/US9098402B2/en active Active
-
2013
- 2013-06-28 EP EP13865197.1A patent/EP2936325B1/en active Active
- 2013-06-28 CN CN201380060901.3A patent/CN104781801B/zh active Active
- 2013-06-28 WO PCT/US2013/048414 patent/WO2014099025A1/en active Application Filing
-
2015
- 2015-07-01 US US14/789,816 patent/US9678666B2/en active Active
-
2017
- 2017-06-09 US US15/618,170 patent/US10296217B2/en active Active
-
2019
- 2019-05-20 US US16/417,310 patent/US11042297B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102165409A (zh) * | 2008-09-30 | 2011-08-24 | 美光科技公司 | 具有扩充模式的固态存储装置控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20170336978A1 (en) | 2017-11-23 |
US20190339869A1 (en) | 2019-11-07 |
US11042297B2 (en) | 2021-06-22 |
US20160034196A1 (en) | 2016-02-04 |
CN104781801A (zh) | 2015-07-15 |
EP2936325B1 (en) | 2021-05-12 |
US20140181365A1 (en) | 2014-06-26 |
WO2014099025A1 (en) | 2014-06-26 |
US10296217B2 (en) | 2019-05-21 |
EP2936325A1 (en) | 2015-10-28 |
US9098402B2 (en) | 2015-08-04 |
EP2936325A4 (en) | 2016-08-24 |
US9678666B2 (en) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104781801B (zh) | 使固态驱动器配置成采用存储模式或存储器模式操作的技术 | |
USRE49273E1 (en) | Switch and memory device | |
JP6385995B2 (ja) | テーブル・オブ・コンテンツエントリを使用してデータを格納するためのシステムおよび方法 | |
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
TWI510923B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
CN103218312B (zh) | 文件访问方法及系统 | |
CN109196829A (zh) | 远程存储器操作 | |
CN107077303A (zh) | 分配和配置持久存储器 | |
CN103946826A (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
CN107111452A (zh) | 应用于计算机系统的数据迁移方法和装置、计算机系统 | |
CN105786589A (zh) | 一种云渲染系统、服务器及方法 | |
CN108604168A (zh) | 用于基于管芯终止的命令的技术 | |
US20170255565A1 (en) | Method and apparatus for providing a contiguously addressable memory region by remapping an address space | |
CN108292280A (zh) | 用于存储设备处的写入交易的技术 | |
CN106462522A (zh) | 基于闪存的存储设备的输入/输出虚拟化(iov)主机控制器(hc)(iov‑hc) | |
CN109219797A (zh) | 用于格式化持久性存储器文件的技术 | |
CN109997117A (zh) | 用于将门铃合并在请求消息中的技术 | |
CN104808950B (zh) | 对嵌入式存储器元件的模式依赖性访问 | |
CN110377221A (zh) | 双端口固态存储设备及其数据处理方法 | |
CN104699414B (zh) | 一种数据读写方法及存储设备 | |
CN105321124A (zh) | 一种基于Hadoop的电力云平台设计方案 | |
CN105159613B (zh) | 一种emmc控制系统及其访问方法 | |
CN109661650A (zh) | 分布式共享存储器系统中的对象一致性 | |
CN209182809U (zh) | 一种移动存储设备 | |
US10642494B2 (en) | Method, electronic device and computer program product for data processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |