Difficulty: Easy
Correct Answer: ROM
Explanation:
Introduction / Context:
Checksums provide a simple, fast method to verify data integrity by reducing a block of data to a short signature. In embedded systems and firmware distribution, checksums (or stronger hashes) are frequently used to validate code stored in nonvolatile memory before execution, ensuring no corruption during manufacturing or field updates.
Given Data / Assumptions:
Concept / Approach:
ROM (including EPROM/flash used as ROM) typically stores fixed code and data that should not change spontaneously. A checksum over its contents detects bit flips or programming errors. While RAM can be tested with patterns (e.g., walking ones/zeros, March tests), RAM uses dynamic tests rather than a static checksum because its contents vary during operation. FPLAs are logic arrays, not byte-addressable memories suited to checksum-based validation.
Step-by-Step Solution:
1) Compute checksum at build time and record it (e.g., store in a reserved location or externally).2) At power-on, read ROM contents and compute checksum using the same algorithm.3) Compare computed checksum to expected value.4) If they match, ROM contents are assumed valid; otherwise, signal error or fallback to recovery.
Verification / Alternative check:
Bootloaders and safety-critical systems commonly implement CRCs (a stronger form of checksum) over ROM images; manufacturing test also relies on checksums to verify programmed devices.
Why Other Options Are Wrong:
EEPROM can be checked similarly when used as ROM, but the canonical application cited in fundamentals is ROM. FPLAs are not validated via data checksums. RAM contents change constantly; integrity tests for RAM are pattern-based, not fixed-image checksums.
Common Pitfalls:
Confusing checksum (simple sum) with CRC (polynomial-based); forgetting to exclude the checksum field itself from the sum or to include it in a complementary fashion.
Final Answer:
ROM
Discussion & Comments