專利名稱:多核處理器的jtag實時片上調試方法及其系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及多核微處理器芯片的調試,尤其涉及多核處理器的JTAG實時片上調試方法及其系統(tǒng)。
背景技術:
如今的處理器設計中,時鐘頻率已經(jīng)接近現(xiàn)有生產工藝的極限,已不能單純的通 過提高時鐘頻率來提升處理器性能。多核處理器的發(fā)展,解決了性能和功耗的問題。但是, 并行程序在多核處理器上的運行時調試成為了一個難題。傳統(tǒng)的單核心處理器的調試方式有軟件和硬件的方法兩大類。軟件的調試方法最 常用的開源工具包括GNU Debugger (⑶B,GNU調試器)。軟件運行在操作系統(tǒng)之上,通過系 統(tǒng)調用來實現(xiàn)對需要調試的處理器的監(jiān)控和控制,比方說寄存器的值查看,斷點的設置。硬 件的調試的方法是在處理器增加調試接口,如JTAG接口,通過拓展JTAG邊界掃描的功能, 完成對片上的調試輔助寄存器的控制和監(jiān)控,并于主機的軟件協(xié)同工作來完成片上調試的 功能。軟件方式的優(yōu)點是輕量級,不需要增加任何的硬件輔助。硬件的優(yōu)點是調試準確,可 以排除軟件自身的錯誤對調試結果的影響。軟件方式的缺點是對結果有干擾性,速度比較 慢。硬件的缺點是硬件會增加芯片設計的難度,驗證周期,對芯片生產時的面積和功耗都有 所增加。對于多核處理器的調試,由于并行程序的并發(fā)性,軟件方式不能精確的模擬程序 的行為,硬件調試辦法在多核心處理器設計中,被更多考慮到,但是多核調試到目前為止沒 有一種形成規(guī)范的調試方式。在多核處理器的片上調試中,現(xiàn)有技術中最常用的調試方法時菊花鏈 (Daisy-chain)的方法,如圖1所示,所有多核處理器的核的TDI (Test DataInput,測試數(shù) 據(jù)輸入)和TD0(Test Data Output,測試數(shù)據(jù)輸出)鏈接成為串行的鏈,前一個核的TDO鏈 接到下一個核的TDI,控制信號TCK(Test Clock,測試時鐘),TMS (Test Mode Select,測試 模式選擇)和TRST (Test Reset,測試復位)連接到所有的核TAP (Test Access Port,測試 接入端口)控制器上。菊花鏈的連接方式與IEEE 1149. 1協(xié)議不兼容,調試軟件設計復雜 并且軟件不能兼容多核處理器中小核數(shù)的變化。TAP(測試接入端口)由TDI,TD0,TMS,TCK 和一個可選的TRST輸入端口組成。為了兼容性,現(xiàn)有技術中又提出了增加TAP連接模塊TLM(TAP LinkModule)的方 案,如圖2所示。該技術除了標準的JTAG控制接口外,TLM模塊還與每個核增加了選擇信 號SEL和使能信號ENA,通過這組信號來選取調試的目標小核。這種方法適用范圍在TAP模 塊可以修改的情形,軟件調試會因為小核數(shù)目的變化改動比較大,重用性不好。核數(shù)較多的 時候,從TLM模塊的引出過多的連線,給芯片后端物理設計造成很大的困難。
發(fā)明內容
為解決上述問題,本發(fā)明提供了多核處理器的JTAG實時片上調試方法及其系統(tǒng),通過使用增強型TAP控制器在控制流和總線數(shù)據(jù)間翻譯,能夠對多核處理器進行調試,而不受多核處理器的核的數(shù)量的制約。本發(fā)明公開了一種多核處理器的JTAG實時片上調試方法,包括步驟1,軟件調試器對被調試的多核處理器的核進行調試配置,生成符合JTAG控 制協(xié)議的控制命令,將所述控制命令轉化為控制流,將所述控制流發(fā)送至增強型TAP控制 器;步驟2,所述增強型TAP控制器將接收的所述控制流轉化為符合片上調試通訊協(xié) 議的數(shù)據(jù)包,通過調試總線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端;步驟3,所述調試客戶端將接收的所述數(shù)據(jù)包轉化為控制命令,響應所述控制命令 產生響應數(shù)據(jù),通過調試總線將響應數(shù)據(jù)返回給所述增強型TAP控制器;步驟4,所述增強型TAP控制器將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控 制流,所述軟件調試器通過所述增強型TAP控制器獲得所述控制流。所述步驟1中軟件調試器對被調試的多核處理器的核進行調試配置進一步為,步驟21,軟件調試器針對被調測的多核處理器的每個核的調試客戶端進行如下調 試配置中的一種或多種,設置硬件數(shù)據(jù)斷點、清除硬件數(shù)據(jù)斷點、設置硬件指令斷點、清除硬件指令斷點、 設置普通斷點、設置單步執(zhí)行、退出斷點。所述增強型TAP控制器包括指令寄存器和增強控制寄存器;所述增強型TAP控制器還包括TAP控制器;所述步驟1中將所述控制流發(fā)送至增強型TAP控制器進一步為,步驟31,所述軟件調試器通過TCK和TMS控制流控制TAP控制器的狀態(tài)機的轉移, 并在所述指令寄存器中標識增強控制寄存器被選中;步驟32,所述軟件調試器依據(jù)所述指令寄存器中的標識選擇所述增強控制寄存器 進行寫入,在所述增強控制寄存器的控制字段和目標調試核字段中寫入數(shù)據(jù)。所述步驟32還包括所述軟件調試器讀取所述增強控制寄存器中的值,以獲取所 述多核處理器的請求狀態(tài)。所述步驟2中所述增強型TAP控制器將所述控制流轉化為符合片上調試總線通訊協(xié) 議的數(shù)據(jù)包,通過調試總線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端進一步為,步驟51,所述增強型TAP控制器在TAP狀態(tài)機轉移到更新數(shù)據(jù)寄存器狀態(tài)時解析 增強控制寄存器的各個控制字段,按照片上調試通訊協(xié)議將所述控制字段打包為數(shù)據(jù)包;步驟52,所述增強型TAP控制器將所述數(shù)據(jù)包發(fā)送進入調試總線,按數(shù)據(jù)包的節(jié) 點號送至數(shù)據(jù)包的目的核。所述增強型TAP控制器包括增強控制寄存器;所述步驟4中所述增強型TAP控制器將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié) 議的控制流進一步為,步驟61,所述增強的TAP控制器分析接收的響應數(shù)據(jù),從數(shù)據(jù)中解析出請求節(jié)點 號、請求的類型和數(shù)據(jù)帶寬,在TAP狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)時,將所述請求節(jié)點 號、請求的類型和數(shù)據(jù)帶寬寫入所述增強控制寄存器。所述增強型TAP控制器還包括地址寄存器和調試數(shù)據(jù)寄存器,
所述步驟61還包括步驟71,在所述請求類型是讀請求時,從所述數(shù)據(jù)包的解析出地址;在所述請求 類型是寫請求時,從所述數(shù)據(jù)包中解析出地址和數(shù)據(jù);步驟72,在TAP狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)時,對于寫請求,將地址寫入地 址寄存器;對于寫請求,將地址寫入地址寄存器,將數(shù)據(jù)寫入數(shù)據(jù)寄存器。所述步驟4中所述軟件調試器通過所述增強型TAP控制器獲得所述控制流進一步 為,步驟81,所述軟件調試器通過JTAG協(xié)議輪詢增強控制寄存器,發(fā)現(xiàn)所述增強控制 寄存器中控制字段發(fā)生變化時,讀取所述增強控制寄存器中控制字段,將所述發(fā)生變化的 控制字段清除,并根據(jù)所述控制字段進行對應操作。本發(fā)明還公開了一種多核處理器的JTAG實時片上調試系統(tǒng),包括軟件調試器、 增強型TAP控制器、多個調試客戶端、和調試總線,多核處理器的每個核中具有一個所述調 試客戶端,所述軟件調試器,用于對被調試的多核處理器的核進行調試配置,生成符合JTAG 控制協(xié)議的控制命令,將所述控制命令轉化為控制流,將所述控制流發(fā)送至所述增強型TAP 控制器;所述增強型TAP控制器,用于將接收的所述控制流轉化為符合片上調試通訊協(xié)議 的數(shù)據(jù)包,通過調試總線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端;所述調試客戶端,用于將接收的所述數(shù)據(jù)包轉化為控制命令,響應所述控制命令 產生響應數(shù)據(jù),通過調試總線將響應數(shù)據(jù)返回給所述增強型TAP控制器;所述增強型TAP控制器,還用于將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控 制流;所述軟件調試器,還用于通過所述增強型TAP控制器獲得所述控制流。所述軟件調試器在對被調試的多核處理器的核進行調試配置時進一步用于對被 調測的多核處理器的每個核的調試客戶端進行如下調試配置中的一種或多種,設置硬件數(shù)據(jù)斷點、清除硬件數(shù)據(jù)斷點、設置硬件指令斷點、清除硬件指令斷點、 設置普通斷點、設置單步執(zhí)行、退出斷點。所述增強型TAP控制器包括指令寄存器和增強控制寄存器;所述增強型TAP控制器還包括TAP控制器;所述軟件調試器在將所述控制流發(fā)送至增強型TAP控制器時進一步用于通過TCK 和TMS控制流控制TAP控制器的狀態(tài)機的轉移,并在所述指令寄存器中標識增強控制寄存 器被選中;依據(jù)所述指令寄存器中的標識選擇所述增強控制寄存器進行寫入,在所述增強 控制寄存器的控制字段和目標調試核字段中寫入數(shù)據(jù)。所述軟件調試器在將所述控制流發(fā)送至增強型TAP控制器時還用于讀取所述增 強控制寄存器中的值,以獲取所述多核處理器的請求狀態(tài)。所述增強型TAP控制器在將所述控制流轉化為符合片上調試總線通訊協(xié)議的數(shù)據(jù)包,通過調試總線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端時進一步用于在 TAP狀態(tài)機轉移到更新數(shù)據(jù)寄存器狀態(tài)時解析增強控制寄存器的各個控制字段,按照片上 調試通訊協(xié)議將所述控制字段打包為數(shù)據(jù)包;將所述數(shù)據(jù)包發(fā)送進入調試總線,通過調試總線按數(shù)據(jù)包的節(jié)點號送至數(shù)據(jù)包的目的核。所述增強型TAP控制器包括增強控制寄存器;所述增強型TAP控制器在將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控制流時進一步用于分析接收的響應數(shù)據(jù),從數(shù)據(jù)中解析出請求節(jié)點號、請求的類型和數(shù)據(jù)帶寬, 在TAP狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)時,將所述請求節(jié)點號、請求的類型和請求帶寬 寫入所述增強控制寄存器。所述增強型TAP控制器還包括地址寄存器和調試數(shù)據(jù)寄存器,所述增強型TAP控制器還用于在所述請求類型是讀請求時,從所述數(shù)據(jù)包的解析 出地址;在所述請求類型是寫請求時,從所述數(shù)據(jù)包中解析出地址和數(shù)據(jù);在TAP狀態(tài)機轉 移到獲取數(shù)據(jù)寄存器狀態(tài)時,對于寫請求,將地址寫入地址寄存器;對于寫請求,將地址寫 入地址寄存器,將數(shù)據(jù)寫入數(shù)據(jù)寄存器。所述軟件調試器在通過所述增強型TAP控制器獲得所述控制流時進一步用于通 過JTAG協(xié)議輪詢所述增強控制寄存器,發(fā)現(xiàn)所述增強控制寄存器中控制字段發(fā)生變化時, 讀取所述增強控制寄存器中控制字段,將所述發(fā)生變化的控制字段清除,并根據(jù)所述控制 字段進行對應操作。本發(fā)明的有益效果在于,由于本發(fā)明的增強型TAP控制器具有將控制流和數(shù)據(jù)包 轉化的功能,能夠避免了現(xiàn)有技術中比特移位隨著多核處理器的核數(shù)目變化的問題,在多 核芯片調試結構有更好的通用性,在片上調試總線上可以鏈接無上限的核數(shù),能夠支持無 上限的核調試;通過對增強控制寄存器讀寫實現(xiàn)對多核處理器中的任意一個核的調試;使 用的調試通訊接口和調試原理與標準的JTAG調試方法相同,增強型TAP控制器屏蔽了與目 標核通訊的細節(jié),調試主機上的調試軟件將多核處理器視為單核心處理器進行調試,能夠 同現(xiàn)有調試軟件兼容;調試客戶端可以異步的通過片上調試總線傳輸信息回至增強型TAP 控制器,調試軟件能夠異步的得知核狀態(tài),克服現(xiàn)有技術中多核調試方法在核數(shù)過多時,輪 詢核狀態(tài)而產生不確定的時延的問題。
圖1是現(xiàn)有技術中采用菊花鏈方法對多核處理器進行調試時多個TAP控制器的連 接示意圖;圖2是現(xiàn)有技術中采用增加TLM方法對多核處理器進行調試時多個TAP的連接示 意圖;圖3是本發(fā)明多核處理器的JTAG實時片上調試方法的流程圖;圖4是本發(fā)明具體實施方式
中增強型TAP控制器的結構圖;圖5是本發(fā)明中ECR的字段的結構圖;圖6是本發(fā)明一實施例中數(shù)據(jù)包的格式的示意圖;圖7是本發(fā)明多核處理器的JTAG實時片上調試系統(tǒng)的結構圖;圖8是本發(fā)明多核處理器的JTAG實時片上調試系統(tǒng)的具體實施例的結構圖。
具體實施例方式下面結合附圖,對本發(fā)明做進一步的詳細描述。
本發(fā)明多核處理器的JTAG實時片上調試方法的流程如圖3所示。在多核處理器中有N個核,所有核都連入片上調試總線。增強型TAP控制器通過 IEEE 1194. 2的JTAG協(xié)議的硬件端口與上位機交互,通過片上的調試總線與多核處理器的 核中調試客戶端交互。本發(fā)明的方法具體包括如下步驟。 步驟S100,軟件調試器對被調試的多核處理器的核進行調試配置,生成符合JTAG 控制協(xié)議的控制命令,將所述控制命令轉化為控制流,將所述控制流發(fā)送至增強型TAP控 制器。軟件調試器針對多核處理器的每個核中的調試客戶端提供設置/清除硬件數(shù)據(jù) 斷點,設置/清除硬件指令斷點,設置普通斷點,設置單步執(zhí)行,退出斷點等功能。軟件調試器兼容IEEE 1149.1 JTAG控制協(xié)議,將控制命令轉化為控制流,控制流 包括TDI流、TMS流、TCK流。步驟S200,增強型TAP控制器將接收的所述控制流轉化為符合片上調試通訊協(xié)議 的數(shù)據(jù)包,通過調試總線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端。步驟S300,調試客戶端將接收的所述數(shù)據(jù)包轉化為控制命令,響應所述控制命令 產生響應數(shù)據(jù),通過調試總線將響應數(shù)據(jù)返回給所述增強型TAP控制器。步驟S400,增強型TAP控制器將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控制 流,所述軟件調試器通過增強型TAP控制器獲得所述控制流。本發(fā)明的方法的具體實施方式
如下所述。軟件調試器包括調試主機和仿真器,調試主機中具有調試軟件。調試主機通過控制流對多核處理器的控制依據(jù)IEEE 1149.1 JTAG協(xié)議進行。依據(jù) IEEE 1149. 1 JTAG協(xié)議,調試主機通過TCK流和TMS流控制增強型TAP控制器的狀態(tài)機的 狀態(tài)的轉移,通過IR(Instruction Register,指令寄存器)選擇特定的DR(數(shù)據(jù)寄存器), 并向對應已選定的DR,通過JTAG調試接口中的TDI端口,來完成值的輸入。在本發(fā)明一實施例中,增強型TAP控制器結構如圖4所示。增強型TAP控制器包括 JTAG調試接口、TAP控制器、指令寄存器和數(shù)據(jù)寄存器。其中,數(shù)據(jù)寄存器包括IEEE 1194. 1 的JTAG協(xié)議所規(guī)定的邊界掃描寄存器(Boundary-scan Register),旁路寄存器(Bypass Register),設備信息寄存器(Device-ID Register),地址寄存器,調試數(shù)據(jù)寄存器;以及 ECR(EnhanceControl Register,增強的控制寄存器)禾ΠDMR(Debug-Mode Register,調試模 式寄存器)。在JTAG邊界掃描調試結構中,JTAG調試接口為外圍輸入的接口。本發(fā)明在TAP控 制器中增添JTAG控制流翻譯成片上調試總線的數(shù)據(jù)包的功能,同時也增添了片上調試總 線的數(shù)據(jù)包轉JTAG數(shù)據(jù)流的功能。ECR為用于完成調試主機和增強型TAP控制器信息交流的寄存器。本發(fā)明把調試 主機的控制流轉化為對ECR寫/讀的操作,增強型TAP控制器根據(jù)更新的ECR的值翻譯為 相對應的片上調試網(wǎng)絡的數(shù)據(jù)包。同時,增強型TAP控制器在接收到片上調試總線返回的 數(shù)據(jù)包也會更新相應的ECR控制字段。ECR的功能與MIPS架構中的EJTAG的DCR(Debug Control Register,調試控制寄存器)功能兼容,在多核調試中可以復用MIPS架構的調試 軟件。
DMR的功能是指示所有核的狀態(tài),所述狀態(tài)包括正常運行狀態(tài)或調試狀態(tài),此信息 能隨時被軟件調試器查看。在本發(fā)明的ECR的字段結構如圖5所示。其中包括Psz (訪存的數(shù)據(jù)寬度標 志位),ProbenSucc (握手是否成功標志位),VPED (保留),DOZE (低功耗),Halt(內部 是否停時鐘),PerRst (外圍Reset),PRnff (讀/寫標志位),PrAcc (數(shù)據(jù)流向標志位), StoreSucc (成功存儲標志位),PrRst (處理器Reset標志位),Proben (主動與目標核握手 請求),ProbTrap (保留),LoadReturn (數(shù)據(jù)返回),Ejtagbrk (中斷的主動請求標志位), CoreicK正在通訊的目標核),其中VPED,DOZE, Halt, PerRst, PrRs, Proben, DM 為狀態(tài)位,用于與 MIPS 的 EJTAG 調試方法兼容。Probensucc 標識是否調試請求成功狀態(tài)寄存器;StoreSucc 標識是否成功寫入狀態(tài)寄存器;LoadReturn 標識是否成功讀出狀態(tài)寄存器;控制字段包括Ejtagbrk 表示要求調試中斷請求的控制寄存器;Proben 表示要求調試請求的控制寄存器;Coreid 表示正在調試的核的編號;PRnff 為O時表示是讀,為1時表示是寫;PrAcc 0表示從上位機到增強TAP控制器,1表示從增強TAP控制器到上位機;Prz 表示訪存的數(shù)據(jù)寬度。所述軟件調試器向增強型TAP控制器的TAP控制器發(fā)送控制流,以及所述增強型 TAP控制器將接收的所述控制流轉化為符合片上調試通訊協(xié)議的數(shù)據(jù)包,通過調試總線將 所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端的具體實施方式
下所述。步驟S110,所述軟件調試器調試主機的調試軟件通過仿真器產生符合JTAG協(xié)議 的控制流,通過TCK和TMS控制流控制TAP控制器的狀態(tài)機的轉移,并在IR中標識ECR被 選中。在IR中標識ECR被選中具體為在IR中存儲ECR對應的ID號。步驟S120,調試主機的調試軟件通過仿真器產生符合JTAG協(xié)議的控制流,依據(jù)所 述指令寄存器中的標識選擇ECR進行寫入,在ECR的控制字段,例如Jtagbrk或proben,和 core id字段中寫入數(shù)據(jù);并讀取ECR的值,以獲取所述多核處理器的請求狀態(tài)。步驟S130,增強型TAP控制器在TAP狀態(tài)機轉移到更新數(shù)據(jù)寄存器狀態(tài)(Update DR State)時解析ECR的各個控制字段,按照片上調試通訊協(xié)議將所述各個控制字段打包 為數(shù)據(jù)包。一實施例中數(shù)據(jù)包的格式如圖5所示,總共128個比特。步驟S140,增強型TAP控制器將所述數(shù)據(jù)包發(fā)送進入調試總線,按數(shù)據(jù)包的節(jié)點 號送至數(shù)據(jù)包的目的核。調試客戶端響應調試主機請求,返回符合片上調試協(xié)議的數(shù)據(jù)包,經(jīng)片上調試總線發(fā)送到增強型TAP控制器的接收端。所述增強型TAP控制器將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控制流,所述軟件調試器通過所述增強型TAP控制器的TAP控制器獲得所述控制流的具體實施方式
如 下所述。步驟S210,所述增強的TAP控制器分析接收的響應數(shù)據(jù),從數(shù)據(jù)中解析出請求節(jié) 點號,請求的類型和數(shù)據(jù)寬度,在TAP狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)(Capture-DR)時, 將所述請求節(jié)點號,請求的類型,和數(shù)據(jù)寬度(Prz)寫入ECR。圖6的數(shù)據(jù)包格式中,長度位中標識數(shù)據(jù)寬度。其中,請求的類型包括讀請求和寫請求兩種類型。核響應調試主機的控制命令,會 返回一個消息,可能是要求在調試主機請求指令,此時請求的類型為讀請求,或者往調試主 機發(fā)送數(shù)據(jù),此時請求的類型為寫請求。所述增強的TAP控制器接到由片上調試總線的數(shù)據(jù)包,如圖6所示。從數(shù)據(jù)包中 解析出節(jié)點號,請求類型,數(shù)據(jù)寬度。如果請求類型是讀請求,則從數(shù)據(jù)包的地址段解析地 址的值;如果請求類型是寫請求,則從數(shù)據(jù)包的數(shù)據(jù)位和地址位解析出地址和數(shù)據(jù)。在TAP 狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)(Capture-DR)時,將所述的請求節(jié)點號,請求的類型和 數(shù)據(jù)寬度寫入ECR相應位置Coreid,PrAcc, Prz ;對于寫請求將地址寫入地址寄存器;對于 寫請求,將地址寫入地址寄存器,將數(shù)據(jù)寫入調試數(shù)據(jù)寄存器。請求節(jié)點號為發(fā)送數(shù)據(jù)包的核的節(jié)點號。數(shù)據(jù)寬度為核讀或者寫調試主機的數(shù)據(jù)寬度,例如1字節(jié)/2字節(jié)/或者8字節(jié)。步驟S220,調試主機通過IEEE 1149. 1 JTAG協(xié)議輪詢ECR,發(fā)現(xiàn)ECR中控制字段 發(fā)生變化時,讀取ECR中控制字段,將ECR中發(fā)生變化的控制字段清除,并根據(jù)所述控制字 段表示的請求類型進行對應操作。如根據(jù)PRnW,表示的讀請求或寫請求,進行相應讀或者寫 控制。例如,發(fā)現(xiàn)ECR中控制字段PrAcc變化為1,表示有請求和上位機信息交;讀取ECR 中控制字段,將ECR中控制字段PrAcc位清除。把PrAcc清除的原因,下次輪詢的時候,如果PrAcc還為高,就會再次發(fā)出一次重
復操作。一舉例中,調試主機通過IEEE 1149.1 JTAG協(xié)議輪詢ECR,發(fā)現(xiàn)ECR中控制字段 PrAcc發(fā)生變化時,讀取ECR中Psz,PRnW。將ECR中控制字段PrAcc清除,并根據(jù)所述控 制字段PRnW,相應讀或者寫控制。如果是寫操作,讀取ECR中的Prz的數(shù)據(jù)寬度,讀取調試 數(shù)據(jù)寄存器和地址寄存器的值,調試主機根據(jù)地址,數(shù)據(jù)和數(shù)據(jù)寬度,生成一次數(shù)據(jù)存儲操 作;如果是讀操作,讀取ECR中的Prz數(shù)據(jù)寬度,讀取地址寄存器的值,調試主機根據(jù)地址和 數(shù)據(jù)寬度生成一次數(shù)據(jù)讀取操作。多核處理器的JTAG實時片上調試系統(tǒng)如圖7所示,包括軟件調試器100、增強型 TAP控制器200、多個調試客戶端300、和調試總線400,多核處理器的每個核中具有一個調 試客戶端300。軟件調試器100,用于對被調試的多核處理器的核進行調試配置,生成符合JTAG 控制協(xié)議的控制命令,將所述控制命令轉化為控制流,將所述控制流發(fā)送至所述增強型TAP 控制器200。軟件調試器100在對被調試的多核處理器的核進行調試配置時進一步用于對被 調測的多核處理器的每個核的調試客戶端300進行如下調試配置中的一種或多種,
設置硬件數(shù)據(jù)斷點、清除硬件數(shù)據(jù)斷點、設置硬件指令斷點、清除硬件指令斷點、設置普通斷點、設置單步執(zhí)行、退出斷點。增強型TAP控制器200包括指令寄存器和增強控制寄存器;所述增強型TAP控制器200還包括TAP控制器;軟件調試器100在將所述控制流發(fā)送至增強型TAP控制器200時進一步用于通過 TCK和TMS控制流控制TAP控制器的狀態(tài)機的轉移,并在所述指令寄存器中標識增強控制寄 存器被選中;依據(jù)所述指令寄存器中的標識選擇所述增強控制寄存器進行寫入,在所述增 強控制寄存器的控制字段和目標調試核字段中寫入數(shù)據(jù)。軟件調試器100在將所述控制流發(fā)送至增強型TAP控制器200時還用于讀取所述 增強控制寄存器中的值,以獲取所述多核處理器的請求狀態(tài)。增強型TAP控制器200,用于將接收的所述控制流轉化為符合片上調試通訊協(xié)議 的數(shù)據(jù)包,通過調試總線400將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端300。增強型TAP控制器200在將所述控制流轉化為符合片上調試總線400通訊協(xié)議的 數(shù)據(jù)包,通過調試總線400將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端300時進 一步用于在TAP狀態(tài)機轉移到更新數(shù)據(jù)寄存器狀態(tài)時解析增強控制寄存器的各個控制字 段,按照片上調試通訊協(xié)議將所述控制字段打包為數(shù)據(jù)包;將所述數(shù)據(jù)包發(fā)送進入調試總 線400,通過調試總線400按數(shù)據(jù)包的節(jié)點號送至數(shù)據(jù)包的目的核。調試客戶端300,用于將接收的所述數(shù)據(jù)包轉化為控制命令,響應所述控制命令產 生響應數(shù)據(jù),通過調試總線400將響應數(shù)據(jù)返回給增強型TAP控制器200。增強型TAP控制器200,還用于將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控 制流。增強型TAP控制器200在將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控制流 時進一步用于分析接收的響應數(shù)據(jù),從數(shù)據(jù)中解析出請求節(jié)點號、請求的類型和數(shù)據(jù)帶寬, 在TAP狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)時,將所述請求節(jié)點號、請求的類型和請求帶寬 寫入所述增強控制寄存器。所述增強型TAP控制器還包括地址寄存器和調試數(shù)據(jù)寄存器,所述增強型TAP控制器還用于在所述請求類型是讀請求時,從所述數(shù)據(jù)包的解析 出地址;在所述請求類型是寫請求時,從所述數(shù)據(jù)包中解析出地址和數(shù)據(jù);在TAP狀態(tài)機轉 移到獲取數(shù)據(jù)寄存器狀態(tài)時,對于寫請求,將地址寫入地址寄存器;對于寫請求,將地址寫 入地址寄存器,將數(shù)據(jù)寫入數(shù)據(jù)寄存器。軟件調試器100,還用于通過增強型TAP控制器200獲得所述控制流。軟件調試器100在通過增強型TAP控制器200獲得所述控制流時進一步用于通過 JTAG協(xié)議輪詢所述增強控制寄存器,發(fā)現(xiàn)所述增強控制寄存器中控制字段發(fā)生變化時,讀 取所述增強控制寄存器中控制字段,將所述發(fā)生變化的控制字段清除,并根據(jù)所述控制字 段進行對應操作。如果控制字段表示請求類型是寫操作,則讀取ECR中的數(shù)據(jù)寬度,讀取調試數(shù)據(jù) 寄存器和地址寄存器的值,調試主機根據(jù)地址,數(shù)據(jù)和數(shù)據(jù)寬度生成一次數(shù)據(jù)存儲操作;如 果控制字段表示請求類型是讀操作,則讀取ECR中的數(shù)據(jù)寬度,讀取地址寄存器的值,調試 主機根據(jù)地址和數(shù)據(jù)寬度生成一次數(shù)據(jù)讀取操作。
本發(fā)明多核處理器的JTAG實時片上調試系統(tǒng)的具體實施例的結構如圖8所示。其 中,軟件調試器100包括仿真器120和調試主機110,仿真器120通過JTAG調試接口 121同 增強型TAP控制器200連接。調試主機110上具有調試軟件。增強型TAP控制器200的具 體實施方式如圖4所示。其中,調試軟件兼容1119. 1JTAG協(xié)議控制流程。增強型TAP控制器200將軟件調 試器100傳送的標準JTAG控制流轉化為符合片上調試總線400通訊協(xié)議的數(shù)據(jù)包,并發(fā)往 需要被調試的處理器核的調試客戶端300。增強型TAP控制器200接收核的調試客戶端300 返回的符合片上調試總線400通訊協(xié)議的消息,并將其轉化為標準JTAG控制流,與調試主 機的調試軟件交互。調試客戶端300接收片上調試總線400送來的調試命令,并能將反饋 消息傳送進入片上調試總線400,核的調試客戶端300將狀態(tài)信息主動的通過片上調試總 線400發(fā)送給增強型TAP控制器200。對該實施例的具體說明如下。軟件調試器100的調試軟件查看在多核處理器中的每個核的運行狀態(tài),如核 是否處在運行狀態(tài),是否處在調試狀態(tài)下,查看核的調試客戶端300設定的指令斷點 PC (Program Counter,程序計數(shù)器)的值,查看核的調試客戶端300設定的數(shù)據(jù)斷點的地 址值,并且向用戶提供能向每個核的調試客戶端300發(fā)送中斷,單步調試,設置/去除數(shù)據(jù) 指令斷點,跳過斷點的功能。該軟件調試器100負責將這些功能的輸入轉化為標準的IEEE 1149. 1 JTAG 控制流。調試軟件接收由增強型TAP控制器200返回的標準JTAG控制流,通過控制流的信 息更新調試軟件中各個核的狀態(tài),或發(fā)出下一次有效控制信息,與需要調試的目標核調試 客戶端300交互。增強型TAP控制器200,位于多核處理器上。增強型TAP控制器200兼容IEEE 1149. 1 JTAG協(xié)議,把標準JTAG控制流翻譯為符合片上調試總線400通訊協(xié)議的數(shù)據(jù)包,并 將其發(fā)送到片上調試總線400上,也用于把從片上調試總線400接收到的數(shù)據(jù)包,翻譯為標 準的JTAG控制流,與軟件調試器100交互。調試總線400為由片內功能時鐘驅動的同步邏輯數(shù)據(jù)寬度可變的單向總線,每個 核掛載在片上總線的一個節(jié)點上,增強的TAP控制器200掛載在總線的起始節(jié)點和終止節(jié) 點。片上調試總線400通訊方式遵從片上調試通訊協(xié)議。調試客戶端300接收由片上調試總線400上發(fā)送來的數(shù)據(jù)包,能解析數(shù)據(jù)包,把數(shù) 據(jù)包數(shù)據(jù)轉化為控制命令,相應控制命令,并把響應數(shù)據(jù)包放入片上調試總線400。該部分 通訊遵從片上調試通訊協(xié)議。本領域的技術人員在不脫離權利要求書確定的本發(fā)明的精神和范圍的條件下,還 可以對以上內容進行各種各樣的修改。因此本發(fā)明的范圍并不僅限于以上的說明,而是由 權利要求書的范圍來確定的。
權利要求
一種多核處理器的JTAG實時片上調試方法,其特征在于,包括步驟1,軟件調試器對被調試的多核處理器的核進行調試配置,生成符合JTAG控制協(xié)議的控制命令,將所述控制命令轉化為控制流,將所述控制流發(fā)送至增強型TAP控制器;步驟2,所述增強型TAP控制器將接收的所述控制流轉化為符合片上調試通訊協(xié)議的數(shù)據(jù)包,通過調試總線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端;步驟3,所述調試客戶端將接收的所述數(shù)據(jù)包轉化為控制命令,響應所述控制命令產生響應數(shù)據(jù),通過調試總線將響應數(shù)據(jù)返回給所述增強型TAP控制器;步驟4,所述增強型TAP控制器將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控制流,所述軟件調試器通過所述增強型TAP控制器獲得所述控制流。
2.如權利要求1所述的多核處理器的JTAG實時片上調試方法,其特征在于, 所述步驟1中軟 件調試器對被調試的多核處理器的核進行調試配置進一步為,步驟21,軟件調試器針對被調測的多核處理器的每個核的調試客戶端進行如下調試配 置中的一種或多種,設置硬件數(shù)據(jù)斷點、清除硬件數(shù)據(jù)斷點、設置硬件指令斷點、清除硬件指令斷點、設置 普通斷點、設置單步執(zhí)行、退出斷點。
3.如權利要求1所述的多核處理器的JTAG實時片上調試方法,其特征在于, 所述增強型TAP控制器包括指令寄存器和增強控制寄存器;所述增強型TAP控制器還包括TAP控制器; 所述步驟1中將所述控制流發(fā)送至增強型TAP控制器進一步為, 步驟31,所述軟件調試器通過TCK和TMS控制流控制TAP控制器的狀態(tài)機的轉移,并在 所述指令寄存器中標識增強控制寄存器被選中;步驟32,所述軟件調試器依據(jù)所述指令寄存器中的標識選擇所述增強控制寄存器進行 寫入,在所述增強控制寄存器的控制字段和目標調試核字段中寫入數(shù)據(jù)。
4.如權利要求3所述的多核處理器的JTAG實時片上調試方法,其特征在于,所述步驟32還包括所述軟件調試器讀取所述增強控制寄存器中的值,以獲取所述多 核處理器的請求狀態(tài)。
5.如權利要求3所述的多核處理器的JTAG實時片上調試方法,其特征在于,所述步驟 2中所述增強型TAP控制器將所述控制流轉化為符合片上調試總線通訊協(xié)議的數(shù)據(jù)包,通 過調試總線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端進一步為,步驟51,所述增強型TAP控制器在TAP狀態(tài)機轉移到更新數(shù)據(jù)寄存器狀態(tài)時解析增強 控制寄存器的各個控制字段,按照片上調試通訊協(xié)議將所述控制字段打包為數(shù)據(jù)包;步驟52,所述增強型TAP控制器將所述數(shù)據(jù)包發(fā)送進入調試總線,按數(shù)據(jù)包的節(jié)點號 送至數(shù)據(jù)包的目的核。
6.如權利要求1所述的多核處理器的JTAG實時片上調試方法,其特征在于, 所述增強型TAP控制器包括增強控制寄存器;所述步驟4中所述增強型TAP控制器將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的 控制流進一步為,步驟61,所述增強的TAP控制器分析接收的響應數(shù)據(jù),從數(shù)據(jù)中解析出請求節(jié)點號、請 求的類型和數(shù)據(jù)帶寬,在TAP狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)時,將所述請求節(jié)點號、請求的類型和數(shù)據(jù)帶寬寫入所述增強控制寄存器。
7.如權利要求6所述的多核處理器的JTAG實時片上調試方法,其特征在于,所述增強型TAP控制器還包括地址寄存器和調試數(shù)據(jù)寄存器,所述步驟61還包括步驟71,在所述請求類型是讀請求時,從所述數(shù)據(jù)包的解析出地址;在所述請求類型 是寫請求時,從所述數(shù)據(jù)包中解析出地址和數(shù)據(jù);步驟72,在TAP狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)時,對于寫請求,將地址寫入地址寄 存器;對于寫請求,將地址寫入地址寄存器,將數(shù)據(jù)寫入數(shù)據(jù)寄存器。
8.如權利要求6所述的多核處理器的JTAG實時片上調試方法,其特征在于,所述步驟4中所述軟件調試器通過所述增強型TAP控制器獲得所述控制流進一步為, 步驟81,所述軟件調試器通過JTAG協(xié)議輪詢增強控制寄存器,發(fā)現(xiàn)所述增強控制寄存 器中控制字段發(fā)生變化時,讀取所述增強控制寄存器中控制字段,將所述發(fā)生變化的控制 字段清除,并根據(jù)所述控制字段進行對應操作。
9.一種多核處理器的JTAG實時片上調試系統(tǒng),其特征在于,包括軟件調試器、增強型 TAP控制器、多個調試客戶端、和調試總線,多核處理器的每個核中具有一個所述調試客戶 端,所述軟件調試器,用于對被調試的多核處理器的核進行調試配置,生成符合JTAG控制 協(xié)議的控制命令,將所述控制命令轉化為控制流,將所述控制流發(fā)送至所述增強型TAP控 制器;所述增強型TAP控制器,用于將接收的所述控制流轉化為符合片上調試通訊協(xié)議的數(shù) 據(jù)包,通過調試總線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端;所述調試客戶端,用于將接收的所述數(shù)據(jù)包轉化為控制命令,響應所述控制命令產生 響應數(shù)據(jù),通過調試總線將響應數(shù)據(jù)返回給所述增強型TAP控制器;所述增強型TAP控制器,還用于將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控制流;所述軟件調試器,還用于通過所述增強型TAP控制器獲得所述控制流。
10.如權利要求9所述的多核處理器的JTAG實時片上調試系統(tǒng),其特征在于, 所述軟件調試器在對被調試的多核處理器的核進行調試配置時進一步用于對被調測的多核處理器的每個核的調試客戶端進行如下調試配置中的一種或多種,設置硬件數(shù)據(jù)斷點、清除硬件數(shù)據(jù)斷點、設置硬件指令斷點、清除硬件指令斷點、設置 普通斷點、設置單步執(zhí)行、退出斷點。
11.如權利要求9所述的多核處理器的JTAG實時片上調試系統(tǒng),其特征在于, 所述增強型TAP控制器包括指令寄存器和增強控制寄存器;所述增強型TAP控制器還包括TAP控制器;所述軟件調試器在將所述控制流發(fā)送至增強型TAP控制器時進一步用于通過TCK和 TMS控制流控制TAP控制器的狀態(tài)機的轉移,并在所述指令寄存器中標識增強控制寄存器 被選中;依據(jù)所述指令寄存器中的標識選擇所述增強控制寄存器進行寫入,在所述增強控 制寄存器的控制字段和目標調試核字段中寫入數(shù)據(jù)。
12.如權利要求11所述的多核處理器的JTAG實時片上調試系統(tǒng),其特征在于,所述軟件調試器在將所述控制流發(fā)送至增強型TAP控制器時還用于讀取所述增強控 制寄存器中的值,以獲取所述多核處理器的請求狀態(tài)。
13.如權利要求11所述的多核處理器的JTAG實時片上調試系統(tǒng),其特征在于,所述增 強型TAP控制器在將所述控制流轉化為符合片上調試總線通訊協(xié)議的數(shù)據(jù)包,通過調試總 線將所述數(shù)據(jù)包發(fā)送給多核處理器的核中的調試客戶端時進一步用于在TAP狀態(tài)機轉移 到更新數(shù)據(jù)寄存器狀態(tài)時解析增強控制寄存器的各個控制字段,按照片上調試通訊協(xié)議將 所述控制字段打包為數(shù)據(jù)包;將所述數(shù)據(jù)包發(fā)送進入調試總線,通過調試總線按數(shù)據(jù)包的 節(jié)點號送至數(shù)據(jù)包的目的核。
14.如權利要求9所述的多核處理器的JTAG實時片上調試系統(tǒng),其特征在于, 所述增強型TAP控制器包括增強控制寄存器;所述增強型TAP控制器在將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控制流時 進一步用于分析接收的響應數(shù)據(jù),從數(shù)據(jù)中解析出請求節(jié)點號、請求的類型和數(shù)據(jù)帶寬,在 TAP狀態(tài)機轉移到獲取數(shù)據(jù)寄存器狀態(tài)時,將所述請求節(jié)點號、請求的類型和請求帶寬寫入 所述增強控制寄存器。
15.如權利要求14所述的多核處理器的JTAG實時片上調試方法,其特征在于,所述增強型TAP控制器還包括地址寄存器和調試數(shù)據(jù)寄存器,所述增強型TAP控制器還用于在所述請求類型是讀請求時,從所述數(shù)據(jù)包的解析出地 址;在所述請求類型是寫請求時,從所述數(shù)據(jù)包中解析出地址和數(shù)據(jù);在TAP狀態(tài)機轉移到 獲取數(shù)據(jù)寄存器狀態(tài)時,對于寫請求,將地址寫入地址寄存器;對于寫請求,將地址寫入地 址寄存器,將數(shù)據(jù)寫入數(shù)據(jù)寄存器。
16.如權利要求14所述的多核處理器的JTAG實時片上調試系統(tǒng),其特征在于,所述軟件調試器在通過所述增強型TAP控制器獲得所述控制流時進一步用于通過JTAG協(xié)議輪詢所述增強控制寄存器,發(fā)現(xiàn)所述增強控制寄存器中控制字段發(fā)生變化時,讀 取所述增強控制寄存器中控制字段,將所述發(fā)生變化的控制字段清除,并根據(jù)所述控制字 段進行對應操作。
全文摘要
本發(fā)明涉及多核處理器的JTAG實時片上調試方法及其系統(tǒng),方法包括步驟1,軟件調試器對被調試的多核處理器的核,生成符合JTAG控制協(xié)議的控制命令,轉化為控制流,發(fā)送至增強型TAP控制器;步驟2,增強型TAP控制器將接收的控制流轉化為符合片上調試通訊協(xié)議的數(shù)據(jù)包,通過調試總線發(fā)送給調試客戶端;步驟3,調試客戶端將接收的數(shù)據(jù)包轉化為控制命令,響應控制命令產生響應數(shù)據(jù),通過調試總線返回給增強型TAP控制器;步驟4,增強型TAP控制器將接收的響應數(shù)據(jù)轉化為符合JTAG控制協(xié)議的控制流,軟件調試器通過所述增強型TAP控制器獲得所述控制流。本發(fā)明能夠對多核處理器進行調試,而不受多核處理器的核的數(shù)量的制約。
文檔編號G06F11/267GK101840368SQ201010135260
公開日2010年9月22日 申請日期2010年3月26日 優(yōu)先權日2010年3月26日
發(fā)明者張 浩, 徐衛(wèi)東, 焦帥, 范東睿, 雷崢蒙 申請人:中國科學院計算技術研究所