处理器/DSP
随着新市场的增长和随之而来的技术要求,一些技术得到越来越多的利用。一种这样的技术是数字信号处理 (DSP),它可以采用芯片的形式,也可以作为 IP 内核,为片上系统 (SoC) 集成做好准备。虽然 DSP 已经存在了很长时间,但新一代 DSP 支持对于解决某些市场很重要的功能。一个这样的市场是物联网 (IoT)。由于许多物联网设备的性质,它们受益于运行实时操作系统 (RTOS)。本文着眼于如何将 DSP 和 RT-Thread RTOS 一起用于 IoT 应用程序。
DSP技术的演进
DSP 的目的是转换和操作真实世界的模拟信号,这些信号在自然界中不断受到重视。该操作是通过信号处理算法执行的。作为自 1980 年代以来一直存在的技术,DSP 在硬件功能和软件开发工具和基础设施方面已经发展了很多。早些年,算法是用汇编语言编写到 DSP 上的。随着 DSP 市场的扩大和算法变得更加复杂,架构不断发展以促进高级语言编译器的开发。
具有嵌入式 DSP 内核的芯片包括片上存储器,通常足以包含执行专用任务所需的完整程序。现代 DSP 应用范围包括音频/语音处理、图像处理、电信信号处理、传感器数据处理和控制系统。然后是物联网市场,它涵盖了这些应用程序在众多用例中的组合。行业分析公司 Markets and Markets 预计,到 2027 年,全球物联网技术将增长到 5664 亿美元。
为什么 DSP 非常适合物联网设备?
物联网就是通过使用不同类型的传感器收集的数据来通信和连接现实世界中的事物。DSP 用于分析和处理从传感器接收到的连续变化的信号。DSP 设计用于分析和处理音频、视频、温度、压力或湿度等真实世界的信号。例如,CEVA-SensPro2sensor hub DSP 系列设计用于处理和融合多个传感器,以及用于上下文感知的神经网络推理。DSP 任务涉及精确和准确的实时重复数字计算。随着物联网市场的增长推动越来越多的传感器的部署,收集到的所有数据都需要进行高效的实时处理。在物联网设备上直接处理数据,而不是将其发送到云端进行处理,这是一个很大的推动力。
现在正在发生的另一个趋势是越来越多地使用基于人工智能 (AI) 的算法在物联网设备上本地处理数据。人工智能算法是基于神经网络模型的,需要高水平的并行性才能有效执行。计算并行性是 DSP 优于通用中央处理器 (CPU) 的关键优势,为了满足这一要求,现代 DSP 架构正在使用宽向量和单指令多数据 (SIMD) 功能。
简而言之,基于 DSP 的强大解决方案可以满足现代物联网设备的高性能计算需求和低功耗需求。
为什么 DSP 非常适合 RTOS?
正如 DSP 是一种专用处理器一样,RTOS 也是一种专用操作系统。DSP 致力于极其快速和可靠地处理真实世界的数据。RTOS 致力于可靠地满足响应/反应时间的特定时序要求。由于 DSP 与通用 CPU 相比更紧凑,因此与常规操作系统相比,RTOS 也是如此。这些特性符合物联网设备的要求,使 DSP 和 RTOS 成为物联网应用的完美匹配。
从历史上看,嵌入式设备通常只有一个专用用途,并且通常可以使用 8 位或 16 位微控制器。这些设备可以在没有 RTOS 的情况下进行管理。但是今天的物联网设备更加复杂,需要一个 32 位组合的 CPU 和 DSP 以及一个 RTOS 来管理控制功能和运行复杂的信号处理任务。
要问的问题是,现代 DSP 是否足以处理物联网设备的信号处理和控制功能。答案是,是的。提供面向 DSP 的功能和面向控制器的功能的混合 DSP 架构正在迅速被物联网和其他嵌入式设备采用。这种混合 DSP 支持超低指令字 (VLIW) 架构实现、单指令多数据 (SIMD) 操作、单精度浮点、紧凑的代码大小、完整的 RTOS、超快速上下文切换、动态分支预测等。这消除了物联网设备上需要额外的处理器来运行 RTOS。
面向DSP的实时操作系统
基于 DSP 的 RTOS 旨在利用 DSP 的高性能特性。它是一个抢占式、基于优先级的多任务操作系统,并提供非常低的中断延迟。这些 RTOS 带有驱动程序、应用程序编程接口 (API) 和特定于 DSP 芯片的 DSP 功能的运行时芯片支持库 (CSL)。可以控制所有片上外围设备,例如高速缓存、直接内存访问 (DMA)、定时器、中断单元等。这使物联网应用程序开发人员能够轻松配置 RTOS 以处理资源请求和管理系统。
RT-Thread,物联网应用的实时操作系统
RT-Thread 是一个开源的实时操作系统 (RTOS)。它展示了针对物联网设备优化的资源占用率极低、可靠性高、可扩展性高的实时操作系统的特点。RT-Thread 由丰富的中间件以及物联网设备所需的广泛硬件和软件生态系统提供支持。支持GCC、Keil、IAR等所有主流编译工具,支持POSIX、CMSIS、C++应用环境、Micropython、Javascript等多种标准接口。RT-Thread 还为所有主流 CPU 和 DSP 架构提供了强大的支持。线程间通信和同步通过诸如 RTOS 消息传递、信号量等服务得到有效和一致的处理,RT-Thread 提供用于资源丰富的物联网设备的标准版本和用于资源受限系统的 Nano 版本。有关详细信息,请参阅他们的网站:https://www.rt-thread.io/
据报道,截至 2021 年 12 月,RT-Thread 已为 15 亿台设备供电。[来源:RT-Thread]
CEVA DSP 和 RT-Thread RTOS
由于 CEVA 的 DSP 架构原生设计为支持 RTOS 功能和超快速上下文切换,因此使用 CEVA DSP 和 RT-Thread RTOS 实现的物联网设备可以处理不同资源之间的许多通信任务,而无需为此中断 RTOS。例如,多核通信接口 (MCCI) 机制实现了内核之间的命令通信和消息传递。内核之间的通信是通过使用 AXI 从端口直接访问专用命令寄存器来实现的。DSP 有专门的控制和指示来跟踪通过 MCCI 的通信状态。
多核通信接口(来源:CEVA)
内核之间的消息传递是通过使用每个 32 位的 MCCI_NUM 专用命令寄存器来执行的。32 位 COM_REGx 寄存器由外部内核通过 AXI 从端口写入,内核只读。命令启动器内核最多可以同时写入四个寄存器(128 位 AXI 总线)或同时写入八个寄存器(256 位 AXI 总线)。
当启动命令的内核将命令输出到 COM_REGx 时,寻址寄存器会更新,COM_STS 寄存器中的相关状态位也会更新。此外,中断 (MES_INT) 被断言以通知接收到的内核。
接收内核读取其中一个 COM_REGx 寄存器后,会向发起方发送读取指示。读取指示由接收内核使用专用的 RD_IND(读取指示)MCCI_NUM 位总线接口发送。RD_IND 总线的每一位分别表示来自 COM_REGx 寄存器之一的读取操作。使用 IO 接口,接收内核一次只能读取一个 COM_REGx 寄存器。不仅使不同内核之间的同步变得更容易,而且使这些内核上的不同任务之间的同步变得更容易。
CEVA 已将许多不同的 RTOS 移植到其 DSP 产品中。最新添加的是对 RT-Thread RTOS 的普通版和 nano 版的支持。RT-Thread 已移植到多个 CEVA DSP,例如 SensPro2、CEVA-BX1、CEVA-BX2、CEVA-XC16 等。
全部0条评论
快来发表一下你的评论吧 !