CMU-SAFARI/MQSim

Flash_Block_Manager_Base.cpp

Closed this issue · 2 comments

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.

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

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