CN115840661A - 从hmb丢失恢复的无dram ssd - Google Patents
从hmb丢失恢复的无dram ssd Download PDFInfo
- Publication number
- CN115840661A CN115840661A CN202211025152.8A CN202211025152A CN115840661A CN 115840661 A CN115840661 A CN 115840661A CN 202211025152 A CN202211025152 A CN 202211025152A CN 115840661 A CN115840661 A CN 115840661A
- Authority
- CN
- China
- Prior art keywords
- data storage
- controller
- storage device
- hmb
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/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/0656—Data buffering 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种数据存储设备包括存储器设备以及耦接到该存储器设备的控制器。该数据存储设备是无DRAM的。该控制器被配置为:确定与主机设备的主机存储器缓冲区(HMB)的连接丢失;从存储器设备加载闪存转换层(FTL)表的最新副本;生成FTL表的最新副本的一个或多个更新;以及重新启用命令获取。该控制器被进一步配置为在进行确定时用错误状态标记命令数据库中的一个或多个命令。在启动连接之后,该控制器被进一步配置为:将FTL表从存储器设备复制到HMB;运行命令;保存HMB与存储器设备之间的FTL表差异;以及更新存储器设备中的FTL表。
Description
相关申请的交叉引用
本申请是2021年9月20日提交的共同未决的美国专利申请序列号17/479,795的部分继续申请,该专利申请以引用方式并入本文。
背景技术
技术领域
本公开的实施方案整体涉及无DRAM数据存储设备,诸如无DRAM固态驱动器(SSD),并且更具体地,涉及从主机存储器缓冲区(HMB)丢失恢复。
相关领域的描述
主机设备的动态随机存取存储器(DRAM)的一部分可由数据存储设备利用以存储通常可存储在数据存储设备DRAM上的信息。主机设备的DRAM的一部分可以是主机存储器缓冲区(HMB)。HMB由主机设备提供给数据存储设备,其中数据存储设备能够在没有主机设备交互的情况下访问HMB、写入HMB以及从HMB读取。因此,数据存储设备可被制造为具有较少的DRAM或甚至没有DRAM,以便降低数据存储设备的成本。
然而,数据存储设备的控制器需要保留的控制数据的量不会减小。因此,控制数据可存储在HMB上或数据存储设备的存储器设备上。访问HMB、从HMB检索数据以及将数据写入HMB可比访问存储器设备、从存储器设备检索数据以及将数据写入存储器设备更快。然而,由于存储在HMB中的数据在数据存储设备外部,因此可在断电事件、数据存储设备与HMB之间的连接问题等的情况下将数据的可行副本存储在存储器设备上。另外,由于HMB属于主机设备,因此主机设备可在任何时间收回为HMB分配的DRAM区域。在此类情况下,数据存储设备必须能够安全地恢复,而不导致主机设备超时。
因此,本领域需要从HMB丢失恢复。
发明内容
本公开整体涉及无DRAM数据存储设备,诸如无DRAM固态驱动器(SSD),并且更具体地涉及从HMB丢失恢复。一种数据存储设备包括存储器设备以及耦接到该存储器设备的控制器。该数据存储设备无DRAM。该控制器被配置为:确定与主机设备的主机存储器缓冲区(HMB)的连接丢失;从存储器设备加载闪存转换层(FTL)表的最新副本;生成FTL表的最新副本的一个或多个更新;以及重新启用命令获取。该控制器被进一步配置为在进行确定时用错误状态标记命令数据库中的一个或多个命令。在启动连接之后,该控制器被进一步配置为:将FTL表从存储器设备复制到HMB;运行命令;保存HMB与存储器设备之间的FTL表差异;以及更新存储器设备中的FTL表。
在一个实施方案中,数据存储设备包括存储器设备和耦接到该存储器设备的控制器。该数据存储设备无DRAM。该控制器被配置为:确定与主机设备的主机存储器缓冲区(HMB)的连接丢失;从存储器设备加载闪存转换层(FTL)表的最新副本;生成FTL表的最新副本的一个或多个更新;以及重新启用命令获取。
在另一个实施方案中,数据存储设备包括存储器设备以及耦接到存储器设备的控制器。该数据存储设备无DRAM。该控制器被配置为:确定控制器与主机设备的主机存储器缓冲区(HMB)之间的连接已经恢复;将闪存转换层(FTL)表从存储器设备复制到HMB,其中该复制发生在控制器与HMB之间的连接已经恢复之后;以及执行存储在命令数据库中的一个或多个命令。
在另一个实施方案中,数据存储设备包括存储器装置以及耦接到该存储器装置的控制器。该数据存储设备无DRAM。该控制器被配置为:首次从主机设备接收命令;向主机设备发送针对该命令的具有重试建议的错误指示;再次从主机设备接收命令;以及执行该命令。该控制器被进一步配置为在发送错误指示与执行命令之间从存储器装置加载闪存转换层(FTL)表。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1A和图1B是示出根据某些实施方案的存储系统的示意性框图,其中数据存储设备可用作主机设备的存储设备。
图2A是根据某些实施方案的示出DRAM所有权的数据存储设备的示意图。
图2B是根据某些实施方案的示出HMB所有权的图2A的数据存储设备的示意图。
图3是根据某些实施方案的NVMe命令流的示意图。
图4是示出根据某些实施方案的存储系统的示意性框图,其中数据存储设备可用作主机设备的存储设备。
图5是示出根据某些实施方案的从硬件侧和固件侧执行命令的方法的流程图。
图6A是示出根据某些实施方案的发出主机命令的方法的流程图。
图6B是示出根据某些实施方案的由数据存储设备处理HMB丢失的方法的流程图。
图6C是示出根据某些实施方案的由数据存储设备进行上电自检引导处理的方法的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开整体涉及无DRAM数据存储设备,诸如无DRAM固态驱动器(SSD),并且更具体地涉及从HMB丢失恢复。一种数据存储设备包括存储器设备以及耦接到该存储器设备的控制器。该控制器被配置为:确定与主机设备的主机存储器缓冲区(HMB)的连接丢失;从存储器设备加载闪存转换层(FTL)表的最新副本;生成FTL表的最新副本的一个或多个更新;以及重新启用命令获取。该控制器被进一步配置为在进行确定时用错误状态标记命令数据库中的一个或多个命令。在启动连接之后,该控制器被进一步配置为:将FTL表从存储器设备复制到HMB;运行命令;保存HMB与存储器设备之间的FTL表差异;以及更新存储器设备中的FTL表。
图1A示出了根据某些实施方案的存储系统100的示意性框图,其中主机设备104与数据存储设备106通信。例如,主机设备104可以利用包括在数据存储设备106中的非易失性存储器(NVM)110来存储和检索数据。主机设备104包括主机DRAM 138,该主机DRAM包括主机存储器缓冲区(HMB)140。HMB 140是被分配以由数据存储设备106的控制器108使用的主机DRAM 138的一部分。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可以根据以下协议中的一个或多个协议来操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤信道协议(FCP)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、PCI和PCIe、非易失性存储器express(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接收指示存储器单元检索数据的消息。在一些示例中,存储器单元中的每个存储器单元可以被称为裸片。在一些示例中,NVM110可包括多个裸片(例如,多个存储器单元)。在一些示例中,每个存储器单元可以被配置成存储相对大量的数据(例如,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数据存储设备。
图2A是根据某些实施方案的示出DRAM所有权的数据存储设备202的示意图。数据存储设备202可以是图1B的数据存储设备152。数据存储设备202包括DRAM 204和DRAM控制器206,该DRAM可以是图1B的DRAM 154,该DRAM控制器可以是图1B的控制器108。应当理解,DRAM 204可以是任何适用的易失性存储器,诸如SRAM。当DRAM 204经历致命故障时,诸如SECDED检测到的双错误,故障是DRAM控制器206启动数据存储设备202的重置。因此,DRAM控制器206具有对DRAM 204的控制。
图2B是根据某些实施方案的示出HMB所有权的图2A的数据存储设备202的示意图。数据存储设备包括PCIE、MAC和PHY模块254,其可以是耦接到HMB控制器256的图1A的接口114。PCIE、MAC和PHY模块254耦接到主机设备(诸如图1A的主机设备104)的主机PCIE和主机DRAM 252,其中主机DRAM包括HMB。当与主机PCIE和主机DRAM 252的HMB一起工作时,主机设备104可撤销HMB控制器256对HMB的访问权限,或者HMB与HMB控制器256之间的连接可被破坏。当连接被破坏时,数据存储设备202必须能够安全地恢复,而不导致主机设备104经历“蓝屏”效应或超时场景。在SECDED、认证错误、链路问题以及导致DRAM数据无效的其他情况下可完成恢复。“蓝屏”效应或超时场景可由在PCIE级别没有响应主机设备104或在NVMe级别使命令超时造成。
图3是根据某些实施方案的NVMe命令流300的示意图。NVMe命令流300包括主机设备302和数据存储设备304,该主机设备可以是图1A的主机设备104,该数据存储设备可以是图1A的数据存储设备106。当主机设备302生成读取命令或写入命令时,该读取命令或写入命令存储在主机设备302的提交队列中。该提交队列可在主机DRAM中实现,诸如图1A的主机DRAM 138。主机设备302运行数据存储设备304的提交队列门铃,该提交队列门铃向数据存储设备304,或更具体地,向数据存储设备304的控制器(诸如控制器108)指示提交队列具有排队的命令。
数据存储设备304通过从主机设备302的提交队列读取命令来进行响应。在一个示例中,该命令是读取命令,使得从数据存储设备304的存储器设备(诸如图1A的NVM 110)读取相关数据并将其传输回主机设备302。在完成该读取命令之后,数据存储设备304的控制器108针对该完成的命令生成完成消息,并且将完成消息写入主机设备302的完成队列,该完成队列可位于主机DRAM 138中。数据存储设备304还向主机设备302发送中断消息。主机设备302在接收到完成消息和中断消息两者之后指示命令已完成。主机设备302通过运行数据存储设备304的命令完成队列门铃来确认命令的完成。
图4是示出根据某些实施方案的存储系统400的示意性框图,其中数据存储设备412可用作主机设备402的存储设备。存储系统400的各方面可类似于图1A的存储系统100,使得数据存储设备412是无DRAM存储设备。应当理解,存储系统400可包括为达到简化目的而未示出的附加部件和流。主机设备402包括主机DRAM 404和主机中央处理单元(CPU)410。主机DRAM 404包括命令队列406和数据408,该命令队列可包括提交队列和完成队列。主机CPU 410被配置为至少处理从数据存储设备412的中断管理器428接收到的中断消息,该中断管理器可以是中断状态机。命令队列406存储待由数据存储设备412的控制器414获取的命令以及由控制器414的完成管理器426发送的完成消息,该完成管理器可以是完成状态机。
数据存储设备412包括控制器414和NVM 438,该NVM可以是图1A的NVM 110。控制器414包括PCIe协议接口416、控制路径418、命令数据库422和数据路径424。PCIe协议接口416被配置为从主机DRAM 404获取数据和命令以及向主机设备402发送数据、完成消息和中断消息。当PCIe协议接口416从命令队列406获取命令时,命令被发送到控制路径418,其中在处理器420处接收命令。同时,命令传递到命令数据库422。在处理器420处理并分析命令之后,控制路径418向数据路径424生成用于执行命令的请求。
命令的数据从数据408传输到PCIe协议接口416,其中PCIe接口416将数据传递到直接存储器访问(DMA)430。DMA 430可被配置为通过编码器/解码器432、纠错码(ECC)引擎434和闪存接口模块(FIM)436或控制器414的内部存储器(诸如SRAM)间接访问NVM 438。在存储系统400包括具有DRAM的数据存储设备(诸如图1B的数据存储设备152)的实施方案中,DMA 430可被配置为访问DRAM 154。数据被传递到编码器/解码器432,在其他实施方式中,该编码器/解码器可以是单独的部件。
编码器/解码器432可包括用于保护数据不出错的逻辑部件或包括用于在读取来自NVM 438的数据时校正数据中的错误的逻辑部件。例如,编码器/解码器432中的编码器对待存储到NVM 438的数据进行编码,并且编码器/解码器432中的解码器对从NVM 438检索的数据进行解码。编码数据可包括数据整形以及数据加密。编码数据从编码器/解码器432传递到ECC引擎434。ECC引擎434将ECC数据编程到编码数据,使得当从NVM读取数据时,可使用ECC数据来校正错误。在一些实施方案中,数据路径424还包括低密度奇偶校验(LDPC)引擎和/或XOR奇偶校验引擎。然后将数据传递到FIM 436,该FIM将数据调度和编程到NVM 438。
当执行读取命令时,FIM 436从NVM 438检索相关数据,并且ECC引擎434在将数据传递到编码器/解码器432中的解码器以进行解码/解密之前在其能力范围内校正任何错误。然后,数据被传递到DMA并且通过PCIe协议接口416发送到主机DRAM 404。当数据被传递到主机DRAM时,完成管理器426生成完成消息并将完成消息发送到命令队列406的完成队列。同样,中断管理器428生成中断消息,并且中断消息被发送到主机CPU 410以通知主机CPU 410已经将完成消息发布到命令队列。
如果在数据路径424中的数据读取期间不存在错误,则用数据传输成功指示符更新命令数据库422中的读取命令。然而,如果在数据路径424中的数据读取期间存在错误,则用随错误指示符传输的数据更新命令数据库422中的读取命令。
图5是示出根据某些实施方案的从硬件侧550和固件侧560执行命令的方法500的流程图。方法500可由图4的控制器414实现。因此,出于示例性目的,可在本文的描述中参考存储系统400的各方面。
在框502处,控制器414从主机设备402接收命令。可从命令队列406,或更具体地,从命令队列406的提交队列获取命令。在框504处,处理器420提取与所获取的命令相关联的命名空间和主机逻辑块地址(LBA)。在框506处,控制器414获取存储在HMB(诸如图1A的HMB140)中或存储在NVM 438中的转换表(例如,闪存转换层(FTL)表)。在数据存储设备包括DRAM的实施方案中(诸如图1B的数据存储设备152),转换表可任选地存储在DRAM 154中。在一些示例中,由于NVM 438的访问时间可能太长而无法满足性能要求,因此转换表可替代地被存储在DRAM或HMB中。因此,控制器414可从HMB获取相关转换表,或者在数据存储设备包括DRAM的实施方案中(诸如图1B的数据存储设备152),从该DRAM获取相关转换表,在该DRAM中转换表的相关部分被高速缓存。在框506处,处理器420使用获取的转换表计算与NVM 438上的所获取的命令相关联的相关位置。在框508处,固件侧560触发硬件侧550的硬件引擎。
在框510处,控制器414确定命令是否已成功完成。如果在框510处命令已成功完成,则在框512处硬件(诸如完成管理器426)将完成消息发送回主机设备402。然而,如果在框510处命令尚未成功完成,则固件将完成失败消息发送到主机设备。完成失败消息可包括与失败命令相关联的错误信息。固件(例如,处理器420)可负责触发硬件引擎(例如,数据路径424)。
图6A是示出根据某些实施方案的由主机设备(诸如图4的主机设备402)发出主机命令的方法600的流程图。方法600可由图4的控制器414实现。因此,出于示例性目的,可在本文的描述中参考存储系统400的各方面。
在框602处,主机设备402发出命令。命令可存储在提交队列中,在该提交队列中,主机设备402将门铃发送到数据存储设备412,以便通知数据存储设备412提交队列具有待获取的排队命令。在框604处,主机设备402确定命令是否已成功完成。例如,控制器414的完成管理器426可响应于执行获取的命令而向主机设备402发出具有成功完成指示符的完成消息或具有错误指示符的完成。如果命令尚未成功完成,则主机设备402通过重新发送(例如,发出另一门铃)命令来在框606处重试命令。在框608处,主机设备402确定重试命令是否已经成功完成。
如果在框604或框608处命令已成功完成,则方法600返回到框602。然而,如果在框608处命令尚未成功完成,则在框610处,主机设备402确定是否已经达到命令的重试限制。例如,重试限制可以是1次重试。应理解,重试限制可以是经优化或调整用于系统性能的任何正整数。在一些示例中,控制器414可由于主机设备402达到重试限制而接收准备连接重启(例如,由主机设备402发出的重启命令)的指示。
如果在框610处尚未达到重试限制,则主机设备402在框606处重试命令。然而,如果在框610处已达到重试限制,则重启数据存储设备412与主机设备402之间的连接。在一些示例中,主机设备402可确定重启数据存储设备412。当连接重启时,控制器414可能暂时无法访问HMB。因此,存储在HMB(诸如图1A的HMB 140)中的任何FTL表以及其他信息可能无法访问,直到重新建立连接为止。
图6B为示出了根据某些实施方案的由数据存储设备(诸如图4的数据存储设备412)处理HMB丢失的方法625的流程图。方法625可由图4的控制器414实现。因此,出于示例性目的,可在本文的描述中参考存储系统400的各方面。
在框626处,控制器414确定已经存在HMB 140丢失。例如,HMB 140丢失可以是图6A的框612处的重启或任何其他适用的HMB 140连接丢失,诸如连接重置或连接信道中的噪声。在框628处,控制器414用错误状态(例如,错误指示符)标记命令数据库422中尚未成功执行或不具有成功完成指示符的所有命令。在框628处,控制器414在确定与HMB 140的连接已经丢失时还禁止从主机设备402获取命令。在框630处,从NVM 438加载FTL表(即,转换表)的最后一个副本。设想从NVM 438加载的FTL表的最后一个副本可不与存储在HMB 140中的FTL表相同。
在框632处,控制器414使用加载的FTL表和命令数据库422中的命令重新创建最新的FTL表。生成的FTL表的一个或多个更新可存储在NVM 438中,并且当HMB 140连接恢复时可被传输到HMB 140。在框634处,重新启用命令获取,使得可从主机设备402获取或重新获取一个或多个命令。主机设备402可通过使控制器414从主机设备402获取失败的命令来重试失败的命令(例如,用错误状态标记的命令),以便成功完成失败的命令。
图6C为示出了根据某些实施方案的由数据存储设备(诸如图4的数据存储设备412)进行上电自检引导处理的方法650的流程图。方法650可由图4的控制器414实现。因此,出于示例性目的,可在本文的描述中参考存储系统400的各方面。
在框652处,启动与HMB 140的连接。在框654处,将FTL表从NVM 438复制到HMB140。复制可包括将整个FTL表从NVM 438复制到HMB 140或仅将FTL表的更新部分从NVM 438复制到HMB 140。例如,更新部分可以是位于NVM 438中的FTL表与位于HMB 140中的FTL表之间的差异。此外,在数据存储设备412操作期间,FTL表的更新可存储在数据存储设备412的本地SRAM的历史缓冲区中或任何其他适用的缓冲区诸如DRAM中。
例如,在框656处,当控制器414操作排队命令或获取命令时,生成FTL表更新。在框658处,FTL表更新(即,HMB 140与NVM 438之间的差异)存储在SRAM或任何其他适用的缓冲区以及HMB 140中。在一些示例中,当数据存储设备412包括DRAM时,缓冲区可以是DRAM。由于访问HMB 140通常可比访问NVM 438更快,因此FTL更新被存储在SRAM以及HMB 140两者中。因此,当与NVM 438相比时,HMB 140可具有FTL表的更新版本。
在框660处,控制器414确定NVM 438是否需要更新以更新NVM 438中存储的FTL表以与存储在HMB 140中的FTL表相匹配。例如,控制器414可确定NVM 438由于以下原因而需要被更新:强制单元访问(FUA)命令、历史缓冲区被填满、由于事务数量或时间流逝导致的周期性更新、可能由于缺少待执行的命令而导致的NVM 438空闲、或历史缓冲区被清除等。如果在框660处不需要NVM 438更新,则方法650返回到框656。然而,如果在框660处需要进行NVM 438更新,则控制器414在框662处更新NVM 438中的FTL表以与存储在HMB 140中的FTL表相匹配。在一个示例中,更新可将更新部分从存储在HMB 140或SRAM中的FTL表复制到NVM 438的FTL表。在另一示例中,可确定HMB 140的FTL表与NVM 438的FTL表之间的差异,并且可基于所确定的差异来更新NVM 438的FTL表。
通过完成具有错误状态的命令以便使主机设备重试命令,可执行从HMB丢失恢复而不导致主机设备超时。
在一个实施方案中,数据存储设备包括存储器设备和耦接到该存储器设备的控制器。该数据存储设备无DRAM。该控制器被配置为:确定与主机设备的主机存储器缓冲区(HMB)的连接丢失;从存储器设备加载闪存转换层(FTL)表的最新副本;生成FTL表的最新副本的一个或多个更新;以及重新启用命令获取。
该控制器被进一步配置为在确定与主机设备的HMB的连接丢失时禁用命令获取。重新启用获取包括从主机设备获取一个或多个命令。存储器设备是非易失性存储器设备。控制器被配置为将FTL表存储在HMB和存储器设备两者中。所生成的一个或多个更新存储在存储器设备中。控制器被配置为在恢复与HMB的连接时,利用存储在存储器设备中的所生成的一个或多个更新来更新存储在HMB中的FTL表。该控制器被进一步配置为在进行确定时用错误状态标记命令数据库中的一个或多个命令。错误状态建议主机设备重新尝试将标记的一个或多个命令发送到要执行的控制器。控制器被进一步配置为在重新启用以及从主机设备接收所标记的一个或多个命令之后执行所标记的一个或多个命令。
在另一个实施方案中,数据存储设备包括存储器设备以及耦接到存储器设备的控制器。该数据存储设备无DRAM。该控制器被配置为:确定控制器与主机设备的主机存储器缓冲区(HMB)之间的连接已经恢复;将闪存转换层(FTL)表从存储器设备复制到HMB,其中该复制发生在控制器与HMB之间的连接已经恢复之后;以及执行存储在命令数据库中的一个或多个命令。
该一个或多个命令包括一个或多个标记的命令。该一个或多个标记的命令包括由于HMB丢失而标记有错误状态的命令。控制器被进一步配置为利用执行的一个或多个命令更新存储在HMB中的FTL表。控制器被进一步配置为确定存储在存储器设备中的FTL表不同于存储在HMB中的FTL表。控制器被进一步配置为在确定存储在存储器设备中的FTL表不同于存储在HMB中的FTL表时,利用存储在HMB中的FTL表更新存储在存储器设备中的FTL表。控制器被进一步配置为确定存储在HMB中的FTL表不同于存储在存储器设备中的FTL表。复制包括在确定存储在HMB中的FTL表不同于存储在存储器设备中的FTL表时,利用存储在存储器设备中的FTL表的更改来更新存储在HMB中的FTL表。
在另一个实施方案中,数据存储设备包括存储器装置以及耦接到该存储器装置的控制器。该数据存储设备无DRAM。该控制器被配置为:首次从主机设备接收命令;向主机设备发送针对该命令的具有重试建议的错误指示;再次从主机设备接收命令;以及执行该命令。该控制器被进一步配置为在发送错误指示与执行命令之间从存储器装置加载闪存转换层(FTL)表。
该控制器被进一步配置为确定与主机存储器缓冲区(HMB)的连接已经丢失。该控制器被进一步配置为由于达到重试限制而从主机设备接收重启操作的指示。该控制器被进一步配置为由于重启操作的指示而从主机设备接收重启命令。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述数据存储设备无DRAM,并且其中所述控制器被配置为:
确定与主机设备的主机存储器缓冲区(HMB)的连接丢失;
从所述存储器设备加载闪存转换层(FTL)表的最新副本;
生成所述FTL表的所述最新副本的一个或多个更新;以及
重新启用命令获取。
2.根据权利要求1所述的数据存储设备,其中所述控制器被进一步配置为在确定与所述主机设备的所述HMB的所述连接丢失时禁用所述命令获取。
3.根据权利要求1所述的数据存储设备,其中重新启用所述获取包括从所述主机设备获取一个或多个命令。
4.根据权利要求1所述的数据存储设备,其中所述存储器设备是非易失性存储器设备。
5.根据权利要求1所述的数据存储设备,其中所述控制器被配置为将所述FTL表存储在HMB和所述存储器设备两者中。
6.根据权利要求1所述的数据存储设备,其中所生成的一个或多个更新存储在所述存储器设备中。
7.根据权利要求6所述的数据存储设备,其中所述控制器被配置为在恢复与所述HMB的连接时,利用存储在所述存储器设备中的所生成的一个或多个更新来更新存储在所述HMB中的FTL表。
8.根据权利要求1所述的数据存储设备,其中所述控制器被进一步配置为在进行所述确定时用错误状态标记命令数据库中的一个或多个命令。
9.根据权利要求8所述的数据存储设备,其中所述错误状态建议所述主机设备重新尝试将所标记的一个或多个命令发送到要执行的所述控制器,并且其中所述控制器被进一步配置为在所述重新启用以及从所述主机设备接收所标记的一个或多个命令之后执行所标记的一个或多个命令。
10.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述数据存储设备无DRAM,并且其中所述控制器被配置为:
确定所述控制器与主机设备的主机存储器缓冲区(HMB)之间的连接已经恢复;
将闪存转换层(FTL)表从所述存储器设备复制到所述HMB,其中所述复制发生在所述控制器与所述HMB之间的所述连接已经恢复之后;以及
执行存储在命令数据库中的一个或多个命令。
11.根据权利要求10所述的数据存储设备,其中所述一个或多个命令包括一个或多个标记的命令,并且其中所述一个或多个标记的命令包括由于所述HMB丢失而标记有错误状态的命令。
12.根据权利要求11所述的数据存储设备,其中所述控制器被进一步配置为利用所执行的一个或多个命令更新存储在所述HMB中的所述FTL表。
13.根据权利要求12所述的数据存储设备,其中所述控制器被进一步配置为确定存储在所述存储器设备中的所述FTL表不同于存储在所述HMB中的所述FTL表。
14.根据权利要求13所述的数据存储设备,其中所述控制器被进一步配置为在所述确定存储在所述存储器设备中的所述FTL表不同于存储在所述HMB中的所述FTL表时,利用存储在所述HMB中的所述FTL表更新存储在所述存储器设备中的所述FTL表。
15.根据权利要求10所述的数据存储设备,其中所述控制器被进一步配置为确定存储在所述HMB中的所述FTL表不同于存储在所述存储器设备中的所述FTL表。
16.根据权利要求15所述的数据存储设备,其中所述复制包括在确定存储在所述HMB中的所述FTL表不同于存储在所述存储器设备中的所述FTL表时,利用存储在所述存储器设备中的所述FTL表的更改来更新存储在所述HMB中的所述FTL表。
17.一种数据存储设备,所述数据存储设备包括:
存储器装置;和
控制器,所述控制器耦接到所述存储器装置,其中所述数据存储设备无DRAM,并且其中所述控制器被配置为:
首次从主机设备接收命令;
向所述主机设备发送针对所述命令的具有重试建议的错误指示;
再次从所述主机设备接收所述命令;以及
执行所述命令,其中在发送所述错误指示与执行所述命令之间,所述控制器被配置为从所述存储器装置加载闪存转换层(FTL)表。
18.根据权利要求17所述的数据存储设备,其中所述控制器被进一步配置为确定与主机存储器缓冲区(HMB)的连接已经丢失。
19.根据权利要求17所述的数据存储设备,其中所述控制器被进一步配置为由于达到重试限制而从所述主机设备接收重启操作的指示。
20.根据权利要求19所述的数据存储设备,其中所述控制器被进一步配置为由于所述重启操作的所述指示而从所述主机设备接收重启命令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/479,795 US11809742B2 (en) | 2021-09-20 | 2021-09-20 | Recovery from HMB loss |
US17/479,795 | 2021-09-20 | ||
US17/725,359 | 2022-04-20 | ||
US17/725,359 US11893275B2 (en) | 2021-09-20 | 2022-04-20 | DRAM-less SSD with recovery from HMB loss |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115840661A true CN115840661A (zh) | 2023-03-24 |
Family
ID=85384109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211025152.8A Pending CN115840661A (zh) | 2021-09-20 | 2022-08-25 | 从hmb丢失恢复的无dram ssd |
Country Status (3)
Country | Link |
---|---|
US (1) | US11893275B2 (zh) |
CN (1) | CN115840661A (zh) |
DE (1) | DE102022122748A1 (zh) |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563382B2 (en) | 2014-06-05 | 2017-02-07 | Sandisk Technologies Llc | Methods, systems, and computer readable media for providing flexible host memory buffer |
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 |
US10725677B2 (en) | 2016-02-19 | 2020-07-28 | Sandisk Technologies Llc | Systems and methods for efficient power state transitions |
US10157004B2 (en) | 2016-04-14 | 2018-12-18 | Sandisk Technologies Llc | Storage system and method for recovering data corrupted in a host memory buffer |
US20170351452A1 (en) | 2016-06-01 | 2017-12-07 | Intel Corporation | Dynamic host memory buffer allocation |
US10521118B2 (en) | 2016-07-13 | 2019-12-31 | Sandisk Technologies Llc | Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB) |
KR102667430B1 (ko) | 2016-08-04 | 2024-05-23 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
US10712949B2 (en) | 2017-11-09 | 2020-07-14 | Western Digital Technologies, Inc. | Adaptive device quality of service by host memory buffer range |
US10754785B2 (en) * | 2018-06-28 | 2020-08-25 | Intel Corporation | Checkpointing for DRAM-less SSD |
KR102589402B1 (ko) | 2018-10-04 | 2023-10-13 | 삼성전자주식회사 | 스토리지 디바이스 및 스토리지 디바이스의 동작 방법 |
KR102599188B1 (ko) | 2018-11-09 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리를 사용하는 스토리지 장치 및 그것의 동작 방법 |
US11086786B2 (en) | 2019-12-09 | 2021-08-10 | Westem Digital Technologies, Inc. | Storage system and method for caching a single mapping entry for a random read command |
US20210334200A1 (en) * | 2020-04-22 | 2021-10-28 | Micron Technology, Inc. | Storing translation layer metadata in host memory buffer |
US11789858B2 (en) * | 2020-08-11 | 2023-10-17 | Samsung Electronics Co., Ltd. | Method and system for performing read/write operation within a computing system hosting non-volatile memory |
US20220179593A1 (en) | 2020-10-02 | 2022-06-09 | Western Digital Technologies, Inc. | DRAM-Less SSD With Secure HMB For Low Latency |
JP2022125787A (ja) * | 2021-02-17 | 2022-08-29 | キオクシア株式会社 | メモリシステムおよび制御方法 |
TWI798680B (zh) * | 2021-04-14 | 2023-04-11 | 群聯電子股份有限公司 | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 |
TWI785571B (zh) * | 2021-04-22 | 2022-12-01 | 群聯電子股份有限公司 | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 |
-
2022
- 2022-04-20 US US17/725,359 patent/US11893275B2/en active Active
- 2022-08-25 CN CN202211025152.8A patent/CN115840661A/zh active Pending
- 2022-09-07 DE DE102022122748.0A patent/DE102022122748A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US11893275B2 (en) | 2024-02-06 |
US20230093359A1 (en) | 2023-03-23 |
DE102022122748A1 (de) | 2023-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102571747B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20230051007A1 (en) | Command Draining Using Host Memory Buffer | |
CN116888585A (zh) | 用于简单复制命令的基于高速缓存的流 | |
US11537510B2 (en) | Storage devices having minimum write sizes of data | |
KR102621493B1 (ko) | 메모리 디바이스들의 병렬 부트 실행 | |
US20210334041A1 (en) | Storage Devices Having Minimum Write Sizes Of Data | |
US11893275B2 (en) | DRAM-less SSD with recovery from HMB loss | |
US11809742B2 (en) | Recovery from HMB loss | |
CN114168067A (zh) | 使用虚设虚拟功能的NVMe简单复制命令支持 | |
CN114968381A (zh) | 通过后台重新排列读取模式以改进启动过程 | |
US11561735B2 (en) | Latency on indirect admin commands | |
US11385963B1 (en) | Usage of data mask in DRAM write | |
US11640335B2 (en) | Multiple function level reset management | |
US11960397B2 (en) | Data mapping comparison for improved synchronization in data storage devices | |
US11966582B2 (en) | Data storage device that detects and releases bottlenecks | |
US11531473B1 (en) | Selective HMB backup in NVM for low power mode | |
US11726911B2 (en) | NVMe persistent memory region quick copy | |
US11893248B2 (en) | Secure metadata protection | |
US20230342244A1 (en) | Read Look Ahead Optimization According To NVMe Dataset Management Hints | |
US20240111427A1 (en) | Data Storage Device That Detects And Releases Input Queue Bottlenecks | |
US20240111426A1 (en) | Data Storage Device That Detects and Releases Bottlenecks In Hardware | |
WO2024039430A1 (en) | NVMe BOOT PARTITION ERROR CORRECTION CODE ENHANCEMENT | |
CN118202328A (zh) | PCIe TLP大小和对齐管理 | |
WO2024019826A1 (en) | Accelerated encryption during power loss | |
CN116126746A (zh) | 具有hmb高速缓存管理的无dram ssd |
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 |