churchmice
2023-04-09 17:33:40 +08:00
这个是 trim,删除文件只是改掉了 ssd 里面的映射表
展开说说,host 这侧看到的是 lba,需要将这个 lba 映射到具体的 flash 地址上吗,比如是哪个 channel,哪个 die,哪个 plane, page ,实际的 flash 地址我们叫做 pba(physical block address)
这个 lba 到 pba 的转换关系是由一个表来维护的,这个表存在 flash 里面并且由主控维护
那回到你这个问题,删除一个文件的时候 hpst 会发送 trim 这个命令(其实叫做 dataset management with deallocation hint )给主控,主控看到之后会把映射表里面 lba 对应的 pba 改成一个特殊值,并不会去更改真正 flash 里面的内容
你下次读的时候碰到这个 lba,主控一查表发现是个特殊值,它就直接给你返回全 0 的结果给 host