CN110647476B - 一种固态硬盘写数据的方法、装置、设备及存储介质 - Google Patents

一种固态硬盘写数据的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110647476B
CN110647476B CN201910931714.7A CN201910931714A CN110647476B CN 110647476 B CN110647476 B CN 110647476B CN 201910931714 A CN201910931714 A CN 201910931714A CN 110647476 B CN110647476 B CN 110647476B
Authority
CN
China
Prior art keywords
write data
lba
unit
writing
data request
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
CN201910931714.7A
Other languages
English (en)
Other versions
CN110647476A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201910931714.7A priority Critical patent/CN110647476B/zh
Publication of CN110647476A publication Critical patent/CN110647476A/zh
Application granted granted Critical
Publication of CN110647476B publication Critical patent/CN110647476B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种固态硬盘写数据的方法、装置、设备及存储介质,其中,该方法包括:接收写数据请求,将所述写数据请求对应的写数据写入至DDR中;在本地内存中为所述写数据请求申请缓存单元,如果申请成功,则确定申请到的缓存单元为目的单元,并将所述写数据请求对应的LBA写入至所述目的单元中;如果申请失败,则将所述写数据请求挂载至待处理列表中,并返回执行为所述写数据请求申请缓存单元的步骤,直至申请成功为止;当所述目的单元中的LBA达到预设搬移量时,将所述目的单元中预设搬移量的LBA搬移至所述DDR中,将所述写数据及对应LBA写入固态硬盘中。本申请减少了LBA的搬移次数,提升了固态硬盘的性能。

Description

