Inhaltsverzeichnis

Software Lockstep

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.

1. Aktivierung via @integrity

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; 
}

2. Funktionsweise im Compiler-Backend

Im Gegensatz zu Hardware-Lockstep (wo zwei CPU-Kerne synchron dasselbe tun) implementiert Lyx dies auf Software-Ebene (Instruction-Level Redundancy):

Replikation der Instruktionen

  1. Redundante Berechnung: Der Compiler dupliziert kritische Registeroperationen.
  2. Vergleich (Check): Vor einem return oder einer dauerhaften Speicherung im RAM (Side-Effect) werden die Ergebnisse der primären und der redundanten Berechnung verglichen.
  3. Abweichung: Stimmen die Ergebnisse nicht überein, wird sofort ein Sicherheits-panic ausgelöst, um die Korruption von Systemzuständen zu verhindern.

3. Semantik und Einschränkungen

4. Vergleich der Integritäts-Modi

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.