掌桥专利:专业的专利平台
掌桥专利
首页

用于DRAM高速缓存标签预取器的方法和装置

文献发布时间:2024-04-18 19:58:21


用于DRAM高速缓存标签预取器的方法和装置

相关申请的交叉引用

本申请要求2021年3月31日提交的名称为“METHOD AND APPARATUS FOR A DRAMCACHE TAG PREFETCHER(用于DRAM高速缓存标签预取器的方法和装置)”的待审美国非临时专利申请17/219,782号的权益,其全部内容据此以引用方式并入本文。

背景技术

高速缓存存储器用于通过将在较大(较大容量)但较慢(较长存取时间)存储器部分中频繁存取的数据的副本存储在高速缓存中来加速对存储在较大随机存取存储器(RAM)部分(例如,主存储器)中的数据的存取。当处理器请求对(例如,由地址标识的)较大存储器部分的存取(例如,从较大存储器部分读取数据或向其写入数据)时,处理器首先确定该数据的副本是否存储在高速缓存中。如果确定该数据的副本存储在高速缓存中,则处理器存取高速缓存,从而便于更有效地存取该数据。

附图说明

可以从以下描述中获得更详细的理解,通过示例结合附图给出,其中:

图1是可实现本公开的一个或多个特征的示例设备的框图;

图2是例示用于实现本公开的一个或多个特征的示例部件的框图;

图3是示出根据本公开的特征的DRAM高速缓存预取的示例性方法的流程图;并且

图4A是示出根据本公开的特征的用于高预取准确度的条件的第一预取模式的示例性流程的框图;

图4B是示出根据本公开的特征的用于低预取准确度的条件的第二预取模式的示例性流程的框图。

具体实施方式

以固定大小的块(通常称为高速缓存行)将频繁存取的数据从较大、较慢存储器复制到高速缓存。当高速缓存行被复制到高速缓存时,高速缓存条目被创建(即,被放置在高速缓存中),其包括所复制的数据和所请求的存储器地址(例如,标签)的一部分。如果与后续存储器请求相关联的标签与高速缓存中的标签匹配,则高速缓存命中发生并且数据在高速缓存行中被存取。然而,如果标签不匹配,则高速缓存未命中发生,新条目被分配给高速缓存,并且来自较大、较慢存储器的数据被复制到高速缓存并被存取。根据包括直接映射和相联映射的不同映射策略,现有条目可被新条目替换(例如,被逐出),如下文更详细地描述。

RAM的主要类型包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。SRAM是比DRAM更快的存储器(例如,存取数据所花费的时间更少),并且因此,通常被用作高速缓存存储器。DRAM比SRAM更便宜(例如,消耗更少的功率),并且提供比SRAM更大的存储器容量和密度。因此,DRAM通常被用作存储器(例如,主存储器)的较大但较慢(即,较长存取时间)部分。

由于对存储器和性能的需求不断增加,近来已开发出使用高速缓存(例如,DRAM高速缓存)作为为片外主存储器提供高容量、高密度高速缓存存储的方式的常规方法。例如,这些常规方法提供存储器(例如,非易失性存储器,诸如主存储器)的较大(即,较大容量)且较慢(即,较长存取时间)部分以及高速缓存存储器(例如,DRAM、高带宽存储器或其它高性能存储器)的一部分,该高速缓存存储器比片外存储器(例如,主存储器)更小且更快(即,更短存取时间),但比SRAM更慢。

因为较快存储器(例如,DRAM)正充当用于较慢存储器的高速缓存,所以如上所述,标记被复制到DRAM高速缓存的数据,以确定请求数据是否位于高速缓存中。此外,由于用于将标签存储在SRAM中的区域开销不可行,高速缓存标签通常被存储在DRAM高速缓存内。因此,当存取数据的请求被发出时,通过检查与请求数据相关联的标签是否同与高速缓存中(例如,DRAM高速缓存中)的数据相关联的标签匹配,确定请求数据是否被高速缓存(例如,在1级(L1)高速缓存中、在2级(L2)高速缓存中、在3级(L3)高速缓存中和在DRAM高速缓存中)。标签检查在组相联DRAM高速缓存中与数据存取串行化,而标签检查可以在SRAM高速缓存中并行完成。DRAM高速缓存中的串行标签和数据查找导致附加的延迟并且对总体性能造成负面影响。

