本發(fā)明涉及電子嵌入式領(lǐng)域,具體涉及一種基于多個(gè)微處理器的集群運(yùn)算方法。
背景技術(shù):
目前集群運(yùn)算主要分三類,網(wǎng)絡(luò)資源負(fù)載均衡,高可靠性集群(多設(shè)備并行工作冗余備份),還有所謂超級計(jì)算機(jī)的科學(xué)計(jì)算集群。但是這些集群方案都是針對電腦整機(jī)的,他們基于網(wǎng)絡(luò)傳輸進(jìn)行邏輯配合達(dá)到多設(shè)備共同集群運(yùn)算。但是到目前為止沒有人提出過針對嵌入式系統(tǒng)的多個(gè)微處理器做集群運(yùn)算。而隨著物聯(lián)網(wǎng)科技的發(fā)展,單片機(jī)或者嵌入式系統(tǒng)中一個(gè)微控制器已經(jīng)不能滿足開發(fā)的需求,目前的多mcu之間的配合工作沒有規(guī)范,沒有協(xié)議,處于散養(yǎng)階段,更不可能達(dá)到高效,穩(wěn)定,可擴(kuò)展性的要求。
電子嵌入式領(lǐng)域主要是針對某一個(gè)微處理器編程開發(fā),如果出現(xiàn)多個(gè)微處理器合作就只能特別開發(fā),導(dǎo)致開發(fā)成本高,難度高,而且不同的方案不同的通信方式,不可復(fù)用,可擴(kuò)展能力很弱。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對現(xiàn)有技術(shù)中的不足,提供一種多個(gè)微控制器共同運(yùn)算,并且可以隨意增減微處理器的方法,多個(gè)微處理器既能配合運(yùn)算做好幾個(gè)并行邏輯也能分工合作做一個(gè)運(yùn)算邏輯方法。
為實(shí)現(xiàn)上述目的,本發(fā)明公開了如下技術(shù)方案:
一種基于多個(gè)微處理器的集群運(yùn)算方法,包括如下步驟:
S1物理層結(jié)構(gòu)部署:將系統(tǒng)中工作的每個(gè)MCU都看作系統(tǒng)中的一個(gè)節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)之間相互連接,都和一個(gè)專門的轉(zhuǎn)接節(jié)點(diǎn)實(shí)現(xiàn)點(diǎn)對點(diǎn)的連接;
S2鏈路層結(jié)構(gòu)部署:對每個(gè)MCU節(jié)點(diǎn)做加權(quán)公平隊(duì)列消息傳輸,轉(zhuǎn)接節(jié)點(diǎn)將通過每個(gè)節(jié)點(diǎn)的重要性做智能的權(quán)重分配來保證數(shù)據(jù)的高效傳遞,權(quán)重高的運(yùn)行速度就高,權(quán)重低的運(yùn)行速度就低;
S3應(yīng)用層結(jié)構(gòu)部署:每個(gè)應(yīng)用節(jié)點(diǎn)對注冊節(jié)點(diǎn)通報(bào)自己提供的服務(wù)以及能夠收發(fā)的報(bào)文結(jié)構(gòu),系統(tǒng)運(yùn)行時(shí),每個(gè)節(jié)點(diǎn)都能夠通過注冊節(jié)點(diǎn)的服務(wù)公告,找到服務(wù)對應(yīng)的地址,然后根據(jù)地址把服務(wù)送達(dá),最后根據(jù)服務(wù)格式解析數(shù)據(jù);
S4采用消息事件驅(qū)動模式運(yùn)行整個(gè)系統(tǒng):每個(gè)節(jié)點(diǎn)都在一套消息可靠性接收送達(dá)的規(guī)范內(nèi)自由運(yùn)行,只有當(dāng)消息被送到相關(guān)的節(jié)點(diǎn)后,該節(jié)點(diǎn)才會做具體的反應(yīng);每個(gè)節(jié)點(diǎn)邏輯相對獨(dú)立,正常運(yùn)行的條件不依賴于外部環(huán)境并且對自身的運(yùn)行健康狀態(tài)做監(jiān)控來保證該節(jié)點(diǎn)的長期穩(wěn)定工作。
進(jìn)一步的,所述轉(zhuǎn)接節(jié)點(diǎn)包括高速節(jié)點(diǎn)和低速節(jié)點(diǎn),對于低速節(jié)點(diǎn),物理層結(jié)構(gòu)為多節(jié)點(diǎn)共享一條公共總線。
進(jìn)一步的,在系統(tǒng)的應(yīng)用層將中心節(jié)點(diǎn)透明,認(rèn)為各個(gè)節(jié)點(diǎn)都是全互連的網(wǎng)絡(luò)拓?fù)洌我鈨晒?jié)點(diǎn)之間都能夠直連,在這個(gè)基礎(chǔ)上將某一個(gè)節(jié)點(diǎn)指定為注冊點(diǎn),這個(gè)注冊點(diǎn)得到的全部星圖就成為了整個(gè)系統(tǒng)的服務(wù)公告牌,應(yīng)用層的工作則基于這個(gè)公告牌去查詢到具體的節(jié)點(diǎn)位置。
進(jìn)一步的,多個(gè)MCU之間的物理連接方式至少包括SPI、I2C或UART。
進(jìn)一步的,每個(gè)系統(tǒng)中都有一個(gè)或者多個(gè)高速數(shù)據(jù)交換節(jié)點(diǎn),每個(gè)系統(tǒng)中都有一個(gè)或多個(gè)注冊簽到服務(wù)節(jié)點(diǎn),其他的運(yùn)算節(jié)點(diǎn)都使用或者高速連接方式或者低速連接方式和系統(tǒng)中管理節(jié)點(diǎn)互聯(lián)。
本發(fā)明公開的一種基于多個(gè)微處理器的集群運(yùn)算方法,具有以下有益效果:
本發(fā)明提出了有效的多個(gè)mcu節(jié)點(diǎn)集群協(xié)作的方法,提高了開發(fā)效率并且保證了系統(tǒng)的可擴(kuò)展性和穩(wěn)定性,并且每個(gè)節(jié)點(diǎn)都以松耦合的方法有相對獨(dú)立的工作方式。即使有個(gè)別節(jié)點(diǎn)出現(xiàn)故障也不會影響整個(gè)系統(tǒng)的正常工作。
附圖說明
圖1是本發(fā)明的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步描述。
多mcu之間配合工作已經(jīng)越來越多成為物聯(lián)網(wǎng)智能設(shè)備的需求,而多個(gè)mcu之間的通信和協(xié)作處于無政府主義階段,一種簡單高效的多mcu合作運(yùn)行的方案已經(jīng)成了項(xiàng)目開發(fā)的必然需求。如何能提供清晰的高效的mcu合作工作方案,并且各個(gè)mcu之間切實(shí)達(dá)到松耦合和可隨意增刪擴(kuò)展功能,已經(jīng)成了復(fù)雜項(xiàng)目開發(fā)的必然需求。本發(fā)明提供了多個(gè)微控制器共同運(yùn)算,并且可以隨意增減微處理器的方法,多個(gè)未處理既能配合運(yùn)算做多個(gè)并行邏輯,也能分工合作做一個(gè)運(yùn)算邏輯。
請參見圖1。
一種基于多個(gè)微處理器的集群運(yùn)算方法,包括如下步驟:
S1物理層結(jié)構(gòu)部署:將系統(tǒng)中工作的每個(gè)MCU都看作系統(tǒng)中的一個(gè)節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)之間相互連接,都和一個(gè)專門的轉(zhuǎn)接節(jié)點(diǎn)實(shí)現(xiàn)點(diǎn)對點(diǎn)的連接;同時(shí)也可包括可嵌套級聯(lián)的多層結(jié)構(gòu);
S2鏈路層結(jié)構(gòu)部署:對每個(gè)MCU節(jié)點(diǎn)做加權(quán)公平隊(duì)列消息傳輸,轉(zhuǎn)接節(jié)點(diǎn)將通過每個(gè)節(jié)點(diǎn)的重要性做智能的權(quán)重分配來保證數(shù)據(jù)的高效傳遞,權(quán)重高的運(yùn)行速度就高,權(quán)重低的運(yùn)行速度就低;
S3應(yīng)用層結(jié)構(gòu)部署:每個(gè)應(yīng)用節(jié)點(diǎn)對注冊節(jié)點(diǎn)通報(bào)自己提供的服務(wù)以及能夠收發(fā)的報(bào)文結(jié)構(gòu),系統(tǒng)運(yùn)行時(shí),每個(gè)節(jié)點(diǎn)都能夠通過注冊節(jié)點(diǎn)的服務(wù)公告,找到服務(wù)對應(yīng)的地址,然后根據(jù)地址把服務(wù)送達(dá),最后根據(jù)服務(wù)格式解析數(shù)據(jù);
S4采用消息事件驅(qū)動模式運(yùn)行整個(gè)系統(tǒng):每個(gè)節(jié)點(diǎn)都在一套消息可靠性接收送達(dá)的規(guī)范內(nèi)自由運(yùn)行,只有當(dāng)消息被送到相關(guān)的節(jié)點(diǎn)后,該節(jié)點(diǎn)才會做具體的反應(yīng);每個(gè)節(jié)點(diǎn)邏輯相對獨(dú)立,正常運(yùn)行的條件不依賴于外部環(huán)境并且對自身的運(yùn)行健康狀態(tài)做監(jiān)控來保證該節(jié)點(diǎn)的長期穩(wěn)定工作。
作為具體實(shí)施例,所述轉(zhuǎn)接節(jié)點(diǎn)包括高速節(jié)點(diǎn)和低速節(jié)點(diǎn),對于低速節(jié)點(diǎn),物理層結(jié)構(gòu)為多節(jié)點(diǎn)共享一條公共總線。
作為具體實(shí)施例,在系統(tǒng)的應(yīng)用層將中心節(jié)點(diǎn)透明,認(rèn)為各個(gè)節(jié)點(diǎn)都是全互連的網(wǎng)絡(luò)拓?fù)?full mash),任意兩節(jié)點(diǎn)之間都能夠直連,在這個(gè)基礎(chǔ)上將某一個(gè)節(jié)點(diǎn)指定為注冊點(diǎn)(類似一個(gè)觀測點(diǎn)),這個(gè)注冊點(diǎn)得到的全部星圖就成為了整個(gè)系統(tǒng)的服務(wù)公告牌,應(yīng)用層的工作則基于這個(gè)公告牌去查詢到具體的節(jié)點(diǎn)位置。
作為具體實(shí)施例,多個(gè)MCU之間的物理連接方式至少包括SPI、I2C、UART或其他可以實(shí)現(xiàn)通信的協(xié)議。
作為具體實(shí)施例,每個(gè)系統(tǒng)中都有一個(gè)或者多個(gè)高速數(shù)據(jù)交換節(jié)點(diǎn),每個(gè)系統(tǒng)中都有一個(gè)或多個(gè)注冊簽到服務(wù)節(jié)點(diǎn),其他的運(yùn)算節(jié)點(diǎn)都使用或者高速連接方式或者低速連接方式和系統(tǒng)中管理節(jié)點(diǎn)互聯(lián)。每個(gè)節(jié)點(diǎn)都以簽到的方式,通過注冊節(jié)點(diǎn)將本節(jié)點(diǎn)可以提供的服務(wù)公告給整個(gè)系統(tǒng)。
本發(fā)明的整個(gè)系統(tǒng)類似于太陽系的運(yùn)行系統(tǒng),每個(gè)天體可以看作一個(gè)MCU的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都是可以獨(dú)立工作的。任何一個(gè)節(jié)點(diǎn)都是以相互連接的結(jié)構(gòu)或者嵌套結(jié)構(gòu)圍繞中心節(jié)點(diǎn)工作。中心節(jié)點(diǎn)為每個(gè)圍繞其旋轉(zhuǎn)的節(jié)點(diǎn)賦予不同的權(quán)重,權(quán)重高的運(yùn)行速度就高,權(quán)重低的運(yùn)行速度就低。
本發(fā)明系統(tǒng)中消息的傳播是基于數(shù)據(jù)交換中心節(jié)點(diǎn)的加權(quán)公平的資源調(diào)度算法。
本發(fā)明也可以使用中斷響應(yīng)沖突的機(jī)制來實(shí)現(xiàn):目前的系統(tǒng)設(shè)計(jì)大部分都是使用的中斷響應(yīng)方式,包括電腦和單片機(jī)的運(yùn)行都是工作于各種中斷響應(yīng)的。這種中斷響應(yīng)沖突解決的工作機(jī)制就從底層允許無序的搶資源,當(dāng)出現(xiàn)中斷沖突時(shí)候再根據(jù)不同的中斷優(yōu)先級做裁決。這也就要求硬件系統(tǒng)提供足夠多的資源來應(yīng)答不可預(yù)估的中斷響應(yīng),當(dāng)系統(tǒng)資源不能滿足突發(fā)的大量的中斷響應(yīng)的時(shí)候就會出現(xiàn)卡頓甚至死機(jī)。而本發(fā)明對各個(gè)mcu的資源使用的是環(huán)形的加權(quán)的公平隊(duì)列,這就讓整個(gè)硬件資源在一種可控的狀態(tài)下調(diào)用,不會出現(xiàn)系統(tǒng)卡死、死機(jī)等情況。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,而非對其限制;應(yīng)當(dāng)指出,盡管參照上述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,其依然可以對上述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或?qū)ζ渲胁糠只蛘呷考夹g(shù)特征進(jìn)行等同替換;而這些修改和替換,并不使相應(yīng)的技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。