首页> 中国专利> 用于存储器子系统的媒体管理的单独核心

用于存储器子系统的媒体管理的单独核心

摘要

本申请案涉及用于存储器子系统的媒体管理的单独核心。存储器子系统的控制器可包含用于垃圾收集程序的第一处理核心和第二处理核心。所述第一处理核心可针对所述存储器子系统的多个传送单元执行与垃圾收集程序的第一阶段的读取过程相关联的一或多个操作的第一集合。所述第二处理核心可执行与所述垃圾收集程序的所述第一阶段的写入过程相关联的一或多个操作的第二集合,其中一或多个操作的所述第二集合与一或多个操作的所述第一集合是同时的。

著录项

  • 公开/公告号CN113126900A

    专利类型发明专利

  • 公开/公告日2021-07-16

    原文格式PDF

  • 申请/专利权人 美光科技公司;

    申请/专利号CN202011550335.2

  • 发明设计人 A·D·比安可;J·P·特拉韦尔;

    申请日2020-12-24

  • 分类号G06F3/06(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人王龙

  • 地址 美国爱达荷州

  • 入库时间 2023-06-19 11:52:33

说明书

本专利申请案要求比安克(Bianco)等人在2019年12月30日申请的标题为“用于存储器子系统的媒体管理的单独核心(SEPARATE CORES FOR MEDIA MANAGEMENT OF AMEMORY SUB-SYSTEM)”的第16/730,886号美国专利申请案的优先权,所述美国专利申请案转让给本受让人,并且明确地以全文引用的方式并入本文中。

技术领域

技术领域涉及用于存储器子系统的媒体管理的单独核心。

背景技术

一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。

发明内容

描述一种方法。所述方法可包含通过用于存储器子系统的控制器的第一处理核心来针对所述存储器子系统的多个传送单元执行与垃圾收集程序的第一阶段的读取过程相关联的一或多个操作的第一集合,及通过用于所述存储器子系统的所述控制器的第二处理核心并且与一或多个操作的所述第一集合同时地执行与所述垃圾收集程序的所述第一阶段的写入过程相关联的一或多个操作的第二集合。

描述一种系统。所述系统可包含多个存储器组件和处理装置,所述处理装置与所述多个存储器组件操作性地耦合以:通过所述处理装置的第一处理核心来针对所述多个存储器组件执行与垃圾收集程序的第一阶段相关联的一或多个读取操作,及通过所述处理装置的第二处理核心并且与所述一或多个读取操作同时地执行与所述垃圾收集程序的所述第一阶段相关联的一或多个写入操作。

描述一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可包含指令,所述指令在由处理器执行时使得所述处理器:通过用于存储器子系统的控制器的第一处理核心来针对所述存储器子系统的多个传送单元执行与垃圾收集程序的第一阶段的读取过程相关联的一或多个操作的第一集合;及通过用于所述存储器子系统的所述控制器的第二处理核心并且与一或多个操作的所述第一集合同时地执行与所述垃圾收集程序的所述第一阶段的写入过程相关联的一或多个操作的第二集合。

附图说明

根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,附图不应视为将本公开限制于具体实施例,而是仅用于解释和理解。

图1说明根据本公开的一些实例的包含存储器子系统的计算系统的实例。

图2是根据本公开的一些实例的用于存储器子系统的媒体管理的单独核心的实例方法的方法图。

图3是其中可操作用于垃圾收集的单独处理核心的实例系统的框图。

图4是根据本公开的一些实例的用于存储器子系统的媒体管理的单独核心的实例方法的方法图。

图5是其中可操作本公开的实例的实例计算机系统的框图。

具体实施方式

本公开的方面涉及根据本公开的一些实例的用于存储器子系统的媒体管理的单独核心。存储器子系统可以是存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供要存储在存储器子系统处的数据,并且可以请求从存储器子系统中检索数据。

存储器装置可为非易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。每个裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,“与非”(NAND)装置),每一平面由一组物理块组成。每一块由页集合组成。每一页由存储数据位的存储器单元集合组成。对于一些存储器装置,例如NAND装置,块是可擦除的最小区域,且块内的页无法个别地擦除。对于此类装置,一次一个块地执行擦除操作。块的页可含有有效数据、无效数据或无数据。无效数据是标记为过时的数据,因为所述数据的新版本存储在所述存储器装置上。无效数据包含先前写入但不再与有效逻辑地址(例如主机系统在物理到逻辑(P2L)映射表中所参考的逻辑地址)相关联的数据。有效数据是正存储在存储器装置上的此类数据的最新版本。存储器子系统可基于例如从操作系统接收到的信息,将数据标记为无效。不含数据的页包含先前已擦除且尚未写入到的页。

