CN111651120A - 预取数据的方法及装置 - Google Patents

预取数据的方法及装置 Download PDF

Info

Publication number
CN111651120A
CN111651120A CN202010347493.1A CN202010347493A CN111651120A CN 111651120 A CN111651120 A CN 111651120A CN 202010347493 A CN202010347493 A CN 202010347493A CN 111651120 A CN111651120 A CN 111651120A
Authority
CN
China
Prior art keywords
address
prefetching mode
prefetching
mode
target
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
CN202010347493.1A
Other languages
English (en)
Other versions
CN111651120B (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.)
Institute of Microelectronics of CAS
Original Assignee
Institute of Microelectronics of CAS
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 Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN202010347493.1A priority Critical patent/CN111651120B/zh
Publication of CN111651120A publication Critical patent/CN111651120A/zh
Application granted granted Critical
Publication of CN111651120B publication Critical patent/CN111651120B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0658Controller construction 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]
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及数据读写技术领域,尤其涉及预取数据的方法及装置,本发明的预取数据的方法,所述方法包括:基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式;基于目标预取方式,确定出预测地址;从NAND闪存中获取预测地址对应的数据并存入缓存单元,以使NAND闪存控制器从操作系统处接收到目标访问地址后,若目标访问地址与预测地址相同,则NAND闪存控制器从缓存单元中提取出预测地址对应的数据反馈给操作系统;基于预测地址确定目标预取方式的命中率,并基于命中率调整目标预取方式的奖励值。本发明能够降低NAND闪存的初始延时,有效地提高闪存的随机读取性能。

Description

