DSP和CPU的区别

2019-07-23 14:47发布

数字信号处理器(Digital Signal Processors,DSPs)是电信、广播、医疗图像、消费类电子以及工业和马达控制等嵌入式系统的核心器件。

开发者可以用DSP来快速处理数字化的信号,如音频、视频和传感器信号。DSP可以对数字信号流执行快速的数**算,其运算能力是普通处理器所无法比拟的。这些数**算从简单的加减法和乘法到复杂滤波以及信号分析功能如快速傅立叶变换(Fast Fourier Transforms,FFTs)和离散余弦变换(Discrete Cosine Transforms,DCTs)。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
zhangmangui
1楼-- · 2019-07-23 18:32
 精彩回答 2  元偷偷看……
zhangmangui
2楼-- · 2019-07-23 18:47
数字信号处理器(Digital Signal Processors,DSPs)是电信、广播、医疗图像、消费类电子以及工业和马达控制等嵌入式系统的核心器件。

开发者可以用DSP来快速处理数字化的信号,如音频、视频和传感器信号。DSP可以对数字信号流执行快速的数**算,其运算能力是普通处理器所无法比拟的。这些数**算从简单的加减法和乘法到复杂滤波以及信号分析功能如快速傅立叶变换(Fast Fourier Transforms,FFTs)和离散余弦变换(Discrete Cosine Transforms,DCTs)。
DSP对问题提供了可编程的解决方案,如果没有DSP,这些问题可能只有用定制的ASIC(专用集成电路)或者FPGA(现场可编程门阵列)才能解决。从表面上来看,DSP与标准微处理器有许多共同的地方:一个以ALU为核心的CPU、地址和数据总线、RAM、ROM以及I/O端口。
DSP的特点
DSP在体系结构上与通用微处理器有很大的区别。下面是几个关键的不同点:

单周期指令:大多数DSP都拥有流水结构,它可以在一个时钟周期内执行一条语句。

快速乘法器:信号处理算法往往大量用到乘加(multiply-accumulate,MAC)运算。DSP有专用的硬件乘法器,它可以在一个时钟周期内完成MAC运算。硬件乘法器占用了DSP芯片面积的很大一部分。(与之相反,通用微处理器采用一种较慢的、迭代的乘法技术,它可以在多个时钟周期内完成一次乘法运算,但是占用了较少了硅片资源)。

多总线:DSP有分开的代码和数据总线(一般用术语“哈佛结构”表示),这样在同一个时钟周期内可以进行多次存储器访问——这是因为数据总线也往往有好几组。有了这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个(或者更多)的操作数。

地址发生器:DSP有专用的硬件地址发生单元,这样它可以支持许多信号处理算法所要求的特定数据地址模式。这包括前(后)增(减)、环状数据缓冲的模地址以及FFT的比特倒置地址。地址发生器单元与主ALU和乘法器并行工作,这就进一步增加了DSP可以在一个时钟周期内可以完成的工作量。

硬件辅助循环:信号处理算法常常需要执行紧密的指令循环。对硬件辅助循环的支持,可以让DSP高效的循环执行代码块而无需让流水线停转或者让软件来测试循环终止条件。

数据格式:除了标准的整数型格式外,DSP一般支持定点和(或)浮点数。对数据格式和精度的选择取决于应用程序所需,例如:
16位定点DSP可以满足语音信号处理和控制所需
24位和32位定点DSP可以满足高质量音频信号处理所需
32位浮点DSP可以满足图形和图像处理所需
NashSKY
3楼-- · 2019-07-23 18:49
版主你好!
      其实不同芯片的不同特性,对于CC++开发来说是不是影响不大?因为写程序的时候只需要调用封装好的程序就行了,并不用关心CPU的特性。
例如,C2000的流水结构,写CC++真的有关注它?
甚至在TI官方提供FLASH copy到 RAM的函数:
MOVL XAR5,#_text_size ; Store Section Size in XAR5  
MOVL ACC,@XAR5 ; Move Section Size to ACC  
MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6  
MOVL XAR7,#_text_runstart ; Store Run Address in XAR7  
LCR copy ; Branch to Copy  
第一句和第二句之间就出现流水线保护(Pipeline Protection),可能会浪费掉三个时钟周期。
      另外,还有一个疑问,现在网上到处在卖28335的开发板,28377却很少(好像还没有,只有TI提供的LaunchPad),其实感觉28377比28335多好多东西。例如TMU、VCU、CLA,感觉这些学起来会更有意思。。
      我是新手,上述可能都不是正确的!而且不知道外面的行情,勿喷!
zhangmangui
4楼-- · 2019-07-23 21:33
NashSKY 发表于 2016-3-23 14:14
版主你好!
      其实不同芯片的不同特性,对于CC++开发来说是不是影响不大?因为写程序的时候只需要调用 ...

你是高手    28377目前没有看到板子    因为是新款
对软件确实影响不是很大  
tongbu2015
5楼-- · 2019-07-23 22:14
DSP主要是集成了数据的很多处理算法的,比一般的MCU开发起来是简洁的多。

一周热门 更多>