利用脉冲神经网络管理认知存储系统的数据集的制作方法

文档序号:19572546发布日期:2019-12-31 19:05阅读:238来源:国知局
利用脉冲神经网络管理认知存储系统的数据集的制作方法



背景技术:

本文中描述的示例实施例总体上涉及用于管理存储系统的数据集的计算机实现的方法和系统的领域,并且更特别地涉及依赖于脉冲神经网络来学习和推断数据集所属于的类的表示以相应地管理整个存储系统的数据集的认知存储系统。

在认知存储系统中,文件的相关性有时被用于确定系统的存储策略,以便在保持文件管理的可靠性和性能的同时降低存储成本。数据的相关性(或值)是与数据集(例如,文件)相关联的度量,该度量反映这样的数据集对用户的重要性。文件的相关性例如可以通过从用户获取重要和不重要文件的样本并且应用监督学习算法估计其他文件的相关性度量而被估计。

此外,已知多层存储系统,其包括若干存储层。这样的系统通常将不同类的数据分配给各种类型的存储介质,以便在保持性能的同时降低全局存储成本。分层存储系统通常依赖于如下策略:将最常访问的数据分配给高性能存储层,而将很少访问的数据存储在低性能(更便宜和/或更慢)存储层上。

考虑例如如下存储系统:其中应用在大批量数据集(例如,天文数据存储库、金融交易日志、医疗数据存储库)上被运行。长时间未被访问的数据(也被称为“冷数据”)被存储在更便宜(节能)的介质(诸如磁带)上。但是,从这样的介质访问数据也较慢,这表示运行被存储在这些介质上的数据的应用的性能大幅下降。

机器学习主要依赖于人工神经网络(ann),ann是受人或动物大脑中的生物神经网络启发的计算模型。这些系统通过示例逐步和自主地学习任务;它们已经被成功地应用于例如语音识别、文本处理和计算机视觉。

ann包括一组连接的单元或节点,其与动物大脑中的生物神经元相似,并且因此被称为人工神经元。信号沿着人工神经元之间的连接(也被称为边)传输,类似于突触。也就是说,接收信号的人工神经元处理它并且然后发信号通知连接的神经元。在通常的实现中,沿着这样的连接被传送的信号是模拟实数,并且人工神经元的输出由于它的输入之和的非线性函数而被计算。

连接权重(也被称为突触权重)通常与连接和节点相关联;随着学习的进行,这样的权重会调节。每个神经元可以具有多个输入,并且连接权重归因于每个输入(该具体连接的权重)。这样的连接权重在训练阶段期间通过训练算法而被学习并且由此被更新。学习过程是迭代的:数据情况被呈现给网络,通常一次一个,并且与输入值相关联的权重在每个时间步长被调节。

有趣的是,神经网络可以用硬件被实现,例如,通过光学神经形态系统或电阻处理单元。神经网络也可以用软件被实现。已知很多类型的神经网络,从前馈神经网络开始,诸如多层感知器、深度神经网络和卷积神经网络。此外,出现了新型的神经网络,诸如脉冲神经网络。

脉冲神经网络(snn)与通常的神经网络基本上不同,因为snn使用脉冲进行操作,脉冲是可以在任何时间点异步发生的离散二进制事件,而不是以常规时间步骤计算的模拟值。也就是说,除了神经元和突触状态,snn还包含时间概念。也就是说,神经元仅在膜电位达到特定值时发射,而不是在例如多层感知器网络中在每个传播周期发射。在snn的上下文中,发射表示神经元生成到达其他神经元的信号,这些信号转而根据它们从其他神经元接收的信号来增加或减小它们的电位。



技术实现要素:

