预取数据的方法、装置和介质制造方法及图纸

技术编号:35120368 阅读:19 留言:0更新日期:2022-10-05 09:49
本公开涉及用于预取数据的方法、装置和介质,所述方法包括:检查目标缓存行的预取标签,所述目标缓存行存储在系统的高速缓存中,所述目标缓存行的所述预取标签指示所述目标缓存行的已被访问的部分;确定所述预取标签是否已达到所述高速缓存的预取阈值;以及响应于确定出所述预取标签未达到所述预取阈值,暂停将数据预取到所述高速缓存一个或多个周期。据预取到所述高速缓存一个或多个周期。据预取到所述高速缓存一个或多个周期。

【技术实现步骤摘要】
预取数据的方法、装置和介质


[0001]本公开涉及计算机领域,具体而言,涉及用于预取数据的方法、装置和介质。

技术介绍

[0002]高速缓冲存储器(也可称为高速缓存或cache)的预取技术被广泛应用于处理器中,用于在实际需要指令或数据之前,将该指令或数据从其原始存储区(位于较慢存储器中)取出到较快的本地存储器中。高速缓存预取技术可以提升执行性能。现今,处理器采用高速、本地的高速缓冲存储器来存储预取的数据或指令。当数据或指令被预取时,原始存储区和本地存储器之间的带宽可能是有限的。此外,不同类型的数据可能具有不同的访问模式,这会影响预取方案的设计并导致低效率。

技术实现思路

