首页 / 专利库 / 专利权 / 申请 / 国际申请 / 请求书 / 请求 / 一种提高闪存写入速度的方法和装置

一种提高闪存写入速度的方法和装置

阅读:558发布:2023-02-23

专利汇可以提供一种提高闪存写入速度的方法和装置专利检索,专利查询,专利分析的服务。并且一种提高闪存写入速度的方法,包括如下步骤,接收随机写 请求 ,缓存随机写请求,当缓存的随机写请求的数据量超过一定 阈值 时,将多个随机写请求合并成一个合并写请求,再将合并写请求写入闪存中。通过将不断接收到的写请求进行分类、合并,并判断写请求的地址,然后进行进一步合并等操作,最后将合并后的写请求依次写入闪存中,有效减少了对闪存的 访问 次数,提高了闪存的写入效率,解决了闪存写入速度不够快的问题。,下面是一种提高闪存写入速度的方法和装置专利的具体信息内容。

1.一种提高闪存写入速度的方法,其特征在于,包括如下步骤:
判断随机写请求是否大于一个闪存物理页的大小,若判断为是,将该随机写请求直接写入采用页映射的物理,并更新页映射表;若判断为否,接收随机写请求,缓存随机写请求,当缓存的随机写请求的数据量超过一定阈值时,将多个随机写请求合并成一个合并写请求,再将合并写请求写入闪存中;
判断合并写请求的逻辑地址是否连续;若连续则将合并写请求写入采用页映射的物理块,并更新页映射表;若不连续则将合并写请求写入随机写块,并更新随机写块的扇区映射表。
2.根据权利要求1所述的一种提高闪存写入速度的方法,其特征在于,还包括步骤,当随机写请求队列计时器超过阈值时,将随机写请求队列中的小数据写请求合并成一个小数据合并写请求,将小数据合并写请求写入随机写块,并更新随机写块的扇区映射表。
3.根据权利要求1所述的一种提高闪存写入速度的方法,其特征在于,还包括步骤,对随机写块中已使用的物理页进行回收处理。
4.一种提高闪存写入速度的装置,其特征在于,包括如下模块:接收缓存模块、合并请求模块、判断模块、更新模块和写入模块;
所述判断模块用于判断随机写请求是否大于一个闪存物理页的大小,并在判断为是时使能写入模块、更新模块,写入模块还用于将随机写请求直接写入采用页映射的物理块;更新模块用于更新页映射表;
若判断为否时,则使能接收缓存模块,所述接收缓存模块用于接收并缓存随机写请求;
所述合并请求模块用于在缓存的随机写请求的数据量超过一定阈值时,将多个随机写请求合并成一个合并写请求;写入模块用于将合并写请求写入闪存中;
所述判断模块还用于判断合并写请求的逻辑地址是否连续;写入模块还用于在判断模块的判断结果为连续时则将合并写请求写入采用页映射的物理块;所述更新模块用于在判断模块的判断结果为连续时更新页映射表;写入模块还用于在判断模块的判断结果为不连续时将合并写请求写入随机写块,更新模块还用于在判断模块的判断结果为不连续时更新随机写块的扇区映射表。
5.根据权利要求4所述的一种提高闪存写入速度的装置,其特征在于,合并请求模块还用于在随机写请求队列计时器超过阈值时,将随机写请求队列中的小数据写请求合并成一个小数据合并写请求,写入模块还用于将小数据合并写请求写入随机写块,所述更新模块用于更新随机写的扇区映射表。
6.根据权利要求4所述的一种提高闪存写入速度的装置,其特征在于,还包括回收模块,所述回收模块用于对随机写块中已使用的物理页进行回收处理。

说明书全文

一种提高闪存写入速度的方法和装置

技术领域

[0001] 本发明涉及一种闪存的写入方法,尤其涉及一种提高Nand Flash写入速度的方法。

背景技术

