CMU-SAFARI / MQSim

MQSim is a fast and accurate simulator modeling the performance of modern multi-queue (MQ) SSDs as well as traditional SATA based SSDs. MQSim faithfully models new high-bandwidth protocol implementations, steady-state SSD conditions, and the full end-to-end latency of requests in modern SSDs. It is described in detail in the FAST 2018 paper by Arash Tavakkol et al., "MQSim: A Framework for Enabling Realistic Studies of Modern Multi-Queue SSD Devices" (https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf)
https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf
MIT License
268 stars 144 forks source link

Fix the program suspend problems. #62

Open yuhun-Jun opened 1 year ago

yuhun-Jun commented 1 year ago

Thanks to the author. It is a great SSD simulator.

But in the latest version, the Program Suspend does not work. It seems that the author blocked it because there were a lot of problems.

I fixed some hidden problems, and it works well again.

There are three major issues.

  1. The suspend-related parameter was not loaded because there is a typo in the XML parsing code
  2. TSU class initialize parameter order is twisted
  3. If the read is performed in the suspended program completion path, try to suspend again with an abnormal internal state.

Correction of problems 1 and 2 was simple. To solve problem 3, I created a Suspend Lock that prevents retrying the suspend before the previous suspend is complete.

As a result, it was confirmed that Program Suspend was performed well.

Myles-C commented 9 months ago

there is something wrong, code "chip->Resume(dieBKE->ActiveCommand->Address[0].DieID);" line 723 in NVM_PHY_ONFI_NVDDR2.cpp shows dieBKE is nullptr, please help!