可以实现并行处理吗?

时间:2014-02-23 18:17:24

标签: parallel-processing embedded stm32

MCU能否真正进行并行处理?

我们只是说我在wana倒计时,通过另一个界面发送数据,再做一次工作,例如同时点亮一个LED。

这甚至可能吗?

2 个答案:

答案 0 :(得分:4)

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

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

允许并行执行的另一个低级架构功能是pipeline execution。这允许通过同时运行同一操作的不同阶段,每个周期可以运行多个周期的指令来生成一个结果。

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

支持真正并行处理的微控制器架构包括XMOSPicoChipCell processor。历史上Transputer开创了微处理器中的并行处理。

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

答案 1 :(得分:1)

一家名为Parallax的公司制造了一款名为Propeller的8核MCU,可进行并行处理。他们的编程语言" Spin"有趣,面向对象,脚本,但也有内联汇编。