CN105302736A - 一种提高混合映射中日志块数据整理性能的方法 - Google Patents

一种提高混合映射中日志块数据整理性能的方法 Download PDF

Info

Publication number
CN105302736A
CN105302736A CN201510598511.2A CN201510598511A CN105302736A CN 105302736 A CN105302736 A CN 105302736A CN 201510598511 A CN201510598511 A CN 201510598511A CN 105302736 A CN105302736 A CN 105302736A
Authority
CN
China
Prior art keywords
data
log blocks
block
page
data block
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.)
Granted
Application number
CN201510598511.2A
Other languages
English (en)
Other versions
CN105302736B (zh
Inventor
王志奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHENGDU SANLINGJIA MICROELECTRONIC Co Ltd
Original Assignee
CHENGDU SANLINGJIA MICROELECTRONIC Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CHENGDU SANLINGJIA MICROELECTRONIC Co Ltd filed Critical CHENGDU SANLINGJIA MICROELECTRONIC Co Ltd
Priority to CN201510598511.2A priority Critical patent/CN105302736B/zh
Publication of CN105302736A publication Critical patent/CN105302736A/zh
Application granted granted Critical
Publication of CN105302736B publication Critical patent/CN105302736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及存储器NAND?Flash数据存储领域,尤其是一种提高混合映射中日志块数据整理性能的方法。本发明针对现有技术存在的问题,提供一种方法,提供了一个地址映射表,对日志块映射表的进行记录,减少了冗余的块擦除以及块数据拷贝过程,提升了当混合映射中日志块写满时需要对日志块进行整理合并这个过程的性能。本发明对日志块映射表LPMT进行分析,判断当日志块中的数据是否全部为有效数据并且所存储的数据对应的数据块个数小于等于2时,通过修改数据块地址映射表中的页偏移量PAGE_OFFSET,达到本发明的目的。

Description

一种提高混合映射中日志块数据整理性能的方法
技术领域
本发明涉及存储器NANDFlash数据存储领域,尤其是一种提高混合映射中日志块数据整理性能的方法。
背景技术
半导体行业的蓬勃发展,出现了高性能的存储器NANDFlash,NANDFlash存储器使用半导体作为存储介质,具有高速,低能耗和防震等优点,但NANDFlash存储器本身也存在一些不足。首先,它的存储块的擦除次数是有限的;其次,NANDFlash必须要擦除之后才能重新写入,导致写入性能较低。因此,磨损均衡显得尤为重要,好的磨损均衡管理方法不但能够提高NANDFlash性能和效率,还能够大大的延长NANDFlash的使用寿命。基于此,出现了专门为NANDFlash存储器所使用的文件系统,如JFFS、JFFS2、YAFFS等,这些NANDFlash专用的文件系统进行存储管理为NANDFlash设备提供专门的驱动和更好的数据管理。但是对于一个小型的SOC,由于资源的限制,想采用以上的文件系统对NANDFlash进行管理不太现实,所以亟需一个轻量级的管理方法,能够在有限资源的条件下,满足对NANDFlash的磨损均衡控制。
目前对于小型的系统,常采用的管理方法为FTL(FlashTranslationLayer)。典型的FTL管理机制采用以页为单位进行存储管理的方式,如图1所示,将物理页地址与逻辑页地址来进行一一对应,读、写操作都是按页进行,数据存储时存储在空白的页面存储区中,数据写入完成后需更新地址映射表中的转换信息。这种管理算法比较直接,但是由于采用的页映射机制,对于容量小、页数少的存储器,是极为方便的一种方法。但是,对于大容量NANDFlash来说,就显得比较吃力因为其需要很大的内存空间来保存当前的映射表。
为了解决这个问题,提出了混合映射(Hybridmapping)算法,它是基于块和页的混合映射的机制,如图2所示,在该算法中,将NANDFlash分为数据块和日志块两个部分,日志块是有N个空闲块组成;同时,在内存中存储着两个表:基于块映射的数据块地址映射表DBMT和基于页映射的日志块页映射表LPMT。由于该算法采用块映射和页映射相结合的方式,所需要消耗的系统内存空间比较小,满足一般小型SOC的需求。根据混合映射机制,写入数据先按页映射的方式先写入日志块中,当日志块满时,需要对日志块数据进行整理,将有效数据合并到数据块中,更新数据块地址映射表DBMT,然后释放日志块。该过程如图3所示,在数据整理合并过程中,需要对数据进行读写和块擦除操作,消耗大量的时间成本,在大数据量写入时会出现写入性能突然降低的情况,这点对于目前接口性能要求比较高的应用来说很难接受。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种提高混合映射中日志块数据整理性能的方法,提升了当混合映射中日志块写满时需要对日志块进行整理合并这个过程的性能,提供了一个地址映射表,对日志块映射表的进行记录,减少了冗余的块擦除、块数据拷贝过程,可广泛应用于片上系统的NANDFlash存储器的管理。
本发明采用的技术方案如下:
一种提高混合映射中日志块数据整理性能的方法包括:
步骤1:根据ADDR对日志块映射表LPMT进行分析,判断日志块中的数据是否全部为有效数据,若是,则执行步骤2;否则,按页读取日志块中的数据,然后写入对应数据块,执行步骤4;其中一个日志块对应存储多个数据块的数据,其中ADDR为需要写入数据的地址;
步骤2:判断日志块中存储数据的数据块个数是否小于等于2,若是,则执行步骤3;否则,按页读取日志块中的数据,然后写入对应数据块,执行步骤4;
步骤3:修改数据块地址映射表中对应数据块的PAGE_OFFSET,执行步骤4;
步骤4:更新数据块地址映射表DBMT。
进一步的,所述步骤3中修改数据块地址映射表中对应数据块的PAGE_OFFSET的具体过程是:
当日志块存储数据的数据块个数为1时,说明此时该日志块的数据全部有效且属于一个数据块,则将PAGE_OFFSET设置为0,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块;当日志块存储数据的数据块个数为2时,若日志块第一个表项值为X,则PAGE_OFFSET=X%PPB,其中PPB为NANDFlash每一个物理块中包含的页数,然后将PAGE_OFFSET设置为X%PPB,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块。
一种提高混合映射中日志块数据整理性能的方法还包括步骤5:根据日志块中存储的数据读取数据。
所述步骤5具体包括:
步骤51:当需要读取数据时,根据ADDR分析日志块映射表LPMT,判断该日志块中是否存在ADDR对应的数据,若存在,则直接从日志块中读取数据;否则,执行步骤52;其中ADDR是需要读取数据的对应的地址;
步骤52:查找数据块映射表DBMT,根据ADDR计算出需要查找的表项n=ADDR/PPB,执行步骤53;
步骤53:解析数据块映射表DBMT中第n项的PAGE_OFFSET,若PAGE_OFFSET值为offset,DBMT[n]的值为PA,则实际的数据存放地址为PA*PPB+offset,从该地址读取数据
综上所述,由于采用了上述技术方案,本发明的有益效果是:
能够在数据合并时处理冗余的操作,减少该过程的时间成本消耗,提升系统的性能。另外针对零散的数据写入提供了一种定时的策略,在系统空闲时段对日志块进行整理,主动对数据进行整理合并,保证了系统的性能。
在本发明中,提供了一种定时策略,在系统空闲时段,主动对日志块进行整理,保证日志块的空闲率大于80%,使得在零散写入时不需要进行日志块的合并,保证了写入时性能。
在本发明中,采用如图4所示数据结构,减少了大数据写入时日志块合并时额外的读、写、擦除操作,减少了时间消耗,提升了系统的实时性能。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1基于页映射的映射表示意图;
图2基于混合映射的映射表示意图;
图3混合映射数据合并示意图;
图4PAGE_OFFSET数据结构示意图;
图5大数据量写入时日志块数据示意图;
图6a数据合并流程图;
图6b数据读取流程图;
图7NANDFlash结构示意图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
在本发明中设计了一种数据结构页偏移量PAGE_OFFSET,用1字节表示,范围为0~255,存储在数据块地址映射表中,通过该数据结构可以得到存储在该块上的数据分别属于实际的逻辑块,即逻辑地址到物理地址的转换,该数据结构如图4所示。在大数据写入时,一定会出现连续写入日志块的情形,此时页映射表一定会出现如图5所示情形,即日志块被写满,且一个日志块包含了一个或两个物理块的有效数据,此时,若采用普通的合并方式,需要对该日志块按图3方式进行按页读取,然后写入到对应的数据块中,待所有数据合并完成后,需要对日志块进行擦除操作。在本发明中,利用图4所示数据结构,可以直接将日志块转换成数据块,修改数据块地址映射表并同时更新映射表中的页偏移量PAGE_OFFSET,如图5所示。
在本发明中,数据合并流程如图6所示,首先对日志块页映射表LPMT进行分析,当确定一个日志块中的数据全部为有效数据时,对其存储的数据所属的数据块进行分析,统计其所属数据块的个数。当所属块个数小于等于2时,则直接修改数据块地址映射表DBMT,将日志块转换为数据块,计算页偏移量PAGE_OFFSET,当日志块存储的数据对应的所属数据块个数为1时,说明此时该日志块的数据全部有效且属于一个数据块,此时只需要将PAGE_OFFSET设置为0,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块;当日志块存储的数据对应的所属数据块个数为2时,若日志块第一个表项值为X,则PAGE_OFFSET=X%PPB,其中PPB为NANDFlash每一个物理块中包含的页数。此时只需要将PAGE_OFFSET设置为X%PPB,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块将计算所得PAGE_OFFSET存在数据块地址映射表DBMT中。当不符合以上条件时,采用普通合并方式进行处理。
在本发明中,数据读取流程如图6所示,根据ADDR分析日志块映射表LPMT,判断该日志块中是否存在ADDR对应的数据,若存在,则直接从日志块中读取数据。若不存在,查找数据块映射表DBMT,根据ADDR计算出需要查找的表项n=ADDR/PPB,解析数据块映射表DBMT中第n项的PAGE_OFFSET,若PAGE_OFFSET值为offset,DBMT[n]的值为PA,则实际的数据存放地址为PA*PPB+offset,从该地址读取数据,ADDR是需要读取数据的对应的地址。
实施例一:选用美光公司MT29F32G08CBACA型NANDFlash作为试验对象,物理结构如图7所示。设页读取时间为Tr,页写入时间为Tw,块擦除时间为Te,若取日志块个数N为64,存在图5情形的数据块个数为50,按图3所示合并日志块数据消耗的时间为:64*(256*Tr+256Tw+Te)。若采用本发明时只需要对映射表进行更新,所消耗的时间为(64-50)(256*Tr+256Tw+Te),减少了80%左右的时间消耗,因此,在实际应用时,根据实际的NANDFlash存储设备,调整合适PAGE_OFFSET,能够大幅提升系统的性能。本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

Claims (4)

1.一种提高混合映射中日志块数据整理性能的方法,其特征在于包括:
步骤1:根据ADDR对日志块映射表LPMT进行分析,判断日志块中的数据是否全部为有效数据,若是,则执行步骤2;否则,按页读取日志块中的数据,然后写入对应数据块,执行步骤4;其中一个日志块对应存储多个数据块的数据,其中ADDR为需要写入数据的地址;
步骤2:判断日志块中存储数据的数据块个数是否小于等于2,若是,则执行步骤3;否则,按页读取日志块中的数据,然后写入对应数据块,执行步骤4;
步骤3:修改数据块地址映射表中对应数据块的PAGE_OFFSET,执行步骤4;
步骤4:更新数据块地址映射表DBMT。
2.根据权利要求1所述的一种提高混合映射中日志块数据整理性能的方法,其特征在于步骤3中修改数据块地址映射表中对应数据块的PAGE_OFFSET的具体过程是:
当日志块存储数据的数据块个数为1时,说明此时该日志块的数据全部有效且属于一个数据块,则将PAGE_OFFSET设置为0,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块;当日志块存储数据的数据块个数为2时,若日志块第一个表项值为X,则PAGE_OFFSET=X%PPB,其中PPB为NANDFlash每一个物理块中包含的页数,然后将PAGE_OFFSET设置为X%PPB,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块。
3.根据权利要求1所述的一种提高混合映射中日志块数据整理性能的方法,其特征在于还包括步骤5:根据日志块中存储的数据读取数据。
4.根据权利要求3所述的一种提高混合映射中日志块数据整理性能的方法,其特征在于所述步骤5具体包括:
步骤51:当需要读取数据时,根据ADDR分析日志块映射表LPMT,判断该日志块中是否存在ADDR对应的数据,若存在,则直接从日志块中读取数据;否则,执行步骤52;其中ADDR是需要读取数据的对应的地址;
步骤52:查找数据块映射表DBMT,根据ADDR计算出需要查找的表项n=ADDR/PPB,执行步骤53;
步骤53:解析数据块映射表DBMT中第n项的PAGE_OFFSET,若PAGE_OFFSET值为offset,DBMT[n]的值为PA,则实际的数据存放地址为PA*PPB+offset,从该地址读取数据。
CN201510598511.2A 2015-09-21 2015-09-21 一种提高混合映射中日志块数据整理性能的方法 Active CN105302736B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510598511.2A CN105302736B (zh) 2015-09-21 2015-09-21 一种提高混合映射中日志块数据整理性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510598511.2A CN105302736B (zh) 2015-09-21 2015-09-21 一种提高混合映射中日志块数据整理性能的方法

Publications (2)

Publication Number Publication Date
CN105302736A true CN105302736A (zh) 2016-02-03
CN105302736B CN105302736B (zh) 2019-01-04

Family

ID=55200024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510598511.2A Active CN105302736B (zh) 2015-09-21 2015-09-21 一种提高混合映射中日志块数据整理性能的方法

Country Status (1)

Country Link
CN (1) CN105302736B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354658A (zh) * 2016-08-29 2017-01-25 成都三零嘉微电子有限公司 一种降低混合映射算法中映射表内存资源占用的方法
CN107015919A (zh) * 2017-04-13 2017-08-04 济南浪潮高新科技投资发展有限公司 Nand‑flash存储阵列Mapping管理方法
CN107544912A (zh) * 2016-06-29 2018-01-05 北京忆恒创源科技有限公司 一种日志记录方法、加载方法及其装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241472A (zh) * 2008-03-07 2008-08-13 威盛电子股份有限公司 映射管理方法及系统
US20100332732A1 (en) * 2009-06-29 2010-12-30 Mediatek Inc. Memory systems and mapping methods thereof
CN103440206A (zh) * 2013-07-25 2013-12-11 记忆科技(深圳)有限公司 一种固态硬盘及其混合映射方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241472A (zh) * 2008-03-07 2008-08-13 威盛电子股份有限公司 映射管理方法及系统
US20100332732A1 (en) * 2009-06-29 2010-12-30 Mediatek Inc. Memory systems and mapping methods thereof
CN103440206A (zh) * 2013-07-25 2013-12-11 记忆科技(深圳)有限公司 一种固态硬盘及其混合映射方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邵亚刚等: "《基于日志式混合映射的FTL算法设计与实现》", 《计算机测量与控制》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107544912A (zh) * 2016-06-29 2018-01-05 北京忆恒创源科技有限公司 一种日志记录方法、加载方法及其装置
CN107544912B (zh) * 2016-06-29 2021-09-03 北京忆恒创源科技股份有限公司 一种日志记录方法、加载方法及其装置
CN106354658A (zh) * 2016-08-29 2017-01-25 成都三零嘉微电子有限公司 一种降低混合映射算法中映射表内存资源占用的方法
CN106354658B (zh) * 2016-08-29 2019-02-01 成都三零嘉微电子有限公司 一种降低混合映射算法中映射表内存资源占用的方法
CN107015919A (zh) * 2017-04-13 2017-08-04 济南浪潮高新科技投资发展有限公司 Nand‑flash存储阵列Mapping管理方法

Also Published As

Publication number Publication date
CN105302736B (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
CN104794070B (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN102841851B (zh) 闪存管理方法和闪存设备
CN106354658B (zh) 一种降低混合映射算法中映射表内存资源占用的方法
CN106775476A (zh) 混合内存系统及其管理方法
CN103176916B (zh) 闪存及闪存的地址转换方法
CN101727402A (zh) 一种非易失性存储器数据的读写控制方法及系统
CN108121503A (zh) 一种NandFlash地址映射及块管理算法
CN105242871A (zh) 一种数据写入方法及装置
CN101819509A (zh) 一种固态硬盘读写方法
CN103092766A (zh) 一种用于nand flash的均衡损耗实现方法
CN101493794A (zh) 一种闪存数据处理方法及装置
CN102999441B (zh) 一种细粒度内存访问的方法
CN102819494B (zh) 一种闪存顺序写入时的优化方法
CN106815152A (zh) 一种优化页级闪存转换层的方法
CN105278875A (zh) 一种混合异构nand固态硬盘
CN102609358B (zh) 聚集静态数据的方法及其固态硬盘
CN202472635U (zh) 闪存磨损均衡装置
CN105205008A (zh) 降低混合映射算法中日志块映射表内存资源占用的方法
CN102306124A (zh) Nand Flash芯片硬件驱动层的实现方法
CN105302736A (zh) 一种提高混合映射中日志块数据整理性能的方法
CN107861884B (zh) 一种提高nand闪存中跨页存储地址映射效率的方法
CN102520885B (zh) 一种混合硬盘的数据管理系统
CN101458655B (zh) 内存管理方法、系统及内存控制装置
CN114036079B (zh) 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法
CN101324899B (zh) 一种快速写nand型flash的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant