CN110531928B - DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘 - Google Patents
DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘 Download PDFInfo
- Publication number
- CN110531928B CN110531928B CN201910734700.6A CN201910734700A CN110531928B CN 110531928 B CN110531928 B CN 110531928B CN 201910734700 A CN201910734700 A CN 201910734700A CN 110531928 B CN110531928 B CN 110531928B
- Authority
- CN
- China
- Prior art keywords
- slc
- physical
- physical block
- data
- 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
Links
- 239000007787 solid Substances 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013507 mapping Methods 0.000 claims description 59
- 235000012431 wafers Nutrition 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例涉及固态硬盘应用领域,公开了一种DRAM‑Less固态硬盘的数据随机写入方法、装置及DRAM‑Less固态硬盘。其中所述的DRAM‑Less固态硬盘的数据随机写入方法,包括:为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;通过所述SLC物理块接收Host端发送的数据,当所述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的主控被广泛采用。
然而,由于动态随机存取存储器(Dynamic Random Access Memory,DRAM)的缺失,闪存转换层(Flash translation layer,FTL)中的映射表只能存储在FLASH中,导致映射表在每次进行更新时均需要访问FLASH,从而造成随机写性能较低,写入速度慢的问题。
基于上述问题,现有技术亟待改进。
发明内容
本发明实施例旨在提供一种DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘,其解决了目前随机写性能较低的技术问题,能够在随机写场景下有效减少对闪存的读写操作,提高DRAM-Less固态硬盘的随机写性能和写入速度。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种DRAM-Less固态硬盘的数据随机写入方法,应用于DRAM-Less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,所述方法包括:
为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块。
在一些实施例中,所述建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系,包括:
获取所述SLC物理块中所有的物理页中的数据在所述DRAM-Less固态硬盘的映射表中的物理地址,并将其固定为与所述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物理块的绑定关系。
在一些实施例中,所述方法还包括:
接收Host端发送的读取指令;
根据所述读取指令,获取所述分组中的非SLC物理块;
判断所述绑定关系是否存在;
若存在,则根据所述绑定关系,在与所述非SLC物理块绑定的SLC物理块中查找所述读取指令对应的数据;
若不存在,则根据所述DRAM-Less固态硬盘的映射表,在所述非SLC物理块中查找所述读取指令对应的数据。
第二方面,本发明实施例提供一种DRAM-Less固态硬盘的数据写入装置,应用于DRAM-less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,所述装置包括:
物理块绑定单元,用于为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
数据拷贝单元,用于通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块。
在一些实施例中,所述物理块绑定单元,具体用于:
获取所述SLC物理块中所有的物理页中的数据在所述DRAM-Less固态硬盘的映射表中的物理地址,并将其固定为与所述SLC物理块绑定的非SLC物理块的物理页的物理地址。
在一些实施例中,所述每一分组设置有一个内部缓存空间,所述数据拷贝单元具体用于:
固件指定所述SLC物理块的物理页为源物理页,并对闪存发起拷贝读指令;
将所述源物理页的数据从源物理页读取到所述内部缓存空间;
固件指定所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并对闪存发起拷贝写指令;
将所述内部缓存空间中的源物理页的数据拷贝到所述目的物理页。
在一些实施例中,所述内部缓存空间的内存大小为一个物理页,所述非SLC物理块包括TLC物理块、MLC物理块以及QLC物理块中的一个或多个。
在一些实施例中,所述装置还包括:
数据写入判断单元,用于判断所述SLC物理块中所有的物理页的数据是否完全写入到对应的非SLC物理块中;
绑定关系解除单元,用于解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块;
绑定关系保留单元,用于保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
在一些实施例中,所述装置还包括:
绑定关系更新单元,用于在解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块之后,更新所述擦除后的SLC物理块与所述分组中的非SLC物理块的绑定关系。
在一些实施例中,所述装置还包括:
数据查找单元,用于接收Host端发送的读取指令;
根据所述读取指令,获取所述分组中的非SLC物理块;
判断所述绑定关系是否存在;
若存在,则根据所述绑定关系,在与所述非SLC物理块绑定的SLC物理块中查找所述读取指令对应的数据;
若不存在,则根据所述DRAM-Less固态硬盘的映射表,在所述非SLC物理块中查找所述读取指令对应的数据。
第三方面,本发明实施例提供一种DRAM-Less固态硬盘,所述DRAM-Less固态硬盘包括:
闪存芯片,所述闪存芯片包括多个晶圆,每一所述晶圆包括多个分组,每一所述分组包括多个物理块,每一所述物理块包括多个物理页;
主控制器,所述主控制器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的DRAM-Less固态硬盘的数据随机写入方法。
第四方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使DRAM-Less固态硬盘能够执行如上所述的DRAM-Less固态硬盘的数据随机写入方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种DRAM-Less固态硬盘的数据随机写入方法,应用于DRAM-Less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,所述方法包括:为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块。通过将SLC物理块和非SLC物理块进行绑定,将SLC物理块的物理页的数据写入到绑定的非SLC物理块的物理页,从而在随机写场景下有效减少对闪存的读写操作,提高DRAM-Less固态硬盘的随机写性能和写入速度。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是现有技术中的数据搬移的示意图;
图2是图1中的数据搬移对应的映射表更新的示意图;
图3是本发明实施例提供的一种DRAM-Less固态硬盘的结构示意图;
图4是本发明实施例提供的一种DRAM-Less固态硬盘的数据随机写入方法的流程示意图;
图5是本发明实施例提供的一种闪存的数据拷贝的示意图;
图6是图4中的步骤S20的细化流程示意图;
图7是本发明实施例提供的一种SLC物理块与TLC物理块的数据拷贝的示意图;
图8是本发明实施例提供的一种SLC物理块与MLC物理块的数据拷贝的示意图;
图9是本发明实施例提供的一种SLC物理块与QLC物理块的数据拷贝的示意图;
图10是本发明实施例提供的一种SLC物理块与非SLC物理块的绑定关系的处理流程示意图;
图11是本发明实施例提供的一种读取数据的流程示意图;
图12是本发明实施例提供的一种DRAM-Less固态硬盘的数据写入装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。目前,配备TLC闪存(Triple Level Cell)的固态硬盘(SolidState Drives,SSD)一般均会采用SLC Cache方案来提升SSD的读写性能,其中,SLC Cache方案指的是TLC闪存中的TLC物理块被设置成SLC模式作为高速缓存存储器(Cache),由于SLC物理块拥有更高的读写性能,因此主机的数据先写入作为Cache的SLC物理块,所以写性能表现很好,但是SLC物理块的可用容量却是TLC物理块的三分之一,所以SLC Cache不会很大,在Cache内存占满了之后固件内部任务需要将SLC Cache中数据搬移到容量更大的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内存占满之后固件需要启动数据搬移,将SLC Cache区域的数据搬到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物理页会耗费大量的时间,导致固态硬盘的速度变慢。
基于此,本发明提出一种DRAM-Less固态硬盘的数据随机写入方法,通过减少写SLC物理页的次数,实现提高DRAM-Less固态硬盘的随机写性能。
在本发明实施例中,该固态硬盘为不带动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)的固态硬盘,即DRAM-Less的固态硬盘,由于DRAM-Less的固态硬盘缺少DRAM,但是主流的主控中会有非常少量的静态随机存取存储器(Static Random AccessMemory,SRAM),提供给固件作为映射表的缓存,但其容量小,大约在200KB左右,并且,价格非常昂贵,尽管该缓存的灵活使用稍微提升固态硬盘的性能,但是其容量太小,不会有本质上的提升,因此,本发明实施例假设固件不使用SRAM作映射表缓存,再假设主机的逻辑区块地址(Logical Block Address,LBA)大小等于闪存物理页的大小,都为4KB。
请参阅图3,图3是本发明实施例提供的一种DRAM-Less固态硬盘的结构示意图;其中,该DRAM-Less固态硬盘由一系列闪存阵列组成,DRAM-Less固态硬盘内部包括多个闪存控制器(nfc),每个闪存控制器控制一个通道(channel),闪存控制器之间独立工作,每个通道有自己的通道总线,每个通道上挂载多个闪存芯片(chip)。
如图3所示,该DRAM-Less固态硬盘30,包括:主控制器31以及闪存芯片32,所述主控制器31连接所述闪存芯片32;
具体的,所述主控制器31,包括:一个或多个处理器311以及存储器312。其中,图3中以一个处理器311为例。
处理器311和存储器312可以通过总线或者其他方式连接,图3中以通过总线连接为例。
存储器312作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器311通过运行存储在存储器312中的非易失性软件程序、指令以及模块,从而执行本发明实施例的DRAM-Less固态硬盘的数据随机写入方法的各种功能应用以及数据处理。
存储器312可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器312可选包括相对于处理器311远程设置的存储器,这些远程存储器可以通过网络连接至处理器311。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述模块存储在所述存储器312中,当被所述一个或者多个处理器311执行时,执行本发明实施例中的DRAM-Less固态硬盘的数据随机写入方法。
具体的,所述闪存芯片32,包括多个晶圆(die),每个晶圆由多个分组(Plane)组成,每个分组由多个块(block)组成,即本发明中所述的物理块(block),其中,块是闪存芯片32擦除的基本单位,每个块有多个页(page),即物理页,其中,物理页(page)是闪存芯片32读写的基本单位。
在本发明实施例中,所述非SLC闪存芯片包括:TLC闪存芯片、MLC闪存芯片以及QLC闪存芯片,分别对应TLC物理块、MLC物理块以及QLC物理块。本发明实施例以所述非SLC闪存芯片为TLC闪存芯片,非SLC物理块为TLC物理块为例进行阐述。
请参阅图4,图4是本发明实施例提供的一种DRAM-Less固态硬盘的数据随机写入方法的流程示意图;
如图4所示,该DRAM-Less固态硬盘的数据随机写入方法,应用于上述的DRAM-Less固态硬盘,所述DRAM-Less固态硬盘不带动态随机存取存储器(Dynamic Random AccessMemory,DRAM),所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,其中,在本发明实施例中,所述非SLC闪存芯片为TLC闪存芯片,所述非SLC物理块为TLC物理块,所述方法包括:
步骤S10:为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;具体的,所述DRAM-Less固态硬盘包括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区域包括多个SLC物理块,所述SLC区域为所述分组配置的SLC物理块的区域。
步骤S20:通过所述SLC物理块接收Host端发送的数据,当所述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物理块的物理页的对应关系,并将所述对应关系保存在所述主控制器的SSD固件,即将所述对应关系保存在读取速度较快的SLC区域,有利于快速将所述SLC物理块的所有物理页拷贝到所述非SLC物理块中。
具体的,每一分组设置有一个内部缓存空间,请参阅图5,图5是本发明实施例提供的一种闪存的数据拷贝的示意图;
主流的TLC闪存具备芯片内部拷贝数据(CopyBack)的功能,闪存芯片能够将闪存阵列中的一个物理页的数据内部拷贝到另一个物理页中,数据不需要流经固态硬盘SSD的主控制器。
如图5所示,每一分组(Plane)设置有一个内部缓存空间(Cache Register),其中,所述内部缓存空间的大小为一个物理页;闪存的数据拷贝的原理包括如下步骤:
步骤1:SSD固件指定分组(Plane)中源物理页x,对闪存芯片发起拷贝_读微指令,闪存芯片内部将数据从源物理页x中读取到内部缓存空间(Cache Register)中;
步骤2:闪存芯片将拷贝_读微指令的完成状态返回SSD固件;
步骤3:SSD固件确定所述分组中的目的物理页y,对闪存芯片发起拷贝_写微指令,闪存芯片内部将数据从内部缓存空间(Cache Register)中写入到目的物理页y;
步骤4:闪存芯片将拷贝_写微指令的完成状态返回SSD固件,完成数据拷贝操作。
具体的,结合上述闪存的数据拷贝原理,请再参阅图6,图6是图4中的步骤S20的细化流程示意图;
如图6所示,所述根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块,包括:
步骤S21:固件指定所述SLC物理块的物理页为源物理页,并对闪存发起拷贝读指令;
具体的,将所述SLC物理块中的每一物理页确定为源物理页,确定源物理页之后,SSD固件向闪存芯片发送拷贝读指令,即所述主控制器向闪存芯片发送拷贝读微指令;
步骤S22:将所述源物理页的数据从源物理页读取到所述内部缓存空间;
具体的,闪存芯片内部将所述源物理页的数据读取到所述内部缓存空间(CacheRegister),并且所述闪存芯片将拷贝读指令的完成状态返回SSD固件,即所述闪存芯片将拷贝读指令的完成状态返回主控制器。
步骤S23:固件指定所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并对闪存发起拷贝写指令;
具体的,确定与所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并向所述闪存芯片发送拷贝写指令,例如:确定与所述SLC物理块绑定的TLC物理块中的一个物理页为目的物理页,并向所述闪存芯片发送拷贝写指令。在本发明实施例中,由于已经建立所述分组中的SLC物理块的物理页与其绑定的TLC物理块的物理页的对应关系,因此为了提高写入速度,将所述目的物理页确定为与所述分组中的SLC物理块的物理页具有对应关系的TLC物理块的物理页。
步骤S24:将所述内部缓存空间中的源物理页的数据拷贝到目的物理页。
具体的,若所述拷贝读指令的完成状态为成功,则所述闪存芯片根据接收到的拷贝写指令,将所述内部缓存空间中的源物理页的数据写入到所述TLC物理块中的目的物理页,所述闪存芯片向所述SSD固件返回所述拷贝写指令的完成状态,即所述闪存芯片向所述主控制器返回所述拷贝写指令的完成状态,若所述拷贝写指令的完成状态为成功,则所述SLC物理块的物理页成功写入到对应的TLC物理块的物理页。
在本发明实施例中,所述内部缓存空间的内存大小为一个物理页,所述将所述内部缓存空间中的源物理页的数据写入到目的物理页之后,所述方法还包括:擦除所述内部缓存空间。通过逐一将所述源物理页的数据写入到内部缓存空间,再从内部缓存空间将所述源物理页的数据写入到目的物理页,从而将所述SLC物理块的所有物理页拷贝到所述非SLC物理块,例如:TLC物理块。
可以理解的是,当所述SLC物理块的所有物理页成功写入到对应的非SLC物理块的物理页之后,一般情况下,所述内部缓存空间(Cache Register)中的数据不需要进行读写,因此,为了保证所述内部缓存空间的利用效率,需要对所述内部缓存空间中的数据进行擦除,以使所述内部缓存空间能够写入新的数据。
请再参阅图7,图7是本发明实施例提供的一种SLC物理块与TLC物理块的数据拷贝的示意图;
如图7所示,假设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中获取数据,能够保证获取到相应的数据。
请再参阅图8,图8是本发明实施例提供的一种SLC物理块与MLC物理块的数据拷贝的示意图;
如图8所示,假设MLC物理块包含四个物理页,SLC物理块只有两个物理页,每个物理页为4KB,其中,2个SLC物理块#A,#B分别与1个MLC物理块#P绑定,所述SLC物理块和所述MLC物理块的绑定关系由主控制器的SSD固件维护,其中,数据1和数据2保存在SLC物理块#A,数据3和数据4保存在SLC物理块#B,当主机数据进入固态硬盘SSD,主机数据以及映射信息流转步骤如下:
步骤(1):SSD固件分配并维护好某分组(Plane)上SLC物理块#A,#B与MLC物理块#P的绑定关系;
步骤(2):主机的数据1写入SLC Cache中,闪存的物理位置为物理块#A的第一个SLC物理页;
步骤(3):根据绑定关系,后期搬移时数据1会被搬到MLC物理块#P的第一个MLC物理页,所以我们直接将物理块#P的第一个物理页作为数据1的物理地址信息更新到L2P表中;
步骤(4):数据2至数据4以及映射信息按照步骤(2)和步骤(3)的描述写入到闪存中;
步骤(5):SLC Cache内存占满之后根据SLC物理块和MLC物理块的绑定关系,SSD固件先启动拷贝读指令,使闪存芯片将数据1从物理块#A的第一个SLC物理页搬移到分组(Plane)中的内部缓存空间(Cache Register)中;
步骤(6):待闪存芯片完成拷贝读操作后,固件启动拷贝写指令,使闪存芯片将内部缓存空间(Cache Register)中的数据写到MLC物理块#P的第一个物理页上,由于数据不需要流经主控的RAM,因此数据拷贝的效率很高;
步骤(7):由于在步骤(3)中数据1的映射信息(物理地址)写的就是MLC物理块#P的第一个物理页,因此无需更新映射表中的映射地址,从而节约更新时间;
步骤(8):按照步骤(5)至步骤(7)的方式,将数据2至数据4拷贝到MLC物理块#P,
步骤(9):SSD固件解除SLC物理块#A,#B和MLC物理块#P的绑定关系。
可以理解的是,在主机持续随机写场景下,由于步骤(6)采用闪存的数据拷贝功能以及步骤(7)中不需要更新映射表,直接去除了访问闪存的开销,大大提升了读写性能。
当主机读取数据时,SSD固件读取映射表中的映射信息,获得的物理地址肯定是MLC物理块#P,SSD固件根据SLC物理块#A,#B和MLC物理块#P的绑定关系是否存在来判定数据是在SLC区域(SLC Mode)中还是MLC区域(MLC Mode),如果绑定关系不存在,则直接根据映射表(L2P表)的映射信息从MLC区域获取数据,否则根据绑定关系从SLC物理块#A或#B中获取数据,能够保证获取到相应的数据。
请再参阅图9,图9是本发明实施例提供的一种SLC物理块与QLC物理块的数据拷贝的示意图;
如图9所示,假设QLC物理块包含八个物理页,SLC物理块只有两个物理页,每个物理页为4KB,其中,4个SLC物理块#A,#B,#C,#D分别与1个QLC物理块#P绑定,所述SLC物理块和所述QLC物理块的绑定关系由主控制器的SSD固件维护,其中,数据1和数据2保存在SLC物理块#A,数据3和数据4保存在SLC物理块#B,数据5和数据6保存在SLC物理块#C,数据7和数据8保存在SLC物理块#D,当主机数据进入固态硬盘SSD,主机数据以及映射信息流转步骤如下:
步骤(1):SSD固件分配并维护好某分组(Plane)上SLC物理块#A,#B,#C,#D与QLC物理块#P的绑定关系;
步骤(2):主机的数据1写入SLC Cache中,闪存的物理位置为物理块#A的第一个SLC物理页;
步骤(3):根据绑定关系,后期搬移时数据1会被搬到QLC物理块#P的第一个QLC物理页,所以我们直接将物理块#P的第一个物理页作为数据1的物理地址信息更新到L2P表中;
步骤(4):数据2至数据8以及映射信息按照步骤(2)和步骤(3)的描述写入到闪存中;
步骤(5):SLC Cache内存占满之后根据SLC物理块和QLC物理块的绑定关系,SSD固件先启动拷贝读指令,使闪存芯片将数据1从物理块#A的第一个SLC物理页搬移到分组(Plane)中的内部缓存空间(Cache Register)中;
步骤(6):待闪存芯片完成拷贝读操作后,固件启动拷贝写指令,使闪存芯片将内部缓存空间(Cache Register)中的数据写到QLC物理块#P的第一个物理页上,由于数据不需要流经主控的RAM,因此数据拷贝的效率很高;
步骤(7):由于在步骤(3)中数据1的映射信息(物理地址)写的就是QLC物理块#P的第一个物理页,因此无需更新映射表中的映射地址,从而节约更新时间;
步骤(8):按照步骤(5)至步骤(7)的方式,将数据2至数据8拷贝到QLC物理块#P,
步骤(9):SSD固件解除SLC物理块#A,#B,#C,#D和QLC物理块#P的绑定关系。
可以理解的是,在主机持续随机写场景下,由于步骤(6)采用闪存的数据拷贝功能以及步骤(7)中不需要更新映射表,直接去除了访问闪存的开销,大大提升了读写性能。
当主机读取数据时,SSD固件读取映射表中的映射信息,获得的物理地址肯定是QLC物理块#P,SSD固件根据SLC物理块#A,#B,#C,#D和QLC物理块#P的绑定关系是否存在来判定数据是在SLC区域(SLC Mode)中还是QLC区域(QLC Mode),如果绑定关系不存在,则直接根据映射表(L2P表)的映射信息从QLC区域获取数据,否则根据绑定关系从SLC物理块#A或#B或#C或#D中获取数据,能够保证获取到相应的数据。
在本发明实施例中,通过将SLC物理块与非SLC物理块进行绑定,将SLC物理块的所有物理页中的数据在所述固态硬盘的映射表中的物理地址固定为与所述SLC物理块的物理页对应的非SLC物理块的物理页的物理地址,能够确保在SLC物理块中的数据搬移到非SLC物理块时无需更新映射表,从而节约时间,并且,通过采用闪存数据拷贝,从而能够进一步提高写入速度。
请参阅图10,图10是本发明实施例提供的一种SLC物理块与非SLC物理块的绑定关系的处理流程示意图;
如图10所示,SLC物理块与非SLC物理块的绑定关系的处理流程,包括:
步骤S20:通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块;
具体的,该非SLC物理块包括TLC物理块、MLC物理块以及QLC物理块中的一个或多个。
步骤S30:判断所述SLC物理块中所有的物理页的数据是否完全写入到绑定的非SLC物理块中;
具体的,判断所述SLC物理块中所有的物理页的数据是否完全写入到绑定的非SLC物理块中,即所述SLC物理块中的所有物理页的数据是否完全搬移到对应的非SLC物理块中,若是,则进入步骤S41:解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块,若否,则进入步骤S42:保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块;
步骤S31:解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块;
具体的,若所述SLC物理块的物理页中的数据完全搬移到其绑定的非SLC物理块,例如:TLC物理块、MLC物理块或者QLC物理块,为了保存SLC区域的数据写入,将擦除所述SLC物理块,并且,当所述SLC物理块的所有物理页中的数据完全搬移到其绑定的非SLC物理块,此时SLC物理块拷贝完成,SLC物理块与非SLC物理块的绑定关系可以解除,即可解除绑定关系。
步骤S32:保留所述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物理块的物理页的对应关系。
请再参阅图11,图11是本发明实施例提供的一种读取数据的流程示意图;
如图11所示,该读取数据的流程,包括:
开始;
步骤S111:主机读数据;
具体的,主机(Host端)读取所述固态硬盘中的数据。
步骤S112:SSD固件读取映射表,获取非SLC物理块;
步骤S113:判断非SLC物理块与SLC物理块的绑定关系是否存在,若是,则进入步骤S1131:根据绑定关系,从SLC物理块读取数据;若否,则进入步骤S1132:从非SLC物理块读取数据;
步骤S1131:根据绑定关系,从SLC物理块读取数据;
具体的,根据所述SLC物理块和所述非SLC物理块的绑定关系,例如:所述非SLC物理块为TLC物理块,根据所述SLC物理块和所述TLC物理块的绑定关系,其中,所述绑定关系由主控制器的SSD固件维持,即所述SLC物理块和所述TLC物理块的绑定关系保存在所述主控制器的SSD固件中,所述闪存芯片的主控制器根据所述SLC物理块和所述TLC物理块的绑定关系,从SLC物理块中读取数据,由于SLC物理块的读取速度好于TLC物理块的读取速度,因此当数据存在于SLC物理块时,直接从SLC物理块中读取数据能够提高读取速度。
步骤S1132:从非SLC物理块读取数据;
具体的,若所述SLC物理块中的所有物理页的数据完全搬移到所述SLC物理块对应的非SLC物理块中,例如:所述非SLC物理块为TLC物理块,若所述SLC物理块中的所有物理页的数据完全搬移到所述SLC物理块对应的TLC物理块中,则所述SLC物理块和所述TLC物理块的绑定关系被解除,此时所述主控制器根据所述映射表,从所述TLC物理块读取数据。
在本发明实施例中,通过提供一种DRAM-Less固态硬盘的数据随机写入方法,包括:为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块。通过为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个TLC物理块的绑定关系;根据所述绑定关系,通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块的所有物理页的数据写入到绑定的TLC物理块的物理页。通过上述方式,本发明实施例能够在随机写场景下有效减少对闪存的读写操作,提高DRAM-Less固态硬盘的随机写性能和写入速度。
请参阅图12,图12是本发明实施例提供的一种DRAM-Less固态硬盘的数据写入装置的结构示意图;
该固态硬盘的数据写入装置120可以应用于DRAM-Less固态硬盘,如图12所示,该DRAM-Less固态硬盘的数据写入装置120包括:
物理块绑定单元121,用于为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
在本发明实施例中,所述物理块绑定单元121,具体用于:
获取所述SLC物理块的所有物理页中的数据在所述DRAM-Less固态硬盘的映射表中的物理地址,并将其固定为与所述SLC物理块的物理页绑定的非SLC物理块的物理页的物理地址。
数据拷贝单元122,用于通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块。
在本发明实施例中,每一分组设置有一个内部缓存空间,所述数据拷贝单元122,具体用于:
固件指定所述SLC物理块的物理页为源物理页,并对闪存发起拷贝读指令;
将所述源物理页的数据从源物理页读取到所述内部缓存空间;
固件指定所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并对闪存发起拷贝写指令;
将所述内部缓存空间中的源物理页的数据拷贝到所述目的物理页。在本发明实施例中,所述装置还包括:
内部缓存空间擦除单元,用于所述内部缓存空间的内存大小为一个物理页,所述将所述内部缓存空间中的源物理页的数据写入到目的物理页之后,擦除所述内部缓存空间。
在本发明实施例中,所述装置还包括:
数据写入判断单元,用于判断所述SLC物理块中所有的物理页的数据是否完全写入到对应的非SLC物理块中;
绑定关系解除单元,用于解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块;
绑定关系保留单元,用于保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
在本发明实施例中,所述装置还包括:
绑定关系更新单元,用于在解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块之后,更新所述擦除后的SLC物理块与所述分组中的非SLC物理块的绑定关系。
在本发明实施例中,所述装置还包括:
数据查找单元,用于接收Host端发送的读取指令;
根据所述读取指令,获取所述分组中的非SLC物理块;
判断所述绑定关系是否存在;
若存在,则根据所述绑定关系,在与所述非SLC物理块绑定的SLC物理块中查找所述读取指令对应的数据;
若不存在,则根据所述固态硬盘的映射表,在所述非SLC物理块中查找所述读取指令对应的数据。
由于装置实施例和方法实施例是基于同一构思,在内容不互相冲突的前提下,装置实施例的内容可以引用方法实施例的,在此不赘述。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图3中的一个处理器311,可使得上述一个或多个处理器可执行上述任意方法实施例中的DRAM-Less固态硬盘的数据随机写入方法,例如,执行上述任意方法实施例中的DRAM-Less固态硬盘的数据随机写入方法,例如,执行以上描述的图4所示的各个步骤;也可实现图12所述的各个单元的功能。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种DRAM-Less固态硬盘的数据随机写入方法,应用于DRAM-less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,其特征在于,所述方法包括:
为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块;
在将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块之后,所述方法还包括:
判断所述SLC物理块中所有的物理页的数据是否完全拷贝到对应的非SLC物理块中;
若是,则解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块。
2.根据权利要求1所述的方法,其特征在于,所述建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系,包括:
获取所述SLC物理块中所有的物理页中的数据在所述DRAM-Less固态硬盘的映射表中的物理地址,并将其固定为与所述SLC物理块绑定的非SLC物理块的物理页的物理地址。
3.根据权利要求1所述的方法,其特征在于,每一分组设置有一个内部缓存空间,所述根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块,包括:
固件指定所述SLC物理块的物理页为源物理页,并对闪存发起拷贝读指令;
将所述源物理页的数据从源物理页读取到所述内部缓存空间;
固件指定所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并对闪存发起拷贝写指令;
将所述内部缓存空间中的源物理页的数据拷贝到所述目的物理页。
4.根据权利要求3所述的方法,其特征在于,所述内部缓存空间的内存大小为一个物理页,所述非SLC物理块包括TLC物理块、MLC物理块以及QLC物理块中的一个或多个。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述SLC物理块中所有的物理页的数据未完全拷贝到对应的非SLC物理块中,则保留所述SLC物理块与其绑定的非SLC物理块的绑定关系,并保留所述SLC物理块。
6.根据权利要求5所述的方法,其特征在于,在解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块之后,所述方法还包括:
更新所述擦除后的SLC物理块与所述分组中的非SLC物理块的绑定关系。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收Host端发送的读取指令;
根据所述读取指令,获取所述分组中的非SLC物理块;
判断所述绑定关系是否存在;
若存在,则根据所述绑定关系,在与所述非SLC物理块绑定的SLC物理块中查找所述读取指令对应的数据;
若不存在,则根据所述DRAM-Less固态硬盘的映射表,在所述非SLC物理块中查找所述读取指令对应的数据。
8.一种DRAM-Less固态硬盘的数据随机写入装置,应用于DRAM-less固态硬盘,所述DRAM-Less固态硬盘包括非SLC闪存芯片,所述非SLC闪存芯片包括多个分组,每一分组包括多个非SLC物理块,其特征在于,所述装置包括:
物理块绑定单元,用于为所述分组配置至少一个SLC物理块,建立每一SLC物理块与所述分组中的一个非SLC物理块的绑定关系;
数据拷贝单元,用于通过所述SLC物理块接收Host端发送的数据,当所述SLC物理块的内存已满时,根据所述绑定关系,将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块;
所述数据拷贝单元,还用于:
在将所述SLC物理块所有的物理页的数据拷贝到绑定的非SLC物理块之后,判断所述SLC物理块中所有的物理页的数据是否完全拷贝到对应的非SLC物理块中;
若是,则解除所述SLC物理块与其绑定的非SLC物理块的绑定关系,并擦除所述SLC物理块。
9.根据权利要求8所述的装置,其特征在于,所述每一分组设置有一个内部缓存空间,所述数据拷贝单元具体用于:
固件指定所述SLC物理块的物理页为源物理页,并对闪存发起拷贝读指令;
将所述源物理页的数据从源物理页读取到所述内部缓存空间;
固件指定所述SLC物理块绑定的非SLC物理块中的一个物理页为目的物理页,并对闪存发起拷贝写指令;
将所述内部缓存空间中的源物理页的数据拷贝到所述目的物理页。
10.一种DRAM-Less固态硬盘,其特征在于,所述DRAM-Less固态硬盘包括:
闪存芯片,所述闪存芯片包括多个晶圆,每一所述晶圆包括多个分组,每一所述分组包括多个物理块,每一所述物理块包括多个物理页;
主控制器,所述主控制器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910734700.6A CN110531928B (zh) | 2019-08-09 | 2019-08-09 | DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910734700.6A CN110531928B (zh) | 2019-08-09 | 2019-08-09 | DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110531928A CN110531928A (zh) | 2019-12-03 |
CN110531928B true CN110531928B (zh) | 2023-04-25 |
Family
ID=68662212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910734700.6A Active CN110531928B (zh) | 2019-08-09 | 2019-08-09 | DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110531928B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124944B (zh) * | 2019-12-13 | 2023-08-18 | 深圳大普微电子科技有限公司 | 一种数据写入方法、装置及DRAM-Less固态硬盘 |
CN112559385A (zh) * | 2020-12-22 | 2021-03-26 | 深圳忆联信息系统有限公司 | 提升ssd写性能的方法、装置、计算机设备及存储介质 |
CN113778911B (zh) * | 2021-08-04 | 2023-11-21 | 成都佰维存储科技有限公司 | L2p数据缓存方法、装置、可读存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814318A (zh) * | 2009-02-25 | 2010-08-25 | 群联电子股份有限公司 | 多层存储单元与非型闪存储存系统及其控制器与存取方法 |
CN103678159A (zh) * | 2013-12-27 | 2014-03-26 | 威盛电子股份有限公司 | 数据储存装置及其数据写入方法 |
CN107943713A (zh) * | 2017-11-22 | 2018-04-20 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘读性能的方法及固态硬盘 |
CN108733318A (zh) * | 2017-04-20 | 2018-11-02 | 立而鼎科技(深圳)有限公司 | 一种tlc nand flash固态硬盘的写入方法 |
CN110297603A (zh) * | 2019-06-25 | 2019-10-01 | 深圳忆联信息系统有限公司 | 基于固态硬盘的随机写性能提升方法、装置和计算机设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100771521B1 (ko) * | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
-
2019
- 2019-08-09 CN CN201910734700.6A patent/CN110531928B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814318A (zh) * | 2009-02-25 | 2010-08-25 | 群联电子股份有限公司 | 多层存储单元与非型闪存储存系统及其控制器与存取方法 |
CN103678159A (zh) * | 2013-12-27 | 2014-03-26 | 威盛电子股份有限公司 | 数据储存装置及其数据写入方法 |
CN108733318A (zh) * | 2017-04-20 | 2018-11-02 | 立而鼎科技(深圳)有限公司 | 一种tlc nand flash固态硬盘的写入方法 |
CN107943713A (zh) * | 2017-11-22 | 2018-04-20 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘读性能的方法及固态硬盘 |
CN110297603A (zh) * | 2019-06-25 | 2019-10-01 | 深圳忆联信息系统有限公司 | 基于固态硬盘的随机写性能提升方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110531928A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860477B2 (en) | Apparatus and method for low power low latency high capacity storage class memory | |
US11237769B2 (en) | Memory system and method of controlling nonvolatile memory | |
US8144515B2 (en) | Interleaved flash storage system and method | |
US20120084489A1 (en) | Synchronized maintenance operations in a multi-bank storage system | |
CN110531928B (zh) | DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘 | |
US9507719B2 (en) | Garbage collection in hybrid memory system | |
US20050021904A1 (en) | Mass memory device based on a flash memory with multiple buffers | |
US20110055457A1 (en) | Method for giving program commands to flash memory, and controller and storage system using the same | |
CN113924545B (zh) | 基于存储器子系统中的媒体单元的可用性的预测性数据传输 | |
US20150242310A1 (en) | Data Accessing Method And Data Accessing Apparatus | |
US20120179859A1 (en) | Nonvolatile memory apparatus performing ftl function and method for controlling the same | |
US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
US11645006B2 (en) | Read performance of memory devices | |
CN102279712A (zh) | 一种适用于互联网存储系统的存储控制方法、系统和装置 | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
US8914587B2 (en) | Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request | |
US20150074327A1 (en) | Active Recycling for Solid State Drive | |
WO2016138785A1 (zh) | 一种运行进程的方法及装置 | |
WO2023087861A1 (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN111124944B (zh) | 一种数据写入方法、装置及DRAM-Less固态硬盘 | |
CN102880553A (zh) | 一种基于mcu的片外flash文件系统的读写方法 | |
CN115552531A (zh) | 共享字线上的存储器存取冲突管理 | |
CN103092771A (zh) | 固态储存装置及其高速缓存的控制方法 | |
CN113012741B (zh) | 用于存储器子系统的媒体管理的弹性缓冲器 | |
US11698856B2 (en) | Maintaining sequentiality for media management of a memory sub-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 |