根据第一方面,提供了一种用于管理存储系统的数据集的计算机实现的方法。假定数据集与元数据的相应集合相关联。该方法首先依赖于将元数据的第一集合连续地馈送给脉冲神经网络(snn)。馈送的元数据的第一集合对应于已经关于它们所属于的类而被标记的存储系统的数据集。也就是说,这样的数据集因此与类标签相关联。这使得snn可以在对馈送的元数据加权的连接权重的方面来学习上述类的表示。接下来,在推理阶段期间,将元数据的第二集合连续地馈送给snn(元数据的第二集合对应于存储系统的未标记的数据集),以用于snn基于馈送的元数据的第二集合和学习的表示来推断针对未标记的数据集的类标签。最终,存储系统的数据集基于包括在推理阶段被推断的类标签的它们的类标签而被管理。

根据另一方面,提供了一种存储数据集的存储系统。该系统特别包括实现snn的平台和类确定单元。后者被配置为将元数据的第一集合连续地馈送给snn,以便其学习类的表示,如上所述。类确定单元还被设计为将元数据的第二集合连续地馈送给snn,以便推断针对未标记的数据集的类标签,与上述方法一致。此外,提供了管理单元,以基于包括在系统操作中被推断的类标签的数据集的类标签来管理存储系统中的数据集。

根据另一方面,提供了一种用于管理存储系统中的数据集的计算机程序产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有利用其而被体现的程序指令,该程序指令由计算机化系统可执行以引起实现根据上述方法的步骤。

现在将通过非限制性示例并且参考附图来描述计算机化系统、方法和计算机程序产品。

附图说明

在附图中,相同的附图标记在各个视图中指代相同或功能相似的元件,并且附图与下面的具体实施方式一起并入本说明书中并且形成本说明书的一部分,附图用于进一步说明各种实施例并且根据本公开解释各种原理和优点,在附图中:

图1是示意性地示出根据示例实施例的用于管理存储系统的数据集的方法的高级工作流的框图;

图2是示出了如示例实施例中涉及的这样的方法的详细步骤的流程图;

图3是示意性地示出根据示例实施例的存储系统的选择的组件的框图;

图4示意性地表示本文中描述的示例实施例中涉及的脉冲神经网络的优选架构;以及

图5示意性地表示实施例中的适用于实现诸如图1或图2中所示的方法的一个或多个步骤的通用计算机化单元。

附图示出了实施例中涉及的设备或其部分的简化表示。除非另有说明,否则附图中的类似或功能相似的元件被分配相同的附图标记。

具体实施方式

以下描述的结构如下。首先,描述一般实施例和高级变型(第1节)。下一部分涉及更具体的实施例和技术实现细节(第2节)。

1.一般实施例和高级变型

参考图1至图4,首先描述本发明的一个方面,其涉及用于管理存储系统1的数据集5(例如,文件)的计算机实现的方法。

数据集5与元数据相关联,元数据可以有利地被捕获为键值对。也就是说,每个数据集具有元数据的相应集合。数据集中的一些数据集需要关于它们所属于的类进行标记(通常是少数数据集),以实现类表示的学习s20。例如,在预处理阶段期间,用户可以选择这样的数据集s10并且将其标记为s15,以实现训练集。因此,与类标签相关联的标记的数据集在某一时刻可用s15,而存储系统1的其余数据集(通常是绝大多数)尚未被标记。

通常,未标记的数据集最初未关于本方法的任何感兴趣类进行标记。在变型中,其余数据集最初可能没有充分标记,例如,没有以与前述标记s15的数据集相同的程度标记。在其他变型中,其余数据集最初可能不准确地标记。因此,需要为其余数据集推断标签(或附加标签),以便实现如本文中描述的管理过程。

本文中考虑的数据集可以是任何一致的数据集,其粒度可以在例如数据块(即,具有给定最大长度的物理记录)与文件(即,块或文件片段的集合)或文件的集合之间的范围内。更一般地,它可以是具有预定义格式或长度的任何字节或比特或文件片段序列。

第一阶段s20专用于类标签的学习。也就是说,元数据的第一集合被连续地馈送(参见图2中的步骤s22-s25)到脉冲神经网络(snn)30,该元数据对应于标记的数据集,以便snn在网络的连接权重的方面学习s26-s27相应类的表示。在操作中,连接权重与馈送的元数据相关。也就是说,根据网络的突触连接,这样的权重可以被视为对馈送给snn的元数据的第一集合中的元数据加权。

