CN101681289A - 处理器性能监测 - Google Patents

处理器性能监测 Download PDF

Info

Publication number
CN101681289A
CN101681289A CN200880015791A CN200880015791A CN101681289A CN 101681289 A CN101681289 A CN 101681289A CN 200880015791 A CN200880015791 A CN 200880015791A CN 200880015791 A CN200880015791 A CN 200880015791A CN 101681289 A CN101681289 A CN 101681289A
Authority
CN
China
Prior art keywords
performance
cache
data
processor cores
bus
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
Application number
CN200880015791A
Other languages
English (en)
Inventor
D·A·卢克
P·L·维塔莱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101681289A publication Critical patent/CN101681289A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及计算机架构,并且更具体地,涉及评估处理器的性能。性能监测器可以置于处理器的L2高速缓存套组中。该性能监测器可以监测L2高速缓存访问以及通过将一个或多个处理器内核耦合至L2高速缓存套组的总线从所述处理器内核接收性能数据。在一个实施方式中,总线可以包括用于将性能数据从处理器内核传送至性能监测器的附加线路。

Description

处理器性能监测
技术领域
本发明涉及计算机架构,更具体地,涉及评估处理器的性能。
背景技术
现代计算机系统通常包括多个集成电路(IC),包括可以用于在计算机系统中处理信息的一个或多个处理器。由处理器处理的数据可以包括由处理器执行的计算机指令,以及由处理器使用该计算机指令来操纵的数据。计算机指令和数据通常存储在计算机系统的主存储器中。
处理器通常通过在一系列小步骤中执行每个指令来处理指令。在某些情况下,为了增加处理器所处理的指令数目(并由此提高处理器的速度),可以将处理器流水线化。流水线是指在处理器中提供独立的级,其中每一级执行运行指令所需的一个或多个小步骤。在某些情况下,流水线(以及其他电路)可以置于处理器中称作处理器内核的部分中。某些处理器可以具有多个处理器内核。
虽然可以通过使用流水线来提高处理器速度,但是计算机系统的性能可能取决于各种其他因素,例如,计算机系统的存储器层级的性能。因此,系统开发者通常会研究对存储器中的指令和数据访问以及存储器中的指令执行,以便收集性能参数,这些性能参数可以允许系统开发者优化系统设计从而获得更好的性能。例如,系统开发者可以研究高速缓存未命中率,以确定最优高速缓存大小、集合关联性等。
现代处理器通常包括性能监测电路,用以利用、测试和监测各种性能参数。这种性能监测电路通常集中在处理器内核中,其具有去往和来自多个其他处理器内核的大量线路,从而显著增加了芯片大小、成本和复杂性。而且,在芯片开发和/或测试完成之后,不再需要性能监测电路,并且可能无法重新获得由性能监测电路占用的空间。
因此,需要用于从处理器收集性能参数的改进的方法和系统。
发明内容
本发明涉及计算机架构,并且更具体地,涉及评估处理器性能。
本发明的一个实施方式提供一种用于收集性能数据的方法。该方法通常包括:由位于处理器的L2高速缓存套组(nest)中的性能监测器来监测L2高速缓存访问,以获取与L2高速缓存访问有关的性能数据。该方法还包括:通过将处理器的至少一个处理器内核耦合至L2高速缓存套组的总线,由性能监测器从所述至少一个处理器内核接收性能数据;以及基于至少一个L2高速缓存访问和从所述至少一个处理器内核接收到的性能数据,来计算一个或多个性能参数。
本发明的另一实施方式提供一种位于处理器的L2高速缓存套组中的性能监测器,其中该性能监测器配置用于:监测对L2高速缓存套组中的L2高速缓存的访问;以及计算与L2高速缓存访问相关的一个或多个性能参数。该性能监测器进一步配置用于:通过将L2高速缓存套组耦合到至少一个处理器内核的总线,从所述至少一个处理器内核接收性能数据。
本发明的又一实施方式提供一种系统,其一般地包括:至少一个处理器内核;包括L2高速缓存和性能监测器的L2高速缓存套组;以及将L2高速缓存套组耦合到至少一个处理器内核的总线。该性能监测器一般地配置用于监测L2高速缓存访问,以计算与L2高速缓存访问有关的一个或多个性能参数;以及通过将L2高速缓存套组耦合到至少一个处理器内核的总线,从所述至少一个处理器内核接收性能数据。
附图说明
通过使本发明的上述特征、优点和目的得以实现和详细理解的方式,将参考本发明在附图中使出的实施方式对上文概括的本发明进行更为具体的描述。
然而,需要注意,附图仅仅示出了本发明的典型实施方式,因此其不应被认为是对本发明范围的限制,因为本发明可以包含其他同样有效的实施方式。
图1示出了按照本发明实施方式的示例性系统。
图2示出了按照本发明实施方式的处理器。
图3示出了按照本发明实施方式的另一处理器。
具体实施方式
本发明涉及计算机架构,并且更具体地涉及评估处理器性能。性能监测器可以置于处理器的L2高速缓存套组中。性能监测器可以监测L2高速缓存访问以及通过将处理器内核耦合至L2高速缓存套组的总线从一个或多个处理器内核接收性能数据。在一个实施方式中,总线可以包括用于将性能数据从处理器内核传送到性能监测器的一个或多个附加线路。
在下文中,将参考本发明的实施方式。然而,应当理解,本发明不限于所描述的特定实施方式。相反,可以想到通过以下特征和元素(不论其是否涉及不同的实施方式)的任意组合来实现和实践本发明。此外,在各种实施方式中,本发明提供了优于现有技术的多个优点。然而,尽管本发明的实施方式可以实现优于其他可能的解决方案和/或现有技术的优点,但是给定的实施方式是否实现了特定的优点不是本发明的限制。因此,下文的方面、特征、实施方式和优点仅仅是说明性的,除非在权利要求中明确记载,否则其不应被认为是所附权利要求的元素或者限制。类似地,引用“本发明”不应认为是对在此公开的任何发明主题的一般化,并且除非权利要求中明确记载,否则不应认为其是所附权利要求的元素或者限制。
下文是对附图中描绘的本发明实施方式的详细描述。这些实施方式是示例,并且其如此详细是为了清楚地表述本发明。然而,所提供的大量细节无意限制本发明的预期变形;相反,本发明意在涵盖落入由所附权利要求限定的本发明的精神和范围内的所有修改、等效物和备选方案。
可以利用例如计算机系统的系统来使用本发明的实施方式,并且可以关于这样的系统来描述本发明的实施方式。在此使用的“系统”包括使用处理器和高速缓存存储器的任何系统,包括个人计算机、互联网工具、数字媒体工具、便携式数字助理(PDA)、便携式音乐/视频播放器以及视频游戏控制器。尽管高速缓存存储器可以与使用该高速缓存存储器的处理器位于相同的裸片,但是在某些情况下,处理器和高速缓存存储器可以位于不同的裸片(例如,独立模块内的独立芯片,或者单个模块内的独立芯片)上。
示例性系统
图1示出了按照本发明实施方式的示例性系统100。如图所示,系统100可以包括以下各项的任意组合:多个处理器110、L3高速缓存/L4高速缓存/存储器112(此后统称为存储器)、图形处理单元(GPU)104、输入/输出(I/O)接口106以及存储设备108。存储器112优选地是随机访问存储器,其大小足以容纳由处理器110操作的必要的编程和数据结构。尽管将存储器112示为单个实体,但是应当理解,存储器112实际上可以包括多个模块,并且存储器112可以存在于多个级别,例如,L3高速缓存、L4高速缓存以及主存储器。
存储设备108优选地是直接访问存储设备(DASD)。尽管将其示为单个单元,但是其可以是固定和/或可拆卸存储设备的组合,诸如硬盘驱动、软盘驱动、带驱动、可拆卸存储卡或者光学存储设备。存储器112和存储设备108可以是跨过多个主存储设备和次存储设备的一个虚拟地址空间的部分。
I/O接口106可以提供处理器110与输入/输出设备之间的接口。示例性输入设备例如包括键盘、小键盘、光笔、触摸屏、轨迹球或者语音识别单元、音频/视频播放器等。输出设备可以是将输出给予用户的任何设备,例如传统的显示屏幕。
图形处理单元(GPU)104可以配置用于从处理器110接收图形数据,例如2维和3维图形数据。GPU 106可以执行一个或多个计算,以操纵图形数据并将图像呈现在显示屏幕上。
处理器110可以包括多个处理器内核114。处理器内核114可以配置用于执行从存储器112获取的指令的流水线执行。每个处理器内核114可以具有相关联的L1高速缓存116。每个L1高速缓存116可以是位于最靠近相关联存储器内核114的、相对较小的存储器高速缓存,并且可以配置用于为相关联的处理器内核114提供对指令和数据(此后统称为数据)的快速访问。
处理器110还可以包括至少一个L2高速缓存118。相对于L1高速缓存116而言,L2高速缓存118可以较大。每个L2高速缓存118可以与一个或多个L1高速缓存相关联,并且可以配置用于为相关联的一个或多个L1高速缓存提供数据。例如,处理器内核114可能请求未被包含在其关联的L1高速缓存中的数据。因此,处理器内核114所请求的数据可以从L2高速缓存118获取,并且存储在与该处理器内核114相关联的L1高速缓存116中。在本发明的一个实施方式中,L1高速缓存116以及L2高速缓存118可以是基于SRAM的设备。然而,本领域技术人员将会认识到,L1高速缓存116和L2高速缓存118可以包括任何其他类型的存储器,例如DRAM。
如果在L2高速缓存118中发生高速缓存未命中,则处理器内核110所请求的数据可以从L3高速缓存112获取。相对于L1高速缓存116和L2高速缓存118而言,L3高速缓存112可以较大。尽管在图1中示出了单个L3高速缓存112,但是本领域的技术人员将会认识到,也可以实现多个L3高速缓存112。每个L3高速缓存112可以与多个L2高速缓存118相关联,并且可以配置用于与相关联的L2高速缓存118交换数据。本领域的技术人员还将认识到,系统100中还可以包括一个或多个更高级别的高速缓存,例如L4高速缓存。每个更高级别的高速缓存可以与下一较低级别的一个或多个高速缓存相关联。
图2是描绘按照本发明实施方式的处理器110的示例性详细视图的框图。如图2所示,处理器110可以包括L2高速缓存套组210、L1高速缓存116、预解码器/调度器221以及内核114。为了简化,图2示出了处理器110的单个内核114并且关于该单个内核114来进行描述。在一个实施方式中,每个内核114可以是同样的(例如,包含具有相同流水线级布置的同样的流水线)。对于其他实施方式,内核114可以是不同的(例如,包含具有不同流水线级布置的不同流水线)。
L2高速缓存套组210可以包括L2高速缓存118、L2高速缓存访问电路211、L2高速缓存目录212以及性能监测器213。在本发明的一个实施方式中,L2高速缓存(和/或更高级别的高速缓存,例如L3和/或L4高速缓存)可以包含处理器110所使用的部分指令和数据。在某些情况下,处理器110可能请求未被包含在L2高速缓存118中的指令和数据。在所请求的指令和数据未被包含在L2高速缓存118中的情况下,可以(或从较高级别的高速缓存,或从系统存储器112)获取所请求的指令,并将其置于L2高速缓存中。L2高速缓存套组210可以在多个处理器内核114之间共享。
在一个实施方式中,L2高速缓存118可以具有L2高速缓存目录212,其用来跟踪当前L2高速缓存118中的内容。在将数据添加到L2高速缓存118时,可以在L2高速缓存目录212中放置相应的条目。在从L2高速缓存118中移除数据时,可以移除L2高速缓存目录212中的相应条目。性能监测器213可以监测和收集处理器110的相关数据。性能监测将在下文章节中更为详细地讨论。
当处理器内核114从L2高速缓存118请求指令时,例如可以经由总线270将指令传送至L1高速缓存220。如图2所示,L1高速缓存220可以包括L1指令高速缓存(L1I-高速缓存)222、L1 I-高速缓存目录223、L1数据高速缓存(L1D-高速缓存)224以及L1 D-高速缓存目录225。L1 I-高速缓存222和L1 D-高速缓存224可以是图1中所示的L1高速缓存116的部分。
在本发明的一个实施方式中,可以在称为I-线的组中从L2高速缓存118取回指令。类似地,可以经由总线270从称为D-线的组中从L2高速缓存118取回数据。I线可以存储在I-高速缓存222中,而D-线可以存储在D-高速缓存224中。I-线和D-线可以使用L2访问电路210来从L2高速缓存118取回。
在本发明的一个实施方式中,从L2高速缓存118获取的I-线可以首先由预解码器和调度器221来处理,并且I-线可以置于I-高速缓存222中。为了进一步改进处理器性能,指令常常是预解码的,例如,从L2(或者更高级别的)高速缓存获取I-线。这种预解码可以包括各种功能,诸如地址生成、分支预测以及调度(确定应当发布指令的顺序),其作为控制指令执行的分派信息(或者一组标志)而被捕获。对于某些实施方式,预解码器(和调度器)221可以在多个内核114以及L1高速缓存之间共享。
内核114可以从图2中所示的发布和分派电路234接收指令,并且执行指令。在一个实施方式中,取指电路236可以用来取回用于内核114的指令。例如,取指电路236可以包含程序计数器,其跟踪正在内核中执行的当前指令。内核中的分支单元可以用来在遇到分支指令时改变程序计数器。I-线缓冲区232可以用来存储从L1 I-高速缓存222取回的指令。发布和分派电路234可以用来将从I-线缓冲区232取回的指令分组到指令群组中,这些指令群组继而可以并行地发布给内核114。在某些情况下,发布和分派电路可以使用由预解码器和调度器221提供的信息来形成适当的指令群组。
除了从发布和分派电路234接收指令之外,内核114还可以从各种位置接收数据。例如,在某些情况下,内核114可能需要来自数据寄存器的数据,并且可以访问寄存器文件240以获得数据。在内核114需要来自存储器位置的数据的情况下,高速缓存加载和存储电路250可以用来从D-高速缓存224加载数据。在执行这种加载的情况下,针对所需数据的请求可以发布到D-高速缓存224。同时,可以检查D-高速缓存目录225,以确定所需的数据是否位于D-高速缓存224中。在D-高速缓存224包含期望数据的情况下,D-高速缓存目录225可以指示:D-高速缓存224包含期望数据,并且D-高速缓存访问可以在此后某时完成。在D-高速缓存224没有包含期望数据的情况下,D-高速缓存目录225可以指示:D-高速缓存224没有包含期望数据。因为对D-高速缓存目录225的访问可以快于对D-高速缓存224的访问,因此可以在访问D-高速缓存目录225之后、但完成D-高速缓存访问之前,将针对期望数据的请求发布到L2高速缓存118(例如,使用L2访问电路210)。
在某些情况下,数据可以在内核114中修改。经修改的数据可以写入寄存器文件或者存储在存储器中。写回电路238可以用来将数据写回寄存器文件240。在某些情况下,写回电路238可以使用高速缓存加载和存储电路250,来将数据写回D-高速缓存224。可选地,内核114可以直接访问高速缓存加载和存储电路250来执行存储。在某些情况下,如下文描述,写回电路238还可以用来将指令写回I-高速缓存222。
如上所述,发布和分派电路234可以用来形成指令群组,并且将形成的指令群组发布到内核114。发布和分派电路234还可以包括如下电路,该电路用来旋转以及合并I-线中的指令,由此形成适当的指令群组。发布群组的形成可以考虑多种因素,诸如发布群组中的指令之间的依赖性,以及可以通过指令排序而实现的优化,这将在下文更为详细地描述。一旦形成了发布群组,可以将发布群组并行地分派给处理器内核114。在某些情况下,指令群组可以包含用于内核114中每个流水线的指令。可选地,指令群组可以包含较少数目的指令。
性能监测
如上所述,性能监测器213可以包括在L2高速缓存套组210中,如图2所示。性能监测器213可以包括事件检测和控制逻辑,其包括计数器、控制寄存器、多路器等。性能监测器213可以配置用于收集和分析与指令的执行、处理器内核114与存储器层级之间的交互等有关的数据,以评估系统性能。
由性能监测器213计算的示例性参数可以包括每指令时钟周期(CPI)、高速缓存未命中率、转换后备缓冲区(TLB)未命中率、高速缓存命中次数、高速缓存未命中处罚等。在某些实施方式中,性能监测器213可以监测预定事件的发生,例如,对特定存储器位置的访问,或者预定指令的执行。在本发明的一个实施方式中,性能监测器213可以配置用于确定特定事件的发生频率,例如,表示每秒发生的加载指令的数目,或者每秒发生的存储指令的数目等。
在现有技术系统中,性能监测器通常包括在处理器内核中。因此,在现有技术系统中,来自L2高速缓存套组的性能数据通过总线270被发送至处理器内核中的性能监测器。然而,最重要的性能统计可能涉及L2高速缓存统计,例如,L2高速缓存未命中率、TLB未命中率等。本发明的实施方式通过将性能监测器213包括在L2高速缓存套组中,来降低总线270上的通信代价,其中最重要的性能数据可以容易地获取。
此外,通过将性能监测器包括在L2高速缓存套组而不是处理器内核114中,可以使处理器内核114更小且更为有效。将性能监测器包括在L2高速缓存套组中的另一优点在于:性能监测器213可以操作于较低的时钟频率。在一个实施方式中,操作的频率对于性能监测器213的工作而言可能并不重要。例如,性能监测器213可能在数千个时钟周期上收集较长的信息踪迹,以便检测和计算性能参数。将踪迹信息送往性能监测器213的延迟可能是可接受的,因此,可能无需以高速操作性能监测器。通过将性能监测器213包括在L2高速缓存套组而不是处理器内核114中,处理器内核114的资源和空间可以致力于改进系统的性能。
在本发明的一个实施方式中,性能数据可以从处理器内核114传送到L2高速缓存套组210中的性能监测器213。从处理器内核114传送到性能监测器213的示例性性能数据例如可以包括用于计算处理器内核CPI的数据。在本发明的一个实施方式中,性能数据可以在总线270的一个或多个死周期(dead cycle)期间,通过总线270从处理器内核114传送到性能监测器213。死周期可以是如下周期,在该周期期间,没有使用总线270在处理器内核114与L2高速缓存118之间交换数据。换言之,当用于L2高速缓存数据与处理器内核114的双向传送的总线270没有用于这种L2高速缓存数据传送时,可以使用相同的总线270将性能数据发送至性能监测器213。
尽管图2中示出了单个处理器内核114,但是本领域的技术人员将会认识到,处理器110可以包括多个处理器内核114。在本发明的一个实施方式中,性能监测器213可以配置用于从处理器110的多个处理器内核114的每一个接收性能数据。换言之,本发明的实施方式可以允许在多个处理器内核114之间共享性能监测器213。性能数据可以使用总线270来传送,从而避免了对传送性能数据的附加线路的需要,由此降低芯片复杂性。
在本发明的一个实施方式中,总线270可以包括用于将数据从处理器内核114传送到性能监测器213的一个或多个附加线路。例如,如图3所示,在一个特定实施方式中,处理器110可以包括四个处理器内核114。总线270可以将L2高速缓存套组连接至处理器内核114。总线270的第一部分可以用来在处理器内核与L2高速缓存118之间交换数据。总线270的第二部分可以用来在性能监测器213与处理器内核之间交换数据。
例如,在本发明的特定实施方式中,总线270可以是144字节宽。总线270的128字节宽的部分可用来将数据和指令从L2高速缓存118传送至处理器内核114。总线270的16字节宽的部分可以用来将性能数据从处理器内核114传送至包括在L2高速缓存套组210中的性能监测器213。
例如,参考图3,L2高速缓存套组210被示为包括L2高速缓存118、L2高速缓存目录212、以及经由总线270连接至内核114(示出了四个内核,内核0到内核3)的性能监测器213。如图3所示,总线270可以包括用于与L2高速缓存118双向传送数据的第一部分310。如图3所示,总线270的第一部分310可以与每个处理器内核114耦合。在本发明的一个实施方式中,第一部分310可以是通过总线的存储。换言之,经由第一部分310写入L2高速缓存118的数据还可以存储在存储器中。
总线270还可以包括用于将处理器114耦合至性能监测器213的第二部分320。例如,在图3中,部分320包括用于将每个处理器内核0-3耦合至性能监测器213的总线EBUS0-EBUS3。可以经由总线EBUS0-EBUS3,将来自每个处理器内核114的性能数据发送至性能监测器213。
尽管可以提供第二部分320用于将性能数据从处理器内核114传送至性能监测器213,但除了第二部分320之外,还可以提供第一部分310的一个或多个线路用于传送性能数据。例如,在总线部分310的死周期期间,除了部分320之外,总线部分310的一个或多个线路可以用来传送性能数据。
在本发明的一个实施方式中,用来将性能数据从内核114传送至性能监测器213的总线(例如,图3的总线EBUS0-EBUS3)可以利用相对较细的线来形成。可以利用相对更细的线来形成总线EBUS0-EBUS3,以便节省空间。尽管如上所述,较细的线可能导致将性能数据从处理器内核114传送到性能监测器213的较大延迟,但是该延迟对于性能监测器的操作而言可能并不重要,因此该延迟是可接受的。
图3还示出了按照本发明实施方式的性能监测器213的示例性组件。如图所示,性能监测器213可以包括闩锁/逻辑321、统计随机访问存储器322以及动态随机访问存储器323。闩锁321可以用来捕获在L2高速缓存套组210和/或总线270中出现的数据和事件。逻辑321可以用来分析包含在闩锁、SRAM 322和/或DRAM 323中的已捕获数据,以计算性能参数,例如高速缓存未命中率。
在本发明的一个实施方式中,SRAM 322可以充当将性能数据传送至DRAM 323的缓冲区。在本发明的一个实施方式中,SRAM 322可以是异步缓冲区。例如,性能数据可以以第一时钟频率存储在SRAM 322中,其中第一时钟频率例如是处理器内核144操作的频率。可以以第二时钟频率将性能数据从SRAM 322传送至DRAM323,其中第二时钟频率例如是性能监测器213操作的频率。通过提供异步SRAM缓冲区,可以以内核频率从内核114捕获性能数据,而以性能监测频率来执行对数据的分析。如上所述,性能监测频率可以低于内核频率。
在性能监测器213中包括DRAM 323的一个优点在于:与SRAM器件相比,DRAM器件通常要密集的多,并且需要少得多的空间。因此,性能监测器可用的存储器可以极大地增加,由此允许在多个处理器内核114之间更为有效地共享性能监测器。
结论
通过将性能监测器包括在L2高速缓存套组中,本发明的实施方式允许处理器内核变得更小且更为有效。此外,由于最重要的性能参数是在L2高速缓存套组中获得的,因此极大地减少了通过耦合L2高速缓存套组与处理器内核的总线的通信。
尽管上文涉及本发明的实施方式,但是在不脱离本发明基本范围的情况下,可以设计本发明的其他和进一步的实施方式,本发明的范围由所附权利要求限定。

