多核芯片高速debug方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種多核芯片高速debug方法。
【背景技術(shù)】
[0002]隨著SOC芯片技術(shù)的迅速發(fā)展,CPU的頻率越來越快,而目前的debug手段還是傳統(tǒng)的jtag連接或者uart串口連接等方法。由于帶寬低,造成debug問題時,只能讓CPU運行在較低的頻率,才能通過debug 口實時觀察到debug信息。如果問題是CPU處于高頻時才能出現(xiàn),目前的debug手段很難滿足要求,如果使用高速的并口進(jìn)行debug,又會占用大量的1 口,造成有效1資源不足。所以設(shè)計一種占用1少,同時又具有通用高性能特點的debug方法是非常有意義的。
[0003]MIPI 就是移動產(chǎn)業(yè)處理器接口,是Mobile Industry Processor Interface 的縮寫,過去?;谖锢韺拥腄-PHY用于攝像頭串行接口(CSI)和顯示器串行接口(DSI)。
[0004]原先的MIPI物理層是D-PHY,但在行業(yè)中已經(jīng)開始向名為M-PHY的下一代物理層過渡,M-PHY相較D-PHY使用更少的引腳,但是能提供更多的選擇和更靈活快速的信號傳輸,傳輸速率可達(dá)6GB/Sec。與CSI和DSI在D-PHY層之上的概念一樣,各種高層協(xié)議共享M-PHY0
[0005]統(tǒng)一協(xié)議(UniPro)規(guī)范為移動設(shè)備等消費電子產(chǎn)品內(nèi)部設(shè)備和元器件之間的互聯(lián)定義了一個分層協(xié)議,它適用于包括應(yīng)用處理器、協(xié)處理器、調(diào)制解調(diào)器等器件以及像控制信號、批量數(shù)據(jù)傳輸、打包流等數(shù)據(jù)傳輸.在M-PHY進(jìn)行傳輸?shù)那昂?,需要轉(zhuǎn)換為unipro協(xié)議進(jìn)行處理。
[0006]隨著SOC芯片技術(shù)的迅速發(fā)展,CPU的頻率越來越快,而目前的debug手段還是傳統(tǒng)的jtag連接或者uart串口連接等方法,由于帶寬低,造成debug問題時,只能讓CPU運行在較低的頻率才能通過debug 口實時觀察到debug信息;如果問題是CPU處于高頻時才能出現(xiàn),目前的debug手段很難滿足要求;如果使用高速的并口進(jìn)行debug,又會占用大量的1 口,造成有效1資源不足。所以設(shè)計一種占用1少,同時又具有通用高性能特點的debug方法是非常有意義的。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)問題,在于提供一種多核芯片高速debug方法和裝置,不僅占用1少,同時又具有通用高性能特點。
[0008]本發(fā)明方法是這樣實現(xiàn)的:一種多核芯片高速debug方法,其包括:
[0009]步驟10、對待debug的soc多核芯片中的每個CPU進(jìn)行監(jiān)視,當(dāng)CPU—旦出現(xiàn)程序指針變化、或者讀寫操作時,就采集一次該CPU的debug信息,包括運行指針,運行程序內(nèi)容,讀取和寫入數(shù)據(jù)的值,同時定時輸出一個時間戳的值;
[0010]步驟20、把每個CPU的debug信息和時間戳值按照固定的格式進(jìn)行打包,得到debug數(shù)據(jù)包,并把debug數(shù)據(jù)包轉(zhuǎn)換為unipro協(xié)議傳輸;
[0011]步驟30、所有CPU對應(yīng)的unipro協(xié)議傳輸匯總后送往MIPI Μ-PHY,匯總時給每個CPU的debug信息增加一個唯一的ID標(biāo)簽;然后通過發(fā)送通道的兩個1輸出模擬高速差分信號,送往debug解調(diào)電路中的MIPI M-PHY ;
[0012]步驟40、debug解調(diào)電路中的MIPI M-PHY通過接收通道的兩個1接收所述模擬高速差分信號,然后轉(zhuǎn)換為數(shù)字信號的unipro協(xié)議數(shù)據(jù),根據(jù)debug數(shù)據(jù)包的ID標(biāo)簽將匯總的debug信息重新分開為每個CPU的debug信息包,并轉(zhuǎn)換為原始的debug信息包的固定格式;
[0013]步驟50、將debug信息解包,分解出運行指針、運行程序內(nèi)容、讀取和寫入數(shù)據(jù)的值以及時間戳信息,并把這些信息送往對應(yīng)CPU的debug信息池供工作人員分析。
[0014]進(jìn)一步的,所述固定的格式是:數(shù)據(jù)包頭為時間戳,然后緊跟著運行指針,運行程序,讀數(shù)據(jù)、寫數(shù)據(jù)。
[0015]進(jìn)一步的,所述步驟10中和時間戳的值為一個持續(xù)累加的值,每隔固定時間就累加I。
[0016]本發(fā)明裝置是這樣實現(xiàn)的:一種多核芯片高速debug裝置,包括soc多核芯片電路和debug解調(diào)電路;
[0017]所述soc多核芯片電路包括復(fù)數(shù)個CPU監(jiān)視器、一時間戳控制器、復(fù)數(shù)個信息打包單元、復(fù)數(shù)個unipro協(xié)議轉(zhuǎn)換單元、一第一 Unipro控制器、一第一 MIPI M-PHY以及一發(fā)送通道;soc多核芯片中的每個CPU均依次連接一 CPU監(jiān)視器、一信息打包單元、一 unipro協(xié)議轉(zhuǎn)換單元,且所述復(fù)數(shù)個CPU監(jiān)視器均連接所述時間戳控制器,所述復(fù)數(shù)個unipro協(xié)議轉(zhuǎn)換單元均依次連接第一 Unipro控制器和第一 MIPI M-PHY以及發(fā)送通道;
[0018]所述debug解調(diào)電路包括一接收通道、一第二MIPI M-PHY、第二Unipro控制器、復(fù)數(shù)個unipro協(xié)議逆轉(zhuǎn)換單元、復(fù)數(shù)個信息解包單元以及復(fù)數(shù)個debug信息池;所述接收通道、第二 MIPI M-PHY、第二 Unipro控制器依次連接,所述第二 Unipro控制器分別連接復(fù)數(shù)個unipro協(xié)議逆轉(zhuǎn)換單元,且復(fù)數(shù)個unipro協(xié)議逆轉(zhuǎn)換單元、復(fù)數(shù)個信息解包單元以及復(fù)數(shù)個debug信息池--對應(yīng)連接;其中,
[0019]所述soc多核芯片電路中的復(fù)數(shù)個CPU監(jiān)視器對待debug的soc多核芯片中的每個CPU進(jìn)行一一監(jiān)視,當(dāng)CPU —旦出現(xiàn)程序指針變化、或者讀寫操作時,就采集一次該CPU的debug信息,包括運行指針,運行程序內(nèi)容,讀取和寫入數(shù)據(jù)的值,并和時間戳控制器輸出的時間戳值一起送往信息打包單元,同時通過所述時間戳控制器定時輸出一個時間戳的值;這個時間戳值和每個CPU監(jiān)視器的debug信息一起送往對應(yīng)的信息打包單元;所述信息打包單元把對應(yīng)CPU的debug信息和時間戳值按照固定的格式進(jìn)行打包,得到debug數(shù)據(jù)包,并把debug數(shù)據(jù)包送往unipro協(xié)議轉(zhuǎn)換單元,unipro協(xié)議轉(zhuǎn)換單元把每個CPU的debug數(shù)據(jù)包轉(zhuǎn)換為unipro協(xié)議傳輸,并送往第一 Unipro控制器;所述第一 Unipro控制器將所有CPU對應(yīng)的unipro協(xié)議轉(zhuǎn)換單元的輸出匯總后送往第一 MIPI Μ-PHY,匯總時給每個CPU的debug信息增加一個唯一的ID標(biāo)簽;然后第一 MIPI M-PHY將unipro協(xié)議數(shù)據(jù)通過發(fā)送通道的兩個10輸出模擬高速差分信號,送往debug解調(diào)電路中的MIPI M-PHY ;
[0020]所述debug解調(diào)電路中的第二 MIPI M-PHY通過接收通道的兩個10接收所述模擬高速差分信號,然后轉(zhuǎn)換為數(shù)字信號的unipix)協(xié)議數(shù)據(jù)送往第二 unipro控制器,第二Unipro控制器根據(jù)debug數(shù)據(jù)包的ID標(biāo)簽將匯總的debug信息重新分開為每個CPU的debug信息包送往unipro協(xié)議逆轉(zhuǎn)換單元,送往unipro協(xié)議逆轉(zhuǎn)換單元把使用unipro協(xié)議傳輸?shù)膁ebug信息包轉(zhuǎn)換為原始的debug信息包的固定格式,并把原始的debug信息包送往信息解包單元;信息解包單元將debug信息解包,分解出運行指針、運行程序內(nèi)容、讀取和寫入數(shù)據(jù)的值以及時間戳信息,并把這些信息送往對應(yīng)CPU的debug信息池供工作人員分析。
[0021]進(jìn)一步的,所述固定的格式是:數(shù)據(jù)包頭為時間戳,然后緊跟著運行指針,運行程序,讀數(shù)據(jù)、寫數(shù)據(jù)。
[0022]進(jìn)一步的,所述時間戳的值為一個持續(xù)累加的值,每隔固定時間就累加I。
[0023]本發(fā)明具有如下優(yōu)點:
[0024]1.本發(fā)明MIPI M-PHY的高帶寬保證了多核CPU可以在全速運行狀態(tài)下進(jìn)行debug,大量的CPU狀態(tài)信息可以實時通過M-PHY傳輸出SOC芯片;
[0025]2.本發(fā)明debug信息包括PC指針、時間戳信息、運行命令、讀取和寫入的數(shù)據(jù)信息以及CPU的運行狀態(tài)位信息,綜合全面;
[0026]3.本發(fā)明時間戳的設(shè)計,在每個CPU的每次debug信息包中都帶有一個時間值,通過這個時間戳值可以很清晰的判斷debug信息包之間的先后關(guān)系,可以很好的解決目前多核并行運行過程的debug中,獨立打印每個CPU的信息值,難以判斷每個CPU運行之間的先后關(guān)系的冋題。
【附圖說明】
[0027]下面參照附圖結(jié)合實施例對本發(fā)明作進(jìn)一步的說明。
[0028]圖1為本發(fā)明裝置的結(jié)構(gòu)框圖。
【具體實施方式】
[0029]由于soc多核芯片中的每個CPU都可以獨立執(zhí)行程序,可以多核并行工作,因此,本發(fā)明的多核芯片高速debug方法可以對每個CPU進(jìn)行debug,當(dāng)debug電路開始工作后,每個CPU—旦出現(xiàn)程序指針變化,或者讀寫操作,對應(yīng)的CPU監(jiān)視器就會采集一次該CPU的debug信息,然后混合時間戳信息打包經(jīng)過處理后送往debug解調(diào)電路,然后經(jīng)過逆處理過程解碼后送往對應(yīng)CPU的debug信息池,然后debug軟件可以將每個CPU的debug信息池的內(nèi)容實時更新到顯示屏幕上供工作人員進(jìn)行分析,具體包括下述步驟:
[0030]步驟10、對待debug的soc多核芯片中的每個CPU進(jìn)行監(jiān)視,當(dāng)CPU—旦出現(xiàn)程序指針變化、或者讀寫操作時,就采集一次該CPU的debug信息,包括運行指針,運行程序內(nèi)容,讀取和寫入數(shù)據(jù)的值,同時定時輸出一個時間戳的值,該時間戳的值為一個持續(xù)累加的值,每隔固定時間就累加I ;
[0031]步驟20、把每個CPU的debug信息和時間戳值按照固定的格式進(jìn)行打包,得到debug數(shù)據(jù)包,并把debug數(shù)據(jù)包轉(zhuǎn)換為unipro協(xié)議傳輸;所述固定的格式是:數(shù)據(jù)包頭為時間戳,然后緊跟著運行指針,運行程序,讀數(shù)據(jù)、寫數(shù)據(jù);
[0032]步驟30、所有CPU對應(yīng)的unipro協(xié)議傳輸匯總后送往MIPI Μ-PHY,匯總時給每個CPU的debug信息增加一個唯一的ID標(biāo)簽;然后通過發(fā)送通道的兩個10輸出模擬高速差分信號,送往debug解調(diào)電路中的MIPI M-PHY ;
[0033]步驟40、debug解調(diào)電路中的MIPI M-PHY通過接收通道的兩個1接收所述模擬高速差分信號,然后轉(zhuǎn)換為數(shù)字信號的unipro協(xié)議數(shù)據(jù),根據(jù)debug數(shù)據(jù)包的ID標(biāo)簽將匯總的debug信息重新分開為每個CPU的debug信息包,并轉(zhuǎn)換為原始的debug信息包的固定格式;