CN111143313B - 一种提高混合映射算法的日志块读写性能的方法 - Google Patents

一种提高混合映射算法的日志块读写性能的方法 Download PDF

Info

Publication number
CN111143313B
CN111143313B CN201911357707.7A CN201911357707A CN111143313B CN 111143313 B CN111143313 B CN 111143313B CN 201911357707 A CN201911357707 A CN 201911357707A CN 111143313 B CN111143313 B CN 111143313B
Authority
CN
China
Prior art keywords
data
nand flash
buffer
flash memory
page
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
Application number
CN201911357707.7A
Other languages
English (en)
Other versions
CN111143313A (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 30javee Microelectronics Co ltd
Original Assignee
Chengdu 30javee Microelectronics 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 30javee Microelectronics Co ltd filed Critical Chengdu 30javee Microelectronics Co ltd
Priority to CN201911357707.7A priority Critical patent/CN111143313B/zh
Publication of CN111143313A publication Critical patent/CN111143313A/zh
Application granted granted Critical
Publication of CN111143313B publication Critical patent/CN111143313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及NAND Flash存储器数据读写领域,公开了一种提高混合映射算法的日志块读写性能的方法,该方法通过现有的混合映射算法的日志块的映射粒度调整为N倍的512B,并且N*512B能够被NAND Flash的页容量整除,同时根据NAND Flash存储器的页容量来构建多个缓存器,在写入数据时,先通过缓存器,在写入到NAND Flash存储器中,在读取时,先将数据导入缓存器中,在从缓存器中返回数据。本发明通过调整日志块的映射粒度能够实现读写性能的提升,其中N越小,对性能的改善越显著,但是随之而来的时映射表项的倍增,所以在实际应用当中,可以综合权衡性能和映射表项之间的关系,取一个合适的N值,达到性能优化的目的。

Description

一种提高混合映射算法的日志块读写性能的方法
技术领域
本发明涉及NAND Flash存储器数据读写领域,尤其涉及一种提高混合映射算法的日志块读写性能的方法。
背景技术
半导体行业的蓬勃发展,出现了高性能的存储器NAND Flash,NAND Flash存储器使用半导体作为存储介质,具有高速、低能耗和防震等优点,被广泛应用到U盘,SD卡等便携式存储设备和现在最流行的固态硬盘当中。虽然NAND Flash有着众多优点,但其本身也存在一些不足,其中最大的缺点是其擦除寿命有限,从最初的SLC型NAND Flash的10万次擦除寿命到MLC型NAND Flash的5000次擦除寿命再到最近TLC NAND Flash的1500次左右的擦除寿命,使得NAND Flash的应用依赖FTL算法,该类算法能够显著提升NAND Flash的使用寿命,混合映射算法是其中一种典型的算法代表,该算法将NAND Flash从逻辑上分为了日志块和数据块两类,日志块采用页映射方式,数据块采用块映射方式,映射方式如图1所示。其数据写入和读取数据的流程如下:当主机需要写入数据时,首先从日志块中分配一块空闲块写入数据,当该块写满后,将日志块转换成数据块,重新分配数据块以备后续写入流程;当主机需要读取数据时,先从日志块中查询是否有有效数据,若有则从日志块中读取数据,若无,则到数据块中寻找有效数据。NAND Flash还有个缺点就是读和写是以页为单位,擦除是以块为单位的,另外,NAND Flash不支持原文更新,只能采用异地更新策略。
图2是一款典型的NAND Flash逻辑结构图。该款NAND Flash是镁光公司的L85A型NANDflash,每个页有16384KB容量,每个块共有512个页,即16384KB*512=8MB容量。单个页读取理论时间为115μs,单个页写入的理论时间为1600μs。
上述论述中阐述了基于混合映射算法中日志块的映射粒度为页,也即对日志块的操作是按照页的粒度进行的,每次读和写都是一整页的数据。但是由于历史原因,目前的操作系统对磁盘的操作粒度最小为512字节,也就说实际应用当中,操作系统访问磁盘的粒度小于一个NAND Flash的物理页,但是此时由于NAND Flash的特性限制,访问NAND Flash时依然是以一个物理的页为单位进行的。例如,当主机需要写入4笔512字节数据到指定地址ADDR1,ADDR2,ADDR3,ADDR4时,假定日志块中有足够多的空闲页能够满足写入需求,混合映射算法处理流程如下:
(1)将指定地址ADDR1按照16KB的粒度划分,计算得出目的地址LOG_ADDR1=ADDR1/16KB;
(2)查找日志块中逻辑地址LOG_ADDR1对于的物理页地址PHY_ADDR1,写入第一笔512B数据到NAND Flash中,同时更新页映射表;
(3)重复步骤1,得出LOG_ADDR2,查找日志块中逻辑地址LOG_ADDR2对于的物理页地址PHY_ADDR2,写入第二笔512B数据到NAND Flash中,同时更新页映射表;
(4)重复步骤1,得出LOG_ADDR3,查找日志块中逻辑地址LOG_ADDR3对于的物理页地址PHY_ADDR3,写入第三笔512B数据到NAND Flash中,同时更新页映射表;
(5)重复步骤1,得出LOG_ADDR4,查找日志块中逻辑地址LOG_ADDR4对于的物理页地址PHY_ADDR4,写入第四笔512B数据到NAND Flash中,同时更新页映射表;
当主机需要从读取4笔512B的数据时,混合映射算法处理流程如下:
(1)将指定地址ADDR1按照16KB的粒度划分,计算得出目的地址LOG_ADDR1=ADDR/16KB;
(2)查找日志块中逻辑地址LOG_ADDR1对于的物理页地址PHY_ADDR1,从NANDFlash的PHY_ADDR1处读取16KB数据,返回其中的512B数据;
(3)重复步骤1,得出LOG_ADDR2,查找日志块中逻辑地址LOG_ADDR2对于的物理页地址PHY_ADDR2,从NAND Flash的PHY_ADDR2处读取16KB数据,返回其中的512B数据。
(3)重复步骤1,得出LOG_ADDR3,查找日志块中逻辑地址LOG_ADDR3对于的物理页地址PHY_ADDR3,从NAND Flash的PHY_ADDR3处读取16KB数据,返回其中的512B数据。
(4)重复步骤1,得出LOG_ADDR4,查找日志块中逻辑地址LOG_ADDR4对于的物理页地址PHY_ADDR4,从NAND Flash的PHY_ADDR4处读取16KB数据,返回其中的512B数据。
上述日志块的映射方式如图3所示,从上述的描述可以看出,由于NAND Flash写读都是以页为单位,所以主机写512B时,其实写入的数据有16KB,需要消耗1600μs,这就写放大效应,浪费了31/32的性能。主机读取512B时,同样读取的数据有16KB,这就是读放大效应,需要消耗115μs,浪费了31/32的性能。该情况下写/读的放大系数都为16KB/512B=32。写4笔512B性能为(4x512B)/(4x 1600μs)=0.32MB/s,读4笔512B数据的性能为(4x512B)/(4x 115μs)=4.45MB/s
发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供了一种提高混合映射算法的日志块读写性能的方法,能够显著降低这种情况下的写/读的放大系数,提高读写的性能。
本发明采用的技术方案如下:一种提高混合映射算法的日志块读写性能的方法,包括:
S1:将混合映射算法的日志块映射粒度调整为N倍的512B;所述N为大于等于1的自然数;
S2:根据NAND Flash存储器的页容量X,构建相应个数的缓存器BUFFER;
S3:在写入数据时,先将每组数据存入对应的缓存器中,再将缓存器中的数据统一写入NAND Flash存储器;
S4:在读取数据时,读取NAND Flash存储器中的数据到缓存器中,查找每个缓存器,返回对应的数据。
进一步的,所述N倍512B能够被NAND Flash存储器的页容量X整除。
进一步的,所述NAND Flash存储器的页容量X为大于等于N倍的512B。
进一步的,所述步骤S3具体包括:
S31:当NAND Flash存储器的主机写入数据时,根据NAND Flash存储器的页容量X的大小,构建M个N*512B的缓存器BUFFER,且每个缓存器的容量相同;所述
S32:将指定地址ADDR按照的粒度划分,计算得出目的地址/>
S33:将每组数据更新到对应的缓存器BUFFER中,并更新相应的页映射表;
S34:在M个缓存器BUFFER均被更新后,将每个缓存器BUFFER中的数据都写入到NANDFlash存储器中。
进一步的,所述步骤S4具体包括:
S41:当NAND Flash存储器的主机读取数据时,根据NAND Flash存储器的页容量X的大小,构建M个N*512B的缓存器BUFFER,且每个缓存器的容量相同;所述
S42:将指定地址ADDR按照的粒度划分,计算得出目的地址/>
S43:查找日志块中逻辑地址LOG_ADDR对应的物理页地址PHY_ADDR,读取物理页地址PHY_ADDR对应的NAND Flash存储器的上的数据到M个缓存器BUFFER中;
S44:依次查找每个缓存器BUFFER,返回每个缓存器BUFFER中缓存的数据。
与现有技术相比,采用上述技术方案的有益效果为:通过调整日志块的映射粒度能够实现读写性能的提升,其中N越小,对性能的改善越显著,但是随之而来的时映射表项的倍增,所以在实际应用当中,可以综合权衡性能和映射表项之间的关系,取一个合适的N值,达到性能优化的目的。
附图说明
图1是基于混合映射的映射表示意图。
图2是NAND Flash结构示意图。
图3是混合映射日志块映射表示意图。
图4是本发明方法改进后混合映射日志块映射表示意图。
具体实施方式
下面结合附图对本发明做进一步描述。
在本发明中设计了一种方法,调整了混合日志块的映射方式,将混合映射算法的日志块映射粒度调整为N倍的512B,其中N*512B能够被NAND Flash的页容量整除,以镁光公司的L85A举例,N可以取1、2、4、8、16、32,当N取32时,即为通常的混合映射。以N为8举例来,当N为8时,日志块的映射粒度为8x 512B=4KB,L85A的页容量为16KB,则构建4个容量相同的缓存器BUFFER,其映射关系如图4所示:
当主机需要写入4笔512B数据时,改进后的混合映射算法处理流程如下:
(1)构建4个4KB的缓存,分别为BUFFER1,BUFFER2,BUFFER3,BUFFER4;
(2)将指定地址ADDR按照4KB的粒度划分,计算得出目的地址LOG_ADDR1=ADDR/4KB;
(3)将第一笔512B数据更新到缓存BUFFER1当中,并更新改进后的页映射表;
(4)重复步骤2,得出LOG_ADDR2,将第二笔512B数据更新到缓存BUFFER2当中,并更新改进后的页映射表;
(5)重复步骤2,得出LOG_ADDR3,将第三笔512B数据更新到缓存BUFFER3当中,并更新改进后的页映射表;
(6)重复步骤2,得出LOG_ADDR4,将第四笔512B数据更新到缓存BUFFER4当中,并更新改进后的页映射表;
(7)4个缓存均被更新,则说明已经准备好了16KB的数据,将BUFFER1、BUFFER2、BUFFER3以及BUFFER4的数据写入到NAND Flash当中。
当主机需要读取4笔512B数据时,改进后的混合映射算法处理流程如下:
(1)构建4个4KB的缓存,分别为BUFFER1,BUFFER2,BUFFER3,BUFFER4;
(2)将指定地址ADDR按照4KB的粒度划分,计算得出目的地址LOG_ADDR1=ADDR/4KB;
(3)查找日志块中逻辑地址LOG_ADDR1对应的物理页地址PHY_ADDR1,读取NANDFlash存储器中的16KB数据到4个缓存中
(4)查找BUFFER1,返回512B数据;
(5)查找BUFFER2,返回512B数据;
(6)查找BUFFER3,返回512B数据;
(7)查找BUFFER4,返回512B数据。
从上述过程看出,改进后的算法对于主机的4笔512B数据写入和读取只有一次的写入和读取的操作,降低了写/读放大系数,提高了单笔IO操作的效率,提升了性能。
由上述示例可以看出,改进之后的算法在处理主机的4笔大小为512字节的IO时,实际写入的数据为16KB,写放大系数为16KB/(4x512B)=8,实际读取的数据为16KB,读放大系数为16KB/(4x 512B)=8。另外,该型号NAND Flash理论上单页读取的时间为115μs,单页写时间为1600μs,所以4笔读IO的消耗时间为115μs,读速率为17.8MB/s,4笔写IO的消耗时间为1600μs,写性能为1.28MB/s。而改进前的算法,4笔读IO需要进行4次读NAND Flash操作,消耗时间为4x 115μs=460μs,性能为4.45MB/s,4笔写操作消耗时间为4x 1600=6400,性能为0.32MB/s。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。

Claims (3)

1.一种提高混合映射算法的日志块读写性能的方法,其特征在于,包括:
S1:将混合映射算法的日志块映射粒度调整为N倍的512B;所述N为大于等于1的自然数;
S2:根据NAND Flash存储器的页容量X,构建相应个数的缓存器BUFFER;
S3:在写入数据时,先将每组数据存入对应的缓存器中,再将缓存器中的数据统一写入NAND Flash存储器;所述步骤S3具体包括:
S31:当NAND Flash存储器的主机写入数据时,根据NAND Flash存储器的页容量X的大小,构建M个N*512B的缓存器BUFFER,且每个缓存器的容量相同;所述
S32:将指定地址ADDR按照的粒度划分,计算得出目的地址/>
S33:将每组数据更新到对应的缓存器BUFFER中,并更新相应的页映射表;
S34:在M个缓存器BUFFER均被更新后,将每个缓存器BUFFER中的数据都写入到NANDFlash存储器中;
S4:在读取数据时,读取NAND Flash存储器中的数据到缓存器中,查找每个缓存器,返回对应的数据;所述步骤S4具体包括:
S41:当NAND Flash存储器的主机读取数据时,根据NAND Flash存储器的页容量X的大小,构建M个N*512B的缓存器BUFFER,且每个缓存器的容量相同;所述
S42:将指定地址ADDR按照的粒度划分,计算得出目的地址/>
S43:查找日志块中逻辑地址LOG_ADDR对应的物理页地址PHY_ADDR,读取物理页地址PHY_ADDR对应的NAND Flash存储器的上的数据到M个缓存器BUFFER中;
S44:依次查找每个缓存器BUFFER,返回每个缓存器BUFFER中缓存的数据。
2.根据权利要求1所述的一种提高混合映射算法的日志块读写性能的方法,其特征在于,所述N倍512B能够被NAND Flash存储器的页容量X整除。
3.根据权利要求1所述的一种提高混合映射算法的日志块读写性能的方法,其特征在于,所述NAND Flash存储器的页容量X为大于等于N倍的512B。
CN201911357707.7A 2019-12-25 2019-12-25 一种提高混合映射算法的日志块读写性能的方法 Active CN111143313B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911357707.7A CN111143313B (zh) 2019-12-25 2019-12-25 一种提高混合映射算法的日志块读写性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911357707.7A CN111143313B (zh) 2019-12-25 2019-12-25 一种提高混合映射算法的日志块读写性能的方法

Publications (2)

Publication Number Publication Date
CN111143313A CN111143313A (zh) 2020-05-12
CN111143313B true CN111143313B (zh) 2023-07-25

Family

ID=70520041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911357707.7A Active CN111143313B (zh) 2019-12-25 2019-12-25 一种提高混合映射算法的日志块读写性能的方法

Country Status (1)

Country Link
CN (1) CN111143313B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377296B (zh) * 2021-08-16 2021-11-16 深圳市有为信息技术发展有限公司 车载终端NAND Flash的存储管理方法和系统、车载终端、车辆
CN115756327A (zh) * 2022-11-22 2023-03-07 郑州云海信息技术有限公司 一种固态硬盘及其数据写方法、装置、主机和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201923A (zh) * 2016-07-20 2016-12-07 杭州宏杉科技有限公司 读写数据方法及装置
CN110268391A (zh) * 2016-12-09 2019-09-20 魔法存储器有限公司 用于缓存数据的系统和方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
CN102163175B (zh) * 2011-04-26 2013-02-27 西安交通大学 一种基于局部性分析的混合地址映射方法
KR20160064364A (ko) * 2014-11-27 2016-06-08 삼성전자주식회사 패스트 오픈을 위한 어드레스 맵 운영방법 및 그에 따른 메모리 시스템
KR101805828B1 (ko) * 2016-03-21 2017-12-07 주식회사 디에이아이오 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러
KR20180002259A (ko) * 2016-06-29 2018-01-08 주식회사 파두 계층적 플래시 변환 레이어 구조 및 그 설계 방법
CN106293521B (zh) * 2016-08-02 2019-04-12 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
CN107066393B (zh) * 2017-01-12 2020-06-09 安徽大学 提高地址映射表中映射信息密度的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201923A (zh) * 2016-07-20 2016-12-07 杭州宏杉科技有限公司 读写数据方法及装置
CN110268391A (zh) * 2016-12-09 2019-09-20 魔法存储器有限公司 用于缓存数据的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于缓存映射项重用距离的闪存地址映射方法;周权彪;张兴军;梁宁静;霍文洁;董小社;;计算机研究与发展(第05期);全文 *

Also Published As

Publication number Publication date
CN111143313A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
US11232041B2 (en) Memory addressing
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
CN107168647B (zh) Flash数据读写方法及系统
US8516219B2 (en) Index cache tree
TWI494761B (zh) 分割實體區塊之方法及記憶體系統
US7991944B2 (en) System and method for searching mapping table of flash memory
CN104794070A (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
CN106354658B (zh) 一种降低混合映射算法中映射表内存资源占用的方法
CN118302740A (zh) 使用写时复制的固态驱动器上复制技术
US20050144396A1 (en) Coalescing disk write back requests
CN101383190A (zh) 应用于固态硬盘的闪存均衡损耗算法
CN111143313B (zh) 一种提高混合映射算法的日志块读写性能的方法
US8429339B2 (en) Storage device utilizing free pages in compressed blocks
US20100064095A1 (en) Flash memory system and operation method
CN105005510B (zh) 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法
CN102681792B (zh) 一种固态盘内存分区方法
CN105205008B (zh) 降低混合映射算法中日志块映射表内存资源占用的方法
CN113419675A (zh) 用于存储器的写操作方法及读操作方法
CN110309081A (zh) 基于压缩存储和地址映射表项的ftl读写数据页的方法
CN108717395B (zh) 一种降低动态块映射信息占用内存的方法及装置
TWI635391B (zh) 快閃記憶體以及其管理方法
CN113126921B (zh) 一种提高固态盘内3d闪存芯片写性能的优化方法
US20210089223A1 (en) Data storage device and non-volatile memory control method
KR20090046568A (ko) 플래시 메모리 시스템 및 그것의 쓰기 방법

Legal Events

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