缓存数据的方法和系统的制作方法

文档序号:6508402阅读:214来源:国知局
专利名称:缓存数据的方法和系统的制作方法
技术领域
本发明主要涉及一种用于缓存数据(例如音频、视频和/或其他数据)的技术,特别是涉及使用包括近期访问请求信息的信息来提高缓存性能的缓存数据的方法和系统。
背景技术
数据缓存对于计算机系统的各个方面例如存储系统、文件系统、和互连网络(即,网络)系统是很重要的。数据缓存的基本概念是将近期比较可能被访问到的数据存放在容量有限,但相对速度快且昂贵的缓冲存储器元件中,该缓冲存储器元件“更接近”于终端用户。由于缓冲存储器容量有限,任何缓存系统的核心是其替换算法,该替换算法表示当缓冲存储器满时并且需要写入新的数据项时,哪些数据项应当从缓冲存储器中移除。
由于数据访问顺序事先是未知的,现有的缓存技术使用基于过去访问信息的替换算法。一种被称作为“最近最早使用(Least Recent Used)”(LRU)算法的现有替换算法是基于如果一个数据项曾经被访问,该数据项很可能在近期被再次访问的假设。因此,通过LRU算法,首先替换最近最早被访问过的缓存数据项。例如,LRU算法尤其适用于存储器和文件系统。另一种被称为“最不经常使用(Least Frequently Used)”(LFU)算法的现有替换算法是基于过去经常访问的数据项很可能在近期被再次访问的假设。因此,通过LFU算法,首先替换过去被访问次数最少的缓存数据项。例如,LFU算法尤其适用于互连网或基于网络的系统。
尽管诸如前述的LRU和LFU算法的现有替换算法有益于特定的应用,但它们的缺点在于它们仅使用过去的访问信息而不考虑近期访问信息。因此,需要一种使用包括近期访问请求信息的信息来提高缓存性能的数据缓存技术。本发明将阐述这些和/或其他问题。

发明内容
根据本发明的一个方面,公开了一种用于运行缓存系统的方法。根据一个示范性实施例,该方法包括在缓存系统的缓冲存储器中接收多个数据项的步骤,以及使用至少一个数据项的近期访问请求信息来替换缓冲存储器中该至少一个数据项的步骤。
根据本发明的另一个方面,公开了一种数据处理设备。根据一个示范性实施例,该数据处理装置包括用于缓存多个数据项的缓存装置。该处理设备使用至少一个数据项的近期访问请求信息,使得缓存装置中该至少一个数据项能够被替换。
还根据本发明的另一个方面,公开了一种缓存系统。根据一个示范性实施例,该缓存系统包括可操作用于缓存多个数据项的缓冲存储器。处理器可操作使用至少一个数据项的近期访问请求信息,使得缓冲存储器中该至少一个数据项能够被替换。


