NoC中基于鏈路分配的無沖突測(cè)試調(diào)度方法
【專利摘要】本發(fā)明公開了一種NoC中基于鏈路分配的無沖突測(cè)試調(diào)度方法,通過改進(jìn)的裝箱算法將網(wǎng)絡(luò)劃分為若干個(gè)區(qū)域,在鏈路分配過程中,通過對(duì)每個(gè)邊界節(jié)點(diǎn)建立路徑樹來查找連通路徑,綜合各個(gè)子區(qū)域的備選路徑集合信息后,分配鏈路使各個(gè)區(qū)域并行測(cè)試不會(huì)發(fā)生沖突。本發(fā)明解決了片上網(wǎng)絡(luò)中并行測(cè)試的鏈路沖突問題,可以有效降低芯片的測(cè)試時(shí)間、保證測(cè)試可靠性。
【專利說明】NoC中基于鏈路分配的無沖突測(cè)試調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及集成電路芯片的測(cè)試【技術(shù)領(lǐng)域】,尤其涉及一種NoC中基于鏈路分配的 無沖突測(cè)試調(diào)度方法。
【背景技術(shù)】
[0002] 隨著集成電路特征尺寸的不斷減小,在大規(guī)模復(fù)雜片上系 統(tǒng)(system-on-chip, SoC)的設(shè)計(jì)中,基于包交換傳輸數(shù)據(jù)的片上網(wǎng)絡(luò) (network-on-chip, NoC)架構(gòu)由于其具有很好的可靠性和可擴(kuò)展性被廣泛研究。在NoC中, 數(shù)據(jù)以數(shù)據(jù)包的形式在網(wǎng)絡(luò)中轉(zhuǎn)發(fā),一個(gè)節(jié)點(diǎn)可以通過網(wǎng)絡(luò)與任意另外一個(gè)節(jié)點(diǎn)進(jìn)行通 信,這種特性給NoC的測(cè)試帶來了便利。
[0003] 討論NoC的測(cè)試問題時(shí),總是想在測(cè)試時(shí)間最小的情況下使額外的開銷(包括 測(cè)試引腳數(shù),面積開銷等)最小。復(fù)用NoC網(wǎng)絡(luò)架構(gòu)作為測(cè)試訪問機(jī)制(test access mechanism, ΤΑΜ)傳輸測(cè)試數(shù)據(jù)是一種比較好的解決方案,但是如果有多個(gè)ΤΑΜ對(duì)網(wǎng)絡(luò)并行 測(cè)試時(shí),容易遇到對(duì)公用測(cè)試資源(路由器和鏈路等)的競(jìng)爭(zhēng)問題。為了保證測(cè)試的連續(xù) 性,避免延時(shí)抖動(dòng)和最小化測(cè)試時(shí)間,如何有效地對(duì)網(wǎng)絡(luò)資源進(jìn)行統(tǒng)一調(diào)度顯得尤為重要。
[0004] 在NoC測(cè)試調(diào)度算法領(lǐng)域,國(guó)內(nèi)外已經(jīng)進(jìn)行了很多研究,具體有以下幾種比較經(jīng) 典的調(diào)度方法。
[0005] 1、搶占式調(diào)度方法法。該方法中對(duì)每個(gè)核的數(shù)據(jù)包按照測(cè)試時(shí)間進(jìn)行排序并查找 測(cè)試路徑,如果有路徑空閑則調(diào)度。這種方法調(diào)度單位是數(shù)據(jù)包,靈活性高但是過程復(fù)雜, 而且因?yàn)椴煌瑪?shù)據(jù)包傳輸路徑可能會(huì)不同,所以不能保證數(shù)據(jù)有序無損地傳輸?shù)酱郎y(cè)核。
[0006] 2、非搶占式調(diào)度方法。該方法調(diào)度的單位為待測(cè)核,一旦分配路徑給相關(guān)核則永 久占用這條路徑直到測(cè)試結(jié)束。這種方法的缺點(diǎn)是沒有統(tǒng)一的調(diào)度測(cè)試資源而且通道的利 用率也不高。
[0007] 3、整數(shù)線性規(guī)劃。本方法通過將問題抽象成一種純數(shù)學(xué)上的整數(shù)線性規(guī)劃模型來 解決相關(guān)測(cè)試調(diào)度問題。但有文獻(xiàn)顯示,在ΤΑΜ個(gè)數(shù)達(dá)到3時(shí),解決整數(shù)線性規(guī)劃模型的實(shí) 驗(yàn)時(shí)間就已經(jīng)達(dá)到了兩天甚至更長(zhǎng)。所以在ΤΑΜ數(shù)目多的情況下,這種方法就變的不可接 受。
[0008] 4、逐步分配位寬法。該方法首先確定ΤΑΜ個(gè)數(shù),然后逐步分配位寬同時(shí)合并區(qū)域 的方法來解決資源沖突問題。此方法是針對(duì)節(jié)點(diǎn)進(jìn)行區(qū)域劃分,粒度過大,測(cè)試資源并不能 得到合理利用。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明目的就是為了彌補(bǔ)已有技術(shù)的缺陷,提供一種NoC中基于鏈路分配的無沖 突測(cè)試調(diào)度方法。
[0010] 本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
[0011] 一種NoC中基于鏈路分配的無沖突測(cè)試調(diào)度方法,操作步驟如下:
[0012] 第一步:劃分區(qū)域過程
[0013] a、使用分區(qū)初始化算法對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行初始化,將節(jié)點(diǎn)看做方塊,每個(gè)區(qū)域都可 以映射為一個(gè)矩形區(qū)域,確定需要裝入矩形區(qū)域的方塊的初始大?。?br>
[0014] b、使用改進(jìn)的裝箱算法對(duì)初始化后的方塊進(jìn)行調(diào)度,選取測(cè)試時(shí)間最長(zhǎng)的核先裝 入矩形區(qū)域,然后對(duì)剩下的位寬和已調(diào)度的核測(cè)試時(shí)間所構(gòu)成的另一個(gè)矩形區(qū)域,調(diào)度剩 下的核盡可能將其裝滿;分配完后,每個(gè)節(jié)點(diǎn)屬于一個(gè)區(qū)域,各個(gè)區(qū)域并行測(cè)試;
[0015] 第二步:鏈路分配過程
[0016] c、將屬于同一個(gè)區(qū)域的相鄰節(jié)點(diǎn)進(jìn)行合并,完成后每個(gè)區(qū)域包含若干個(gè)不相鄰的 子區(qū)域;
[0017] d、對(duì)每個(gè)子區(qū)域的邊界節(jié)點(diǎn)建立路徑樹和備選路徑集合,綜合各個(gè)節(jié)點(diǎn)的備選路 徑集合,分配網(wǎng)絡(luò)中的鏈路資源,連通屬于同一個(gè)區(qū)域的所有子區(qū)域,并且不與其他區(qū)域的 鏈路發(fā)生沖突;如果有區(qū)域無法分配到鏈路使其子區(qū)域都連通,轉(zhuǎn)到步驟e ;
[0018] e、將被孤立的節(jié)點(diǎn)或者子區(qū)域合并到它的鄰居區(qū)域,調(diào)整網(wǎng)絡(luò)使各個(gè)區(qū)域間的測(cè) 試時(shí)間平衡,使并行測(cè)試無鏈路沖突。
[0019] 步驟b中所述的改進(jìn)的裝箱算法內(nèi)容包括:給定片上網(wǎng)絡(luò)一組待測(cè)核,將其視為 一組長(zhǎng)寬不一的方塊,其中方塊長(zhǎng)表示核的測(cè)試時(shí)間,寬表示給核用的測(cè)試位寬,有若干個(gè) 矩形區(qū)域,寬為總的測(cè)試位寬,長(zhǎng)度不限,調(diào)度方塊裝入矩形區(qū)域,使最長(zhǎng)的矩形區(qū)域的長(zhǎng) 度最短,此長(zhǎng)度便為整個(gè)片上網(wǎng)絡(luò)的測(cè)試時(shí)間;
[0020] 首先需要對(duì)待測(cè)核集進(jìn)行初始化,根據(jù)公式:Tt"p = Ti (wmax) +P/100* (Ti (1) -Ti (Wmax)計(jì)算出Ttemp值,公式中,p值為一個(gè)變量,變化p值可得到不 同的待測(cè)核集進(jìn)行調(diào)度,最后可選取使測(cè)試時(shí)間最短的P值,?\(ι μχ)表示核i在測(cè)試位寬 最大的情況下的測(cè)試時(shí)間,計(jì)算出1\_后,查找離其最近的測(cè)試時(shí)間值,這個(gè)值和其所對(duì)應(yīng) 的位寬即為核i的長(zhǎng)和寬;
[0021] 待測(cè)核集初始化后,整個(gè)矩形區(qū)域都是空白的,將方塊按長(zhǎng)度排序,選取一個(gè)矩形 區(qū)域后,盡可能的將這個(gè)矩形區(qū)域的空白區(qū)域給裝滿,首先查找待調(diào)度的方塊集合,在若干 個(gè)矩形區(qū)域中,選取起始位置最小的矩形區(qū)域,初始時(shí)每個(gè)矩形區(qū)域的起始位置都是零,將 可裝入矩形區(qū)域的最大方塊調(diào)度進(jìn)去,然后對(duì)矩形區(qū)域中剩下寬度和最大方塊的起始和結(jié) 束位置所組成的空白區(qū)域,調(diào)度剩下的方塊盡可能裝滿,對(duì)于空白區(qū)域,如果在未調(diào)度的方 塊中查找不到可裝入空白區(qū)域的核,則對(duì)剩下的核做變形處理,以調(diào)度進(jìn)去,變形過程為, 順序查找剩下的方塊,降低方塊的寬度,檢測(cè)長(zhǎng)度是否超出空白區(qū)域,如果沒超過則調(diào)度, 如果超過則順序查找下面的方塊,循環(huán)此過程,直到所有方塊都被調(diào)度進(jìn)去。
[0022] 步驟d中所述的的對(duì)每個(gè)子區(qū)域邊界節(jié)點(diǎn)建立節(jié)點(diǎn)路徑樹和備選路徑集合的內(nèi) 容包括:對(duì)待合并部分中每個(gè)區(qū)域的邊界節(jié)點(diǎn),以邊界節(jié)點(diǎn)為根節(jié)點(diǎn),如果根節(jié)點(diǎn)某個(gè)方向 鏈路未被占用,則將此鏈路作為一個(gè)分支加入到路徑樹中;接著探索此鏈路相連的鄰接節(jié) 點(diǎn)是否有空閑鏈路,如果有,則繼續(xù)建立分支,直到樹的深度達(dá)到最大值;如果沒有,則結(jié)束 此方向探索,搜索路徑樹,查找可以將與根節(jié)點(diǎn)屬于同一區(qū)域的子區(qū)域連通的路徑,加入到 根節(jié)點(diǎn)的備選路徑集合中,重復(fù)查找,直到所有路徑都遍歷完全。
[0023] 本發(fā)明的優(yōu)點(diǎn)是:本發(fā)明通過改進(jìn)的裝箱算法對(duì)片上網(wǎng)絡(luò)進(jìn)行區(qū)域劃分,重新定 義了分區(qū)問題和解決方法,達(dá)到片上網(wǎng)絡(luò)區(qū)域間并行測(cè)試,降低了整個(gè)芯片的測(cè)試時(shí)間;鏈 路分配算法是基于各個(gè)節(jié)點(diǎn)的路徑樹和備選路徑集合來分配資源。對(duì)每個(gè)邊界節(jié)點(diǎn)都建立 路徑樹,可以保證所有可連通路徑都會(huì)被探測(cè)到;分配鏈路時(shí)綜合各個(gè)區(qū)域的備選路徑集 合,可以盡最大努力找到不互相沖突的鏈路,從而最合理分配網(wǎng)絡(luò)的測(cè)試資源,保證了測(cè)試 的可靠性。
【專利附圖】
【附圖說明】
[0024] 圖1為D695電路分區(qū)結(jié)果圖。
[0025] 圖2為鏈路分配算法流程圖。
[0026] 圖3為D695電路合并相鄰節(jié)點(diǎn)后結(jié)果圖。
[0027] 圖4為節(jié)點(diǎn)5的路徑樹圖。
[0028] 圖5為節(jié)點(diǎn)6的路徑樹圖。
[0029] 圖6為鏈路分配時(shí)合并子區(qū)域后結(jié)果圖。
[0030] 圖7為p = 5時(shí)D695電路初始帶寬分配表。
【具體實(shí)施方式】
[0031] 一種NoC中基于鏈路分配的無沖突測(cè)試調(diào)度方法,操作步驟如下:
[0032] 第一步:劃分區(qū)域過程
[0033] a、使用分區(qū)初始化算法對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行初始化,將節(jié)點(diǎn)看做方塊,每個(gè)區(qū)域都可 以映射為一個(gè)矩形區(qū)域,確定需要裝入矩形區(qū)域的方塊的初始大??;
[0034] b、使用改進(jìn)的裝箱算法對(duì)初始化后的方塊進(jìn)行調(diào)度,選取測(cè)試時(shí)間最長(zhǎng)的核先裝 入矩形區(qū)域,然后對(duì)剩下的位寬和已調(diào)度的核測(cè)試時(shí)間所構(gòu)成的另一個(gè)矩形區(qū)域,調(diào)度剩 下的核盡可能將其裝滿;分配完后,每個(gè)節(jié)點(diǎn)屬于一個(gè)區(qū)域,各個(gè)區(qū)域并行測(cè)試;
[0035] 第二步:鏈路分配過程
[0036] c、將屬于同一個(gè)區(qū)域的相鄰節(jié)點(diǎn)進(jìn)行合并,完成后每個(gè)區(qū)域包含若干個(gè)不相鄰的 子區(qū)域;
[0037] d、對(duì)每個(gè)子區(qū)域的邊界節(jié)點(diǎn)建立路徑樹和備選路徑集合,綜合各個(gè)節(jié)點(diǎn)的備選路 徑集合,分配網(wǎng)絡(luò)中的鏈路資源,連通屬于同一個(gè)區(qū)域的所有子區(qū)域,并且不與其他區(qū)域的 鏈路發(fā)生沖突;如果有區(qū)域無法分配到鏈路使其子區(qū)域都連通,轉(zhuǎn)到步驟e ;
[0038] e、將被孤立的節(jié)點(diǎn)或者子區(qū)域合并到它的鄰居區(qū)域,調(diào)整網(wǎng)絡(luò)使各個(gè)區(qū)域間的測(cè) 試時(shí)間平衡,保證并行測(cè)試無鏈路沖突。
[0039] 改進(jìn)的裝箱算法:
[0040] 裝箱算法最初是基于SoC架構(gòu)設(shè)計(jì)而來,本方法將其改進(jìn)以應(yīng)用到NoC并行分區(qū) 測(cè)試中。首先將調(diào)度問題抽象出來進(jìn)行描述:給定片上網(wǎng)絡(luò)一組待測(cè)核,將其視為一組長(zhǎng)寬 不一的方塊。其中方塊長(zhǎng)表示核的測(cè)試時(shí)間,寬表示給核用的測(cè)試位寬。假設(shè)有若干個(gè)箱 子,寬為總的測(cè)試位寬,長(zhǎng)度不限。調(diào)度方塊裝入箱子,使最長(zhǎng)的箱子的長(zhǎng)度最短。此長(zhǎng)度 便為整個(gè)片上網(wǎng)絡(luò)的測(cè)試時(shí)間。
[0041] 裝箱調(diào)度算法分為兩個(gè)部分,首先需要對(duì)待測(cè)核集進(jìn)行初始化。根據(jù)公式:TtMp = Ti (wmax) +P/100* (Ti⑴-Ti (Wmax)計(jì)算出Ttemp值。公式中,P值為一個(gè)變量,變化P值可得到 不同的待測(cè)核集進(jìn)行調(diào)度,最后可選取使測(cè)試時(shí)間最短的P值。TJW^)表示核i在測(cè)試位 寬最大的情況下的測(cè)試時(shí)間。計(jì)算出TtMP后,查找離其最近的測(cè)試時(shí)間值,這個(gè)值和其所對(duì) 應(yīng)的位寬即為核i的長(zhǎng)和寬。
[0042] 待測(cè)核集初始化后,將方塊按長(zhǎng)度排序,對(duì)其進(jìn)行調(diào)度裝箱操作。我們利用貪心的 思想來調(diào)度方塊,即選取一個(gè)箱子后,盡可能的將這個(gè)箱子的空白區(qū)域給裝滿(初始時(shí)整 個(gè)箱子都是空白的)。首先查找待調(diào)度的方塊集合,在若干個(gè)箱子中,選取起始位置最小的 箱子(初始時(shí)每個(gè)箱子的起始位置都是零),將可裝入箱子的最大方塊調(diào)度進(jìn)去。然后對(duì)箱 子中剩下寬度和最大方塊的起始和結(jié)束位置所組成的空白區(qū)域,調(diào)度剩下的方塊盡可能裝 滿。對(duì)于空白區(qū)域,如果在未調(diào)度的方塊中查找不到可裝入空白區(qū)域的核,則嘗試對(duì)剩下的 核做變形處理,以調(diào)度進(jìn)去。變形過程為,順序查找剩下的方塊,降低方塊的寬度,檢測(cè)長(zhǎng)度 是否超出空白區(qū)域,如果沒超過則調(diào)度,如果超過則順序查找下面的方塊。循環(huán)此過程,直 到所有方塊都被調(diào)度進(jìn)去。
[0043] 以ITC'02標(biāo)準(zhǔn)中的D695電路為例,將網(wǎng)絡(luò)分為兩個(gè)區(qū)域。假設(shè)p值為5,則按初 始化算法,每個(gè)核的初始位寬以及測(cè)試時(shí)間如表1所示,其相應(yīng)分區(qū)結(jié)果如圖1所示。結(jié) 果共分有兩個(gè)區(qū),P1 {5, 8, 4, 9, 3, 2, 1},P2{6, 10, 7}。由圖1可知,片上網(wǎng)絡(luò)的測(cè)試時(shí)間為 25125個(gè)周期,變動(dòng)p值,片上網(wǎng)絡(luò)最終測(cè)試時(shí)間也會(huì)變化,本文選取測(cè)試時(shí)間最少的調(diào)度 結(jié)果作為最終的分區(qū)結(jié)果。
[0044] 如圖7所示,p = 5時(shí)D695電路初始帶寬分配表
[0045] 鏈路分配算法:
[0046] 鏈路分配算法總的流程圖如圖2所示。首先根據(jù)分區(qū)算法所得到的結(jié)果,檢測(cè)每 個(gè)節(jié)點(diǎn)的相鄰節(jié)點(diǎn)是否屬于同一個(gè)區(qū)域。如果是,則合并節(jié)點(diǎn)為一個(gè)子區(qū)域,將共同占有的 鏈路分配給此子區(qū)域,如果不是則不處理。此步驟完成后,屬于同一個(gè)區(qū)域的相鄰節(jié)點(diǎn)合并 為一個(gè)子區(qū)域,每個(gè)區(qū)域都包含一個(gè)子區(qū)域集合,同一個(gè)區(qū)域中的子區(qū)域互不相鄰。以圖3 為例,假設(shè)分區(qū)結(jié)果為P1 {5, 7, 4, 9, 3, 2, 1},P2 {6, 10, 8},分別合并兩個(gè)區(qū)域中的相鄰節(jié)點(diǎn) 后如圖中虛線部分所示。
[0047] 對(duì)待合并部分中每個(gè)區(qū)域的邊界節(jié)點(diǎn),以邊界節(jié)點(diǎn)作為根節(jié)點(diǎn)建立路徑樹。以邊 界節(jié)點(diǎn)為根節(jié)點(diǎn),如果根節(jié)點(diǎn)某個(gè)方向鏈路未被占用,則將此鏈路作為一個(gè)分支加入到路 徑樹中。接著探索此鏈路相連的鄰接節(jié)點(diǎn)是否有空閑鏈路,如果有,則繼續(xù)建立分支,直到 樹的深度達(dá)到最大值;如果沒有,則結(jié)束此方向探索。對(duì)節(jié)點(diǎn)建立路徑樹后,搜索路徑樹,查 找可以將與根節(jié)點(diǎn)屬于同一區(qū)域的子區(qū)域連通的路徑,將路徑加入到根節(jié)點(diǎn)的備選路徑集 合中。
[0048] 繼續(xù)以圖3進(jìn)行說明。對(duì)P1區(qū)域和P2區(qū)域中每個(gè)邊界節(jié)點(diǎn)建立路徑樹。節(jié)點(diǎn) 5和節(jié)點(diǎn)6的路徑樹分別如圖4和圖5所示,圖中節(jié)點(diǎn)間標(biāo)記為連接兩個(gè)節(jié)點(diǎn)的鏈路。搜 索節(jié)點(diǎn)5的路徑樹發(fā)現(xiàn),有三條通路可以使區(qū)域P1的兩個(gè)子區(qū)域P11和P12連通,分別為 (〈5, 8>,〈8, 9>),(〈5, 6>,〈6, 9>),(〈5, 6>,〈6, 7>,〈7, 10>,〈10, 9>),如圖 4 箭頭線所示,此三 條路徑為節(jié)點(diǎn)5的備選路徑集合。搜索節(jié)點(diǎn)6的路徑樹可以得到兩條將子區(qū)域6、8、10連 通的路徑,分別為(〈6, 5>,〈5, 8>,〈8, 9>,〈9, 10?,(〈6, 7>,〈7, 10>,〈10, 9>,〈9, 8>),如圖 5 箭頭線所示。
[0049] 分配鏈路使屬于同一個(gè)區(qū)域的子區(qū)域連通。每個(gè)區(qū)域的每個(gè)邊界節(jié)點(diǎn)都有一個(gè)備 選路徑集合,在這個(gè)集合中,包含著從此節(jié)點(diǎn)出發(fā)可以連通子區(qū)域的路徑。對(duì)一個(gè)區(qū)域而 言,需要從本區(qū)域所有邊界節(jié)點(diǎn)的備選路徑集合中找到一條路徑,使所有子區(qū)域都連通,并 且其他區(qū)域有不與其沖突的鏈路即可。查找所有區(qū)域,如果都找到路徑可以使本區(qū)域的所 有子區(qū)域連通,則分配相應(yīng)鏈路;如果有區(qū)域沒有成功分配鏈路則需要調(diào)整網(wǎng)絡(luò)。
[0050] 對(duì)圖4中節(jié)點(diǎn)5的備選路徑進(jìn)行鏈路沖突檢查。不難發(fā)現(xiàn),路徑 (<5,6>,〈6,7>,〈7, 10>,〈10,9>)可以使P1的兩個(gè)子區(qū)域連通,同時(shí)P2中節(jié)點(diǎn)6有路徑 (〈6, 5>,〈5, 8>,〈8, 9>,〈9, 10? 與此路徑不沖突。則將路徑(〈5, 6>,〈6, 7>,〈7, 10>,〈10, 9>) 分配給區(qū)域P1,路徑(〈6, 5>,〈5, 8>,〈8, 9>,〈9, 10?分配給區(qū)域P2,此時(shí)兩個(gè)區(qū)域的所有子 區(qū)域都連通。值得注意的是,例子中搜索節(jié)點(diǎn)5和6的路徑樹就已經(jīng)可以找到互相不沖突 的連通路徑,但如果搜索不到的話,會(huì)轉(zhuǎn)到下一個(gè)邊界節(jié)點(diǎn)繼續(xù)搜索,直到找到不沖突路徑 為止。如圖6所示,a為本文方法合并子區(qū)域后的結(jié)果。圖中,外部測(cè)試通道無論連接在節(jié) 點(diǎn)8或節(jié)點(diǎn)10,都能夠保證有鏈路通路連接本區(qū)域內(nèi)所有節(jié)點(diǎn),從而保證區(qū)域內(nèi)測(cè)試正常 進(jìn)行。
[0051] 在遍歷整個(gè)網(wǎng)絡(luò)合并子區(qū)域完成后,如果有區(qū)域沒有完成合并,則查找孤立子區(qū) 域的鄰接區(qū)域,將此子區(qū)域分配給測(cè)試時(shí)間最小的區(qū)域。最后針對(duì)測(cè)試時(shí)間最少的區(qū)域,嘗 試從其鄰接區(qū)域分配節(jié)點(diǎn)來使網(wǎng)絡(luò)的測(cè)試時(shí)間平衡。
【權(quán)利要求】
1. 一種NoC中基于鏈路分配的無沖突測(cè)試調(diào)度方法,其特征在于:操作步驟如下: 第一步:劃分區(qū)域過程 a、 使用分區(qū)初始化算法對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行初始化,將節(jié)點(diǎn)看做方塊,每個(gè)區(qū)域都可以映 射為一個(gè)矩形區(qū)域,確定需要裝入矩形區(qū)域的方塊的初始大??; b、 使用改進(jìn)的裝箱算法對(duì)初始化后的方塊進(jìn)行調(diào)度,選取測(cè)試時(shí)間最長(zhǎng)的核先裝入矩 形區(qū)域,然后對(duì)剩下的位寬和已調(diào)度的核測(cè)試時(shí)間所構(gòu)成的另一個(gè)矩形區(qū)域,調(diào)度剩下的 核盡可能將其裝滿;分配完后,每個(gè)節(jié)點(diǎn)屬于一個(gè)區(qū)域,各個(gè)區(qū)域并行測(cè)試; 第二步:鏈路分配過程 c、 將屬于同一個(gè)區(qū)域的相鄰節(jié)點(diǎn)進(jìn)行合并,完成后每個(gè)區(qū)域包含若干個(gè)不相鄰的子區(qū) 域; d、 對(duì)每個(gè)子區(qū)域的邊界節(jié)點(diǎn)建立路徑樹和備選路徑集合,綜合各個(gè)節(jié)點(diǎn)的備選路徑集 合,分配網(wǎng)絡(luò)中的鏈路資源,連通屬于同一個(gè)區(qū)域的所有子區(qū)域,并且不與其他區(qū)域的鏈路 發(fā)生沖突;如果有區(qū)域無法分配到鏈路使其子區(qū)域都連通,轉(zhuǎn)到步驟e ; e、 將被孤立的節(jié)點(diǎn)或者子區(qū)域合并到它的鄰居區(qū)域,調(diào)整網(wǎng)絡(luò)使各個(gè)區(qū)域間的測(cè)試時(shí) 間平衡,使并行測(cè)試無鏈路沖突。
2. 根據(jù)權(quán)利要求1所述的NoC中基于鏈路分配的無沖突測(cè)試調(diào)度方法,其特征在于: 步驟b中所述的改進(jìn)的裝箱算法內(nèi)容包括:給定片上網(wǎng)絡(luò)一組待測(cè)核,將其視為一組長(zhǎng)寬 不一的方塊,其中方塊長(zhǎng)表不核的測(cè)試時(shí)間,寬表不給核用的測(cè)試位寬,有若干個(gè)矩形區(qū) 域,寬為總的測(cè)試位寬,長(zhǎng)度不限,調(diào)度方塊裝入矩形區(qū)域,使最長(zhǎng)的矩形區(qū)域的長(zhǎng)度最短, 此長(zhǎng)度便為整個(gè)片上網(wǎng)絡(luò)的測(cè)試時(shí)間; 首先需要對(duì)待測(cè)核集進(jìn)行初始化,根據(jù)公式:TtMP = TiU+p/iocMT^D-TiU計(jì) 算出TtMP值,公式中,p值為一個(gè)變量,變化p值可得到不同的待測(cè)核集進(jìn)行調(diào)度,最后可選 取使測(cè)試時(shí)間最短的P值,TJW^)表示核i在測(cè)試位寬最大的情況下的測(cè)試時(shí)間,計(jì)算出 TtMP后,查找離其最近的測(cè)試時(shí)間值,這個(gè)值和其所對(duì)應(yīng)的位寬即為核i的長(zhǎng)和寬; 待測(cè)核集初始化后,整個(gè)矩形區(qū)域都是空白的,將方塊按長(zhǎng)度排序,選取一個(gè)矩形區(qū)域 后,盡可能的將這個(gè)矩形區(qū)域的空白區(qū)域給裝滿,首先查找待調(diào)度的方塊集合,在若干個(gè)矩 形區(qū)域中,選取起始位置最小的矩形區(qū)域,初始時(shí)每個(gè)矩形區(qū)域的起始位置都是零,將可裝 入矩形區(qū)域的最大方塊調(diào)度進(jìn)去,然后對(duì)矩形區(qū)域中剩下寬度和最大方塊的起始和結(jié)束位 置所組成的空白區(qū)域,調(diào)度剩下的方塊盡可能裝滿,對(duì)于空白區(qū)域,如果在未調(diào)度的方塊中 查找不到可裝入空白區(qū)域的核,則對(duì)剩下的核做變形處理,以調(diào)度進(jìn)去,變形過程為,順序 查找剩下的方塊,降低方塊的寬度,檢測(cè)長(zhǎng)度是否超出空白區(qū)域,如果沒超過則調(diào)度,如果 超過則順序查找下面的方塊,循環(huán)此過程,直到所有方塊都被調(diào)度進(jìn)去。
3. 根據(jù)權(quán)利要求1所述的NoC中基于鏈路分配的無沖突測(cè)試調(diào)度方法,其特征在于: 步驟d中所述的的對(duì)每個(gè)子區(qū)域邊界節(jié)點(diǎn)建立節(jié)點(diǎn)路徑樹和備選路徑集合的內(nèi)容包括:對(duì) 待合并部分中每個(gè)區(qū)域的邊界節(jié)點(diǎn),以邊界節(jié)點(diǎn)為根節(jié)點(diǎn),如果根節(jié)點(diǎn)某個(gè)方向鏈路未被 占用,則將此鏈路作為一個(gè)分支加入到路徑樹中;接著探索此鏈路相連的鄰接節(jié)點(diǎn)是否有 空閑鏈路,如果有,則繼續(xù)建立分支,直到樹的深度達(dá)到最大值;如果沒有,則結(jié)束此方向探 索,搜索路徑樹,查找可以將與根節(jié)點(diǎn)屬于同一區(qū)域的子區(qū)域連通的路徑,加入到根節(jié)點(diǎn)的 備選路徑集合中,重復(fù)查找,直到所有路徑都遍歷完全。
【文檔編號(hào)】G01R31/28GK104049200SQ201410284247
【公開日】2014年9月17日 申請(qǐng)日期:2014年6月23日 優(yōu)先權(quán)日:2014年6月23日
【發(fā)明者】歐陽(yáng)一鳴, 楊鑫, 易茂祥, 梁華國(guó), 黃正峰, 詹文發(fā), 常郝 申請(qǐng)人:合肥工業(yè)大學(xué)