正在阅读:1G卖1百美元 均衡算法解高价SSD寿命难题1G卖1百美元 均衡算法解高价SSD寿命难题

2009-09-09 02:24 出处:PConline原创 作者:小蚁 责任编辑:wenzhicheng

Wear-Leveling算法

  众所周知,SSD的寿命局限于它的读写次数。对相同的存储单元不断地进行编写和擦除将更容易导致该存储单元受到永久性的损害。为了避免该情况的发生,有一种叫“Wear-Leveling”的特殊的算法被配置到SSD中。该算法的中文译名为均衡磨损。顾名思义,Wear-Leveling就是将擦除/写入循环平均地分配到SSD的所有存储单元中。这样就避免了对同一个存储单元持续不断地进行擦除/写入操作,从而有效地延长了SSD的寿命。

SSD
SSD硬盘逻辑布局

1.存储布局

  为了更好地理解Wear-Leveling在SSD中的工作原理,有必要先简要地了解一下NAND Flash的结构布局。一个SSD是由很多个独立的NAND Flash芯片组成的。每个NAND Flash则由一个块阵列组成。每一个块就是一系列的名为页(page)的存储单元的集合。

SSD
简单的NAND Flash存储布局

  在将数据写入NAND Flash的存储单元之前,必须对该存储单元进行擦除,以便可以进行写入。最小的擦除单元是block(块),最小的写入或者读取单元是page(页)。

2.块配置

SSD
块的两种不同类型

  针对Wear-Leveling算法,SSD中块单元可以分成两种类型:数据块和空闲块。数据块是闪存的主要部分,并且受到Wear-Leveling算法和数据存储器的影响。空闲块的数目在整个闪存中占百分之二,主要用于缓冲Wear-Leveling算法。这就意味着闪存中块会根据Wear-Leveling准则在数据块池和空闲块池相互转换。

3.闪存转换层(Flash Translation Layer,即FTL)管理

  FTL提供对逻辑地址到物理地址映射的管理,同时对闪存和无效块映射进行擦除计数管理。每个块的擦除次数都会被记录在一个叫做擦除计数表(ECT)的表格中。当块进行一次擦除时,ECT都会将该块的擦除次数自动加一。

  Wear-Leveling会浏览该计数表,以此来决定哪些块必须从数据块池转移到空闲块池,或者相反。当需要转换操作时,转换表会把逻辑块地址重新分配给物理块地址,同时在新的块组中重新组合块地址和擦除计数值。下图是ECT的一个简单的块管理示意图和转换映射表。

SSD
擦除计数表(ECT)和与之相关的转化映射表

  值得注意的是,在典型操作情况下,ECT和转换映射表是在SRAM(静态随机存储器)中进行管理操作的。然而,SRAM是一个非永久性存储器,所以映射表必须在NAND Flash中进行。SSD通上电源时,SRAM就会得到原本存储于NAND Flash上的映射表,并在周期性时期段内或者断电时,重新再NAND Flash进行备份。

键盘也能翻页,试试“← →”键

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多

服务器论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品