一种固态硬盘写数据的方法、装置、设备及存储介质
技术领域
本发明涉及固态硬盘技术领域,更具体地说,涉及一种固态硬盘写数据的方法、装置、设备及存储介质。
背景技术
在向固态硬盘(SSD)写数据的过程中,写数据的性能和写的数据的正确性都是固态硬盘的重要特性,因此通常需要写数据的过程具有较好的性能。
在实现固态硬盘写数据的技术方案中,不仅需要对用户数据进行操作,还需要对固态硬盘现有的内部管理数据进行支撑,具体来说,在接收到写数据请求后,利用DMA控制器(直接内存访问控制器,以下简称为DMA)将数据搬移到DDR存储器(双倍速率存储器,以下简称为DDR),增加对应的反向表数据,然后将DDR中的数据落nand。而为了实现垃圾回收等操作,不仅需要维护L2P表,还需要维护对应的反向表,其中,L2P表示和LBA(逻辑块地址)对应的PBA(物理块地址)的映射,而反向表则表示和PBA对应的LBA的映射,因此不仅需要将写数据请求对应的数据搬移到DDR中,还需要将数据对应的LBA搬移到DDR中,现有的技术方案中,通常是每搬移一个数据块到DDR中,则将对应的LBA也搬移到DDR中,相当于使用一次搬移单元(DATANETWORK硬件功能单元,与现有技术中对应概念的含义相同)的操作只能够搬移一个LBA,消耗一次搬移时间,这会导致需要频繁进行搬移操作,进而对固态硬盘的性能产生消极影响。
发明内容
本发明的目的是提供一种固态硬盘写数据的方法、装置、设备及存储介质,能够减少LBA的搬移次数,提升固态硬盘写数据的性能。
为了实现上述目的,本发明提供如下技术方案:
一种固态硬盘写数据的方法,包括:
接收写数据请求,将所述写数据请求对应的写数据写入至DDR中;
在本地内存中为所述写数据请求申请缓存单元,如果申请成功,则确定申请到的缓存单元为目的单元,并将所述写数据请求对应的LBA写入至所述目的单元中;如果申请失败,则将所述写数据请求挂载至待处理列表中,并返回执行为所述写数据请求申请缓存单元的步骤,直至申请成功为止;
当所述目的单元中的LBA达到预设搬移量时,将所述目的单元中预设搬移量的LBA搬移至所述DDR中,将所述写数据及对应LBA写入固态硬盘中。
优选的,在本地内存中为所述写数据请求申请缓存单元,包括:
检测本地内存中是否存在空闲的缓存单元,如果存在,则确定申请成功,否则,则确定申请失败;其中,所述本地内存中设置有多个缓存单元;
对应的,确定申请到的缓存单元为目的单元,包括:
如果空闲的缓存单元的总存储空间大于所述写请求对应的LBA需占用的存储空间,则确定总存储空间等于所述写请求对应LBA需占用的存储空间的个数的缓存单元为目的单元,否则,则确定空闲的缓存单元均为目的单元。
优选的,判断所述目的单元中的LBA是否达到预设搬移量,包括:
如果任一所述目的单元中的LBA占满该任一目的单元的存储空间,则确定该任一目的单元中的LBA达到预设搬移量,否则,则确定该任一目的单元中的LBA未达到预设搬移量。
优选的,将所述目的单元中预设搬移量的LBA搬移至所述DDR中,包括:
利用搬移单元将所述目的单元中预设搬移量的LBA搬移至所述DDR中;其中,所述预设搬移量等于所述搬移单元单次能够搬移的LBA的最大量。
优选的,将所述写数据及对应LBA写入固态硬盘中之前,还包括:
检测存储在所述DDR中的写数据的数据量是否达到单个条带需存储的数据的数据量,如果是,则将所述写数据及对应LBA写入至所述固态硬盘中;否则,则返回执行检测存储在所述DDR中的写数据的数据量是否达到单个条带需存储的数据的数据量的步骤,直至检测结果为是为止。
优选的,将所述写数据请求对应的写数据写入至DDR中之前,还包括:
在所述DDR中为所述写数据请求申请对应的写缓存,如果申请成功,则执行将所述写数据请求对应的写数据写入至DDR的步骤,如果申请失败,则返回执行在所述DDR中为所述写数据请求申请对应的写缓存的步骤,直至申请成功为止。
优选的,还包括:
如果申请所述写缓存或者申请所述缓存单元的次数达到预设次数且申请结果为申请失败,则停止继续申请,并输出相应的提示信息。
一种固态硬盘写数据的装置,包括:
接收模块,用于:接收写数据请求,将所述写数据请求对应的写数据写入至DDR中;
申请模块,用于:在本地内存中为所述写数据请求申请缓存单元,如果申请成功,则确定申请到的缓存单元为目的单元,并将所述写数据请求对应的LBA写入至所述目的单元中;如果申请失败,则将所述写数据请求挂载至待处理列表中,并返回执行为所述写数据请求申请缓存单元的步骤,直至申请成功为止;
搬移模块,用于:当所述目的单元中的LBA达到预设搬移量时,将所述目的单元中预设搬移量的LBA搬移至所述DDR中,将所述写数据及对应LBA写入固态硬盘中。
一种固态硬盘写数据的设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述固态硬盘写数据的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述固态硬盘写数据的方法的步骤。
本发明提供了一种固态硬盘写数据的方法、装置、设备及存储介质,其中,该方法包括:接收写数据请求,将所述写数据请求对应的写数据写入至DDR中;在本地内存中为所述写数据请求申请缓存单元,如果申请成功,则确定申请到的缓存单元为目的单元,并将所述写数据请求对应的LBA写入至所述目的单元中;如果申请失败,则将所述写数据请求挂载至待处理列表中,并返回执行为所述写数据请求申请缓存单元的步骤,直至申请成功为止;当所述目的单元中的LBA达到预设搬移量时,将所述目的单元中预设搬移量的LBA搬移至所述DDR中,将所述写数据及对应LBA写入固态硬盘中。本申请公开的技术特征中,在将LBA这一反向表数据向DDR中进行搬移时,首先在内存中为其申请对应的缓存单元,以将其先缓存至缓存单元中,并在缓存单元中的LBA达到一定搬移量时才将这一定搬移量的LBA一次性搬移至DDR中,从而区别于现有技术中每次仅搬移一个LBA,而是实现LBA的集中搬移,减少了LBA的搬移次数,提升了固态硬盘的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种固态硬盘写数据的方法的流程图;
图2为本发明实施例提供的一种固态硬盘写数据的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图其1,其示出了本发明实施例提供的一种固态硬盘写数据的方法的流程图,可以包括:
S11:接收写数据请求,将写数据请求对应的写数据写入至DDR中。
其中,本发明实施例提供的一种固态硬盘写数据的方法的执行主体可以为对应的装置,而该装置可以设置于处理器内,因此该方法的执行主体可以为处理器。具体来说,写数据请求为向固态硬盘中写入对应数据的请求,在接收到写数据请求后,可以确定写数据请求对应的数据为写数据,进而将写数据存储至DDR中,具体可以是使用DMA将写数据搬移至DDR中,以实现对写数据的缓存。
S12:在本地内存中为写数据请求申请缓存单元,如果申请成功,则确定申请到的缓存单元为目的单元,并将写数据请求对应的LBA写入至目的单元中;如果申请失败,则将写数据请求挂载至待处理列表中,并返回执行为写数据请求申请缓存单元的步骤,直至申请成功为止。
可以预先在本地内存中设置反向表local buffer,或者可以称为缓存单元,该缓存单元用于存储LBA,进而将缓存单元中存储的LBA落nand。具体来说,如果申请缓存单元成功,则可以将写数据请求对应LBA写入至申请到的缓存单元中,否则,则可以将写数据请求挂载到预先设置的待处理列表(pending list)中,并且直接返回执行或者经过根据实际需要设置的预设时间间隔后返回执行将写数据请求挂载至待处理列表中,并返回执行为写数据请求申请缓存单元的步骤,以通过这种方式确保正常情况下可以申请到用于存储LBA的缓存单元。
S13:当目的单元中的LBA达到预设搬移量时,将目的单元中预设搬移量的LBA搬移至DDR中,将写数据及对应LBA写入固态硬盘中。
需要说明的是,不同于现有技术中实现LBA向DDR的搬移时,是搬移至DDR中一个写数据的数据块,则将对应的LBA搬移至DDR中;本实施例中需要根据实际需要设定预设搬移量,该预设搬移量大于单个数据块对应的LBA,也即本实施例中是在目的单元中的LBA达到一定数量后,才将这一定数量的LBA一次性搬移至DDR中,从而减少了LBA的搬移次数,提升固态硬盘的性能。
本申请公开的技术特征中,在将LBA这一反向表数据向DDR中进行搬移时,首先在内存中为其申请对应的缓存单元,以将其先缓存至缓存单元中,并在缓存单元中的LBA达到一定搬移量时才将这一定搬移量的LBA一次性搬移至DDR中,从而区别于现有技术中每次仅搬移一个LBA,而是实现LBA的集中搬移,减少了LBA的搬移次数,提升了固态硬盘的性能。
本发明实施例提供的一种固态硬盘写数据的方法,在本地内存中为写数据请求申请缓存单元,可以包括:
检测本地内存中是否存在空闲的缓存单元,如果存在,则确定申请成功,否则,则确定申请失败;其中,本地内存中设置有多个缓存单元;
对应的,确定申请到的缓存单元为目的单元,可以包括:
如果空闲的缓存单元的总存储空间大于写请求对应的LBA需占用的存储空间,则确定总存储空间等于写请求对应LBA需占用的存储空间的个数的缓存单元为目的单元,否则,则确定空闲的缓存单元均为目的单元。
需要说明的是,本实施例中可以设置多个缓存单元,每个缓存单元可以进行复用,具体来说,在本地内存中申请缓存单元,即为检测本地内存中是否存在空闲的缓存单元(空闲的缓存单元即为未存储任何数据的、空白的缓存单元),如果有,则可以直接用空闲的缓存单元实现LBA的存储,否则,则需要等待直至有空闲的缓存单元再利用空闲的缓存单元实现LBA的存储。从而能够通过多个缓存单元的设置及复用,便于实现针对多个写数据请求对应LBA的缓存。另外,考虑到处理器内存容量有限,本实施例中可以设置4个缓存单元,每个缓存单元可以容纳64个LBA,而单个条带(super page)包含384个LBA,因此4个缓存单元可以存储单个条带对应的全部的LBA,并且在必要时进行复用。
需要说明的是,在确定目的单元时还需要考虑到写请求对应的LBA需占用的存储空间,如果空闲的缓存单元的存储空间的总和不大于写请求对应的LBA需占用的存储空间,则说明需要利用全部空闲的缓存单元进行LBA的缓存,此时确定全部空闲的缓存单元均为目的单元,否则,则说明缓存单元存在多余的存储空间,此时只需确定存储空间的总和等于写请求需占用存储空间的个数的缓存单元为目的单元即可,从而避免了申请多余缓存单元后导致的空间浪潮。而如果空闲的缓存单元的存储空间的综合小于写请求对应的LBA需占用的存储空间,则可以先利用全部空闲的缓存单元实现写请求对应LBA的缓存,剩余的写请求对应的LBA等待至有新的空闲的缓存单元后再利用新的空闲的缓存单元进行缓存,实现缓存单元的复用的同时,保证写请求对应全部LBA的顺利缓存。
另外,在缓存单元存在多个的情况下,在本地内存中为写数据请求申请缓存单元失败并将写数据请求挂载至待处理列表中之后,还可以实时检测是否有空闲的缓存单元,从而在检测到有空闲的缓存单元后,处理待处理列表中的写数据请求,也即将空闲的缓存单元分配给写数据请求缓存对应的LBA。
本发明实施例提供的一种固态硬盘写数据的方法,判断目的单元中的LBA是否达到预设搬移量,可以包括:
如果任一目的单元中的LBA占满该任一目的单元的存储空间,则确定该任一目的单元中的LBA达到预设搬移量,否则,则确定该任一目的单元中的LBA未达到预设搬移量。
需要说明的是,本实施例中可以设置为每个缓存单元的存储空间等于预设搬移量,从而使得只要目的单元被占满,则确定该目的单元中的LBA达到预设搬移量,进而对其中的LBA实现数据搬移,方便了缓存单元内LBA是否能够实现搬移这一步骤的快速实现。并且,在一个缓存单元被占满后则立即将其存储的LBA搬移至DDR,并在搬移的过程中即可使用下一个空闲的缓存单元,从而掩盖等待时间,进一步提高了LBA的搬移效率。
本发明实施例提供的一种固态硬盘写数据的方法,将目的单元中预设搬移量的LBA搬移至DDR中,可以包括:
利用搬移单元将目的单元中预设搬移量的LBA搬移至DDR中;其中,预设搬移量等于搬移单元单次能够搬移的LBA的最大量。
需要说明的是,本实施例中可以将预设搬移量设置为搬移单元能够搬移的LBA的最大量,从而使得每次搬移单元均能够搬移最多的LBA,从而实现了LBA搬移时对搬移单元的充分利用,有利于提高固态硬盘写数据的性能。
本发明实施例提供的一种固态硬盘写数据的方法,将写数据及对应LBA写入固态硬盘中之前,还可以包括:
检测存储在DDR中的写数据的数据量是否达到单个条带需存储的数据的数据量,如果是,则将写数据及对应LBA写入至固态硬盘中;否则,则返回执行检测存储在DDR中的写数据的数据量是否达到单个条带需存储的数据的数据量的步骤,直至检测结果为是为止。
条带为固态硬盘中的存储单元,在检测到存储在DDR中的写数据的数据量达到单个条带需存储的数据的数据量时,则将写数据及对应LBA写入至固态硬盘中,从而能够在写数据时实现整个条带的数据写入,区别于同一条带的多次写入,大大提高了写数据的效率。另外,在接收到写数据请求后,则可以在DDR中为其分配对应的地址,进而将写数据及对应LBA写入到分配的地址即可。
本发明实施例提供的一种固态硬盘写数据的方法,将写数据请求对应的写数据写入至DDR中之前,还可以包括:
在DDR中为写数据请求申请对应的写缓存,如果申请成功,则执行将写数据请求对应的写数据写入至DDR的步骤,如果申请失败,则返回执行在DDR中为写数据请求申请对应的写缓存的步骤,直至申请成功为止。
如果写缓存中存在能否供写数据存储的足够的空闲的存储空间,则能够申请成功,否则,则需要将写数据中部分数据先缓存至DDR中,待有释放的存储空间后再将写数据中剩余的部分数据缓存至释放的存储空间中,从而通过多次循环将全部写数据缓存至DDR中,从而能够以最快速度将写数据全部存储至DDR中。另外,为了避免出现数据混乱缓存的情况,本实施例中还可以在写缓存中不存在能够供写数据存储的足够的空闲的存储空间时,等待直至存在能够供写数据存储的足够的空闲的存储空间时再将写数据缓存至DDR中,具体可以根据实际需要进行设置,均在本发明的保护范围之内。
本发明实施例提供的一种固态硬盘写数据的方法,还可以包括:
如果申请写缓存或者申请缓存单元的次数达到预设次数且申请结果为申请失败,则停止继续申请,并输出相应的提示信息。
其中,预设次数可以根据实际需要进行设定,在申请写缓存或者申请缓存单元的次数达到预设次数但还未申请成功,则可能存在其他异常情况,此时不再返回执行相应的申请步骤,而是输出提示信息,以告知工作人员这种异常情况并由其进行处理。
本申请公开的技术特征中,采用双缓存机制,在DDR中设置写缓存实现写数据请求对应写数据的缓存,在本地内存中设置缓存单元实现写数据请求对应LBA的缓存,当缓存单元中的LBA个数达到预设搬移量时才对其进行搬移,不同于现有技术中LBA的单个搬移,从而大大降低了LBA搬移的次数和频率。
本发明实施例还提供了一种固态硬盘写数据的装置,如图2所示,可以包括:
接收模块11,用于:接收写数据请求,将写数据请求对应的写数据写入至DDR中;
申请模块12,用于:在本地内存中为写数据请求申请缓存单元,如果申请成功,则确定申请到的缓存单元为目的单元,并将写数据请求对应的LBA写入至目的单元中;如果申请失败,则将写数据请求挂载至待处理列表中,并返回执行为写数据请求申请缓存单元的步骤,直至申请成功为止;
搬移模块13,用于:当目的单元中的LBA达到预设搬移量时,将目的单元中预设搬移量的LBA搬移至DDR中,将写数据及对应LBA写入固态硬盘中。
本发明实施例提供的一种固态硬盘写数据的装置,申请模块可以包括:
检测单元,用于:检测本地内存中是否存在空闲的缓存单元,如果存在,则确定申请成功,否则,则确定申请失败;其中,本地内存中设置有多个缓存单元;
确定单元,用于:如果空闲的缓存单元的总存储空间大于写请求对应的LBA需占用的存储空间,则确定总存储空间等于写请求对应LBA需占用的存储空间的个数的缓存单元为目的单元,否则,则确定空闲的缓存单元均为目的单元。
本发明实施例提供的一种固态硬盘写数据的装置,搬移模块可以包括:
判断单元,用于:如果任一目的单元中的LBA占满该任一目的单元的存储空间,则确定该任一目的单元中的LBA达到预设搬移量,否则,则确定该任一目的单元中的LBA未达到预设搬移量。
本发明实施例提供的一种固态硬盘写数据的装置,搬移模块可以包括:
搬移单元,用于:利用搬移单元将目的单元中预设搬移量的LBA搬移至DDR中;其中,预设搬移量等于搬移单元单次能够搬移的LBA的最大量。
本发明实施例提供的一种固态硬盘写数据的装置,还可以包括:
检测模块,用于:将写数据及对应LBA写入固态硬盘中之前,检测存储在DDR中的写数据的数据量是否达到单个条带需存储的数据的数据量,如果是,则将写数据及对应LBA写入至固态硬盘中;否则,则返回执行检测存储在DDR中的写数据的数据量是否达到单个条带需存储的数据的数据量的步骤,直至检测结果为是为止。
本发明实施例提供的一种固态硬盘写数据的装置,还可以包括:
数据缓存模块,用于:将写数据请求对应的写数据写入至DDR中之前,在DDR中为写数据请求申请对应的写缓存,如果申请成功,则执行将写数据请求对应的写数据写入至DDR的步骤,如果申请失败,则返回执行在DDR中为写数据请求申请对应的写缓存的步骤,直至申请成功为止。
本发明实施例提供的一种固态硬盘写数据的装置,还可以包括:
提示模块,用于:如果申请写缓存或者申请缓存单元的次数达到预设次数且申请结果为申请失败,则停止继续申请,并输出相应的提示信息。
本发明实施例还提供了一种固态硬盘写数据的设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项固态硬盘写数据的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项固态硬盘写数据的方法的步骤。
需要说明的是,本发明实施例提供的一种固态硬盘写数据的装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种固态硬盘写数据的方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种固态硬盘写数据的方法,其特征在于,包括:
接收写数据请求,将所述写数据请求对应的写数据写入至DDR中;
在本地内存中为所述写数据请求申请缓存单元,如果申请成功,则确定申请到的缓存单元为目的单元,并将所述写数据请求对应的LBA写入至所述目的单元中;如果申请失败,则将所述写数据请求挂载至待处理列表中,并返回执行为所述写数据请求申请缓存单元的步骤,直至申请成功为止;
当所述目的单元中的LBA达到预设搬移量时,将所述目的单元中预设搬移量的LBA搬移至所述DDR中,将所述写数据及对应LBA写入固态硬盘中。
2.根据权利要求1所述的方法,其特征在于,在本地内存中为所述写数据请求申请缓存单元,包括:
检测本地内存中是否存在空闲的缓存单元,如果存在,则确定申请成功,否则,则确定申请失败;其中,所述本地内存中设置有多个缓存单元;
对应的,确定申请到的缓存单元为目的单元,包括:
如果空闲的缓存单元的总存储空间大于所述写数据请求对应的LBA需占用的存储空间,则确定总存储空间等于所述写数据请求对应LBA需占用的存储空间的个数的缓存单元为目的单元,否则,则确定空闲的缓存单元均为目的单元。
3.根据权利要求2所述的方法,其特征在于,判断所述目的单元中的LBA是否达到预设搬移量,包括:
如果任一所述目的单元中的LBA占满该任一目的单元的存储空间,则确定该任一目的单元中的LBA达到预设搬移量,否则,则确定该任一目的单元中的LBA未达到预设搬移量。
4.根据权利要求3所述的方法,其特征在于,将所述目的单元中预设搬移量的LBA搬移至所述DDR中,包括:
利用搬移单元将所述目的单元中预设搬移量的LBA搬移至所述DDR中;其中,所述预设搬移量等于所述搬移单元单次能够搬移的LBA的最大量。
5.根据权利要求4所述的方法,其特征在于,将所述写数据及对应LBA写入固态硬盘中之前,还包括:
检测存储在所述DDR中的写数据的数据量是否达到单个条带需存储的数据的数据量,如果是,则将所述写数据及对应LBA写入至所述固态硬盘中;否则,则返回执行检测存储在所述DDR中的写数据的数据量是否达到单个条带需存储的数据的数据量的步骤,直至检测结果为是为止。
6.根据权利要求5所述的方法,其特征在于,将所述写数据请求对应的写数据写入至DDR中之前,还包括:
在所述DDR中为所述写数据请求申请对应的写缓存,如果申请成功,则执行将所述写数据请求对应的写数据写入至DDR的步骤,如果申请失败,则返回执行在所述DDR中为所述写数据请求申请对应的写缓存的步骤,直至申请成功为止。
7.根据权利要求6所述的方法,其特征在于,还包括:
如果申请所述写缓存或者申请所述缓存单元的次数达到预设次数且申请结果为申请失败,则停止继续申请,并输出相应的提示信息。
8.一种固态硬盘写数据的装置,其特征在于,包括:
接收模块,用于:接收写数据请求,将所述写数据请求对应的写数据写入至DDR中;
申请模块,用于:在本地内存中为所述写数据请求申请缓存单元,如果申请成功,则确定申请到的缓存单元为目的单元,并将所述写数据请求对应的LBA写入至所述目的单元中;如果申请失败,则将所述写数据请求挂载至待处理列表中,并返回执行为所述写数据请求申请缓存单元的步骤,直至申请成功为止;
搬移模块,用于:当所述目的单元中的LBA达到预设搬移量时,将所述目的单元中预设搬移量的LBA搬移至所述DDR中,将所述写数据及对应LBA写入固态硬盘中。
9.一种固态硬盘写数据的设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述固态硬盘写数据的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述固态硬盘写数据的方法的步骤。
CN201910931714.7A 2019-09-29 2019-09-29 一种固态硬盘写数据的方法、装置、设备及存储介质 Active CN110647476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910931714.7A CN110647476B (zh) 2019-09-29 2019-09-29 一种固态硬盘写数据的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910931714.7A CN110647476B (zh) 2019-09-29 2019-09-29 一种固态硬盘写数据的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110647476A CN110647476A (zh) 2020-01-03
CN110647476B true CN110647476B (zh) 2021-10-15