存储器子系统控制器可执行用于媒体管理算法(例如耗损均衡、刷新、垃圾收集、擦除等)的操作。块可具有含有有效数据的一些页及含有无效数据的一些页。为了避免等待块中的所有页具有无效数据以便擦除和再用所述块,可调用下文称为“垃圾收集”的算法,以允许所述块被擦除和释放,作为用于后续写入操作的自由块。垃圾收集是一组媒体管理操作,其包含例如:选择含有有效及无效数据的块;选择所述块中含有有效数据的页;将所述有效数据复制到新位置(例如,另一块中的自由页);将先前选择的页中的数据标记为无效;及擦除选定块。

下文的“垃圾收集”是指选择块;将有效数据从选定块重写到另一块;及擦除存储在所述选定块处的所有无效数据及有效数据。可将来自多个选定块的有效数据复制到较小数目个其它块,且可接着擦除所述选定块。因此,可增加已经擦除的块的数目,使得更多的块可用于存储来自主机系统的后续数据。

在垃圾收集期间,所述块的要擦除的有效数据基于存储器装置控制器发出的一或多个读取命令而起初经读取到缓冲器中并且由缓冲器存储,且擦除对应的页(例如其上含有有效数据的页)。可在擦除其上含有有效数据的页之前将有效数据写入(例如重写)到存储器装置(例如到存储器装置的不同页)。为了将有效数据写入到一位置(例如存储器装置的不同页),存储器子系统控制器发出写入命令,每一写入命令指示有效数据经写入到的存储器地址(例如目的地存储器地址)。在一些垃圾收集程序中,一旦对应的读取命令已完成,就发出写入命令。即,源存储器地址(例如要擦除的页上的存储器地址)处的用于数据的读取命令。

在传统存储器子系统中,控制器可包含单个处理核心。所述单个处理核心可执行与垃圾收集程序的读取过程和垃圾收集程序的写入过程相关联的操作。在此类状况下,存储器子系统可包含数量增加的开销,使得控制器的单个处理核心执行垃圾收集程序的每一操作。即,控制器的单个处理核心的算法可由于单个处理核心利用垃圾收集程序的多个过程的处理器循环而增加处理时间,所述多个过程例如识别用于垃圾收集的存储器地址并确定所述数据是脏数据还是失效数据。在一些状况下,找到有效数据、读取有效数据和准备要写入的有效数据可利用多个处理器循环。

此类技术(例如利用单个处理核心)可使得存储器子系统在垃圾收集程序期间经历性能损失,从而可增加其它操作的时延和用于垃圾收集的时间。包含单核处理器的存储器子系统可降低存储器子系统的总性能,从而可使得经历受损读取、写入和擦除速度(例如由于读取、写入或擦除操作的延迟)。

本公开的方面通过具有包含用于垃圾收集程序的单独的处理核心的存储器子系统来解决以上和其它不足,进而在多个核心之间共享职责以在垃圾收集程序期间改进存储器子系统的性能。举例来说,存储器子系统可在控制器中包含两个(或多于两个)处理核心。在此类状况下,添加第二处理核心可通过在两个处理核心之间划分操作使得控制器能够处置与垃圾收集程序相关联的多个操作。举例来说,两个处理核心可各自并行地(例如同时)执行用于垃圾收集程序的不同操作。即,一个处理核心可执行与垃圾收集程序的读取过程相关联的操作,并且另一处理核心可执行垃圾收集程序的写入过程。

