CN111143313B - 一种提高混合映射算法的日志块读写性能的方法 - Google Patents
一种提高混合映射算法的日志块读写性能的方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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。
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)
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)
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)
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 | 安徽大学 | 提高地址映射表中映射信息密度的方法 |
-
2019
- 2019-12-25 CN CN201911357707.7A patent/CN111143313B/zh active Active
Patent Citations (2)
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)
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 |