数据存储装置中的后台无用单元收集的主机控制的制作方法

文档序号:6349126阅读:189来源:国知局
专利名称:数据存储装置中的后台无用单元收集的主机控制的制作方法
技术领域
本说明涉及数据存储装置,且明确地说,涉及数据存储装置中的后台无用单元收集的主机控制。
背景技术
可使用数据存储装置来存储数据。数据存储装置可与计算装置一同使用以提供所述计算装置的数据存储需要。在某些实例中,可期望在数据存储装置上存储大量数据。此外,可期望快速地执行从所述数据存储装置读取数据及向所述数据存储装置写入数据的命令。

发明内容
在一般方面中,一种在主机与存储器装置之间传送数据的方法包括监视所述主机的活动性,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集。实施方案包括以下特征中的一者或一者以上。举例来说,所述存储器装置可包括快闪存储器芯片。监视所述主机的活动性可包括监视所述主机的处理器的使用水平,且所述方法可进一步包括确定所述使用水平超出预定水平,且接着,响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括响应于所述确定所述使用水平超出所述预定水平而限制所述数据存储装置的处理器的专用于后台无用单元收集的循环量。监视所述主机的活动性可包括监视将数据从所述存储器装置读取到所述主机的速率,且所述方法可进一步包括确定读取数据的所述速率超出预定速率,且接着,响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括在读取数据的所述速率超出所述预定水平时暂停所述后台无用单元收集。监视所述主机的活动性可包括监视将数据从所述存储器装置读取到所述主机的速率,且所述方法进一步包括确定读出数据的所述速率超出预定速率,且接着,响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括在读取数据的所述速率超出所述预定速率时与专用于将数据从所述存储器装置读取到所述主机的努力量相比地限制专用于后台无用单元收集的努力量。监视所述主机的活动性可包括接收其中数据将被从所述存储器装置读取到所述主机的某些读取事件将发生的信号,且接着, 响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括响应于接收到所述信号与专用于将数据从所述存储器装置读取到所述主机的努力量相比地限制专用于后台无用单元收集的努力量。响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括从主机装置监视对所述存储器装置的存储器块中的一块执行的写入操作;从所述主机装置向所述存储器装置发送对所述存储器装置的目标存储器块执行后台无用单元收集的指令;在所述主机处,将后台无用单元收集限制到阈值量以下;且接着,在稍后时间处,允许后台无用单元收集超过所述阈值量。响应于所述所监视的活动性而控制所述存储区装置的存储器块的后台无用单元收集可包括从所述主机向所述存储器装置发送指令所述存储器装置的无用单元收集器将后台无用单元收集限制到阈值量以下的信号,且接着, 在稍后时间处,从所述主机向所述存储器装置发送指令所述存储器装置的无用单元收集器对后台无用单元收集的所述限制已结束的信号。所述方法可进一步包括确定预期发生的某些高优先级读取事件,且其中所述指令所述存储器装置的无用单元收集器将后台无用单元收集限制到阈值量以下的信号可基于所述确定。可接收对一个或一个以上文档的查询,且所述所监视的活动性可包括响应于所述查询而从所述存储器装置检索数据,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集以指令所述存储器装置的无用单元收集器将后台无用单元收集限制到阈值量以下在从所述存储器装置检索所述数据时阻止所述后台无用单元收集。在另一一般方面中,一种设备包括快闪存储器数据存储装置及经由接口可操作地耦合到所述数据存储装置的主机。所述快闪存储器数据存储装置包括多个存储器芯片.所述主机包括主机活动性监视引擎,其经配置以监视所述主机的活动性;及无用单元收集控制引擎,其经配置以控制由所述数据存储装置的无用单元收集器执行的后台无用单元收集。实施方案包括以下特征中的一者或一者以上。举例来说,监视所述主机的活动性可包括监视所述主机的处理器的使用水平,且所述主机活动性监视引擎可进一步经配置以确定所述使用水平超出预定水平,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括响应于所述确定所述使用水平超出所述预定水平而限制所述数据存储装置的处理器的专用于后台无用单元收集的循环量。监视所述主机的活动性可包括监视将数据从所述存储器装置读取到所述主机的速率且确定读取数据的所述速率超出预定速率,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括在读取数据的所述速率超出所述预定水平时暂停所述后台无用单元收集。监视所述主机的活动性可包括监视将数据从所述存储器装置读取到所述主机的速率,且确定读取数据的所述速率超出预定速率,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括在读取数据的所述速率超出所述预定速率时与专用于将数据从所述存储器装置读取到所述主机的努力量相比限制专用于后台无用单元收集的努力量。监视所述主机的活动性可包括接收其中数据将被从所述存储器装置读取到所述主机的某些读取事件将发生的信号,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括响应于接收到所述信号与专用于将数据从所述存储器装置读取到所述主机的努力量相比限制专用于后台无用单元收集的努力量。响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括从主机装置,监视对所述存储器装置的存储器块中的一块执行的写入操作;从所述主机装置向所述存储器装置发送起始对所述存储器装置的目标存储器块的后台无用单元收集的指令;在所述主机处,将后台无用单元收集限制到阈值量以下;且接着,在稍后时间,允许后台无用单元收集超过所述阈值量。所述主机可进一步包括处理器,所述处理器经配置以确定预期将发生某些高优先级读取事件,且其中所述将后台无用单元收集限制到所述阈值量以下是基于所述确定。所述主机可进一步包括查询处置器,所述查询处置器适于接收对一个或一个以上文档的查询,且所述所监视的活动性可包括响应于所述查询而从所述存储器装置检索数据,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括在从所述存储器装置检索所述数据时阻止所述后台无用单元收集。所述存储器装置可包括多个存储器芯片。控制所述后台无用单元收集可包括对所述多个存储器芯片中的若干不同存储器芯片上的后台无用单元收集量进行差别化控制。在另一一般方面中,一种设备包括快闪存储器数据存储装置及经由接口可操作地耦合到所述数据存储装置的主机。所述快闪存储器数据存储装置包括多个存储器芯片; 及无用单元收集器,其经配置以执行所述存储器装置的存储器块的后台无用单元收集。所述主机包括主机活动性监视引擎,其经配置以监视所述主机的活动性;及无用单元收集控制引擎,其经配置以控制由所述数据存储装置的无用单元收集器执行的后台无用单元收集。实施方案包括以下特征中的一者或一者以上。举例来说,监视所述主机的所述活动性可包括监视所述主机的处理器的使用水平,其中所述主机活动性监视引擎进一步经配置以确定所述使用水平超出预定水平,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括响应于所述确定所述使用水平超出所述预定水平而限制所述数据存储装置的处理器的专用于后台无用单元收集的循环量。监视所述主机的所述活动性可包括监视将数据从所述存储器装置读取到所述主机的速率;及确定读取数据的所述速率超出预定速率,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括在读取数据的所述速率超出所述预定速率时暂停所述后台无用单元收集。监视所述主机的所述活动性可包括监视将数据从所述存储器装置读取到所述主机的速率;及确定读取数据的所述速率超出预定速率,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括在读取数据的所述速率超出所述预定速率时与专用于将数据从所述存储器装置读取到所述主机的努力量相比地限制专用于后台无用单元收集的努力量。监视所述主机的所述活动性可包括接收其中数据将被从所述存储器装置读取到所述主机的某些读取事件将发生的信号,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括响应于接收到所述信号与专用于将数据从所述存储器装置读取到所述主机的努力量相比地限制专用于后台无用单元收集的努力量。响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括从所述主机向所述存储器装置发送指令所述存储器装置的无用单元收集器将后台无用单元收集限制到阈值量以下的信号;且接着,在稍后时间处,从所述主机向所述存储器装置发送指令所述存储器装置的无用单元收集器对后台无用单元收集的所述限制已结束的信号。所述主机可包括处理器,所述处理器经配置以确定预期将发生某些高优先级读取事件,且所述信号可基于所述确定。所述主机可进一步包括查询处置器,所述查询处置器适于接收对一个或一个以上文档的查询,且所述所监视的活动性可包括响应于所述查询而从所述存储器装置检索数据,且响应于所述所监视的活动性而控制所述存储器装置的存储器块的后台无用单元收集可包括在从所述存储器装置检索所述数据时阻止所述后台无用单元收集。所述存储器装置可包括多个存储器芯片。控制由所述数据存储装置的无用单元收集器执行的后台无用单元收集可包括对由所述数据存储装置的无用单元收集器对所述多个存储器芯片中的若干不同存储器芯片执行的后台无用单元收集量进行差别化控制。控制由所述数据存储装置的无用单元收集器执行的后台无用单元收集可包括对由所述数据存储装置的无用单元收集器对所述多个存储器芯片中的若干不同存储器芯片执行的后台无用单元收集量进行差别化控制。在附图及下文说明中阐述一个或一个以上实施方案的细节。从所述说明及图式且从权利要求书将明了其它特征。


