性能测量单元、包括该单元的处理器核心和处理剖析方法

Download PDF

Info

Publication number
CN103838539A
Authority
CN
Grant status
Application
Patent type
Prior art keywords
counter
event
events
shadowed
occurring
Prior art date
Application number
CN 201310597957
Other languages
English (en)
Inventor
李敏周
艾格·伯恩哈德
李在镇
金永洛
金鸿圭
金洪准
Original Assignee
三星电子株式会社
首尔大学校产学协力团
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

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL 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; COUNTING
    • G06FELECTRICAL 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/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Abstract

本发明提供了一种性能测量单元、包括该单元的处理器核心和处理剖析方法。所述性能测量单元包括:事件计数器,被配置为记录指示在处理器核心中发生的事件的数量的计数器值;映射事件计数器,被配置为将记录在事件计数器中的计数器值复制到映射事件计数器。所述性能测试单元被配置为使用事件计数器和映射事件计数器来确定在处理器核心中发生的有效事件的数量。所述有效事件与当执行所选择的处理时发生的事件相应。

Description

性能测量单元、包括该单元的处理器核心和处理剖析方法

[0001] 本申请要求于2012年11月23日提交的第10_2012_0133858号韩国专利申请的优先权,该申请的公开通过引用全部合并于此。

技术领域

[0002] 本发明的示例性实施例涉及性能测量单元、包括该单元的处理器核心以及处理剖析方法。

背景技术

[0003] 参照执行指令的中央处理单元(CPU),剖析涉及对当前运行的程序的执行状态或者与操作系统(OS)内核的通信状态的分析。通过利用剖析(profiling),可测量程序的性能信息,并且可检测造成性能恶化的因素。

发明内容

[0004] 本发明的示例性实施例提供了一种能够在多任务操作系统中进行复杂的处理剖析的性能测量单元。

[0005] 本发明的示例性实施例还提供了一种包括能够在多任务操作系统中进行复杂的处理剖析的性能测量单元的处理器核心。

[0006] 本发明的示例性实施例还提供了一种能够在多任务操作系统中进行复杂的处理剖析的处理剖析方法。

[0007] 根据本发明的示例性实施例,一种性能测量单元包括:第一事件计数器,记录指示在处理器核心中发生的事件的数量的计数器值;第二事件计数器,复制记录在第一事件计数器中的计数器值。

[0008] 根据本发明的示例性实施例,一种性能测试单元包括:事件计数器,记录指示在处理器核心中发生的事件的数量的计数器值;映射事件计数器,复制记录在事件计数器中的计数器值,其中,响应于第一指令来将所述记录在事件计数器中的计数器值复制到映射事件计数器。

[0009] 根据本发明的示例性实施例,一种处理器核心包括:中央处理单元(CPU),执行一个或多个处理;性能测量单元,测量指示当执行一个或多个处理时发生的事件的数量的计数器值,其中,所述性能测量单元包括:第一事件计数器,记录计数器值;第二事件计数器,复制记录在第一事件计数器中的计数器值。

[0010] 根据本发明的不例性实施例,一种处理剖析方法包括:由处理器核心执行一个或多个处理,在第一事件计数器中记录指示当执行一个或多个处理时发生的事件的数量的计数器值,并且将记录在第一事件计数器中的计数器值复制到第二事件计数器。

[0011] 根据本发明的示例性实施例,一种性能测量单元包括:事件计数器,被配置为记录指示在处理器核心中发生的事件的数量的计数器值;映射事件计数器,被配置为将记录在事件计数器中的计数器值复制到映射事件计数器。所述性能测量单元被配置为使用事件计数器和映射事件计数器来确定在处理器核心中发生的有效事件的数量,其中,所述有效事件与当执行所选择的处理时发生的事件相应。

[0012] 根据本发明的示例性实施例,一种性能测量单元包括:事件计数器,被配置为记录指示在处理器核心中发生的事件的数量的计数器值;映射事件计数器,被配置为将记录在事件计数器中的计数器值复制到映射事件计数器。响应于第一指令来将记录在事件计数器中的计数器值复制到映射事件计数器。所述性能测量单元被配置为使用事件计数器和映射事件计数器来确定在处理器核心中发生的有效事件的数量,其中,所述有效事件与当执行所选择的处理时发生的事件相应。

[0013] 根据本发明的示例性实施例,一种处理器核心包括:中央处理单元(CPU),被配置为执行一个或多个处理;性能测量单元,被配置为测量指示当执行一个或多个处理时发生的事件的数量的计数器值。所述性能测量单元包括:事件计数器,被配置为记录计数器值;映射事件计数器,被配置为将记录在事件计数器中的计数器值复制到映射事件计数器。所述性能测量单元被配置为使用事件计数器和映射事件计数器来确定在处理器核心中发生的有效事件的数量,其中,所述有效事件与当执行从所述一个或多个处理之中所选择的处理时发生的事件相应。

