CN112100095B - 闪存空间优化方法、装置和闪存存储设备 - Google Patents

闪存空间优化方法、装置和闪存存储设备 Download PDF

Info

Publication number
CN112100095B
CN112100095B CN202010885655.7A CN202010885655A CN112100095B CN 112100095 B CN112100095 B CN 112100095B CN 202010885655 A CN202010885655 A CN 202010885655A CN 112100095 B CN112100095 B CN 112100095B
Authority
CN
China
Prior art keywords
command
short
flash memory
data
expansion mode
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
CN202010885655.7A
Other languages
English (en)
Other versions
CN112100095A (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.)
Shenzhen Hongwang Microelectronics Co ltd
Original Assignee
Shenzhen Hongwang 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 Shenzhen Hongwang Microelectronics Co ltd filed Critical Shenzhen Hongwang Microelectronics Co ltd
Priority to CN202010885655.7A priority Critical patent/CN112100095B/zh
Publication of CN112100095A publication Critical patent/CN112100095A/zh
Application granted granted Critical
Publication of CN112100095B publication Critical patent/CN112100095B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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

Abstract

本申请提供了一种闪存空间优化方法、装置和闪存存储设备,运用于信息存储领域,缓存空间分为数据缓存区和映射表缓存区,所述优化方法包括;获取I/O命令,并判断I/O命令的数据长度;若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,且获取到的所述短I/O命令累计数量大于预规定的数量阈值Y时,则开启扩展模式;启用扩展模式时,将预设于数据缓存区中的动态缓存分区分配于所述映射表缓存区,以供所述映射表缓存区扩展与缓存新的实体地址关联闪存空间的数据区,且执行大量短I/O命令;在随机短I/O的应用场景下,有效利用数据缓存区的空间将原本的映射表空间获得扩充,由于随机短I/O的应用场景数据长度较短,进而将空间提供映射表使用。

Description

