CN109614048A - 基于闪存的数据读写方法、装置及计算机可读存储介质 - Google Patents

基于闪存的数据读写方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN109614048A
CN109614048A CN201811507300.3A CN201811507300A CN109614048A CN 109614048 A CN109614048 A CN 109614048A CN 201811507300 A CN201811507300 A CN 201811507300A CN 109614048 A CN109614048 A CN 109614048A
Authority
CN
China
Prior art keywords
data
flash memory
read
buffer zone
write
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.)
Granted
Application number
CN201811507300.3A
Other languages
English (en)
Other versions
CN109614048B (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.)
SHENZHEN SILICONGO SEMICONDUCTOR CO Ltd
Original Assignee
SHENZHEN SILICONGO SEMICONDUCTOR 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 SHENZHEN SILICONGO SEMICONDUCTOR CO Ltd filed Critical SHENZHEN SILICONGO SEMICONDUCTOR CO Ltd
Priority to CN201811507300.3A priority Critical patent/CN109614048B/zh
Publication of CN109614048A publication Critical patent/CN109614048A/zh
Application granted granted Critical
Publication of CN109614048B publication Critical patent/CN109614048B/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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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]

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种基于闪存的数据读写方法,包括以下步骤:对闪存进行写操作时,锁定一个缓存区域;将待写入数据存储至所述缓存区域;读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;在检测到数据写入完成时,释放所述缓存区域。本发明还公开了一种基于闪存的数据读写装置及计算机可读存储介质。本发明通过锁定缓存区域,并将待写入数据先存储至所述缓存区域,在未增加数据处理开销的基础上,实现了数据的有效写入,从而提升了数据写入的效率,并且降低了生产成本。

Description

