CN116185287A - 一种降低读延时的方法、装置及固态硬盘 - Google Patents
一种降低读延时的方法、装置及固态硬盘 Download PDFInfo
- Publication number
- CN116185287A CN116185287A CN202211711334.0A CN202211711334A CN116185287A CN 116185287 A CN116185287 A CN 116185287A CN 202211711334 A CN202211711334 A CN 202211711334A CN 116185287 A CN116185287 A CN 116185287A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- address
- read
- length
- 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.)
- Pending
Links
Images
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/0629—Configuration or reconfiguration of storage 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本发明涉及固态硬盘技术领域,提供了一种降低读延时的方法、装置及固态硬盘,应用于固态硬盘,所述固态硬盘包括闪存阵列和缓存单元,所述缓存单元通过缓存结构管理缓存数据,主要通过接收主机发送的预读取命令,其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息;通过接收主机发送的预读取命令,以避免在固态硬盘中增加额外的算法来预测主机需要读取的数据,进而节约了硬件的成本。根据所述预读取命令查找闪存阵列,以预读取与所述数据信息相对应的第一数据,将所述预读取的第一数据写入缓存结构中,以使主机根据缓存结构从缓存单元中读取所述目标数据,从而避免了在闪存阵列中读数据,进而节约了读数据的时间。
Description
技术领域
本发明涉及固态硬盘技术领域,尤其涉及一种降低读延时的方法、装置及固态硬盘。
背景技术
固态硬盘(Solid State Drives,SSD)是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。固态硬盘的主要物理器件包括主控制器、闪存阵列(NAND Flash)和缓存。在固态硬盘工作的过程中,读命令的延时是固态硬盘的关键性能之一,而读命令的延时,包括命中缓存和不命中缓存两种场景。命中缓存指的是数据直接从缓存传输到主机,一般4KB数据量的读延时大约为8us左右;不命中缓存指的是主控制器首先将数据从NAND读出,再传输到主机,一般4KB数据的延时大约为60us到90us左右。因此,在实际的操作中,需要主控制器预测要读的地址,以预先将数据从NAND读取到缓存中,而对于随机读的场景,主控制器无法预测要读的地址,故随机读的延迟会较大。
现有技术中一般是SSD内部采用神经网络等算法预测主机接下来要读的地址,提前进行预读。但预测算法只能应用于相关性较强的序列,对于随机序列,或者多个序列混杂在一起的场景,一般预测效果不好。并且,在预测效果不好的情况下,主控制器会预读取无用的数据到缓存中,反而会对性能产生反作用,此外预测算法会占用主控制器的软硬件资源,增加成本。
发明内容
本发明实施例主要提供一种降低读延时的方法、装置及固态硬盘,旨在解决现有技术中固态硬盘预读取时,准确性低及成本大的技术问题。
为解决上述技术问题,本发明实施方式采用的一个技术方案是:提供一种降低读延时的方法,应用于固态硬盘,所述固态硬盘包括闪存阵列和缓存单元,所述缓存单元通过缓存结构管理缓存数据,所述方法包括:接收主机发送的预读取命令;其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息;根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的第一数据,其中,所述第一数据中包括目标数据;将所述预读取的第一数据写入所述缓存结构中,以使所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据。
可选的,所述根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的目标数据,包括:基于所述预读取命令,获取所述数据信息中的地址,以及所述地址对应的长度和优先级;根据所述地址及所述地址对应的长度,查找所述闪存阵列,以获取与所述长度及地址一致的数据;将与所述长度及地址一致的数据设为第一数据,并将所述地址对应的优先级赋予给所述第一数据。
可选的,所述缓存结构包括优先级、时间戳、有效位、地址及长度,所述将所述预读取的第一数据写入所述缓存结构中,包括:获取所述第一数据,以及所述第一数据对应的优先级、长度及地址;将所述第一数据及所述第一数据对应的优先级、长度、地址分别写入所述缓存结构中,并将所述第一数据的有效位设置为第一阈值;获取所述第一数据写入所述缓存结构的时间,并将所述时间记为所述第一数据的时间戳。
可选的,所述缓存结构还包括命中次数,当所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据后,所述方法还包括:获取所述被读取的缓存数据,以及所述缓存数据对应的命中次数;基于预设阈值增加所述缓存数据对应的命中次数,并基于增加后的命中次数更新所述缓存数据的命中次数。
可选的,当所述缓存单元的空间存满时,所述方法还包括:查找所述缓存结构,以获取所述缓存结构中有效位为第一阈值的缓存数据;获取所述主机的系统时间;获取所述有效位为第一阈值的缓存数据的时间戳,并计算所述系统时间与时间戳的时间差值;根据所述有效位为第一阈值的缓存数据的优先级、时间差值及命中次数,计算所述数据的权重;基于所述权重,获取权重最小的数据;删除所述权重最小的数据,以释放所述缓存单元的存储空间。
可选的,所述方法还包括:接收所述主机发送的缓存失效命令;获取所述缓存失效命令所对应的地址及长度,并基于所述地址及长度查找所述缓存结构,以获取与所述的地址、长度一致的第二数据;将所述第二数据的有效位修改为第二阈值,以释放所述缓存单元的存储空间。
为解决上述技术问题,本发明实施方式采用的另一个技术方案是:提供一种降低读延时的装置,应用于固态硬盘,所述固态硬盘包括闪存阵列和缓存单元,所述缓存单元通过缓存结构管理缓存数据,所述装置包括:接收模块,用于接收主机发送的预读取命令,其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息;缓存管理模块,用于根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的第一数据,其中,所述第一数据中包括目标数据;读取模块,用于将所述预读取的第一数据写入所述缓存结构中,以使所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据。
可选的,所述缓存管理模块具体用于:基于所述预读取命令,获取所述数据信息中地址,以及所述地址对应的长度和优先级;根据所述地址及所述地址对应的长度,查找所述闪存阵列,以获取与所述长度及地址一致的数据;将与所述长度及地址一致的数据设为第一数据,并将所述地址对应的优先级赋予给所述第一数据。
可选的,所述缓存结构包括优先级、时间戳、有效位、地址及长度,所述读取模块具体用于:获取所述第一数据,以及所述第一数据对应的优先级、长度及地址;将所述第一数据及所述第一数据对应的优先级、长度、地址分别写入所述缓存结构中,并将所述第一数据的有效位设置为第一阈值;获取所述第一数据写入所述缓存结构的时间,并将所述时间记为所述第一数据的时间戳。
为解决上述技术问题,本发明实施方式采用的又一个技术方案是:提供一种固态硬盘,包括:闪存阵列;缓存单元;以及,主控制器;其中,所述主控制器包括:至少一个处理器;其中,所述缓存单元通过缓存结构管理缓存数据;所述至少一个处理器与所述缓存单元通信连接;所述缓存单元接收可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的降低读延时的方法。
区别于相关技术的情况,本发明实施例提供了一种降低读延时的方法、装置及固态硬盘,应用于固态硬盘,所述固态硬盘包括闪存阵列和缓存单元,所述缓存单元通过缓存结构管理缓存数据,主要通过接收主机发送的预读取命令,其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息;通过接收主机发送的预读取命令,以避免在固态硬盘中增加额外的算法来预测主机需要读取的数据,进而节约了硬件的成本。在接收到所述预读取命令后,根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的第一数据,其中,所述第一数据中包括目标数据,然后将所述预读取的第一数据写入所述缓存结构中,以使所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据,从而避免了在所述闪存阵列中读数据,进而节约了读数据的时间。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种固态硬盘的结构框图;
图2是本发明实施例提供的一种降低读延时的方法的流程图;
图3是本发明实施例提供的一种缓存结构的结构框图;
图4是本发明实施例提供的一种数据读取的示意图;
图5是本发明另一实施例提供的一种数据读取的示意图;
图6是本发明实施例提供的一种降低读延时的装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互组合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块的划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置示意图中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参阅图1,图1是本发明实施例提供的一种固态硬盘的结构框图,如图1所示,所述固态硬盘100(Solid State Drives,SSD)包括闪存阵列110(NAND Flash)、主控制器120及缓存单元130。其中,所述固态硬盘100通过有线或无线的方式与主机200通信连接,用以实现数据交互。
闪存阵列110,作为所述固态硬盘100的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存阵列110得以成为各类便携型数字设备的存储介质的基础。
主控制器120,作为控制运算模块,用于管理SSD内部系统。其中,所述主控制器120包括处理器121。
处理器121,与缓存单元130连接,其中,处理器121与缓存单元130可以通过总线或者其他方式连接,所述处理器121用于运行存储在缓存单元130中的软件程序、指令以及模块,从而实现本发明任一方法实施例。
缓存单元130,主要用于缓存主机200发送的读/写指令,以及根据主机200发送的读/写指令从闪存阵列110获取的读数据或者写数据。缓存单元130可以包括存储程序区,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,缓存单元130可以包括高速随机存取存储器。在一些实施例中,缓存单元130可选包括相对于处理器121远程设置的存储器。其中,缓存单元130通过缓存结构管理缓存数据,以根据缓存结构将目标数据从缓存单元130中的缓存数据中传输到主机200。
具体的,在所述固态硬盘100工作的过程中,所述主机200会发送预读取命令至所述主控制器120,以使所述主控制器120基于所述预读取命令,对所述闪存阵列110进行读操作,此时,所述主控制器120还会将从所述闪存阵列110中读取的数据写入所述缓存单元130中,以使所述主机200在读取数据时,可以直接命中缓存,从而节约了读取数据的时间。
请参阅图2,图2是本发明实施例提供的一种降低读延时的方法的流程图,应用于固态硬盘,如图2所示,所述方法包括:
S01、接收主机发送的预读取命令,其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息。
在所述主机执行应用程序时,所述主机会发送预读取命令至所述主控制器,以使所述主控制器根据所述预读取命令将数据从所述闪存阵列中读出,并将读出的数据写入所述缓存单元中,从而在所述主机读取数据时,能够直接从所述缓存单元中读取,进而减小了主机读取数据的时间。其中,所述主机应用程序包括多个条件分支,所述主机会通过执行所述多个条件分支,以运行所述应用程序。
所述多个条件分支分别包括地址及所述地址对应的长度,在发送所述预读取命令之前,所述主机会基于所述多个条件分支,预测所述多个条件分支被执行的概率,并基于所述条件分支的概率,设置所述条件分支中地址所对应的优先级。并基于所述地址,及其对应的优先级和长度发送预读取命令,以使所述主控制器基于所述预读取命令从所述闪存阵列中读取数据,其中,所述数据信息包括地址,及所述地址对应的优先级和长度。需要说明的是,所述主机在发送预读取命令时,会获取所述主机应用程序的所有条件分支,并基于所述所有条件分支中的地址和长度发送预读取命令,以使所述主控制器将与所述地址和长度相对应的数据从所述闪存阵列中读取至所述缓存单元,从而在所述主机执行任何一个条件分支时,都会命中所述缓存单元。
进一步的,所述条件分支的优先级可以根据预设模型来获取。具体的,将所述主机应用程序的全部条件分支输入至预设模型中,基于所述预设模型,获取所述各条件分支的概率,并根据所述各条件分支的概率,设置所述各条件分支的优先级。其中,所述预设模型为分支预测单元,当所述主机执行应用程序时,通过多次运行所述应用程序,统计出各个条件分支执行的次数,得到每个条件分支执行的概率。基于此,在实际应用的过程中,即可确认所述各条件分支的概率,并在所述条件分支的概率越大时,条件分支的优先级也越高。例如,当通过多次运行训练完所述分支预测单元后,确认在开始运行应用程序后,多数情况会运行条件分支三,此时,在实际运行中,通过所述分支预测单元,可以确认条件分支三的概率最大,基于此,在设置优先级时,条件分支三的优先级也最高。
S02、根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的第一数据,其中,所述第一数据中包括目标数据。
当所述主控制器接收到所述预读取命令后,会获取所述预读取命令中的数据信息,也即所述预读取命令中所包含的地址,以及所述地址对应的长度和优先级,然后基于所述地址及所述地址对应的长度查找所述闪存陈列,从而获取与所述长度及地址一致的数据,当获取到与所述长度与地址一致的数据后,将与所述长度及地址一致的数据设为第一数据,并将所述地址对应的优先级赋予给所述第一数据。其中,所述第一数据中包括目标数据,所述目标数据指的是所述主机当前从所述缓存单元中读取的缓存数据。
S03、将所述预读取的第一数据写入所述缓存结构中,以使所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据。
请参阅图3,图3是本发明实施例提供的一种缓存结构的结构框图,如图3所示,所述缓存结构包括有效位(V)、优先级(P)、时间戳(T)、命中次数(H)、地址(ADDR)、长度(LEN)及数据(DATA)。当所述主控制器基于所述预读取命令获取到所述第一数据后,所述主控制器还会获取所述第一数据对应的优先级、长度及地址,并将所述第一数据及所述第一数据对应的优先级、长度和地址写入所述缓存结构中,当所述主控制器将所述第一数据及所述第一数据的长度、第一数据的地址、第一数据的优先级写入所述缓存结构后,所述主控制器还会读取所述第一数据写入时的系统时间,并将所述时间写入所述缓存结构中,以记为所述第一数据的时间戳中。并且,当所述第一数据及其对应的信息被写入所述缓存结构后,所述第一数据的有效位即为第一阈值。其中,所述第一阈值为一常数,用于确定数据被有效写入。
当所述第一数据及对应的优先级、长度和地址写入所述缓存结构后,若所述主机需要读取目标数据时,会获取所述目标数据的地址及长度,并将基于所述目标数据的地址及长度发送读命令至所述主控制器,所述主控制器会基于所述读命令查找所述缓存结构,以在所述缓存单元中获取与所述目标数据的长度及地址相同的缓存数据。当获取到与所述目标数据的地址与长度一致的数据后,所述主控制器会将所述数据发送至所述主机,以使所述主机读取所述缓存数据,此时,所述数据为目标数据。当所述数据被读取后,所述主控制器会基于预设阈值增加所述数据的命中次数。其中,所述预设阈值为常数,通过所述预设阈值,以使所述命中次数按照预设增幅增加,例如,所述预设阈值为1。所述命中次数指的是在所述缓存结构中,所述缓存数据被读取的次数,当所述缓存数据被读取后,所述缓存数据的命中次数就更新一次。例如,所述缓存结构中包括数据A、B、C、D、E、F;所述数据A、B、C、D、E、F的原始命中次数都为2,若所述数据A被读取后,按照预设阈值1增加所述数据A的命中次数,此时,则将所述数据A的命中次数更新为3。
在一些实施例中,若所述缓存单元的空间被存满时,所述主控制器还会删除所述缓存单元中的数据,以释放所述缓存单元的缓存空间。具体的,当所述缓存单元存满时,所述主控制器会查找所述缓存结构,以获取所述缓存结构的有效位为第一阈值的数据,当获取到有效位为第一阈值的数据后,所述主控制器还会获取所述数据的优先级、时间戳及命中次数,并获取当前时刻的时间,然后基于所述当前时刻的时间,获取所述当前时刻的时间与所述时间戳的差值,其中,通过所述差值,即可确认所述数据在所述缓存结构中的保留时间。在确定所述数据的优先级、时间差及命中次数后,还会获取所述优先级、时间差及命中次数所对应的权重系数,并根据所述权重系数与优先级、时间差及命中次数计算所述数据的权重,其中,所述计算公式为W=(P*Wp)+(Td*Wt)+(H*Wh),所述Wp,Wt,Wh分别为优先级(P)、时间差(Td)及命中次数(H)的权重系数。在计算出所述权重后,所述主控制器会获取所述缓存结构中权重最小的数据,并删除所述权重最小的数据,从而释放所述缓存单元的存储空间。当所述主控制器将所述数据从所述闪存阵列中读取并写入所述缓存单元后,所述数据会分别存储在所述闪存阵列及所述缓存单元中,以确保在所述数据从所述缓存单元中逐出时,所述数据还存储在所述闪存阵列中,从而提高了所述固态硬盘的准确性。
在一些实施例中,所述主控制器还会接收所述主机发送的缓存失效命令,并获取与所述缓存失效命令相对应的地址及长度,然后基于所述地址及长度,查找所述缓存结构,以获取与所述地址及长度一致的第二数据,在获取到所述第二数据后,所述主控制器会将所述第二数据的有效位修改为第二阈值,从而释放所述缓存单元的存储空间。需要说明的是,所述第二阈值为常数,所述第二阈值与所述第一阈值是为了区分所述数据当前的状态。当所述缓存结构中的数据有效位被修改为第二阈值后,则认为所述第二阈值所对应的数据所占用的缓存空间为0。
在一些实施例中,当所述主机应用程序在链表中搜索对应的数据时,其中,所述链表的每个节点保存了数据在所述固态硬盘中的地址,以及指向下一个节点的指针。具体的,当所述主机应用程序基于目标数据搜索所述链表时,会获取所述目标数据的地址,并获取所述链表中第一个节点的地址,在所述固态硬盘中查找与所述节点地址一致的数据,并将所述数据与所述目标数据进行比对,若一致,则认为搜索成功,若不一致,则基于下一节点查找所述固态硬盘。其中,在所述主机基于第一个节点读取所述固态硬盘之前,还会基于所述第一个节点的下一个节点发送预读取命令至所述固态硬盘。例如,如图4所示,主机在发起节点A的数据读取命令前,发送节点B的预读取命令,在节点B的数据读取命令前,发送节点C的缓存预读取命令,依此类推。这样,应用程序在读取节点A和对比A的数据时,B的数据已经并行的在读取到固态硬盘的缓存中,主机在读取B时,就可以有很小的延时,从而节约了数据读取的时间。
在一些实施例中,当所述主机应用程序在二叉树中搜索目标数据时,其中,所述二叉树中每个节点都保存了数据在固态硬盘中的地址,以及指向左右两个子节点的指针,而在所述二叉树中,左边的子节点的数据小于父节点的数据,右边的子节点的数据大于父节点的数据。当所述主机应用程序基于所述目标数据搜索所述二叉树时,所述主机应用程序会选取所述二叉树顶端的父节点,并根据所述父节点中数据的地址,查找所述固态硬盘,并将与所述父节点数据的地址一致的数据从所述固态硬盘读出,然后将读出的数据与所述目标数据进行比较,若所述读出来的数据与所述目标数据一致,则认为搜索成功,若不一致,则判断所述目标数据是否小于所述读出来的数据,若小于,则移动到左边的子节点继续搜索,若大于,则移动到右边的子节点进行搜索。
所述父节点所对应的子节点是固定的,当所述主机应用程序读取到了所述父节点前,还会发送预读取命令至所述固态硬盘,以使所述固态硬盘将所述父节点的两个子节点从所述闪存陈列中读取至所述缓存单元中,以节约后续的读取时间。并且,在基于所述父节点读取所述子节点时,所述两个子节点的初始优先级相同,当所述目标数据与所述读出来的数据比对完成后,如果对比后移动到左子节点,则增加左侧子节点的数据优先级,减小右侧节点的数据优先级;如果是移动到右节点,则增加右侧子节点的数据优先级,减小左侧节点的数据优先级。例如,如图5所示,假设目标数据为D,首先在读取节点A的数据前,预读数据B和C,其中左子节点B的数据优先级为5,右子节点C的数据优先级为5。接下来移动到节点B,所述目标数据比B小,预读数据D和E,增加左子节点D的数据优先级为6,减小右子节点E的数据优先级为4。
本发明实施例提供了一种降低读延时的方法,应用于固态硬盘,所述固态硬盘包括闪存阵列和缓存单元,所述缓存单元通过缓存结构管理缓存数据,主要通过接收主机发送的预读取命令,其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息;通过接收主机发送的预读取命令,以避免在固态硬盘中增加额外的算法来预测主机需要读取的数据,进而节约了硬件的成本。在接收到所述预读取命令后,根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的第一数据,其中,所述第一数据中包括目标数据,然后将所述预读取的第一数据写入所述缓存结构中,以使所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据,从而避免了在所述闪存阵列中读数据,进而节约了读数据的时间。
请参阅图6,图6是本发明实施例提供的一种降低读延时的装置的结构框图,如图6所示,所述降低读延时的装置300包括接收模块31、缓存管理模块32及读取模块33。
所述接收模块31用于接收主机发送的预读取命令,其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息。
所述缓存管理模块32用于根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的第一数据,其中,所述第一数据中包括目标数据。
所述读取模块33用于将所述预读取的第一数据写入所述缓存结构中,以使所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据。
其中,所述缓存管理模块32具体用于:
基于所述预读取命令,获取所述数据信息中地址,以及所述地址对应的长度和优先级;
根据所述地址及所述地址对应的长度,查找所述闪存阵列,以获取与所述长度及地址一致的数据;
将与所述长度及地址一致的数据设为第一数据,并将所述地址对应的优先级赋予给所述第一数据。
所述缓存结构包括优先级、时间戳、有效位、地址及长度,所述读取模块33具体用于:
获取所述第一数据,以及所述第一数据对应的优先级、长度及地址;
将所述第一数据及所述第一数据对应的优先级、长度、地址分别写入所述缓存结构中,并将所述第一数据的有效位设置为第一阈值;
获取所述第一数据写入所述缓存结构的时间,并将所述时间记为所述第一数据的时间戳。
需要说明的是,上述降低读延时的装置可执行本发明实施例所提供的降低读延时的方法,具备执行方法相应的功能模块和有益效果。未在降低读延时的装置实施例中详尽描述的技术细节,可参见本发明实施例所提供的降低读延时的方法。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种降低读延时的方法,应用于固态硬盘,其特征在于,所述固态硬盘包括闪存阵列和缓存单元,所述缓存单元通过缓存结构管理缓存数据,所述方法包括:
接收主机发送的预读取命令,其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息;
根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的第一数据,其中,所述第一数据中包括目标数据;
将所述预读取的第一数据写入所述缓存结构中,以使所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的目标数据,包括:
基于所述预读取命令,获取所述数据信息中地址,以及所述地址对应的长度和优先级;
根据所述地址及所述地址对应的长度,查找所述闪存阵列,以获取与所述长度及地址一致的数据;
将与所述长度及地址一致的数据设为第一数据,并将所述地址对应的优先级赋予给所述第一数据。
3.根据权利要求2所述的方法,其特征在于,所述缓存结构包括优先级、时间戳、有效位、地址及长度,所述将所述预读取的第一数据写入所述缓存结构中,包括:
获取所述第一数据,以及所述第一数据对应的优先级、长度及地址;
将所述第一数据及所述第一数据对应的优先级、长度、地址分别写入所述缓存结构中,并将所述第一数据的有效位设置为第一阈值;
获取所述第一数据写入所述缓存结构的时间,并将所述时间记为所述第一数据的时间戳。
4.根据权利要求3所述的方法,其特征在于,所述缓存结构还包括命中次数,当所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据后,所述方法还包括:
获取所述被读取的缓存数据,以及所述缓存数据对应的命中次数;
基于预设阈值增加所述缓存数据对应的命中次数,并基于增加后的命中次数更新所述缓存数据的命中次数。
5.根据权利要求4所述的方法,其特征在于,当所述缓存单元的空间存满时,所述方法还包括:
查找所述缓存结构,以获取所述缓存结构中有效位为第一阈值的缓存数据;
获取所述主机的系统时间;
获取所述有效位为第一阈值的缓存数据的时间戳,并计算所述系统时间与时间戳的时间差值;
根据所述有效位为第一阈值的缓存数据的优先级、时间差值及命中次数,计算所述数据的权重;
基于所述权重,获取权重最小的数据;
删除所述权重最小的数据,以释放所述缓存单元的存储空间。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收所述主机发送的缓存失效命令;
获取所述缓存失效命令所对应的地址及长度,并基于所述地址及长度查找所述缓存结构,以获取与所述失效数据的地址、长度一致的第二数据;
将所述第二数据的有效位修改为第二阈值,以释放所述缓存单元的存储空间。
7.一种降低读延时的装置,应用于固态硬盘,其特征在于,所述固态硬盘包括闪存阵列和缓存单元,所述缓存单元通过缓存结构管理缓存数据,所述装置包括:
接收模块,用于接收主机发送的预读取命令,其中,所述预读取命令包括执行主机应用程序的条件分支所对应的数据信息;
缓存管理模块,用于根据所述预读取命令,查找所述闪存阵列,以预读取与所述数据信息相对应的第一数据,其中,所述第一数据中包括目标数据;
读取模块,用于将所述预读取的第一数据写入所述缓存结构中,以使所述主机根据所述缓存结构从所述缓存单元中读取所述目标数据。
8.根据权利要求7所述的装置,其特征在于,所述缓存管理模块具体用于:
基于所述预读取命令,获取所述数据信息中地址,以及所述地址对应的长度和优先级;
根据所述地址及所述地址对应的长度,查找所述闪存阵列,以获取与所述长度及地址一致的数据;
将与所述长度及地址一致的数据设为第一数据,并将所述地址对应的优先级赋予给所述第一数据。
9.根据权利要求8所述的装置,其特征在于,所述缓存结构包括优先级、时间戳、有效位、地址及长度,所述读取模块具体用于:
获取所述第一数据,以及所述第一数据对应的优先级、长度及地址;
将所述第一数据及所述第一数据对应的优先级、长度、地址分别写入所述缓存结构中,并将所述第一数据的有效位设置为第一阈值;
获取所述第一数据写入所述缓存结构的时间,并将所述时间记为所述第一数据的时间戳。
10.一种固态硬盘,其特征在于,包括:
闪存阵列;
缓存单元;以及,
主控制器;
其中,所述缓存单元通过缓存结构管理缓存数据;
所述主控制器包括:
至少一个处理器;其中,所述至少一个处理器与所述缓存单元通信连接;
所述缓存单元接收可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6任一项所述的降低读延时的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211711334.0A CN116185287A (zh) | 2022-12-29 | 2022-12-29 | 一种降低读延时的方法、装置及固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211711334.0A CN116185287A (zh) | 2022-12-29 | 2022-12-29 | 一种降低读延时的方法、装置及固态硬盘 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185287A true CN116185287A (zh) | 2023-05-30 |
Family
ID=86448107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211711334.0A Pending CN116185287A (zh) | 2022-12-29 | 2022-12-29 | 一种降低读延时的方法、装置及固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185287A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492662A (zh) * | 2023-12-28 | 2024-02-02 | 苏州元脑智能科技有限公司 | 预读取的确定方法和装置、存储介质及电子设备 |
-
2022
- 2022-12-29 CN CN202211711334.0A patent/CN116185287A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492662A (zh) * | 2023-12-28 | 2024-02-02 | 苏州元脑智能科技有限公司 | 预读取的确定方法和装置、存储介质及电子设备 |
CN117492662B (zh) * | 2023-12-28 | 2024-04-02 | 苏州元脑智能科技有限公司 | 预读取的确定方法和装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307769B2 (en) | Data storage method, apparatus and storage medium | |
KR100562906B1 (ko) | 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩 | |
CN110502452B (zh) | 访问电子设备中的混合缓存的方法及装置 | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US20170124077A1 (en) | Flash module provided with database operation unit, and storage device | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN108153682B (zh) | 一种利用闪存内部并行性进行闪存转换层地址映射的方法 | |
CN112632069B (zh) | 哈希表数据存储管理方法、装置、介质和电子设备 | |
CN104092670A (zh) | 网络缓存服务器处理文件的方法及处理缓存文件的设备 | |
CN107888687B (zh) | 一种基于分布式存储系统的代理客户端存储加速方法及系统 | |
CN111752484A (zh) | 一种ssd控制器、固态硬盘及数据写入方法 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
CN116185287A (zh) | 一种降低读延时的方法、装置及固态硬盘 | |
US11630780B2 (en) | Flash memory controller mechanism capable of generating host-based cache information or flash-memory-based cache information to build and optimize binary tree with fewer nodes when cache stores data from host | |
CN115167778A (zh) | 存储的管理方法、系统及服务器 | |
US9851925B2 (en) | Data allocation control apparatus and data allocation control method | |
CN115794366A (zh) | 一种内存预取方法及装置 | |
CN116048428B (zh) | 数据请求处理方法、装置、存储设备和可读存储介质 | |
CN117312188A (zh) | 混合ssd数据缓存预取系统及方法 | |
CN115827511A (zh) | 设置缓存的方法以及装置 | |
US7421536B2 (en) | Access control method, disk control unit and storage apparatus | |
JP2022046413A (ja) | 記憶デバイスのための改良された先読み能力 | |
CN112947845A (zh) | 热数据识别方法及其存储设备 | |
WO2022021337A1 (zh) | 闪存控制方法和装置 | |
CN113608698B (zh) | 一种基于DRAM牺牲Cache的异构内存页迁移系统及方法 |
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 |