学习类的表示相当于改进网络的连接权重的值。例如,学习过程可以被认为导致将类的表示形成为连接权重值的线性组合。然而,在实践中,网络可以例如涉及系数数组,其在学习过程中得到改进。因此,给定的类表示可以被视为到输出神经元的权重值的数组,其由馈送给网络中的元数据的集合产生。学习的权重数组又可以被理解为成组的数据集(例如,数据文件)的压缩表示。学习这样的表示相当于基于在数据集与它们的相应类之间的元数据(例如,元数据值)方面的距离来学习相似性。

在第二阶段(推断)s30期间,元数据的第二集合被连续地馈送s33-s36到snn30,该元数据现在对应于存储系统的未标记的数据集。这样做是为了使得snn能够推断s37-s38未标记的数据集的类标签。由snn执行的推断一方面基于馈送s33-s36的元数据的第二集合并且另一方面基于在学习阶段s20期间学习s26-s27的表示。也就是说,推断阶段导致推断未标记的数据集的类标签,这些类标签最终可以被认为属于推断的类。

再次,最初未标记的数据集是用于实现本方法的目的的最初未被评级的数据集(例如,由用户或应用),这与标记的数据集相反,其可以被视为形成训练集。现在,当运行上述过程s20、s30时,系统1推断针对最初未标记的数据集的类标签。在推断过程s30完成时,最初未标记的数据集与类标签相关联,并且因此可以被系统视为“已标记”。仍然,训练集的数据集应当被与由系统最终标记的数据集区分开,因为推断的标签在推断阶段s30期间被自动地且认知地获取。

最后,基于数据集的类标签来管理s50存储系统1的数据集5,除了已经用作学习阶段s20的输入的类标签之外,其还包括推断的类标签。类标签实际上可以被有利地依赖以有效地管理数据集,例如,存储、复制(达到给定的冗余级别)、刷新和/或垃圾收集数据集等。特别地,数据集管理策略可以被设计,这取决于数据集的类标签。例如,长时间不访问的数据(“冷数据”)被存储在磁带上。

本方法利用snn及其处理时空数据的能力。与已经标记的数据集对应的元数据被连续地馈送给snn中,以用于snn学习类的表示,这相当于有效地学习了类与馈送的元数据之间的相似性。注意,该方法不需要学习元数据字段之间的成对相似性并且不需要另外学习每个标记文件的相似性度量以将基于文件的相似性度量与每个类的相似性度量组合。相反,snn涉及单个学习过程,即类表示的学习。此外,学习的类表示使得稍后可以直接使用一个类表示而不是所有标记的数据集来计算未标记的数据集的相似性,因为类是这些数据集的压缩表示。因此,与由多个相似性度量隐含的操作相比,本方法允许节省大量计算存储空间和计算时间。

此外,与非脉冲神经网络相比,snn架构可以产生显著更高的能量效率,因此允许到非常大量的输入数据对象的可扩展性。

现在更具体地参考图2和图4,将元数据的第一集合馈送s23-s25给snn30中优选地通过将s25这样的元数据映射到snn30的输入神经元(输入节点)上而被实现。然后,映射的输入神经元需要被激活s26,以便snn30学习s27类表示。

由于系统排序算法,元数据的集合可以例如被自动映射s23-s25到网络的输入节点上,因为数据集被连续访问s22、s23、s29。例如,仅仅查找表可以被用于存储从元数据到输入神经元的映射。然后,在操作中,每个数据集的元数据可以在表中被查找,并且如果还没有包括这样的元数据,则可以添加将新元数据映射到附加输入神经元的附加条目。

