專利名稱:微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明屬于微處理器技術(shù)領(lǐng)域,特別涉及一種微處理器中數(shù)據(jù)斷點的實現(xiàn)裝置及
其方法。
背景技術(shù):
隨著計算機(jī)上的軟件系統(tǒng)的規(guī)模日益擴(kuò)大,軟件系統(tǒng)的開發(fā)難度也大大增加,軟件調(diào)試工作作為軟件開發(fā)過程中的重要一環(huán),其效率的提升成為計算機(jī)系統(tǒng)開發(fā)所關(guān)注的重要問題。在計算機(jī)系統(tǒng)底層硬件對軟件調(diào)試所提供的支持將能大大提升軟件調(diào)試工作的效率,因此現(xiàn)代處理器硬件都對軟件調(diào)試給予特殊的支持。例如ARM處理器的JTAG調(diào)試接口 、MIPS處理器的EJTAG調(diào)試接口 。通過這些接口 ,軟件可以直接控制底層硬件執(zhí)行諸如單步執(zhí)行、指令斷點、數(shù)據(jù)斷點等功能。 對于數(shù)據(jù)斷點功能而言,軟件調(diào)試人員將待觀察的地址和數(shù)據(jù)告知處理器,處理器自動監(jiān)測所有的數(shù)據(jù)訪問操作。當(dāng)發(fā)現(xiàn)訪問操作的地址與待觀察的地址相同時,則處理器停止正常執(zhí)行,進(jìn)入調(diào)試模式,交由軟件做進(jìn)一步處理。在有的情況下,觀察數(shù)據(jù)斷點不僅要看訪問的地址是否匹配,還要看訪問的數(shù)據(jù)是否為待觀察的數(shù)據(jù)。軟件在調(diào)試模式下完成相關(guān)處理器后,將處理器設(shè)置回正常執(zhí)行模式繼續(xù)執(zhí)行。通常軟件希望硬件提供的是精確的斷點的功能。 所謂精確斷點是指處理器由調(diào)試模式返回正常模式時,返回到報告斷點匹配的那條指令上。但是在實現(xiàn)了亂序調(diào)度的處理器中,精確的斷點會使得設(shè)計復(fù)雜度提升,因為在取數(shù)操作的結(jié)果返回用于判斷斷點是否匹配的時候,位于這條指令之后的指令可能已經(jīng)執(zhí)行。為了在這種情況下實現(xiàn)精確數(shù)據(jù)斷點,通常的技術(shù)方案是將所有指令對處理器狀態(tài)的修改都安排到指令提交之后進(jìn)行,這樣做的代價是需要花費大量存儲資源用于存放所有指令對處理器狀態(tài)的修改信息,特別是對于訪存指令,需要保存更多的相關(guān)內(nèi)容。因此,現(xiàn)有的技術(shù)不足導(dǎo)致需要設(shè)計更加簡潔高效的裝置來實現(xiàn)微處理器中的精確數(shù)據(jù)斷點。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置及其方法,在保證處理器流水線基本結(jié)構(gòu)不變的同時,以簡潔高效的方式實現(xiàn)了處理器中的精確數(shù)據(jù)斷點。
為實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案
—種微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置,包括
斷點配置部件,用于保存一條或多條斷點配置信息; 斷點匹配判定部件,用于判斷訪存指令是否與所述斷點配置部件中保存的斷點配置信息相匹配,并將判定結(jié)果保存于訪存指令執(zhí)行的狀態(tài)域中; 斷點觸發(fā)部件,用于檢查訪存指令的狀態(tài)域,當(dāng)判定結(jié)果為匹配時,暫停處理器的正常執(zhí)行狀態(tài),進(jìn)入調(diào)試狀態(tài)。 進(jìn)一步地,所述斷點配置部件中的所述斷點配置信息以全相聯(lián)查找表的形式組織成斷點配置信息表,該表的每一項對應(yīng)一條斷點配置信息。 進(jìn)一步地,每條所述斷點配置信息包括一斷點內(nèi)容信息和一斷點控制信息,其中 所述斷點內(nèi)容信息,用于保存待觀測斷點的信息,其包括
—數(shù)據(jù)訪問地址域,用于存放待觀測斷點的地址; —地址掩碼域,對應(yīng)訪問的地址,用于表示對應(yīng)的地址位是否參與斷點匹配比較; —數(shù)據(jù)訪問數(shù)值域,用于存放待觀測斷點的數(shù)值; —數(shù)值掩碼域,對應(yīng)訪問的數(shù)值,用于表示對應(yīng)的數(shù)值位是否參與斷點匹配比較; 所述斷點控制信息,用于控制斷點匹配過程,其包括 —使能控制域,用于控制斷點配置信息是否參與斷點匹配比較; —匹配模式域,用于控制斷點匹配比較方式是僅對地址進(jìn)行匹配比較還是對地址
和數(shù)值同時進(jìn)行匹配比較; —地址模式域,用于標(biāo)識該斷點配置信息的地址信息對應(yīng)的是待觀測訪問的虛地址還是物理地址。 本發(fā)明還提供一種微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,依次包括以下步驟
A、斷點配置步驟,用于保存一條或多條斷點配置信息; B、斷點匹配判定步驟,用于判斷訪存指令是否與所述斷點配置信息相匹配,并將判定結(jié)果保存于訪存指令執(zhí)行的狀態(tài)域中; C、斷點觸發(fā)步驟,用于檢查訪存指令的狀態(tài)域,當(dāng)判定結(jié)果為匹配時,暫停處理器的正常執(zhí)行狀態(tài),進(jìn)入調(diào)試狀態(tài)。 進(jìn)一步地,所述步驟A中的所述斷點配置信息以全相聯(lián)查找表的形式組織成斷點配置信息表,該表的每一項對應(yīng)一條斷點配置信息。 進(jìn)一步地,每條所述斷點配置信息包括一斷點內(nèi)容信息和一斷點控制信息,其中 所述斷點內(nèi)容信息,用于保存待觀測斷點的信息,其包括
—數(shù)據(jù)訪問地址域,用于存放待觀測斷點的地址; —地址掩碼域,對應(yīng)訪問的地址,用于表示對應(yīng)的地址位是否參與斷點匹配比較; —數(shù)據(jù)訪問數(shù)值域,用于存放待觀測斷點的數(shù)值; —數(shù)值掩碼域,對應(yīng)訪問的數(shù)值,用于表示對應(yīng)的數(shù)值位是否參與斷點匹配比較; 所述斷點控制信息,用于控制斷點匹配過程,其包括 —使能控制域,用于控制斷點配置信息是否參與斷點匹配比較; —匹配模式域,用于控制斷點匹配比較方式是僅對地址進(jìn)行匹配比較還是對地址
和數(shù)值同時進(jìn)行匹配比較; —地址模式域,用于標(biāo)識該斷點配置信息的地址信息對應(yīng)的是待觀測訪問的虛地址還是物理地址。
進(jìn)一步地,步驟A的所述斷點配置信息通過硬件固化方式或軟件配置方式錄入;
所述軟件配置方式包括內(nèi)存映射和專用寄存器讀寫兩種方式,其中
所述內(nèi)存映射方式為,處理器將一塊事先定義好的地址區(qū)域標(biāo)記成斷點配置專用,在隨后的對該地址區(qū)域的訪問對應(yīng)到斷點配置信息表; 所述專用寄存器方式包括直接將斷點配置信息表存于若干指定專用寄存器和利用指定專用寄存器作為讀寫接口對處理器內(nèi)部存儲進(jìn)行操作; 所述利用指定專用寄存器作為讀寫接口對處理器內(nèi)部存儲進(jìn)行操作具體為,對所述斷點配置信息表中的每個域均設(shè)有一唯一編址,將對每個域的讀寫轉(zhuǎn)化為對一段連續(xù)空間特定地址的讀寫,定義地址接口寄存器和數(shù)據(jù)接口寄存器,通過其對上述特定連續(xù)地址空間進(jìn)行讀寫訪問。 進(jìn)一步地,所述步驟B中,對于處理器中每一條執(zhí)行的訪存指令,將其所含的地址信息、數(shù)值信息分別同斷點配置信息表中各項對應(yīng)的地址掩碼、數(shù)值掩碼作用后得到第一結(jié)果,且各項的地址信息、數(shù)值信息分別與各項對應(yīng)的地址掩碼、數(shù)值掩碼作用后得到第二結(jié)果,比較第一結(jié)果和第二結(jié)果,如果兩結(jié)果一致,則這條訪存指令匹配一個斷點,將判定的結(jié)果保存到訪存指令執(zhí)行的狀態(tài)域中。 進(jìn)一步地,每條訪存指令的匹配比較在一個時鐘周期內(nèi)完成。 進(jìn)一步地,在所述步驟B中,對于取數(shù)操作,對其操作的地址進(jìn)行匹配判定,如果地址一致,則這條取數(shù)指令被標(biāo)記為"準(zhǔn)斷點匹配成功"狀態(tài),當(dāng)取數(shù)操作的數(shù)值返回時,進(jìn)行數(shù)值匹配判定,如果數(shù)值一致,則該取數(shù)操作的指令狀態(tài)改為"斷點匹配成功",否則撤銷該取數(shù)指令的"準(zhǔn)斷點匹配成功"狀態(tài),該該取數(shù)操作指令繼續(xù)執(zhí)行。 進(jìn)一步地,所述步驟C中斷點觸發(fā)處理的優(yōu)先級低于處理器中例外觸發(fā)的優(yōu)先級。
本發(fā)明具有以下優(yōu)點 1、本發(fā)明采用表的形式管理斷點配置信息,不僅增加斷點配置容量的擴(kuò)展性,也使得斷點配置更趨靈活。 2、通過細(xì)分的"斷點匹配成功"狀態(tài)和"準(zhǔn)斷點匹配成功"狀態(tài),在對處理器流水
線做很少改動的情況下,有效的實現(xiàn)精確數(shù)據(jù)斷點。 下面結(jié)合附圖和具體實施方式
對本發(fā)明做進(jìn)一步詳細(xì)描述。
圖1為本發(fā)明微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置實施例結(jié)構(gòu)示意 圖2為本發(fā)明微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法實施例流程圖。
具體實施方式
實施例一 如圖1所示,一種微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置,包括
斷點配置部件l,用于保存一條或多條斷點配置信息; 斷點匹配判定部件2,用于判斷訪存指令是否與所述斷點配置部件1中保存的斷點配置信息相匹配,并將判定結(jié)果保存于訪存指令執(zhí)行的狀態(tài)域中;
斷點觸發(fā)部件3,用于檢查訪存指令的狀態(tài)域,當(dāng)判定結(jié)果為匹配時,暫停處理器的正常執(zhí)行狀態(tài),進(jìn)入調(diào)試狀態(tài)。 其中,在斷點配置部件1中,所述斷點配置信息以全相聯(lián)查找表的形式組織成斷點配置信息表。該表的每一項對應(yīng)一條斷點配置信息,每條所述斷點配置信息包括一斷點內(nèi)容信息11和一斷點控制信息12。其中,所述斷點內(nèi)容信息11用于保存待觀測斷點的信息,其保存的是描述斷點特質(zhì)的內(nèi)容,本實施例中所述斷點內(nèi)容信息11包括
—數(shù)據(jù)訪問地址域,用于存放待觀測斷點的地址,該地址即可以是程序中所用的虛地址,也可以是硬件所用的物理地址; —地址掩碼域,對應(yīng)訪問的地址,用于表示對應(yīng)的地址位是否參與斷點匹配比較; —數(shù)據(jù)訪問數(shù)值域,用于存放待觀測斷點的數(shù)值; —數(shù)值掩碼域,對應(yīng)訪問的數(shù)值,用于表示對應(yīng)的數(shù)值位是否參與斷點匹配比較; 上述四個域的大小可根據(jù)需要設(shè)定,本實施例中為32比特。所述地址掩碼域和數(shù)值掩碼域的掩碼某位為比特0表示地址或數(shù)值的對應(yīng)位在進(jìn)行斷點匹配比較時不參與比較,即該位既可以視為比特0也可以視為比特1 ;掩碼某位為比特1表示地址或數(shù)值的對應(yīng)位在進(jìn)行斷點匹配時,必須與斷點配置信息中存放的待觀測地址或數(shù)值的對應(yīng)位進(jìn)行比較。通過這種實現(xiàn)方式, 一條斷點配置信息能表示一系列相關(guān)地址和數(shù)值,并且通過這種簡單的數(shù)據(jù)壓縮方式可有效提升斷點配置信息表的存儲效率。
所述斷點控制信息12,用于控制斷點匹配過程,在本實施例中具體包括 —使能控制域,用于控制斷點配置信息是否參與斷點匹配比較,即控制該條斷點
配置信息是否視為有效,本實施例中該域置為1表示這一條斷點信息參與斷點匹配比較,
為0則表示將這一條斷點配置信息參與斷點匹配比較的功能關(guān)閉,并且僅將使能控制域置
為關(guān)閉狀態(tài),即為O時,每條斷點配置信息中的內(nèi)容信息仍然會保存在表中,直至下一次顯
式的對其進(jìn)行修改; —匹配模式域,用于控制斷點匹配比較方式,即是僅對地址進(jìn)行匹配比較還是對地址和數(shù)值同時進(jìn)行匹配比較;所述匹配模式域本實施例中該域置為0表示僅對地址進(jìn)行匹配比較,為1表示對地址和數(shù)值同時進(jìn)行匹配比較; —地址模式域,用于標(biāo)識該斷點配置信息的地址信息對應(yīng)的是待觀測訪問的虛地址還是物理地址,本實施例中該域置為1表示所存的是物理地址,為o表示所存的是虛地址。 本實施例中所述的斷點配置信息可通過硬件固化和軟件配置兩種方式錄入到處理器中。 其中,所述硬件固化方式具體為,在每次上電之后由硬件自動填入到斷點配置部件1的斷點配置信息表中,這里固化的斷點配置信息可以是任意指定,在本實施例中所有的斷點配置信息的使能控制域均設(shè)置為0,即關(guān)閉斷點匹配比較。 其中,所述軟件配置方式,具體包括內(nèi)存映射和專用寄存器讀寫兩種方式,軟件配置方式可保證用戶在具體調(diào)試過程中實時的加入新的欲觀測斷點,控制使能或關(guān)閉各個斷點匹配比較。
其中,所述內(nèi)存映射方式具體為,處理器將一塊事先定義好的地址區(qū)域標(biāo)記成斷
點配置專用,這樣,在隨后的對該地址區(qū)域的訪問即直接對應(yīng)到斷點配置信息表。 其中,所述專用寄存器方式又可進(jìn)一步劃分為直接將斷點配置信息表存于若干指
定專用寄存器,以及利用指定專用寄存器作為讀寫接口對處理器內(nèi)部存儲進(jìn)行操作這兩種
不同的方式。在本實施例中采用后一種方式,所述利用指定專用寄存器作為讀寫接口對處
理器內(nèi)部存儲進(jìn)行操作具體為,對所述斷點配置信息表中的每個域均設(shè)有一唯一編址,將
對每個域的讀寫轉(zhuǎn)化為對一段連續(xù)空間特定地址的讀寫,定義地址接口寄存器和數(shù)據(jù)接口
寄存器,通過其對上述特定連續(xù)地址空間進(jìn)行讀寫訪問。以寫操作為例,程序首先將待訪
問的域的地址寫入到所述地址接口寄存器中,隨后將欲寫入的數(shù)據(jù)寫入到所述數(shù)據(jù)接口寄
存器中,隨后斷點配置部件1將根據(jù)這兩個寄存器中的信息更新斷點信息表中指定域的內(nèi)
容。讀操作過程與寫操作類似,程序首先將待訪問的域的地址寫入到地址接口寄存器中,隨
后讀取數(shù)據(jù)接口寄存器,即可返回欲訪問的斷點信息表中指定域的內(nèi)容。 所述斷點匹配判定部件2根據(jù)斷點配置部件1中的斷點配置信息標(biāo)記出與之匹配
的訪存指令。具體來說,對于處理器中每一條執(zhí)行的訪存指令,將其所含的地址信息、數(shù)值 信息分別同斷點配置信息表中各項對應(yīng)的地址掩碼、數(shù)值掩碼作用后得到第一結(jié)果,且各 項的地址信息、數(shù)值信息分別與各項對應(yīng)的地址掩碼、數(shù)值掩碼作用后得到第二結(jié)果,比較 第一結(jié)果和第二結(jié)果,如果兩結(jié)果一致,則這條訪存指令匹配一個斷點。由于每條訪存指令 都必須與斷點配置信息表中所有使能有效的項逐一進(jìn)行比較,為盡可能降低查找比較的延 遲開銷,所有項的比較設(shè)定為在一個時鐘周期內(nèi)完成。所述斷點匹配判定部件2將判定的 結(jié)果保存到訪存指令執(zhí)行的狀態(tài)域中,伴隨該指令進(jìn)入到后續(xù)的流水級中,直至到達(dá)斷點 觸發(fā)部件3。斷點匹配判定部件2所存入的斷點判定結(jié)果作為指令執(zhí)行過程記錄的狀態(tài)的 一種,與指令執(zhí)行過程中存入狀態(tài)域的其它狀態(tài)互不影響。 本實施例中所述斷點觸發(fā)部件3在每條指令的提交階段,檢查指令的斷點匹配結(jié)
果,如果斷點匹配結(jié)果成功,則斷點觸發(fā)部件3立即清空流水線,觸發(fā)處理器內(nèi)部對于斷點
的影響,使處理器陷入調(diào)試模式,進(jìn)入調(diào)試處理例程。斷點觸發(fā)部件3處理優(yōu)先級低于處理
器中例外觸發(fā)部件,若一條訪存指令斷點匹配成功的同時,還被標(biāo)記上其它例外,那么例外
觸發(fā)部件將優(yōu)先進(jìn)行處理。 實施例二 如圖2所示,一種微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,采用實施例一所述的微
處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置,依次包括以下步驟 A、斷點配置步驟IO,用于保存一條或多條斷點配置信息; B、斷點匹配判定步驟20,用于判斷訪存指令是否與所述斷點配置信息相匹配,并 將判定結(jié)果保存于訪存指令執(zhí)行的狀態(tài)域中; C、斷點觸發(fā)步驟30,用于檢查訪存指令的狀態(tài)域,當(dāng)判定結(jié)果為匹配時,暫停處理 器的正常執(zhí)行狀態(tài),進(jìn)入調(diào)試狀態(tài)。 所述步驟A中的所述斷點配置信息以全相聯(lián)查找表的形式組織成斷點配置信息 表,該表的每一項對應(yīng)一條斷點配置信息。 其中,每條所述斷點配置信息包括一斷點內(nèi)容信息11和一斷點控制信息12,其 中
所述斷點內(nèi)容信息ll,用于保存待觀測斷點的信息,其包括
—數(shù)據(jù)訪問地址域,用于存放待觀測斷點的地址; —地址掩碼域,對應(yīng)訪問的地址,用于表示對應(yīng)的地址位是否參與斷點匹配比較;
—數(shù)據(jù)訪問數(shù)值域,用于存放待觀測斷點的數(shù)值; —數(shù)值掩碼域,對應(yīng)訪問的數(shù)值,用于表示對應(yīng)的數(shù)值位是否參與斷點匹配比 較; 所述斷點控制信息12,用于控制斷點匹配過程,其包括 —使能控制域,用于控制斷點配置信息是否參與斷點匹配比較; —匹配模式域,用于控制斷點匹配比較方式是僅對地址進(jìn)行匹配比較還是對地址
和數(shù)值同時進(jìn)行匹配比較; —地址模式域,用于標(biāo)識該斷點配置信息的地址信息對應(yīng)的是待觀測訪問的虛地 址還是物理地址。 步驟A的所述斷點配置信息通過硬件固化方式或軟件配置方式錄入; 其中,所述硬件固化方式具體為,在每次上電之后由硬件自動填入斷點配置信息表中。 所述軟件配置方式包括內(nèi)存映射和專用寄存器讀寫兩種方式,其中 所述內(nèi)存映射方式為,處理器將一塊事先定義好的地址區(qū)域標(biāo)記成斷點配置專
用,在隨后的對該地址區(qū)域的訪問對應(yīng)到斷點配置信息表; 所述專用寄存器方式包括直接將斷點配置信息表存于若干指定專用寄存器和利 用指定專用寄存器作為讀寫接口對處理器內(nèi)部存儲進(jìn)行操作; 所述利用指定專用寄存器作為讀寫接口對處理器內(nèi)部存儲進(jìn)行操作具體為,對所 述斷點配置信息表中的每個域均設(shè)有一唯一編址,將對每個域的讀寫轉(zhuǎn)化為對一段連續(xù)空 間特定地址的讀寫,定義地址接口寄存器和數(shù)據(jù)接口寄存器,通過其對上述特定連續(xù)地址 空間進(jìn)行讀寫訪問。 所述步驟B中,對于處理器中每一條執(zhí)行的訪存指令,將其所含的地址信息、數(shù)值 信息分別同斷點配置信息表中各項對應(yīng)的地址掩碼、數(shù)值掩碼作用后得到第一結(jié)果,且各 項的地址信息、數(shù)值信息分別與各項對應(yīng)的地址掩碼、數(shù)值掩碼作用后得到第二結(jié)果,比較 第一結(jié)果和第二結(jié)果,如果兩結(jié)果一致,則這條訪存指令匹配一個斷點,將判定的結(jié)果保存 到訪存指令執(zhí)行的狀態(tài)域中。 其中,每條訪存指令的匹配比較在一個時鐘周期內(nèi)完成。 在所述步驟B中,對于取數(shù)操作,對其操作的地址進(jìn)行匹配判定,如果地址一致, 則這條取數(shù)指令被標(biāo)記為"準(zhǔn)斷點匹配成功"狀態(tài),當(dāng)取數(shù)操作的數(shù)值返回時,進(jìn)行數(shù)值匹 配判定,如果數(shù)值一致,則該取數(shù)操作的指令狀態(tài)改為"斷點匹配成功",否則撤銷該取數(shù)指 令的"準(zhǔn)斷點匹配成功"狀態(tài),該該取數(shù)操作指令繼續(xù)執(zhí)行。 其中,所述步驟C中斷點觸發(fā)處理的優(yōu)先級低于處理器中例外觸發(fā)的優(yōu)先級。
下面舉三個具體的實施例子,通過數(shù)據(jù)斷點信息的配置、存數(shù)指令的斷點匹配和 取數(shù)指令的斷點匹配的例子來具體說明本發(fā)明提到的數(shù)據(jù)斷點實現(xiàn)。
例1、在處理器中通過軟件配置兩個數(shù)據(jù)斷點 第一項同時觀察地址和數(shù)據(jù),地址0x00401280,為虛地址;數(shù)據(jù)0x0,地址和數(shù)據(jù)掩碼均為Oxffffffff ; 第二項僅觀察地址,地址0x0047ff80,為虛地址,地址掩碼為0xffffff80。
在配置時將這兩個數(shù)據(jù)斷點存放于斷點配置信息表的第一項和第二項。對于第一 項頁言,其數(shù)據(jù)訪問地址域、地址掩碼域、數(shù)據(jù)訪問數(shù)值域和數(shù)值掩碼域、地址模式域、匹配 模式域和使能控制域這七個域從0到6依次編址。第二項的七個域從7到13依次編址。
以第一項的地址域?qū)懭霝槔?,先對地址接口專用寄存器寫?,即將第一項的數(shù)據(jù) 訪問地址域的地址寫入,隨后對數(shù)據(jù)接口專用寄存器寫入0x00401280,這樣斷點配置信息 表的第一項的數(shù)據(jù)訪問地址域即被設(shè)置為0x00401280。重復(fù)這樣的過程直至第一項和第二 項均設(shè)置完畢。 例2、假設(shè)斷點配置信息表中共有三項內(nèi)容 第一項地址0x00400100,為虛地址;地址掩碼Oxffffffff ;數(shù)值0x64 ;數(shù)值 掩碼Oxffffffff ;匹配模式地址數(shù)據(jù)均觀察,使能關(guān)閉; 第二項地址0x00400200,為虛地址;地址掩碼;Oxffffffff ;數(shù)值0x7c ;數(shù)值 掩碼Oxffffffff,地址數(shù)據(jù)均觀察,使能開啟; 第二項地址0x00400210,為虛地址;地址掩碼Oxffffffff ;數(shù)值0xl ;數(shù)值掩 碼Oxffffffff ,地址數(shù)據(jù)均觀察,使能開啟。 —條存數(shù)指令,其訪問虛地址為0x00400200,物理地址為0x0008d200,待存入數(shù) 據(jù)為0x7c。該指令在訪存執(zhí)行時,其訪問地址與存入數(shù)據(jù)經(jīng)由斷點匹配判定部件2進(jìn)行判 定。首先根據(jù)使能控制信息,只需要檢查斷點配置信息表的第二項和第三項,進(jìn)一步查看匹 配模式域和地址模式域得知,這兩項均需要同時比較地址和數(shù)值。將該訪存指令的虛地址 和數(shù)值與第二項、第三項對應(yīng)的地址掩碼和數(shù)據(jù)掩碼逐位相與后,同時將第二項和第三項 的地址掩碼和數(shù)據(jù)掩碼與自身保存的地址和數(shù)值也進(jìn)行逐位相與,將兩部分處理后的結(jié)果 進(jìn)行比較。比較結(jié)果與第二項相匹配。因此判定該訪存指令命中斷點配置信息表中的第二 項,將斷點命中與命中第二項的信息存入到這條指令的狀態(tài)域中。該存數(shù)指令不產(chǎn)生操作 執(zhí)行效果,從訪存部件中退出。待這條存數(shù)指令提交時,斷點觸發(fā)部件3查看該指令的狀態(tài) 域,得知該指令命中斷點,因此立即清空流水線,通知處理器進(jìn)入調(diào)試模式,讓取指部件從 調(diào)試處理例程入口開始取指。
例3、斷點配置信息表中的內(nèi)容同例2。 假設(shè)有一取數(shù)指令,其訪問虛地址為0x00400210,物理地址為0x0008d210。在該 取數(shù)指令在高速緩存(Cache)中不命中,在其結(jié)果從內(nèi)存返回之前,斷點匹配判定部件2先 根據(jù)該指令地址,采用例2中的判定方法進(jìn)行判定,可得結(jié)果為地址與斷點配置信息表中 的第三項的地址匹配。因此斷點匹配判定部件3先將該取數(shù)指令置為"準(zhǔn)斷點命中"狀態(tài)。 該指令結(jié)果從內(nèi)存返回,其值為0x78。斷點匹配判定部件2將該數(shù)值與斷點配置信息表中 的第三項的數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致,因此撤銷該取數(shù)指令的"準(zhǔn)斷點命中"狀態(tài),該指令 繼續(xù)正常執(zhí)行。 最后應(yīng)說明的是以上實施例僅用以說明而非限制本發(fā)明的技術(shù)方案,盡管參照 上述實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對本發(fā) 明進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng) 涵蓋在本發(fā)明的權(quán)利要求范圍中。
權(quán)利要求
一種微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置,其特征在于包括斷點配置部件(1),用于保存一條或多條斷點配置信息;斷點匹配判定部件(2),用于判斷訪存指令是否與所述斷點配置部件(1)中保存的斷點配置信息相匹配,并將判定結(jié)果保存于訪存指令執(zhí)行的狀態(tài)域中;斷點觸發(fā)部件(3),用于檢查訪存指令的狀態(tài)域,當(dāng)判定結(jié)果為匹配時,暫停處理器的正常執(zhí)行狀態(tài),進(jìn)入調(diào)試狀態(tài)。
2. 根據(jù)權(quán)利要求1所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置,其特征在于所述斷點配置部件(1)中的所述斷點配置信息以全相聯(lián)查找表的形式組織成斷點配置信息表,該表的每一項對應(yīng)一條斷點配置信息。
3. 根據(jù)權(quán)利要求1或2所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置,其特征在于每條所述斷點配置信息包括一斷點內(nèi)容信息(11)和一斷點控制信息(12),其中;所述斷點內(nèi)容信息(ll),用于保存待觀測斷點的信息,其包括一數(shù)據(jù)訪問地址域,用于存放待觀測斷點的地址;一地址掩碼域,對應(yīng)訪問的地址,用于表示對應(yīng)的地址位是否參與斷點匹配比較;一數(shù)據(jù)訪問數(shù)值域,用于存放待觀測斷點的數(shù)值;一數(shù)值掩碼域,對應(yīng)訪問的數(shù)值,用于表示對應(yīng)的數(shù)值位是否參與斷點匹配比較;所述斷點控制信息(12),用于控制斷點匹配過程,其包括一使能控制域,用于控制斷點配置信息是否參與斷點匹配比較;一匹配模式域,用于控制斷點匹配比較方式是僅對地址進(jìn)行匹配比較還是對地址和數(shù)值同時進(jìn)行匹配比較;一地址模式域,用于標(biāo)識該斷點配置信息的地址信息對應(yīng)的是待觀測訪問的虛地址還是物理地址。
4. 一種微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,其特征在于依次包括以下步驟A、 斷點配置步驟(IO),用于保存一條或多條斷點配置信息;B、 斷點匹配判定步驟(20),用于判斷訪存指令是否與所述斷點配置信息相匹配,并將判定結(jié)果保存于訪存指令執(zhí)行的狀態(tài)域中;C、 斷點觸發(fā)步驟(30),用于檢查訪存指令的狀態(tài)域,當(dāng)判定結(jié)果為匹配時,暫停處理器的正常執(zhí)行狀態(tài),進(jìn)入調(diào)試狀態(tài)。
5. 根據(jù)權(quán)利要求4所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,其特征在于所述步驟A中的所述斷點配置信息以全相聯(lián)查找表的形式組織成斷點配置信息表,該表的每一項對應(yīng)一條斷點配置信息。
6. 根據(jù)權(quán)利要求4或5所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,其特征在于每條所述斷點配置信息包括一斷點內(nèi)容信息(11)和一斷點控制信息(12),其中所述斷點內(nèi)容信息(ll),用于保存待觀測斷點的信息,其包括一數(shù)據(jù)訪問地址域,用于存放待觀測斷點的地址;一地址掩碼域,對應(yīng)訪問的地址,用于表示對應(yīng)的地址位是否參與斷點匹配比較;一數(shù)據(jù)訪問數(shù)值域,用于存放待觀測斷點的數(shù)值;一數(shù)值掩碼域,對應(yīng)訪問的數(shù)值,用于表示對應(yīng)的數(shù)值位是否參與斷點匹配比較;所述斷點控制信息(12),用于控制斷點匹配過程,其包括一使能控制域,用于控制斷點配置信息是否參與斷點匹配比較;一匹配模式域,用于控制斷點匹配比較方式是僅對地址進(jìn)行匹配比較還是對地址和數(shù)值同時進(jìn)行匹配比較;一地址模式域,用于標(biāo)識該斷點配置信息的地址信息對應(yīng)的是待觀測訪問的虛地址還是物理地址。
7. 根據(jù)權(quán)利要求6所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,其特征在于步驟A的所述斷點配置信息通過硬件固化方式或軟件配置方式錄入;所述軟件配置方式包括內(nèi)存映射和專用寄存器讀寫兩種方式,其中所述內(nèi)存映射方式為,處理器將一塊事先定義好的地址區(qū)域標(biāo)記成斷點配置專用,在隨后的對該地址區(qū)域的訪問對應(yīng)到斷點配置信息表;所述專用寄存器方式包括直接將斷點配置信息表存于若干指定專用寄存器和利用指定專用寄存器作為讀寫接口對處理器內(nèi)部存儲進(jìn)行操作;所述利用指定專用寄存器作為讀寫接口對處理器內(nèi)部存儲進(jìn)行操作具體為,對所述斷點配置信息表中的每個域均設(shè)有一唯一編址,將對每個域的讀寫轉(zhuǎn)化為對一段連續(xù)空間特定地址的讀寫,定義地址接口寄存器和數(shù)據(jù)接口寄存器,通過其對上述特定連續(xù)地址空間進(jìn)行讀寫訪問。
8. 根據(jù)權(quán)利要求4所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,其特征在于所述步驟B中,對于處理器中每一條執(zhí)行的訪存指令,將其所含的地址信息、數(shù)值信息分別同斷點配置信息表中各項對應(yīng)的地址掩碼、數(shù)值掩碼作用后得到第一結(jié)果,且各項的地址信息、數(shù)值信息分別與各項對應(yīng)的地址掩碼、數(shù)值掩碼作用后得到第二結(jié)果,比較第一結(jié)果和第二結(jié)果,如果兩結(jié)果一致,則這條訪存指令匹配一個斷點,將判定的結(jié)果保存到訪存指令執(zhí)行的狀態(tài)域中。
9. 根據(jù)權(quán)利要求8所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,其特征在于每條訪存指令的匹配比較在一個時鐘周期內(nèi)完成。
10. 根據(jù)權(quán)利要求4所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,其特征在于在所述步驟B中,對于取數(shù)操作,對其操作的地址進(jìn)行匹配判定,如果地址一致,則這條取數(shù)指令被標(biāo)記為"準(zhǔn)斷點匹配成功"狀態(tài),當(dāng)取數(shù)操作的數(shù)值返回時,進(jìn)行數(shù)值匹配判定,如果數(shù)值一致,則該取數(shù)操作的指令狀態(tài)改為"斷點匹配成功",否則撤銷該取數(shù)指令的"準(zhǔn)斷點匹配成功"狀態(tài),該該取數(shù)操作指令繼續(xù)執(zhí)行。
11. 根據(jù)權(quán)利要求4所述的微處理器中精確數(shù)據(jù)斷點的實現(xiàn)方法,其特征在于所述步驟C中斷點觸發(fā)處理的優(yōu)先級低于處理器中例外觸發(fā)的優(yōu)先級。
全文摘要
微處理器中精確數(shù)據(jù)斷點的實現(xiàn)裝置及其方法,所述裝置包括斷點配置部件,用于保存一條或多條斷點配置信息;斷點匹配判定部件,用于判斷訪存指令是否與所述斷點配置部件中保存的斷點配置信息相匹配,并將判定結(jié)果保存于訪存指令執(zhí)行的狀態(tài)域中;斷點觸發(fā)部件,用于檢查訪存指令的狀態(tài)域,當(dāng)判定結(jié)果為匹配時,暫停處理器的正常執(zhí)行狀態(tài),進(jìn)入調(diào)試狀態(tài)。本發(fā)明采用表的形式管理斷點配置信息,不僅增加斷點配置容量的擴(kuò)展性,也使得斷點配置更趨靈活。并通過細(xì)分的“斷點匹配成功”狀態(tài)和“準(zhǔn)斷點匹配成功”狀態(tài),在對處理器流水線做很少改動的情況下,有效的實現(xiàn)精確數(shù)據(jù)斷點。
文檔編號G06F11/36GK101777021SQ20101003446
公開日2010年7月14日 申請日期2010年1月21日 優(yōu)先權(quán)日2010年1月21日
發(fā)明者徐翠萍, 李祖松, 汪文祥, 郝守青 申請人:北京龍芯中科技術(shù)服務(wù)中心有限公司