CN111966294B - 存储数据的方法、装置、设备及存储介质 - Google Patents

存储数据的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111966294B
CN111966294B CN202010832056.9A CN202010832056A CN111966294B CN 111966294 B CN111966294 B CN 111966294B CN 202010832056 A CN202010832056 A CN 202010832056A CN 111966294 B CN111966294 B CN 111966294B
Authority
CN
China
Prior art keywords
data
flash
dram
die
written
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
CN202010832056.9A
Other languages
English (en)
Other versions
CN111966294A (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.)
Hangzhou Haikang Storage Technology Co ltd
Original Assignee
Hangzhou Haikang Storage Technology 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 Hangzhou Haikang Storage Technology Co ltd filed Critical Hangzhou Haikang Storage Technology Co ltd
Priority to CN202010832056.9A priority Critical patent/CN111966294B/zh
Publication of CN111966294A publication Critical patent/CN111966294A/zh
Application granted granted Critical
Publication of CN111966294B publication Critical patent/CN111966294B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请公开了一种存储数据的方法,属于计算机技术领域。所述方法包括:获取第一数据存储请求;将所述第一数据存储请求对应的待存储的第一数据存入DRAM中;如果在所述第一数据存入所述DRAM之后的预设时长内未获取到其它数据存储请求或其他数据处理请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH。本申请通过将保存在DRAM中的数据的时间控制在预设时长内,可以降低由于意外断电导致DRAM中存储的数据丢失的可能。

Description