闪存空间优化方法、装置和闪存存储设备
技术领域
本申请涉及信息存储技术领域,特别涉及为闪存空间优化方法、装置和闪存存储设备。
背景技术
由于目前的闪存控制芯片的成本考量,使芯片空间内的数据缓存区和映射表缓存区的空间不能无限放大,因此芯片内的空间是有限的,当芯片内的空间同时执行一定数量的I/O命令时,会直接反映在整体产品的性能表现;
目前的主流的作业系统中,大部分作业系统的读写处理为非常大量的随机读写操作,大量的随机读写操作为大量的I/O命令执行,数据缓存区主要负责缓存I/O命令的数据,映射表缓存区主要是纪录每个逻辑地址数据所存放的实体地址;在作业系统大量的随机I/O命令操作所涵盖的逻辑地址范围相当大,因此会有大量的映射表替换的动作,当大量的随机I/O找不到对应的实体地址时,大量映射表的替换会造成整体的性能受限。
发明内容
本申请旨在解决大量的随机I/O命令操作导致映射表不够空间替换而导致的闪存整体性能受限的技术问题,提供一种闪存空间优化方法、装置和闪存存储设备。
本申请为解决技术问题采用如下技术手段:
一种闪存空间优化方法,用于优化闪存内的缓存空间,所述缓存空间分为数据缓存区和映射表缓存区,所述优化方法包括;
获取I/O命令,并判断I/O命令的数据长度;
若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,且获取到的所述短I/O命令累计数量大于预规定的数量阈值Y时,则开启扩展模式;
启用扩展模式时,将预设于数据缓存区中的动态缓存分区分配于所述映射表缓存区,以供所述映射表缓存区扩展与缓存新的实体地址关联闪存空间的数据区,且执行大量短I/O命令。
进一步地,所述获取I/O命令,并判断I/O命令的数据长度的步骤之后,包括:
若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,则判断当前是否处于所述扩展模式;
若当前未处于所述扩展模式,则累计所述短I/O命令,并判断当前总累计的短I/O命令数量是否大于预规定的数量阈值Y;
若是,则启用所述扩展模式执行短I/O命令,若否,则累计当前的所述短I/O命令至短I/O命令总累计数量,并执行所述短I/O命令。
进一步地,所述若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,则判断当前是否处于所述扩展模式的步骤之后,包括:
若当前处于所述扩展模式,则以所述扩展模式执行所述短I/O命令。
进一步地,所述获取I/O命令,并判断I/O命令的数据长度的步骤之后,包括:
若所述I/O命令为数据长度大于预规定数据阈值X的长I/O命令,重置短I/O命令的累计数量;
判断当前闪存是否处于扩展模式;
若是,则关闭所述扩展模式,以恢复数据缓存区与映射表缓存区的原大小配置,再执行所述长I/O命令。
进一步地,所述若所述I/O命令为数据长度大于预规定数据阈值X的长I/O命令,重置短I/O命令的累计数量,则判断当前闪存是否处于扩展模式的步骤之后,包括:
若否,则执行长I/O命令。
一种闪存空间优化装置,所述优化装置包括:
获取模块,获取I/O命令,并判断I/O命令的数据长度;
判断模块,若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,且获取到的小于数据阈值X的短I/O命令数量大于预规定的数量阈值Y时,则开启扩展模式;
扩展模块,启用扩展模式时,将预设于数据缓存区中的动态缓存分区分配于所述映射表缓存区使用。
一种闪存存储设备,包括处理器,所述处理器执行计算机程序,所述处理器执行所述程序时实现如权利要求1-5中任一所述的闪存空间优化方法。
本申请提供了闪存空间优化方法、装置和闪存存储设备,具有以下有益效果:
在随机短I/O的应用场景下,有效利用数据缓存区的空间将原本的映射表空间获得扩充,由于随机短I/O的应用场景数据长度较短,不需占用太大量的数据缓存区,进而将空间提供映射表使用。
附图说明
图1为本申请闪存空间优化方法、装置和闪存存储设备一个实施例的流程图。
本申请为目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将结合本申请的实施例中的附图,对本申请的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”、“包含”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本申请的权利要求书、说明书以及说明书附图中的术语,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其他实施例相结合。
参考附图1,为本申请一实施例中的闪存空间优化方法、装置和闪存存储设备的结构示意图;
一种闪存空间优化方法,用于优化闪存内的缓存空间,所述缓存空间分为数据缓存区和映射表缓存区,所述优化方法包括;
获取I/O命令,并判断I/O命令的数据长度;
若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,且获取到的所述短I/O命令累计数量大于预规定的数量阈值Y时,则开启扩展模式;
启用扩展模式时,将预设于数据缓存区中的动态缓存分区分配于所述映射表缓存区,以供所述映射表缓存区扩展与缓存新的实体地址关联闪存空间的数据区,且执行大量短I/O命令。
具体的,因为长I/O命令的长度较长,占用的数据缓存区位置较多,此时的闪存若为扩展模式,则需要关闭扩展模式,将映射表缓存区占用的空间恢复至数据缓存区中,避免长I/O命令无法导入至数据缓存区中,同时,之前记录的短I/O命令数量需要进行清除,若不重置清除短I/O命令,当随机的短I/O命令与长I/O命令同时进入执行时,容易导致映射表缓存区反复的开启或关闭扩展模式,导致长I/O命令无法进入数据缓存区而无法执行长I/O命令。
在一实施例中,所述获取I/O命令,并判断I/O命令的数据长度的步骤之后,包括:
若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,则判断当前是否处于所述扩展模式;
若当前未处于所述扩展模式,则累计所述短I/O命令,并判断当前总累计的短I/O命令数量是否大于预规定的数量阈值Y;
若是,则启用所述扩展模式执行短I/O命令,若否,则累计当前的所述短I/O命令至短I/O命令总累计数量,并执行所述短I/O命令。
在一实施例中,所述若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,则判断当前是否处于所述扩展模式的步骤之后,包括:
若当前处于所述扩展模式,则以所述扩展模式执行所述短I/O命令。
在一实施例中,所述获取I/O命令,并判断I/O命令的数据长度的步骤之后,包括:
若所述I/O命令为数据长度大于预规定数据阈值X的长I/O命令,重置短I/O命令的累计数量;
判断当前闪存是否处于扩展模式;
若是,则关闭所述扩展模式,以恢复数据缓存区与映射表缓存区的原大小配置,再执行所述长I/O命令。
在一实施例中,所述若所述I/O命令为数据长度大于预规定数据阈值X的长I/O命令,重置短I/O命令的累计数量,则判断当前闪存是否处于扩展模式的步骤之后,包括:
若否,则执行长I/O命令。
一种闪存空间优化装置,所述优化装置包括:
获取模块,获取I/O命令,并判断I/O命令的数据长度;
判断模块,若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,且获取到的小于数据阈值X的短I/O命令数量大于预规定的数量阈值Y时,则开启扩展模式;
扩展模块,启用扩展模式时,将预设于数据缓存区中的动态缓存分区分配于所述映射表缓存区使用。
一种闪存存储设备,包括处理器,所述处理器执行计算机程序,所述处理器执行所述程序时实现如权利要求1-5中任一所述的闪存空间优化方法。
尽管已经示出和描述了本申请的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本申请的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由所附权利要求及其等同物限定。

