背景:
众所周知,nand flash 以page program, 复写必须要erase block,因此才有GC。
由于GC的存在,SSD内部就存在后端资源争夺的问题,firmware需要考虑如何平衡Host IO、GC、和内部meta data flush。这就是我们今天要讲的----SSD Internal Flow Control。
---这里假设内部IO理想情况只有GC。(先忽略internal meta data flush)
问题痛点:
由于GC的存在,Host IO 和 GC相互争夺资源,导致performance忽高忽低,Qos波动太大。下面有两张图:
1. 由于没有其他模块block到Host IO,其性能曲线大致如图:
2. 起GC之后,Internal GC和IO互相争夺资源,可能性能曲线会变成这样:
分析问题:
如图,有a、b、c、d四个点有明显的性能波动,下