预取数据的方法及装置
技术领域
本发明涉及数据读写技术领域,尤其涉及预取数据的方法及装置。
背景技术
与传统磁盘相比,NAND闪存具有功耗低、存储密度高、抗震性能好的优点。但是,受到NAND闪存本身的特性影响,其读写擦的单位不一致,编程和擦除次数受限。并且,NAND闪存的读写单位为页,页的大小一般为4-16KB,而操作系统读写数据的基本单位是扇区,一般为512字节。所以,NAND闪存不能通过接口直接连接到计算机系统,需要为NAND闪存增加一个软件层,即闪存转换层(Flash Translation Layer,FTL),利用FTL实现对数据的管理。
进一步来讲,FTL承载于闪存控制器中,闪存控制器位于操作系统和闪存之间。从而,操作系统只需跟原来一样操作逻辑区块地址(Logical Block Address,LBA)即可,而LBA到物理区块地址(Physics Block Address,PBA)的所有转换工作,则全部由FTL负责。FTL的基本功能是LBA到PBA的地址映射。同时,FTL还具有垃圾回收功能,由于NAND闪存的擦除次数有限,过多的擦除次数会导致NAND闪存的存储器阵列块单元损坏,通过垃圾回收功能可以有效减少擦除次数。除此之外,FTL还具有磨损均衡算法,由于主机对底层固态硬盘的擦写指令是局部性和不平衡的,这将使得某个存储块率先损坏,通过磨损均衡算法可以有效的提高硬盘的使用寿命。正因为FTL具有上述功能,使得NAND闪存可以作为硬盘驱动器(Hard Disk Drive,HDD)的替代品。
然而,现有的NAND闪存存在初始延时,随机读取性能较差。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的预取数据的方法及装置。
依据本发明的第一个方面,本发明提供了一种预取数据的方法,应用于NAND闪存控制器,所述NAND闪存控制器连接在操作系统和NAND闪存之间,所述NAND闪存控制器包括缓存单元,所述方法包括:
基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式;
基于所述目标预取方式,确定出预测地址;
从所述NAND闪存中获取所述预测地址对应的数据并存入所述缓存单元,以使所述NAND闪存控制器从所述操作系统处接收到目标访问地址后,若所述目标访问地址与所述预测地址相同,则所述NAND闪存控制器从所述缓存单元中提取出所述预测地址对应的数据反馈给所述操作系统;
基于所述预测地址确定所述目标预取方式的命中率,并基于所述命中率调整所述目标预取方式的奖励值。
优选的,所述基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式,包括:
顺次判断所述高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值是否高于预设奖励阈值,从当前奖励值高于或等于所述预设奖励阈值的预取方式中确定出一种预取方式作为目标预取方式;
若所述高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值均低于所述预设奖励阈值,将当前奖励值最高的预取方式作为所述目标预取方式,或,调整所述预设奖励阈值直至存在高于或等于所述预设奖励阈值的预取方式。
优选的,所述顺次判断所述高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值是否高于预设奖励阈值,从当前奖励值高于或等于所述预设奖励阈值的预取方式中确定出一种预取方式作为目标预取方式,包括:
判断所述高位地址预取方式的当前奖励值是否高于所述预设奖励阈值;
若所述高位地址预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述高位地址预取方式确定为所述目标预取方式;若所述高位地址预取方式的当前奖励值低于所述预设奖励阈值,判断所述顺序预取方式的当前奖励值是否高于预设奖励阈值;
若所述顺序预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述顺序预取方式确定为所述目标预取方式;若所述顺序预取方式的当前奖励值低于所述预设奖励阈值,判断所述历史访问队列预取方式的当前奖励值是否高于预设奖励阈值;
若所述历史访问队列预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述历史访问队列预取方式确定为所述目标预取方式。
优选的,若所述目标预取方式为所述高位地址预取方式,所述基于所述目标预取方式,确定出预测地址,包括:
在从所述操作系统处接收到高位地址后,默认低位地址为零;
基于所述高位地址和所述低位地址,获得所述预测地址。
优选的,若所述目标预取方式为所述顺序预取方式,所述基于所述目标预取方式,确定出预测地址,包括:
将在地址空间上位于当前访问地址之后的地址确定为所述预测地址。
优选的,若所述目标预取方式为所述历史访问队列预取方式,所述基于所述目标预取方式,确定出预测地址,包括:
将历史访问队列中位于当前访问地址之后的地址确定为所述预测地址。
优选的,所述基于所述命中率调整所述目标预取方式的奖励值,包括:
若所述命中率高于或等于预设命中上限,则调高所述目标预取方式的奖励值;
若所述命中率低于或等于预设命中下限,则调低所述目标预取方式的奖励值;
若所述命中率位于所述预设命中上限和所述预设命中下限之间,则保持所述目标预取方式的奖励值不变。
依据本发明的第二个方面,本发明提供了一种预取数据的装置,应用于NAND闪存控制器,所述NAND闪存控制器连接在操作系统和NAND闪存之间,所述NAND闪存控制器包括缓存单元,所述装置包括:
选取模块,用于基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式;
预测模块,用于基于所述目标预取方式,确定出预测地址;
获取模块,用于从所述NAND闪存中获取所述预测地址对应的数据并存入所述缓存单元,以使所述NAND闪存控制器从所述操作系统处接收到目标访问地址后,若所述目标访问地址与所述预测地址相同,则所述NAND闪存控制器从所述缓存单元中提取出所述预测地址对应的数据反馈给所述操作系统;
调整模块,用于基于所述预测地址确定所述目标预取方式的命中率,并基于所述命中率调整所述目标预取方式的奖励值。
依据本发明的第三个方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述第一个方面所述的方法步骤。
依据本发明的第四个方面,本发明提供了一种计算机设备,包括存储,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如前述第一个方面所述的方法步骤。
本发明的预取数据的方法,应用于NAND闪存控制器,NAND闪存控制器连接在操作系统和NAND闪存之间,NAND闪存控制器包括缓存单元。本发明首先基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式。然后基于目标预取方式,确定出预测地址。接着从NAND闪存中获取预测地址对应的数据并存入缓存单元,以使NAND闪存控制器从操作系统处接收到目标访问地址后,若目标访问地址与预测地址相同,则NAND闪存控制器从缓存单元中提取出预测地址对应的数据反馈给操作系统。另外,还会基于预测地址确定目标预取方式的命中率,并基于命中率调整目标预取方式的奖励值。通过上述过程实现了对NAND闪存中的数据的预取,从而能够降低NAND闪存的初始延时,有效地提高闪存的随机读取性能。并且基于命中率对奖励值进行调整,还实现了对三种预取方式的动态强化学习,以提高预取数据的准确性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。在附图中:
图1示出了本发明中操作系统、闪存控制器和闪存之间连接关系的示意图。
图2示出了本发明实施例中预取数据的方法的流程图。
图3示出了本发明实施例中步骤102的流程图。
图4示出了本发明实施例中步骤201的流程图。
图5示出了本发明实施例中预取数据的装置的结构示意图。
图6示出了本发明实施例中计算机设备的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明第一实施例提供一种预取数据的方法,应用于NAND闪存控制器。如图1所示,NAND闪存控制器包含主机接口、闪存接口、缓存单元、地址映射、预取列表和只读存储器(即ROM)。主机接口用于与操作系统连接,通过主机接口可以从操作系统中接收访问地址。闪存接口用于与NAND闪存连接,通过闪存接口可以从NAND闪存中读取数据。缓存单元用于对读取出的数据进行缓存。主机接口还用于将缓存单元中数据发送给操作系统。FTL作为软件层,本申请的预取数据的方法通过FTL实现,并利用ROM承载。
如图2所示,本发明实施例的预取数据的方法包括以下步骤:
步骤101:基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式。
步骤102:基于目标预取方式,确定出预测地址。
步骤103:从NAND闪存中获取预测地址对应的数据并存入缓存单元,以使NAND闪存控制器从操作系统处接收到目标访问地址后,若目标访问地址与预测地址相同,则NAND闪存控制器从缓存单元中提取出预测地址对应的数据反馈给操作系统。
步骤104:基于预测地址确定目标预取方式的命中率,并基于命中率调整目标预取方式的奖励值。
需要说明的是,本申请在NAND闪存控制器中增加预取功能。预取功能是指在完成对当前访问地址的访问后,在不知道下一个访问地址的情况下,提前预测出下一个访问地址,并将下一个访问地址对应的数据提前准备好。进而,如果预测出的访问地址和实际的访问地址相同,那么表明预取命中,如果预测出的访问地址与实际的访问地址不相同,那么表明预取失败。
对于步骤101而言,在本发明实施例中,对于如何对地址进行预测,存在三种方式,分别对应于高位地址预取方式、顺序预取方式和历史访问队列预取方式。下面对这三种预取方式进行详细说明:
对于高位地址预取方式而言,由于在串行接口传输地址的过程中,高位地址优先于低位地址传输至闪存控制器。因此,在接收到高位地址之后,可以直接默认低位地址为零,从而得到一个预测地址。进而,将预测地址对应的数据存入缓存单元,实现了对地址数据的预取,以便在低位地址到来后,根据低位地址从缓存单元中读取相应的扇区数据。
对于顺序预取方式而言,由于操作系统访问的地址在地址空间上具有局部性,某一地址被访问后,在地址空间上位于该地址之后的地址很快就会被访问。因此,在操作系统访问了当前访问地址之后,可以将在地址空间上位于当前访问地址之后的地址作为预测地址。进而,将预测地址对应的数据存入缓存单元,实现了对地址数据的预取,以便在目标访问地址到来后,若目标访问地址与预测地址相同,从缓存单元中读取对应的数据。其中,目标访问地址为与预测地址对应的实际访问地址,预测地址是对目标访问地址的预测。
对于历史访问队列预取方式而言,由于操作系统访问的地址在访问时间上具有局部性,即,计算机在某一时间会频繁访问某一固定的历史区域,并且访问顺序是相似的。因此,将距离当前时刻预设时间段内(最近)访问过的地址写入历史访问队列表中,从而历史访问队列表中包含有最近访问的多个地址。因此,在操作系统访问了当前访问地址之后,可以通过在历史访问队列表中对当前访问地址进行查找,将历史访问队列表中位于当前访问地址之后的地址作为预测地址。进而,将预测地址对应的数据存入缓存单元,实现了对地址数据的预取,以便在目标访问地址到来后,若目标访问地址与预测地址相同,从缓存单元中读取对应的数据。
进一步,对于上述三种预取方式而言,每个预取方式均对应一个属性参数,即奖励值,奖励值根据预取方式的命中率动态变化。在步骤101中,根据每个预取方式当前的奖励值,从三种预取方式中确定出一种预取方式作为目标预取方式。
进一步,如图3所示,步骤101具体包括以下步骤:
步骤201:顺次判断高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值是否高于预设奖励阈值,从当前奖励值高于或等于预设奖励阈值的预取方式中确定出一种预取方式作为目标预取方式。
步骤202:若高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值均低于预设奖励阈值,将当前奖励值最高的预取方式作为目标预取方式,或,调整预设奖励阈值直至存在高于或等于预设奖励阈值的预取方式。
具体来讲,在本发明实施例中,存在一预设奖励阈值。预设奖励阈值可以在执行本发明的预取数据的方法的学习过程中动态调整。预设奖励阈值会影响三种预取方式的切换速度,同时,其受当前任务的时间局部性影响。例如,设定一高的预设奖励阈值,那么可以快速地确定出最优的预取方式,但是三种预取方式均低于该预设奖励阈值的概率越大。
进而,本申请通过将三种预取方式的奖励值与预设奖励阈值进行对比,从中确定出目标预取方式。即,顺次判断三种预取方式是否高于预设奖励阈值,若三种预取方式中存在高于或等于预设奖励阈值的预取方式,那么,从高于或等于预设奖励阈值的预取方式中确定出一个预取方式作为目标预取方式。若三种预取方式均低于预设奖励阈值,存在以下两种执行方式可以选择。
在第一种执行方式中,可以将当前奖励值最高的预取方式作为目标预取方式。例如,若高位地址预取方式的当前奖励值为59、顺序预取方式的当前奖励值为40、历史访问队列预取方式的当前奖励值为35,而预设奖励阈值为60,由于三种预取方式的当前奖励值均小于预设奖励阈值,但是当前奖励值最高的预取方式为高位地址预取方式,那么将高位地址预取方式作为目标预取方式。在第二种执行方式中,可以对预设奖励阈值进行调整(即降低预设奖励阈值),进而重新执行步骤201中的顺次判断过程,直至存在高于或等于预设奖励阈值的预取方式。例如,如果当前的预设奖励阈值为60,但是三种预取方式的当前奖励阈值均低于60,那么可以将预设奖励阈值降低为50,然后重新执行步骤201,顺次判断三种预取方式的当前奖励阈值是否高于新的预设奖励阈值(即50)。
而对于步骤201而言,如图4所示,包括以下步骤:
步骤301:判断高位地址预取方式的当前奖励值是否高于预设奖励阈值。
步骤302:若高位地址预取方式的当前奖励值高于或等于预设奖励阈值,将高位地址预取方式确定为目标预取方式;若高位地址预取方式的当前奖励值低于预设奖励阈值,判断顺序预取方式的当前奖励值是否高于预设奖励阈值。
步骤303:若顺序预取方式的当前奖励值高于或等于预设奖励阈值,将顺序预取方式确定为目标预取方式;若顺序预取方式的当前奖励值低于预设奖励阈值,判断历史访问队列预取方式的当前奖励值是否高于预设奖励阈值。
步骤304:若历史访问队列预取方式的当前奖励值高于或等于预设奖励阈值,将历史访问队列预取方式确定为目标预取方式。
具体来讲,在本发明实施例中,可以按照从高位地址预取方式到顺序预取方式再到历史访问队列预取方式的顺序,依次判断预取方式对应的当前奖励值是否高于预设奖励阈值,当判断结果为:该预取方式对应的当前奖励值高于或等于预设奖励阈值,那么就将该预取方式确定为目标预取方式。而,如果该预取方式对应的当前奖励值低于预设奖励阈值,那么就对下一预取方式进行判断。
在确定出目标预取方式之后,执行步骤102。具体来讲:
若目标预取方式为高位地址预取方式,那么步骤102具体为:在从操作系统处接收到高位地址后,默认低位地址为零。基于高位地址和低位地址,获得预测地址。
具体来讲,在高位地址预取方式中,需要接收目标访问地址中的高位地址,进而,在接收到高位地址且未接收到低位地址时,对目标访问地址进行预测。由于操作系统的访问一般会从零地址开始,因此通过默认低位地址为零,能够快速地定位出可能的地址,该可能的地址由接收到的实际的高位地址以及默认为零的低位地址组成,该可能的地址即预测地址。进而,结合步骤103,在低位地址到来后(即NAND闪存控制器从操作系统处接收到目标访问地址后),如果低位地址确实为零(即目标访问地址与预测地址相同),那么可以直接从缓存单元中读取相应的扇区数据并反馈给操作系统,有效地降低了闪存的初始延时。
若目标预取方式为顺序预取方式,那么步骤102具体为:将在地址空间上位于当前访问地址之后的地址确定为预测地址。
具体来讲,根据地址空间上的局部性,某一地址被访问后,在地址空间上位于该地址之后的地址很快就会被访问。本申请将在地址空间上位于当前访问地址之后的地址作为预测地址。即,预取地址=当前访问地址+当前访问地址范围。例如,当前访问地址为0x00000000,假设当前操作读取的地址区间大小为512Bytes,那么预取地址为0x00000200。进而,结合步骤103,在目标访问地址到来后,如果目标标访问地址与预测地址相同,则可以直接从缓存单元中读取相应的数据并反馈给操作系统,有效地降低了闪存的初始延时。
若目标预取方式为历史访问队列预取方式,那么步骤102具体为:将历史访问队列中位于当前访问地址之后的地址确定为预测地址。
具体来讲,根据访问时间上的局部性,即,计算机在某一时间会频繁访问某一固定的历史区域,并且访问顺序是相似的。本申请将距离当前时刻预设时间段内访问过的地址写入历史访问队列中,历史访问队列中包含有当前访问地址。本申请将历史访问队列表中位于当前访问地址之后的地址作为预测地址。例如,历史访问队列表中包含具有以下顺序的地址队列:ACDEBFGKMN,那么,如果当前访问地址为B,那么将F作为预测地址。进而,结合步骤103,在目标访问地址到来,后,如果目标标访问地址与预测地址相同,则可以直接从缓存单元中读取相应的数据并反馈给操作系统,有效地降低了闪存的初始延时。
进一步来讲,在步骤103中,NAND闪存控制器根据预测地址可以从NAND闪存中获取对应的数据,并将该数据存入缓存单元。进而,在NAND闪存控制器从操作系统处接收到目标访问地址后,若目标访问地址与预测地址相同,则NAND闪存控制器从缓存单元中提取出预测地址对应的数据,并将该数据反馈给操作系统。
在确定出预测地址之后,还会执行步骤104。在步骤104中,首先确定预测地址的命中率,再根据命中率调整目标预取方式的奖励值。对于如何根据命中率调整奖励值,具体包括:若命中率高于或等于预设命中上限,则调高目标预取方式的奖励值;若命中率低于或等于预设命中下限,则降低目标预取方式的奖励值;若命中率位于预设命中上限和预设命中下限之间,则保持目标预取方式的奖励值不变。
具体来讲,本申请存在一预设命中上限和一预设命中下限,预设命中上限和预设命中下限可以在学习过程中动态调整,并且,预设命中上限和预设命中下限受到缓存单元大小以及当前操作系统的主机端任务类型影响,例如,当主机端进行连续地址读写时,设定较高的命中率上下限,当主机端访问的地址分散没有规律时,设定较低的命中率上下限。
下面以高位地址预取方式为例,对步骤104中的奖励机制进行说明:
假设确定出的目标预取方式为高位预取方式,那么,若NAND闪存控制器的主机接口从操作系统所要接收的目标访问地址包括以下结构:A[31:24]=A1,A[23:16]=A2,A[15:8]=A3,A[7:0]=A4,高位地址在前,低位地址在后,单次读取数据区间为512Bytes,预取缓存空间为16KBytes。当NAND闪存控制器接收到高位地址A1和A2时,A1=0x01,A2=0x02。基于高位地址预取方式,将低位地址置零,从而确定出预测地址为0x01020000-0x01024000。而实际上想要读取的数据对应的地址(即实际的目标访问地址)为0x01020000-0x0102ffff中的一部分,所以,预测地址有一定概率命中和缺失。当接收到完整的目标访问地址(包含实际的高位地址和实际的低位地址)之后,会将预测地址和目标访问地址进行匹配。若完整地址为A1A2A3A4=0x01020100,则目标地址空间0x01020100-0x01020300(512Bytes)在预测地址0x01020000-0x01024000(16k)范围内,该种情况表现为命中;若完整地址为A1A2A3A4=0x01028000,不在预测地址中,该种情况表现为缺失。进一步,根据命中或缺失,能够确定出预取方式的命中率,命中率=命中次数/访问次数。若预先设定预设命中上限为30%,以及设定预设命中下限为10%,如果确定出的命中率为50%,则通过对高位地址预取方式进行奖励值+1以提高高位地址预取方式当前奖励值,如果确定出的命中率为8%,则通过对高位地址预取方式进行奖励值-1以降低高位地址预取方式当前奖励值。
需要说明的是,本发明实施例的预取数据的方法通过基于命中率调整目标预取方式的奖励值,实际上也是一种动态学习的过程,从而能够确定出满足实际需要的目标预取方式,使得对数据的预取更加准确。在每种预取方式对应的奖励机制中,奖励值的基础值可以设定为100。
本发明的预取数据的方法,通过上述过程实现了准确地对闪存中的数据的预取,从而能够降低闪存的初始延时,有效地提高闪存的随机读取性能,而且由于并不是同时采用三种预取方式获得三个数据,还能够降低缓存单元的空间。
基于同一发明构思,本发明第二实施例还提供一种预取数据的装置,应用于NAND闪存控制器,NAND闪存控制器连接在操作系统和NAND闪存之间,NAND闪存控制器包括缓存单元,如图5所示,所述装置包括:
选取模块401,用于基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式;
预测模块402,用于基于所述目标预取方式,确定出预测地址;
获取模块403,用于从所述NAND闪存中获取所述预测地址对应的数据并存入所述缓存单元,以使所述NAND闪存控制器从所述操作系统处接收到目标访问地址后,若所述目标访问地址与所述预测地址相同,则所述NAND闪存控制器从所述缓存单元中提取出所述预测地址对应的数据反馈给所述操作系统;
调整模块404,用于基于所述预测地址确定所述目标预取方式的命中率,并基于所述命中率调整所述目标预取方式的奖励值。
优选的,选取模块401,包括:
判断单元,用于顺次判断所述高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值是否高于预设奖励阈值,从当前奖励值高于或等于所述预设奖励阈值的预取方式中确定出一种预取方式作为目标预取方式;
预取方式确定单元,用于若所述高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值均低于所述预设奖励阈值,将当前奖励值最高的预取方式作为所述目标预取方式,或,调整所述预设奖励阈值直至存在高于或等于所述预设奖励阈值的预取方式。
优选的,所述判断单元,包括:
第一处理子单元,用于判断所述高位地址预取方式的当前奖励值是否高于所述预设奖励阈值;
第二处理子单元,用于若所述高位地址预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述高位地址预取方式确定为所述目标预取方式;若所述高位地址预取方式的当前奖励值低于所述预设奖励阈值,判断所述顺序预取方式的当前奖励值是否高于预设奖励阈值;
第三处理子单元,用于若所述顺序预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述顺序预取方式确定为所述目标预取方式;若所述顺序预取方式的当前奖励值低于所述预设奖励阈值,判断所述历史访问队列预取方式的当前奖励值是否高于预设奖励阈值;
第四处理子单元,用于若所述历史访问队列预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述历史访问队列预取方式确定为所述目标预取方式。
优选的,若所述目标预取方式为所述高位地址预取方式,所述预测模块,包括:
第一处理单元,用于在从所述操作系统处接收到高位地址后,默认低位地址为零;
第二处理单元,用于基于所述高位地址和所述低位地址,获得所述预测地址。
优选的,若所述目标预取方式为所述顺序预取方式,所述预测模块,包括:
第一确定单元,用于将在地址空间上位于当前访问地址之后的地址确定为所述预测地址。
优选的,若所述目标预取方式为所述历史访问队列预取方式,所述预测模块,包括:
第二确定单元,用于将历史访问队列中位于当前访问地址之后的地址确定为所述预测地址。
优选的,调整模块404,包括:
调高单元,用于若所述命中率高于或等于预设命中上限,则调高所述目标预取方式的奖励值;
调低单元,用于若所述命中率低于或等于预设命中下限,则调低所述目标预取方式的奖励值;
保持单元,用于若所述命中率位于所述预设命中上限和所述预设命中下限之间,则保持所述目标预取方式的奖励值不变。
基于同一发明构思,本发明第三实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述第一实施例所述的方法步骤。
基于同一发明构思,本发明第四实施例还提供了一种计算机设备,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以计算机设备为手机为例:
图6示出的是与本发明实施例提供的计算机设备相关的部分结构的框图。参考图6,该计算机设备包括:存储器501和处理器502。本领域技术人员可以理解,图6中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对计算机设备的各个构成部件进行具体的介绍:
存储器501可用于存储软件程序以及模块,处理器502通过运行存储在存储器501的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器501可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据(比如音频数据、电话本等)等。此外,存储器501可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器502是计算机设备的控制中心,通过运行或执行存储在存储器501内的软件程序和/或模块,以及调用存储在存储器501内的数据,执行各种功能和处理数据。可选的,处理器502可包括一个或多个处理单元;优选的,处理器502可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
在本发明实施例中,该计算机设备所包括的处理器502可以具有前述第一实施例中任一方法步骤所对应的功能。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种预取数据的方法,其特征在于,应用于NAND闪存控制器,所述NAND闪存控制器连接在操作系统和NAND闪存之间,所述NAND闪存控制器包括缓存单元,所述方法包括:
基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式;
基于所述目标预取方式,确定出预测地址;
从所述NAND闪存中获取所述预测地址对应的数据并存入所述缓存单元,以使所述NAND闪存控制器从所述操作系统处接收到目标访问地址后,若所述目标访问地址与所述预测地址相同,则所述NAND闪存控制器从所述缓存单元中提取出所述预测地址对应的数据反馈给所述操作系统;
基于所述预测地址确定所述目标预取方式的命中率,并基于所述命中率调整所述目标预取方式的奖励值。
2.如权利要求1所述的方法,其特征在于,所述基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式,包括:
顺次判断所述高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值是否高于预设奖励阈值,从当前奖励值高于或等于所述预设奖励阈值的预取方式中确定出一种预取方式作为目标预取方式;
若所述高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值均低于所述预设奖励阈值,将当前奖励值最高的预取方式作为所述目标预取方式,或,调整所述预设奖励阈值直至存在高于或等于所述预设奖励阈值的预取方式。
3.如权利要求2所述的方法,其特征在于,所述顺次判断所述高位地址预取方式、顺序预取方式和历史访问队列预取方式的当前奖励值是否高于预设奖励阈值,从当前奖励值高于或等于所述预设奖励阈值的预取方式中确定出一种预取方式作为目标预取方式,包括:
判断所述高位地址预取方式的当前奖励值是否高于所述预设奖励阈值;
若所述高位地址预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述高位地址预取方式确定为所述目标预取方式;若所述高位地址预取方式的当前奖励值低于所述预设奖励阈值,判断所述顺序预取方式的当前奖励值是否高于预设奖励阈值;
若所述顺序预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述顺序预取方式确定为所述目标预取方式;若所述顺序预取方式的当前奖励值低于所述预设奖励阈值,判断所述历史访问队列预取方式的当前奖励值是否高于预设奖励阈值;
若所述历史访问队列预取方式的当前奖励值高于或等于所述预设奖励阈值,将所述历史访问队列预取方式确定为所述目标预取方式。
4.如权利要求1所述的方法,其特征在于,若所述目标预取方式为所述高位地址预取方式,所述基于所述目标预取方式,确定出预测地址,包括:
在从所述操作系统处接收到高位地址后,默认低位地址为零;
基于所述高位地址和所述低位地址,获得所述预测地址。
5.如权利要求1所述的方法,其特征在于,若所述目标预取方式为所述顺序预取方式,所述基于所述目标预取方式,确定出预测地址,包括:
将在地址空间上位于当前访问地址之后的地址确定为所述预测地址。
6.如权利要求1所述的方法,其特征在于,若所述目标预取方式为所述历史访问队列预取方式,所述基于所述目标预取方式,确定出预测地址,包括:
将历史访问队列中位于当前访问地址之后的地址确定为所述预测地址。
7.如权利要求1所述的方法,其特征在于,所述基于所述命中率调整所述目标预取方式的奖励值,包括:
若所述命中率高于或等于预设命中上限,则调高所述目标预取方式的奖励值;
若所述命中率低于或等于预设命中下限,则调低所述目标预取方式的奖励值;
若所述命中率位于所述预设命中上限和所述预设命中下限之间,则保持所述目标预取方式的奖励值不变。
8.一种预取数据的装置,其特征在于,应用于NAND闪存控制器,所述NAND闪存控制器连接在操作系统和NAND闪存之间,所述NAND闪存控制器包括缓存单元,所述装置包括:
选取模块,用于基于预取方式对应的当前奖励值,从高位地址预取方式、顺序预取方式和历史访问队列预取方式中确定出一种预取方式作为目标预取方式;
预测模块,用于基于所述目标预取方式,确定出预测地址;
获取模块,用于从所述NAND闪存中获取所述预测地址对应的数据并存入所述缓存单元,以使所述NAND闪存控制器从所述操作系统处接收到目标访问地址后,若所述目标访问地址与所述预测地址相同,则所述NAND闪存控制器从所述缓存单元中提取出所述预测地址对应的数据反馈给所述操作系统;
调整模块,用于基于所述预测地址确定所述目标预取方式的命中率,并基于所述命中率调整所述目标预取方式的奖励值。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一权利要求所述的方法步骤。
10.一种计算机设备,包括存储,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一权利要求所述的方法步骤。
CN202010347493.1A 2020-04-28 2020-04-28 预取数据的方法及装置 Active CN111651120B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010347493.1A CN111651120B (zh) 2020-04-28 2020-04-28 预取数据的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010347493.1A CN111651120B (zh) 2020-04-28 2020-04-28 预取数据的方法及装置

