Software Lockstep ist ein redundanter Ausführungsmodus in Lyx (v0.9.0+), der primär für Funktionen mit dem höchsten Sicherheitskritikalitätslevel (DAL A) eingesetzt wird. Er dient dazu, Rechenfehler (z. B. durch kurzzeitige Prozessorstörungen) zu erkennen, indem derselbe Pfad mehrfach abgearbeitet und die Ergebnisse verglichen werden.
Der Lockstep-Modus wird über das Integritäts-Pragma auf Funktionsebene oder Unit-Ebene aktiviert.
@dal(A)
@integrity(mode: software_lockstep, interval: 50)
fn calculate_flight_path(): int64 {
// Kritische Berechnungen
return result;
}
Im Gegensatz zu Hardware-Lockstep (wo zwei CPU-Kerne synchron dasselbe tun) implementiert Lyx dies auf Software-Ebene (Instruction-Level Redundancy):
return oder einer dauerhaften Speicherung im RAM (Side-Effect) werden die Ergebnisse der primären und der redundanten Berechnung verglichen.panic ausgelöst, um die Korruption von Systemzuständen zu verhindern.software_lockstep ist auf extern fn nicht erlaubt, da der Compiler keinen Zugriff auf den fremden Binärcode hat, um ihn zu replizieren.@wcet) berücksichtigt werden.@redundant Variablen kombinieren, um sowohl die Berechnung (CPU) als auch die Speicherung (RAM) abzusichern.| Modus | Schutzfokus | Hardware-Anforderung |
|---|---|---|
| Software Lockstep | Rechenoperationen (ALU/FPU) | Keine (rein Software-basiert) |
| Scrubbed | Speicherintegrität (Code-Segment) | Minimale (CRC-Unterstützung) |
| Hardware ECC | Speicherintegrität (RAM) | Spezielle ECC-Module |
Referenz: Lyx v0.9.0 Aerospace-Todo P0 #43/#44 – Integritäts-Management.