微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 工程师的烦恼: 如何估算应用程序运行时的功耗

工程师的烦恼: 如何估算应用程序运行时的功耗

时间:06-08 来源:互联网 点击:

Synopsys公司低功耗解决方案组的技术市场总监Cary Chin认为,虚拟平台是通往高级层的解决方法。 “有很多非常好的方法通过一个虚拟平台来钩住软件堆栈。但我仍然认为,从虚拟平台向下通过高级RTL的连接仍然有一点不连贯,因为有很多要素需要发生以便将这些环境连接在一起。”尽管,这里需要回答的大问题是:我们有多希望让软件开发人员来直接控制硬件,Cary Chin表示。这基本上直接反对信息隐藏(模块之间通过其API通信,一个模块不需要知道另外一个模块的内部情况)的观点。

  “在软件开发环境下,我们试图隐藏事物,因为有些事物我们实事上无法在高级别Vs.低级别的情况下做出更好的决定。当你从软件领域跨越到硬件领域时,这些概念也会随之而来,因此,非常难以判断。你希望能编写一款可在各个开发环境之间转移的软件或类似的东西,但如果你将其与某个特定的硬件平台紧密联系在一起,那么事情就会变得非常困难。

  教育软件开发人员

  “有了这一切,仍然有可能写不出好软件,因为数据使用的效率非常低—例如,也许有些(情况下)会不必要地持续刷新液晶屏,” Hardee表示。 “人们如何获得反馈,真正归结于那些由手机制造商或网络运营商(Sprint有一个应用程序开发网络)提供的应用开发工具包。使用Android的手机有一个开发系统。可以就这些开发工具包中的不良的优化、不好的内存用法等等向用户提供反馈。”

  该解决方案的一部分可能是一个产业链或合作型方案。“从硬件方面来看,[EDA供应商]与苹果或谷歌这类公司在某些方面展开合作以真正地将他们的开发工具包向下扩展的想法可能实际上和努力搭建一样有意义,因为那些人手上有很多资源并且他们能就在中间层会合帮不少忙”,Chin进一步补充道。

  但这仍不能解决其中的一个大问题,那就是存在于软件和硬件之间的巨大鸿沟。 “硬件领域和软件领域之间的鸿沟比前端设计和后端设计之间的鸿沟更大。硬件设计和软件设计目前并没有真正地衔接好,并且最终会有在某种意义上人们可以想到的不同等级的抽象,如果你从软件开发的角度来看。有高级编程语言C / C + +,有低级编程语言汇编代码”,Apache Design Solutions公司产品工程和应用高级主管Will Ruby指出。至少有些(问题)在短期内可以使用模型来处理,但有些也需要用到智能编译器这样的新技术。“汇编实际上更接近硬件,但人们通常不会用汇编语言来写程序,除非他们是在处理嵌入式编程。硬件的概念需要转移到C/C + +或Java类的开发环境。模式就是在那出现的。我们需要模型来表征硬件行为,但我想我们同样还需要像一个类似智能编译器的东西,这样就能利用其中这些硬件勾子的某些优势,并且了解当你在为某个手机应用程序编程的时候,会需要在针对性能或功耗编译之间做取舍。硬件工程师们一直在考虑这个问题,但对软件工程师们而言这不是一件容易的事。因此,编译器可能需要涉及这个方向。编译器需要对解件敏感,并且需要了解硬件正在做什么”,他总结道。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top