论文部分内容阅读
智能化赋予了物联网更深刻实用的价值,但是计算能力强与功耗低的双重要求是目前的单处理器物联网设备无法满足的。异构多处理器结构与单一或者同构的多处理器相比可以结合不同处理器的优势,选用合适的处理器,可以同时满足高性能与低功耗的智能设备要求。现阶段针对异构多处理器设备的软件运行环境研究仍处在起步阶段。异构多处理器结构下软件编程难度大的问题以及如何优化顶层应用在多处理器设备上的运行性能都是目前亟待解决的技术难题。针对以上问题,本工作重点研究面向异构多处理器设备的命令解释系统的设计与实现。本文工作主要贡献如下: 第一,设计了一个运行在异构多处理器设备上的命令解释系统的架构。该系统架构允许用户通过URL访问的形式把物联网应用安装到设备上,应用程序以URL中包含的命令脚本形式呈现,通过这种开发形式系统实现了开发资源在云端的聚集,大大减少了重复的开发工作。同时,系统支持命令面向异构多处理器设备的自动分发,无须用户考虑应用运行调度的问题。最后,针对物联网中不同用户的开发差异大,难以设计一种具有普适性的开发运行环境的问题以及异构多处理器物联网设备中存在可编程空间受限的处理器的问题,系统可根据不同用户的习惯进行自适应,以最大化可编程空间的用户使用价值。该系统目前支持13条命令的运行,并可通过云服务器支持用户添加自定义的脚本。该系统为物联网异构多处理器设备提供了一个通用的组织和运行架构。 第二,提出了命令解释系统的命令分发算法。该算法能够在满足时间上限的条件下计算应用执行能耗最优的命令分发方案。本文首先分析了该系统中命令分发算法与以往研究中命令分发应用场景的不同之处,即命令数有限,处理器个数有限,存在部分处理器专用的命令。针对这些应用特点,本文使用DAG图建立任务模型,提出并设计了一种枚举与Dijkstra算法结合的方案,以找出所有满足时间要求的分配方案,并比较获得能耗最优的TOP K个分配方法。 第三,设计了一种基于用户使用习惯的命令解释系统自适应裁剪和更新机制。在异构多处理器硬件平台上小处理器由于可编程空间不足,通常不能装载有完整命令解释器,所以必须要对小处理器中运行的命令解释器进行定制。本文通过收集用户执行应用的历史,统计处理器执行各命令的频次,以此理解命令对于用户的使用价值。同时,针对受限处理器可编程空间有限的特点,将装载命令所需要的存储空间作为装载命令的代价;从而将问题抽象为在有限空间下如何筛选最大价值的命令集问题。同时本文出了一种系统运行时自适应命令集更新方法,使得系统在运行时针对应用执行情况自动完成命令解释器的更新工作。 最后,基于本文设计的命令解释系统架构,实现了一个综合验证平台。在平台基础上,设计了一组实验,验证了系统的可行性,并且对本文提出的命令解释系统自适应命令集筛选算法PLOUN与基于贪心策略的命令集筛选算法进行了算法对比。