CN117897686A - 用于在固态驱动器中减少nand管芯冲突的方法和设备 - Google Patents

用于在固态驱动器中减少nand管芯冲突的方法和设备 Download PDF

Info

Publication number
CN117897686A
CN117897686A CN202280040310.9A CN202280040310A CN117897686A CN 117897686 A CN117897686 A CN 117897686A CN 202280040310 A CN202280040310 A CN 202280040310A CN 117897686 A CN117897686 A CN 117897686A
Authority
CN
China
Prior art keywords
solid state
memory
state drive
data
nand die
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
CN202280040310.9A
Other languages
English (en)
Inventor
P·李
S·N·特里卡
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.)
Aisikai Hynix Memory Product Solutions Co
Original Assignee
Aisikai Hynix Memory Product Solutions Co
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 Aisikai Hynix Memory Product Solutions Co filed Critical Aisikai Hynix Memory Product Solutions Co
Publication of CN117897686A publication Critical patent/CN117897686A/zh
Pending legal-status Critical Current

Links

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Power Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

通过在NAND管芯冲突的情况下把将要被写到固态驱动器中的NAND管芯的数据存储在固态驱动器中的字节可寻址就地写入非易失性存储器中,从而防止写到NAND管芯,提高了多流固态驱动器的服务质量。当NAND管芯不繁忙时,存储在字节可寻址就地写入非易失性存储器中的数据被写到NAND管芯。

Description

