CN115373610B - 数据写入方法、装置、电子设备及存储介质 - Google Patents

数据写入方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115373610B
CN115373610B CN202211310652.6A CN202211310652A CN115373610B CN 115373610 B CN115373610 B CN 115373610B CN 202211310652 A CN202211310652 A CN 202211310652A CN 115373610 B CN115373610 B CN 115373610B
Authority
CN
China
Prior art keywords
data
cache
writing
nonvolatile memory
thread
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
CN202211310652.6A
Other languages
English (en)
Other versions
CN115373610A (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.)
Beijing Smartchip Microelectronics Technology Co Ltd
Beijing Smartchip Semiconductor Technology Co Ltd
Original Assignee
Beijing Smartchip Microelectronics Technology Co Ltd
Beijing Smartchip Semiconductor 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 Beijing Smartchip Microelectronics Technology Co Ltd, Beijing Smartchip Semiconductor Technology Co Ltd filed Critical Beijing Smartchip Microelectronics Technology Co Ltd
Priority to CN202211310652.6A priority Critical patent/CN115373610B/zh
Publication of CN115373610A publication Critical patent/CN115373610A/zh
Application granted granted Critical
Publication of CN115373610B publication Critical patent/CN115373610B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/0877Cache access modes
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明公开了一种数据写入方法、装置、电子设备及存储介质,其中,方法包括:确定缓存写满时,将缓存中的数据划分为N个数据块,N为大于1的整数;将N个数据块依次写入非易失性存储器中,并且在将第i个数据块写入非易失性存储器之前,判断是否存在优先级更高的线程需要使用非易失性存储器,其中,1<i≤N;若存在优先级更高的线程需要使用非易失性存储器,则暂停将第i个数据块写入非易失性存储器,以便执行线程。该方法通过将缓存中的数据分成了N个数据块,大大缩短每次数据写入占用的时间,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。

Description

