CN113435601A - 数据预取方法、装置以及存储设备 - Google Patents
数据预取方法、装置以及存储设备 Download PDFInfo
- Publication number
- CN113435601A CN113435601A CN202010209712.XA CN202010209712A CN113435601A CN 113435601 A CN113435601 A CN 113435601A CN 202010209712 A CN202010209712 A CN 202010209712A CN 113435601 A CN113435601 A CN 113435601A
- Authority
- CN
- China
- Prior art keywords
- data
- level storage
- model
- read
- processor
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6024—History based prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种数据预取方法、装置及存储设备。人工智能AI芯片对数据样本进行训练以生成预取模型,所述AI芯片将所述生成的预取模型发送给处理器,所述处理器根据所述预取模型预测待读取数据,所述待读取数据存储在硬盘中;所述处理器将所述待读取数据从所述硬盘读取至缓存中。减轻了处理器的计算负担。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种数据预取方法、装置以及存储设备。
背景技术
在存储设备中,缓存的访问速度比硬盘的访问速度快,因此,在应用中,当接收到一个读数据请求时,可以根据该读数据请求对下一个读数据请求所要读取的数据进行预测,并提前将预测的数据从硬盘中读取到缓存中来。这样,当存储设备接收到读数据请求时,可以实现缓存中数据的读命中,从而大大提高读数据请求的处理速度。
然而,处理器的处理能力是有限的,而预取算法往往涉及较为复杂,处理器的算力会明显不足。总言之,算力已经成为预取算法发展的瓶颈。
发明内容
本申请提供了一种数据预取方法、装置及存储设备,可以节省处理器的算力。所述技术方案如下:
第一方面,提供了一种数据预取方法,应用于存储设备,所述存储设备包括处理器、人工智能AI芯片、第一级存储和第二级存储,所述方法包括:所述AI芯片生成预取模型;所述AI将所述生成的预取模型发送给所述处理器;所述处理器根据所述预取模型预测待读取数据,所述待读取数据存储在所述第二级存储中;所述处理器将所述待读取数据从所述第二级存储读取至所述第一级存储中。
第一方面可以应用在任何包含二级存储的应用场景中,其中,第一级存储是指容量较小,处理数据速度较快的存储器,例如缓存102或者一级内存或者二级内存或者硬盘框中的内存等等。第二级存储是指相对于第一级存储容量较大,处理数据速度较慢的存储器,例如二级内存或硬盘22等等。
示例一,第一级存储是指控制器11内部的缓存102,第二级存储是指与控制器11耦合的硬盘框中的硬盘22,数据预取是指硬盘22中的数据被提前读取到缓存102中供主机读取。
示例二,第一级存储是一级内存,又被称为CPU缓存(cache memory),是距离处理器101最近的临时存储器,第二级存储是指二级内存,通常被直接称为内存。数据预取是指将二级内存中的数据提前读取至一级内存中。
示例三,第一级存储是指上面描述的二级内存,第二级存储是指硬盘22。数据预取是指将硬盘22中的数据提前读取至二级内存中。
示例四,第一级存储是指硬盘框中的内存,第二级存储是指硬盘框中的硬盘22。数据预取是指将硬盘22中的数据提前读取至硬盘框的内存中。
在本申请实施例中,由AI芯片对数据样本进行训练生成预取模型,处理器只需要执行数据预取的操作,大大减轻了处理器的计算负担。
可选的,所述处理器根据所述预取模型预测待读取数据包括:根据所述预取模型以及已接收的读数据请求进行推理,获得所述预测出的待读取数据的地址。
可选的,所述AI芯片周期性地对所述预取模型进行升级。
可选的,所述预取模型包括但不限于串行顺序流模型、并行顺序流模型、间隔顺序流模型或关联预取模型。
第二方面提供了一种数据预取方法,该方法应用于存储设备,所述存储设备包括处理器、AI芯片、第一级存储和第二级存储。所述方法包括,所述AI芯片生成预取模型;所述AI芯片根据所述预取模型和已接收的读数据请求进行推理,获得待读取数据的地址;所述AI芯片将所述待读取数据的地址发送给所述处理器;所述处理器根据所述待读取数据的地址将所述待读取数据从所述第二级存储读取至所述第一级存储中。
可选的,所述方法还包括:所述AI芯片周期性地对所述预取模型进行升级。
可选的,所述预取模型包括但不限于串行顺序流模型、并行顺序流模型、间隔顺序流模型或关联预取模型。
第三方面提供了一种存储设备,所述存储设备包括处理器、人工智能AI芯片、缓存和硬盘,所述存储设备用于执行第一方面或第二方面提供的方法。
第四方面提供了一种数据预取装置,所述装置包括第一处理模块和第二处理模块,所述数据预取装置用于执行第一方面或第二方面提供的方法。
第五方面提供了一种终端设备,所述终端设备包括第一级存储、第二级存储、第一处理模块和第二处理模块;所述第一处理模块,用于对数据样本进行训练以生成预取模型;将所述生成的预取模型发送给所述第二处理模块;所述第二处理模块,用于根据所述预取模型预测待读取数据,所述待读取数据存储在第二级存储中;将所述待读取数据从所述第二级存储读取至第一级存储中。
附图说明
图1是本申请实施例提供的数据预取方法所涉及的存储设备的示意图;
图2是本申请实施例提供的一种数据预取方法的流程图;
图3是本申请实施例示出的一种数据预取装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1是本发明实施例提供的系统架构图,本实施例提供的存储系统包括主机20、控制器11和多个硬盘22。主机20和控制器11之间通过网络文件系统(英文全称:Network FileSystem,英文简称:NFS)/通用网络文件系统(英文全称:Common Internet File System,英文简称:CIFS)协议或者光纤通道(英文全称:Fiber Channel,英文简称:FC)协议进行通信。具体的,主机20可以向控制器11发送写数据请求,控制器11接收所述写数据请求之后将所述写数据请求携带的数据写入硬盘22中。另外,主机20还可以向控制器11发送读数据请求,控制器11接收所述读数据请求之后,根据所述读数据请求中的地址查找其缓存102中是否保存有待读取的数据,如果有则直接将所述待读取的数据发送给主机20,如果没有则从硬盘22中获得该数据并发送给主机20。在实际应用中,控制器11和硬盘22可以集成在一个存储设备中,也可以位于相互独立的两个设备中,本发明实施例不对控制器11和硬盘22的位置关系做任何限定。
以读数据请求为例,当用户在主机20上或者与主机20连接的客户端上提起一个较大的读数据请求时,主机20往往将该读数据请求拆分成多个请求发送给控制器11处理。将读数据请求拆分成多个请求的操作可以由主机20中的主机总线适配器(Host BusAdapter,HBA)执行,也可以由控制器11中的HBA执行。拆分后的每个请求的大小可以相同也可以不相同,本实施例不对拆分后的读数据请求的大小进行限定。另外,所述拆分后的多个读数据请求的逻辑地址是连续的。这种逻辑地址连续的多个读数据请求被称为顺序流。主机20可以将所述顺序流中的多个读数据请求串行地发送给控制器11处理,也可以将所述顺序流中的多个读数据请求并行地发送给控制器11处理。其中,串行地发送给控制器11处理的顺序流叫做串行顺序流,并行地发送给控制器11处理的顺序流叫做并行顺序流。对于串行顺序流,主机20依次将所述连续的多个读数据请求中的每个读数据请求发送给控制器11,待上一个读数据请求处理完毕之后再发送下一个读数据请求。对于并行顺序流,主机20向控制器11发送所述连续的多个读数据请求中的至少两个读数据请求,所述存储设备可并行处理所述至少两个读数据请求。假设主机20向控制器11发送9个读数据请求,如果这9个读数据请求是串行处理的,那么主机20首先发送第一个读数据请求,待接收第一个读数据请求的响应请求之后再发送第二个读数据请求,待接收第二个读数据请求的响应请求之后再发送第三个读数据请求,依此类推,直至这9个读数据请求全部处理完毕。如果这9个读数据请求是并行处理的,那么主机20可以同时将第一个读数据请求、第二个读数据请求以及第三个读数据请求发送给控制器11,控制器11并行处理这三个读数据请求,当第一个读数据请求处理完毕时,即使第二个读数据请求或者第三个读数据请求尚未处理完毕,主机20都可以向控制器11发送第四个读数据请求,依此类推,直至这9个读数据请求全部处理完毕。间隔顺序流则是指间隔的几个读数据请求之间呈现一定的规律。
如图1所示,本实施例提供的控制器11至少包括处理器101、人工智能(ArtificialIntelligence,AI)芯片105和缓存102。
处理器101是一个中央处理器(英文:central processing unit,CPU)。在本发明实施例中,处理器101可以用于接收来自主机20的数据,并将数据存储到缓存102或硬盘22中。另外,处理器101还用于根据数据预取模型预测待读取的数据,将其提前存放在缓存102中。
AI芯片105,用于获取数据样本,对数据样本进行模型训练以获得预取模型。然后,AI芯片102将获得的预取模型发送给处理器101。该AI芯片105的形态可以是一个芯片或者其他物理组件,例如可以是用于构建神经网络模型的训练芯片,也可以是利用神经网络模型进行推理的推理芯片。
AI芯片21与处理器101之间通过高速互联网络通信。其中,高速互联网络用于提供AI芯片21与处理器101之间的数据通信功能,高速互联网络22可以是PCIe、memory fabric、高速以太网、HCCS、无限带宽(infiniband,IB)、光纤通道(fibre channel,FC)中的任意一种,高速互联网络22的形态可以是总线,那么,高速互联网络22也可以称为高速互联交换机或高速互联总线。示例性地,控制器11可以包括高速互联总线,AI芯片21和处理器101可以与该高速互联总线连接,从而接入高速互联网络。在一些可能的实施例中,AI芯片21可以包括高速互联网络接口,处理器101可以包括高速互联网络接口,AI芯片21通过AI芯片21的高速互联网络接口与高速互联总线连接,处理器101通过处理器101的高速互联网络接口与高速互联总线连接。其中,高速互联网络接口可以为串行总线接口,具体地,高速互联网络接口可以为PCIE接口、HCCS接口、以太网接口、IB接口、FC接口中的任意一种。如果高速互联网络接口的类型不同,AI芯片21与处理器101之间传输业务数据的速度可以也不同。应理解,高速互联总线仅是高速互联网络22的举例说明,高速互联网络22也可以不是高速互联总线,而是具有内存直通功能的其他总线,本实施例对高速互联网络22的具体类型并不做限定。
缓存102用于临时存储从主机20接收的数据或从硬盘22读取的数据。控制器11接收主机发送的多个写数据请求时,可以将所述多个写数据请求中的数据暂时保存在缓存102中。当缓存102的容量达到一定阈值时,将缓存102存储的数据发送给硬盘22。硬盘22存储所述数据。缓存102包括易失性存储器,非易失性存储器或其组合。易失性存储器例如为随机访问存储器(英文:random-access memory,RAM)。非易失性存储器例如软盘、硬盘、固态硬盘(solid state disk,SSD)、光盘等各种可以存储程序代码的机器可读写介质。缓存102的空间可以划分为多个逻辑块(chunk),每个逻辑块的大小相同,本实施例以逻辑块的大小是128KB为例,每个逻辑块具有一段逻辑地址(有的地方简称为:地址)。当控制器11接收一个读数据请求时,所述读数据请求包括待访问数据的逻辑地址,根据所述逻辑地址可以确定所述读数据请求对应的逻辑块。所述确定出的逻辑块中保存有该数据,那么说明所述读数据请求命中。所述确定出的逻辑块中没有保存该数据,则说明所述读数据请求未命中,控制器11需要从硬盘22中读取数据,并写入所述逻辑块,再向主机20返回所述数据。
可以理解的是,缓存102读取数据的速度高于硬盘22读取数据的速度。因此,如果该读数据请求待访问的数据在缓存102中命中,那么就不必再从硬盘中22中读取该数据,从而提高读取数据的效率。为了提高缓存的数据命中率,通常的做法是从硬盘22中预先读取一段数据(例如图1所示的数据104),写入缓存102。那么,当主机20向控制器11发送读数据请求要求读取数据104时,由于数据104已经被提前读取到缓存102中了,因此处理器101可以直接向主机20发送数据104。
需要说明的是,在上面的描述中仅是本实施例的其中一种实施方式,在这种实施方式中,缓存102位于控制器11内部,而硬盘22位于与控制器11耦合的硬盘框中的持久化存储器,数据预取是指硬盘22中的数据被提前读取到缓存102中供主机读取。在其他实施方式中,控制器11包含两级内存,一级内存被称为CPU缓存(cache memory),是距离处理器101最近的临时存储器,二级内存则通常被直接称为内存。二级内存比一级内存速度更慢,容量更大。一级内存中的数据是二级内存中一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开二级内存直接从一级内存中调用,从而加快读取速度。在这种实施方式中,数据预取既可以是指硬盘22中的数据被提前读取到二级内存中,也可以指二级内存中的数据被提前读取到一级内存中。
另外,本实施例还可以应用在硬盘框中,硬盘框内部包括处理芯片、AI芯片,内存和硬盘22。硬盘框内部的内存距离所述处理芯片最近的临时存储器,其处理数据的速度比硬盘22快,容量比硬盘小。在这种实施方式中,数据预取可以指硬盘22中的数据被提前读取到硬盘框内部的内存中。
综上,本实施例可以应用在任何包含二级存储的应用场景中,其中,第一级存储是指容量较小,处理数据速度较快的存储器,例如上面描述的缓存102或者一级内存或者二级内存或者硬盘框中的内存等等。第二级存储是指相对于第一级存储容量较大,处理数据速度较慢的存储器,例如上面描述的二级内存或硬盘22等等。为了方便描述,下面仍然以将数据从硬盘22预取至缓存102中予以说明。可以理解的是,在其他应用场景或者架构中,本实施例所描述的数据预取方法仍然适用。
预取算法,又称为预取模型,是预取操作的关键因素之一,如果预取模型不恰当可能导致预取的数据太多或太少,预取的数据太多会造成缓存资源的浪费,预取的数据太少又会导致预取效率不高。因此,目前的做法是输入大量数据样本,对这些数据样本进行训练得到合适的预取模型,根据该预取模型来执行数据预取操作。
如果完全依靠处理器101训练数据样本,势必会造成处理器101的算力不足,本实施例利用AI芯片105对数据样本进行训练,输出预取模型后供处理器101使用。
接下来对本申请实施例提供的数据预取方法进行介绍。
图2是本申请实施例提供的一种数据预取方法的流程图。该方法可以应用于存储设备中,该存储设备可以为集成有图1所示的控制器11和硬盘03的设备。如图2所示,该方法包括以下步骤:
步骤201:处理器101采集数据样本。控制器11接收主机20或者其他外部设备发送的写数据请求,写数据请求中携带数据以及该数据的地址。处理器101将接收的写数据请求临时存储在缓存102中,待缓存102的容量达到一定阈值时,缓存102存储的数据样本会被发送到硬盘22中进行持久化存储。因此,处理器101可以从大量写数据请求中提取数据以及该数据的一些属性信息,例如时间戳,大小等作为数据样本。在其他实施方式中,也可以由AI芯片105来提取数据以及属性信息。
步骤202:AI芯片105从缓存102或者硬盘22中获取数据样本进行模型训练,得到预取模型。这些预取模型包括但不限于串行顺序流模型、并行顺序流模型或间隔顺序流模型。
步骤203:AI芯片105将预取模型发送给处理器101,处理器101根据所述预取模型进行推理获得待读取数据的地址。这里的待读取数据是指预测出的将要被读取的数据,此时存储设备尚且没有收到用于读取该数据的读数据请求。
根据前面的介绍,控制器11会接收主机20发送的一个或多个读数据请求,每个读数据请求携带待访问的数据的地址,例如逻辑块起始地址(Logical Block Address,LBA)和长度(length)。控制器11通常根据待访问的数据的地址来预测下一次将要读取哪些地址的数据。在本实施例中,处理器101可以根据这些读数据请求所携带的地址以及AI芯片105训练获得的预取模型来预测将要被读取的数据。具体的,处理器101可以以已经接收的读数据请求的地址为输入,根据所述预取模型输出将要被读取的数据的地址。
步骤204:处理器101将所述待读取数据从硬盘读取至缓存102中。
处理器101根据步骤203中获得的地址从硬盘中读取所述待读取数据,存储在缓存102中,该数据大概率地将被后来的读数据请求读取。
在另一种实施方式中,AI芯片105获取所述预取模型之后,可以自己进行推理,将推理结果,也就是待读取数据的地址,发送给处理器101,由处理器101根据所述地址预取所述待读取数据。具体的,已经接收的读数据请求所携带的地址存储在缓存102或者硬盘22中,AI芯片105可以从缓存102或者硬盘22中获取该地址,以该地址为输入根据所述预取模型输出将要被读取的数据的地址。然后,AI芯片105将所述输出的地址发送给处理器101,处理器101根据该地址将所述待读取数据从硬盘读取至缓存102中。
此外,AI芯片105还可以周期性地对预取模型进行升级,例如重新获取数据样本进行训练。或者,不再重新获取数据样本,仅对已有的预取模型进行修改或删除。
下面对预取模型进行示例性说明,数据预取的粒度为逻辑块。在本申请实施例中,假设已经接收的读数据请求用于读取逻辑块A,AI芯片105通过条件概率来计算每个逻辑块与逻辑块之间的关联度A。其中,以剩余逻辑块中的逻辑块B为例,AI芯片105可以通过下述公式来计算该逻辑块B与第一逻辑块(下述公式中称为逻辑块A)之间的关联度。
其中,P(B|A)是指逻辑块A和逻辑块B之间的关联度,也即,在读取逻辑块A的数据之后,读取逻辑块B中的数据的概率。f1是指在读取逻辑块A的请求之后的预设时长t内接收到的读取逻辑块B的请求的数量。f2是指在读取逻辑块A的请求之后的预设时长t内接收到的请求的总数量。
需要说明的是,f1和f2可以是根据该AI芯片105接收并处理的多个历史读数据请求统计得到。示例性地,存储设备可以获取当前时刻之前的一段时长T内接收到的多个历史读数据请求的历史信息,该历史信息可以包括相应请求所读取的数据所在的逻辑块的逻辑块标识,每个请求的接收时间等信息。在获取到历史信息之后,AI芯片105可以对多个历史读数据请求的历史信息进行统计。例如,当预设时长t较短,该预设时长t内仅包含一个请求时,AI芯片105可以根据历史信息从多个请求中查找读取逻辑块B的请求,统计查找到的这些请求中上一个请求为读取逻辑块A的请求的数量,将统计的数量作为f1。同理,AI芯片105可以统计多个历史读数据请求中读取逻辑块A的历史读数据请求的数量,将该数量作为f2。
例如,假设存储设备在当前时刻之前的一段时长T内接收到20个历史读数据请求。这20个历史读数据请求对应读取的逻辑块依次为:A→B→C→A→E→F→C→D→S→G→B→A→E→F→A→B→C→F→G→S。在此基础上,AI芯片105可以统计20个请求中读取逻辑块A的请求的下一个请求为读取逻辑块B的请求的数量,一共有2个,此时,f1=2。统计20个请求中读取逻辑块A的请求的数量,一共有4个,此时,f2=4。由此可知,P(B|A)=2/4。
可选地,在本申请实施例中,当每个读取逻辑块A的请求之后的预设时长内接收到的请求的数量不相等时,AI芯片105也可以确定在每个读取逻辑块A的读数据请求之后的预设时长t内接收到读取逻辑块B的读数据请求的数量,并计算这些数量的总和,将该总和作为f1。统计每个读取逻辑块A的读数据请求之后的预设时长t内接收到的所有请求的数量的总和,将该总和作为f2。
例如,假设在当前时刻之前的一段时长T内一共接收到3个读取逻辑块A的请求,5个读取逻辑块B的请求。从接收到第一个读取逻辑块A的请求起的第一个预设时长内,一共接收到2个请求,其中,有一个读取逻辑块B的请求。从接收到第二个读取逻辑块A的请求起的第二个预设时长内,一共接收到1个读数据请求,其中不存在读取逻辑块B的请求。从接收到第三个读取逻辑块A的请求起的第三个预设时长内,一共接收到3个读数据请求,其中存在一个读取逻辑块B的请求。由此可知,在三个读取逻辑块A的请求之后的三个预设时长内接收到的读取逻辑块B的请求的总数量为2,也即,f1=2。而在这三个预设时长内接收到的所有请求的总数量为6,也即,f2=6,因此,P(B|A)=2/6。
上述仅是本申请实施例给出的一种计算每个逻辑块与逻辑块A之间的关联度的方法。可选地,存储设备也可以通过其他设定的算法或者模型来计算每个逻辑块与第一逻辑块之间的关联度。其中,例如条件概率、贝叶斯算法、卷积神经网络算法、长短期记忆网络算法、神经网络算法、循环神经网络算法、概率图模型算法中的任意一种。需要说明的是,在采用上述任一种算法来计算两个逻辑块之间的关联度之前,AI芯片105同样可以根据一段时长T内接收并处理的多个历史读数据请求的历史信息来对上述算法进行训练,以便后续可以根据训练好的模型来计算两个逻辑块之间的关联度。
在计算出每个逻辑块与逻辑块A之间的关联度之后,存储设备可以将关联度超过设定的关联阈值的逻辑块作为待读取的逻辑块。需要说明的是,关联度超过设定的关联阈值的逻辑块的数量可能为一个,也可能为多个,也即,在本申请实施例中,选择出的与逻辑块A有关联关系的待读取的逻辑块可以为一个,也可以为多个。
需要说明的是,设定的关联阈值可以是由用户在初始化时设置的。并且,在本申请实施例中,每隔一段时间,AI芯片105或者处理器101还可以根据自身的性能来对该设定的关联阈值进行调整。
示例性地,存储设备可以统计一段时间t1内预取至缓存的数据的命中率,并统计该段时间t1内预取至缓存的数据的浪费率。计算命中率与浪费率的比值,得到第一比值。存储设备中可以存储有设定的比值范围。将第一比值与该比值范围进行比较,如果该第一比值位于该比值范围内,则认为命中率和浪费率满足要求,此时,可以保持当前的关联阈值不变。如果第一比值小于该比值范围的下限值,则说明当前命中率较低,浪费率较高。此时,该存储设备可以将当前的关联阈值调大。如果第一比值大于该比值范围的上限值,则说明当前命中率较高,此时,该存储设备可以将当前的关联阈值调小。在将关联阈值调整之后,存储设备可以继续统计从调整完成起一段时间t1内的命中率和浪费率,并继续通过上述方法来对决定是否对调整后的关联阈值继续调整,以使得关联阈值尽可能的处于该比值范围内,以此来维持系统收益率的平衡。
接下来对本申请实施例提供的数据预取装置300进行介绍,图3是该装置的结构示意图。所述装置位于上述存储设备中,所述存储设备包括缓存和硬盘22,所述装置包括第一处理模块301和第二处理模块301。所述第一处理模块301,用于对数据样本进行训练以生成预取模型;将所述生成的预取模型发送给所述第二处理模块。所述第二处理模块302,用于根据所述预取模型预测待读取数据,所述待读取数据存储在所述硬盘中;将所述待读取数据从所述硬盘读取至所述缓存中。
此外,在其他实施方式中,数据预取装置300可以位于手机等终端设备中,所述终端设备包括第一级存储和第二级存储,第一级存储的处理速度比第二级存储快,但容量小于所述第二级存储。在终端设备中,同样需要将第二级存储中的数据预取到第一级存储中以提高缓存命中率。因此,数据预取装置300设置有图3所示的第一处理模块301和第二处理模块302,由第一处理模块301生成预取模型,由第二处理模块302执行数据预取的操作,从而减轻了第二处理模块302的计算负担。
在实际应用中,第一处理模块301可以是图1所示的AI芯片105,用于执行图2所示的由AI芯片105执行的步骤。第二处理模块302可以是图1所示的处理器101,用于执行图2所示的由处理器101执行的步骤。
另外,第一处理模块301也可以是其他除中央处理器之外的,具有计算能力的芯片或装置,例如加速卡或协处理器或图形处理器(Graphics Processing Unit,GPU)或神经网络处理器(Neural-network Processing Unit,NPU)等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (19)
1.一种数据预取方法,其特征在于,该方法应用于存储设备,所述存储设备包括处理器、人工智能AI芯片、第一级存储和第二级存储,所述方法包括:
所述AI芯片生成预取模型;
所述AI芯片将所述生成的预取模型发送给所述处理器;
所述处理器根据所述预取模型预测待读取数据,所述待读取数据存储在所述第二级存储中;
所述处理器将所述待读取数据从所述第二级存储读取至所述第一级存储中,所述第一级存储的处理速度快于所述第二级存储,并且所述第一级存储的容量小于所述第二级存储。
2.根据权1所述的方法,其特征在于,所述处理器根据所述预取模型预测待读取数据包括:根据所述预取模型以及已接收的读数据请求进行推理,获得所述预测出的待读取数据的地址。
3.根据权1所述的方法,其特征在于,所述方法还包括:所述AI芯片周期性地对所述预取模型进行升级。
4.根据权1所述的方法,其特征在于,所述预取模型包括但不限于串行顺序流模型、并行顺序流模型、间隔顺序流模型或关联预取模型。
5.一种数据预取方法,其特征在于,该方法应用于存储设备,所述存储设备包括处理器、人工智能AI芯片、第一级存储和第二级存储,所述方法包括:
所述AI芯片生成预取模型;
所述AI芯片根据所述预取模型和已接收的读数据请求进行推理,获得待读取数据的地址;
所述AI芯片将所述待读取数据的地址发送给所述处理器;
所述处理器根据所述待读取数据的地址将所述待读取数据从所述第二级存储读取至所述第一级存储中,所述第一级存储的处理速度快于所述第二级存储,并且所述第一级存储的容量小于所述第二级存储。
6.根据权5所述的方法,其特征在于,所述方法还包括:所述AI芯片周期性地对所述预取模型进行升级。
7.根据权5所述的方法,其特征在于,所述预取模型包括但不限于串行顺序流模型、并行顺序流模型、间隔顺序流模型或关联预取模型。
8.一种存储设备,其特征在于,所述存储设备包括处理器、人工智能AI芯片、第一级存储和第二级存储;
所述AI芯片,用于生成预取模型;将所述生成的预取模型发送给所述处理器;
所述处理器,用于根据所述预取模型预测待读取数据,所述待读取数据存储在所述第一级存储中;将所述待读取数据从所述第一级存储读取至所述第二级存储中,所述第一级存储的处理速度快于所述第二级存储,并且所述第一级存储的容量小于所述第二级存储。
9.根据权8所述的存储设备,其特征在于,
所述处理器具体用于根据所述预取模型以及已接收的读数据请求进行推理,获得所述预测出的待读取数据的地址。
10.根据权8所述的存储设备,其特征在于,
所述AI芯片,还用于周期性地对所述预取模型进行升级。
11.根据权8所述的存储设备,其特征在于,所述预取模型包括但不限于串行顺序流模型、并行顺序流模型、间隔顺序流模型或关联预取模型。
12.一种存储设备,其特征在于,所述存储设备包括处理器、人工智能AI芯片、第一级存储和第二级存储;
所述AI芯片用于生成预取模型;根据所述预取模型和已接收的读数据请求进行推理,获得待读取数据的地址;将所述待读取数据的地址发送给所述处理器;
所述处理器用于根据所述待读取数据的地址将所述待读取数据从所述第二级存储读取至所述第一级存储中,所述第一级存储的处理速度快于所述第二级存储,并且所述第一级存储的容量小于所述第二级存储。
13.根据权12所述的存储设备,其特征在于,所述AI芯片还用于周期性地对所述预取模型进行升级。
14.根据权12所述的存储设备,其特征在于,所述预取模型包括但不限于串行顺序流模型、并行顺序流模型、间隔顺序流模型或关联预取模型。
15.一种数据预取装置,其特征在于,所述装置包括第一处理模块和第二处理模块;
所述第一处理模块,用于生成预取模型;将所述生成的预取模型发送给所述第二处理模块;
所述第二处理模块,用于根据所述预取模型预测待读取数据,所述待读取数据存储在第二级存储中;将所述待读取数据从所述第二级存储读取至第一级存储中,所述第一级存储的处理速度快于所述第二级存储,并且所述第一级存储的容量小于所述第二级存储。
16.根据权15所述的装置,其特征在于,所述第二处理模块具体用于根据所述预取模型以及已接收的读数据请求进行推理,获得所述预测出的待读取数据的地址。
17.根据权15所述的装置,其特征在于,所述第一处理模块,还用于周期性地对所述预取模型进行升级。
18.一种数据预取装置,其特征在于,所述装置包括第一处理模块和第二处理模块;
所述第一处理模块用于生成预取模型;根据所述预取模型和已接收的读数据请求进行推理,获得待读取数据的地址;将所述待读取数据的地址发送给所述第二处理模块;
所述第二处理模块用于根据所述待读取数据的地址将所述待读取数据从第二级存储读取至第一级存储中,所述第一级存储的处理速度快于所述第二级存储,并且所述第一级存储的容量小于所述第二级存储。
19.根据权18所述的装置,其特征在于,所述第一处理模块还用于周期性地对所述预取模型进行升级。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010209712.XA CN113435601A (zh) | 2020-03-23 | 2020-03-23 | 数据预取方法、装置以及存储设备 |
PCT/CN2021/082382 WO2021190501A1 (zh) | 2020-03-23 | 2021-03-23 | 数据预取方法、装置以及存储设备 |
EP21774365.7A EP4099235A4 (en) | 2020-03-23 | 2021-03-23 | METHOD AND DEVICE FOR PREFERRING DATA AND STORAGE DEVICE |
US17/951,424 US20230009375A1 (en) | 2020-03-23 | 2022-09-23 | Data prefetching method and apparatus, and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010209712.XA CN113435601A (zh) | 2020-03-23 | 2020-03-23 | 数据预取方法、装置以及存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113435601A true CN113435601A (zh) | 2021-09-24 |
Family
ID=77752699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010209712.XA Pending CN113435601A (zh) | 2020-03-23 | 2020-03-23 | 数据预取方法、装置以及存储设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230009375A1 (zh) |
EP (1) | EP4099235A4 (zh) |
CN (1) | CN113435601A (zh) |
WO (1) | WO2021190501A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114065947A (zh) * | 2021-11-15 | 2022-02-18 | 深圳大学 | 一种数据访问推测方法、装置、存储介质及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116955223B (zh) * | 2023-09-18 | 2024-01-23 | 浪潮电子信息产业股份有限公司 | 一种数据预取方法、系统、电子设备及计算机存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1961286A (zh) * | 2003-12-24 | 2007-05-09 | 英特尔公司 | 自适应高速缓存 |
CN103324585A (zh) * | 2012-03-20 | 2013-09-25 | 苹果公司 | 分级缓存的处理器中的协作预取处理 |
CN105955709A (zh) * | 2016-04-16 | 2016-09-21 | 浙江大学 | 基于机器学习的预取能效优化自适应装置及方法 |
CN110018970A (zh) * | 2018-01-08 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 缓存预取方法、装置、设备及计算机可读存储介质 |
US10437718B1 (en) * | 2018-04-27 | 2019-10-08 | International Business Machines Corporation | Computerized methods for prefetching data based on machine learned sequences of memory addresses |
CN110389909A (zh) * | 2018-04-16 | 2019-10-29 | 三星电子株式会社 | 使用深度神经网络优化固态驱动器的性能的系统和方法 |
CN110765034A (zh) * | 2018-07-27 | 2020-02-07 | 华为技术有限公司 | 一种数据预取方法及终端设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114768B2 (en) * | 2016-08-29 | 2018-10-30 | Intel Corporation | Enhance memory access permission based on per-page current privilege level |
US10394706B2 (en) * | 2017-11-02 | 2019-08-27 | Western Digital Technologies, Inc. | Non-volatile storage with adaptive command prediction |
US10671460B2 (en) * | 2018-02-05 | 2020-06-02 | Micron Technology, Inc. | Memory access communications through message passing interface implemented in memory systems |
US11099995B2 (en) * | 2018-03-28 | 2021-08-24 | Intel Corporation | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory |
JP2019204335A (ja) * | 2018-05-24 | 2019-11-28 | 株式会社日立製作所 | データ処理装置およびプリフェッチ方法 |
-
2020
- 2020-03-23 CN CN202010209712.XA patent/CN113435601A/zh active Pending
-
2021
- 2021-03-23 WO PCT/CN2021/082382 patent/WO2021190501A1/zh unknown
- 2021-03-23 EP EP21774365.7A patent/EP4099235A4/en active Pending
-
2022
- 2022-09-23 US US17/951,424 patent/US20230009375A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1961286A (zh) * | 2003-12-24 | 2007-05-09 | 英特尔公司 | 自适应高速缓存 |
CN103324585A (zh) * | 2012-03-20 | 2013-09-25 | 苹果公司 | 分级缓存的处理器中的协作预取处理 |
CN105955709A (zh) * | 2016-04-16 | 2016-09-21 | 浙江大学 | 基于机器学习的预取能效优化自适应装置及方法 |
CN110018970A (zh) * | 2018-01-08 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 缓存预取方法、装置、设备及计算机可读存储介质 |
CN110389909A (zh) * | 2018-04-16 | 2019-10-29 | 三星电子株式会社 | 使用深度神经网络优化固态驱动器的性能的系统和方法 |
US10437718B1 (en) * | 2018-04-27 | 2019-10-08 | International Business Machines Corporation | Computerized methods for prefetching data based on machine learned sequences of memory addresses |
CN110765034A (zh) * | 2018-07-27 | 2020-02-07 | 华为技术有限公司 | 一种数据预取方法及终端设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114065947A (zh) * | 2021-11-15 | 2022-02-18 | 深圳大学 | 一种数据访问推测方法、装置、存储介质及电子设备 |
CN114065947B (zh) * | 2021-11-15 | 2022-07-22 | 深圳大学 | 一种数据访问推测方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20230009375A1 (en) | 2023-01-12 |
EP4099235A4 (en) | 2023-07-19 |
WO2021190501A1 (zh) | 2021-09-30 |
EP4099235A1 (en) | 2022-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102542580B1 (ko) | Dnn을 사용하여 ssd의 성능을 최적화하기 위한 시스템 및 방법 | |
US20230009375A1 (en) | Data prefetching method and apparatus, and storage device | |
US9501419B2 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
CN112667528A (zh) | 一种数据预取的方法及相关设备 | |
CN110226158B (zh) | 一种数据预取方法、装置和存储设备 | |
US9558123B2 (en) | Retrieval hash index | |
CN111083933B (zh) | 数据存储及获取方法和装置 | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
US11461239B2 (en) | Method and apparatus for buffering data blocks, computer device, and computer-readable storage medium | |
CN112199304B (zh) | 数据预取方法及装置 | |
CN112256599A (zh) | 一种数据预取方法、装置及存储设备 | |
US10877893B2 (en) | Adaptive pre-fetch | |
CN115470157A (zh) | 预取方法、电子设备、存储介质及程序产品 | |
CN117235088B (zh) | 一种存储系统的缓存更新方法、装置、设备、介质及平台 | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
CN111104054A (zh) | 管理输入/输出操作的方法、装置和计算机程序产品 | |
US11449428B2 (en) | Enhanced read-ahead capability for storage devices | |
CN114461590A (zh) | 一种基于关联规则的数据库文件页预取方法及装置 | |
KR20220033976A (ko) | 저장 디바이스들에 대한 강화된 선판독 능력 | |
WO2022213871A1 (zh) | 缓存装置、方法及系统 | |
EP4261712A1 (en) | Data elimination method and apparatus, cache node, and cache system | |
CN110580227A (zh) | 自适应nvm命令生成方法与装置 | |
CN117331514B (zh) | 一种基于区域划分的固态盘数据压缩系统及方法 | |
US11977488B2 (en) | Cache prefetching method and system based on K-Truss graph for storage system, and medium | |
US20230072613A1 (en) | Storage device and memory system |
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 |