将感测设备数据缓存在数据存储设备中的制作方法

文档序号:14649907发布日期:2018-06-08 21:34阅读:190来源:国知局
将感测设备数据缓存在数据存储设备中的制作方法

数据存储设备(DSD)通常用于将数据记录到存储介质(诸如旋转磁盘或固态存储器)上或从存储介质复制数据。在某些情况下,DSD可用于存档或存储从一个或更多个感测设备(例如,摄像机、加速度计、麦克风或各种其他传感器等)接收的数据。从这些感测设备接收的数据可以作为连续数据流到达DSD,并且最终消耗DSD中大量可用的存储容量。

一些DSD可以将从主机接收的数据缓存(cache)在写缓存中,该写缓存允许DSD将存储数据推迟在其期望的位置中,直到它对DSD更有效。DSD还可以使用读缓存以允许由主机更快地访问存储在DSD的另一个位置中的数据的副本。缓存策略可用于确定要缓存哪些数据。主机可以提供关于存储在DSD中的数据的信息,使得缓存策略可以导致关于哪些数据应该被缓存的更好决定。然而,在没有主机的情况下,在感测设备直接与DSD通信的系统中,诸如在物联网(IoT)应用中,DSD通常缺乏关于正在收集的数据的信息,并且DSD不能够充分利用缓存的优点以改善功率使用和性能。

附图说明

本公开的实施例的特征和优点当与附图结合时从下面阐明的详细的说明书中将变得更加明显。提供附图和相关联的说明书来说明公开的实施例,而不限制权力要求的范围。

图1是根据一个实施例描绘数据存储设备(DSD)的块图。

图2描绘了根据一个实施例的包括用于与DSD通信的感测设备的配置文件的设备表的一个示例。

图3描绘了根据一个实施例的与通过DSD接收的数据相关的信息。

图4是根据一个实施例的用于缓存过程的流程图。

图5A是根据一个实施例的用于示例缓存过程的流程图的第一部分。

图5B是用于图5A的示例缓存过程的流程图的第二部分。

图6是根据另一个实施例的用于示例缓存过程的流程图。

图7是用于根据一个实施例的用于缓存调谐过程的流程图。

具体实施方式

在下面的详细说明书中,阐明了许多的具体细节,以提供本公开的充分理解。然而,对于本领域的一个普通技术人员显而易见的是,所公开的各种实施例可以在没有这些具体细节中的一些的情况下实行。在其他情况下,还没有详细地示出已知的结构和技术,以避免不必要地使各种实施例模糊。

系统概述

图1示出了根据一个实施例从感测设备101、102、103和104接收数据的数据存储设备(DSD)106的示例。设备101至104包括感测设备例如,摄像机、加速度计、麦克风、运动传感器、温度传感器、湿度传感器、光传感器或其他类型的感测设备。

如在图1的示例实施例中所示,DSD 106包括在旋转磁盘150的形式中的非易失性存储器(NVM)和非易失性固态存储器(NVSM)128。在其他实施例中,DSD 106可以包括其他NVM介质(诸如磁带)。在这方面,磁盘150和NVSM 128之一或两者可以被省略或被不同的NVM介质替换。例如,NVSM 128可以在一些实施例中被省略,使得DSD 106的NVM仅包括磁盘存储介质。在另外其他的实施例中,磁盘150或NVSM 128中的每个可分别地由多个硬盘驱动器(HDD)或多个固态驱动器(SSD)替换,使得DSD 106包括HDD和/或SSD的多个池(pool)。

DSD 106包括控制器120,该控制器120包括电路系统(诸如用于执行指令的一个或更多个处理器),以及可包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路和/或它们的组合。在一个实施方式中,控制器120可以包括片上系统(SoC)。

接口126被配置为将DSD 106与设备101至104建立接口,并且可以使用例如以太网或WiFi,和/或一个或更多个总线标准建立接口。如由本领域普通技术人员所理解的,接口126可以被包括作为控制器120的部分。

图1的组件可以或可以不在物理上位于同一个位置。在这个方面,设备101至104可以远离DSD 106定位。本领域普通技术人员还将理解到,其他实施例可以包括图1中所示的或多或少的那些元素,并且公开的过程可以在其他环境中实现。例如,其他实施例可以包括向DSD 106提供数据的不同数量的设备。

在图1中,磁盘150由主轴电机(未示出)旋转,并且磁头136被定位以在磁盘150的表面上读取和写入数据。更详细地,磁头136被连接至由音圈电机(VCM)132旋转的致动器130的远端,以将磁头136定位在磁盘150上方,以将数据读取或写入在磁盘150上的磁道中。控制器120的伺服系统(未示出)利用SM控制信号38控制磁盘150的旋转,并且使用VCM控制信号34控制磁头136的定位。

如本领域的那些普通技术人员所理解的,磁盘150可以形成磁盘组的一部分,该磁盘组包括与磁盘150径向对齐的多个磁盘。在这样的实施方式中,磁头136可以形成磁头堆栈组件(HSA)的一部分,该HSA包括被布置成从磁盘组中的相应的磁盘表面读取数据并将数据写入磁盘组中的相应的磁盘表面的磁头。