基于闪存的数据读写方法、装置及计算机可读存储介质
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于闪存的数据读写方法、装置及计算机可读存储介质。
背景技术
闪存(FLASH)则是一种非易失性内存,在没有电流供应的条件下也能够长久地保持数据,传统的处理闪存写异常的处理方式一般有两种:1、当发生写异常时,将数据从闪存的buffer中读回,再做重新写入的操作,这样导致流程难控制,写异常处理效率低下;2、或者将一定量的待写入数据预先存储至DDR(Double Data Rate,双数据速率存储器)中,在发生写故障时,再从DDR重新获取数据,并重新执行写入操作,这样导致闪存的生产成本提高。
当闪存发生读数据故障时,处理方法一般为FW(Firmware,固件)就会控制FC(Flash Control,闪存控制)模块去对FLASH进行重读操作,并将数据读取至DDR(StaticRandom-Access Memory,静态随机存取存储器)上,每次做重读操作都直接传输到DDR上,效率很低。
根据上述读写异常处理方法处理FLASH读写数据时的读写异常,导致读写异常的处理效率低,成本高。
发明内容
本发明的主要目的在于提供一种基于闪存的数据读写方法、装置及计算可读存储介质,旨在实现提高闪存读写异常处理的效率,降低读写异常处理的成本。
为实现上述目的,本发明提供一种基于闪存的数据读写方法,所述基于闪存的数据读写方法包括以下步骤:
对闪存进行写操作时,锁定一个缓存区域;
将待写入数据存储至所述缓存区域;
读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;
在检测到数据写入完成时,释放所述缓存区域。
优选地,所述对闪存进行写操作时,锁定一个缓存区域的步骤包括:
在对闪存进行写操作时,向缓存管理器发送缓存标签,以供所述缓存管理器在接收到所述缓存标签时,分配所述缓存区域,并通过所述缓存标签标记所述缓存区域后,锁定所述缓存区域。
优选地,所述闪存控制器读取所述缓存区域中存储的所述待写入数据,并写入所述闪存的步骤之后,还包括:
在检测到数据写入异常时,执行读取所述缓存区域中存储的所述待写入数据,并写入所述闪存的步骤。
优选地,所述对闪存进行写操作时,锁定一个缓存区域的步骤之前,还包括:
对缓存管理器进行初始化,确定所述缓存区域的数据容量大小,并根据所述数据容量大小划分所述缓存区域。
优选地,所述基于闪存的数据读写方法包括以下步骤:
对闪存进行读操作时,锁定一个缓存区域;
读取所述闪存中的待读取数据,并写入所述缓存区域;
对所述缓存区域中存储的所述待读取数据进行解码,根据解码结果判断所述待读取数据是否正常;
在所述待读取数据正常时,输出所述待处理数据,并释放所述缓存区域。
优选地,所述对所述缓存区域中存储的所述待读取数据进行解码,根据解码结果判断所述待读取数据是否正常的步骤之后,还包括:
在所述待读取数据异常时,删除所述缓存区域存储的数据,并执行所述读取所述闪存中的待读取数据,并写入所述缓存区域的步骤。
优选地,所述对闪存进行读操作时,锁定一个缓存区域的步骤之前,还包括:
对缓存管理器进行初始化,确定所述缓存区域的数据容量大小,并根据所述数据容量大小划分所述缓存区域。
优选地,所述对所述缓存区域中存储的所述待读取数据进行解码,根据解码结果判断所述待读取数据是否正常的步骤包括:
通过缓存管理器对所述待读取数据进行解码;
在所述缓存管理器解码失败时,进行重读或软解码;
将解码结果发送至所述缓存区域;
所述缓存管理器根据解码结果判断所述待读取数据是否正常。
此外,为实现上述目的,本发明还提供一种基于闪存的数据读写装置,其特征在于,所述基于闪存的数据读写装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据读写程序,所述数据读写程序被所述处理器执行时实现如上所述的基于闪存的数据读写方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据读写程序,所述数据读写程序被处理器执行时实现如上所述的基于闪存的数据读写方法的步骤。
本发明实施例提出的一种基于闪存的数据读写方法、装置及计算可读存储介质,对闪存进行写操作时,锁定一个缓存区域;将待写入数据存储至所述缓存区域;读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;在检测到数据写入完成时,释放所述缓存区域。由于在进行数据写操作时,预先锁定了一个缓存区域,并将待写入数据先存储至所述被锁定缓存区域,因此,在数据写入闪存时可以直接从所述缓存区域读取待写入数据,并写入闪存,这样提高了数据写入闪存的效率,降低了闪存的生成成本。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明基于闪存的数据读写方法第一实施例的流程示意图;
图3为本发明基于闪存的数据读写方法第二实施例的流程示意图;
图4为本发明基于闪存的数据读写方法将数据写入闪存的信令流程示意图;
图5为本发明基于闪存的数据读写方法读取闪存数据的信令流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:
对闪存进行写操作时,锁定一个缓存区域;
将待写入数据存储至所述缓存区域;
读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;
在检测到数据写入完成时,释放所述缓存区域。
由于现有技术处理FLASH读写数据时的读写异常时,处理效率低,成本高。本发明实施例提出的一种基于闪存的数据读写方法、装置及计算可读存储介质,对闪存进行写操作时,锁定一个缓存区域;将待写入数据存储至所述缓存区域;读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;在检测到数据写入完成时,释放所述缓存区域。由于在进行数据写操作时,预先锁定了一个缓存区域,并将待写入数据先存储至所述被锁定缓存区域,因此,在数据写入闪存时可以直接从所述缓存区域读取待写入数据,并写入闪存,这样提高了数据写入闪存的效率,降低了闪存的生成成本。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端可以是闪存(FLASH)。
如图1所示,该终端可以包括:处理器1001,例如微处理,网络接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据读写程序。
在图1所示的终端中,网络接口1003主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据读写程序,并执行以下操作:
对闪存进行写操作时,锁定一个缓存区域;
将待写入数据存储至所述缓存区域;
读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;
在检测到数据写入完成时,释放所述缓存区域。
进一步地,处理器1001可以调用存储器1005中存储的数据读写程序,还执行以下操作:
在对闪存进行写操作时,向缓存管理器发送缓存标签,以供所述缓存管理器在接收到所述缓存标签时,分配所述缓存区域,并通过所述缓存标签标记所述缓存区域后,锁定所述缓存区域。
进一步地,处理器1001可以调用存储器1005中存储的数据读写程序,还执行以下操作:
在检测到数据写入异常时,执行读取所述缓存区域中存储的所述待写入数据,并写入所述闪存的步骤。
进一步地,处理器1001可以调用存储器1005中存储的数据读写程序,还执行以下操作:
对缓存管理器进行初始化,确定所述缓存区域的数据容量大小,并根据所述数据容量大小划分所述缓存区域。
进一步地,处理器1001可以调用存储器1005中存储的数据读写程序,还执行以下操作:
对闪存进行读操作时,锁定一个缓存区域;
读取所述闪存中的待读取数据,并写入所述缓存区域;
对所述缓存区域中存储的所述待读取数据进行解码,根据解码结果判断所述待读取数据是否正常;
在所述待读取数据正常时,输出所述待处理数据,并释放所述缓存区域。
进一步地,处理器1001可以调用存储器1005中存储的数据读写程序,还执行以下操作:
在所述待读取数据异常时,删除所述缓存区域存储的数据,并执行所述读取所述闪存中的待读取数据,并写入所述缓存区域的步骤。
进一步地,处理器1001可以调用存储器1005中存储的数据读写程序,还执行以下操作:
对缓存管理器进行初始化,确定所述缓存区域的数据容量大小,并根据所述数据容量大小划分所述缓存区域。
进一步地,处理器1001可以调用存储器1005中存储的数据读写程序,还执行以下操作:
通过缓存管理器对所述待读取数据进行解码;
在所述缓存管理器解码失败时,进行重读或软解码;
将解码结果发送至所述缓存区域;
所述缓存管理器根据解码结果判断所述待读取数据是否正常。
参照图2,本发明基于闪存的数据读写方法第一实施例,所述基于闪存的数据读写方法包括:
步骤S10、对闪存进行写操作时,锁定一个缓存区域;
在本实施例中,执行主体可以是基于闪存的数据读写装置,在执行数据写操作时,一般由固件控制写操作进程,因此,在对闪存进行写操作时,可以通过固件向缓存管理器BM(Buffer Manage)申请一个缓存区域Buffer,缓存管理器在接收到Buffer申请时,分配一个Buffer,并锁定所述缓存区域Buffer。其具体步骤可以包括:
步骤S11、在对闪存进行写操作时,向缓存管理器发送缓存标签,以供所述缓存管理器在接收到所述缓存标签时,分配所述缓存区域,并通过所述缓存标签标记所述缓存区域后,锁定所述缓存区域。
固件FW(Firmware)向BM发送一个缓存标签Lable,当BM接收到Lable时,可以根据Lable确定对应的缓存区域Buffer。当所述缓存管理器BM根据Lable确定对应的缓存区域Buffer后,BM锁定所述缓存区域Buffer。当所述缓存区域Buffer被锁定之后,其它进程不可对所述缓存区域Buffer进行操作,仅有有所述缓存区域Buffer被BM释放之后,其它进程才可以对所述缓存区域Buffer进行操作。
需要说明的是,BM中不存在相同的Lable,因此可以根据所述Lable确定不同的缓存区域Buffer,所述BM中设置有标签队列Lable queue,用于暂时存放FW发送过来的Lable,BM可以顺序从Lable queue获取Lable,以实现锁定缓存区域Buffer的目的。
优选地,在所述步骤S10之前,还包括:
步骤S50、对缓存管理器进行初始化,确定所述缓存区域的数据容量大小,并根据所述数据容量大小划分所述缓存区域。
BM的总缓存容量为T(T一般为256kb),在进行数据写操作之前,可以先对BM进行初始化,在对BM初始化是,确定每个Lable对应的数据缓存容量的大小,进而,根据所述每个Lable对应的数据缓存容量的大小将所述BM的总缓存容量划分为多个Lable对应的缓存区域Buffer。
步骤S20、将待写入数据存储至所述缓存区域;
步骤S30、读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;
在本实施例中,FW通过Lable向BM申请到所述缓存区域Buffer后,将待写入数据写入所述Buffer中,然后向闪存控制器FC(Flash control)发送写入指令,当FC接收到写入指令时,从对应的Buffer中读取所述待写入数据,然后FC将读取到的所述待写入数据写入闪存,其中,所述闪存可以是NAND Flash。当所述FC执行完将代写入数据写入闪存的步骤后,闪存向FC反馈写入状态指令。FC将所述写入状态指令迅速反馈至BM,使得BM可以根据闪存反馈的写入状态指令判断当前写操作是否出现异常(例如判断bit0是否为1,为1则判定出现异常,否则判定正常写入),即数据写入是否完成。
步骤S40、在检测到数据写入完成时,释放所述缓存区域。
在本实施例中,当BM检测到数据写入正常时,释放所述缓存区域Buffer,数据写入动作完成。
优选地,所述步骤S40之后,还包括:
步骤S60、在检测到数据写入异常时,执行读取所述缓存区域中存储的所述待写入数据,并写入所述闪存的步骤。
在本实施例中,当BM根据所述写入状态指令判定FC将数据写入闪存发生异常写入异常时,BM将异常信息反馈至CQ(Completion Queue,完成队列),所述FW可以主动读取CQ中的数据,当FW读取到所述CQ中的写入异常时,FW再次向FC发送写入指令,使得FC再次从所述Buffer中读所述待写入数据,并再次写入闪存,直至写入完成,BM释放所述Buffer。
需要说明的是,在发生数据写入异常时,可以确定闪存中发生写入异常的具体闪存页,在再次执行将待写入数据写入闪存的操作时,可以选择另正常的闪存页作为写入目标。
如说明书附图4所示,为本发明数据写入过程的信令流程示意图,图中:
1代表:CPU发送Lable至Lable Queue;
2代表:BM主动检测Lable Queue中是否有Lable;
3代表:BM给获取到的Lable分配Buffer,并锁定Buffer;
4代表:HOST将待写入数据写入Buffer;
5代表:FW控制FC读取Buffer中的待写入数据;
6代表:FC将读取到待写入数据写入FLASH;
7代表:FLASH反馈写入状态;
8代表:FC将状态反馈给BM;
9代表:BM根据FC反馈的状态做判断,若正常,则释放Buffer,BM将信息反馈给CQ,表示已将数据正常写入flash
若异常,则将信息反馈给CQ,表示数据没有写进flash,待FW处理;
10代表:Fw主动检测CQ,若CQ报出来该Lable有异常,则对该Lable做一个重新写入Flash的一个动作。
本发明实施例通过对闪存进行写操作时,锁定一个缓存区域;将待写入数据存储至所述缓存区域;读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;在检测到数据写入完成时,释放所述缓存区域。由于在进行数据写操作时,预先锁定了一个缓存区域,并将待写入数据先存储至所述被锁定缓存区域,因此,在数据写入闪存时可以直接从所述缓存区域读取待写入数据,并写入闪存,这样提高了数据写入闪存的效率,降低了闪存的生成成本。
进一步地,参照图3,本发明基于闪存的数据读写方法第二实施例,基于上述第一实施例,所述基于闪存的数据读写方法,还包括:
步骤S100、对闪存进行读操作时,锁定一个缓存区域;
在本实施例中,执行主体可以是基于闪存的数据读写装置,在执行数据读操作时,一般由固件控制读操作进程,因此,在对闪存进行读操作时,可以通过固件控制缓存管理器BM(Buffer Manage)锁定一个缓存区域Buffer。
具体地,固件FW(Firmware)向BM发送一个缓存标签Lable,当BM接收到Lable时,可以根据Lable确定对应的缓存区域Buffer。当所述缓存管理器BM根据Lable确定对应的缓存区域Buffer后,BM锁定所述缓存区域Buffer。当所述缓存区域Buffer被锁定之后,其它进程不可对所述缓存区域Buffer进行操作,仅有有所述缓存区域Buffer被BM释放之后,其它进程才可以对所述缓存区域Buffer进行操作。
需要说明的是,BM中不存在相同的Lable,因此可以根据所述Lable确定不同的缓存区域Buffer,所述BM中设置有标签队列Lable queue,用于暂时存放FW发送过来的Lable,BM可以顺序从Lable queue获取Lable,以实现锁定缓存区域Buffer的目的。
优选地,在所述步骤S100之前,还包括:
步骤S500、对缓存管理器进行初始化,确定所述缓存区域的数据容量大小,并根据所述数据容量大小划分所述缓存区域。
BM的总缓存容量为T(T一般为256kb),在进行数据写操作之前,可以先对BM进行初始化,在对BM初始化是,确定每个Lable对应的数据缓存容量的大小,进而,根据所述每个Lable对应的数据缓存容量的大小将所述BM的总缓存容量划分为多个Lable对应的缓存区域Buffer。
需要说明的是,所述读操作所使用的Buffer和写操作所使用的Buffer可以不相同,例如,所述写操作对应的Buffer的数据容量大小可以为16Kb,读操作对用的Buffer的数据容量大小可以为4Kb。
步骤S200、读取所述闪存中的待读取数据,并写入所述缓存区域;
步骤S300、对所述缓存区域中存储的所述待读取数据进行解码,根据解码结果判断所述待读取数据是否正常;
在本实施例中,当所述Buffer被BM锁定之后,FW向FC发送读数据指令,当FC接收到FW发送的读操作指令时,FC从闪存中读取目标数据,即待读取数据,并将读取到的所述待读取数据存储至所述Buffer中。当BM检测到所述待读取数据已存储至所述Buffer中时,BM对所述待读取数据进行解码操作,并根据解码结果判断所述待读取数据是否正确。
具体地,所述步骤S300包括:
步骤S310、通过缓存管理器对所述待读取数据进行解码;
步骤S320、在所述缓存管理器解码失败时,进行重读或软解码;
步骤S330、将解码结果发送至所述缓存区域;
当所述缓存管理器BM对所述待读取数据解码失败时,BM向CQ发送解码失败的提示信息。FW可以主动读取CQ中的数据,当FW读取到所述解码失败的提示信息时,FW控制FC再次读取所述待读取数据存储至所述Buffer中,或者控制FC对所述待读取数据进行软解码。当FC通过软解码确定所述待读取数据的解码结果时,将所述解码结果发送至所述Buffer。
步骤S340、所述缓存管理器根据解码结果判断所述待读取数据是否正常。
BM根据自己的解码结果判断所述待读取数据是否正常。
步骤S400、在所述待读取数据正常时,输出所述待处理数据,并释放所述缓存区域。
在本实施例中,当BM判定所述待读取数据正常时,BM将Buffer中的数据输出至数据读取源,例如主机。并释放所述Buffer。
优选地,在所述待读取数据异常时,删除所述缓存区域存储的数据,并执行所述读取所述闪存中的待读取数据,并写入所述缓存区域的步骤。
当BM判定所述待读取数据异常时,删除所述Buffer中数据,并将错误信息发送至CQ,以供FW在读取到CQ中的所述错误信息时,控制FC再次读取闪存中的数据,并保存到所述Buffer中。
如说明书附图5所示,为本发明数据读取过程的信令流程示意图,图中:
1代表:CPU发送Lable至Lable Queue;
2代表:FW通过Lable Queue将Lable发送至BM;
3代表:BM根据Lable锁定buffer,并标记为Lable;
4代表:FW控制FC去FLASH读数据;
5代表:FC发读命令给FLASH;
6代表:FC收到从FLASH传输回来的数据
7代表:FC将FLASH返回的数据传回BM相应的buffer;
8代表:BM对返回的信息做LDPC解码,若正常解码,则返回正常的解码信息CQ,若解码不过来,则报异常的解码信息CQ;
9代表:FW主动检测CQ;
10代表:将最终的解码数据传送给Host并且释放Buffer。
在本实施例中,由于每个数据读取是用到的缓存区域为其对应的Buffer,这样,当数据读取故障时,不会影响后续数据的读取速度。
此外,本发明实施例还提出一种基于闪存的数据读写装置,所述基于闪存的数据读写装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据读写程序,所述数据读写程序被所述处理器执行时实现如上各个实施例所述的基于闪存的数据读写方法的步骤。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据读写程序,所述数据读写程序被处理器执行时实现如上各个实施例所述的基于闪存的数据读写方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是智能移动端,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于闪存的数据读写方法,其特征在于,所述基于闪存的数据读写方法包括以下步骤:
对闪存进行写操作时,锁定一个缓存区域;
将待写入数据存储至所述缓存区域;
读取所述缓存区域中存储的所述待写入数据,并写入所述闪存;
在检测到数据写入完成时,释放所述缓存区域。
2.如权利要求1所述的基于闪存的数据读写方法,其特征在于,所述对闪存进行写操作时,锁定一个缓存区域的步骤包括:
在对闪存进行写操作时,向缓存管理器发送缓存标签,以供所述缓存管理器在接收到所述缓存标签时,分配所述缓存区域,并通过所述缓存标签标记所述缓存区域后,锁定所述缓存区域。
3.如权利要求1所述的基于闪存的数据读写方法,其特征在于,所述闪存控制器读取所述缓存区域中存储的所述待写入数据,并写入所述闪存的步骤之后,还包括:
在检测到数据写入异常时,执行读取所述缓存区域中存储的所述待写入数据,并写入所述闪存的步骤。
4.如权利要求1所述的基于闪存的数据读写方法,其特征在于,所述对闪存进行写操作时,锁定一个缓存区域的步骤之前,还包括:
对缓存管理器进行初始化,确定所述缓存区域的数据容量大小,并根据所述数据容量大小划分所述缓存区域。
5.一种基于闪存的数据读写方法,其特征在于,所述基于闪存的数据读写方法包括以下步骤:
对闪存进行读操作时,锁定一个缓存区域;
读取所述闪存中的待读取数据,并写入所述缓存区域;
对所述缓存区域中存储的所述待读取数据进行解码,根据解码结果判断所述待读取数据是否正常;
在所述待读取数据正常时,输出所述待处理数据,并释放所述缓存区域。
6.如权利要求5所述的基于闪存的数据读写方法,其特征在于,所述对所述缓存区域中存储的所述待读取数据进行解码,根据解码结果判断所述待读取数据是否正常的步骤之后,还包括:
在所述待读取数据异常时,删除所述缓存区域存储的数据,并执行所述读取所述闪存中的待读取数据,并写入所述缓存区域的步骤。
7.如权利要求5所述的基于闪存的数据读写方法,其特征在于,所述对闪存进行读操作时,锁定一个缓存区域的步骤之前,还包括:
对缓存管理器进行初始化,确定所述缓存区域的数据容量大小,并根据所述数据容量大小划分所述缓存区域。
8.如权利要求5所述的基于闪存的数据读写方法,其特征在于,所述对所述缓存区域中存储的所述待读取数据进行解码,根据解码结果判断所述待读取数据是否正常的步骤包括:
通过缓存管理器对所述待读取数据进行解码;
在所述缓存管理器解码失败时,进行重读或软解码;
将解码结果发送至所述缓存区域;
所述缓存管理器根据解码结果判断所述待读取数据是否正常。
9.一种基于闪存的数据读写装置,其特征在于,所述基于闪存的数据读写装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据读写程序,所述数据读写程序被所述处理器执行时实现如权利要求1至8中任一项所述的基于闪存的数据读写方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据读写程序,所述数据读写程序被处理器执行时实现如权利要求1至8中任一项所述的基于闪存的数据读写方法的步骤。
CN201811507300.3A 2018-12-10 2018-12-10 基于闪存的数据读写方法、装置及计算机可读存储介质 Active CN109614048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811507300.3A CN109614048B (zh) 2018-12-10 2018-12-10 基于闪存的数据读写方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811507300.3A CN109614048B (zh) 2018-12-10 2018-12-10 基于闪存的数据读写方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109614048A true CN109614048A (zh) 2019-04-12
CN109614048B CN109614048B (zh) 2022-11-11

