具有直接用户访问的存储装置转让专利

申请号 : CN200880127720.7

文献号 : CN101960426A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 阿兰·诺奇莫斯基伊扎克·波梅兰茨米查·拉维奥里·斯特恩乔斯·C·桑托斯加西亚安东尼奥·M·洛佩斯马丁阿米尔·莫塞克阿朗·马库

申请人 : 桑迪士克以色列有限公司

摘要 :

描述了用于提供分布式存储服务的各种方法、装置和系统。数据存储装置能够与诸如直接耦连到该数据存储装置的本地主机计算机(反之亦然)、远程服务器计算机发起通信会话,或者经过或不经过本地主机计算机介入地直接与远程数据存储装置发起通信会话。

权利要求 :

1.一种计算系统,包括:

主机装置(HD);以及

由HD管理的本地存储装置(LSD),其中除了HD提供的接口之外LSD不利用任何到HD外部的装置的接口,以及其中LSD通过使用LSD逻辑请求提示HD在LSD和起动应用之间建立通信路径而间接提示HD执行所请求的过程,其中LSD和所述起动应用在所述通信路径上逻辑交互而无需HD的介入,以及其中所述逻辑交互使得所述起动应用提示HD执行所请求的过程,其中所述LSD逻辑请求不被创建为服务于HD发起的过程。

2.如权利要求82所述的计算系统,还包括:

HD/LSD接口,在HD和LSD之间提供通信路径;

在HD中的主机装置文件系统(HDFS),被布置为生成块命令;以及在LSD中的至少由HDFS管理的至少一个存储区域,其中HDFS通过生成被通过HD/LSD接口传递到所述至少一个存储区域的块命令来管理所述至少一个存储区域。

3.如权利要求2所述的计算系统,其中LSD通过以下之一使用LSD逻辑请求提示HD在LSD和起动应用之间建立通信路径,如果主机装置轮询LSD,则LSD以LSD逻辑请求响应于主机装置的轮询,其中主机装置的轮询独立于任何HDFS发起的过程或LSD驱动器发起的过程,否则生成LSD逻辑请求,将LSD逻辑请求与LSD中断信号相关联,并且使得LSD中断引起主机装置的注意。

4.如权利要求3所述的计算系统,其中LSD逻辑请求请求主机装置利用网络接口提供所述通信路径作为主机装置和与在HD和LSD外部的且被包括在网络中的装置相关联的远程起动应用之间的网络链路,或者LSD逻辑请求提示主机装置提供所述通信路径作为LSD和与LSD外部的本地装置相关联的本地起动应用之间的本地通信路径,其中所述本地通信路径不是所述网络链路。

5.如权利要求4所述的计算系统,其中所述本地装置是由HD管理的SIM卡,其中所述SIM卡服从SIM应用工具包命令集,或者所述SIM卡服从USIM应用工具包命令集。

6.如权利要求4所述的计算系统,其中所述主机装置和LSD外部的装置是网络装置(ND)。

7.如权利要求6所述的计算系统,其中当所述网络是基于IP协议的网络时,则LSD和SIM卡被分别分派LSD IP地址和SIM IP地址,主机装置被分派主机装置IP地址,ND被分派ND IP地址。

8.如权利要求7所述的计算系统,其中所请求的过程是浏览器应用起动。

9.如权利要求8所述的计算系统,其中浏览器应用指向LSD,以及其中浏览器应用打开被布置为接收用户输入的用户界面(UI)。

10.如权利要求9所述的计算系统,其中浏览器应用帮助LSD和UI之间的逻辑交互,由此向LSD提供到用户的直接访问。

11.一种在具有主机装置(HD)和由HD管理的本地存储装置(LSD)的计算系统中间接提示HD执行所请求的过程的方法,其中除了HD提供的接口之外LSD不利用任何到HD外部的装置的接口,该方法包括:使用LSD逻辑请求提示HD在LSD和起动应用之间建立通信路径,其中所述LSD逻辑请求不被创建为服务于HD发起的过程;

在所述通信路径上逻辑交互而无需HD的介入;

使得所述起动应用提示HD执行所请求的过程;以及

执行所请求的过程。

12.如权利要求11所述的方法,其中所述计算系统还包括:HD/LSD接口,在HD和LSD之间提供通信路径;

在HD中的主机装置文件系统(HDFS),被布置为生成块命令;以及在LSD中的至少由HDFS管理的至少一个存储区域,其中HDFS通过生成被通过HD/LSD接口传递到所述至少一个存储区域的块命令来管理所述至少一个存储区域。

13.如权利要求12所述的方法,其中LSD通过以下之一使用LSD逻辑请求提示HD在LSD和起动应用之间建立通信路径,如果主机装置轮询LSD,则LSD以LSD逻辑请求响应于主机装置的轮询,其中主机装置的轮询独立于任何HDFS发起的过程,否则生成LSD逻辑请求,将LSD逻辑请求与LSD中断信号相关联,并且使得LSD中断引起主机装置的注意。

14.如权利要求13所述的方法,其中LSD逻辑请求请求主机装置利用网络接口提供所述通信路径作为主机装置和与在HD和LSD外部的且被包括在网络中的装置相关联的远程起动应用之间的网络链路,或者LSD逻辑请求提示主机装置提供所述本地通信路径作为LSD和与LSD外部的本地装置相关联的本地起动应用之间的本地通信路径,其中所述本地通信路径不是所述网络链路。

15.如权利要求14所述的方法,其中所述本地装置是由HD管理的SIM卡,其中所述SIM卡服从SIM应用工具包命令集,或者所述SIM卡服从USIM应用工具包命令集。

16.如权利要求15所述的方法,其中所述在主机装置和LSD外部的装置是网络装置(ND)。

17.如权利要求16所述的方法,其中当所述网络是基于IP协议的网络时,则LSD和SIM卡被分别分派LSD IP地址和SIM IP地址,主机装置被分派主机装置IP地址,ND被分派ND IP地址。

18.如权利要求17所述的方法,其中所请求的过程是浏览器应用起动。

19.如权利要求18所述的方法,其中浏览器应用指向LSD,以及其中浏览器应用打开被布置为接收用户输入的用户界面(UI)。

20.如权利要求19所述的方法,其中浏览器应用帮助LSD和UI之间的逻辑交互,由此向LSD提供到用户的直接访问。

21.一种LSD,包括:

存储器阵列,被逻辑地布置为包括至少第一部分和至少第二部分,其中第一和第二部分彼此独立,以及其中第一应用管理第一部分中的第一应用内容,以及其中第二应用管理第二部分中的第二应用内容,其中第一和第二应用彼此独立地执行,以及其中第一应用对第一应用内容的管理独立于第二应用对第二应用内容的管理,以及其中LSD向第二应用告知在第一部分中存储的第一应用内容,其中LSD的告知独立于主机装置(HD)。

22.如权利要求21所述的LSD,其中基于第一应用内容管理策略而进行第一应用的管理,以及其中基于第二应用内容管理策略而进行第二应用的管理。

23.如权利要求22所述的LSD,其中第二应用使用由LSD提供给第二应用的在第一部分中存储的第一应用内容的信息,推导出第一应用内容管理策略。

24.如权利要求23所述的LSD,其中第二应用使用所推导出的第一应用内容管理策略更新第二应用内容管理策略。

25.如权利要求24所述的LSD,其中第二应用使用更新的第二应用内容管理策略预测即将到来的第一应用管理操作。

26.如权利要求25所述的LSD,其中第二应用基于所预测的即将到来的第一应用管理操作,发起第二部分管理操作。

27.如权利要求26所述的LSD,其中LSD与HD通信,其中HD包括主机装置文件系统(HDFS),以及其中LSD的告知独立于HDFS。

28.如权利要求27所述的LSD,其中第一部分由HDFS管理,其中第一应用使用HDFS管理第一部分中的第一应用内容,其中第二部分不由HDFS管理,以及其中HDFS看不到第二部分。

29.如权利要求28所述的LSD,其中主机装置(HD)包括HD用来建立通信路径的网络接口,第二部分通过所述通信路径访问网络,其中一旦HD建立所述通信路径,则除了维护所述通信路径之外HD不再介入。

30.如权利要求29所述的LSD,其中第一应用是浏览器高速缓存管理器,以及其中第二应用是代理器高速缓存管理器。

31.如权利要求30所述的LSD,其中第二部分至少包括由代理器高速缓存管理器管理的代理器高速缓存,其中代理器高速缓存管理器根据代理器高速缓存管理策略管理代理器高速缓存中的代理器高速缓存内容。

32.如权利要求31所述的LSD,其中第一部分至少包括由浏览器高速缓存管理器管理的浏览器高速缓存,其中浏览器高速缓存管理器根据浏览器高速缓存管理策略管理浏览器高速缓存中的浏览器高速缓存内容。

33.如权利要求32所述的LSD,其中代理器高速缓存管理器基于LSD提供的关于浏览器高速缓存内容的信息,修改代理器高速缓存管理策略。

34.如权利要求33所述的LSD,其中代理器高速缓存管理器使用修改的代理器高速缓存管理策略预测浏览器高速缓存操作。

35.如权利要求34所述的LSD,其中代理器高速缓存管理器使用所预测的浏览器高速缓存操作,更新代理器高速缓存内容。

36.一种计算系统,包括:

主机装置,其包括主机装置文件系统(HDFS)和网络接口;

本地存储装置LSD,包括:

存储器阵列,被逻辑地布置为包括至少第一部分和至少第二部分,其中第一和第二部分彼此独立,其中第一部分由HDFS管理从而第一应用使用HDFS管理第一部分中的第一应用内容,以及其中第二部分不由HDFS管理从而HDFS看不到第二部分,其中第一和第二应用彼此独立地执行,以及其中第一应用对第一应用内容的管理独立于第二应用对第二应用内容的管理,以及其中LSD向第二应用告知在第一部分中存储的第一应用内容,其中HDFS看不到所述告知。

37.如权利要求36所述的计算系统,其中基于第一应用内容管理策略而进行第一应用的管理,以及其中基于第二应用内容管理策略而进行第二应用的管理。

38.如权利要求37所述的计算系统,其中第二应用使用由LSD提供给第二应用的在第一部分中存储的第一应用内容的信息,推导出第一应用内容管理策略。

39.如权利要求38所述的计算系统,其中第二应用使用所推导出的第一应用内容管理策略更新第二应用内容管理策略。

40.如权利要求39所述的计算系统,其中第二应用使用更新的第二应用内容管理策略预测即将到来的第一应用操作。

41.如权利要求40所述的计算系统,其中第二应用基于所预测的即将到来的第一应用管理操作,发起第二部分操作。

42.如权利要求41所述的计算系统,其中主机装置(HD)包括HD用来帮助对第二部分的网络访问的网络接口。

43.如权利要求42所述的计算系统,其中第一应用是浏览器高速缓存管理器,以及其中第二应用是代理器高速缓存管理器。

44.如权利要求43所述的计算系统,其中第二部分至少包括由代理器高速缓存管理器管理的代理器高速缓存,其中代理器高速缓存管理器根据代理器高速缓存管理策略管理代理器高速缓存中的代理器高速缓存内容。

45.如权利要求44所述的计算系统,其中第一部分至少包括由浏览器高速缓存管理器管理的浏览器高速缓存,其中浏览器高速缓存管理器根据浏览器高速缓存管理策略管理浏览器高速缓存中的浏览器高速缓存内容。

46.如权利要求44所述的计算系统,其中代理器高速缓存管理器基于LSD提供的关于浏览器高速缓存内容的信息,修改代理器高速缓存管理策略。

47.如权利要求45所述的计算系统,其中代理器高速缓存管理器使用修改的代理器高速缓存管理策略预测浏览器高速缓存操作。

48.如权利要求45所述的计算系统,其中代理器高速缓存管理器使用所预测的浏览器高速缓存操作,更新代理器高速缓存内容。

49.一种获取和消费受保护数字内容的方法,所述受保护数字内容被数字内容提供者根据DRM方案向其附加了至少一个约束,该方法由包括具有存储器阵列的本地存储装置(LSD)的系统执行,其中LSD与至少具有被布置为管理存储器阵列的至少一部分的主机装置文件系统(HDFS)的主机装置(HD)耦连,该方法包括:由LSD获取受保护数字内容;

由LSD在存储器阵列中安全地存储所获取的受保护数字内容,其中所述获取和安全存储每个均按照DRM方案,并且都不由HDFS发起;以及通过

将安全存储的受保护内容中的至少一些转换为数字数据流,以及由LSD流传输所述数字数据流,其中如果向数字数据流附加的至少一个约束是使用约束,则LSD强加该使用约束,消费受保护数字内容。

50.如权利要求49所述的方法,其中受保护数字内容包括数字内容和相应权利对象,以及其中所述使用约束包括防止受保护数字内容的未授权复制或允许受保护数字内容的预定次数的使用。

51.如权利要求50所述的方法,其中所述存储器阵列还包括:由HDFS管理的HDFS看得到的至少第一部分和不由HDFS管理的HDFS看不到的至少第二部分,以及其中安全地存储受保护数字内容还包括:在HDFS看得到的存储器阵列的第一部分中存储加密的数字内容,以及在HDFS看不到的存储器阵列的第二部分中存储对应于数字内容的权利对象。

52.如权利要求50所述的方法,其中安全地存储受保护数字内容还包括:加密所述受保护数字内容;以及

在HDFS看得到的存储器阵列的第一部分中存储加密的受保护数字内容。

53.如权利要求49所述的方法,其中LSD将数字数据流流传输到LSD外部的代理,以及其中如果所述至少一个约束包括访问约束,则只有在外部代理是具有第一DRM方案能接受的访问证书的已认证外部代理的情况下,该外部代理才能处理所述数字数据流。

54.如权利要求53所述的方法,其中所述外部代理位于通过接口连接到HD的第二LSD中。

55.如权利要求54所述的方法,其中所述外部代理是在HD中运行的本地数字媒体播放器渲染器应用。

56.如权利要求54所述的方法,其中从在HD和LSD外部的且被包括在网络中的远程装置(RD)获取所述受保护数字内容。

57.如权利要求56所述的方法,还包括:

在获取受保护数字内容之前互相认证LSD和RD;以及

只有当互相认证成功结束时,才由LSD发起从RD获取数字内容。

58.如权利要求57所述的方法,其中HD还包括向HD提供到网络的访问的网络接口。

59.如权利要求58所述的方法,其中所述获取受保护数字内容还包括:由RD提示HD使用所述网络接口在LSD和RD之间建立通信路径,其中一旦由HD建立所述通信路径,则除了维护所述通信路径之外HD不再介入,或者由LSD提示HD使用所述网络接口在LSD和RD之间建立通信路径,其中一旦由HD建立所述通信路径,则除了维护所述通信路径之外HD不再介入;以及由LSD和RD通过所述通信路径逻辑交互,其中HD看不到所述逻辑交互。

60.如权利要求59所述的方法,其中所述逻辑交互包括RD命令,其使得RD将受保护数字内容从RD发送到LSD并强迫LSD在存储器阵列中存储受保护数字内容,或者其中所述逻辑交互包括LSD命令,其使得LSD请求RD将数字内容从RD发送到LSD。

61.如权利要求60所述的方法,其中所述将至少一些安全存储的受保护内容转换为数字数据流包括:从存储器阵列读取受保护数字内容;以及

将从存储器阵列读取的受保护数字内容布置于至少一个数据流。

62.如权利要求61所述的方法,其中由LSD流传输来自存储器阵列的受保护数字内容包括:形成流信道;以及

通过流信道,流传输所述受保护数字内容。

63.如权利要求62所述的方法,其中如果DRM要求流信道为安全流信道,则形成安全流信道;以及通过安全流信道,流传输所述受保护数字内容。

64.如权利要求49所述的方法,其中所述受保护数字内容是包括MP3音频文件和/或视频文件的数字媒体文件。

65.如权利要求49所述的方法,其中所述系统被布置为同时获取和消费根据另一DRM方案向其附加至少一个约束的其他受保护数字内容。

66.在具有与本地存储装置(LSD)通信的主机装置(HD)的计算装置中,其中LSD包括存储器阵列,所述存储器阵列包括多个数据块,HD能经由所述多个数据块访问所述存储器阵列,一种对于LSD的存储器阵列中存储的数据生成搜索索引的方法,该方法包括:由LSD而不涉及HD,对于LSD的存储器阵列中存储的数据生成索引数据;以及由LSD在LSD上存储所生成的索引数据,作为所述搜索索引的至少一部分。

67.如权利要求66所述的方法,其中:

对于LSD的存储器阵列中存储的数据生成索引数据包括

由LSD观察作为由HD相对于LSD的存储器阵列的数据访问操作的结果的对LSD的访问,其中这样的数据访问操作使得数据块被提供给存储器阵列或从存储器阵列提供数据块;

由LSD确定表述观察到的数据访问操作的特性的数据;以及至少部分基于所确定的特性表述数据,生成所述索引数据。

68.如权利要求67所述的方法,其中

确定表述观察到的数据访问操作的特性的数据包括:确定至少包括除了在观察到的数据访问操作中访问的数据的内容以外的数据的数据。

69.如权利要求68所述的方法,其中:

所述数据访问操作包括访问媒体内容的数据的操作;以及

确定表述观察到的数据访问操作的特性的数据包括确定表示由观察到的数据访问操作所代表的相对于媒体内容的行为的特性的、且至少包括除了所访问的媒体内容的数据本身以外的数据的数据。

70.如权利要求67所述的方法,其中:

HD包括主机装置文件系统(HDFS),以及由HD相对于LSD的存储器阵列的数据访问操作包括HDFS操作。

71.如权利要求66所述的方法,其中:

对于LSD的存储器阵列中存储的数据生成索引数据包括:生成至少包括在存储器阵列中存储的数据的索引数据。

72.如权利要求71所述的方法,其中:

生成至少包括在存储器阵列中存储的数据的索引数据包括:提取由存储器阵列中存储的数据构成的内容,其中所述内容是在存储器阵列中存储的数据。

73.如权利要求66所述的方法,其中:

对于LSD的存储器阵列中存储的数据生成索引数据包括对存储器阵列中存储的数据执行识别算法,其中所生成的索引数据指示所述识别算法的结果。

74.如权利要求66所述的方法,其中:

对于LSD的存储器阵列中存储的数据生成索引数据包括由LSD访问来自LSD的存储器阵列的数据以及对于其生成索引数据,而不涉及HD。

75.如权利要求66所述的方法,还包括:

由LSD接收搜索查询;以及

由LSD参照所述搜索索引处理所述搜索查询,并提供响应于其的搜索结果。

76.如权利要求75所述的方法,其中:

接收搜索查询包括从HD接收搜索查询。

77.如权利要求75所述的方法,其中

接收搜索查询包括从除了HD以外的装置接收搜索查询。

78.如权利要求66所述的方法,还包括:

将所述搜索索引从LSD提供给主机装置。

79.如权利要求66所述的方法,还包括:

将所述搜索索引从LSD提供给除了主机装置以外的装置。

80.如权利要求66所述的方法,还包括:

由LSD从HD接收针对LSD的存储器阵列中的特定内容的数据访问请求;以及由LSD基于所述数据访问请求,考虑数据访问请求的特定内容,处理生成的索引数据,以确定是否阻止该访问请求。

81.如权利要求66所述的方法,还包括:

由HD基于针对LSD的存储器阵列中的特定内容的数据访问请求,考虑数据访问请求的特定内容,处理在LSD中存储的生成的索引数据,以确定是否阻止该访问请求。

82.一种系统,包括:

数据存储阵列;

第一逻辑接口,适用于管理在数据存储阵列中被存储为逻辑数据块的数据;以及第二逻辑接口,适用于管理与被存储为逻辑数据块的数据相对应的数据对象,其中当通过第一逻辑接口修改至少一些被存储为逻辑数据块的数据时,修改的数据能通过第一和第二逻辑接口两者访问,以及其中能通过第二逻辑接口访问包括同时管理一组预定的数据对象性质和所述修改。

83.如权利要求82所述的系统,其中由同步单元帮助同时管理该组预定的数据对象性质,其中所述帮助包括同步所述数据对象和该组预定的所述数据对象性质。

84.如权利要求82所述的系统,其中该组预定的数据对象性质包括对象名、对象大小、对象已被访问的次数。

85.如权利要求82所述的系统,其中所述数据存储阵列、第一逻辑接口和第二逻辑接口被包括在本地存储装置(LSD)中。

86.如权利要求85所述的系统,其中LSD耦连到具有主机应用和被布置为生成块命令的主机装置文件系统(HDFS)的主机装置(HD)。

87.如权利要求86所述的系统,其中所述同步单元被包括在HD中。

88.如权利要求83所述的系统,其中所述数据存储阵列被配置为包括第一部分和第二部分。

89.如权利要求88所述的系统,其中第一部分是与第一和第二逻辑接口通信的大容量存储部分,被布置为存储所述逻辑块数据和相应的数据对象,以及其中第二部分被布置为存储该组预定的数据对象性质。

90.如权利要求89所述的系统,其中当第一部分中的对象被修改时,则所述同步单元更新在第二部分中存储的相应数据对象性质。

91.一种本地存储装置(LSD),包括:

数据存储阵列;

第一逻辑接口,适用于管理在数据存储阵列中被存储为逻辑数据块的数据;以及第二逻辑接口,适用于管理与被存储为逻辑数据块的数据相对应的数据对象,其中当通过第一逻辑接口修改至少一些被存储为逻辑数据块的数据时,修改的数据能通过第一和第二逻辑接口两者访问,以及其中能通过第二逻辑接口访问包括同时管理一组预定的数据对象性质和所述修改。

92.如权利要求91所述的LSD,其中LSD耦连到具有主机应用和被布置为生成块命令的主机装置文件系统(HDFS)的主机装置(HD)。

93.如权利要求92所述的LSD,其中由同步单元帮助同时管理该组预定的数据对象性质,其中所述帮助包括同步所述数据对象和所述该组预定的数据对象性质。

94.如权利要求93所述的LSD,其中所述同步单元被包括在HD中。

95.如权利要求94所述的LSD,其中该组预定的数据对象性质包括对象名、对象大小、对象已被访问的次数。

96.如权利要求94所述的LSD,其中所述数据存储阵列被配置为包括第一部分和第二部分。

97.如权利要求96所述的LSD,其中第一部分是与第一和第二逻辑接口通信的大容量存储部分,被布置为存储所述逻辑块数据和相应的数据对象,以及其中第二部分被布置为存储该组预定的数据对象性质。

98.如权利要求97所述的LSD,其中当第一部分中的对象被修改时,则所述同步单元更新在第二部分中存储的相应数据对象性质。

99.一种方法,包括:

在数据存储阵列中,

通过第一接口管理在数据存储阵列中被存储为逻辑数据块的数据;以及通过第二接口管理在数据存储阵列中存储的数据对象,其中所述数据对象与被存储为逻辑数据块的数据相对应,其中当通过第一接口修改至少一些被存储为逻辑数据块的数据时,修改的数据能通过第一和第二接口两者访问,以及其中能通过第二接口访问包括同时管理一组预定的数据对象性质。

100.如权利要求99所述的方法,其中由同步单元帮助同时管理该组预定的数据对象性质,其中所述帮助包括同步所述数据对象和该组预定的数据对象性质。

101.如权利要求100所述的方法,其中该组预定的数据对象性质包括对象名、对象大小、对象已被访问的次数。

102.如权利要求100所述的方法,其中所述数据存储阵列、第一逻辑接口和第二逻辑接口被包括在本地存储装置(LSD)中。

103.如权利要求102所述的方法,其中LSD耦连到具有主机应用和被布置为生成块命令的主机装置文件系统(HDFS)的主机装置(HD)。

104.如权利要求103所述的方法,其中所述同步单元被包括在HD中。

105.如权利要求104所述的方法,其中所述数据存储阵列被配置为包括第一部分和第二部分。

106.如权利要求105所述的方法,其中第一部分是与第一和第二接口通信的大容量存储部分,被布置为存储所述逻辑块数据和相应的数据对象,以及其中第二部分被布置为存储该组预定的数据对象性质。

107.如权利要求106所述的方法,其中当第一部分中的对象被修改时,则所述同步单元更新在第二部分中存储的相应数据对象性质。

说明书 :

具有直接用户访问的存储装置

技术领域

[0001] 本发明总体上涉及数字装置。更具体地,本发明涉及提供用于数字装置的跨平台大容量存储服务。本发明还涉及高速缓存管理并涉及提供数字内容的安全分发和消费以及利用本地存储装置提供本地存储。本发明还涉及本地存储装置,其包括索引在本地存储装置中的数据而不牵涉操作性地耦连本地存储装置的主机装置的能力。

背景技术

