CN113535612A - 动态存储器控制器及其使用方法 - Google Patents

动态存储器控制器及其使用方法 Download PDF

Info

Publication number
CN113535612A
CN113535612A CN202110376144.7A CN202110376144A CN113535612A CN 113535612 A CN113535612 A CN 113535612A CN 202110376144 A CN202110376144 A CN 202110376144A CN 113535612 A CN113535612 A CN 113535612A
Authority
CN
China
Prior art keywords
memory
interface
controller
processor
memory controller
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
Application number
CN202110376144.7A
Other languages
English (en)
Inventor
S.R.博马纳
M.潘达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN113535612A publication Critical patent/CN113535612A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

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)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明题为“动态存储器控制器及其使用方法”。本发明提供了一种动态存储器控制器及其使用方法。在一个示例中,存储器控制器包括动态可编程部件,该动态可编程部件可用于将存储器控制器配置为与任何数量的选择的主机和/或存储器类型一起使用,以及使得存储器控制器能够具有不同的错误检测/校正功能。

Description

动态存储器控制器及其使用方法
背景技术
存储系统中的存储器控制器可被实现为专用集成电路(ASIC),并且通常具有用于与存储系统的存储器通信的存储器接口以及用于与主机通信(例如,用于从主机接收读/写命令以及用于从主机接收数据和向主机发送数据)的主机接口。存储器接口和主机接口可被设计成使用特定协议或标准工作。
附图说明
图1A是一个实施方案的非易失性存储系统的框图。
图1B是示出一个实施方案的存储模块的框图。
图1C是示出一个实施方案的分级存储系统的框图。
图2是示出根据一个实施方案的图1A所示的非易失性存储系统的控制器的部件的框图。
图3是示出根据一个实施方案的图1A所示的非易失性存储系统的部件的框图。
图4是一个实施方案的控制器的框图。
图5是具有固定硬件部件和可配置硬件部件的实施方案的控制器的框图。
图6是用于使用一个实施方案的控制器的方法的流程图。
具体实施方式
作为介绍,下面的实施方案涉及一种动态存储器控制器及其使用方法。在一个实施方案中,提供了一种包括固定部件(例如,在专用集成电路(ASIC)中)和动态可编程部件(例如,在ASIC外部)的存储器控制器。动态可编程部件可用于将存储器控制器配置为与任何数量的选择的主机和/或存储器类型一起使用,以及使得存储器控制器能够具有不同的错误检测/校正功能。动态可编程部件可用于提供具有其他类型功能的存储器控制器。其他实施方案是可行的,并且实施方案中的每个可单独使用或组合在一起使用。因此,现在将参考附图对各种实施方案进行描述。
现在转到附图,图1A至图1C示出了适用于实施这些实施方案的各方面的存储系统。图1A是示出根据本文所述的主题的一个实施方案的非易失性存储系统100(在本文中有时称为存储设备或仅称为设备)的框图。参考图1A,非易失性存储系统100包括控制器102和可由一个或多个非易失性存储器管芯104组成的非易失性存储器。如本文所述,术语管芯是指在单个半导体基板上形成的非易失性存储器单元的集合,以及用于管理那些非易失性存储器单元的物理操作的相关联的电路。控制器102与主机系统进行交互,并且将用于读取操作、编程操作和擦除操作的命令序列传输到非易失性存储器管芯104。
控制器102(其可以是非易失性存储器控制器(例如闪存、电阻随机存取存储器(ReRAM)、相变存储器(PCM)或磁阻随机存取存储器(MRAM)控制器))可采用以下形式:例如,处理电路、微处理器或处理器,以及存储可由(微)处理器执行的计算机可读程序代码(例如固件)的计算机可读介质、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌入式微控制器。控制器102可以配置有硬件和/或固件,以执行下文描述并且在流程图中示出的各种功能。另外,示出为在控制器内部的一些部件可也存储在控制器外部,并且可以使用其他部件。此外,短语“操作地与…通信”可能意味着直接或间接地(有线或无线)与一个或多个部件通信、通过一个或多个部件通信,其可在本文中示出或未示出。
如本文所用,非易失性存储器控制器是管理存储在非易失性存储器上的数据并且与主机诸如计算机或电子设备通信的设备。除了本文描述的特定功能外,非易失性存储器控制器可以具有各种功能。例如,非易失性存储器控制器可以对非易失性存储器进行格式化以确保存储器正在正确操作,标出坏的非易失性存储器单元,并且分配备用单元以替代将来的故障单元。备用单元中的一些部分可以用来容纳固件以操作非易失性存储器控制器并且实现其他特征。在操作中,当主机需要从非易失性存储器读取数据或向非易失性存储器写入数据时,它可与非易失性存储器控制器通信。如果主机提供要读取/写入数据的逻辑地址,那么非易失性存储器控制器可以将从主机接收的逻辑地址转换为非易失性存储器中的物理地址。(或者,主机可提供物理地址。)非易失性存储器控制器还可执行各种存储器管理功能,诸如但不限于损耗均衡(分配写入以避免损耗否则将被重复写入的特定存储器块)和垃圾收集(在块已满之后,仅将有效的数据页面移动到新块,因此可以擦除并且重用完整块)。另外,用于权利要求书中所述的“装置”的结构可包括例如本文所述的控制器的结构中的一些或全部,这些结构被适当编程或制造,使得控制器操作以执行所述功能。
非易失性存储器管芯104可包括任何合适的非易失性存储介质,包括电阻随机存取存储器(ReRAM)、磁阻随机存取存储器(MRAM)、相变存储器(PCM)、NAND闪存单元和/或NOR闪存单元。存储器单元可以采用固态(例如,闪存)存储器单元的形式,并且可以是可一次编程、可数次编程或可多次编程的。存储器单元还可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC),或者使用现在已知或之后开发的其他存储器单元级技术。另外,存储器单元可以二维方式或三维方式制造。
控制器102和非易失性存储器管芯104之间的接口可以是任何合适的闪存接口,诸如切换模式200、400或800。在一个实施方案中,存储系统100可为基于卡的系统,诸如安全数字卡(SD)或微型安全数字(微型SD)卡。在另选的实施方案中,存储系统100可为嵌入式存储系统的部分。
虽然在图1A所示的示例中,非易失性存储系统100(本文有时称为存储模块)包括控制器102和非易失性存储器管芯104之间的单个信道,但是本文描述的主题不限于具有单个存储器信道。例如,在一些存储系统架构中(诸如图1B和图1C中所示的架构),控制器和存储器设备之间根据控制器的能力可以存在2个、4个、8个或更多个存储器信道。在本文描述的任何实施方案中,即使在附图中示出单个信道,控制器和存储器管芯之间也可以存在超过一个单个信道。
图1B示出了包括多个非易失性存储系统100的存储模块200。同样地,存储模块200可包括存储控制器202,该存储控制器与主机以及包括多个非易失性存储系统100的存储系统204进行交互。存储控制器202和非易失性存储系统100之间的接口可以是总线接口,诸如串行高级技术附件(SATA)、外围部件快速互连(PCIe)接口或双倍数据率(DDR)接口。在一个实施方案中,存储模块200可以是诸如在服务器PC或便携式计算设备诸如膝上型计算机和平板电脑中存在的固态驱动器(SSD)或非易失性双列直插式存储器模块(NVDIMM)。
图1C是示出分级存储系统的框图。分级存储系统250包括多个存储控制器202,该多个存储控制器中的每个存储控制器控制相应的存储系统204。主机系统252可经由总线接口存取存储系统内的存储器。在一个实施方案中,总线接口可以是非易失性存储器快速(NVMe)或以太网光纤信道(FCoE)接口。在一个实施方案中,图1C所示的系统可以是机架可安装的大容量存储系统,该机架可安装的大容量存储系统能够由多个主机计算机存取,诸如在数据中心中或在需要大容量存储的其他位置中可以找到。
图2是更详细地示出控制器102的示例性部件的框图。控制器102包括与主机进行交互的前端模块108、与一个或多个非易失性存储器管芯104进行交互的后端模块110、以及执行现在将详细描述的功能的各种其他模块。模块可以采用以下形式:例如,设计用于搭配其他部件使用的封装功能硬件单元、能够由通常执行相关功能中的特定功能的(微)处理器或处理电路执行的程序代码的一部分(例如,软件或固件),或者与更大系统进行交互的独立硬件或软件部件。控制器102在本文中有时可称为NAND控制器或闪存控制器,但应当理解,控制器102可与任何合适的存储器技术一起使用,下文提供了其中一些的示例。
再次参考控制器102的模块,缓冲器管理器/总线控制器114管理随机存取存储器(RAM)116中的缓冲器,并且控制控制器102的内部总线仲裁。只读存储器(ROM)118存储系统引导代码。虽然在图2中被示为与控制器102分开地定位,但在其他实施方案中,RAM 116和ROM 118中的一者或两者可位于控制器内。在又其他实施方案中,RAM和ROM的部分可位于控制器102内和控制器外部。
前端模块108包括主机接口120和提供与主机或下一级存储控制器的电接口的物理层接口(PHY)122。可以取决于所使用的存储器的类型来选择主机接口120的类型。主机接口120的示例包括但不限于SATA、SATA Express、串行附接小型计算机系统接口(SAS)、光纤信道、通用串行总线(USB)、PCIe和NVMe。主机接口120通常便于数据、控制信号和定时信号的传送。
后端模块110包括错误校正代码(ECC)引擎124,该ECC引擎对从主机接收的数据字节进行编码,并且对从非易失性存储器读取的数据字节进行解码和错误校正。命令定序器126生成命令序列,诸如编程命令序列和擦除命令序列,以传输到非易失性存储器管芯104。RAID(独立驱动器冗余阵列)模块128管理RAID奇偶校验的生成和失败数据的恢复。RAID奇偶校验可用作写入存储器设备104中的数据的附加级的完整性保护。在一些情况下,RAID模块128可以是ECC引擎124的一部分。存储器接口130向非易失性存储器管芯104提供命令序列并从非易失性存储器管芯104接收状态信息。在一个实施方案中,存储器接口130可以是双倍数据速率(DDR)接口,诸如切换模式200、400或800接口。闪存控制层132控制后端模块110的整体操作。
存储系统100还包括其他分立部件140,诸如外部电气接口、外部RAM、电阻器、电容器或可与控制器102进行交互的其他部件。在另选的实施方案中,物理层接口122、RAID模块128、媒体管理层138和缓冲器管理/总线控制器114中的一者或多者是控制器102中不需要的任选的部件。
图3是更详细地示出非易失性存储器管芯104的部件的框图。非易失性存储器管芯104包括外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包括用于存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,包括采用二维配置和/或三维配置的ReRAM、MRAM、PCM、NAND闪存存储器单元和/或NOR闪存存储器单元。非易失性存储器管芯104还包括高速缓存数据的数据高速缓存156。外围电路141包括提供状态信息到控制器102的状态机152。
再次返回图2,闪存控制层132(其在本文中将被称为闪存转换层(FTL),或者更一般地被称为“媒体管理层”,因为存储器可以不是闪存)处理闪存错误并与主机进行交互。具体地讲,FTL(其可以是固件中的算法)负责存储器管理的内部并将来自主机的写入转换为到存储器104的写入。FTL可能是需要的,因为存储器104可能具有有限的耐久性,可能仅写入多个页面,和/或可能不写入(除非其作为块被擦除)。FTL理解存储器104的这些潜在限制,这些限制可能对主机不可见。因此,FTL尝试将来自主机的写入转换为到存储器104中的写入。
FTL可包括逻辑到物理地址(L2P)映射(在本文中有时称为表或数据结构)和分配的高速缓存存储器。这样,FTL将来自主机的逻辑块地址(“LBA”)转换为存储器104中的物理地址。FTL可包括其他特征,诸如但不限于断电恢复(使得FTL的数据结构可在突然电力损失的情况下恢复)和损耗均衡(使得跨存储块的损耗均匀,以防止某些块过度损耗,该过度损耗将导致更大机会出现故障)。
如果控制器102被实现为专用集成电路(ASIC),则其所有部件都是静态的。例如,因为存储器接口130(在本文中有时称为闪存接口模块(FIM),当存储器104是NAND闪存存储器时)仅可支持固定数量的FIM信道,所以控制器102仅可与具有该数量的信道的存储器一起工作。如果需要更多信道来增加存储器104的容量或存储系统100的性能,则将需要重新设计控制器ASIC以支持更多数量的信道。主机接口120可能出现类似的问题。因为主机接口120(在本文中有时称为主机接口模块(HIM))也是静态的,所以如果控制器102要与具有不同接口(例如,UFS、USB、PCIe、SD、SATA或NVMe)的主机一起使用,则将需要重新设计控制器ASIC。这样,可能需要为每个产品或产品线设计大量控制器ASIC,因为单个控制器ASIC将不适用于所有产品及其不同的接口。此外,如果开发出控制器不支持的新存储器技术,则将需要新的控制器ASIC。重新设计控制器ASIC并非易事,并且可能需要大量设计资源和其他库存,这可能增加控制器102的成本并延迟其向市场的交付。
为了解决此问题,一个实施方案提供了可跨产品共享并足够灵活以适应新存储器技术的单个控制器102。如图4所示,该实施方案中的控制器102包括可在ASIC中实现的固定硬件部件410(例如,其基本功能在制造之后不可配置的部件),以及可用动态配置部件的功能的寄存器来实现的动态可编程硬件部件420。由于该控制器102本质上是动态的,因此产品团队可提供要与各种主机和存储器产品一起使用的单个控制器设计,并且根据需要向控制器102提供更新的配置文件。这将使得产品团队能够针对最终产品需求配置控制器102,并且以比常规控制器设计更少的花费将产品快速交付到市场。
动态可编程硬件部件420可用于实现控制器102的任何所需的功能,诸如但不限于不同的主机接口、不同的存储器接口(例如,FIM信道)、不同的时钟配置和不同的错误校正/检测机制。以下段落提供了一个具体实施的示例。应当理解,这仅仅是示例并且其他具体实施也是可行的。
返回附图,图5是实施方案的控制器102的一个示例性具体实施的图示。如图5所示,该控制器102具有固定硬件部件410和动态可编程硬件部件420。在该示例中,固定硬件部件410包括多层矩阵(MLM)互连器500,该MLM互连器与MLM互连总线接口510、RAM 520、闪存存储器接口530、一个或多个处理器(此处为中央处理单元(CPU 1和CPU 2))540、外围设备、调试和跟踪接口550、安全和电子熔丝(Efuse)模块570以及一组(一个或多个)模拟部件570通信。
MLM互连器500用作系统总线,以连接控制器102的固定硬件部件410部分中的各种部件,以及连接到控制器102的动态可编程硬件部件部分420中的对应MLM互连器525。MLM互连器500可执行各种功能,诸如来自处理器540的命令的逻辑到物理地址转换和仲裁。MLM互连总线接口510将MLM互连总线500连接到控制器102的动态可编程硬件部件部分420中的主机接口模块505。
RAM 520可用于存储从存储器104读取并由处理器540执行的计算机可读程序代码。RAM 520还可用于存储由主机发送的要写入存储器104的数据和/或从存储器104读取的要发送到主机的数据。闪存存储器接口530连接到控制器102的动态可编程硬件部件部分420中的闪存接口复用器和信道选择器515。处理器540可执行计算机可读程序代码(例如,从存储器104读取并存储在RAM 520中)。
外围设备、调试和跟踪接口550是连接到外围设备、调试和跟踪部件的接口。外围设备可采取任何合适的形式,诸如但不限于通用异步接收器/发射器(UART)、通用输入/输出部件(GPIO)、定时器、看门狗部件和联合测试动作组(JTAP)部件。在一个实施方案中,外围设备可中断控制器102中的处理器545、555中的一些或全部。外围设备、调试和跟踪接口550还可用于调试处理器540以及在动态可编程硬件部件部分420中的处理器545上运行的固件。安全和电子熔丝(Efuse)模块570控制数据安全性。如果检测到黑客,则熔丝熔断,并且控制器102被禁用。模拟部件570可包括但不限于电源控制器、时钟晶体、锁相环(PLL)和开关架构。模拟部件570和MLM互连器500还与控制器102的动态可编程硬件部件部分420中的错误检测/校正模块(此处为低密度奇偶校验代码(LDPC)模块)545通信。
在一个实施方案中,固定硬件部件410是控制器的ASIC的一部分。因为这些部件形成控制器102的共用逻辑,所以这些固定部件的功能不可配置的事实并不妨碍该控制器102的灵活性。应当指出的是,虽然处理器540在控制器102的固定硬件部件部分410中,但处理器540可用计算机可读程序代码进行编程。
现在转到控制器102的动态可编程硬件部件部分420,该部分420包括主机接口模块505、闪存接口复用器和信道选择器515(其可以是整个存储器接口模块的一部分)、MLM互连器525、时钟管理模块535、LDPC核心引擎545以及一个或多个处理器(此处为CPU)555。虽然图5示出了例示各种部件之间的通信的箭头,但应当理解,为了简化附图,另外的通信信道可能存在但未在图5中示出。
主机接口模块505被配置为向主机提供接口(例如,USB、SD、PCie、SATA等),并且MLM互连模块525被配置为提供主机接口模块505与控制器102的固定硬件部件部分410中的MLM互连总线接口510之间的接口。时钟管理模块535用于为各种模块的所需时钟配置配置模拟部件570。LDPC引擎545用于提供错误检测/校正功能(例如,对要存储在存储器104中的数据的错误位进行编码,并且在稍后从存储器104读取数据时对错误位进行解码,以检测并可能地校正错误)。闪存接口复用器和信道选择器515用于选择要与存储器104进行交互的闪存接口信道的数量,这可增大存储系统100的存储容量。闪存接口复用器和信道选择器515还可具有高端输入-输出模块,以支持闪存接口上可能的最高速度。
这些部件中的每个部件包括寄存器,控制器102的固定硬件部件部分410中的处理器540可用值对该寄存器进行编程,以改变那些部件的功能。在一个实施方案中,控制器102的固定硬件部件部分410在具有28nm/16nm节点的ASIC中实现,并且控制器102的动态可编程硬件部件部分420具有5nm节点。这可允许控制器102支持各种产品需求若干年。在一个实施方案中,控制器102的固定硬件部件部分410与控制器102的动态可编程硬件部件部分420之间的通信发生在高速存储器映射接口或流式接口上。
如上所述,控制器102的动态可编程硬件部件部分420还包括一个或多个处理器(此处为CPU)555,该处理器可与控制器102的固定硬件部件部分410中的处理器540通信以用于负载共享(例如,处理器555可承担控制器102的固定硬件部件部分410中的处理器540未承担的任何另外负载)。所有处理器540、555可采用任何合适的形式,诸如但不限于精简指令集处理器(RISC)或Argonaut RISC(ARC)处理器。
如上所述,控制器102的动态可编程硬件部件部分420中的各种部件包括寄存器,控制器102的固定硬件部件部分410中的处理器540可用值对该寄存器进行编程,以改变那些部件的功能并提供常规控制器不具有的上述灵活性。图6中的流程图600和以下段落提供了控制器102针对时分域中的不同产品需求实现不同逻辑的动态重新配置能力的示例。应当指出的是,这仅仅是示例并且可使用其他具体实施。
如图6所示,控制器102的固定硬件部件部分410中的处理器540初始为RAM 520加载指令代码,处理器540执行该指令代码以在存储系统100的上电复位(POR)时启动控制器102(动作610)。处理器540随后利用到存储器104的低速FIM连接对闪存接口复用器和信道选择器515进行编程(动作620)。接着,使用该建立的连接,处理器540从存储器104读取配置文件并将其存储在RAM 520中(动作630)。配置文件存储可被编程到控制器102的动态可编程硬件部件部分420中的部件中的寄存器中的值。
利用配置文件,处理器540对控制器102的动态可编程硬件部件部分420中的部件中的各个部件中的寄存器进行编程(动作640)。这使得能够在这些可编程部件内形成预期逻辑。例如,处理器540可写入配置文件中指定的值,以对闪存接口复用器和信道选择器515进行编程,从而将控制器102配置为具有四个FIM信道的PCIe NAND控制器。处理器540还可写入配置文件中指定的值,以将主机接口505编程为USB主机接口并相应地对MLM互连器525进行编程。此外,处理器540可将配置文件中指定的值写入LDPC引擎545以将其配置为具有某些错误检测/校正功能,并且写入时钟管理模块535以将其配置为具有适当的时钟值和定时值。
在用适当的值对时钟管理模块535进行编程之后,控制器102的动态可编程硬件部件部分420中的处理器545对控制器102的固定硬件部件部分410中的模拟部件570进行配置,以为控制器102中的逻辑块提供所需的时钟频率(动作650)。接着,处理器545切换控制到控制器102的固定硬件部件部分410中的处理器540(动作660),并且那些处理器540随后从存储器104加载固件并完成启动过程(动作670)。
最后,控制器102的动态可编程硬件部件部分420中的处理器545可根据需要承担来自控制器102的固定硬件部件部分410中的处理器540的另外负载(动作680)。这样,处理器545可提供负载共享能力。
这些实施方案有若干优点。例如,这些实施方案可允许更快且更便宜地将控制器交付到市场,因为该实施方案的控制器可与多种现有和未来的主机和存储器一起使用。与专用ASIC不同,这些实施方案的控制器不需要为每个主机和存储器产品重新设计,因为单个控制器可与多个产品一起使用并通过端口连接到新的主机和存储器技术。即,可编程硬件部件的动态重新配置的灵活解决方案允许在不同时间实现不同的逻辑。
同样与常规的基于ASIC的控制器相比,这些实施方案的控制器可能需要更少的电力消耗和更少的固件开销。在一个实例中,整个可编程硬件逻辑可被关闭,仅保留ASIC部件激活,以节省电力并允许控制器以低功率和低性能模式操作。如果需要高性能,则可相应地配置可编程逻辑。另外,可编程逻辑可被配置为向ASIC部件提供激励,以调试ASIC中的逻辑。
此外,控制器的可编程性质使得在产品发布之后容易修复错误和更新控制器。例如,在产品发布之后并且每当新的存储器技术可用时,可以用最新的LDPC来更新控制器。
最后,如上所述,可以使用任何合适类型的存储器。半导体存储器设备包括易失性存储器设备,诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)设备,非易失性存储器设备,诸如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存存储器(也可以被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)和磁阻随机存取存储器(“MRAM”),以及能够存储信息的其他半导体元件。每种类型的存储器设备可具有不同的配置。例如,闪存存储器设备可以NAND配置或NOR配置进行配置。
该存储器设备可由无源元件和/或有源元件以任何组合形成。举非限制性示例而言,无源半导体存储器元件包括ReRAM设备元件,该无源半导体存储器元件在一些实施方案中包括电阻率切换存储元件诸如反熔丝、相变材料等,以及任选地包括导引元件诸如二极管等。进一步举非限制性示例而言,有源半导体存储器元件包括EEPROM和闪存存储器设备元件,该有源半导体存储器元件在一些实施方案中包括具有电荷存储区域的元件,诸如浮栅、导电纳米粒子或电荷存储介电材料。
多个存储器元件可被配置为使得它们串联连接或者使得每个元件可被单独访问。以非限制性示例的方式,NAND配置中的闪存存储器设备(NAND存储器)通常包含串联连接的存储器元件。NAND存储器阵列可被配置为使得该阵列由存储器的多个串构成,其中串由共享单个位线并作为组被访问的多个存储器元件构成。另选地,可配置存储器元件,使得每个元件可被单独访问,例如NOR存储器阵列。NAND存储器配置和NOR存储器配置为示例,并且可以其他方式配置存储器元件。
位于基板内和/或上方的半导体存储器元件可被布置成两个或三个维度,诸如二维存储器结构或三维存储器结构。
在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被布置在平面中(例如,在x-z方向平面中),该平面基本上平行于支撑存储器元件的基板的主表面延伸。基板可以是存储器元件的层在其之上或之中形成的晶圆,或者其可以是在存储器元件形成后附接到其的承载基板。作为非限制性示例,基板可包括半导体,诸如硅。
存储器元件可被布置在处于有序阵列中(诸如在多个行和/或列中)的单个存储器设备级中。然而,存储器元件可以非常规配置或非正交配置排列。存储器元件可各自具有两个或更多个电极或接触线,诸如位线和字线。
三维存储器阵列被布置成使得存储器元件占据多个平面或多个存储器设备级,从而形成三个维度(即,在x方向、y方向和z方向上,其中y方向基本上垂直于基板的主表面,并且x方向和z方向基本上平行于基板的主表面)的结构。
作为非限制性示例,三维存储器结构可被垂直地布置为多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可被布置为多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),其中在每一列中每一列均具有多个存储器元件。列可以二维配置例如在x-z平面中布置,从而得到存储器元件的三维布置,其中元件位于多个垂直堆叠的存储器平面上。三维存储器元件的其他配置也可构成三维存储器阵列。
举非限制性示例而言,在三维NAND存储器阵列中,存储器元件可耦接在一起以在单个水平(例如,x-z)存储器设备级内形成NAND串。另选地,存储器元件可耦接在一起以形成横贯多个水平存储器设备级的垂直NAND串。可设想到其他三维配置,其中一些NAND串包含在单个存储器级中的存储器元件,而其他串则包含跨越多个存储器级的存储器元件。三维存储器阵列也可以NOR配置以及ReRAM配置来设计。
通常,在单片三维存储器阵列中,一个或多个存储器设备级在单个基板上方形成。任选地,单片三维存储器阵列还可具有至少部分地在单个基板内的一个或多个存储器层。作为非限制性示例,基板可包括半导体,诸如硅。在单片三维阵列中,构成阵列的每个存储器设备级的层通常形成在阵列的底层存储器设备级的层上。然而,单片三维存储器阵列的相邻存储器设备级的层可被共享或具有在存储器设备级之间的居间层。
然后,可单独形成二维阵列,并且然后封装在一起以形成具有多个存储器层的非单片存储器设备。例如,非单片的堆叠存储器可通过在单独的基板上形成存储器级并且然后将存储器级堆叠在彼此之上而构造。可在堆叠前将基板减薄或从存储器设备级移除,但由于存储器设备级在单独的基板上初始形成,因此所得的存储器阵列不是单片的三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可在单独的芯片上形成,并且然后封装在一起以形成堆叠的芯片存储器设备。
通常需要相关联的电路来操作存储器元件并与存储器元件通信。作为非限制性示例,存储器设备可具有用于控制并驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可与存储器元件位于同一基板上和/或位于单独的基板上。例如,用于存储器读取-写入操作的控制器可定位在单独的控制器芯片上和/或定位在与存储器元件相同的基板上。
本领域的技术人员将认识到,本发明不限于所述的二维结构和三维结构,但涵盖如本文所述的并且如本领域的技术人员所理解的本发明的实质和范围内的所有相关存储器结构。
预期将前面的详细描述理解为本发明可以采用的选定形式的说明,而不是作为本发明的定义。预期只有以下权利要求(包括所有等同物)限定要求保护的本发明的范围。最后,应注意,本文所述的任何实施方案的任何方面均可单独使用或彼此组合使用。

