管理缓存内容的存储的制作方法

xiaoxiao2020-7-22  6

专利名称:管理缓存内容的存储的制作方法
技术领域
本发明总体上涉及存储系统中的存储器件。更具体地,本发明涉及使用被配置用来存储缓存的内容的存储器件。
背景技术
缓存存储器(或者为了简短,“缓存(cache)”)通常用于复制存储在别处的原始数据,其中相比于本地、即从缓存存储器读取数据的成本,计算或取得原始数据是昂贵的。在数据的背景下,缓存“成本”和“昂贵”通常指一个设备(例如存储器件)通常经过数据网络从另一远程设备取得数据所需的时间、存储和计算资源。如果例如取得数据花费相当长的时间,则计算或取得数据认为是昂贵的。换句话说,缓存存储器是其中可以存储频繁被访问的数据以用于迅速访问的临时存储区域。一旦数据被存储在缓存中,就可以通过访问缓存的拷贝而不是再取得或再计算原始数据来进行将来的使用。缓存存储器使用缓存算法(在本领域中也称为“替换算法”或者“替换策略”), 通过这些算法缓存存储器管理数据存储。例如,当缓存已满时,缓存所使用的算法选择丢弃哪个(哪些)数据对象以便为新的数据对象腾出空间。由于缓存大小的限制(例如,根据具体配置,缓存大小可以在几兆字节到几十兆字节之间变化),缓存仅可以存储有限数量的数据对象或者有限大小的数据对象。用户通过使用移动联网技术而能够容易地访问的越来越多的数据的增加的消耗加剧了由有限缓存大小产生的问题,其中在移动联网技术中,通过移动(例如蜂窝)网络的媒体内容传送变得普遍。缓存方案的有效性极大地取决于所使用的缓存替换策略。传统的缓存策略通常使用称为最早使用(Least Recently hed,“LRU”-最早首先使用的项最先被丢弃)、LRU_阈值(-大于一定阈值大小的项永不改变)、或者最不经常使用(“LFU”-首先最不经常使用的项最先被丢弃)替换策略的方法以用于数据缓存。其他替换策略还考虑要存储或丢弃的文件的大小和/或等待时间(latency)和网络成本。传统的缓存替换策略是有问题的,因为它们主要涉及使用概况并且不是基于与缓存过程相关联的其他参数,因此是普通的并且不是最佳的。

发明内容
考虑到前述评价和当前需要,引入以媒体缓存的性能最优化的方式将缓存值与数据对象相关联的新的缓存替换策略将是有利的。除了现有技术之外或者不同于现有技术, 基于至少两个因素进行数据对象在存储器件上的存储和缓存1)存储器件的特性,以及2) 数据对象的特性。使用在此公开的缓存替换策略的存储器件可以是任何适当的存储器件,例如非易失性存储器件。通过例子,非易失性存储器件可以是闪存或基于EEPROM的存储器件。在此公开了其各种例子的实施例包括控制内容在存储器件上的存储的方法,该方法包括与被配置用来缓存内容的存储器件通信;以及至少部分地基于第一组数据对象的特性和存储器件的特性来确定将第一组数据对象缓存在存储器件上的存储成本。还可以基于要插入的数据对象的特性、要移除的数据对象的特性、和/或要更新的数据对象的特性,来确定存储成本。还可以基于受数据对象在存储器件上的缓存影响的主机的活动性的特性来确定存储成本。存储器件的特性可以包括以下的至少一个存储器件的内部结构、存储器件的使用年限(age)、存储器件的管理能力、存储器件的校正能力、存储器件的历史、已经存储在存储器件上的内容、和存储器件的环境情况。该方法还可以包括至少部分地基于所述存储成本来控制所述第一组数据对象在所述存储器件上的缓存。该方法还可以包括维持属于确定存储成本所基于的特性的信息的数据库。替代地,或另外附加地,该方法还可以包括在确定存储成本所基于的特性改变时,动态地更新所述存储成本。在前述方法的另一实施例中,一种可操作以与主机通信的存储系统包括存储器件,被配置用来缓存内容;存储器件代理,操作以确定将第一组数据对象缓存在所述存储器件上的存储成本;以及缓存管理器,操作以至少部分地基于所述存储成本来控制所述第一组数据对象在所述存储器件上的缓存。所述存储器件代理至少部分地基于所述第一组数据对象的特性和所述存储器件的特性来确定所述存储成本。所述存储器件代理可操作以与所述存储器件和所述缓存管理器通信,并向所述缓存管理器提供所述存储成本。存储器件的特性可以包括以下的至少一个存储器件的内部结构、存储器件的使用年限、存储器件的管理能力、存储器件的校正能力、存储器件的历史、已经存储在存储器件上的内容、和存储器件的环境情况。该存储器件可以具有符合快闪技术的配置。所述存储器件代理可以被嵌入在所述存储器件内,并且可以是容纳所述缓存管理器的主机的一部分。根据随后的附图和描述将清楚的是,所描述的实施例的另外的特征和优势是可能的。


