近年来,DSP供应商已经开始重视前后代处理器之间的软件兼容性。这种重视不仅能从产品本身看出,而且也体现在供应商的行销活动中:每当老牌供应商发布新的DSP架构时,你几乎总会听到他们保证新的系列与前一代产品兼容。
在DSP供应商眼中,软件兼容性刚开始并不是一个具有高优先级的事项。回到上世纪80和90年代早期,大多数新的DSP架构都与它们的原始器件不兼容。后来,两个关键因素促使DSP供应商重新思考这个问题。第一,信号处理应用变得越来越庞大和复杂,这使得开发者很难在相互不兼容的处理器之间移植代码。当整个应用系统只包含1,000行代码时从零开始重新编写应用软件是一回事;当应用系统包含几十万甚至上百万行代码时,再这样做则完全是另一回事。
第二,通用处理器,如奔腾类芯片和ARM内核,解决信号处理问题的能力变得越来越强。对一些应用而言,通用处理器成为一种有吸力的DSP替代方案,特别是因为不像DSP,通用处理器往往在前后代器件之间维持着二进制层次的软件兼容性。
为了满足客户对兼容性与日俱增的渴望并避免被通用处理器取代,DSP供应商近几年来对软件兼容性给予了极大的关注。这对从事DSP开发的所有各方都是一件好事。不过,一个令人困扰的问题是供应商有时放宽了对“兼容性”的阐释。
例如,TI公司声称,TMS-320C55x与其前代产品TMS320C54x的汇编源代码兼容。事实上,为TMS320C54x编写的典型汇编代码需要经重大修改才能在TMS320C55x上正确运行。对于优化的算法内部循环,这种现象特别明显,因为这些循环可能要依赖TMS320C54x流水线的功能,而TMS320C55x没有保持此流水线。类似地,与I/O有关的代码(如设备驱动程序)也是如此。
此外,ADI公司改变了ADSP-TSxxx和ADSP-BF53x的指令集和微架构,从而限制了这些产品系列内部的兼容性。例如,一些指令在ADSP-BF535上与在ADSP-BF53x系列的其它器件上运行将产生不同的结果。但你在供应商的产品新闻稿中无法发现有关这些例外情况的明显警告。
我们很高兴看到DSP供应商开始关注兼容性,但DSP架构要达到通用处理器所提供的软件兼容性水平依然还有很长的路要走。
作者:Jeff Bier
总经理
从事DSP技术分析与软件开发的Berkeley设计技术公司
京公网安备 11011202001138号