在图1的示例中,磁盘150包括缓存存储器152,其是位于磁盘150的外径(OD)部分附近的磁道的组或区。缓存存储器152可以作为磁盘150上的基于介质的缓存(MBC),因为它的位置接近OD部分,所以它可以比磁盘150的其他部分更快地写入和读取。磁盘150的其他部分,诸如内径(ID)部分由于位于更接近磁盘150的中心而具有较短的长度的磁道。因为磁盘150的所有部分以相同的速度旋转,所以在OD部分附近的较长磁道允许在给定的时间段内写入和读取更多数据。在其他实施例中,缓存存储器152可以位于磁盘150的其他部分中,诸如在磁盘150的中径部分中。

在一些实施方式中,磁盘缓存存储器152可以不同于磁盘150的其他部分,因此磁盘缓存存储器152可以包括非重叠磁道,而磁盘150的其他部分包括使用叠瓦式磁记录(SMR)被写入的重叠磁道。虽然SMR可以增加数据的量,该数据可以被存储在磁盘150的给定区域中,因为这种写入也会影响写入重叠磁道中的数据,磁道中的重叠可以防止新写入到之前重叠的磁道。为此,磁道一般顺序地写入SMR中。在缓存存储器152中的非重叠磁道可以将用于缓存数据的区域提供给磁盘150的SMR部分,该区域可能利用其他数据被修改或重写。

DSD 106也包括用于存储数据的NVSM 128。虽然本文说明书一般参考固态存储器,但要理解的是,固态存储器可以包含一种或更多种类型的存储设备,诸如闪存集成电路、硫属化合物RAM(C-RAM)、相变存储器(PC-RAM)、可编程金属化单元RAM(PMC-RAM)、双向通用存储器(OUM)、电阻式RAM(RRAM)、NAND存储器(例如,单层单元(SLC)存储器、多层单元(MLC)存储器、三层单元(TLC)存储器或其任何组合)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、3D XPoint存储器、其他分立NVM(非易失性存储器)芯片或它们的任何组合。

如图1所示,NVSM 128包括缓存存储器18,其可用于临时存储或缓存数据,该数据将被写入DSD 106中的另一个存储位置(例如,磁盘150)或可作为读缓存用于存储来自DSD 106中的其他存储位置的数据的副本,用于较快的访问。

DSD 106也包括存储器140,其可包括例如动态随机存取存储器(DRAM)。在一些实施例中,存储器140可以是由DSD 106使用的易失性存储器以临时存储数据。在其他实施例中,存储器140可以是能被快速访问的NVM,诸如某些存储类存储器(SCM),如MRAM、PCM、RRAM、FeRAM、PMC-RAM、C-RAM、OUM或3D XPoint存储器。在存储器140中存储的数据可以包括从NVM读取的数据、被存储在NVM中的数据、从固件10加载的用于由控制器120执行的指令、和/或执行固件10中所使用的数据。

如图1所示,存储器140包括缓存存储器12。如同NVSM 128的缓存存储器18,缓存存储器12可用于缓存数据,该数据将被写入DSD 106中的另一个存储位置(例如,磁盘150或NVSM 128)或可作为读缓存用于存储来自DSD 106中的其他存储位置的数据的副本,用于较快的访问。在一些实施方式中,缓存存储器12可以包括NVSM 128的一部分,其可以更快存储数据、具有用于存储数据的较低功率使用和/或提供较长的使用寿命或用于写入数据的耐久性(例如,更高数量的编程/擦除周期)。例如,缓存存储器12可以包括NVSM 128的SLC部分,其可以提供更大的耐久性和更快的写时间,而缓存存储器12的外部的NVSM 128的部分可以包括MLC或TLC部分作为主存储器。

在其他实施例中,DSD 106包括多个SSD和/或HDD,某些设备可以作为缓存存储器,并且其他设备可以作为主存储器。在一个示例中,SSD可以提供缓存存储器,而另一设备(诸如HDD)可以提供主存储器。

存储器140还存储设备表14和信息16。如下面参考图2讨论的,设备表14针对感测设备101至104中的每个提供信息或配置文件。配置文件可以包括,例如,针对感测设备的配置或信息(诸如来自设备的数据应该被缓存在哪,来自设备的所有数据是否应该被缓存)、被分配给设备的缓存存储器12、18和/或152的最小或最大部分、对设备允许的写延迟、与设备相关联的功率使用、用于压缩来自设备的数据的标准和对易失性地存储来自设备的数据的标准。其他实施方式可以包括不同的信息或配置,作为设备配置文件的一部分。

存储器140还存储信息16,该信息16提供与从感测设备101至104接收的数据相关的信息。如下面参考图3讨论的,信息16可以包括与接收的数据相关联的元数据。信息16的一些示例可以包括数据的源(例如,设备101、102、103或104)、数据的大小、数据的期望的访问频率、直到数据将被访问的期望的时间、数据的优先级以及当数据被接收时的时间。其他实施方式可以包括不同的信息,作为信息16的一部分。