Claims (22)

1.一种用于收集性能数据的方法,所述方法包括:
通过位于处理器的L2高速缓存套组中的性能监测器来监测L2高速缓存访问,以捕获与所述L2高速缓存访问有关的性能数据;
通过将所述处理器的至少一个处理器内核耦合至所述L2高速缓存套组的总线,由所述性能监测器从所述至少一个处理器内核接收性能数据;以及
基于至少一个所述L2高速缓存访问以及从所述至少一个处理器内核接收到的所述性能数据,来计算一个或多个性能参数。
2.根据权利要求1所述的方法,其中将所述L2高速缓存套组耦合至所述至少一个处理器内核的所述总线包括:第一组总线线路,用于将所述性能数据传送至所述性能监测器;以及第二组总线线路,用于在所述L2高速缓存与所述至少一个处理器内核之间交换数据。
3.根据权利要求2所述的方法,其中所述第一组总线线路与所述第二组总线线路相比相对较细。
4.根据任一前述权利要求所述的方法,其中,当所述总线没有用于与所述L2高速缓存交换数据时,所述至少一个处理器内核通过所述总线来传送所述性能数据。
5.根据任一前述权利要求所述的方法,其中所述性能监测器包括一个或多个闩锁,用于捕获所述L2高速缓存套组和所述总线中的性能数据。
6.根据任一前述权利要求所述的方法,其中所述性能监测器包括控制逻辑,用于基于所述L2高速缓存访问和从所述至少一个处理器内核接收到的所述性能数据,来计算所述一个或多个性能参数。
7.根据任一前述权利要求所述的方法,其中所述性能监测器包括动态随机访问存储器(DRAM)用于存储性能数据。
8.根据权利要求7所述的方法,其中所述性能监测器包括静态随机访问存储器(SRAM),其中所述SRAM以第一频率从所述至少一个处理器内核接收所述性能数据,并且以第二频率将所述性能数据传送给所述DRAM,其中所述第一频率大于所述第二频率。
9.一种位于处理器的L2高速缓存套组中的性能监测器,所述性能监测器配置用于:
监测对所述L2高速缓存套组中的L2高速缓存的访问,并且计算与L2高速缓存访问有关的一个或多个性能参数;以及
通过将所述L2高速缓存套组耦合至至少一个处理器内核的总线,从所述至少一个处理器内核接收性能数据。
10.根据权利要求9所述的性能监测器,其中将所述L2高速缓存套组耦合至所述至少一个处理器内核的所述总线包括:第一组总线线路,用于将所述性能数据传送至所述性能监测器;以及第二组总线线路,用于在所述L2高速缓存与所述至少一个处理器内核之间交换数据。
11.根据权利要求10所述的性能监测器,其中所述第一组总线线路与所述第二组总线线路相比相对较细。
12.根据权利要求9、10或11所述的性能监测器,其中所述至少一个处理器内核配置用于:在所述总线没有用来与所述L2高速缓存交换数据时,通过所述总线来传送所述性能数据。
13.根据权利要求9到12任一项所述的性能监测器,其中所述性能监测器包括一个或多个闩锁,其中所述一个或多个闩锁配置用于捕获所述L2高速缓存套组和所述总线中的性能数据。
14.根据权利要求9到13任一项所述的性能监测器,其中所述性能监测器包括控制逻辑,用于基于所述L2高速缓存访问和从所述至少一个处理器内核接收到的所述性能数据,来计算一个或多个性能参数。
15.根据权利要求9到14任一项所述的性能监测器,其中所述性能监测器包括动态随机访问存储器(DRAM)用于存储性能数据。
16.根据权利要求15所述的性能监测器,其中所述性能监测器包括静态随机访问存储器(SRAM),其中所述SRAM配置用于以第一频率从所述至少一个处理器内核接收所述性能数据,并且以第二频率将所述性能数据传送给所述DRAM,其中所述第一频率大于所述第二频率。
17.一种系统,包括:
至少一个处理器内核;
L2高速缓存套组,其包括L2高速缓存和性能监测器;以及
将所述L2高速缓存套组耦合至所述至少一个处理器内核的总线,
其中所述性能监测器配置用于:
监测L2高速缓存访问,以计算与L2高速缓存访问有关的一个或多个性能参数;以及
通过将所述L2高速缓存套组耦合至所述至少一个处理器内核的所述总线,从所述至少一个处理器内核接收性能数据。
18.根据权利要求17所述的系统,其中所述总线包括:第一组总线线路,用于将所述性能数据传送至所述性能监测器;以及第二组总线线路,用于在所述L2高速缓存与所述至少一个处理器内核之间交换数据。
19.根据权利要求18所述的系统,其中所述第一组总线线路与所述第二组总线线路相比相对较细。
20.根据权利要求17、18或19所述的系统,其中所述至少一个处理器内核配置用于:在所述总线没有用来与所述L2高速缓存交换数据时,通过所述总线来传送所述性能数据。
21.根据权利要求17到20任一项所述的系统,其中所述性能监测器包括:
一个或多个闩锁;
控制逻辑,用于捕获和计算一个或多个性能参数;
静态随机访问存储器(SRAM);以及
动态随机访问存储器(DRAM)。
22.根据权利要求21所述的系统,其中所述SRAM配置用于:以第一频率从所述至少一个处理器内核接收所述性能数据,并且以第二频率将所述性能数据传送给所述DRAM,其中所述第一频率大于所述第二频率。
CN200880015791A 2007-06-27 2008-06-05 处理器性能监测 Pending CN101681289A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/769,005 US20090006036A1 (en) 2007-06-27 2007-06-27 Shared, Low Cost and Featureable Performance Monitor Unit
US11/769,005 2007-06-27
PCT/EP2008/057016 WO2009000625A1 (en) 2007-06-27 2008-06-05 Processor performance monitoring

