專(zhuān)利名稱(chēng):一種片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種路由節(jié)點(diǎn)微結(jié)構(gòu),具體地說(shuō),涉及一種片上網(wǎng)絡(luò) 的路由節(jié)點(diǎn)微結(jié)構(gòu)。
背景技術(shù):
隨著電子技術(shù)的發(fā)展,復(fù)雜SoC受到越來(lái)越多的關(guān)注。在目前的 技術(shù)條件下,復(fù)雜SoC需要的物理基礎(chǔ)——單片上集成十億個(gè)以上的 門(mén)成為可能;同時(shí),其廣泛的應(yīng)用范圍,使得市場(chǎng)對(duì)復(fù)雜SoC的需求 大大增加。復(fù)雜SoC的應(yīng)用領(lǐng)域很多,從安全系統(tǒng)、控制系統(tǒng)、個(gè)人 健康系統(tǒng),到主流消費(fèi)品領(lǐng)域,如多媒體處理、個(gè)人通信、個(gè)人的計(jì) 算、娛樂(lè)、視頻/圖象等等。事實(shí)上,目前針對(duì)這些應(yīng)用的專(zhuān)用IC中, 大部份已經(jīng)有了很高的復(fù)雜度。但是,隨著科學(xué)研究和實(shí)現(xiàn)應(yīng)用的逐 漸深入,現(xiàn)有的專(zhuān)用IC越來(lái)越不能滿足人們對(duì)具有更強(qiáng)大功能的器 件的需求,更加復(fù)雜的SoC的實(shí)現(xiàn)技術(shù)便成為研究熱點(diǎn), 一些新的理 念和關(guān)鍵技術(shù)被提出來(lái),并開(kāi)始影響處理器的設(shè)計(jì)和復(fù)雜SoC的研 發(fā)。
目前最復(fù)雜的SoC,在一個(gè)芯片上所包含的處理器數(shù)目也不超過(guò) 十?dāng)?shù)個(gè),更多數(shù)量的處理器的設(shè)計(jì)會(huì)面臨一系列困難。另一方面,是 電子設(shè)計(jì)和制造技術(shù)的發(fā)展,可以在一個(gè)IC芯片上設(shè)計(jì)與集成足夠 多的晶體管。但是,設(shè)計(jì)者常常不能夠充分開(kāi)發(fā)和使用IC中所有的 晶體管。到了 2003年,各類(lèi)實(shí)時(shí)處理SoC的復(fù)雜性,已經(jīng)遠(yuǎn)遠(yuǎn)落后
于現(xiàn)在的硅技術(shù)發(fā)展的水平。復(fù)雜SoC設(shè)計(jì)的生產(chǎn)力缺口己經(jīng)較大, 并有繼續(xù)擴(kuò)大的趨勢(shì)。
在目前的技術(shù)和需求的推動(dòng)作用下,使用越來(lái)越多的處理器核和 大量可重復(fù)使用的IP模塊,將它們集成在一個(gè)硅芯片上,將是未來(lái) 復(fù)雜SoC設(shè)計(jì)的基礎(chǔ)。當(dāng)處理器或IP數(shù)量達(dá)到上百或數(shù)百、甚至上 千時(shí),芯片內(nèi)部采用什么通信結(jié)構(gòu)就變得越來(lái)越重要。當(dāng)前在SoC設(shè) 計(jì)中,如S0PC技術(shù)、多處理器技術(shù)、SIMD技術(shù)等,總線是連接芯片 上的各個(gè)IP或處理器的主要方式。但是,現(xiàn)有的總線結(jié)構(gòu)卻有如下 的困難
一. 總線能有效連接的部件數(shù)量較少,而且隨著總線連接部件的 數(shù)量增加,各個(gè)部件之間的沖突也會(huì)增加,這就會(huì)使得SoC的復(fù)雜性 受到限制;
二. 隨著總線連接部件數(shù)量的增加,總線長(zhǎng)度也會(huì)隨之增長(zhǎng),但 是在SoC設(shè)計(jì)中,長(zhǎng)的全局總線會(huì)造成SoC中的部件通信的瓶頸效應(yīng), 從而降低通信效率,甚至引發(fā)阻塞;
三. 將較多部件掛接在同一總線上,就要求所有的部件都具有標(biāo) 準(zhǔn)統(tǒng)一的總線接口,這會(huì)為各個(gè)部件的設(shè)計(jì)帶來(lái)額外的開(kāi)銷(xiāo);
四. 總線結(jié)構(gòu)造成的通信瓶頸也會(huì)使得SoC的規(guī)模受到限制,由于 不能提供高效的通信模式,使得能利用的芯片中的晶體管數(shù)量受到限 制,從而造成SoC芯片性能受到限制。
五. 由于連接SoC中各個(gè)部件的是單一的總線,在進(jìn)行擴(kuò)展的時(shí) 候,必須為需擴(kuò)展的部件設(shè)計(jì)能用于總線的接口,且各個(gè)部件的接口
必須統(tǒng)一,這就降低了SoC的設(shè)計(jì)靈活性和可擴(kuò)展性。
因此在復(fù)雜SoC設(shè)計(jì)中,隨著越來(lái)越多的IP被集成在單個(gè)硅芯 片上,可編程和可定制的片上通信結(jié)構(gòu)越來(lái)越占據(jù)主導(dǎo)地位。由于有
相當(dāng)豐富且價(jià)格便宜的特定功能的IP核,設(shè)計(jì)的重心就會(huì)集中在
如何實(shí)現(xiàn)有效的片上通信。而在片上網(wǎng)絡(luò)體系結(jié)構(gòu)中,其各個(gè)部件的 片上通信是通過(guò)部件所連接的路由節(jié)點(diǎn)來(lái)實(shí)現(xiàn)的,所以,路由節(jié)點(diǎn)是 片上網(wǎng)絡(luò)通信的關(guān)鍵部分。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),取代現(xiàn)有 技術(shù)中片上網(wǎng)絡(luò)采用的總線結(jié)構(gòu),解決現(xiàn)有技術(shù)中存在的缺陷,提高 片上網(wǎng)絡(luò)的通信效率和性能。
為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案如下 一種片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),由輸入模塊和輸出模塊組成, 其中,輸入模塊包括
頭部譯碼模塊,負(fù)責(zé)對(duì)進(jìn)入路由節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行頭部分析,并將
數(shù)據(jù)輸入至數(shù)據(jù)緩存模塊;輸入緩存模塊,用于緩存數(shù)據(jù);輸入控制 模塊,用于翻譯握手協(xié)議和對(duì)數(shù)據(jù)寫(xiě)入輸入緩存模塊的過(guò)程進(jìn)行控 制;
而輸出模塊包括輸出仲裁模塊,主要作用是控制數(shù)據(jù)向輸出緩 存模塊輸入;輸出緩存模塊,用來(lái)存儲(chǔ)輸入端口傳入的數(shù)據(jù),并在輸 出控制器的控制下輸出數(shù)據(jù);輸出控制模塊,用于實(shí)現(xiàn)對(duì)輸出鏈路的 控制。
所述頭部譯碼模塊進(jìn)行頭部分析的步驟包括 首先根據(jù)路由算法確定數(shù)據(jù)的輸出端口;再向與輸出端口對(duì)應(yīng)的 VOQ發(fā)送請(qǐng)求信號(hào);頭部譯碼模塊接受到VOQ發(fā)回的允許信號(hào)后,通
過(guò)虛擬通道選擇器選擇一個(gè)非空通道將數(shù)據(jù)輸入至輸入緩存模塊。 所述虛擬通道選擇器通過(guò)RR調(diào)度算法來(lái)實(shí)現(xiàn)非空通道的選擇,
以及將數(shù)據(jù)輸入至輸入緩存模塊。 所述RR調(diào)度算法包括如下步驟
首先將CPU處理一個(gè)數(shù)據(jù)包的傳輸時(shí)間等分為若干個(gè)時(shí)間片,并 為每個(gè)虛擬通道分配若干個(gè)時(shí)間片;然后將所有虛擬通道排成一個(gè)隊(duì) 列,并從隊(duì)列的起點(diǎn)開(kāi)始選擇一個(gè)含有數(shù)據(jù)的虛擬通道作為第一個(gè)向 輸入緩存模塊輸入數(shù)據(jù)的非空通道;當(dāng)?shù)谝粋€(gè)非空通道使用完自身所 有的時(shí)間片后,若第一個(gè)非空通道內(nèi)的數(shù)據(jù)尚未輸入完畢,則停止輸 入,并將第一個(gè)非空通道排列至原隊(duì)列的末尾,同時(shí),按隊(duì)列的先后 順序選擇第二個(gè)非空通道,并進(jìn)行數(shù)據(jù)輸入;當(dāng)?shù)诙€(gè)非空通道使用 完自身所有的時(shí)間片后,若其數(shù)據(jù)尚未輸入完畢,則停止輸入,并將 第二個(gè)非空通道排列至第一個(gè)非空通道之后,同時(shí),按照新隊(duì)列的先
后順序選擇第三個(gè)非空通道,并進(jìn)行數(shù)據(jù)輸入;按照上述方法依次選 擇隊(duì)列中所有的非空通道進(jìn)行數(shù)據(jù)輸入,直到所有的非空通道將數(shù)據(jù) 全部輸入至輸入緩存模塊。
所述輸入緩存模塊由至少一組虛輸出隊(duì)列組成,每組虛輸出隊(duì)列 又由至少一個(gè)虛擬通道組成,所有虛擬通道結(jié)構(gòu)相同。
所述時(shí)間片為在兩個(gè)相鄰路由節(jié)點(diǎn)之間傳輸一個(gè)完整數(shù)據(jù)包所
需時(shí)間。
所述輸出仲裁模塊根據(jù)狀態(tài)機(jī)的狀態(tài)來(lái)控制數(shù)據(jù)向輸出緩存模 塊輸入。
所述輸出仲裁模塊控制數(shù)據(jù)向輸出緩存模塊輸入的步驟包括 首先在狀態(tài)機(jī)的初始狀態(tài),判斷輸出FIFO是否為空,若輸出FIFO 為空,則狀態(tài)機(jī)狀態(tài)保持不變;反之,則從輸出FIFO中讀出一個(gè)數(shù) 據(jù),狀態(tài)機(jī)從其初始狀態(tài)轉(zhuǎn)移到頭部檢測(cè)狀態(tài),并進(jìn)行頭部檢測(cè);頭 部檢測(cè)狀態(tài)如檢測(cè)到數(shù)據(jù)包頭,那么狀態(tài)機(jī)轉(zhuǎn)移到數(shù)據(jù)傳輸狀態(tài)進(jìn)行 數(shù)據(jù)傳輸;否則,狀態(tài)機(jī)轉(zhuǎn)回其初始狀態(tài),并從輸出FIFO中讀出下 一個(gè)數(shù)據(jù)進(jìn)行頭部檢測(cè);狀態(tài)機(jī)處于數(shù)據(jù)傳輸狀態(tài)時(shí),狀態(tài)機(jī)根據(jù)下 一級(jí)路由接點(diǎn)的信息進(jìn)行數(shù)據(jù)傳輸,知道數(shù)據(jù)傳輸完畢;數(shù)據(jù)傳輸完 畢后,若輸出FIFO為非空,狀態(tài)機(jī)直接轉(zhuǎn)移至頭部檢測(cè)狀態(tài),進(jìn)行 數(shù)據(jù)包頭檢測(cè),并進(jìn)行數(shù)據(jù)傳輸;反之,則回到狀態(tài)機(jī)的初始狀態(tài)等 待新數(shù)據(jù)到來(lái)。
所述輸出控制模塊根據(jù)本級(jí)輸出緩存模塊的狀態(tài)對(duì)下級(jí)路由節(jié) 點(diǎn)的輸入端口提出請(qǐng)求,并接受下級(jí)路由節(jié)點(diǎn)的輸入端口發(fā)回的響應(yīng) 信號(hào),根據(jù)響應(yīng)信號(hào)來(lái)判斷是否輸出數(shù)據(jù)。
對(duì)于具有多處理器的復(fù)雜SoC系統(tǒng)來(lái)說(shuō),路由節(jié)點(diǎn)的主要作用是 能獨(dú)立于處理器完成并行的數(shù)據(jù)交換和通信,實(shí)現(xiàn)片上的網(wǎng)絡(luò)通信, 并盡可能的提高通信效率,保證通信質(zhì)量。
本發(fā)明將路由節(jié)點(diǎn)之間的微結(jié)構(gòu)分為輸入模塊和輸出模塊,并對(duì) 輸入模塊和輸出模塊進(jìn)行分別設(shè)計(jì),并在數(shù)據(jù)傳輸過(guò)程中采用特殊的
調(diào)度算法進(jìn)行控制,使數(shù)據(jù)傳輸效率得到提高,下面對(duì)輸入模塊和輸 出模塊進(jìn)行詳細(xì)說(shuō)明。 一.輸入模塊
輸入模塊包括頭部譯碼模塊(HD)、輸入緩存模塊(IB)和輸入 控制模塊(IC)。
1.頭部譯碼模塊(HD)
頭部譯碼模塊負(fù)責(zé)對(duì)進(jìn)入路由節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行頭部分析,以確定 數(shù)據(jù)的路由。經(jīng)過(guò)路由分析后,就可以確定數(shù)據(jù)將從路由節(jié)點(diǎn)的哪一 個(gè)輸出端口輸出,并將數(shù)據(jù)發(fā)送到輸入緩存中對(duì)應(yīng)輸出端口的VOQ 中。如果該組V0Q有多個(gè)虛通道,則通過(guò)虛擬通道選擇器選擇一個(gè)非 空通道輸入數(shù)據(jù)包,然后,向相應(yīng)方向的VOQ發(fā)送請(qǐng)求信號(hào),并接收 VOQ傳回的允許信號(hào),將輸入送入VOQ中進(jìn)行緩存。其中,虛通道選 擇器通過(guò)RR (Round Robin)調(diào)度算法來(lái)實(shí)現(xiàn),在后面將詳細(xì)介紹 這種調(diào)度算法。
下面詳細(xì)介紹RR調(diào)度算法。
RR調(diào)度算法,又稱(chēng)時(shí)間片輪循法,是一種經(jīng)典的調(diào)度算法。在 分時(shí)系統(tǒng)中,現(xiàn)有的RR調(diào)度算法是將CPU的處理時(shí)間分為若干時(shí)間 片, 一個(gè)時(shí)間片從幾毫秒到幾百毫秒不等。系統(tǒng)給每一個(gè)進(jìn)程分配若 干個(gè)時(shí)間片,被調(diào)度選中的進(jìn)程使用完系統(tǒng)分配的時(shí)間片之后,系統(tǒng) 就會(huì)發(fā)生調(diào)度。如果該進(jìn)程還未完成要求的任務(wù),則調(diào)度程序暫時(shí)停 止該進(jìn)程的執(zhí)行,將它排到就緒對(duì)列的末尾,等待下一次調(diào)度。同時(shí), 調(diào)度程序會(huì)調(diào)度當(dāng)前就緒隊(duì)列中的下一個(gè)進(jìn)程。這樣,就可以保證就
緒隊(duì)列中的所有進(jìn)程在- -個(gè)給定的時(shí)間內(nèi)均能得到執(zhí)行。
在本發(fā)明中,對(duì)RR調(diào)度算法稍作修改,將它作為片上網(wǎng)絡(luò)路由 節(jié)點(diǎn)的仲裁算法用在虛擬通道選擇以及輸出端口對(duì)輸入端口請(qǐng)求的 響應(yīng)上。在設(shè)計(jì)中,時(shí)間片比較固定, 一般為傳輸一個(gè)完整數(shù)據(jù)包所 需要的時(shí)間,而各個(gè)數(shù)據(jù)包所在的不同虛擬通道相當(dāng)于分時(shí)系統(tǒng)的進(jìn) 程。圖3說(shuō)明了本發(fā)明中采用的RR調(diào)度算法的調(diào)度方式,圖中,假 設(shè)系統(tǒng)有8個(gè)需調(diào)度的虛擬通道,調(diào)度的起點(diǎn)在A通道,通道中的數(shù) 據(jù)包數(shù)目各不相同。首先,由于A通道有數(shù)據(jù)包可發(fā)送,故第l輪調(diào) 度A通道,然后在第2輪調(diào)度中,先檢查B通道,由于B通道沒(méi)有數(shù) 據(jù)包可發(fā)送,所以跳過(guò)B通道,檢查C通道,發(fā)現(xiàn)C通道有數(shù)據(jù)包, 因而C被選出。第3輪調(diào)度,先檢査D通道,從而調(diào)度D通道,以此 類(lèi)推,其中第6輪調(diào)度完成了對(duì)所有通道的檢查,重新從A通道開(kāi)始 檢査;第8輪調(diào)度由于D通道在第3輪調(diào)度中把一個(gè)數(shù)據(jù)包發(fā)送出去 后,處于無(wú)數(shù)據(jù)包可發(fā)狀態(tài),從而調(diào)度E通道。從圖中可以看出要實(shí) 現(xiàn)Round Robin算法,關(guān)鍵是從起始的通道開(kāi)始,找到第一個(gè)存有數(shù) 據(jù)包的虛擬通道。
具體實(shí)現(xiàn)RR調(diào)度算法的實(shí)際邏輯結(jié)構(gòu)如圖4所示。通道狀態(tài)寄 存器用來(lái)存放需調(diào)度虛擬通道(即該虛擬通道內(nèi)是否有數(shù)據(jù)包)的狀 態(tài),它是Round Robin調(diào)度的基礎(chǔ),準(zhǔn)備好的虛擬通道才可以被調(diào)度, 沒(méi)準(zhǔn)備好的(即沒(méi)有數(shù)據(jù)包的虛擬通道)不能被調(diào)度。以4個(gè)虛擬通 道為例,通道狀態(tài)寄存器就是4位的寄存器,通道狀態(tài)由前一級(jí)FIFO 的empty信號(hào)給出,按照虛擬通道排列的先后順序,哪一位排在前面
的通道為"1"則表示哪一個(gè)虛擬通道非空,有數(shù)據(jù)包可傳輸,則該 虛擬通道第--個(gè)被調(diào)度。
桶式移位器根據(jù)調(diào)整邏輯送過(guò)來(lái)的移位次數(shù)在一個(gè)時(shí)鐘周期內(nèi)
對(duì)通道狀態(tài)寄存器完成移位操作。它是現(xiàn)代高速RISC微處理芯片中 采用的結(jié)構(gòu),具有使各種位數(shù)的移位操作都能在單個(gè)周期內(nèi)完成的能 力,這對(duì)RR算法的實(shí)現(xiàn)很關(guān)鍵。
桶式移位器完成移位操作后,將所得的結(jié)果送到優(yōu)先編碼器進(jìn)行 優(yōu)先編碼。
調(diào)整邏輯主要是一個(gè)累加器,它把優(yōu)先級(jí)編碼器的編碼結(jié)果加1 后進(jìn)行累加,這就相當(dāng)于把每次Round Robin調(diào)度的開(kāi)始點(diǎn)保存在累 加器中。累加器的位數(shù)由調(diào)度通道數(shù)決定,例如4個(gè)通道需要2位累 加器。
2. 輸入緩存模塊(IB)
數(shù)據(jù)緩存模塊用于緩存數(shù)據(jù),主要是由M組虛輸出隊(duì)列組成,每 一組虛輸出隊(duì)列(V0Q)對(duì)應(yīng)一個(gè)方向。每一組虛輸出隊(duì)列中又可以 有N (N>1)個(gè)虛擬通道,當(dāng)N4的時(shí)候,是最簡(jiǎn)單的形式。此處的 虛擬通道并不對(duì)應(yīng)的代表每個(gè)輸出端口,所有的虛擬通道結(jié)構(gòu)都相 同。虛擬通道的寬度就是數(shù)據(jù)包的寬度,虛擬通道的深度可以變化。 輸入緩存模塊是輸入模塊與輸出模塊通信的接口,輸出模塊通過(guò)檢測(cè) 輸入緩存的狀態(tài)來(lái)獲得從輸入端口傳入的數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)在片上 網(wǎng)絡(luò)路由節(jié)點(diǎn)內(nèi)部的傳送。
3. 輸入控制模塊(IC)
輸入控制模塊的作用是翻譯握手協(xié)議和冇選擇的S入輸入緩存
的虛通道。valid表示上級(jí)路由節(jié)點(diǎn)有效數(shù)據(jù)來(lái)臨,請(qǐng)求輸入,當(dāng)--個(gè)完整的數(shù)據(jù)包傳輸完畢,上級(jí)的請(qǐng)求信號(hào)放棄請(qǐng)求;ack信號(hào)是輸 入確認(rèn)信號(hào),當(dāng)來(lái)自IB模塊的Full信號(hào)不全為高電平l時(shí),說(shuō)明至 少有1組V0Q還有剩余存儲(chǔ)空間,可以接收數(shù)據(jù)包,此時(shí)IC將ack 響應(yīng)信號(hào)置高電平,通知上級(jí)路由節(jié)點(diǎn)可以開(kāi)始傳輸數(shù)據(jù);若數(shù)據(jù)包 傳輸過(guò)程中,所使用的虛擬通道達(dá)到滿狀態(tài),則停止響應(yīng),并記錄當(dāng) 前數(shù)據(jù)包與所使用的虛通道標(biāo)號(hào),以備下次使用。同時(shí),轉(zhuǎn)換到下一 個(gè)非滿的虛擬通道,準(zhǔn)備開(kāi)始新的數(shù)據(jù)包傳輸。 二.輸出模塊
輸出模塊采用分布式仲裁方式,各個(gè)輸出端口都有對(duì)應(yīng)的獨(dú)立仲 裁器。仲裁器采用RR算法,以公平輪循的方式對(duì)各個(gè)輸入請(qǐng)求進(jìn)行 響應(yīng),并產(chǎn)生多路復(fù)用器的選擇信號(hào)sel。當(dāng)測(cè)到包尾eop信號(hào)時(shí), 說(shuō)明一個(gè)完整的數(shù)據(jù)包已經(jīng)傳輸完成,需要釋放gnt信號(hào),并使用數(shù) 據(jù)包尾部e叩信號(hào)來(lái)觸發(fā)下一次輪循。輸出模塊包括輸出緩存模塊 (0B)、輸出控制模塊(0C)和輸出仲裁模塊(0A)三個(gè)部分。
1.輸出仲裁模塊(0A)
輸出仲裁模塊較復(fù)雜,它的主要作用是實(shí)現(xiàn)數(shù)據(jù)寫(xiě)入到輸出緩存 中。輸出仲裁通過(guò)狀態(tài)信號(hào)線獲取輸入緩存的信息,并產(chǎn)生讀信號(hào)反 饋給輸入端口。當(dāng)有多個(gè)端口同時(shí)請(qǐng)求一個(gè)輸出端口時(shí),輸出仲裁根 據(jù)設(shè)定好的仲裁方式(即RR算法)對(duì)輸入端口進(jìn)行仲裁,最終選擇 一個(gè)輸入端口輸入數(shù)據(jù)。根據(jù)輸出緩存模塊的狀態(tài)以及下級(jí)路由節(jié)點(diǎn)
的狀態(tài),通過(guò)狀態(tài)機(jī)的方式來(lái)實(shí)現(xiàn),其狀態(tài)轉(zhuǎn)移情況如圖5所示。
在圖5中,IDLE空閑狀態(tài)為狀態(tài)機(jī)的初始狀態(tài),如果在此狀態(tài) 下,輸出FIFO始終為空,那么狀態(tài)機(jī)就在此狀態(tài)下等待,直到輸出 FIF0非空,從FIFO中讀出一個(gè)數(shù)據(jù),然后轉(zhuǎn)移到頭部檢測(cè)狀態(tài)。在 頭部檢測(cè)狀態(tài)(Header Detector)如檢測(cè)到數(shù)據(jù)包頭,那么狀態(tài)機(jī) 轉(zhuǎn)移到數(shù)據(jù)傳輸狀態(tài)(Data Transfer)進(jìn)行數(shù)據(jù)傳輸;否則,狀態(tài) 機(jī)轉(zhuǎn)回IDLE,再?gòu)腇IFO中讀出下一個(gè)數(shù)據(jù)進(jìn)行頭部檢測(cè)。在數(shù)據(jù)傳 輸狀態(tài)(Data Transfer)下,狀態(tài)機(jī)就根據(jù)下一級(jí)路由節(jié)點(diǎn)的信息 進(jìn)行數(shù)據(jù)傳輸,直到包尾到來(lái),如果此時(shí)輸出FIFO為非空,就說(shuō)明 FIFO中還有數(shù)據(jù)可以傳輸,狀態(tài)機(jī)直接轉(zhuǎn)移到頭部檢測(cè)狀態(tài);否則, 如果FIFO為空,就轉(zhuǎn)移到IDLE,以等待數(shù)據(jù)的到來(lái)。
2. 輸出緩存模塊(OB)
輸出緩存用來(lái)存儲(chǔ)輸入端口傳入的數(shù)據(jù),并在輸出控制模塊的控 制下輸出數(shù)據(jù)。仲裁器根據(jù)其內(nèi)部的仲裁結(jié)果,以及輸出緩存的full 信號(hào),產(chǎn)生寫(xiě)信號(hào),控制數(shù)據(jù)從輸入端口的寫(xiě)入。
3. 輸出控制模塊(0C)
輸出控制模塊主要進(jìn)行輸出鏈路的控制。它根據(jù)本級(jí)輸出緩存的 狀態(tài)對(duì)下級(jí)路由節(jié)點(diǎn)的輸入端口提出請(qǐng)求,并接收響應(yīng)信號(hào),從而控 制數(shù)據(jù)輸出。其產(chǎn)生的各輸出信號(hào)的時(shí)序關(guān)系如圖6所示。
通過(guò)對(duì)上述模塊的設(shè)計(jì),本發(fā)明實(shí)現(xiàn)了一種片上網(wǎng)絡(luò)的通信結(jié) 構(gòu),取代現(xiàn)有技術(shù)中的總線結(jié)構(gòu),解決了因總線結(jié)構(gòu)帶來(lái)的通信瓶頸 問(wèn)題,不僅保證了路由節(jié)點(diǎn)之間的通信質(zhì)量,而且提高了通信效率。
本發(fā)明主要應(yīng)用于片上網(wǎng)絡(luò)的內(nèi)部路由節(jié)點(diǎn)通信。 圖l為本發(fā)明的結(jié)構(gòu)框圖。
圖2為本發(fā)明中RR調(diào)度算法示意圖。
圖3為本發(fā)明中RR調(diào)度算法的邏輯結(jié)構(gòu)圖。
圖4為本發(fā)明中輸出仲裁模塊的輸出仲裁狀態(tài)轉(zhuǎn)移圖。
圖5為本發(fā)明中輸出控制模塊的相關(guān)信號(hào)時(shí)序關(guān)系圖。
圖6為本發(fā)明-實(shí)施例的Mesh結(jié)構(gòu)示意圖。
圖7為實(shí)施本發(fā)明實(shí)施例的現(xiàn)有技術(shù)的總線結(jié)構(gòu)示意圖。
圖8為本發(fā)明與總線結(jié)構(gòu)在相同環(huán)境下實(shí)施本發(fā)明的實(shí)施例的
延時(shí)性能比較圖。
圖9為本發(fā)明與總線結(jié)構(gòu)在相同環(huán)境下實(shí)施本發(fā)明的實(shí)施例的
歸一化吞吐性能比較圖。
具體實(shí)施例方式
下面以由標(biāo)準(zhǔn)的5個(gè)輸出端口和5個(gè)輸入端口組成的輸入模塊 和輸出模塊為例,對(duì)本發(fā)明作具體說(shuō)明。
在硬件上,輸入模塊由5個(gè)輸入端口組成,5個(gè)輸入端口分別代 表東、南、西、北和本地5個(gè)方向,本地方向與本地處理器相連。
圖1中虛線部分表示輸入端口北向輸出端口西傳輸?shù)慕Y(jié)構(gòu)示意 圖,其他端口之間的傳輸與圖1中虛線部分結(jié)構(gòu)相同。
如圖1所示,在本發(fā)明中,當(dāng)一個(gè)數(shù)據(jù)包要從上一級(jí)節(jié)點(diǎn)傳向 當(dāng)前節(jié)點(diǎn)時(shí),首先會(huì)將數(shù)據(jù)包的攜帶有路由信息的頭部flit作為請(qǐng)求
信號(hào)發(fā)往當(dāng)前節(jié)點(diǎn)。在當(dāng)前節(jié)點(diǎn)收到頭部flit之后,由頭部解析模塊 根據(jù)所采用的路由算法進(jìn)行頭部解析,則可以知道此數(shù)據(jù)包將要發(fā)往 的方向。若此方向的虛擬通道有足夠剩余的空間接收數(shù)據(jù)包,當(dāng)前節(jié) 點(diǎn)就會(huì)拉高確認(rèn)信號(hào)以便讓上一級(jí)節(jié)點(diǎn)開(kāi)始此次傳輸,并選通
DEMUX,確定對(duì)應(yīng)的虛擬通道。上一級(jí)節(jié)點(diǎn)收到為高的確認(rèn)信號(hào)后, 拉高有效信號(hào),并將數(shù)據(jù)包以flit為單位從FIFO中讀出,并發(fā)送到 當(dāng)前節(jié)點(diǎn)對(duì)應(yīng)的虛擬通道中。自此,數(shù)據(jù)包就從上一級(jí)節(jié)點(diǎn)發(fā)送到了 當(dāng)前節(jié)點(diǎn)輸入模塊的虛擬通道中。當(dāng)虛擬通道檢測(cè)到其中有數(shù)據(jù)包 時(shí),就會(huì)發(fā)送一個(gè)為高的請(qǐng)求信號(hào)到輸出模塊。輸出模塊可能同時(shí)收 到來(lái)自不同方向的幾個(gè)請(qǐng)求信號(hào),在這種情況下,輸出模塊就會(huì)根據(jù) RR仲裁器,從中選擇一個(gè)方向進(jìn)行響應(yīng)——將其它方向的允許信號(hào) 拉低,將所選中方向的允許信號(hào)拉高并選通MUX為此方向。當(dāng)虛擬 通道收到為高的允許信號(hào)時(shí),就會(huì)從FIFO中以flit為單位將數(shù)據(jù)包 讀出,并發(fā)送到輸出端口的FIFO中,這樣就完成了兩級(jí)節(jié)點(diǎn)之間的 數(shù)據(jù)包傳輸。在采用本結(jié)構(gòu)的NOC中,數(shù)據(jù)包就是以這樣一種方式, 從源節(jié)點(diǎn), 一級(jí)一級(jí)的發(fā)送到目的節(jié)點(diǎn)。
如圖7所示,在傳統(tǒng)的總線結(jié)構(gòu)中,所有的節(jié)點(diǎn)都掛在一條總 線上,并由一個(gè)總線仲裁器來(lái)控制它們之間的通信。在總線結(jié)構(gòu)中, 如果一個(gè)節(jié)點(diǎn)要發(fā)起通信(一般稱(chēng)此節(jié)點(diǎn)為Master,接收通信的節(jié)點(diǎn) 為Slave),它首先會(huì)檢測(cè)此時(shí)總線是否已經(jīng)被占用,如果沒(méi)有被占用, 則將包含slave地址的請(qǐng)求發(fā)到總線上;如果總線己經(jīng)被占用了,則 等待至總線被釋放時(shí),再發(fā)送請(qǐng)求??偩€控制器收到了不同的請(qǐng)求之
后,會(huì)根據(jù)其仲裁算法選擇一個(gè)master/slave對(duì),允許其通信,并阻 止其它master/slave對(duì)的通信。當(dāng)-個(gè)master收到允許之后,就會(huì)將 數(shù)據(jù)放到總線上,而對(duì)應(yīng)的slave就會(huì)從總線上獲取該數(shù)據(jù)。在這一 次通信完成之前,總線都是被此master/slave對(duì)所獨(dú)享。其它節(jié)點(diǎn)若 要發(fā)起通信就只有等總線被釋放之后,再發(fā)起請(qǐng)求。
下面對(duì)本發(fā)明所設(shè)計(jì)的片上網(wǎng)絡(luò)路由節(jié)點(diǎn)微結(jié)構(gòu)所構(gòu)成的片上 網(wǎng)絡(luò)與現(xiàn)有技術(shù)中總線結(jié)構(gòu)的性能進(jìn)行比較。片上網(wǎng)絡(luò)和總線結(jié)構(gòu)的 大小都為16個(gè)節(jié)點(diǎn)。本發(fā)明設(shè)計(jì)的片上網(wǎng)絡(luò)采用Mesh結(jié)構(gòu),如圖6 所示;現(xiàn)有技術(shù)的總線結(jié)構(gòu)如圖7所示。在圖6中,IP表示處理器核, R為片上網(wǎng)絡(luò)中的路由器,NI為IP與路由器的接口。在圖7中,IP 表示處理器核,I表示處理器核與總線的接口。在將等數(shù)量的IP連接 成片上網(wǎng)絡(luò)結(jié)構(gòu)和總線結(jié)構(gòu)后,分別對(duì)兩者的性能進(jìn)行仿真,結(jié)果表 明本發(fā)明所設(shè)計(jì)的路由節(jié)點(diǎn)構(gòu)成的片上網(wǎng)絡(luò),性能要大大優(yōu)于傳統(tǒng)的 總線結(jié)構(gòu)。上述性能分析是在均勻通信模式的情況下得到的,在這種 模式中,所有的IP都按照相等的數(shù)量向其他的IP傳送數(shù)據(jù)包,但是 每次傳送的數(shù)據(jù)的目的地址是隨機(jī)的。分析性能時(shí)主要考慮了多處理 器核通信中的兩個(gè)重要指標(biāo)平均延時(shí)和歸一化吞吐率。平均延時(shí)是 指數(shù)據(jù)通過(guò)片上網(wǎng)絡(luò)(或總線)所消耗的平均時(shí)間,它反應(yīng)了整個(gè)結(jié) 構(gòu)對(duì)數(shù)據(jù)傳輸時(shí)間的影響,可以用總的延時(shí)除以總的數(shù)據(jù)量的平均值 來(lái)得到。歸一化吞吐率反應(yīng)的是數(shù)據(jù)在片上網(wǎng)絡(luò)(或總線)中能被正 確傳送的概率,它可以用在一段時(shí)間內(nèi)正確收到的數(shù)據(jù)包除以注入的 數(shù)據(jù)包的比值來(lái)表示。在同樣的注入率(單位時(shí)間內(nèi)注入的數(shù)據(jù)量)
情況下,延吋越低,歸一化吞吐率越高,表示性能越好。圖8和圖9 分別為片上網(wǎng)絡(luò)與總線結(jié)構(gòu)的延時(shí)和歸-化吞吐率性能的仿真比較結(jié)果。
權(quán)利要求
1. 一種片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在于,所述片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu)包括輸入模塊和輸出模塊,其中,輸入模塊包括頭部譯碼模塊,負(fù)責(zé)對(duì)進(jìn)入路由節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行頭部分析,并將數(shù)據(jù)輸入至數(shù)據(jù)緩存模塊;輸入緩存模塊,用于緩存數(shù)據(jù);輸入控制模塊,用于翻譯握手協(xié)議和對(duì)數(shù)據(jù)寫(xiě)入輸入緩存模塊的過(guò)程進(jìn)行控制;而輸出模塊包括輸出仲裁模塊,主要作用是控制數(shù)據(jù)向輸出緩存模塊輸入;輸出緩存模塊,用來(lái)存儲(chǔ)輸入端口傳入的數(shù)據(jù),并在輸出控制器的控制下輸出數(shù)據(jù);輸出控制模塊,用于實(shí)現(xiàn)對(duì)輸出鏈路的控制。
2. 根據(jù)權(quán)利要求1所述的片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在 于,所述頭部譯碼模塊進(jìn)行頭部分析的步驟包括首先通過(guò)路由算法確定數(shù)據(jù)的輸出端口; 再向與輸出端口對(duì)應(yīng)的V0Q發(fā)送請(qǐng)求信號(hào);頭部譯碼模塊接受到V0Q發(fā)回的允許信號(hào)后,通過(guò)虛擬通道選擇 器選擇一個(gè)非空通道將數(shù)據(jù)輸入至輸入緩存模塊。
3. 根據(jù)權(quán)利要求2所述的片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在 于,所述虛擬通道選擇器通過(guò)RR調(diào)度算法來(lái)實(shí)現(xiàn)非空通道的選擇, 以及將數(shù)據(jù)輸入至輸入緩存模塊。
4. 根據(jù)權(quán)利要求3所述的片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在于,所述RR調(diào)度算法包括如下歩驟首先將CPU處理-"個(gè)數(shù)據(jù)包的傳輸時(shí)間等分為若干個(gè)時(shí)間片,并 為每個(gè)虛擬通道分配若干個(gè)時(shí)間片;然后將所有虛擬通道排成 一個(gè)隊(duì)列,并從隊(duì)列的起點(diǎn)開(kāi)始選擇一 個(gè)含有數(shù)據(jù)的虛擬通道作為第一個(gè)向輸入緩存模塊輸入數(shù)據(jù)的非空通道;當(dāng)?shù)谝粋€(gè)非空通道使用完自身所有的時(shí)間片后,若第一個(gè)非空通 道內(nèi)的數(shù)據(jù)尚未輸入完畢,則停止輸入,并將第一個(gè)非空通道排列至 原隊(duì)列的末尾,同時(shí),按隊(duì)列的先后順序選擇第二個(gè)非空通道,并進(jìn) 行數(shù)據(jù)輸入;當(dāng)?shù)诙€(gè)非空通道使用完自身所有的時(shí)間片后,若其數(shù)據(jù)尚未輸 入完畢,則停止輸入,并將第二個(gè)非空通道排列至第一個(gè)非空通道之 后,同時(shí),按照新隊(duì)列的先后順序選擇第三個(gè)非空通道,并進(jìn)行數(shù)據(jù) 輸入;按照上述方法依次選擇隊(duì)列中所有的非空通道進(jìn)行數(shù)據(jù)輸入,直 到所有的非空通道將數(shù)據(jù)全部輸入至輸入緩存模塊。
5. 根據(jù)權(quán)利要求1所述的片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在 于,所述輸入緩存模塊由至少一組虛輸出隊(duì)列組成,每組虛輸出隊(duì)列 又由至少一個(gè)虛擬通道組成,所有虛擬通道結(jié)構(gòu)相同。
6. 根據(jù)權(quán)利要求4所述的片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在 于,所述時(shí)間片為在兩個(gè)相鄰路由節(jié)點(diǎn)之間傳輸一個(gè)完整數(shù)據(jù)包所需 時(shí)間。
7. 根據(jù)權(quán)利要求1所述的片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在 于,所述輸出仲裁模塊根據(jù)狀態(tài)機(jī)的狀態(tài)來(lái)控制數(shù)據(jù)向輸出緩存模塊 輸入。
8. 根據(jù)權(quán)利要求6所述的片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在 于,所述輸出仲裁模塊控制數(shù)據(jù)向輸出緩存模塊輸入的步驟包括首先在狀態(tài)機(jī)的初始狀態(tài),判斷輸出FIFO是否為空,若輸出FIFO 為空,則狀態(tài)機(jī)狀態(tài)保持不變;反之,則從輸出FIFO中讀出一個(gè)數(shù) 據(jù),狀態(tài)機(jī)從其初始狀態(tài)轉(zhuǎn)移到頭部檢測(cè)狀態(tài),并進(jìn)行頭部檢測(cè);頭部檢測(cè)狀態(tài)如檢測(cè)到數(shù)據(jù)包頭,那么狀態(tài)機(jī)轉(zhuǎn)移到數(shù)據(jù)傳輸狀 態(tài)進(jìn)行數(shù)據(jù)傳輸;否則,狀態(tài)機(jī)轉(zhuǎn)回其初始狀態(tài),并從輸出FIFO中 讀出下一個(gè)數(shù)據(jù)進(jìn)行頭部檢測(cè);狀態(tài)機(jī)處于數(shù)據(jù)傳輸狀態(tài)時(shí),狀態(tài)機(jī)根據(jù)下一級(jí)路由接點(diǎn)的信息 進(jìn)行數(shù)據(jù)傳輸,知道數(shù)據(jù)傳輸完畢;數(shù)據(jù)傳輸完畢后,若輸出FIFO為非空,狀態(tài)機(jī)直接轉(zhuǎn)移至頭部 檢測(cè)狀態(tài),進(jìn)行數(shù)據(jù)包頭檢測(cè),并進(jìn)行數(shù)據(jù)傳輸;反之;則回到狀態(tài) 機(jī)的初始狀態(tài)等待新數(shù)據(jù)到來(lái)。
9. 根據(jù)權(quán)利要求1所述的片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),其特征在 于,所述輸出控制模塊根據(jù)本級(jí)輸出緩存模塊的狀態(tài)對(duì)下級(jí)路由節(jié)點(diǎn) 的輸入端口提出請(qǐng)求,并接受下級(jí)路由節(jié)點(diǎn)的輸入端口發(fā)回的響應(yīng)信 號(hào),根據(jù)響應(yīng)信號(hào)來(lái)判斷是否輸出數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu),該片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)微結(jié)構(gòu)由頭部譯碼模塊、輸入緩存模塊、輸入控制模塊、輸出仲裁模塊、輸出緩存模塊和輸出控制模塊組成,頭部譯碼模塊對(duì)從上一級(jí)路由節(jié)點(diǎn)進(jìn)行本級(jí)路由節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行頭部分析,并將數(shù)據(jù)輸入至輸入緩存模塊,輸入緩存模塊用于數(shù)據(jù)的臨時(shí)存儲(chǔ),并在輸入控制模塊的作用下向輸出仲裁模塊輸入數(shù)據(jù);數(shù)據(jù)進(jìn)入輸出仲裁模塊后,輸出仲裁模塊根據(jù)輸出緩存模塊的狀態(tài)來(lái)決定是否向輸出緩存模塊輸出數(shù)據(jù),而輸出控制模塊則對(duì)整個(gè)輸出鏈路進(jìn)行控制,以實(shí)現(xiàn)對(duì)下一級(jí)路由接點(diǎn)傳輸數(shù)據(jù)。通過(guò)本發(fā)明所述的路由節(jié)點(diǎn)微結(jié)構(gòu),不僅可以實(shí)現(xiàn)片上網(wǎng)絡(luò)的路由節(jié)點(diǎn)間的數(shù)據(jù)傳輸,還能大大提高傳輸效率。
文檔編號(hào)H04L12/56GK101383712SQ20081004628
公開(kāi)日2009年3月11日 申請(qǐng)日期2008年10月16日 優(yōu)先權(quán)日2008年10月16日
發(fā)明者桓 李, 李玉柏, 楊中明, 松 柴, 暢 武, 堅(jiān) 王 申請(qǐng)人:電子科技大學(xué)