DEENESPTFRRUARHIKOZHNL
AUTOSAR_CP_SWS_EEPROMAbstraction FIG-ec6d8834130d7dfa 863 × 651 px 2 Release(s)

Figure 7.1: Virtual vs. physical memory layout

SHA-256 Inhalts-Fingerabdruck: ec6d8834130d7dfaf26bd8873ce4f73b3443a4156a6b7bf843a347707f97f5cf
✦ 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: Speicherabbildungs- und Adress-Mapping-Diagramm (Memory Layout).
  • Technischer Zweck & Einordnung: Visualisierung der Adressraumtransformation im Modul EEPROM Abstraction (Ea, AUTOSAR Classic BSW, Memory Hardware Abstraction Layer).
  • Funktionale Einordnung:
    • Vermittelt zwischen der standardisierten, virtuellen Blockadressierung der oberen Schichten (NVRAM Manager / NvM via Memory Abstraction Interface / MemIf) und dem linearen, seitenorientierten Adressraum des zugrundeliegenden EEPROM Drivers (Eep).
    • Entkoppelt den 32-Bit-Zugriff (16-Bit Block Number + 16-Bit Block Offset) von der physischen Speicherorganisation und bildet variable Blockgrößen auf feste Page-Einheiten (EA_VIRTUAL_PAGE_SIZE) ab.

