CN116301570A - 用于无dram ssd的企业主存储器缓冲区 - Google Patents
用于无dram ssd的企业主存储器缓冲区 Download PDFInfo
- Publication number
- CN116301570A CN116301570A CN202211026476.3A CN202211026476A CN116301570A CN 116301570 A CN116301570 A CN 116301570A CN 202211026476 A CN202211026476 A CN 202211026476A CN 116301570 A CN116301570 A CN 116301570A
- Authority
- CN
- China
- Prior art keywords
- data storage
- dram
- storage device
- controller
- memory
- 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
- 238000013500 data storage Methods 0.000 claims abstract description 209
- 238000007726 management method Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 238000000034 method Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
- 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/0656—Data buffering arrangements
-
- 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
- G06F13/1668—Details of memory controller
-
- 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
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及存储系统,该存储系统包括一个或多个数据存储设备、耦接到一个或多个数据存储设备的PCIe交换机以及耦接到PCIe交换机的控制器单元。该一个或多个数据存储设备是无DRAM的。控制器单元包括动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器和DRAM池或控制器存储器缓冲区(CMB)控制器、根复合体/端口和DRAM池。该DRAM池包括一个或多个DRAM设备。该一个或多个数据存储设备被配置成与控制器单元交互并将数据存储到控制器单元的DRAM池的DRAM。
Description
相关申请的交叉引用
本申请是2021年12月6日提交的共同未决的美国专利申请序列号17/543,473的部分继续申请,该专利申请以引用方式并入本文。
背景技术
技术领域
本公开的实施方案总体涉及无DRAM数据存储设备,诸如无DRAM固态驱动器(SSD),并且更具体地,涉及经由无DRAM数据存储设备与主机设备之间的接口使用外部存储设备。
相关领域的描述
企业SSD具有特定要求,以便集成到数据中心环境中。例如,要求可以包括用于读取操作的可预测性和短延迟,并且维持来自SSD的逻辑地址范围的任何部分的读取的相同的服务质量(QoS)水平。由于所述要求,逻辑块地址(LBA)到物理块地址(PBA)(L2P)表可以存储在DRAM中,其中DRAM容量可以呈1:1000比率(例如,2TB SSD=2GB DRAM,针对L2P表高速缓存)。在一些示例中,由于增加的间接,以性能为代价,比率可以更大(例如,1:2000)。因此,随着SSD容量增加,SSD中包含的DRAM的容量也增加,这可能增加SSD的成本。
用于企业存储系统的数据存储设备可以基于每天驱动写入(DWPD)数目来评定驱动器的寿命。客户可以选择超过数据存储设备的DWPD,以更快地磨损设备为代价。因此,数据存储设备的成本转换为写入循环(例如,程序擦除循环(PEC))数目。因为DRAM不以与非易失性存储器(例如NAND存储器)相同的速度磨损,大容量数据存储设备可以具有不均匀的存储器使用,使得非易失性存储器可以在需要使DRAM退役之前退役。
因此,本领域需要用于更好地集成到数据中心环境中的改进的存储系统。
发明内容
本公开总体涉及无DRAM数据存储设备,诸如无DRAM固态驱动器(SSD),并且更具体地,涉及经由无DRAM数据存储设备与主机设备之间的接口使用外部存储设备。存储系统包括一个或多个数据存储设备、耦接到一个或多个数据存储设备的PCIe交换机以及耦接到PCIe交换机的控制器单元。一个或多个数据存储设备是无DRAM的。控制器单元包括动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器和DRAM池或控制器存储器缓冲区(CMB)控制器、根复合体/端口和DRAM池。DRAM池包括一个或多个DRAM设备。一个或多个数据存储设备被配置成与控制器单元交互并将数据存储到控制器单元的DRAM池的DRAM。
在一个实施方案中,存储系统包括一个或多个数据存储设备、耦接到一个或多个数据存储设备的PCIe交换机以及耦接到PCIe交换机的控制器单元。一个或多个数据存储设备是无DRAM的。控制器单元包括动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器和DRAM池。DRAM池包括一个或多个DRAM设备。
在另一实施方案中,存储系统包括第一数据存储设备、第二数据存储设备、耦接到第一数据存储设备和第二数据存储设备的PCIe交换机、以及耦接到第一数据存储设备和第二数据存储设备的控制器单元。第一数据存储设备和第二数据存储设备是无DRAM的。控制器单元包括动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器和DRAM池。DRAM池包括一个或多个DRAM设备。
在另一实施方案中,存储系统包括第一数据存储设备,该第一数据存储设备包括第一存储器装置;第二数据存储设备,该第二数据存储设备包括第二存储器装置;耦接到第一数据存储设备和第二数据存储设备的PCIe交换机;和控制器单元,该控制器单元耦接到第一数据存储设备和第二数据存储设备。第一数据存储设备和第二数据存储设备是无DRAM的。控制器单元包括控制器存储器缓冲区(CMB)控制器和根复合体/端口。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1A和图1B是示出根据某些实施方案的存储系统的示意性框图,在该存储系统中数据存储设备可用作主机设备的存储设备。
图2是示出根据某些实施方案的存储系统的示意性框图,在该存储系统中外部控制器单元可用作数据存储设备的存储设备。
图3是示出根据某些实施方案的存储系统的示意性框图,在该存储系统中外部控制器单元可用作第一数据存储设备和第二数据存储设备的存储设备。
图4是示出根据某些实施方案的存储系统的示意性框图,在该存储系统中外部控制器单元可用作第一数据存储设备和第二数据存储设备的存储设备。
图5是示出根据某些实施方案的将数据存储到外部控制器单元的方法的流程图。
图6是示出根据某些实施方案的从外部控制器单元读取数据的方法的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开总体涉及无DRAM数据存储设备,诸如无DRAM固态驱动器(SSD),并且更具体地,涉及经由无DRAM数据存储设备与主机设备之间的接口使用外部存储设备。存储系统包括一个或多个数据存储设备、耦接到一个或多个数据存储设备的PCIe交换机以及耦接到PCIe交换机的控制器单元。一个或多个数据存储设备是无DRAM的。控制器单元包括动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器和DRAM池或控制器存储器缓冲区(CMB)控制器、根复合体/端口和DRAM池。DRAM池包括一个或多个DRAM设备。一个或多个数据存储设备被配置成与控制器单元交互并将数据存储到控制器单元的DRAM池的DRAM。
图1A是根据某些实施方案的存储系统100的示意性框图,其中主机设备104与数据存储设备106通信。例如,主机设备104可以利用包括在数据存储设备106中的非易失性存储器(NVM)110来存储和检索数据。主机设备104包括主机DRAM 138,该主机DRAM包括主存储器缓冲区(HMB)140。HMB 140是被分配用于由数据存储设备106的控制器108使用的主机DRAM138的区段。HMB 140可以存储控制信息、元数据、奇偶校验数据、纠错码和可以通常存储在控制器108存储器或类似存储器中的其它数据。在一些示例中,存储系统100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储系统100可以包括多个数据存储设备106,其被配置成共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
主机设备104可以向一个或多个存储设备(诸如数据存储设备106)存储数据和/或从其检索数据。如图1A所示,主机设备104可以经由接口114与数据存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备,或能够从数据存储设备发送或接收数据的其它设备。
数据存储设备106包括控制器108、NVM 110、电源111、易失性存储器112、接口114和写入缓冲区116。在一些示例中,为了清楚起见,数据存储设备106可以包括图1A中未示出的附加部件。例如,数据存储设备106可以包括印刷电路板(PCB),数据存储设备106的部件机械地附接到该印刷板,并且该印刷板包括电互连数据存储设备106的部件等的导电迹线。在一些示例中,数据存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因子包括但不限于3.5”数据存储设备(例如,HDD或SSD)、2.5”数据存储设备、1.8”数据存储设备、外围部件互连(PCI)、PCI扩展(PCI-X)、PCI Express(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe Mini卡、MiniPCI等)。在一些示例中,数据存储设备106可以直接耦接(例如,直接焊接或插入到连接器中)到主机设备104的母板。
接口114可以包括用于与主机设备104交换数据的数据总线和用于与主机设备104交换命令的控制总线中的一者或两者。接口114可以根据任何合适的协议工作。例如,接口114可以根据以下协议中的一个或多个操作:PCI和PCIe、非易失性存储器快速(NVMe)、OpenCAPI、GenZ、高速缓存共同接口加速器(CCIX)、开放通道SSD(OCSSD)等。应当理解,未列出的其它协议可适用于本文描述的实施方案。接口114(例如,数据总线、控制总线或两者)电连接到控制器108,从而提供主机设备104与控制器108之间的电连接,允许在主机设备104与控制器108之间交换数据。在一些示例中,接口114的电连接还可以允许数据存储设备106从主机设备104接收电力。例如,如图1A所示,电源111可以经由接口114从主机设备104接收电力。
NVM 110可包括多个存储器设备或存储单元。NVM 110可以被配置成存储和/或检索数据。例如,NVM 110的存储单元可接收数据和来自控制器108的指示存储单元存储该数据的消息。类似地,存储单元可从控制器108接收指示存储单元检索数据的消息。在一些示例中,存储单元中的每个存储单元可以被称为裸片。在一些示例中,NVM 110可包括多个裸片(例如多个存储单元)。在一些示例中,每个存储单元可以被配置成存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些示例中,每个存储单元可以包括任何类型的非易失性存储器设备,诸如闪存存储器设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备、以及任何其它类型的非易失性存储器设备。
NVM 110可包括多个闪存存储器设备或存储单元。NVM闪存存储器设备可包括基于NAND或NOR的闪存存储器设备,并且可基于包含在用于每个闪存存储器单元的晶体管的浮栅中的电荷来存储数据。在NVM闪存存储器设备中,闪存存储器设备可被划分成多个裸片,其中多个裸片中的每个裸片包括多个物理或逻辑块,这些物理或逻辑块可被进一步划分成多个页面。特定存储器设备内的多个块中的每个块可以包括多个NVM单元。NVM单元的行可以使用字线来电连接以限定多个页面中的页面。多个页面中的每个页面中的相应单元可以电连接到相应位线。此外,NVM闪存存储器设备可以是2D或3D设备,并且可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或四级单元(QLC)。控制器108可在页面层级向NVM闪存存储器设备写入数据以及从其读取数据,以及在块层级从NVM闪存存储器设备擦除数据。
电源111可以向数据存储设备106的一个或多个部件提供电力。当以标准模式操作时,电源111可以使用由外部设备诸如主机设备104提供的电力向一个或多个部件供电。例如,电源111可以使用经由接口114从主机设备104接收的电力向一个或多个部件供电。在一些示例中,电源111可以包括一个或多个电力存储部件,其被配置成当以关闭模式操作时向一个或多个部件供电,诸如在停止从外部设备接收电力的情况下。以这种方式,电源111可以用作机载备用电源。一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可由一个或多个电力存储部件存储的电量可以是该等一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换言之,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。
易失性存储器112可由控制器108用来存储信息。易失性存储器112可包括一个或多个易失性存储器设备。在一些示例中,控制器108可使用易失性存储器112作为高速缓存。例如,控制器108可将高速缓存的信息存储在易失性存储器112中,直到该高速缓存的信息被写入到NVM 110。如图1A所示,易失性存储器112可以消耗从电源111接收的电力。易失性存储器112的示例包括但不限于随机存取存储器(RAM)、静态RAM(SRAM)、触发器和寄存器。
数据存储设备106包含控制器108,该控制器可以包括易失性存储器112。例如,控制器108可以包括SRAM。此外,控制器108可以管理数据存储设备106的一个或多个操作。例如,控制器108可以管理从NVM 110读取数据和/或将数据写入该NVM。在一些实施方案中,当数据存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM 110并且监测数据存储命令的进度。控制器108可以确定存储系统100的至少一个操作特性,并且将该至少一个操作特性存储到该NVM 110。在一些实施方案中,当数据存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送至NVM 110之前将与写入命令相关联的数据暂时存储在内部存储器或写入缓冲区116中。
图1B是示出根据某些实施方案的存储系统150的示意性框图,在该存储系统中数据存储设备106可用作主机设备104的存储设备。出于简化目的,图1A的存储系统100与存储系统150之间的共同元件可以由相同的附图标记引用。存储系统150类似于图1A中所示的存储系统。然而,在存储系统150中,数据存储设备152包含动态RAM(DRAM)154,而在存储系统100中,数据存储设备106为无DRAM的。在本文所述的实施方案中,在存在DRAM 154的情况下,如在存储系统150中,数据和对应于一个或多个命令的指针可以在被处理之前暂时存储在DRAM 154中。应当理解,可以存储在DRAM 154中的先前示例的元件不旨在是限制性的。例如,DRAM 154还可以存储数据管理表,例如逻辑到物理(L2P)表。
然而,在本文所述的实施方案中,在DRAM 154不存在的情况下,如在存储系统100中,其中数据存储设备106是无DRAM的,数据和对应于一个或多个命令的指针可以临时存储在HMB 140中或在其它易失性存储器(诸如SRAM)中。此外,图1B的易失性存储器112的示例可以进一步包括但不限于DRAM和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4等))。因此,数据存储设备106可以被称为无DRAM数据存储设备。
图2是示出根据某些实施方案的存储系统200的示意性框图,在该存储系统中控制器单元206可用作数据存储设备212的存储设备。数据存储设备212可以是图1A的数据存储设备106,使得数据存储设备212是无DRAM的存储设备。存储系统200包括耦接到PCIe交换机204的主机设备202。PCIe交换机204耦接到控制器单元206和数据存储设备212。PCIe交换机204可以具有多于一个端口,使得多于一个数据存储设备可以连接到PCIe交换机204。
控制器单元206包括DRAM主存储器缓冲区(HMB)控制器208和DRAM池210。在一些示例中,DRAM池210可以类似于HMB。控制器单元206可以是数据存储设备212的简化版本,其中控制器单元206不同于数据存储设备212。DRAM池210包括一个或多个DRAM设备。在一些实施方案中,DRAM池210可以是易失性存储器设备的任何池。
在一些示例中,控制器单元206可以进一步包括NVM设备。在需要电力故障保护的情况下,控制器单元206可以将存储在DRAM池210中的数据刷新到NVM设备。在其它示例中,控制器单元206可以将存储在DRAM池210中的数据刷新到数据存储设备212的存储器设备222。DRAM HMB控制器208可以负责将一个或多个DRAM设备从DRAM池210分配给数据存储设备212,以及将数据写入到DRAM池210的一个或多个DRAM设备并从该一个或多个DRAM设备读取。
数据存储设备212包括HMB控制器214、PCIe/NVMe前端(FE)216、存储器设备管理单元218、存储器设备接口单元220和存储器设备222,其可以是存储器设备的池。存储器设备222可以是NVM设备。当主机设备202向数据存储设备212发送写入命令时,PCIe/NVMe FE216接收写入命令。PCIe/NVMe FE 216可以处理写入命令,该入命令可以包括生成和编码用于写入命令的数据的纠错码。存储器设备管理单元218可以调度写入命令以将数据编程到存储器设备222,并且读取命令以从存储器设备222读取数据。存储器设备接口单元220可以访问存储器设备222,使得数据可以被编程到存储器设备222或从存储器设备222读取。
当数据被编程到存储器设备222时,数据的LBA到PBA映射可以存储在L2P表中。控制器单元206可以作为数据存储设备212的对等PCIe设备出现,并且可以使用标准PCIe方法来定址。因此,HMB控制器214可以将控制器单元206作为外部存储设备访问,以便存储和检索L2P描述符。例如,数据存储设备212的L2P表可以存储在DRAM池210的DRAM设备中而不是数据存储设备212的DRAM设备中。
图3是示出根据某些实施方案的存储系统300的示意性框图,在该存储系统中控制器单元322可以用作第一数据存储设备306a和第二数据存储设备306b的存储设备。存储系统300的各方面可以类似于图2的存储系统200,使得第一数据存储设备306a和第二数据存储设备306b是无DRAM的。应当理解,一个或多个数据存储设备可以耦接到PCIe交换机304和控制器单元322。
主机设备302耦接到PCIe交换机304。第一数据存储设备306a和第二数据存储设备306b各自包含第一端口308、第二端口310、HMB控制器312、PCIe/NVMe FE 314、存储器设备管理单元316、存储器设备接口单元318和存储器设备320,其可以是存储器设备的池。存储器设备222可以是NVM设备。
控制器单元322包括DRAM HMB控制器326和DRAM池324。在一些示例中,DRAM池324可以类似于HMB。控制器单元322可以是第一数据存储设备306a和第二数据存储设备306b的简化版本。DRAM池324包括一个或多个DRAM设备。在一些实施方案中,DRAM池324可以是易失性存储器设备(例如,SRAM、DRAM或两者)的任何池。在一些示例中,控制器单元322可以进一步包括NVM设备。
第一端口308可以耦接到PCIe交换机304以用于与主机设备302交互。第一数据存储设备306a和第二数据存储设备306b的第二端口310可以用于冗余(在第一端口308失效的情况下)或在一些实施方案中,连接到控制器单元322的DRAM HMB控制器326。DRAM HMB控制器326可以充当一个或多个数据存储设备的根复合体。应理解,数据存储设备可以具有多于两个端口。
通过使用控制器单元322的DRAM池324作为外部存储器设备,在第二端口310耦接到控制器单元322的情况下,当第二端口可用于读取和写入指向控制器单元322的命令时,延迟可以保持一致。同样,PCIe交换机304中的基于PCIe的优先级可以用于确保对DRAM池324的访问被优先化高于常规数据吞吐量,以便确保对存储在DRAM池324中的L2P条目的一致读取访问。
在需要电力故障保护的情况下,控制器单元322可以将存储在DRAM池324中的数据刷新到NVM设备。在其它示例中,控制器单元206可以将存储在DRAM池324中的数据刷新到第一数据存储设备306a、第二数据存储设备306b或第一数据存储设备306a和第二数据存储设备306b两者的存储器设备320。DRAM HMB控制器326可以负责将一个或多个DRAM设备从DRAM池324分配到第一数据存储设备306a和第二数据存储设备306b以及将数据写入到DRAM池324的一个或多个DRAM设备并从该一个或多个DRAM设备读取。
图4是示出根据某些实施方案的存储系统400的示意性框图,其中控制器单元402可以用作第一数据存储设备306a和第二数据存储设备306b的存储设备。存储系统400的各方面可以类似于图3的存储系统300,其中第一数据存储设备306a和第二数据存储设备306b是无DRAM的。出于简化目的,存储系统400和存储系统300之间的共同元件可以具有相同或相似的附图标记。
控制器单元402使用控制器存储器缓冲区(CMB)控制器406,而不是使用控制器单元402中的HMB控制器。控制器单元402包括根复合体/端口1 404(其可以能够连接到多个数据存储设备)、耦接到DRAM池408的CMB控制器406、PCIe/NVMe FE 410、存储器设备管理单元412和存储器设备接口单元414。在一些示例中,控制器单元402可以是不包括NVM设备的数据存储设备。在其它示例中,控制器单元402可以是用作共享DRAM接口的数据存储设备。在一些示例中,到DRAM池408的互连使用计算快速链路,其允许使用PCIe作为互连来在多个处理设备之间进行高速缓存相干访问。因此,控制器单元402可以是CXL存储器设备。
图5是示出根据某些实施方案的将数据存储到控制器单元的方法500的流程图。方法500可以由上述存储系统200、300、400中的任一者采用。出于示例性目的,可以参考存储系统200的方面。在框502处,数据存储设备212的控制器(诸如HMB控制器214)确定外部控制器单元(诸如控制器单元206)连接到数据存储设备212。连接可以是直接连接或间接连接。
在框504处,HMB控制器214从DRAM池210接收DRAM分配。例如,DRAM HMB控制器208可以从DRAM池210分配一个或多个DRAM设备以供数据存储设备212使用。在框506处,HMB控制器214确定需要对DRAM设备的写入。该确定可以是由于对存储器设备222的写入、数据管理操作(诸如垃圾收集)到存储器设备222等。因此,由于可以改变映射(LBA到PBA),因此需要更新对应L2P表中的对应L2P条目。在框508处,HMB控制器214向DRAM HMB控制器208发送写入命令以将数据写入到从DRAM池210分配的DRAM,因为数据存储设备212是无DRAM的存储设备。在数据存储设备确实包括DRAM的实施方案中,HMB控制器214仍然可以向DRAM HMB控制器208发送写入命令以将数据写入到从DRAM池210分配的DRAM,而不是使用确实包括DRAM的数据存储设备的DRAM。因此,可以将L2P表维持在外部,诸如在DRAM池210的DRAM中。
图6是示出根据某些实施方案的从控制器单元(诸如图2的控制器单元206)读取数据的方法600的流程图。方法600可以由上述存储系统200、300、400中的任一者采用。出于示例性目的,可以参考存储系统200的方面。在框602处,数据存储设备212的控制器(诸如HMB控制器214)从主机设备202接收用于存储在存储器设备222中的数据的读取命令。
在框604处,HMB控制器214将控制器单元206中对应于数据存储设备212的L2P表进行定位。在框606处,HMB控制器214向DRAM HMB控制器208发送读取命令以从对应于读取命令的L2P表检索数据。在框608处,使用检索到的L2P表信息从存储器设备222读取数据并将数据传输到主机设备202。
通过具有包括用作一个或多个数据存储设备的易失性存储器池的外部控制器单元或存储设备的存储系统,由于一个或多个数据存储设备的减少或不存在的易失性存储器要求,可以减少一个或多个数据存储设备的成本。
在一个实施方案中,存储系统包括一个或多个数据存储设备、耦接到一个或多个数据存储设备的PCIe交换机以及耦接到PCIe交换机的控制器单元。一个或多个数据存储设备是无DRAM的。控制器单元包括动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器和DRAM池。DRAM池包括一个或多个DRAM设备。
PCIe交换机直接耦接到DRAM HMB控制器。一个或多个数据存储设备中的每个数据存储设备包括HMB控制器、PCIe/NVMe前端单元、存储器设备管理单元、存储器设备接口单元和存储器设备。控制器单元充当一个或多个数据存储设备的根复合体。一个或多个数据存储设备不同于控制器单元。控制器单元作为一个或多个数据存储设备的对等PCIe设备出现。DRAM池由一个或多个数据存储设备共享。一个或多个数据存储设备是两个或更多个数据存储设备。一个或多个数据存储设备中的每个数据存储设备包括第一端口和第二端口。第一端口耦接到PCIe交换机。
在另一实施方案中,存储系统包括第一数据存储设备、第二数据存储设备、耦接到第一数据存储设备和第二数据存储设备的PCIe交换机、以及耦接到第一数据存储设备和第二数据存储设备的控制器单元。第一数据存储设备和第二数据存储设备是无DRAM的。控制器单元包括动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器和DRAM池。DRAM池包括一个或多个DRAM设备。
第一数据存储设备和第二数据存储设备各自具有第一端口和第二端口。第一端口耦接到PCIe交换机。第二端口耦接到控制器单元。第二端口耦接到HMB控制器。HMB控制器设置在第一数据存储设备和第二数据存储设备中。第二端口耦接到DRAM HMB控制器。控制器单元被配置成在检测到控制器单元的电力故障事件时,将DRAM池的数据推送到下列中的任一者:第一数据存储设备、第二数据存储设备或第一数据存储设备和数据存储设备两者。
在另一实施方案中,存储系统包括第一数据存储设备,该第一数据存储设备包括第一存储器装置;第二数据存储设备,该第二数据存储设备包括第二存储器装置;耦接到第一数据存储设备和第二数据存储设备的PCIe交换机;和控制器单元,该控制器单元耦接到第一数据存储设备和第二数据存储设备。第一数据存储设备和第二数据存储设备是无DRAM的。控制器单元包括控制器存储器缓冲区(CMB)控制器和根复合体/端口。
第一数据存储设备、第二数据存储设备和控制器单元各自包含存储器装置接口、存储器装置管理单元和PCIe/NVMe前端单元。第一数据存储设备和第二数据存储设备各自包括第一端口和第二端口。第一端口耦接到PCIe交换机。第二端口耦接到根复合体/端口。CMB控制器耦接到DRAM池。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种存储系统,所述存储系统包括:
一个或多个数据存储设备,其中所述一个或多个数据存储设备是无DRAM的;
PCIe交换机,所述PCIe交换机耦接到所述一个或多个数据存储设备;和
控制器单元,所述控制器单元耦接到所述PCIe交换机,所述控制器单元包括:
动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器;以及
DRAM池,其中所述DRAM池包括一个或多个DRAM设备。
2.根据权利要求1所述的存储系统,其中所述PCIe交换机直接耦接到所述DRAM HMB控制器。
3.根据权利要求1所述的存储系统,其中所述一个或多个数据存储设备中的每个数据存储设备包括:
HMB控制器;
PCIe/NVMe前端单元;
存储器设备管理单元;
存储器设备接口单元;和
存储器设备。
4.根据权利要求1所述的存储系统,其中所述控制器单元充当所述一个或多个数据存储设备的根复合体。
5.根据权利要求1所述的存储系统,其中所述一个或多个数据存储设备不同于所述控制器单元。
6.根据权利要求1所述的存储系统,其中所述控制器单元作为所述一个或多个数据存储设备的对等PCIe设备出现。
7.根据权利要求1所述的存储系统,其中所述DRAM池由所述一个或多个数据存储设备共享。
8.根据权利要求1所述的存储系统,其中所述一个或多个数据存储设备是两个或更多个数据存储设备。
9.根据权利要求1所述的存储系统,其中所述一个或多个数据存储设备中的每个数据存储设备包括第一端口和第二端口,并且其中所述第一端口耦接到所述PCIe交换机。
10.一种存储系统,所述存储系统包括:
第一数据存储设备;
第二数据存储设备,其中所述第一数据存储设备和所述第二数据存储设备是无DRAM的;
PCIe交换机,所述PCIe交换机耦接到所述第一数据存储设备和所述第二数据存储设备;和
控制器单元,所述控制器单元耦接到所述第一数据存储设备和所述第二数据存储设备,所述控制器单元包括:
动态随机存取存储器(DRAM)主存储器缓冲区(HMB)控制器;以及
DRAM池,其中所述DRAM池包括一个或多个DRAM设备。
11.根据权利要求10所述的存储系统,其中所述第一数据存储设备和所述第二数据存储设备各自具有第一端口和第二端口,并且其中所述第一端口耦接到所述PCIe交换机。
12.根据权利要求11所述的存储系统,其中所述第二端口耦接到所述控制器单元。
13.根据权利要求12所述的存储系统,其中所述第二端口耦接到HMB控制器。
14.根据权利要求13所述的存储系统,其中所述HMB控制器设置在所述第一数据存储设备和所述第二数据存储设备中。
15.根据权利要求12所述的存储系统,其中所述第二端口耦接到所述DRAM HMB控制器。
16.根据权利要求10所述的存储系统,其中所述控制器单元被配置成在检测到所述控制器单元的电力故障事件时,将所述DRAM池的数据推送到下列中的任一者:所述第一数据存储设备、所述第二数据存储设备或所述第一数据存储设备和所述数据存储设备两者。
17.一种存储系统,所述存储系统包括:
第一数据存储设备,所述第一数据存储设备包括第一存储器装置;
第二数据存储设备,所述第二数据存储设备包括第二存储器装置,其中所述第一数据存储设备和所述第二数据存储设备是无DRAM的;
PCIe交换机,所述PCIe交换机耦接到所述第一数据存储设备和所述第二数据存储设备;和
控制器单元,所述控制器单元耦接到所述第一数据存储设备和所述第二数据存储设备,所述控制器单元包括:
控制器存储器缓冲区(CMB)控制器;以及
根复合体/端口。
18.根据权利要求17所述的存储系统,其中所述第一数据存储设备、所述第二数据存储设备和所述控制器单元各自包括:
存储器装置接口;
存储器装置管理单元;和
PCIe/NVMe前端单元。
19.根据权利要求17所述的存储系统,其中所述第一数据存储设备和所述第二数据存储设备各自包括第一端口和第二端口,其中所述第一端口耦接到所述PCIe交换机,并且其中所述第二端口耦接到所述根复合体/端口。
20.根据权利要求17所述的存储系统,其中所述CMB控制器耦接到DRAM池。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/543,473 | 2021-12-06 | ||
US17/543,473 US11816337B2 (en) | 2021-12-06 | 2021-12-06 | Enterprise host memory buffer |
US17/732,611 US20230176775A1 (en) | 2021-12-06 | 2022-04-29 | Enterprise Host Memory Buffer For DRAM-less SSD |
US17/732,611 | 2022-04-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116301570A true CN116301570A (zh) | 2023-06-23 |
Family
ID=86382147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211026476.3A Pending CN116301570A (zh) | 2021-12-06 | 2022-08-25 | 用于无dram ssd的企业主存储器缓冲区 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230176775A1 (zh) |
CN (1) | CN116301570A (zh) |
DE (1) | DE102022122750A1 (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074021B1 (en) * | 2008-03-27 | 2011-12-06 | Netapp, Inc. | Network storage system including non-volatile solid-state memory controlled by external data layout engine |
US10037272B2 (en) * | 2012-08-08 | 2018-07-31 | Avalanche Technology, Inc. | Storage system employing MRAM and array of solid state disks with integrated switch |
US8996781B2 (en) * | 2012-11-06 | 2015-03-31 | OCZ Storage Solutions Inc. | Integrated storage/processing devices, systems and methods for performing big data analytics |
US10268584B2 (en) * | 2014-08-20 | 2019-04-23 | Sandisk Technologies Llc | Adaptive host memory buffer (HMB) caching using unassisted hinting |
US9760430B2 (en) * | 2015-08-28 | 2017-09-12 | Dell Products L.P. | System and method for dram-less SSD data protection during a power failure event |
US20190114220A1 (en) * | 2017-10-12 | 2019-04-18 | Cnex Labs, Inc. | Method and apparatus for enhancing data integrity using dual error detection and repair protection for ssd |
KR102599176B1 (ko) * | 2018-11-14 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리 버퍼를 사용하는 스토리지 장치 및 그것의 메모리 관리 방법 |
JP2021043708A (ja) * | 2019-09-11 | 2021-03-18 | キオクシア株式会社 | メモリシステム |
KR20210072503A (ko) * | 2019-12-09 | 2021-06-17 | 삼성전자주식회사 | 스토리지 장치와 재구성 가능 로직 칩을 포함하는 스토리지 장치 세트 및 이를 포함하는 스토리지 시스템 |
-
2022
- 2022-04-29 US US17/732,611 patent/US20230176775A1/en active Pending
- 2022-08-25 CN CN202211026476.3A patent/CN116301570A/zh active Pending
- 2022-09-07 DE DE102022122750.2A patent/DE102022122750A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230176775A1 (en) | 2023-06-08 |
DE102022122750A1 (de) | 2023-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101861924B1 (ko) | 보호된 데이터로부터 분리된 패리티 데이터 저장 | |
CN113467705B (zh) | 数据组块的增强读取 | |
WO2024063821A1 (en) | Dynamic and shared cmb and hmb allocation | |
US11960741B2 (en) | Implied streams | |
WO2023080928A1 (en) | Dynamic controller buffer management and configuration | |
US11755459B2 (en) | Management of a debug buffer based on priority information | |
US11816337B2 (en) | Enterprise host memory buffer | |
US20230176775A1 (en) | Enterprise Host Memory Buffer For DRAM-less SSD | |
WO2021257117A1 (en) | Fast recovery for persistent memory region (pmr) of a data storage device | |
US20230305756A1 (en) | Virtual Block Pools For Protecting Device Health | |
US12019913B2 (en) | Storing log and user data in SSD with independent plane operations | |
US20240319898A1 (en) | Irregular jumbo block size unification | |
US20240329880A1 (en) | Flash Interface With Switching Logic | |
US11893253B1 (en) | Dynamic TD-PPM state and die mapping in multi-NAND channels | |
US20240272826A1 (en) | Optimization Of An Active Range Of mSets Stored In A Compressed Address Table | |
US11645009B2 (en) | Data storage with improved read parallelism | |
US20240152293A1 (en) | Scatter gather list adaptive bucketing | |
US11429522B2 (en) | Storage delta compression | |
US20240078184A1 (en) | Transparent Host Memory Buffer | |
US20240256383A1 (en) | Delayed XOR Rebuild With Priority In Multi-Protocol Products | |
US20240078032A1 (en) | Metadata Management In Key Value Data Storage Device | |
US20240272794A1 (en) | Data padding reduction in log copy | |
WO2023121704A1 (en) | Optimizing flash memory utilization for nvme kv pair storage | |
WO2024072499A1 (en) | Finding and releasing trapped memory in ulayer | |
WO2024058841A1 (en) | Efficient l2p dram for high-capacity drives |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240828 Address after: California, USA Applicant after: SanDisk Technology Co. Country or region after: U.S.A. Address before: California, USA Applicant before: Western Digital Technologies, Inc. Country or region before: U.S.A. |