CN117472295B - 一种存储器、数据处理方法、设备及介质 - Google Patents
一种存储器、数据处理方法、设备及介质 Download PDFInfo
- Publication number
- CN117472295B CN117472295B CN202311823372.XA CN202311823372A CN117472295B CN 117472295 B CN117472295 B CN 117472295B CN 202311823372 A CN202311823372 A CN 202311823372A CN 117472295 B CN117472295 B CN 117472295B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- block
- storage
- current
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000004891 communication Methods 0.000 claims abstract description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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]
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)
- Read Only Memory (AREA)
Abstract
本发明提供了一种存储器、数据处理方法、电子设备及介质,存储器包括:闪存块,其内设有多个存储块,所述存储块包括当前存储块与目标存储块;固件闪存块,通信连接于所述闪存块,用以存储固件;以及主控器,通信连接于所述闪存块、所述固件闪存块以及主机,用以根据所述主机的写入顺序,获取不同的主机数据;所述固件用以获取所述当前存储块中不同存储页的信息,将所述主机数据与所述当前存储块的存储页内的有效数据进行整合,以按照顺序写入到所述目标存储块的存储页中。通过本发明提供的一种存储器、数据处理方法、电子设备及介质,能够缓解写入速度出现波动的情况。
Description
技术领域
本发明涉及存储领域,特别涉及一种存储器、数据处理方法、电子设备及介质。
背景技术
存储器的存储介质为闪存块(NAND flash)。闪存块由多个存储块(Block)组成,每一个存储块又由多个存储页(Page)组成。存储页是读取和写入的基本单位,存储块是擦除的基本单元。
随机写指的是主机写入的逻辑区块地址(Logical Block Address,LBA)随机。在存储器进行随机写的过程中,如果空闲存储块比较少,就需要做垃圾回收,将有效数据搬移到一起,释放出新的存储块,并对存储块进行擦除处理后,再进行写入处理。对于不同存储器而言,发生垃圾回收的过程有差异,导致容易出现写入速度波动的情况。因此,存在待改进之处。
发明内容
本发明的目的在于提供一种存储器、数据处理方法、电子设备及介质,以缓解写入速度出现波动的情况。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供了一种存储器,包括:
闪存块,其内设有多个存储块,所述存储块包括当前存储块与目标存储块;
固件闪存块,通信连接于所述闪存块,用以存储固件;以及
主控器,通信连接于所述闪存块、所述固件闪存块以及主机,用以根据所述主机的写入顺序,获取不同的主机数据;
所述固件用以获取所述当前存储块中不同存储页的信息,将所述主机数据与所述当前存储块的存储页内的有效数据进行整合,以按照顺序写入到所述目标存储块的存储页中。
在本发明一实施例中,所述固件还用以根据所述当前存储块与预设启动条件的比较结果,以使存储器进入随机写满盘状态,其中,所述当前存储块表示为存储有有效数据的存储块。
在本发明一实施例中,所述预设启动条件表示为:所述当前存储块中有效数据的数据量小于全部数据量的一半,同时,所述主机数据的数据量小于存储页的存储量且连续写超过一个所述存储块。
在本发明一实施例中,所述固件用以根据所述主机数据的数据大小,依次读取所述当前存储块的存储页中的有效数据,将所述主机数据与相应的有效数据进行整合,形成完整存储页的目标主机数据,以将其写入到所述目标存储块的存储页中。
在本发明一实施例中,所述固件还用以依次将其余主机数据与所述当前存储块的存储页中的有效数据进行整合,形成相应的所述目标主机数据,并将所述目标主机数据按照顺序写入到所述目标存储块的存储页中。
在本发明一实施例中,所述固件还用以根据所述当前存储块与预设退出条件的比较结果,以使所述存储器退出随机写满盘状态。
在本发明一实施例中,所述预设退出条件表示为:所述当前存储块中有效数据的数据量大于全部数据量的三分之二,同时,所述主机数据的数据等于存储页的存储量且连续写超过一个所述存储块。
本发明还提供了一种存储器的数据处理方法,包括:
获取当前存储块与目标存储块,其中,所述当前存储块的存储页内存储有有效数据;
获取所述当前存储块中不同存储页的信息;
根据主机的写入顺序,获取不同的主机数据;
将所述主机数据与所述当前存储块的存储页内的有效数据进行整合,以按照顺序写入到所述目标存储块的存储页中。
本发明还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述的存储器的数据处理方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行上述的存储器的数据处理方法。
如上所述,本发明提供一种存储器、数据处理方法、电子设备及介质,存在进行随机写时,能够在进行垃圾回收的过程中同时写入主机数据,提高了主机写入的响应速度,有效缓解了写入速度出现波动的情况。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中存储器的示意图;
图2为本发明一实施例中写入第一主机数据前的示意图;
图3为本发明一实施例中写入第一主机数据后的示意图;
图4为本发明一实施例中写入第二主机数据后的示意图;
图5为本发明一实施例中写入第三主机数据前的示意图;
图6为本发明一实施例中写入第三主机数据后的示意图;
图7为本发明一实施例中写入第四主机数据后的示意图;
图8为本发明一实施例中写入第五主机数据后的示意图;
图9为本发明一实施例中存储器的数据处理方法的流程图;
图10为图9中步骤S20的流程图;
图11为图9中步骤S50的流程图;
图12为图9中步骤S60的流程图;
图13为图9中步骤S70的流程图。
图中:100、存储器;110、主控器;120、闪存块;130、固件闪存块;200、主机;
121、当前存储块;122、目标存储块;123、第二当前存储块;
1211、第一读取页;1212、第二读取页;1213、第三读取页;1214、第四读取页;1215、第五读取页;
1221、第一写入页;1222、第二写入页;1223、第三写入页;1224、第四写入页;1225、第五写入页。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明提供了一种存储器,存储器100可以安装于电路板上,以作为智能手机、平板电脑、移动互联网设备等电子设备的存储介质。存储器100可以包括主控器110、闪存块120以及固件闪存块130。闪存块120与固件闪存块130可以电连接于主控器110,主控器110可以与主机200电性连接。主控器110可将来自主机200的主机数据写入到不同的闪存块120中。固件闪存块130中可以存储固件,可通过固件控制闪存块120工作。
在本发明的一个实施例中,主控器110可根据主机200的写入顺序,以获取不同的主机数据。例如,主机200在某个时间段内写入若干组主机数据,每组主机数据的数据量大小可不相同。以主机数据为五组为例进行说明。第一主机数据的数据量可以为8KB。第二主机数据的数据量可以为4KB。第三主机数据的数据量可以为12KB。第四主机数据的数据量可以为4KB。第五主机数据的数据量可以为4KB。
请参阅图2,在本发明的一个实施例中,闪存块120内可包括多个存储块(Pbi)。存储块可以包括当前存储块(SrcPbi)121与目标存储块(DestPbi)122。当前存储块121可以是被写入过主机数据的存储块。当前存储块121内可包括多个存储页,存储页内可以存储有有效数据与无效数据。目标存储块122可以空闲存储块(FreePbi)。空闲存储块可以是未被写入过主机数据的存储块,或者也可是被写入过少量主机数据的存储块。目标存储块122内可包括多个存储页(Page),存储页可以为空白页或存储少量主机数据。
在本发明的一个实施例中,固件闪存块130中的固件可以根据当前存储块121与预设启动条件的比较结果,以使存储器100进入随机写满盘状态。其中,随机写可以指的是主机200写入的主机数据的逻辑区块地址(Logical Block Address,LBA)随机,而且每次写入的主机数据的数据量较为零散,无法满足写满一个完整的存储页的情况,需要补充相应的无效数据写入到存储页中。当闪存块120内的空闲存储块不足时,存储器100需要启动垃圾回收机制(GC)。在本实施例中,随机写满盘状态可以表示为当主机200写入的主机数据的逻辑区块地址随机且闪存块120内的空闲存储块不足时,固件启用相应的CombineGC算法,以使存储器100进入随机写满盘状态。
在本发明的一个实施例中,预设启动条件可以表示为当前存储块121中有效数据的数据量小于全部数据量的一半,同时,主机数据的数据量小于存储页的存储量且连续写超过一个存储块。其中,当前存储块121中有效数据的数据量可以表示为之前向当前存储块121中写入的主机数据的数据量。全部数据量可以表示为理论上能够向当前存储块121中写入的主机数据的数据量的最大值(FullValidCnt)。全部数据量(FullValidCnt)=存储页的数量*存储页的大小/4KB。
在本发明的一个实施例中,固件闪存块130中的固件可以判断当前存储块121中有效数据的数据量是否小于全部数据量的一半,同时,主机数据的数据量是否小于存储页的存储量且连续写超过一个存储块。若同时满足当前存储块121中有效数据的数据量小于全部数据量的一半,主机数据的数据量小于存储页的存储量且连续写超过一个存储块时,存储器100进入随机写满盘状态。若当前存储块121中有效数据的数据量大于等于全部数据量的一半,或者,主机数据的数据量等于存储页的存储量,或者,连续写不超过一个存储块时,存储器100退出随机写满盘状态。
请参阅图2,在本发明的一个实施例中,当存储器100进入随机写满盘状态后,固件闪存块130中的固件可以获取当前存储块121中不同存储页的信息。在本实施例中,以存储块中包含5个存储页,每个存储页可写入16KB的主机数据为例进行说明。当前存储块121中的存储页可被区分为第一读取页1211、第二读取页1212、第三读取页1213、第四读取页1214以及第五读取页1215。每个读取页内可写入的主机数据可分为四份,每份为4KB。则,当前存储块121可以按照矩阵的形式分布,矩阵的每一行都可代表一个读取页,每一行内的点都可代表一个可写入4KB的主机数据的存储区域。
在本发明的一个实施例中,固件闪存块130中的固件还可以将主机数据与当前存储块121的存储页内的有效数据进行整合,并按照顺序将其写入到目标存储块122的存储页中。具体地,固件闪存块130中的固件可以根据主机数据的数据量的大小,依次读取当前存储块121的存储页中的有效数据,并将主机数据与相应的有效数据进行整合,形成完整存储页的目标主机数据。之后,固件可以将目标主机数据写入到目标存储块122的存储页中。其中,目标存储块122的存储结构与当前存储块121的存储结构可以相同。目标存储块122中的存储页可被区分为第一写入页1221、第二写入页1222、第三写入页1223、第四写入页1224以及第五写入页1225。
请参阅图2及图3,在本发明的一个实施例中,以第一读取页1211、第二读取页1212、第三读取页1213、第四读取页1214以及第五读取页1215存储的主机数据均为4KB为例进行说明。由于第一主机数据的数据量为8KB,此时需要从当前存储块121中读取8KB的有效数据,以与第一主机数据进行整合,形成16KB的主机数据。16KB的主机数据可以完整存放于目标存储块122中的某一写入页中,且该写入页内不存在无效数据。具体地,可以按照顺序从当前存储块121中读取8KB的有效数据。由于第一读取页1211与第二读取页1212存储的有效数据均为4KB,此时可读取第一读取页1211与第二读取页1212的有效数据,将8KB的有效数据与第一主机数据进行整合后形成完整存储页的目标主机数据。可将目标主机数据写入到目标存储块122的第一写入页1221中。同时,第一读取页1211与第二读取页1212中的有效数据可以被擦除。
请参阅图4,在本发明的一个实施例中,固件闪存块130中的固件还可以依次将其余主机数据与当前存储块121的存储页中的有效数据进行整合,形成相应的目标主机数据,并将目标主机数据按照顺序写入到目标存储块122的存储页中。例如,当完成第一主机数据的写入后,可以对第二主机数据进行处理。由于第二主机数据的数据量为4KB,此时需要从当前存储块121中读取12KB的有效数据,以与第二主机数据进行整合,形成16KB的主机数据。具体地,可以按照顺序再次从当前存储块121中读取12KB的有效数据。由于第一读取页1211与第二读取页1212存储的有效数据已被读取,此时可读取第三读取页1213、第四读取页1214以及第五读取页1215的有效数据,将12KB的有效数据与第二主机数据进行整合后形成完整存储页的目标主机数据。可将目标主机数据写入到目标存储块122的第二写入页1222中。同时,第三读取页1213、第四读取页1214以及第五读取页1215中的有效数据可以被擦除。
请参阅图5,在本发明的一个实施例中,固件闪存块130中的固件还可以根据当前存储块121中有效数据的状态,以获取下一当前存储块,以读取有效数据。具体地,固件闪存块130可以判断当前存储块121中是否包含有效数据。若当前存储块121中包含有效数据,则继续进行读取,直至不包含有效数据为止。若当前存储块121中不包含有效数据,则获取下一当前存储块,以读取有效数据。例如,在本实施例中,当准备写入第三主机数据时,由于当前存储块121中的有效数据已被读取,无法继续与第三主机数据进行整合。此时固件闪存块130中的固件可以获取下一当前存储块,以替代当前存储块121,继续进行主机数据的写入。
请参阅图5及图6,在本发明的一个实施例中,下一当前存储块可以表示为第二当前存储块123。以第二当前存储块123中的五个读取页的有效数据的数据量分别为8KB、4KB、8KB、4KB、4KB为例进行说明。由于第三主机数据的数据量为12KB,此时需要从第二当前存储块123中读取4KB的有效数据,以与第三主机数据进行整合,形成16KB的主机数据。具体地,可以按照顺序读取第二当前存储块123中第一个读取页内的4KB的有效数据,将4KB的有效数据与第三主机数据进行整合后形成完整存储页的目标主机数据。可将目标主机数据写入到目标存储块122的第三写入页1223中。
请参阅图7,在本发明的一个实施例中,当需要继续写入第四主机数据时,由于第四主机数据的数据量为4KB,此时需要从第二当前存储块123中读取12KB的有效数据,以与第四主机数据进行整合,形成16KB的主机数据。具体地,由于第二当前存储块123中第一个读取页内还剩余4KB的有效数据,此时可以读取该剩余的4KB的有效数据,同时读取第二个读取页的4KB的有效数据与第三个读取页的4KB的有效数据,将12KB的有效数据与第四主机数据进行整合后形成完整存储页的目标主机数据。可将目标主机数据写入到目标存储块122的第四写入页1224中。
请参阅图8,在本发明的一个实施例中,当需要继续写入第五主机数据时,由于第四主机数据的数据量为4KB,此时需要从第二当前存储块123中读取12KB的有效数据,以与第五主机数据进行整合,形成16KB的主机数据。具体地,由于第二当前存储块123中第三个读取页内还剩余4KB的有效数据,此时可以读取该剩余的4KB的有效数据,同时读取第四个读取页的4KB的有效数据与第五个读取页的4KB的有效数据,将12KB的有效数据与第五主机数据进行整合后形成完整存储页的目标主机数据。可将目标主机数据写入到目标存储块122的第五写入页1225中。
在本发明的一个实施例中,当主机200依旧需要向存储器100中写入其他主机数据时,固件闪存块130中的固件可以根据第二当前存储块123中有效数据的状态,以获取下一当前存储块,以读取有效数据。例如,此时第二当前存储块123中不包含有效数据,此时固件闪存块130中的固件可以获取下一当前存储块,以替代第二当前存储块123,继续进行主机数据的写入。即,当某一个当前存储块中无有效数据后,固件闪存块130中的固件可以获取下一当前存储块,以进行主机主机数据的写入,直至主机数据完成写入或者存储器100退出随机写满盘状态为止。
在本发明的一个实施例中,固件闪存块130中的固件可以根据当前存储块121与预设退出条件的比较结果,以使存储器100退出随机写满盘状态。其中,预设退出条件可以表示为当前存储块121中有效数据的数据量大于全部数据量的三分之二,同时,主机数据的数据量等于存储页的存储量且连续写超过一个存储块。
在本发明的一个实施例中,具体地,固件闪存块130中的固件可以判断当前存储块121中有效数据的数据量是否大于全部数据量的三分之二,同时,主机数据的数据量是否等于存储页的存储量且连续写超过一个存储块。若同时满足当前存储块121中有效数据的数据量大于全部数据量的三分之二,主机数据的数据量等于存储页的存储量且连续写超过一个存储块时,存储器100退出随机写满盘状态。若当前存储块121中有效数据的数据量小于或等于全部数据量的三分之二,或者,主机数据的数据量小于存储页的存储量,或者,连续写不超过一个存储块时,存储器100不退出随机写满盘状态。
请参阅图2、图3、图4、图5、图6、图7及图8,在本发明的一个实施例中,以写入8KB、4KB、12KB、4KB以及4KB的主机数据为例进行说明。当固件未启用CombineGC算法时,其读写流程为主机写次数为20,GC读次数为10,GC写次数为3,主机读次数为5,GC读次数为5,GC写次数为2。读写次数为45次。同时,需要使用到两块目标存储块122,GC读次数为10,GC写次数为3,GC读次数为5,GC写次数为2。主机等待时间为20(10+3+5+2)次。当固件启用CombineGC算法时,其读写流程为主机写次数为20,CombineGC读次数为2,CombineGC写次数为1,CombineGC读次数为8,CombineGC写次数为4。读写次数为35次。同时,仅需要使用到一块目标存储块122。主机等待时间为CombineGC读次数为10(2+3+1+2+2)次。可见,当启用CombineGC算法后,能够有效降低读写次数,同时等待时间也能够明显下降,需要使用到的目标存储块122的数量也降低。在进行垃圾回收的同时能够进行写入主机数据,提高了主机200写入的响应速度,有效缓解了写入速度出现波动的情况。
请参阅图9,本发明还提供了一种存储器的数据处理方法,该数据处理方法可以应用于上述实施例中的存储器100中,当存储器100进入随机写状态时,可通过固件对闪存块120进行优化,以提升存储器100的数据写入性能。该数据处理方法可以包括如下步骤:
步骤S10、获取当前存储块与目标存储块,其中,当前存储块的存储页内存储有有效数据;
步骤S20、根据当前存储块与预设启动条件的比较结果,以使存储器进入随机写满盘状态;
步骤S30、获取当前存储块中不同存储页的信息;
步骤S40、根据主机的写入顺序,获取不同的主机数据;
步骤S50、将主机数据与当前存储块的存储页内的有效数据进行整合,并按照顺序将其写入到目标存储块的存储页中;
步骤S60、根据当前存储块中有效数据的状态,以获取下一当前存储块,以读取有效数据;
步骤S70、根据当前存储块与预设退出条件的比较结果,以使存储器退出随机写满盘状态。
请参阅图10,在本发明的一个实施例中,当执行步骤S20时,具体地,步骤S20可包括如下步骤:
步骤S21、判断当前存储块中有效数据的数据量是否小于全部数据量的一半,同时,主机数据的数据量是否小于存储页的存储量且连续写超过一个存储块;
步骤S22、若当前存储块中有效数据的数据量小于全部数据量的一半,同时主机数据的数据量小于存储页的存储量且连续写超过一个存储块时,存储器进入随机写满盘状态;
步骤S23、若当前存储块中有效数据的数据量大于等于全部数据量的一半,或者,主机数据的数据量等于存储页的存储量,或者,连续写不超过一个存储块时,存储器退出随机写满盘状态。
请参阅图11,在本发明的一个实施例中,当执行步骤S50时,具体地,步骤S50可包括如下步骤:
步骤S51、根据主机数据的量的数据大小,依次读取当前存储块的存储页中的有效数据,将主机数据与相应的有效数据进行整合,形成完整存储页的目标主机数据;
步骤S52、将目标主机数据写入到目标存储块的存储页中;
步骤S53、依次将其余主机数据与当前存储块的存储页中的有效数据进行整合,形成相应的完整存储页的目标主机数据,并将相应的目标主机数据按照顺序写入到目标存储块的存储页中。
请参阅图12,在本发明的一个实施例中,当执行步骤S60时,具体地,步骤S60可包括如下步骤:
步骤S61、判断当前存储块中是否包含有效数据;
步骤S62、若当前存储块中包含有效数据,则继续进行读取,直至不包含有效数据为止;
步骤S63、若当前存储块中不包含有效数据,则获取下一当前存储块,以读取有效数据。
请参阅图13,在本发明的一个实施例中,当执行步骤S70时,具体地,步骤S70可包括如下步骤:
步骤S71、判断当前存储块中有效数据的数据量是否大于全部数据量的三分之二,同时,主机数据的数据量是否等于存储页的存储量且连续写超过一个存储块;
步骤S72、若当前存储块中有效数据的数据量大于全部数据量的三分之二,同时主机数据的数据量等于存储页的存储量且连续写超过一个存储块时,存储器退出随机写满盘状态;
步骤S73、若当前存储块中有效数据的数据量小于或等于全部数据量的三分之二,或者,主机数据的数据量小于存储页的存储量,或者,连续写不超过一个存储块时,存储器不退出随机写满盘状态。
本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述存储器的数据处理方法。计算机可读存储介质可以是电子介质、磁介质、光介质、电磁介质、红外介质或半导体系统或传播介质。计算机可读存储介质还可以包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘可以包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-RW)和DVD。
本发明还提供一种电子设备,包括处理器和存储装置,存储装置存储有程序指令,处理器运行程序指令实现上述的存储器的数据处理方法。处理器50可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、 网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称 ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件;存储装置可能包含随机存取存储器 (Random Access Memory,简称RAM),也可能还包括非易失性存储器(Non-Volatile Memory),例如至少一个磁盘存储器。存储装置也可以为随机存取存储器(Random Access Memory,RAM)类型的内部存储器,处理器、存储装置可以集成为一个或多个独立的电路或硬件,如:专用集成电路(Application SpecificIntegrated Circuit,ASIC)。需要说明的是,存储装置中的计算机程序通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
可见,在上述方案中,存储器进行随机写时,能够在进行垃圾回收的过程中同时写入主机数据,提高了主机写入的响应速度,有效缓解了写入速度出现波动的情况。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (6)
1.一种存储器,其特征在于,包括:
闪存块,其内设有多个存储块,所述存储块包括当前存储块与目标存储块;
固件闪存块,通信连接于所述闪存块,用以存储固件;以及
主控器,通信连接于所述闪存块、所述固件闪存块以及主机,用以根据所述主机的写入顺序,获取不同的主机数据;
所述固件用以获取所述当前存储块中不同存储页的信息,将所述主机数据与所述当前存储块的存储页内的有效数据进行整合,以按照顺序写入到所述目标存储块的存储页中;
所述固件还用以根据所述当前存储块与预设启动条件的比较结果,以使存储器进入随机写满盘状态,其中,所述当前存储块表示为存储有有效数据的存储块,所述预设启动条件表示为:所述当前存储块中有效数据的数据量小于全部数据量的一半,同时,所述主机数据的数据量小于存储页的存储量且连续写超过一个所述存储块;
所述固件还用以根据所述当前存储块与预设退出条件的比较结果,以使所述存储器退出随机写满盘状态,其中,所述预设退出条件表示为:所述当前存储块中有效数据的数据量大于全部数据量的三分之二,同时,所述主机数据的数据等于存储页的存储量且连续写超过一个所述存储块。
2.根据权利要求1所述的存储器,其特征在于,所述固件用以根据所述主机数据的数据大小,依次读取所述当前存储块的存储页中的有效数据,将所述主机数据与相应的有效数据进行整合,形成完整存储页的目标主机数据,以将其写入到所述目标存储块的存储页中。
3.根据权利要求2所述的存储器,其特征在于,所述固件还用以依次将其余主机数据与所述当前存储块的存储页中的有效数据进行整合,形成相应的所述目标主机数据,并将所述目标主机数据按照顺序写入到所述目标存储块的存储页中。
4.一种存储器的数据处理方法,其特征在于,包括:
获取当前存储块与目标存储块,其中,所述当前存储块的存储页内存储有有效数据;
根据所述当前存储块与预设启动条件的比较结果,以使存储器进入随机写满盘状态,其中,所述预设启动条件表示为:所述当前存储块中有效数据的数据量小于全部数据量的一半,同时,主机数据的数据量小于存储页的存储量且连续写超过一个所述存储块;
获取所述当前存储块中不同存储页的信息;
根据主机的写入顺序,获取不同的主机数据;
将所述主机数据与所述当前存储块的存储页内的有效数据进行整合,以按照顺序写入到所述目标存储块的存储页中;
根据所述当前存储块与预设退出条件的比较结果,以使所述存储器退出随机写满盘状态,其中,所述预设退出条件表示为:所述当前存储块中有效数据的数据量大于全部数据量的三分之二,同时,所述主机数据的数据等于存储页的存储量且连续写超过一个所述存储块。
5.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求4中所述的存储器的数据处理方法。
6.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行如权利要求4中所述的存储器的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311823372.XA CN117472295B (zh) | 2023-12-28 | 2023-12-28 | 一种存储器、数据处理方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311823372.XA CN117472295B (zh) | 2023-12-28 | 2023-12-28 | 一种存储器、数据处理方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117472295A CN117472295A (zh) | 2024-01-30 |
CN117472295B true CN117472295B (zh) | 2024-03-22 |
Family
ID=89635142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311823372.XA Active CN117472295B (zh) | 2023-12-28 | 2023-12-28 | 一种存储器、数据处理方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472295B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN103488578A (zh) * | 2012-12-28 | 2014-01-01 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
CN109471594A (zh) * | 2018-10-09 | 2019-03-15 | 华中科技大学 | 一种mlc闪存读写方法 |
CN110347613A (zh) * | 2019-06-26 | 2019-10-18 | 华中科技大学 | 多租户固态盘中实现raid的方法、控制器及多租户固态盘 |
CN114968838A (zh) * | 2022-05-27 | 2022-08-30 | 深圳大普微电子科技有限公司 | 数据压缩方法及闪存设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
CN102096562A (zh) * | 2011-02-12 | 2011-06-15 | 华为技术有限公司 | 数据写入方法及装置 |
US11954022B2 (en) * | 2022-03-02 | 2024-04-09 | International Business Machines Corporation | Throttling host writes in a host buffer to a storage device |
-
2023
- 2023-12-28 CN CN202311823372.XA patent/CN117472295B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN103488578A (zh) * | 2012-12-28 | 2014-01-01 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
CN109471594A (zh) * | 2018-10-09 | 2019-03-15 | 华中科技大学 | 一种mlc闪存读写方法 |
CN110347613A (zh) * | 2019-06-26 | 2019-10-18 | 华中科技大学 | 多租户固态盘中实现raid的方法、控制器及多租户固态盘 |
CN114968838A (zh) * | 2022-05-27 | 2022-08-30 | 深圳大普微电子科技有限公司 | 数据压缩方法及闪存设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117472295A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10838653B2 (en) | Electronic device and operating method thereof | |
US9846643B2 (en) | Methods for maintaining a storage mapping table and apparatuses using the same | |
JP5090819B2 (ja) | メモリーカード及び該データ格納方法 | |
KR102360667B1 (ko) | 프로그래밍 가능한 버퍼 및 캐시 크기의 메모리 프로토콜 | |
CN106095416B (zh) | 一种在应用程序中的跳转处理方法、装置及智能终端 | |
KR102592796B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN112199040B (zh) | 存储访问方法及智能处理装置 | |
US10754552B2 (en) | Data storage device and operating method thereof | |
KR20190019543A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10698830B2 (en) | Obtaining data in a nonvolatile memory device through the use of descriptors | |
KR20190109872A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US9852068B2 (en) | Method and apparatus for flash memory storage mapping table maintenance via DRAM transfer | |
US20210191626A1 (en) | Data processing system | |
CN117472295B (zh) | 一种存储器、数据处理方法、设备及介质 | |
KR102388746B1 (ko) | 세이프 어드레스 매핑을 이용한 메모리 셀 액세스 제어 방법 | |
CN112445422A (zh) | 存储器控制器、存储装置以及存储器控制器的操作方法 | |
US10838766B2 (en) | Memory system and operating method thereof | |
US10282328B2 (en) | Apparatus having direct memory access controller and method for accessing data in memory | |
US20220197540A1 (en) | Storage device and method of operating the same | |
US11366736B2 (en) | Memory system using SRAM with flag information to identify unmapped addresses | |
CN114625307A (zh) | 计算机可读存储介质、闪存芯片的数据读取方法及装置 | |
JPH05274219A (ja) | 記憶装置 | |
CN108062203B (zh) | 一种闪存数据管理方法、装置及存储器 | |
US20150120991A1 (en) | Data processing system and operating method thereof | |
EP4206937A1 (en) | Storage device including indirect access module, method of operating the same, and method of operating storage system including the same |
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 |