CN104769560B - 基于缓冲器充满度而向高速缓存进行预取 - Google Patents
基于缓冲器充满度而向高速缓存进行预取 Download PDFInfo
- Publication number
- CN104769560B CN104769560B CN201380058101.8A CN201380058101A CN104769560B CN 104769560 B CN104769560 B CN 104769560B CN 201380058101 A CN201380058101 A CN 201380058101A CN 104769560 B CN104769560 B CN 104769560B
- Authority
- CN
- China
- Prior art keywords
- cache
- request
- slot
- time
- storage
- 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.)
- Active
Links
- 230000004044 response Effects 0.000 claims abstract description 61
- 238000012546 transfer Methods 0.000 claims abstract description 14
- 238000003860 storage Methods 0.000 claims description 143
- 238000000034 method Methods 0.000 claims description 62
- 230000008569 process Effects 0.000 description 17
- 238000004519 manufacturing process Methods 0.000 description 15
- 238000013461 design Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000013500 data storage Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000009434 installation Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 239000000411 inducer Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Classifications
-
- 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
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种处理器(102)基于未命中地址缓冲器(MAB)(130)的充满度或者基于预取请求的信任级别,将预取请求从它们锁定为目标的高速缓存(104)传输至存储器层次结构中的另一高速缓存(105)。所述存储器层次结构中的每个高速缓存在所述MAB上分配有许多时隙。响应于在接收对高速缓存的预取请求(404)时,确定分配给所述高速缓存的时隙的充满度高于阈值,处理器便将所述预取请求传输至所述存储器层次结构中的下一更低级别高速缓存(410)。作为响应,被存取请求锁定为目标的数据会预取至所述存储器层次结构中的下一更低级别高速缓存,并且因此可用于随后提供给所述高速缓存。另外,处理器可基于预取请求的信任级别,将预取请求传输至更低级别的高速缓存。
Description
背景
发明领域
本公开一般涉及处理器,并且更具体来说,涉及处理器上的预取。
现有技术描述
处理器架构通常采用存储器层次结构,在存储器层次结构的最低级别上具有外部存储器,并且在存储器层次结构的每个更高级别上具有高速缓存。处理器架构进一步采用从存储器层次结构中的最高级别高速缓存请求数据(指令或操作数数据)的处理器核心。响应于确定与存取请求相回应的信息并未存储在存储器层次结构中的特定高速缓存上,所述高速缓存将发出针对来自层次结构中下一个更低级别上的高速缓存的信息的存取请求。一些处理器架构采用非阻塞高速缓存,据此,所述高速缓存能够在对朝向存储器层次结构中的更低级别的未决存取请求的满足进行等待的同时,服务存取请求。此类架构可使用未命中地址缓冲器(MAB)来存储用于每个未决存取请求的地址和其它信息。存储器层次结构中的每个高速缓存分配有MAB时隙,以使得分配至高速缓存的时隙数目决定针对高速缓存的未决存取请求的最大允许数目。
存取请求可为至少两种类型:需求请求,其表示来自处理器核心的、针对已知被处理器需要的指令或数据的请求,以及预取请求,所述预取请求投机性地请求期望与被预测在稍后点处执行的指令或数据参考相回应的指令或数据。通常给予需求请求较高优先级而便于保留MAB上的存储位置。由于在MAB上缺乏可用存储位置,这个优先化会对预取产生负面影响,从而降低处理器效率。
附图简述
通过参考附图,可更好地理解本公开,并且它的许多特征和优点对本领域技术人员来说变得显而易见。
图1为根据一些实施方案的电子装置的方框图。
图2为根据一些实施方案的、在图1的电子装置的处理器上所使用的预取请求信息的方框图。
图3为时间线图,其示出根据一些实施方案的、在图1的处理器的存储器层次结构上进行的预取请求传输。
图4为根据一些实施方案的、基于MAB充满度而在图1的处理器的存储器层次结构上传输预取请求的方法的流程图。
图5为根据一些实施方案的、基于预取信任级别而在图1的处理器的存储器层次结构上传输预取请求的方法的流程图。
图6为流程图,其示出根据一些实施方案的、用以设计和制造实施处理器部件的至少一部分的集成电路装置的方法。
在不同图示中相同参考符号的使用指示类似或相同的物件。
详细描述
图1至图6示出用以提升处理效率的技术,所述技术通过基于未命中地址缓冲器(MAB)或基于预取请求的信任级别,将预取请求从其目标高速缓存传输至存储器层次结构中的另一高速缓存来提升处理效率。处理器保持MAB,以使得MAB上的每个时隙可存储与针对存储器层次结构中的高速缓存的未决存取请求相关的信息。存储器层次结构中的每个高速缓存在MAB上分配有一组时隙。响应于在接收对高速缓存的预取请求时,确定分配至高速缓存的所述组时隙的充满度高于阈值,处理器将预取请求传输至存储器层次结构中的下一个更低级别高速缓存。作为响应,被存取请求锁定为目标的数据会预取至存储器层次结构中的更低级别高速缓存,并且因此在后续需求请求的事件中可用以提供给高速缓存。另外,处理器可基于预取请求的信任级别而将预取请求传输至更低级别的高速缓存。这确保与低信任级别关联的预取请求不会消耗MAB上更高级别高速缓存的时隙,所述时隙将用于具有更高信任度的需求请求或预取请求。
图1示出根据一些实施方案的、具有处理器102和存储器150的电子装置100。电子装置100可为采用处理器的任何装置,包括个人计算机、服务器、便携式电子装置(如手机)、自动装置、游戏控制台以及类似装置。处理器102一般被配置成执行布置为计算机程序并且存储在存储器150上的多组指令。所述多组指令操纵处理器102,以便执行与计算机程序关联的任务。
处理器102包括执行所述多组指令的处理器核心110。在一些实施方案中,处理器核心110实施具有多个级的指令流水线,据此每个级执行作为指令执行的一部分的特定操作。例如,指令流水线可包括:获取级,用以按照程序顺序来获取下一指令;解码级,用以将所获取的指令解码成微操作集;分派级,用以分派微操作而加以执行;具有多个执行单元的执行级,用以执行所分派的微操作;以及引退级,用以管理指令的引退。
处理器102也包括一组N个高速缓存,其中N为整数。在所示出的实施例中,N个高速缓存包括高速缓存104、高速缓存105以及额外高速缓存至第N个高速缓存106。出于论述目的,假定高速缓存104至106存储由处理器102在指令执行期间所操纵的数据。处理器102也可包括布置在层次结构中另一组高速缓存,其存储将要由处理器核心110执行的指令。在一些实施方案中,高速缓存104至106中的一个或多个高速缓存可存储指令和数据。尽管将在假定高速缓存104至106存储数据的条件下来描述参照图1所述的技术,但是应理解,所述技术也适用于存储指令的高速缓存。
高速缓存104至106和存储器150一起形成用于电子装置100的存储器层次结构145。存储器150位于存储器层次结构145的最低级别上,并且高速缓存104至106各自位于存储器层次结构145的不同对应级别上。因此,在图1的所示实施例中,高速缓存104位于层次结构的最高级别上,所以被称为L1(“一级”)高速缓存104。高速缓存105位于存储器层次结构145中的下一更高级别上,并且被称为L2(“二级”)高速缓存105。处理器102的其它高速缓存位于存储器层次结构145的其它级别上,其中高速缓存106处于第N个级别上并且称为LN高速缓存106。在一些实施方案中,存储器层次结构145的每个相继更高的级别相继更小(具有更小的容量来存储数据)。从而,例如,L1高速缓存104容量小于L2高速缓存105的容量。然而,如下文进一步描述的,处理器102通常经由L1高速缓存104存储数据以及从存储器层次结构145检索数据,并且不会直接存储数据或从存储器层次结构145的其它级别检索数据。因此,通过使数据穿过存储器层次结构145的每个级别直到其到达L1高速缓存104,将位于存储器层次结构145的更低级别上的数据提供给处理器102。在存储器层次结构145中数据所穿过的每个级别,响应于来自处理器102的存取请求而引入额外延时。因此,处理器102请求的数据在存储器层次结构145中所位于的级别越高,数据的处理效率便越高(并且处理器102接收数据的延时便越低)。
高速缓存104至106中的每一个高速缓存包括控制器和存储阵列。用于高速缓存104至106中的每个高速缓存的存储阵列为一组被配置来存储数据的存储元件,如位单元。用于高速缓存104至106中的每个高速缓存的控制器被配置来管理其对应存储阵列上的数据存储和检索。在所示出的实施例中,L1高速缓存104包括控制器115和存储阵列116,L2高速缓存105包括控制器125和存储列阵126,并且LN高速缓存106包括控制器135和存储阵列136。
处理器核心110包括加载/存储单元111,以便响应于特定指令而生成存储器存取请求。出于说明目的,在一些实施方案中,加载/存储单元111位于处理器核心110的指令流水线的执行级上。指令流水线的解码级会解码特定指令来生成相应操作,以便从存储器层次结构145检索数据(加载操作)或者将数据存储在存储器层次结构145上(存储操作)。加载操作和存储操作在本文中共同称为存储器存取请求。每个存储器存取请求包括识别由存储器存取请求所存取的数据的位置的存储器地址。
响应于存储器存取请求,加载/存储单元111生成对存储器层次结构145的请求,本文称为需求请求。需求请求被提供给L1高速缓存104。控制器115分析用于需求请求的存储器地址,并且确定存储阵列116是否存储与存储器地址关联的数据。如果确定存储阵列116存储所述数据,那么在需求请求用于加载操作的情况下,控制器115便会通过将与存储器地址关联的数据提供给加载/存储单元111来满足需求请求,或者在需求请求为存储操作的情况下,控制器115便会通过将新数据存储在对应于存储器地址的位置上来满足需求请求。如果控制器115确定存储阵列116并未存储与存储器地址关联的数据,那么其便指示高速缓存未命中并且将需求请求提供给L2高速缓存105。
响应于需求请求,控制器125分析用于需求请求的存储器地址,并且确定存储器阵列126是否存储与存储器地址关联的数据。如果确定存储器阵列126存储所述数据,那么控制器125便将数据提供给L1高速缓存104,以便存储在存储阵列116上。控制器115随后使用存储在存储器阵列116上的数据来满足需求请求。如果控制器125确定存储阵列126并未存储与存储器地址关联的存储数据,其便指示高速缓存未命中并且将需求请求提供给处于存储器层次结构145的下一更低级别上的高速缓存。处于存储器层次结构145的其它级别上的控制器执行与控制器125类似的操作,以便确定其对应的存储阵列是否存储与存储器地址关联的数据。如果确定其对应的存储阵列存储所述数据,它们便将数据提供给处于层次结构中的下一更高级别上的高速缓存,所述高速缓存又将所述数据提供给下一更高级别的高速缓存,诸如此类,直到数据被提供给控制器115,以便存储在存储阵列116上。如果高速缓存并未存储与存储器地址关联的数据,那么其便指示高速缓存未命中,并且将需求请求提供给处于下一更高级别上的高速缓存。需求请求因而穿过存储器层次结构145,直到数据被确定位于高速缓存上,或者直到其到达LN高速缓存106。如果控制器135确定存储阵列136并未存储与存储器地址关联的数据,其便将存储器地址提供给存储器150。作为响应,存储器150将数据提供给控制器135,以便沿存储器层次结构145向上穿到L1高速缓存104。
在一些实施方案中,高速缓存104至106中的每个高速缓存响应于需求请求来存储从下一更高级别上的高速缓存提供的数据。一般来说,更低级别高速缓存比更高级别高速缓存具有更高的容量(例如,更多存储单元),并且因此可存储更多数据。在一些实施方案中,高速缓存104至106的控制器可实施不同策略,据此高速缓存可将数据提供给下一更高级别,而不将数据存储在其存储阵列上。例如,每个需求请求可包括指示需求请求类型(如优先级级别)的字段,并且高速缓存104至106的控制器可基于需求请求的优先级级别,确定存储阵列中的哪个存储阵列将响应于需求请求来存储数据。
处理器核心110包括预取器112,所述预取器112分析由加载/存储单元111发出的需求请求,并且基于所述分析而发出用于数据的预取请求。预取请求类似于需求请求,但基于期望将在稍后点上由处理器核心110上执行的指令所请求的数据而生成为投机性操作。如本文进一步描述的,预取请求使得被预取请求锁定为目标的数据沿着存储器层次结构145向上移动。因此,如果按照期望方式来请求数据,那么所述数据在层次结构中更靠近处理器核心110,从而减少存取延时。
预取请求被提供给L1高速缓存104,并且可由存储器层次结构145按照与需求请求类似的样式加以满足。出于说明目的,每个预取请求包括指示被预取请求锁定为目标的数据的存储器位置的存储器地址。预取请求可按照与需求请求类似的样式穿过存储器层次结构145,据此被预取请求锁定为目标的数据沿着层次结构向上传输,直到其存储在L1高速缓存104上。如下文进一步描述的,对于一些预取请求来说,被预取请求锁定为目标的数据并不特地传输至L1高速缓存,而是仅仅传输至存储器层次结构145的更低级别,如L2高速缓存105。这允许处理器102在高速缓存资源缺乏时更为有效地管理需求请求的满足,正如本文进一步描述的。
如果高速缓存等待来自层次结构中下一更低级别高速缓存的、对需求请求或预取请求的响应,那么需求请求或预取请求相对于高速缓存来说便称为“未决的”。因此,举例来说,如果L1高速缓存104等待L2高速缓存105响应于需求请求来提供数据,那么需求请求便称为在L1高速缓存上是未决的。应了解,给定的需求请求或预取请求可在高速缓存104至106中的多个高速缓存上是未决的,这取决于响应需求请求的数据在存储器层次结构145中所处的位置。高速缓存104至106配置为非阻塞高速缓存,原因在于高速缓存104至106的每个高速缓存可执行其它操作,包括响应于其它需求请求或预取请求,而同时在高速缓存上仍然存在未决的需求请求或预取请求。
为实施高速缓存104至106的非阻塞属性,处理器102包括未命中地址缓冲器(MAB)130。MAB 130包括多个时隙,如时隙165,据此每个时隙可存储表示高速缓存104至106中的一个高速缓存上未决的对应需求请求或预取请求的信息。处理器102给高速缓存104至106中的每个高速缓存在MAB 130上分配一组对应的时隙,以使得高速缓存可仅将用于未决需求请求或未决预取请求的信息存储在其分配时隙中的一个时隙上。在图1的所示实施例中,每个时隙标记有其所分配到的对应高速缓存。
出于说明目的,响应于确定存储器层次结构145的高速缓存上的高速缓存未命中,高速缓存的控制器在其分配的组中找到任何可用的时隙,以便存储针对导致高速缓存未命中的需求请求或预取请求的信息。如果时隙并未存储用于高速缓存上未决的另一需求请求或预取请求的信息,那么所述时隙便确定为可用的。高速缓存控制器将针对导致高速缓存未命中的需求请求的信息存储在可用时隙上。一旦MAB130上分配给高速缓存的最后一个可用时隙已填充有用于需求请求或预取请求的信息,高速缓存便向存储器层次结构145的下一更高级别上的高速缓存指示其无法接收额外的需求请求或预取请求。响应于与提供给高速缓存的未决需求或预取请求相回应的数据,高速缓存的控制器会使MAB 130上的对应时隙可用,并且向存储器层次结构145的下一更高级别指示其可接收额外的需求请求或预取请求。
在一些情况下,允许MAB 130上高速缓存的分配时隙由过大数目的未决预取请求使用,会降低处理器核心110上的处理效率。例如,在一些情况下,如果比起预取请求的满足,需求请求的满足在高速缓存104-106上被给予更高优先级,那么便会提高处理效率。因此,高速缓存104至106可管理MAB 130,以便增加时隙将可用于存储针对未决需求请求的信息的可能性。例如,在一些实施方案中,用于L1高速缓存104的控制器115监控MAB 130上分配给高速缓存104的可用时隙的充满度。如果时隙的充满度低于阈值,那么控制器115便实施相应策略,据此L1高速缓存104上所接收的预取请求会传输至L2高速缓存105。响应于传输预取请求,控制器115不会将表示预取请求的信息存储在MAB 130上的其分配时隙中的一个时隙上。因而保留更多数目的可用时隙以便用于所接收的需求请求,进而提高处理效率。
如本文所使用的,处于缓冲器上的一组时隙的充满度是指识别或以其它方式表示在所述组上存储的许多需求请求、在所述组上存储的许多预取请求或其组合的任何参数。可按照许多方式来确定所述组时隙的充满度。例如,可通过从一组时隙中的时隙总数中减去所述组的可用时隙数目来确定充满度。在一些实施方案中,充满度等于或基于所述组中存储表示预取请求的信息的时隙数目。在一些实施方案中,充满度等于或基于所述组中存储表示需求请求的信息的时隙数目与所述组中存储表示预取请求的信息的时隙数目之间的差异。在一些实施方案中,充满度等于或基于存储预取请求信息的时隙与存储需求请求信息的时隙的比率。
响应于接收所传输的预取请求,L2高速缓存105以与非传输预取请求类似的方式来处理所传输的预取请求,但并不将响应于所传输的预取请求的数据提供给L1高速缓存104。出于说明目的,响应于接收所传输的预取请求,L2高速缓存105确定存储阵列126是否存储与预取请求的存储器地址关联的数据。如果L2高速缓存105确定存储阵列126存储所述数据,那么其便不会将数据提供给L1高速缓存104,而是将它保持在存储阵列126上。如果存储阵列126并未存储与预取请求存储器地址关联的数据,那么控制器125便将表示预取请求的信息存储在MAB 130上。另外,控制器125将预取请求提供给层次结构中下一更低级别上的高速缓存。作为响应,L2高速缓存105最终从存储器层次结构145中的更低级别接收与预取请求存储器地址关联的数据。控制器125将接收的数据存储在存储阵列126上,但并不将其提供给L1高速缓存104。被预取请求锁定为目标的数据因而在存储器层次结构145中移动至更靠近处理器核心110的地方,从而在数据稍后为需求请求的主题的情况下减少延时。然而,预取数据并不特地提供给L1高速缓存104,进而在L1高速缓存104上提供更多空间用于满足需求请求。
在一些实施方案中,预取请求可继续沿着存储器层次结构145向下传输,直到其到达在MAB 130上具有大于阈值级别数目的可用时隙的高速缓存。例如,如果L2高速缓存105接收所传输的预取请求,那么控制器125便可确定其在MAB 130上是否具有大于阈值级别数目的可用时隙。如果不具有,其可将预取请求传输至L3高速缓存。存储器层次结构145中的不同高速缓存可基于不同阈值数目的可用时隙来传输预取请求。
在一些实施方案中,高速缓存104至106可基于预取请求的信任级别来传输预取请求。具体来说,每个预取请求可具有信任值,所述信任值指示在阈值量的时间内被预取请求锁定为目标的数据将由处理器核心110请求的预测可能性。响应于预取请求低于阈值的信任级别,高速缓存可将预取请求传输至存储器层次结构145中的下一更低级别高速缓存。这确保预测为不太可能被请求的预取数据不会消耗存储器层次结构145的更高级别上的空间。在一些实施方案中,高速缓存104至106可基于预取请求的信任级别与MAB 130上高速缓存的对应时隙的充满度的组合来传输预取请求。例如,高速缓存104可响应于其在MAB 130上的时隙超过50%充满的情形和低于40%的预取请求信任级别来传输预取请求,并且可响应于超过35%充满的MAB和低于60%的预取请求信任级别来传输预取请求。
图2示出根据一些实施方案的、表示预取请求的预取信息200的方框图。预取信息200包括下一级别预取(NLP)字段202、信任字段204和地址字段206。地址字段206指示被预取信息200所表示的预取请求锁定为目标的数据的存储器地址。NLP字段202指示预取请求是否将要传输至存储器层次结构145(图1)中的不同高速缓存。NLP字段由高速缓存控制器使用,以便确定预取请求是否已传输,并且因此确定是否将响应于预取请求的数据传输至存储器层次结构145中的下一更高级别高速缓存。出于说明目的,响应于接收预取请求,L2高速缓存105的控制器125(图1)确定预取请求的NLP字段202是否指示预取请求已传输。如果没有指示预取请求已传输,那么L2高速缓存105便将响应于预取请求的数据(是否从存储阵列126检索或者从存储器层次结构145中的另一高速缓存接收)提供给L1高速缓存104。如果NLP字段202指示预取请求为所传输的预取请求,那么L2高速缓存105便将响应于预取请求的数据存储在存储阵列126上,但不会响应于预取请求而将数据提供给L1高速缓存104。预取请求的NLP字段202被设置来指示请求是在响应于确定分配给L1高速缓存104的时隙超过阈值充满度的情况下,由控制器115进行的传输。
预取信息200的信任字段204指示关联预取请求的信任级别。信任字段204的值由预取器112在其发出预取请求时加以设置。预取器112基于加载/存储单元111所发出的需求存取的型式来设置信任字段204的值。出于说明目的,在一些实施方案中,预取器112响应于第一次检测特定型式,将用于所述型式的信任级别设置成初始值。预取器122每次当其又检测所述型式时,便会增加信任级别,直到最大值,并且每次当其检测所述型式的一部分但是检测并不符合所述型式的全部时,便降低信任级别。例如,预取器122可检测针对存储器地址A上的数据的需求请求(称为“需求请求A”)后面紧跟着针对存储器地址B上的数据的需求请求(称为“需求请求B”)。作为响应,预取器122将用于存取型式(称为型式A-B)的信任级别设置成初始值001。响应于检测型式A-B的另一实例,预取器122将信任级别增加至010。预取器122响应于检测型式A-B的其它实例而继续增加信任级别。然而,响应于检测需求请求A并且检测需求请求A后面并未紧跟着需求请求B,预取器122便降低信任级别。
响应于存取型式的信任级别超过阈值,预取器112会针对被型式中下一需求请求锁定为目标的数据而发出预取请求。因此,在以上的实施例中,一旦用于型式A-B的信任级别超过阈值级别,预取器122便会响应于检测需求请求A的实例而发出针对存储器地址B上的数据的预取请求。对于预取请求来说,预取器122将信任字段204设置成与存取型式关联的当前信任级别。因此,如果用于型式A-B的信任级别为011,那么预取器便会将信任字段204设置成值011。
存储器层次结构145的控制器可使用信任字段204的值来确定是否传输预取请求。出于说明目的,L1高速缓存104上的控制器115可实施相应策略,据此与小于011的信任值关联的任何预取请求都将传输至L2高速缓存105。因此,响应于接收具有值小于011的信任字段204的预取请求,控制器115设置预取信息200的NLP字段202来指示预取请求被传输,并且将预取请求提供给L2高速缓存105上的控制器125。
图3为时间线300的图,其示出根据一些实施方案的、在图1的处理器102的存储器层次结构145上进行的预取请求传输。时间线300示出一组事件以及MAB 130上分配给L1高速缓存104的一组时隙315的最终产生内容。出于图1实施例的目的,假定L1高速缓存104的控制器115实施相应策略,据此,如果所述组315的可用时隙数目小于2,那么预取请求便传输至L2高速缓存105。
在时间301上,控制器115从加载/存储单元111接收需求请求(定名为“需求1”)。作为响应,控制器115检测高速缓存未命中,并且因此将表示需求1的信息存储在MAB 130上的所述组时隙315处。在时间302上,控制器115从预取器112接收预取请求(定名为“预取1”),并且确定预取1导致高速缓存未命中。响应于高速缓存未命中,控制器115确定所述组315的时隙数目等于2,并且因此将表示预取1的信息存储在所述组315上。
在时间303上,控制器115从预取器112接收预取请求(定名为“预取2”),并且确定预取2导致高速缓存未命中。响应于高速缓存未命中,控制器115确定所述组315的时隙数目小于2。因此,控制器115通过设置用于预取2的NLP字段(图2)来指示所传输的请求,从而传输预取2,并且将预取2提供给L2高速缓存105。在时间304上,控制器115从加载/存储单元111接收需求请求(定名为“需求2”)。作为响应,控制器115检测高速缓存未命中,并且因此将表示需求2的信息存储在所述组时隙315上。因此,如果预取2尚未被传输,所述组315的最后一个时隙将由预取2填充,从而迫使加载/存储单元111推延需求2或取消预取请求预取1或预取2。因此,通过传输预取2,在组315上空间可用于需求2,从而防止推延,并且,响应于预取2的数据会在存储器层次结构中移动到更靠近处理器102的地方。
在时间305上,控制器115确定需求1和预取1已被满足,原因在于被这些请求锁定为目标的数据已存储在存储阵列116上。作为响应,控制器115从所述组时隙315移除来自需求1和预取1的信息,从而使它们的两个时隙可用于后续需求请求或预取请求。在时间306上,控制器115从预取器112接收预取请求(定名为“预取3”),并且确定预取3导致高速缓存未命中。响应于高速缓存未命中,控制器115确定所述组315的时隙数目为2,以使得在所述组315上存在可用的空间来存储表示预取3的信息。然而,控制器115确定用于预取3的信任级别低于阈值。因此,控制器115通过设置用于预取3的NLP字段来指示所传输的请求,从而传输预取3,并且将预取2提供给L2高速缓存105。控制器115因而不会用具有低信任值的预取请求来消耗所述组315上的可用时隙。因此,时隙可用于后续需求请求或预取请求,这些需求请求或预取请求被预测会更好地提高处理效率。
图4为根据一些实施方案的、基于MAB充满度而在存储器层次结构上传输预取请求的方法400的流程图。为了便于论述,参照图1的电子装置100上的例示性实施形式来描述方法400。在方框402上,L1高速缓存104处的控制器115接收预取请求。在方框404上,控制器115确定MAB 130上分配给L1高速缓存104的时隙的充满度是否超过用于L1高速缓存104的阈值。如果没有超过,所述方法流程便进行到方框406,并且控制器115将表示预取请求的信息存储在MAB130上的可用时隙处。
返回到方框404,如果控制器115确定MAB 130上分配给L1高速缓存104的时隙的充满度超过用于L1高速缓存104的阈值,所述方法流程便进行到方框408,其中控制器115确定其是否为存储器层次结构145中的最低高速缓存。如果是最低高速缓存,那么所述方法流程便移动到方框412,并且控制器向预取器122指示无法满足预取请求。返回到方框408,如果尚未到达高速缓存N,那么所述方法流程便进行到方框410,并且控制器115将预取请求传输至存储器层次结构145中的下一更低级别高速缓存—在这种情况下,便是L2高速缓存105。所述方法流程返回到方框404,并且存储器层次结构中的下一更低级别高速缓存确定其在MAB 130上的分配时隙的充满度是否超过对应阈值。
因此,在方法400下,预取请求继续传输至更低级别高速缓存,直到其到达在MAB130上所分配的时隙的充满度不超过对应阈值的高速缓存,或者直到方法400在方框412上指示无法满足预取请求。如果预取请求到达在MAB 130上所分配的时隙的充满度不超过对应阈值的高速缓存,那么方法400的流程将到达方框406处,并且表示预取请求的信息会存储在MAB 130中分配给高速缓存的时隙上。另外,高速缓存的控制器确保被预取请求锁定为目标的数据会存储在其对应存储阵列上,但并不提供给存储器层次结构145中的下一更高级别高速缓存。
图5为根据一些实施方案的、基于预取信任级别而在图1的处理器的存储器层次结构上传输预取请求的方法500的流程图。为了便于论述,参照图1的电子装置100上的例示性实施形式来描述方法500。在方框502上,L1高速缓存104上的控制器115接收预取请求。在方框504上,控制器115确定预取请求的信任级别是否低于针对L1高速缓存104的阈值。如果不低于所述阈值,那么所述方法流程便进行到方框506,并且控制器115将表示预取请求的信息存储在MAB 130上的可用时隙处。
返回到方框504,如果控制器115确定预取请求的信任级别高于针对L1高速缓存104的阈值,那么所述方法流程便进行到方框508,其中控制器115确定其是否为存储器层次结构145中的最低高速缓存。如果是最低高速缓存,那么所述方法流程便移动到方框512,并且控制器向预取器122指示无法满足预取请求。返回到方框508,如果未到达高速缓存N,所述方法流程便进行到方框510,并且控制器115将预取请求传输至存储器层次结构145中的下一更低级别高速缓存—在这种情况下,便是L2高速缓存105。所述方法流程返回到方框504,并且存储器层次结构中的下一更低级别高速缓存确定预取请求的信任级别是否低于对应阈值。
因此,在方法500下,预取请求继续传输至更低级别高速缓存,直到其到达预取请求的信任级别超过对应阈值的高速缓存,或者直到方法500在方框512上指示无法满足预取请求。如果预取请求到达信任级别不超过对应阈值的高速缓存,那么方法500的流程便将到达方框506处,并且表示预取请求的信息会存储在MAB 130中分配给高速缓存的时隙上。另外,高速缓存的控制器确保被预取请求锁定为目标的数据会存储在其对应存储阵列上,但并不提供给存储器层次结构145中的下一更高级别高速缓存。将了解的是,在图4和图5中示出的方法可进行组合,以使得基于MAB 130上高速缓存的分配时隙的充满度来传输一些预取请求,并且基于相应预取信任级别来传输其它预取请求。
在一些实施方案中,上文所述功能中的至少一些功能可通过执行切实地存储在计算机可读介质上的一个或多个软件程序的一个或多个处理器来实施,并且据此所述一个或多个软件程序包括相应指令,所述指令在执行时会操纵一个或多个处理器来执行上文所述的处理系统的一个或多个功能。此外,在一些实施方案中,利用一个或多个集成电路(IC)装置(也称为集成电路芯片)来实施上文所述的串行数据接口。可在这些IC装置的设计和制造中使用电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具。这些设计工具通常呈现为一个或多个软件程序。所述一个或多个软件程序包括可由计算机系统执行的代码,以便操纵计算机系统来操作表示一个或多个IC装置的电路的代码,从而执行相应过程的至少一部分来设计或改动加工系统,以便制造电路。这个代码可包括指令、数据或指令和数据的结合。表示设计工具或制造工具的软件指令通常存储在可由计算系统访问的计算机可读存储介质中。同样地,表示IC装置设计和制造的一个或多个阶段的代码可存储在同一计算机可读存储介质或不同计算机可读存储介质中,以及从同一计算机可读存储介质或不同计算机可读存储介质进行存取。
计算机可读存储介质可包括使用期间可由计算机系统存取的任何存储介质或存储介质的组合,以便将指令和/或数据提供给计算机系统。此类存储介质可包括但不限于光学介质(例如,压缩光盘(CD))、数字多功能光盘((DVD)或蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存)或基于微电子机械系统(MEMS)的存储介质。计算机可读介质可嵌入在计算系统中(例如,系统RAM或ROM)、固定地附接至计算系统(例如,磁性硬盘驱动器)、可移除地附接至计算系统(例如,光盘或基于通用串行总线(USB)的闪存)或经由有线或无线网络而连接至计算机系统(例如,网络可存取储存器(NAS))。
图6为流程图,其示出用以设计和制造实施根据一些实施方案的一个或多个方面的IC装置的例示性方法600。如上文所指出的,针对下述过程中的每个过程所生成的代码会存储在计算机可读存储介质中或者以其它方式嵌入在计算机可读存储介质中,以便由对应的设计工具或制造工具来存取和使用。
在方框602上,生成用于IC装置的功能规格。功能规格(通常称为微架构规格(MAS))可由各种编程语言或建模语言中的任何语言来表示,包括C、C++、SystemC、Simulink或MATLAB。
在方框604上,使用功能规格来生成表示IC装置硬件的硬件描述代码。在一些实施方案中,使用至少一个硬件描述语言(HDL)来表示硬件描述代码,所述硬件描述语言(HDL)包括用于IC装置电路的形式描述和设计的各种计算机语言、规格语言或建模语言中的任何语言。生成的HDL编码通常表示IC装置电路的操作、所述电路的设计和组织,以及用以通过模拟来验证IC装置的正确操作的测试。HDL的示例包括模拟HDL(AHDL)、Verilog HDL、SystemVerilog HDL以及VHDL。对于实施同步数字电路的IC装置来说,硬件描述符代码可包括寄存器传输级(RTL)代码,以便提供同步数字电路的操作的抽象表现形式。对于其它类型的电路,硬件描述符代码可包括行为级代码,以便提供电路的操作的抽象表现形式。由硬件描述代码所表示的HDL模型通常经受一轮或多轮的模拟和调试,以便通过设计验证。
在验证硬件描述代码所表示的设计之后,在方框606上使用合成工具来合成硬件描述代码,以便生成表示或界定IC装置电路的初始物理实施形式的代码。在一些实施方案中,合成工具生成包括电路装置实例(例如,门极、晶体管、电阻器、电容器、电感器、二极管等)和电路装置实例之间的网络或连接的一个或多个网络列表。或者,网络列表的全部或一部分可手动生成,而不使用合成工具。正如与硬件描述代码一样,在最终一组的一个或多个网络列表生成之前,网络列表可经受一个或多个测试和验证过程。
或者,可使用原理图编辑工具来编制IC装置电路的原理图,并且随后可使用原理图捕获工具来捕获最终产生的电路图以及生成表示电路图的部件和连接性的一个或多个网络列表(存储在计算机可读介质上)。所捕获的电路图随后可经受一轮或多轮的模拟而进行测试和验证。
在方框608上,一个或多个EDA工具使用方框906上所产生的网络列表,以便生成表示IC装置电路的物理布局的代码。这个过程可包括(例如)放置工具使用网络列表来确定或固定IC装置电路的每个元件的位置。此外,布线工具建立在放置过程的基础上,以便添加或布放根据网络列表来连接电路元件所需要的线路。最终产生的代码表示IC装置的三维模型。所述代码可以用数据库文件格式(例如像图形数据库系统II(GDSII)格式)来表示。处于这个格式下的数据通常表示几何形状、文本标签或关于呈层次形式的电路布局的其它信息。
在方框610上,将物理布局代码(例如,GDSII代码)提供给生产设施,所述生产设施使用物理布局代码来配置或者以其它方式改动生产设施的制造工具(例如,通过掩膜作业),从而制造IC装置。也就是说,物理布局代码可被编程至一个或多个计算机系统中,所述一个或多个计算机系统随后可整个或部分地控制生产设施的工具的运行或其中所执行的生产操作。
在一些实施方案中,上文所述技术的某些方面可通过运行软件的处理系统的一个或多个处理器来实施。所述软件包括一组或多组可执行指令,当由所述一个或多个处理器执行时,所述一组或多组可执行指令操纵所述一个或多个处理器来执行上文所述技术的一个或多个方面。软件存储在或者以其它方式切实地嵌入在可由处理系统访问的计算机可读存储介质上,并且可包括指令执行期间所利用的指令和某些数据,以便执行对应方面。
如本文所公开的,在一些实施方案中,一种方法包括:将指示第一高速缓存上高速缓存未命中的地址存储在缓冲器上的第一组时隙处;并且响应于确定第一组时隙的充满度超过第一阈值,将定向到第一高速缓存的第一预取请求传输至第二高速缓存。在一些实施形式中,确定第一组时隙的充满度,包括确定第一组时隙上存储与未决存储器存取请求关联的地址的时隙数目。在一些实施形式中,确定第一组时隙的充满度,包括确定第一组时隙中存储预取请求的时隙数目。在一些实施形式中,确定第一组时隙的充满度,包括确定第一组时隙中存储预取请求的时隙数目与第一组时隙中存储需求请求的时隙数目的比率。在一些实施形式中,所述方法包括响应于第二高速缓存上的高速缓存未命中而将地址存储在缓冲器上的第二组时隙处。在一些实施形式中,将第一预取请求传输至第二高速缓存,包括将与第一预取请求关联的地址存储在第二组时隙上。在一些实施形式中,所述方法包括响应于确定第二组时隙的充满度超过第二阈值,将第一预取请求传输至第三高速缓存。在一些实施形式中,第一阈值不同于第二阈值。在一些实施形式中,所述方法包括响应于确定与定向到第一高速缓存的第二预取请求关联的信任级别低于第二阈值,将第二预取请求从第一高速缓存传输至第二高速缓存。
在一些实施方案中,一种方法包括响应于确定与定向到第一高速缓存的第一预取请求关联的第一信任级别低于第一阈值,将第一预取请求从第一高速缓存传输至第二高速缓存。在一些实施形式中,所述方法包括响应确定第一信任级别低于第二阈值,将第一预取请求从第二高速缓存传输至第三高速缓存。在一些实施形式中,将第一预取请求传输至第二高速缓存包括,响应于第一高速缓存上的高速缓存未命中并且响应于第二高速缓存上的高速缓存未命中,将第一预取请求存储在存储地址的缓冲器的第一组时隙上,其中所述第一组时隙分配给第二组高速缓存。在一些实施形式中,所述方法包括响应于确定缓冲器的第二组时隙的可用时隙数目低于第二阈值,将定向到第一高速缓存的第二预取请求传输至第二高速缓存。
在一些实施方案中,一种处理器包括:处理器核心,其用以发出存取请求;第一高速缓存;第二高速缓存;缓冲器,其用以基于针对第一高速缓存的高速缓存未命中,将地址存储在分配给第一高速缓存的第一组时隙上,所述高速缓存未命中是由存取请求导致的;预取器,其用以向第一高速缓存发出预取请求;以及,控制器,其用以响应于确定缓冲器上的第一组时隙的充满度高于第一阈值,将第一预取请求从第一高速缓存传输至第二高速缓存。在一些实施形式中,控制器通过确定第一组时隙的不可用时隙数目来确定第一组时隙的充满度。在一些实施形式中,控制器通过确定第一组时隙中存储预取请求的时隙数目来确定第一组时隙的充满度。在一些实施形式中,控制器通过确定第一组时隙中存储预取请求的时隙数目与第一组时隙中存储需求请求的时隙数目的比率,确定第一组时隙的充满度。在一些实施形式中,缓冲器将会响应于确定第二高速缓存上的高速缓存未命中而将地址存储在第二组时隙上。在一些实施形式中,控制器会通过将第一预取请求存储在第二组时隙上而将第一预取请求传输至第二高速缓存。在一些实施形式中,所述处理器包括第三高速缓存;并且,控制器会响应于确定第二组时隙的充满度超过第二阈值,将第一预取请求传输至第三高速缓存。在一些实施形式中,第一阈值不同于第二阈值。在一些实施形式中,预取器会确定第二预取请求的信任级别;并且,控制器会响应于确定信任级别低于第二阈值,将第二预取请求从第一高速缓存传输至第二高速缓存。
在一些实施方案中,一种计算机可读介质存储相应代码,以便改动至少一个计算机系统来执行相应过程的一部分,从而制造处理器的至一少部分,所述处理器包括:处理器核心,其用以发出存取请求;第一高速缓存;第二高速缓存;缓冲器,其用以基于响应存取请求的、对第一高速缓存的高速缓存未命中,将地址存储在分配给第一高速缓存的第一组时隙上;预取器,其用以向第一高速缓存发出预取请求;以及控制器,其用以响应于确定缓冲器上的第一组时隙的充满度高于第一阈值,将第一预取请求从第一高速缓存传输至第二高速缓存。在一些实施形式中,预取器会确定第二预取请求的信任级别;并且,控制器会响应于确定信任级别低于第二阈值,将第二预取请求从第一高速缓存传输至第二高速缓存。在一些实施形式中,控制器通过确定第一组时隙中存储预取请求的时隙数目与第一组时隙中存储需求请求的时隙数目的比率,确定第一组时隙的充满度。
应注意,并非上文在一般说明中描述的所有活动或元件都是需要的,具体活动或装置的一部分可能是不需要的,并且一个或多个其它活动可加以执行,或者,除所描述的那些元件之外,还可包括其它元件。更进一步来说,活动列出的顺序并非必须是它们所执行的顺序。
另外,已经参考具体实施方案描述了相应概念。然而,本领域中的普通技术人员会了解,可在不背离所附权利要求书中所阐述的本公开范围的情况下,做出各种修改和改变。因此,本说明书和附图将视为说明性而非限制性的,并且所述此类修改意在包括于本公开的范围内。
上文已经参照具体实施方案描述了相应益处、其它优点以及问题的解决方案。然而,所述益处、优点、问题解决方案,以及可使得任何益处、优点或问题解决方案出现或变得更为显著的任何特征,都不应解释为是任何或所有权利要求的关键、必需或必要特征。
Claims (15)
1.一种处理器上的预取的方法,其包括:
将指示第一高速缓存上高速缓存未命中的地址存储在缓冲器上的第一组时隙处;以及
响应于确定所述第一组时隙的充满度超过第一阈值,将定向到所述第一高速缓存的第一预取请求传输至第二高速缓存。
2.如权利要求1所述的方法,其中,确定所述第一组时隙的所述充满度包括确定所述第一组时隙上存储与未决存储器存取请求关联的地址的时隙数目。
3.如权利要求1所述的方法,其中,确定所述第一组时隙的所述充满度包括确定所述第一组时隙中存储预取请求的时隙数目。
4.如权利要求1所述的方法,其中,确定所述第一组时隙的所述充满度包括确定所述第一组时隙中存储预取请求的时隙数目与所述第一组时隙中存储需求请求的时隙数目的比率。
5.如权利要求1所述的方法,其还包括:
响应于所述第二高速缓存上的高速缓存未命中,将地址存储在所述缓冲器上的第二组时隙处。
6.如权利要求5所述的方法,其中,将所述第一预取请求传输至所述第二高速缓存包括将与所述第一预取请求关联的地址存储在所述第二组时隙上。
7.如权利要求5所述的方法,其还包括:
响应于确定所述第二组时隙的充满度超过第二阈值,将所述第一预取请求传输至第三高速缓存。
8.如权利要求7所述的方法,其中,所述第一阈值不同于所述第二阈值。
9.如权利要求1所述的方法,其还包括:
响应于确定与定向到所述第一高速缓存的第二预取请求关联的信任级别低于第二阈值,将所述第二预取请求从所述第一高速缓存传输至所述第二高速缓存。
10.一种处理器,其包括:
处理器核心,其用以发出存取请求;
第一高速缓存;
第二高速缓存;
缓冲器,其用以基于对所述第一高速缓存的高速缓存未命中,将地址存储在分配给所述第一高速缓存的第一组时隙上,所述高速缓存未命中由存取请求导致;
预取器,其用以向所述第一高速缓存发出预取请求;以及
控制器,其用以响应于确定所述缓冲器上的所述第一组时隙的充满度高于第一阈值,将第一预取请求从所述第一高速缓存传输至所述第二高速缓存。
11.如权利要求10所述的处理器,其中,所述控制器通过确定所述第一组时隙的不可用时隙数目,确定所述第一组时隙的所述充满度。
12.如权利要求10所述的处理器,其中,所述控制器通过确定所述第一组时隙中存储预取请求的时隙数目,确定所述第一组时隙的所述充满度。
13.如权利要求10所述的处理器,其中,所述控制器通过确定所述第一组时隙中存储预取请求的时隙数目与所述第一组时隙中存储需求请求的时隙数目的比率,确定所述第一组时隙的所述充满度。
14.如权利要求10所述的处理器,其中,所述缓冲器响应于确定所述第二高速缓存上的高速缓存未命中,将地址存储在第二组时隙上。
15.如权利要求14所述的处理器,其中,所述控制器通过将所述第一预取请求存储在所述第二组时隙上,将所述第一预取请求传输至所述第二高速缓存。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/669,502 US8909866B2 (en) | 2012-11-06 | 2012-11-06 | Prefetching to a cache based on buffer fullness |
US13/669,502 | 2012-11-06 | ||
PCT/US2013/068433 WO2014074489A1 (en) | 2012-11-06 | 2013-11-05 | Prefetching to a cache based on buffer fullness |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104769560A CN104769560A (zh) | 2015-07-08 |
CN104769560B true CN104769560B (zh) | 2017-04-12 |
Family
ID=49627073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380058101.8A Active CN104769560B (zh) | 2012-11-06 | 2013-11-05 | 基于缓冲器充满度而向高速缓存进行预取 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8909866B2 (zh) |
EP (1) | EP2917840B1 (zh) |
JP (1) | JP6105742B2 (zh) |
KR (1) | KR101973731B1 (zh) |
CN (1) | CN104769560B (zh) |
IN (1) | IN2015DN03878A (zh) |
WO (1) | WO2014074489A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9661074B2 (en) * | 2013-08-29 | 2017-05-23 | International Business Machines Corporations | Updating de-duplication tracking data for a dispersed storage network |
US9811467B2 (en) * | 2014-02-03 | 2017-11-07 | Cavium, Inc. | Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor |
US9959506B1 (en) * | 2014-06-17 | 2018-05-01 | Amazon Technologies, Inc. | Predictive content retrieval using device movements |
US9558127B2 (en) * | 2014-09-09 | 2017-01-31 | Intel Corporation | Instruction and logic for a cache prefetcher and dataless fill buffer |
US9934149B2 (en) | 2016-03-31 | 2018-04-03 | Qualcomm Incorporated | Prefetch mechanism for servicing demand miss |
US10509732B2 (en) * | 2016-04-27 | 2019-12-17 | Advanced Micro Devices, Inc. | Selecting cache aging policy for prefetches based on cache test regions |
US10073785B2 (en) * | 2016-06-13 | 2018-09-11 | Advanced Micro Devices, Inc. | Up/down prefetcher |
US10353819B2 (en) * | 2016-06-24 | 2019-07-16 | Qualcomm Incorporated | Next line prefetchers employing initial high prefetch prediction confidence states for throttling next line prefetches in a processor-based system |
CN106487711B (zh) * | 2016-10-13 | 2020-02-21 | 福建星海通信科技有限公司 | 一种缓存动态分配的方法以及系统 |
CN108446240A (zh) * | 2016-12-12 | 2018-08-24 | 中国航空工业集团公司西安航空计算技术研究所 | 基于缓存单元id的存储管理电路 |
US10776043B2 (en) * | 2018-08-31 | 2020-09-15 | Arm Limited | Storage circuitry request tracking |
EP3866016A4 (en) * | 2018-11-20 | 2021-11-10 | Huawei Technologies Co., Ltd. | METHOD AND APPARATUS FOR DELETING INDEX ENTRY IN MEMORY |
US12111766B2 (en) * | 2019-10-02 | 2024-10-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Entities, system and methods performed therein for handling memory operations of an application in a computer environment |
US20210182214A1 (en) * | 2019-12-17 | 2021-06-17 | Advanced Micro Devices, Inc. | Prefetch level demotion |
JP2022107377A (ja) * | 2021-01-08 | 2022-07-21 | 富士通株式会社 | 情報処理装置、コンパイル方法、及びコンパイルプログラム |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1226024A (zh) * | 1998-02-09 | 1999-08-18 | 国际商业机器公司 | 对指令缓冲器进行装入的方法和设备 |
CN1312701A (zh) * | 1998-07-23 | 2001-09-12 | 约翰·H·萨林格 | 波动产生机构 |
CN1797371A (zh) * | 2004-12-27 | 2006-07-05 | 英特尔公司 | 用于基于填充缓冲器命中来预取的装置和方法 |
CN1820257A (zh) * | 2002-11-26 | 2006-08-16 | 先进微装置公司 | 包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器 |
CN101110061A (zh) * | 2006-07-20 | 2008-01-23 | 国际商业机器公司 | 使用多个数据结构管理高速缓存中的数据的方法和系统 |
CN101127008A (zh) * | 2006-08-18 | 2008-02-20 | 国际商业机器公司 | 用于预测性选择预取操作的范围的数据处理系统和方法 |
CN101634970A (zh) * | 2009-08-26 | 2010-01-27 | 成都市华为赛门铁克科技有限公司 | 预取长度调整方法、装置和存储系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212603B1 (en) | 1998-04-09 | 2001-04-03 | Institute For The Development Of Emerging Architectures, L.L.C. | Processor with apparatus for tracking prefetch and demand fetch instructions serviced by cache memory |
JP3512678B2 (ja) * | 1999-05-27 | 2004-03-31 | 富士通株式会社 | キャッシュメモリ制御装置および計算機システム |
US6571318B1 (en) | 2001-03-02 | 2003-05-27 | Advanced Micro Devices, Inc. | Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism |
US7840761B2 (en) * | 2005-04-01 | 2010-11-23 | Stmicroelectronics, Inc. | Apparatus and method for supporting execution of prefetch threads |
WO2007099598A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プリフェッチ機能を有するプロセッサ |
US8230177B2 (en) * | 2009-05-28 | 2012-07-24 | Oracle America, Inc. | Store prefetching via store queue lookahead |
JP5444889B2 (ja) * | 2009-06-30 | 2014-03-19 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8856451B2 (en) | 2010-08-26 | 2014-10-07 | Advanced Micro Devices, Inc. | Method and apparatus for adapting aggressiveness of a pre-fetcher |
US8880847B2 (en) * | 2010-09-28 | 2014-11-04 | Texas Instruments Incorporated | Multistream prefetch buffer |
-
2012
- 2012-11-06 US US13/669,502 patent/US8909866B2/en active Active
-
2013
- 2013-11-05 JP JP2015541846A patent/JP6105742B2/ja active Active
- 2013-11-05 EP EP13795065.5A patent/EP2917840B1/en active Active
- 2013-11-05 KR KR1020157014676A patent/KR101973731B1/ko active IP Right Grant
- 2013-11-05 IN IN3878DEN2015 patent/IN2015DN03878A/en unknown
- 2013-11-05 WO PCT/US2013/068433 patent/WO2014074489A1/en active Application Filing
- 2013-11-05 CN CN201380058101.8A patent/CN104769560B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1226024A (zh) * | 1998-02-09 | 1999-08-18 | 国际商业机器公司 | 对指令缓冲器进行装入的方法和设备 |
CN1312701A (zh) * | 1998-07-23 | 2001-09-12 | 约翰·H·萨林格 | 波动产生机构 |
CN1820257A (zh) * | 2002-11-26 | 2006-08-16 | 先进微装置公司 | 包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器 |
CN1797371A (zh) * | 2004-12-27 | 2006-07-05 | 英特尔公司 | 用于基于填充缓冲器命中来预取的装置和方法 |
CN101110061A (zh) * | 2006-07-20 | 2008-01-23 | 国际商业机器公司 | 使用多个数据结构管理高速缓存中的数据的方法和系统 |
CN101127008A (zh) * | 2006-08-18 | 2008-02-20 | 国际商业机器公司 | 用于预测性选择预取操作的范围的数据处理系统和方法 |
CN101634970A (zh) * | 2009-08-26 | 2010-01-27 | 成都市华为赛门铁克科技有限公司 | 预取长度调整方法、装置和存储系统 |
Also Published As
Publication number | Publication date |
---|---|
KR101973731B1 (ko) | 2019-04-29 |
US20140129772A1 (en) | 2014-05-08 |
EP2917840B1 (en) | 2018-12-26 |
CN104769560A (zh) | 2015-07-08 |
US8909866B2 (en) | 2014-12-09 |
EP2917840A1 (en) | 2015-09-16 |
IN2015DN03878A (zh) | 2015-10-02 |
JP2016509272A (ja) | 2016-03-24 |
JP6105742B2 (ja) | 2017-03-29 |
WO2014074489A1 (en) | 2014-05-15 |
KR20150082457A (ko) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104769560B (zh) | 基于缓冲器充满度而向高速缓存进行预取 | |
US9304919B2 (en) | Detecting multiple stride sequences for prefetching | |
CN103324585B (zh) | 分级缓存的处理器中的协作预取处理 | |
CN104583981B (zh) | 数据高速缓冲存储器预取提示 | |
US9223705B2 (en) | Cache access arbitration for prefetch requests | |
US10671535B2 (en) | Stride prefetching across memory pages | |
US20140108740A1 (en) | Prefetch throttling | |
WO2016016605A1 (en) | A data processing apparatus, and a method of handling address translation within a data processing apparatus | |
US9256544B2 (en) | Way preparation for accessing a cache | |
TW202020746A (zh) | 多任務遞迴神經網路 | |
US9652399B2 (en) | Expedited servicing of store operations in a data processing system | |
US9697146B2 (en) | Resource management for northbridge using tokens | |
KR20170016365A (ko) | 레이턴시에 기반된 메모리 제어기 전력 관리 | |
US8566532B2 (en) | Management of multipurpose command queues in a multilevel cache hierarchy | |
CN101071403A (zh) | 动态更新自适应的空闲计时器 | |
CN108509723A (zh) | 基于人工神经网络的LRU Cache预取机制性能收益评估方法 | |
CN109196487A (zh) | 向上/向下预取器 | |
US10719441B1 (en) | Using predictions of outcomes of cache memory access requests for controlling whether a request generator sends memory access requests to a memory in parallel with cache memory access requests | |
US9632943B2 (en) | Expedited servicing of store operations in a data processing system | |
US10691605B2 (en) | Expedited servicing of store operations in a data processing system | |
CN103221930B (zh) | 用于减少由积极预取所致的处理器缓存污染的方法及装置 | |
US20160378667A1 (en) | Independent between-module prefetching for processor memory modules | |
CN117940908A (zh) | 动态分配高速缓存存储器作为ram | |
US20140164708A1 (en) | Spill data management | |
US20160117247A1 (en) | Coherency probe response accumulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |