2 つ以上のマイクロコントローラーのネットワークを介した同期のアルゴリズムについて議論する方法として、この質問を使用したいと思います。
今日の午後、2 つの異なるマイクロコントローラーでデータを交換し、実行を同期させて、同時に作業を開始し、ほぼ同時に終了するという問題について考え始めました。これは、実行しているコードが正しく、おそらくメモリにエラーがないことを保証する方法です (ご想像のとおり、両方のマイクロコントローラーでまったく同じエラーが発生する可能性は非常に低いです)。
マイクロコントローラー 1 のタイムスタンプを含むメッセージを送信するだけで、2 番目のマイクロコントローラーがそれを受信し、それを自身のタイムスタンプと比較してから、マイクロコントローラー 1 に再送信することを考えました。
その時点で、両者は同じコードの実行を開始し、最後に同期して、互いに結果を交換し、何か問題があるか、またはすべてが正常に機能しているかどうかという結論に達します。
これは、両方のマイクロコントローラー間で実行の同期を実現するための「まともな」方法だと思いましたが、これを行うためのより適切でスマートな方法があるかもしれないという頭から離れることはできません。
これは 2 つのマイクロコントローラーで問題なく動作する可能性がありますが、より多くのマイクロコントローラーで実行したい場合はどうなりますか? 前に説明した方法で 5 コア システム (たとえば 5 arm9 コア) を実装したい場合はどうすればよいでしょうか。これがいくつかのマイクロコントローラーで機能しているとは思いません。すべてのマイクロコントローラが異なる作業を行う 5 コア システムを実装したいと思っていたとしても、そうではありません (すべての場合において、同期が可能な限り最善である必要があると思います ....複数のコアが必要になったことがないことを本当に知りません、しかし、私はこれからそれをする必要があります)
編集:
この質問は、2 つ以上のマイクロコントローラーのネットワークまたは同じボード上での同期のアルゴリズムを理解する方法として使用したいと思います。
今日の午後、2 つの異なるマイクロコントローラーでデータを交換し、実行を同期させて、同時に作業を開始し、ほぼ同時に終了するという問題について考え始めました。これは、実行しているコードが正しく、おそらくメモリにエラーがないことを保証する方法です (ご想像のとおり、両方のマイクロコントローラーでまったく同じエラーが発生する可能性は非常に低いです)。
マイクロコントローラー 1 のタイムスタンプを含むメッセージを送信するだけで、2 番目のマイクロコントローラーがそれを受信し、それを自身のタイムスタンプと比較してから、マイクロコントローラー 1 に再送信することを考えました。
その時点で、両者は同じコードの実行を開始し、最後に同期して、互いに結果を交換し、何か問題があるか、またはすべてが正常に機能しているかどうかという結論に達します。
これは、両方のマイクロコントローラー間で実行の同期を実現するための「まともな」方法だと思いましたが、これを行うためのより適切でスマートな方法があるかもしれないという頭から離れることはできません。