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
273 stars 149 forks source link

Flash_Block_Manager_Base.cpp #22

Closed ghost closed 4 years ago

ghost commented 5 years ago

I find a small issue, in Flash_Block_Manager_Base.cpp, the function Get_min_max_erase_difference() and Get_coldest_block_id(), there are two algorithms that find the max/min erase block, here is the code: /for (unsigned int i = 1; i < block_no_per_plane; i++) { if (plane_record->Blocks[i].Erase_count > plane_record->Blocks[i].Erase_count)//here i think should be Block[i]>Block[i-1] max_erased_block = i; if (plane_record->Blocks[i].Erase_count < plane_record->Blocks[i].Erase_count) min_erased_block = i; }/

/for (unsigned int i = 1; i < block_no_per_plane; i++) { if (plane_record->Blocks[i].Erase_count < plane_record->Blocks[i].Erase_count)//get coldest block, here i think should be Block[i]<Block[i+1] min_erased_block = i; }/

And i still have a trouble, i run MQSim(Dubeg mode) in my computer(i5-6200U) need at least 4 hours, is too long, so i want to ask how do you test this simulator, if really need several hours. thanks.

arashta commented 4 years ago

Dear @UtopianFuture,

Do you still face the execution time problem? If yes, please send us: 1) your updated MQSim source file(s), 2) the SSD configuration file, and 3) the work definition file(s),

so that we can investigate the issue.

Thanks, Arash

arashta commented 4 years ago

The problem with the Get_min_max_erase_difference erase function has been resolved in the latest commit.