[0002] Nand Flash闪存以页为单位进行编程,以为单位进行擦除。随着Nand Flash制程的进步,物理页的大小也随之变大,由原来的4KB、8KB变成16KB,未来可能继续变大。位于Nand Flash上的应用,如文件系统或数据库都是以扇区(512字节)为单位进行读写。因此实际中存在大量的小于Nand Flash页大小的随机写操作。所以提高Nand Flash随机写速度对于提升系统性能有非常重要的意义。但是现有的技术对于处理小于Nand Flash页大小的随机写的速度很慢,随机写性能很差。现有技术使用了页映射技术来处理随机写。页映射技术以物理页大小为单位进行读写。这种技术在处理小于Nand Flash页大小的随机写时,需要从Nand Flash读取一个页大小的原始数据到系统内存,然后与新提交的数据进行合并,再将合并后的数据编程到一个新物理页中,最后更新页映射表。因此大大降低了Nand Flash的随机写的性能。

发明内容

[0003] 为此,需要提供一种新的提高闪存写入速度的方法,解决现有技术下闪存数据写入不够快的问题。
[0004] 为实现上述目的,发明人提供了一种提高闪存写入速度的方法,包括如下步骤,接收随机写请求,缓存随机写请求,当缓存的随机写请求的数据量超过一定阈值时,将多个随机写请求合并成一个合并写请求,再将合并写请求写入闪存中。
[0005] 进一步的,还包括步骤,判断合并写请求的逻辑地址是否连续;若连续则将合并写请求写入采用页映射的物理块,并更新页映射表;若不连续则将合并写请求写入随机写块,并更新随机写块的扇区映射表。
[0006] 进一步的,还包括步骤,当随机写请求队列计时器超过阈值时,将随机写请求队列中的小数据写请求合并成一个小数据合并写请求,将小数据合并写请求写入随机写块,并更新随机写的扇区映射表。
[0007] 进一步的,还包括步骤,判断接收到的写请求是否大于一个闪存物理页的大小,若判断为是,将该写请求直接写入采用页映射的物理块,并更新页映射表。若判断为否,进行后续步骤“接收随机写请求”。
[0008] 进一步的,还包括步骤,对随机写块中已使用的物理页进行回收处理。
[0009] 一种提高闪存写入速度的装置,包括如下模块,接收缓存模块、合并请求模块和写入模块;所述接收缓存模块用于接收并缓存随机写请求;所述合并请求模块用于在缓存的随机写请求的数据量超过一定阈值时,将多个随机写请求合并成一个合并写请求;写入模块用于将合并写请求写入闪存中。
[0010] 进一步的,还包括判断模块、更新模块;所述判断模块用于判断合并写请求的逻辑地址是否连续;写入模块还用于在判断模块的判断结果为连续时则将合并写请求写入采用页映射的物理块;所述更新模块用于在判断模块的判断结果为连续时更新页映射表;写入模块还用于在判断模块的判断结果为不连续时将合并写请求写入随机写块,更新模块还用于在判断模块的判断结果为不连续时更新随机写块的扇区映射表。
[0011] 进一步的,还包括更新模块,合并请求模块还用于在随机写请求队列计时器超过阈值时,将随机写请求队列中的小数据写请求合并成一个小数据合并写请求,写入模块还用于将小数据合并写请求写入随机写块,所述更新模块用于更新随机写的扇区映射表。
[0012] 进一步的,还包括判断模块、更新模块,所述判断模块用于判断接收到的写请求是否大于一个闪存物理页的大小,并在判断为是时使能写入模块、更新模块;若判断为否时,则使能接收缓存模块;写入模块还用于将写请求直接写入采用页映射的物理块;更新模块用于更新页映射表。
[0013] 进一步的,还包括回收模块,所述回收模块用于对随机写块中已使用的物理页进行回收处理。
[0014] 区别于现有技术,上述技术方案通过将不断接收到的写请求进行分类、合并,并判断写请求的地址,然后进行进一步合并等操作,最后将合并后的写请求依次写入闪存中,有效减少了对闪存的访问次数,提高了闪存的写入效率,解决了闪存写入速度不够快的问题。附图说明
[0015] 图1为本发明方法流程示意图;
[0016] 图2为本发明某些实施例连续地址数据写入示意图;
[0017] 图3为本发明某些实施例随机写块写入示意图;
[0018] 图4为本发明某些实施例回收数据处理示意图;
[0019] 图5为本发明装置模块示意图。
[0020] 附图标记说明:
[0021] 501、接收缓存模块;
[0022] 502、合并请求拨快;
[0023] 503、写入模块;
[0024] 504、判断模块;
[0025] 505、更新模块;
[0026] 506、回收模块。