2. Komponenten, Entitäten & Schnittstellen

  • Virtueller Adressraum (Upper Layer Sicht / NvM):
    • 16-Bit Block Number: Logische Adresskomponente zur Selektion des Datenblocks (theoretischer Wertebereich: 1 … 65535).
    • 16-Bit Block Offset: Byte-Offset innerhalb eines logischen Blocks; limitiert die maximale Nutzdatenlänge eines Blocks auf 64\,KiB (2^16\,Bytes).
    • Virtuelle Blöcke (Sparse Mapping): Jeder logische Block spannt im virtuellen Adressraum bis zu 64\,KiB auf; ungenutzter Raum bleibt logisch allokiert, wird jedoch nicht physisch belegt.
  • Physischer Adressraum (Lower Layer Sicht / Eep):
    • Page-Alignment (EA_VIRTUAL_PAGE_SIZE): Konfigurierte Paginierungsgröße (im Diagramm: 8\,Bytes).
    • Block-Allokation & Page-Bedarf:
      • Block #1: 32\,Bytes → 4\,Pages (4 × 8\,Bytes = 32\,Bytes), kein Verschnitt (0 Bytes internal residue).
      • Block #5: 100\,Bytes → 13\,Pages (13 × 8\,Bytes = 104\,Bytes), Verschnitt: 4\,Bytes (internal residue).
      • Block #17: 38\,Bytes → 5\,Pages (5 × 8\,Bytes = 40\,Bytes), Verschnitt: 2\,Bytes (internal residue).
  • Mathematische & relationale Bindungen:
    • Page-Berechnung: $\text{Pages}(B) = \lceil \text{BlockSize}(B) / \text{EA\_VIRTUAL\_PAGE\_SIZE} \rceil$
    • Blocknummern-Fortschaltung: $BlockID_n+1 = BlockID_n + Pages(B_n)$ Daraus resultiert die Sperrung nachfolgender Blocknummern (z. B. blockiert Block #1 die IDs 2, 3, 4; Block #5 blockiert IDs 6 … 16).
    • Internal Residue (Verschnitt): $\text{Residue}(B) = (\text{Pages}(B) \times \text{EA\_VIRTUAL\_PAGE\_SIZE}) - \text{BlockSize}(B)$

3. Dynamisches Verhalten & Sequenzablauf

Das Diagramm definiert das statische Allokationsmodell, welches die Laufzeit-Adressberechnung deterministisch steuert:

  1. API-Aufruf: NvM ruft über MemIf die Schnittstelle Ea_Read, Ea_Write oder Ea_EraseImmediateBlock mit Parametern BlockNumber, BlockOffset und Length auf.
  2. Adressauflösung: Das Modul Ea berechnet die physische Basisadresse im EEPROM direkt ohne dynamische Allocation-Tables oder Wear-Leveling (im Gegensatz zu Fee): $$\text{Eep\_Address} = \text{Ea\_BaseAddress} + ((\text{BlockNumber} - 1) \times \text{EA\_VIRTUAL\_PAGE\_SIZE}) + \text{BlockOffset}$$
  3. Treiber-Delegation: Ea setzt die Lese-/Schreibanforderung in synchrone/asynchrone Aufrufe an den Treiber ab (Eep_Read, Eep_Write).
  4. Fehlerbehandlung:
    • Ist (BlockOffset + Length) > BlockSize, meldet Ea den Fehler EA_E_INVALID_BLOCK_LEN an das Default Error Tracer (Det).
    • Ist die BlockNumber ungültig oder nicht konfiguriert, erfolgt EA_E_INVALID_BLOCK_NO.

4. Normative Relevanz & Entwickler-Hinweise

  • Konfigurationsverpflichtung (Ea.bmd / BSW-Tooling):
    • EaVirtualPageSize: Muss zwingend ein ganzzahliges Vielfaches der hardwarebedingten EepWriteUnitSize / Eep_PageSize des EEPROMs sein.
    • Nicht-kontinuierliche Blocknummern: Konfiguratoren/Integratoren dürfen EaBlockNumber nicht fortlaufend inkrementieren (1, 2, 3 …). Jede Blocknummer reserviert N virtuelle Page-Indizes. Eine fälschliche Vergabe von Block #2 bei einem 32-Byte-Block #1 führt zu Adressraum-Kollisionen und Datenkorruption.
  • Speicherökonomie & Padding:
    • Jedes Datenobjekt im NvM sollte idealerweise auf ein Vielfaches von EA_VIRTUAL_PAGE_SIZE aligned werden, um ungenutzten Speicherverschnitt (internal residue) zu eliminieren.
    • Da die ungenutzten Bytes einer End-Page für Folgeblöcke unzugänglich sind, verringern unpassende Blockgrößen die Netto-Kapazität des physischen Speichers signifikant.
  • Architekturelle Grenzen:
    • Adressbereich pro Block fest auf maximal 65.535\,Bytes begrenzt.
    • Keine implizite Redundanzverwaltung oder Blockverschiebung; defekte Speicherzellen führen ohne übergeordnete NvM-Redundanzmechanismen (Redundant Blocks) zum Datenverlust.

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

R22-11 → R23-11 redaktionell Vorgänger: FIG-ac637fea65c6a128
  • Füllmuster ungenutzter Speicherbereiche: Die Schraffur (graue Diagonallinien) in den ungenutzten Bereichen des virtuellen Adressraums (Block 1, Block 2, Block 3) sowie des physischen Adressraums wurde durch eine flächige hellgraue Füllung ersetzt.
  • Begrenzungsrahmen: Der äußere schwarze Rahmen um das gesamte Diagramm wurde entfernt.
  • Bildausschnitt: Die zuvor oberhalb des Rahmens sichtbare Textzeile („number thus would be 17.“) wurde entfernt; am unteren Rand sind Fragmente der Bildunterschrift sowie des nachfolgenden Textes sichtbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Aus dem Dokument extrahierter Text & Kontext

Begleitender Spezifikationstext:

Specification of EEPROM Abstraction AUTOSAR CP R24-11 [SWS_Ea_00005] Upstream requirements: SRS_MemHwAb_14001 ⌈Each configured logical block shall take up an integer multiple of the configured virtual page size EaVirtualPageSize.⌋ Example: If the virtual page size is configured to be eight bytes, logical blocks can be of size 8, 16, 24, 32, ... bytes but not e.g. 10, 20, 50, ... bytes. [SWS_Ea_00068] Upstream requirements: SRS_MemHwAb_14001 ⌈Logical blocks must not overlap each other and must not be contained within one another.⌋ Example: The address alignment / virtual paging is configured to be eight bytes by setting the parameter EA_VIRTUAL_PAGE_SIZE accordingly. The logical block number 1 is configured to have a size of 32 bytes (see Figure 7.1). This logical block would use exactly 4 virtual pages. The next logical block thus would get the block number 5, since block numbers 2, 3 and 4 are "blocked" by the first logical block. This second block is configured to have a size of 100 bytes, taking up 13 virtual pages and leaving 4 bytes of the last page unused. The next available logical block number thus would be 17. Figure 7.1: Virtual vs. physical memory layout 16 of 62 Document ID 287: AUTOSAR_CP_SWS_EEPROMAbstraction

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R23-11 AUTOSAR_CP_SWS_EEPROMAbstraction S. 15 7.1 Figure 7.1: Virtual vs. physical memory layout
R24-11 AUTOSAR_CP_SWS_EEPROMAbstraction S. 16 7.1 Figure 7.1: Virtual vs. physical memory layout