專利名稱:單步處理的制作方法
背景本發(fā)明涉及可編程處理器。
可編程處理器,例如,用于計(jì)算機(jī)和數(shù)字信號處理系統(tǒng)的微處理器,都可以采用比人類運(yùn)算速度更快方式來執(zhí)行指令。然而,當(dāng)處理器產(chǎn)生錯(cuò)誤時(shí),特別是由多種原因所產(chǎn)生的錯(cuò)誤時(shí),所快速產(chǎn)生的錯(cuò)誤往往是人類難以直接觀察到引發(fā)錯(cuò)誤的原因。各種技術(shù),一般稱之為“調(diào)試”技術(shù),都可以用于追蹤到錯(cuò)誤的源和錯(cuò)誤的多個(gè)源。
圖1是說明流水線可編程處理例子的方框圖;圖2是說明一例可執(zhí)行流水線的示意圖;圖3是說明適用于單步調(diào)試處理的流程圖;圖4是說明適用于另一種單步調(diào)試處理的流程圖;圖5是說明適用于選擇一種單步調(diào)試處理的處理的流程圖。
具體實(shí)施例方式
圖1是說明與主存儲器16和輸入/輸出設(shè)備22相耦合的可編程處理器10的方框圖。處理器10包括控制單元12,執(zhí)行流水線14和輸入/輸出接口18,并且可以是(例如)數(shù)字信號處理器。
控制單元12可以控制指令和數(shù)據(jù)通過流水線14的指令流。例如,在指令的處理過程中,控制單元12可以控制流水線14的各個(gè)部分來解碼指令,并執(zhí)行相對應(yīng)的操作,該操作包括(例如)將結(jié)果寫回到主存儲器16。
控制單元12可以包括執(zhí)行處理器20,該處理器可以保持出現(xiàn)異常時(shí)在流水線中需要處理的預(yù)定義指令的地址??刂茊卧?2也可以包括控制寄存器25,它存儲著與控制功能相關(guān)的數(shù)據(jù)。在控制寄存器中的控制位23A和23B包含了與單步調(diào)試技術(shù)有關(guān)的信息,以下將作更加詳細(xì)的討論。采用兩位的總線24,流水線14可以檢測到控制位23A和23B的狀態(tài)。
主存儲器16可以存儲諸如指令和數(shù)據(jù)的信息。主存儲器16可以由靜態(tài)隨機(jī)存儲器(SRAM),動態(tài)隨機(jī)存儲器(DRAM),閃存等組成。處理器10可以包括圖1中未顯示的部件,例如,指令高速緩存器。用戶可以采用一種或多種輸入-輸出設(shè)備22與處理器10通訊,這些輸入-輸出設(shè)備包括通過接口18與處理器10相耦合的鍵盤,鼠標(biāo),攝像頭或其它定位設(shè)備。處理器10可以采用一種或多種輸入-輸出設(shè)備22與用戶通訊,這些輸入-輸出設(shè)備包括通過接口18與處理器10相耦合的顯示屏幕或打印機(jī)。
圖2說明了一例流水線14。流水線14可有五級指令輸入(IF),指令解碼(DEC),地址計(jì)算(AC),執(zhí)行(EX)和寫回(WB)。在第一級(IF),可以通過輸入單元30從存儲器16或從指令高速緩存器輸入指令,并且在第二級(DEC),由指令解碼單元32對指令進(jìn)行解碼。在下一個(gè)時(shí)鐘周期,該結(jié)果進(jìn)入到第三級(AC),在該級中,數(shù)據(jù)地址產(chǎn)生器36計(jì)算要執(zhí)行操作的任意存儲器的地址。在執(zhí)行級(EX)中,執(zhí)行單元38可以執(zhí)行所指定的操作,例如,兩個(gè)數(shù)值的相加或相乘。在最后級(WB)中,其結(jié)果可以寫回到主存儲器16或數(shù)據(jù)寄存器40。
流水線14一般可包括級寄存器42,它可以作為臨時(shí)存儲器存儲單元來使用并用于提供各級之間的結(jié)果各其它信息。除了寄存器42和數(shù)據(jù)寄存器40之外,流水線14還可以包括其它存儲器單元或寄存器,用于保持指令、地址、數(shù)據(jù)或其它信息。
對在流水線14中不同級中的幾個(gè)指令,流水線14一般以基本同時(shí)發(fā)生的方式來處理指令。例如,當(dāng)指令處于WB級時(shí),另一個(gè)指令可以處于EX級,而其它指令可以處于AC級。然而,在某些情況下,這有利于處理一條指令,隨后在完成后續(xù)指令的處理之前,檢查處理器10的狀態(tài)和/或各個(gè)寄存器中的內(nèi)容。采用這樣方式處理指令稱之為“單步調(diào)試”并可以對諸如調(diào)試過程進(jìn)行討論。調(diào)試可以涉及,例如,執(zhí)行指令和檢查存儲器單元的內(nèi)容,例如,該檢查的存儲單元可以是在執(zhí)行下一指令之前的寄存器。存儲單元的單步調(diào)試和檢查可以允許用戶來理解是否存在著基于硬件或基于軟件的錯(cuò)誤,以識別在硬件或軟件中的問題,以及觀察軟件指令之間的相互作用。在處理器10成為產(chǎn)品之前,調(diào)試也可以工作于處理器10的研發(fā)過程中。同樣,調(diào)試也可以在處理器成為產(chǎn)品之后進(jìn)行。
當(dāng)用戶要開始單步調(diào)試時(shí),用戶可以通過輸入-輸出設(shè)備22(例如,鍵盤)向處理器10發(fā)出命令。處理器10可以提供不同模式的單步調(diào)試,以及用戶可以另外指定所需要的方式。
單步調(diào)試的一種模式正如圖3所說明,它用于討論在各條指令之后的異常。一般來說,異常是緊跟著正常的程序執(zhí)行之后,同時(shí)允許在流水線14出現(xiàn)異常之前的指令能夠完成執(zhí)行操作。一旦初始化這種模式的單步調(diào)試(50)之后,控制單元12指令輸入單元30輸入單個(gè)指令,該指令通過流水線的各級來處理(52)。當(dāng)指令到達(dá)WB級時(shí),流水線14產(chǎn)生異常(54)。該異??梢蕴貏e定義成單步異常,并且可以定義成不進(jìn)行誤差管理程序。
響應(yīng)單步異常之后,控制單元12一般刪除流水線14中的指令(56),并且程序控制異常管理器20(58)。當(dāng)出現(xiàn)單步異常時(shí),異常管理器20包括在流水線14中要處理的預(yù)先所定義指令的地址(60)。該指令可以包括檢測處理狀態(tài)和輸出有關(guān)通過輸入/輸出界面18狀態(tài)的信息(62),檢測寄存器內(nèi)容和輸出該內(nèi)容(64),以及清除異常(66)。指令可以用于檢測特殊寄存器的內(nèi)容和特殊處理器狀態(tài)。此外,輸出信息可以包括對輸入/輸出設(shè)備22(例如打印機(jī)和顯示屏幕)發(fā)送信息,也可以包括向主存儲器16寫入信息。圖3所示的指令(60)僅僅只是一個(gè)例子,也可以執(zhí)行其它指令,例如,主存儲器16或高速緩沖器的轉(zhuǎn)存的內(nèi)容,或者保存和恢復(fù)處理器的狀態(tài)。
當(dāng)清除異常(66)和已經(jīng)執(zhí)行了異常管理器的其它指令時(shí),通過檢測在流水線14中的其它指令(52),一旦完成之后該步驟就會產(chǎn)生其它異常(54),控制單元12可以繼續(xù)單步調(diào)試處理。所發(fā)送的指令一般是預(yù)先發(fā)送給流水線14但由于原先管理器異常的原因在完成異常之前被刪除(56)的指令。用戶也可以選擇中止單步操作(70)。
對某些目的來說,采用單步異常的單步調(diào)試是非常有用的,并且往往是又快又便宜,以及通常不需要增建硬件。然而,該技術(shù)并不適用于所有的目的。例如,該技術(shù)并不可以有效地應(yīng)用于調(diào)試異常管理器的自身。此外,該技術(shù)也不可以有效地應(yīng)用于調(diào)試協(xié)議系統(tǒng)資源,例如,高層事件管理程序。高層事件管理程序可以具有(例如)比異常更高的優(yōu)先權(quán),進(jìn)而可以獲得高于異常的權(quán)限以及可以避免異常的出現(xiàn)。
單步調(diào)試的另一探討是進(jìn)入高層操作模式(例如仿真模式),以及將各個(gè)指令單獨(dú)輸入到流水線14。一般來說,處理器可以具有許多操作的模式,例如,可以具有用戶模式和超級用戶模式,在下文中將作進(jìn)一步的詳細(xì)討論。仿真模式是適用于諸如調(diào)試操作的操作模式。典型的是,在仿真模式中,流水線14輸入來自仿真指令寄存器的指令,而不是來自主存儲器16或指令高速緩存器的指令。流水線14一般也只是讀寫來自仿真數(shù)據(jù)寄存器的數(shù)據(jù),而不是來自主存儲器或數(shù)據(jù)緩存器的數(shù)據(jù)。
圖4是說明適用于單步調(diào)試的示例處理的流程圖,它包括了在仿真模式中操作的處理器10。典型的是,處理器10是在非仿真模式的模式下開始操作的,例如,在用戶模式或超級用戶制模式下。處理器10可以具有比用戶、鍵控和仿真模式更多或更少的操作模式。操作的用戶模式一般是最普遍的操作形式。處理器所運(yùn)行的應(yīng)用程序通常涉及操作的用戶模式。在用戶模式中,某些處理器功能和系統(tǒng)資源被設(shè)置在范圍以外和不能被訪問。試圖訪問受限制功能的或資源一般會產(chǎn)生差錯(cuò)類型異常。相反,超級用戶模式表示具有更高優(yōu)先權(quán)的操作模式,在該模式中,所有的處理器功能和資源都是有效的。仿真模式通常是具有比超級用戶更高優(yōu)先權(quán)的操作模式,允許對在范圍之外的系統(tǒng)資源進(jìn)行調(diào)試。因而,當(dāng)系統(tǒng)資源需要進(jìn)行調(diào)試時(shí)最好能采用在仿真模式下的單步調(diào)試。
要開始單步調(diào)試(80),先將指令發(fā)送到流水線14(82)。當(dāng)指令到達(dá)WB級時(shí),流水線14產(chǎn)生仿真事件(84)。仿真模式可以包括適用于不同處理器架構(gòu)的不同方式,例如,向特殊處理器端口施加信號或者執(zhí)行為仿真模式所設(shè)計(jì)的軟件。一旦處于仿真模式,高層處理器功能和資源都是有效的,并且對處理器的輸入和輸出都是可以調(diào)整的。控制單元12一般刪除在流水線14中的指令(86)以及進(jìn)入到仿真服務(wù)程序的控制(88)。仿真服務(wù)程序包括檢測處理器狀態(tài)和通過輸入/輸出接口18輸出有關(guān)狀態(tài)信息的指令(92),還包括檢測寄存器內(nèi)容并輸出該內(nèi)容的指令(94)。輸出信息可以包括對輸出寄存器的檢測信息以及對輸入/輸出設(shè)備22的檢測信息,還可以包括對主存儲器16的寫回信息。仿真模式一般是采用“返回(return)”指令來中止的,該指令使處理器10返回到在進(jìn)入仿真模式之前的操作狀態(tài)并且包括準(zhǔn)備輸入的下一條指令的地址(96)。典型的是,從各步驟之后(96)仿真模式的返回是自動的,以致于所繼續(xù)的單步調(diào)試(98)可以包括分別名臨的各個(gè)單步操作。如果沒有給出進(jìn)入仿真模式的命令,則單步操作就中止(100)。
單步調(diào)試的控制可以多種方式來調(diào)整。圖5說明了一種控制單步調(diào)試的舉例方法,它采用一位或多位控制位,控制位可以自動產(chǎn)生單步調(diào)試操作和指令。所設(shè)置一位或多位控制位可以由邏輯來檢測,該邏輯可以觸發(fā)異?;蛘叻抡媸录?。在圖1所示的舉例處理器10中,顯示了在控制寄存器25中存儲了兩個(gè)控制位23A和23B,并且對流水線14都是有效的。控制位23A和23B也可以存儲在其它地方,或者可以存儲在任意類型的存儲元件中。然而,許多處理器架構(gòu)都支持控制寄存器。
兩個(gè)控制位23A和23B的使用允許單步調(diào)試中的靈活性??刂莆?3A和23B可以設(shè)置成四種明顯不同的邏輯結(jié)構(gòu)‘0-0’,‘0-1’,‘1-0’,和‘1-1’。該結(jié)構(gòu)可以指定四種不同的結(jié)果。例如,‘0-0’可以是正常的,表示沒有產(chǎn)生任何形式的單步調(diào)試。設(shè)置控制位23A和23B(110)包括將位的‘0-0’結(jié)構(gòu)轉(zhuǎn)變成一些其它結(jié)構(gòu)。單步的模式是控制位23A和23B的功能(112)。例如,‘0-1’結(jié)構(gòu)可以產(chǎn)生進(jìn)入仿真模式的單步調(diào)試(118),而與處理器10是在用戶模式還是在超級用戶模式無關(guān)。同樣,例如,‘1-0’結(jié)構(gòu)可以產(chǎn)生利用異常的單步調(diào)試(116),而與處理器10是在用戶模式還是在超級用戶模式無關(guān)。最后,例如,‘1-1’結(jié)構(gòu)可以根據(jù)處理器10當(dāng)前操作模式產(chǎn)生對單步調(diào)試形式的選擇(114)。當(dāng)處理器10正處于用戶模式操作時(shí),‘1-1’結(jié)構(gòu)可以使處理器10進(jìn)入到異常所采用的單步(116),但是當(dāng)處理器10正處于超級用戶模式工作時(shí), ‘1-1’結(jié)構(gòu)可以使處理器10進(jìn)入到仿真模式(118)所指定的單步。在表1中綜合了由以下技術(shù)所獲得的結(jié)果。
表1
已經(jīng)討論了本發(fā)明的許多實(shí)施例。例如,已經(jīng)討論了在各個(gè)指令異常之后或者在將處理器處于仿真模式之后的單步調(diào)試的方法。處理器可以在包括通用計(jì)算系統(tǒng)、數(shù)字處理系統(tǒng)、膝上計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)和蜂窩式電話等多種系統(tǒng)中實(shí)施。在這些內(nèi)容中,上述討論的單步調(diào)試技術(shù)可以方便地應(yīng)用于在客戶購買前后的系統(tǒng)測試。在這類系統(tǒng)中,處理器可以與存儲器件相耦合,該存儲器件包括閃存存儲器件或SRAM器件,它可以存儲操作系統(tǒng)和其它軟件應(yīng)用程序。各種實(shí)施例都在下列權(quán)利要求的范圍之內(nèi)。
權(quán)利要求
1.一種方法,其特征在于,包括選擇多種調(diào)試模式中的一種模式作為處理器當(dāng)前操作模式的功能。
2.如權(quán)利要求1所述方法,其特征在于,還包括在執(zhí)行了一條指令之后產(chǎn)生一個(gè)異常。
3.如權(quán)利要求1所述方法,其特征在于,還包括在執(zhí)行了一條指令之后調(diào)用處理器的仿真模式。
4.如權(quán)利要求1所述方法,其特征在于,所選擇的調(diào)試模式包括當(dāng)操作模式包括用戶模式時(shí)選擇第一調(diào)試模式,以及當(dāng)操作模式包括超級用戶模式時(shí)選擇第二調(diào)試模式。
5.一種方法,其特征在于,包括接受指令;接受信號;選擇調(diào)試信號功能的模式,其中,所選擇的調(diào)試模式包括當(dāng)信號是第一信號時(shí)選擇第一調(diào)試模式,以及當(dāng)信號是第二信號時(shí)選擇第二調(diào)試模式;以及,執(zhí)行指令。
6.如權(quán)利要求5所述方法,其特征在于,還包括產(chǎn)生一個(gè)異常。
7.如權(quán)利要求5所述方法,其特征在于,還包括調(diào)用仿真事件。
8.如權(quán)利要求5所述方法,其特征在于,還包括檢測寄存器內(nèi)容;以及,輸出寄存器內(nèi)容。
9.如權(quán)利要求5所述方法,其特征在于,指令由處理器接受并用于在多種狀態(tài)中進(jìn)行操作,該方法還包括檢測處理器的狀態(tài);以及,輸出處理器的狀態(tài)。
10.如權(quán)利要求5所述方法,其特征在于,指令由處理器接受,該方法還包括選擇單步調(diào)試的模式作為處理器操作模式的功能。
11.一種器件,其特征在于,包括處理器,該處理器適于在包括仿真模式的多種工作模式中操作;控制寄存器,可用于存儲控制位的狀態(tài);以及,異常管理器;其中,處理器用于選擇多種調(diào)試模式中的一種模式作為控制位的功能。
12.如權(quán)利要求11所述器件,其特征在于,處理器用于選擇多種調(diào)試模式中的一種模式作為處理器當(dāng)前操作模式的功能。
13.如權(quán)利要求11所述器件,還包括異常邏輯,它可以用于檢測控制位的狀態(tài)和觸發(fā)異常事件作為控制位狀態(tài)的功能。
14.如權(quán)利要求11所述器件,還包括仿真邏輯,它可以用于檢測控制位的狀態(tài)和觸發(fā)異常事件作為控制位狀態(tài)的功能。
15.如權(quán)利要求11所述器件,其特征在于,控制位是第一控制位,該系統(tǒng)還包括第二控制位,并且其中,單步調(diào)試的模式是第二控制位狀態(tài)的功能。
16.如權(quán)利要求11所述器件,其特征在于,處理器是數(shù)字信號處理器。
17.一種器件,其特征在于,包括處理器,該處理器用于在包括仿真模式的多種工作模式中操作;其中,處理器用于選擇多種調(diào)試模式中的一種模式作為處理器當(dāng)前操作模式的功能。
18.如權(quán)利要求17所述器件,還包括用于存儲控制位狀態(tài)的控制寄存器,其特征在于,處理器用于選擇多種調(diào)試模式中的一種模式作為控制位狀態(tài)的功能。
19.如權(quán)利要求18所述器件,其特征在于,還包括異常管理器;以及,用于檢測控制位狀態(tài)和觸發(fā)異常事件作為控制位狀態(tài)的功能的邏輯。
20.如權(quán)利要求18所述器件,其特征在于,還包括用于檢測控制位狀態(tài)和觸發(fā)仿真事件作為控制位狀態(tài)的功能的邏輯。
21.如權(quán)利要求17所述器件,其特征在于,處理器是數(shù)字信號處理器。
22.一種系統(tǒng),其特征在于,包括處理器,該處理器用于在多種工作模式中操作;控制寄存器,可用于存儲控制位的狀態(tài);輸入/輸出設(shè)備;以及,異常管理器;其中,處理器用于選擇多種調(diào)試模式中的一種模式作為控制位的功能。
23.如權(quán)利要求22所述系統(tǒng),其特征在于,處理器用于根據(jù)當(dāng)前的操作模式來選擇多種調(diào)試模式中的一種模式。
24.如權(quán)利要求22所述系統(tǒng),其特征在于,還包括與處理器相耦合的存儲器件。
25.如權(quán)利要求22所述系統(tǒng),其特征在于,還包括用于檢測控制位狀態(tài)和觸發(fā)異常事件作為控制位狀態(tài)的功能的邏輯。
26.如權(quán)利要求22所述系統(tǒng),其特征在于,還包括用于檢測控制位狀態(tài)和觸發(fā)仿真事件作為控制位狀態(tài)的功能的邏輯。
27.如權(quán)利要求22所述系統(tǒng),其特征在于,控制位是第一控制位,該系統(tǒng)還包括第二控制位,并且其中,處理器用于根據(jù)第二控制位的狀態(tài)來選擇多種調(diào)試模式中的一種模式。
全文摘要
在一個(gè)實(shí)施例中,所披露的技術(shù)使得可編程處理器每次能處理一條指令。單步調(diào)試可以通過在每一條指令之后的異?;蛘咴诿恳粭l指令之后的仿真模式來實(shí)現(xiàn)。特殊的單步調(diào)試技術(shù)可以基于控制位的狀態(tài),或者可以基于處理器當(dāng)前的操作模式,或者基于上述兩者。
文檔編號G06F9/38GK1489729SQ01820700
公開日2004年4月14日 申請日期2001年12月10日 優(yōu)先權(quán)日2000年12月15日
發(fā)明者C·P·羅思, R·P·辛格, T·迪恩, R·科拉格特拉, M·赫夫曼, R·里文, C P 羅思, 蚵, 裉乩, 辛格 申請人:英特爾公司, 模擬設(shè)備股份有限公司