專利名稱:在非對稱多處理器設(shè)備上執(zhí)行診斷操作的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)。更具體地,本發(fā)明涉及提供供非對稱多 處理器設(shè)備使用的診斷機構(gòu)。
背景技術(shù):
例如調(diào)試機構(gòu)、跟蹤機構(gòu)和剖析(profiling)機構(gòu)的診斷機構(gòu)在數(shù) 據(jù)處理系統(tǒng)發(fā)展領(lǐng)域變得日益重要。隨著數(shù)據(jù)處理系統(tǒng)變得更加復(fù)雜而用 于它們的研制和測試的時間變得更短,就日益需要能夠被用于識別與數(shù)據(jù) 處理系統(tǒng)相關(guān)聯(lián)的問題并且通過調(diào)整那些數(shù)據(jù)處理系統(tǒng)的設(shè)計和配置來 提高它們的性能的強大且易于使用的診斷機構(gòu)。
數(shù)據(jù)處理系統(tǒng)的另 一趨勢是日益增加的多處理器系統(tǒng)的使用。這些被 用來通過允許(典型地由程序或者任務(wù)的不同線程)并行執(zhí)行處理來提供 較高的性能。這樣的多處理器系統(tǒng)的一種形式稱為對稱多處理器系統(tǒng)。這 樣的對稱系統(tǒng)典型地包括多個相同的處理器核,每個處理器核均具有相同 的程序和數(shù)據(jù)存儲器的相干視圖(coherent view),并且操作系統(tǒng)軟件
任務(wù)/線程。'也就是說,程序指令;行的單Z線程在操作系統(tǒng)控制下在多 個處理器之間是時分多路復(fù)用的。在這樣的對稱系統(tǒng)內(nèi)操作系統(tǒng)能夠被用 于確定各個任務(wù)/線程正在哪里執(zhí)行并且將在單一處理器上執(zhí)行的單一線 程的外觀提供給程序員,即使當(dāng)操作系統(tǒng)調(diào)度將執(zhí)行從一個處理器遷移到 另一處理器時也是如此。這種方法限于相同的處理器并且遷移是通過該操 作系統(tǒng)執(zhí)行的,即不被程序本身觸發(fā)的情況。
雖然對稱多處理器系統(tǒng)能夠提高處理性能,但它們在某種程度上仍 是低效的。舉例來說,如果待執(zhí)行的處理需要一些最好由DSP型核執(zhí)行 的操作(例如高度數(shù)字密集和重復(fù)的)和最好由通用處理器執(zhí)行的其它 任務(wù)(例如流控制、用戶輸入等),那么對稱多處理器是實施這樣的處理 的相對低效的方式。這已經(jīng)是公認的,并且提供非對稱多處理(AMP)系 統(tǒng)是已知的。這樣的系統(tǒng)的例子是由德克薩斯儀器公司設(shè)計的0MAP平 臺。在這樣的平臺內(nèi)多個不同的處理器配有的每一個具有使它比其它處 理器更適合某些任務(wù)的特性。舉例來說,非對稱多處理器可以包括DSP核以及通用微處理器核。雖然這樣的非對稱多處理器就它們能夠以相對 較低成本和較低功耗提供的處理性能而言具有強勁的優(yōu)勢,但是由于它 們不同類的性質(zhì),它們更加難以編程和研制。為了充分利用這樣的非對 稱多處理器系統(tǒng),對于線程之間的任務(wù)遷移正常的是由程序本身而不是 在操作系統(tǒng)控制下執(zhí)行。此外,不同處理器的不同處理體系架構(gòu)意味著
顯著不同的診斷機構(gòu)可以適用于這些處理器中的每一個。AMP系統(tǒng)中同 步的遠程過程調(diào)用能夠被視為與SMP系統(tǒng)中操作系統(tǒng)控制的線程遷移類 似的從一個處理器到另一個處理器的程序控制的線程遷移,但這種簡單 的系統(tǒng)視圖不被現(xiàn)有診斷機構(gòu)支持,現(xiàn)有診斷機構(gòu)是根據(jù)哪個處理器執(zhí) 行這些操作來劃分系統(tǒng)的。這具有這樣的結(jié)果與對稱多處理系統(tǒng)相關(guān) 聯(lián)的相對簡單的診斷技術(shù)不能容易地用于非對稱多處理器系統(tǒng)中,即使 對這樣的非對稱處理系統(tǒng)進行編程的復(fù)雜度和難度意味著診斷機構(gòu)更 加重要。在傳統(tǒng)的AMP系統(tǒng)中,在每個處理器上運行的代碼被分開處理。 用于每個處理器的代碼被調(diào)試,就好像它是與其它處理器上的單獨的程 序通信的單獨程序。
發(fā)明內(nèi)容
從本發(fā)明的一個方面來看,提供一種非對稱多處理器設(shè)備,包括
多個扭i行機構(gòu),該多個#1行才幾構(gòu)響應(yīng)于相應(yīng)的程序指令來執(zhí)行數(shù)據(jù)處 理才喿作,壽呈序指令沖丸4亍的線禾呈(thread of program instruction execution)在所述多個執(zhí)行機構(gòu)之間是時分多路復(fù)用的;
多個從診斷單元,該多個從診斷單元中的每一個與相應(yīng)的執(zhí)行機構(gòu)相 關(guān)聯(lián)以在其上執(zhí)行診斷操作;
主診斷單元,該主診斷單元耦合到所述多個從診斷單元并且對給定線 程的執(zhí)行在執(zhí)行機構(gòu)之間的遷移做出響應(yīng)以對哪個所述從診斷單元當(dāng)前 是活動的以執(zhí)行關(guān)于所述給定線程的診斷操作做出對應(yīng)的變化,使得所述 主診斷跟蹤哪個執(zhí)行機構(gòu)正在執(zhí)行所述給定線程的變化。
本技術(shù)提供了這樣的結(jié)構(gòu),其中非對稱多處理器內(nèi)的相應(yīng)執(zhí)行機構(gòu)配 備有它們自己的從診斷單元。這些從診斷單元耦合到負責(zé)跟蹤線程在執(zhí)行 單元之間的遷移的主診斷單元并且從而使得能夠提供給定線程的執(zhí)行的 單一視圖,即使當(dāng)這在非對稱多處理器系統(tǒng)內(nèi)的不同執(zhí)行機構(gòu)之間劃分開 的時候也是如此。這顯著地減輕了識別和理解在進行編程配置時出現(xiàn)的問 題的任務(wù),這是因為執(zhí)行的各個線程可以在這樣的不同類環(huán)境之間被跟蹤,例如在AMP系統(tǒng)中的處理器之間劃分的代碼能夠被作為單一實體進行 調(diào)試。
理解這樣的非對稱多處理器系統(tǒng)的操作的復(fù)雜度和困難是復(fù)雜的,并 且相應(yīng)地,在包括非對稱存儲器分級體系使得該多個執(zhí)行機構(gòu)不共享公共 的存儲器映射的系統(tǒng)中本技術(shù)的優(yōu)勢被增強。在具有這樣的非對稱存儲器 分級體系的系統(tǒng)內(nèi),由不同執(zhí)行機構(gòu)使用的不同存儲器映射的復(fù)雜度使得 程序員更加難以理解使用與單獨的執(zhí)行機構(gòu)相關(guān)聯(lián)的單獨診斷單元,因為 相同的數(shù)據(jù)項可能被不同的執(zhí)行機構(gòu)以不同的方式引用。本技術(shù)的能夠跟 蹤線程變化的主診斷單元能夠為程序員考慮這些存儲器映射的差異從而 顯著減輕程序員的任務(wù)。
雖然非對稱多處理器可以由于具有非對稱的存儲器分級體系而是非
對稱的,它還可以由于至少一些在它們的處理體系結(jié)構(gòu)方面有差異的執(zhí)行 機構(gòu)而是非對稱的。通常是這種情況,使得不同的處理器能夠針對于不同 類型的任務(wù)上并且本技術(shù)在幫助程序員處理這樣的復(fù)雜度方面是有用的。
如上所述,本技術(shù)能夠處理這樣的系統(tǒng),其中程序本身控制任務(wù)在執(zhí) 行機構(gòu)之間的遷移。在沒有本技術(shù)的情況下從診斷意義上來說處理任務(wù)在 執(zhí)行機構(gòu)之間的遷移將是困難的,達到這個目的的特別有效的方法是從一 個執(zhí)行機構(gòu)到另 一執(zhí)行機構(gòu)的同步遠程過程調(diào)用啟動線程執(zhí)行的遷移。在 這種情況下該遷移正在明確地由程序執(zhí)行,并且該遠程過程調(diào)用可以由例 程庫中的一個例程執(zhí)行,所述例程庫能夠在被調(diào)用者執(zhí)行機構(gòu)上執(zhí)行并且 針對(target )不同的目的地扭J亍^L構(gòu)。
當(dāng)主診斷單元提供來自由執(zhí)行機構(gòu)執(zhí)行的給定線程的診斷輸出并且 對用于該線程的^^亍才幾構(gòu)的變化估文出響應(yīng)以在該i貪斷輸出中進行對應(yīng)的 變化使得程序員能夠認識到執(zhí)行機構(gòu)的遷移已經(jīng)發(fā)生的時候,本技術(shù)的可 用性得到了增強。常常存在這樣的情況,程序的問題是與遷移相關(guān)聯(lián)的并 且相應(yīng)地該信息對程序員是有用的。
與該不同執(zhí)行機構(gòu)相關(guān)聯(lián)的從診斷單元可能需要編程以在執(zhí)行的特 定線程上執(zhí)行診斷操作。主診斷單元已經(jīng)在由不同執(zhí)行機構(gòu)執(zhí)行線程時跟 蹤了該線程,故該主診斷單元能夠在相關(guān)的時間將關(guān)于給定線程的診斷命 令送至與該給定線程相關(guān)聯(lián)的從診斷單元。
該診斷單元能夠采取多種不同的形式。例如,它們可以是斷點單元、 觀察點單元、跟蹤單元和/或剖析單元。這些診斷單元能夠由純硬件、硬件和軟件的混合或者純軟件提供。 一些診斷單元更適合以硬件實施,例如 需要特別高的帶寬以便跟蹤處理器的實時操作的跟蹤單元。
將理解該執(zhí)行才幾構(gòu)可以采取如以上討論的多種不同的形式。例如,該
執(zhí)行機構(gòu)可以包括通用處理器、直接存儲器存取單元、協(xié)處理器、VLIW處 理器、數(shù)字信號處理器和/或硬件加速器單元中的一個或多個。這些除通 用處理器以外的各種形式的執(zhí)行機構(gòu)能夠被認為是各種不同形式的專用 處理器。
上述討論的非對稱存儲器分級體系類似地能夠以各種不同的方式形 成。提供的存儲器可以是高速緩沖存儲器、專用存儲器、共享存儲器或者 全局存儲器。這些存儲器將以非對稱的形式混合在一起,這對于最終的實 施和非對稱多處理器設(shè)備的使用來說可能是高效的,但是它增加了在系統(tǒng) 上執(zhí)行診斷性操作的難度。將理解,并行系統(tǒng)典型地包含多個線程,每個 線程可以在該多個執(zhí)行機構(gòu)之間時分多路復(fù)用。
從本發(fā)明的另 一方面來看,提供了 一種在非對稱多處理器設(shè)備上執(zhí)行 診斷操作的方法,所述方法包括步驟
響應(yīng)于相應(yīng)的程序指令,用多個執(zhí)行機構(gòu)執(zhí)行數(shù)據(jù)處理操作,程序指 令執(zhí)行的線程在所述多個執(zhí)行機構(gòu)之間是時分多路復(fù)用的;
用與其相關(guān)聯(lián)的相應(yīng)從診斷單元在所述多個執(zhí)行機構(gòu)上執(zhí)行診斷操
作;
使用主診斷單元,該主診斷單元耦合到所述多個從診斷單元并且對 給定線程的執(zhí)行在執(zhí)行機構(gòu)之間的遷移做出響應(yīng),以對哪個所述從診斷 單元當(dāng)前是活動的以執(zhí)行關(guān)于所述給定線程的診斷操作做出對應(yīng)的變 化,使得所述主診斷跟蹤哪個執(zhí)行機構(gòu)正在執(zhí)行所述給定線程的變化。
現(xiàn)在將僅以示例的形式參考附圖描述本發(fā)明的實施例,其中 圖1示意性地示出根據(jù)本技術(shù)的一個例子的非對稱多處理器設(shè)備; 圖2示意性地示出程序內(nèi)的給定線程的執(zhí)行在不同執(zhí)行機構(gòu)之間的
遷移并且由主診斷單元對這種遷移的跟蹤;
圖3是示意性地示出啟動診斷操作和跟蹤線程遷移的流程圖;和 圖4是示意性地示出根據(jù)一個示例性實施例的對本技術(shù)的診斷機
構(gòu)進行初始編程的流程圖。
具體實施方式
圖1示意性地示出連接到通用計算機4的非對稱多處理器設(shè)備2。該 通用計算機用來編程和控制診斷操作。該非對稱多處理器設(shè)備2包括形式 為通用處理器6、數(shù)字信號處理器8、加速器10和直接存儲器存取(DMA) 單元12的多個執(zhí)行機構(gòu)。將理解可以在非對稱多處理器設(shè)備內(nèi)提供執(zhí)行 機構(gòu)的不同組合,例如VLIW處理器和/或協(xié)處理器。此外,這樣的非對稱 多處理器設(shè)備可以包括多個給定類型(它們可以是相同的)的執(zhí)行機構(gòu)以 及一個或多個不同類型的執(zhí)行機構(gòu),例如具有多個DSP單元的單一通用處 理器。
圖1的非對稱多處理器設(shè)備2具有非對稱存儲器分級體系,該存儲器 分級體系包括高速緩沖存儲器14、共享存儲器16和專用存儲器18,高速 緩沖存儲器14對于通用處理器6來說是本地的,共享存儲器16可由加速 器10、通用處理器6和DMA單元12訪問。專用存儲器18僅可由DSP單元 8和DMA單元12訪問。DMA單元12由通用處理器6控制,通用處理器6 建立由DMA單元12執(zhí)行的DMA操作。這些將典型地包括在專用存儲器18 和共享存儲器16之間傳輸數(shù)據(jù)。將理解,使用這樣的布置,輸入數(shù)據(jù)塊 可以在通用處理器6的控制下從共享存儲器16傳輸?shù)綄S么鎯ζ?8內(nèi), 在專用存儲器18中,輸入數(shù)據(jù)塊能夠經(jīng)受DSP單元8的密集數(shù)值處理, 之后該處理的結(jié)果由通用處理器6從專用存儲器18恢復(fù)到共享存儲器16 中。由DSP單元8執(zhí)行的處理是同一程序線程的一部分,該程序線程也至 少部分地運行在通用處理器6上,并且當(dāng)?shù)竭_需要由DSP單元8進行處理 的該線程內(nèi)的點時,則從通用處理器6對DSP單元8進行同步遠程過程調(diào) 用以啟動DSP單元8上的處理。在DSP單元8處理結(jié)束時,對其它地方進 行另外的同步遠程過程調(diào)用或者可以簡單地從該遠程過程調(diào)用返回。
如圖1所示,執(zhí)行機構(gòu)6、 8和10中的每一個包括相應(yīng)的從診斷單元 20、 22和24。 DMA單元12不具有自己的從診斷單元,因為其僅僅在通用 處理器6的控制下操作。將理解,由不同的執(zhí)行機構(gòu)6、 8、 IO提供的不 同的處理器體系架構(gòu)將意味著從診斷單元20、 22和24具有不同的形式和 能力以及需要不同類型的編程,并且產(chǎn)生不同形式的輸出。非對稱多處理 器設(shè)備2上的這種多樣性通常給試圖理解在不同執(zhí)行機構(gòu)6、 8、 10之間 遷移的給定線程的執(zhí)行的程序員提出了難題。
除了該多個從診斷單元20、 22、 24之外,還提供了耦合到從診斷單 元20、 22、 24中的每一個的主診斷單元26。該主診斷單元經(jīng)由從診斷單元20、 22、 24來監(jiān)控程序線程遷移,例如通過識別同步遠程過程調(diào)用和 返回來監(jiān)控。主診斷單元26連接到通用計算機4,該通用計算機4用來對 待執(zhí)行的診斷操作編程以及監(jiān)控診斷輸出并且將該診斷輸出顯示給程序 員。主診斷單元26能夠作為硬件部件、作為混合的硬件和軟件部件或者 作為在通用計算機4上執(zhí)行的純軟件部件來提供。
從診斷單元20、 22和24被示出為提供在它們各自的執(zhí)行機構(gòu)6、 8、 IO中的每一個內(nèi),但是將理解從診斷單元20、 22、 24能夠分別提供在相 關(guān)的執(zhí)行機構(gòu)6、 8、 10的外部。從診斷單元能夠在多個執(zhí)行機構(gòu)之間共 享,例如監(jiān)控寫入共享存儲器16或者從共享存儲器16讀取的數(shù)據(jù)的跟蹤 單元將沖丸行對多于一個的執(zhí)行機構(gòu)6、 8、 10的跟蹤。然而,這樣的跟蹤 單元將與至少一個執(zhí)行機構(gòu)相關(guān)聯(lián),因為它執(zhí)行對至少一個執(zhí)行機構(gòu)的跟 蹤。
圖2示意性地示出給定的程序線程的執(zhí)行在不同的執(zhí)行機構(gòu)之間的 遷移。在該圖示中,存在三種不同的執(zhí)行機構(gòu)。這些可以^皮認為是對應(yīng)于 圖1的通用處理器6、 DSP單元8和加速器10,不過到不同執(zhí)行機構(gòu)的其 它映射也將是同樣可能的。如圖所示的,程序線程在執(zhí)行機構(gòu)1上開始執(zhí) 行,并且然后經(jīng)由同步遠程過程調(diào)用被遷移到執(zhí)行機構(gòu)2。在執(zhí)行機構(gòu)2 上執(zhí)行了一段時間以后返回到執(zhí)行機構(gòu)1。隨后遷移到如圖所示的執(zhí)行機 構(gòu)2和3。在此期間,主診斷單元26監(jiān)控在不同執(zhí)行機構(gòu)之間切換程序線 程的執(zhí)行的同步遠程過程調(diào)用的發(fā)生,并且相應(yīng)地跟蹤在處理該程序線程 中當(dāng)前活動的是哪個執(zhí)行機構(gòu)。這就是在圖2左手側(cè)示出的跟蹤信息。該 跟蹤信息被主診斷單元26使用,以當(dāng)其在通用計算機4上被顯示并且與 程序員交互時,引導(dǎo)(channel )從不同的從診斷單元20、 22、 24取回的 診斷信息來結(jié)合適當(dāng)?shù)某绦蚓€程顯示。診斷信息顯示包括識別對關(guān)心的程 序中的點來說當(dāng)前是活動的執(zhí)行機構(gòu)。舉例來說,如果當(dāng)線程在執(zhí)行機構(gòu) 2上執(zhí)行時,程序員希望停止(halt )該線程,則當(dāng)主診斷單元26確定在 處理該線程中執(zhí)行機構(gòu)2當(dāng)前是活動的時,該停止命令將被傳遞到執(zhí)行機 構(gòu)2。
圖3是示意性地示出由主診斷單元26執(zhí)行的線程跟蹤類型的流程圖。 在步驟28,啟動在執(zhí)行機構(gòu)6、 8、 10上處理不同的線程并且相關(guān)的從診 斷單元20、 22、 24使用它們的診斷參數(shù)(例如,斷點、觀察點、剖析參數(shù)、 跟蹤參數(shù)等)來編程。在步驟30,主診斷單元26識別哪些線程在哪些執(zhí)行機構(gòu)上執(zhí)行,并且該數(shù)據(jù)由主診斷單元26收集并保持在例如線程數(shù)據(jù)表 內(nèi)。將理解,哪個執(zhí)行機構(gòu)執(zhí)行哪個特定線程可能不是由程序本身預(yù)先確 定的,因為它可以是在運行時間根據(jù)負荷及其它因素而試探確定的。
在步驟32,主診斷單元26監(jiān)控以例如借助于同步遠程過程調(diào)用的發(fā) 布檢查是否已經(jīng)發(fā)生任何線程遷移。當(dāng)檢測到線程遷移時,處理然后進行 到步驟34,在步驟34,指示哪個線程正在哪個執(zhí)行機構(gòu)上執(zhí)行的數(shù)據(jù)被
在步驟36,(如果需要的話)改變對從診斷單元20、 22和24的編程以 考慮已經(jīng)發(fā)生的遷移。例如,如果調(diào)用者執(zhí)行單元正在監(jiān)控關(guān)于線程的特 定斷點或者觀察點,那么當(dāng)該執(zhí)行機構(gòu)不再執(zhí)行該線程時,繼續(xù)監(jiān)控那些 斷點和觀察點則是不合適的,原因是由于那些斷點或者觀察點與響應(yīng)于不 同的程序線程而發(fā)生的執(zhí)行相互混淆而可能給出錯誤的結(jié)果。在步驟36 對從診斷單元進行任何必需的重新編程之后,處理返回到步驟32,在步驟 32,可以執(zhí)行對另外的線程遷移的監(jiān)控。
圖4示意性地示出在圖1的系統(tǒng)內(nèi)診斷操作的建立。在步驟38,程 序員使用通用計算機4指示要執(zhí)行給定的診斷命令,并且該命令被發(fā)送 到主診斷單元26,在步驟38,在主診斷單元26處接收該命令。步驟40 對應(yīng)于主診斷單元26確定哪個執(zhí)行機構(gòu)(或者在觀察點的情況下,哪個 存儲器)與關(guān)于其將執(zhí)行該診斷命令的線程相關(guān)聯(lián)。步驟42然后為涉及 已經(jīng)接收的命令的線程編程/初始化相關(guān)的從診斷單元。
權(quán)利要求
1.一種非對稱多處理器設(shè)備,包括多個執(zhí)行機構(gòu),該多個執(zhí)行機構(gòu)響應(yīng)于相應(yīng)的程序指令來執(zhí)行數(shù)據(jù)處理操作,程序指令執(zhí)行的線程在所述多個執(zhí)行機構(gòu)之間時分多路復(fù)用;多個從診斷單元,該多個從診斷單元中的每一個與相應(yīng)的執(zhí)行機構(gòu)相關(guān)聯(lián)以在其上執(zhí)行診斷操作;主診斷單元,該主診斷單元耦合到所述多個從診斷單元并且對給定線程的執(zhí)行在執(zhí)行機構(gòu)之間的遷移做出響應(yīng)以對哪個所述從診斷單元當(dāng)前是活動的以執(zhí)行關(guān)于所述給定線程的診斷操作做出對應(yīng)的變化,使得所述主診斷跟蹤哪個執(zhí)行機構(gòu)正在執(zhí)行所述給定線程的變化。
2. 如權(quán)利要求1所述的非對稱多處理器設(shè)備,包括非對稱存儲器分級體系使得所述多個執(zhí)行機構(gòu)不共享公共的存儲器映射。
3. 如權(quán)利要求1和2中的任一項所述的非對稱多處理器設(shè)備,其中所述多個執(zhí)行機構(gòu)中的至少 一個執(zhí)行機構(gòu)具有與所述多個執(zhí)行機構(gòu)中的一個或多個其它的執(zhí)行機構(gòu)不同的處理體系架構(gòu)。
4. 如權(quán)利要求1、 2和3中的任一項所述的非對稱多處理器設(shè)備,其中所述執(zhí)行的遷移是通過同步遠程過程調(diào)用從一個執(zhí)行機構(gòu)到另 一執(zhí)行機構(gòu)的。
5. 如前述權(quán)利要求中的任一項所述的非對稱多處理器設(shè)備,其中所述行機構(gòu)的變化j故出響應(yīng)以在所述診斷輸出中進行對應(yīng)的變化。
6. 如前述權(quán)利要求中的任一項所述的非對稱多處理器設(shè)備,其中所述主診斷單元將關(guān)于所述給定線程的診斷命令送至與當(dāng)前正在執(zhí)行所述給定線程的執(zhí)行機構(gòu)相關(guān)聯(lián)的從診斷單元。
7. 如前述權(quán)利要求中的任一項所述的非對稱多處理器設(shè)備,其中所述主診斷單元在那些執(zhí)行機構(gòu)中的每一個上設(shè)置關(guān)于所述給定線程的一部分的斷點,在那些執(zhí)行機構(gòu)中的每一個上所述部分能夠被執(zhí)行。
8. 如權(quán)利要求7所述的非對稱多處理器設(shè)備,其中所述斷點設(shè)置為具
9. 如權(quán)利要求7所述的非對稱多處理器設(shè)備,其中當(dāng)所述斷點被觸發(fā)時,所述主診斷單元確定哪個線程已經(jīng)觸發(fā)了所述斷點。
10. 如前述權(quán)利要求中的任一項所述的非對稱多處理器設(shè)備,包括多個存儲器并且其中所述主診斷單元關(guān)于能夠存儲數(shù)據(jù)項的所述多個存儲 器中的每一個為所述數(shù)據(jù)項設(shè)置觀察點。
11. 如權(quán)利要求10所述的非對稱多處理器設(shè)備,其中所述觀察點設(shè)置為具有與相應(yīng)存儲器內(nèi)的用于所述數(shù)據(jù)項的存儲器地址相匹配的存儲器 地址。
12. 如權(quán)利要求10所述的非對稱多處理器設(shè)備,其中當(dāng)所述觀察點被 觸發(fā)時,所述主診斷單元確定哪個線程已經(jīng)觸發(fā)了所述觀察點。
13. 如前述權(quán)利要求中的任一項所述的非對稱多處理器設(shè)備,其中所 述從診斷單元是從跟蹤單元,所述主診斷單元是主跟蹤單元,并且當(dāng)形成 用于所述給定線程的跟蹤輸出時,所述主跟蹤單元跟蹤所述給定線程的執(zhí) 行在不同執(zhí)行機構(gòu)之間的遷移。
14. 如前述權(quán)利要求中的任一項所述的非對稱多處理器設(shè)備,其中所 述從診斷單元是從剖析單元,所述主診斷單元是主剖析單元,并且當(dāng)形成 用于所述給定線程的剖析輸出時,所述主剖析單元跟蹤所述給定線程的執(zhí) 行在不同執(zhí)行機構(gòu)之間的遷移。
15. 如前述權(quán)利要求中的任一項所述的方法,其中所述多個執(zhí)行機構(gòu) 包括下列項中的一個或多個通用處理器; 直接存儲器存取單元; 協(xié)處理器; VLIW處理器;數(shù)字信號處理器;和 硬件加速器單元。
16. 如權(quán)利要求4所述的方法,其中所述非對稱存儲器分級體系包括 下列項中的兩個或更多個能夠由所有所述執(zhí)行機構(gòu)訪問的全局共享存儲器;能夠由所述執(zhí)行機構(gòu)中的至少兩個訪問的共享存儲器;和能夠由所述執(zhí)行機構(gòu)中的 一個訪問的專用存儲器。
17. —種在非對稱多處理器設(shè)備上執(zhí)行診斷操作的方法,所述方法包 括以下步驟響應(yīng)于相應(yīng)的程序指令,用多個執(zhí)行機構(gòu)執(zhí)行數(shù)據(jù)處理操作,程序指令執(zhí)行的線程在所述多個執(zhí)行機構(gòu)之間時分多路復(fù)用;用與其相關(guān)聯(lián)的相應(yīng)從診斷單元在所述多個執(zhí)行機構(gòu)上執(zhí)行診斷操作;使用主診斷單元,該主診斷單元耦合到所述多個從診斷單元并且對給 定線程的執(zhí)行在執(zhí)行機構(gòu)之間的遷移做出響應(yīng),以對哪個所述從診斷單元 當(dāng)前是活動的以執(zhí)行關(guān)于所述給定線程的診斷操作做出對應(yīng)的變化,使得 所述主診斷跟蹤哪個4九行機構(gòu)正在執(zhí)行所述給定線程的變化。
18. 如權(quán)利要求17所述的方法,其中所述非對稱多處理設(shè)備包括非對 稱存儲器分級體系使得所述多個執(zhí)行機構(gòu)不共享公共的存儲器映射。
19. 如權(quán)利要求17和18中的任一項所述的方法,其中所述多個執(zhí)行機 構(gòu)中的至少 一個執(zhí)行機構(gòu)具有與所述多個執(zhí)行機構(gòu)中的 一個或多個其它 的執(zhí)行機構(gòu)不同的處理體系架構(gòu)。
20. 如權(quán)利要求17、 18和19中的任一項所述的方法,其中所述執(zhí)行的 遷移是通過同步遠程過程調(diào)用從一個執(zhí)行機構(gòu)到另 一執(zhí)行機構(gòu)的。
21. 如權(quán)利要求17到20中的任一項所述的方法,其中所述主診斷單 元提供來自執(zhí)行機構(gòu)的診斷輸出并且對用于所述給定線程的執(zhí)行機構(gòu)的 變化做出響應(yīng)以在所述診斷輸出中做出對應(yīng)的變化。
22. 如權(quán)利要求17到21中的任一項所述的方法,其中所述主診斷單 元將關(guān)于所述給定線程的診斷命令送至與當(dāng)前正在執(zhí)行所述給定線程的 執(zhí)行機構(gòu)相關(guān)聯(lián)的從診斷單元。
23. 如權(quán)利要求17到22中的任一項所述的方法,其中所述主診斷單 元在那些執(zhí)行機構(gòu)中的每一個上設(shè)置關(guān)于所述給定線程的一部分的斷點, 在那些執(zhí)行機構(gòu)中的每一個上所述部分能夠被執(zhí)行。
24. 如權(quán)利要求23所述的方法,其中所述斷點設(shè)置為具有與由相應(yīng)的 執(zhí)行機構(gòu)用于所述部分的存儲器地址相匹配的存儲器地址。
25. 如權(quán)利要求23所述的方法,其中當(dāng)所述斷點:波觸發(fā)時,所述主診 斷單元確定哪個線程已經(jīng)觸發(fā)了所述斷點。
26. 如權(quán)利要求17到25中的任一項所述的方法,其中所述非對稱多 處理設(shè)備包括多個存儲器并且所述主診斷單元關(guān)于能夠存儲數(shù)據(jù)項的所 述多個存儲器中的每一個為所述數(shù)據(jù)項設(shè)置觀察點。
27. 如權(quán)利要求26所述的方法,其中所述觀察點設(shè)置為具有與相應(yīng)的 存儲器內(nèi)的用于所述數(shù)據(jù)項的存儲器地址相匹配的存儲器地址。
28. 如權(quán)利要求26所述的方法,其中當(dāng)所述觀察點被觸發(fā)時,所述主 診斷單元確定哪個線程已經(jīng)觸發(fā)了所述觀察點。
29. 如權(quán)利要求17到28中的任一項所述的方法,其中所述從診斷單 元是從跟蹤單元,所述主診斷單元是主跟蹤單元,并且當(dāng)形成用于所述給 定線程的跟蹤輸出時,所述主跟蹤單元跟蹤所述給定線程的執(zhí)行在不同執(zhí) 4亍才幾構(gòu)之間的遷移。
30. 如權(quán)利要求17到29中的任一項所述的方法,其中所述從診斷單 元是從剖析單元,所述主診斷單元是主剖析單元,并且當(dāng)形成用于所述給 定線程的剖析輸出時,所述主剖析單元跟蹤所述給定線程的執(zhí)行在不同執(zhí) 4亍才幾構(gòu)之間的遷移。
31. 如權(quán)利要求17到30中的任一項所述的方法,其中所述多個執(zhí)行 機構(gòu)包括下列項中的 一個或多個通用處理器;直接存儲器存取單元;協(xié)處理器;VLIW處理器;數(shù)字信號處理器;和硬件加速器單元。
32. 如權(quán)利要求20所述的方法,其中所述非對稱存儲器分級體系包括 下列項中的兩個或更多個能夠由所有所述執(zhí)行機構(gòu)訪問的全局共享存儲器;能夠由所述執(zhí)行機構(gòu)中的至少兩個訪問的共享存儲器;和能夠由所述執(zhí)行機構(gòu)中的 一 個訪問的專用存儲器。
33. —種計算機程序產(chǎn)品,其載有用于根據(jù)如權(quán)利要求17到32中的 任一項所述的方法控制計算機以控制主診斷單元和多個從診斷單元的 計算機程序。
全文摘要
提供了非對稱多處理器設(shè)備(2),其中相應(yīng)的從診斷單元(20、22、24)與對應(yīng)的執(zhí)行機構(gòu)(6、8、10)相關(guān)聯(lián)。主診斷單元(26)跟蹤線程執(zhí)行在不同的執(zhí)行機構(gòu)(6、8、10)之間的遷移使得該診斷機構(gòu)(20、22、24、26)能夠跟隨給定線程的執(zhí)行并且將該信息提供給程序員。該執(zhí)行機構(gòu)(6,8,10)可以是多種多樣的,例如通用處理器(6)、直接存儲器存取單元(12)、協(xié)處理器、VLIW處理器、數(shù)字信號處理器(8)和硬件加速器(10)。該非對稱多處理器設(shè)備(2)還典型地包括非對稱存儲器分級體系,例如包括全局存儲器、共享存儲器(16)、專用存儲器(18)和高速緩沖存儲器(14)中的兩個或更多個。
文檔編號G06F11/36GK101529391SQ200780039694
公開日2009年9月9日 申請日期2007年8月24日 優(yōu)先權(quán)日2006年10月24日
發(fā)明者A·D·賴德, E·格林利-埃文斯, K·E·克尼博恩, S·A·福德 申請人:Arm有限公司