可以使用不同的高速缓存映射策略(诸如直接映射和相联映射)来减少此延迟。例如,当直接映射策略用于高速缓存时,每个标签(即,存储器地址)被分配给高速缓存的特定部分(例如,组索引)。存储器与高速缓存之间的映射容易实现,因为索引和偏移可容易计算(例如,用位运算符或简单算术),并且因为避免了搜索通过许多高速缓存行,所以消耗较少的功率来将数据放置在高速缓存中。然而,当许多地址被映射到相同的高速缓存索引时,直接映射的高速缓存的高速缓存行可被重复地逐出,尽管存在未使用的高速缓存行。因此,直接映射在减少总体高速缓存命中延迟方面是有效的,但其可能导致总体较高高速缓存未命中率。

当使用完全相联映射策略时,新条目可被复制到任何高速缓存位置(例如,地址),并且数据可被放置在高速缓存中的任何地方,这减少了冲突未命中。然而,实现完全相联高速缓存是非常昂贵的,因为整个地址被用作标签,这大大增加了标签存储开销。

此外,必须检查高速缓存中的每个高速缓存块的标签,因为数据可位于任何高速缓存行,这增加了功率消耗、延迟和存储器带宽。因此,虽然相联高速缓存与直接映射的高速缓存相比具有更低的高速缓存未命中率,但它们与直接映射的高速缓存相比增加了硬件成本、功率消耗、延迟和存储器带宽使用率。

当使用N路组相联映射策略时,每个条目被分配给包含数量N个高速缓存行的组,其中每个行可以保持来自任何标签的数据。对于组相联高速缓存,N路组相联策略中行的数量N越大,相联性越大且高速缓存未命中的概率越低。然而,相联性的增加包括行的数量N的增加并且要搜索的地址的数量更大,从而导致增加的延迟和功率消耗。

一些常规技术包括专用硬件数据结构以尝试使与标签查找相关联的延迟(即,标签存取延迟)最小化。例如,一些常规技术使用预测器来预测请求数据将引起高速缓存命中还是高速缓存未命中。然而,预测器的使用受到存储器容量和可以被跟踪的信息量的约束,这限制了总体性能。此外,这些常规技术并不提供足够的相联性以及可接受的存取延迟。

数据预取是用于通过在数据被实际请求执行之前从较慢存储器提取数据以放置在较快存储器中来改善性能(例如,减少数据存取延迟)的技术。然而,有效预取依赖于准确度和及时性两者。当在预取的高速缓存行被逐出之前该高速缓存行已被请求方(例如,CPU内核)提取并使用时,预取是准确的。当在数据被实际请求并用于执行之前该数据被提取并存储在高速缓存中时,预取是及时的。

在常规预取系统中,当预取导致不准确(即,在多个时钟循环内或在从高速缓存逐出数据之前不请求执行从高速缓存预取的数据)时,这些常规系统通过减少预取的次数或停止预取(例如,关闭预取器)来解决不准确度问题。然而,这些方法并非有效的,因为不准确预取仍然提供非零命中率。