存储数据的方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种存储数据的方法、装置、设备及存储介质。
背景技术
随着计算机技术的进步,存储设备的不断迭代更新,SSD(Solid-State Disk,固态存储盘)已经是当前各个领域中应用较为广泛的存储设备。
SSD是一种用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成,其中,存储单元可以包括FLASH芯片(快闪存储器)和DRAM芯片(内部存储器)。在相关技术中,一般向SSD中存储数据时,为了保证顺序读写带宽最大化,可以先将数据存储到DRAM芯片中,当DRAM芯片中的存储的数据达到一个LogicStripe(逻辑条带)的数据量时,则会将存储在DRAM芯片中的数据并行写入FLASH芯片中的多个逻辑单元中。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:
DRAM芯片属于易失性存储器,即断电后其存储的数据就会丢失,当DRAM中的存储的数据没有达到一个LogicStripe的数据量时,对应的存储数据会一直存储在DRAM芯片中,如果在使用SSD的过程中发生了意外断电,则可能会造成DRAM芯片中存储的数据丢失。
发明内容
本申请实施例提供了一种存储数据的方法、装置、设备及存储介质,能够降低由于意外断电导致SSD中数据丢失的可能。所述技术方案如下:
一方面,提供了一种存储数据的方法,所述方法包括:
获取第一数据存储请求;
将所述第一数据存储请求对应的待存储的第一数据存入DRAM中;
如果在所述第一数据存入所述DRAM之后的预设时长内未获取到其它数据存储请求或数据处理请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH。
可选的,所述如果在所述第一数据存入所述DRAM之后的预设时长内未获取到其它待处理的数据存储请求或数据处理请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH,包括:
在所述第一数据存入所述DRAM之后,在请求队列中没有其他数据处理请求或者没有其他数据存储请求,则开始计时;
如果在开始计时后的所述预设时长内,没有接收到其他数据处理请求或者没有接收到其他数据存储请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH。
可选的,所述方法还包括:
如果在开始计时后的所述预设时长内,接收到其他数据处理请求或者接收到其他数据存储请求,则终止计时。
可选的,在请求队列中没有其他数据处理请求或者没有其他数据存储请求,则开始计时,包括:
在请求队列中没有其他数据处理请求或者没有其他数据存储请求,且所述DRAM中未写入所述FLASH的数据的数据量没有达到一个逻辑条带的数据量,则开始计时。
可选的,所述将所述DRAM中未写入FLASH的数据写入所述FLASH之后,所述方法还包括:
确定所述上一次向所述FLASH中写入数据时数据所写入的Page中对应Page标识最大的至少一个Page存储的总数据量;
基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量,对所述预设时长进行更新。
可选的,基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量,对所述预设时长进行更新,包括:
当所述总数据量在第一数据量范围内时,预设时长不变;
当所述总数据量在第二数据量范围内时,基于第一系数、第二系数、所述DRAM中未写入FLASH的数据的数据量和所述总数据量,确定更新之后的预设时长;
当所述总数据量在第三数据范围内时,基于第三系数、第四系数、所述DRAM中未写入FLASH的数据的数据量和所述总数据量,确定更新之后的预设时长,其中,所述第一数据量范围的上限小于或等于所述第二数据量范围的下限,所述第二数据量范围的上限小于或等于所述第三数据量范围的下限。
可选的,所述基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量,对所述预设时长进行更新,包括:
基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量、以及公式
Figure BDA0002638349930000031
对所述预设时长进行更新,其中,T1为更新后的预设时长,T0为更新前的预设时长,m为单个逻辑条带的数据量,α为所述总数据量,x为所述DRAM中未写入FLASH的数据的数据量,p为预设的数值。
可选的,所述将所述DRAM中未写入FLASH的数据写入所述FLASH之后,所述方法还包括:
记录在所述FLASH中下一次写入数据的第一起始地址信息,其中,如果所述第一起始地址信息对应的第一Page位于预设Die,则所述起始地址信息包括所述第一Page标识,如果所述起始地址信息对应的第一Page不位于所述预设Die,则所述起始地址信息包括所述第一Page标识和所述第一Page位于的第一Die的第一Die标识。
可选的,所述方法还包括:
如果在所述第一数据存入所述DRAM之后的预设时长内获取到第二数据存储请求,且将所述第二数据存储请求对应的待存储的第二数据存入所述DRAM的过程中,所述DRAM中未写入FLASH的数据对应的数据量达到逻辑条带对应的数据量,则获取上一次向所述FLASH中写入数据之后记录的下一次写入数据的第二起始地址信息;
如果所述第二起始地址信息中包括第二Die标识和第二Page标识,则确定所述第二Die标识对应的第二Die是否为地址顺序上的最后一个Die,如果所述第二Die为所述最后一个Die,则在所述第二Die中对应所述第二Page标识的第二Page中写入无效数据,如果所述第二Die不为所述最后一个Die,则在所述第二Die的第二Page以及所述第二Die之后的Die中与第二Page标识对应的Page中写入无效数据;
确定所述第二Page标识在标识顺序上的下一个Page标识,基于所述下一个Page标识,将所述DRAM中达到所述逻辑条带对应的数据量的数据,写入所述FLASH。
另一方面,提供了一种存储数据的装置,所述装置包括:
获取模块,用于获取第一数据存储请求;
第一存储模块,用于将所述第一数据存储请求对应的待存储的第一数据存入DRAM中;
第二存储模块,用于如果在所述第一数据存入所述DRAM之后的预设时长内未获取到其它数据存储请求或数据处理请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH。
可选的,所述第二存储模块,用于:
在所述第一数据存入所述DRAM之后,在请求队列中没有其他数据处理请求或者没有其他数据存储请求,则开始计时;
如果在开始计时后的所述预设时长内,没有接收到其他数据处理请求或者没有接收到其他数据存储请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH;
如果在开始计时后的所述预设时长内,接收到其他数据处理请求或者接收到其他数据存储请求,则终止计时;
所述第二存储模块,用于:
在请求队列中没有其他数据处理请求或者没有其他数据存储请求,且所述DRAM中未写入所述FLASH的数据的数据量没有达到一个逻辑条带的数据量,则开始计时。
可选的,所述装置还包括更新模块,用于:
确定所述上一次向所述FLASH中写入数据时数据所写入的Page中对应Page标识最大的至少一个Page存储的总数据量;
基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量,对所述预设时长进行更新;
所述更新模块,用于:
当所述总数据量在第一数据量范围内时,预设时长不变;
当所述总数据量在第二数据量范围内时,基于第一系数、第二系数、所述DRAM中未写入FLASH的数据的数据量和所述总数据量,确定更新之后的预设时长;
当所述总数据量在第三数据范围内时,基于第三系数、第四系数、所述DRAM中未写入FLASH的数据的数据量和所述总数据量,确定更新之后的预设时长,其中,所述第一数据量范围的上限小于或等于所述第二数据量范围的下限,所述第二数据量范围的上限小于或等于所述第三数据量范围的下限;
所述更新模块,用于:
基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量、以及公式
Figure BDA0002638349930000051
对所述预设时长进行更新,其中,T1为更新后的预设时长,T0为更新前的预设时长,m为单个逻辑条带的数据量,α为所述总数据量,x为所述DRAM中未写入FLASH的数据的数据量,p为预设的数值。
可选的,所述装置还包括记录模块,用于:
记录在所述FLASH中下一次写入数据的第一起始地址信息,其中,如果所述第一起始地址信息对应的第一Page位于预设Die,则所述起始地址信息包括所述第一Page标识,如果所述起始地址信息对应的第一Page不位于所述预设Die,则所述起始地址信息包括所述第一Page标识和所述第一Page位于的第一Die的第一Die标识;
所述记录模块,还用于:
如果在所述第一数据存入所述DRAM之后的预设时长内获取到第二数据存储请求,且将所述第二数据存储请求对应的待存储的第二数据存入所述DRAM的过程中,所述DRAM中未写入FLASH的数据对应的数据量达到逻辑条带对应的数据量,则获取上一次向所述FLASH中写入数据之后记录的下一次写入数据的第二起始地址信息;
如果所述第二起始地址信息中包括第二Die标识和第二Page标识,则确定所述第二Die标识对应的第二Die是否为地址顺序上的最后一个Die,如果所述第二Die为所述最后一个Die,则在所述第二Die中对应所述第二Page标识的第二Page中写入无效数据,如果所述第二Die不为所述最后一个Die,则在所述第二Die的第二Page以及所述第二Die之后的Die中与第二Page标识对应的Page中写入无效数据;
确定所述第二Page标识在标识顺序上的下一个Page标识,基于所述下一个Page标识,将所述DRAM中达到所述逻辑条带对应的数据量的数据,写入所述FLASH。
再一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上所述的存储数据的方法所执行的操作。
再一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的存储数据的方法所执行的操作。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例,通过设置预设时长,在将数据存入DRAM之后,确定在预设时长内是否能够获取到其他的数据存储请求,如果没有获取则将DRAM中未写入FLASH中的数据写入FLASH中,这样保存在DRAM中的数据的时间不会太长,可以降低由于意外断电导致DRAM中存储的数据丢失的可能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的存储数据方法流程图;
图2是本申请实施例提供的存储数据方法流程图;
图3是本申请实施例提供的存储数据方法示意图;
图4是本申请实施例提供的存储数据的装置结构示意图;
图5是本申请实施例提供的计算机设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的存储数据的方法可以应用在存储设备中,其中,该存储设备可以是SSD(Solid-State Disk,固态存储盘)。
SSD可以由控制单元和存储单元,其中,控制单元可以将存储单元与安装SSD的终端连接,接收终端发送的读写指令,控制存储单元完成对应的数据读写。存储单元可以由FLASH芯片(快闪存储器)和DRAM芯片(内部存储器)组成,FLASH芯片为非易失性存储器,即断电后数据仍然可以保存在FLASH芯片中,DRAM芯片为易失性存储器,即断电后存储在DRAM芯片中的数据就会丢失。
SSD中的FLASH芯片可以分为多个Die(也称为LUN,逻辑单元),一个Die中可以包括一个或多个Plane(面),一个Plane中可以包括多个Block(块),一个Block可以包括多个Page(页)。在不同的Die中,相同位置的Page可以具有相同的标识,该标识可以为Page的地址中用于表示Page所在Die的位置的数值。在本申请实施例中FLASH对应的类型可以是SCL(Single Level Cell,单层单元)、MCL(Multi Level Cell,多层单元)、TCL(Trinary LevelCell,三层单元)等任意类型。
Logic Stripe(逻辑条带),FTL(Flash Translation Layer,闪存转换层)算法中磨损均衡和垃圾回收的最小单元。根据系统可靠性的需求,一个逻辑条带可以包含SSD系统中所有Die中相同物理Block号的Multi-Plane操作。当数据量达到一个Logic Stripe对应的数据量时,可以按照逻辑条带的写入方式将对应的数据可以并行写入FLASH中的各个Die中,能使写带宽最大化,即多个Di中可以同时写入数据。其中,在按照逻辑条带的写入方式将数据并行写入FLASH中的各个Die中,需要同时写入的各个Die中的Page地址相同。
SSD在存储数据时,控制单元可以将带存储的数据划分为多个AU(AllocationUnits,数据单元),然后将多个数据单元存储至DRAM(DRAM芯片)中,当DRAM中存储的数据量达到一个LogicStripe(逻辑条带)的数据量时,即DRAM中存储的AU的个数达到一个LogicStripe数据量对应的AU个数时,则控制单元可以为每个AU分配对应的存储地址,然后根据分配的存储地址将AU存储至FLASH(FLASH芯片)中。当DRAM中存储的数据量达不到一个Logic Stripe的数据量时,则DRAM中的数据会一直存储在DRAM,由于DRAM为易失性存储器,所以如果在使用SSD的过程中意外断电,则可能造成数据的丢失。本申请实施例提供的存储数据的方法,可以应用在SSD中,能够降低意外断电造成的数据丢失的可能性。
图1是本申请实施例提供的一种存储数据的方法流程图。参见图1,该实施例包括:
步骤101、获取第一数据存储请求。
在实施中,终端需要存储数据时,可以向SSD发送数据存储请求,例如数据存储请求可以是IO请求。SSD中的控制单元在接收到数据存储请求,可以将数据存储请求以及数据存储请求对应的数据地址入存储请求队列。其中,在控制单元中可设置有多个存储请求队列,当控制单元接收到数据存储请求之后,SSD的固件可以按照周期轮询等方式获取各个存储请求队列中的存储请求。第一数据存储请求可以任意一个存储请求队列中的存储请求,其中获取存储请求方法可以参照现有的获取存储请求的方法,此处不做限定。
步骤102、将第一数据存储请求对应的第一数据存入DRAM中。
在实施中,在获取的到第一数据存储请求之后,可以根据第一数据存储请求对应的存储地址,获取需要存储的第一数据。控制单元在获取第一数据之后,可以将第一数据划分为多个AU,然后写入DRAM中。其中向DRAM中写入第一数据时,可以将第一数据对应的多个AU依次存储在DRAM中,在存储的过程中,若DRAM中的未写入的数据量达到一个LogicStripe对应的数据量时,即DRAM中未写入FLASH中的AU个数达到一个LogicStripe对应的数据量对应的AU个数时,则可以将DRAM中未写入FLASH中的数据量按照写入LogicStripe的写入方式写入FLASH中。在将DRAM中的数据写入FLASH中时,会给每个AU分配逻辑地址和存储地址,该存储地址可以是SSD中的物理地址,并且将AU的逻辑地址和存储地址记录在L2P(Logicaddress to Physical address Table,逻辑地址和物理地址的映射表)表中,以记录各个AU的存储地址,并可用于表示DRAM中存储至FLASH中的数据。
步骤103、如果在第一数据存入DRAM之后的预设时长内未获取到其它数据存储请求或其他数据处理请求,则将DRAM中未写入FLASH的数据写入FLASH。
在实施中,预设时长可以由技术人员根据经验进行设置,在第一数据存入DRAM之后可以确定当前是否满足计时条件,如果满足计时条件则可以启动计时器,如果在启动计时器之后计时时长达到预设时长时,未获取到其它数据存储请求,则将DRAM中未写入FLASH的数据写入FLASH。
其中,计时条件可以为在第一数据存入DRAM之后,在请求队列中没有其他数据处理请求或者没有其他数据存储请求,则开始计时。如果在请求队列中存在其他数据处理请求或者其他数据存储请求,则不计时,可以等请求队列中存在其他数据处理请求或者其他数据存储请求对应数据处理完成或存入DRAM中之后,在请求队列中没有其他数据处理请求或者没有其他数据存储请求时,则开始计时。如果在开始计时后的预设时长内,接收到其他数据处理请求或者接收到其他数据存储请求,则可以终止计时。本实施例中的其他数据存储请求应当理解为除了第一数据存储请求以外的在在请求队列中的其他数据存储请求,本实施例中的其他数据处理请求应当理解为除了第一数据存储请求以外的在在请求队列中的其他数据处理请求。
在实施中,在将第一数据写入DRAM之后,且数据请求队列被取空时,则可以开始计时。如果在预设的计时时长内(预设时长),没有再次获取到其他的数据存储请求,则可以确定DRAM中是否存在未写入FLASH中的数据,如果DRAM中存在未写入FLASH中的数据,则可以将DRAM中存在未写入FLASH中的数据写入FLASH中。另外,也可以在计时之前确定DRAM中是否存在未写入FLASH的数据,如果DRAM中未写入FLASH的数据的数据量没有达到一个逻辑条带的数据量时,则可以开始计时,在预设的计时时长内没有再次获取到其他的数据存储请求,则可以将DRAM中量没有达到一个逻辑条带的数据量的数据写入FLASH中。
如果DRAM中不存在未写入FLASH中的数据,则可以重新开始计时。在新的预设的计时时长内确定是否能够获取到其他的数据存储请求。
其中,如果DRAM中存在未写入FLASH中的数据,则说明未写入FLASH中的数据没有达到一个LogicStripe的数据量。所以将未写入FLASH中的数据写入FLASH中,不能按照写入LogicStripe的方式将未写入FLASH中的数据写入FLASH中,即不能将未写入FLASH中的数据同时写入FLASH的各个Die中。
在实施中,FLASH在每次存储数据之后,可以记录下次进行存储数据的存储单元的起始地址信息,其中,起始地址信息可以包括Page标识,或,Page标识和Die标识,然后根据起始地址信息确定存储数据的起始存储地址。其中在FLASH中的地址可以通过多位二进制或十六进制的数值等表示,不同的位的数值可以表示不同的Die、Plane、Block和Page等。例如,地址为0x01011110,则其中前两位01可以为Die标识,第三位与第四位的01可以为Plane标识,第五位与第六位的11可以为Block标识,最后两位10可以为Page标识。其中,如果一个Die中存在多个Plane时,Page标识中还可以包括Plane标识,以区分一个Die中不同Plane中同一位置的Page。所以在向FLASH中写入DRAM中未写入FLASH的数据时,可以先获取上次存储数据之后记录的Page标识,或Page标识和Die标识,然后根据获取Page标识,或Page标识和Die标识确定唯一的起始存储地址,将未写入FLASH的数据写入FLASH中。其中,将未写入FLASH的数据写入FLASH中的过程可以如下:
将DRAM中未写入FLASH的数据划分为多个AU,当获取地址信息只有Page标识时,可以将Page标识以及预设Die的预设Die标识对应的地址,确定为起始存储地址,然后为DRAM中未写入FLASH的多个AU,分配的存储地址,将对应的AU存储至FLASH中各个Die的page中。其中,预设Die可以是在FLASH的各个Die中,对应标识的数值最小的Die,即在地址顺序上排在最前面的Die。例如,FLASH中包括Die0、Die1、Die2、Die3对应的标识分别为0x00、0x01、0x10、0x11,则按照地址对应数值的大小顺序,各个Die可排列为Die0、Die1、Die2、Die3,则Die0可以为预设Die。如果地址信息只有Page1的标识时,则Die0中的Page1为起始存储地址,可以将DRAM中未写入FLASH的多个AU分配的地址Die0中的Page1(Die0,Page1)的地址、Die1,Page1的地址、Die2,Page1的地址等,然后将各个AU按照分配的地址,按照单Die的写入方式依次写入FLASH的各个Die的Page中,即按照AU分配地址的顺序,将AU依次写入FLASH中。另外,如果FLASH的类型为TCL类型时,则Page可以分为LowerPage、MiddlePage、HighPage,则对应的地址分配方式可以先分配每个Die中相同的Page对应的LowerPage,再分配相同的Page对应的MiddlePage,再分配相同的Page对应的HighPage,然后再分配每个Die中下一个相同的Page中的LowerPage、MiddlePage和HighPage,另外其他类型的SSD分配地址的方式与上述TCL类型的SSD分配地址的方式相同,都可以按照地址顺序分配各个Die中Page对应的地址,此处不再赘述。
当获取地址信息中包括Page标识和Die标识时,则可以将地址信息中包括Page标识和Die标识对应的地址,确定为起始存储地址,然后为DRAM中未写入FLASH的多个AU分配的存储地址,将对应的AU存储至FLASH中各个Die的page中。如果在向FLASH中的Page存储数据时,存储至最后一个Page时,如果剩余的数据不满足一个Page的存储数据量时,则可以为剩余的数据补充无效数据,以写入最后一个Page。
可选的,将未写入FLASH的数据写入FLASH中之后,记录再次写入数据的第一起始地址信息的处理可以如下:记录在FLASH中再次写入数据的第一起始地址信息,其中,如果第一起始地址信息对应的第一Page位于预设Die,则起始地址信息包括第一Page标识,如果起始地址信息对应的第一Page不位于预设Die,则起始地址信息包括第一Page标识和第一Page位于的第一Die的第一Die标识。
在实施中,在将DRAM中未写入FLASH的数据写入FLASH之后,可以根据最后一个存储数据的Page,确定再次向FLASH中写入数据时的起始地址信息,即第一起始地址信息。在第一起始地址信息中可以包括Page标识,或Page标识和Die标识。其中,如果FLASH中再次写入数据对应的第一个存储数据的Page所位于的Die为预设Die时,则可以只记录FLASH中再次写入数据对应的第一个存储数据的Page(第一Page)标识。如果FLASH中再次写入数据对应的第一个存储数据的Page所位于的Die不为预设Die时,则可以记录第一Page标识,以及第一Page位于的第一Die的第一Die标识。其中,预设Die可以是在FLASH的各个Die中,对应标识的数值最小的Die,即在地址顺序上排在最前面的Die。再次写入数据对应的第一个存储数据的Page为最后一个存储数据的Page在地址顺序上的下一个Page。另外,还可以根据第一起始地址信息确定下次向FLASH中写入数据时对应的优先写入方式。如果记录的第一起始地址信息中只包括Page标识,则说明当前的各个Die中待存储数据的Page标识相同,例如第一起始地址信息中只包括Page3的Page3标识,则各个Die中下一次存储数据的Page都为Page4,则可以记录下次的优先写入方式为第一写入方式(写入按照LogicStripe的方式)。如果记录的第一起始信息中包括Page标识以及Die标识,则说明当前的各个Die中待存储数据的Page的Page标识不相同,例如第一起始地址信息中包括Die2标识和Page3标识,Die0-Die1中待存储数据的Page为Page4,Die2-Die3中待存储的数据的Page为Page3,则可以记录下次的优先写入方式为第二写入方式(单Die的写入方式)。
可选的,DRAM中未写入FLASH的数据写入FLASH之后,预设的计时时长可以根据FLASH和DRAM中的写入的数据量进行调整,相应的处理如下:确定上一次向FLASH中写入数据时数据所写入的Page中对应Page标识最大的至少一个Page存储的总数据量;基于总数据量以及DRAM中未写入FLASH的数据的数据量,对预设时长进行更新。
在实施中,将DRAM未写入FLASH的数据写入FLASH之后,可以记录本次写入的数据量。并获取在向FLASH写入数据之前,FLASH的各个存储数据的Page中,确定标识对应数值最大的至少一个Page,然后确定该至少一个至少一个Page中存储的总数据量。然后根据该至少一个Page中存储的总数据量和本次写入的数据量确定更新的预设时长。
其中,可以设置不同的数据量范围,然后根据总数据量所在的数据量范围确定更新的预设时长,如下:当总数据量在第一数据量范围内时,预设时长不变;当总数据量在第二数据量范围内时,基于第一系数、第二系数、DRAM中未写入FLASH的数据的数据量和总数据量,确定更新之后的预设时长;当总数据量在第三数据范围内时,基于第三系数、第四系数、DRAM中未写入FLASH的数据的数据量和总数据量,确定更新之后的预设时长,其中,第一数据量范围的上限小于或等于第二数据量范围的下限,第二数据量范围的上限小于或等于第三数据量范围的下限。上述第一系数、第二系数、第三系数以及第四系数可由技术人员根据经验进行设置,此处不对上述各系数的数值进行限制。
相应的,可以通过下面的公式计算更新的预设时长:
Figure BDA0002638349930000131
其中,T1为更新后的预设时长,T0为更新前的预设时长,m为单个LogicStripe的数据量,α为总数据量,x为DRAM中未写入FLASH的数据的数据量,p为预设的数值。
本申请实施例,通过设置预设时长,在将数据存入DRAM之后,确定在预设时长内是否能够获取到其他的数据存储请求,如果没有获取则将DRAM中未写入FLASH中的数据写入FLASH中,这样保存在DRAM中的数据的时间不会太长,可以降低由于意外断电导致DRAM中存储的数据丢失的可能。
图2为本申请实施例提供的存储数据的方法流程图,该方法对应步骤103的方案的,即如果在第一数据存入DRAM之后的预设时长内获取到第二数据存储请求的处理方法,参见图2,该方法包括:
步骤201、如果在第一数据存入DRAM之后的预设时长内获取到第二数据存储请求,且将第二数据存储请求对应的第二数据存入DRAM的过程中,DRAM中未写入FLASH的数据对应的数据量达到逻辑条带对应的数据量,则获取上一次向FLASH中写入数据之后记录的再次写入数据的第二起始地址信息。
在实施中,如果在计时开始之后的预设时长内,再次获取到了第二数据存储请求,则可以将第二数据存储请求中的第二数据划分为多个AU并写入DRAM中。如果将第二数据写入DRAM的过程中,DRAM中未写入FLASH的数据对应的数据量达到一个LogicStripe对应的数据量时,则获取上一次向FLASH中写入数据之后记录的再次写入数据的第二起始地址信息。如果计时开始之后的预设时长内,再次获取到了第二数据存储请求,且将第二数据写入DRAM的过程中,DRAM中未写入FLASH的数据对应的数据量仍然没有达到一个LogicStripe对应的数据量时,且当前的存储请求队列中的数据存储请求已获取空,则可以重新开始计时。
步骤202、如果第二起始地址信息中包括第二Die标识和第二Page标识,则确定第二Die标识对应的第二Die是否为地址顺序上的最后一个Die,如果第二Die为最后一个Die,则在第二Die中对应第二Page标识的第二Page中写入无效数据,如果第二Die不为最后一个Die,则在第二Die的第二Page以及第二Die之后的Die中与第二Page标识对应的Page中写入无效数据。
在实施中,可以根据第二起始地址信息确定将DRAM中未写入FLASH的数据写入FLASH的方式。如果第二起始地址信息中包括第二Die标识和第二Page标识,则说明当前各个Die中待写入数据的Page的Page标识不相同,不能以写入LogicStripe的方式写入FLASH中,则可以先将当前各个Die中待写入数据的Page写入无效数据,以使当前各个Die中待写入数据的Page的Page标识相同,然后按照写入LogicStripe的方式将DRAM中未写入FLASH的数据写入FLASH中。在写入无效数据时,如果第二Die为FLASH的各个Die在地址顺序上最后一个Die时,则可以只在第二Die的第二Page中写入无效数据,如果第二Die不为最后一个Die,则可以在第二Die的第二Page以及第二Die之后的Die的Page中写入无效数据。
步骤203、确定第二Page标识在标识顺序上的下一个Page标识,基于下一个Page标识,将DRAM中达到逻辑条带对应的数据量的数据,写入FLASH。
其中,标识可以为Die、page等在SSD的存储地址中对应的地址数值,标识顺序即为地址顺序。
在实施中,在将FLASH中补充无效数据之后,可以按照LogicStripe的写入方式将DRAM中达到LogicStripe对应数据量的数据写入FLASH中,其中,写入数据的过程可如下:
可根据第二起始地址信息确定本次向FLASH中写入数据时的起始存储地址。在写入无效数据之后,各个Die中待写入数据的Page都为第二Page在标识顺序上的下一个Page。则可以将下一个Page标识对应的多个地址为起始存储地址,为DRAM中存储的各个AU分配存储地址,然后根据各个AU分配的地址将各个AU同时写入各个Die的Page中。如图3所示,第二起始地址信息中包括Die2标识和Page2标识,则可以先将Die2中的Page2以及Die3中的Page3存入无效数据,然后以Page3标识对应的各个Die中Page3的地址为起始存储地址,将DRAM中一个LogicStripe对应的数据量写入各个Die的Page中。另外,在将DRAM中一个LogicStripe对应的数据量写入各个Die的Page中之后,可以根据最后一个存储数据的Page,确定再次向FLASH中写入数据时的第三起始地址信息。第三起始地址信息中可以包括Page标识,该Page标识对应的Page可以为最后一个存储数据的Page在地址顺序上的下一个Page。另外,还可以根据第一起始地址信息确定下次向FLASH中写入数据时对应的优先写入方式。由于本次向FLASH中写入数据时,是按照写入LogicStripe的方式写入FLASH中,则各个Die中最后一个存储数据的Page对应的Page标识相同,则可以下一次优先写入方式为第一写入方式(写入按照LogicStripe的方式)。
本申请实施例,通过设置预设时长,在将数据存入DRAM之后,确定在预设时长内是否能够获取到其他的数据存储请求,如果没有获取则将DRAM中未写入FLASH中的数据写入FLASH中,这样保存在DRAM中的数据的时间不会太长,可以降低由于意外断电导致DRAM中存储的数据丢失的可能。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图4是本申请实施例提供的一种存储数据的装置,该装置可以是上述的存储设备,该装置包括:
获取模块410,用于获取第一数据存储请求;
第一存储模块420,用于将所述第一数据存储请求对应的待存储的第一数据存入DRAM中;
第二存储模块430,用于如果在所述第一数据存入所述DRAM之后的预设时长内未获取到其它数据存储请求或数据处理请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH。
可选的,所述第二存储模块430,用于:
在所述第一数据存入所述DRAM之后,在请求队列中没有其他数据处理请求或者没有其他数据存储请求,则开始计时;
如果在开始计时后的所述预设时长内,没有接收到其他数据处理请求或者没有接收到其他数据存储请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH;
如果在开始计时后的所述预设时长内,接收到其他数据处理请求或者接收到其他数据存储请求,则终止计时;
所述第二存储模块430,用于:
在请求队列中没有其他数据处理请求或者没有其他数据存储请求,且所述DRAM中未写入所述FLASH的数据的数据量没有达到一个逻辑条带的数据量,则开始计时。
可选的,所述装置还包括更新模块,用于:
确定所述上一次向所述FLASH中写入数据时数据所写入的Page中对应Page标识最大的至少一个Page存储的总数据量;
基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量,对所述预设时长进行更新;
所述更新模块,用于:
当所述总数据量在第一数据量范围内时,预设时长不变;
当所述总数据量在第二数据量范围内时,基于第一系数、第二系数、所述DRAM中未写入FLASH的数据的数据量和所述总数据量,确定更新之后的预设时长;
当所述总数据量在第三数据范围内时,基于第三系数、第四系数、所述DRAM中未写入FLASH的数据的数据量和所述总数据量,确定更新之后的预设时长,其中,所述第一数据量范围的上限小于或等于所述第二数据量范围的下限,所述第二数据量范围的上限小于或等于所述第三数据量范围的下限;
所述更新模块,用于:
基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量、以及公式
Figure BDA0002638349930000161
对所述预设时长进行更新,其中,T1为更新后的预设时长,T0为更新前的预设时长,m为单个逻辑条带的数据量,α为所述总数据量,x为所述DRAM中未写入FLASH的数据的数据量,p为预设的数值。
可选的,所述装置还包括记录模块,用于:
记录在所述FLASH中下一次写入数据的第一起始地址信息,其中,如果所述第一起始地址信息对应的第一Page位于预设Die,则所述起始地址信息包括所述第一Page标识,如果所述起始地址信息对应的第一Page不位于所述预设Die,则所述起始地址信息包括所述第一Page标识和所述第一Page位于的第一Die的第一Die标识;
所述记录模块,还用于:
如果在所述第一数据存入所述DRAM之后的预设时长内获取到第二数据存储请求,且将所述第二数据存储请求对应的待存储的第二数据存入所述DRAM的过程中,所述DRAM中未写入FLASH的数据对应的数据量达到逻辑条带对应的数据量,则获取上一次向所述FLASH中写入数据之后记录的下一次写入数据的第二起始地址信息;
如果所述第二起始地址信息中包括第二Die标识和第二Page标识,则确定所述第二Die标识对应的第二Die是否为地址顺序上的最后一个Die,如果所述第二Die为所述最后一个Die,则在所述第二Die中对应所述第二Page标识的第二Page中写入无效数据,如果所述第二Die不为所述最后一个Die,则在所述第二Die的第二Page以及所述第二Die之后的Die中与第二Page标识对应的Page中写入无效数据;
确定所述第二Page标识在标识顺序上的下一个Page标识,基于所述下一个Page标识,将所述DRAM中达到所述逻辑条带对应的数据量的数据,写入所述FLASH。
需要说明的是:上述实施例提供的存储数据的装置在存储数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的存储数据的装置与存储数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(CentralProcessing Units,CPU)501和一个或一个以上的存储器502,其中,所述存储器502中存储有至少一条指令,所述至少一条指令由所述处理器501加载并执行以实现上述各个方法实施例提供的方法。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成下述实施例中存储数据的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种存储数据的方法,其特征在于,所述方法包括:
获取第一数据存储请求;
将所述第一数据存储请求对应的待存储的第一数据存入DRAM中;
如果在所述第一数据存入所述DRAM之后的预设时长内未获取到其它数据存储请求或其他数据处理请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH;
确定上一次向所述FLASH中写入数据时数据所写入的Page中对应Page标识最大的至少一个Page存储的总数据量;
基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量、以及公式
Figure FDA0003948234060000011
对所述预设时长进行更新;
其中,T1为更新后的预设时长,T0为更新前的预设时长,m为单个逻辑条带的数据量,α为所述总数据量,x为所述DRAM中未写入FLASH的数据的数据量,p为预设的数值。
2.根据权利要求1所述的方法,其特征在于,所述如果在所述第一数据存入所述DRAM之后的预设时长内未获取到其它数据存储请求或其他数据处理请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH,包括:
在所述第一数据存入所述DRAM之后,在请求队列中没有其他数据处理请求或者没有其他数据存储请求,则开始计时;
如果在开始计时后的所述预设时长内,没有接收到其他数据处理请求或者没有接收到其他数据存储请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果在开始计时后的所述预设时长内,接收到其他数据处理请求或者接收到其他数据存储请求,则终止计时。
4.根据权利要求2所述的方法,其特征在于,在请求队列中没有其他数据处理请求或者没有其他数据存储请求,则开始计时,包括:
在请求队列中没有其他数据处理请求或者没有其他数据存储请求,且所述DRAM中未写入所述FLASH的数据的数据量没有达到一个逻辑条带的数据量,则开始计时。
5.根据权利要求1所述的方法,其特征在于,所述将所述DRAM中未写入FLASH的数据写入所述FLASH之后,所述方法还包括:
记录在所述FLASH中下一次写入数据的第一起始地址信息,其中,如果所述第一起始地址信息对应的第一Page位于预设Die,则所述第一起始地址信息包括所述第一Page标识,如果所述第一起始地址信息对应的第一Page不位于所述预设Die,则所述第一起始地址信息包括所述第一Page标识和所述第一Page位于的第一Die的第一Die标识。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果在所述第一数据存入所述DRAM之后的预设时长内获取到第二数据存储请求,且将所述第二数据存储请求对应的待存储的第二数据存入所述DRAM的过程中,所述DRAM中未写入FLASH的数据对应的数据量达到逻辑条带对应的数据量,则获取上一次向所述FLASH中写入数据之后记录的下一次写入数据的第二起始地址信息;
如果所述第二起始地址信息中包括第二Die标识和第二Page标识,则确定所述第二Die标识对应的第二Die是否为地址顺序上的最后一个Die,如果所述第二Die为所述最后一个Die,则在所述第二Die中对应所述第二Page标识的第二Page中写入无效数据,如果所述第二Die不为所述最后一个Die,则在所述第二Die的第二Page以及所述第二Die之后的Die中与第二Page标识对应的Page中写入无效数据;
确定所述第二Page标识在标识顺序上的下一个Page标识,基于所述下一个Page标识,将所述DRAM中达到所述逻辑条带对应的数据量的数据,写入所述FLASH。
7.一种存储数据的装置,其特征在于,所述装置包括:
获取模块,用于获取第一数据存储请求;
第一存储模块,用于将所述第一数据存储请求对应的待存储的第一数据存入DRAM中;
第二存储模块,用于如果在所述第一数据存入所述DRAM之后的预设时长内未获取到其它数据存储请求或数据处理请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH;
更新模块,用于确定上一次向所述FLASH中写入数据时数据所写入的Page中对应Page标识最大的至少一个Page存储的总数据量,基于所述总数据量以及所述DRAM中未写入FLASH的数据的数据量、以及公式
Figure FDA0003948234060000031
对所述预设时长进行更新;
其中,T1为更新后的预设时长,T0为更新前的预设时长,m为单个逻辑条带的数据量,α为所述总数据量,x为所述DRAM中未写入FLASH的数据的数据量,p为预设的数值。
8.根据权利要求7所述的装置,其特征在于,所述第二存储模块,用于:
在所述第一数据存入所述DRAM之后,在请求队列中没有其他数据处理请求或者没有其他数据存储请求,则开始计时;
如果在开始计时后的所述预设时长内,没有接收到其他数据处理请求或者没有接收到其他数据存储请求,则将所述DRAM中未写入FLASH的数据写入所述FLASH;
如果在开始计时后的所述预设时长内,接收到其他数据处理请求或者接收到其他数据存储请求,则终止计时;
所述第二存储模块,用于:
在请求队列中没有其他数据处理请求或者没有其他数据存储请求,且所述DRAM中未写入所述FLASH的数据的数据量没有达到一个逻辑条带的数据量,则开始计时。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括记录模块,用于:
记录在所述FLASH中下一次写入数据的第一起始地址信息,其中,如果所述第一起始地址信息对应的第一Page位于预设Die,则所述第一起始地址信息包括所述第一Page标识,如果所述第一起始地址信息对应的第一Page不位于所述预设Die,则所述第一起始地址信息包括所述第一Page标识和所述第一Page位于的第一Die的第一Die标识;
所述记录模块,还用于:
如果在所述第一数据存入所述DRAM之后的预设时长内获取到第二数据存储请求,且将所述第二数据存储请求对应的待存储的第二数据存入所述DRAM的过程中,所述DRAM中未写入FLASH的数据对应的数据量达到逻辑条带对应的数据量,则获取上一次向所述FLASH中写入数据之后记录的下一次写入数据的第二起始地址信息;
如果所述第二起始地址信息中包括第二Die标识和第二Page标识,则确定所述第二Die标识对应的第二Die是否为地址顺序上的最后一个Die,如果所述第二Die为所述最后一个Die,则在所述第二Die中对应所述第二Page标识的第二Page中写入无效数据,如果所述第二Die不为所述最后一个Die,则在所述第二Die的第二Page以及所述第二Die之后的Die中与第二Page标识对应的Page中写入无效数据;
确定所述第二Page标识在标识顺序上的下一个Page标识,基于所述下一个Page标识,将所述DRAM中达到所述逻辑条带对应的数据量的数据,写入所述FLASH。
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至权利要求6任一项所述的存储数据的方法所执行的操作。
CN202010832056.9A 2020-08-18 2020-08-18 存储数据的方法、装置、设备及存储介质 Active CN111966294B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010832056.9A CN111966294B (zh) 2020-08-18 2020-08-18 存储数据的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010832056.9A CN111966294B (zh) 2020-08-18 2020-08-18 存储数据的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111966294A CN111966294A (zh) 2020-11-20
CN111966294B true CN111966294B (zh) 2023-02-17

Family

ID=73389276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010832056.9A Active CN111966294B (zh) 2020-08-18 2020-08-18 存储数据的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111966294B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132591A (ja) * 2000-10-20 2002-05-10 Canon Inc メモリ制御装置およびメモリ制御方法
CN104793903A (zh) * 2015-04-20 2015-07-22 浪潮电子信息产业股份有限公司 一种基于io排序的视频数据写入方法、装置及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271737B2 (en) * 2009-05-27 2012-09-18 Spansion Llc Cache auto-flush in a solid state memory device
CN110688059A (zh) * 2018-07-06 2020-01-14 光宝电子(广州)有限公司 固态储存装置及其电源失效时的数据处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132591A (ja) * 2000-10-20 2002-05-10 Canon Inc メモリ制御装置およびメモリ制御方法
CN104793903A (zh) * 2015-04-20 2015-07-22 浪潮电子信息产业股份有限公司 一种基于io排序的视频数据写入方法、装置及系统

Also Published As

Publication number Publication date
CN111966294A (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
US11237769B2 (en) Memory system and method of controlling nonvolatile memory
CN113138713B (zh) 存储器系统
CN112148627B (zh) 针对分区命名空间的分区形成
US9645895B2 (en) Data storage device and flash memory control method
US8681552B2 (en) System and method for accessing and storing interleaved data
US8473672B2 (en) System and method for storing data using a flexible data format
CN109977034B (zh) 数据储存装置以及非挥发式存储器操作方法
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit
US10990325B2 (en) Write control method, associated data storage device and controller thereof
US20230297288A1 (en) Memory system and method of controlling nonvolatile memory and for reducing a buffer size
CN110727395A (zh) 闪存控制器、方法及存储装置
WO2006014748A1 (en) Method and device to improve usb flash write performance
US20230091792A1 (en) Memory system and method of controlling nonvolatile memory
CN106598504B (zh) 数据存储方法及装置
CN110908596A (zh) 数据存储装置、其操作方法和包括存储装置的存储系统
US20230273750A1 (en) Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command
US10055356B2 (en) Memory device and method for controlling memory device
CN113986773A (zh) 基于固态硬盘的写放大优化方法、装置及计算机设备
CN107203341A (zh) 基于闪存的数据存储方法、装置以及闪存芯片
CN111966294B (zh) 存储数据的方法、装置、设备及存储介质
US11182329B2 (en) Data processing system and operating method thereof
CN116048380A (zh) 藉助于预定命令来进行存储器装置的数据存取控制的方法及设备
US11269534B2 (en) Data storage device and non-volatile memory control method
CN112148203B (zh) 存储器管理方法、装置、电子设备及存储介质
CN110737405A (zh) 基于固态硬盘的wordline数据存储实现方法和装置

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