CN111124944B - 一种数据写入方法、装置及DRAM-Less固态硬盘 - Google Patents

一种数据写入方法、装置及DRAM-Less固态硬盘 Download PDF

Info

Publication number
CN111124944B
CN111124944B CN201911286089.1A CN201911286089A CN111124944B CN 111124944 B CN111124944 B CN 111124944B CN 201911286089 A CN201911286089 A CN 201911286089A CN 111124944 B CN111124944 B CN 111124944B
Authority
CN
China
Prior art keywords
slc
physical
data
slc physical
physical blocks
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
CN201911286089.1A
Other languages
English (en)
Other versions
CN111124944A (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 Dapu Microelectronics Co Ltd
Original Assignee
Shenzhen Dapu 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 Dapu Microelectronics Co Ltd filed Critical Shenzhen Dapu Microelectronics Co Ltd
Priority to CN201911286089.1A priority Critical patent/CN111124944B/zh
Publication of CN111124944A publication Critical patent/CN111124944A/zh
Application granted granted Critical
Publication of CN111124944B publication Critical patent/CN111124944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例涉及固态硬盘应用领域,公开了一种数据写入方法、装置及DRAM‑Less固态硬盘。其中所述的数据写入方法,包括:为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;当所述SLC物理块的内存已满时,确定所述SLC物理块中的有效数据页的比例;若所述有效数据页的比例小于预设比例阈值,则基于动态搬移策略,搬移所述SLC物理块中的有效数据到与其绑定的非SLC物理块;若所述有效数据页的比例不小于预设比例阈值,则基于静态拷贝策略,拷贝所述SLC物理块中的全部数据到与其绑定的非SLC物理块。通过上述方式,本发明实施例能够减少随机写场景下闪存带宽的浪费,提高DRAM‑Less固态硬盘的随机写性能。

Description

一种数据写入方法、装置及DRAM-Less固态硬盘
技术领域
本发明涉及固态硬盘应用领域,特别是涉及一种数据写入方法、装置及DRAM-Less固态硬盘。
背景技术
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘会包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片),目前,消费级SSD领域竞争越来越激烈,低成本的SSD在市场上能够占据主动,而一个SSD的料件中,闪存和DRAM的成本较高,因此为了降低成本,TLC(Triple Level Cell)闪存加上DRAM-Less的主控被广泛采用。
然而,由于在随机写场景下SLC区域的数据非常有可能被主机复写,被复写后的数据是主机不再需要的,而现有技术是将SLC区域的数据完全搬移到非SLC区域,当后续SLC区域中的数据搬移到TLC区域时,SLC区域中可能存在的有效数据较少,完全将SLC区域的数据搬移容易造成闪存带宽不必要的浪费。
基于上述问题,现有技术亟待改进。
发明内容
本发明实施例旨在提供一种数据写入方法、装置及DRAM-Less固态硬盘,其解决了目前随机写场景下存在闪存带宽浪费的技术问题,减少随机写场景下闪存带宽的浪费,提高DRAM-Less固态硬盘的随机写性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种数据写入方法,应用于DRAM-less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,所述方法包括:
为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,确定所述SLC物理块中的有效数据页的比例;
若所述有效数据页的比例小于预设比例阈值,则基于动态搬移策略,搬移所述SLC物理块中的有效数据到与其绑定的非SLC物理块;
若所述有效数据页的比例不小于预设比例阈值,则基于静态拷贝策略,拷贝所述SLC物理块中的全部数据到与其绑定的非SLC物理块。
在一些实施例中,所述动态搬移策略包括:
读取所述SLC物理块中全部的有效数据页;
将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块;
将拷贝完成后的有效数据页的物理地址更新到所述DRAM-less固态硬盘的映射表中;
解除所述SLC物理块与所述非SLC物理块的绑定关系。
在一些实施例中,所述将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块,包括:
从所述绑定的非SLC物理块的第一个物理页开始,将所述有效数据页顺序写入到绑定的非SLC物理块。
在一些实施例中,在将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块之后,所述方法还包括:
判断所述SLC物理块中全部的有效数据页的数据是否完全拷贝到与其绑定的非SLC物理块中;
若是,则解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块;
若否,则保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
在一些实施例中,所述静态拷贝策略,包括:根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块,其中,每一分组设置有一个内部缓存空间,所述根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块,包括:
固件指定所述SLC物理块的物理页为源物理页,并对闪存发起拷贝读指令;
将所述源物理页的数据从源物理页读取到所述内部缓存空间;
固件指定所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并对闪存发起拷贝写指令;
将所述内部缓存空间中的源物理页的数据拷贝到所述目的物理页。
在一些实施例中,所述内部缓存空间的内存大小为一个物理页,所述非SLC物理块包括TLC物理块、MLC物理块以及QLC物理块中的一个或多个。
在一些实施例中,在将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块之后,所述方法还包括:
判断所述SLC物理块中所有的物理页的数据是否完全拷贝到对应的非SLC物理块中;
若是,则解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块;
若否,则保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
在一些实施例中,在解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块之后,所述方法还包括:
更新所述擦除后的SLC物理块与所述分组中的非SLC物理块的绑定关系。
在一些实施例中,所述建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系,包括:
获取所述SLC物理块中所有的物理页中的数据在所述DRAM-Less固态硬盘的映射表中的物理地址,并将其固定为与所述SLC物理块绑定的非SLC物理块的物理页的物理地址。
在一些实施例中,所述方法还包括:
接收Host端发送的读取指令;
判断所述绑定关系是否存在;
若存在,则根据所述绑定关系,在与所述非SLC物理块绑定的SLC物理块中查找所述读取指令对应的数据;
若不存在,则根据所述DRAM-Less固态硬盘的映射表,在所述非SLC物理块中查找所述读取指令对应的数据。
第二方面,本发明实施例提供一种数据写入装置,应用于DRAM-less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,所述装置包括:
物理块绑定单元,用于为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
有效数据页单元,用于通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,确定所述SLC物理块中的有效数据页的比例;
动态搬移单元,用于若所述有效数据页的比例小于预设比例阈值,则基于动态搬移策略,搬移所述SLC物理块中的有效数据到与其绑定的非SLC物理块;
静态拷贝单元,用于若所述有效数据页的比例不小于预设比例阈值,则基于静态拷贝策略,拷贝所述SLC物理块中的全部数据到与其绑定的非SLC物理块。
第三方面,本发明实施例提供一种DRAM-Less固态硬盘,所述DRAM-Less固态硬盘包括:
闪存芯片,所述闪存芯片包括多个晶圆,每一所述晶圆包括多个分组,每一所述分组包括多个物理块,每一所述物理块包括多个物理页;
主控制器,所述主控制器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的数据写入方法。
第四方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使DRAM-Less固态硬盘能够执行如上所述的数据写入方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种数据写入方法,通过确定SLC物理块中的有效数据页的比例,根据所述比例与预设比例阈值的大小关系,确定不同的数据写入策略,从而减少随机写场景下闪存带宽的浪费,提高DRAM-Less固态硬盘的随机写性能。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是现有技术中的数据搬移的示意图;
图2是图1中的数据搬移对应的映射表更新的示意图;
图3是现有技术中的物理块绑定的示意图;
图4是本发明实施例提供的一种DRAM-Less固态硬盘的结构示意图;
图5是本发明实施例提供的一种数据动态搬移的示意图;
图6是本发明实施例提供的一种数据写入方法的流程示意图;
图7是本发明实施例提供的一种动态搬移和静态拷贝的示意图;
图8是图6中的步骤S40的细化流程图;
图9是本发明实施例提供的一种SLC物理块与非SLC物理块的绑定关系的处理流程示意图;
图10是本发明实施例提供的一种闪存的数据拷贝的示意图;
图11是图6中的步骤S50的细化流程示意图;
图12是本发明实施例提供的一种SLC物理块与TLC物理块的数据拷贝的示意图;
图13是本发明实施例提供的另一种SLC物理块与非SLC物理块的绑定关系的处理流程示意图;
图14是本发明实施例提供的一种读取数据的流程示意图;
图15是本发明实施例提供的一种数据写入装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。目前,配备非SLC闪存,例如:TLC闪存(Triple Level Cell)的固态硬盘(Solid State Drives,SSD)一般均会采用SLC Cache方案来提升SSD的读写性能,其中,SLC Cache方案指的是非SLC闪存,例如:TLC闪存中的TLC物理块被设置成SLC模式作为高速缓存存储器(Cache),由于SLC物理块拥有更高的读写性能,因此主机的数据先写入作为Cache的SLC物理块,所以写性能表现很好,但是SLC物理块的可用容量却是TLC物理块的三分之一,所以SLC Cache不会很大,在Cache内存占满了之后固件内部任务需要将SLCCache中数据搬移到容量更大的TLC物理块中。
请参阅图1,图1是现有技术中的数据搬移的示意图;
如图1所示,TLC闪存的固态硬盘采用SLC Cache方案,其中,L2P表存储于SLC区域(SLC Mode),SLC Cache用于存储主机写入的用户数据,当SLC区域的内存占满后,SLC区域的用户数据被搬移至TLC区域(TLC Mode),由于数据从SLC物理块搬移到TLC物理块,导致数据存储的物理位置变化,因此必须对映射表(L2P表)进行相应更新,由于映射表存储在SLC区域,所以必须从闪存上读出旧的映射内容,更新后再写到闪存中,而读SLC物理页的时间大概为50us,写SLC物理页的时间大概为400us,因此写SLC物理页会耗费大量的时间,导致固态硬盘的速度变慢。
其中,主机持续在随机写场景下,固态硬盘SSD先将用户数据存到SLC Cache,对应的映射信息存到映射表(L2P表),当SLC Cache内存占满之后固件需要启动数据搬移,将SLCCache区域的数据搬到TLC区域,搬的越快,SLC Cache区域腾出空闲物理块的速度越快,主机数据写入SLC Cache越快,即性能越高。
请再参阅图2,图2是图1中的数据搬移对应的映射表更新的示意图;
如图2所示,数据搬移对应的映射表更新的流程,包括:
步骤1:主机数据写入SLC Cache;
具体的,主机(Host端)向固态硬盘写入数据,首先将数据写入到SLC区域的SLCCache中,其中,该步骤花费的时间为SLC_write。
步骤2:将SLC区域的地址信息写入L2P表;
具体的,根据SLC Cache中写入的主机数据,更新映射表(L2P表)的信息,其中,该步骤花费的时间为SLC_write。
步骤3:SLC Cache内存占满后,读取SLC Cache中的所有物理页;
具体的,当主机数据持续写入SLC Cache导致内存占满后,需要将SLC Cache中的所有物理页搬移到TLC区域,因此,需要读取SLC Cache中的物理页,其中,该步骤花费的时间为SLC_read。
步骤4:将所有物理页写入TLC区域;
具体的,将读取到的SLC Cache中的所有物理页写入到TLC区域的物理块中,其中,该步骤花费的时间为TLC_write。
步骤5:将TLC区域的地址信息更新到L2P表中;
具体的,当TLC区域的数据发生变化,比如新增数据后,需要对(映射表)L2P表进行更新,其中,该步骤花费的时间为SLC_write。
从上述步骤中可以看出,在数据搬移的过程中,需要多次进行写SLC,而写SLC物理页会耗费大量的时间,导致固态硬盘的速度变慢。
请再参阅图3,图3是现有技术中的物理块绑定的示意图;
如图3所示,SLC物理块#A、#B、#C分别与同一个TLC物理块#P绑定,通过将SLC物理块#A、#B、#C中的数据搬移到与其绑定的TLC物理块#P中,实现SLC区域的数据转移,从而为SLC区域腾出空间,以提高数据随机写入的速度,例如:
假设每一处于TLC模式的物理块包含六个物理页,每个物理页为4KB,而每一处于SLC模式的物理块只有两个物理页,3个SLC物理块#A,#B,#C与1个TLC物理块#P绑定,绑定关系由固件维护,当主机数据进入SSD,主机数据以及映射信息流转步骤如下:
Step0:SSD固件分配并维护好SLC物理块#A,#B,#C与TLC物理块#P的绑定关系;
Step1:主机数据1写入SLC Cache中,闪存的物理位置为物理块#A的第一个SLC物理页;
Step2:如图2所示,根据绑定关系,后期搬移时,数据1会被搬到TLC物理块#P的第一个TLC物理页,通过直接将物理块#P的第一个物理页作为数据1的物理地址信息更新到L2P表中;
Step3:数据2-6以及映射信息按照step1和step2的描述写入闪存中;
Step4:SLC Cache满了之后将SLC物理块#A,#B,#C中的所有数据1-6根据SLC物理块与TLC物理块的绑定关系,搬移到绑定的TLC物理块#P中;
Step5:由于数据1-6的映射信息(物理地址)在映射表中本来写的就是TLC物理块#P,所以无需更新映射地址;
Step6:SSD固件解除SLC物理块#A,#B,#C和TLC物理块#P的绑定关系。
所以在主机持续随机写场景下,由于Step5中不需要更新映射表,直接去除了访问闪存的开销,从而能够提高写入速度,大大提升了性能。
当主机读取数据时,SSD固件读取映射信息,获得的物理地址肯定是TLC物理块#P,SSD固件根据SLC物理块#A,#B,#C和TLC物理块#P的绑定关系是否存在来判定数据是在SLCCache中还是TLC区域,如果绑定关系不在了则直接根据L2P表的映射信息从TLC区域取数据,否则根据SLC物理块与TLC物理块的绑定关系从SLC物理块#A或#B或#C中取数据。
但是,由于是随机写场景,所以SLC Cache中的数据非常有可能被主机复写,被复写后的数据是主机不再需要的,导致后续搬移到TLC区域时很可能#A,#B,#C中有效数据很少,理论来讲,固件只需要将#A,#B,#C中有效数据搬移到TLC,但是现有技术仍然会将#A,#B,#C中所有的数据做搬移,这会无谓浪费带宽。
基于此,本发明提出一种新的数据写入方法,以减少随机写场景下闪存带宽的浪费,提高DRAM-Less固态硬盘的随机写性能。
在本发明实施例中,该固态硬盘为不带动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)的固态硬盘,即DRAM-Less的固态硬盘,由于DRAM-Less的固态硬盘缺少DRAM,但是主流的主控中会有非常少量的静态随机存取存储器(Static Random AccessMemory,SRAM),提供给固件作为映射表的缓存,但其容量小,大约在200KB左右,并且,价格非常昂贵,尽管该缓存的灵活使用稍微提升固态硬盘的性能,但是其容量太小,不会有本质上的提升,因此,本发明实施例假设固件不使用SRAM作映射表缓存,再假设主机的逻辑区块地址(Logical Block Address,LBA)大小等于闪存物理页的大小,都为4KB。
请参阅图4,图4是本发明实施例提供的一种DRAM-Less固态硬盘的结构示意图;其中,该DRAM-Less固态硬盘由一系列闪存阵列组成,DRAM-Less固态硬盘内部包括多个闪存控制器(nfc),每个闪存控制器控制一个通道(channel),闪存控制器之间独立工作,每个通道有自己的通道总线,每个通道上挂载多个闪存芯片(chip)。
如图4所示,该DRAM-Less固态硬盘40,包括:主控制器41以及闪存芯片42,所述主控制器41连接所述闪存芯片42;
具体的,所述主控制器41,包括:一个或多个处理器411以及存储器412。其中,图4中以一个处理器411为例。
处理器411和存储器412可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器412作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器411通过运行存储在存储器412中的非易失性软件程序、指令以及模块,从而执行本发明实施例的数据写入方法的各种功能应用以及数据处理。
存储器412可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器412可选包括相对于处理器411远程设置的存储器,这些远程存储器可以通过网络连接至处理器411。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述模块存储在所述存储器412中,当被所述一个或者多个处理器411执行时,执行本发明实施例中的数据写入方法。
具体的,所述闪存芯片42,包括多个晶圆(die),每个晶圆由多个分组(Plane)组成,每个分组由多个块(block)组成,即本发明中所述的物理块(block),其中,块是闪存芯片42擦除的基本单位,每个块有多个页(page),即物理页,其中,物理页(page)是闪存芯片42读写的基本单位。
在本发明实施例中,所述非SLC闪存芯片包括:TLC闪存芯片、MLC闪存芯片以及QLC闪存芯片,分别对应TLC物理块、MLC物理块以及QLC物理块。本发明实施例以所述非SLC闪存芯片为TLC闪存芯片,非SLC物理块为TLC物理块为例进行阐述。
请参阅图5,图5是本发明实施例提供的一种数据动态搬移的示意图;
如图5所示,数据搬移包括Step1、Step2以及Step3。
具体的,数据动态搬移的步骤包括:
Step1:SLC Cache满了之后读出SLC Cache中的有效数据页,花费时间为50us;
Step2:将有效数据页写入到TLC区域,物理地址动态确定,花费时间为800us;
Step3:将TLC物理地址信息更新到L2P表中,花费时间为400us。
从以上步骤可以看出,在数据动态搬移的过程中需要花费一定的时间,因此,如何满足在数据动态搬移所花费的时间与数据静态拷贝所花费的时间之间的平衡,以最大程度地提高数据随机写入的速度,是本发明需要解决的问题,有鉴于此,本发明提出一种数据写入方法,以提高数据随机写入的速度。
具体的,请参阅图6,图6是本发明实施例提供的一种数据写入方法的流程示意图;
如图6所示,该数据写入方法,应用于上述的DRAM-Less固态硬盘,所述DRAM-Less固态硬盘不带动态随机存取存储器(Dynamic Random Access Memory,DRAM),所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,其中,在本发明实施例中,所述非SLC闪存芯片为TLC闪存芯片,所述非SLC物理块为TLC物理块,所述方法包括:
步骤S10:为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
具体的,所述DRAM-Less固态硬盘包括非SLC闪存,例如TLC闪存,即TLC闪存芯片,所述TLC闪存包括多个分组(Plane),每一分组包括多个TLC物理块(block),而所述TLC闪存在一般情况下,处于TLC模式,即TLC闪存中的物理块均为TLC物理块,由于TLC物理块读写速度较慢,因此,需要将TLC闪存设置为SLC模式,亦即,将TLC物理块设置为SLC物理块,将SLC物理块作为高速寄存器(Cache),由于SLC物理块拥有更高的读写性能,而主机的数据先写入由SLC物理块组成的Cache,因此能够实现读写性能的提升。
具体的,所述为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系,包括:
为每一分组(Plane)配置至少一个SLC物理块,其中,所述非SLC物理块为TLC物理块,所述SLC物理块的数量与所述分组中的TLC物理块的数量成比例,所述SLC物理块与所述TLC物理块的数量关系可以人为设置,例如:所述SLC物理块的数量是所述分组中的TLC物理块的数量的两倍、三倍、四倍等,因此,所述为所述分组配置至少一个SLC物理块,具体包括:根据预设的数量关系,所述预设的数量关系为所述分组中的SLC物理块与TLC物理块的数量关系,基于所述数量关系,为所述分组配置对应数量的SLC物理块,例如:所述分组包括2048个物理块(block),所述预设的数量关系为SLC物理块的数量是所述分组中的TLC物理块的数量的三倍,则为所述分组分配512个TLC物理块,相应的,所述分组中的SLC物理块的数量为1536个。
具体的,所述建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系,包括:
根据所述分组中的SLC物理块与非SLC物理块的数量关系,例如:根据所述分组中的SLC物理块与TLC物理块的数量关系,为每一SLC物理块匹配与其对应的TLC物理块,其中,每一所述TLC物理块对应固定数量的SLC物理块,例如:所述分组中的SLC物理块与TLC物理块的数量关系为3:1,则每一TLC物理块对应三个SLC物理块,在本发明实施例中,为了减少SLC物理块与TLC物理块之间的匹配时间,所述SLC物理块与TLC物理块通过相邻匹配的方式进行匹配,例如:假设SLC物理块按照顺序进行排列,TLC物理块也按照顺序进行排列,第一SLC物理块、第二SLC物理块、第三SLC物理块与第一TLC物理块进行绑定,第四SLC物理块、第五SLC物理块、第六SLC物理块与第二TLC物理块进行绑定,依次类推,进而对所述分组中的所有SLC物理块与TLC物理块进行绑定。
当SLC物理块内存占满后,获取所述SLC物理块的所有物理页中的数据在所述DRAM-Less固态硬盘的映射表中的物理地址,并将所述SLC物理块的所有物理页中的数据在所述固态硬盘的映射表中的物理地址固定为与所述SLC物理块绑定的TLC物理块的物理页的物理地址,通过将SLC物理块的物理页的数据的物理地址确定为与其绑定的TLC物理块的物理页的物理地址,从而避免在所有物理页的数据搬移时,需要更新映射表中的地址信息,能够提高数据的写入速度。其中,所述映射表保存在SLC区域(SLC Mode),所述SLC区域包括多个SLC物理块,所述SLC区域为所述分组配置的SLC物理块的区域。
步骤S20:通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,确定所述SLC物理块中的有效数据页的比例;
具体的,主机(Host端)向固态硬盘发送数据,通过所述SLC物理块接收数据,所述分组中包括SLC区域以及非SLC区域,所述SLC区域包括多个SLC物理块,所述非SLC区域包括多个非SLC物理块,获取所述分组中的SLC区域中处于开放状态的SLC物理块,将所述数据写入所述开放状态的SLC物理块,当所述SLC物理块的内存已满时,确定所述SLC物理块中的有效数据页的比例。
具体的,所述DRAM-Less固态硬盘包括:闪存转换层FTL、存储设备驱动层NFC以及闪存芯片,其中,所述闪存转换层FTL包括缓存管理模块、地址映射模块和垃圾回收模块GC,闪存转换层FTL通过存储设备驱动层NFC对NAND Flash的闪存芯片进行访问,垃圾回收模块GC获取各个SLC物理块block中的有效数据页所占的比例,从而确定所述SLC物理块中的有效数据页的比例。
具体的,请再参阅图7,图7是本发明实施例提供的一种动态搬移和静态拷贝的示意图;
如图7所示,假设SLC物理块中由C个SLC物理页组成,当SLC Cache满了之后,SLC物理块#A,#B,#C中有效物理页的比例均为P,此时计算使用静态拷贝策略和动态搬移策略分别消耗的总时间。
例如:当前主流的闪存,写TLC物理页的时间为800us,则采用静态拷贝策略,#A,#B,#C中的数据(3*C个物理页)都需要搬移到TLC物理块#P中,总时间等于3*C物理页从SLCCache读出的时间加上3*C物理页写入TLC物理块的时间,即:静态拷贝策略消耗的总时间=3*C*50us+3*C*800us;
而采用动态搬移策略,只需要将#A,#B,#C中的有效数据(3*C*P个物理页)搬移到TLC物理块#P然后将对应的映射信息(由于是随机写,需要更新的映射信息基本有3*C*P个)写到映射表(L2P表),而映射表位于SLC区域,即:动态搬移策略消耗的总时间=3*C*P*50us+3*C*P*800us+3*C*P*400us;
当两种策略所花时间相等时,得出的比例P即为有效数据的临界阈值,3*C*50us+3*C*800us=3*C*P*50us+3*C*P*800us+3*C*P*400us得出P等于68%,从结果可以看出只要有效数据页的比例小于68%就可以采用动态搬移策略,否则,则采用静态拷贝策略,从而达到更好的平衡,最大程度地提高数据随机写入的速度,提升性能。
步骤S30:判断所述有效数据页的比例是否小于预设比例阈值;若是,则进入步骤S40;若否,则进入步骤S50;
具体的,通过预设比例阈值,所述比例阈值为动态搬移策略和静态搬移策略所花费的时间相同时对应的有效数据页的比例,则所述比例阈值可以通过计算动态搬移策略和静态搬移策略所花费的时间相同时的有效数据页的比例得到,可以理解的是,在不同的闪存芯片中,该比例阈值可能不同,可以根据实际的闪存芯片所花费的时间进行计算确定,在此不做限定。
步骤S40:基于动态搬移策略,搬移所述SLC物理块中的有效数据到与其绑定的非SLC物理块;
请再参阅图8,图8是图6中的步骤S40的细化流程图;
如图8所示,该基于动态搬移策略,搬移所述SLC物理块中的有效数据到与其绑定的非SLC物理块,包括:
步骤S41:读取所述SLC物理块中全部的有效数据页;
具体的,主机(Host端)持续写入随机数据到SLC Cache中,并且,固件将SLC Cache中的SLC物理块对应的非SLC物理块的物理页地址作为主机写入的随机数据的映射信息写入到映射表(L2P表)中,由于主机写入的是随机数据,因此存在复写的可能,导致SLC Cache中存在无效的数据,此时需要通过固态硬盘的垃圾回收模块读取所述所述SLC物理块中全部的有效数据页。
步骤S42:将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块;
具体的,确定所述SLC物理块绑定的非SLC物理块,从所述绑定的非SLC物理块的第一个物理页开始,将所述有效数据页顺序写入到绑定的非SLC物理块。
步骤S43:将拷贝完成后的有效数据页的物理地址更新到所述DRAM-less固态硬盘的映射表中;
具体的,由于随机数据的物理地址原本写入的是绑定的非SLC物理块的物理地址,而有效数据页写入绑定的非SLC物理块是从第一个物理页开始,因此动态搬移后所述随机数据真正的物理位置与映射表中保存的不同,此时需要变更其物理地址,即将拷贝完成后的有效数据页的物理地址更新到所述DRAM-less固态硬盘的映射表中。
步骤S44:解除所述SLC物理块与所述非SLC物理块的绑定关系。
具体的,由于SLC物理块中的随机数据已经写入到绑定的非SLC物理块中,并且,该随机数据的物理地址也更新到所述DRAM-less固态硬盘的映射表中,此时所述SLC物理块与所述非SLC物理块的绑定关系已经没有意义,因此,需要解除所述SLC物理块与所述非SLC物理块的绑定关系。
请再参阅图9,图9是本发明实施例提供的一种SLC物理块与非SLC物理块的绑定关系的处理流程示意图;
如图9所示,所述方法还包括:
步骤S42:将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块;
步骤S421:判断所述SLC物理块中全部的有效数据页的数据是否完全拷贝到与其绑定的非SLC物理块中;若是,则进入步骤S422;若否,则进入步骤S423;
步骤S422:解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块;
具体的,若所述SLC物理块中全部的有效数据页中的数据完全搬移到其绑定的非SLC物理块中,例如:TLC物理块、MLC物理块或者QLC物理块,为了保存SLC区域的数据写入,将擦除所述SLC物理块,并且,当所述SLC物理块全部的有效数据页中的数据完全搬移到其绑定的非SLC物理块,此时该SLC物理块拷贝完成,SLC物理块与非SLC物理块的绑定关系可以解除,即可解除绑定关系。
步骤S423:保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
具体的,若所述SLC物理块的有效数据页中的数据未完全搬移到其绑定的非SLC物理块,此时,Host端仍然需要根据所述绑定关系,从所述SLC物理块中读取有效数据页的数据,因此此时不能解除所述SLC物理块与所述非SLC物理块的绑定关系,并且不能擦除所述SLC物理块,即需要保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
步骤S50:基于静态拷贝策略,拷贝所述SLC物理块中的全部数据到与其绑定的非SLC物理块。
其中,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块的所有物理页的数据写入到绑定的非SLC物理块的物理页。可以理解的是,当所述SLC物理块与所述非SLC物理块绑定之后,所述方法还包括:将所述SLC物理块的每一物理页与所述非SLC物理块中的物理页一一对应,从而将所述SLC物理块的所有物理页与所述非SLC物理块的物理页进行对应,建立所述SLC物理块的所有物理页与所述非SLC物理块的物理页的对应关系,并将所述对应关系保存在所述主控制器的SSD固件,即将所述对应关系保存在读取速度较快的SLC区域,有利于快速将所述SLC物理块的所有物理页拷贝到所述非SLC物理块中。
具体的,每一分组设置有一个内部缓存空间,请参阅图10,图10是本发明实施例提供的一种闪存的数据拷贝的示意图;
主流的TLC闪存具备芯片内部拷贝数据(CopyBack)的功能,闪存芯片能够将闪存阵列中的一个物理页的数据内部拷贝到另一个物理页中,数据不需要流经固态硬盘SSD的主控制器。
如图10所示,每一分组(Plane)设置有一个内部缓存空间(Cache Register),其中,所述内部缓存空间的大小为一个物理页;闪存的数据拷贝的原理包括如下步骤:
步骤1:SSD固件指定分组(Plane)中源物理页x,对闪存芯片发起拷贝_读微指令,闪存芯片内部将数据从源物理页x中读取到内部缓存空间(Cache Register)中;
步骤2:闪存芯片将拷贝_读微指令的完成状态返回SSD固件;
步骤3:SSD固件确定所述分组中的目的物理页y,对闪存芯片发起拷贝_写微指令,闪存芯片内部将数据从内部缓存空间(Cache Register)中写入到目的物理页y;
步骤4:闪存芯片将拷贝_写微指令的完成状态返回SSD固件,完成数据拷贝操作。
具体的,结合上述闪存的数据拷贝原理,请再参阅图11,图11是图6中的步骤S50的细化流程示意图;
具体的,所述静态拷贝策略,包括:
根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块。
如图11所示,所述根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块,包括:
步骤S51:固件指定所述SLC物理块的物理页为源物理页,并对闪存发起拷贝读指令;
具体的,将所述SLC物理块中的每一物理页确定为源物理页,确定源物理页之后,SSD固件向闪存芯片发送拷贝读指令,即所述主控制器向闪存芯片发送拷贝读微指令;
步骤S52:将所述源物理页的数据从源物理页读取到所述内部缓存空间;
具体的,闪存芯片内部将所述源物理页的数据读取到所述内部缓存空间(CacheRegister),并且所述闪存芯片将拷贝读指令的完成状态返回SSD固件,即所述闪存芯片将拷贝读指令的完成状态返回主控制器。
步骤S53:固件指定所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并对闪存发起拷贝写指令;
具体的,确定与所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并向所述闪存芯片发送拷贝写指令,例如:确定与所述SLC物理块绑定的TLC物理块中的一个物理页为目的物理页,并向所述闪存芯片发送拷贝写指令。在本发明实施例中,由于已经建立所述分组中的SLC物理块的物理页与其绑定的TLC物理块的物理页的对应关系,因此为了提高写入速度,将所述目的物理页确定为与所述分组中的SLC物理块的物理页具有对应关系的TLC物理块的物理页。
步骤S54:将所述内部缓存空间中的源物理页的数据拷贝到目的物理页。
具体的,若所述拷贝读指令的完成状态为成功,则所述闪存芯片根据接收到的拷贝写指令,将所述内部缓存空间中的源物理页的数据写入到所述TLC物理块中的目的物理页,所述闪存芯片向所述SSD固件返回所述拷贝写指令的完成状态,即所述闪存芯片向所述主控制器返回所述拷贝写指令的完成状态,若所述拷贝写指令的完成状态为成功,则所述SLC物理块的物理页成功写入到对应的TLC物理块的物理页。
在本发明实施例中,所述内部缓存空间的内存大小为一个物理页,所述将所述内部缓存空间中的源物理页的数据写入到目的物理页之后,所述方法还包括:擦除所述内部缓存空间。通过逐一将所述源物理页的数据写入到内部缓存空间,再从内部缓存空间将所述源物理页的数据写入到目的物理页,从而将所述SLC物理块的所有物理页拷贝到所述非SLC物理块,例如:TLC物理块。
可以理解的是,当所述SLC物理块的所有物理页成功写入到对应的非SLC物理块的物理页之后,一般情况下,所述内部缓存空间(Cache Register)中的数据不需要进行读写,因此,为了保证所述内部缓存空间的利用效率,需要对所述内部缓存空间中的数据进行擦除,以使所述内部缓存空间能够写入新的数据。
请再参阅图12,图12是本发明实施例提供的一种SLC物理块与TLC物理块的数据拷贝的示意图;
如图12所示,假设TLC物理块包含六个物理页,SLC物理块只有两个物理页,每个物理页为4KB,其中,3个SLC物理块#A,#B,#C分别与1个TLC物理块#P绑定,所述SLC物理块和所述TLC物理块的绑定关系由主控制器的SSD固件维护,其中,数据1和数据2保存在SLC物理块#A,数据3和数据4保存在SLC物理块#B,数据5和数据6保存在SLC物理块#C,当主机数据进入固态硬盘SSD,主机数据以及映射信息流转步骤如下:
步骤(1):SSD固件分配并维护好某分组(Plane)上SLC物理块#A,#B,#C与TLC物理块#P的绑定关系;
步骤(2):主机的数据1写入SLC Cache中,闪存的物理位置为物理块#A的第一个SLC物理页;
步骤(3):根据绑定关系,后期搬移时数据1会被搬到TLC物理块#P的第一个TLC物理页,所以我们直接将物理块#P的第一个物理页作为数据1的物理地址信息更新到L2P表中;
步骤(4):数据2至数据6以及映射信息按照步骤(2)和步骤(3)的描述写入到闪存中;
步骤(5):SLC Cache内存占满之后根据SLC物理块和TLC物理块的绑定关系,SSD固件先启动拷贝读指令,使闪存芯片将数据1从物理块#A的第一个SLC物理页搬移到分组(Plane)中的内部缓存空间(Cache Register)中;
步骤(6):待闪存芯片完成拷贝读操作后,固件启动拷贝写指令,使闪存芯片将内部缓存空间(Cache Register)中的数据写到TLC物理块#P的第一个物理页上,由于数据不需要流经主控的RAM,因此数据拷贝的效率很高;
步骤(7):由于在步骤(3)中数据1的映射信息(物理地址)写的就是TLC物理块#P的第一个物理页,因此无需更新映射表中的映射地址,从而节约更新时间;
步骤(8):按照步骤(5)至步骤(7)的方式,将数据2至数据6拷贝到TLC物理块#P,
步骤(9):SSD固件解除SLC物理块#A,#B,#C和TLC物理块#P的绑定关系。
可以理解的是,在主机持续随机写场景下,由于步骤(6)采用闪存的数据拷贝功能以及步骤(7)中不需要更新映射表,直接去除了访问闪存的开销,大大提升了读写性能。
当主机读取数据时,SSD固件读取映射表中的映射信息,获得的物理地址肯定是TLC物理块#P,SSD固件根据SLC物理块#A,#B,#C和TLC物理块#P的绑定关系是否存在来判定数据是在SLC区域(SLC Mode)中还是TLC区域(TLC Mode),如果绑定关系不存在,则直接根据映射表(L2P表)的映射信息从TLC区域获取数据,否则根据绑定关系从SLC物理块#A或#B或#C中获取数据,能够保证获取到相应的数据。
可以理解的是,本发明中的非SLC物理块还可以为MLC物理块和/或QLC物理块,其原理与TLC物理块相似,在此不再赘述。
请参阅图13,图13是本发明实施例提供的另一种SLC物理块与非SLC物理块的绑定关系的处理流程示意图;
如图13所示,该SLC物理块与非SLC物理块的绑定关系的处理流程,包括:
步骤S131:通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块;
具体的,该非SLC物理块包括TLC物理块、MLC物理块以及QLC物理块中的一个或多个。
步骤S132:判断所述SLC物理块中所有的物理页的数据是否完全写入到绑定的非SLC物理块中;
具体的,判断所述SLC物理块中所有的物理页的数据是否完全写入到绑定的非SLC物理块中,即所述SLC物理块中的所有物理页的数据是否完全搬移到对应的非SLC物理块中,若是,则进入步骤S41:解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块,若否,则进入步骤S42:保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块;
步骤S133:解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块;
具体的,若所述SLC物理块的物理页中的数据完全搬移到其绑定的非SLC物理块,例如:TLC物理块、MLC物理块或者QLC物理块,为了保存SLC区域的数据写入,将擦除所述SLC物理块,并且,当所述SLC物理块的所有物理页中的数据完全搬移到其绑定的非SLC物理块,此时SLC物理块拷贝完成,SLC物理块与非SLC物理块的绑定关系可以解除,即可解除绑定关系。
步骤S134:保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
具体的,若所述SLC物理块的所有物理页的数据未完全搬移到其绑定的非SLC物理块,此时,Host端仍然需要根据所述绑定关系,从所述SLC物理块中读取物理页的数据,因此此时不能解除所述SLC物理块与所述非SLC物理块的绑定关系,并且不能擦除所述SLC物理块,即需要保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
在本发明实施例中,在解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块之后,所述方法还包括:
更新所述擦除后的SLC物理块与所述分组中的非SLC物理块的绑定关系。
可以理解的是,当所述SLC物理块解除与非SLC物理块的绑定关系,并且所述SLC物理块被擦除后,所述SLC物理块将成为一个空闲物理块,可以用于写入数据,因此,需要对所述SLC物理块进行重新绑定,即更新所述擦除后的SLC物理块与所述分组中的非SLC物理块的绑定关系,例如:将所述擦除后的SLC物理块绑定所述分组中的空闲非SLC物理块。其中,更新所述擦除后的SLC物理块与所述分组中的非SLC物理块的绑定关系之后,所述方法还包括:根据新建立的绑定关系,建立所述分组中的SLC物理块的物理页与其绑定的非SLC物理块的物理页的对应关系。
请再参阅图14,图14是本发明实施例提供的一种读取数据的流程示意图;
如图14所示,该读取数据的流程,包括:
开始;
步骤S141:主机读数据;
具体的,主机(Host端)读取所述固态硬盘中的数据。
步骤S142:SSD固件读取映射表,获取非SLC物理块;
步骤S143:判断非SLC物理块与SLC物理块的绑定关系是否存在,若是,则进入步骤S1431:根据绑定关系,从SLC物理块读取数据;若否,则进入步骤S1432:从非SLC物理块读取数据;
步骤S1431:根据绑定关系,从SLC物理块读取数据;
具体的,根据所述SLC物理块和所述非SLC物理块的绑定关系,例如:所述非SLC物理块为TLC物理块,根据所述SLC物理块和所述TLC物理块的绑定关系,其中,所述绑定关系由主控制器的SSD固件维持,即所述SLC物理块和所述TLC物理块的绑定关系保存在所述主控制器的SSD固件中,所述闪存芯片的主控制器根据所述SLC物理块和所述TLC物理块的绑定关系,从SLC物理块中读取数据,由于SLC物理块的读取速度好于TLC物理块的读取速度,因此当数据存在于SLC物理块时,直接从SLC物理块中读取数据能够提高读取速度。
步骤S1432:从非SLC物理块读取数据;
具体的,若所述SLC物理块中的所有物理页的数据完全搬移到所述SLC物理块对应的非SLC物理块中,例如:所述非SLC物理块为TLC物理块,若所述SLC物理块中的所有物理页的数据完全搬移到所述SLC物理块对应的TLC物理块中,则所述SLC物理块和所述TLC物理块的绑定关系被解除,此时所述主控制器根据所述映射表,从所述TLC物理块读取数据。
在本发明实施例中,通过提供一种数据写入方法,通过确定SLC物理块中的有效数据页的比例,根据所述比例与预设比例阈值的大小关系,确定不同的数据写入策略,从而减少随机写场景下闪存带宽的浪费,提高DRAM-Less固态硬盘的随机写性能。
请参阅图15,图15是本发明实施例提供的一种数据写入装置的结构示意图;
该数据写入装置150可以应用于DRAM-less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,如图15所示,该数据写入装置150,包括:
物理块绑定单元151,用于为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
有效数据页单元152,用于通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,确定所述SLC物理块中的有效数据页的比例;
动态搬移单元153,用于若所述有效数据页的比例小于预设比例阈值,则基于动态搬移策略,搬移所述SLC物理块中的有效数据到与其绑定的非SLC物理块;
静态拷贝单元154,用于若所述有效数据页的比例不小于预设比例阈值,则基于静态拷贝策略,拷贝所述SLC物理块中的全部数据到与其绑定的非SLC物理块。
由于装置实施例和方法实施例是基于同一构思,在内容不互相冲突的前提下,装置实施例的内容可以引用方法实施例的,在此不赘述。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图4中的一个处理器411,可使得上述一个或多个处理器可执行上述任意方法实施例中的数据写入方法,例如,执行上述任意方法实施例中的数据写入方法,例如,执行以上描述的图6所示的各个步骤;也可实现图15所述的各个单元的功能。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

Claims (9)

1.一种数据写入方法,应用于DRAM-Less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,其特征在于,所述方法包括:
为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,确定所述SLC物理块中的有效数据页的比例;
若所述有效数据页的比例小于预设比例阈值,则基于动态搬移策略,搬移所述SLC物理块中的有效数据到与其绑定的非SLC物理块;
若所述有效数据页的比例不小于预设比例阈值,则基于静态拷贝策略,拷贝所述SLC物理块中的全部数据到与其绑定的非SLC物理块;
所述动态搬移策略包括:
读取所述SLC物理块中全部的有效数据页;
将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块;
将拷贝完成后的有效数据页的物理地址更新到所述DRAM-Less固态硬盘的映射表中;
解除所述SLC物理块与所述非SLC物理块的绑定关系。
2.根据权利要求1所述的方法,其特征在于,所述将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块,包括:
从所述绑定的非SLC物理块的第一个物理页开始,将所述有效数据页顺序写入到绑定的非SLC物理块。
3.根据权利要求1所述的方法,其特征在于,在将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块之后,所述方法还包括:
判断所述SLC物理块中全部的有效数据页的数据是否完全拷贝到与其绑定的非SLC物理块中;
若是,则解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块;
若否,则保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
4.根据权利要求1所述的方法,其特征在于,所述静态拷贝策略,包括:根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块,其中,
每一分组设置有一个内部缓存空间,所述根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块,包括:
固件指定所述SLC物理块的物理页为源物理页,并对闪存发起拷贝读指令;
将所述源物理页的数据从源物理页读取到所述内部缓存空间;
固件指定所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并对闪存发起拷贝写指令;
将所述内部缓存空间中的源物理页的数据拷贝到所述目的物理页。
5.根据权利要求4所述的方法,其特征在于,在将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块之后,所述方法还包括:
判断所述SLC物理块中所有的物理页的数据是否完全拷贝到对应的非SLC物理块中;
若是,则解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块,更新擦除后的SLC物理块与所述分组中的非SLC物理块的绑定关系;
若否,则保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
6.根据权利要求1所述的方法,其特征在于,所述建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系,包括:
获取所述SLC物理块中所有的物理页中的数据在所述DRAM-Less固态硬盘的映射表中的物理地址,并将其固定为与所述SLC物理块绑定的非SLC物理块的物理页的物理地址。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收Host端发送的读取指令;
判断所述绑定关系是否存在;
若存在,则根据所述绑定关系,在与所述非SLC物理块绑定的SLC物理块中查找所述读取指令对应的数据;
若不存在,则根据所述DRAM-Less固态硬盘的映射表,在所述非SLC物理块中查找所述读取指令对应的数据。
8.一种数据写入装置,应用于DRAM-Less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,其特征在于,所述装置包括:
物理块绑定单元,用于为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
有效数据页单元,用于通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,确定所述SLC物理块中的有效数据页的比例;
动态搬移单元,用于若所述有效数据页的比例小于预设比例阈值,则基于动态搬移策略,搬移所述SLC物理块中的有效数据到与其绑定的非SLC物理块;
静态拷贝单元,用于若所述有效数据页的比例不小于预设比例阈值,则基于静态拷贝策略,拷贝所述SLC物理块中的全部数据到与其绑定的非SLC物理块;
所述动态搬移策略包括:
读取所述SLC物理块中全部的有效数据页;
将所述SLC物理块中全部的有效数据页拷贝到绑定的非SLC物理块;
将拷贝完成后的有效数据页的物理地址更新到所述DRAM-Less固态硬盘的映射表中;
解除所述SLC物理块与所述非SLC物理块的绑定关系。
9.一种DRAM-Less固态硬盘,其特征在于,包括:
闪存芯片,所述闪存芯片包括多个晶圆,每一所述晶圆包括多个分组,每一所述分组包括多个物理块,每一所述物理块包括多个物理页;
主控制器,所述主控制器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的数据写入方法。
CN201911286089.1A 2019-12-13 2019-12-13 一种数据写入方法、装置及DRAM-Less固态硬盘 Active CN111124944B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911286089.1A CN111124944B (zh) 2019-12-13 2019-12-13 一种数据写入方法、装置及DRAM-Less固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911286089.1A CN111124944B (zh) 2019-12-13 2019-12-13 一种数据写入方法、装置及DRAM-Less固态硬盘

