性能測量單元、包括該單元的處理器核心和處理剖析方法
【專利摘要】本發(fā)明提供了一種性能測量單元、包括該單元的處理器核心和處理剖析方法。所述性能測量單元包括:事件計(jì)數(shù)器,被配置為記錄指示在處理器核心中發(fā)生的事件的數(shù)量的計(jì)數(shù)器值;映射事件計(jì)數(shù)器,被配置為將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。所述性能測試單元被配置為使用事件計(jì)數(shù)器和映射事件計(jì)數(shù)器來確定在處理器核心中發(fā)生的有效事件的數(shù)量。所述有效事件與當(dāng)執(zhí)行所選擇的處理時(shí)發(fā)生的事件相應(yīng)。
【專利說明】性能測量單元、包括該單元的處理器核心和處理剖析方法
[0001]本申請要求于2012年11月23日提交的第10_2012_0133858號韓國專利申請的優(yōu)先權(quán),該申請的公開通過引用全部合并于此。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明的示例性實(shí)施例涉及性能測量單元、包括該單元的處理器核心以及處理剖析方法。
【背景技術(shù)】
[0003]參照執(zhí)行指令的中央處理單元(CPU),剖析涉及對當(dāng)前運(yùn)行的程序的執(zhí)行狀態(tài)或者與操作系統(tǒng)(OS)內(nèi)核的通信狀態(tài)的分析。通過利用剖析(profiling),可測量程序的性能信息,并且可檢測造成性能惡化的因素。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的示例性實(shí)施例提供了一種能夠在多任務(wù)操作系統(tǒng)中進(jìn)行復(fù)雜的處理剖析的性能測量單元。
[0005]本發(fā)明的示例性實(shí)施例還提供了一種包括能夠在多任務(wù)操作系統(tǒng)中進(jìn)行復(fù)雜的處理剖析的性能測量單元的處理器核心。
[0006]本發(fā)明的示例性實(shí)施例還提供了一種能夠在多任務(wù)操作系統(tǒng)中進(jìn)行復(fù)雜的處理剖析的處理剖析方法。
[0007]根據(jù)本發(fā)明的示例性實(shí)施例,一種性能測量單元包括:第一事件計(jì)數(shù)器,記錄指示在處理器核心中發(fā)生的事件的數(shù)量的計(jì)數(shù)器值;第二事件計(jì)數(shù)器,復(fù)制記錄在第一事件計(jì)數(shù)器中的計(jì)數(shù)器值。
[0008]根據(jù)本發(fā)明的示例性實(shí)施例,一種性能測試單元包括:事件計(jì)數(shù)器,記錄指示在處理器核心中發(fā)生的事件的數(shù)量的計(jì)數(shù)器值;映射事件計(jì)數(shù)器,復(fù)制記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值,其中,響應(yīng)于第一指令來將所述記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。
[0009]根據(jù)本發(fā)明的示例性實(shí)施例,一種處理器核心包括:中央處理單元(CPU),執(zhí)行一個(gè)或多個(gè)處理;性能測量單元,測量指示當(dāng)執(zhí)行一個(gè)或多個(gè)處理時(shí)發(fā)生的事件的數(shù)量的計(jì)數(shù)器值,其中,所述性能測量單元包括:第一事件計(jì)數(shù)器,記錄計(jì)數(shù)器值;第二事件計(jì)數(shù)器,復(fù)制記錄在第一事件計(jì)數(shù)器中的計(jì)數(shù)器值。
[0010]根據(jù)本發(fā)明的不例性實(shí)施例,一種處理剖析方法包括:由處理器核心執(zhí)行一個(gè)或多個(gè)處理,在第一事件計(jì)數(shù)器中記錄指示當(dāng)執(zhí)行一個(gè)或多個(gè)處理時(shí)發(fā)生的事件的數(shù)量的計(jì)數(shù)器值,并且將記錄在第一事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到第二事件計(jì)數(shù)器。
[0011]根據(jù)本發(fā)明的示例性實(shí)施例,一種性能測量單元包括:事件計(jì)數(shù)器,被配置為記錄指示在處理器核心中發(fā)生的事件的數(shù)量的計(jì)數(shù)器值;映射事件計(jì)數(shù)器,被配置為將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。所述性能測量單元被配置為使用事件計(jì)數(shù)器和映射事件計(jì)數(shù)器來確定在處理器核心中發(fā)生的有效事件的數(shù)量,其中,所述有效事件與當(dāng)執(zhí)行所選擇的處理時(shí)發(fā)生的事件相應(yīng)。
[0012]根據(jù)本發(fā)明的示例性實(shí)施例,一種性能測量單元包括:事件計(jì)數(shù)器,被配置為記錄指示在處理器核心中發(fā)生的事件的數(shù)量的計(jì)數(shù)器值;映射事件計(jì)數(shù)器,被配置為將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。響應(yīng)于第一指令來將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。所述性能測量單元被配置為使用事件計(jì)數(shù)器和映射事件計(jì)數(shù)器來確定在處理器核心中發(fā)生的有效事件的數(shù)量,其中,所述有效事件與當(dāng)執(zhí)行所選擇的處理時(shí)發(fā)生的事件相應(yīng)。
[0013]根據(jù)本發(fā)明的示例性實(shí)施例,一種處理器核心包括:中央處理單元(CPU),被配置為執(zhí)行一個(gè)或多個(gè)處理;性能測量單元,被配置為測量指示當(dāng)執(zhí)行一個(gè)或多個(gè)處理時(shí)發(fā)生的事件的數(shù)量的計(jì)數(shù)器值。所述性能測量單元包括:事件計(jì)數(shù)器,被配置為記錄計(jì)數(shù)器值;映射事件計(jì)數(shù)器,被配置為將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。所述性能測量單元被配置為使用事件計(jì)數(shù)器和映射事件計(jì)數(shù)器來確定在處理器核心中發(fā)生的有效事件的數(shù)量,其中,所述有效事件與當(dāng)執(zhí)行從所述一個(gè)或多個(gè)處理之中所選擇的處理時(shí)發(fā)生的事件相應(yīng)。
[0014]根據(jù)本發(fā)明的不例性實(shí)施例,一種處理剖析方法包括:由處理器核心執(zhí)行一個(gè)或多個(gè)處理,在事件計(jì)數(shù)器中記錄指示當(dāng)執(zhí)行一個(gè)或多個(gè)處理時(shí)發(fā)生的事件的數(shù)量的計(jì)數(shù)器值,將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器,并且使用計(jì)數(shù)器值來確定在處理器核心中發(fā)生的有效事件的數(shù)量,其中,有效事件與當(dāng)執(zhí)行從所述一個(gè)或多個(gè)處理之中所選擇的處理時(shí)發(fā)生的事件相應(yīng)。
[0015]根據(jù)本發(fā)明的不例性實(shí)施例,一種處理剖析方法包括:由處理器核心執(zhí)行一個(gè)或多個(gè)處理,在事件計(jì)數(shù)器中記錄指示當(dāng)執(zhí)行一個(gè)或多個(gè)處理時(shí)發(fā)生的事件的數(shù)量的計(jì)數(shù)器值,確定是否已經(jīng)發(fā)生第一事件,當(dāng)確定已經(jīng)發(fā)生第一事件時(shí)將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器,當(dāng)確定還未發(fā)生第一事件時(shí)確定是否已經(jīng)發(fā)生第二事件,并且當(dāng)確定已經(jīng)發(fā)生第二事件時(shí)將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。
【專利附圖】
【附圖說明】
[0016]通過參照附圖詳細(xì)描述本發(fā)明的示例性實(shí)施例,本發(fā)明的以上和其它特征將變得更加清楚,其中:
[0017]圖1是根據(jù)本發(fā)明的示例性實(shí)施例的性能測量單元的示意性框圖;
[0018]圖2是根據(jù)本發(fā)明的示例性實(shí)施例的性能測量單元的示意性框圖;
[0019]圖3是根據(jù)本發(fā)明的示例性實(shí)施例的性能測量單元的示意性框圖;
[0020]圖4是示出根據(jù)本發(fā)明的示例性實(shí)施例的處理剖析方法的流程圖;
[0021]圖5是示出根據(jù)本發(fā)明的示例性實(shí)施例的處理剖析方法的流程圖;
[0022]圖6至圖8示意性地示出根據(jù)本發(fā)明的示例性實(shí)施例的由處理剖析方法引起的事件計(jì)數(shù)器值的改變;
[0023]圖9是根據(jù)本發(fā)明的示例性實(shí)施例的處理器核心的示意性框圖;
[0024]圖10是根據(jù)本發(fā)明的示例性實(shí)施例的處理器核心的示意性框圖;
[0025]圖11是根據(jù)本發(fā)明的示例性實(shí)施例的包括處理器核心的剖析系統(tǒng)的示意性框圖;
[0026]圖12是根據(jù)本發(fā)明的示例性實(shí)施例的合并處理器核心的電子系統(tǒng)的示意性框圖;
[0027]圖13和圖14示出可應(yīng)用根據(jù)本發(fā)明的示例性實(shí)施例的處理器核心的示例性電子系統(tǒng)。
【具體實(shí)施方式】
[0028]在下文中,將參照附圖更加充分地描述本發(fā)明的示例性實(shí)施例。貫穿附圖,相似的符號可表示相似的元件。
[0029]將理解的是,當(dāng)層被表示為在另一層或底層“上”時(shí),該層可直接在其它層或底層之上,或者也可存在中間層。
[0030]在下面的描述中,性能測量單元(PMU)是處理器核心的內(nèi)部組件之一。PMU是被配置為測量已經(jīng)在處理器核心中發(fā)生的事件的組件。所述已經(jīng)在處理器內(nèi)核中發(fā)生的事件可以是例如存儲選項(xiàng)(例如,讀或?qū)?、緩存事件(例如,命中、未命中或回寫)、執(zhí)行指令等,然而,所述事件不限于此。
[0031]PMU計(jì)數(shù)器是被提供在PMU內(nèi)的寄存器。所述PMU計(jì)數(shù)器對在處理器內(nèi)核中發(fā)生的事件進(jìn)行計(jì)數(shù),并且記錄PMU事件計(jì)數(shù)的累計(jì)值。PMU可被編程為軟件,并且PMU計(jì)數(shù)器可使用特定匯編指令來執(zhí)行讀和寫操作。
[0032]在下面的描述中,從PMU計(jì)數(shù)器讀取的PMU計(jì)數(shù)器值可被作為硬件PMU計(jì)數(shù)來使用。
[0033]在下面的描述中,PMU計(jì)數(shù)器值可被稱為事件計(jì)數(shù)器值。
[0034]運(yùn)行時(shí)間環(huán)境(RTE)和操作系統(tǒng)(OS)可管理硬件并且可支持多任務(wù)和處理調(diào)度。
[0035]處理調(diào)度表示由支持分時(shí)系統(tǒng)的OS內(nèi)核通過根據(jù)優(yōu)先級的順序劃分中央處理單元(CPU)的使用時(shí)間來執(zhí)行多個(gè)處理。盡管本發(fā)明的示例性實(shí)施例會將OS內(nèi)核描述為Linux?內(nèi)核,但OS內(nèi)核不限于此。
[0036]圖1是根據(jù)本發(fā)明的示例性實(shí)施例的性能測量單元的示意性框圖。
[0037]參照圖1,性能測量單元(PMU) 100可包括更新邏輯單元110、事件計(jì)數(shù)器120、映射事件計(jì)數(shù)器130和配置邏輯單元140。
[0038]當(dāng)在處理器核心中發(fā)生事件時(shí),更新邏輯單元110累計(jì)地記錄被記錄在事件計(jì)數(shù)器120中的計(jì)數(shù)器值。當(dāng)在處理器核心中發(fā)生的事件被計(jì)數(shù)時(shí),更新邏輯單元110更新被記錄在事件計(jì)數(shù)器120中的計(jì)數(shù)器值。
[0039]事件計(jì)數(shù)器120具有被記錄在其中的計(jì)數(shù)器值。計(jì)數(shù)器值指示在處理器核心中發(fā)生的事件的數(shù)量。OS內(nèi)核可引用被記錄在事件計(jì)數(shù)器120中的計(jì)數(shù)器值,以下將使用特定匯編指令來更加詳細(xì)地對此進(jìn)行描述。
[0040]映射事件計(jì)數(shù)器130可復(fù)制被記錄在事件計(jì)數(shù)器120中的計(jì)數(shù)器值。事件計(jì)數(shù)器120可復(fù)制回被復(fù)制到映射事件計(jì)數(shù)器130的計(jì)數(shù)器值。OS內(nèi)核可使用特定匯編指令來引用被記錄在映射事件計(jì)數(shù)器130中的計(jì)數(shù)器值。
[0041]可將事件計(jì)數(shù)器120和映射事件計(jì)數(shù)器130合并在PMU計(jì)數(shù)器中。
[0042]配置邏輯單元140設(shè)置事件計(jì)數(shù)器120和映射事件計(jì)數(shù)器130的整體操作。[0043]如果根據(jù)由配置邏輯單元140設(shè)置的配置來轉(zhuǎn)換處理器核心的操作模式,則可將被記錄在事件計(jì)數(shù)器120中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器130,或者可將被記錄在映射事件計(jì)數(shù)器130中的計(jì)數(shù)器值復(fù)制到事件計(jì)數(shù)器120。
[0044]因此,當(dāng)處理器核心進(jìn)入預(yù)定的第一操作模式時(shí),映射事件計(jì)數(shù)器130可復(fù)制被記錄在事件計(jì)數(shù)器120中的計(jì)數(shù)器值??蛇x地,當(dāng)處理器核心被從預(yù)定的第一操作模式釋放并且進(jìn)入預(yù)定的第二操作模式時(shí),事件計(jì)數(shù)器120可復(fù)制回被復(fù)制在映射事件計(jì)數(shù)器130中的計(jì)數(shù)器值。
[0045]預(yù)定的第一操作模式可以是例如內(nèi)核模式,并且預(yù)定的第二操作模式可以是例如用戶模式。
[0046]參照內(nèi)核模式,處理器核心在訪問其它硬件時(shí)不會受到限制,可直接訪問存儲器,并且CPU的所有指令都可被執(zhí)行。參照用戶模式,處理器核心在訪問其它硬件或存儲器時(shí)會受到限制,并且可通過系統(tǒng)API來直接訪問其它硬件或存儲器。此外,處理器核心僅可執(zhí)行CPU的某些指令。在所述用戶模式下可執(zhí)行多數(shù)應(yīng)用程序。
[0047]即使根據(jù)由配置邏輯單元140設(shè)置的配置來轉(zhuǎn)換處理器核心的操作模式,也可不將被記錄在事件計(jì)數(shù)器120中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器130,并且/或者可不將被存儲在映射事件計(jì)數(shù)器130中的計(jì)數(shù)器值復(fù)制到事件計(jì)數(shù)器120。
[0048]因此,當(dāng)處理器核心進(jìn)入預(yù)定的第一操作模式時(shí),可選擇性地允許映射事件計(jì)數(shù)器130復(fù)制被記錄在事件計(jì)數(shù)器120中的計(jì)數(shù)器值??蛇x地,當(dāng)處理器核心被從預(yù)定的第一操作模式釋放并且進(jìn)入預(yù)定的第二操作模式時(shí),可選擇性地允許事件計(jì)數(shù)器120復(fù)制回被復(fù)制到映射事件計(jì)數(shù)器130的計(jì)數(shù)器值。
[0049]此外,如以下將更加詳細(xì)地進(jìn)行描述的那樣,OS內(nèi)核可使用特定指令來將預(yù)定的計(jì)數(shù)器值寫入映射事件計(jì)數(shù)器130,或者OS內(nèi)核可從映射事件計(jì)數(shù)器130讀取所述預(yù)定的計(jì)數(shù)器值。
[0050]除了更新邏輯單元110、事件計(jì)數(shù)器120、映射事件計(jì)數(shù)器130和配置邏輯單元140之外,在圖1中顯示的PMU100還可包括多個(gè)邏輯單元和寄存器。
[0051]此外,盡管在圖1中配置邏輯單元140是單個(gè)裝置,但配置邏輯單元140不限于此。例如,可將設(shè)置事件計(jì)數(shù)器120和映射事件計(jì)數(shù)器130的操作的配置邏輯單元140分離地提供為與事件計(jì)數(shù)器120相應(yīng)的第一配置邏輯單元和與映射事件計(jì)數(shù)器130相應(yīng)的第
二配置邏輯單元。
[0052]圖2是根據(jù)本發(fā)明的示例性實(shí)施例的性能測量單元的示意性框圖。為了方便進(jìn)行說明,下面的描述會集中于在圖1和圖2中顯示的PMU之間的差異,并且會省略對先前所描述過的元件的描述。
[0053]參照圖2,PMU200可包括多個(gè)事件計(jì)數(shù)器221和222。此外,PMU200可包括與多個(gè)事件計(jì)數(shù)器221和222相應(yīng)的多個(gè)映射事件計(jì)數(shù)器231和232。PMU200還可包括更新邏輯單元210和配置邏輯單元240。
[0054]可在第一事件計(jì)數(shù)器221中記錄第一計(jì)數(shù)器值(例如,在處理器核心中發(fā)生的緩存命中的計(jì)數(shù)結(jié)果的累計(jì)值),并且可在第二事件計(jì)數(shù)器222中記錄第二計(jì)數(shù)器值(例如,在處理器核心中發(fā)生的緩存未命中的計(jì)數(shù)結(jié)果的累計(jì)值)。然而,本發(fā)明的示例性實(shí)施例不限于此。[0055]此外,第一映射事件計(jì)數(shù)器231可復(fù)制記錄在第一事件計(jì)數(shù)器221中的第一計(jì)數(shù)器值,并且第一事件計(jì)數(shù)器221可復(fù)制回被復(fù)制到第一映射事件計(jì)數(shù)器231的第一計(jì)數(shù)器值。第二映射事件計(jì)數(shù)器232可復(fù)制記錄在第二事件計(jì)數(shù)器222中的第二計(jì)數(shù)器值,并且第二事件計(jì)數(shù)器222可復(fù)制回被復(fù)制到第二映射事件計(jì)數(shù)器232的第二計(jì)數(shù)器值。
[0056]盡管圖2示出PMU200包括第一事件計(jì)數(shù)器221和第二事件計(jì)數(shù)器222,但事件計(jì)數(shù)器的數(shù)量以及相應(yīng)的映射事件計(jì)數(shù)器的數(shù)量不限于此。例如,示例性實(shí)施例可包括兩個(gè)以上的事件計(jì)數(shù)器以及兩個(gè)以上的相應(yīng)的映射事件計(jì)數(shù)器。
[0057]根據(jù)在圖2中顯示的示例性實(shí)施例,PMU200可包括根據(jù)由PMU200的制造商所提供的規(guī)格的多個(gè)事件計(jì)數(shù)器,并且由各個(gè)事件計(jì)數(shù)器測量和記錄的事件計(jì)數(shù)可能彼此相同或不同。
[0058]圖3是根據(jù)本發(fā)明的示例性實(shí)施例的性能測量單元的示意性框圖。為了方便進(jìn)行說明,下面的描述會集中于在圖1和圖3中顯示的PMU之間的差異,并且會省略對先前所描述過的元件的描述。
[0059]參照圖3,PMU300可包括循環(huán)計(jì)數(shù)器321。此外,PMU300可包括與循環(huán)計(jì)數(shù)器321相應(yīng)的映射循環(huán)計(jì)數(shù)器331。PMU300還可包括多個(gè)事件計(jì)數(shù)器322和323、多個(gè)映射事件計(jì)數(shù)器332和333、更新邏輯單元310和配置邏輯單元340。
[0060]循環(huán)計(jì)數(shù)器321可具有被累計(jì)地記錄在其中的在處理器核心中產(chǎn)生的時(shí)鐘周期的計(jì)數(shù)結(jié)果。
[0061 ] 映射循環(huán)計(jì)數(shù)器331可復(fù)制被記錄在循環(huán)計(jì)數(shù)器321中的循環(huán)計(jì)數(shù)值,并且循環(huán)計(jì)數(shù)器321可復(fù)制回被復(fù)制到映射循環(huán)計(jì)數(shù)器331的循環(huán)計(jì)數(shù)值。
[0062]根據(jù)在圖3中顯示的示例性實(shí)施例,PMU300可包括被配置為僅對特定事件進(jìn)行計(jì)數(shù)的PMU計(jì)數(shù)器。盡管圖3示出PMU300包括循環(huán)計(jì)數(shù)器321,但本發(fā)明的示例性實(shí)施例不限于此。例如,PMU300還可包括被配置為記錄緩存命中或緩存未命中的計(jì)數(shù)結(jié)果的緩存計(jì)數(shù)器。
[0063]在下文中,將參照圖4和圖5來描述使用根據(jù)本發(fā)明的示例性實(shí)施例的PMU的OS內(nèi)核的處理器剖析方法。
[0064]圖4是示出根據(jù)本發(fā)明的示例性實(shí)施例的處理剖析方法的流程圖。
[0065]參照圖4,在塊S410中,處理器核心執(zhí)行一個(gè)或多個(gè)處理,并且被包括在一個(gè)或多個(gè)處理中的指令被執(zhí)行。
[0066]在塊S420中,PMU測量當(dāng)執(zhí)行一個(gè)或多個(gè)處理時(shí)發(fā)生的事件的計(jì)數(shù)器值,并且在事件計(jì)數(shù)器中記錄所測量的計(jì)數(shù)器值,隨后更新事件計(jì)數(shù)器。如上所述,發(fā)生的事件可包括:例如,時(shí)鐘周期、存儲操作、緩存事件、執(zhí)行指令等。
[0067]在塊430中,PMU確定是否已經(jīng)發(fā)生第一事件。例如,PMU可確定處理器核心是否已經(jīng)進(jìn)入內(nèi)核模式??墒褂糜布蜍浖泶_定處理器核心進(jìn)入內(nèi)核模式。例如,參照硬件實(shí)現(xiàn),PMU可包括指示處理器核心的操作模式的引腳,以根據(jù)所述引腳的值來確定處理器核心是否已經(jīng)進(jìn)入內(nèi)核模式或者已經(jīng)從內(nèi)核模式釋放。參照軟件實(shí)現(xiàn),可利用變量來指示處理器核心是否已經(jīng)進(jìn)入內(nèi)核模式或者已經(jīng)從內(nèi)核模式釋放。
[0068]如果確定已經(jīng)發(fā)生了第一事件,則在塊S440中,PMU將被記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。[0069]如果確定還未發(fā)生第一事件,則在塊S450中,PMU確定是否已經(jīng)發(fā)生了第二事件。例如,PMU可確定處理器核心是否已經(jīng)從內(nèi)核模式釋放并且已經(jīng)進(jìn)入用戶模式。
[0070]如果確定已經(jīng)發(fā)生了第二事件,則在塊S460中,PMU將被復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。如果確定還未發(fā)生第二事件,則在塊410中,處理器核心執(zhí)行一個(gè)或多個(gè)處理,并且包括在一個(gè)或多個(gè)處理中的指令被執(zhí)行。在塊S470中,處理器核心確定被包括在一個(gè)或多個(gè)處理中的所有指令的執(zhí)行是否已經(jīng)結(jié)束。如果確定被包括在一個(gè)或多個(gè)處理中的所有指令的執(zhí)行還未結(jié)束,則重復(fù)執(zhí)行塊S410。
[0071]在上述過程期間,OS內(nèi)核可參考被記錄在事件計(jì)數(shù)器或映射事件計(jì)數(shù)器中的計(jì)數(shù)器值。在監(jiān)控處理中,可從OS內(nèi)核接收計(jì)數(shù)器值來執(zhí)行處理剖析。
[0072]圖5是示出根據(jù)本發(fā)明的示例性實(shí)施例的處理剖析方法的流程圖。為了方便進(jìn)行說明,下面的描述會集中于在圖4和圖5中顯示的處理剖析方法之間的差異,并且會省略對先前所描述過的處理的描述。
[0073]參照圖5,在塊S510中,處理器核心執(zhí)行一個(gè)或多個(gè)處理,并且被包括在一個(gè)或多個(gè)處理中的指令被執(zhí)行。
[0074]在塊S520中,PMU測量當(dāng)執(zhí)行一個(gè)或多個(gè)處理時(shí)發(fā)生的事件的計(jì)數(shù)器值,并且在事件計(jì)數(shù)器中記錄所測量的計(jì)數(shù)器值,隨后更新事件計(jì)數(shù)器。如上所述,發(fā)生的事件可包括:例如,時(shí)鐘周期、存儲操作、緩存事件、執(zhí)行指令等。
[0075]在塊530中,PMU確定是否已經(jīng)發(fā)生第一事件。例如,PMU可確定處理器核心是否已經(jīng)進(jìn)入內(nèi)核模式??墒褂糜布蜍浖泶_定處理器核心進(jìn)入內(nèi)核模式。例如,參照硬件實(shí)現(xiàn),PMU可包括指示處理器核心的操作模式的引腳,以根據(jù)所述引腳的值來確定處理器核心是否已經(jīng)進(jìn)入內(nèi)核模式或者已經(jīng)從內(nèi)核模式釋放。參照軟件實(shí)現(xiàn),可利用變量來指示處理器核心是否已經(jīng)進(jìn)入內(nèi)核模式或者已經(jīng)從內(nèi)核模式釋放。
[0076]如果確定已經(jīng)發(fā)生了第一事件,則在塊S540中,PMU確定是否允許將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。根據(jù)由配置邏輯單元設(shè)置的配置來確定所述計(jì)數(shù)器值是否允許被復(fù)制。
[0077]如果能夠復(fù)制計(jì)數(shù)器值,則在塊S550中,PMU將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。
[0078]如果確定還未發(fā)生第一事件,則在塊S560中,PMU確定是否已經(jīng)發(fā)生了第二事件。例如,PMU可確定處理器核心是否已經(jīng)從內(nèi)核模式釋放并且已經(jīng)進(jìn)入用戶模式。
[0079]如果確定已經(jīng)發(fā)生了第二事件,則在塊S570中,PMU確定是否允許將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。根據(jù)由配置邏輯單元設(shè)置的配置來確定所述計(jì)數(shù)器值是否允許被復(fù)制回。如果確定還未發(fā)生第二事件,則在塊510中,處理器核心執(zhí)行一個(gè)或多個(gè)處理,并且包括在一個(gè)或多個(gè)處理中的指令被執(zhí)行。
[0080]如果能夠復(fù)制回計(jì)數(shù)器值,則在塊S580中,PMU將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。
[0081]在塊S590中,確定被包括在一個(gè)或多個(gè)處理中的所有指令的執(zhí)行是否已經(jīng)結(jié)束。如果確定被包括在一個(gè)或多個(gè)處理中的指令的執(zhí)行還未結(jié)束,則重復(fù)執(zhí)行塊S510。
[0082]在根據(jù)圖5的示例性實(shí)施例的處理剖析方法中,可選擇性地使下述步驟能夠進(jìn)行:將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器,并且/或者將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。
[0083]以下,將參照圖6至圖8來描述根據(jù)本發(fā)明的示例性實(shí)施例的由處理剖析方法引起的事件計(jì)數(shù)值的改變。圖6至圖8示意性地示出根據(jù)本發(fā)明的示例性實(shí)施例的由處理剖析方法引起的事件計(jì)數(shù)器值的改變。
[0084]參照圖6,可將處理器核心的操作模式在用戶模式和內(nèi)核模式之間進(jìn)行轉(zhuǎn)換,并且在用戶模式下執(zhí)行第一處理(例如,處理I)。在圖6中,在處理器核心中的事件的發(fā)生被表示為“ X ”。
[0085]在執(zhí)行第一處理之前,在時(shí)刻tl,將映射事件計(jì)數(shù)器的計(jì)數(shù)器值重置為0,其中,所述計(jì)數(shù)器值在這里被稱為映射計(jì)數(shù)器值。
[0086]之后,在時(shí)刻tl和時(shí)刻t2之間,處理器核心在內(nèi)核模式下進(jìn)行操作,并且可發(fā)生兩個(gè)事件。在此,將2記錄為由PMU測量的事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0087]在時(shí)刻t2,處理器核心的操作模式被從內(nèi)核模式轉(zhuǎn)換為用戶模式。在此,將記錄在映射事件計(jì)數(shù)器中的映射計(jì)數(shù)器值O復(fù)制到事件計(jì)數(shù)器,并且將O記錄為事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0088]之后,在時(shí)刻t2和時(shí)刻t3之間,當(dāng)在用戶模式下進(jìn)行操作時(shí),處理器核心執(zhí)行第一處理,并且可發(fā)生三個(gè)事件。在此,將3記錄為由PMU測量的事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0089]在時(shí)刻t3,處理器核心的操作模式被從用戶模式轉(zhuǎn)換為內(nèi)核模式。在此,將記錄在事件計(jì)數(shù)器中的事件計(jì)數(shù)器的計(jì)數(shù)器值3復(fù)制到映射事件計(jì)數(shù)器,并且將3記錄為映射事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0090]之后,在時(shí)刻t3和時(shí)刻t4之間,處理器核心在內(nèi)核模式下進(jìn)行操作,并且可發(fā)生兩個(gè)事件。在此,將5記錄為由PMU測量的事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0091]在時(shí)刻t4,處理器核心的操作模式被從內(nèi)核模式轉(zhuǎn)換為用戶模式。在此,將記錄在映射事件計(jì)數(shù)器中的計(jì)數(shù)器值3復(fù)制到事件計(jì)數(shù)器,并且將3記錄為事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0092]之后,在時(shí)刻t4和時(shí)刻t5之間,當(dāng)在用戶模式下進(jìn)行操作時(shí),處理器核心執(zhí)行第一處理,并且可發(fā)生三個(gè)事件。在此,將6記錄為由PMU測量的事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0093]在時(shí)刻t5,處理器核心的操作模式被從用戶模式轉(zhuǎn)換為內(nèi)核模式。在此,將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值6復(fù)制到映射事件計(jì)數(shù)器,并且將6記錄為映射事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0094]在根據(jù)本發(fā)明的示例性實(shí)施例的處理剖析方法中,在時(shí)刻t5之后將計(jì)數(shù)器值記錄在映射事件計(jì)數(shù)器中的情況下,僅對當(dāng)執(zhí)行所選擇的處理(例如,第一處理)時(shí)發(fā)生的有效事件進(jìn)行計(jì)數(shù)。其結(jié)果是,由于根據(jù)示例性實(shí)施例的PMU不限于以處理器核心為基礎(chǔ)或以CPU為基礎(chǔ)來測量事件,因此將6而不是12記錄為計(jì)數(shù)器值。
[0095]圖7顯示額外執(zhí)行中斷例程的示例性實(shí)施例。為了方便進(jìn)行說明,下面的描述會集中于在圖6和圖7中顯示的處理剖析方法之間的差異,并且會省略對先前所描述過的處理的描述。
[0096]參照圖7,在時(shí)刻t3和時(shí)刻t4之間,處理器核心在內(nèi)核模式下進(jìn)行操作,并且可發(fā)生兩個(gè)事件。在此,將5記錄為由PMU測量的事件計(jì)數(shù)器的計(jì)數(shù)器值。在處理器核心響應(yīng)于中斷的發(fā)生而執(zhí)行中斷例程之前,OS內(nèi)核可將3讀取為被記錄在映射事件計(jì)數(shù)器中的計(jì)數(shù)器值(例如,映射計(jì)數(shù)器值),所述計(jì)數(shù)器值隨后被存儲。
[0097]之后,在時(shí)刻t4和時(shí)刻t5之間,處理器核心執(zhí)行中斷例程,并且可發(fā)生三個(gè)事件。在此,將6記錄為由PMU測量的事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0098]在時(shí)刻t5,處理器內(nèi)核的操作模式被轉(zhuǎn)換為內(nèi)核模式。在此,將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值6復(fù)制到映射事件計(jì)數(shù)器,并且將6記錄為映射事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0099]之后,在時(shí)刻t5和時(shí)刻t6之間,處理器核心在內(nèi)核模式下進(jìn)行操作,并且可發(fā)生三個(gè)事件。在此,將8記錄為由PMU測量的事件計(jì)數(shù)器的計(jì)數(shù)器值。在處理器核心完成中斷例程的執(zhí)行之后,并且在處理器內(nèi)核被轉(zhuǎn)換為用戶模式之前,OS內(nèi)核可寫入先前被存儲在映射事件計(jì)數(shù)器中的計(jì)數(shù)器值3。
[0100]在時(shí)刻t6,處理器核心的操作模式被從內(nèi)核模式轉(zhuǎn)換為用戶模式。在此,將記錄在映射事件計(jì)數(shù)器中的計(jì)數(shù)器值3復(fù)制到事件計(jì)數(shù)器,并且將3記錄為事件計(jì)數(shù)器的計(jì)數(shù)器值。
[0101]在根據(jù)圖7的示例性實(shí)施例的處理剖析方法中,即使當(dāng)在執(zhí)行第一處理(例如,處理I)的同時(shí)發(fā)生中斷時(shí),也在執(zhí)行中斷例程之前讀取被記錄在映射事件計(jì)數(shù)器中的計(jì)數(shù)器值并且單獨(dú)存儲所述計(jì)數(shù)器值,并且在中斷例程的執(zhí)行完成之后再次寫入被單獨(dú)存儲的計(jì)數(shù)器值。以這種方式,僅對當(dāng)執(zhí)行所選擇的處理(例如,第一處理)時(shí)發(fā)生的有效事件進(jìn)行計(jì)數(shù),作為結(jié)果,6被記錄為計(jì)數(shù)器值。
[0102]圖8顯示額外執(zhí)行第二處理而不執(zhí)行中斷例程的示例性實(shí)施例。
[0103]參照圖8,當(dāng)處理器核心執(zhí)行多任務(wù)時(shí),也就是說,當(dāng)同時(shí)執(zhí)行第一處理(例如,處理I)和第二處理(例如,處理2)時(shí),僅對當(dāng)執(zhí)行第一處理時(shí)發(fā)生的有效事件以如圖7中大致相同的方式進(jìn)行計(jì)數(shù)。在這種情況下,第一處理不同于第二處理,并且可以是將被OS核心剖析的目標(biāo)處理。
[0104]可使用復(fù)雜的處理剖析(例如,特定處理的剖析)以允許OS內(nèi)核執(zhí)行調(diào)度。
[0105]根據(jù)示例性實(shí)施例,為使RTE或OS使用PMU計(jì)數(shù)器執(zhí)行復(fù)雜處理剖析,可在特定處理被調(diào)度之前直接測量事件,并且可在特定處理被調(diào)度之后直接停止測量。此外,在事件測量中可排除在執(zhí)行特定處理過程中發(fā)生的中斷。
[0106]根據(jù)處理剖析方法的示例性實(shí)施例,PMU自動(dòng)保存并且恢復(fù)計(jì)數(shù)器值,因此能夠進(jìn)行復(fù)雜的處理剖析。
[0107]此外,由于即使在處理中斷的同時(shí)也可讀取或?qū)懭胗成涫录?jì)數(shù)器的計(jì)數(shù)器值,因此會不需要在執(zhí)行中斷例程之前插入特定代碼來直接停止事件測量,并且會不需要額外開銷。
[0108]根據(jù)示例性實(shí)施例,可使用一個(gè)或多個(gè)寄存器來實(shí)現(xiàn)額外的硬件元件(例如,映射事件計(jì)數(shù)器)。
[0109]在下文中,將對包括根據(jù)本發(fā)明的示例性實(shí)施例的PMU的處理器核心進(jìn)行描述。
[0110]圖9是根據(jù)本發(fā)明的示例性實(shí)施例的處理器核心的示意性框圖。
[0111]參照圖9,處理器核心1000可包括CPU1200和PMU1100。
[0112]CPU1200可根據(jù)OS內(nèi)核的調(diào)度來執(zhí)行一個(gè)或多個(gè)處理。PMU1100測量當(dāng)CPU1200執(zhí)行一個(gè)或多個(gè)處理時(shí)在處理器核心1000中產(chǎn)生的計(jì)數(shù)器值。
[0113]由于PMU1100包括與根據(jù)在圖1至圖3中顯示的示例性實(shí)施例的PMU相類似的某些地方,因此會省略對先前所描述過的元件的描述。
[0114]處理器核心1000可提供包括用于操作映射事件計(jì)數(shù)器的額外的指令的指令集架構(gòu)(ISA)1300。
[0115]處理器核心1000可提供第一指令以將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。處理器核心1000還可提供第二指令以將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。當(dāng)處理器核心1000的操作模式被轉(zhuǎn)換時(shí),可調(diào)用第一指令和第二指令。例如,當(dāng)處理器核心1000進(jìn)入內(nèi)核模式時(shí),可調(diào)用第一指令,并且當(dāng)處理器核心1000從內(nèi)核模式釋放并且進(jìn)入用戶模式時(shí),可調(diào)用第二指令。
[0116]此外,處理器核心1000可提供第三指令以讀取被記錄在事件計(jì)數(shù)器和映射事件計(jì)數(shù)器中的處理器值,并且可提供第四指令以寫入被記錄在事件計(jì)數(shù)器和映射事件計(jì)數(shù)器中的計(jì)數(shù)器值。例如,當(dāng)處理器核心100是基于ARM的核心時(shí),第三指令可以是MRC指令,并且第四指令可以是MCR指令。此外,可將關(guān)于映射事件計(jì)數(shù)器的新因素添加到MRC或MCR指令。
[0117]此外,可將用于配置事件計(jì)數(shù)器和映射事件計(jì)數(shù)器之間的復(fù)制的各種指令提供到處理器核心1000。
[0118]圖10是根據(jù)本發(fā)明的示例性實(shí)施例的處理器核心的示意性框圖。為了方便進(jìn)行說明,下面的描述會集中于在圖9和圖10中顯示的處理器核心之間的差異,并且會省略對先前所描述過的元件的描述。
[0119]參照圖10,處理器核心可以是例如多處理器核心。盡管在圖10中顯示的處理器核心2000包括第一 CPU2200和第二 CPU2400,但多處理核心2000中的CPU的數(shù)量不限于此。例如,多處理器核心2000可包括兩個(gè)以上的CPU。多處理器核心2000還可包括:與CPU2200和 2400 相應(yīng)的 PMU2100 和 2300,以及 ISA1300。
[0120]圖11是根據(jù)本發(fā)明的示例性實(shí)施例的包括處理器核心的剖析系統(tǒng)的示意性框圖。
[0121]參照圖11,所述剖析系統(tǒng)包括監(jiān)控處理4000、目標(biāo)處理5000、OS內(nèi)核3000和處理器核心1000。
[0122]監(jiān)控處理4000在執(zhí)行目標(biāo)處理5000的過程期間對目標(biāo)處理5000進(jìn)行追蹤并對在處理器核心1000中發(fā)生的事件進(jìn)行監(jiān)控。
[0123]監(jiān)控處理4000可訪問目標(biāo)處理5000的地址空間。在操作系統(tǒng)(例如,Linux? )中,普通處理不能直接訪問其它用戶處理的地址空間和寄存器。然而,例外地允許監(jiān)控處理4000訪問其它用戶處理的地址空間和寄存器。
[0124]由于監(jiān)控處理4000不可以直接訪問OS內(nèi)核3000,因此在本發(fā)明的示例性實(shí)施例中,為了將在OS內(nèi)核3000中收集的處理事件計(jì)數(shù)信息傳輸?shù)奖O(jiān)控處理4000,可使用添加了事件計(jì)數(shù)信息的資源使用統(tǒng)計(jì)。然而,本發(fā)明的示例性實(shí)施例不限于此。
[0125]在OS內(nèi)核3000中,資源使用統(tǒng)計(jì)可包括關(guān)于處理的資源使用統(tǒng)計(jì)的數(shù)據(jù)(例如,在Linux'?的wait4要素之中的struct rusage),然而,本發(fā)明的示例性實(shí)施例不限于此。
[0126]目標(biāo)處理5000是將被監(jiān)控處理4000追蹤的用戶處理。盡管圖11的示例性實(shí)施例包括一個(gè)目標(biāo)處理,但目標(biāo)處理的數(shù)量不限于此。處理器核心1000包括PMUl 100和CPU1200。由于處理器核心1000包括與在圖9和圖10中顯示的處理器核心相類似的某些地方,因此會省略對先前所描述過的元件的描述。
[0127]OS內(nèi)核3000可周期性地獲得被記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值。例如,當(dāng)處理器核心1000進(jìn)入內(nèi)核模式時(shí),OS內(nèi)核3000可從映射事件計(jì)數(shù)器獲得計(jì)數(shù)器值。
[0128]因此,在處理器核心1000開始執(zhí)行目標(biāo)處理的時(shí)刻,OS內(nèi)核3000可準(zhǔn)確地開始
測量事件。
[0129]如上所述,OS內(nèi)核3000可使用MRC指令來讀取計(jì)數(shù)器值,并且可使用MCR指令來寫入計(jì)數(shù)器值。
[0130]OS內(nèi)核3000的處理調(diào)度器3100通過根據(jù)優(yōu)先級的順序劃分CPU1200的使用時(shí)間
來調(diào)度并執(zhí)行多個(gè)處理。
[0131]OS內(nèi)核3000可選擇性地執(zhí)行監(jiān)控處理4000的功能。在這種情況下,可在OS內(nèi)核3000中記錄各種類型的調(diào)度信息。
[0132]圖12是根據(jù)本發(fā)明的示例性實(shí)施例的合并處理器核心的電子系統(tǒng)的示意性框圖。
[0133]參照圖12,電子系統(tǒng)6000可包括控制器6400、輸入/輸出(I / O)裝置6100、存儲裝置(MEM) 6200、接口 6300、供電裝置6500和總線6600??刂破?400、1 / O裝置6100、存儲裝置6200、供電裝置6500和/或接口 6300可通過總線6600而彼此連接??偩€6600與數(shù)據(jù)通過其移動(dòng)的路徑相應(yīng)。
[0134]控制器6400可包括:例如,微處理器、數(shù)字信號處理器、微控制器和能夠執(zhí)行與由這些裝置執(zhí)行的類似的功能的邏輯裝置中的至少一個(gè)。I / O裝置6100可包括:例如,鍵區(qū)、鍵盤、顯示裝置等。存儲裝置6200可存儲數(shù)據(jù)和/或指令。接口 6300可將數(shù)據(jù)發(fā)送到通信網(wǎng)絡(luò)或者從通信網(wǎng)絡(luò)接收數(shù)據(jù)。接口 6300可以是有線的也可以是無線的。例如,接口6300可包括天線或有線/無線的收發(fā)器。電子系統(tǒng)6000可被用作用于改進(jìn)控制器6400的操作的操作存儲器,并且還可包括:例如,高速DRAM和/或SRAM。
[0135]可將根據(jù)在圖9和圖10中顯示的本發(fā)明的示例性實(shí)施例的每個(gè)處理器核心提供為控制器6400的組件。
[0136]電子系統(tǒng)6000可以是例如個(gè)人數(shù)字助理(PDA)、便攜式計(jì)算機(jī)、平板計(jì)算機(jī)、無線電話、移動(dòng)電話、智能電話、數(shù)字音樂播放器、存儲卡或能夠發(fā)送和/或接收信息的任何類型的電子裝置。
[0137]圖13和圖14示出可應(yīng)用根據(jù)本發(fā)明的示例性實(shí)施例的處理器核心的示例性電子系統(tǒng)。例如,圖13示出筆記本計(jì)算機(jī)而圖14示出平板計(jì)算機(jī)。可將根據(jù)本發(fā)明的示例性實(shí)施例的處理器核心應(yīng)用于未在此示出的其它集成電路裝置。
[0138]可以以硬件、以由處理器執(zhí)行的軟件模塊、或者以兩者的結(jié)合來實(shí)施本發(fā)明的示例性實(shí)施例。可以在非暫時(shí)性程序存儲裝置(例如,RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動(dòng)盤、⑶-ROM或本領(lǐng)域內(nèi)已知的任何其它形式的存儲介質(zhì))上切實(shí)地實(shí)施軟件模塊??蓪⑹纠源鎯橘|(zhì)耦合到處理器,從而處理器可從存儲介質(zhì)讀取信息,或者將信息寫入存儲介質(zhì)。作為替代,存儲介質(zhì)可與處理器成為一體。此外,在某些方面,處理器和存儲介質(zhì)可駐留于專用集成電路(ASIC)中。此外,ASIC可駐留于用戶終端中。
[0139]可選地,處理器和存儲介質(zhì)可作為分立組件而駐留于用戶終端中。[0140]雖然已經(jīng)參照本發(fā)明的示例性實(shí)施例而具體地顯示和描述了本發(fā)明,但本領(lǐng)域的普通技術(shù)人員將理解的是,在不脫離由權(quán)利要求所限定的本發(fā)明的精神和范圍的情況下,可做出形式和細(xì)節(jié)上的各種改變。
【權(quán)利要求】
1.一種性能測量單元,包括: 事件計(jì)數(shù)器,被配置為記錄指示在處理器核心中發(fā)生的事件的數(shù)量的計(jì)數(shù)器值; 映射事件計(jì)數(shù)器,被配置為將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器, 其中,所述性能測量單元被配置為使用事件計(jì)數(shù)器和映射事件計(jì)數(shù)器來確定在處理器核心中發(fā)生的有效事件的數(shù)量,其中,所述有效事件與當(dāng)執(zhí)行所選擇的處理時(shí)發(fā)生的事件相應(yīng)。
2.如權(quán)利要求1所述的性能測量單元,其中,所述映射事件計(jì)數(shù)器被配置為當(dāng)處理器核心進(jìn)入預(yù)定的操作模式時(shí)將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器。
3.如權(quán)利要求2所述的性能測量單元,其中,所述預(yù)定操作模式是操作系統(tǒng)OS內(nèi)核模式。
4.如權(quán)利要求2所述的性能測量單元,還包括: 配置邏輯單元,被配置為選擇性地允許記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值被復(fù)制到映射事件計(jì)數(shù)器。
5.如權(quán)利要求1所述的性能測量單元,其中,所述事件計(jì)數(shù)器還被配置為將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。
6.如權(quán)利要求5所述的性能測量單元,其中,所述事件計(jì)數(shù)器還被配置為當(dāng)處理器核心從預(yù)定操作模式釋放時(shí)將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。
7.如權(quán)利要求6所述的性能測量單元,其中,所述預(yù)定操作模式是操作系統(tǒng)OS內(nèi)核模式。
8.如權(quán)利要求5所述的性能測量單元,還包括: 配置邏輯單元,被配置為選擇性地允許復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值被復(fù)制回事件計(jì)數(shù)器。
9.如權(quán)利要求1所述的性能測量單元,還包括: 更新邏輯單元,被配置為當(dāng)在處理器核心中發(fā)生事件時(shí)累計(jì)地更新記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值。
10.如權(quán)利要求1所述的性能測量單元,其中,所述處理器核心被配置為提供用于將記錄在事件計(jì)數(shù)器中的事件計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器的指令。
11.如權(quán)利要求1所述的性能測量單元,其中,所述處理器核心被配置為提供用于將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器的指令。
12.—種性能測量單元,包括: 事件計(jì)數(shù)器,被配置為記錄指示在處理器核心中發(fā)生的事件的數(shù)量的計(jì)數(shù)器值; 映射事件計(jì)數(shù)器,被配置為將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器, 其中,響應(yīng)于第一指令來將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器,其中,所述性能測量單元被配置為使用事件計(jì)數(shù)器和映射事件計(jì)數(shù)器來確定在處理器核心中發(fā)生的有效事件的數(shù)量,其中,所述有效事件與當(dāng)執(zhí)行所選擇的處理時(shí)發(fā)生的事件相應(yīng)。
13.如權(quán)利要求12所述的性能測量單元,其中,當(dāng)處理器核心進(jìn)入操作系統(tǒng)OS內(nèi)核模式時(shí)調(diào)用第一指令。
14.如權(quán)利要求12所述的性能測量單元,其中,響應(yīng)于第二指令來將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。
15.如權(quán)利要求14所述的性能測量單元,其中,當(dāng)處理器核心從操作系統(tǒng)OS內(nèi)核模式釋放時(shí)調(diào)用第二指令。
16.如權(quán)利要求14所述的性能測量單元,其中,所述映射事件計(jì)數(shù)器被配置為響應(yīng)于第三指令來記錄新的計(jì)數(shù)器值。
17.—種處理器核心,包括: 中央處理單元CPU,被配置為執(zhí)行一個(gè)或多個(gè)處理; 性能測量單元,被配置為測量指示當(dāng)執(zhí)行一個(gè)或多個(gè)處理時(shí)發(fā)生的事件的數(shù)量的計(jì)數(shù)器值, 其中,所述性能測量單元包括:事件計(jì)數(shù)器,被配置為記錄計(jì)數(shù)器值;映射事件計(jì)數(shù)器,被配置為將記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值復(fù)制到映射事件計(jì)數(shù)器, 其中,所述性能測量單元被配置為使用事件計(jì)數(shù)器和映射事件計(jì)數(shù)器來確定在處理器核心中發(fā)生的有效事件的數(shù)量,其中,所述有效事件與當(dāng)執(zhí)行從所述一個(gè)或多個(gè)處理之中所選擇的處理時(shí)發(fā)生的事件相應(yīng)。
18.如權(quán)利要求17所述的處理器核心,其中,所述映射事件計(jì)數(shù)器還被配置為當(dāng)處理器核心進(jìn)入操作系統(tǒng)OS內(nèi)核模式時(shí)復(fù)制記錄在事件計(jì)數(shù)器中的計(jì)數(shù)器值。
19.如權(quán)利要求17所述的處理器核心,其中,所述事件計(jì)數(shù)器還被配置為將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。
20.如權(quán)利要求19所述的處理器核心,其中,所述事件計(jì)數(shù)器還被配置為當(dāng)處理器核心從操作系統(tǒng)OS內(nèi)核模式釋放時(shí)將復(fù)制到映射事件計(jì)數(shù)器的計(jì)數(shù)器值復(fù)制回事件計(jì)數(shù)器。
【文檔編號】G06F3/14GK103838539SQ201310597957
【公開日】2014年6月4日 申請日期:2013年11月22日 優(yōu)先權(quán)日:2012年11月23日
【發(fā)明者】李敏周, 艾格·伯恩哈德, 李在鎮(zhèn), 金永洛, 金鴻圭, 金洪準(zhǔn) 申請人:三星電子株式會社, 首爾大學(xué)校產(chǎn)學(xué)協(xié)力團(tuán)