A S I C/S O C有较高的集成度,适合低功耗的特殊应用,但是多数注重成本的设计都会包含更多的功能特性与可编程的元素,这与行业标准与协议的不停改变密不可分。无论G S M电话,MP3 ,DivX/Mpeg4, DSL/Cable调制解调器,无线局域网或者任何其它产品标准,其协议都以非常快的速度变化着,顾客并不希望频繁升级硬件,从生产成本(工具、流水线的建立,等等)考虑,对单一产品平台重复使用是非常必要的。这意味系统对软件的要求更高了,因此也需要更多的软硬件协作。软硬件交互过程势必使系统集成时间延长,并且产生了大量的只能针对特定硬件使用的软件。
为此,大量的可编程微处理器被加入到系统中。虽然只要处理器的速度足够快,所有由于软硬件交互引起的性能下降问题都可以迎刃而解,但是无论从成本还是功耗来看,提高处理器的主频换取性能都是一种非常“不划算”的解决方案。
一个典型的例子就是使用D S P处理连续数据的应用。开发者完全可以使用一个低端的D S P芯片来处理标准的媒体流协议,相对于高端处理器组成的系统,其功耗损失非常小,而且降低了系统成本。
D S P的特定指令集与专用存储器、总线结构使其能够完成较复杂的数字处理算法,但是这些特性往往不支持高级语言。所以,基于D S P的很多应用都必须使用汇编语言来编码。由于不同D S P的汇编指令与编程模型不同,所以D S P之间的代码移植非常困难。这造成了应用开发的瓶颈。为了解决这个瓶颈,一种方案是将应用代码根据功能分为两部分