Publications (2)

Publication Number Publication Date
CN111124944A CN111124944A (zh) 2020-05-08
CN111124944B true CN111124944B (zh) 2023-08-18

Family

ID=70498897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911286089.1A Active CN111124944B (zh) 2019-12-13 2019-12-13 一种数据写入方法、装置及DRAM-Less固态硬盘

Country Status (1)

Country Link
CN (1) CN111124944B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111580757B (zh) * 2020-05-14 2022-10-14 江苏芯盛智能科技有限公司 数据写入方法、系统和固态硬盘
CN114564147B (zh) * 2022-01-06 2024-07-12 浙江华忆芯科技有限公司 一种数据流的自适应调整方法、系统、硬盘和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984116A (zh) * 2018-06-14 2018-12-11 浙江大华技术股份有限公司 一种固态硬盘垃圾回收带宽的流控方法及装置
CN110531928A (zh) * 2019-08-09 2019-12-03 深圳大普微电子科技有限公司 DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘
CN110531927A (zh) * 2019-08-06 2019-12-03 深圳大普微电子科技有限公司 一种基于块分级的垃圾回收方法及非易失性的存储设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI385527B (zh) * 2009-02-10 2013-02-11 Phison Electronics Corp Mlc nand型快閃記憶體儲存系統及其控制器與存取方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984116A (zh) * 2018-06-14 2018-12-11 浙江大华技术股份有限公司 一种固态硬盘垃圾回收带宽的流控方法及装置
CN110531927A (zh) * 2019-08-06 2019-12-03 深圳大普微电子科技有限公司 一种基于块分级的垃圾回收方法及非易失性的存储设备
CN110531928A (zh) * 2019-08-09 2019-12-03 深圳大普微电子科技有限公司 DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
姚英彪 ; 王发宽 ; .具有磨损均衡意识的混合固态硬盘FTL算法.计算机学报.2017,(第10期),全文. *

