CN111176573B - 数据读写方法、装置、存储介质及电子设备 - Google Patents
数据读写方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111176573B CN111176573B CN201911381876.4A CN201911381876A CN111176573B CN 111176573 B CN111176573 B CN 111176573B CN 201911381876 A CN201911381876 A CN 201911381876A CN 111176573 B CN111176573 B CN 111176573B
- Authority
- CN
- China
- Prior art keywords
- data
- written
- writing
- read
- acceleration
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000001133 acceleration Effects 0.000 claims abstract description 370
- 230000015654 memory Effects 0.000 claims abstract description 167
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 63
- 238000012549 training Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000007477 logistic regression Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据读写方法、装置、存储介质及电子设备,其中,通过将电子设备的闪存划分为加速区和存储区,且加速区的读写速度大于存储区的读写速度,并接收对闪存的写命令或者读命令,其中,当接收到写命令时,判断写命令指示的待写入数据是否为优先写入数据,是则将待写入数据写入加速区,否则将待写入数据写入存储区,而当接收到读命令时,判断读命令指示的待读取数据是否为优先读取数据,若待读取数据为优先读取数据且位于存储区中,则从存储区中读取待读取数据,并将待读取数据由存储区搬移至加速区。由此,本申请将优先写入数据写入加速区中能够加速写入,而将优先读取数据搬移至加速区中则能够加速读取,从而达到提升闪存读写性能的目的。
Description
技术领域
本申请涉及闪存技术领域,具体涉及一种数据读写方法、装置、存储介质及电子设备。
背景技术
目前,随着闪存设计工艺和制造工艺的提升,电子设备已普遍配备闪存用以存储数据。通常的,闪存块可以被用作SLC或者TLC模式,当其被配置为SLC模式时,相较于TLC模式具有更优的读写性能,但是容量更小,而当其被配置为TLC模式时,相较于SLC模式具有更大的容量,但是读写性能更差,容易导致电子设备出现卡顿。
发明内容
本申请实施例提供了一种数据读写方法、装置、存储介质及电子设备,能够提升闪存的读写性能。
本申请实施例提供数据读写方法,应用于电子设备,将所述电子设备的闪存划分为加速区和存储区,所述加速区的读写速度大于所述存储区的读写速度,该数据读写方法包括:
接收对所述闪存的写命令或者读命令;
当接收到所述写命令时,判断所述写命令指示的待写入数据是否为优先写入数据,是则将所述待写入数据写入所述加速区,否则将所述待写入数据写入所述存储区;
当接收到所述读命令时,判断所述读命令指示的待读取数据是否为优先读取数据,若所述待读取数据为优先读取数据且位于所述存储区中,则从所述存储区中读取所述待读取数据,并将所述待读取数据由所述存储区搬移至所述加速区。
本申请实施例提供的数据读写装置,应用于电子设备,将所述电子设备的闪存划分为加速区和存储区,所述加速区的读写速度大于所述存储区的读写速度,该数据读写装置包括:
命令接收模块,用于接收对所述闪存的写命令或者读命令;
数据写模块,用于当接收到所述写命令时,判断所述写命令指示的待写入数据是否为优先写入数据,是则将所述待写入数据写入所述加速区,否则将所述待写入数据写入所述存储区;
数据读模块,用于当接收到所述读命令时,判断所述读命令指示的待读取数据是否为优先读取数据,若所述待读取数据为优先读取数据且位于所述存储区中,则从所述存储区中读取所述待读取数据,并将所述待读取数据由所述存储区搬移至所述加速区。
本申请实施例提供的存储介质,其上存储有计算机程序,当所述计算机程序被处理器加载时执行如本申请任一实施例提供的数据读写方法。
本申请实施例提供的电子设备,包括处理器和闪存,所述闪存包括闪存控制器和存储器,其特征在于,将所述存储区划分为加速区和存储区,所述加速区的读写速度大于所述存储区的读写速度,其中,
所述处理器用于下发针对所述闪存的写命令或读命令;
所述闪存控制器用于:
接收对所述闪存的写命令或者读命令;
当接收到所述写命令时,判断所述写命令指示的待写入数据是否为优先写入数据,是则将所述待写入数据写入所述加速区,否则将所述待写入数据写入所述存储区;
当接收到所述读命令时,判断所述读命令指示的待读取数据是否为优先读取数据,若所述待读取数据为优先读取数据且位于所述存储区中,则从所述存储区中读取所述待读取数据,并将所述待读取数据由所述存储区搬移至所述加速区。
本申请将优先写入数据写入加速区中能够加速写入,而将优先读取数据搬移至加速区中则能够加速读取,从而达到提升闪存读写性能的目的。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据读写方法的一流程示意图。
图2是本申请实施例中涉及的UFS架构图。
图3是本申请实施例中将闪存的存储区划分为存储区和加速区的示意图。
图4是本申请实施例中将加速区划分为写加速区和读加速区的示意图。
图5是本申请实施例提供的数据读写方法的另一流程示意图。
图6是本申请实施例提供的数据读写装置的一结构示意图。
图7是本申请实施例提供的电子设备的一结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是通过所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
本申请实施例涉及一种数据读写方法、数据读写装置、存储介质以及电子设备,其中,该数据读写方法的执行主体可以是本申请实施例提供的数据读写装置,或者集成了该数据读写装置的电子设备,其中该数据读写装置可以采用硬件或者软件的方式实现。其中,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、或者台式电脑等配置有处理器而具有处理能力的设备。
请参照图1,图1为本申请实施例提供的数据读写方法的流程示意图,该数据读写方法应用于电子设备,该电子设备的闪存被划分为存储区和加速区,该数据读写方法的流程可以如下:
在101中,接收对闪存的写命令或者读命令。
以下以电子设备采用UFS(Universal Flash Storage,通用闪存存储)标准为例进行说明。UFS于2011年由JEDEC(Joint Electron Device Engineering Council,电子设备工程联合委员会)推出,是一个简单高性能、使用串行接口的存储标准。
请参照图2,UFS整体包括两部分,分别为Host端和Device端,其中,Host端对应电子设备的处理器,Device端对应电子设备的闪存。如图2所示,Host端可以向Device端写数据,也可以从Device端读数据,本申请旨在提升Device端的读写性能,从而能够大幅减少电子设备出现卡顿的概率,使得用户能够显性的感觉到电子设备的系统响应变快,打开应用更加流畅,安装应用速度更快,拷贝数据更快,后台下载时前台操作更流畅等。
请继续参照图2,闪存包括闪存控制器和存储器,其中,存储器用于存储数据,闪存控制器用于管理存储器中的数据,并与处理器进行通信。比如,当处理器运行的应用需要读取数据或者将数据写入闪存时,处理器通过与闪存控制器进行通信,由闪存控制器将需要写入的数据写入闪存的存储器,或者由闪存控制器从闪存的存储器中读取数据提供给处理器。
请参照图3,本申请实施例中,预先将闪存的存储器划分为加速区和存储区,且加速区的读写速度大于存储区的读写速度。
应当说明的是,闪存的存储器以块为存储单位,每一个块中包含若干页,每一个页能够存储若干字节的数据。对于TLC类型的闪存来说,每一个单独的块都可以指定为SLC模式或TLC模式,然后对其中的页进行读、写、擦除操作。相反,当一个块被用作TLC模式时,它的页编程时间和读取时间都会变长,存储的数据相对不稳定,比较容易出错,使用寿命较短,通常能够擦除后编程的次数只有500次左右。但它存储数据的页数会增加,是SLC模式的三倍,所以整体容量会是SLC模式的三倍。由于SLC模式块更加稳定,但是容量小,所以通常被用作存储闪存管理时使用到逻辑映射表格等内部控制数据,这些数据相对用户数据占据的容量很小。TLC模式块由于容量更大,成本更低,所以通常用作保存普通的用户数据,但其读写性能相对较低。通常只有在不考虑成本,希望得到更高的性能时,才会使用SLC模式块存储用户数据。
本申请实施例中,基于闪存的以上特性,在将闪存的存储器划分为加速区和存储区时,可以通过写寄存器的方式,将存储器中的一部分块配置为SLC模式,将另一部分块配置为TLC模式,从而由SLC模式的块组成加速区,由TLC模式的块组成存储区。应当说明的是,由于闪存厂家不同,同一寄存器值可能将A厂家闪存的块配置为SLC模式,而将B厂家闪存的块配置为TLC模式,因此,可由本领域普通技术人员根据实际情况配置写寄存器的方式,以将电子设备中的闪存划分为加速区和存储区。其中,本申请对加速区和存储区的划分比例不做具体限制,可由本领域普通技术人员根据实际需要进行进行配置,比如,本申请实施例中配置加速区和存储区的划分比例为3:4。
应当说明的是,以下实施例中将从闪存控制器的角度对本申请提供的数据读写方法进行说明。
其中,闪存控制器接收来自于处理器针对闪存的写命令或者读命令,其中,写命令用于指示闪存控制器向闪存的存储器中写入数据,读命令用于指示闪存控制器从闪存的存储器中读出数据。
比如,当用户操作电子设备安装应用时,闪存控制器将接收到来自于处理器的写命令,以将该应用的数据写入闪存的存储器中,实现应用的安装;
又比如,当用户操作电子设备浏览某图像时,闪存控制器将接收到来自于处理器的读命令,以从闪存的存储器中读出该图像进行浏览。
在102中,当接收到写命令时,判断写命令指示的待写入数据是否为优先写入数据,是则将待写入数据写入加速区,否则将待写入数据写入存储区。
应当说明的是,本申请实施例中预先定义有数据分级规则,该数据分级规则用于描述一数据是否需要优先读取/写入,可由本领域普通技术人员根据实际需要进行定义,本申请对此不作具体限制。相应的,在本申请实施例中,处理器在下发写命令或者读命令至闪存控制器时,下发的写命令或读命令中还携带有标志位,其中,写命令中的标志位用于表征待写入数据是否为优先写入数据,读命令中的标志位用于表征待读取数据是否为优先读取数据。
示例性的,目前JEDEC规定写命令和读命令中包括GROUP NUMBER位(采用二进制)用于填充相关描述数据,其中,10000至11111为保留值。因此,本申请实施例中,采用GROUPNUMBER位作为标志位,并填充10000至11111之间的数值用于描述数据是否需要优先读取/写入。比如,处理器在下发写命令时,可以在写命令的GROUP NUMBER位中填充10000指示对应的待写入数据不为优先写入数据,在写命令的GROUP NUMBER位中填充10010指示对应的待写入数据为优先写入数据;而在下发读命令时,同样可以在读命令的GROUP NUMBER位中填充10000指示对应的待读取数据不为优先读取数据,以及在读命令的GROUP NUMBER位中填充10010指示对应的待读取数据为优先读取数据。
相应的,在本申请实施例中,闪存控制器在接收到来自处理器的写命令时,根据该写命令的标志位判断其指示的待写入数据是否为优先写入数据,得到判断结果。比如,当采用GROUP NUMBER位作为标志位时,闪存控制器可直接对写命令中的GROUP NUMBER位进行解析,得到其中的填充值,根据该填充值判断写命令指示的待写入数据是否为优先写入数据。
在得到判断结果之后,若判定待写入数据为优先写入数据,则闪存控制器将待写入数据写入加速区中,若判定待写入数据不为优先写入数据,则将待写入数据写入存储区中。
在103中,当接收到读命令时,判断读命令指示的待读取数据是否为优先读取数据,若待读取数据为优先读取数据且位于存储区中,则从存储区中读取待读取数据,并将待读取数据由存储区搬移至加速区。
同样的,闪存控制器在接收到来自处理器的读命令时,根据该读命令的标志位判断其指示的待读取数据是否为优先写入数据,得到判断结果。比如,当采用GROUP NUMBER位作为标志位时,闪存控制器可直接对读命令中的GROUP NUMBER位进行解析,得到其中的填充值,根据该填充值判断读命令指示的待读取数据是否为优先读取数据。
在得到判断结果之后,若判定待读取数据为优先读取数据,且该待读取数据位于存储区中时,则闪存控制器从存储区中读取出读命令所指示的待读取数据,并进一步将存储区中的待读取数据搬移至加速区中,以加速下次对该待读取数据的读取。比如,闪存控制器可以在空闲时将前述待读取数据由存储区中搬移至加速区中。
此外,若读命令指示的待读取数据为优先读取数据,且该待读取数据位于加速区中时,则闪存控制器直接从加速区中读取出读命令所指示的待读取数据。
此外,若读命令指示的待读取数据不为优先读取数据,且该待读取数据位于存储区中时,则闪存控制器直接从存储区中读取出读命令所指示的待读取数据。
应当说明的是,以上闪存控制器在读取出待读取数据之后,进一步将读取出的待读取数据提供给处理器,由处理器进行相应处理。
由上可知,本申请通过将电子设备的闪存划分为加速区和存储区,并接收对闪存的写命令或者读命令,其中,当接收到写命令时,判断写命令指示的待写入数据是否为优先写入数据,是则将待写入数据写入加速区,否则将待写入数据写入存储区,而当接收到读命令时,判断读命令指示的待读取数据是否为优先读取数据,若待读取数据为优先读取数据且位于存储区中,则从存储区中读取待读取数据,并将待读取数据由存储区搬移至加速区。由此,本申请将优先写入数据写入加速区中能够加速写入,而将优先读取数据搬移至加速区中则能够加速读取,从而达到提升闪存读写性能的目的。
在一实施例中,将加速区划分为写加速区和读加速区,将待写入数据写入加速区包括:
将待写入数据写入写加速区;
将待写入数据写入写加速区之后,还包括:
将待写入数据由写加速区搬移至读加速区;
将待读取数据由存储区搬移至加速区,包括:
将待读取数据由存储区搬移至读加速区。
应当说明的是,本申请实施例中进一步将加速区划分为写加速区和读加速区,其中,写加速区用于存储写数据,读加速区用于存储读数据,如图4所示。应当说明的是,本申请对写加速区和读加速区的划分比例不做具体限制,可由本领域普通技术人员根据实际需要进行配置,比如,本申请中配置写加速区和读加速区的划分比例为3:4。
相应的,闪存控制器在将待写入数据写入加速区时,可以将该待写入数据写入写加速区中。
而在将待写入数据写入写加速区之后,闪存控制器还可以将该待写入数据由写加速区搬移至读加速区中,从而该待写入数据变为“待读取数据”而被读取时,能够更快的从读加速区中读取。比如,闪存控制器可以在空闲时将待写入数据由写加速区搬移至读加速区中。
此外,在将待读取数据由存储区搬移至加速区时,闪存控制器可以将该待读取数据由存储区搬移至读加速区中。
在一实施例中,将写加速区划分为多个对应不同优先级的子写加速区,将待写入数据写入写加速区,包括:
当待写入数据为多个时,按照优先级高低依次将每一待写入数据写入对应的子写加速区。
应当说明的是,本申请实施例中对于优先写入数据做了进一步划分,将其划分为多个优先级。其中,本申请对于优先级划分方式不做具体限定,可由本领域普通技术人员根据实际需要进行划分。示例性的,本申请实施例中划分为三个优先级,分别为低优先级、中优先级和高优先级。
此外,本申请实施例中还进一步按照优先级高低,将写加速区划分为多个对应不同优先级的子写加速区。其中,本申请对各子写加速区的划分比例不做具体限制,可由本领域普通技术人员根据实际需要进行配置,比如,假设本申请划分有三个优先级,分别为低优先级、中优先级和高优先级,则相应将写加速区划分为三个子写加速区,分别对应低优先级、中优先级和高优先级。
相应的,在将待写入数据写入写加速区时,若待写入数据唯一时,则直接将待写入数据写入其优先级对应的子写加速区;若待写入数据不唯一,即待写入数据为多个时,按照优先级高低依次将每一待写入数据写入对应的子写加速区。比如,假设存在三个待写入数据,分别为低优先级的待写入数据A、中优先级的待写入数据B以及高优先级的待写入数据C,则首先将待写入数据C写入对应高优先级的子写加速区,再将待写入数据B写入对应中优先级的子写加速区,最后将待写入数据A写入对应低优先级的子写加速区。
可选的,本申请中,划分的各子写加速区的容量大小与其对应优先级正相关,即子写加速区对应的优先级越高,其划分的容量大小越大,比如,本申请中划分有对应低优先级的子写加速区A,对应中优先级的子写加速区B以及对应高优先级的子写加速区C,其中,子写加速区A、子写加速区B以及子写加速区C的容量大小比例为1:2:3。
在一实施例中,将读加速区划分为多个对应不同优先级的子读加速区,将待写入数据由写加速区搬移至读加速区,包括:
当待写入数据为多个时,按照优先级高低依次将每一待写入数据由写加速区搬移至对应的子读加速区。
应当说明的是,本申请实施例中还进一步按照优先级高低,将读加速区划分为多个对应不同优先级的子读加速区。其中,本申请对各子读加速区的划分比例不做具体限制,可由本领域普通技术人员根据实际需要进行配置,比如,假设本申请划分有三个优先级,分别为低优先级、中优先级和高优先级,则相应将读加速区划分为三个子读加速区,分别对应低优先级、中优先级和高优先级。
相应的,在将待写入数据由写加速区搬移至读加速区时,若待写入数据唯一时,则直接将待写入数据搬移至其优先级对应的子读加速区;若待写入数据不唯一,即待写入数据为多个时,按照优先级高低依次将每一待写入数据搬移至对应的子读加速区。比如,假设存在三个待写入数据,分别为低优先级的待写入数据A、中优先级的待写入数据B以及高优先级的待写入数据C,则首先将待写入数据C搬移至对应高优先级的子读加速区,再将待写入数据B搬移至对应中优先级的子读加速区,最后将待写入数据A搬移至对应低优先级的子读加速区。
可选的,本申请中,划分的各子读加速区的容量大小与其对应优先级正相关,即子读加速区对应的优先级越高,其划分的容量大小越大,比如,本申请中划分有对应低优先级的子读加速区A,对应中优先级的子读加速区B以及对应高优先级的子读加速区C,其中,子读加速区A、子读加速区B以及子读加速区C的容量大小比例为2:3:5。
在一实施例中,将待写入数据由写加速区搬移至读加速区之前,还包括:
(1)预测前述待写入数据被读取的概率;
(2)当前述待写入数据被读取的概率达到预设概率时,将待写入数据由写加速区搬移至读加速区。
应当说明的是,本申请实施例中预先采用机器学习的方式训练有预测模型。
示例性的,首先,获取训练样本,训练样本包括历史写入数据的多维特征以及根据实际情况标定的其在写入后的预设时长内是否被读取的标签值,该标签值取值为0或1,为0时描述训练样本对应的历史写入数据在写入后的预设时长内未被读取,为1时描述训练样本对应的历史写入数据在写入后的预设时长内被读取。其中,将标签值为1的训练样本记为正样本,将标签值为0的训练样本记为负样本,其多维特征包括但不限于对应历史写入数据的数据类型、数据大小、数据来源等,具体可由本领域普通技术人员根据实际需要定义。此外,应当说明的是,预设时长的取值可由本领域普通技术人员根据实际需要进行配置,比如,可以设置为1个自然日。
然后,构建用于模型训练的基础模型,并根据正样本和负样本对构建的基础模型进行训练,直至满足预设训练停止条件。其中,可由本领域普通技术人员根据实际需要选取用于模型训练的基础模型,包括但不限于逻辑回归模型、决策树模型、随机森林模型以及XGBoost模型等。比如,本发明实施例中采用逻辑回归模型作为模型训练的基础模型,表示为:
Y=ln((1-xbeta)/xbeta);
beta=a0+a1*X1+a2*X2+a3*X3+…+an*Xn;
xbeta=exp(beta)/(1+exp(beta));
其中,Y表示逻辑回归模型的输出值,取值范围为[0,1],[a0,a1,……an]表示其参数,[X1,X2,……,Xn]表示用于训练的正样本/负样本的n维特征。
相应的,对该基础模型的训练过程,也即是确定其参数[a0,a1,……an]的过程,以使得其对应正样本的输出值为“1”,对应负样本的输出为值“0”。
应当说明的是,本发明实施例中,在构建基础模型之外,还构建有对应该基础模型的损失函数,具体可由本领域普通技术人员根据实际需要预先设置构建损失函数的类型,比如,本发明实施例中采用交叉熵损失函数。
在根据正样本和负样本对基础模型进行训练时,可以将正/负样本输入基础模型进行计算,得到对应的预测值,然后将该预测值以及对应的标签值代入损失函数计算得到损失值,根据该损失值对基础模型的参数进行调整,也即是求解损失函数的最小值。比如,可以利用梯度下降算法来迭代基础模型的参数,从而得到最小化的损失值和对应的参数。
其中,对于采用何种梯度下降算法,本发明实施例中不做具体限制,可由本领域普通技术人员根据实际需要选择。示例性的,本发明实施例中采用Adam梯度下降算法来求解损失函数,相应的,还预先设置对应的批次大小,该批次大小用于描述迭代一次参数所需的正/负样本的数量,可由本领域普通技术人员根据实际需要进行设置,比如,本发明实施例中设置批次大小为32。
应当说明的是,预设训练停止条件用于描述在何时停止对构建的基础模型的训练,可由本领域普通技术人员根据实际需要进行设置。比如,可以设置预设训练停止条件为:对构建的基础模型参数的迭代次数达到预设迭代次数(可由本领域普通技术人员根据实际需要取经验值,比如500);还可以设置预设训练停止条件为:基础模型的损失值小于预设损失值(可由本领域普通技术人员根据实际需要取经验值)。
相应的,在每次调整基础模型的参数后,即判断是否满足预设训练停止条件,若不满足则继续对基础模型进行训练,直至满足预设训练停止条件。
当满足预设训练停止条件时,将满足预设训练停止条件的基础模型作为预测模型。
相应的,在本申请实施例中,闪存控制器并不直接将待写入数据由写加速区搬移至读加速区,而是先通过预测模型预测该待写入数据被读取的概率,比如,获取到该待写入数据的多维特征,并将该待写入数据的多维特征输入预测模型进行计算,得到预测模型输出的范围为[0,1]的值,作为其被读取的概率。
当预测得到待写入数据被读取的概率达到预设概率时,闪存控制器将该待写入数据由写加速区搬移至读加速区。其中,预设概率可由本领域普通技术人员根据实际需要取值,本申请实施例中对此不作具体限制。
在一实施例中,预测待写入数据被读取的概率之后,还包括:
当待写入数据被读取的概率未达到预设概率时,将待写入数据由写加速区搬移至存储区。
其中,当待写入数据被读取的概率未达到预设概率时,闪存控制器判定其短时间内不会被读取,并将其由写加速区搬移至存储区中。
在一实施例中,将待写入数据写入写加速区之前,还包括:
(1)判断写加速区是否已满;
(2)若写加速区未满,则直接将待写入数据写入写加速区;
(3)若写加速区已满,则将写加速区中的数据按优先级高低搬移至存储区中,再将待写入数据写入写加速区。
比如,当使用GROUP NUMBER位作为标志位时,处理器可以在写命令的GROUPNUMBER位中填充10010,指示对应的待写入数据为低优先级写入数据;在写命令的GROUPNUMBER位中填充10100,指示对应的待写入数据为中优先级写入数据;在写命令的GROUPNUMBER位中填充11000,指示对应的待写入数据为高优先级写入数据。
相应的,本申请实施例中,闪存控制器在将待写入数据写入写加速区之前,还判断写加速区是否已满,其中,当写加速区剩余容量不足以写入待写入数据时,闪存控制器判定写加速区已满,而当写加速区剩余容量足以写入待写入数据时,闪存控制器判定写加速区未满。
在判断写加速区是否已满且得到判断结果之后,若判定写加速区未满,则闪存控制器直接将待写入数据写入写加速区;若判定写加速区已满,则闪存控制器将写加速区中的数据按优先级高低搬移至存储区中,直至写加速区未满时,再将待写入数据写入写加速区中。
比如,闪存控制器维持三条链表,分别为高优先级链表、中优先级链表,以及低优先级链表,其中,各链表至少包括写加速区中存储数据的元数据(至少包括其存储位置)。由此,在将写加速区中的数据按优先级高低搬移至存储区中时,可以首先根据低优先级链表将低优先级的数据由写加速区搬移至存储区,直至写加速区未满,若将全部的低优先级数据由写加速区搬移至存储区后写加速区仍已满,则再根据中优先级链表将中优先级的数据由写加速区搬移至存储区,以此类推,直至写加速区未满。
在一实施例中,判断读命令指示的待读取数据是否为优先读取数据之后,还包括:
若待读取数据为优先读取数据且位于写加速区中,则从写加速区中读取待读取数据。
可以理解的是,在实际使用中,可能待读取数据刚被写入写加速区,尚未搬移至读加速区或存储区,此时若接收到对该待读取数据的读命令,则闪存控制器可以直接从写加速区中读取出待读取数据。
在一实施例中,将待读取数据由存储区搬移至读加速区之前,还包括:
(1)判断读加速区是否已满;
(2)若读加速区未满,则直接将待读取数据由存储区搬移至读加速区;
(3)若读加速区已满,则将读加速区中的数据按上次读取时间的远近搬移至存储区中,再将待读取数据由存储区搬移至读加速区。
本申请实施例中,闪存控制器在将待读取数据由存储区搬移至读加速区之前,还判断读加速区是否已满,其中,当读加速区剩余容量不足以搬移待读取数据时,闪存控制器判定读加速区已满,而当读加速区剩余容量足以搬移待读取数据时,闪存控制器判定读加速区未满。
在判断读加速区是否已满且得到判断结果之后,若判定读加速区未满,则闪存控制器直接将待读取数据由由存储区搬移至读加速区;若判定读加速区已满,则闪存控制器将读加速区中的数据按上次读取时间的远近搬移至存储区中,直至读加速区未满时,再将待读取数据由存储区搬移至读加速区。
比如,闪存控制器一条LRU链表,该LRU链表至少包括读加速区中存储数据的元数据(至少包括其存储位置),其中,LRU链表头部的元数据所对应的数据为最近读取的数据,LRU链表尾部的元数据所对应的数据为最远读取的数据。由此,在将读加速区中的数据按上次读取时间的远近搬移至存储区中时,可以首先按照LRU链表由尾至头的顺序,依次根据元数据将对应的数据由读加速区搬移至存储区,直至读加速区未满。
请参照图5,本申请提供的数据读写方法应用于电子设备,该电子设备的闪存被划分为存储区、写加速区和读加速区,该数据读写方法的流程为:
在201中,闪存控制器接收对闪存的写命令或者读命令。
应当说明的是,在本申请实施例中,预先将闪存的存储器划分为加速区和存储区,如图3所示。比如,可以通过写寄存器的方式,将闪存中的一部分块配置为SLC模式,将另一部分块配置为TLC模式,从而由SLC模式的块组成加速区,由TLC模式的块组成存储区。应当说明的是,由于闪存厂家不同,同一寄存器值可能将A厂家闪存的块配置为SLC模式,而将B厂家闪存的块配置为TLC模式,因此,可由本领域普通技术人员根据实际情况配置写寄存器的方式,以将电子设备中的闪存划分为加速区和存储区。其中,本申请对加速区和存储区的划分比例不做具体限制,可由本领域普通技术人员根据实际需要进行进行配置,比如,本申请实施例中配置加速区和存储区的划分比例为3:4。
本申请实施例中,闪存控制器接收来自于处理器针对闪存的写命令或者读命令,其中,写命令用于指示闪存控制器向闪存的存储器中写入数据,读命令用于指示闪存控制器从闪存的存储器中读出数据。
比如,当用户操作电子设备安装应用时,闪存控制器将接收到来自于处理器的写命令,以将该应用的数据写入闪存的存储器中,实现应用的安装;
又比如,当用户操作电子设备浏览某图像时,闪存控制器将接收到来自于处理器的读命令,以从闪存的存储器中读出该图像进行浏览。
在202中,当接收到写命令时,闪存控制器判断写加速区是否已满,是则转入203,否则转入204。
其中,当接收到来自于处理器的写命令时,闪存控制器判断写加速区是否已满,其中,当写加速区剩余容量不足以写入写命令指示的待写入数据时,闪存控制器判定写加速区已满,而当写加速区剩余容量足以写入前述待写入数据时,闪存控制器判定写加速区未满。
在203中,闪存控制器将写加速区中的数据按优先级高低搬移至存储区中。
应当说明的是,本申请实施例中预先定义有数据分级规则,该数据分级规则用于描述一数据是否需要优先读取/写入,可由本领域普通技术人员根据实际需要进行定义,本申请对此不作具体限制。相应的,在本申请实施例中,处理器在下发写命令或者读命令至闪存控制器时,下发的写命令或读命令中还携带有标志位,其中,写命令中的标志位用于表征待写入数据是否为优先写入数据,读命令中的标志位用于表征待读取数据是否为优先读取数据。其中,本申请实施例中对于优先写入数据做了进一步划分,将其划分为多个优先级。示例性的,本申请实施例中划分为三个优先级,分别为低优先级、中优先级和高优先级。
示例性的,目前JEDEC规定写命令和读命令中包括GROUP NUMBER位(采用二进制)用于填充相关描述数据,其中,10000至11111为保留值。因此,本申请实施例中,采用GROUPNUMBER位作为标志位,并填充10000至11111之间的数值用于描述数据是否需要优先读取/写入。比如,处理器在下发写命令时,可以在写命令的GROUP NUMBER位中填充10000指示对应的待写入数据不为优先写入数据,在写命令的GROUP NUMBER位中填充10010指示对应的待写入数据为低优先级写入数据,在写命令的GROUP NUMBER位中填充10100指示对应的待写入数据为中优先级写入数据,在写命令的GROUP NUMBER位中填充11000,指示对应的待写入数据为高优先级写入数据;而在下发读命令时,可以在读命令的GROUP NUMBER位中填充10010,指示对应的待读取数据为优先读取数据。
在判断写加速区是否已满且得到判断结果之后,若判定写加速区已满,则闪存控制器将写加速区中的数据按优先级高低搬移至存储区中,直至写加速区未满时,再将待写入数据写入写加速区中。
比如,闪存控制器维持三条链表,分别为高优先级链表、中优先级链表,以及低优先级链表,其中,各链表至少包括写加速区中存储数据的元数据(至少包括其存储位置)。由此,在将写加速区中的数据按优先级高低搬移至存储区中时,可以首先根据低优先级链表将低优先级的数据由写加速区搬移至存储区,直至写加速区未满,若将全部的低优先级数据由写加速区搬移至存储区后写加速区仍已满,则再根据中优先级链表将中优先级的数据由写加速区搬移至存储区,以此类推,直至写加速区未满。
在204中,闪存控制器判断写命令指示的待写入数据是否为优先写入数据,是则将待写入数据写入写加速区,否则将待写入数据写入存储区。
当写加速区未满时,闪存控制器判断写命令指示的待写入数据是否为优先写入数据,其中,根据该写命令的标志位判断其指示的待写入数据是否为优先写入数据,得到判断结果。比如,当采用GROUP NUMBER位作为标志位时,闪存控制器可直接对写命令中的GROUPNUMBER位进行解析,得到其中的填充值,根据该填充值判断写命令指示的待写入数据是否为优先写入数据。
在得到判断结果之后,若判定待写入数据为优先写入数据,则闪存控制器将待写入数据写入写加速区中,若判定待写入数据不为优先写入数据,则将待写入数据写入存储区中。
在205中,当接收到读命令时,闪存控制器判断读命令指示的待读取数据是否位于写加速区中,是则转入206,否则转入207。
在206中,闪存控制器从写加速区中读取待读取数据。
可以理解的是,在实际使用中,可能待读取数据刚被写入写加速区,尚未搬移至读加速区或存储区,此时若接收到对该待读取数据的读命令,则闪存控制器可以直接从写加速区中读取出待读取数据。
在207中,若待读取数据位于存储区,则闪存控制器判断读加速区是否已满,是则转入208,否则转入209。
当待读取数据位于存储区中时,闪存控制器进一步判断读加速区是否已满。其中,当读加速区剩余容量不足以搬移待读取数据时,闪存控制器判定读加速区已满,而当读加速区剩余容量足以搬移待读取数据时,闪存控制器判定读加速区未满。
在208中,闪存控制器将读加速区中的数据按上次读取时间的远近搬移至存储区中。
在判断读加速区是否已满且得到判断结果之后,若判定读加速区未满,则闪存控制器直接将待读取数据由由存储区搬移至读加速区;若判定读加速区已满,则闪存控制器将读加速区中的数据按上次读取时间的远近搬移至存储区中,直至读加速区未满。
比如,闪存控制器一条LRU链表,该LRU链表至少包括读加速区中存储数据的元数据(至少包括其存储位置),其中,LRU链表头部的元数据所对应的数据为最近读取的数据,LRU链表尾部的元数据所对应的数据为最远读取的数据。由此,在将读加速区中的数据按上次读取时间的远近搬移至存储区中时,可以首先按照LRU链表由尾至头的顺序,依次根据元数据将对应的数据由读加速区搬移至存储区,直至读加速区未满。
在209中,闪存控制器从存储区中读取待读取数据,并将待读取数据由存储区搬移至读加速区。
当读加速区未满时,闪存控制器从存储区中读取待读取数据,并将待读取数据由存储区搬移至读加速区,以加速下次对该待读取数据的读取。
在一实施例中,还提供了一种数据读写装置。请参照图6,图6为本申请实施例提供的数据读写装置的结构示意图。其中该数据读写装置应用于电子设备,该数据读写装置包括命令接收模块301、数据写模块302以及数据读模块303,如下:
命令接收模块301,用于接收对闪存的写命令或者读命令;
数据写模块302,用于当接收到写命令时,判断写命令指示的待写入数据是否为优先写入数据,是则将待写入数据写入加速区,否则将待写入数据写入存储区;
数据读模块303,用于当接收到读命令时,判断读命令指示的待读取数据是否为优先读取数据,若待读取数据为优先读取数据且位于存储区中,则从存储区中读取待读取数据,并将待读取数据由存储区搬移至加速区。
在一实施例中,将加速区划分为写加速区和读加速区,将待写入数据写入加速区时,数据写模块302用于:
将待写入数据写入写加速区;
将待写入数据写入写加速区之后,数据写模块302还用于:
将待写入数据由写加速区搬移至读加速区;
将待读取数据由存储区搬移至加速区时,数据读模块303用于:
将待读取数据由存储区搬移至读加速区。
在一实施例中,将写加速区划分为多个对应不同优先级的子写加速区,在将待写入数据写入写加速区时,数据写模块302用于:
当待写入数据为多个时,按照优先级高低依次将每一待写入数据写入对应的子写加速区。
在一实施例中,将读加速区划分为多个对应不同优先级的子读加速区,在将待写入数据由写加速区搬移至读加速区时,数据写模块302用于:
当待写入数据为多个时,按照优先级高低依次将每一待写入数据由写加速区搬移至对应的子读加速区。
在一实施例中,将待写入数据由写加速区搬移至读加速区之前,数据写模块302还用于:
预测前述待写入数据被读取的概率;
当前述待写入数据被读取的概率达到预设概率时,将待写入数据由写加速区搬移至读加速区。
在一实施例中,在预测待写入数据被读取的概率之后,数据写模块302还用于:
当待写入数据被读取的概率未达到预设概率时,将待写入数据由写加速区搬移至存储区。
在一实施例中,将待写入数据写入写加速区之前,数据写模块302还用于:
判断写加速区是否已满;
若写加速区未满,则直接将待写入数据写入写加速区;
若写加速区已满,则将写加速区中的数据按优先级高低搬移至存储区中,再将待写入数据写入写加速区。
在一实施例中,在判断读命令指示的待读取数据是否为优先读取数据之后,数据读模块303还用于:
若待读取数据为优先读取数据且位于写加速区中,则从写加速区中读取待读取数据。
在一实施例中,将待读取数据由存储区搬移至读加速区之前,数据读模块303还用于:
判断读加速区是否已满;
若读加速区未满,则直接将待读取数据由存储区搬移至读加速区;
若读加速区已满,则将读加速区中的数据按上次读取时间的远近搬移至存储区中,再将待读取数据由存储区搬移至读加速区。
应当说明的是,本申请实施例提供的数据读写装置与上文实施例中的数据读写方法属于同一构思,在数据读写装置上可以运行数据读写方法实施例中提供的任一方法,其具体实现过程详见以上实施例,此处不再赘述。
在一实施例中,还提供一种电子设备,请参照图7,电子设备包括处理器401和闪存402,闪存402包括闪存控制器4021和存储器4022。
本申请实施例中的处理器401是通用处理器,比如ARM架构的处理器。
存储器4022用于存储数据,闪存控制器4021用于管理存储器4022中的数据,并与处理器401进行通信。本申请中,预先将存储器4022划分为加速区和存储区,其中,
处理器401用于下发针对闪存的写命令或读命令;
闪存控制器4021用于:
接收对闪存的写命令或者读命令;
当接收到写命令时,判断写命令指示的待写入数据是否为优先写入数据,是则将待写入数据写入加速区,否则将待写入数据写入存储区;
当接收到读命令时,判断读命令指示的待读取数据是否为优先读取数据,若待读取数据为优先读取数据且位于存储区中,则从存储区中读取待读取数据,并将待读取数据由存储区搬移至加速区。
在一实施例中,将加速区划分为写加速区和读加速区,将待写入数据写入加速区时,闪存控制器4021用于执行:
将待写入数据写入写加速区;
将待写入数据写入写加速区之后,闪存控制器4021还用于执行:
将待写入数据由写加速区搬移至读加速区;
将待读取数据由存储区搬移至加速区时,闪存控制器4021用于执行:
将待读取数据由存储区搬移至读加速区。
在一实施例中,将写加速区划分为多个对应不同优先级的子写加速区,在将待写入数据写入写加速区时,闪存控制器4021用于执行:
当待写入数据为多个时,按照优先级高低依次将每一待写入数据写入对应的子写加速区。
在一实施例中,将读加速区划分为多个对应不同优先级的子读加速区,在将待写入数据由写加速区搬移至读加速区时,闪存控制器4021用于执行:
当待写入数据为多个时,按照优先级高低依次将每一待写入数据由写加速区搬移至对应的子读加速区。
在一实施例中,将待写入数据由写加速区搬移至读加速区之前,闪存控制器4021还用于执行:
预测前述待写入数据被读取的概率;
当前述待写入数据被读取的概率达到预设概率时,将待写入数据由写加速区搬移至读加速区。
在一实施例中,在预测待写入数据被读取的概率之后,闪存控制器4021还用于执行:
当待写入数据被读取的概率未达到预设概率时,将待写入数据由写加速区搬移至存储区。
在一实施例中,将待写入数据写入写加速区之前,闪存控制器4021还用于执行:
判断写加速区是否已满;
若写加速区未满,则直接将待写入数据写入写加速区;
若写加速区已满,则将写加速区中的数据按优先级高低搬移至存储区中,再将待写入数据写入写加速区。
在一实施例中,在判断读命令指示的待读取数据是否为优先读取数据之后,闪存控制器4021还用于执行:
若待读取数据为优先读取数据且位于写加速区中,则从写加速区中读取待读取数据。
在一实施例中,将待读取数据由存储区搬移至读加速区之前,闪存控制器4021还用于执行:
判断读加速区是否已满;
若读加速区未满,则直接将待读取数据由存储区搬移至读加速区;
若读加速区已满,则将读加速区中的数据按上次读取时间的远近搬移至存储区中,再将待读取数据由存储区搬移至读加速区。
应当说明的是,本申请实施例提供的电子设备与上文实施例中的数据读写方法属于同一构思,在电子设备上可以运行数据读写方法实施例中提供的任一方法,其具体实现过程详见特征提取方法实施例,此处不再赘述。
需要说明的是,对本申请实施例的数据读写方法而言,本领域普通测试人员可以理解实现本申请实施例的数据读写方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的处理器和/或专用语音识别芯片执行,在执行过程中可包括如数据读写方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
以上对本申请实施例所提供的一种数据读写方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (6)
1.一种数据读写方法,应用于电子设备,其特征在于,将所述电子设备的闪存划分为加速区和存储区,所述加速区的读写速度大于所述存储区的读写速度,所述加速区划分有写加速区和读加速区,所述写加速区被划分为多个对应不同优先级的子写加速区,所述数据读写方法包括:
接收对所述闪存的写命令;
根据所述写命令携带的标志位,判断所述写命令指示的待写入数据是否为优先写入数据,否则将所述待写入数据写入所述存储区,是则将所述待写入数据写入所述写加速区,以及获取所述待写入数据的多维特征,并将所述多维特征输入预测模型预测所述待写入数据在写入预设时长内被读取的概率;
当所述概率达到预设概率时,将所述待写入数据由所述写加速区搬移至所述读加速区,所述多维特征包括所述待写入数据的数据类型、数据大小以及数据来源;当所述概率未达到所述预设概率时,将所述待写入数据由所述写加速区搬移至所述存储区;
所述将所述待写入数据写入所述写加速区,包括:
当所述待写入数据为多个时,按照优先级高低依次将每一待写入数据写入对应的子写加速区。
2.根据权利要求1所述的数据读写方法,其特征在于,所述将所述待写入数据写入所述写加速区之前,还包括:
判断所述写加速区是否已满;
若所述写加速区未满,则直接将所述待写入数据写入所述写加速区;
若所述写加速区已满,则将所述写加速区中的数据按优先级高低搬移至所述存储区中,再将所述待写入数据写入所述写加速区。
3.根据权利要求1所述的数据读写方法,其特征在于,将所述读加速区划分为多个对应不同优先级的子读加速区,所述将所述待写入数据由所述写加速区搬移至所述读加速区,包括:
当所述待写入数据为多个时,按照优先级高低依次将每一待写入数据由所述写加速区搬移至对应的子读加速区。
4.一种数据读写装置,应用于电子设备,其特征在于,将所述电子设备的闪存划分为加速区和存储区,所述加速区的读写速度大于所述存储区的读写速度,所述加速区划分有写加速区和读加速区,所述写加速区被划分为多个对应不同优先级的子写加速区,所述数据读写装置包括:
命令接收模块,用于接收对所述闪存的写命令;
数据写模块,用于根据所述写命令携带的标志位,判断所述写命令指示的待写入数据是否为优先写入数据,否则将所述待写入数据写入所述存储区,是则将所述待写入数据写入所述写加速区,以及获取所述待写入数据的多维特征,并将所述多维特征输入预测模型预测所述待写入数据在写入预设时长内被读取的概率,当所述概率达到预设概率时,将所述待写入数据由所述写加速区搬移至所述读加速区,所述多维特征包括所述待写入数据的数据类型、数据大小以及数据来源,当所述概率未达到所述预设概率时,将所述待写入数据由所述写加速区搬移至所述存储区;
当所述待写入数据为多个时,所述数据写模块用于按照优先级高低依次将每一待写入数据写入对应的子写加速区。
5.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序被闪存控制器加载时执行如权利要求1至3任一项所述的数据读写方法。
6.一种电子设备,包括处理器和闪存,所述闪存包括闪存控制器和存储器,其特征在于,将所述存储器划分为加速区和存储区,所述加速区的读写速度大于所述存储区的读写速度,所述加速区划分有写加速区和读加速区,所述写加速区被划分为多个对应不同优先级的子写加速区,其中,
所述处理器用于下发针对所述闪存的写命令;
所述闪存控制器用于:
接收对所述闪存的写命令;
根据所述写命令携带的标志位,判断所述写命令指示的待写入数据是否为优先写入数据,否则将所述待写入数据写入所述存储区,是则将所述待写入数据写入所述写加速区,以及获取所述待写入数据的多维特征,并将所述多维特征输入预测模型预测所述待写入数据在写入预设时长内被读取的概率;
当所述概率达到预设概率时,将所述待写入数据由所述写加速区搬移至所述读加速区,所述多维特征包括所述待写入数据的数据类型、数据大小以及数据来源;当所述概率未达到所述预设概率时,将所述待写入数据由所述写加速区搬移至所述存储区;
其中,当所述待写入数据为多个时,所述闪存控制器用于按照优先级高低依次将每一待写入数据写入对应的子写加速区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911381876.4A CN111176573B (zh) | 2019-12-27 | 2019-12-27 | 数据读写方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911381876.4A CN111176573B (zh) | 2019-12-27 | 2019-12-27 | 数据读写方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176573A CN111176573A (zh) | 2020-05-19 |
CN111176573B true CN111176573B (zh) | 2024-05-07 |
Family
ID=70658222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911381876.4A Active CN111176573B (zh) | 2019-12-27 | 2019-12-27 | 数据读写方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176573B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328509A (zh) * | 2020-11-26 | 2021-02-05 | 北京泽石科技有限公司 | 一种基于硬件实现的用于闪存控制器的快速控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015126429A1 (en) * | 2014-02-24 | 2015-08-27 | Hewlett-Packard Development Company, L.P. | Repurposable buffers for target port processing of a data transfer |
US9323657B1 (en) * | 2014-12-30 | 2016-04-26 | Sandisk Technologies Inc. | Memory system and method for improving read latency of a high-priority partition |
WO2017048436A1 (en) * | 2015-09-16 | 2017-03-23 | Intel Corporation | Technologies for managing a dynamic read cache of a solid state drive |
CN107608625A (zh) * | 2017-08-11 | 2018-01-19 | 记忆科技(深圳)有限公司 | 一种提升固存储设备读性能的方法 |
CN107967121A (zh) * | 2017-10-25 | 2018-04-27 | 华为技术有限公司 | 数据写入方法和存储设备 |
-
2019
- 2019-12-27 CN CN201911381876.4A patent/CN111176573B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015126429A1 (en) * | 2014-02-24 | 2015-08-27 | Hewlett-Packard Development Company, L.P. | Repurposable buffers for target port processing of a data transfer |
US9323657B1 (en) * | 2014-12-30 | 2016-04-26 | Sandisk Technologies Inc. | Memory system and method for improving read latency of a high-priority partition |
WO2017048436A1 (en) * | 2015-09-16 | 2017-03-23 | Intel Corporation | Technologies for managing a dynamic read cache of a solid state drive |
CN107608625A (zh) * | 2017-08-11 | 2018-01-19 | 记忆科技(深圳)有限公司 | 一种提升固存储设备读性能的方法 |
CN107967121A (zh) * | 2017-10-25 | 2018-04-27 | 华为技术有限公司 | 数据写入方法和存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111176573A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817217B2 (en) | Data storage system with improved time-to-ready | |
US8214582B2 (en) | Non-volatile memory system storing data in single-level cell or multi-level cell according to data characteristics | |
US8171239B2 (en) | Storage management method and system using the same | |
CN109753234B (zh) | 存储器系统及非易失性存储器的控制方法 | |
US20130212319A1 (en) | Memory system and method of controlling memory system | |
US8171206B2 (en) | Avoidance of self eviction caused by dynamic memory allocation in a flash memory storage device | |
US11294586B2 (en) | Method for performing read acceleration, associated data storage device and controller thereof | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
US20150127886A1 (en) | Memory system and method | |
CN111694510B (zh) | 数据储存装置与数据处理方法 | |
US8914587B2 (en) | Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request | |
CN112840310B (zh) | 增加用于命令调度的带宽的存储器子系统 | |
CN106445401B (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
CN106598504B (zh) | 数据存储方法及装置 | |
CN109614049B (zh) | 闪存控制方法、闪存控制器及闪存系统 | |
WO2016138785A1 (zh) | 一种运行进程的方法及装置 | |
CN112783424B (zh) | 存储装置及其控制方法 | |
CN111176573B (zh) | 数据读写方法、装置、存储介质及电子设备 | |
US10872015B2 (en) | Data storage system with strategic contention avoidance | |
US8452920B1 (en) | System and method for controlling a dynamic random access memory | |
US11494113B2 (en) | Computer program product and method and apparatus for scheduling execution of host commands | |
CN112148203B (zh) | 存储器管理方法、装置、电子设备及存储介质 | |
CN109308273B (zh) | 闪存控制器、闪存控制器功能的调节方法及设备 | |
US8429366B2 (en) | Device and method for memory control and storage device | |
KR20090053164A (ko) | 상태 정보를 관리하는 플래시 메모리 제어 장치 및 방법 |
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 |