[0003]本公开的一个目的在于提高数据预取的效率。
[0004]本公开的实施例提供了一种预取数据的方法。所述方法包括:检查存储在系统的高速缓存中的目标缓存行的预取标签,其中所述目标缓存行的所述预取标签指示所述目标缓存行的已被访问的部分;确定所述预取标签是否已达到所述缓存的预取阈值;以及响应于确定出所述预取标签未达到所述预取阈值,暂停将数据预取至所述高速缓存中一个或多个周期。
[0005]本公开的实施例还提供了一种用于预取数据的装置。所述装置包括:处理器,所述处理器包括具有多个级别的存储系统,所述处理器被配置为:检查存储在所述存储系统的高速缓存中的目标缓存行的预取标签,其中,所述目标缓存行的预取标签指示所述目标缓存行的已被访问的部分;确定所述预取标签是否已达到所述高速缓存的预取阈值;以及响应于确定出所述预取标签未达到所述预取阈值,暂停将数据预取至所述高速缓存中一个或多个周期。
[0006]本公开实施例中,当高速缓存的目标缓存行的已被访问的部分未达到预取阈值时,暂停将数据预取至所述高速缓存中一个或多个周期,从而有效缓解原始存储器和高速缓存之间的带宽有限的问题,提高数据预取的效率。
[0007]应当理解,前面的一般描述和下面的详细描述仅是示例性的和解释性的,而不用于对要求保护的本公开的实施例进行限制。
附图说明
[0008]通过参考以下附图对本专利技术实施例的描述,本专利技术的上述以及其它目的、特征和优点将更为清楚,在附图中:
[0009]图1A示出了根据本公开一些实施例的稀疏神经网络的示例性访问模式;
[0010]图1B示出了根据本公开一些实施例的流式数据的示例性访问模式;
[0011]图2A示出了符合本公开一些实施例的示例性的加速器架构;
[0012]图2B示出了根据本公开一些实施例的示例性核心架构;
[0013]图2C示出了根据本公开一些实施例的结合了加速器200的示例性云系统的示意图;
[0014]图3示出了根据本公开一些实施例的处理器的存储子系统架构的示例;
[0015]图4示出了根据本公开一些实施例的处理器的一种新的存储子系统架构的示例;
[0016]图5示出了根据本公开一些实施例的用于实现新的预取机制的方法的示例性流程示意图;
[0017]图6示出了根据本公开一些实施例的提升了预取效率的示例性系统的示意图;
[0018]图7示出了图6中根据本公开一些实施例的系统600的示例性系统配置;
[0019]图8示出了图7所示的根据本公开一些实施例的应用于图6中系统600上的系统配置的示例性性能评估。
具体实施方式
[0020]下面将具体地参考示例性的实施例来描述,附图示出了这些实施例的示例。在以下描述所参照的附图中,不同附图中相同或相似的数字表示相同或类似的要素,除非另有说明。下文对示例性的实施例进行了描述,其中阐述的实施方式并不能代表符合本专利技术的全部实施方式,而仅仅是与所附权利要求书所要求的专利技术的相关方面相符合的装置和方法的示例。
[0021]许多计算机应用都涉及到获取和访问流式数据。流式数据是由一个或多个源连续生成的数据。流式数据通常用于大数据的上下文中,大数据可以由多个不同的源以高速产生。例如,物联网(Internet of things,IoT)是由嵌有传感器、软件和技术的物理对象所形成的网络,其中,数据可以通过互联网与其他设备交换。IoT中的每个传感器可以随时间累积数据,并且这些数据可以统称为流式数据。其他应用,例如视频应用和音频应用,也可以从一个或多个源连续地生成数据。数据中心和云系统可以收集来自各种源的流式数据,并使用处理器对收集到的流式数据进行处理。例如,流式数据在应用于大数据的上下文中时,可以用来训练神经网络,云系统可以使用通用或专用的处理器来获取和处理流式数据。
[0022]流式数据可以具有独特的访问模式。访问模式中的一些特征包括在应用移动到下一个数据块之前对当前数据块进行集中访问。图1A示出了根据本公开一些实施例的稀疏神经网络的示例性访问模式。如图1A所示,没有阴影的数据条目是尚未被用于运行稀疏神经网络的处理器所访问的数据。相同阴影图案的数据条目是已被并发地访问的条目。如图1A所示,具有阴影的条目采用集中访问模式。在当前数据块的至少一部分数据已经被访问之前,应用不会移动到下一个数据块。例如,如图1A所示,条目9、8、14、11、9、20和23一起被访问,并且这些访问操作仅在所有具有其他不同阴影图案的条目被访问之后才进行。这些具有其他阴影图案的条目倾向于集中在条目1至10。因此,确定何时可以从存储器中预取下一个数据块,可能是一个挑战。图1B示出了根据本公开一些实施例的流式数据的示例性访问模式。图1A示出了流式数据的线性高速缓存访问模式的示例。在图1B中,X轴表示CPU时钟周期索引(clock tick index),Y轴表示数据包(data packet)在高速缓冲存储器中的地址。在该示例中,随着基于流式数据的应用程序的执行,高速缓冲存储器的访问地址逐渐改变,如图1B中的实线所示。在一些实施例中,图1B所示的访问模式可以采用产业化的CPU模拟器
(例如GEM5)来获得。
[0023]在现今的计算机体系架构中,诸如中央处理单元(CPU)、图形处理单元(GPU)或加速器(例如,神经网络加速器)的处理器可以采用硬件高速缓存,以减少从主存储器中访问数据的时间成本。高速缓存通常由存储空间小的存储器来实现,但由于高速缓存通常与处理器邻近设置,所以高速缓存的访问速度快得多。高速缓存的预取技术被广泛应用于处理器中,用于在实际需要指令或数据之前,将该指令或数据从其原始存储区(位于较慢存储器中)中取出到较快的本地存储器中。处理器可以具有多个级别的高速缓存。例如,CPU可以具有第1级(L1)高速缓存、第2级(L2)高速缓存、第3级(L3)高速缓存,等等。各级高速缓存的大小可以不同,并且各级高速缓存可以具有不同的访问速度。当预取数据时,被预取的数据可以在不同级别的高速缓存之间传输。
[0024]处理器的种类很多,其中的一些处理器可以配置为用于处理流式数据和预取流式数据。图2A示出了根据本公开一些实施例的加速器架构。如图2A所示,加速器200可以是神经网络加速器。在本公开的上下文中,神经网本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种预取数据的方法,其中,包括:检查目标缓存行的预取标签,所述目标缓存行存储于系统的高速缓存中,其中,所述目标缓存行的所述预取标签指示所述目标缓存行的已被访问的部分;确定所述预取标签是否已达到所述高速缓存的预取阈值;响应于确定出所述预取标签未达到所述预取阈值,暂停将数据预取到所述高速缓存中一个或多个周期。2.根据权利要求1所述的方法,其中,还包括:响应于确定出所述预取标签已达到所述预取阈值,将数据预取到所述高速缓存中。3.根据权利要求1所述的方法,其中:所述系统包括第二高速缓存,并且所述第二高速缓存具有第二预取阈值,用于确定是否要将数据预取到所述第二高速缓存中。4.根据权利要求3所述的方法,其中:所述第二预取阈值不同于所述预取阈值。5.根据权利要求3所述的方法,其中:所述系统为处理器,所述高速缓存是所述处理器的第一级(L1)高速缓存,并且所述第二高速缓存是所述处理器的第二级(L2)高速缓存。6.根据权利要求5所述的方法,其中:所述第一级(L1)高速缓存专用于所述处理器的一个核,并且所述第二级(L2)高速缓存被所述处理器的至少两个核共用。7.根据权利要求1所述的方法,其中,还包括:确定所述目标缓存行中的数据是否已被首次访问;以及响应于确定出所述目标缓存行中的所述数据已被首次访问,更新所述目标缓存行的所述预取标签。8.根据权利要求1所述的方法,其中,所述预取标签的值是根据所述目标缓存行中已被访问的条目的数目来确定的。9.根据权利要求1所述的方法,其中,被预取的所述数据是流数据。10.根据权利要求1所述的方法,其中,所述预取标签和所述预取阈值是采用软件实现的。11.一种用于预取数据的装置,包括:处理器,所述处理器包括具有多个级别的存储系统,并被配置为:检查目标缓存行的预取标签,所述目标缓存行存储在所述存储系统的高速...

【专利技术属性】
技术研发人员:罗竣文孙飞李浩然王邦彦赵梓豪
申请(专利权)人:阿里巴巴新加坡控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1