專利名稱:一種多核處理器的jtag調(diào)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器芯片的基于JTAG標(biāo)準(zhǔn)的調(diào)試技術(shù)領(lǐng)域,尤其是一種多核處理器的JTAG調(diào)試方法。
背景技術(shù):
隨著對(duì)處理能力和能耗的要求日趨提高,多核處理器已經(jīng)成為目前高端處理器芯片的主要解決方案。然而隨著多核架構(gòu)的規(guī)模增大,其設(shè)計(jì)復(fù)雜度也隨之增大,這給多核處理器的在線調(diào)試帶來(lái)了很大的挑戰(zhàn)和困難。本發(fā)明巧妙的設(shè)計(jì)了多核處理器芯片測(cè)試接口與仿真器JTAG調(diào)試接口之間的多路測(cè)試接入端口控制器,有效實(shí)現(xiàn)了對(duì)單核調(diào)試的仿真器和調(diào)試軟件的復(fù)用,僅對(duì)調(diào)試軟件增加了針對(duì)某個(gè)核的選擇和查看相應(yīng)調(diào)試信息的指令。 JTAG (Joint Test Action Group)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,目前,大多多數(shù)芯片或IP (Intellectual Protocol,知識(shí)產(chǎn)權(quán))模塊都采用基于IEEE1149. I標(biāo)準(zhǔn)的JTAG接口作為調(diào)試接口,這些每個(gè)芯片都有一個(gè)TAP (Test Access Pot) controller (測(cè)試接入端口控制器),用于控制芯片與JTAG接口之間的連接,完成調(diào)試?,F(xiàn)有的JTAG標(biāo)準(zhǔn)接口一般有以下幾個(gè)信號(hào)引腳TCK (Test Clock,測(cè)試時(shí)鐘信號(hào)),為T(mén)AP的操作提供了一個(gè)獨(dú)立的、基本的時(shí)鐘信號(hào),TAP的所有操作都是通過(guò)這個(gè)時(shí)鐘信號(hào)來(lái)驅(qū)動(dòng)的。TMS (Test ModeSelection,測(cè)試模式選擇信號(hào)),用來(lái)控制TAP狀態(tài)機(jī)的轉(zhuǎn)換。通過(guò)TMS信號(hào),可以控制TAP在不同的狀態(tài)間相互轉(zhuǎn)換。TMS信號(hào)在TCK的上升沿有效。TDKTestData Input測(cè)試數(shù)據(jù)輸入信號(hào)),是芯片測(cè)試數(shù)據(jù)輸入的接口,所有要輸入到特定寄存器的數(shù)據(jù)都是通過(guò)TDI接口一位一位串行輸入的(由TCK驅(qū)動(dòng))。TDO (Test Data Output,測(cè)試數(shù)據(jù)輸出信號(hào)),這是測(cè)試數(shù)據(jù)輸出的接口,所有要從特定的寄存器中輸出的數(shù)據(jù)都是通過(guò)TDO接口一位一位串行輸出的(由TCK驅(qū)動(dòng))。TRST (Test Reset,測(cè)試復(fù)位信號(hào)),可以用來(lái)對(duì)TAP Controller進(jìn)行復(fù)位(初始化)。為了能夠高效、便捷的實(shí)現(xiàn)的對(duì)多個(gè)核的調(diào)試,一個(gè)標(biāo)準(zhǔn)的multiple-tapcontroller (多路測(cè)試接入端口控制器)是十分必要的。另外,必須要有針對(duì)multiple-tapcontroller的調(diào)試軟件工具,而通過(guò)增加針對(duì)某個(gè)核的選擇和查看相應(yīng)調(diào)試信息的指令,可以有效實(shí)現(xiàn)最大限度的復(fù)用原有調(diào)試軟件。為達(dá)到與IEEE 11 49 I協(xié)議的兼容性,有人提出一種增加TAP連接模塊TLM(TAPLinking Module)的方案,在多核處理器芯片上只提供一個(gè)完全與IEEE149. I協(xié)議兼容的TAP接口,對(duì)外提供仲TMS、TCK、TDI、TD0、TRST5個(gè)引腳,仿真器的JTAG調(diào)試接口通過(guò)TLM連接到各個(gè)TAP,TLM負(fù)責(zé)把JTAG調(diào)試接口的信號(hào)連接到某個(gè)指定的要測(cè)試的處理器核的TAP上,而芯片內(nèi)部處理器核的TAP與TLM進(jìn)行互連,每個(gè)TAP除了綁定的JTAG調(diào)試接口的5根信號(hào)線外,還增加了選擇信號(hào)SEL和使能信號(hào)ENA,通過(guò)SEI和ENA確定哪一個(gè)處理器核的TAP連接到仿真器的JTAG調(diào)試接口上。TLM根據(jù)SEL和ENA將仿真器的測(cè)試信號(hào)TDI、TMS、TCK、TRST傳遞到片內(nèi)某個(gè)TAP相應(yīng)的TDI、TMS,TCK和TRST端口,將該TAP的TDO端口輸出的數(shù)據(jù)通過(guò)TDO引腳經(jīng)過(guò)JTAG仿真器送回調(diào)試軟件,以實(shí)現(xiàn)對(duì)多核芯片中的某個(gè)處理器核的JTAG調(diào)試。但這種方法必須為處理器核內(nèi)部的TAP增加額外的選擇和使能信號(hào),這就必須修改處理器核內(nèi)部的TAP,將ENA和SEL信號(hào)加入TAP的設(shè)計(jì)中。每個(gè)TAP的TAP控制器從TLM獲得的ENA作為輸入使能或禁止該TAP,TAP中的指令寄存器增加SEL信號(hào)輸出到TLM以響應(yīng)掃入其指令寄存器的指令,這使硬件設(shè)計(jì)變得復(fù)雜。為了實(shí)現(xiàn)對(duì)TAP控制器與標(biāo)準(zhǔn)JTAG之間的連接控制,實(shí)現(xiàn)多核處理器的有效調(diào)試,有人提出了通過(guò)增加一個(gè)芯片級(jí)的TAP控制器調(diào)試支持模塊DMS (Debug SupportModule)。這種方法兼容標(biāo)準(zhǔn)的JTA G調(diào)試接口,并且不需要對(duì)各個(gè)芯片或IP模塊的TAP控制器做改動(dòng),但是它需要仿真器提供額外的控制信號(hào)MDS (Multiple-core Debug Select,多核調(diào)試選擇)引腳。設(shè)計(jì)者希望通過(guò)仿真器產(chǎn)生多個(gè)時(shí)鐘周期的MDS低電平信號(hào),控制調(diào)試指令存入調(diào)試支持模塊的指令寄存器,并從譯碼器獲得相應(yīng)處理器核的選擇信號(hào),這就使得設(shè)計(jì)者必須修改仿真器來(lái)適應(yīng)這個(gè)關(guān)鍵的調(diào)試信號(hào)。因此該仿真器雖然具有兼容性,但并不是IEEE1149. I標(biāo)準(zhǔn)的JTAG協(xié)議描述的調(diào)試接口。另外,由于該調(diào)試支持模塊僅僅是單純的譯碼器和多路選擇器的連接,不具備數(shù)據(jù)信號(hào)存儲(chǔ)功能,調(diào)試期間無(wú)法觀測(cè)調(diào)試支持模塊的當(dāng)前調(diào)試信息和狀態(tài),這對(duì)于在線調(diào)試來(lái)講存在著極大地弊端,因?yàn)檎{(diào)試者在調(diào)試過(guò)程中并不能確認(rèn)當(dāng)前調(diào)試的處理器核。這種不確定在MDS信號(hào)發(fā)生不穩(wěn)定如信號(hào)抖動(dòng)時(shí)就會(huì)發(fā)生,使得希望調(diào)試處理器核1,而實(shí)際選中了處理器核2。這對(duì)于商用芯片的調(diào)試是一種極大的風(fēng)險(xiǎn)。圖I是采用增加TLM模塊連接各個(gè)處理器核TAP控制器的框圖TLM作為芯片唯一的調(diào)試接口,它的輸入是TDI、TMS、TCK和TRST,輸出是TD0。每個(gè)IP核TAP的5針信號(hào)TDI、TMS、TCK、TRST和TDO都與TLM進(jìn)行互連,TLM負(fù)責(zé)把JTAG調(diào)試接口的信號(hào)連接到某一個(gè)指定的要測(cè)試的IP核的TAP上。這種方法需要為每個(gè)TAP增加選擇信號(hào)SEL和使能信號(hào)ENA與TLM相連,通過(guò)SEL和ENA確定選擇哪一個(gè)處理器核的TAP連接到芯片的TAP接口上。因此這種方法必須修改處理器核內(nèi)部的TAP,將SEL和ENA加入TAP的設(shè)計(jì)中,使硬件設(shè)計(jì)變得復(fù)雜。圖2是采用調(diào)試支持模塊連接各個(gè)處理器核TAP控制器的框圖調(diào)試支持模塊除具有TDI、TMS、TCK、TRST、TDO這五個(gè)輸入引腳與仿真器的JTAG調(diào)試接口相連外,還需要一個(gè)多核調(diào)試選擇引腳接受鏈選命令的使能信號(hào)MDS,MDS由仿真器產(chǎn)生并輸入。調(diào)試支持模塊的輸出TDIl TDIn,TMSl TMSn,TCK, TRST分別與Corel Coren這η的各個(gè)TAP的TDI、TMS、TCK、TRST相連,調(diào)試支持模塊將仿真器的測(cè)試信號(hào)TDI、TMS、TCK和TRST信號(hào)傳送到片內(nèi)要調(diào)試的某個(gè)IP核的TAP相應(yīng)的TDII、TMS、TCK和TRST端口 ;調(diào)試支持模塊各有TDOl TDOn,這η個(gè)輸入分別與Corel Coren的TAP控制器的輸出信號(hào)TDO相連。的TAP的輸出信號(hào)TDO相連,將被調(diào)試的處理器核的TAP輸出的數(shù)據(jù)通過(guò)TDO引腳經(jīng)過(guò)JTAG仿真器送達(dá)調(diào)試主機(jī)。調(diào)試支持模塊的輸入TDI、TMS、TCK、TRST、MDS和輸出TDO連接至片外作為整個(gè)芯片統(tǒng)一的JTAG接口,通過(guò)調(diào)試支持模塊這樣一個(gè)芯片級(jí)TAP控制器通道對(duì)多核芯片上的各個(gè)處理器核進(jìn)行JTAG調(diào)試。因此,這種方法必須修改仿真器設(shè)計(jì)來(lái)提供使能信號(hào)MDS,這使得該調(diào)試支持模塊在對(duì)不同類型的多核處理器芯片的調(diào)試時(shí)移植復(fù)雜度增力口,因?yàn)楸仨氠槍?duì)其仿真器也增加相應(yīng)的MDS信號(hào)。另外,由于該調(diào)試支持模塊僅僅是單純的譯碼器和多路選擇器的連接,不具備數(shù)據(jù)信號(hào)存儲(chǔ)功能,調(diào)試期間無(wú)法觀測(cè)調(diào)試支持模塊的當(dāng)前調(diào)試信息和狀態(tài),這對(duì)于在線調(diào)試來(lái)講存在著極大地弊端,因?yàn)檎{(diào)試者在調(diào)試過(guò)程中并不能確認(rèn)當(dāng)前調(diào)試的處理器核。這種不確定情況在MDS信號(hào)發(fā)生不穩(wěn)定(如信號(hào)抖動(dòng))時(shí)就會(huì)發(fā)生,例如希望調(diào)試處理器核1,而實(shí)際選中了處理器核2。這對(duì)于商用芯片的調(diào)試是一種極大的風(fēng)險(xiǎn)。
發(fā)明內(nèi)容
為了克服已有多核處理器的JTAG調(diào)試方法的無(wú)法有效完成各個(gè)處理器核的選擇控制和調(diào)試信息存儲(chǔ)反饋、可靠性差的不足,本發(fā)明提供一種有效完成各個(gè)處理器核的選擇控制和調(diào)試信息存儲(chǔ)反饋、提升可靠性的多核處理器的JTAG調(diào)試方法。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是一種多核處理器的JTAG調(diào)試方法,在各個(gè)處理器核的標(biāo)準(zhǔn)測(cè)試接入端口控制器和仿真器JTAG調(diào)試接口之間連接多路測(cè)試接口控制器,所述多路測(cè)試接口控制器由狀態(tài)控制模塊和調(diào)試控制模塊組成;所述調(diào)試方法包括如下步驟 第一步系統(tǒng)上電,多路測(cè)試接入端口控制器的功能狀態(tài)機(jī)進(jìn)入測(cè)試邏輯復(fù)位狀態(tài);第二步發(fā)送調(diào)試指令,經(jīng)過(guò)仿真器JTAG調(diào)試接口輸出特定的TCK、TDI、TMS信號(hào),使得狀態(tài)控制模塊依次進(jìn)入測(cè)試進(jìn)行狀態(tài)、選擇數(shù)據(jù)掃描寄存器狀態(tài)、選擇指令掃描寄存器狀態(tài)、捕獲指令狀態(tài)、移入指令狀態(tài)、退出指令I(lǐng)狀態(tài)、更新指令狀態(tài),最后回到測(cè)試進(jìn)行狀態(tài);在捕獲指令狀態(tài)中,一個(gè)編碼序列被加載到指令寄存器當(dāng)中;然后進(jìn)入到移入指令狀態(tài),在移入指令狀態(tài)下,通過(guò)TCK的驅(qū)動(dòng),將TDI輸入的選擇指令送到邊界掃描寄存器當(dāng)中去,然后在更新指令狀態(tài),輸入到邊界掃描掃描寄存器中的選擇指令用來(lái)更新指令寄存器,最后,進(jìn)入到測(cè)試進(jìn)行狀態(tài),指令生效,完成對(duì)多路調(diào)試接口控制器的指令寄存器的訪問(wèn);所述選擇指令被指令譯碼器譯碼,產(chǎn)生內(nèi)部選擇信號(hào)選中控制寄存器,并產(chǎn)生配置信號(hào)使控制寄存器進(jìn)入控制寄存器配置模式;第三步發(fā)送選擇信號(hào),配置控制寄存器;第四步延時(shí)一個(gè)時(shí)鐘周期之后,控制寄存器中的信息被加載到狀態(tài)寄存器,狀態(tài)寄存器中的信息經(jīng)譯碼器產(chǎn)生的譯碼信號(hào)控制第一多路選擇器把JTAG調(diào)試接口輸出的TDI信號(hào)和TMS信號(hào)傳給選定的處理器核;而被選中的處理器核的DTO信號(hào)也在譯碼信號(hào)控制下經(jīng)過(guò)第二多路選擇器傳遞回多路測(cè)試接口控制器;多路測(cè)試接口控制器中的狀態(tài)信息和傳入的TDO信號(hào)在狀態(tài)寄存器讀取信號(hào)控制下經(jīng)過(guò)第三多路選擇器傳遞回JTAG調(diào)試接口 ;第五步完成對(duì)處理器核的選擇后,發(fā)送調(diào)試指令,進(jìn)行單核處理器調(diào)試過(guò)程。進(jìn)一步,所述調(diào)試方法還包括第六步當(dāng)需要查看當(dāng)前各個(gè)處理器核TAP信息及多路測(cè)試接口控制器的狀態(tài)信息,利用查詢指令實(shí)現(xiàn);所述查詢指令進(jìn)入指令寄存器并獲得譯碼后,通過(guò)內(nèi)部狀態(tài)寄存器讀取信號(hào)的控制,使多路測(cè)試接口控制器進(jìn)入狀態(tài)查詢模式;在此模式下,通過(guò)TDO輸出的信息得到當(dāng)前所被調(diào)試的核的信息和多路測(cè)試接口控制器狀態(tài)信息。本發(fā)明的技術(shù)構(gòu)思為設(shè)計(jì)了一個(gè)標(biāo)準(zhǔn)的多路測(cè)試接口控制器,用于連接各個(gè)標(biāo)準(zhǔn)測(cè)試接入端口控制器和仿真器JTAG調(diào)試接口,由狀態(tài)控制模塊和調(diào)試控制模塊兩大部分組成。其中狀態(tài)控制模塊實(shí)現(xiàn)了 JTAG標(biāo)準(zhǔn)協(xié)議的各個(gè)功能狀態(tài),用于控制調(diào)試控制模塊實(shí)現(xiàn)具體的功能操作。調(diào)試控制模塊實(shí)現(xiàn)的具體功能主要包括存儲(chǔ)調(diào)試選擇指令,譯碼調(diào)試選擇指令,將調(diào)試指令和數(shù)據(jù)信號(hào)傳遞給選中的處理器核,以及反饋當(dāng)前調(diào)試信息。其中,當(dāng)前調(diào)試信息既可以是多路測(cè)試接入控制器的狀態(tài)信息也可以是正處于調(diào)試狀態(tài)的某個(gè)具體的處理器核的狀態(tài)信息。為了完成調(diào)試還需要對(duì)原有的調(diào)試軟件做簡(jiǎn)單的修改。需要增加特殊的指令,即調(diào)試選擇指令,調(diào)試選擇指令用于選擇需要調(diào)試的某個(gè)具體的處理器核。另外,復(fù)用原有信息查詢指令,結(jié)合選擇指令,就可以對(duì)實(shí)現(xiàn)查看多路測(cè)試接口控制器的狀態(tài)信息或者正處于調(diào)試狀態(tài)的某個(gè)具體的處理器核的狀態(tài)信息。本發(fā)明的有益效果主要表現(xiàn)在 I、多路測(cè)試訪問(wèn)接入端口控制器并不是簡(jiǎn)單的多路選擇器,它支持基于IEEE1149. I協(xié)議標(biāo)準(zhǔn)的JTAG接口,擁有標(biāo)準(zhǔn)的狀態(tài)機(jī)和指令寄存器、指令譯碼器和數(shù)據(jù)寄存器(用于存儲(chǔ)控制信息)。2、對(duì)原有的各個(gè)處理器核的測(cè)試接口不需要做任何改動(dòng),通過(guò)本控制器將標(biāo)準(zhǔn)JTAG調(diào)試信號(hào)傳給對(duì)應(yīng)的調(diào)試處理器核,不僅能充分使用原有的調(diào)試接口,對(duì)于非本公司開(kāi)發(fā)的芯片產(chǎn)品也能實(shí)現(xiàn)簡(jiǎn)單移植,提高了設(shè)計(jì)的復(fù)用率。3、支持原有仿真器復(fù)用,對(duì)仿真而言,只連接多路測(cè)試接口控制器,它是一個(gè)標(biāo)準(zhǔn)的芯片調(diào)試接口,而對(duì)各個(gè)處理器核透明,因此不需要做額外的改動(dòng)來(lái)適應(yīng)調(diào)試需要。4、支持原有調(diào)試軟件復(fù)用,對(duì)原有的單核調(diào)試軟件做了簡(jiǎn)單的修改。增加相應(yīng)處理器選擇指令用作挑選指定的處理器核進(jìn)行調(diào)試,以及對(duì)應(yīng)的信息查詢指令,用于查詢當(dāng)前多路測(cè)試接口控制器和各個(gè)處理器核的調(diào)試狀態(tài)信息。
圖I是背景技術(shù)中采用增加TLM模塊連接各個(gè)處理器核TAP控制器的框圖。圖2是背景技術(shù)中采用調(diào)試支持模塊連接各個(gè)處理器核TAP控制器的框圖。圖3是本發(fā)明采用多路測(cè)試接口控制器連接各個(gè)處理器核TAP控制器的框圖。圖4是本發(fā)明多路測(cè)試接口控制器的控制模塊內(nèi)部結(jié)構(gòu)圖。圖5是本發(fā)明所涉及的功能狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。參照?qǐng)D3 圖5,一種多核處理器的JTAG調(diào)試方法,包括如下步驟第一步系統(tǒng)上電,多路測(cè)試接入端口控制器的功能狀態(tài)機(jī)進(jìn)入Test-LogicReset (測(cè)試邏輯復(fù)位)狀態(tài)。第二步調(diào)試軟件發(fā)送調(diào)試指令,經(jīng)過(guò)仿真器JTAG調(diào)試接口輸出特定的TCK、TDI、TMS信號(hào),使得多路接口測(cè)試模塊的狀態(tài)控制模塊依次進(jìn)入Run-Test/Idle (測(cè)試進(jìn)行)狀態(tài)、Select-DR-Scan (選擇數(shù)據(jù)掃描寄存器)狀態(tài)、Select-IR-Scan (選擇指令掃描寄存器)狀態(tài)、Capture-IR (捕獲指令)狀態(tài)、Shift-IR (移入指令)狀態(tài)、Exitl-IR (退出指令I(lǐng))狀態(tài)、Update-IR (更新指令)狀態(tài),最后回到Run-Test/Idle狀態(tài)。在Capture-IR狀態(tài)中,一個(gè)特定的編碼序列被加載到指令寄存器當(dāng)中;然后進(jìn)入到Shift-IR狀態(tài),在Shift-IR狀態(tài)下,通過(guò)TCK的驅(qū)動(dòng),可以將TDI輸入的選擇指令送到邊界掃描寄存器當(dāng)中去。然后在Update-IR狀態(tài),剛才輸入到邊界掃描掃描寄存器中的指令將用來(lái)更新指令寄存器。最后,進(jìn)入到Run-Test/Idle狀態(tài),指令生效,完成對(duì)多路測(cè)試接口控制器的指令寄存器的訪問(wèn)。該調(diào)試選擇指令被指令譯碼器譯碼,產(chǎn)生內(nèi)部選擇信號(hào)cr_Sel (控制寄存器選擇)選中控制寄存器,并產(chǎn)生配置信號(hào)cr_Write (控制寄存器寫(xiě)入)使控制寄存器進(jìn)入控制寄存器配置模式。第三步軟件發(fā)送具體的選擇信號(hào),配置控制寄存器。經(jīng)過(guò)第二步中描述的各個(gè)狀態(tài)后,這條選擇指令編碼(具體的配置信息)被更新到控制寄存器。第四步延時(shí)一個(gè)時(shí)鐘周期之后,控制寄存器中的信息被加載到狀態(tài)寄存器。狀態(tài)寄存器中的信息經(jīng)譯碼器產(chǎn)生的譯碼信號(hào)core_sel控制多路選擇器I把JTAG接口輸出的TDI信號(hào)和TMS信號(hào)傳給選定的處理器核;而被選中的處理器核的DTO信號(hào)也在core_sel信號(hào)控制下經(jīng)過(guò)多路選擇器2傳遞回多路測(cè)試接入端口控制器。之后多路接口控制端口控 制器中的狀態(tài)信息(sr_tdo)和傳入的TDO信號(hào)在狀態(tài)寄存器讀取信號(hào)(sr_read)控制下經(jīng)過(guò)多路選擇器3傳遞回JTAG接口后反饋給調(diào)試軟件。這里將控制信息存儲(chǔ)到狀態(tài)寄存器,不僅能使便于實(shí)現(xiàn)后面提到的狀態(tài)信息查詢,而且提高了設(shè)計(jì)的魯棒性。第五步完成對(duì)處理器核的選擇后,就可以發(fā)送普通的調(diào)試指令,進(jìn)行和同對(duì)單核處理器一樣的調(diào)試工作。第六步當(dāng)任何時(shí)候需要查看當(dāng)前各個(gè)處理器核TAP信息及多路測(cè)試接口控制器的狀態(tài)信息,都可以利用查詢指令實(shí)現(xiàn)。查詢指令進(jìn)入指令寄存器并獲得譯碼后,通過(guò)內(nèi)部sr_read (狀態(tài)寄存器讀取)信號(hào)的控制,使多路測(cè)試接口控制器進(jìn)入狀態(tài)查詢模式。在此模式下,可以通過(guò)TDO輸出的信息了解當(dāng)前所被調(diào)試的核的信息和多路測(cè)試接口控制器狀態(tài)息。圖3是發(fā)明采用多路測(cè)試接口控制器連接各個(gè)處理器核TAP控制器的框圖多路測(cè)試接口控制器由狀態(tài)控制模塊和調(diào)試控制模塊兩大部分組成。其中狀態(tài)控制模塊實(shí)現(xiàn)了 JTAG標(biāo)準(zhǔn)協(xié)議的各個(gè)功能狀態(tài),用于控制調(diào)試控制模塊實(shí)現(xiàn)具體的功能操作。調(diào)試控制模塊式多路測(cè)試接入端口控制器的核心模塊,實(shí)現(xiàn)的具體功能主要包括存儲(chǔ)調(diào)試選擇指令,譯碼調(diào)試選擇指令,將調(diào)試指令和數(shù)據(jù)信號(hào)傳遞給選中的處理器核,以及反饋當(dāng)前調(diào)試信息。其中當(dāng)前調(diào)試信息既可以是多路測(cè)試接入端口控制器的狀態(tài)信息也可以是正處于調(diào)試狀態(tài)的某個(gè)具體的處理器核的狀態(tài)信息。JTAG接口輸出的TDI信號(hào)和TMS信號(hào)將在多路測(cè)試接口控制器的控制下傳給選定的處理器核,或者多路測(cè)試接口控制器自身,而各個(gè)處理器核的DTO信號(hào)及多路測(cè)試接口控制器自身的DTO將在多路測(cè)試接口控制器控制選擇下傳遞回JTAG接口。TCK和TRST信號(hào)則有仿真器直接連接至多路測(cè)試接口控制器和各個(gè)核。為了完成調(diào)試還需要對(duì)原有的調(diào)試軟件做簡(jiǎn)單的修改。我們只需要增加調(diào)試選擇指令,調(diào)試選擇指令分為兩個(gè)階段,第一個(gè)階段控制進(jìn)入多核調(diào)試選擇模式,第二個(gè)階段配置控制寄存器用于選擇需要調(diào)試的具體的處理器核。另外,復(fù)用原有信息查詢指令,結(jié)合選擇指令,就可以對(duì)實(shí)現(xiàn)查看多路測(cè)試接入端口控制器的狀態(tài)信息或者正處于調(diào)試狀態(tài)的某個(gè)具體的處理器核的狀態(tài)信息。圖4是本發(fā)明多路測(cè)試接口控制器的控制模塊內(nèi)部結(jié)構(gòu)圖調(diào)試控制模塊式將接受來(lái)自外部的TDI、TCK、TMS、TRST信號(hào)和內(nèi)部狀態(tài)控制模塊的控制信號(hào)實(shí)現(xiàn)對(duì)多個(gè)處理器核TAP的控制,并且將選定的處理器核TDO信號(hào)傳遞給JTAG調(diào)和接口反饋調(diào)試軟件,具體的調(diào)試步驟如下圖5是本發(fā)明所涉及的功能狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖I.系統(tǒng)上電,TAP控制器進(jìn)入Te st-Logic Reset (測(cè)試邏輯復(fù)位)狀態(tài),然后依次進(jìn)入Run-Test/Idle (測(cè)試進(jìn)行)狀態(tài)、Select-DR-Scan (選擇數(shù)據(jù)掃描寄存器)狀態(tài)、Select-IR-Scan (選擇指令掃描寄存器)狀態(tài)、Capture-IR (捕獲指令)狀態(tài)、Shift-IR (移入指令)狀態(tài)、Exitl-IR (退出指令I(lǐng))狀態(tài)、Update-IR (更新指令)狀態(tài),最后回到Run-Test/Idle狀態(tài)。在Capture-IR狀態(tài)中,一個(gè)特定的編碼序列被加載到指令寄存器當(dāng)中;然后進(jìn)入到Shift-IR狀態(tài),在Shift-IR狀態(tài)下,通過(guò)TCK的驅(qū)動(dòng),可以將TDI輸入的選擇指令送到邊界掃描寄存器當(dāng)中去。然后在Update-IR狀態(tài),剛才輸入到邊界掃描掃描寄存器中的指令將用來(lái)更新指令寄存器。最后,進(jìn)入到Run-Test/Idle狀態(tài),指令生效,完成對(duì)多路測(cè)試接口控制器的指令寄存器的訪問(wèn)。2.當(dāng)前可以訪問(wèn)的數(shù)據(jù)寄存器由指令寄存器中的當(dāng)前指令決定。要訪問(wèn)由剛才的指令選定的數(shù)據(jù)寄存器,需要以Run-Test/Idle為起點(diǎn),依次進(jìn)入Select-DR-Scan、Capture-DR、Shift-DR (移入數(shù)據(jù))狀態(tài)、Exitl-DR (退出數(shù)據(jù)I)狀態(tài)、Update-DR (更新數(shù)據(jù))狀態(tài),最后回到Run-Test/Idle狀態(tài)。在這個(gè)過(guò)程當(dāng)中,被當(dāng)前指令選定的數(shù)據(jù)寄存器會(huì)被連接在TDI和TDO之間。通過(guò)TDI和TD0,就可以將新的數(shù)據(jù)加載到數(shù)據(jù)寄存器當(dāng)中去,同時(shí),也可以捕獲數(shù)據(jù)寄存器中的數(shù)據(jù)。
權(quán)利要求
1.一種多核處理器的JTAG調(diào)試方法,其特征在于在各個(gè)處理器核的標(biāo)準(zhǔn)測(cè)試接入端口控制器和仿真器JTAG調(diào)試接口之間連接多路測(cè)試接口控制器,所述多路測(cè)試接口控制器由狀態(tài)控制模塊和調(diào)試控制模塊組成;所述調(diào)試方法包括如下步驟 第一步系統(tǒng)上電,多路測(cè)試接入端口控制器的功能狀態(tài)機(jī)進(jìn)入測(cè)試邏輯復(fù)位狀態(tài); 第二步發(fā)送調(diào)試指令,經(jīng)過(guò)仿真器JTAG調(diào)試接口輸出特定的TCK、TDI、TMS信號(hào),使得狀態(tài)控制模塊依次進(jìn)入測(cè)試進(jìn)行狀態(tài)、選擇數(shù)據(jù)掃描寄存器狀態(tài)、選擇指令掃描寄存器狀態(tài)、捕獲指令狀態(tài)、移入指令狀態(tài)、退出指令I(lǐng)狀態(tài)、更新指令狀態(tài),最后回到測(cè)試進(jìn)行狀態(tài);在捕獲指令狀態(tài)中,一個(gè)編碼序列被加載到指令寄存器當(dāng)中;然后進(jìn)入到移入指令狀態(tài),在移入指令狀態(tài)下,通過(guò)TCK的驅(qū)動(dòng),將TDI輸入的選擇指令送到邊界掃描寄存器當(dāng)中去,然后在更新指令狀態(tài),輸入到邊界掃描掃描寄存器中的選擇指令用來(lái)更新指令寄存器,最后,進(jìn)入到測(cè)試進(jìn)行狀態(tài),指令生效,完成對(duì)多路調(diào)試接口控制器的指令寄存器的訪問(wèn);所述選擇指令被指令譯碼器譯碼,產(chǎn)生內(nèi)部選擇信號(hào)選中控制寄存器,并產(chǎn)生配置信號(hào)使控制寄存器進(jìn)入控制寄存器配置模式; 第三步發(fā)送選擇信號(hào),配置控制寄存器; 第四步延時(shí)一個(gè)時(shí)鐘周期之后,控制寄存器中的信息被加載到狀態(tài)寄存器,狀態(tài)寄存器中的信息經(jīng)譯碼器產(chǎn)生的譯碼信號(hào)控制第一多路選擇器把JTAG調(diào)試接口輸出的TDI信號(hào)和TMS信號(hào)傳給選定的處理器核;而被選中的處理器核的DTO信號(hào)也在譯碼信號(hào)控制下經(jīng)過(guò)第二多路選擇器傳遞回多路測(cè)試接口控制器;多路測(cè)試接口控制器中的狀態(tài)信息和傳入的TDO信號(hào)在狀態(tài)寄存器讀取信號(hào)控制下經(jīng)過(guò)第三多路選擇器傳遞回JTAG調(diào)試接口 ; 第五步完成對(duì)處理器核的選擇后,發(fā)送調(diào)試指令,進(jìn)行單核處理器調(diào)試過(guò)程。
2.如權(quán)利要求I所述的一種多核處理器的JTAG調(diào)試方法,其特征在于所述調(diào)試方法還包括 第六步當(dāng)需要查看當(dāng)前各個(gè)處理器核TAP信息及多路測(cè)試接口控制器的狀態(tài)信息,利用查詢指令實(shí)現(xiàn);所述查詢指令進(jìn)入指令寄存器并獲得譯碼后,通過(guò)內(nèi)部狀態(tài)寄存器讀取信號(hào)的控制,使多路測(cè)試接口控制器進(jìn)入狀態(tài)查詢模式;在此模式下,通過(guò)TDO輸出的信息得到當(dāng)前所被調(diào)試的核的信息和多路測(cè)試接口控制器狀態(tài)信息。
全文摘要
一種多核處理器的JTAG調(diào)試方法,在各個(gè)處理器核的標(biāo)準(zhǔn)測(cè)試接入端口控制器和仿真器JTAG調(diào)試接口之間連接多路測(cè)試接口控制器,調(diào)試方法包括如下步驟第一步系統(tǒng)上電,多路測(cè)試接入端口控制器的功能狀態(tài)機(jī)進(jìn)入測(cè)試邏輯復(fù)位狀態(tài);第二步發(fā)送調(diào)試指令,經(jīng)過(guò)仿真器JTAG調(diào)試接口輸出特定的TCK、TDI、TMS信號(hào),使得狀態(tài)控制模塊依次進(jìn)入各個(gè)狀態(tài);第三步發(fā)送選擇信號(hào),配置控制寄存器;第四步延時(shí)一個(gè)時(shí)鐘周期之后,控制寄存器中的信息被加載到狀態(tài)寄存器;第五步完成對(duì)處理器核的選擇后,發(fā)送調(diào)試指令,進(jìn)行單核處理器調(diào)試過(guò)程。本發(fā)明有效完成各個(gè)處理器核的選擇控制和調(diào)試信息存儲(chǔ)反饋、提升可靠性。
文檔編號(hào)G06F11/26GK102880536SQ201210328478
公開(kāi)日2013年1月16日 申請(qǐng)日期2012年9月7日 優(yōu)先權(quán)日2012年9月7日
發(fā)明者馮炯, 金孝飛, 黃凱, 嚴(yán)曉浪 申請(qǐng)人:杭州中天微系統(tǒng)有限公司