This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] MSPM0G3519: MSPM0 EEPROM Emulation Usage - Calculation on Space Utilization and Equivalent Endurance

Part Number: MSPM0G3519

Important note - 

Please note we only discuss memory space utilization and equivalent endurance here for the comparison. FEE method is a nice method to enable a wider range of data size configuration, and support some special features like CRC check. And that’s why it leads to a larger header.

Calculation on space utilization

  • Type A
    • Every record(64bytes/128bytes/256bytes) – 8-byte header + data
      • Record length can be configured.
      • 87.5% = 56-byte data / 64-byte record
      • 93.75% = 120-byte data / 128-byte record
      • 96.875% = 248-byte data / 256-byte record
  • Type B
    • Every data item(8bytes) – 2-byte flag + 2 byte ID + 4 byte Data
      • 50% = 4 byte Data / 8-byte data item
    •  
  • FEE
    • Every block – 24/32-byte block header + Data
      • Block length can be configured.
      • For example, block header is 32-byte with CRC enabled
        • 20% = 8-byte data / 40-byte block
        • 33.3% = 16-byte data / 48-byte block
        • 50% = 32-byte data / 64-byte block
        • 66.6% = 64-byte data / 96-byte block
        • 80% = 128-byte data / 160-byte block

Calculation on equivalent endurance based on 8 sectors(M0G3519 DATA FLASH for example)

  • Type A
    • Record size 64bytes – 8-byte header + 56-byte data
      • Equivalent endurance = 1kbyte/64byte * 8 sectors *100kcycles = 12800k cycles
    • Record size 128bytes – 8-byte header + 120-byte data
      • Equivalent endurance = 1kbyte/128byte * 8 sectors *100kcycles = 6400k cycles
  • Type B
    • Every data item(8bytes) – 2-byte flag + 2 byte ID + 4 byte Data
    • 2 group, each group 4 sectors
    • Number of data items = 1kbytes/8bytes *4sectors -1 =511
      • If user use 4 ID, Effective endurance = 511/4 * 2 group *100kcycles = 25550k cycles
      • If user use 16 ID, Effective endurance = 511/16 * 2 group *100kcycles = 6388k cycles
      • If user use 64 ID, Effective endurance = 511/64* 2 group *100kcycles = 1597k cycles
  • FEE
    • Every block – 24/32-byte block header + Data
    • 2 virtual sectors, each 4 physical sectors.
    • If block is 40-byte(8 bytes for data), Number of block = 1kbytes/40bytes *4sectors102
      • If user use 4 ID, Effective endurance = 102/4 * 2 virtual sectors *100kcycles = 5100k cycles
      • If user use 16 ID, Effective endurance = 102/16 * 2 virtual sectors *100kcycles = 1275k cycles
      • If user use 64 ID, Effective endurance = 102/64* 2 virtual sectors *100kcycles = 319k cycles
    • If block is 64-byte(32 bytes for data), Number of block = 1kbytes/64bytes *4sectors64
      • If user use 4 ID, Effective endurance = 64/4 * 2 virtual sectors *100kcycles = 3200k cycles
      • If user use 16 ID, Effective endurance = 64/16 * 2 virtual sectors *100kcycles = 800k cycles
    • If block is 160-byte(128 bytes for data), Number of block = 1kbytes/160bytes *4sectors25
      • If user use 4 ID, Effective endurance = 25/4 * 2 virtual sectors *100kcycles = 1250k cycles