CN109144400B - 一种数据存储方法、装置及电子设备 - Google Patents

一种数据存储方法、装置及电子设备 Download PDF

Info

Publication number
CN109144400B
CN109144400B CN201710456543.8A CN201710456543A CN109144400B CN 109144400 B CN109144400 B CN 109144400B CN 201710456543 A CN201710456543 A CN 201710456543A CN 109144400 B CN109144400 B CN 109144400B
Authority
CN
China
Prior art keywords
data
storage unit
stored
storage
target
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
CN201710456543.8A
Other languages
English (en)
Other versions
CN109144400A (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 Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201710456543.8A priority Critical patent/CN109144400B/zh
Publication of CN109144400A publication Critical patent/CN109144400A/zh
Application granted granted Critical
Publication of CN109144400B publication Critical patent/CN109144400B/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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0674Disk device
    • G06F3/0676Magnetic disk device

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种数据存储方法、装置及电子设备。该电子设备包括至少一个硬盘,该硬盘包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据;其中,第一类存储单元中的各个存储单元均不同于第二类存储单元中的各个存储单元。该方法包括:接收待存储的用户数据,将所述用户数据存储至所述第一类存储单元中;获得待存储的非用户数据,将所述非用户数据存储至所述第二类存储单元中。应用本申请实施例提供的方案,能够减少存储数据时所耗费的时间。

Description

一种数据存储方法、装置及电子设备
技术领域
本申请涉及数据存储技术领域,特别是涉及一种数据存储方法、装置及电子设备。
背景技术
常见的固态硬盘(Solid State Drive,SSD)是用固态电子存储芯片阵列制成的硬盘,包括控制器和存储单元。每个存储单元包含多个块,每个块包含多个页。电子设备在向存储单元中存储数据时,通常以页为单位存储数据。
同时,电子设备在存储用户数据时,会不断产生逻辑地址与物理地址的映射(Logic to Physical,L2P)数据、系统数据(系统掉电次数、用户数据量等)等非用户数据。用户数据和非用户数据这两种数据均需要存储至硬盘的存储单元中。
例如,图1所述为一种固态硬盘(Nand Flash)的阵列结构示意图。图中的每个圆点表示一个存储单元,该SSD包含CH0~CH3四个通道以及CE0~CE7八个片选管脚,即CExCHn表示一个存储单元。
现有技术中,用户数据和非用户数据被分配在每个存储单元的不同块中,也就是说,每个存储单元既存储用户数据又存储非用户数据。在存储一种数据时,会操作到每个存储单元,例如,将该数据划分成若干小份,依次将每个小份存储在CE0CH0的第一个块的第一个页……CE0CH3的第一个块的第一个页、CE1CH0的第一个块的第一个页……CE1CH3的第一个块的第一个页……CE7CH3的第一个块的第一个页……依此循环,直至所有的小份数据均存储完毕。这样,在存储一种数据时就不能执行对另一种数据的存储,导致在同一时间段只能对一种数据进行存储。例如,在存储用户数据时,无法执行对非用户数据的存储,只能等待用户数据存储完毕之后,再存储非用户数据。可见,采用现有的数据存储方法存储数据时需要耗费较长的时间。
发明内容
本申请实施例的目的在于提供了一种数据存储方法、装置及电子设备,以减少存储数据时所耗费的时间。具体的技术方案如下。
为了达到上述目的,本申请实施例提供一种数据存储方法,应用于电子设备,所述电子设备包括至少一个硬盘,每个硬盘包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据;所述方法包括:
接收待存储的用户数据;
将所述用户数据存储至所述第一类存储单元中;
获得待存储的非用户数据;
将所述非用户数据存储至所述第二类存储单元中。
可选的,所述将所述用户数据存储至所述第一类存储单元中的步骤,包括:
将所述用户数据作为待存储数据,将所述第一类存储单元作为待存储单元,按照预设的数据存储规则,将所述待存储数据存储至所述待存储单元中;
所述将所述非用户数据存储至所述第二类存储单元中的步骤,包括:
将所述非用户数据作为待存储数据,将所述第二类存储单元作为待存储单元,按照预设的数据存储规则,将所述待存储数据存储至所述待存储单元中;
其中,所述按照预设的数据存储规则,将所述待存储数据存储至所述待存储单元中的步骤,包括:
按照预设的数据量划分单位,对所述待存储数据进行划分,获得各个单位数据;
获得所述待存储单元的末尾存储单元、末尾块中的末尾页;
将所述单位数据中的第一个单位数据作为目标数据,将所述末尾存储单元作为目标存储单元,将所述末尾块和末尾页分别作为目标块和目标页;
将所述目标数据存储至所述目标存储单元目标块的目标页中;
在所述单位数据不是最后一个单位数据的情况下,将所述单位数据中的下一个单位数据更新为目标数据,在所述目标存储单元不是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中所述目标存储单元的下一个存储单元更新为目标存储单元,在所述目标存储单元是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中的第一个存储单元更新为目标存储单元,按照预设的块和页更新规则更新所述目标块和目标页,返回执行所述将所述目标数据存储至所述目标存储单元目标块的目标页中的步骤;其中,所述块和页更新规则为:在目标页不是最后一个页的情况下,将目标页的下一个页更新为目标页,在目标页是最后一个页的情况下,将第一个页更新为目标页,将目标块的下一个块更新为目标块。
可选的,所述方法还包括:
确定所述第一类存储单元中待回收的第一存储单元;
对所述第一存储单元进行回收;
确定所述第二类存储单元中待回收的第二存储单元;
对所述第二存储单元进行回收。
可选的,所述获得待存储的非用户数据的步骤,包括:
判断当前生成的非用户数据的数据量是否大于预设数据量阈值;
如果是,则将当前生成的非用户数据确定为待存储的非用户数据。
可选的,所述第一类存储单元所在的通道不同;和/或,所述第二类存储单元所在的通道不同。
为了达到上述目的,本申请实施例提供一种数据存储装置,应用于电子设备,所述电子设备包括至少一个硬盘,每个硬盘包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据;所述装置包括:
接收模块,用于接收待存储的用户数据;
第一存储模块,用于将所述用户数据存储至所述第一类存储单元中;
获得模块,用于获得待存储的非用户数据;
第二存储模块,用于将所述非用户数据存储至所述第二类存储单元中。
可选的,所述第一存储模块,具体用于:
将所述用户数据作为待存储数据,将所述第一类存储单元作为待存储单元,触发存储模块将待存储数据存储至待存储单元中;
所述第二存储模块,具体用于:
将所述非用户数据作为待存储数据,将所述第二类存储单元作为待存储单元,触发存储模块将待存储数据存储至待存储单元中;
其中,所述存储模块,包括:
划分子模块,用于按照预设的数据量划分单位,对所述待存储数据进行划分,获得各个单位数据;
获得子模块,用于获得所述待存储单元的末尾存储单元、末尾块中的末尾页;
设置子模块,用于将所述单位数据中的第一个单位数据作为目标数据,将所述末尾存储单元作为目标存储单元,将所述末尾块和末尾页分别作为目标块和目标页;
存储子模块,用于将所述目标数据存储至所述目标存储单元目标块的目标页中;
更新子模块,用于在所述单位数据不是最后一个单位数据的情况下,将所述单位数据中的下一个单位数据更新为目标数据,在所述目标存储单元不是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中所述目标存储单元的下一个存储单元更新为目标存储单元,在所述目标存储单元是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中的第一个存储单元更新为目标存储单元,按照预设的块和页更新规则更新所述目标块和目标页,触发所述存储子模块;其中,所述块和页更新规则为:在目标页不是最后一个页的情况下,将目标页的下一个页更新为目标页,在目标页是最后一个页的情况下,将第一个页更新为目标页,将目标块的下一个块更新为目标块。
可选的,所述装置还包括:
第一确定模块,用于确定所述第一类存储单元中待回收的第一存储单元;
第一回收模块,用于对所述第一存储单元进行回收;
第二确定模块,用于确定所述第二类存储单元中待回收的第二存储单元;
第二回收模块,用于对所述第二存储单元进行回收。
可选的,所述获得模块,具体用于:
判断当前生成的非用户数据的数据量是否大于预设数据量阈值;如果是,则将当前生成的非用户数据确定为待存储的非用户数据。
为了达到上述目的,本申请实施例提供一种电子设备,包括处理器、通信接口、至少一个硬盘和通信总线,其中,处理器、通信接口和硬盘通过通信总线完成相互间的通信;
所述硬盘,用于存放计算机程序;所述硬盘包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据;
所述处理器,用于执行存储器上所存放的程序时,实现本申请实施例提供的数据存储方法。其中,该数据存储方法包括:
接收待存储的用户数据;
将所述用户数据存储至所述第一类存储单元中;
获得待存储的非用户数据;
将所述非用户数据存储至所述第二类存储单元中。
为了达到上述目的,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的数据存储方法。其中,该数据存储方法包括:
接收待存储的用户数据;
将所述用户数据存储至所述第一类存储单元中;
获得待存储的非用户数据;
将所述非用户数据存储至所述第二类存储单元中。
本申请实施例提供的数据存储方法、装置及电子设备,可以接收待存储的用户数据,将该用户数据存储至第一类存储单元中;获得待存储的非用户数据,将该非用户数据存储至第二类存储单元中。其中,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据。
也就是说,本申请实施例将电子设备硬盘中的存储单元分成两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据。这样,在存储用户数据的同时也能存储非用户数据,或者在存储非用户数据的同时也能存储用户数据,两者互不影响,无需等待一种数据存储完成再存储另一种数据。因此,应用本申请实施例提供的方案,能够减少存储数据时所耗费的时间。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种固态硬盘(Nand Flash)的阵列结构示意图;
图2为本申请实施例提供的数据存储方法的一种流程示意图;
图3为固态硬盘内部的两类存储单元的阵列划分示意图;
图4为本申请实施例提供的将待存储数据存储至待存储单元中的一种流程示意图;
图5为本申请实施例提供的数据存储装置的一种结构示意图;
图6为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据存储方法、装置及电子设备,能够减少存储数据时所耗费的时间。下面通过具体实施例,对本申请进行详细说明。
图2为本申请实施例提供的数据存储方法的一种流程示意图,该方法应用于电子设备,该电子设备可以为智能手机、平板电脑、笔记本电脑等便携式设备,也可以为普通计算机、服务器等设备。
在本实施例中,电子设备包括至少一个硬盘,每个硬盘包括多个存储单元,这多个存储单元可以分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据。其中,第一类存储单元中的各个存储单元可以均不同于第二类存储单元中的各个存储单元。在不影响相互独立存储数据的情况下,第一类存储单元和第二类存储单元中的存储单元可以有少量重叠。
上述硬盘可以理解为固态硬盘(Solid State Drive,SSD)。SSD是用固态电子存储芯片阵列制成的硬盘,通常包括控制器和存储单元。控制器用于将接收的用户数据分配至对应的存储单元。存储单元用于存储用户数据和其他非用户数据。例如,存储单元可以为闪存芯片(Nand flash)。其中,每个存储单元内部包含多个块,每个块包含多个页。上述硬盘还可以包括缓存,缓存可以由动态随机存取存储芯片(Dynamic Random Access Memory,DRAM)实现。电子设备在向存储单元中存储数据时,通常以页为单位存储数据。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致,被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。
具体的,本实施例的数据存储方法可以是由控制器执行的。例如,在图1所示固态硬盘的结构示意图中,控制器可以通过选择不同的通道(Channel,CH)和不同的片选管脚(Chip Enable,CE),将数据存储至对应的存储单元。其中,当片选管脚为低电平时为选中状态,可以进行读写操作。
第一类存储单元中包含的存储单元的数量可以根据预设的硬盘的存储容量和单个存储单元的容量确定。第二类存储单元中包含的各个存储单元的数量可以根据预设的硬盘的存储容量、单个存储单元的容量、单个页的容量以及单个页对应的非用户数据量确定。由于非用户数据包括逻辑地址与物理地址的映射(Logic to Physical,L2P)数据和系统数据等,其中,L2P数据为主要的非用户数据,因此可以根据预设的硬盘的存储容量、单个存储单元的容量、单个页的容量以及单个页对应的L2P数据量确定第二类存储单元中包含的各个存储单元的总容量。第二类存储单元的容量可以根据第一类存储单元的容量来调整或选择。
由于第一类存储单元中单个存储单元的容量可以不同于第二类存储单元中单个存储单元的容量,因此SSD的容量组合可以更加的灵活。并且,第二类存储单元包含的存储单元的多少可以根据需要选择得更精确,因此这样也能够降低SSD的成本。
例如,已知预定SSD的存储容量为256GB,第一类存储单元中单个闪存的容量为16GB,则可以确定该SSD中的第一类存储单元大概包括(256GB/16GB=16)个闪存。已知第一类存储单元中单个页的容量为4kB,那么该SSD共包含(256GB/4kB=64M)个页,已知单个页中存储的L2P数据量为4B,则可以确定该SSD中的可能产生的L2P数据总量为:64M*4B=256MB。如果第二类存储单元中单个闪存的容量为64MB,则可以确定该SSD的第二类存储单元中至少需要(256MB/64MB=4)个闪存。当然,也可以直接选择更大容量的闪存作为第二类存储单元,或选择与第一类存储单元中单个闪存容量相同的闪存作为第二类存储单元中的闪存,例如选择8GB或16GB的闪存作为第二类存储单元中的闪存。
具体的,上述数据存储方法包括如下步骤:
步骤S201:接收待存储的用户数据。
具体的,作为执行主体的电子设备在接收待存储的用户数据时,可以是接收其他电子设备发送的待存储的用户数据,也可以是接收用户输入的待存储的用户数据。
步骤S202:将上述用户数据存储至第一类存储单元中。
具体的,在将上述用户数据存储至第一类存储单元中时,可以采用多种存储方式,例如,可以将用户数据均匀地存储至第一类存储单元的各个存储单元中,也可以将用户数据存储至第一类存储单元中指定的存储单元中,本实施例不做具体限定。可以理解的是,由于各个存储单元之间都是独立存在的,因此不管采用哪种存储方式,都不会影响到第二类存储单元。
步骤S203:获得待存储的非用户数据。
其中,非用户数据包括L2P数据、系统数据等。系统数据包括所存储的用户数据量、系统掉电次数等。
具体的,在存储用户数据时,会不断生成L2P数据等非用户数据。为了提高数据存储的效率,作为一种具体实施方式,获得待存储的非用户数据的步骤,可以包括:
判断当前生成的非用户数据的数据量是否大于预设数据量阈值,如果是,则将当前生成的非用户数据确定为待存储的非用户数据;如果否,则不予处理。
其中,预设数据量阈值可以为默认值。
具体的,上述不断生成的非用户数据可以暂时存储在硬盘的缓存中。当缓存中的非用户数据的数据量大于预设数量阈值时,将这部分非用户数据确定为待存储的非用户数据,并存储至硬盘的第二类存储单元中。
另外,当长时间没有存储用户数据,即没有生成L2P数据时,也可以直接将缓存中的非用户数据确定为待存储的非用户数据,将该非用户数据存储至硬盘的第二类存储单元中。
步骤S204:将上述非用户数据存储至第二类存储单元中。
具体的,将上述非用户数据存储至第二类存储单元中时,可以采用多种存储方式,例如,可以将非用户数据均匀地存储至第二类存储单元的各个存储单元中,也可以将非用户数据存储至第二类存储单元中指定的存储单元中,本实施例不做具体限定。可以理解的是,由于各个存储单元之间都是独立存在的,因此不管采用哪种存储方式,都不会影响到第一类存储单元。
需要说明的是,上述步骤S201和步骤S203的执行过程没有先后顺序之分。
如果在将上述用户数据存储至第一类存储单元的过程中,获得了待存储的非用户数据,则可以直接将该非用户数据存储至第二类存储单元中,无需等待上述用户数据存储至第一类存储单元的过程执行完毕。可见,这样能够节省存储数据所耗费的时间。
如果在将上述非用户数据存储至第二类存储单元的过程中,接收到新的待存储的用户数据,则可以直接将新的待存储的用户数据存储至第一类存储单元中,无需等待上述非用户数据存储至第二类存储单元的过程执行完毕。可见,这样能够节省存储数据所耗费的时间。
由上述内容可知,本实施例将电子设备硬盘中的存储单元分成两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据。这样,在存储用户数据的同时也能存储非用户数据,或者在存储非用户数据的同时也能存储用户数据,两者互不影响,无需等待一种数据存储完成再存储另一种数据。因此,应用本实施例提供的方案,能够减少存储数据时所耗费的时间。
作为一种具体的实施方式,第一类存储单元所在的通道可以是不同的;和/或,第二类存储单元所在的通道可以是不同的。
也就是说,在对硬盘内部的存储单元进行划分时,为了提高数据存储的效率,可以令第一类存储单元包含至少两个通道上的存储单元;和/或,令第二类存储单元包含至少两个通道上的存储单元。具体的,为了进一步提高数据读写速度,第一类存储单元和/或第二类存储单元可以选用至少分布于四通道上的存储单元。
作为一个例子,图3中给出了固态硬盘内部的两类存储单元的阵列划分示意图。其中,该SSD包括CE0~CE7八个片选管脚,包含CH0~CH3四个通道,因此可知该SSD包含4*8=32个存储单元,即每个圆点表示一个存储单元。其中,CE0~CE6下面的圆点为第一类存储单元,CE7下面的圆点为第二类存储单元。当然,也可以根据需要的SSD的容量,从CE0~CE6下面的圆点中选择需要的第一类存储单元,从CE7下面的圆点中选择需要的第二类存储单元,选择时尽可能多地选择不同通道的存储单元,例如,如果需要4个第一类存储单元,那么可以将CE0CH0、CE0CH1、CE0CH2、CE0CH3作为第一类存储单元;如果需要2个第二类存储单元,那么可以将CE7CH0、CE7CH1作为第二类存储单元。
可以理解的是,将用户数据划分成多个小份,将一份数据存储至第一类存储单元中的过程需要耗费一定的时间,该时间主要是等待固态硬盘(Nand Flash)编程的时间。如果第一类存储单元所在的通道不同,在将一份数据存储至一个通道上的存储单元时,紧接着可以将另一份数据存储至另一个通道的存储单元中,这样为第一通道上的存储单元存储数据留出了时间,也无需等待第一个通道上的存储单元完成数据的存储过程,能够进一步节省数据存储时所耗费的时间,提高数据存储的效率。
可以理解的是,将非用户数据划分成多个小份,将一份数据存储至第二类存储单元中的过程需要耗费一定的时间。如果第二类存储单元所在的通道不同,在将一份数据存储至一个通道上的存储单元时,紧接着可以将另一份数据存储至另一个通道的存储单元中,这样为第一通道上的存储单元存储数据留出了时间,也无需等待第一个通道上的存储单元完成数据的存储过程,能够进一步节省数据存储时所耗费的时间,提高数据存储的效率。
在图2所示实施例的一种具体实施方式中,步骤S202,将上述用户数据存储至第一类存储单元中的步骤,可以包括:
将上述用户数据作为待存储数据,将上述第一类存储单元作为待存储单元,按照预设的数据存储规则,将上述待存储数据存储至上述待存储单元中。
步骤S204,将上述非用户数据存储至第二类存储单元中的步骤,可以包括:
将上述非用户数据作为待存储数据,将上述第二类存储单元作为待存储单元,按照预设的数据存储规则,将上述待存储数据存储至上述待存储单元中。
其中,上述按照预设的数据存储规则,将待存储数据存储至待存储单元中的步骤可以按照图4所示流程示意图进行,具体包括步骤S401~步骤S405:
步骤S401:按照预设的数据量划分单位,对待存储数据进行划分,获得各个单位数据。
其中,预设的数据量划分单位可以为存储单元中页的存储容量。例如,当页的容量为4kB时,数据量划分单位可以为4kB。当页的容量为8kB时,数据量划分单位可以为8kB。
对待存储数据进行划分,获得各个单位数据,可以理解为将待存储数据划分为各个小份数据。
步骤S402:获得待存储单元的末尾存储单元、末尾块中的末尾页。
具体的,可以从保存的末尾存储位置中获得待存储单元的末尾存储单元、末尾块中的末尾页。
步骤S403:将上述单位数据中的第一个单位数据作为目标数据,将上述末尾存储单元作为目标存储单元,将上述末尾块和末尾页分别作为目标块和目标页。
步骤S404:将上述目标数据存储至上述目标存储单元目标块的目标页中。
步骤S405:在上述单位数据不是最后一个单位数据的情况下,将上述单位数据中的下一个单位数据更新为目标数据,在上述目标存储单元不是待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将上述待存储单元中目标存储单元的下一个存储单元更新为目标存储单元,在目标存储单元是待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将待存储单元中的第一个存储单元更新为目标存储单元,按照预设的块和页更新规则更新上述目标块和目标页,返回执行所述步骤404。
其中,上述存储单元排列顺序可以为:按照片选管脚序号的大小顺序排列各个存储单元,具有相同片选管脚序号的存储单元按照通道序号的大小顺序进行排列。
例如,以图3所示硬盘结构为例,上述待存储单元中各个存储单元的排列顺序可以为以下顺序:
CE0CH0,CE0CH1,CE0CH2,CE0CH3,
CE1CH0,CE1CH1,CE1CH2,CE1CH3,
CE2CH0,CE2CH1,CE2CH2,CE2CH3,
……
CE6CH0,CE6CH1,CE6CH2,CE6CH3。
其中,在CExCHn中,CEx为片选管脚序号,CHn为通道序号。并且,上述CE0CH0为该待存储单元中的第一个存储单元,CE6CH3为该待存储单元中的最后一个存储单元。
上述块和页更新规则为:在目标页不是最后一个页的情况下,将目标页的下一个页更新为目标页,在目标页是最后一个页的情况下,将第一个页更新为目标页,将目标块的下一个块更新为目标块。
例如,已知存储单元中包括1024个块,每个块中包括128个页,使用Blockx和Pagex分别表示块序号和页序号。已知末尾块和末尾页分别为Block1和Page2,则上述块和页的更新可以按照以下顺序进行:
Block1-Page2,Block1-Page3,Block1-Page4,……,Block1-Page127(最后一个页),Block2-Page0,Block2-Page1,Block2-Page2,……,Block2-Page127(最后一个页),Block3-Page0,Block3-Page1,Block3-Page2,……,Block3-Page127,……
下面结合具体实例说明上述将待存储数据存储至待存储单元中的过程。仍以图4所示实施例为例,待存储数据为用户数据,第一类存储单元包括CE0~CE6下面的圆点对应的存储单元。已知末尾存储单元、末尾块中的末尾页分别为:CE2CH1-Block1-Page2。接下来将用户数据切分成若干单位数据,将各个单位数据依次存储至以下位置:
CE2CH1-Block1-Page2,CE2CH2-Block1-Page2,CE2CH3-Block1-Page2,
CE3CH0-Block1-Page2,CE3CH1-Block1-Page2,CE3CH2-Block1-Page2,
CE3CH3-Block1-Page2,……,CE6CH2-Block1-Page2,
CE6CH3-Block1-Page2(此存储单元为最后一个存储单元),
CE0CH0-Block1-Page3,CE0CH1-Block1-Page3,CE0CH2-Block1-Page3,
CE0CH3-Block1-Page3,CE1CH0-Block1-Page3,CE1CH2-Block1-Page3,
……,CE6CH3-Block1-Page3(此存储单元为最后一个存储单元),
CE0CH0-Block1-Page4,CE0CH1-Block1-Page4,CE0CH2-Block1-Page4,
CE0CH3-Block1-Page4,CE1CH0-Block1-Page4,CE1CH2-Block1-Page4,
……,CE6CH3-Block1-Page4(此存储单元为最后一个存储单元),……
直至将所有的单位数据存储完毕。
当待存储数据为非用户数据时,其存储方式相同,不再举例。
可见,本实施例可以将用户数据分别存储至第一类存储单元各个存储单元的块和页中,在存储中只需操作到第一类存储单元的各个存储单元,不会操作到第二类存储单元的各个存储单元,不影响非用户数据的存储。本实施例也可以将非用户数据存储至第二类存储单元各个存储单元的块和页中,在存储中只需操作到第二类存储单元的各个存储单元,不会操作到第一类存储单元的各个存储单元,不影响用户数据的存储。可见,本实施例提供的数据存储方法能够减少数据存储时所消耗的时间,提高存储效率。
在图2所示实施例的一种实施方式中,所述方法还可以包括以下步骤1和步骤2:
步骤1:确定第一类存储单元中待回收的第一存储单元,对第一存储单元进行回收。
需要说明的是,存储单元在写入时以页为单位,在擦除时以块为单位。
可以理解的是,随着SSD存储单元的不断使用,一些数据可能会被用户覆盖写入或删除,这样会导致一些块中的数据无效或老化。当块中的无效或老化数据增加到一定值时,该块就被标记为垃圾回收块。存储单元中未存储数据的块可以称为空闲块。随着数据的不断存储,存储单元中的空闲块会越来越少。
具体的,确定第一类存储单元中待回收的第一存储单元时,可以判断第一类存储单元的各个存储单元是否满足预设的回收条件,如果是,则将满足上述回收条件的存储单元确定为待回收的第一存储单元。
其中,预设的回收条件可以为以下情况中的至少一种:被标记为垃圾回收块的块数量大于预设第一数量阈值;空闲块的数量小于预设第二数量阈值。第一数量阈值大于第二数量阈值。第一数量阈值可以为存储单元中总的块数量的1/2~3/4,第二数量阈值可以为3~10或其他值。
可以理解的是,由于在存储数据时,第一类存储单元中各个存储单元之间块的存储情况是相同的,因此当判定第一类存储单元中的存储单元满足预设的回收条件时,认为第一类存储单元中的所有存储单元均满足预设的回收条件,将第一类存储单元中的所有存储单元均确定为待回收的第一存储单元。
具体的,对第一存储单元进行回收时,可以从第一存储单元中选择目标垃圾回收块,将目标垃圾回收块上的有用数据复制到该第一存储单元中的可用块上,然后擦除目标垃圾回收块的所有数据,获得空闲块,这样即完成对第一存储单元的回收。其中,可用块为第一存储单元中被用于回收处理的块。
步骤2:确定第二类存储单元中待回收的第二存储单元,对第二存储单元进行回收。
具体的,确定第二类存储单元中待回收的第二存储单元时,可以判断第二类存储单元的各个存储单元是否满足预设的回收条件,如果是,则将满足上述回收条件的存储单元确定为待回收的第二存储单元。
其中,预设的回收条件可以为以下情况中的至少一种:被标记为垃圾回收块的块数量大于预设第一数量阈值;空闲块的数量小于预设第二数量阈值。第一数量阈值大于第二数量阈值。第一数量阈值可以为存储单元中总的块数量的1/2~3/4,第二数量阈值可以为3~10或其他值。
可以理解的是,由于在存储数据时,第二类存储单元中各个存储单元之间块的存储情况是相同的,因此当判定第二类存储单元中的存储单元满足预设的回收条件时,认为第二类存储单元中的所有存储单元均满足预设的回收条件,将第二类存储单元中的所有存储单元均确定为待回收的第二存储单元。
具体的,对第二存储单元进行回收时,可以从第二存储单元中选择目标垃圾回收块,将目标垃圾回收块上的有用数据复制到该第二存储单元中的可用块上,然后擦除目标垃圾回收块的所有数据,获得空闲块,这样即完成对第二存储单元的回收。其中,可用块为第二存储单元中被用于回收处理的块。
需要说明的是,本实施例对上述步骤1和步骤2的执行顺序不做限定。
可见,本实施例可以对第一类存储单元和第二类存储单元分别独立地进行块回收,在回收时本类存储单元无法执行数据存储的操作,但是不会影响向另一类存储单元中存储数据的过程。因此本实施例能够进一步减少数据存储时所耗费的时间,提高存储效率。
图5为本申请实施例提供的数据存储装置的一种结构示意图,应用于电子设备。该电子设备包括至少一个硬盘,每个硬盘包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据。其中,所述第一类存储单元中的各个存储单元可以均不同于所述第二类存储单元中的各个存储单元,也可以有少量的重叠部分。该装置实施例与图2所示方法实施例相对应。本实施例中的数据存储装置包括:
接收模块501,用于接收待存储的用户数据;
第一存储模块502,用于将所述用户数据存储至所述第一类存储单元中;
获得模块503,用于获得待存储的非用户数据;
第二存储模块504,用于将所述非用户数据存储至所述第二类存储单元中。
在图5所示实施例的一种实施方式中,第一存储模块502具体可以用于:
将所述用户数据作为待存储数据,将所述第一类存储单元作为待存储单元,触发存储模块将待存储数据存储至待存储单元中;
第二存储模块504,具体可以用于:
将所述非用户数据作为待存储数据,将所述第二类存储单元作为待存储单元,触发存储模块将待存储数据存储至待存储单元中;
其中,所述存储模块(图中未示出),包括:
划分子模块(图中未示出),用于按照预设的数据量划分单位,对所述待存储数据进行划分,获得各个单位数据;
获得子模块(图中未示出),用于获得所述待存储单元的末尾存储单元、末尾块中的末尾页;
设置子模块(图中未示出),用于将所述单位数据中的第一个单位数据作为目标数据,将所述末尾存储单元作为目标存储单元,将所述末尾块和末尾页分别作为目标块和目标页;
存储子模块(图中未示出),用于将所述目标数据存储至所述目标存储单元目标块的目标页中;
更新子模块(图中未示出),用于在所述单位数据不是最后一个单位数据的情况下,将所述单位数据中的下一个单位数据更新为目标数据,在所述目标存储单元不是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中所述目标存储单元的下一个存储单元更新为目标存储单元,在所述目标存储单元是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中的第一个存储单元更新为目标存储单元,按照预设的块和页更新规则更新所述目标块和目标页,触发所述存储子模块;其中,所述块和页更新规则为:在目标页不是最后一个页的情况下,将目标页的下一个页更新为目标页,在目标页是最后一个页的情况下,将第一个页更新为目标页,将目标块的下一个块更新为目标块。
在图5所示实施例的一种实施方式中,所述装置还可以包括:
第一确定模块(图中未示出),用于确定所述第一类存储单元中待回收的第一存储单元;
第一回收模块(图中未示出),用于对所述第一存储单元进行回收;
第二确定模块(图中未示出),用于确定所述第二类存储单元中待回收的第二存储单元;
第二回收模块(图中未示出),用于对所述第二存储单元进行回收。
在图5所示实施例的一种实施方式中,所述获得模块503具体可以用于:
判断当前生成的非用户数据的数据量是否大于预设数据量阈值;如果是,则将当前生成的非用户数据确定为待存储的非用户数据。
在图5所示实施例的一种实施方式中,所述第一类存储单元所在的通道不同;和/或,所述第二类存储单元所在的通道不同。
由于上述装置实施例是基于方法实施例得到的,与该方法具有相同的技术效果,因此装置实施例的技术效果在此不再赘述。对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
图6为本申请实施例提供的电子设备的一种结构示意图,该电子设备包括处理器601、通信接口602、至少一个硬盘603和通信总线604。其中,处理器601,通信接口602,硬盘603通过通信总线完成相互间的通信;
硬盘603,用于存放计算机程序,硬盘还包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据。
处理器601,用于执行硬盘603上所存放的程序时,实现本申请实施例提供的数据存储方法。具体的,该数据存储方法包括:
接收待存储的用户数据;
将所述用户数据存储至所述第一类存储单元中;
获得待存储的非用户数据;
将所述非用户数据存储至所述第二类存储单元中。
其中,上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
硬盘可以为随机存取存储器(Random Access Memory,RAM)、非易失性存储器(Non-Volatile Memory,NVM)或非易失性闪存(Nand Flash)。可选的,硬盘还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可见,本实施例将电子设备硬盘中的存储单元分成两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据。这样,在存储用户数据的同时也能存储非用户数据,或者在存储非用户数据的同时也能存储用户数据,两者互不影响,无需等待一种数据存储完成再存储另一种数据。因此,应用本实施例提供的方案,能够减少存储数据时所耗费的时间。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的数据存储方法。具体的,该数据存储方法包括:
接收待存储的用户数据;
将所述用户数据存储至所述第一类存储单元中;
获得待存储的非用户数据;
将所述非用户数据存储至所述第二类存储单元中。
可见,本实施例将电子设备硬盘中的存储单元分成两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据。这样,在存储用户数据的同时也能存储非用户数据,或者在存储非用户数据的同时也能存储用户数据,两者互不影响,无需等待一种数据存储完成再存储另一种数据。因此,应用本实施例提供的方案,能够减少存储数据时所耗费的时间。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (9)

1.一种数据存储方法,应用于电子设备,其特征在于,所述电子设备包括至少一个硬盘,每个硬盘包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据;所述方法包括:
接收待存储的用户数据;
将所述用户数据作为待存储数据,将所述第一类存储单元作为待存储单元,按照预设的数据存储规则,将所述待存储数据存储至所述待存储单元中;
获得待存储的非用户数据;
将所述非用户数据作为待存储数据,将所述第二类存储单元作为待存储单元,按照预设的数据存储规则,将所述待存储数据存储至所述待存储单元中;
其中,所述按照预设的数据存储规则,将所述待存储数据存储至所述待存储单元中的步骤,包括:
按照预设的数据量划分单位,对所述待存储数据进行划分,获得各个单位数据;
获得所述待存储单元的末尾存储单元、末尾块中的末尾页;
将所述单位数据中的第一个单位数据作为目标数据,将所述末尾存储单元作为目标存储单元,将所述末尾块和末尾页分别作为目标块和目标页;
将所述目标数据存储至所述目标存储单元目标块的目标页中;
在所述单位数据不是最后一个单位数据的情况下,将所述单位数据中的下一个单位数据更新为目标数据;和/或
在所述目标存储单元不是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中所述目标存储单元的下一个存储单元更新为目标存储单元;和/或
在所述目标存储单元是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中的第一个存储单元更新为目标存储单元,按照预设的块和页更新规则更新所述目标块和目标页,返回执行所述将所述目标数据存储至所述目标存储单元目标块的目标页中的步骤;其中,所述块和页更新规则为:在目标页不是最后一个页的情况下,将目标页的下一个页更新为目标页,在目标页是最后一个页的情况下,将第一个页更新为目标页,将目标块的下一个块更新为目标块。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述第一类存储单元中待回收的第一存储单元;
对所述第一存储单元进行回收;
确定所述第二类存储单元中待回收的第二存储单元;
对所述第二存储单元进行回收。
3.根据权利要求1所述的方法,其特征在于,所述获得待存储的非用户数据的步骤,包括:
判断当前生成的非用户数据的数据量是否大于预设数据量阈值;
如果是,则将当前生成的非用户数据确定为待存储的非用户数据。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述第一类存储单元所在的通道不同;和/或,所述第二类存储单元所在的通道不同。
5.一种数据存储装置,应用于电子设备,其特征在于,所述电子设备包括至少一个硬盘,每个硬盘包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据;所述装置包括:
接收模块,用于接收待存储的用户数据;
第一存储模块,用于将所述用户数据作为待存储数据,将所述第一类存储单元作为待存储单元,触发存储模块将待存储数据存储至待存储单元中;
获得模块,用于获得待存储的非用户数据;
第二存储模块,用于将所述非用户数据作为待存储数据,将所述第二类存储单元作为待存储单元,触发存储模块将待存储数据存储至待存储单元中;
其中,存储模块,包括:
划分子模块,用于按照预设的数据量划分单位,对所述待存储数据进行划分,获得各个单位数据;
获得子模块,用于获得所述待存储单元的末尾存储单元、末尾块中的末尾页;
设置子模块,用于将所述单位数据中的第一个单位数据作为目标数据,将所述末尾存储单元作为目标存储单元,将所述末尾块和末尾页分别作为目标块和目标页;
存储子模块,用于将所述目标数据存储至所述目标存储单元目标块的目标页中;
更新子模块,用于在所述单位数据不是最后一个单位数据的情况下,将所述单位数据中的下一个单位数据更新为目标数据;和/或
在所述目标存储单元不是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中所述目标存储单元的下一个存储单元更新为目标存储单元;和/或
在所述目标存储单元是所述待存储单元的最后一个存储单元的情况下,按照预设的存储单元排列顺序,将所述待存储单元中的第一个存储单元更新为目标存储单元,按照预设的块和页更新规则更新所述目标块和目标页,触发所述存储子模块;其中,所述块和页更新规则为:在目标页不是最后一个页的情况下,将目标页的下一个页更新为目标页,在目标页是最后一个页的情况下,将第一个页更新为目标页,将目标块的下一个块更新为目标块。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于确定所述第一类存储单元中待回收的第一存储单元;
第一回收模块,用于对所述第一存储单元进行回收;
第二确定模块,用于确定所述第二类存储单元中待回收的第二存储单元;
第二回收模块,用于对所述第二存储单元进行回收。
7.根据权利要求5~6任一项所述的装置,其特征在于,所述获得模块,具体用于:
判断当前生成的非用户数据的数据量是否大于预设数据量阈值;如果是,则将当前生成的非用户数据确定为待存储的非用户数据。
8.一种电子设备,其特征在于,包括处理器、通信接口、至少一个硬盘和通信总线,其中,处理器、通信接口和硬盘通过通信总线完成相互间的通信;
所述硬盘,用于存放计算机程序;所述硬盘包括多个存储单元,所述多个存储单元分为两类存储单元,第一类存储单元用于存储用户数据,第二类存储单元用于存储非用户数据;
所述处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一项所述的方法。
CN201710456543.8A 2017-06-16 2017-06-16 一种数据存储方法、装置及电子设备 Active CN109144400B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710456543.8A CN109144400B (zh) 2017-06-16 2017-06-16 一种数据存储方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710456543.8A CN109144400B (zh) 2017-06-16 2017-06-16 一种数据存储方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN109144400A CN109144400A (zh) 2019-01-04
CN109144400B true CN109144400B (zh) 2021-07-23

Family

ID=64830347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710456543.8A Active CN109144400B (zh) 2017-06-16 2017-06-16 一种数据存储方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109144400B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831701A (zh) * 2005-03-11 2006-09-13 北京共创开源软件有限公司 一种基于虚拟文件系统的操作系统保护方法
CN101271393A (zh) * 2008-01-22 2008-09-24 孙国仲 便携式固态存储器
CN104731672B (zh) * 2013-12-24 2018-06-26 华为技术有限公司 数据存储的方法及设备
CN105989392A (zh) * 2015-02-13 2016-10-05 中国科学院信息工程研究所 一种移动存储系统、其存取控制方法及其制造方法

Also Published As

Publication number Publication date
CN109144400A (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
US9846643B2 (en) Methods for maintaining a storage mapping table and apparatuses using the same
US11030094B2 (en) Apparatus and method for performing garbage collection by predicting required time
US9396107B2 (en) Memory system having memory controller with cache memory and NVRAM and method of operating same
US10168940B2 (en) Data storage using SLC and TLC memory banks and data maintenance method thereof
US20180307496A1 (en) Methods for gc (garbage collection) por (power off recovery) and apparatuses using the same
KR101811297B1 (ko) 불휘발성 메모리를 제어하는 메모리 컨트롤러
US20200233610A1 (en) Data storage device and method for accessing logical-to-physical mapping table thereof
US20200356491A1 (en) Data storage device and method for loading logical-to-physical mapping table thereof
US10810060B2 (en) Event management for embedded systems
US10168951B2 (en) Methods for accessing data in a circular block mode and apparatuses using the same
US11960396B2 (en) Method and computer program product for performing data writes into a flash memory
US10719263B2 (en) Method of handling page fault in nonvolatile main memory system
US20180275914A1 (en) Methods for garbage collection and apparatuses using the same
US9852068B2 (en) Method and apparatus for flash memory storage mapping table maintenance via DRAM transfer
US10776280B1 (en) Data storage device and method for updating logical-to-physical mapping table
CN115905050A (zh) 闪存保护方法、装置、电子设备及存储介质
US20130138910A1 (en) Information Processing Apparatus and Write Control Method
CN109144400B (zh) 一种数据存储方法、装置及电子设备
CN109144399B (zh) 一种数据存储方法、装置及电子设备
US8209475B2 (en) Write timeout control methods for flash memory and memory devices using the same
KR20200014175A (ko) 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치
CN113253939A (zh) 数据处理方法、装置、电子设备及存储介质
US9652378B2 (en) Writing method, memory controller and memory storage device
US9836242B2 (en) Methods for dynamic partitioning and apparatuses using the same
US20240256465A1 (en) Method of handling trim command in flash memory and related memory controller and storage system thereof

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