在推理阶段s30期间,可以进一步利用在学习阶段s20期间被实现的映射s25。也就是说,通过在映射的元数据中标识s36匹配于与元数据的第二集合有关的元数据的元数据,可以将元数据的第二集合(对应于未标记的数据集)连续地馈送s32-s36到snn中。然后可以激活s37相应的输入神经元(即,与匹配元数据对应的神经元),以便推断s37-s38未标记的数据集的类标签,如图2中所示。

实现该目的的非常方便的方式是依赖于键值对,如在优选实施例中。也就是说,数据集的元数据可以被捕获为键值对,其中每个对包括:表示元数据字段的键;以及表示该元数据字段的值的值。例如,给定文件f的元数据可以由一组键值对表示,即{(k1(f),vk1(f)),(k2(f),vk2(f)),...},其中vki表示与第i对的第i元数据字段ki对应的第i元数据值。

在这方面,并且如图4中所示,元数据的第一集合的键值对可以被容易地映射到snn30的相应输入神经元31上。在图4中,从数据集到输入神经元的映射由箭头表示,诸如箭头7。也就是说,根据映射,每个映射的输入神经元对应于元数据的第一集合的键值对中的相应键值对。

这样,在推断阶段s30期间,足以在已经映射s25的键值对中标识与元数据的第二集合的键值对匹配的键值对。反过来,可以激活s37相应输入神经元,从而推断s37-s38未标记的数据集的类标签。

然而,在变型中,可以仅将键(对应于元数据字段)映射到输入神经元,而可以在整个神经元激活中编码元数据值。也就是说,元数据值影响输入神经元的激活方式。因此,被映射到各个神经元的元数据可以是仅键或键值对。

通常,在学习阶段s20期间,单个类需要与每个数据集相关联,并且因此与元数据的相应集合相关联。然而,在变型中,在学习类表示s20之后,可能想要将数据集与两个或更多个类相关联。这可以通过同时激活相应的输出节点来轻松实现。

优选snn架构现在被更详细地描述。在如图4中所示的实施例中,输入神经元31属于snn30的第一层,snn30还包括被映射到类标签上的第二层输出神经元32。然而,注意,在数据集与相应的元数据之间被隐含地实现的映射也可以被视为网络30的层。在图4中,输出神经元经由多对多横向抑制连接36彼此连接,而输入神经元31通过多对多兴奋性连接35连接到输出神经元32。在图4的示例架构中,snn的连接权重与相应的兴奋性连接35相关联。在变型中,每个输出神经元可以通过激发抑制性中间神经元来对其余输出神经元施加抑制,抑制性中间神经元又抑制其余输出神经元。

这种架构使得可以容易地学习s26-s27类表示,并且这针对与在步骤s23-s25馈送的每组键值对对应的每个标记的数据集。也就是说,每次将一组新的键值对映射到相应输入节点31上时,通过激活s26映射的神经元31和相关的输出神经元32,即对应于与该组新的键值对相关联的类标签的输出神经元32,可以以连接权重值的方式学习(或更新)类表示,因为假定该类标签在学习s20时是已知的。也就是说,一方面,映射的神经元被激活s26,由此从激活的神经元31生成脉冲序列。另一方面,相关的输出神经元可以使用教师信号同时被激活s27(例如,刺激),以增加该输出神经元的脉冲频率和降低第二层中的其他神经元的脉冲频率。

权重可以例如使用赫布学习规则而被更新,这在突触的突触前和后神经活动相关的情况下加强突触权重,并且在这样的活动不相关的或反相关的情况下削弱该权重。所谓的脉冲定时相关可塑性(stdp)是这种学习规则的一个示例,其中由突触前和突触后脉冲对定义的顺序和定时间隔决定权重更新的方向和幅度。尽管如此,可以考虑其他hebbian规则或hebb规则的变型,诸如基于比率的hebbian学习、反hebbian学习或bienenstock-cooper-munro(bcm)规则。或者,可能依赖于非hebbian监督的基于脉冲的学习规则,例如可以使用所谓的脉冲反向传播、归一化近似下降(“normad”)、spikeprop或resume。

