From System Physical Address to DRAM Chip: What You Can (and Cannot) Locate
From System Physical Address to DRAM Chip: What You Can (and Cannot) Locate
Introduction
When debugging memory issues, many engineers ask the same question:
Can a CPU physical address be mapped all the way down to a specific DRAM chip?
The short answer is:
- You can usually map to MC / Channel / DIMM / Rank (and often Bank/Row/Column).
- You usually cannot map to a single DRAM chip using address bits alone.
This article summarizes the practical reasoning and workflow.
1. What DRAM Package Marking Tells You
A DRAM chip’s top marking (silkscreen) typically includes:
- Vendor
- Part number
- Date/lot code
- Speed/grade code
It usually does not explicitly print detailed fields such as:
- Row/column address width
- Bank group structure
- Chip-select organization details
To get those details, use the part number and check the datasheet.
2. Samsung Example
A common Samsung DDR4 chip example is:
- K4A8G085WB-BCRC
From package marking, you can identify the device family.
For detailed architecture (organization, row/column bits, banks, timing, CS behavior), you still need the Samsung datasheet.
3. Why Physical Address Usually Stops at Rank
From system physical address decoding, you can generally derive:
- Memory Controller (MC)
- Channel
- DIMM / Chip Select (often equivalent to rank selection)
- Bank / Row / Column (platform dependent)
But within one rank, multiple chips work in parallel to build the bus width (64-bit or 72-bit with ECC).
Commands are broadcast at rank level, so address alone does not select “chip #N” directly.
4. Practical End-to-End Localization Flow
Step 1: Collect required inputs
- CPU/SoC memory-controller decode docs
- BIOS/MRC interleave and hash settings
- DIMM SPD data
- Board schematic and lane routing (DQ/DQS topology)
- DRAM datasheet
- ECC/RAS logs (especially syndrome/symbol information)
Step 2: Decode physical address
- Identify memory range / NUMA / MC
- Reverse interleave/hash
- Derive Channel + DIMM/Rank
- Convert controller address into Bank/Row/Column
Step 3: Move from rank-level to chip-level (if possible)
To go beyond rank, you need:
- ECC syndrome to identify affected symbol/bit lane
- Lane mapping: CPU DQ/byte lane -> DIMM edge connector -> DRAM chip pins
Without both, localization usually remains at DIMM/rank granularity.
5. Interpreting Schematic Signals (Example)
Signals like these are data-lane topology signals:
_CPU0_SB_DQ<31:0>: data lines (DQ)_CPU0_SB_DQS_DP<9:0>: DQS differential positive_CPU0_SB_DQS_DN<9:0>: DQS differential negative
Meaning:
- DQ carries payload bits
- DQS is the data strobe used for sampling alignment
- DQ and DQS groupings define byte/sub-channel lane topology
This topology is exactly what is needed to convert ECC symbol errors into suspected physical chip locations.
6. Common Mistakes
- Assuming one physical address maps to one DRAM chip directly
- Relying on SPD only for chip-level localization
- Ignoring address hashing/interleave when decoding channels/banks
Conclusion
A realistic and robust statement is:
- Reliable:
PA -> MC/Channel/DIMM/Rank/(Bank,Row,Column) - Possible but conditional:
PA + ECC syndrome + lane topology -> likely DRAM chip
If lane mapping or syndrome data is missing, stop at rank-level conclusions to avoid false attribution.