CN107302562B - 一种物联网终端设备的自适应命令处理系统与方法 - Google Patents
一种物联网终端设备的自适应命令处理系统与方法 Download PDFInfo
- Publication number
- CN107302562B CN107302562B CN201710367697.XA CN201710367697A CN107302562B CN 107302562 B CN107302562 B CN 107302562B CN 201710367697 A CN201710367697 A CN 201710367697A CN 107302562 B CN107302562 B CN 107302562B
- Authority
- CN
- China
- Prior art keywords
- command
- order
- processor
- internet
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Abstract
本发明涉及一种物联网终端设备的自适应命令处理系统与方法,包括:允许用户通过URL访问的形式把物联网应用安装到设备上;综合考虑时间与能耗指标的确定性多处理器间命令自动分发方法;统计用户在各处理器上使用每种命令的频次基于命令使用频次完成资源受限处理器上的命令集定制;云服务器根据命令集定制结果生成新命令集,并网络更新到具体处理器。由此本发明提供了一种简便的异构多处理器节点上的物联网应用开发方法、降低了异构多处理器节点的整体能耗、提升了系统的普适性。
Description
技术领域
本发明涉及物联网中异构多处理器节点的应用领域,特别涉及一种物联网终端设备的自适应命令处理系统与方法。
背景技术
智能化是物联网发展中至关重要的一步,现阶段物联网节点所需要的计算资源、存储资源不断增加,而与此同时,电池供电的节点想要长期稳定运行应具有低能耗的特性。异构多处理器节点相比于同构多处理器节点或者单处理器节点具有可以在整体较低能耗的条件下支持复杂计算的优点,因此这种体系结构被引用到了物联网节点的设计中,现在已经涌现出很多在物联网中应用异构多处理器节点的研究与应用。在物联网中应用异构多处理器体系结构有两个难点。一方面异构多处理器节点中处理器的差异性较大,应用设计时要考虑的问题比较多,开发难度大,即如何对异构多处理器节点有效编程。另一方面,异构多处理器节点中资源的调度问题直接影响到节点的能耗问题,如何设计优秀的资源调度方案来保证在平均较低能耗的条件下保持较高的计算能力。
近些年对异构多处理器体系结构在物联网中的应用研究越来越多。例如开源硬件Arduino中的异构多处理器板,Arduino Yun板,其提供了一些基础函数以及处理器间的Bridge库支持Atemega32U4处理器调用Atheros AR9331处理器上的命令,大大方便了开发者开发使用。CoMOS操作系统针对同时具有ARM处理器和MSP430处理器的异构多处理器节点设计,通过设计新的操作系统,让开发者在操作系统的基础上进行应用的设计与开发,极大地方便了物联网应用的开发工作,但是该操作系统目前不具有通用性。论文针对异构多处理器节点的应用设计与能耗评估中提出了一种异构多处理器节点中应用设计的流程,并设计了一个装置有FPGA协处理器的板子SUNSHINE,同时比较了该多处理器节点与单处理器节点在执行任务时的能耗使用情况[3]。论文针对异构多处理器传感器节点的软硬件协同设计解决了在异构多处理器上设计和实现程序的问题,提出了一种通用的分层软硬件接口,该接口能够满足微控制器上的任务与FPGA上任务的无缝链接。Bolt指出处理器间通信时使用共享互联和共享存储会导致异构节点时间、功率、和时间域的干扰,阻碍了设计人员充分利用多处理器的优势,因此它提出了一种用于异构无线嵌入式平台构造的第一个超低功耗处理器互联方法。
针对于异构多处理器节点应用中存在着编程难度大的问题,以上工作提出了一些方案,但这些方案不能通用地用在异构多处理器节点上。另一方面,目前还缺少对资源调度问题的研究,以往的研究主要针对于非物联网中的异构多处理器进行,但是在物联网中资源调度问题具有新的挑战,比如存在资源受限的处理器,处理器间功能不对等以及更多地关注能耗等。本发明针对于异构多处理器节点编程难度大的问题设计了一种脚本编程的方案;并提出了一种有限时间条件下的最低能耗的命令分发方案以及提出了一种根据用户习惯进行了命令调度优化的方案。
在物联网中应用异构多处理器节点与一般的单处理器节点相比有其特殊性:
首先,异构多处理器节点需要分别对各处理器进行单独编程,并且要考虑处理器间的影响,编程难度大大加大;
其次,物联网中的异构多处理器节点上存在着一些处理器资源受限的问题,处理器间功能、性能差异大,需要设计新型的适用于物联网中的资源调度方法,使得节点运行中的平均能耗尽可能地小;
最后,不同用户对物联网资源需求的差异性大,如何设计一种通用方案来满足不同用户的不同需求。
综上所述,异构多处理器体系结构应用在物联网中需要解决以下问题:编程难度大;难以设计适合的资源调度方法,减小整体能耗;由于用户使用资源的差异性大,通用系统难以同时满足不同用户的不同需求。需要注意的是本发明面对的物联网终端设备是包含资源受限处理器和资源充足处理器(资源非受限处理器)的物联网终端设备。
发明内容
为了解决上述技术问题,本发明设计了一种异构多处理器节点中用户自适应的命令解释系统。该系统主要具有三点功能:
1、该系统通过设计一套多处理器间兼容的命令集,避免了开发中用户需要分别考虑各处理器底层的问题;
2、该系统设计了一种在满足时间要求的条件下进行最低能耗命令分发的方案,减小了系统运行的能耗,避免了用户编程中要考虑处理器间调度的问题;
3、异构节点中存在存储资源受限的处理器,不能装载完整的命令集程序,所以系统能耗最优的命令分发方案并不总是能满足,需要对命令进行重新分发,该系统为存储资源受限的处理器设计了一种基于用户使用命令习惯来定制命令集的方案,优化了节点上存储资源的使用,降低了系统的整体能耗,系统也因此具有了通用性,可以在整体能耗低的条件下满足不同用户的不同需求。
本发明目的在于提供一个运行在异构多处理器节点上的具有根据用户使用命令习惯进行自适应性能力的命令解释系统。本发明针对物联网中异构多处理器节点中如何减小编程难度以及如何进行有效资源调度的问题,提出了一种异构多处理器节点中用户自适应的命令解释系统设计方案,能有效的方便用户在异构节点上的开发,按照用户使用的需求更有效地利用节点存储资源。
具体地说,本发明公开了一种物联网终端设备的自适应命令处理方法,其中包括:
步骤1:根据现有命令集设计包含多条命令的命令序列,并通过URL访问的形式将该命令序列发送至物联网终端设备,其中该物联网终端设备包括资源充足处理器与资源受限处理器;
步骤2:物联网终端设备通过解析该命令序列制定能耗最低的分发策略,根据该分发策略更新该命令序列生成新命令序列,并统计各处理器使用每种命令的使用频次;
步骤3:该物联网终端设备根据该使用频次,执行命令集定制算法完成命令集定制,生成命令集定制结果;
步骤4:云服务器根据该命令集定制结果生成相应命令解释集合,并将该命令解释集合网络更新到具体处理器。
该物联网终端设备的自适应命令处理方法,其中该步骤1还包括,若该现有命令集无法设计该命令序列,则统计完成该命令序列所还需要的命令,作为所需命令,并上传该所需命令的相关信息至云服务器;
该步骤2还包括,设备根据该新命令序列完成命令调度,各处理器接收并执行该新命令序列中相应命令;
该步骤3还包括,判断当前接收到的命令序列总数是否大于等于系统的预设值,若未达到,则执行完毕,否则生成该命令集定制结果。
该物联网终端设备的自适应命令处理方法,其中该步骤2包括:
步骤21:加载计算各命令所需的时间复杂度函数至该物联网终端设备;
步骤22:解析该命令序列,根据该时间复杂度函数,计算执行该命令序列中各命令所需的时间,作为运行时间,并根据该运行时间和处理器单位时间能耗,计算执行该命令序列中各命令所需的能耗,作为运行能耗;
步骤23:根据该命令序列中各命令间的相互调用关系,生成该命令有向无环图,其中该有向无环图内节点包含命令执行时间与命令执行能耗,该有向无环图内边包含跨处理器命令间通信的时间与能耗成本;
步骤24:根据该有向无环图,逐一枚举该命令序列中各命令在各处理器上的分发策略;
步骤25:计算各分发策略所使用的能耗,并依次计算执行该分发策略所需完成时间,且将各分发策略的所需完成时间集合为预计完成时间集合;
步骤26:在该预计完成时间集合中,筛选出满足用户指定命令序列运行时间的分发策略,并从中挑选出能耗最低的分发策略。
该物联网终端设备的自适应命令处理方法,其中步骤3中该命令集定制算法包括:
步骤31:输入该命令价值V[N]、可编程的总代码行数C、该命令序列中命令总数N、各命令代码行数W[N]至该资源充足处理器;
步骤32:根据动态规划步骤,首先声明并初始化二维数组dp[i][j],其中dp[i][j]表示当最大可用空间为j时,从前i个命令中进行命令筛选,筛选出的命令集的最大价值;
步骤33:首先加入该命令序列中的第一条命令,给出各空间此时的最大价值,当前空间大小大于第一条命令的代码行数时,则更新当前空间的最大价值为第一条命令的价值;
步骤34:判断是否已经遍历过所有命令,遍历完成命令集则执行步骤97;
步骤35:加入该命令序列中第i条命令,给出各空间此时的最大价值,当前空间大小大于第i条命令的代码行数时,则更新当前空间的最大价值为第i条命令的价值;
步骤36:i++,执行步骤94;
步骤37:输出空间为C时最大的价值dp[N][C];
步骤38:根据动态规划算法回溯该二维数组dp[N][C],组成该命令集定制结果。
该物联网终端设备的自适应命令处理方法,其中步骤31中该可编程的总代码行数C的统计过程包括:
步骤311:统计各处理器命令集为空时的二进制基础程序占用空间大小,记为C1KB;
步骤312:统计各处理器命令集为满时的处理器二进制程序大小,记为C2KB;
步骤313:统计该命令序列的总行数;
步骤314:根据该命令序列的总行数、该二进制基础程序占用空间大小和该处理器二进制程序大小,计算该资源受限处理器中每一千字节所能容纳的平均代码行数;
步骤315:根据该平均代码行数和该资源受限处理器中可编程空间大小,生成该可编程的总代码行数C。
本发明还提供了一种物联网终端设备的自适应命令处理系统,其中包括:
所需命令上传模块,用于根据现有命令集设计包含多条命令的命令序列,并通过URL访问的形式将该命令序列发送至物联网终端设备,其中该物联网终端设备包括资源充足处理器与资源受限处理器;
命令频次统计模块,位于物联网终端设备中,用于物联网终端设备通过解析该命令序列制定能耗最低的分发策略,根据该分发策略更新该命令序列生成新命令序列,并统计各处理器使用每种命令的使用频次;
命令集定制模块,位于物联网终端设备中,用于根据该使用频次,执行命令集定制算法完成命令集定制,生成命令集定制结果;
命令集更新模块,用于调用云服务器根据该命令集定制结果生成相应命令解释集合,并将该命令解释集合网络更新到具体处理器。
该物联网终端设备的自适应命令处理系统,其中该所需命令上传模块还包括:若该现有命令集无法设计该命令序列,则统计完成该命令序列所还需要的命令,作为所需命令,并上传该所需命令的相关信息至云服务器;
该命令频次统计模块还包括,设备根据该新命令序列完成命令调度,各处理器接收并执行该新命令序列中相应命令;
命令集定制模块还包括,判断当前接收到的命令序列总数是否大于等于系统的预设值,则执行完毕,否则生成该命令集定制结果。
该物联网终端设备的自适应命令处理系统,其中该命令频次统计模块包括:
运行能耗计算模块:用于加载计算各命令所需的时间复杂度函数至该物联网终端设备,解析该命令序列并根据该时间复杂度函数,计算执行该命令序列中各命令所需的时间,作为运行时间,并根据该运行时间和处理器单位时间能耗,计算执行该命令序列中各命令所需的能耗,作为运行能耗;
有向无环图生成模块:用于根据该命令序列中各命令间的相互调用关系,生成该命令的有向无环图,其中该有向无环图内节点包含命令执行时间与命令执行能耗,该有向无环图内边包含跨处理器命令间通信的时间与能耗成本;
分发策略枚举模块:用于根据该有向无环图,逐一枚举该命令序列中各命令在各处理器上的分发策略;
命令自动分发模块:用于计算各分发策略所使用的能耗,并依次计算执行该分发策略所需完成时间,且将各分发策略的所需完成时间集合为预计完成时间集合,在该预计完成时间集合中,筛选出满足用户指定命令序列运行时间的分发策略,并从中挑选出能耗最低的分发策略。
该物联网终端设备的自适应命令处理系统,其中命令集定制模块中该命令集定制算法包括:
预备模块:用于输入该命令价值V[N]、可编程的总代码行数C、该命令序列中命令总数N、各命令代码行数W[N]至该资源充足处理器;
动态规划模块:用于根据动态规划法,声明并初始化二维数组dp[i][j],其中dp[i][j]表示当最大可用空间为j时,从前i个命令中进行命令筛选,筛选出的命令集的最大价值,首先加入该命令序列中的第一条命令,给出各空间此时的最大价值,当前空间大小大于第一条命令的代码行数时,则更新当前空间的最大价值为第一条命令的价值;
判断模块:用于判断是否已经遍历过所有命令,若遍历完成命令集则调用输出模块,否则调用价值更新模块;
价值更新模块:用于加入该命令序列中第i条命令,给出各空间此时的最大价值,当前空间大小大于第i条命令的代码行数时,则更新当前空间的最大价值为第i条命令的价值;
循环模块:i++,调用该第三判断模块;
输出模块:用于输出空间为C时最大的价值dp[N][C];
命令集定制结果生成模块:用于根据动态规划算法回溯该二维数组dp[N][C],组成该命令集定制结果。
该物联网终端设备的自适应命令处理系统,其中预备模块中该可编程的总代码行数C的确定包括:
空间统计模块:用于统计各处理器命令集为空时的二进制基础程序占用空间大小,记为C1KB,并统计各处理器命令集为满时的处理器二进制程序大小,记为C2KB,统计该命令序列的总行数;
平均代码行数生成模块:用于根据该命令序列的总行数、该二进制基础程序占用空间大小和该处理器二进制程序大小,计算该资源受限处理器中每一千字节所能容纳的平均代码行数;
可编程的总代码行数生成模块:用于根据该平均代码行数和该资源受限处理器中可编程空间大小,生成该可编程的总代码行数C。
本发明所具有的技术进步在于:
1:为了方便开发者使用异构多处理器节点进行物联网应用的开发,本发明包括一个运行在异构多处理器节点上的屏蔽节点间差异性的命令解释系统。为增加系统的可扩展性,开发者还可以通过云端服务器添加自定制的命令。
2:为了降低异构多处理器节点在运行物联网应用时的整体能耗,该系统设计了一种在满足时间要求的条件下进行最低能耗命令分发的方案,减小了系统运行的能耗,避免了用户编程中要考虑处理器间调度的问题。
3:异构节点中存在存储资源受限的处理器,不能装载完整的命令集程序,所以系统能耗最优的命令分发方案并不总是能满足,需要对命令进行重新分发,该系统为存储资源受限的处理器设计了一种基于用户使用命令习惯来定制命令集的方案,并设计了系统运行中自动用户适应的方案,大大优化了节点上存储资源的使用,降低了系统的整体能耗,系统也因此具有了通用性,可以在整体能耗低的条件下满足不同用户的不同需求。
本发明通过设计命令解释系统解决了异构多处理器节点编程难度大的问题,同时该命令解释系统支持各命令在多处理器间在满足应用执行时间的要求下进行能耗使用最低的自动分发。并且针对于节点中存在存储资源受限处理器的问题,本发明提出了一种处理器上命令解释模块定制的方案,本发明使用用户的历史使用命令习惯对系统进行了存储资源利用的优化,让系统可以满足不同用户的不同需求,提高了系统的通用性。
命令解释系统不仅屏蔽了处理器的底层接口,也提供了一个命令在多处理器间自动分发调度的方案,让用户编程时不需要考虑处理器的底层细节和处理器间的相互作用。该系统允许用户通过网络脚本编程的方式来对异构多处理器节点编程,解决了异构多处理器节点编程难度大的问题。同时本发明设计了一种根据用户的需求来充分利用节点上有限存储资源的方案,系统可以在用户使用过程中自动完成用户自适应地定制,无需人工干预。
附图说明
图1为本发明系统框架图;
图2为本发明系统具体实施图;
图3为本发明系统设计流程图;
图4为本发明命令集定制算法设计分析图;
图5为本发明命令集定制算法流程图;
图6为本发明处理器上可编程总代码行数计算的流程图;
图7为本发明命令自动分发流程图;
图8为本发明应用程序运行流程图。
具体实施方式
本发明提出了一种针对异构多处理器节点的根据用户习惯自适应的命令解释系统,通过在每个节点上开发有支持命令的程序屏蔽了处理器间的差异性,各处理器均可接受该命令解释系统的命令。同时该命令解释系统可以完成命令的自动分发,分发目标是在满足一定时间限制的条件下找出能耗最优的分发方案。另外由于物联网异构多处理器节点中存在一些处理器存储空间不足的问题,在这些节点上不能够装载有完整的命令解释模块,所以这些处理器中命令解释的命令集需要进行定制。本发明设计了一种定制算法可以利用用户在具体处理器上使用命令的习惯对命令进行选取,该算法统计用户在过去一段时间内命令的使用频度作为用户使用各命令的习惯数据,之后建立贝叶斯模型,在该模型的基础上该算法可以保证定制出最大的满足用户对命令使用需要的命令集。同时在系统运行中,当达到预先设定的命令解释重定制条件时,该算法会在系统中自动地执行,系统以执行结果作为参数从云端服务器请求拉取根据算法执行结果自动组合并编译出的新二进制代码,因此系统具有自适应地能力。本发明提出的一种物联网终端设备的自适应命令处理方法,其中包括:
步骤1:根据现有命令集设计包含多条命令的命令序列,并通过URL访问的形式将该命令序列发送至物联网终端设备,其中该物联网终端设备包括资源充足处理器与资源受限处理器;
步骤2:物联网终端设备通过解析该命令序列制定能耗最低的分发策略,根据该分发策略更新该命令序列生成新命令序列,并统计各处理器使用每种命令的使用频次;
步骤3:该物联网终端设备根据该使用频次,执行命令集定制算法完成命令集定制,生成命令集定制结果;
步骤4:云服务器根据该命令集定制结果生成相应命令解释集合,并将该命令解释集合网络更新到具体处理器。
该物联网终端设备的自适应命令处理方法,其中该步骤1还包括,若该现有命令集无法设计该命令序列,则统计完成该命令序列所还需要的命令,作为所需命令,并上传该所需命令的相关信息至云服务器;
该步骤2还包括,设备根据该新命令序列完成命令调度,各处理器接收并执行该新命令序列中相应命令;
该步骤3还包括,判断当前接收到的命令序列总数是否大于等于系统的预设值,若未达到,则执行完毕,否则生成该命令集定制结果。
该物联网终端设备的自适应命令处理方法,其中该步骤2包括:
步骤21:加载计算各命令所需的时间复杂度函数至该物联网终端设备;
步骤22:解析该命令序列,根据该时间复杂度函数,计算执行该命令序列中各命令所需的时间,作为运行时间,并根据该运行时间和处理器单位时间能耗,计算执行该命令序列中各命令所需的能耗,作为运行能耗;
步骤23:根据该命令序列中各命令间的相互调用关系,生成该命令有向无环图,其中该有向无环图内节点包含命令执行时间与命令执行能耗,该有向无环图内边包含跨处理器命令间通信的时间与能耗成本;
步骤24:根据该有向无环图,逐一枚举该命令序列中各命令在各处理器上的分发策略;
步骤25:计算各分发策略所使用的能耗,并依次计算执行该分发策略所需完成时间,且将各分发策略的所需完成时间集合为预计完成时间集合;
步骤26:在该预计完成时间集合中,筛选出满足用户指定命令序列运行时间的分发策略,并从中挑选出能耗最低的分发策略。
该物联网终端设备的自适应命令处理方法,其中步骤3中该命令集定制算法包括:
步骤31:输入该命令价值V[N]、可编程的总代码行数C、该命令序列中命令总数N、各命令代码行数W[N]至该资源充足处理器;
步骤32:根据动态规划步骤,首先声明并初始化二维数组dp[i][j],其中dp[i][j]表示当最大可用空间为j时,从前i个命令中进行命令筛选,筛选出的命令集的最大价值;
步骤33:首先加入该命令序列中的第一条命令,给出各空间此时的最大价值,当前空间大小大于第一条命令的代码行数时,则更新当前空间的最大价值为第一条命令的价值;
步骤34:判断是否已经遍历过所有命令,遍历完成命令集则执行步骤97;
步骤35:加入该命令序列中第i条命令,给出各空间此时的最大价值,当前空间大小大于第i条命令的代码行数时,则更新当前空间的最大价值为第i条命令的价值;
步骤36:i++,执行步骤94;
步骤37:输出空间为C时最大的价值dp[N][C];
步骤38:根据动态规划算法回溯该二维数组dp[N][C],组成该命令集定制结果。
该物联网终端设备的自适应命令处理方法,其中步骤31中该可编程的总代码行数C的统计过程包括:
步骤311:统计各处理器命令集为空时的二进制基础程序占用空间大小,记为C1KB;
步骤312:统计各处理器命令集为满时的处理器二进制程序大小,记为C2KB;
步骤313:统计该命令序列的总行数;
步骤314:根据该命令序列的总行数、该二进制基础程序占用空间大小和该处理器二进制程序大小,计算该资源受限处理器中每一千字节所能容纳的平均代码行数;
步骤315:根据该平均代码行数和该资源受限处理器中可编程空间大小,生成该可编程的总代码行数C。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
本发明提出了一个运行在异构多处理器节点上的能够进行自动命令分发的具有用户自适应能力的命令解释系统。图1是系统的具体实施框架图,可以对照说明。该系统主要包含三部分,命令解释部分,命令解释模块用户需求自适应部分以及云端服务器部分。命令解释部分包含两层:(1)命令统一解析并自动分发的部分,具体说明见下文;(2)各处理器上编写的各命令解释模块,通过具体处理器的语言开发出具有相应功能的命令,用于各处理器上支持这些命令的执行。命令解释模块的用户自适应部分,包含了三个模块:(1)保存用户历史命令使用的记录部分,发明以服务器中日志系统的方式保存;(2)根据用户使用命令统计进行命令集定制的算法,下文中对算法具体进行说明;(3)命令解释模块重组方案。云端服务器部分主要包含三个模块:(1)命令管理的接口设计;(2)数据库设计,节点采集的感知数据库以及存储命令对应程序的程序库;(3)重新组合生成新的命令解释模块的程序,程序根据上文中命令集定制算法结果(拼接的程序号)进行程序段的拼接,组合出新的命令解释模块源码,之后通过脚本编译出二进制代码并远程将新的程序烧录到处理器上。
根据本发明的系统,提出了一种新的在异构多处理器节点上开发运行物联网应用的方式:
步骤S1:根据命令解释系统提供的命令集设计包含多条命令的命令序列,若现有命令集满足设计命令序列,则执行步骤S3,否则统计完成该命令序列所还需要的命令,作为所需命令,并执行步骤S2,具体为根据命令解释系统提供的命令集设计包含多条命令的应用程序(命令序列),若已有命令集满足设计程序需要,进入步骤S3,否则统计完成该命令序列所还需要的命令,作为所需命令,进入步骤S2,其中该应用程序的形式为以异构节点为访问地址的URL序列,URL序列中的后缀即为对应应用程序的命令序列;
步骤S2:通过上传该所需命令的相关信息(程序段、程序名、程序行数以及程序时间复杂度计算函数)至云服务器,云服务器返回该所需命令的命令序号;
步骤S3:访问以该命令序列为后缀且设备IP为地址的URL,执行该应用程序,将该命令序列发送至资源充足处理器,具体为在浏览器中访问该URL序列,采用URL序列的优点在于,该命令序列的形式为以异构节点为访问地址,以命令序列为后缀的URL序列,该应用开发形式类似于nodejs的npm工具,实现了开发资源在云端的聚集,用户通过简单的函数式编程即可完成开发,极大减少了用户开发的代码量;
步骤S4:设备接收并解析该命令序列,并将该命令自动分发至各处理器,其中该设备包括资源充足处理器以及资源受限处理器,具体为资源充足处理器接受到该URL序列后进行解析,生成该命令序列的命令有向无环图,并根据该命令有向无环图确定命令的自动分发结果,当命令不存在时,处理器向云端进行命令请求,云端存在该命令段则下载,否则报错;
步骤S5:统计用户在各处理器上使用每种命令使用频次,作为命令价值,同时资源充足处理器根据该自动分发结果对日志系统进行更新,主要用到的更新内容包括更新日志系统中的频次数据,该频次数据以键值对的形式保存;
步骤S6:根据该命令使用频次对该命令序列进行更新,生成新命令序列,设备根据新命令序列完成命令调度,具体为根据该自动分发结果对该命令序列中各命令进行标记,生成更新命令序列,以明确各命令的执行处理器,资源受限处理器根据该标记对各命令进行调度;其中该新命令序列和该命令序列的区别在于,该新命令序列是根据能耗最低的分发策略整理完成的,根据该最低的分发策略为该新命令序列中每个命令分配一个目的处理器,所以在该新命令序列中每个命令会带有一个目的处理器地址,而该该命令序列中每个命令是不具有目的处理器地址的。
步骤S7:各处理器接收并执行该新命令序列中相应命令;
步骤S8:资源充足的处理器判断当前日志系统中的记录数是否达到更新命令解释模块的条件,其中日志系统中的记录数指当前系统接收到的命令序列总数,即判断系统接收到的命令序列总数是否达到系统的预设值,若未达到,则执行完毕,否则向下执行步骤S9;
步骤S9:资源充足处理器根据该命令使用频次,执行命令集定制算法,完成资源受限处理器上的命令集定制,具体为资源充足处理器以日志系统中记录的各命令使用频次(命令价值)为输入,执行命令集定制算法,完成资源受限处理器上的命令集定制,生成包含命令列表的命令集定制结果,即该命令集定制结果包含命令集中每个命令的索引,算法设计分析以及具体流程见下文;
步骤S10:云服务器根据该命令集定制结果生成新命令集,该新命令集位于相应处理器的命令解释模块中,并网络更新到具体处理器。以定制结果作为参数向云服务器请求新的定制的命令解释模块。云服务器根据定制结果组成生成新的命令解释模块,并通过脚本远程烧录到具体处理器;
其中,步骤S4包括:
步骤S41:首先在资源充足处理器上装入有计算各命令的时间复杂度函数的程序;
步骤S42:该资源充足处理器包含命令分发模块,用于解析该命令序列,根据该时间复杂度函数,计算执行该命令序列中各命令所需的时间,作为运行时间,并根据该运行时间和处理器单位时间能耗,计算执行该命令序列中各命令所需的能耗,作为运行能耗,并输入用户指定的应用程序的执行时间要求,其中计算各处理器上执行各命令的能耗(处理器单位时间能耗*命令执行时间);
步骤S43:根据该命令序列中各命令间的相互调用关系,生成命令的有向无环图,其中该有向无环图内节点包含命令执行时间与命令执行能耗两个属性,该有向无环图内边包含跨处理器命令间通信的时间与能耗成本两个属性;
步骤S44:根据该有向无环图,逐一枚举该命令序列中各命令在各处理器上的分发策略;
步骤S45:计算各分发策略所使用的能耗,并依次计算执行该分发策略所需完成时间,且将各分发策略的所需完成时间集合为预计完成时间集合;
步骤S46:在该预计完成时间集合中,筛选出满足用户指定命令序列运行时间的分发策略,并从中挑选出能耗最低的分发策略,作为分发结果。
其中,步骤S9中命令集定制算法执行步骤S:
步骤S91:输入总的可编程空间的大小(以代码行数为标量)C、命令总数N、各命令价值(频次数据)V[N]、各命令成本W[N](程序代码行数)至该资源充足处理器;
步骤S92:算法初始化,该问题为动态规划问题,具体为根据动态规划步骤S,首先声明并初始化二维数组dp[i][j],其中dp[i][j]表示当最大可用空间为j时,从前i个命令中进行命令筛选,筛选出的命令集的最大价值,要计算出可编程空间为C时的可装入命令最大价值需要依次计算出空间为0到C时的最大值(间内命令总价值的最大值),保存结果数组为二维数组dp[N][C],初始化数组中各值为0;
步骤S93:首先加入该命令序列中的第一条命令,给出各空间此时的最大价值,当前空间大小大于第一条命令的代码行数时,则更新当前空间的最大价值为第一条命令的价值;
步骤S94:判断是否已经遍历过所有指令,遍历完成命令集(即i>=N时)则进入步骤S97;
步骤S95:加入该命令序列中第i条命令,给出各空间此时的最大价值,当前空间大小大于第i条命令的代码行数时,则更新当前空间的最大价值为第i条命令的价值,即加入第i条命令,给出各个不同大小空间时,可装入的最大值,此时有dp[i][C]为dp[i-1][C]与dp[i-1][C-W[i]]+V[i]的较大者;
步骤S96:i++,转到步骤S94;
步骤S97:输出空间为C时最大的价值,即dp[N][C];
步骤S98:根据动态规划算法回溯该二维数组dp[N][C],具体为通过从后向前遍历各命令,判断dp[i][j]是否等于dp[i-1][j-W[i]]+V[i],若相等,则将命令i加入该定制命令集,否则j--,向前回溯dp[i][j-1],依次回溯挑选出各命令,并将挑选出的命令,组成该命令集定制结果;
步骤S99:输出该命令集定制结果。
其中,步骤S91中的可编程空间的代码行数计算如下:
步骤S911:计算出处理器不包含功能函数时(即命令集为空时)的二进制基础程序占用空间的大小C1KB;
步骤S912:统计装载有所有命令函数(即命令集为满时)的处理器二进制程序大小C2KB;
步骤S913:统计命令函数的总行数LS;
步骤S914:根据该命令序列的总行数、该二进制基础程序占用空间大小和该处理器二进制程序大小,计算该资源受限处理器中每一千字节所能容纳的平均代码行数,具体为LS/(C2-C1)即为每KB可装入的平均代码行数LC;
步骤S915:根据该平均代码行数和该资源受限处理器中可编程空间大小,生成该可编程的总代码行数C,具体为将LC乘以可编程空间大小做为该可编程的总代码行数C。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
图1为本发明的系统框架图。该系统主要包含三大模块,命令解释模块(101),用户需求自适应模块(102)以及云端服务器模块(103)。
命令解释模块:本部分包含两个模块:(1)命令分发模块,用于接收命令序列并将其分发给全功能命令解释模块和/或自定制命令解释模块,具体分发方式见下文;(2)各处理器上的命令解释执行模块,用于保证命令在各处理器上的兼容性。命令解释模块用于,完成应用程序(命令序列)的自动分发与具体解释执行,该系统一共支持了13条命令。
用户需求自适应模块:本部分包含三个模块(1)进行处理器上使用命令统计的日志系统;(2)根据用户使用命令统计进行命令集定制的算法;(3)命令解释模块的自动化更新方案。用户需求自适应模块,用于完成用户使用命令的统计,之后根据用户使用命令的不同情况进行系统自动适应,该自动适应的具体方法在发明内容一种新的在异构多处理器节点上开发运行物联网应用的方式中进行了具体说明,详细参见第9到11步骤S。
云端服务器模块:本部分包含三个模块(1)命令管理的接口模块,设计;(2)数据库模块,包括节点采集的感知数据库以及存储命令对应程序的程序库,用于存储从各节点采集的感知数据以及与各命令相对应的程序;(3)命令解释模块代码组合模块,用于重新组合生成新的命令解释模块的程序,该程序根据上文中命令集定制算法结果(拼接的程序号)进行程序段的拼接,组合出新的命令解释模块源码,之后通过脚本编译出二进制代码并远程将新的程序烧录到处理器上。
图2为本发明的具体实施系统框架图。该实施方案使用了Arduino Yun节点作为异构多处理器节点。
201为命令解释模块:在具体实施系统中,命令分发模块装载在Atheros AR9331处理器(资源充足处理器)上;ArduinoYun包含两个处理器,各自分别属于资源受限处理器和资源充足处理器,其中该资源受限处理器包含自定制命令解释模块,该资源充足处理器包含全功能命令解释模块,用于解释该命令分发模块所发送的命令,并且属于全功能模块,即基于C++语言以解析执行所有命令;由于存储空间受限,Atmega32U4处理器(资源受限处理器)上的命令解释模块为自定制命令解释模块,用于解释该命令分发模块所发送的命令,属于非全功能模块,即基于C语言以解析执行部分命令,即不能解释所有的命令,使用C语言实现。
202为用户需求自适应模块:该用户需求自适应模块用于基于统计AtherosAR9331处理器日志系统中用户使用命令的频次数据,并根据该频次数据和命令集定制算法来实现Atmega32U4处理器上的命令解释模块的自适应。其中,用户使用命令的频次数据基于键值对形式存储;该命令集定制算法基于背包算法进行设计,算法具体分析与实现见下文;自适应过程需要对该自定制命令解释模块和该全功能命令解释模块进行更新(文中该该自定制命令解释模块和该全功能命令解释模块一起简称为命令解释模块),命令解释模块更新包括二进制代码的重生成,以及代码远程烧录到处理器两部分,系统使用JAVA程序完成命令解释模块源代码重组,通过脚本进行编译和Arduino YUN的IP烧录。
203是云端服务器模块,基于Spring框架进行开发,数据库使用MySQL数据库,其主要包含的功能有,命令与对应程序的上传,支持命令程序段的下载以及根据定制的结果完成命令解释模块代码的更新。
图3为本实施系统的设计流程图:
步骤S301:针对Atheros AR9331和Atmega32U4两个处理器分别开发命令解释模块,用于具体执行各命令,Atmega32U4上的程序使用C语言完成,Atheros AR9331使用C++语言开发完成;
步骤S302:在Atheros AR9331处理器上使用JS语言开发总命令解析模块,用于建立任务的有向无环图;
步骤S303:在Atheros AR9331处理器上开发命令分发模块,用于生成命令分发方案,并根据该生成命令分发方案中最优分发结果将命令有向无环图中的各命令分发到对应的处理器上;
步骤S304:编写应用程序测试,测试系统运行情况;
步骤S305:使用Spring+MySQL搭建云端服务器,用于支持命令集扩充、管理以及命令解释模块的更新等;
步骤S306:根据日志系统中用户使用命令情况来设计定制Atmega32U4上命令解释模块的算法,作为定制算法,以及设计系统运行中自动化更新的方案,用于系统运行中根据用户具体使用命令情况完成系统自适应。
其中步骤S306中提及的定制算法的设计分析图如图4所示:
步骤S401:Atmega32U4上的可编程空间受限,在本系统中仅有16KB可以用于编程,无法烧录完整的命令解释模块;
步骤S402:按照上文中提到的命令分发方案完成的最优分发结果分发时,应该分发到Atmega32U4上的命令由于命令解释模块的不完整导致不可执行,需要重新分发到Atheros AR933处理器上;
步骤S403:因此,Atmega32U4处理器上命令解释模块需要进行优化定制;
步骤S404:在有限的可编程空间条件下,从命令集中选择一些命令,将其实现代码装入到Flash(闪存)空间中,最大化处理器Flash的使用价值,该问题可建模为背包问题,本发明将用户使用命令的频度统计建模为命令的价值,将命令占用空间的大小建模为命令成本;
步骤S405:算法目标是在Atmega32U4有限的可编程空间下,尽可能选取能最多满足用户使用需求的命令集。
其中步骤S306中提及的定制算法流程如图5所示,具体执行步骤S如下:
步骤S501:以代码行数为标量输入总的可编程空间的大小C、命令总数N、各命令价值(频次)V[N]、各命令成本W[N](程序代码行数);
步骤S502:算法初始化,该问题为动态规划问题,要计算出可编程空间为C时的可装入命令最大价值需要依次计算出空间为0到C时的最大值,保存结果数组为二维数组dp[N][C],初始化数组中各值为0;
步骤S503:首先加入第一条命令,给出各空间此时的最大价值,明显空间大小大于命令的代码行数时,则更新最大价值为命令的价值;
步骤S504:判断是否已经遍历过所有指令,遍历完成命令集(即i>=n时)则进入步骤S107;
步骤S505:加入第i条命令,给出各个不同大小空间时,可装入的最大值,此时有dp[i][C]为dp[i-1][C]与dp[i-1][C-W[i]]+V[i]的较大者;
步骤S506:i++,转到步骤S104;
步骤S507:输出空间为C时最大的价值,即dp[N][C];
步骤S508:通过从后向前遍历各命令,判断dp[i][j]是否等于dp[i-1][j-W[i]]+V[i],如果相等,将命令加入命令集,依次回溯依次找出各命令;
步骤S509:输出命令集结果。
其中,步骤S501中的可编程总代码行数计算流程如图6所示,步骤S如下:
步骤S601:计算出处理器不包含功能函数时的二进制基础程序占用空间的大小C1KB;
步骤S602:统计装载有所有命令函数的处理器二进制程序大小C2KB;
步骤S603:统计命令函数的总行数LS;
步骤S604:则LS/(C2-C1)即为每KB可装入的平均代码行数LC;
步骤S605:将LC*可编程空间大小做为可编程的总代码行数;
图7为系统中命令的自动分发流程图:
步骤S701:首先在进行分发的处理器上装入有计算各命令的时间复杂度函数的程序;
步骤S702:命令分发模块中包含有各处理器间通信的能耗,各处理器的单位时间能耗;步骤S703:输入应用程序的执行时间要求;
步骤S704:根据计算时间复杂度的函数计算出各处理器上执行各命令的时间复杂度,之后除以处理器的频率,得到命令在处理器上执行的时间;
步骤S705:计算各处理器上执行各命令的能耗(处理器单位时间能耗*命令执行时间);
步骤S706:根据应用程序中命令的相互调用关系,生成命令的有向无环图,其中节点的权重为命令的能耗,边的权重为命令的执行时间;
步骤S707:枚举出所有的各命令在各处理器上的分发情况;
步骤S708:计算各种分发情况的能耗(各命令在对应处理器上的能耗相加,以及转换处理器时的通信成本),使用Dijkstra计算各种分发结果的最早完成时间;
步骤S709:输出满足时间要求的能耗最低分发结果。
图8为一个应用实例在系统中运行的步骤S,过程以一个具体应用进行举例。
步骤S801:系统应用程序在浏览器中以访问地址的形式执行,“http://192.168.191.2/arduino/collection:10,10000,data1;compress:&1,data2;network:data/temp,&2”,该应用从引脚10读取10000次数据,并将数据存储到data1文件中。之后使用压缩命令将data1文件中的内容进行压缩,压缩到data2中,最后通过网络将数据传输到云服务器,应用中192.168.191.2为节点的IP地址。
步骤S802:Atheros AR9331处理器接收解析命令序列并进行命令分发。节点接受到该应用的脚本命令序列后,通过JS代码完成命令解析。同时,命令间的引用关系通过“&”符号建立,根据此,本发明通过链表指针的方式建立应用的命令有向无环图。发明使用Dijkstra算法测试每个分配的最短完成时间,寻找在满足时间要求的条件下消耗最小的分配方案。之后对URL进行更新,加入分配的标记,比如本例中更新为“http://192.168.191.2/arduino/1-collection:10,10000,data1;2-compress:&1,data2;2-network:data/temp,&2”。
步骤S803:在Atheros AR9331处理器中保存分配结果“[collection:1,compress:2,network:2]”,用分配结果更新Atheros AR9331处理器中以键值对保存的命令的频度,比如该实例中“maps[1][“collection”]++,maps[2][“compress”]++,maps[2][“network”]++”;其中第一个“[]”里数字表示处理器的序号,第二个“[]”表示命令名称。
步骤S804:更新后的URL传递到Atemega32U4处理器上并完成调度执行。Atemega32U4处理器通过串口通信发送特定命令的形式来调度Atheros AR9331处理器上的程序。
步骤S805:各命令按照命令的有向无环图一次分发到具体处理器上执行。
步骤S806:判断当前日志系统中的记录数是否达到需要对命令解释模块更新的数量,若未达到数量,则执行完毕;否则向下执行。
步骤S807:Atheros AR9331处理器会根据存储的命令在处理器上使用的频度运行命令集定制算法,完成命令集的定制,进入步骤S。
步骤S808:之后以定制结果作为参数向云服务器请求新的定制的命令解释模块。云服务器根据定制结果通过预先写入的Java模块完成源代码的组合,以及通过脚本进行自动编译以及IP烧录给Atemega32U4处理器。
以下为与上述方法实施例对应的系统实施例,本实施系统可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施系统中依然有效,为了减少重复,这里不再赘述。相应地,本实施系统中提到的相关技术细节也可应用在上述实施方式中。
本发明还提供了一种物联网终端设备的自适应命令处理系统,其中包括:
所需命令上传模块,用于根据现有命令集设计包含多条命令的命令序列,并通过URL访问的形式将该命令序列发送至物联网终端设备,其中该物联网终端设备包括资源充足处理器与资源受限处理器;
命令频次统计模块,位于物联网终端设备中,用于物联网终端设备通过解析该命令序列制定能耗最低的分发策略,根据该分发策略更新该命令序列生成新命令序列,并统计各处理器使用每种命令的使用频次;
命令集定制模块,位于物联网终端设备中,用于根据该使用频次,执行命令集定制算法完成命令集定制,生成命令集定制结果;
命令集更新模块,用于调用云服务器根据该命令集定制结果生成相应命令解释集合,并将该命令解释集合网络更新到具体处理器。
该物联网终端设备的自适应命令处理系统,其中该所需命令上传模块还包括:若该现有命令集无法设计该命令序列,则统计完成该命令序列所还需要的命令,作为所需命令,并上传该所需命令的相关信息至云服务器;
该命令频次统计模块还包括,设备根据该新命令序列完成命令调度,各处理器接收并执行该新命令序列中相应命令;
命令集定制模块还包括,判断当前接收到的命令序列总数是否大于等于系统的预设值,则执行完毕,否则生成该命令集定制结果。
该物联网终端设备的自适应命令处理系统,其中该命令频次统计模块包括:
运行能耗计算模块:用于加载计算各命令所需的时间复杂度函数至该物联网终端设备,解析该命令序列并根据该时间复杂度函数,计算执行该命令序列中各命令所需的时间,作为运行时间,并根据该运行时间和处理器单位时间能耗,计算执行该命令序列中各命令所需的能耗,作为运行能耗;
有向无环图生成模块:用于根据该命令序列中各命令间的相互调用关系,生成该命令的有向无环图,其中该有向无环图内节点包含命令执行时间与命令执行能耗,该有向无环图内边包含跨处理器命令间通信的时间与能耗成本;
分发策略枚举模块:用于根据该有向无环图,逐一枚举该命令序列中各命令在各处理器上的分发策略;
命令自动分发模块:用于计算各分发策略所使用的能耗,并依次计算执行该分发策略所需完成时间,且将各分发策略的所需完成时间集合为预计完成时间集合,在该预计完成时间集合中,筛选出满足用户指定命令序列运行时间的分发策略,并从中挑选出能耗最低的分发策略。
该物联网终端设备的自适应命令处理系统,其中命令集定制模块中该命令集定制算法包括:
预备模块:用于输入该命令价值V[N]、可编程的总代码行数C、该命令序列中命令总数N、各命令代码行数W[N]至该资源充足处理器;
动态规划模块:用于根据动态规划法,声明并初始化二维数组dp[i][j],其中dp[i][j]表示当最大可用空间为j时,从前i个命令中进行命令筛选,筛选出的命令集的最大价值,首先加入该命令序列中的第一条命令,给出各空间此时的最大价值,当前空间大小大于第一条命令的代码行数时,则更新当前空间的最大价值为第一条命令的价值;
判断模块:用于判断是否已经遍历过所有命令,若遍历完成命令集则调用输出模块,否则调用价值更新模块;
价值更新模块:用于加入该命令序列中第i条命令,给出各空间此时的最大价值,当前空间大小大于第i条命令的代码行数时,则更新当前空间的最大价值为第i条命令的价值;
循环模块:i++,调用该第三判断模块;
输出模块:用于输出空间为C时最大的价值dp[N][C];
命令集定制结果生成模块:用于根据动态规划算法回溯该二维数组dp[N][C],组成该命令集定制结果。
该物联网终端设备的自适应命令处理系统,其中预备模块中该可编程的总代码行数C的确定包括:
空间统计模块:用于统计各处理器命令集为空时的二进制基础程序占用空间大小,记为C1KB,并统计各处理器命令集为满时的处理器二进制程序大小,记为C2KB,统计该命令序列的总行数;
平均代码行数生成模块:用于根据该命令序列的总行数、该二进制基础程序占用空间大小和该处理器二进制程序大小,计算该资源受限处理器中每一千字节所能容纳的平均代码行数;
可编程的总代码行数生成模块:用于根据该平均代码行数和该资源受限处理器中可编程空间大小,生成该可编程的总代码行数C。
虽然本发明以上述实施例公开,但具体实施例仅用以解释本发明,并不用于限定本发明,任何本技术领域技术人员,在不脱离本发明的构思和范围内,可作一些的变更和完善,故本发明的权利保护范围以权利要求书为准。
Claims (8)
1.一种物联网终端设备的自适应命令处理方法,其特征在于,包括:
步骤1:根据现有命令集设计包含多条命令的命令序列,并通过URL访问的形式将该命令序列发送至物联网终端设备,其中该物联网终端设备包括由资源充足处理器与资源受限处理器组成的异构多处理器节点;
步骤2:物联网终端设备通过解析该命令序列制定能耗最低的分发策略,根据该分发策略更新该命令序列生成新命令序列,并统计各处理器使用每种命令的使用频次;
步骤3:该物联网终端设备根据该使用频次,执行命令集定制算法完成命令集定制,生成命令集定制结果;
步骤4:云服务器根据该命令集定制结果生成相应命令解释集合,并将该命令解释集合网络更新到具体处理器;
其中步骤3中该命令集定制算法包括:
步骤31:输入该命令价值V[N]、可编程的总代码行数C、该命令序列中命令总数N、各命令代码行数W[N]至该资源充足处理器;
步骤32:根据动态规划步骤,首先声明并初始化二维数组dp[i][j],其中dp[i][j]表示当最大可用空间为j时,从前i个命令中进行命令筛选,筛选出的命令集的最大价值;
步骤33:首先加入该命令序列中的第一条命令,给出各空间此时的最大价值,当前空间大小大于第一条命令的代码行数时,则更新当前空间的最大价值为第一条命令的价值;
步骤34:判断是否已经遍历过所有命令,遍历完成命令集则执行步骤37;
步骤35:加入该命令序列中第i条命令,给出各空间此时的最大价值,当前空间大小大于第i条命令的代码行数时,则更新当前空间的最大价值为第i条命令的价值;
步骤36:i++,执行步骤34;
步骤37:输出空间为C时最大的价值dp[N][C];
步骤38:根据动态规划算法回溯该二维数组dp[N][C],组成该命令集定制结果。
2.如权利要求1所述的物联网终端设备的自适应命令处理方法,其特征在于,该步骤1还包括,若该现有命令集无法设计该命令序列,则统计完成该命令序列所还需要的命令,作为所需命令,并上传该所需命令的相关信息至云服务器;
该步骤2还包括,设备根据该新命令序列完成命令调度,各处理器接收并执行该新命令序列中相应命令;
该步骤3还包括,判断当前接收到的命令序列总数是否大于等于系统的预设值,若未达到,则执行完毕,否则生成该命令集定制结果。
3.如权利要求1所述的物联网终端设备的自适应命令处理方法,其特征在于,该步骤2包括:
步骤21:加载计算各命令所需的时间复杂度函数至该物联网终端设备;
步骤22:解析该命令序列,根据该时间复杂度函数,计算执行该命令序列中各命令所需的时间,作为运行时间,并根据该运行时间和处理器单位时间能耗,计算执行该命令序列中各命令所需的能耗,作为运行能耗;
步骤23:根据该命令序列中各命令间的相互调用关系,生成该命令有向无环图,其中该有向无环图内节点包含命令执行时间与命令执行能耗,该有向无环图内边包含跨处理器命令间通信的时间与能耗成本;
步骤24:根据该有向无环图,逐一枚举该命令序列中各命令在各处理器上的分发策略;
步骤25:计算各分发策略所使用的能耗,并依次计算执行该分发策略所需完成时间,且将各分发策略的所需完成时间集合为预计完成时间集合;
步骤26:在该预计完成时间集合中,筛选出满足用户指定命令序列运行时间的分发策略,并从中挑选出能耗最低的分发策略。
4.如权利要求1所述的物联网终端设备的自适应命令处理方法,其特征在于,步骤31中该可编程的总代码行数C的统计过程包括:
步骤311:统计各处理器命令集为空时的二进制基础程序占用空间大小,记为C1 KB;
步骤312:统计各处理器命令集为满时的处理器二进制程序大小,记为C2 KB;
步骤313:统计该命令序列的总行数;
步骤314:根据该命令序列的总行数、该二进制基础程序占用空间大小和该处理器二进制程序大小,计算该资源受限处理器中每一千字节所能容纳的平均代码行数;
步骤315:根据该平均代码行数和该资源受限处理器中可编程空间大小,生成该可编程的总代码行数C。
5.一种物联网终端设备的自适应命令处理系统,其特征在于,包括:
所需命令上传模块,用于根据现有命令集设计包含多条命令的命令序列,并通过URL访问的形式将该命令序列发送至物联网终端设备,其中该物联网终端设备包括由资源充足处理器与资源受限处理器组成的异构多处理器节点;
命令频次统计模块,位于物联网终端设备中,用于物联网终端设备通过解析该命令序列制定能耗最低的分发策略,根据该分发策略更新该命令序列生成新命令序列,并统计各处理器使用每种命令的使用频次;
命令集定制模块,位于物联网终端设备中,用于根据该使用频次,执行命令集定制算法完成命令集定制,生成命令集定制结果;
命令集更新模块,用于调用云服务器根据该命令集定制结果生成相应命令解释集合,并将该命令解释集合网络更新到具体处理器;
命令集定制模块中该命令集定制算法包括:
预备模块:用于输入该命令价值V[N]、可编程的总代码行数C、该命令序列中命令总数N、各命令代码行数W[N]至该资源充足处理器;
动态规划模块:用于根据动态规划法,声明并初始化二维数组dp[i][j],其中dp[i][j]表示当最大可用空间为j时,从前i个命令中进行命令筛选,筛选出的命令集的最大价值,首先加入该命令序列中的第一条命令,给出各空间此时的最大价值,当前空间大小大于第一条命令的代码行数时,则更新当前空间的最大价值为第一条命令的价值;
判断模块:用于判断是否已经遍历过所有命令,若遍历完成命令集则调用输出模块,否则调用价值更新模块;
价值更新模块:用于加入该命令序列中第i条命令,给出各空间此时的最大价值,当前空间大小大于第i条命令的代码行数时,则更新当前空间的最大价值为第i条命令的价值;
循环模块:i++,调用该判断模块;
输出模块:用于输出空间为C时最大的价值dp[N][C];
命令集定制结果生成模块:用于根据动态规划算法回溯该二维数组dp[N][C],组成该命令集定制结果。
6.如权利要求5所述的物联网终端设备的自适应命令处理系统,其特征在于,该所需命令上传模块还包括:若该现有命令集无法设计该命令序列,则统计完成该命令序列所还需要的命令,作为所需命令,并上传该所需命令的相关信息至云服务器;
该命令频次统计模块还包括,设备根据该新命令序列完成命令调度,各处理器接收并执行该新命令序列中相应命令;
命令集定制模块还包括,判断当前接收到的命令序列总数是否大于等于系统的预设值,则执行完毕,否则生成该命令集定制结果。
7.如权利要求5所述的物联网终端设备的自适应命令处理系统,其特征在于,该命令频次统计模块包括:
运行能耗计算模块:用于加载计算各命令所需的时间复杂度函数至该物联网终端设备,解析该命令序列并根据该时间复杂度函数,计算执行该命令序列中各命令所需的时间,作为运行时间,并根据该运行时间和处理器单位时间能耗,计算执行该命令序列中各命令所需的能耗,作为运行能耗;
有向无环图生成模块:用于根据该命令序列中各命令间的相互调用关系,生成该命令的有向无环图,其中该有向无环图内节点包含命令执行时间与命令执行能耗,该有向无环图内边包含跨处理器命令间通信的时间与能耗成本;
分发策略枚举模块:用于根据该有向无环图,逐一枚举该命令序列中各命令在各处理器上的分发策略;
命令自动分发模块:用于计算各分发策略所使用的能耗,并依次计算执行该分发策略所需完成时间,且将各分发策略的所需完成时间集合为预计完成时间集合,在该预计完成时间集合中,筛选出满足用户指定命令序列运行时间的分发策略,并从中挑选出能耗最低的分发策略。
8.如权利要求5所述的物联网终端设备的自适应命令处理系统,其特征在于,预备模块中该可编程的总代码行数C的确定包括:
空间统计模块:用于统计各处理器命令集为空时的二进制基础程序占用空间大小,记为C1 KB,并统计各处理器命令集为满时的处理器二进制程序大小,记为C2 KB,统计该命令序列的总行数;
平均代码行数生成模块:用于根据该命令序列的总行数、该二进制基础程序占用空间大小和该处理器二进制程序大小,计算该资源受限处理器中每一千字节所能容纳的平均代码行数;
可编程的总代码行数生成模块:用于根据该平均代码行数和该资源受限处理器中可编程空间大小,生成该可编程的总代码行数C。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710367697.XA CN107302562B (zh) | 2017-05-23 | 2017-05-23 | 一种物联网终端设备的自适应命令处理系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710367697.XA CN107302562B (zh) | 2017-05-23 | 2017-05-23 | 一种物联网终端设备的自适应命令处理系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107302562A CN107302562A (zh) | 2017-10-27 |
CN107302562B true CN107302562B (zh) | 2019-12-03 |
Family
ID=60137324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710367697.XA Active CN107302562B (zh) | 2017-05-23 | 2017-05-23 | 一种物联网终端设备的自适应命令处理系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107302562B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595166B (zh) * | 2018-05-09 | 2020-12-11 | 中国科学院计算技术研究所 | 一种分布式物联网应用执行引擎实现方法及系统 |
CN110191148B (zh) * | 2019-03-29 | 2020-11-03 | 中国科学院计算技术研究所 | 一种面向边缘计算的统计函数分布式执行方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360246A (zh) * | 2011-10-14 | 2012-02-22 | 武汉理工大学 | 一种异构分布式系统中基于自适应阈值的节能调度方法 |
CN103019903A (zh) * | 2013-01-18 | 2013-04-03 | 哈尔滨工业大学 | 嵌入式设备能耗仿真评测系统 |
CN103914345A (zh) * | 2013-12-16 | 2014-07-09 | 西北工业大学 | 一种面向能量收集系统的嵌入式操作系统任务调度方法 |
CN104102532A (zh) * | 2013-04-15 | 2014-10-15 | 同济大学 | 一种异构集群中基于低能耗的科学工作流调度方法 |
CN105988945A (zh) * | 2015-02-06 | 2016-10-05 | 致象尔微电子科技(上海)有限公司 | 一种异构多处理器系统及其驱动控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160091191A (ko) * | 2015-01-23 | 2016-08-02 | 엠케어시스(주) | 스마트폰을 이용하여 실시간 양방향 통신으로 애완 동물과 소통할 수 있는 사물인터넷장치 |
KR101709715B1 (ko) * | 2015-11-16 | 2017-02-24 | (주)아이오텍 | 카메라를 이용한 사물인터넷 기반의 제어 및 감시장치 |
-
2017
- 2017-05-23 CN CN201710367697.XA patent/CN107302562B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360246A (zh) * | 2011-10-14 | 2012-02-22 | 武汉理工大学 | 一种异构分布式系统中基于自适应阈值的节能调度方法 |
CN103019903A (zh) * | 2013-01-18 | 2013-04-03 | 哈尔滨工业大学 | 嵌入式设备能耗仿真评测系统 |
CN104102532A (zh) * | 2013-04-15 | 2014-10-15 | 同济大学 | 一种异构集群中基于低能耗的科学工作流调度方法 |
CN103914345A (zh) * | 2013-12-16 | 2014-07-09 | 西北工业大学 | 一种面向能量收集系统的嵌入式操作系统任务调度方法 |
CN105988945A (zh) * | 2015-02-06 | 2016-10-05 | 致象尔微电子科技(上海)有限公司 | 一种异构多处理器系统及其驱动控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107302562A (zh) | 2017-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102323378B1 (ko) | 데이터 처리방법 및 관련제품 | |
CN104520814B (zh) | 用于配置云计算系统的系统和方法 | |
US8312419B2 (en) | Automated lifecycle management of a computer implemented service | |
US8627309B2 (en) | Automated deployment and servicing of distributed applications | |
US20100110933A1 (en) | Change Management of Model of Service | |
US20100114618A1 (en) | Management of Variants of Model of Service | |
Zatsarinny et al. | Toward high performance solutions as services of research digital platform | |
WO2009082384A1 (en) | Modelling computer based business process and simulating operation | |
CN102375734B (zh) | 应用产品开发系统、方法、装置和运行系统、方法、装置 | |
Mottola et al. | Make sense: simplifying the integration of wireless sensor networks into business processes | |
CN107302562B (zh) | 一种物联网终端设备的自适应命令处理系统与方法 | |
CN104077224A (zh) | 软件功能分析系统与方法 | |
CN100428154C (zh) | 基于曼迪斯的无线传感器网络移动代理平台的开发方法 | |
CN102105842B (zh) | 将业务规则与工程应用相集成的系统和方法 | |
Hamida et al. | Integrated CHOReOS middleware-Enabling large-scale, QoS-aware adaptive choreographies | |
Huber et al. | Model-based autonomic and performance-aware system adaptation in heterogeneous resource environments: A case study | |
CN115878121A (zh) | 终端代码增量编译方法、系统、装置、服务器和存储介质 | |
Padilla | Self-adaptation for Internet of things applications | |
Kim et al. | RETRACTED ARTICLE: Simulator considering modeling and performance evaluation for high-performance computing of collaborative-based mobile cloud infrastructure | |
KR100934493B1 (ko) | 온톨로지를 이용한 시뮬레이션 기반의 계산 그리드 자원 관리 장치 및 방법 | |
Mencagli | A Control-Theoretic Methodology for Adaptive Structured Parallel Computations. | |
Bhattacharjee | Algorithms and Techniques for Automated Deployment and Efficient Management of Large-Scale Distributed Data Analytics Services | |
WO2009082387A1 (en) | Setting up development environment for computer based business process | |
CN206546594U (zh) | 应用于企业云移动一体化平台的硬件系统 | |
Zykov et al. | Agile Services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |