專利名稱:實時處理器調(diào)試系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及實時處理器調(diào)試系統(tǒng);更具體地說,涉及在實時操作期間對核心處理器之虛擬總線的地址和數(shù)據(jù)信號進(jìn)行選擇采樣,以便降低功耗,以及將由于總線加載而引起的性能影響降到最低程度的調(diào)試系統(tǒng)。
一些包含核心處理器、片上存儲器以及外部存儲器接口模塊的嵌入系統(tǒng)是很普遍的?,F(xiàn)有的生成系統(tǒng)還在集成高速緩沖存儲器。系統(tǒng)級的代碼開發(fā)人員必須為嵌入系統(tǒng)編寫軟件或應(yīng)用程序代碼,以實現(xiàn)該系統(tǒng)需要的特定功能。由于各種各樣的原因,包括添加或修改功能性,刪除不需要的功能部件,或刪除“程序錯誤”或軟件錯誤,開發(fā)人員必須多次修改大部分軟件。因此,為了確保正確運行,必須在應(yīng)用程序代碼開發(fā)期間調(diào)試軟件。在運行期間,嵌入系統(tǒng)的應(yīng)用程序代碼可能還需要一直進(jìn)行連續(xù)不斷的調(diào)整,或周期調(diào)整。在某些配置中,某些參數(shù)、特征值或常數(shù)表可能需要在實時操作期間進(jìn)行調(diào)整或修改。此處所指的調(diào)試過程包括,初始應(yīng)用程序代碼開發(fā),以及運行期間的實時校正或調(diào)整功能。
某些舊式系統(tǒng),包括不帶高速緩沖存儲器的系統(tǒng),提供外部核心處理器總線,從而能夠輕而易舉地獲得核心處理器周期,以便進(jìn)行調(diào)試。在具有高速緩沖存儲器的嵌入系統(tǒng)環(huán)境中,系統(tǒng)級的調(diào)試是比較困難的,這是由于核心處理器的管腳或總線不再可見的緣故。特別是,高速緩沖存儲器通常位于嵌入核心處理器和外部物理總線之間,從而不能從外部到達(dá)核心處理器總線。例如,事實上,在不帶高速緩沖存儲器的現(xiàn)有嵌入系統(tǒng)中,“顯示周期”支持不是一個可選項。
傳統(tǒng)調(diào)試方法稱為后臺調(diào)試方式(BDM)。BDM是一種靜態(tài)調(diào)試過程,其中暫停處理器以便代碼開發(fā)人員執(zhí)行調(diào)試操作。代碼開發(fā)人員可以設(shè)置斷點,以便在特定斷點停止處理器,或者單步執(zhí)行各指令,以監(jiān)視處理器的進(jìn)程并確定問題和程序錯誤。BDM對某些應(yīng)用程序是足夠的,但并不能滿足實時操作,包括動態(tài)調(diào)整或校正。此外,某些調(diào)試操作需要在不停止嵌入核心處理器的條件下,測試并改正應(yīng)用程序代碼。例如,通常在汽車引擎運轉(zhuǎn)的情況下,調(diào)試控制汽車引擎的嵌入處理器系統(tǒng),從而暫停核心處理器不是一個可選項,這是由于它會有效停止引擎的緣故。
人們正在開發(fā)動態(tài)調(diào)試方法,以便在不暫停處理器的情況下,監(jiān)視處理器的操作。在能夠從外部達(dá)到高速緩沖存儲器的物理總線的情況下,從外部提供核心處理器總線是不實際的,也是不可行的,這是由于它會導(dǎo)致嵌入處理器的過多數(shù)目的管腳。期望開發(fā)一種調(diào)試接口,該接口監(jiān)視處理器的總線,并經(jīng)由內(nèi)部輔助總線或端口提供消息。通過監(jiān)視核心處理器和高速緩沖存儲器之間的地址和數(shù)據(jù)總線進(jìn)行的動態(tài)調(diào)試,是一個消耗功率的侵入過程。高速緩沖存儲器和核心處理器之間的總線通常稱為“虛擬”總線。連接到虛擬總線的大緩沖器引起總線加載,后者會影響嵌入處理器系統(tǒng)的性能。此外,監(jiān)視地址和數(shù)據(jù)總線信號并向外部輔助總線提供相應(yīng)消息的動態(tài)過程,將消耗寶貴的能量。便攜通信設(shè)備通常是電池供電的手持設(shè)備,并主要使用嵌入處理器系統(tǒng)。此類便攜通信設(shè)備包括諸如個人數(shù)字助理(PDA)、蜂窩電話、尋呼機(jī)、全球定位系統(tǒng)(GPS)模塊之類的設(shè)備。在此類便攜通信設(shè)備中,必須將功耗降到最低程度,以延長電池壽命。
將在正常系統(tǒng)運行期間執(zhí)行動態(tài)校正的系統(tǒng)的功耗,降到最低程度也是同樣重要的。汽車應(yīng)用是此類需求的重要示例。例如,在某些汽車應(yīng)用中,實時校正(不斷)調(diào)諧要求在處理器和應(yīng)用程序運行時,運行調(diào)試模塊。強烈希望將嵌入系統(tǒng)的功耗降到最低程度。
期望以將由于嵌入處理器系統(tǒng)上之總線加載而引起的功耗和性能影響降到最低程度的方式,執(zhí)行動態(tài)調(diào)試。
通過連同附圖一起考慮最佳實施方式的詳細(xì)說明,將更好地理解本發(fā)明,其中附圖為
圖1為調(diào)試系統(tǒng)的示意框圖,說明根據(jù)本發(fā)明的實時處理器調(diào)試系統(tǒng)。
圖2為根據(jù)本發(fā)明之實施方式實現(xiàn)的虛擬地址總線選通邏輯的示意圖。
圖3為根據(jù)本發(fā)明之實施方式實現(xiàn)的虛擬數(shù)據(jù)總線選通邏輯的示意圖。
圖4為一定時圖,說明根據(jù)本發(fā)明之某一實施方式的實時調(diào)試接口系統(tǒng)的程序跟蹤虛擬地址選通操作。
圖5為一定時圖,說明根據(jù)本發(fā)明之某一實施方式的實時調(diào)試接口系統(tǒng)的程序和數(shù)據(jù)跟蹤虛擬地址和數(shù)據(jù)選通操作。
當(dāng)前,正在開發(fā)Nexus標(biāo)準(zhǔn)或GEPDIS(全球嵌入處理器調(diào)試接口標(biāo)準(zhǔn)),以便執(zhí)行嵌入系統(tǒng)的動態(tài)調(diào)試,并解決與實時、非侵入調(diào)試支持有關(guān)的其他問題和爭論。GEPDIS,另外稱為IEEE-ISTO(電氣和電子工程師協(xié)會-工業(yè)標(biāo)準(zhǔn)和技術(shù)組織)論壇5001,描述了一種嵌入調(diào)試接口標(biāo)準(zhǔn),該標(biāo)準(zhǔn)是為了在不暫停嵌入系統(tǒng)處理器之核心情況下對非侵入調(diào)試方法進(jìn)行標(biāo)準(zhǔn)化而開發(fā)的。GEPDIS中定義了許多調(diào)試能力,以便通過提供程序流和數(shù)據(jù)流的可視性,來監(jiān)視程序執(zhí)行。該可視性由在專用多比特或多管腳串行接口或輔助端口上,向外部開發(fā)系統(tǒng)提供的信息消息序列組成。然后,將程序流消息與該程序的靜態(tài)映象結(jié)合,以重建嵌入處理器的實際指令執(zhí)行序列。數(shù)據(jù)流消息跟蹤處理器讀取并寫入到預(yù)定地址范圍。
使用包括同步消息處理和數(shù)據(jù)跟蹤消息處理的程序跟蹤消息處理,實現(xiàn)GEPDIS動態(tài)調(diào)試。程序跟蹤消息處理的實現(xiàn),要求監(jiān)視核心處理器執(zhí)行的指令提取序列和狀態(tài)信息,后者表示流改變(COF)事件,包括直接或間接的流改變事件。直接COF事件包括與程序計數(shù)器有關(guān)的分支,而間接COF事件包括寄存器間接分支和例外引向。程序跟蹤同步消息的實現(xiàn),要求傳送當(dāng)前執(zhí)行的指令地址或相當(dāng)鄰近的指令地址。數(shù)據(jù)跟蹤消息處理的實現(xiàn),要求監(jiān)視數(shù)據(jù)存取地址,并且有條件地提供關(guān)聯(lián)數(shù)據(jù)。數(shù)據(jù)跟蹤消息處理包括讀取消息處理,或在一個或多個定義地址范圍內(nèi)的數(shù)據(jù)讀取,以及寫消息處理,或在一個或多個定義地址范圍內(nèi)的數(shù)據(jù)寫入。
GEPDIS意在描述一種實時動態(tài)的非侵入調(diào)試系統(tǒng)。GEPDIS期望一種嵌入調(diào)試接口,該接口訪問虛擬總線,并經(jīng)由輔助總線或端口,與外部系統(tǒng)通信。然而,GEPDIS不能明確解決總線加載和功耗。直接向調(diào)試接口提供虛擬總線信號是侵入的,并且可能會引起錯誤操作。可以使用緩沖處理來降低調(diào)試接口的影響,但仍會造成很多性能影響,這是由于虛擬總線的所有信號轉(zhuǎn)變均對調(diào)試信息有不良影響。調(diào)試總線上的功耗是很大的,并且在某些實施方式中,可能是過大的。
圖1為調(diào)試系統(tǒng)100的示意框圖,該系統(tǒng)包括一個連接到嵌入系統(tǒng)103之輔助總線102的外部開發(fā)系統(tǒng)101。開發(fā)系統(tǒng)101用于執(zhí)行軟件的實時調(diào)試操作,其中嵌入系統(tǒng)103之嵌入處理器107的處理器核心正在執(zhí)行該軟件。然而,可以理解,也可以將實時校正系統(tǒng)(未示出)連接到輔助總線102,以便執(zhí)行實時校正,其中本發(fā)明的原理相同。
在所示實施方式中,將嵌入系統(tǒng)103插入到集成電路(IC)或芯片上,然后插入到諸如與調(diào)試系統(tǒng)100關(guān)聯(lián)的較大系統(tǒng)之電路板的適當(dāng)插槽中。嵌入系統(tǒng)103包括一個實時調(diào)試接口105,它經(jīng)由獨立的物理總線115,連接到嵌入處理器107。嵌入處理器107包括一個中央處理器(CPU)或核心109,它經(jīng)由虛擬總線113,連接到高速緩沖存儲器/MMU(存儲器管理部件)111。虛擬總線113包括許多操作信號,這些信號定義核心109的操作。高速緩沖存儲器和MMU通常為獨立系統(tǒng),但為了簡潔,以組合形式表示它們。MMU為選件,并且在嵌入處理器107的特定實施方式中,可以不提供此選件。本發(fā)明設(shè)想了嵌入處理器的許多不同變更和實施方式,并且不受此類變更的限制。
虛擬總線113包括一條虛擬地址總線和一條雙向虛擬數(shù)據(jù)總線,虛擬地址總線包括由核心109認(rèn)定的到達(dá)高速緩沖存儲器/MMU 111的地址信號,而雙向虛擬數(shù)據(jù)總線位于核心109和高速緩沖存儲器/MMU 111之間。術(shù)語“虛擬”表示虛擬總線113是不可見的,或者相反,是不向嵌入處理器107外部提供到達(dá)嵌入系統(tǒng)103之其他組件的。物理總線115類似于虛擬總線113,并包括類似的地址數(shù)據(jù)和控制信號,但是這兩條總線在運行期間的操作不同??梢越酶咚倬彌_存儲器/MMU 111內(nèi)的高速緩沖存儲器,此時虛擬總線113的運行方式與物理總線115的運行方式相同。然而,如果啟用高速緩沖存儲器,則物理總線115以不同方式運行,并且不能真實表示核心109的操作。希望監(jiān)視虛擬總線113,以便監(jiān)視核心109的操作,或者調(diào)試由核心109正在執(zhí)行的應(yīng)用程序軟件的校正操作,或者相反,執(zhí)行這種校正操作。
向連接到核心109的虛擬總線選通邏輯117,提供虛擬總線113。虛擬總線選通邏輯117可以插入到核心109內(nèi),或者被設(shè)計為來自核心109的外部。經(jīng)由更新數(shù)據(jù)信號、更新地址信號、調(diào)試數(shù)據(jù)總線和調(diào)試地址總線,將虛擬總線選通邏輯117,連接到實時調(diào)試接口105。調(diào)試地址總線可包括將在下文中描述的屬性信號。更新數(shù)據(jù)信號為數(shù)據(jù)調(diào)試更新信號,該信號有選擇地啟動或者在其他情況下啟用調(diào)試數(shù)據(jù)總線上的信號;而更新地址信號為地址調(diào)試更新信號,該信號有選擇地啟用或啟動調(diào)試地址總線。向?qū)崟r調(diào)試接口105提供由核心109生成的處理器狀態(tài)信號,以確定核心109的某些狀態(tài)事件,這將在下文中進(jìn)一步說明。處理器狀態(tài)信號包括至少一個核心事務(wù)狀態(tài)輸出信號,該信號指出核心109的事務(wù)狀態(tài)。
輔助總線102是一個可伸縮的輸出調(diào)試端口,由嵌入系統(tǒng)103的實時調(diào)試接口105控制該端口。在一種實施方式中,由GEPDIS定義輔助總線102,以使開發(fā)系統(tǒng)101監(jiān)視核心109。向外部硬件接口119提供輔助總線102,以向開發(fā)系統(tǒng)101內(nèi)的開發(fā)工作站121提供調(diào)試信號,其中接口119包含緩沖器固件、處理能力等。工作站121安裝有任意固件、硬件或軟件,并且能夠以個人計算機(jī)之類的方式實現(xiàn),以控制調(diào)試操作或應(yīng)用程序軟件的開發(fā)。操作員在工作站121與調(diào)試軟件進(jìn)行交互,以便控制實時調(diào)試接口105的操作,包括監(jiān)視虛擬總線113的地址和數(shù)據(jù)信號。
嵌入系統(tǒng)113可以具有幾種操作方式,包括用于正常操作的正常方式和調(diào)試方式。實時調(diào)試接口105使調(diào)試方式更加容易,并且可以具有幾種可選方式作為調(diào)試方式的子集。例如,實時調(diào)試接口包括程序跟蹤方式和數(shù)據(jù)跟蹤方式,其中數(shù)據(jù)跟蹤方式還有讀和寫調(diào)試方式。
圖2為根據(jù)本發(fā)明之實施方式的虛擬地址總線選通邏輯200的示意圖。在虛擬總線選通邏輯117內(nèi),提供虛擬地址總線選通邏輯200,以便將虛擬總線113的虛擬地址總線連接到調(diào)試地址總線。在此處所示的實施方式中,虛擬地址總線包括32個獨立地址信號,標(biāo)記為虛擬地址[31:0]。然而,可以理解,本發(fā)明并不限于任意特定數(shù)目的地址信號。將各虛擬地址總線信號提供給一連串鎖存器201的相應(yīng)輸入,鎖存器可以為任意形式的合適鎖存器,如D型鎖存器。將鎖存器201的各鎖存器的Q輸出,提供給一連串緩沖器203的各輸入。緩沖器203的輸出認(rèn)定調(diào)試地址總線的各個信號,包括各信號調(diào)試地址[31:0]。嵌入處理器107包括一個內(nèi)部主時鐘信號,稱為CLK1,將該信號提供給具有兩個輸入的與門205的一個輸入。CLK1信號為至少一個主時鐘信號,將該信號提供給核心109,以用于控制和定時。與門205的另一輸入接收更新地址信號。與門205的輸出認(rèn)定信號調(diào)試地址時鐘,將后者提供給鎖存器201之各鎖存器的時鐘輸入。
在運行中,更新地址信號用作啟用信號,以將虛擬地址總線的各信號,傳送到與CLK1信號之認(rèn)定同步的調(diào)試地址總線上。這樣,如果認(rèn)定了更新地址信號,則CLK1信號用時鐘同步鎖存器201,以將虛擬地址[31:0]信號,鎖存到調(diào)試地址[31:0]信號的各個信號中。當(dāng)對更新地址信號取反或該信號為邏輯零時,鎖存器210是靜態(tài)的,從而調(diào)試地址[31:0]信號保持穩(wěn)定。請注意,轉(zhuǎn)變嵌入處理器107的任意總線,包括調(diào)試地址總線,其功耗是很大的。正如下文中進(jìn)一步說明的那樣,使用更新地址信號來降低或排除調(diào)試地址總線的多余轉(zhuǎn)變,是非常省電的。
圖3為根據(jù)本發(fā)明之實施方式實現(xiàn)的虛擬數(shù)據(jù)總線選通邏輯300的示意圖。也將虛擬數(shù)據(jù)總線選通邏輯300,插入到虛擬選通邏輯117中,以便有選擇地將虛擬總線113的各數(shù)據(jù)信號,傳送到調(diào)試數(shù)據(jù)總線。在所示實施方式中,虛擬總線113的虛擬數(shù)據(jù)總線包括32個信號,虛擬數(shù)據(jù)[31:0]。調(diào)試數(shù)據(jù)總線也包括32個信號,調(diào)試數(shù)據(jù)[31:0]。然而,可以理解,本發(fā)明并不限于任何特定數(shù)目的數(shù)據(jù)信號。將更新數(shù)據(jù)信號,提供給許多具有兩個輸入的與非門301的各與非門的一個輸入端。與非門301的各與非門的另一輸入端,接收虛擬數(shù)據(jù)[31:0]信號的各信號。例如,第一與非門301接收虛擬數(shù)據(jù)
信號,第二與非門301接收虛擬數(shù)據(jù)[1]信號,等等。將各與非門301的輸出,提供給許多反相器303的各反相器的輸入端。反相器303的各反相器在其各自輸出端,認(rèn)定調(diào)試數(shù)據(jù)[31:0]信號的各個信號的相應(yīng)信號。
除了無需與CLK1信號同步之外,虛擬數(shù)據(jù)總線選通邏輯300的操作,與虛擬地址總線選通邏輯200的操作類似。然而,可以理解,能夠以與虛擬數(shù)據(jù)總線選通邏輯300相似的方式,實現(xiàn)虛擬地址總線選通邏輯200,反之亦然。在此處所描述的特定實施方式中,虛擬地址總線選通邏輯200稍微延遲其地址,以確保周期真實有效并能適當(dāng)鎖存。其他優(yōu)點在于,調(diào)試地址總線和信號的定時并不很關(guān)鍵,因此,可以使用較小、較低的功耗設(shè)備實現(xiàn)緩沖器203。當(dāng)更新數(shù)據(jù)信號取反為低時,調(diào)試數(shù)據(jù)總線保持靜態(tài)不變。當(dāng)認(rèn)定更新數(shù)據(jù)信號為高時,在經(jīng)過邏輯門301、303的輕微延遲后,調(diào)試數(shù)據(jù)總線邏輯跟隨虛擬總線113的虛擬數(shù)據(jù)總線。特別是,當(dāng)認(rèn)定更新數(shù)據(jù)信號為高時,調(diào)試數(shù)據(jù)
信號跟隨虛擬數(shù)據(jù)
信號,調(diào)試數(shù)據(jù)[1]信號跟隨虛擬數(shù)據(jù)[1]信號,等等。
應(yīng)該理解,虛擬地址總線選通邏輯200和虛擬數(shù)據(jù)總線選通邏輯300,分別經(jīng)由更新地址信號和更新數(shù)據(jù)信號,有選擇地控制并啟動相應(yīng)的調(diào)試地址總線和調(diào)試數(shù)據(jù)總線。這樣,可以利用更新地址和更新數(shù)據(jù)信號,來控制調(diào)試地址和調(diào)試數(shù)據(jù)總線的功耗。同樣,能夠在調(diào)試、測試或校正操作期間,控制嵌入系統(tǒng)103的功耗。特別是在諸如尋呼機(jī)和移動電話之類的電池供電的便攜設(shè)備中,在正常操作方式中禁用調(diào)試方式。將更新地址和更新數(shù)據(jù)信號強制為低,以確保調(diào)試地址和調(diào)試數(shù)據(jù)總線不轉(zhuǎn)變。這可確保附加的調(diào)試方式邏輯或電路不消耗大量電源,從而不影響電池壽命。
當(dāng)需要對調(diào)試數(shù)據(jù)總線和調(diào)試地址總線的調(diào)試信號進(jìn)行采樣時,實時調(diào)試接口105認(rèn)定更新數(shù)據(jù)和更新地址信號。同時,從核心109向?qū)崟r調(diào)試接口105提供各種屬性信號,其中用處理器狀態(tài)表示該信號。由開發(fā)系統(tǒng)101控制的實時調(diào)試接口105,確定何時認(rèn)定更新數(shù)據(jù)和更新地址信號,以啟動或啟用調(diào)試數(shù)據(jù)和調(diào)試地址信號,供實時調(diào)試接口105進(jìn)行監(jiān)視。在特定實施方式中,實時調(diào)試接口105可以啟動或啟用程序跟蹤,以監(jiān)視在流改變(COF)事件期間由核心109執(zhí)行的指令提取序列。處理器狀態(tài)信號表示COF狀態(tài),而虛擬總線113的虛擬地址總線認(rèn)定COF地址。如處理器狀態(tài)信號所表示的那樣,在COF狀態(tài)或事件期間,實時調(diào)試接口105認(rèn)定更新地址信號,以啟動調(diào)試地址總線并對它取樣。同步消息也可以為程序跟蹤操作的一部分,其中實時調(diào)試接口105認(rèn)定更新地址信號。
數(shù)據(jù)跟蹤消息包括監(jiān)視數(shù)據(jù)訪問地址,以及有條件地提供的關(guān)聯(lián)數(shù)據(jù)。對一個或多個定義地址范圍的任意一個地址范圍的數(shù)據(jù)讀寫,數(shù)據(jù)跟蹤是有用的。當(dāng)啟用數(shù)據(jù)跟蹤消息處理時,實時調(diào)試接口105監(jiān)視讀寫周期中包含的數(shù)據(jù)提取的處理器狀態(tài)。處理器狀態(tài)信號還表示是否正在出現(xiàn)讀寫周期。對于寫消息處理或讀消息處理,實時調(diào)試接口105均認(rèn)定數(shù)據(jù)提取期間的更新地址信號,以在適當(dāng)數(shù)據(jù)周期期間捕獲相應(yīng)地址。例如,對于讀消息處理,如果處理器狀態(tài)總線表示讀周期,則實時調(diào)試接口105認(rèn)定更新地址信號。同樣,對于寫消息處理,如果處理器狀態(tài)總線表示寫周期,則實時調(diào)試接口105認(rèn)定更新地址信號。當(dāng)然,對于讀寫信號而言,如果同時啟用讀寫消息處理,則實時調(diào)試接口105認(rèn)定更新地址信號。同時,當(dāng)啟用數(shù)據(jù)跟蹤時,實時調(diào)試接口105比較從調(diào)試地址總線檢索的地址,與讀寫消息之一個或多個定義地址范圍內(nèi)的任意地址。如果發(fā)現(xiàn)某個地址與讀周期或?qū)懼芷谄ヅ?,則實時調(diào)試接口105認(rèn)定更新數(shù)據(jù)信號,該信號使虛擬總線選通邏輯117認(rèn)定調(diào)試數(shù)據(jù)總線上的相應(yīng)數(shù)據(jù)。
圖4為一定時圖,說明根據(jù)本發(fā)明之某一實施方式的程序跟蹤虛擬地址選通操作。以嵌入系統(tǒng)103之定時引用的方式,表示核心109的主時鐘信號CLK1和CLK2。該定時圖表示虛擬總線113的虛擬地址,后者說明標(biāo)記為ADDRESS1、ADDRESS2、COF地址、ADDRESS4和ADDRESS5的五個地址的認(rèn)定。該定時圖還表示虛擬數(shù)據(jù)總線,后者分別以DATA1、DATA2、DATA3、DATA4和DATA5的方式說明五個相應(yīng)數(shù)據(jù)信號。該圖同時表示處理器狀態(tài)信號,該信號說明一條指令提取,接著是COF事件,然后是數(shù)據(jù)提取,最后是另一條指令提取。該定時圖還表示更新地址信號、調(diào)試地址時鐘信號以及調(diào)試地址總線。
在圖4的示例中,啟用程序跟蹤,而禁用數(shù)據(jù)跟蹤。由于啟用數(shù)據(jù)跟蹤,所以無需監(jiān)視虛擬數(shù)據(jù)總線上的數(shù)據(jù)。因此,實時調(diào)試接口105保持更新數(shù)據(jù)信號的取反為低,從而調(diào)試數(shù)據(jù)總線保持靜態(tài)待用,而不管虛擬數(shù)據(jù)總線上的活動。這提供了顯著降低功耗的直接優(yōu)點,因為不需要消耗功率來轉(zhuǎn)換調(diào)試數(shù)據(jù)總線。
實時調(diào)試接口105無需監(jiān)視虛擬地址總線上的所有活動。虛擬地址總線上認(rèn)定的許多地址,為先前認(rèn)定地址的遞增形式。這樣,一旦知道一連串順序地址的初始地址,剩余地址就是已知的或者是可預(yù)測的,從而無需將它們傳送到調(diào)試地址總線上。這對于任意尋址模式均成立,尋址模式包括順序地址未必遞增的模式,只要知道二進(jìn)制順序即可。實時調(diào)試接口105只需例如響應(yīng)條件或非條件分支或循環(huán)指令,抑或任何直接或間接COF事件,確定并讀取不服從順序次序的地址。在處理器狀態(tài)信號上認(rèn)定的COF指令,標(biāo)識非順序地址。
如圖4所示,即使在虛擬地址總線上認(rèn)定順序地址ADDRESS1和ADDRESS2,調(diào)試地址總線也保持上一COF地址不變。具體而言,當(dāng)實時調(diào)試接口105在處理器狀態(tài)信號上檢測到一個COF指令時,它按照事件箭頭401所示的方式,認(rèn)定更新地址信號。更新地址信號的認(rèn)定啟用圖2所示的鎖存器201。如事件箭頭403所示,在認(rèn)定更新地址信號時,在CLK1信號的下一上升邊上,在以405指示的位置認(rèn)定調(diào)試地址時鐘信號。調(diào)試地址時鐘信號的認(rèn)定啟用鎖存器201,從而以事件箭頭407所示的方式,在調(diào)試地址總線信號上驅(qū)動虛擬地址總線信號。
這樣,作為對實時調(diào)試接口105認(rèn)定的更新地址信號的響應(yīng),調(diào)試地址總線僅從上一COF地址轉(zhuǎn)變?yōu)樾碌腃OF地址。如事件箭頭409所示,在CLK2信號的下一上升邊上,完成處理器狀態(tài)信號上的COF指令。如事件箭頭411所示,作為COF指令完成的響應(yīng),實時調(diào)試接口105取消認(rèn)定更新地址信號。作為響應(yīng),按事件箭頭413所示,對調(diào)試地址時鐘信號取反。由于調(diào)試地址時鐘信號此后保持取反,所以調(diào)試地址總線保持不變,并靜態(tài)保持新的COF地址,從而降低了功耗。
圖5為一定時圖,說明根據(jù)本發(fā)明之某一實施方式的程序和數(shù)據(jù)跟蹤虛擬地址和數(shù)據(jù)選通操作。在此示例中,同時啟用程序跟蹤和數(shù)據(jù)跟蹤。由于啟用程序跟蹤,所以實時調(diào)試接口105按上面參照圖4描述的方式,一旦認(rèn)定COF指令,就監(jiān)視虛擬地址總線。由于啟用了數(shù)據(jù)跟蹤,并且假設(shè)同時啟用讀和寫數(shù)據(jù)跟蹤,所以實時調(diào)試接口105監(jiān)視虛擬數(shù)據(jù)總線上出現(xiàn)的有效數(shù)據(jù)事件。有效數(shù)據(jù)事件是由工作站121定義的,并將該事件傳送到實時調(diào)試接口105,以進(jìn)行監(jiān)視。例如,可能希望確定寫入到特定地址之特定寄存器、或特定地址范圍內(nèi)的許多寄存器或任意其他類型之存儲設(shè)備中的數(shù)據(jù),或從上述設(shè)備中讀取的數(shù)據(jù)??梢远x許多此類地址或地址范圍。
當(dāng)啟用數(shù)據(jù)跟蹤時,實時調(diào)試接口105監(jiān)視所有數(shù)據(jù)提取指令的處理器狀態(tài)信號。當(dāng)檢測到數(shù)據(jù)提取指令時,實時調(diào)試接口認(rèn)定更新地址信號,以便從調(diào)試地址總線上的虛擬地址總線中捕獲讀或?qū)懙刂?。然后,實時調(diào)試接口105比較從調(diào)試地址中檢索的地址,與正在監(jiān)視的任意或所有適用地址或地址范圍。如果該地址等于監(jiān)視的地址或地址范圍,則實時調(diào)試接口105認(rèn)定更新數(shù)據(jù)信號,以便在數(shù)據(jù)事件有效時,將虛擬數(shù)據(jù)總線上的認(rèn)定數(shù)據(jù),傳送到調(diào)試數(shù)據(jù)總線上。請注意,如果正在監(jiān)視特定地址范圍的讀和寫操作,則認(rèn)為數(shù)據(jù)事件有效。否則,僅當(dāng)正在執(zhí)行的周期類型與正在監(jiān)視的周期類型相同時,才認(rèn)為數(shù)據(jù)事件有效。
同時,實時調(diào)試接口105根據(jù)處理器狀態(tài)信號,確定該數(shù)據(jù)周期是讀周期還是寫周期。如果只啟用了讀數(shù)據(jù)跟蹤,但檢測到寫周期,或相反,則實時調(diào)試接口105將不認(rèn)定更新地址信號,這是由于認(rèn)為該數(shù)據(jù)事件無效的緣故。即使啟用了讀和寫數(shù)據(jù)跟蹤,也需要區(qū)別特定地址范圍的讀周期或?qū)懼芷凇@?,可能希望確定某個地址范圍的讀周期和另一個不同地址范圍的寫周期。在一種實施方式中,實時調(diào)試接口105內(nèi)的比較邏輯,使用周期類型來確定適用的監(jiān)視地址范圍。當(dāng)然,如果對所有定義的地址范圍均啟用了讀和寫操作,則無需區(qū)別讀周期和寫周期。
如圖5所示,COF指令出現(xiàn)在處理器狀態(tài)信號上,由實時調(diào)試接口105檢測該指令。如事件箭頭501所示,實時調(diào)試接口105比照地認(rèn)定更新地址信號。如事件箭頭503所示,在認(rèn)定更新地址信號時,CLK1信號的認(rèn)定,引起調(diào)試地址時鐘信號的伴隨認(rèn)定。隨后,CLK2信號的認(rèn)定,使得處理器狀態(tài)信號從COF指令轉(zhuǎn)變?yōu)閿?shù)據(jù)提取指令。實時調(diào)試接口105檢測處理器狀態(tài)信號上的數(shù)據(jù)提取指令,由于在此示例中啟用了數(shù)據(jù)跟蹤,所以實時調(diào)試接口105以事件箭頭507所示的方式,使更新地址信號保持認(rèn)定。如事件箭頭511所示,由于更新地址信號保持認(rèn)定,所以調(diào)試地址時鐘信號的第二次認(rèn)定,將虛擬地址總線上出現(xiàn)的數(shù)據(jù)寫地址,鎖存到調(diào)試地址總線中。由于啟用了數(shù)據(jù)跟蹤,所以實時調(diào)試接口105檢索在調(diào)試地址總線上認(rèn)定的數(shù)據(jù)寫地址(數(shù)據(jù)讀寫地址),其中實時調(diào)試接口105比較檢索的地址,與此時活動的讀消息處理或?qū)懴⑻幚碇刑貏e定義的地址范圍。在圖5所示的示例中,實時調(diào)試接口105比較數(shù)據(jù)寫地址與有效地址范圍,并確定調(diào)試地址的比較匹配,然后按事件箭頭513所示方式,比照地認(rèn)定更新數(shù)據(jù)信號。如事件箭頭515所示,由實時調(diào)試接口105進(jìn)行的更新數(shù)據(jù)信號的認(rèn)定,使得虛擬數(shù)據(jù)總線上的信號經(jīng)由邏輯門301和303,傳送到調(diào)試數(shù)據(jù)總線,導(dǎo)致在調(diào)試數(shù)據(jù)總線上認(rèn)定的寫數(shù)據(jù)。
可以理解,邏輯門205、301,鎖存器201和緩沖器203、303提供隔離,而隔離提供降低虛擬總線113上之加載的優(yōu)點。使用降低調(diào)試地址和調(diào)試數(shù)據(jù)總線的轉(zhuǎn)換的更新地址和更新數(shù)據(jù)信號,進(jìn)一步提供了降低虛擬總線113上之加載的優(yōu)點,同時明顯節(jié)省了嵌入處理器107的電能,從而節(jié)省了嵌入系統(tǒng)103的電能。
盡管連同最佳實施方式一起說明了根據(jù)本發(fā)明的系統(tǒng)和方法,但其意圖并不是限制于此處所闡述的特定形式,而是相反,其意圖是覆蓋包含于權(quán)利要求書定義的本發(fā)明之實質(zhì)和范圍內(nèi)的上述選擇、修改和等同物。
權(quán)利要求
1.一種集成電路,其特征在于一個核心處理器,用于在核心處理器的正常操作期間,提供操作信號;一個邏輯電路,具有一個用于接收操作信號的輸入端,一個用于接收調(diào)試更新信號的第二輸入端,和一個輸出端;以及一個實時調(diào)試電路,具有提供調(diào)試更新信號的一個第一輸出端,連接到該邏輯電路之輸出端的一個第一輸入端,和一個第二輸出端,其中第二輸出端連接到可從集成電路之外部訪問的輔助總線。
2.權(quán)利要求1的集成電路,其中集成電路具有調(diào)試方式,并且實時調(diào)試電路具有作為調(diào)試方式的子集的可選方式。
3.權(quán)利要求2的集成電路,其中在可選方式持續(xù)的過程中認(rèn)定調(diào)試更新信號。
4.權(quán)利要求3的集成電路,其中核心處理器生成到達(dá)實時調(diào)試電路的處理器狀態(tài)信號,并且響應(yīng)表示處理器地址流改變的處理器狀態(tài)信號,認(rèn)定調(diào)試更新信號。
5.權(quán)利要求3的集成電路,其中核心處理器生成到達(dá)實時調(diào)試電路的處理器狀態(tài)信號,并且響應(yīng)表示處理器數(shù)據(jù)訪問的處理器狀態(tài)信號,認(rèn)定調(diào)試更新信號。
6.一種在具有調(diào)試電路和核心處理器的集成電路中的實時調(diào)試系統(tǒng)中使用的方法,其中核心處理器生成供集成電路內(nèi)部使用的操作信號,該方法的特征在于包括以下步驟在集成電路的正常操作期間,進(jìn)入調(diào)試方式;進(jìn)入可選方式,該可選方式為調(diào)試方式的子集;響應(yīng)調(diào)試電路在可選方式期間認(rèn)定調(diào)試信號,將操作信號連接到調(diào)試電路;以及響應(yīng)調(diào)試電路在可選方式期間取消認(rèn)定調(diào)試信號,阻塞調(diào)試電路中的操作信號。
全文摘要
一種實時處理器調(diào)試系統(tǒng),在實時操作期間對核心處理器之虛擬總線的地址和數(shù)據(jù)信號進(jìn)行選擇采樣,降低功耗和性能影響。嵌入處理器的選通邏輯電路,向嵌入系統(tǒng)芯片或集成電路(IC)的調(diào)試接口,提供核心處理器的虛擬總線信號,包括地址和數(shù)據(jù)信號。選通邏輯電路從調(diào)試接口接收更新數(shù)據(jù)和更新地址信號,以控制相應(yīng)調(diào)試地址和數(shù)據(jù)總線上的轉(zhuǎn)換。核心處理器向調(diào)試接口提供處理器狀態(tài)信號,調(diào)試接口確定核心處理器執(zhí)行的特定事務(wù)。
文檔編號G06F11/36GK1308279SQ0110309
公開日2001年8月15日 申請日期2001年2月6日 優(yōu)先權(quán)日2000年2月7日
發(fā)明者威廉·C.·摩耶爾, 邁克爾·D.·菲茲西蒙斯, 理查德·G.·柯林斯 申請人:摩托羅拉公司