snn30优选地被配置为赢者通吃网络。根据抑制性连接的权重,它可能是硬赢者通吃(因此推断出的数据集属于单个类),或者是软赢者通吃(以不同置信度/概率推断多个类)。

例如,在实施例中,出于学习目的s20,可以一个接一个地在s23、s29之后访问s22来自训练集的文件。在那里,针对每个文件,相应s24键值对被s25映射到其上的输入神经元31被激活s26,其生成泊松脉冲序列。与该文件的已知类对应的输出神经元用教师信号同时刺激s27,以使其比其他输出神经元“脉冲”更多。这种学习是有效的,即,从活动键值对到由标签规定的类的突触得到加强,而从这些键值对到其他类的突触被抑制。通过这样做,输出神经元开始形成相关类的表示,由于增量训练s22、s23、s29,可以将其视为键值对的线性组合(由于突触权重),其中贡献来自所有过去的训练文件。针对选择s10-s22的每个文件,该过程根据需要重进行复s23、s29。

现在,在推断s30(其中没有相关的类标签可用)时,一次一个地选择s33、s39所考虑s32的每个未标记文件的元数据,如图2中所示,用于推断s30类标签。在那里,可以标识s34与已经映射s25的元数据对应的键值对,由此匹配的对被选择s36以激活s37相应的输入神经元。来自激活s37的神经元31的输入脉冲刺激所监测s38的输出神经元32。由于输入文件与相应类的相似性,输出神经元之一通常将比其他神经元更活跃,如在早期训练s20期间被学习的。根据网络的配置,由于横向抑制连接36,最活跃的输出神经元可以抑制或至少抑制其他输出神经元。再次,取决于抑制连接36的权重,网络可能是硬赢者通吃(推断属于单个类的文件),或者是软赢者通吃(以不同置信度/概率推断多个类)。

在所有情况中,输出信号可以被转换成关于推断的标签的信息,其然后被用于相应地管理s50被存储在系统1上的文件。实际上,学习阶段s20和推理阶段s30可以混合,以便动态地管理存储系统的数据集(包括新存储的数据集)。

再次参考图1和图2,现在讨论实施例,其涉及各种反馈。第一可能性是向snn提供s42关于推断的类标签的反馈信息(以无监督的方式),以便相应地改进s44类的表示。如图1中所示,可以在推断之后立即提供这种类型的反馈,即,为新的输入数据集5推断新的类标签。也就是说,基于针对元数据的给定集合而被新推断的类标签,可以完全改进s44连接权重值以改进类表示。

然而,优选地,仅关于类标签以超过给定阈值s41的概率被推断s38的未标记的数据集来提供s42这样的反馈信息。也就是说,如果可以根据相应的推断确定地确定最初未标记的数据集属于给定类,则该数据集可以有效地被认为是适当标记的数据集,就像最初标记s15的数据集。这转而可以被用于改进类的表示的学习。

此时可以按照受监督的方式进一步获取附加反馈。也就是说,在实施例中,针对一些最初未标记的数据集而被推断的类标签可以被用作提示s46用户标记这样的数据集的基础。这也使得snn可以改进s48类的表示,尽管是以受监督的方式。

是否提示s46用户标记这样的数据集可能基于推断类标签的置信度。也就是说,仅关于类标签以不超过给定阈值的概率s41推断的未标记的数据集来提示s46用户。注意,本文中被使用的阈值可以(但不一定需要)与用于决定是否提供无监督反馈信息的阈值相同。例如,可以施加下限阈值,在该阈值以下,可以系统地请求s46标签以改进s48学习,而上限阈值可以用于无监督反馈s42、s44。例如,如果需要,可以临时标记落在这两个阈值之间的数据集,并且稍后将其重新注入snn中以改进推断的类标签。可以设想更复杂的场景,其涉及附加阈值。

在所有情况下,通过使用反馈来改进类估计,可以随时间改进估计准确度并且可以跟踪类的变化。

