数据流组装控制的制作方法

文档序号:15073822发布日期:2018-08-01 00:39阅读:138来源:国知局

本发明涉及用于控制数据源设备或部件处的数据流的组装的技术,更具体地,涉及用于从数据源设备或部件传递到另一数据源或部件的数据流的组装,更特别地,涉及当要被组装到数据流中的数据可作为来自存储器的数据或作为得自于数据创建或数据转换功能的数据而起源时的这种组装。



背景技术:

在来自不同数据源的数据流的组装中,数据处理领域的技术人员众所周知的是,约束和成本应用于各种数据获取、创建和转换的活动。这种成本和约束可以整体地应用于数据流的组装,例如可以是需要使得数据流在特定的时间可用或者在处理器周期消耗约束之内可用。许多其它的这种约束对于本领域的技术人员而言是已知的。类似地,存在应用于数据流的组装时涉及的子活动的成本和约束,诸如但不限于从存储器或其它存储设备寻找并传递数据时耗费的时间、在执行数据转换中消耗的处理器周期、或在准备数据以将其包括在数据流中时消耗的电池电量。

尽管本技术不限于任何特定类别的设备,但是已知的是,在被称为物联网(或iot)的领域中,许多设备通常需要受到对功耗和数据处理和存储资源的提供的严格约束。这是作为例如需要以低成本生产许多iot设备并且考虑使所述iot设备保持在非常紧的功耗预算内的结果。清楚的是,不期望使高度复杂的、资源饥饿且功率饥饿的设备嵌入在日用品和工业品中,这是因为这将不利地增大制造商的制造成本和这种商品的所有者的购买和持续使用的成本。

例如,家中的加热系统可以收集来自各种温度传感器的信息并基于所收集的信息来控制加热器的活动;工厂污染监测传感器可以收集来自各种化学传感器的信息并基于所收集的信息来安排维护;而医疗保健提供商可以使用无线传感器(诸如心率传感器之类)来跟踪患者当其在家时的健康。家用冰箱可以设置有识别与易腐败的食物相关联的编码数据、将所述数据存储在设备存储装置中、以及随后在被监测所述数据的程序触发时通过到智能手机的网络警告用户临近该食物的“到期”日期的能力。在任何的这些情况中都不期望引致任何资源浪费,并且因此非常期望可以提供缓解成本及约束的有效功能的任何技术。



技术实现要素:

在第一种方法中,所公开的技术提供了一种操作数据源设备以组装符合数据流约束的数据流的机器实现的方法,所述方法包括:通过对存储器中的数据进行访问和转换数据中的至少一个来获取多个数据项;在完成对存储器中的数据进行所述访问之前,基于对访问约束的估计来选择访问器;在完成所述转换数据之前,基于对转换约束的估计来选择转换器,其中所述转换约束包括任意数据获取约束;其中:所述访问约束和转换约束取决于所述数据源系统处的系统状态;将所述多个数据项定位在所述数据流中;以及响应于实现与所述数据流约束的符合,传送所述数据流。

附图说明

现在将仅以示例方式参照附图描述所公开的技术的实现,在附图中:

图1示出了在构造中的数据流的一个简化的示例,所述数据流的数据源按照时间线绘制;

图2示出了所公开的技术的一个操作方法;以及

图3示出了能够根据所述技术操作的设备。

具体实施方式

现在转到图1,示出了数据流100的示例,其中所述数据流在构造中,并按照时间线102绘制。所述数据流从报头103开始构造,各种有效载荷数据项被添加到所述数据流,所述有效载荷数据项可以包括从存储装置检索(例如通过直接内存存取(dma)106从处理器存储器检索或通过其它方式从外部存储器(extmem)108检索)的静态数据104。相同的项可以能够从多于一个位置获得,并且每个位置可以经受不同的成本和其它约束。为了简单起见,仅示出了一个示例性静态数据项;但是对于本领域的技术人员而言清楚的是,大部分数据流将包括多于单个的这种项。静态数据104通常将已被存储在某个存储位置中,并且将简单地被按原样检索并在数据流中定位。相反地,动态数据110、112、114被以某种方式转换以准备将其包括在数据流100中。在该示例中,动态数据项(dyn)110、112、114分别可以被处理(proc)120、128;118、130;以及116、126转换。如图中所示,可以通过多于一个的转换器处理来获得相同的项,并且每个转换器可以经受不同的成本和其它约束,包括如针对proc130所示出的在获得输入数据(data)118、120时涉及的成本或约束。获取静态或动态的数据可以采取串行地执行或通过并行处理来执行,并且在使用并行处理的情况下,可以在处理时间期间根据各种标准选择优选的处理,如下面将更详细地描述的那样。在图1所示的示例中,数据流的尾部包括根据数据流的构造期间的数据项(诸如103、104、110、112或114)的校验和而创建的循环冗余校验(crc)尾部,校验和及crc的示例为134、132。

约束可以包括但不限于时间约束,诸如对在预定时间之前完成一个或多个动作的要求之类。约束还可以表示资源成本,诸如cpu周期或存储访问方面的成本之类。iot技术领域中的重要约束例如是电池操作的一些设备中可用电力的限制——对于这种设备,驱动外部存储设备或使用通信设备来访问远程数据以可能被电池寿命所约束的方式来消耗电力。此外,在iot领域中,一些设备可能被它们能够从能量收集电源获得的能量的量所约束。当数据在被包括在数据流之前要被转换时要考虑的另外的约束是事务性(transactionality)的约束——特定的操作必须被原子地执行(即,在所有方面均完成,或者如果所述操作不能被如此完成则回滚到先前状态)。因此可能还需要考虑特定事务处理活动的附加的资源要求。

在计算中可能不是总能精确地确定访问和处理的成本,但是可以进行一些估计并使用所述估计来选择获取用于插入在数据流中的(静态或动态)数据的优选方式。决策引擎在计算领域的一些方面已经是已知的,并且这种技术可以按对有限的信息操作的方式并基于统计方法来实现,而不是需要机械地确定。

另外的约束可以包括安全要求——例如,可能须避免经由任何不安全的中间存储装置传递任何机密数据,并且这可能施加了附加的成本负担。类似地,如果任何数据是个人可识别信息且存在原地管辖(homejurisdiction)中的法律限制,则可能须避免使这种数据在具有较不严格的控制的外国管辖中被存储或处理。

现在转到图2,示出了所公开的技术的一个操作方法。方法200在开始步骤202处开始,并在步骤204处建立或确定用于数据流的总体约束。在测试步骤206处,进行测试以确定是否要求数据访问。如果在测试步骤206处测试结果为否定的,则处理在测试步骤211处继续。如果测试步骤206处的测试结果为肯定的,则在步骤207处请求数据访问。在所述请求点处或在数据访问处理期间的稍后,在步骤208处选择访问器,并且数据访问处理在步骤210处完成。

在测试步骤211处,执行测试以确定是否要求数据转换。如果测试步骤211的结果是否定的,则处理在测试步骤218处继续。如果测试步骤211的结果是肯定的,则在步骤212处请求转换。在所述请求点处或在转换处理期间的稍后,在步骤214处选择转换器,并且在步骤216处完成所述转换处理。在测试步骤211处不存在对转换的要求的情况下,在测试步骤218处确定是否存在要写入的数据。如果测试步骤218的结果是否定的,则处理在测试步骤222处继续。如果测试步骤218的结果是肯定的,或者如果在步骤212至216处执行转换,则在步骤220处静态数据或动态数据被写入数据流。

处理继续到测试步骤222,在测试步骤222处确定是否满足总体数据流约束。如果测试步骤222的结果是否定的,则处理继续到结束步骤226。如果测试步骤222的结果是肯定的,则已经满足总体数据流约束——例如已经按时完成时间敏感的数据流,并且在步骤224处将所述数据流传送到另外的设备、系统或系统部件——例如传送到本地系统内的协处理器或远程监测站。在步骤224处的数据流传递之后,处理在结束步骤226处完成。

由此提供了一种操作数据源系统的方法,用于组装符合数据流约束的数据流,并响应于实现对所述数据流约束的符合而将数据定位在所述数据流中以及将所述数据流传递到数据宿系统。所述方法涉及通过访问存储器中的数据和/或转换数据来获取多个数据项。基于对访问数据或转换数据的约束估计,所述方法包括选择访问器和/或转换器。

在建立约束估计中还可以考虑系统状态,并且还可以通过例如更改cpu时钟速度、使得cpu的其它的保留部分可用、迫使从存储器输出其它数据、改变缓冲器可用性、或迫使先前保留的带宽解除保留来修改系统状态以改变一个或多个约束估计。在估计约束中还可以考虑修改系统状态的资源成本,使得该系统可以基于所述资源成本选择修改或不修改系统状态。

在一个变型中,可以基于多个访问器或转换器的并行执行的结果来选择访问器或转换器。还可以提供存储指示先前对访问器或转换器的选择的标记的附加的功能,其中所述标记可以用于控制数据流组装的后续实例。因此,例如,如果dma被选择为优先于较慢的磁盘旋转加速、寻道和读取,则当正在组装相同的或密切相关的数据流时,针对特定动作的那个选择可以被存储和重新使用,由此避免了针对新的实例重复成本/约束估计的需要。可以通过“老化(age)”所述标记,即,通过设置计数器以对重复实例进行计数并在预定数量的实例之后丢弃所述标记,来进一步改进该变型。

