ARM
ARM:Advanced RISC Machines 。ARM处理器是指采用ARM公司的IP核的微处理器。
- 这类处理器成本低、集成度高、有丰富的外设,多数的ARM芯片都可以算作SOC了,基本上外围加上电源接口和驱动接口就可以构成一个最小系统了。
- ARM最大的优势在于速度快、低功耗、芯片集成度高,多数ARM芯片都可以算作SOC,基本上外围加上电源和驱动接口就可以做成一个小系统了。
- 基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。
DSP
DSP(digital singnal processor),是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。
- DSP采用的是哈佛设计,即数据总线和地址总线分开(双总线),使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。
- 另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。
- 其主要应用是实时快速地实现各种数字信号处理算法。
- DSP特点:
- 在一个指令周期内可完成一次乘法和一次加法;
- 程序和数据空间分开,可以同时访问指令和数据;
- 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
- 具有低开销或无开销循环及跳转的硬件支持;
- 快速的中断处理和硬件I/O支持;
- 具有在单周期内操作的多个硬件地址产生器;
- 可以并行执行多个操作;
- 支持流水线操作,使取指、译码和执行等操作可以重叠执行。
ARM和DSP的区别
总体
ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,它的速度和数据处理能力一般,但是外围接口比较丰富,标准化和通用性做的很好,而且在功耗等方面做得也比较好,所以适合用在一些消费电子品方面;
而DSP主要是用来计算的,优势是强大的数据处理能力和较高的运行速度。
如果只是着眼于嵌入式应用的话,嵌入式CPU和DSP的区别应该只在于一个偏重控制一个偏重运算了。
对操作系统支持
- 内核源码开放的Linux与ARM体系处理器相结合,可以发挥Linux系统支持各种协议及存在多进程调度机制的优点,从而使开发周期缩短,扩展性增强。
- 一般在DSP内部有高速RAM,数据和程序要先加载到高速片内ram中才能运行。DSP为提高数字计算效率,牺牲了存储器管理的方便性,对多任务的支持要差的多,所以DSP不适合于作多任务控制作用。
- DSP:SYS/BIOS(RTOS)
- ARM:linux , RTOS
架构区别
GPP(通用处理器)为了存储器管理的方便(便于支持操作系统),一般采用指令、数据空间统一编码的冯·诺依曼结构。 这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。
DSP为了提高数据吞吐的速度,基本上都是指令、数据空间独立的哈佛结构。大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。
现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。
GPP(通用处理器)使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)
DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中(CMD文件的编写)。程序员在写程序时,必须保证处理器能够有效地使用其双总线。
架构优势
- DSP优势在于其有独特乘法器,一个指令就可以完成乘加运算,
- 但GPP(通用处理器)处理一般是用加法代替乘法,要n多cpu周期,尽管cpu主频很快,但还是要相当时间,这一点现在的GPP已经基本上可以做到内部单周期运算乘加指令了。
- DSP有专门的指令集,主要是专门针对通讯和多媒体处理的;
- 而ARM使用的是RISC指令集(当然ARM的E系列也支持DSP指令集)是通用处理用的。