通过将计算过程分流到单独的核心(例如,第二处理核心),存储器子系统可并行地执行操作,进而改进存储器子系统的性能、改进服务质量及增加读取、写入以及擦除速度。实施用于垃圾收集程序的单独核心可改进存储器子系统的总效率,从而可使得存储器子系统经历经改进处理时间。

首先在参考图1描述的计算环境的上下文中描述本公开的特征。首先在参考图2到4所描述的方法和框图的上下文中描述本公开的特征。本公开的这些和其它特征此外由计算机系统说明且参考所述计算系统加以描述,所述计算系统涉及用于参图5考所描述的存储器子系统的媒体管理的单独核心。

图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个非易失性存储器装置(例如存储器装置130)、一或多个易失性存储器装置(例如存储器装置140),或其组合。

存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡,和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及非易失性DIMM(NVDIMM)。

计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。

计算系统100可包含与一或多个存储器子系统110耦合的主机系统105。在一些实例中,主机系统105与不同类型的存储器子系统110耦合。图1说明与一个存储器子系统110耦合的主机系统105的一个实例。如本文中所使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。

主机系统105可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统105使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。

主机系统105可使用物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、USB接口、光纤通道、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如支持双数据速率(DDR)的DIMM套接字接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可用于在主机系统105与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统105耦合时,主机系统105可进一步利用非易失性存储器快速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统105之间传送控制、地址、数据和其它信号的接口。

存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态RAM(DRAM)和同步DRAM(SDRAM)。

非易失性存储器装置(例如存储器装置130)的一些实例包含NAND型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含(例如)二维NAND(2D NAND)和三维NAND(3DNAND)。

存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单电平单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多电平单元(MLC)、三电平单元(TLC)和四电平单元(QLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。

尽管描述非易失性存储器装置,例如NAND型快闪存储器,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、或非(NOR)快闪存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM),和电可擦除可编程ROM(EEPROM)。

存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻逻辑电路系统(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或其它合适的处理器。

存储器子系统控制器115可包含处理器120(例如处理装置),其经配置以执行存储在本地存储器125中的指令。在所说明实例中,存储器子系统控制器115的本地存储器125包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程(包含处置存储器子系统110与主机系统105之间的通信)的指令。

在一些实例中,本地存储器125可包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器125还可包含用于存储微码的ROM。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。

一般来说,存储器子系统控制器115可从主机系统105接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、误差检测和误差校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统105通信。主机接口电路系统可将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统105的信息。

存储器子系统110还可包含未说明的额外电路系统或组件。在一些实例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)以及地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址,并对地址进行解码以存取存储器装置130。

在一些实例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含多个处理器120,例如处理器A 150和处理器B 155。处理器A150包含输入/输出(I/O)核心,且处理器B 155可包含闪存转换层(FTL)核心160。处理器A150可针对存储器子系统的数据块(例如传送单元(TU))执行与垃圾收集程序的一个过程(例如读取过程)相关联的操作。处理器B 155可执行与垃圾收集程序的另一过程(例如写入过程)相关联的操作,使得与写入过程相关联的操作可与同读取过程相关联的操作同时执行。通过在两个处理核心之间划分垃圾收集程序,处理器A 150和处理器B 155可并行地执行操作。

在一些实例中,存储器子系统控制器115包含处理器A 150和处理器B 155的至少一部分。举例来说,存储器子系统控制器115可包含处理器120(例如处理装置),其经配置以执行存储在本地存储器125中的指令以用于执行本文中所描述的操作。在一些实例中,处理器A 150和处理器B 155是主机系统105、应用或操作系统的一部分。

在传统的系统中,处理时间的增加可归因于与识别用于垃圾收集程序的数据块相关联的开销。举例来说,存储器子系统控制器115可多次反复扫描多个数据块,进而增加存储器子系统110的处理时间。通过实施处理器A 150和处理器B 155,处理器B 155可执行与垃圾收集程序的一部分(例如垃圾收集程序的写入过程)相关联的操作,且无归因于等待完成垃圾收集程序的其它部分(例如垃圾收集程序的读取过程)的操作而造成的开销。下文描述关于处理器A 150和处理器B 155的操作的其它细节。

