数字信号处理器

数字信号处理器(DSP)是一种专门的微处理器芯片,其架构的业务需要优化的数字信号处理。数字信号处理器在MOS集成电路芯片上制造。它们广泛用于音频信号处理、电信、数字图像处理、雷达、声纳和语音识别系统以及常见的消费电子设备中,例如手机、磁盘驱动器和高清电视(HDTV)产品。

数字信号处理器的目标通常是测量,过滤或压缩连续的真实世界模拟信号。大多数通用微处理器也可以成功执行数字信号处理算法,但可能无法实时实时地跟上这种处理。此外,专用DSP通常具有更好的电源效率,因此由于功耗限制,它们更适合于便携式设备(如手机)。数字信号处理器通常使用特殊的存储器体系结构,这些体系结构能够同时获取多个数据或指令。数字信号处理器通常还采用离散余弦变换来实现数据压缩技术。 (DCT)特别是DSP中广泛使用的压缩技术。

数字信号处理器

数字信号处理器的构建

软件架构

按照通用处理器的标准,数字信号处理器指令集通常是高度不规则的;因此,数字信号处理器指令集通常是不规则的。传统的指令集由允许它们执行更多操作的更通用的指令组成,而针对数字信号处理进行了优化的指令集包含用于DSP计算中经常发生的常见数xxx算的指令。传统指令集和数字信号处理器优化指令集都能够计算任意运算,但是在数字信号处理器优化指令集中,可能需要多个ARM或x86指令进行计算的运算可能只需要一条指令。

软件体系结构的一个含义是,通常将手动优化的汇编代码 例程(汇编程序)打包到库中以供重用,而不是依赖于高级编译器技术来处理基本算法。即使使用了现代的编译器优化,手动优化的汇编代码也更加有效,并且手写DSP涉及的许多常见算法都是为了充分利用体系结构优化。

指令集

  • 乘法累加(MAC,包括融合的乘法加法、FMA)操作
    • 广泛用于各种矩阵运算
      • 卷积滤波
      • 点积
      • 多项式评估
    • 基本的DSP算法在很大程度上取决于乘法累加性能
      • FIR滤波器
      • 快速傅立叶变换(FFT)
  • 相关的ISA和说明:
    • SIMD
    • 威力
    • 超标量架构
  • 用于环形缓冲区中模寻址和FFT交叉引用的位反转寻址模式的专用指令
  • DSP有时使用时间平稳编码来简化硬件并提高编码效率。
  • 多个算术单元可能需要内存架构来支持每个指令周期数次访问-通常支持同时从2条单独的数据总线和下一条指令(从指令高速缓存或第3个程序存储器)读取2个数据值。
  • 特殊的循环控件,例如在非常紧密的循环中执行几个指令字的体系结构支持,而没有用于指令提取或退出测试的开销-例如零开销循环和硬件循环缓冲区。

数据说明

  • 饱和算法,其中产生溢出的操作将以寄存器可以容纳的xxx值(或最小值)累积,而不是回绕(xxx值+1不会像许多通用CPU那样溢出至最小值,而是停留在xxx)。有时可以使用各种粘性位操作模式。
  • 定点算术通常用于加速算术处理
  • 单周期操作可增加流水线优势

程序流程

  • 浮点单元直接集成到数据路径中
  • 流水线架构
  • 高度并行的乘法累加器(MAC单位)
  • 硬件控制的循环,以减少或消除循环操作所需的开销

硬件架构

在工程中,硬件体系结构是指对系统物理组件及其相互关系的标识。该描述通常称为硬件设计模型,它使硬件设计人员可以了解其组件如何适合系统架构,并为软件组件设计人员提供软件开发和集成所需的重要信息。硬件架构的明确定义使各种传统工程学科(例如,电气和机械工程)可以更有效地协同工作,以开发和制造新的机器、设备和组件。

硬件也是计算机工程行业中用来将(电子计算机)硬件与运行于其上的软件明确地区分开的表达。但是,自动化和软件工程学科中的硬件不必只是某种形式的计算机。现代汽车运行的软件比阿波罗飞船要多得多。同样,如果不运行在飞机上嵌入和分发的数千万条计算机指令,并且驻留在标准计算机硬件和专用硬件组件(例如IC有线逻辑门、模拟和混合设备以及其他数字组件)中,现代飞机就无法运行。有效建模单独的物理组件如何组合以形成复杂系统的需求对于包括计算机。

内存架构

数字信号处理器通常针对流数据进行了优化,并使用能够同时获取多个数据或指令的特殊内存架构,例如哈佛架构或改良的冯·诺依曼架构,它们使用单​​独的程序和数据存储器(有时甚至可以并发访问)多条数据总线。

DSP有时可以依靠支持代码来了解缓存层次结构和相关的延迟。这是一个权衡,可以实现更好的性能。另外,广泛使用了DMA。

寻址和虚拟内存

DSP经常使用多任务操作系统,但不支持虚拟内存或内存保护。使用虚拟内存的操作系统需要更多时间在进程之间进行上下文切换,从而增加了延迟。

  • 硬件模寻址
    • 允许实现循环缓冲区,而无需测试包装
  • 位反转寻址,一种特殊的寻址模式
    • 用于计算FFT
  • 排除内存管理单元
  • 地址生成单元
0

点评

点赞

相关文章