指令集跟DSP的型号有关,比如目前广泛应用的TI和ADI的DSP之间汇编指令集有很大的差别。DSP相对于x86的优势在于功耗小,集成化程度高,计算速度快。光看汇编语句是看不出什么的,除非你去比对汇编语句对应的计算周期数。一般x86的汇编语句很少有单指令语句,很多语句实际上需要CPU消耗多次指令周期。而DSP基本上都是单周期实现乘法,除法(浮点运算需要浮点运算单元支持)。而且DSP的哈佛结构相对于冯诺依曼结构不同,地址、控制、数据总线分开,读写速度比x86快。而且DSP内置的无开销的循环和并行指令,能够进一步加速计算。比如某些型号的DSP可以将32位寄存器当成两个16位寄存器,因而可以单指令周期实现两个并行的16位计算。另外就是MAC(乘累加)计算,在DSP上也是内置的,该计算广泛用于数字信号处理。在x86上MAC计算需要消耗的指令周期数大概是DSP的几十倍。DSP的大量算法是16位的,主要是因为DSP广泛采用的领域是音频领域,16bit相当于96db的动态范围,这在音频处理上是足够的(主要是前端AD动态范围很少做到16位)。
|