图2是根据本公开的一些实例的利用用于存储器子系统的媒体管理的单独核心的实例方法200的方法图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实例中,方法200由图1的处理器A 150和处理器B 155执行。尽管以特定序列或次序来展示,但是除非另有指定,否则可修改所述过程的次序。因此,所说明实例应仅作为实例理解,并且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实例中省略一或多个过程。因此,在每个实例中并不需要所有过程。其它过程流程是可能的。

在操作205处,处理装置可针对存储器子系统的TU的集合通过存储器子系统的控制器的第一处理核心来执行与垃圾收集程序的第一阶段的读取过程相关联的一或多个操作的第一集和。在一些实例中,一或多个操作的第一集合可包含识别用于存储器子系统的TU的集合的相应源地址,其中TU的集合中的每一个TU包括有效数据。在一些实例中,一或多个操作的第一集合可包含发出与垃圾收集程序相关的读取命令的集合,每一读取命令包括用以读取存储器子系统的相应源地址处的TU的集合中的一个TU的指令。在一些实例中,TU的集合可对应于数据集,并且一或多个操作的第一集合可包含至少部分地基于数据集含有无效数据而将所述数据集分配到净化状态。

在一些实例中,方法200可包含针对存储器组件的集合通过处理装置的第一处理核心执行与垃圾收集程序的第一阶段相关联的一或多个读取操作。在一些实例中,方法200可包含将用于TU的集合中的第一TU的写入请求发送到写入请求队列的集合中的第一写入请求队列,作为一或多个读取操作的一部分,第一写入请求队列与不同于写入请求队列的集合中的第二写入请求队列的第二优先级的第一优先级相关联。

在操作210处,处理装置可通过用于存储器子系统的控制器的第二处理核心并且与一或多个操作的第一集合同时地执行与垃圾收集程序的第一阶段的写入过程相关联的一或多个操作的第二集合。在一些实例中,一或多个操作的第二集合可包含至少部分地基于完成数据集的全部读取命令而将净化状态中的数据集分配到擦除池。在一些实例中,一或多个操作的第二集合可包含发出与垃圾收集程序相关的写入命令的集合,每一写入命令包括用以将TU的集合中的一个TU写入到存储器子系统的相应目的地地址的指令。在一些实例中,写入命令的集合可根据垃圾收集程序的写入速率发出。在一些实例中,写入命令的集合可至少部分地基于用于写入命令的集合中的每一写入命令的相应优先级发出。

在一些实例中,方法200可包含通过处理装置的第二处理核心并且与一或多个读取操作同时地执行与垃圾收集程序的第一阶段相关联的一或多个写入操作。在一些实例中,方法200可包含针对TU的集合中的一或多个TU执行清除操作,作为一或多个写入操作的一部分,用于一或多个TU的清除操作与优先级高于第二写入请求队列的第一写入请求队列相关联。

在一些实例中,方法200可包含运用来自TU的集合中的至少一个TU的数据的一部分来填充用于清除操作的一或多个TU(例如存储器页或数据块),作为一或多个写入操作的一部分,其中一或多个TU与第一或第二写入请求队列中的相应写入请求相关联。

图3是其中可操作用于垃圾收集的单独处理核心的实例系统的框图300。框图300可包含存储器控制器305。存储器控制器305可包含核心管理器310,所述核心管理器可包含I/O核心315和FTL核心320。在一些实例中,I/O核心315可对应于参考图1描述的处理器A150。在一些实例中,FTL核心320可对应于参考图1描述的处理器B155。框图300还可包含主机系统335和后端管理器340。

在一些实例中,核心管理器310可包含多个处理核心。举例来说,核心管理器可包含I/O核心315和FTL核心320。I/O核心315可并行地(例如同时或在时间上重叠)执行与垃圾收集程序的读取过程相关联的操作325,FTL核心320可执行与垃圾收集程序的写入过程相关联的操作330。在一些状况下,I/O核心315可与FTL核心320通信。

在一些状况下,I/O核心315或FTL核心320可在操作325期间启用或停用垃圾收集程序。举例来说,I/O核心315可维持阈值数目个经历垃圾收集程序的数据块。阈值可包含可启用垃圾收集程序的数据块的数目。垃圾收集程序的启用可在I/O核心315与FTL核心320之间传达。举例来说,所述启用可经由将当前垃圾收集写入速率从I/O核心315通告到FTL核心320来传达。

