一种面向多性能指标的物联网硬件平台自动生成方法转让专利

申请号 : CN201910356053.X

文献号 : CN110138604B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董玮高艺李博睿程志浩刘汶鑫

申请人 : 浙江大学

摘要 :

一种面向多性能指标的物联网硬件平台自动生成方法,包括:(1)硬件性能数据库的建立,硬件性能数据库包含以下四个部分:硬件能耗数据库,硬件处理速度数据库,API调用速度数据库,硬件接口与价格数据库;(2)用户需求文件与用户编写程序逻辑的分析;(3)生成物联网硬件平台动态约束条件,包括两个指标:应用执行时间与平均能耗;(4)生成物联网硬件平台静态约束条件,包括两个指标:硬件平台可扩展性和价格;(5)求解最优化问题,将步骤(3)和步骤(4)中转换得到的静态、动态约束条件与用户声明的优化目标输入,使用混合整数非线性规划问题的求解器将求解出最优的物联网硬件配置。

权利要求 :

1.一种面向多性能指标的物联网硬件平台自动生成方法,包括以下步骤:(1)硬件性能数据库的建立,硬件性能数据库包含以下四个部分:硬件能耗数据库,硬件处理速度数据库,API调用速度数据库,硬件接口与价格数据库;

(2)用户需求文件与用户编写程序逻辑的分析,包括:

2.1)用户需求文件的分析,获取用户用于声明其希望生成的物联网硬件平台各项性能指标的需求文件,通过分析得到用户需求的数学表达式;

2.2)用户编写的程序逻辑的分析,使用代码静态分析的方法生成代码的控制流图与每一控制流分支的权重;

(3)生成物联网硬件平台动态约束条件,包括两个指标:应用执行时间与平均能耗,具体步骤如下:

3.1)应用执行时间动态约束条件的生成,依据应用执行时间预测模型和用户需求生成约束条件非线性不等式或优化目标,应用执行时间预测模型如公式(1)所示;

公式(1)使用向量d来表示一个特定的物联网硬件平台,d={d1,d2,...,di},和 代表数据库中的全体主板、盾板和外设,二元选择变量di代表硬件i是否被选中,其取值为1或0;U代表物联网设备运行的用户应用程序代码;

为对于一个特定的物联网硬件平台d和用户应用程序U的物联网设备运行代码时间,它可以被表示为调用应用编程接口(Application Programming Interface,API)的时间tAPI(d)、非API代码的运行时间 与休眠时间tidle(U)之和,具体可进一步表示为:其中二元选择变量di和dj代表硬件i或j是否被选中,其取值为1或0;F和 代表从用户代码中获取的全体API和全体非API代码的集合, 和 代表数据库中的提供APIf的全体盾板和外设, 代表数据库中的全体主板,βf与βu代表通过路径加权的APIf和非API代码u的运行计数;ti,j,f是APIf在主板i和外设j上的运行时间,ti,u是非API代码在主板i上的运行时间;Φ(U)是从用户代码中提取休眠时间的操作;

3.2)应用平均功耗动态约束条件的生成,依据应用平均功耗预测模型和用户需求生成约束条件非线性不等式或优化目标,应用平均功耗预测模型如公式(3)所示;

其中二元选择变量di和dj代表硬件是否被选中,其取值为1或0,Pi(U)和Pi,j(U)代表运行代码U的时候硬件i或硬件i,j的平均功耗,具体可表示为:是组件i的能耗等级,使用 和 分别表示空闲能耗和活动能耗等级的

集合,则有 与 是组件i在能耗等级k的占空比和能耗

值; 与 是组件i在主板j上在能耗等级k的占空比和能耗值;占空比是活跃时间与总时间的比值,即 与 其中 是组件i处于能耗等级k的时间, 是组件i提供的API的集合, 是在主板j调用组件i的APIf将会使得i进入第k个能耗等级的时间长度,βf代表通过路径加权的APIf的运行计数, 表示运行代码的一个循环所需要的时间,从步骤3.1)中得到;

(4)生成物联网硬件平台静态约束条件,包括两个指标:硬件平台可扩展性和价格,具体步骤如下:

4.1)应用可扩展性静态约束条件的生成,依据可扩展性计算模型和用户需求生成约束条件一次不等式或优化目标,可扩展性计算模型如公式(5)所示;