在实施例中,学习和推断的类是基于相关性的类。也就是说,推断的类标签每个指示相应数据集5的相关性(如数据集的一个或多个用户所感知的)。数据集转而可以根据所感知的相关性来在存储系统1中被管理。

目前,更详细地解释存储系统1上的数据集的管理。除了仅仅数据集存储之外,主动管理s50可以特别地解决数据集5的重新定位、它们的冗余和垃圾收集。例如,所获取的类标签可以影响存储系统1的存储层11-13上的数据集的(重新)定位。特别地,可以设计分层存储系统1的策略,其可以向高性能存储层分配最相关数据,以最高冗余存储最相关数据,而不太相关的数据可以被存储在低性能(更便宜和/或更慢)的存储层上和/或以更低的冗余存储不太相关的数据等等。

实际上,由用户初始标记s15的数据集可以表示被存储在存储系统1上的数据集总数的不到5%。但是,该百分比可以根据存储系统的容量和利用率而变化。例如,如果数据集的总数在十亿或更多的数量级上,则它可以小于1%或甚至0.1%,或者当仅存储几千个数据集时,它可以达到10%或更多。

本方案都依赖于最初标记s15的数据集,即训练集,其可以通过用户的输入s2或甚至应用2来获取。本方法的实施例可以相应地包括(在第一学习阶段s20之前)步骤s15,即,对选择的数据集s10进行评级以进行训练。例如,如图3中假定的,用户评级可以在步骤s2由存储单元1接收,并且然后传递到类确定单元20,基于其可以随后计算s20类表示。如上所述,通常只需要一小部分数据集来训练系统。

如图2和图3进一步所示,一旦获取s20-s40了类标签,例如,针对根据与应用/用户或存储单元10的交换在步骤s10中选择的文件,可以由单元40调用合适的管理策略,这需要以确定的类标签作为输入。结果,该管理策略可以特别地指示s50基于其相关联的标签来在存储系统1的存储层11-13上对数据集5进行存储、复制、垃圾收集等。这包括初始数据集(训练集的最初评级的数据集)以及其类标签自动确定s30-s40的最初未标记的数据集。可以进一步聚合和维护关于类标签的分布(例如,相关性值)的统计,以便为存储系统1设计合适的存储策略。此外,管理策略可以是依赖于上下文的。

再次参考图3,现在描述另一方面,其涉及这样的存储系统1。

基本上,系统1包括平台,平台实现snn30,例如,作为赢者通吃网络。出于性能原因,该snn应当优选地以硬件实现,例如,通过光学神经形态系统或通过电阻处理单元被实现。然而,在变型中,snn30可以用软件实现。在所有情况下,snn30应当优选地具有诸如图4中所示的架构。也就是说,它可以包括键值对被映射到其上的第一层输入神经元31和类标签被映射到其上的第二层输出神经元32。同样,输出神经元可以经由多对多横向抑制连接36彼此连接,而输入神经元31经由多对多兴奋性连接35连接到第二层32。

此外,系统1包括类确定单元20,类确定单元20被配置为将元数据的集合馈送s22-s25、s32-s36到snn30,以便snn30学习s26-s27类的表示或者推断s37-s38未标记的数据集的类标签,如前所述。因此,单元20需要适当地连接到实现snn的平台。另外,单元20可操作地连接到管理单元40,以便管理单元40基于关于数据集的确定s38的类标签(或以其他方式获取s15的类标签)来管理s50存储系统1中的数据集5,如先前参考本发明的第一方面讨论的。

如图3中所示,系统1优选地是分层存储系统。在这种情况下,管理单元40还可以被配置为基于在系统1的操作中获取的类标签来在存储系统1的存储层11-13上重新定位数据集5。更一般地,可以设计复杂的策略,其利用根据本方法而推断的类标签,以适当地管理存储层上的数据集,如前所述。