Publications (2)

Publication Number Publication Date
CN111651120A true CN111651120A (zh) 2020-09-11
CN111651120B CN111651120B (zh) 2023-08-08

Family

ID=72352225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010347493.1A Active CN111651120B (zh) 2020-04-28 2020-04-28 预取数据的方法及装置

Country Status (1)

Country Link
CN (1) CN111651120B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799723A (zh) * 2021-04-14 2021-05-14 成都爱旗科技有限公司 一种数据读取方法、装置及电子设备
CN114065947A (zh) * 2021-11-15 2022-02-18 深圳大学 一种数据访问推测方法、装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625793A (en) * 1991-04-15 1997-04-29 International Business Machines Corporation Automatic cache bypass for instructions exhibiting poor cache hit ratio
JPH10187531A (ja) * 1996-12-27 1998-07-21 Nec Corp キャッシュメモリのプリフェッチ方式
CN106776371A (zh) * 2015-12-14 2017-05-31 上海兆芯集成电路有限公司 跨距参考预取器、处理器和将数据预取到处理器的方法
CN110226158A (zh) * 2017-12-29 2019-09-10 华为技术有限公司 一种数据预取方法、装置和存储设备
CN111052095A (zh) * 2017-08-30 2020-04-21 甲骨文国际公司 使用动态预取深度的多行数据预取

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625793A (en) * 1991-04-15 1997-04-29 International Business Machines Corporation Automatic cache bypass for instructions exhibiting poor cache hit ratio
JPH10187531A (ja) * 1996-12-27 1998-07-21 Nec Corp キャッシュメモリのプリフェッチ方式
CN106776371A (zh) * 2015-12-14 2017-05-31 上海兆芯集成电路有限公司 跨距参考预取器、处理器和将数据预取到处理器的方法
CN111052095A (zh) * 2017-08-30 2020-04-21 甲骨文国际公司 使用动态预取深度的多行数据预取
CN110226158A (zh) * 2017-12-29 2019-09-10 华为技术有限公司 一种数据预取方法、装置和存储设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799723A (zh) * 2021-04-14 2021-05-14 成都爱旗科技有限公司 一种数据读取方法、装置及电子设备
CN114065947A (zh) * 2021-11-15 2022-02-18 深圳大学 一种数据访问推测方法、装置、存储介质及电子设备
CN114065947B (zh) * 2021-11-15 2022-07-22 深圳大学 一种数据访问推测方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN111651120B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US11055230B2 (en) Logical to physical mapping
JP4044067B2 (ja) シリアルフラッシュメモリにおけるxipのための優先順位に基づくフラッシュメモリ制御装置及びこれを用いたメモリ管理方法、これによるフラッシュメモリチップ
KR101469512B1 (ko) 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템
KR101419615B1 (ko) 리드 및 라이트 인식 캐시
US7360015B2 (en) Preventing storage of streaming accesses in a cache
US7917701B2 (en) Cache circuitry, data processing apparatus and method for prefetching data by selecting one of a first prefetch linefill operation and a second prefetch linefill operation
US8443144B2 (en) Storage device reducing a memory management load and computing system using the storage device
US9244619B2 (en) Method of managing data storage device and data storage device
KR101522402B1 (ko) 반도체 디스크 장치 및 그것의 데이터 관리 방법
JP2011198133A (ja) メモリシステムおよびコントローラ
JP2013137770A (ja) Lbaビットマップの使用
CN112905111A (zh) 数据缓存的方法和数据缓存的装置
CN111651120B (zh) 预取数据的方法及装置
US20210271640A1 (en) File loading method and apparatus, electronic device, and storage medium
US20140244902A1 (en) Fast read in write-back cached memory
CN104461607A (zh) 缓存引导数据的固态驱动器
US20040215923A1 (en) Optimally mapping a memory device
EP2524314B1 (en) System and method to access a portion of a level two memory and a level one memory
Ahn et al. A compressed file system manager for flash memory based consumer electronics devices
US8661169B2 (en) Copying data to a cache using direct memory access
JP7170093B2 (ja) 記憶デバイスのための改良された先読み能力
US11461101B2 (en) Circuitry and method for selectively controlling prefetching of program instructions
CN116010298B (zh) Nand型闪存地址映射的方法、装置、电子设备及存储介质
WO2023055510A1 (en) Cache miss predictor
KR20040100262A (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