USB type-C 高速debug方法及裝置的制造方法
【專利說明】
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種SOC芯片,特別是涉及一種SOC芯片的debug方法。
【【背景技術(shù)】】
[0002]隨著SOC芯片技術(shù)的迅速發(fā)展,CPU的頻率越來越快,而目前的debug手段還是傳統(tǒng)的jtag連接或者uart串口連接等方法。由于帶寬低,造成debug問題時(shí),只能讓CPU運(yùn)行在較低的頻率,才能通過debug 口實(shí)時(shí)觀察到debug信息,如果問題是CPU處于高頻時(shí)才能出現(xiàn),目前的debug手段很難滿足要求。如果使用高速的并口進(jìn)行debug,又會(huì)占用大量的1 口,造成有效1資源不足。所以設(shè)計(jì)一種占用1少,同時(shí)又具有通用高性能特點(diǎn)的debug方法是非常有意義的。
[0003]在移動(dòng)設(shè)備越來越小型化,輕薄化的趨勢下,過去笨重的debug設(shè)備和并行接口已經(jīng)不能滿足當(dāng)前的需要。同時(shí)移動(dòng)設(shè)備運(yùn)行速度也越來越快,cpu個(gè)數(shù)越來越多,過去慢速的debug接口也不能滿足高速的需求,所以設(shè)計(jì)一種輕薄方便且高速穩(wěn)定的debug方式是非常有意義的。
[0004]USB使用高速差分對信號進(jìn)行傳輸,只需要2根差分線線就能完成數(shù)據(jù)傳輸,同時(shí)type-C保證了 usb物理接口更加輕巧,適應(yīng)小型和輕薄的移動(dòng)設(shè)備,同時(shí)雙面可以隨便插入也是一大優(yōu)勢,因此本發(fā)明提出了使用USB type-C接口作為debug的接口,不僅占用接口很少,并且?guī)挿浅8?,完全可以滿足多核高速CPU的debug實(shí)時(shí)數(shù)據(jù)流量需求。
【
【發(fā)明內(nèi)容】
】
[0005]本發(fā)明要解決的技術(shù)問題,在于提供一種USB type-C高速debug方法和裝置,使用USB type-C接口作為debug的接口,不僅占用接口很少,并且?guī)挿浅8?,完全可以滿足多核高速CPU的debug實(shí)時(shí)數(shù)據(jù)流量需求。
[0006]本發(fā)明方法是這樣實(shí)現(xiàn)的:一種USB type-C高速debug方法,包括:
[0007]步驟10、對待debug的soc多核芯片中的每個(gè)CPU進(jìn)行監(jiān)視,當(dāng)CPU —旦出現(xiàn)程序指針變化、或者讀寫操作時(shí),就采集一次該CPU的debug信息,包括運(yùn)行指針,運(yùn)行程序內(nèi)容,讀取和寫入數(shù)據(jù)的值,同時(shí)定時(shí)輸出一個(gè)時(shí)間戳的值;
[0008]步驟20、把每個(gè)CPU的debug信息和時(shí)間戳值按照固定的格式進(jìn)行打包,得到debug數(shù)據(jù)包,并把debug數(shù)據(jù)包轉(zhuǎn)換為USB協(xié)議傳輸;
[0009]步驟30、所有CPU對應(yīng)的USB協(xié)議傳輸匯總USB TYPE-C PHY接口數(shù)據(jù)格式后后送往USB TYPE-C PHY,匯總時(shí)給每個(gè)CPU的debug信息增加一個(gè)唯一的ID標(biāo)簽;然后通過發(fā)送通道的兩個(gè)1輸出模擬高速差分信號,送往debug解調(diào)電路中的USB TYPE-C PHY ;
[0010]步驟40、debug解調(diào)電路中的USB TYPE-C PHY通過接收通道的兩個(gè)1接收所述模擬高速差分信號,然后轉(zhuǎn)換為數(shù)字信號,根據(jù)debug數(shù)據(jù)包的ID標(biāo)簽將匯總的debug信息重新分開為每個(gè)CPU的debug信息包,并轉(zhuǎn)換為原始的debug信息包的固定格式;
[0011]步驟50、將debug信息解包,分解出運(yùn)行指針、運(yùn)行程序內(nèi)容、讀取和寫入數(shù)據(jù)的值以及時(shí)間戳信息,并把這些信息送往對應(yīng)CPU的debug信息池供工作人員分析。
[0012]本發(fā)明裝置是這樣實(shí)現(xiàn)的:一種USB type-C高速debug裝置,包括soc多核芯片電路和debug解調(diào)電路;
[0013]所述soc多核芯片電路包括復(fù)數(shù)個(gè)CPU監(jiān)視器、一時(shí)間戳控制器、復(fù)數(shù)個(gè)信息打包單元、復(fù)數(shù)個(gè)USB協(xié)議轉(zhuǎn)換單元、一 USB數(shù)字調(diào)制控制器、一第一 USB TYPE-C PHY以及一發(fā)送通道;soc多核芯片中的每個(gè)CPU均依次連接一 CPU監(jiān)視器、一信息打包單元、一 USB協(xié)議轉(zhuǎn)換單元,且所述復(fù)數(shù)個(gè)CPU監(jiān)視器均連接所述時(shí)間戳控制器,所述復(fù)數(shù)個(gè)USB協(xié)議轉(zhuǎn)換單元均依次連接USB數(shù)字調(diào)制控制器和第一 USB TYPE-C PHY以及發(fā)送通道;
[0014]所述debug解調(diào)電路包括一接收通道、一第二 USB TYPE-C PHY、USB數(shù)字解調(diào)控制器、復(fù)數(shù)個(gè)USB協(xié)議逆轉(zhuǎn)換單元、復(fù)數(shù)個(gè)信息解包單元以及復(fù)數(shù)個(gè)debug信息池;所述接收通道、第二 USB TYPE-C PHY、USB數(shù)字解調(diào)控制器依次連接,所述USB數(shù)字解調(diào)控制器分別連接復(fù)數(shù)個(gè)USB協(xié)議逆轉(zhuǎn)換單元,且復(fù)數(shù)個(gè)USB協(xié)議逆轉(zhuǎn)換單元、復(fù)數(shù)個(gè)信息解包單元以及復(fù)數(shù)個(gè)debug信息池--對應(yīng)連接;其中,
[0015]所述soc多核芯片電路中的復(fù)數(shù)個(gè)CPU監(jiān)視器對待debug的soc多核芯片中的每個(gè)CPU進(jìn)行一一監(jiān)視,當(dāng)CPU —旦出現(xiàn)程序指針變化、或者讀寫操作時(shí),就采集一次該CPU的debug信息,包括運(yùn)行指針,運(yùn)行程序內(nèi)容,讀取和寫入數(shù)據(jù)的值,并和時(shí)間戳控制器輸出的時(shí)間戳值一起送往信息打包單元,同時(shí)通過所述時(shí)間戳控制器定時(shí)輸出一個(gè)時(shí)間戳的值;這個(gè)時(shí)間戳值和每個(gè)CPU監(jiān)視器的debug信息一起送往對應(yīng)的信息打包單元;所述信息打包單元把對應(yīng)CPU的debug信息和時(shí)間戳值按照固定的格式進(jìn)行打包,得到debug數(shù)據(jù)包,并把debug數(shù)據(jù)包送往USB協(xié)議轉(zhuǎn)換單元,USB協(xié)議轉(zhuǎn)換單元把每個(gè)CPU的debug數(shù)據(jù)包轉(zhuǎn)換為unipro協(xié)議傳輸,并送往USB數(shù)字調(diào)制控制器;所述USB數(shù)字調(diào)制控制器將所有CPU對應(yīng)的USB協(xié)議轉(zhuǎn)換單元的輸出匯總后送往第一 USB TYPE-C PHY,匯總時(shí)給每個(gè)CPU的debug信息增加一個(gè)唯一的ID標(biāo)簽;然后第一 USB TYPE-C PHY將unipro協(xié)議數(shù)據(jù)通過發(fā)送通道的兩個(gè)1輸出模擬高速差分信號,送往debug解調(diào)電路中的USB TYPE-CPHY ;
[0016]所述debug解調(diào)電路中的第二 USB TYPE-C PHY通過接收通道的兩個(gè)1接收所述模擬高速差分信號,然后轉(zhuǎn)換為數(shù)字信號的unipro協(xié)議數(shù)據(jù)送往USB數(shù)字解調(diào)控制器,USB數(shù)字解調(diào)控制器根據(jù)debug數(shù)據(jù)包的ID標(biāo)簽將匯總的debug信息重新分開為每個(gè)CPU的debug信息包送往USB協(xié)議逆轉(zhuǎn)換單元,送往USB協(xié)議逆轉(zhuǎn)換單元把使用unipro協(xié)議傳輸?shù)膁ebug信息包轉(zhuǎn)換為原始的debug信息包的固定格式,并把原始的debug信息包送往信息解包單元;信息解包單元將debug信息解包,分解出運(yùn)行指針、運(yùn)行程序內(nèi)容、讀取和寫入數(shù)據(jù)的值以及時(shí)間戳信息,并把這些信息送往對應(yīng)CPU的debug信息池供工作人員分析。
[0017]進(jìn)一步的,本發(fā)明方法和裝置中,所述固定的格式是:數(shù)據(jù)包頭為時(shí)間戳,然后緊跟著運(yùn)行指針,運(yùn)行程序,讀數(shù)據(jù)、寫數(shù)據(jù)。所述時(shí)間戳的值為一個(gè)持續(xù)累加的值,每隔固定時(shí)間就累加I。
[0018]本發(fā)明具有如下優(yōu)點(diǎn):
[0019]1.本發(fā)明采用高帶寬的USB type-C,保證了多核CPU可以在全速運(yùn)行狀態(tài)下進(jìn)行debug,大量的CPU狀態(tài)信息可以實(shí)時(shí)的通過USB type-C傳輸出SOC芯片;
[0020]2.本發(fā)明的debug信息包括PC指針、時(shí)間戳信息、運(yùn)行命令、讀取和寫入的數(shù)據(jù)信息以及CPU的運(yùn)行狀態(tài)位信息,綜合全面;
[0021]3.目前現(xiàn)有的多核并行運(yùn)行過程的debug中,獨(dú)立打印每個(gè)CPU的信息值,很難判斷每個(gè)CPU運(yùn)行之間的先后關(guān)系.而本發(fā)明時(shí)間戳的設(shè)計(jì),在每個(gè)CPU的每次debug信息包中都帶有一個(gè)時(shí)間值,通過這個(gè)時(shí)間戳值可以很清晰的判斷debug信息包之間的先后關(guān)系,可以很好的解決這個(gè)問題;
[0022]4.相較USB2.0和USB3.0,本發(fā)明的type_C的物理接口更加輕巧,而且速度更快,適應(yīng)小型和輕薄的移動(dòng)設(shè)備,同時(shí)雙面可以隨便插入也是一大優(yōu)勢。
【【附圖說明】】
[0023]下面參照附圖結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步的說明。
[0024]圖1為本發(fā)明裝置的結(jié)構(gòu)框圖。
【【具體實(shí)施方式】】
[0025]由于soc多核芯片中的每個(gè)CPU都可以獨(dú)立執(zhí)行程序,可以多核并行工作,因此,本發(fā)明的USB type-C高速debug方法可以對每個(gè)CPU進(jìn)行debug,當(dāng)debug電路開始工作后,每個(gè)CPU—旦出現(xiàn)程序指針變化,或者讀寫操作,對應(yīng)的CPU監(jiān)視器就會(huì)采集一次該CPU的debug信息,然后混合時(shí)間戳信息打包經(jīng)過處理后送往debug解調(diào)電路,然后經(jīng)過逆處理過程解碼后送往對應(yīng)CPU的debug信息池,然后debug軟件可以將每個(gè)CPU的debug信息池的內(nèi)容實(shí)時(shí)更新到顯示屏幕上供工作人員進(jìn)行分析,具體包括下述步驟:
[0026]步驟10、對待debug的soc多核芯片中的每個(gè)CPU進(jìn)行監(jiān)視,當(dāng)CPU —旦出現(xiàn)程序指針變化、或者讀寫操作時(shí),就采集一次該CPU的debug信息,包括運(yùn)行指針,運(yùn)行程序內(nèi)容,讀取和寫入數(shù)據(jù)的值,同時(shí)定時(shí)輸出一個(gè)時(shí)間戳的值;所述時(shí)間戳的值為一個(gè)持續(xù)累加的值,每隔固定時(shí)間就累加I。
[0027]步驟20、把每個(gè)CPU的debug信息和時(shí)間戳值按照固定的格式進(jìn)行打包,得到debug數(shù)據(jù)包,并把debug數(shù)據(jù)包轉(zhuǎn)換為USB協(xié)議傳輸;所述固定的格式是:數(shù)據(jù)包頭為時(shí)間戳,然后緊跟著運(yùn)行指針,運(yùn)行程序,讀數(shù)據(jù)、寫數(shù)據(jù)。
[0028]步驟30、所有CPU對應(yīng)的USB協(xié)議傳輸匯總USB TYPE-C PHY接口數(shù)據(jù)格式后后送往USB TYPE-C PHY,匯總時(shí)給每個(gè)CPU的debug信息增加一個(gè)唯一的ID標(biāo)簽;然后通過發(fā)送通道的兩個(gè)1輸出模擬高速差分信號,送往debug解調(diào)電路中的USB TYPE-C PHY。
[0029]步驟40、debug解調(diào)電路中的USB TYPE-C PHY通過接收通道的兩個(gè)1接收所述模擬高速差分信號,然后轉(zhuǎn)換為數(shù)字信號,根據(jù)debug數(shù)據(jù)包的ID標(biāo)簽將匯總的debug信息重新分開為每個(gè)CPU的debug信息包,并轉(zhuǎn)換為原始的debug信息包的固定格式。
[0030]步驟50、將debug信息解包,分解出運(yùn)行指針、運(yùn)行程序內(nèi)容、讀取和寫入數(shù)據(jù)的值以及時(shí)間戳信息,并把這些信息送往對應(yīng)CPU的debug信息池,然后debug軟件可以將每個(gè)CPU的debug信息池的內(nèi)