一種含開關(guān)及連線故障的處理器陣列的重構(gòu)方法
【專利摘要】本發(fā)明公開的一種含開關(guān)及連線故障的處理器陣列的重構(gòu)方法,包含以下步驟:通過預(yù)處理,將開關(guān)故障轉(zhuǎn)化為連線故障,并將故障連線進(jìn)行分類;通過A?MLA算法生成最大邏輯陣列;通過A?TMLA算法對生成的最大邏輯陣列的連線進(jìn)行優(yōu)化,從而降低通信延遲和功耗。本發(fā)明的重構(gòu)方法,即使考慮開關(guān)和連線故障,與當(dāng)前最優(yōu)的算法相比,本發(fā)明的算法生成的邏輯陣列規(guī)模更大,且連線長度更短。
【專利說明】
一種含開關(guān)及連線故障的處理器陣列的重構(gòu)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及多核容錯(cuò)陣列的重構(gòu)領(lǐng)域,特別涉及一種含開關(guān)及連線故障的處理器 陣列的重構(gòu)方法。
【背景技術(shù)】
[0002] 隨著集成技術(shù)的快速發(fā)展,成百上千的處理器被集成到單一芯片上來執(zhí)行大規(guī)模 并行計(jì)算任務(wù)。然而,急劇增長的芯片集成密度使得芯片在制造或?qū)嶋H運(yùn)行過程中發(fā)生故 障的可能性大大增加。故障的處理器單元破壞了通信網(wǎng)絡(luò)規(guī)則的結(jié)構(gòu),導(dǎo)致多處理器陣列 的處理能力下降。因此,我們需要使用容錯(cuò)重構(gòu)技術(shù)來重構(gòu)網(wǎng)絡(luò)拓樸結(jié)構(gòu),從而提高多處理 陣列的計(jì)算能力和多處理器系統(tǒng)的穩(wěn)定性。
[0003] -般來說,容錯(cuò)重構(gòu)有兩種策略,分別是冗余策略和降階策略。冗余策略要求重構(gòu) 后的邏輯陣列和物理陣列的規(guī)模相等,一旦不能滿足該條件,則整個(gè)重構(gòu)無法完成。而降階 策略試圖獲得一個(gè)盡可能大的邏輯陣列,因而在航天衛(wèi)星、極端環(huán)境下工作的電子系統(tǒng)中 有著重要的應(yīng)用。本發(fā)明就是在基于網(wǎng)格互連的網(wǎng)絡(luò)中,使用降階策略完成故障陣列的重 構(gòu)。
[0004] 現(xiàn)有的工作假設(shè)故障僅發(fā)生在處理器單元上,忽略開關(guān)及連線發(fā)生故障的可能 性,即使他們發(fā)生故障的可能性很小。目前唯一的考慮了開關(guān)故障的容錯(cuò)重構(gòu)技術(shù),是通過 同時(shí)使用行列選路策略來構(gòu)造無故障的邏輯陣列,但是該方法中還存在著很多問題:首先 是該工作僅考慮了故障發(fā)生在處理器單元和開關(guān)上,假設(shè)了所有的連線都是無故障的;其 次是該方法并未充分的利用無故障處理器單元,也就是說還存在著相當(dāng)一部分的處理器單 元是無故障的,但是并未被用于構(gòu)造無故障的邏輯陣列;最重要的一點(diǎn)是,該方法在構(gòu)造無 故障邏輯陣列時(shí),采用的是行列同時(shí)選路的策略,這就引入了大量的長連接,從而導(dǎo)致了大 量的通信延遲和功耗。鑒于這些原因,特此提出了本
【發(fā)明內(nèi)容】
。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種含開關(guān)及連線故障的處 理器陣列的重構(gòu)方法。
[0006] 本發(fā)明的目的通過以下的技術(shù)方案實(shí)現(xiàn):
[0007] -種含開關(guān)及連線故障的處理器陣列的重構(gòu)方法,包含以下步驟:
[0008] 通過預(yù)處理,將開關(guān)故障轉(zhuǎn)化為連線故障,并將故障連線進(jìn)行分類;
[0009] 通過A-MLA算法生成處理器最大邏輯陣列;
[0010]通過A-TMLA算法對生成的處理器最大邏輯陣列的連線進(jìn)行優(yōu)化,從而降低通信延 遲和功耗。
[0011]所述將開關(guān)故障轉(zhuǎn)化為連線故障,具體為:對于物理陣列中的每個(gè)故障開關(guān),將所 有與該故障開關(guān)相鄰的連線設(shè)為故障,即得到連線故障。這樣處理后,在后續(xù)過程中將不再 考慮這些故障開關(guān)。
[0012] 所述將故障連線進(jìn)行分類,具體為:將位于物理行心的所有非故障單元作為集合Ei 的元素,且集合E1中的所有非故障單元初始化為未標(biāo)記的,其中
[0013] 所述通過A-MLA算法生成處理器最大邏輯陣列,具體為:
[0014]對于Ei*最左邊未標(biāo)記的處理器單元,將其做上標(biāo)記,并檢查該處理器單元與其 行方向上的前驅(qū)單元之間,是否存在未被標(biāo)記過的無故障的連線:如果不存在,繼續(xù)找E1最 左邊未標(biāo)記過的處理器單元,并重復(fù)上面的過程;如果存在,算法A-MLA重復(fù)進(jìn)行下面的迭 代過程:總是試圖連接當(dāng)前的處理器單元和其下一物理行中最左邊的處理器單元,并檢查 對應(yīng)的行、列連線是否無故障且未被使用過,若連接不成功,則算法進(jìn)行回溯,并撤銷相應(yīng) 連線上的標(biāo)記;
[0015] 算法A-MLA-直重復(fù)進(jìn)行,直到Ei中不再包含未被標(biāo)記過的處理器單元停止,由此 得到處理器最大邏輯陣列。
[0016] 所述通過A-TMLA算法對生成的最大邏輯陣列的連線進(jìn)行優(yōu)化,具體為:
[0017] 將由A-MLA算法得到的最大邏輯陣列從右向左,依次修復(fù),對每一個(gè)邏輯列的修復(fù) 過程中,A-TMLA算法依次調(diào)用兩個(gè)子過程Up_Rerouting和Down_Rerouting,從而獲得一個(gè) 修復(fù)后的邏輯列,最終完成對A-MLA中生成的邏輯陣列的連線長度進(jìn)行優(yōu)化,從而降低網(wǎng)絡(luò) 延遲和功耗。
[0018] 本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)和有益效果:
[0019] 本發(fā)明不僅考慮處理器發(fā)生故障,還同時(shí)考慮了開關(guān)及連線上發(fā)生故障的可能 性。大量的試驗(yàn)結(jié)果表明,即使考慮開關(guān)和連線故障,與當(dāng)前最優(yōu)的算法相比,本發(fā)明的算 法生成的邏輯陣列規(guī)模更大,且連線長度更短。
【附圖說明】
[0020] 圖1為本發(fā)明的容錯(cuò)處理器陣列的結(jié)構(gòu)圖。
[0021] 圖2a為行方向上連接處理器和開關(guān)的連線示意圖,圖2b是行方向上連接兩個(gè)開關(guān) 的連線示意圖,圖2c是行方向上的外部穿越連線示意圖,圖2d是列方向上連接處理器和開 關(guān)的連線示意圖,圖2e是列方向上連接兩個(gè)開關(guān)的連線示意圖,圖2f是列方向上的外部穿 越連線示意圖。
[0022]圖3a為一個(gè)規(guī)模為4*4的物理陣列示意圖;圖3b為將故障開關(guān)轉(zhuǎn)化為故障連線的 結(jié)果示意圖;圖3c為將故障連線按分類進(jìn)行處理的示意圖;圖3d為經(jīng)過算法A-MLA后所得到 的處理器最大邏輯陣列示意圖。
[0023]圖4為本發(fā)明所述一種含開關(guān)及連線故障的處理器陣列的重構(gòu)方法的流程圖。
【具體實(shí)施方式】
[0024]下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限 于此。
[0025] 如圖4,一種含開關(guān)及連線故障的處理器陣列的重構(gòu)方法,包含以下步驟:
[0026]通過預(yù)處理,將開關(guān)故障轉(zhuǎn)化為連線故障,并將故障連線進(jìn)行分類;
[0027]通過A-MLA算法生成處理器最大邏輯陣列;
[0028]通過A-TMLA算法對生成的處理器最大邏輯陣列的連線進(jìn)行優(yōu)化,從而降低通信延 遲和功耗。
[0029] 所述將開關(guān)故障轉(zhuǎn)化為連線故障,具體為:對于物理陣列中的每個(gè)故障開關(guān),將所 有與該故障開關(guān)相鄰的連線設(shè)為故障,即得到連線故障。這樣處理后,在后續(xù)過程中將不再 考慮這些故障開關(guān)。
[0030] 所述將故障連線進(jìn)行分類,具體為:將位于物理行心的所有非故障單元作為集合Ei 的元素,且集合E1中的所有非故障單元初始化為未標(biāo)記的,其中
[0031] 所述通過A-MLA算法生成處理器最大邏輯陣列,具體為:
[0032]對于Ei*最左邊未標(biāo)記的處理器單元,將其做上標(biāo)記,并檢查該處理器單元與其 行方向上的前驅(qū)單元之間,是否存在未被標(biāo)記過的無故障的連線:如果不存在,繼續(xù)找E1最 左邊未標(biāo)記過的處理器單元,并重復(fù)上面的過程;如果存在,算法A-MLA重復(fù)進(jìn)行下面的迭 代過程:總是試圖連接當(dāng)前的處理器單元和其下一物理行中最左邊的處理器單元,并檢查 對應(yīng)的行、列連線是否無故障且未被使用過,若連接不成功,則算法進(jìn)行回溯,并撤銷相應(yīng) 連線上的標(biāo)記;
[0033] 算法A-MLA-直重復(fù)進(jìn)行,直到Ei中不再包含未被標(biāo)記過的處理器單元停止,由此 得到最大邏輯陣列。算法A-MLA的具體描述如下,其中Adj+(cur)表示處理單元cur的下一物 理行中的候選鄰居,row_prec(cur)表示處理單元cur在行方向上的前驅(qū),colum_prec(cur) 類似定義。
[0035]
[0036] 所述通過A-TMLA算法對生成的處理器最大邏輯陣列的連線進(jìn)行優(yōu)化,具體為:
[0037] 將由A-MLA算法得到的最大邏輯陣列從右向左,依次修復(fù),對每一個(gè)邏輯列的修復(fù) 過程中,A-TMLA算法依次調(diào)用兩個(gè)子過程Up_Rerouting和Down_Rerouting,從而獲得一個(gè) 修復(fù)后的邏輯列,最終完成對A-MLA中生成的邏輯陣列的連線長度進(jìn)行優(yōu)化,從而降低網(wǎng)絡(luò) 延遲和功耗。
[0038] 算法A-TMLA的具體描述如下,其中row_succ(q)表示處理單元q在行方向上的后 繼,column_succ(q)類似定義。
[0039]
return T\
[0040] end
[0041 ] 其中,子過程Up_Rerouting和Down_Rerouting的具體描述如下所示:
[0042]
[0043] End
[0044] 圖1是本發(fā)明的容錯(cuò)處理器陣列的結(jié)構(gòu)圖。其中左邊展示的是規(guī)模為4*4的容錯(cuò)處 理器陣列,中間是處理器陣列中所使用開關(guān)的四種狀態(tài),右邊是當(dāng)某個(gè)處理器單元發(fā)生故 障時(shí),與其相連的處理器單元由三種方式進(jìn)行選路,分別是直接穿過該故障單元(Mid_ link),走其上方連線跨過該故障單元(Up_link),及走其下方連線跨過該故障單元(Down_ link)〇
[0045] 圖2a~2f是本發(fā)明中連線的分類示意圖,算法A-MLA和A-TMLA會(huì)對這六種不同類 型連線的故障分別進(jìn)行處理;其中圖2a是行方向上連接處理器和開關(guān)的連線示意圖,圖2b 是行方向上連接兩個(gè)開關(guān)的連線示意圖,圖2c是行方向上的外部穿越連線示意圖,圖2d是 列方向上連接處理器和開關(guān)的連線示意圖,圖2e是列方向上連接兩個(gè)開關(guān)的連線示意圖, 圖2f是列方向上的外部穿越連線示意圖。
[0046]圖3a~3d為本發(fā)明中算法A-MLA的整個(gè)執(zhí)行過程,其中圖3a為一個(gè)規(guī)模為4*4的物 理陣列示意圖,其中包含一個(gè)故障單元,一個(gè)故障開關(guān)及兩個(gè)故障連線;圖3b為將故障開關(guān) 轉(zhuǎn)化為故障連線的結(jié)果示意圖;圖3c為將故障連線按分類進(jìn)行處理的示意圖;圖3d為經(jīng)過 算法A-MLA后所得到的處理器最大邏輯陣列示意圖。
[0047]上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的 限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化, 均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種含開關(guān)及連線故障的處理器陣列的重構(gòu)方法,其特征在于,包含以下步驟: 通過預(yù)處理,將開關(guān)故障轉(zhuǎn)化為連線故障,并將故障連線進(jìn)行分類; 通過A-MLA算法生成處理器最大邏輯陣列; 通過A-TMLA算法對生成的處理器最大邏輯陣列的連線進(jìn)行優(yōu)化,從而降低通信延遲和 功耗。2. 根據(jù)權(quán)利要求1所述含開關(guān)及連線故障的處理器陣列的重構(gòu)方法,其特征在于,所述 將開關(guān)故障轉(zhuǎn)化為連線故障,具體為:對于物理陣列中的每個(gè)故障開關(guān),將所有與該故障開 關(guān)相鄰的連線設(shè)為故障,即得到連線故障。3. 根據(jù)權(quán)利要求1所述含開關(guān)及連線故障的處理器陣列的重構(gòu)方法,其特征在于,所述 將故障連線進(jìn)行分類,具體為:將位于物理行R:的所有非故障單元作為集合Ei的元素,且集 合Ei中的所有非故障單元初始化為未標(biāo)記的,其中Ki<m。4. 根據(jù)權(quán)利要求3所述含開關(guān)及連線故障的處理器陣列的重構(gòu)方法,其特征在于,所述 通過A-MLA算法生成處理器最大邏輯陣列,具體為: 對于Ex*最左邊未標(biāo)記的處理器單元,將其做上標(biāo)記,并檢查該處理器單元與其行方向 上的前驅(qū)單元之間,是否存在未被標(biāo)記過的無故障的連線:如果不存在,繼續(xù)找E1最左邊未 標(biāo)記過的處理器單元,并重復(fù)上面的過程;如果存在,算法A-MLA重復(fù)進(jìn)行下面的迭代過程: 總是試圖連接當(dāng)前的處理器單元和其下一物理行中最左邊的處理器單元,并檢查對應(yīng)的 行、列連線是否無故障且未被使用過,若連接不成功,則算法進(jìn)行回溯,并撤銷相應(yīng)連線上 的標(biāo)記; 算法A-MLA-直重復(fù)進(jìn)行,直到Ei中不再包含未被標(biāo)記過的處理器單元停止,由此得到 處理器最大邏輯陣列。5. 根據(jù)權(quán)利要求4所述含開關(guān)及連線故障的處理器陣列的重構(gòu)方法,其特征在于,所述 通過A-TMLA算法對生成的最大邏輯陣列的連線進(jìn)行優(yōu)化,具體為: 將由A-MLA算法得到的最大邏輯陣列從右向左,依次修復(fù),對每一個(gè)邏輯列的修復(fù)過程 中,A-TMLA算法依次調(diào)用兩個(gè)子過程Up_Rerouting和Down_Rerouting,從而獲得一個(gè)修復(fù) 后的邏輯列,最終完成對A-MLA中生成的邏輯陣列的連線長度進(jìn)行優(yōu)化,從而降低網(wǎng)絡(luò)延遲 和功耗。
【文檔編號】G06F15/173GK105975435SQ201610447461
【公開日】2016年9月28日
【申請日】2016年6月17日
【發(fā)明人】武繼剛, 姜文超, 祝龍婷, 章子凱, 朱金彬, 劉竹松
【申請人】廣東工業(yè)大學(xué)