在图3的示例中,存储单元10包括三个存储层11-13。但更一般地,该系统可以包括两个或多于三个存储层。分层存储系统本身是已知的。层通常被定义为相同类型的存储设备的同类集合,具有所有相似(如果不相同)的存储特性。图3中描绘的单元10涉及ssd设备11(第一层)、高端磁盘12(第二层)和磁带驱动器13(第三层)。然而,可以涉及附加层,例如,低端磁盘可以用于层12和13之间的中间层。

尽管本文中考虑的数据集可以是任何一致的数据集,但是这些数据集优选地是文件或文件集合,其可以容易地被评级以形成训练集。这样,可以很容易地推断系统的其余文件或文件集的标签。

层上存储的数据集很可能由一个或多个应用2访问,因为后者与存储单元10交互s2。通过与单元10交互,应用2消耗数据作为输入,输入数据需要从存储单元10取出,并且还产生新数据,新数据可能需要被存储在单元10上。因此,新数据集可能不断出现,其根据本方法可能需要标记s30-s40,从而提出了学习和推理技术的优点。

接下来,根据另一方面,可以提供一种计算机程序产品。计算机程序产品通常是包含有程序指令的计算机可读存储介质,该指令由例如图5中所示的计算机化单元101的一个或多个处理器可执行,以实现如上所述的单元10、20和/或40的功能。其他细节在2.2节中被给出。

已经参考附图简洁地描述了上述实施例,并且上述实施例可以容纳很多变型。上述特征的若干组合可以被预期。示例在下一节中被给出。

2.具体实施例和技术实现细节

2.技术实现细节

2.1计算机化单元

可以适当地设计计算机化设备以实现如本文中描述的本发明的示例实施例。在这方面,可以理解,本文中描述的方法在很大程度上是非交互式和自动化的。在示例性实施例中,本文中描述的方法可以在交互式、部分交互式或非交互式系统中实现。本文中描述的方法可以用软件(例如,固件)、硬件或其组合而被实现。在示例性实施例中,本文中描述的方法在软件中实现为可执行程序,可执行程序由合适的数字处理设备执行。更一般地,可以实现本发明的示例实施例,其中使用诸如个人计算机、工作站等的通用数字计算机。

例如,图3中描绘的系统1和/或单元10、20、40每个可以涉及诸如图5中示意性地描绘的一个或多个计算机化单元101,例如通用计算机。在示例性实施例中,就硬件架构而言,如图5中所示,单元101包括处理器105、耦合到存储器控制器115的存储器110、以及经由本地输入/输出控制器135通信耦合的一个或多个输入和/或输出(i/o)设备145、150、155(或外围设备)。输入/输出控制器135可以是但不限于一个或多个总线或其他有线或无线连接,如本领域中已知的。输入/输出控制器135可以具有用于实现通信并且尤其是与实现snn30的平台通信的附加元件,为了简单起见省略了这些附加元件,诸如控制器、缓冲器(高速缓存)、驱动器、中继器和接收器。另外,本地接口可以包括用于实现上述组件之间的适当通信的地址、控制和/或数据连接。

处理器105是用于执行软件、尤其是被存储在存储器110中的软件的硬件设备。处理器105可以是任何定制的或商业上可用的处理器、中央处理单元(cpu)、与计算机101相关联的若干处理器之间的辅助处理器、基于半导体的微处理器(以微芯片或芯片组的形式)、或通常是用于执行软件指令的任何设备。

存储器110可以包括易失性存储器元件(例如,随机存取存储器)和非易失性存储器元件中的任何一个或组合。此外,存储器110可以包含电子、磁、光和/或其他类型的存储介质。注意,存储器110可以具有分布式架构,其中各种组件彼此远离,但是可以由处理器105访问。图5中所示的总线可以通过一个或多个总线互连,诸如系统总线140(例如,地址、数据或控制总线)。

存储器110中的软件可以包括一个或多个单独的程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。在图5的示例中,存储器110中的软件包括本文中根据示例性实施例而描述的方法和合适的操作系统(os)。os基本上控制其他计算机程序的执行,并且提供调度、输入输出控制、文件和数据管理、存储器管理以及通信控制和相关服务。

