一种实现闪存快速写入速度的新颖的闪存转换层算法制造技术

技术编号:2835283 阅读:184 留言:0更新日期:2012-04-11 18:40
一种实现闪存快速写入速度的新颖的闪存转换层算法,不使用传统方法中通过PC缓存交互的过程,引入镜像块的概念,即:修改闪存块内一扇区大小的数据时,直接在闪存内找干净块写入新数据,原来包含旧数据的闪存块相应变成镜像块,通过闪存转换层的数据管理功能,分放两个块内的有效数据在PC看来还是连续的。本发明专利技术大大加快了闪存的写入速度,延长了闪存的使用寿命。

【技术实现步骤摘要】

本专利技术涉及消费电子产品的存储
,特别指提高闪存的写入速度方法。由于闪存的物理特性,读取速度一般较快,本专利技术不涉及。另注“闪存转换层”在文中简称为“FTL”。
技术介绍
近两年来,消费电子产品譬如MP3播放器备受市场宠爱。歌曲、图片甚至小电影等这些电子数据主要都是存储在电子产品的闪存(flash)上的,用户通过闪存和电脑交换电子数据(如下载、上传)。这就需要产品的闪存在电脑看来是和磁盘一样的存储介质。电脑使用文件系统管理磁盘,而将其运行在闪存上的很自然的方法就是在文件系统和闪存之间提供一个闪存转换层(Flash Translation Layer),它的功能就是将底层的闪存模拟成磁盘一样的存储介质(见图1,文件系统/闪存层次结构)。FTL要做的工作主要是以下两个方面1、组织空间文件系统处理数据的单位是扇区。闪存由大量块组成。闪存的物理特性要求写入前,被写的空间是擦除后(干净)的状态,而擦除的单位是块。一般而言,块的大小是若干个扇区的大小,因此FTL首先需要将闪存空间组织成文件系统需要的读写空间。2、管理数据闪存中的数据是零散存储在不同地方的,而文件系统读取的数据需要是连续线性存储的。FTL采用即扇区到闪存的映射管理,使闪存内存储的数据看来都是连续线性存储的。一般的,当文件系统要写一个扇区数据到闪存内时,FTL要做下面的操作来完成这个写请求(见图2,文件系统写一个扇区数据到闪存的操作流程)1、将这个扇区所在闪存块的数据整个读到PC内存的缓存(buffer)中2、将缓存中与这个扇区对应的内容用新的内容替换掉3、对该闪存块执行擦除操作4、将缓存中的数据(包含修改后的扇区数据)整个回写到该闪存块这种写操作的缺点是很明显的1、效率低对一个扇区的更新要搬动整个块,造成数据带宽很大的浪费,从而速度低下。2、寿命短闪存内的这些块有最大可擦除次数,超过则成为坏块。按照这种写操作方式,有些块会被频繁使用而变成坏块(用户使用电子产品时,对某一个文件频繁的读写即会多次读、擦除、写这个文件使用的闪存的若干块),如果坏块数量过多则此闪存将不可再使用。
技术实现思路
为了解决一般FTL算法的主要缺点,本专利技术提出了一种新颖的FTL算法,使闪存的写入速度更加快,闪存的使用寿命更加长。本专利技术解决其技术问题所采用的技术方案(结合图3、图4、图5、图6阐述)图3、图4、图5、图6中,A是闪存内一被写块,B是闪存内一干净块,C是一个模拟块(不是真实块,只为说明问题用),1是待修改的扇区,a是块首到待改扇区写入点的数据段,b是待改扇区写入点到块尾的数据段,1’是对应1修改后的扇区,2是另一待改扇区(包含在数据段a内),2’是对应2修改后的扇区;a’、b’是对应a、b移动后的扇区。A中1要被修改,FTL随机寻找到B,将对应于1的内容更新为1’,放在B中。由于FTL的数据管理功能,此时在PC看来,a、1’、b还是一个连续数据,仿佛A中的a、b都在B中,象图4中C所示。由此,我们将A称作镜像块。a、b中的数据在不久的将来还有可能被修改,所以我们保持A与B的同时存在,一旦a与b中的数据被修改,可类同于修改1的操作,将新数据写入B相应的位置,如图5。当A中的数据长久不做修改,或者再次的写操作不再满足FTL算法条件,FTL将会消灭镜像块A,即A中如果还有有效数据则存储进B,然后擦除A,A变成干净块,如图6。这个算法在对闪存写入数据时,不通过PC缓存,直接在闪存内找干净的块,并且减少了许多擦除、读写操作,从而大大提高了闪存写入速度。本专利技术的有益效果是本专利技术利用镜像块概念,避免了传统方法反复找新块、反复擦除、反复写入的过程,大大提高了写入的速度。本专利技术使得对闪存的写操作比较均衡的分配到所有块上,因此平衡了磨损,从而延长了闪存的使用寿命。附图说明图1是文件系统/闪存层次结构示意图;图2是文件系统写一个扇区数据到闪存的操作流程图;图3是镜像块A与存储块B初始状态的示意图;图4是镜像块A,存储块B和模拟块C的示意图;图5是修改数据段a的示意图;图6是擦除镜像块A成干净块的示意图;图7是本专利技术的实施流程图。具体实施例方式图7是本专利技术的实施流程图。下面结合图7描述具体实施例方式1、对闪存写入一个扇区时,检查这个扇区写入块的状态,整块干净则写入,结束;否转下2;2、检查当前块是否有镜像块,是转下3,否转下5;3、检查可否直接写,否转下4,是则判断此时是否满足FTL算法的镜像块消灭条件,否的话只需要更新镜像块信息,写入数据,结束;是的话将镜像块有效数据写到该块,然后擦除镜像块并将其纳入干净块队列;4、另找干净块,写数据并复制该块和镜像块的其他有效数据,然后擦除该块和镜像块,将它们纳入干净块队列,写入数据,结束;5、检查块内扇区对应处干净状态,干净则写入,结束;否转下6;6、检查系统是否还有可用镜像块资源,是就可以找到一个干净的块,写入扇区新数据,块首到写入点的数据和写入点到块尾的数据不动,随原块成为镜像块并生成镜像块信息,结束;否的话,FTL算法会释放出一可用镜像块资源,然后执行本条上述“是”一样的操作。权利要求1.一种实现闪存快速写入速度的新颖的闪存转换层算法,其特征是引入镜像块的概念,即修改闪存块内一扇区大小的数据时,直接在闪存内找干净块写入新数据,原来包含旧数据的闪存块相应变成镜像块,通过闪存转换层的数据管理功能,分放两个块内的有效数据在PC看来还是连续的。2.根据权利要求1所述的一种实现闪存快速写入速度的新颖的闪存转换层算法,其特征是闪存块与其镜像块同时存在,当镜像块中还未被修改的数据又要被修改时,将修改后的数据写入闪存块的对应的干净位置,更新镜像块信息。3.根据权利要求1所述的一种实现闪存快速写入速度的新颖的闪存转换层算法,其特征是当镜像块中的数据长久不做修改,或者再次的写操作不再满足闪存转换层算法条件,闪存转换层将会消灭镜像块,此时镜像块中如果还有有效数据,则将其存储进原对应于镜像块的闪存块,然后释放镜像块空间,变成干净块,将其纳入干净块队列,循环使用。全文摘要一种实现闪存快速写入速度的新颖的闪存转换层算法,不使用传统方法中通过PC缓存交互的过程,引入镜像块的概念,即修改闪存块内一扇区大小的数据时,直接在闪存内找干净块写入新数据,原来包含旧数据的闪存块相应变成镜像块,通过闪存转换层的数据管理功能,分放两个块内的有效数据在PC看来还是连续的。本专利技术大大加快了闪存的写入速度,延长了闪存的使用寿命。文档编号G06F12/00GK101093463SQ200610088088公开日2007年12月26日 申请日期2006年6月23日 优先权日2006年6月23日专利技术者俞光耀, 周盈 申请人:无锡盈泰科技有限公司 本文档来自技高网
...

【技术保护点】
一种实现闪存快速写入速度的新颖的闪存转换层算法,其特征是:引入镜像块的概念,即:修改闪存块内一扇区大小的数据时,直接在闪存内找干净块写入新数据,原来包含旧数据的闪存块相应变成镜像块,通过闪存转换层的数据管理功能,分放两个块内的有效数据在PC看来还是连续的。

【技术特征摘要】

【专利技术属性】
技术研发人员:俞光耀周盈
申请(专利权)人:无锡盈泰科技有限公司
类型:发明
国别省市:32[中国|江苏]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1