本發(fā)明涉及一種異步仲裁電路領(lǐng)域,尤其是一種基于雙軌編碼四相握手協(xié)議的異步仲裁器。
背景技術(shù):
人工神經(jīng)網(wǎng)絡(luò)是人工智能領(lǐng)域近年來興起的研究熱點,它是由人工完成的模仿動物神經(jīng)網(wǎng)絡(luò)的行為特征和連接關(guān)系,大量簡單元件廣泛互連而成的復(fù)雜網(wǎng)絡(luò)系統(tǒng)。目前關(guān)于人工神經(jīng)網(wǎng)絡(luò)的研究不斷深入,已經(jīng)廣泛應(yīng)用于模式識別、語音分析與識別、計算機視覺等感官信號處理領(lǐng)域,并且表現(xiàn)出了優(yōu)異的性能。
目前,以硅材料為基礎(chǔ)的超大規(guī)模集成電路技術(shù)已經(jīng)很成熟,越來越多的研究采用cmos工藝來設(shè)計并制造專用神經(jīng)網(wǎng)絡(luò)芯。這些硬件電路實現(xiàn)的神經(jīng)網(wǎng)絡(luò)中的信息處理通常具有并發(fā)性、異步事件驅(qū)動等特點。例如,多個神經(jīng)元很可能同時產(chǎn)生脈沖信號。而異步電路不需要時鐘信號,采用握手協(xié)議處理異步事件,不需要處理事件的時刻異步電路處于等待狀態(tài),只消耗極少功率。因此,異步電路被越來越多的應(yīng)用于人工神經(jīng)網(wǎng)絡(luò)專用芯片中以處理各種異步事件,如輸入輸出的神經(jīng)脈沖。神經(jīng)脈沖的產(chǎn)生具有高度的并發(fā)性,輸入和輸出端都可能需要同時處理多個脈沖信號,但是通常我們一個時刻只能選擇其中之一進行處理。仲裁器電路在這種場合被廣泛使用,它可以從多個輸入通道中選擇其中之一進行輸出。
傳統(tǒng)的異步仲裁器一般只能夠直接應(yīng)用于捆綁數(shù)據(jù)協(xié)議,但是該種協(xié)議與電路延遲有關(guān),電路設(shè)計時通常需要滿足一定的延遲假設(shè)。目前實際應(yīng)用更多的是雙軌編碼協(xié)議,這是一種延遲無關(guān)編碼方式。但是,仍未有能夠直接應(yīng)用于雙軌編碼協(xié)議的通用異步?jīng)_裁電路結(jié)構(gòu)。此外,四項握手協(xié)議是異步電路設(shè)計中使用最多的協(xié)議,具有設(shè)計簡單等優(yōu)點。
技術(shù)實現(xiàn)要素:
為克服上述傳統(tǒng)異步仲裁器的不足,本發(fā)明提供了一種基于雙軌編碼四相握手協(xié)議的異步仲裁器。
本發(fā)明所采用的技術(shù)方案是:
本發(fā)明的基于雙軌編碼四相握手協(xié)議的異步仲裁器,包括仲裁模塊、握手控制模塊和輸出控制模塊,所述的仲裁模塊包括有效性檢測電路和樹形仲裁電路;
輸入通道中數(shù)據(jù)總線data_i分別連接至一個有效性檢測電路,該有效性檢測電路輸出為vi;所有輸出vi連接至樹形仲裁電路的輸入reqi用以發(fā)起仲裁請求,樹形仲裁電路是由二輸入仲裁電路以樹形連接而成的電路,前級的輸出作為后一級的輸入,最后一級仲裁電路的輸出之間短接;仲裁模塊的輸出即為仲裁結(jié)果ai,所有的仲裁結(jié)果ai信號線被連接至握手控制模塊,同時輸出通道的ack信號也作為握手控制模塊的輸入,握手控制模塊的輸出為輸入通道的acki和控制信號ci,其中acki連接至各輸入通信通道作為握手信號,控制信號ci連接至輸出控制模塊控制其選擇輸出;輸出控制模塊的輸入為各通道數(shù)據(jù)data_i和控制信號ci,輸出為數(shù)據(jù)通道data,即根據(jù)仲裁結(jié)果輸出相應(yīng)數(shù)據(jù)通道的數(shù)據(jù)。
所述的有效性檢測采用異或門檢測每一位雙軌編碼數(shù)據(jù)有效型,數(shù)據(jù)通道中每一位雙軌編碼數(shù)據(jù)xi.t和xi.f都連接到一個異或門電路用以檢測其有效性;然后將每一位異或門輸出結(jié)果連接至c單元構(gòu)成的樹形結(jié)構(gòu);c單元由兩個pmos和兩個nmos串接,輸出結(jié)果經(jīng)過由兩個非門構(gòu)成的鎖存器后最終輸出,只有當兩個輸入都為低電平時,輸出結(jié)果變?yōu)榈碗娖?;兩個輸出都為高電平時,輸出結(jié)果變?yōu)楦唠娖?;其他情況下c單元輸出值維持原值不變。
所述的基于雙軌編碼四相握手協(xié)議的異步仲裁器的工作流程如下:
若第i個輸入通道要傳輸?shù)碾p軌編碼數(shù)據(jù)總線為data_i,其握手控制信號為acki,輸出通道數(shù)據(jù)總線為data,握手控制信號為ack;
當?shù)趇個輸入數(shù)據(jù)有效并且通過仲裁獲得輸出權(quán)限后,握手控制模塊將控制輸出信號ci置為高電平,該信號控制輸出控制模塊將相應(yīng)的輸入數(shù)據(jù)輸出,即等效于在輸出通道發(fā)出數(shù)據(jù)傳輸請求,隨后輸出通道的ack信號被輸出接收端置為高電平,握手控制模塊會將輸入通道的acki信號置為高電平,代表數(shù)據(jù)已被接收,隨后輸入數(shù)據(jù)被輸入端置為中性值,握手控制模塊將ci信號置為0,輸出控制模塊也將輸出數(shù)據(jù)置為中性值,外部接收端將ack信號拉低,最后握手控制模塊將acki信號也置為0,至此完成輸入輸出兩端的握手操作。
所述的輸出控制模塊的工作流程如下:
根據(jù)握手控制模塊計算出的ci值的情況來控制輸出數(shù)據(jù),當所有的控制信號ci全為0時,代表電路處于空閑狀態(tài),此時輸出的數(shù)據(jù)通道全部值為0;當某一時刻有一個ci值為高電平時,輸出控制模塊會將輸出數(shù)據(jù)置為第i號通道的數(shù)據(jù)值,以完成數(shù)據(jù)傳送。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明能夠直接應(yīng)用雙軌編碼協(xié)議電路中,高度模塊化并且每個模塊電路規(guī)則,可以方便擴展應(yīng)用于更大規(guī)模的電路中。
附圖說明
圖1為本發(fā)明電路頂層結(jié)構(gòu)示意圖。
圖2為本發(fā)明仲裁模塊中有效性檢測電路圖與基礎(chǔ)仲裁器電路圖。
圖3為本發(fā)明握手控制模塊電路圖。
圖4為本發(fā)明輸出控制模塊中1位數(shù)據(jù)輸出控制電路圖。
具體實施方式
下面結(jié)合附圖及具體實施例對本發(fā)明作進一步詳細說明。
如圖1所示,本發(fā)明電路的輸入為多個通信通道,輸出為單個通信通道。每個通信通道包含有數(shù)據(jù)通道(輸入端為data_i,輸出端為data)和相應(yīng)的握手控制線(輸入端為acki,輸出端為ack),其中每個數(shù)據(jù)通道中包含有多位雙軌編碼的數(shù)據(jù)位。該電路主要包含有三個模塊:仲裁電路(虛線框內(nèi))、握手控制模塊和輸出控制器。其連接關(guān)系為:外部輸入通道中數(shù)據(jù)總線data_i分別連接至一個有效性檢測電路,該電路輸出為vi;所有通道的vi連接至樹形仲裁電路的輸入reqi用以發(fā)起仲裁請求,樹形仲裁器為基礎(chǔ)二輸入仲裁電路以二叉樹形狀連接,前級的輸出作為后一級的輸入,最后一級仲裁器的輸出req與ack之間短接;仲裁電路輸出即為仲裁結(jié)果為ai,可視為第i個通道取得輸出權(quán)限;所有的ai信號線被連接至握手控制模塊,同時輸出端的ack信號也作為握手控制模塊的輸入,其輸出為acki和ci,其中acki連接至各輸入通信通道作為握手信號,ci連接至輸出控制器控制其選擇輸出;輸出控制器輸入為各通道數(shù)據(jù)data_i和控制信號ci,輸出為數(shù)據(jù)數(shù)據(jù)通道data。各個模塊功能如下:仲裁電路用以檢測數(shù)據(jù)通道中數(shù)據(jù)的有效性以及完成多數(shù)據(jù)通道之間的仲裁選擇,仲裁結(jié)果表現(xiàn)為信號線a1、a2、a3、a4中任意時刻最多僅有一個信號為高電平,代表著最多僅有一個通信通道會被選擇輸出。仲裁電路仲裁完畢后,a1、a2、a3、a4連接到握手控制模塊,握手控制模塊根據(jù)仲裁結(jié)果計算相應(yīng)的acki信號完成和輸入端的握手,并計算輸出控制器的控制信號ci。同樣的,ci信號在任意一個時刻最多僅有一個為高電平,能夠使能輸出控制器輸出第i個輸入通道的數(shù)據(jù)data_i至輸出端數(shù)據(jù)通道data。
圖(2)是仲裁器模塊的詳細電路圖,(a)是數(shù)據(jù)通道有效性檢測電路,數(shù)據(jù)通道中每一位雙軌編碼數(shù)據(jù)xi.t和xi.f都連接到一個異或門電路用以檢測其有效性,每一個異或門的輸出連接至樹形c單元電路,用以確保所有數(shù)據(jù)位的有效性。需要注意的是每一位數(shù)據(jù)都變?yōu)橛行r輸出才會變?yōu)楦唠娖?,而每一位?shù)據(jù)都為中性值時輸出才會變?yōu)榈碗娖剑溆嘀禃r輸出結(jié)果保持不變。(b)是非對稱c單元的電路圖與符號,該單元在基本仲裁器中使用到。(c)是我們采用的基本仲裁器結(jié)構(gòu),該仲裁器具有公平仲裁的特點,即當其中一個輸入請求被處理后再次發(fā)出請求,這種仲裁器會先處理完其他所有輸入后,才會再次響應(yīng)該請求信號。
如圖(3)是握手控制模塊,主要由非門、多輸入或非門和多個c單元組成。該電路輸入為a1、a2、a3、a4和輸出端握手信號線ack,輸出為輸入端握手信號ack1、ack2、ack3、ack4以及輸出控制器的控制信號c1、c2、c3、c4。其連接關(guān)系為:ack信號連接至非門,輸出結(jié)果為en,en為高電平時代表輸出端通道空閑,反之代表輸出端正在傳輸數(shù)據(jù);acki被連接至多輸入或門,其輸出為en_l,當en_l為高電平時,代表輸入端所有通道都未開始握手;ack和ci被連接至二輸入c單元,輸出結(jié)果為acki,即當ack為高并且ci信號為高時,ack信號被置高,當ack和ci同時為低時,ack信號被置低,其余時刻保持不變;en、en_l和ai被連接至三輸入c單元,其輸出即為ci即當en、en_l和ai同時為高時,ci被置高,反之三者同時為低時,ci被置低,其余時刻保持不變。
如圖(4)為1位數(shù)據(jù)輸出控制電路,由4個pmos管和8個nmos管連接,輸出截至由雙非門級聯(lián)而成的鎖存電路得到最終輸出。其中,4個pmos串聯(lián),其柵極控制信號分別為c1~c4,8個nmos分為4路并聯(lián),每一路都包含有2個串接的nmos管,nmos管柵極分別為控制信號ci和數(shù)據(jù)位data_i。實際電路中根據(jù)輸入數(shù)據(jù)位數(shù)的不同含有多個該電路。該電路根據(jù)c1、c2、c3、c4來計算輸出值:初始狀態(tài)下全部控制信號ci都為低電平,輸出值為0;當某一時刻ci被置為高時,輸出值data變?yōu)榈趇路輸入數(shù)據(jù)data_i。
以下結(jié)合具體實例描述電路工作過程:假設(shè)在某時刻,通道1通道2同時發(fā)起數(shù)據(jù)傳輸,即data_1、data_2同時變?yōu)橛行е?,?jīng)過有效性檢測模塊后v1、v2將會變?yōu)橛行?,并輸入至樹形仲裁器中進行仲裁,仲裁結(jié)果為a1或a2被置為高;假設(shè)a1經(jīng)過仲裁后變?yōu)楦唠娖?,則握手控制模塊首先將c1變?yōu)楦撸刂戚敵鐾ǖ垒敵鲋礵ata變?yōu)閐ata_1,即在輸出端發(fā)起通信;輸出端接收方隨后會將ack變?yōu)楦唠娖剑帐挚刂颇K檢測到ack置高后會將通道1的ack1信號置為高,代表數(shù)據(jù)傳送完成;輸入方發(fā)送端此后將data_1的數(shù)據(jù)變?yōu)闊o效,v1也變?yōu)榈碗娖?,仲裁樹輸出結(jié)果中a1將會被置低,使得握手控制模塊控制c1信號也變?yōu)榈?,同時ack1也會變?yōu)榈?,完成和輸入端的四相握手過程;此時c1、c2、c3、c4信號全為低電平,使得輸出控制器輸出結(jié)果全為低電平,即無效值,輸出端接收方檢測到高無效值后會將ack信號置低,以此完成輸出端四相握手過程。至此,通道1發(fā)起的數(shù)據(jù)通信被完成,通道2發(fā)起的通信將會在仲裁樹中傳遞,并使得a2被置為高,經(jīng)過同樣的通信過程后通道2的數(shù)據(jù)也會完成傳送。
通過以上三個電路三個模塊的劃分,完整的電路被拆分成三個不同的功能塊,每個模塊電路功能明確,連接關(guān)系簡單,電路設(shè)計規(guī)則,易于被擴展為更大規(guī)模的電路。