维持用于存储器子系统的媒体管理的序列性的制作方法

文档序号:25586262发布日期:2021-06-22 17:01阅读:71来源:国知局
维持用于存储器子系统的媒体管理的序列性的制作方法
交叉参考本专利申请案主张由比安科(bianco)在2019年12月19日申请的标题为“维持用于存储器子系统的媒体管理的序列性(maintainingsequentialityformediamanagementofamemorysub-system)”的第16/721,704号美国专利申请案的优先权,所述美国专利申请案被转让给其受让人且以其全文引用方式明确并入本文中。
技术领域
涉及维持用于存储器子系统的媒体管理的序列性。
背景技术
:存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为(例如)非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统在存储器组件处存储数据及从存储器组件检索数据。技术实现要素:描述一种方法。在一些实例中,所述方法可包含:根据读取序列发出与多个传送单元的一组媒体管理操作有关的多个读取命令,每一读取命令包括用于读取存储器子系统的源地址处的所述传送单元中的一者的指令;存储与所述组媒体管理操作相关联的多个条目,每一条目包括关于所述传送单元中的一者的所述组媒体管理操作的状态,其中所述读取序列隐含于所述多个条目中;及至少部分基于所述多个条目及所述读取序列发出与所述组媒体管理操作有关的多个写入命令,每一写入命令包括用于将所述传送单元中的一者写入到所述存储器子系统的相应目的地址的指令。描述一种系统。在一些实例中,所述系统可包含:多个存储器装置;及处理装置,其可操作地与所述多个存储器装置耦合以:接收与一组媒体管理操作有关的所述多个存储器装置的多个读取响应;及根据读取序列存储与所述组媒体管理操作相关联的多个条目,每一条目包括关于所述多个存储器装置中的一个存储器装置的所述组媒体管理操作的状态。描述一种非暂时性计算机可读存储媒体。在一些实例中,所述非暂时性计算机可读存储媒体可包含指令,所述指令在由处理装置执行时致使所述处理装置:根据读取序列发出与多个传送单元的一组媒体管理操作有关的多个读取命令,每一读取命令包括用于读取存储器子系统的源地址处的所述传送单元中的一者的指令;存储与所述组媒体管理操作相关联的多个条目,每一条目包括关于所述传送单元中的一者的所述组媒体管理操作的状态,其中所述读取序列隐含于所述多个条目中;及至少部分基于所述多个条目及所述读取序列发出与所述组媒体管理操作有关的多个写入命令,每一写入命令包括用于将所述传送单元中的一者写入到所述存储器子系统的相应目的地址的指令。附图说明将从下文给出的详细描述及本发明的各种实施例的附图更完全理解本发明。然而,图式不应被视为将本发明限制于特定实施例,而是仅供解释及理解。图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)、双列直插式存储器模块(dimm)接口(例如支持双倍数据率(ddr)的dimm套接字接口)等。物理主机接口可用于在主机系统105与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统105耦合时,主机系统105可进一步利用非易失性存储器高速(nvme)接口存取存储器组件(例如存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统105之间传递控制、地址、数据及其它信号的接口。存储器装置可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如存储器装置140)可为(但不限于)随机存取存储器(ram),例如动态ram(dram)及同步dram(sdram)。非易失性存储器装置(例如存储器装置130)的实例包含nand型快闪存储器。非易失性存储器装置的另一实例是原位写入存储器,例如三维交叉点(“3d交叉点”)存储器。交叉点非易失性存储器阵列可基于体电阻变化连同可堆叠交叉栅格式数据存取阵列执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中可在不事先擦除非易失性存储器单元的情况下编程非易失性存储器单元。存储器装置130中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元(例如单电平单元(slc))可每单元存储一个位。其它类型的存储器单元(例如多电平单元(mlc)、三电平单元(tlc)及四电平单元(qlc))可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分及mlc部分、tlc部分或qlc部分。存储器装置130的存储器单元可经分组为页,其可指代用于存储数据的存储器装置的逻辑单位。就一些类型的存储器(例如nand)来说,页可经分组以形成块。尽管描述了例如nand型快闪存储器的非易失性存储器装置,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选择存储器、其它基于硫属化物的存储器、铁电ram(feram)、磁ram(mram)、“或非(nor)”快闪存储器、电可擦除可编程rom(eeprom)。存储器子系统控制器115(或简称控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据及其它此类操作的操作。存储器子系统控制器115可包含例如一或多个集成电路及/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适处理器。存储器子系统控制器115可包含经配置以执行存储于本地存储器125中的指令的处理器120(例如处理装置)。在说明实例中,存储器子系统控制器115的本地存储器125包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程及例程(包含处置存储器子系统110与主机系统105之间的通信)的指令的嵌入式存储器。在一些实例中,本地存储器125可包含存储存储器指针、提取数据等的存储器寄存器。本地存储器125还可包含用于存储微代码的只读存储器(rom)。虽然已将图1中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本发明的另一实例中,存储器子系统110不包含存储器子系统控制器115,而是可依赖外部控制(例如,由外部主机提供或由与存储器子系统分离的处理器或控制器提供)。一般来说,存储器子系统控制器115可从主机系统105接收命令或操作且可将命令或操作转换成指令或适当命令以实现对存储器装置130的期望存取。存储器子系统控制器115可负责与存储器装置130相关联的其它操作,例如磨损均衡操作、废弃项目收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作及逻辑地址(例如逻辑块地址(lba)、命名空间)与物理地址(例如物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含经由物理主机接口与主机系统105通信的主机接口电路系统。主机接口电路系统可将从主机系统接收的命令转换成存取存储器装置130的命令指令及将与存储器装置130相关联的响应转换成用于主机系统105的信息。存储器子系统110还可包含未说明的额外电路系统或组件。在一些实例中,存储器子系统110可包含高速缓存或缓冲器(例如dram)及地址电路系统(例如行解码器及列解码器),其可从存储器子系统控制器115接收地址且解码地址以存取存储器装置130。在一些实例中,存储器装置130包含本地媒体控制器135,其连同存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是管理型存储器装置,其是与用于媒体管理的本地控制器(例如本地控制器135)组合于相同存储器装置封装内的原始存储器装置。管理型存储器装置的实例是管理型nand(mnand)装置。存储器子系统110包含可维持用于媒体管理的序列性的记分板管理器150。举例来说,记分板管理器150可执行废弃项目收集操作,数据通过废弃项目收集操作来独立于任何直接主机交互从一个位置(例如源存储器地址)迁移到另一位置(例如目标或目的存储器地址)。在一些实例中,记分板管理器150可将有效数据打包在一起以释放空间用于新写入、用于错误避免、用于磨损均衡及/或用于在发射错误时恢复独立节点冗余阵列(rain)奇偶校验保护。另外或替代地,记分板管理器150可用于依起初写入数据的相同顺序(例如,循序地)将数据从一或多个源块(例如一或多个nand单元块)传送到一或多个目的块。在一些实例中,存储器子系统控制器115包含记分板管理器150的至少一部分。举例来说,存储器子系统控制器115可包含经配置以执行存储于本地存储器125中用于执行本文中描述的操作的指令的处理器120(例如处理装置)。在一些实例中,记分板管理器150是主机系统105、应用程序或操作系统的部分。记分板管理器150可执行用于维持序列性的媒体管理(例如废弃项目收集)的操作。举例来说,记分板管理器150可管理(例如追踪)在废弃项目收集期间从块读取的有效数据页。明确来说,记分板管理器150可追踪读取页的顺序(例如发出源位置处的给定存储器地址的读取命令的顺序)。在擦除块(此可由记分板管理器150或另一组件执行)之后,有效数据可依循序顺序写入(例如重写)到新位置。即,有效数据的写入命令可(例如,由处理器120)依相同于发出读取命令的顺序(即,依相同于读取命令起初存储于块上的顺序)发出。写入命令可基于由记分板管理器150管理的一或多个条目的状态发出。下文描述关于记分板管理器150的操作的进一步细节。图2是根据本发明的一些实例的用于维持用于存储器子系统的媒体管理的序列性的实例方法200的流程图。方法200可由处理逻辑执行,处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实例中,方法200由图1的记分板管理器150执行。尽管依特定序列或顺序展示,但除非另外指定,否则操作的顺序可修改。因此,说明实例应被理解为仅为实例,且说明操作可依不同顺序执行,且一些操作可并行执行。另外,可在各个实例中省略一或多个操作。因此,并非在每个实例中需要所有操作。其它方法流程是可能的。在操作205,处理装置可根据读取序列发出与一组传送单元(tu)的一组媒体管理操作有关的一组读取命令。在一个实例中,媒体管理操作组用于废弃项目收集。在其它实例中,媒体管理操作组用于例如磨损均衡等的其它媒体管理算法。tu指代由存储器子系统控制器、本地媒体控制器或主机系统内部管理的最小数据大小。在一些实例中,tu组可对应于存储器子系统的一或多个数据块。在一些实例中,读取序列可隐含于条目组中。在一些实例中,每一读取命令可包含用于读取存储器子系统的源地址处的tu中的一者的指令。在一些实例中,方法200可包含响应于读取命令组的对应子集而接收tu组的一子集的一组读取值。读取值组可依不同于读取序列的顺序接收。在一些实例中,读取序列可对应于tu组的物理到逻辑地址映射顺序。在操作210,处理装置可存储与媒体管理操作组相关联的一组条目。在一些实例中,每一条目可包含关于tu中的一者的媒体管理操作的状态(例如用于废弃项目收集的媒体管理操作的状态)。在一些实例中,每一条目可对应于tu中的一者的逻辑地址与相关联物理地址的配对。在一些实例中,方法200可包含至少部分基于读取值组中对应于tu中的一者的接收到的读取值来更新tu中的一者的条目的媒体管理操作的状态。在一些实例中,媒体管理操作的状态可包含缓冲器分配状态、读取请求发送状态、读取响应接收状态或写入请求发送状态中的一者。在一些实例中,方法200可包含从接收对应无效读取响应的存储装置丢弃每一记分板条目。在一些实例中,丢弃记分板条目可包含从记分板删除(例如擦除)记分板条目。在操作215,处理装置可至少部分基于条目组及读取序列发出与媒体管理操作组有关的多个写入命令。在一些实例中,每一写入命令可包含用于将tu中的一者写入到存储器子系统的相应目的地址的指令。在一些实例中,方法200可包含:发出用于tu组的第一tu的第一读取命令;发出用于tu组的第二tu的第二读取命令;在接收对第二读取命令的第二读取响应之后接收对第一读取命令的第一读取响应;及在发出对应于第二读取响应的第二写入命令之前发出对应于第一读取响应的第一写入命令。在一些实例中,第二tu可根据读取序列跟随条目组中的第一tu。应注意,上述方法描述了可能实施方案,且操作及步骤可经重新布置或以其它方式修改且其它实施方案是可能的。此外,可组合来自方法中的两者或更多上的部分。图3说明根据本文中所揭示的实例的用于维持用于存储器子系统的媒体管理的序列性的方法图300的实例。方法图300说明用于识别有效数据(例如,在阶段305)、读取有效数据(例如,在阶段310)及发出写入命令(例如,在阶段315)的阶段。在一些实例中,如参考图3描述那样执行的操作可经实施于存储器子系统处且可利用记分板302。此外,操作可根据主机系统及/或本地媒体控制器的操作执行,且可基于状态机的设置实施。在一些实例中,方法图300可说明范围流程序320及重放流程序325。方法流300可说明用于媒体管理的一或多个媒体管理操作(例如用于废弃项目收集的媒体管理操作)。在废弃项目收集期间,数据可独立于任何直接主机交互而从一个位置(例如,从源存储器地址)迁移(例如,在存储器装置内部)到另一位置(例如,到目的存储器地址)。可执行废弃项目收集以将有效数据打包在一起以释放空间用于新写入、用于错误避免、用于磨损均衡及/或用于在错误发生时恢复rain奇偶校验保护。另外或替代地,废弃项目收集可由将数据从一或多个源块(例如一或多个nand单元块)移动或复制到一或多个目的块中组成。在一些实例中,废弃项目收集可导致数据整合以释放资源(例如nand单元)用于后续擦除及新写入处理。在一些实例中,在媒体管理期间传送的数据块可为或可称为传送单元(tu)且可为由存储器子系统控制器(例如参考图1所描述的处理器120)、本地媒体控制器或主机系统(例如图1的主机系统105)内部管理的最小数据大小,且对应于逻辑地址(例如tu地址(tua))及物理地址(例如抽象物理地址(例如快闪逻辑地址(fla)),其可与称为平台物理地址(ppa)的nand单元的物理地址相关)。为了整合数据及/或释放资源用于后续存取操作,可将tu写入到新位置(例如目的地址),且可擦除原始块(例如tu从其移动的块)。用于媒体管理(例如废弃项目收集)的候选者(例如块)可使用树(集区、列表、队列等)选择。在一些实例中,候选者可由记分板302维持。基于有效tu的识别及记分板302维持树,可执行用于媒体管理(例如废弃项目收集)的一组循序操作。如本文中论述,将tu单元循序(例如,依读取每一tu的相同顺序)写入到新块可有益于提高存储器子系统的性能。为了将有效tu循序移动(例如,写入)到目的块,记分板302可为或可包含链表。链表可由于其能够维持条目序列而由记分板302利用。在其它实例中,记分板302可为或可包含能够维持条目序列的任何类型的数据结构(例如(例如)循环缓冲器或树)。每一链表可包含与tu相关联的至少一tua及fla。另外或替代地,在可包含于链表中的其它参数中,链表可包含下一节点标识符。下一节点标识符可指示用于媒体管理(例如废弃项目收集)的后一tu。因此,利用其中每一条目指示下一(例如后一)tu的列表可允许有效tu循序写入到目的块。在一些实例中,树可由记分板302维持。树可由用于媒体管理(例如废弃项目收集)的tu列表(队列、集区等)组成。举例来说,可发生读取操作且可根据发出读取命令的顺序将每一tu的tua及/或fla(例如,循序地)存储到记分板302。每一tua及/或fla的状态可维持于记分板302处的列表(例如链表)中。列表的顺序(例如发出读取命令的顺序)可允许tu循序写入到目的块,无论接收对读取命令的响应(例如读取响应)的顺序为何。在其它实例中,链表的顺序可使用预测算法(例如用于预测主机系统可发出读取命令的顺序的算法)即时计算。在阶段305,可执行一或多个操作以识别有效数据(例如tu)。尽管块中的有效tu的计数可轻易取得(例如,可用于控制器),但可识别每一有效tu的位置。在一些实例中,可使用范围流程序320或重放流程序325识别有效tu的位置。范围流程序320可包含折叠整个存储器子系统的数据(例如,移动数据及组织数据)的处理命令。另外或替代地,重放流程序325可使用缓冲器(例如读取缓冲器335)且可循环通过块中的物理位置。在阶段310,可执行一或多个操作以读取在阶段305识别的有效数据(例如tu)。举例来说,在识别有效tu之后,可比较对应于每一有效tu的fla与由记分板302维持的树。如果对应于有效tu的fla匹配由记分板302维持的fla,那么与有效tu相关联的读取命令可发生。相反地,如果fla不匹配,那么可释放由记分板302维持的条目(例如,移动到链表的末尾)。在其它实例中,如果fla不匹配,那么系统可经配置以继续循环通过有效tu,直到fla匹配由记分板302维持的条目。在阶段315,可执行一或多个操作以写入在阶段310读取的有效数据(例如tu)。如本文中论述,当对应于有效tu的fla匹配由记分板302维持的fla时,发出与有效tu相关联的读取命令。另外或替代地,基于发出读取命令,可将与有效tu相关联的数据写入(例如,移动)到目的块中(例如,到目的地址)。由于链表的使用,与有效tu相关联的数据可循序写入到目的块。在阶段305,可采用各种方法确定有效数据(例如有效tu)。举例来说,重放流程序325可支持通过迭代通过存储于缓冲器内(例如,读取缓冲器335内)的各个tu来确定有效数据。缓冲器可包含对应于相应tu从其读取的块中的位置的一或多个地址(例如tua及/或fla)。在一些实例中,重放流程序325可基于与模式寄存器及/或控制器(例如存储器子系统控制器、本地媒体控制器)相关联的一或多个设置来选择。在一些实例中,重放流程序325可在多个阶段(例如第一阶段330及第二阶段340)中执行。当采用重放流程序325时,信号371可在第一阶段330期间由读取缓冲器335接收。信号371可启动读取缓冲器335以循环通过一或多个tu(例如由373说明)。即,读取缓冲器335可根据其中发出读取命令的顺序映射(例如确定、识别等)潜在有效tu的tua及fla。在第二阶段340期间,可识别每一tu的tua及fla且将其提供到记分板302(例如,经由信号375及/或信号369)。在一些实例中,第一阶段330及第二阶段340可为异步的(例如,持续时间可发生于第一阶段330的开始与第二阶段340的完成之间)。在识别tua及fla且将其提供到记分板之后,列表(例如链表)可在记分板302处编译。在一些实例中,接着,可(例如,在350)发出查找tua及fla以确定相关联数据是否保持有效,且如果保持有效,那么可将有效数据(例如,循序地)写入到目的块。在一些实例中,查找350可依接收读取响应的顺序发生,且可经执行以确定tua及fla是否匹配存储于记分板302处的树的条目。因为树可利用链表,所以可比较(例如,依序比较)存储到记分板302的tua及fla与每一接收到的读取响应的相应tua及fla。取决于比较的结果,可发出读取命令且可将tu写入到目的块。范围流程序320可包含折叠整个存储器子系统的数据(例如,移动数据及组织数据)的处理命令。举例来说,范围流程序320可基于与模式寄存器及/或控制器(例如存储器子系统控制器、本地媒体控制器)相关联的一或多个设置来选择。即,使用范围流程序320可为任选的。在一些实例中,范围流程序320可包含作出指示待扫描tua的开始及结束列表的请求。在一些实例中,当作出此请求(即,由存储器子系统控制器及/或主机系统识别)时,设置旗标以沿着待扫描tua的列表引导固件。当采用范围流程序320时,可发出特定块中的每一fla的读取命令。对应tua及fla可作为列表(例如链表)的部分存储到记分板302。接着,在一些实例中,可(例如,在350)发出查找tua及fla以确定相关联数据是否保持有效及将有效数据(例如,循序地)写入到目的块。因为树可利用链表,所以可比较所识别的tua及fla与列表的第一条目(例如列表的头部)。取决于比较的结果,可发出读取命令且可将tu写入到目的块。在一些实例中,范围流程序320及重放流程序325两者可导致执行查找350以确定读取响应(例如对应于读取响应的tua及fla)是否匹配存储于记分板302处的树的条目。因此,与读取响应相关联的tua及fla可经由信号381提供到记分板302。信号381可由控制器或另一组件传输到记分板302。在一些实例中,信号381可在第一时间(例如,在350(未展示))传输到记分板302,且比较的结果可在第二时间(例如,在355经由信号383)接收。因此,在一些实例中,比较的一部分可在阶段305(例如,在阶段305期间)及在阶段310(例如,在阶段310期间)发生。在一些实例中,在350及355执行的步骤可异步(例如,持续时间可发生于由各个组件在350及355执行的步骤之间)。当接收到读取响应时,可比较对应tua及fla与存储于记分板302处的树的第一条目(例如列表的头部)。在一些例子中,tua及fla可能不匹配第一条目。举例来说,第一条目与第一接收到的tua及fla的比较可指示条目不匹配。在此实例中,可释放列表的第一条目(例如,移动到列表的底部)。因此,可比较tua及fla与列表中的后一条目(或后续条目),直到确定匹配。在确定匹配之后,可(例如,在360)发出相关联tu的读取,且随后可将tu写入到目的块(例如,在365,其可在阶段315发生)。在一些实例中,阶段310及阶段315可异步(例如,持续时间可发生于两个阶段之间)。与每一有效tu相关联的tua及fla可依本文中描述的方式与列表比较。当匹配不存在时,可释放记分板中的条目。相反地,当匹配存在时,可发出读取且可将tu写入到目的块。当将tu写入到目的块时(例如,当在365发出写入命令时),可释放记分板302中的相关联条目。因此,此过程可导致tu依相同于发出读取命令的顺序的顺序写入到目的块,此可维持整个媒体管理(例如废弃项目收集)的序列性。图4说明根据本文中所揭示的实例的用于维持废弃项目收集的序列性的媒体管理操作的实例框图400。操作说明读取序列405、读取响应410及写入命令415。在一些实例中,写入命令415可基于读取序列405及读取响应410在废弃项目收集期间的顺序。另外或替代地,操作可使用记分板425实施,记分板425可为参考图3所描述的记分板302的实例。在一些实例中,记分板425可包含促进废弃项目收集的一或多个记分板条目420,例如参考图3所描述的树的条目。在一些实例中,图4说明废弃项目收集操作。如本文中论述,废弃项目收集可发生以独立于任何直接主机系统交互将数据从一个位置迁移到另一位置。在图4的背景下,读取序列405、读取响应410及写入命令415中的每一者可与块(例如数据块)相关联。每一块可包含能够存储有限数据量的一或多个页。举例来说,每一块可包含各自能够存储4千字节(kb)或8kb数据(或其它量)的32个页。为了说明,读取序列405、读取响应410及写入命令415中的每一者说明十二(12)个有效数据块(编号为1到12)及各种脏/过期数据及/或擦除数据块。脏数据是高速缓存存储器中未保存到媒体(例如nand)的最近版本的数据。过期数据包含先前被写入但不再与有效逻辑地址(例如由主机系统在物理到逻辑(p2l)映射表中引用的逻辑地址)相关联的数据。每一有效数据块(例如1到12)可为或可称为tu。范围流程序(例如参考图3所描述的范围流程序320)及/或重放流程序(例如参考图3所描述的重放流程序325)可与读取序列405相关联。举例来说,范围流程序及/或重放流程序可发出用于读取tu用于废弃项目收集的一或多个读取命令。如图4中展示,且仅为了说明,读取序列405可发出tu1到12的一或多个读取命令。读取序列405可同时发出读取命令,使得每一后续tu的读取命令依序发出(即,连续发出每一tu的读取命令)。读取命令可作为列表(例如链表、循环缓冲器或树)存储到记分板425。在一些实例中,与每一tu相关联的tua及fla可作为记分板条目420存储于由记分板管理器(例如图1的记分板管理器150)维持的记分板425(例如图3的记分板302)中。在一些实例中,记分板条目420可存储与每一tu相关联的相应值。即,记分板425及记分板条目420可用作维持废弃项目收集的每一tu的读取值的缓冲器。因此,当接收到相关联读取响应(即,与存储到记分板425的tua及fla相关联的响应)时,可更新相应值。下表1中说明由记分板条目反映的一些潜在状态的列表。表1中反映的状态可反映任一时间点处的记分板条目。值意义0空1找到tua/fla对2发送查找请求3接收到查找响应4分配缓冲器5发送读取请求6接收到读取响应7发送写入请求表1如表1中展示,记分板425可包含各种条目。页中的每一者(及tu1到12)可与相应条目相关联。举例来说,一些页(及tu)可与相同条目相关联,且其它页(及tu)可与不同条目相关联。每一条目表示相应页及/或tu的当前状态。在一些实例中,条目“0”表示空状态。空状态可指示页是空(例如,其先前已被擦除)且无有效数据从页读取及/或页可被自由写入。在一些实例中,条目“1”表示已识别tua及fla。在一些实例中,条目“2”表示已对tua及fla执行查找以确定相关联数据是否仍有效。在一些实例中,条目“3”表示关于与tua及fla相关联的数据是否有效的响应。如果数据有效,那么条目留在记分板上。如果数据无效,那么条目可移动到链表的末尾且被指派“0”。在一些实例中,条目“4”表示将有效数据分配给缓冲器(例如参考图3的读取缓冲器335)。在一些实例中,条目“5”表示已读取与tua及fla相关联的有效数据。在一些实例中,条目“6”表示已接收到与tua及fla相关联的有效数据。在一些实例中,条目“7”表示将写入有效读取数据。在写入数据之后,条目可被指派“0”且可移动到链表的末尾。此可指示数据被成功(且循序)写回。在发出读取序列405之后,可(例如,在记分板425处)依非循序顺序接收读取响应410。举例来说,如图4中展示,每一响应可依非循序顺序或至少依不同于发出读取序列405的顺序的顺序接收。依非循序顺序接收读取响应410可由于包含(但不限于)特定通道临时用于不同操作(例如,用于主机读取操作)的各种原因。如果读取响应410依接收到的顺序(即,非循序顺序)写入到目的块,那么存储器子系统的整体性能会降低。因此,依图4中所展示的循序顺序发出写入命令415可为有益的。为了依相同于发出读取序列405的顺序发出写入命令415,列表(例如链表)可由记分板425维持。如本文中论述,当接收到读取响应410时,可比较对应tua及fla与存储于记分板425处的列表的第一条目(例如列表的头部)。举例来说,当接收到读取响应“1”(即,第一有效tu)时,可比较其与存储于记分板425处的读取序列405的第一条目。因为条目(例如条目的相关联tua及fla)匹配,所以可首先将读取响应“1”写入到目的块。即,可首先发出与读取响应“1”相关联的写入命令415。如果未首先接收到读取响应“1”(例如,如果首先接收到读取响应“2”),那么条目将不匹配。因此,可释放与存储于记分板425处的tu“1”相关联的条目(例如,移动到列表的底部)。接着,可比较读取响应“2”与下一存储条目(存储于记分板处的tu“2”)。因为这些条目匹配,所以可首先将读取响应“2”写入到目的块。此过程可继续,使得tu依循序顺序(例如,依其中发出读取命令的顺序)写入到目的块(例如,发出写入命令)。可通过依循序顺序将每一tu写入到目的块来提高相关联存储器子系统的性能。图5说明根据本文中所揭示的实例的支持维持用于媒体管理的序列性的计算机系统500的实例机器。计算机系统500可包含用于导致机器执行本文中描述的技术中的任一或多者的一组指令。在一些实例中,计算机系统500可对应于主机系统(例如参考图1描述的主机系统105),主机系统包含存储器子系统(例如参考图1描述的存储器子系统110)、与所述存储器子系统耦合或利用所述存储器子系统或可用于执行控制器的操作(例如,执行操作系统以执行对应于参考图1描述的记分板管理器150的操作)。在一些实例中,机器可与局域网(lan)、内部网、外部网及/或因特网中的其它机器连接(例如,联网)。机器可充当客户端-服务器网络环境中的服务器或客户端机器、对等(或分布式)网络环境中的对等机器或云计算基础设施或环境中的服务器或客户端机器。机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够执行指定由机器采取的动作的一组指令(循序或其它)的任何机器。此外,虽然说明了单个机器,但术语“机器”还可包含个别或联合执行一组(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。实例计算机系统500可包含处理装置505、主存储器510(例如rom、快闪存储器、dram(例如sdram或rambusdram(rdram)等)、静态存储器515(例如快闪存储器、静态ram(sram))等)及数据存储系统525,其等经由总线545彼此通信。处理装置505表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的一处理器或实施指令集组合的多个处理器。处理装置505还可为一或多个专用处理装置,例如asic、fpga、dsp、网络处理器或类似物。处理装置505经配置以执行用于执行本文中论述的操作及步骤的指令535。计算机系统500可进一步包含经过网络540通信的网络接口装置520。数据存储系统525可包含其上存储一或多组指令535或体现本文中描述的方法论或功能中的任一或多者的软件的机器可读存储媒体530(也称为计算机可读媒体)。指令535也可在其由计算机系统500执行期间完全或至少部分驻存于主存储器510内及/或处理装置505内,主存储器510及处理装置505也构成机器可读存储媒体。机器可读存储媒体530、数据存储系统525及/或主存储器510可对应于存储器子系统。在一个实例中,指令535包含用于实施对应于记分板管理器550(例如参考图1描述的记分板管理器150)的功能性的指令。虽然已将机器可读存储媒体530展示为单个媒体,但术语“机器可读存储媒体”可包含单个媒体或存储一或多个指令集的多个媒体。术语“机器可读存储媒体”还可包含能够存储或编码由机器执行的一组指令且致使机器执行本发明的方法论中的任一或多者的任何媒体。术语“机器可读存储媒体”可包含(但不限于)固态存储器、光学媒体及磁性媒体。已依据对计算机存储器内的数据位的操作的算法及符号表示呈现以上详细描述的一些部分。这些算法描述及表示是由数据处理领域的技术人员用于向所属领域的其它技术人员最有效传达其工作实质的方式。算法在此处一般被视为导致期望结果的自洽操作序列。操作是需要物理操纵物理量的操作。通常,尽管不是必需的,但这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁性信号的形式。主要由于常用,将这些信号称为位、值、元素、符号、字符、项、数字或类似物有时被证明是方便的。然而,应记住,所有这些及类似术语应与适当物理量相关联且仅为应用于这些量的方便标记。本发明可涉及计算机系统或类似电子计算装置的动作及过程,计算机系统或类似电子计算装置操纵表示为计算机系统的寄存器及存储器内的物理(电子)量的数据且将其变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。本发明还涉及用于执行本文中的操作的设备。此设备可根据预期目的来特殊构造,或其可包含由存储于计算机中的计算机程序选择性激活或重新配置的通用计算机。此计算机程序可经存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘(包含软盘、光盘、cd-rom及磁光盘)、rom、ram、eprom、eeprom、磁或光卡或适于存储电子指令的各自耦合到计算机系统总线的任何类型的媒体。本文中呈现的算法及显示器不固有地涉及任何特定计算机或其它设备。各种通用系统可根据本文中的教示结合程序使用,或可证明构造更专门设备来执行方法是方便的。用于各种这些系统的结构将如下文描述中陈述那样出现。另外,本发明未参考任何特定编程语言描述。应了解,各种编程语言可用于实施本文所描述的本发明的教示。本发明可经提供为计算机程序产品或软件,其可包含机器可读媒体,机器可读媒体上存储有可用于编程计算机系统(或其它电子装置)执行根据本发明的过程的指令。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。在一些实例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如rom、ram、磁盘存储媒体、光学存储媒体、快闪存储器组件等。在以上说明中,已参考本发明的特定实例性实例描述本发明的实例。显而易见,可在不背离所附权利要求书中所陈述的本发明的实例的更广精神及范围的情况下对本发明做出各种修改。因此,说明书及图式应被视为意在说明而非限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1