本發(fā)明涉及計算機(jī)技術(shù)和自動化控制領(lǐng)域,尤其是涉及到對大量多種持續(xù)流動的傳感數(shù)據(jù)進(jìn)行實時處理和對大量多種運動終端進(jìn)行實時控制的計算硬件技術(shù),以及需要大規(guī)模并行實時處理的人工智能計算技術(shù)。
背景技術(shù):
計算機(jī)自動控制技術(shù)是現(xiàn)代工業(yè)的核心支撐技術(shù)。傳統(tǒng)自動控制技術(shù)體系依賴于特定的信號總線,將傳感輸入器件、控制輸出器件和中央處理器件按照統(tǒng)一的規(guī)范協(xié)議接入到總線上,中央處理器按照軟件部署的任務(wù)指令序列和中斷傳輸序列執(zhí)行計算控制功能。這種總線式控制體系簡潔便利,硬件和軟件都易于部署實現(xiàn),但很難容納飛速增長的傳感和控制器件數(shù)量、數(shù)據(jù)流量和計算功能需求量。近年來出現(xiàn)和應(yīng)用了新型分布式控制系統(tǒng),采用與以太互聯(lián)網(wǎng)或無線互聯(lián)網(wǎng)類似的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和硬件技術(shù),實現(xiàn)了對大量傳感控制終端和計算處理器件的聯(lián)網(wǎng)組合,將數(shù)據(jù)傳輸和計算的總負(fù)荷量在多個硬件和軟件層面上重新組織分配到各個傳輸控制和計算處理節(jié)點中。在單個中央處理器件層面上,也廣泛應(yīng)用了多核cpu、gpu等并行處理和加速技術(shù),使得單個處理節(jié)點的計算能力大大加強(qiáng)。但是這些基于互聯(lián)網(wǎng)架構(gòu)和傳統(tǒng)計算機(jī)體系結(jié)構(gòu)的大規(guī)模網(wǎng)絡(luò)并行計算處理技術(shù),除了成本和功耗問題之外,有兩個很難克服的重大硬件限制,其一是計算系統(tǒng)需要統(tǒng)一的時鐘,所有聯(lián)組的數(shù)據(jù)計算和傳輸控制單元都需要與統(tǒng)一的時鐘進(jìn)行同步,一旦時鐘服務(wù)器本身或單元器件的時鐘同步機(jī)制出現(xiàn)故障,就會影響到整個系統(tǒng)的計算性能和可靠性;其二是傳輸線路和計算單元都需要混合分時復(fù)用,受限于傳輸媒介的物理性能上限限制和計算操作系統(tǒng)的規(guī)則限制,很難實時應(yīng)對局部超負(fù)荷組合數(shù)據(jù)傳輸、存儲、讀取和運算的需求,造成的系統(tǒng)響應(yīng)延遲和阻塞對于一些時間精度要求很高的應(yīng)用場景而言是不可接受的,特別是對于應(yīng)用在例如多架飛行器協(xié)同操控等快速變化的復(fù)雜物理環(huán)境中的人工智能算法,一旦出現(xiàn)即使較輕微的響應(yīng)延遲,都可能導(dǎo)致不可逆轉(zhuǎn)的災(zāi)難性后果。
技術(shù)實現(xiàn)要素:
本發(fā)明針對這兩點重大技術(shù)問題,提出了一種新的網(wǎng)絡(luò)體系和單元器件硬件架構(gòu),將傳輸控制單元、計算處理單元和存數(shù)據(jù)儲單元融合在同樣的單元處理器件中,單元器件之間實現(xiàn)直接的物理線路連接且不依賴于統(tǒng)一的時鐘,軟件代碼轉(zhuǎn)化為嚴(yán)格實時運行的硬件電路,單元器件和系統(tǒng)整體都按照編程設(shè)定的時序運行,從而實現(xiàn)了嚴(yán)格意義上的分布式實時計算系統(tǒng),解決了既要求很高的并行處理容量和組合復(fù)雜度、又要求很高的實時性的矛盾難題,且具有高自由度、低成本功耗的特點。需要特別說明的是,本發(fā)明提出的是一種實現(xiàn)分布式實時計算的硬件系統(tǒng),而非軟件和算法。在現(xiàn)有的互聯(lián)網(wǎng)體系框架下存在多種分布式實時計算的軟件平臺和應(yīng)用算法方法,這些與本發(fā)明所述的技術(shù)方案無關(guān)。針對本發(fā)明所述的硬件技術(shù)方案需要產(chǎn)生新的軟件平臺和應(yīng)用算法開發(fā)方法,這些不在本發(fā)明的權(quán)利要求范圍內(nèi)。
下面通過實施例,并結(jié)合附圖,對本發(fā)明的技術(shù)方案作進(jìn)一步具體的說明。本發(fā)明所述的分布式實時計算系統(tǒng)由任意大于2數(shù)目的單元計算器件和數(shù)據(jù)傳輸器件聯(lián)網(wǎng)組成。網(wǎng)絡(luò)連接的拓?fù)浣Y(jié)構(gòu)可以是任意設(shè)定的有向圖,可以具有多個互相交疊的閉環(huán),而不限于傳統(tǒng)網(wǎng)絡(luò)的星形、樹形、環(huán)形、多分層等特定拓?fù)浣Y(jié)構(gòu)。例如附圖1所示,該計算系統(tǒng)具有3個不同的傳感輸入和2個不同的控制輸出終端,2個電源,5個計算單元器件按照附圖1中箭頭所示的傳輸連接關(guān)系形成具有多個互相交疊的閉環(huán)的網(wǎng)絡(luò)。本發(fā)明技術(shù)的實施者應(yīng)了解,其他計算網(wǎng)絡(luò)一般不允許這樣復(fù)雜的硬件通路連接關(guān)系,主要是因為在統(tǒng)一的時鐘下,如果同一包數(shù)據(jù)分別沿著耗時不同的路徑從一個節(jié)點到達(dá)另一個節(jié)點,會產(chǎn)生沖突和重疊,如果數(shù)據(jù)包被拆分發(fā)送,則系統(tǒng)總延時取決于耗時最長的路徑。而本發(fā)明方案所述的計算網(wǎng)絡(luò)則沒有這樣的限制:一方面,因為每一包數(shù)據(jù)在傳遞一次過程中都改變自己的時間信息,一個節(jié)點在不同時間接收到的同樣的數(shù)據(jù)會被視為不同的數(shù)據(jù)包,在不同的處理循環(huán)周期里分別依次處理;另一方面,如果一個數(shù)據(jù)包被拆分發(fā)送,那么最早到達(dá)處理節(jié)點的部分?jǐn)?shù)據(jù)會立刻進(jìn)入處理流水,而不需要等待整個數(shù)據(jù)包都到達(dá)才進(jìn)行處理。由此帶來的額外優(yōu)點是,通過恰當(dāng)?shù)陌才艛?shù)據(jù)流動網(wǎng)絡(luò)通路,可以在指定的節(jié)點上實現(xiàn)確定時間段的短時記憶和確定組合的關(guān)聯(lián)運算,而這一點對于人工智能計算技術(shù)是至關(guān)重要的。附圖1只是為了舉例說明本發(fā)明所述的計算系統(tǒng)的網(wǎng)絡(luò)組織形式,本發(fā)明的實施者應(yīng)明白,本發(fā)明的每一個實際應(yīng)用都應(yīng)當(dāng)根據(jù)傳感輸入器件和控制輸出器件的具體情況來設(shè)計計算網(wǎng)絡(luò)組織形式,而不是僅限于附圖1所展示的以及與之簡單類似的網(wǎng)絡(luò)結(jié)構(gòu)。為了實現(xiàn)這樣的系統(tǒng)功能,單元計算器件和數(shù)據(jù)傳輸器件必須滿足特定的技術(shù)要求和通過特定設(shè)計制造方法來實現(xiàn),在下面分別說明。
單元計算器件的設(shè)計如附圖2所示,以現(xiàn)場可編程邏輯門陣列(fpga)芯片為核心處理器。fpga上加載運行的程序應(yīng)為一個或多個并行的具有確定物理時間周期的循環(huán)結(jié)構(gòu)。通常所用的fpga芯片具有數(shù)十以至上千個通用輸入輸出(gpio)引腳,其中一部分引腳與雙倍速率同步動態(tài)隨機(jī)存儲器(ddrsdram)芯片的數(shù)據(jù)位線和地址位線相連,實現(xiàn)對ddrsdram的直接讀寫操作;一部分引腳與快閃存儲器(flash)芯片相連,在flash芯片上存儲和讀取fpga芯片加載的數(shù)據(jù)流循環(huán)運算處理程序;一部分引腳與電可擦除只讀存儲器(eeprom)芯片相連,在eeprom上一次性寫入該單元器件的配置信息和身份信息,當(dāng)該單元用在各種不同的組網(wǎng)狀態(tài)下時可以從其他計算單元讀取該單元的信息;一部分引腳與一個支持pcie協(xié)議的gbit收發(fā)器(gtp)相連,用于與系統(tǒng)中設(shè)置的pcie總線上其他連接的單元計算器件和終端傳輸數(shù)據(jù);余下的部分引腳按照每16根一組的方式接入到對外的gpio插接頭上,命名為gpio-1,gpio-2等等。在每個gpio插頭的16根引腳中,8根用于并行發(fā)送數(shù)據(jù)字節(jié)(byte),1根用于傳輸發(fā)送數(shù)據(jù)的時鐘沿,1根為地線,其余6根用于保留用作其他自定義功能,包括但不限于數(shù)據(jù)校驗、數(shù)據(jù)加密、供電等功能。按照上述范例設(shè)計制作的單元計算器件,符合前段所述的技術(shù)要求。概括而言,這樣的單元計算器件具有以下特性:(1)嚴(yán)格實時執(zhí)行每一次周期為確定物理時間的循環(huán)邏輯運算;(2)實時對存儲器進(jìn)行讀寫操作而無需任何其他中間級緩存;(3)具有多個gpio引腳用于與其他單元計算器件和傳感控制終端器件直接連接,一般來說這種連接是相對較短距離的;(4)具有1個gbit收發(fā)器用于與pcie總線連接,可以與遠(yuǎn)距離的其他單元計算器件和終端器件通信;(5)具有一個運行程序的備份,且這個備份可被外部輸入指令所修改、覆蓋和讀??;(6)具有一個獨一無二身份信息的存儲器,身份信息在一次性寫入之后不能再修改,或只能被有足夠權(quán)限的開發(fā)者修改。本發(fā)明的實施者應(yīng)明白,本段所述的實施方式僅是具體范例,實施者應(yīng)根據(jù)本段所述的技術(shù)精神確定所選的具體芯片配置和連接規(guī)范,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
單元計算器件之間通過gpio連接的數(shù)據(jù)傳輸器件和傳輸規(guī)范如附圖3所示,發(fā)送端的gpio端口與接收端的gpio端口一一對應(yīng)引腳連接,發(fā)送端的gpio設(shè)定為輸出(o)模式,接收端的gpio設(shè)定為輸入(i)模式。由于每一個單元計算器件按照各自獨立且可以互不相同的循環(huán)周期進(jìn)行計算處理和發(fā)送數(shù)據(jù),且系統(tǒng)中不存在統(tǒng)一的時鐘發(fā)生器和同步器,每一對單元計算器件之間的數(shù)據(jù)傳輸必須采用異步、非握手式的數(shù)據(jù)傳遞。傳輸器件的線路之中要有至少1根專門用于發(fā)送時鐘沿的線,這根線默認(rèn)處于低電平。設(shè)發(fā)送端的工作頻率為f,例如f=40mhz,即每25ns發(fā)送1個字節(jié),發(fā)送端在每一次向gpio端口寫入數(shù)據(jù)位的同時就在時鐘線上同時發(fā)出1個脈沖。在接收端的fpga芯片上設(shè)置1個先進(jìn)先出(fifo)隊列,接收端需要以大于等于發(fā)送端工作頻率2倍的工作頻率來監(jiān)測時鐘線路,例如2f=80mhz,每當(dāng)檢測到時鐘沿的變化時,就將接收端gpio端口上的數(shù)據(jù)寫入fifo隊列,用于接收端的計算處理。fifo隊列的容量應(yīng)以不低于接收端在一次完整計算周期內(nèi)全部需要讀取的最大數(shù)據(jù)量為準(zhǔn)。根據(jù)尼奎斯特采樣定理,當(dāng)接收端的工作頻率大于等于發(fā)送端的2倍時,無論二者之間相位偏差關(guān)系如何,接收端總可以完全無損的檢測到發(fā)送端每一次時鐘沿和數(shù)據(jù)位變化。并且時鐘信息同時也包含了數(shù)據(jù)包起始和終止信息,數(shù)據(jù)傳輸線的帶寬利用效率達(dá)到了最大化。通過這種“過采樣”的方法實現(xiàn)了異步、非握手式的實時傳輸數(shù)據(jù),且具有廣泛的適用性,如上段所述的任意2個單元計算器件之間,只要器件具有足夠數(shù)目的gpio接口,均可以采用本方法進(jìn)行實時數(shù)據(jù)傳輸。更進(jìn)一步,各種輸入器件和輸出器件與單元計算器件之間的數(shù)據(jù)傳輸也采取同樣方法,只有一種例外情況是當(dāng)輸出器件只接收1個單元計算器件的數(shù)據(jù)且不向其他器件發(fā)送任何數(shù)據(jù),這種情況下輸出器件可以采用握手式傳輸接收來自單元計算器件的數(shù)據(jù)。本發(fā)明的實施者應(yīng)明白,本段所述的實施方式僅是具體范例,實施者應(yīng)根據(jù)本段所述的技術(shù)精神,在具體應(yīng)用中確定發(fā)送端和接收端的工作頻率、fifo隊列的容量、以及每一組接口引腳數(shù)目和的自定義功能,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
單元計算器件之間通過gbit收發(fā)器的數(shù)據(jù)傳輸器件和傳輸規(guī)范如附圖4所示。發(fā)送和接收端上的fpga芯片需要部署相應(yīng)的代碼,以支持實現(xiàn)pcie協(xié)議,連接到gbit收發(fā)器上的接口和傳輸線的定義也同樣遵循pcie規(guī)范,即為pcie總線。在所有連接到同一通道pcie總線上的單元計算器件之中需要指定至少1個作為傳輸控制器,這個特殊的單元計算器件也可以是常規(guī)的基于x86/x64架構(gòu)的pc機(jī)、或者是基于arm架構(gòu)的移動計算設(shè)備,如果該設(shè)備本身不具備可在硬件底層實時編程的pcie控制器,就需要配置有fpga芯片用于實時控制pcie總線上的傳輸。此外,在fpga芯片上部署了相應(yīng)的代碼后,gbit收發(fā)器也可以支持以太網(wǎng)、usb、無線傳輸?shù)绕渌麄鬏攨f(xié)議,只要在物理接口上進(jìn)行相應(yīng)的適配即可,相應(yīng)的pcie總線轉(zhuǎn)變?yōu)槠渌愋偷挠芯€和無線傳輸線路。如第0006段所述的通過gpio實現(xiàn)的數(shù)據(jù)傳輸適用于分布式數(shù)據(jù)傳輸,可支持非常多的傳輸組合,數(shù)據(jù)在傳輸?shù)耐瑫r就得到了實時處理,并且各種處理的結(jié)果數(shù)據(jù)進(jìn)行實時匯合重組再進(jìn)行后續(xù)處理,這樣的結(jié)構(gòu)可以容納大流量、多模式并發(fā)的輸入數(shù)據(jù),且不會出現(xiàn)阻塞和延遲。但考慮到物理接線的尺寸和距離限制,通過gpio實現(xiàn)的數(shù)據(jù)傳輸適用于相對較短距離上多個單元計算器件之間的聯(lián)網(wǎng),而通過gbit收發(fā)器實現(xiàn)的總線式數(shù)據(jù)傳輸模式則適用于相對較長距離、流量雖然高但模式較為簡單的傳輸需求,經(jīng)過gbit收發(fā)器轉(zhuǎn)換的無線數(shù)據(jù)傳輸模式則適用于超遠(yuǎn)距離、流量不高的需求。系統(tǒng)內(nèi)部同時具有這三種傳輸模式,可以最大限度地適應(yīng)不同的具體應(yīng)用需求。本發(fā)明的實施者應(yīng)明白,本段所述的實施方式僅是具體范例,實施者應(yīng)根據(jù)本段所述的技術(shù)精神,在具體應(yīng)用中確定各個單元計算器件之間的連接方法和傳輸協(xié)議,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
如第0005段所述的單元計算器件可以有其它的設(shè)計制造方案,其中比較常見的兩種是已經(jīng)廣泛普及的基于x86/x64中央處理器架構(gòu)的pc機(jī)和基于arm處理器架構(gòu)的移動計算和通信設(shè)備。在這兩種方案中,都配備具有實時計算能力的芯片例如fpga以及與之配套的gpio和gbit收發(fā)器兩種分布式和總線式傳輸接口,用于與其他單元計算器件進(jìn)行實時數(shù)據(jù)傳輸。但pc機(jī)或移動計算通信設(shè)備仍然可以保留其原有的數(shù)據(jù)傳輸器件和方法,只是軟件開發(fā)者需要以實時計算硬件系統(tǒng)作為軟件開發(fā)部署對象,對其他非實時操作的計算器件需要設(shè)置適當(dāng)?shù)倪M(jìn)程啟動、中斷、等待和轉(zhuǎn)移方法以適配實時計算器件的計算和傳輸循環(huán)周期。無論使用何種制造方案,都必須滿足最基本的實時性要求,即每一批次計算指令和每一包數(shù)據(jù)傳輸都必須在可由軟件開發(fā)者直接設(shè)定的明確的物理時間段內(nèi)完成,而不能依賴于編譯系統(tǒng)和操作系統(tǒng)來分配和模擬。本發(fā)明的實施者應(yīng)明白,本段所述的實施方式僅是具體范例,實施者應(yīng)根據(jù)本段所述的技術(shù)精神,在具體應(yīng)用中確定使用何種單元計算器件的制造方案和接口配置,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
已經(jīng)存在了在本發(fā)明要求權(quán)利之外其他并行計算硬件方案,例如用1片超大容量的fpga芯片來代替所有的單元計算器件上的fpga芯片和互相之間的連接,再例如用大量連接到以太或無線互聯(lián)網(wǎng)的pc機(jī)和移動計算設(shè)備組成并行計算網(wǎng)絡(luò)。但本發(fā)明所述的技術(shù)方案具有以下支持軟件開發(fā)的獨特優(yōu)點:1、可以在不間斷系統(tǒng)持續(xù)運行的情況下編輯、備份、調(diào)試和重寫部分軟件代碼,甚至支持系統(tǒng)內(nèi)部由一部分單元計算器件自動生成另一部分單元計算器件上運行的軟件代碼。即使對于一些計算量不高的應(yīng)用,只需一片很大容量的fpga也可以實現(xiàn)整個系統(tǒng)的實時計算功能,但越大容量的fpga,其軟件編譯部署所需的時間就越長,甚至可以達(dá)數(shù)十小時,在調(diào)試過程中這樣長的等待時間是幾乎不可忍耐的。因此開發(fā)者將軟件適當(dāng)?shù)姆纸饨M合部署到多個單元計算器件的中小容量fpga上,可以實現(xiàn)很高的運行部署和調(diào)試效率。2、軟件開發(fā)者對系統(tǒng)各個單元計算器件的物理時間具有高度的掌控力,而不需要通過操作系統(tǒng)模擬時間,可以高效率、低功耗實現(xiàn)一些非常規(guī)的、對物理時間高度依賴的新智能算法模型,例如時間依賴性的神經(jīng)元突觸可塑性模型、積分發(fā)放神經(jīng)元模型、神經(jīng)元活性調(diào)制因子模型等。3、內(nèi)存儲器同樣被分布式配置到各個單元計算器件中,利用寄存器邏輯,對每一個fpga設(shè)置私有和公有寄存器,將gpio端口對應(yīng)的fpga引腳映射到公有寄存器,將本地ddr存儲器對應(yīng)的fpga引腳映射到私有寄存器,可以實現(xiàn)不同的fpga芯片互相訪問ddr存儲器。而這種多個計算進(jìn)程互相直接訪問內(nèi)存的技術(shù)在其他傳統(tǒng)計算體系硬件結(jié)構(gòu)下是很難實現(xiàn)的,只能通過操作系統(tǒng)來進(jìn)行模擬映射。4、按第0004段所述方案制作的單元計算器件的體積、重量、功耗均較小,且全固態(tài)一體化,經(jīng)過連接組合后的系統(tǒng)仍然具有足夠好的可移動性,且直接與傳感器件和運動控制器件連接為一體,可以安裝到各種移動機(jī)電設(shè)備上。對于配備了有遠(yuǎn)距離有線和無線通信控制芯片的單元計算器件的自主運行的系統(tǒng),多個這樣的系統(tǒng)可以按同樣的體系方式再組成一個更大的實時計算系統(tǒng)且仍然具有自主運行能力,能夠部署實現(xiàn)規(guī)模更加龐大的智能學(xué)習(xí)算法,例如附圖5所示。同領(lǐng)域的實施者具有足夠的一般性知識,可以理解本發(fā)明的上述優(yōu)點的實現(xiàn)方式,在具體應(yīng)用中確定軟件功能開發(fā)實現(xiàn)的方法和過程,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
如上段所述的由多種不同類型的單元計算器件與傳感、運動器件共同組成的分布式實時計算系統(tǒng)是適合實現(xiàn)人工智能計算的硬件體系。傳統(tǒng)人工智能計算技術(shù)高度依賴于已經(jīng)數(shù)字化的大量數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí),并且在運行過程中也需要依靠和等待有人控制的外部設(shè)備提供數(shù)字化的輸入數(shù)據(jù),但本發(fā)明所述技術(shù)方案提供了一種不需要依靠和等待有人控制的外部設(shè)備提供數(shù)據(jù)的智能計算硬件體系。同領(lǐng)域的實施者具有足夠的一般性知識,可以理解本發(fā)明的上述優(yōu)點的實現(xiàn)方式,在具體應(yīng)用中確定人工智能算法設(shè)計和運用的方法和過程,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。