本公开的特征提供用于通过基于来自先前预取的反馈信息推测性地发出标签预取来减少标签存取延迟同时有效地保持带宽使用率的方法和装置。不是关闭预取器或减少预取的次数,而是在不预取对应数据的情况下预取标签。因此,预取带宽花费在标签上而不是数据上,从而避免浪费数据上的带宽用于被确定为不准确预取。此外,减少了提取标签的延迟,由于减少了延迟和能量消耗,从而提高了执行效率。本公开的特征通过利用指示组相联DRAM高速缓存的预取的准确度的反馈,利用来自组相联高速缓存的较少高速缓存未命中而不增加由常规组相联高速缓存导致的延迟的益处。当预取被确定为不准确时,绕过从专用于处理器的高速缓存(例如,L1高速缓存)和中间高速缓存(例如,L2高速缓存、L3高速缓存)进行的预取,并且从DRAM高速缓存预取标签,而不预取对应于该标签的数据,这减少了用于DRAM高速缓存中的数据的不准确预取的带宽。此外,仅从DRAM高速缓存预取标签(即,不预取数据)减少了在数据被实际请求执行的情况下稍后从DRAM高速缓存提取标签的存取延迟。带宽的减少和DRAM存取延迟的减少有利于较高的高速缓存相联性和DRAM高速缓存命中率并且改善总体性能。

为了简化解释的目的,本文提供的示例描述了从DRAM高速缓存推测性地发出标签预取。然而,本公开的特征可以通过从比存取片外存储器(例如,主存储器)更快存取的任何其它类型的非SRAM高速缓存推测性地发出标签预取来实现。

提供了一种处理设备,该处理设备包括存储器和处理器。存储器包括第一高速缓存。处理器被配置为:发出预取数据的预取请求,发出提取数据的数据存取请求,以及当一个或多个先前发出的预取请求被确定为不准确时,发出预取标签的标签预取请求,而不从第一高速缓存预取数据,该标签对应于第一高速缓存中的请求数据的存储器地址。例如,第一高速缓存是动态随机存取存储器(DRAM)高速缓存,并且处理设备还包括专用于处理器的第二高速缓存以及在专用于处理器的第二高速缓存与DRAM高速缓存之间的一个或多个中间高速缓存。

提供了一种高速缓存预取的方法,该方法包括:发出预取数据的预取请求,发出提取数据的数据存取请求,以及当一个或多个先前发出的预取请求被确定为不准确时,发出预取标签的标签预取请求,而不从第一高速缓存预取数据,该标签对应于第一高速缓存中的请求数据的存储器地址。

一种非暂时性计算机可读媒体,该非暂时性计算机可读媒体包括用于致使计算机执行高速缓存预取的方法的指令,这些指令包括:发出预取数据的预取请求,发出提取数据的数据存取请求,以及当一个或多个先前发出的预取请求被确定为不准确时,发出预取标签的标签预取请求,而不从第一高速缓存预取数据,该标签对应于第一高速缓存中的请求数据的存储器地址。

图1是可实现本公开的一个或多个特征的示例设备100的框图。设备100可包括例如计算机、游戏设备、手持设备、机顶盒、电视、移动电话或平板计算机。设备100包括处理器102、存储器104、存储装置106、一个或多个输入设备108以及一个或多个输出设备110。设备100还可任选地包括输入驱动器112和输出驱动器114。应当理解,设备100可包括图1中未示出的另外部件。

在各种另选方案中,处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一管芯上的CPU和GPU、或一个或多个处理器核心,其中每个处理器核心可为CPU或GPU。在各种另选方案中,存储器104位于与处理器102相同的管芯上或与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM(DRAM)或高速缓存。

存储装置106包括固定或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘或闪存驱动器。输入设备108包括但不限于键盘、小键盘、触摸屏、触控板、检测器、麦克风、加速度计、陀螺仪、生物扫描仪或网络连接(例如,用于发射和/或接收无线IEEE 802信号的无线局域网卡)。输出设备110包括但不限于显示器、扬声器、打印机、触觉反馈设备、一个或多个灯、天线或网络连接(例如,用于发射和/或接收无线IEEE 802信号的无线局域网卡)。

输入驱动器112与处理器102和输入设备108通信,并允许处理器102从输入设备108接收输入。输出驱动器114与处理器102和输出设备110通信,并允许处理器102向输出设备110发送输出。应注意,输入驱动器112和输出驱动器114是任选的部件,并且如果输入驱动器112和输出驱动器114不存在,则设备100将以相同方式操作。输出驱动器114包括联接到显示设备118的加速处理设备(“APD”)116。APD被配置为从处理器102接收计算命令和图形渲染命令,处理那些计算和图形渲染命令,以及将像素输出提供给显示设备118用于显示。如下文所详述,APD 116包括被配置为根据单指令多数据(“SIMD”)范式来执行计算的一个或多个并行处理单元。因此,尽管这里将各种功能描述为由APD 116执行或与其结合执行,但在各种另选方案中,被描述为由APD 116执行的功能另外地或另选地由具有类似能力的其他计算设备执行,该其他计算设备不由主机处理器(例如,处理器102)驱动并且被配置为向显示设备118提供图形输出。例如,可以设想根据SIMD范式执行处理任务的任何处理系统均可被配置为执行本文所述的功能。另选地,设想不根据SIMD范式执行处理任务的计算系统执行本文所述的功能。

图2是例示用于实现本公开的一个或多个特征的示例部件的框图。图2所示的部件是例如处理设备(诸如图1所示的设备100)的部件。如图2所示,部件包括存储器104(例如,主存储器)、处理器内核204、存储器控制器/处理器208、1级(L1)高速缓存212、2级(L2)高速缓存214和N级(LN)DRAM高速缓存216、高速缓存控制器210、218和220、预取器222、224和226以及标签高速缓存228。

例如,处理器内核204是诸如CPU或加速处理器(例如,GPU)的任何处理器类型的一部分。

L1高速缓存212、L2高速缓存214和LN DRAM高速缓存216被配置为实现组相联映射策略。本公开的特征可以使用任何数量(N)个层级上的高速缓存来实现。例如,如图2中所示,部件包括多个处理器内核204。每个内核204包括专用(不与其它内核共享的)L1高速缓存212和与对应L1高速缓存212通信的L1高速缓存控制器218,该控制器被配置为使用对应L1高速缓存212来处理数据。

如图2所示,部件还包括与2级高速缓存214通信并且被配置为使用L2高速缓存214来处理数据的L2高速缓存控制器220。L2高速缓存214由处理器内核204共享。虽然为了简化说明的目的未示出,但设备可以在高速缓存分级结构中包括任何数目个附加的高速缓存(例如,L3高速缓存)。例如,每个L3高速缓存可以由单个处理器(例如,CPU或GPU)或多个处理器内核共享。

每个高速缓存控制器与较低级高速缓存控制器和下一级高速缓存控制器通信。例如,为了简化说明的目的,高速缓存控制器220被示出为与高速缓存控制器218和高速缓存控制器210通信。然而,因为可以使用任何N个层级,所以可了解,高速缓存控制器220可以与3级高速缓存控制器(未示出)通信。LN DRAM高速缓存216和LN DRAM高速缓存控制器210可以与多个处理器的高速缓存(诸如例如,CPU或GPU的高速缓存,其可位于同一裸片或多个裸片上)通信并由其共享。此外,虽然LN DRAM高速缓存216在图2中被示出为与主存储器104分离,但N级DRAM高速缓存216可以与主存储器104分离或者是其一部分。

如图2中进一步所示,每个层级包括预取器222、224和226。在一些示例中,一个或多个层级不包括它们自己的专用预取器。本公开的特征可以用任何数目个预取器来实现。预取器可以在硬件、软件或硬件与软件的组合中实现。例如,基于硬件的预取通常经由与对应高速缓存通信的专用硬件机构来实现,该专用硬件机构动态地监测(在运行时,而不依赖于编译器)由执行程序请求的指令和数据、预测待请求的下一数据,并且在数据实际上被请求执行程序之前将该数据预取到请求处理器的高速缓存。例如,基于软件的预取通过将编译器配置为分析指令且当程序被编译时在程序中插入附加的预取指令来实现。

