在SoC器件中如何平衡嵌入式软件的关键作用?

2017-03-02 互联网
分享到:

 

多核环境vs并行化
 
  主持人—Gartner的John Barber:对于那些利用了并行化架构的设计,多核环境构成了一大挑战。如果我们能克服这一挑战,Tensilica的多核推想就可能成真?
 
  Tensilica—Steve Roddy:我认为关键在于我们整个行业尝试并应用通用型计算的架构,还是去应用更适合于嵌入式计算的技术。我曾经对两种情况进行了比较:分别将一个嵌入了Pentium内核的器件和一个嵌入式设计提交流片前进行了对比。嵌入式设计利用了如下的优势,即功能度可以划分为独立的小系统,并在独立的模块中实现,从而能实现优化的功能度。过往,这些都是硬件上的模块,你在通用型的主控上有软件API(应用程序接口),让编程者访问这些硬件上存在的资源。如果你尝试过一个20~30万门阵列模块,这是一种很正常的设计风格。正是因为这些模块可能恰好是处理器,用处理器进行设计将具有更高的效率,而且用处理器进行设计将更宽容一些。你如果以处理器作为设计的基础引擎的话,则在交付流片后还可以对其进行重新编程。你有更多的处理器,也不必改变使用的模式,并不意味着你现在要面对另外的15个处理器,而你必须了解另外15种可编程设计。如果你给编程者所提供的是定义良好的API,以便访问内核-内核的资源。一般的编程者都可以轻松地应对这样的编程任务,只有SoC设计者需要知道某个模块是处理器,了解并行化软件的内核是如何运作的。
 
  Wipro—Siby Abraham:我与你们的看法有一点不同。如今,谈到嵌入式软件工程,为了利用好多核架构,你必须拥有编译器、编程语言。随着你进入更高性能水平,这些工具显得更为重要。在功能被清晰划分的地方,我同意你们的看法。但是,我们越来越多地看到,应用中所采用的处理器数量增长很快,而性能如何提高也将成问题。
 
  Tensilica—Steve:随着时间的推移,软件的工作变得愈来愈重要。那些目前业界的标准化组织正在着手进行标准的制定,多核组织已经建立了一个工作组,着手制定关于API的标准,使之能根据多核的特点来分配workload。随着时间的推移,人们必须推出基础架构,使开发者不必去面对多核带来的复杂性,不必让一个半导体公司的客户、软件工程师,打开说明书去查清其芯片架构的每一个细节,我们不能强迫每个工程师去了解清楚芯片上的每一个细节。
 
  MIPS科技—Jack Browne:我认为,如果你考察器件的复杂性,130nm的SoC上市前成本是1300~1500万美元;90nm时,成本是3000万美元。人们推出了ASSP,他们不是针对某个具体问题进行定制的ASIC。在今天的65nm和45nm节点上,人们的设计方法是大量地复用。所以80%的设计是复用的。我们需要API来推进这些开发工作,我们可以划分各种东西,划分音频Codec(编/解码器),此后,我可以将其放到任何一个设计中。但是,除了API,还应该有一个平台化的架构,以便保证你的上市时间。
 
  为了实现这一点,我们需要厂商能提供电子系统级的模型,这样软件人员不用去读说明书。只要有一张CD,上面有可执行的芯片模型,它的运行速度足够快。所以,你能够实现你的应用。于是,当芯片被取回来时,你就有相应的软件了。你可以解决芯片上存在的缺陷。而你可以实现相应的并行化,让芯片上的各个部分能工作。
 
  代码编写人力不足?
 
  问:嵌入式软件的代码的行数每年以46%的速度增长。而编写代码所动用的人力,则以7.5%的年均增长率成长。你看,这里的障碍在于人力的缺乏?
 
  MIPS—Jack:人们解决这个问题的方式同样是复用。每一件产品不能从一张白纸起步—公司采取这种策略的话,就会倒闭。你必须推出相互间有继承性的产品线。一个好的例子就是802.11。它最早是以小带宽的b开始的,而g则成为主流,而去年圣诞节,802.11n也降低到了100美元的价位,达到了消费类的空间。软件也是这样运作的。复杂性在于,你必须让数据包能四处移动,而且让吞吐率提高2个数量级。如果你第一个软件行不通的话,你在开发第二款产品时就必须重新编写,而这样的公司是没法生存的。我们这个行业对于那些策略上犯错误的公司是很残酷的。
 
  Mentor—Bill Chown:我继续扩展这个话题,80%的程序是复用的。但是并不是每个软件都有那么高的复用率。随着软件的不断开发,越来越多的软件形成了软件包、软件栈,从而能被方便地复用。因此,并不需要人力也增长46%来解决这个问题。我发现复用的一个问题是,我的手机包含了手机厂商从1990年以来编写的所有软件—这里面实在有些是垃圾。
 
  问:软件46%的增长速度与人力7.5%的增长速度间的差距将会逐年增大,你们最终会遇到人力方面的问题?
 
  Mentor—Bill:我们会发现类似的情况曾经发生过:在硬件空间中,如今的自动化技术已经无法进一步产生动力了。因此,我们就必须引入新的人力,以便在硬件上能进一步提升其层次。看看软件领域,头号的软件工具是什么?是VI。VI中不是全套的自动化工具,它的自动化是在不断提升的,当然不一定与你提到的人力的增长速度同步。它的发展速度当然与软件代码的行数的增加是一致的。在软件空间中,自动化是一个非常开放的领域,作为我们这样的自动化厂商来说,软件业已经习惯了VI的价格,试图说服他们,自动化的价格与VI的价格不太一样,将是一项有趣的挑战。
 
  Tensilica—Steve:正如Bill提到的那样,也许现在复用是过多了,这会影响到用户的体验。
 
  协议栈已成熟?
 
  问:当Jack提及802.11时,实际上谈论的是两种不同的软件。他所说的是协议栈,与Paul实际谈到的软件是不一样的。这个说法对吗?协议栈现在是一个比较成熟的技术了。
 
  MIPS—Jack:随着程序的行数,例如电视的操作系统软件从100万行程序进步到300~800万行,我再添加50万行,就可以形成相应的环境中间件,则我一旦编写完一套软件包,就可以在其他任何地方使用。你应该看到的挑战是——上市的时间。设计工程师们要完成足够好的设计。我进行的设计满足了客户的需求,而Steve所做的设计超出了用户的需求,其设计开销也是我的2倍,而且所花的时间更长,则在市场上我将会取胜。我经常遇到同行谈技术上挑战的困惑:我的设计更好,但为什么我的竞争对手能卖出去,而我却不能?答案是:当设计足够好的时候,客户就愿意为任何别的东西付钱。这就是为什么以前人们为了努力将程序缩小20%而付钱的时代早已一去不复返的原因,因为内存已经很便宜了。我在买新手机时,只要花20美元就可以买到一张1GB的内存卡。
×
官方微信