專利名稱:多核處理器的業(yè)務(wù)流處理方法及多核處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多核處理器的業(yè)務(wù)流處理方法,尤其涉及一種通過分流核對工作核進(jìn)行監(jiān)控,以提高運行可靠性的方法及能夠?qū)崿F(xiàn)這種方法的多核處理器。
背景技術(shù):
多核處理器是指將多個通用CPU及一些功能部件集成封裝到一塊芯片中而形成的一個片上系統(tǒng)(System On Chip,簡稱,SOC)處理器。這個SOC中的通用CPU之間及CPU與芯片中的其他功能部件之間通過高速互聯(lián)技術(shù)進(jìn)行通信,與多CPU系統(tǒng)相比,大幅度提升了數(shù)據(jù)通信產(chǎn)品的軟件處理能力,使系統(tǒng)性能得到進(jìn)一步提升。
現(xiàn)有多核處理器按處理模式分為兩種一種是對稱多處理(SymmetricalMulti-Processing,簡稱SMP)模式,另一種是非對稱多處理模式(Asymmetrical Multi-Processing,簡稱AMP)模式。其中,在SMP模式中,所有核都具有相同的功能,相當(dāng)于多個單核設(shè)備在并發(fā)運行;而在AMP模式中,同時只有一個或部分核在操作系統(tǒng)中運行,主要承擔(dān)協(xié)議的實現(xiàn)和對外接口等功能,而其他的核沒有操作系統(tǒng)支持,只是完成數(shù)據(jù)轉(zhuǎn)發(fā)等功能。SMP模式在實現(xiàn)上相對簡單,但其對系統(tǒng)資源的占用是完全獨立的,因此需要占用大量的系統(tǒng)資源,這對于大部分?jǐn)?shù)據(jù)通信設(shè)備來說是很難滿足的。因此,現(xiàn)有的多核處理器主要采用AMP模式實現(xiàn)業(yè)務(wù)應(yīng)用。
現(xiàn)有技術(shù)的缺陷在于利用多個核進(jìn)行并行處理,雖然可以大大提高處理性能,但如果任何一個核出現(xiàn)了軟件或硬件異常時都有可能導(dǎo)致整個業(yè)務(wù)系統(tǒng)的癱瘓,從而降低了系統(tǒng)的可靠性,反過來又限制了多核處理器的實際應(yīng)用?,F(xiàn)有的解決辦法是使用從設(shè)備對主設(shè)備進(jìn)行備份,當(dāng)系統(tǒng)發(fā)生異常時,由從設(shè)備承擔(dān)主要工作。這種方法實現(xiàn)起來簡單,但需要購置大量的從設(shè)備用于備份,因此大大提高了組網(wǎng)成本,給客戶帶來了經(jīng)濟(jì)上的負(fù)擔(dān)。除此之外,為了使主從設(shè)備的數(shù)據(jù)狀態(tài)保持實時同步,主從設(shè)備之間要進(jìn)行大量的數(shù)據(jù)交互,這些數(shù)據(jù)往往也要占用固定的業(yè)務(wù)端口,因此增加了系統(tǒng)開銷,浪費了系統(tǒng)資源,對業(yè)務(wù)處理能力有一定的影響。并且,主從設(shè)備之間進(jìn)行角色切換時還會有一定的延時,因此還會有可能造成業(yè)務(wù)處理的中斷。
另外,在申請?zhí)枮?00610067781.1,名稱為“具有活動和非活動執(zhí)行核心的多核處理器”的專利公開文件中,為了解決多核處理器的可靠性問題,在單個集成電路中設(shè)置多個核心標(biāo)識寄存器,一個標(biāo)識寄存器對應(yīng)于一個核心,用于標(biāo)識該核心是否處于活動狀態(tài),將非活動的核心作為備用核心(參見公開文件第6頁第4段)。該專利中,雖然不需要設(shè)置從設(shè)備進(jìn)行備份,但仍然需要有備用核存在,因此降低了核心的利用率。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種能夠提高多核處理器可靠性的業(yè)務(wù)流處理方法,及能夠?qū)崿F(xiàn)上述方法的多核處理器。
為實現(xiàn)上述目的,本發(fā)明提供了一種多核處理器的業(yè)務(wù)流處理方法,包括分流核根據(jù)業(yè)務(wù)流分配原則將第一業(yè)務(wù)流分配給第一工作核;第一工作核在對第一業(yè)務(wù)流的處理過程中,根據(jù)預(yù)先設(shè)定的響應(yīng)等待周期向分流核回復(fù)響應(yīng)信號;分流核在每個響應(yīng)等待周期內(nèi)判斷是否收到來自于第一工作核的響應(yīng)信號,當(dāng)未收到該響應(yīng)信號時,將第一業(yè)務(wù)流分配給第二工作核。
為實現(xiàn)上述目的,本發(fā)明還提供了一種多核處理器,包括分流核及多個工作核,其中,所述分流核包括,業(yè)務(wù)流分配單元,用于根據(jù)業(yè)務(wù)流分配原則和/或來自于響應(yīng)信號判斷單元的判斷結(jié)果,控制業(yè)務(wù)流在工作核間的分配;響應(yīng)信號判斷單元,用于在每個響應(yīng)等待周期內(nèi)判斷是否收到來自于工作核的響應(yīng)信號,當(dāng)判斷出未收到響應(yīng)信號時,將判斷結(jié)果發(fā)送給業(yè)務(wù)流分配單元;所述工作核包括,業(yè)務(wù)流處理單元,用于對來自于分流核的業(yè)務(wù)流進(jìn)行處理;響應(yīng)信號回復(fù)單元,用于在處理過程中,根據(jù)預(yù)先設(shè)定的響應(yīng)等待周期向分流核回復(fù)響應(yīng)信號。
因此基于本發(fā)明,由于通過分流核對工作核的工作狀態(tài)進(jìn)行了監(jiān)控,當(dāng)某個工作核發(fā)生異常時,將原本分配給該工作核的業(yè)務(wù)流分配給其他正常工作的工作核,因此不會中斷對業(yè)務(wù)流的處理,從而提高了多核處理器的可靠性。由于本方法是基于現(xiàn)有多核處理器已有的內(nèi)部資源,不需要在組網(wǎng)中增加其他備份設(shè)備,因此降低了生產(chǎn)成本;并且由于不需要另設(shè)備用核,也不需要占用業(yè)務(wù)端口,因此提高了系統(tǒng)資源的使用效率。另外,由于本實施例所述方法是在多核處理器內(nèi)部實現(xiàn)的,內(nèi)部總線的速度很高,因此能夠保證重新分配業(yè)務(wù)流時不會產(chǎn)生較大時延,從而進(jìn)一步減小了對業(yè)務(wù)流處理的影響。
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明實施例1所述多核處理器的業(yè)務(wù)流處理方法流程圖;圖2為本發(fā)明實施例2所述多核處理器的業(yè)務(wù)流處理方法流程圖;
圖3為本發(fā)明實施例3所述多核處理器的內(nèi)部結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例4所述多核處理器的內(nèi)部結(jié)構(gòu)示意圖。
具體實施例方式
實施例1本實施例提供了一種通過由分流核對工作核的工作狀態(tài)進(jìn)行監(jiān)控,以提高多核處理器可靠性的業(yè)務(wù)流處理方法,如圖1所示,步驟101,分流核根據(jù)業(yè)務(wù)流分配原則將第一業(yè)務(wù)流分配給第一工作核。其中,分流核是指在現(xiàn)有的多核并行處理業(yè)務(wù)中,設(shè)置在業(yè)務(wù)流入口處,用于將接收到的多個業(yè)務(wù)流在多個并行工作的工作核之間進(jìn)行分配的核。業(yè)務(wù)流分配原則可以根據(jù)現(xiàn)有技術(shù)進(jìn)行確定,如根據(jù)業(yè)務(wù)流中的五元組信息進(jìn)行分配,或根據(jù)不同工作核的忙閑狀態(tài)進(jìn)行分配等,總之要使多個業(yè)務(wù)流盡量均勻的分配給工作核,以充分發(fā)揮所有工作核的工作效率。在本步驟中,第一業(yè)務(wù)流是指根據(jù)現(xiàn)有業(yè)務(wù)流分配原則分配給第一工作核的業(yè)務(wù)流。分流核與工作核相比,由于分流核的功能比較簡單,出現(xiàn)異常的可能性非常小,因此對整個多核處理器的可靠性的影響可以忽略不計。
步驟102,第一工作核對第一業(yè)務(wù)流進(jìn)行處理,在處理過程中,根據(jù)預(yù)先設(shè)定的響應(yīng)等待周期向分流核回復(fù)響應(yīng)信號。如果第一工作核能夠正常工作,沒有發(fā)生異常,則周期性地向分流核回復(fù)響應(yīng)信號,以通知分流核,該第一工作核正處于正常工作狀態(tài)。否則,如果第一工作核發(fā)生了異常,如軟件運行異?;蛴布收袭惓5龋摰谝还ぷ骱吮銦o法在預(yù)期時間內(nèi)回復(fù)響應(yīng)信號。另外,如果該第一業(yè)務(wù)流的業(yè)務(wù)數(shù)據(jù)信息,如中間計算結(jié)果、公式變量等,需要與其他工作核進(jìn)行共享,還可以將這些業(yè)務(wù)數(shù)據(jù)信息保存在多核處理器的共享內(nèi)存中。
步驟103,分流核在每個響應(yīng)等待周期內(nèi)判斷是否收到來自于第一工作核的響應(yīng)信號,當(dāng)判斷出未收到該響應(yīng)信號時,將第一業(yè)務(wù)流分配給第二工作核,并且不再向發(fā)生了異常的第一工作核分配業(yè)務(wù)流。其中,第二工作核是指處于正常工作狀態(tài)的區(qū)別于第一工作核的另一個工作核。如果分流核未收到響應(yīng)信號,說明第一工作核在處理第一業(yè)務(wù)流時發(fā)生了異常,如果該第一業(yè)務(wù)流尚未處理完,則分流核將該第一業(yè)務(wù)流分配給第二工作核。如果第二工作核對第一業(yè)務(wù)流進(jìn)行處理時,需要用到第一工作核處理第一業(yè)務(wù)流時產(chǎn)生的相關(guān)業(yè)務(wù)數(shù)據(jù)信息,則可以通過訪問步驟102中所述的共享內(nèi)存得到這些業(yè)務(wù)數(shù)據(jù)信息。
另外,需要說明的是,在某些情況下,由于軟件處理延時或通信故障等原因,工作核雖然處于正常工作狀態(tài),但沒能在響應(yīng)等待周期內(nèi)將響應(yīng)信號及時地回復(fù)給分流核,或者回復(fù)的響應(yīng)信號沒能及時到達(dá)分流核,使得分流核誤認(rèn)為該工作核發(fā)生了異常,便中斷向該工作核分配業(yè)務(wù)流,對業(yè)務(wù)流的處理會造成不必要的影響,也導(dǎo)致資源的浪費。為了盡可能減少分流核對工作核狀態(tài)的誤判,降低敏感度,可以預(yù)先設(shè)定一個判斷次數(shù),只有當(dāng)分流核根據(jù)該判斷次數(shù)均判斷出未收到響應(yīng)信號時,才將第一業(yè)務(wù)流分配給第二工作核,并且不再向第一工作核分配業(yè)務(wù)流。例如可以預(yù)先設(shè)定只有在連續(xù)三個響應(yīng)等待周期內(nèi)均判斷出未收到響應(yīng)信號時,才將第一業(yè)務(wù)流進(jìn)行重新分配,并不再向該第一工作核分配其他業(yè)務(wù)流,盡可能地防止了對工作核正常工作的影響。
另外,還需要說明的是,多核處理器中還可以設(shè)置異常檢測硬件單元,通過異常檢測硬件單元對工作核進(jìn)行監(jiān)控,當(dāng)檢測到工作核發(fā)生異常時,向分流核發(fā)送中斷信號;分流核收到該中斷信號后,將第一業(yè)務(wù)流分配給第二工作核,從而保證處理器的可靠性。通過硬件實現(xiàn)對工作核的工作進(jìn)行監(jiān)控的優(yōu)點是響應(yīng)速度更快。與步驟101至103所述方法相結(jié)合,當(dāng)響應(yīng)等待周期較長時,能夠更快地檢測到工作核的異常,以防止在業(yè)務(wù)流執(zhí)行過程中,由于等待時間過長而造成影響。
通過本實施例所述方法,由于通過分流核對工作核的工作狀態(tài)進(jìn)行了監(jiān)控,當(dāng)某個工作核發(fā)生異常時,將原本分配給該工作核的業(yè)務(wù)流分配給其他正常工作的工作核,因此不會中斷對業(yè)務(wù)流的處理,從而提高了多核處理器的可靠性。由于本方法是基于現(xiàn)有多核處理器已有的內(nèi)部資源,不需要在組網(wǎng)中增加其他備份設(shè)備,因此降低了生產(chǎn)成本;并且由于不需要另設(shè)備用核,也不需要占用業(yè)務(wù)端口,因此提高了系統(tǒng)資源的使用效率。另外,由于本實施例所述方法是在多核處理器內(nèi)部實現(xiàn)的,內(nèi)部總線的速度很高,因此能夠保證重新分配業(yè)務(wù)流時不會產(chǎn)生較大時延,從而進(jìn)一步減小了對業(yè)務(wù)流處理的影響。
實施例2實施例1所述方法提高了整個多核處理器的可靠性,但發(fā)生了異常的工作核無法自動恢復(fù)運行,在一定程度上造成了資源的浪費,為了提高工作核的利用效率,本實施例提供了一種通過對發(fā)生了異常的工作核進(jìn)行復(fù)位,使其恢復(fù)正常工作的業(yè)務(wù)流處理方法。如圖2所示,步驟101、102及103與實施例1所述步驟相同,此處不再贅述。
步驟104,分流核將第一業(yè)務(wù)流分配給第二工作核后,還向第一工作核發(fā)送復(fù)位指令信號,使第一工作核執(zhí)行復(fù)位操作。具體地,分流核可以親自向第一工作核發(fā)送復(fù)位指令信號,或者還可以通過設(shè)置在多核處理器中的異常檢測硬件單元或未發(fā)生異常的正常工作核向第一工作核發(fā)送復(fù)位指令信號。其中,異常檢測硬件單元是設(shè)置在多核處理器中的用于檢測發(fā)生了異常的工作核的硬件單元,通過該硬件單元可以對工作核進(jìn)行復(fù)位。另外,通過現(xiàn)有技術(shù),也可以為工作核設(shè)計能夠復(fù)位其他工作核的功能,例如在本步驟中,第一工作核發(fā)生了異常,可以通過其他正常工作核對該第一工作核進(jìn)行復(fù)位。
步驟105,第一工作核完成復(fù)位操作后,向分流核發(fā)送復(fù)位確認(rèn)信號。如果沒能完成復(fù)位操作,當(dāng)然也就無法發(fā)送該信號。
步驟106,分流核在預(yù)先設(shè)定的復(fù)位等待時間內(nèi)判斷是否收到來自于第一工作核的復(fù)位確認(rèn)信號,當(dāng)判斷出收到復(fù)位確認(rèn)信號時,執(zhí)行步驟111,否則執(zhí)行步驟112。
步驟111,分流核收到該復(fù)位確認(rèn)信號后,繼續(xù)根據(jù)業(yè)務(wù)流分配原則向第一工作核分配業(yè)務(wù)流。收到來自于第一工作核的復(fù)位確認(rèn)信號,說明該工作核已經(jīng)復(fù)位成功,恢復(fù)了正常工作狀態(tài),因此繼續(xù)向其分配業(yè)務(wù)流,具體地,可以將尚未完成的第一業(yè)務(wù)流重新分配給第一工作核,或者將其他的新的業(yè)務(wù)流分配給第一工作核進(jìn)行處理,總之按照現(xiàn)有的業(yè)務(wù)分配原則進(jìn)行分配即可。
步驟112,向輸出設(shè)備發(fā)送警告信號。工作核發(fā)生異??赡苡熊浖蚧蛴布颍话闱闆r下,由軟件原因引起的異常是可以通過復(fù)位解決的,而硬件發(fā)生損壞等硬件原因無法通過復(fù)位加以解決。因此,如果在復(fù)位等待時間內(nèi)未收到來自于第一工作核的復(fù)位確認(rèn)信號說明該工作核復(fù)位失敗,且很可能發(fā)生了硬件損壞,因此發(fā)出警告信號以提醒用戶進(jìn)行相應(yīng)處理。
此處需要指出的是,雖然由軟件原因引起的異??梢酝ㄟ^復(fù)位解決,但不一定能夠一次復(fù)位成功,或者復(fù)位需要很長時間。如果其實際復(fù)位時間超過了預(yù)先設(shè)定的復(fù)位等待時間,則分流核無法判斷出該第一工作核能夠通過復(fù)位修復(fù),而是會錯誤地判斷出其發(fā)生了硬件損壞。為了盡量減少誤判的發(fā)生,當(dāng)分流核在預(yù)先設(shè)定的復(fù)位等待時間內(nèi)首次判斷出未收到復(fù)位確認(rèn)信號時,并不立即向輸出設(shè)備發(fā)送警告信號,而是根據(jù)步驟104所述方法,再次向第一工作核發(fā)送復(fù)位指令信號,并重新在預(yù)先設(shè)定的復(fù)位等待時間內(nèi)判斷是否收到來自于第一工作核的復(fù)位確認(rèn)信號,只有當(dāng)分流核根據(jù)預(yù)先設(shè)定的判斷次數(shù),均判斷出未收到復(fù)位確認(rèn)信號時,才向輸出設(shè)備發(fā)送警告信號,表明第一工作核由于硬件原因引起了異常,通知用戶進(jìn)行解決。
通過本實施例所述方法,停止了正常運行的第一工作核通過復(fù)位操作及時恢復(fù)了運行狀態(tài),因此提高了工作核的利用率。并且,即使發(fā)生了硬件損壞故障,也可以及時通知用戶進(jìn)行解決,不影響其他工作核的正常工作,保證了整個多核處理器的可靠性。
另外,需要指出的是,本實施例的步驟106中,也可以不預(yù)先設(shè)定復(fù)位等待時間,分流核如果收到來自于第一工作核的復(fù)位確認(rèn)信號,則繼續(xù)向其分配業(yè)務(wù)流;否則如果沒有收到,也可以不做任何處理,而是由步驟104中所述的對第一工作核進(jìn)行復(fù)位的異常檢測硬件單元或其他正常工作核通知用戶進(jìn)行解決。
實施例3本實施例提供了一種能夠提高可靠性的多核處理器。如圖3所示,為該多核處理器內(nèi)部結(jié)構(gòu)示意圖。多核處理器10包括分流核20,多個工作核,如工作核30、40等。其中,分流核20包括響應(yīng)信號判斷單元22和業(yè)務(wù)流分配單元21;每個工作核均包括響應(yīng)信號回復(fù)單元和業(yè)務(wù)流處理單元。
在工作時,業(yè)務(wù)流分配單元21將接收到的業(yè)務(wù)流根據(jù)業(yè)務(wù)流分配原則給各個工作核。業(yè)務(wù)流分配原則可以根據(jù)現(xiàn)有技術(shù)進(jìn)行確定,如根據(jù)業(yè)務(wù)流中的五元組信息進(jìn)行分配,或根據(jù)不同工作核的忙閑狀態(tài)進(jìn)行分配等,總之要使多個業(yè)務(wù)流盡量均勻的分配給工作核,以充分發(fā)揮所有工作核的工作效率。假設(shè)業(yè)務(wù)流分配單元21收到的業(yè)務(wù)流中包括一個第一業(yè)務(wù)流,該第一業(yè)務(wù)流是指根據(jù)現(xiàn)有業(yè)務(wù)流分配原則分配給工作核30的業(yè)務(wù)流。分流核20與若干個工作核相比,由于分流核20的功能比較簡單,出現(xiàn)異常的可能性非常小,因此對整個多核處理器10的可靠性的影響可以忽略不計。
工作核30的業(yè)務(wù)流處理單元32對來自于分流核20的第一業(yè)務(wù)流進(jìn)行處理。在處理過程中,響應(yīng)信號回復(fù)單元31以預(yù)先設(shè)定的響應(yīng)等待周期向分流核20回復(fù)響應(yīng)信號。如果工作核30能夠正常工作,沒有發(fā)生異常,則可以周期性地向分流核20回復(fù)響應(yīng)信號,以通知分流核20,該工作核30正處于正常工作狀態(tài)。否則,如果工作核30發(fā)生了異常,如軟件運行異?;蛴布收袭惓5龋摴ぷ骱?0的響應(yīng)信號回復(fù)單元31便不會在預(yù)期時間內(nèi)回復(fù)響應(yīng)信號。另外,如果該第一業(yè)務(wù)流的業(yè)務(wù)數(shù)據(jù)信息,如中間計算結(jié)果、公式變量等,需要與其他工作核進(jìn)行共享,還可以將這些業(yè)務(wù)數(shù)據(jù)信息保存在多核處理器10的共享內(nèi)存(圖中未標(biāo)出)中。
分流核20的響應(yīng)信號判斷單元22在每個響應(yīng)等待周期內(nèi)判斷是否收到來自于工作核30的響應(yīng)信號,當(dāng)判斷出未收到該響應(yīng)信號時,將判斷結(jié)果通過內(nèi)部總線發(fā)送給業(yè)務(wù)流分配單元21,以通知業(yè)務(wù)流分配單元21工作核30發(fā)生了異常。業(yè)務(wù)分配單元21收到該判斷結(jié)果后將第一業(yè)務(wù)流分配給工作核40,并且不再向發(fā)生了異常的工作核30分配業(yè)務(wù)流。其中,工作核40是指處于正常工作狀態(tài)的區(qū)別于工作核30的另一個工作核。如果分流核20未收到響應(yīng)信號,說明工作核30在處理第一業(yè)務(wù)流時發(fā)生了異常,如果該第一業(yè)務(wù)流尚未處理完,則分流核20將該第一業(yè)務(wù)流分配給工作核40。工作核40的業(yè)務(wù)流處理單元42對該第一業(yè)務(wù)流進(jìn)行處理時,也要通過響應(yīng)信號回復(fù)單元41向分流核20回復(fù)響應(yīng)信號,使分流核20對工作核40的工作狀態(tài)保持監(jiān)控。如果工作核40對第一業(yè)務(wù)流進(jìn)行處理時,需要用到工作核30處理第一業(yè)務(wù)流時產(chǎn)生的相關(guān)業(yè)務(wù)數(shù)據(jù)信息,則可以通過訪問多核處理器10的共享內(nèi)存得到這些業(yè)務(wù)數(shù)據(jù)信息。
另外,需要說明的是,在某些情況下,由于軟件處理延時或通信故障等原因,工作核30雖然處于正常工作狀態(tài),但沒能在響應(yīng)等待周期內(nèi)將響應(yīng)信號及時地回復(fù)給分流核20,或者回復(fù)的響應(yīng)信號沒能及時到達(dá)分流核20,使得分流核20誤認(rèn)為該工作核30發(fā)生了異常,便中斷向工作核30分配業(yè)務(wù)流,對業(yè)務(wù)流的處理會成不必要的影響,也導(dǎo)致資源的浪費。為了盡可能減少分流核20對工作核30狀態(tài)的誤判,降低敏感度,可以預(yù)先設(shè)定一個判斷次數(shù),只有當(dāng)分流核20的響應(yīng)信號判斷單元22根據(jù)該判斷次數(shù),例如連續(xù)三次,均判斷出未收到響應(yīng)信號時,才將判斷結(jié)果發(fā)送給業(yè)務(wù)流分配單元21,由業(yè)務(wù)流分配單元21將第一業(yè)務(wù)流分配給工作核40,并且不再向工作核30分配業(yè)務(wù)流。盡可能地防止對工作核30的正常工作的影響。
通過本實施例所述方法,由于分流核20可以對所有工作核的工作狀態(tài)進(jìn)行監(jiān)控,當(dāng)某個工作核發(fā)生異常時,將原本分配給該工作核的業(yè)務(wù)流分配給其他正常工作的工作核,因此不會中斷對業(yè)務(wù)流的處理,從而提高了多核處理器的可靠性。由于本方法是基于現(xiàn)有多核處理器已有的內(nèi)部資源,不需要在組網(wǎng)中增加其他備份設(shè)備,因此降低了生產(chǎn)成本;并且由于不需要另設(shè)備用核,也不需要占用業(yè)務(wù)端口,因此提高了系統(tǒng)資源的使用效率。另外,由于本實施例所述方法在多核處理器內(nèi)部實現(xiàn)的,內(nèi)部總線的速度很高,因此能夠保證重新分配業(yè)務(wù)流時不會產(chǎn)生較大時延,從而進(jìn)一步減小了對業(yè)務(wù)流處理的影響。并且,停止了正常運行的工作核通過復(fù)位操作可以及時恢復(fù)運行狀態(tài),因此提高了工作核的利用率。并且,即使發(fā)生了硬件損壞故障,也可以及時通知用戶進(jìn)行解決,不影響其他工作核的正常工作,保證了整個多核處理器的可靠性。
實施例4本實施例提供了一種在實施例3的基礎(chǔ)上能夠使發(fā)生異常的工作核恢復(fù)運行的多核處理器。如圖4所示,分流核20還包括復(fù)位指令單元23,每工作核還包括復(fù)位控制單元,如復(fù)位控制單元33、43等。
在工作時,響應(yīng)信號判斷單元22判斷出未收到來自于工作核30的響應(yīng)信號時,將判斷結(jié)果通過內(nèi)部總線發(fā)送給業(yè)務(wù)流分配單元21的同時,還將該判斷結(jié)果發(fā)送給復(fù)位指令單元23,以通知復(fù)位指令單元23工作核30發(fā)生了異常。復(fù)位指令單元23收到該判斷結(jié)果后,向工作核30發(fā)送復(fù)位指令信號。工作核30的復(fù)位控制單元33收到該復(fù)位指令信號后,對工作核30執(zhí)行復(fù)位操作。復(fù)位成功后,復(fù)位控制單元33向分流核20發(fā)送復(fù)位確認(rèn)信號。如果沒能完成復(fù)位操作,當(dāng)然也就無法發(fā)送該信號。分流核20的復(fù)位指令單元23在預(yù)先設(shè)定的復(fù)位等待時間內(nèi)判斷是否收到來自于工作核30的復(fù)位確認(rèn)信號,當(dāng)判斷出收到復(fù)位確認(rèn)信號時,將復(fù)位結(jié)果發(fā)送給業(yè)務(wù)流分配單元21,由業(yè)務(wù)流分配單元21繼續(xù)根據(jù)業(yè)務(wù)流分配原則向工作核30分配業(yè)務(wù)流。否則向輸出設(shè)備(圖中未標(biāo)出)發(fā)送警告信號。工作核發(fā)生異常可能有軟件原因或硬件原因,一般情況下,由軟件原因引起的異常是可以通過復(fù)位解決的,而硬件發(fā)生損壞等硬件原因無法通過復(fù)位加以解決。因此,如果復(fù)位指令單元23判斷出工作核30復(fù)位失敗,則很可能發(fā)生了硬件損壞,因此發(fā)出警告信號以提醒用戶進(jìn)行解決。
此處需要指出的是,雖然由軟件原因引起的異常可以通過復(fù)位解決,但不一定能夠一次復(fù)位成功,或者復(fù)位需要很長時間。如果其實際復(fù)位時間超過了預(yù)先設(shè)定的復(fù)位等待時間,則復(fù)位指令單元23無法判斷出該工作核30能夠通過復(fù)位修復(fù),而是會錯誤地判斷出其發(fā)生了硬件損壞。為了盡量減少誤判的發(fā)生,當(dāng)復(fù)位指令單元23在預(yù)先設(shè)定的復(fù)位等待時間內(nèi)首次判斷出未收到復(fù)位確認(rèn)信號時,并不立即向輸出設(shè)備發(fā)送警告信號,而是再次向工作核30發(fā)送復(fù)位指令信號,并重新在預(yù)先設(shè)定的復(fù)位等待時間內(nèi)判斷是否收到來自于工作核30的復(fù)位確認(rèn)信號,只有當(dāng)復(fù)位指令單元23根據(jù)預(yù)先設(shè)定的判斷次數(shù),如連續(xù)三次均判斷出未收到復(fù)位確認(rèn)信號時,才向輸出設(shè)備發(fā)送警告信號,表明工作核30由于硬件原因引起了異常,通知用戶進(jìn)行解決。
最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種多核處理器的業(yè)務(wù)流處理方法,包括分流核根據(jù)業(yè)務(wù)流分配原則將第一業(yè)務(wù)流分配給第一工作核;第一工作核在對第一業(yè)務(wù)流的處理過程中,根據(jù)預(yù)先設(shè)定的響應(yīng)等待周期向分流核回復(fù)響應(yīng)信號;分流核在每個響應(yīng)等待周期內(nèi)判斷是否收到來自于第一工作核的響應(yīng)信號,當(dāng)未收到該響應(yīng)信號時,將第一業(yè)務(wù)流分配給第二工作核。
2.根據(jù)權(quán)利要求1所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,所述將第一業(yè)務(wù)流分配給第二工作核之前還包括分流核根據(jù)預(yù)先設(shè)定的判斷次數(shù)判斷出未收到響應(yīng)信號。
3.根據(jù)權(quán)利要求2所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,還包括分流核將第一業(yè)務(wù)流分配給第二工作核后,還向第一工作核發(fā)送復(fù)位指令信號,使第一工作核執(zhí)行復(fù)位操作。
4.根據(jù)權(quán)利要求3所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,還包括第一工作核完成復(fù)位操作后,向分流核發(fā)送復(fù)位確認(rèn)信號。
5.根據(jù)權(quán)利要求4所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,還包括分流核收到復(fù)位確認(rèn)信號后,繼續(xù)根據(jù)業(yè)務(wù)流分配原則向第一工作核分配業(yè)務(wù)流。
6.根據(jù)權(quán)利要求5所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,還包括分流核在預(yù)先設(shè)定的復(fù)位等待時間內(nèi)判斷是否收到復(fù)位確認(rèn)信號,當(dāng)未收到復(fù)位確認(rèn)信號時,向輸出設(shè)備發(fā)送警告信號。
7.根據(jù)權(quán)利要求6所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,所述向輸出設(shè)備發(fā)送警告信號之前還包括當(dāng)未收到復(fù)位確認(rèn)信號時,再次向第一工作核發(fā)送復(fù)位指令信號,并根據(jù)預(yù)先設(shè)定的判斷次數(shù)判斷出未收到復(fù)位確認(rèn)信號。
8.根據(jù)權(quán)利要求3-7任意項所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,還包括通過多核處理器中的異常檢測硬件單元對工作核進(jìn)行監(jiān)控,當(dāng)檢測到工作核發(fā)生異常時,向分流核發(fā)送中斷信號;分流核收到該中斷信號后,將第一業(yè)務(wù)流分配給第二工作核。
9.根據(jù)權(quán)利要求8所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,所述將分流核將第一業(yè)務(wù)流分配給第二工作核后還包括通過異常檢測硬件單元向第一工作核發(fā)送復(fù)位指令信號,使第一工作核執(zhí)行復(fù)位操作。
10.根據(jù)權(quán)利要求3-7任意項所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,還包括分流核將第一業(yè)務(wù)流分配給第二工作核后,通過未發(fā)生異常的正常工作核向第一工作核發(fā)送復(fù)位指令信號,使第一工作核執(zhí)行復(fù)位操作。
11.根據(jù)權(quán)利要求2-7任意項所述的多核處理器的業(yè)務(wù)流處理方法,其特征在于,還包括所述第一工作核對第一業(yè)務(wù)流進(jìn)行處理還包括將處理過程中的業(yè)務(wù)數(shù)據(jù)信息保存在多核處理器的共享內(nèi)存中。
12.一種多核處理器,包括分流核及多個工作核,其特征在于所述分流核包括,業(yè)務(wù)流分配單元,用于根據(jù)業(yè)務(wù)流分配原則和/或來自于響應(yīng)信號判斷單元的判斷結(jié)果,控制業(yè)務(wù)流在工作核間的分配;響應(yīng)信號判斷單元,用于在每個響應(yīng)等待周期內(nèi)判斷是否收到來自于工作核的響應(yīng)信號,當(dāng)判斷出未收到響應(yīng)信號時,將判斷結(jié)果發(fā)送給業(yè)務(wù)流分配單元;所述工作核包括,業(yè)務(wù)流處理單元,用于對來自于分流核的業(yè)務(wù)流進(jìn)行處理;響應(yīng)信號回復(fù)單元,用于在處理過程中,根據(jù)預(yù)先設(shè)定的響應(yīng)等待周期向分流核回復(fù)響應(yīng)信號。
13.根據(jù)權(quán)利要求12所述的多核處理器,其特征在于所述分流核還包括復(fù)位指令單元,所述響應(yīng)信號判斷單元將判斷結(jié)果發(fā)送給所述業(yè)務(wù)流分配單元的同時,還將判斷結(jié)果發(fā)送給復(fù)位指令單元,復(fù)位指令單元用于根據(jù)該判斷結(jié)果向未回復(fù)響應(yīng)信號的工作核發(fā)送復(fù)位指令信號,并且當(dāng)接收到復(fù)位確認(rèn)信號時,將復(fù)位結(jié)果發(fā)送給所述業(yè)務(wù)流分配單元,否則向輸出設(shè)備發(fā)送警告信號;所述工作核還包括復(fù)位控制單元,用于根據(jù)所述復(fù)位指令信號對本工作核執(zhí)行復(fù)位操作,復(fù)位成功后,向分流核發(fā)送復(fù)位確認(rèn)信號。
全文摘要
本發(fā)明涉及一種多核處理器的業(yè)務(wù)流處理方法及多核處理器。其中,方法包括分流核將第一業(yè)務(wù)流分配給第一工作核;第一工作核根據(jù)響應(yīng)等待周期向分流核回復(fù)響應(yīng)信號;分流核在每個響應(yīng)等待周期內(nèi)判斷是否收到來自于第一工作核的響應(yīng)信號,當(dāng)未收到該響應(yīng)信號時,將第一業(yè)務(wù)流分配給第二工作核。多核處理器包括分流核及多個工作核,所述分流核包括,業(yè)務(wù)流分配單元和響應(yīng)信號判斷單元。所述工作核包括,業(yè)務(wù)流處理單元和響應(yīng)信號回復(fù)單元。由于通過分流核對工作核的工作狀態(tài)進(jìn)行了監(jiān)控,當(dāng)某個工作核發(fā)生異常時,將業(yè)務(wù)流分配給其他正常運行的工作核,因此不會中斷對業(yè)務(wù)流的處理,從而提高了多核處理器的可靠性。
文檔編號G06F9/46GK1945543SQ20061013841
公開日2007年4月11日 申請日期2006年11月13日 優(yōu)先權(quán)日2006年11月13日
發(fā)明者溫濤 申請人:杭州華為三康技術(shù)有限公司