图1是数据存储装置的示范性框图。图2是可在图1的数据存储装置中使用的FPGA控制器的示范性框图。图3A是与图1的数据存储装置一同使用的示范性计算装置的示范性框图。图;3B是与图1的数据存储装置一同使用的示范性计算装置的示范性框图。图4是图解说明分割图1的数据存储装置的实例性过程的示范性流程图。
具体实施例方式本文件描述用于数据存储的设备、系统及技术。此数据存储设备可包括具有控制器的控制器板,所述控制器可与一个或一个以上不同存储器板一同使用,其中所述存储器板中的每一者具有多个快闪存储器芯片。所述数据存储设备可使用所述控制器板上的接口与主机进行通信。以此方式,所述控制器板上的控制器可经配置以使用所述接口从所述主机接收命令且使用所述存储器板上的快闪存储器芯片来执行那些命令。图1是数据存储装置100的框图。数据存储装置100可包括控制器板102以及一个或一个以上存储器板10 及104b。数据存储装置100可经由接口 108与主机106进行通信。接口 108可在主机106与控制器板102之间。控制器板102可包括控制器110、DRAM111、多个通道112、电力模块114及存储器模块116。存储器板10 及104b可包括所述存储器板中的每一者上的多个快闪存储器芯片118a及118b。存储器板10 及104b还可包括存储器装置120a及120b。一般来说,数据存储装置100可经配置以将数据存储于快闪存储器芯片118a及 118b上。主机106可将数据写入到快闪存储器芯片118a及118b及从快闪存储器芯片118a 及118b读取数据,并且致使关于快闪存储器芯片118a及118b执行其它操作。可经由控制器板102上的控制器110来处理且由控制器110来控制主机106与快闪存储器芯片118a 及118b之间的数据读取及写入以及其它操作。控制器110可从主机106接收命令且致使使用存储器板10 及104b上的快闪存储器芯片118a及118b来执行那些命令。主机106 与控制器110之间的通信可经由接口 108进行。控制器110可使用通道112来与快闪存储器芯片118a及118b进行通信。控制器板102可包括DRAM 111。DRAM 111可为可操作地耦合到控制器110且可用以存储信息。举例来说,DRAM 111可用以存储逻辑地址到物理地址映射及坏块信息。DRAM 111还可经配置以用作主机106与快闪存储器芯片118a及11 之间的缓冲器。在一个示范性实施方案中,控制器板102以及存储器板10 及104b中的每一者为物理上分开的印刷电路板(PCB)。存储器板10 可在可操作地连接到控制器板102 PCB 的一个PCB上。举例来说,存储器板10 可物理及/或电连接到控制器板102。类似地, 存储器板104b可为与存储器板10 分开的PCB且可为可操作地连接到控制器板102PCB。 举例来说,存储器板104b可物理及/或电连接到控制器板102。存储器板10 及104b每一者可单独地与控制器板102断开及从控制器板102移除。举例来说,存储器板10 可与控制器板102断开且由另一存储器板(未展示)替换, 其中所述另一存储器板可操作地连接到控制器板102。在此实例中,可用其它存储器板换出存储器板10 及104b中的任一者或两者,使得所述其它存储器板可与同一控制器板102 及控制器110—同操作。在一个示范性实施方案中,控制器板102以及存储器板10 及104b中的每一者可以磁盘驱动器形状因数物理连接。所述磁盘驱动器形状因数可包括不同大小,例如(举例来说)3. 5"磁盘驱动器形状因数及2. 5"磁盘驱动器形状因数。在一个示范性实施方案中,控制器板102以及存储器板10 及104b中的每一者可使用高密度球栅阵列(BGA)连接器电连接。可使用BGA连接器的其它变化形式,其中包括 (举例来说)细球栅阵列(FBGA)连接器、超细球栅阵列(UBGA)连接器及微球栅阵列(MBGA) 连接器。也可使用其它类型的电连接构件。接口 108可包括控制器110与主机106之间的高速接口。所述高速接口可实现主机106与快闪存储器芯片118a及118b之间的快速数据传送。在一个示范性实施方案中, 所述高速接口可包括外围组件互连高速(“PCIe”)接口。举例来说,所述PCIe接口可为 PCIe x4接口或PCIe x8接口。PCIe接口 108可包括到主机106的PCIe连接器电缆组合件。在此实例中,110可包括经配置以在主机106与接口 108之间介接的接口控制器。所述接口控制器可包括PCIe端点控制器。也可使用其它高速接口、连接器及连接器组合件。在一个示范性实施方案中,控制器板102与存储器板10 及104b上的快闪存储器芯片118a及118b之间的通信可布置及配置成多个通道112。通道112中的每一者可与一个或一个以上快闪存储器芯片118a及11 通信。控制器110可经配置而使得从主机 106接收的命令可由控制器110使用通道112中的每一者同时或至少实质上同时执行。以此方式,可在不同通道112上同时执行多个命令,此可改善数据存储装置100的吞吐量。在图1的实例中,图解说明二十00)个通道112。完全实线图解说明控制器110 与存储器板10 上的快闪存储器芯片118a之间的十(10)个通道。混合的实线与虚线图解说明控制器110与存储器板104b上的快闪存储器芯片118b之间的十(10)个通道。如图1中所图解说明,通道112中的每一者可支持多个快闪存储器芯片。举例来说,通道112 中的每一者可支持多达32个快闪存储器芯片。在一个示范性实施方案中,所述20个通道中的每一者可经配置以支持6个快闪存储器芯片并与其通信。在此实例中,存储器板10 及104b中的每一者将各自包括60个快闪存储器芯片。依据快闪存储器芯片118a及11 的类型及数目,数据存储装置100可经配置以存储多达多个数据太字节且包括多个数据太字节在内。控制器110可包括微控制器、FPGA控制器、其它类型的控制器或这些控制器的组合。在一个示范性实施方案中,控制器110为微控制器。可以硬件、软件或硬件与软件的组合来实施所述微控制器。举例来说,可从存储器(例如,存储器模块116)给所述微控制器加载计算机程序产品,所述计算机程序产品包括在被执行时可致使所述微控制器以某一方式执行的指令。所述微控制器可经配置以使用接口 108从主机106接收命令且执行所述命令。举例来说,所述命令可包括用以使用快闪存储器芯片118a及118b读取、写入、拷贝及擦除数据块的命令以及其它命令。在另一示范性实施方案中,控制器110为FPGA控制器。可以硬件、软件或硬件与软件的组合来实施所述FPGA控制器。举例来说,可从存储器(例如,存储器模块116)给所述FPGA控制器加载固件,所述固件包括在被执行时可致使所述FPGA控制器以某一方式执行的指令。所述FPGA控制器可经配置以使用接口 108从主机106接收命令且执行所述命令。举例来说,所述命令可包括用以使用快闪存储器芯片118a及118b读取、写入、拷贝及擦除数据块的命令以及其它命令。存储器模块116可经配置以存储数据,可将所述数据加载到控制器110。举例来说,存储器模块116可经配置以存储FPGA控制器的一个或一个以上图像,其中所述图像包括供所述FPGA控制器使用的固件。存储器模块116可与主机106介接以与主机106通信。 存储器模块116可与主机106直接介接及/或可经由控制器110与主机106间接介接。举例来说,主机106可将固件的一个或一个以上图像传递到存储器模块116以进行存储。在一个示范性实施方案中,存储器模块116包括电可擦除可编程只读存储器(EEPROM)。存储器模块116还可包括其它类型的存储器模块。存储器板10 及104b可经配置以与不同类型的快闪存储器芯片118a及118b — 同操作。在一个示范性实施方案中,快闪存储器芯片118a及快闪存储器芯片118b可为相同类型的快闪存储器芯片,其中包括需要来自电力模块114的相同电压及来自相同快闪存储器芯片销售商。术语销售商与制造商在本文件通篇中可互换使用。在另一示范性实施方案中,存储器板10 上的快闪存储器芯片118a可为与存储器板104b上的快闪存储器芯片118b不同的类型的快闪存储器芯片。举例来说,存储器板 10 可包括SLC NAND快闪存储器芯片且存储器板104b可包括MLC NAND快闪存储器芯片。在另一实例中,存储器板10 可包括来自一个快闪存储器芯片制造商的快闪存储器芯片且存储器板104b可包括来自不同快闪存储器芯片制造商的快闪存储器芯片。具有全部相同类型的快闪存储器芯片或具有不同类型的快闪存储器芯片的灵活性使得能够使数据存储装置100适合主机106正在使用的不同应用程序。在另一示范性实施方案中,存储器板10 及104b可在同一存储器板上包括不同类型的快闪存储器芯片。举例来说,存储器板10 可在同一 PCB上包括SLC NAND芯片及 MLC NAND芯片两者。类似地,存储器板104b可包括SLC NAND芯片及MLC NAND芯片两者。 以此方式,数据存储装置100可有利地经定制以满足主机106的规格。在另一示范性实施方案中,存储器板10 及104b可包括其它类型的存储器装置, 其中包括非快闪存储器芯片。举例来说,存储器板10 及104b可包括随机存取存储器 (RAM),例如(举例来说)动态RAM(DRAM)及静态RAM(SRAM)以及其它类型的RAM及其它类型的存储器装置。在一个示范性实施方案中,存储器板10 及104b两者可包括RAM。在另一示范性实施方案中,所述存储器板中的一者可包括RAM且另一存储器板可包括快闪存储器芯片。此外,所述存储器板中的一者可包括RAM及快闪存储器芯片两者。存储器板10 及104b上的存储器模块120a及120b可分别用以存储与快闪存储器芯片118a及118b相关的信息。在一个示范性实施方案中,存储器模块120a及120b可存储快闪存储器芯片的装置特性。所述装置特性可包括所述芯片为SLC芯片还是MLC芯片、 所述芯片为NAND还是NOR芯片、芯片选择的数目、块的数目、每块页的数目、每页字节的数目及所述芯片的速度。在一个示范性实施方案中,存储器模块120a及120b可包括串行EEPROM。EEPROM 可存储装置特性。可针对任何给定类型的快闪存储器芯片汇编一次装置特性且可用所述装置特性产生适当EEPROM图像。当存储器板10 及104b可操作地连接到控制器板102时, 则可从EEPROM读取所述装置特性,使得控制器110可自动辨识控制器110正在控制的快闪存储器芯片118a及11 的类型。另外,可针对特定类型的快闪存储器芯片118a及118b 使用所述装置特性来将控制器110配置成适当参数。在实例性实施例中,数据存储装置100可用以存储必须快速从数据存储装置100 读取且供应到主机106的大量数据(例如,许多数字吉字节或太字节)。举例来说,数据存储装置100可用以高速缓存可由主机响应于查询而取的大量可公共存取的信息(例如,来自万维网的大的网页集、大的电子版本图书库或表示大量电信的数字信息等)。在另一实例中,数据存储装置100可用以存储可公共存取的文档的索引,其中所述索引可用以响应于查询而定位文档。因此,响应于由主机发出的读取命令而非常快速地存取并返回相关数据可为重要的。然而,还可需要随着相关信息改变而不断地更新存储于数据存储装置中的信息以保持信息为最新的。举例来说,如果存储装置上的信息与网页集相关,那么可需要随着网页改变及随着创建新的网页而更新存储于所述存储装置上的信息。如上文所论述,控制器110可包括FPGA控制器。参照图2,其图解说明FPGA控制器210的示范性框图。所述FPGA控制器可经配置而以上文关于图1的控制器110所描述的方式操作。FPGA控制器210可包括用以将多个通道112连接到快闪存储器芯片218的多个通道控制器250。将快闪存储器芯片218图解说明为连接到通道控制器250中的每一者的多个快闪存储器芯片。快闪存储器芯片218表示图1的快闪存储器芯片118a及118b,其位于图1的分开的存储器板10 及104b上。在图2的实例中未展示分开的存储器板。 FPGA控制器210可包括PCIe接口模块208、双向直接存储器存取(DMA)控制器252、动态随机存取存储器(DRAM)控制器254、命令处理器/队列256、信息与配置接口模块258及无用单元收集器控制器沈0。可使用接口来与主机(例如,图1的主机106)传递信息。在图2中所示的实例中,FPGA控制器210包括用以与主机通信的PCIe接口及PCIe接口模块208。PCIe接口模块208可经布置及配置以从主机接收命令及将命令发送到主机。PCIe接口模块208可提供主机与数据存储装置之间的数据流控制。PCIe接口模块208可实现主机与控制器210及最终与快闪存储器芯片218之间的高速数据传送。在一个示范性实施方案中,PCIe接口及 PCIe接口模块208可包括64位总线。双向直接存储器存取(DMA)控制器252可经布置及配置以控制PCIe接口模块208与命令处理器/队列256之间的总线的操作。双向DMA控制器252可经配置以与PCIe接口 208及通道控制器250中的每一者介接。双向DMA控制器252实现主机106与快闪存储器芯片218之间的双向直接存储器存取。DRAM控制器2M可经布置及配置以控制逻辑地址到物理地址的翻译。举例来说, 在其中主机使用逻辑地址来寻址存储器空间的实施方案中,DRAM控制器邪4可辅助命令处理器/队列256将由主机使用的逻辑地址翻译成快闪存储器芯片218中与正写入到快闪存储器芯片218或从快闪存储器芯片218读取的数据相关的实际物理地址。可将从主机接收的逻辑地址翻译成快闪存储器芯片218中的一者中的一位置的物理地址。类似地,可将快闪存储器芯片218中的一者中的一位置的物理地址翻译成逻辑地址并传递到主机。命令处理器/队列256可经布置及配置以经由PCIe接口模块208从主机接收命令并经由通道控制器250控制所述命令的执行。命令处理器/队列256可维持待执行的若干个命令的对队列并使用有序列表对所述命令进行排序以确保可首先处理最旧的命令。命令处理器/队列256可维持经指定用于同一快闪存储器芯片的命令的次序且可重新排序经指定用于不同快闪存储器芯片的命令。以此方式,可同时执行多个命令且可同时或至少实质上同时使用通道112中的每一者。命令处理器/队列256可经配置以无序地处理用于不同通道112的命令且保持每通道的命令排序。举例来说,可由命令处理器/队列256无序地处理从主机接收且经指定用于不同通道的命令。以此方式,可使所述通道保持繁忙。从主机接收的用于在同一通道上处理的命令可按所述命令由命令处理器/队列256从主机接收的次序来处理。在一个示范性实施方案中,命令处理器/队列256可经配置以使从主机接收的命令列表维持成最旧优先的经分类列表以确保及时地执行所述命令。通道控制器250可经布置及配置以处理来自命令处理器/队列256的命令。通道控制器250中的每一者可经配置以处理用于多个快闪存储器芯片218的命令。在一个示范性实施方案中,通道控制器250中的每一者可经配置以处理用于多达32个且包括32个在内的快闪存储器芯片218的命令。通道控制器250可经配置以按由命令处理器/队列256指定的次序处理来自命令处理器/队列256的命令。可处理的命令的实例包括(但不限于)读取快闪页、编程快闪页、拷贝快闪页、擦除快闪块、读取快闪块的元数据、映射快闪块存储器芯片的坏块及对快闪存储器芯片进行复位。信息与配置接口模块258可经布置及配置以与存储器模块(例如,图1的存储器模块116)介接以接收用于FPGA控制器210的配置信息。举例来说,信息与配置接口模块 258可从所述存储器模块接收一个或一个以上图像以将固件提供到FPGA控制器210。可由主机经由信息与配置接口模块258将对图像及固件的修改提供到控制器210。经由信息与配置接口模块258接收的修改可应用于控制器210的组件中的任一者,其中包括(举例来说),PCIe接口模块208、双向直接存储器存取(DMA)控制器252、DRAM控制器254、命令处理器/队列256及通道控制器250。信息与配置接口模块258可包括可通过来自主机的指令而视需要修改的一个或一个以上寄存器。FPGA控制器210可经布置及配置以联合主机一起协作及处理命令。FPGA控制器 210可执行或至少辅助执行与快闪存储器芯片218相关的错误校正、坏块管理、逻辑到物理映射、无用单元收集、损耗均衡、分割及低水平格式化。FPGA控制器210的无用单元收集控制器沈0可用以协调及控制对数据存储装置 100的无用单元收集操作。如上文所论述,存储器芯片218的单元被组织成若干块单位且每一块包括多个页。可以页大小的单位将数据写入到存储器芯片218及从存储器芯片218读取数据,但当从存储器芯片218擦除数据时是以块大小的单位擦除数据。另外,无法同址更新快闪存储器芯片218-也就是说,写入到芯片的页的数据无法由新数据盖写。而是,必须将新数据写入到不同位置,且必须宣布旧数据无效。由于这些约束,当更新数据存储装置上的数据时,必须使用异址更新方案,其中将新数据写入到不同于旧数据的物理位置且接着宣布旧数据无效。因此,快闪存储器芯片218的页可具有三种状态中的一者(1)空闲(其中页不含有数据且可用于存储新的或更新的数据);( 有效(其中页含有可用于读取的新的或最近更新的数据);或⑶无效(其中页含有过时数据或经标记为删除的数据)。如可以想象, 在使用异址更新程序更新快闪存储器芯片218上的数据的一些循环之后,许多块将具有有效页及无效页两者,此减小可用于接收新的或更新的数据的空闲页的数目。因此,使用无用单元收集过程来回收存储器芯片上的空闲页。在无用单元收集过程中,将一块作为目标以使所有其数据被擦除,使得所述块的页可经回收作为空闲页。在擦除所述块的页之前,将所述块的有效页拷贝到一个或一个以上不同块或者一个或一个以上不同芯片218的空闲页中的新位置。在目标块的所有有效页均被成功地拷贝到新位置之后,擦除所述目标块的页,使得其为空闲的以将数据写入到其。无用单元收集对于使用快闪存储器装置来说为重要的,但无用单元收集也为耗时的。这是因为在快闪存储器存储装置中,对快闪存储器芯片的写入操作花费比从快闪存储器芯片的读取操作长得多的时间(例如,约为读取操作的10倍长),且因为擦除操作花费比写入操作长得多的时间(例如,约为写入操作的10倍长)。因此,与和将文件从数据存储装置100读取到主机106相关联的读取操作交错的无用单元收集操作可显著延迟数据文件从数据存储装置到主机的读取。可在有必要回收存储器芯片上的空闲空间以将新的或更新的数据写入到所述芯片时执行无用单元收集。举例来说,如果所述芯片含有比接收既定写入到所述芯片的数据所必需的页少的空闲页,那么必须执行无用单元收集以擦除足够块而回收用以接收待写入到所述芯片的数据的充足数目的页。或者,可在后台操作中执行无用单元收集以周期性地擦除块且将无效页的数目维持在相对低的量,使得存在用以接收待写入到存储器芯片218的数据的充足数目的空闲页。因此,无用单元收集器控制器260可监视正对存储器芯片218的块执行的读取及/或写入操作,且鉴于所监视的活动性而执行无用单元收集。举例来说,如果未在执行此些操作, 那么无用单元收集器控制器260可指令命令处理器/队列256起始对目标块的无用单元收集过程,可基于所述块上的无效页的数目而将所述块作为目标。在另一实例中,可由无用单元收集器控制器260监视读取及/或写入操作的速率,且如果读取及/或写入操作的速率在阈值以下,那么无用单元收集器控制器260可指令命令处理器/队列256起始对目标块的无用单元收集过程。除监视每存储器块级别的读取或写入操作以外,无用单元收集器沈0 还可监视每存储器芯片级别或每通道级别的读取或写入操作,且可鉴于所监视的操作而执行后台无用单元收集。然而,由于无用单元收集与读取操作相比且甚至与写入操作相比都为如此耗时的,且由于读取及写入性能对于数据存储装置100来说为重要的性能度量,因此可由主机 106在某些时间抑制或限制后台无用单元收集以改善数据存储装置100的读取及/或写入性能。图3是包括主机350及数据存储装置210的数据存储设备300的示意性框图。如上文所描述,数据存储装置210可经由接口 308连接到主机350,所述接口可为高速接口, 例如(举例来说)PCIe接口。所述主机可包括(举例来说)处理器352、第一存储器354、 第二存储器356及主机活动性监视引擎360。第一存储器邪4可包括(举例来说)非易失性存储器装置(例如,硬磁盘),其适于存储可由处理器352执行的机器可读、可执行代码指令。可将存储于第一存储器3M上的代码指令加载到第二存储器(例如,易失性存储器, 例如随机存取存储器)356中,其中所述代码指令可由处理器352执行以创建无用单元收集控制引擎358及主机活动性监视引擎360。第二存储器可包括专用于用户模式应用程序的 “用户空间”逻辑块362及专用于运行用户级应用程序必须控制以执行其功能的低级资源的 “核心空间”逻辑块364。无用单元收集控制引擎358及主机活动性监视引擎360可驻存于第二存储器356的核心空间364中。主机活动性监视引擎360可经配置以监视主机106的活动性。无用单元收集控制引擎358可经配置以控制由数据存储装置的后台无用单元收集器260执行的后台无用单元收集。举例来说,在一个实施方案中,主机活动性监视引擎360可确定主机106的处理器 (例如,处理器35 的使用水平,其中在一个实施方案中,所述处理器可在主机106与数据存储装置210之间的数据传送中涉及。举例来说,所述使用水平可包括处理器操作所占预定义容量的百分比或处理器执行操作的速率。可将所确定的使用水平与预定使用水平进行比较。当使用水平超出预定使用水平时,无用单元收集控制引擎358可响应于所述确定所述使用水平超出所述预定水平而限制数据存储装置210的处理器(例如,执行读取、写入、 拷贝及擦除操作的处理器)的专用于后台无用单元收集的循环量。无用单元收集控制引擎 358可通过以下方式来提供此限制向数据存储装置的后台无用单元收集器260发送指令其暂停后台无用单元收集以将后台无用单元收集限制到阈值量以下以便不超出预定水平的信号。
在另一实施方案中,主机活动性监视引擎360可监视将数据从存储器装置210读取到主机106的速率。所述监视引擎可进一步确定读取数据的速率是否超出预定速率。如果超出,那么无用单元收集控制引擎358可响应于所监视的活动性而通过以下方式来控制存储器装置210的存储器块的后台无用单元收集在读取数据的速率超出预定水平时,暂停后台无用单元收集。以此方式,可在将数据从数据存储装置210读取到主机350的突发期间抑制后台无用单元收集。在另一实施方案中,无用单元收集控制引擎358可前摄性地控制数据存储装置 210上的后台无用单元收集。举例来说,主机可能知晓很快将发生不应被数据存储装置上的后台无用单元收集中断的若干个重要读取事件。在此情况下,主机活动性监视引擎360 可接收其中数据将被从存储器装置210读取到主机350的某些读取事件将发生的信号(例如,从可能正在执行驻存于存储器364的用户空间部分362中的应用层程序的处理器352)。 接着,主机活动性监视引擎360可向无用单元收集控制引擎358告知预期的读取事件。作为响应,无用单元收集控制引擎358可通过响应于接收到所述信号与专用于将数据从所述存储器装置读取到所述主机的努力量相比地限制专用于后台无用单元收集的努力量来控制所述存储器装置的存储器块的后台无用单元收集。再次,无用单元收集控制引擎358可通过以下方式来提供此限制向数据存储装置的后台无用单元收集器260发送指令其暂停后台无用单元收集以将后台无用单元收集限制到阈值量以下的信号。举例来说,可将无用单元收集或擦除事件的量限制到读取及/或写入事件的某一百分比以下。在经识别的重要读取事件已发生之后,则可解除对后台无用单元收集的限制。举例来说,主机可发送指令存储器装置210的无用单元收集器260对后台无用单元收集的限制已结束的信号。在一个实施方案中,主机可包括在用户空间362中操作的查询处置器363,其经配置以接收对驻存于数据存储装置302上的一个或一个以上文档的查询。接着,在正将所述文档中的一者或一者以上从数据存储装置210检索到主机350时,无用单元收集控制引擎 358可阻止在所述数据存储装置上发生的后台无用单元收集直到所述文档已被检索为止。如上文所描述,存储器装置210可包括多个存储器芯片218及多个通道112,所述通道中的每一者可操作地连接到多个存储器芯片。无用单元收集器260可经配置以在不同时间处对特定存储器芯片的块而不对其它存储器芯片的块或者对连接到特定通道112的存储器芯片218的块而不对连接到其它通道112的存储器芯片218的块执行无用单元收集。由此,无用单元收集控制引擎358可经配置以通过以下方式来控制由数据存储装置的无用单元收集器260执行的后台无用单元收集对多个存储器芯片218中的若干不同存储器芯片上的后台无用单元收集量进行差别化控制,或者对连接到多个通道112中的若干不同通道的芯片上的后台无用单元收集量进行差别化控制。也就是说,可在正经历或预期将经历高速率的读取事件的某些芯片或通道上限制后台无用单元收集,同时允许无限的后台无用单元收集在连接到其它通道的芯片上继续进行。在另一实施方案中,无用单元收集不是由驻存于控制器210上的无用单元收集器 260执行,而是可依据主机350控制及执行。举例来说,除响应于确定使用水平超出预定水平而限制专用于后台无用单元收集的处理器循环量以外,无用单元收集控制引擎358还可执行如上文描述为在特定实施方案中由无用单元收集器260执行的无用单元收集功能。因此,主机350上的无用单元收集控制引擎358可监视正对存储器芯片218的块执行的读取及/或写入操作且可鉴于所监视的活动性而执行无用单元收集。举例来说,如果未在执行此些操作,那么无用单元收集控制引擎358可指令控制器210的命令处理器/队列256起始对目标块的无用单元收集过程,可基于所述块上的无效页的数目而将所述块作为目标。 在另一实例中,可由无用单元收集控制引擎358监视读取及/或写入操作的速率,且如果读取及/或写入操作的速率在阈值以下,那么无用单元收集控制引擎358可指令命令处理器 /队列256起始对目标块的无用单元收集过程。除监视每存储器块级别的读取或写入操作以外,无用单元收集控制引擎358还可监视每存储器芯片级别或每通道级别的读取或写入操作,且可鉴于所监视的操作而执行后台无用单元收集。图4是图解说明将数据从数据存储装置读取到主机的实例性过程400的示范性流程图。可监视主机上的活动性002)。举例来说,可监视将数据从存储器装置读取到主机的速率004),且可做出关于所述速率是否超出预定速率的确定006)。可响应于主机的所监视活动性而控制存储器装置的存储器块的后台无用单元收集。举例来说,可在读取数据的速率超出预定速率时与专用于将数据从存储器装置读取到主机的努力量相比地限制专用于后台无用单元收集的努力量。本文中所描述的各种技术的实施方案可以数字电子电路或者以计算机硬件、固件、软件或以其组合来实施。实施方案可实施为计算机程序产品,即,有形地体现于信息载体中(例如,体现于机器可读存储装置中)的计算机程序,以由数据处理设备(例如,可编程处理器、一计算机或多个计算机)执行或控制所述数据处理设备的操作。可以任何形式的程序设计语言(包括编译语言或解译语言)来写入计算机程序(例如,上文所描述的计算机程序),且可以任何形式来部署所述计算机程序,包括部署为独立程序或部署为模块、 组件、子例程或适合在计算环境中使用的其它单元。计算机程序可经部署以在一个计算机上或在位于一个位点处或跨越多个位点分布且由通信网络互连的多个计算机上执行。方法步骤可由执行计算机程序的一个或一个以上可编程处理器执行,以通过处理输入数据并产生输出来执行功能。方法步骤还可由专用逻辑电路(例如,FPGA或ASIC(专用集成电路))执行,且设备可实施为专用逻辑电路。举例来说,适合执行计算机程序的处理器包括通用及专用微处理器两者,以及任何种类的数字计算机的任何一个或一个以上处理器。一般来说,处理器将从只读存储器或随机存取存储器或两者接收指令及数据。计算机的元件可包括用于执行指令的至少一个处理器及用于存储指令及数据的一个或一个以上存储器装置。一般来说,计算机还可包括用于存储数据的一个或一个以上大容量存储装置(例如,磁盘、磁光盘或光盘)或经操作地耦合以从所述一个或一个以上大容量存储装置接收数据或向其传送数据或既接收数据又传送数据。适合体现计算机程序指令及数据的信息载体包括所有形式的非易失性存储器,其中包括(举例来说)半导体存储器装置,例如EPROM、EEPROM及快闪存储器装置;磁盘,例如内部硬磁盘或可装卸磁盘;磁光盘;及⑶-ROM及DVD-ROM光盘。所述处理器及存储器可由专用逻辑电路补充或并入于专用逻辑电路中。为提供与用户的交互,实施方案可实施于计算机上,所述计算机具有用于向所述用户显示信息的显示装置(例如,阴极射线管(CRT)或液晶显示器(LCD)监视器)及所述用户可通过其来向计算机提供输入的键盘及指向装置(例如,鼠标或轨迹球)。也可使用其它种类的装置来提供与用户的交互;举例来说,提供给所述用户的反馈可为任何形式的感观反馈,例如,视觉反馈、听觉反馈或触觉反馈;且来自所述用户的输入可以任何形式来接收, 其中包括声音、语音或触觉输入。实施方案可实施于计算系统(包括后端组件,例如,作为数据服务器;或包括中间件组件,例如,应用程序服务器;或包括前端组件,例如,具有用户可经由其来与实施方案交互的图形用户接口或Web浏览器的客户端计算机)或此类后端、中间件或前端组件的任一组合中。组件可由任何数字数据通信形式或媒体(例如,通信网络)互连。通信网络的实例包括局域网(LAN)及广域网(WAN),例如因特网。虽然本文已图解说明及描述了所描述实施方案的某些特征,然而所属领域的技术人员现在将能想出许多修改、替代、改变及等效形式。因此,应理解,所附权利要求书打算涵盖归属于本发明的范围内的所有此类修改及改变。
权利要求
1.一种在主机(106、350)与存储器装置(100)之间传送数据的方法,所述方法包含监视(40 所述主机(106、350)的活动性;及响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集。
2.根据权利要求1所述的方法,其中所述存储器装置(100)包含多个快闪存储器芯片 (118a、118b、218)。
3.根据前述权利要求中任一权利要求所述的方法,其中监视(40 所述主机(106、 350)的所述活动性包含监视所述主机(106、350)的处理器的使用水平,所述方法进一步包含确定所述使用水平超出预定水平,且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含响应于所述确定所述使用水平超出所述预定水平而限制所述数据存储装置的处理器的专用于后台无用单元收集的循环量。
4.根据前述权利要求中任一权利要求所述的方法,其中监视(40 所述主机(106、 350)的所述活动性包含监视(404)将数据从所述存储器装置(100)读取到所述主机(106、 350)的速率,所述方法进一步包含确定(406)读取数据的所述速率超出预定速率,且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含在读取数据的所述速率超出所述预定水平时暂停所述后台无用单元收集。
5.根据前述权利要求中任一权利要求所述的方法,其中监视(40 所述主机(106、 350)的所述活动性包含监视(404)将数据从所述存储器装置(100)读取到所述主机(106、 350)的速率,所述方法进一步包含确定(406)读取数据的所述速率超出预定速率,且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含在读取数据的所述速率超出所述预定速率时与专用于将数据从所述存储器装置(100)读取到所述主机(106、350)的努力量相比限制(410)专用于后台无用单元收集的努力量。
6.根据前述权利要求中任一权利要求所述的方法,其中监视(40 所述主机(106、 350)的所述活动性包含接收其中数据将被从所述存储器装置(100)读取到所述主机(106、 350)的某些读取事件将发生的信号,且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含响应于接收到所述信号与专用于将数据从所述存储器装置(100)读取到所述主机(106、350)的努力量相比限制(410)专用于后台无用单元收集的努力量。
7.根据前述权利要求中任一权利要求所述的方法,其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含从主机(106、350)装置,监视对所述存储器装置(100)的存储器块中的一块执行的写入操作;从所述主机(106、350)装置向所述存储器装置(100)发送对所述存储器装置(100)的目标存储器块执行后台无用单元收集的指令;在所述主机(106、350)处,将后台无用单元收集限制到阈值量以下;且接着,在稍后时间,允许后台无用单元收集超过所述阈值量。
8.根据前述权利要求中任一权利要求所述的方法,其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含从所述主机(106、350)向所述存储器装置(100)发送指令所述存储器装置(100)的无用单元收集器将后台无用单元收集限制到阈值量以下的信号;且接着,在稍后时间,从所述主机(106、350)向所述存储器装置(100)发送指令所述存储器装置(100)的无用单元收集器对后台无用单元收集的所述限制已结束的信号。
9.根据权利要求8所述的方法,其进一步包含 确定预期将发生某些高优先级读取事件,且其中所述信号是基于所述确定。
10.根据权利要求8或9所述的方法,其进一步包含 接收对一个或一个以上文档的查询;其中所述所监视的活动性包括响应于所述查询而从所述存储器装置(100)检索数据;且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含在从所述存储器装置(100)检索所述数据时阻止所述后台无用单元收集。
11.一种设备,其包含快闪存储器数据存储装置(100),其包括多个存储器芯片(118a、118b、218); 主机(106、350),其经由接口(108)可操作地耦合到所述数据存储装置(100),所述主机(106,350)包括无用单元收集控制引擎(358),其经配置以控制对所述存储器芯片(118a、118b、218) 执行的后台无用单元收集;及主机活动性监视引擎(360),其经配置以监视所述主机(106、350)的活动性。
12.根据权利要求11所述的设备,其中所述数据存储装置(100)包括无用单元收集器 060),所述无用单元收集器(沈0)经配置以对所述存储器芯片(118a、118b、218)执行所述后台无用单元收集。
13.根据权利要求11所述的设备,其中所述无用单元收集控制引擎(358)经配置以对所述存储器芯片(118a、118b、218)执行所述后台无用单元收集。
14.根据前述权利要求中任一权利要求所述的设备,其中监视(40 所述主机(106、 350)的所述活动性包含监视所述主机(106、350)的处理器的使用水平,所述主机(106、 350)活动性监视引擎进一步经配置以确定所述使用水平超出预定水平,且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含响应于所述确定所述使用水平超出所述预定水平而限制所述数据存储装置(100)的处理器的专用于后台无用单元收集的循环量。
15.根据前述权利要求中任一权利要求所述的设备,其中监视(40 所述主机(106、 350)的所述活动性包含监视将数据从所述存储器装置(100)读取到所述主机(106、350)的速率,且确定读取数据的所述速率超出预定速率,且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含在读取数据的所述速率超出所述预定水平时暂停所述后台无用单元收集。
16.根据前述权利要求中任一权利要求所述的设备,其中监视(40 所述主机(106、 350)的所述活动性包含监视(404)将数据从所述存储器装置(100)读取到所述主机(106、 350)的速率,且确定(406)读取数据的所述速率超出预定速率,且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含在读取数据的所述速率超出所述预定速率时与专用于将数据从所述存储器装置(100)读取到所述主机(106、350)的努力量相比限制(410)专用于后台无用单元收集的努力量。
17.根据前述权利要求中任一权利要求所述的设备,其中监视(40 所述主机(106、 350)的所述活动性包含接收其中数据将被从所述存储器装置(100)读取到所述主机(106、 350)的某些读取事件将发生的信号,且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含响应于接收到所述信号与专用于将数据从所述存储器装置(100)读取到所述主机(106、350)的努力量相比限制专用于后台无用单元收集的努力量。
18.根据前述权利要求中任一权利要求所述的设备,其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含从主机(106、350)装置,监视对所述存储器装置(100)的存储器块中的一块执行的写入操作;从所述主机(106、350)装置向所述存储器装置(100)发送起始对所述存储器装置 (100)的目标存储器块的后台无用单元收集的指令;在所述主机(106、350)处,将后台无用单元收集限制到阈值量以下;且接着,在稍后时间处,允许后台无用单元收集超过所述阈值量。
19.根据权利要求18所述的设备,其中所述主机(106、350)进一步包括处理器(352),所述处理器(35 经配置以确定预期将发生某些高优先级读取事件,且其中所述将后台无用单元收集限制到所述阈值量以下是基于所述确定。
20.根据权利要求18所述的设备,其中所述主机(106、350)进一步包含查询处置器,所述查询处置器适于接收对一个或一个以上文档的查询;其中监视(40 所述活动性包括响应于所述查询而从所述存储器装置(100)检索数据;且其中响应于所述所监视的活动性而控制(408)所述存储器装置(100)的存储器块的后台无用单元收集包含在从所述存储器装置(100)检索所述数据时阻止所述后台无用单元收集。
21.根据前述权利要求中任一权利要求所述的设备,其中控制(408)所述后台无用单元收集包括对所述多个存储器芯片(118a、118b、218)中的若干不同存储器芯片上的后台无用单元收集量进行差别化控制。
全文摘要
一种设备包括快闪存储器数据存储装置(100)及经由接口(108)可操作地耦合到所述数据存储装置(100)的主机(106、350)。所述快闪存储器数据存储装置(100)包括多个存储器芯片(118a、118b、218)。所述主机(106、350)包括主机活动性监视引擎(360),其经配置以监视(402)所述主机(106、350)的活动性;及无用单元收集控制引擎(358),其经配置以控制(408)对所述存储器芯片(118a、118b、218)执行的后台无用单元收集。
文档编号G06F12/02GK102428449SQ201080020318
公开日2012年4月25日 申请日期2010年4月8日 优先权日2009年4月8日
发明者安德鲁·T·斯温, 罗伯特·S·斯普林科, 阿尔贝特·T·博尔歇斯 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1