[] Li-Pin Chang,Li-Chun Huang.A low-cost wear-leveling algorithm for block-mapping solid-state disks.ACM SIGPLAN Notices,2011,Vol.46(5):31~40

[1] LI-PIN CHANG,CHUN-DA DU. Design and implementation of an efficient wear-leveling algorithm for solid-state-disk microcontrollers. ACM Transactions on Design Automation of Electronic Systems.2010, Vol.15(1):1~36.

[2] D. Jung, Y.-H. Chae, H. Jo, J.-S. Kim, and J. Lee. A group-based wearleveling algorithm for large-capacity flash memory storage systems.In CASES ’07: Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems, pages 160–164. ACM, 2007.

 

摘要

1.介绍

  固态硬盘是以flash为存储介质的存储设备,由于物理特性的原因,SSD与HDD进行读取的方式是不同的。SSD通过隐藏flash的特性来模拟HDD的方式以便于操作系统无需改变软件或硬件来把一个SSD设备当做HDD来识别。固态硬盘是优于传统的硬盘驱动器的,无论是耐冲击性、节能、随机访问性能、散热,这些都吸引供应商使用其作为存储设备广泛应用于笔记本电脑、智能手机和便携式媒体播放器等。

  flash是一种必须在写之前擦除的存储介质。每个闪存单元只能承受有限次的擦写次数,大约在100k次左右,频繁地擦写操作可能导致某些闪存颗粒比其余的闪存颗粒提前退休。特别是现在,随着MLC和TLC的出现,单个闪存单元可以保存二个或更多的电位,这降低的单位容量的成本,但是相比SLC来说,他们的寿命却是大打折扣。

  有数据访问的地方就不可避免磨损的存在,一部分闪存颗粒的提前不能使用不仅导致设备容量的降低,同时也会加剧剩余闪存颗粒的磨损程度。所以SSD需要磨损均衡的管理来保持SSD内所有闪存颗粒的整体擦除次数的平均,但是磨损管理不是没有代价的,它会做一些额外的数据移动来保证磨损均衡的实现,这些额外的数据移动有利于整体的平衡。

  磨损均衡操作包括数据移动的时机和数据移动的位置,这些操作监视整个flash的磨损情况以及在磨损不均衡的时候进行一些操作来保持平衡。

  在资源紧张的情况下,挑战有三个:一是监视整个flash的磨损,需要相当多的时间和空间资源;二是算法优化需要根据flash的访问模式和在线人员的访问来决定;三是高复杂阻碍使用先进的WL算法

  一般的SSD主控没有足够的RAM空间来存放SSD盘内flash所有的磨损信息,chang等人提出只将部分信息保存在RAM中,然而周期性的RAM和flash之间磨损信息的交互会导致额外的写操作[1];june提出了一种基于大范围的平均擦写次数的low-resolution磨损信息方法,但是这种方法在磨损差异比较大的时候无法很好地工作[2];

A low-cost wear-leveling algorithm for block-mappingsolid-state disks的更多相关文章

  1. PatentTips - Wear Leveling for Erasable Memories

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

  2. PatentTips - Solid State Memory Wear Leveling

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

  3. Variability aware wear leveling

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

  4. UVa1048 Low Cost Air Travel——最短路

    很好的一道题呀 思路 状态\(d(i,j)\)表示已经经过了行程单中的\(i\)个城市,目前在城市\(j\)的最小代价,直接建边跑最短路就行了 比如机票为\(ACBD\),行程单为\(CD\),那么对 ...

  5. L147 Low Cost Study Has High Impact Results For Premature Babies

    No one knows exactly why some babies are born prematurely(早产), but some of the smallest premature ba ...

  6. WL(Wear leveling)磨损平衡

    前面说过,闪存寿命是以P/E次数来计算的,而WL就是确保闪存内每个块被写入的次数相等的一种机制.若没有这个机制,SSD内的闪存颗粒就无法在同一时间内挂掉,那对用户来说就是灾难.       会出现这种 ...

  7. File System Design Case Studies

    SRC=http://www.cs.rutgers.edu/~pxk/416/notes/13-fs-studies.html Paul Krzyzanowski April 24, 2014 Int ...

  8. Durable NAND flash memory management

    词条积累 1.NAND flash memory http://www.searchstorage.com.cn/whatis/word_6052.htm http://baike.baidu.com ...

  9. SSD 相关基础知识

    SDD 基础知识 SSD(Solid State Drives)是固态硬盘,使用闪存颗粒来存储数据,闪存又可分为NAND Flash和NOR Flash,通常所说的SSD硬盘都使用NAND Flash ...

  10. MySQL Disk--SSD 特性

    ======================================================================= SSD 特性 .随机读能力非常好,连续读性能一般,但比普 ...

随机推荐

  1. 201521123027<java程序设计>第14周作业总结

    1.本周作业总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2.书面作业 Q1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己 ...

  2. 下载安装ActiveMQ(消息队列)

    安装步骤: 第一步.安装jdk环境,因为ActiveMQ是使用java语言编写. 第二步.将下载好的activemq压缩包上传至Linux系统,进行解压. 第三步.进入解压后的bin/目录,进行启动a ...

  3. 安装wampserve之前需要安装vc++2012.

    本人是64位系统下载了wampserver3.0.6之后安装好,启动报错缺少msvcr110.dll. 于是从网上下载了msvcr110.dll放到了windows的syswow64文件夹下,甚至还重 ...

  4. Python学习笔记011_模块_标准库_第三方库的安装

    容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...

  5. Ansible系列(五):playbook应用和roles自动化批量安装示例

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  6. 深入浅出数据结构C语言版(20)——快速排序

    正如上一篇博文所说,今天我们来讨论一下所谓的"高级排序"--快速排序.首先声明,快速排序是一个典型而又"简单"的分治的递归算法. 递归的威力我们在介绍插入排序时 ...

  7. HDFS的web接口

    50070端口查看NameNode状态,该端口的定义位于core-default.xml中,可以在core-site.xml中自行修改. 50075端口查看DataNode的,该地址和端口的定义位于h ...

  8. Unity 3D 之贪吃蛇 Text 心得 & Audio

    当我们需要在游戏街面上增加文本时, 我们就需要用到Text 组件 注意: 当文本的长度或者宽度不够时,字体将无法显示. 因为是面对组件编程,所以每一个组件的component都可以同过GetCompo ...

  9. Windows和Linux查看和更改mysql连接池

    Windows: 查看: 进入mysql 输入:show variables like '%max_connections%'; 更改: 进入MYSQL安装目录 打开MYSQL配置文件 my.ini ...

  10. PHP中isset和empty的区别(最后总结)

    PHP的isset()函数 一般用来检测变量是否设置 格式:bool isset ( mixed var [, mixed var [, ...]] ) 功能:检测变量是否设置 返回值: 若变量不存在 ...