前面说过,闪存寿命是以P/E次数来计算的,而WL就是确保闪存内每个块被写入的次数相等的一种机制。若没有这个机制,SSD内的闪存颗粒就无法在同一时间内挂掉,那对用户来说就是灾难。
       会出现这种情况的原因在于,用户在LBA空间里的数据更新速度是不同的,有部分是经常需要更新,而有些却长期不需要变更,因此若没有WL,很显然那些经常被更新的数据所在的闪存寿命会首先被消耗完毕,而不怎么需要变更的数据所在的闪存损耗就要小得多。为了避免出现这种状况,便需要WL这个机制来保持SSD内的每个闪存颗粒的磨损程度在相对一致的状态且最后同时报废,但由于颗粒本身也有其个体差异,因此这里说的也只是最理想的状态。
       WL技术依赖于LBA和PBA的转换:也就是说,每次主机上应用程序请求相同的逻辑页地址时,闪存控制器动态的映射逻辑页地址到另一个不同的物理页地址,并把这个映射的指向存放在一个特定的“映射表”里。而之前过期的物理页地址就被标记为“无效”并等待随后的擦除操作。这样一来,所有的物理块就能被控制在一个相同磨损范围,并同时“老化”。(WL的实现机制请看下图)
       
       WL算法有动态及静态两种,简单来说动态WL是每次都挑最年轻的闪存块使用,老闪存块尽量不用。静态WL就是把长期没有修改的老数据从年轻的闪存块里搬出来,重新找个最老的闪存块存放,这样年轻的闪存块就能再次被经常使用,概念很简单,只是这么一句话,但实现起来却非常的复杂,特别是静态WL,而且也只有静态WL才算是真正的全盘WL。(无WL、动、静态WL对寿命的影响请看下图)
       

WL(Wear leveling)磨损平衡的更多相关文章

  1. Variability aware wear leveling

    Techniques are presented that include determining, for data to be written to a nonvolatile memory, a ...

  2. PatentTips - Solid State Memory Wear Leveling

    BACKGROUND OF THE INVENTION Solid-state memory devices encompass rewritable non-volatile memory devi ...

  3. PatentTips - Wear Leveling for Erasable Memories

    BACKGROUND Erasable memories may have erasable elements that can become unreliable after a predeterm ...

  4. 全面理解SSD和NAND Flash

    Flash Memory又叫做闪存,是一种非易失性存储器.非易失性是指断电之后数据不会丢失,这里就涉及到断电保护(后面详细讲解). 总体思路 1.NAND Flash的用途. 2.NAND Flash ...

  5. 【转】花开正当时,十四款120/128GB SSD横向评测

    原文地址:http://www.expreview.com/19604-all.html SSD横评是最具消费指导意义的评测文章,也是各类热门SSD固态硬盘的决斗疆场.SSD评测在行业内已经有不少网站 ...

  6. SSD基本工作原理

    SSD主要由SSD控制器,FLASH存储阵列,板上DRAM(可选),以及跟HOST接口(诸如SATA,SAS, PCIe等)组成. SSD主控通过若干个通道(channel)并行操作多块FLASH颗粒 ...

  7. FTL方面综述

    FTL 1.百度百科 http://baike.baidu.com/link?url=HJ94Rz2Td83V8OW-6dD_h_P8CZb9VFR6HznPDopY_SFdfXDaMriYcBm1X ...

  8. JFFS2 文件系统及新特性介绍

    简介: JFFS2 是一个开放源码的项目(www.infradead.org). 它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用.这篇文章首先分析了在闪存上使用 JFFS2 的必 ...

  9. 硬盘SMART检测参数详解[转]

    一.SMART概述        要说Linux用户最不愿意看到的事情,莫过于在毫无警告的情况下发现硬盘崩溃了.诸如RAID的备份和存储技术可以在任何时候帮用户恢复数据,但为预防硬件崩溃造成数据丢失所 ...

随机推荐

  1. trie tree(字典树)

    hihocoder题目(http://hihocoder.com/problemset):#1014 trie树 #include <iostream> using namespace s ...

  2. Netty4.X 学习(一)

    Server: import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.net ...

  3. 加密传输SSL协议7_SSL协议概述

    SSL(Secure Sockets Layer) SSL的功能,可以在通信的双方中建立一个加密的通信通道 同时还可以确认通信的双方是不是就是其声称的人,防止被钓鱼. SSL在网络协议栈中的位置:可以 ...

  4. Android R.layout. 找不到已存在的布局文件

    今天写新页面的时候,突然发现R.layout.  无法找到我已经写好的页面,于是顿时就不淡定了. 把R文件翻了一遍  发现也没有.... 然后我就看到了这个. android.R 原来是我错把Andr ...

  5. src 和 href 的区别

    因为理解不深,到写外部加载Javascript文件或者css文件的时候总是需要去找个例子,这样可不好.现在总结下 href 属性规定被链接文档的位置(URL). href是hyperrefresh的缩 ...

  6. 5 Logistic回归(二)

    5.2.4 训练算法:随机梯度上升 梯度上升算法:在每次更新回归系数时都需要遍历整个数据集,在数十亿样本上该算法复杂度太高. 改进方法:随机梯度上升算法:一次仅用一个样本点更新回归系数. 由于可以在新 ...

  7. Table的分割线偏移量设置 及其 UIEdgeInset详解

    -(void)viewDidLayoutSubviews { if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)] ...

  8. SQL Server 一些重要视图4

    sys.master_files 为每一个数据库的每一个文件返回行.

  9. rsyslog start with

    startswith Checks if the value is found exactly at the beginning of the property value. For example, ...

  10. JAVA集合LIST MAP SET详解

    1. 集合框架介绍 我们知道,计算机的优势在于处理大量的数据,在编程开发中,为处理大量的数据,必须具备相应的存储结构,之前学习的数组可以用来存储并处理大量类型相同的数据,但是通过上面的课后练习,会发现 ...