Integrierte 32/64-Bit-Hybrid-Skalar-Engine für Echtzeit-Signalverarbeitung
(github.com/PJHkorea)Dies ist ein Open-Source-Projekt, das ich zuvor im BCI-Bereich geteilt hatte, und ich teile es hier noch einmal in der Hoffnung, dass es vielleicht für einige von euch nützlich sein könnte.
Ziel ist es, die Leerlaufzeiten zu verlängern, um eine geringe Wärmeentwicklung aufrechtzuerhalten und gleichzeitig schnell rauscharme Signale zu erkennen.
Ein Code wird auf einen Chip portiert, und in einer schachbrettartigen Parallelstruktur wird bei starkem Rauschen, etwa durch den Ausfall eines Sensors,
der betreffende Knoten die umliegenden Knoten im Osten, Westen, Süden und Norden dazu veranlassen, ihn zu umgehen, damit das System irgendwie weiter funktionsfähig bleibt.
Das war das Ziel.
Im Folgenden werden die zugehörige Philosophie und die Funktionen beschrieben.
Dieses Projekt konzentriert sich auf die Implementierung einer Echtzeit-Signalerkennung und einer Core-Engine zur Rauschbeschleunigung, die für native 64-Bit-Embedded-Umgebungen optimiert ist. Durch den vollständigen Verzicht auf schwere mehrdimensionale Matrixoperationen und partielle Differentialgleichungen (PDE) wurde eine hohe Effizienz erreicht.
Die grundlegende Hardware-Architektur unterliegt bei hochfrequenter Echtzeitverarbeitung aufgrund von elektrischem Rauschen und Sensorausfällen starken Einschränkungen. Diese Engine löst das Problem auf Software-Ebene mithilfe einer kostengünstigen Chip-Topologie auf Grid-Array-Basis. Anstelle teurer Single-Board-Computer (SBC) wird ein Grid aus preiswerten Mikrocontrollern (MCU) verwendet, die nur mit ihren direkten Nachbarn (Ost, West, Süd, Nord) kommunizieren. Man kann sich ein dichtes, schachbrettartiges Hardware-Layout aus extrem kleinen und günstigen MCU-Chips vorstellen. Diese Struktur garantiert deterministisches Ausführungs-Timing und bietet eine hervorragende Fault Tolerance.
0 % Cache Misses durch flache SkalarregisterUm ein strenges deterministisches Loop-Timing von 1 kHz einzuhalten, wurden mehrdimensionale Arrays (float[][]) und Pointer Chasing vollständig aufgegeben. Stattdessen wurden alle Algorithmen vollständig auf Skalarregister-Ebene (p00, p11) abgeflacht. Dadurch kann die native 64-Bit-FPU die Register direkt abbilden und Operationen innerhalb eines einzelnen Taktzyklus ausführen.
Zweiglose Zustandsrotation (Zero-Jitter-if-Verarbeitung)Um CPU-Pipeline-Flushes zu vermeiden, wurden Bedingungen (if-Anweisungen) vollständig aus dem Core-Ausführungspfad entfernt. Die Rauschminderung wird nahtlos durch den vertikalen Zustandsrotationsmechanismus von Layer 1 verarbeitet, der mithilfe kontinuierlicher Rotation hochenergetisches Rauschen effektiv notch-filtert.
Echtzeit-Skalierung mit der Padé-[1/1]-rationalen ApproximationDas Aufrufen schwerer transzendenter Funktionen wie exp() innerhalb hochfrequenter Loops ist ein großes Risiko für das Timing eingebetteter CPUs. Diese Engine ersetzt sie durch die rationale Padé-Approximation, wodurch Exponentialkurven in einfache arithmetische Gleichungen umgewandelt werden. Das reduziert die Rechenkosten für kontinuierliches Mapping drastisch.
Differentialfreie Mesh-Umleitung (autonome Fehlerisolierung)Wenn an einem bestimmten Knoten dauerhaft starkes Rauschen oder ein physischer Signalausfall auftritt, löst Layer 1 automatisch eine lokale Apoptose aus und sendet ein Isolationssignal an die Nachbarknoten. Anstatt schwere partielle Differentialgleichungen im gesamten Grid neu zu berechnen, wendet die Engine eine kreuzachsige negative Vorzeichenkopplung (-) auf benachbarte Ausgaben an. Dieser clevere mathematische Trick erzeugt spontan eine Vorticity im Uhrzeigersinn (Curl) und leitet den Signalfluss glatt diagonal um die Dead Zone herum, bis sich der fehlerhafte Knoten in einen stabilen Zustand zurückerholt hat.
1 Kommentare
Falls Sie sich für einen eingebetteten Scheduler mit dreifachem Chassis-Phasenzirkulationsdesign interessieren, der einen externen Kernel zur Umschaltung konstanter Isolation integriert, würde ich mich freuen, wenn Sie einen Blick auf
fluxmesh_constant_slot_test.hundREADME4-3.mdwerfen.