Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Protocol Metrics Reference
  • Protocols Glossary
  • Reading Path
  • Protocol Fundamentals25
  • AMBA Family (APB / AHB / AXI)17
  • Coherence Fabrics (ACE / CHI)17
  • Memory Interfaces (DDR / LPDDR / HBM)17
    • DDR Controller / PHY Split
      • DDR Controller / PHY Split: Concepts
      • DDR Controller / PHY Split: Integration
      • DDR Controller / PHY Split: Debug
      • DDR Controller / PHY Split: Interview
    • Training & Timing Modes
    • Refresh & Bandwidth Efficiency
    • Memory Interface Debug
    • Memory Interfaces (DDR / LPDDR / HBM): Tricky Q&A
  • PCIe & CXL17
  • Embedded Peripherals (I2C / SPI / UART)17
  • High-Speed I/O (USB / Ethernet / MIPI)17
  • Protocol Verification & Compliance21
  • Protocols Interview Prep5
  • Interface Protocols Cheatsheet
Loading lesson

←DDR Controller / PHY Split
  1. Topics
  2. Bus Protocols
  3. Memory Interfaces (DDR / LPDDR / HBM)
  4. DDR Controller / PHY Split
  5. DDR Controller / PHY Split: Integration
On this page

    Interface ProtocolsAll levels

    DDR Controller / PHY Split: Integration

    Integration for DDR Controller / PHY Split.

    Integration in practice

    Check address mapping with a deliberately small bank model

    Read first: Read the mechanism and worked trace first

    Isolated mapping exercise: for 64-byte-aligned addresses, bank=(address>>6)&1 and row=address>>7. Start with every bank precharged. This mapping is invented for the exercise; the real controller may hash or interleave addresses differently.

    Check address mapping with a deliberately small bank model — decision record

    Apply the stated local assumptions; record actual platform values before using this as an implementation checklist.

    Decision / observation

    Required evidence

    Consequence

    0x0000 then 0x0040

    Bank 0 row 0; bank 1 row 0

    Different banks; not a same-bank row conflict

    0x0000 then 0x0080

    Bank 0 row 0 then row 1

    Same bank, different row; resolve existing open-row state

    Repeated 0x0000 with row 0 still open

    Same bank and row

    Potential row hit, subject to all timing/resource constraints

    Check yourself Can two adjacent cache-line addresses be assumed to conflict in the same DRAM row buffer?

    No. Under this explicit mapping they select different banks. Decode the actual controller mapping before explaining locality or conflicts.

    Memory subsystem integration

    Place controller near PHY physically — long routes between them add latency and timing risk. Address mapping (which AXI address maps to which rank/bank/row) affects performance as much as scheduler policy.

    Multiple ports into one controller need arbitration. CPU, GPU, and display DMA competing for the same DRAM channel need QoS in the controller.

    • Choose channel/bank interleaving for the workload and service objective; sequential striping is a policy choice, not a universal rule.

    • ECC scrub interacts with refresh — both steal bandwidth.

    • Low-power modes (self-refresh) need firmware sequencing with controller.

    Previous

    65 / 158

    Next: DDR Controller / PHY Split: Debug

    Up next

    Up nextDDR Controller / PHY Split: Debug

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • DDR Controller / PHY Split: Interview