一種基于數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法
【專利摘要】本發(fā)明涉及一種基于數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法,包括:添加集中式網(wǎng)絡(luò)擁塞控制器及網(wǎng)絡(luò)路由部件,統(tǒng)計(jì)片上網(wǎng)絡(luò)流量數(shù)據(jù)及網(wǎng)絡(luò)狀態(tài),集中控制器收集路由統(tǒng)計(jì)數(shù)據(jù)信息,進(jìn)行擁塞判斷及擁塞源判斷,進(jìn)行網(wǎng)絡(luò)擁塞控制?,F(xiàn)有的網(wǎng)絡(luò)擁塞控制方法一般采用“黑盒子”方式,不清楚網(wǎng)絡(luò)中的具體偏轉(zhuǎn)情,當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí)限制注入率高的所有節(jié)點(diǎn),那些注入率高的非擁塞節(jié)點(diǎn)同樣受到限制;而本發(fā)明通過判斷每個(gè)路由的具體擁塞情況確定擁塞節(jié)點(diǎn),從而進(jìn)行有效的放矢的網(wǎng)絡(luò)擁塞控制。與現(xiàn)有技術(shù)相比,本發(fā)明能更好地確定網(wǎng)絡(luò)中具體的網(wǎng)絡(luò)擁塞源,在降低網(wǎng)絡(luò)平均延遲和網(wǎng)絡(luò)擁塞程度方面相對(duì)提高5%~10%左右。
【專利說明】一種基于數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域,具體涉及一種基于網(wǎng)絡(luò)數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的無緩存片上網(wǎng)絡(luò)(Bufferless NoC)擁塞控制方法。
【背景技術(shù)】
[0002]隨著半導(dǎo)體技術(shù)的不斷發(fā)展,單一芯片上集成的核心越來越多,傳統(tǒng)的總線通信方式不再能夠滿足片上部件的通信需求,而基于包交換的片上網(wǎng)絡(luò)(Network-on-Chips,NoC)由于其擴(kuò)展性和效率等方面優(yōu)勢(shì)成為當(dāng)今主流的片上互聯(lián)解決方案。NoC的設(shè)計(jì)通常受限于面積和功耗能,為了進(jìn)一步減小該方面的開銷,一種不同于傳統(tǒng)基于虛擬通道的片上網(wǎng)絡(luò),無緩存片上網(wǎng)絡(luò)成為近期的研究熱點(diǎn)。在無緩存片上網(wǎng)絡(luò)中,所有網(wǎng)絡(luò)路由中的緩存都被去掉,因此其路由方式不同于傳統(tǒng)片上網(wǎng)絡(luò)。
[0003]無緩存片上網(wǎng)絡(luò)路由中沒有可以存儲(chǔ)數(shù)據(jù)包(flit)的緩存,當(dāng)多個(gè)flit競(jìng)爭(zhēng)同一個(gè)路由端口時(shí),只能有一個(gè)flit可以獲得該端口,其它所有競(jìng)爭(zhēng)失敗的數(shù)據(jù)包都將從其它端口發(fā)出,這種flit被轉(zhuǎn)發(fā)到其它端口的情況稱之為flit發(fā)生了偏轉(zhuǎn)。發(fā)生偏轉(zhuǎn)的flit被偏轉(zhuǎn)到其它路由后,同樣按照原來的方式進(jìn)行路由,所以它在選擇端口的時(shí)候和其它flit發(fā)生端口競(jìng)爭(zhēng)。雖然無緩存片上網(wǎng)絡(luò)去掉了所有的緩存,但是這種偏轉(zhuǎn)機(jī)制使得其比較容易發(fā)生網(wǎng)絡(luò)擁塞。在無緩存片上網(wǎng)絡(luò)中,一旦一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生擁塞,偏轉(zhuǎn)機(jī)制就會(huì)把該節(jié)點(diǎn)的擁塞擴(kuò)展到整個(gè)網(wǎng)絡(luò)中,對(duì)整個(gè)系統(tǒng)的性能造成嚴(yán)重影響。
[0004]目前,無緩存片上網(wǎng)絡(luò)中的擁塞控制研究引起了國(guó)內(nèi)外技術(shù)人員越來越多的關(guān)注。文獻(xiàn)[I] (Nychis, George P., et al.〃0n-chip networks from a networkingperspective:Congestion and scalability in many-core interconnects.〃ACM SIGCOMMComputer Communication Review42.4(2012):407-418.)提出了一種擁塞控制技術(shù),把網(wǎng)絡(luò)當(dāng)成一個(gè)黑盒子,通過注入節(jié)點(diǎn)的饑餓率和平均每條指令的注入率來判斷網(wǎng)絡(luò)的擁塞和需要進(jìn)行注入限制的節(jié)點(diǎn)。該項(xiàng)技術(shù)存在的一個(gè)最大問題就是無法知道網(wǎng)絡(luò)中具體的擁塞情況,當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí)僅僅只是限制注入率高的節(jié)點(diǎn),那些注入率高的非擁塞節(jié)點(diǎn)的性能將會(huì)受到影響。
【發(fā)明內(nèi)容】
[0005]針對(duì)現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明提出一種基于網(wǎng)絡(luò)數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法,通過記錄網(wǎng)絡(luò)中的數(shù)據(jù)偏轉(zhuǎn)情況,確定具體網(wǎng)絡(luò)擁塞源,并對(duì)擁塞源進(jìn)行注入控制,有效地減少了無緩存片上網(wǎng)絡(luò)的擁塞程度。
[0006]為了實(shí)現(xiàn)上述目的,本方發(fā)明采用以下技術(shù)方案。
[0007]一種基于數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法,包括以下步驟:
[0008]步驟1,添加集中式網(wǎng)絡(luò)擁塞控制器及網(wǎng)絡(luò)路由部件。
[0009]步驟1.1,在片上網(wǎng)絡(luò)中添加一個(gè)集中式網(wǎng)絡(luò)擁塞控制器。
[0010]集中式網(wǎng)絡(luò)擁塞控制器CC(Centralized Controller),可以是一個(gè)具體的處理器核,通過時(shí)鐘中斷來進(jìn)行網(wǎng)絡(luò)擁塞控制,也可以是一個(gè)專一的邏輯控制部件。
[0011]步驟1.2,在每個(gè)無緩存片上網(wǎng)絡(luò)路由中添加以下部件:
[0012](I) 一個(gè)長(zhǎng)度和處理器核數(shù)相同的偏轉(zhuǎn)計(jì)數(shù)器組,記為DRC (Deflection RecordCounter);
[0013](2) 一個(gè)統(tǒng)計(jì)路由注入端口發(fā)生饑餓情況的饑餓計(jì)數(shù)器,記為SRC (StarvationRecord Counter);
[0014](3) —個(gè)用于記錄注入數(shù)據(jù)包數(shù)量的注入計(jì)數(shù)器,記為JRC (Injection RecordCounter);
[0015](4)—個(gè)用于記錄處理器執(zhí)行指令數(shù)的指令計(jì)數(shù)器,記為IRC (InstructionRecord Counter);
[0016](5) —個(gè)用于限制路由注入快慢的節(jié)流寄存器,記為TRR (Throttle RateRegister)。
[0017]步驟2,統(tǒng)計(jì)片上網(wǎng)絡(luò)流量數(shù)據(jù)及網(wǎng)絡(luò)狀態(tài)。
[0018]步驟2.1,路由統(tǒng)計(jì)其接受到的所有flit的偏轉(zhuǎn)情況。
[0019]由偏轉(zhuǎn)計(jì)數(shù)器組DRC統(tǒng)計(jì)接受到的所有flit的偏轉(zhuǎn)次數(shù),每一個(gè)計(jì)數(shù)器對(duì)應(yīng)一個(gè)路由器。例如,計(jì)數(shù)器組中的編號(hào)為I計(jì)數(shù)器記錄的數(shù)據(jù)是網(wǎng)絡(luò)中編號(hào)為I的路由發(fā)出的數(shù)據(jù)包在該路由節(jié)點(diǎn)上發(fā)生的偏轉(zhuǎn)次數(shù)。當(dāng)某個(gè)flit在某個(gè)路由上發(fā)生偏轉(zhuǎn)時(shí),相應(yīng)的偏轉(zhuǎn)計(jì)數(shù)器加I。
[0020]步驟2.2,統(tǒng)計(jì)饑餓數(shù)。
[0021]當(dāng)路由有數(shù)據(jù)包需要注入到網(wǎng)絡(luò)中時(shí),需要先檢測(cè)它有沒有可用的空閑端口,如果沒有,數(shù)據(jù)包注入操作在當(dāng)前周期內(nèi)不能完成,延遲到下一個(gè)周期。這種不能注入數(shù)據(jù)包的情況稱之為該路由發(fā)生了饑餓。
[0022]由饑餓情況計(jì)數(shù)器SRC統(tǒng)計(jì)饑餓數(shù),當(dāng)路由發(fā)生饑餓時(shí),路由中的饑餓計(jì)數(shù)器SRC加I。
[0023]步驟2.3,統(tǒng)計(jì)注入數(shù)。
[0024]由數(shù)據(jù)包注入數(shù)量計(jì)數(shù)器JRC統(tǒng)計(jì)注入數(shù),每當(dāng)路由節(jié)點(diǎn)向網(wǎng)絡(luò)中成功注入一個(gè)數(shù)據(jù)包時(shí),路由中的數(shù)據(jù)包注入計(jì)數(shù)器JRC加I。
[0025]步驟2.4,統(tǒng)計(jì)指令條量。
[0026]由指令計(jì)數(shù)器IRC統(tǒng)計(jì)指令,每當(dāng)和網(wǎng)絡(luò)路由對(duì)應(yīng)的處理器執(zhí)行完成一條指令后,路由中的指令計(jì)數(shù)器IRC加I。
[0027]步驟3,集中控制器CC收集步驟2得到的路由統(tǒng)計(jì)數(shù)據(jù)信息。
[0028]步驟3.1,每隔T I)個(gè)周期,集中控制器CC向網(wǎng)絡(luò)中的所有路由器廣播信息收集的請(qǐng)求數(shù)據(jù)包。
[0029]步驟3.2,路由節(jié)點(diǎn)收到集中控制器CC發(fā)來的數(shù)據(jù)收集請(qǐng)求后,將收集到的所有數(shù)據(jù)打成一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包,然后發(fā)送給集中控制器CC作為其請(qǐng)求數(shù)據(jù)包的響應(yīng),同時(shí)使所有數(shù)據(jù)統(tǒng)計(jì)計(jì)數(shù)器歸零。
[0030]步驟3.3,集中式控制器CC接收到所有應(yīng)答數(shù)據(jù)包后,對(duì)數(shù)據(jù)包中的統(tǒng)計(jì)信息進(jìn)行解析和分類。
[0031]步驟4,進(jìn)行擁塞判斷及擁塞源判斷。[0032]步驟4.1,集中控制器CC計(jì)算各個(gè)路由的饑餓率SR和平均每個(gè)flit對(duì)應(yīng)的指令數(shù) IPF (Instruction per flit),公式分別如下:
【權(quán)利要求】
1.一種基于數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法,其特征在于,通過記錄網(wǎng)絡(luò)中的數(shù)據(jù)偏轉(zhuǎn)情況,確定具體網(wǎng)絡(luò)擁塞源,并對(duì)擁塞源進(jìn)行注入控制,有效地減少無緩存片上網(wǎng)絡(luò)的擁塞程度;所述方法包括以下步驟: 步驟1,添加集中式網(wǎng)絡(luò)擁塞控制器及網(wǎng)絡(luò)路由部件; 步驟1.1,在片上網(wǎng)絡(luò)中添加一個(gè)集中式網(wǎng)絡(luò)擁塞控制器; 步驟1.2,在每個(gè)無緩存片上網(wǎng)絡(luò)路由中添加部件; 步驟2,統(tǒng)計(jì)片上網(wǎng)絡(luò)流量數(shù)據(jù)及網(wǎng)絡(luò)狀態(tài); 步驟2.1,路由統(tǒng)計(jì)其接受到的所有數(shù)據(jù)包flit的偏轉(zhuǎn)情況; 由偏轉(zhuǎn)計(jì)數(shù)器組DRC統(tǒng)計(jì)接受到的所有flit的偏轉(zhuǎn)次數(shù),每一個(gè)計(jì)數(shù)器對(duì)應(yīng)一個(gè)路由器;當(dāng)某個(gè)flit在某個(gè)路由上發(fā)生偏轉(zhuǎn)時(shí),相應(yīng)的偏轉(zhuǎn)計(jì)數(shù)器加I ; 步驟2.2,統(tǒng)計(jì)饑餓數(shù); 由饑餓情況計(jì)數(shù)器SRC統(tǒng)計(jì)饑餓數(shù),當(dāng)路由發(fā)生饑餓時(shí),路由中的饑餓計(jì)數(shù)器SRC加I ; 步驟2.3,統(tǒng)計(jì)注入數(shù); 由數(shù)據(jù)包注入數(shù)量 計(jì)數(shù)器JRC統(tǒng)計(jì)注入數(shù),每當(dāng)路由節(jié)點(diǎn)向網(wǎng)絡(luò)中成功注入一個(gè)數(shù)據(jù)包時(shí),路由中的數(shù)據(jù)包注入計(jì)數(shù)器JRC加I ; 步驟2.4,統(tǒng)計(jì)指令條量; 由指令計(jì)數(shù)器IRC統(tǒng)計(jì)指令,每當(dāng)和網(wǎng)絡(luò)路由對(duì)應(yīng)的處理器執(zhí)行完成一條指令后,路由中的指令計(jì)數(shù)器IRC加I ; 步驟3,集中控制器CC收集步驟2得到的路由統(tǒng)計(jì)數(shù)據(jù)信息; 步驟3.1,每隔T個(gè)周期,集中控制器CC向網(wǎng)絡(luò)中的所有路由器廣播信息收集的請(qǐng)求數(shù)據(jù)包;T≥I ; 步驟3.2,路由節(jié)點(diǎn)收到集中控制器CC發(fā)來的數(shù)據(jù)收集請(qǐng)求后,將收集到的所有數(shù)據(jù)打成一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包,然后發(fā)送給集中控制器CC作為其請(qǐng)求數(shù)據(jù)包的響應(yīng),同時(shí)使所有數(shù)據(jù)統(tǒng)計(jì)計(jì)數(shù)器歸零; 步驟3.3,集中式控制器CC接收到所有應(yīng)答數(shù)據(jù)包后,對(duì)數(shù)據(jù)包中的統(tǒng)計(jì)信息進(jìn)行解析和分類; 步驟4,進(jìn)行擁塞判斷及擁塞源判斷; 步驟4.1,集中控制器CC計(jì)算各個(gè)路由的饑餓率SR和平均每個(gè)flit對(duì)應(yīng)的指令數(shù)IPF,公式分別如下:
2.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法,其特征在于,所述步驟1.1在片上網(wǎng)絡(luò)中添加的集中式網(wǎng)絡(luò)擁塞控制器CC,可以是一個(gè)具體的處理器核,通過時(shí)鐘中斷來進(jìn)行網(wǎng)絡(luò)擁塞控制,也可以是一個(gè)專一的邏輯控制部件。
3.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法,其特征在于,所述步驟1.2在每個(gè)無緩存片上網(wǎng)絡(luò)路由中添加如下部件: (O 一個(gè)長(zhǎng)度和處理器核數(shù)相同的偏轉(zhuǎn)計(jì)數(shù)器組,記為DRC ; (2)—個(gè)統(tǒng)計(jì)路由注入端口發(fā)生饑餓情況的饑餓計(jì)數(shù)器,記為SRC ; (3)一個(gè)用于記錄注入數(shù)據(jù)包數(shù)量的注入計(jì)數(shù)器,記為JRC ; (4)一個(gè)用于記錄處理器執(zhí)行指令數(shù)的指令計(jì)數(shù)器,記為IRC ; (5)一個(gè)用于限制路由注入快慢的節(jié)流寄存器,記為TRR。
4.根據(jù)權(quán)利要求1所述的一種基于數(shù)據(jù)包偏轉(zhuǎn)統(tǒng)計(jì)的網(wǎng)絡(luò)流量控制方法,其特征在于,步驟2.2所述的饑餓是指:當(dāng)路由有數(shù)據(jù)包需要注入到網(wǎng)絡(luò)中時(shí),如果沒有可用的空閑端口,數(shù)據(jù)包注入操作在需延遲到下一個(gè)周期;這種不能注入數(shù)據(jù)包的情況稱為饑餓。
【文檔編號(hào)】H04L12/24GK103825833SQ201410090412
【公開日】2014年5月28日 申請(qǐng)日期:2014年3月12日 優(yōu)先權(quán)日:2014年3月12日
【發(fā)明者】方娟, 姚治成 申請(qǐng)人:北京工業(yè)大學(xué)