Family

ID=66006974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811507300.3A Active CN109614048B (zh) 2018-12-10 2018-12-10 基于闪存的数据读写方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109614048B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597646A (zh) * 2019-09-16 2019-12-20 五八有限公司 一种数据读写方法、系统、电子设备及存储介质
CN110825575A (zh) * 2019-11-13 2020-02-21 重庆秦嵩科技有限公司 一种内存检测方法
CN111966300A (zh) * 2020-08-24 2020-11-20 深圳三地一芯电子有限责任公司 一种节省主控sram的存储器数据写入方法及装置
CN112347010A (zh) * 2020-11-09 2021-02-09 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
CN112415368A (zh) * 2020-11-25 2021-02-26 珠海格力电器股份有限公司 电路板的检测方法、装置、电子设备及可读存储介质
CN112527202A (zh) * 2020-12-14 2021-03-19 深圳市硅格半导体有限公司 闪存存储器的管理方法、系统、终端设备及存储介质
CN113392098A (zh) * 2021-06-11 2021-09-14 北京沃东天骏信息技术有限公司 一种数据写入方法、装置、设备及存储介质
CN114237495A (zh) * 2021-11-29 2022-03-25 歌尔科技有限公司 数据更新方法、电子设备及计算机可读存储介质
CN114328284A (zh) * 2021-12-30 2022-04-12 武汉喻芯半导体有限公司 一种存储主控架构及闪存颗粒控制方法
TWI800764B (zh) * 2020-10-30 2023-05-01 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092159A (en) * 1998-05-05 2000-07-18 Lsi Logic Corporation Implementation of configurable on-chip fast memory using the data cache RAM
US20050021918A1 (en) * 2003-07-24 2005-01-27 Sang-Won Hwang Memory and information processing systems with lockable buffer memories and related methods
US20130346705A1 (en) * 2012-06-26 2013-12-26 Qualcomm Incrorporated Cache Memory with Write Through, No Allocate Mode
CN103761988A (zh) * 2013-12-27 2014-04-30 华为技术有限公司 固态硬盘及数据移动方法
CN103984506A (zh) * 2014-04-30 2014-08-13 深圳市江波龙电子有限公司 闪存存储设备数据写的方法和系统
US20150317091A1 (en) * 2014-05-02 2015-11-05 Cavium, Inc. Systems and methods for enabling local caching for remote storage devices over a network via nvme controller
CN105393228A (zh) * 2014-06-25 2016-03-09 华为技术有限公司 读写闪存中数据的方法、装置及用户设备
CN106126124A (zh) * 2016-06-29 2016-11-16 联想(北京)有限公司 一种数据处理方法及电子设备
WO2016189640A1 (ja) * 2015-05-26 2016-12-01 株式会社日立製作所 ストレージ装置、及び方法
CN106775477A (zh) * 2016-12-19 2017-05-31 湖南国科微电子股份有限公司 SSD主控BE Buffer、SSD主控、数据传输管理装置及方法
US9880744B1 (en) * 2015-12-22 2018-01-30 Veritas Technologies Llc Method for flash-friendly caching for CDM workloads
CN108132758A (zh) * 2018-01-10 2018-06-08 湖南国科微电子股份有限公司 一种Buffer管理方法、系统及其应用
JP2018110031A (ja) * 2018-03-07 2018-07-12 華為技術有限公司Huawei Technologies Co.,Ltd. クラスタ内のロック管理方法、ロックサーバ及びクライアント

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092159A (en) * 1998-05-05 2000-07-18 Lsi Logic Corporation Implementation of configurable on-chip fast memory using the data cache RAM
US20050021918A1 (en) * 2003-07-24 2005-01-27 Sang-Won Hwang Memory and information processing systems with lockable buffer memories and related methods
US20130346705A1 (en) * 2012-06-26 2013-12-26 Qualcomm Incrorporated Cache Memory with Write Through, No Allocate Mode
CN103761988A (zh) * 2013-12-27 2014-04-30 华为技术有限公司 固态硬盘及数据移动方法
CN103984506A (zh) * 2014-04-30 2014-08-13 深圳市江波龙电子有限公司 闪存存储设备数据写的方法和系统
US20150317091A1 (en) * 2014-05-02 2015-11-05 Cavium, Inc. Systems and methods for enabling local caching for remote storage devices over a network via nvme controller
CN105393228A (zh) * 2014-06-25 2016-03-09 华为技术有限公司 读写闪存中数据的方法、装置及用户设备
WO2016189640A1 (ja) * 2015-05-26 2016-12-01 株式会社日立製作所 ストレージ装置、及び方法
US9880744B1 (en) * 2015-12-22 2018-01-30 Veritas Technologies Llc Method for flash-friendly caching for CDM workloads
CN106126124A (zh) * 2016-06-29 2016-11-16 联想(北京)有限公司 一种数据处理方法及电子设备
CN106775477A (zh) * 2016-12-19 2017-05-31 湖南国科微电子股份有限公司 SSD主控BE Buffer、SSD主控、数据传输管理装置及方法
CN108132758A (zh) * 2018-01-10 2018-06-08 湖南国科微电子股份有限公司 一种Buffer管理方法、系统及其应用
JP2018110031A (ja) * 2018-03-07 2018-07-12 華為技術有限公司Huawei Technologies Co.,Ltd. クラスタ内のロック管理方法、ロックサーバ及びクライアント

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
ARUL SELVAN RAMASAMY ET AL.: "RFFE: A Buffer Cache Management Algorithm for Flash-Memory-Based SSD to Improve Write Performance", 《CANADIAN JOURNAL OF ELECTRICAL AND COMPUTER ENGINEERING,》 *
ARUL SELVAN RAMASAMY ET AL.: "RFFE: A Buffer Cache Management Algorithm for Flash-Memory-Based SSD to Improve Write Performance", 《CANADIAN JOURNAL OF ELECTRICAL AND COMPUTER ENGINEERING,》, vol. 38, no. 3, 31 August 2015 (2015-08-31) *
基于FLASHCACHE的混合存储方案设计与实现: "基于Flashcache的混合存储方案设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
基于FLASHCACHE的混合存储方案设计与实现: "基于Flashcache的混合存储方案设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 June 2014 (2014-06-15), pages 5 - 22 *
王钰博 等: "嵌入式FLASH读取加速技术及实现", 《浙江大学学报(工学版)》 *
王钰博 等: "嵌入式FLASH读取加速技术及实现", 《浙江大学学报(工学版)》, vol. 48, no. 9, 30 September 2014 (2014-09-30) *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597646A (zh) * 2019-09-16 2019-12-20 五八有限公司 一种数据读写方法、系统、电子设备及存储介质
CN110825575A (zh) * 2019-11-13 2020-02-21 重庆秦嵩科技有限公司 一种内存检测方法
CN110825575B (zh) * 2019-11-13 2023-04-04 重庆秦嵩科技有限公司 一种内存检测方法
CN111966300B (zh) * 2020-08-24 2021-06-25 深圳三地一芯电子有限责任公司 一种节省主控sram的存储器数据写入方法及装置
CN111966300A (zh) * 2020-08-24 2020-11-20 深圳三地一芯电子有限责任公司 一种节省主控sram的存储器数据写入方法及装置
TWI800764B (zh) * 2020-10-30 2023-05-01 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN112347010A (zh) * 2020-11-09 2021-02-09 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
CN112347010B (zh) * 2020-11-09 2023-07-04 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
CN112415368A (zh) * 2020-11-25 2021-02-26 珠海格力电器股份有限公司 电路板的检测方法、装置、电子设备及可读存储介质
CN112527202A (zh) * 2020-12-14 2021-03-19 深圳市硅格半导体有限公司 闪存存储器的管理方法、系统、终端设备及存储介质
CN113392098A (zh) * 2021-06-11 2021-09-14 北京沃东天骏信息技术有限公司 一种数据写入方法、装置、设备及存储介质
CN114237495A (zh) * 2021-11-29 2022-03-25 歌尔科技有限公司 数据更新方法、电子设备及计算机可读存储介质
CN114328284A (zh) * 2021-12-30 2022-04-12 武汉喻芯半导体有限公司 一种存储主控架构及闪存颗粒控制方法

