專利名稱:易于測(cè)試和調(diào)試程序的中央處理單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及易于測(cè)試和調(diào)試程序的中央處理單元(CPU),尤其涉及能夠?qū)υ谡{(diào)試狀態(tài)下已經(jīng)從主計(jì)算機(jī)下載的測(cè)試和調(diào)試應(yīng)用程序進(jìn)行測(cè)試和調(diào)試的易于測(cè)試和調(diào)試程序的CPU。
通常,CPU或微處理器讀出存儲(chǔ)在存儲(chǔ)器中的由一組多個(gè)指令字構(gòu)成的程序,通過(guò)指令句法分析程序?qū)@些指令字進(jìn)行句法分析以及通過(guò)執(zhí)行單元而執(zhí)行對(duì)應(yīng)于每個(gè)指令字的操作。
應(yīng)當(dāng)測(cè)試存儲(chǔ)在存儲(chǔ)器中的由一組多個(gè)指令字構(gòu)成的應(yīng)用程序是否正確建立。在應(yīng)用程序不是正確建立的情況中,應(yīng)當(dāng)調(diào)試該應(yīng)用程序。
圖1是一方框圖,表明通過(guò)利用傳統(tǒng)電路內(nèi)仿真器測(cè)試和調(diào)試應(yīng)用程序的例子。
利用電路內(nèi)仿真器測(cè)試和調(diào)試程序的系統(tǒng)包括具有CPU模塊3、輸入/輸出(I/O)單元1、和存儲(chǔ)器2的目標(biāo)系統(tǒng)4;與CPU模塊3連接的電路內(nèi)仿真器(ICE)5,用CPU模塊3已經(jīng)替代目標(biāo)系統(tǒng)4中CPU,目標(biāo)系統(tǒng)4中CPU被CPU模塊3替代,以便測(cè)試和調(diào)試目標(biāo)系統(tǒng)4;以及主計(jì)算機(jī)6,輸出測(cè)試和調(diào)試應(yīng)用程序的指令,對(duì)電路內(nèi)仿真器作調(diào)試。
電路內(nèi)仿真器5接收來(lái)自主計(jì)算機(jī)6的應(yīng)用程序和存儲(chǔ)能夠調(diào)試該應(yīng)用程序的調(diào)試程序,以及按照從主計(jì)算機(jī)6輸入的命令啟動(dòng)位于電路內(nèi)仿真器的中央處理單元(CPU)。此外,電路內(nèi)仿真器5通過(guò)CPU模塊3直接控制位于目標(biāo)系統(tǒng)4中的一條控制總線、一條地址總線和一條數(shù)據(jù)總線,以便進(jìn)行輸入/輸出單元1和存儲(chǔ)器2所需的輸入/輸出操作。此外,電路內(nèi)仿真器5能夠讀出電路內(nèi)仿真器5內(nèi)CPU的內(nèi)寄存器或者改變內(nèi)寄存器中數(shù)據(jù)。
即,電路內(nèi)仿真器5接收來(lái)自主計(jì)算機(jī)的調(diào)試應(yīng)用程序,運(yùn)行該程序、以及操作電路內(nèi)仿真器5中CPU。此外,電路內(nèi)仿真器5通過(guò)CPU模塊3直接控制位于目標(biāo)系統(tǒng)4中的控制總線、地址總線和數(shù)據(jù)總線,以便進(jìn)行輸入/輸出單元1和存儲(chǔ)器2所需的輸入/輸出操作,強(qiáng)迫停止應(yīng)用程序的運(yùn)行,以便測(cè)試和調(diào)該試應(yīng)用程序。然后,根據(jù)來(lái)自主計(jì)算機(jī)6的命令,相對(duì)于目標(biāo)系統(tǒng)4中輸入/輸出單元1和存儲(chǔ)器2讀出或?qū)懭霐?shù)據(jù),或者讀出或?qū)懭氪鎯?chǔ)在電路內(nèi)仿真器5內(nèi)寄存器中的數(shù)據(jù)。于是,判定該應(yīng)用程序是否正確地被制成。如果有差錯(cuò),對(duì)該應(yīng)用程序作調(diào)試。
電路內(nèi)仿真器5僅僅在當(dāng)利用傳統(tǒng)電路內(nèi)仿真器對(duì)應(yīng)用程序進(jìn)行測(cè)試和調(diào)試時(shí)目標(biāo)系統(tǒng)中CPU能夠被與電路內(nèi)仿真器5連接的CPU模塊3替代的情況中可以是有用的。此外,由于起目標(biāo)系統(tǒng)的CPU功能作用的硬件單元應(yīng)當(dāng)存在于電路內(nèi)仿真器5內(nèi),這是個(gè)問(wèn)題,即電路內(nèi)仿真器很昂貴。此外,由于在目標(biāo)系統(tǒng)用單個(gè)半導(dǎo)體芯片集成的情況中位于電路內(nèi)仿真器內(nèi)的CPU不能被CPU模塊3替代,不能使用電路內(nèi)仿真器。
圖2是一方框圖,表明用于測(cè)試和調(diào)試程序的裝置,其中串行通信單元12和后臺(tái)調(diào)試監(jiān)視器11被集合在傳統(tǒng)中央處理單元(CPU)13中。
參考圖2,CPU 13包括后臺(tái)調(diào)試監(jiān)視器(DBM)11和串行通信單元12,以便解決在圖1的目標(biāo)系統(tǒng)已經(jīng)被集成為單個(gè)半導(dǎo)體芯片的情況下不能使用電路內(nèi)仿真器的問(wèn)題。
圖2的裝置包括目標(biāo)系統(tǒng)10,其中具有DBM11和串行通信單元12的CPU13、輸入/輸出(I/O)單元14和存儲(chǔ)器15被集成在單個(gè)半導(dǎo)體芯片中;和經(jīng)過(guò)串行通信單元12用于測(cè)試和調(diào)試應(yīng)用程序的主計(jì)算機(jī)20。
DBM11用包括寄存器和控制單元的控制器應(yīng)當(dāng)能夠直接控制位于CPU13中的所有內(nèi)部元件,以便句法分析來(lái)自主計(jì)算機(jī)20經(jīng)過(guò)串行通信單元12輸入的命令,由此進(jìn)行必要操作。即,DBM11與內(nèi)部總線連接,以讀出或改變存儲(chǔ)在寄存器中的值。DBM11控制著控制器、存儲(chǔ)器地址寄存器和存儲(chǔ)器數(shù)據(jù)寄存器,由此控制著控制信號(hào)總線、地址總線和數(shù)據(jù)總線,在圖2中未示出它們。
在包括如圖2所述的傳統(tǒng)DBM的CPU中,主計(jì)算機(jī)20應(yīng)當(dāng)經(jīng)過(guò)串行通信單元12與DBM11進(jìn)行通信。在這種情況中,連接主計(jì)算機(jī)20與CPU13的輸入/輸出線的所需數(shù)目為2或3。于是,圖2的測(cè)試和調(diào)試裝置比圖1中所示的替代整個(gè)CPU的情況更有效。
然而,由于傳統(tǒng)的DBM11應(yīng)當(dāng)直接控制CPU13中的所有內(nèi)部元件,與圖2的DBM相結(jié)合的CPU是昂貴的,并具有復(fù)雜的硬件裝置。
為了解決現(xiàn)有技術(shù)問(wèn)題,本發(fā)明的目的是提供一種便于程序測(cè)試和調(diào)試操作的中央處理單元(CPU),其中通過(guò)啟動(dòng)調(diào)試輸入信號(hào)把調(diào)試模式新增加到具有用戶模式的CPU中,在調(diào)試模式下從主計(jì)算機(jī)下載的用于測(cè)試和調(diào)試的應(yīng)用程序易于被測(cè)試和調(diào)試,由此把CPU的硬件簡(jiǎn)化為較低價(jià)格的CPU,和執(zhí)行更有效的測(cè)試和調(diào)試操作。
為了實(shí)現(xiàn)本發(fā)明的上述目的,提供一種易于測(cè)試和調(diào)試程序的中央處理單元(CPU),該CPU包括用于執(zhí)行與主計(jì)算機(jī)的數(shù)據(jù)通信的數(shù)據(jù)通信單元;具有標(biāo)記的狀態(tài)寄存器,該標(biāo)記代表CPU的操作模式是代表通用操作狀態(tài)的通用操作模式還是代表調(diào)試狀態(tài)的調(diào)試模式;被用作堆棧指針的調(diào)試堆棧指針寄存器,所述堆棧指針指定存儲(chǔ)調(diào)試程序的數(shù)據(jù)的堆棧存儲(chǔ)器;以及比較存儲(chǔ)在斷點(diǎn)寄存器中的值與斷點(diǎn)數(shù)據(jù)的比較器,其中,如果斷點(diǎn)寄存器值與斷點(diǎn)數(shù)據(jù)相同將CPU轉(zhuǎn)換到調(diào)試模式,狀態(tài)寄存器的標(biāo)記具有代表調(diào)試模式的值,用于執(zhí)行調(diào)試程序的啟動(dòng)地址被裝載在程序計(jì)數(shù)器中,以及運(yùn)行該調(diào)試程序,按照經(jīng)數(shù)據(jù)通信單元來(lái)自主計(jì)算機(jī)的命令執(zhí)行調(diào)試。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種易于測(cè)試和調(diào)試程序的中央處理單元(CPU),該CPU包括執(zhí)行與主計(jì)算機(jī)的數(shù)據(jù)通信的數(shù)據(jù)通信單元;具有一標(biāo)記的狀態(tài)寄存器,該標(biāo)記代表CPU的操作模式是代表通用操作狀態(tài)的通用操作模式還是代表調(diào)試狀態(tài)的調(diào)試模式;指定存儲(chǔ)調(diào)試初始化程序的數(shù)據(jù)和調(diào)試服務(wù)程序的數(shù)據(jù)的堆棧存儲(chǔ)器的調(diào)試堆棧指針寄存器;控制單元,用于通過(guò)復(fù)位信號(hào)對(duì)CPU初始化、檢查調(diào)試模式進(jìn)程信號(hào)、如果已經(jīng)激活該調(diào)試模式進(jìn)程信號(hào)則把執(zhí)行調(diào)試初始化程序的啟動(dòng)地址裝載在程序計(jì)數(shù)器中,由此將CPU轉(zhuǎn)換到調(diào)試初始化模式中以及把狀態(tài)寄存器的標(biāo)記設(shè)定到代表調(diào)試模式的值、和輸出與內(nèi)部總線連接的CPU的內(nèi)部和外部元件所需的各種控制信號(hào);以及比較存儲(chǔ)在斷點(diǎn)寄存器中的值與斷點(diǎn)數(shù)據(jù)的比較器,其中,如果斷點(diǎn)寄存器值與斷點(diǎn)數(shù)據(jù)相同將CPU轉(zhuǎn)換到調(diào)試模式,狀態(tài)寄存器的標(biāo)記具有代表調(diào)試服務(wù)模式的值,執(zhí)行調(diào)試服務(wù)程序的啟動(dòng)地址被裝載在程序計(jì)數(shù)器中,以及運(yùn)行該調(diào)試服務(wù)程序,按照經(jīng)數(shù)據(jù)通信單元來(lái)自主計(jì)算機(jī)的命令執(zhí)行調(diào)試。
通過(guò)參考附圖對(duì)本發(fā)明較佳實(shí)施例的更詳細(xì)描述,本發(fā)明的以上目的和其它優(yōu)點(diǎn)將變得更加明顯。
圖1是表明利用傳統(tǒng)電路內(nèi)仿真器測(cè)試和調(diào)試程序的方框圖。
圖2是一方框圖,表明用于測(cè)試和調(diào)試在傳統(tǒng)中央處理單元(CPU)中加入了串行通信單元和后臺(tái)調(diào)試監(jiān)視器的程序的裝置。
圖3是根據(jù)本發(fā)明的易于測(cè)試和調(diào)試程序的CPU的方框圖。
圖4是根據(jù)本發(fā)明的用于測(cè)試和調(diào)試程序的狀態(tài)寄存器的視圖。
圖5A是一工作圖,表明在一般操作的應(yīng)用程序和調(diào)試程序被存儲(chǔ)在同一存儲(chǔ)器中的情況中的矢量處理。
圖5B是一工作圖,表明在調(diào)試程序被存儲(chǔ)在不同于一般操作應(yīng)用程序存儲(chǔ)器的一單獨(dú)存儲(chǔ)器中的情況中的矢量處理。
圖5C是一工作圖,表明在調(diào)試程序既被存儲(chǔ)在與一般操作應(yīng)用程序存儲(chǔ)器相同的存儲(chǔ)器中又被存儲(chǔ)在與一般操作應(yīng)用程序存儲(chǔ)器不同的一單獨(dú)存儲(chǔ)器中的情況中的矢量處理。
將參考附圖更詳細(xì)地描述根據(jù)本發(fā)明較佳實(shí)施例的中央處理單元(CPU)。
圖3是根據(jù)本發(fā)明的易于測(cè)試和調(diào)試程序的CPU的方框圖。
在圖3中,根據(jù)本發(fā)明的易于測(cè)試和調(diào)試程序的CPU包括臨時(shí)存儲(chǔ)數(shù)據(jù)和地址操作所需的數(shù)據(jù)的通用寄存器組100;專用寄存器組200,它包括存儲(chǔ)程序所存儲(chǔ)的存儲(chǔ)器地址的程序計(jì)數(shù)器(PC)、具有一標(biāo)記的狀態(tài)寄存器(SR),該標(biāo)記代表CPU的操作模式是代表通用操作狀態(tài)的通用操作模式還是代表程序測(cè)試和調(diào)試狀態(tài)的調(diào)試模式、斷點(diǎn)寄存器(BR)、掩蔽寄存器(MR)、和指定一存儲(chǔ)器的調(diào)試堆棧指針(ISP),該存儲(chǔ)器存儲(chǔ)調(diào)試初始化程序和調(diào)試服務(wù)程序的數(shù)據(jù);連接通用寄存器組100和專用寄存器組200的內(nèi)部總線(IB);連接內(nèi)部總線(IB)的控制單元300,用于輸出CPU的內(nèi)部和外部元件所需的各種控制信號(hào)(CONT)、通過(guò)復(fù)位信號(hào)(RESET)使CPU初始化、校驗(yàn)調(diào)試模式進(jìn)程信號(hào)(OSI),由此把執(zhí)行調(diào)試初始化程序的啟動(dòng)地址裝載在程序計(jì)數(shù)器中,如果已經(jīng)啟動(dòng)調(diào)試模式進(jìn)程信號(hào)(OSI)則將CPU轉(zhuǎn)換為調(diào)試初始化模式以及使得狀態(tài)寄存器(SR)的標(biāo)記具有代表調(diào)試模式的值;存儲(chǔ)器地址寄存器400;存儲(chǔ)器數(shù)據(jù)寄存器500;數(shù)據(jù)通信單元600,進(jìn)行與主計(jì)算機(jī)的數(shù)據(jù)通信;以及比較器700,比較存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD),如果斷點(diǎn)寄存器值與斷點(diǎn)數(shù)據(jù)相同將CPU轉(zhuǎn)換為調(diào)試服務(wù)模式。
此外,作為另一種方法,根據(jù)本發(fā)明的易于測(cè)試和調(diào)試程序的CPU包括;進(jìn)行與主計(jì)算機(jī)的數(shù)據(jù)通信的數(shù)據(jù)通信單元600;狀態(tài)寄存器(SR),它具有一標(biāo)記,該標(biāo)記代表CPU的操作模式是代表通用操作狀態(tài)的通用操作模式還是代表程序測(cè)試和調(diào)試狀態(tài)的調(diào)試模式;和被用作堆棧指針的調(diào)試堆棧指針(ISP),以指定存儲(chǔ)調(diào)試程序的數(shù)據(jù)的存儲(chǔ)器;以及比較器700,比較存儲(chǔ)在斷點(diǎn)寄存器中的值與斷點(diǎn)數(shù)據(jù),如果斷點(diǎn)寄存器值與斷點(diǎn)數(shù)據(jù)相同將CPU轉(zhuǎn)換為調(diào)試模式,其中,如果存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值與根據(jù)初始調(diào)試模式項(xiàng)從主計(jì)算機(jī)輸入的斷點(diǎn)數(shù)據(jù)(BD)相同,把執(zhí)行由調(diào)試初始化程序和調(diào)試服務(wù)程序組成的調(diào)試程序的啟動(dòng)地址裝載到程序計(jì)數(shù)器(PC)中,由此執(zhí)行調(diào)試程序把CPU轉(zhuǎn)換為調(diào)試模式并按照經(jīng)數(shù)據(jù)通信單元600來(lái)自主計(jì)算機(jī)的命令進(jìn)行調(diào)試,在這種情況中,狀態(tài)寄存器標(biāo)記具有代表調(diào)試模式的值。
輸入到比較器700中的斷點(diǎn)數(shù)據(jù)(BD)可以是存儲(chǔ)在程序計(jì)數(shù)器(PC)中的程序地址、數(shù)據(jù)被存儲(chǔ)的存儲(chǔ)器地址、輸入和輸出數(shù)據(jù)、以及輸入和輸出地址。此外,利用掩蔽寄存器(MR),斷點(diǎn)數(shù)據(jù)(BD)可以是存儲(chǔ)在程序計(jì)數(shù)器中的程序地址與存儲(chǔ)在掩蔽寄存器(MR)中的值的運(yùn)算結(jié)果、數(shù)據(jù)被存儲(chǔ)的存儲(chǔ)器地址與存儲(chǔ)在掩蔽寄存器(MR)中的值的運(yùn)算結(jié)果、以及輸入和輸出地址與存儲(chǔ)在掩蔽寄存器(MR)中的值的運(yùn)算結(jié)果。
正如圖3、5A和5B所示,控制單元300接收調(diào)試存儲(chǔ)器選擇信號(hào)(OSIROM),當(dāng)存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD)相同時(shí),根據(jù)調(diào)試存儲(chǔ)器選擇信號(hào)(OSIROM)能夠把執(zhí)行調(diào)試服務(wù)程序PROG5和PROG7的不同地址分別裝載到程序計(jì)數(shù)器(PC)中。此外,正如圖5B所示,能夠使存儲(chǔ)調(diào)試程序(包括調(diào)試初始化程序(PROG6)和調(diào)試服務(wù)程序(PROG7))的存儲(chǔ)器90與存儲(chǔ)通用程序的存儲(chǔ)器80分開(kāi)。
換句話說(shuō),能夠使存儲(chǔ)調(diào)試程序所使用的數(shù)據(jù)值的數(shù)據(jù)存儲(chǔ)存儲(chǔ)器與存儲(chǔ)通用程序所使用的數(shù)據(jù)值的數(shù)據(jù)存儲(chǔ)存儲(chǔ)器分開(kāi)。
當(dāng)CPU被轉(zhuǎn)換為調(diào)試模式時(shí),易于進(jìn)行測(cè)試和調(diào)試程序的CPU應(yīng)當(dāng)進(jìn)一步包括快速進(jìn)行調(diào)試的臨時(shí)存儲(chǔ)寄存器1200,以及在CPU已經(jīng)被轉(zhuǎn)換為調(diào)試模式然后執(zhí)行調(diào)試程序后,在執(zhí)行調(diào)試程序之前,把程序計(jì)數(shù)器(PC)和狀態(tài)寄存器(SR)存儲(chǔ)到臨時(shí)存儲(chǔ)寄存器1200中。
易于測(cè)試和調(diào)試程序的CPU進(jìn)一步包括其上存儲(chǔ)參考數(shù)據(jù)的參考數(shù)據(jù)存儲(chǔ)單元900、和參數(shù)數(shù)據(jù)比較器800,將經(jīng)數(shù)據(jù)通信單元輸入的數(shù)據(jù)(DEB1)與參考數(shù)據(jù)進(jìn)行比較,如果數(shù)據(jù)(DEB1)與參考數(shù)據(jù)相同的話則將CPU轉(zhuǎn)換為調(diào)試服務(wù)模式,由此允許用戶經(jīng)數(shù)據(jù)通道單元使CPU強(qiáng)制被轉(zhuǎn)換為調(diào)試服務(wù)模式,利用主計(jì)算機(jī)執(zhí)行該調(diào)試服務(wù)模式。
根據(jù)本發(fā)明的易于測(cè)試和調(diào)試程序的CPU進(jìn)一步包括存儲(chǔ)事先已經(jīng)設(shè)定的復(fù)位數(shù)據(jù)的復(fù)位數(shù)據(jù)存儲(chǔ)單元1100、和將存儲(chǔ)在該復(fù)位數(shù)據(jù)存儲(chǔ)單元1100中的復(fù)位數(shù)據(jù)與經(jīng)數(shù)據(jù)通道單元600輸入的調(diào)試數(shù)據(jù)(DEB2)進(jìn)行比較的復(fù)位數(shù)據(jù)比較器1000。于是,如果以后把數(shù)據(jù)從主計(jì)算機(jī)發(fā)送到數(shù)據(jù)通信單元600,以便對(duì)CPU強(qiáng)制初始化,比較器1000將存儲(chǔ)在復(fù)位數(shù)據(jù)存儲(chǔ)單元1100中的復(fù)位數(shù)據(jù)與經(jīng)數(shù)據(jù)通信單元600接收的值進(jìn)行比較,由此在兩個(gè)值相同的情況中使CPU初始化。
根據(jù)本發(fā)明的易于測(cè)試和調(diào)試程序的CPU的操作如下控制單元300通過(guò)復(fù)位信號(hào)使CPU初始化,如果輸入到控制單元300的調(diào)試模式項(xiàng)目信號(hào)(OSI)被啟動(dòng),控制單元啟動(dòng)狀態(tài)寄存器(SR)的調(diào)試模式標(biāo)記(OSIM),如圖4所示。然后,控制單元300設(shè)定CPU進(jìn)入調(diào)試和調(diào)試應(yīng)用程序的起始環(huán)境,并執(zhí)行待測(cè)試和調(diào)試的應(yīng)用程序經(jīng)數(shù)據(jù)通信單元600從主計(jì)算機(jī)下載到CPU。在應(yīng)用程序的執(zhí)行期間,比較器700判定存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD)是否相同。如果兩個(gè)值相同,控制單元300則使CPU進(jìn)到調(diào)試模式并根據(jù)經(jīng)數(shù)據(jù)通信單元600從主計(jì)算機(jī)輸入的命令進(jìn)行應(yīng)用程序的測(cè)試和調(diào)試。
在調(diào)試模式項(xiàng)目信號(hào)(OSI)被啟動(dòng),因此CPU被設(shè)定為測(cè)試和調(diào)試應(yīng)用程序的起始環(huán)境后,該應(yīng)用程序從主計(jì)算機(jī)下載到CPU。否則,在CPU被設(shè)定為起始環(huán)境后,如果在比較器700的比較結(jié)果中存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD)相同,那么CPU進(jìn)到程序測(cè)試和調(diào)試狀態(tài),然后應(yīng)用程序從主計(jì)算機(jī)下載到CPU。
如果在比較器700的比較結(jié)果中存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD)相同,控制單元300停止或者完成應(yīng)用程序的執(zhí)行,控制待存儲(chǔ)到由臨時(shí)存儲(chǔ)寄存器(TR)或者調(diào)試堆棧指針(ISP)指定的堆棧存儲(chǔ)器中的被存儲(chǔ)在程序計(jì)數(shù)器(PC)中的值和被存儲(chǔ)在狀態(tài)寄存器(SR)中的值,控制用于執(zhí)行待存儲(chǔ)在程序計(jì)數(shù)器(PC)中的調(diào)試服務(wù)程序的啟動(dòng)地址,以便測(cè)試和調(diào)試該應(yīng)用程序,以及改變狀態(tài)寄存器(SR)的數(shù)據(jù),從而使CPU處于測(cè)試和調(diào)試應(yīng)用程序的狀態(tài)。
輸入到比較器700中的斷點(diǎn)數(shù)據(jù)(BD)可以是存儲(chǔ)在程序計(jì)數(shù)器(PC)中的程序地址、數(shù)據(jù)被存儲(chǔ)的存儲(chǔ)器地址、輸入和輸出數(shù)據(jù)、以及輸入和輸出地址。此外,利用掩蔽寄存器(MR),斷點(diǎn)數(shù)據(jù)(BD)可以是存儲(chǔ)在程序計(jì)數(shù)器中的程序地址與存儲(chǔ)在掩蔽寄存器(MR)中的值的運(yùn)算結(jié)果、數(shù)據(jù)被存儲(chǔ)的存儲(chǔ)器地址與存儲(chǔ)在掩蔽寄存器(MR)中的值的運(yùn)算結(jié)果、輸入和輸出地址與存儲(chǔ)在掩蔽寄存器(MR)中的值的運(yùn)算結(jié)果、以及輸入和輸出數(shù)據(jù)與存儲(chǔ)在掩蔽寄存器(MR)中的值的運(yùn)算結(jié)果。當(dāng)僅有一部分待校驗(yàn)的數(shù)據(jù)被比較時(shí),掩蔽寄存器(MR)是有用的。即,在輸入和輸出數(shù)據(jù)當(dāng)中僅有6個(gè)較低位被校驗(yàn)的情況中,把十六進(jìn)制數(shù)字中3F的值被設(shè)定在掩蔽寄存器(MR)中,輸入和輸出數(shù)據(jù)與掩蔽寄存器(MR)中設(shè)定的值邏輯相乘。然后,如果斷點(diǎn)數(shù)據(jù)(BD)的6個(gè)較低位與斷點(diǎn)寄存器(BR)的6個(gè)較低位相同,那么將CPU轉(zhuǎn)換為調(diào)試模式。
正如圖5A所示,用于CPU的初始化和一般操作的應(yīng)用程序(PROG1、PROG2和PROG4)、根據(jù)調(diào)試模式項(xiàng)目信號(hào)(OSI)的啟動(dòng)把CPU設(shè)定為測(cè)試和調(diào)試應(yīng)用程序的起始環(huán)境的調(diào)試模式初始化程序(PROG3)、和在比較器的比較結(jié)果中如果CPU進(jìn)到程序測(cè)試和調(diào)試狀態(tài)用于測(cè)試和調(diào)試應(yīng)用程序的調(diào)試服務(wù)程序(PROG5)被存儲(chǔ)在同一存儲(chǔ)器80中。否則,正如圖5B所示,調(diào)試模式初始化程序(PROG6)和調(diào)試服務(wù)程序(PROG7)能夠被存儲(chǔ)在另一單獨(dú)存儲(chǔ)器90中。
正如圖5B所示,存儲(chǔ)應(yīng)用程序(PROG1、PROG2和PROG4)(用于CPU的初始化和一般操作)的存儲(chǔ)器80和存儲(chǔ)調(diào)試模式初始化程序(PROG6)和調(diào)試服務(wù)程序(PROG7)的存儲(chǔ)器90是彼此分開(kāi)的。在這種情況中,如果存儲(chǔ)器90與CPU集成在一起,那么CPU的操作速度變得更快。
另一方面,正如圖5C所示,存儲(chǔ)調(diào)試模式初始化程序(PROG6)和調(diào)試服務(wù)程序(PROG7)的存儲(chǔ)器90(它與CPU相集成)的獨(dú)立,用戶能夠建立調(diào)試模式初始化程序(PROG3)和調(diào)試服務(wù)程序(PROG5)并能夠把它們存儲(chǔ)在存儲(chǔ)用于CPU初始化和一般操作的應(yīng)用程序(PROG1、PROG2和PROG4)的存儲(chǔ)器80中。
在用于CPU初始化和一般操作的所有應(yīng)用程序(PROG1、PROG2和PROG4)、調(diào)試模式初始化程序(PROG3)和調(diào)試服務(wù)程序(PROG5)被存儲(chǔ)在同一存儲(chǔ)器的情況中,如圖5A所示,下面將更詳細(xì)地本發(fā)明的操作。
如果給CPU供電,復(fù)位信號(hào)(RESET)被啟動(dòng)??刂茊卧?00根據(jù)該復(fù)位信號(hào)(RESET)對(duì)CPU初始化并判定調(diào)試模式項(xiàng)目信號(hào)(OSI)是否被啟動(dòng)。如果調(diào)試模式項(xiàng)目信號(hào)(OSI)處于非啟動(dòng)狀態(tài),圖4的狀態(tài)寄存器(SR)的調(diào)試模式標(biāo)記(OSIM)未被激活。然后,控制單元300從矢量表81讀出存儲(chǔ)存儲(chǔ)器80(存儲(chǔ)待執(zhí)行的初始程序)地址的復(fù)位矢量,并存儲(chǔ)專用寄存器組200的程序計(jì)數(shù)器(PC)??刂茊卧?00把存儲(chǔ)在程序計(jì)數(shù)器(PC)中的復(fù)位矢量移動(dòng)到存儲(chǔ)器地址寄存器400并把他輸出到地址總線(ADDB)。此外,控制單元300把存儲(chǔ)器讀出信號(hào)輸出到控制總線并讀出存儲(chǔ)應(yīng)用程序(PROG1)的存儲(chǔ)器80的內(nèi)容。從存儲(chǔ)器輸出的數(shù)據(jù)經(jīng)存儲(chǔ)器數(shù)據(jù)總線(DATAB)進(jìn)入控制單元300、存儲(chǔ)器數(shù)據(jù)寄存器500和內(nèi)部總線(IB)。以這種方式輸入控制單元300的命令字被句法分析。于是,所需控制信號(hào)(CONT)是以執(zhí)行相應(yīng)命令字的方式從控制單元300輸出的。
如果CPU被復(fù)位矢量初始化而調(diào)試模式項(xiàng)目信號(hào)(OSI)處于非啟動(dòng)狀態(tài),以便執(zhí)行用于調(diào)試的應(yīng)用程序(PROG1),那么CPU執(zhí)行該應(yīng)用程序(PROG1)。
如果CPU被復(fù)位信號(hào)初始化而輸入到控制單元300的調(diào)試模式項(xiàng)目信號(hào)(OSI)被啟動(dòng),那么控制單元300啟動(dòng)狀態(tài)寄存器(SR)和調(diào)試模式標(biāo)記(OSIM)。此外,控制單元300讀出調(diào)試模式初始化矢量并把讀出結(jié)果存儲(chǔ)在程序計(jì)數(shù)器(PC)中,該矢量是存儲(chǔ)在存儲(chǔ)器80中的調(diào)試模式初始化程序(PROG3)的啟動(dòng)地址。然后,如果根據(jù)存儲(chǔ)在程序計(jì)數(shù)器(PC)中的調(diào)試模式初始化矢量執(zhí)行調(diào)試模式初始化程序(PROG3),那么CPU設(shè)定為測(cè)試和調(diào)試應(yīng)用程序的初始環(huán)境。
控制單元300根據(jù)從主計(jì)算機(jī)輸入的命令不啟動(dòng)狀態(tài)寄存器(SR)的調(diào)試模式標(biāo)記(OSIM),并控制待執(zhí)行的應(yīng)用程序的命令字被存儲(chǔ)在程序計(jì)數(shù)器(PC)中的地址,由此執(zhí)行該應(yīng)用程序。如果在應(yīng)用程序的執(zhí)行期間,在比較器700的比較結(jié)果中,專用寄存器組200的存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD)相同,CPU停止或者完成應(yīng)用程序的執(zhí)行操作、控制存儲(chǔ)在程序計(jì)數(shù)器(PC)中的應(yīng)用程序的地址的值和存儲(chǔ)在狀態(tài)寄存器(SR)中的數(shù)據(jù)(待存儲(chǔ)在臨時(shí)存儲(chǔ)寄存器(TR)1200中)、控制調(diào)試服務(wù)矢量是調(diào)試服務(wù)程序(PROG5)(用于測(cè)試和調(diào)試待存儲(chǔ)在程序計(jì)數(shù)器(PC)中的應(yīng)用程序)的啟動(dòng)地址、以及改變CPU的狀態(tài)寄存器(SR)的值,由此應(yīng)用程序處于被測(cè)試和調(diào)試的狀態(tài)中。即,狀態(tài)寄存器(SR)的調(diào)試模式標(biāo)記(OSIM)被啟動(dòng)。
與此同時(shí),如果在比較器700的比較結(jié)果中,存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD)相同,CPU停止或者完成應(yīng)用程序的執(zhí)行操作并能夠控制存儲(chǔ)在程序計(jì)數(shù)器(PC)中的值和存儲(chǔ)在狀態(tài)寄存器(SR)中的數(shù)據(jù),它們不被存儲(chǔ)在臨時(shí)存儲(chǔ)寄存器(TR)中,但是被存儲(chǔ)在有調(diào)試堆棧指針(ISP)指定的堆棧存儲(chǔ)器中。
CPU進(jìn)到程序測(cè)試和調(diào)試狀態(tài),然后根據(jù)存儲(chǔ)在存儲(chǔ)器80中的調(diào)試服務(wù)程序(PROG5)執(zhí)行主計(jì)算機(jī)的命令,例如由用戶建立的應(yīng)用程序的下載、被下載應(yīng)用程序的執(zhí)行、斷點(diǎn)寄存器(ER)的數(shù)據(jù)變化、或者存儲(chǔ)在通用寄存器組100和專用寄存器組200的寄存器中的數(shù)據(jù)的讀出(READ)或?qū)懭?WRITE)、以及根據(jù)存儲(chǔ)在存儲(chǔ)器80中的調(diào)試服務(wù)程序(PROG5)對(duì)存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)的讀出或?qū)懭?。用戶判定?yīng)用程序是否利用命令正確地建立。如果判定應(yīng)用程序是錯(cuò)誤地建立,那么該應(yīng)用程序被校正。
經(jīng)數(shù)據(jù)通信單元執(zhí)行CPU與主計(jì)算機(jī)之間的命令的處理過(guò)程如下如果由用戶建立的程序根據(jù)主計(jì)算機(jī)的下載命令經(jīng)數(shù)據(jù)通信單元600被CPU接收并控制CPU的存儲(chǔ)器中的接收程序,CPU給主計(jì)算機(jī)發(fā)送一信號(hào),表示該程序已經(jīng)成功地被接收。如果在應(yīng)用程序的傳送期間發(fā)生差錯(cuò),那么CPU請(qǐng)求主計(jì)算機(jī)重新發(fā)送該應(yīng)用程序。在應(yīng)用程序已經(jīng)被下載到CPU后,主計(jì)算機(jī)輸出一設(shè)定CPU中斷點(diǎn)寄存器(BR)數(shù)據(jù)值的斷點(diǎn)寄存器數(shù)據(jù)改變命令,以便執(zhí)行調(diào)試操作。在斷點(diǎn)寄存器數(shù)據(jù)改變命令后,CPU給主計(jì)算機(jī)發(fā)送一信號(hào),表示該應(yīng)用程序已經(jīng)被成功地接收。主計(jì)算機(jī)給CPU發(fā)送該應(yīng)用程序的執(zhí)行命令,以便執(zhí)行被下載在存儲(chǔ)器中的應(yīng)用程序,CPU響應(yīng)于應(yīng)用程序的執(zhí)行命令而執(zhí)行該應(yīng)用程序。如果在應(yīng)用程序的執(zhí)行期間,在比較器700的比較結(jié)果中,存儲(chǔ)在斷點(diǎn)寄存器(BR)中的數(shù)據(jù)值與程序計(jì)數(shù)器(PC)的數(shù)據(jù)(為斷點(diǎn)數(shù)據(jù)(BD))相同,應(yīng)用程序的執(zhí)行操作被停止或者已完成,存儲(chǔ)在程序計(jì)數(shù)器(PC)中的所有值、存儲(chǔ)在狀態(tài)寄存器(SR)中的數(shù)據(jù)、以及通用寄存器的內(nèi)容被存儲(chǔ)在臨時(shí)存儲(chǔ)寄存器(TR)或者由調(diào)試堆棧指針(ISP)指定的堆棧存儲(chǔ)器中。調(diào)試服務(wù)矢量(為用于測(cè)試和調(diào)試應(yīng)用程序的調(diào)試服務(wù)程序(PROG5)的啟動(dòng)地址)被存儲(chǔ)在程序計(jì)數(shù)器(PC)中,狀態(tài)寄存器(SR)的數(shù)據(jù)被改變,使得CPU處于測(cè)試和調(diào)試應(yīng)用程序的狀態(tài)中。即,狀態(tài)寄存器(SR)的調(diào)試模式標(biāo)記(OSIM)被啟動(dòng)。根據(jù)調(diào)試服務(wù)程序(PROG5)CPU進(jìn)到測(cè)試和調(diào)試應(yīng)用程序的狀態(tài)。如果CPU已經(jīng)進(jìn)到測(cè)試和調(diào)試應(yīng)用程序的調(diào)試模式,那么接收寄存器讀出命令,存儲(chǔ)在臨時(shí)存儲(chǔ)寄存器(TR)或由調(diào)試堆棧指針(ISP)指定的堆棧中的寄存器的數(shù)據(jù)被發(fā)送到主計(jì)算機(jī)。然后,用戶分析該發(fā)送數(shù)據(jù)并判定是否輸出正確值。如果在分析的結(jié)果中該發(fā)送數(shù)據(jù)不是正確數(shù)據(jù),那么確定應(yīng)用程序是不正確的。于是,應(yīng)用程序被校正。
重復(fù)上述方法,應(yīng)用程序能夠被便利地調(diào)試。
當(dāng)最初給CPU加電時(shí)復(fù)位信號(hào)(RESET)被啟動(dòng)。否則,復(fù)位數(shù)據(jù)比較器1000將經(jīng)數(shù)據(jù)通信單元600從主計(jì)算機(jī)輸入的調(diào)試數(shù)據(jù)(DEB2)與存儲(chǔ)在復(fù)位數(shù)據(jù)存儲(chǔ)單元1100中的復(fù)位數(shù)據(jù)進(jìn)行比較,如果前者與后者相同,CPU被啟動(dòng)。換句話說(shuō),在待調(diào)試的應(yīng)用程序的執(zhí)行期間,在CPU處于不可恢復(fù)狀態(tài)的情況中,例如在無(wú)限循環(huán)的狀態(tài)中,CPU被初始化,以解決這個(gè)問(wèn)題。
在應(yīng)用程序超過(guò)預(yù)定時(shí)間繼續(xù)被執(zhí)行的情況中,即,在應(yīng)用程序處于無(wú)限循環(huán)狀態(tài)的情況中,存儲(chǔ)在參考數(shù)據(jù)存儲(chǔ)單元900中的與參考數(shù)據(jù)等同的調(diào)試數(shù)據(jù)(DEB1)經(jīng)數(shù)據(jù)通信單元600被發(fā)送,參考數(shù)據(jù)比較器800將存儲(chǔ)在參考數(shù)據(jù)存儲(chǔ)單元900中的參考數(shù)據(jù)與經(jīng)數(shù)據(jù)通信單元600接收的調(diào)試數(shù)據(jù)(DEB1)進(jìn)行比較,在比較結(jié)果中如果前者與后者相同,那么迫使CPU進(jìn)到調(diào)試服務(wù)模式,這是程序測(cè)試和調(diào)試狀態(tài),由此擺脫無(wú)限循環(huán),對(duì)發(fā)生無(wú)限循環(huán)的應(yīng)用程序作調(diào)試。
正如圖5C所示,調(diào)試模式初始化程序(PROG3和PROG6)和調(diào)試服務(wù)程序(PROG5和PROG7)既能被存儲(chǔ)在存儲(chǔ)器80(存儲(chǔ)對(duì)CPU初始化和操作的服務(wù)程序)中又能被存儲(chǔ)在與存儲(chǔ)器80分開(kāi)的存儲(chǔ)器90中。為此,存儲(chǔ)器識(shí)別信號(hào)(OSIROM)需要作為控制單元300的輸入信號(hào)。即,在控制單元300用復(fù)位信號(hào)(RESET)已經(jīng)對(duì)CPU初始化后,然后如果調(diào)試模式項(xiàng)目信號(hào)(OSI)在被啟動(dòng)時(shí)已經(jīng)被校驗(yàn)以及如果存儲(chǔ)器識(shí)別信號(hào)(OSIROM)在被啟動(dòng)時(shí)已經(jīng)被校驗(yàn),調(diào)試模式初始化矢量II(是存儲(chǔ)在存儲(chǔ)器90中的調(diào)試模式初始化程序(PROG6)的啟動(dòng)地址,以便測(cè)試和調(diào)試應(yīng)用程序)應(yīng)當(dāng)被存儲(chǔ)在程序計(jì)數(shù)器(PC)中。此外,斷點(diǎn)寄存器(BR)的數(shù)據(jù)值與斷點(diǎn)數(shù)據(jù)相同的情況中,比較器700通知控制單元300兩個(gè)值相同,控制單元300控制程序計(jì)數(shù)器(PC),存儲(chǔ)調(diào)試模式初始化矢量II,這是存儲(chǔ)在存儲(chǔ)器90中的調(diào)試服務(wù)程序(PROG7)。
如果存儲(chǔ)器識(shí)別信號(hào)(OSIROM)不被啟動(dòng),調(diào)試模式初始化矢量I是用于執(zhí)行調(diào)試模式初始化程序(PROG3)的啟動(dòng)地址,調(diào)試服務(wù)矢量I是用于執(zhí)行調(diào)試服務(wù)程序(PROG5)的啟動(dòng)地址。
如上所述,如果存儲(chǔ)器是分開(kāi)和使用的,用戶并不使用內(nèi)部存儲(chǔ)的調(diào)試模式初始化程序(PROG6)和調(diào)試服務(wù)程序(PROG7),使用用戶制作的調(diào)試模式初始化程序(PROG3)和調(diào)試服務(wù)程序(PROG5),由此測(cè)試和調(diào)試應(yīng)用程序。
此外,在根據(jù)本發(fā)明的易于測(cè)試和調(diào)試程序的CPU中,CPU被復(fù)位信號(hào)(RESET)初始化。然后,CPU被調(diào)試模式項(xiàng)目信號(hào)(OSI)轉(zhuǎn)換到初始調(diào)試模式。否則,根據(jù)在應(yīng)用程序的執(zhí)行期間經(jīng)數(shù)據(jù)通信單元600來(lái)自主計(jì)算機(jī)的調(diào)試數(shù)據(jù)(DEB1)(與存儲(chǔ)在參考數(shù)據(jù)存儲(chǔ)單元900中的參考數(shù)據(jù)等同)的輸入,CPU被控制單元300強(qiáng)迫轉(zhuǎn)換到初始調(diào)試模式。于是,如果由調(diào)試初始化程序和調(diào)試服務(wù)程序構(gòu)成的調(diào)試程序被執(zhí)行,根據(jù)該調(diào)試程序在主計(jì)算機(jī)中能夠設(shè)定斷點(diǎn)寄存器(BR)的值。斷點(diǎn)寄存器(BR)的設(shè)定數(shù)據(jù)經(jīng)數(shù)據(jù)通信單元600被存儲(chǔ)在斷點(diǎn)寄存器(BR)中,如果在應(yīng)用程序的執(zhí)行期間存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD)相同,CPU總是前進(jìn)到調(diào)試模式,不管調(diào)試模式項(xiàng)目信號(hào)(OSI)啟動(dòng)或是不啟動(dòng)。即,如果存儲(chǔ)在斷點(diǎn)寄存器(BR)中的值(IBR)與斷點(diǎn)數(shù)據(jù)(BD)相同,控制單元300啟動(dòng)狀態(tài)寄存器(SR)的調(diào)試模式標(biāo)記(OSIM),把用于執(zhí)行調(diào)試程序的啟動(dòng)地址裝載到程序計(jì)數(shù)器(PC)中。于是,控制單元300控制CPU執(zhí)行調(diào)試程序,由此控制CPU被轉(zhuǎn)換到調(diào)試模式中。此外,控制單元300根據(jù)調(diào)試程序執(zhí)行經(jīng)數(shù)據(jù)通信單元600來(lái)自主計(jì)算機(jī)的命令,例如調(diào)試程序所使用的存儲(chǔ)器的初始化、一組調(diào)試堆棧指針、一組或改變的參考數(shù)據(jù)、一組或改變的對(duì)CPU初始化的復(fù)位數(shù)據(jù)、斷點(diǎn)寄存器(BR)的值的改變、存儲(chǔ)通用寄存器組100或?qū)S眉拇嫫鹘M200的寄存器中的數(shù)據(jù)的讀出(READ)或?qū)懭?WRITE)、存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)的讀出或?qū)懭?,以及判定?yīng)用程序是否被正確地建立,由此校正和改進(jìn)不正確的應(yīng)用程序。
根據(jù)本發(fā)明的易于測(cè)試和調(diào)試程序的CPU在具有用戶模式的CPU狀態(tài)中新增加了調(diào)試模式,由此使得CPU能夠在調(diào)試模式下易于測(cè)試和調(diào)試從主計(jì)算機(jī)下載的應(yīng)用程序。這里,CPU是用更簡(jiǎn)單的硬件單元制備的,這能夠降低CPU的價(jià)格并能夠更有效的測(cè)試和調(diào)試。此外,把CPU設(shè)定到測(cè)試和調(diào)試應(yīng)用程序的初始環(huán)境中的調(diào)試模式初始化程序和通過(guò)使CPU前進(jìn)到程序測(cè)試和調(diào)試狀態(tài)對(duì)應(yīng)用程序作測(cè)試和調(diào)試的調(diào)試服務(wù)程序被存儲(chǔ)到存儲(chǔ)用戶應(yīng)用程序(使CPU初始化和操作)的存儲(chǔ)器以外的其他單獨(dú)存儲(chǔ)器中。因而,用戶不需要考慮所提供的調(diào)試模式初始化程序和調(diào)試服務(wù)程序,利用由用戶建立的調(diào)試程序能夠建立一應(yīng)用程序。
權(quán)利要求
1.一種易于測(cè)試和調(diào)試應(yīng)用程序的中央處理單元(CPU),包括臨時(shí)存儲(chǔ)數(shù)據(jù)和地址操作所需的數(shù)據(jù)的通用寄存器組、存儲(chǔ)各程序所存儲(chǔ)地址的程序計(jì)數(shù)器、具有指示CPU狀態(tài)的狀態(tài)寄存器和斷點(diǎn)寄存器的專用寄存器組、連接通用寄存器組與專用寄存器組的內(nèi)部總線、以及與內(nèi)部總線連接的控制單元,用于輸出CPU內(nèi)部和外部元件所需的各種控制信號(hào),所述CPU包括執(zhí)行與主計(jì)算機(jī)的數(shù)據(jù)通信的數(shù)據(jù)通信單元;具有標(biāo)記的狀態(tài)寄存器,該標(biāo)記代表CPU的操作模式是代表通用操作狀態(tài)的通用操作模式還是代表調(diào)試狀態(tài)的調(diào)試模式;被用作堆棧指針的調(diào)試堆棧指針寄存器,所述堆棧指針指定存儲(chǔ)調(diào)試程序的數(shù)據(jù)的堆棧存儲(chǔ)器;以及比較存儲(chǔ)在斷點(diǎn)寄存器中的值與斷點(diǎn)數(shù)據(jù)的比較器,其特征在于,如果斷點(diǎn)寄存器值與斷點(diǎn)數(shù)據(jù)相同將CPU轉(zhuǎn)換到調(diào)試模式,狀態(tài)寄存器的標(biāo)記具有代表調(diào)試模式的值,執(zhí)行調(diào)試程序的啟動(dòng)地址被裝載在程序計(jì)數(shù)器中,以及運(yùn)行該調(diào)試程序,按照經(jīng)數(shù)據(jù)通信單元來(lái)自主計(jì)算機(jī)的命令執(zhí)行調(diào)試。
2.如權(quán)利要求1所述的CPU,其特征在于進(jìn)一步包括存儲(chǔ)復(fù)位數(shù)據(jù)的復(fù)位數(shù)據(jù)存儲(chǔ)單元;以及復(fù)位數(shù)據(jù)比較器,用于比較經(jīng)數(shù)據(jù)通信單元輸入的數(shù)據(jù)與存儲(chǔ)在復(fù)位數(shù)據(jù)存儲(chǔ)單元中的復(fù)位數(shù)據(jù),并且如果經(jīng)數(shù)據(jù)通信單元輸入的數(shù)據(jù)與復(fù)位數(shù)據(jù)相同的話指令控制單元對(duì)CPU初始化。
3.如權(quán)利要求1所述的CPU,其特征在于,所述斷點(diǎn)數(shù)據(jù)是存儲(chǔ)在程序計(jì)數(shù)器中的程序地址。
4.如權(quán)利要求1所述的CPU,進(jìn)一步包括屏蔽寄存器,其中,斷點(diǎn)數(shù)據(jù)是存儲(chǔ)在程序計(jì)數(shù)器和屏蔽寄存器中的值的操作的結(jié)果。
5.如權(quán)利要求1所述的CPU,其特征在于,斷點(diǎn)數(shù)據(jù)是數(shù)據(jù)所存儲(chǔ)的存儲(chǔ)器地址。
6.如權(quán)利要求1所述的CPU,進(jìn)一步包括屏蔽寄存器,其中,斷點(diǎn)數(shù)據(jù)是數(shù)據(jù)所存儲(chǔ)的存儲(chǔ)器地址和存儲(chǔ)在屏蔽寄存器中的值的操作的結(jié)果。
7.如權(quán)利要求1所述的CPU,其特征在于,所述斷點(diǎn)數(shù)據(jù)是輸入到CPU和從CPU輸出的數(shù)據(jù)。
8.如權(quán)利要求1所述的CPU,進(jìn)一步包括屏蔽寄存器,其中,斷點(diǎn)數(shù)據(jù)是輸入到CPU和從CPU輸出的數(shù)據(jù)以及存儲(chǔ)在屏蔽寄存器中的值的操作的結(jié)果。
9.如權(quán)利要求1所述的CPU,其特征在于,所述斷點(diǎn)數(shù)據(jù)是輸入到CPU和從CPU輸出的地址。
10.如權(quán)利要求1所述的CPU,進(jìn)一步包括屏蔽寄存器,其中,斷點(diǎn)數(shù)據(jù)是輸入到CPU和從CPU輸出的地址以及存儲(chǔ)在屏蔽寄存器中的值的操作的結(jié)果。
11.如權(quán)利要求1所述的CPU,其特征在于,所述控制單元接收調(diào)試存儲(chǔ)器選擇信號(hào)并且當(dāng)存儲(chǔ)在斷點(diǎn)寄存器中的值與斷點(diǎn)數(shù)據(jù)相同時(shí)根據(jù)調(diào)試存儲(chǔ)器選擇信號(hào)把執(zhí)行調(diào)試程序的各個(gè)不同地址裝載到程序計(jì)數(shù)器中。
12.如權(quán)利要求1所述的CPU,進(jìn)一步包括存儲(chǔ)調(diào)試程序所使用的數(shù)據(jù)值的數(shù)據(jù)存儲(chǔ)存儲(chǔ)器,它與存儲(chǔ)通用程序所使用的數(shù)據(jù)值的數(shù)據(jù)存儲(chǔ)器相分離。
13.如權(quán)利要求1所述的CPU,進(jìn)一步包括存儲(chǔ)調(diào)試程序的存儲(chǔ)器,它與存儲(chǔ)通用程序的存儲(chǔ)器相分離。
14.如權(quán)利要求1所述的CPU,其特征在于,經(jīng)數(shù)據(jù)通信單元從主計(jì)算機(jī)下載待測(cè)試和調(diào)試的應(yīng)用程序。
15.如權(quán)利要求1所述的CPU,其特征在于,當(dāng)CPU已經(jīng)被轉(zhuǎn)換為調(diào)試模式時(shí),存儲(chǔ)在程序計(jì)數(shù)器中的值和存儲(chǔ)在狀態(tài)寄存器中的數(shù)據(jù)被存儲(chǔ)到由調(diào)試堆棧指針寄存器所指定的存儲(chǔ)器中。
16.如權(quán)利要求1所述的CPU,進(jìn)一步包括臨時(shí)存儲(chǔ)寄存器,其中,當(dāng)CPU已經(jīng)被轉(zhuǎn)換為調(diào)試模式時(shí),存儲(chǔ)在程序計(jì)數(shù)器中的值和存儲(chǔ)在狀態(tài)寄存器中的數(shù)據(jù)被存儲(chǔ)到臨時(shí)存儲(chǔ)存儲(chǔ)器中。
17.如權(quán)利要求1所述的CPU,進(jìn)一步包括存儲(chǔ)參考數(shù)據(jù)的參考數(shù)據(jù)存儲(chǔ)單元;以及比較通過(guò)數(shù)據(jù)通信單元輸入的數(shù)據(jù)與參考數(shù)據(jù)的參考數(shù)據(jù)比較器,其中,控制單元控制CPU被轉(zhuǎn)換到調(diào)試模式,以及如果通過(guò)數(shù)據(jù)通信輸入的數(shù)據(jù)與參考數(shù)據(jù)相同把執(zhí)行調(diào)試程序的啟動(dòng)地址裝載到程序計(jì)數(shù)器中,由此控制CPU按照經(jīng)數(shù)據(jù)通信單元來(lái)自主計(jì)算機(jī)的命令執(zhí)行調(diào)試。
18.一種易于測(cè)試和調(diào)試程序的中央處理單元(CPU),包括臨時(shí)存儲(chǔ)數(shù)據(jù)和地址操作所需的數(shù)據(jù)的通用寄存器組、存儲(chǔ)各程序所存儲(chǔ)地址的程序計(jì)數(shù)器、具有指示CPU狀態(tài)的狀態(tài)寄存器和斷點(diǎn)寄存器的專用寄存器組、以及連接通用寄存器組與專用寄存器組的內(nèi)部總線,所述CPU包括執(zhí)行與主計(jì)算機(jī)的數(shù)據(jù)通信的數(shù)據(jù)通信單元;具有標(biāo)記的狀態(tài)寄存器,該標(biāo)記代表CPU的操作模式是代表通用操作狀態(tài)的通用操作模式還是代表調(diào)試狀態(tài)的調(diào)試模式;指定存儲(chǔ)調(diào)試初始化程序的數(shù)據(jù)和調(diào)試服務(wù)程序的數(shù)據(jù)的堆棧存儲(chǔ)器的調(diào)試堆棧指針寄存器;控制單元,用于通過(guò)復(fù)位信號(hào)對(duì)CPU初始化、檢查調(diào)試模式進(jìn)程信號(hào)、如果已經(jīng)激活該調(diào)試模式進(jìn)程信號(hào)則把執(zhí)行調(diào)試初始化程序的啟動(dòng)地址裝載在程序計(jì)數(shù)器中,由此將CPU轉(zhuǎn)換到調(diào)試初始化模式中以及把狀態(tài)寄存器的標(biāo)記設(shè)定到代表調(diào)試模式的值、以及輸出與內(nèi)部總線連接的CPU的內(nèi)部和外部元件所需的各種控制信號(hào);以及比較存儲(chǔ)在斷點(diǎn)寄存器中的值與斷點(diǎn)數(shù)據(jù)的比較器,其特征在于,如果斷點(diǎn)寄存器值與斷點(diǎn)數(shù)據(jù)相同將CPU轉(zhuǎn)換到調(diào)試模式,狀態(tài)寄存器的標(biāo)記具有代表調(diào)試服務(wù)模式的值,執(zhí)行調(diào)試服務(wù)程序的啟動(dòng)地址被裝載在程序計(jì)數(shù)器中,以及運(yùn)行該調(diào)試服務(wù)程序,按照經(jīng)數(shù)據(jù)通信單元來(lái)自主計(jì)算機(jī)的命令執(zhí)行調(diào)試。
19.如權(quán)利要求18所所述的CPU,其特征在于進(jìn)一步包括存儲(chǔ)復(fù)位數(shù)據(jù)的復(fù)位數(shù)據(jù)存儲(chǔ)單元;以及復(fù)位數(shù)據(jù)比較器,用于比較經(jīng)數(shù)據(jù)通信單元輸入的數(shù)據(jù)與存儲(chǔ)在復(fù)位數(shù)據(jù)存儲(chǔ)單元中的復(fù)位數(shù)據(jù),并且如果經(jīng)數(shù)據(jù)通信單元輸入的數(shù)據(jù)與復(fù)位數(shù)據(jù)相同的話指令控制單元對(duì)CPU初始化。
20.如權(quán)利要求18所所述的CPU,其特征在于,所述斷點(diǎn)數(shù)據(jù)是存儲(chǔ)在程序計(jì)數(shù)器中的程序地址。
21.如權(quán)利要求18所所述的CPU,進(jìn)一步包括屏蔽寄存器,其中,斷點(diǎn)數(shù)據(jù)是存儲(chǔ)在程序計(jì)數(shù)器和屏蔽寄存器中的值的操作的結(jié)果。
22.如權(quán)利要求18所所述的CPU,其特征在于,斷點(diǎn)數(shù)據(jù)是數(shù)據(jù)所存儲(chǔ)的存儲(chǔ)器地址。
23.如權(quán)利要求18所所述的CPU,進(jìn)一步包括屏蔽寄存器,其中,斷點(diǎn)數(shù)據(jù)是數(shù)據(jù)所存儲(chǔ)的存儲(chǔ)器地址和存儲(chǔ)在屏蔽寄存器中的值的操作的結(jié)果。
24.如權(quán)利要求18所所述的CPU,其特征在于,所述斷點(diǎn)數(shù)據(jù)是輸入到CPU和從CPU輸出的數(shù)據(jù)。
25.如權(quán)利要求18所所述的CPU,進(jìn)一步包括屏蔽寄存器,其中,斷點(diǎn)數(shù)據(jù)是輸入到CPU和從CPU輸出的數(shù)據(jù)以及存儲(chǔ)在屏蔽寄存器中的值的操作的結(jié)果。
26.如權(quán)利要求18所所述的CPU,其特征在于,所述斷點(diǎn)數(shù)據(jù)是輸入到CPU和從CPU輸出的地址。
27.如權(quán)利要求18所所述的CPU,進(jìn)一步包括屏蔽寄存器,其中,斷點(diǎn)數(shù)據(jù)是輸入到CPU和從CPU輸出的地址以及存儲(chǔ)在屏蔽寄存器中的值的操作的結(jié)果。
28.如權(quán)利要求18所所述的CPU,其特征在于,所述控制單元接收調(diào)試存儲(chǔ)器選擇信號(hào)并且當(dāng)存儲(chǔ)在斷點(diǎn)寄存器中的值與斷點(diǎn)數(shù)據(jù)相同時(shí)根據(jù)調(diào)試存儲(chǔ)器選擇信號(hào)把執(zhí)行調(diào)試程序的各個(gè)不同地址裝載到程序計(jì)數(shù)器中。
29.如權(quán)利要求18所所述的CPU,進(jìn)一步包括存儲(chǔ)調(diào)試程序所使用的數(shù)據(jù)值的數(shù)據(jù)存儲(chǔ)存儲(chǔ)器,它與存儲(chǔ)通用程序所使用的數(shù)據(jù)值的數(shù)據(jù)存儲(chǔ)存儲(chǔ)器相分離。
30.如權(quán)利要求18所所述的CPU,進(jìn)一步包括存儲(chǔ)調(diào)試程序的存儲(chǔ)器,它與存儲(chǔ)通用程序的存儲(chǔ)器相分離。
31.如權(quán)利要求18所所述的CPU,其特征在于,經(jīng)數(shù)據(jù)通信單元從主計(jì)算機(jī)下載待測(cè)試和調(diào)試的應(yīng)用程序。
32.如權(quán)利要求18所所述的CPU,進(jìn)一步包括臨時(shí)存儲(chǔ)寄存器,其中,當(dāng)CPU已經(jīng)被轉(zhuǎn)換為調(diào)試模式時(shí),存儲(chǔ)在程序計(jì)數(shù)器中的值和存儲(chǔ)在狀態(tài)寄存器中的數(shù)據(jù)被存儲(chǔ)到臨時(shí)存儲(chǔ)存儲(chǔ)器中。
33.如權(quán)利要求18所所述的CPU,進(jìn)一步包括存儲(chǔ)參考數(shù)據(jù)的參考數(shù)據(jù)存儲(chǔ)單元;以及比較通過(guò)數(shù)據(jù)通信單元輸入的數(shù)據(jù)與參考數(shù)據(jù)的參考數(shù)據(jù)比較器,其中,控制單元控制CPU被轉(zhuǎn)換到調(diào)試模式,以及如果通過(guò)數(shù)據(jù)通信輸入的數(shù)據(jù)與參考數(shù)據(jù)相同把執(zhí)行調(diào)試程序的啟動(dòng)地址裝載到程序計(jì)數(shù)器中,由此控制CPU按照經(jīng)數(shù)據(jù)通信單元來(lái)自主計(jì)算機(jī)的命令執(zhí)行調(diào)試。
全文摘要
一種易于測(cè)試和調(diào)試應(yīng)用程序的中央處理單元(CPU),它包括執(zhí)行與主計(jì)算機(jī)數(shù)據(jù)通信的數(shù)據(jù)通信單元;具有一標(biāo)記的狀態(tài)寄存器,該標(biāo)記代表CPU操作模式是代表通用操作狀態(tài)的通用操作模式還是代表調(diào)試狀態(tài)的調(diào)試模式;被用作堆棧指針的調(diào)試堆棧指針寄存器,該堆棧指針指定存儲(chǔ)調(diào)試程序的數(shù)據(jù)的堆棧存儲(chǔ)器;以及將存儲(chǔ)在斷點(diǎn)寄存器中的值與斷點(diǎn)數(shù)據(jù)進(jìn)行比較的比較器,其中如果斷點(diǎn)寄存器值與斷點(diǎn)數(shù)據(jù)相同則把CPU轉(zhuǎn)換到調(diào)試模式,狀態(tài)寄存器的標(biāo)記具有代表調(diào)試模式的值,執(zhí)行調(diào)試程序的啟動(dòng)地址被裝載在程序計(jì)數(shù)器中,以及運(yùn)行該調(diào)試程序,按照經(jīng)數(shù)據(jù)通信單元來(lái)自主計(jì)算機(jī)的命令執(zhí)行調(diào)試。
文檔編號(hào)G06F11/28GK1332409SQ0111231
公開(kāi)日2002年1月23日 申請(qǐng)日期2001年3月29日 優(yōu)先權(quán)日2000年7月5日
發(fā)明者趙璟衍, 林鐘潤(rùn), 李根澤, 韓相書, 閔炳權(quán), 李熙, 權(quán)起弘 申請(qǐng)人:先進(jìn)數(shù)字芯片股份有限公司