[0002] 在现有技术中,“自动运行”或“自动播放”功能向计算机OS提供了在插入可移除介质(例如,CD-ROM或闪速介质)时自动采取某种行动的能力。这是一个方便的特征,因为在可移除介质上分发的软件能在插入盘时自动启动安装程序。然而不幸的是,一些制造商认为“自动运行”特征造成安全性风险(即,可能分发恶意软件)。为了避免这种风险,常常解除自动运行(或自动播放)特征,而不提供使得本地存储装置能直接与用户交互的机制。
[0003] 因特网技术是,曾经是并仍将保持为快速发展的领域,尤其在网络优化方面,特别是改善终端用户浏览体验。在计算机网络中,代理器(proxy)服务器是通过向其他服务器(一般是网络服务器)转发请求而服务于其客户的请求(例如,对网页、连接建立等的请求)的服务器(计算机系统或应用程序)。
[0004] 因特网应用(例如,使用FTP协议的FTP客户端或诸如网络浏览器的任何其他因特网应用)通常管理至少两个相关接口,第一接口用于本地大容量存储装置,被称为大容量存储接口,因特网应用通过它经由高速缓存管理器使用主机装置文件系统(HDFS)管理在高速缓存中存储的内容。然而更一般地,许多因特网应用每个都能通过他们各自的逻辑接口管理在本地大容量存储装置中存储的它们自己的内容,其中这些单独存储区域中的每一个由它们自己的规则集管理。在代表性的因特网应用采用浏览器应用的形式的情况下,浏览器高速缓存管理器使用也被称为浏览器高速缓存策略的规则集来向浏览器提供合适的内容。为了改善响应时间和保持网络带宽,典型地,浏览器高速缓存将基于由高速缓存策略阐述的一个或多个相关规则存储内容。例如,浏览器高速缓存管理器(遵循对特定浏览器建立的相关高速缓存策略)能基于先前检索到的网页,在浏览器很有可能在不远的将来再次请求该特定网页的预期下存储内容(例如,以网页的形式)。以此方式,浏览器高速缓存管理器能检索在浏览器高速缓存中本地存储的相关网页,而不使用珍贵(valuable)的网络资源。
[0005] 因特网应用使用的另一接口可以用于因特网连接性,如在与网络资源(可以是本地资源或远程资源)通信时在网络连接上携带的HTTP命令的管理。在移动浏览的情况下,浏览器通常通过能进行内容优化/适配/过滤/压缩等的代理器服务器访问远程资源/服务器,以便保留珍贵的移动链路资源。代理器服务器还可用在需要诸如对因特网边缘的访问控制的额外任务的企业系统中。另一价值在于管理能采用“内容预取技术”以便预取“因特网边缘上”(即,更加接近用户的浏览器)的内容的代理器高速缓存。以此方式,因为所请求的内容在被需要时已经在手头,所以加快了浏览体验。
[0006] 然而,因为浏览器高速缓存和代理器高速缓存彼此独立地管理,所以很少或不会“学习”彼此的高速缓存策略。因而,因为代理器高速缓存和浏览器高速缓存由它们自己的规则集(另一方由于高速缓存和代理器可以由不同的销售商提供而可能知道或者不知道该规则集)引导,可能没有整体高速缓存管理策略。这种整体高速缓存策略的缺失可能导致低效,其可能带来不是最优的浏览体验,部分是由于存储资源的低效分配。这样的低效可包括例如在代理器高速缓存和浏览器高速缓存两者中存储的重复内容,导致网络和存储资源的低效使用(即,在网络链路上不必要地发送浏览器内容)。
[0007] 所提出的一种解决方案包括在移动手持装置上集成客户端代理(agent),以便在浏览器和代理器高速缓存之间进行同步。然而,因为客户端代理一般是专用于应用的,所以它的用途限制于特定平台。部分由于主机操作系统的异质性,尤其是在移动平台上,客户端代理的可用性可能相当有限。在“封闭”操作系统(如Nucleus)的情况下,与诸如Windows、Symbian等的“开放”操作系统的情况相比,这种异质性变得更糟。因为不同的移动手持装置可能在不同的操作系统上运行,这样的实现方式一般需要复杂的软件集成。当使用在非开放操作系统上运行的移动手持装置时,该软件集成可能证明为更加复杂。
[0008] 存在至少两个不同的分发数字内容的方法:内容下载和内容流传输(content streaming)。通常意义上,内容下载可被看作将第一装置中存储的数字内容传输到要存储所传输的数字内容的第二装置。内容下载可包括从第一装置向第二装置传输数字内容的“推”和“拉”两种方式。例如,第一装置中存储的数字内容可被第一装置“推”到第二装置,其中是第一装置发起数字内容从第一装置向第二装置的传输。可替换地,第一装置中存储的数字内容可从第一装置拉到第二装置,其中是第二装置发起数字内容的传输。通过常规下载(基于HTTP等)或通过渐进下载技术(即,在下载内容的同时开始播放)实现推或拉。在任何情况下,一旦在第二装置处接收到数字内容,则数字内容被本地、持久地存储在第二装置处。以此方式,第二装置中存储的数字内容可从一个数字装置移动到另一个(完全在用户控制之下)并且保护了用户隐私(例如,在成人内容的情况下)等等。
[0009] 然而,一个缺陷在于以下事实:内容提供商(例如,好莱坞工作室等)需要高安全级以应对盗版者“复制内容”的尝试,由此限制了内容的便携性。典型地,这是数字权利管理(DRM)技术介入之处,其中定义想要限制内容使用/复制的权利对象(RO)。典型地,DRM RO关系到专用硬件解决方案,如Milpitas,CA的SanDisk公司制造的TrustedFlashTM存储器装置。这样的硬件解决方案允许用户在可移除介质(例如,SD存储装置)上安全地存储RO,以尝试提供真实内容和RO便携性。然而实践中,因为RO依赖于DRM方案而没有实现便携性,并且因为缺少完全采用的DRM标准,完全便携性变得仅仅限于支持相应DRM技术的那些数字媒体播放器(或主机平台)。
[0010] 可通过少量工业标准化协议(例如,RTSP/RTP等)实现内容流传输。然而,因为用户仅在他/她获得到流服务器的网络连接性的情况下才能够访问内容,所以不能本地、持久地存储内容。该方法的好处之一是如下事实,即对于与所支持的流协议(即,大多数现有播放器采用标准RTSP/RTP)兼容的那些播放器,保证广泛的内容访问。因为内容提供商具有更小的安全性需求,所以除了“嗅取和记录”经过流接口的内容,内容复制的风险较小或没有。在受约束的环境和经常封闭的操作系统构成对潜在盗版者的重要障碍的移动装置中尤其是这样,这不是能相当容易地通过能广泛获得的工具记录未保护的流的个人计算机的情况。
[0011] 这样的风险能通过标准服务级保护来部分地消除,如通过流客户端和服务器之间的相互认证建立安全通信信道(这可以根据需要而在移动系统中感知到或感知不到)。然而,该方法的缺点之一是如下事实:因为仅仅已连接的装置能访问内容(因为缺少连接性的情况下不能访问流服务器),不能实现完全便携性(其中用户控制所购买的内容)。另外,便携性的缺失约束了可用的商业模型。此外,因为服务提供商知道用户偏好和用途,所以可能危及隐私。
[0012] 传统地,该概念构建于静态预定的物理存储器阵列,其一部分对于主机文件系统是隐藏的,因而对用户是隐藏的,并且其仅仅可基于用户请求而激活。这样的用户请求可以由装置控制者远程发起,并且可包括支付。然而,该方法具有多个缺点,至少包括:在生产时确定所制造的存储器阵列的尺寸,这导致用户不能进一步扩展存储器阵列的存储容量以超过预定隐藏容量,即没有使用灵活度等,并且,在生产时或者无论如何在本地存储装置到达用户手中之前确定隐藏和暴露的存储器之间的比率。例如,装置销售者可制造多个存储器装置,每个具有2GB的总存储容量。然而,存储器装置可被销售为1GB存储器装置,而剩下的1GB对用户隐藏或者至少表现为不可访问。即使在用户支付时第二个GB可访问,但是存储器装置的制造商承担风险;即,用户在没有首先向制造商支付的情况下不能访问第二个隐藏的GB。
[0013] 克服这样的物理可扩展存储装置的局限的一个方式是通过集成到主机中的私有客户端代理,主机提供或者本地(即,由代理通过现有大容量存储命令访问)或者远程(即,由代理通过网络协议访问)存储的摘要。该特定方法已经在各种产品上实现,如Personalite Numerique所制造的并且在法国专利FR0412199中有描述。然而,因为客户端代理一般是特定于应用的,所以它的使用限于特定平台。部分由于主机操作系统的异质性,尤其是在移动平台中,客户端代理的可用性可能相当受限。此外,因为不同的移动手持装置可能在不同的操作系统上运行,这样的实现方式一般需要复杂的软件集成。当使用在“封闭”操作系统(如Nucleus)上运行的移动手持装置时,与诸如Windows、Symbian等的“开放”操作系统的情况相比,这种软件集成通常证明为更加复杂。
[0014] 因而,期望克服上述限制同时提供在现有LBA/大容量存储模式(即,与当前现有的主机文件系统兼容)下操作的机会的方法、系统和设备。
[0015] 大容量存储装置(如闪存装置,包括SD和MMC型大容量存储装置)在存储容量和相关大容量存储装置控制器的能力(即,处理资源)两方面中已经大大增长。可用存储容量的这种增长已经对能力大大依赖于可用存储器的装置(“主机装置”)的总体可用性带来促进效应。这样的装置包括便携式数字装置,如便携式媒体播放器、互动个人通信装置(蜂窝电话、PDA等)等。以此方式,数字消费者对使用诸如闪存的大容量存储器装置的存储能力的数字产品的接触(exposure)大大增加。
[0016] 这种接触一般横跨多个主机装置-连接或未连接的-或者访问模式-有线对无线、固定对移动等-每个具有特定的存储需求。所提出的生成在大容量存储装置上存储的数据的索引(index)的配置通常包括使得对于每个主机装置使用不同的主机特定程序。该程序一般被安装在主机装置和/或主机装置始终或偶尔连接的远程服务器上。
[0017] 然后,所提出的索引配置通常包括紧紧耦连到主机装置的程序。由此,例如,这样的紧紧耦连到主机装置的索引程序通常必须被定制为利用该主机装置而操作。再者,在数据索引中高度牵扯到主机装置,这可能占用其他功能期望或需要的主机装置的处理功率。
[0018] 现有索引配置的另一可能的缺点被证明为“内容侧负担(content side-load)”,其中移动主机装置经由例如USB线缆连接到计算机,并且内容被存储在存储装置中。在此情况下,移动主机所连接到的计算机的文件系统是管理该装置的文件系统,其导致移动索引应用不知道计算机所执行的存储操作,因而不对内容进行索引。
[0019] 已经变得平常的是,使用被称为“总线”(其一般符合公知标准)的多条导电线将主机处理器连接到不同装置。连接到总线的装置可包括存储器/存储装置、通信装置、感测装置等,并且这些装置可以是固定或可移除的。在大多数情形中,定义总线的线中的一些或全部在连接到总线的装置中的任一个和/或全部之间共享。因为耦连到总线的装置共享相同的导电线,所以每个装置一般被分配总线上的唯一ID或地址,并且被配置为仅仅对定址于该唯一ID/地址的消息作出响应。以此方式,多个装置能共享形成总线的相同的导电线,使得总线尺寸比如若不然而需要的情况大大减少。
[0020] 典型地,对总线采用主/辅总线协议。主/辅是通信协议的模型,其中一个装置或过程具有对一个或多个其他装置的单向控制。在传统系统中,一旦建立装置或过程之间的主/辅关系,则控制的方向始终从主到辅,即,辅装置不能发起事务处理。在一些系统中,从一群适格装置中选择主装置,其他装置充当辅装置的角色。在传统系统中,不直接在辅装置之间传输数据;而是,典型地,数据在公共总线上从源辅装置传递到主机控制器或其它中间装置,其中数据在被主机控制器通过公共总线重新输出并且定位于目标辅存储装置(其中从总线读取和存储数据)之前被暂时高速缓存。
[0021] 尽管传统的系统工作良好,但是期望减少在装置之间传输数据所需的主机CPU资源,以及减少主机和/或其他临时存储装置的总线利用和存储器需求。
[0022] 市场上的便携式(即,小形状因子、手持)消费电子产品的数量和类型爆炸式增长。例如,这些便携式消费电子产品包括PDA、媒体播放器、蜂窝电话和相机。为了竞争和其他原因,这些消费电子产品已经增加了它们的功能性。例如,蜂窝电话增加了PDA和相机功能性。PDA增加了蜂窝电话和音乐播放器功能性,媒体播放器增加了PDA和视频游戏功能性等等。
[0023] 为了提供其主要功能,便携式消费电子产品使用主机装置执行主机应用,其使用在传统大容量存储装置中存储的内容。进而,主机应用可提供直接与手持消费产品的主要功能相关的核心服务和与存储装置中存储的内容的操纵和管理有关的从属服务。例如,为了让媒体播放器播放诸如MP3文件的媒体文件,主机应用可使用媒体播放器应用形式的核心应用检索和播放在存储装置中存储的音乐文件(MP3文件的形式)。主机应用还可使用从属服务应用向用户提供管理在存储装置中存储的音乐文件的能力。这样的用户管理可包括播放列表操纵和生成、特定音乐文件、音乐种类、音乐家等的排序和搜索。在媒体播放器被布置为显示图像(静态和视频)的情况下,核心应用可采用照片显示和编辑应用的形式,其向用户提供润色(touch-up)能力,如红眼减少、黑白转换、图像剪裁和旋转。相关的从属服务应用可采取图像和或视频管理程序的形式,其允许用户对图像排序、存储和归类。
[0024] 因而,可以调用主机应用以提供核心服务(如播放MP3文件、显示图像文件或播放视频文件(MP4))和与内容管理和操纵(对映像排序和归类、对MP3文件排序、播放列表编辑、内容搜索、索引等)有关的从属服务。然而,无论调用主机应用提供核心还是从属服务,主机应用都必须访问在存储装置中存储的数据,其中使用逻辑块格式存储所有文件。以逻辑块格式存储数据一般不会给核心应用(例如,播放音乐文件)带来不适当的负担,然而,因为大容量存储装置以大容量存储装置块的粒度(granularity)而不是以逻辑文件级操作,所以从属服务可能不被最优地配置。因为许多文件(如MP3)是预定大小的,它们被更自然地存储为数据对象而不作为传统大容量存储装置所强制的逻辑块,所以尤其是这样。
[0025] 因为这些便携式产品具有有限的处理资源和可用的RAM,所以当采用便携式消费电子产品执行处理密集任务,需要主机应用(尤其是从属应用)处理作为逻辑块存储的数据(其应更自然地存储为数据对象)时,出现困难。具体地,在从属服务能导致主机处理器的过度功耗和长执行时间导致慢响应的情况下,一般是搜索/查询操作(即,“读相关”命令)消耗主机的大部分处理资源。以此方式,因为用户通常不喜欢慢的、电池寿命短的产品,所以用户可能留下负面的用户体验。
[0026] 因而,期望针对这些缺点的索引方法、系统和设备。

发明内容

[0027] 根据本发明的不同方面,描述了用于提供分布式存储服务的各种方法、装置和系统。这样的服务包括提供本地存储装置和端(end)用户之间的直接交互。
[0028] 本发明的一个实施例描述了计算系统,其至少包括主机装置(HD)和由HD管理的本地存储装置(LSD)。除了HD提供的接口之外,LSD不利用任何到HD外部的装置的接口。LSD通过使用LSD逻辑请求提示HD在LSD和起动(lauching)应用之间建立通信路径而间接提示HD执行所请求的过程。LSD和起动应用在通信路径上逻辑交互而无需HD的介入。
逻辑交互使得起动应用提示HD执行所请求的过程。
[0029] 在本发明的一个方面中,起动应用与HD管理的SIM卡相关联。SIM卡服从SIM应用工具包命令集或USIM应用工具包命令集。
[0030] 在另一实施例中,描述了在计算系统中间接提示HD执行所请求的过程的方法。计算系统包括主机装置(HD)和由HD管理的本地存储装置(LSD),其中除了HD提供的接口之外LSD不利用任何到HD外部装置的接口。该方法至少通过以下操作执行:
[0031] 使用LSD逻辑请求提示HD在LSD和起动应用之间建立通信路径,其中LSD逻辑请求不被创建为服务于HD发起的过程;在通信路径上逻辑交互;以及使得起动应用提示HD执行所请求的过程;以及执行所请求的过程。
[0032] 根据本发明的不同实施例,描述了用于提供改善的因特网应用(如浏览器)性能的各种方法、装置和系统。一个实施例描述了本地存储装置(LSD)。LSD至少包括:存储器阵列,被逻辑地布置为包括彼此独立管理的至少第一部分和至少第二部分。第一应用管理第一部分中的第一应用内容,第二应用管理第二部分中的第二应用内容。第一和第二应用彼此独立地执行,第一应用对第一应用内容的管理独立于第二应用对第二应用内容的管理。LSD独立于主机装置而向第二应用告知在第一部分中存储的第一应用内容。
[0033] 在另一实施例中,描述了计算系统,至少包括:主机装置,其包括主机装置文件系统(HDFS)和网络接口;本地存储装置LSD,其包括存储器阵列,被逻辑地布置为包括至少第一部分和至少第二部分,其中第一和第二部分被彼此独立地管理。第一部分由HDFS管理从而第一应用使用HDFS管理第一部分中的第一应用内容第二部分不由HDFS管理从而HDFS看不到第二部分。第一和第二应用彼此独立地执行,第一应用对第一应用内容的管理独立于第二应用对第二应用内容的管理。LSD向第二应用告知在第一部分中存储的第一应用内容,其中该告知独立于HD。
[0034] 描述了由本地存储装置(LSD)执行的方法。LSD包括存储器阵列,被逻辑地布置为包括至少第一部分和至少第二部分,其中第一和第二部分被彼此独立地管理,其中第一应用管理第一部分中的第一应用内容,第二应用管理第二部分中的第二应用内容。第一和第二应用彼此独立地执行,并且第一应用对第一应用内容的管理独立于第二应用对第二应用内容的管理。至少通过以下操作执行该方法:由LSD独立于主机装置而向第二应用告知在第一部分中存储的第一应用内容。
[0035] 在另一实施例中,描述了由包含与主机装置(HD)通信的本地存储装置(LSD)的系统执行的计算机程序产品。LSD包括存储器阵列,被逻辑地布置为包括被彼此独立管理的至少第一部分和至少第二部分。第一应用管理第一部分中的第一应用内容,第二应用管理第二部分中的第二应用内容。第一和第二应用彼此独立地执行,第一应用对第一应用内容的管理独立于第二应用对第二应用内容的管理。计算机程序产品包括用于由LSD向第二应用告知在第一部分中存储的第一应用内容的计算机代码,其中该告知独立于HD,以及[0036] 用于存储计算机代码的计算机可读介质。
[0037] 根据本发明的不同实施例,描述了安全分发和消费受保护数字内容的各种方法、装置和系统。在一个实施例中,描述了获取和消费受保护数字内容的方法,受保护数字内容被数字内容提供者根据DRM方案向其附加了至少一个约束。该方法可由包括具有存储器阵列的本地存储装置(LSD)的系统执行,其中LSD与至少具有被布置为管理存储器阵列的至少一部分的主机装置文件系统(HDFS)的主机装置(HD)耦连。该方法可通过以下操作执行:由LSD获取受保护数字内容;由LSD在存储器阵列中安全地存储所获取的受保护数字内容,其中获取和安全存储每个均按照DRM方案,并且都不由HDFS发起;以及消费受保护数字内容。通过将安全存储的受保护内容中的至少一些转换为数字数据流,以及由LSD流传输数字数据流,消费受保护数字内容。如果向数字数据流附加的至少一个约束是使用约束,则LSD强加该使用约束。
[0038] 在另一实施例中,描述了获取和消费受保护数字内容的计算机程序产品,受保护数字内容被数字内容提供者根据DRM方案向其附加了至少一个约束。计算机程序产品可由包括具有存储器阵列的本地存储装置(LSD)的系统中包括的处理器执行,其中LSD与至少具有被布置为管理存储器阵列的至少一部分的主机装置文件系统(HDFS)的主机装置(HD)耦连。计算机程序产品至少包括用于由LSD获取受保护数字内容的计算机代码、用于由LSD在存储器阵列中安全地存储所获取的受保护数字内容的计算机代码,其中获取和安全存储每个均按照DRM方案,并且都不由HDFS发起,以及用于通过将安全存储的受保护内容中的至少一些转换为数字数据流以及由LSD流传输数字数据流而消费受保护数字内容的计算机代码,其中如果向数字数据流附加的至少一个约束是使用约束,则LSD强加该使用约束;以及用于存储计算机代码的计算机可读介质。
[0039] 在再一实施例中,描述了获取和消费受保护数字内容的系统,受保护数字内容被数字内容提供者根据DRM方案向其附加了至少一个约束。该系统包括至少具有主机装置文件系统(HDFS)的主机装置(HD),以及与主机装置(HD)耦连的包括存储器阵列——其至少一部分被HDFS管理——的本地存储装置(LSD)。LSD获取并在存储器阵列中安全地存储受保护数字内容,其中获取和安全存储每个均按照DRM方案,并且都不由HDFS发起。通过将安全存储的受保护内容中的至少一些转换为数字数据流,以及由LSD流传输数字数据流,消费受保护数字内容。如果向数字数据流附加的至少一个约束是使用约束,则LSD强加该使用约束。
[0040] 在再一实施例中,描述了计算系统。计算系统包括至少具有主机装置文件系统和LSD驱动器的主机装置(HD),具有由主机装置文件系统(HDFS)管理的至少一个存储区域的本地存储装置(LSD),以及在LSD外部并与HD通信的请求应用,其中该请求应用不利用与HDFS或LSD驱动器之间的任何通信路径。请求应用强迫(compel)LSD读取在至少一个存储区域中存储的数据的所选部分,而不由HDFS介入,然后LSD将从该至少一个存储区域读取的所选数据流传输到外部应用。
[0041] 在本发明的一个方面中,如果在该至少一个存储区域中存储的数据的所选部分是被数字内容提供者根据DRM方案向其附加了至少一个约束的受保护数字内容,则LSD通过将从该至少一个存储区域读取的受保护内容转换为附加了至少一个约束的数字数据流,将从该至少一个存储区域读取的受保护内容流传输到外部应用。如果向数字数据流附加的至少一个约束是使用约束,则LSD强加该使用约束。
[0042] 根据本发明的具体实施例,描述了用于服务于从主机装置(HD)向本地存储装置(LSD)发送的管理命令的各种方法、服务和系统。在一个方面中,描述了由与HD通信的本地存储装置(LSD)服务于从主机装置(HD)内的主机装置文件系统(HDFS)发送的管理命令的方法。该方法包括在LSD处接收第一管理命令,其指示LSD对相关逻辑地址执行操作。如果第一管理命令与至少第一组逻辑地址相关联,则该方法包括至少通过向LSD外部的装置(RD)发送指示RD对RD内的存储器位置执行操作的第二管理命令,由LSD服务于第一管理命令。在各种实施例中,HDFS看不到第二管理命令向RD的发送和在RD内的存储器位置上与第一管理命令相关联的操作的执行。如果第一管理命令不与第一组逻辑地址相关联,则该方法包括仅仅通过由LSD对LSD内的存储器位置执行的操作,由LSD服务于第一管理命令。在各种实施例中,除了经由HD提供的接口之外,LSD不利用任何到HD外部的任何其他装置的任何其他物理接口。
[0043] 根据具体实施例,如果管理命令至少与第一组逻辑地址相关联,则该方法还包括由LSD提示HD建立在LSD和RD之间经由HD的通信路径。在优选实施例中,一旦建立了通信路径,则除了维护通信路径之外,不再需要HD介入。
[0044] 在本发明的系统方面中,描述了计算系统,其包括具有至少主机装置文件系统(HDFS)的主机装置(HD)和通过HD/LSD接口与HD耦连的本地存储装置(LSD)。LSD包括存储器阵列和被布置为本地管理存储器阵列的LSD控制器。存储器阵列被逻辑地布置为包括至少一个大容量存储区域,其由HDFS经由LSD控制器、通过经HD/LSD接口向LSD控制器发送管理命令而外部地管理。管理命令可指示LSD对相关存储器地址执行操作。根据具体实施例,如果LSD控制器确定从HDFS接收的第一管理命令与至少第一组逻辑地址相关联,则LSD控制器至少通过向LSD外部的装置(RD)发送指示RD对RD内的存储器位置执行操作的第二管理命令,服务于第一管理命令,HDFS看不到第二管理命令向RD的发送和在RD内的存储器位置上与第一管理命令相关联的操作的执行。此外,在一些实施例中,如果LSD控制器确定从HDFS接收的第一管理命令与至少第二组逻辑地址相关联,则LSD控制器通过由LSD对LSD大容量存储区域内的存储器位置执行的操作,服务于第一管理命令。
[0045] 在另一方面中,描述了计算机系统,其包括至少具有主机装置文件系统(HDFS)的主机装置(HD)。系统还包括通过HD/LSD接口与HD耦连的本地存储装置(LSD),LSD包括存储器阵列和被布置为本地管理存储器阵列的LSD控制器,存储器阵列被逻辑地布置为包括至少一个大容量存储区域,其由HDFS经由LSD控制器、通过经HD/LSD接口向LSD控制器发送管理命令而外部地管理。在各种实施例中,HDFS还被配置为通过向LSD发送指示LSD将第二管理命令转发给RD的第一管理命令而经由LSD管理LSD外部的装置(RD)。
[0046] 在再一方面中,描述了在本地存储装置(LSD)内的一个或多个有形介质中编码的用于服务于从与LSD通信的主机装置(HD)内的主机装置文件系统(HDFS)发送的管理命令的逻辑。当被执行时,逻辑可操作为在LSD接收第一管理命令,第一管理命令指示LSD对相关逻辑地址执行操作,如果第一管理命令与至少第一组逻辑地址相关联,则至少通过向LSD外部的装置(RD)发送指示RD对RD内的存储器位置执行操作的第二管理命令,由LSD服务于第一管理命令,HDFS看不到第二管理命令向RD的发送和在RD内的存储器位置上与第一管理命令相关联的操作的执行,否则仅仅通过由LSD对LSD内的存储器位置执行的操作,由LSD服务于第一管理命令。
[0047] 根据一个方面,具有主机装置(HD)的计算装置与本地存储装置(LSD)通信,其中LSD包括存储器阵列。一种方法操作以对于LSD的存储器阵列中存储的数据生成搜索索引。通过LSD而不涉及HD,对于LSD的存储器阵列中存储的数据生成索引数据。通过由LSD在LSD上存储所生成的索引数据,作为搜索索引的至少一部分。索引可以包括可以用来响应于对LSD的数据的搜索查询的数据。查询可从HD发起或从LSD内发起。索引的使用不限于响应于搜索查询。例如,索引可用于内容筛查。
[0048] 根据不同的实施例,描述了用于提供存储服务的各种方法、装置和系统。一个实施例描述了系统。该系统至少包括:数据存储阵列;第一逻辑接口,适用于管理在数据存储阵列中被存储为逻辑数据块的数据;以及第二逻辑接口,适用于管理与被存储为逻辑数据块的数据相对应的数据对象。当通过第一逻辑接口修改至少一些被存储为逻辑数据块的数据时,修改的数据能通过第一和第二逻辑接口两者访问,并且能通过第二逻辑接口访问包括同时管理一组预定的数据对象性质(property)。
[0049] 另一实施例描述了本地存储装置(LSD)。本地存储装置包括:数据存储阵列;第一逻辑接口,适用于管理在数据存储阵列中被存储为逻辑数据块的数据;以及第二逻辑接口,适用于管理与被存储为逻辑数据块的数据相对应的数据对象。当通过第一逻辑接口修改至少一些被存储为逻辑数据块的数据时,修改的数据能通过第一和第二逻辑接口两者访问。能通过第二逻辑接口访问包括同时管理一组预定的数据对象性质。
[0050] 在再一实施例中,描述了方法。该方法至少通过在数据存储阵列中执行以下操作而执行。通过第一接口管理在数据存储阵列中被存储为逻辑数据块的数据,并且通过第二接口管理在数据存储阵列中存储的数据对象,其中数据对象与被存储为逻辑数据块的数据相对应。当通过第一接口修改被存储为逻辑数据库的数据时,修改的数据能通过第一和第二接口两者访问。能通过第二接口访问包括同时管理一组预定的数据对象性质。

