本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種面向通訊同步的多處理器陣列重構(gòu)的算法。
背景技術(shù):
隨著超大規(guī)模集成電路(Very Large Scale Integrated,VLSI)和晶片規(guī)模集成(Wafer Scale Integration,WSI)技術(shù)的不斷發(fā)展,單一芯片上能集成更多的處理器單元(Processing Elements,PEs),但在制造和運(yùn)行過程中PEs發(fā)生故障的可能性隨之增加。故障種類包括PEs的物理損壞和其壽命不均造成的硬故障,以及超負(fù)荷而引起的PEs過熱和被其他應(yīng)用程序占用引起的軟故障。尤其在某些特定的環(huán)境下會(huì)導(dǎo)致VLSI/WSI發(fā)生故障的可能性增大。例如空間飛行器中維護(hù)芯片較為困難且沒有辦法進(jìn)行更換,因此在空間飛行器中裝載的芯片很容易發(fā)生故障。所以幾乎不可能保證系統(tǒng)內(nèi)所有的處理器單元在它的工作時(shí)間內(nèi)都是不發(fā)生故障的,而處理器的這些故障的發(fā)生也必然會(huì)影響整個(gè)系統(tǒng)的可靠性。
因此,針對(duì)含有故障PEs的VLSI陣列,需要提出有效的容錯(cuò)技術(shù),以提高系統(tǒng)的穩(wěn)定性和可靠性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,首次提出了如何構(gòu)造用戶所需大小的目標(biāo)陣列及其實(shí)現(xiàn)同步通訊性能的優(yōu)化問題,并針對(duì)該問題提出了三個(gè)啟發(fā)式算法和一個(gè)計(jì)算最大通訊延時(shí)下界的算法。
本發(fā)明的目的通過以下的技術(shù)方案實(shí)現(xiàn):
三個(gè)面向通訊同步的拓?fù)渲貥?gòu)算法,是基于三種邏輯列的剔除策略,其主算法框架是一致的,包含以下步驟:
S1、使用剔除策略對(duì)邏輯陣列的邏輯列進(jìn)行剔除,剩余的邏輯列即目標(biāo)陣列的初始陣列;
S2、將剔除后生成的初始陣列進(jìn)行LDP算法優(yōu)化;
S3、最后將優(yōu)化后的陣列使用SPO算法進(jìn)行同步性能的提升,作為我們的目標(biāo)陣列。
所述步驟S1中的剔除策略具體為:1)基于分治思想的均勻剔除、2)基于長鏈接數(shù)的貪心剔除和3)基于分治與長鏈接數(shù)的混成剔除。
所述步驟S2的LDP算法是Wu Jigang等人在“Reconfiguration Algorithms for Power Efficient VLSI Subarrays with 4-Port Switches”論文中提出的一種基于動(dòng)態(tài)規(guī)劃思想的算法。
所述步驟S3的SPO算法是張?jiān)鸬热嗽凇翱芍貥?gòu)陣列的同步性能優(yōu)化算法”論文中提出的一個(gè)同步性能優(yōu)化算法。
最大通訊延時(shí)下界的求解算法如下,如圖5所示:
給定的邏輯陣列L={l1,l2,…,ls},令lowb表示L通訊延時(shí)的下界,li表示最長的邏輯列。lowb的計(jì)算起始于最長邏輯列的長鏈接數(shù),即lowb的初始值設(shè)定為這條li的長鏈接數(shù)。然后逐次計(jì)算兩條邏輯列l(wèi)i與lj(j≠i)構(gòu)成的子陣列{li,lj}的最大通訊延時(shí),而其他邏輯列的通訊延時(shí)此時(shí)設(shè)定為0.檢測(cè)lj的每一條長鏈接的可移動(dòng)范圍是否被li的長鏈接的移動(dòng)范圍涵蓋。若沒有被涵蓋,則子陣列{li,lj}的最大通訊延時(shí)在lowb的基礎(chǔ)上不得不增加1個(gè)單位,即使lj的長鏈接可以與其他邏輯列的長鏈接保持同步。這一檢測(cè)過程對(duì)每一個(gè)子陣列{li,lj}(j=1,2,…,s,j≠i)都要計(jì)算一次,累計(jì)lowb的值,并更新長鏈接的可移動(dòng)范圍。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)和有益效果:
本發(fā)明面向高性能計(jì)算中陣列處理器結(jié)構(gòu)的特點(diǎn),針對(duì)如何構(gòu)造用戶指定大小、并且同步通訊性能優(yōu)良的邏輯子陣列進(jìn)行拓?fù)渲貥?gòu)的探索性研究。本文基于不同的邏輯列剔除策略提出了三個(gè)面向通訊同步的拓?fù)渲貥?gòu)算法。如圖2-4所示,即基于分治思想剔除邏輯列的重構(gòu)算法(SCA_01)、優(yōu)先剔除長邏輯列的貪心重構(gòu)算法(SCA_02)和基于分治與長鏈接數(shù)的混成重構(gòu)算法(SCA_03).三個(gè)算法在不同的情況下各具優(yōu)勢(shì),算法SCA_01能夠使得被優(yōu)化的邏輯列相對(duì)均勻的分布在物理陣列中;算法SCA_02能夠使得被優(yōu)化的邏輯列的長鏈接總數(shù)最少;算法SCA_03將某一區(qū)域內(nèi)的最長邏輯列剔除,且盡可能將剩余邏輯列均勻分布在物理陣列中。同時(shí),本發(fā)明對(duì)邏輯陣列的最大通訊延時(shí)給出了下界的求解算法。
附圖說明
圖1是本發(fā)明所提三個(gè)剔除操作的子算法偽代碼。
圖2是本發(fā)明算法SCA_01的實(shí)例,算法輸入的陣列如圖2(a)所示,要在該陣列上剔除3條邏輯列。圖2(b)是剔除邏輯列后的效果圖,而最終的目標(biāo)陣列如圖2(c)所示。
圖3是本發(fā)明算法SCA_02的實(shí)例,算法輸入的陣列如圖3(a)所示,要在該陣列上剔除3條邏輯列。圖3(b)是剔除邏輯列后的效果圖,而最終的目標(biāo)陣列如圖3(c)所示。
圖4是本發(fā)明算法SCA_03的實(shí)例,算法輸入的陣列如圖4(a)所示,要在該陣列上剔除3條邏輯列。圖4(b)是剔除邏輯列后的效果圖,而最終的目標(biāo)陣列如圖4(c)所示。
圖5是本發(fā)明所提的計(jì)算最大通訊延時(shí)下界算法的流程圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
三個(gè)算法的剔除操作的子算法的算法思想說明如下,如圖1所示:
(1)基于分治思想的均勻剔除:子算法Extract_01是基于分治策略的思想,剔除各個(gè)區(qū)域中處于中間位置的邏輯列。子算法Extract_01先將整個(gè)陣列作為一個(gè)區(qū)域,選區(qū)域處于中間位置的邏輯列剔除,若邏輯列個(gè)數(shù)為偶數(shù),則選擇左邊的邏輯列剔除。將該區(qū)域以剔除的邏輯列為分界線分為兩個(gè)子區(qū)域。然后分治剔除每個(gè)區(qū)域中處于中間位置的邏輯列并對(duì)區(qū)域以剔除的邏輯列為分界線進(jìn)行劃分,直至所剩邏輯列數(shù)滿足要求(邏輯列數(shù)等于s)時(shí)為止
(2)基于長鏈接數(shù)的貪心剔除:子算法Extract_02基于貪心策略的思想,依次剔除最左邊的最長邏輯列。首先對(duì)輸入的陣列中的每條邏輯列的長鏈接數(shù)進(jìn)行統(tǒng)計(jì),依次剔除長鏈接數(shù)最多且最靠近左邊的邏輯列,直至所剩邏輯列數(shù)滿足要求(邏輯列數(shù)等于s)時(shí)為止。
(3)基于分治與長鏈接數(shù)的混成剔除:子算法Extract_03是采用分治策略的思想,剔除各個(gè)區(qū)域中最靠近中間位置的最長邏輯列。子算法Extract_03是首先將整個(gè)陣列視為一個(gè)區(qū)域,將該區(qū)域中長鏈接數(shù)最多的邏輯列剔除;若長鏈接數(shù)最多的邏輯列不止一條,則選擇最靠近中間位置的邏輯列剔除。以選中剔除的邏輯列為分界線,將該區(qū)域分為兩個(gè)子區(qū)域。然后剔除每個(gè)子區(qū)域中長鏈接數(shù)最多的列并進(jìn)行區(qū)域劃分。直至所剩邏輯列數(shù)滿足要求(邏輯列數(shù)等于s)時(shí)為止。
上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。