專利名稱:芯片硬件上利用多重異步時鐘的除錯支持單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種芯片硬件上的支持單元(supportunits),尤其是一種芯片硬件上利用多重異步時鐘的除錯支持單元。
背景技術(shù):
數(shù)字信號處理(DSP,Digital Signal Processing)技術(shù)通常指電子信號的數(shù)字呈現(xiàn)的檢查與處理過程。利用數(shù)字信號處理技術(shù)進(jìn)行處理的電子信號通常是真實世界聲音與/或影像的數(shù)字呈現(xiàn)。
數(shù)字信號處理器是已對數(shù)字信號處理作最佳化處理的特殊用途微處理器,其通常用于處理實時數(shù)字信號,如配合一實時操作系統(tǒng)(RTOS,Real-Time Operating System)進(jìn)行作業(yè)。所謂的實時操作系統(tǒng)是為一種可同時接受多個工作并加以處理的操作系統(tǒng)。該種操作系統(tǒng)通常會對上述所接收的工作排定其優(yōu)先級,并可允許具有較高優(yōu)先權(quán)的工作插斷較低優(yōu)先權(quán)的工作。另外,該種實時操作系統(tǒng)通常對于內(nèi)存的管理方式是盡可能減少內(nèi)存單元被某一特定工作鎖定的時間以及減少內(nèi)存單元被鎖定的區(qū)域大小。當(dāng)多個工作同時試圖存取同一內(nèi)存區(qū)塊的機會減少后,即可允許上述多個工作異步化地執(zhí)行。
數(shù)字信號處理器一般被運用于嵌入式(embedded)系統(tǒng)。所謂的嵌入式系統(tǒng)通常是指一種整合于一較大裝置的特殊用途計算器。嵌入式系統(tǒng)大多是采用一種被客制化于某一特殊用途的小型(small footprint)實時操作系統(tǒng)。數(shù)字信號的處理經(jīng)常是利用包含一數(shù)字信號處理器與一實時操作系統(tǒng)的一嵌入式系統(tǒng)進(jìn)行實作。
一般而言,數(shù)字信號處理器是相當(dāng)復(fù)雜的裝置,其中可能包含一個以上的微處理器、內(nèi)存總線與其它電子組件。除了數(shù)字信號處理器以外,嵌入式系統(tǒng)可包含如次系統(tǒng)處理器/加速器、固件與/或其它微處理器與集成電路等額外組件。
當(dāng)設(shè)計如嵌入式系統(tǒng)、數(shù)字信號處理器與/或其它額外組件之類的電子組件時,至少于其發(fā)展的早期階段中,此類電子組件通常會因為其在設(shè)計時所產(chǎn)生的一或多個錯誤(bugs)而出現(xiàn)一種未在預(yù)期中的功能。而針對此種電子組件所進(jìn)行的錯誤辨識與移除過程稱的為除錯(debugging)。
除錯過程可能冗長而困難。除錯的困難有部份來自于現(xiàn)代電子組件的極端復(fù)雜性。通常僅能透過一個或更多個如當(dāng)機或失效之類的常見問題觀測到有一錯誤存在,然而很難判定是此電子組件設(shè)計的哪一部份導(dǎo)致上述錯誤發(fā)生。
除錯電子組件的困難亦來自于非常不容易觀測到欲除錯電子組件內(nèi)部所發(fā)生導(dǎo)致當(dāng)機或其它失效的情況。于大多數(shù)情況下,人們僅能透過嘗試錯誤的方式觀測錯誤與獲得解決,而非透過推導(dǎo)演繹的方式。
為進(jìn)行除錯,一除錯器可能要與欲除錯的電子組件連接。此除錯器可為執(zhí)行一個或多個除錯應(yīng)用程序的一計算機系統(tǒng),其可與欲除錯的電子組件進(jìn)行更精細(xì)的互動以便測知與修正錯誤。
然而,最常發(fā)生的情況是除錯器與待除錯的電子組件分別根據(jù)獨立不同的時鐘執(zhí)行。上述作法可能導(dǎo)致一個問題,即根據(jù)獨立不同時鐘執(zhí)行的數(shù)字裝置可能缺乏交換信息的一有效率裝置。于除錯器與待除錯電子組件之間經(jīng)常進(jìn)行交換的信息需要使用昂貴的同步硬件,例如采用多余的內(nèi)存緩沖區(qū)以將資料由一時鐘的使用領(lǐng)域復(fù)制至另一時鐘的使用領(lǐng)域。此外,多數(shù)于除錯器與待除錯電子組件之間交換信息的系統(tǒng)要求待除錯電子組件的時鐘必須為除錯器的測試時鐘的某一精確倍數(shù);例如許多系統(tǒng)要求受測的運作時鐘(functional clock)必須至少為測試時鐘的兩倍。上述的解決方法可能昂貴且受到重重限制。
據(jù)此,亟需新系統(tǒng)與方法提供于芯片上的硬件除錯支持單元以減少由于運作時鐘與測試時鐘比例關(guān)系所衍生的硬件實作需求與價格。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種芯片硬件上利用多重異步時鐘的除錯支持單元,其可提供于芯片上的硬件除錯支持單元以減少由于運作時鐘與測試時鐘比例關(guān)系所衍生的硬件實作需求與價格。
本發(fā)明是關(guān)于一種除錯支持單元以連接一除錯器與一欲除錯系統(tǒng),該除錯器是使用一測試時鐘,該欲除錯系統(tǒng)是使用一個或多個運作時鐘,其特征在于,該除錯支持單元包含一測試時鐘單元,該測試時鐘單元是使用該測試時鐘與該除錯器相連通訊;以及一個或多個系統(tǒng)時鐘單元,每一個該系統(tǒng)時鐘單元是對應(yīng)至該一個或多個運作時鐘,并且與該欲除錯系統(tǒng)和該測試時鐘單元相連通訊,其中上述的一個或多個系統(tǒng)時鐘單元與該欲除錯系統(tǒng)通訊時使用相對應(yīng)的該運作時鐘,該一個或多個系統(tǒng)時鐘單元與該測試時鐘單元通訊時使用該測試時鐘。
其中上述的每一個該系統(tǒng)時鐘單元還與該除錯器相連通訊,該一個或多個系統(tǒng)時鐘單元與該欲除錯系統(tǒng)通訊時使用相對應(yīng)的該運作時鐘,該一個或多個系統(tǒng)時鐘單元與該除錯器通訊時使用該測試時鐘。
其中還包含一個或多個時鐘切換單元,每一個該時鐘切換單元是對應(yīng)至該一個或多個運作時鐘,每一個該時鐘切換單元是與該測試時鐘單元與其所對應(yīng)的該系統(tǒng)時鐘單元相連通訊,當(dāng)每一個該系統(tǒng)時鐘單元與該測試時鐘單元通訊時,每一個該系統(tǒng)時鐘單元所對應(yīng)的該時鐘切換單元送出一時鐘信號至所對應(yīng)的該系統(tǒng)時鐘單元,當(dāng)每一個該系統(tǒng)時鐘單元與該欲除錯系統(tǒng)通訊時,該時鐘信號是為該系統(tǒng)時鐘單元所對應(yīng)的運作時鐘。
其中上述的欲除錯系統(tǒng)為一數(shù)字信號處理器。
其中上述的欲除錯系統(tǒng)、測試時鐘單元與系統(tǒng)時鐘單元是位于一整合式裝置或一微芯片中。
本發(fā)明一電子組件的除錯方法,其特征在于,該電子組件的除錯方法包含提供一個或多個系統(tǒng)時鐘單元以對應(yīng)至一個或多個運作時鐘,當(dāng)該一個或多個系統(tǒng)時鐘單元與一除錯器通訊時,該一個或多個運作時鐘為該除錯器所使用的一時鐘,當(dāng)該一個或多個系統(tǒng)時鐘單元與該電子組件通訊時,該一個或多個運作時鐘為該電子組件具有的一個或多個硬件時鐘的其中一個相對應(yīng)的硬件時鐘。
其中上述的該除錯器是為與執(zhí)行一除錯應(yīng)用程序的一計算機系統(tǒng)進(jìn)行通訊的一除錯支持單元。
其中上述的除錯器是為執(zhí)行一除錯應(yīng)用程序的一計算機系統(tǒng)。
其中當(dāng)每一個該系統(tǒng)時鐘單元與該除錯器相連通訊時,一時鐘切換單元將該一個或多個運作時鐘設(shè)定為該除錯器所使用的時鐘,當(dāng)每一個該系統(tǒng)時鐘單元與該電子組件相連通訊時,該時鐘切換單元將該一個或多個運作時鐘設(shè)定為該電子組件具有的該一個或多個硬件時鐘的其中一個相對應(yīng)的硬件時鐘。
其中上述的除錯器是為與執(zhí)行一除錯應(yīng)用程序的一計算機系統(tǒng)進(jìn)行通訊的一除錯支持單元。
其中上述的除錯器是為執(zhí)行一除錯應(yīng)用程序的一計算機系統(tǒng)。
其中上述的時鐘切換單元是根據(jù)該除錯器或該除錯支持單元送至該時鐘切換單元的一指令以設(shè)定該一個或多個運作時鐘。
為進(jìn)一步說明本發(fā)明的具體技術(shù)內(nèi)容,以下結(jié)合實施例及附圖詳細(xì)說明如后,其中圖1是為根據(jù)本發(fā)明一實施例的一欲除錯電子組件與一除錯支持單元的一方塊示意圖;圖2是為根據(jù)本發(fā)明實施例中測試存取協(xié)議的一實作范例的一方塊示意圖;
圖3是為根據(jù)本發(fā)明一實施例的一除錯支持單元的一方塊示意圖;圖4是為根據(jù)本發(fā)明一實施例描述除錯器如何存取除錯支持單元緩存器的一流程示意圖;圖5是為根據(jù)本發(fā)明一實施例描述除錯器如何將資料寫入欲除錯系統(tǒng)的一流程示意圖;圖6是為根據(jù)本發(fā)明一實施例描述除錯器如何自欲除錯系統(tǒng)讀出資料的一流程示意圖;圖7是為根據(jù)本發(fā)明一實施例描述除錯器如何讀取追蹤緩沖區(qū)的一流程示意圖;圖8是為根據(jù)本發(fā)明一實施例的一概念性時鐘切換電路的一方塊示意圖;圖9是為根據(jù)本發(fā)明另一實施例的一時鐘切換電路的一方塊示意圖;圖10是為根據(jù)本發(fā)明一實施例的一測試時鐘活動偵測電路的一方塊示意圖;圖11是為根據(jù)本發(fā)明一實施例的一時鐘控制電路的一方塊示意圖;以及圖12是為根據(jù)本發(fā)明提供的系統(tǒng)與方法所實作的一計算機系統(tǒng)范例的一方塊示意圖。
具體實施例方式
本發(fā)明在此所探討的方向為一種芯片硬件上利用多重異步時鐘的除錯支持單元。為了能徹底地了解本發(fā)明,將在下列的描述中提出詳盡的步驟及其組成。顯然地,本發(fā)明的施行并未限定于除錯的技術(shù)者所熟習(xí)的特殊細(xì)節(jié)。另一方面,眾所周知的組成或步驟并未描述于細(xì)節(jié)中,以避免造成本發(fā)明不必要的限制。本發(fā)明的較佳實施例會詳細(xì)描述如下,然而除了這些詳細(xì)描述之外,本發(fā)明還可以廣泛地施行在其它的實施例中,且本發(fā)明的范圍不受限定,其以之后的專利范圍為準(zhǔn)。
如前所述,對如數(shù)字信號處理器或其相關(guān)裝置等電子組件進(jìn)行除錯的困難之一,在于缺乏觀測欲除錯的電子組件內(nèi)部工作情況的能力。
除錯電子裝置的一種方式是將一除錯支持單元整合入于欲除錯的電子組件。例如,若上述欲除錯的電子組件是實作于一微芯片上,則此除錯支持單元可為此微芯片上的一除錯單元。請參考圖1所示,其是為根據(jù)本發(fā)明一實施例的一欲除錯電子組件12與一除錯支持單元13的一方塊示意圖。于本實施例中,此除錯支持單元13可被置入一整合裝置,例如為此欲除錯電子組件12的一電路組件。于一范例中,此除錯支持單元13可被整合入包含上述欲除錯電子組件12的一微芯片11。此微芯片11可被視為一系統(tǒng)芯片(SOC,system-on-chip)。于上述的范例中,上述欲除錯電子組件12亦可被稱為一欲除錯系統(tǒng)(SUD,system-under-debug)12。當(dāng)此除錯支持單元13可被整合入一微芯片時,此除錯支持單元13可被視為于芯片上的除錯單元,上述欲除錯系統(tǒng)12則可被視為于芯片上的欲除錯系統(tǒng)12。
上述的除錯支持單元13可提供專屬硬件的支持以供一外部除錯器14對上述欲除錯系統(tǒng)12進(jìn)行除錯。此除錯支持單元13可為上述外部除錯器14與欲除錯系統(tǒng)12的一接口。據(jù)此,上述除錯支持單元13提供上述外部除錯器14一種裝置以便接入此欲除錯系統(tǒng)12的內(nèi)部并且觀測其作業(yè)情況,于此同時可最小化此欲除錯系統(tǒng)12用以接受測試所需的處理能力。上述作法可允許此欲除錯系統(tǒng)12受測時的操作情況如同正常操作情況一般,可大幅度地增加除錯的有效性。
上述的除錯器14可為一計算機系統(tǒng),其已經(jīng)設(shè)定用于對此欲除錯系統(tǒng)12進(jìn)行除錯。例如,上述的除錯器14可為執(zhí)行一個或以上除錯應(yīng)用程序的一計算機系統(tǒng)。
上述除錯器14具有許多不同型態(tài),其可單獨或以兩個以上的群組型態(tài)進(jìn)行運用。不同的除錯器14可支持不同的除錯功能。某些除錯功能包含系統(tǒng)開機、軟件執(zhí)行的激活/停止/繼續(xù)、設(shè)定程序地址或資料停止點、對芯片上內(nèi)存位置或緩存器進(jìn)行讀寫、軟件指令的步進(jìn)(stepping)與軟件執(zhí)行追蹤的監(jiān)控。
上述除錯器14可透過連接至上述除錯支持單元13的一外部總線15與此欲除錯系統(tǒng)12連接。此外部總線15可于上述除錯器14與除錯支持單元13之間傳輸資料與控制信息。此外,上述外部總線15可遵循一個或更多接口標(biāo)準(zhǔn)。例如,此外部總線15可使用符合聯(lián)合測試行動群/測試存取協(xié)議(JTAG/TAP,Joint Test Action Group/Test AccessProtocol)的控制接口。上述的聯(lián)合測試行動群是已成為國際電子電機工程師協(xié)會(IEEE)所訂定的標(biāo)準(zhǔn)1149.1,本發(fā)明將此標(biāo)準(zhǔn)作為參考基礎(chǔ)。
請參考圖2所示,其是為根據(jù)本發(fā)明實施例中測試存取協(xié)議的一實作范例的一方塊示意圖,其用以連接除錯器與系統(tǒng)芯片。一除錯器21可透過測試存取協(xié)議23與一系統(tǒng)芯片22連接。此測試存取協(xié)議23可包含一測試時鐘信號(TCK)24以將此除錯器21的測試時鐘頻率傳送至上述的除錯支持單元。此外,上述的測試存取協(xié)議23可包含一測試重置信號(TRST)25以利此除錯器21將一重置信號傳送至上述除錯支持單元。上述的測試存取協(xié)議23可還包含一測試模式控制信號(TMS)26以供此除錯器21控制其對于上述除錯支持單元的存取功能。再者,此測試存取協(xié)議23可還包含一序列資料輸入信號(TDI)27與一序列資料輸出信號(TDO)28以供此除錯器21與除錯支持單元交換的額外信息,例如同步信息等。
本發(fā)明實施例所提供的于芯片上硬件除錯支持的系統(tǒng)與方法,是利用一除錯支持單元與執(zhí)行于一測試時鐘速度下的—除錯器和執(zhí)行于一個或多個運作時鐘速度下的一欲除錯系統(tǒng)溝通,其中上述的運作時鐘可不與此測試時鐘同步。
請合并參考圖1與圖3所示。其中,除錯支持單元31可包含一測試時鐘單元測試時鐘單元(DBG_TCK)32與上述的外部除錯器14連接,例如透過一測試存取協(xié)議接口。上述除錯支持單元31可包含一個或多個系統(tǒng)時鐘單元(DBG_SCLK)35,其每一個皆與上述欲除錯系統(tǒng)12中以某一特定時鐘執(zhí)行的部份連接。例如當(dāng)欲除錯系統(tǒng)12包含以各自獨立時鐘執(zhí)行的許多部分時,則此除錯支持單元31即包含多個系統(tǒng)時鐘單元35以各自連接上述欲除錯系統(tǒng)12的相對應(yīng)部份。然而為簡化說明之故,于本發(fā)明實施例中所描述的欲除錯系統(tǒng)12是以單一運作時鐘(CLK)執(zhí)行,故本發(fā)明的實施例可能僅示出單一個系統(tǒng)時鐘單元35以連接上述的欲除錯系統(tǒng)12。
上述的測試時鐘單元測試時鐘單元32可能依循由此測試存取協(xié)議接口自上述外部除錯器14所接收的測試時鐘進(jìn)行運作,其可令外部除錯器14與此測試時鐘單元測試時鐘單元32之間的資料溝通具有效率。上述的測試時鐘單元測試時鐘單元32可還包含一測試存取協(xié)議控制器33以透過測試存取協(xié)議控制于外部除錯器14與此測試時鐘單元測試時鐘單元32之間的信息流。此測試時鐘單元測試時鐘單元32可還包含一測試時鐘緩存器組34。
上述測試時鐘緩存器組34可包含一控制與狀態(tài)緩存器(T_CSR),其可用于自上述除錯器14提供一異步控制除錯命令至此欲除錯系統(tǒng)12。例如由上述除錯器14所發(fā)出的除錯命令可先存放于上述控制與狀態(tài)緩存器,并且于對適當(dāng)時鐘同步化化后,異步地傳送至上述的欲除錯系統(tǒng)12。
此欲除錯系統(tǒng)12可能具有許多模式,例如一正常作業(yè)模式與一除錯模式。于上述正常作業(yè)模式下,此欲除錯系統(tǒng)12可正常地執(zhí)行其功能,例如執(zhí)行應(yīng)用程序等。于上述除錯模式時,此欲除錯系統(tǒng)12的執(zhí)行過程可被中斷。例如當(dāng)遭遇一除錯事件時,此欲除錯系統(tǒng)12停止執(zhí)行并可進(jìn)入上述除錯模式,所謂除錯事件可能是一個外部停止命令或觸發(fā)一斷點等事件。
此欲除錯系統(tǒng)12尚能具有其它模式,諸如一重置模式與一開機模式。當(dāng)處于重置模式下,此欲除錯系統(tǒng)12正進(jìn)行一系統(tǒng)的重置作業(yè)。于開機模式時,此欲除錯系統(tǒng)12可能正處于重置模式與正常作業(yè)模式的轉(zhuǎn)換過程。
上述控制與狀態(tài)緩存器可額外用于監(jiān)控此欲除錯系統(tǒng)12的一模式狀態(tài)。例如,記錄此欲除錯系統(tǒng)12的模式狀態(tài)信息(亦即一欲除錯系統(tǒng)模式信號SUD_MODE)可由此欲除錯系統(tǒng)12送出,與上述測試時鐘單元測試時鐘單元32的測試時鐘同步化后送抵上述的控制與狀態(tài)緩存器。上述的除錯器14可據(jù)此得知欲除錯系統(tǒng)12的狀態(tài),比如周期性地檢視此控制與狀態(tài)緩存器。然而,上述的除錯器14亦可無視于欲除錯系統(tǒng)12模式而徑行檢視此控制與狀態(tài)緩存器。
上述測試時鐘緩存器組34可包含一個或多個設(shè)定/資料除錯緩存器(T_CD)。上述的設(shè)定/資料除錯緩存器是用于儲存應(yīng)用于上述欲除錯系統(tǒng)12的除錯設(shè)定/控制信息。此除錯器14可于除錯模式時存取上述設(shè)定/資料除錯緩存器。上述的系統(tǒng)時鐘單元35與欲除錯系統(tǒng)12可于正常作業(yè)模式下利用儲存于上述設(shè)定/資料除錯緩存器內(nèi)的信息。例如,由此除錯器14所提供的新斷點設(shè)定可儲存于上述設(shè)定/資料除錯緩存器內(nèi),而處于正常作業(yè)模式的系統(tǒng)時鐘單元35可觸發(fā)一除錯事件以停止上述欲除錯系統(tǒng)12的執(zhí)行過程。又比如可儲存屬于欲除錯系統(tǒng)12的一指令于上述設(shè)定/資料除錯緩存器內(nèi),而令處于正常作業(yè)模式的欲除錯系統(tǒng)12執(zhí)行此一指令。
根據(jù)本發(fā)明的某些實施例,上述控制與狀態(tài)緩存器可于欲除錯系統(tǒng)12的各種模式下用于傳送如命令與狀態(tài)之類的特殊資料,而上述設(shè)定/資料除錯緩存器則可用于傳送一般資料。當(dāng)上述欲除錯系統(tǒng)12處于除錯模式、重置模式或開機模式時,上述除錯器14可存取此設(shè)定/資料除錯緩存器。而當(dāng)上述欲除錯系統(tǒng)12處于正常運作模式時,上述除錯器14則無法存取此設(shè)定/資料除錯緩存器。
此除錯支持單元31可還包含一專屬時鐘切換電路(CLK_SW)37,其可透過上述的測試存取協(xié)議接受測試時鐘信號,此時鐘切換電路37亦可由上述的欲除錯系統(tǒng)12接受運作時鐘。據(jù)此,上述的時鐘切換電路37可提供一同步化時鐘信號(S_CLK)39,此同步化時鐘信號39若非為上述的運作時鐘,即為測試時鐘。此外,上述的時鐘切換電路37可自上述測試時鐘單元測試時鐘單元32接受一時鐘選擇信號(CLK_SEL)38以決定此同步化時鐘信號39應(yīng)設(shè)定為上述的運作時鐘或測試時鐘。例如,此時鐘切換電路37可接受邏輯值為1的一時鐘選擇信號38以令此同步化時鐘信號39設(shè)定為上述的測試時鐘;此時鐘切換電路37可接受邏輯值為0的一時鐘選擇信號38以令此同步化時鐘信號39設(shè)定為上述的運作時鐘。此外,亦可將接受一時鐘選擇信號38視為邏輯值為1的信號,而未接受到一時鐘選擇信號38視為接受邏輯值為0的信號。
上述的系統(tǒng)時鐘單元35可能由此同步化時鐘信號39驅(qū)動。據(jù)此,上述系統(tǒng)時鐘單元35即可根據(jù)由此測試時鐘單元測試時鐘單元32所發(fā)出的時鐘選擇信號38,使用上述的運作時鐘或測試時鐘作為其時鐘來源。
根據(jù)本發(fā)明的某些實施例,儲存于上述系統(tǒng)時鐘單元35的除錯信息可直接為此除錯器14存取,故此除錯信息不需復(fù)制至上述測試時鐘單元測試時鐘單元32的緩存器以供此除錯器14存取。
當(dāng)上述的系統(tǒng)時鐘單元35使用上述的運作時鐘作為其時鐘來源時,例如當(dāng)此欲除錯系統(tǒng)12處于正常運作模式下,此系統(tǒng)時鐘單元35是與此欲除錯系統(tǒng)12同步,因此于此系統(tǒng)時鐘單元35與此欲除錯系統(tǒng)12間具有一穩(wěn)定的聯(lián)機關(guān)系。此穩(wěn)定聯(lián)機可允許資料同步地自此欲除錯系統(tǒng)12傳送至上述的系統(tǒng)時鐘單元35,與/或自上述的系統(tǒng)時鐘單元35傳送至此欲除錯系統(tǒng)12。
上述的系統(tǒng)時鐘單元35可包含一個或更多個同步時鐘緩存器36,其可稱為同步設(shè)定/資料除錯緩存器(S_CD)。此同步設(shè)定/資料除錯緩存器用于將上述除錯器14所提供的除錯信息提供至此欲除錯系統(tǒng)12。例如,此除錯器14可于除錯模式時傳送信息至上述同步設(shè)定/資料除錯緩存器,而此欲除錯系統(tǒng)12可于正常作業(yè)模式下利用儲存于上述同步設(shè)定/資料除錯緩存器內(nèi)的信息。上述的系統(tǒng)時鐘單元35可還利用此同步設(shè)定/資料除錯緩存器以擷取此欲除錯系統(tǒng)12執(zhí)行時期(runtime)的信息。例如,上述的系統(tǒng)時鐘單元35可于此欲除錯系統(tǒng)12處于正常作業(yè)模式時,將此同步設(shè)定/資料除錯緩存器中原本由除錯器14所提供的信息換成由此欲除錯系統(tǒng)12所得來的信息。
當(dāng)上述系統(tǒng)時鐘單元35使用上述測試時鐘時,如當(dāng)此欲除錯系統(tǒng)12處于除錯模式下,上述系統(tǒng)時鐘單元35可與上述測試時鐘單元測試時鐘單元32與除錯器14執(zhí)行同步;據(jù)此,上述系統(tǒng)時鐘單元35與上述測試時鐘單元測試時鐘單元32和除錯器14之間具有一穩(wěn)定的聯(lián)機關(guān)系。此穩(wěn)定聯(lián)機可允許資料同步地自此系統(tǒng)時鐘單元35與上述的測試時鐘單元測試時鐘單元32和除錯器14之間進(jìn)行傳送。據(jù)此,上述的外部除錯器14可存取此同步設(shè)定/資料除錯緩存器。
請參考圖4所示,其是為根據(jù)本發(fā)明一實施例描述除錯器如何存取除錯支持單元緩存器的一流程示意圖。無論上述欲除錯系統(tǒng)處于何種操作模式下,此外部除錯器于步驟41存取上述測試時鐘單元測試時鐘單元的控制與狀態(tài)緩存器。若此欲除錯系統(tǒng)是處于正常運作模式而非除錯模式下,如判定步驟42的“否”路徑,則此外部除錯器僅能如步驟41存取上述的控制與狀態(tài)緩存器。若此欲除錯系統(tǒng)是處于除錯模式下,如判定步驟42的“是”路徑,則此外部除錯器可選擇其所欲存取的設(shè)定/資料除錯緩存器與/或同步設(shè)定/資料除錯緩存器。上述選擇緩存器的方法可利用聯(lián)合測試行動群/測試存取協(xié)議送出關(guān)于上述測試時鐘信號、測試模式控制信號與序列資料輸入信號的一適當(dāng)序列。若此外部除錯器欲存取一同步設(shè)定/資料除錯緩存器,如判定步驟43的“是”路徑,則此外部除錯器則于步驟48選擇所欲存取的同步設(shè)定/資料除錯緩存器,并且將同步化時鐘信號設(shè)定為測試時鐘。據(jù)此,此外部除錯器于步驟49中存取所欲的同步設(shè)定/資料除錯緩存器。若此外部除錯器不欲存取一同步設(shè)定/資料除錯緩存器,如判定步驟43的“否”路徑,則可于步驟44中選擇所欲存取的設(shè)定/資料除錯緩存器或控制與狀態(tài)緩存器,并且將同步化時鐘信號設(shè)定為運作時鐘。若選擇存取控制與狀態(tài)緩存器,如判定步驟45的“是”路徑,則此外部除錯器可于步驟47中存取此控制與狀態(tài)緩存器。若非選擇存取控制與狀態(tài)緩存器,即選擇設(shè)定/資料除錯緩存器,如判定步驟45的“否”路徑,則此外部除錯器可于步驟47中存取此設(shè)定/資料除錯緩存器。
請參考圖5所示,其是為根據(jù)本發(fā)明一實施例描述除錯器如何將資料寫入欲除錯系統(tǒng)的一流程示意圖。此外部除錯器可于步驟51中,選擇同步設(shè)定/資料除錯緩存器并且將同步化時鐘信號設(shè)定為測試時鐘。接著于步驟52,此外部除錯器轉(zhuǎn)移一數(shù)據(jù)值與一指令至上述被擇定的同步設(shè)定/資料除錯緩存器。此外部除錯器于下一步驟53中選擇控制與狀態(tài)緩存器并且將同步化時鐘信號設(shè)定為運作時鐘。之后,此外部除錯器可于步驟54中轉(zhuǎn)送一“注入”(INJECT)指令至欲除錯系統(tǒng)。上述的“注入”指令于欲除錯系統(tǒng)接收前,先于系統(tǒng)時鐘單元中被同步為運作時鐘。于步驟55,欲除錯系統(tǒng)即轉(zhuǎn)換為正常運作模式。接著,欲除錯系統(tǒng)于步驟56執(zhí)行來自此同步設(shè)定/資料除錯緩存器內(nèi)的指令,并且將上述的資料值送入此欲除錯系統(tǒng)的目的地。最后于步驟57中,欲除錯系統(tǒng)于執(zhí)行上述的“注入”指令后,即重新進(jìn)入除錯模式。
請參考圖6所示,其是為根據(jù)本發(fā)明一實施例描述除錯器如何自欲除錯系統(tǒng)讀出資料的一流程示意圖。首先于步驟60,此外部除錯器選擇同步設(shè)定/資料除錯緩存器并且將同步化時鐘信號設(shè)定為測試時鐘。其后,此外部除錯器于步驟61轉(zhuǎn)送一數(shù)據(jù)移動指令至上述被選擇的同步設(shè)定/資料除錯緩存器。此外部除錯器于下一步驟62中選擇控制與狀態(tài)緩存器并且將同步化時鐘信號設(shè)定為運作時鐘。之后,此外部除錯器可于步驟63中轉(zhuǎn)送一“注入”(INJECT)指令至欲除錯系統(tǒng)。于步驟64,欲除錯系統(tǒng)即轉(zhuǎn)換為正常運作模式。接著,欲除錯系統(tǒng)于步驟65執(zhí)行來自此同步設(shè)定/資料除錯緩存器內(nèi)的資料移動指令,并將其所指定的欲除錯系統(tǒng)資料傳送至一同步設(shè)定/資料除錯緩存器。于步驟66中,欲除錯系統(tǒng)于執(zhí)行上述的“注入”指令即重新進(jìn)入除錯模式。其后,此外部除錯器于步驟67中檢查控制與狀態(tài)緩存器,判斷欲除錯系統(tǒng)是否已經(jīng)重新進(jìn)入除錯模式。接著此外部除錯器于步驟68選擇上述儲放資料的同步設(shè)定/資料除錯緩存器,并且將同步化時鐘信號設(shè)定為測試時鐘。最后于步驟69中,此外部除錯器即可讀出上述同步設(shè)定/資料除錯緩存器所儲放的資料。
當(dāng)欲除錯系統(tǒng)于正常運作模式中執(zhí)行時,可能希望儲存一追蹤緩沖區(qū)(trace buffer)以便收集關(guān)于此欲除錯系統(tǒng)執(zhí)行時的珍貴資料,以便供給外部除錯器進(jìn)行除錯的用。例如,上述追蹤緩沖區(qū)可儲存此欲除錯系統(tǒng)所執(zhí)行的每一跳躍指令的標(biāo)的地址。上述的跳躍指令包含分支指令、呼叫指令與返回指令等。請參考圖7所示,其是為根據(jù)本發(fā)明一實施例描述除錯器如何讀取追蹤緩沖區(qū)的一流程示意圖。當(dāng)欲除錯系統(tǒng)處于正常運作模式時,欲除錯系統(tǒng)所紀(jì)錄的追蹤緩沖區(qū)信息可于步驟71中存放于系統(tǒng)時鐘單元緩存器的追蹤緩沖區(qū)。僅需欲除錯系統(tǒng)持續(xù)執(zhí)行程序,則于圖7標(biāo)出的循環(huán)可不斷重復(fù)執(zhí)行。當(dāng)上述追蹤緩沖區(qū)尚未儲滿時,如判定步驟72的“否”路徑,則資料持續(xù)如步驟71般存放于追蹤緩沖區(qū)內(nèi)。當(dāng)上述追蹤緩沖區(qū)已被儲滿時,如判定步驟72的“是”路徑,則欲除錯系統(tǒng)于步驟73中暫時轉(zhuǎn)換為除錯模式。接著,除錯器于步驟74將讀取上述追蹤緩沖區(qū)內(nèi)資料,例如將追蹤緩沖區(qū)的整個內(nèi)容轉(zhuǎn)移至除錯器。于其后的步驟75中,此追蹤緩沖區(qū)的內(nèi)容會被清除。最后,欲除錯系統(tǒng)于步驟76中回復(fù)至正常運作模式后,再如步驟71般將資料持續(xù)存放于追蹤緩沖區(qū)內(nèi)。
如上所述,時鐘切換電路必須同步化時鐘信號切換為運作時鐘或測試時鐘。請參考圖8所示,其是為根據(jù)本發(fā)明一實施例的一概念性時鐘切換電路的一方塊示意圖。此概念性時鐘切換電路可用于描述形成一時鐘切換電路81的基本邏輯規(guī)則。上述的時鐘切換電路81可接收上述的測試時鐘、運作時鐘與一測試時鐘選擇信號(TCK_SEL)作為輸入。當(dāng)上述的測試時鐘選擇信號為邏輯值1時,一與門(AND gate)82接受邏輯值0為其第一輸入值,以及接受上述的運作時鐘為其第二輸入值,故此與門82的輸出值將持續(xù)為邏輯值0。當(dāng)上述的測試時鐘選擇信號為邏輯值1時,一與門83接收上述的測試時鐘為其第一輸入值,以及接受上述的邏輯值1為其第二輸入值;當(dāng)此測試時鐘上升時,此與門83的輸出值將為邏輯值1;故此與門83的輸出值為上述的測試時鐘。接著,一或門84將會接收此測試時鐘為其第一輸入值,以及接受上述的邏輯值0為其第二輸入值;當(dāng)此測試時鐘上升時,此或門84的輸出值將為邏輯值1;故此或門84的輸出值為上述的測試時鐘。
反的,當(dāng)上述的測試時鐘選擇信號為邏輯值0時,上述的與門82接收邏輯值1為其第一輸入值,以及接受上述的運作時鐘為其第二輸入值;故此與門82的輸出值將為上述的運作時鐘。當(dāng)上述的測試時鐘選擇信號為邏輯值0時,上述的與門83接收上述的測試時鐘為其第一輸入值,以及接受上述的邏輯值0為其第二輸入值;故此與門83的輸出值將為邏輯值0。上述的或門84將會接受上述的邏輯值0為其第一輸入值,以及接受運作時鐘為其第二輸入值;當(dāng)此運作時鐘上升時,此或門84的輸出值將為邏輯值1;故此或門84的輸出值為上述的運作時鐘。
請參考圖9所示,其是為根據(jù)本發(fā)明另一實施例的一時鐘切換電路的一方塊示意圖。一包含復(fù)數(shù)個與非門的多任務(wù)器結(jié)構(gòu)92是于架構(gòu)上等價于圖8標(biāo)出的時鐘切換電路。然而,圖9標(biāo)出的時鐘切換電路91甚至可于上述的測試時鐘選擇信號不同步于運作時鐘與測試時鐘時,提供運作時鐘與測試時鐘之間清晰無礙(glitch free)的切換。當(dāng)兩個重置信號(測試重置信號TRST與功能性重置信號RST_N)為有效(active)時,運作時鐘將會驅(qū)動成為同步化時鐘信號的輸出。當(dāng)上述的測試重置信號TRST為有效時(負(fù)邏輯有效active low),測試時鐘單元測試時鐘單元即令上述的測試時鐘選擇信號為失效(inactive)。若除錯器欲選擇存取任一個同步設(shè)定/資料除錯緩存器時,則上述的測試時鐘選擇信號被設(shè)為有效(正邏輯有效active high)。據(jù)此,當(dāng)此除錯器欲準(zhǔn)備與/或正存取任一個同步設(shè)定/資料除錯緩存器的時,上述的測試時鐘選擇信號被設(shè)為有效(正邏輯有效active high),其導(dǎo)致此時鐘切換電路驅(qū)動上述的測試時鐘為其輸出;否則,此時鐘切換電路驅(qū)動上述的運作時鐘為其輸出。當(dāng)欲除錯系統(tǒng)處于正常運作模式時,系統(tǒng)時鐘單元可以與遵循運作時鐘的欲除錯系統(tǒng)同步運作。當(dāng)此欲除錯系統(tǒng)處于除錯模式、開機模式,與/或被除錯器存取之時,系統(tǒng)時鐘單元可以測試時鐘同步運作。
圖9標(biāo)出的時鐘切換電路利用兩組正反器(flip-flop),其每一組皆以雙重正反同步器(dual-flop synchronizer)串行方式連接兩時鐘信號,亦即測試時鐘與運作時鐘。上述的雙重正反同步器可避免當(dāng)信號改變狀態(tài)過于接近時鐘變換邊緣時所造成的不穩(wěn)定/擬穩(wěn)態(tài)(meta-stability)現(xiàn)象。
當(dāng)欲除錯系統(tǒng)已經(jīng)除錯完畢與/或準(zhǔn)備進(jìn)入量產(chǎn)時,可關(guān)閉上述的除錯支持單元以節(jié)省欲除錯系統(tǒng)執(zhí)行正常作業(yè)時消耗的電力,例如當(dāng)上述的除錯支持單元被整合入一個數(shù)字信號處理系統(tǒng)時。根據(jù)本發(fā)明實施例所提供的測試時鐘單元測試時鐘單元可輕易地被關(guān)閉,例如僅需令上述的測試重置信號為負(fù)邏輯有效(active low)與令測試時鐘為0。同樣地,透過全域時鐘閘控(gating),系統(tǒng)時鐘單元亦可被關(guān)閉,例如測試時鐘單元測試時鐘單元可加入一測試時鐘活動偵測電路。
請參考圖10所示,其是為根據(jù)本發(fā)明一實施例的一測試時鐘活動偵測電路的一方塊示意圖。于此實施例中,當(dāng)未連接外部除錯器,亦即上述的測試重置信號(/TRST)與功能性重置信號(RST_N)皆被關(guān)閉(off)與失效時,可令上述的測試重置信號(/TRST)重置以令測試時鐘單元保持于重置狀態(tài),并且于未偵測同步化時鐘信號(S_CLK)時,釋放(release)功能性重置信號(functional reset)RST_N以令系統(tǒng)時鐘單元保持于重置狀態(tài)。
上述的測試時鐘活動偵測電路可控制一全域時鐘閘控單元(cell),其位于負(fù)責(zé)提供系統(tǒng)時鐘單元時鐘的時鐘控制電路中。請參考圖11所示,其是為根據(jù)本發(fā)明一實施例的一時鐘控制電路的一方塊示意圖。此時鐘控制電路可利用測試時鐘與運作時鐘等根時鐘以驅(qū)動系統(tǒng)中的測試時鐘、運作時鐘與同步化時鐘信號的時鐘樹(clock tree)。
圖10標(biāo)出的測試時鐘活動偵測電路可用于控制圖11標(biāo)出的時鐘控制電路的最高層整合式全域時鐘閘控單元。
請參考圖12所示,其是為根據(jù)本發(fā)明提供的系統(tǒng)與方法所實作的一計算機系統(tǒng)范例的一方塊示意圖。本發(fā)明提供的系統(tǒng)與方法可以于一計算機系統(tǒng)中執(zhí)行的一軟件應(yīng)用程序的形式進(jìn)行實作,此計算機系統(tǒng)可為一大型主機、個人計算機與手持計算機等。上述的軟件應(yīng)用程序是儲存于此計算機系統(tǒng)可存取的一紀(jì)錄媒介,其可透過一實體線路或一無線網(wǎng)絡(luò)聯(lián)機進(jìn)行存取,例如局域網(wǎng)絡(luò)或網(wǎng)際網(wǎng)絡(luò)。
上述的計算機系統(tǒng)通常指稱為一系統(tǒng)1000,其可包含一中央處理器1001、一隨機存取內(nèi)存1004、一打印機接口1010、一顯示單元1011、一局域網(wǎng)絡(luò)數(shù)據(jù)傳輸控制器1005、一局域網(wǎng)絡(luò)接口1006、一網(wǎng)絡(luò)控制器1003、一內(nèi)部總線1002與一個以上的輸入裝置1009,如鼠標(biāo)鍵盤等。如圖12所示,此系統(tǒng)1000尚可透過一聯(lián)機1007連接至如一硬盤1008之類的一資料儲存裝置。
顯然地,依照上面實施例中的描述,本發(fā)明可能有許多的修正與差異。因此需要在其附加的權(quán)利要求項的范圍內(nèi)加以理解,除了上述詳細(xì)的描述外,本發(fā)明還可以廣泛地在其它的實施例中施行。上述僅為本發(fā)明的較佳實施例而已,并非用以限定本發(fā)明的申請專利范圍;凡其它未脫離本發(fā)明所揭示的精神下所完成的等效改變或修飾,均應(yīng)包含在下述申請專利范圍內(nèi)。
權(quán)利要求
1.一種除錯支持單元以連接一除錯器與一欲除錯系統(tǒng),該除錯器是使用一測試時鐘,該欲除錯系統(tǒng)是使用一個或多個運作時鐘,其特征在于,該除錯支持單元包含一測試時鐘單元,該測試時鐘單元是使用該測試時鐘與該除錯器相連通訊;以及一個或多個系統(tǒng)時鐘單元,每一個該系統(tǒng)時鐘單元是對應(yīng)至該一個或多個運作時鐘,并且與該欲除錯系統(tǒng)和該測試時鐘單元相連通訊,其中上述的一個或多個系統(tǒng)時鐘單元與該欲除錯系統(tǒng)通訊時使用相對應(yīng)的該運作時鐘,該一個或多個系統(tǒng)時鐘單元與該測試時鐘單元通訊時使用該測試時鐘。
2.根據(jù)權(quán)利要求1所述的除錯支持單元,其特征在于,其中上述的每一個該系統(tǒng)時鐘單元還與該除錯器相連通訊,該一個或多個系統(tǒng)時鐘單元與該欲除錯系統(tǒng)通訊時使用相對應(yīng)的該運作時鐘,該一個或多個系統(tǒng)時鐘單元與該除錯器通訊時使用該測試時鐘。
3.根據(jù)權(quán)利要求1所述的除錯支持單元,其特征在于,其中還包含一個或多個時鐘切換單元,每一個該時鐘切換單元是對應(yīng)至該一個或多個運作時鐘,每一個該時鐘切換單元是與該測試時鐘單元與其所對應(yīng)的該系統(tǒng)時鐘單元相連通訊,當(dāng)每一個該系統(tǒng)時鐘單元與該測試時鐘單元通訊時,每一個該系統(tǒng)時鐘單元所對應(yīng)的該時鐘切換單元送出一時鐘信號至所對應(yīng)的該系統(tǒng)時鐘單元,當(dāng)每一個該系統(tǒng)時鐘單元與該欲除錯系統(tǒng)通訊時,該時鐘信號是為該系統(tǒng)時鐘單元所對應(yīng)的運作時鐘。
4.根據(jù)權(quán)利要求1所述的除錯支持單元,其特征在于,其中上述的欲除錯系統(tǒng)為一數(shù)字信號處理器。
5.根據(jù)權(quán)利要求1所述的除錯支持單元,其特征在于,其中上述的欲除錯系統(tǒng)、測試時鐘單元與系統(tǒng)時鐘單元是位于一整合式裝置或一微芯片中。
6.一電子組件的除錯方法,其特征在于,該電子組件的除錯方法包含提供一個或多個系統(tǒng)時鐘單元以對應(yīng)至一個或多個運作時鐘,當(dāng)該一個或多個系統(tǒng)時鐘單元與一除錯器通訊時,該一個或多個運作時鐘為該除錯器所使用的一時鐘,當(dāng)該一個或多個系統(tǒng)時鐘單元與該電子組件通訊時,該一個或多個運作時鐘為該電子組件具有的一個或多個硬件時鐘的其中一個相對應(yīng)的硬件時鐘。
7.根據(jù)權(quán)利要求6所述的電子組件的除錯方法,其特征在于,其中上述的該除錯器是為與執(zhí)行一除錯應(yīng)用程序的一計算機系統(tǒng)進(jìn)行通訊的一除錯支持單元。
8.根據(jù)權(quán)利要求6所述的電子組件的除錯方法,其特征在于,其中上述的除錯器是為執(zhí)行一除錯應(yīng)用程序的一計算機系統(tǒng)。
9.根據(jù)權(quán)利要求6所述的電子組件的除錯方法,其特征在于,其中當(dāng)每一個該系統(tǒng)時鐘單元與該除錯器相連通訊時,一時鐘切換單元將該一個或多個運作時鐘設(shè)定為該除錯器所使用的時鐘,當(dāng)每一個該系統(tǒng)時鐘單元與該電子組件相連通訊時,該時鐘切換單元將該一個或多個運作時鐘設(shè)定為該電子組件具有的該一個或多個硬件時鐘的其中一個相對應(yīng)的硬件時鐘。
10.根據(jù)權(quán)利要求9所述的電子組件的除錯方法,其特征在于,其中上述的除錯器是為與執(zhí)行一除錯應(yīng)用程序的一計算機系統(tǒng)進(jìn)行通訊的一除錯支持單元。
11.根據(jù)權(quán)利要求9所述的電子組件的除錯方法,其特征在于,其中上述的除錯器是為執(zhí)行一除錯應(yīng)用程序的一計算機系統(tǒng)。
12.根據(jù)權(quán)利要求10所述的電子組件的除錯方法,其特征在于,其中上述的時鐘切換單元是根據(jù)該除錯器或該除錯支持單元送至該時鐘切換單元的一指令以設(shè)定該一個或多個運作時鐘。
全文摘要
本發(fā)明是關(guān)于一種連接一除錯器與一欲除錯系統(tǒng)的除錯支持單元,其中上述的除錯器是使用一測試時鐘,上述的欲除錯系統(tǒng)是使用一個或多個運作時鐘。此除錯支持單元使用該測試時鐘與該除錯器相連通訊的一測試時鐘單元與一個或多個系統(tǒng)時鐘單元,每一個系統(tǒng)時鐘單元是對應(yīng)至上述的一個或多個運作時鐘,并且與該欲除錯系統(tǒng)和該測試時鐘單元相連通訊。其中上述的一個或多個系統(tǒng)時鐘單元與此欲除錯系統(tǒng)通訊時使用相對應(yīng)的運作時鐘,上述的一個或多個系統(tǒng)時鐘單元與此測試時鐘單元通訊時使用上述的測試時鐘。
文檔編號G06F11/00GK1770112SQ20051009597
公開日2006年5月10日 申請日期2005年8月29日 優(yōu)先權(quán)日2005年1月14日
發(fā)明者依佛托塞克 申請人:威盛電子股份有限公司