本文中描述的方法可以是源程序、可执行程序(目标代码)、脚本、或包括要执行的指令集的任何其他实体的形式。当处于源程序形式时,程序需要经由编译器、汇编器、解释器等翻译,如本身已知的,其可以包括或不包括在存储器110中,以便与os相结合地正确地操作。此外,这些方法可以被编写为具有数据和方法的类的面向对象的编程语言或者具有例程、子例程和/或函数的过程编程语言。

可能地,传统键盘150和鼠标155可以耦合到输入/输出控制器135。其他i/o设备145-155可以包括其他硬件设备。另外,i/o设备145-155还可以包括传送输入和输出的设备。系统10还可以包括耦合到显示器130的显示控制器125。在示例性实施例中,系统10还可以包括用于耦合到网络(未示出)并且由此与其他单元交互以组成如图3中所示的系统的网络接口或收发器160。

网络在单元101与外部系统之间传输和接收数据。网络可以以无线方式实现,例如,使用诸如wifi、wimax等无线协议和技术。网络可以是固定无线网络、无线局域网(lan)、无线广域网(wan)、个域网(pan)、虚拟专用网(vpn)、内联网或其他合适的网络系统,并且包括用于接收和传输信号的设备。

网络还可以是用于经由宽带连接在单元101与任何外部服务器、客户端等之间进行通信的基于ip的网络。在示例性实施例中,网络可以是由服务提供商管理的受管理ip网络。此外,网络可以是分组交换网络,诸如lan、wan、因特网网络等。

如果单元101是pc、工作站、智能设备等,则存储器110中的软件还可以包括基本输入输出系统(bios)。bios被存储在rom中,以便在计算机101被激活时可以执行bios。

当单元101在操作中时,处理器105被配置为执行被存储在存储器110内的软件,将数据传送到存储器110和从存储器110传送数据,并且通常根据软件来控制计算机101的操作。本文中描述的方法和os全部或部分地由处理器105读取,通常缓冲在处理器105内,并且然后被执行。当本文中描述的方法以软件实现时,该方法可以被存储在诸如存储装置120等任何计算机可读介质上以供任何计算机相关系统或方法使用或与之相结合使用。

2.2计算机程序产品

系统、方法和/或计算机程序产品可以根据本文中描述的示例实施例而被提供。计算机程序产品可以包括其上具有用于使得处理器执行本发明的各方面的计算机可读程序指令的(多个)计算机可读存储介质。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或多种编程语言的任何组合而被编写的源代码或目标代码,这些编程语言包括诸如smalltalk、c++等面向对象的编程语言以及诸如c编程语言或类似编程语言的传统过程编程语言。计算机可读程序指令可以完全在用户的计算机上,部分在用户的计算机上,作为独立的软件包,部分地在用户的计算机上并且部分地在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情况中,远程计算机可以通过任何类型的网络被连接到用户的计算机,包括局域网(lan)或广域网(wan)或者可以被进行到外部计算机的连接(例如,通过因特网使用因特网服务提供商)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以将电子电路个性化,以便执行本发明的各方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统而被实现,或者可以用专用硬件与计算机指令的组合而被实现。

虽然本发明已经参考有限数目的实施例、变型和附图而被描述,但是本领域技术人员将理解,在不脱离本发明的范围的情况下,可以进行各种改变并且可以替换等同物。特别地,在不脱离本发明的范围的情况下,在给定实施例、变型中被记载或在图中被示出的特征(类似设备或类似方法)可以被与另一实施例、变型或附图中的另一特征组合或替换另一实施例、变型或附图中的另一特征。因此可以预期关于上述实施例或变型中的任何实施例或变型而被描述的特征的各种组合,这些组合仍然在所附权利要求的范围内。另外,在不脱离本发明的范围的情况下,可以进行很多微小的修改以使特定情况或材料适应本发明的教导。因此,本发明旨在不限于所公开的特定实施例,而是本发明将包括落入所附权利要求的范围内的所有实施例。

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