Also Published As

Publication number Publication date
CN109614048B (zh) 2022-11-11

Similar Documents

Publication Publication Date Title
CN109614048A (zh) 基于闪存的数据读写方法、装置及计算机可读存储介质
CN102623042B (zh) 存储器系统及其操作方法
WO2020181810A1 (zh) 应用于集群内多级缓存的数据处理方法和装置
EP2329366B1 (en) Performing a pre-update on a non volatile memory
CN102567242B (zh) 执行同时读取与写入存储器操作的方法及设备
US11115804B2 (en) Subscription to dependencies in smart contracts
CN102216899A (zh) 管理高速缓存数据和元数据
US8271968B2 (en) System and method for transparent hard disk drive update
CN109388517A (zh) 存储器控制器、包括存储器控制器的存储器系统和应用处理器
US10789170B2 (en) Storage management method, electronic device and computer readable medium
CN104246727A (zh) 数据处理系统以及用于操作数据处理系统的方法
CN106980466B (zh) 数据存储装置及其操作方法
US10788997B2 (en) Method and device for storage management with metadata stored in disk extents in an extent pool
KR20200109726A (ko) 데이터베이스 관리 시스템에서의 로그 레코드 관리를 위한 기법
CN115455058A (zh) 缓存数据的处理方法、装置、计算机设备及存储介质
US8689207B2 (en) Performing an in-place update of an operating storage device
CN111008181A (zh) 一种分布式文件系统存储策略切换方法、系统、终端及存储介质
CN110737395A (zh) I/o管理方法、电子设备和计算机可读存储介质
JP2009506447A (ja) 改善されたスマートカード・システム
US11606442B2 (en) Subscription to edits of blockchain transaction
US11010296B2 (en) Temporarily storing memory contents
US9430338B2 (en) Method and computing device for recording log entries
CN103136234A (zh) 处理数据的方法和装置
KR20100063869A (ko) 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치
CN112820343A (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