磨损平衡:保持SSD长期健壮工作
宁道奇 发表于:11年06月17日 12:00 [转载] 小熊在线
磨损平衡:保持SSD长期健壮工作
WL(Wear leveling) 磨损平衡
在传统的硬盘中,每个扇区的读写利用率是不平均的。一般来说磁碟外径的空间读写速度最快,会被放置一些经常需要使用的数据。而磁碟的中间和靠近盘芯的部位会放置一些比较不容易被访问的数据。
在SSD中也有这样的情况,闪存芯片不同块、页的数据更新速度是不同的。很显然,如果某个块或者页的利用率高于其他,那么它的写入周期将被过快的消耗掉。由此这里就会产生一个坏块。一旦这个坏块是无法被修复或屏蔽的,那么这片闪存芯片也随之报废。而一颗芯片的报废会导致整块SSD无法继续使用。因此,这是工程师与消费者最不愿看到的情况。
平衡闪存中每一个块的负载,保持所有的存储单元都能被均匀的利用。这就能极大的保持SSD的健康性,保证SSD可以长期可靠的工作。
磨损平衡技术依赖于逻辑和物理地址的转换:也就是说,每次主机上的应用程序请求相同逻辑页地址时,内存控制器动态的映射逻辑页地址到另一个不同的物理页地址,并把这个映射的指向存放在一个特定的“映射表”里。而之前过期的物理页地址就被标记为“无效”并等待之后的擦除操作。这样一来,所有的物理块就能被控制在一个相同磨损范围,保证所有存储单元能够同时“老化”。
磨损平衡算法分静态和动态。动态磨损算法是基本的磨损算法:只有用户在使用中更新的文件占用的物理页地址被磨损平衡了。而静态磨损算法是更高级的磨损算法:在动态磨损算法的基础上,增加了对于那些不常更新的文件占用的物理地址进行磨损平衡,这才算是真正的全盘磨损平衡。目前SandForce和Marvell的主控方案都支持静态磨损算法。