数字信号处理中的处理器技术
1. Parallela 编程路径
Parallela 可通过 Epiphany 软件开发套件(eSDK)进行编程。eSDK 基于标准开发工具,包含优化的 C 编译器、功能模拟器、调试器和多核集成开发环境(IDE)。它能直接实现常规的 ANSI - C,无需任何 C 子集、语言扩展或单指令多数据(SIMD)风格编程。eSDK 与硬件抽象层(HAL)交互,允许用户应用程序与硬件进行交互。
在对硬件进行编程时,关键问题是创建程序,使每个核心的功能能够高效利用其内部 32 kB 的内存,该内存被分为四个独立的 8 kB 存储体。此外,每个核心还能快速访问其他核心的内存,这意味着数据可以并行传递,从而使流式处理有效工作。核心还可访问与 ARM 处理器共享的内存,这为提供输入数据提供了一种方式。
效率的判断依据是计算能否在每个核心之间有效分配,因此需要确保进行高效的分区。这将确保能够充分利用核心功能,保持算法的高度规则数据流,使数据传递与核心之间的内存映射相匹配。这可能需要对架构有空间上的理解,以确保功能效率得以保持并实现规则匹配,从而利用快速的核心间数据传输,避免多次访问共享内存。
2. DSP 处理器
2.1 早期 DSP 处理器架构
传统微处理器架构的顺序性使其不适用于高效实现复杂的 DSP 系统,这促使了专用的 DSP 微处理器的发展,如德州仪器的 TMS32010。早期的 DSP 微处理器基于哈佛架构,与冯·诺依曼架构在内存组织和专用 DSP 功能方面有所不同。
在冯·诺依曼架构中,一个内存用于存储程序代码和数据,这在 DSP 实现中形成了内存瓶颈,因为无法有效利用