DSP 简介
本节主要介绍 DSP 及其处理器的概念和应用。
DSP(Digital Signal Processing)即数字信号处理技术。DSP 芯片指能够实现数字信号处理技术的芯片。 DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的 DSP 指令,可以用来快速的实现各种数字信号处理算法。
广义来说,数字信号处理是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。很多人也认为:数字信号处理主要是研究有关数字滤波技术、离散变换快速算法和谱分析方法。
数字信号处理单元实际上是一个计算机,它按照指令对二进制的数字信号进行计算。例如,将声波信号与一个高频正弦波信号相乘,可实现幅度调制。实际上,数字信号往往还要变回模拟信号,才能发挥它的作用。例如,无线电是电磁波通过天线向外发射的,这时的电磁波只能是模拟信号。
![](/assets/E4FrbhlUEoJnwixF8cccqVRonhb-CSVfdvxd.png)
随着数字电路与系统技术以及计算机技术的发展,数字信号处理技术也相应的得到发展,其应用领域十分广泛。就所获取信号的来源而言,有通信信号的处理,雷达信号的处理,遥感信号的处理,控制信号的处理,生物医学信号的处理,地球物理信号的处理,振动信号的处理等。若以所处理信号的特点来讲,又可分为语音信号处理,图像信号处理,一维信号处理和多维信号处理等。
处理器
DSP 处理器全称数字信号处理器(Digital Signal Processor)是专门为高性能数学运算设计的专用处理器,简单的说我们可以将它理解为运算速度非常快的单片机。DSP 的设计与通用处理器(例如:ARM、x86、MIPS 等)不同,DSP 处理器内部管理组件非常少,但数学运算指令,特别是 SIMD(单指令周期多数据流)指令非常丰富而且高效,正因为它与通用处理器的设计思路不同,DSP 一般不运行操作系统或者仅运行一些特殊的小型 RTOS。
![](/assets/BBkMbE1uQort8jxiOR0cNsy5nSe-CLfL4RmS.png)
目前,市场上比较流行的 DSP是德州仪器公司(TI)推出的 C6000系列处理器,它数学运算性能非常强劲,外设也较为丰富。C6000 系列 DSP 不仅有纯 DSP 处理器芯片,也有 ARM + DSP 异构多处理器 SoC 芯片。随着 DSP 芯片复杂度越来越高、资源越来越丰富,现有的软件开发方式已经越来越难以支撑未来的需求。
当前 DSP 主要的软件开发方式有两种:
- 直接编写裸机程序
- 在 RTOS 之上开发应用程序
直接编写裸机程序,这种方式优点是程序运行效率高,基本没有其他软件消耗,对于早期功能比较简单的 DSP 较为合适。随着技术的发展, DSP 也和通用处理器一样,从单核走向多核;而多核 CPU 如果没有一款好的操作系统适配,应用开发是非常困难的,而且出 Bug 的概率也比单核高出不少。
目前多核 DSP 为了追求极致的运算能力,不支持 CACHE 在每个核间进行硬件同步(仅有一小段内存支持 CACHE 硬件同步),这种特殊设计导致 DSP 无法支持 SMP 操作系统。所谓 SMP(对称多处理器)操作系统是指:无论系统内有多少个 CPU,操作系统只有一个。例如,我们使用 Intel 多核处理器运行 Windows,不管 CPU 核心数有多少,它们都由一个 Windows 系统统一管理。既然多核 DSP 无法运行统一的操作系统,那么只能一个 DSP 核心运行一个操作系统实例。例如:C6678 DSP 拥有 8 个 C66 DSP 处理器核心,每个核心都运行一个 SysBios 操作系统实例。