[0014] 根据本发明的不例性实施例,一种处理剖析方法包括:由处理器核心执行一个或多个处理,在事件计数器中记录指示当执行一个或多个处理时发生的事件的数量的计数器值,将记录在事件计数器中的计数器值复制到映射事件计数器,并且使用计数器值来确定在处理器核心中发生的有效事件的数量,其中,有效事件与当执行从所述一个或多个处理之中所选择的处理时发生的事件相应。

[0015] 根据本发明的不例性实施例,一种处理剖析方法包括:由处理器核心执行一个或多个处理,在事件计数器中记录指示当执行一个或多个处理时发生的事件的数量的计数器值,确定是否已经发生第一事件,当确定已经发生第一事件时将记录在事件计数器中的计数器值复制到映射事件计数器,当确定还未发生第一事件时确定是否已经发生第二事件,并且当确定已经发生第二事件时将复制到映射事件计数器的计数器值复制回事件计数器。

附图说明

[0016] 通过参照附图详细描述本发明的示例性实施例,本发明的以上和其它特征将变得更加清楚,其中:

[0017] 图1是根据本发明的示例性实施例的性能测量单元的示意性框图;

[0018] 图2是根据本发明的示例性实施例的性能测量单元的示意性框图;

[0019] 图3是根据本发明的示例性实施例的性能测量单元的示意性框图;

[0020] 图4是示出根据本发明的示例性实施例的处理剖析方法的流程图;

[0021] 图5是示出根据本发明的示例性实施例的处理剖析方法的流程图;

[0022] 图6至图8示意性地示出根据本发明的示例性实施例的由处理剖析方法引起的事件计数器值的改变;

[0023] 图9是根据本发明的示例性实施例的处理器核心的示意性框图;

[0024] 图10是根据本发明的示例性实施例的处理器核心的示意性框图;

[0025] 图11是根据本发明的示例性实施例的包括处理器核心的剖析系统的示意性框图;

[0026] 图12是根据本发明的示例性实施例的合并处理器核心的电子系统的示意性框图;

[0027] 图13和图14示出可应用根据本发明的示例性实施例的处理器核心的示例性电子系统。

具体实施方式

[0028] 在下文中,将参照附图更加充分地描述本发明的示例性实施例。贯穿附图,相似的符号可表示相似的元件。

[0029] 将理解的是,当层被表示为在另一层或底层“上”时,该层可直接在其它层或底层之上,或者也可存在中间层。

[0030] 在下面的描述中,性能测量单元(PMU)是处理器核心的内部组件之一。PMU是被配置为测量已经在处理器核心中发生的事件的组件。所述已经在处理器内核中发生的事件可以是例如存储选项(例如,读或写)、缓存事件(例如,命中、未命中或回写)、执行指令等,然而,所述事件不限于此。

[0031] PMU计数器是被提供在PMU内的寄存器。所述PMU计数器对在处理器内核中发生的事件进行计数,并且记录PMU事件计数的累计值。PMU可被编程为软件,并且PMU计数器可使用特定汇编指令来执行读和写操作。

[0032] 在下面的描述中,从PMU计数器读取的PMU计数器值可被作为硬件PMU计数来使用。

[0033] 在下面的描述中,PMU计数器值可被称为事件计数器值。

[0034] 运行时间环境(RTE)和操作系统(OS)可管理硬件并且可支持多任务和处理调度。

[0035] 处理调度表示由支持分时系统的OS内核通过根据优先级的顺序划分中央处理单元(CPU)的使用时间来执行多个处理。尽管本发明的示例性实施例会将OS内核描述为Linux®内核,但OS内核不限于此。

[0036] 图1是根据本发明的示例性实施例的性能测量单元的示意性框图。

[0037] 参照图1,性能测量单元(PMU) 100可包括更新逻辑单元110、事件计数器120、映射事件计数器130和配置逻辑单元140。

[0038] 当在处理器核心中发生事件时,更新逻辑单元110累计地记录被记录在事件计数器120中的计数器值。当在处理器核心中发生的事件被计数时,更新逻辑单元110更新被记录在事件计数器120中的计数器值。

[0039] 事件计数器120具有被记录在其中的计数器值。计数器值指示在处理器核心中发生的事件的数量。OS内核可引用被记录在事件计数器120中的计数器值,以下将使用特定汇编指令来更加详细地对此进行描述。

[0040] 映射事件计数器130可复制被记录在事件计数器120中的计数器值。事件计数器120可复制回被复制到映射事件计数器130的计数器值。OS内核可使用特定汇编指令来引用被记录在映射事件计数器130中的计数器值。

[0041] 可将事件计数器120和映射事件计数器130合并在PMU计数器中。

[0042] 配置逻辑单元140设置事件计数器120和映射事件计数器130的整体操作。[0043] 如果根据由配置逻辑单元140设置的配置来转换处理器核心的操作模式,则可将被记录在事件计数器120中的计数器值复制到映射事件计数器130,或者可将被记录在映射事件计数器130中的计数器值复制到事件计数器120。