I/O核心315的操作325可选择垃圾收集程序模式。举例来说,所述模式可指示可针对垃圾收集程序识别的数据集(例如操作模式)以及可进行数据集的垃圾收集程序的速率(例如运行模式)。在一些实例中,静态耗损均衡可通过将当前操作模式从I/O核心315通告到FTL核心320来传达。在此类状况下,I/O核心315可控制垃圾收集的速率而不控制数据集的识别,进而允许FTL核心320同时执行其它操作。在其它实例中,I/O核心315或FTL核心320可预测对有效数据执行垃圾收集程序的工作量。所述预测可用于资源平衡和速率控制。

在一些实例中,可进行数据集的垃圾收集程序的速率(例如运行模式)可通过I/O核心315计算。虽然可针对主机写入域(例如主机系统335)并且以基于主机写入域的频率计算速率,但用以执行此计算的开销可保持在写入数据路径之外。在一些状况下,可将P2L丢弃从媒体读取到缓冲器中以在数据集内找到有效数据。

I/O核心315的操作325可包含选择用于垃圾收集程序的数据块的触发。选择数据块的算法可包含在I/O核心315内的数据集管理模块中。I/O核心315还可识别何时可选择用于垃圾收集程序的新的数据集。举例来说,当当前数据集的有效的TU计数(VTC)是零时,可识别新的数据集。VTU可以是可作为可由主机系统335参考的有效数据映射的数据集中的TU的数目的实例。在一些状况下,当数据集的每一P2L条目重复垃圾收集程序时,可识别新的数据集。

在一些实例中,I/O核心315可定位有效数据(例如识别源地址)。有效数据的源地址可在媒体上找到,而数据集的有效数据计数可以是可用的。在一些实例中,I/O核心315可读取有效数据。举例来说,一旦可识别有效数据的源地址,那么读取过程可经发出以将数据从媒体复制到中间缓冲器中。在此类状况下,I/O核心315可发出与垃圾收集程序相关的读取命令以读取源地址处的数据集。

I/O核心315的操作325可发出写入请求。当完成读取过程时,数据集的写入过程可经发出以将数据集移动到媒体上的不同位置。写入请求可提前列队使得FTL核心320在需要垃圾收集程序时不必等待。在一些状况下,写入请求可基于写入请求的优先级而经插入到队列中。在此类状况下,I/O核心315可将用于数据集的写入请求发送到写入请求队列。写入请求可与不同于不同写入请求的优先级的优先级相关联。完整写入请求队列可产生限制垃圾收集程序读取管线级的背压。媒体上的位置可与写入请求包含在一起以允许条件映射表更新,例如具有垃圾收集写入请求的逻辑到物理(L2P)/VTC更新。

在一些实例中,I/O核心315的操作325可维持一连串的写入请求。举例来说,经接收以移动数据集的写入请求可按数据集最初由主机系统335写入的次序发出,使得性能在垃圾收集程序中的数据块与不具有垃圾收集的数据块之间是类似的。在一些状况下,I/O核心315可检测具有无效数据的数据块。在此类状况下,具有无效数据的数据块不经历垃圾收集程序,可停止用于无效数据的块的垃圾收集程序,或两者。如果数据集含有无效数据,那么I/O核心315可将数据集分配到净化状态。

核心管理器310可包含第二处理核心。举例来说,核心管理器310可包含FTL核心320,所述FTL核心可执行操作330。操作330可包含确保相对于主机系统335写入速率的垃圾收集写入速率是在低优先级垃圾收集写入请求队列上。在一些状况下,写入命令可由FTL核心320发出。在此类状况下,写入命令可基于垃圾收集写入速率发出。在其它实例中,相较于其它写入命令的优先级,可基于所述写入命令的优先级发出所述写入命令。

