本發(fā)明屬于集成電路片上網(wǎng)絡(luò)的通信
技術(shù)領(lǐng)域:
,尤其涉及一種面向功耗溫度的動(dòng)靜態(tài)相結(jié)合的NoC實(shí)時(shí)監(jiān)測(cè)配置電路。
背景技術(shù):
:片上網(wǎng)絡(luò)(Network-on-Chip,NoC)替代傳統(tǒng)總線結(jié)構(gòu)的改變雖然一定程度上克服了傳統(tǒng)結(jié)構(gòu)帶來(lái)的各種問(wèn)題,但是隨著IP(IntellectualProperty)核的增多和通訊量的提升,隨著芯片體積的減小和整體性能的提高,NoC整體性能成為設(shè)計(jì)的焦點(diǎn),當(dāng)通訊數(shù)據(jù)在NoC中傳輸時(shí),導(dǎo)致NoC局部通訊節(jié)點(diǎn)通訊量過(guò)高,勢(shì)必導(dǎo)致芯片局部溫度升高,高溫使得芯片的性能受到影響甚至可能損壞器件,這在很大程度上削弱了NoC的諸多優(yōu)勢(shì),直接影響到NoC系統(tǒng)的性能,因此,降低NoC局部通訊節(jié)點(diǎn)的通訊量很有必要?,F(xiàn)有技術(shù)當(dāng)中,雖已實(shí)現(xiàn)了對(duì)NoC的可監(jiān)測(cè)和可配置,如2010年的“可配置可監(jiān)測(cè)NoC原型平臺(tái)的研究”,但文中“可監(jiān)測(cè)”是對(duì)吞吐率和延時(shí)的監(jiān)測(cè),“可配置”是對(duì)NoC自身的參數(shù)(如緩存FIFO的深度、路由算法、輸出仲裁算法)的配置,此方法的不足之處在于,1、只能監(jiān)測(cè)NoC總體的通訊量,無(wú)法監(jiān)測(cè)NoC各個(gè)節(jié)點(diǎn)的通訊量,只能得知NoC總體的性能和通訊狀況,無(wú)法得知NoC各個(gè)節(jié)點(diǎn)的具體性能和通訊狀況;2、在實(shí)現(xiàn)可配置的同時(shí)可能造成通訊任務(wù)較集中從而使單個(gè)節(jié)點(diǎn)的通訊量過(guò)大,從而產(chǎn)生局部熱點(diǎn),影響芯片的性能。技術(shù)實(shí)現(xiàn)要素:本發(fā)明為克服現(xiàn)有NoC大量數(shù)據(jù)傳輸?shù)男酒植繜狳c(diǎn)問(wèn)題,提出了一種面向功耗溫度的NoC實(shí)時(shí)監(jiān)測(cè)配置電路,以期能動(dòng)態(tài)地監(jiān)測(cè)并收集各個(gè)通訊節(jié)點(diǎn)的通訊量,并動(dòng)態(tài)地配置NoC各個(gè)通訊節(jié)點(diǎn)的通訊任務(wù),從而保證NoC各個(gè)通信節(jié)點(diǎn)的通訊量均衡,避免因NoC局部通訊量過(guò)大而產(chǎn)生的局部“熱點(diǎn)”,進(jìn)而提高NoC的整體性能。本發(fā)明為達(dá)到上述目的所采用的技術(shù)方案是:本發(fā)明一種面向功耗溫度的NoC實(shí)時(shí)監(jiān)測(cè)配置電路,所述NoC是由通訊節(jié)點(diǎn)及計(jì)算節(jié)點(diǎn)組成的片上網(wǎng)絡(luò),假設(shè)所述NoC共有N=X×Y個(gè)通訊節(jié)點(diǎn),X表示所述NoC的行數(shù),Y表示所述NoC的列數(shù),每個(gè)通訊節(jié)點(diǎn)有北、東、南、西、本地五個(gè)方向的輸入輸出通道;1≤k≤N,其特點(diǎn)是:所述NoC實(shí)時(shí)監(jiān)測(cè)配置電路設(shè)置在網(wǎng)口與所述NoC之間,并包括:上行模塊、下行模塊、定時(shí)模塊、配置模塊、收集模塊、Y個(gè)下行打包模塊、X×Y個(gè)監(jiān)測(cè)模塊、DDR用戶接口模塊;所述X×Y個(gè)監(jiān)測(cè)模塊分別與X×Y個(gè)通訊節(jié)點(diǎn)的輸出通道相連接;所述下行模塊接收上位機(jī)通過(guò)網(wǎng)口發(fā)送的數(shù)據(jù)包,并存儲(chǔ)到自身的FIFO中,再?gòu)淖陨鞦IFO中讀取數(shù)據(jù)包進(jìn)行解析和判斷,得到所述數(shù)據(jù)包中攜帶的命令類(lèi)型,若所述命令類(lèi)型為定時(shí)命令,則解析出所述數(shù)據(jù)包中的定時(shí)標(biāo)志后,發(fā)送給所述定時(shí)模塊;若所述命令類(lèi)型為配置命令,則截取所述數(shù)據(jù)包中的低位配置數(shù)據(jù),并發(fā)送給所述配置模塊,若所述命令類(lèi)型為讀取DDR命令,則產(chǎn)生一個(gè)讀取DDR標(biāo)志,并發(fā)送給所述上行模塊和所述DDR用戶接口模塊;所述配置模塊接收所述低位配置數(shù)據(jù),并判斷所述低位配置數(shù)據(jù)攜帶的源節(jié)點(diǎn)地址的大小,若源節(jié)點(diǎn)地址為n,1≤n≤Y,則將所述低位配置數(shù)據(jù)發(fā)送給相應(yīng)的第n個(gè)下行打包模塊;所述第n個(gè)下行打包模塊接收所述配置模塊的低位配置數(shù)據(jù),并存入自身的FIFO中,再?gòu)淖陨鞦IFO中讀取所述低位配置數(shù)據(jù)并打包成符合網(wǎng)絡(luò)傳輸協(xié)議的數(shù)據(jù)包后,發(fā)送給NoC進(jìn)行處理,由計(jì)算節(jié)點(diǎn)處理完成之后產(chǎn)生配置完成標(biāo)志并發(fā)送給配置模塊;所述配置模塊接收所述NoC中計(jì)算節(jié)點(diǎn)發(fā)送的配置完成標(biāo)志后,產(chǎn)生一個(gè)開(kāi)始信號(hào),并發(fā)送給所述定時(shí)模塊和NoC中每個(gè)計(jì)算節(jié)點(diǎn);所述定時(shí)模塊根據(jù)所接收的定時(shí)標(biāo)志選擇定時(shí)時(shí)間,并在接收到所述開(kāi)始信號(hào)后開(kāi)始計(jì)時(shí),直到計(jì)時(shí)時(shí)間等于所選擇的定時(shí)時(shí)間時(shí),產(chǎn)生一個(gè)收集信號(hào)并發(fā)送給所述X×Y個(gè)監(jiān)測(cè)模塊;所述X×Y個(gè)監(jiān)測(cè)模塊接收所述定時(shí)模塊的收集信號(hào)后,將所述定時(shí)時(shí)間內(nèi)統(tǒng)計(jì)的數(shù)據(jù)通訊量發(fā)送給所述收集模塊;所述收集模塊接收所述監(jiān)測(cè)模塊的數(shù)據(jù)通訊量并存儲(chǔ)在自身的FIFO中,直到所有的數(shù)據(jù)通訊量都存儲(chǔ)完畢后,產(chǎn)生一個(gè)準(zhǔn)備好信號(hào)并發(fā)送給所述上行模塊;所述上行模塊接收所述收集模塊的準(zhǔn)備好信號(hào)后,產(chǎn)生一個(gè)讀取所述收集模塊的FIFO的收集讀信號(hào)并發(fā)送給所述收集模塊;所述收集模塊接收到所述上行模塊的讀信號(hào)后,將定時(shí)時(shí)間內(nèi)統(tǒng)計(jì)的數(shù)據(jù)通訊量分別發(fā)送給所述上行模塊和所述DDR用戶接口模塊;所述上行模塊接收所述收集模塊發(fā)送的數(shù)據(jù)通訊量,并存儲(chǔ)到自身的FIFO中,并通過(guò)網(wǎng)口將數(shù)據(jù)通訊量發(fā)送給上位機(jī),從而實(shí)現(xiàn)NoC的實(shí)時(shí)配置和數(shù)據(jù)通訊量的實(shí)時(shí)監(jiān)測(cè);所述DDR用戶接口模塊接收所述收集模塊發(fā)送的數(shù)據(jù)通訊量,并存儲(chǔ)在自身的DDR寫(xiě)FIFO中,當(dāng)DDR初始化完成后把DDR寫(xiě)FIFO里的數(shù)據(jù)通訊量寫(xiě)進(jìn)DDR控制器中;若上位機(jī)未接收到數(shù)據(jù)通訊量,則所述上行模塊接收所述下行模塊的讀取DDR標(biāo)志后產(chǎn)生一個(gè)DDR讀FIFO信號(hào),發(fā)送給所述DDR用戶接口模塊;所述DDR用戶接口模塊接收到所述下行模塊發(fā)送的讀取DDR標(biāo)志和所述上行模塊發(fā)送DDR讀FIFO信號(hào)時(shí),把DDR控制器中存儲(chǔ)的數(shù)據(jù)通訊量讀出,并通過(guò)所述DDR用戶接口模塊的DDR讀FIFO,把數(shù)據(jù)通訊量發(fā)送給所述上行模塊;所述上行模塊通過(guò)所述網(wǎng)口將所述數(shù)據(jù)通訊量發(fā)送給所述上位機(jī),從而檢測(cè)是所述收集模塊未成功收集數(shù)據(jù)還是上位機(jī)未成功接收數(shù)據(jù)。本發(fā)明所述的NoC實(shí)時(shí)監(jiān)測(cè)配置電路的特點(diǎn)也在于,所述定時(shí)模塊包括:臨時(shí)寄存器、時(shí)間選擇器和時(shí)間計(jì)數(shù)器;所述臨時(shí)寄存器根據(jù)上位機(jī)通過(guò)網(wǎng)口發(fā)送的定時(shí)命令,寄存數(shù)據(jù)包中的定時(shí)標(biāo)志;所述時(shí)間選擇器根據(jù)所述臨時(shí)寄存器中的數(shù)據(jù)選擇定時(shí)時(shí)間;所述時(shí)間計(jì)數(shù)器根據(jù)所述配置模塊發(fā)送的開(kāi)始信號(hào)進(jìn)行計(jì)數(shù),直到計(jì)數(shù)器的值等于所述時(shí)間寄存器選擇的定時(shí)時(shí)間后,產(chǎn)生所述收集信號(hào)。所述配置模塊包括:Y個(gè)配置數(shù)據(jù)寄存器、Y個(gè)寫(xiě)使能寄存器和X×Y個(gè)配置表寄存器;所述任意一個(gè)配置數(shù)據(jù)寄存器根據(jù)所述配置模塊對(duì)低位配置數(shù)據(jù)中低位源節(jié)點(diǎn)地址的判斷,對(duì)將要輸出給相應(yīng)下行打包模塊的配置數(shù)據(jù)進(jìn)行寄存;所述任意一個(gè)寫(xiě)使能寄存器根據(jù)所述配置模塊對(duì)低位配置數(shù)據(jù)中低位源節(jié)點(diǎn)地址的判斷,對(duì)相應(yīng)下行打包模塊的FIFO寫(xiě)使能信號(hào)進(jìn)行寄存;所述任意一個(gè)配置表寄存器在復(fù)位時(shí)將配置表寄存器的值設(shè)為高電平,并根據(jù)所述配置模塊對(duì)低位配置數(shù)據(jù)中低位源節(jié)點(diǎn)地址的判斷,設(shè)置自身配置表寄存器為低電平,直到所述配置模塊接收到所述NoC內(nèi)部每個(gè)計(jì)算節(jié)點(diǎn)的配置完成標(biāo)志后產(chǎn)生開(kāi)始信號(hào)后,將自身配置表寄存器值設(shè)為高電平,從而完成對(duì)NoC的重新配置。所述收集模塊包括:5(X×Y)個(gè)臨時(shí)寄存器、一號(hào)計(jì)數(shù)器和二號(hào)計(jì)數(shù)器;所述任意一個(gè)臨時(shí)寄存器用于寄存東、南、西、北和本地的輸出通道中相應(yīng)通訊節(jié)點(diǎn)的數(shù)據(jù)通訊量;所述一號(hào)計(jì)數(shù)器控制所述收集模塊將接收到的數(shù)據(jù)通訊量寫(xiě)進(jìn)相應(yīng)的臨時(shí)寄存器中,所述二號(hào)計(jì)數(shù)器控制臨時(shí)寄存器中數(shù)據(jù)通訊量寫(xiě)進(jìn)所述收集模塊的FIFO中,等待全部數(shù)據(jù)通訊量寫(xiě)進(jìn)所述收集模塊的FIFO,則將準(zhǔn)備好信號(hào)拉高。所述任意一個(gè)監(jiān)測(cè)模塊包括:5個(gè)A位的數(shù)據(jù)臨時(shí)寄存器Q、5個(gè)B位的數(shù)據(jù)通訊量計(jì)數(shù)器、5個(gè)B位的數(shù)據(jù)通訊量計(jì)數(shù)寄存器和C位的通訊量輸出寄存器;所述5個(gè)A位的數(shù)據(jù)臨時(shí)寄存器Q寄存上一周期的NoC中東、南、西、北和本地方向發(fā)送給所述監(jiān)測(cè)模塊的數(shù)據(jù),再將5個(gè)A位的臨時(shí)寄存器Q中存儲(chǔ)的上一周期的數(shù)據(jù)取出與當(dāng)前周期輸入的數(shù)據(jù)相比較,若不相等,則產(chǎn)生相應(yīng)東、南、西、北、本地方向的數(shù)據(jù)變化信號(hào);所述5個(gè)B位的數(shù)據(jù)通訊量計(jì)數(shù)器根據(jù)東、南、西、北、本地方向的數(shù)據(jù)變化信號(hào)對(duì)相應(yīng)方向的計(jì)數(shù)器進(jìn)行計(jì)數(shù),計(jì)數(shù)完成之后等待接收所述定時(shí)模塊的收集信號(hào),當(dāng)接收到所述定時(shí)模塊的收集信號(hào)時(shí),將所述5個(gè)B位的數(shù)據(jù)通訊量計(jì)數(shù)器的值賦給5個(gè)B位的數(shù)據(jù)通訊量計(jì)數(shù)寄存器,并將5個(gè)B位的數(shù)據(jù)通訊量計(jì)數(shù)器清零;所述C位的通訊量輸出寄存器用于將節(jié)點(diǎn)坐標(biāo)、方向和數(shù)據(jù)通訊量一起打包輸出給所述收集模塊,從而完成所述NoC的數(shù)據(jù)通訊量的監(jiān)測(cè)。與現(xiàn)有技術(shù)相比,本發(fā)明的有益技術(shù)效果體現(xiàn)在:1、本發(fā)明提出的NoC實(shí)時(shí)監(jiān)測(cè)配置電路,通過(guò)動(dòng)態(tài)地監(jiān)測(cè)并收集各個(gè)通訊節(jié)點(diǎn)的通訊量,并重新配置NoC各個(gè)通訊節(jié)點(diǎn)的通訊任務(wù),實(shí)現(xiàn)了NoC通訊任務(wù)的實(shí)時(shí)配置和通訊量的實(shí)時(shí)監(jiān)測(cè),從而保證了NoC各個(gè)通信節(jié)點(diǎn)的通訊量均衡,避免了因NoC局部通訊量過(guò)大而產(chǎn)生的局部“熱點(diǎn)”,進(jìn)而提高了NoC的整體性能。2、本發(fā)明提出監(jiān)測(cè)模塊與收集模塊,通過(guò)對(duì)NoC各個(gè)通訊節(jié)點(diǎn)輸出通道的通訊量的監(jiān)測(cè),實(shí)現(xiàn)了對(duì)NoC各個(gè)通訊節(jié)點(diǎn)通訊量的實(shí)時(shí)監(jiān)測(cè)與收集,進(jìn)而了解了NoC各個(gè)節(jié)點(diǎn)的通訊狀況。3、本發(fā)明提出的配置模塊,通過(guò)接收上位機(jī)的配置命令,并根據(jù)配置數(shù)據(jù)將通訊任務(wù)配置到NoC中,實(shí)現(xiàn)了對(duì)NoC各個(gè)通訊節(jié)點(diǎn)通訊任務(wù)地實(shí)時(shí)配置,進(jìn)而降低了局部“熱點(diǎn)”。4、本發(fā)明提出的定時(shí)模塊,通過(guò)接收上位機(jī)的定時(shí)命令,監(jiān)測(cè)和收集都是對(duì)于“定時(shí)時(shí)間”內(nèi)的通訊量,保證了監(jiān)測(cè)與收集的準(zhǔn)確性。5、本發(fā)明提出的DDR用戶接口模塊,通過(guò)將NoC要上傳至上位機(jī)的通訊量傳輸給上位機(jī)的同時(shí),也復(fù)制一份存儲(chǔ)到DDR中,若上位機(jī)沒(méi)有接收到數(shù)據(jù),則上位機(jī)發(fā)送從DDR中讀取數(shù)據(jù)的命令,增加了數(shù)據(jù)監(jiān)測(cè)和數(shù)據(jù)傳輸?shù)目煽啃?。附圖說(shuō)明圖1本發(fā)明NoC實(shí)時(shí)監(jiān)測(cè)配置電路的應(yīng)用示意圖;圖2本發(fā)明定時(shí)模塊電路圖;圖3本發(fā)明配置模塊電路圖;圖4本發(fā)明收集模塊電路圖。具體實(shí)施方式本實(shí)施例中,NoC是由通訊節(jié)點(diǎn)及計(jì)算節(jié)點(diǎn)組成的片上網(wǎng)絡(luò),假設(shè)所述NoC共有N=X×Y個(gè)通訊節(jié)點(diǎn),X表示所述NoC的行數(shù),Y表示所述NoC的列數(shù),通訊節(jié)點(diǎn)的序號(hào)為1,2,…,k,…,N,其中,k表示第k個(gè)通訊節(jié)點(diǎn)的序號(hào),具體實(shí)施中,NoC是4×4二維網(wǎng)絡(luò),由16個(gè)通訊節(jié)點(diǎn)及16個(gè)計(jì)算節(jié)點(diǎn)組成,即NoC有4行和4列,且每個(gè)通訊節(jié)點(diǎn)有北、東、南、西、本地五個(gè)方向的輸入輸出通道;上位機(jī)發(fā)送的數(shù)據(jù)包格式如表1所示:表1上位機(jī)發(fā)送的數(shù)據(jù)包格式data[47:44]data[43:40]data[39:36]data[35]子流數(shù)應(yīng)用類(lèi)型標(biāo)示命令類(lèi)型數(shù)據(jù)包結(jié)束標(biāo)志data[34:32]data[31:16]data[15:8]data[7:0]多目標(biāo)節(jié)點(diǎn)子流數(shù)據(jù)包發(fā)送速率目的節(jié)點(diǎn)源節(jié)點(diǎn)如圖1所示,NoC實(shí)時(shí)監(jiān)測(cè)配置電路設(shè)置在網(wǎng)口與NoC之間,并包括:上行模塊、下行模塊、定時(shí)模塊、配置模塊、收集模塊、4個(gè)下行打包模塊、16個(gè)監(jiān)測(cè)模塊、DDR用戶接口模塊;16個(gè)監(jiān)測(cè)模塊分別與16個(gè)通訊節(jié)點(diǎn)的輸出通道相連接;下行模塊接收上位機(jī)通過(guò)網(wǎng)口發(fā)送的數(shù)據(jù)包,并存儲(chǔ)到自身的FIFO中,再?gòu)淖陨鞦IFO中讀取數(shù)據(jù)包進(jìn)行解析和判斷,得到數(shù)據(jù)包中攜帶的命令類(lèi)型data[39:36],若data[39:36]等于4'b0001,則為定時(shí)命令,則解析出數(shù)據(jù)包中的定時(shí)標(biāo)志后,發(fā)送給定時(shí)模塊;若data[39:36]等于4'b0010,則為配置命令,則截取數(shù)據(jù)包中的低位配置數(shù)據(jù),并發(fā)送給配置模塊,若上位機(jī)未收到FPGA發(fā)上來(lái)的數(shù)據(jù),上位機(jī)才會(huì)發(fā)送讀取DDR命令,若data[39:36]等于4'b0011,則產(chǎn)生一個(gè)讀取DDR標(biāo)志,并發(fā)送給上行模塊和DDR用戶接口模塊;配置模塊接收低位配置數(shù)據(jù),并判斷低位配置數(shù)據(jù)攜帶的源節(jié)點(diǎn)列坐標(biāo)地址的大小,若源列坐標(biāo)節(jié)點(diǎn)地址為1、2、3或4,則將低位配置數(shù)據(jù)發(fā)送給相應(yīng)的第1個(gè)、第2個(gè)、第3個(gè)、第4個(gè)下行打包模塊;4個(gè)下行打包模塊接收配置模塊的低位配置數(shù)據(jù),并存入自身的FIFO中,再?gòu)淖陨鞦IFO中讀取低位配置數(shù)據(jù)并打包成符合網(wǎng)絡(luò)傳輸協(xié)議的數(shù)據(jù)包后,發(fā)送給NoC進(jìn)行處理,由計(jì)算節(jié)點(diǎn)處理完成之后產(chǎn)生配置完成標(biāo)志并發(fā)送給配置模塊;配置模塊接收NoC中計(jì)算節(jié)點(diǎn)發(fā)送的配置完成標(biāo)志后,產(chǎn)生一個(gè)開(kāi)始信號(hào),并發(fā)送給定時(shí)模塊和NoC中每個(gè)計(jì)算節(jié)點(diǎn);定時(shí)模塊根據(jù)所接收的定時(shí)標(biāo)志選擇定時(shí)時(shí)間,并在接收到開(kāi)始信號(hào)后計(jì)數(shù)器開(kāi)始計(jì)時(shí),直到計(jì)時(shí)時(shí)間等于所選擇的定時(shí)時(shí)間時(shí),產(chǎn)生一個(gè)收集信號(hào)并發(fā)送給16個(gè)監(jiān)測(cè)模塊;16個(gè)監(jiān)測(cè)模塊接收定時(shí)模塊的收集信號(hào)后,將節(jié)點(diǎn)坐標(biāo),相應(yīng)北、東、南、西或本地方向和定時(shí)時(shí)間內(nèi)統(tǒng)計(jì)的數(shù)據(jù)通訊量發(fā)送給收集模塊;收集模塊接收監(jiān)測(cè)模塊的數(shù)據(jù)通訊量并存儲(chǔ)在自身的FIFO中,直到所有的數(shù)據(jù)通訊量都存儲(chǔ)完畢后,產(chǎn)生一個(gè)準(zhǔn)備好信號(hào)并發(fā)送給上行模塊;上行模塊接收收集模塊的準(zhǔn)備好信號(hào)后,產(chǎn)生一個(gè)讀取收集模塊的FIFO的收集讀信號(hào)并發(fā)送給收集模塊;收集模塊接收到上行模塊的讀信號(hào)后,將定時(shí)時(shí)間內(nèi)統(tǒng)計(jì)的數(shù)據(jù)通訊量分別發(fā)送給上行模塊和DDR用戶接口模塊,以便上位機(jī)未接收到數(shù)據(jù)從DDR控制器中讀取數(shù)據(jù)通訊量;上行模塊接收收集模塊發(fā)送的數(shù)據(jù)通訊量,并存儲(chǔ)到自身的FIFO中,并通過(guò)網(wǎng)口將數(shù)據(jù)通訊量發(fā)送給上位機(jī),從而實(shí)現(xiàn)NoC的實(shí)時(shí)配置和數(shù)據(jù)通訊量的實(shí)時(shí)監(jiān)測(cè)。DDR用戶接口模塊接收收集模塊發(fā)送的數(shù)據(jù)通訊量,并存儲(chǔ)在自身的DDR寫(xiě)FIFO中,當(dāng)DDR初始化完成后把DDR寫(xiě)FIFO里的數(shù)據(jù)通訊量寫(xiě)進(jìn)DDR控制器中;若上位機(jī)未接收到通訊量,則上行模塊接收下行模塊的讀取DDR標(biāo)志后產(chǎn)生一個(gè)DDR讀FIFO信號(hào),發(fā)送給DDR用戶接口模塊;DDR用戶接口模塊接收到下行模塊發(fā)送的讀取DDR標(biāo)志和上行模塊發(fā)送DDR讀FIFO信號(hào)時(shí),把DDR控制器中存儲(chǔ)的數(shù)據(jù)通訊量讀出,并通過(guò)DDR用戶接口模塊的DDR讀FIFO,把數(shù)據(jù)通訊量發(fā)送給上行模塊;上行模塊通過(guò)網(wǎng)口將數(shù)據(jù)通訊量發(fā)送給上位機(jī),從而檢測(cè)是收集模塊未成功收集數(shù)據(jù)還是上位機(jī)未成功接收數(shù)據(jù)。如圖2所示,定時(shí)模塊包括:臨時(shí)寄存器、時(shí)間選擇器和時(shí)間計(jì)數(shù)器;臨時(shí)寄存器根據(jù)上位機(jī)通過(guò)網(wǎng)口發(fā)送的定時(shí)命令,寄存數(shù)據(jù)包中的定時(shí)標(biāo)志;時(shí)間選擇器根據(jù)臨時(shí)寄存器中的數(shù)據(jù)選擇定時(shí)時(shí)間,本實(shí)施例中定時(shí)時(shí)間有0.1s,0.5s,1s,5s,10s,20s,30s,40s,50s,60s,若定時(shí)標(biāo)志等于4'b0001,則定時(shí)時(shí)間等于0.1s,若定時(shí)標(biāo)志等于4'b0010,則定時(shí)時(shí)間等于0.5s,若定時(shí)標(biāo)志等于4'b0011,則定時(shí)時(shí)間等于1s,若定時(shí)標(biāo)志等于4'b0100,則定時(shí)時(shí)間等于5s,若定時(shí)標(biāo)志等于4'b0101,則定時(shí)時(shí)間等于10s,若定時(shí)標(biāo)志等于4'b0110,則定時(shí)時(shí)間等于20s,若定時(shí)標(biāo)志等于4'b0111,則定時(shí)時(shí)間等于30s,若定時(shí)標(biāo)志等于4'b1000,則定時(shí)時(shí)間等于40s,若定時(shí)標(biāo)志等于4'b1001,則定時(shí)時(shí)間等于50s,若定時(shí)標(biāo)志等于4'b1010,則定時(shí)時(shí)間等于60s;時(shí)間計(jì)數(shù)器根據(jù)配置模塊發(fā)送的開(kāi)始信號(hào)進(jìn)行計(jì)數(shù),賽靈思FPGA開(kāi)發(fā)板Virtex6_XC6VLX760的輸入時(shí)鐘頻率為50MHz,一個(gè)時(shí)鐘周期等于20ns,計(jì)數(shù)器計(jì)數(shù)到5000000表示定時(shí)時(shí)間為0.1s,計(jì)數(shù)器計(jì)數(shù)到25000000表示定時(shí)時(shí)間為0.5s,計(jì)數(shù)器計(jì)數(shù)到50000000表示定時(shí)時(shí)間為1s,計(jì)數(shù)器計(jì)數(shù)到5000000表示定時(shí)時(shí)間為5s,計(jì)數(shù)器計(jì)數(shù)到5000000表示定時(shí)時(shí)間為10s,計(jì)數(shù)器計(jì)數(shù)到5000000表示定時(shí)時(shí)間為20s,計(jì)數(shù)器計(jì)數(shù)到5000000表示定時(shí)時(shí)間為30s,計(jì)數(shù)器計(jì)數(shù)到5000000表示定時(shí)時(shí)間為40s,計(jì)數(shù)器計(jì)數(shù)到5000000表示定時(shí)時(shí)間為50s,計(jì)數(shù)器計(jì)數(shù)到5000000表示定時(shí)時(shí)間為60s,直到計(jì)數(shù)器的值等于時(shí)間寄存器選擇的定時(shí)時(shí)間后,產(chǎn)生收集信號(hào)。如圖3所示,配置模塊包括:4個(gè)配置數(shù)據(jù)寄存器、4個(gè)寫(xiě)使能寄存器和16個(gè)配置表寄存器;任意一個(gè)配置數(shù)據(jù)寄存器根據(jù)配置模塊對(duì)低位配置數(shù)據(jù)中低位源節(jié)點(diǎn)地址的判斷,對(duì)將要輸出給相應(yīng)下行打包模塊的配置數(shù)據(jù)進(jìn)行寄存,若列坐標(biāo)等于1,則將配置數(shù)據(jù)寄存器中的低位配置數(shù)據(jù)輸出給下行打包模塊1,若列坐標(biāo)等于2,則將配置數(shù)據(jù)寄存器中的低位配置數(shù)據(jù)輸出給下行打包模塊2,若列坐標(biāo)等于3,則將配置數(shù)據(jù)寄存器中的低位配置數(shù)據(jù)輸出給下行打包模塊3,若列坐標(biāo)等于4,則將配置數(shù)據(jù)寄存器中的低位配置數(shù)據(jù)輸出給下行打包模塊4;任意一個(gè)寫(xiě)使能寄存器根據(jù)配置模塊對(duì)低位配置數(shù)據(jù)中低位源節(jié)點(diǎn)地址的判斷,對(duì)相應(yīng)下行打包模塊的FIFO寫(xiě)使能信號(hào)進(jìn)行寄存,若列坐標(biāo)等于1,則下行打包模塊1中FIFO的寫(xiě)使能置1,若列坐標(biāo)等于2,則下行打包模塊2中FIFO的寫(xiě)使能置1,若列坐標(biāo)等于3,則下行打包模塊3中FIFO的寫(xiě)使能置1,若列坐標(biāo)等于4,則下行打包模塊4中FIFO的寫(xiě)使能置1;任意一個(gè)配置表寄存器在復(fù)位時(shí)將配置表寄存器的值設(shè)為高電平,并根據(jù)配置模塊對(duì)低位配置數(shù)據(jù)中低位源節(jié)點(diǎn)地址的判斷,設(shè)置自身配置表寄存器為低電平,例如源節(jié)點(diǎn)坐標(biāo)等于(1,1),就將(1,1)節(jié)點(diǎn)的配置表置0,源節(jié)點(diǎn)坐標(biāo)等于(1,2),就將(1,2)節(jié)點(diǎn)的配置表置0,以此類(lèi)推;直到配置模塊接收到NoC內(nèi)部每個(gè)計(jì)算節(jié)點(diǎn)的配置完成標(biāo)志后,將每個(gè)節(jié)點(diǎn)的配置完成標(biāo)志與配置表相或,再將所有節(jié)點(diǎn)的相或結(jié)果相與產(chǎn)生開(kāi)始信號(hào),再將自身配置表寄存器值設(shè)為高電平,從而完成對(duì)NoC的重新配置。如圖4所示,收集模塊包括:80個(gè)臨時(shí)寄存器、一號(hào)計(jì)數(shù)器和二號(hào)計(jì)數(shù)器;任意一個(gè)臨時(shí)寄存器用于寄存東、南、西、北和本地的輸出通道中相應(yīng)通訊節(jié)點(diǎn)的數(shù)據(jù)通訊量;一號(hào)計(jì)數(shù)器控制收集模塊將接收到的數(shù)據(jù)通訊量寫(xiě)進(jìn)相應(yīng)的臨時(shí)寄存器中,若一號(hào)計(jì)數(shù)器的值為1,則將數(shù)據(jù)通訊量寫(xiě)進(jìn)北方向的臨時(shí)寄存器;若一號(hào)計(jì)數(shù)器的值為2,則將數(shù)據(jù)通訊量寫(xiě)進(jìn)東方向的臨時(shí)寄存器,若一號(hào)計(jì)數(shù)器的值為3,則將數(shù)據(jù)通訊量寫(xiě)進(jìn)南方向的臨時(shí)寄存器;若一號(hào)計(jì)數(shù)器的值為4,則將數(shù)據(jù)通訊量寫(xiě)進(jìn)西方向的臨時(shí)寄存器;若一號(hào)計(jì)數(shù)器的值為5,則將數(shù)據(jù)通訊量寫(xiě)進(jìn)本地方向的臨時(shí)寄存器;二號(hào)計(jì)數(shù)器控制臨時(shí)寄存器中數(shù)據(jù)通訊量寫(xiě)進(jìn)收集模塊的FIFO中,并隨著二號(hào)計(jì)數(shù)器的值的增加,依次選擇節(jié)點(diǎn)北、東、南、西、本地方向的數(shù)據(jù)通訊量寫(xiě)入收集模塊的FIFO,例如,二號(hào)計(jì)數(shù)器的值等于2,將(1,1)節(jié)點(diǎn)北方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于3,將(1,1)節(jié)點(diǎn)東方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于4,將(1,1)節(jié)點(diǎn)南方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于5,將(1,1)節(jié)點(diǎn)西方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于6,將(1,1)節(jié)點(diǎn)本地方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于7,將(1,2)節(jié)點(diǎn)北方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于8,將(1,2)節(jié)點(diǎn)東方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于9,將(1,2)節(jié)點(diǎn)南方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于10,將(1,2)節(jié)點(diǎn)西方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);二號(hào)計(jì)數(shù)器的值等于11,將(1,2)節(jié)點(diǎn)本地方向的通訊量作為收集模塊FIFO的輸入數(shù)據(jù);等待全部數(shù)據(jù)通訊量寫(xiě)進(jìn)收集模塊的FIFO,則將準(zhǔn)備好信號(hào)拉高。具體實(shí)施中,任意一個(gè)監(jiān)測(cè)模塊包括:5個(gè)44位的數(shù)據(jù)臨時(shí)寄存器Q、5個(gè)44位的數(shù)據(jù)通訊量計(jì)數(shù)器、5個(gè)44位的數(shù)據(jù)通訊量計(jì)數(shù)寄存器和64位的通訊量輸出寄存器;5個(gè)44位的數(shù)據(jù)臨時(shí)寄存器Q寄存上一周期的NoC中東、南、西、北和本地方向發(fā)送給監(jiān)測(cè)模塊的數(shù)據(jù),再將5個(gè)44位的臨時(shí)寄存器Q中存儲(chǔ)的上一周期的數(shù)據(jù)取出與當(dāng)前周期輸入的數(shù)據(jù)相比較,若不相等,則產(chǎn)生相應(yīng)東、南、西、北、本地方向的數(shù)據(jù)變化信號(hào);5個(gè)44位的數(shù)據(jù)通訊量計(jì)數(shù)器根據(jù)東、南、西、北、本地方向的數(shù)據(jù)變化信號(hào)對(duì)相應(yīng)方向的計(jì)數(shù)器進(jìn)行計(jì)數(shù),計(jì)數(shù)完成之后等待接收定時(shí)模塊的收集信號(hào),當(dāng)接收到定時(shí)模塊的收集信號(hào)時(shí),將5個(gè)44位的數(shù)據(jù)通訊量計(jì)數(shù)器的值賦給5個(gè)44位的數(shù)據(jù)通訊量計(jì)數(shù)寄存器,并將5個(gè)44位的數(shù)據(jù)通訊量計(jì)數(shù)器清零;64位的通訊量輸出寄存器用于將本地坐標(biāo)、方向和數(shù)據(jù)通訊量一起打包輸出給收集模塊,從而完成NoC的數(shù)據(jù)通訊量的監(jiān)測(cè)。本實(shí)施例中,在賽靈思FPGA開(kāi)發(fā)板Virtex6_XC6VLX760上實(shí)現(xiàn),4×4的NoC網(wǎng)絡(luò)。當(dāng)前第1頁(yè)1 2 3