Family

ID=68993089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910931714.7A Active CN110647476B (zh) 2019-09-29 2019-09-29 一种固态硬盘写数据的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110647476B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448517B (zh) * 2021-06-04 2022-08-09 山东英信计算机技术有限公司 一种固态硬盘写大块数据处理方法、装置、设备及介质
CN113625948B (zh) * 2021-06-28 2023-08-18 苏州浪潮智能科技有限公司 一种固态硬盘填dummy的方法、装置、设备及可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488431A (zh) * 2013-09-10 2014-01-01 华为技术有限公司 一种写数据方法及存储设备
CN103631755A (zh) * 2011-06-29 2014-03-12 北京奇虎科技有限公司 一种装机配置单的生成方法及装置
CN107422992A (zh) * 2017-07-31 2017-12-01 郑州云海信息技术有限公司 一种SSD运行时Journal保存方法及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979667B2 (en) * 2007-12-10 2011-07-12 Spansion Llc Memory array search engine
US8397080B2 (en) * 2010-07-29 2013-03-12 Industrial Technology Research Institute Scalable segment-based data de-duplication system and method for incremental backups
US8756458B2 (en) * 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631755A (zh) * 2011-06-29 2014-03-12 北京奇虎科技有限公司 一种装机配置单的生成方法及装置
CN103488431A (zh) * 2013-09-10 2014-01-01 华为技术有限公司 一种写数据方法及存储设备
CN107422992A (zh) * 2017-07-31 2017-12-01 郑州云海信息技术有限公司 一种SSD运行时Journal保存方法及***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
On-the-Fly Automated Storage Tiering with Caching and both Proactive and Observational Migration;Kazuichi Oe;;《2015 Third International Symposium on Computing and Networking (CANDAR)》;20151103;371-377 *
高速大容量固态存储***设计与实现;范晓星;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315(第 03 期);I137-315 *

