用戶終端及其amp系統(tǒng)下消息郵箱故障的處理方法及裝置的制造方法
【專利摘要】用戶終端及其AMP系統(tǒng)下消息郵箱故障的處理方法及裝置,AMP系統(tǒng)通過消息郵箱進(jìn)行核間通信,所述處理方法包括:第二核確定第一核出現(xiàn)異常,第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),其中,所述第一核為出現(xiàn)異常的核,所述第二核為正常工作的核;清空第二核INPUT BOX中的數(shù)據(jù);第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力。本發(fā)明在第二核確定第一核出現(xiàn)異常之后,清空第二核INPUT BOX中的數(shù)據(jù),且第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),從而能夠在出現(xiàn)異常的核恢復(fù)正常之前,使得兩個(gè)正常工作的核之間先行恢復(fù)核間通信,增強(qiáng)了系統(tǒng)的魯棒性,且該方案通過軟件的方式實(shí)現(xiàn),無需添加額外的硬件成本。
【專利說明】
用戶終端及其AMP系統(tǒng)下消息郵箱故障的處理方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及無線通信技術(shù)領(lǐng)域,特別是涉及一種用戶終端及其AMP系統(tǒng)下消息郵箱故障的處理方法及裝置。
[0002]相關(guān)術(shù)語解釋
[0003]UE--User Equipment--用戶終端,簡(jiǎn)稱終端;
[0004]SoC--System on Chip/System on a Chip--系統(tǒng)級(jí)芯片,片上系統(tǒng);
[0005]PCB--Printed Circuit Board--印刷電路板;
[0006]SMP--Symmetric Mult1-Processing--對(duì)稱多處理器,同構(gòu)處理器;
[0007]AMP--Asymmetric Mult1-Processing--非對(duì)稱多處理器,異構(gòu)處理器;
[0008]Mailbox一一本申請(qǐng)中指代用于非對(duì)稱多處理器核間通信的消息郵箱,提供非對(duì)稱處理器內(nèi)部不同處理器子系統(tǒng)之間的通信,消息郵箱通常包括:消息郵箱控制器、以及為該AMP系統(tǒng)下每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT BOX,每個(gè)INPUT BOX和每個(gè)OUTPUTBOX均米用先入先出隊(duì)列;
[0009]Mailbox controler一一消息郵箱控制器,管理非對(duì)稱處理器內(nèi)部核間通信的消息郵箱控制邏輯的處理設(shè)備;
[0010]FIFO--First Input First Output--先入先出(隊(duì)列)。
【背景技術(shù)】
[0011]在開發(fā)智能手機(jī)系統(tǒng)時(shí),如果單顆SoC無法滿足系統(tǒng)的要求,一個(gè)很普遍的做法就是使用兩顆(或更多顆)的SoC,把一部分業(yè)務(wù)分配給另一個(gè)有“助理”性質(zhì)的SoC來完成。但是,采用兩顆SoC,缺點(diǎn)也很明顯,尤其是在芯片與PCB成本、系統(tǒng)可靠性及功耗方面都有先天的不足。此外,若采用了不同架構(gòu)的SoC,還要面臨需要不同的開發(fā)工具與開發(fā)人員的挑戰(zhàn)。
[0012]如果換一種思路,讓一顆SoC內(nèi)部包含兩個(gè)(或更多個(gè))內(nèi)核,其中一個(gè)核用于主控,另一個(gè)核用于協(xié)控,并且它們主控與協(xié)控在架構(gòu)上能夠向下兼容、高效通信,則在很多場(chǎng)合下都可以既保持多機(jī)系統(tǒng)的強(qiáng)大,又能避免多機(jī)系統(tǒng)的不足。
[0013]事實(shí)上,這正是“非對(duì)稱多處理器(簡(jiǎn)稱AMP) ”架構(gòu)的特點(diǎn)。AMP是與“對(duì)稱多處理器(簡(jiǎn)稱SMP) ”相對(duì)的架構(gòu),SMP各處理器(核)具有一致的編程模型,并且在分配工作時(shí)主要以均衡為原則,而AMP的優(yōu)點(diǎn)在于精細(xì)的任務(wù)分工,靈活地適應(yīng)不同場(chǎng)景,物盡其用,以最佳地平衡成本、性能與功耗,此外,AMP的編程難度也更低。因此,在SoC應(yīng)用領(lǐng)域,AMP較SMP更為適合。
[0014]同時(shí),如前所述,與獨(dú)立的雙SoC相比,AMP架構(gòu)也有諸多優(yōu)點(diǎn)。
[0015]在AMP架構(gòu)下,SoC內(nèi)部的多個(gè)內(nèi)核之間需要進(jìn)行通信。AMP系統(tǒng)核間通信的方式有很多種,最初的辦法是通過共享內(nèi)存?zhèn)鬟f消息,后來在此基礎(chǔ)上又提出新的思路,通過消息郵箱(Mailbox)實(shí)現(xiàn)AMP系統(tǒng)的核間通信。
[0016]這種辦法是在AMP的內(nèi)部添加一個(gè)消息郵箱控制器(Mailbox controler),該消息郵箱控制器專門用于處理核間消息的發(fā)送、分發(fā)、接收。
[0017]首先,該消息郵箱控制器通過專門的FIFO隊(duì)列管理和保存核間通信消息,且對(duì)于該AMP系統(tǒng)下的每個(gè)核均有這樣的FIFO隊(duì)列,在硬件上對(duì)于每個(gè)核而言均有一個(gè)INPUT BOX和一個(gè)OUTPUT BOX,每個(gè)INPUT BOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列,每個(gè) INPUT BOX和每個(gè)OUTPUT BOX均有深度(depth)為8的硬件FIFO隊(duì)列(即隊(duì)列中至多容納8個(gè)任務(wù))。
[0018]其次,該消息郵箱控制器有一個(gè)控制邏輯能夠分發(fā)和區(qū)分核間消息。
[0019]舉例來說,如圖1所示,通常AMP架構(gòu)系統(tǒng)會(huì)有兩個(gè)以上的核存在,例如,核A向核B和核C分別發(fā)送一條消息,這兩條消息會(huì)進(jìn)入核A INPUT BOX (注:由于INPUT BOX和 0UTPUTB0X是由消息郵箱控制器針對(duì)每個(gè)核設(shè)置的,核A在發(fā)送消息時(shí),該消息對(duì)于消息郵箱控制器而言是“輸入”,因此,如前所述是進(jìn)入消息郵箱控制器為核A設(shè)置的INPUT BOX 而非OUTPUT BOX),然后消息郵箱控制器控制邏輯會(huì)將這兩條核間消息分發(fā)給核B OUTPUT BOX和核C OUTPUT BOX,同時(shí),該控制邏輯還會(huì)通知核B和核C (以便接收方接收)。
[0020]又例如,核B和核C分別向核A發(fā)送一條消息,這兩條消息會(huì)分別進(jìn)入核B INPUT BOX和核C INPUT BOX,然后消息郵箱控制器控制邏輯會(huì)將這兩條核間消息發(fā)送給核A OUTPUT BOX,同時(shí),該控制邏輯還會(huì)通知核A。
[0021]以上分組、分配消息的隊(duì)列、通知對(duì)應(yīng)核(接收方)等行為均是硬件行為,即相關(guān)事件均由硬件完成。
[0022]但是,如上所述的現(xiàn)有技術(shù)中通過消息郵箱實(shí)現(xiàn)AMP系統(tǒng)核間通信的方法,有一個(gè)現(xiàn)有技術(shù)中無法解決的難點(diǎn)。
[0023]由于AMP架構(gòu)下SoC內(nèi)部的各個(gè)核是不同系統(tǒng),不僅核的硬件架構(gòu)不同,而且運(yùn)行的軟件系統(tǒng)也不同。在此情況下,相對(duì)于單核系統(tǒng)或SMP系統(tǒng)而言必然更容易出現(xiàn)某一個(gè)核異常(crash)的情況。
[0024]某一個(gè)核出現(xiàn)異常后,其無法處理來自O(shè)UTPUT BOX的消息,該核OUTPUT BOX很快就會(huì)滿,從而會(huì)導(dǎo)致其他核無法向出現(xiàn)異常的核發(fā)送消息,這樣一來,其他核INPUT BOX 也會(huì)滿。由于每個(gè)核在向不同核發(fā)送消息時(shí)均使用同一個(gè)INPUT BOX,且各個(gè)核的INPUT BOX (和OUTPUT BOX)均采用先入先出隊(duì)列,因此,若一個(gè)核INPUT BOX滿,則該核無法向任意一個(gè)核發(fā)送消息(即便收發(fā)雙方均是正常工作的核),從而一個(gè)核的異常很快(通常是毫秒級(jí))會(huì)導(dǎo)致整個(gè)AMP架構(gòu)上全部核間通信都崩潰。
[0025]舉例來說,假定某AMP系統(tǒng)存在三個(gè)核,分別為核A、核B、核C。其中,核C出現(xiàn)異常,無法處理來自O(shè)UTPUT BOX的消息,核C OUTPUT BOX很快就會(huì)滿。這會(huì)導(dǎo)致核A和核B 無法向核C發(fā)送消息,這樣一來,核A (和核B)的INPUT BOX也會(huì)滿。由于核A在向核B和核C發(fā)送消息時(shí)均使用同一個(gè)INPUT B0X,且核A INPUT BOX采用先入先出隊(duì)列,因此,若核 A INPUT BOX滿,則核A無法向核B發(fā)送消息??梢姡薈的異常會(huì)導(dǎo)致核A與核B之間這兩個(gè)正常工作的核之間的核間通信崩潰,進(jìn)而整個(gè)AMP架構(gòu)上全部核間通信都會(huì)崩潰。
[0026]就系統(tǒng)的魯棒性(robustness)而言,通常并不希望某一個(gè)核的異常影響到其他正常工作的核之間的通信。
【發(fā)明內(nèi)容】
[0027]本發(fā)明解決的技術(shù)問題是:在AMP系統(tǒng)通過消息郵箱實(shí)現(xiàn)核間通信的情況下,在出現(xiàn)異常的核恢復(fù)正常之前,如何使得兩個(gè)(或更多個(gè))正常工作的核之間先行恢復(fù)核間通信(從而能夠增強(qiáng)系統(tǒng)的魯棒性)。
[0028]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種AMP系統(tǒng)下消息郵箱故障的處理方法,AMP系統(tǒng)包括消息郵箱和至少三個(gè)核,所述AMP系統(tǒng)通過消息郵箱進(jìn)行核間通信,所述消息郵箱包括:消息郵箱控制器、以及對(duì)應(yīng)于所述AMP系統(tǒng)下每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT BOX,每個(gè)INPUT BOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列,所述處理方法包括:
[0029]第二核確定第一核出現(xiàn)異常,在第二核確定第一核出現(xiàn)異常之后,第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),其中,所述第一核為出現(xiàn)異常的核,所述第二核為正常工作的核;
[0030]清空第二核INPUT BOX中的數(shù)據(jù);
[0031]第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力,在至少兩個(gè)第二核分別恢復(fù)通過消息郵箱進(jìn)行核間通信的能力之后,所述至少兩個(gè)第二核之間能夠通過消息郵箱進(jìn)行核間通信。
[0032]可選的,在所述清空第二核INPUT BOX中的數(shù)據(jù)之前,還包括:
[0033]存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù)。
[0034]可選的,在所述第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力之后,還包括:
[0035]在第一核恢復(fù)正常之后,第二核恢復(fù)與第一核之間的核間通信;
[0036]在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUT BOX中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)。
[0037]可選的,所述確定第一核出現(xiàn)異常具體是:通過讀取第一核的中斷狀態(tài)寄存器確定第一核出現(xiàn)異常。
[0038]可選的,在第二核向第一核發(fā)送消息出現(xiàn)中斷時(shí),第二核讀取第一核的中斷狀態(tài)寄存器。
[0039]可選的,所述AMP系統(tǒng)為各個(gè)核分別預(yù)留專門的存儲(chǔ)空間,分別用于存儲(chǔ)各個(gè)核 INPUT BOX中的數(shù)據(jù),為每個(gè)核預(yù)留的存儲(chǔ)空間容量足夠容納這個(gè)核INPUT BOX中的數(shù)據(jù)。
[0040]可選的,所述清空第二核INPUT BOX中的數(shù)據(jù)具體是:通過寫第二核INPUT BOX對(duì)應(yīng)的復(fù)位寄存器,來清空第二核INPUT BOX中的數(shù)據(jù)。
[0041]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例還提供一種AMP系統(tǒng)下消息郵箱故障的處理裝置,AMP系統(tǒng)包括消息郵箱和至少三個(gè)核,所述AMP系統(tǒng)通過消息郵箱進(jìn)行核間通信, 所述消息郵箱包括:消息郵箱控制器、以及對(duì)應(yīng)于所述AMP系統(tǒng)下每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT BOX,每個(gè)INPUT BOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列,所述處理裝置包括:異常確定單元、數(shù)據(jù)清空單元和核間通信單元;其中:
[0042]異常確定單元,用于第二核確定第一核出現(xiàn)異常,在第二核確定第一核出現(xiàn)異常之后,第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),其中,所述第一核為出現(xiàn)異常的核,所述第二核為正常工作的核;
[0043]數(shù)據(jù)清空單元,用于在所述異常確定單元執(zhí)行操作之后,清空第二核INPUT BOX中的數(shù)據(jù);
[0044]核間通信單元,用于在所述數(shù)據(jù)清空單元執(zhí)行操作之后,第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力,在至少兩個(gè)第二核分別恢復(fù)通過消息郵箱進(jìn)行核間通信的能力之后,所述至少兩個(gè)第二核之間能夠通過消息郵箱進(jìn)行核間通信。
[0045]可選的,所述處理裝置還包括:數(shù)據(jù)存儲(chǔ)單元,用于在所述數(shù)據(jù)清空單元清空第二核INPUT BOX中的數(shù)據(jù)之前,存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù)。
[0046]可選的,所述核間通信單元,還用于在第一核恢復(fù)正常之后,第二核恢復(fù)與第一核之間的核間通信;
[0047]所述處理裝置還包括:數(shù)據(jù)恢復(fù)單元,用于在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUT BOX中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)。
[0048]可選的,所述確定第一核出現(xiàn)異常具體是:通過讀取第一核的中斷狀態(tài)寄存器確定第一核出現(xiàn)異常。
[0049]可選的,在第二核向第一核發(fā)送消息出現(xiàn)中斷時(shí),第二核讀取第一核的中斷狀態(tài)寄存器。
[0050]可選的,所述AMP系統(tǒng)為各個(gè)核分別預(yù)留專門的存儲(chǔ)空間,分別用于存儲(chǔ)各個(gè)核 INPUT BOX中的數(shù)據(jù),為每個(gè)核預(yù)留的存儲(chǔ)空間容量足夠容納這個(gè)核INPUT BOX中的數(shù)據(jù)。
[0051]可選的,所述清空第二核INPUT BOX中的數(shù)據(jù)具體是:通過寫第二核INPUT BOX對(duì)應(yīng)的復(fù)位寄存器,來清空第二核INPUT BOX中的數(shù)據(jù)。
[0052]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例還提供一種非對(duì)稱多處理器芯片,所述非對(duì)稱多處理器芯片包括消息郵箱和至少三個(gè)核,所述非對(duì)稱多處理器芯片通過消息郵箱進(jìn)行核間通信,所述消息郵箱包括:消息郵箱控制器、以及為所述非對(duì)稱多處理器的每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT B0X,每個(gè)INPUT BOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列,還包括上述AMP系統(tǒng)下消息郵箱故障的處理裝置。
[0053]可選的,所述非對(duì)稱多處理器芯片為智能手機(jī)的基帶處理器或應(yīng)用處理器。
[0054]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例還提供一種用戶終端,所述用戶終端包括上述非對(duì)稱多處理器芯片。
[0055]可選的,所述用戶終端為智能手機(jī)。
[0056]與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案具有以下有益效果:
[0057]在第二核確定第一核出現(xiàn)異常之后,清空第二核INPUT BOX中的數(shù)據(jù),且第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),從而能夠在出現(xiàn)異常的核恢復(fù)正常之前,使得兩個(gè)(或更多個(gè))正常工作的核之間先行恢復(fù)核間通信,增強(qiáng)了系統(tǒng)的魯棒性,且該方案通過軟件的方式實(shí)現(xiàn),無需添加額外的硬件成本。
[0058]進(jìn)一步地,在清空第二核INPUT BOX中的數(shù)據(jù)之前,存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù),在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUT BOX中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù),從而可以避免數(shù)據(jù)丟失。
[0059]進(jìn)一步地,引入了軟件INPUT BOX的概念,并為各個(gè)核分別預(yù)留專門的存儲(chǔ)空間, 分別用于存儲(chǔ)各個(gè)核INPUT BOX中的數(shù)據(jù),為每個(gè)核預(yù)留的存儲(chǔ)空間容量足夠容納這個(gè)核 INPUT BOX中的數(shù)據(jù)?!靖綀D說明】
[0060]圖1為AMP系統(tǒng)通過消息郵箱實(shí)現(xiàn)核間通信示意圖;
[0061]圖2為本發(fā)明實(shí)施例中AMP系統(tǒng)下消息郵箱故障的處理方法流程圖;
[0062]圖3為本發(fā)明實(shí)施例中另一個(gè)AMP系統(tǒng)下消息郵箱故障的處理方法流程圖;
[0063]圖4為本發(fā)明實(shí)施例中AMP系統(tǒng)下消息郵箱故障的處理裝置結(jié)構(gòu)框圖。【具體實(shí)施方式】
[0064]根據(jù)【背景技術(shù)】部分的分析可知,在AMP系統(tǒng)通過消息郵箱實(shí)現(xiàn)核間通信的情況下,該AMP系統(tǒng)下某一個(gè)核的異常很快會(huì)導(dǎo)致整個(gè)AMP架構(gòu)上全部核間通信崩潰(即便是兩個(gè)正常工作的核之間的核間通信也會(huì)崩潰)。
[0065]就系統(tǒng)的魯棒性而言,通常并不希望某一個(gè)核的異常影響到其他正常工作的核之間的通f目。
[0066]現(xiàn)有技術(shù)中尚未發(fā)現(xiàn)能夠克服上述缺陷的方案。
[0067]發(fā)明人經(jīng)研究后認(rèn)為:在AMP系統(tǒng)通過消息郵箱實(shí)現(xiàn)核間通信的情況下,盡管其涉及的分組、分配消息的隊(duì)列、通知對(duì)應(yīng)核等行為均是硬件行為,但上述缺陷就目前的技術(shù)水平是難以通過硬件的方式克服的。發(fā)明人通過軟件的方式克服了現(xiàn)有技術(shù)的上述缺陷, 在出現(xiàn)異常的核恢復(fù)正常之前,兩個(gè)正常工作的核之間可以先行恢復(fù)核間通信,從而能夠增強(qiáng)系統(tǒng)的魯棒性。
[0068]為使本領(lǐng)域技術(shù)人員更好地理解和實(shí)現(xiàn)本發(fā)明,以下參照附圖,通過具體實(shí)施例進(jìn)行詳細(xì)說明。
[0069]實(shí)施例一
[0070]如下所述,本發(fā)明實(shí)施例提供一種AMP系統(tǒng)下消息郵箱故障的處理方法。
[0071]首先界定本實(shí)施例的應(yīng)用場(chǎng)景。
[0072]本實(shí)施例適用于AMP系統(tǒng),AMP系統(tǒng)包括消息郵箱和至少三個(gè)核,所述AMP系統(tǒng)通過消息郵箱進(jìn)行核間通信。
[0073]所述消息郵箱包括:消息郵箱控制器、以及對(duì)應(yīng)于所述AMP系統(tǒng)下每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT B0X,每個(gè)INPUT BOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列。
[0074]參照?qǐng)D2所示的AMP系統(tǒng)下消息郵箱故障的處理方法流程圖,以下通過具體步驟進(jìn)行詳細(xì)說明:
[0075]S201,第二核確定第一核出現(xiàn)異常。
[0076]其中,所述第一核為出現(xiàn)異常的核,所述第二核為正常工作的核。
[0077]需要說明的是,上述“第一核”、“第二核”的表述僅僅是為了對(duì)AMP系統(tǒng)下不同的核進(jìn)行區(qū)分,并不表示主從關(guān)系或順序上的先后關(guān)系。
[0078]此外,AMP系統(tǒng)下每個(gè)核均有可能出現(xiàn)異常,上述表述是將出現(xiàn)異常的核標(biāo)記為第一核,將正常工作的核標(biāo)記為第二核,并非表示AMP系統(tǒng)下只有特定的核才會(huì)出現(xiàn)異常。且在同一時(shí)間點(diǎn)上正常工作的核或出現(xiàn)異常的核的數(shù)量可以是一個(gè)或多個(gè)。
[0079]在具體實(shí)施中,可以通過讀取第一核的中斷狀態(tài)寄存器確定第一核出現(xiàn)異常。
[0080]通常情況下,在第二核向第一核發(fā)送消息出現(xiàn)中斷時(shí),可以讀取第一核的中斷狀態(tài)寄存器來確定導(dǎo)致中斷的可能原因。
[0081]在第二核通過讀取第一核的中斷狀態(tài)寄存器確定第一核出現(xiàn)異常之后,執(zhí)行后續(xù)步驟。
[0082]S202,存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù)。
[0083]所述AMP系統(tǒng)可以為各個(gè)核分別預(yù)留專門的存儲(chǔ)空間,分別用于存儲(chǔ)各個(gè)核 INPUT BOX中的數(shù)據(jù)。
[0084]為每個(gè)核預(yù)留的存儲(chǔ)空間容量足夠容納這個(gè)核INPUT BOX中的數(shù)據(jù)。例如,對(duì)于深度均為8的INPUT B0X,則預(yù)留的存儲(chǔ)空間容量足夠容納INPUT BOX中8個(gè)任務(wù)的數(shù)據(jù)。
[0085]如前所述,在AMP系統(tǒng)通過消息郵箱實(shí)現(xiàn)核間通信的情況下,現(xiàn)有技術(shù)涉及的分組、分配消息的隊(duì)列、通知對(duì)應(yīng)核等行為均是硬件行為。也就是說,消息郵箱所包括的消息郵箱控制器以及對(duì)應(yīng)于每個(gè)核設(shè)置的INPUT BOX和OUTPUT BOX均是硬件。本實(shí)施例中將第二核硬件INPUT BOX中的數(shù)據(jù)以軟件的方式存儲(chǔ),可以理解為是引入了軟件INPUT BOX 的概念。
[0086]需要說明的是:根據(jù)【背景技術(shù)】部分的分析可知,兩個(gè)(或更多個(gè))正常工作的核之間的核間通信崩潰,是由于INPUT BOX滿而導(dǎo)致的,因此,本實(shí)施例中步驟S202和后續(xù)的步驟S203是針對(duì)INPUT BOX進(jìn)行的。本實(shí)施例并不排除對(duì)OUTPUT BOX也進(jìn)行相應(yīng)操作的可能性,但對(duì)于解決本申請(qǐng)預(yù)期解決的技術(shù)問題而言,對(duì)于OUTPUT BOX的相應(yīng)操作并不是必須的。
[0087]S203,清空第二核INPUT BOX中的數(shù)據(jù)。
[0088]消息郵箱的每一個(gè)INPUT BOX和OUTPUT BOX通常都具有相應(yīng)的復(fù)位寄存器,通過寫復(fù)位寄存器可以清空該復(fù)位寄存器對(duì)應(yīng)的INPUT BOX或OUTPUT BOX中的數(shù)據(jù)。
[0089]在具體實(shí)施中,可以通過寫第二核INPUT BOX對(duì)應(yīng)的復(fù)位寄存器,來清空第二核 INPUT BOX中的數(shù)據(jù)。
[0090]由于步驟S202中已經(jīng)存儲(chǔ)了第二核INPUT BOX中的數(shù)據(jù),因此,步驟S203清空第二核INPUT BOX中的數(shù)據(jù)并不會(huì)導(dǎo)致這部分?jǐn)?shù)據(jù)丟失,后續(xù)的步驟中(參考實(shí)施例二)可以利用步驟S202中存儲(chǔ)的數(shù)據(jù)來恢復(fù)被清空的數(shù)據(jù)。
[0091]可以理解的是,在步驟S201第二核確定第一核出現(xiàn)異常之后,第二核不會(huì)再向這個(gè)已經(jīng)確定出現(xiàn)異常的核發(fā)送消息,直至后續(xù)第二核確定這個(gè)出現(xiàn)異常的第一核恢復(fù)正常。因此,在步驟S203清空第二核INPUT BOX中的數(shù)據(jù)之后,第二核INPUT BOX中不會(huì)再出現(xiàn)向第一核發(fā)送消息的任務(wù)。
[0092]也就是說,引起第二核INPUT BOX滿的根本原因,在于從第一核出現(xiàn)異常到第二核確定第一核出現(xiàn)異常的這段時(shí)間。第二核在這段時(shí)間內(nèi)可能會(huì)在INPUT BOX中加入向第一核發(fā)送消息的任務(wù),由于各個(gè)核的INPUT BOX(和OUTPUT BOX)通常會(huì)采用先入先出隊(duì)列, 因此,INPUT BOX中的某一個(gè)任務(wù)無法執(zhí)行將會(huì)導(dǎo)致其后的任務(wù)也無法執(zhí)行。
[0093]由于本實(shí)施例在第二核確定第一核出現(xiàn)異常之后,清空第二核INPUT BOX中的數(shù)據(jù)(即步驟S203),因此,已經(jīng)將第二核INPUT BOX中向第一核發(fā)送消息的任務(wù)移除,從而就避免了第一核的異常后續(xù)再對(duì)第二核INPUT BOX造成不利影響。
[0094]S204,第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力。
[0095]在步驟S203清空第二核INPUT BOX中的數(shù)據(jù)之后,第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力。
[0096]如前所述,本實(shí)施例中“第一核”、“第二核”的表述僅僅是為了對(duì)AMP系統(tǒng)下不同的核進(jìn)行區(qū)分,且在同一時(shí)間點(diǎn)上正常工作的核或出現(xiàn)異常的核的數(shù)量可以是一個(gè)或多個(gè)。
[0097]也就是說,在存在多個(gè)正常工作的核(或存在多個(gè)出現(xiàn)異常的核)的情況下,多個(gè)正常工作的核可以各自分別作為第二核進(jìn)行上述流程(同理,多個(gè)出現(xiàn)異常的核也可以各自分別作為第一核進(jìn)行上述流程)。
[0098]在至少兩個(gè)第二核分別(通過上述流程)恢復(fù)通過消息郵箱進(jìn)行核間通信的能力之后,所述至少兩個(gè)第二核之間能夠通過消息郵箱進(jìn)行核間通信。
[0099]如前所述,現(xiàn)有技術(shù)中,在出現(xiàn)異常的核恢復(fù)正常之前,兩個(gè)(或更多個(gè))正常工作的核之間也無法進(jìn)行核間通信。而本實(shí)施例可以在出現(xiàn)異常的核(第一核)恢復(fù)正常之前,先行恢復(fù)兩個(gè)(或更多個(gè))正常工作的核(第二核)之間的核間通信,從而增強(qiáng)了系統(tǒng)的魯棒性,且該方案通過軟件的方式實(shí)現(xiàn),無需添加額外的硬件成本。
[0100]需要說明的是:步驟S202是為了后續(xù)可能的數(shù)據(jù)恢復(fù)作準(zhǔn)備(參考實(shí)施例二), 對(duì)于恢復(fù)兩個(gè)(或更多個(gè))正常核之間的核間通信、以及增強(qiáng)系統(tǒng)的魯棒性而言,該步驟并不是必須的。在另一個(gè)實(shí)施例中,可以執(zhí)行步驟S201、步驟S203和步驟204,而跳過步驟 S202〇
[0101]實(shí)施例二
[0102]如下所述,本發(fā)明實(shí)施例提供一種AMP系統(tǒng)下消息郵箱故障的處理方法。
[0103]本實(shí)施例與實(shí)施例一的不同之處在于,進(jìn)一步實(shí)現(xiàn)了(利用存儲(chǔ)的第二核INPUT BOX中的數(shù)據(jù))恢復(fù)被清空數(shù)據(jù)的功能。
[0104]參照?qǐng)D3所示的AMP系統(tǒng)下消息郵箱故障的處理方法流程圖,其中步驟S301至步驟S304可以參照實(shí)施例一中的步驟S201至步驟S204,以下詳細(xì)說明與實(shí)施例一不同的步驟:
[0105]S305,在第一核恢復(fù)正常之后,第二核恢復(fù)與第一核之間的核間通信。
[0106]在第一核恢復(fù)正常之后,且在第二核確定第一核恢復(fù)正常后,可以恢復(fù)與第一核之間的核間通信,第二核INPUT BOX中后續(xù)會(huì)加入新的向第一核發(fā)送消息的任務(wù)。
[0107]S306,在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUT BOX 中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)。
[0108]在具體實(shí)施中,既可以是將存儲(chǔ)的第二核INPUT BOX(軟件INPUT BOX)中向第一核發(fā)送消息的任務(wù)加入到第二核INPUT BOX(硬件INPUT BOX)中;也可以是將存儲(chǔ)的第二核INPUT BOX (軟件INPUT BOX)中所有任務(wù)均加入到第二核INPUT BOX (硬件INPUT BOX) 中。
[0109]通過以上對(duì)技術(shù)方案的描述可以看出:本實(shí)施例中,在清空第二核INPUT BOX中的數(shù)據(jù)之前,存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù),在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUT BOX中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù),從而可以避免數(shù)據(jù)丟失。
[0110]實(shí)施例三
[0111]如下所述,本發(fā)明實(shí)施例提供一種AMP系統(tǒng)下消息郵箱故障的處理裝置,AMP系統(tǒng)包括消息郵箱和至少三個(gè)核,所述AMP系統(tǒng)通過消息郵箱進(jìn)行核間通信,所述消息郵箱包括:消息郵箱控制器、以及對(duì)應(yīng)于所述AMP系統(tǒng)下每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT BOX,每個(gè)INPUT BOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列。
[0112]參照?qǐng)D4所示的AMP系統(tǒng)下消息郵箱故障的處理裝置結(jié)構(gòu)框圖:
[0113]所述AMP系統(tǒng)下消息郵箱故障的處理裝置包括:異常確定單元401、數(shù)據(jù)清空單元 403和核間通信單元404 ;其中各單元的主要功能如下:
[0114]異常確定單元401,用于第二核確定第一核出現(xiàn)異常,在第二核確定第一核出現(xiàn)異常之后,第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),其中,所述第一核為出現(xiàn)異常的核,所述第二核為正常工作的核;
[0115]數(shù)據(jù)清空單元403,用于在所述異常確定單元401執(zhí)行操作之后,清空第二核 INPUT BOX中的數(shù)據(jù);
[0116]核間通信單元404,用于在所述數(shù)據(jù)清空單元403執(zhí)行操作之后,第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力,在至少兩個(gè)第二核分別恢復(fù)通過消息郵箱進(jìn)行核間通信的能力之后,所述至少兩個(gè)第二核之間能夠通過消息郵箱進(jìn)行核間通信。
[0117]通過以上對(duì)技術(shù)方案的描述可以看出:本實(shí)施例中,在第二核確定第一核出現(xiàn)異常之后,清空第二核INPUT BOX中的數(shù)據(jù),且第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),從而能夠在出現(xiàn)異常的核恢復(fù)正常之前,使得兩個(gè)(或更多個(gè))正常工作的核之間先行恢復(fù)核間通信,增強(qiáng)了系統(tǒng)的魯棒性,且該方案通過軟件的方式實(shí)現(xiàn),無需添加額外的硬件成本。
[0118]在具體實(shí)施中,所述處理裝置還可以包括:數(shù)據(jù)存儲(chǔ)單元402,用于在所述數(shù)據(jù)清空單元403清空第二核INPUT BOX中的數(shù)據(jù)之前,存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù)。
[0119]在具體實(shí)施中,所述核間通信單元404,還可以用于在第一核恢復(fù)正常之后,第二核恢復(fù)與第一核之間的核間通信;
[0120]所述處理裝置還可以包括:數(shù)據(jù)恢復(fù)單元405,用于在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUT BOX中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)。
[0121]通過以上對(duì)技術(shù)方案的描述可以看出:本實(shí)施例中,在清空第二核INPUT BOX中的數(shù)據(jù)之前,存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù),在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUT BOX中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù),從而可以避免數(shù)據(jù)丟失。
[0122]在具體實(shí)施中,所述確定第一核出現(xiàn)異常具體可以是:通過讀取第一核的中斷狀態(tài)寄存器確定第一核出現(xiàn)異常。
[0123]在具體實(shí)施中,可以在第二核向第一核發(fā)送消息出現(xiàn)中斷時(shí),第二核讀取第一核的中斷狀態(tài)寄存器。
[0124]在具體實(shí)施中,所述AMP系統(tǒng)可以為各個(gè)核分別預(yù)留專門的存儲(chǔ)空間,分別用于存儲(chǔ)各個(gè)核INPUT BOX中的數(shù)據(jù),為每個(gè)核預(yù)留的存儲(chǔ)空間容量足夠容納這個(gè)核INPUT BOX 中的數(shù)據(jù)。
[0125]在具體實(shí)施中,所述清空第二核INPUT BOX中的數(shù)據(jù)具體可以是:通過寫第二核 INPUT BOX對(duì)應(yīng)的復(fù)位寄存器,來清空第二核INPUT BOX中的數(shù)據(jù)。
[0126]實(shí)施例四
[0127]如下所述,本發(fā)明實(shí)施例提供一種非對(duì)稱多處理器芯片。
[0128]所述非對(duì)稱多處理器芯片包括消息郵箱和至少三個(gè)核,所述非對(duì)稱多處理器芯片通過消息郵箱進(jìn)行核間通信,所述消息郵箱包括:消息郵箱控制器、以及為所述非對(duì)稱多處理器的每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT B0X,每個(gè)INPUT BOX和每個(gè)OUTPUT BOX均米用先入先出隊(duì)列。
[0129]與現(xiàn)有技術(shù)的不同之處在于,該非對(duì)稱多處理器芯片還包括如本發(fā)明實(shí)施例中所提供的AMP系統(tǒng)下消息郵箱故障的處理裝置。因而該非對(duì)稱多處理器芯片能夠在出現(xiàn)異常的核恢復(fù)正常之前,使得兩個(gè)(或更多個(gè))正常工作的核之間先行恢復(fù)核間通信,增強(qiáng)了系統(tǒng)的魯棒性,且該方案通過軟件的方式實(shí)現(xiàn),無需添加額外的硬件成本。
[0130]在具體實(shí)施中,所述非對(duì)稱多處理器芯片可以是智能手機(jī)的基帶處理器或應(yīng)用處理器。
[0131]實(shí)施例五
[0132]如下所述,本發(fā)明實(shí)施例提供一種用戶終端。
[0133]與現(xiàn)有技術(shù)的不同之處在于,所述用戶終端包括如本發(fā)明實(shí)施例中所提供的非對(duì)稱多處理器芯片。
[0134]在具體實(shí)施中,所述用戶終端可以是智能手機(jī)。
[0135]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
[0136]雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種AMP系統(tǒng)下消息郵箱故障的處理方法,其特征在于,AMP系統(tǒng)包括消息郵箱和至少三個(gè)核,所述AMP系統(tǒng)通過消息郵箱進(jìn)行核間通信,所述消息郵箱包括:消息郵箱控制器、以及對(duì)應(yīng)于所述AMP系統(tǒng)下每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT BOX,每個(gè)INPUTBOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列,所述處理方法包括: 第二核確定第一核出現(xiàn)異常,在第二核確定第一核出現(xiàn)異常之后,第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),其中,所述第一核為出現(xiàn)異常的核,所述第二核為正常工作的核; 清空第二核INPUT BOX中的數(shù)據(jù); 第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力,在至少兩個(gè)第二核分別恢復(fù)通過消息郵箱進(jìn)行核間通信的能力之后,所述至少兩個(gè)第二核之間能夠通過消息郵箱進(jìn)行核間通?目O2.如權(quán)利要求1所述的AMP系統(tǒng)下消息郵箱故障的處理方法,其特征在于,在所述清空第二核INPUT BOX中的數(shù)據(jù)之前,還包括: 存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù)。3.如權(quán)利要求2所述的AMP系統(tǒng)下消息郵箱故障的處理方法,其特征在于,在所述第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力之后,還包括: 在第一核恢復(fù)正常之后,第二核恢復(fù)與第一核之間的核間通信; 在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUTB0X中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)。4.如權(quán)利要求1所述的AMP系統(tǒng)下消息郵箱故障的處理方法,其特征在于,所述確定第一核出現(xiàn)異常具體是:通過讀取第一核的中斷狀態(tài)寄存器確定第一核出現(xiàn)異常。5.如權(quán)利要求4所述的AMP系統(tǒng)下消息郵箱故障的處理方法,其特征在于,在第二核向第一核發(fā)送消息出現(xiàn)中斷時(shí),第二核讀取第一核的中斷狀態(tài)寄存器。6.如權(quán)利要求1所述的AMP系統(tǒng)下消息郵箱故障的處理方法,其特征在于,所述AMP系統(tǒng)為各個(gè)核分別預(yù)留專門的存儲(chǔ)空間,分別用于存儲(chǔ)各個(gè)核INPUT BOX中的數(shù)據(jù),為每個(gè)核預(yù)留的存儲(chǔ)空間容量足夠容納這個(gè)核INPUT BOX中的數(shù)據(jù)。7.如權(quán)利要求1所述的AMP系統(tǒng)下消息郵箱故障的處理方法,其特征在于,所述清空第二核INPUT BOX中的數(shù)據(jù)具體是:通過寫第二核INPUT BOX對(duì)應(yīng)的復(fù)位寄存器,來清空第二核INPUT BOX中的數(shù)據(jù)。8.一種AMP系統(tǒng)下消息郵箱故障的處理裝置,其特征在于,AMP系統(tǒng)包括消息郵箱和至少三個(gè)核,所述AMP系統(tǒng)通過消息郵箱進(jìn)行核間通信,所述消息郵箱包括:消息郵箱控制器、以及對(duì)應(yīng)于所述AMP系統(tǒng)下每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT BOX,每個(gè)INPUTBOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列,所述處理裝置包括:異常確定單元、數(shù)據(jù)清空單元和核間通信單元;其中: 異常確定單元,用于第二核確定第一核出現(xiàn)異常,在第二核確定第一核出現(xiàn)異常之后,第二核不再向第二核INPUT BOX中加入向第一核發(fā)送消息的任務(wù),其中,所述第一核為出現(xiàn)異常的核,所述第二核為正常工作的核; 數(shù)據(jù)清空單元,用于在所述異常確定單元執(zhí)行操作之后,清空第二核INPUT BOX中的數(shù)據(jù); 核間通信單元,用于在所述數(shù)據(jù)清空單元執(zhí)行操作之后,第二核恢復(fù)通過消息郵箱進(jìn)行核間通信的能力,在至少兩個(gè)第二核分別恢復(fù)通過消息郵箱進(jìn)行核間通信的能力之后,所述至少兩個(gè)第二核之間能夠通過消息郵箱進(jìn)行核間通信。9.如權(quán)利要求8所述的AMP系統(tǒng)下消息郵箱故障的處理裝置,其特征在于,所述處理裝置還包括:數(shù)據(jù)存儲(chǔ)單元,用于在所述數(shù)據(jù)清空單元清空第二核INPUT BOX中的數(shù)據(jù)之前,存儲(chǔ)第二核INPUT BOX中的數(shù)據(jù)。10.如權(quán)利要求9所述的AMP系統(tǒng)下消息郵箱故障的處理裝置,其特征在于,所述核間通信單元,還用于在第一核恢復(fù)正常之后,第二核恢復(fù)與第一核之間的核間通信; 所述處理裝置還包括:數(shù)據(jù)恢復(fù)單元,用于在第二核恢復(fù)與第一核之間的核間通信之后,利用存儲(chǔ)的第二核INPUT BOX中的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)。11.如權(quán)利要求8所述的AMP系統(tǒng)下消息郵箱故障的處理裝置,其特征在于,所述確定第一核出現(xiàn)異常具體是:通過讀取第一核的中斷狀態(tài)寄存器確定第一核出現(xiàn)異常。12.如權(quán)利要求11所述的AMP系統(tǒng)下消息郵箱故障的處理裝置,其特征在于,在第二核向第一核發(fā)送消息出現(xiàn)中斷時(shí),第二核讀取第一核的中斷狀態(tài)寄存器。13.如權(quán)利要求8所述的AMP系統(tǒng)下消息郵箱故障的處理裝置,其特征在于,所述AMP系統(tǒng)為各個(gè)核分別預(yù)留專門的存儲(chǔ)空間,分別用于存儲(chǔ)各個(gè)核INPUT BOX中的數(shù)據(jù),為每個(gè)核預(yù)留的存儲(chǔ)空間容量足夠容納這個(gè)核INPUT BOX中的數(shù)據(jù)。14.如權(quán)利要求8所述的AMP系統(tǒng)下消息郵箱故障的處理裝置,其特征在于,所述清空第二核INPUT BOX中的數(shù)據(jù)具體是:通過寫第二核INPUT BOX對(duì)應(yīng)的復(fù)位寄存器,來清空第二核INPUT BOX中的數(shù)據(jù)。15.一種非對(duì)稱多處理器芯片,所述非對(duì)稱多處理器芯片包括消息郵箱和至少三個(gè)核,所述非對(duì)稱多處理器芯片通過消息郵箱進(jìn)行核間通信,所述消息郵箱包括:消息郵箱控制器、以及為所述非對(duì)稱多處理器的每個(gè)核分別設(shè)置的INPUT BOX和OUTPUT BOX,每個(gè)INPUTBOX和每個(gè)OUTPUT BOX均采用先入先出隊(duì)列,其特征在于,還包括如權(quán)利要求8至14中任一項(xiàng)所述的AMP系統(tǒng)下消息郵箱故障的處理裝置。16.如權(quán)利要求15所述的非對(duì)稱多處理器芯片,其特征在于,所述非對(duì)稱多處理器芯片為智能手機(jī)的基帶處理器或應(yīng)用處理器。17.一種用戶終端,其特征在于,所述用戶終端包括如權(quán)利要求15所述的非對(duì)稱多處理器芯片。18.如權(quán)利要求17所述的用戶終端,其特征在于,所述用戶終端為智能手機(jī)。
【文檔編號(hào)】G06F15/167GK105991413SQ201510079056
【公開日】2016年10月5日
【申請(qǐng)日】2015年2月13日
【發(fā)明人】楊攀
【申請(qǐng)人】展訊通信(上海)有限公司