一个特定的物联网硬件平台d的可扩展性可被表示为硬件接口剩余量 和MCU管脚剩余量 他们可分别被表示为:其中二元选择变量di代表硬件是否被选中,其取值为1或0; 和 代表数据库中的全体主板、盾板和外设; 和 分别代表物理接口类型和接口通信类型的集合,即每一个Port占用两个Pin,而 和 是三元组

提供/消耗的物理接口数量, 和 是三元组 提供/消耗的MCU管

脚数量;

4.2)应用总价格静态约束条件的生成,依据应用总价格计算模型和用户需求生成约束条件一次不等式或优化目标,应用总价格计算模型如公式(7)所示;

其中 表示一个特定的物联网硬件平台d的价格;ci是组件i的价格;二元选择变量di代表硬件是否被选中,其取值为1或0, 和 代表数据库中的全体主板、盾板和外设;

(5)求解最优化问题,将步骤3)和步骤4)中转换得到的静态、动态约束条件与用户声明的优化目标输入,使用混合整数非线性规划问题的求解器将求解出最优的物联网硬件配置。

说明书 :

一种面向多性能指标的物联网硬件平台自动生成方法

技术领域

[0001] 本发明涉及物联网硬件平台的关键性能指标(如能耗、实时性)的预测,与根据用户对节点关键性能指标的需求自动生成物联网硬件平台中硬件模块与其连接的方法。

背景技术

[0002] 近年来,随着微机电技术(MEMS)等技术的发展,新型传感器与微型计算设备层出不穷,基于这些硬件的物联网应用也实现了快速增长。据统计,2017年全世界的物联网设备数量就达到了84亿个,比2016年的64亿增长了31%,首次超过了全球人口(75亿)。据保守预测,全球范围内活跃的物联网设备在2025年将达到215亿个。
[0003] 然而,相对于传统的个人计算机(Personal Computer,PC)/集群式服务器软件应用的开发,物联网应用的开发过程仍然效率较低。这是由于PC与服务器的硬件架构已经趋于统一(如中央处理器均使用冯诺依曼架构),应用开发者只需关心在其上的软件开发工作。然而物联网应用包含硬件平台模块的选型和对应应用的开发。一般来说,物联网硬件平台是一个专门定制的包含微型处理单元(Micro-Control Unit,MCU)、通信模块和其他传感器的嵌入式系统,物联网软件应用需要根据不同的硬件平台进行定制。物联网硬件平台一般分为三个部分:主板、盾板和外设。主板主要包含系统的主要计算组件(如MCU、内存等),盾板是插在主板上的扩展组件,一般作用为提供更多的接口,外设直接连接至主板或通过盾板间接连接在主板上以提供传感、控制等功能。因此到目前为止,由于物联网硬件与软件的强耦合性,仍然没有一个通用的物联网设备平台在市场中占主导地位。
[0004] 正由于此,对于物联网或嵌入式系统领域的非专业人士,创作一个符合自己需求的物联网应用是非常困难的,理由有二:(1)物联网硬件平台和其组件种类繁多且互相异构,在这样大的选型空间中非专业人士很难寻找到最适合的硬件。(2)硬件开发者对于开发出的硬件平台与其软件有着各不相同的要求。如在有些场景下应用的低功耗性能被十分看重,而在另外一些场景下硬件设备整体的价格会是被优先考虑的指标。这种多样性给物联网硬件平台构建提供了多种可能性,但也带来了极大的复杂性:即硬件组件之间需要满足复杂的接口、电压等多种要求。
[0005] 正因为以上的两个开发难点,导致虽然物联网设备数量快速增加,物联网应用却没有像PC或服务器应用一样渗透入人类的日常生活,物联网应用开发效率的低下是掣肘物联网发展的一大瓶颈。硬件的选择问题需要考虑一下几点:
[0006] (1)用户性能需求的适配性:所生成硬件的价格、能耗、可扩展性等关键性能指标需要满足用户的要求。
[0007] (2)软件的适配性:选择的硬件需要能够支持开发者需要的功能(如WiFi连接、温度感知、驱动继电器等)
[0008] (3)硬件的适配性:如电源电压、物理接口数量与类型
[0009] 用户的性能需求可以分为两类:动态指标和静态指标。所谓静态指标是指程序逻辑不相关的属性(如价格);而动态指标则跟程序逻辑紧密相关(如功耗)。

