接收器装置及方法

文档序号:7735344阅读:203来源:国知局
专利名称:接收器装置及方法
技术领域
本发明涉及通信系统,特别涉及使用包括多个周期性地重复的模块的多路复用信号的通信系统。
交互数字电视应用,例如远程银行业务、远程购物或电子报纸,通常以类似循环播放流(carousel)的方式广播,其中,相应的数据部分在传输流中周期性地重复。
DSM-CC(数字存储介质-命令和控制)对象循环播放流是在交互式数字电视中使用的这样一类广播文件系统。它们已经被指定为以几种标准提供内容的系统,包括UK数字陆地组指南和DVB多媒体家庭平台(MHP)。一个DSM-CC对象循环播放流包括若干‘模块’,每一模块包括一个较大的目录结构的一部分,或者是几个小文件(在这一场合,最大模块大小是64K字节),或者是一个大文件(在这里,模块可以是任意大小)。然后使用数字TV信号广播这些模块,其中某些模块可能被重复以改善访问时间。一旦广播完所有模块,则广播器返回到开头,再次开始广播这些模块。这一过程和广播电视图文页的方式有相似之处,但以DSM-CC替换单个电视图文页作为基本单元。
使用DSM-CC的数字TV平台通常以超高速缓冲存储至少一些DSM-CC模块,以避免在访问模块时遇到与电视图文相像的那些系统的长时间的延迟,这种延迟是由必须等待被请求的模块轮到它广播而引起的。这种超高速缓冲存储器可能相当小,因此有效管理这一超高速缓冲存储器十分重要。在DVB MHP平台上,增加了超高速缓冲存储器管理的另一个复杂程度,因为一个使用DSM-CC的应用广播可以访问对象循环播放流和从它加载文件。
DSM-CC超高速缓冲存储器的作用实际上作为存储器中独立于所有其它部分的一小部分。在该存储器(即在这一情况下被加载的DSM-CC模块)中建立对象并且在后来不再需要它们时必须释放这些对象。该平台必须决定在什么时候可以释放一个模块,以避免在重新加载一个模块时的长的延迟,如果它仍被使用的话。
在管理存储器时的另一个不断出现的问题是分片的问题。随着对象在存储器中被建立和破坏,可用的自由空间被分片,在自由空间的区域之间存在多条仍然有效的存储器片段。这可能导致不能分配大块的存储器,而在给定可能的DSM-CC的大小后可能是一个很重要的问题。
本发明提供一种方法和装置,用于管理在所附权利要求中定义的DSM-CC和相似的超高速缓冲存储器,现在引用这些权利要求,而其说明被包括在这里作为参考。
把超高速缓冲存储器想像为存储器的一个小的、独立的部分,就可以把现有的垃圾收集算法应用于管理超高速缓冲存储器而解决上述问题。垃圾收集是一种用于管理某些计算机系统和编程语言(特别是Java)中的存储器的方法,在这些地方用户不必在使用后明确释放存储器。与之不同的是,系统将检测不在使用的存储器而自动释放它。有一些不同的垃圾收集方法,其中一些比另一些更可应用于某种机器和应用程序。
由于DSM-CC超高速缓冲存储器的特征,特别是这一事实,即只有对一个模块的引用来自DSM-CC超高速缓冲存储器外部,因此可以使用一种高效的垃圾收集引用计数实施来管理超高速缓冲存储器。这一实施包括跟踪对在由垃圾收集器操作的存储器区域中的一个对象的引用的次数。如果引用次数为零,则可以可靠地收回该对象。一般,纯粹的引用计数算法不能用于垃圾收集,因为任何引用它自身的数据结构(无论是直接还是间接)将总具有一个至少为1的引用计数,因此永远不会被收回。然而,这种类型的结构决不会在DSM-CC超高速缓冲存储器中出现,因为一个模块永不会有对另一个模块的引用,和对一个模块的所有引用将来自超高速缓冲存储器外部。
另一类型的垃圾收集器是一种紧凑的垃圾收集器,它可以使用引用计数作为算法的一部分,其中,代替直接引用超高速缓冲存储器中的对象,应用程序具有一个对“句柄的引用”,它提供表示间接程度。然后它允许垃圾收集器把数据移动到存储器中,以便把所有自由空间归集到一个块,从而允许比用其他方法可能建立更多对象。这使得它特别适合于解决分片的问题。
现在参考附图举例说明本发明的实施例,附图中

图1是体现本发明的装置的一般化的示意方框图。
图2a到2e是示意方框图,以5级操作表示本发明的一个实施例的例子。
图3a到3e是示意方框图,以5级操作表示本发明的另一个实施例的例子。
图4a到4b是示意方框图,以两级操作表示本发明的再一个实施例的例子。
参考图1的方框图,图中提供一个用以发射信号13例如数字电视信号的发射机10。这一信号包括一些周期性地重复的模块。接收器12,诸如通常称为“机顶盒”类型的,接收所述信号。接收器12包括从信号抽取文件模块的设备11和超高速缓冲存储器14。超高速缓冲存储器14用于在需要时存储某些模块,使它们可以被快速访问。抽取器11包括文件管理设备,用以从超高速缓冲存储器中以有序方式增加和删除文件。
图2表示一个在4个不同操作阶段的机顶盒。该机顶盒包括用于处理模块的处理单元20和超高速缓冲存储器21,超高速缓冲存储器21大到可以存储6个模块。在DSM-CC超高速缓冲存储器的场合,通过打开一个文件(它将映射在一个或者多个DSM-CC模块上)的动作来建立引用,并通过关闭文件而删除该引用。由于这一理由,通过在打开一个文件时增量该文件的引用计数和在关闭文件时减量它的引用计数就可以容易地跟踪引用计数。当引用计数为零时,该模块可以标记为可以删除。然后该模块由垃圾收集器在适当时间删除。同时,如果产生了从该模块打开一个文件的请求的话,则该模块仍然可以从超高速缓冲存储器中使用。
图2a有超高速缓冲存储器21的前4个单元被4个模块Ma、Mb、Mc、Md所填充。每一这些模块Ma、Mb、Mc、Md由处理单元20引用,因此它们的引用计数为1。超高速缓冲存储器的最后两个单元空,用E表示。
在图2b的例子中,处理单元20停止引用超高速缓冲存储器中的第二和第三模块Mb、Mc。这意味着存储器的这些相应单元的引用计数降落到零。结果,这些文件标记为删除D并由垃圾收集器在适当时间删除。这有可能立即发生,或者可以在垃圾收集周期的晚些时候发生。在未立即删除的场合,如果从一个这样的模决中发布对一个文件的请求的话,它们仍然可用。
在图2c,又要引用超高速缓冲存储器中的第二单元中的模块Mb,这一超高速缓冲存储器单元的引用计数将增量,并且这一模块Mb不再标记为删除。取出两个新的模块Me和Mf并存储到超高速缓冲存储器的接着可用的单元,亦即第五和第六单元。超高速缓冲存储器21在此刻已存满。
在图2d中,超高速缓冲要存储另一个新的模块Mg。因为超高速缓冲存储器21当前已满,因此系统寻找标记为删除D的文件。在这一场合,第三单元如此标记,因为它的引用计数是零,因此删除放在其中的模块Mc。这释放出需要的空间,因此新模块Mg可以保存在这里,这可从图2e看出。
DSM-CC的一个特殊性在于,一个文件的内容可以动态更新并插入循环播放流中。每一模块有一个与它相关的版本号,DSM-CC超高速缓冲存储器可以使用该版本号来检查该模块是否改变。在超高速缓冲存储器检测到一个包含一个当前被打开的文件的模块的更新版本的场合,超高速缓冲存储器不能简单地替换掉旧模块。这将引起数据完整性太多的潜在的问题。然而,感兴趣的是高效的超高速缓冲存储器的管理,使得只要可能就释放模块的旧版本。
当引用计数到达零时在模块的后来版本存在于超高速缓冲存储器中的场合,就立即从超高速缓冲存储器中删除该模块,使得对在该模块中的文件的任何请求将从该模块的一个最近的版本返回一个对该文件的引用。这保证一个模块的旧版本不再使用超高速缓冲存储器中可能被更有效使用的空间,还保证只有最近的版本可由来自一个应用程序的任何新请求所访问。这表示在图3a-3e。
图3a表示和图2a中同样的超高速缓冲存储器21和机顶盒20。这一次前4个单元用Ma1、Mb1、Mc1、Md1填充,每一个模块都被引用。下标1表示这是超高速缓冲存储器中的各模块的第一个版本。最后两个单元为空。
在图3b取出模块Mb和Mc的晚一些时的版本(Mb2,Mc2)。然而,较早一些时的版本Mb1,Mc1仍然被引用,因此不能删除。因此这些较晚一些时的版本Mb2,Mc2存储在两个空的超高速缓冲存储器单元中,如图3c所示。
在图3d中,模块Mc1不再被引用,因此它的引用计数降为零。不像存储在超高速缓冲存储器中的模块的最近版本的场合,在那里不再被引用的模块被标记为要删除,在需要时被删除,而在目前场合,如果在超高速缓冲存储器21中有一个最近的版本的话,则较早的版本被立即删除。因此任何后继对Mc的引用将被导向最近的版本Mc2。在图3e中,模块Mb1不再被引用,因此也被立即删除。
上述方法在从超高速缓冲存储器中清除冗余文件时是有效的,因此管理超高速缓冲存储器更有效。然而,这一方法也倾向于使超高速缓冲存储器分片,因此有可能使其不能超高速缓冲存储大模块,这是因为没有足够大的洞(连续空闲的超高速缓冲存储器块),即使有足够的总空闲空间用来存储。
图4表示一个合适的垃圾收集方法,它紧密排列超高速缓冲存储器而解决分片问题。在这一方法中的主要区别是每一模块有它自己的句柄。该句柄通常有一个指向该模块所驻留的堆阵中的地址的指针和该模块的一个引用计数。对一个模块的任何引用通过句柄进行,因此,当在堆阵中的一个对象的位置被改变时,只需相应改变句柄。对一个模块的所有其它引用不受影响,因为它们引用相应句柄。
参考图4a,有一个14单元的超高速缓冲存储器40,其中5个不同大小的模块当前存储M1-M5。还有一个句柄表41,它包含每一模块H1-H5的句柄,H1相应于M1,H2相应于M2,等。在每一句柄中的第二个数字是指针地址,(每一指针也表示为指向超高速缓冲存储器40的一个箭头)和最后的在括弧中的数字是它的引用计数(每一引用表示为对该句柄的一个箭头)。
在这一例子中,由于模块的删除,超高速缓冲存储器已经被分片到这样的程度,即它已经不能容纳大小是3个单元的模块,尽管它总共有7个空闲单元和一个包含冗余模块M4的单元。
该方法首先的工作是从最初开始并完成扫视句柄表41。这一扫视阶段检查每一句柄的引用计数。从该表中清除引用计数为零的任何句柄。继续这一检查直到到达表41的末尾。
然后开始致密化阶段。首先,删除没有句柄的任何模块。然后对于每一个句柄,把每一相应的模块移动到超高速缓冲存储器中最低空闲区域中。然后更新句柄数据以反应这一新位置,继续这一工作直到到达句柄表41的末尾。
图4b表示在完成这一致密化后的情形。由于句柄H4未被引用,因此将它连同它相关的模块M4一起删除,然后把其余模块重新放置在最低空闲区域,也就是说,0为M1,2为M2,4为M3和5为M5。相应更新句柄中的指针。现在应该显然,大小为3个单元(甚至是这一大小的两倍)的模块可以轻松地放在其中。
应该注意,技术中已知的其它致密化垃圾收集方法也可以适合执行该方法,只要它们执行下面的步骤(最后两个的顺序可以颠倒)●检查引用计数和注意有效的数据结构;●通过重新布置单元使数据结构致密化;●更新指向移动的单元的指针值。
其它合适的方法包括双指算法、向前地址算法和基于表的方法。有关这些方法的细节可以在Jones和Lins所著“Garbage Collection(垃圾收集)”,ISBN 0 471 94148 4,第五章中找到。
权利要求
1.一种用于接收器中的超高速缓冲存储器管理的方法,用于接收由多个周期性地重复的数据部分组成的信号,所述接收器包括用于超高速缓冲存储在该信号中所包含的数据部分的存储装置,其中对一个数据部分的访问导致建立相应的引用,当该引用不再被访问时则所述引用被清除,并且其中如果数据部分没有针对它的引用,则使所述未引用的数据部分被加上标记以便删除。
2.权利要求1所述方法,其中,为每一数据部分保持一个引用计数,每次在建立一次引用时使所述引用计数增量,和每次清除一次引用时使所述引用计数减量,从而使得具有零引用计数的数据部分被加上标记以便删除。
3.权利要求1或者2所述方法,其中,所述被加上标记以便删除的数据部分在需要空间时被删除,并且在它们被删除前可以被重新访问。
4.前述任何权利要求所述方法,其中,每一数据部分在相应的文件名下被接收,并且其中在接收器中修改所接收的文件名以便区别在所述数据存储设备中存储的信号的同一数据部分的先前的和后来的版本。
5.权利要求4所述方法,其中,在存储设备中存储有数据部分的一个较晚版本的场合,同一数据的先前的版本在不再被引用时被立即删除。
6.前述任何权利要求所述方法,其中,通过对被引用的数据部分加标记、然后以任何顺序把它们一起重新放置到存储设备的一个部分以使这些引用过的数据部分致密化和更新指向被移动单元的指针值,从而使存储设备致密化。
7.权利要求6所述方法,其中每一数据部分具有一个分配给它的相应的句柄,这里对一个数据部分的所有引用都通过所述句柄进行,并且其中句柄包括至少一个指向所述相应数据部分的指针和一个用于对通过所述句柄引用所述数据部分的数量进行计数的引用计数器。
8.一种用于接收器中的超高速缓冲存储器管理的方法,用于接收由多个周期性地重复的数据部分组成的信号,所述接收器包括用于超高速缓冲存储在信号中包含的数据部分的存储装置,其中,对一个数据部分的访问导致建立相应的引用,当该引用不再被访问时所述引用被清除,其中,对被引用的数据部分加标记,然后以任何顺序把它们一起重新放置到存储设备的一个部分以使这些被引用过的数据部分致密化,和相应地更新指向被移动单元的指针值。
9.权利要求8所述方法,其中,每一数据部分具有一个分配给它的相应的句柄,这里,对一个数据部分的所有引用通过所述句柄来进行。
10.权利要求9所述方法,其中,所述句柄包括至少一个指向所述相应的数据部分的指针和一个用于对通过所述句柄引用所述数据部分的数量进行计数的引用计数器。
11.权利要求10所述方法,其中,通过参考每一句柄的引用计数器而标记被引用的数据部分。
12.前述任何权利要求所述方法,其中,所述接收器是一个广播接收器和接收的数据包括DSM-CC(数字存储介质-命令和控制)标准模块。
13.一个接收装置,用于接收由多个周期性地重复的数据部分组成的信号,所述接收器包括用于超高速缓冲存储包含在所述信号中的数据部分的存储设备,其中对数据部分的访问导致建立一个相应的引用,当所述引用在不再被访问时则被清除,并且其中如果一个数据部分没有针对它的引用,则使所述未引用的数据部分被加上标记以便删除。
14.权利要求13所述装置,其中,所述接收器具有为每一数据部分保持一个引用计数的设备,所述引用计数在每次建立一个参考时增量,而在每次清除一个引用时减量,从而使得具有零引用计数的数据部分被加上标记以便删除。
15.权利要求13和14所述装置,其中,每一数据部分在相应的文件名下被接收,并且其中在接收器内修改所接收的文件名以便区别存储在所述存储设备中的信号的同一数据部分的先前的和后来的版本。
16.权利要求15所述装置,其中,在存储设备中存储了较近版本的场合,同一数据部分的先前版本在不再被引用时立即删除。
17.权利要求13和14所述装置,其中,存储设备通过标记被引用的数据部分、然后以任何顺序把它们重新放置到存储设备的一个部分以使这些引用过的数据部分致密化和更新指向被移动单元的指针值而使存储设备致密化。
18.一个接收装置,用于接收由多个周期性地重复的数据部分组成的信号,所述接收器包括用于超高速缓冲存储包含在所述信号中的数据部分的存储设备,其中对数据部分的访问导致建立一个相应的引用,所述引用在不再被访问时被清除并且其中对被引用的数据部分加标记,然后以任何顺序把它们一起重新放置到存储设备的一个部分以使这些被引用的数据部分致密化和相应地更新指向被移动单元的指针值。
19.权利要求18所述装置,它被安排成每一数据部分具有一个分配给它的句柄和且其中对一个数据部分的所有引用都通过所述句柄来进行。
20.权利要求19所述装置,它被安排成所述句柄包括至少一个指向所述相应的数据部分的指针和一个用于对通过所述句柄引用所述数据部分的数量进行计数的引用计数器。
21.权利要求13到20中任何一个权利要求所述装置,它被安排使得所述接收器是一个广播接收器和所接收的数据包括DSM-CC(数字存储介质-命令和控制)标准模块。
22.权利要求8所述方法,其中,所述接收器是一个广播接收器和所接收的数据包括DSM-CC(数字存储介质-命令和控制)标准模块。
23.权利要求18所述装置,它被安排使得所述接收器是一个广播接收器和所接收的数据包括DSM-CC(数字存储介质-命令和控制)标准模块。
全文摘要
在DSM-CC接收器(12)中,接收包括多个周期性地重复的数据部分的信号。提供了存储设备(14)以用于超高速缓冲存储包含在信号(13)中的数据部分,在这里访问一个数据部分的动作导致建立一个引用,这一引用在不再被访问时被清除。为每一数据部分保持一个引用计数,使得如果一个数据部分的引用计数降到零的话则将它标记为要删除。还有另一个方面,这就是通过对被引用的数据部分进行标记,然后以任何顺序把它们一起重新放置到存储设备(14)的一个部分以使这些被引用的数据部分致密化和相应更新指向被移动单元的指针值来致密化存储设备(14)。
文档编号H04N7/24GK1522408SQ02813466
公开日2004年8月18日 申请日期2002年6月21日 优先权日2001年7月6日
发明者S·莫里斯, O·J·莫里斯, S 莫里斯, 莫里斯 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1