多核心處理器的調(diào)試系統(tǒng)與調(diào)試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種調(diào)試系統(tǒng),且特別是有關(guān)于一種多核心處理器的調(diào)試系統(tǒng)與調(diào)試方法。
[0002]先前技術(shù)
[0003]隨著科技的進(jìn)步,多核心(mult1-core)架構(gòu)平臺(tái)提供了精簡(jiǎn)的尺寸、低耗的電能、卻擁有強(qiáng)大運(yùn)算能力的平臺(tái),來(lái)實(shí)現(xiàn)各種應(yīng)用內(nèi)容的整合。對(duì)于多核心架構(gòu)平臺(tái)來(lái)說(shuō),在軟件開(kāi)發(fā)的過(guò)程中,必然使用到調(diào)試器來(lái)進(jìn)行調(diào)試。傳統(tǒng)的調(diào)試系統(tǒng)10例如圖1所示,其中電腦主機(jī)110可包括調(diào)試器的軟件部分,調(diào)試目標(biāo)系統(tǒng)150則包括待調(diào)試的處理器。隨著調(diào)試目標(biāo)系統(tǒng)150中核心數(shù)目的增加,軟件的復(fù)雜度也隨著增加。因此,在多核心的系統(tǒng)上,一個(gè)完整的調(diào)試系統(tǒng)對(duì)軟件的發(fā)展而言是相當(dāng)重要的。
[0004]目前處理器早已進(jìn)入多核心的趨勢(shì),實(shí)驗(yàn)室里制造的多核心架構(gòu)平臺(tái)已經(jīng)可以達(dá)到幾十個(gè)內(nèi)核心,而且可能是包含多種不同核心的異質(zhì)(heterogeneous)多核心平臺(tái)。于已知的技術(shù)中,每一個(gè)核心可視為獨(dú)立的處理器,且各自需要一個(gè)專(zhuān)屬的調(diào)試系統(tǒng)。如果多核心架構(gòu)平臺(tái)有二十個(gè)內(nèi)核心,意謂著需要二十個(gè)如圖1所示的除錯(cuò)系統(tǒng)架構(gòu),這會(huì)使調(diào)試系統(tǒng)的軟硬件復(fù)雜化,成本上升,且使用上也有諸多不便。如果有多個(gè)內(nèi)核心負(fù)責(zé)同一工作,這些核心必須同時(shí)開(kāi)始執(zhí)行并同時(shí)進(jìn)入調(diào)試狀態(tài),因?yàn)檎{(diào)試器各自獨(dú)立,加上使用者逐一操作的時(shí)間差,會(huì)使上述的同步需求難以達(dá)成。
[0005]為了調(diào)試異質(zhì)多核心處理器中的多個(gè)內(nèi)核心,一種現(xiàn)有的解決方式是采用私有架構(gòu)的整體重新開(kāi)發(fā)。然而,此種解決方式雖然靈活性較大,但不僅開(kāi)發(fā)周期長(zhǎng)且軟件的維護(hù)也復(fù)雜。另外,還有一種解決方式是于同一時(shí)間僅調(diào)試或監(jiān)看單一個(gè)內(nèi)核心的運(yùn)作狀態(tài),再透過(guò)切換核心的方式而達(dá)到對(duì)不同內(nèi)核心分別進(jìn)行調(diào)試與控制的目的。然而,此種解決方式并無(wú)法達(dá)成對(duì)多個(gè)核心同步調(diào)試的目的。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提供一種多核心處理器的調(diào)試系統(tǒng)與調(diào)試方法,無(wú)須透過(guò)復(fù)雜且龐大軟件開(kāi)發(fā)就可實(shí)現(xiàn)一種功能強(qiáng)大的多核心處理器的調(diào)試系統(tǒng),并達(dá)到同時(shí)對(duì)多個(gè)內(nèi)核心進(jìn)行調(diào)試目的。
[0007]本發(fā)明提出一種多核心處理器的調(diào)試系統(tǒng),其包括調(diào)試主機(jī)、目標(biāo)處理器以及映射與協(xié)議轉(zhuǎn)換裝置。此調(diào)試主機(jī)包括一調(diào)試器(debugger),而此目標(biāo)處理器包括多個(gè)內(nèi)核心。映射與協(xié)議轉(zhuǎn)換裝置連接于調(diào)試主機(jī)與目標(biāo)處理器之間,辨識(shí)各內(nèi)核心所屬的核心架構(gòu),并依據(jù)各內(nèi)核心所屬的核心架構(gòu)將每一內(nèi)核心分別映射至至少一進(jìn)程(process)底下的至少一線(xiàn)程(thread)。之后,調(diào)試器依據(jù)各內(nèi)核心所對(duì)應(yīng)的進(jìn)程與線(xiàn)程來(lái)對(duì)目標(biāo)處理器進(jìn)行一調(diào)試程序。
[0008]在本發(fā)明的一范例實(shí)施例中,所述的核心架構(gòu)至少包括第一類(lèi)架構(gòu)與第二類(lèi)架構(gòu),而映射與協(xié)議轉(zhuǎn)換裝置將這些內(nèi)核心中屬于第一類(lèi)架構(gòu)的第一內(nèi)核心映射至進(jìn)程中的第一進(jìn)程,并將這些內(nèi)核心中屬于第二類(lèi)架構(gòu)的第二內(nèi)核心映射至進(jìn)程中的第二進(jìn)程。
[0009]在本發(fā)明的一范例實(shí)施例中,所述的核心架構(gòu)包括第一類(lèi)架構(gòu),而內(nèi)核心至少包括第一內(nèi)核心以及第二內(nèi)核心。當(dāng)內(nèi)核心中的第一內(nèi)核心與第二內(nèi)核心同屬于第一類(lèi)架構(gòu),映射與協(xié)議轉(zhuǎn)換裝置將第一內(nèi)核心與第二內(nèi)核心一同映射至進(jìn)程中的第一進(jìn)程。并且,映射與協(xié)議轉(zhuǎn)換裝置將第一內(nèi)核心與第二內(nèi)核心分別映射至第一進(jìn)程底下的第一線(xiàn)程與第二線(xiàn)程。
[0010]在本發(fā)明的一范例實(shí)施例中,其中同屬于第一類(lèi)架構(gòu)的第一內(nèi)核心以及第二內(nèi)核心運(yùn)作于一對(duì)稱(chēng)型處理狀態(tài)。
[0011]在本發(fā)明的一范例實(shí)施例中,所述的核心架構(gòu)包括第一類(lèi)架構(gòu),而內(nèi)核心至少包括第一內(nèi)核心以及第二內(nèi)核心。當(dāng)內(nèi)核心中的第一內(nèi)核心與第二內(nèi)核心同屬于第一類(lèi)架構(gòu),映射與協(xié)議轉(zhuǎn)換裝置將第一內(nèi)核心映射至進(jìn)程中的第一進(jìn)程底下的第一線(xiàn)程,并將第二內(nèi)核心映射至進(jìn)程中的第二進(jìn)程底下的第二線(xiàn)程。
[0012]在本發(fā)明的一范例實(shí)施例中,其中同屬于第一類(lèi)架構(gòu)的第一內(nèi)核心以及第二內(nèi)核心運(yùn)作于一非對(duì)稱(chēng)型處理狀態(tài)。
[0013]在本發(fā)明的一范例實(shí)施例中,所述的調(diào)試主機(jī)包括圖形使用者面模塊。此圖形使用者面模塊提供一使用者界面以接收操作命令,且調(diào)試器輸出對(duì)應(yīng)操作命令的調(diào)試指令至映射與協(xié)議轉(zhuǎn)換裝置。
[0014]在本發(fā)明的一范例實(shí)施例中,所述的映射與協(xié)議轉(zhuǎn)換裝置包括控制伺服器以及協(xié)議轉(zhuǎn)換介面裝置??刂扑欧鹘?jīng)由網(wǎng)絡(luò)介面連接調(diào)試器,控制內(nèi)核心映射至進(jìn)程底下的線(xiàn)程。協(xié)議轉(zhuǎn)換介面裝置透過(guò)第一傳輸介面與控制伺服器連接,并透過(guò)第二傳輸介面與目標(biāo)處理器連接。協(xié)議轉(zhuǎn)換介面裝置將來(lái)自控制伺服器的資料轉(zhuǎn)換成符合第二傳輸介面的協(xié)議標(biāo)準(zhǔn)的信號(hào)。
[0015]在本發(fā)明的一范例實(shí)施例中,于所述的調(diào)試器對(duì)目標(biāo)處理器進(jìn)行調(diào)試程序期間,目標(biāo)處理器輸出關(guān)聯(lián)于內(nèi)核心中第一內(nèi)核心的核心調(diào)試資料至映射與協(xié)議轉(zhuǎn)換裝置。映射與協(xié)議轉(zhuǎn)換裝置依據(jù)第一內(nèi)核心所對(duì)應(yīng)的進(jìn)程其中之一與線(xiàn)程其中之一將核心調(diào)試資料封裝為調(diào)試訊息,并將調(diào)試訊息傳回至調(diào)試器。
[0016]從另一觀點(diǎn)來(lái)看,本發(fā)明提出一種多核心處理器的調(diào)試方法,適用于一調(diào)試系統(tǒng)。此調(diào)試系統(tǒng)包括調(diào)試主機(jī)、目標(biāo)處理器以及映射與協(xié)議轉(zhuǎn)換裝置,而目標(biāo)處理器包括多個(gè)內(nèi)核心。所述方法包括下列步驟。連接目標(biāo)處理器與映射與協(xié)議轉(zhuǎn)換裝置。由映射與協(xié)議轉(zhuǎn)換裝置辨識(shí)各內(nèi)核心所屬的核心架構(gòu),并依據(jù)各內(nèi)核心所屬的核心架構(gòu)將內(nèi)核心映射至至少一進(jìn)程底下的多個(gè)線(xiàn)程。之后,由調(diào)試主機(jī)的調(diào)試器依據(jù)各內(nèi)核心所對(duì)應(yīng)的進(jìn)程與線(xiàn)程來(lái)對(duì)目標(biāo)處理器進(jìn)行一調(diào)試程序。
[0017]基于上述,在本發(fā)明的調(diào)試系統(tǒng)中,基于調(diào)試器對(duì)多進(jìn)程與多線(xiàn)程的調(diào)試機(jī)制的支持,將多核心處理器的各個(gè)內(nèi)核心映射為各自對(duì)應(yīng)的進(jìn)程與線(xiàn)程,從而利用調(diào)試主機(jī)的調(diào)試器對(duì)多核心處理器的各多個(gè)內(nèi)核心進(jìn)行同步的調(diào)試。如此,無(wú)論是同質(zhì)(homogeneous)多核心處理器或異質(zhì)多核心處理器,本發(fā)明的調(diào)試系統(tǒng)與調(diào)試方法皆適用,并可降低調(diào)試系統(tǒng)開(kāi)發(fā)成本以及提高調(diào)試系統(tǒng)使用上的便利性。
[0018]為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說(shuō)明如下。
【附圖說(shuō)明】
[0019]圖1是已知的一種調(diào)試系統(tǒng)的示意圖。
[0020]圖2是依照本發(fā)明一實(shí)施例所繪示的多核心處理器的調(diào)制系統(tǒng)的示意圖。
[0021]圖3是依照本發(fā)明一實(shí)施例所繪示的將多個(gè)內(nèi)核心映射至進(jìn)程與線(xiàn)程的范例示意圖。
[0022]圖4是依照本發(fā)明另一實(shí)施例所繪示的多核心處理器的調(diào)制系統(tǒng)的示意圖。
[0023]圖5是依照本發(fā)明一實(shí)施例所繪示的調(diào)試方法的流程圖。
[0024]符號(hào)說(shuō)明
[0025]10、20、30、40:調(diào)試系統(tǒng)
[0026]110:電腦主機(jī)
[0027]150:調(diào)試目標(biāo)系統(tǒng)
[0028]210:調(diào)試主機(jī)
[0029]211、411:圖形使用者介面模塊
[0030]212、412:調(diào)試器
[0031]220、421:映射與協(xié)議轉(zhuǎn)換模塊
[0032]230、4:30:目標(biāo)處理器
[0033]231_1 ?231_N、431_1 ?431_N:內(nèi)核心
[0034]421:控制伺服器
[0035]422:協(xié)議轉(zhuǎn)換介面裝置
[0036]P_1 ?P_M:進(jìn)程
[0037]T_1 ?T_N:線(xiàn)程
[0038]I1:網(wǎng)絡(luò)介面
[0039]12、13:傳輸介面
[0040]S501?S503:本發(fā)明一實(shí)施例所述的調(diào)試方法的各步驟
【具體實(shí)施方式】
[0041]圖2是依照本發(fā)明一實(shí)施例所繪示的多核心處理器的調(diào)試系統(tǒng)的示意圖。請(qǐng)參照?qǐng)D2,調(diào)試系統(tǒng)包括調(diào)試主機(jī)210、映射與協(xié)議轉(zhuǎn)換裝置220以及目標(biāo)處理器230。調(diào)試主機(jī)210例如是桌上型電腦、筆記型電腦或其他具有運(yùn)算功能的計(jì)算機(jī)裝置等,在此并不限制其范圍。目標(biāo)處理器230例如是封裝成單一晶片的嵌入式微處理器或微控制器等,在此并不限制其范圍。于本范例實(shí)施例中,目標(biāo)處理器230包括多個(gè)內(nèi)核心231_1?231_N,其中N為大于1的整數(shù),本發(fā)明對(duì)于內(nèi)核心的數(shù)量并無(wú)限制。再者,目標(biāo)處理器230可以是同質(zhì)核心處理器或異質(zhì)核心處理器,本發(fā)明對(duì)此并不限制。換言之,這些內(nèi)核心231_1?231_~可分別隸屬于相同或不同的核心架構(gòu)。
[0042]于本范例實(shí)施例中,調(diào)試主機(jī)210可接收使用者所下達(dá)的操作指令對(duì)目標(biāo)處理器230中的多個(gè)內(nèi)核心進(jìn)行調(diào)試,從而判斷目標(biāo)處理器230是否可正常的執(zhí)行工作。于本范例實(shí)施例中,調(diào)試主機(jī)210包括圖形使用者介面模塊211以及調(diào)試器212。在本范例實(shí)施例中,圖形使用者介面模塊211以及調(diào)試器212包可括正常運(yùn)作所需的硬件元件(例如,處理器、晶片組、控制器或特定電路、儲(chǔ)存單元等)及/或軟件元件(例如,專(zhuān)門(mén)用以實(shí)現(xiàn)特定功能的軟件模塊或函式等)。
[0043]調(diào)試器212為一種用于偵錯(cuò)(debug)其它程序的電腦程序及工具,其能夠讓程序碼在指令組模擬器中可以檢查運(yùn)行狀況以及選擇