网站解析一般什么时候,微信公众号封面制作网站,上海自助模板建站,企业网站建设方案 word引入概念#xff1a; OP :独立于用户看的见的容量之外的容量#xff0c;可以看作是隐藏的容量 WA:写放大#xff0c;也就是用户写入一笔数据对NAND来说需要写入更多#xff0c;造成写放大 OP作用#xff1a;
多出来的空间一般用于存储一些固件的L2P表#xff0c;更换坏块…引入概念 OP :独立于用户看的见的容量之外的容量可以看作是隐藏的容量 WA:写放大也就是用户写入一笔数据对NAND来说需要写入更多造成写放大 OP作用
多出来的空间一般用于存储一些固件的L2P表更换坏块GC时零时调用出来做数据搬移等等。OP对于整个SSD的寿命以及随机写性能以及写放大是有帮助的 简单说OP越大寿命越长,写性能越强写放大越小 比如我们一块NAND实际容量256G的SSD在Host端下识别为240GB其中16GB就是OP。 OP比例 闪存空间-用户空间/ 用户空间
GC作用 数据更新的时候由于闪存不可覆写所以需要擦掉旧数据写入新数据 假如我们一个Block是一个9宫格其中三个是无用数据6个是有用数据假如我们一直不做处理当数据越来越多达到SSD的存储上限可能会发现原本240G的硬盘只能存储不到240G的文件我删除文件并没有让原本占用的空间释放出来 所以为了避免这样的状况就需要及时整理我们的Block,把里面不需要的垃圾数据清除出去于是乎我们需要把有用的数据读出来然后擦除掉整个Block再把有用的数据写进去。 WA 垃圾回收就会造成写放大相当于我们写入一笔数据但实际NAND为了腾出这笔数据的存放空间自己做了GC需要把其他有用资料读出来再一起写进去。所以对于SSD来说实际写入的资料要大于Host传过来需要保存的资料量的 于是得到公式 WA NAND写入量/Host 写入量 然后引入一个 有效数据计数的概念 上文提到GC是清除掉block上的不需要的数据那么如何得知这个Block上多少数据是需要的多少数据是无效的挑选那些Blcok做GC可以更高效呢这就需要用到 有效数据计数 类似会把每个Block上有效的page计数这样做GC时优先选择有效数据低的block进行操作. 所以FTL上还有另外两张表, VPBM(Valid Page Bit Map) 记录物理块上那个page上的数据是有效数据 VPC(Valid Page count)记录物理块上的有效Page数
另一个是如何得知这些数据是无效数据了呢? 引入另一个概念trim 我们在Host端删除文件的时候,系统同时也会下发命令告知SSD,这个我不再需要了,于是乎SSD会把这些资料标注起来,凡是打上标签的都是不需要的资料,后续SSD可以进行处理
理论上,主动下发trim命令后,对Host而言,在重新读这个位置,SSD应该要回复空数据