附图说明

[0051] 图1示出了根据本发明实施例的系统的符号化表示图。
[0052] 图2A-2C例示了根据本发明实施例的主机装置/本地存储装置系统。
[0053] 图3A-3B示出了根据本发明实施例的计算系统。
[0054] 图4示出了根据本发明实施例的计算系统。
[0055] 图5A-5B示出了图3所示的网络的更详细的视图。
[0056] 图6示出了描述根据本发明实施例的过程的细节的流程图。
[0057] 图7示出了描述根据本发明实施例的过程的细节的流程图。
[0058] 图8示出了根据本发明实施例的代表性媒体网络。
[0059] 图9示出了根据本发明的代表性计算系统。
[0060] 图10例示了图9所示的计算系统的特定实现方式。
[0061] 图11示出了根据本发明实施例的本地存储装置的代表性实现方式。
[0062] 图12A-B示出了本发明的实施例。
[0063] 图13例示了根据本发明实施例的主机装置/本地存储装置系统。
[0064] 图14A-14B分别例示了根据本发明实施例的本地存储装置(LSD)的映射表和感知存储容量的图示。
[0065] 图15示出了根据本发明实施例的服务于管理命令的过程的流程图。
[0066] 图16例示了适合于与图15的过程一起使用的系统。
[0067] 图17例示了包括主机装置(HD)和本地存储装置的计算系统,其中LSD被配置为索引在LSD的存储器阵列中存储的数据。
[0068] 图18例示了其中基于HD对LSD的数据访问而生成的索引数据的例子。
[0069] 图19示出了其中可由HD获得和/或使用索引数据的系统的示例配置。
[0070] 图20例示了其中索引数据可被传输到主/辅范型(paradigm)之外的外部装置的示例配置。
[0071] 图21是在宽的方面中例示了LSD可用来确定指示在LSD的存储器阵列中存储的数据的索引数据的方法的流程图。
[0072] 图22例示了根据本发明实施例的系统的简化框图。
[0073] 图23例示了根据本发明实施例的示例存储装置的简化框图。
[0074] 图24示出了例示在存储装置之间直接传输数据的过程的流程图。
[0075] 图25例示了根据本发明实施例的包括被排列为菊花链(daisy chain)配置的多个存储装置的系统的简化框图。
[0076] 图26例示了包括主机装置(HD)和本地存储装置(LSD)的系统。
[0077] 图27是同步器的实施例。
[0078] 图28至图29例示了能在所述实施例的环境下执行的各种操作。
[0079] 图30示出了根据所述实施例的流程图。
[0080] 图31示出了根据所述实施例的代表性媒体网络。

具体实施方式

