リアルタイム信号処理のための統合型32/64ビット・ハイブリッド・スカラーエンジン
(github.com/PJHkorea)以前にBCI関連で共有していたオープンソースですが、皆さんにも何かしら役立つ部分があるかもしれないと思い、共有します。
目的は、アイドル時間を長く取って低発熱を維持しながら、ノイズのない信号を高速に検出することです。
1つのチップに1つのコードをポーティングし、碁盤の目のような並列構造で、センサーの離脱のような深刻なノイズが発生した際に、
該当ノードが周囲の東西南北ノードに自分を迂回するよう指示し、何とかシステムを維持することが
目的でした。
以下は関連する思想と機能です。
本プロジェクトは、64ビットネイティブの組み込み環境に最適化されたリアルタイム信号検出およびノイズ加速コアエンジンの実装に焦点を当てています。重い多次元行列演算と偏微分方程式(PDE)を完全に排除することで、高い効率を実現しました。
基本的なハードウェアアーキテクチャは、電気的ノイズとセンサー信号の欠落により、高周波リアルタイム処理では大きな制約を受けます。本エンジンは、低コストのグリッド配列ベースのチップトポロジーを活用し、この問題をソフトウェアレベルで解決します。高価なシングルボードコンピュータ(SBC)の代わりに、直属の隣接ノード(東・西・南・北)とのみ通信する低価格マイクロコントローラ(MCU)グリッドを使用します。超小型・低価格のMCUチップで構成された、高密度なチェス盤状のハードウェアレイアウトを想像してください。この構造は、決定論的(Deterministic)な実行タイミングを保証し、優れた耐障害性(Fault Tolerance)を提供します。
フラットなスカラレジスタによるキャッシュミス0%の達成厳格な1kHz決定論的ループタイミングを満たすため、多次元配列(float[][])とポインタ追跡(Pointer Chasing)方式を完全に捨てました。代わりに、すべてのアルゴリズムをスカラレジスタレベル(p00, p11)へ完全にフラット化(Flattening)しました。これにより、ネイティブ64ビットFPUがレジスタを直接マッピングし、単一クロックサイクル内で演算を実行できます。
分岐のない状態回転(ジッターゼロのif処理)CPUパイプラインのフラッシュ(Flush)を防ぐため、コア実行経路から条件文(if文)を完全に除去しました。ノイズ緩和は、レイヤー1の垂直状態回転メカニズムによって滑らかに処理され、これは連続回転を用いて高エネルギーノイズを効果的にノッチフィルタリング(Notch-filtering)します。
Padé [1/1] 有理近似式を用いたリアルタイムスケーリング高周波ループ内部でexp()のような重い超越関数を呼び出すことは、組み込みCPUのタイミングにとって大きなリスク要因です。本エンジンはこれをPadé有理近似式に置き換えることで、指数曲線を単純な算術方程式へ変換します。これにより、連続マッピングに必要な演算コストを大幅に削減できます。
微分なしのメッシュ迂回(自律的な障害隔離)特定ノードで持続的かつ極端なノイズや物理的な信号欠落が発生すると、レイヤー1が自動的に局所的なアポトーシス(Apoptosis)をトリガーし、隣接ノードへ隔離信号をブロードキャストします。グリッド全体で重い偏微分方程式を再計算する代わりに、エンジンは隣接出力に交差軸の負符号(-)結合を適用します。この巧妙な数学的トリックにより、自発的な時計回りの渦度(Vorticity, Curl)が発生し、欠陥ノードが安定状態へ回復するまで、信号フローをデッドゾーン周辺の対角方向へ滑らかに迂回させます。
1件のコメント
外付け定数分離スイッチングカーネルを内蔵した3重シャーシ位相循環組み込みスケジューラにご関心のある方は、
fluxmesh_constant_slot_test.hとREADME4-3.mdをご覧いただけますと幸いです