專利名稱:用于處理器的追蹤調(diào)試方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種追蹤調(diào)試的方法及系統(tǒng),特別是涉及一種用于處理器的低成本的追蹤調(diào)試方法及系統(tǒng)。
背景技術(shù):
由于電子技術(shù)的快速發(fā)展,各類處理器的架構(gòu)越來(lái)越復(fù)雜,故處理器常內(nèi)建硬件調(diào)試模塊,以方便開發(fā)者使用該處理器開發(fā)新系統(tǒng)。圖1是一現(xiàn)有的處理器內(nèi)建硬件調(diào)試模塊的方框圖,其中,該追蹤監(jiān)視裝置監(jiān)視地址總線及數(shù)據(jù)總線上所傳輸?shù)臄?shù)據(jù),并將地址總線及數(shù)據(jù)總線上的數(shù)據(jù)存入該追蹤暫存裝置中,以供開發(fā)者分析。然而這種架構(gòu)只適合沒(méi)有高速緩存(cache)功能的處理器核心。
針對(duì)上述問(wèn)題,MIPS處理器利用內(nèi)建的電路將處理器的程序計(jì)數(shù)器(program counter,PC)變化狀況,通過(guò)額外的延伸EJTAG(EnhancedJoint Test Action Group,EJTAG)引腳傳送給一集成開發(fā)環(huán)境(integrated development environment,IDE)軟件,以在該集成開發(fā)環(huán)境(IDE)軟件中重組處理器內(nèi)部狀態(tài)。當(dāng)延伸EJTAG腳位不足時(shí),輸出的信息將會(huì)很少,集成開發(fā)環(huán)境(IDE)軟件將會(huì)非常復(fù)雜。如果簡(jiǎn)化該集成開發(fā)環(huán)境(IDE)軟件的復(fù)雜度時(shí),就必須暫停處理器,等輸出信息完整,再讓處理器動(dòng)作,如此就難達(dá)到實(shí)時(shí)程序計(jì)數(shù)器追蹤,另外MIPS處理器并無(wú)法做到數(shù)據(jù)追蹤。
圖2是一現(xiàn)有的ARM處理器內(nèi)建硬件調(diào)試模塊的方框圖,其利用內(nèi)建追蹤裝置將追蹤信息經(jīng)過(guò)調(diào)試腳位輸出至一集成開發(fā)環(huán)境軟件。此方法雖然可以達(dá)到實(shí)時(shí)追蹤,可是內(nèi)建追蹤裝置約占17-55K的門與額外的輸出引腳,這會(huì)增加處理器的硬件成本。另外當(dāng)處理器運(yùn)行速度很快或額外的輸出引腳有限的情形下,就必須再內(nèi)建追蹤暫存裝置才可實(shí)現(xiàn)程序計(jì)數(shù)器追蹤或數(shù)據(jù)追蹤的功能。
現(xiàn)有的SH5處理器內(nèi)建一調(diào)試鏈接及一JTAG接口,同時(shí)所追蹤的信息儲(chǔ)存在一調(diào)試模塊先進(jìn)先出緩沖器(debug module first in firstout,DM FIFO)中。該調(diào)試模塊先進(jìn)先出緩沖器(DM FIFO)為一3*64bit的先進(jìn)先出緩沖器(FIFO),其雖然可使用較少存儲(chǔ)器,但是當(dāng)該先進(jìn)先出緩沖器(FIFO)填滿數(shù)據(jù)時(shí),需將先將處理器暫停,同時(shí)舍棄新的追蹤數(shù)據(jù)。該先進(jìn)先出緩沖器(FIFO)也可設(shè)定為一環(huán)狀先進(jìn)先出緩沖器(circular FIFO),當(dāng)該環(huán)狀先進(jìn)先出緩沖器(FIFO)填滿數(shù)據(jù)時(shí),雖無(wú)需先將處理器暫停,但是新的追蹤數(shù)據(jù)會(huì)覆蓋舊的追蹤數(shù)據(jù)。故現(xiàn)有的處理器內(nèi)建硬件追蹤調(diào)試仍有改善的空間。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的在于提供一種低成本的追蹤調(diào)試方法,以能避免現(xiàn)有技術(shù)所需的內(nèi)建追蹤暫存裝置,從而節(jié)省硬件成本。
本發(fā)明的另一個(gè)目的在于提供一種低成本的追蹤調(diào)試方法,以能避免現(xiàn)有技術(shù)所需的額外的輸出引腳,從而節(jié)省硬件成本。
依據(jù)本發(fā)明的一個(gè)方面,提出一種用于處理器的追蹤調(diào)試方法,該處理器具有一處理器核心、一高速緩存及一計(jì)時(shí)裝置,該處理器核心具有一正常執(zhí)行模式及一調(diào)試模式,并具有一程序計(jì)數(shù)器,用以記錄下一個(gè)指令的地址,該高速緩存通過(guò)一地址總線及數(shù)據(jù)總線連接至該處理器核心,該計(jì)時(shí)裝置連接至該處理器核心,以提供操作系統(tǒng)進(jìn)行上下文切換(context switch)的計(jì)時(shí)功能,該方法包括步驟(A)監(jiān)視該程序計(jì)數(shù)器;(B)依據(jù)該程序計(jì)數(shù)器的地址數(shù)據(jù),判斷該處理核心是否執(zhí)行非連續(xù)的指令;(C)若判定該處理器核心執(zhí)行非連續(xù)的指令時(shí),產(chǎn)生一追蹤斷點(diǎn)事件(trace break event),以設(shè)定該處理器核心進(jìn)入調(diào)試模式;(D)獲取該處理器核心的程序計(jì)數(shù)器的值及該處理器核心的狀態(tài);(E)傳送該程序計(jì)數(shù)器的值及該處理器核心的狀態(tài)至一主機(jī),以在該主機(jī)產(chǎn)生該處理器核心的追蹤調(diào)試信息。
依據(jù)本發(fā)明的另一方面,提出一種用于處理器的追蹤調(diào)試系統(tǒng),該處理器具有一處理器核心、一高速緩存、一總線接口單元(BIU)及一計(jì)時(shí)裝置,該處理器核心具有一正常執(zhí)行模式及一調(diào)試模式,并具有一程序計(jì)數(shù)器,用以記錄下一個(gè)指令的地址,該高速緩存通過(guò)一地址總線及數(shù)據(jù)總線連接至該處理器核心,該總線接口單元(BIU)連接至該高速緩存及一主存儲(chǔ)器,該計(jì)時(shí)裝置連接至該處理器核心,以提供操作系統(tǒng)進(jìn)行上下文切換(context switch)的計(jì)時(shí)功能,該系統(tǒng)主要包含一追蹤監(jiān)視裝置、一硬件斷點(diǎn)裝置及一調(diào)試控制裝置。該追蹤監(jiān)視裝置連接至該程序計(jì)數(shù)器,以監(jiān)視該程序計(jì)數(shù)器的地址數(shù)據(jù);該硬件斷點(diǎn)裝置連接至該地址總線及數(shù)據(jù)總線,以依據(jù)預(yù)設(shè)的硬件斷點(diǎn),產(chǎn)生一硬件斷點(diǎn)事件,以讓該處理器核心暫停;該調(diào)試控制裝置連接至該追蹤監(jiān)視裝置,以控制該追蹤監(jiān)視裝置的動(dòng)作;其中,該追蹤監(jiān)視裝置依據(jù)該程序計(jì)數(shù)器的地址數(shù)據(jù),判斷該處理核心是否執(zhí)行連續(xù)的指令,若判定該處理器核心執(zhí)行非連續(xù)的指令時(shí),該追蹤監(jiān)視裝置產(chǎn)生一追蹤斷點(diǎn)事件(trace break event),以設(shè)定該處理器核心進(jìn)入調(diào)試模式,該硬件斷點(diǎn)裝置獲取該處理器核心的程序計(jì)數(shù)器的值及該處理器核心的狀態(tài)。
圖1為一現(xiàn)有處理器內(nèi)建硬件調(diào)試模塊的方框圖。
圖2為一現(xiàn)有ARM處理器內(nèi)建硬件調(diào)試模塊的方框圖。
圖3為本發(fā)明的低成本的追蹤調(diào)試系統(tǒng)的使用示意圖。
圖4為本發(fā)明的硬件斷點(diǎn)裝置的方框圖。
圖5為本發(fā)明用于處理器的追蹤調(diào)試方法的流程圖。
圖6為本發(fā)明的追蹤調(diào)試方法的一實(shí)例的示意圖。
具體實(shí)施例方式
圖3為本發(fā)明的低成本的追蹤調(diào)試系統(tǒng)300的使用示意圖。在圖3中,一處理器核心305用以執(zhí)行一程序的指令,其具有一程序計(jì)數(shù)器309,用以記錄下一個(gè)指令的地址。該處理器核心305具有一正常執(zhí)行模式及一調(diào)試模式。一高速緩存310儲(chǔ)存指令及數(shù)據(jù),該高速緩存310通過(guò)一地址總線306、數(shù)據(jù)輸出總線(DataOut bus)307及數(shù)據(jù)輸入總線(DataIn bus)308連接至該處理器核心305,用以提供該處理器核心305執(zhí)行時(shí)所需的指令及數(shù)據(jù),并暫存該處理器核心305寫出的數(shù)據(jù)。一總線接口單元(bus interface unit、BIU)315連接至該高速緩存310,當(dāng)該高速緩存310中沒(méi)有該處理器核心305所需數(shù)據(jù)或指令時(shí),通過(guò)該總線接口單元315至一主存儲(chǔ)器(圖未示)中讀取,或是當(dāng)該高速緩存310已填滿數(shù)據(jù)或指令時(shí),將部分?jǐn)?shù)據(jù)通過(guò)該總線接口單元(BIU)315寫至該主存儲(chǔ)器(圖未示)中。一計(jì)時(shí)裝置320連接至該處理器核心305,以提供一操作系統(tǒng)進(jìn)行上下文切換的計(jì)時(shí)功能。
該追蹤調(diào)試系統(tǒng)300主要包含一追蹤監(jiān)視裝置330、一硬件斷點(diǎn)裝置340、一調(diào)試控制裝置350及一調(diào)試通訊鏈接360。該調(diào)試通訊鏈接360連接至該硬件斷點(diǎn)裝置340與一主機(jī)。當(dāng)處理器核心305處于調(diào)試模式時(shí),該將該程序計(jì)數(shù)器的值及該處理器核心305的狀態(tài)傳送至該主機(jī),以在該主機(jī)上由一集成開發(fā)環(huán)境(IDE)軟件重組該處理器核心305內(nèi)部狀態(tài),產(chǎn)生該處理器核心305的追蹤調(diào)試信息。
該調(diào)試通訊鏈接360包含一內(nèi)存控制裝置361及一接口裝置362。該接口裝置362可為一JTAG接口,以便和既有JTAG電路共享引腳,節(jié)省集成電路(IC)的引腳。該接口裝置362經(jīng)過(guò)一探測(cè)裝置370而連接該主機(jī),該探測(cè)裝置370主要系將JTAG接口信號(hào)轉(zhuǎn)換為該主機(jī)可接收的信號(hào),例如RS232信號(hào)、USB信號(hào),以便傳送至該主機(jī)。該接口裝置362另一端連接至該內(nèi)存控制裝置361,以將該主機(jī)的數(shù)據(jù)傳送至該內(nèi)存控制裝置361,或?qū)?nèi)存控制裝置361的數(shù)據(jù)傳送至該主機(jī)。
該內(nèi)存控制裝置361將硬件斷點(diǎn)裝置340及調(diào)試控制裝置350內(nèi)部寄存器映射至該主機(jī)的一內(nèi)存映像(memory map),以方便該主機(jī)進(jìn)行相關(guān)設(shè)定。該內(nèi)存控制裝置361同時(shí)連接至該總線接口單元(BIU)315,該主機(jī)可通過(guò)該內(nèi)存控制裝置361及該總線接口單元(BIU)315,而存取連接至該總線接口單元(BIU)315的主存儲(chǔ)器(圖未示)數(shù)據(jù)或是連接至該總線接口單元(BIU)315的外圍設(shè)備(圖未示)的數(shù)據(jù)。
該硬件斷點(diǎn)裝置340連接至該地址總線306、數(shù)據(jù)輸出總線307及數(shù)據(jù)輸入總線308,以依據(jù)預(yù)設(shè)的硬件斷點(diǎn),產(chǎn)生一硬件斷點(diǎn)事件,以讓該處理器核心305進(jìn)入調(diào)試模式。
圖4為該硬件斷點(diǎn)裝置340的方框圖,其包含一第一寄存器341、一第二寄存器342、一第三寄存器343、一第一比較器344、一第二比較器345、一第三比較器346及一或門347。該主機(jī)將欲設(shè)定斷點(diǎn)的地址值、寫出該處理器核心305的數(shù)據(jù)及讀入該處理器核心305的數(shù)據(jù),通過(guò)該調(diào)試通訊鏈接360分別寫至第一寄存器341、第二寄存器342及第三寄存器343中。該第一比較器344的第一輸入端連接至該第一寄存器341的輸出端,其第二輸入端連接至該地址總線306,當(dāng)該第一寄存器341所儲(chǔ)存的地址值與該地址總線306上所出現(xiàn)的地址值相同時(shí),該第一比較器344產(chǎn)生一信號(hào)(硬件斷點(diǎn)事件),并通過(guò)該或門347傳送至該處理器核心305,以讓該處理器核心305進(jìn)入調(diào)試模式。同理,當(dāng)欲追蹤寫出該處理器核心305數(shù)據(jù)時(shí),則利用數(shù)據(jù)輸出總線307、第二寄存器342及第二比較器345即可達(dá)成。
該調(diào)試控制裝置350連接至該硬件斷點(diǎn)裝置340,該主機(jī)通過(guò)該調(diào)試通訊鏈接360設(shè)定該調(diào)試控制裝置350中的寄存器,以使能(enable)或關(guān)閉(disable)該追蹤監(jiān)視裝置330。
該追蹤監(jiān)視裝置330連接至該程序計(jì)數(shù)器309、該地址總線306、數(shù)據(jù)輸出總線307及數(shù)據(jù)輸入總線308,以監(jiān)視該程序計(jì)數(shù)器309、該地址總線及數(shù)據(jù)總線活動(dòng)。該追蹤監(jiān)視裝置330依據(jù)該程序計(jì)數(shù)器(PC)309的地址數(shù)據(jù),判斷該處理核心305是否執(zhí)行非連續(xù)的指令,若判定該處理器核心305執(zhí)行非連續(xù)的指令時(shí),該追蹤監(jiān)視裝置330產(chǎn)生一追蹤斷點(diǎn)事件(trace break event),并設(shè)定該處理器核心305進(jìn)入調(diào)試模式。此時(shí),該硬件斷點(diǎn)裝置340獲取該處理器核心305的程序計(jì)數(shù)器的值及該處理器核心的狀態(tài)。當(dāng)該處理器核心305進(jìn)入調(diào)試模式時(shí),同時(shí)將該計(jì)時(shí)裝置320關(guān)閉(disable),以避免該計(jì)時(shí)裝置320在調(diào)試模式下繼續(xù)計(jì)時(shí),達(dá)到虛擬實(shí)時(shí)調(diào)試功能。該硬件斷點(diǎn)裝置340將該程序計(jì)數(shù)器的值及該處理器核心305的狀態(tài)傳送至該主機(jī),以在該主機(jī)上由一集成開發(fā)環(huán)境(IDE)軟件重組該處理器核心305內(nèi)部狀態(tài),產(chǎn)生該處理器核心305的追蹤調(diào)試信息。當(dāng)該處理器核心305進(jìn)入調(diào)試模式時(shí),該主機(jī)可通過(guò)該內(nèi)存控制裝置361及該總線接口單元315,而存取連接至該總線接口單元315的主存儲(chǔ)器(圖未示)數(shù)據(jù)、或是連接至該總線接口單元315的外圍設(shè)備(圖未示)的數(shù)據(jù)。
該硬件斷點(diǎn)裝置340將該程序計(jì)數(shù)器的值及該處理器核心305的狀態(tài)傳送至該主機(jī)后,設(shè)定該處理器核心305返回正常執(zhí)行模式。當(dāng)該處理器核心305返回正常執(zhí)行模式后,同時(shí)將該計(jì)時(shí)裝置使能,以讓在該處理器核心305執(zhí)行的程序重新執(zhí)行。
圖5為本發(fā)明用于處理器的追蹤調(diào)試方法的流程圖,該處理器具有一處理器核心305、一高速緩存310及一計(jì)時(shí)裝置320,該處理器核心305具有一正常執(zhí)行模式及一調(diào)試模式,并具有一程序計(jì)數(shù)器309,用以記錄下一個(gè)指令的地址。該高速緩存310通過(guò)一地址總線及數(shù)據(jù)總線連接至該處理器核心305。首先在步驟S510中,監(jiān)視該程序計(jì)數(shù)器309的地址數(shù)據(jù),此時(shí)該處理器核心305處在正常執(zhí)行模式下。在步驟S520中,依據(jù)該程序計(jì)數(shù)器309的地址數(shù)據(jù),判斷該處理核心305是否執(zhí)行非連續(xù)的指令。若判定該處理器核心305是執(zhí)行非連續(xù)的指令時(shí),則執(zhí)行步驟S530,若否,則返回步驟S510。
在步驟S530中,產(chǎn)生一追蹤斷點(diǎn)事件,以設(shè)定該處理器核心305進(jìn)入調(diào)試模式,同時(shí)將該計(jì)時(shí)裝置320關(guān)閉(disable),以避免該計(jì)時(shí)裝置320在調(diào)試模式下繼續(xù)計(jì)時(shí),達(dá)到虛擬實(shí)時(shí)調(diào)試功能。由于該計(jì)時(shí)裝置320提供一操作系統(tǒng)進(jìn)行上下文切換的計(jì)時(shí)功能,當(dāng)該計(jì)時(shí)裝置320被關(guān)閉(disable)時(shí),操作系統(tǒng)即無(wú)法進(jìn)行上下文切換,讓在該處理器核心305上執(zhí)行的程序暫停,以達(dá)到實(shí)時(shí)的效果。
在步驟S540中,獲取該處理器核心的一程序計(jì)數(shù)器309的值及該處理器核心305的狀態(tài)。在步驟S550中,將該程序計(jì)數(shù)器309的值及該處理器核心305的狀態(tài)傳送至該主機(jī),以在該主機(jī)上由一集成開發(fā)環(huán)境(IDE)軟件重組該處理器核心305內(nèi)部狀態(tài),產(chǎn)生該處理器核心305的追蹤調(diào)試信息,以供開發(fā)者參考使用。
在步驟S560中,設(shè)定該處理器核心305返回正常執(zhí)行模式。當(dāng)該處理器核心返回正常執(zhí)行模式后,同時(shí)將該計(jì)時(shí)裝置320使能,以讓操作系統(tǒng)能進(jìn)行上下文切換。此時(shí),該處理器核心305執(zhí)行進(jìn)入調(diào)試模式前程序計(jì)數(shù)器所指的指令,并返回步驟S510。
圖6顯示本發(fā)明的一實(shí)際范例,其為匯編程序及批注的示意圖,其中,圖右邊是程序計(jì)數(shù)器309的值記錄,其記錄該處理器核心305下一個(gè)執(zhí)行指令的地址。如圖所示,地址0x0、0x4、0x8、0xc及0x10處的指令均連續(xù)執(zhí)行,故程序計(jì)數(shù)器309的值依序?yàn)?x0、0x4、0x8、0xc及0x10。指令Bne r7,r4,Lab_b為比較寄存器r7及寄存器r4的值,若不相等時(shí),則跳轉(zhuǎn)(branch)至Lab_b處。由于寄存器r7為143,寄存器r4為53,故指令Bne成立,程序計(jì)數(shù)器309會(huì)儲(chǔ)存該Lab_b處的地址值,即0x24。此時(shí)即可判定該處理器核心305將執(zhí)行非連續(xù)的指令,故產(chǎn)生一追蹤斷點(diǎn)事件,以設(shè)定該處理器核心305進(jìn)入調(diào)試模式。同時(shí)將該計(jì)時(shí)裝置320關(guān)閉(disable),以避免該計(jì)時(shí)裝置320在調(diào)試模式下繼續(xù)計(jì)時(shí),達(dá)到虛擬實(shí)時(shí)調(diào)試功能。并獲取該處理器核心305的一程序計(jì)數(shù)器309的值及該處理器核心305的狀態(tài)。再將該程序計(jì)數(shù)器309的值及該處理器核心305的狀態(tài)傳送至該主機(jī),以在該主機(jī)上由一集成開發(fā)環(huán)境(IDE)軟件重組該處理器核心305內(nèi)部狀態(tài),產(chǎn)生該處理器核心305的追蹤調(diào)試信息,以供開發(fā)者參考使用。
綜上所述,本發(fā)明利用該追蹤監(jiān)視裝置330觀察處理器核心305的程序計(jì)數(shù)器309的變化電路,以產(chǎn)生一追蹤斷點(diǎn)事件,其利用原本調(diào)試的功能即可達(dá)成追蹤功能。另外,運(yùn)用處理器核心305進(jìn)入調(diào)試模式來(lái)控制計(jì)時(shí)裝置320計(jì)數(shù)來(lái)達(dá)成類似實(shí)時(shí)程序計(jì)數(shù)器追蹤的功能。本發(fā)明無(wú)需使用內(nèi)建的追蹤暫存裝置,可避免現(xiàn)有技術(shù)所需使用的多種追蹤暫存裝置,從而降低硬件成本。同時(shí)利用既有的JTAG引腳即可達(dá)成快速追蹤效果,更可避免現(xiàn)有技術(shù)需額外的輸出引腳所產(chǎn)生的問(wèn)題。
上述實(shí)施例僅為了方便說(shuō)明而舉例而已,本發(fā)明所主張的權(quán)利范圍應(yīng)以所附權(quán)利要求書為準(zhǔn),而非僅限于上述實(shí)施例。
權(quán)利要求
1.一種用于處理器的追蹤調(diào)試方法,該處理器具有一處理器核心、一高速緩存及一計(jì)時(shí)裝置,該處理器核心具有一正常執(zhí)行模式及一調(diào)試模式,并具有一程序計(jì)數(shù)器,用以記錄下一個(gè)指令的地址,該高速緩存通過(guò)一地址總線及數(shù)據(jù)總線連接至該處理器核心,該計(jì)時(shí)裝置連接至該處理器核心,以提供一操作系統(tǒng)進(jìn)行上下文切換的計(jì)時(shí)功能,該方法包括步驟(A)監(jiān)視該程序計(jì)數(shù)器;(B)依據(jù)該程序計(jì)數(shù)器的地址數(shù)據(jù),判斷該處理核心是否執(zhí)行非連續(xù)的指令;(C)若判定該處理器核心是執(zhí)行非連續(xù)的指令時(shí),產(chǎn)生一追蹤斷點(diǎn)事件,以設(shè)定該處理器核心進(jìn)入調(diào)試模式;(D)獲取該處理器核心的程序計(jì)數(shù)器的值及該處理器核心的狀態(tài);以及(E)傳送該程序計(jì)數(shù)器的值及該處理器核心的狀態(tài)至一主機(jī),以在該主機(jī)產(chǎn)生該處理器核心的追蹤調(diào)試信息。
2.如權(quán)利要求1所述的追蹤調(diào)試方法,其進(jìn)一步包含下列步驟(F)設(shè)定該處理器核心返回正常執(zhí)行模式,并返回步驟(A)持續(xù)監(jiān)視該程序計(jì)數(shù)器。
3.如權(quán)利要求1所述的追蹤調(diào)試方法,其中,若步驟(B)判定該處理器核心是執(zhí)行連續(xù)的指令時(shí),則返回步驟(A)。
4.如權(quán)利要求1所述的追蹤調(diào)試方法,其中,步驟(C)進(jìn)一步包含下列步驟(C1)當(dāng)該處理器核心進(jìn)入調(diào)試模式時(shí),同時(shí)將該計(jì)時(shí)裝置關(guān)閉,以讓在該處理器核心執(zhí)行的程序暫停。
5.如權(quán)利要求2所述的追蹤調(diào)試方法,其中,步驟(F)進(jìn)一步包含下列步驟(F1)該處理器核心返回正常執(zhí)行模式后,執(zhí)行該處理器核心進(jìn)入調(diào)試模式前程序計(jì)數(shù)器所指的指令。
6.如權(quán)利要求5所述的追蹤調(diào)試方法,其中,步驟(F)進(jìn)一步包含下列步驟(F2)當(dāng)該處理器核心返回正常執(zhí)行模式后,同時(shí)將該計(jì)時(shí)裝置使能,以讓在該處理器核心執(zhí)行的程序重新執(zhí)行。
7.一種用于處理器的追蹤調(diào)試系統(tǒng),該處理器具有一處理器核心、一高速緩存、一總線接口單元及一計(jì)時(shí)裝置,該處理器核心具有一正常執(zhí)行模式及一調(diào)試模式,并具有一程序計(jì)數(shù)器,用以記錄下一個(gè)指令的地址,該高速緩存通過(guò)一地址總線及數(shù)據(jù)總線連接至該處理器核心,該總線接口單元連接至該高速緩存及一主存儲(chǔ)器,該計(jì)時(shí)裝置連接至該處理器核心,以提供一操作系統(tǒng)進(jìn)行上下文切換的計(jì)時(shí)功能,該系統(tǒng)主要包含一追蹤監(jiān)視裝置,連接至該程序計(jì)數(shù)器,以監(jiān)視該程序計(jì)數(shù)器的地址數(shù)據(jù);一硬件斷點(diǎn)裝置,連接至該地址總線及數(shù)據(jù)總線,以依據(jù)預(yù)設(shè)的硬件斷點(diǎn),產(chǎn)生一硬件斷點(diǎn)事件,以讓該處理器核心暫停;以及一調(diào)試控制裝置,連接至該追蹤監(jiān)視裝置,以控制該追蹤監(jiān)視裝置的動(dòng)作;其中,該追蹤監(jiān)視裝置依據(jù)該該程序計(jì)數(shù)器的地址數(shù)據(jù),判斷該處理核心是否執(zhí)行連續(xù)的指令,若判定該處理器核心是執(zhí)行非連續(xù)的指令時(shí),該追蹤監(jiān)視裝置產(chǎn)生一追蹤斷點(diǎn)事件,以設(shè)定該處理器核心進(jìn)入調(diào)試模式,該硬件斷點(diǎn)裝置獲取該處理器核心的一程序計(jì)數(shù)器的值及該處理器核心的狀態(tài)。
8.如權(quán)利要求7所述的追蹤調(diào)試系統(tǒng),其進(jìn)一步包含一調(diào)試通訊鏈接,連接至該硬件斷點(diǎn)裝置與一主機(jī),將該程序計(jì)數(shù)器的值及該處理器核心的狀態(tài)傳送至該主機(jī),以在該主機(jī)產(chǎn)生該處理器核心的追蹤調(diào)試信息。
9.如權(quán)利要求8所述的追蹤調(diào)試系統(tǒng),其中,該調(diào)試通訊鏈接進(jìn)一步包含一接口裝置,連接至該主機(jī),以收發(fā)數(shù)據(jù)至該主機(jī);一內(nèi)存控制裝置,連接至該接口裝置、該總線接口單元及該硬件斷點(diǎn)裝置,以將硬件斷點(diǎn)裝置及調(diào)試控制裝置內(nèi)部寄存器映射到該主機(jī)的一內(nèi)存映像,以便于該主機(jī)進(jìn)行相關(guān)設(shè)定,該主機(jī)可通過(guò)該內(nèi)存控制裝置及該總線接口單元,而存取連接至該總線接口單元的主存儲(chǔ)器數(shù)據(jù)或是連接至該總線接口單元的外圍設(shè)備數(shù)據(jù)。
10.如權(quán)利要求9所述的追蹤調(diào)試系統(tǒng),其中,該接口裝置可為一JTAG接口。
全文摘要
本發(fā)明涉及一種用于處理器的追蹤調(diào)試方法及系統(tǒng),該方法包括步驟(A)監(jiān)視一程序計(jì)數(shù)器;(B)依據(jù)程序計(jì)數(shù)器的地址數(shù)據(jù),判斷處理核心是否執(zhí)行非連續(xù)的指令;(C)若判定處理器核心是執(zhí)行非連續(xù)的指令時(shí),產(chǎn)生一追蹤斷點(diǎn)事件,以設(shè)定處理器核心進(jìn)入調(diào)試模式;(D)獲取處理器核心的程序計(jì)數(shù)器的值及該處理器核心的狀態(tài);及(E)傳送程序計(jì)數(shù)器的值及該處理器核心的狀態(tài)至一主機(jī),以在該主機(jī)產(chǎn)生該處理器核心的追蹤調(diào)試信息。
文檔編號(hào)G06F11/36GK1779654SQ20041008664
公開日2006年5月31日 申請(qǐng)日期2004年11月19日 優(yōu)先權(quán)日2004年11月19日
發(fā)明者吳政諭 申請(qǐng)人:凌陽(yáng)科技股份有限公司