在一些状况下,核心之间可存在一或多个请求队列,接收核心可以优先排序的次序拉动来自所述核心的请求。举例来说,FTL核心320可促进高优先级垃圾收集写入请求队列上的来自客户端的清除请求。在此类状况下,FTL核心320可执行用于数据集的清除操作,其中清除操作可与相比于不同写入请求队列(例如低优先级垃圾收集写入请求队列)具有较高优先级的写入请求队列(例如高优先级垃圾收集写入请求队列)相关联。FTL核心320可运用来自其它数据块的数据来填充用于清除操作的数据集。

在包含两个写入请求队列(例如高优先级垃圾收集写入请求队列和低优先级垃圾收集写入请求队列)的实例中,垃圾收集程序清除可经插入或分配到最低优先级队列中,使得可在执行写入的核心管理器310的处理器看到并且处理清除请求之前完成在清除请求之前的所有工作(例如命令、请求、主机操作)。在一些状况下,当用户端(例如垃圾收集或其它内部写入)请求写入并且清除的所有数据还经提交到高优先级请求队列时,清除请求可经添加到高优先级请求队列。

如果用户数据是可用的,那么清除可使用填充数据或填充有来自垃圾收集写入请求队列中的一个的额外用户数据。如果不存在可用的额外用户数据,那么使用填充数据可以是可接受的。填充数据可以是经添加到后端命令以满足操作的聚合准则的垃圾数据。垃圾数据可为固定模式、来自其它缓冲器的失效数据,或两者。在一些状况下,填充数据不可能是用户数据。在一些状况下,如果请求异步功率损耗(APL)安全性,那么可发送用于清除的完成响应。举例来说,如果在主机系统未通知驱动器即将发生功率损耗的情况下或在此通知之后没有足够的正常运行时间的情况下去除功率,那么其被称为APL事件。在其它实例中,在完成垃圾收集程序写入之后,FTL核心320可促进有条件的L2P/VTC/日志更新。

后端管理器340可与存储器控制器305通信。举例来说,后端管理器340可将读取响应发送到存储器控制器305。在此类状况下,后端管理器340可发射指示读取整个数据集的消息,并且可擦除无效数据。举例来说,后端管理器340可与FTL核心320通信以基于针对数据集完成所有读取命令而将处于净化状态的数据集分配到擦除池。

图4是根据本公开的一些实例的用于存储器子系统的媒体管理的单独核心的实例方法400的方法图。方法400可通过处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实例中,方法400可由图1的处理器A 150和处理器B 155或图3的核心管理器310执行。尽管以特定序列或次序来展示,但是除非另有指定,否则可修改所述过程的次序。因此,所说明实例应仅作为实例理解,并且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实例中省略一或多个过程。因此,在每个实例中并不需要所有过程。其它过程流程是可能的。

在操作405处,核心管理器可启用垃圾收集程序。核心管理器的I/O核心和核心管理器的FTL核心可并行地操作,进而缩减处理时间并且改进存储器子系统的总性能。

在操作410处,核心管理器的I/O核心可执行与垃圾收集程序的读取过程相关联的操作。举例来说,I/O核心可针对存储器子系统的数据块执行与垃圾收集程序的读取过程相关联的一或多个操作。

在操作415处,核心管理器的FTL核心可执行与垃圾收集程序的写入过程相关联的操作。举例来说,I/O FTL核心可针对存储器子系统的数据块执行与垃圾收集程序的写入过程相关联的一或多个操作。执行与写入过程相关联的操作可与操作410同时(例如至少部分地在时间上重叠)进行。在一些状况下,执行与写入过程相关联的操作可在操作410之后进行。

在操作420处,核心管理器的I/O核心可针对垃圾收集程序识别源地址,举例来说,I/O核心可针对存储器子系统的数据块识别相应源地址。在此类状况下,数据块包含有效数据。与读取过程相关联的一或多个操作可包含识别源地址。

在操作425处,核心管理器的I/O核心可发出读取命令。举例来说,I/O核心可发出与垃圾收集程序相关的读取命令。在此类状况下,每一读取命令可包含用以读取存储器子系统的相应源地址处的数据块中的一个的指令。与读取过程相关联的一或多个操作可包含发出读取命令。

