LBA (逻辑块地址)是在FTL中实现的映射表,以便在SSD中的逻辑和物理页面/块之间进行匹配,我猜测大多数SSD (至less在它们是空的时候)保持物理地址的顺序与逻辑1(物理地址0映射为逻辑地址0,1映射1,依此类推)。
当页面被更改时, SSD控制器将更新的页面复制到caching中,更改页面,将旧页面标记为“ 无效 / 陈旧 ”,然后将新页面写入其他位置并更新LBA。
所以,即使物理地址与逻辑地址一致,也需要一些写操作,这个命令将会搞乱!
为什么连续写入比随机写入有更好的性能呢?
编辑
连续写入和随机写入之间的性能不足,无论块大小还是队列深度。
希捷就垃圾收集如何对随机写入和顺序写入SSD性能的差异负责,这是一个相当简洁的解释:
…对垃圾收集的需求会影响SSD的性能,因为对“完整”磁盘(初始空闲空间或容量至less填满一次)的任何写入操作都需要等待通过垃圾收集过程。 由于垃圾收集是在块级别进行的,因此也存在显着的性能差异,具体取决于是否涉及顺序或随机数据。 顺序文件填充整个块,这大大简化了垃圾收集。 随机数据的情况非常不同。
随着随机数据被写入(通常由多个应用程序写入),页面被顺序地写入到闪存的整个块中。
问题是:这个新数据正在取代其他块中随机分布的旧数据。 这导致潜在的大量无效页面的小“洞”散布在仍包含有效数据的页面中。 在这些块的垃圾回收期间,必须将所有有效数据移动(即读取和重写)到不同的块。
相反,当顺序文件被replace时,整个块通常是无效的,所以不需要移动数据。 有时一个连续文件的一部分可能与另一个文件共享一个块,但平均而言,只有大约一半的这种块需要被移动,使得它比随机写入块的垃圾收集快得多。 …