Overview
NVRAM Manager (NvM)
1, Basic storage objects
- RAM Block (resides in RAM)
- ROM Block (resides in ROM)
- NV Block (resides in NV memory)
- Administrative Block (resides in RAM)
2, Block Management types
- Native NVRAM block (NV Blocks: 1)
- Redundant NVRAM block (NV Blocks: 2)
- Dataset NVRAM block (NV Blocks: 1..NvMNvBlockNum)
NVM Synchronization Mechanism
- Implicit synchronization
- Explicit synchronization
1, Implicit synchronization
- RAM Block is mapped to one SW-C
- Can't sharing RAM Block with multi SWC
- W-C accesses NVRAM using RAM Block (temporary /permanent)
- ensure the data consistency of RAM Block
2, Explicit synchronization
- SWC has to ensure data integrity of RAM block while copying data to/from RAM mirror
- enables the sharing of NVRAM blocks by different SWC
Accessing NvM using RTE
Accessing NV Data using SWC
1. Case 1a: Application providing reference to its RAM data area(Implicit Synchronization)
-
Using Temporary RAM Block by NvM
-
SWC to ensure data consistency for the RAM data
2.Case 1b: NvM fetches application RAM data via callback (NvM Explicit Synchronization)
-
No permanent RAM
-
responsible for copying consistent data to and from the NvM module’s RAM mirror
3.Case 2: Application SW-C accessing NVRAM blocks which have Permanent RAM blocks(Implicit synchronization)
- PIM is as RAM block in RTE
- ensure data consistency for the access to PIM
Accessing NV Data using NV SWC
1,Case 3a: Using Rte Explicit S/R Communication
- Used Rte_Write/Rte_Read/Rte_DRead to update RAM block
- config case for storing cyclic
- config case for storing store at shutdown
- config case for storing immediately
2,Case 3b: Using Rte Implicit S/R Communication
- Used Rte_IWrite/Rte_IRead to update RAM block