Claims (20)

1.一种存储器控制器,包括:
存储器接口;
主机接口;和
处理器,所述处理器被配置为从所述存储器控制器外部的存储位置读取配置文件并执行以下操作中的一者或两者:
将值从所述配置文件写入所述存储器接口中的寄存器中,以动态地配置所述存储器接口,从而与不同类型的存储器一起工作;以及
将值从所述配置文件写入所述主机接口中的寄存器中,以动态地配置所述主机接口,从而与不同类型的主机一起工作。
2.根据权利要求1所述的存储器控制器,还包括错误检测/校正模块,其中所述处理器被进一步配置为将值从所述配置文件写入所述错误校正检测/校正模块中的寄存器中,以动态地配置具有不同错误检测/校正功能的所述错误检测/校正模块。
3.根据权利要求1所述的存储器控制器,还包括时钟管理模块,其中所述处理器被进一步配置为将值从所述配置文件写入所述时钟管理模块中的寄存器中,以动态地配置生成不同时钟频率的所述时钟管理模块。
4.根据权利要求1所述的存储器控制器,其中所述存储器接口被动态地配置为通过选择多个存储器接口信道来与不同类型的存储器一起工作。
5.根据权利要求1所述的存储器控制器,其中所述处理器是专用集成电路(ASIC)的一部分,并且其中所述存储器接口和所述主机接口不是所述ASIC的一部分。
6.根据权利要求5所述的存储器控制器,其中所述ASIC还包括以下项中的一者或多者:多层矩阵(MLM)互连器;MLM互连总线接口;外围设备、调试和跟踪接口;安全和电子熔丝模块;以及一组模拟部件。
7.根据权利要求5所述的存储器控制器,还包括不是所述ASIC的一部分的第二处理器,其中所述第二处理器被配置用于与所述ASIC中的所述处理器进行负载共享。
8.在具有存储器接口、主机接口和处理器的存储器控制器中,一种方法包括:
从存储系统中的存储器读取值;以及
执行以下操作中的一者或两者:
用所述值对所述存储器接口进行编程,以使得所述存储器接口能够与选择的存储器类型一起工作;以及
用所述值对所述主机接口进行编程,以使得所述主机接口能够与选择的主机一起工作。
9.根据权利要求8所述的方法,还包括用由所述值指定的选择的时钟频率来配置所述控制器中的模拟部件。
10.根据权利要求8所述的方法,还包括在读取所述值之前:
开始启动过程;以及
对所述存储器接口进行编程以能够读取所述存储器。
11.根据权利要求10所述的方法,还包括在对所述存储器接口和/或所述主机接口进行编程之后,加载固件并完成所述启动过程。
12.根据权利要求8所述的方法,还包括使用所述控制器中的第二处理器来与所述处理器进行负载共享。
13.根据权利要求8所述的方法,还包括用所述值对错误检测/校正模块进行编程,以使得所述错误检测/校正模块能够以选择的参数操作。
14.根据权利要求8所述的方法,其中所述处理器是专用集成电路(ASIC)的一部分,并且其中所述存储器接口和所述主机接口不是所述ASIC的一部分。
15.根据权利要求8所述的方法,其中所述ASIC还包括以下项中的一者或多者:多层矩阵(MLM)互连器;MLM互连总线接口;外围设备、调试和跟踪接口;安全和电子熔丝模块;以及一组模拟部件。
16.根据权利要求8所述的方法,其中所述存储器包括三维存储器。
17.一种存储器控制器,包括:
专用集成电路(ASIC);
位于所述ASIC外部的多个动态可编程部件;和
用于对所述动态可编程部件进行编程以使得存储器控制器能够与选择的存储器类型和/或选择的主机类型进行交互的装置。
18.根据权利要求17所述的存储器控制器,还包括用于对所述动态可编程部件进行编程以配置具有选择的错误检测/校正功能的所述存储器控制器的装置。
19.根据权利要求17所述的存储器控制器,其中所述ASIC包括以下项中的一者或多者:处理器、多层矩阵(MLM)互连器、MLM互连总线接口、随机存取存储器、存储器接口、外围设备、调试和跟踪接口、安全熔丝以及模拟部件。
20.根据权利要求17所述的存储器控制器,其中所述多个动态可编程部件包括以下项中的一者或多者:主机接口模块、存储器接口复用器和信道选择器、多层矩阵(MLM)互连器、时钟管理模块以及错误校正/检测电路。
CN202110376144.7A 2020-04-20 2021-04-08 动态存储器控制器及其使用方法 Pending CN113535612A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/853,233 2020-04-20
US16/853,233 US11150842B1 (en) 2020-04-20 2020-04-20 Dynamic memory controller and method for use therewith

