神經(jīng)元計算單元、神經(jīng)元計算模塊及人工神經(jīng)網(wǎng)絡(luò)計算核的制作方法
【專利摘要】本發(fā)明涉及一種神經(jīng)元計算單元,包括:解碼模塊、地址權(quán)重模塊、乘法器以及累加器。所述解碼模塊接收并解析地址信息和軸突值信息。所述地址權(quán)重模塊接收所述地址信息并判斷該地址信息與自身存儲的地址信息是否匹配,若匹配則輸出該地址信息對應(yīng)的權(quán)重值。所述乘法器將所述軸突值信息與所述權(quán)重值相乘。所述累加器將乘法器輸出的計算結(jié)果進行累加并輸出。本發(fā)明提供的神經(jīng)元計算單元采用尋址與計算一體化設(shè)計思路,突破了固定規(guī)模全聯(lián)接的布局方式對神經(jīng)元計算單元數(shù)目的限制,增強了神經(jīng)網(wǎng)絡(luò)計算效率。
【專利說明】
神經(jīng)元計算單元、神經(jīng)元計算模塊及人工神經(jīng)網(wǎng)絡(luò)計算核
技術(shù)領(lǐng)域
[0001 ]本發(fā)明屬于人工神經(jīng)網(wǎng)絡(luò)計算領(lǐng)域,特別涉及一種神經(jīng)元計算單元。
【背景技術(shù)】
[0002] 人工神經(jīng)網(wǎng)絡(luò)是借鑒生物大腦突觸-神經(jīng)元結(jié)構(gòu)演化而成的計算模型,能并行地 進行大規(guī)模復(fù)雜運算,并具有高度非線性、自適應(yīng)性的特點。與生物大腦神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)類 似,人工神經(jīng)網(wǎng)絡(luò)可定義為由神經(jīng)元計算單元、軸突單元、樹突單元、突觸單元等基本結(jié)構(gòu) 組成。神經(jīng)元計算單元是最基本的計算單元,能進行簡單的數(shù)學運算;軸突單元負責輸出神 經(jīng)元計算結(jié)果,一個神經(jīng)元有一個軸突;樹突單元是神經(jīng)元計算的輸入,一個神經(jīng)元可有多 個樹突;突觸單元表示上一神經(jīng)元軸突和下一神經(jīng)元樹突聯(lián)接的權(quán)重;神經(jīng)元與神經(jīng)元間 通過軸突、突觸、樹突形成分層聯(lián)接從而構(gòu)成神經(jīng)網(wǎng)絡(luò)。
[0003] 人工神經(jīng)網(wǎng)絡(luò)由多層神經(jīng)元計算單元聯(lián)接而成,通過大量分布式的簡單運算單元 相互作用實現(xiàn)并行復(fù)雜非線性計算,具有強大的信息處理能力。在研究人工神經(jīng)網(wǎng)絡(luò)計算 模型時,常用的計算設(shè)備如通用計算機往往會出現(xiàn)計算效能低,耗時長,能耗高等缺點。近 年來,部分研究機構(gòu)針對人工神經(jīng)網(wǎng)絡(luò)的特點研發(fā)出通用的神經(jīng)網(wǎng)絡(luò)計算芯片,如IBM的 TrueNorth,初步達到了芯片中進行人工神經(jīng)網(wǎng)絡(luò)運算的目的。然而,目前多數(shù)神經(jīng)網(wǎng)絡(luò)計 算芯片采用的是將計算單元(神經(jīng)元)和聯(lián)接單元(突觸矩陣)分離的設(shè)計思路,由于采用了 固定規(guī)模全聯(lián)接的布局方式,從而限制了單核中神經(jīng)元的聯(lián)接數(shù),同時在非全聯(lián)接神經(jīng)網(wǎng) 絡(luò)的應(yīng)用中,也會造成未聯(lián)接突觸點位存儲資源的浪費。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,確有必要提供一種尋址與計算一體化設(shè)計的神經(jīng)網(wǎng)絡(luò)計算芯片。
[0005] -種神經(jīng)元計算單元,包括:解碼模塊,接收并解析地址信息和軸突值信息;地址 權(quán)重模塊,接收所述解碼模塊輸出的地址信息,并判斷該地址信息與地址權(quán)重模塊中存儲 的地址信息是否匹配,若匹配則輸出該地址信息對應(yīng)的權(quán)重值;乘法器,將所述解碼模塊輸 出的軸突值信息與所述地址權(quán)重模塊輸出的權(quán)重值相乘;累加器,將所述乘法器輸出的計 算結(jié)果進行累加并輸出。
[0006] -種神經(jīng)元計算模塊,包括:多個所述神經(jīng)元計算單元、發(fā)送緩存及接口、函數(shù)信 息表;所述多個神經(jīng)元計算單元接收來自外部的地址信息和軸突值信息,并對所述地址信 息進行判斷,若接收到的地址信息與自身地址權(quán)重模塊中存儲的地址信息匹配,則對該接 收到的信息進行神經(jīng)網(wǎng)絡(luò)計算,并將計算結(jié)果及地址有效標志發(fā)送至所述發(fā)送緩存及接 口,若接收到的地址信息與自身地址權(quán)重模塊中存儲的地址信息不匹配,則不對該接收到 的信息進行神經(jīng)網(wǎng)絡(luò)計算;所述發(fā)送緩存及接口用于在外部全局時鐘觸發(fā)時將所述多個神 經(jīng)元計算單元的計算結(jié)果及地址有效標志進行鎖存,以及將指定的神經(jīng)元計算結(jié)果輸出至 所述函數(shù)信息表并獲取轉(zhuǎn)換結(jié)果;所述函數(shù)信息表將所述神經(jīng)元計算結(jié)果轉(zhuǎn)換為對應(yīng)的函 數(shù)值。
[0007] -種人工神經(jīng)網(wǎng)絡(luò)計算核,包括:所述神經(jīng)元計算模塊、核控制器;所述核控制器 用于向所述發(fā)送緩存及接口發(fā)出神經(jīng)元周期和比較脈沖;所述發(fā)送緩存及接口還用于在接 收到所述核控制器發(fā)出的比較脈沖后,讀取序號與當前神經(jīng)元周期相同的神經(jīng)元地址有效 標志,若為有效,所述發(fā)送緩存及接口將該神經(jīng)元計算結(jié)果送入所述函數(shù)信息表并獲取轉(zhuǎn) 換結(jié)果,若為無效,所述發(fā)送緩存及接口向所述核控制器發(fā)出數(shù)據(jù)無效標志。
[0008] 與現(xiàn)有技術(shù)相比較,本發(fā)明提供的神經(jīng)元計算單元采用尋址與計算一體化設(shè)計思 路,突破了固定規(guī)模全聯(lián)接的布局方式對神經(jīng)元計算單元數(shù)目的限制,同時由于采取了地 址匹配的聯(lián)接方式,避免了無用聯(lián)接造成的資源浪費,從而實現(xiàn)柔性拓展以及存儲資源的 有效利用,增強了神經(jīng)網(wǎng)絡(luò)計算效率。
【附圖說明】
[0009] 圖1為本發(fā)明第一實施例提供的神經(jīng)元計算單元示意圖。
[0010] 圖2為本發(fā)明第二實施例提供的神經(jīng)元計算模塊示意圖。
[0011] 圖3為本發(fā)明第三實施例提供的人工神經(jīng)網(wǎng)絡(luò)計算核示意圖。
[0012] 圖4為本發(fā)明第四實施例提供的人工神經(jīng)網(wǎng)絡(luò)計算核示意圖。
[0013] 圖5為本發(fā)明第四實施例提供的人工神經(jīng)網(wǎng)絡(luò)計算核核間傳輸數(shù)據(jù)幀格式。
[0014] 圖6為本發(fā)明提供的人工神經(jīng)網(wǎng)絡(luò)計算核路由器數(shù)據(jù)收發(fā)流程圖。
[0015] 圖7為本發(fā)明提供的人工神經(jīng)網(wǎng)絡(luò)計算核神經(jīng)元計算模塊計算結(jié)果發(fā)送流程圖。
[0016] 圖8為本發(fā)明第五實施例提供的人工神經(jīng)網(wǎng)絡(luò)計算核示意圖。
[0017] 圖9為本發(fā)明提供的人工神經(jīng)網(wǎng)絡(luò)計算核組網(wǎng)示意圖。 「00181 士悪丑杜雜縣迨昍
如下【具體實施方式】將結(jié)合上述附圖進一步說明本發(fā)明。
【具體實施方式】
[0019] 下面將結(jié)合附圖及具體實施例,對本發(fā)明提供的神經(jīng)元計算單元作進一步的詳細 說明。
[0020] 請參見圖1,本發(fā)明第一實施例提供一種神經(jīng)元計算單元210,包括解碼模塊211、 地址權(quán)重模塊212、乘法器213、累加器214。
[0021] 所述解碼模塊211用于接收神經(jīng)網(wǎng)絡(luò)信息并解析。所述神經(jīng)網(wǎng)絡(luò)信息包括地址信 息和軸突值信息,所述解碼模塊211將其中的地址信息送入所述地址權(quán)重模塊212,將軸突 值信息送入所述乘法器213。
[0022 ]所述地址權(quán)重模塊212中存儲地址權(quán)重對列表,實現(xiàn)對輸入到該地址權(quán)重模塊212 的地址信息進行匹配。若輸入地址與地址權(quán)重模塊212中已存儲的地址信息匹配,則地址權(quán) 重模塊212向乘法器213輸出相對應(yīng)的權(quán)重值,輸出的權(quán)重值為一定范圍內(nèi)變化的數(shù)值;若 輸入地址與已存儲的地址信息不匹配,則地址權(quán)重模塊212向乘法器213輸出零值。此外,所 述地址權(quán)重模塊212還可以根據(jù)匹配判斷結(jié)果設(shè)置地址有效標志狀態(tài)。具體為,若輸入地址 與地址權(quán)重模塊212中已存儲的地址信息匹配,所述地址權(quán)重模塊212發(fā)出地址有效標志, 若輸入地址與地址權(quán)重模塊212中已存儲的地址信息不匹配,所述地址權(quán)重模塊212不改變 地址有效標志狀態(tài)。
[0023] 所述乘法器213接收所述地址權(quán)重模塊212輸出的權(quán)重值以及所述解碼模塊211輸 出的軸突值,將所述權(quán)重值與軸突值相乘,并將乘積送入累加器214。
[0024] 所述累加器214實現(xiàn)將乘法器213輸出的計算結(jié)果進行累加并輸出。
[0025] 本發(fā)明第一實施例提供的神經(jīng)元計算單元210實現(xiàn)了尋址與計算一體化,通過采 用尋址與計算一體化設(shè)計,突破了固定規(guī)模全聯(lián)接的布局方式對神經(jīng)元計算單元數(shù)目的限 制,同時由于采取了地址匹配的聯(lián)接方式,避免了無用聯(lián)接造成的資源浪費,從而實現(xiàn)柔性 拓展以及存儲資源的有效利用,增強了神經(jīng)網(wǎng)絡(luò)計算效率。
[0026] 本發(fā)明第二實施例進一步提供一種神經(jīng)元計算模塊,用于建立神經(jīng)元間聯(lián)接關(guān)系 及進行神經(jīng)元計算。請參見圖2,所述神經(jīng)元計算模塊200包括:多個神經(jīng)元計算單元210、發(fā) 送緩存及接口 220、函數(shù)信息表230。
[0027] 所述多個神經(jīng)元計算單元210接收來自外部的地址信息和軸突值信息,并對所述 地址信息進行判斷,若接收到的地址信息與自身存儲的地址信息匹配,則對該接收到的信 息進行神經(jīng)網(wǎng)絡(luò)計算,并將計算結(jié)果及地址有效標志發(fā)送至所述發(fā)送緩存及接口 220,若接 收到的地址信息與自身存儲的地址信息不匹配,則不對該接收到的信息進行神經(jīng)網(wǎng)絡(luò)計 算。
[0028] 本實施例中所述多個神經(jīng)元計算單元中每一神經(jīng)元計算單元進一步包括:解碼模 塊211、地址權(quán)重模塊212、乘法器213、累加器214。本實施例中的神經(jīng)元計算單元與本發(fā)明 第一實施例提供的神經(jīng)元計算單元210結(jié)構(gòu)與功能基本相同,本實施例中所述地址權(quán)重模 塊212還用于當輸入地址與地址權(quán)重模塊212中已存儲的地址信息匹配,則地址權(quán)重模塊 212向乘法器213輸出相對應(yīng)的權(quán)重值,并向發(fā)送緩存及接口 220發(fā)出地址有效標志;若輸入 地址與已存儲的地址信息不匹配,則地址權(quán)重模塊212向乘法器213輸出零值,且不改變地 址有效標志狀態(tài)。
[0029] 所述發(fā)送緩存及接口 220用于在外部全局時鐘gclk觸發(fā)時將所述多個神經(jīng)元計算 單元210的計算結(jié)果及地址有效標志進行鎖存,并清零各神經(jīng)元計算單元210的地址有效標 志,以及將指定的神經(jīng)元計算結(jié)果輸出至所述函數(shù)信息表230并獲取轉(zhuǎn)換結(jié)果。
[0030] 所述函數(shù)信息表230將所述神經(jīng)元計算結(jié)果轉(zhuǎn)換為對應(yīng)的函數(shù)值。
[0031] 本發(fā)明第二實施例提供的神經(jīng)元計算模塊中單個神經(jīng)元計算單元將尋址與計算 合二為一,可同時進行神經(jīng)元尋址與計算,通過采用尋址與計算一體化設(shè)計,突破了固定規(guī) 模全聯(lián)接的布局方式對神經(jīng)元計算單元數(shù)目的限制,同時由于采取了地址匹配的聯(lián)接方 式,避免了無用聯(lián)接造成的資源浪費,從而實現(xiàn)柔性拓展以及存儲資源的有效利用,增強了 神經(jīng)網(wǎng)絡(luò)計算效率。
[0032]本發(fā)明第三實施例提供一種人工神經(jīng)網(wǎng)絡(luò)計算核,包括:神經(jīng)元計算模塊、核控制 器。所述神經(jīng)元計算模塊用于進行神經(jīng)元計算,并在所述核控制器的控制下進入不同神經(jīng) 元計算結(jié)果的發(fā)送流程。所述神經(jīng)元計算模塊可以為現(xiàn)有的各種神經(jīng)元計算模塊,本實施 例中以本發(fā)明第二實施例提供的神經(jīng)元計算模塊200為例進行說明。具體請參見圖3,人工 神經(jīng)網(wǎng)絡(luò)計算核10包括神經(jīng)元計算模塊200、核控制器300。
[0033] 所述核控制器300通過發(fā)出神經(jīng)元周期N_peri和比較脈沖N_data_comp控制人工 神經(jīng)網(wǎng)絡(luò)計算核10進入不同神經(jīng)元計算結(jié)果的發(fā)送流程。當進入新的神經(jīng)元周期時,通過 輸出比較脈沖N_data_comp觸發(fā)神經(jīng)元計算結(jié)果的比較、輸出,并等待數(shù)據(jù)處理結(jié)果標志R_ N_data_doneSN_data_null有效以進入新的神經(jīng)元周期。所述核控制器300在全局時鐘 gclk觸發(fā)下進入新一輪神經(jīng)元計算結(jié)果的發(fā)送周期。
[0034]所述神經(jīng)元計算模塊200用于建立神經(jīng)元間聯(lián)接關(guān)系及進行神經(jīng)元計算,與本發(fā) 明第二實施例提供的神經(jīng)元計算模塊結(jié)構(gòu)與功能基本相同,本實施例中所述發(fā)送緩存及接 口 220在全局時鐘gclk觸發(fā)時將各神經(jīng)元計算單元210的計算結(jié)果及地址有效標志進行鎖 存,并清零各神經(jīng)元計算單元210的地址有效標志,此后所述核控制器300發(fā)出比較脈沖N_ data_comp,神經(jīng)元計算模塊200接收到所述比較脈WN_data_comp后,讀取序號與當前神經(jīng) 元周期N_peri相同的神經(jīng)元地址有效標志,若為有效,則將該神經(jīng)元計算結(jié)果送入函數(shù)信 息表230并獲取轉(zhuǎn)換結(jié)果,若為無效,則向核控制器300發(fā)出數(shù)據(jù)無效標志N_data_nul 1,驅(qū) 動核控制器300進入下一神經(jīng)元周期。所述發(fā)送緩存及接口 220當判斷地址有效標志為有效 時,將函數(shù)信息表230的轉(zhuǎn)換結(jié)果通過SPI接口輸出,同時清零對應(yīng)神經(jīng)元計算單元210的累 加器214,當判斷地址有效標志為無效時,不對累加器214進行處理,同時發(fā)出數(shù)據(jù)無效標志 N_data_null,驅(qū)動核控制器300進入下一神經(jīng)元周期。
[0035]本發(fā)明第三實施例提供的人工神經(jīng)網(wǎng)絡(luò)計算核10通過采用尋址與計算一體化設(shè) 計思路,可動態(tài)配置核中神經(jīng)元計算單元數(shù)目,也可改變單個神經(jīng)元計算單元的聯(lián)接數(shù)。 [0036]本發(fā)明第四實施例提供一種人工神經(jīng)網(wǎng)絡(luò)計算核,包括路由器模塊、神經(jīng)元計算 模塊、核控制器。所述神經(jīng)元計算模塊用于進行神經(jīng)元計算,并將神經(jīng)元計算結(jié)果發(fā)送至所 述路由器模塊。所述神經(jīng)元計算模塊可以為現(xiàn)有的各種神經(jīng)元計算模塊,本實施例中以本 發(fā)明第二實施例提供的神經(jīng)元計算模塊200為例進行說明。具體請參見圖4,人工神經(jīng)網(wǎng)絡(luò) 計算核20包括路由器模塊100、神經(jīng)元計算模塊200、核控制器300。
[0037]本實施例與第三實施例區(qū)別在于增加了路由器模塊100,現(xiàn)對該路由器模塊100進 行詳細說明。
[0038]所述路由器模塊100用于接收并解析外部輸入數(shù)據(jù),并將解析后的地址信息和軸 突值信息送入對應(yīng)的神經(jīng)元計算模塊200;以及將所述神經(jīng)元計算模塊200輸出的神經(jīng)元計 算結(jié)果發(fā)送至目標地址,并向核控制器300發(fā)送本幀數(shù)據(jù)處理完成標志。
[0039]所述路由器模塊100進一步包括:路由控制器110、核間交互緩存及接口、路由信息 表160、神經(jīng)元-路由器接口 170。其中所述核間交互緩存及接口進一步包括上左下右四個發(fā) 送接收緩存及接口,即上發(fā)送接收緩存及接口 120、左發(fā)送接收緩存及接口 130、下發(fā)送接收 緩存及接口 140、右發(fā)送接收緩存及接口 150。實際應(yīng)用中發(fā)送接收緩存及其數(shù)據(jù)接口的數(shù) 目可以根據(jù)具體需求而做適當?shù)淖兓?。所述路由器模塊100與外部數(shù)據(jù)交互采用串行外設(shè) 接口(Serial Peripheral Interface,SPI)。上左下右四個發(fā)送接收緩存為核間交互緩存 區(qū)。所述神經(jīng)元-路由器接口 170用于接收神經(jīng)元計算模塊200輸出的神經(jīng)元計算結(jié)果,本實 施例中采用SPI接口,僅能存儲一幀計算結(jié)果。
[0040] 所述路由器模塊100接收數(shù)據(jù)時,外部接口(包括相鄰路由器模塊的核間交互緩存 及接口以及本地神經(jīng)元接口)向該路由器模塊100發(fā)送緩存非空標志,提示本地路由器模塊 100進行數(shù)據(jù)接收。此時外部接口工作于從模式,本地接口工作于主模式。若本地路由器模 塊100中對應(yīng)方向接收緩存未滿,則按照先入先出規(guī)則發(fā)動一幀數(shù)據(jù)接收,并向路由控制器 110發(fā)出接收緩存非空標志,提示路由控制器110對接收緩存中數(shù)據(jù)幀進行處理;若本地路 由器模塊100中對應(yīng)方向接收緩存已滿,則不進行數(shù)據(jù)接收,外部發(fā)送緩存等待數(shù)據(jù)發(fā)送。
[0041] 所述路由器模塊100發(fā)送數(shù)據(jù)時,路由控制器110先讀取發(fā)送緩存狀態(tài)。若發(fā)送緩 存未滿,則將待發(fā)送數(shù)據(jù)幀按照先入先出規(guī)則寫入發(fā)送緩存,同時向外部接口送出發(fā)送緩 存非空標志,等待外部接收;若發(fā)送緩存已滿,則路由控制器110跳過此幀數(shù)據(jù)發(fā)送,讀取下 一幀數(shù)據(jù)并解析。
[0042] 所述路由控制器110是路由數(shù)據(jù)解析及傳輸控制的核心。其按照上發(fā)送接收緩存 及接口 120,左發(fā)送接收緩存及接口 130,下發(fā)送接收緩存及接口 140,右發(fā)送接收緩存及接 口 150,神經(jīng)元-路由器接口 170的順序依次讀取各接收緩存是否為空。若為非空,則讀取一 幀數(shù)據(jù)進行解析;若為空,則跳至下一方向接收緩存。
[0043]請參見圖5,該圖為人工神經(jīng)網(wǎng)絡(luò)計算核核間傳輸數(shù)據(jù)幀格式,即核間交互緩存中 存儲的一幀數(shù)據(jù)格式,該數(shù)據(jù)幀包括:目標核地址字段、核內(nèi)神經(jīng)元計算模塊地址字段、軸 突地址字段、神經(jīng)元輸出字段。具體在本實施例中,所述目標核地址字段進一步包括:左右 方向目標核地址字段、上下方向目標核地址字段。其中,左右方向目標核地址字段、上下方 向目標核地址字段分別為8比特有符號數(shù),最高位為O代表向左或向上,最高位為1代表向右 或向下;核內(nèi)神經(jīng)元計算模塊地址字段為4比特無符號數(shù),代表某個核內(nèi)神經(jīng)元計算模塊; 軸突地址字段為8比特無符號數(shù),用于神經(jīng)元計算模塊內(nèi)神經(jīng)元計算單元進行地址匹配;神 經(jīng)元輸出字段分為8比特無符號數(shù)。所述神經(jīng)元-路由器接口 170存儲的數(shù)據(jù)幀格式僅包括 圖5數(shù)據(jù)幀中的神經(jīng)元輸出字段。單個人工神經(jīng)網(wǎng)絡(luò)計算核發(fā)出數(shù)據(jù)幀所能到達的網(wǎng)絡(luò)位 置、核中神經(jīng)元計算模塊數(shù)目及單個神經(jīng)元計算單元所能聯(lián)接的軸突地址數(shù)目上限由該核 間傳輸數(shù)據(jù)幀確定。需要說明的是,本實施例只是給出了一種具體的數(shù)據(jù)幀形式,實際應(yīng)用 中數(shù)據(jù)幀中各字段的順序及比特數(shù)可做適當調(diào)整。
[0044] 所述路由控制器110讀取核間交互緩存一幀數(shù)據(jù)后進行數(shù)據(jù)解析。若為發(fā)送至本 地的數(shù)據(jù)幀,即數(shù)據(jù)幀的左右方向目標核地址、上下方向目標核地址均為〇,則去掉數(shù)據(jù)幀 中的目標核地址字段,同時解析核內(nèi)神經(jīng)元計算模塊地址并將軸突地址和神經(jīng)元輸出兩字 段送入目標神經(jīng)元計算模塊中,而后清除接收緩存中被解析數(shù)據(jù)幀;若不為發(fā)送至本地的 數(shù)據(jù)幀,則按照先左右,后上下的順序?qū)⒛繕撕说刂窚p1,而后檢測目標發(fā)送緩存是否為滿, 若為滿則不作處理同時跳至讀取下一方向接收緩存,若不為滿則將處理后的數(shù)據(jù)幀送入發(fā) 送緩存中等待發(fā)送,同時清除接收緩存中被解析數(shù)據(jù)幀。
[0045] 所述路由控制器110讀取神經(jīng)元-路由器接口 170接收緩存一幀數(shù)據(jù)后,以核控制 器300輸出的當前神經(jīng)元周作路由信息表160的輸入,提取路由信息表160中存儲 的不同神經(jīng)元目標地址,并將地址與讀取的神經(jīng)元輸出進行組幀,同時檢測目標發(fā)送緩存 是否為滿,若為滿則不作處理同時跳至讀取下一方向接收緩存,若不為滿則將處理后的數(shù) 據(jù)幀送入發(fā)送緩存中等待發(fā)送,同時清除神經(jīng)元-路由器接口 170接收緩存中被解析數(shù)據(jù)幀 并向核控制器300發(fā)送本幀數(shù)據(jù)處理完成標志R_N_data_done,驅(qū)動核控制器300進入下一 神經(jīng)元周期。所述神經(jīng)元-路由器接口 170在神經(jīng)元計算模塊200發(fā)出數(shù)據(jù)有效標志N_data_ en后,若接收緩存未滿則啟動接收一幀數(shù)據(jù),若接收緩存已滿則保持接收等待。神經(jīng)元計算 模塊200在向神經(jīng)元-路由器接口 170成功發(fā)送一幀數(shù)據(jù)后清空數(shù)據(jù)有效標志N_data_en。
[0046] 所述路由信息表160中存儲的是不同神經(jīng)元的目標地址,輸入為當前神經(jīng)元周期, 輸出為對應(yīng)的目標地址。
[0047] 所述人工神經(jīng)網(wǎng)絡(luò)計算核20運行流程包括路由器數(shù)據(jù)收發(fā)和神經(jīng)元計算模塊計 算結(jié)果發(fā)送兩個部分,請參見圖6,所述路由器數(shù)據(jù)收發(fā)包含以下步驟: S101,路由器模塊100等待接收神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)包; S102,路由器模塊100接收到神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)包并解析; 5103, 路由器模塊100判斷接收到的神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)包是否發(fā)往本地,若是則執(zhí)行S105, 若否則執(zhí)行S104; 5104, 按先左右后上下的順序?qū)⒃撋窠?jīng)網(wǎng)絡(luò)數(shù)據(jù)包中目標核地址減1后送入發(fā)送緩存, 返回S101; S105,將該神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)包中的軸突地址和軸突值送入神經(jīng)元計算模塊200,該神經(jīng)網(wǎng) 絡(luò)數(shù)據(jù)包被傳遞至每個神經(jīng)元計算單元; 5106, 每個神經(jīng)元計算單元判斷所述軸突地址是否與自身存儲地址匹配,若是則執(zhí)行 S107,若否則返回SlOl; 5107, 神經(jīng)元計算單元輸出與所述軸突地址對應(yīng)的權(quán)重值,將該權(quán)重值與所述軸突值 相乘后送入累加器,返回S101。
[0048] 請參見圖7,所述神經(jīng)元計算模塊200計算結(jié)果發(fā)送包含以下步驟: S201,等待全局時鐘觸發(fā)生效; 5202, 判斷全局時鐘觸發(fā)是否生效,若是則執(zhí)行S203,若否則返回S201; 5203, 將各神經(jīng)元計算模塊累加器結(jié)果鎖存至對應(yīng)的發(fā)送緩存及接口; 5204, 判斷各發(fā)送緩存及接口是否接收到對應(yīng)的核控制器發(fā)出的比較脈沖,若是則執(zhí) 行S205,若否則返回S204; 5205, 讀取地址數(shù)值與當前神經(jīng)元周期相同的神經(jīng)元計算模塊發(fā)送緩存中及接口中的 數(shù)據(jù); S206,判斷該數(shù)據(jù)是否有效,若是則執(zhí)行S207,若否則執(zhí)行S215; S207,將該數(shù)據(jù)輸入函數(shù)查找表并輸出結(jié)果; 5208, 判斷該輸出結(jié)果是否有效,若是則執(zhí)行S209,若否則執(zhí)行S215; 5209, 將該輸出結(jié)果送至緩存等待路由器接收,清零對應(yīng)神經(jīng)元累加器; 5210, 等待路由器空閑,若路由器空閑則執(zhí)行S211,若路由器不空閑則返回S210; S211,路由器模塊啟動一次神經(jīng)元計算模塊緩存數(shù)據(jù)接收; 5212, 判斷神經(jīng)元計算模塊發(fā)出信息是否處理完成,若是則執(zhí)行S213,若否則返回 S212; 5213, 路由器模塊向核控制器發(fā)信息處理完成脈沖; 5214, 核控制器判斷是否最后一個神經(jīng)元周期,若是則返回S201,若否則執(zhí)行S216; 5215, 向核控制器發(fā)信息數(shù)據(jù)無效脈沖; 5216, 核控制器驅(qū)動神經(jīng)元周期更替,發(fā)出比較脈沖,返回S204。
[0049] 本發(fā)明第四實施例提供的人工神經(jīng)網(wǎng)絡(luò)計算核20采用單路由器單神經(jīng)元計算模 塊的工作方式,通過路由器模塊100實現(xiàn)多個人工神經(jīng)網(wǎng)絡(luò)計算核20的組網(wǎng)。
[0050] 本發(fā)明第五實施例提供一種人工神經(jīng)網(wǎng)絡(luò)計算核,包括一路由器模塊、多個神經(jīng) 元計算模塊、多個核控制器,所述多個神經(jīng)元計算模塊與所述多個核控制器一一對應(yīng)。本實 施例與第三實施例區(qū)別在于,第三實施例為單路由單神經(jīng)元計算模塊的配置,而本實施例 為單路由多神經(jīng)元計算模塊的配置,即單一路由器模塊可與多個神經(jīng)元計算模塊建立聯(lián) 接。
[0051] 本實施例具體以單路由四神經(jīng)元計算模塊為例進行說明,實際應(yīng)用中經(jīng)元計算模 塊的數(shù)量可以根據(jù)具體需求而做適當?shù)淖兓?。請參見圖8,一種人工神經(jīng)網(wǎng)絡(luò)計算核30,包 括路由器模塊400、第一神經(jīng)元計算模塊200a、第一核控制器300a、第二神經(jīng)元計算模塊 200b、第二核控制器300b、第三神經(jīng)元計算模塊200c、第三核控制器300c、第四神經(jīng)元計算 模塊200d、第四核控制器300d。
[0052]所述路由器模塊400與第三實施例中的路由器模塊100區(qū)別在于,路由器模塊400 包括了多個神經(jīng)元-路由器接口,即第一神經(jīng)元-路由器接口 471、第二神經(jīng)元-路由器接口 472、第三神經(jīng)元-路由器接口 473、第四神經(jīng)元-路由器接口 474。每組核控制器、神經(jīng)元計算 模塊、神經(jīng)元-路由器接口分別同路由控制器410按實施例三中單路由單神經(jīng)元計算模塊的 配置方式建立聯(lián)接。
[0053]本發(fā)明第四實施例提供的人工神經(jīng)網(wǎng)絡(luò)計算核30中一個路由器模塊對應(yīng)多個神 經(jīng)元計算模塊,若該多個神經(jīng)元計算模塊具有相同或相近的功能,可以實現(xiàn)聚類計算,可降 低路由器節(jié)點數(shù)、提高傳輸帶寬。實現(xiàn)計算核的柔性拓展以及存儲資源的有效利用,以增強 計算核的適應(yīng)性,避免額外的資源開銷。
[0054]請參見圖9,本發(fā)明進一步提供一種人工神經(jīng)網(wǎng)絡(luò)計算系統(tǒng),包括多個人工神經(jīng)網(wǎng) 絡(luò)計算核40,該多個人工神經(jīng)網(wǎng)絡(luò)計算核40通過路由器模塊100實現(xiàn)多個方向的相互聯(lián)接。 實施例中僅給出了包含有9個人工神經(jīng)網(wǎng)絡(luò)計算核40的情形,且每一人工神經(jīng)網(wǎng)絡(luò)計算核 40包含有4個發(fā)送接收緩存及接口,實現(xiàn)上下左右4個方向的相互聯(lián)接。可以理解,實際應(yīng)用 中人工神經(jīng)網(wǎng)絡(luò)計算核的數(shù)目及每一人工神經(jīng)網(wǎng)絡(luò)計算核中包含的發(fā)送接收緩存及接口 數(shù)目可以依據(jù)實際的應(yīng)用情形而改變。
[0055] 本實施例提供了一種通過將多個人工神經(jīng)網(wǎng)絡(luò)計算核40組網(wǎng)形成的人工神經(jīng)網(wǎng) 絡(luò)計算系統(tǒng),實現(xiàn)了多人工神經(jīng)網(wǎng)絡(luò)計算核40的網(wǎng)絡(luò)連接。
[0056] 另外,本領(lǐng)域技術(shù)人員還可以在本發(fā)明精神內(nèi)做其它變化,當然,這些依據(jù)本發(fā)明 精神所做的變化,都應(yīng)包含在本發(fā)明所要求保護的范圍之內(nèi)。
【主權(quán)項】
1. 一種神經(jīng)元計算單元,其特征在于,包括: 解碼模塊,接收并解析地址信息和軸突值信息; 地址權(quán)重模塊,接收所述解碼模塊輸出的地址信息,并判斷該地址信息與地址權(quán)重模 塊中存儲的地址信息是否匹配,若匹配則輸出該地址信息對應(yīng)的權(quán)重值; 乘法器,將所述解碼模塊輸出的軸突值信息與所述地址權(quán)重模塊輸出的權(quán)重值相乘; 以及 累加器,將所述乘法器輸出的計算結(jié)果進行累加并輸出。2. 如權(quán)利要求1所述的神經(jīng)元計算單元,其特征在于,所述地址權(quán)重模塊還用于,當輸 入的地址信息與地址權(quán)重模塊中存儲的地址信息不匹配時,所述地址權(quán)重模塊輸出零值。3. 如權(quán)利要求2所述的神經(jīng)元計算單元,其特征在于,所述地址權(quán)重模塊還用于,當輸 入的地址信息與地址權(quán)重模塊中存儲的地址信息匹配時,發(fā)送地址有效標志。4. 一種神經(jīng)元計算模塊,其特征在于,包括:多個如權(quán)利要求3所述的神經(jīng)元計算單元、 發(fā)送緩存及接口、函數(shù)信息表; 所述多個神經(jīng)元計算單元,接收來自外部的地址信息和軸突值信息,并對所述地址信 息進行判斷,若接收到的地址信息與自身地址權(quán)重模塊中存儲的地址信息匹配,則對該接 收到的信息進行神經(jīng)網(wǎng)絡(luò)計算,并將計算結(jié)果及地址有效標志發(fā)送至所述發(fā)送緩存及接 口,若接收到的地址信息與自身地址權(quán)重模塊中存儲的地址信息不匹配,則不對該接收到 的信息進行神經(jīng)網(wǎng)絡(luò)計算; 所述發(fā)送緩存及接口,用于在外部全局時鐘觸發(fā)時將所述多個神經(jīng)元計算單元的計算 結(jié)果及地址有效標志進行鎖存,以及將指定的神經(jīng)元計算結(jié)果輸出至所述函數(shù)信息表并獲 取轉(zhuǎn)換結(jié)果; 所述函數(shù)信息表,將所述神經(jīng)元計算結(jié)果轉(zhuǎn)換為對應(yīng)的函數(shù)值。5. 如權(quán)利要求4所述的神經(jīng)元計算模塊,其特征在于,所述發(fā)送緩存及接口還用于,在 外部全局時鐘觸發(fā)時清零所述多個神經(jīng)元計算單元的地址有效標志。6. -種人工神經(jīng)網(wǎng)絡(luò)計算核,其特征在于,包括:如權(quán)利要求4所述的神經(jīng)元計算模塊、 核控制器; 所述核控制器,用于向所述發(fā)送緩存及接口發(fā)出神經(jīng)元周期和比較脈沖; 所述發(fā)送緩存及接口,還用于在接收到所述核控制器發(fā)出的比較脈沖后,讀取序號與 當前神經(jīng)元周期相同的神經(jīng)元地址有效標志,若為有效,所述發(fā)送緩存及接口將該神經(jīng)元 計算結(jié)果送入所述函數(shù)信息表并獲取轉(zhuǎn)換結(jié)果,若為無效,所述發(fā)送緩存及接口向所述核 控制器發(fā)出數(shù)據(jù)無效標志。7. 如權(quán)利要求6所述的人工神經(jīng)網(wǎng)絡(luò)計算核,其特征在于,所述發(fā)送緩存及接口還用于 判斷所述轉(zhuǎn)函數(shù)信息表的換結(jié)果是否有效,若為有效,所述發(fā)送緩存及接口將該轉(zhuǎn)換結(jié)果 輸出,若為無效,所述發(fā)送緩存及接口向所述核控制器發(fā)出數(shù)據(jù)無效標志。8. 如權(quán)利要求7所述的人工神經(jīng)網(wǎng)絡(luò)計算核,其特征在于,所述發(fā)送緩存及接口通過串 行外設(shè)接口將所述轉(zhuǎn)換結(jié)果輸出。9. 如權(quán)利要求6或7所述的人工神經(jīng)網(wǎng)絡(luò)計算核,其特征在于,所述核控制器還用于在 接收到所述發(fā)送緩存及接口發(fā)送的數(shù)據(jù)無效標志后進入下一神經(jīng)元周期。10. 如權(quán)利要求7所述的人工神經(jīng)網(wǎng)絡(luò)計算核,其特征在于,所述發(fā)送緩存及接口還用 于當所述轉(zhuǎn)函數(shù)信息表的換結(jié)果為有效時,清零對應(yīng)神經(jīng)元計算單元的累加器。
【文檔編號】G06N3/06GK106056211SQ201610354205
【公開日】2016年10月26日
【申請日】2016年5月25日
【發(fā)明人】馬騁, 張震, 李晶, 王世凱, 熊劍平, 朱榮
【申請人】清華大學