存储器控制器/处理器208与存储器104(例如,主存储器)以及高速缓存控制器220和218通信。如图2所示,多个客户端206与存储器控制器/处理器208通信。存储器控制器/处理器208控制数据流进/流出存储器(例如,存储器104、L1高速缓存212、L2高速缓存214和LN高速缓存216)。例如,当从存储器存取数据的请求被发出时,存储器控制器/处理器208通过从存储器读取或写入到存储器(例如,经由高速缓存控制器218存取高速缓存212、经由高速缓存控制器220存取高速缓存214、经由高速缓存控制器210存取高速缓存216以及存取存储器104)来服务这些请求。存储器控制器/处理器208被配置为接收请求、分配存储器、控制对一个或多个高速缓存的存取以及本文所述的各种其它功能。例如,如下文更详细地描述,存储器控制器/处理器208被配置为:发出对数据的预取请求、发出标签预取请求而不进行数据预取、发出提取数据的数据存取请求、基于所确定的预取准确度和DRAM高速缓存带宽使用率保持或切换到第一预取模式和第二预取模式中的操作。

图3是示出根据本公开的特征的DRAM高速缓存预取的示例性方法的流程图。

如框302处所示,方法300包括根据第一预取模式和第二预取模式中的一个预取模式发出数据预取。例如,应用程序的执行在图4A和图4B所示的第一预取模式和第二预取模式中的任一个预取模式中开始(例如,默认)。

图4A和图4B是示出根据本公开的特征的两个不同的预取模式的框图。图4A示出用于高预取准确度的条件的第一预取模式。图4B示出用于低预取准确度的条件的第二预取模式。

每级高速缓存(例如,L1高速缓存、L2高速缓存、L3高速缓存)可以包括预取器,该预取器尝试预测待存取的下一数据并且在对所预测数据的存储器存取请求之前发出对其对应高速缓存的预取请求。然而,为了简化解释的目的,图4A和图4B所示的示例包括用于处理器内核的单个预取器402(例如,图2中的预取器222),该预取器向上游较高级高速缓存和DRAM高速缓存404发出预取请求(在图4A和图4B中被示出为PR)。此外,虽然图4A和图4B所示的示例包括L1高速缓存、L2高速缓存和L3高速缓存,但本公开的特征可以使用任何数目个高速缓存级来实现。

在图4A处所示的第一预取模式中的操作期间,在专用L1高速缓存和中间级高速缓存(例如,L2和L3高速缓存)处执行标签查找,并且从专用L1高速缓存、中间L2和L3高速缓存或DRAM高速缓存404预取标签和对应于该标签的数据两者并将它们返回到请求预取器402。

例如,如图4A所示,预取由预取请求方402发出。检查L1高速缓存以确定预取请求中的标签是否在L1高速缓存中。当标签被确定为在L1高速缓存中时,预取请求被丢弃,因为标签已在最低级高速缓存中。当标签被确定为不在L1高速缓存中时,检查L2高速缓存以确定预取请求中的标签是否在L2高速缓存中。当标签被确定为在L2高速缓存中时,数据被返回到L1高速缓存并且标签和数据被存储在L1高速缓存中。当标签被确定为不在L2高速缓存中时,检查L3高速缓存以确定预取请求中的标签是否在L3高速缓存中。当标签被确定为在L3高速缓存中时,数据被返回到L2高速缓存,然后被返回到L1高速缓存。标签和数据被存储在L1高速缓存中。根据L2高速缓存分配策略,标签和数据也可以被存储在L2高速缓存中。当标签和数据不在L3高速缓存中时,检查DRAM高速缓存404以确定预取请求是否在对应高速缓存中。从DRAM高速缓存404提取标签和数据两者,并且在标签命中时,将数据返回到较低级高速缓存(L3、L2和L1)并将标签和数据存储在L1高速缓存中。根据L2和L3高速缓存的分配策略,标签和数据也可以被存储在L2和L3高速缓存中。

