CN101383190A - 应用于固态硬盘的闪存均衡损耗算法 - Google Patents
应用于固态硬盘的闪存均衡损耗算法 Download PDFInfo
- Publication number
- CN101383190A CN101383190A CNA2008100320521A CN200810032052A CN101383190A CN 101383190 A CN101383190 A CN 101383190A CN A2008100320521 A CNA2008100320521 A CN A2008100320521A CN 200810032052 A CN200810032052 A CN 200810032052A CN 101383190 A CN101383190 A CN 101383190A
- Authority
- CN
- China
- Prior art keywords
- address
- flash memory
- physical
- data
- logical address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明提供了一种应用于电子硬盘的闪存均衡损耗算法,从两个方面来实现,一是采用地址映射来实现逻辑地址到物理地址的转换,每个逻辑地址可以对应不同的物理地址,从而使得每次向同一逻辑地址写入的数据将保存在不同的物理地址所指的存储空间;二是将存储在闪存中的长期没有进行修改的数据转移,使其所占的物理空间重新加入将要被写的队列,从而使整个物理存储空间的存储块擦写次数均衡。
Description
技术领域
本发明提出一种应用于固态硬盘的闪存均衡损耗算法,使得闪存的物理存储块损耗达到均衡,不至于对某些物理块擦写过于频繁而导致产生坏块,从而提高固态硬盘的使用寿命。
背景技术
磁盘作为信息的存储体随着计算机及其相关技术的飞速发展和计算机应用于各种领域,如航空,卫星,工业等方面,从而对磁盘提出了越来越高的要求。因此固态磁盘抗震、宽温、无噪、低耗、可靠存储技术越来越被人们所重视。固态硬盘以NAND闪存为存储介质,NAND闪存是一种采用与非结构的非易失半导体存储器,在没有电流供应的情况下,能长期地保存信息,读写操作以页为单位,类似于硬盘操作,擦除以块为单位,适用于存储大量的信息。NAND闪存磁盘与以磁介质为存储体的机械磁盘相比有以下几个优点:首先读写时不需要像机械磁盘那样需要寻道时间,因而读写的速度比较快;其次由于NAND闪存是一种半导体存储器,使用时不受震动的影响,功耗低,噪声小,能适应的温度范围大,再次NAND闪存是通过I/0口读取数据,只要将存储的数据擦除,就不可能再恢复,而磁介质的存储器则可以通过磁头读取已擦除的微弱信息进行恢复。但是NAND闪存还有它自身的一些特点,其中就包括NAND闪存的物理块的擦除次数有限。
一般闪存的物理块可反复擦除100K次,最多可擦除1000K次,如果反复对某些物理块进行擦写将导致这些物理块不可用,而使存储空间在短时间内总容量减少。对于当前的文件系统,在存储数据时一般是在由文件系统分配存储空间进行写操作,而不考虑存储空间的使用次数,因而在存储数据时,如果文件系统访问的地址和存储介质的物理地址一致,某些存储空间将被反复更新的频率非常高,将使某些物理块很快因为一部分数据块被频繁擦除和写入而损坏,导致整个存储介质总容量减少。因而有必要采取一些措施使总的存储空间的有效物理块的擦写次数均衡,保证最大的存储空间和最长的使用寿命。
在本发明中,根据固态硬盘的存储信息的特点,提出了闪存的均衡损耗算法。
发明内容
针对一般的文件系统,考虑到文件系统的特性及NAND闪存的特点提出NAND闪存的均衡损耗算法。
本发明的技术方案是:一是采用地址映射来实现逻辑地址到物理地址的转换,每个逻辑地址可以对应不同的物理地址,从而使得每次向同一逻辑地址写入数据时,数据将保存在不同的物理地址所指的存储空间;二是将存储在闪存中的长期没有进行修改的数据转移,使其所占的物理块重新加入将要被写的队列。通过以上的两个方面的使得闪存空间的使用次数达到均衡,从而达到均衡损耗。
当文件系统发出命令并给出将要操作的逻辑地址时,存储系统根据文件系统给出的逻辑地址和映射关系计算出具体的物理地址,由于在大容量的存储介质物理地址范围很大,不可能将逻辑地址和物理地址的映射关系存放在缓存中,因此采用两级地址映射,将整个存储空间分为两个空间,即:地址映射区和数据区,第一级映射是将地址映射区的逻辑地址和物理地址的映射关系放在缓存中,第二级映射是将数据区的逻辑地址和物理地址的映射关系存放在地址映射区中。
如图1所示,缓存的0地址记录的对应的闪存地址映射区的地址为1,而每个地址映射区地址对应的存储空间记录一页的数据区到地址映射区的映射关系,闪存地址为1的地址记录地址映射区记录数据区中闪存地址为8和闪存地址为4物理地址,即对应的逻辑地址0和逻辑地址1。
存储系统程序启动后,先扫描地址映射区中的信息,将闪存地址1记录在缓存中缓存地址为0的存储空间中,映射关系如下所示。
1、设将被读取的逻辑地址为logicAddr,地址映射区一页可存储的数据区地址个数为n,则该逻辑地址的映射关系存储在地址映射区的逻辑地址为addr1,为logicAddr除以n的商,被读取的逻辑地址在对应的地址映射区的页中的地址为addr2,为logicAdd除以n的余数。
2、在缓存中逻辑地址为addr1对应的物理地址为addr3。
3、读取地址为addr3的信息。
4、信息中的第addr2个地址信息即logicAddr对应的物理地址。
文件系统发出写命令时进行以下操作。
1、数据区分配空闲的物理块。
2、将文件系统提供的信息写入到数据区空间分配的物理块中。
如图1所示,文件系统发出读逻辑地址0的命令时,即logicAddr为0,地址映射区页的存储信息个数n为2,则addr1为0,addr2为0,存储系统则先在缓存中找到逻辑地址为addr1即0对应的地址信息为addr3即1,读取地址为addr3即1的信息,找到信息中第addr2即第0个地址信息8,则8便是逻辑地址0对应的物理地址,然后在数据区中读出地址为8的信息,即文件系统需要的信息。
文件系统发出写命令时进行以下操作。
1、数据区分配空闲的物理块,
2、将文件系统提供的信息写入到数据区空间分配的物理块中,
3、地址映射区分配空闲空间,
4、在地址映射区将数据区的物理地址和逻辑地址的映射关系记录在地址映射区分配的空闲空间,
5、在缓存中修改地址映射区的逻辑地址和物理地址的地址映射关系。
经过地址映射,同一个逻辑地址可以对应不同的物理地址,可以避免文件系统对某些地址的反复擦写,而达到均衡损耗的要求。
在存储数据时,存储空间的某些空间长期被占用,但所含的信息为有效信息,称为静态信息,因而有必要将这些静态信息及时地转移,避免该块使用次数远少于其他块。如图2,将含静态信息块5中的信息转移到将被写入空闲块队列6中,再擦除含静态信息的块5,使其成为空闲块4,再将空闲块4加入到将被写入空闲块队列6中,使所有块损耗均衡。
本发明具有如下优点:
1:能适用于不同的文件系统,对NAND闪存进行均衡损耗管理。
2:采用地址映射,文件系统不能对NAND的物理存储空间进行直接的操作,从而避免文件系统对某个物理区域反复写操作。
3:将某些长期不更新但有效的信息转移,使其所占的物理块重新加入将要被写的队列,从而使整个的存储空间达到均衡损耗。
附图说明
图1:地址映射框图
图2:静态信息转移框图
具体实施方式
本发明实施例的硬件环境包括:SATA接口固态硬盘,SATA接口协议,MPU(微处理器),NAND闪存控制器和NAND闪存阵列。
当文件系统发出读命令时,先作以下处理:
1、找到逻辑地址对应的物理地址。
2、从物理地址对应的存储空间中读出需要的信息。文件系统发出写命令时进行以下操作。
1、数据区分配空闲的物理块。
2、将文件系统提供的信息写入到数据区空间分配的物理块中。
3、地址映射区分配空闲空间。
4、在地址映射区将数据区的物理地址和逻辑地址的映射关系记录在地址映射区分配的空闲空间。
5、在缓存中修改地址映射区的逻辑地址和物理地址的地址映射关系。
经过地址映射,同一个逻辑地址可以对应不同的物理地址,可以避免文件系统对某些地址的反复擦写,而达到均衡损耗的要求。
对文件系统中长期未被修改的静态信息采用以下方式进行处理,将含静态信息块5中的信息转移到将被写入空闲块队列6中,再擦除含静态信息的块5,使其成为空闲块4,再将空闲块4加入到将被写入空闲块队列6中,使所有块损耗均衡。
实施案例
SATA接口固态硬盘
SATA接口固态硬盘硬件环境由SATA接口协议,MPU,FLASH控制器和FLASH阵列构成,软件环境由地址映射逻辑,坏块管理逻辑,均衡损耗逻辑构成,使SATA接口固态硬盘对上位机表现为无差别于机械硬盘的器件,实现以NAND闪存为存储介质的大容量数据存储。
Claims (2)
1、应用于固态硬盘的闪存均衡损耗算法,其特征在于:采用地址映射来实现逻辑地址到物理地址的转换,每个逻辑地址可以对应不同的物理地址,从而使得每次向同一逻辑地址写入数据时,数据将保存在不同的物理地址所指的存储空间。
2、应用于固态硬盘的闪存均衡损耗算法,其特征在于:将存储在闪存中的长期没有进行修改的数据转移,使其所占的物理块重新加入将要被写的队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100320521A CN101383190A (zh) | 2008-08-11 | 2008-08-11 | 应用于固态硬盘的闪存均衡损耗算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100320521A CN101383190A (zh) | 2008-08-11 | 2008-08-11 | 应用于固态硬盘的闪存均衡损耗算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101383190A true CN101383190A (zh) | 2009-03-11 |
Family
ID=40462969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100320521A Pending CN101383190A (zh) | 2008-08-11 | 2008-08-11 | 应用于固态硬盘的闪存均衡损耗算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101383190A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840378B (zh) * | 2009-03-19 | 2011-11-02 | 成都市华为赛门铁克科技有限公司 | 一种访问固态硬盘的方法、控制装置和固态硬盘 |
CN101582903B (zh) * | 2009-06-24 | 2012-08-08 | 浙江宇视科技有限公司 | 一种流媒体资源存储方法和设备 |
CN102855162A (zh) * | 2011-06-27 | 2013-01-02 | 国民技术股份有限公司 | 一种数据更新方法、数据更新系统及存储器 |
CN103092728A (zh) * | 2013-01-22 | 2013-05-08 | 清华大学 | 一种非易失性内存的磨损错误恢复方法和装置 |
CN101625660B (zh) * | 2009-08-04 | 2013-12-18 | 威盛电子股份有限公司 | 数据储存装置与数据储存方法 |
CN103995783A (zh) * | 2013-02-20 | 2014-08-20 | 安凯(广州)微电子技术有限公司 | 一种建立逻辑块与物理块映射关系的方法及系统 |
CN104035886A (zh) * | 2014-06-23 | 2014-09-10 | 华为技术有限公司 | 磁盘重映射方法、装置及电子设备 |
CN105512047A (zh) * | 2014-09-26 | 2016-04-20 | 上海东软载波微电子有限公司 | Flash闪存的写操作、擦除操作方法及装置 |
CN106371762A (zh) * | 2016-08-19 | 2017-02-01 | 浪潮(北京)电子信息产业有限公司 | 一种存储数据优化方法及系统 |
CN106503427A (zh) * | 2016-10-12 | 2017-03-15 | 创业软件股份有限公司 | 一种面向医疗大数据处理的固态磁盘存储方法 |
CN107863126A (zh) * | 2017-10-31 | 2018-03-30 | 北京计算机技术及应用研究所 | 一种传感节点非易失存储器数据管理的方法 |
CN109328342A (zh) * | 2016-07-22 | 2019-02-12 | 英特尔公司 | 增强存储器耗损均衡的技术 |
CN110175385A (zh) * | 2019-05-20 | 2019-08-27 | 山东大学 | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 |
-
2008
- 2008-08-11 CN CNA2008100320521A patent/CN101383190A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840378B (zh) * | 2009-03-19 | 2011-11-02 | 成都市华为赛门铁克科技有限公司 | 一种访问固态硬盘的方法、控制装置和固态硬盘 |
CN101582903B (zh) * | 2009-06-24 | 2012-08-08 | 浙江宇视科技有限公司 | 一种流媒体资源存储方法和设备 |
CN101625660B (zh) * | 2009-08-04 | 2013-12-18 | 威盛电子股份有限公司 | 数据储存装置与数据储存方法 |
CN102855162B (zh) * | 2011-06-27 | 2016-06-01 | 国民技术股份有限公司 | 一种数据更新方法、数据更新系统及存储器 |
CN102855162A (zh) * | 2011-06-27 | 2013-01-02 | 国民技术股份有限公司 | 一种数据更新方法、数据更新系统及存储器 |
CN103092728A (zh) * | 2013-01-22 | 2013-05-08 | 清华大学 | 一种非易失性内存的磨损错误恢复方法和装置 |
CN103995783A (zh) * | 2013-02-20 | 2014-08-20 | 安凯(广州)微电子技术有限公司 | 一种建立逻辑块与物理块映射关系的方法及系统 |
CN104035886B (zh) * | 2014-06-23 | 2019-01-08 | 华为技术有限公司 | 磁盘重映射方法、装置及电子设备 |
CN104035886A (zh) * | 2014-06-23 | 2014-09-10 | 华为技术有限公司 | 磁盘重映射方法、装置及电子设备 |
CN105512047A (zh) * | 2014-09-26 | 2016-04-20 | 上海东软载波微电子有限公司 | Flash闪存的写操作、擦除操作方法及装置 |
CN105512047B (zh) * | 2014-09-26 | 2018-08-28 | 上海东软载波微电子有限公司 | Flash闪存的写操作、擦除操作方法及装置 |
CN109328342A (zh) * | 2016-07-22 | 2019-02-12 | 英特尔公司 | 增强存储器耗损均衡的技术 |
CN106371762A (zh) * | 2016-08-19 | 2017-02-01 | 浪潮(北京)电子信息产业有限公司 | 一种存储数据优化方法及系统 |
CN106503427A (zh) * | 2016-10-12 | 2017-03-15 | 创业软件股份有限公司 | 一种面向医疗大数据处理的固态磁盘存储方法 |
CN106503427B (zh) * | 2016-10-12 | 2019-01-29 | 创业软件股份有限公司 | 一种面向医疗大数据处理的固态磁盘存储方法 |
CN107863126A (zh) * | 2017-10-31 | 2018-03-30 | 北京计算机技术及应用研究所 | 一种传感节点非易失存储器数据管理的方法 |
CN107863126B (zh) * | 2017-10-31 | 2020-07-21 | 北京计算机技术及应用研究所 | 一种传感节点非易失存储器数据管理的方法 |
CN110175385A (zh) * | 2019-05-20 | 2019-08-27 | 山东大学 | 一种基于性能磨损均衡的非易失fpga布局优化方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101383190A (zh) | 应用于固态硬盘的闪存均衡损耗算法 | |
KR101486987B1 (ko) | 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법 | |
US20170336990A1 (en) | Multi-tier scheme for logical storage management | |
US8375159B2 (en) | Electronic storage device and control method thereof | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
US8195971B2 (en) | Solid state disk and method of managing power supply thereof and terminal including the same | |
CN111033477A (zh) | 逻辑到物理映射 | |
EP2397945A1 (en) | Programming method and device for a buffer cache in a solid-state disk system | |
CN101819509A (zh) | 一种固态硬盘读写方法 | |
JP2009048613A (ja) | ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法 | |
CN101727395A (zh) | 闪存设备的管理系统、方法及闪存设备 | |
KR20100100394A (ko) | 반도체 디스크 장치 그리고 그것의 데이터 기록 및 읽기 방법 | |
KR20100104903A (ko) | 디램 버퍼 관리 장치 및 방법 | |
CN102541458B (zh) | 一种提高电子硬盘数据写入速度的方法 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN106802870B (zh) | 一种高效的嵌入式系统芯片Nor-Flash控制器及控制方法 | |
CN108182154A (zh) | 一种基于固态硬盘的日志文件的读写方法及固态硬盘 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
US20100217918A1 (en) | Data storage device and method for accessing flash memory | |
WO1997050035A1 (en) | Memory device | |
CN102214143A (zh) | 一种多层单元闪存的管理方法、装置及存储设备 | |
US8521946B2 (en) | Semiconductor disk devices and related methods of randomly accessing data | |
CN103744615A (zh) | 一种动态补偿接收器及动态补偿接收方法 | |
KR101070511B1 (ko) | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 | |
CN102323907A (zh) | 嵌入式arm处理器对nandflash数据存储和删除方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090311 |