具体实施方式

[0027] 为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0028] 请参阅图1,为本发明的一种提高闪存写入速度的方法,本方法从步骤S101开始:接收随机写请求,缓存随机写请求;然后进行判断步骤S102当缓存的随机写请求的数据量超过一定阈值时,进行步骤S103将多个随机写请求合并成一个合并写请求,再将合并写请求写入闪存中。具体的,所述随机写请求指大小小于一个页单位大小的写入数据请求,在图
1所示的某些实施例中,先接收随机写请求,然后将其缓存在内存的随机写请求队列中去。
随后对所缓存的随机写请求的数据量进行判断,优选的,所述“一定阈值”为闪存的物理页的大小,若超过该阈值,则对随机写请求队列中的多个随机写请求进行合并,变成一个合并写请求,再将这个合并写请求写入到闪存中。所述物理页的大小并不固定,如背景技术所述,物理页的大小随着科技的进步也会不断增大。因此所述一定阈值也要因具体情况而确定,又如在某些实施例中,若使用的Nand Flash内存支持多个Plane编程时,所述一定阈值还可以扩展为物理页大小乘以Nand Flash支持的Plane个数。具体的,当所述的随机写请求超过该扩展后的阈值时,才进行随机写请求的合并操作,然后将合并写请求写入到闪存中,不但更加节省了对闪存的占用次数,同时也大大提高了随机写的数据吞吐量。综上,本方法缓存多个随机写请求,达到一定数据量之后对随机写请求进行合并最后再对闪存进行写入,使得原先需要不断对闪存进行多而杂的写入请求合并成一个合并写请求,因此只需对闪存进行一次占用。通过上述步骤,便达到了减少对闪存的写入请求,提高闪存利用率,进而提高闪存的写入性能的效果。
[0029] 在某些实施例中,为了进一步优化数据的合并,还包括步骤S104,判断合并写请求的逻辑地址是否连续;若连续则进行步骤S105:将合并写请求写入采用页映射的物理块,并更新页映射表;若不连续则进行步骤S107:将合并写请求写入随机写块,并更新随机写块的扇区映射表。具体的,Nand Flash驱动层会分配若干个物理块,对于这些物理块,只使用它的LSB(Least Significant Bit)物理页用于存储随机写的数据,我们将仅使用LSB物理页的物理块称为随机写块,它们以扇区为单位进行存储映射。所述扇区的大小以512字节的2的幂次方倍为单位,但必须小于Nand Flash物理页的大小。例如对于16KB大小Nand Flash物理页,可以选择的扇区单位是512B,1KB,2KB,4KB,8KB。所述扇区单位的具体大小,可以由上层应用来选择。
[0030] 图2为随机写请求队列数据合并,逻辑地址连续情况的某些实施例的具体实施方式。在该实施例中,页映射单位16K,扇映射单位4K,随机写请求数据单位4K。随机队列中有4个4KB大小随机写请求,随机写请求的逻辑地址分别是300,308,316,324(逻辑地址是以扇区为单位,4K等于8个扇区)。通过上述条件我们可以看到,这些随机写请求逻辑地址是连续的,并且满足总的数据大小等于一个物理页,则将4个随机写请求的数据合并写入采用页映射的物理块B1内一个空的物理页,本实施例中,该的物理页P1的写入地址为1001,然后更新页映射表,通过图2我们可以看到,逻辑地址LBA为300到324的映射都对应到了物理页地址PBA=1001。
[0031] 图3为随机写请求队列数据合并,逻辑地址不连续情况下的某些实施例的具体实施方式。在该实施例中,页映射单位16K,扇映射单位4K,随机写请求数据单位4K。随机队列中有4个4KB大小随机写请求,随机写请求的逻辑地址分别是300,400,700,708。因此这些随机写请求逻辑地址是不连续的,则将这4个随机写请求的数据合并为合并写请求,然后将合并写请求写入随机写块B2内一个空的LSB物理页即随机写块内,本实施例中,LSB物理页(随机写块)P2的写入地址为2001,然后更新随机写块的扇区映射表。通过图3我们可以看到,逻辑地址LBA为300、200、700、708的映射分别都对应到了物理页地址PBA=2001。
[0032] 通过上述优化数据的合并,使得地址连续的随机写请求能够有效合并,并分配一个页映射的物理块进行存储;同时对于非连续的随机写请求,分配到相对零碎的扇区进行存储。使得随机写请求更有效的整合,提高了闪存的利用效率,从而进一步提升了闪存的写入速度。
[0033] 在某些实施例中,还包括一个随机写请求队列计时器。所述队列计时器可以通过向实时时钟注册中断来创建,或是使用定时器方式也可以实现,同时,时间阈值也可以灵活设置。在每一次缓存随机写请求时会将队列计时器清零。具体的,本方法还包括步骤S106,判断随机写请求队列计时器是否达到阈值。当随机写请求队列计时器超过阈值时,进行步骤S107,将随机写请求队列中的小数据写请求合并成一个小数据合并写请求,将小数据合并写请求写入随机写块,并更新随机写的扇区映射表。若未队列计时器未达到阈值,则不触发中断操作。设计队列计时器能够防止在系统不再有随机写请求进入,例如一批次的写入数据录入完毕时,随机写请求队列中仍然缓存有随机写数据,进而防止因这些数据得不到处理而导致的数据丢失等问题。提高了本方法的数据安全性。
[0034] 在图1所示的某些实施例中,还包括步骤S108,上层应用的写请求到达,所述上层应用为需要在闪存中存储数据的应用或为系统的IO请求。随后进行步骤S109判断接收到的写请求是否大于一个闪存物理页的大小,若判断为是,则该写请求为大块数据写请求,进行步骤S110将该大块数据写请求直接写入采用页映射的物理块,并更新页映射表。若判断为否,则该写请求为随机写请求,此时才进行后续步骤S101“接收并缓存随机写请求”。通过上述判断,将大块数据写请求与随机写请求区分开来,将大块数据直接写入,将随机写请求缓存至随机写请求队列。节省了大块数据写请求对缓存的占用,提高了存储效率,加快了闪存的写入速度。
[0035] 进一步的,还包括步骤,对随机写块中已使用的物理页进行回收处理。具体的,当随机写块空闲的物理页小于阈值或者系统空闲时,开始对随机写块中的已使用的物理页进行回收处理。首先读取扇区映射表,先将逻辑地址相同、相邻和重叠的随机写数据进行处理,处理后的随机写数据与物理块中读取的原始数据进行合并,合并后的新数据写入页映射的新物理块中,并更新页映射表和扇区映射表。在图4所示的某些实施例中,随机写块B2中4个物理页P21、P22、P23、P24,物理页地址分别是2001、2002、2003、2004。随机写块中相同逻辑地址的写请求只要回收最后写入的有效数据即可。图4中由于按时间顺序从低地址往高地址写,高地址的数据有效性高。因此P23中逻辑地址700和780是有效数据。P24中逻辑地址300、400、716、724是有效数据。回收时,将有效数据与原始数据进行合并。具体的,从P24读出逻辑地址300的数据,再从原始数据块读出逻辑地址308,316,324的数据,将这些数据合并成新的一页数据后写入页映射的物理块B3中页地址为3001的物理页P31中;再从P24读出逻辑地址400的数据,从原始数据块读出逻辑地址408,416,424的数据,将这些数据合并后写入页映射的物理块B3中页地址为3002的物理页P32中;再从P23中读出逻辑地址700和708的数据,从P24中读出逻辑地址716和724的数据,将这些数据合并后写入页映射的物理块B3中页地址为3003的物理页P33中;最后更新页映射表。这样随机写块B2中的数据都已被重新存储到页映射的物理块B3中,随机写块B2得到了回收。通过上述设计,使得系统空闲或随机写块占用较大的情况下对随机写块的数据进行整理并回收,提高了随机写块的利用率,进一步提升了闪存的存储效率和存储速度。
[0036] 本发明还提供一种提高闪存写入速度的装置,请参阅图5,包括如下模块,接收缓存模块501、合并请求模块502和写入模块503;所述接收缓存模块用于接收并缓存随机写请求;所述合并请求模块用于在缓存的随机写请求的数据量超过一定阈值时,将多个随机写请求合并成一个合并写请求;写入模块用于将合并写请求写入闪存中。通过上述装置,达到了减少对闪存的写入请求,提高闪存利用率,进而提高闪存的写入性能的效果。
[0037] 在某些实施例中,还包括判断模块504、更新模块505;所述判断模块用于判断合并写请求的逻辑地址是否连续;写入模块503还用于在判断模块的判断结果为连续时则将合并写请求写入采用页映射的物理块;所述更新模块用于在判断模块的判断结果为连续时更新页映射表;写入模块503还用于在判断模块的判断结果为不连续时将合并写请求写入随机写块,更新模块还用于在判断模块的判断结果为不连续时更新随机写块的扇区映射表。通过上述模块优化数据的合并,使得地址连续的随机写请求能够有效合并,并分配一个页映射的物理块进行存储;同时对于非连续的随机写请求,分配到相对零碎的扇区进行存储。
使得随机写请求更有效的整合,提高了闪存的利用效率,从而进一步提升了闪存的写入速度。
[0038] 在某些实施例中,还包括更新模块505,合并请求模块502还用于在随机写请求队列计时器超过阈值时,将随机写请求队列中的小数据写请求合并成一个小数据合并写请求,写入模块503还用于将小数据合并写请求写入随机写块,所述更新模块用于更新随机写的扇区映射表。通过上述模块设计,防止因这些数据得不到处理而导致的数据丢失等问题。提高了本方法的数据安全性。
[0039] 在另一些实施例中,还包括判断模块504、更新模块505,所述判断模块用于判断接收到的写请求是否大于一个闪存物理页的大小,并在判断为是时使能写入模块403、更新模块;若判断为否时,则使能接收缓存模块501;写入模块还用于将写请求直接写入采用页映射的物理块;更新模块用于更新页映射表。通过上述模块,将大块数据写请求与随机写请求区分开来,将大块数据直接写入,将随机写请求缓存至随机写请求队列。节省了大块数据写请求对缓存的占用,提高了存储效率,加快了闪存的写入速度。
[0040] 在某些实施例中,还包括回收模块506,所述回收模块用于对随机写块中已使用的物理页进行回收处理。通过设计回收模块,达到了减少对闪存的写入请求,提高闪存利用率,进而提高闪存的写入性能的效果。
[0041] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
[0042] 本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络存储等。
[0043] 上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0044] 这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0045] 这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0046] 尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
相关专利内容
标题 发布/更新时间 阅读量
请求式系统信息 2020-05-12 717
增补信息请求 2020-05-12 133
请求式定位 2020-05-11 876
自动再发送请求 2020-05-13 122
请求式定位 2020-05-11 977
请求开关 2020-05-11 234
多请求间隔 2020-05-11 621
处理请求 2020-05-11 809
请求监视 2020-05-11 247
响应探听请求 2020-05-12 266
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