能否实现并行处理?

nci*_*klo 0 embedded parallel-processing stm32

MCU 真的可以进行并行处理吗?

假设我想倒计时,通过另一个接口发送数据,然后再做一项工作,例如同时点亮一个 LED。

这甚至可能吗?

Cli*_*ord 5

具有多个执行单元或内核的处理器可以执行并行处理。大多数微控制器没有多个执行单元。

一些架构支持 SIMD(单指令/多数据)指令,可以从单个指令生成多个结果——这是并行处理的低级形式,类似的 DSP(数字信号处理器)和带有 DSP 指令的微控制器支持双或多 MAC(乘法/累加)单元也是并行处理的一种形式。SIMD 和 MAC 都主要用于数字运算和信号处理应用。高端 DSP 通常支持其他指令级并行执行功能。

另一个允许并行执行的低级架构特性是流水线执行。这允许可能需要运行多个周期的指令通过同时运行同一操作的不同阶段来在每个周期生成一个结果。

大多数微控制器可以支持多任务或多线程调度程序,它可以根据所使用的调度算法为每个任务调度执行时间,从而给人以并发执行的印象。虽然这不是并行处理,实际上增加了开销而不是加速处理,但它在其他方面很有用,例如代码的功能分区,在基于实时优先级的抢占式调度程序的情况下,实现实时响应到事件。对于您在问题中给出的示例用例,这种调度形式是完全合适和充分的。请参阅实时操作系统 (RTOS)

支持真正并行处理的微控制器架构包括XMOSPicoChipCell 处理器。从历史上看,Transputer开创了微处理器并行处理的先河。

在同一进程的各个操作可以同时发生(当一个不依赖另一个的结果,或使用流水线时)的低级别实现高级别并行性的方法是在 FPGA 上实现一个进程- 本质上是在硬件而不是软件中实现处理,但是用于编程 FPGA 的语言与软件语言有相似之处。