專利名稱:接口延時保護方法、協(xié)處理器及數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機的數(shù)據(jù)處理技術(shù)領(lǐng)域,更具體地說,涉及一種接口延時保護方法、協(xié)處理器及一種數(shù)據(jù)處理系統(tǒng)。
背景技術(shù):
計算機中用于數(shù)據(jù)處理的構(gòu)件主要為處理器,如各種CPU (Central Processing Unit,中央處理器)、NP (Network Processor,網(wǎng)絡(luò)處理器)等,但是,在某些情況下,處理器并不適合完成所有的功能,對于一些不適合處理器實現(xiàn)的功能,就需要外接協(xié)處理器來實現(xiàn)。處理器用于完成整個系統(tǒng)的主要處理工作,處理器接收網(wǎng)絡(luò)接口的報文并進行處理,將處理內(nèi)容緩存至內(nèi)存,當(dāng)出現(xiàn)某些處理器不能單獨完成的信息處理的情況時,由協(xié)處理器協(xié)助處理器對相應(yīng)信息進行處理。處理器通過某種接口與協(xié)處理器連接,通過該接口,處理器可以把需要協(xié)處理器處理的數(shù)據(jù)發(fā)送給協(xié)處理器處理,同理,協(xié)處理器完成相應(yīng)的數(shù)據(jù)處理后,再通過該接口將處理結(jié)果返回給處理器。通常情況下,使用處理器上的QDR (Quard Date Rate,四倍數(shù)據(jù)倍率接口)、 LA-I (Look Aside Interface, LAf^^hS^n ) NSE (Network Search Engines, N^g 找引擎接口)等接口連接協(xié)處理器,這類接口的共同點是對于一次訪問操作有最大延時要求,即規(guī)定了從處理器向協(xié)處理器發(fā)出訪問請求,到協(xié)處理器返回結(jié)果的時間(以下簡稱總協(xié)處理延時)不能超過該最大延時,如果超過該最大時間后,處理器還沒有收到協(xié)處理器的處理結(jié)果,處理器就會發(fā)生異常,進而導(dǎo)致整個系統(tǒng)的不可靠,因此,必須避免這種情況的發(fā)生?,F(xiàn)有技術(shù)中為了使協(xié)處理器的總協(xié)處理延時不超過處理器接口的最大延時,在設(shè)計協(xié)處理器時,將協(xié)處理時間設(shè)計的盡量小,以使得協(xié)處理的時間不會超過接口的要求。但是,這種方法并不能適用于所有情況,由于系統(tǒng)設(shè)計方案的問題,或者突發(fā)情況,處理器發(fā)出請求的速度可能會超過協(xié)處理器的處理性能時,這時協(xié)處理器的處理時間很可能超時。 從而導(dǎo)致處理器不能在接口允許的延時范圍內(nèi)接收到處理結(jié)果,使得處理器和系統(tǒng)的穩(wěn)定性沒有保證。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種接口延時保護方法,解決現(xiàn)有技術(shù)中的問題,使得處理器能夠在接口允許的延時范圍內(nèi),接收到協(xié)處理器的處理結(jié)果,保證了處理器和系統(tǒng)的穩(wěn)定。本發(fā)明還提供了一種協(xié)處理器,可以在接口允許的延時范圍內(nèi),將處理結(jié)果返回給處理器,以保證處理器和系統(tǒng)的穩(wěn)定。為實現(xiàn)上述目的,本發(fā)明提供了如下技術(shù)方案一種接口延時保護方法,包括協(xié)處理器接收處理器的操作指令;
記錄接收所述操作指令的時間;將所述操作指令寫入指令緩存先入先出隊列FIFO中;讀取所述指令緩存FIFO中的操作指令并進行協(xié)處理,將處理結(jié)果發(fā)送給結(jié)果 FIFO ;當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時,返回所述處理結(jié)果給所述CPU ;當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時,返回指示協(xié)處理超時的處理結(jié)果給所述CPU。一種協(xié)處理器,包括接收單元,用于接收處理器發(fā)送的操作指令;計時單元,用于記錄接收所述操作指令的時間;指令緩存FIFO,用于緩存所述操作指令,并將所述操作指令提供給內(nèi)部處理單元;內(nèi)部處理單元,用于讀取指令緩存FIFO中的操作指令,對所述操作指令進行協(xié)處理,并發(fā)送處理結(jié)果;結(jié)果FIFO,用于接收并存儲內(nèi)部處理單元對所述操作指令的處理結(jié)果;判斷單元,用于將當(dāng)前時間與記錄的最早接收所述操作指令的時間相比較,判斷協(xié)處理時間是否到達接口的最大延時時間;第一發(fā)送單元,用于當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時,返回所述處理結(jié)果給所述CPU ;第二發(fā)送單元,用于當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時,返回指示協(xié)處理超時的處理結(jié)果給所述CPU。一種數(shù)據(jù)處理系統(tǒng),包括處理器、內(nèi)存以及協(xié)處理器,所述協(xié)處理器,用于接收所述處理器的操作指令,記錄接收所述操作指令的時間,并將所述操作指令寫入指令緩存FIFO中,讀取所述指令緩存FIFO中的操作指令并進行協(xié)處理,將處理結(jié)果發(fā)送給結(jié)果 FIFO,當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時,返回指示協(xié)處理超時的處理結(jié)果,當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時, 返回所述處理結(jié)果;所述內(nèi)存,用于緩存所述處理器的處理數(shù)據(jù)。從上述的技術(shù)方案可以看出,本發(fā)明實施例增加了記錄接收操作指令時間的步驟,以便在協(xié)處理的過程中,判斷系統(tǒng)內(nèi)部協(xié)處理的時間是否到達接口的最大延時時間,然后判斷所述結(jié)果FIFO中是否有處理結(jié)果,如果所述結(jié)果FIFO中有處理結(jié)果,則不論協(xié)處理時間是否到達接口的最大延時時間,都返回相應(yīng)的處理結(jié)果;當(dāng)系統(tǒng)內(nèi)部的協(xié)處理時間到達接口的最大延時時間時,結(jié)果FIFO中仍沒有處理結(jié)果,則返回指示協(xié)處理延時超過接口要求的處理結(jié)果。本發(fā)明實施例在系統(tǒng)內(nèi)部的總協(xié)處理延時超過接口的最大延時時,返回指示協(xié)處理延時超過接口要求的處理結(jié)果,進而不會出現(xiàn)因協(xié)處理器的協(xié)處理超時,而導(dǎo)致的處理器在超過接口的最大延時時接收不到處理結(jié)果的情況,從而避免了處理器因無結(jié)果返回而發(fā)生異常,提高了處理器和整個系統(tǒng)的穩(wěn)定性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例一公開的接口延時保護方法流程圖;圖2為本發(fā)明實施例二公開的接口延時保護方法流程圖;圖3為本發(fā)明實施例三公開的接口延時保護方法流程圖;圖4為本發(fā)明實施例四公開的接口延時保護方法的部分流程圖;圖5為本發(fā)明實施例一公開的一種協(xié)處理器的結(jié)構(gòu)圖;圖6為本發(fā)明實施例二公開的一種協(xié)處理器的結(jié)構(gòu)圖;圖7為本發(fā)明實施例三公開的一種協(xié)處理器的結(jié)構(gòu)圖;圖8為本發(fā)明實施例四公開的一種協(xié)處理器的結(jié)構(gòu)圖;圖9為本發(fā)明實施例五公開的一種數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。為了引用和清楚起見,文中使用的技術(shù)名詞、簡寫或縮寫總結(jié)如下CPU =Central Processing Unit,中央處理器;NP :Network Processor,網(wǎng)絡(luò)處理器;QDR =Quard Date Rate,四倍數(shù)據(jù)倍率接口 ;LA-I =Look Aside Interface,LA 協(xié)處理接口 ;NSE =Network Search Engines,網(wǎng)絡(luò)查找引擎接口 ;FIFO =First-In First-Out,先入先出隊列?,F(xiàn)有技術(shù)中,為了盡量避免接口帶寬大于協(xié)處理器處理性能而導(dǎo)致的處理器和系統(tǒng)的不穩(wěn)定,在協(xié)處理器中必須使用一個指令緩存FIFO (First-In First-Out,先入先出隊列)以暫時緩存超過協(xié)處理器處理性能的指令。此時,總協(xié)處理延時就是兩部分時間之和, 一部分是指令在指令緩存FIFO中等待的時間,一部分是處理器內(nèi)部對指令的真正的協(xié)處理延時。雖然,處理器內(nèi)部真正的協(xié)處理延時是固定的,即處理器設(shè)計時已經(jīng)確定的協(xié)處理時間,但是,指令在FIFO中的等待時間卻是不固定的,因為指令在指令緩存FIFO中等待的時間與指令所在隊列的位置是相關(guān)的,指令在隊列的前面,等待的時間就較短,反之,時間就較長。當(dāng)接口帶寬大于協(xié)處理器處理性能時,協(xié)處理器處理指令的速度較慢,使得指令在指令緩存FIFO中累積,進而導(dǎo)致指令在指令緩存FIFO中的等待時間隨著指令緩存FIFO中指令數(shù)量的增多而變長。因此,當(dāng)突發(fā)指令數(shù)量較多時,總協(xié)處理延時也隨之變長,在某種大的突發(fā)情況下,總協(xié)處理延時也可能會超過接口的最大延時要求,進而引起處理器和系統(tǒng)的不穩(wěn)定。實施例一本實施例提供的接口延時保護方法基本上包括三個處理過程指令接收過程、協(xié)處理過程和處理結(jié)果發(fā)送過程,這三個過程實際上可以由三個獨立的進程完成。為了描述方便,本實施例將這三個處理過程融合成一體,基本流程如圖1所示,包括以下步驟步驟S101、接收處理器發(fā)送的操作指令。步驟S102、記錄接收到所述操作指令的時間。步驟S103、將該操作指令寫入指令緩存先入先出隊列FIFO。其中,將操作指令寫入指令緩存FIFO中,以便系統(tǒng)內(nèi)部的指令處理模塊讀取相應(yīng)操作指令。步驟S104、讀取所述指令緩存FIFO中的操作指令,并對該操作指令進行協(xié)處理, 將協(xié)處理結(jié)果發(fā)送給結(jié)果FIFO。本步驟中,協(xié)處理的具體過程屬于現(xiàn)有技術(shù),在此不對其進行詳細描述。步驟S105、當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時, 返回該處理結(jié)果。步驟S106、當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時, 返回指示協(xié)處理超時的處理結(jié)果。需要說明的是,上述步驟S105和步驟S106之間可以同時進行,也可以以任意順序執(zhí)行。不一定要等到達到最大延時時才判斷所述結(jié)果FIFO中是否有結(jié)果,判斷所述結(jié)果 FIFO中是否有結(jié)果這個操作可以在達到最大延時前任意時刻執(zhí)行。可以看出,上述步驟S101-步驟S102屬于指令接收過程,步驟S203為協(xié)處理過程,步驟S104-步驟S106屬于處理結(jié)果發(fā)送過程。步驟S105-步驟S106的具體實現(xiàn)方式可以是先判斷處理時間是否超過接口的最大延時,再判斷結(jié)果FIFO中是否有處理結(jié)果。從而保證后續(xù)在在處理時間達到接口的最大延時時能給CPU返回一個處理結(jié)果,包括協(xié)處理結(jié)果或指示協(xié)處理延時超過接口要求的處理結(jié)果(即指示協(xié)處理超時的處理結(jié)果)。判斷處理時間是否達到接口的最大延時的具體方式可以是計算根據(jù)接收操作指令的最早時間tl(這里指的是未返回處理結(jié)果的操作指令中,指令FI FO最先接收的操作指令的接收時間)及判斷處理時間時的時間t2之間的差值(t2-tl),將該差值與已知的接口的最大延時進行比較,若兩者相等,則意味著處理時間已達到接口的最大延時。本實施例公開的接口延時保護方法,在正常情況下,即對于一次訪問,協(xié)處理器能夠在接口允許的最大延時時間內(nèi)完成協(xié)處理操作的情況下,返回正常的協(xié)處理結(jié)果,而不管得到該處理結(jié)果的時間是否到達接口允許的最大延時時間,只要結(jié)果FIFO中有結(jié)果,就會立即返回該結(jié)果給處理器;在協(xié)處理器處理超時的情況下,本實施例公開的方法也會在協(xié)處理時間到達接口允許的最大延時時,返回一個處理結(jié)果給處理器,該處理結(jié)果用以表示協(xié)處理延時超過接口允許的最大延時時間,從而解決了現(xiàn)有技術(shù)中因協(xié)處理器處理超時而導(dǎo)致的處理器在接口允許的最大延時時間范圍內(nèi)不能接收到相應(yīng)的處理結(jié)果,進而導(dǎo)致處理器異常的問題。實施例二
本實施例公開的接口延時保護方法如圖2所示,其中步驟S201、S202、S203、 S205-S207與實施例一的步驟S101、S102、S103、S104-S106依次對應(yīng)相同,所不同的是,增加了步驟S304,將接收到的操作指令和記錄的接收該指令的時間.緩存至預(yù)設(shè)容器。本實施例增加了預(yù)設(shè)容器,用于緩存接收到的操作指令和接收時間,與實施例一不同的是,判斷是否到達接口的最大延時的方式,本實施例中將此刻的時間與預(yù)設(shè)容器中緩存的最早接收的操作指令的時間相比較,進而判斷是否到達接口的最大延時,其它步驟的處理方式和實施例一相同,這里不再贅述。實施例三本實施例公開的接口延時保護方法如圖3所示,包括以下步驟步驟S301,在接口輸入處,控制操作指令向系統(tǒng)內(nèi)部數(shù)據(jù)處理模塊發(fā)送的速度,使其符合系統(tǒng)內(nèi)部處理性能的要求,具體操作為,調(diào)整讀取指令緩存FIFO對所述操作指令的讀取速度,使指令緩存FIFO的讀取速度不超過所述內(nèi)部處理單元的協(xié)處理性能,和/或控制所述指令緩存FIFO的大小,使操作指令在所述指令緩存FIFO中的緩存時間不超過所述內(nèi)部處理單元的協(xié)處理延時的裕量;步驟S302、接收處理器發(fā)送的操作指令;步驟S303、判斷指令緩存FIFO是否已滿,若指令緩存FIFO已滿,進入步驟S304, 否則,進入步驟S306 ;步驟S304、在該操作指令上打上表示協(xié)處理超時的標(biāo)識,并將其緩存至預(yù)設(shè)容器, 表示沒有真正發(fā)起內(nèi)部處理操作;步驟S305、讀取預(yù)設(shè)容器中緩存的指令時,判斷是否讀取到帶有超時標(biāo)識的操作指令,若是,進入步驟S311,否則,進入步驟S308 ;步驟S306、記錄接收到所述操作指令的時間,并將該操作指令寫入指令緩存先入先出隊列FIFO,以便系統(tǒng)內(nèi)部的指令處理模塊讀取相應(yīng)操作指令;步驟S307、將接收到的操作指令和記錄的接收該操作指令的時間緩存至預(yù)設(shè)容器 FIFO ;步驟S308、讀取所述指令緩存FIFO中的操作指令,并對該操作指令進行協(xié)處理, 將協(xié)處理結(jié)果發(fā)送給結(jié)果FIFO ;步驟S309、判斷處理時間T是否達到最大延時Δ T及結(jié)果FIFO中是否有處理結(jié)果,若T彡八1~且結(jié)果?正0中有結(jié)果,則進入步驟5310;若11< Δ T且結(jié)果FIFO中無結(jié)果, 則繼續(xù)判斷;若T = Δ T且結(jié)果FIFO中無結(jié)果,則進入步驟S311 ;判斷處理時間T是否達到最大延時Δ T的具體方式可以是依據(jù)當(dāng)前時間與所述預(yù)設(shè)容器中緩存的最早接收操作指令的時間的差值確定處理時間Τ,將T與最大延時ΔΤ相比,判斷處理時間是否到達接口的最大延時時間。步驟S310、向處理器返回該處理結(jié)果;步驟S311、向處理器返回指示協(xié)處理超時的處理結(jié)果。本實施例公開的接口延時保護方法,能夠調(diào)整指令緩存FIFO的讀取速度和/或大小,使其符合系統(tǒng)內(nèi)部的處理性能。具體的,控制指令緩存FIFO對接收的操作指令的讀取速度,使指令緩存FIFO的讀取速度不超過所述內(nèi)部處理單元的協(xié)處理性能,進而使得操作指令的等待時間只是在指令緩存FIFO中緩存的時間;控制所述指令緩存FIFO的大小,使操作指令在指令緩存FIFO中的緩存時間不超過所述內(nèi)部處理單元的協(xié)處理延時的裕量,進而保證了所有存入指令緩存FIFO的操作指令,都能夠在接口允許的最大延時時間范圍內(nèi)被處理完成。由于設(shè)置了指令緩存FIFO的大小,就會出現(xiàn)接收的操作指令過多而超過指令緩存FIFO的容量的情況,當(dāng)指令緩存FIFO已滿時,如果還有操作指令需要寫入指令緩存 FIFO,就寫不進去了,本發(fā)明實施例這種情況下,在操作指令上打上表示協(xié)處理超時的標(biāo)識并存入預(yù)設(shè)容器,后續(xù)在結(jié)果發(fā)送過程中當(dāng)讀取到帶有超時標(biāo)識的操作指令后,就表示此次訪問肯定會超時,就不去判斷結(jié)果FIFO中是否有處理結(jié)果,也不去判斷是否到達接口最大延時時間,直接返回指示協(xié)處理延時超過接口要求的結(jié)果。需要說明的是,無論操作指令是否寫入到指令緩存FIFO中,都要寫入預(yù)設(shè)容器中,所不同的是,沒有寫入指令緩存FIFO中的操作指令會有一個表示協(xié)處理超時的標(biāo)識, 以便后續(xù)步驟的處理。實施例四上述實施例二、三和四在接收操作指令時指令尚未超時,但是在協(xié)處理時間達到最大延時時間時結(jié)果FIFO中沒有結(jié)果的情況下,發(fā)送指示協(xié)處理超時的處理結(jié)果。于是, 在對應(yīng)操作指令的處理結(jié)果存進結(jié)果FIFO時,如不進行相應(yīng)處理,則會導(dǎo)致返回結(jié)果混亂。針對此情況,本實施例在因協(xié)處理時間達到最大延時時間而結(jié)果FIFO中沒有結(jié)果而發(fā)送指示協(xié)處理超時的處理結(jié)果之后,增加了后續(xù)處理步驟,即丟棄所述結(jié)果FIFO中存進的協(xié)處理超時的處理結(jié)果,圖4示出了一種具體實現(xiàn)過程,包括以下步驟步驟S401、返回指示協(xié)處理延時超過接口要求的處理結(jié)果;步驟S402、記錄返回指示協(xié)處理延時超過接口要求的處理結(jié)果的數(shù)量,為步驟 S403做準(zhǔn)備工作;步驟S403、當(dāng)確定結(jié)果FIFO中存進有處理結(jié)果時,丟棄排在最前面的處理結(jié)果, 以避免返回結(jié)果的混亂;步驟S404、將記錄的數(shù)量減1 ;步驟S405、判斷該記錄的數(shù)量是否為0,若是,則進入步驟S506,否則,返回步驟 S403 ;步驟S406、開始按照正常流程返回處理結(jié)果。下面以一個實例說明,正如前文實施例一所述,協(xié)處理器的工作包括三個獨立的工作流程,即指令接收過程、協(xié)處理過程和處理結(jié)果發(fā)送過程,其中,指令接收過程中,指令緩存FIFO中依據(jù)先后順序依次存儲有操作指令a、操作指令b、操作指令C、操作指令d、操作指令e和操作指令f等6個操作指令。協(xié)處理過程中,指令緩存FIFO將這些指令依據(jù)順序提供給協(xié)處理器的內(nèi)部處理單元,內(nèi)部處理單元進行協(xié)處理后會將處理結(jié)果按照順序存儲進結(jié)果FIFO中,協(xié)處理器首先接收操作指令a并進行協(xié)處理,并把處理結(jié)果A存儲進結(jié)
果FIFO,然后接收操作指令b并進行協(xié)處理,并把處理結(jié)果B存儲進結(jié)果FIFO,......,以
此類推,直到把最后一個操作指令完成為止。處理結(jié)果發(fā)送過程中,協(xié)處理器實時判斷結(jié)果 FIFO中是否有結(jié)果,若有結(jié)果且處理時間未達到或已達到最大延時,則將所述處理結(jié)果返回給處理器,若已達到最大延時但FIFO中無結(jié)果,則返回指示協(xié)處理超時的處理結(jié)果。
當(dāng)協(xié)處理器對某操作指令(如操作指令d)進行協(xié)處理過程中,協(xié)處理時間超過最大延時,則向處理器發(fā)送指示協(xié)處理超時的處理結(jié)果,并繼續(xù)等待,在對應(yīng)所述操作指令d 的處理結(jié)果D存進結(jié)果FIFO時,將該處理結(jié)果D丟棄。需要說明的是,由于對應(yīng)操作指令 c的處理結(jié)果C已經(jīng)被發(fā)送出去了,因此,該處理結(jié)果D位于結(jié)果FIFO中的最前面,因此直接將該位于結(jié)果FIFO最前面的處理結(jié)果丟棄即可。當(dāng)?shù)却^一定時間時,對應(yīng)操作指令 e的處理時間也超過最大延時,也需要返回指示協(xié)處理超時的處理結(jié)果,而由于協(xié)處理器一般是順序指令操作指令,因此,對應(yīng)操作指令e的操作結(jié)果E在結(jié)果FIFO中的位置會在操作結(jié)果D之后。針對此特點,本實施例利用計數(shù)器記錄返回所述指示協(xié)處理超時的處理結(jié)果的數(shù)量(本例中,數(shù)量為幻,依據(jù)該數(shù)量丟棄后續(xù)存入結(jié)果FIFO中的兩個處理結(jié)果,并將計數(shù)器清零,然后按照正常程序處理操作指令f。本實施例增加的后續(xù)處理步驟,可以避免返回結(jié)果的混亂,提高協(xié)處理器的可靠性。當(dāng)所述結(jié)果FIFO中有處理結(jié)果時,丟棄相應(yīng)數(shù)量的指示協(xié)處理延時超過結(jié)果要求的處理結(jié)果。此外,在記錄的指示協(xié)處理延時超過接口要求的處理結(jié)果丟棄完之前,還有操作指令需要返回處理結(jié)果,則繼續(xù)返回指示協(xié)處理超時的處理結(jié)果,并記錄返回指示協(xié)處理延時超時的處理結(jié)果的數(shù)量,直到把所有沒有返回的處理結(jié)果讀取出來為止。本領(lǐng)域技術(shù)人員可以理解,本實施例公開的后續(xù)處理步驟,可以和上述三個實施例配合使用,不僅可以避免處理器不能及時接收到協(xié)處理結(jié)果而發(fā)生異常的情況,同時也可避免返回結(jié)果的混亂。參見圖5,為本實施例公開的方法所對應(yīng)的協(xié)處理器,包括接收單元502、計時單元503、發(fā)送單元504、判斷單元505、指令緩存FIF0506、內(nèi)部處理單元507和結(jié)果FIF0508。發(fā)送單元504包括第一發(fā)送單元5041和第二發(fā)送單元5042。本實施例公開的協(xié)處理器的工作原理為接收單元502接收由處理器501發(fā)送的操作指令,記錄收到該操作指令的時間,并將該操作指令寫入指令緩存FIF0506,內(nèi)部處理單元507從指令緩存FIF0506中讀取相應(yīng)的操作指令,并對其進行協(xié)處理,將協(xié)處理結(jié)果發(fā)送給結(jié)果FIF0508,計時單元503為接收單元502和發(fā)送單元504提供時間,判斷單元505 用于將當(dāng)前的時間與最早接收操作指令的時間相比較,判斷此時的時間是否到達接口的最大延時時間,第一發(fā)送單元5041和第二發(fā)送單元5042獲取所述判斷單元505的判斷結(jié)果, 在沒有超過接口的最大延時的情況下,實時地向結(jié)果FIF0508取結(jié)果,如結(jié)果FIF0508存在處理結(jié)果,則第一發(fā)送單元5041向處理器501返回該結(jié)果,當(dāng)?shù)竭_接口的最大延時時間時, 結(jié)果FIF0508還沒有處理結(jié)果,第二發(fā)送單元5042則向處理器501返回指示協(xié)處理延時超過接口要求的處理結(jié)果,由處理器5601決定下一步如何處理。圖6為本實施公開的接口延時保護方法所對應(yīng)的協(xié)處理器,結(jié)構(gòu)與圖5所示協(xié)處理器基本相同,不同的是,增加了預(yù)設(shè)容器FIF0609,用于緩存接收單元602接收到的操作指令和記錄的接收該指令的時間,判斷單元605用于將當(dāng)前的時間與預(yù)設(shè)容器FIF0609中緩存的最早接收操作指令的時間相比較,判斷此時的時間是否到達接口的最大延時時間, 當(dāng)?shù)竭_接口的最大延時時間時,若結(jié)果FIF0608還沒有處理結(jié)果,第二發(fā)送單元6042則向處理器601返回指示協(xié)處理延時超過接口要求的處理結(jié)果,由處理器601決定下一步如何處理。其它各單元的功能和連接關(guān)系參見圖5,不再贅述。本領(lǐng)域技術(shù)人員可以理解,由預(yù)設(shè)容器FIFO的本身特征決定,判斷是否到達接口的最大延時時間的方法為,判斷單元先讀取預(yù)設(shè)容器FIFO中存儲的位于隊列最前面的一個操作指令的接收時間,與計時單元提供的當(dāng)前時間相比較,進而判斷是否到達應(yīng)該返回結(jié)果的時間。圖7為本實施例公開的接口延時保護方法所對應(yīng)的協(xié)處理器,與實施例二不同的是增加了指令緩存FIFO控制單元710,用于控制所述指令緩存FIFO讀取所述操作指令的速度,使所述指令緩存FIFO的讀取速度不超過所述內(nèi)部處理單元的協(xié)處理性能;和/或控制所述指令緩存FIFO的大小,使所述操作指令在所述指令緩存FIFO中的緩存時間不超過所述內(nèi)部處理單元的協(xié)處理延時的裕量。相應(yīng)的,根據(jù)本實施例所述的方法,預(yù)設(shè)容器 FIF0709中存儲有接收單元702接收的所有操作指令及其接收時間,其中包括因指令緩存 FIF0706已滿而被打上表示協(xié)處理超時標(biāo)識的操作指令,發(fā)送單元704由新增的第三發(fā)送單元(圖中未示出)實時的讀取預(yù)設(shè)容器FIF0709中的操作指令,如果讀取到帶有超時標(biāo)識的操作指令,就直接向處理器701返回指示協(xié)處理延時超過接口要求的處理結(jié)果,而不去判斷結(jié)果FIF0708中是否有處理結(jié)果以及是否到達接口的最大延時。其他單元的功能與圖5、圖6中的同名單元基本相同,在此不再贅述。下面僅以實施例三與本實施例相結(jié)合為例,公開了一種協(xié)處理器,如圖8所示。本實施例在實施例三的基礎(chǔ)上,增加了丟棄單元811,所述丟棄單元811用于在所述第二發(fā)送單元8042返回所述指示協(xié)處理延時的處理結(jié)果之后,丟棄所述結(jié)果FIF0808中存進的與帶有超時標(biāo)識的操作指令相應(yīng)的處理結(jié)果。其他單元的功能與圖5、圖6和圖7中的同名單元基本相同,在此不再贅述。具體的,所述丟棄單元811可以包括計數(shù)器和刪除單元,棄計數(shù)器用于記錄返回指示協(xié)處理延時超過接口要求的處理結(jié)果的數(shù)量,刪除單元用于與計數(shù)器相配合,配合完成下列工作當(dāng)結(jié)果FIF0808中有結(jié)果時,刪除單元刪除與所述計數(shù)器記錄的數(shù)量相應(yīng)數(shù)量的處理結(jié)果,計數(shù)器清理完之前,如果還有操作指令需要返回結(jié)果,則由發(fā)送單元 804(具體由第二發(fā)送單元804 返回指示協(xié)處理延時超過結(jié)果要求的處理結(jié)果,同時計數(shù)器記錄返回該結(jié)果的數(shù)量,直到計數(shù)器被清理完,即所有需要處理的操作指令均處理完成之后,發(fā)送單元804按照正常的處理流程向處理器801返回結(jié)果FIF0808中存儲的處理結(jié)
果。
本領(lǐng)域技術(shù)人員可以理解,本發(fā)明各實施例所公開的接口延時保護方法,不僅可以應(yīng)用中協(xié)處理器上,只要是有延時限制的接口連接器件,均可以采用本發(fā)明的思想進行相應(yīng)的處理。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能, 但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。實施例五本發(fā)明實施例還公開了一種數(shù)據(jù)處理系統(tǒng),該系統(tǒng)的結(jié)構(gòu)圖如圖9所示,包括處理器910、協(xié)處理器911以及內(nèi)存912。其中,處理器910用于完成整個系統(tǒng)的主要處理工作,協(xié)處理器911用于協(xié)助處理器910進行數(shù)據(jù)處理。系統(tǒng)整體工作方式為處理器910接收報文并進行處理,將處理內(nèi)容緩存至內(nèi)存912,當(dāng)出現(xiàn)某些處理器 910不能單獨完成的信息處理的情況時,由協(xié)處理器911協(xié)助處理器910對相應(yīng)信息進行處理。處理器通過QDR、LA-I或NSE等接口與協(xié)處理器連接,通過該接口,處理器可以把需要協(xié)處理器處理的數(shù)據(jù)發(fā)送給協(xié)處理器處理,同理,協(xié)處理器完成相應(yīng)的數(shù)據(jù)處理后,再通過該接口將處理結(jié)果返回給處理器;所述內(nèi)存912緩存所述處理器的處理數(shù)據(jù)。本發(fā)明實施例所公開的數(shù)據(jù)處理系統(tǒng)中的協(xié)處理器可為上述四個實施例所公開的協(xié)處理器中的任意一種,其主要功能為接收所述處理器910的操作指令,記錄接收所述操作指令的時間,并將所述操作指令寫入指令緩存FIFO中,讀取所述指令緩存FIFO中的操作指令并進行協(xié)處理,將處理結(jié)果發(fā)送給結(jié)果FIFO ;當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時,返回指示協(xié)處理超時的處理結(jié)果給處理器910,當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時,返回該處理結(jié)果給處理器 910。本實施例所公開的數(shù)據(jù)處理系統(tǒng),在協(xié)處理器912內(nèi)部的總協(xié)處理延時超過接口的最大延時時,返回指示協(xié)處理延時超過接口要求的處理結(jié)果,進而不會出現(xiàn)因協(xié)處理器的協(xié)處理超時,而導(dǎo)致的處理器910在超過接口的最大延時時接收不到處理結(jié)果的情況, 從而避免了處理器910因此而發(fā)生異常,處理器910和整個系統(tǒng)的穩(wěn)定性較現(xiàn)有技術(shù)中有所提高。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的硬件平臺的方式來實現(xiàn),當(dāng)然也可以全部通過硬件來實施,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案對背景技術(shù)做出貢獻的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如 ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。以上對本發(fā)明進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種接口延時保護方法,其特征在于,包括 協(xié)處理器接收處理器的操作指令;記錄接收所述操作指令的時間; 將所述操作指令寫入指令緩存先入先出隊列FIFO中;讀取所述指令緩存FIFO中的操作指令并進行協(xié)處理,將處理結(jié)果發(fā)送給結(jié)果FIFO ; 當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時,返回所述處理結(jié)果給所述CPU ;當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時,返回指示協(xié)處理超時的處理結(jié)果給所述CPU。
2.根據(jù)權(quán)利要求1所述的接口延時保護方法,其特征在于,還包括將接收到的操作指令和記錄的接收所述指令的時間緩存至預(yù)設(shè)容器。
3.根據(jù)權(quán)利要求2所述接口延時保護方法,其特征在于,接收所述操作指令之后,將所述操作指令寫入指令緩存FIFO之前,還包括當(dāng)所述指令緩存FIFO已滿時,在所述操作指令上打上表示協(xié)處理超時的標(biāo)識,并將此帶有超時標(biāo)識的操作指令緩存至所述預(yù)設(shè)容器。
4.根據(jù)權(quán)利要求3所述接口延時保護方法,其特征在于,還包括讀取所述預(yù)設(shè)容器中緩存的操作指令,若讀取到所述帶有超時標(biāo)識的操作指令后,則返回指示協(xié)處理延時的處理結(jié)果。
5.根據(jù)權(quán)利要求1或2所述接口延時保護方法,其特征在于,返回所述指示協(xié)處理超時的處理結(jié)果之后,還包括丟棄所述結(jié)果FIFO中存進的協(xié)處理超時的處理結(jié)果。
6.一種協(xié)處理器,其特征在于,包括接收單元,用于接收處理器發(fā)送的操作指令; 計時單元,用于記錄接收所述操作指令的時間;指令緩存FIFO,用于緩存所述操作指令,并將所述操作指令提供給內(nèi)部處理單元; 內(nèi)部處理單元,用于讀取指令緩存FIFO中的操作指令,對所述操作指令進行協(xié)處理, 并發(fā)送處理結(jié)果;結(jié)果FIFO,用于接收并存儲內(nèi)部處理單元對所述操作指令的處理結(jié)果; 判斷單元,用于將當(dāng)前時間與記錄的最早接收所述操作指令的時間相比較,判斷協(xié)處理時間是否到達接口的最大延時時間;第一發(fā)送單元,用于當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時,返回所述處理結(jié)果給所述CPU ;第二發(fā)送單元,用于當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時,返回指示協(xié)處理超時的處理結(jié)果給所述CPU。
7.根據(jù)權(quán)利要求6所述協(xié)處理器,其特征在于,還包括,預(yù)設(shè)容器,用于緩存接收到的操作指令和記錄的接收所述指令的時間。
8.根據(jù)權(quán)利要求7所述協(xié)處理器,其特征在于,還包括丟棄單元,用于在所述第二發(fā)送單元返回所述指示協(xié)處理超時的處理結(jié)果之后,丟棄所述結(jié)果FIFO中存進的協(xié)處理超時的處理結(jié)果。
9.一種數(shù)據(jù)處理系統(tǒng),包括處理器、內(nèi)存以及協(xié)處理器,其特征在于,所述協(xié)處理器,用于接收所述處理器的操作指令,記錄接收所述操作指令的時間,并將所述操作指令寫入指令緩存FIFO中,讀取所述指令緩存FIFO中的操作指令并進行協(xié)處理, 將處理結(jié)果發(fā)送給結(jié)果FIFO,當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時,返回指示協(xié)處理超時的處理結(jié)果,當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時,返回所述處理結(jié)果; 所述內(nèi)存,用于緩存所述處理器的處理數(shù)據(jù)。
全文摘要
本發(fā)明實施例公開了一種接口延時保護方法,包括協(xié)處理器接收處理器的操作指令,記錄接收所述操作指令的時間,將所述操作指令寫入指令緩存先入先出隊列FIFO中,讀取所述指令緩存FIFO中的操作指令并進行協(xié)處理,將處理結(jié)果發(fā)送給結(jié)果FIFO,當(dāng)協(xié)處理時間未達到最大處理延時且所述結(jié)果FIFO中有處理結(jié)果時,返回所述處理結(jié)果給所述CPU,當(dāng)協(xié)處理時間達到最大處理延時且所述結(jié)果FIFO中沒有處理結(jié)果時,返回指示協(xié)處理超時的處理結(jié)果給所述CPU。本發(fā)明解決了現(xiàn)有技術(shù)的問題,在接口允許的延時范圍內(nèi),將處理結(jié)果返回給處理器,避免了處理器因此發(fā)生異常,提高了處理器和整個系統(tǒng)的穩(wěn)定性。
文檔編號G06F15/167GK102156684SQ201010590049
公開日2011年8月17日 申請日期2010年12月15日 優(yōu)先權(quán)日2010年12月15日
發(fā)明者張君秋, 曹學(xué)成, 王建文, 顧堃 申請人:成都市華為賽門鐵克科技有限公司