一種基于多核處理器的腦信號(hào)實(shí)時(shí)并行處理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于腦機(jī)交互技術(shù)領(lǐng)域,具體涉及一種基于多核處理器的腦信號(hào)實(shí)時(shí)并行 處理方法。
【背景技術(shù)】
[0002] 腦機(jī)交互技術(shù)的發(fā)展已經(jīng)使得人類能夠建立中樞神經(jīng)系統(tǒng)和外界直接交流的通 道,通過對(duì)腦信號(hào)的分析來控制外部設(shè)備,也為機(jī)器學(xué)習(xí)和智能研究提供了新的發(fā)展方向。 但是由于人腦結(jié)構(gòu)的高度復(fù)雜性,以及人腦具有較強(qiáng)的可塑性和對(duì)外周環(huán)境的適應(yīng)性,使 得目前腦機(jī)交互系統(tǒng)存在泛化能力不足,魯棒性較差等問題。腦與機(jī)的協(xié)同在腦信息獲取、 信息解析與交互等理論與關(guān)鍵技術(shù)方面仍面臨巨大的挑戰(zhàn)。例如,高時(shí)空分辨率和高精度 腦激活區(qū)定位的腦信號(hào)獲取技術(shù)與裝置,腦機(jī)實(shí)時(shí)交互高速信號(hào)處理系統(tǒng),多模態(tài)反饋的 高效腦機(jī)交互與腦機(jī)互適應(yīng)技術(shù)等。因此,需要有更快數(shù)據(jù)處理能力的處理方法來實(shí)現(xiàn)腦 信號(hào)實(shí)時(shí)的數(shù)據(jù)傳輸和數(shù)據(jù)處理。
[0003] 目前的腦信號(hào)處理方法大多首先在PC機(jī)上完成對(duì)神經(jīng)數(shù)據(jù)的接收和運(yùn)動(dòng)狀態(tài)的 預(yù)測(cè),受PC上的通用處理器性能限制和并行接口的傳輸速度限制,目前的腦信號(hào)處理方法 每次處理耗時(shí)較大。由于基于蒙特卡洛過程方法的腦神經(jīng)信號(hào)處理方法假設(shè)神經(jīng)信號(hào)的發(fā) 生數(shù)在極短的時(shí)間內(nèi)服從泊松分布,因此實(shí)時(shí)運(yùn)行該算法要求在接收極短時(shí)間間隔的神經(jīng) 數(shù)據(jù)后進(jìn)行運(yùn)動(dòng)狀態(tài)預(yù)測(cè),同時(shí)要求腦信號(hào)處理的延時(shí)不能超過該時(shí)間間隔。所以,如果受 處理器性能和傳輸速度的限制影響了腦信號(hào)處理的延時(shí),則會(huì)增大上述時(shí)間間隔,使腦神 經(jīng)信號(hào)的發(fā)生數(shù)概率分布偏離泊松分布假設(shè),不但處理的實(shí)時(shí)性會(huì)下降,還會(huì)影響預(yù)測(cè)的 準(zhǔn)確度。
[0004] 目前,單核處理器在單純提升主頻方面面臨功耗等難以逾越的鴻溝,多核處理器 將是未來PC和嵌入式領(lǐng)域的主流。TI公司生產(chǎn)的KeyStone系列多核處理器每個(gè)浮點(diǎn)運(yùn)算處 理器計(jì)算能力為19 · 2GFlops,系統(tǒng)計(jì)算能力超過600GFlops,在通用嵌入式處理器領(lǐng)域運(yùn)算 能力全球領(lǐng)先,具備優(yōu)異的低功耗性能,單瓦特能效比達(dá)到1.92GFlops/W,能夠完成腦信號(hào) 實(shí)時(shí)并行處理計(jì)算。另外,基于可擴(kuò)展VPX硬件平臺(tái)的RapidIO高速串行總線交互技術(shù)能夠 實(shí)現(xiàn)數(shù)據(jù)的IOG帶寬傳輸,充分滿足了腦信號(hào)處理過程的大數(shù)據(jù)量傳輸需求。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供了一種基于多核處理器的腦信號(hào)實(shí)時(shí)并行處理方法,能夠?qū)崿F(xiàn)腦神經(jīng) 數(shù)據(jù)的高速傳輸處理。
[0006] -種基于多核處理器的腦信號(hào)實(shí)時(shí)并行處理方法,所述多核處理器至少包括一個(gè) ARM處理器和四個(gè)內(nèi)核,所述的并行處理方法包括:
[0007] 步驟1,ARM處理器接收神經(jīng)數(shù)據(jù)和處理指令,并將神經(jīng)數(shù)據(jù)和處理指令發(fā)送至第 一內(nèi)核,第一內(nèi)核將處理指令傳遞至第二內(nèi)核;
[0008] 步驟2,第二內(nèi)核接收處理指令后,根據(jù)上一次的預(yù)測(cè)運(yùn)動(dòng)狀態(tài),通過狀態(tài)轉(zhuǎn)移方 程,計(jì)算當(dāng)前預(yù)測(cè)運(yùn)動(dòng)狀態(tài),并在當(dāng)前預(yù)測(cè)運(yùn)動(dòng)狀態(tài)的偏差范圍內(nèi)隨機(jī)采樣,得到若干個(gè)運(yùn) 動(dòng)狀態(tài)采樣點(diǎn),第二內(nèi)核將處理指令傳遞至第三內(nèi)核;
[0009]步驟3,第三內(nèi)核接收處理指令后,根據(jù)運(yùn)動(dòng)狀態(tài)采樣點(diǎn),通過觀測(cè)方程,計(jì)算各運(yùn) 動(dòng)狀態(tài)采樣點(diǎn)下神經(jīng)數(shù)據(jù)的期望,每個(gè)期望計(jì)算完畢后,第三內(nèi)核實(shí)時(shí)將處理指令傳遞至 第四內(nèi)核,直至得到所有運(yùn)動(dòng)狀態(tài)采樣點(diǎn)下神經(jīng)數(shù)據(jù)的期望;
[0010]步驟4,第四內(nèi)核接收處理指令后,根據(jù)神經(jīng)數(shù)據(jù)和對(duì)應(yīng)的期望,計(jì)算各運(yùn)動(dòng)狀態(tài) 采樣點(diǎn)下,出現(xiàn)當(dāng)前神經(jīng)數(shù)據(jù)的后驗(yàn)概率,所有運(yùn)動(dòng)狀態(tài)采樣點(diǎn)對(duì)應(yīng)的后驗(yàn)概率計(jì)算完畢 后,第四內(nèi)核將全部計(jì)算結(jié)果傳遞至第一內(nèi)核;
[0011] 步驟5,第一內(nèi)核根據(jù)運(yùn)動(dòng)狀態(tài)采樣點(diǎn)和對(duì)應(yīng)的后驗(yàn)概率,得到預(yù)測(cè)運(yùn)動(dòng)狀態(tài),并 將預(yù)測(cè)運(yùn)動(dòng)狀態(tài)傳遞至ARM處理器;
[0012] 步驟6, ARM處理器接收預(yù)測(cè)運(yùn)動(dòng)狀態(tài)并輸出。
[0013] 本發(fā)明中的第一內(nèi)核、第二內(nèi)核、第三內(nèi)核和第四內(nèi)核是以功能不同進(jìn)行的劃分, 均可以包含多個(gè)內(nèi)核。
[0014] 作為優(yōu)選,所述的狀態(tài)轉(zhuǎn)移方程為xt = Fxt-I,其中Xt與xt-i分別表示當(dāng)前時(shí)刻與上 一時(shí)刻的預(yù)測(cè)運(yùn)動(dòng)狀態(tài),F(xiàn)表示狀態(tài)轉(zhuǎn)移矩陣。F和當(dāng)前預(yù)測(cè)運(yùn)動(dòng)狀態(tài)的偏差范圍均預(yù)先通 過訓(xùn)練的方法獲得。
[0015] 在計(jì)算各運(yùn)動(dòng)狀態(tài)采樣點(diǎn)下神經(jīng)數(shù)據(jù)的期望時(shí),假設(shè)各通道神經(jīng)數(shù)據(jù)的期望與當(dāng) 前預(yù)測(cè)運(yùn)動(dòng)狀態(tài)線性相關(guān),采用λ = ΚΧ計(jì)算期望,其中λ表示運(yùn)動(dòng)狀態(tài)采樣點(diǎn)下神經(jīng)數(shù)據(jù)的 期望,X表示當(dāng)前預(yù)測(cè)運(yùn)動(dòng)狀態(tài),K表示當(dāng)前預(yù)測(cè)運(yùn)動(dòng)狀態(tài)和對(duì)應(yīng)期望的關(guān)系矩陣。
[0016] 計(jì)算當(dāng)前神經(jīng)數(shù)據(jù)出現(xiàn)的后驗(yàn)概率時(shí),假設(shè)各通道神經(jīng)數(shù)據(jù)的后驗(yàn)概率分布服從 泊松分布,
計(jì)算后驗(yàn)概率,其中y為當(dāng)前神經(jīng)數(shù)據(jù),P(y)為當(dāng)前神經(jīng)數(shù)據(jù) 出現(xiàn)的后驗(yàn)概率,λ為運(yùn)動(dòng)狀態(tài)采樣點(diǎn)下神經(jīng)數(shù)據(jù)的期望。
[0017] 計(jì)算泊松分布概率時(shí),采用查表的方法優(yōu)化運(yùn)算速度。
[0018] 本發(fā)明以高性能多核處理器為核心,通過千兆以太網(wǎng)和RapidIO接口來完成神經(jīng) 數(shù)據(jù)從采集設(shè)備到多核處理器的高速傳輸,通過千兆以太網(wǎng)和MessageQ模塊實(shí)現(xiàn)命令的處 理和下發(fā),同時(shí)以并行式的算法結(jié)構(gòu)完成通過神經(jīng)數(shù)據(jù)預(yù)測(cè)當(dāng)前運(yùn)動(dòng)狀態(tài)的工作,大大提 高了腦信號(hào)處理方法的工作效率。
[0019] 本發(fā)明在運(yùn)動(dòng)狀態(tài)預(yù)測(cè)過程中,數(shù)據(jù)接收、運(yùn)動(dòng)狀態(tài)采樣點(diǎn)獲取、期望計(jì)算、后驗(yàn) 概率計(jì)算并行進(jìn)行,增加了運(yùn)算處理的效率,提高了數(shù)據(jù)處理的實(shí)時(shí)性。同時(shí),本發(fā)明采用 共享內(nèi)存與MessageQ模塊的方式實(shí)現(xiàn)核與核之間的數(shù)據(jù)共享和同步,提高了腦信號(hào)處理效 率。
[0020] 本發(fā)明能夠?qū)崿F(xiàn)延時(shí)IOms以內(nèi)的神經(jīng)數(shù)據(jù)處理和運(yùn)動(dòng)狀態(tài)的預(yù)測(cè),運(yùn)用在在線預(yù) 測(cè)系統(tǒng)中,每次運(yùn)動(dòng)預(yù)測(cè)可在極短的時(shí)間內(nèi)進(jìn)行,保證期間神經(jīng)信號(hào)發(fā)生數(shù)較低,發(fā)生概率 更接近泊松分布假設(shè),從而得到更好的預(yù)測(cè)精度和實(shí)時(shí)性,本方法能廣泛應(yīng)用于腦神經(jīng)信 號(hào)在線處理系統(tǒng)中。
【附圖說明】
[0021] 圖1為腦信號(hào)實(shí)時(shí)處理的原理示意圖。
[0022]圖2為本發(fā)明的硬件結(jié)構(gòu)示意圖。
[0023]圖3為本發(fā)明的結(jié)構(gòu)原理示意圖。
[0024]圖4為本發(fā)明腦信號(hào)處理方法的流程示意圖。
【具體實(shí)施方式】
[0025]為了更為具體地描述本發(fā)明,下面結(jié)合附圖及【具體實(shí)施方式】對(duì)本發(fā)明的技術(shù)方案 及其方法進(jìn)行詳細(xì)說明。
[0026]如圖1所示,腦信號(hào)實(shí)時(shí)并行處理的原理為:首先,通過千兆以太網(wǎng)和RapidIO接口 接收神經(jīng)信號(hào)采集系統(tǒng)發(fā)送的神經(jīng)數(shù)據(jù);同時(shí),通過千兆以太網(wǎng)接收PC機(jī)傳輸?shù)奶幚碇噶睿?然后對(duì)處理指令進(jìn)行解析處理后通過MessageQ模塊下發(fā)處理指令到多核處理器進(jìn)行運(yùn)動(dòng) 狀態(tài)的預(yù)測(cè);最后,預(yù)測(cè)出新的運(yùn)動(dòng)狀態(tài)后,將預(yù)測(cè)結(jié)果通過千兆以太網(wǎng)返回到PC機(jī)。
[0027] 如圖2所示,實(shí)施本發(fā)明提供的方法的多核處理器中包括一個(gè)ARM處理器、第一內(nèi) 核、第二內(nèi)核、第三內(nèi)核和第四內(nèi)核,該多核處理器具有千兆以太網(wǎng)接口和RapidIO接口,并 設(shè)有外擴(kuò)的DDR3存儲(chǔ)芯片。
[0028]如圖3所示,輸入數(shù)據(jù)緩存單元、后驗(yàn)概率緩存單元、采樣狀態(tài)緩存單元、輸出結(jié)果 緩存單元利用多核處理器外擴(kuò)的DDR3存儲(chǔ)芯片實(shí)現(xiàn),讀寫速度快,方便各內(nèi)核并行工作。 [0029] 本實(shí)施例中,多核處理器采用TI公司的KeyStone系列多核處理器(66AK2H06),處 理器具有2個(gè)ARM(Cortex-Al 5)和4個(gè)DSP核(TMS320C66x?系列),主頻為1 · 2GHz ;多核處理器 外擴(kuò)的DDR3主頻為1600MHz。
[0030]基于多核處理器的腦信號(hào)實(shí)時(shí)并行處理算法,包括以下步驟:
[0031] (I)ARM處理器中的數(shù)據(jù)接收單元通過千兆以太網(wǎng)接口接收外部設(shè)備(神經(jīng)數(shù)據(jù)采 集系統(tǒng))發(fā)送的神經(jīng)數(shù)據(jù),并將神經(jīng)數(shù)據(jù)放入輸入數(shù)據(jù)緩存單元。
[0032] (2)ARM處理器中的命令接收單元通過千兆以太網(wǎng)接口接收PC機(jī)發(fā)送的處理指令, 并通過MessageQ模塊發(fā)送操作命令給核一(即第一內(nèi)核);核一中的命令處理單元接收到 ARM發(fā)出的操作命令后,向核二輸出操作指令。
[0033] (3)核二(即第二內(nèi)核)中的狀態(tài)采樣單元根據(jù)操作指令從輸出結(jié)果緩存單元中提 取上一次的預(yù)測(cè)運(yùn)動(dòng)狀態(tài),通過狀態(tài)轉(zhuǎn)移方程計(jì)算出當(dāng)前預(yù)測(cè)運(yùn)動(dòng)狀態(tài)