如下面更详细地讨论的,通过使用关于发送数据的感测设备的信息(例如,设备表14)和/或关于数据的信息(例如,信息16)更好地使用缓存存储器12、18和152通常是可能的。一方面,基于发送数据的设备的配置文件和/或与数据相关联的信息,可以或可以不缓存数据。另一方面,基于发送数据的设备和/或与数据相关联的信息,可以选择特定的缓存存储器,用于在不同存储介质中的另一个缓存存储器上方缓存数据。

在选择缓存存储器中,缓存存储器12、18和152可以提供缓存的不同层(tier),其中每个层具有不同的优点或缺点。在一个示例中,缓存存储器12可以包括DRAM,该DRAM提供具有最快写时间的第一层,缓存存储器18可以包括NVSM 128的SLC部分,其提供了具有第二快写时间的第二层,以及磁盘缓存存储器152提供具有最慢写时间的缓存的第三层。缓存的不同层可以具有其他属性,该属性在层之间不同,例如,用于存储数据的功率的量、将数据可靠地写入缓存存储器中的耐久性、维护缓存存储器所需的开销的量(例如,垃圾收集)、可用的存储容量或数据是否被非易失性地存储等。

在常规系统中,主机可以提供关于将被存储在DSD中的数据的信息,使得缓存策略可以导致关于哪些数据应该被缓存或者某些数据应该被缓存在哪的决定。这种常规系统中的主机可以具有在主机上执行的不同应用的数据需求和用途的知识,并使用逻辑寻址(例如,逻辑块地址)以向DSD提供缓存提示。在主机上执行的驱动程序还可以通过指示将被存储在DSD中的数据的优先级提供缓存提示。

与此相反,本公开的感测设备与DSD直接地通信,而不与主机通信,诸如在物联网(IoT)应用中。如下面更详细地描述的,DSD 106考虑哪个感测设备正在发送数据和/或与数据相关的信息,以在缺少主机的情况下改进DSD 106中的缓存存储器的使用。

在操作中,接口126经由接口126从设备101至104接收数据,用于将数据存储在缓存存储器或DSD 106的主存储器中。控制器120可以在存储数据之前将接收的数据缓冲在存储器140中。

对于将被写入在磁盘150上的数据,控制器120的读/写信道(未示出)可以将经缓冲的数据编码为写信号36,其被提供给磁头136,用于在磁盘150上有磁力地写入数据。控制器120的伺服系统可以将VCM控制信号34提供至VCM 132以将磁头136定位在特定磁道上方用于写入数据。

此外,控制器120可能需要从DSD 106的存储器读取数据以向另一个设备提供数据,将数据迁移至DSD 106的另一个存储器,或执行维护操作(例如,压缩或垃圾收集)。为了从磁盘150读取数据,伺服系统将磁头136定位在磁盘150上的特定磁道上方。控制器120控制磁头136以有磁力地读取磁道中存储的数据,并发送读取数据作为读信号36。然后,控制器120的读/写信道可以将数据解码和缓冲到存储器140中用于由控制器120使用或用于经由接口126传输到另一设备。

对于将被存储在NVSM 128中的数据,控制器120从接口126接收数据并可以将数据缓冲在存储器140中。在一个实施方式中,然后将数据编码成用于对NVSM 128的电池(未显示)进行充电的电荷值以存储数据。

访问存储在NVSM 128中的数据,在一个实施方式中的控制器120读取用于NVSM 128中的电池的电流值,并将电流值解码成数据,该数据可由控制器120使用或经由接口126被传输到另一个设备。

图2描绘了根据一个实施例的包括发送感测设备101至104的配置文件的设备表14的示例。如图2的示例中所示,设备表14包括用于每个感测设备的信息或配置(诸如来自每个设备的数据可以被缓存在哪、来自设备的所有数据是否应该被缓存)、被分配给每个设备的缓存存储器12、18和/或152的最小部分和最大部分、对于设备允许的写延迟、与设备相关联的功率使用、用于压缩来自设备的数据的标准、以及用于易失性地存储来自设备的数据的标准。其他实施方式可以包括设备配置文件中的不同信息。

用于特定感测设备(诸如设备101)的配置文件,其可以指示特定缓存存储器的数据被允许缓存在哪。在图2的示例中,从设备101接收的数据可以被缓存在缓存存储器12或缓存存储器18中,而不是在缓存存储器152中。对于可以使用哪些缓存存储器的限制可以由于以下原因,诸如缓存存储器的特定读或写访问速度、缓存存储器中读或写数据使用的功率的量、缓存存储器是否是易失性存储器、或缓存存储器的限制的存储容量。

来自某些感测设备的所有数据可以被缓存,而其他感测设备可以提供仅在某些条件下被缓存的数据,或者从未被缓存的数据。在图2的示例中,对于设备102的指示“Y”意味着来自设备102的所有数据被缓存,对于设备101和103的指示“N”意味着对于设备101和103仅某些数据被缓存,而对于设备104没有指示可意味着没有来自设备104的数据曾被缓存。

图2中的设备表14也包括分配给感测设备的缓存存储器中的最小量的存储容量的指示。可以进行这些分配以确保每个感测设备至少具有在缓存存储器中可用的某些空间量。某些设备可以消耗更多的存储空间,并且因此具有分配给它的更大量的最小存储容量。在一些实施方式中,基于由感测设备实际使用的缓存存储器,根据需要调整最小存储容量。虽然最小分配的存储容量被表示为图2中的百分比,但其他实施例可以使用存储容量(例如,5GB)而不是总存储容量的百分比。

此外,其他实施方式可以只考虑用于缓存存储器12、18和152的子集的最小分配的存储容量。在一个示例中,缓存存储器12的可用存储空间可以显著地小于缓存存储器18和缓存存储器152中可用的存储容量。在这样的示例中,可以只对缓存存储器12进行最小分配,以更好地管理缓存存储器12的使用。

图2中所示的写延迟指示用于将从感测设备接收的数据写入DSD 106的存储器的允许的时间量。某些设备可能需要比其他设备更短的写延迟,这取决于例如,是否以短脉冲(burst)或作为连续流从设备接收数据。在图2的示例中,对于设备102的写延迟“1”可以指示从设备102接收的数据必须被快速缓存或写入到存储器,而对于设备104的写延迟“3”可以指示从设备104接收的数据不需要快速地被缓存或存储。在这方面,某些存储介质可以在其相应的缓存存储器中提供更快的写入。在一个示例中,存储器140中的缓存存储器12可以提供最短的写延迟,随后是NVSM 128中的缓存存储器18,以及具有最大的写延迟的磁盘150上缓存存储器152。基于设备的配置文件中指定的允许的写延迟,数据可以被缓存在特定的缓存存储器中。

设备表14中的功率指示提供与设备相关联的功率电平或功率使用。基于它们需要存储数据所处的频率,某些设备可以具有与它们相关联的特定的功率电平。需要经常存储数据的设备可以与更高的功率使用相关联,这可以将数据从设备向在较低功率操作的缓存存储器引导。

设备表14中的压缩标准可表示例如,直到来自设备的数据适合(eligible)压缩的时间的预定量和/或在它的数据可被压缩之前必须从设备接收的数据的预定量。图2中所示的压缩标准可以表示这些标准的不同组合。其他实施方式可以考虑不同的压缩标准。

设备表14中的易失性标准可以表示允许从感测设备接收的数据保持被缓存在易失性存储器中的时间的量,和/或从感测设备接收被允许保留在易失性存储器中的数据的量。使用易失性标准的其他实施方式可以考虑不同的标准。在一些实施方式中的存储器140可以包括易失性存储器。在这些实施方式中,基于设备表14的易失性标准,可以限制易失性存储器140中的缓存存储器12的使用。

设备表14中所示的最大分配的存储容量可以表示一个或更多个缓存存储器中的存储容量的最大量,在任何给定时间允许特定的感测设备将其用于缓存。最大存储容量可以帮助防止特定的感测设备以其他感测设备为代价而使用太多可用的缓存存储器,同时仍然允许感测设备使用多于其分配的最小存储容量来利用未使用的缓存存储器。

随着时间的推移,来自感测设备的数据可以从一个或更多个缓存存储器迁移至主存储器,以释放一个或更多个缓存存储器中的空间。由于在从缓存存储器中可以迁移数据之前可能需要时间,将感测设备限制到最大存储容量有助于确保对于从不同感测设备接收的数据在缓存存储器中将有一些可用空间。在一些实施方式中,基于由感测设备实际使用的缓存存储器,根据需要调整最大存储容量。虽然最大分配的存储容量表示为图2中的百分比,但其他实施例可以使用总体存储容量而不是总存储容量的百分比。

此外,其他实施方式可以只考虑对于缓存存储器12、18和152的子集的最大分配的存储容量。在一个示例中,缓存存储器12的可用存储空间显著地小于缓存存储器18和缓存存储器152中可用的存储容量。在这样的示例中,可以只对缓存存储器12进行最大分配,以更好地管理缓存存储器12的使用。

图3描绘了根据一个实施例的信息16的示例,其包括与由DSD 106接收的数据相关的信息。在一些实施方式中,信息16可以形成从感测设备101至104已接收的数据的写日志或其他记录。其他实施例可以包括与图3中所示的不同的信息作为信息16的一部分。

如图3所示,在信息16中通过数据被接收的时间索引接收的数据。索引可以作为允许数据被检索的关键。由于数据是从感测设备101至104接收的,数据不由主机的逻辑块地址(LBA)寻址,通常是针对从主机接收的数据的情况下。

