本發(fā)明屬于通訊技術(shù)領(lǐng)域,尤其涉及一種基于click控制器的全異步人工神經(jīng)元網(wǎng)絡(luò)的通訊方法。
背景技術(shù):
采用mesh結(jié)構(gòu)的路由算法是noc片上路由模塊的核心算法部分,由于現(xiàn)有的noc的通訊機(jī)制采用全局異步、局部同步的技術(shù),因而基于noc片上路由xy路由算法是采用時(shí)鐘信號控制,由于每次都要受到時(shí)鐘邊沿的觸發(fā),則存在等待時(shí)間,這樣會浪費(fèi)大量的時(shí)間,運(yùn)算速度慢,造成noc片上路由模塊數(shù)據(jù)流通速率低,且該算法的路徑可預(yù)計(jì)性差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于click控制器的全異步人工神經(jīng)元網(wǎng)絡(luò)的通訊方法,旨在解決上述已有技術(shù)中存在的基于noc片上路由xy路由算法是采用時(shí)鐘信號控制,由于每次都要受到時(shí)鐘邊沿的觸發(fā),則存在等待時(shí)間,浪費(fèi)大量的時(shí)間,運(yùn)算速度慢,造成noc片上路由模塊數(shù)據(jù)流通速率低,且該算法的路徑可預(yù)計(jì)性差的問題。
本發(fā)明是這樣實(shí)現(xiàn)的,一種基于click控制器的全異步人工神經(jīng)元網(wǎng)絡(luò)的通訊方法,該方法包括:
(1)二級微流水線(pipeline_module_0)微流水控制模塊為一條異步(pipeline)微流水線控制模塊,對交換節(jié)點(diǎn)(router_node_module)模塊中的數(shù)據(jù)流通進(jìn)行控制;所述二級微流水線(pipeline_module_0)微流水控制模塊通過local_in、east_in、west_in、north_in_r、south_in_r五個(gè)方向上的使能信號local_in_r、east_in_r、west_in_r、north_in_r、south_in_r共同影響in_r_0來觸發(fā),觸發(fā)機(jī)制為任意方向使能信號均能影響in_r_0觸發(fā);
(2)流水線通過計(jì)數(shù)器(count)模塊對輸入的所述五個(gè)方向上的使能信號local_in_r,east_in_r,west_in_r,north_in_r,south_in_r進(jìn)行奇偶計(jì)數(shù);
(3)當(dāng)in_r_0觸發(fā)時(shí),流水線控制模塊開始工作,local_in、west_in、east_in、north_in、south_in通過32位選擇器(mux_32bit_module)模塊,接收仲裁器仲裁結(jié)果,實(shí)現(xiàn)對五向輸入的選擇輸出,輸出結(jié)果為total_in,然后通過三級fire信號對觸發(fā)器進(jìn)行觸發(fā)作用,實(shí)現(xiàn)數(shù)據(jù)流的流通;
(4)五個(gè)方向數(shù)據(jù)進(jìn)入通訊節(jié)點(diǎn)模塊以后,通過一級微流水線(pipeline_module_1)微流水控制模塊中設(shè)置的五條同構(gòu)的異步微流水線數(shù)據(jù)流進(jìn)行管控;首先每條微流水線的fire_0~fire_3對四級緩沖數(shù)據(jù)流通進(jìn)行控制,其次fire_4將請求信號通過觸發(fā)器傳入仲裁器中,仲裁器對請求信號進(jìn)行仲裁,將輸出結(jié)果送入觸發(fā)器當(dāng)中,隨后fire_5觸發(fā)仲裁器,使其優(yōu)先級進(jìn)行跳變,接著通過fire_6將仲裁結(jié)果通過觸發(fā)器傳入通訊節(jié)點(diǎn)內(nèi)部處理模塊,作為內(nèi)部的二級微流水線(pipeline_module_0)微流水控制模塊的使能信號,當(dāng)數(shù)據(jù)處理完畢,一級微流水線的fire_7使得仲裁器優(yōu)先級跳變,最終數(shù)據(jù)在fire_8對觸發(fā)器的觸發(fā)后,將結(jié)果輸出通訊節(jié)點(diǎn)模塊。
進(jìn)一步地,所述二級微流水線(pipeline_module_0)微流水控制模塊的三級fire信號中數(shù)據(jù)傳輸方法如下:
第一級fire信號將所述total_in數(shù)據(jù)通過觸發(fā)器傳入32位選擇器(mux_32bit_module)模塊;數(shù)據(jù)進(jìn)入模塊后對數(shù)據(jù)在x軸東西方向的流向進(jìn)行判斷,隨后將數(shù)據(jù)傳入x軸方向數(shù)據(jù)判斷(data_x_dispose_32bit_module)模塊;傳入x軸方向數(shù)據(jù)判斷(data_x_dispose_32bit_module)模塊的地址數(shù)據(jù)信息對x軸方向上數(shù)據(jù)進(jìn)行分析,判定x軸方向上數(shù)據(jù)是否為空;當(dāng)x軸方向上數(shù)據(jù)為空時(shí),數(shù)據(jù)將會送入y軸方向數(shù)據(jù)判斷(data_y_dispose_32bit_module)模塊;傳入y軸方向數(shù)據(jù)判斷(data_y_dispose_32bit_module)模塊的地址數(shù)據(jù)信息對y軸方向上的正負(fù)方向進(jìn)行判斷輸出north_message,south_message;
第二級fire信號將所述north_message,south_message數(shù)據(jù)通過觸發(fā)器傳入下一級數(shù)據(jù)判斷模塊;傳入數(shù)據(jù)判斷模塊的地址數(shù)據(jù)信息對y軸方向上數(shù)據(jù)進(jìn)行分析,判定y軸方向上數(shù)據(jù)是否為空;當(dāng)y軸方向上數(shù)據(jù)為空時(shí),數(shù)據(jù)傳入觸發(fā)器,最終將會通過第三級fire信號觸發(fā)由本地輸出端口local_out輸出。
進(jìn)一步地,所述第一級fire信號中的數(shù)據(jù)傳輸過程中,當(dāng)x軸方向上數(shù)據(jù)不為空時(shí),數(shù)據(jù)將會傳入觸發(fā)器最終將會通過第三級fire信號觸發(fā),由west_out,east_out輸出。
進(jìn)一步地,所述第二級fire信號中的數(shù)據(jù)傳輸過程中,當(dāng)y軸方向上數(shù)據(jù)不為空時(shí),數(shù)據(jù)將會傳入觸發(fā)器最終將會通過第三級fire信號觸發(fā),由south_out,north_out輸出。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:本發(fā)明提供的基于click控制器的全異步人工神經(jīng)元網(wǎng)絡(luò)的通訊方法,由于通過純異步信號控制實(shí)現(xiàn)網(wǎng)絡(luò)通訊,異步電路由于采用握手協(xié)議產(chǎn)生各流水段局部時(shí)鐘,取代了目前noc片上路由實(shí)現(xiàn)中的全局異步、局部同步的控制機(jī)制,因而數(shù)據(jù)傳輸過程中消除了時(shí)鐘信號,節(jié)約時(shí)間,加快運(yùn)行速度,從而提高運(yùn)算速度,最終提高noc片上路由模塊數(shù)據(jù)流通速率;另外,該算法具有路徑可預(yù)計(jì)性,性能穩(wěn)定,可重用性和魯棒性好。
附圖說明
圖1是本發(fā)明實(shí)施例提供的基于異步控制的片上路由網(wǎng)通信模塊的一種結(jié)構(gòu)示意圖。
圖2是本發(fā)明實(shí)施例提供的交換節(jié)點(diǎn)(router_node_module)模塊的示意圖。
圖3是本發(fā)明實(shí)施例提供的異步微流水線(pipeline)控制模塊的電路圖。
圖4是本發(fā)明實(shí)施例提供的二級微流水線(pipeline_module_0)微流水控制模塊的控制示意圖。
圖5是本發(fā)明實(shí)施例提供的一級微流水線(pipeline_module_1)微流水控制模塊的控制示意圖。
圖6是本發(fā)明實(shí)施例提供的二級微流水線(pipeline_module_0)微流水控制控制下的組合邏輯(router_logic_module)模塊的結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明的應(yīng)用原理作進(jìn)一步描述。
基于異步控制的片上路由網(wǎng)通信模塊如圖1所示,圖1為4乘4路由網(wǎng)狀結(jié)構(gòu),每個(gè)路由節(jié)點(diǎn)通過網(wǎng)絡(luò)連接,每個(gè)資源節(jié)點(diǎn)通過本地輸入local_in,輸出local_out與之匹配的交換節(jié)點(diǎn)交互,通過發(fā)送帶有地址與數(shù)據(jù)的32bit信息流,傳送給交換節(jié)點(diǎn),通過路由網(wǎng)中的交換節(jié)點(diǎn)之間的通信,實(shí)現(xiàn)資源節(jié)點(diǎn)之間的數(shù)據(jù)流通。并且在邊緣節(jié)點(diǎn)上,在路由網(wǎng)的四周也掛載了資源節(jié)點(diǎn)。
每個(gè)交換節(jié)點(diǎn)的結(jié)構(gòu)如圖2所示,每個(gè)交換節(jié)點(diǎn)中包括東南西北四個(gè)方向的數(shù)據(jù)流通通道,并含有本地輸入輸出的數(shù)據(jù)流通通道,以便與本地的資源節(jié)點(diǎn)進(jìn)行數(shù)據(jù)流通,實(shí)現(xiàn)資源節(jié)點(diǎn)與交換節(jié)點(diǎn)的交互,其路由節(jié)點(diǎn)的模塊化層級與圖2中所展示的一樣。
異步微流水線(pipeline)控制模塊的電路圖如圖3所示,當(dāng)一個(gè)組合功能模塊之間通過寄存器來對輸出數(shù)據(jù)進(jìn)行寄存,通過異步微流水線(pipeline)控制電路對寄存器進(jìn)行觸發(fā),使得數(shù)據(jù)能流入下一級的組合功能模塊,從而達(dá)到數(shù)據(jù)流通,并對數(shù)據(jù)的輸出輸入正確性進(jìn)行的合理的管控,達(dá)到組合功能模塊輸出結(jié)果可控化的效果。
數(shù)據(jù)傳輸過程如下:
二級微流水線(pipeline_module_0)微流水控制模塊為一條異步微流水線(pipeline)控制模塊對交換節(jié)點(diǎn)(router_node_module)模塊中的數(shù)據(jù)流通進(jìn)行控制,所述流水線控制模塊通過local_in、east_in、west_in、north_in_r、south_in_r五個(gè)方向上的使能信號local_in_r、east_in_r、west_in_r、north_in_r、south_in_r共同影響in_r_0來觸發(fā),觸發(fā)機(jī)制為任意方向使能信號均能影響in_r_0觸發(fā);圖4所示模塊后續(xù)微流水線的使能信號由選擇器select對輸入信號的特征進(jìn)行判斷,隨后流水線通過count計(jì)數(shù)器模塊對輸入的五個(gè)方向上的使能信號local_in_r,east_in_r,west_in_r,north_in_r,south_in_r進(jìn)行奇偶計(jì)數(shù),實(shí)現(xiàn)對后續(xù)微流水的觸發(fā),由于異步微流水線(pipeline)的使能信號是上升下降沿都可以對流水線進(jìn)行觸發(fā),從而達(dá)到流水線對數(shù)據(jù)流管理的目的。當(dāng)in_r_0觸發(fā)時(shí),流水線控制模塊開始工作,通過三級fire信號對觸發(fā)器進(jìn)行觸發(fā)作用,實(shí)現(xiàn)數(shù)據(jù)流的流通。
五個(gè)方向數(shù)據(jù)進(jìn)入通訊節(jié)點(diǎn)模塊以后,通過一級微流水線(pipeline_module_1)微流水控制模塊中設(shè)置的五條同構(gòu)的異步微流水線數(shù)據(jù)流進(jìn)行管控;首先每條微流水線的fire_0~fire_3對四級緩沖數(shù)據(jù)流通進(jìn)行控制,其次fire_4將請求信號通過觸發(fā)器傳入仲裁器中,仲裁器對請求信號進(jìn)行仲裁,將輸出結(jié)果送入觸發(fā)器當(dāng)中,隨后fire_5觸發(fā)仲裁器,使其優(yōu)先級進(jìn)行跳變,接著通過fire_6將仲裁結(jié)果通過觸發(fā)器傳入通訊節(jié)點(diǎn)內(nèi)部處理模塊,作為內(nèi)部的二級微流水線(pipeline_module_0)微流水控制模塊的使能信號,當(dāng)數(shù)據(jù)處理完畢,一級微流水線的fire_7使得仲裁器優(yōu)先級跳變,最終數(shù)據(jù)在fire_8對觸發(fā)器的觸發(fā)后,將結(jié)果輸出通訊節(jié)點(diǎn)模塊。
local_in、west_in、east_in、north_in、south_in通過32位選擇器(mux_32bit_module)模塊,接收仲裁器仲裁結(jié)果,實(shí)現(xiàn)對五向輸入的選擇輸出,輸出結(jié)果為total_in;二級微流水線(pipeline_module_0)微流水控制模塊的第一級fire信號將total_in數(shù)據(jù)通過觸發(fā)器傳入32位選擇器(mux_32bit_module)模塊;當(dāng)數(shù)據(jù)進(jìn)入模塊后對數(shù)據(jù)在x軸東西方向的流向進(jìn)行判斷,隨后將數(shù)據(jù)傳入x軸方向數(shù)據(jù)判斷(data_x_dispose_32bit_module)模塊;傳入x軸方向數(shù)據(jù)判斷(data_x_dispose_32bit_module)模塊的地址數(shù)據(jù)信息對x軸方向上數(shù)據(jù)進(jìn)行分析,如果x軸方向上數(shù)據(jù)不為空,數(shù)據(jù)將會傳入觸發(fā)器最終將會通過流水線模塊的第三級fire信號觸發(fā),由west_out,east_out輸出,如果x軸方向上數(shù)據(jù)為空,數(shù)據(jù)將會送入y軸方向數(shù)據(jù)判斷(data_y_dispose_32bit_module)模塊;傳入y軸方向數(shù)據(jù)判斷(data_y_dispose_32bit_module)模塊的地址數(shù)據(jù)信息對y軸方向上的正負(fù)方向進(jìn)行判斷輸出north_message,south_message;
二級微流水線(pipeline_module_0)微流水控制模塊的第二級fire信號將north_message,south_message數(shù)據(jù)通過觸發(fā)器傳入下一級data_dispose_32bit_module模塊;傳入data_dispose_32bit_module模塊的地址數(shù)據(jù)信息對y軸方向上數(shù)據(jù)進(jìn)行分析,如果y軸方向上數(shù)據(jù)不為空,則數(shù)據(jù)將會從傳入觸發(fā)器最終將會通過流水線模塊的第三級fire信號觸發(fā),由south_out,north_out輸出,如果y軸方向上數(shù)據(jù)為空,則數(shù)據(jù)傳入觸發(fā)器最終將會通過流水線模塊的第三級fire信號觸發(fā)由本地輸出端口local_out輸出;
二級微流水線(pipeline_module_0)微流水控制模塊的第三級fire信號將local_out,east_out,west_out,south_out,north_out數(shù)據(jù)通過觸發(fā)器輸出。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。