为了更好地理解各种实施例,参考附图,附图中,贯穿全文,相似的数字指示相应的部分或元件,以及附图中图1是根据一个示例实施例的存储系统的方框图;图2是根据另一实施例的存储系统的方框图;图3是其中存储器件代理被嵌入存储器件内的图1的存储器件的方框图;图4是其中存储器件代理和缓存管理器被嵌入存储器件内的图1的存储器件的方框图;以及图5是根据一个实施例的将数据对象存储在存储器件上的方法的示例流程图。
具体实施例方式以下更详细地进一步描述各实施例及其各个方面。该描述不意图限制权利要求的范围而是提供这样的实施例的示例。因此以下讨论给出示例实施例,其包括用于与主机通信并管理存储器件的操作的各种存储系统。这样的系统可以实现为软件、固件或硬件或其任意组合。示例实施例的存储器件可以是嵌入在主机内的专用非可移除存储器件;或者可以是被配置用来从主机移除的可移除存储器件。适合于用作存储器件的一种类型的可移除存储器件是存储卡。存储卡共同用于为主管(host)它们的各种电子设备存储数字数据。一些存储卡是“可移除的”,这意味着它们能够从其主机移除,因此使得存储的数字数据可携带。存储卡可以具有相对小的外形因素。数字相机、蜂窝电话、媒体播放器/记录器(例如MP3和MP4)、手持或笔记本型计算机、个人数字助理(PDA)、网卡、网络设施、机顶盒、和手持机(hand-held)是示例的主机。 PDA通常已知为例如利用诸如地址簿、日志管理器、和电子记事本的各种个人信息管理应用而实现的用户持有的计算机系统。主机和/或外部设备可以通过本领域技术人员公知的有线或无线通信信道与存储器件通信。本公开的存储器件、存储系统和/或控制器可以符合本领域中已知的任何类型的存储器器件(例如闪存)、以及将在将来设计的存储器器件。该存储器件可以是即使在移除电源时仍然保留其存储器或存储的状态的非易失性存储器。该存储器件可以是可擦除可编程存储器,包括但不限于电可擦除可编程只读存储器(EEPROM)、EPR0M、磁阻随机存取存储器(MRAM)、铁电 RAM(FeRAM 或 FRAM)。在此公开的缓存替换策略以及使用该策略的存储器件不依赖于存储器的类型,并且可以利用任何类型的存储器实现,无论是闪存还是非闪存。使用在此公开的缓存策略的存储器件还可以符合3维存储器芯片技术。该存储器件可以符合安全数字(SD)存储卡格式,其用于存储诸如音频、视频、图片文件等文件的数字媒体。该存储器件还可以符合多媒体卡(MMC)存储卡格式、致密快闪 (CF)存储卡格式、快闪PC(例如ATA快闪)存储卡格式、智能媒体存储卡格式、USB快闪驱动器、或任何其他标准格式。这些存储卡的一个供应商是SanDisk公司,本申请的受让人。图1是根据一个示例实施例的存储系统10的方框图。存储系统10通常包括存储器件12、缓存管理器16和存储器件代理(agent) 18。存储器件12包括存储器14,用于存储和缓存数字内容;存储控制器15,用于管理存储器14 ;以及通信接口 11,用于便利存储控制器15和缓存管理器16以及存储器件代理18之间的通信。存储器14功能上被划分成两部分,一部分起着缓存存储器的作用(即其专用于缓存的数据对象)。存储器阵列14可以被配置为易失性或非易失性存储器单元的阵列(诸如 FLASH)ο通信接口 11还连接到存储器阵列14。通信接口 11和存储器14之间以及通信接口 11和存储控制器15之间的连接使得数据能够流入存储器件12和从存储器件12流出。 通信接口 11被配置用来在缓存管理器16的控制或监视下将数据对象存储在存储器14上。存储器件代理18确定潜在地将数据对象缓存在存储器件12上(即专用于缓存的数据项的存储器14的部分上)的存储成本。存储器件代理18可以被嵌入在存储器件12 内或者存储控制器15内,或者可以在它们外部。缓存管理器16可操作地连接到存储器件12和存储器件代理18。缓存管理器16 至少部分地基于存储器件代理18所提供的存储成本来控制数据对象在存储器件12上的缓存和存储。注意,缓存管理器16也如此基于从外部设备提供给其的其他标准来控制缓存和存储,诸如网络成本、用户经验成本、功耗等等。缓存的数据对象可以是或者可以包括连续的媒体内容(诸如流视频内容)和/或非连续的媒体内容(例如静止画面,诸如HTML文件)。在此公开的背景下,“存储成本”是缓存一个数据对象或一组数据对象的成本的数字表示。总体上,存储成本可以是正或者负。正的存储成本意味由于(例如)替换了数据对象,系统性能将恶化。负的存储成本意味在(例如)取回(retrieve)数据对象并释放存储器上的空间中获得更大的益处。存储成本通常提供从/向存储器件移除、更新和/或插入具体数据对象如何影响整体系统磨损和性能的指示。总体上,对于整体缓存平衡的考虑, 存储器件可以仅是一个元件。在本公开的背景下,“数据对象”指根据某规范(即数据格式)或在具体的数据结构中被组织为一组二进制位的信息。数据对象可以被组织为文件(或文件集合)、一个或多个扇区、一个或多个簇、一个或多个数据库记录、一个或多个表格项、一个或多个文件头、其他文件部分、一个或多个音轨、一个或多个音乐记录、一个或多个地图、一个或多个视频剪辑、诸如用户账户信息的安全内容等等。“一组数据对象”包括一个或多个数据对象。在此通过“内容”来指包括数据对象和/或属于该数据对象的信息的信息位。下文中,“内容”和“数据对象”可互换地使用。存储器件代理18基于两个因素确定与数据对象相关联的存储成本,这两个因素是(1)要在其上存储数据对象的存储器件的特性,以及( 数据对象的特性。除了传统上使用的其他因素之外,或者作为对传统上使用的其他因素的替换,可以使用这两个因素。这可以数学上反映在各种方式中。一种方式涉及为每个特性给出相应的加权索引的加权线性函数。例如,相比于其他特性,数据对象的一些特性可能对整体存储成本更重要并且/或者可能对整体存储成本具有更大影响。在整体存储成本确定中,这些特性则可能接收存储器件代理18的更多权重。加权索引本质上最终是主观的(subjective)并且反映几个方面之间的折衷,因此关于具体配置来确定。除了其他之外,数据对象的特性的例子还包括数据对象的类型(例如固定数据、 随机数据等等)以及数据对象的大小。存储器件代理18可以基于已经存储在存储器件12 上的数据的特性来确定存储成本。例如,存储固定数据(诸如文本文件)相比于随机数据 (例如,诸如描述作为压缩文件的JPEG(联合画面专家组)文件特征的数据)可能得到更低的存储成本。例如,存储器件代理18可以根据与该数据对象相关联的元数据来确定不同类型的数据对象。存储器件(例如存储器件12)的特性至少包括存储器件的内部结构(例如存储器阵列的物理结构)。例如,与在多级单元(“MLC”)存储区域上缓存数据对象相比,在单级单元(“SLC”)存储区域上缓存数据对象对插入(即存储)成本具有不同影响。存储器件的特性的其他非限制性例子是存储器件的情况(例如磨损和使用年限)、存储器件的控制器的管理能力、存储器件的误差校正能力、事务历史(例如存储器件进行的读/写操作/周期的数量、读/写操作的频率等等)、已经存储在存储器件上的内容、和存储器件的环境情况(例如温度、电压变化或电压稳定性)。当计算存储成本时,存储器件代理18还可以考虑相对于存储器件12的特性的存储系统10整体上的特性、以及属于存储器件12的处理。通常,存储器件代理18还基于还要存储在存储器件中的数据对象的特性和/或作为移除和/或更新的候选的数据对象的特性来确定存储成本。还可以基于主机的或运行在主机上的处理、应用、驱动器、在存储器件12和主机之间设置的协议、和/或受到存储在存储器件12上的内容影响的其他主机活动性,来确定存储成本。例如,在存储设备和主机之间的数据传送可能影响运行在主机上的其他处理 (例如,在服务质量方面)。以类似的方式,运行在主机上的处理可能影响存储器件12上的缓存。这又可能影响存储成本。存储器件代理18维持属于存储器件12的特性、属于存储在存储器件12上的缓存的内容的特性、属于要向和从存储器件12插入/移除/更新的数据对象的特性、包括确定存储成本所基于的其他特性和主机处理的信息20的数据库。随着这些特性中的任何一个的每个改变,存储器件代理18动态地更新信息20的数据库。此外,因为随着存储器件12正经历的每个改变而影响到存储器件12的特性,因此据此动态地更新存储成本。换句话说,包括与1)数据对象和/或2、存储器件相关联的媒体数据的一个或多个数据对象的属性的任何插入、替换、移除、更新、改变和/或任何其他修改可能导致具体一个或多个数据对象的存储成本的改变。另外,更新给定数据对象的存储成本可能还需要更新任何一个或多个其他数据对象的存储成本。注意,可以通过存储器件代理14和/或存储器件12来应用动态更新。存储器件代理18可以嵌入在存储器件12内。或者,存储器件代理18是容纳缓存管理器16的主机的一部分或者嵌在主机上,作为缓存管理器16内的集成组件。如果存储器件代理18不是存储器件12的内部组件,则存储器件代理18可操作以与存储器件12通信来获得其特性。缓存管理器16进行的存储控制包括将数据对象编程在存储器件12上。如果存储部分未满,则缓存管理器16将给定的数据对象编程在存储器件12上。但是,如果存储部分已满,则缓存管理器16需要确定要移除哪个数据对象。缓存管理器16基于提供给其的一组度量来确定。通常,具有最低存储成本值(如由相应组的度量指示)的数据对象对降低整体系统性能具有最小的影响,因此其被选择来被替换。注意,根据具体配置,可以由存储器件代理14和/或缓存管理器16来选择用于替换的现有数据对象。这样的存储控制可以在各缓存管理器之间以及各系统配置之间变化。例如,符合第一配置的缓存管理器可能确定在整体缓存平衡方面在存储器件12 上替换/取回(retrieval)某个数据对象及释放存储器空间的影响在系统性能方面是有益的;而符合第二配置的缓存管理器可能确定这样的替换/取回对整体系统性能不是有效的。在确定移除成本和插入成本后,缓存管理器16现在可以将数据对象缓存在存储器件12的缓存部分15上,因此通常替换掉对降低整体系统性能具有最小影响的数据对象。在存储器件12作为存储系统10的组件的情况下,缓存管理器16可以还基于不是存储成本的缓存成本来控制数据对象的缓存。例如,缓存成本可以是网络成本(即,数据对
7象的每字节进出联网设备和在存储系统内的传送的成本)、用户经验成本(即,由于在html 页等等中的数据对象的布置而将整个数据对象加载到存储器件上花费的时间量)、CPU消耗、和/或功耗的指示。此外,缓存管理器16还可以结合目前已知的或者仍需要引入的任何替换策略,或者在目前已知的或者仍需要引入的任何替换策略之外,进一步控制数据的缓存。如以上在此所述,存在用于媒体缓存的多个目标(objective)。所有这些目标关于缓存使用彼此竞争。如果使用示例实施例的一个目标希望为存储器件的具体特性(在缓存成本方面)付出更多,则存储器件代理14可以被配置来有利于这方面。根据一个实现方式,缓存管理器16驻留于存储器件12中。也如此用于实现存储器件中的缓存管理器的一个示例实施例表示在图4中。根据另一实现方式,缓存管理器16 可以是在存储器件12外部并且可以通过有线和/或无线通信链路来连接到存储器件12的远程设备。从而,缓存管理器16可以与存储器件12 —起并与存储器件12物理上分离地驻留于主机中。图2是其中存储器件代理18被嵌入在缓存管理器16内的图1的存储系统的方框图。在此示例实施例中,存储器件代理18是缓存管理器16的组件,存储器件代理18经由缓存管理器16与存储器件12通信。图3是其中存储器件代理18a被嵌入在存储器件1 内的存储器件1 的方框图。 存储器件1 包括存储器阵列14a、通信接口 Ila和存储器件代理18a,它们例如分别以与图1中的存储器阵列14、通信接口 11和存储器件代理18类似的方式起作用。图4是其中存储器件代理18b和缓存管理器16b被嵌入在存储器件内并使用存储器件12b的资源彼此通信的存储器件12b的方框图。存储器件12b包括存储器阵列14b、通信接口 lib和存储器件代理18b,它们例如分别以与图1中的存储器阵列14、通信接口 11 和存储器件代理18类似的方式起作用。图5是根据一个实施例将新的数据对象存储在存储器件的缓存部分上的方法30 的流程图。图5所示的方法由诸如图1的存储器件代理18的存储器件代理执行,以将成本值与作为用于在存储器件12的存储器14中缓存的候选的每个新数据对象相关联。如上所述,基于至少以下两个因素对新的数据对象计算成本值存储器件的特性和新数据对象的特性。在步骤S31,存储器件代理18接收来自缓存管理器16的将新数据对象缓存在存储器件12上的请求。在步骤S32,存储器件代理18获得属于存储器件12的特性以及属于新数据对象的特性的信息。用于计算存储成本的存储器件12的特性可以随时间动态地改变并可以包括各种结构特性、以及存储器件12的其他物理特性,如上所述(例如,存储器件的使用年限、 存储器件的管理能力、等等)。这些特性用于计算新数据对象的存储成本,并且可选地可以在步骤S33存储在由存储器件代理18动态地更新的数据库中。在步骤S34,存储器件代理18评估已经缓存的数据项,并且选择一个或多个缓存的数据项以便用新数据对象替换它们,或者仅用新数据对象更新。注意,存储器件代理18 和/或缓存管理器16可以选择被指定用于替换/更新的数据对象。例如,按照有多少缓存的数据对象应该或者能够被移除来为指定的数据对象腾出空间,可以基于要插入的指定数据对象的大小来实施选择用于在步骤S36的替换的数据对象。存储器件代理18可以按本领域中已知的各种方式中的任意方式来确定用于从存储器件12替换/取回数据对象的替换成本(或者可以访问这样的替换成本)。根据一个例子, 存储器件代理18预先确定在具体数据对象被缓存在存储器件12中时此数据对象的替换成本。然后,当需要器件代理18选择用于替换的一个或多个数据对象时,存储器件代理18可以确定最小需要大小和最小替换成本的数据对象(或一群数据对象)。在步骤S35,存储器件代理18计算将新数据对象缓存在存储器件上的存储成本。 如上所述,这样的确定是基于存储器件12的特性以及基于还要缓存的新数据对象的特性, 以及可选地基于作为从存储器14移除的候选的已缓存的数据对象的特性。还可以基于将数据对象缓存在存储器14上对主管存储器件12的主机的活动性所具有的影响,来确定对新数据对象计算的存储成本。属于主机活动性的信息可以经通信路径从主机通信到存储器件代理18。然后在步骤S36,存储器件代理18将存储成本转发到缓存管理器16以便使得缓存管理器16 (至少部分地)基于该存储成本来管理/控制数据对象在存储器14上的缓存 (S37)。再次,提供给其的存储成本可以仅仅是缓存管理器所考虑的整体缓存平衡中的一个要素,并且可以累计到针对缓存控制操作所提供的(不是存储成本的)其他缓存成本。示例实施例的存储器件可以是预配置了该功能性的专用设备或者已被配置来包括至少一些以上在此所述的功能性的设备。如熟悉本领域的技术人员将认识到的,当前的存储器件采用各种不同的架构,并且预期将继续开发新的架构。总体上,只要使用的存储器件具有适当的处理能力,可以与各种不同类型的存储器结合地采用示例实施例。在此所述的各实施例及其各个示例可以实现为硬件、软件、固件、或硬件和软件的任意组合。硬件和软件的通常组合可以是具有如下计算机程序的通用计算机系统,当被加载和执行时,该计算机程序控制该计算机系统使得其实施在此所述的方法。以上所述的概念还可以嵌入计算机程序产品中,该计算机程序产品包括使得能够实现在此所述的各实施例的所有特征,并且当被加载在计算机系统中时,其能够实施这些实施例。本发明背景下的计算机程序或应用意味着一组指令的以任何语言、代码或符号的任意表达,该组指令意图致使具有信息处理能力的系统直接或者在以下之一或两者之后执行具体功能a)转换到另一语言、代码或符号;b)以不同的素材形式再现。已经描述了存储器件和方法的各个实施例,要理解,该描述不意味限制,因为现在进一步的修改将自我暗示给本领域技术人员,并且意图将这样的修改覆盖为落在所附权利要求的范围内。
权利要求
1.一种控制内容在存储器件上的存储的方法,该方法包括与被配置用来缓存内容的存储器件通信;以及至少部分地基于第一组数据对象的特性及基于所述存储器件的特性来确定将所述第一组数据对象缓存在所述存储器件上的存储成本。
2.如权利要求1的方法,还包括至少部分地基于所述存储成本来控制所述第一组数据对象在所述存储器件上的缓存。
3.如权利要求1的方法,其中还基于要插入的数据对象的特性来确定所述存储成本。
4.如权利要求1的方法,其中还基于要移除的数据对象的特性来确定所述存储成本。
5.如权利要求1的方法,其中还基于要更新的数据对象的特性来确定所述存储成本。
6.如权利要求1的方法,其中所述存储器件的特性包括以下的至少一个存储器件的内部结构、存储器件的使用年限、存储器件的管理能力、存储器件的校正能力、存储器件的历史、已经存储在存储器件上的内容、和存储器件的环境情况。
7.如权利要求1的方法,还包括维持属于确定存储成本所基于的特性的信息的数据库。
8.如权利要求1的方法,还包括在确定存储成本所基于的特性改变时,动态地更新所述存储成本。
9.如权利要求1的方法,其中还基于受数据对象在存储器件上的缓存影响的主机的活动性的特性来确定所述存储成本。
10.一种操作来与主机通信的存储系统,所述存储系统包括存储器件,被配置来缓存内容;存储器件代理,操作以至少部分地基于第一组数据对象的特性及基于所述存储器件的特性来确定将所述第一组数据对象缓存在所述存储器件上的存储成本;以及缓存管理器,操作以至少部分地基于所述存储成本来控制所述第一组数据对象在所述存储器件上的缓存,其中所述存储器件代理操作以与所述存储器件及与所述缓存管理器通信,并向所述缓存管理器提供所述存储成本。
11.如权利要求10的存储系统,其中所述存储器件的特性包括以下的至少一个存储器件的内部结构、存储器件的使用年限、存储器件的管理能力、存储器件的校正能力、存储器件的历史、已经存储在存储器件上的内容、和存储器件的环境情况。
12.如权利要求10的存储系统,其中所述存储器件具有符合快闪技术的配置。
13.如权利要求10的存储系统,其中所述存储器件代理被嵌入在所述存储器件内。
14.如权利要求10的存储系统,其中所述存储器件代理是容纳所述缓存管理器的主机的部分。
全文摘要
一种控制内容在存储器件上的存储的方法,包括与被配置用来缓存内容的存储器件通信;以及确定将第一组数据对象缓存在所述存储器件上的存储成本。所述确定至少部分地基于所述第一组数据对象的特性和所述存储器件的特性。还提供了一种存储系统,其包括能够缓存媒体内容的存储器件;存储器件代理;以及缓存管理器。存储器件代理可操作以与所述存储器件及与所述缓存管理器通信,并向所述缓存管理器提供存储成本。存储器件代理至少部分地基于数据对象的特性和存储器件的特性来确定将数据对象缓存在所述存储器件上的存储成本。
文档编号G06F12/08GK102171663SQ200980138613
公开日2011年8月31日 申请日期2009年8月2日 优先权日2008年8月4日
发明者阿兰·诺奇莫斯基, 阿隆·马库 申请人:桑迪士克以色列有限公司

最新回复(0)