附加請(qǐng)求數(shù)優(yōu)先級(jí)的片上網(wǎng)絡(luò)資源仲裁方法及仲裁單元的制作方法
【技術(shù)領(lǐng)域】
:
[0001]本發(fā)明涉及片上網(wǎng)絡(luò)設(shè)計(jì)領(lǐng)域,具體涉及一種解決片上網(wǎng)絡(luò)全局鏈路節(jié)點(diǎn)服務(wù)公平性的仲裁方法及仲裁單元。
【背景技術(shù)】
:
[0002]片上網(wǎng)絡(luò)(Network on Chip, NoC)技術(shù)的出現(xiàn)使單芯片可以集成數(shù)目眾多的同構(gòu)或異構(gòu)IP核。異構(gòu)IP核如內(nèi)存、1控制器可以作為共享資源供其它主IP核如CPU訪問(wèn)。當(dāng)訪問(wèn)請(qǐng)求發(fā)生競(jìng)爭(zhēng)和沖突時(shí),片上路由器的的仲裁單元為多個(gè)輸入請(qǐng)求分配虛擬通道(virtual channel, VC)和輸出端口資源,其執(zhí)行效率、公平性、復(fù)雜程度直接決定了 NoC的性能。NoC中采用的仲裁方法有固定優(yōu)先級(jí)仲裁(FPA)、可變優(yōu)先級(jí)仲裁(VPA)、輪詢仲裁(RRA)、加權(quán)仲裁(WRR)等。其中輪詢仲裁因其簡(jiǎn)單易實(shí)現(xiàn)被較多NoC設(shè)計(jì)采用。輪詢算法一般按請(qǐng)求、應(yīng)答、授權(quán)三個(gè)步驟執(zhí)行。在一個(gè)請(qǐng)求隊(duì)列ΣΓι里,每個(gè)成員(請(qǐng)求)都具有相同的地位,輪詢算法在這組成員中順序給予資源授權(quán)。輪詢算法的資源分配是可預(yù)知的,每個(gè)請(qǐng)求被選擇的機(jī)會(huì)是1/ΣΓι,適用于集群中所有路由節(jié)點(diǎn)的處理能力和性能均相同的情況。但是,輪詢仲裁只能在本地節(jié)點(diǎn)提供公平服務(wù)。當(dāng)源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包沿著路由鏈路傳播時(shí),在未到達(dá)目的節(jié)點(diǎn)處的共享IP核之前,不斷有其他源節(jié)點(diǎn)發(fā)送過(guò)來(lái)的數(shù)據(jù)包注入鏈路,距離共享IP核一個(gè)跳數(shù)的節(jié)點(diǎn)只需要經(jīng)過(guò)一個(gè)路由節(jié)點(diǎn)的輪詢仲裁,而距離共享IP核η個(gè)跳數(shù)的節(jié)點(diǎn)則需要經(jīng)過(guò)η個(gè)路由節(jié)點(diǎn)的輪詢仲裁,這會(huì)導(dǎo)致距離共享IP核遠(yuǎn)的節(jié)點(diǎn)得到服務(wù)的概率不斷降低。
[0003]解決此問(wèn)題并提供全局節(jié)點(diǎn)的服務(wù)公平性主要有兩種方法,一是采用加權(quán)算法,根據(jù)節(jié)點(diǎn)當(dāng)前的負(fù)載狀況(即權(quán)值)來(lái)構(gòu)成負(fù)載平衡的優(yōu)先級(jí)隊(duì)列,隊(duì)列中的每個(gè)等待處理的成員都具有不同處理等級(jí),按照加權(quán)后的優(yōu)先級(jí)順序進(jìn)行處理,該方案需要?jiǎng)討B(tài)監(jiān)控資源的狀態(tài)并實(shí)時(shí)計(jì)算數(shù)據(jù)包權(quán)值,增加額外的延時(shí),實(shí)現(xiàn)較復(fù)雜。二是引入計(jì)算機(jī)領(lǐng)域的數(shù)據(jù)包壽命機(jī)制,即Age-based仲裁(ABA)。ABA可以為多個(gè)數(shù)據(jù)包競(jìng)爭(zhēng)同一共享資源時(shí)提供全局公平性,生存時(shí)間最長(zhǎng)數(shù)據(jù)包最先得到權(quán)限,但是在NoC中該方案實(shí)現(xiàn)較困難,需要占用較大的片上資源。
[0004]綜上所述,常用的NoC資源仲裁算法如FPA、VPA、RRA難以保證全局節(jié)點(diǎn)的服務(wù)的公平性,而WRR和ABA實(shí)現(xiàn)復(fù)雜,占用資源較多,在NoC中不易采用。本文提出了一種附加請(qǐng)求數(shù)優(yōu)先級(jí)的片上網(wǎng)絡(luò)資源仲裁方法,在傳統(tǒng)的仲裁單元中附加了一個(gè)請(qǐng)求計(jì)數(shù)和優(yōu)先級(jí)排序結(jié)構(gòu),根據(jù)頭微片的請(qǐng)求計(jì)數(shù)位對(duì)各微片進(jìn)行優(yōu)先級(jí)排序,可以有效的解決遠(yuǎn)端節(jié)點(diǎn)多次請(qǐng)求均得不到資源的情況,有利于提供公平服務(wù)保證。
【發(fā)明內(nèi)容】
:
[0005]本發(fā)明的目的是為了解決片上網(wǎng)絡(luò)不同位置的節(jié)點(diǎn)在訪問(wèn)同一共享IP核時(shí)傳統(tǒng)NoC仲裁算法帶來(lái)的全局公平服務(wù)問(wèn)題。為實(shí)現(xiàn)本發(fā)明的目的提供了一種附加請(qǐng)求數(shù)加權(quán)的片上網(wǎng)絡(luò)仲裁方法,包括以下步驟:
[0006]A:仲裁單元接收各個(gè)頭微片發(fā)起的資源請(qǐng)求,并檢測(cè)各個(gè)頭微片的請(qǐng)求標(biāo)志位,對(duì)請(qǐng)求標(biāo)志位為執(zhí)行計(jì)數(shù)狀態(tài)的頭微片的執(zhí)行請(qǐng)求計(jì)數(shù)位加I操作;其中所述頭微片包含請(qǐng)求計(jì)數(shù)位、仲裁方式選擇位、請(qǐng)求標(biāo)志位;
[0007]B:若各個(gè)頭微片中有一個(gè)頭微片的仲裁方式選擇位為請(qǐng)求數(shù)優(yōu)先級(jí)仲裁或者請(qǐng)求計(jì)數(shù)位的值達(dá)到預(yù)定值則仲裁單元執(zhí)行步驟D請(qǐng)求數(shù)優(yōu)先級(jí)仲裁;否則仲裁單元執(zhí)行步驟C輪詢仲裁;
[0008]C:仲裁單元按照順序分配資源算法為各個(gè)頭微片分配虛擬通道和端口資源,與頭微片關(guān)聯(lián)的數(shù)據(jù)包從分配到虛擬通道和端口資源輸出后送入下一個(gè)路由節(jié)點(diǎn);
[0009]D:仲裁單元以各個(gè)頭微片的請(qǐng)求計(jì)數(shù)位的值作為優(yōu)先級(jí)并進(jìn)行排序,優(yōu)先級(jí)最高的頭微片優(yōu)先得到虛擬通道和端口資源,頭微片關(guān)聯(lián)的數(shù)據(jù)包從分配到虛擬通道和端口資源輸出后送入下一個(gè)路由節(jié)點(diǎn)。
[0010]進(jìn)一步,仲裁單元在頭微片的請(qǐng)求計(jì)數(shù)位全為高電平時(shí)則置仲裁方式選擇位為優(yōu)先級(jí)仲裁方式,置請(qǐng)求標(biāo)志位為停止計(jì)數(shù)狀態(tài)。
[0011]優(yōu)選地,所述仲裁方式選擇位的初始值為輪詢仲裁方式。
[0012]優(yōu)選地,所述步驟B中請(qǐng)求計(jì)數(shù)位的值全為I時(shí),仲裁單元執(zhí)行步驟D請(qǐng)求數(shù)優(yōu)先級(jí)仲裁。
[0013]優(yōu)選地,所述請(qǐng)求計(jì)數(shù)位在數(shù)據(jù)包注入路由節(jié)點(diǎn)時(shí)初始值為0,在節(jié)點(diǎn)鏈路中傳輸時(shí),每發(fā)起一次資源請(qǐng)求,則由仲裁單元對(duì)請(qǐng)求計(jì)數(shù)位加I。
[0014]優(yōu)選地,步驟D中,若有兩個(gè)或兩個(gè)以上的頭微片請(qǐng)求計(jì)數(shù)位數(shù)值相等,則隨機(jī)選擇一個(gè)頭微片進(jìn)行資源分配。
[0015]優(yōu)選地,若源節(jié)點(diǎn)發(fā)送緊急數(shù)據(jù)包時(shí),則在注入網(wǎng)絡(luò)之前將頭微片請(qǐng)求計(jì)數(shù)位置為最高。
[0016]本發(fā)明的另一目的在于提供一種用于實(shí)現(xiàn)上述片上網(wǎng)絡(luò)資源仲裁方法的仲裁單元,包括η個(gè)資源狀態(tài)輸入端口、η個(gè)請(qǐng)求信號(hào)輸入端口、P Xη個(gè)授權(quán)信號(hào)輸出端口、I個(gè)仲裁選擇輸入端口、I個(gè)請(qǐng)求計(jì)數(shù)器、I個(gè)輪詢仲裁模塊和I個(gè)優(yōu)先級(jí)仲裁模塊;
[0017]所述η個(gè)資源狀態(tài)輸入端口用于監(jiān)測(cè)虛擬通道或輸出端口的狀態(tài);
[0018]所述ρΧη個(gè)請(qǐng)求信號(hào)輸入端口用于接收各頭微片發(fā)起的資源請(qǐng)求信號(hào),P為輸入端口的虛擬通道數(shù)目;
[0019]所述I個(gè)請(qǐng)求計(jì)數(shù)器用于對(duì)檢測(cè)各個(gè)頭微片的請(qǐng)求標(biāo)志位,對(duì)請(qǐng)求標(biāo)志位為執(zhí)行計(jì)數(shù)狀態(tài)的頭微片的執(zhí)行請(qǐng)求計(jì)數(shù)位加I操作;
[0020]所述I個(gè)仲裁選擇輸入端口用于根據(jù)各個(gè)頭微片中若有一個(gè)頭微片的仲裁方式選擇位為請(qǐng)求數(shù)優(yōu)先級(jí)仲裁或者請(qǐng)求計(jì)數(shù)位的值達(dá)到預(yù)定值則啟動(dòng)請(qǐng)求數(shù)優(yōu)先級(jí)仲裁模塊;否則啟動(dòng)輪詢仲裁模塊;
[0021]所述I個(gè)輪詢仲裁模塊用于按照順序分配資源算法對(duì)各個(gè)頭微片執(zhí)行roundrobin輪詢仲裁;
[0022]所述I個(gè)優(yōu)先級(jí)仲裁模塊用于對(duì)各個(gè)頭微片中的請(qǐng)求計(jì)數(shù)位的值的大小進(jìn)行排序,執(zhí)彳丁尚低優(yōu)先級(jí)仲裁;
[0023]所述η個(gè)授權(quán)信號(hào)輸出端口用于把輸出端口分配給授權(quán)的數(shù)據(jù)包。本發(fā)明的優(yōu)點(diǎn)、有益效果在于:
[0024]1.本發(fā)明可以為不同位置節(jié)點(diǎn)訪問(wèn)同一共享IP核提供公平服務(wù)保證,尤其對(duì)遠(yuǎn)距離節(jié)點(diǎn)多次請(qǐng)求未被授權(quán)的情況有較大改善,可以有效降低NoC網(wǎng)絡(luò)的延時(shí)抖動(dòng)。
[0025]2.在傳統(tǒng)仲裁單元的基礎(chǔ)上附加請(qǐng)求計(jì)數(shù)和優(yōu)先級(jí)排序結(jié)構(gòu),對(duì)于仲裁單元的面積和功耗開銷影響不大,適用于大規(guī)模的SoC設(shè)計(jì)。
[0026]3.在頭數(shù)據(jù)微片中引入請(qǐng)求計(jì)數(shù)位不僅起到標(biāo)志優(yōu)先級(jí)的作用,而且還可以在初始注入階段通過(guò)置高請(qǐng)求計(jì)數(shù)位的方式使該數(shù)據(jù)包在每個(gè)路由節(jié)點(diǎn)都得到優(yōu)先服務(wù),即可以提供一定的服務(wù)質(zhì)量保證。
[0027]下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【附圖說(shuō)明】
:
[0028]圖1為本發(fā)明仲裁方法具體實(shí)施例的數(shù)據(jù)包幀格式示意圖;
[0029]圖2為本發(fā)明仲裁單元具體實(shí)施例的結(jié)構(gòu)示意圖;
[0030]圖3為本發(fā)明具體仲裁過(guò)程示意圖;
[0031]圖4為本發(fā)明仲裁方法和仲裁單元具體實(shí)施例在4X4 2D Mesh網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的應(yīng)用示意圖。
【具體實(shí)施方式】
:
[0032]為了更清楚的介紹本發(fā)明提出的一種附加請(qǐng)求數(shù)優(yōu)先級(jí)的片上網(wǎng)絡(luò)資源仲裁方法及仲裁單元,下面將結(jié)合附圖和具體實(shí)例進(jìn)行詳細(xì)說(shuō)明。
[0033]根據(jù)說(shuō)明書所述的附加請(qǐng)求數(shù)優(yōu)先級(jí)的片上網(wǎng)絡(luò)資源仲裁方法,以4X4 2D MESH網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為例,所述的片上網(wǎng)絡(luò)包含路由節(jié)點(diǎn)、資源節(jié)點(diǎn)和互連通道;傳輸協(xié)議為帶有虛擬通道的蟲孔路由,數(shù)據(jù)包被分割成若干微片;所述資源包含虛擬通道資源和輸出端口資源。實(shí)現(xiàn)本發(fā)明所采用的數(shù)據(jù)包幀格式實(shí)例如圖1所示。每個(gè)數(shù)據(jù)包包含一個(gè)頭微片和若干個(gè)負(fù)載微片,其中第一個(gè)微片為頭微片,包含使能連接位LA、微片控制位FC[0:3]、頭信息位HI [0:8]、仲裁控制位(AS、CF、RC [0:7])和數(shù)據(jù)位DATA,其它微片為負(fù)載微片,包含使能連接位LA,微片控制位FC和數(shù)據(jù)位DATA。其中,
[0034]使能連接位LA,用于控制路由節(jié)點(diǎn)之間的通斷;
[0035]微片控制位FC[0:3],其中FC[0]為微片有效標(biāo)志位,F(xiàn)C[1:2]為虛擬通道選擇位,F(xiàn)C [3]為頭微片標(biāo)志位;
[0036]頭信息位HI [0:8],其中HI [0:2]為輸出端口選擇位、HI [3:6]為目的節(jié)點(diǎn)地址位、HI [7:8]為負(fù)載微片數(shù)目位;
[0037]仲裁控制位,其中AS為仲裁方式選擇位(O為輪詢仲裁,I為請(qǐng)求數(shù)優(yōu)先級(jí)仲裁),CF為請(qǐng)求標(biāo)志位(O代表繼續(xù)計(jì)數(shù),I代表停止計(jì)數(shù)),RC [0: