由于工作经常接触到各种多核的处理器,如TI的达芬奇系列芯片拥有1个DSP核3个ARM核。那么DSP处理器和ARM处理器各自有什么区别,各自适合那些领域?
DSP:digital signal processor数字信号处理器,也指digital signal process数字信号处理,有自己指令集。DSP处理器的特点如下:
- 有专门的的硬件乘法器,能进行大量的乘法操作,与通用的MCU处理器不同,通用的MCU在执行乘法操作时是通过软件编程的方式的来实现的,通常需要几十甚至上百个时钟周期,而DSP处理器却有自己的硬件乘法器,使用硬件的方式来执行乘法操作,用硬件的方法总比用软件的方法有着无法比拟的速度优势。另外DSP处理都有自己的累加器单元AUL,大多数的DSP处理器在执行乘加操作时可以在一条指令周期内同时完成乘法和加法操作。DSP与一般MCU最大的区别在于DSP拥有硬件乘法器。
- 拥有哈弗型的总线结构,使得取指令和取数据可以同时进行,大大提高了并行处理的能力。
- pipeline技术。广泛采用pipeline(流水线)处理技术使得DSP芯片大大减少了指令执行的时间,增强了处理器的处理能力。一条指令在执行的过程中需要经过取指、指令译码、取操作数以及指令执行等几个阶段,DSP的pipeline技术是指程序在运行时若干条指令是同时进行的,即在本条指令执行的同时,其后的3条指令也分别完成了取操作数、指令译码、取指令等操作,也就是说,在每个指令周期内,共有4条不同的指令处于激活状态,每条指令处于不同的执行阶段。正是采用这种pipeline技术才使得DSP的加法运算、乘法运算、乘加运算能够在一个指令周期内完成。
总结:从上面可以看出DSP适合应用在大量重复性运算,数据操作重复性高的,实时性要求高,运算量大的场合,DSP偏重计算。
ARM:Advanced RISC Machines 。ARM处理器是指采用ARM公司的IP核的微处理器。这类处理器成本低、集成度高、有丰富的外设,多数的ARM芯片都可以算作SOC了,基本上外围加上电源接口和驱动接口就可以构成一个最小系统了。
基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。可以看出ARM处理器偏重控制。
DSP与ARM的区别:
ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,它的速度和数据处理能力一般,但是外围接口比较丰富,标准化和通用性做的很好,而且在功耗等方面做得也比较好,所以适合用在一些消费电子品方面。
而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。由于其在控制算法等方面很擅长,所以适合用在对控制要求比较高的场合,比如军用导航、电机伺服驱动等方面。
如果只是着眼于嵌入式应用的话,嵌入式CPU和DSP的区别应该只在于一个偏重控制一个偏重运算了。
参考文章:http://blog.163.com/liuhonggaono1@126/blog/static/10497901201183004839992/