Cache操作
在写某个page时,数据从主控传输到对应plane的cache再把整个cache写到介质(flash)中,读刚好相反。而page register起到缓冲的作用,在读多个page时,当cache传输一个page数据时,page register提前把下一个page的数据准备好。
*内存的写入时间指的是page register到内存介质的时间,读刚好相反。
Multi-plane操作
主控先把数据写入第一个plane的cache resgister中,数据保持在那里,并没有立即写入闪存,等主控把同一个LUN上的另外一个或几个plane上的数据传输到对应的cache register上,再统一写入闪存。这样可以缩短传输时间,速度几乎翻倍。(读操作同样道理)
Read retry
重读,这是一种纠错机制,当page出现ECC不可纠正的读取错误时,可以尝试偏离正常阈值电压的方式找到最接近实际的阈值电压,正确读出数据。重读与P/E次数相关,随着P/E次数增加,阈值电压向右偏移,且电压分布的幅度更宽。
阈值发生了偏移,在读取时仍用正常读取电压去读取,就会发生错误,因此读取时也需要将读取电压向右进行相应的偏移才能正确读取数据。
理论上只要状态电压分布没有发生重叠,就可以通过重读获取正确的数据。
数据随机化
闪存是通过在栅极加入电压来存储数据的,对写入数据的样式很敏感,如果不断地输入全部为0或者全部是1的数据的时候,很容易造成闪存内部的电量不均衡,导致数据抗干扰性变差,最终会使数据在闪存中的可靠性稳定性变差。总结就两点:1.让0和1的分布充分隔离。2.降低相邻单元之间的耦合电压产生的影响。