專利名稱:用于多線程處理器的線程間跟蹤對準(zhǔn)方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
所揭示的標(biāo)的物涉及例如可在數(shù)據(jù)通信和類似應(yīng)用中使用的數(shù)據(jù)處理系統(tǒng)和過 程。更明確地說,本發(fā)明涉及一種新穎且改進(jìn)的用于數(shù)字信號處理調(diào)試操作的方法和系統(tǒng), 包含提供用于多線程處理器的線程間跟蹤對準(zhǔn)方法和系統(tǒng)。
背景技術(shù):
電信和其它類型的電子裝備以及支持性視頻、復(fù)雜音頻、視頻會議和其它富含軟 件的應(yīng)用越來越多地涉及信號處理。信號處理要求以復(fù)雜但重復(fù)性的算法進(jìn)行快速的數(shù)學(xué) 計算和數(shù)據(jù)產(chǎn)生。許多應(yīng)用要求實時計算,即,信號作為時間的連續(xù)函數(shù),其必須經(jīng)取樣且 轉(zhuǎn)換為數(shù)字信號以用于數(shù)值處理。處理器必須執(zhí)行在樣本到達(dá)時對樣本實行離散計算的算 法。數(shù)字信號處理器(DSP)的結(jié)構(gòu)經(jīng)優(yōu)化以處置此些算法。良好的信號處理引擎的特 性包含快速且靈活的算術(shù)計算單元、去往和來自計算單元的不受限的數(shù)據(jù)流、計算單元中 的擴(kuò)展精度和動態(tài)范圍、雙地址產(chǎn)生器、有效的程序定序以及編程的簡易。DSP技術(shù)的一種有前景的應(yīng)用包含通信系統(tǒng),例如碼分多址(CDMA)系統(tǒng),其支持 經(jīng)由衛(wèi)星或陸地鏈路在用戶之間進(jìn)行語音和數(shù)據(jù)通信以及文本消息接發(fā)和其它應(yīng)用。CDMA 技術(shù)在多址通信系統(tǒng)中的使用揭示于題為“使用衛(wèi)星或陸地中繼器的擴(kuò)展頻譜多址通信 系統(tǒng)(SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEMUSING SATELLITE OR TERRESTRIAL REPEATERS) ”的第4,901, 307號美國專利以及題為“用于在CDMA蜂窩式電信手持機系統(tǒng)中產(chǎn)生波形的系統(tǒng)和方法(SYSTEM ANDMETHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSETSYSTEM) ”的第5,103,459號美國專利中,以上兩個專利均轉(zhuǎn) 讓給所主張標(biāo)的物的受讓人。CDMA系統(tǒng)通常經(jīng)設(shè)計以符合一個或一個以上標(biāo)準(zhǔn)。一種此類第一代標(biāo)準(zhǔn)是“用于 雙模式寬帶擴(kuò)展頻譜蜂窩式系統(tǒng)的TIA/EIA/IS-95終端-基站兼容性標(biāo)準(zhǔn)”,下文中稱為 IS-95標(biāo)準(zhǔn)。IS-95 CDMA系統(tǒng)能夠發(fā)射語音數(shù)據(jù)和包數(shù)據(jù)??筛行У匕l(fā)射包數(shù)據(jù)的較新 一代標(biāo)準(zhǔn)由名為“第三代合作伙伴計劃”(3GPP)的協(xié)會提供且包含于一組文獻(xiàn)中,所述組文 獻(xiàn)包含第 3G TS 25. 211 號、第 3G TS 25. 212 號、第 3G TS 25. 213 號和第 3G TS25. 214 號 文獻(xiàn),公眾可容易獲得所述文獻(xiàn)。3GPP標(biāo)準(zhǔn)在下文中稱為W-CDMA標(biāo)準(zhǔn)。采用例如W-CDMA標(biāo)準(zhǔn)的復(fù)雜DSP操作軟件要求穩(wěn)健的開發(fā)工具。此類開發(fā)工具 可包含用于代碼產(chǎn)生、集成、測試、調(diào)試和評估應(yīng)用程序性能的那些工具。在開發(fā)和操作軟 件或復(fù)雜DSP應(yīng)用程序(例如高級電信應(yīng)用程序)時,需要非常復(fù)雜的但非侵入式的調(diào)試 軟件。也就是說,調(diào)試軟件應(yīng)用程序必須不僅足夠穩(wěn)健來監(jiān)視、測試和支持軟件缺陷和操作 問題的校正。同時,調(diào)試軟件可能需要操作以便在同時的調(diào)試操作期間不干擾核心處理器 軟件操作。否則,核心處理軟件中的任何問題可能會在軟件調(diào)試操作期間不被檢測到或不 被正確地檢測到。在調(diào)試操作期間,需要將用于跟蹤DSP內(nèi)的操作線程的處理的操作的跟蹤功能與 非侵入式軟件調(diào)試操作相關(guān)聯(lián)。此系統(tǒng)可提供關(guān)于DSP的狀態(tài)參數(shù)的信息以用于在特定事 件發(fā)生之前和之后俘獲此信息。同時,即使當(dāng)DSP以全速操作時,所需的跟蹤功能也不會對 處理器性能增加任何顯著的負(fù)擔(dān)。與非侵入式調(diào)試操作組合,此跟蹤過程可俘獲特定類型 的信息。因此,跟蹤功能在多線程處理器中提供與非侵入式調(diào)試操作結(jié)合的監(jiān)視和記錄。跟蹤功能可提供的尤其有用的一組信息包含線程間執(zhí)行行為。也就是說,需要一 組能夠使多線程DSP的不同線程之間的跟蹤數(shù)據(jù)相互相關(guān)的跟蹤功能。沒有已知的系統(tǒng)提 供此信息。在調(diào)試軟件操作中,用戶可能期望選擇任意的時間點以知道多線程處理器在特 定時間點可正在執(zhí)行哪些指令。此信息在不同線程在不同時間激活不同的每線程調(diào)試操作 的實例中可能尤其有價值。在交錯式多線程DSP中,多個指令序列的執(zhí)行可能同時發(fā)生。由此,處理器可被視 為若干獨立操作的單線程處理器。而且,此處理器可包含執(zhí)行跟蹤單元,其記錄每一操作線 程的運行時間執(zhí)行序列。這些跟蹤通過將程序流分解為包序列而促進(jìn)程序調(diào)試操作。在此 系統(tǒng)中,可向某些包添加線程編號字段以識別哪個包屬于哪個線程。通過此方法,用于特定 線程的每一包序列可重新創(chuàng)建包含所有程序流改變和所有指令定時的完全執(zhí)行序列。雖然識別哪些包屬于哪個線程是有利的,但沒有已知的跟蹤功能提供在執(zhí)行跟蹤 期間識別線程間定時關(guān)系的能力。舉例來說,跟蹤激活之間的時間差在線程之間可能非常 大。當(dāng)線程跟蹤在不同時間對不同線程開始時,可能不可將一個線程的定時與同樣正被跟 蹤的其它線程對準(zhǔn)。因此,需要一組能夠在非侵入式調(diào)試過程內(nèi)操作的跟蹤功能,其建立并維持不同 DSP線程之間的定時關(guān)系。還需要一種方法和系統(tǒng),其準(zhǔn)許多線程處理器的不同線程的對準(zhǔn)以與多線程處理 器的嵌入式跟蹤宏單元過程結(jié)合使用。
再需要一種用于交錯式多線程處理器的線程間跟蹤對準(zhǔn)方法和系統(tǒng),其能夠與在 核心處理器軟件操作期間發(fā)生的非侵入式硅內(nèi)調(diào)試過程寬陣列結(jié)合操作。
發(fā)明內(nèi)容
本發(fā)明揭示用于在多線程處理器中提供線程間跟蹤對準(zhǔn)的技術(shù),所述技術(shù)與嵌入 式跟蹤宏單元協(xié)作以識別線程間定時關(guān)系,且因此建立和維持不同線程之間的各種定時關(guān) 系。本文揭示的方法和系統(tǒng)改進(jìn)了數(shù)字信號處理器的操作和數(shù)字信號處理器指令對于日 益強大的軟件應(yīng)用程序(包含在個人計算機、個人數(shù)字助理、無線手持機以及類似的電子 裝置中操作的應(yīng)用程序)的有效使用兩者,以及增加了相關(guān)聯(lián)的數(shù)字處理器速度和服務(wù)質(zhì) 量。根據(jù)所揭示標(biāo)的物的一個方面,提供一種方法和系統(tǒng)以用于進(jìn)行與執(zhí)行跟蹤處理 的線程間跟蹤對準(zhǔn),其包含記錄與共同預(yù)定事件相關(guān)的定時數(shù)據(jù)。此共同預(yù)定事件可為自 從最后線程起始執(zhí)行跟蹤時起的循環(huán)數(shù)目或自從所有線程終止執(zhí)行跟蹤時起的循環(huán)數(shù)目。 將線程起始執(zhí)行跟蹤的循環(huán)數(shù)目參考于共同預(yù)定事件以用于維持執(zhí)行跟蹤的定時。隨后更 新與共同預(yù)定事件相關(guān)的數(shù)據(jù)以與線程起始執(zhí)行跟蹤的時間相關(guān)聯(lián)。結(jié)果是準(zhǔn)許對準(zhǔn)與所 有線程相關(guān)聯(lián)的定時數(shù)據(jù)。相互相關(guān)的記錄準(zhǔn)許針對在多線程處理器中操作的線程重構(gòu)相 互依賴的執(zhí)行跟蹤信息,以及同步所有操作線程的定時數(shù)據(jù)。從本文提供的描述將明白所揭示標(biāo)的物的這些和其它優(yōu)點以及額外的新穎特征。 此發(fā)明內(nèi)容的意圖不是對所主張標(biāo)的物的全面描述,而是提供對標(biāo)的物的某些功能性的簡 短概覽。所屬領(lǐng)域的技術(shù)人員在檢視以下附圖和詳細(xì)描述后將明白本文提供的其它系統(tǒng)、 方法、特征和優(yōu)點。希望所有此類額外的系統(tǒng)、方法、特征和優(yōu)點均包含在此描述中且在所 附權(quán)利要求書的范圍內(nèi)。
從下文陳述的結(jié)合附圖做出的詳細(xì)描述可更容易明白所揭示標(biāo)的物的特征、性質(zhì) 和優(yōu)點,其中相同參考符號始終做出對應(yīng)識別,且其中圖1是可實施本文揭示的各種實施例中的一者的通信系統(tǒng)的簡化框圖;圖2說明用于提出本發(fā)明的教示的DSP結(jié)構(gòu);圖3提供并入有本發(fā)明揭示的標(biāo)的物的技術(shù)優(yōu)點的多線程數(shù)字信號處理器的一 個實施例的結(jié)構(gòu)框圖;圖4揭示應(yīng)用本發(fā)明的ISDB/JTAG接口特征的數(shù)字信號處理器核心的某些方面;圖5呈現(xiàn)可應(yīng)用于數(shù)字信號處理器的操作模式的過程流程圖,所述操作模式包含 本發(fā)明相關(guān)的調(diào)試操作模式;圖6提供描繪本發(fā)明的嵌入式跟蹤宏單元的總體功能視圖的框圖;圖7展示所揭示的嵌入式跟蹤宏單元過程和系統(tǒng)的觸發(fā)塊電路;圖8說明本發(fā)明揭示的線程間跟蹤對準(zhǔn)過程的重要概念;圖9展示可應(yīng)用于所揭示標(biāo)的物中的包產(chǎn)生單元的功能概覽;圖10展示可應(yīng)用于本發(fā)明揭示的標(biāo)的物的指令的各種原子的定義表;圖11提供用于本發(fā)明的分支地址包,其支持在本發(fā)明中有用的32位TID字段;
圖12呈現(xiàn)供在本發(fā)明揭示的過程中使用的同步重新開始包的示范性內(nèi)容;圖13描繪用于支持本發(fā)明揭示的標(biāo)的物的同步周期包的實施例;圖14呈現(xiàn)供在本發(fā)明揭示的過程中使用的循環(huán)計數(shù)包;圖15展示與本發(fā)明相關(guān)的pheader格式4包的一個實施例;以及圖16描繪用于與所揭示標(biāo)的物的實施例一起使用的異步包。
具體實施例方式所揭示的用于與多線程數(shù)字信號處理器的執(zhí)行跟蹤過程結(jié)合使用的線程間跟蹤 對準(zhǔn)方法和系統(tǒng)的標(biāo)的物可應(yīng)用于本文所呈現(xiàn)的益處可有利于的任何類型的多線程處理。 一種此類應(yīng)用出現(xiàn)在電信中,且明確地說出現(xiàn)在采用一個或一個以上數(shù)字信號處理電路的 無線手持機中。為了解釋可如何使用此無線手持機,圖1提供通信系統(tǒng)10的簡化框圖,通 信系統(tǒng)10可實施所揭示中斷處理方法和系統(tǒng)的所呈現(xiàn)實施例。在發(fā)射器單元12處,通常 以塊為單位從數(shù)據(jù)源14向發(fā)射(TX)數(shù)據(jù)處理器16發(fā)送數(shù)據(jù),所述發(fā)射數(shù)據(jù)處理器16對 數(shù)據(jù)進(jìn)行格式化、編碼和處理以產(chǎn)生一個或一個以上模擬信號。隨后將模擬信號提供到發(fā) 射器(TMTR) 18,其對基帶信號進(jìn)行調(diào)制、過濾、放大和上變頻轉(zhuǎn)換以產(chǎn)生經(jīng)調(diào)制信號。隨后 經(jīng)由天線20將經(jīng)調(diào)制信號發(fā)射到一個或一個以上接收器單元。在接收器單元22處,所發(fā)射信號由天線24接收且提供到接收器(RCVR)26。在接 收器26內(nèi),對所接收信號進(jìn)行放大、過濾、下變頻轉(zhuǎn)換、解調(diào)和數(shù)字化以產(chǎn)生同相(I)和(Q) 樣本。隨后由接收(RX)數(shù)據(jù)處理器28對樣本進(jìn)行解碼和處理以恢復(fù)所發(fā)射的數(shù)據(jù)。接收 器單元22處的解碼與處理是以與發(fā)射器單元12處實行的編碼與處理互補的方式實行的。 隨后將所恢復(fù)的數(shù)據(jù)提供到數(shù)據(jù)匯30。上文描述的信號處理支持語音、視頻、包數(shù)據(jù)、消息接發(fā)和其它類型的通信在一個 方向上的發(fā)射。雙向通信系統(tǒng)支持雙路數(shù)據(jù)發(fā)射。然而,圖1中為了簡單起見而沒有展示用 于另一方向的信號處理。通信系統(tǒng)10可為碼分多址(CDMA)系統(tǒng)、時分多址(TDMA)通信系 統(tǒng)(例如,GSM系統(tǒng))、頻分多址(FDMA)通信系統(tǒng),或支持用戶之間經(jīng)由陸地鏈路的語音和 數(shù)據(jù)通信的其它多址通信系統(tǒng)。在特定實施例中,通信系統(tǒng)10是符合W-CDMA標(biāo)準(zhǔn)的CDMA 系統(tǒng)。圖2說明可充當(dāng)圖1的發(fā)射數(shù)據(jù)處理器16和接收數(shù)據(jù)處理器28的DSP 40結(jié)構(gòu)。 我們強調(diào)DSP 40僅表示可有效使用本文所呈現(xiàn)的教示和概念的很多可能的數(shù)字信號處理 器實施例中的一個實施例。因此,在DSP 40中,線程TO:T5(參考標(biāo)號42到52)含有來自不 同線程的若干組指令。電路54表示指令存取機制,且用于獲取用于線程T0:T5的指令。將 用于電路54的指令排隊到指令隊列56中。指令隊列56中的指令準(zhǔn)備好發(fā)布到處理器管 線66(見下文)中。從指令隊列56,可由發(fā)布邏輯電路58選擇單個線程(例如,線程TO)。 讀取選定線程的寄存器堆60且將所讀取的數(shù)據(jù)發(fā)送到用于SL0T0:SL0T3的執(zhí)行數(shù)據(jù)路徑 62。在此實例中,SL0T0:SL0T3提供在本實施例中采用的包分組組合。來自執(zhí)行數(shù)據(jù)路徑62的輸出去往寄存器堆寫入電路64,其也經(jīng)配置以適應(yīng)個別 線程T0:T5,用于返回來自DSP 40的操作的結(jié)果。因此,從電路54和之前到寄存器堆寫入 電路64的數(shù)據(jù)路徑形成處理管線66。本實施例可采用使用具有多達(dá)六個線程T0:T5的單 個處理器的異類元件處理器(HEP)系統(tǒng)的混合。處理器管線66具有六個級,其匹配于從電路54到寄存器60和64獲取數(shù)據(jù)項目所必要的處理器循環(huán)的最小數(shù)目。DSP 40同時執(zhí)行 處理器管線66內(nèi)的不同線程T0:T5的指令。也就是說,DSP 40提供六個獨立的程序計數(shù) 器、用以區(qū)分處理器管線66內(nèi)的線程T0:T5的指令的內(nèi)部標(biāo)記機制,以及觸發(fā)線程切換的 機制。線程切換開銷為從零到僅幾個循環(huán)不等。因此,DSP40提供一種通用數(shù)字信號處理器,其經(jīng)設(shè)計以在廣泛多種信號、圖像和 視頻處理應(yīng)用中獲得高性能和低功率。圖3提供DSP 40結(jié)構(gòu)的簡明概覽,包含用于所揭示 標(biāo)的物的一種表現(xiàn)形式的相關(guān)聯(lián)指令集結(jié)構(gòu)的某些方面。DSP 40結(jié)構(gòu)的實施方案支持交 錯式多線程(IMT)處理。在此執(zhí)行模型中,硬件通過交錯來自管線中的不同線程的指令而 支持多個硬件線程T0:T5的同時執(zhí)行。此特征允許DSP40包含主動時鐘頻率,同時仍維持 高核心和存儲器利用率。IMT處理提供高處理量而無需昂貴的補償機制,例如無序執(zhí)行、擴(kuò) 展轉(zhuǎn)發(fā)網(wǎng)絡(luò)等等。此外,DSP 40可包含IMT處理的變型,例如在M 艾哈邁德(M. Ahmed)等 人的題為“可變交錯式多線程處理器方法和系統(tǒng)(Variablelnterleaved Multi-threaded Processor Method and System) ”和“用于多線程處理器中的可變線程分配和切換的方 法禾口系統(tǒng)(Method and System for Variable Thread Allocation andSwitchinR in a Multi-threaded Processor),,的共同轉(zhuǎn)讓的美國專利申請案中所揭示的那些變型和新穎 方法。明確地說,圖3提供可采用所揭示標(biāo)的物的教示的應(yīng)用于單個線程的針對DSP 40 的核心處理結(jié)構(gòu)框圖70??驁D70描繪共享指令高速緩沖存儲器72,其經(jīng)由總線接口(1/ F) 73從AXI總線74接收指令,所述指令包含混合的16位和32位指令。這些指令到達(dá)線 程T0:T5的定序器76、用戶控制寄存器78以及監(jiān)督器控制寄存器80。所揭示標(biāo)的物的核 心級系統(tǒng)結(jié)構(gòu)還包含硅內(nèi)調(diào)試系統(tǒng)(ISDB)82,其經(jīng)由JTAG接口 84介接核心處理器70,所 述兩者均在下文中更詳細(xì)地描述。定序器76將混合雙路超標(biāo)量指令和四路VLIW指令提供到S管單元86、M管單元 88、LD [加載]管90以及LD/ST [存儲]管單元92,所述單元全部與通用寄存器94通信。 AXI總線74還經(jīng)由與共享數(shù)據(jù)高速緩沖存儲器96的總線I/F 73將LD/ST指令傳送到線程 T0:T5。任選的L2高速緩沖存儲器/TCM 98信號包含具有共享數(shù)據(jù)TCM 100的LD/ST指令, 所述LD/ST指令進(jìn)一步流動到線程通用寄存器94。從AHB外圍總線102,MSM特定控制器 104與T0:T5通信中斷,包含中斷控制器指令、調(diào)試指令和定時指令。全局控制寄存器106 與線程T0:T5通信控制寄存器指令。因此,DSP 40包含六個虛擬DSP核心,其各自含有全局控制寄存器106和專用監(jiān) 督器控制寄存器80。全局控制寄存器106在所有線程之間共享。每一線程共享共同數(shù)據(jù) 高速緩沖存儲器和共同指令高速緩沖存儲器。加載、存儲和獲取操作由共同總線接口服務(wù)。 高性能AXI總線74和較低性能AHB總線102用于將數(shù)據(jù)和指令業(yè)務(wù)連接到核心外存儲器 和外圍設(shè)備。集成第二級存儲器(高速緩沖存儲器和/或TCM)輸入98是任選的。外圍設(shè) 備存取可通過存儲器映射的加載和存儲來進(jìn)行。可在MSM級處配置AHB與AXI之間的物理 地址分割。顯然,用于DSP 40的所呈現(xiàn)結(jié)構(gòu)可隨著時間而演進(jìn)和改變。舉例來說,DSP 40可 使用的指令高速緩沖存儲器的數(shù)目可從六改變?yōu)橐?,或其它?shù)目的高速緩沖存儲器。超標(biāo) 量分派、TCM 98處的L1數(shù)據(jù)以及其它結(jié)構(gòu)方而可改變。然而,本標(biāo)的物可在廣泛多種配置中且針對DSP40的大量修改具有連續(xù)的相關(guān)性。ISDB 82通過JTAG接口 84為DSP 40提供硬件調(diào)試器。ISDB 82通過共享系統(tǒng)或 僅監(jiān)督器寄存器而經(jīng)由JTAG接口 84提供軟件調(diào)試特征。這些寄存器被劃分為在每線程基 礎(chǔ)上的監(jiān)督器控制寄存器80以及所有線程之間的全局控制寄存器106。系統(tǒng)控制寄存器用 于每線程中斷和異??刂埔约懊烤€程存儲器管理活動。全局寄存器允許與ISDB 82交互以 進(jìn)行調(diào)試操作。ISDB 82使軟件開發(fā)者能夠在DSP 40操作的同時調(diào)試其軟件。ISDB 82硬件與在 ISDB 82中操作的軟件調(diào)試器程序組合可用以調(diào)試DSP40操作系統(tǒng)軟件。ISDB 82支持個 別地調(diào)試硬件線程。用戶可暫停線程執(zhí)行,查看和更改線程寄存器,查看和更改指令和數(shù)據(jù) 存儲器,單步通過線程,向線程填充指令,以及重新開始線程執(zhí)行。受信任的用戶能夠接入 所有ISDB 82特征,而不受信任的用戶能夠接入一子組特征。ISDB 82可與調(diào)試器接口卡介接以與ISDB 82通信駐留于程序計數(shù)器(PC)上的調(diào) 試軟件,但其全部通過JTAG接口 84。主機調(diào)試器軟件可通過對ISDB控制寄存器進(jìn)行讀取 和寫入來與ISDB 82交互。舉例來說,通信可通過識別將發(fā)生讀取/寫入的ISDB寄存器的 40位包以及32位數(shù)據(jù)有效負(fù)載來進(jìn)行。支持此操作的包格式可為多達(dá)64個控制寄存器, 所述控制寄存器各自可為32位寬。圖4展示所揭示標(biāo)的物的調(diào)試機制與核心處理器之間的ISDB/JTAG接口 110的重 要方面。與DSP 40核心結(jié)構(gòu)70結(jié)合,ISDB 82從ISDB JTAG電路114經(jīng)由路徑JTAG接口 路徑112與JTAG 84通信。ISDB JTAG電路114處理JTAG 84與ISDB 82之間的數(shù)據(jù)流。 ISDB JTAG 電路 114 進(jìn)一步介接 ISDB JTAGSync 電路 116。ISDB JTAGSync 電路 116 進(jìn)一步 與ISDB控制器118、指令單元(IU) 120和控制單元(CU) 122通信。明確地說,ISDB JTAGSync 電路116介接IU 120的IU ISDB邏輯電路和CU 122的CU ISDB控制器126。CU ISDB控制 器126與⑶ISDB邏輯電路128以及ISDB控制器118通信。來自ISDB控制器118的控制 輸出包含ISDB數(shù)據(jù)輸出130、ISDB復(fù)位信號132以及ISDB中斷134。到ISDB控制器118 的另外接口包含MCD接口 136和ETM斷點觸發(fā)器138。圖5呈現(xiàn)用于DSP 40的各種模式控制方面的處理模式圖140,包含在調(diào)試過程期 間ISDB 82的操作。在圖5中,DSP 40支持對所有線程為全局且對個別線程為局部的處 理模式。每一 DSP 40硬件線程個別地支持兩種執(zhí)行模式用戶(USER)模式142和監(jiān)督器 (SUPERVISOR)模式144,以及三種非處理模式等待(WAIT)模式146、關(guān)閉(OFF)模式148 和調(diào)試(DEBUG)模式150,其全部可能在圖5中出現(xiàn)。一線程的模式與其它線程無關(guān),例如, 一個線程可能在等待模式146中,而另一線程在用戶模式142中,等等。圖5的每線程模式狀態(tài)圖由各種指令或事件支持。這些包含“Exc印t”或內(nèi)部異 常事件、“Int”或外部中斷事件、來自異常模式的“RTE”或軟件返回指令,以及“SSR”或更 新SSR寄存器指令、可從任何模式輸入的“Stop”或軟件停止指令、也可從任何模式輸入的 “Start”或軟件啟動指令、“trap”或軟件陷阱指令、“Wait”或軟件等待指令、“Resume”或軟 件重新開始指令、“DE”或調(diào)試事件,以及“DR”或調(diào)試指令。雖然所主張標(biāo)的物的不同實施 方案中的功能可能與本文所呈現(xiàn)的功能稍微不同,但“3切汁”、“1 ^”、“1^111^”、“0£”和/ 或“DR”的含義可被給予其與所主張標(biāo)的物的范圍一致的最廣解釋。寄存器在DSP 40中可用于用戶模式142和監(jiān)督器模式144兩者中。用戶模式寄存器被劃分為一組通用寄存器和一組控制寄存器。通用寄存器用于所有通用計算,包含地 址產(chǎn)生、標(biāo)量和向量算術(shù)??刂萍拇嫫髦С謱S霉δ苄裕缬布h(huán)、斷言等。通用寄存 器為32位寬且可被作為單個寄存器或作為對準(zhǔn)的成對兩個寄存器而存取。通用寄存器堆 提供用于指令的所有操作數(shù),包含用于加載/存儲的地址、用于數(shù)值指令的數(shù)據(jù)操作數(shù),以 及用于向量指令的向量操作數(shù)。調(diào)試模式150提供其中線程正在等待來自ISDB 82的命令的特殊狀態(tài)。每當(dāng)發(fā)生 ISDB調(diào)試事件,例如通過軟件斷點指令的執(zhí)行、來自ISDB 82的斷點命令或硬件斷點的發(fā) 生,所指示的線程便可進(jìn)入調(diào)試模式150。當(dāng)處于調(diào)試模式150中時,核心由ISDB82經(jīng)由 來自JTAG接口 84的命令控制。當(dāng)ISDB 82由于重新開始命令的執(zhí)行而釋放線程時,線程 可根據(jù)其當(dāng)前模式設(shè)定而重新開始操作。當(dāng)線程處于調(diào)試模式150中時,其由ISDB 82控 制且無法由其它線程控制??珊雎詠碜哉谶\行的線程的以處于調(diào)試模式150中的線程為 目標(biāo)的等待、重新開始、啟動或停止指令。類似地,非可屏蔽中斷(匪I)可由處于調(diào)試模式 150中的線程忽略。硬件復(fù)位(HARDWARE RESET)模式(圖5中未展示)和調(diào)試模式150對所有線程 為全局的。每當(dāng)硬件復(fù)位引腳被斷言,無論任何線程的處理狀態(tài)如何,DSP 40均可進(jìn)入硬 件復(fù)位模式。在硬件復(fù)位模式中,所有寄存器被設(shè)定到其復(fù)位值。在硬件復(fù)位引腳被解除 斷言之前不可發(fā)生任何處理。當(dāng)復(fù)位引腳被斷言時,處理器可轉(zhuǎn)變到復(fù)位模式中,且所有寄 存器可被復(fù)位到其硬件復(fù)位值。在復(fù)位引腳被解除斷言時,線程TO可被給予軟復(fù)位中斷。 這可致使線程TO進(jìn)入監(jiān)督器模式144且在復(fù)位向量位置處開始執(zhí)行。所有其它線程可保 持關(guān)閉。在此點處,軟件自由地個別地控制每一線程的模式轉(zhuǎn)變。圖6到17涉及DSP 40的嵌入式跟蹤宏單元(ETM)單元的當(dāng)前所揭示的新穎且有 利的特征,所述ETM單元通過實時俘獲關(guān)于軟件執(zhí)行流的詳細(xì)信息而增強對代碼的用戶調(diào) 試。ETM以非侵入方式監(jiān)視和記錄選定DSP 40執(zhí)行,將執(zhí)行信息形成為包,且將包流發(fā)出到 芯片外或發(fā)出到稱為ETB的芯片上存儲器。ETM還含有用以將跟蹤信息的產(chǎn)生限制于或聚 集于所關(guān)注區(qū)的若干機制。通過使用包流,可創(chuàng)建所述執(zhí)行的重構(gòu),從而向用戶給予對代碼 的運行時間行為的直接可見性。因此,ETM為DSP 40和其它類似的數(shù)字信號處理器提供全面的調(diào)試和跟蹤功能。 這些功能允許在特定事件之前和之后俘獲關(guān)于處理器狀態(tài)的信息,同時即使在DSP 40以 全速運行時也不對處理器性能添加任何負(fù)擔(dān)。ETM可以軟件配置以僅俘獲選擇跟蹤信息且 僅在特定條件序列之后俘獲。專用的可配置的跟蹤端口和FIFO隨后允許由外部跟蹤端口 分析器在不中斷或影響處理器的情況下從芯片讀取經(jīng)壓縮的跟蹤數(shù)據(jù)??蓮?到32位數(shù)據(jù)總線配置跟蹤端口,其中跟蹤時鐘與核心時鐘無關(guān)。舉例來說, 來自ETM的數(shù)據(jù)速率可為核心時鐘的一半,且引腳的數(shù)目可增加以維持?jǐn)?shù)據(jù)帶寬。類似地, 引腳的數(shù)目可減半且數(shù)據(jù)速率增加。ETM可獨立使用以及在多核心環(huán)境內(nèi)使用以允許開發(fā) 者查看來自多個異步核心的同時且相關(guān)的跟蹤。圖6提供描繪支持本發(fā)明的多種總體ETM功能的框圖160。DSP核心處理器70介 接ETM 162,ETM 162包含觸發(fā)與過濾電路164和壓縮與包化電路166。在觸發(fā)與過濾電路 164和壓縮與包化電路166進(jìn)行處理之后,ETM輸出168流動到跟蹤儲集區(qū)170,跟蹤儲集 區(qū)170可為例如嵌入式跟蹤緩沖器(ETB)電路或芯片外電路。從跟蹤儲集區(qū)170,軟件執(zhí)行
11記錄作為輸出172流動到調(diào)試主機173。調(diào)試主機173包含解壓縮器174,用于接收跟蹤儲 集區(qū)輸出172且從該處產(chǎn)生經(jīng)重構(gòu)的執(zhí)行流176。ETM 162從JTAG 84接收控制輸入178, 所述輸入是JTAG 84響應(yīng)于來自調(diào)試主機173的數(shù)據(jù)和指令而產(chǎn)生的。如圖6所示,ETM 162監(jiān)視 DSP 40管線。通過使用此信息,ETM 162實行兩個主 要功能過濾/觸發(fā)和壓縮/包化。過濾和觸發(fā)操作是由用戶通過JTAG接口 84來編程的, 且用以界定何時開啟和關(guān)閉跟蹤。壓縮/包化單元獲得DSP 40執(zhí)行信息且有效地將其形 成為通過跟蹤端口從ETM 162發(fā)出的包。離開ETM 162的跟蹤流被饋送到跟蹤儲集區(qū)170 中。跟蹤儲集區(qū)170提供大的存儲器容量以用于記錄跟蹤記錄,且可為芯片外或芯片上的。 芯片上儲集區(qū)稱為嵌入式跟蹤緩沖器(ETB)。解壓縮器組件174是在調(diào)試主機173上運行 的軟件組件,其從跟蹤儲集區(qū)170獲得包流且連同程序映像一起重構(gòu)DSP 40的執(zhí)行流,從 而向用戶給予對DSP管線66的詳細(xì)可見性。ETM 162提供用于所有六個線程的跟蹤指令定序和定時,以及記錄和發(fā)出程序剖 析計數(shù)(高速緩沖存儲器未中、存儲體沖突和微翻譯旁視緩沖器未中)的能力。ETM 162可 在PC和LDST地址上以及在LDST數(shù)據(jù)上觸發(fā)。ETM 162支持串行和外部事件檢測。此外, ETM 162還可產(chǎn)生ISDB斷點觸發(fā)事件、外部觸發(fā)事件以及DSP40中斷。ETM 162可通過JTAG 84來編程,且在一個實施例中可支持512X32位(在一個實施例中)的專用ETB跟蹤儲集 區(qū)170。ETM 162可含有若干4觸發(fā)器塊(其各自具有2個地址比較器和1個數(shù)據(jù)比較器) 且可含有3狀態(tài)定序器。ETM 162跟蹤可在安全DSP 40啟用寄存器的控制下操作,且可經(jīng) 編程以在DSP 40功率崩潰期間操作。ETM 162產(chǎn)生指令跟蹤作為在給定時間窗口內(nèi)針對線程的程序計數(shù)器的完全進(jìn)展 的記錄。任選地,程序計數(shù)器進(jìn)展的定時(即,暫停循環(huán)的識別)也可包含在指令跟蹤中。 使用事件資源機制來界定何時產(chǎn)生這些指令跟蹤。通過對事件資源的編程來控制觸發(fā)和過 濾功能。更詳細(xì)地說,事件資源控制過濾、觸發(fā)和ISDB斷點產(chǎn)生。過濾包含決定何時啟用 和停用指令跟蹤的功能。觸發(fā)涉及決定何時將觸發(fā)標(biāo)記插入包流中。ISDB斷點確定涉及指 定ISDB 82產(chǎn)生和響應(yīng)于斷點以進(jìn)行調(diào)試操作的條件。ETM 162含有若干主要事件資源(例如,地址比較器和數(shù)據(jù)比較器)以檢測DSP 40內(nèi)何時發(fā)生特定條件(例如,某一 PC是否被執(zhí)行,或某一存儲器位置是否被讀取)。另 夕卜,存在次要事件資源(觸發(fā)塊和定序器),其實現(xiàn)對更復(fù)雜的事件布置的檢測。ETB跟蹤儲集區(qū)170提供芯片上存儲器區(qū)域,跟蹤信息在俘獲期間存儲在該處而 不是在裝置的引腳處通過跟蹤端口立即導(dǎo)出。隨后一旦俘獲已完成,便可以降低的時鐘速 率從ETB跟蹤儲集區(qū)170讀出所存儲的信息。這是通過JTAG接口 84來完成的。此兩步驟 過程消除了使用許多高速裝置引腳的寬跟蹤端口的必要性。有效地,在裝置在引腳處已經(jīng) 具有JTAG端口的情況下創(chuàng)建“零引腳”跟蹤端口。ETB跟蹤儲集區(qū)170可以較高頻率且以 全32位數(shù)據(jù)端口(超過跟蹤端口帶寬限制)來接受數(shù)據(jù),且可與由系統(tǒng)集成器供應(yīng)的RAM 塊集成。在一個實施例中,ETB跟蹤儲集區(qū)170具有2KB的大小,布置為512個條目,每一 條目為32位寬。然而,ETB跟蹤儲集區(qū)的其它大小顯然在所揭示標(biāo)的物的范圍內(nèi)。ETB跟 蹤儲集區(qū)170通過一組JTAG可存取寄存器與用戶介接??赏ㄟ^JTAG接口 84讀取或?qū)懭?每一寄存器。這些寄存器用以針對跟蹤俘獲會話而設(shè)置ETB跟蹤儲集區(qū)170,且一旦跟蹤俘獲完成,便讀出ETB跟蹤儲集區(qū)170的內(nèi)容。ETB跟蹤儲集區(qū)170提供讀取指針作為進(jìn) 入ETB跟蹤儲集區(qū)170存儲器陣列的索引。當(dāng)通過JTAG接口 84讀出ETB跟蹤儲集區(qū)170 的內(nèi)容時,讀取指針指示將讀取的位置。ETB跟蹤儲集區(qū)170還提供寫入指針作為進(jìn)入ETB 跟蹤儲集區(qū)170存儲器陣列的索引。當(dāng)將跟蹤數(shù)據(jù)寫入到ETB跟蹤儲集區(qū)170中時,其被 寫入到由寫入指針指示的條目。每一寫入操作在寫入發(fā)生之后使寫入指針自動遞增到下一 位置。ETB跟蹤儲集區(qū)170可僅俘獲ETM跟蹤流的小窗口。ETB尋找來自ETM的觸發(fā)包以 確定何時俘獲數(shù)據(jù),且觸發(fā)計數(shù)器用以指定由ETB跟蹤儲集區(qū)240俘獲的預(yù)觸發(fā)數(shù)據(jù)與后 觸發(fā)數(shù)據(jù)之間的劃分。 因此,ETM 162輔助編程者針對DSP 40調(diào)試代碼。ETM 162產(chǎn)生指令跟蹤,所述指 令跟蹤是在給定時間窗口內(nèi)針對線程的執(zhí)行流的記錄。通過使用所記錄的指令跟蹤,編程 者可看到其代碼的運行時間行為的詳細(xì)視圖。舉例來說,如果用戶的程序產(chǎn)生不可解釋的 異常,那么ETM 162輔助確定導(dǎo)致所述異常的指令流,進(jìn)而允許用戶確切評估發(fā)生了什么 情況。ETM 162使用特定的基于包的協(xié)議以用于有效地表示程序流且用于使跟蹤數(shù)據(jù)的產(chǎn) 生減到最少。ETM 162的一個方面包含用于鏈接事件和更復(fù)雜的事件檢測情境的定序器過程。 為了說明定序器過程和相關(guān)聯(lián)的觸發(fā)塊電路180的操作,圖7呈現(xiàn)定序器流程圖190。響 應(yīng)于觸發(fā)塊電路輸入182:188,定序器過程180在所示的實例中在三個狀態(tài)S0:S2下操作。 對于定序器過程310的操作,過程流可從狀態(tài)SO到達(dá)Sl或S2。從Si,定序前進(jìn)到S2或返 回到SO。從S2,定序前進(jìn)到Sl或SO。因此,定序器過程180包含三個狀態(tài)S0:S2,其中狀態(tài)之間的轉(zhuǎn)變是可編程的且基 于來自觸發(fā)塊電路182:188的匹配。定序器過程180用于跟蹤過濾以使得能夠在狀態(tài)啟用 時調(diào)節(jié)每一觸發(fā)塊電路182:188。這允許將跟蹤限于某些狀態(tài)。一旦進(jìn)入新的狀態(tài),可將每 一觸發(fā)塊電路182:188中的計數(shù)器再加載到初始值。一旦進(jìn)入給定狀態(tài),可斷言ISDB斷點。 一旦進(jìn)入給定狀態(tài),可將觸發(fā)標(biāo)記插入跟蹤流中。一旦進(jìn)入給定狀態(tài),還可斷言外部觸發(fā)控 制。外部觸發(fā)可在定序器處于給定狀態(tài)中的任何時間保持被斷言。一旦進(jìn)入給定狀態(tài),可 斷言對DSP 40的中斷。在復(fù)位之后,將計數(shù)器初始化為SO。如果多個轉(zhuǎn)變同時發(fā)生,那么 定序器保留在當(dāng)前狀態(tài)中。在一個實施例中,ETM 162含有六個計數(shù)器,其可記錄與DSP 40性能相關(guān)的各種 事件?;静僮骼妹恳挥嫈?shù)器作為可編程源。用戶可編程區(qū)計數(shù)器將執(zhí)行劃分為具有固 定循環(huán)數(shù)目的窗口。在窗口期間,將事件累加到計數(shù)器中。在窗口的末尾處,將計數(shù)器值形 成為包且通過跟蹤端口發(fā)出。隨后將計數(shù)器復(fù)位且過程再次開始。當(dāng)程序剖析單元與程序 流跟蹤同時操作時,這導(dǎo)致程序流跟蹤被關(guān)于性能事件的詳細(xì)信息覆蓋。另外,程序剖析單 元含有狀態(tài)啟用掩碼以限制何時單元是活動的。使用區(qū)計數(shù)器來將執(zhí)行劃分為具有固定循環(huán)數(shù)目的窗口。區(qū)的大小由用戶可編程 的寄存器確定。將區(qū)計數(shù)器初始化為用戶指定的值,且將所有程序剖析事件計數(shù)器復(fù)位。區(qū) 計數(shù)器隨后開始遞減計數(shù)。當(dāng)區(qū)計數(shù)器到達(dá)零時,每一程序剖析事件計數(shù)的值在跟蹤流中 發(fā)射。過程隨后再次開始。區(qū)計數(shù)器僅在狀態(tài)啟用匹配時計數(shù)。當(dāng)程序剖析不活動時,區(qū) 計數(shù)器維持其值,且在重新進(jìn)入啟用狀態(tài)時重新開始。程序剖析計數(shù)器可累積信息的不同事件包含(a) d高速緩沖存儲器未中;(b) d高速緩沖存儲器暫停循環(huán);(C) i高速緩沖存儲器未中;(d) i高速緩沖存儲器暫停循環(huán);(e) ITLB和DTLB未中;以及(f)總暫停循環(huán)。另外,每一程序剖析計數(shù)器含有六線程掩碼以將 計數(shù)器限制于在某些硬件線程中發(fā)生的事件。與區(qū)計數(shù)器一樣,程序剖析計數(shù)器僅當(dāng)狀態(tài)啟用掩碼匹配于當(dāng)前狀態(tài)時是活動 的。在所有其它時間期間,計數(shù)器維持其值,且當(dāng)重新進(jìn)入啟用狀態(tài)時計數(shù)重新開始。
本發(fā)明提供用以支持線程間跟蹤對準(zhǔn)的功能的新穎的包協(xié)議集。也就是說,對于 正使用ETM 162跟蹤的任何線程,在任何任意的時間點,本發(fā)明允許針對所有正被跟蹤的 其它線程來識別在所述點處那些線程的程序計數(shù)器值和指令狀態(tài)(例如,暫停、執(zhí)行等)。 因此,當(dāng)ETM 162在循環(huán)準(zhǔn)確模式中操作時,跟蹤對準(zhǔn)利用支持線程間跟蹤對準(zhǔn)的跟蹤端 口協(xié)議。因此,本發(fā)明使得用于同步重新開始包的循環(huán)計數(shù)字段為線程相關(guān)的,且使得循環(huán) 計數(shù)字段對于線程間對準(zhǔn)完全精確。本發(fā)明布置在用于所有線程的相同線程循環(huán)上產(chǎn)生同 步周期包。這進(jìn)一步允許在線程對準(zhǔn)由于任何原因而丟失的情況下進(jìn)行再對準(zhǔn)。在本發(fā)明的一個實施例中提供多個指令序列的執(zhí)行同時發(fā)生,且在此期間DSP 40 可被視為若干獨立操作的單線程處理器。在ETM 162中,將程序流分解為包序列,且其包含 對某些包的線程編號(tnum)字段以識別哪個包屬于哪個線程。為了識別線程間定時關(guān)系, 本發(fā)明建立且維持不同線程之間的定時關(guān)系。因為每一線程可獨立地啟用和停用指令跟 蹤,所以當(dāng)一線程開啟指令跟蹤時,其它線程可能已經(jīng)使其跟蹤啟用了一段時間。本發(fā)明揭 示的方法和系統(tǒng)通過標(biāo)記一線程開啟跟蹤時與其它線程已開啟且后續(xù)開啟跟蹤時之間的 偏移來建立線程執(zhí)行序列的相對定時。因此,本發(fā)明包含線程循環(huán)偏移字段,用于指示自從最后線程開啟跟蹤時起的循 環(huán)數(shù)目。而且,如果沒有其它線程是活動的,那么循環(huán)偏移字段含有自從所有線程中的最近 跟蹤關(guān)閉時起的循環(huán)數(shù)目。在跟蹤會話之后,包允許重構(gòu)線程執(zhí)行。隨后,通過使用偏移字 段,可在線程間正確地對準(zhǔn)執(zhí)行序列。另外,指令對準(zhǔn)機制允許在數(shù)據(jù)損失的情況下重新建 立執(zhí)行跟蹤。所揭示的標(biāo)的物此外允許重新建立線程間定時關(guān)系。通過維持準(zhǔn)許周期性產(chǎn)生同 步包的全局計數(shù)器,當(dāng)計數(shù)器到達(dá)零時,可針對每一線程產(chǎn)生包。此包含有所述線程的當(dāng)前 程序計數(shù)器值?,F(xiàn)在,由于關(guān)于DSP 40可能存在的與針對所有線程的同時包產(chǎn)生相關(guān)的各 種限制,本發(fā)明將循環(huán)偏移字段包含到同步包。循環(huán)偏移字段指示自從(其它線程中的)最 后線程產(chǎn)生同步包時起的循環(huán)數(shù)目。循環(huán)偏移字段具有有限的大小且如果計數(shù)飽和,那么 同步將不能夠?qū)崿F(xiàn),且可能等待計數(shù)器。通過使用這些機制(其在下文中更全面地描述), 本發(fā)明允許針對一個線程在任何給定點維持線程間執(zhí)行定時關(guān)系。結(jié)果是觀察所有線程的 操作和狀態(tài)以用于調(diào)試和其它重要目的的能力。通過此理解,圖8說明本發(fā)明揭示的線程間跟蹤對準(zhǔn)過程的重要概念。參看圖8, 線程間對準(zhǔn)過程200以時間t = 0為基礎(chǔ),如時間線202指示。對于可在DSP 40上操作的 各種線程204、206、208、210和212,線程起始可在不同的時間點發(fā)生。因此,在時間t = t0, 線程204可起始操作。隨后,在稍后的時間t =、,線程206可起始操作。在時間t = t2, 線程208開始,在t = t3,線程210開始操作,且在t = t4,線程212起始操作。如下文將更 全面地描述,持續(xù)時間214表示在跟蹤變?yōu)閷€程212為活動之前的循環(huán)數(shù)目。持續(xù)時間 214表示來自同步重新開始包的跟蹤開始程序計數(shù)器(PC)的循環(huán)數(shù)目。對于所有相互相關(guān)的線程204:212,針對所有線程同時產(chǎn)生同步周期包。此外,持續(xù)時間220解決了例如在線 程212中發(fā)生的長期暫停的情形。為了更全面地描述本發(fā)明的線程間操作,圖9展示包產(chǎn)生單元230的一個實施 例的功能概覽。包產(chǎn)生單元230包含包產(chǎn)生控制電路232,其接收了輸入atomW、atomN和 atomE以用于產(chǎn)生對FIFO輸入多路復(fù)用器234的輸出genlsyncP、genAsync、genBranch、 genPheader>genlsyncR>genProf 禾口 genCCount。Pheader 產(chǎn)生電路 236 接收來自包產(chǎn)生控 制電路232的w-count、e-count和n-count輸入以及atomE輸入,其全部用于產(chǎn)生對FIFO 輸入多路復(fù)用器234的pheaderPK輸出。PC/tld/asid/tnum輸入流動到同步重新開始/ 循環(huán)計數(shù)產(chǎn)生功能238、同步周期產(chǎn)生功能240以及分支地址產(chǎn)生功能242。同步重新開始 /循環(huán)計數(shù)產(chǎn)生功能238提供對FIFO輸入多路復(fù)用器234的isyncRPK、isyncRLen, CCPK 和CCLen輸出。同步周期產(chǎn)生功能240提供進(jìn)入FIFO輸入多路復(fù)用器234的isyncPPK和 isyncPLen輸入。還接收分支型輸入的分支地址產(chǎn)生功能242提供對FIFO輸入多路復(fù)用器 234的branchPK和branchLen輸出。此外,簡檔產(chǎn)生功能244接收簡檔識別符輸入以用于 產(chǎn)生對FIFO輸入多路復(fù)用器234的profPK和profLen輸出。FIFO輸入多路復(fù)用器234獲得需要在給定循環(huán)上產(chǎn)生的所有包,且將其形成為鄰 接的信息塊。FIFO輸入多路復(fù)用器234必須考慮在進(jìn)行其級聯(lián)時大小可變的包。FIFO輸 入多路復(fù)用器234的輸出在被發(fā)送到FIFO之前被寄存。對于本發(fā)明,包產(chǎn)生和FIFO輸入多路復(fù)用器234操作在三個級上發(fā)生。在包產(chǎn) 生的第一級中,包產(chǎn)生控制功能232和個別的包產(chǎn)生引擎236到244操作,且原子計數(shù)器 w-count、e-count和n-count遞增。FIFO輸入多路復(fù)用器234操作包含在此第一級中將 所述循環(huán)中所產(chǎn)生的所有包合并為鄰接塊。在第二級中,F(xiàn)IFO寫入發(fā)生以包含旋轉(zhuǎn)數(shù)據(jù)以 對準(zhǔn)于FIFO寫入指針,計算并旋轉(zhuǎn)寫入啟用,且將數(shù)據(jù)寫入到FIFO多路復(fù)用器234寄存器 中。在第三級(FIFO讀取級)處,可從FIFO寄存器讀取數(shù)據(jù)。在此第三級處,還發(fā)生插入 觸發(fā)包和將數(shù)據(jù)發(fā)送到ETB的特殊情況。如圖9中所見,個別包產(chǎn)生單元中的每一者包化其相應(yīng)數(shù)據(jù),且隨后將所得包和 長度發(fā)送到FIFO輸入多路復(fù)用器234以用于級聯(lián)。另外,包產(chǎn)生控制電路232維持原子計 數(shù)器,且決定在特定循環(huán)上將產(chǎn)生哪些包。包產(chǎn)生單元230維持三個計數(shù)器以記錄在未來 pheader或循環(huán)計數(shù)包中可能發(fā)出的待決原子的數(shù)目。每當(dāng)遇到E原子(E-atom),E原子 計數(shù)器便遞增。每當(dāng)遇到N原子(N-atom),N原子計數(shù)器便遞增,且計數(shù)包含當(dāng)前原子。也 就是說,如果當(dāng)前原子是N,那么其將被包含在N原子計數(shù)中。每當(dāng)遇到W原子(W-atom), W原子計數(shù)器便遞增。這些計數(shù)器是每線程計數(shù)器,且由此,在本實施例中每一者存在六個 拷貝。每當(dāng)通過pheader或循環(huán)計數(shù)包發(fā)出計數(shù),計數(shù)器便被復(fù)位。根據(jù)分支地址產(chǎn)生功能242,如果間接分支環(huán)回的目標(biāo)不同于先前的環(huán)回,那么可 針對所述目標(biāo)產(chǎn)生分支地址包。如果設(shè)定了所有環(huán)回模式,那么針對每個環(huán)回發(fā)出包。而 且,在同步重新開始和同步周期包產(chǎn)生之后強迫發(fā)出新的環(huán)回包。隨后設(shè)定PC相關(guān)分支IF 直接分支模式的目標(biāo)。事件(中斷、異常、SWI、TRAP等)的目標(biāo)返回RTE指令。在跟蹤啟 用被斷言且其不是跟蹤的第一循環(huán)(可改為產(chǎn)生同步重新開始包)時,可產(chǎn)生分支地址包。 包產(chǎn)生控制單元針對每一線程維持先前環(huán)回目標(biāo)寄存器以確定是否需要環(huán)回分支地址包。圖10展示可應(yīng)用于本發(fā)明揭示的標(biāo)的物的指令的各種原子的定義的表250。包協(xié)議的主要目標(biāo)是支持線程間跟蹤對準(zhǔn)。也就是說,對于任何正被跟蹤的線程,在任何任意 的時間點處,用戶應(yīng)能夠針對所有正被跟蹤的其它線程識別在所述點處那些線程的程序計 數(shù)器值和指令狀態(tài)(暫停、執(zhí)行)。跟蹤對準(zhǔn)當(dāng)ETM 162在循環(huán)準(zhǔn)確模式中操作時起作用。 跟蹤端口協(xié)議已被擴(kuò)展以支持線程間跟蹤對準(zhǔn)?!癝”型指令原子提供稱為雙跳躍的分支機 制。這里,ETM 162包含S型,其使用pheader格式4包類型來界定以保持原子。
圖11提供用于本發(fā)明的分支地址包280,其支持32位TID字段。本發(fā)明揭示的 分支地址包支持32位TID字段,其內(nèi)容出現(xiàn)在圖11中。分支地址包具有可變長度,包含1 與11字節(jié)之間的長度。MSB中的字節(jié)0到4的連續(xù)位指示包是否連續(xù)而超過所述點。單獨 地,T位指示類型字段是否將被附加到包的末尾。MSB中的字節(jié)4的1指示5個字節(jié)將跟隨 (4個字節(jié)的TID和1個字節(jié)的ASID)。分支地址包可隨著PC、TID/ASID和類型壓縮而變化。如果TID/ASID中的任一者 自從最后分支地址包或針對tnum的同步(重新開始或周期)以來已改變,那么可發(fā)出TID/ ASID0如果類型自從最后類型被發(fā)出時起已改變,那么可發(fā)出所述類型。其可在同步重新 開始或同步周期之后在第一分支地址包上產(chǎn)生。PC是相對于由分支地址、同步重新開始或 同步周期發(fā)送的先前PC來壓縮的。PC的已改變的下部部分可被發(fā)出。對于每一線程,先前 PC、先前TID/ASID和先前類型寄存器用于確定正確的壓縮。圖12呈現(xiàn)供在本發(fā)明揭示的過程中使用的同步重新開始包260的示范性內(nèi)容。同 步重新開始包可在跟蹤被起始(跟蹤啟用先前為低)時產(chǎn)生。另外,當(dāng)離開溢出條件時,如 果跟蹤啟用仍為高,那么產(chǎn)生同步重新開始包,其具有指示存在溢出的原因字段。本發(fā)明提 供使用同步重新開始包的對準(zhǔn)。指令對準(zhǔn)可被視為將全局線程循環(huán)對準(zhǔn)于正被跟蹤的每個 線程的每個循環(huán)。解壓縮器程序針對當(dāng)同步重新開始包在跟蹤流中可用時的情況完成此做 法。解壓縮器將維持最后同步重新開始計數(shù)的計數(shù)器值。在遇到同步重新開始包的任何時間,本發(fā)明可檢查循環(huán)計數(shù)字段和循環(huán)計數(shù)類型 字段。如果類型字段是“全局”,那么過程將最后同步重新開始計數(shù)指派于循環(huán)計數(shù)字段值, 且用最后同步重新開始計數(shù)注解所述包。如果類型字段是“偏移”,那么過程可使最后同步 重新開始計數(shù)遞增循環(huán)計數(shù)字段中的值,且進(jìn)一步用最后同步重新開始計數(shù)注解所述包。 在該點處,將用全局線程循環(huán)值注解每一同步重新開始包。下一步驟是注解原子。過程基于包流中的tnum值而將跟蹤流分裂為個別的線程 局部包流。對于每一線程局部包流,過程維持可變?nèi)志€程循環(huán)。維持此值以使得在遇到同 步重新開始包的任何時間,將全局線程循環(huán)指派于已被注解的值。每次遇到指令原子(E、N、 S或W)時,過程可用全局線程循環(huán)注解所述原子且使全局線程循環(huán)遞增1。通過使用正常 解壓縮程序,過程確定每一原子的程序計數(shù)器值。在應(yīng)用此程序之后,可用全局線程循環(huán)計 數(shù)值注解正被跟蹤的每個線程的每個循環(huán)。因此,舉例來說,對于給定的線程循環(huán),可確定 用于所有六個線程的當(dāng)前程序計數(shù)器值以及用于那些線程的管線的狀態(tài)(暫停、執(zhí)行等)。對于非循環(huán)準(zhǔn)確版本,將TID字段擴(kuò)展到32位。對于循環(huán)準(zhǔn)確版本,將TID擴(kuò)展 到32位且界定新的循環(huán)計數(shù)字段以支持跟蹤對準(zhǔn)。全局循環(huán)計數(shù)指示自從最后硬件復(fù)位
時起的線程循環(huán)的數(shù)目。偏移循環(huán)計數(shù)指示自從最后同步重新開始包產(chǎn)生時起的循環(huán)的數(shù)目。圖13描繪用于支持本發(fā)明揭示的標(biāo)的物的同步周期包290的實施例。同步周期包包含“偏移”字段,其指示自從最后同步周期包已產(chǎn)生(從所有線程中)時起的線程循環(huán) 的數(shù)目。所揭示的過程還支持使用同步周期包的對準(zhǔn)。在一些情況下,僅有限窗口的跟蹤 數(shù)據(jù)是可用的。因此,同步重新開始包可能不可用。在這些情況下,同步周期包可用以確定 線程間對準(zhǔn)。如果包邊界是未知的,那么過程可搜索異步包以恢復(fù)包對準(zhǔn)。解壓縮器可維 持計數(shù)器最后同步周期計數(shù)。當(dāng)通過多線程包流時,過程可包含搜索最老的不具有偏移字 段的同步周期包。隨后,過程可將最后同步周期計數(shù)指派于0,且用所述值注解所述包。對 于隨后的來自其它tnum的同步周期包中的每一者,過程可使同步周期計數(shù)遞增達(dá)偏移字 段值,且用同步周期計數(shù)注解所述同步周期包中的每一者。隨后,過程可將線程分裂為個別 的包流且單獨地對其解壓縮。每當(dāng)包字節(jié)被發(fā)送到FIFO,便可使ETM同步周期計數(shù)器遞減。當(dāng)計數(shù)器針對一線 程到達(dá)零時,可將同步周期包標(biāo)記為待決。在下一機會處,產(chǎn)生同步周期包。如果隨后包中 的任一者正在產(chǎn)生(同步重新開始、觸發(fā)、分支地址、異步、簡檔),那么可阻止同步周期。每 一線程可維持其自身的同步周期計數(shù)器。每當(dāng)針對所述線程產(chǎn)生任何同步重新開始包,便 可復(fù)位同步計數(shù)器。圖14呈現(xiàn)供在本發(fā)明揭示的過程中使用的一組循環(huán)計數(shù)包。循環(huán)計數(shù)包可用以 累加W原子。而且,循環(huán)計數(shù)包可僅在循環(huán)準(zhǔn)確模式中產(chǎn)生。循環(huán)計數(shù)包可在以下情況下 產(chǎn)生從W切換到E或從W切換到N且W原子計數(shù)不配合于格式3pheader容量,W原子待 決情況下的原子分裂,以及過多的W原子待配合于格式3pheader??蓪原子放置于循環(huán) 計數(shù)包中,且E 或N原子可能在格式Ipheader中出現(xiàn),且循環(huán)計數(shù)包可到達(dá)其完全準(zhǔn)確最 大值。代替允許循環(huán)計數(shù)包遞增直到其到達(dá)其最大32位值為止,ETM在完全準(zhǔn)確度與有限 準(zhǔn)確度之間的限制下發(fā)出多個較小的循環(huán)計數(shù)值。在此情況下,當(dāng)前原子可為W原子。因 為此原子不包含在包中,所以將計數(shù)復(fù)位為1而不是0。已將同步重新開始包中的循環(huán)計數(shù)重新界定為兩個可能的類型從最后硬件復(fù)位 參考的64位“全局”計數(shù),以及指示自從最后同步重新開始包(來自所有線程中)時起的 線程循環(huán)數(shù)目的16位偏移計數(shù)。除了兩字節(jié)300和三字節(jié)310循環(huán)計數(shù)包之外,本發(fā)明提供三字節(jié)包320以將32 位值配合到16位有效負(fù)載中。在本發(fā)明標(biāo)的物中,如圖14所示界定五字節(jié)包,其包含一字 節(jié)標(biāo)頭和四字節(jié)有效負(fù)載。對于每一線程,所揭示的過程維持計數(shù)全局線程循環(huán)。對于遇 到的第一同步周期包,過程將全局線程循環(huán)設(shè)定為所述包的經(jīng)注解值,且用所述值注解先 前的原子。隨后使全局線程循環(huán)遞增1。在遇到原子(E、N、S、W)的任何時間,過程用全局 線程循環(huán)注解所述原子,且使全局線程計數(shù)遞增1。過程可正常地對流進(jìn)行解壓縮,以將程 序計數(shù)器值指派于每一原子。在此點處,如同之前,正被跟蹤的每個線程的每個循環(huán)將具有 與其相關(guān)聯(lián)的全局線程循環(huán)。圖15展示與本發(fā)明相關(guān)的pheader格式4包330的一個實施例。pheader包可在 不同情況下產(chǎn)生。舉例來說,當(dāng)沒有更多原子可保持于包中時,以及當(dāng)分支地址、簡檔或同 步周期包產(chǎn)生時,產(chǎn)生pheader以標(biāo)記原子流內(nèi)的相應(yīng)包的位置。格式Ipheader包可具有 三個原子有效負(fù)載字段0到31個E原子(字段0),隨后是0到3個N原子(字段1),隨后 是0或1個E原子(字段2)。產(chǎn)生格式Ipheader包的規(guī)則可為原子E計數(shù)處于最大值, 且當(dāng)前原子是E。經(jīng)計數(shù)的E將進(jìn)入字段0,且可將當(dāng)前E原子放置于字段2中。原子N計數(shù)處于最大值(計數(shù)包含當(dāng)前N原子)??蓪⒔?jīng)計數(shù)的E放置于字段O中且可將N原子計 數(shù)放置于字段1中。當(dāng)前原子為E且N原子計數(shù)為非零??蓪⒔?jīng)計數(shù)的E和N原子計數(shù)放 置于字段O和字段1中,且可將當(dāng)前E原子放置于字段2中。在當(dāng)前原子是W且E或N原 子待決時,當(dāng)前E和N計數(shù)可在有效負(fù)載字段O和字段1中發(fā)出。當(dāng)原子分裂且沒有W原 子待決時,可將當(dāng)前E和N計數(shù)放置于字段O和字段1中,且如果當(dāng)前原子是E,那么可將其 放置于字段2中。圖16描繪用于與所揭示標(biāo)的物的實施例一起使用的異步包340。異步包長度適應(yīng) 較長的循環(huán)計數(shù)字段,且可例如包含十個字節(jié)。也可使用異步周期計數(shù)器來界定何時產(chǎn)生 異步包。每當(dāng)ETM周期計數(shù)器到達(dá),便將異步包標(biāo)記為待決。異步包必須獨立地出現(xiàn),且每 當(dāng)其它包產(chǎn)生,便將保持待決。異步計數(shù)器是全局的,且每當(dāng)包字節(jié)被發(fā)送到FIFO,便可遞 減。 概括來說,所揭示的標(biāo)的物提供用于與執(zhí)行跟蹤處理一起使用的與多線程處理器 的線程間跟蹤對準(zhǔn)的方法和系統(tǒng)。因此,所揭示的標(biāo)的物包含記錄與共同預(yù)定事件相關(guān)的 定時數(shù)據(jù)。此事件可為自從最后線程起始執(zhí)行跟蹤時起的循環(huán)數(shù)目或自從所有線程終止執(zhí) 行跟蹤時起的循環(huán)數(shù)目。將線程起始執(zhí)行跟蹤的循環(huán)數(shù)目參考于共同預(yù)定事件以用于維持 執(zhí)行跟蹤的定時。隨后可更新與共同預(yù)定事件相關(guān)的數(shù)據(jù)以與線程起始執(zhí)行跟蹤的時間相 關(guān)聯(lián)。結(jié)果是準(zhǔn)許對準(zhǔn)與所有線程相關(guān)聯(lián)的定時數(shù)據(jù)。相互相關(guān)的記錄準(zhǔn)許針對在多線程 處理器中操作的線程重構(gòu)相互依賴的執(zhí)行跟蹤信息,以及同步所有操作線程的定時數(shù)據(jù)。如上所見,本文針對多線程數(shù)字信號處理器(包含交錯式多線程處理器)中的與 多線程處理器的線程間跟蹤對準(zhǔn)而描述的處理特征和功能可以各種方式實施。舉例來說, 不僅DSP 40可實行上述操作,而且本發(fā)明實施例也可在專用集成電路(ASIC)、微控制器、 數(shù)字信號處理器或經(jīng)設(shè)計以實行本文所描述的功能的其它電子電路中實施。此外,本文描 述的過程和特征可存儲在磁性、光學(xué)或其它記錄媒體中以供此些各種信號和指令處理系統(tǒng) 讀取和執(zhí)行。因此,提供對優(yōu)選實施例的前述描述以使所屬領(lǐng)域的技術(shù)人員能夠制作或使 用所主張的標(biāo)的物。所屬領(lǐng)域的技術(shù)人員將容易明白對這些實施例的各種修改,且在不使 用創(chuàng)新能力的情況下,本文界定的一般原理可應(yīng)用于其它實施例。因此,所主張的標(biāo)的物 不希望限于本文所展示的實施例,而是應(yīng)符合與本文揭示的原理和新穎特征一致的最廣范 圍。
權(quán)利要求
一種用于在執(zhí)行跟蹤過程期間在多線程處理器的線程當(dāng)中進(jìn)行線程間跟蹤定時對準(zhǔn)的方法,所述方法包括記錄與共同預(yù)定事件相關(guān)的定時數(shù)據(jù),所述共同預(yù)定事件可由所述多線程處理器的所有操作線程在核心處理器執(zhí)行跟蹤期間共同地參考;將線程起始執(zhí)行跟蹤的時間參考于所述共同預(yù)定事件以用于相對于所述共同預(yù)定事件維持針對所述線程的執(zhí)行跟蹤的定時;以及更新所述共同預(yù)定事件以與所述線程起始執(zhí)行跟蹤的所述時間相關(guān)聯(lián),進(jìn)而將所述線程起始執(zhí)行跟蹤的所述時間對準(zhǔn)于與所述多線程處理器的可能正針對其發(fā)生執(zhí)行跟蹤的所有其它線程相關(guān)聯(lián)的定時數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括將所述共同預(yù)定事件與最后線程開啟執(zhí) 行跟蹤的時間相關(guān)。
3.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括將所述共同預(yù)定事件與自從所有線程關(guān) 閉執(zhí)行跟蹤時起的多線程處理器循環(huán)數(shù)目相關(guān)。
4.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在多個數(shù)據(jù)包中記錄所述共同預(yù)定事件。
5.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括使用與所述共同預(yù)定事件相關(guān)聯(lián)的多個 數(shù)據(jù)包針對在所述多線程處理器中操作的線程重構(gòu)相互相關(guān)的執(zhí)行跟蹤信息。
6.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括使與所述共同預(yù)定事件相關(guān)的所述定時 數(shù)據(jù)同步。
7.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括產(chǎn)生自從所述共同預(yù)定事件的發(fā)生時起 的全局循環(huán)計數(shù)。
8.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括使用自從所述共同預(yù)定事件時起的全局 循環(huán)計數(shù)重新建立實行執(zhí)行跟蹤的所有線程當(dāng)中的線程間定時數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括確定數(shù)據(jù)損失,且在數(shù)據(jù)損失的情況下, 響應(yīng)于所述數(shù)據(jù)損失,使用自從所述共同預(yù)定事件時起的全局循環(huán)計數(shù)重新建立實行執(zhí)行 跟蹤的所有線程當(dāng)中的線程間定時數(shù)據(jù)。
10.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在全局計數(shù)器循環(huán)通過零值的情況下 針對所有線程產(chǎn)生同步包。
11.一種數(shù)字信號處理器調(diào)試系統(tǒng),其用于與數(shù)字信號處理器結(jié)合進(jìn)行操作且包含在 多線程軟件執(zhí)行流程期間使與多線程處理器的線程相關(guān)的定時數(shù)據(jù)相互相關(guān)的能力,所述 數(shù)字信號處理器調(diào)試系統(tǒng)包括多個偏移字段,其用于記錄與共同預(yù)定事件相關(guān)的定時數(shù)據(jù),所述共同預(yù)定事件可由 所述多線程處理器的所有操作線程在核心處理器執(zhí)行跟蹤期間共同地參考;時間參考指令包,其用于將線程起始執(zhí)行跟蹤的時間參考于所述共同預(yù)定事件以用于 相對于所述共同預(yù)定事件維持針對所述線程的執(zhí)行跟蹤的定時;以及時間參考更新包,其用于更新所述共同預(yù)定事件以與所述線程起始執(zhí)行跟蹤的所述時 間相關(guān)聯(lián),進(jìn)而將所述線程起始執(zhí)行跟蹤的所述時間對準(zhǔn)于與所述多線程處理器的可能正 針對其發(fā)生執(zhí)行跟蹤的所有其它線程相關(guān)聯(lián)的定時數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),其進(jìn)一步包括用于將所述共同預(yù)定事件與最后線程開啟執(zhí)行跟蹤的時間相關(guān)的電路和指令。
13.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),其進(jìn)一步包括用于將所述共同 預(yù)定事件與自從所有線程關(guān)閉執(zhí)行跟蹤時起的多線程處理器循環(huán)數(shù)目相關(guān)的電路和指令。
14.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),其進(jìn)一步包括用于在多個數(shù)據(jù) 包中記錄所述共同預(yù)定事件的電路和指令。
15.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),其進(jìn)一步包括用于使用與所述 共同預(yù)定事件相關(guān)聯(lián)的多個數(shù)據(jù)包針對在所述多線程處理器中操作的線程重構(gòu)相互相關(guān) 的執(zhí)行跟蹤信息的電路和指令。
16.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),其進(jìn)一步包括用于使與所述共 同預(yù)定事件相關(guān)的所述定時數(shù)據(jù)同步的電路和指令。
17.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),其進(jìn)一步包括用于產(chǎn)生自從所 述共同預(yù)定事件的發(fā)生時起的全局循環(huán)計數(shù)的電路和指令。
18.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),其進(jìn)一步包括用于使用自從所 述共同預(yù)定事件時起的全局循環(huán)計數(shù)重新建立實行執(zhí)行跟蹤的所有線程當(dāng)中的線程間定 時數(shù)據(jù)的線程相互相關(guān)指令。
19.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),執(zhí)行跟蹤指令用于確定數(shù)據(jù)損 失,響應(yīng)于所述數(shù)據(jù)損失,使用自從所述共同預(yù)定事件時起的全局循環(huán)計數(shù)重新建立實行 執(zhí)行跟蹤的所有線程當(dāng)中的線程間定時數(shù)據(jù)。
20.根據(jù)權(quán)利要求11所述的數(shù)字信號處理器調(diào)試系統(tǒng),同步指令用于在全局計數(shù)器循 環(huán)通過零值的情況下針對所有線程產(chǎn)生同步包。
21.—種多線程數(shù)字信號處理器,其用于操作以支持個人電子裝置,所述多線程數(shù)字信 號處理器包括用于實行執(zhí)行跟蹤過程且與其相關(guān)地對準(zhǔn)所述多線程處理器的線程當(dāng)中的 線程間跟蹤定時的調(diào)試裝置,所述多線程數(shù)字信號處理器包括用于記錄與共同預(yù)定事件相關(guān)的定時數(shù)據(jù)的裝置,所述共同預(yù)定事件可由所述多線程 處理器的所有操作線程在核心處理器執(zhí)行跟蹤期間共同地參考;用于將線程起始執(zhí)行跟蹤的時間參考于所述共同預(yù)定事件以用于相對于所述共同預(yù) 定事件維持針對所述線程的執(zhí)行跟蹤的定時的裝置;以及用于更新所述共同預(yù)定事件以與所述線程起始執(zhí)行跟蹤的所述時間相關(guān)聯(lián)進(jìn)而將所 述線程起始執(zhí)行跟蹤的所述時間對準(zhǔn)于與所述多線程處理器的可能正針對其發(fā)生執(zhí)行跟 蹤的所有其它線程相關(guān)聯(lián)的定時數(shù)據(jù)的裝置。
22.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于將所述共同預(yù) 定事件與最后線程開啟執(zhí)行跟蹤的時間相關(guān)的裝置。
23.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于將所述共同預(yù) 定事件與自從所有線程關(guān)閉執(zhí)行跟蹤時起的多線程處理器循環(huán)數(shù)目相關(guān)的裝置。
24.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于在多個數(shù)據(jù)包 中記錄所述共同預(yù)定事件的裝置。
25.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于使用與所述共 同預(yù)定事件相關(guān)聯(lián)的多個數(shù)據(jù)包針對在所述多線程處理器中操作的線程重構(gòu)相互相關(guān)的 執(zhí)行跟蹤信息的裝置。
26.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于使與所述共同 預(yù)定事件相關(guān)的所述定時數(shù)據(jù)同步的裝置。
27.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于產(chǎn)生自從所述 共同預(yù)定事件的發(fā)生時起的全局循環(huán)計數(shù)的裝置。
28.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于使用自從所述 共同預(yù)定事件時起的全局循環(huán)計數(shù)重新建立實行執(zhí)行跟蹤的所有線程當(dāng)中的線程間定時 數(shù)據(jù)的裝置。
29.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于確定數(shù)據(jù)損失 且響應(yīng)于所述數(shù)據(jù)損失而使用自從所述共同預(yù)定事件時起的全局循環(huán)計數(shù)重新建立實行 執(zhí)行跟蹤的所有線程當(dāng)中的線程間定時數(shù)據(jù)的裝置。
30.根據(jù)權(quán)利要求21所述的多線程數(shù)字信號處理器,其進(jìn)一步包括用于在全局計數(shù)器 循環(huán)通過零值的情況下針對所有線程產(chǎn)生同步包的裝置。
31.一種計算機可用媒體,其中包含有計算機可讀程序代碼裝置以用于調(diào)試多線程數(shù) 字信號處理器,所述調(diào)試包含實行執(zhí)行跟蹤過程且與其相關(guān)地對準(zhǔn)所述多線程處理器的線 程當(dāng)中的線程間跟蹤定時,所述計算機可用媒體包括用于記錄與共同預(yù)定事件相關(guān)的定時數(shù)據(jù)的計算機可讀程序代碼裝置,所述共同預(yù)定 事件可由所述多線程處理器的所有操作線程在核心處理器執(zhí)行跟蹤期間共同地參考;用于將線程起始執(zhí)行跟蹤的時間參考于所述共同預(yù)定事件以用于相對于所述共同預(yù) 定事件維持針對所述線程的執(zhí)行跟蹤的定時的計算機可讀程序代碼裝置;以及用于更新所 述共同預(yù)定事件以與所述線程起始執(zhí)行跟蹤的所述時間相關(guān)聯(lián)進(jìn)而將所述線程起始執(zhí)行 跟蹤的所述時間對準(zhǔn)于與所述多線程處理器的可能正針對其發(fā)生執(zhí)行跟蹤的所有其它線 程相關(guān)聯(lián)的定時數(shù)據(jù)的計算機可讀程序代碼裝置。
32.根據(jù)權(quán)利要求31所述的計算機可用媒體,其進(jìn)一步包括用于將所述共同預(yù)定事件 與最后線程開啟執(zhí)行跟蹤的時間相關(guān)的計算機可讀程序代碼裝置。
33.根據(jù)權(quán)利要求31所述的計算機可用媒體,其進(jìn)一步包括用于將所述共同預(yù)定事件 與自從所有線程關(guān)閉執(zhí)行跟蹤時起的多線程處理器循環(huán)數(shù)目相關(guān)的計算機可讀程序代碼直ο
34.根據(jù)權(quán)利要求31所述的計算機可用媒體,其進(jìn)一步包括用于在多個數(shù)據(jù)包中記錄 所述共同預(yù)定事件的計算機可讀程序代碼裝置。
35.根據(jù)權(quán)利要求31所述的計算機可用媒體,其進(jìn)一步包括用于使用與所述共同預(yù)定 事件相關(guān)聯(lián)的多個數(shù)據(jù)包針對在所述多線程處理器中操作的線程重構(gòu)相互相關(guān)的執(zhí)行跟 蹤信息的計算機可讀程序代碼裝置。
全文摘要
本發(fā)明揭示用于數(shù)字信號處理器的設(shè)計和使用的技術(shù),包含(但不限于)用于在通信(例如,CDMA)系統(tǒng)中處理傳輸。與執(zhí)行跟蹤處理的線程間跟蹤對準(zhǔn)包含記錄與共同預(yù)定事件相關(guān)的定時數(shù)據(jù)。此事件可為自從最后線程起始執(zhí)行跟蹤時起的循環(huán)數(shù)目或自從所有線程終止執(zhí)行跟蹤時起的循環(huán)數(shù)目。將線程起始執(zhí)行跟蹤的循環(huán)數(shù)目參考于所述共同預(yù)定事件以用于維持執(zhí)行跟蹤的定時。隨后更新與所述共同預(yù)定事件相關(guān)的所述數(shù)據(jù)以與所述線程起始執(zhí)行跟蹤的時間相關(guān)聯(lián)。結(jié)果是準(zhǔn)許對準(zhǔn)與所有線程相關(guān)聯(lián)的定時數(shù)據(jù)。相互相關(guān)的記錄準(zhǔn)許針對在多線程處理器中操作的線程重構(gòu)相互依賴的執(zhí)行跟蹤信息,以及使所有操作線程的定時數(shù)據(jù)同步。
文檔編號G06F11/36GK101874238SQ200880011265
公開日2010年10月27日 申請日期2008年4月11日 優(yōu)先權(quán)日2007年4月11日
發(fā)明者威廉·C·安德森, 路易斯·阿齊列·詹尼尼, 陳旭峰 申請人:高通股份有限公司