[0044] 因此,当处理器核心进入预定的第一操作模式时,映射事件计数器130可复制被记录在事件计数器120中的计数器值。可选地,当处理器核心被从预定的第一操作模式释放并且进入预定的第二操作模式时,事件计数器120可复制回被复制在映射事件计数器130中的计数器值。

[0045] 预定的第一操作模式可以是例如内核模式,并且预定的第二操作模式可以是例如用户模式。

[0046] 参照内核模式,处理器核心在访问其它硬件时不会受到限制,可直接访问存储器,并且CPU的所有指令都可被执行。参照用户模式,处理器核心在访问其它硬件或存储器时会受到限制,并且可通过系统API来直接访问其它硬件或存储器。此外,处理器核心仅可执行CPU的某些指令。在所述用户模式下可执行多数应用程序。

[0047] 即使根据由配置逻辑单元140设置的配置来转换处理器核心的操作模式,也可不将被记录在事件计数器120中的计数器值复制到映射事件计数器130,并且/或者可不将被存储在映射事件计数器130中的计数器值复制到事件计数器120。

[0048] 因此,当处理器核心进入预定的第一操作模式时,可选择性地允许映射事件计数器130复制被记录在事件计数器120中的计数器值。可选地,当处理器核心被从预定的第一操作模式释放并且进入预定的第二操作模式时,可选择性地允许事件计数器120复制回被复制到映射事件计数器130的计数器值。

[0049] 此外,如以下将更加详细地进行描述的那样,OS内核可使用特定指令来将预定的计数器值写入映射事件计数器130,或者OS内核可从映射事件计数器130读取所述预定的计数器值。

[0050] 除了更新逻辑单元110、事件计数器120、映射事件计数器130和配置逻辑单元140之外,在图1中显示的PMU100还可包括多个逻辑单元和寄存器。

[0051] 此外,尽管在图1中配置逻辑单元140是单个装置,但配置逻辑单元140不限于此。例如,可将设置事件计数器120和映射事件计数器130的操作的配置逻辑单元140分离地提供为与事件计数器120相应的第一配置逻辑单元和与映射事件计数器130相应的第

二配置逻辑单元。

[0052] 图2是根据本发明的示例性实施例的性能测量单元的示意性框图。为了方便进行说明,下面的描述会集中于在图1和图2中显示的PMU之间的差异,并且会省略对先前所描述过的元件的描述。

[0053] 参照图2,PMU200可包括多个事件计数器221和222。此外,PMU200可包括与多个事件计数器221和222相应的多个映射事件计数器231和232。PMU200还可包括更新逻辑单元210和配置逻辑单元240。

[0054] 可在第一事件计数器221中记录第一计数器值(例如,在处理器核心中发生的缓存命中的计数结果的累计值),并且可在第二事件计数器222中记录第二计数器值(例如,在处理器核心中发生的缓存未命中的计数结果的累计值)。然而,本发明的示例性实施例不限于此。[0055] 此外,第一映射事件计数器231可复制记录在第一事件计数器221中的第一计数器值,并且第一事件计数器221可复制回被复制到第一映射事件计数器231的第一计数器值。第二映射事件计数器232可复制记录在第二事件计数器222中的第二计数器值,并且第二事件计数器222可复制回被复制到第二映射事件计数器232的第二计数器值。

[0056] 尽管图2示出PMU200包括第一事件计数器221和第二事件计数器222,但事件计数器的数量以及相应的映射事件计数器的数量不限于此。例如,示例性实施例可包括两个以上的事件计数器以及两个以上的相应的映射事件计数器。

[0057] 根据在图2中显示的示例性实施例,PMU200可包括根据由PMU200的制造商所提供的规格的多个事件计数器,并且由各个事件计数器测量和记录的事件计数可能彼此相同或不同。

[0058] 图3是根据本发明的示例性实施例的性能测量单元的示意性框图。为了方便进行说明,下面的描述会集中于在图1和图3中显示的PMU之间的差异,并且会省略对先前所描述过的元件的描述。

[0059] 参照图3,PMU300可包括循环计数器321。此外,PMU300可包括与循环计数器321相应的映射循环计数器331。PMU300还可包括多个事件计数器322和323、多个映射事件计数器332和333、更新逻辑单元310和配置逻辑单元340。

[0060] 循环计数器321可具有被累计地记录在其中的在处理器核心中产生的时钟周期的计数结果。

[0061 ] 映射循环计数器331可复制被记录在循环计数器321中的循环计数值,并且循环计数器321可复制回被复制到映射循环计数器331的循环计数值。

[0062] 根据在图3中显示的示例性实施例,PMU300可包括被配置为仅对特定事件进行计数的PMU计数器。尽管图3示出PMU300包括循环计数器321,但本发明的示例性实施例不限于此。例如,PMU300还可包括被配置为记录缓存命中或缓存未命中的计数结果的缓存计数器。

[0063] 在下文中,将参照图4和图5来描述使用根据本发明的示例性实施例的PMU的OS内核的处理器剖析方法。