Also Published As

Publication number Publication date
CN111124944A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
US11237769B2 (en) Memory system and method of controlling nonvolatile memory
TWI267862B (en) Flash controller cache architecture
US7487303B2 (en) Flash memory device and associated data merge method
US8595414B2 (en) Selectively combining commands for a system having non-volatile memory
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
JP4362549B1 (ja) 段階的ガーベッジコレクション
JP2018049522A (ja) メモリシステム及び制御方法
US20080120488A1 (en) Apparatus and method of managing nonvolatile memory
CN107818052B (zh) 内存访问方法及装置
JP7353934B2 (ja) メモリシステムおよび制御方法
TW200527433A (en) Memory card and semiconductor device
CN110531928B (zh) DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘
US12086467B2 (en) Read performance of memory devices
US20120179859A1 (en) Nonvolatile memory apparatus performing ftl function and method for controlling the same
CN102279712A (zh) 一种适用于互联网存储系统的存储控制方法、系统和装置
CN111124944B (zh) 一种数据写入方法、装置及DRAM-Less固态硬盘
CN110309077B (zh) 主机与设备协同工作的闪存转换层构建方法及装置
US20170255636A1 (en) Method and system for storing metadata of log-structured file system
US11755217B2 (en) Memory system and method of controlling nonvolatile memory
US20050169058A1 (en) Data management apparatus and method used for flash memory
CN113986773A (zh) 基于固态硬盘的写放大优化方法、装置及计算机设备
TWI724550B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
KR20130010731A (ko) 메모리 장치
US12130735B2 (en) Data writing method and apparatus for flash memory-based system
US20240311291A1 (en) Memory system and method of controlling the memory system

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