一種片上網(wǎng)絡(luò)運(yùn)行過程重現(xiàn)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種面向片上網(wǎng)絡(luò)的監(jiān)控分析方法及系統(tǒng),尤其設(shè)及一種片上網(wǎng)絡(luò)運(yùn) 行過程重現(xiàn)方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著集成工藝的進(jìn)步,片上系統(tǒng)(System-on-化ip,SoC)中集成的功能單元的種 類和數(shù)量迅速增加。傳統(tǒng)的共享通信結(jié)構(gòu)和直接通信結(jié)構(gòu)都不能很好地應(yīng)對(duì)片上多核間日 益增長的通信壓力。片上網(wǎng)絡(luò)(Network-on-化ip,NoC)是一種新型的片上多核間通信結(jié) 構(gòu),相較與傳統(tǒng)的通信結(jié)構(gòu),片上網(wǎng)絡(luò)能夠體統(tǒng)更高的帶寬和靈活性,同時(shí)在性能和代價(jià)之 間得到更好的平衡。
[0003] 片上網(wǎng)絡(luò)傳遞的基本數(shù)據(jù)單位是微片(flit),多個(gè)微片可W構(gòu)成一個(gè)數(shù)據(jù)包。每 個(gè)微片分為頭部和負(fù)載,頭部包含的進(jìn)行路由計(jì)算需要的信息。片上網(wǎng)絡(luò)路由器是片上網(wǎng) 絡(luò)的基本組成結(jié)構(gòu),其內(nèi)部結(jié)構(gòu)可W分為控制通道和數(shù)據(jù)通道構(gòu)成。數(shù)據(jù)通道包括微片輸 入端口、輸入緩存、交換單元、輸出寄存器(或緩存)、微片輸出端口??刂仆ǖ腊ň彺婵?制電路、路由計(jì)算電路、交換仲裁電路、交換控制電路、時(shí)鐘電路W及實(shí)時(shí)故障檢測(cè)電路等 可選電路組成。從微片進(jìn)入路由器開始,需要經(jīng)過輸入緩沖排隊(duì)、路由計(jì)算(RC)、虛通道仲 裁(VA)、交換仲裁(SA)、交換傳遞(ST)等過程,最后或者送給網(wǎng)絡(luò)接口(NI),或者傳遞給下 一級(jí)路由器。
[0004] 與一般的ASIC/SoC忍片不同,片上網(wǎng)絡(luò)由于運(yùn)行過程中狀態(tài)變化極其復(fù)雜,因而 需要監(jiān)控許多路由器內(nèi)部的細(xì)節(jié)操作行為和特定數(shù)據(jù)包的路徑等微觀信息,W便能夠全面 檢查并準(zhǔn)確定位設(shè)計(jì)中的故障或錯(cuò)誤。因此設(shè)計(jì)一套實(shí)用化的重現(xiàn)并分析片上網(wǎng)絡(luò)運(yùn)行狀 態(tài)和過程的系統(tǒng)具有重要意義。 陽0化]在現(xiàn)有的片上網(wǎng)絡(luò)開發(fā)工具和監(jiān)控方法中,信息呈現(xiàn)形式的單一。枯燥的數(shù)字事 實(shí)上成為設(shè)計(jì)者查找錯(cuò)誤的最大障礙。開發(fā)者需要人工完成對(duì)數(shù)據(jù)的翻譯,才能開始分析 網(wǎng)絡(luò)的正確性。通過提取到運(yùn)行過程中大量微觀數(shù)據(jù)和狀態(tài),同時(shí)進(jìn)行必要圖形化的重現(xiàn) 和回放W直接呈現(xiàn)其物理含義,對(duì)開發(fā)人員完成片上網(wǎng)絡(luò)的FPGA原型驗(yàn)證具有極大的意 義。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,針對(duì)片上網(wǎng)絡(luò)設(shè)計(jì)開發(fā)過程中仿真和驗(yàn) 證環(huán)節(jié),提出了一種對(duì)片上網(wǎng)絡(luò)運(yùn)行過程進(jìn)行記錄、并利用圖形化界面直觀和形象地重現(xiàn) 片上網(wǎng)絡(luò)運(yùn)行過程、及對(duì)設(shè)計(jì)錯(cuò)誤和缺陷進(jìn)行診斷的方法及系統(tǒng)。
[0007] 本發(fā)明的目的是通過W下技術(shù)方案來實(shí)現(xiàn)的:一種片上網(wǎng)絡(luò)運(yùn)行過程重現(xiàn)方法, 它包括W下步驟:
[0008] Sl :從片上網(wǎng)絡(luò)仿真器或驗(yàn)證平臺(tái)獲取片上網(wǎng)絡(luò)配置參數(shù)和運(yùn)行日志數(shù)據(jù);
[0009] S2 :根據(jù)步驟Sl中獲取的片上網(wǎng)絡(luò)配置參數(shù),繪制網(wǎng)絡(luò)拓?fù)浜吐酚善鳎?br>[0010]S3:根據(jù)步驟SI獲取的運(yùn)行日志數(shù)據(jù),在步驟S2中繪制的網(wǎng)絡(luò)拓?fù)渖?,通過圖像 化界面重現(xiàn)片上網(wǎng)絡(luò)行為;
[0011]S4:利用步驟S3中重現(xiàn)的片上網(wǎng)絡(luò)行為,觀察路由器行為并對(duì)片上網(wǎng)絡(luò)進(jìn)行診斷 分析,并且調(diào)試片上網(wǎng)絡(luò)。
[0012] 所述的片上網(wǎng)絡(luò)配置參數(shù)包括網(wǎng)絡(luò)通用配置參數(shù)和路由器配置參數(shù);所述的網(wǎng)絡(luò) 通用配置參數(shù)包括網(wǎng)絡(luò)拓?fù)?、網(wǎng)絡(luò)大小、物理端口數(shù)量W及每個(gè)物理端口的虛通道數(shù)量、輸 入緩存大小、輸出緩存大?。凰龅穆酚善髋渲脜?shù)包括路由器編號(hào)、路由器位置、物理端 口數(shù)量W及每個(gè)物理端口的虛通道數(shù)量、輸入緩存大小、輸出緩存大小、端口連接的鄰居路 由器和端口。
[0013] 運(yùn)行日志數(shù)據(jù)記錄了片上網(wǎng)絡(luò)的各種行為,按照事件的觸發(fā)時(shí)間先后順序排列, 包括特定字段構(gòu)成的事件記錄;所述的事件記錄包括:
[0014] (1)微片接收事件,一個(gè)路由器接從一個(gè)端口收到一個(gè)微片;
[0015] (2)微片交換事件,一個(gè)微片從路由器的一個(gè)輸入端口通過交換電路到達(dá)一個(gè)輸 出端口;
[0016] (3)微片發(fā)送事件,一個(gè)路由器向一個(gè)端口發(fā)出一個(gè)微片; 陽017] (4)端口請(qǐng)求事件,輸入端口進(jìn)行路由計(jì)算,并向輸出端口發(fā)送請(qǐng)求;
[0018] (5)端口綁定事件,經(jīng)過虛通道仲裁、交換仲裁后,將某個(gè)輸出端口與輸入端口綁 定;
[0019] (6)端口解綁定事件,數(shù)據(jù)包通過交換矩陣后,將輸入端口與輸出端口解綁定;
[0020] (7)端口狀態(tài)變化事件。
[0021] 所述的字段包括事件的字段和微片的字段;所述的事件的字段包括事件觸發(fā)時(shí) 間、事件類型、源路由器編號(hào)、源物理端口號(hào)、源虛通道號(hào)、目的路由器編號(hào)、目的物理端口 號(hào)、目的虛通道號(hào)、數(shù)據(jù)包大?。凰龅奈⑵淖侄伟ㄎ⑵幪?hào)、數(shù)據(jù)包大小、微片類型、 微片源地址、微片目的地址、微片生成時(shí)間。
[0022] 步驟S2中所述的繪制路由器過程為:
[0023]首次繪制一個(gè)正八邊形作為路由器,該正八邊形的任一邊均可繪制長方形的端口 緩存,端口緩存的寬與路由器的一個(gè)邊重合,運(yùn)樣做是為了繪制復(fù)雜的或非規(guī)則的網(wǎng)絡(luò)拓 撲;用不同顏色標(biāo)識(shí)端口緩存是否為滿。
[0024]其次,在端口緩存內(nèi)繪制長方型微片,端口緩存的長等于:微片寬度與端口緩存內(nèi) 單元數(shù)的乘積;運(yùn)樣,微片可W依次排列在端口緩存中,且放置的微片數(shù)量就是端口緩存內(nèi) 單元數(shù)量;
[0025]最后,路由器的輸入端口與輸出端口的請(qǐng)求和綁定關(guān)系用從路由器的輸入端口緩 存到路由器的輸出端口緩存的箭頭繪出,并且通過不同的線條分別表示端口請(qǐng)求和端口綁 定關(guān)系。具體地,用虛線表示端口請(qǐng)求,用粗實(shí)線表示端口綁定。
[00%] 根據(jù)網(wǎng)絡(luò)拓?fù)鋮?shù)繪制路由器,并通過端口到端口的箭頭鏈接不同的路由器,表 示網(wǎng)絡(luò)拓?fù)洹]斎牒洼敵龆丝诘倪B接分別用箭頭標(biāo)識(shí)。
[0027]片上網(wǎng)絡(luò)為數(shù)字電路,由時(shí)鐘信號(hào)驅(qū)動(dòng)。重現(xiàn)過程展示每個(gè)時(shí)鐘周期的網(wǎng)絡(luò)和路 由器狀態(tài)。重現(xiàn)網(wǎng)絡(luò)運(yùn)行即連續(xù)地,按照用戶指定的時(shí)間間隔,將各個(gè)時(shí)刻的片上網(wǎng)絡(luò)狀態(tài) 繪制出來。
[0028] 步驟S3所述的重現(xiàn)片上網(wǎng)絡(luò)行為包括連續(xù)地按照用戶指定的時(shí)間間隔,將各個(gè) 時(shí)刻的片上網(wǎng)絡(luò)狀態(tài)繪制出來:需要第t個(gè)時(shí)鐘周期的網(wǎng)絡(luò)狀態(tài),則重現(xiàn)時(shí)間不晚于第t個(gè) 時(shí)鐘周期的所有事件;如果要重現(xiàn)下一周期即t+1個(gè)時(shí)鐘周期的網(wǎng)絡(luò)狀態(tài),則重現(xiàn)晚于第t 個(gè)時(shí)鐘周期而不晚于第t+1個(gè)時(shí)鐘周期的事件;如果要重現(xiàn)上一周期即t-1個(gè)時(shí)鐘周期的 網(wǎng)絡(luò)狀態(tài),則需要撤銷晚于第t-1個(gè)時(shí)鐘周期而不晚于第t個(gè)時(shí)鐘周期的事件。
[0029] 片上網(wǎng)絡(luò)運(yùn)行過程中,需要監(jiān)控的器件包括:輸入緩存和輸出緩存內(nèi)單元的微片 頭部、路由計(jì)算結(jié)果和交換綁定矩陣。片上網(wǎng)絡(luò)的行為通過網(wǎng)絡(luò)事件進(jìn)行記錄。
[0030] 步驟S3所述的重現(xiàn)片上網(wǎng)絡(luò)行為包括:
[0031] (1)對(duì)于微片接收事件:重現(xiàn)操作:在輸入緩存尾部增加一個(gè)微片;撤銷操作:將 輸入緩存中的最后一個(gè)微片擦除;
[0032] (2)對(duì)于微片交換事件,重現(xiàn)操作:將輸入緩存中的第一個(gè)微片擦除,并且在輸出 緩存的尾部增加一個(gè)微片;撤銷操作:將輸出緩存中的最后一個(gè)微片擦除并且在輸入緩存 的頭部增加一個(gè)微片;
[0033] (3)對(duì)于微片發(fā)送事件:重現(xiàn)操作:將輸出緩存的第一個(gè)微片擦除;撤銷操作:在 輸出緩存的頭部插入此微片;
[0034] (4)對(duì)于端口請(qǐng)求事件:重現(xiàn)操作:用虛線箭頭連接輸入端口和輸出端口,表示路 由請(qǐng)求;撤銷操作:刪除連接輸入端口和輸出端口的虛線箭頭;
[00對(duì) 妨對(duì)于端口綁定事件:重現(xiàn)操作:用粗實(shí)線箭頭連接輸入端口和輸出端口,表示 端口綁定;撤銷操作:刪除連接輸入端口和輸出端口的粗實(shí)線箭頭;
[0036] (6)對(duì)于端口解綁定事件:重現(xiàn)操作:擦除連接輸入端口和輸出端口用的粗實(shí)線, 表示端口沒有綁定;撤銷操作:用粗實(shí)線箭頭連接輸入端口和輸出端口;
[0037] (7)對(duì)于端口狀態(tài)變化事件:重現(xiàn)和撤銷操作:改變端口緩存上標(biāo)注的狀態(tài)名稱。
[0038] 所述的圖像化面板包括重現(xiàn)窗口、重現(xiàn)控制面板和路由器監(jiān)視面板;重現(xiàn)窗口繪 制有片上網(wǎng)絡(luò)的路由器或拓?fù)溥B接,W及網(wǎng)絡(luò)狀態(tài);步驟S3通過重現(xiàn)控制面板控制重現(xiàn)下 一時(shí)鐘周期或上一時(shí)鐘周期的網(wǎng)絡(luò)狀態(tài),同時(shí)還包括設(shè)定時(shí)間自動(dòng)向后或向前播放;步驟 S3還通過路由器監(jiān)視面板,展示某個(gè)路由器所有緩存內(nèi)微片的頭部信息,跟蹤微片的流動(dòng)。
[0039] 所述的步驟S4包括定位子步驟、監(jiān)視子步驟和診斷子步驟;
[0040] S41 :定位子步驟:利用向前、向后連續(xù)播放的功能快速檢索故障;通過定位,找到 出現(xiàn)故障的時(shí)間、路由器和數(shù)據(jù)包;
[0041] S42 :監(jiān)視子步驟:利用按時(shí)間周