结合附图参考下文描述的本发明的实施例,本发明上述以及其他的特征和优点,以及获得它们的方式将变得更加清楚,并且本发明将被更好地理解,其中图1是适合用于实现本发明的示范性环境的图表;图2是示出图1每个缓存系统的进一步实施细节的方框图;图3是示出根据本发明一个示范性实施例的步骤的流程图;
图4是示出不同缓冲存储器大小的不同替换算法的命中率的曲线图;和图5是示出不同数量数据项的不同替换算法的命中率的曲线图。
这里所展示的范例示出了本发明的优选实施例,并且这样的范例并不认为是以任何方式限定本发明的范围。
具体实施例方式
现在参考附图,特别是图1,示出了适用于实现本发明的示范性环境100。如图1所示,环境100包括一个内容服务器(content server)10、一个或多个缓存系统20、和一个用户装置30。根据一个示范性实施例,环境100表示能够将来自内容服务器10的音频、视频和/或其他数据经由缓存系统20传送给用户装置30的网络。
内容服务器10可操作用于存储和发送数据。根据一个示范性实施例,内容服务器10可操作用于存储包括音频、视频和/或其他数据的数据,以及通过下载将这类数据经由缓存系统20发送给包括用户装置30的一个或多个用户装置,以响应请求信号。由内容服务器10存储和发送的数据在这里称为“数据项”并且每个这样的数据项表示诸如电影、歌曲等等的音频和/或视频内容。
每个缓存系统20可操作用于执行包括数据缓存功能的数据处理功能。根据一个示范性实施例,每个缓存系统20可操作用于缓存从包括内容服务器10和/或其他缓存系统20的一个或多个数据源下载的音频、视频和/或其他数据,并将缓存的数据提供给包括用户装置30的一个或多个用户装置,以响应请求信号。为了举例和解释,图1示出的环境100具有两个缓存系统20。然而,根据本发明可以使用更少或更多数量的这类缓存系统20。因此,在实践中使用的缓存系统20的实际数量是与设计选择有关的。同样根据一个示范性实施例,每个缓存系统20使用包括近期访问请求信息的信息来提高缓存性能。关于每个缓存系统20进一步的细节将在下面描述。
用户装置30可操作用于产生请求信号,该请求信号使诸如音频、视频和/或其他数据的数据从包括内容服务器10和/或缓存系统20的一个或多个数据源中下载,并且接收和处理合成的下载数据。根据一个示范性实施例,用户装置30可以体现为能够产生数据项的请求信号并能够接收所请求数据项的任何类型的设备、装置或系统。例如,用户装置30可以由任何类型的家用电器来实现,例如但不局限于电视机、计算机、机顶盒、录像机(VCR)、数字多功能光盘播放器(DVD)、视频游戏盒、个人视频录像机(PVR)、或其他装置。用户装置30包括一个输入元件,例如手持遥控器、有线和/或无线键盘、或其他输入元件,通过输入元件用户可以提供使用户装置30产生请求信号的输入。用户装置30可以具有一个集成的显示装置,和/或可操作地被连接到一个关联的显示装置。
参考图2,示出了图1每个缓存系统20的进一步实施细节的的方框图。如图2所示,每个缓存系统20包括诸如缓冲存储器22的缓存装置和诸如处理器28的处理装置。图2的上述元件可以通过使用一个或多个集成电路(IC)来实现。为了清楚描述,诸如电源信号这种与缓存系统20相关的某些传统元件和/或其他元件在图2中未示出。
缓冲存储器22可操作用于执行缓存系统20的数据缓存功能。根据一个示范性实施例,缓冲存储器22在处理器28的控制下可操作用于缓存从诸如内容服务器10和/或其他缓存系统20的一个或多个数据源下载的包括音频、视频和/或其他数据的数据。同样根据一个示范性实施例,缓冲存储器22在处理器28的控制下可操作用于将包括音频、视频和/或其他数据的缓存数据下载到其他缓存系统20和/或用户装置30。
处理器28可操作用于执行缓存系统20的各种处理功能。根据一个示范性实施例,处理器28可操作用于接收和处理由另外一个缓存系统20和/或用户装置30提供的请求信号来完成数据下载功能。如图2所示,处理器28通过产生提供给内容服务器10和/或另外一个缓存系统20的附加请求信号来响应所接收到的请求信号,从而使得一个或多个被请求的数据项下载到缓冲存储器22中。
处理器28同样可操作用于执行使缓冲存储器22中的数据项被替换的替换算法。根据一个示范性实施例,处理器28可操作用于使用一个或多个数据项的近期访问请求信息来提供使缓冲存储器22中的一个或多个数据项被替换的控制信号。根据这个示范性实施例,存储在缓冲存储器22中的每个数据项可以包括指示特定数据项已经被请求近期访问的时间的近期访问请求信息。指定数据项的近期访问时间可以基于该指定数据项的在先用户请求。如下文将要描述的,处理器28使得缓冲存储器22中具有最远的近期访问时间的数据项首先被替换。而且,当执行替换算法时,处理器28还使用数据项的过去访问信息。根据一个示范性实施例,指定数据项的这种过去访问信息包括该指定数据项先前被访问过的次数,和/或该指定数据项先前被最后一次访问的时间。下文将提供关于本发明这些方面的其他元件。
为了促进更好地理解本发明,现在将举个例子。参考图3,示出了根据本发明一个示范性实施例步骤的流程图300。为达到举例和解释的目的,参考图1环境100的元件以及图2的缓存系统20来描述图3的步骤。图3的步骤仅仅是示例的,并非以任何方式限定本发明。
在步骤310,多个数据项被放置在相应缓存系统20的缓冲存储器22中。根据一个示范性实施例,该数据项从诸如内容服务器10或另外一个缓存系统20的数据源被下载到缓冲存储器22中,以响应用户请求信号。该数据项包括音频,视频和/或表示电影、歌曲或其他内容的其他数据。同样根据一个示范性实施例,在步骤310被放置在缓冲存储器22中的每个数据项Ci至少包括三条信息fi,ni和pi,每条信息由相应的值表示。第一条信息fi表示数据项Ci的第一个近期访问时间。换句话说,第一个近期访问时间fi表示已经被请求访问的数据项Ci的下一个近期访问时间。如果对于指定的数据项Ci不存在有效的近期访问信息,则fi被设置为无穷大。这会出现,例如,如果数据项Ci被下载到缓冲存储器22中,不存在数据项Ci的近期请求。第二条信息ni表示数据项Ci先前被访问过的次数。第三条信息pi表示数据项Ci的最近一次被访问的时间。
在步骤320,识别具有最远的近期访问时间的数据项。根据一个示范性实施例,处理器28通过检验缓冲存储器22中每个数据项的第一个近期访问时间fi来执行步骤320。根据这个示范性实施例,在步骤320中,由处理器28识别缓冲存储器22中具有最大fi值的一个或多个数据项。
在步骤330,判定在步骤320中是否识别了多个数据项。根据一个示范性实施例,处理器28通过判定缓冲存储器22中的多个数据项的最大fi值是否相同来执行步骤330。如果在步骤330的判定是否,则处理流程进行到步骤390,此处在步骤320识别出的单个数据项被新的数据项替换。根据一个示范性实施例,处理器28提供一个或多个控制信号给缓冲存储器22,以执行步骤390的数据项的替换。
可选地,如果步骤330的判定是肯定的,则处理流程进行到步骤340,此处在步骤320识别出的多个数据项中最不经常访问的数据项被识别。根据一个示范性实施例,处理器28通过检验步骤320识别出的多个数据项以及确定具有最小ni值的那些数据项中的一个或多个来执行步骤340。
在步骤350,判定在步骤340是否识别出了多个数据项。根据一个示范性实施例,处理器28通过确定在步骤340所检验的多个数据项的最小ni值是否相同来执行步骤350。如果在步骤350的判定是否定的,则处理流程进行到步骤390,此处在步骤340识别出的单个数据项被新的数据项替换。根据一个示范性实施例,处理器28提供一个或多个控制信号给缓冲存储器22,以执行步骤390的数据项的替换。
可选地,如果在步骤350的判定是肯定的,则处理流程进行到步骤360,此处在步骤340识别出的多个数据项中最早被访问的数据项被识别。根据一个示范性实施例,处理器28通过检验在步骤340识别出的多个数据项以及识别具有最小pi值的这些数据项中的一个或多个来执行步骤360。
在步骤370,判定在步骤360是否识别出了多个数据项。根据一个示范性实施例,处理器28通过判定在步骤360检验的多个数据项的最小pi值是否相同来执行步骤370。如果在步骤370的判定是否,则处理流程进行到步骤390,此处在步骤360确定的单个数据项被新的数据项替换。根据一个示范性实施例,处理器28提供一个或多个控制信号给缓冲存储器22,以执行步骤390的数据项的替换。
可选地,如果步骤370的判定是肯定的,则处理流程进行到步骤380,在该步骤随机地选择缓冲存储器22中的一个数据项,并如前面所描述的在处理器28的控制下在步骤390被替换掉。根据一个示范性实施例,在步骤380,处理器28选择缓冲存储器22中最后的一个数据项,尽管在步骤380中还可以使用不同的选择标准。
上述所描述的图3的步骤可以通过按照规定的顺序排列缓冲存储器22中的数据项来执行,随后当接收到新的数据项时,按顺序替换最后一个数据项。数据项的规定顺序如下缓冲存储器22中的所有数据项首先根据上述fi值以升序排列(也就是,fi值最大的放在最后)。如果一个以上的数据项具有相同的fi值(例如,具有无穷大值的两个数据项被认为是具有相同的值),于是具有相同fi值的那些数据项根据上述ni值以降序排列(也就是,ni值最小的放在最后)。如果一个以上的数据项具有相同的ni值,则具有相同ni值的那些数据项根据上述pi值以降序排列(也就是,pi值最小的放在最后)。最后,如果还余留具有相等pi值的数据项,则那些余留的数据项按照随机顺序排列。当要进行替换时,顺序地替换最后的一个数据项。
现在参考图4和图5,示出了图3替换算法的仿真结果。这些仿真结果表明图3的替换算法提供了比某些现有的替换算法更好的结果。任何缓存系统中的一个重要参数是“命中率”,“命中率”是指具体数据项被访问的次数和总的访问数量之间的比率。图4是示出具有不同缓存大小的不同替换算法的命中率的曲线图400(沿着x轴的数字表示假定同一大小的数据项的缓冲存储器的存储容量)。图5是示出缓冲存储器中不同数量的数据项的不同替换算法的命中率曲线图500。
图4和图5所示的模拟结果是基于一个视频下载情景,在该情景中用户请求视频并且随后下载这些视频。这些视频的访问模式是基于已知的Zipf分布,该Zipf分布经常用于描绘影像出租,图书馆图书结算,等等。请求到达(requestarrival)是基于平均到达间隔设置为3分钟的泊松分布,延迟时间是基于平均时间设置为3小时的正态分布。除了图3的替换算法(称为“安排好的”(scheduled))之外,图4和图5示出了先前已经描述的LFU算法、将缓冲存储器中最常用的数据项放置在前的静态算法、和产生最大可获取命中率的优选算法的结果。如图4和图5所示,图3的替换算法恒定地产生高于其他现有替换算法的命中率,特别是当不同数据项的总数相对少时(例如,少于2000,参见图5)。
如这里所描述的,用于缓存诸如音频、视频和/或其他数据的方法和系统使用包括近期访问请求信息的信息以提高缓存性能。尽管本发明已经描述了最佳的设计方案,但在本公开的精神和范围内能够进一步修改本发明。例如,本发明可以应用于与不同于这里清楚地所描述的方式来使用近期访问请求信息的缓存系统。因此本申请意旨涵盖使用本发明一般原理的任何变形、使用或修改。此外,本申请意旨涵盖脱离本公开,但在本发明遵循的本领域已知或一般原理范围内和落在所附权利要求的限制范围内的这种范围。
权利要求
1.一种用于运行缓存系统的方法(300),包括步骤将多个数据项接收到所述缓存系统的缓冲存储器中(310);以及使用所述数据项中至少一个数据项的近期访问请求信息来替换所述缓冲存储器中的所述至少一个数据项(320,390)。
2.根据权利要求1的方法(300),其中所述替换步骤进一步包括使用所述至少一个数据项的过去访问信息(340,360)。
3.根据权利要求2的方法(300),其中所述过去访问信息包括所述至少一个数据项先前被访问过的次数(340)。
4.根据权利要求2的方法(300),其中所述过去访问信息进一步包括所述至少一个数据项先前被最后一次访问的时间(360)。
5.根据权利要求1的方法(300),其中所述近期访问请求信息包括所述至少一个数据项已经被请求近期访问的时间。
6.根据权利要求1的方法(300),其中所述至少一个数据项包括视频数据。
7.根据权利要求1的方法(300),其中所述至少一个数据项包括音频数据。
8.一种数据处理设备(20),包括缓存装置(22),用于缓存多个数据项;以及处理装置(28),使用所述数据项中至少一个数据项的近期访问请求信息使得所述缓存装置(22)中的所述至少一个数据项能够被替换。
9.根据权利要求8的数据处理设备(20),其中所述处理装置(28)使用所述至少一个数据项的过去访问信息使得所述的至少一个数据项能够被替换。
10.根据权利要求9的数据处理设备(20),其中所述过去访问信息包括所述至少一个数据项先前被访问过的次数。
11.根据权利要求10的数据处理设备(20),其中所述过去访问信息进一步包括所述至少一个数据项先前被最后一次访问的时间。
12.根据权利要求8的数据处理设备(20),其中所述近期访问请求信息包括所述至少一个数据项已经被请求近期访问的时间。
13.根据权利要求8的数据处理设备(20),其中所述至少一个数据项包括视频数据。
14.根据权利要求8的数据处理设备(20),其中所述至少一个数据项包括音频数据。
15.一种缓存系统(20),包括缓冲存储器(22),可操作用于缓存多个数据项;以及处理器(28),可操作用于使用所述数据项中至少一个数据项的近期访问请求信息使得所述缓冲存储器(22)中的所述至少一个数据项能够被替换。
16.根据权利要求15的缓存系统(20),其中所述处理器(28)进一步可操作用于使用所述至少一个数据项的过去访问信息,使得所述至少一个数据项能够被替换。
17.根据权利要求16的缓存系统(20),其中所述过去访问信息包括所述至少一个数据项先前被访问过的次数。
18.根据权利要求17的缓存系统(20),其中所述过去访问信息进一步包括所述至少一个数据项先前被最后一次访问的时间。
19.根据权利要求15的缓存系统(20),其中所述近期访问请求信息包括所述至少一个数据项已经被请求近期访问的时间。
20.根据权利要求15的缓存系统(20),其中所述至少一个数据项包括视频数据。
21.根据权利要求15的缓存系统(20),其中所述至少一个数据项包括音频数据。
全文摘要
一种用于缓存诸如音频、视频和/或其他数据的数据的方法和系统使用包括近期访问请求信息的信息来提高缓存性能。根据本发明的一个示范性实施例,缓存系统(20)包括可操作用于缓存多个数据项的缓冲存储器(22)。处理器(28)可操作用于使用至少一个数据项的近期访问请求信息,使得缓冲存储器(22)中的该至少一个数据项能够被替换。
文档编号G06F12/00GK101040267SQ200480044164
公开日2007年9月19日 申请日期2004年10月6日 优先权日2004年10月6日
发明者张军彪, 李钧, 斯奈德哈·维尔马 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1