2014-02-23 50 views
-1

MCU可以真正做并行处理吗?可以实现并行处理吗?

让我们只是说,我wana倒计时,通过另一个接口发送数据,并做了更多的工作,如同时点亮一个LED。

这可能吗?

+0

尽管问题可能是合理的,但您的示例用例几乎不是并行处理的典型或有用示例 - 它们是并行处理不会真正受益的任务。 – Clifford

+0

哦,对不起,我的问题只是基于做任何平行过程的可能性。所以,我对这个问题感兴趣,因为通过了解答案,它会让我思考我可以同时做的其他更多流程。它可能没有用处,但正如我所说的那样,这仅仅是一个例子。 – nciacrklo

+0

我明白你的观点,但通常情况下,并行处理不是很有用 - 你可以通过一个简单的多任务调度程序来实现这一点(参见[RTOS](http://en.wikipedia.org/wiki/Real-time_operating_system ))。特别是因为它被标记为STM32,这正是你需要的。 – Clifford

回答

4

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

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

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

确实支持真并行处理的微控制器体系结构包括XMOS,PicoChipCell processor。历史上,Transputer率先在微处理器中进行并行处理。

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

1

一家名为Parallax的公司生产了一款名为Propeller的8核MCU,它可以进行并行处理。他们的编程语言“Spin”是有趣的,面向对象的,脚本化的,但也有内联汇编。

相关问题