用于在固态驱动器中减少NAND管芯冲突的方法和设备
相关申请的交叉引用
本申请要求于2021年4月5日提交的第17/222,048号美国专利申请的利益,其全部内容据此通过引用包含于本文中。
技术领域
本公开涉及固态驱动器,并且特别地,涉及固态驱动器中的NAND管芯冲突。
背景技术
非易失性存储器指代这样的存储器:即使装置的电源中断,它的状态也是确定的。固态驱动器是将数据存储在非易失性存储器中的存储装置。通常,固态驱动器包括:基于块的存储器,诸如NAND闪存;和控制器,用于管理从按照可通信方式耦合到固态驱动器的主机接收的涉及NAND闪存的读/写请求。
通过高速串行计算机扩展总线,例如使用非易失性存储器高速(NVMe)标准协议的外围部件互连高速(PCIe)总线,主机系统能够与固态驱动器(SSD)通信。非易失性存储器高速(NVMe)标准协议定义用于主机软件通过外围部件互连高速(PCIe)总线与固态驱动器通信的寄存器级接口。
附图说明
随着下面的详细描述进行,并且在参照附图时,要求保护的主题的实施例的特征将会变得清楚,在附图中,相同的数字描绘相同的部分,并且在附图中:
图1是包括按照可通信方式耦合到多流固态驱动器的主机电路的计算机系统的方框图;
图2是图1中的多流固态驱动器的实施例的方框图;
图3图示用于管理块可寻址非易失性存储器和主机系统之间的流的数据的传递的字节可寻址就地写入非易失性存储器中的队列;
图4是图示由固件中的固件任务为了管理字节可寻址就地写入非易失性存储器而执行的方法的流程图;
图5是由多流固态驱动器中的固件中的固件任务响应于从主机接收的写请求而执行的操作的流程图;
图6是由多流固态驱动器中的固件中的固件任务响应于从主机接收的读请求而执行的操作的流程图;
图7是用于处理固态驱动器中的掉电恢复(PLR)事件的方法的流程图;和
图8是包括多流固态驱动器的计算机系统的实施例的方框图。
虽然下面的详细描述将会继续参照要求保护的主题的说明性实施例,但对于本领域技术人员而言,其许多替换、修改和变化将会是清楚的。因此,旨在广泛地看待要求保护的主题,并且如所附权利要求中所阐述的那样定义要求保护的主题。
具体实施方式
通常,固态驱动器(SSD)包括按照可通信方式耦合到控制器的独立NAND管芯(也被称为NAND闪存管芯)以允许针对NAND管芯的I/O操作的并行化。
用于在NAND管芯中执行程序操作的时间远长于用于在NAND管芯中执行读操作的时间。固态驱动器中的程序暂停恢复(PSR)特征允许暂停正在进行的程序操作以便为读操作服务,然而,程序暂停恢复增加了完成读操作所需的时间。排在NAND管芯上正在进行的程序操作后面的、从主机系统接收的读请求能够显著影响固态驱动器的读延时或读服务质量(rQoS)。
当不再需要存储在固态驱动器中的NAND闪存中的块中的数据时,在存储数据的一个或多个块能够被用于存储新数据之前,该数据必须被擦除。在擦除之前,所述一个或多个块中的有效数据必须被写到NAND闪存中的其它块。这些另外的NAND操作产生倍增效应,所述倍增效应增加需要的写的次数,产生称为“写放大”的“放大”效应。例如,如果块中的64页中的3页是有效的(在使用中)并且所有其它页是无效的(不再在使用中),则在擦除该块之前,所述三个有效页必须被写到另一个块,导致除了擦除操作和待写新数据之外的三次写页操作。写放大因子是代表相对于待写新数据的量的、固态驱动器控制器必须写的数据的量的数值。将有效数据写到其它块以及NAND闪存擦除操作通常被称为“垃圾”收集(垃圾收集)。
当对NAND管芯的垃圾收集读操作正在进行时,能够接收到对同一NAND管芯的主机读操作的请求。这能够被称为“读对读冲突(read onread collision)”。“读对读冲突”导致主机读操作的读延时的增加。读延时包括用于完成垃圾收集读操作的时间和用于执行错误处理(如果需要)的时间。
当对NAND管芯的垃圾收集程序操作正在进行时,能够接收到对同一NAND管芯的主机读操作的请求。当对NAND管芯的主机程序操作正在进行时,能够接收到对同一NAND管芯的主机读操作的请求。这些能够被称为“读对写冲突”。“读对写冲突”导致写操作的写延时的增加。写延时包括用于暂停程序操作、执行读操作、恢复程序操作的时间。“读对写冲突"和“读对读冲突”能够被称为NAND管芯冲突。
用于在擦除NAND管芯中的块中的无效数据之前将存储在块中的一个或多个页中的有效数据从待擦除NAND管芯中的块写到NAND管芯中的其它块的数据移动操作导致使用能够被用于处理在固态驱动器中读/写数据的用户请求的带宽。
为了减少存储将要在NAND管芯中的块之间移动的NAND管芯中的有效数据的页的数量,非易失性存储器高速(NVMe)标准协议允许主机将对NAND管芯的写操作与流关联。与流关联的所有数据被期望同时被无效(也就是说,数据具有相同的预期寿命)。具有不同预期寿命的数据被映射到不同流。
主机系统能够明确地在固态驱动器中打开“流”,并且根据将要被写到固态驱动器的数据的预期寿命向不同流发送写请求。固态驱动器能够被称为多流式固态驱动器。多流式固态驱动器确保,流中的数据被一起写在NAND块中并且与和其它流关联的数据分离。
多流固态驱动器中的多个流的使用减少了写放大。然而,随着流的数量增加,NAND管芯冲突的概率增加,这能够影响读服务质量。所述多个流能够独立地向同一NAND管芯发送读请求和写请求。例如,具有混合工作负载70%读和30%写、每个流的命令队列深度1(QD1)、每次读和写的4千位二进制字节(KiB)的数据传递的多流固态驱动器的读延时以及读和写的逻辑块地址是随机的,并且在99百分位水平的三级单元(TLC)NAND从针对4个流的124微秒增加到针对8个流的2200微秒。
通过在管芯冲突的情况下把将要被写到固态驱动器中的NAND管芯的数据存储在固态驱动器中的字节可寻址就地写入非易失性存储器中,从而防止写到NAND管芯,提高了多流固态驱动器的服务质量。
将参照以下讨论的细节描述本发明的各种实施例和方面,并且附图将会图示各种实施例。下面的描述和附图图示本发明,并且不要被解释为限制本发明。描述许多特定细节以提供对本发明的各种实施例的彻底的理解。然而,在某些实例中,公知或传统细节未被描述以便提供对本发明的实施例的简明讨论。在说明书中对“一个实施例”或“实施例”的提及意味着:结合该实施例描述的特定特征、结构或特性能够被包括在本发明的至少一个实施例中。短语“在一个实施例中”在本说明书的各种地方的出现未必全部指代同一实施例。
图1是包括按照可通信方式耦合到多流固态驱动器102的主机电路112的计算机系统100的方框图。主机电路112包括主机存储器114和中央处理单元(CPU)122,CPU 122也能够被称为处理器。一个或多个应用116(执行特定任务或任务组的程序)以及包括存储栈124和NVMe驱动程序110的操作系统142可被存储在主机存储器114中。
在实施例中,多流固态驱动器102具有企业和数据中心SSD形状因数(EDSFF),并且包括124个或更多个NAND管芯。
操作系统142是管理计算机硬件和软件(包括存储器分配和对输入/输出(I/O)装置的访问)的软件。操作系统的示例包括 和/>在/>操作系统的实施例中,存储栈124可以是包括用于多流固态驱动器102的端口/微型端口驱动程序的装置栈。
在实施例中,主机存储器114是易失性存储器。易失性存储器是这样的存储器:如果装置的电源中断,则它的状态(并且因此,存储在它里面的数据)是不确定的。动态易失性存储器需要刷新存储在该装置中的数据来保持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或某种变型(诸如,同步DRAM(SDRAM))。如本文中所述的存储器子系统可与许多存储器技术兼容,所述许多存储器技术诸如DDR3(双倍数据速率版本3,由JEDEC(联合电子装置工程委员会)在2007年6月27日最初发布)。DDR4(DDR版本4,由JEDEC在2012年9月最初公布)、DDR5(DDR版本5,在2020年7月最初公布)、LPDDR3(低功率DDR版本3,JESD209-3B,由JEDEC在2013年8月公布)、LPDDR4(LPDDR版本4,JESD209-4,由JEDEC在2014年8月最初公布)、LPDDR5(LPDDR版本5,JESD209-5A,由JEDEC在2020年1月最初公布)、WIO2(宽输入/输出版本2,JESD229-2,由JEDEC在2014年8月最初公布)、HBM(高带宽存储器,JESD235,由JEDEC在2013年10月最初公布)、HBM2(HBM版本2,JESD235C,由JEDEC在2020年1月最初公布)或HBM3(HBM版本3,当前由JEDEC在讨论中)或其他存储器技术或者存储器技术的组合以及基于这种规范的衍生或扩展的技术。可在www.jedec.org获得JEDEC标准。
通过高速串行计算机扩展总线120,例如外围部件互连高速(PCIe)总线,主机电路112能够与多流固态驱动器102通信。主机电路112管理外围部件互连高速(PCIe)总线上的通信。在实施例中,通过使用非易失性存储器高速(NVMe)标准协议的外围部件互连高速(PCIe)总线,主机系统通信。非易失性存储器高速(NVMe)标准协议定义用于主机软件通过外围部件互连高速(PCIe)总线与固态驱动器(SSD)102通信的寄存器级接口。可在www.nvmexpress.org获得NVM高速标准。可在pcisig.com获得PCIe标准。
多流固态驱动器102包括固态驱动器控制器电路104和块可寻址非易失性存储器108。读取存储在多流固态驱动器102中的块可寻址非易失性存储器108中的数据的请求可由一个或多个应用116(执行特定任务或任务组的程序)通过操作系统142中的存储栈124发出给固态驱动器控制器电路104。
多流固态驱动器102中的固态驱动器控制器电路104对从主机电路112接收的命令(例如,读、写(“程序”)、擦除命令)进行排队和处理以在块可寻址非易失性存储器108中执行操作。由固态驱动器控制器电路104从主机接口电路202接收的命令能够被称为主机输入输出(IO)命令。
图2是图1中的多流固态驱动器102的实施例的方框图。多流固态驱动器102中的固态驱动器控制器电路104包括主机接口电路202、非易失性块可寻址存储器控制器电路212、CPU 122、固件213、直接存储器存取控制器(DMAC)224、静态随机存取存储器230、动态随机存取存储器(DRAM)250和字节可寻址就地写入非易失性存储器226。固件213能够由CPU 122执行。固态驱动器控制器电路104能够被包括在现场可编程门阵列(FPGA)或专用集成电路(ASIC)中。固件213能够由处理器122执行。
逻辑块是用于访问固态驱动器102中的块可寻址非易失性存储器108的读命令和写命令的最小可寻址数据单元。逻辑块的地址通常被称为逻辑块地址(LBA)。
动态随机存取存储器250中的逻辑到物理(L2P)地址间接表252(也被称为L2P表252)存储与每个LBA对应的多流固态驱动器102中的块可寻址非易失性存储器108中的物理块地址。通常,L2P地址间接表252存储具有4千位二进制字节(KiB)间接单元(IU)粒度的块可寻址非易失性存储器物理块地址。
静态随机存取存储器(SRAM)是易失性存储器。易失性存储器是这样的存储器:如果装置的电源中断,则它的状态(并且因此,存储在它里面的数据)是不确定的。SRAM是使用锁存电路来存储每个位的一种类型的易失性存储器。SRAM通常被用作缓冲存储器,因为与动态随机存取存储器(DRAM)相比,存储在SRAM中的数据不需要被周期性地刷新。
字节可寻址就地写入非易失性存储器226的示例可包括但不限于单级或多级相变存储器(PCM)或带开关的相变存储器(PCMS)、包括硫系相变材料(例如,硫系玻璃)的非易失性类型的存储器、电阻存储器(包括金属氧化物基、氧空位基和导电桥随机存取存储器(CB-RAM))、纳米线存储器、铁电随机存取存储器(FeRAM、FRAM)、并入忆阻器技术的磁阻随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、基于自旋电子磁结存储器的装置、基于磁隧穿结(MTJ)的装置、基于DW(畴壁)和SOT(自旋轨道转移)的装置、基于晶闸管的存储装置或以上任一项的组合或其它类型的块或字节可寻址就地写入存储器。
字节可寻址就地写入非易失性存储器226还能够是具有掉电迫近能量(诸如,板载电容器)的易失性存储器,诸如集成存储缓冲器(IMB)或永久存储区域(PMB)。易失性存储器的示例包括DRAM(动态随机存取存储器)和DRAM的变型,诸如同步DRAM(SDRAM)。
块可寻址非易失性存储器108是非易失性存储器。非易失性存储器(NVM)装置是这样的存储器:即使该装置的电源中断,它的状态也是确定的。在一个实施例中,块可寻址非易失性存储器108是NAND闪存,或者更具体地讲,多阈值级NAND闪存(例如,单级单元(“SLC”)、多级单元(“MLC”)、三级单元(“TLC”)、四级单元(“QLC”)、五级单元(“PLC”)或某种其它NAND闪存)。
块可寻址非易失性存储器108包括多个NAND管芯210-1、…210-N(也被称为NAND闪存管芯)。通常,跨越多流固态驱动器102中的许多NAND管芯210-1、…210-N写数据(将数据条带化)以优化块可寻址非易失性存储器108的写带宽。
带240(也能够被称为条带)跨越所有个体NAND管芯210-1、…210-N的一个或多个块,并且经由跨越块可寻址非易失性存储器管芯210-1、…210-N的并行IO操作,这能够实现IO带宽最大化。
所述多个NAND管芯210-1、…、210-N中的每个NAND管芯上的非易失性存储器包括多个块220-1、…、220-N,每个块包括多个页。所述多个页中的每个页用于存储数据和关联的元数据。
在实施例中,每个NAND管芯210-1、…、210-N具有2048个块,每个块具有64个页,并且每个页能够存储2048字节的数据和64字节的元数据。带240能够包括所述多个块220-1、…、220-N,其中每个NAND管芯的一个块被分派给带240。具有多个NAND管芯中的多个块的带240能够被分派给流,或者NAND管芯中的一个或多个个体块能够被分派给多流固态驱动器102中的流。在其它实施例中,每个NAND管芯的超过一个块能够被分派给带240。例如,每个NAND管芯的2的n次幂(2、4、8…)个块能够被分派给带240。
固态驱动器控制器电路104中的非易失性块可寻址存储器控制器电路212对针对块可寻址非易失性存储器108从主机电路112接收的命令(例如,读、写(“程序”)、擦除命令)进行排队和处理。与主机I/O命令(例如,通过PCIe总线120从主机电路112接收的主机读命令和主机写命令)关联的数据被存储在静态随机存取存储器230中的缓冲器216中。缓冲器216还能够被称为传递缓冲器(TBUF)。接收的主机I/O命令被存储在主机接口电路202中的命令队列254中。
图3图示用于管理块可寻址非易失性存储器108和主机电路112之间的流的数据的传递的、用于字节可寻址就地写入非易失性存储器226的静态随机存取存储器230中的队列。按照与块可寻址非易失性存储器108相同的间接单元粒度,管理字节可寻址就地写入非易失性存储器226。
字节可寻址就地写入非易失性存储器226具有一批间接单元,所述一批间接单元被分派给三个队列之一:自由队列300、进行中队列302和有效队列304。
响应于接收到写到块可寻址非易失性存储器108的主机写请求,间接单元被从自由队列300分配给用于数据传递的流。在间接单元已被分派给用于数据传递的流之后,指向分配的间接单元的指针被移动到进行中队列302。
在数据已被写到分配的间接单元之后,指向分配的间接单元的指针被移动到有效队列304。在有效队列304中的分配的间接单元中的数据被写到块可寻址非易失性存储器108或被主机电路112重写之后,分配的间接单元被移动到自由队列300。如果在间接单元被写到NAND管芯210-1、…、210-N之前间接单元被主机电路112重写,则更新的主机数据可在静态随机存取存储器230中的缓冲器216中获得。如果不存在冲突,则更新的数据被从缓冲器216写到NAND管芯210-1、…、210-N。
字节可寻址就地写入非易失性存储器226提高多流固态驱动器102的服务质量(QoS)而没有每个流的带宽限制,并且随着流的数量增加而缩放。
图4是图示由固件213中的固件任务为了管理字节可寻址就地写入非易失性存储器226而执行的方法的流程图。
在块400,如果主机不活动或者字节可寻址就地写入非易失性存储器226中的自由空间低于阈值,则处理前进至块402以释放字节可寻址就地写入非易失性存储器226中的间接单元。
在块402,如果有效队列304是空的,则不存在将要被写到块可寻址非易失性存储器108的字节可寻址就地写入非易失性存储器226中的间接单元,处理前进至块400。
在块404,有效队列304不是空的,存在将要被写到块可寻址非易失性存储器108的字节可寻址就地写入非易失性存储器226中的间接单元。基于LRU(最近最少使用)、FIFO(先入先出)或NAND管芯的不活动状况,能够选择将要被写到块可寻址非易失性存储器108的来自有效队列304的间接单元。
在实施例中,通过NAND管芯上的就绪/繁忙信号的状态,能够确定NAND管芯的不活动状况。就绪/繁忙信号的状态能够由固态驱动器控制器电路104读取。选择被写的间接单元的数量取决于间接单元的大小和NAND管芯的物理布局。例如,在间接单元的大小是4KiB、NAND管芯具有双平面并且NAND管芯中的页是16KiB的实施例中,选择8个间接单元。选择的间接单元被从字节可寻址就地写入非易失性存储器226读取,并且写到块可寻址非易失性存储器108。
在块406,利用间接单元已被写入的块可寻址非易失性存储器108中的物理地址,L2P表252被更新。
在块408,选择的间接单元被从有效队列304移动到自由队列300。
图5是由固态驱动器102中的固件213中的固件任务响应于从主机电路112接收的写请求而执行的操作的流程图。
在块500,如果写请求所涉及的NAND管芯繁忙(这能够基于NAND管芯上的就绪/繁忙信号的状态来确定),则处理前进至块502。如果NAND管芯不繁忙,则处理前进至块504。
在块502,NAND管芯繁忙。与写请求关联的数据被写到字节可寻址就地写入非易失性存储器226(其还能够被称为非易失性存储器高速缓存或永久存储器高速缓存)。处理前进至块506以利用写到字节可寻址就地写入非易失性存储器226的数据的物理地点来更新L2P表252。
在块504,NAND管芯不繁忙。与写请求关联的数据被直接写到NAND管芯。处理前进至块506以利用写到NAND管芯的数据的物理地点来更新L2P表252。
在块506,在实施例中,L2P表252中的L2P条目的最高有效位(MSB)被用作与物理块地址对应的存储器的标识符。MSB的状态被用于指示数据是被存储在NAND管芯中还是被存储在字节可寻址就地写入非易失性存储器226中。例如,如果MSB的状态是逻辑‘1’,则其余位代表字节可寻址就地写入非易失性存储器226中的偏移,并且如果MSB的状态是逻辑‘0’,则其余位代表NAND管芯中的地址。
图6是由固态驱动器102中的固件213中的固件任务响应于从主机电路112接收的读请求而执行的操作的流程图。
在块600,响应于从主机电路112接收的涉及块可寻址非易失性存储器108的读请求,固态驱动器控制器电路212在L2P表252中读取与读请求中所包括的逻辑块地址对应的条目以获得块可寻址非易失性存储器108中的物理地址。
在块602,如果物理地址在字节可寻址就地写入非易失性存储器226中,则处理前进至块604。如果物理地址在块可寻址非易失性存储器108中,则处理前进至块606。
在块604,字节可寻址就地写入非易失性存储器226中的数据由固态驱动器控制器电路212中的直接存储器存取(DMA)控制器224(也被称为DMA引擎或DMA电路)从字节可寻址就地写入非易失性存储器226读取并且移动到主机电路112。
在块606,固态驱动器控制器电路212从块可寻址非易失性存储器108读取数据,并且将数据写到静态随机存取存储器230中的缓冲器216。
在块608,在数据已被写到静态随机存取存储器230中的缓冲器216之后,数据由固态驱动器控制器电路212中的DMA控制器224从缓冲器216读取并且移动到主机电路。
图7是用于处理多流固态驱动器102中的掉电恢复(PLR)事件的方法的流程图。
在主机写期间,字节可寻址就地写入非易失性存储器226和静态随机存取存储器230中的缓冲器216中的数据都是掉电迫近(PLI)安全的。因此,在掉电之前,不需要另外的掉电处理。在掉电之后的多流固态驱动器102的随后加电中,固态驱动器控制器电路104中的固件213将L2P表252恢复到在掉电之前的最新状态。通过经过首先从字节可寻址就地写入非易失性存储器226恢复数据而确保字节可寻址就地写入非易失性存储器226具有在掉电之前的逻辑块地址的最近拷贝,保持掉电恢复任务的正确性。
在块700,固态驱动器102从NAND管芯(也被称为NAND介质)210-1、…201-N重放数据。在重放期间,固态驱动器控制器电路104从块可寻址非易失性存储器108读取L2P表252的备份拷贝。然而,块可寻址非易失性存储器108中的L2P表252的备份拷贝可能不是在PLI事件之前的最近L2P表252。为了恢复在PLI事件之前的最新L2P表252,在PLI事件之前在块可寻址非易失性存储器108中写L2P表252的备份拷贝之后,固态驱动器控制器电路104重放主机写。通过读取对应带240的带日志以核查主机写(由主机接口电路202接收的来自主机电路的写操作)的逻辑块地址序列,主机写被重放。
在块702,字节可寻址就地写入非易失性存储器226在检测到PLI事件之前存储主机写。固态驱动器102重放存储在字节可寻址就地写入非易失性存储器226中的数据,也就是说,它利用字节可寻址就地写入非易失性存储器226中的主机写来更新L2P表252。
图8是包括多流固态驱动器102的计算机系统800的实施例的方框图。计算机系统800能够对应于计算装置,所述计算装置包括但不限于服务器、工作站计算机、桌上型计算机、膝上型计算机和/或平板计算机。
计算机系统800包括片上系统(SOC或SoC)804,所述SOC或SoC 804将处理器、图形、存储器和输入/输出(I/O)控制逻辑组合到一个SoC封装中。SoC 804包括:至少一个中央处理单元(CPU)模块808;存储控制器814,能够被耦合到易失性存储器826和/或非易失性存储器822;和图形处理器单元(GPU)810。在其它实施例中,存储控制器814能够位于SoC 804外部。CPU模块808包括至少一个处理器核802和级2(L2)高速缓存806。
虽然未示出,但每个处理器核(一个或多个)802能够在内部包括一个或多个指令/数据高速缓存、执行单元、预取缓冲器、指令队列、转移地址计算单元、指令解码器、浮点单元、退出单元等。根据一个实施例,CPU模块808能够对应于单核或多核通用处理器,诸如由Corporation提供的处理器。
图形处理器单元(GPU)810能够包括:一个或多个GPU核;和GPU高速缓存,能够存储用于GPU核的图形相关数据。GPU核能够在内部包括一个或多个执行单元以及一个或多个指令和数据高速缓存。另外,图形处理器单元(GPU)810能够包含图8中未示出的其它图形逻辑单元,诸如一个或多个顶点处理单元、光栅化单元、媒体处理单元和编码解码器。
在I/O子系统812内,存在一个或多个I/O适配器(一个或多个)816以将在(一个或多个)处理器核802内使用的主机通信协议转换成与特定I/O装置兼容的协议。适配器能够用于转换的一些协议包括外围部件互连(PCI)-高速(PCIe);通用串行总线(USB);串行高级技术附件(SATA)以及电气和电子工程师协会(IEEE)1594“Firewire”。
(一个或多个)I/O适配器816能够与外部I/O装置824通信,所述外部I/O装置824能够包括例如:(一个或多个)用户接口装置,包括显示器和/或触摸屏显示器840、打印机、小键盘、键盘、通信逻辑(有线和/或无线);(一个或多个)存储装置,包括硬盘驱动器(“HDD”)、固态驱动器(“SSD”)、可移动存储介质、数字视频盘(DVD)驱动器、压缩盘(CD)驱动器、独立磁盘冗余阵列(RAID)、磁带驱动器或其它存储装置。通过一个或多个总线,使用各种协议中的一种或多种协议,存储装置能够按照可通信方式和/或按照物理方式耦合在一起,所述各种协议包括但不限于SAS(串行附接SCSI(小型计算机系统接口))、PCIe(外围部件互连高速)、PCIe(外围部件互连高速)上的NVMe(NVM高速)和SATA(串行ATA(高级技术附件))。
另外,能够存在一个或多个无线协议I/O适配器。无线协议的示例除其他外被用于个域网,诸如IEEE 802.15和Bluetooth,4.0;无线局域网,诸如基于IEEE 802.11的无线协议;和蜂窝协议。
(一个或多个)I/O适配器816还能够与固态驱动器(“SSD”)102通信,SSD 102包括固态驱动器控制器电路104、主机接口电路202和块可寻址非易失性存储器108,块可寻址非易失性存储器108包括一个或多个NAND管芯210-1、…210-N。固态驱动器控制器电路104包括固件213和字节可寻址就地写入非易失性存储器226。
I/O适配器816能够包括外围部件互连高速(PCIe)适配器,所述PCIe适配器使用PCIe(外围部件互连高速)上的NVMe(NVM高速)协议通过总线120按照可通信方式耦合到多流固态驱动器102中的主机接口电路202。
易失性存储器是这样的存储器:如果装置的电源中断,则它的状态(并且因此,存储在它里面的数据)是不确定的。动态易失性存储器需要刷新存储在该装置中的数据来保持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或某种变型(诸如,同步DRAM(SDRAM))。如本文中所述的存储器子系统可与许多存储器技术兼容,所述许多存储器技术诸如DDR3(双倍数据速率版本3,由JEDEC(联合电子装置工程委员会)在2007年6月27日最初发布)。DDR4(DDR版本4,JESD79-4,由JEDEC在2012年9月最初公布)、DDR5(DDR版本5,JESD79-5,在2020年7月最初公布)、LPDDR3(低功率DDR版本3,JESD209-3B,由JEDEC在2013年8月公布)、LPDDR4(LPDDR版本4,JESD209-4,由JEDEC在2014年8月最初公布)、LPDDR5(LPDDR版本5,JESD209-5A,由JEDEC在2020年1月最初公布)、WIO2(宽输入/输出版本2,JESD229-2,由JEDEC在2014年8月最初公布)、HBM(高带宽存储器,JESD235,由JEDEC在2013年10月最初公布)、HBM2(HBM版本2,JESD235C,由JEDEC在2020年1月最初公布)或HBM3(HBM版本3,当前由JEDEC讨论)或其他存储器技术或者存储器技术的组合以及基于这种规范的衍生或扩展的技术。可在www.jedec.org获得JEDEC标准。
电源842向系统800的部件提供电力。更具体地讲,电源842通常对接到系统800中的一个或多个供电器844以向系统800的部件提供电力。在一个示例中,供电器844包括AC到DC(交流到直流)适配器以插入到壁装插座中。这种AC电力能够是可再生能源(例如,太阳能)电源842。在一个示例中,电源842包括DC电源,诸如外部AC到DC转换器。在一个示例中,电源842或供电器844包括无线充电硬件以便经由靠近充电场而充电。在一个示例中,电源842能够包括内部电池或燃料电池源。
已针对位于固态驱动器102内部的字节可寻址就地写入非易失性存储器226描述实施例。在另一实施例中,字节可寻址就地写入非易失性存储器226位于固态驱动器102外部,并且能够跨越多个固态驱动器102被共享。例如,字节可寻址就地写入非易失性存储器226能够位于易失性存储器826(例如,电池支持的易失性随机存取存储器)中,或位于非易失性存储器822中。
如本文中所示的流程图提供各种过程动作的序列的示例。流程图能够指示将要由软件或固件例程执行的操作以及物理操作。在一个实施例中,流程图能够图示能够被实现在硬件和/或软件中的有限状态机(FSM)的状态。虽然按照特定顺序或次序示出,但除非另外指定,否则动作的次序能够被修改。因此,图示的实施例应该被理解为示例,并且过程能够被按照不同次序执行,并且一些动作能够被并行地执行。另外,在各种实施例中,一个或多个动作能够被省略;因此,并非在每个实施例中需要所有动作。其它过程流程是可能的。
就在本文中描述各种操作或功能而言,它们能够被描述或定义为软件代码、指令、配置和/或数据。内容能够是直接可执行(“目标”或“可执行”形式)源代码或差异代码(“增量”或“补丁”代码)。经由其上存储有内容的一件制品,或者经由操作通信接口以通过该通信接口发送数据的方法,能够提供本文中描述的实施例的软件内容。机器可读存储介质能够使机器执行描述的功能或操作,并且包括按照可由机器(例如,计算装置、电子系统等)访问的形式存储信息的任何机构,诸如可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存装置等)。通信接口包括对接到硬连接、无线、光学等介质中的任何介质以向另一装置传输的任何机构,诸如存储总线接口、处理器总线接口、互联网连接、盘控制器等。通过提供配置参数和/或发送信号,通信接口能够被配置,以准备通信接口来提供描述软件内容的数据信号。经由发送给通信接口的一个或多个命令或信号,能够访问通信接口。
本文中描述的各种部件能够是用于执行描述的操作或功能的工具。本文中描述的每个部件包括软件、硬件或这些的组合。部件能够被实现为软件模块、硬件模块、专用硬件(例如,专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连接电路等。
除了本文中描述的内容之外,在不脱离公开的本发明的实施例和实现的范围的情况下,能够对公开的本发明的实施例和实现做出各种修改。
因此,应该在说明性而非限制性意义上解释本文中的图示和示例。应该仅通过参照下面的权利要求来衡量本发明的范围。

Claims (20)

1.一种固态驱动器,包括:
控制器电路,用于从按照可通信方式耦合到所述固态驱动器的主机系统接收命令,所述命令用于在所述固态驱动器中写数据,所述数据与流关联;
多个NAND管芯,用于存储数据,所述多个NAND管芯中的一个NAND管芯中的块被分派给所述流;和
字节可寻址就地写入非易失性存储器,用于如果所述NAND管芯繁忙则存储将要被写到所述NAND管芯中的所述块的与所述流关联的数据。
2.如权利要求1所述的固态驱动器,其中如果所述NAND管芯不繁忙,则用于所述流的数据被直接写到所述NAND管芯中的所述块。
3.如权利要求1所述的固态驱动器,其中所述字节可寻址就地写入非易失性存储器包括硫系相变材料。
4.如权利要求1所述的固态驱动器,其中所述字节可寻址就地写入非易失性存储器是电池支持的易失性随机存取存储器。
5.如权利要求1所述的固态驱动器,还包括:
易失性存储器,用于存储逻辑到物理间接表,所述逻辑到物理地址间接表中的每个条目存储其中存储所述数据的物理块地址和与所述物理块地址对应的存储器的标识符。
6.如权利要求5所述的固态驱动器,其中所述存储器是字节可寻址就地写入非易失性存储器。
7.如权利要求5所述的固态驱动器,其中所述存储器是NAND管芯。
8.一种方法,包括:
由控制器电路从按照可通信方式耦合到固态驱动器的主机系统接收命令,所述命令用于在所述固态驱动器中写数据,所述数据与流关联;
将NAND管芯中的块分派给所述流;并且
如果所述NAND管芯繁忙,则把将要被写到所述NAND管芯中的所述块的与所述流关联的数据存储在字节可寻址就地写入非易失性存储器中。
9.如权利要求8所述的方法,其中如果所述NAND管芯不繁忙,则用于所述流的数据被直接写到所述NAND管芯中的所述块。
10.如权利要求8所述的方法,其中所述字节可寻址就地写入非易失性存储器包括硫系相变材料。
11.如权利要求8所述的方法,其中所述字节可寻址就地写入非易失性存储器是电池支持的易失性随机存取存储器。
12.如权利要求8所述的方法,还包括:
将逻辑到物理地址间接表存储在易失性存储器中,所述逻辑到物理地址间接表中的每个条目存储其中存储所述数据的物理块地址和与所述物理块地址对应的存储器的标识符。
13.如权利要求12所述的方法,其中所述存储器是字节可寻址就地写入非易失性存储器。
14.如权利要求12所述的方法,其中所述存储器是NAND管芯。
15.一种系统,包括:
处理器;和
固态驱动器,包括:
控制器电路,用于从按照可通信方式耦合到所述固态驱动器的所述处理器接收用于在所述固态驱动器中执行操作的命令,所述命令与用于在所述固态驱动器中写数据的流关联;
多个NAND管芯,用于存储数据,所述多个NAND管芯中的一个NAND管芯中的块被分派给所述流;和
字节可寻址就地写入非易失性存储器,用于如果所述NAND管芯繁忙则存储将要被写到所述NAND管芯中的所述块的数据。
16.如权利要求15所述的系统,其中如果所述NAND管芯不繁忙,则用于所述流的数据被直接写到所述NAND管芯中的所述块。
17.如权利要求15所述的系统,其中所述字节可寻址就地写入非易失性存储器包括硫系相变材料。
18.如权利要求15所述的系统,其中所述字节可寻址就地写入非易失性存储器是电池支持的易失性随机存取存储器。
19.如权利要求15所述的系统,还包括:
易失性存储器,用于存储逻辑到物理间接表,所述逻辑到物理地址间接表中的每个条目存储其中存储所述数据的物理块地址和与所述物理块地址对应的存储器的标识符。
20.如权利要求15所述的系统,还包括下面的一项或多项:
显示器,按照可通信方式耦合到所述处理器;或者
电池,被耦合到所述处理器。
CN202280040310.9A 2021-04-05 2022-04-05 用于在固态驱动器中减少nand管芯冲突的方法和设备 Pending CN117897686A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/222,048 US20210223998A1 (en) 2021-04-05 2021-04-05 Method and apparatus to reduce nand die collisions in a solid state drive
US17/222048 2021-04-05
PCT/US2022/023419 WO2022216664A1 (en) 2021-04-05 2022-04-05 Method and apparatus to reduce nand die collisions in a solid state drive

Publications (1)

Publication Number Publication Date
CN117897686A true CN117897686A (zh) 2024-04-16

Family

ID=76858119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280040310.9A Pending CN117897686A (zh) 2021-04-05 2022-04-05 用于在固态驱动器中减少nand管芯冲突的方法和设备

Country Status (6)

Country Link
US (1) US20210223998A1 (zh)
EP (1) EP4320508A1 (zh)
JP (1) JP2024513234A (zh)
KR (1) KR20240004454A (zh)
CN (1) CN117897686A (zh)
WO (1) WO2022216664A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210223998A1 (en) * 2021-04-05 2021-07-22 Intel Corporation Method and apparatus to reduce nand die collisions in a solid state drive
US11907573B2 (en) * 2021-06-21 2024-02-20 Western Digital Technologies, Inc. Performing background operations during host read in solid state memory device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8103822B2 (en) * 2009-04-26 2012-01-24 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory
KR101674015B1 (ko) * 2009-06-23 2016-11-08 시게이트 테크놀로지 엘엘씨 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
KR101654774B1 (ko) * 2010-02-08 2016-09-06 시게이트 테크놀로지 엘엘씨 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체
US9026737B1 (en) * 2011-06-29 2015-05-05 Emc Corporation Enhancing memory buffering by using secondary storage
KR102057246B1 (ko) * 2013-09-06 2019-12-18 에스케이하이닉스 주식회사 메모리 중심 시스템 인터커넥트 구조
US9218283B2 (en) * 2013-12-02 2015-12-22 Sandisk Technologies Inc. Multi-die write management
US10558398B2 (en) * 2016-07-29 2020-02-11 Seagate Technology Llc Reducing read latency
US10078453B1 (en) * 2017-03-15 2018-09-18 Intel Corporation Storage system, computer program product, and method for managing a hybrid memory device system
US20190042413A1 (en) * 2018-03-02 2019-02-07 Intel Corporation Method and apparatus to provide predictable read latency for a storage device
US10956317B2 (en) * 2019-02-11 2021-03-23 International Business Machines Corporation Garbage collection in non-volatile memory that fully programs dependent layers in a target block
CN111813326B (zh) * 2019-04-12 2024-04-19 建兴储存科技(广州)有限公司 具多数据流写入的固态存储装置及其相关写入方法
US11003376B2 (en) * 2019-09-13 2021-05-11 Toshiba Memory Corporation Reconfigurable SSD storage pool
US20200089537A1 (en) * 2019-11-20 2020-03-19 Intel Corporation Apparatus and method for bandwidth allocation and quality of service management in a storage device shared by multiple tenants
JP2021152779A (ja) * 2020-03-24 2021-09-30 キオクシア株式会社 半導体記憶装置
US20210223998A1 (en) * 2021-04-05 2021-07-22 Intel Corporation Method and apparatus to reduce nand die collisions in a solid state drive

Also Published As

Publication number Publication date
JP2024513234A (ja) 2024-03-22
EP4320508A1 (en) 2024-02-14
KR20240004454A (ko) 2024-01-11
WO2022216664A1 (en) 2022-10-13
US20210223998A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
US20190042413A1 (en) Method and apparatus to provide predictable read latency for a storage device
US20190042460A1 (en) Method and apparatus to accelerate shutdown and startup of a solid-state drive
EP3696680B1 (en) Method and apparatus to efficiently track locations of dirty cache lines in a cache in a two level main memory
US8099543B2 (en) Methods of operarting memory devices within a communication protocol standard timeout requirement
CN113168374A (zh) 写入命令在分区命名空间中的保持
US12019558B2 (en) Logical to physical address indirection table in a persistent memory in a solid state drive
CN103838676B (zh) 数据存储系统、数据存储方法及pcm桥
KR20200086472A (ko) 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
US20220229722A1 (en) Method and apparatus to improve performance of a redundant array of independent disks that includes zoned namespaces drives
US20210216239A1 (en) Host controlled garbage collection in a solid state drive
US12014081B2 (en) Host managed buffer to store a logical-to physical address table for a solid state drive
KR102544162B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
NL2030989B1 (en) Two-level main memory hierarchy management
CN117897686A (zh) 用于在固态驱动器中减少nand管芯冲突的方法和设备
EP3772682A1 (en) Method and apparatus to improve write bandwidth of a block-based multi-level cell non-volatile memory
US10747439B2 (en) Method and apparatus for power-fail safe compression and dynamic capacity for a storage device
US20220083280A1 (en) Method and apparatus to reduce latency for random read workloads in a solid state drive
CN117836751A (zh) 使用存储器装置中的存储器存取命令队列提高存储器性能
EP3842949B1 (en) Read quality of service for non-volatile memory
CN114664361A (zh) 利用nand缓冲器进行无dram的多级单元编程
KR20180121733A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20200394134A1 (en) Data storage device and operating method thereof
CN113360088A (zh) 基于硬件的相干性检查技术

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination