專利名稱:一種網(wǎng)絡(luò)處理器和網(wǎng)絡(luò)處理器所存程序的診斷方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)處理器和網(wǎng)絡(luò)處理器所存程序的診斷方法,尤其是指一種可記錄多線程執(zhí)行單元中的運(yùn)行數(shù)據(jù)的網(wǎng)絡(luò)處理器和網(wǎng)絡(luò)處理器所存程序的診斷方法。
背景技術(shù):
網(wǎng)絡(luò)處理器是專門用于網(wǎng)絡(luò)數(shù)據(jù)處理的處理器,應(yīng)用對象主要是交換機(jī),路由器等網(wǎng)絡(luò)產(chǎn)品,多用于網(wǎng)絡(luò)中報文的處理;它具有速度快、針對性強(qiáng)等顯著特點(diǎn)。網(wǎng)絡(luò)處理器根據(jù)其中所存儲的程序?qū)?shù)據(jù)進(jìn)行處理,在該程序的開發(fā)及實際運(yùn)行過程中,對網(wǎng)絡(luò)處理器的診斷和調(diào)試很重要?,F(xiàn)有技術(shù)中,基于網(wǎng)絡(luò)處理器的調(diào)試設(shè)備與網(wǎng)絡(luò)處理器連接;該網(wǎng)絡(luò)處理器,包括至少兩個線程執(zhí)行單元;該線程執(zhí)行單元,包括多個寄存器,所述寄存器包括程序指針寄存器和數(shù)據(jù)寄存器。報文處理過程由網(wǎng)絡(luò)處理器中的線程執(zhí)行單元完成。當(dāng)需要對報文處理的過程進(jìn)行診斷時,由調(diào)試設(shè)備控制線程執(zhí)行單元逐步運(yùn)行網(wǎng)絡(luò)處理器中所存儲的程序,并將程序指針寄存器和數(shù)據(jù)寄存器中的數(shù)據(jù)發(fā)送給調(diào)試設(shè)備,經(jīng)過調(diào)試軟件對數(shù)據(jù)進(jìn)行顯示。工作人員通過調(diào)試設(shè)備上所顯示的程序指針寄存器中的數(shù)據(jù)對程序所運(yùn)行的位置進(jìn)行定位,并通過數(shù)據(jù)寄存器中的數(shù)據(jù)判斷線程執(zhí)行單元中所存儲的程序是否存在錯誤。在上述過程中,因為線程執(zhí)行單元中的程序需要逐步的運(yùn)行和記錄,此時需要中斷此線程執(zhí)行單元中所運(yùn)行的程序。當(dāng)只對一個線程執(zhí)行單元進(jìn)行處理時,其他線程執(zhí)行單元中的程序繼續(xù)運(yùn)行,如果兩個線程執(zhí)行單元之間相互協(xié)同工作,無法同時將兩個線程執(zhí)行單元中寄存器的數(shù)據(jù)輸出到調(diào)試設(shè)備,需要重復(fù)的進(jìn)行診斷過程,從而增加了診斷的時間,延長了網(wǎng)絡(luò)處理器的開發(fā)周期。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種網(wǎng)絡(luò)處理器和該網(wǎng)絡(luò)處理器所存程序的診斷方法,能夠同時記錄多個線程執(zhí)行單元中寄存器的值,將該寄存器的值輸出到調(diào)試設(shè)備進(jìn)行診斷,減少了網(wǎng)絡(luò)處理器中業(yè)務(wù)中斷的時間和網(wǎng)絡(luò)處理器中所存程序診斷的時間,縮短了網(wǎng)絡(luò)處理器的開發(fā)周期。一種網(wǎng)絡(luò)處理器,包括至少兩個線程執(zhí)行單元;每個線程執(zhí)行單元至少設(shè)置有兩個寄存器;該網(wǎng)絡(luò)處理器,還包括至少兩個記錄讀寫單元,該等記錄讀寫單元與所述線程執(zhí)行單元一一對應(yīng),并通過輔助數(shù)據(jù)線與對應(yīng)線程執(zhí)行單元中的寄存器連接;該等記錄讀寫單元與總控CPU連接;每一所述記錄讀寫單元,用于對所對應(yīng)的線程執(zhí)行單元中各寄存器的值進(jìn)行記錄,并通過總控CPU控制記錄讀寫單元將所記錄的寄存器的值輸出;所述輔助數(shù)據(jù)線,用于將線程執(zhí)行單元中寄存器的值輸出到對應(yīng)的記錄讀寫單元;
所述總控CPU,用于控制各記錄讀寫單元記錄所對應(yīng)的線程執(zhí)行單元中各寄存器的值或輸出各記錄讀寫單元中所記錄的寄存器的值;所述寄存器,用于存儲網(wǎng)絡(luò)處理器所存程序運(yùn)行過程中產(chǎn)生的數(shù)據(jù)。一種網(wǎng)絡(luò)處理器所存程序的診斷方法,所述網(wǎng)絡(luò)處理器與調(diào)試設(shè)備連接并且包括至少兩個線程執(zhí)行單元和至少兩個與所述線程執(zhí)行單元一一對應(yīng)的記錄讀寫單元,每個線程執(zhí)行單元至少設(shè)置有兩個寄存器;所述方法包括運(yùn)行網(wǎng)絡(luò)處理器中所存儲的需要進(jìn)行調(diào)試的程序;每一記錄讀寫單元記錄所述程序運(yùn)行過程中所對應(yīng)線程執(zhí)行單元的各寄存器的值;所述程序運(yùn)行結(jié)束后,通過總控CPU控制各記錄讀寫單元將所記錄的寄存器的值輸出到調(diào)試設(shè)備;根據(jù)所述寄存器的值對需要進(jìn)行診斷的程序進(jìn)行診斷。本發(fā)明實施例提供的一種網(wǎng)絡(luò)處理器和網(wǎng)絡(luò)處理器所存程序的診斷方法,通過為每一個線程執(zhí)行單元設(shè)置一記錄讀寫單元,在不中斷線程執(zhí)行單元運(yùn)行的情況下,實現(xiàn)同時記錄多個線程執(zhí)行單元中寄存器的值,將該寄存器的值輸出到調(diào)試設(shè)備進(jìn)行診斷,減少了網(wǎng)絡(luò)處理器中業(yè)務(wù)中斷的時間和網(wǎng)絡(luò)處理器中所存程序診斷的時間,縮短了網(wǎng)絡(luò)處理器的開發(fā)周期。
圖1為本發(fā)明實施例一種網(wǎng)絡(luò)處理器的結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例一種網(wǎng)絡(luò)處理器線程執(zhí)行單元和記錄讀寫單元的結(jié)構(gòu)示意圖;圖3為本發(fā)明實施例一種網(wǎng)絡(luò)處理器所存程序的診斷方法的流程圖;圖4為本發(fā)明實施例一種網(wǎng)絡(luò)處理器所存程序的診斷方法設(shè)置條件存儲的流程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明實施例一種網(wǎng)絡(luò)處理器和網(wǎng)絡(luò)處理器所存程序的診斷方法進(jìn)行詳細(xì)描述。一種網(wǎng)絡(luò)處理器,如圖1所示,包括至少兩個線程執(zhí)行單元;每個線程執(zhí)行單元至少設(shè)置有兩個寄存器,該寄存器用于存儲網(wǎng)絡(luò)處理器所存程序運(yùn)行過程中產(chǎn)生的數(shù)據(jù);該網(wǎng)絡(luò)處理器,還包括至少兩個與所述線程執(zhí)行單元一一對應(yīng)的記錄讀寫單元,該等記錄讀寫單元通過輔助數(shù)據(jù)線與對應(yīng)線程執(zhí)行單元中的寄存器連接;該等記錄讀寫單元與總控 CPU連接;每一所述記錄讀寫單元,用于對所對應(yīng)的線程執(zhí)行單元中各寄存器的值進(jìn)行記錄,并通過總控CPU控制記錄讀寫單元將所記錄的寄存器的值輸出;所述輔助數(shù)據(jù)線,用于將線程執(zhí)行單元中寄存器的值輸出到對應(yīng)的記錄讀寫單元;所述總控CPU,用于控制各記錄讀寫單元記錄所對應(yīng)的線程執(zhí)行單元中各寄存器的值或輸出各記錄讀寫單元中所記錄的寄存器的值。所述記錄讀寫單元,如圖2所示,包括讀寫控制模塊、存儲模塊;該讀寫控制模塊和存儲模塊分別與輔助數(shù)據(jù)線連接;所述讀寫控制模塊分別與存儲模塊和總控CPU連接;所述讀寫控制模塊,用于控制存儲模塊記錄線程執(zhí)行單元中寄存器的值或控制存儲模塊將所存儲的寄存器的值輸出。所述讀寫控制模塊,還包括存儲條件控制器;該存儲條件控制器分別與總控CPU 和存儲模塊連接;所述存儲條件控制器,用于判斷輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹凳欠穹洗鎯l件,并控制存儲模塊記錄符合存儲條件的寄存器的值。所述總控CPU,包括網(wǎng)絡(luò)處理器內(nèi)的CPU或網(wǎng)絡(luò)處理器外的CPU。網(wǎng)絡(luò)處理器運(yùn)行時,線程執(zhí)行單元會運(yùn)行網(wǎng)絡(luò)處理器中所存儲的程序,例如用于對網(wǎng)絡(luò)處理器接收到的報文進(jìn)行處理的程序。在該程序運(yùn)行過程中,線程執(zhí)行單元運(yùn)行過程中的數(shù)據(jù)存儲到對應(yīng)的寄存器中,例如報文的目標(biāo)地址會存儲在一確定寄存器中。本發(fā)明實施例中,通過為每一個線程執(zhí)行單元設(shè)置一記錄讀寫單元,并通過輔助數(shù)據(jù)線,對線程執(zhí)行單元運(yùn)行過程中寄存器的值復(fù)制給記錄讀寫單元,并存儲到記錄讀寫單元中的存儲模塊中。當(dāng)線程執(zhí)行單元運(yùn)行結(jié)束后,如需要對網(wǎng)絡(luò)處理器中所存儲的程序進(jìn)行診斷,則需要對所述存儲模塊中所存儲的寄存器的值進(jìn)行分析。此時,通過總控CPU將存儲模塊中所存儲的寄存器的值輸出到與網(wǎng)絡(luò)處理器所連接的調(diào)試設(shè)備中進(jìn)行顯示,用戶根據(jù)調(diào)試設(shè)備上所顯示的寄存器的值對網(wǎng)絡(luò)處理器中所存儲的程序進(jìn)行診斷和調(diào)試。進(jìn)一步的,可通過總控CPU在存儲條件控制器中設(shè)置存儲啟動值,該存儲啟動值可設(shè)置為線程執(zhí)行單元中寄存器的值。當(dāng)輔助數(shù)據(jù)線傳輸寄存器的值時,存儲條件控制器對所設(shè)置的存儲啟動值所對應(yīng)的寄存器的值進(jìn)行判斷,當(dāng)所設(shè)置的存儲啟動值與所對應(yīng)的寄存器的值相同時,條件存儲控制器發(fā)送記錄信號,對滿足條件的線程執(zhí)行單元中寄存器的值進(jìn)行存儲,更好的實現(xiàn)程序運(yùn)行數(shù)據(jù)的存儲。實施例1與上述一種網(wǎng)絡(luò)處理器相對應(yīng),本發(fā)明還提供了一種網(wǎng)絡(luò)處理器所存程序的診斷方法,如圖3所示,包括步驟300、運(yùn)行網(wǎng)絡(luò)處理器中所存儲的需要進(jìn)行調(diào)試的程序。當(dāng)需要對網(wǎng)絡(luò)處理器中所存儲的程序進(jìn)行診斷時,用戶啟動網(wǎng)絡(luò)處理器,使該網(wǎng)絡(luò)處理器正常運(yùn)行,該網(wǎng)絡(luò)處理器接收到報文發(fā)送源所發(fā)送的報文,并通過網(wǎng)絡(luò)處理器中所存儲的程序?qū)υ搱笪倪M(jìn)行處理。例如,網(wǎng)絡(luò)處理器中存儲有轉(zhuǎn)發(fā)報文的程序,此時,網(wǎng)絡(luò)處理器需要連接報文發(fā)送終端與報文接收終端。在該轉(zhuǎn)發(fā)程序運(yùn)行后,網(wǎng)絡(luò)處理器將會接收到報文發(fā)送終端所發(fā)送的報文,并將報文通過對應(yīng)的端口轉(zhuǎn)發(fā)到位于目標(biāo)地址的報文接收終端。所述報文可為視頻報文,該視頻報文包括目標(biāo)地址、源IP地址anternet Protocol網(wǎng)絡(luò)之間互連的協(xié)議)和視頻數(shù)據(jù),在報文發(fā)送源發(fā)送視頻報文時,一段視頻,會分為多個視頻報文進(jìn)行發(fā)送,例如一段視頻在發(fā)送時,由視頻報文1和視頻報文2組成。在該程序運(yùn)行時,為加快轉(zhuǎn)發(fā)的速度,可能由多個線程執(zhí)行單元同時處理視頻報文1和視頻報文2,例如由兩個線程執(zhí)行單元分別處理視頻報文1和視頻報文2。當(dāng)這兩個視頻報文從網(wǎng)絡(luò)處理器發(fā)送到目標(biāo)地址時,如果兩個視頻數(shù)據(jù)報文的接收順序被打亂,則會造成視頻清晰度下降的問題。為避免該問題,需要按照視頻報文到達(dá)該網(wǎng)絡(luò)處理器的順序以先入先出的方式進(jìn)行發(fā)送。網(wǎng)絡(luò)處理器接收到該視頻報文時,將視頻報文1分配給線程執(zhí)行單元1進(jìn)行處理, 視頻報文2分配給線程執(zhí)行單元2進(jìn)行處理,例如所述處理,包括對報文的合理性檢測,即檢測該報文是否存在錯誤,源IP地址是否得到報文發(fā)送許可。處理完成后,需要將該視頻報文轉(zhuǎn)發(fā)到所對應(yīng)的目標(biāo)地址,例如1. 1. 1. 1。在整個處理過程中,寄存器的值會隨著程序的運(yùn)行不斷的變化。步驟301、網(wǎng)絡(luò)處理器中的每一記錄讀寫單元記錄所述程序運(yùn)行過程中所對應(yīng)的線程執(zhí)行單元的各寄存器的值。在網(wǎng)絡(luò)處理器中需要診斷的程序運(yùn)行過程中,輔助數(shù)據(jù)線會對線程執(zhí)行單元中寄存器的值進(jìn)行復(fù)制,并由記錄讀寫單元進(jìn)行接收。如果用戶希望得到網(wǎng)絡(luò)處理器中需要診斷的程序運(yùn)行過程中的所有寄存器的值,則不需要在存儲條件控制器中設(shè)置存儲啟動值, 此時,記錄讀寫單元中的存儲模塊會存儲所述程序運(yùn)行過程中所有寄存器的值。因為在網(wǎng)絡(luò)處理器中,為每個線程執(zhí)行單元都設(shè)置了對應(yīng)的記錄讀寫單元,故可實現(xiàn)在網(wǎng)絡(luò)處理器中需要診斷的程序運(yùn)行一次的情況下,同時獲得多個線程執(zhí)行單元中所有寄存器的值,避免了當(dāng)多個線程執(zhí)行單元協(xié)同工作時,只對一個線程執(zhí)行單元中的寄存器的值進(jìn)行診斷無法發(fā)現(xiàn)問題的情況。當(dāng)多個線程執(zhí)行單元協(xié)同工作時,例如由兩個線程執(zhí)行單元,同時處理一段視頻的不同視頻報文,發(fā)送視頻過程中的兩個視頻報文,即視頻報文1和視頻報文2。例如線程執(zhí)行單元1對視頻報文1進(jìn)行處理,線程執(zhí)行單元2對視頻報文2進(jìn)行處理。兩個線程執(zhí)行單元所對應(yīng)的記錄讀寫單元中的存儲模塊會存儲視頻報文1和視頻報文2處理過程中所有寄存器的值。步驟302、所述程序運(yùn)行結(jié)束后,通過總控CPU控制各記錄讀寫單元將所記錄的寄存器的值輸出到調(diào)試設(shè)備。當(dāng)線程執(zhí)行單元對報文處理完成后,用戶通過總控CPU向記錄讀寫單元中的存儲模塊發(fā)送輸出指令,則記錄讀寫單元將記錄于存儲模塊中的所有寄存器的值進(jìn)行輸出。此時,為對網(wǎng)絡(luò)處理器中需要診斷的程序進(jìn)行診斷,則會將記錄讀寫單元的存儲模塊中所存儲的所有寄存器的值輸出到與網(wǎng)絡(luò)處理器連接的調(diào)試設(shè)備,通過調(diào)試設(shè)備中的調(diào)試軟件對寄存器的值進(jìn)行解析,在該調(diào)試設(shè)備上進(jìn)行顯示。步驟303、在網(wǎng)絡(luò)處理器中需要診斷的程序運(yùn)行結(jié)束后,根據(jù)所述寄存器的值對需要進(jìn)行診斷的程序進(jìn)行診斷。在通過調(diào)試設(shè)備對網(wǎng)絡(luò)處理器中需要診斷的程序進(jìn)行診斷時,根據(jù)程序指針寄存器的值可以對線程執(zhí)行單元中所運(yùn)行的程序進(jìn)行定位,并可顯示運(yùn)行到該步驟時,其他寄存器中所對應(yīng)的值。當(dāng)在目標(biāo)地址1. 1. 1. 1所對應(yīng)的終端上,觀察到視頻出現(xiàn)清晰度下降的情況,則可能存在網(wǎng)絡(luò)處理器轉(zhuǎn)發(fā)視頻報文時出現(xiàn)順序錯亂的情況。此時,根據(jù)調(diào)試設(shè)備上所接收到的所有寄存器的值,例如可根據(jù)程序指針寄存器對該情況進(jìn)行診斷。因在輔助數(shù)據(jù)線對線程執(zhí)行單元中寄存器的值進(jìn)行復(fù)制時,會根據(jù)網(wǎng)絡(luò)處理器中的時鐘信號對該寄存器的值復(fù)制給記錄讀寫單元。因為在視頻報文1和視頻報文2的傳輸過程中,根據(jù)視頻報文的傳
6輸順序,視頻報文1會先到達(dá)網(wǎng)絡(luò)處理器,所以視頻報文1的處理時間早于視頻報文2。在調(diào)試設(shè)備上顯示后,寄存器的值也會根據(jù)時序進(jìn)行顯示,通過調(diào)試設(shè)備同時顯示線程執(zhí)行單元1和線程執(zhí)行單元2中所有寄存器的值,其中包括程序指針寄存器。用戶通過分析線程執(zhí)行單元1和線程執(zhí)行單元2的程序指針寄存器的值對程序進(jìn)行診斷,確定網(wǎng)絡(luò)處理器中所存儲的程序是否出現(xiàn)錯誤。例如,在程序執(zhí)行的過程中,會使用到網(wǎng)絡(luò)處理器中的公共資源,當(dāng)一個公共資源被線程執(zhí)行單元2占用時,則會導(dǎo)致線程執(zhí)行單元1無法使用。此時,線程執(zhí)行單元1會采取其他方式進(jìn)行處理,便會造成線程執(zhí)行單元1所處理的視頻報文1的處理速度慢于線程執(zhí)行單元2所處理的視頻報文2的處理速度,從而使視頻報文1發(fā)送到目標(biāo)終端的時間晚于視頻報文2,造成視頻清晰度下降的問題。根據(jù)線程執(zhí)行單元1和線程執(zhí)行單元2的程序指針寄存器的值對視頻報文1和視頻報文2的處理流程進(jìn)行對比,可確定程序出現(xiàn)問題的位置,完成診斷。實施例2在網(wǎng)絡(luò)處理器中需要診斷的程序運(yùn)行時,可能存在大量的寄存器的值,如果對所有的寄存器的值進(jìn)行分析,則會增加診斷時的工作量,為使記錄讀寫單元存儲用戶所需要的寄存器的值,則可以通過設(shè)置存儲啟動值,來記錄用戶所需要的寄存器的值,所述步驟 301,如圖4所示,還包括步驟400、在記錄讀寫單元的存儲條件控制器中設(shè)置存儲啟動值。通過調(diào)試設(shè)備,為記錄讀寫單元的存儲條件控制器設(shè)置存儲啟動值,并通過總控 CPU將該存儲啟動值存儲到存儲條件控制器中,例如寄存器1用于存儲目標(biāo)地址,則可設(shè)置存儲啟動值為寄存器1中的值等于1.1.1.1。網(wǎng)絡(luò)處理器啟動,線程執(zhí)行單元運(yùn)行所需要診斷的程序,網(wǎng)絡(luò)處理器接收到報文發(fā)送終端所發(fā)送的報文。網(wǎng)絡(luò)處理器為實現(xiàn)報文轉(zhuǎn)發(fā),則通過線程執(zhí)行單元中所運(yùn)行的程序?qū)笪男枰l(fā)送到的目標(biāo)地址所應(yīng)經(jīng)過的網(wǎng)絡(luò)處理器端口進(jìn)行查找,并確定。步驟401、判斷所述輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹凳欠衽c存儲啟動值相同。在所述程序運(yùn)行的過程中,通過輔助數(shù)據(jù)線將線程執(zhí)行單元中寄存器的值進(jìn)行復(fù)制,存儲條件控制器接收到所述寄存器的值后,根據(jù)所設(shè)置的存儲啟動值對所對應(yīng)的寄存器的值進(jìn)行判斷,例如,判斷用于存儲目標(biāo)地址的寄存器1的值是否等于存儲啟動值 1. 1. 1. 1。步驟402、如果所述輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹蹬c存儲啟動值相同,則記錄讀寫單元的存儲條件控制器向該記錄讀寫單元的存儲模塊發(fā)送記錄指令。當(dāng)線程執(zhí)行單元中用于存儲目標(biāo)地址的寄存器1的值為1. 1. 1. 1時,通過記錄讀寫單元的存儲條件控制器的判斷,確定寄存器1的值與所設(shè)置的存儲啟動值相等,此時所述存儲條件控制器將向記錄讀寫單元的存儲模塊發(fā)送記錄指令,使記錄讀寫單元開始記錄輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹?,該寄存器的值記錄于記錄讀寫單元的存儲模塊中,即記錄對發(fā)送到地址1.1.1.1的報文處理過程中的寄存器的值。步驟403、該存儲模塊根據(jù)所述記錄指令記錄輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹?。存儲模塊接收到記錄指令后,根據(jù)所述記錄指令對輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹颠M(jìn)行記錄。程序運(yùn)行完成后,如用戶需要對該網(wǎng)絡(luò)處理器中所存儲的程序進(jìn)行診斷,則通過調(diào)試設(shè)備向網(wǎng)絡(luò)處理器發(fā)送讀取指令,網(wǎng)絡(luò)處理器接收到數(shù)據(jù)讀取指令后,根據(jù)所述數(shù)據(jù)讀取指令將存儲模塊中所存儲的所有寄存器的值輸出到對應(yīng)的調(diào)試設(shè)備上,通過調(diào)試軟件解析后進(jìn)行顯示,供用戶進(jìn)行分析和診斷。本發(fā)明實施例提供的一種網(wǎng)絡(luò)處理器和網(wǎng)絡(luò)處理器所存程序的診斷方法,通過為每一個線程執(zhí)行單元設(shè)置一記錄讀寫單元,在不中斷線程執(zhí)行單元運(yùn)行的情況下,實現(xiàn)同時記錄多個線程執(zhí)行單元中寄存器的值,將該寄存器的值輸出到調(diào)試設(shè)備進(jìn)行診斷,減少了網(wǎng)絡(luò)處理器中業(yè)務(wù)中斷的時間和網(wǎng)絡(luò)處理器中所存程序診斷的時間,縮短了網(wǎng)絡(luò)處理器的開發(fā)周期。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種網(wǎng)絡(luò)處理器,包括至少兩個線程執(zhí)行單元;每個線程執(zhí)行單元至少設(shè)置有兩個寄存器,其特征在于,還包括至少兩個記錄讀寫單元,該等記錄讀寫單元與所述線程執(zhí)行單元一一對應(yīng),并通過輔助數(shù)據(jù)線與對應(yīng)線程執(zhí)行單元中的寄存器連接;該等記錄讀寫單元與總控CPU連接;每一所述記錄讀寫單元,用于對所對應(yīng)的線程執(zhí)行單元中各寄存器的值進(jìn)行記錄,并通過總控CPU控制記錄讀寫單元將所記錄的寄存器的值輸出;所述輔助數(shù)據(jù)線,用于將線程執(zhí)行單元中寄存器的值輸出到對應(yīng)的記錄讀寫單元; 所述總控CPU,用于控制各記錄讀寫單元記錄所對應(yīng)的線程執(zhí)行單元中各寄存器的值或輸出各記錄讀寫單元中所記錄的寄存器的值;所述寄存器,用于存儲網(wǎng)絡(luò)處理器所存程序運(yùn)行過程中產(chǎn)生的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種網(wǎng)絡(luò)處理器,其特征在于,所述記錄讀寫單元,包括讀寫控制模塊、存儲模塊;該讀寫控制模塊和存儲模塊分別與輔助數(shù)據(jù)線連接;所述讀寫控制模塊分別與存儲模塊和總控CPU連接;所述讀寫控制模塊,用于控制存儲模塊記錄線程執(zhí)行單元中寄存器的值或控制存儲模塊將所存儲的寄存器的值輸出。
3.根據(jù)權(quán)利要求2所述的一種網(wǎng)絡(luò)處理器,其特征在于,所述讀寫控制模塊,還包括存儲條件控制器;該存儲條件控制器分別與總控CPU和存儲模塊連接;所述存儲條件控制器,用于判斷輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹凳欠穹洗鎯l件,并控制存儲模塊記錄符合存儲條件的寄存器的值。
4.根據(jù)權(quán)利要求2所述的一種網(wǎng)絡(luò)處理器,其特征在于,所述總控CPU,包括網(wǎng)絡(luò)處理器內(nèi)的CPU或網(wǎng)絡(luò)處理器外的CPU。
5.一種網(wǎng)絡(luò)處理器所存程序的診斷方法,所述網(wǎng)絡(luò)處理器與調(diào)試設(shè)備連接并且包括至少兩個線程執(zhí)行單元,每個線程執(zhí)行單元至少設(shè)置有兩個寄存器,其特征在于,所述網(wǎng)絡(luò)處理器還包括至少兩個記錄讀寫單元,所述記錄讀寫單元與所述線程執(zhí)行單元一一對應(yīng),并通過輔助數(shù)據(jù)線與對應(yīng)線程執(zhí)行單元中的寄存器,所述方法包括運(yùn)行網(wǎng)絡(luò)處理器中所存儲的需要進(jìn)行調(diào)試的程序;每一記錄讀寫單元記錄所述程序運(yùn)行過程中所對應(yīng)線程執(zhí)行單元的各寄存器的值; 所述程序運(yùn)行結(jié)束后,通過總控CPU控制各記錄讀寫單元將所記錄的寄存器的值輸出到調(diào)試設(shè)備;根據(jù)所述寄存器的值對需要進(jìn)行診斷的程序進(jìn)行診斷。
6.根據(jù)權(quán)利要求5所述的一種網(wǎng)絡(luò)處理器所存程序的診斷方法,其特征在于,所述各記錄讀寫單元記錄所述程序運(yùn)行過程中所對應(yīng)線程執(zhí)行單元的各寄存器的值,還包括在記錄讀寫單元的存儲條件控制器中設(shè)置存儲啟動值; 判斷所述輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹凳欠衽c存儲啟動值相同; 如果所述輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹蹬c存儲啟動值相同,則記錄讀寫單元的存儲條件控制器向該記錄讀寫單元的存儲模塊發(fā)送記錄指令;該存儲模塊根據(jù)所述記錄指令記錄輔助數(shù)據(jù)線上所傳輸?shù)募拇嫫鞯闹怠?br>
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)處理器和網(wǎng)絡(luò)處理器所存程序的調(diào)試方法,屬于數(shù)字通信領(lǐng)域,為解決現(xiàn)有技術(shù)中無法同時對多個線程執(zhí)行單元中程序的運(yùn)行數(shù)據(jù)進(jìn)行記錄,需要多次重復(fù)運(yùn)行程序,從而延長了網(wǎng)絡(luò)處理器的開發(fā)周期的問題而設(shè)計。一種網(wǎng)絡(luò)處理器,包括至少兩個線程執(zhí)行單元;每個線程執(zhí)行單元至少設(shè)置有兩個寄存器,該網(wǎng)絡(luò)處理器還包括至少兩個記錄讀寫單元,該等記錄讀寫單元與所述線程執(zhí)行單元一一對應(yīng)并通過輔助數(shù)據(jù)線與寄存器連接;該等記錄讀寫單元與總控CPU連接;每一記錄讀寫單元用于在總控CPU的控制下對所對應(yīng)的線程執(zhí)行單元中各寄存器的值進(jìn)行記錄,并通過總控CPU控制記錄讀寫單元將所記錄的寄存器的值輸出。
文檔編號H04L12/56GK102216909SQ201180000605
公開日2011年10月12日 申請日期2011年5月27日 優(yōu)先權(quán)日2011年5月27日
發(fā)明者鄭衛(wèi)星 申請人:華為技術(shù)有限公司