前面说过,闪存寿命是以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. MyEclipse中jquery文件报错

  2. Java异常分类 转载

    Java异常分类 http://blog.csdn.net/woshixuye/article/details/8230407     一.基本概念 看java的异常结构图 Throwable是所有异 ...

  3. 各种数据库的批量插入操作_Oracle

    最近工作中需要优化以前各种的Excel批量导入功能,目前将能优化的方面做个记录. 选用技术: 目前.Net可以访问Oracle常用的Dll,有三种: 微软自带的 System.Data.OracleC ...

  4. [LeetCode]题解(python):147-Insertion Sort List

    题目来源: https://leetcode.com/problems/insertion-sort-list/ 题意分析: 用插入排序排序一个链表. 题目思路: 这题没什么好说的,直接用插入排序就行 ...

  5. WebRTC 音视频开发

    WebRTC 音视频开发 webrtc   Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译 ...

  6. 12.java.lang.NoSuchMethodException

    java.lang.NoSuchMethodException 方法不存在异常 当程序试图通过反射来创建对象,访问(修改或读取)某个方法,但是该方法不存在就会引发异常

  7. Oracle EBS-SQL (AR-2):检查应收收款核销额

    SELECT cust.customer_number, cust.customer_name, cash.receipt_number,            gcc.segment1 || '.' ...

  8. UltraISO制作U盘系统安装盘(图文教程)

    虽然现在的系统盘做的越来越傻瓜化,安装方法也非常多,但是仍然时常有朋友询问怎么安装系统,特别是没有刻录机或不想刻盘,又不懂硬盘安装的朋友,这里特别介绍一种用U盘来安装系统的方法,非量产,量产因U盘芯片 ...

  9. C++中实现链表的删除和颠倒

    MFC工程中关于链表的操作 1.对于给定的整数n,编写算法删除链表中第n个节点,该链表的第一个节点由first指向. 由于C++中没有关于node的标准头文件,要先手动定义node类,此处只定义了简单 ...

  10. ldap for ruby

    Net::LDAP for Ruby (also called net-ldap) implements client access for the Lightweight Directory Acc ...