数据被接收的时间被包括在信息16中,连同从其接收数据的源或感测设备。信息16也包括尺寸指示器,其可指示从感测设备接收的数据的相对大小,诸如数据的大小是否在某些阈值大小之间。在其他实施例中,接收的数据的实际大小或近似大小可用在信息16中来代替。

信息16的优先级指示器可以指示用于接收的数据的相对优先级。优先级可以基于哪个设备发送数据或基于(例如)哪些数据在过去已被检索的历史或基于从不同感测设备接收的其他数据而由DSD 106确定。在一个示例中,感测设备102可以是运动传感器,并且感测设备103可以是在运动传感器附近的位置中的摄像机。从运动传感器接收的指示运动的数据可以致使DSD 106在从运动传感器接收数据时将从摄像机接收的视频数据划分优先级。然后,这种较高优先级的视频数据可以被存储在DSD 106中的冗余位置中、存储在更可靠的存储介质中或者缓存在非易失性存储介质中,而非易失性存储介质中。

图3的示例中的信息16还包括期望访问指示器。期望访问指示器可以指示接收的数据的期望的访问频率和/或直到接收的数据将被访问时的期望的时间。基于之前从特定感测设备接收的数据的访问历史,或者可以基于发送数据的感测设备的配置文件,该信息会由DSD 106学习。通过知道期望的访问频率或直到下一次访问时的期望的时间,DSD 106能够更好地确定是否缓存接收的数据,以及如果要缓存接收的数据,在何处缓存接收的数据。

示例缓存过程

图4是根据一个实施例可由执行固件10的控制器120执行的缓存过程的流程图。在块402中,控制器120经由接口126从感测设备(例如,感测设备101、102、103或104)接收数据用于在DSD 106的至少一个存储器(例如,磁盘150或NVSM 128)中的存储。

在块404中,基于感测设备发送数据和与接收的数据相关的信息中的至少一个,控制器120确定是否缓存接收的数据。控制器120可以使用设备表14以确定设备的配置文件是否指示数据应该被缓存,或者信息16是否指示数据应该被缓存。例如,设备表14可以指示从设备接收的所有数据是否应该被缓存,或者允许的写延迟是否需要将数据缓存在缓存存储器中,比将数据存储在最终位置可以更快地写入。在另一个示例中,期望的访问或信息16的优先级可以提供接收的数据是否应该被缓存的指示。

如果在块404中确定接收的数据不应该被缓存,则块406中的控制器120将接收的数据存储在主存储器中(例如,磁盘150的非缓存部分或NVSM 128),而不缓存接收的数据。缓存过程随后在块412中结束。

在另一个方面,如果在块404中确定接收的数据应该被缓存,则基于感测设备发送数据和与数据相关的信息中的至少一个,块408中的控制器120选择用于存储数据的缓存存储器。可以在块408中进一步使用设备表14和信息16以确定缓存存储器12、缓存存储器18或缓存存储器152中的哪些可以更适合于缓存接收的数据。下面讨论的图5和图6提供了两个不同的示例:使用关于感测设备的信息和关于接收数据的信息,以确定在何处缓存接收的数据。在一些实施例中,关于是否缓存接收的数据或在何处缓存接收的数据的决定可以基于加权函数,该加权函数考虑关于感测设备的不同信息和/或与数据相关的不同信息作为不同的加权因子。

图5A和图5B提供根据一个实施例的可由执行固件10的控制器120执行示例缓存过程的流程图。在块502中,控制器120从感测设备接收数据用于DSD 106中的至少一个存储器中的存储。

在块504中,基于感测设备的配置文件或之前接收的数据的模式,控制器120可选地预测是否将从感测设备接收附加数据。在一个示例中,设备表14中的配置文件可以包括何时已经从感测设备历史地接收数据(例如,每天早上上午10点与上午11点之间)或从特定感测设备接收的数据通常是否被在时间上紧密相连的脉冲中被接收的指示。可以由控制器120使用信息16以识别这种历史模式或接收模式,或者在块504中预测附加数据是否将被接收。

在块506中,控制器120确定接收的数据的期望的大小或实际的大小是否低于阈值大小。接收的数据的期望的大小可以基于块504中的预测,即预测在某个时间段内是否将从感测设备接收附加数据。块506中的控制器120可参考信息16以确定接收的数据的大小或大小的指示,并且然后将该信息与阈值大小比较,或将期望的大小添加到实际大小用于与阈值大小比较。

接收的数据的大小或期望的大小可用于确定接收数据应在何处被缓存,或提供用于将数据缓存在特定缓存存储器中的偏好。接收的数据的大小或期望的大小可用于节省可以具有不同存储容量的不同缓存存储器中的空间。接收的数据的较小的大小可以更好地适合于具有较小的存储容量的缓存存储器,并且接收的数据的较大的大小可以更好地适合于具有较大存储容量的缓存存储器。

此外,不同缓存存储器的存储介质可以更好地适合于一次顺序地写入大量数据或在更多随机的时间写入较小部分的数据。例如,由于当在磁盘150上写入数据时与定位磁头136有关的机械延迟,NVSM 128中的缓存存储器18或存储器140中的缓存存储器12一般可以比磁盘150上的缓存存储器152更好地适合于在不同的时间写入较小部分的数据。

块506中的决定可以提供以下偏好:如果接收的数据具有至少为阈值大小的大小或期望的大小,则将接收的数据缓存在磁盘150上的缓存存储器152中。替代性地,如果接收的数据具有小于阈值大小的大小或期望的大小,则接收的数据被缓存在存储器140的缓存存储器12中或NVSM 128的缓存存储器18中。

如果在块506中确定接收的数据的期望的大小或实际大小低于阈值大小,则块510中的控制器120确定对于将接收的数据缓存在易失性缓存存储器(例如,缓存存储器12)中是否满足一个或更多个易失性条件。一个或更多个易失性条件可以包括,例如,允许从感测设备接收的数据保持被缓存在易失性存储器中的时间的预定量和/或从感测设备接收的被允许保持在易失性存储器中的数据的预定量。这些限制可以形成设备表14的易失性标准,并用于减少由于DSD 106处的不期望的功率的损失导致来自感测设备的数据可能丢失的可能性。

在块510中如果确定不满足一个或更多个易失性条件,在图5B的块514中接收的数据被缓存在非易失性缓存存储器(例如,缓存存储器18)中。然后该过程在块524中结束。

另一方面,在块510中如果确定满足一个或更多个易失性条件,则在块516中,接收的数据被缓存在易失性缓存存储器(例如,缓存存储器12)中。在一些实施方式中,易失性缓存存储器可以提供接收的数据的最快存储,其可以改善DSD 106在存储从感测设备接收的数据方面的性能。然而,易失性性质和易失性缓存存储器可能更小的大小可使易失性缓存存储器对于较大大小的数据或对于需要非易失性存储的数据是不太合意的。

在块522中,控制器120检查时间的预定量是否已超过用于易失性地存储接收的数据或者数据的预定量是否已经超过用于将接收的数据缓存在易失性存储器中。控制器120在作出这个决定时可以参考设备表14的易失性标准。

在块522中,如果已经超过预定时间或数据的预定量,则在块514中控制器120将接收的数据缓存在非易失性缓存存储器(例如,缓存存储器18)中。然后,缓存过程在块524中结束。

返回图5A的块506,如果确定接收的数据的期望的大小或实际大小不小于阈值大小,则在块508中控制器120确定接收的数据是否需要短的读延迟。在一些实施方式中,这可以从设备表14确定,其中发送数据的设备的配置文件指示允许的读延迟。在其他实施方式中,信息16可以指示直到数据的下一次访问时,数据的优先级或预期的时间是否需要低的读延迟。块508中的决定可以被看作是对接收的数据是否可以被缓存在磁盘150上的缓存存储器152中的附加确定。

如果需要快速地访问数据(即,需要短的读延迟),通常最好将数据缓存在缓存存储器12或缓存存储器18中,因为这些缓存存储器在检索数据中不涉及潜在的机械延迟。如果在块508中需要短的读延迟,则过程继续进行到上述块510,以确定是否将接收的数据缓存在易失性缓存存储器12或非易失性缓存存储器18中。

在块508中如果不需要短的读取延迟,则在图5B的块512中控制器120检查一个或更多个压缩条件是否满足于较低开销的缓存存储器。较低开销的缓存存储器层可以包括缓存存储器,在该缓存存储器中数据可以被访问用于压缩并且在压缩后被删除或被废弃,其在维护、功率和/或性能上具有较低成本。在一个示例中,较低开销的缓存存储器可以包括磁盘150上的缓存存储器152,其中删除的数据可以被覆写而无需先擦除存储器的块(例如,如在闪存缓存中)或之后执行垃圾收集以回收存储被删除数据的存储器的部分(例如,如在间接在闪存或磁盘150的SMR部分中)。

压缩条件可以包括,例如,在接收的数据适合压缩之前的时间的预定量,或者直到接收的数据适合压缩时从感测设备接收数据的预定量。这个信息可以包括作为用于感测设备的配置文件的部分,诸如设备表14中的压缩标准。

在一个实施方式中,直到接收的数据适合压缩时,如果有超过时间的预定量,则接收的数据可以被存储在主存储器中的位置(例如,缓存存储器18的外部的NVSM 128的一部分或缓存存储器152的外部的磁盘150的一部分)中,而不是被缓存。在另一个实施方式中,在接收的数据适合压缩之前,如果仍要从感测设备接收多于预定量的数据,则接收的数据可以被存储在主存储器中的位置中,而不是被缓存。这通常可以允许更接近于被压缩的接收的数据被缓存,使得接收的数据在存储在主存储器中的最终位置之前可以被压缩,其具有由于在缓存存储器中未压缩的数据的删除造成的更少的开销。

例如,存储将很快被压缩和从主存储器(诸如磁盘150的SMR部分)被废弃的数据,将增加在SMR部分中用于垃圾收集的需要以回收存储废弃的数据的区域。另一方面,由于在压缩后废弃的数据可以被简单地覆写在缓存存储器152中,将这些很快将被压缩的数据存储在磁盘缓存存储器152的非重叠磁道中可以减少主存储器中用于垃圾收集的需要。

在块512中,如果确定满足用于缓存的一个或更多个压缩条件,则在块518中控制器120将数据缓存在较低开销的缓存存储器(例如,磁盘缓存存储器152)中。如果没有满足用于缓存的一个或更多个压缩条件,则在块520中控制器120将接收的数据存储在缓存存储器外部的主存储器中。然后缓存过程在块524中结束。

通过考虑发送数据和/或与接收的数据相关的信息的设备,更好地管理从感测设备接收的数据是否以及在何处缓存以改善DSD 106的性能和运行效率通常是可能的。其他缓存过程可以考虑关于感测设备或接收的数据的不同信息,如下文讨论的图6的示例缓存过程。

图6是根据另一个实施例的可由执行固件10的控制器120执行的示例缓存过程的流程图。在块602中,控制器120从感测设备接收数据用于在DSD 106的至少一个存储器中的存储。在块604中,控制器120确定对于接收的数据是否需要短的写延迟。例如,这个可以包括将设备表14中允许的写延迟与阈值写延迟比较。

如果确定对于接收的数据需要短的写延迟,则在块610中控制器120将接收的数据缓存在快速写缓存存储器中。在一个示例中,快速写缓存存储器可以包括存储器140中的缓存存储器12(例如,DRAM),而NVSM 128中的缓存存储器18(例如,闪存)和磁盘150上的缓存存储器152可以提供比缓存存储器12相对更慢的数据的写入。在接收的数据在块610中被缓存之后,缓存过程在块616中结束。

在块604中如果确定对于接收的数据不需要短的写延迟,则在块606中控制器120针对与发送接收的数据的感测设备相关联的功率使用条件检查设备表14。在一些实施方式中,设备表14中指示的用于感测设备的功率使用可以指示是否使用低量的功率存储接收的数据。这可以允许DSD 106对于某些感测设备使用较少的功率,该感测设备可以更频繁地存储数据(诸如提供连续数据流的感测设备),随着时间的推移消耗更少的功率。以较少频率发送数据的感测设备或提供更多离散数据集的感测设备可以不被限制在其功率使用上。

在块606中如果对于接收的数据没有功率使用条件,则在块614中的控制器120将接收的数据存储在主存储器中(即,缓存存储器的外面)。然后缓存过程在块616中结束。

另一方面,如果对于发送数据的感测设备有功率使用条件,则在块608中的控制器120检查磁盘150是否已旋转加速到操作速度。这个信息可从控制器120的伺服控制器中获得,该控制器控制磁盘150的旋转。在不活动时期期间或当磁盘150不用于存储数据时,磁盘150可被旋转减速到低于操作速度。这可以通过不需要向用于旋转磁盘150的DSD 106的主轴电机提供尽量多的功率而节省功率。然而,如果磁盘150已经旋转加速到操作速度,则接收的数据一般可以被缓存在磁盘缓存存储器152中,没有发生多的附加的功率使用,因为磁盘150已经在旋转,并且不需要提供附加的功率来将磁盘150旋转加速到操作速度。然后,在块612中接收的数据被缓存在磁盘缓存存储器152中,并且在块616中图6的缓存过程结束。

在一些实施方式中,在磁盘缓存存储器152中缓存接收的数据还可以节省将数据存储在主存储器中上的功率,因为磁盘缓存存储器152可能在时间段内需要较少的维护或开销用于存储数据。例如,主存储器可以包括磁盘150和/或NVSM 128的部分,其可以需要时常进行垃圾收集。然后,将接收的数据存储在磁盘缓存存储器152中可以通过不需要在主存储器中执行尽量多的垃圾收集而减少功率使用。

在块608中,如果确定磁盘150不旋转加速到操作速度,则控制器120将接收的数据缓存在快速写缓存存储器(例如,缓存存储器12)中,并且过程在块616中结束。

如上所述,对于图6的示例缓存过程,其他缓存过程可以考虑关于感测设备发送数据或接收的数据的不同信息。

图7是根据一个实施例的可以由执行固件10的控制器120执行的缓存调谐过程的流程图,以初始化或改进缓存存储器的使用。在块702中,图7的过程开始,并且当DSD 106首先被配置用于从感测设备101至104接收数据时或者当感测设备与DSD 106连接或从与DSD 106通信中被移除时,可以执行该过程。在其他实施方式中,当DSD 106处于空闲状态或接收来自感测设备的减少的量的数据时,图7的过程可以作为背景活动周期性地执行。

图7的过程通常可以允许用于更有效地使用DSD 106的缓存存储器。如上所述,在一些实施方式中关于是否缓存接收的数据或在何处缓存接收的数据的决定可以被基于加权函数,该加权函数将关于感测设备的不同的信息和/或与接收的数据相关的不同信息当作不同的加权因子。