Claims (7)

1.一种闪存空间优化方法,用于优化闪存内的缓存空间,所述缓存空间分为数据缓存区和映射表缓存区,其特征在于,所述优化方法包括;
获取I/O命令,并判断I/O命令的数据长度;
若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,且获取到的所述短I/O命令累计数量大于预规定的数量阈值Y时,则开启扩展模式;
启用扩展模式时,将预设于数据缓存区中的动态缓存分区分配于所述映射表缓存区,以供所述映射表缓存区扩展与缓存新的实体地址关联闪存空间的数据区,且执行大量短I/O命令。
2.根据权利要求1所述的闪存空间优化方法,其特征在于,所述获取I/O命令,并判断I/O命令的数据长度的步骤之后,包括:
若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,则判断当前是否处于所述扩展模式;
若当前未处于所述扩展模式,则累计所述短I/O命令,并判断当前总累计的短I/O命令数量是否大于预规定的数量阈值Y;
若是,则启用所述扩展模式执行短I/O命令,若否,则累计当前的所述短I/O命令至短I/O命令总累计数量,并执行所述短I/O命令。
3.根据权利要求1所述的闪存空间优化方法,其特征在于,所述若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,则判断当前是否处于所述扩展模式的步骤之后,包括:
若当前处于所述扩展模式,则以所述扩展模式执行所述短I/O命令。
4.根据权利要求1所述的闪存空间优化方法,其特征在于,所述获取I/O命令,并判断I/O命令的数据长度的步骤之后,包括:
若所述I/O命令为数据长度大于预规定数据阈值X的长I/O命令,重置短I/O命令的累计数量;
判断当前闪存是否处于扩展模式;
若是,则关闭所述扩展模式,以恢复数据缓存区与映射表缓存区的原大小配置,再执行所述长I/O命令。
5.根据权利要求4所述的闪存空间优化方法,其特征在于,所述若所述I/O命令为数据长度大于预规定数据阈值X的长I/O命令,重置短I/O命令的累计数量,则判断当前闪存是否处于扩展模式的步骤之后,包括:
若否,则执行长I/O命令。
6.一种闪存空间优化装置,其特征在于,所述优化装置包括:
获取模块,获取I/O命令,并判断I/O命令的数据长度;
判断模块,若所述I/O命令为数据长度小于预规定数据阈值X的短I/O命令,且获取到的小于数据阈值X的短I/O命令数量大于预规定的数量阈值Y时,则开启扩展模式;
扩展模块,启用扩展模式时,将预设于数据缓存区中的动态缓存分区分配于映射表缓存区使用。
7.一种闪存存储设备,其特征在于,包括处理器,所述处理器执行计算机程序,所述处理器执行所述程序时实现如权利要求1-5中任一所述的闪存空间优化方法。
CN202010885655.7A 2020-08-28 2020-08-28 闪存空间优化方法、装置和闪存存储设备 Active CN112100095B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010885655.7A CN112100095B (zh) 2020-08-28 2020-08-28 闪存空间优化方法、装置和闪存存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010885655.7A CN112100095B (zh) 2020-08-28 2020-08-28 闪存空间优化方法、装置和闪存存储设备

Publications (2)

Publication Number Publication Date
CN112100095A CN112100095A (zh) 2020-12-18
CN112100095B true CN112100095B (zh) 2023-07-04

Family

ID=73758279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010885655.7A Active CN112100095B (zh) 2020-08-28 2020-08-28 闪存空间优化方法、装置和闪存存储设备

Country Status (1)

Country Link
CN (1) CN112100095B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102087586A (zh) * 2009-12-02 2011-06-08 成都市华为赛门铁克科技有限公司 数据处理方法及装置
CN105095114A (zh) * 2015-08-13 2015-11-25 广州优倍达信息科技有限公司 一种计算机缓存系统的管理方法
CN107943719A (zh) * 2017-11-28 2018-04-20 杭州电子科技大学 一种基于请求分类的闪存转换层控制方法
CN110968529A (zh) * 2019-11-28 2020-04-07 深圳忆联信息系统有限公司 无缓存固态硬盘的实现方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102087586A (zh) * 2009-12-02 2011-06-08 成都市华为赛门铁克科技有限公司 数据处理方法及装置
CN105095114A (zh) * 2015-08-13 2015-11-25 广州优倍达信息科技有限公司 一种计算机缓存系统的管理方法
CN107943719A (zh) * 2017-11-28 2018-04-20 杭州电子科技大学 一种基于请求分类的闪存转换层控制方法
CN110968529A (zh) * 2019-11-28 2020-04-07 深圳忆联信息系统有限公司 无缓存固态硬盘的实现方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向3D NAND闪存的数据分配和管理算法研究;卢祚;《中国优秀硕士学位论文全文数据库(电子期刊)》;I137-147 *

Also Published As

Publication number Publication date
CN112100095A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
US7613870B2 (en) Efficient memory usage in systems including volatile and high-density memories
CN108920387B (zh) 降低读延迟的方法、装置、计算机设备及存储介质
CN105573669A (zh) 一种存储系统的io读加速缓存方法和系统
US20170371807A1 (en) Cache data determining method and apparatus
CN107870732B (zh) 从固态存储设备冲刷页面的方法和设备
US9146933B2 (en) Compressed storage access system with uncompressed frequent use data
CN110427158B (zh) 固态硬盘的写入方法及固态硬盘
CN105117180A (zh) 一种数据存储方法和装置以及固态硬盘
CN111880731B (zh) 一种数据处理方法、装置及相关组件
US20180004409A1 (en) Method and apparatus for managing storage device
CN112905111A (zh) 数据缓存的方法和数据缓存的装置
CN110597457A (zh) 一种固态硬盘、固态硬盘的控制方法及控制器
CN107908358A (zh) 一种降低NVMe固态硬盘写放大的方法
CN110442533A (zh) 一种提高访问性能的方法、设备及存储介质
CN111639037B (zh) 一种缓存的动态分配方法、装置及DRAM-Less固态硬盘
US8732404B2 (en) Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to
CN112100095B (zh) 闪存空间优化方法、装置和闪存存储设备
KR20150083728A (ko) 디스크 캐시 제어 장치 및 방법
CN105138277A (zh) 一种固态盘阵列的缓存管理方法
CN103176753A (zh) 存储设备及其数据管理方法
US20220365876A1 (en) Method of cache management based on file attributes, and cache management device operating based on file attributes
CN116185287A (zh) 一种降低读延时的方法、装置及固态硬盘
CN113867641B (zh) 主机内存缓冲管理方法、装置、以及固态硬盘
CN114610654A (zh) 一种固态存储设备以及向其写入数据的方法
CN111831327A (zh) 可执行指令的电子装置以及指令执行方法

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