发明内容

[0010] 本发明要克服现有技术的上述缺点,通过自动化的对用户需求进行分析和对物联网硬件平台关键性能指标的预测,通过求解优化问题来自动生成最优物联网硬件平台的方法。
[0011] 为实现以上目的,本发明所采取的技术方案是:一种面向多性能指标的物联网硬件平台自动生成方法,包括以下步骤:
[0012] (1)硬件性能数据库的建立,硬件性能数据库包含以下四个部分:硬件能耗数据库,硬件处理速度数据库,API调用速度数据库,硬件接口与价格数据库。
[0013] (2)用户需求文件与用户编写程序逻辑的分析,包括:
[0014] 2.1)用户需求文件的分析,获取用户用于声明其希望生成的物联网硬件平台各项性能指标的需求文件,通过分析得到用户需求的数学表达式。
[0015] 2.2)用户编写的程序逻辑的分析,使用代码静态分析的方法生成代码的控制流图与每一控制流分支的权重。
[0016] (3)生成物联网硬件平台动态约束条件,包括两个指标:应用执行时间与平均能耗,具体步骤如下:
[0017] 3.1)应用执行时间动态约束条件的生成,依据应用执行时间预测模型和用户需求生成约束条件非线性不等式(或优化目标)。
[0018] 3.2)应用平均功耗动态约束条件的生成,依据应用平均功耗预测模型和用户需求生成约束条件非线性不等式(或优化目标)。
[0019] (4)生成物联网硬件平台静态约束条件,包括两个指标:硬件平台可扩展性和价格,具体步骤如下:
[0020] 4.1)应用可扩展性静态约束条件的生成,依据可扩展性计算模型和用户需求生成约束条件一次不等式(或优化目标)。
[0021] 4.2)应用总价格静态约束条件的生成,依据应用总价格计算模型和用户需求生成约束条件一次不等式(或优化目标)。
[0022] (5)求解最优化问题,将步骤3)和步骤4)中转换得到的静态、动态约束条件与用户声明的优化目标输入,使用混合整数非线性规划问题的求解器将求解出最优的物联网硬件配置。
[0023] 本发明的优点是:与现有技术相比,本发明在自动生成物联网设备平台时,除考虑物联网设备之间电气特性的一致性和硬件平台对用户逻辑支持的完整性外,通过对开发者获取较为困难的物联网硬件平台的各种重要性能指标(如功耗、可扩展性、执行时间与总价格)进行建模并作为硬件平台生成的约束条件或优化目标,以生成最符合开发者对物联网应用需求的硬件平台,从而减少开发者试错成本,大大加速了开发者的物联网开发流程。

附图说明

[0024] 图1是本发明的物联网设备平台生成流程图。
[0025] 图2是本发明的程序流分析生成的应用控制流图与最终生成的硬件配置。

具体实施方式