Publications (1)

Publication Number Publication Date
CN113535612A true CN113535612A (zh) 2021-10-22

Family

ID=77920102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110376144.7A Pending CN113535612A (zh) 2020-04-20 2021-04-08 动态存储器控制器及其使用方法

Country Status (3)

Country Link
US (1) US11150842B1 (zh)
CN (1) CN113535612A (zh)
DE (1) DE102021107443A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117724664A (zh) * 2024-02-18 2024-03-19 芯来智融半导体科技(上海)有限公司 数据写入方法、装置、设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7413300B2 (ja) * 2021-03-15 2024-01-15 株式会社東芝 記憶装置
JP2023037877A (ja) * 2021-09-06 2023-03-16 キオクシア株式会社 メモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120240012A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
CN103093818A (zh) * 2011-11-04 2013-05-08 三星电子株式会社 存储系统及其操作方法
JP2014241057A (ja) * 2013-06-12 2014-12-25 ソニー株式会社 インターフェース制御回路、メモリシステム、および、インターフェース制御回路の制御方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051145B2 (en) * 2001-12-10 2006-05-23 Emulex Design & Manufacturing Corporation Tracking deferred data transfers on a system-interconnect bus
US8214531B2 (en) * 2002-10-24 2012-07-03 Emulex Design & Manufacturing Corporation Network configuration synchronization for hardware accelerated network protocol
US7249173B2 (en) * 2002-10-25 2007-07-24 Emulex Design & Manufacturing Corporation Abstracted node discovery
US8060670B2 (en) 2004-03-17 2011-11-15 Super Talent Electronics, Inc. Method and systems for storing and accessing data in USB attached-SCSI (UAS) and bulk-only-transfer (BOT) based flash-memory device
US8151037B1 (en) 2008-05-28 2012-04-03 Marvell International Ltd. Interface for solid-state memory
TW201005654A (en) 2008-07-24 2010-02-01 Jmicron Technology Corp Host controller disposed in multi-function card reader
US8225019B2 (en) 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US8548104B2 (en) * 2010-11-23 2013-10-01 Siano Mobile Silicon Ltd. Receiver with configurable clock frequencies
US8589723B2 (en) 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
US8874820B2 (en) 2010-12-28 2014-10-28 Silicon Image, Inc. Mechanism for facilitating a configurable port-type peripheral component interconnect express/serial advanced technology attachment host controller architecture
US8473645B2 (en) * 2011-04-11 2013-06-25 Lsi Corporation Varying host interface signaling speeds in a storage array
CN203224819U (zh) 2013-04-08 2013-10-02 深圳市祈飞科技有限公司 一种主板
US9218283B2 (en) * 2013-12-02 2015-12-22 Sandisk Technologies Inc. Multi-die write management
US20160259754A1 (en) 2015-03-02 2016-09-08 Samsung Electronics Co., Ltd. Hard disk drive form factor solid state drive multi-card adapter
CN107615388A (zh) * 2015-03-20 2018-01-19 波利伍德有限责任公司 存储控制器中的可配置多级纠错
US10114778B2 (en) * 2015-05-08 2018-10-30 Samsung Electronics Co., Ltd. Multi-protocol IO infrastructure for a flexible storage platform
US10452596B2 (en) * 2015-10-29 2019-10-22 Micron Technology, Inc. Memory cells configured in multiple configuration modes
US10459855B2 (en) * 2016-07-01 2019-10-29 Intel Corporation Load reduced nonvolatile memory interface
TWI602127B (zh) 2016-10-21 2017-10-11 宇瞻科技股份有限公司 電子卡及其偵測方法
CN206557760U (zh) 2017-02-28 2017-10-13 郑州云海信息技术有限公司 一种兼容pcie接口和sata接口的硬盘
CN107092570A (zh) 2017-05-27 2017-08-25 郑州云海信息技术有限公司 一种服务器板载m.2硬盘的自适应配置方法及系统
CN107291649A (zh) 2017-06-20 2017-10-24 郑州云海信息技术有限公司 一种灵活支持pcie与sata 协议m.2自识别的设计方法及装置
KR20190051564A (ko) * 2017-11-07 2019-05-15 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102589410B1 (ko) * 2017-11-10 2023-10-13 삼성전자주식회사 메모리 장치 및 그의 파워 제어 방법
KR102446709B1 (ko) * 2018-03-31 2022-09-26 마이크론 테크놀로지, 인크. 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭의 실행 제어
EP3776236A1 (en) * 2018-03-31 2021-02-17 Micron Technology, Inc. Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric
KR20210062476A (ko) * 2019-11-21 2021-05-31 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20210062364A (ko) * 2019-11-21 2021-05-31 에스케이하이닉스 주식회사 메모리 장치 및 그것의 동작 방법
KR20210070054A (ko) * 2019-12-04 2021-06-14 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210090439A (ko) * 2020-01-10 2021-07-20 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120240012A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
CN103093818A (zh) * 2011-11-04 2013-05-08 三星电子株式会社 存储系统及其操作方法
JP2014241057A (ja) * 2013-06-12 2014-12-25 ソニー株式会社 インターフェース制御回路、メモリシステム、および、インターフェース制御回路の制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117724664A (zh) * 2024-02-18 2024-03-19 芯来智融半导体科技(上海)有限公司 数据写入方法、装置、设备及存储介质

Also Published As

Publication number Publication date
DE102021107443A1 (de) 2021-10-21
US11150842B1 (en) 2021-10-19
US20210326066A1 (en) 2021-10-21

Similar Documents

Publication Publication Date Title
CN109074228B (zh) 用于对在主机存储器缓冲区中损坏的数据进行恢复的存储系统和方法
US9582435B2 (en) Memory system and method for efficient padding of memory pages
CN113535612A (zh) 动态存储器控制器及其使用方法
US11543987B2 (en) Storage system and method for retention-based zone determination
US11442666B2 (en) Storage system and dual-write programming method with reverse order for secondary block
US11036407B1 (en) Storage system and method for smart folding
WO2021252027A1 (en) Storage system and method for enabling partial defragmentation
US11437104B2 (en) Storage system and method for a hybrid quad-level cell (QLC) write scheme for reduced random access memory (RAM) footprint
US11231997B2 (en) Storage system and method for balanced quad-level cell (QLC) coding with margin for an internal data load (IDL) read
US11836374B1 (en) Storage system and method for data placement in zoned storage
US11138065B1 (en) Storage system and method for fast low-density parity check (LDPC) encoding
US11281399B2 (en) Dual-interface storage system and method for use therewith
CN110799934A (zh) 用于执行基于文件的固件命令和收集响应数据的存储系统和方法
US20220197557A1 (en) Storage System and Method for Dual Fast Release and Slow Release Responses
CN115756299A (zh) 用于在易失性存储器中的码字中存储逻辑到物理地址表条目的存储系统和方法
US11507309B2 (en) Storage system and method for using memory allocated in a host for read data as a host memory buffer
US20210397348A1 (en) Storage System and Method for Using Host-Assisted Variable Zone Speed Grade Modes to Minimize Overprovisioning
US11030106B2 (en) Storage system and method for enabling host-driven regional performance in memory
US11921653B2 (en) Data storage device and method for lane detection and configuration
US11442665B2 (en) Storage system and method for dynamic selection of a host interface
US11698751B2 (en) Data storage device and method for low-latency power state transitions by having power islanding in a host memory buffer
US20230409234A1 (en) Data Storage Device and Method for Host Multi-Command Queue Grouping Based on Write-Size Alignment in a Multi-Queue-Depth Environment
US20230385068A1 (en) Data Storage Device and Method for Storage-Class-Memory-Accelerated Boot Partition Optimization
US11537325B2 (en) Storage system and method for token provisioning for faster data access
US20210373765A1 (en) Storage System, Host, and Method for Extended and Imaginary Logical-to-Physical Address Mapping

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