CMU-SAFARI / ramulator2

Ramulator 2.0 is a modern, modular, extensible, and fast cycle-accurate DRAM simulator. It provides support for agile implementation and evaluation of new memory system designs (e.g., new DRAM standards, emerging RowHammer mitigation techniques). Described in our paper https://people.inf.ethz.ch/omutlu/pub/Ramulator2_arxiv23.pdf
https://arxiv.org/abs/2308.11030
MIT License
235 stars 58 forks source link

We believe this is a definition that may cause LPDDR5 spec illegal with respect to CAS Sync. How about a new definition at the rank level? #27

Open najun-auto opened 11 months ago

najun-auto commented 11 months ago
      m_preqs[m_levels["bank"]][m_commands["RD16"]] = [] (Node* node, int cmd, int target_id, Clk_t clk) {
        switch (node->m_state) {
          case m_states["Closed"]: return m_commands["ACT-1"];
          case m_states["Pre-Opened"]: return m_commands["ACT-2"];
          case m_states["Opened"]: {
            if (node->m_row_state.find(target_id) != node->m_row_state.end()) {
              Node* rank = node->m_parent_node->m_parent_node;
              if (rank->m_final_synced_cycle < clk) {
                return m_commands["CASRD"];  // CASRD
              } else {
                return cmd;``

The JEDEC specification requires RD to appear in the cycle(+1) immediately following CASRD and WR in the cycle(+1) immediately following CASWR, but the above definition does not result in that.

What about the idea of adding a new definition at the rank level to put CASRD+RD, CASWR+WR in the m_preqs queue?

RichardLuo79 commented 9 months ago

Hi,

Thanks for the suggestion. We will look into this.