專利名稱:在非侵入性數(shù)字信號(hào)處理器調(diào)試期間用于指令填充操作的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明所揭示的標(biāo)的物涉及(例如)可在數(shù)據(jù)通信及類似應(yīng)用中得以使用的數(shù)據(jù)處 理系統(tǒng)及過(guò)程。更確切地說(shuō),本發(fā)明涉及一種在非侵入性數(shù)字信號(hào)處理器調(diào)試期間用于 指令填充操作的新穎且改進(jìn)的方法和系統(tǒng)。
背景技術(shù):
電信及其它類型的電子設(shè)備以及支持視頻、復(fù)雜音頻、視頻會(huì)議及其它增強(qiáng)式軟件 應(yīng)用日益涉及信號(hào)處理。信號(hào)處理需要復(fù)雜但重復(fù)算法中的快速數(shù)學(xué)計(jì)算及數(shù)據(jù)產(chǎn)生。 許多應(yīng)用需要實(shí)時(shí)計(jì)算,g卩,信號(hào)為時(shí)間的連續(xù)函數(shù),所述信號(hào)必須被取樣及轉(zhuǎn)換為數(shù) 字信號(hào)以用于數(shù)值處理。處理器必須在樣本到達(dá)時(shí)執(zhí)行對(duì)樣本執(zhí)行離散計(jì)算的算法。
數(shù)字信號(hào)處理器(DSP)的結(jié)構(gòu)經(jīng)最佳化以處置此些算法。良好信號(hào)處理引擎的特 性包括快速靈活的算術(shù)計(jì)算單元、去往計(jì)算單元及來(lái)自計(jì)算單元的無(wú)約束數(shù)據(jù)流、計(jì)算 單元中的經(jīng)擴(kuò)展的精度及動(dòng)態(tài)范圍、雙地址產(chǎn)生器、有效程序定序及編程簡(jiǎn)易性。
DSP技術(shù)的一種有前途的應(yīng)用包括例如碼分多址(CDMA)系統(tǒng)的通信系統(tǒng),所述 碼分多址(CDMA)系統(tǒng)支持用戶之間經(jīng)由衛(wèi)星或地面鏈路進(jìn)行的語(yǔ)音及數(shù)據(jù)通信以及 文本消息傳輸及其它應(yīng)用。CDMA技術(shù)在多址通信系統(tǒng)中的使用揭示于標(biāo)題為"使用衛(wèi) 星或地面轉(zhuǎn)發(fā)器的擴(kuò)頻多址通信系統(tǒng)"("SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS")的 第4,901,307號(hào)美國(guó)專利及標(biāo)題為"CDMA蜂窩電信手機(jī)系統(tǒng)中用于產(chǎn)生波形的系統(tǒng)和 方法"("SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM")的第5,103,459號(hào)美國(guó)專利中,所述兩個(gè)專利 均被讓渡給所主張的標(biāo)的物的受讓人。
CDMA系統(tǒng)通常經(jīng)設(shè)計(jì)以符合一種或一種以上標(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)能夠傳輸語(yǔ)音數(shù)據(jù)及包數(shù)據(jù)??筛咝У貍鬏敯鼣?shù)據(jù)的較新一 代標(biāo)準(zhǔn)是由名為"第三代合作伙伴計(jì)劃"(3GPP)的協(xié)會(huì)提供且實(shí)施于包括第3G TS25.211號(hào)、第3G TS 25.212號(hào)、第3G TS 25.213號(hào)及第3G TS 25.214號(hào)檔案的檔案集 合中,公眾可容易地得到所述檔案。在下文中將3GPP標(biāo)準(zhǔn)稱為W-CDMA標(biāo)準(zhǔn)。
使用W-DCMA標(biāo)準(zhǔn)的復(fù)雜DSP操作軟件(例如)需要穩(wěn)固的開(kāi)發(fā)工具。此些開(kāi)發(fā) 工具可包括用于碼產(chǎn)生、整合、測(cè)試、調(diào)試及評(píng)估應(yīng)用性能的工具。在開(kāi)發(fā)及操作軟件 或例如高級(jí)電信應(yīng)用的復(fù)雜DSP應(yīng)用中,需要高級(jí)的但非侵入性的調(diào)試軟件。亦即,調(diào) 試軟件應(yīng)用不僅必須為足夠穩(wěn)固的以監(jiān)視、測(cè)試及支持軟件缺陷及操作問(wèn)題的校正,而 且其可在調(diào)試操作期間操作而不干擾核心處理器軟件。否則,在此調(diào)試軟件的使用期間, 可能不會(huì)檢測(cè)到或正確地檢測(cè)到核心處理軟件中的任何問(wèn)題。
此外,在非侵入性調(diào)試過(guò)程期間或與其相關(guān)聯(lián),常常需要操作各種診斷、分析及其 它過(guò)程以用于確定核心處理器操作的各種方面。此些診斷、分析及類似程序可根據(jù)一使 用可能要求或一相關(guān)聯(lián)調(diào)試過(guò)程可能需要的特定信息類型及信息量而改變。因此,動(dòng)態(tài) 地將指令插入或填充到調(diào)試過(guò)程中的能力可具有顯著優(yōu)點(diǎn)。
然而,目前不存在執(zhí)行指令填充操作以用于調(diào)試與如本文已描述的多線程數(shù)字信號(hào) 處理器相關(guān)聯(lián)的核心過(guò)程的已知方式。此外,不存在可借由對(duì)多線程數(shù)字信號(hào)處理器的 一個(gè)、兩個(gè)或兩個(gè)以上線程執(zhí)行操作所填充的指令的功能而具有線程選擇性的指令填充 過(guò)程。此外,不知道允許調(diào)試過(guò)程結(jié)合核心處理功能與非侵入性調(diào)試過(guò)程或與所述兩者 相關(guān)聯(lián)而執(zhí)行核心處理器上的指令的指令填充過(guò)程或機(jī)構(gòu)。
指令填充操作可為有利的原因包括為了讀取及/或?qū)懭牒诵募拇嫫骷按鎯?chǔ)器。同樣, 調(diào)試過(guò)程操作可經(jīng)提取以用于用戶分析,包括各種分析應(yīng)用程序的使用。此外,指令操 作可允許用戶將可適用于特定類型調(diào)試的各種指令輸入到調(diào)試過(guò)程中。
因此,需要一種用DSP操作的調(diào)試過(guò)程及系統(tǒng),所述調(diào)試過(guò)程及系統(tǒng)提供在非侵入 性數(shù)字信號(hào)處理器調(diào)試操作期間進(jìn)行指令填充操作的能力。
存在對(duì)于一種可適用于多線程數(shù)字信號(hào)處理器調(diào)試操作的指令填充過(guò)程及機(jī)構(gòu)的 需要。
存在對(duì)于一種可通過(guò)提供對(duì)多線程數(shù)字信號(hào)處理器的一個(gè)、兩個(gè)或兩個(gè)以上線程操 作所填充的指令的能力而具有線程選擇性的指令填充過(guò)程及機(jī)構(gòu)的需要。
還存在對(duì)于一種允許調(diào)試過(guò)程結(jié)合核心處理功能與非侵入性調(diào)試過(guò)程或與所述兩 者相關(guān)聯(lián)而執(zhí)行核心處理器上的指令的指令填充過(guò)程及機(jī)構(gòu)的需要。
同樣,存在對(duì)于一種用于在非侵入性數(shù)字信號(hào)處理器調(diào)試操作期間處理核心過(guò)程上 的指令及數(shù)據(jù)的非侵入性軟件調(diào)試過(guò)程指令填充操作的需要。
發(fā)明內(nèi)容
本發(fā)明揭示用于為數(shù)字信號(hào)處理器(包括多線程數(shù)字信號(hào)處理器)提供非侵入性、 線程選擇性調(diào)試方法及系統(tǒng)的技術(shù),所述技術(shù)用于在非侵入性調(diào)試操作期間進(jìn)行指令填 充操作。本文所揭示的方法及系統(tǒng)既改進(jìn)數(shù)字信號(hào)處理器的操作又改進(jìn)針對(duì)功能日益強(qiáng) 大的軟件應(yīng)用程序(包括在個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字助理、無(wú)線手機(jī)及類似電子裝置中操 作的應(yīng)用程序)的數(shù)字信號(hào)處理器指令的高效使用,而且增加相關(guān)聯(lián)的數(shù)字處理器速度 及服務(wù)質(zhì)量。
根據(jù)所揭示的標(biāo)的物的一個(gè)方面, 一種用于在多線程數(shù)字信號(hào)處理器的處理管線中 填充指令的方法及系統(tǒng)提供改進(jìn)的軟件指令調(diào)試操作。所述方法及系統(tǒng)用于操作與數(shù)字 信號(hào)處理器相關(guān)聯(lián)的核心處理器內(nèi)的核心處理器過(guò)程及數(shù)字信號(hào)處理器的調(diào)試機(jī)構(gòu)內(nèi) 的調(diào)試過(guò)程。所述調(diào)試機(jī)構(gòu)與核心處理器相關(guān)聯(lián)。本發(fā)明所揭示的標(biāo)的物包括將填充指 令寫(xiě)入到與調(diào)試過(guò)程相關(guān)聯(lián)的調(diào)試過(guò)程注冊(cè)表中及響應(yīng)于所述填充指令而將填充命令 寫(xiě)入到與調(diào)試過(guò)程注冊(cè)表相關(guān)聯(lián)的調(diào)試過(guò)程命令寄存器中。填充命令用于對(duì)多線程數(shù)字 信號(hào)處理器的將在其中執(zhí)行所述填充指令的一預(yù)定線程的識(shí)別。本發(fā)明在預(yù)定線程上執(zhí) 行的預(yù)定階段期間從核心處理器發(fā)出調(diào)試過(guò)程控制再繼續(xù)命令,且在調(diào)試過(guò)程期間引導(dǎo) 核心處理器執(zhí)行所填充的指令。本發(fā)明將所填充的指令提供到核心處理器以用于與核心 處理器過(guò)程及調(diào)試過(guò)程相關(guān)聯(lián)地執(zhí)行所填充的指令。
通過(guò)本文中所提供的描述將明顯看出所揭示的標(biāo)的物的這些及其它優(yōu)點(diǎn),以及額外 新穎特征。本發(fā)明內(nèi)容的意圖并非是對(duì)所主張的標(biāo)的物的全面描述,而是提供對(duì)標(biāo)的物 的某些功能性的簡(jiǎn)短綜述。在檢查以下各圖及詳細(xì)描述后,此處所提供的其它系統(tǒng)、方 法、特征及優(yōu)點(diǎn)對(duì)于所屬領(lǐng)域的技術(shù)人員而言將即為顯而易見(jiàn)的。所有此些額外系統(tǒng)、 方法、特征及優(yōu)點(diǎn)意圖包括于此描述內(nèi),在隨附權(quán)利要求書(shū)的范圍內(nèi)。
通過(guò)結(jié)合附圖閱讀下文闡述的詳細(xì)描述,所揭示的標(biāo)的物的特征、性質(zhì)和優(yōu)點(diǎn)可變 得更加明顯,圖中相同參考符號(hào)在全文中對(duì)應(yīng)地進(jìn)行標(biāo)識(shí),且其中
圖1為可實(shí)施本文所揭示的各種實(shí)施例中的一者的通信系統(tǒng)的簡(jiǎn)化方框圖2說(shuō)明用于執(zhí)行本發(fā)明的教示的DSP結(jié)構(gòu);
圖3提供多線程數(shù)字信號(hào)處理器的一個(gè)實(shí)施例的結(jié)構(gòu)方框圖4進(jìn)一步展示本發(fā)明的數(shù)字信號(hào)處理器的控制單元、指令單元及其它功能組件的過(guò)程流程的結(jié)構(gòu)圖5揭示應(yīng)用本發(fā)明的ISDB/JTAG接口特征的數(shù)字信號(hào)處理器核心的某些方面; 圖6展示用于執(zhí)行本文所揭示的調(diào)試程序的某些方面的ISDB JTAG同步電路的一方
面;
圖7呈現(xiàn)可適用于數(shù)字信號(hào)處理器的操作模式(包括本發(fā)明所涉及的調(diào)試操作模式) 的過(guò)程流程圖8描繪可適用于本發(fā)明的實(shí)施例的斷點(diǎn)處理方案;
圖9說(shuō)明所揭示的標(biāo)的物的一個(gè)實(shí)施例的ISDB命令寄存器內(nèi)容,包括用于揭示所 揭示的過(guò)程的指令填充寄存器;及
圖10呈現(xiàn)用于描繪用于與非侵入性調(diào)試過(guò)程相關(guān)聯(lián)的指令填充的所揭示過(guò)程的處 理時(shí)序循環(huán)圖表。
具體實(shí)施例方式
用于多線程數(shù)字信號(hào)處理器的非侵入性線程選擇性調(diào)試系統(tǒng)和方法的所揭示的標(biāo) 的物可應(yīng)用于任何類型的可受益于此處所呈現(xiàn)的益處的多線程處理。 一種應(yīng)用出現(xiàn)在電 信中,且尤其在使用一個(gè)或一個(gè)以上數(shù)字信號(hào)處理電路的無(wú)線手機(jī)中。為了解釋可如何 使用無(wú)線手機(jī),圖1提供通信系統(tǒng)10的簡(jiǎn)化方框圖,通信系統(tǒng)IO可實(shí)施所揭示的中斷 處理方法及系統(tǒng)的所呈現(xiàn)實(shí)施例。在發(fā)射器單元12處,通常成區(qū)塊地將數(shù)據(jù)從數(shù)據(jù)源 14發(fā)送至發(fā)射(TX)數(shù)據(jù)處理器16,發(fā)射數(shù)據(jù)處理器16格式化、編碼及處理所述數(shù)據(jù) 以產(chǎn)生一個(gè)或一個(gè)以上模擬信號(hào)。接著將模擬信號(hào)提供至發(fā)射器(TMTR) 18,發(fā)射器 18調(diào)制、濾波、放大及上變頻轉(zhuǎn)換基帶信號(hào)以產(chǎn)生經(jīng)調(diào)制信號(hào)。接著經(jīng)由天線20將經(jīng) 調(diào)制信號(hào)傳輸至一個(gè)或一個(gè)以上接收器單元。
在接收器單元22處,由天線24接收所傳輸信號(hào)且將其提供至接收器(RCVR) 26。 在接收器26內(nèi),將所接收信號(hào)放大、濾波、下變頻轉(zhuǎn)換、解調(diào)及數(shù)字化以產(chǎn)生同相(I) 及(Q)樣本。接著由接收(RX)數(shù)據(jù)處理器28解碼及處理樣本以恢復(fù)所傳輸數(shù)據(jù)。 以與發(fā)射器單元12處所執(zhí)行的編碼及處理互補(bǔ)的方式來(lái)執(zhí)行接收器單元22處的解碼及 處理。接著將所恢復(fù)數(shù)據(jù)提供至數(shù)據(jù)匯30。
上文所描述的信號(hào)處理支持一個(gè)方向上的語(yǔ)音、視頻、包數(shù)據(jù)、消息傳輸及其它類 型的通信的傳輸。雙向通信系統(tǒng)支持雙向數(shù)據(jù)傳輸。然而,為了簡(jiǎn)單起見(jiàn),圖l中未展 示用于另一方向的信號(hào)處理。通信系統(tǒng)10可為支持用戶之間經(jīng)由地面鏈路進(jìn)行的語(yǔ)音 及數(shù)據(jù)通信的碼分多址(CDMA)系統(tǒng)、時(shí)分多址(TDMA)通信系統(tǒng)(例如,GSM系統(tǒng))、頻分多址(FDMA)通信系統(tǒng)或其它多址通信系統(tǒng)。在一特定實(shí)施例中,通信系統(tǒng) 10為符合W-CDMA標(biāo)準(zhǔn)的CDMA系統(tǒng)。
圖2說(shuō)明可充當(dāng)圖1的發(fā)射數(shù)據(jù)處理器16及接收數(shù)據(jù)處理器28的DSP 40結(jié)構(gòu)。 我們強(qiáng)調(diào),DSP 40僅表示可有效地使用此處所呈現(xiàn)的教示及概念的大量可能的數(shù)字信號(hào) 處理器實(shí)施例中的一個(gè)實(shí)施例。因此,在DSP40中,線程T0:T5 (參考數(shù)字42至52) 含有來(lái)自不同線程的指令集。電路54表示指令存取機(jī)構(gòu)且用于提取線程T0:T5的指令。 將用于電路54的指令排隊(duì)到指令隊(duì)列56中。指令隊(duì)列56中的指令準(zhǔn)備就緒以被發(fā)出 到處理器管線66中(參見(jiàn)下文)。發(fā)出邏輯電路58可從指令隊(duì)列56中選擇單個(gè)線程(例 如,線程TO)。讀取所選線程的寄存器文件60,且將所讀取數(shù)據(jù)發(fā)送至用于槽0:槽3的 執(zhí)行數(shù)據(jù)路徑62。在此實(shí)例中,槽0:槽3提供本實(shí)施例中所使用的包分組組合。
來(lái)自執(zhí)行數(shù)據(jù)路徑62的輸出去往寄存器文件寫(xiě)入電路64 (也經(jīng)配置以調(diào)節(jié)各個(gè)線 程T0:T5),以用于返回來(lái)自DSP40的操作的結(jié)果。因此,從電路54及其之前到寄存器 文件寫(xiě)入電路64的數(shù)據(jù)路徑形成處理管線66。本實(shí)施例可使用一使用具有高達(dá)六個(gè)線 程T0:T5的單個(gè)處理器的異質(zhì)元件處理器(HEP)系統(tǒng)的混合物。處理器管線66具有六 個(gè)級(jí),其與為從電路54向寄存器60及64提取數(shù)據(jù)項(xiàng)所必需的最小數(shù)目的處理器循環(huán) 匹配。DSP40在處理器管線66內(nèi)同時(shí)執(zhí)行不同線程T0:T5的指令。亦即,DSP 40提供 六個(gè)獨(dú)立程序計(jì)數(shù)器、 一用以在處理器管線66內(nèi)區(qū)分線程T0:T5的指令的內(nèi)部標(biāo)號(hào)機(jī) 構(gòu)及一觸發(fā)線程切換的機(jī)構(gòu)。線程切換額外開(kāi)銷從零到僅幾個(gè)循環(huán)而變動(dòng)。
因此,DSP40提供一種經(jīng)設(shè)計(jì)而對(duì)各種各樣的信號(hào)、圖像及視頻處理應(yīng)用均能實(shí)現(xiàn) 高性能及低電力的通用數(shù)字信號(hào)處理器。圖3提供DSP 40結(jié)構(gòu)的簡(jiǎn)要綜述,包括所揭 示的標(biāo)的物的一種表現(xiàn)形式的相關(guān)聯(lián)指令集結(jié)構(gòu)的某些方面。DSP40結(jié)構(gòu)的實(shí)施方案支 持交錯(cuò)式多線程(IMT)。在此執(zhí)行模型中,硬件通過(guò)在管線中交錯(cuò)來(lái)自不同線程的指令 來(lái)支持多個(gè)硬件線程T0:T5的同時(shí)執(zhí)行。此特征允許DSP 40包括主動(dòng)時(shí)鐘頻率 (aggressive clock frequency),同時(shí)仍維持高核心及存儲(chǔ)器利用率。IMT提供高處理量而 無(wú)需昂貴的補(bǔ)償機(jī)構(gòu),例如,無(wú)序執(zhí)行、廣泛轉(zhuǎn)發(fā)網(wǎng)絡(luò),等等。此外,DSP40可包括IMT 的變化,例如,M'艾哈邁德(M.Ahmed)等人的且標(biāo)題為"可變交錯(cuò)多線程處理器方 法禾口系統(tǒng)"("K;n'a6/e /"^/eavetiM //777^eaffec/iVocewor Me/7;ot/Sv"g附")及"用于 多線程處理器中的可變線程分配和切換的系統(tǒng)和方法"("Md/ od朋d/br K r/aWe 77 rea^^//ocfl"'ow Sw〃c/n'/ g /" a M"/礎(chǔ)rea(jg(i尸roc證or")的共同讓渡的美國(guó)專禾Ll申 請(qǐng)案中所揭示的那些變化及新穎方法。
確切地說(shuō),圖3提供如應(yīng)用于單個(gè)線程的DSP40的核心處理結(jié)構(gòu)70方框圖,所述DSP 40可使用所揭示的標(biāo)的物的教示。方框圖70描繪經(jīng)由總線接口 (I/F) 73從AXI 總線74接收指令的共享指令高速緩存72,所述指令包括混合的16位指令與32位指令。 這些指令到達(dá)定序器76、用戶控制寄存器78及線程T0:T5的管理控制寄存器80。所揭 示的標(biāo)的物的核心級(jí)系統(tǒng)結(jié)構(gòu)也包括經(jīng)由JTAG接口 84而與核心處理器70介接的硅中 調(diào)試系統(tǒng)(in-silicon debugging system, ISDB) 82,其兩者在下文中均更詳細(xì)地描述。
定序器76將混合雙向超標(biāo)量指令與四向VLIW指令提供至S管單元86、 M管單元 88、 LD[加載]管卯及LD/ST[存儲(chǔ)]管單元92,所述單元全部與通用寄存器94通信。AXI 總線74也經(jīng)由與共享數(shù)據(jù)高速緩存96的總線I/F 73將LD/ST指令傳送至線程T0:T5。 任選的L2高速緩存/TCM 98信號(hào)包括LD/ST指令與共享數(shù)據(jù)TCM 100,所述LD/ST指 令進(jìn)一步流動(dòng)到線程通用寄存器94。從AHB外圍總線102, MSM特定控制器104與 T0:T5傳送中斷,包括中斷控制器指令、調(diào)試指令及時(shí)序指令。全局控制寄存器106與 線程T0:T5傳送控制寄存器指令。
因此,DSP 40包括六個(gè)虛擬DSP核心,每一虛擬DSP核心含有全局控制寄存器106 及私用管理控制寄存器80。在所有線程之間共享全局控制寄存器106。每一線程共享一 共用數(shù)據(jù)高速緩存及一共用指令高速緩存。由共用總線接口來(lái)服務(wù)于加載、存儲(chǔ)及提取 操作。高性能AXI總線74及較低性能AHB總線102用以將數(shù)據(jù)及指令業(yè)務(wù)連接至脫離 核心(off-core)存儲(chǔ)器及外圍裝置。集成的第二級(jí)存儲(chǔ)器(高速緩存及/或TCM)輸入 98是任選的。外圍存取可能是通過(guò)存儲(chǔ)器映射的加載及存儲(chǔ)。AHB與AXI之間的物理 地址分區(qū)可在MSM級(jí)處配置。
顯然,DSP 40的所呈現(xiàn)結(jié)構(gòu)可隨著時(shí)間而演進(jìn)及改變。舉例來(lái)說(shuō),DSP40可使用 的指令高速緩存的數(shù)目可從六個(gè)到一個(gè)而改變,或可為其它數(shù)目的高速緩存。超標(biāo)量調(diào) 度、TCM 100處的L1數(shù)據(jù)及其它結(jié)構(gòu)方面可改變。然而,本標(biāo)的物在各種各樣的配置 中且針對(duì)DSP 40的大量修改可具有連續(xù)相關(guān)性。
ISDB 82通過(guò)JTAG接口 84向DSP 40提供硬件調(diào)試器。ISDB 82通過(guò)在所有線程 之間共享在每線程基礎(chǔ)上被劃分為管理控制寄存器80的系統(tǒng)或僅管理的寄存器以及全 局控制寄存器106而經(jīng)由JTAG接口 84來(lái)提供軟件調(diào)試特征。系統(tǒng)控制寄存器用于每線 程中斷及異??刂埔约懊烤€程存儲(chǔ)器管理活動(dòng)。全局寄存器允許與ISDB 82交互以用于 調(diào)試操作。
ISDB 82使軟件開(kāi)發(fā)者能夠在DSP40操作時(shí)對(duì)其軟件進(jìn)行調(diào)試。ISDB 82硬件結(jié)合
在ISDB 82中操作的軟件調(diào)試過(guò)程程序可用以對(duì)操作系統(tǒng)軟件的DSP 40進(jìn)行調(diào)試。ISDB
82個(gè)別地支持調(diào)試硬件線程。用戶可暫停線程執(zhí)行、查看及變更線程寄存器、查看及變更指令及數(shù)據(jù)存儲(chǔ)器、使步驟線程單個(gè)化、將指令填充至線程,且再繼續(xù)線程執(zhí)行。
ISDB 82可與調(diào)試過(guò)程接口卡介接以與駐留于程序計(jì)數(shù)器上的ISDB 82調(diào)試軟件通 信,但所述通信全部是通過(guò)JTAG接口 84進(jìn)行。主機(jī)調(diào)試過(guò)程軟件可通過(guò)讀取及寫(xiě)入 ISDB控制寄存器而與ISDB 82交互。通信(例如)可能是通過(guò)識(shí)別ISDB寄存器(將對(duì) 其發(fā)生讀取/寫(xiě)入)的40位包,以及32位數(shù)據(jù)有效負(fù)載。支持此操作的包格式可為高達(dá) 64個(gè)控制寄存器,其可各自為32位寬。
圖4呈現(xiàn)DSP40的微結(jié)構(gòu)IIO的圖,微結(jié)構(gòu)IIO包括控制單元(CU) 112,其執(zhí)行 對(duì)于處理器管線46的許多控制功能。CU 112調(diào)度指令并將指令發(fā)出給三個(gè)執(zhí)行單元 移位型單元(SU) 116、乘法型單元(MU) 118及加載/存儲(chǔ)單元(DU) 120。 CU 112 也執(zhí)行超標(biāo)量相依性檢驗(yàn)??偩€接口單元(BIU114) 122將IU 114及DU 120介接到系 統(tǒng)總線(未圖示)。槽O及槽1管線在DU 120中,槽2在MU 118中,且槽3在SU 116 中。CU 112將源操作數(shù)及控制總線提供到管線槽0:槽3且處置GRF及CRF文件更新。 CU 112接受例如中斷及復(fù)位的外部輸入,且支持ISDB/ETM 122。 CU 112也處置因地址 轉(zhuǎn)譯期間發(fā)生的保護(hù)違犯引起的異常。
ISDB 82與以下三個(gè)域介接通過(guò)JTAG 84的主機(jī)調(diào)試軟件通過(guò)IU 114及CU 112 的DSP40核心;及通過(guò)多核心調(diào)試(MCD)信號(hào)接口的存在于系統(tǒng)中的其它核心。主 機(jī)調(diào)試軟件與DSP40核心之間的主接口為JTAG可存取寄存器(稱為ISDB 82寄存器) 的集合。主機(jī)調(diào)試軟件通過(guò)執(zhí)行一序列的ISDB 82寄存器讀取及寫(xiě)入而執(zhí)行各種調(diào)試過(guò) 程任務(wù)。
ISDB 82通過(guò)JTAG接口 84與測(cè)試環(huán)境(在此情況下,是與駐留于PC上的調(diào)試過(guò) 程軟件通信的POD或調(diào)試過(guò)程接口卡)通信。主機(jī)調(diào)試過(guò)程軟件通過(guò)讀取及寫(xiě)入ISDB 控制寄存器而與ISDB交互。通信是通過(guò)識(shí)別ISDB寄存器(待在其中進(jìn)行讀取及/或?qū)?入)的40位包以及用于各種ISBD命令的32位數(shù)據(jù)有效負(fù)載(包括本發(fā)明的指令填充 過(guò)程)而發(fā)生。
圖5展示在所揭示的標(biāo)的物的調(diào)試機(jī)構(gòu)與核心處理器之間的ISDB/JTAG接口 110 的重要方面。與DSP 40核心結(jié)構(gòu)70相關(guān)聯(lián),ISDB 82經(jīng)由路徑JTAG接口路徑112從 ISDB JTAG電路114與JTAG 84通信。ISDB JTAG電路114處理JTAG 84與ISDB 82 之間的數(shù)據(jù)流。ISDB JTAG電路114進(jìn)一步與ISDB JTAG同步電路116介接。ISDB JTAG 同步電路116進(jìn)一步與ISDB控制器118、 IU 114及CU 112通信。確切地說(shuō),ISDB JTAG 同步電路136與IU 114、 ISDB邏輯電路144及CU 112的CU ISDB控制器146介接。 CU ISDB控制器146與CU ISDB邏輯電路148以及ISDB控制器138通信。來(lái)自ISDB控制器138的控制輸出包括ISDB數(shù)據(jù)輸出154、 ISDB復(fù)位信號(hào)150及ISDB中斷152。 ISDB控制器138的其它接口包括MCD接口 156及ETM間斷觸發(fā)158。
ISDB 82通過(guò)MCD接口 156在MSM級(jí)處提供用于多核心調(diào)試的掛鉤。MCD接口 156由一對(duì)觸發(fā)核心處理器70的間斷或再繼續(xù)的輸入信號(hào)及一對(duì)指示核心處理器70正 進(jìn)入調(diào)試過(guò)程或正再繼續(xù)程序執(zhí)行的輸出信號(hào)組成。MCD間斷觸發(fā)可遵循一基于邊緣 的協(xié)議,使得當(dāng)在外部斷點(diǎn)觸發(fā)上檢測(cè)到一上升邊緣時(shí),在外部斷點(diǎn)線程編號(hào)屏蔽中所 指示的線程暫停執(zhí)行且進(jìn)入調(diào)試模式。類似地,當(dāng)在MCD外部再繼續(xù)觸發(fā)上檢測(cè)到一 上升邊緣時(shí),在外部再繼續(xù)線程編號(hào)屏蔽中所指示的線程如果處于調(diào)試模式則再繼續(xù)正 常程序執(zhí)行。
ISDB 82控制邏輯在兩個(gè)區(qū)塊上擴(kuò)展ISDB 82中的ISDB控制器138及CU 112中 的CU ISDB控制器146。 ISDB控制器138處置實(shí)施ISDB啟用、ISDB版本及ISDB通 用寄存器寄存器的任務(wù)。在MCD外部間斷及再繼續(xù)觸發(fā)156及ETM間斷觸發(fā)158被轉(zhuǎn) 發(fā)到CU 112以供進(jìn)一步處理前,使所述兩者與核心處理器70時(shí)鐘同步。ISDB控制器 138也基于核心處理器70的調(diào)試模式狀態(tài)而產(chǎn)生MCD間斷觸發(fā)及MCD再繼續(xù)觸發(fā)。 ISDB控制器138添加一用于發(fā)出到DSP 40的信號(hào)的管線級(jí),所述信號(hào)例如是ISDB中 斷、間斷事件及其它信號(hào)。包括斷點(diǎn)處理、微命令產(chǎn)生器、郵箱及狀態(tài)邏輯的控制邏輯 的剩余部分由CU ISDB控制器146處置。
CU 112包括能夠處置例如以下任務(wù)的電路及指令(a)處理斷點(diǎn)及產(chǎn)生對(duì)每一線程 的間斷觸發(fā);(b)產(chǎn)生微間斷及微再繼續(xù)命令;(c)維持ISDB82狀態(tài)及郵箱寄存器; 及(d)實(shí)施特定ISDB82寄存器。CU 112包括一如圖8中出現(xiàn)的斷點(diǎn)處理邏輯(BPL) 區(qū)塊以用于處理所有斷點(diǎn)并產(chǎn)生對(duì)CU ISDB控制器126的微命令產(chǎn)生器的宏間斷請(qǐng)求。 微命令產(chǎn)生器處理宏間斷請(qǐng)求以及指令填充命令、指令步驟及再繼續(xù)命令且向CU 112 發(fā)出微間斷及再繼續(xù)命令以用于管線控制。
CU ISDB控制器128基于接收回的間斷及再繼續(xù)確認(rèn)信號(hào)而維持ISDB 82的狀態(tài)。 CU ISDB控制器146的郵箱功能維持用于在主機(jī)調(diào)試軟件與DSP 40核心處理器之間通 信的郵箱寄存器。這些郵箱功能也含有ISDB 82狀態(tài)寄存器。
為論證用于與非侵入性調(diào)試操作相關(guān)聯(lián)地執(zhí)行目前所揭示的指令填充操作的說(shuō)明 性電路,圖6包括ISDB JTAG同步電路160。 ISDB JTAG同步電路160包括ISDB測(cè)試 數(shù)據(jù)寄存器162, DSP40可使用其來(lái)讀取和寫(xiě)入ISDB控制寄存器。ISDB JTAG同步電 路160在于DB一tck上操作的ISDB測(cè)試數(shù)據(jù)寄存器162與于DSP 40時(shí)鐘域中操作的 ISDB控制寄存器164之間提供同步邏輯。通過(guò)讀取及寫(xiě)入ISDB控制寄存器,DSP 40執(zhí)行可由ISDB 82支持的各種調(diào)試過(guò)程任務(wù),包括目前所揭示的指令填充操作。
在圖6的實(shí)施方案中,ISDB JTAG同步電路160將JTAG—isdb—鏈—輸入 (JTAG_isdb—chain—in)信號(hào)164接收到ISDB測(cè)試數(shù)據(jù)寄存器204中以產(chǎn)生JTAG—isdb— 鏈—輸出(JTAG—isdb—chain—out)信號(hào)166。 ISDB測(cè)試數(shù)據(jù)寄存器162包括讀取/寫(xiě)入 (R/W)位167、地址位[6:0] 168及數(shù)據(jù)位[31:0] 170。R/W位167中的值去往AND門(mén)172, 同步電路輸出174及CU 112—可信賴的調(diào)試(CU 112—trustedDebug)輸入176也去往AND 門(mén)172。 JTAG—isdb—鏈一更新一tkl (JTAG—isdb—chain—update—tkl)信號(hào)178及ISDB—CLK 信號(hào)180控制同步電路174的操作??捎傻刂方獯a電路176接收來(lái)自地址位168的地址 信息,地址解碼電路176將所述地址信息饋入到ISDB寄存器184。 ISDB寄存器184響 應(yīng)于來(lái)自AND門(mén)172的啟用寫(xiě)入信號(hào)186而傳送具有數(shù)據(jù)位[31:0]的數(shù)據(jù)。
ISDB JTAG同步電路130充當(dāng)在DB一JTAG區(qū)塊中的JTAG TCK上運(yùn)行的TAP控制 器與在分布于ISDB控制器138、 CU 112—ISDBCtrl 146及IU 114中的DSP 40核心時(shí)鐘 上運(yùn)行的ISDB寄存器184之間的同步橋。ISDB控制器138及CU ISDB控制器146含 有由微命令產(chǎn)生器、斷點(diǎn)處理邏輯及各種ISDB寄存器184 (配置、郵箱、命令等)組 成的ISDB 82的控制邏輯。這些區(qū)塊執(zhí)行由DSP 40核心上的主機(jī)調(diào)試軟件起始的不同 調(diào)試過(guò)程任務(wù)。ISDB中斷信號(hào)被發(fā)出到其與其它中斷源合并的DSP子系統(tǒng),且被發(fā)回 到DSP核心70。類似地,ISDB82復(fù)位與其它復(fù)位源(通電復(fù)位、軟件復(fù)位等)合并以 觸發(fā)對(duì)核心的復(fù)位。ISDB 82通過(guò)MCD信號(hào)接口而與外部系統(tǒng)(例如,在DSP40外部 的MSM系統(tǒng))介接。提供兩對(duì)間斷及再繼續(xù)觸發(fā)以支持對(duì)DSP40與外部系統(tǒng)中的其它 核心的同時(shí)調(diào)試。
圖7呈現(xiàn)DSP 40的各種模式控制方面的處理模式圖190,包括ISDB 82在調(diào)試過(guò)程 期間的操作。在圖7中,DSP40支持對(duì)于所有線程為全局且對(duì)于個(gè)別線程為局域的處理 模式。每一DSP40硬件線程個(gè)別地支持兩個(gè)執(zhí)行模式(用戶模式192及管理器模式194) 及三個(gè)非處理模式等待模式196、關(guān)閉模式198及調(diào)試模式200,所有模式皆可出現(xiàn) 于圖7中。 一線程的模式獨(dú)立于其它線程,例如, 一個(gè)線程可處于等待模式196,而另 一線程處于用戶模式192等等。
由各種指令或事件支持圖7的每線程模式狀態(tài)圖。這些指令或事件包括"異常" ("Except")或內(nèi)部異常事件、"中斷"("Int")或外部中斷事件、來(lái)自異常模式的"返 回"("RTE")或軟件返回指令、及"SSR"或?qū)SR寄存器指令的更新、可從任何模式 進(jìn)入的"停止"或軟件停止指令、也可從任何模式進(jìn)入的"開(kāi)始"或軟件開(kāi)始指令、"俘 獲"或軟件俘獲指令、"等待"或軟件等待指令、"再繼續(xù)"或軟件再繼續(xù)指令、"DE"或調(diào)試事件及"DR"或調(diào)試指令。雖然所主張的標(biāo)的物的不同實(shí)施方案中的功能可能稍 微不同于此處所呈現(xiàn)的功能,但"開(kāi)始"、"等待"、"再繼續(xù)"、"DE"及域"DR"的含 義可被給予其與所主張的標(biāo)的物的范圍一致的最廣泛解釋。
在用戶模式192及管理器模式194兩者下,寄存器均在DSP 40中可用。用戶模式 寄存器被劃分為通用寄存器集合及控制寄存器集合。通用寄存器用于包括地址產(chǎn)生、標(biāo) 量及向量算術(shù)的所有通用計(jì)算。控制寄存器支持例如硬件回路、謂詞等等專用功能性。 通用寄存器為32位寬且可作為單個(gè)寄存器或作為經(jīng)對(duì)準(zhǔn)的一對(duì)兩個(gè)寄存器而被存取。 通用寄存器文件提供用于指令的所有操作數(shù),包括用于加載/存儲(chǔ)的地址、用于數(shù)字指令 的數(shù)據(jù)操作數(shù)及用于向量指令的向量操作數(shù)。
調(diào)試模式200提供線程正在等待來(lái)自ISDB 82的命令的特殊狀態(tài)。只要發(fā)生ISDB 調(diào)試事件(例如,通過(guò)軟件斷點(diǎn)指令的執(zhí)行、來(lái)自ISDB82的間斷命令,或硬件斷點(diǎn)的 發(fā)生),所指示的線程便可進(jìn)入調(diào)試模式200。當(dāng)處于調(diào)試模式200時(shí),核心是由ISDB 82 經(jīng)由來(lái)自JTAG接口 84的命令而加以控制。當(dāng)ISDB 82因再繼續(xù)命令的執(zhí)行而釋放線程 時(shí),線程可根據(jù)其當(dāng)前模式設(shè)置來(lái)再繼續(xù)操作。當(dāng)線程處于調(diào)試模式200時(shí),其被ISDB 82控制且不能被其它線程控制。此控制可包括執(zhí)行可通過(guò)當(dāng)前揭示的指令填充操作提供 的各種指令??珊雎詠?lái)自以處于調(diào)試模式200的線程為目標(biāo)的執(zhí)行線程的等待、再繼續(xù)、 開(kāi)始或停止指令。類似地,處于調(diào)試模式200的線程可忽略非可屏蔽中斷(NMI)。
硬件復(fù)位模式(圖7中未圖示)及調(diào)試模式200對(duì)于所有線程為全局的。只要斷言 硬件復(fù)位引腳,DSP40便可進(jìn)入硬件復(fù)位模式而不管任何線程的處理狀態(tài)如何。在硬件 復(fù)位模式中,所有寄存器被設(shè)置為其復(fù)位值。在解除斷言硬件復(fù)位引腳之前可能不發(fā)生 處理。當(dāng)斷言復(fù)位引腳時(shí),處理器可轉(zhuǎn)換成復(fù)位模式且所有寄存器可被復(fù)位為其硬件復(fù) 位值。在解除斷言復(fù)位引腳之后,線程TO可被給予軟復(fù)位中斷。此可使線程TO進(jìn)入管 理器模式194且在復(fù)位向量位置處開(kāi)始執(zhí)行。所有其它線程可保持關(guān)閉。在此點(diǎn)上,軟 件自由地個(gè)別地控制每一線程的模式轉(zhuǎn)換。
在圖8中,可看出,CU ISDB控制器146的BPL電路210包括來(lái)自六個(gè)不同源的 間斷觸發(fā),所述六個(gè)不同源包括硬件斷點(diǎn)0/1 (HWBKPTO 212及HWBKPT1 214)、軟 件斷點(diǎn)(SWBKPT216)、 JTAG接口 84斷點(diǎn)(JTAGBKPT 218)、 ETM (嵌入式跡線宏) 斷點(diǎn)(ETMBKPT220)及外部斷點(diǎn)(EXTBKPT 222)。間斷觸發(fā)212至222及調(diào)試模式 狀態(tài)輸入214去往編碼間斷編碼器216以使DSP 40在調(diào)試模式200中操作。來(lái)自編碼 器226的輸出包括三個(gè)(3個(gè))斷點(diǎn)信息位228及一斷點(diǎn)有效位230。斷點(diǎn)信息數(shù)據(jù)228 進(jìn)入斷點(diǎn)信息電路232以導(dǎo)致斷點(diǎn)信息JTAG接口命令234。斷點(diǎn)位230也產(chǎn)生OR門(mén)輸入236及復(fù)位電路238輸入。復(fù)位電路238接收UCG再繼續(xù)線程編號(hào)或復(fù)位輸入242 以產(chǎn)生進(jìn)入OR門(mén)246中的復(fù)位控制輸出244。有效位236或復(fù)位輸出244可使OR門(mén) 246產(chǎn)生BPL斷點(diǎn)輸出248。
處理BPL電路210中的間斷觸發(fā)連同對(duì)應(yīng)線程編號(hào)屏蔽以產(chǎn)生對(duì)每一線程的宏間斷 觸發(fā)。維持宏間斷觸發(fā)248 (bpl—breakTnum—ANY[O]),直到再繼續(xù)對(duì)應(yīng)線程為止。通 過(guò)為精確斷點(diǎn)(亦即,必須不執(zhí)行觸發(fā)硬件斷點(diǎn)匹配的指令)的硬件斷點(diǎn)來(lái)驅(qū)動(dòng)可用于 BPL電路210中的管線級(jí)的數(shù)目。線程在執(zhí)行程序之后切換成調(diào)試模式,直到所述指令 為止。在間斷觸發(fā)到達(dá)之后一個(gè)循環(huán),所揭示的實(shí)施例提供宏間斷觸發(fā)。由于此原因, 對(duì)間斷有效輸入226以其鎖存版本輸入242進(jìn)行邏輯或以產(chǎn)生bpl—breakTnum—ANY[O] 輸出248。
通過(guò)使用斷點(diǎn),DSP40的六個(gè)線程可個(gè)別地進(jìn)入及退出調(diào)試模式200。斷點(diǎn)觸發(fā)可 來(lái)自對(duì)應(yīng)于ISDB82中所支持的五種不同類型的斷點(diǎn)的五個(gè)源。在命中斷點(diǎn)后,線程即 從其當(dāng)前模式(例如,等待/執(zhí)行)轉(zhuǎn)換成調(diào)試模式200。在調(diào)試模式200中,線程等待 來(lái)自ISDB 82的命令。處于關(guān)閉模式198的線程被斷電且可能不接受來(lái)自ISDB 82的任 何命令。進(jìn)入調(diào)試模式200的延遲是由實(shí)施方案界定的,例如,在本揭示內(nèi)容中被界定 為是關(guān)于電源崩潰的事件。舉例來(lái)說(shuō),實(shí)施方案可選擇在進(jìn)入調(diào)試模式200之前完成給 定操作,例如,完成未處理的加載請(qǐng)求。在一個(gè)實(shí)施例中,線程識(shí)別符寄存器含有8位 讀取/寫(xiě)入字段且用于保持軟件線程識(shí)別符。由硬件調(diào)試過(guò)程使用此字段來(lái)匹配斷點(diǎn)。
因此,ISDB 82具有四個(gè)操作間斷、再繼續(xù)、填充指令、單步執(zhí)行。從微結(jié)構(gòu)觀 點(diǎn)來(lái)看,存在兩個(gè)基本操作間斷及再繼續(xù)。微間斷命令及微再繼續(xù)命令指間斷、填充 指令及單步執(zhí)行的操作。舉例來(lái)說(shuō),可將填充指令操作視為一微間斷命令后接填充指令 操作之后的微再繼續(xù)命令。斷點(diǎn)操作可從如本文所描述的五個(gè)源觸發(fā)。每一間斷源可間 斷在其對(duì)應(yīng)線程編號(hào)屏蔽值中指定的多個(gè)線程。
圖9說(shuō)明所揭示的標(biāo)的物的一個(gè)實(shí)施例的ISDB命令寄存器內(nèi)容。這些ISDB控制 寄存器可由主機(jī)系統(tǒng)使用以配置ISDB 82,以便執(zhí)行不同調(diào)試過(guò)程任務(wù)并與處理器通信。 這些寄存器可通過(guò)JTAG接口來(lái)存取。ISDB狀態(tài)寄存器(ISDBST)指示ISDB的當(dāng)前 狀態(tài),包括填充命令狀態(tài)位,對(duì)于填充命令狀態(tài)位而言,值"0"指示填充指令成功, 而值"l"指示填充指令引起異常。主機(jī)系統(tǒng)可使用ISDB配置寄存器O及l(fā)(ISDBCFGO、 ISDBCFG1)寄存器以啟用或停用ISDB 82的各種特征。斷點(diǎn)信息寄存器(BRKPTINFO) 對(duì)于調(diào)試模式中的線程指示哪個(gè)觸發(fā)引起斷點(diǎn)。斷點(diǎn)PC寄存器0及1 (BRKPTPCO、 BRKPTPC1)分別與BRKPTPCO、控制硬件斷點(diǎn)0及1相同。斷點(diǎn)配置寄存器(BRKPTCFG0及BRKPTCFG1)分別用于配置斷點(diǎn)0及1。填充指令寄存器(STFINST) 允許一 32位填充指令。ISDB郵箱寄存器(ISDBMBXIN及ISDBMBXOUT)用于在ISDB 與核心處理器70之間交換數(shù)據(jù)。ISDB命令寄存器(ISDBCMD)由DSP 40使用以向ISDB 82發(fā)出各種命令。此ISDB啟用寄存器(ISDBEN)啟用ISDB操作并允許檢驗(yàn)"安全" ISDB啟用位的狀態(tài)及ISDB時(shí)鐘。ISDB版本寄存器(ISDBVER)讀取芯片中所存在的 ISDB設(shè)計(jì)的版本。ISDB通用寄存器(ISDBGPR)提供用于與ISDB 82相關(guān)聯(lián)的通用功 能的存儲(chǔ)。
在所揭示的實(shí)施例中,ISDB命令寄存器提供一32位寄存器,其值輸出到DSP 40 中。ISDB命令寄存器可用于以MSM特定方式來(lái)控制外部硬件。ISDB控制寄存器經(jīng)由 JTAG接口 84由調(diào)試過(guò)程主機(jī)軟件來(lái)存取且分布于三個(gè)單元上ISDB 82、 IU114及CU 112。替代將所有寄存器放置于ISDB 82中,將寄存器局域地放置于主要使用寄存器值 的單元中。
圖9的ISDB寄存器按以下方式分布于ISDB 82、 IU 114及CU 112中ISDB 82包 括ISDB啟用寄存器;ISDB版本寄存器;及ISDB通用寄存器。CU 112 (其中為ISDB 控制郵箱、斷點(diǎn)邏輯及微命令產(chǎn)生器區(qū)塊)包括ISDB配置寄存器(ISDBCFGO與 ISDBCFG1)、命令寄存器(ISDBCMD)、斷點(diǎn)配置寄存器(BRKPTCFG0與BRKPTCFGl)、 斷點(diǎn)信息寄存器(BRKPTINFO)、斷點(diǎn)狀態(tài)寄存器(ISDBST)、斷點(diǎn)郵箱輸入寄存器 (ISDBMBXIN、 ISDBMBXOUT)。 IU 114 112寄存器區(qū)塊包括斷點(diǎn)命令寄存器 (BRKPTPCO、 BRKPTPC1)、斷點(diǎn)配置寄存器(BRKPTCFGO, BRKPTCFG1)及如與本 發(fā)明相關(guān)的填充命令寄存器(STFINST)。
本文所揭示的指令填充提供一種用于ISDB82執(zhí)行核心上的指令的方法及系統(tǒng)。因 各種原因而填充指令。這些原因可包括讀取及/或?qū)懭牒诵募拇嫫骷按鎯?chǔ)器以及調(diào)試經(jīng)提 取用于用戶及用戶輸入指令的處理操作的原因。為填充一指令,首先,用戶用待執(zhí)行的 32位指令來(lái)將ISDB命令寄存器的STFINST寄存器編程。接著,寫(xiě)入ISDB命令寄存器, 以將命令字段設(shè)置為填充碼而開(kāi)始。接著,過(guò)程將線程編號(hào)字段設(shè)置為接收指令的線程。 優(yōu)選的是可設(shè)置線程編號(hào)字段中的一個(gè)位。在可填充指令之前,選定線程必須處于調(diào)試 模式200。如果線程編號(hào)中的一個(gè)以上位被設(shè)置或選定線程并非處于調(diào)試模式,則結(jié)果 不定。接著,指令填充過(guò)程包括設(shè)置所填充的指令的特權(quán)級(jí)(用于用戶模式192或管理 器模式194)。在發(fā)出填充命令后,可在具有經(jīng)選擇的特權(quán)級(jí)的經(jīng)選擇線程上執(zhí)行所述指 令。在指令填充期間,程序計(jì)數(shù)器(PC)并不增長(zhǎng)。使用分支的PC的所填充的指令或 引起異常的指令可對(duì)在其上執(zhí)行所填充的指令的線程使用當(dāng)前PC值。在所填充的指令引起異常的情況下,ISDB狀態(tài)寄存器(ISDBST)可指示一異常發(fā) 生。所述線程可保持于調(diào)試模式中。為特定目的而構(gòu)造的寄存器可反映異常狀態(tài)。舉例 來(lái)說(shuō),如果填充一引起TLB未中異常的加載指令,則可將異常寄存器(ELR)設(shè)置為當(dāng) 前PC,所述PC可改變?yōu)橐划惓O蛄?,且狀態(tài)寄存器(SSR)可保存正確的原因碼及狀 態(tài)信息。調(diào)試過(guò)程軟件可在填充一可能引起異常的指令后査詢ISDBST以了解異常是否 發(fā)生。如果其發(fā)生,則可經(jīng)由填充一控制寄存器傳送指令而讀取SSR寄存器以確定異常 原因。
一旦認(rèn)識(shí)到異常,則調(diào)試過(guò)程具有關(guān)于如何處置所述情況的若干選擇。舉例來(lái)說(shuō), 調(diào)試過(guò)程可選擇在異常返回點(diǎn)處編程軟件或硬件斷點(diǎn)并再繼續(xù)線程,以執(zhí)行處置程序。 此外,調(diào)試過(guò)程可將線程重新引導(dǎo)到操作系統(tǒng)"幫助"功能,以及使用單步功能來(lái)單步 調(diào)試(step through)處置程序。此外,調(diào)試過(guò)程可手動(dòng)地解決問(wèn)題(例如,重新加載TLB)。 確切的策略留給操作系統(tǒng)及/或調(diào)試過(guò)程實(shí)施方案。
寄存器、高速緩存及存儲(chǔ)器可通過(guò)填充適當(dāng)指令序列來(lái)存取。調(diào)試過(guò)程軟件可通過(guò) 填充適當(dāng)控制寄存器傳送指令而讀取/寫(xiě)入線程寄存器以在核心寄存器與ISDB郵箱之間
移動(dòng)數(shù)據(jù)。此指令可使用管理器特權(quán)級(jí)來(lái)填充以確保無(wú)異常發(fā)生。高速緩存內(nèi)容(數(shù)據(jù) 及高速緩存標(biāo)記值)可通過(guò)填充適當(dāng)高速緩存維持及加載指令來(lái)讀取及/或?qū)懭搿?br>
存儲(chǔ)器可通過(guò)填充適當(dāng)加載/存儲(chǔ)指令來(lái)讀取/寫(xiě)入。當(dāng)啟用MMU時(shí),加載及存儲(chǔ) 總是使用一虛擬地址來(lái)執(zhí)行。MMU提供可存儲(chǔ)于高速緩存存儲(chǔ)器中的信息,例如,可 高速緩存信令、不可高速緩存信令等。如果需要從一特定源存取存儲(chǔ)器(例如,從非高 速緩存存儲(chǔ)器中的裝置讀取),則調(diào)試過(guò)程軟件確保MMU經(jīng)適當(dāng)配置以用于此存取。 對(duì)于某些調(diào)試情形,調(diào)試過(guò)程軟件可使用操作系統(tǒng)的幫助以配置一特定情形。
高速緩存內(nèi)容就好像所填充的指令來(lái)自正常程序流一樣受到影響。舉例來(lái)說(shuō),在數(shù) 據(jù)高速緩存中未中的可高速緩存加載可引起行替換(line replacements在一個(gè)線程處于 調(diào)試模式且其它線程正在運(yùn)行的情況下,高速緩存內(nèi)容可相應(yīng)改變。在于高速緩存中未 中的一載入或一非高速緩存的加載的狀況下,不可將填充命令在ISDB狀態(tài)寄存器中報(bào) 告為完整的直至加載數(shù)據(jù)返回且操作正常完成為止。
為讀取指令存儲(chǔ)器,可發(fā)生一類似于讀取數(shù)據(jù)存儲(chǔ)器的程序。為寫(xiě)入指令存儲(chǔ)器(例 如,為設(shè)置軟件斷點(diǎn)),首先,調(diào)試過(guò)程軟件可填充一存儲(chǔ)指令以寫(xiě)入指令存儲(chǔ)器。接 著,所述過(guò)程包括填充一數(shù)據(jù)高速緩存清除地址指令以迫使數(shù)據(jù)進(jìn)入外部存儲(chǔ)器中; 填充一阻擋指令(barrier instruction)以確??稍谕獠看鎯?chǔ)器中觀察到變化;及填充一指
令高速緩存無(wú)效地址指令以從指令高速緩存中移除舊輸入。本文所揭示的指令填充也可與復(fù)位DSP40相關(guān)聯(lián)地使用。注意,執(zhí)行ISDB復(fù)位命 令迫使硬件復(fù)位且使整個(gè)DSP40 (亦即,所有線程)復(fù)位。此可將所有寄存器設(shè)置為初 始值,使線程T0:T5斷電且將復(fù)位中斷發(fā)送到線程T0。另一方面,如果需要復(fù)位僅特定 線程,則此可使用指令填充來(lái)進(jìn)行。所述步驟包括填充一具有適當(dāng)屏蔽設(shè)置的"開(kāi)始" 指令。此可導(dǎo)致復(fù)位中斷掛起到所指示的線程。接著,序列包括在所要線程上執(zhí)行ISDB 再繼續(xù)指令。因此,執(zhí)行此序列使得進(jìn)行線程選擇性復(fù)位而無(wú)需復(fù)位DSP 40的所有線 程的有利過(guò)程成為可能。
圖10呈現(xiàn)一描繪在所揭示的非侵入性調(diào)試過(guò)程中的指令填充的所揭示過(guò)程的處理 時(shí)序循環(huán)圖表。如圖IO所描繪,在特定線程上的填充操作期間的信號(hào)行為展示在DSP40 的單個(gè)線程上的事件的序列??赏ㄟ^(guò)其對(duì)應(yīng)管線級(jí)中的每一線程而看到類似行為。所填 充的指令是通過(guò)寫(xiě)入到ISDB命令寄存器的STFINST寄存器而提供。為執(zhí)行所填充的指 令,調(diào)試軟件用填充命令寫(xiě)入到ISDB命令寄存器。所述命令也提供用于執(zhí)行所填充的 指令的特定線程。ISDB控制寄存器138在用于在其上執(zhí)行填充指令的線程的線程管線 處理的EX3級(jí)中發(fā)出微再繼續(xù)命令。此時(shí),將CUISDB微再繼續(xù)類型EX3寄存器設(shè)置 為"0x2"。此指示所發(fā)出的微再繼續(xù)命令將執(zhí)行填充操作。CU 112在隨后循環(huán)的WB 級(jí)確定CU調(diào)試異常指令。 一旦接收到CU調(diào)試異常指令,IU 114便清除舊指令緩沖器 狀態(tài)并準(zhǔn)備自一類似于常規(guī)異常的新位置提取。
CU 112在隨后RF級(jí)中將填充指令請(qǐng)求發(fā)送到IU 114并在WB級(jí)中確定CU下一發(fā) 出指針指令。 一旦接收到CU下一發(fā)出指針指令,IU 114便以類似于UC指令的方式將 所填充的指令提供到CU 112。其可與IU 114內(nèi)部的BU返回?cái)?shù)據(jù)多路復(fù)用一次,而非 在每一線程基礎(chǔ)上進(jìn)行多路復(fù)用。此特征節(jié)省多路復(fù)用成本,而且迂回繞過(guò)擁塞及指令 高速緩存。微再繼續(xù)命令與旁帶信號(hào)相關(guān)聯(lián)以指示所填充的指令的特權(quán)級(jí)。此允許在用 戶模式192或管理器模式194中執(zhí)行。
在所填充的指令正被執(zhí)行時(shí),CU U2將另一指令請(qǐng)求發(fā)送到IU 114以用常規(guī)程序 指令恢復(fù)指令緩沖器。當(dāng)提交所填充的指令時(shí),無(wú)論再繼續(xù)狀態(tài)是成功還是不成功,CU 112均需要在WB處理級(jí)中返回微再繼續(xù)狀態(tài)以及確認(rèn)。ISDB控制器138接著在隨后的 RF級(jí)中發(fā)出一微間斷命令以防止CU 112執(zhí)行下一指令。如果再繼續(xù)狀態(tài)不成功,則 CU 112可指令I(lǐng)U 114以正常方式處置異常。然而,注意,唯一原因在于所填充的指令 引起異常。當(dāng)前程序計(jì)數(shù)器可被推到ELR且接著經(jīng)更新到異常處置程序進(jìn)入點(diǎn)。線程可 因微間斷命令而被停止。在接收到微間斷命令確認(rèn)后,填充指令可完成。因此,在此情 況下微間斷命令狀態(tài)可總為成功??傊?,所揭示的標(biāo)的物提供一種用于將指令填充到多線程數(shù)字信號(hào)處理器的處理管 線中以用于改進(jìn)軟件指令調(diào)試操作的方法及系統(tǒng)。所述方法及系統(tǒng)用于將填充指令寫(xiě)入 到調(diào)試過(guò)程注冊(cè)表中。本發(fā)明包括將填充命令寫(xiě)入調(diào)試過(guò)程命令寄存器中以用于執(zhí)行所 填充的指令。通過(guò)填充指令來(lái)識(shí)別多線程數(shù)字信號(hào)處理器的其中將執(zhí)行填充指令的一預(yù) 定線程。所述過(guò)程及系統(tǒng)在多線程數(shù)字信號(hào)處理器上執(zhí)行線程的預(yù)定級(jí)(亦即,EX3級(jí)) 期間發(fā)出CU 112調(diào)試過(guò)程控制再繼續(xù)命令,且將CU 112調(diào)試過(guò)程再繼續(xù)類型設(shè)置為執(zhí) 行線程的預(yù)定級(jí)以用于指示所發(fā)出的再繼續(xù)命令將執(zhí)行填充操作。本發(fā)明也在隨后循環(huán) 的WB級(jí)中斷言CU 112異常命令且一旦斷言CU 112異常命令便清除舊指令緩沖器狀 態(tài)。接著,所述方法及系統(tǒng)準(zhǔn)備從類似于常規(guī)異常的新位置中提取,同時(shí)盡管有調(diào)試過(guò) 程異常但仍維持ELR。
此外,本實(shí)施例在隨后處理級(jí)中將填充請(qǐng)求從CU 112發(fā)送到IU 114且在隨后循環(huán) 斷言CU112下一發(fā)出指針。 一旦接收到CU112下一發(fā)出指針,便將所填充的指令提供 到CU112,因此IU114以類似于UC指令的方式將所填充的指令提供到CU112。接著 僅將所填充的指令與IU 114內(nèi)部的BU返回?cái)?shù)據(jù)多路復(fù)用一次,而非基于每一線程進(jìn)行 多路復(fù)用。微再繼續(xù)命令與旁帶信號(hào)相關(guān)聯(lián)以指示所填充的指令的特權(quán)級(jí)(在用戶/管理 器模式中執(zhí)行)。在所填充的指令正被執(zhí)行時(shí),CU112將另一指令請(qǐng)求發(fā)送到IU114以 用常規(guī)程序指令恢復(fù)指令緩沖器。接著,當(dāng)提交所填充的指令時(shí),無(wú)論再繼續(xù)狀態(tài)是成 功還是不成功,CU 112均需要在WB中返回微再繼續(xù)狀態(tài)以及確認(rèn)。CUISDB控制器 接著在隨后RF級(jí)中發(fā)出一微間斷命令以防止CU 112執(zhí)行下一指令。如果再繼續(xù)狀態(tài)為 不成功(亦即,當(dāng)所填充的指令引起異常時(shí)),則CU112可控制IU114以正常方式處置 所述異常。接著,可將當(dāng)前PC存儲(chǔ)于DSP40的ELR寄存器中,且可將PC更新到異常 處置程序進(jìn)入點(diǎn)。接著,線程可因微間斷命令而停止。在接收到微間斷命令確認(rèn)后,填 充指令完成。
可以各種方式來(lái)實(shí)施本文中針對(duì)與多線程數(shù)字信號(hào)處理器中的非侵入性線程選擇 性調(diào)試相關(guān)聯(lián)的指令填充操作所描述的處理特征及功能。舉例來(lái)說(shuō),不僅DSP40可執(zhí) 行上述操作,而且本實(shí)施例可被實(shí)施于專用集成電路(ASIC)、微控制器、數(shù)字信號(hào)處 理器或經(jīng)設(shè)計(jì)以執(zhí)行本文中所描述的功能的其它電子電路中。此外,此處所描述的過(guò)程 及特征可存儲(chǔ)于磁性記錄媒體、光學(xué)記錄媒體或其它記錄媒體中,以用于由此些各種信 號(hào)及指令處理系統(tǒng)讀取及執(zhí)行。因此,提供優(yōu)選實(shí)施例的前述描述以使所屬領(lǐng)域的技術(shù) 人員能夠制造或使用所主張標(biāo)的物。對(duì)這些實(shí)施例的各種修改對(duì)于所屬領(lǐng)域的技術(shù)人員 而言將顯而易見(jiàn),且本文中所界定的一般原理可不使用創(chuàng)新技能而應(yīng)用于其它實(shí)施例。因此,所主張的標(biāo)的物并非意圖限于本文中所示的實(shí)施例,而是符合與本文中所揭示的 原理及新穎特征一致的最廣泛范圍。
權(quán)利要求
1.一種用于在多線程數(shù)字信號(hào)處理器的處理管線中填充指令以用于改進(jìn)軟件指令調(diào)試操作的方法,其包含將填充指令寫(xiě)入到與調(diào)試過(guò)程相關(guān)聯(lián)的調(diào)試過(guò)程注冊(cè)表中;在預(yù)定線程上執(zhí)行的預(yù)定級(jí)期間從核心處理器發(fā)出調(diào)試過(guò)程控制再繼續(xù)命令;將所述填充指令提供到所述核心處理器;在所述調(diào)試過(guò)程期間指示所述核心處理器執(zhí)行所述填充指令;及與所述核心處理器過(guò)程及所述調(diào)試過(guò)程相關(guān)聯(lián)地執(zhí)行所述填充指令。
2. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含響應(yīng)于所述填充指令而將填充命令寫(xiě)入 與所述調(diào)試過(guò)程注冊(cè)表相關(guān)聯(lián)的調(diào)試過(guò)程命令寄存器中,所述填充命令包含對(duì)所述 多線程數(shù)字信號(hào)處理器的其中將執(zhí)行所述填充指令的一預(yù)定線程的識(shí)別。
3. 根據(jù)權(quán)利要求l所述的方法,其進(jìn)一步包含在用戶操作模式中執(zhí)行所述填充指令。
4. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含在管理器操作模式中執(zhí)行所述填充指 令。
5. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含響應(yīng)于所述填充指令而將填充命令寫(xiě)入 與所述調(diào)試過(guò)程注冊(cè)表相關(guān)聯(lián)的調(diào)試過(guò)程命令寄存器中,所述填充命令包含對(duì)所述 多線程數(shù)字信號(hào)處理器的其中將執(zhí)行所述填充指令的多個(gè)預(yù)定線程的識(shí)別。
6. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將所述填充指令作為分支指令而寫(xiě)入及 將當(dāng)前程序計(jì)數(shù)器值用于所述預(yù)定線程。
7. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將所述填充指令作為開(kāi)始/再繼續(xù)指令 而寫(xiě)入以用于選擇性地復(fù)位所述預(yù)定線程。
8. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將所述填充指令作為加載指令而寫(xiě)入到 與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中。
9. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將所述填充指令作為寄存器讀取指令而 寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中。
10. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將所述填充指令作為高速緩存讀取/寫(xiě) 入指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中。
11. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將所述填充指令作為存儲(chǔ)器讀取/寫(xiě)入 指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中。
12. —種數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其包含用于在多線程數(shù)字信號(hào)處理器的處理管線中 填充指令的電路及指令,所述數(shù)字信號(hào)處理器調(diào)試系統(tǒng)包含調(diào)試過(guò)程注冊(cè)表,其與調(diào)試過(guò)程相關(guān)聯(lián)以用于接收填充指令;調(diào)試過(guò)程控制再繼續(xù)命令,其用于在預(yù)定線程上執(zhí)行的預(yù)定級(jí)期間從核心處理器 發(fā)出;用于將所述填充指令提供到所述核心處理器的裝置;用于在所述調(diào)試過(guò)程期間指示所述核心處理器執(zhí)行所述填充指令的指示裝置;及 用于與所述核心處理器過(guò)程及所述調(diào)試過(guò)程相關(guān)聯(lián)地執(zhí)行所述填充指令的裝置。
13. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含與所述調(diào)試過(guò)程 注冊(cè)表相關(guān)聯(lián)的調(diào)試過(guò)程命令寄存器以用于響應(yīng)于所述填充指令而接收填充命令, 所述填充命令包含對(duì)所述多線程數(shù)字信號(hào)處理器的其中將執(zhí)行所述填充指令的一 預(yù)定線程的識(shí)別。
14. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含用于在用戶操作 模式中執(zhí)行指令填充方法的電路及指令。
15. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含用于在管理器操 作模式中執(zhí)行所述填充的指令的裝置。
16. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含用于將所述填充 指令作為分支指令而寫(xiě)入并將當(dāng)前程序計(jì)數(shù)器值用于所述預(yù)定線程的裝置。
17. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含用于將所述填充 指令作為開(kāi)始/再繼續(xù)指令而寫(xiě)入以用于選擇性地復(fù)位所述預(yù)定線程的裝置。
18. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含用于將填充指令 作為加載指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中的裝置。
19. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含用于將填充指令 作為寄存器讀取指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中的 裝置。
20. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含用于將填充指令 作為高速緩存讀取/寫(xiě)入指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè) 表中的裝置。
21. 根據(jù)權(quán)利要求12所述的數(shù)字信號(hào)處理器調(diào)試系統(tǒng),其進(jìn)一步包含用于將填充指令 作為存儲(chǔ)器讀取/寫(xiě)入指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表 中的裝置。
22. —種用于支持個(gè)人電子裝置而操作的數(shù)字信號(hào)處理器,所述數(shù)字信號(hào)處理器包含在所述數(shù)字信號(hào)處理器的非侵入性數(shù)字信號(hào)處理器調(diào)試操作期間用于指令填充 操作的裝置;用于將填充指令寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的調(diào)試過(guò)程注冊(cè)表中的裝置; 用于在預(yù)定線程上執(zhí)行的預(yù)定級(jí)期間從核心處理器發(fā)出調(diào)試過(guò)程控制再繼續(xù)命 令的裝置;用于在所述調(diào)試過(guò)程期間指示所述核心處理器執(zhí)行所述填充指令的裝置; 用于將所述填充指令提供到所述核心處理器的裝置;及用于與所述核心處理器過(guò)程及所述調(diào)試過(guò)程相關(guān)聯(lián)地執(zhí)行所述填充指令的裝置。
23. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于響應(yīng)于所述填充指令 而將填充命令寫(xiě)入與所述調(diào)試過(guò)程注冊(cè)表相關(guān)聯(lián)的調(diào)試過(guò)程命令寄存器中的裝置, 所述填充命令包含對(duì)所述多線程數(shù)字信號(hào)處理器的其中將執(zhí)行所述填充指令的一預(yù)定線程的識(shí)別。
24. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于在用戶操作模式中執(zhí) 行所述填充指令的裝置。
25. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于在管理器操作模式中 執(zhí)行所述填充指令的裝置。
26. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于響應(yīng)于所述填充指令 而將填充命令寫(xiě)入與所述調(diào)試過(guò)程注冊(cè)表相關(guān)聯(lián)的所述調(diào)試過(guò)程命令寄存器中的 裝置,所述填充命令包含對(duì)所述多線程數(shù)字信號(hào)處理器的其中將執(zhí)行所述填充指令 的多個(gè)預(yù)定線程的識(shí)別。
27. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于將所述填充指令作為 分支指令而寫(xiě)入并將當(dāng)前程序計(jì)數(shù)器值用于所述預(yù)定線程的裝置。
28. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于將所述填充指令作為 開(kāi)始/再繼續(xù)指令而寫(xiě)入以用于選擇性地復(fù)位所述預(yù)定線程的裝置。
29. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于將填充指令作為加載 指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中的裝置。
30. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于將填充指令作為寄存 器讀取指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中的裝置。
31. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于將填充指令作為高速 緩存讀取/寫(xiě)入指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中的裝 置。
32. 根據(jù)權(quán)利要求22所述的數(shù)字信號(hào)處理器,其進(jìn)一步包含用于將填充指令作為存儲(chǔ) 器讀取/寫(xiě)入指令而寫(xiě)入到與所述調(diào)試過(guò)程相關(guān)聯(lián)的所述調(diào)試過(guò)程注冊(cè)表中的裝置。
33. —種其中包含有用于處理數(shù)字信號(hào)處理器上的指令的計(jì)算機(jī)可讀程序碼裝置的計(jì)算機(jī)可用媒體,所述計(jì)算機(jī)可讀程序碼裝置在所述數(shù)字信號(hào)處理器的非侵入性數(shù)字信號(hào)處理器調(diào)試操作期間用于指令填充操作,所述計(jì)算機(jī)可用媒體包含用于將填充指令寫(xiě)入到與調(diào)試過(guò)程相關(guān)聯(lián)的調(diào)試過(guò)程注冊(cè)表中的計(jì)算機(jī)可讀程 序碼裝置;用于在預(yù)定線程上執(zhí)行的預(yù)定級(jí)期間從核心處理器發(fā)出調(diào)試過(guò)程控制再繼續(xù)命令的計(jì)算機(jī)可讀程序碼裝置;用于將所述填充指令提供到所述核心處理器的計(jì)算機(jī)可讀程序碼裝置; 用于在所述調(diào)試過(guò)程期間指示所述核心處理器執(zhí)行所述填充指令的計(jì)算機(jī)可讀程序碼裝置;及用于與所述核心處理器過(guò)程及所述調(diào)試過(guò)程相關(guān)聯(lián)地執(zhí)行所述填充指令的計(jì)算 機(jī)可讀程序碼裝置。
34. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可用媒體,其進(jìn)一步包含用于響應(yīng)于所述填充指令 而將填充命令寫(xiě)入與所述調(diào)試過(guò)程注冊(cè)表相關(guān)聯(lián)的調(diào)試過(guò)程命令寄存器中的計(jì)算 機(jī)可讀程序碼裝置,所述填充命令包含對(duì)所述多線程數(shù)字信號(hào)處理器的其中將執(zhí)行 所述填充指令的一預(yù)定線程的識(shí)別。
35. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可用媒體,其進(jìn)一步包含用于將所述填充指令作為 開(kāi)始/再繼續(xù)指令而寫(xiě)入以用于選擇性地復(fù)位所述預(yù)定線程的計(jì)算機(jī)可讀程序碼裝 置。
全文摘要
本發(fā)明提供數(shù)字信號(hào)處理器的技術(shù)D的設(shè)計(jì)及使用,其包括(但不限于)用于處理通信系統(tǒng)(例如CDMA)中的傳輸。在多線程數(shù)字信號(hào)處理器的處理管線中填充指令用于操作核心處理器過(guò)程及調(diào)試機(jī)構(gòu)內(nèi)的調(diào)試過(guò)程。將填充指令寫(xiě)入到調(diào)試過(guò)程注冊(cè)表中及將填充命令寫(xiě)入調(diào)試過(guò)程命令寄存器中用于識(shí)別所述多線程數(shù)字信號(hào)處理器的其中將執(zhí)行所述填充指令的預(yù)定線程。所述指令填充過(guò)程在所述預(yù)定線程上執(zhí)行的預(yù)定級(jí)期間發(fā)出調(diào)試過(guò)程控制再繼續(xù)命令,且在所述調(diào)試過(guò)程期間引導(dǎo)所述核心處理器執(zhí)行所述填充指令。接著,所述核心處理器可與所述核心處理器過(guò)程及所述調(diào)試過(guò)程相關(guān)聯(lián)地執(zhí)行所述填充的指令。
文檔編號(hào)G06F11/36GK101529392SQ200780040276
公開(kāi)日2009年9月9日 申請(qǐng)日期2007年11月13日 優(yōu)先權(quán)日2006年11月15日
發(fā)明者盧奇安·科德雷斯庫(kù), 威廉·C·安德森, 蘇雷什·文庫(kù)馬漢提, 路易斯·阿奇列·詹尼尼, 陳旭峰, 馬諾伊庫(kù)馬爾·皮拉 申請(qǐng)人:高通股份有限公司