[0064] 图4是示出根据本发明的示例性实施例的处理剖析方法的流程图。

[0065] 参照图4,在块S410中,处理器核心执行一个或多个处理,并且被包括在一个或多个处理中的指令被执行。

[0066] 在块S420中,PMU测量当执行一个或多个处理时发生的事件的计数器值,并且在事件计数器中记录所测量的计数器值,随后更新事件计数器。如上所述,发生的事件可包括:例如,时钟周期、存储操作、缓存事件、执行指令等。

[0067] 在块430中,PMU确定是否已经发生第一事件。例如,PMU可确定处理器核心是否已经进入内核模式。可使用硬件或软件来确定处理器核心进入内核模式。例如,参照硬件实现,PMU可包括指示处理器核心的操作模式的引脚,以根据所述引脚的值来确定处理器核心是否已经进入内核模式或者已经从内核模式释放。参照软件实现,可利用变量来指示处理器核心是否已经进入内核模式或者已经从内核模式释放。

[0068] 如果确定已经发生了第一事件,则在块S440中,PMU将被记录在事件计数器中的计数器值复制到映射事件计数器。[0069] 如果确定还未发生第一事件,则在块S450中,PMU确定是否已经发生了第二事件。例如,PMU可确定处理器核心是否已经从内核模式释放并且已经进入用户模式。

[0070] 如果确定已经发生了第二事件,则在块S460中,PMU将被复制到映射事件计数器的计数器值复制回事件计数器。如果确定还未发生第二事件,则在块410中,处理器核心执行一个或多个处理,并且包括在一个或多个处理中的指令被执行。在块S470中,处理器核心确定被包括在一个或多个处理中的所有指令的执行是否已经结束。如果确定被包括在一个或多个处理中的所有指令的执行还未结束,则重复执行块S410。

[0071] 在上述过程期间,OS内核可参考被记录在事件计数器或映射事件计数器中的计数器值。在监控处理中,可从OS内核接收计数器值来执行处理剖析。

[0072] 图5是示出根据本发明的示例性实施例的处理剖析方法的流程图。为了方便进行说明,下面的描述会集中于在图4和图5中显示的处理剖析方法之间的差异,并且会省略对先前所描述过的处理的描述。

[0073] 参照图5,在块S510中,处理器核心执行一个或多个处理,并且被包括在一个或多个处理中的指令被执行。

[0074] 在块S520中,PMU测量当执行一个或多个处理时发生的事件的计数器值,并且在事件计数器中记录所测量的计数器值,随后更新事件计数器。如上所述,发生的事件可包括:例如,时钟周期、存储操作、缓存事件、执行指令等。

[0075] 在块530中,PMU确定是否已经发生第一事件。例如,PMU可确定处理器核心是否已经进入内核模式。可使用硬件或软件来确定处理器核心进入内核模式。例如,参照硬件实现,PMU可包括指示处理器核心的操作模式的引脚,以根据所述引脚的值来确定处理器核心是否已经进入内核模式或者已经从内核模式释放。参照软件实现,可利用变量来指示处理器核心是否已经进入内核模式或者已经从内核模式释放。

[0076] 如果确定已经发生了第一事件,则在块S540中,PMU确定是否允许将记录在事件计数器中的计数器值复制到映射事件计数器。根据由配置逻辑单元设置的配置来确定所述计数器值是否允许被复制。

[0077] 如果能够复制计数器值,则在块S550中,PMU将记录在事件计数器中的计数器值复制到映射事件计数器。

[0078] 如果确定还未发生第一事件,则在块S560中,PMU确定是否已经发生了第二事件。例如,PMU可确定处理器核心是否已经从内核模式释放并且已经进入用户模式。

[0079] 如果确定已经发生了第二事件,则在块S570中,PMU确定是否允许将复制到映射事件计数器的计数器值复制回事件计数器。根据由配置逻辑单元设置的配置来确定所述计数器值是否允许被复制回。如果确定还未发生第二事件,则在块510中,处理器核心执行一个或多个处理,并且包括在一个或多个处理中的指令被执行。

[0080] 如果能够复制回计数器值,则在块S580中,PMU将复制到映射事件计数器的计数器值复制回事件计数器。

[0081] 在块S590中,确定被包括在一个或多个处理中的所有指令的执行是否已经结束。如果确定被包括在一个或多个处理中的指令的执行还未结束,则重复执行块S510。

[0082] 在根据图5的示例性实施例的处理剖析方法中,可选择性地使下述步骤能够进行:将记录在事件计数器中的计数器值复制到映射事件计数器,并且/或者将复制到映射事件计数器的计数器值复制回事件计数器。

[0083] 以下,将参照图6至图8来描述根据本发明的示例性实施例的由处理剖析方法引起的事件计数值的改变。图6至图8示意性地示出根据本发明的示例性实施例的由处理剖析方法引起的事件计数器值的改变。

[0084] 参照图6,可将处理器核心的操作模式在用户模式和内核模式之间进行转换,并且在用户模式下执行第一处理(例如,处理I)。在图6中,在处理器核心中的事件的发生被表示为“ X ”。

