{
  "slug": "flash-backed-write-cache",
  "term": "Flash-backed write cache",
  "aliases": [
    "FBWC",
    "cache-to-flash"
  ],
  "definition": "Flash-backed write cache preserves a controller's volatile write-cache contents by copying them to flash using backup energy when external power is lost.",
  "note": "Traditional battery-backed write cache keeps DRAM powered during an outage. Flash-backed designs instead use backup energy for a DRAM-to-flash transfer. The energy source can be a battery or a supercapacitor, so a battery alone does not identify the architecture. [hpe-fbwc] [dell-nvcache]\n\nSaving cache, restoring it and destaging to drives are distinct steps. The cited 2011 design restores flash contents to DRAM, then waits for the controller to write them to disk before erasing and rearming flash. This is a documented implementation, not a universal recovery sequence. [dell-nvcache]\n\nPower-on during cache preservation can interrupt that process and require an additional reset in the cited controller family. Recovery behavior and readiness depend on the exact hardware and firmware. [dell-nvc-preservation]\n\nCache preservation does not establish controller-failure recovery. For array-controller failure, the cited 2013 service procedure transfers the original cache module and capacitor pack to an identical controller model; the drives also move to the recovery server. Compatibility is part of that documented recovery path, not a universal plug-in guarantee. [hpe-cache-recovery]",
  "status": "shipping",
  "advantages": [],
  "limitations": [
    {
      "text": "Preserving controller cache does not by itself establish that data acknowledged by a downstream drive has reached that drive's nonvolatile storage.",
      "citationIds": [
        "linux-cache"
      ]
    },
    {
      "text": "Retained dirty cache can still need the matching virtual-disk configuration: the cited RAID controller guide warns that discarding preserved cache before importing the relevant foreign configuration can lose data.",
      "citationIds": [
        "dell-preserved-cache"
      ]
    }
  ],
  "related": [
    "write-back-cache",
    "power-loss-protection",
    "cache-flush",
    "raid-write-hole"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "dell-nvcache",
      "title": "Bill Lynn and Ansh Gupta. Non-Volatile CACHE for Host-Based RAID Controllers. Dell, Revision 2, January 2011, printed pp. 2-8.",
      "url": "https://i.dell.com/sites/csdocuments/shared-content_data-sheets_documents/en/nv-cache-for-host-based-raid-controllers.pdf",
      "accessed": "2026-11-01"
    },
    {
      "id": "hpe-fbwc",
      "title": "HP ProLiant BL680c G7 Server Blade User Guide: controller options, printed p. 65, BBWC and FBWC.",
      "url": "https://support.hpe.com/hpesc/public/api/document/c02580792",
      "accessed": "2026-11-01"
    },
    {
      "id": "dell-nvc-preservation",
      "title": "Dell PERC and HBA Unified User's Guide: cache preservation with nonvolatile cache, H965 and H975 scope.",
      "url": "https://www.dell.com/support/manuals/en-us/perc-h965i-adapter/perc_hba_unified_guide/cache-preservation-with-nonvolatile-cache?guid=guid-ff7fbf7f-d72b-4039-90fe-5aa2b5d53988&lang=en-us",
      "accessed": "2026-11-01"
    },
    {
      "id": "linux-cache",
      "title": "Linux kernel documentation: Explicit volatile write back cache control, flush/FUA and remapping.",
      "url": "https://docs.kernel.org/block/writeback_cache_control.html",
      "accessed": "2026-11-01"
    },
    {
      "id": "hpe-cache-recovery",
      "title": "HP ProLiant DL380p Gen8 Maintenance and Service Guide. Sept. 2013, Ed. 6 (661847-006a), pp. 60, 64: cache compatibility and recovery.",
      "url": "https://support.hpe.com/hpesc/public/api/document/c03254241?v=1762768920000",
      "accessed": "2026-11-01"
    },
    {
      "id": "dell-preserved-cache",
      "title": "Dell PowerEdge RAID Controller H310, H710, H710P, and H810 User's Guide. March 2013, Rev. A02, printed p. 46: managing preserved cache.",
      "url": "https://dl.dell.com/manuals/common/poweredge-rc-h710_user%27s%20guide_en-us.pdf",
      "accessed": "2026-11-01"
    }
  ],
  "provenance": [
    "Vendor documentation and Linux API review, not a hardware power-fault test or a universal retention guarantee. The separate-drive-cache limitation is an engineering inference across the controller and device boundaries.",
    "The preservation/reset example is scoped to Dell H965/H975 documentation. The 2011 recovery sequence and HP G7 comparison are historical implementation examples.",
    "Controller-failure example: HP ProLiant DL380p Gen8. Preserved-cache example: Dell H710/H710P/H810. These are historical, model-specific procedures, not universal recovery instructions; separating retained bytes from recovered pending writes is an engineering inference."
  ],
  "updated": "2026-11-01"
}