在块704中,控制器120将不同的权重分配给不同的感测设备和/或与接收的数据相关的不同信息,用于确定是否缓存从感测设备接收的数据。例如,与缓存从感测设备102接收的数据相比,控制器120可以将更多的权重分配给缓存从感测设备101接收的数据,使得来自感测设备102的更多数据被缓存。在另一个示例中,与分配给功率使用的权重相比,控制器120可以将更多的权重分配给最大允许的写延迟,使得可以更快地缓存更多的数据。在另一个示例中,与分配给用于易失性地存储数据所允许的最大时间的权重相比,可以给直到访问时的期望的时间分配更多的权重,使得更多的数据可以被存储在具有较短读延迟的易失性缓存存储器中。

在块706中,控制器120将至少一个缓存存储器的一个或更多个部分的最小和/或最大存储容量分配给相应的一个或更多个感测设备。在分配的最小值情况下,控制器120至少可以保留一个或更多个缓存存储器的最小量,用于缓存来自特定感测设备的数据,以确保用于缓存来自感测设备的数据的足够空间。在图2中的设备表14的示例中,控制器120将缓存存储器12、18和152的至少25%分配给设备101,将45%分配给设备102,将25%分配给设备103,而没有将最小存储容量分配给设备104。在其他示例中,最小分配可以用于小于所有可用的缓存存储器,诸如仅用于最快的缓存存储器,该最快的缓存存储器也可以具有用于缓存数据的最少可用空间。

在分配的最大值的情况下,控制器120可以限制可由特定感测设备用于缓存数据使用的一个或更多个缓存存储器的数量,使得其他感测设备具有空间以缓存数据。在图2中的设备表14的示例中,控制器120限制感测设备101至缓存存储器12、18和152的40%,限制设备102至70%,限制设备103至40%,而不限制设备104。在其他示例中,最大分配可以用于小于所有可用的缓存存储器,诸如仅用于最快的缓存存储器,该最快的缓存存储器也可以具有用于缓存数据的最少可用空间。

在块708中,基于由感测设备使用的至少一个缓存存储器,控制器120可选地调整最小或最大分配的存储容量。例如,这可以允许用于对感测设备的最小分配增加,该感测设备比其他感测设备缓存明显更多数据。可以降低对于其他感测设备的一个或更多个最小分配,以补偿增加的最小分配。在另一个示例中,与其他感测设备相比,基于由一个感测设备更多地使用缓存存储器,可以增加最大分配。可以减少一个或更多个其他感测设备的最大分配,以补偿增加的最大分配。在块710中,图7的缓存调谐过程结束。

如上所述,在缺乏主机提供用于改进缓存使用的信息时,DSD 106可以考虑哪个感测设备正在发送数据和/或与接收的数据相关的信息,以改进DSD106中缓存存储器的使用。

其他实施例

本领域中的普通技术人员将理解,关于本文所公开的示例的各种说明性逻辑块、模块和过程可被实现为电子硬件、计算机软件或两者的组合。此外,上述过程可以体现在计算机可读介质上,该计算机可读介质致使处理器或计算机执行或执行某些功能。

为了清楚地说明硬件和软件的这种可互换性,一般来说,各种说明性组件、块和模块就其功能而言已经在上文描述。这种功能是否实现为硬件或软件取决于对整个系统施加的特定应用和设计约束。本领域普通技术人员可以以各种不同的方式对每个特定应用实现描述的功能,但这种实施方式决定不应被解释为致使偏离本公开的范围。

关于本文公开的示例所描述的各种说明性的逻辑块、单元、模块、和控制器可以被实现或与被执行具有通用处理器、DSP、ASIC、FPGA或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件,或其经设计以执行本文所描述的功能的任意组合。通用处理器可以是微处理器,但可替换地,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP内核结合的一个或更多个微处理器、或任何其他这样的配置。

关于本文公开的示例所描述的方法或过程的活动可以直接体现在硬件中、在由处理器执行的软件模块中、或在两者的组合中。该方法或算法的步骤也可以根据示例中提供的那些以可替代的顺序执行。软件模块可以驻留在RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动介质、光学介质或任何本领域中已知的其他形式的存储介质中。示例性存储介质被耦合到处理器,使得处理器能够从存储介质读取信息,并向存储介质写入信息。在可替代方面,存储介质可以是处理器的部分。处理器和存储介质可以驻留在专用集成电路(ASIC)中。

提供了公开的示例实施例的上述说明书,以使本领域的任何普通技术人员中能够在本公开中制定或使用实施例。对这些示例的各种修改对本领域的普通技术人员来说显而易见,并且本文中公开的原则可以被应用于其他示例,而不脱离本公开的精神或范围。所描述的实施例在所有方面仅作为说明性和非限制性被考虑,因此,公开的范围由以下权利要求而不是由前述说明书指示。进入权利要求的等效性的含义和范围内的所有变化将被纳入其范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1