SSD 后端顺序写理论性能评估方法
SSD项目开展之前,经常需要评估SSD的理论性能,本文中着重评估后端理论性能。首先假设当前NAND Flash 具备以下参数特征:
- plane: 4
- tR = 42us;
- tProg = 630us / page;
- lun: 2;
- 单die 1Tb 容量,即单die 128GB;
- NAND Flash 配置带宽为800MB/s,Frequency为400MHz;
理论计算的基本模型为:数据量/所需时间=带宽;
以2TB容量的SSD为例,计算其理论性能大小:
1、顺序program 性能: program 一次的数据量为:16KB * 3 * 4 plane= 48 *4 = 192KB; 数据传输时间:tDMA = (18KB * 3 * 4)KB/800MB/s = 270us; TLC Program 时间约为:630us * 3 = 1890us;
2、对于单CH,单CE而言,顺序的情况下,其性能约为: 192KB / (270us + 1890us) = 88.8 MB/s;
对于常见的顺序写性能调优中,可以参照如下模型:
1、一条Program 命令的耗时可以分为两个部分:tDMA和tProg; 其中tDMA 与NAND 带宽相关,tProg与NAND颗粒相关;
2、对于某一个CE而言(并发的最小粒度),整个Program时间为:T = tDMA+tProg;
3、对于顺序写场景,考虑host 会连续不断发送写命令,CE1 所需要的时间可以接在CE0所消耗的时间后面,如上图中CE0后面的红色时间段;同样的CE2所消耗的时间可以接在CE1后面;
那么考虑两个CE并发(命令维度)时,同时,tProg 远大于tDMA,此时写的耗时为:T1 = tDMA + tProg(传输了两个CE Program的数据量);
假设 tProg >= N * tDMA; 则当CE NUM = M,且 M <= N 时,顺序写M个CE的耗时 依旧为:T1;
若此时M = 4, 此时顺序写的性能为: 数据量(192KB * 4)/(270us + 1890us) = 341.3 MB/s ; 若CH 数为8,则顺序写最大后端性能为:341.3MB/s * 8= 2730.4 MB/s;
4、基于上述的分析,若CE数量为8时,依旧期望并发性能最大,则需要降低tDMA 消耗的时间,才能使顺序写性能最大;
以上总结仅为个人理解,欢迎各位同行指正~~~