在操作430处,核心管理器的FTL核心可发出写入命令。举例来说,FTL核心可发出与垃圾收集程序相关的写入命令。在此类状况下,每一写入命令可包含用以将数据块中的一个写入到存储器子系统的相应目的地地址的指令。在一些状况下,可根据用于垃圾收集程序的写入速率发出写入命令。在其它实例中,可基于写入命令相对于其它写入命令的优先级发出写入命令。在一些状况下,发出写入命令可与操作425并行地进行。在其它实例中,发出写入命令可在操作425之后进行。

在操作435处,核心管理器的I/O核心可将数据分配到净化状态。举例来说,I/O核心可基于含有无效数据的数据集将所述数据集分配到净化状态。与读取过程相关联的一或多个操作可包含将数据分配到净化状态。

在操作440处,核心管理器的FTL核心可将数据分配到擦除池。举例来说,FTL核心可基于针对数据集完成所有读取命令而将处于净化状态的数据集分配到擦除池。与写入过程的相关联的一或多个操作可包含将数据分配到擦除池。在一些状况下,将数据分配到擦除池可与操作435并行地进行。在其它实例中,将数据分配到擦除池可在操作435之后进行。

在操作445处,核心管理器的FTL核心可执行清除操作。举例来说,FTL写入可执行清除操作,作为写入命令的一部分。清除操作可与数据集相关联,其中写入请求队列相比于不同写入请求队列(例如低优先级垃圾收集写入请求队列)的优先级具有较高优先级(例如高优先级垃圾收集写入请求队列)。在一些状况下,在操作445处,FTL核心可运用来自数据块的数据填充用于清除操作的数据集。用于清除操作的数据集的填充可以是写入操作的部分。

图5说明根据本文中所公开的实例的支持用于存储器子系统的媒体管理的单独核心的计算机系统500的实例机器。计算机系统500可包含用于使得机器执行本文中所描述的技术中的任何一或多个的指令集。在一些实例中,计算机系统500可对应于包含存储器子系统(例如参考图1描述的存储器子系统110)、与存储器子系统耦合或利用存储器子系统的主机系统(例如参考图1描述的主机系统105),或可用于执行控制器的操作(例如以执行操作系统以执行对应于参考图1描述的处理器A 150和处理器B 155的操作)。在一些实例中,机器可与局域网(LAN)、内联网、外联网及/或因特网中的其它机器连接(例如,联网)。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、开关或桥接器或能够(依序或以其它方式)执行指定由所述机器采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但是术语“机器”还可包含单独地或共同地执行指令集(或多个指令集)以执行本文中讨论的任何一或多种方法的机器的任何集合。

实例计算机系统500可包含处理装置505、主存储器510(例如,ROM、快闪存储器、例如SDRAM或Rambus DRAM(RDRAM)的DRAM等)、静态存储器515(例如快闪存储器、静态RAM(SRAM)等),以及数据存储系统525,其经由总线545彼此通信。

处理装置505表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置505也可以是一或多个专用处理装置,例如ASIC、FPGA、DSP、网络处理器等等。处理装置505经配置以执行用于实施本文中所论述的操作和步骤的指令535。计算机系统500可进一步包含网络接口装置520以在网络540上通信。

数据存储系统525可包含机器可读存储媒体530(也称为计算机可读媒体),其上存储有一或多组指令535或体现本文中所描述的方法或功能中的任何一或多种的软件。指令535还可在其由计算机系统500执行期间完全地或至少部分地驻存在主存储器510内及/或处理装置505内,主存储器510及处理装置505也构成机器可读存储媒体。机器可读存储媒体530、数据存储系统525及/或主存储器510可对应于存储器子系统。

在一个实例中,指令535包含用以实施对应于核心管理器550(例如参考图1描述的处理器A 150和处理器B 155)的功能性的指令。虽然机器可读存储媒体530被展示为单个媒体,但术语“机器可读存储媒体”可包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还可包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多种的任何媒体。术语“机器可读存储媒体”可包含但不限于固态存储器、光学媒体以及磁性媒体。

已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是产生期望的结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)量的数据为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、ROM、RAM、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,并不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前述说明书中,已参考其特定实例描述了本公开的实例。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号