DEENESPTFRRUARHIKOZHNL
AUTOSAR_CP_SWS_NVRAMManager FIG-3d8c9003fc5326dd 297 × 961 px 1 Release(s)

Figure 7.6: Redundant NVRAM block layout

SHA-256 Inhalts-Fingerabdruck: 3d8c9003fc5326dd6dbd00751db98c603316300925fe5bb0b0114e5ec234898f
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08

1. Diagrammtyp & Architektur-Kontext

  • Klassifikation: Schematisches Speicher-/Block-Layout (Physical/Logical NV Memory Data Structure).
  • Technischer Zweck: Definition der strukturellen Zusammensetzung eines NV-Speicherblocks vom Typ NVM_BLOCK_REDUNDANT im AUTOSAR NVRAM Manager (NvM, Memory Stack).
  • Funktionale Einordnung: Dient der Erhöhung der Datenverfügbarkeit und Fehlertoleranz für sicherheits- oder betriebskritische Non-Volatile-Daten. Das Layout abstrahiert die Speicherorganisation oberhalb des Memory Abstraction Interface (MemIf) bzw. der Flash/EEPROM-Treiber (Fee / Ea).

2. Komponenten, Entitäten & Schnittstellen

  • Instanzen (NV Block):
    • Kardinalität: Exakt 2 NV-Blöcke (Kopie 1 und Kopie 2 / Primary und Secondary NV Block) im persistenten Speicher repräsentieren gemeinsam einen logischen NVRAM-Block (NvMBlockDescriptor mit NvMBlockManagementType == NVM_BLOCK_REDUNDANT, gem. SWS_NvM_00531).
    • Korrespondierend im RAM existiert genau ein gemeinsamer RAM-Block (User Data Buffer oder NvM-interner Mirror) sowie optional ein ROM-Default-Block.
  • Interne Blocksegmente (je NV-Block):
    • NV block header (optional): Metadatenbereich für administrative NvM-Zwecke (z. B. Block-Identifikation, Schreibzykluszähler, Sequence Counter, Static Block ID Check).
    • NV block data: Eigentliche Nutzdaten (Payload), identisch mit dem konfigurierten Nutzdatenbereich des RAM-Blocks (NvMNvBlockLength).
    • NV block CRC (optional): Prüfsummenfeld (NvMBlockCrcType: 8-Bit, 16-Bit oder 32-Bit CRC) zur Gewährleistung der Datenintegrität jedes einzelnen NV-Blocks (SWS_NvM_00546).
  • Schnittstellenbeziehung zum Lower Layer:
    • Der NvM mappt die beiden NV-Blöcke auf zwei separate logische Blocknummern an der MemIf-Schnittstelle (üblicherweise über Bit 0 der Device-spezifischen Block-ID adressiert: Block-Index 2 * BlockId und 2 * BlockId + 1).

3. Dynamisches Verhalten & Sequenzablauf

  • Read-Pfad (NvM_ReadBlock / NvM_ReadAll):
    1. Leseversuch Kopie 1: Der NvM liest Kopie 1 aus dem NV-Speicher und verifiziert optional Header und CRC.
    2. Erfolg: CRC gültig → Daten werden in den RAM-Block übertragen; Jobstatus wird auf NVM_REQ_OK gesetzt.
    3. Fallback bei Fehler: Schlägt der Lesevorgang fehl (CRC-Fehler, Hardware-Fehler) → Umschaltung auf Kopie 2.
    4. Redundancy Recovery: Ist Kopie 2 intakt, werden die Daten in den RAM übernommen, NVM_E_LOSS_OF_REDUNDANCY an das DEM gemeldet und je nach Konfiguration/Strategie ein Wiederherstellungsschreiben auf Kopie 1 initiiert.
    5. Totalausfall: Sind beide Kopien inkonsistent/defekt → Laden des Default-ROM-Blocks (sofern konfiguriert) und Fehlermeldung NVM_E_INTEGRITY_FAILED an das DEM; Jobstatus: NVM_REQ_INTEGRITY_FAILED.
  • Write-Pfad (NvM_WriteBlock / NvM_WriteAll):
    1. Sequenzielles Schreiben beider NV-Blöcke zur Vermeidung von Datenverlust bei Spannungsabfall (Brownout während des Schreibens).
    2. Neuberechnung der CRC für die RAM-Daten.
    3. Vollständiger Schreibvorgang für Kopie 1 → Validierung via Write-Verification (optional).
    4. Erst nach erfolgreichem Abschluss von Kopie 1 wird Kopie 2 geschrieben. Tritt während des ersten Schreibens ein Abbruch auf, bleibt Kopie 2 als konsistenter Altstand erhalten.

4. Normative Relevanz & Entwickler-Hinweise

  • Konfiguration (NvMBlockDescriptor in ARXML):
    • Parameter NvMBlockManagementType zwingend auf NVM_BLOCK_REDUNDANT konfigurieren.
    • NvMBlockUseCrc = TRUE ist für redundante Blöcke normativ dringend geboten (SWS_NvM_00546), da der NvM ohne CRC einen fehlerhaften Leseversuch nur über Rückgabewerte des Treibers (z. B. uncorrectable ECC) detektieren kann.
  • Speicherbedarf & Partitionierung:
    • Faktor 2: Verdopplung des physikalischen Speicherbedarfs im Flash/EEPROM pro Block zuzüglich zweifacher Header- und CRC-Overheads (NvMNvBlockNum = 2).
    • Fee/Ea-Sektoren und Block-Tabellen müssen für die doppelte Anzahl an Lower-Level-Blöcken dimensioniert sein.
  • Timing & Latenzen:
    • Schreiboperationen benötigen im Worst-Case mehr als die doppelte Dauer verglichen mit NVM_BLOCK_NATIVE. Kritisch bei Shutdown-Sequenzen (NvM_WriteAll) bezüglich der FTTI (Fault Tolerant Time Interval) und Power-Down-Hold-Zeiten.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R23-11 → R24-11 keine inhaltliche Änderung Vorgänger: FIG-c46cca80b8e9bd21

Keine inhaltlichen Änderungen erkennbar.

R24-11 → R25-11 keine inhaltliche Änderung Nachfolger: FIG-c46cca80b8e9bd21

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R24-11 AUTOSAR_CP_SWS_NVRAMManager S. 34 7.6 Figure 7.6: Redundant NVRAM block layout