[0026] 本发明通过自动化的对用户需求进行分析和对物联网硬件平台关键性能指标的预测,通过求解优化问题来自动生成最优物联网硬件平台的方法。为实现以上目的,本发明所采取的技术方案是:一种面向多性能指标的物联网硬件平台自动生成方法,包括以下步骤:
[0027] (1)硬件性能数据库的建立,硬件性能数据库包含以下几个部分:硬件能耗数据库,硬件处理速度数据库,API调用速度数据库,硬件接口与价格数据库,具体步骤如下:
[0028] (1.1)硬件能耗数据库的建立,能耗使用能耗记录器Monsoon Power Monitor,测试程序为API每隔1s运行一次,其他时间休眠。通过记录能耗记录器输出的周期性能耗数据来获取API运行时能耗。记录下APIf在组件i和主板j上对应能耗等级k的能耗和对应调用时长,分别记为 和
[0029] (1.2)硬件处理速度数据库的建立。对于编程语言的平台i上的语法规则u对应的汇编代码所需的MCU周期数量yi,u,根据平台的数据手册,借助公式ti,u=yi,u/νiηi得到语法规则u对应的硬件处理速度ti,u。
[0030] (1.3)API调用速度数据库的建立。首先对各硬件平台按照其体系结构进行分类(如ARM Cortex、AVR ATMega、TI MSP系列等),并对每一类中的代表性硬件和应用编程接口(Application Programming Interface,API)做API级别测量,单API调用时间使用代码插桩的方式,在API执行前后插入时间戳,两时间戳的差值即为此API在对应硬件平台上的执行时间;在基础数据库的基础上,将其进行横向、纵向的自动化离线扩展,以自动化完成对硬件平台与API的完整测量。
[0031] (1.3.1)横向扩展是指根据同一类别不同个体平台之间的量化性能指标(如核心时钟频率、指令集吞吐率等)进行建模,扩展生成本类别下所有个体平台的数据库。API的调用时间与硬件平台的核心时钟频率与指令集吞吐率有关,对应公式为ti,f=ti′,fvi′ηi′/viηi。其中ti,f/ti′,f、vi/vi′和ηi/ηi′分别为平台i和i′的APIf的调用时间、平台核心时钟频率与指令集吞吐率。
[0032] (1.3.2)纵向扩展是指根据基础API的测量结果与API间量化的资源占用指标(如代码计数、系统函数调用次数等)的比例进行计算,在同一硬件平台上扩展生成所有API的数据库。
[0033] (1.4)硬件接口与价格数据库的建立,此数据库包含了硬件接口数量与类型,和硬件市场价格的信息,这些信息可以从生产厂商的数据手册中获得。
[0034] (2)用户需求文件与用户编写程序逻辑的分析。
[0035] (2.1)用户需求文件的分析,获取用户用于声明其希望生成的物联网硬件平台各项性能指标的需求文件,其中包含了用户希望的优化目标和各项性能指标的约束条件,通过分析得到用户需求的数学表达式。如用户需求为“最小化能耗,且整体价格低于100人民币”,则生成数学表达式为 其中 和 分别代表生成硬件平台的能耗和价格
[0036] (2.2)用户编写的程序逻辑的分析,使用基于Valgrind的代码静态分析方法以得到程序控制流图,对分支点与循环点中的关键变量进行污点分析(taint analysis)以对程序逻辑逆向回溯,以定位变量来源。由于物联网应用的特殊性,若变量取值与外部环境有关(如某一条件为为外部湿度>90%取真),此处引入用户对环境的预测作为输入,最终生成代码的控制流图与每一控制流分支的权重。
[0037] (3)生成物联网硬件平台动态约束条件,包括两个指标:应用执行时间与平均能耗,具体步骤如下:
[0038] (3.1)应用执行时间动态约束条件的生成,包括预测模型的建立与生成约束条件两部分:
[0039] (3.1.1)代码执行时间动态指标预测模型的建立。本专利使用向量d来表示一个特定的物联网硬件平台,的 和 代表数据库中的全体主板、盾板和外设,二元选择变量di代表硬件i是否被选中,其可能取值为1或0,例如di=1表示硬件i包含在最终生成的硬件平台中。步骤4)与步骤5)中的变量d与本定义相同。
[0040] 对于一个特定的物联网硬件平台d和用户应用程序U,物联网设备运行代码的时间可以被表示为调用应用编程接口(Application Programming Interface,API)的时间tAPI(d)、非API代码的运行时间tl(d)与休眠时间tidle(U)之和,如下所示:
[0041]
[0042] 具体可进一步表示为:
[0043]
[0044] 其中二元选择变量di和dj代表硬件或是否被选中,其可能取值为1或0,例如di=1表示硬件i包含在最终生成的硬件平台中;F和l代表从用户代码中获取的全体API和全体非API代码的集合, 和 代表数据库中的提供APIf的全体盾板和外设, 代表数据库中的全体,βf与βu代表通过路径加权的APIf和非API代码u的运行计数;ti,j,f是APIf在主板i和外设j上的运行时间,ti,u是非API代码在主板i上的运行时间;Φ(U)是从用户代码U中提取休眠时间的操作;
[0045] (3.1.2)约束条件的生成。基于步骤1.2)和1.3)的运行时间数据库,与步骤2.2)中获得的用户代码路径信息,使用步骤3.1.1)中的公式(1)与公式(2)可获得此用户代码的运行时间计算公式,结合步骤2.1)的用户约束信息(或优化目标),可得到一个二次不等式,即为代码执行时间的约束条件(或优化目标)。
[0046] (3.2)应用平均功耗动态约束条件的生成,包括预测模型的建立与生成约束条件两部分:
[0047] (3.2.1)应用平均功耗动态指标预测模型的建立。一个物联网硬件平台的平均功耗可表示为每一个组件在一次代码循环中的平均功耗。因为不同的主板拥有不同的电气特性,即使是同一个外设和盾板,插在不同的主板上也会拥有不同的功耗值。故对于一个特定的物联网硬件平台d和用户应用程序U,物联网设备运行代码平均功耗 可表示为:
[0048]
[0049] 其中二元选择变量di和dj代表硬件或是否被选中,其可能取值为1或0,例如di=1表示硬件i包含在最终生成的硬件平台中,Pi(U)和Pi,j(U)代表运行代码U的时候硬件i或硬件i,j的平均功耗,具体可表示为:
[0050]
[0051] 是组件i的能耗等级,使用 和 分别表示空闲能耗和活动能耗等级的集合,则有 (或 )与 (或 )是组件i(或
组件i在主板j上)在能耗等级k的占空比和能耗值;占空比是活跃时间与总时间的比值,即与 其中 是组件i处于能耗等级k的时
间, 是组件i提供的API的集合, 是在主板j调用组件i的APIf将会使得i进入第k个能耗等级的时间长度,βf代表通过路径加权的APIf的运行计数, 表示运行代码的一个循环所需要的时间,从步骤3.1)中得到。
[0052] (3.2.2)约束条件的生成。基于步骤1.1)的硬件能耗数据库,与步骤2.2)中获得的用户代码路径信息,使用步骤3.2.1)中的公式(3)与公式(4)可获得此用户代码的平均能耗计算公式,结合步骤2.1)的用户约束信息(或优化目标),可得到一个二次不等式,即为平均能耗的约束条件(或优化目标)。
[0053] (4)生成物联网硬件平台静态约束条件,包括两个指标:硬件平台可扩展性和价格,具体步骤如下:
[0054] (4.1)物联网硬件平台可扩展性指标约束条件的生成。在本专利中,定义物联网硬件平台的可扩展性为在用户应用所需硬件连接完成后主板仍剩余的物理接口的数量。它可以用通过计算连接完成后剩余的物理接口数量 和剩余的MCU管脚数量 共同表示,一个特定的物联网硬件平台d的 和 可被表示为:
[0055]
[0056]
[0057] 其中二元选择变量di代表硬件或是否被选中,其可能取值为1或0,例如di=1表示硬件i包含在最终生成的硬件平台中; 和 代表数据库中的全体主板、盾板和外设;和 分别代表物理接口类型和接口通信类型的集合,即 每一个Port
占用两个Pin, 而 和 是三
元组提供/消耗的物理接口数量, 和 是三元组提供/消
耗的MCU管脚数量。
[0058] 用户对于某类型可扩展性的需求可根据公式(5)和公式(6)和步骤1.4)中硬件接口数量数据库使用数学表达式表达出来,结合步骤2.1)的用户需求,进而转化为关于硬件平台选择的不等式。由于剩余的管脚数量是剩余物理接口的数量和MCU管脚数量共同决定的,故用户对某接口的需求将会被转化为一个物理接口数量约束和MCU管脚约束。如用户的需求为“剩余I2C类型的Pin多于6个”将被转化为
[0059] (4.2)物联网硬件平台价格约束条件的生成。如一个特定的物联网硬件平台di的价格可被表示为:
[0060]
[0061] 其中 表示一个特定的物联网硬件平台d的价格,ci是组件i的价格,二元选择变量di代表硬件或是否被选中,其可能取值为1或0,例如di=1表示硬件i包含在最终生成的硬件平台中, 和 代表数据库中的全体主板、盾板和外设。
[0062] 用户对于价格的约束条件(或优化目标)可根据公式(7)和步骤1.4)中的硬件价格数据库使用数学表达式表达出来,结合步骤21)的用户需求,即可生成一个关于di的不等式,即为价格约束条件的数学表达式。
[0063] (5)求解最优化问题,将步骤3)和步骤4)中转换得到的静态、动态约束条件与用户声明的优化目标输入,由于动态约束条件是关于d的非线性混合整数不等式,故求解器需要使用非线性混合整数规划问题求解器。求解器将求解出最优的物联网硬件配置d。
[0064] 本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。