数据写入方法、装置、电子设备及存储介质
技术领域
本申请涉及数据存储技术领域,特别涉及一种数据写入方法、装置、电子设备及存储介质。
背景技术
易失性存储器是一种断电后所存储的数据不予保存的存储器,非易失性存储器是一种断电后所存储的数据被保存的存储器。在操作系统中,常用非易失性存储器来存储断电后需要被保存的数据,如文件系统中的数据。
相关技术中,在向非易失性存储器中写入数据时,通常会采用缓存的方式,即将写入的数据先存入一块分配好的易失性存储器即缓存中,待缓存写满后再将缓存中的数据一次性提交至非易失性存储器。该方式可以使得缓存未满时的写入操作非常迅速,但是在缓存写满后一次性提交至非易失性存储器时,提交速度会比单次写入数据更耗时间,若此时有其它任务需要处理,由于非易失性存储器一直被占用,可能导致其它任务无法及时处理,导致整个系统的实时性较差。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种数据写入方法,通过将缓存中的数据分成了N个数据块,大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,以便执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
本发明的第二个目的在于提出一种计算机可读存储介质。
本发明的第三个目的在于提出一种电子设备。
本发明的第四个目的在于提出一种数据写入装置。
为达到上述目的,根据本发明第一方面实施例提出了一种数据写入方法,方法包括:确定缓存写满时,将缓存中的数据划分为N个数据块,N为大于1的整数;将N个数据块依次写入非易失性存储器中,并且在将第i个数据块写入非易失性存储器之前,判断是否存在优先级更高的线程需要使用非易失性存储器,其中,1<i≤N;若存在优先级更高的线程需要使用非易失性存储器,则暂停将第i个数据块写入非易失性存储器,以便执行线程。
根据本发明实施例的数据写入方法,在确定缓存写满时,先将缓存中的数据分为N个数据块,然后将N个数据块依次写入非易失性存储器中,并且在将第i个数据块写入非易失性存储器之前,判断是否存在优先级更高的线程需要使用非易失性存储器,如果存在优先级更高的线程需要使用非易失性存储器,则暂停将第i个数据块写入非易失性存储器,以便执行线程。由于将缓存中的数据分成了N个数据块,因此在将缓存中的数据写入非易失性存储器时,可以分成N次将数据写入非易失性存储器,相比一次将缓存中的数据写入非易失性存储器,可以大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,若存在,则及时暂停向非易失性存储器写入数据,以便优先执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
根据本发明的一个实施例,方法还包括:获取线程的时间片;根据时间片确定线程停止执行时,将第i个数据块写入非易失性存储器。
根据本发明的一个实施例,方法还包括:若未存在优先级更高的线程需要写入非易失性存储器,则将第i个数据块写入非易失性存储器。
根据本发明的一个实施例,在将第N个数据块写入非易失性存储器后,方法还包括:清空缓存,以便新的数据写入缓存。
根据本发明的一个实施例,当非易失性存储器为Flash时,缓存为N页Flash,每页Flash作为一个数据块。
为达到上述目的,根据本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有数据写入程序,该数据写入程序被处理器执行时实现前述任一个实施例的数据写入方法。
根据本发明实施例的计算机可读存储介质,通过执行上述数据写入方法的计算机程序,通过将缓存中的数据分成了N个数据块,大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,以便执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
为达到上述目的,根据本发明第三方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的数据写入程序,处理器执行程序时,实现前述任一个实施例的数据写入方法。
根据本发明实施例的电子设备,通过处理器执行上述数据写入方法的计算机程序,确定缓存写满时,通过将缓存中的数据分成了N个数据块,大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,以便执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
为达到上述目的,根据本发明第四方面实施例提出了一种数据写入装置,装置包括:划分模块,用于确定缓存写满时,将缓存中的数据划分为N个数据块,N为大于1的整数;写入模块,用于将N个数据块依次写入非易失性存储器中,并且在将第i个数据块写入非易失性存储器之前,判断是否存在优先级更高的线程需要使用非易失性存储器,若存在优先级更高的线程需要使用非易失性存储器,则暂停将第i个数据块写入非易失性存储器,以便执行线程,其中,1<i≤N。
根据本发明实施例的数据写入装置,由于将缓存中的数据分成了N个数据块,因此在将缓存中的数据写入非易失性存储器时,可以分成N次将数据写入非易失性存储器,相比一次将缓存中的数据写入非易失性存储器,可以大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,若存在,则及时暂停向非易失性存储器写入数据,以便优先执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
根据本发明的一个实施例,装置还包括:计时模块,用于获取线程的时间片;写入模块还用于根据时间片确定线程停止执行时,将第i个数据块写入非易失性存储器。
根据本发明的一个实施例,写入模块还用于:若未存在优先级更高的线程需要写入非易失性存储器,则将第i个数据块写入非易失性存储器。
根据本发明的一个实施例,写入模块还用于在将第N个数据块写入非易失性存储器后,清空缓存,以便新的数据写入缓存。
根据本发明的一个实施例,当非易失性存储器为Flash时,缓存为N页Flash,每页Flash作为一个数据块。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是相关技术中的数据写入过程的示意图;
图2是根据本发明一个实施例的数据写入方法的流程示意图;
图3是根据本发明一个实施例的数据写入过程的示意图;
图4是根据本发明一个实施例的文件系统的结构示意图;
图5是根据本发明一个实施例的数据写入装置的结构示意图;
图6是根据本发明另一个实施例的数据写入装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
需要说明的是,本申请是发明人对以下问题的认识和研究做出的:
在操作系统中,常用非易失性存储器来存储断电后需要被保存的数据,如文件系统中的数据。相关技术中,在向非易失性存储器中写入数据时,通常会采用缓存的方式,即将写入的数据先存入一块分配好的易失性存储器即缓存中,待缓存写满后再将缓存中的数据一次性提交至非易失性存储器。
具体来说,如图1所示,常见的文件系统缓存实现方式为:第1块数据写入缓存时,判断缓存是否写满,如果没有写满,则直接将第1块数据写入缓存中;第2块数据写入缓存时,如果缓存仍然没有写满,则将第2块数据也写入缓存中;继续写入数据,当缓存没有写满时,都仅写入缓存中;到第N块数据写入时,判断缓存已经写满,则将缓存中的数据一次提交到非易失性存储器中,然后擦除缓存,后续接收到的数据仍然先写入缓存中,并在写满后一次性提交到非易失性存储器中。
上述方式可以使得缓存没有写满时的写入操作非常迅速,但是在缓存写满后一次性提交至非易失性存储器时,提交速度会比单次写入数据更耗时间。
实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果能在规定的时间内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是实时操作系统的主要特点。实时操作系统中必然存在着若干个实时任务,这些任务通常与某些个外部设备相关,能反应或控制相应的外部设备,因而带有某种程度的紧迫性。如果某一个外部设备一直被占用,则可能影响到其它任务的实时性,因此在实时操作系统设计时需要考虑到各个任务占用时间的长短。
在对实时操作系统的任务进行设计时,会根据任务优先执行的程度给任务设置优先级。优先级反转问题是实时操作系统中出现最多的问题,优先级反转即共享资源的分配可导致优先级低的任务先执行,优先级高的任务后执行。在操作系统实时性要求高的场合,如实时操作系统,文件系统写满缓存后一次提交的时间占用在一些场景下是不能够满足实时性要求的,例如,在缓存提交的同时,一个优先级更高的线程要优先使用无条件等待方式抢占操作同一块非易失性存储器,这时如果正好遇到低优先级的线程正在提交缓存中的数据至非易失性存储器中,就会使得高优先级的线程进入挂起状态,不满足实时操作系统的实时性要求,因此在实时操作系统进行设计时,需要考虑到优先级反转发生的情况,并规避此类情况发生。
基于此,本发明的实施例提供了一种数据写入方法、装置、电子设备及存储介质,通过将缓存中的数据分成N个数据块,以大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,以便执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
下面结合附图描述本发明实施例的数据写入方法、装置、电子设备及存储介质。
图2是根据本发明一个实施例的数据写入方法的流程示意图。
如图2所示,该数据写入方法包括以下步骤:
S101,确定缓存写满时,将缓存中的数据划分为N个数据块,N为大于1的整数。
具体地,在将数据(包括新增数据或修改数据等)写入非易失性存储器时,先将数据写入缓存中,待缓存写满后,再将缓存中的数据写入非易失性存储器中。在将缓存中数据写入非易失性存储器之前,先将缓存中的数据分为N个数据块,N为大于1的整数。其中,数据块的划分方式可基于实际情况进行确定,例如,当非易失性存储器为Flash时,缓存可为N页Flash,此时每页Flash可以作为一个数据块。由于缓存中的数据被划分为N个数据块,显然每个数据块写入非易失性存储器的时间都较短。
需要说明的是,缓存(即易失性存储器)包括但不限于是寄存器、高速缓存、RAM(Random Access Memory,随机存取存储器)等,非易失性存储器包括但不限于是ROM(ReadOnly Memory,只读存储器)、EEPROM(Electrically Erasable Programmable Read OnlyMemory,带电可擦可编程只读存储器)、闪速存储器Flash等。
S102,将N个数据块依次写入非易失性存储器中,并且在将第i个数据块写入非易失性存储器之前,判断是否存在优先级更高的线程需要使用非易失性存储器,其中,1<i≤N。
S103,若存在优先级更高的线程需要使用非易失性存储器,则暂停将第i个数据块写入非易失性存储器,以便执行线程。
在一些实施例中,若未存在优先级更高的线程需要写入非易失性存储器,则将第i个数据块写入非易失性存储器。
具体来说,在将缓存中的数据划分为N个数据块后,将N个数据块依次写入非易失性存储器。其中,在写入第1个数据块时,直接将该数据块写入非易失性存储器。
在写入第2个数据块时,先判断当前是否存在优先级更高的线程需要使用非易失性存储器,即是否存在其它更加紧迫的任务需要抢占非易失性存储器。若存在,则暂停将第2个数据块写入非易失性存储器,并优先执行优先级更高的线程,以及在优先级更高的线程执行完成后,再将第2个数据块写入非易失性存储器,从而保证了优先级更高的线程能够被及时执行,保证操作系统按照优先级顺序执行任务,避免优先级反转的情况发生,保证了系统的高实时性要求;若未存在优先级更高的线程需要写入非易失性存储器,表明将缓存中的数据块写入非易失性存储器的优先级最高,此时直接将第2个数据块写入非易失性存储器。
在写入第3个数据块时,采用与第2个数据块相同的写入方式,依次类推,直至第N个数据块写入非易失性存储器,至此完成了缓存中的所有数据写入非易失性存储器。
进一步的,在将第N个数据块写入非易失性存储器后,数据写入方法还包括:清空缓存,以便新的数据写入缓存。也就是说,在缓存中的所有数据块都保存至非易失性存储器后,清空缓存中的所有数据,以便新的数据可以正常写入缓存中。
可以理解的是,由于每次数据块的写入时间均较短,并不会长时间占用非易失性存储器,因此即使在数据块写入期间恰好存在优先级更高的线程需要执行,也能够及时切换至优先级更高的线程,从而保证了系统的高实时性要求。
上述实施例中,由于将缓存中的数据分成了N个数据块,因此在将缓存中的数据写入非易失性存储器时,可以分成N次将数据写入非易失性存储器,相比一次将缓存中的数据写入非易失性存储器,可以大大缩短每次数据写入占用的时间,且在每次数据写入之前都可以判断是否存在优先级更高的线程,若存在,则及时暂停向非易失性存储器写入数据,以便优先执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
在一些实施例中,数据写入方法还包括:获取线程的时间片;根据时间片确定线程停止执行时,将第i个数据块写入非易失性存储器。
需要说明的是,在线程执行时,系统会为线程分配一个时间片,用于指示该线程的执行时间,当时间片轮转完后,相应的线程执行完成,因此可基于时间片确定优先级更高的线程有无执行完成,并在执行完成时,及时将数据块写入非易失性存储器。
以写入第2个数据块为例。在写入第2个数据块时,先判断当前是否存在优先级更高的线程需要使用非易失性存储器。若存在,则暂停将第2个数据块写入非易失性存储器,并优先执行优先级更高的线程,同时获取该线程的时间片,并在该时间片轮转完后,将第2个数据块及时写入非易失性存储器。由此,基于时间片即可在优先级更高的线程停止执行时及时切换线程,保证缓存中的数据能够及时存储至非易失性存储器中。
下面将结合具体的实施方式进一步详述本申请的技术方案:
如图3所示,数据写入方法包括:
S201,在缓存已经写满时,将缓存中的数据划分为N个数据块,并将第1个数据块写入非易失性存储器中。
S202,在将第2个数据块写入非易失性存储器之前,判断是否存在优先级更高的线程需要使用非易失性存储器,如果存在优先级更高的线程,暂停向非易失性存储器中写入第2个数据块,并执行优先级更高的线程;如果不存在优先级更高的线程,直接将第2个数据块写入非易失性存储器中。
S203,在优先级更高的线程停止执行时,将第2个数据块写入非易失性存储器中。
S204,在将第3个数据块写入非易失性存储器之前,判断是否存在优先级更高的线程需要使用非易失性存储器,如果存在优先级更高的线程,暂停向非易失性存储器中写入第3个数据块,并执行优先级更高的线程;如果不存在优先级更高的线程,直接将第3个数据块写入非易失性存储器中。
依次类推,直至将第N个数据块写入非易失性存储器中。
进一步的,作为一个更为具体的示例,在文件系统使用的非易失性存储器为Flash时,缓存可以为N页Flash,每页Flash可作为一个数据块,在缓存写满时,不是一次性提交至非易失性存储器中,而是分段提交,具体是先将第1页Flash数据写入非易失性存储器中,然后判断是否有优先级更高的线程需要抢占,如果有,则先执行优先级更高的线程,而后根据时间片确定线程停止执行时,再将第2页Flash数据写入非易失性存储器中;如果没有优先级更高的线程,则直接将第2页Flash数据写入非易失性存储器中。同样地,后续每页Flash数据写入前都需要判断是否有优先级更高的线程需要抢占,直至将所有页Flash数据写入非易失性存储器中。
进一步的,本实施例的数据写入方法可以应用于文件系统(例如,磁盘文件系统、网络文件系统和专用文件系统),如图4所示,文件系统包括缓存管理器301、缓存302、冲刷器303、策略引擎304和非易失性存储器305。
其中,缓存管理器301包括日志部件306,日志部件306用于维护日志,日志是文件系统所有数据写入请求的时序记录。日志部件306中的日志条目可以根据策略引擎304中的策略,来准备冲刷的缓存302中的数据块。冲刷器303是管理缓存302与非易失性存储器305之间的数据流的通信机。当缓存302中的数据写满后,冲刷器303根据策略引擎304所提供的策略参考日志部件306将缓存302中的数据写入非易失性存储器305中。策略引擎304用于提供数据写入的策略(即本实施例的数据写入方法)。
具体来说,在缓存302已经写满时,日志部件306根据策略引擎304提供的本实施例的数据写入方法将缓存302中的数据划分为N个数据块,策略引擎304向冲刷器303发出将缓存302中的第1个数据块写入非易失性存储器305中的控制指令,冲刷器303将缓存302中的第1个数据块写入非易失性存储器305中。
在冲刷器303将缓存302中的第2个数据块写入非易失性存储器305之前,策略引擎304判断是否存在优先级更高的线程需要使用非易失性存储器305,如果存在优先级更高的线程,策略引擎304向冲刷器303发出暂停向非易失性存储器305中写入缓存302中的第2个数据块的控制指令,并执行优先级更高的线程,在优先级更高的线程停止执行时,策略引擎304向冲刷器303发出将缓存302中的第2个数据块写入非易失性存储器305中的控制指令,冲刷器303将缓存302中的第2个数据块写入非易失性存储器305中;如果不存在优先级更高的线程,策略引擎304直接向冲刷器303发出将缓存302中的第2个数据块写入非易失性存储器305中的控制指令,冲刷器303将缓存302中的第2个数据块写入非易失性存储器305中。
在冲刷器303将缓存302中的第3个数据块写入非易失性存储器305之前,策略引擎304判断是否存在优先级更高的线程需要使用非易失性存储器305,如果存在优先级更高的线程,策略引擎304向冲刷器303发出将缓存302中的第3个数据块写入非易失性存储器305中的控制指令,并执行优先级更高的线程;如果不存在优先级更高的线程,策略引擎304直接向冲刷器303发出将缓存302中的第3个数据块写入非易失性存储器305中的控制指令,冲刷器303将缓存302中的第3个数据块写入非易失性存储器305中。
依次类推,直至冲刷器303将缓存302中的第N个数据块写入非易失性存储器305中。
在上述实施例中,考虑了系统的实时性要求,在缓存写满时,不是一次性将数据提交至非易失性存储器,而是分段式提交,从而能够有效解决缓存写满后一次性提交的时间过长导致系统无法满足实时性要求的问题,提高了系统的实时性。
综上所述,根据本发明实施例的数据写入方法,由于将缓存中的数据分成了N个数据块,因此在将缓存中的数据写入非易失性存储器时,可以分成N次将数据写入非易失性存储器,相比一次将缓存中的数据写入非易失性存储器,可以大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,若存在,则及时暂停向非易失性存储器写入数据,以便执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
对应上述实施例,本发明的实施例还提出了一种计算机可读存储介质,其上存储有数据写入程序,该数据写入程序被处理器执行时实现前述任一个实施例的数据写入方法。
根据本发明实施例的计算机可读存储介质,通过执行上述数据写入方法的计算机程序,通过将缓存中的数据分成N个数据块,大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,以便执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
对应上述实施例,本发明的实施例还提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的数据写入程序,处理器执行程序时,实现前述任一个实施例的数据写入方法。
根据本发明实施例的电子设备,通过处理器执行上述数据写入方法的计算机程序,通过将缓存中的数据分成N个数据块,大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,以便执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
对应上述实施例,本发明的实施例还提出了一种数据写入装置,如图5所示,装置包括:划分模块10和写入模块20。
其中,划分模块10用于确定缓存写满时,将缓存中的数据划分为N个数据块,N为大于1的整数;写入模块20用于将N个数据块依次写入非易失性存储器中,并且在将第i个数据块写入非易失性存储器之前,判断是否存在优先级更高的线程需要使用非易失性存储器,若存在优先级更高的线程需要使用非易失性存储器,则暂停将第i个数据块写入非易失性存储器,以便执行线程,其中,1<i≤N。
在一些实施例中,如图6所示,装置还包括计时模块30,其中,计时模块30用于获取线程的时间片;写入模块20还用于根据时间片确定线程停止执行时,将第i个数据块写入非易失性存储器。
在一些实施例中,写入模块20还用于:若未存在优先级更高的线程需要写入非易失性存储器,则将第i个数据块写入非易失性存储器。
在一些实施例中,写入模块20还用于在将第N个数据块写入非易失性存储器后,清空缓存,以便新的数据写入缓存。
在一些实施例中,当非易失性存储器为Flash时,缓存为N页Flash,每页Flash作为一个数据块。
需要说明的是,关于数据写入装置未披露的细节,请参考关于数据写入方法所披露的细节,具体这里不再赘述。
根据本发明实施例的数据写入装置,由于将缓存中的数据分成了N个数据块,因此,在将缓存中的数据写入非易失性存储器时,可以分成N次将数据写入非易失性存储器,相比一次将缓存中的数据写入非易失性存储器,可以大大缩短每次数据写入占用的时间,且在数据写入之前判断是否存在优先级更高的线程,若存在,则及时暂停向非易失性存储器写入数据,以便执行优先级更高的线程,避免了数据写入占用的时间较长导致优先级翻转的情况发生,从而提高了操作系统的实时性。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,本发明实施例中所使用的“第一”、“第二”等术语,仅用于描述目的,而不可以理解为指示或者暗示相对重要性,或者隐含指明本实施例中所指示的技术特征数量。由此,本发明实施例中限定有“第一”、“第二”等术语的特征,可以明确或者隐含地表示该实施例中包括至少一个该特征。在本发明的描述中,词语“多个”的含义是至少两个或者两个及以上,例如两个、三个、四个等,除非实施例中另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (5)