在图4B处所示的第二预取模式中的操作期间,从DRAM高速缓存404预取标签而不预取对应于该标签的数据,从而减少用于DRAM高速缓存404中的数据的不准确预取的带宽。即,标签预取请求仅包括物理地址和指示预取类型的元数据。附加地或另选地,在L1、L2和L3高速缓存处不执行(即,绕过)标签查找。即,标签预取请求被直接发送到DRAM高速缓存控制器(例如,图2中的高速缓存控制器210)并且绕过高速缓存分级结构。标签预取请求由DRAM高速缓存控制器接收并且被存储在单独的队列(例如,DRAM高速缓存216)中以供处理。预取的标签与设置元数据一起被放置在标签高速缓存中,以便在未来更新时更容易地合并标签高速缓存和标签。在标签预取队列中查找传入请求,并且压缩所有重复请求。

例如,如图4B所示,当预取请求由预取器402发出时,L1高速缓存、L2高速缓存和L3高速缓存被绕过,并且标签查找在DRAM高速缓存404处被执行。当预取请求中的标签在DRAM高速缓存404中时,从DRAM高速缓存预取标签(例如,通过图2所示的预取器226),并且将其放置在标签高速缓存406中,而不预取对应于该标签的数据。因此,预取带宽花费在标签上而不是数据上,从而避免浪费数据上的带宽用于被确定为不准确预取。此外,仅预取标签而不从DRAM高速缓存404预取对应数据减少了在数据被实际请求执行的情况下稍后从DRAM高速缓存提取标签的存取延迟。

如决策框304处所示,方法300包括确定预取准确度是否等于或小于预取准确度阈值。例如,进行关于在高速缓存行被逐出之前请求方(例如,CPU或GPU的处理器/控制器)是否已提取并使用了多个先前发出的预取的确定。例如,预取准确度阈值是预定数目个先前发出的预取的不准确预取的比率或百分比、预定数目个时钟循环内的不准确预取的数量、关于一个或多个先前预取是否被确定为不准确的确定。

当在决策框304处预取准确度被确定为并不等于或小于预取准确度阈值(例如,可接受准确度)时(即,图3中的否决策),该方法包括切换到或保持第一预取模式中的操作,如框306所示。即,针对每个高速缓存(例如,L1高速缓存、L2高速缓存、……、DRAM高速缓存)执行标签查找,并且从高速缓存中的一个高速缓存预取标签和对应于该标签的数据两者并将其返回到请求预取器(例如,图4中的预取器402或图2中的处理器内核204的预取器222)。

当在决策框304处预取准确度被确定为等于或小于预取准确度阈值时(即,图3中的是决策),该方法包括切换到或保持第二预取模式中的操作,如框308所示。即,在L1、L2和L3高速缓存处不执行(即,绕过)标签查找,并且从DRAM高速缓存404预取标签而不预取对应于该标签的数据,从而减少用于DRAM高速缓存404中的数据的不准确预取的带宽。

此外,在第一预取模式中的操作期间,预取准确度在框304处继续被监测。因此,当在决策框304处预取准确度被确定为等于或小于预取准确度阈值时(即,图3中的是决策),预取模式从第一预取模式中的操作切换到第二预取模式中的操作。同样,在第二预取模式中的操作期间,预取准确度在框304处继续被监测。因此,当在决策框304处预取准确度被确定为并不等于或小于预取准确度阈值时(即,图3中的否决策),预取模式从第二预取模式中的操作切换到第一预取模式中的操作。

除了从DRAM高速缓存404预取标签而不预取数据之外,预取的功能性还可以基于预取器的类型不同而不同。例如,诸如数据流预取器或方向预取器的预取器可以基于预取准确度而进行二进制调节-打开和关闭。即,即使当数据预取未被发出时,也向DRAM高速缓存发出标签预取以用于所有预测的未来请求数据流。

步长预取器可以基于预取准确度而在距离上进行调节。因此,当预取准确度被确定为等于或小于预取准确度阈值时,步长预取器可以被配置为预取下一步长而不是其他多个步长。当步长预取准确度被确定为低时,针对每个步长向DRAM高速缓存发出标签预取,而不预取数据。

基于区域的预取器可以基于预取准确度而在阈值上进行调节。例如,基于区域的预取器被配置为监测最近存取的存储器区域的未命中映射。对于对高速缓存行的每个数据存取请求未命中,基于区域的预取器更新被跟踪的存储器区域的置信度计数器。在后续数据存取请求未命中时,基于区域的预取器向超出置信度阈值的区域的高速缓存行发出预取请求。对于属于最后数据存取请求未命中的区域,向DRAM高速缓存发出标签预取,而不预取数据。

对于未来的数据预取或需求请求,检查标签高速缓存。当标签高速缓存命中发生时,DRAM高速缓存控制器仅从DRAM高速缓存提取数据。当标签高速缓存未命中发生时,从较慢存储器(例如,主存储器、存储类存储器)提取数据。当高速缓存行逐出和高速缓存行填充发生时,相应地更新标签高速缓存以防止驻留在标签高速缓存中的标签与驻留在DRAM中的标签之间的任何不一致性。

对于不准确预取,预取数据不会造成带宽损失,并且对于许多准确预取,命中延迟会减少预取标签可以略微增加存储器带宽利用率。因此,连续监测DRAM带宽,使得当带宽使用率大于或等于存储器带宽阈值(例如,大于或等于60%存储器带宽使用率)时使用第二预取模式,以防止传入需求请求的长DRAM队列延迟。

应当理解,基于本文的公开内容,可能有许多变化。尽管上述特征和元素在特定组合中进行了描述,但每个特征或元素可以在没有其他特征和元素的情况下单独使用,或者在有或没有其他特征或元素的各种组合中使用。

附图所示和/或本文所述的各种功能单元(包括但不限于处理器102、输入驱动器112、输入设备108、输出驱动器114、输出设备110、加速处理设备116、处理器内核204、存储器控制器208、1级(L1)高速缓存212、2级(L2)高速缓存214、N级(LN)DRAM高速缓存216和404、高速缓存控制器210、218和220、预取器222、224、226和402以及标签高速缓存228和406)可以被实现为通用计算机、处理器或处理器内核,或者被实现为程序、软件或固件,存储在非暂态计算机可读介质或另一介质中,能够由通用计算机、处理器或处理器内核来执行。所提供的方法可以在通用计算机、处理器或处理器核心中实现。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路,任何其他类型的集成电路(IC)和/或状态机。可以通过使用处理的硬件描述语言(HDL)指令和包括网表的其他中间数据(能够存储在计算机可读介质上的此类指令)的结果来配置制造过程而制造此类处理器。此类处理的结果可以是掩码,然后在半导体制造过程中使用这些掩码来制造实现本公开的特征的处理器。

本文提供的方法或流程图可以在并入非暂态计算机可读存储介质中的计算机程序、软件或固件中实现,以供通用计算机或处理器执行。非暂态计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器设备、磁性介质(诸如内部硬盘和可移动磁盘)、磁光介质和光学介质(诸如CD-ROM磁盘)以及数字多功能磁盘(DVD)。

相关技术
  • 一种面向数据结构的图形处理器数据预取方法及装置
  • 用于拾取坯料样品的装置、用于修整片材形元件的机器以及拾取坯料的方法
  • 一种用于在预制构件中预埋箱体的预埋装置及施工方法
  • 数据预取器及预取数据至高速缓存存储器的方法
  • 数据预取器及预取数据至高速缓存存储器的方法
技术分类

06120116480163