在另外的变型中,所述技术可以通过由约束编译器插入指令来操作,以通过评估至少一个系统约束和暂时地修改系统状态来控制选择访问器或转换器的步骤。这种约束编译器可以用于将系统约束编译为作为决策引擎而操作的条件指令集或固定指令集,在运行时关于系统级约束进行推理,以及按照需要实现暂时的状态改变(例如通过调用处理器时钟倍频器)。所插入的指令由此可以在数据流组装处理中的决策点处被调用,以不时地根据需要选择适当的工具来处理约束。这种决策引擎可以基于简单的标准(诸如用于完成动作的截止时间之类)或者基于更复杂的标准(诸如系统的最高运行温度、估计的电池剩余电量或最大系统功耗之类)操作。

转到图3,示出了能够根据所公开的技术来操作的数据源300设备。数据源300包括能够操作以获取用于并入到数据流中的数据的获取部件308。获取部件与此处表示为数据存储装置312和数据存储装置316的多个数据存储部件进行电子通信,以通过数据访问操作来获取静态数据,如上文所述,其可能经受约束和成本。相应地,获取部件308包括能够操作以从此处由访问器310和访问器314表示的多个访问器中选择优选访问器的访问选择器318。

获取部件308还包括能够操作以转换数据的多个转换器,所述多个转换器此处表示为转换器322和转换器324。转换选择器320能够操作以从多个转换器中选择转换器以用于转换数据。

当从相应的多个访问器和转换器中进行选择时,访问器选择器318和转换选择器320二者能够考虑能被获取部件308从系统状态数据319访问的系统状态。

获取部件308能够操作以向数据流组装器306提供数据(由访问器310、314之一访问的静态数据或由转换器322、324之一转换的动态数据),数据流组装器306在由数据流约束处理机(handler)304设置的并由数据流约束处理机304确定符合的约束之内构造数据流。响应于由数据流约束处理机304进行的至少一个约束符合测试的肯定结果,数据源300能够操作以将数据流传递给数据宿302,如上文所述,数据宿302可以为另外的设备、设备的另外的系统、或与数据源300相同的系统的另一内部部件。

在一个变型中,如先前所描述的,获取部件可以能够操作以修改系统状态数据319,以获得数据流的组装的改善的效率。

如同本领域的技术人员将认识到的,本技术可以实现为系统、方法或计算机程序产品。相应地,本技术可以采取整体硬件实施例、整体软件实施例、或组合了软件和硬件的实施例的形式。

此外,本技术可以采取实施在计算机可读介质中的计算机程序产品的形式,所述计算机可读介质上实施有计算机可读程序代码。所述计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介质可以是例如但不限于电子、磁、光、电磁、红外、或半导体系统、装置或设备或前述的任何适当的组合。

用于执行本技术的操作的计算机程序代码可以按一种或多种编程语言的任何组合来编写,包括面向对象的编程语言和传统的过程编程语言。

例如,用于执行本技术的操作的程序代码可以包括按照诸如c之类的传统编程语言(解释或编译语言)或汇编代码的源代码、目标代码或可执行代码、用于建立或控制asic(专用集成电路)或fpga(现场可编程门阵列)的代码、或用于诸如verilogtm或vhdl(超高速集成电路硬件描述语言)之类的硬件描述语言的代码。

所述程序代码可以整体地在用户的计算机上执行、部分地在用户的计算机上且部分地在远程计算机上执行、或整体地在远程计算机或服务器上执行。在后者的场景中,远程计算机可以通过任何类型的网络连接到用户的计算机。代码组件可以被实施为过程、方法等,并且可以包括子组件,所述子组件可以采取从原生指令集的直接机器指令到高级编译的或解释的语言构造的任何抽象级别的指令或指令序列的形式。

对于本领域的技术人员而言也是清楚的是,根据本技术的实施例的逻辑方法的全部或部分可以适当地在包括执行所述方法的步骤的逻辑元件的逻辑装置中实施,并且这种逻辑元件可以包括诸如例如可编程逻辑阵列或应用专用集成电路中的逻辑门之类的部件。这种逻辑布置还可以在使能元件中实施,所述使能元件用于使用例如虚拟硬件描述语言在这种阵列或电路中暂时地或永久地建立逻辑结构,可使用固定的或可发送的载体介质来存储和发送所述逻辑结构。

在一个替代中,本技术的实施例可以按部署服务的计算机实现的方法的形式来实现,所述方法包括部署计算机程序代码的步骤,所述计算机程序代码能够操作以当被部署到计算机基础架构或网络中并在其上运行时使得所述计算机系统或网络执行所述方法的所有步骤。

在另一替代中,本技术的实施例可以按其上具有功能数据的数据载体的形式来实现,所述功能数据包括当被加载到计算机系统或网络中并在其上运行时使得所述计算机系统执行所述方法的所有步骤的功能计算机数据结构。

对于本领域的技术人员而言清楚的是,在不背离本技术的范围的情况下,可以对前述的示例性实施例进行许多改进和修改。

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