1.一种数据写入方法,其特征在于,应用于文件系统,所述文件系统包括缓存管理器、缓存、冲刷器、策略引擎和非易失性存储器,所述缓存管理器包括日志部件,所述日志部件用于根据所述策略引擎中的数据写入的策略准备冲刷的所述缓存中的数据块,所述冲刷器是管理所述缓存与所述非易失性存储器之间的数据流的通信机,所述方法包括:
确定缓存写满时,所述日志部件根据所述策略引擎中的数据写入的策略,将所述缓存中的数据划分为N个数据块,N为大于1的整数;
首先,直接写入第1个数据块;在写入第1个数据块时,所述策略引擎向所述冲刷器发出将所述缓存中的第1个数据块写入所述非易失性存储器中的控制指令,所述冲刷器将所述缓存中的第1个数据块写入所述非易失性存储器;
然后,在写入第i个数据块时,所述策略引擎先进行优先级判断,再执行优先级线程或者写入操作;判断依据为是否存在优先级更高的线程需要得到执行:如果存在优先级更高的线程需要得到执行,所述策略引擎则向所述冲刷器发出暂停将所述第i个数据块写入所述非易失性存储器的控制指令,并执行所述线程,以及所述策略引擎获取所述线程的时间片,并根据所述时间片确定所述线程停止执行时,再向所述冲刷器发出将所述第i个数据块写入所述非易失性存储器中的控制指令,所述冲刷器将所述第i个数据块写入所述非易失性存储器中;如果不存在优先级更高的线程需要执行,则直接写入第i个数据块;其中,1<i≤N。
2.根据权利要求1所述的数据写入方法,其特征在于,在将第N个数据块写入所述非易失性存储器后,所述方法还包括:
清空所述缓存,以便新的数据写入所述缓存。
3.根据权利要求1所述的数据写入方法,其特征在于,当所述非易失性存储器为Flash时,所述缓存为N页Flash,每页Flash作为一个所述数据块。
4.一种计算机可读存储介质,其特征在于,其上存储有数据写入程序,该数据写入程序被处理器执行时实现根据权利要求1-3中任一项所述的数据写入方法。
5.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据写入程序,所述处理器执行所述程序时,实现根据权利要求1-3中任一项所述的数据写入方法。
CN202211310652.6A 2022-10-25 2022-10-25 数据写入方法、装置、电子设备及存储介质 Active CN115373610B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211310652.6A CN115373610B (zh) 2022-10-25 2022-10-25 数据写入方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211310652.6A CN115373610B (zh) 2022-10-25 2022-10-25 数据写入方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115373610A CN115373610A (zh) 2022-11-22
CN115373610B true CN115373610B (zh) 2023-08-18

Family

ID=84074130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211310652.6A Active CN115373610B (zh) 2022-10-25 2022-10-25 数据写入方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115373610B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673188A (zh) * 2008-09-09 2010-03-17 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法
CN106527974A (zh) * 2016-10-09 2017-03-22 华为技术有限公司 一种写数据的方法、设备及系统
CN107193505A (zh) * 2017-06-14 2017-09-22 郑州云海信息技术有限公司 一种固态硬盘的读写方法、固态硬盘和数据处理系统
CN107832007A (zh) * 2017-10-25 2018-03-23 记忆科技(深圳)有限公司 一种提高ssd综合性能的方法
CN111221749A (zh) * 2019-11-15 2020-06-02 新华三半导体技术有限公司 数据块写入方法、装置、处理器芯片及Cache
CN111290973A (zh) * 2020-05-11 2020-06-16 深圳市科信通信技术股份有限公司 数据写入方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632715B2 (en) * 2015-08-10 2017-04-25 International Business Machines Corporation Back-up and restoration of data between volatile and flash memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673188A (zh) * 2008-09-09 2010-03-17 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法
CN106527974A (zh) * 2016-10-09 2017-03-22 华为技术有限公司 一种写数据的方法、设备及系统
CN107193505A (zh) * 2017-06-14 2017-09-22 郑州云海信息技术有限公司 一种固态硬盘的读写方法、固态硬盘和数据处理系统
CN107832007A (zh) * 2017-10-25 2018-03-23 记忆科技(深圳)有限公司 一种提高ssd综合性能的方法
CN111221749A (zh) * 2019-11-15 2020-06-02 新华三半导体技术有限公司 数据块写入方法、装置、处理器芯片及Cache
CN111290973A (zh) * 2020-05-11 2020-06-16 深圳市科信通信技术股份有限公司 数据写入方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN115373610A (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
US9396353B2 (en) Data allocation among devices with different data rates
US20070118838A1 (en) Task execution controller, task execution control method, and program
US11403224B2 (en) Method and system for managing buffer device in storage system
US9229765B2 (en) Guarantee real time processing of soft real-time operating system by instructing core to enter a waiting period prior to transferring a high priority task
WO2012026034A1 (ja) スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
CN104111897A (zh) 一种数据处理方法、装置及计算机系统
US5825649A (en) Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function
US20170185340A1 (en) Memory allocation method and apparatus
CN105574141B (zh) 一种对数据库进行数据迁移的方法和装置
US20090157969A1 (en) Buffer cache management to prevent deadlocks
CN110888769B (zh) 数据处理方法及计算机设备
US7117496B1 (en) Event-based synchronization
CN115373610B (zh) 数据写入方法、装置、电子设备及存储介质
US9442790B2 (en) Computer and dumping control method
CN113535087A (zh) 数据迁移过程中的数据处理方法、服务器及存储系统
US20140068214A1 (en) Information processing apparatus and copy control method
CN110413197B (zh) 管理存储系统的方法、设备和计算机程序产品
US20240004563A1 (en) Performance Efficient and Resilient Creation of Network Attached Storage Obects
US10891226B1 (en) Virtual address space dump in a computer system
US20110010580A1 (en) Memory apparatus, memory controlling method and program
US20100174873A1 (en) Priority Promotion for Service Requests
WO2019044226A1 (ja) アクセス制御装置
JP4754531B2 (ja) デバイスへのアクセス制御方法および処理装置
CN117033000B (zh) 数据调度方法、设备
CN111930707A (zh) 一种windows云迁移的盘符修正方法及系统

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