Publications (1)

Publication Number Publication Date
CN101681289A true CN101681289A (zh) 2010-03-24

Family

ID=39769355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880015791A Pending CN101681289A (zh) 2007-06-27 2008-06-05 处理器性能监测

Country Status (6)

Country Link
US (1) US20090006036A1 (zh)
EP (1) EP2171588A1 (zh)
JP (1) JP2010531498A (zh)
KR (1) KR20090117700A (zh)
CN (1) CN101681289A (zh)
WO (1) WO2009000625A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218285A (zh) * 2013-03-25 2013-07-24 北京百度网讯科技有限公司 基于cpu寄存器的内存性能监控方法与装置
CN108021487A (zh) * 2017-11-24 2018-05-11 中国航空工业集团公司西安航空计算技术研究所 一种gpu图形处理性能监测与分析方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19537325C1 (de) * 1995-10-06 1996-11-28 Memminger Iro Gmbh Fadenliefergerät mit elektronischer Ansteuerung
US20080270653A1 (en) * 2007-04-26 2008-10-30 Balle Susanne M Intelligent resource management in multiprocessor computer systems
JP4861270B2 (ja) * 2007-08-17 2012-01-25 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8610727B1 (en) * 2008-03-14 2013-12-17 Marvell International Ltd. Dynamic processing core selection for pre- and post-processing of multimedia workloads
US9172968B2 (en) * 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
US9021206B2 (en) 2011-08-25 2015-04-28 International Business Machines Corporation Use of cache statistics to ration cache hierarchy access
KR101694310B1 (ko) * 2013-06-14 2017-01-10 한국전자통신연구원 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666514A (en) * 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
US5557548A (en) * 1994-12-09 1996-09-17 International Business Machines Corporation Method and system for performance monitoring within a data processing system
US5793941A (en) * 1995-12-04 1998-08-11 Advanced Micro Devices, Inc. On-chip primary cache testing circuit and test method
US6088769A (en) * 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables
US6349394B1 (en) * 1999-03-31 2002-02-19 International Business Machines Corporation Performance monitoring in a NUMA computer
US6446166B1 (en) * 1999-06-25 2002-09-03 International Business Machines Corporation Method for upper level cache victim selection management by a lower level cache
US6253286B1 (en) * 1999-08-05 2001-06-26 International Business Machines Corporation Apparatus for adjusting a store instruction having memory hierarchy control bits
EP1182567B1 (en) * 2000-08-21 2012-03-07 Texas Instruments France Software controlled cache configuration
US20030033483A1 (en) * 2001-08-13 2003-02-13 O'connor Dennis M. Cache architecture to reduce leakage power consumption
US6937961B2 (en) * 2002-09-26 2005-08-30 Freescale Semiconductor, Inc. Performance monitor and method therefor
US6701412B1 (en) * 2003-01-27 2004-03-02 Sun Microsystems, Inc. Method and apparatus for performing software sampling on a microprocessor cache
US7054874B2 (en) * 2003-03-05 2006-05-30 Sun Microsystems, Inc. Modeling overlapping of memory references in a queueing system model
US20060031628A1 (en) * 2004-06-03 2006-02-09 Suman Sharma Buffer management in a network device without SRAM
US7257678B2 (en) * 2004-10-01 2007-08-14 Advanced Micro Devices, Inc. Dynamic reconfiguration of cache memory

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218285A (zh) * 2013-03-25 2013-07-24 北京百度网讯科技有限公司 基于cpu寄存器的内存性能监控方法与装置
CN103218285B (zh) * 2013-03-25 2015-11-25 北京百度网讯科技有限公司 基于cpu寄存器的内存性能监控方法与装置
CN108021487A (zh) * 2017-11-24 2018-05-11 中国航空工业集团公司西安航空计算技术研究所 一种gpu图形处理性能监测与分析方法
CN108021487B (zh) * 2017-11-24 2021-03-26 中国航空工业集团公司西安航空计算技术研究所 一种gpu图形处理性能监测与分析方法

