ramulator2 icon indicating copy to clipboard operation
ramulator2 copied to clipboard

LPDDR5 bandwidth not matching expectations

Open ankenman opened this issue 1 year ago • 3 comments

I am having two issues when using LPDDR5 with an external simulator:

  • Sequential and Random streams give the same bandwidth (expect random to be ~2/3; DDR4 works correctly)
  • Bandwidth is much greater than what I expect. How big are the data chunks for each callback from ramulator2_frontend->receive_external_requests()?

ankenman avatar Sep 27 '23 22:09 ankenman

Hi,

Thanks for spotting this issue!

  • May I know what configurations you are using for the LPDDR5 experiments?
  • receive_external_requests() has no fixed transaction size on its own. The memory system (i.e., controller and DRAM) decides the number of bytes transferred per transaction (e.g., m_channel_width * burst_size).

RichardLuo79 avatar Oct 18 '23 21:10 RichardLuo79

My YAML file is similar to the example provided:

  Frontend:
    impl: GEM5
  
    Translation:
      impl: RandomTranslation
      max_addr: 2147483648
                
  
  MemorySystem:
    impl: GenericDRAM
    clock_ratio: 4
  
    DRAM:
      impl: LPDDR5
      org:
        preset: LPDDR5_2Gb_x16
        channel: 1
        rank: 1
      timing:
        preset: LPDDR5_6400
  
    Controller:
      impl: Generic
      Scheduler:
        impl: FRFCFS
      RefreshManager:
        impl: AllBank
      plugins:
  
    AddrMapper:
      impl: RoBaRaCoCh

How would I go about setting m_channel_width and burst_size?

ankenman avatar Oct 18 '23 22:10 ankenman

Hi,

We recently pushed some bug fixes involving state updates and timing parameters in LPDDR5 (#27 and #32). Could you please let us know if these fixes solve your issue? Thanks!

RichardLuo79 avatar Feb 11 '24 07:02 RichardLuo79