Acquisition Storage & Recorder (NVMe/UFS, PLP, Thermal & Logs)
← Back to: Medical Imaging & Patient Monitoring
A medical acquisition recorder is reliable only when sustained write headroom, power-loss protection (PLP/last-gasp), thermal throttling control, and watchdog+event logs are engineered as one system—so frames never “silently” disappear. This page shows how to budget throughput, define recoverable stop boundaries, and produce evidence that data integrity is provable in validation and in the field.
H2-1 · What this page answers (Recorder decision snapshot)
This page helps design an acquisition recorder that keeps capture deterministic: choose NVMe vs UFS, keep power-loss behavior provable (PLP), prevent thermal throttling from causing hidden frame drops, and build watchdog + event logs that explain every failure.
Key Decisions (engineering verdicts you can verify)
-
When: Sustained recording bandwidth is near your interface limit and must stay stable for long sessions.
Choose: NVMe (PCIe).
Because: Multi-queue + higher headroom helps keep writes smooth under long steady load.
Verify: Run a 60-minute sustained write at worst-case workload and confirm throughput stays above your budget with margin. -
When: You prioritize board integration, low power, compact routing, and supply flexibility with a known throughput ceiling.
Choose: UFS.
Because: Embedded storage + power states are optimized for compact systems.
Verify: Confirm thermal steady-state does not trigger sustained throttling below your required MB/s. -
When: The requirement is “no corruption after power cut,” not just “best effort flush.”
Choose: PLP as a system requirement (device PLP or board-level hold-up + last-gasp).
Because: Software flush cannot guarantee media mapping/metadata consistency during an abrupt power loss.
Verify: Perform N repeated random power cuts during worst-case writes; confirm boot + data recovery meets your allowed loss window. -
When: “Hidden drops” are unacceptable (no visible alarm but frames are missing).
Choose: Thermal policy + early throttling tied to buffer watermarks.
Because: Thermal throttling causes a step-down in sustained bandwidth that can silently starve the pipeline.
Verify: Log temperature vs throughput vs buffer level and prove the system stays above the drop threshold. -
When: Your workload includes frequent small writes (metadata, indexes) alongside large frame blocks.
Choose: Write coalescing (aligned larger blocks) + controlled metadata cadence.
Because: Small writes increase write amplification and garbage collection pressure, reducing sustained throughput.
Verify: Track write latency distribution (p99/p999) and confirm it does not grow long tails over time. -
When: Recording must remain deterministic under CPU spikes or ISR jitter.
Choose: DMA + ring buffers and isolate real-time paths from non-real-time tasks.
Because: Determinism is a buffering + scheduling problem, not only a storage-speed problem.
Verify: Stress test with background load and confirm buffer never under-runs/over-runs. -
When: You need field diagnostics and “prove what happened.”
Choose: Watchdog + event logs with reset-cause, temp, media health, and queue stats.
Because: Without a forensic trail, reliability cannot be demonstrated or debugged.
Verify: Each fault produces a single, parseable event record with timestamp + cause + state snapshot. -
When: Endurance is a product requirement (multi-year continuous recording).
Choose: Endurance budgeting (TBW with write amplification assumptions) and workload shaping.
Because: The same MB/s can produce very different NAND wear depending on write pattern.
Verify: Measure WA proxy metrics (write size, GC frequency, latency tails) and keep a TBW margin buffer.
Terms (short, consistent meanings used on this page)
- PLP
- Power-loss protection that preserves media consistency when power is cut abruptly (device-level or system-level).
- Hold-up
- The time window the recorder can keep critical rails alive after PG drops, to complete last-gasp actions.
- Last-gasp
- The final action sequence after power-fail interrupt: freeze intake, commit queues, write essential metadata, stop safely.
- TBW
- Total bytes written rating used for endurance budgeting; must be interpreted with write pattern and amplification.
- Throttle
- A controlled (or forced) speed reduction due to temperature/power limits that can drop sustained write bandwidth.
H2-2 · Workload model: frames, bursts, sustained writes
Recorder failures are rarely caused by “not enough interface peak bandwidth.” They usually happen when sustained writes fall below the pipeline’s minimum for long sessions—often due to write granularity (small writes → higher write amplification), background garbage collection, and thermal throttling.
The 3 metrics that must be separated
- Peak bandwidth (burst) — determines whether buffers/DMA can absorb instantaneous frame arrivals without backpressure.
- Sustained bandwidth (steady) — determines whether hours-long recording remains stable after caches are exhausted and GC is active.
- Write granularity (4KB / 64KB / 1MB+) — determines write amplification and latency tails; too small → more GC pressure and drop risk.
Typical recorder workload pattern (why short tests lie)
- Short bursts when frames arrive or when batching flushes are triggered.
- Long sustained writes during continuous acquisition (the real requirement).
- Small metadata writes (indexes, timestamps, session markers) that can silently increase write amplification.
Estimation template (simple, consistent budgeting)
| Inputs | What to record | Why it matters |
|---|---|---|
| FrameSize (bytes) & FPS (or line/A-line rate) | DataRate ≈ FrameSize × FPS | Sets the baseline sustained write requirement. |
| Protocol + file/container overhead | Add 10–30% (typical) | Accounts for alignment, headers, indexes, and retries. |
| Metadata cadence (events/sec, bytes/event) | Small-write pressure indicator | Small writes can dominate GC and latency tails. |
| Required headroom | +20–30% (worst-case margin) | Protects against throttle, GC, and long-tail delays. |
| Write block target (coalesced size) | ≥64KB (often better) or tuned per media | Improves sustained writes by reducing overhead and WA pressure. |
Acceptance criteria: prove sustained MB/s at thermal steady-state for ≥60 minutes; track buffer level and p99 write latency to detect hidden risk.
H2-3 · Architecture: buffering, DMA, and isolation of real-time paths
A recorder becomes reliable when the real-time intake path (frames/events arriving on a fixed cadence) is isolated from non-deterministic storage latency (garbage collection, cache exhaustion, queue stalls, and thermal throttling). The architecture goal is simple: keep intake deterministic, and confine variability to a controlled buffer domain with explicit QoS rules.
What “isolation” means in practice
- Intake never waits on storage. Frames land in FIFO/RAM first; storage writes drain asynchronously.
- DMA owns the hot path. Direct writes (scatter-gather) reduce CPU jitter and make timing repeatable under load.
- Watermarks define behavior. High/low thresholds switch policies before buffers overflow or underrun.
- Degradation is controlled. If sustained MB/s falls below budget, the system enters a known state (warn → degrade → safe-stop), and the event is logged.
Buffer topology choices (pick by boundary conditions)
| Topology | Best fit | Failure risk | What to verify |
|---|---|---|---|
| Single buffer | Huge headroom; storage latency tightly bounded; drops acceptable | One long write tail collides with intake → overflow/drop | p99/p999 write latency stays far below the frame interval |
| Double buffer (ping-pong) | Stable frame cadence; moderate tails; simple deterministic pacing | A tail longer than one buffer period → overflow | Worst-case drain time < one buffer window (with margin) |
| Ring buffer (multi-segment) | Long sessions; unavoidable jitter; needs QoS policies and watermarks | If QoS is missing, latency accumulates silently → eventual drop | High-water action prevents overflow and is always logged |
Engineering rule: choose the simplest topology that can still absorb the long-tail behavior observed in a ≥60-minute run.
Backpressure & QoS strategy (policy menu, not compression)
- WARN (high watermark reached): throttle non-critical tasks, increase write coalescing, and raise telemetry rate (temp/latency/buffer).
- DEGRADED (sustained < budget): apply controlled reduction options (lower FPS / lower resolution / selective frame skipping), and record the exact policy decision in the event log.
- SAFE-STOP (critical watermark): stop intake in a defined sequence, commit session metadata, and guarantee the recorder can resume cleanly.
Acceptance criteria: under worst-case thermal and background load, buffer level never crosses the critical watermark without a deterministic policy transition and a single event record.
Metadata handling (small but decisive)
- Keep metadata minimal and structured: timestamp, trigger ID, session ID, segment index, and integrity tags.
- Separate streams: large frame blocks drain in bulk; metadata is batched at a fixed cadence to avoid small-write storms.
- Anchor recovery: periodic “session markers” enable deterministic resume after faults without scanning the entire media.
H2-4 · Interface choice: NVMe vs UFS (boundary and trade-offs)
NVMe and UFS can both record medical acquisition streams, but the correct choice is defined by sustained bandwidth headroom, concurrency (record + review), boot and bring-up complexity, and sourcing flexibility. This section uses hard criteria and a decision matrix rather than protocol deep dives.
Hard criteria that decide the interface
- Sustained write (with margin): budget based on ≥60-minute steady runs; add overhead (10–30%) plus worst-case margin (20–30%). If the margin pushes the requirement near an interface ceiling, choose the higher-headroom option.
- Concurrent flows: recording + playback/scrub + metadata indexing increases queue pressure and long-tail delays; more headroom simplifies QoS.
- Boot & bring-up: PCIe link training + enumeration vs embedded bring-up; choose the path that meets “power-on-to-record” requirements.
- BOM & sourcing: form factor, multi-source availability, and validation effort; plan a test matrix that allows vendor substitution without surprises.
Decision Matrix (NVMe vs UFS)
| Factor | NVMe (PCIe) | UFS (M-PHY/UniPro) |
|---|---|---|
| Bandwidth headroom | Strong sustained headroom; multi-queue helps QoS under mixed loads | Defined ceiling by gear/mode; needs careful budgeting under thermal steady-state |
| Power & thermal | Higher peak power; thermal design often becomes a first-class constraint | Typically lower power; still must validate throttling under long writes |
| Complexity | Routing/SI + platform bring-up; more knobs but more validation effort | Embedded bring-up; fewer lanes and simpler board integration |
| Concurrency | Handles concurrent record/playback better with headroom and queues | Works well when concurrency is bounded and buffers are designed accordingly |
| Sourcing flexibility | Form-factor and vendor variance; substitution requires a stable validation matrix | Embedded supply chain; substitution depends on host compatibility and performance bins |
Acceptance criteria: whichever interface is chosen, prove (1) sustained MB/s above budget at thermal steady-state, and (2) predictable latency tails under mixed record + metadata activity.
H2-5 · Power-loss protection (PLP): what must be guaranteed
In acquisition recorders, “power-loss protection” is not a vague feature. It is a set of verifiable guarantees that must hold during the worst moment: sustained writes, elevated temperature, and long-tail storage latency. A strong PLP definition prevents silent corruption and enables predictable recovery after an unexpected outage.
PLP guarantee levels (define the target explicitly)
| Level | What must be guaranteed | How it is verified |
|---|---|---|
| L1 — Media/FTL safety | After abrupt power loss, the device remains usable: no persistent corruption, normal enumeration/mount, and no runaway bad-block or repair behavior. | Repeated power-cut cycles during continuous writes across temperatures; validate stable enumeration and health indicators. |
| L2 — Host-ack consistency | Data that was already acknowledged as written/committed remains present after reboot (host view does not lie). | Mark “ack points” with sequence/hash; cut power at random; after reboot, every acknowledged record must validate. |
| L3 — Session-level recoverability | Files/containers and indexes can be recovered to the last known-good session boundary without full media scans. A defined data-loss window (Δt) may exist, but it must be explicit and auditable. | Verify fast resume to a recovery anchor; rebuild index deterministically; confirm the loss window matches the stated Δt. |
Recommendation: specify L1 + L2 as baseline. Add L3 when clinical workflow requires fast, deterministic session recovery.
Why flush / fsync is not PLP
- Flush controls software ordering, not device internals. An acknowledged “flush” can still precede internal mapping-table updates.
- Long-tail behavior exists at the worst time. Garbage collection or cache transitions can make “the last step” unexpectedly slow.
- Outcome risk: acknowledged records may be missing, indexes may break, and session containers may become unrecoverable.
Typical implementation paths (choose by boundary and validation)
Path A — NVMe with PLP (device-side capacitors + firmware)
- Best fit: high sustained bandwidth and concurrency; prefer device-level guarantees.
- Trade-offs: BOM/size and thermal design become first-class constraints.
- Validate: prove L2/L3 with real power-cut tests; do not rely on datasheet wording alone.
Path B — Board-level hold-up + last-gasp firmware (system-side PLP)
- Best fit: UFS or non-PLP devices; enforce a deterministic shutdown sequence at the system level.
- Trade-offs: more power/firmware timing responsibility; must define exact last-gasp actions.
- Validate: measure PG-to-action latency and total completion time under worst-case power + thermal conditions.
Path C — Recovery anchor in small NVM (FRAM / robust NVM)
- Best fit: L3 session recoverability and fast resume requirements.
- Trade-offs: adds a consistency protocol (versioning + checksum) so anchors never become a single point of failure.
- Validate: power-cut during anchor write; ensure deterministic fallback to previous valid anchor.
PLP guarantees (write as acceptance clauses)
Must
- After any abrupt power cut, storage enumerates cleanly and remains usable (L1).
- Acknowledged records remain present and verifiable after reboot (L2).
- Every power-loss event produces exactly one auditable record (timestamp, state, action progress).
Optional (recommended for clinical workflows)
- Session-level anchor enables deterministic resume without full scan (L3).
- Defined loss window Δt (e.g., last N frames or last T seconds) is explicit and logged.
- Recovery completes within a stated time budget (e.g., resume within X seconds).
H2-6 · Hold-up sizing & rails: from power to time
Hold-up is not “add a big capacitor”. It is a defined power behavior that guarantees enough time for the last-gasp sequence. Correct sizing starts by deciding which rails must stay alive, then budgeting worst-case power during the exact actions required by PLP.
Which rails need hold-up (minimize to what last-gasp truly requires)
- Class A (must stay alive until completion): storage device rail, host/controller rail (SoC/FPGA), and the minimal RAM/logic needed to commit queues and write anchors.
- Class B (helpful but degradable): small NVM rail for anchors/logs (if separate), status indicators, and low-power housekeeping.
- Class C (not required): UI/display, networking, and non-essential peripherals that do not participate in last-gasp actions.
Sizing inputs (engineering template)
- P_lastgasp (peak/avg): total power of Class A rails while executing freeze/commit/anchor/stop.
- ΔV window: allowable drop from Vstart to Vend, bounded by the minimum operating voltage of the kept-alive rails.
- Δt_target: time required to finish last-gasp with margin (use worst-case measured time, not best-case).
- C_hold (effective): capacitor bank effective capacitance after tolerances and temperature effects.
Practical workflow
- List Class A rails and measure their peak/avg power during last-gasp actions.
- Define ΔV so rails remain above minimum voltage through completion.
- Set Δt_target using worst-case conditions (hot, sustained write, cache transitions).
- Validate with repeated power cuts; adjust margins until completion is deterministic and logged.
Worst-case checklist (the dangerous combination)
- Thermal steady-state: run until the storage and board reach hot equilibrium, then cut power.
- Write long-tail state: test during cache transitions and background maintenance activity.
- Peak last-gasp load: include commit + anchor writes at the same time.
- Prove determinism: confirm last-gasp completion always finishes before Vmin and always produces a single event record.
H2-7 · Thermal & throttling control: prevent hidden frame drops
Thermal throttling is dangerous because it often looks like a “soft slowdown” while it silently violates the sustained-write budget. Once sustained bandwidth drops below the recorder’s required write rate, buffer occupancy rises until frames are dropped or segments become incomplete. A recorder-grade thermal policy must therefore control bandwidth and tail latency, not temperature alone, and it must leave an auditable evidence trail in logs.
Monitor three classes of signals (temperature + performance + buffers)
| Signal class | Examples | Why it matters | Common pitfall |
|---|---|---|---|
| Media temperature | NVMe SMART temp, UFS device temp | Closest indicator of impending throttling and internal state changes | Sensor smoothing/lag can hide the true peak until too late |
| Board thermal context | heatsink, enclosure, inlet/ambient points | Predicts where temperature is headed in the next minutes | Single-point board temp misses local hot-spots near storage |
| Performance observability | actual write BW, p95/p99 latency, buffer level | Directly shows whether the sustained-write budget is still being met | Only tracking temperature misses long-tail stalls and cache transitions |
Practical rule: use temperature to anticipate risk, then use bandwidth + tail latency to decide actions.
Control strategy (prevent the “cliff” before the buffer overflows)
- Pre-emptive rate limiting: gradually apply a write-rate cap before the device hits hard throttling, keeping latency tails bounded.
- Queue and watermark tuning: reduce queue depth and shift buffer watermarks earlier as thermal risk rises, so recovery starts while headroom still exists.
- Tiered escalation: map thermal/performance states to user-visible behavior and deterministic logging (warning → critical → record-stop).
Thermal policy table (temperature band → action → user-visible behavior)
| Policy state | Entry condition | Actions | User-visible behavior | Must log |
|---|---|---|---|---|
| Normal | Temps below T1 and write BW ≥ budget | No caps; nominal queue depth; default watermarks | No alert | temp, BW, p99 latency, buffer level |
| Warning | Approaching T2 or latency tail rising | Start rate cap ramp; reduce queue depth; earlier high-water trigger | Thermal warning banner | policy state, cap value, queue depth, headroom |
| Critical | Temp ≥ T2 or BW near budget line | Aggressive cap; tighten watermarks; deterministic degrade mode if supported | Critical alert; recording-risk indicator | BW deficit, p99 latency, overflow risk estimate |
| Record-stop | Temp ≥ T3 or buffer overflow imminent | Safe stop sequence: stop intake, commit, write final index, close session | Recording stopped due to thermal protection | stop reason, last-gasp markers, final buffer watermark |
Tip: choose T1/T2/T3 based on observed bandwidth collapse and latency tails, then validate under steady-state hot operation.
H2-8 · Data integrity end-to-end: detect, localize, recover
End-to-end integrity is not a single CRC check. It is a layered chain of tags and validations that can (1) detect corruption or loss, (2) localize where it happened, and (3) apply a consistent recovery action that preserves session explainability. The goal is to eliminate silent faults and make every anomaly auditable.
Detect vs recover (two different responsibilities)
Detect (prove something is wrong)
- CRC / checksum fail: bit-level corruption in memory, DMA, interface, or media.
- SeqID gaps: missing frames/blocks, dropped segments, or incomplete writes.
- Timestamp discontinuity: jumps, repeats, or invalid ordering in a recording timeline.
- BlockID mismatch: index/container boundary errors or wrong segment mapping.
Recover (decide what to do next)
- Re-read: attempt a deterministic readback for transient interface/media faults.
- Skip block / segment: move past an unrecoverable region while preserving continuity markers.
- Rebuild index: reconstruct container pointers from anchors and BlockID/SeqID tags.
- Mark bad segment: quarantine the region and surface an auditable event record for review.
Good practice: recovery actions must be explicit and logged; silent “best effort” repair is discouraged in recorder workflows.
Minimum tag set per data block (enables localization)
| Tag | Detects | Helps localize |
|---|---|---|
| SeqID | missing blocks, duplication, reordering | buffer overflow vs incomplete write boundaries |
| Timestamp (TS) | timeline discontinuity | acquisition vs processing boundary anomalies |
| CRC / checksum | bit-level corruption | RAM/DMA/link/media fault domains |
| BlockID / SegmentID | container/index mismatch | index rebuild and bad-segment isolation |
Integrity checklist (each layer must add evidence)
| Layer | Required evidence | Detects | Recovery action | Log fields |
|---|---|---|---|---|
| Acquisition | SeqID + TS continuity | missing frames, time jumps | flag gap; mark segment boundary | SeqID, TS, trigger marker |
| RAM / Buffer | CRC on buffer handoff | memory corruption | rebuild from upstream if possible | buffer level, CRC fail count |
| DMA | CRC before/after DMA, BlockID | DMA scatter errors | retry transfer; isolate channel | DMA error, retry count |
| Interface | write→sample readback CRC | link/transient faults | re-read; rate-limit | readback failures |
| Media | CRC + health counters | persistent bad regions | skip/mark bad segment | health, temp, error trend |
| Container / Index | BlockID/SegmentID + anchor | index mismatch | rebuild index; roll back to anchor | anchor ID, rebuild result |
H2-9 · Watchdog, event logging & forensics: prove reliability
Reliability is only “real” when failures become observable and explainable. A recorder needs layered watchdogs to catch different fault modes (system hang, stalled I/O progress, thermal-induced long tails), and it needs structured event logs that reconstruct what happened: reset cause, thermal state, bandwidth headroom, queue progress, buffer watermarks, and media health. The result is an evidence chain that supports recovery and post-mortem analysis.
Layered watchdogs (catch different failure modes)
| Watchdog layer | Detects | Trigger signal | Preferred response | Must log |
|---|---|---|---|---|
| Hardware WDT | full system hang | feed stops | reset to recover liveness | reset_cause, boot_id, last state |
| Software health WDT | stalls or runaway conditions | failed health gate | rate-limit → degrade → safe-stop | buffer, BW, p99 latency, policy |
| Storage progress WDT | I/O progress freeze, queue stuck | write completions not advancing | safe-stop with deterministic logging | queue depth, outstanding, timeout counters |
Recommendation: the software “feed” should be gated by health signals (progress + headroom), not a blind timer.
Engineering-useful event logs (state snapshots, not plain text)
- Root causes: power-up/down reason, reset cause, power-fail interrupt markers.
- Thermal & performance: media/board temps, throttle state, actual BW, p99 write latency.
- Progress evidence: queue depth, outstanding commands, completion counters, write timeouts.
- Data path health: buffer watermarks, drop/skip counters, last-good SeqID/BlockID anchors.
- Media health: SMART/health trend fields and error counters (kept at the “engineering snapshot” level).
Log write strategy (ring + severity + last record)
| Mechanism | What it prevents | How it behaves |
|---|---|---|
| Ring buffer | log overflow and runaway growth | fixed capacity; overwrite oldest; keep recent forensics |
| Severity levels | noise hiding real issues | INFO may coalesce; WARN/CRIT writes immediately with full snapshot |
| Last record | power-fail without evidence | power-fail interrupt writes a minimal “last record” marker before safe-stop |
Keep each event self-contained: include a compact snapshot so analysis does not depend on missing context.
H2-10 · Validation & production tests: power-fail, endurance, thermal soak
Validation closes the loop between design intent and field reality. A production-ready recorder is verified across three stress axes: (1) power-fail robustness under worst timing and temperature, (2) endurance under write patterns that maximize write amplification, and (3) thermal soak to confirm policy-trigger points, bandwidth headroom, and the absence of hidden frame drops. Each test case must define variables, pass criteria, and the required evidence.
Power-fail validation (variables + pass criteria)
- Variables: workload (burst/sustained), block size (large/typical/worst small+metadata), temperature (cold/room/hot), cut timing (random + “danger window”).
- Pass criteria: media not damaged, session recoverable, and any allowed loss window is within a declared bound.
- Evidence: last record marker, stop reason, last-good SeqID/BlockID, and recovery outcome.
Endurance (TBW) and write amplification (WA): engineering meaning
TBW is a workload-dependent lifetime proxy, and WA explains why “small random writes with frequent metadata updates” are a worst case. Under this pattern, background garbage collection and mapping updates increase internal writes, raising temperature and long-tail latency. Validation should therefore track throughput stability over time, error/retry trends, and any movement of thermal throttle thresholds.
EnduranceEvidence_v1: patterns: sequential-large | mixed | worst-small+metadata metrics: avg_BW, p99_latency, WA_proxy, retries, errors, temp_plateau outcomes: BW_decay, throttle_entry_shift, error_trend
Thermal soak (prove the policy prevents hidden drops)
- Steady-state first: wait for temperature plateau before judging behavior.
- Budget line check: sustained write BW must stay above required budget with margin.
- Tail control: p99 write latency should remain bounded by policy actions (caps, queue limits, watermarks).
- No silent loss: verify drop/skip counters and continuity tags (SeqID/TS) stay clean or are explicitly logged.
Test matrix (variables × pass criteria × required evidence)
| Case | Variables | Pass criteria | Must record | Artifacts |
|---|---|---|---|---|
| PF-01 | hot + worst write + random cut | recoverable session; bounded loss window (if allowed) | last record, stop reason, SeqID/BlockID anchors | log.bin, replay report |
| END-02 | 24–72h endurance, small+metadata | no unacceptable BW decay; stable error trend | avg BW, p99 latency, temp plateau, retries | trend.csv, summary |
| THERM-03 | thermal soak at target ambient | policy triggers as designed; no silent drops | policy state transitions, buffer headroom, drop/skip counters | state.log, plots |
Each case should be repeatable and produce artifacts that support fast triage and root-cause analysis.
H2-11 · Integration checklist & handoff to sibling pages (interface-only)
This section defines the minimum “interface contract” between the Recorder and sibling modules. Each line is intentionally short: what crosses the boundary, timing/limits, failure behavior, and the evidence that must be logged. No deeper implementation details are expanded here.
| Sibling module | Input contract (to Recorder) | Timing & limits | Failure behavior (boundary) | Evidence (must log) |
|---|---|---|---|---|
|
Medical Frame Grabber (upstream data source) |
Data blocks: Header + Payload. Header fields: SeqID, TS, FrameID/TileID, PayloadLen, CRC. |
Write pacing declares max burst + min gap. Worst-case burst must not exceed buffer headroom policy. |
Backpressure response must be deterministic: DROP or REDUCE_FPS or REDUCE_RES (chosen policy only). |
policy_action, buffer watermark, drop_cnt, last_good SeqID/BlockID. |
|
Sync / Trigger & Timing (timestamp domain) |
Timestamp fields: TS + DomainID + TriggerID. TS must be monotonic within a DomainID. |
Declare TS granularity (ns/us), jitter budget class, and rollover rules. TriggerID-to-TS binding must be stable per frame. |
If TS is invalid/missing: recorder must mark data as TS_INVALID (no silent acceptance). | ts_domain, ts_valid flag, trigger_id continuity, gap detection counters. |
|
Image Compression & Security (processed-data boundary) |
Boundary declares data type: RAW or PROCESSED. If PROCESSED: provide a compact manifest (BlockID→len/hash/version). |
Manifest must be written with session indexing rules (atomic chunk). Process stage must not change write pacing without declaring it. |
On processing failure: log result code and either fallback behavior or safe-stop (declared). | data_type, manifest_id, stage_result_code, stop_reason or fallback flag. |
|
Medical PSU & Isolation (powerfail behavior) |
Power signals: PG/brownout indication + power-fail interrupt marker. Recorder defines last-gasp sequence: freeze DMA → commit metadata → safe-stop. |
Hold-up window Δt must cover the declared last-gasp actions at worst-case load. PG deassert threshold and debounce must be declared. |
If Δt is insufficient: recorder must log incomplete stop and recovery path (no silent corruption). | powerfail_start marker, last record, reset_cause, incomplete_stop flag, recovery outcome. |
Reference components (examples tied to the interfaces)
- Watchdog timer: TI TPS3435 (hardware WDT / recovery evidence).
- Voltage supervisor: TI TPS3890 (reset cause + brownout boundary).
- Power-path / OR-ing: ADI LTC4412 (ideal-diode style hold-up path control).
- Power mux: TI TPS2121 (source switchover behavior for last-gasp).
- eFuse / hot-swap: TI TPS25982 (fault response at recorder supply boundary).
- Log anchor NVM: Cypress/Infineon FM25V10 (SPI FRAM for last-record/anchors).
- Alt log NVM: Everspin MR25H40 (SPI MRAM as a robust log store).
- SPI NOR (config/log): Winbond W25Q64JV (bulk event storage).
- Thermal sensor: TI TMP117 (board temperature evidence for throttling).
- PCIe redriver: TI DS80PCI810 (link robustness for NVMe data path pacing).
These part numbers are examples to make the interface discussion concrete; selection depends on the platform constraints and qualification needs.
Recommended topics (handoff links)
H2-12 · FAQs (12) + FAQ JSON-LD
These FAQs focus on recorder-specific boundaries: sustained write behavior, power-loss protection, thermal throttling, watchdog evidence, and validation. Answers are kept implementation-neutral and are written to be directly testable.