基于有限狀態(tài)機的多周期非流水線cpu調試方法
【專利摘要】本發(fā)明公開了一種基于有限狀態(tài)機的多周期非流水線CPU調試方法,該方法可以在不改變CPU寄存器組、程序計數(shù)器、狀態(tài)寄存器及其他CPU運行現(xiàn)場的情況下將CPU工作“暫停”,在該狀態(tài)下可以將CPU的狀態(tài)讀出,以達到調試的目的;此外,該方案引入的額外電路較少,且該功能在正常工作模式下不會影響到CPU的運行狀態(tài)及效率。
【專利說明】
基于有限狀態(tài)機的多周期非流水線CPU調試方法
技術領域
[0001]本發(fā)明涉及計算機技術領域,尤其涉及一種基于有限狀態(tài)機的多周期非流水線CHJ調試方法。
【背景技術】
[0002]在處理器設計過程中,往往會耗費大量的人力物力來對CPU的正確性進行驗證,一旦出現(xiàn)問題,則需要有一可靠的手段來定位問題。
[0003]然而,現(xiàn)有技術中,對正在運行的CPU進行調試時會需要引入較為復雜的電路,同時,還對于CPU的運行狀態(tài)及效率產生一定的影響。
【發(fā)明內容】
[0004]本發(fā)明的目的是提供一種基于有限狀態(tài)機的多周期非流水線CPU調試方法,其引入額外電路較少,且在CHJ正常工作模式下不會影響到CPU的運行狀態(tài)及效率。
[0005]本發(fā)明的目的是通過以下技術方案實現(xiàn)的:
[0006]—種基于有限狀態(tài)機的多周期非流水線CPU調試方法,包括:
[0007]CPU處理每條指令的步驟依次為取指、譯碼、執(zhí)行、訪存與回寫,步驟之間的跳轉通過有限狀態(tài)機來實現(xiàn);
[0008]通過引入寄存器A與寄存器B來實現(xiàn)CPU調試,所述寄存器A用于設置運行模式,所述寄存器B用于指令計數(shù);實現(xiàn)CPU調試的步驟如下:
[0009]在初始狀態(tài)或者當前指令執(zhí)行完回寫步驟后所述有限狀態(tài)機根據(jù)寄存器A的值來判斷當前的運行模式;
[0010]若為多步調試模式,則進入調試狀態(tài),并判斷寄存器B的值;當寄存器B不為零時,將寄存器B的值減I,并由所述有限狀態(tài)機跳過該調試狀態(tài),由CPU繼續(xù)處理下一條指令,如此循環(huán)直至寄存器B的值減為零后,由所述有限狀態(tài)機將CPU阻塞在調試狀態(tài);
[0011]若為單步調試模式,由所述有限狀態(tài)機將CPU阻塞在調試狀態(tài),直至寄存器B有新的指令計數(shù)寫入,并由所述有限狀態(tài)機控制離開調試狀態(tài),同時,將寄存器B的值清零。
[0012]進一步的,若根據(jù)寄存器A的值判定當前為正常工作模式,則由CPU繼續(xù)處理下一條指令。
[0013]由上述本發(fā)明提供的技術方案可以看出,可以在不改變CTU寄存器組、程序計數(shù)器、狀態(tài)寄存器及其他CHJ運行現(xiàn)場的情況下將CPU工作“暫?!保谠摖顟B(tài)下可以將CPU的狀態(tài)讀出,以達到調試的目的;此外,該方案引入的額外電路較少,且該功能在正常工作模式下不會影響到CHJ的運行狀態(tài)及效率。
【附圖說明】
[0014]為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域的普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他附圖。
[0015]圖1為本發(fā)明實施例提供的CPU處理每條指令的示意圖;
[0016]圖2為本發(fā)明實施例提供的基于有限狀態(tài)機的多周期非流水線CPU調試方法的示意圖;
[0017]圖3為本發(fā)明實施例提供的實現(xiàn)CPU調試的流程圖。
【具體實施方式】
[0018]下面結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明的保護范圍。
[0019]如圖1所示,CPU處理每條指令的步驟依次為取指、譯碼、執(zhí)行、訪存與回寫;步驟之間的跳轉通過有限狀態(tài)機來實現(xiàn);
[0020]本發(fā)明實施例中,通過引入寄存器A與寄存器B來實現(xiàn)CPU調試,同時,在有限狀態(tài)機中插入一個判定狀態(tài),如圖2所示。
[0021]本發(fā)明實施例中,所述寄存器A用于設置運行模式,所述寄存器B用于指令計數(shù)。
[0022]實現(xiàn)CPU調試的步驟圖3所示,其主要包括:
[0023]在初始狀態(tài)或者當前指令執(zhí)行完回寫步驟后所述有限狀態(tài)機根據(jù)寄存器A的值來判斷當前的運行模式;
[0024]若為多步調試模式,則進入調試狀態(tài),并判斷寄存器B的值;當寄存器B不為零時,將寄存器B的值減I,并由所述有限狀態(tài)機跳過該調試狀態(tài),由CPU繼續(xù)處理下一條指令,如此循環(huán)直至寄存器B的值減為零后,由所述有限狀態(tài)機將CPU阻塞在調試狀態(tài);
[0025]若為單步調試模式,由所述有限狀態(tài)機將CPU阻塞在調試狀態(tài),直至寄存器B有新的指令計數(shù)寫入,并由所述有限狀態(tài)機控制離開調試狀態(tài),同時,將寄存器B的值清零。
[0026]當有限狀態(tài)機將CPU阻塞在調試狀態(tài)后,則可將CPU的狀態(tài)讀出,以達到調試的目的。
[0027]此外,若根據(jù)寄存器A的值判定當前為正常工作模式,則由CPU繼續(xù)處理下一條指令。
[0028]由上述過程可見,運行模式主要包括:正常工作模式、多步調試模式、單步調試模式,各個運行模式對應的數(shù)值可以預先設定并存儲在寄存器A中。
[0029]示例性的,寄存器A可取0、1、2三個值,O為正常工作模式(此模式為默認狀態(tài)),1為單步調試模式,2為多步調試模式。
[0030]單步調試模式使用過程如下:
[0031]I)將寄存器A置為I,進入單步調試模式,CPU執(zhí)行完當前指令后將會阻塞。
[0032]2)向寄存器B寫數(shù)據(jù)(不關心寫入值),執(zhí)行下一條指令。
[0033]3)通過調試接口讀取CPU狀態(tài)(PC、狀態(tài)寄存器、寄存器文件及數(shù)據(jù)RAM等)。
[0034]4)重復執(zhí)行2、3兩步驟,直至調試結束。
[0035]5)將寄存器A置為O,返回正常工作模式,CPU繼續(xù)工作。
[0036]多步調試模式使用過程如下:
[0037]I)將寄存器A置為2,進入多步調試模式,此時寄存器B的值應為0,CPU執(zhí)行完當前指令后將會阻塞。
[0038]2)向寄存器B寫入數(shù)據(jù)。
[0039]3)CPU繼續(xù)執(zhí)行指令,每執(zhí)行一條指令,將寄存器B數(shù)據(jù)減I,直至寄存器B的值變?yōu)镺后將會阻塞。
[0040 ] 4)通過調試接口讀取CPU狀態(tài)(PC、狀態(tài)寄存器、寄存器文件及數(shù)據(jù)RAM等)
[0041]5)如需繼續(xù)多步調試,則執(zhí)行2、3、4步驟,否則執(zhí)行6步驟。
[0042]6)將寄存器A的值置為0,返回正常工作模式,CPU繼續(xù)工作。
[0043]本發(fā)明實施例的上述方案中,可以在不改變CPU寄存器組、程序計數(shù)器、狀態(tài)寄存器及其他CPU運行現(xiàn)場的情況下將CPU工作“暫?!?,在該狀態(tài)下可以將CPU的狀態(tài)讀出,以達到調試的目的;此外,該方案引入的額外電路較少,且該功能在正常工作模式下不會影響到CHJ的運行狀態(tài)及效率。
[0044]以上所述,僅為本發(fā)明較佳的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明披露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求書的保護范圍為準。
【主權項】
1.一種基于有限狀態(tài)機的多周期非流水線CRJ調試方法,其特征在于,包括: CPU處理每條指令的步驟依次為取指、譯碼、執(zhí)行、訪存與回寫,步驟之間的跳轉通過有限狀態(tài)機來實現(xiàn); 通過引入寄存器A與寄存器B來實現(xiàn)CPU調試,所述寄存器A用于設置運行模式,所述寄存器B用于指令計數(shù);實現(xiàn)CPU調試的步驟如下: 在初始狀態(tài)或者當前指令執(zhí)行完回寫步驟后所述有限狀態(tài)機根據(jù)寄存器A的值來判斷當前的運行模式; 若為多步調試模式,則進入調試狀態(tài),并判斷寄存器B的值;當寄存器B不為零時,將寄存器B的值減I,并由所述有限狀態(tài)機跳過該調試狀態(tài),由CPU繼續(xù)處理下一條指令,如此循環(huán)直至寄存器B的值減為零后,由所述有限狀態(tài)機將CPU阻塞在調試狀態(tài); 若為單步調試模式,由所述有限狀態(tài)機將CPU阻塞在調試狀態(tài),直至寄存器B有新的指令計數(shù)寫入,并由所述有限狀態(tài)機控制離開調試狀態(tài),同時,將寄存器B的值清零。2.根據(jù)權利要求1所述的一種基于有限狀態(tài)機的多周期非流水線CPU調試方法,其特征在于,若根據(jù)寄存器A的值判定當前為正常工作模式,則由CPU繼續(xù)處理下一條指令。
【文檔編號】G06F11/22GK106021041SQ201610291250
【公開日】2016年10月12日
【申請日】2016年4月29日
【發(fā)明人】盧建良
【申請人】中國科學技術大學