[0081] 现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内可包括的变更、修改和等价物。应注意,这里描述的任何功能块或功能布置可被实现为物理实体或逻辑实体,或者两者的组合。
[0082] 随着存储装置控制器的能力的增长,从存储装置中使用由存储装置控制器使得可用的处理资源而执行软件应用成为可能。存储装置控制器的这种增强的操作性带来新(目前为止不实用)的交互模式的范型(paradigm),如面向用户的存储装置。这种面向用户的存储装置可用于改善用户的数字内容消费体验,其一般横跨多个装置-连接或未连接的-或者访问模式-有线对无线、固定对移动等-每个具有特定的存储需求。
[0083] 为了提供支持“用户中心”(与传统的“装置中心”相对)存储管理方式,本发明超越了主机管理的、基于LBA的大容量存储范型的严格限制,并提供了在完全向后兼容现有大容量存储装置的同时以其他交互类型增强大容量存储的存储服务范型。例如,其他交互类型考虑存储资源和服务构建块潜在分布在各种物理位置上(即,主机计算机中的或网络上的数据存储装置)。
[0084] 考虑这一点,存储服务范型规定本地数据存储装置现在能够做到以下方面:1)与同一主机计算机中存在的其他数据存储装置交互,或与远程服务器计算机上运行的应用交互,以及2)该交互可由数据存储装置本身、由主机应用或由远程服务器发起。
[0085] 本发明还涉及包括上述存储器装置的电子系统。存储器装置(即,存储器卡)通常用于存储与各种电子产品一起使用的数字数据。存储器装置常常可从电子系统移除,所以所存储的数字数据是便携的。根据本发明的存储器装置可具有相对小的形状因子,并且可用于存储获取数据的电子装置的数字数据,如相机、手持或笔记本计算机、网卡、网络电器、机顶盒、手持或其他小媒体(例如,音频)播放器/记录器(例如,MP3装置)和医学监视器。
[0086] 下面参照图1-31讨论本发明的实施例。然而,本领域技术人员将容易理解,这里参照附图给出的详细描述是为了解释的目的,因为本发明超出这些有限的实施例。应注意,将理解本发明可用于任何类型的本地数据存储装置,它们可包括诸如多媒体卡(MMC)和安全数字卡(SD)的非易失性存储器。
[0087] 图1示出了根据本发明实施例的主装置/辅系统100的符号化表示图。例如,根据这里描述的具体实施例,辅装置可采取本地存储装置的形式,例如但不限于上述本地存储装置中的任一个,而主装置可采取主机装置的形式,例如但不限于上述主机装置中的任一个。应注意,主/辅是一个装置或过程具有对一个或多其他装置的单向控制的通信协议的模型。在传统的系统中,一旦建立装置或过程之间的主/辅关系,则控制的方向始终是从主到辅。在一些系统中,从一群适格装置中选择主装置,而其他装置充当辅装置的角色。因此,主/辅系统100(下文简称为系统100)包括部分地通过传统的主/辅范型106彼此相关的主装置102和辅装置104。还应注意,除了由主装置102提供的接口外,辅装置104不利用到主装置102外部的任何装置的任何接口。
[0088] 主装置102可操作多个主装置过程108。主装置过程意味着仅仅为了主装置的利益而执行的过程。这样的主装置过程可包括任何数目和类型的过程,例如,在向主装置102提供可执行指令时有用的提取指令命令。主装置过程108可包括主装置过程110、112和114,每一个可由处理单元116执行。过程110、112或114中的任一个可从辅装置服务118请求服务。例如,过程110可通过生成主装置请求120而从辅装置服务118请求服务。辅装置服务118可通过辅服务响应122响应于主装置请求120。例如,主装置请求120可采用READ(读)命令的形式,而被请求的辅服务响应122可采用DATA(数据)的形式。然而,在传统主/辅范型106的界限(confine)内,辅装置104可不提示或按任何方式使得主装置
102执行主装置过程108之外的任何过程。换言之,在传统主/辅范型106的环境下,仅仅主装置102可执行主装置过程108中的至少一个。
[0089] 然而,本发明通过允许辅装置104提示处理器116执行为了辅装置102的利益而请求的过程124,避开传统的主/辅范型106。以此方式,所请求的过程124可由处理器116执行,并且仍然可完全独立于并与任何主装置过程108无关。辅装置104可包括辅装置代理126,其可将辅装置过程128和辅装置逻辑请求130相关联。主装置102可包括借助于辅装置逻辑请求130而与处理器116和辅装置104通信的主装置代理132。以此方式,主装置代理132可使用辅装置逻辑请求130提示处理器116执行所请求的辅装置过程124。以此方式,辅装置生成的逻辑请求可转换为主装置提供的物理响应,而与任何主装置发起的过程无关并独立于任何主装置发起的过程。
[0090] 图2A示出了根据本发明实施例的计算系统200。系统200可包括辅装置104,其可采用本地存储装置(LSD)204的形式。LSD 204可采用可移除存储器装置的形式,如具有相对小的形状因子并且可用来存储用于诸如相机、手持或笔记本计算机、网卡、网络电器、机顶盒、手持或其他小音频播放器/记录器(例如,MP3装置)和医学监视器的电子产品的数字数据的存储卡。存储卡的例子包括PC卡(以前的PCMCIA装置)、闪存卡(例如,紧致闪存类型I和II)、安全数字(SD)卡、多媒体卡(MMC)、ATA卡(例如,紧致闪存卡)、记忆棒、智能媒体(SmartMedia)卡。此外,LSD 204可采用非可移除存储器装置的形式,如Milpitas TMCA的SanDisk公司制造的SD兼容iNAND 嵌入式闪存驱动。
[0091] LSD 204可通过HD/LSD接口206与主机装置(HD)202形式的主装置102通信。应注意,HD/LSD 206可被配置为机械实体(如插槽或互连总线),其中可机械连接HD 202和LSD 204。在一些实施例中,HD/LSD 206可采用无线接口的方式。因为HD 202是主装置,所以HD 202包括处理器。然而,为了简洁起见,没有示出在本说明书中也未进一步提及HD202中包括的处理器,虽然如此,但假设它存在。LSD 204可物理地专门连接到HD 202,因而不能在没有HD 202介入的情况下访问或另外与计算系统200之外的电路和/或应用通信。
典型地,除了HD 202提供的接口之外,LSD 204不利用在HD 202之外的装置的任何接口。
[0092] HD 202包括与LSD驱动器210通信的主机装置文件系统(HDFS)208。在所述实施例中,HDFS 208可向LSD驱动器210发出LSD管理命令212。进而,LSD驱动器210可通过HD/LSD接口206向LSD 204传递LSD管理命令212(适当格式化的)。例如,在LSD 204被配置为包括具有逻辑块地址(LBA)架构的数据存储阵列的那些情况下,LSD管理命令212可采用块(block)命令的形式。HD 202还可包括(内部)软件应用214。内部应用意味着软件应用214可利用HDFS 208和LSD驱动器210而与LSD 204通信。这样的软件应用可包括主机装置操作系统(HDOS)216和应用218,每一个一般驻留在主机装置主存储器(其可采用硬盘驱动器或HDD以及诸如闪存的非易失性存储器的形式)中。
[0093] 在所述实施例中,软件应用214可利用HDFS 208和LSD驱动器210而与LSD 204通信,因而HDFS 208“能看到”它。然而,与应用214相反,外部应用220(下文中称为目标应用)不利用目标应用220与HDFS 208和LSD驱动器210之间的任何通信路径而与LSD204通信,因而HDFS 208不“能看到”它。在所述实施例中,目标应用220可本地或远程地驻留在许多位置和装置中。例如,这样的位置和装置可包括HD 202(具有本地应用220-1),或者在HD 202和LSD 204之外但仍然在系统200内的任何装置,如外部装置222(具有本地应用220-2)。在所述实施例中,外部装置222可采用通过接口223耦连到HD 202的第二LSD 222的形式。此外,这样的位置和装置还可包括在网络226中包括的在系统200之外的装置224(具有远程应用220-3),其在网络接口230处通过网络链路228而与HD 202通信。以此方式,可在外部装置224和HD 202之间建立使用网络链路228的命令路径,可通过它传递信息232。
[0094] HD 202可通过网络接口230与网络226通信。在所述实施例中,网络接口230通过网络链路228帮助HD 202和网络226之间的通信。例如,如果网络226是IP协议型网络,则网络接口230可在例如应用218和网络226中包括的任何网络装置(ND)224之间建立基于IP协议的网络链路228(如URL)。应注意,网络接口230物理上可位于任何合适的地方。例如,网络接口230可被合并到HD 202中。然而,网络接口230还可位于不被包括在HD 202(或系统200)内的任何物理位置,但仍由HD 202用来与网络226建立合适的网络链路228。因而网络接口230不限于物理上合并到HD 202中或在HD 202附近。
[0095] 主装置代理132可采用主机装置代理234的形式,除了上面对于主服务代理132所述的功能之外,其至少还提供在由LSD 204提供的存储服务和任何可用的外部资源之间的桥接功能性。在所述实现方式中,主机装置代理234可用于通过任何合适的手段(如下面更详细描述的轮询或中断)标识LSD逻辑请求。此外,主机装置代理234可被配置为一旦其建立向/从目标应用的通信路径则路由和/或维护该通信路径。另外,主机装置代理234可是以应用中性的(neutral)以便服务于任何类型的目标应用。
[0096] LSD 204可包括控制器236和大容量存储阵列238,该大容量存储阵列238具有第一存储阵列240和第二存储阵列242。应注意,存储阵列238可由存储器单元(如闪存)的阵列形成。在该特定情况下,即使可假设大容量存储阵列238是闪存存储器单元的阵列,但本发明不限于闪存型存储器单元,因为预期本发明可通过任何合适类型的存储器单元来使用。控制器236包括文件管理器243,其可管理主机/LSD范型106内的第一存储阵列240(即,按照HDFS 208的命令动作)。在一种特别有用的布局中,第一存储区域240可以是基于LBA的大容量存储阵列。以此方式,第一存储阵列240兼容现有已安装的基础(base)。
因此,第一存储区域240中存储的数据块的位置可使用逻辑块地址(LBA)来指定,其中例如,每个块可按照每个512或1024字节的量级。以此方式,第一存储区域240可完全后向兼容任何所预期的现有大容量存储架构(即,能够结合现有主机工作)并且更具体地,兼容LBA型系统。具体地,LSD 204(具体地,第一存储区域240)可使用现有接口、总线和所有相关联的协议,在标准LBA架构下操作,提供与现有产品的已安装基础的完全兼容性。
[0097] 控制器236还可包括LSD代理244,其可使用接口246充当第一存储区域240和第二存储区域242之间的桥路(下面描述)。LSD代理244还可管理网络堆栈/接口248,其提供让内部LSD应用250使用标准协议(如因特网协议或IP)和任何合适的网络资源通过LSD接口252与外部装置和/或目标应用通信。具体地,LSD 204可将任何网络通信(如LSD逻辑请求130)转换为标准格式(如基于物理总线的格式)以便使得主机装置代理234能按照对于HD/LSD接口206的基于LBA的实现方式合适的方式执行指令(如消息提取)。以此方式,例如任何提取的消息可在主机装置代理234和远程应用220-3之间创建的网络链路228(或本地应用220-1或220-2和LSD 204之间的本地通信路径)上成功输送。在这点上,网络堆栈/接口248可被当作LSD代理244的一部分。LSD代理244还可向LSD应用250提供认证和安全性服务,并管理任何进入的服务请求。
[0098] 第一存储区域240或第二存储区域242(或两者)可被划分为分离的内部区块(region)。这些划分的区块每个可被操作为使得它们按照任何合适的方式彼此交互和/或与LSD 204之外的电路和/或软件应用交互。例如,这样的外部电路块可包括HD 202(其中包括所有组件,如主机文件系统208)、LSD222或网络226中包括的多个外部装置中的任一个(如ND 224)。
[0099] 第二存储区域242可被划分为包括区块254。在所述实施例中,区块254可被配置为HDFS 208“看不到”,这样可被指定为隐藏存储区域(covert storage area,CSA)254。以此方式,CSA 254的任何数据内容或数据内容变化不能被HDFS 208(除非它被通知)检测到。然而,HDFS 208可被通知任何这样的数据内容或数据内容变化。例如,如下面更详细描述的,不与HDFS208通信的任何电路或软件应用(如驻留在ND 224中的远程应用220-3、HD202中的本地应用220-1和LSD 222中的本地应用220-2)可提示HD 202在自己和CSA
254之间建立通信路径256,而不会被HDFS 208看到。相反,LSD 204可提示HD 202在LSD
204和任何指定的应用220之间建立通信路径256。然而,一旦建立,则可传递信息(如信息232、信息258和信息260)而无需进一步由HD 202介入(除了与数据的传递有关的任何介入,如数据包路由),HDFS 208也看不到。然而在一些情况下,CSA 254可向HDFS 208提供任何这样的变化的通知。
[0100] 第一存储区域240可被划分为包括区块260。在所述实施例中,区块260完全可由HDFS 208或任何其他合适的外部电路访问,只要由HDFS 208转交(mediate)通信(例如,在一些实施例中,使用如上更加详细描述的基于LBA的命令)。因而,区块260可被指定为主机存储区域(HSA)260,保持以下事实:主机装置文件系统208管理HSA 260。在本发明的一个方面中,CSA254和HSA 260可独立于HDFS 208通过接口246彼此通信。在所述实施例中,作为LSD代理244的一部分,接口246可桥接第一存储区域240和第二存储区域242。LSD代理244可包括内部文件管理系统(例如,LSD FS),其可读取例如由HDFS 208管理的文件分配表(FAT)。LSD代理244还可使用例如具有哑(dummy)内容的占位符文件从CSA
254写入HSA 260或写入CSA 254。以此方式,CSA 254和HSA 260可通过HDFS 208看不到的通信路径262彼此通信。在一些情况下,所有(或仅仅部分)CSA 254和/或HSA260可被分别指定为受保护部分264和266。受保护意味着HDFS 208不能访问这些受保护区域,除非有授权。这样的授权可由计算系统200之外的装置提供,例如授权服务器。如上所述,LSD 204可提示HD 202为了LSD 204的利益而执行所请求的过程124。应注意,即使在主机命令(例如,读/写)触发LSD逻辑请求130的生成的那些情况下,LSD逻辑请求130也不服务于主机命令。
[0101] 以此方式,所请求的过程124可完全独立于并与任何主机装置过程108无关。具体地,LSD 204可提示HD 202例如建立网络链路228和/或到本地应用220-1和/或220-2的通信路径256,均为HDFS 208所看不到。然而,一旦所请求的过程124已经被执行(即,例如建立了合适的通信路径),则不需要HD 202的任何进一步的介入(除了任何路由或其他内务(housekeeping)功能)。HD 202可被LSD 204提示以按多种方式执行LSD逻辑请求130。
[0102] 在一些情况下,可能期望LSD 204间接地提示HD 202执行所请求的过程。间接意味着LSD 204使用与HD代理234分开并且有所不同的媒介代理,来提示HD 202执行所请求的过程。可参照图2B的计算系统270例示所请求的过程的间接提示。如所示,LSD 204中的代理244可使用LSD逻辑请求130提示HD 202在代理244和目标应用274(也称为起动应用)之间建立通信路径272。应注意,起动(launching)应用274可位于本地或远程。例如,代理244可驻留在LSD 204中,而起动应用274可驻留在ND 224中,在此情况下,HD
202使用网络接口230建立通信路径272(即,类似于网络链路228)。可替换地,起动代理
274可驻留在外部装置222中或在HD 202内,在此情况下,通信路径272将类似于本地通信路径256。
[0103] 在任何情况下,一旦建立了通信路径272,则代理244可通过通信路径272与起动应用274逻辑地交互,而无需HD 202的进一步介入(除了维护通信路径272)。作为该逻辑交互的一部分,代理244可向起动应用274传递触发命令276。起动应用274可通过发送命令280提示HD 202执行所请求的过程278,而响应于触发命令。HD 202然后可执行所请求的过程278。所请求的过程278可指回代理244。以此方式,代理244和所请求的过程278可逻辑地交互。
[0104] 在如下情形下实现本发明的该方面的一个特别有用的实施例,其中将期望LSD204与用户逻辑地交互。图2C中示出了该实施例的具体实现方式,其中起动应用274可驻留在外部装置222中(然而应注意,如上所述,起动应用274可远程或本地驻留)。在该例子中,外部装置222可采用订户标识模块(SIM)卡222的形式。如本领域中所公知的,SIM卡222可用于移动蜂窝电话机装置,如移动计算机或移动电话。SIM卡可安全地存储用来标识订户的服务订户密钥(IMSI)。此外,SIM卡允许用户通过简单地从一个移动电话移除SIM卡并将其插入另一移动电话或宽带电话机装置,来改变电话(或其他宽带通信装置)同时保持其订阅。在该例子中,SIM卡222兼容SIM应用工具包(STK)命令集,其允许SIM卡
222抢先起动HD 202(例如,其可采用蜂窝电话的形式)上的过程。STK命令集包括被编程到SIM卡中的指令,其定义了SIM应如何直接与外部世界交互和独立于手持装置和网络发起命令。这使得SIM卡能够在网络应用和终端用户之间构建交互性交换,并访问网络或控制对网络的访问。SIM卡还向手持装置给出命令,如显示菜单,并请求用户输入。
[0105] 因此,可如下实现LSD 102可用来建立直接通信路径从而与终端(end)用户交互的一种方式。代理244可提示HD 202建立到SIM卡222的通信路径272,SIM卡222被布置为使用起动应用274抢先提示HD 202执行HD 202上的所请求的过程。应注意,对于基于ISO接口的SIM卡,可使用SIM侧的BIP(载体独立协议)建立通信路径。然而,对于基于USB接口的SIM卡,可使用SIM侧的以太网仿真(EEM)类建立通信路径272。
[0106] 在此情况下,SIM卡222可以是兼容STK的SIM卡222。然而,如下所述,本发明不限于特定通信技术或网络类型。在任何情况下,代理244可触发兼容STK的SIM卡222(使用起动应用274)以提示HD 202执行所请求的过程278,其可采用例如浏览器应用278的形式。在所述实施例中,浏览器应用278指向代理244(和LSD 204)。浏览器应用278可使得在例如显示单元282上显示用户界面(UI)280。UI280可在图标286处接收用户输入284。以此方式,UI 280和代理244可逻辑交互,由此向LSD 204提供到UI 280和提供用户输入
284的用户的直接访问。在一些情况下,可能必要的是,让SIM 222充当浏览器278和LSD
204之间的媒介。在任何情况下,LSD204和UI 289可逻辑交互,而无需HD 202的介入(除了HD 202执行浏览器278和提供与维护各种通信路径有关的合适的内务责任)。
[0107] 例如,UI280可接收用户输入284。用户输入284可以被浏览器应用278处理为例如用户选择事件288。因为浏览器应用278可指向代理244,所以作为浏览器应用278和代理244之间的逻辑交互的一部分,代理244可接收用户选择事件288而无需HD 202的介入(除了HD 202维护各种通信路径和执行浏览器应用278)。按照相同的方式,代理244可使用UI 280或显示单元282,通过逻辑交互向用户传递信息。例如,这样的信息可包括LSD204的当前状态、所选存储内容的列表等。
[0108] 应注意,取决于网络和相应技术,SIM卡可按许多方式称呼。例如,在3G型网络中,SIM卡被称为USIM卡。因而,将引用USIM应用工具包或USAT。在任何情况下,本发明可用于任何网络和相应的技术(STK、USAT等)。
[0109] 图3A例示了根据本发明实施例的轮询方案300。HD 202可通过向LSD204发送由LSD代理244截取的轮询信号(PS)302而轮询LSD 204。在所述实施例中,LSD代理244可包括逻辑请求生成器304,其通过生成LSD逻辑请求130而响应于PS 302。逻辑请求生成器304随后将LSD逻辑请求转发回主机装置代理234。应注意,所述轮询过程不取决于HD202对来自LSD204的特定响应的需求或预期。以此方式,LSD 204可通过用LSD逻辑请求
130简单地响应于轮询信号302,而在任何时间提示HD 202执行所请求的过程124。在所述实施例中,LSD逻辑请求130包括可提示HD 202执行LSD请求的过程124的命令信息。应注意,该命令信息可包括诸如指示要由HD202完成的特定操作(如设置命令路径256)的命令代码的数据。
[0110] 命令信息还可包括装置信息,如目标装置标识(ID)、目标装置位置(例如IP地址)等。然而在一些情况下,LSD 204或HD 202手头没有完成所需任务的足够信息。例如,LSD 204可提供指示特定操作的命令信息,但缺少特定目标装置ID或目标装置位置。在这些情形下,可能利用能由LSD 204通过例如网络链路238查询的发现服务器计算机,以便获得丢失的但必要的信息。例如,LSD 204可简单地通过在任何时间以LSD逻辑请求130响应于PS 302,发起对目标存储装置的存储操作。LSD逻辑请求130可包括具有让HD 202在LSD 204和目标存储装置之间建立命令路径的指令的命令。应注意,目标存储装置可在任何位置,只要HD 202能建立合适的命令路径即可。例如,如果目标存储装置是网络226中的ND 224,则HD 202可通过在网络接口230和ND 224之间建立网络链路228而响应于LSD逻辑请求130。
[0111] 关于在图3B中例示的LSD生成的中断,描述LSD 204可用来提示HD202执行所请求的过程124的另一机制。LSD 204可通过使用LSD终端关联器402将从LSD逻辑请求生成器304接收的LSD逻辑请求130和LSD生成的中断404相关联,提示HD 202执行所请求的过程124。一旦LSD逻辑请求130已经与LSD中断404相关联,则LSD 204产生中断404以引起HD 202的注意。HD 202通过执行所请求的过程124,响应于与LSD中断404相关联的逻辑请求130。
[0112] LSD 204还可指导HD 202与诸如第二LSD 222的其他本地存储装置建立通信。例如,计算系统200可以是便携式媒体播放器(在此情况下,LSD204存储各种数字媒体文件,如MP3格式的音频文件),其可耦连到个人计算机,以便例如在第二LSD 222和LSD 204之间同步媒体文件。在该例子中,LSD 204可发起合适的同步操作,由此不为HDFS 208所见地比较和更新LSD 222和LSD 204两者之间的数据内容。
[0113] 在另一例子中,LSD 204可进行许多操作,生成结果,并基于该结果生成相关联的逻辑请求。然后LSD 204可使用逻辑请求提示HD 202执行合适的LSD过程。例如,LSD 204可进行一组LSD参数的检测操作。在所述实施例中,所检测的该组LSD参数可包括诸如数据内容备份参数、数据内容参数(如文件大小、文件类型、文件名和文件关键字)、逻辑存储参数(如剩余容量和LSD IP地址,如果合适的话)、物理存储参数(如磨损水平、坏块数、比特反转数)、违规参数和主机装置IP地址的参数。一旦LSD 204完成了检测操作,则生成检测操作结果。应注意,在一些情况下,所生成的结果是空(NULL)结果,其中所检测的参数落入管理LSD的操作的一组规则内。然而,在其他情况下,所生成的结果可以与LSD逻辑请求130相关联,作为能提示HD 202建立到目标应用的通信路径的检测逻辑请求130。这样的目标应用可包括本地应用220-1、220-2或远程应用220-3。应注意,在本地应用220-1和220-2的情况下,通信路径被称为本地通信路径。一旦已经建立这样的通信路径,则LSD204和目标应用220能逻辑地交互,以便进行所请求的检测过程。应注意,一旦已经建立了通信路径,则不需要HD 202的进一步介入,除了维护通信路径和任何其他内务责任。所请求的检测过程可包括内容备份过程、内容共享过程、事件通知过程、远程指令的请求过程、使用/访问的请求过程、远程服务器的登记过程。
[0114] 在一个实施例中,LSD 204将检测逻辑请求与主机装置的轮询相关联。然而在其他实施例中,LSD 204将检测逻辑请求与LSD中断相关联,并产生LSD中断以引起HD 202的注意。在任何情况下,可提示HD 202执行合适的所请求的检测过程。
[0115] 应注意,本发明是基本对称的,其中LSD 204和/或系统200之外的任何电路或软件应用可使用HD 204以LSD 204为目标,作为在请求装置和目标装置LSD 204之间建立通信路径的机制。以此方式,LSD 204可响应于源自外部电路或外部软件应用的请求(如提供当前状态信息、当前容量等)。例如,图4例示了远程应用220-3独立于HDFS 208迫使第一存储区域240执行多个存储操作中的任一个的情形。例如,外部应用220-3可通过向预先建立的主机装置文件系统(HDFS)208能看到因而能管理的代理器文件450(也称为占位符文件)写入数据,将数据写入存储区域240。然而,占位符文件450中包括的任何数据内容可被当作“哑”数据,因为占位符文件450仅仅是远程应用220-3藉之能访问/改变代理器文件内的数据而不被HDFS208(除非被通知)“看到”的机制的一部分。
[0116] 例如,外部应用220-3可通过转发要写入占位符文件450的数据454,将数据454写入占位符文件450而无需HDFS 208的介入。在一个实现方式中,数据454可直接发送到占位符文件450,或使用CSA 254作为高速缓存以缓存数据454的所选部分。当使用CSA254高速缓存数据454时,数据454通过通信路径256传递到占位符文件450,而无需HD 202的介入(除了建立通信路径256)。以此方式,远程应用220-3(或者就此而言,任何外部应用220)可将数据写入占位符文件450,或可从占位符文件450流传输数据454,而无需HDFS
208的介入。
[0117] 例如,LSD 204可进行检测操作,其确定第一存储阵列240的可用存储容量少于预定量。基于该结果,LSD逻辑请求生成器340可生成LSD检测逻辑请求130,其提示HD 202在LSD 204和远程应用220-3之间建立通信路径228。一旦建立了通信路径228,则HD 202可不介入,因为HD 202现在假设相当于用来例如路由数据分组的调制解调器、路由器或其他这样的装置的角色。一旦通过通信路径228链接了远程应用220-3和LSD 204,则LSD204和远程应用220-3可通过通信路径228逻辑交互。例如,LSD 204可将检测操作的结果转发给远程应用220-3。远程应用220-3可通过将数据454(用户通知、广告等的形式)推送(写入)占位符文件452而进行响应。一旦数据454被存储在占位符文件452中,则现在HDFS 208能看到数据454,并且可由HD 202按许多方式处理数据454。例如,数据454可由HD 204用来显示需要附加存储容量的通知,甚至建议购买产品,以及哪里能买到它和价格如何。
[0118] 图5A示出了根据本发明实施例的网络500的更详细视图。具体地,网络500是图3所示的网络226的一个实施例。具体地,网络500被示出为包括通过分布式命令路径耦连到计算系统200的服务器计算机502。这样的分布式命令路径可包括无线通信(WiFi、蓝牙等)以及有线通信等。在所述实施例中,服务器计算机502包括服务器组件504,其使用例如标准网络技术(例如,基于HTTP/SOAP的网络服务)向开发者和其他用户部分地提供一些清楚和定义好的接口。在所述实施例中,每当需要例如远程应用和LSD 204之间的安全信道时,服务器组件504能至少提供授权和认证服务。以此方式,可提供针对可能的源自网络的攻击、间谍软件、不良软件等。另外,隐私保护以便确保终端用户内容使用不能被未授权第三方跟踪,关于存储装置的优化通信协议可能使用一些压缩技术,和服务器计算机还可包括广播和/或多播能力。装置登记模块506和/或发现服务模块508可被包括在服务器计算机502中或耦连到服务器计算机502。
[0119] 装置登记模块506和发现服务模块508分别提供登记服务和发现服务。登记服务意味着被登记到装置登记模块506的网络226中包括的、添加的或移除的任何装置具有与相应装置的当前状态相一致地更新的相关登记数据。这样的登记数据可包括装置类型、装置位置(如果网络是基于IP协议的网络,则是IP地址)等等。
[0120] 在一个实施例中,与装置(或软件应用)相关联的登记数据可由登记模块506按照多种不同方式更新。一个方式在于向登记模块506通知装置状态已改变(即,装置已经被添加、移除或已经在网络226内移动位置等)。在本发明的一些方面中,为了保护处理资源以及网络带宽,不是所有的改变都被认为足够感兴趣到要通知登记模块506。然而,在装置状态改变已经发生并且准许通知的那些情形下,可通过登记模块506不断测试(ping)网络226中包括的所有装置并请求每个装置返回当前状态信息,而向登记模块506通知状态改变。相对于前一装置状态已经改变并且已被确定为代表可通知状态改变的任何状态信息将调用装置登记模块506处的通知事件。
[0121] 响应于通知事件,登记模块506可请求具有改变的状态的装置将当前装置状态信息转发给登记模块506。一旦登记模块506接收到,则与装置相关联的状态信息可在登记模块506处更新并被转发给发现服务器508。另一个方法可使得装置登记模块506采用更被动的方法,其中每个装置可在状态改变已经发生时将其特定的当前状态转发给装置登记模块506。同样,为了保护计算资源和网络带宽,本发明的一些方面仅仅规定报告仅仅特定的状态改变,而不是所有的状态改变。
[0122] 在任何情况下,一旦当前状态信息已被接收到并合适地处理,则登记模块506可将当前状态信息转发给发现服务模块508,其中它可被存储以向请求装置和或软件应用提供后续的发现服务。这样的信息可包括与网络324中包括的任何装置有关的任何信息,以便例如帮助在请求装置(包括软件应用,如果有的话)和目标装置或目标应用之间建立命令路径。
[0123] 仍然参照图5A,如果LSD 222先前还未与HD 204耦连,但在某个点上,通过将LSD204插入接口223(例如,将安全数字(SD)卡插入与网络通信的便携式计算机、数码相机等)LSD 222耦连到HD 204,则在本发明的一个方面中,LSD 222能向装置登记服务506通知它已经加入网络226。然而在本发明的再一方面中,装置登记服务506可通过例如测试计算系统200并确定可通知改变已经发生,主动确定LSD 222已经进入网络。
[0124] 在LSD 222主动通知装置登记服务506状态改变(在此情况下LSD 222已经添加到网络226)的情况下,LSD 222可使用上述至少一个机制,请求HD 202在LSD 222和装置登记服务506之间建立命令路径,其包括从HD 202到网络226的网络链路228和从网络226到登记服务506的命令路径510。应注意,如果LSD 204不知道装置登记服务506的位置,则HD 202将提供作为默认位置的位置,或者网络服务将自动将状态改变引导到预定义的位置。
[0125] 一旦已经建立了LSD 204和登记服务之间的通信,则装置登记服务506可更新(被动或主动)LSD 222的当前状态(其中LSD 222的当前状态由LSD 222推送或由登记服务器506拉出)。一旦更新,则装置登记服务506然后可将LSD 222的当前状态转发到发现服务模块508,其中它被存储用于无论何时远程装置针对于LSD 222时的后续检索。应注意,登记信息可包括与装置有关的任何相关信息。这样的相关信息(在数据存储装置的情况下)可包括逻辑存储装置参数(剩余可用存储容量、装置IP地址、装置上的可用存储应用、固件版本和特性等),其更多地是装置的固定特性。这样的信息还可包括更加短暂的信息,如当前可用的数据存储容量、所存储的数据的性质(quality)、装置位置等,以及可包括文件大小、文件类型、文件名和文件关键字的数据内容参数。
[0126] 一旦发现服务508已经被更新,则发现服务508可将关于其中存储了数据的任何目标装置(或目标软件应用)的所请求的发现信息提供给任何请求装置(或软件应用)。例如,具有与远程存储装置514耦连的远程主机装置512的远程计算装置510可使用发现服务,通过首先在远程计算装置510和LSD 204之间建立命令路径,远程地调用对诸如LSD
204的目标装置的存储操作。可通过远程计算装置510向发现服务508发送发现请求516以请求对于目标装置LSD 204的发现信息来建立命令路径。这样的发现信息可包括目标装置位置信息、目标装置当前操作状态信息、目标装置当前参数信息等。响应于发现请求,发现服务508可将包括合适的目标装置发现信息的发现服务器响应518转发回请求装置(即,远程计算装置510)。
[0127] 一旦远程计算装置510已经接收到关于目标装置LSD 204的合适的目标发现信息,则如图5B所示,远程计算装置510可在目标装置LSD 204(使用HD 104作为管道)之间建立命令路径,其至少包括网络链路228。一旦已经在目标装置LSD 204和远程计算装置510之间建立了命令路径,则远程计算装置510可远程地调用对目标装置LSD 204的任何数目和类型的存储操作。例如,这样的操作可包括读、写和/或擦除数据。
[0128] 图6示出了详细描述根据本发明实施例的过程600的流程图。过程600从602开始,确定主机装置是否与本地存储装置通信。通信意味着主机装置和本地存储装置具有在它们之间建立的有能力的命令路径。有能力的通信意味着在主机装置和本地存储装置之间建立了物理连接、建立了无线连接、或者建立了逻辑连接,能通过其传递信息。一旦已经确定在主机装置和本地存储装置之间建立了有能力的通信路径,则在604,确定本地存储装置是否具有待决的LSD发起的事件。LSD发起的事件意味着与任何主机装置或主机装置文件系统过程无关和独立于它的事件。如果在604确定没有待决的LSD发起的事件,则过程600结束,否则在606,确定主机装置是否在不断轮询本地存储装置。如果主机装置没有轮询本地存储装置,则本地存储装置在608生成LSD逻辑请求,其包括与待决的LSD发起的事件有关的信息,并且在610,本地存储装置产生(throw up)与LSD逻辑请求相关联的中断标志。在612,主机装置响应于中断标志。
[0129] 回到606,如果主机装置不断轮询本地存储装置,则在614,本地存储装置通过包括与待决的LSD发起的事件有关的信息的LSD轮询响应,响应于主机装置轮询。在616,主机装置响应于LSD轮询响应。
[0130] 图7例示了根据本发明实施例的过程700。过程700在701开始,确定远程装置是否想要调用对本地存储装置的操作。如果肯定,则在704,确定远程装置是否向发现服务器发送查询以便获得目标装置信息。如果远程装置已经确定其无需查询发现服务器,则在706,远程装置联系本地装置。另一方面,如果远程装置已经确定需要对于目标装置的发现信息,则在708,确定发现服务器是否具有目标装置发现信息。如果确定发现服务器不具有所请求的目标装置发现信息,则在710,确定登记服务器是否具有所请求的目标装置信息。
如果确定登记服务器没有所请求的目标装置信息,则过程700结束。否则,登记服务器在
712将所请求的目标装置发现信息转发到发现服务器。返回708,如果发现服务器已经确定其具有所请求的目标装置发现信息,则在714,远程装置将发现信息请求发送给发送服务器,并在716,发现服务器提供所请求的目标装置发现信息。在706,远程装置联系目标装置,并且在任何情况下,在718,目标装置响应于远程装置。
[0131] 图8提供了本发明的一种环境,其中作为网络226的特定配置的媒体网络800包括多个媒体装置,如媒体播放器。在该例子中,计算系统200可以是被配置为存储多个数字媒体项目(如视频、可能作为MP3文件的音频等)的媒体播放器100。网络800可包括被配置为有线网络804和无线网络806之一或两者的分布式通信802。在所述实施例中,有线数据网络802属于万维网的某一部分。个人计算机806可耦连到有线网络802(其在此情况下通过第二接口处的USB线缆连接到计算系统100)。无线数据网络804还可耦连到有线数据网络802。无线数据网络804可包括一个或多个无线数据网络,如蜂窝网络、WiFi网络、WiMAX网络等。
[0132] 媒体网络800包括中心媒体服务器808,其存储或访问大量媒体项目。此外,网络800支持一个或多个附加计算系统810,其被配置为网络装置,可采用便携式媒体装置的形式,如便携式媒体播放器200、810、812和814,其中一些可被配置为仅仅具有现有的大容量存储装置,而其他的可被配置为图2所示的计算系统200。便携式媒体装置200、810、812和
814中的任一个可通过有线链路816或无线链路818与个人计算机806通信。作为例子,有线链路816可相应于能将便携式媒体装置810互连到个人计算机806(如果可用的话)的线缆(例如USB线缆)。无线链路818可通过无线能力提供,如蓝牙、红外等。典型地,便携式媒体装置810将能够使用有线链路816、无线链路816或两者与个人计算机806通信。
[0133] 便携式媒体装置814可通过无线链路820耦连到无线数据网络804。类似地,便携式媒体装置812可通过无线链路822耦连到无线数据网络804。由此,便携式媒体装置814和812可经由无线数据网络804访问中心媒体服务器808。此外,便携式媒体装置200、810、812和814可无线地彼此访问,从而在便携式媒体装置之间交互媒体项目数据。
[0134] 计算系统200可采用媒体装置的形式,其可属于诸如MP3播放器的便携式媒体播放器以及诸如可包括LSD 204和HD 202的移动电话的无线装置。这些移动装置可包括在移动装置上操作的主机计算机上的媒体管理应用。假定移动装置的便携性,移动装置更小,并具有更少的资源(例如,存储容量)。因此,被设计为在移动装置上使用的媒体管理应用可提供比在更大更有能量的计算装置(例如个人计算机)上操作的对方(counterpart)媒体管理应用少的特征和能力。假定移动装置具有对中心媒体服务器808的无线访问,则移动装置可与媒体服务器808交互以请求和/或接收媒体项目数据(或其他数据)。由此,在移动装置上操作的媒体管理应用可与媒体服务器808通信以进行各种任务,包括:浏览服务器处的可用媒体内容(如媒体存储的浏览)、接收媒体内容对媒体装置的周期性传输(如媒体项目数据从服务器到媒体装置的每日推送)等。
[0135] 这里讨论的本地存储装置可兼容任何存储卡格式或协议,如用于管理诸如音频、视频或图片文件的数字媒体的安全数字(SD)存储卡格式和协议。存储装置还可兼容多媒体卡(MMC)存储卡格式、紧致闪存(CF)存储卡格式、闪速PC(例如,ATA闪存)存储卡格式、智能媒体存储卡格式或兼容任何其他工业标准规格。这些存储卡的一个供应商是Milpitas CA的SanDisk公司。非易失性存储器即使在去除电力后也维持其存储器或存储状态。存储装置还可应用于其他可擦除可编程存储器技术,包括但不限于电可擦除可编程只读存储器(EEPROM)、EPROM、MRAM、FRAM、铁电和磁存储器。注意,存储装置配置不依赖于可移除存储器的类型,并且可通过任何类型的存储器实现,无论它是闪存还是其他类型的存储器。存储装置还可通过一次性可编程(OTP)存储器芯片和/或通过3维存储器芯片技术实现。
[0136] 可用来使用这样的存储卡的主机系统包括蜂窝电话、个人计算机、笔记本计算机、手持计算装置、相机、音频再现装置和需要可移除数据存储装置的其他电子装置。闪速EEPROM系统也用作嵌入主机系统中的大体积大容量存储装置。存储装置可以是本地代理器系统的一部分,其可在PDA(个人数字助理)、移动手持机和其他各种电子装置上实现。典型地,PDA已知为用户持有的计算系统,通过各种个人信息管理应用而实现,如地址本、日历组织器和电子记事本等等。
[0137] 如这里所述,计算系统可包括主机装置(HD)和本地存储装置(LSD)。LSD可同时充当大容量存储装置或网络可访问的装置。以此方式,可由计算系统运行多个应用。这样的应用可彼此独立地执行,并且还可彼此独立地管理LSD上存储的相应内容集合。应注意,管理内容可包括由LSD上存储的内容执行或对该内容执行的许多操作。这样的操作可包括但不限于读取数据、写入数据、擦除数据、复制数据、格式化数据等。本发明实现的优点之一是即使应用彼此没有关系,LSD也能通过应用中的另一个告知一个应用LSD上成为可用的内容。以此方式,可实现独立应用之间的协同,提供了协作环境,其能带来例如计算系统的改善的操作、改善的资源(即,存储器、带宽、处理)分配和使用以及其他因素。
[0138] 例如,图9例示了根据本发明实施例的计算系统1100。系统1100包括与具有存储器阵列1106的LSD 1104通信的主机装置(HD)1102。HD1102可以正在执行应用1108。应用1108可包括因特网应用,如浏览器应用1110,其具有管理LSD 1104上的相关本地(浏览器)高速缓存1114的浏览器高速缓存管理器BCM1112。BCM 1112可使用所谓的大容量存储路径1118通过HDFS 1116管理浏览器高速缓存1114,大容量存储路径1118可包括存储器控制器1120和LDS驱动器1122。LSD 1104可包括由远程代理器高速缓存关联器(RPCM)1126通过包括网络接口1130的网络路径1128管理的代理器高速缓存1124。应注意,可由HD1102独立于HDFS 1116应LSD 1104的提示而建立网络路径1128。另外,一旦由HD 1102建立了网络路径1128,则HD 1102不再介入,除了网络路径1128的维护(和任何其他“内务”责任)。
[0139] 在操作期间,RPCM1126可按照先发(pre-emptive)方式将预先提取的内容1138直接推送到LSD 1104。先发方式意味着预先提取的内容1138可在BCM 1112对内容1138的任何实质请求之前推送到LSD 1104,由此排除实际请求通过网络路径1128发送到RPCM1126的需求。以此方式,可保护网络带宽。
[0140] 显然,然后不同地使用BCM 1112和RPCM 1126。例如,BCM 1112可通过大容量存储路径1118动作,以将已由浏览器应用1110请求的内容1140本地高速缓存到LSD 1104中的浏览器高速缓存1114中。同时,典型地,RPCM 1126执行支持BCM 1112的功能,如内容预提取(即,在请求特定内容之前检索内容)。然而,典型地,BCM 1112和RPCM 1126由不同的销售者提供,因而BCM 1112和RPCM 1126最有可能具有不同的高速缓存策略。此外,因为大容量存储路径1118和网络路径1128彼此不交叉(即,通信),所以BCM 1112和RPCM1126不能以同步的方式工作。
[0141] 就BCM 1112/RPCM 1126的整体性能而言,这种同步性缺失显然是次优的。例如,RPCM 1126可能正在存储已经由BCM 1112存储了的内容(反之亦然),从而浪费了宝贵的存储器、处理和带宽资源。这种资源浪费在移动环境中可能尤其成问题,其中大多数或所有资源可能是非常宝贵的。但是,本发明使得RPCM 1126和BCM 1112以传统布局的系统不能实现的方式进行协作。例如,LSD 1104可向RPCM 1126告知BCM 1112正高速缓存到浏览器高速缓存1114中的浏览器内容1140的类型和性质。通过此方式,RPCM1126可以例如自动预提取与BCM 1112已经高速缓存在浏览器高速缓存1114中的那些页的链接相应的任何页。此外,RPCM 1126可避免重复为高速缓存已经存储在浏览器高速缓存1114中内容1140所需的工作,进一步减少珍贵资源的任何徒然使用。另外,RPCM 1126可对BCM 1112的高速缓存策略进行“反向工程”,由此改善RPCM 1126预测BCM 1112动作的能力,并由此改善RPCM 1126和BCM 1112的交互的整体效率。这种效率改善可带来终端用户的因特网体验的大大改善。
[0142] 图10示出了例示图9所示的系统100的特定实施例的系统1200。系统1200可包括连接到或者与本地存储装置(LSD)1204通信的主机装置(HD)1202。HD 1202和LSD 1204可通过HD/LSD接口1206与HD 1202通信。LSD 1204可采用可移除存储器装置的形式,如具有相对小的形状因子并且可用来存储诸如相机、手持或笔记本计算机、网卡、网络电器、机顶盒、手持或其他小音频播放器/记录器(例如MP3装置)和医学监视器的电子产品的数字数据的存储卡。存储卡的例子包括PC卡(以前的PCMCIA装置)、闪存卡(例如,紧致闪存类型I和II)、安全数字(SD)卡、多媒体卡(MMC)、ATA卡(例如,紧致闪存卡)、记忆棒、智能媒体卡。此外,LSD 1204可采取非可移除存储器装置的形式,如Milpitas CA的SanDiskTM公司制造的兼容SD的iNAND 嵌入式闪存驱动器。
[0143] 应注意,HD/LSD接口1206可被配置为机械实体(如插槽或互连总线),其中可机械连接HD 1202和LSD 1204。在一些实施例中,HD/LSD 1206可采用无线接口的形式。HD 1202包括处理器,然而为了简洁起见,在下面的讨论中没有示出也没有进一步提及HD
1202中包括的处理器,但假设它存在。LSD 1204可物理地专门连接到HD 1202,因而不能在没有HD 1202介入的情况下访问或与系统1200之外的电路和/或应用通信。典型地,除了HD1202提供的接口之外,LSD 1204不使用到HD 1202之外的装置的任何接口。
[0144] HD 1202包括主机装置文件系统(HDFS)1208。HDFS 1208可发出LSD管理命令1210,其可通过LSD驱动器(未示出)和HD/LSD接口1206传递到LSD 1204。例如,在LSD
1204被配置为包括具有逻辑块地址(LBA)架构的数据存储区域的那些情况下,LSD管理命令1210可采用块命令的形式。系统1200还可具有在LSD 1204或HD 1202上驻留的多个应用,其可彼此独立地执行。此外,每个应用可管理LSD 1204上它们自己的特定的数据高速缓存,每个高速缓存也彼此独立。例如,这样的应用可包括诸如BCM 1112支持的浏览器
1212的因特网应用,其可利用HDFS 1208以使用上述大容量存储路径1118与LSD 1204通信。除了浏览器应用1212之外,独立的应用1214还可利用HDFS 1208与LSD 1204通信,因而HDFS 1208“能看到”。然而与应用1214相反,某些独立应用不利用大容量存储路径1118在LSD1204中存储数据。这样的应用可被称为外部或目标应用1216,因而HDFS1208“看不到”。
[0145] 在所述实施例中,目标应用1216可本地或远程地驻留在任何数目的位置和装置中。这样的位置和装置可包括例如HD 1202(具有本地应用1216-1)或HD 1202和LSD 1204之外的但仍在系统1200中的任何装置,如外部装置1218(其中驻留本地应用1216-2)。在所述实施例中,外部装置1218可采用通过接口1220耦连到HD 1202的第二LSD 1218的形式。此外,这样的位置和装置还可包括远程装置1222(其中驻留远程应用1216-3,其可采用适合于管理代理器高速缓存1124的RPCM 1126的形式)。
[0146] LSD 1204可包括控制器1224和数据存储区域1226。数据存储区域1226可被逻辑地布置为至少包括由HDFS 1208使用大容量存储路径1118管理的大容量存储区域1228。在特别有用的布局中,大容量存储区域1228可以是基于LBA的大容量存储区域。数据存储区域1226还可以被逻辑地布置为包括HDFS 1208看不到的部分1230。HDFS 1208看不到意味着看不到的部分1230不被HDFS 1208管理,因而不能被HDFS 1208直接访问。
[0147] 大容量存储区域1228还可被逻辑地布置为包括浏览器高速缓存1114,其可包括支持浏览器1212的BCM 1112所提供的浏览器内容1140。通过在浏览器高速缓存1114中本地高速缓存先前由浏览器1212使用的信息,减少了用来提供浏览器1212的网络带宽量。移动网络带宽的减少对于移动网络的高效操作可能是重要的,尤其是因为可用的网络带宽可能是有限的。看不到的部分1230可被逻辑地布置为包括代理器高速缓存1124。
[0148] 与高速缓存机制的性能有关的一个问题是决定如何将内容带入和移出高速缓存的高速缓存策略。典型地,高速缓存策略由应用开发者公布的优化指令构成,其被遵循以便管理计算机上存储的信息的高速缓存。高速缓存大小通常是有限的,并且如果高速缓存满了,则高速缓存策略必须选择丢弃哪些项目,以为新的项目腾出空间。最高效的高速缓存算法(也称为高速缓存启发式)将始终丢弃在未来最长的时间内将不再需要的信息。因为不可能预测未来多久将需要信息,所以这是不可行的。可仅仅在试验之后计算出可行的最小值,并且可比较实际选择的高速缓存算法的效率和优化的最小值。各种高速缓存策略的例子包括最近最少使用(LRU)、最近最常使用(MRU)、伪LRU和自适应替换高速缓存(ARC)。
[0149] 除了高速缓存中存储的资源的时间性质之外,所存储的内容本身的性质也可以是重要的顾虑。所存储的内容的性质可以是具有不同成本的项目(保留获得起来最贵的项目,例如花费长时间得到的那些项目)或占据更多高速缓存的项目(如果项目具有不同的大小,则高速缓存可能想要丢弃大的项目以存储几个更小的项目),以及随时间过期的项目。当应用开发者表述要应用于与应用相关联的高速缓存的高速缓存策略时,可不同程度地考虑这些顾虑中的全部或仅仅一些。
[0150] 在浏览器1212的情况下,应用于浏览器高速缓存1114的合适的高速缓存策略可依赖于上述顾虑中的任一个或全部,尤其是当在要使用浏览器1212的移动环境的情况下看时。因为浏览器1212将用在移动环境中,当面对网络流量、可用带宽等时,可对那些表现出特别大的负担的项目给予特殊的考虑。因而浏览器开发者将创建特别定制的浏览器高速缓存策略,以优化浏览器1212当在移动WEB环境中使用时的性能。应用于代理器高速缓存1124的任何高速缓存策略可以与应用于浏览器高速缓存1114的高速缓存策略非常不同。
代理器高速缓存高速缓存策略和浏览器高速缓存高速缓存策略之间的潜在的失配可能表现出非常低效和由浏览器1212体现出的性能损失。例如,应用于代理器高速缓存1124的代理器高速缓存高速缓存策略可以被引导为以其中存储的资源的“新鲜度”为代价来保护可用的高速缓存存储器空间,而应用于浏览器高速缓存1114的浏览器高速缓存高速缓存策略可被引导为恰好相反,以任何其他因素为代价维持“最新鲜”的资源。因而,在该例子中,代理器高速缓存高速缓存策略和浏览器高速缓存高速缓存以相反的目的工作,在此过程中产生代理器高速缓存1124和浏览器高速缓存1114的操作的基本冲突。显然,将期望代理器高速缓存1124和浏览器高速缓存1114尽可能可实行地整齐地工作,以便改善整体效率和本地高速缓存系统的利用。
[0151] 本发明的特征之一是LSD 1204可基于浏览器高速缓存1114中存储的数据的性质(即,文件的大小、文件的种类)和浏览器1114中存储的数据的动态(即,文件的保持长度)推导出(即,反向工程)浏览器高速缓存高速缓存策略。例如,可在浏览器高速缓存内容1140的当前状态和浏览器高速缓存内容1140的任何数目的先前状态之间进行比较。以此方式,可发展出指示浏览器高速缓存内容1140随时间的状态变化的模式。然后可由LSD1204使用该模式,例如以推导出浏览器高速缓存高速缓存策略。例如,如果LSD 1204确定浏览器高速缓存1114首先丢弃最近最少使用的项目,则LSD1204可推导出浏览器高速缓存1114由沿着LRU型高速缓存策略的线路构建的浏览器高速缓存高速缓存策略引导。另一方面,如果LSD 1204推导出浏览器高速缓存1114首先丢弃最近最常使用的项目,则LSD
1204可推导出浏览器高速缓存1114遵循沿着MRU型高速缓存策略的线路构建的高速缓存策略。在任何情况下,一旦LSD 1204已经推导出浏览器高速缓存高速缓存策略,则LSD
1204可使用推导出的浏览器高速缓存高速缓存策略修正代理器高速缓存高速缓存策略,带来本地高速缓存系统的效率的整体改善。
[0152] 例如,如果LSD 1204已经推导出浏览器高速缓存1114遵循LRU型高速缓存策略,则LSD 1204可将代理器高速缓存高速缓存策略修正为优先丢弃最近最少使用的代理器高速缓存内容。以此方式,可减少整体内容重复,改善了本地高速缓存系统的整体利用。相反,如果LSD 1204已经推导出浏览器高速缓存1114遵循MRU型高速缓存策略,则LSD 1204可将代理器高速缓存高速缓存策略修正为优先丢弃最近最常使用的代理器高速缓存内容。在任何情况下,LSD 1204有在认为适当时修改代理器高速缓存高速缓存策略的自由。
[0153] 例如,在移动WEB环境中,代理器高速缓存管理器的一个重要用途是进行网页预提取。因为浏览器位于最接近终端用户的因特网的边缘,浏览器性能的任何改善均能大大增强终端用户的整体浏览体验。因而,通过修正用于引导代理器高速缓存管理器的操作的高速缓存策略,代理器高速缓存管理器可通过例如自动地预提取与已经存储在浏览器高速缓存中的浏览器高速缓存内容相关联的代理器高速缓存内容(如网页),改善观察到的浏览器性能。例如,如果页面P被存储在浏览器高速缓存中,则代理器高速缓存可自动地预提取在页面P的链接上出现的任何网页(即,页面P+1等)。
[0154] 图11示出了根据本发明实施例的LSD 1104中包括的代表性控制器1300。控制器1300是图9所示的控制器1120的具体实施例,示出了代表控制器1120上运行的应用的各种功能块。因此,控制器1300包括与HDFS 1208通信的管理块1302。管理块1302进而与大容量存储过滤块1304通信。大容量存储过滤块1304与因特网文件管理器块1306和代理器高速缓存管理器块1308这两者通信。因特网文件管理器块1306和代理器高速缓存管理器块1308这两者每个都能与代理器服务器块1310通信。在所述实施例中,大容量存储过滤块1304可向代理器高速缓存管理器块1308提供关于浏览器高速缓存1114中存储的浏览器高速缓存内容1140的信息。存在可用于推断所存储的内容的性质和将该推断传送给RPCM的多种技术。一个技术确定与所存储的内容文件相关联的名称及其相应的文件扩展名(如“.htm”)。一旦得知该信息,则它可被传送到RPCM。代理器高速缓存管理器块1308可以是LSD1104本地的。在一些实现方式中,代理器高速缓存管理器块1308可驻留在诸如远程代理器服务器1126的远程装置中。
[0155] 描述了提供用于受保护的数字内容的安全分发和消费的方案的方法、系统和设备,其至少提供内容分发的推/拉方法的优点。在该讨论的上下文中,“受保护的数字内容”是指具有内容提供商强加的约束(如使用和访问约束)的数字内容。例如,使用约束可包括仅仅播放内容特定次数或特定时长,以及防止未授权的复制。访问约束可将受保护的数字内容的访问限制为仅仅具有合适的访问证书的那些实体。受保护的数字内容可根据特定DRM方案而覆盖任何相关配置,以便维持内容提供商所强加的所有约束。在LSD处接收的受保护内容可包括仅仅内容或内容的受保护片段,以及被称为“组合传输”的任何相关权利对象(RO)或者被称为“分离传输”的RO,如果相应的受保护内容片段已经存储在LSD中的话。
[0156] 可参照包括具有主机装置文件系统(HDFS)的主机装置(HD)和具有由存储器控制器控制的大容量存储存储器阵列的本地存储装置(LSD)的计算系统描述本发明。在这里描述的实施例中,HDFS通过包括LSD驱动器的大容量存储路径管理大容量存储存储器阵列。在某些情况下,存储器阵列中可存储了预加载的数字内容。预加载的数字内容意味着由制造者、OEM或任何内容提供商在存储器阵列中存储的数字内容。这样的预加载数字内容可包括诸如歌曲、音乐和/或视频的媒体项目,其还可包括受保护和不受保护的预加载的媒体项目。不论存储器阵列是否包含预加载的数字内容,LSD可从数字内容服务器获取数字内容,其中该获取对于HDFS而言是看不到的。然而,在某些情况下,可能期望在存储器阵列中存储了预加载的数字内容的情况下,LSD不能存储所接收的数字内容或者根本不能从数字内容服务器接收数字内容。例如,这种情形可包括内容创作者已经在存储器阵列中预加载了数字内容(如包括音乐、歌曲等的私有内容)并且不想在LSD中存储附加的内容(与私有数字内容无关)。在这些情况下,可阻止LSD获取任何数字内容或者可阻止LSD在存储器阵列中存储数字内容,但虽然如此,仍可以从存储器阵列对预加载的数字内容进行流传输。
[0157] 在任何情况下,每当LSD获取数字内容时,HDFS看不到该获取,并且更一般地,大容量存储路径看不到该获取。LSD可通过许多方式在存储器阵列中安全地存储所获取的受保护内容数据。在某些情况下,在LSD处接收的受保护内容数据可能产生某种变换。例如,权利对象(RO)可按未加密形式(即,“清楚”)存储在HDFS看不到的存储器阵列部分中,而相应的数字内容可存储在HDFS看得到的阵列部分中。可替换地,RO可存储在HDFS看得到的存储器阵列的部分中,但是以加密的形式。在任何情况下,可在数字内容所维持的使用约束内,在用户控制下安全地本地存储数字内容。此外,无需在HD中的大容量存储路径中添加或集成额外的DRM软件,由此维持了与现有技术(state of the art)安全性状态的兼容性,由此满足了内容提供商需求。一旦存储在存储器阵列中,则LSD可从存储器阵列流传输数字内容中的所有或一些(例如当用户选择要播放的特定媒体项目时)。
[0158] 图12A示出了适合于安全分发和消费受保护数字内容的根据本发明实施例的系统2900。系统2900包括HD 202、LSD 204和被布置为存储数字内容2904的数字内容服务器2902。数字内容2904可包括受保护或未受保护的数字内容。存在用来保护数字内容的多种方案,其中许多落入数字权利管理或DRM(表示由发布者和版权拥有者用来限制数字媒体或装置的使用的访问控制技术的涵盖性术语)之下。特定的DRM方案通常定义至少受保护数字内容(PDC)获取方法(其在分离传输的情况下相当于RO获取方法)和允许任何使用/访问约束的安全施行的至少受保护数字内容消费方法(其可包括RO施行方法)。在定义安全PDC获取和安全PDC消费方法的同时,内容提供商通常规定一组鲁棒性(robustness)规则,以定义“安全”意味着什么。这通常包括安全存储规定,其描述了应通过哪些机制(即,软件或硬件)本地存储受保护的数字内容以便避免未授权的使用和/或访问。在该讨论的上下文中,假设对于任何给定的DRM方案,LSD至少兼容由内容提供商提出的任何需要的安全存储规定。
[0159] 在传统的系统中,HD 202必须包括特定DRM程序,将需要其以便让受保护数字内容2904被分发并最终被终端用户消费。在现有技术中,这通常通过在大容量存储路径中集成一些能够处理DRM特定内容的DRM特定应用而实现,以便确保按授权方式消费内容/相关联的RO。这里的假设是对于给定DRM方案,LSD至少兼容所需的“安全存储规定”。然而,本发明不需要HD 202将任何特定DRM模块/应用与HDFS或HD集成,因为从数字内容服务器2902接收并存储在LSD 204处的任何数字内容维持所有约束,因而不需要在大容量存储路径中集成额外的DRM专用(DRM-specific)代理。在所述实施例中,存储阵列238可被逻辑地布置为包括由HDFS 208使用大容量存储路径管理的大容量存储区域2908,并包括HDFS看不到的存储区域2910。HDFS 208看不到意味着HDFS 208不管理看不到的存储区域2910。以此方式,HDFS 208不知道在看不到的存储区域2910处执行的任何存储操作或在看不到的存储区域2910中存储的内容。
[0160] 在操作期间,HD 202确定大容量存储区域2908是否包括任何预加载的受保护数字内容2912。这样的预加载的受保护数字内容可包括例如私有数字文件,如数字音乐文件、数字视频文件、与例如广告有关的数字媒体文件等。如果HD 202确定在大容量存储区域2908中没有存储预加载的受保护数字内容2912,则LSD 204可提示HD 202在LSD 204和数字内容服务器2902之间建立通信路径2914。(应注意,数字内容服务器2902可提示HD
202建立通信路径2914。)一旦建立了通信路径2914,则不再涉及HD 202,除了维护通信路径2914。LSD 204和数字内容服务器2904可通过通信路径2914逻辑交互,而无需HD 202的进一步介入(除了维护通信路径2914)。作为逻辑交互的一部分,数字内容服务器2902或LSD 204可发起远程数字内容服务器2902和LSD 204之间的认证会话,以便让LSD 204和远程数字内容服务器2902这两者彼此认证。
[0161] 一旦已经成功完成认证会话(即,LSD 204和数字内容服务器2902已经被认证),则LSD 204和数字内容服务器2902可继续通信路径2914上的逻辑交互。更一般地,可实现任何受保护数字内容获取机制,以满足内容提供商的安全性需求。在OMA(开放移动联盟)DRM的情况下,这样的获取机制的一个例子将会是权利对象获取协议(ROAP)。作为逻辑交互的一部分,LSD 204可发起受保护数字内容2904(例如,其可仅仅包括权利对象)从远程数字内容服务器2902到LSD 204的传输,或者数字内容服务器2902可发起受保护数字内容从数字内容服务器2902到LSD 204的传输。在任何情况下,一旦接收到受保护数字内容2904,则控制器236可安全地将受保护数字内容2904存储在存储器阵列238中。在一些情况下,控制器236可在大容量存储区域2908中存储受保护数字内容2904。然而,因为HDFS
208看得到大容量存储区域2908中存储的任何数据,那么可加密任何这样的数据。然而,如果控制器238在看不到的区域2910中存储受保护数字内容2904,则无需这样的加密。例如,由数字内容和相应权利对象(RO)构成的受保护数字内容的安全存储可通过在HDFS看不到的区域中存储内容和RO两者或者在看得到的部分中存储加密的内容而在看不到的部分中存储相应RO等来实现。
[0162] 如图12B所示,控制器236可被逻辑地布置为包括数字内容流服务器2916。数字内容流服务器2916可读取存储器阵列238中存储的任何数字内容(包括预加载的数字内容)。数字内容流服务器2916可将从存储阵列238读取的任何数据组织为数据流2920。例如,数据流2920可包括至少一个数据分组2922,其可由本领域公知的头标和有效负载构成。在一些情况下,数据分组2922可被加密。LSD 204可提示HD 202建立流信道(streaming channel)2924,可通过它以数据流2920的形式传送数据分组2922。按照原始内容提供商需求,流信道2924可以是安全信道或不安全的信道。在数据分组2922被加密的情况下,可通过在安全信道2924上传递加密的数据分组2922,实现针对于未授权使用的额外保护。本发明的另一特征包括LSD在使用例如授权服务器2928服务于外部代理2926时翻译和强加受保护数字内容使用/访问约束(例如,消耗RO)的能力。以此方式,因为LSD强加任何约束,任何播放器或其他这样的应用可以是现有应用。
[0163] 应注意,信道可以是不安全信道(即,如在移动环境中,未被认证的播放器可播放数字内容),在该情况下,使用约束可能由LSD施加(例如,播放两次或从1月1号播放等)。可替换地,信道可以是安全信道(即,存在相互认证,其中例如播放器证书可被流服务器识别),在该情况下,LSD也可强加“访问约束”(例如,仅仅给定授权的播放器可播放内容)。
典型地,在移动环境中,不安全的信道常常对于安全性和其他顾虑而言是足够的,同时维持DRM型系统中固有的优点(如权利对象语义的使用)。以此方式,不同于现有技术,本发明提供了在封闭/私有DRM系统和现有播放器的世界之间的链接的能力,而不必被迫将私有软件集成到HD平台中,同时仍然保持大部分(如果不是全部的话)的内容提供商约束。
[0164] 被布置为处理数据分组2922的外部代理2926可位于远程作为外部代理2926-1或位于本地作为本地代理2926-1。对于该例子,本地代理2926-2可位于HD 202中。远程代理2926-1可通过流信道2924接收数据分组2922。在特别有用的实施例中,远程代理2926-1可以是授权代理。授权意味着远程代理2926-1拥有成功处理数据分组2922(加密或未加密)的合适的证书(credential)。合适的证书可按本领域公知的任何数目的方式获取。认证和授权服务器2928例如可提供处理数据分组2922所需的合适的证书。这样的服务器可位于远程(如在网络226或另一本地装置中)或位于本地,如服务器2928。在所述实施例中,应用2926的证书可偏带(off-band)获取。本地认证/授权服务器2928可强加(例如,消耗(decrement))任何使用/访问约束。在任何情况下,当LSD强加访问约束时,仅仅拥有合适证书的那些代理才能处理数据分组2922。以此方式,可向受保护数字内容的提供者确保任何受保护的数字内容将仅仅能被具有合适证书的那些用户获得。在最有可能的实施例中,应用2926将采用在HD 202上运行的本地数字媒体播放器/渲染器的形式,并且兼容流标准(例如,RTP/RTSP)。因而,应用2926将能够播放/渲染受保护的数字内容,而无需在HD 202中添加任何DRM软件。而且,最有可能的是,对于移动环境中的代理2926,可能不需要附加的安全性,由此能够使用现有播放器,在该情况下,如果没有相互服务器/播放器认证,可由LSD仅仅强加使用约束。
[0165] 以此方式,本发明提供了用于受保护数字内容的安全分发和消费的方案。有利的是,受保护的数字内容可在用户控制下本地存储,而同时具有现有播放器/平台的最广泛的接受度(即,无需添加或集成额外的软件),同时仍然保持兼容“现有技术安全性状态”以便满足内容提供商的需求。
[0166] 如相关联的管理主机装置所看到的,本发明的具体实施例提供了本地存储装置的存储容量的远程使能的虚拟扩展。尽管远程/用户控制的本地存储装置的扩展的概念不是新的,但是本发明提供了新的创新的方法。通常,所有非易失性存储装置包括静态预定物理存储器阵列。然而,存储器阵列的一部分通常对于主机装置文件系统是隐藏的,结果,对于主机装置以及最终对于用户是隐藏的。在传统的实现方式中,在生产时确定所制造的存储器阵列的大小,因而用户没有能力进一步将存储器阵列的物理存储容量扩展为超出预定隐藏容量的界限;即,存储器阵列的总存储容量没有灵活度。相反,本发明的目的是提供如主机装置的主机装置文件系统感知到的本地存储装置的存储容量的灵活扩展。
[0167] 尽管预期可使用任何合适的存储装置,但在下面具体实施例的描述中,假设存储装置是非易失性存储装置。然而,本发明也可在易失性存储装置上实现。例如,非易失性存储装置可以是基于FLASH或EERPOM的存储装置。存储装置也可以是可移除或不可移除(固定)装置。如所公知的,不可移除的装置一旦在它们已经与主机连接时不想接着从主机移除,而可移除装置被配置为容易地移除或添加到主机。
[0168] 较好地适合于实现本发明的可移除装置的一个类型是存储卡。存储卡一般用于存储与各种电子产品一起使用的数字数据。存储卡常常能从电子系统移除,从而所存储的数字数据可以是便携式的。存储卡可具有相对小的形状因子,并且用于存储获取数据的电子产品的数字数据,如相机、媒体播放器/记录器(例如,MP3装置)、手持或笔记本计算机、个人数字助手(PDA)、蜂窝电话、网卡、网络电器、机顶盒和手持或其他装置。
[0169] 这里描述的本地存储装置可兼容任何存储卡格式,如用于管理诸如音频、视频或照片文件的数字媒体的安全数字(SD)存储卡格式。存储装置还可兼容多媒体卡(MMC)存储卡格式、紧致闪存(CF)存储卡格式、闪速PC(例如,ATA闪存)存储卡格式、智能媒体存储卡格式或兼容任何其他工业标准规格。这些存储卡的一个供应商是Milpitas CA的SanDisk公司。存储装置还可应用于其他可擦除可编程存储器技术,包括但不限于电可擦除可编程只读存储器(EEPROM)、EPROM、MRAM、FRAM、铁电和磁存储器。注意,存储装置配置不依赖于可移除存储器的类型,并且可通过任何类型的存储器实现,无论它是闪存还是其他类型的存储器。存储装置还可通过一次性可编程(OTP)存储器芯片和/或通过3维存储器芯片技术实现。
[0170] 可用来使用这样的存储卡的主机系统包括个人计算机、笔记本计算机、手持计算装置、蜂窝电话、相机、音频再现装置和需要可移除数据存储装置的其他电子装置。闪速EEPROM系统也可用作嵌入主机系统中的大体积大容量存储装置。存储装置可以是本地代理器系统的一部分,其可在PDA(个人数字助理)、移动手持机和其他各种电子装置上实现。典型地,PDA已知为用户持有的计算系统,通过各种个人信息管理应用如地址本、日历组织器和电子记事本等等而实现。
[0171] 如从下面的描述中将清楚的,可有利地使用辅装置发起主装置提供的物理响应的能力,以向主装置提供额外的好处。例如,根据本发明,第一辅装置可发起主装置提供的物理响应,其使得主装置在第一辅装置和第二辅装置之间建立通信路径。根据具体实施例,其中两个辅装置均为存储装置,主装置可通过向第一存储装置发送的主装置命令而发起存储操作。尽管主装置命令始终至少由第一存储装置“服务”,其中经由第一存储装置向主装置传送对主装置命令的任何响应,但是第一存储装置部分地基于该命令,确定是要自己执行所请求的存储操作和/或通过按照第一存储装置的命令而建立的通信路径将命令转发到第二存储装置,此时第二存储装置可自己执行所请求的存储操作。另外,第一和第二辅装置之间的通信路径的建立和逻辑交互都可以对于主装置的文件系统隐藏。
[0172] 图13示出了根据本发明实施例的计算系统200。系统200包括采用本地存储装置(LSD)204的形式的辅装置。系统200还包括采用主机装置(HD)202的形式的主装置。LSD204可通过HD/LSD接口206与HD 202通信。应注意,HD/LSD接口206可被配置为机械实体(如插槽或互连总线),其中可机械连接HD 202和LSD 204。然而,在一些实施例中,HD/LSD 206可采用无线接口的形式。尽管HD 202有必要包括处理器,但为了简洁起见,在下面的讨论中没有示出也没有进一步提及HD 202中包括的处理器,但假设它存在。在许多实施例中,除了HD 202提供的接口之外,LSD 204不使用到HD 202之外的装置的任何接口。换言之,LSD 204可专门(exclusively)连接到HD 202,因而可能不能在没有HD 202介入的情况下访问或与计算系统200之外的电路和/或应用通信。
[0173] HD 202包括与LSD驱动器210通信的主机装置文件系统(HDFS)208。典型地,HDFS208是主机装置操作系统(HDOS)216的一部分,其一般驻留在主机装置主存储器(其可采用硬盘驱动器或HDD以及诸如闪存的非易失性存储器的形式)。在所述实施例中,HDFS 208被配置为向LSD驱动器210发出LSD管理命令212。LSD驱动器210进而可通过HD/LSD接口206将LSD管理命令212(适当格式化的)传递到LSD 204。例如,在LSD 204被配置为包括具有逻辑块地址(LBA)架构的数据存储区域的那些情况下,LSD管理命令212可采用块命令的形式。HD 202还可包括(内部)软件应用214。内部应用意味着软件应用214可利用HDFS 208和LSD驱动器210与LSD 204通信。在所述实施例中,软件应用214可利用HDFS 208和LSD驱动器210与LSD 204通信,因而HDFS 208“看得到”。
[0174] 系统200至少还包括第二存储装置。第二存储装置可本地或远程驻留在许多位置中。在一个实施例中,第二存储装置是通过接口223耦连到HD 202的第二LSD 222的形式的外部装置。在其他实施例中,第二存储装置可以是在网络接口230处通过网络链路228与HD 202通信的网络226中包括的远程装置224。以此方式,可在远程装置224和HD 202之间建立使用网络链路228的命令路径,可通过它传递信息。在其他实施例中,第二存储装置可以是HD 202中嵌入的不可移除装置。
[0175] 在所述实施例中,网络接口230通过网络链路228帮助HD 202和网络226之间的通信。例如,如果网络226是IP协议型网络,则网络接口230可在例如应用和网络226中包括的任何网络装置例如远程装置224之间建立基于IP协议的网络链路228。应注意,网络接口230物理上可位于任何被认为是合适的地方。例如,网络接口230可被合并到HD 202中。然而,网络接口230还可位于不被包括在HD 202(或系统200)内的任何物理位置,但仍由HD 202用来与网络226建立合适的网络链路228。因而网络接口230不限于物理上合并到HD 202中或在HD 202附近。
[0176] 主装置代理132可采用主机装置代理234的形式,除了上面对于主服务代理132所述的功能之外,其至少还提供在由LSD 204提供的存储服务和任何可用的外部资源之间的桥接功能性。在所述实现方式中,主机装置代理234可用于通过任何合适的手段(如轮询或中断)标识LSD逻辑请求。此外,主机装置代理234可被配置为一旦建立向/从外部装置诸如外部装置222或远程装置224和LSD204的通信路径则路由和/或维护该通信路径。
[0177] LSD 204包括控制器236和至少具有第一大容量存储阵列240的存储阵列238。应注意,存储阵列238可由存储器单元(如闪存)的阵列形成。尽管在所述实施例中可假设存储阵列238是闪存存储器单元的阵列,但本发明不限于闪存型存储器单元,因为预期本发明可通过任何合适类型的存储器单元来使用。控制器236包括闪存管理器243,其可至少根据主机/LSD范型106管理大容量存储区域240(即,按照HDFS 208的命令并根据HDFS发出的命令动作)。更具体地,闪存管理器243可被配置为将物理/阵列级闪存命令转换为逻辑块/扇区级命令,反之亦然。控制器236还包括映射模块245(下面更详细地描述),其在所述实施例中可以是闪存管理器243的一部分。在一种特别有用的布局中,存储阵列238可包括基于LBA的大容量存储区域。基于LBA的大容量存储区域进而可以包括大容量存储区域240。以此方式,大容量存储区域240可兼容现有已安装的基础。因此,大容量存储区域240中存储的数据块的位置可使用逻辑块地址(LBA)来指定,其中例如,每个块可按照每个512或1024字节的量级。以此方式,大容量存储区域240可完全后向兼容任何所预期的现有大容量存储架构(即,能够结合现有主机工作)并且更具体地,兼容LBA型系统。
具体地,LSD 204(并且更具体地,大容量存储区域240)可使用现有接口、总线和所有相关联的协议,在标准LBA架构下操作,提供与现有产品的已安装基础的完全兼容性。
[0178] 控制器236还包括LSD代理244,其可充当按照控制器236的命令在闪存管理器243(具体地,映射模块245)和外部存储装置222或远程装置224之间经由主机装置代理
234建立通信路径256的桥路。应注意,该通信路径256不通过HDFS 208路由,因此可以是HDFS 208看不到的。应注意,在各种实施例中,LSD代理244还能够对存储区域240进行各种存储操作(例如,读操作),另外,可得知与大容量存储区域240中存储的数据相关联的文件系统结构和元数据。可通过将LSD代理244配置为读取和遍历大容量存储区域240内存储的包括文件分配表中的数据的文件元数据,实现这样的文件结构得知。
[0179] LSD代理244还可管理网络堆栈/接口248,其在一些实施例中可以是控制器236的一部分,提供让控制器236使用标准协议(如因特网协议或IP)和任何可用的网络资源与外部装置和/或目标应用通信的机制。具体地,LSD204可将任何网络通信(如LSD逻辑请求130)转换为标准格式(如基于物理总线的格式)以便使得主机装置代理234能按照对于HD/LSD接口206的基于LBA的实现方式合适的方式执行指令(如消息提取)。以此方式,例如任何提取的消息可在主机装置代理234和外部装置之间创建的网络链路228上成功输送。在这点上,网络堆栈/接口248可被当作LSD代理244的一部分。LSD代理244还可向在控制器236外运行的LSD应用250提供认证和安全性服务,并管理任何进入的服务请求。
[0180] 应理解,大容量存储区域240可被划分为分离的内部区块。这些划分的区块每个可被操作为使得它们按照合适的方式彼此交互和/或与LSD 204之外的电路和/或软件应用交互。例如,这样的外部电路可包括HD 202(其中包括所有组件,如主机文件系统208)、外部LSD 222或网络226中包括的多个外部装置中的任一个,如远程装置224。
[0181] 当HDFS 208有效地管理存储阵列238的大容量存储区域240时,闪存管理器243充当HDFS 208和物理存储器阵列之间的转换(translation)层。更具体地,闪存管理器243将从HDFS 208接收的针对逻辑地址/单元(例如,簇)的命令转换为对大容量存储区域240内的物理地址/单元(例如,块、页等)执行的动作。在所述实施例中,HDFS 208经由闪存管理器243存储称为簇的逻辑区域形式的数据。一个或多个簇被分配给要由LSD 204存储的每个文件。本领域技术人员将理解,簇是可分配给文件的存储器空间的最小单位,因此每个文件必须被分配整数个簇。还应注意,不要求特定文件被存储在相邻簇中。实际上,用来存储特定文件的簇常常分布在整个物理存储器阵列上。换言之,文件通常被“碎片化”,其中文件被分为更小的片段,这些片段随后被存储在整个可用存储器阵列上。尽管簇是传统大容量存储系统中可分配给给定文件的存储器空间的最小单位,但可由文件系统逻辑寻址的存储器阵列的最小存储区段(segment)被称为扇区。多个扇区形成一簇。在传统系统中,每个扇区能够存储多达512字节的数据。本领域技术人员将理解,当单个物理块被重复覆写时,闪存装置尤其容易磨损。由此,通常期望LSD驱动器210和/或闪存管理器243在整个大容量存储区域240上均匀地平均分布写操作。
[0182] 在所述实施例中,HDFS 208利用文件分配表(FAT)255管理大容量存储区域240;然而,在替代实施例中,HDFS 208可以不是基于FAT的文件系统。例如,在其他实施例中,HDFS 208可以是基于ext2、ext3、NTFS和JFFS等的文件系统。由此,尽管可通过其他文件系统实践本发明,但下面的描述集中在基于FAT的文件系统的实施例。例如,FAT文件系统可以是本领域中已知的FAT-16或FAT-32文件系统。FAT 255可存储在大容量存储区域
240中,作为任何其他数据。FAT 255可被当作跟踪LSD 204所存储的文件的一个或多个逻辑位置的数据库。然而,应理解,在一些实施例中,不是LSD 204所存储的所有文件都利用FAT 255跟踪;即,存储阵列238中存储的某些文件可不被HDFS 208管理,由此,HDFS 208将看不到那些区块中存储的任何数据。例如,可期望对HDFS 208隐藏特定文件,由此,该数据可被存储在存储器阵列238不被HDFS 208管理的部分中。然而,对于由HDFS 208管理的那些文件(例如,大容量存储区域240内的那些),FAT 255跟踪分派/分配给每个文件的扇区和簇的逻辑地址。例如,每个HDFS管理的文件具有FAT 255中的相应目录条目或存储器地址。诸如HDOS 216或主机装置应用的操作系统(OS)或软件应用可访问FAT 255,以确定文件中的数据被逻辑定位于何处。更具体地,FAT 255中的每个文件条目包含被分配给特定文件的相应簇的簇号。每个簇条目还包括将当前簇链接到文件所使用的下一簇的簇号。典型地,未使用的每个簇在FAT 255中其相应的簇条目中用零或某一其他预定值来标记。这警告OS或其他应用,该簇是空闲的,并且可用于分派。以此方式,FAT 255可告知HDFS 202向哪些簇存储特定文件,并且哪些簇是可使用的。以此方式,HDFS 208可探知LSD
204的可用和总存储容量。
[0183] 根据本发明的具体实施例,FAT 255中标识的存储器地址可以与簇相关联,簇又与两个或更多个扇区集合相关联。例如,与物理上位于LSD 204内的第一存储区域240中的扇区(下文中称为真实扇区)相关联的逻辑地址可代表逻辑地址的第一集合X。在一个具体实施例中,逻辑地址的第一集合X可对应于FAT 255中标识的连续逻辑地址的固定范围。在代表性实施例中第一范围X中的所有逻辑地址与物理上位于第一存储区域240中的真实扇区相关联。此外,FAT 255可包括与物理上位于LSD 222之外的装置中的存储阵列中的扇区的一个或多个其他集合(或者一些实施例中的范围),例如,诸如外部LSD 222或远程装置224的外部装置中的集合Y相关联的簇。LSD 204之外的装置中的扇区可被称为虚拟扇区。由此,在该例子中,HDFS 208可用的扇区包括集合X和Y两者。
[0184] 根据具体实施例,HDFS 208可不区分X和Y;即,HDFS感知到逻辑地址的集合X和Y均与物理上位于LSD 204的大容量存储区域240内的扇区相关联。更具体地,与FAT 255中标识的簇相关联的各个扇区的物理位置不能通过FAT 255获得,因此HDFS 208不知道。从而,HDFS 208看到的感知存储容量(下文中也称为虚拟存储容量)实际上是分别与LSD
204和外部装置中的集合X和Y中的逻辑地址相关联的实际和虚拟扇区的组合存储容量的总和。由此,尽管物理上位于LSD存储区域240中的实际扇区的存储容量是固定的,但HDFS
208通过读取FAT 255确定的感知存储容量已经被有效地扩展为包括物理上位于外部装置中的虚拟扇区。
[0185] 在所述实施例中,映射模块245被配置为映射或关联特定逻辑扇区与本地真实扇区或外部虚拟扇区。即,映射模块245和/或闪存管理器243负责将与特定逻辑扇区号相关的真实和虚拟扇区与大容量存储区域240内或物理上驻留在外部装置中的存储区域内的实际物理地址(即,块、页等)相关联。由此,在一些特定实施例中,从HDFS 208接收的针对簇级上的逻辑地址的命令可被转换为逻辑扇区号,进而被映射模块245转换为分别对大容量存储区域240和外部装置内的真实和虚拟扇区相关联的物理地址/单位(即,块、页等)执行的动作。在一个实施例中,从簇级地址到扇区级地址的转换可由闪存管理器243执行。在另一实施例中,该转换可由HDFS自己执行。
[0186] 应注意,在各种优选实施例中,映射模块245能够动态地改变在真实扇区中存储的数据对在虚拟扇区中存储的数据的比率。更具体地,可期望动态调整真实和虚拟扇区对包括与特定文件相关联的数据以及与文件相关联的元数据甚至FAT 255本身的部分的特定内容的分配。即,例如,可按照映射模块245的命令,将数据从外部装置内的一个或多个虚拟扇区传输到存储区域240内的一个或多个真实扇区,反之亦然。然而,在优选实施例中,因为不需要更新FAT 255,所以HDFS 208看不到该重新分配。
[0187] 在一个具体实施例中,映射模块245和/或LSD代理244可另外保存分离的映射表356,其将FAT 255中标识的簇与HDFS 208不知道的真实和/或虚拟扇区相关联。这在期望某些优化级的实施例中可能是有用的,例如,映射模块245被配置为预提取和高速缓存(即,无需来自HDFS 208的特定指令)在属于同一簇或文件的扇区中的数据。
[0188] 同样,应注意,根据具体实施例,当实际上FAT 255中标识的簇逻辑上可能与对应于大容量存储区域240中的物理地址的真实扇区以及对应于驻留在外部装置中的物理地址的任何虚拟扇区两者相关联时,HDFS 208感知到FAT 255中标识的所有簇与驻留在大容量存储区域240内的扇区和相应物理地址相关联。还应注意,可大范围变化的数目的外部存储装置可与HD 202耦连,由此允许HDFS 208所感知到的LSD 204的虚拟存储容量的扩展的大灵活度;即,可扩展LSD 204的虚拟存储容量,只要在FAT 255中能获得可与相应外部装置中的虚拟扇区相关联的文件地址条目即可。另外,在LSD代理244具有内部文件系统认知(awareness)(例如,文件结构和元数据认知)的实施例中,LSD代理244可管理它自己的簇/扇区映射表。
[0189] 图14A例示了根据其中LSD代理244和/或映射模块245被配置为管理簇到真实和虚拟扇区的映射的具体实施例的映射表3356的图示。映射表3356包括由映射表的行代表的多个簇条目3357。每个条目3357包括多个扇区条目3358。在图14A所示的例子中,特定簇条目3357可与例如条目RS1和RS2(它们在大容量存储区域240中可物理上彼此相邻或不相邻)所代表的真实扇区以及例如条目VS1和VS2(它们可以驻留或者不驻留在同一外部装置中)所代表的虚拟扇区两者相关联。因而,条目2257所代表的簇包括经由真实扇区RS1和RS2在存储阵列240中以及经由扇区VS1和VS2在一个或多个外部装置中驻留的存储区域内存储的数据。即,在所示实施例中,不需要与特定簇相关联的所有扇区被全部经由真实扇区本地存储或者全部经由虚拟扇区外部存储。
[0190] 图14B例示了在其中给定范围(例如,0000至xxxx)中的所有逻辑地址与真实扇区相关联并且给定范围(例如,yyyy至FFFF)中的所有逻辑地址与虚拟山区相关联的实施例中由HDFS 208读取的LSD 204的感知存储容量的代表图。更具体地,图14B例示了十六进制的存储器地址和与存储器地址相关联的物理扇区之间的关系。应注意,该关系仅仅代表一个特定实施例,因为在各种替代实施例中,可动态改变给定逻辑地址和一个或多个相关簇之间的关系以及给定簇和相应扇区之间的关系。整个框3360代表LSD 204的感知存储容量。在所示实施例中,框3360的上部3362代表与存储阵列240的实际存储容量相关联的存储器地址,在例如FAT 16寻址的情况下,从0000开始,在某一值xxxx结束;即,位于存储阵列240中的诸如RS1和RS2的真实扇区。相反,框3360的下部3364代表与LSD204的虚拟存储容量相关联的存储器地址,在FAT 16寻址的情况下,从yyyy(在xxxx处或之后)开始,在FFFF结束;即,驻留在外部装置中的诸如VC1和VC2的簇。
[0191] 为了例示本发明的一些具体实施例,参照图15的流程图和图16的系统,描述由LSD3504服务于从HD 3502发送到LSD 3504的管理命令的过程3400。过程3400可从3402开始,其中HDFS 3508访问FAT 3555。这使得HDFS 3508能够检查HDFS假设由LSD 3504在存储阵列3538中实际存储的数据的映射,并标识逻辑地址,用于后续存储操作。然而,在一些情况下,FAT 3555可能已经被高速缓存在HD 3502中的本地存储器中,并且可能已经标识了逻辑地址和相应簇。在前一情况下,在一些实施例中,闪存管理器3543和/或映射模块3545可确定在访问3402期间HDFS 3508对哪个(哪些)逻辑地址显示出兴趣。更具体地,在这些实施例中,映射模块3545能够辨别出HDFS 3508想要对哪些扇区进行存储操作,然后能够预料到来自HDFS3508的后续命令将针对于哪些扇区。
[0192] 在3404,闪存管理器3543从请求期望的存储操作的HDFS 3508接收管理命令3512。例如,管理命令3512可包括读、写或擦除命令和要执行存储操作的相关逻辑地址,以及在写命令的情况下要写入逻辑地址的数据。在一些实施例中,可预测该命令(例如,基于现有技术中已知的一些智能预提取机制)。在3406,闪存管理器3543询问映射模块3545,其管理/维护逻辑扇区号和相关联的真实和虚拟扇区之间的映射。在3408,映射模块3545确定与HDFS 3508发送的命令相关联的逻辑地址中的一些或全部是否与表示物理上驻留在LSD 3504之外的装置3522(例如,第二LSD、远程网络装置或嵌入HD中的不可移除装置)的扇区的虚拟扇区(例如,虚拟扇区VS1和VS2)相关联。在优选实施例中,映射模块3545采用的动作独立于HDFS 3508并且对HDFS 3508是透明的。以此方式,无需对诸如HDFS
3508或LSD驱动器3510的现有组件进行更新或其他改变。如果在3408确定所有扇区是物理上驻留在存储阵列3538的大容量存储区域3540中的真实扇区(例如,真实扇区RS1或RS2),则闪存管理器3543可在3410服务于命令3512。更具体地,如果映射模块3545确定管理命令3512完全上与真实扇区相关联,则在3410,可实时地对这些目标真实扇区执行所请求的存储操作。通常,命令3512的服务还将包括将响应从LSD 3504传送到HDFS 3508。
响应可包括所请求的操作被执行的确认和/或与所请求的操作相关联的数据。
[0193] 然而,如果映射模块3545在3408确定与管理命令3512相关联的扇区中的至少一些是虚拟扇区,则在3412,LSD代理3544确定在LSD 3504和具有包括虚拟扇区(例如,VS1和VS2)的物理位置的相关存储阵列的外部装置3522之间是否建立了通信路径。通信路径意味着LSD 3504和外部装置3522具有经由HD 3502在它们之间建立的有能力的命令路径。有能力意味着经由LSD代理3544、主机装置代理3534和接口3530在LSD 3504和外部装置3522之间建立了物理连接、建立了无线连接或建立了逻辑连接,可通过其传递信息,并且在优选实施例中,HDFS 3508不知道。
[0194] 在所示实施例中,如果在3412确定在LSD 3504和外部装置3522之间建立了通信路径3556,则LSD代理3544在3414将基于管理命令3512的管理命令3513转发给外部装置3522,其指示外部装置3522对多个虚拟扇区进行所请求的存储操作。在一些实施例中,可以基于如上所述的预测管理命令,在从HDFS 3508实际接收管理命令3512之前,发起建立通信路径3556。同时,可以存在对存储区域3540的某一本地高速缓存管理操作。在一些实施例中,本地高速缓存3558可以是存储区域3540的一部分,而在其他实施例中,高速缓存可位于存储阵列3538之外的RAM中。管理本地高速缓存3558可能涉及闪存管理器3543(和/或映射模块3545)与LSD代理3544之间的协作,以最优地确保在高速缓存3558中有足够的存储空间用于要本地存储的数据(例如,在写操作的情况下要从HD 3502写入外部装置3522的数据,或者在读操作的情况下要传送到HDFS 3508的从外部装置通过LSD代理3544提取的数据)。通过从高速缓存3558中擦除本地数据将要写入的本地数据从本地高速缓存3558传输到外部装置3522,或者通过将要读取的本地数据从本地高速缓存3558传输到HD 3502,撤出足够的存储空间。
[0195] 在一些实施例中,LSD代理3544可牵涉到高速缓存管理操作中,因为LSD代理3544可具有某一文件系统结构认知(awareness),其可允许LSD代理3544在高速缓存的管理中引入某一优化级。更具体地,例如,如果LSD代理3544知道对于与给定文件有关的簇要提取的剩余扇区,则LSD代理3544可预先确保在LSD内的本地高速缓存3558中有足够的存储空间。文件系统结构认知还使得LSD代理3544能够标识在高速缓存3558中存储的期望维持在本地的当前内容。因而,LSD代理3544可进行一定级别的智能高速缓存。
[0196] 在3418,外部装置3522响应于管理命令3513(并间接通过管理命令3512)对虚拟扇区执行所请求的存储操作。应注意,发送到外部装置3522的第二命令3513可以不始终指示外部装置对与第一命令3512中标识的逻辑地址相关联的虚拟扇区进行存储操作。即,在某些情况下,即使管理命令3512中标识的所有逻辑地址与真实扇区相关联,也可以期望通过将数据从与第一管理命令3512不相关的大容量存储区域3540内的真实扇区写入到外部装置3522内的虚拟扇区,释放大容量存储区域3540中的存储空间。由此,第二命令3513可以是包含来自大容量存储区域3540内的真实扇区的数据并指示外部装置3522将来自真实扇区的数据写入外部装置中的虚拟扇区中的写命令。此外,如果HDFS 3508发送的管理命令3512包括与真实和虚拟扇区两者相关联的地址,则闪存管理器353可在3410对真实扇区执行所请求的存储操作,并行地将管理命令3513转发给外部装置3522和/或并行地由外部装置3522对虚拟扇区执行所请求的存储操作。
[0197] 可替换地,根据具体实施例,如果在3412确定不存在通信路径3556,则在3416,LSD代理3544通过HD代理3534提示HD 3502在LSD 3504和外部装置3522之间建立通信路径3556。更具体地,如上参照图13的通信路径256所述,LSD 3504可使用例如网络接口或本地通信路径提示HD 3502执行所请求的建立到外部装置3522的通信路径3556的处理。然而,一旦建立,则可在LSD 3504和外部装置3522之间传递信息,而无需HD 3502的进一步介入(除了与数据传递有关的任何介入,如数据分组路由),并且也是HDFS 3508看不到的。一旦建立了通信路径3556,则过程前进到3414,其中管理命令3513被发送到外部装置3522,此时外部装置3522可对虚拟扇区进行所请求的存储操作。
[0198] 由此,在各个实施例中,由HDFS 3508发起的单个命令3512的服务通常可涉及多个操作,LSD 3504内部的操作以及与外部装置3522有关的操作。尽管上述过程3400代表本发明各个实施例的一般实现方式,但是下面的描述将提供本发明具体实施例的更特定的实现方式。
[0199] 更具体地,在管理命令3512是写命令的情况下,如果写命令3512中标识的任何逻辑地址与驻留在存储区域3540中的真实扇区相关联,则如上所述,在3410,数据可实时地写入这些目标真实扇区。然后,包括已经服务了写命令的确认的响应可发送到HDFS 3508。然而,如果逻辑地址中的一些或全部与虚拟扇区相关联,则如上所述,LSD代理3544沿着HDFS 3508不知道的通信路径3556,将写命令3513和相关数据转发给外部装置3522,指示外部装置将相关数据写入驻留在外部装置3522中的虚拟扇区的有关物理对应物。
[0200] 可替换地,可期望在将数据和写命令3513转发到外部装置3522之前进行等待。例如,可能有利的是,在LSD 3504内的高速缓存3558内临时存储数据,直到满足某些预定条件。例如,可期望在高速缓存3558中临时存储数据,并且等待以将高速缓存的数据转发到外部装置3522,直到通信路径3556上有可用的预定级别的带宽。此外,可以更加有效的是,等待直到在将数据转发到外部装置3522(然后在其中存储它)之前高速缓存预定量的数据。出于这些和其他考虑,服务于写命令3512可首先包括暂时高速缓存数据并向HDFS
3508发送包括写命令已经被服务的确认的响应(尽管在其他实施例中,可在以后发送确认响应,只要在HDFS要求的时间约束内发送确认即可)。服务然后可包括确定要写入与写命令3512相关联的虚拟扇区的数据(或者甚至是命令3513本身)是否应该在本时钟窗口期间转发到外部装置3522。同时,在该确定之前或之后,在3410,可写入要由闪存管理器3543写入真实扇区的数据的其他部分。如果要在当前时钟窗口期间转发数据,则转发数据,其中它随后被写入外部装置3522内的虚拟扇区。在一些实施例中,可渐进地(progressively)执行数据的转发;即,当可能或者认为合适时,可转发数据的各种“块”(chunk)或部分。如果数据不要在当前时钟窗口期间转发到外部装置3522,则数据可存储在高速缓存3558中,其中它保持直到控制器3536确定数据应被转发到要写入的外部装置3522。
[0201] 应注意,在具体实施例中,如果高速缓存了针对于虚拟扇区的数据的部分,则FAT3555不需要修正。此外,在一个实施例中,闪存管理器3543和/或映射模块3545可将一个或多个虚拟扇区位置映射到一个或多个临时高速缓存位置,从而由HDFS 3508访问的FAT
3555不必被修正。事实上,与FAT3555中标识的簇相关联的真实和虚拟扇区两者通常可能不会始终对应于存储区域3540中或外部装置内的相同物理扇区。
[0202] 在管理命令3512是读命令的情况下,如果读命令3512中标识的任何逻辑地址与驻留在存储区域3540中的真实扇区相关联,则可在3410从真实扇区读取数据然后传送到HDFS 3508。然而,如果逻辑地址中的一些或全部与虚拟扇区相关联,则如上所述,在3414,LSD代理3544沿着HDFS 3508不知道的通信路径3556将读命令3513转发到外部装置3522,指示外部装置3522从驻留在外部装置3522中的虚拟扇区的有关物理对应物读取。然后,从外部装置3522读取的数据可沿着通信路径3556转发到LSD 3504,这时它随后可在转发到HDFS 3508之前临时地本地存储在高速缓存3558中,如同它已经从存储区域3540中直接读取一样。
[0203] 应注意,LSD 3504和HD 3502之间、尤其是闪存管理器3543和HDFS[0204] 3508之间的数据管理和传输通常遵从包括超时等的多个约束(即,在诸如SD、MMC等的现有存储总线上,HD预期在有限的时间段(例如,最多100ms)中接收到来自LSD的响应,此后它认为请求中止,这可能导致重置系统...)。由此,尽管传统的现有主机装置、存储装置和总线基于“保证响应时间”通信和管理数据的传输,但LSD 3504(尤其是LSD代理3544)和外部装置3522之间的通信和数据传输可以基于“最大努力”。
[0205] 根据一个具体实施例,可通过使用智能映射和/或高速缓存消除该困难。更具体地,闪存管理器3543和/或映射模块3545可动态地管理真实/虚拟扇区映射。例如,闪存管理器3543和/或映射模块3545可注意到哪些文件最常使用,从而动态地修正扇区的真实和虚拟分配(对HDFS 3508透明,可能作为后台操作),以便确保最常使用的文件被存储在真实扇区内,而最少使用的文件被存储在外部装置中的虚拟扇区中。即,如果虚拟扇区中存储的某一文件经常使用(例如,常常读取),则映射模块3545和闪存管理器3543可动态地发起将与经常使用的文件相关联的数据从外部装置3522内的虚拟扇区传输到存储区域3540中的真实扇区。可替换地,经常读取的数据可被抢先(并且至少暂时地)存储在高速缓存3545中。相反,与不常访问的文件相关联的数据可根据映射模块3545和/或闪存管理器3543的命令,动态地从存储区域3540内的真实扇区传输到外部装置3522内的虚拟扇区。
[0206] 此外,在一些实施例中,LSD驱动器或HDFS 3508可被配置为允许更大的灵活度(如果支持这样的灵活度)。例如,如果不可以在存储接口标准定义的“保证响应时间”内执行存储操作(例如,外部装置3522是另一LSD并且通信速度快),则可发送重试消息。此外,可设置服务质量(QOS)范型,以便允许时间限制约束下的LSD 3504和外部装置3522之间的服务和数据传输。例如,QOS范型可包括诸如可用带宽、要传输的数据量和已经高速缓存的数据量等因素。
[0207] 本发明人已经意识到期望在本地存储装置(LSD)中提供索引LSD的存储器阵列中的数据的功能性,而不涉及主机装置(HD)。由此,例如,即使在LSD正被多个HD使用时,也可以索引LSD的数据。另外,监视和特征表述(characterization)功能性无需接通(port)到各种HD平台,因为功能性独立于HD平台。索引可包括生成可用来响应于对LSD的数据的搜索查询的数据集。查询可从HD或从LSD内发起。
[0208] 索引结果的使用不限于响应于搜索查询。例如,索引结果可用于内容筛查,即查找例如“porn”(色情)的特定串的应用,以便禁止访问LSD的存储器阵列中的未授权内容。例如,内容筛查可在HD中执行,从而例如避免对LSD的存储器阵列中的特定内容的访问请求,或者作为另一例子,可在LSD本身中执行,阻止从HD接收的访问请求,无论写访问请求或者读访问请求。
[0209] 随着存储装置控制器的能力的增长,从存储装置中使用由存储装置控制器使得可用的处理资源而执行软件应用变得有可能。存储装置控制器的这种增强的操作性带来新的索引模式的范型,其例如可用于索引在存储装置上的数据而不涉及主机装置。这种索引可用于例如改善用户的数字内容消费体验,其一般横跨多个装置-连接或未连接的-或者访问模式-有线对无线、固定对移动等。
[0210] 例如,索引可以展示给、提供给或由服务供应商访问,作为回馈,其向用户提供增强型搜索或其他使用能力。例如,存储装置可包含预加载的内容,并且用户还可以被鼓励下载内容(如从与零售商相关联的网站)。作为回馈,用户可同意从存储装置提供的索引,并且例如,甚至可能从零售商和/或相关实体接受关注的提议。作为另一例子,存储装置销售者可能能够向他们的消费者基础提供针对性的服务。
[0211] 为了提供对“用户中心”(与传统的“装置中心”相对)索引方式的支持,本发明超越了主机管理的、基于LBA(“LBA”是逻辑块寻址的缩写)的大容量存储范型的严格限制,并提供了可完全后向兼容现有大容量存储装置并且还增强大容量存储的索引的索引范型,由此增强数字内容使用的检索(retrieval)/搜索(search)。此外,以此方式生成的索引的报告无需依赖于主机装置中的索引功能性。
[0212] 图17例示了计算系统4100,包括主机装置(HD)4102和本地存储装置(LSD)4104。HD 4102包括主机装置文件系统(HDFS)4106。LSD 4104可采用可移除存储器装置的形式,如具有相对小的形状因子并且可用来存储诸如相机、手持或笔记本计算机、网卡、网络电器、机顶盒、手持或其他小音频播放器/记录器(例如MP3装置)和医学监视器的电子产品的数字数据的存储卡。存储卡的例子包括PC卡(以前的PCMCIA装置)、闪存卡(例如,紧致闪存类型I和II)、安全数字(SD)卡、多媒体卡(MMC)、ATA卡(例如,紧致闪存卡)、记忆棒、智能媒体卡。此外,LSD 4104可采取非可移除存储器装置的形式,如Milpitas CA的TM
SanDisk公司制造的兼容SD的iNAND 嵌入式闪存驱动器。
[0213] LSD 4104可通过HD/LSD接口4112与HD 4102通信。应注意,HD/LSD4112可被配置为机械实体(如插槽或互连总线),其中可机械连接HD 4102和LSD 4104。在一些实施例中,HD/LSD接口4108可采用无线接口的形式。通常,HD 4102包括处理器。然而为了简洁起见,在下面的讨论中没有示出也没有进一步提及HD 4102中包括的处理器,但假设它存在。LSD 4104可物理地专门连接到HD 4102,因而不能在没有HD 4102介入的情况下访问或与计算系统4100外部的电路和/或应用通信。典型地,除了HD 4102提供的接口之外,LSD 4104不使用到HD 4102外部的装置的任何接口,但是在某些情况下,LSD 4104可直接接口到HD 4102外部的装置。
[0214] HD 4102包括与LSD驱动器4108通信的主机装置文件系统(HDFS)4106。在所述实施例中,HDFS 4106可向LSD驱动器4108发出LSD管理命令4110。LSD驱动器4108进而可通过HD/LSD接口4112向LSD 4104传递LSD管理命令4110(适当格式化的)。例如,在LSD 4104被配置为包括具有逻辑块地址(LBA)架构的数据存储阵列的那些情况下,LSD管理命令4110可采用块命令的形式。LSD管理命令4110导致在LSD4104和HD4102之间的数据4111的流动。
[0215] HD 4102还可包括(内部)软件应用4114。内部应用意味着软件应用4114可利用HDFS 4106(其一般是主机装置操作系统4116的一部分)和LSD驱动器4108而与LSD4104通信。这样的软件应用可包括应用4118,每一个一般驻留在主机装置主存储器(其可采用硬盘驱动器或HDD以及诸如闪存的非易失性存储器的形式)中。
[0216] 例如,计算系统4100可以是便携式媒体播放器,而应用4118可以是媒体播放器应用。在此情况下,例如,LSD 4104可存储各种数字媒体文件,如MP3形式的音频文件、MP4形式的视频/音频文件或者JPEG形式的静态照片文件。例如,LSD管理命令4110可以是从LSD 4104中检索文件的数据的数据访问命令。
[0217] 在图17的例子中,数据访问命令可以是读取在LSD 4104的大容量存储区域4120中存储的文件分配表(FAT)的一部分然后从大容量存储区域4120中读取一个或多个数据块的HDFS命令。例如,大容量存储区域4120可以是存储器阵列,和大容量存储区域可由HDFS 4106管理但不由LSD 4104本地的文件系统管理。例如,LSD 4104可包括控制器4122和具有第一存储阵列4124和第二存储阵列4126的大容量存储阵列4120。应注意,存储阵列4120可由存储器单元(如闪存)的阵列形成。在该特定情况下,即使可假设大容量存储阵列4120是闪存存储器单元的阵列,但本发明不限于仅闪存型存储器单元,因为预期本发明可通过任何合适类型的存储器单元来使用。
[0218] 控制器4122包括闪存管理器4128,其可管理第一存储阵列4124,按照HDFS 208的命令动作。在一种特别有用的布局中,第一存储区域4124可以是基于LBA的大容量存储阵列。因此,第一存储区域4124中存储的数据块的位置可使用逻辑块寻址(LBA)来指定,其中例如,每个块可按照每个512或1024字节的量级。以此方式,第一存储区域4124可完全后向兼容任何所预期的现有大容量存储架构(即,能够结合现有主机工作)并且更具体地,兼容LBA型系统。具体地,LSD 4104(具体地,第一存储区域4124)可使用现有接口、总线和所有相关联的协议,在标准LBA架构下操作,提供与现有产品的已安装基础的完全兼容性。
[0219] 控制器4122还包括索引器4130,其被配置为索引在LSD 4104的第一存储区域4124中存储的数据,而不涉及主机装置4102。在一个例子中,索引器4130在数据正被HD
4102存储到和/或从第一存储区域4124读取时索引数据。由此,例如,索引器4130可辨别在第一存储区域4124和HD 4102之间传输的数据内容,并基于此,索引第一存储区域4124中的数据。由LSD4104进行监视和索引,结果被作为“索引数据”存储在大容量存储阵列
4120的第二存储区域4126中。作为另一例子,索引器4130可基于主机装置4102用来访问第一存储区域4124的命令生成索引数据。作为再一例子,索引器4130可访问第一存储区域4124中的数据以生成关于第一存储区域4124中的数据的索引数据,而不涉及主机装置
4102。
[0220] 图18更详细地例示了数据索引可如何基于观察HD 4102对LSD 4104的数据访问操作而进行的例子,该观察不涉及HD 4102。参照图18,命令4110经由HD/LSD接口4112从HD 4102提供给LSD 4104。如上所述,命令4110被提供给控制器4122的按照HDFS 4106的命令动作以管理第一存储区域4124的闪存管理器4128。索引器4130观察命令4110,并基于此,结合被观察到存储到或从第一存储区域4124读取的数据4111,索引第一存储区域4124中的数据。命令4110可用于对数据访问进行特征表述(characterize),以告知索引功能性。索引信息被提供以存储在存储阵列4120的第二存储区域4126中。
[0221] 尽管命令4110被例示为提供给按照HDFS 4106的命令动作的控制器的闪存管理器4128,但在其他例子中,不是作为HDFS操作的结果而将命令或其它信号从HD 4102提供给LSD 4104。例如,可基于不作为HDFS操作的结果的其他操作,如驱动器级操作,提供这样的命令和其他信号。
[0222] 数据访问特征表述可帮助例如在所索引的数据(视频、音乐或照片)之间进行区分,其可告知索引功能性。由此,被提供以存储在存储阵列4120的第二存储区域4126中的索引信息可至少部分地基于索引器4130的数据访问特征表述,无论直接是所确定的数据访问特征表述还是进一步处理所确定的数据访问特征表述的结果。
[0223] 例如,如果索引器4130辨别出HD 4102作为命令4110提供了作为读数据块命令的单个数据读命令,并且没有其他相应的数据读命令,则它可确定HD 4102读取的照片已经从第一存储区域4124中出现。作为另一例子,如果辨别出HD 4102提供命令4110以读取第一存储区域4124的文件分配表(FAT)(可假设映射数据位置)并且随后辨别出HD 4102提供命令4110以按照固定速率/吞吐量从第一存储区域4124读取数据块,则索引器4130可辨别出该组命令对应于从第一存储区域4124读取音乐文件。作为再一例子,如果由使用数据收集器4130辨别出HD 4102提供命令4110以读取第一存储区域4124的文件分配表(FAT)(可假设映射数据位置)并且随后索引器4130辨别出HD 4102提供命令4110以按照可变速率/吞吐量从第一存储区域4124读取数据块,则该组命令可被特征表述为从第一存储区域4124读取视频文件。(但是在某些情况下,FAT数据可被高速缓存在HD中,所以可能难以或者不可能将后续数据访问命令关联到FAT读取。)存在索引器4130可从HD 4102到LSD 4104的命令4110中辨别出的例子,并且其他例子也是可能的。尽管这里的许多例子关于读数据访问,但被特征表述的数据访问也可(或另外)包括写数据访问,如写数据访问以将媒体文件加载到第一存储区域4124中。
[0224] 尽管这些是数据访问模式的例子,但应注意模式可被预加载到LSD 4104中(甚至可能动态更新,其例子在本专利申请的下文中描述)并由索引器4130用作标识数据访问的具体类型的参照物。使用时,模式可以相当简单,如在例子中那样,或者可以复杂得多。
[0225] 另外,在提供存储器阵列4124中存储的数据的索引信息的过程中,索引器4130可使用在HD 4102和LSD 4104的第一存储区域4124之间传输(例如,在读和写方向之一或两者)的数据块4204的内容。例如,索引器4130可辨别出数据块的内容包括串“JFIF”,可将数据块特征表述为对应于照片(JPEG)并且可在提供索引信息的过程中使用该特征表述。作为另一例子,MP3文件一般具有以串“ID3”开始的“标签”(tag),PDF文件以“%PDF”开始,而mp4视频文件包括串“ftyp3gp”。由此,例如,每个“标签”可被当作一个具体模式类型,其可与任何其他模式同样操纵,如预加载、更新等。
[0226] 例如,数据特征表述可被存储在索引中,作为索引数据的一部分。由此,例如,数据特征表述可用于确定搜索结果和/或进一步提炼(refine)搜索结果,其否则将单独基于词或数据索引而提供。
[0227] 另外,索引器4130可直接采用在HD 4102和LSD 4104的第一存储区域4124之间传输(例如,在读和写方向之一或两者)的数据块4204的内容,作为在存储器阵列4124的第一部分中存储的数据的索引数据。这样的内容可包括例如数据块4204的内容中直接包括的文本数据或元数据。
[0228] 在一些例子中,要索引的内容可被进一步处理,以识别由它间接代表的数据。由此,例如,如果索引器4130确定数据已经被特征表述为音频文件,则可使用数字声音识别来识别要索引的内容数据(例如,说或唱的词)。类似地,如果索引器4130确定数据已经被特征表述为视频文件,则可使用图像处理来识别内容。由此,例如,可以识别视频文件的总体主题,甚至是具体细节,其然后可被存储为搜索索引的一部分。在一些例子中,索引还可(或替代地)具有目录(catalog)的特性,从而索引可用来响应于对LSD的存储器阵列中存储的特定文件(如媒体)的、不仅仅基于期望在搜索结果中呈现的内容而是还可以或者另外基于行为(或其他元数据,不严格基于内容)的搜索查询。例如,可由在HD中执行并使用基于LBA的命令访问媒体的一个或多个程序将索引应用于媒体的管理,并且可期望将搜索基于目录中的信息,如:
[0229] ●LSD的存储器阵列中存储的歌曲已经被播放多少次?
[0230] ●LSD的存储器阵列中存储的歌曲最后播放是何时?
[0231] ●LSD的存储器阵列中存储的歌曲被播放完还是播放中止?
[0232] 例如,当媒体项目正被播放时,索引器4130可操作为对于该项目更新目录中的某些字段,如“最后播放日期”或“播放次数”。
[0233] 另外,例如,可基于从命令4110和/或数据4111中辨别如下操作而更新目录:
[0234] ●定义新播放列表-新记录被添加到播放列表目录;以及
[0235] ●删除项目-从目录删除记录。
[0236] 可作为诸如“search?artist=madonna&number_times_played=0”-意味着“找到我从没播放的Madonna的所有歌曲”的查询完成目录的搜索。该搜索还可(或者另外)基于歌曲的内容,如“London”(伦敦)或“guitar solo”(吉他独奏)或已经由索引器4130辨别和索引的其他内容。
[0237] 除了监视在主机装置4102和LSD 4104之间传递的命令4110和数据4111之外,索引器4130可通过直接访问大容量存储区域4124中的数据而进行操作。由此,例如,以此方式,索引器可诸如在后台中操作以生成用于在索引4126中存储的索引数据,仍然不涉及主机装置4102,从而填充(populate)索引4126。
[0238] 第二存储区域4126可包括由索引器4130生成的索引。例如,在图18中,第二存储区域4126可包括现在已知或将来已知为可由搜索引擎用来响应于一个或多个搜索查询而返回与数据体(corpus)有关的搜索结果的各种类型的索引数据中的任一种。
[0239] 索引可被存储在存储阵列4120中,甚至可能是HDFS 4106看不到的。已经描述了如何由LSD 4104生成索引数据的一些例子,现在讨论如何使用索引数据的一些例子。通常,索引数据可由LSD 4104自己、由HD 4102和/或由外部过程使用。
[0240] 再次参照图17,系统4100可被配置为使得可由HD 4102获得和/或使用搜索索引4126。例如,搜索索引4126可存储在存储阵列4120的大容量存储区域4124中。例如,参见上面在“相关申请”部分引用的美国专利申请号12/029356,其描述了写入LSD的大容量存储区域中——即使该区域由外部文件系统(HDFS)管理——的方法的例子。在该情况下,HD 4102可使用另外通常可用来访问大容量存储区域4124中的数据的操作来访问搜索索引4126。由此,例如,在HD 4102上执行的应用4118可操作从而HDFS 4106使得命令4110经由LSD驱动器4108和HD/LSD接口4112提供给LSD 4104。这样的命令4110可提供给闪存管理器4128,以使得搜索索引4126经由HD/LSD接口4112提供给HD 4102作为数据
4111。
[0241] 例如,由HD 4102如此获得的搜索索引可由HD 4102执行的应用4118使用。如此获得的搜索索引可从HD 4102提供给外部装置或系统,如提供给HD 4102可连接的计算机或其他服务器上的媒体管理系统。这样的搜索索引可由该外部装置或系统在至少部分地确定该外部装置或系统如何与HD4102交互或其他操作时使用。
[0242] 现在参照图19,它示出了系统的示例配置,其中可以由LSD 4104自己执行的搜索引擎4302使用索引。在该例子中,闪存管理器4128可操作以从主机装置4102接收命令4110或部分命令4110,其是搜索查询4304。搜索引擎4302可访问搜索索引4126,并基于搜索查询4304,将搜索结果4306返回主机装置4102。作为另一例子,索引结果可用于LSD的内容筛查(screening),即,查找例如“porn”的特定串的应用,以便禁止访问LSD的存储器阵列中的未授权内容。例如,内容筛查可在HD中执行,从而例如避免对LSD的存储器阵列中的特定内容的访问请求,或者作为另一例子,可在LSD本身中执行,阻止从HD接收的访问请求,无论写访问请求或者读访问请求。
[0243] 作为另一例子,应用4308(例如,网页应用,如浏览器或SQL代理)可在主机装置4102上操作,并可与搜索引擎4302交互(如通过用于数据访问操作的逻辑接口之外的逻辑接口4310)以获得响应于搜索查询4304的搜索结果4306。
[0244] 图20例示了示例配置,其中搜索索引4126中的一些或全部可被传输到主/辅范型之外的外部装置(如经由网络4408耦连到HD 4102的装置4406),或者可由其访问,主/辅范型由例如主机装置4114、HDFS 4106和LSD驱动器4108协作LSD 4104的处理而实现。例如,在上面“相关申请”段落中引用的美国专利申请号12/029356中描述了传统主/辅(或主机/辅)范型之外的数据传输或数据访问的例子。
[0245] 再次参照图20,LSD 4104上的代理4402与HD 4102上的代理4404通信。由此,例如,LSD 4104上的代理4402和HD 4102上的代理4404之间的通信可经由无需HDFS 4106介入的安全路径和/或否则使得所传输的索引数据不可被HD 4102上的处理(如主机应用4114)访问。
[0246] 另外,装置4406还可进行关于搜索索引4126的存储操作(如上所述),如清空搜索索引4126或搜索索引的一部分,修改用于确定搜索索引的信息(例如,用来进行声音识别或图像识别处理的参数)或其他这样的信息。
[0247] 另外,使用安全路径,索引4126可由装置4406访问,例如为了响应于搜索查询的目的,而不将搜索索引4126传输给装置4406。在一个例子中,代理4402可包括搜索引擎功能性,其能够通过基于从外部装置4406向代理4402提供的搜索查询来处理LSD 4104上的搜索索引4126,来向外部装置4406提供查询响应。如上所述,搜索查询可以是搜索特定内容和/或利用索引4126中的元数据确定查询响应。
[0248] 通常,使用图20的配置作为例子,处理搜索索引4126的应用可以经由与HD中(或LSD中)任何有关应用共享的逻辑接口来访问。LSD给出因特网/IP/网络接口的事实使得HD中的标准因特网客户端应用更容易访问作为标准服务器的LSD中的索引。由此,可以有在HD上运行的基于标准因特网/IP的客户端应用(例如,网络浏览器或SQL客户端),并且,作为LSD中的服务器(例如,网页服务器或SQL服务器),可访问索引4126。在任何情况下,服务器在LSD中,而不在HD中,并且客户端在HD或在远程装置中。
[0249] 现在转到图21,它是在宽的方面中例示了LSD可用来生成LSD上的索引4502的索引数据的方法的流程图。在4504,不涉及HD,LSD对于LSD的存储器阵列中存储的数据生成索引数据。LSD的存储器阵列被HD管理为数据块。在4506,LSD在LSD上存储所生成的索引数据,作为搜索索引4502的至少一部分。由此,例如,可接收搜索查询(4508)并且对于索引4502处理搜索查询(4510),以生成对搜索查询的响应。
[0250] 因此,已经描述了LSD可用来索引LSD的存储器阵列中的数据的系统和方法,而不涉及主机(HD)。此外,已经描述了可如何处理索引,以例如响应于搜索查询。还描述了例如可如何将搜索索引用于内容筛查。
[0251] 图22例示了根据本发明实施例的主/辅系统5100的简化框图。例如,根据这里描述的具体实施例,辅装置可采用本地存储装置的形式,例如但不限于上述描述的前述存储装置中的任一个,而主装置采用主机装置的形式,例如但不限于上面描述的前述主机装置中的任一个。如上背景技术部分所述,主/辅是通信协议的模型,其中一个装置或过程具有对一个或多个其他装置的单向控制。在传统系统中,一旦建立装置或过程之间的主/辅关系,则控制的方向始终从主到辅,即,辅装置不能发起事务处理。在一些系统中,从一群适格装置中选择主装置,其他装置充当辅装置的作用。因此,主/辅系统5100(下文中也简称为系统5100)至少包括主装置5102(下文中也称为主机装置5102或主机控制器5102)、第一辅装置5104(下文中也称为存储装置5104)和第二辅装置5106(下文中也称为存储装置5106),它们至少通过传统的主/辅范型而彼此有关。
[0252] 系统5100还包括多个通信或信号线5108(下文中称为总线5108),用于将主机装置5102与外围存储装置5104和5106相连。应注意,即便仅仅示出了两个外围存储装置,但可将更多或更少的存储装置容易地耦连到总线5108。构成总线5108的信号线的实际数目也可以大范围变化。例如,一些现代总线具有相对少的信号线(例如,8-16条信号线),而其他现代总线可具有超过100条线,它们自己可以被逻辑地划分为有效地作为子总线(例如,地址总线、控制总线、数据总线等)作用的线子集。
[0253] 典型地,每个存储装置包括相应的唯一、永久的装置标识符。在一些总线协议中,永久装置标识符用于在总线通信中标识装置。在其他协议中,主机控制器将对耦连到总线的每个装置分派临时装置标识符和/或相关地址组。典型地,在各个存储装置5104或5106与总线5108和主机装置5102连接和初始化时,或者在可移除存储卡的情况下,在将卡插入相关联的读卡器时,分派这样的临时装置标识符和/或地址。尽管总线协议和存储器管理协议的细节将随着所采用的具体总线和存储装置的性质而变化,但是主机控制器5102一般知道每个存储装置相应的装置标识符。
[0254] 典型地,附连到总线5108的具体装置将知道它是否要响应于从主机5102发送的特定通信或基于通信的命令,主机5102一般使用目标通信/命令中的装置标识符和/或地址来指定存储装置。即,在一些协议中,每个通信通常包括装置标识符,其告知存储装置它们是否为通信的目标。在其他协议中,装置标识符并不作为每个存储器相关通信的一部分而显式发送。而是,命令可标识命令(例如,读、写或擦除命令)被定址(address)的地址。通常,通信未标识或定址的装置将简单地忽略该通信。
[0255] 在所示例子中,根据合适的总线协议,在共享总线5108上向存储装置5104和5106发送通信。总线协议规定了如何在总线上传送信息。同样,合适的总线协议包括安全数字卡(SD)协议、多媒体卡(MMC)协议和通用串行总线(USB)协议,不过也可以使用多种其他总线协议。另外,如熟悉本领域的人将理解的,当前存储装置采用多种不同架构,并且预期将继续开发出新的架构。通常,本发明可结合多种不同类型的存储器使用,只要存储装置具有合适的处理能力。
[0256] 图23是更详细地例示了根据本发明的一个实施例代表每个存储装置5104和5106的存储装置5200的一般结构的框图。在各种实施例中,存储装置5200可以是传统的或现有的存储装置。如前所述,存储装置5200可以是可移除或不可移除装置。在所示实施例中,存储装置5200是传统的可移除闪存卡,并且通常包括存储器控制器5214和大容量存储区域5216。存储器控制器5214包括存储器管理器5218和协议解析器5220。
[0257] 如熟悉本领域的人将理解的,协议解析器5220被配置为分析在总线518上发送的通信。更具体地,协议解析器5220被配置为分析从主机5102发送的通信,并基于作为通信一部分而指定的装置标识符或地址,确定存储装置5200是否为总线通信的期望目标。如果总线通信是指向存储装置5200的存储器操作,则通信被传递到存储器管理器5218,其进而进行所请求的操作,访问大容量存储区域5216。由协议解析器5220或存储器管理器5218适当地响应于指向存储装置5200的其他指令。存储装置5200通常简单地忽略指向其他装置的指令和通信。
[0258] 在至少一个存储装置可移除的实施例中,优选地,存储装置标识符是与目标存储装置相关联的永久装置标识符。如本领域技术人员所熟悉的,许多类型的存储装置,如闪存卡,具有可用于该目的的相关联的永久装置标识符。然而,在利用不包括永久装置标识符的存储装置的实施例中,可使用由主机5102分派的装置标识符。这里,应注意,在某些情况下,单个物理装置在该物理装置内可包括两个或更多个可寻址存储区块(或装置)。在此情况下,每个存储区块可具有相应的装置标识符和/或逻辑地址组。此外,如果特定命令被定址到总线5108上的所有存储装置,则可使用指示该命令被定址到总线上的所有装置的广播标识符或者所有目标装置标识符的列表。
[0259] 通常,诸如从主机5102传送的命令的通信包括操作标识符,其标识要执行的总线协议操作的类型。所标识的操作可以是存储器操作,如读、写和擦除操作;存储器管理命令,如让目标存储装置创建分区的指令;初始化和认证请求;中断;确认;错误信号和任何其他总线相关命令或操作。
[0260] 返回参照系统5100,主机5102控制存储装置5104和5106的各种操作。例如,与其他内务操作一起,主机向存储装置传送指示存储装置写数据、读数据和擦除的命令。命令在总线5108上从主机5102传送到与总线相连的一个或多个目标存储装置。仅仅给定命令所针对的一个或多个存储装置(例如,通过命令中的装置标识符和/或地址)才接受该命令并基于该命令执行操作。应注意,在所述实施例中,仅仅主机5102能够在总线5108上传送命令。
[0261] 为了例示本发明的具体实施例的基本例子的目的,参照图24的流程图和图22的系统描述将数据从源存储装置5104写到目的地存储装置5106的过程5300。过程5300从5302开始,其中主机5102在总线5108上发送LISTEN/WRITE(听/写)命令,其针对存储装置5106,并指示存储装置5106监听总线以及将来自总线的数据写入该装置的存储器中。在一个实施例中,LISTEN/WRITE命令指示存储装置5106在特定时间T1开始监听总线5108,并且在时间T1之后将来自总线的数据写入该装置的存储器中。更具体地,在使用时分复用协议来组织总线5108上的数据传输的实施例中,主机5102可指示存储装置5106在特定时隙X1监听总线5108。在另一实施例中,可指示辅装置5106立即开始监听,并等待直到总线
5108上可获得用来写入的数据。
[0262] 主机5102还在5304,在总线5108上发送READ(读)命令,其针对于存储装置5104,并指示存储装置5104从装置的存储器中读取数据并将数据输出到总线5108上。在一个实施例中,READ命令指示存储装置5104在特定时间,优选地在T1时或之后,开始读取和将数据输出到总线5108上,以便不丢失任何数据。同样,在使用时分复用协议来组织总线5108上的数据传输的实施例中,主机5102可指示存储装置5104在特定时隙X1开始读取和将数据输出到总线5108上。在另一实施例中,指示辅装置5104立即读取和将数据输出到总线上。
[0263] 以此方式,存储装置5106从总线5108拉出直接从存储装置5104输出的数据,并将数据写入存储器。更具体地,不同于传统布局,从存储装置5104输出的数据在从总线5108拉出并写入存储装置5106之前,不首先临时高速缓存在主机5102中或在任何其他装置中。由此,尽管主机5102启动存储装置5104和存储装置5106之间的数据事务处理,但在存储和/或传送数据时不涉及主机5102。
[0264] 由此,尽管各种主/辅总线协议(如SD协议)规定仅仅主机可以启动事务处理和发送数据,但本发明绕过该传统范型。即,本发明使得能够在存储装置5104和5106之间直接进行数据传输,同时能够使用现有装置和主/辅协议,因为每个存储装置假设它正在总线5108上发送或接收的数据正被发送到主机5102或从主机5102接收。还应该理解,以此方式,在总线5108上传送的数据总量可以被大约减半;即,因为数据可以直接从一个存储装置写入另一存储装置,而不是首先由高速缓存装置高速缓存和然后重新传送,所以对于给定事务处理在总线5108上传送的数据量可被大约减半,因此,可类似地减少所需总带宽。结果,可增加存储装置本身之间的数据传输速率,另外,可减少主机5102的处理器需求。
[0265] 在一个实施例中,存储装置5104继续读取和将数据输出到总线5108上,直到在5306主机5102发出STOP_READING(停止读取)命令,其针对于装置5104并指示存储装置
5104停止读取和将数据输出到总线5108上。类似地,存储装置5106继续从总线5108拉出数据,直到在5308主机5012发出STOP_LISTENING命令,其针对于装置5106并指示存储装置5106停止从总线拉出数据。
[0266] 在替代实施例中,READ命令还指示存储装置5104继续将数据输出到总线5108上,直到经过了持续时间D1。类似地,LISTEN/WRITE命令也可指示存储装置5106继续从总线5108拉出数据,直到经过了持续时间D2。在优选实施例中,D2至少与D1一样长,以便不丢失任何数据。例如,如果主机5102知道要传输的数据量(例如,比特数)和总线5108的工作频率,则主机可计算按传输数据所需的持续时间,然后指示存储装置5106在该持续时间内输出数据,并指示存储装置5106在该持续时间内继续监听和写入数据。
[0267] 在另一替代实施例中,LISTEN/WRITE命令指示存储装置5106在特定时隙Xn(其可以是连续或不连续的)期间监听总线5108。然后,时隙Xn期间总线5108上的数据被写入装置的存储器。在该替代实施例中,类似地,READ命令指示存储装置5104在特定时隙Xn期间开始读取和将数据输出到总线5108上。同样,应注意,时隙可以是不连续的。更具体地,主机5102可指示存储装置5014在时隙X1、X2、X3和X4(同样,它们在一些实施例中可以是不连续的)中将数据A输出到总线5108上。然后,主机5102将指示存储装置5106在时隙X1、X2、X3和X4期间监听和从总线5108拉出数据。
[0268] 为了解释目的的前述描述使用具体例子提供本发明的整体理解。然而,本领域技术人员将明白,为了实践本发明,无需具体细节。由此,本发明具体实施例的前述描述是为了例示和描述的目的而提出的。不期望它们是排他性的,或将本发明限于所公开的精确形式。本领域技术人员将清除,在上述教导下许多修改和变型是可能的。
[0269] 例如,尽管参照将数据从单个存储装置5104传输到另一单个存储装置5106而描述过程5300,但是应理解,主机5102可发出多播或广播命令,指示多个存储装置在特定时间监听总线,并将相关数据写入存储器。以此方式,可在多个装置中同时存储数据的多个副本。
[0270] 此外,尽管已经在从一个存储器装置读取数据和将数据传输到要存储它的另一存储器装置的上下文中描述了前述说明,但也应理解,本发明的各方面可应用于除了被特别配置为存储装置的那些以外的政治。例如,本发明的各方面可用于向和从外部网络传输通信和数据。更具体地,与总线耦连的第一辅装置可以是充当到外部网络或协议的网桥的网卡,如WiMax、Wi-Fi或蓝牙,并且第二辅装置可以是与该总线耦连的存储装置。例如,主装置可以指示第一辅装置直接将它通过总线从外部网络接收或已接收的数据传递到第二辅装置,或者指示第二辅装置将数据发送给第一辅装置以在外部网络上通信。在这样的实施例中,网卡可以是使用SDIO协议的SD总线上的卡。
[0271] 另外,尽管已经参照具体总线/装置配置描述了前述说明,但在替代实施例中,存储装置可按其他合适的配置或布局来连接。例如,在图25所示的实施例中,包括辅存储装置5404、5406和5408的每个装置按菊花链布局串联。这样的布局在非常高速的消费电子应用等中可能是期望的。尽管在图25所示的实施例中仅仅示出了三个存储装置,但将理解,可在菊花链布局中布置更多或更少的装置。通常,典型地,在这样的布局中连接2至5个装置。
[0272] 菊花链布局意味着一个装置的插针(pin)电连接到相邻装置的插针。连接可以通过硬焊接、印刷电路配线或插槽插针连接。例如,来自存储装置5404的第二组插针可经由一组通信线5432连接到来自存储装置5406的第一组插针,存储装置5406的第二组插针可经由一组通信线5434连接到存储装置5408的第一组插针,如此等等。以此方式,除了菊花链布局中的第一个或最后一个装置之外的所有存储装置连接到两个紧邻的相邻装置。然而,不同于其他存储装置,存储装置5404的第一组插针经由一组通信线5430与充当主装置的主机5402相连。在一个实施例中,所有存储装置共享时钟;然而,这不是必要的,每个装置可生成自己的时钟。
[0273] 在所示实施例中,没有将存储装置5404、5406和5408彼此互连和互连到主机5402的公共总线。相反,在该配置中,每个装置向链中的下游装置传递来自主机5402的不定址到它自己的命令。即,除了链中的第一装置(例如,存储装置5404)之外的每个存储装置(例如,存储装置5406和5408)通过链中任何上游装置耦连到主机5402。即,从主机5402向特定存储装置传递的通信或信息必须首先顺序地经过链中所有其他上游装置。实际上,沿着通信线5430、5432和5434的存储装置5404、5406和5408形成虚拟通信总线,其用来将通信和信息从主机传递到存储装置以及从存储装置传递到主机。
[0274] 在一个示例实施例中,其中存储装置5404、5406和5408被布置为菊花链配置,主机5402可在菊花链的装置串中向下传送LISTEN/WRITE命令。例如,主机5402可在通信线5430上传送针对存储装置5406的LISTEN/WRITE命令,其中它首先被存储装置5404接收到。存储装置5404随后可在通信线5432上传递LISTEN/WRITE命令,其中随后在目标存储装置5406处接收到命令。LISTEN/WRITE命令可指示存储装置5406在特定时间监听通信线
5434,以及在特定时间开始写入来自通信线5434的数据。主机5402还可在通信线5430上传送针对于存储装置5408的READ命令。在到达目标存储装置5408之前,READ命令可由存储装置5404和5406沿着通信线5432和5434传递,并且可指示存储装置5408在特定时间从存储器读取数据并将数据输出到通信线5434上。以此方式,存储装置5406可在LISTEN/WRITE命令所指示的特定时间监听通信线5434并写入它从通信线5434拉出的数据,其已经直接从存储装置5408读取并由存储装置5408输出到通信线5434上,无需首先将数据传输到主机5402。
[0275] 在其他实施例中,存储装置5404、5406和5408可能被布置为如图25所示的菊花链配置,而分离的公共总线将存储装置自己互连并互连到主机5402。以此方式,不同于传统的布局,菊花链装置之间的信号或通信路径是分离的,并且与总线不同,因而,还是不同于传统的方法,不消耗否则可能用来在存储装置和主机5402之间传递信息和/或数据的总线资源。
[0276] 为了提供更好的功能性从而提供更好的用户满意度,除了已经提供的那些核心服务(例如,媒体播放器)之外,最新的便携式消费电子产品(具体地,主机装置中包括的处理器)还被要求执行更多用户支持(辅助)功能。然而,因为这些便携式消费电子产品具有有限的处理器资源和RAM,任何额外的功能可能导致处理器运行变慢并消耗过多的功率,导致用户体验不太满意。使用最多最依赖的辅助服务之一(尤其在使得用户能访问大量的存储数据文件的情况下)是搜索/查询功能和其他这样的有关读取功能。当数据被严格存储为逻辑块时,搜索/查询功能在应用于高容量存储器装置时可能会有问题。例如,位于Milpitas CA的SanDisk Inc.是世界性的闪存销售商,目前正在销售用于移动装置的8GB闪存卡,并已经宣布对16GB的支持。该容量将随着时间前进和竞争扩张而只有变得更大。这种大小的该高容量存储器名义上能容纳数千个图像文件(JPEG)、音乐文件(MP3)或数百个视频文件(MP4),它们能使用诸如每个都来自微软公司的图片传输协议(PTP)或媒体传输协议(MTP)的对象传输协议,从诸如计算机的外部系统传输到便携式消费电子装置。对象协议尤其适合于传输包含诸如数字照片或MP3音乐文件的预定量数据的文件。例如,这样的协议可用来在数码相机和PC之间传输数字照片,或从主机计算机(如PC)向MP3播放器传输MP3音乐文件。应注意,对象传输协议(如MTP)更多地关注于“写相关”命令(例如,CopyObject、MoveObject等),然而,它们也覆盖“读相关”命令(例如,GetPartialObject、GtObjectPropValue等)。
[0277] 利用这样的大量存储的数据文件,任何搜索/查询功能可能消耗大量处理器资源,并消耗过多的时间来完成。因为在传统大容量存储装置中,内容按照逻辑块的粒度存储,而搜索/查询功能在数据按数据对象的粒度存储时可能更有效,所以尤其是这样。例如,数据库管理语言(例如SQL)明显适合于查询或操纵对象粒度的数据(例如,在SQL的情况下,经由SELECT命令按照关系数据库管理系统或DBMS,可能以关系方式组织的数据的检索)。因为在辅助服务的情况下一般搜索/查询功能(即,‘读相关’命令)消耗主机处理器的大部分处理资源,所以如果查询语言(如诸如SQL的数据库管理语言)可能在便携式消费电子产品中使用以优选地执行诸如搜索/查询等的读操作,则将有利于辅助服务(以及作为整体的系统)的性能的整体改善。还应注意,即使诸如SQL的数据库语言也覆盖‘写相关命令’(例如,CREATE、ALTER或INSERT、UPDATE、DELETE),在改善便携式消费电子产品的性能的情况下这种数据库语言的最有利的用途仍将会是用于诸如查询的读功能的执行。
[0278] 尽管将所有内容存储为数据对象而不是逻辑块,可能看起来是这个问题的答案,但是为了保护与现有产品和已安装基础的后向兼容性,完全切换到“面向对象“的范型既有反作用也是不必要的。
[0279] 因而,根据各种实施例,通过提供在与主机装置通信的本地存储装置(LSD)的存储器阵列中存储的内容的双表示法(dual representation),实现主机装置计算资源的更有效的分配。双表示法意味着按照逻辑块表示法(即可经由现有大容量存储接口访问)和可经由其中可操纵对象或对象性质的数据对象接口访问的对象表示法这两者提供在LSD中存储的内容。存储内容的双表示法通过提供最适合于请求应用的形式的数据,来提供流线化(streamline)主机应用的操作。此外,执行同步服务,其提供所存储内容在逻辑块表示法和对象表示法之间的同步。更具体地,同步提供用于同步在存储阵列的一部分中存储的对象性质信息和在阵列的大容量存储部分中存储的相应对象。因此,提供了至少存储器阵列,其被逻辑地配置为提供以逻辑块表示法和数据对象表示法这两者的所存储内容的双表示法,以及确保对象性质通行(current)的同步服务。
[0280] 以此方式,可容易地访问最适合于有效执行主机应用的特定组件的任一表示法。例如,如果主机装置是多媒体播放器而核心应用是MP3解码器,则MP3解码器将优先访问被存储为逻辑块的MP3文件。然而,如果多媒体播放器的用户希望搜索存储器阵列中存储的所有可用音频文件,然后搜索应用将根据例如对象性质优先使用被表示为对象的存储内容,以完成搜索请求。应注意,在面向对象的环境中,对象元数据是指被当作对象本身的一部分的一组预定性质,如在头标中。然而,除了对象信息之外,所述实施例还考虑可在对象外部定义(如由存储对象的LSD)而不必与它一起传送的对象性质。例如,对象已经被访问和/或播放的次数等可被当作对象性质。
[0281] 存储内容的双表示法可包括按照逻辑块的粒度以及按照对象的粒度(granularity)在存储器阵列的大容量存储部分中存储的内容。与所存储对象相关联的对象性质可存储在逻辑或物理上与对象自己被存储的部分分开的存储阵列部分中。例如,对象可以是存储阵列的公众部分(即,HDFS看得到的部分),而对象性质可以被存储在存储器阵列的私有部分中。另外,所述实施例提供同步与具有以块表示法存储的相应的相同内容的对象相对应的对象性质。以此方式,在大容量存储部分中存储的对象可具有在存储器阵列的其他部分中存储的对象性质(存储为文件、表等)。同步器的功能是确保所存储对象的任何变化被反映在相关联的性质中。
[0282] 图26例示了计算系统6100,包括主机装置(HD)6102和本地存储装置(LSD)6104。LSD 6104可采用可移除存储器装置的形式,如具有相对小的形状因子并且可用来存储诸如相机、手持或笔记本计算机、网卡、网络电器、机顶盒、手持或其他小音频播放器/记录器(例如MP3装置)和医学监视器的电子产品的数字数据的存储卡。存储卡的例子包括PC卡(以前的PCMCIA装置)、闪存卡(例如,紧致闪存类型I和II)、安全数字(SD)卡、多媒体卡(MMC)、ATA卡(例如,紧致闪存卡)、记忆棒、智能媒体卡。此外,LSD 6104可采取非可移除TM
存储器装置的形式,如Milpitas CA的SanDisk公司制造的兼容SD的iNAND 嵌入式闪存驱动器。
[0283] LSD 6104可通过HD/LSD接口6106与主机装置6102通信。应注意,HD/LSD 6106可被配置为机械实体(如插槽或互连总线),其中可机械连接HD 6102和LSD 6104。在一些实施例中,HD/LSD6106可采用无线接口的形式。HD 6102包括处理器。然而为了简洁起见,在下面的讨论中没有示出也没有进一步提及HD 6102中包括的处理器,但假设它存在。典型地,除了HD 6102提供的接口之外,LSD 6104不使用到HD 6102之外的装置的任何接口。
[0284] HD 6102包括现有大容量存储路径6107。现有大容量存储路径6107包括与现有大容量存储驱动器6110通信的主机装置文件系统(HDFS)6108(其一般是主机装置操作系统(HDOS))的一部分。应注意,HDFS 6108可被配置为基于很多文件系统而操作。例如,HDFS6108可以是基于文件分配表(FAT)的文件系统。然而,在其他实施例中,HDFS 6108可以是基于ext2、ext3、NTFS和JFFS等的文件系统。由此,尽管可通过其他文件系统实践本发明,但下面的描述集中在基于FAT的文件系统的实施例。例如,FAT文件系统可以是本领域中已知的FAT-16或FAT-32文件系统。
[0285] 在所述实施例中,HDFS 6108可使用采用逻辑接口或物理接口的大容量存储路径,如大容量存储路径6107,向LSD 6104发出LSD块命令6112。现有大容量存储驱动器6110进而可通过HD/LSD接口6106向LSD 6104传递LSD块命令6112。为了利用在LSD 6104中存储的数据的对象表示法,HD 6102可利用基于对象(OB)的接口6109(其可被配置为逻辑接口或物理接口),其被配置为在HD/LSD存储(物理)接口/总线6106上向LSD 6104传送对象相关命令6113。预期OB接口6109可在驱动器级或OS级甚至在应用级(在该情况下,它将部分地使用大容量存储路径6107)上集成。在所述实施例中,OB接口6109可利用逻辑IP(因特网协议)网络接口,在该情况下,OB接口6109可使用通常在IP上定义的基于对象的协议(例如IP上的SQL或IP上的MTP等)传送应用。
[0286] HD 6102还可包括主机应用6114,其可利用HDFS 6108和现有大容量存储驱动器6110来与LSD 6104通信。主机应用6114可包括被布置为提供核心服务(播放媒体文件、显示图像等)的核心应用6118和被布置为提供可用来在管理和/或执行LSD 6104中存储的内容时帮助主机应用6114的辅助服务(关键字搜索、修改播放列表等)的辅助服务应用
6120。应注意,辅助服务也可从LSD 6104运行,而无需主机应用6114的支持。以此方式,在认为合适的情况下,LSD 6104可独立于HD 6102或在HD 6102的支持下提供它自己的一组辅助服务。还应注意,这样的辅助服务可在这里描述的任何级别的架构上操作。例如,应用
6120可能恰好是操作系统(OS)的一部分。另外,应用6120可以是使用LSD 6104中的存储数据的基于对象的表示法的远程应用,其中应用6120可驻留在远程装置或与LSD 6104分开但与HD6102/LSD 6104通信的另一LSD中。
[0287] LSD 6104可包括控制器6122和被配置(逻辑或物理地)为包括至少第一部分6126和第二部分6128的存储阵列6124。应注意,存储阵列6124可由存储器单元(如闪存)的阵列形成。在该特定情况下,即使可假设大容量存储阵列6124是闪存存储器单元的阵列,但本发明不限于闪存型存储器单元,因为预期本发明可通过任何合适类型的存储器单元来使用。控制器6122可包括闪存管理器6130,其可至少管理第一部分6126,按照HDFS
6108的命令动作。在一种特别有用的布局中,可使用LBA协议在第一部分6126中存储数据。因此,第一部分6126中存储的数据块的位置可使用LBA协议指定,其中例如,每个块可按照每个512或1024字节的量级。以此方式,大容量存储区域6126可完全后向兼容任何所预期的现有大容量存储架构(即,能够结合现有主机工作)。因而,LSD 6104可使用现有接口、总线和所有相关联的协议操作,提供与现有产品的已安装基础的完全兼容性。以此方式,大容量存储区域126可用来存储被表示为数据对象或逻辑数据块的数据。
[0288] 控制器6122可包括基于对象的管理系统(OBMS)6132,其被布置为向第二部分6128提供可用来存储和检索(retrieval)表示和对应于在大容量存储区域6126中存储的数据对象6136的数据对象性质信息6134的对象管理服务。这样的OBMS 6132的典型例子可以是数据库管理系统(DBMS),其被设计为控制数据库(DB)中的数据的组织、存储、管理和检索。OBMS可以响应于任何DB查询/管理语言(如SQL)。因此,可根据DB格式或更具体地作为数据结构(即,字段、记录、文件和对象)而在区域6126中存储对象。OBMS 6132可通过在闪存管理器6130的顶部提供逻辑对象管理层,利用闪存管理器6130访问/管理区域6126和6128。然而,在一些实施例中,OBMS 6132可嵌入与闪存管理器6130分开的它自己的闪存管理层。
[0289] OBMS 6132提供的对象管理服务可包括检索和存储与存储器存储区域6126中存储的数据对象6136相关联的对象性质信息。数据对象信息可包括数据对象信息数据组(dataset)。此外,与区域6126中存储的对象相关联的簇/块的位置也可被当作可在区域6128中存储的对象性质的一部分。在所述实施例中,数据对象信息数据组可提供对象6136的核心性质的概观。这些核心性质可包括例如对象6136的数据成分的大小和可用来关联数据对象以及描述装置上的分层文件系统的对象关联度。应注意,数据对象性质可提供用于交换与对象本身分离的对象描述信息。对象性质的好处之一是允许大存储的快速列举(enumeration),而不考虑文件系统。
[0290] 为了确保在大容量存储区域6126中存储的对象在区域6128中具有一致的对象表示法,同步器6138(其可驻留在LSD 6104或HD 6102中)可用来与大容量存储区域6126中存储的已更新对象相对应地更新区域6128中存储的对象性质。更新意味着可对大容量存储区域6126中存储(或要存储)的数据文件执行的改变或修改与数据对象相关联的任何特性的任何操作。应注意,由OBMS 6132管理且经由‘对象表示法’提供的(即,由同步器6138处理)性质的数目和种类(nature)可由辅助应用6120定义或由LSD 6104自己定义,或由两者定义。而且,由OBMS 6132管理的对象性质根据对象自身而有较大区别。例如,这样的对象性质可包括名称、大小、一些的作者、另一些的用户生成标签、以及已经内容已播放的次数。应注意,一旦内容被标识,如由HD 6102或LSD 6104,则与该内容相关联的不同信息集合可由OBMS 6132管理。
[0291] 同步器6138可执行被称为双向同步操作的操作。例如,经由大容量存储路径6107传送的对大容量存储区域6126的写命令可产生能用来经由对象(OB)路径6111读取和或操纵的新的或更新的对象。此外,通过OB接口6109传送的写相关命令(例如,更新或移动对象)可用于经由大容量存储路径6107的读取或操纵。因而,通过OB接口6109传送(至少使用驱动器6110)的基于‘写’的命令(例如,修改对象、移动对象)可通过同步器6138与区域6128同步。
[0292] 因而,当写相关命令(例如修改或移动对象)使用OB路径6111经由OB路径6109传送到LSD 6104时,对象可被写入大容量存储区域6126,而通过同步器6138在区域6128中更新相应的性质。然而,因为区域6126由HDFS 6108管理(包括高速缓存关于HD 6102的任何FAT信息的管理),所以HDFS 6108将不知道在区域6126内部发生的任何修改。因而,为了确保在对象被写入大容量存储区域6126中时最终同步区域6128中的性质,可使用由HDFS 6108识别的使用位于大容量存储区域6126中的预定大小的占位符(placeholder)的内部写命令。
[0293] 图27示出了根据所述实施例的同步器6138的具体实施例。同步器6138可耦连到HD 6102和LSD 6104之间的大容量存储路径,因而能够观察从HD 6102向LSD 6104传递的任何LSD块命令6112。在所述实施例中,LSD块命令6112是基于FAT块的命令,其可包数据部分62-2中的信息和数据,并且可包括指示控制器要执行的操作的类型(读、写、复制等)的命令指示部分6204。同步器6138可至少包括对象性质提取单元6210,其被布置为提取对象的显著性质。提取单元6210可提取被传递给信息单元6212的合适的对象性质(文件名、格式、文件大小等)。在任何时间,更新的信息可被传递给HDFS 6108,其随后可标识和更新区域6128中的合适的数据对象性质。
[0294] 此外,当数据被写入大容量存储区域6126时,因为同步器6138了解写入大容量存储区域6126的数据的‘FAT结构’,所以同步器6138可观察LSD块命令6112并‘即时(on the fly)’标识和更新对象性质。例如,数据提取单元6210可采用使用数据收集器6210的形式。使用数据收集器6210可观察命令6112,并基于它确定数据访问特性表述,例如要在存储区域6128中存储为性质的使用计数器。尽管命令6112被提供给按照HDFS 6208的命令动作的控制器6122的闪存管理器6130,但在其他例子中,命令或其他信号不作为HDFS操作的结果而从HD 6102提供给LSD 6104。例如,这样的命令或其他信号可基于其他操作而提供,如不是作为HDFS操作的结果的驱动器级操作。数据访问特性表述6206可由使用数据收集器6210基于读和/或写操作的频率而推断出来,以表述数据访问的特性。
[0295] 在任何情况下,同步器6138可异步或在后台操作,并且从区域6126读取以标识需要同步的任何性质。
[0296] 图28示出了执行核心服务(如读取MP3文件)的核心应用6118,其需要通过由大容量存储路径6107传送到LSD 6104的读命令6302而读取大容量存储区域6126中存储的数据。同步器6138确定因为所访问对象的性质没有改变,因而不需要通过OBMS 6132更新区域6128中的相应性质(除非例如更新计数器)。
[0297] 图29例示了HD 6102已经发出写命令6402(或将使得修改大容量存储区域6126中存储的对象的任何其他命令)的情形,其中写命令6402通过大容量存储路径6107传送到LSD 6104。同步器6138观察到与大容量存储区域6126中的对象相关联的性质将通过执行命令6108而修改,并通过使得OBMS 6132更新区域6128中存储的对象性质而进行响应。应注意,同步器6138还可通过周期性地规律地读入大容量存储区域6126而规律地检查(例如,在后台中)大容量存储区域6126中的内容的状态,以确定其中存储的对象是否已发生任何修改。在一些实施例中,同步器6138可标识大容量存储区域6126的模式,并基于那些模式得出大容量存储区域6126中存储的对象的性质。在任何情况下,OBMS 6132更新在存储区域6128中存储的合适的对象性质。
[0298] 图30例示了代表根据所述实施例之一的过程6500的流程图。过程6500从6502开始,提供数据存储阵列。在6504,然后,逻辑数据块形式的数据被提供给数据存储阵列。在6506,通过第一逻辑接口管理逻辑数据块。在6508,对应于逻辑数据块的数据对象被提供给数据存储阵列。在6510,通过第二逻辑接口管理数据对象。在6512,通过第一接口修改被存储为逻辑数据块的数据。在6514,通过第二接口和第一接口使得能访问修改的数据。
在6516,与6514同时,管理一组预定的对象性质。
[0299] 图31示出了例示一般在主机装置204中找到的其他组件的代表性系统900。系统900包括中央处理单元(CPU)910、随机存取存储器(RAM)920、只读存储器(ROM)930和主要存储装置940和950。如本领域中公知的,ROM 930用来向CPU 910单向传输数据和指令,而RAM 920一般用来按双向方式传输数据和指令。CPU 910通常可包括多个处理器。主要存储装置940和950两者均可包括任何合适的计算机可读介质。CPU 910还耦连到计算机硬件和软件领域中的技术人员所熟悉的一个或多个输入/输出装置960。
[0300] 在所述实施例中,移动装置(例如,便携式媒体装置)可彼此通信。这种通信的类型可称为点对点(peer-to-peer)交互。因此,一个移动装置可直接与另一移动装置通信(例如,单播)。在另一例子中,一个移动装置可向多个其他移动装置通信(例如,广播、任播(anycast)或多播)。在点对点环境下,一个移动装置可与紧邻的一个或多个其他电子装置(无论移动或固定的)通信。当这样的通信可用时,可进行数据共享。
[0301] 数据传输可能在移动装置和计算装置如家庭计算机或另一移动装置之间。典型地,移动装置和计算装置将与具体用户相关联。例如,当移动装置在家庭计算机(或家庭网络)的范围内时,可在移动装置和家庭计算机之间进行数据传输。数据传输还可能是在两个或更多个移动装置之间,或者在两个或更多个非移动装置之间。数据传输可以是自动的,无需任何用户动作,或者可替换地,可以需要用户的手动许可。网络装置可经由标识号或其他合适的机制而相互关联。
[0302] 能够接收、传送和/或存储数据的移动装置或非移动装置可称为“数据装置”。数据到达数据装置的方式可取决于实现方式。例如,数据可直接传输到数据装置,或者数据可间接传输到数据装置。例如,数据传输可以是在一个数据装置到另一数据装置之间。可替换地,一个数据装置可使得另一数据装置向接收方数据装置传输期望的数据。
[0303] 共享数据可通过文件传输或流传输(streaming)而传输到接收方装置。所传输的数据可由一个或多个数据装置接收。数据装置的例子包括媒体播放器、PDA、扬声器单元、无线发射器/接收器单元等。数据装置的用户还可通过数据共享创建和分发内容。流传输可能是有限的,以便限制同时接收数据的数据装置的数目。另一方面,如果数据装置的用户是流内容的订户(即,有订阅),则流传输对于订户可以是无限制的。还可实现管理(包括存储)与媒体项目元数据相关联的媒体项目内容的某部分,以有助于媒体项目内容的流传输。例如,用户甚至可能在剩余内容的流传输开始之前开始播放这样的媒体项目内容的先前存储的部分。
[0304] 数据可在购买之后共享。例如,接收方可能从远程服务器购买数据。远程服务器则会使得所购买的数据传递到接收方的数据装置。可实时地进行购买,或者可推迟到之后的时间点。此后,所购买的数据可从接收方的数据装置共享到另一数据装置。
[0305] 例如,在工作环境或其他网络环境中,当用户进入雇主的办公室工作时,用户的移动装置可将数据传输到用户的工作计算机或办公室的网络服务器。数据传输可以是自动的,无需任何用户动作,或者可替换地,可需要用户的手动许可。移动装置的用户还可与同事或网络的其他用户的移动装置通信,以交换数据。
[0306] 无论何种具体环境,数据传输可以是无线的。可通过无线网络帮助无线数据传输。一个移动装置可能无线地以单播方式将数据从一个移动装置传送到另一移动装置或固定计算装置。另外,一个移动装置可能无线地以多播或广播方式将数据传送到多个其他移动装置。应注意,任何家庭服务器计算机可位于计算装置200所属的网络中的多个其他数据存储装置中的任一个上。
[0307] 本发明的优点有多个。不同的实施例或实现方式可产生以下优点中的一个或多个。本发明的一个优点是可添加或移除现有装置,而无需修改系统硬件。本发明的另一优点是它可与任何主机计算机一起使用,而不进行修改,因而降低了成本并增加了本发明的实用性。本发明的另一优点是可索引LSD中的数据,而无需考虑修改HD的功能性。另外,索引可与具体LSD相关联,即使LSD与多个HD一起使用。
[0308] 从所撰写的说明书可清楚本发明的许多特征和优点,由此,想要由所附权利要求覆盖本发明的所有这样的特征和优点。另外,因为对于本领域技术人员而言可进行多种修改和改变,所以不期望将本发明限于所示和所述的构造和操作。因此,所有合适的修改和等价物可被采用为落入本发明的范围。