• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種帶優(yōu)化約束的分布式NoC設(shè)計(jì)與實(shí)現(xiàn)

      2021-12-10 03:57:08王正茂宋宇鯤王澤中張多利
      關(guān)鍵詞:源端路由鏈路

      王正茂, 宋宇鯤, 侯 寧, 王澤中, 張多利

      (1.合肥工業(yè)大學(xué) 微電子學(xué)院,安徽 合肥 230601; 2.河南城建學(xué)院 電氣與控制工程學(xué)院,河南 平頂山 467036)

      隨著工藝進(jìn)步,單個(gè)芯片內(nèi)已能集成數(shù)以百計(jì)的內(nèi)核,此時(shí),傳統(tǒng)總線或分段總線結(jié)構(gòu)的擴(kuò)展性差、并行通信能力弱的缺陷使得其無法滿足現(xiàn)代多核芯片對(duì)內(nèi)部通訊性能的要求[1]。誕生于20世紀(jì)末的片上網(wǎng)絡(luò)(network-on-chip,NoC)技術(shù)被業(yè)界認(rèn)為是一種從體系結(jié)構(gòu)上解決上述問題的有效技術(shù)途徑[2]。目前多核芯片通常集成有多種功能定制化網(wǎng)絡(luò),即網(wǎng)絡(luò)功能正交化,將不同功能分置于專用定制網(wǎng)絡(luò)上,例如,Tilera公司的Tile系列多核處理器集成有靜態(tài)網(wǎng)絡(luò)(STN)、單元?jiǎng)討B(tài)網(wǎng)絡(luò)(TDN)、用戶動(dòng)態(tài)網(wǎng)絡(luò)(UDN)、存儲(chǔ)動(dòng)態(tài)網(wǎng)絡(luò)(MDN)、IO動(dòng)態(tài)網(wǎng)絡(luò)(IDN)等5種獨(dú)立功能網(wǎng)絡(luò)[3];TI公司的多核DSP TMS320C6678內(nèi)部任務(wù)控制網(wǎng)絡(luò)和數(shù)據(jù)網(wǎng)絡(luò)也是相互對(duì)立的[4];TRIPS處理器內(nèi)部設(shè)置了指令、數(shù)據(jù)和控制通道分離的設(shè)計(jì)結(jié)構(gòu)[5]。NoC作為片上通訊載體,其性能是決定整個(gè)多核系統(tǒng)運(yùn)算性能的重要因素,因此有關(guān)NoC拓?fù)浣Y(jié)構(gòu)、路由算法和交換機(jī)制等相關(guān)技術(shù)始終是研究的主要熱點(diǎn)。

      1 相關(guān)研究

      依據(jù)鏈路建立過程,NoC可分為集中控制和分布式控制兩大類[6]。

      集中控制由一個(gè)中央節(jié)點(diǎn)負(fù)責(zé)定期收集網(wǎng)絡(luò)狀態(tài),再計(jì)算產(chǎn)生各條鏈路的全路徑路由配置信息,管理各個(gè)路由節(jié)點(diǎn)的路由方向;分布式控制是網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)根據(jù)目的節(jié)點(diǎn)的相對(duì)位置和自身周邊節(jié)點(diǎn)狀態(tài),在本地獨(dú)立地計(jì)算后繼有限范圍內(nèi)的節(jié)點(diǎn)位置。綜合考慮實(shí)現(xiàn)復(fù)雜性和網(wǎng)絡(luò)性能后,目前多數(shù)NoC采用分布式結(jié)構(gòu)[6]。

      分布式控制網(wǎng)絡(luò)的鏈路分為有效鏈路和無效鏈路2種情況,前者指完成了數(shù)據(jù)傳輸?shù)逆溌?后者指鏈路建立失敗或鏈路成功而目的端無效的情況,稱此鏈路為無效鏈路。為保證數(shù)據(jù)傳輸時(shí)效性,發(fā)起端在檢測(cè)到無效鏈路后,應(yīng)等待若干時(shí)間后再次嘗試建立鏈路,直至數(shù)據(jù)傳輸成功[7]。

      對(duì)鏈路擁堵造成NoC性能下降的問題,文獻(xiàn)[8]提出一種可以根據(jù)當(dāng)前路由負(fù)載狀態(tài)進(jìn)行算法切換的動(dòng)態(tài)混合路由設(shè)計(jì),該路由可根據(jù)負(fù)載狀態(tài),在確定路由和多負(fù)載均衡路由間自行切換,在一定程度上降低關(guān)鍵路由的繁忙率,緩解路由擁塞;文獻(xiàn)[9]針對(duì)NoC中存在多種與時(shí)間相關(guān)的流量負(fù)載情況,設(shè)計(jì)了一種針對(duì)特定拓?fù)浣Y(jié)構(gòu)的全局鏈路管理機(jī)制,通過監(jiān)視網(wǎng)絡(luò)狀態(tài),動(dòng)態(tài)調(diào)整每個(gè)鏈路的具體路由算法,來獲得高負(fù)載平衡和高吞吐量;文獻(xiàn)[10]提出了一種基于曼哈頓距離的多播自適應(yīng)路由方案,該方案通過引入的特定約束,避免了死鎖和活鎖的影響,實(shí)現(xiàn)更好的平均流量分配,提高了網(wǎng)絡(luò)性能;文獻(xiàn)[11]提出一種新型路由內(nèi)部?jī)?yōu)先級(jí)仲裁方法,該方法有效提高了NoC飽和流量值;Spider-Donut網(wǎng)絡(luò)半徑小于2D網(wǎng)絡(luò),文獻(xiàn)[12]研究了一種用于Spider-Donut網(wǎng)絡(luò)的無死鎖路由算法,實(shí)現(xiàn)均衡的片上流量,進(jìn)而提高整個(gè)網(wǎng)絡(luò)性能;文獻(xiàn)[13]在NoC路由器中使用基于遺傳算法的鏈路負(fù)載平衡技術(shù),實(shí)現(xiàn)快速流量均衡分配,避免負(fù)載不均衡帶來的鏈路擁堵狀況。

      上述研究工作的重心集中于通過優(yōu)化路由算法平衡網(wǎng)絡(luò)負(fù)載,緩解NoC中擁堵問題,處理對(duì)象是有效鏈路,沒有考慮無效鏈路因素,隨著NoC規(guī)模不斷擴(kuò)展,節(jié)點(diǎn)布局密度趨近1,高注入率下,無效鏈路對(duì)整個(gè)網(wǎng)絡(luò)性能的影響已無法被忽視。為此,本文在已有NoC相關(guān)研究的基礎(chǔ)上,從減少無效鏈路數(shù)量的角度出發(fā),提出了一種受約束分布式片上網(wǎng)絡(luò)機(jī)制(constrained distributed NoC mechanism,CDNM),設(shè)計(jì)出一種目的端狀態(tài)追蹤機(jī)制和鏈路維持協(xié)議,進(jìn)一步降低NoC片上擁堵率,提升大通訊量NoC系統(tǒng)的整體性能。本文提出的受約束分布式NoC可以用于不同路由方式,具有良好的適用性。

      2 改進(jìn)分布式網(wǎng)絡(luò)設(shè)計(jì)實(shí)現(xiàn)

      本文從面向計(jì)算密集型和數(shù)據(jù)密集型任務(wù)的多核系統(tǒng)內(nèi)部數(shù)據(jù)交互需求出發(fā),結(jié)合多核系統(tǒng)編程模型規(guī)范,通過將目的端狀態(tài)引入分布式網(wǎng)絡(luò),構(gòu)建了一種基于兩端狀態(tài)條件約束的分布式NoC,包括一種目的端狀態(tài)快速傳輸方案和基于這一方案的鏈路建立規(guī)則,以及一種鏈路維持協(xié)議。

      2.1 改進(jìn)網(wǎng)絡(luò)概述

      本文設(shè)計(jì)的NoC采用三重網(wǎng)絡(luò)結(jié)構(gòu)組成,包括數(shù)據(jù)網(wǎng)絡(luò)、狀態(tài)網(wǎng)絡(luò)和配置網(wǎng)絡(luò)。狀態(tài)網(wǎng)絡(luò)將網(wǎng)絡(luò)中各功能節(jié)點(diǎn)狀態(tài)信息上傳至主控制器,各功能節(jié)點(diǎn)的配置和管理信息通過配置網(wǎng)下行到各功能節(jié)點(diǎn),形成一個(gè)閉環(huán)的管理機(jī)制。數(shù)據(jù)網(wǎng)絡(luò)采用“包-電路交換”(packet-connected circuit,PCC)機(jī)制、Mesh拓?fù)浣Y(jié)構(gòu)和回退轉(zhuǎn)向路由算法。

      改進(jìn)的分布式網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

      圖1 改進(jìn)的分布式網(wǎng)絡(luò)結(jié)構(gòu)

      PCC通過包交換方式建立鏈路,再通過電路交換方式傳輸數(shù)據(jù),是一種適合大批量數(shù)據(jù)傳輸任務(wù)的NoC機(jī)制。

      本文設(shè)計(jì)的數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)傳輸是由源端主導(dǎo),即源端負(fù)責(zé)鏈路的建立,配置目的端坐標(biāo),而目的端無需知道源端坐標(biāo)。當(dāng)源端單元數(shù)據(jù)就緒,通過發(fā)送控制單元獲得當(dāng)前數(shù)據(jù)的目的端坐標(biāo)和數(shù)量信息,并將數(shù)據(jù)打包后經(jīng)數(shù)據(jù)網(wǎng)絡(luò)傳遞至目的單元的接收控制器進(jìn)行解包操作,最終解包后的數(shù)據(jù)寫入目的單元。

      2.2 改進(jìn)的分布式鏈路機(jī)制

      本文設(shè)計(jì)的數(shù)據(jù)網(wǎng)絡(luò)工作流程如圖2所示,這里使用數(shù)據(jù)網(wǎng)Feedback操作在鏈路建立成功后獲取目的端狀態(tài),用狀態(tài)廣播的方法在未建立鏈路時(shí)獲取目的端從無效變?yōu)橛行У氖录?從而實(shí)現(xiàn)對(duì)目的端的狀態(tài)追蹤。

      圖2 數(shù)據(jù)傳輸流程

      源端在有效后建立鏈路,一旦鏈路建立成功,使用Feedback操作判斷目的端的狀態(tài)。若目的端也有效,則開始一次數(shù)據(jù)傳輸;否則撤銷鏈路,并且監(jiān)聽配置網(wǎng)的廣播信息,直到收到目的端變?yōu)橛行У男盘?hào),才重新建立鏈路。

      源端在一次傳輸完成后,再次使用Feedback操作,獲取目的端是否有效的狀態(tài)。若此時(shí)雙端都依然有效,則直接開始下一次的數(shù)據(jù)傳輸;否則撤銷鏈路,直到雙端都有效后才重新建立鏈路。

      2.2.1 鏈路反饋機(jī)制

      本文在傳統(tǒng)網(wǎng)絡(luò)的單向鏈路的基礎(chǔ)上增加了鏈路反饋能力,允許從目的端到源端的信息反饋。該機(jī)制可以使源端利用建立好的鏈路快速獲取目的端狀態(tài)。

      2.2.2 狀態(tài)追蹤機(jī)制

      本文使用源端控制為主的數(shù)據(jù)傳輸機(jī)制,該機(jī)制的工作效果受對(duì)目的端狀態(tài)監(jiān)測(cè)效率的影響,因此需要建立一套實(shí)時(shí)追蹤目的端狀態(tài)變化信號(hào)的策略。前述提到的狀態(tài)廣播機(jī)制和鏈路反饋機(jī)制用于解決這一問題,實(shí)現(xiàn)源端對(duì)目的端的狀態(tài)追蹤。

      源端、目的端的狀態(tài)表在以下情況更新:

      (1) 收到某個(gè)節(jié)點(diǎn)準(zhǔn)備好的廣播,且廣播信息中的坐標(biāo)與當(dāng)前目的節(jié)點(diǎn)坐標(biāo)相同,更新目的端狀態(tài)dst-ready=true。

      (2) 在鏈路建立成功后或者發(fā)送完一個(gè)數(shù)據(jù)包后,收到目的端利用鏈路反饋機(jī)制通過數(shù)據(jù)網(wǎng)鏈路反饋的信號(hào),根據(jù)此反饋信號(hào)更新目的端狀態(tài)dst-ready=true或者dst-ready=false。

      (3) 在源端切換目的之后,由于之前未在狀態(tài)網(wǎng)監(jiān)聽該坐標(biāo),此時(shí)無法知道目的端狀態(tài),默認(rèn)dst-ready=true;對(duì)應(yīng)圖2中開始后,如果源端有效直接建立鏈路,那么通過一次嘗試連接來確定目的節(jié)點(diǎn)狀態(tài)。

      2.2.3 Keep-alive機(jī)制

      包-電路交換策略雖然結(jié)合了包交換和電路交換的優(yōu)點(diǎn),但過多的鏈路建立和撤銷影響通訊效率。為解決此問題,本文提出一種Keep-alive機(jī)制,即在一次包傳輸完成后,若條件滿足,則直接傳輸下一個(gè)包,省去了鏈路重建過程。在傳統(tǒng)架構(gòu)中,傳輸多個(gè)數(shù)據(jù)包過程如圖3所示。

      圖3 NoC傳輸多個(gè)數(shù)據(jù)包示意圖

      該過程包括源端發(fā)送頭包(H)請(qǐng)求建立鏈路,目的端應(yīng)答(A)、數(shù)據(jù)傳輸(D)、發(fā)送結(jié)束信號(hào)(E)、鏈路取消(C)。傳統(tǒng)結(jié)構(gòu)需要執(zhí)行2次完整的鏈路建立/數(shù)據(jù)傳輸/撤銷的過程才能完成2次獨(dú)立的數(shù)據(jù)傳輸。這勢(shì)必會(huì)造成一定的網(wǎng)絡(luò)性能損失。

      本文設(shè)計(jì)的數(shù)據(jù)網(wǎng)為了提高效率,引入Keep-alive機(jī)制,允許一次建立鏈路發(fā)送多個(gè)數(shù)據(jù)包,其原理是在當(dāng)前數(shù)據(jù)傳輸完成后,直接利用鏈路反饋機(jī)制獲取目的端是否準(zhǔn)備的信號(hào),再由源端結(jié)合本地輸出數(shù)據(jù)狀態(tài)和當(dāng)前地址隊(duì)列輸出判斷是否滿足繼續(xù)傳輸?shù)臈l件;若滿足,則繼續(xù)傳輸,省去了撤銷鏈路再重新建立鏈路的過程。

      具體的改進(jìn)是將原本“包-電路連接”協(xié)議中的Cancel信號(hào)改為反饋(Feedback)信號(hào),用于目的端向源端反饋是目的端當(dāng)前狀態(tài)信息,如果目的端處于有效狀態(tài),那么源端直接發(fā)送,在此過程中既有鏈路不會(huì)被撤銷。Keep-alive協(xié)議的執(zhí)行過程包括以下步驟:

      (1) 目的端收到當(dāng)前數(shù)據(jù)包的最后一個(gè)數(shù)據(jù)時(shí),通過數(shù)據(jù)網(wǎng)反饋通道通知源端、目的端當(dāng)前是否處于有效狀態(tài)。

      (2) 源端收到數(shù)據(jù)網(wǎng)反饋回來的目的端狀態(tài)后,同時(shí)檢測(cè)源端數(shù)據(jù)有效、目的端有效、目的端地址等于目標(biāo)隊(duì)列輸出地址等3個(gè)條件;若3個(gè)條件成立,則開始新的一輪數(shù)據(jù)發(fā)送操作。

      3 硬件設(shè)計(jì)

      3.1 信號(hào)定義

      為實(shí)現(xiàn)分布式鏈路控制機(jī)制和鏈路生命延長(zhǎng)協(xié)議,本文在經(jīng)典PCC網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行硬件改進(jìn)設(shè)計(jì),使用發(fā)送控制器和接收控制器完成功能節(jié)點(diǎn)到數(shù)據(jù)網(wǎng)之間的數(shù)據(jù)格式轉(zhuǎn)換工作,因此數(shù)據(jù)網(wǎng)絡(luò)協(xié)議適用于發(fā)送控制器與路由節(jié)點(diǎn)之間、路由節(jié)點(diǎn)之間、路由節(jié)點(diǎn)與接收控制器之間。發(fā)送控制器和接收控制器,既可單獨(dú)使用,也可成對(duì)使用。所設(shè)計(jì)的片上數(shù)據(jù)網(wǎng)絡(luò)協(xié)議由Cmd信號(hào)、Data信號(hào)和Feedback信號(hào)共同實(shí)現(xiàn),其在數(shù)據(jù)網(wǎng)絡(luò)中的組織連接關(guān)系如圖4所示。

      圖4 數(shù)據(jù)網(wǎng)組織連接關(guān)系

      (1) Cmd信號(hào)。3位位寬,用于源端向目的端的指令發(fā)送,包括源端向路由節(jié)點(diǎn)發(fā)起的鏈路建立請(qǐng)求、數(shù)據(jù)有效信號(hào)和數(shù)據(jù)包發(fā)送完成信號(hào)等。

      (2) Data信號(hào)。64位位寬,根據(jù)Cmd[2]=1時(shí)Data信號(hào)有效,Data數(shù)據(jù)有2個(gè)功能,在鏈路建立階段低16位承載目的節(jié)點(diǎn)坐標(biāo),此時(shí)Cmd[1:0]=1;在數(shù)據(jù)傳輸階段用于承載數(shù)據(jù),此時(shí)Cmd[1:0]=2或3。

      (3) Feedback信號(hào)。3位位寬,用于目的端向源端的反饋,包括目的端節(jié)點(diǎn)向源端節(jié)點(diǎn)的狀態(tài)反饋、下游路由節(jié)點(diǎn)向上游路由節(jié)點(diǎn)的反饋、路由節(jié)點(diǎn)向源端發(fā)送控制器的反饋等。

      3.2 硬件實(shí)現(xiàn)

      由3.1節(jié)的介紹可知,本文設(shè)計(jì)的片上數(shù)據(jù)網(wǎng)硬件部分由發(fā)送控制器、接收控制器和路由器3個(gè)部分組成。

      3.2.1 發(fā)送控制器

      發(fā)送控制器根據(jù)數(shù)據(jù)網(wǎng)絡(luò)協(xié)議對(duì)功能節(jié)點(diǎn)輸出數(shù)據(jù)進(jìn)行封包和發(fā)送操作,同時(shí)完成與路由器之間的握手操作,以及接收主控制器通過配置網(wǎng)下發(fā)的目標(biāo)隊(duì)列和其他控制。作為數(shù)據(jù)傳輸?shù)陌l(fā)起方和傳輸控制方,發(fā)送控制器必須能夠應(yīng)對(duì)復(fù)雜的傳輸協(xié)議,本文設(shè)計(jì)的發(fā)送控制器的核心是一個(gè)狀態(tài)機(jī),其狀態(tài)轉(zhuǎn)移圖如圖5所示,共設(shè)置了10個(gè)狀態(tài)。

      圖5 發(fā)送控制器狀態(tài)轉(zhuǎn)移圖

      發(fā)送控制器復(fù)位后處于IDLE狀態(tài),當(dāng)目標(biāo)隊(duì)列非空且源節(jié)點(diǎn)有數(shù)據(jù)需要發(fā)送,即valid信號(hào)為高時(shí),進(jìn)入TRY-TO-CONNECT狀態(tài),此過程中從目標(biāo)隊(duì)列FIFO中取出一個(gè)目標(biāo)的信息,包括目標(biāo)坐標(biāo)、包大小和包數(shù)量。在TRY-TO-CONNECT狀態(tài)等待接收反饋信號(hào),收到的反饋有3種可能:

      (1) 鏈路建立失敗,進(jìn)入CONNECT-FAILED狀態(tài)。

      (2) 目標(biāo)節(jié)點(diǎn)無效,進(jìn)入WAIT-CONNECT狀態(tài)。

      (3) 目標(biāo)節(jié)點(diǎn)有效,進(jìn)入SEND-BEGIN狀態(tài)。

      SEDN-BEGIN狀態(tài)用于計(jì)數(shù)包個(gè)數(shù),該狀態(tài)直接進(jìn)入SENDING狀態(tài)。SENDING狀態(tài)用于發(fā)送數(shù)據(jù),直到當(dāng)前數(shù)據(jù)包發(fā)送完成進(jìn)入SEND-END狀態(tài)。在SEND-END狀態(tài),若當(dāng)前節(jié)點(diǎn)的包數(shù)量達(dá)到,則進(jìn)入NEXT-DST狀態(tài);若源端無效,則進(jìn)入WAIT-VALID狀態(tài);否則進(jìn)入WAIT-SEND狀態(tài);在WAIT-SEND狀態(tài)等待接收來自目標(biāo)節(jié)點(diǎn)的反饋,若目標(biāo)節(jié)點(diǎn)未準(zhǔn)備好接收下一個(gè)數(shù)據(jù)包,則進(jìn)入WAIT-CONNECT狀態(tài);否則進(jìn)入TRY-TO-CONNECT狀態(tài)。在WAIT-VALID狀態(tài)等待源端有數(shù)據(jù)發(fā)送,進(jìn)入TRY-TO-CONNECT狀態(tài)。在WAIT-CONNECT狀態(tài)等待收到目的節(jié)點(diǎn)準(zhǔn)備好的廣播,進(jìn)入TRY-TO-CONNECT狀態(tài)。在NEXT-DST狀態(tài)直接進(jìn)入IDLE狀態(tài)。在CONNECT-FAILED狀態(tài)等待一定周期數(shù),進(jìn)入TRY-TO-CONNECT狀態(tài)。

      3.2.2 路由節(jié)點(diǎn)

      本文設(shè)計(jì)的數(shù)據(jù)網(wǎng)沿用了“包-電路連接”協(xié)議,每個(gè)路由節(jié)點(diǎn)有5個(gè)輸入端和5個(gè)輸出端,每個(gè)方向的輸入/輸出端口連接二維網(wǎng)格中一個(gè)方向的相鄰路由器的輸出/輸入端口,每個(gè)輸入端有1個(gè)輸入控制器用于控制路由方向,其結(jié)構(gòu)如圖6所示。

      圖6 路由節(jié)點(diǎn)結(jié)構(gòu)

      每個(gè)方向的Input-controller在需要請(qǐng)求輸出端口時(shí)向Arbiter發(fā)送請(qǐng)求信號(hào),經(jīng)過Arbiter裁決后將相應(yīng)的輸出端口分配給該輸入控制器。若一個(gè)輸入控制器請(qǐng)求的端口被別的輸入控制器搶先占用,則無法申請(qǐng)到該輸出端口,裁決器會(huì)反饋相應(yīng)的失敗信號(hào)。

      Input-controller負(fù)責(zé)地址的解碼和路由方向選擇,以實(shí)現(xiàn)回退轉(zhuǎn)向路由的功能,其狀態(tài)轉(zhuǎn)移圖如圖7所示,該模塊的狀態(tài)機(jī)共有8種狀態(tài)。

      圖7 路由節(jié)點(diǎn)狀態(tài)轉(zhuǎn)移圖

      路由器復(fù)位后進(jìn)入IDLE狀態(tài),在任何一個(gè)狀態(tài)如果收到源端的鏈路撤銷請(qǐng)求,即發(fā)現(xiàn)源端口斷開,都進(jìn)入IDLE狀態(tài)。在IDLE狀態(tài)收到鏈路建立請(qǐng)求進(jìn)入START-CONNECTING狀態(tài)。在START-CONNECTING狀態(tài),若目標(biāo)地址為本地地址,則進(jìn)入CONNECT-LOCAL狀態(tài);若目標(biāo)地址與本地地址在同一行,則進(jìn)入CONNECT-2nd狀態(tài);否則進(jìn)入CONNECT-1st狀態(tài)。在CONNECT-1st狀態(tài)請(qǐng)求左或右端口,若一定周期后未請(qǐng)求到端口,或者收到鏈路失敗的反饋,則進(jìn)入SWITCH狀態(tài);若收到來自目的端的取消鏈路反饋,則進(jìn)入CONNECT-CANCELED狀態(tài)。在SWITCH狀態(tài)判斷若目標(biāo)地址與本地地址在同一列,則進(jìn)入FAILED狀態(tài);否則進(jìn)入CONNECT-2nd狀態(tài)。在CONNECT-2nd狀態(tài)請(qǐng)求上或下端口,若一定周期后未請(qǐng)求到端口,或者收到鏈路失敗的反饋,則進(jìn)入FAILED狀態(tài);若收到來自目的端的取消鏈路反饋,則進(jìn)入CONNECT-CANCELED狀態(tài)。在FAILED狀態(tài)向上級(jí)路由節(jié)點(diǎn)反饋鏈路失敗信息,進(jìn)入IDLE狀態(tài)。在CONNECT-CANCELED狀態(tài)向上級(jí)路由節(jié)點(diǎn)反饋鏈路取消的信息,進(jìn)入IDLE狀態(tài)。在CONNECT-LOCAL狀態(tài)請(qǐng)求本地端口,若未請(qǐng)求到端口,即裁決器沒有響應(yīng),則進(jìn)入FAILED狀態(tài);若收到來自目的端的未準(zhǔn)備反饋,則進(jìn)入CONNECT-CANCELED狀態(tài)。

      3.2.3 接收控制器

      本文設(shè)計(jì)的數(shù)據(jù)網(wǎng)的接收控制器負(fù)責(zé)將網(wǎng)絡(luò)上的數(shù)據(jù)解包成功能節(jié)點(diǎn)可識(shí)別的格式并傳輸至功能節(jié)點(diǎn),同時(shí)將功能節(jié)點(diǎn)的當(dāng)前狀態(tài)送入數(shù)據(jù)網(wǎng)絡(luò)的反饋通道。接收控制器內(nèi)狀態(tài)轉(zhuǎn)移如圖8所示,共有6個(gè)狀態(tài)。

      圖8 接收控制器狀態(tài)轉(zhuǎn)移圖

      接收控制復(fù)位后進(jìn)入IDLE狀態(tài),在任何一個(gè)狀態(tài)收到源端的鏈路撤銷請(qǐng)求都進(jìn)入IDLEING狀態(tài);在IDLE狀態(tài)收到鏈路建立請(qǐng)求進(jìn)入CONNECTING狀態(tài)。在CONNECTING狀態(tài)判斷功能節(jié)點(diǎn)是否準(zhǔn)備好接收數(shù)據(jù),若準(zhǔn)備好,則進(jìn)入SUCCESS狀態(tài);否則進(jìn)入CANCELED狀態(tài)。在CANCELED狀態(tài)向路由節(jié)點(diǎn)發(fā)送鏈路取消的信息,直接進(jìn)入IDLE狀態(tài)。在SUCCESS狀態(tài)向路由節(jié)點(diǎn)發(fā)送鏈路成功的信息,直接進(jìn)入RECEVING狀態(tài)。在RECEVING狀態(tài)接收數(shù)據(jù)并發(fā)送給功能節(jié)點(diǎn),直到收到包結(jié)束的信號(hào),進(jìn)入REPORT狀態(tài)。在REPORT狀態(tài)判斷功能節(jié)點(diǎn)是否準(zhǔn)備好接收數(shù)據(jù)。若準(zhǔn)備好,則直接進(jìn)入SUCCESS狀態(tài);若沒有準(zhǔn)備好,則進(jìn)入CANCELED狀態(tài)。

      4 實(shí)驗(yàn)分析

      本文在Xilinx xcuv440-flga2892 FPGA上搭建8×8的網(wǎng)絡(luò)用于測(cè)試,資源消耗見表1所列。

      表1 資源消耗

      為了測(cè)試該網(wǎng)絡(luò)的性能,本文使用傳輸效率、平均延遲和鏈路效率作為性能指標(biāo)。其中傳輸效率指數(shù)據(jù)傳輸時(shí)間與鏈路占用時(shí)間的比值,鏈路占用時(shí)間包括鏈路建立時(shí)間、數(shù)據(jù)傳輸時(shí)間和鏈路撤銷時(shí)間。傳輸效率的計(jì)算公式為:

      傳輸效率=

      (1)

      在理想狀態(tài)下傳輸效率趨向于1,在負(fù)載增大時(shí)由于網(wǎng)絡(luò)節(jié)點(diǎn)出現(xiàn)擁堵,回退轉(zhuǎn)向路由建立鏈路時(shí)間增加會(huì)造成傳輸效率下降,傳輸效率越高說明網(wǎng)絡(luò)能夠承受越大的負(fù)載,網(wǎng)絡(luò)吞吐量越大。

      平均延遲指從數(shù)據(jù)準(zhǔn)備好發(fā)送到開始傳輸?shù)钠骄鶗r(shí)間,平均延遲的計(jì)算公式為:

      (2)

      總延遲為源端和目的端同時(shí)準(zhǔn)備好到鏈路建立成功之間的時(shí)間,平均延遲越低網(wǎng)絡(luò)的實(shí)時(shí)性越高。

      鏈路效率指有效鏈路數(shù)量與總鏈路數(shù)量的比值,為方便統(tǒng)計(jì),本文定義鏈路效率為:

      (3)

      一般情況下數(shù)據(jù)包數(shù)量即為有效鏈路數(shù)量,理想狀態(tài)下網(wǎng)絡(luò)不發(fā)生擁堵,鏈路建立次數(shù)等于總鏈路數(shù)量,在網(wǎng)絡(luò)負(fù)載很高的情況下由于發(fā)生擁堵導(dǎo)致鏈路失敗重連,鏈路成功率下降。鏈路成功率下降的趨勢(shì)反映了網(wǎng)絡(luò)負(fù)載能力,下降得越慢代表網(wǎng)絡(luò)負(fù)載能力越高。

      針對(duì)目標(biāo)系統(tǒng)的傳輸需求,本實(shí)驗(yàn)將原先網(wǎng)絡(luò)與優(yōu)化后的網(wǎng)絡(luò)進(jìn)行對(duì)比測(cè)試,分別測(cè)試在不同通訊負(fù)載下的各個(gè)性能指標(biāo)。

      實(shí)驗(yàn)在8×8的NoC上進(jìn)行,分別測(cè)試負(fù)載為1~64條鏈路下的性能。原先網(wǎng)絡(luò)和優(yōu)化后的網(wǎng)絡(luò)采用相同的隨機(jī)負(fù)載,模擬資源節(jié)點(diǎn)接收緩沖區(qū)大小為1 024,數(shù)據(jù)包長(zhǎng)度為512,資源節(jié)點(diǎn)運(yùn)算性能為接口帶寬的1/2,鏈路失敗后重連的等待周期數(shù)為256,每批量運(yùn)算數(shù)據(jù)量為4 096。由于負(fù)載的位置對(duì)網(wǎng)絡(luò)性能有影響,使用隨機(jī)負(fù)載的統(tǒng)計(jì)結(jié)果存在一定的波動(dòng),不影響整體性能的分析。

      原先網(wǎng)絡(luò)和優(yōu)化后網(wǎng)絡(luò)在不同負(fù)載下的傳輸效率如圖9所示。

      圖9 不同負(fù)載下的傳輸效率比較

      當(dāng)負(fù)載較小時(shí),網(wǎng)絡(luò)不發(fā)生擁堵,傳輸效率較為平穩(wěn),優(yōu)化后的網(wǎng)絡(luò)傳輸效率略高。當(dāng)負(fù)載較小時(shí),狀態(tài)廣播機(jī)制可以有效避免目的端未準(zhǔn)備時(shí)無效的鏈路建立,傳輸效率提升明顯,而Keep-alive通過減小鏈路建立次數(shù)也有一定的提升。當(dāng)負(fù)載增加到13/64后,網(wǎng)絡(luò)發(fā)生擁堵,傳輸效率開始降低,在高負(fù)載下,由于鏈路建立成功率降低,Keep-alive協(xié)議能夠盡可能高效地使用鏈路,傳輸效率明顯提高,隨著負(fù)載增大優(yōu)化后的網(wǎng)絡(luò)優(yōu)勢(shì)越來越明顯,當(dāng)負(fù)載達(dá)到100%時(shí),優(yōu)化后的網(wǎng)絡(luò)傳輸效率依然有67%,而優(yōu)化前的網(wǎng)絡(luò)在滿負(fù)載時(shí)傳輸效率只剩下58%。優(yōu)化后相比優(yōu)化前傳輸效率最高提升15%。

      在不同負(fù)載下平均延遲的比較如圖10所示。

      圖10 不同負(fù)載下的平均延遲比較

      當(dāng)負(fù)載較低時(shí),網(wǎng)絡(luò)未發(fā)生擁堵,延遲較為穩(wěn)定。在低負(fù)載時(shí),狀態(tài)廣播機(jī)制可以在目的端準(zhǔn)備好后,通過廣播的方式通知源端,從而避免了輪詢機(jī)制的高延遲。而沒有狀態(tài)廣播機(jī)制的網(wǎng)絡(luò)需要通過輪詢的方式,延遲有較大不確定性,平均延遲較高。當(dāng)網(wǎng)絡(luò)發(fā)生擁堵,平均延遲都顯著提高,而Keep-alive能夠在條件允許時(shí)重復(fù)使用之前建立的鏈路,從而在再次傳輸時(shí)有著極低的延遲,顯著降低了平均延遲。優(yōu)化后的網(wǎng)絡(luò)滿負(fù)載下延遲僅為原先的54%。

      不同負(fù)載下的鏈路效率結(jié)果如圖11所示。

      圖11 不同負(fù)載下的鏈路效率比較

      Keep-alive機(jī)制通過復(fù)用鏈路,在網(wǎng)絡(luò)負(fù)載較低時(shí)鏈路效率有著極高的提升,甚至可以超過100%的鏈路效率。狀態(tài)廣播機(jī)制在網(wǎng)絡(luò)發(fā)生擁堵時(shí)減少目的端未準(zhǔn)備時(shí)無效的鏈路嘗試,避免加劇網(wǎng)絡(luò)擁堵,從而提升一部分鏈路效率。綜合2種方法優(yōu)化后的網(wǎng)絡(luò)在各種負(fù)載下都有較為明顯的鏈路效率的提升。

      在滿負(fù)載下測(cè)試不同數(shù)據(jù)包長(zhǎng)度下的網(wǎng)絡(luò)效率,結(jié)果如圖12所示。在數(shù)據(jù)包長(zhǎng)度極小時(shí)傳輸效率都趨向于0,在數(shù)據(jù)包長(zhǎng)度較小時(shí)傳輸效率主要受鏈路建立時(shí)間影響,Keep-alive協(xié)議通過減少鏈路建立次數(shù)而獲得一定的優(yōu)勢(shì);在數(shù)據(jù)包長(zhǎng)度極大的時(shí)候傳輸效率主要受鏈路成功率的影響,狀態(tài)廣播機(jī)制通過減小無效嘗試次數(shù)減輕網(wǎng)絡(luò)擁堵,鏈路成功率較高。優(yōu)化后的網(wǎng)絡(luò)在不同數(shù)據(jù)包長(zhǎng)度下的傳輸效率都有不同程度的提升。

      5 結(jié) 論

      本文在傳統(tǒng)包-電路交換技術(shù)框架的網(wǎng)絡(luò)下,增加了Keep-alive協(xié)議和狀態(tài)廣播機(jī)制,利用網(wǎng)絡(luò)中現(xiàn)有的配置網(wǎng)和狀態(tài)網(wǎng)提高了網(wǎng)絡(luò)傳輸性能。Keep-alive協(xié)議通過省去向同一個(gè)目的節(jié)點(diǎn)發(fā)包的鏈路建立過程,減小了后續(xù)數(shù)據(jù)包的傳輸延遲,也避免了建立鏈路過程中對(duì)網(wǎng)絡(luò)的占用,減緩網(wǎng)絡(luò)擁堵情況。狀態(tài)廣播機(jī)制解決傳統(tǒng)網(wǎng)絡(luò)中失敗后輪詢的弊端,減小網(wǎng)絡(luò)中非有效數(shù)據(jù)傳輸行為的占用率,從而極大地提高了網(wǎng)絡(luò)性能。

      實(shí)驗(yàn)表明,新的機(jī)制有完整的功能,應(yīng)對(duì)復(fù)雜的網(wǎng)絡(luò)狀況有足夠的魯棒性,不會(huì)產(chǎn)生死鎖,其性能相比傳統(tǒng)方案有最多13%的提升。

      猜你喜歡
      源端路由鏈路
      家紡“全鏈路”升級(jí)
      天空地一體化網(wǎng)絡(luò)多中繼鏈路自適應(yīng)調(diào)度技術(shù)
      融合源端句法和語義角色信息的AMR解析
      基于仿真分析的傳輸線電路特性研究
      探究路由與環(huán)路的問題
      飛機(jī)燃油系統(tǒng)對(duì)多路輸入信號(hào)源選擇的方法
      科技視界(2016年22期)2016-10-18 15:53:02
      基于3G的VPDN技術(shù)在高速公路備份鏈路中的應(yīng)用
      PRIME和G3-PLC路由機(jī)制對(duì)比
      WSN中基于等高度路由的源位置隱私保護(hù)
      eNSP在路由交換課程教學(xué)改革中的應(yīng)用
      河南科技(2014年5期)2014-02-27 14:08:56
      土默特右旗| 化德县| 姚安县| 布拖县| 漳平市| 永城市| 二连浩特市| 玛多县| 天等县| 石阡县| 天水市| 崇明县| 永春县| 中江县| 沾化县| 奎屯市| 巨野县| 黄冈市| 多伦县| 宁强县| 洪江市| 济源市| 临汾市| 昭平县| 安康市| 永平县| 大宁县| 南丹县| 枝江市| 武鸣县| 垦利县| 从江县| 凯里市| 格尔木市| 运城市| 同心县| 西乡县| 岫岩| 辽阳市| 孝义市| 平度市|