Also Published As

Publication number Publication date
CN110647476A (zh) 2020-01-03

Similar Documents

Publication Publication Date Title
US9256384B2 (en) Method and system for reducing write latency in a data storage system by using a command-push model
US10853268B2 (en) Parity generating information processing system
US10860494B2 (en) Flushing pages from solid-state storage device
JP5922740B2 (ja) メモリデバイスのための装置、メモリデバイスおよびメモリデバイスの制御のための方法
US10795599B2 (en) Data migration method, host and solid state disk
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
EP2927779B1 (en) Disk writing method for disk arrays and disk writing device for disk arrays
US8341348B2 (en) Computer system and load equalization control method for the same where cache memory is allocated to controllers
EP2784683B1 (en) Storage control program, storage control method, storage system and hierarchy control apparatus thereof
CN108319430B (zh) 处理io请求的方法及装置
US10635356B2 (en) Data management method and storage controller using the same
BR112016019305B1 (pt) Controlador de arranjo, disco de estado sólido, e método para controlar disco de estado sólido para gravar dados
CN107066202B (zh) 具有多个固态盘的存储设备
CN109213693B (zh) 存储管理方法、存储***和计算机程序产品
US20190243578A1 (en) Memory buffer management for solid state drives
CN110647476B (zh) 一种固态硬盘写数据的方法、装置、设备及存储介质
US20140344503A1 (en) Methods and apparatus for atomic write processing
US20210224002A1 (en) Storage control apparatus and storage medium
US20210263668A1 (en) Information processing device and computer-readable recording medium recording storage control program
CN110119245B (zh) 用于操作nand闪存物理空间以扩展存储器容量的方法和***
US8683161B2 (en) Method and apparatus for increasing file copy performance on solid state mass storage devices
CN109739688B (zh) 快照资源空间管理方法、装置、电子设备
CN108334457B (zh) 一种io处理方法及装置
JP2008192020A (ja) Raid制御装置及びその制御方法
CN110658999B (zh) 一种信息更新方法、装置、设备及计算机可读存储介质

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