CN109074314A - 基于存储器请求大小的预测减少存储器访问带宽 - Google Patents
基于存储器请求大小的预测减少存储器访问带宽 Download PDFInfo
- Publication number
- CN109074314A CN109074314A CN201780020648.7A CN201780020648A CN109074314A CN 109074314 A CN109074314 A CN 109074314A CN 201780020648 A CN201780020648 A CN 201780020648A CN 109074314 A CN109074314 A CN 109074314A
- Authority
- CN
- China
- Prior art keywords
- cache line
- memory
- cache
- size
- count
- 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
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000003247 decreasing effect Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 5
- 238000005259 measurement Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 2
- 238000002372 labelling Methods 0.000 claims 1
- 229920006395 saturated elastomer Polymers 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 3
- 238000000151 deposition Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000013589 supplement Substances 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
-
- 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
- G06F2212/1021—Hit rate 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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
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
用于管理存储器访问带宽的系统和方法包含空间局部性预测器。所述空间局部性预测器包含具有与存储器的存储器区域相关联的预测计数器的存储器区域表。当高速缓存行从高速缓存中逐出时,使用由处理器访问的所述高速缓存行的大小来更新所述预测计数器。取决于所述预测计数器的值,针对相应的存储器区域预测所述处理器可能使用的高速缓存行的大小。相应地,如果预测可能使用的高速缓存行的大小将小于全高速缓存行的大小,则可以减少所述处理器与所述存储器之间的所述存储器访问带宽以提取比所述全高速缓存行更小的数据。
Description
相关申请的交叉引用
本专利申请要求于2016年4月8日提交的标题为“基于存储器请求大小的预测减少存储器访问带宽(REDUCING MEMORY ACCESS BANDWIDTH BASED ON PREDICTION OF MEMORYREQUEST SIZE)”的第62/320,381号临时专利申请的权益,所述临时专利申请未决并转让给本受让人,并在此明确地以全文引用的方式并入本文中。
技术领域
所公开的方面涉及提高处理系统中的资源利用率。更具体地,示例性方面涉及通过预测可能对存储器做出的请求的大小并基于预测动态地减少存储器访问带宽来减少浪费的带宽消耗。
背景技术
处理系统可以包含备份存储位置,例如主存储器。对于具有大存储容量的主存储器实施方案,例如,利用动态随机存取存储器(DRAM)技术的双数据速率(DDR)实施方案,主存储器(也简称为“DRAM”)可以在芯片外实现,例如,集成在存储器芯片上,所述存储器芯片不同于在其上集成了访问DRAM的一或多个处理器的处理器芯片。因此,在此类实施方案中的DRAM访问可以涉及在存储器芯片与处理器芯片之间传输数据。在面积和功耗方面,跨多个芯片运行互连以实现DRAM访问是昂贵的,因此DRAM访问带宽往往是供应短缺的资源。然而,虽然例如由于更快的处理速率和处理芯片上集成的处理核心数量的增加导致对DRAM访问带宽的需求持续上升,但DRAM访问带宽本身并未看到以同样的速率增长。
因此,虽然可以理解迫切需要有效利用可用的DRAM访问带宽,但是传统的处理系统实施方案在这方面可能是浪费的。在本领域中应理解,在性能和功率方面,虽然一方面,从DRAM访问一个128字节数据块的单个请求比各自访问64字节的两个请求更便宜,但另一方面,针对128字节的单个请求比针对64字节的单个请求更昂贵。因此,通常,由于对较小数据块的请求可能更昂贵,因此传统处理系统可能将所有数据请求设计为指向较大数据块,即使对于某些事务只要较小的数据块就足够。例如,一些方法尝试对整个高速缓存行(例如,128字节)的数据进行单个DRAM请求,即使在可能不需要整个128字节数据但仍可能已在实现总是提取128字节的一般策略的过程中提取的情况下也是如此。在这种情况下,如果事务实际上只需要64字节,则剩余的64字节将被浪费地提取,因而不必要地使DRAM访问带宽变得紧张。
因此,本领域需要减少存储器访问带宽的技术,包含避免传统实施方案的上述缺点的技术。
发明内容
涉及用于管理存储器访问带宽的系统和方法的本发明的示例性方面包含空间局部性预测器。所述空间局部性预测器包含具有与存储器的存储器区域相关联的预测计数器的存储器区域表。当高速缓存行从高速缓存中逐出时,使用由处理器访问的高速缓存行的大小来更新预测计数器。取决于预测计数器的值,针对相应的存储器区域预测处理器可能使用的高速缓存行的大小。相应地,如果预测可能使用的高速缓存行的大小将小于全高速缓存行的大小,则可以减少存储器访问带宽以提取比全高速缓存行更小的数据。
例如,示例性方面涉及一种管理存储器访问带宽的方法。所述方法包括确定存储在由处理器访问的第一高速缓存中的第一高速缓存行的已使用部分的大小。对于包括第一高速缓存行的存储器中的第一存储器区域,基于已使用部分的大小更新用于对要从第一存储器区域提取的高速缓存行的大小进行预测的预测计数器,并且将处理器与存储器之间的存储器访问带宽调整为对应于待提取的高速缓存行的大小。
另一示例性方面涉及一种包括被配置成访问第一高速缓存和存储器的处理器的设备。所述设备包含:包括预测计数器的预测器,所述预测计数器被配置成基于存储在第一高速缓存中的第一高速缓存行的已使用部分的大小预测待从存储器的第一存储器区域提取的高速缓存行的大小;以及存储器控制器,所述存储器控制器被配置成将处理器与存储器之间的存储器访问带宽调整为对应于待提取的高速缓存行的大小。
又一示例性方面涉及一种设备,其包括用于确定存储在由处理器访问的第一高速缓存中的第一高速缓存行的已使用部分的大小的装置,对于包括第一高速缓存行的存储器中的第一存储器区域,用于基于已使用部分的大小更新对要从第一存储器区域提取的高速缓存行的大小的预测的装置;以及用于将处理器与存储器之间的存储器访问带宽调整为对应于待提取的高速缓存行的大小的装置。
另一示例性方面涉及一种非暂时性计算机可读存储媒体,其包括代码,所述代码当由计算机执行时使所述计算机执行用于管理存储器访问带宽的操作,所述非暂时性计算机可读存储媒体包括:用于确定存储在由处理器访问的第一高速缓存中的第一高速缓存行的已使用部分的大小的代码,对于包括第一高速缓存行的存储器中的第一存储器区域,用于基于已使用部分的大小更新用于对要从第一存储器区域提取的高速缓存行的大小进行预测的预测计数器的代码;以及用于将处理器与存储器之间的存储器访问带宽调整为对应于待提取的高速缓存行的大小的代码。
附图说明
呈现附图以辅助描述本发明的方面,且仅仅是为了说明所述方面而非限制所述方面而提供附图。
图1描绘根据本公开的各方面配置的处理器系统的框图。
图2示出根据本公开的各方面配置成用于高速缓存分配管理的存储器区域表。
图3描绘根据本公开的各方面的用于减少DRAM访问带宽的示例性方法。
图4描绘可以在其中有利地采用本公开的方面的示例性计算装置。
具体实施方式
在以下涉及本发明的特定方面的描述和相关图式中公开本发明的方面。可在不脱离本发明的范围的情况下设计替代方面。另外,将不会详细描述或将省略本发明的众所周知的元件以免混淆本发明的相关细节。
词语“示例性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示例性”的任何方面不必解释为比其它方面优选或有利。同样,术语“本发明的方面”并不要求本发明的所有方面都包含所论述的特征、优点或操作模式。
本文中所使用的术语仅是出于描述特定方面的目的,且并不意图限制本发明的方面。如本文中所使用,除非上下文另外明确指示,否则单数形式“一”和“所述”既定还包含复数形式。将进一步理解,术语“包括”和/或“包含”在本文中使用时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一或多种其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
另外,就待由(例如)计算装置的元件执行的动作序列来说描述许多方面。将认识到,本文中描述的各种动作可由特定电路(例如,专用集成电路(ASIC))、由正由一或多个处理器执行的程序指令或由所述两个的组合来执行。另外,本文中所描述的这些动作序列可被视为全部在任何形式的计算机可读存储媒体内体现,在所述计算机可读存储媒体中存储有对应的计算机指令集,所述计算机指令在执行时将致使相关联的处理器执行本文中所描述的功能性。因此,本发明的各种方面可以数个不同形式来体现,预期所有形式属于所主张的主题的范围内。另外,对于本文所描述的方面中的每一者,任何此类方面的对应形式可在本文中描述为(例如)“经配置以”执行所描述动作的“逻辑”。
示例性方面涉及包括处理器芯片或片上系统(SoC)的处理系统和包括DRAM的存储器系统,例如,所述存储器系统可以集成在单独的芯片上(但是这仅是示例性的而不是对存储器系统在芯片外或在与SoC或处理器芯片分开的芯片上的要求)。调整处理器子系统与存储器系统之间的接口上的存储器访问带宽,例如根据本文中描述的示例性技术减少。虽然术语“DRAM”与存储器系统或主存储器可互换地使用,但应理解,示例性方面不限于例如DRAM的任何特定存储器技术,而是适用于任何存储器技术。
在示例性方面,可能的数据使用量可以基于最后级高速缓存与直接更高级高速缓存或处理元件之间的接口,例如,3级(L3)高速缓存与L3高速缓存中未命中的2级(L2)高速缓存之间的接口通过访问DRAM来服务。例如,预测器用于预测L2高速缓存是否可能使用从DRAM带入L3高速缓存的全高速缓存行,或L2高速缓存是否将仅使用高速缓存行的一部分,例如半高速缓存行。例如,如果预测L2高速缓存将仅使用高速缓存行的一半,则L3高速缓存可以请求仅从DRAM提取高速缓存行的一半。例如DRAM控制器等存储器控制器可以仅转发对高速缓存行的一半的请求,从而将DRAM访问带宽减少一半以提取高速缓存行的一半。
在另一方面,带宽争用检测器(BCD)经配置以识别上述基于预测器减少带宽的益处可能超过预测器对误预测的可能惩罚的情况。BCD允许相应地灵活启用或禁用带宽减少技术的示例性利用。
参考图1,示出了根据示例性方面配置的处理系统100。代表性地示出处理系统100包含多个芯片,例如处理器芯片150和存储器芯片160。代表性地示出为处理器102a-b的一或多个处理器以及L1高速缓存104a-b和L2高速缓存106a-b等本地高速缓存、非本地/共享L3高速缓存108和存储器控制器110示出为示例性集成在处理器芯片150上,并且存储器162(例如,DRAM或DDR)示出为集成在存储器芯片160上。接口155用于在处理器芯片150与存储器芯片160之间进行请求,并且在本公开的各方面,接口155的带宽可以被称为DRAM访问带宽。虽然此图示和相关描述提供了例如存在两个不同的芯片的方面,例如处理器芯片150和存储器芯片160,但应理解,并非要求如此。即使当存储器162不在芯片外时,例如,当存储器162与处理器芯片150集成在同一芯片上(例如,如图4所示),但是期望减少接口155的访问带宽时,示例性方面同样适用。
在处理器芯片150中,所示高速缓存的一或多个(例如,子集)可以被组织为“扇区高速缓存”。在扇区高速缓存中,已使用的高速缓存行的部分的数据大小可以变化,例如,一些高速缓存的数据可占用高速缓存行的一半(在本文中称为“半高速缓存行大小数据”),而一些高速缓存的数据可占用完整的高速缓存行(在本文中称为“全高速缓存行大小数据”)。例如,如果L3高速缓存108被组织为扇区高速缓存,则L3高速缓存108可以包含全高速缓存行大小(例如,128字节)的高速缓存的数据,以及半高速缓存行大小(例如,64字节)的数据。例如,代替全高速缓存行大小数据,可以存储两个半高速缓存行大小数据,每个数据具有其自己的有效位,但具有共享标签、一致性状态和替换元数据。
为了检测高速缓存行的已使用部分的数据大小何时不是全高速缓存行大小,处理器102a的一或多个本地高速缓存,例如L1高速缓存104a和/或L2高速缓存106a,补充有两个位,称为用于每个高速缓存行的“被访问”位。考虑到能够存储128字节的全高速缓存行大小数据或64字节的半高速缓存行大小数据的L2高速缓存106a的扇区实施方案,例如,用于指示访问的装置,例如两个被访问位(未示出)与存储在L2高速缓存106a中的每个高速缓存行相关联。对于能够存储两个半高速缓存行大小数据的实例高速缓存行,第一被访问位与第一半高速缓存行大小数据(例如,上层64字节)相关联,并且第二被访问位与第二半高速缓存行大小数据(例如,下层64字节)相关联。当已经访问或引用相应的第一/第二半高速缓存行时,相应的第一/第二被访问位被设置为“1”。
在本文中称为空间局部性预测器(SLP)的预测机制或预测器经配置以预测对L3高速缓存108的未来未命中(例如,对于读取请求)是否将导致经由接口155从存储器162提取64字节的半高速缓存行大小数据或128字节的全高速缓存行大小数据。对于在L2高速缓存106a中未命中并被转发到L3高速缓存108的高速缓存行,SLP在L2高速缓存106a处进行初始预测。SLP 200在图1中以虚线示出,以便示出可以基于从L2高速缓存106a中逐出的高速缓存行进行预测的示例性方面,这将在下文进一步阐述。所述预测与在L2高速缓存106a中未命中的请求一起被转发到L3高速缓存108。如果所述请求在L3高速缓存108中也未命中,则还例如经由接口155通过存储器控制器110将初始预测与所述请求一起转发到存储器162。代表性地示出存储器控制器110以示出可经配置以控制对存储器162的访问的实例块,并且因此,在一个方面,存储器控制器110可以基于可能要使用的高速缓存行的预测部分转发对要从特定高速缓存行提取的数据大小的请求,并且相应地,可以将接口155上的访问带宽调整为对应于所提取的数据的大小。
参考图2,更详细地示出空间局部性预测器(SLP)200。通常,SLP 200被设计成跟踪半高速缓存行大小数据在被使用之前例如从L2高速缓存106a中逐出的频率或速率。由于L2高速缓存106a上可用的空间有限,可能发生逐出,因此有可能逐出称为牺牲高速缓存行的高速缓存行,为称为争用高速缓存行的传入高速缓存行腾出空间。在根据对牺牲高速缓存行的请求将牺牲高速缓存行传输到L2高速缓存106a之前,可能已经将牺牲高速缓存行从接口155提取到L3高速缓存108中;然而,在例如处理器102a使用或读取牺牲高速缓存行之前,牺牲高速缓存行可能已经从L2高速缓存106a中逐出。在这种情况下,接口155上的带宽因引入牺牲高速缓存行而浪费。
SLP 200经配置以跟踪逐出速率,例如,关于存储器的每个“区域”的半高速缓存行大小的粒度,其中存储器区域指的是本公开中的连续地址集。在这方面,SLP 200可以包括存储器区域表(MRT)202。MRT 202具有示出的多个条目,例如,对应于n个存储器区域的n个条目210a-n,其中同一存储器区域内的所有地址使用同一条目进行预测,同时应记住预测可能会定期更新,因此可能会随着时间的推移而改变;因此,对于来自同一存储器区域的提取,预测可能不会保持相同。MRT 202的每个条目210a-n包括标签204。在一实施方案中,例如,存储器162的64千字节(KB)区域内的地址可以共享公共标签204,因此可以在同一条目210a-n内分组。可以使用存储器地址214来访问条目210a-n。在一些方面,如图所示,存储器地址214可以通过由散列212实现的散列函数来传递,以生成指向条目210a-n之一的索引。
条目210a-n中的每个条目还包括相应的饱和计数器206,其经配置以跟踪与其地址映射到条目的全高速缓存行大小数据的逐出相比半高速缓存行大小数据的逐出速率。虽然针对每个条目使用单独的计数器有可能跟踪半高速缓存行大小数据和全高速缓存行大小数据的逐出,但是在示例性方面中,每个条目210a-n的单个饱和计数器206比可包括每个条目两个这种计数器的实施方案消耗更少的面积和成本。因而,条目210a-n中的实例条目的饱和计数器206在地址映射到所述条目的半高速缓存行大小数据从L2高速缓存206a中逐出时递增,并且用于所述条目的饱和计数器206在地址映射到所述条目的全高速缓存行大小数据在L2高速缓存206a中逐出时递减。因此,正计数器值表示相比全高速缓存行大小数据的逐出存在更多半高速缓存行大小数据的逐出。
因此,通过由用于条目的相应饱和计数器206的值提供的半高速缓存行大小数据(例如,64字节)的逐出速率与全高速缓存行大小数据(例如,128字节)的逐出速率之间的比较可以由SLP 200用来预测未来的存储器访问是否可能限于提取半高速缓存行大小数据而不是全高速缓存行大小数据。关于以下情境解释在这方面使用和更新饱和计数器206,其中考虑从L2高速缓存106a中逐出的实例高速缓存行。如前所述,每个高速缓存行具有两个相关位,称为被访问位,例如,第一被访问位对应于高速缓存行的第一半(例如,上半部高速缓存行大小数据),第二被访问位对应于高速缓存行的第二半(例如,下半部高速缓存行大小数据)。如果饱和计数器206的值对于条目大于零,则可以在一方面指示半高速缓存行大小数据(例如,64字节)的预测,并且小于或等于零的值可以指示全高速缓存行大小数据(例如,128字节)的预测。
在第一情境中,如果从L2高速缓存106a中逐出的高速缓存行仅设置了两个被访问位中的一者(例如,第一或第二被访问位中只有一个是“1”),则这意味着仅可能已经使用或访问了相应的半高速缓存行大小数据。基于此,SLP 200经配置以在高速缓存行从L2高速缓存106a中逐出时,将对应于被逐出的高速缓存行的地址的条目210a-n的饱和计数器206递增第一量,例如,恒定值“t1”。虽然可以递减饱和计数器206的情况将在下面进一步讨论,但是对于对与对应于被逐出的高速缓存行的条目210a-n相关联的存储器区域的未来存储器请求,例如,对于第二高速缓存行,如果饱和计数器206为正,那么可以预测提取其被访问位已被设置的相应半高速缓存行大小数据可能足以服务未来的存储器请求。因此,可以将接口155上的带宽减少到一半,即仅传输可能的半高速缓存行大小数据以从存储器区域提取第二高速缓存行。
在第二情境中,如果从L2高速缓存106a中逐出的高速缓存行的两个被访问位均被设置(例如,第一和第二被访问位均是“1”),则这意味着可能已访问了高速缓存行的两个半部,或换句话说,可能已访问了整个高速缓存行。在这种情境中,SLP 200经配置以在高速缓存行从L2高速缓存106a中逐出时,将对应于被逐出的高速缓存行的地址的条目210a-n的饱和计数器206递减例如第二量,例如,恒定值“t2”。如果对于对应于条目210a-n的存储器区域的未来存储器请求,饱和计数器206不为正(即,为负或等于零),则可以进行预测:对存储器区域的未来存储器请求,例如,对于第二高速缓存行的请求,可以涉及提取全高速缓存行大小,并且可以将接口155的访问带宽设置为其全容量,以提取用于第二高速缓存行的全高速缓存行大小数据。
在第三情境中,如果在L2高速缓存106a处接收到对于与L2高速缓存106a中的高速缓存行的标签匹配的地址的需求请求(例如,由处理器102a生成),但所述请求是针对在L2高速缓存106a中不存在的半高速缓存行大小数据,则这意味着被提取的半高速缓存行大小数据(例如,根据上面第一情境中的预测)不是满足需求请求的正确的半高速缓存行大小数据。这相当于L2高速缓存106a中针对所请求的半高速缓存行大小数据的未命中。为了说明这一点,SLP 200可经配置以在确定请求导致L2缓存106a中的未命中时,将对应于所请求的高速缓存行的条目的饱和计数器206递减第三量,例如,恒定值“t3”。再次,如果对于对应于条目210a-n的存储器区域的未来存储器请求,饱和计数器206不为正(即,为负或等于零),则可以进行预测:对存储器区域的未来存储器请求,例如,对于第二高速缓存行的请求,获取全高速缓存行大小数据,并且可以将接口155的访问带宽设置为其全容量,以提取第二高速缓存行。
可以凭经验确定上面的t1、t2和t3的值,以针对不同的应用调整要在接口155上从存储器162提取的高速缓存行大小数据的预测。当从L2高速缓存106a中逐出高速缓存行时,可以在MRT 202中分配新条目210a-n,但是在MRT 202中尚不存在与包括被逐出的高速缓存行的存储器地址214的存储器区域相对应的条目210a-n。当新分配条目210a-n时,可以例如通过设置为零来初始化对应的饱和度计数器206,并且可以将标签204设置为对应于映射到条目210a-n的存储器区域。
在L2高速缓存106a例如对于具有第二存储器地址的第二高速缓存行未命中的情况下,探测MRT 202以检查是否存在用于包含未命中的第二高速缓存行的第二存储器地址(存储器地址214)的存储器区域的对应条目210a-n。如果针对未命中的第二高速缓存行的第二存储器地址找到第二条目(条目210a-n),则使用用于第二条目的第二预测计数器(饱和计数器206)预测例如为了提取第二高速缓存行将在接口155上从存储器162中请求的数据大小。如果第二预测计数器或饱和计数器206的值大于零,则可以在一方面指示半高速缓存行大小数据(例如,64字节)的预测,并且小于或等于的值零可以指示全高速缓存行大小数据(例如,128字节)的预测。例如,如果基于预测获取第一半高速缓存行大小数据并且有对于剩余或第二半高速缓存行大小数据的后续请求,则L2高速缓存106a可以发出对第二半高速缓存行大小数据的新请求,类似于在L2高速缓存106a中遇到的针对第二半高速缓存行大小数据的高速缓存未命中。
在如上所述探测MRT 202以进行预测,但是MRT 202不具有与第二缓存行对应的匹配的第二标签(标签204)的第二条目(条目210a-n)的情况下,可以使用现在将讨论的全局预测计数器替代地进行预测。全局预测计数器(未示出)可以被视为不包括标签的MRT202的条目。每当更新MRT 202的任何其它条目210a-n并且全局预测计数器可以维持预测的全局偏差(例如,对于所有条目210a-n),即朝向半高速缓存行大小数据(例如,64字节)或全高速缓存行大小数据(例如,128字节)时,可以更新全局预测计数器。在一些方面,处理器芯片150上的每个本地高速缓存(例如,L1高速缓存104a-b、L2高速缓存106a-b、L3高速缓存108等)可以具有其自身的全局预测计数器。
如果存在误预测,如上所述(即,当实际上可能需要全高速缓存行大小数据时预测半高速缓存行大小数据),则可能存在相关的惩罚(例如,随后可以提取剩余的半高速缓存行,从而例如在接口155上触发额外的事务和伴随的功耗)。由于可能存在与误预测相关的惩罚,因此在某些方面,在误预测的情况下,可以将针对正确预测减少DRAM访问带宽的益处与惩罚进行权衡。在实例实施方案中,可以例如通过存储器控制器110或任何其它逻辑来跟踪基于SLP 200的预测计数器要提取的高速缓存行的大小的多个误预测。
如果确定动态减少DRAM访问带宽的益处可能不会超过可能的惩罚,则可以禁用动态减少DRAM访问带宽的示例性方面。如前所述,带宽争用检测器(或“BCD”,未明确示出)通常经配置以识别上述基于SLP 200做出的预测减少带宽的益处可能超过SLP200的误预测的可能惩罚的情况。例如,在没有观察到DRAM访问带宽争用很高的情况下,BCD可以禁用对半高速缓存行(例如,64字节)的请求。如果没有DRAM访问带宽争用或DRAM访问带宽争用低,则BCD可以确定误预测的性能损失,例如,当实际需要全高速缓存行大小数据时请求半高速缓存行大小数据的情况可能是不必要的。BCD可以根据DRAM访问带宽争用来识别交叉点,其中可以实现基于SLP的预测以及使用半高速缓存行提取的伴随动态DRAM访问带宽减少。
在一些方面,通过比较经由访问DRAM或存储器162服务的请求的聚合测量等待时间与在没有DRAM访问带宽争用的情况下的预期等待时间,可以由每个本地高速缓存(例如,L1高速缓存104a-b、L2高速缓存106a-b等)估计DRAM访问带宽争用。可以基于这种比较形成测量等待时间与预期等待时间的比率。当测量等待时间与预期等待时间的比率增加超过预先指定的(例如,可编程的)阈值时,BCD使SLP 200(包括MRT 202、全局预测计数器等)能够提供预测。可以使用计数器(未示出)来计算测量等待时间,所述计数器经配置以跟踪对L2高速缓存106a-b的服务请求的等待时间或所花费的时间,例如,接收所请求的数据所花费的时间。每个主动请求可以具有如上所述的关联计数器。可以将预期等待时间测量为恒定值,其被计算为L2高速缓存106a-b与L3高速缓存108和存储器162的组合之间的平均等待时间。使预期等待时间可配置能允许在启用SLP预测时进行调整。
在一些方面,例如,可以在每个L2高速缓存106a-b处的单独计数器中聚合测量的和预期的等待时间。在时间段或时期的结束时,例如一百万个时钟周期的间隔,BCD可以通过比较两个计数器来确定是否存在足够的DRAM访问带宽争用以使SLP 200能够进行预测。基于所述确定,SLP 200可以在后续的时间段(例如,一百万个时钟周期间隔)中被启用或禁用。在后续时间段开始之前,两个计数器可以重置为零。
在一些方面,可以使用由每个存储器控制器或一些其它带宽受限资源(例如,诸如互连155的芯片到芯片链路、芯片上互连、诸如L3高速缓存108的共享高速缓存,等)提供的带宽利用率测量来检测DRAM访问带宽争用。
相应地,将了解,示例性方面包含用于执行本文公开的过程、函数和/或算法的各种方法。例如,图3示出管理(例如,存储器162的)存储器访问带宽的方法300。
框302包括确定存储在由处理器(例如,处理器102a)访问的第一高速缓存(例如,L2高速缓存106a)中的第一高速缓存行的已使用部分(例如,半高速缓存行大小或全高速缓存行大小)。在一个方面,第一高速缓存(其可以是2级(L2)高速缓存,例如L2高速缓存106a)可以包括至少对应于第一高速缓存行的第一半高速缓存行大小数据(例如,128字节高速缓存行的上半部或上层64字节)的第一被访问位和对应于第一高速缓存行的第二半高速缓存行大小数据(例如,128字节高速缓存行的下半部或下层64字节)的第二被访问位,其中,确定第一高速缓存行的已使用部分的大小是基于例如当第一高速缓存行从L2高速缓存中逐出时设置了第一被访问位或第二被访问位中的哪一或多者。
在框304中,对于包括第一高速缓存行的存储器中的第一存储器区域,基于大小更新用于对要从第一存储器区域提取的高速缓存行的大小进行预测的预测计数器(例如,使用第一高速缓存行的存储器地址214散列到SLP 200的MRT 202中,并在索引条目210a-n中更新预测计数器、饱和计数器206,用于从第一存储器区域提取高速缓存行)。在各个方面,如上所述,更新预测计数器可以包含:当第一高速缓存行从L2高速缓存中逐出时仅设置了第一被访问位或第二被访问位中的一者时,将预测计数器(例如,饱和计数器206)递增第一量(例如,t1);当第一高速缓存行从L2高速缓存中逐出时第一被访问位和第二被访问位均被设置时,将预测计数器递减第二量(例如,t2);以及当在第一高速缓存处从处理器接收到对于第一高速缓存行未被提取的一部分的请求时,将预测计数器递减第三量(例如,t3),其中,t1、t2和t3可以凭经验确定,如前所述。
框306包括将处理器与存储器之间的存储器访问带宽(例如,在接口155上)调整为对应于待提取的高速缓存行的大小(例如,减少到半高速缓存行大小访问带宽)。例如,调整用于从第一存储器区域提取第二高速缓存行的存储器访问带宽可以包含:如果预测计数器的值大于零,则将存储器访问带宽减少到对应于半高速缓存行大小,或如果预测计数器的值小于或等于零,则将存储器访问带宽减少到对应于全高速缓存行大小。在某些情况下,基于调整的存储器访问带宽以这种方式从第一存储器区域提取的高速缓存行可以在由第一高速缓存访问它们之前存储在第二高速缓存中,例如,存储在L3高速缓存108中。
尽管未在图3中示出,方法300还可以包含:将用于第一存储器区域的预测计数器存储在存储器区域表的第一条目(例如,MRT 202的210a)中,其中MRT 202包括针对一或多个存储器区域的一或多个条目210a-n;以及用对应于第一存储器区域中的存储器地址的第一标签(例如,条目210a的标签204)标注第一条目。对于任何高速缓存行,例如,第二高速缓存行,访问存储器区域表可以包括(例如,在通过散列块212中的散列函数传递之后)用第二高速缓存行的第二存储器地址(例如,存储器地址214)访问存储器区域表,并且如果存储器区域表中存在具有对应于第二存储器地址的第二标签(例如,条目210b的标签204)的第二条目(例如,210b),则基于存储在第二条目中的第二预测计数器(例如,条目210b的饱和计数器206)确定对要从第二存储器区域提取的第二高速缓存行的大小的预测。如果存储器区域表中尚不存在第二条目,则可以使用如前所述的全局预测计数器来确定对要从第二存储器区域提取的第二高速缓存行的大小的预测。
此外,方法300的示例性方面还可以包括基于预测计数器跟踪要提取的高速缓存行的大小的多个误预测,并且基于误预测的数量确定是否灵活地启用或禁用调整存储器访问带宽。另外或替代地,灵活地启用或禁用调整存储器访问带宽可以基于(例如)如带宽争用检测器所检测到的带宽争用,所述带宽争用检测器可经配置以通过针对为请求提供服务的预期等待时间来测量对存储器的服务请求的实际等待时间而检测带宽争用。
现在将结合图4讨论其中可以利用本公开的示例性方面的实例设备。图4示出了计算装置400的框图。计算装置400可以对应于图1中所示的处理系统100的实施方案,且经配置以执行图3的方法300。在图4的描绘中,计算装置400被示出为包含图1的处理器102a、L1高速缓存104a、L2高速缓存106a和L3高速缓存108以及通信地耦合到L2高速缓存106a的图2的MRT 202。为清楚起见,已经从图4中省略了参考图1-2论述的组件的各种其它细节。计算装置400的存储器162可以类似地配置为集成在芯片外的主存储器162,如关于图1所讨论的,或如图4所示,存储器162可以集成在芯片150上,例如,与处理器102a在同一芯片上。如先前关于图1-3论述的,处理器102a示例性地示出为耦合到包括L1高速缓存104a、L2高速缓存106a、L3高速缓存108的三级高速缓存的存储器162(在L2高速缓存106a与L3高速缓存108之间示出SLP 200)、存储器控制器(MC)110和接口155,但是应该理解,计算装置400也可以支持本领域已知的其它配置。
图4还示出了耦合到处理器102a和显示器428的显示控制器426。在一些情况下,计算装置400可以用于无线通信,且图4还以虚线示出了可选块,例如耦合到处理器102a和扬声器436的编码器/解码器(CODEC)434(例如,音频和/或语音CODEC),并且麦克风438可以耦合到CODEC 434;以及耦合到无线控制器440的无线天线442,所述无线控制器440耦合到处理器102a。在存在一或多个这些可选块的情况下,在特定方面,处理器102a、显示控制器426、存储器162和无线控制器440包含于封装内系统或芯片上系统装置150中。
因此,特定方面,输入装置430和电源444耦合到芯片上系统装置150。此外,在特定方面,如图4所示,在存在一或多个可选块的情况下,显示器428、输入装置430、扬声器436、麦克风438、无线天线442和电源444在芯片上系统装置150的外部。然而,显示器428、输入装置430、扬声器436、麦克风438、无线天线442和电源444中的每一者可以耦合到芯片上系统装置150的组件上,例如接口或控制器。
应注意,虽然图4大体上描绘计算装置,但处理器102a和存储器162也可以集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元、计算机、笔记本计算机、平板计算机、通信装置、移动电话,或其它类似装置中。
所属领域的技术人员应了解,可使用多种不同技术和技艺中的任一种来表示信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
此外,所属领域的技术人员应了解,结合本文中所公开的方面描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就各种说明性组件、块、模块、电路和步骤的功能性加以描述。此类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本发明的范围。
结合本文中所公开的方面描述的方法、序列和/或算法可以直接以硬件、以由处理器执行的软件模块或以硬件和软件模块的组合来体现。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动的磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示例性存储媒体被耦合到处理器,使得处理器可以从存储媒体读取信息且将信息写入所述存储媒体。在替代例中,存储媒体可与处理器成一体式。
因此,本发明的一方面可以包含体现用于动态减少DRAM访问带宽的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且任何用于执行本文中所描述的功能性的装置包含于本发明的方面中。
虽然前述公开内容示出本发明的说明性方面,但应注意,可在不脱离如由所附权利要求书界定的本发明的范围的情况下在本文中作出各种改变和修改。无需以任何特定次序来执行根据本文中所描述的本发明的方面的方法权利要求的功能、步骤和/或动作。此外,虽然可能以单数形式描述或要求本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。
Claims (30)
1.一种管理存储器访问带宽的方法,所述方法包括:
确定存储在由处理器访问的第一高速缓存中的第一高速缓存行的已使用部分的大小;
对于包括所述第一高速缓存行的存储器中的第一存储器区域,基于所述已使用部分的所述大小更新用于对要从所述第一存储器区域提取的高速缓存行的大小进行预测的预测计数器;以及
将所述处理器与所述存储器之间的存储器访问带宽调整为对应于待提取的所述高速缓存行的所述大小。
2.根据权利要求1所述的方法,其中所述第一高速缓存是2级L2高速缓存,其包括至少对应于所述第一高速缓存行的第一半高速缓存行大小数据的第一被访问位和对应于所述第一高速缓存行的第二半高速缓存行大小数据的第二被访问位,其中,确定所述第一高速缓存行的所述已使用部分的所述大小是基于设置了所述第一被访问位或第二被访问位中的哪一或多者。
3.根据权利要求2所述的方法,其包括当所述第一高速缓存行从所述L2高速缓存中逐出时确定设置了所述第一被访问位或所述第二被访问位中的哪一或多者。
4.根据权利要求3所述的方法,其中更新所述预测计数器包括:
当所述第一高速缓存行从所述L2高速缓存中逐出时仅设置了所述第一被访问位或所述第二被访问位中的一者时,将所述预测计数器递增第一量;
当所述第一高速缓存行从所述L2高速缓存中逐出时所述第一被访问位和所述第二被访问位均被设置时,将所述预测计数器递减第二量;以及
当在所述第一高速缓存处从所述处理器接收到对于所述第一高速缓存行未被提取的一部分的请求时,将所述预测计数器递减第三量。
5.根据权利要求4所述的方法,其包括在所述预测计数器的值大于零的情况下,将用于从所述第一存储器区域提取第二高速缓存行的所述存储器访问带宽调整为对应于所述半高速缓存行大小。
6.根据权利要求4所述的方法,其包括在所述预测计数器的所述值小于或等于零的情况下,将用于从所述第一存储器区域提取第二高速缓存行的所述存储器访问带宽调整为对应于所述全高速缓存行大小。
7.根据权利要求1所述的方法,其包括将用于所述第一存储器区域的所述预测计数器存储在包括针对一或多个存储器区域的一或多个条目的存储器区域表的第一条目中,并且用对应于所述第一存储器区域中的存储器地址的第一标签标注所述第一条目。
8.根据权利要求7所述的方法,其包括用第二高速缓存行的第二存储器地址访问所述存储器区域表,并且如果所述存储器区域表中存在具有对应于所述第二存储器地址的第二标签的第二条目,则基于存储在所述第二条目中第二预测计数器确定对要从所述第二存储器区域提取的所述第二高速缓存行的大小的预测。
9.根据权利要求8所述的方法,其中,如果所述存储器区域表中尚不存在所述第二条目,则使用全局预测计数器来确定对要从所述第二存储器区域提取的所述第二高速缓存行的所述大小的预测。
10.根据权利要求1所述的方法,其包括基于所述预测计数器跟踪要提取的高速缓存行的大小的多个误预测,并且基于误预测的数量确定是否灵活地启用或禁用调整所述存储器访问带宽。
11.根据权利要求1所述的方法,其包括基于带宽争用灵活地启用或禁用调整所述存储器访问带宽。
12.根据权利要求11所述的方法,其包括通过比较对所述存储器的服务请求的等待时间与预期等待时间来测量带宽争用。
13.根据权利要求1所述的方法,其进一步包括将基于调整的存储器访问带宽从所述第一存储器区域提取的所述高速缓存行存储在第二高速缓存中。
14.一种设备,其包括:
处理器,其经配置以访问第一高速缓存;
存储器;
包括预测计数器的预测器,所述预测计数器被配置成基于存储在所述第一高速缓存中的第一高速缓存行的已使用部分的大小预测待从所述存储器的第一存储器区域提取的高速缓存行的大小;以及
存储器控制器,其被配置成将所述处理器与所述存储器之间的存储器访问带宽调整为对应于待提取的所述高速缓存行的所述大小。
15.根据权利要求14所述的设备,其中所述第一高速缓存是2级L2高速缓存,其包括至少对应于所述第一高速缓存行的第一半高速缓存行大小数据的第一被访问位和对应于所述第一高速缓存行的第二半高速缓存行大小数据的第二被访问位,其中,所述预测器经配置以基于设置了所述第一被访问位或第二被访问位中的哪一或多者来确定所述第一高速缓存行的所述已使用部分的所述大小。
16.根据权利要求15所述的设备,其中,所述预测器经配置以在所述第一高速缓存行从所述L2高速缓存中逐出时确定设置了所述第一被访问位或所述第二被访问位中的哪一或多者。
17.根据权利要求16所述的设备,其中预测器经配置以:
当所述第一高速缓存行从所述L2高速缓存中逐出时仅设置了所述第一被访问位或所述第二被访问位中的一者时,将所述预测计数器递增第一量;
当所述第一高速缓存行从所述L2高速缓存中逐出时所述第一被访问位和所述第二被访问位均被设置时,将所述预测计数器递减第二量;以及
当在所述第一高速缓存处从所述处理器接收到对于所述第一高速缓存行未被提取的一部分的请求时,将所述预测计数器递减第三量。
18.根据权利要求17所述的设备,其中,所述存储器控制器经配置以在所述预测计数器的值大于零的情况下,将用于从所述第一存储器区域提取第二高速缓存行的所述存储器访问带宽调整为对应于所述半高速缓存行大小。
19.根据权利要求17所述的设备,其中所述存储器控制器经配置以在所述预测计数器的所述值小于或等于零的情况下,将用于从所述第一存储器区域提取第二高速缓存行的所述存储器访问带宽调整为对应于所述全高速缓存行大小。
20.根据权利要求17所述的设备,其中所述预测器包括存储器区域表,所述存储器区域表包括:经配置以存储用于一或多个存储器区域的预测计数器的一或多个条目;
以及所述一或多个条目的对应的一或多个标签。
21.根据权利要求17所述的设备,其中所述预测器包括全局预测计数器,所述全局预测计数器经配置以在所述存储器区域表中尚不存在具有对应于第二存储器地址的第二标签的第二条目的情况下,预测要从第二存储器区域提取的第二高速缓存行的大小。
22.根据权利要求14所述的设备,其包括带宽争用检测器,所述带宽争用检测器经配置以确定带宽争用并基于所述预测器灵活地启用或禁用对所述存储器访问带宽的调整。
23.根据权利要求14所述的设备,其进一步包括第二高速缓存,所述第二高速缓存经配置以存储基于调整的存储器访问带宽从所述第一存储器区域提取的所述高速缓存行。
24.根据权利要求14所述的设备,其集成到选自由以下组成的群组的装置中:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、计算机、笔记本计算机、平板计算机、通信装置和移动电话。
25.一种设备,其包括:
用于确定存储在由处理器访问的第一高速缓存中的第一高速缓存行的已使用部分的大小的装置;
对于包括所述第一高速缓存行的存储器中的第一存储器区域,用于基于所述已使用部分的所述大小更新对要从所述第一存储器区域提取的高速缓存行的大小的预测的装置;以及
用于将所述处理器与所述存储器之间的存储器访问带宽调整为对应于待提取的所述高速缓存行的所述大小的装置。
26.根据权利要求25所述的设备,其包括至少用于指示对所述第一高速缓存行的第一半高速缓存行大小数据的访问的第一装置和用于指示对所述第一高速缓存行的第二半高速缓存行大小数据的访问的第二装置,以及用于基于用于指示访问的所述第一和第二装置确定所述第一高速缓存行的所述已使用部分的所述大小的装置。
27.根据权利要求25所述的设备,其包括用于基于带宽争用灵活地启用或禁用调整所述存储器访问带宽的装置。
28.一种非暂时性计算机可读存储媒体,其包括代码,所述代码当由计算机执行时使所述计算机执行用于管理存储器访问带宽的操作,所述非暂时性计算机可读存储媒体包括:
用于确定存储在由处理器访问的第一高速缓存中的第一高速缓存行的已使用部分的大小的代码;
对于包括所述第一高速缓存行的存储器中的第一存储器区域,用于基于所述已使用部分的所述大小更新用于对要从所述第一存储器区域提取的高速缓存行的大小进行预测的预测计数器的代码;以及
用于将所述处理器与所述存储器之间的存储器访问带宽调整为对应于待提取的所述高速缓存行的所述大小的代码。
29.根据权利要求28所述的非暂时性计算机可读存储媒体,其中所述第一高速缓存是2级L2高速缓存,其包括至少对应于所述第一高速缓存行的第一半高速缓存行大小数据的第一被访问位和对应于所述第一高速缓存行的第二半高速缓存行大小数据的第二被访问位,其中,用于确定所述第一高速缓存行的所述已使用部分的所述大小的代码是基于设置了所述第一被访问位或第二被访问位中的哪一或多者。
30.根据权利要求27所述的非暂时性计算机可读存储媒体,其包括用于基于带宽争用灵活地启用或禁用调整所述存储器访问带宽的代码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662320381P | 2016-04-08 | 2016-04-08 | |
US62/320,381 | 2016-04-08 | ||
US15/270,331 | 2016-09-20 | ||
US15/270,331 US10169240B2 (en) | 2016-04-08 | 2016-09-20 | Reducing memory access bandwidth based on prediction of memory request size |
PCT/US2017/023177 WO2017176445A1 (en) | 2016-04-08 | 2017-03-20 | Reducing memory access bandwidth based on prediction of memory request size |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109074314A true CN109074314A (zh) | 2018-12-21 |
Family
ID=59998750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780020648.7A Pending CN109074314A (zh) | 2016-04-08 | 2017-03-20 | 基于存储器请求大小的预测减少存储器访问带宽 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10169240B2 (zh) |
EP (1) | EP3440550A1 (zh) |
CN (1) | CN109074314A (zh) |
WO (1) | WO2017176445A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669882A (zh) * | 2018-12-28 | 2019-04-23 | 贵州华芯通半导体技术有限公司 | 带宽感知的动态高速缓存替换方法、装置、系统和介质 |
CN111382089A (zh) * | 2018-12-26 | 2020-07-07 | 三星电子株式会社 | 用于专用最末级高速缓存器的旁路预测器 |
CN111431760A (zh) * | 2020-02-28 | 2020-07-17 | 深圳市风云实业有限公司 | 一种交换芯片中端口带宽利用率测量方法 |
CN114365101A (zh) * | 2019-09-05 | 2022-04-15 | 超威半导体公司 | 服务质量脏线跟踪 |
WO2022179348A1 (zh) * | 2021-02-25 | 2022-09-01 | 华为技术有限公司 | 对存储器的输入带宽进行调整的方法及存储系统 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10750175B2 (en) * | 2017-05-04 | 2020-08-18 | Sony Corporation | Quantization partitioning for enhanced image compression |
US10726519B2 (en) * | 2017-09-25 | 2020-07-28 | Arm Limited | Cache arrangement for graphics processing systems |
US10929296B2 (en) * | 2017-10-12 | 2021-02-23 | Texas Instruments Incorporated | Zero latency prefetching in caches |
CN111386683A (zh) * | 2017-11-27 | 2020-07-07 | 欧庞戈网络有限公司 | 基于实时传输网络拥塞状况来加速或减速数据传输网络协议的系统和方法 |
CN108170373B (zh) * | 2017-12-19 | 2021-01-05 | 云知声智能科技股份有限公司 | 一种数据缓存方法、装置及数据传输系统 |
US10642742B2 (en) * | 2018-08-14 | 2020-05-05 | Texas Instruments Incorporated | Prefetch management in a hierarchical cache system |
US10831628B2 (en) * | 2018-12-12 | 2020-11-10 | Intel Corporation | Hardware lockstep checking within a fault detection interval in a system on chip |
US11016899B2 (en) | 2019-05-06 | 2021-05-25 | Qualcomm Incorporated | Selectively honoring speculative memory prefetch requests based on bandwidth state of a memory access path component(s) in a processor-based system |
US11636040B2 (en) | 2019-05-24 | 2023-04-25 | Texas Instruments Incorporated | Methods and apparatus for inflight data forwarding and invalidation of pending writes in store queue |
CN112965885B (zh) * | 2019-12-12 | 2024-03-01 | 中科寒武纪科技股份有限公司 | 访存带宽的检测方法、装置、计算机设备及可读存储介质 |
US11205243B2 (en) | 2020-01-14 | 2021-12-21 | Arm Limited | Data processing systems |
US11625332B2 (en) | 2020-01-14 | 2023-04-11 | Arm Limited | Cache miss handling for read operations in data processing systems |
US11789867B2 (en) | 2020-01-14 | 2023-10-17 | Arm Limited | Cache arrangement for data processing systems |
US11573902B1 (en) | 2021-08-18 | 2023-02-07 | International Business Machines Corporation | Controlling issue rates of requests of varying broadcast scopes in a data processing system |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6339813B1 (en) * | 2000-01-07 | 2002-01-15 | International Business Machines Corporation | Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory |
US6678795B1 (en) * | 2000-08-15 | 2004-01-13 | International Business Machines Corporation | Method and apparatus for memory prefetching based on intra-page usage history |
US20040010585A1 (en) * | 2002-07-12 | 2004-01-15 | Jones Jerome Kemple | System and method for managing bandwidth utilization |
CN1849591A (zh) * | 2002-11-22 | 2006-10-18 | 皇家飞利浦电子股份有限公司 | 使用高速缓存未命中模式来寻址跨距预测表 |
EP2388705A1 (en) * | 2010-05-20 | 2011-11-23 | Telefonaktiebolaget LM Ericsson (publ) | Method and apparatus for accessing cache memory |
CN102640124A (zh) * | 2009-09-11 | 2012-08-15 | 超威半导体公司 | 用于数据流的储存感知预取 |
US20140101388A1 (en) * | 2012-10-10 | 2014-04-10 | Advanced Micro Devices, Inc. | Controlling prefetch aggressiveness based on thrash events |
US20150293852A1 (en) * | 2014-04-15 | 2015-10-15 | International Business Machines Corporation | Counter-based wide fetch management |
CN105027211A (zh) * | 2013-01-31 | 2015-11-04 | 惠普发展公司,有限责任合伙企业 | 自适应粒度行缓冲器高速缓存 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3515333B2 (ja) * | 1997-08-26 | 2004-04-05 | 株式会社東芝 | 情報処理装置 |
US20020042861A1 (en) * | 1997-11-07 | 2002-04-11 | Kavipurapu Gautam Nag | Apparatus and method for implementing a variable block size cache |
US6629213B1 (en) * | 2000-05-01 | 2003-09-30 | Hewlett-Packard Development Company, L.P. | Apparatus and method using sub-cacheline transactions to improve system performance |
US6792496B2 (en) | 2001-08-02 | 2004-09-14 | Intel Corporation | Prefetching data for peripheral component interconnect devices |
US7406579B2 (en) * | 2002-12-17 | 2008-07-29 | International Business Machines Corporation | Selectively changeable line width memory |
US8683132B1 (en) | 2003-09-29 | 2014-03-25 | Nvidia Corporation | Memory controller for sequentially prefetching data for a processor of a computer system |
US7380047B2 (en) | 2004-09-30 | 2008-05-27 | International Business Machines Corporation | Apparatus and method for filtering unused sub-blocks in cache memories |
US8046538B1 (en) | 2005-08-04 | 2011-10-25 | Oracle America, Inc. | Method and mechanism for cache compaction and bandwidth reduction |
US7822926B2 (en) | 2007-04-16 | 2010-10-26 | Arm Limited | Cache memory |
US8935478B2 (en) * | 2011-11-01 | 2015-01-13 | International Business Machines Corporation | Variable cache line size management |
US9176878B2 (en) | 2012-03-15 | 2015-11-03 | Oracle International Corporation | Filtering pre-fetch requests to reduce pre-fetching overhead |
US9367466B2 (en) | 2013-02-13 | 2016-06-14 | Advanced Micro Devices, Inc. | Conditional prefetching |
US9086974B2 (en) * | 2013-09-26 | 2015-07-21 | International Business Machines Corporation | Centralized management of high-contention cache lines in multi-processor computing environments |
-
2016
- 2016-09-20 US US15/270,331 patent/US10169240B2/en active Active
-
2017
- 2017-03-20 CN CN201780020648.7A patent/CN109074314A/zh active Pending
- 2017-03-20 EP EP17714624.8A patent/EP3440550A1/en not_active Withdrawn
- 2017-03-20 WO PCT/US2017/023177 patent/WO2017176445A1/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6339813B1 (en) * | 2000-01-07 | 2002-01-15 | International Business Machines Corporation | Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory |
US6678795B1 (en) * | 2000-08-15 | 2004-01-13 | International Business Machines Corporation | Method and apparatus for memory prefetching based on intra-page usage history |
US20040010585A1 (en) * | 2002-07-12 | 2004-01-15 | Jones Jerome Kemple | System and method for managing bandwidth utilization |
CN1849591A (zh) * | 2002-11-22 | 2006-10-18 | 皇家飞利浦电子股份有限公司 | 使用高速缓存未命中模式来寻址跨距预测表 |
CN102640124A (zh) * | 2009-09-11 | 2012-08-15 | 超威半导体公司 | 用于数据流的储存感知预取 |
EP2388705A1 (en) * | 2010-05-20 | 2011-11-23 | Telefonaktiebolaget LM Ericsson (publ) | Method and apparatus for accessing cache memory |
US20140101388A1 (en) * | 2012-10-10 | 2014-04-10 | Advanced Micro Devices, Inc. | Controlling prefetch aggressiveness based on thrash events |
CN105027211A (zh) * | 2013-01-31 | 2015-11-04 | 惠普发展公司,有限责任合伙企业 | 自适应粒度行缓冲器高速缓存 |
US20150293852A1 (en) * | 2014-04-15 | 2015-10-15 | International Business Machines Corporation | Counter-based wide fetch management |
Non-Patent Citations (1)
Title |
---|
侯方勇等: "Pentium4处理器微体系结构分析", 《微机发展》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382089A (zh) * | 2018-12-26 | 2020-07-07 | 三星电子株式会社 | 用于专用最末级高速缓存器的旁路预测器 |
CN111382089B (zh) * | 2018-12-26 | 2024-05-07 | 三星电子株式会社 | 用于专用最末级高速缓存器的旁路预测器 |
CN109669882A (zh) * | 2018-12-28 | 2019-04-23 | 贵州华芯通半导体技术有限公司 | 带宽感知的动态高速缓存替换方法、装置、系统和介质 |
CN114365101A (zh) * | 2019-09-05 | 2022-04-15 | 超威半导体公司 | 服务质量脏线跟踪 |
CN114365101B (zh) * | 2019-09-05 | 2023-10-24 | 超威半导体公司 | 服务质量脏线跟踪 |
CN111431760A (zh) * | 2020-02-28 | 2020-07-17 | 深圳市风云实业有限公司 | 一种交换芯片中端口带宽利用率测量方法 |
CN111431760B (zh) * | 2020-02-28 | 2021-07-06 | 深圳市风云实业有限公司 | 一种交换芯片中端口带宽利用率测量方法 |
WO2022179348A1 (zh) * | 2021-02-25 | 2022-09-01 | 华为技术有限公司 | 对存储器的输入带宽进行调整的方法及存储系统 |
Also Published As
Publication number | Publication date |
---|---|
US10169240B2 (en) | 2019-01-01 |
WO2017176445A1 (en) | 2017-10-12 |
US20170293561A1 (en) | 2017-10-12 |
EP3440550A1 (en) | 2019-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109074314A (zh) | 基于存储器请求大小的预测减少存储器访问带宽 | |
TWI545435B (zh) | 於階層式快取處理器中之協調預取 | |
US9418013B2 (en) | Selective prefetching for a sectored cache | |
US7584327B2 (en) | Method and system for proximity caching in a multiple-core system | |
US7571285B2 (en) | Data classification in shared cache of multiple-core processor | |
US9218286B2 (en) | System cache with partial write valid states | |
US9620181B2 (en) | Adaptive granularity row-buffer cache | |
US9298620B2 (en) | Selective victimization in a multi-level cache hierarchy | |
US9047198B2 (en) | Prefetching across page boundaries in hierarchically cached processors | |
US20140075125A1 (en) | System cache with cache hint control | |
US9218040B2 (en) | System cache with coarse grain power management | |
US20150067264A1 (en) | Method and apparatus for memory management | |
US9043570B2 (en) | System cache with quota-based control | |
US20140089600A1 (en) | System cache with data pending state | |
US9229866B2 (en) | Delaying cache data array updates | |
CN107438837A (zh) | 数据高速缓存 | |
KR20180103907A (ko) | 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공 | |
US9311251B2 (en) | System cache with sticky allocation | |
US8977817B2 (en) | System cache with fine grain power management | |
EP2901287B1 (en) | System cache with sticky removal engine | |
CN110998547A (zh) | 筛选被预测为到达即死(doa)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲(llc)存储器中的插入 | |
US20180052778A1 (en) | Increase cache associativity using hot set detection | |
CN110235110A (zh) | 当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181221 |