[0085] 在执行第一处理之前,在时刻tl,将映射事件计数器的计数器值重置为0,其中,所述计数器值在这里被称为映射计数器值。

[0086] 之后,在时刻tl和时刻t2之间,处理器核心在内核模式下进行操作,并且可发生两个事件。在此,将2记录为由PMU测量的事件计数器的计数器值。

[0087] 在时刻t2,处理器核心的操作模式被从内核模式转换为用户模式。在此,将记录在映射事件计数器中的映射计数器值O复制到事件计数器,并且将O记录为事件计数器的计数器值。

[0088] 之后,在时刻t2和时刻t3之间,当在用户模式下进行操作时,处理器核心执行第一处理,并且可发生三个事件。在此,将3记录为由PMU测量的事件计数器的计数器值。

[0089] 在时刻t3,处理器核心的操作模式被从用户模式转换为内核模式。在此,将记录在事件计数器中的事件计数器的计数器值3复制到映射事件计数器,并且将3记录为映射事件计数器的计数器值。

[0090] 之后,在时刻t3和时刻t4之间,处理器核心在内核模式下进行操作,并且可发生两个事件。在此,将5记录为由PMU测量的事件计数器的计数器值。

[0091] 在时刻t4,处理器核心的操作模式被从内核模式转换为用户模式。在此,将记录在映射事件计数器中的计数器值3复制到事件计数器,并且将3记录为事件计数器的计数器值。

[0092] 之后,在时刻t4和时刻t5之间,当在用户模式下进行操作时,处理器核心执行第一处理,并且可发生三个事件。在此,将6记录为由PMU测量的事件计数器的计数器值。

[0093] 在时刻t5,处理器核心的操作模式被从用户模式转换为内核模式。在此,将记录在事件计数器中的计数器值6复制到映射事件计数器,并且将6记录为映射事件计数器的计数器值。

[0094] 在根据本发明的示例性实施例的处理剖析方法中,在时刻t5之后将计数器值记录在映射事件计数器中的情况下,仅对当执行所选择的处理(例如,第一处理)时发生的有效事件进行计数。其结果是,由于根据示例性实施例的PMU不限于以处理器核心为基础或以CPU为基础来测量事件,因此将6而不是12记录为计数器值。

[0095] 图7显示额外执行中断例程的示例性实施例。为了方便进行说明,下面的描述会集中于在图6和图7中显示的处理剖析方法之间的差异,并且会省略对先前所描述过的处理的描述。

[0096] 参照图7,在时刻t3和时刻t4之间,处理器核心在内核模式下进行操作,并且可发生两个事件。在此,将5记录为由PMU测量的事件计数器的计数器值。在处理器核心响应于中断的发生而执行中断例程之前,OS内核可将3读取为被记录在映射事件计数器中的计数器值(例如,映射计数器值),所述计数器值随后被存储。

[0097] 之后,在时刻t4和时刻t5之间,处理器核心执行中断例程,并且可发生三个事件。在此,将6记录为由PMU测量的事件计数器的计数器值。

[0098] 在时刻t5,处理器内核的操作模式被转换为内核模式。在此,将记录在事件计数器中的计数器值6复制到映射事件计数器,并且将6记录为映射事件计数器的计数器值。

[0099] 之后,在时刻t5和时刻t6之间,处理器核心在内核模式下进行操作,并且可发生三个事件。在此,将8记录为由PMU测量的事件计数器的计数器值。在处理器核心完成中断例程的执行之后,并且在处理器内核被转换为用户模式之前,OS内核可写入先前被存储在映射事件计数器中的计数器值3。

[0100] 在时刻t6,处理器核心的操作模式被从内核模式转换为用户模式。在此,将记录在映射事件计数器中的计数器值3复制到事件计数器,并且将3记录为事件计数器的计数器值。

[0101] 在根据图7的示例性实施例的处理剖析方法中,即使当在执行第一处理(例如,处理I)的同时发生中断时,也在执行中断例程之前读取被记录在映射事件计数器中的计数器值并且单独存储所述计数器值,并且在中断例程的执行完成之后再次写入被单独存储的计数器值。以这种方式,仅对当执行所选择的处理(例如,第一处理)时发生的有效事件进行计数,作为结果,6被记录为计数器值。

[0102] 图8显示额外执行第二处理而不执行中断例程的示例性实施例。

[0103] 参照图8,当处理器核心执行多任务时,也就是说,当同时执行第一处理(例如,处理I)和第二处理(例如,处理2)时,仅对当执行第一处理时发生的有效事件以如图7中大致相同的方式进行计数。在这种情况下,第一处理不同于第二处理,并且可以是将被OS核心剖析的目标处理。

[0104] 可使用复杂的处理剖析(例如,特定处理的剖析)以允许OS内核执行调度。

[0105] 根据示例性实施例,为使RTE或OS使用PMU计数器执行复杂处理剖析,可在特定处理被调度之前直接测量事件,并且可在特定处理被调度之后直接停止测量。此外,在事件测量中可排除在执行特定处理过程中发生的中断。

[0106] 根据处理剖析方法的示例性实施例,PMU自动保存并且恢复计数器值,因此能够进行复杂的处理剖析。

[0107] 此外,由于即使在处理中断的同时也可读取或写入映射事件计数器的计数器值,因此会不需要在执行中断例程之前插入特定代码来直接停止事件测量,并且会不需要额外开销。

[0108] 根据示例性实施例,可使用一个或多个寄存器来实现额外的硬件元件(例如,映射事件计数器)。

[0109] 在下文中,将对包括根据本发明的示例性实施例的PMU的处理器核心进行描述。

[0110] 图9是根据本发明的示例性实施例的处理器核心的示意性框图。

[0111] 参照图9,处理器核心1000可包括CPU1200和PMU1100。

[0112] CPU1200可根据OS内核的调度来执行一个或多个处理。PMU1100测量当CPU1200执行一个或多个处理时在处理器核心1000中产生的计数器值。

[0113] 由于PMU1100包括与根据在图1至图3中显示的示例性实施例的PMU相类似的某些地方,因此会省略对先前所描述过的元件的描述。

[0114] 处理器核心1000可提供包括用于操作映射事件计数器的额外的指令的指令集架构(ISA)1300。

[0115] 处理器核心1000可提供第一指令以将记录在事件计数器中的计数器值复制到映射事件计数器。处理器核心1000还可提供第二指令以将复制到映射事件计数器的计数器值复制回事件计数器。当处理器核心1000的操作模式被转换时,可调用第一指令和第二指令。例如,当处理器核心1000进入内核模式时,可调用第一指令,并且当处理器核心1000从内核模式释放并且进入用户模式时,可调用第二指令。

[0116] 此外,处理器核心1000可提供第三指令以读取被记录在事件计数器和映射事件计数器中的处理器值,并且可提供第四指令以写入被记录在事件计数器和映射事件计数器中的计数器值。例如,当处理器核心100是基于ARM的核心时,第三指令可以是MRC指令,并且第四指令可以是MCR指令。此外,可将关于映射事件计数器的新因素添加到MRC或MCR指令。

[0117] 此外,可将用于配置事件计数器和映射事件计数器之间的复制的各种指令提供到处理器核心1000。

[0118] 图10是根据本发明的示例性实施例的处理器核心的示意性框图。为了方便进行说明,下面的描述会集中于在图9和图10中显示的处理器核心之间的差异,并且会省略对先前所描述过的元件的描述。

[0119] 参照图10,处理器核心可以是例如多处理器核心。尽管在图10中显示的处理器核心2000包括第一 CPU2200和第二 CPU2400,但多处理核心2000中的CPU的数量不限于此。例如,多处理器核心2000可包括两个以上的CPU。多处理器核心2000还可包括:与CPU2200和 2400 相应的 PMU2100 和 2300,以及 ISA1300。

[0120] 图11是根据本发明的示例性实施例的包括处理器核心的剖析系统的示意性框图。

[0121] 参照图11,所述剖析系统包括监控处理4000、目标处理5000、OS内核3000和处理器核心1000。

[0122] 监控处理4000在执行目标处理5000的过程期间对目标处理5000进行追踪并对在处理器核心1000中发生的事件进行监控。

[0123] 监控处理4000可访问目标处理5000的地址空间。在操作系统(例如,Linux® )中,普通处理不能直接访问其它用户处理的地址空间和寄存器。然而,例外地允许监控处理4000访问其它用户处理的地址空间和寄存器。

[0124] 由于监控处理4000不可以直接访问OS内核3000,因此在本发明的示例性实施例中,为了将在OS内核3000中收集的处理事件计数信息传输到监控处理4000,可使用添加了事件计数信息的资源使用统计。然而,本发明的示例性实施例不限于此。

[0125] 在OS内核3000中,资源使用统计可包括关于处理的资源使用统计的数据(例如,在Linux'®的wait4要素之中的struct rusage),然而,本发明的示例性实施例不限于此。

[0126] 目标处理5000是将被监控处理4000追踪的用户处理。尽管图11的示例性实施例包括一个目标处理,但目标处理的数量不限于此。处理器核心1000包括PMUl 100和CPU1200。由于处理器核心1000包括与在图9和图10中显示的处理器核心相类似的某些地方,因此会省略对先前所描述过的元件的描述。

[0127] OS内核3000可周期性地获得被记录在事件计数器中的计数器值。例如,当处理器核心1000进入内核模式时,OS内核3000可从映射事件计数器获得计数器值。

[0128] 因此,在处理器核心1000开始执行目标处理的时刻,OS内核3000可准确地开始

测量事件。

[0129] 如上所述,OS内核3000可使用MRC指令来读取计数器值,并且可使用MCR指令来写入计数器值。

[0130] OS内核3000的处理调度器3100通过根据优先级的顺序划分CPU1200的使用时间

来调度并执行多个处理。

[0131] OS内核3000可选择性地执行监控处理4000的功能。在这种情况下,可在OS内核3000中记录各种类型的调度信息。

[0132] 图12是根据本发明的示例性实施例的合并处理器核心的电子系统的示意性框图。

[0133] 参照图12,电子系统6000可包括控制器6400、输入/输出(I / O)装置6100、存储装置(MEM) 6200、接口 6300、供电装置6500和总线6600。控制器6400、1 / O装置6100、存储装置6200、供电装置6500和/或接口 6300可通过总线6600而彼此连接。总线6600与数据通过其移动的路径相应。

[0134] 控制器6400可包括:例如,微处理器、数字信号处理器、微控制器和能够执行与由这些装置执行的类似的功能的逻辑装置中的至少一个。I / O装置6100可包括:例如,键区、键盘、显示装置等。存储装置6200可存储数据和/或指令。接口 6300可将数据发送到通信网络或者从通信网络接收数据。接口 6300可以是有线的也可以是无线的。例如,接口6300可包括天线或有线/无线的收发器。电子系统6000可被用作用于改进控制器6400的操作的操作存储器,并且还可包括:例如,高速DRAM和/或SRAM。

[0135] 可将根据在图9和图10中显示的本发明的示例性实施例的每个处理器核心提供为控制器6400的组件。

[0136] 电子系统6000可以是例如个人数字助理(PDA)、便携式计算机、平板计算机、无线电话、移动电话、智能电话、数字音乐播放器、存储卡或能够发送和/或接收信息的任何类型的电子装置。

[0137] 图13和图14示出可应用根据本发明的示例性实施例的处理器核心的示例性电子系统。例如,图13示出笔记本计算机而图14示出平板计算机。可将根据本发明的示例性实施例的处理器核心应用于未在此示出的其它集成电路装置。

[0138] 可以以硬件、以由处理器执行的软件模块、或者以两者的结合来实施本发明的示例性实施例。可以在非暂时性程序存储装置(例如,RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、⑶-ROM或本领域内已知的任何其它形式的存储介质)上切实地实施软件模块。可将示例性存储介质耦合到处理器,从而处理器可从存储介质读取信息,或者将信息写入存储介质。作为替代,存储介质可与处理器成为一体。此外,在某些方面,处理器和存储介质可驻留于专用集成电路(ASIC)中。此外,ASIC可驻留于用户终端中。

[0139] 可选地,处理器和存储介质可作为分立组件而驻留于用户终端中。[0140] 虽然已经参照本发明的示例性实施例而具体地显示和描述了本发明,但本领域的普通技术人员将理解的是,在不脱离由权利要求所限定的本发明的精神和范围的情况下,可做出形式和细节上的各种改变。

Claims (20)

1.一种性能测量单元,包括: 事件计数器,被配置为记录指示在处理器核心中发生的事件的数量的计数器值; 映射事件计数器,被配置为将记录在事件计数器中的计数器值复制到映射事件计数器, 其中,所述性能测量单元被配置为使用事件计数器和映射事件计数器来确定在处理器核心中发生的有效事件的数量,其中,所述有效事件与当执行所选择的处理时发生的事件相应。
2.如权利要求1所述的性能测量单元,其中,所述映射事件计数器被配置为当处理器核心进入预定的操作模式时将记录在事件计数器中的计数器值复制到映射事件计数器。
3.如权利要求2所述的性能测量单元,其中,所述预定操作模式是操作系统OS内核模式。
4.如权利要求2所述的性能测量单元,还包括: 配置逻辑单元,被配置为选择性地允许记录在事件计数器中的计数器值被复制到映射事件计数器。
5.如权利要求1所述的性能测量单元,其中,所述事件计数器还被配置为将复制到映射事件计数器的计数器值复制回事件计数器。
6.如权利要求5所述的性能测量单元,其中,所述事件计数器还被配置为当处理器核心从预定操作模式释放时将复制到映射事件计数器的计数器值复制回事件计数器。
7.如权利要求6所述的性能测量单元,其中,所述预定操作模式是操作系统OS内核模式。
8.如权利要求5所述的性能测量单元,还包括: 配置逻辑单元,被配置为选择性地允许复制到映射事件计数器的计数器值被复制回事件计数器。
9.如权利要求1所述的性能测量单元,还包括: 更新逻辑单元,被配置为当在处理器核心中发生事件时累计地更新记录在事件计数器中的计数器值。
10.如权利要求1所述的性能测量单元,其中,所述处理器核心被配置为提供用于将记录在事件计数器中的事件计数器值复制到映射事件计数器的指令。
11.如权利要求1所述的性能测量单元,其中,所述处理器核心被配置为提供用于将复制到映射事件计数器的计数器值复制回事件计数器的指令。
12.—种性能测量单元,包括: 事件计数器,被配置为记录指示在处理器核心中发生的事件的数量的计数器值; 映射事件计数器,被配置为将记录在事件计数器中的计数器值复制到映射事件计数器, 其中,响应于第一指令来将记录在事件计数器中的计数器值复制到映射事件计数器,其中,所述性能测量单元被配置为使用事件计数器和映射事件计数器来确定在处理器核心中发生的有效事件的数量,其中,所述有效事件与当执行所选择的处理时发生的事件相应。
13.如权利要求12所述的性能测量单元,其中,当处理器核心进入操作系统OS内核模式时调用第一指令。
14.如权利要求12所述的性能测量单元,其中,响应于第二指令来将复制到映射事件计数器的计数器值复制回事件计数器。
15.如权利要求14所述的性能测量单元,其中,当处理器核心从操作系统OS内核模式释放时调用第二指令。
16.如权利要求14所述的性能测量单元,其中,所述映射事件计数器被配置为响应于第三指令来记录新的计数器值。
17.—种处理器核心,包括: 中央处理单元CPU,被配置为执行一个或多个处理; 性能测量单元,被配置为测量指示当执行一个或多个处理时发生的事件的数量的计数器值, 其中,所述性能测量单元包括:事件计数器,被配置为记录计数器值;映射事件计数器,被配置为将记录在事件计数器中的计数器值复制到映射事件计数器, 其中,所述性能测量单元被配置为使用事件计数器和映射事件计数器来确定在处理器核心中发生的有效事件的数量,其中,所述有效事件与当执行从所述一个或多个处理之中所选择的处理时发生的事件相应。
18.如权利要求17所述的处理器核心,其中,所述映射事件计数器还被配置为当处理器核心进入操作系统OS内核模式时复制记录在事件计数器中的计数器值。
19.如权利要求17所述的处理器核心,其中,所述事件计数器还被配置为将复制到映射事件计数器的计数器值复制回事件计数器。
20.如权利要求19所述的处理器核心,其中,所述事件计数器还被配置为当处理器核心从操作系统OS内核模式释放时将复制到映射事件计数器的计数器值复制回事件计数器。

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086028A1 (en) * 2003-10-16 2005-04-21 International Business Machines Corporation Method, apparatus and computer program product for efficient per thread performance information
CN101040263A (zh) * 2004-09-14 2007-09-19 飞思卡尔半导体公司 用于非侵入跟踪的方法和装置
US20120227045A1 (en) * 2009-12-26 2012-09-06 Knauth Laura A Method, apparatus, and system for speculative execution event counter checkpointing and restoring
US20110173503A1 (en) * 2010-01-08 2011-07-14 International Business Machines Corporation Hardware enabled performance counters with support for operating system context switching

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZHAN等: ""Exploiting Set-Level Non-Uniformity of Capacity Demand to Enhance CMP Cooperative Caching"", 《2010 IEEE INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING(IPDPS)》 *

Also Published As

Publication number Publication date Type
JP2014106973A (ja) 2014-06-09 application
EP2790106A2 (en) 2014-10-15 application
US20140149078A1 (en) 2014-05-29 application
EP2790106A3 (en) 2015-04-22 application
KR20140066914A (ko) 2014-06-03 application

Similar Documents

Publication Publication Date Title
Juve et al. Characterizing and profiling scientific workflows
US20110055838A1 (en) Optimized thread scheduling via hardware performance monitoring
US6748558B1 (en) Performance monitor system and method suitable for use in an integrated circuit
US20120246506A1 (en) Obtaining Power Profile Information With Low Overhead
US20130111120A1 (en) Enabling A Non-Core Domain To Control Memory Bandwidth
US20020062459A1 (en) Fault management and recovery based on task-ID
US20070294693A1 (en) Scheduling thread execution among a plurality of processors based on evaluation of memory access data
US20050177327A1 (en) Method and apparatus for profiling power performance of software applications
Nagasaka et al. Statistical power modeling of GPU kernels using performance counters
US20110173588A1 (en) Hardware support for software controlled fast multiplexing of performance counters
Terpstra et al. Collecting performance data with PAPI-C
US6539500B1 (en) System and method for tracing
WO2011133543A1 (en) Diagnostic system and method
US20060075286A1 (en) System and method for logging hardware usage data, and uses for such logged hardware usage data
US20090171646A1 (en) Method for estimating power consumption
US20030191986A1 (en) Method and apparatus for non-obtrusive power profiling
US7062394B2 (en) Performance characterization using effective processor frequency
US20110010531A1 (en) Debuggable microprocessor
US20060080660A1 (en) System and method for disabling the use of hyper-threading in the processor of a computer system
US20140189256A1 (en) Processor with memory race recorder to record thread interleavings in multi-threaded software
US7281240B1 (en) Mechanism for lossless, lock-free buffer switching in an arbitrary-context tracing framework
US7827541B2 (en) Method and apparatus for profiling execution of code using multiple processors
US20110185153A1 (en) Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US20120079482A1 (en) Coordinating device and application break events for platform power saving
US20110173503A1 (en) Hardware enabled performance counters with support for operating system context switching

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination