專利名稱:一種端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及消息傳輸(message passing)技術(shù)領(lǐng)域,尤其涉及一種端到端硬件消息傳輸(HMP,Hardware Message Passing)的實(shí)現(xiàn)方法和裝置。
背景技術(shù):
隨著技術(shù)的發(fā)展,系統(tǒng)越來(lái)越復(fù)雜,集成的核(core)數(shù)量也越來(lái)越多,核間通信也越來(lái)越重要。傳統(tǒng)的核間通信通常采用共享存儲(chǔ)器(share memory)的硬件方式來(lái)實(shí)現(xiàn),如圖1所示,多個(gè)核通過(guò)互連系統(tǒng)與一塊共享的存儲(chǔ)器相連。這種實(shí)現(xiàn)方式的優(yōu)點(diǎn)是可以實(shí)現(xiàn)多個(gè)核之間的交叉信息傳輸,而缺點(diǎn)包括:一、消息傳輸延時(shí)比較長(zhǎng),這是由于消息的傳輸需要先由消息創(chuàng)建者寫入到共享存儲(chǔ)器,然后由消息使用者去共享存儲(chǔ)器讀取,這兩個(gè)操作都需要經(jīng)過(guò)系統(tǒng)互連網(wǎng)絡(luò),通路延時(shí)比較長(zhǎng),而且還會(huì)與其它的數(shù)據(jù)訪問(wèn)進(jìn)行競(jìng)爭(zhēng)和判決,以獲取總線的使用權(quán);二、需要軟件進(jìn)行消息管理,因?yàn)楣蚕泶鎯?chǔ)器只能用來(lái)暫存消息,創(chuàng)建者將消息寫入到共享存儲(chǔ)器后要中斷并通知消息使用者,消息創(chuàng)建者和消息使用者要共享管理維護(hù)消息隊(duì)列指針,以避免消息覆蓋和消息重復(fù)使用等問(wèn)題。在實(shí)際應(yīng)用中的很多情況下,消息使用者是確定的,消息使用的頻次和時(shí)間也是確定的;針對(duì)這種情況,目前一些方案為提高消息傳輸效率,減少傳輸延時(shí),采用直連接口進(jìn)行消息傳輸,如圖2和圖3所示,其中,圖2示出了可擴(kuò)展的核(Extendible core)之間通過(guò)直連接口進(jìn)行消息傳輸,圖3示出了在圖2基礎(chǔ)上按照先入先出(FIFO,F(xiàn)irst InputFirst Output)的消息傳輸。這種采用直連接口進(jìn)行消息傳輸?shù)膶?shí)現(xiàn)方式存在以下缺陷:一是處理器必須是可擴(kuò)展的,可以擴(kuò)展出消息發(fā)送或消息接收端口來(lái);二是此方法依然需要軟件進(jìn)行消息管理,并沒(méi)有減少軟件管理的開(kāi)銷,只是減少了消息傳輸?shù)难訒r(shí)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法和裝置,以提高消息傳輸?shù)男剩p少軟件管理的開(kāi)銷。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:本發(fā)明提供了一種端到端硬件消息傳輸?shù)膶?shí)現(xiàn)裝置,該裝置包括:消息存儲(chǔ)器、控制器、消息輸入和輸出接口,所述消息存儲(chǔ)器,用于執(zhí)行消息的暫存;所述控制器,用于執(zhí)行消息的硬件方式管理,將從消息輸入接口獲取的消息存儲(chǔ)在所述消息存儲(chǔ)器中,從所述消息存儲(chǔ)器中讀取消息并通過(guò)所述消息輸出接口發(fā)送給消息使用者;所述消息輸入接口,直連消息創(chuàng)建者,用于在所述控制器的控制下,獲取消息創(chuàng)建者創(chuàng)建的消息;所述消息輸出接口,直連消息使用者,用于在所述控制器的控制下,向消息使用者提供消息。所述消息輸入接口為主設(shè)備master接口或從設(shè)備slave接口,當(dāng)所述消息輸入接口為master接口時(shí),所述消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;當(dāng)所述消息輸入接口為slave接口時(shí),所述消息輸入接口在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;所述消息輸出接口為master接口或slave接口,當(dāng)所述消息輸出接口為master接口時(shí),所述消息輸出接口在控制器的控制下,以主動(dòng)的方式向消息使用者提供消息;當(dāng)所述消息輸出接口為slave接口時(shí),所述消息輸出接口在控制器的控制下,以被動(dòng)的方式向消息使用者提供消息。所述在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括:所述控制器通過(guò)消息輸入接口獲取消息創(chuàng)建者的狀態(tài),并依據(jù)所述狀態(tài)從所述消息創(chuàng)建者的緩沖區(qū)中提取消息;或者,所述控制器通過(guò)消息輸入接口定時(shí)從所述消息創(chuàng)建者的緩沖區(qū)中提取消
肩、O所述在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括:所述控制器通過(guò)消息輸入接口接收所述消息創(chuàng)建者主動(dòng)發(fā)來(lái)的消息。所述在控制器的控制下,以主動(dòng)的方式向消息使用者提供消息,包括:所述控制器通過(guò)消息輸出接口獲取消息使用者的狀態(tài),依據(jù)所述狀態(tài)從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者;或者,所述控制器器定時(shí)從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到消息使用者。所述在控制器的控制下,以被動(dòng)的方式向消息使用者提供消息,包括:所述控制器通過(guò)消息輸出接口向消息使用者提供消息隊(duì)列狀態(tài),并通過(guò)所述消息輸出接口獲取消息使用者依據(jù)消息隊(duì)列狀態(tài)發(fā)出的讀請(qǐng)求,依據(jù)所述讀請(qǐng)求從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者;或者,所述控制器通過(guò)消息輸出接口獲取消息使用者定時(shí)發(fā)出的讀請(qǐng)求,依據(jù)所述讀請(qǐng)求從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者。本發(fā)明還提供了一種端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法,該方法包括:控制器通過(guò)消息輸入接口獲取直連的消息創(chuàng)建者創(chuàng)建的消息,并將獲取的消息暫存在消息存儲(chǔ)器中,對(duì)存儲(chǔ)在所述消息存儲(chǔ)器中的消息執(zhí)行硬件方式管理;從所述消息存儲(chǔ)器中讀取消息,并通過(guò)所述消息輸出接口將讀取的消息發(fā)送給直連的消息使用者。所述消息輸入接口為主設(shè)備master接口或從設(shè)備slave接口,當(dāng)所述消息輸入接口為master接口時(shí),所述消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;當(dāng)所述消息輸入接口為slave接口時(shí),所述消息輸入接口在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;所述消息輸出接口為master接口或slave接口,當(dāng)所述消息輸出接口為master接口時(shí),所述消息輸出接口在控制器的控制下,以主動(dòng)的方式向消息使用者提供消息;當(dāng)所述消息輸出接口為slave接口時(shí),所述消息輸出接口在控制器的控制下,以被動(dòng)的方式向消息使用者提供消息。
所述消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括:所述控制器通過(guò)消息輸入接口獲取消息創(chuàng)建者的狀態(tài),并依據(jù)所述狀態(tài)從所述消息創(chuàng)建者的緩沖區(qū)中提取消息;或者,所述控制器通過(guò)消息輸入接口定時(shí)從所述消息創(chuàng)建者的緩沖區(qū)中提取消
肩、O所述消息輸入接口在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括:所述控制器通過(guò)消息輸入接口接收所述消息創(chuàng)建者主動(dòng)發(fā)來(lái)的消息。所述消息輸出接口在控制器的控制下,以主動(dòng)的方式將讀取的消息發(fā)送給消息使用者,包括:所述控制器通過(guò)消息輸出接口獲取消息使用者的狀態(tài),依據(jù)所述狀態(tài)從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者;或者,所述控制器器定時(shí)從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到消息使用者。所述消息輸出接口在控制器的控制下,以被動(dòng)的方式將讀取的消息發(fā)送給消息使用者,包括:所述控制器通過(guò)消息輸出接口向消息使用者提供消息隊(duì)列狀態(tài),并通過(guò)所述消息輸出接口獲取消息使用者依據(jù)消息隊(duì)列狀態(tài)發(fā)出的讀請(qǐng)求,依據(jù)所述讀請(qǐng)求從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者;或者,所述控制器通過(guò)消息輸出接口獲取消息使用者定時(shí)發(fā)出的讀請(qǐng)求,依據(jù)所述讀請(qǐng)求從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者。本發(fā)明所提供的一種端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法和裝置,采用硬件的HMP裝置直接與消息創(chuàng)建者和消息使用者相連的方式,其端到端的消息傳輸不再經(jīng)過(guò)復(fù)雜的互連系統(tǒng),相比現(xiàn)有共享存儲(chǔ)器的方案,數(shù)據(jù)訪問(wèn)通路的延時(shí)得以縮短,同時(shí)也省去了復(fù)雜的互連系統(tǒng)中競(jìng)爭(zhēng)和判決的時(shí)延、以及判決失效等待時(shí)延;本發(fā)明的消息管理由硬件的控制器來(lái)完成,相比現(xiàn)有方案,省去了對(duì)消息的軟件緩沖管理的開(kāi)銷。因此,本發(fā)明能夠提高消息傳輸?shù)男?,并減少軟件管理的開(kāi)銷。
圖1為現(xiàn)有技術(shù)中共享存儲(chǔ)器式的消息傳輸?shù)挠布?shí)現(xiàn)方式示意圖;圖2為現(xiàn)有技術(shù)中通過(guò)直接接口進(jìn)行消息傳輸?shù)挠布?shí)現(xiàn)方式示意圖一;圖3為現(xiàn)有技術(shù)中通過(guò)直接接口進(jìn)行消息傳輸?shù)挠布?shí)現(xiàn)方式示意圖二 ;圖4為本發(fā)明實(shí)施例中HMP的硬件實(shí)現(xiàn)方式的示意圖;圖5為本發(fā)明實(shí)施例中HMP裝置的組成結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例一的一對(duì)一從主模式的端到端硬件消息傳輸?shù)牟灰鈭D;圖7為本發(fā)明實(shí)施例二的一對(duì)一從從模式的端到端硬件消息傳輸?shù)氖疽鈭D;圖8為本發(fā)明實(shí)施例三的一對(duì)一主主模式的端到端硬件消息傳輸?shù)氖疽鈭D;圖9為本發(fā)明實(shí)施例四的一對(duì)一主從模式的端到端硬件消息傳輸?shù)氖疽鈭D。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡述。本發(fā)明實(shí)施例提供的一種HMP的硬件實(shí)現(xiàn)方式的示意圖,如圖4所示,HMP裝置外接各種功能單元(Function Module),用以實(shí)現(xiàn)不同功能單元之間的消息傳輸;此處的功能單元可以是core,也可以是硬件加速器(accelerator)、芯片等等。即本發(fā)明不僅適用于芯片內(nèi),也適用于片間功能單元的消息傳遞。用以實(shí)現(xiàn)不同功能單元之間的消息傳輸?shù)腍MP裝置結(jié)構(gòu)如圖5所示,主要包括:消息存儲(chǔ)器(storage)、控制器(controller)、消息輸入和輸出接口(interface)。其中,消息存儲(chǔ)器,用于執(zhí)行消息的暫存。控制器,用于執(zhí)行消息的硬件方式管理,將從消息輸入接口獲取的消息存儲(chǔ)在消息存儲(chǔ)器中,從消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送給消息使用者。消息輸入接口(對(duì)應(yīng)圖5中的接口 A),直連消息創(chuàng)建者,用于在控制器的控制下,以主動(dòng)或被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息。消息輸出接口(對(duì)應(yīng)圖5中的接口 B),直連消息使用者,用于在控制器的控制下,以主動(dòng)或被動(dòng)的方式向消息使用者提供消肩、O較佳的,消息輸入接口和消息輸出接口可以根據(jù)需要做成主設(shè)備(master)接口或從設(shè)備(slave)接口,其中master接口主要實(shí)現(xiàn)直接存儲(chǔ)器訪問(wèn)(DMA, Direct MemoryAccess)功能。在消息創(chuàng)建者不能自主發(fā)送消息時(shí),消息輸入接口以master實(shí)現(xiàn);否則,以slave接口實(shí)現(xiàn)。在消息接收者不能自主獲取消息時(shí),消息輸出接口以master實(shí)現(xiàn);否則,以sIave接口實(shí)現(xiàn)。接口協(xié)議不限,可以是標(biāo)準(zhǔn)接口,也可以是自定義接口,具體根據(jù)實(shí)際需要設(shè)計(jì)。也就是說(shuō),消息輸入接口可以為master接口或slave接口,當(dāng)消息輸入接口為master接口時(shí),消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;當(dāng)消息輸入接口為slave接口時(shí),消息輸入接口在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;消息輸出接口也可以為master接口或slave接口,當(dāng)消息輸出接口為master接口時(shí),消息輸出接口在控制器的控制下,以主動(dòng)的方式向消息使用者提供消息;當(dāng)消息輸出接口為slave接口時(shí),消息輸出接口在控制器的控制下,以被動(dòng)的方式向消息使用者提供消息。由上述HMP裝置實(shí)現(xiàn)的端到端硬件消息傳輸?shù)姆椒ㄖ饕?控制器通過(guò)消息輸入接口獲取直連的消息創(chuàng)建者創(chuàng)建的消息,并將獲取的消息暫存在消息存儲(chǔ)器中,對(duì)存儲(chǔ)在消息存儲(chǔ)器中的消息執(zhí)行硬件方式管理;從消息存儲(chǔ)器中讀取消息,并通過(guò)消息輸出接口將讀取的消息發(fā)送給直連的消息使用者。消息輸入接口可以為master接口或slave接口,當(dāng)消息輸入接口為master接口時(shí),消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;當(dāng)消息輸入接口為slave接口時(shí),消息輸入接口在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;消息輸出接口也可以為master接口或slave接口,當(dāng)消息輸出接口為master接口時(shí),消息輸出接口在控制器的控制下,以主動(dòng)的方式向消息使用者提供消息;當(dāng)消息輸出接口為slave接口時(shí),消息輸出接口在控制器的控制下,以被動(dòng)的方式向消息使用者提供消息。其中,消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括:控制器通過(guò)消息輸入接口獲取消息創(chuàng)建者的狀態(tài),并依據(jù)狀態(tài)從消息創(chuàng)建者的緩沖區(qū)中提取消息;或者,控制器通過(guò)消息輸入接口定時(shí)從消息創(chuàng)建者的緩沖區(qū)中提取消息。消息輸入接口在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括:控制器通過(guò)消息輸入接口接收消息創(chuàng)建者主動(dòng)發(fā)來(lái)的消息。消息輸出接口在控制器的控制下,以主動(dòng)的方式將讀取的消息發(fā)送給消息使用者,包括:控制器通過(guò)消息輸出接口獲取消息使用者的狀態(tài),依據(jù)狀態(tài)從消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到消息使用者;或者,控制器器定時(shí)從消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到消息使用者。消息輸出接口在控制器的控制下,以被動(dòng)的方式將讀取的消息發(fā)送給消息使用者,包括:控制器通過(guò)消息輸出接口向消息使用者提供消息隊(duì)列狀態(tài),并通過(guò)消息輸出接口獲取消息使用者依據(jù)消息隊(duì)列狀態(tài)發(fā)出的讀請(qǐng)求,依據(jù)讀請(qǐng)求從消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到消息使用者;或者,控制器通過(guò)消息輸出接口獲取消息使用者定時(shí)發(fā)出的讀請(qǐng)求,依據(jù)讀請(qǐng)求從消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到消息使用者。下面參照?qǐng)D5所示的HMP裝置結(jié)構(gòu),并結(jié)合具體實(shí)施例對(duì)本發(fā)明的端到端硬件消息傳輸方法和系統(tǒng)進(jìn)一步詳細(xì)闡述。實(shí)施例可以根據(jù)需要組合,后續(xù)給出較常用的一對(duì)一的幾種應(yīng)用實(shí)施方式,如附圖6 9所示,其中箭頭所指示的方向表示消息的流向,F(xiàn)unction Module 0(功能單元O)代表消息創(chuàng)建者,F(xiàn)unction Module 1(功能單元I)代表消息使用者,“m”表示數(shù)據(jù)接口行為是master, “s”表示數(shù)據(jù)接口行為是slave, master是消息傳輸?shù)陌l(fā)起者,slave是消息傳輸?shù)慕邮苷呋蝽憫?yīng)者。另外,本發(fā)明實(shí)施例中的消息創(chuàng)建者和消息使用者可以是各種Function Module,如:core、硬件加速器、芯片等等。如圖6所不,本發(fā)明的實(shí)施例一是描述一對(duì)一從主模式的端到端硬件消息傳輸,其中HMP裝置的消息輸入接口以slave接口來(lái)實(shí)現(xiàn)(如圖6中消息傳輸接口 MPI的s接口即為消息輸入接口),消息輸出接口以master接口來(lái)實(shí)現(xiàn)(如圖6中MPI的m接口即為消息輸出接口)。其消息傳輸?shù)牧鞒讨饕?步驟601,消息創(chuàng)建者(Function Module 0)將創(chuàng)建的消息直接送達(dá)HMP裝置的消息輸入接口 interface A (即圖6中MPI的s接口)。本實(shí)施例中,消息創(chuàng)建者是消息傳輸?shù)陌l(fā)起者,其主動(dòng)將創(chuàng)建的消息直接送達(dá)HMP裝置的消息輸入接口。步驟602, interface A將收到的消息傳給HMP裝置的controller。
步驟603,HMP裝置的controller將消息存入HMP裝置的buffer (緩沖區(qū))或memory (存儲(chǔ)器)、即消息存儲(chǔ)器,同時(shí)維護(hù)寫指針。步驟604, HMP裝置的controller通過(guò)interface B獲取消息使用者(FunctionModule I)的接收狀態(tài)、或者根據(jù)定時(shí)(timer),來(lái)決定何時(shí)從buffer或memory取出消息,將消息送給interface B(即圖6中MPI的m接口),同時(shí)維護(hù)讀指針。步驟605,HMP裝置的消息輸出接口 interface B根據(jù)接口協(xié)議將消息送給消息使用者。如圖7所不,本發(fā)明的實(shí)施例一是描述一對(duì)一從從模式的端到端硬件消息傳輸,其中HMP裝置的消息輸入接口以slave接口來(lái)實(shí)現(xiàn)(如圖7中MPI內(nèi)左側(cè)的s接口即為消息輸入接口),消息輸出接口也以slave接口來(lái)實(shí)現(xiàn)(如圖7中MPI內(nèi)右側(cè)的s接口即為消息輸出接口)。其消息傳輸?shù)牧鞒讨饕?步驟701,消息創(chuàng)建者(Function Module 0)將創(chuàng)建的消息直接送達(dá)HMP裝置的消息輸入接口 interface A(即圖7中MPI內(nèi)左側(cè)的s接口)。本實(shí)施例中,消息創(chuàng)建者是消息傳輸?shù)陌l(fā)起者,其主動(dòng)將創(chuàng)建的消息直接送達(dá)HMP裝置的消息輸入接口。步驟702, interface A將收到的消息傳給HMP裝置的controller。步驟703, HMP裝置的controller將消息存入HMP裝置的buffer或memory,同時(shí)維護(hù)寫指針。步驟704,消息使用者(Function Module I)通過(guò) interface B(即圖 7 中 MPI 內(nèi)右側(cè)的s接口)來(lái)獲取消息隊(duì)列狀態(tài)、或者消息使用者根據(jù)定時(shí),來(lái)決定何時(shí)獲取信息。步驟705,消息使用者通過(guò)HMP裝置的消息輸出接口 interface B讀取消息。步驟706, HMP 裝置的 interface B 將讀請(qǐng)求送給 controller。步驟707, HMP 裝置的 controller 從 buffer 或 memory 讀取消息并送給 interfaceB,同時(shí)維護(hù)讀指針在自己的緩沖區(qū)中。步驟708, HMP裝置的interface B將controller提供的消息返回給消息使用者。如圖8所不,本發(fā)明的實(shí)施例一是描述一對(duì)一主主模式的端到端硬件消息傳輸,其中HMP裝置的消息輸入接口以master接口來(lái)實(shí)現(xiàn)(如圖8中MPI內(nèi)左側(cè)的m接口即為消息輸入接口),消息輸出接口也以master接口來(lái)實(shí)現(xiàn)(如圖8中MPI內(nèi)右側(cè)的m接口即為消息輸入接口)。其消息傳輸?shù)牧鞒讨饕?步驟801,消息創(chuàng)建者(Function Module 0)將創(chuàng)建的消息存在自己的緩沖區(qū)中。步驟802,HMP裝置通過(guò)interface A(即圖8中MPI內(nèi)左側(cè)的m接口 )獲取消息創(chuàng)建者的狀態(tài)、或者根據(jù)定時(shí),來(lái)決定何時(shí)從消息創(chuàng)建者那里取消息,并將取回的消息送給HMP 裝置的 controller。步驟803, HMP裝置的controller將消息存入HMP裝置的buffer或memory,同時(shí)維護(hù)寫指針。步驟804, HMP裝置的controller通過(guò)interface B獲取消息使用者(FunctionModule I)的接收狀態(tài)、或者根據(jù)定時(shí)(timer),來(lái)決定何時(shí)從buffer或memory取出消息,送給interface B(即圖8中MPI內(nèi)右側(cè)的m接口),同時(shí)維護(hù)讀指針。步驟805,HMP裝置的消息輸出接口 interface B根據(jù)接口協(xié)議將消息送給消息使用者。如圖9所不,本發(fā)明的實(shí)施例一是描述一對(duì)一主從模式的端到端硬件消息傳輸,其中HMP裝置的消息輸入接口以master接口來(lái)實(shí)現(xiàn)(如圖9中MPI的m接口即為消息輸入接口),消息輸出接口也以slave接口來(lái)實(shí)現(xiàn)(如圖9中MPI的s接口即為消息輸入接口)。其消息傳輸?shù)牧鞒讨饕?步驟901,消息創(chuàng)建者(Function Module O)將創(chuàng)建的消息存在自己的緩沖區(qū)中。步驟902,HMP裝置通過(guò)interface A (即圖9中MPI的m接口)獲取消息創(chuàng)建者的狀態(tài)、或者根據(jù)定時(shí),來(lái)決定何時(shí)從消息創(chuàng)建者那里取消息,并將取回的消息送給HMP裝置的 controller。步驟903, HMP裝置的controller將消息存入HMP裝置的buffer或memory,同時(shí)維護(hù)寫指針。步驟904,消息使用者(Function Module I)通過(guò) interface B(即圖 9 中 MPI 的s接口)來(lái)獲取消息隊(duì)列狀態(tài)、或者消息使用者根據(jù)定時(shí),來(lái)決定何時(shí)獲取信息。步驟905,消息使用者通過(guò)HMP裝置的消息輸出接口 interface B讀取消息。步驟906, HMP 裝置的 interface B 將讀請(qǐng)求送給 controller。步驟907, HMP 裝置的 controller 從 buffer 或 memory 讀取消息并送給 interfaceB,同時(shí)維護(hù)讀指針在自己的緩沖區(qū)中。步驟908,HMP裝置的interface B將消息返回給消息使用者。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種端到端硬件消息傳輸?shù)膶?shí)現(xiàn)裝置,其特征在于,該裝置包括:消息存儲(chǔ)器、控制器、消息輸入和輸出接口, 所述消息存儲(chǔ)器,用于執(zhí)行消息的暫存; 所述控制器,用于執(zhí)行消息的硬件方式管理,將從消息輸入接口獲取的消息存儲(chǔ)在所述消息存儲(chǔ)器中,從所述消息存儲(chǔ)器中讀取消息并通過(guò)所述消息輸出接口發(fā)送給消息使用者; 所述消息輸入接口,直連消息創(chuàng)建者,用于在所述控制器的控制下,獲取消息創(chuàng)建者創(chuàng)建的消息; 所述消息輸出接口,直連消息使用者,用于在所述控制器的控制下,向消息使用者提供消息。
2.根據(jù)權(quán)利要求1所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)裝置,其特征在于, 所述消息輸入接口為主設(shè)備master接口或從設(shè)備slave接口,當(dāng)所述消息輸入接口為master接口時(shí),所述消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;當(dāng)所述消息輸入接口為slave接口時(shí),所述消息輸入接口在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息; 所述消息輸出接口為master接口或slave接口,當(dāng)所述消息輸出接口為master接口時(shí),所述消息輸出接口在控制器的控制下,以主動(dòng)的方式向消息使用者提供消息;當(dāng)所述消息輸出接口為slave接口時(shí),所述消息輸出接口在控制器的控制下,以被動(dòng)的方式向消息使用者提供消息。
3.根據(jù)權(quán)利要求2所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)裝置,其特征在于,所述在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括: 所述控制器通過(guò)消息輸入接口獲取消息創(chuàng)建者的狀態(tài),并依據(jù)所述狀態(tài)從所述消息創(chuàng)建者的緩沖區(qū)中提取消息; 或者,所述控制器通過(guò)消息輸入接口定時(shí)從所述消息創(chuàng)建者的緩沖區(qū)中提取消息。
4.根據(jù)權(quán)利要求2所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)裝置,其特征在于,所述在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括: 所述控制器通過(guò)消息輸入接口接收所述消息創(chuàng)建者主動(dòng)發(fā)來(lái)的消息。
5.根據(jù)權(quán)利要求2所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)裝置,其特征在于,所述在控制器的控制下,以主動(dòng)的方式向消息使用者提供消息,包括: 所述控制器通過(guò)消息輸出接口獲取消息使用者的狀態(tài),依據(jù)所述狀態(tài)從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者; 或者,所述控制器器定時(shí)從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到消息使用者。
6.根據(jù)權(quán)利要求2所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)裝置,其特征在于,所述在控制器的控制下,以被動(dòng)的方式向消息使用者提供消息,包括: 所述控制器通過(guò)消息輸出接口向消息使用者提供消息隊(duì)列狀態(tài),并通過(guò)所述消息輸出接口獲取消息使用者依據(jù)消息隊(duì)列狀態(tài)發(fā)出的讀請(qǐng)求,依據(jù)所述讀請(qǐng)求從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者; 或者,所述控制器通過(guò)消息輸出接口獲取消息使用者定時(shí)發(fā)出的讀請(qǐng)求,依據(jù)所述讀請(qǐng)求從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者。
7.—種端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法,其特征在于,該方法包括: 控制器通過(guò)消息輸入接口獲取直連的消息創(chuàng)建者創(chuàng)建的消息,并將獲取的消息暫存在消息存儲(chǔ)器中,對(duì)存儲(chǔ)在所述消息存儲(chǔ)器中的消息執(zhí)行硬件方式管理;從所述消息存儲(chǔ)器中讀取消息,并通過(guò)所述消息輸出接口將讀取的消息發(fā)送給直連的消息使用者。
8.根據(jù)權(quán)利要求7所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法,其特征在于, 所述消息輸入接口為主設(shè)備master接口或從設(shè)備slave接口,當(dāng)所述消息輸入接口為master接口時(shí),所述消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息;當(dāng)所述消息輸入接口為slave接口時(shí),所述消息輸入接口在控制器的控制下,以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息; 所述消息輸出接口為master接口或slave接口,當(dāng)所述消息輸出接口為master接口時(shí),所述消息輸出接口在控制器的控制下,以主動(dòng)的方式向消息使用者提供消息;當(dāng)所述消息輸出接口為slave接口時(shí),所述消息輸出接口在控制器的控制下,以被動(dòng)的方式向消息使用者提供消息。
9.根據(jù)權(quán)利要求8所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法,其特征在于,所述消息輸入接口在控制器的控制下,以主動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括: 所述控制器通過(guò)消息輸入接口獲取消息創(chuàng)建者的狀態(tài),并依據(jù)所述狀態(tài)從所述消息創(chuàng)建者的緩沖區(qū)中提取消息; 或者,所述控制器通過(guò)消息輸入接口定時(shí)從所述消息創(chuàng)建者的緩沖區(qū)中提取消息。
10.根據(jù)權(quán)利要求8所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法,其特征在于,所述消息輸入接口在控制器的控制下, 以被動(dòng)的方式獲取消息創(chuàng)建者創(chuàng)建的消息,包括: 所述控制器通過(guò)消息輸入接口接收所述消息創(chuàng)建者主動(dòng)發(fā)來(lái)的消息。
11.根據(jù)權(quán)利要求8所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法,其特征在于,所述消息輸出接口在控制器的控制下,以主動(dòng)的方式將讀取的消息發(fā)送給消息使用者,包括: 所述控制器通過(guò)消息輸出接口獲取消息使用者的狀態(tài),依據(jù)所述狀態(tài)從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者; 或者,所述控制器器定時(shí)從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到消息使用者。
12.根據(jù)權(quán)利要求8所述端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法,其特征在于,所述消息輸出接口在控制器的控制下,以被動(dòng)的方式將讀取的消息發(fā)送給消息使用者,包括: 所述控制器通過(guò)消息輸出接口向消息使用者提供消息隊(duì)列狀態(tài),并通過(guò)所述消息輸出接口獲取消息使用者依據(jù)消息隊(duì)列狀態(tài)發(fā)出的讀請(qǐng)求,依據(jù)所述讀請(qǐng)求從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者; 或者,所述控制器通過(guò)消息輸出接口獲取消息使用者定時(shí)發(fā)出的讀請(qǐng)求,依據(jù)所述讀請(qǐng)求從所述消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送到所述消息使用者。
全文摘要
本發(fā)明公開(kāi)了一種端到端硬件消息傳輸?shù)膶?shí)現(xiàn)方法和裝置,裝置包括消息存儲(chǔ)器、控制器、消息輸入和輸出接口。消息存儲(chǔ)器,用于執(zhí)行消息的暫存;控制器,用于執(zhí)行消息的硬件方式管理,將從消息輸入接口獲取的消息存儲(chǔ)在消息存儲(chǔ)器中,從消息存儲(chǔ)器中讀取消息并通過(guò)消息輸出接口發(fā)送給消息使用者;消息輸入接口,直連消息創(chuàng)建者,用于在控制器的控制下,獲取消息創(chuàng)建者創(chuàng)建的消息;消息輸出接口,直連消息使用者,用于在控制器的控制下,向消息使用者提供消息。通過(guò)本發(fā)明,能夠提高消息傳輸?shù)男?,并減少軟件管理的開(kāi)銷。
文檔編號(hào)G06F13/20GK103186491SQ20111045521
公開(kāi)日2013年7月3日 申請(qǐng)日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者元西西, 朱志剛, 汪堅(jiān), 田學(xué)紅, 曾代兵, 田萬(wàn)廷, 邱芳 申請(qǐng)人:中興通訊股份有限公司