CN105302736B - 一种提高混合映射中日志块数据整理性能的方法 - Google Patents
一种提高混合映射中日志块数据整理性能的方法 Download PDFInfo
- Publication number
- CN105302736B CN105302736B CN201510598511.2A CN201510598511A CN105302736B CN 105302736 B CN105302736 B CN 105302736B CN 201510598511 A CN201510598511 A CN 201510598511A CN 105302736 B CN105302736 B CN 105302736B
- Authority
- CN
- China
- Prior art keywords
- data
- log blocks
- page
- mapping table
- 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.)
- Active
Links
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本发明涉及存储器NAND Flash数据存储领域,尤其是一种提高混合映射中日志块数据整理性能的方法。本发明针对现有技术存在的问题,提供一种方法,提供了一个地址映射表,对日志块映射表的进行记录,减少了冗余的块擦除以及块数据拷贝过程,提升了当混合映射中日志块写满时需要对日志块进行整理合并这个过程的性能。本发明对日志块映射表LPMT进行分析,判断当日志块中的数据是否全部为有效数据并且所存储的数据对应的数据块个数小于等于2时,通过修改数据块地址映射表中的页偏移量PAGE_OFFSET,达到本发明的目的。
Description
技术领域
本发明涉及存储器NAND Flash数据存储领域,尤其是一种提高混合映射中日志块数据整理性能的方法。
背景技术
半导体行业的蓬勃发展,出现了高性能的存储器NAND Flash,NAND Flash存储器使用半导体作为存储介质,具有高速,低能耗和防震等优点,但NAND Flash存储器本身也存在一些不足。首先,它的存储块的擦除次数是有限的;其次,NAND Flash必须要擦除之后才能重新写入,导致写入性能较低。因此,磨损均衡显得尤为重要,好的磨损均衡管理方法不但能够提高NAND Flash性能和效率,还能够大大的延长NAND Flash的使用寿命。基于此,出现了专门为NAND Flash存储器所使用的文件系统,如JFFS、JFFS2、YAFFS等,这些NANDFlash专用的文件系统进行存储管理为NAND Flash设备提供专门的驱动和更好的数据管理。但是对于一个小型的SOC,由于资源的限制,想采用以上的文件系统对NAND Flash进行管理不太现实,所以亟需一个轻量级的管理方法,能够在有限资源的条件下,满足对NANDFlash的磨损均衡控制。
目前对于小型的系统,常采用的管理方法为FTL(Flash Translation Layer)。典型的FTL管理机制采用以页为单位进行存储管理的方式,如图1所示,将物理页地址与逻辑页地址来进行一一对应,读、写操作都是按页进行,数据存储时存储在空白的页面存储区中,数据写入完成后需更新地址映射表中的转换信息。这种管理算法比较直接,但是由于采用的页映射机制,对于容量小、页数少的存储器,是极为方便的一种方法。但是,对于大容量NAND Flash来说,就显得比较吃力因为其需要很大的内存空间来保存当前的映射表。
为了解决这个问题,提出了混合映射(Hybrid mapping)算法,它是基于块和页的混合映射的机制,如图2所示,在该算法中,将NAND Flash分为数据块和日志块两个部分,日志块是有N个空闲块组成;同时,在内存中存储着两个表:基于块映射的数据块地址映射表DBMT和基于页映射的日志块页映射表LPMT。由于该算法采用块映射和页映射相结合的方式,所需要消耗的系统内存空间比较小,满足一般小型SOC的需求。根据混合映射机制,写入数据先按页映射的方式先写入日志块中,当日志块满时,需要对日志块数据进行整理,将有效数据合并到数据块中,更新数据块地址映射表DBMT,然后释放日志块。该过程如图3所示,在数据整理合并过程中,需要对数据进行读写和块擦除操作,消耗大量的时间成本,在大数据量写入时会出现写入性能突然降低的情况,这点对于目前接口性能要求比较高的应用来说很难接受。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种提高混合映射中日志块数据整理性能的方法,提升了当混合映射中日志块写满时需要对日志块进行整理合并这个过程的性能,提供了一个地址映射表,对日志块映射表的进行记录,减少了冗余的块擦除、块数据拷贝过程,可广泛应用于片上系统的NAND Flash存储器的管理。
本发明采用的技术方案如下:
一种提高混合映射中日志块数据整理性能的方法包括:
步骤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 混合映射数据合并示意图;
图4 PAGE_OFFSET数据结构示意图;
图5 大数据量写入时日志块数据示意图;
图6a数据合并流程图;
图6b数据读取流程图;
图7 NAND Flash结构示意图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
在本发明中设计了一种数据结构页偏移量PAGE_OFFSET,用1字节表示,范围为0~255,存储在数据块地址映射表中,通过该数据结构可以得到存储在该块上的数据分别属于实际的逻辑块,即逻辑地址到物理地址的转换,该数据结构如图4所示。在大数据写入时,一定会出现连续写入日志块的情形,此时页映射表一定会出现如图5所示情形,即日志块被写满,且一个日志块包含了一个或两个物理块的有效数据,此时,若采用普通的合并方式,需要对该日志块按图3方式进行按页读取,然后写入到对应的数据块中,待所有数据合并完成后,需要对日志块进行擦除操作。在本发明中,利用图4所示数据结构,可以直接将日志块转换成数据块,修改数据块地址映射表并同时更新映射表中的页偏移量PAGE_OFFSET,如图5所示。
在本发明中,数据合并流程如图6a、6b所示,首先对日志块页映射表LPMT进行分析,当确定一个日志块中的数据全部为有效数据时,对其存储的数据所属的数据块进行分析,统计其所属数据块的个数。当所属块个数小于等于2时,则直接修改数据块地址映射表DBMT,将日志块转换为数据块,计算页偏移量PAGE_OFFSET,当日志块存储的数据对应的所属数据块个数为1时,说明此时该日志块的数据全部有效且属于一个数据块,此时只需要将PAGE_OFFSET设置为0,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块;当日志块存储的数据对应的所属数据块个数为2时,若日志块第一个表项值为X,则PAGE_OFFSET=X%PPB,其中PPB为NAND Flash每一个物理块中包含的页数。此时只需要将PAGE_OFFSET设置为X%PPB,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块将计算所得PAGE_ OFFSET存在数据块地址映射表DBMT中。当不符合以上条件时,采用普通合并方式进行处理。
在本发明中,数据读取流程如图6a、6b所示,根据ADDR分析日志块映射表LPMT,判断该日志块中是否存在ADDR对应的数据,若存在,则直接从日志块中读取数据。若不存在,查找数据块映射表DBMT,根据ADDR计算出需要查找的表项n=ADDR/PPB,解析数据块映射表DBMT中第n项的PAGE_OFFSET,若PAGE_OFFSET值为offset,DBMT[n]的值为PA,则实际的数据存放地址为PA* PPB+offset,从该地址读取数据,ADDR是需要读取数据的对应的地址。
实施例一:选用美光公司MT29F32G08CBACA型NAND Flash作为试验对象,物理结构如图7所示。设页读取时间为Tr,页写入时间为Tw,块擦除时间为Te,若取日志块个数N为64,存在图5情形的数据块个数为50,按图3所示合并日志块数据消耗的时间为:64 *(256*Tr +256 Tw +Te)。若采用本发明时只需要对映射表进行更新,所消耗的时间为(64 - 50)(256*Tr +256 Tw +Te),减少了80%左右的时间消耗,因此,在实际应用时,根据实际的NANDFlash存储设备,调整合适PAGE_OFFSET,能够大幅提升系统的性能。本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (3)
1.一种提高混合映射中日志块数据整理性能的方法,其特征在于包括:
步骤1:根据ADDR对日志块映射表LPMT进行分析,判断日志块中的数据是否全部为有效数据,若是,则执行步骤2;否则,按页读取日志块中的数据,然后写入对应数据块,执行步骤4;其中一个日志块对应存储多个数据块的数据,其中ADDR为需要写入数据的地址;
步骤2:判断日志块中存储数据的数据块个数是否小于等于2,若是,则执行步骤3;否则,按页读取日志块中的数据,然后写入对应数据块,执行步骤4;
步骤3:修改数据块地址映射表中对应数据块的PAGE_OFFSET,执行步骤4;
步骤4:更新数据块地址映射表DBMT;
其中,步骤3中具体过程是:
当日志块存储数据的数据块个数为1时,说明此时该日志块的数据全部有效且属于一个数据块,则将PAGE_OFFSET设置为0,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块;当日志块存储数据的数据块个数为2时,若日志块第一个表项值为X,则PAGE_OFFSET=X%PPB,其中PPB为NAND Flash每一个物理块中包含的页数,然后将PAGE_OFFSET设置为X%PPB,根据当前日志块号更新数据块地址映射表,将该日志块从逻辑属性上转换为数据块。
2.根据权利要求1所述的一种提高混合映射中日志块数据整理性能的方法,其特征在于还包括步骤5:根据日志块中存储的数据读取数据。
3.根据权利要求2所述的一种提高混合映射中日志块数据整理性能的方法,其特征在于所述步骤5具体包括:
步骤51:当需要读取数据时,根据ADDR分析日志块映射表LPMT,判断该日志块中是否存在ADDR对应的数据,若存在,则直接从日志块中读取数据;否则,执行步骤52;
步骤52:查找数据块映射表DBMT,根据ADDR计算出需要查找的表项n=ADDR/PPB,执行步骤53;
步骤53:解析数据块映射表DBMT中第n项的PAGE_OFFSET,若PAGE_OFFSET值为offset,DBMT[n]的值为PA,则实际的数据存放地址为PA* PPB+offset,从该地址读取数据。
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 CN105302736A (zh) | 2016-02-03 |
CN105302736B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590504B (zh) * | 2016-06-29 | 2024-09-03 | 北京忆恒创源科技股份有限公司 | 存储日志帧以及日志条目的固态硬盘 |
CN106354658B (zh) * | 2016-08-29 | 2019-02-01 | 成都三零嘉微电子有限公司 | 一种降低混合映射算法中映射表内存资源占用的方法 |
CN107015919A (zh) * | 2017-04-13 | 2017-08-04 | 济南浪潮高新科技投资发展有限公司 | Nand‑flash存储阵列Mapping管理方法 |
Citations (3)
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 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其混合映射方法 |
-
2015
- 2015-09-21 CN CN201510598511.2A patent/CN105302736B/zh active Active
Patent Citations (3)
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)
Title |
---|
《基于日志式混合映射的FTL算法设计与实现》;邵亚刚等;《计算机测量与控制》;20090725;第1362页-第1364页 |
Also Published As
Publication number | Publication date |
---|---|
CN105302736A (zh) | 2016-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049397B (zh) | 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 | |
CN104461393A (zh) | 一种闪存存储器的混合映射方法 | |
CN102768645B (zh) | 混合缓存的固态硬盘预取方法和固态硬盘ssd | |
CN104360958A (zh) | 基于块保留区替换的坏块管理系统及管理方法 | |
CN101819509A (zh) | 一种固态硬盘读写方法 | |
CN109582593A (zh) | 一种基于计算的ftl地址映射方法及数据读、写方法 | |
CN104899154B (zh) | 基于嵌入式系统混合主存的页面管理方法 | |
CN103425600A (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
CN105302736B (zh) | 一种提高混合映射中日志块数据整理性能的方法 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN103019959B (zh) | 一种指令高速缓冲存储器 | |
CN102306124A (zh) | Nand Flash芯片硬件驱动层的实现方法 | |
CN105205008B (zh) | 降低混合映射算法中日志块映射表内存资源占用的方法 | |
CN102567225A (zh) | 一种管理系统内存的方法及装置 | |
CN111722797B (zh) | 面向ssd与ha-smr混合存储系统数据管理方法、存储介质及设备 | |
CN103021016B (zh) | 一种渲染过程中海量三维地理信息数据处理方法 | |
CN102520885B (zh) | 一种混合硬盘的数据管理系统 | |
CN103425438A (zh) | 优化固态硬盘写请求的方法及其固态硬盘 | |
US20200201757A1 (en) | Wear leveling in a memory system | |
CN103207836B (zh) | 一种用于固态存储硬盘的写方法及写装置 | |
CN102650972B (zh) | 数据存储方法、装置及系统 | |
CN103019963B (zh) | 一种高速缓存的映射方法及存储设备 | |
CN103176753B (zh) | 存储设备及其数据管理方法 | |
CN102541623B (zh) | 一种嵌入式处理器的存储空间模拟方法 | |
CN106528446B (zh) | 闪存数据的控制方法及控制系统 |
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 |