Also Published As

Publication number Publication date
US20090006036A1 (en) 2009-01-01
JP2010531498A (ja) 2010-09-24
WO2009000625A1 (en) 2008-12-31
EP2171588A1 (en) 2010-04-07
KR20090117700A (ko) 2009-11-12

Similar Documents

Publication Publication Date Title
CN101681289A (zh) 处理器性能监测
Calder et al. Predictive sequential associative cache
Loh Extending the effectiveness of 3D-stacked DRAM caches with an adaptive multi-queue policy
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
Zhuang et al. Reducing cache pollution via dynamic data prefetch filtering
CN103348333B (zh) 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置
CN100377117C (zh) 用于虚实地址变换及读写高速缓冲存储器的方法及装置
US20060106991A1 (en) Victim prefetching in a cache hierarchy
US7454580B2 (en) Data processing system, processor and method of data processing that reduce store queue entry utilization for synchronizing operations
US6449698B1 (en) Method and system for bypass prefetch data path
US7673101B2 (en) Re-assigning cache line ways
EP2524314B1 (en) System and method to access a portion of a level two memory and a level one memory
US6892173B1 (en) Analyzing effectiveness of a computer cache by estimating a hit rate based on applying a subset of real-time addresses to a model of the cache
CN1896971B (zh) 操作系统辅助磁盘高速缓存系统和方法
US20090006777A1 (en) Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor
Wang et al. Prefetching for cloud workloads: An analysis based on address patterns
Hameed et al. Architecting on-chip DRAM cache for simultaneous miss rate and latency reduction
US7610458B2 (en) Data processing system, processor and method of data processing that support memory access according to diverse memory models
Zhang et al. Design and optimization of large size and low overhead off-chip caches
US8255632B2 (en) Pre-fetch control apparatus
CN112817639B (zh) Gpu读写单元通过操作数收集器访问寄存器文件的方法
US20060259695A1 (en) Visualizing contents and states of hierarchical storage systems across multiple cores
US20040153611A1 (en) Methods and apparatus for detecting an address conflict
CN110688238B (zh) 一种分离存储的队列实现方法及装置
JPH08153039A (ja) 半導体メモリ装置、及び、それを用いた情報処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20100324