?

3D SoC并行測試中TAM調度優化設計

2020-02-18 15:17吳欣舟
計算機工程與應用 2020年4期
關鍵詞:外殼功耗調度

吳欣舟,方 芳,王 偉

1.合肥工業大學 計算機與信息學院,合肥230009

2.合肥工業大學 管理學院,合肥230009

1 概述

近年來隨著數字集成電路特征尺寸向納米級發展,單個芯片晶體管數目已達到十億量級,片上系統(System on Chip,SoC)集成規模越來越大,傳統的2D芯片面臨著功耗升高、電路時延增加、帶寬要求提升等問題,三維堆疊集成電路(3D Stacked ICs,3D-SICs)是由多層2D芯片互連而成,利用過硅通孔(Through Silicon via,TSV)作為數據傳輸通路連通多層晶片,縮短了芯片內部互連線長度,提高了系統性能,成為突破2D芯片性能瓶頸的有效解決方案,得到集成電路產業界的廣泛關注和研究[1-4]。隨著3D芯片電路復雜性不斷增加,測試時間和測試功耗問題成為研究人員所面臨的關鍵問題。

3D芯片測試過程分為綁定前測試、綁定中測試和綁定后測試三個階段,其中綁定中測試是指每一次層與層之間完成互連后針對該部分堆疊的測試,它可以提早檢測出綁定過程中由制造工藝帶來的芯片故障,盡早丟棄損壞部分,從而降低芯片測試成本。經過封裝后的三維片上系統的引腳位于芯片最底層,而各芯核分布在不同層。芯片測試過程就是通過測試訪問機制(Test Access Mechanism,TAM),將從測試引腳傳入芯片的測試向量移位至相應芯核,并捕獲測試響應,將響應輸出到自動測試儀(Automatic Test Equipment,ATE)中,通過對比測試響應與預期輸出結果是否相同來判定該芯片是否故障。每個芯核通過測試外殼與外圍邏輯電路隔離[5-9],測試外殼又稱為芯核封裝設計,它控制系統TAM帶寬與芯核內部掃描鏈的分配。測試外殼由多個外殼邊界掃描單元和一個外殼指令寄存器(Wrapper Instruction Registers,WIR)組成,通過改變WIR的值可以對芯核的測試模式進行選擇。

并行測試方法允許3D SoC中的不同芯核同時進行測試,有效提高了3D芯片測試效率,目前國內外針對3D芯片并行測試的研究越來越成熟。文獻[10]使用整數線性規劃方法,在測試功耗以及管腳和TSV個數等約束條件下,通過公式化模型給出最優的綁定結構;文獻[11]基于時分復用的方法,通過TSV對測試頻率進行層間分頻和層內分頻,最終合理劃分至各芯核,使各芯核輪流占用TAM資源,并使用離散粒子群優化算法求出最優的三維布圖;文獻[12]將測試過程看作裝箱問題,有效利用TAM帶寬,使得相同功耗約束下并行測試集中的測試長度彼此接近,減少了測試時間。傳統方法沒有考慮對測試外殼結構進行調整,所采用的算法有一定的局限性。

2 3D SoC并行測試設計

2.1 測試結構設計

圖1展示了可并行測試3D SoC的一般結構。該示例中3D芯片由三層晶片堆疊而成,其中底層分布了四個芯核,中間層分布了兩個芯核,頂層分布了三個芯核。在實際測試過程中,一部分芯核單獨接收測試數據進行測試,如Core 4;另一部分核與核之間被串聯形成更長的掃描鏈進行測試,如Core 1、Core 2、Core 3。在各晶片相互綁定前,三層2D芯片相互獨立地進行綁定前測試,而針對綁定前測試中TSV尚未連通的狀態下單層2D芯片電路不完整的情況,一般采用在電路中增設控制端、觀測端D觸發器的方式解決[13]。在各晶片綁定前測試過程中,可以允許分布在不同掃描鏈上的各測試會話進行并行測試,即層內并行測試,如Layer 1在綁定前測試時,Session 1與Session 2可以并行執行測試[14]。在綁定中測試階段,TSV作為層間數據通路將不同層連接起來,由于測試引腳均位于芯片最底層,測試數據需要通過TSV才能進入上層晶片進行測試,此時綁定前測試過程中的掃描鏈可以被打破,新層中的芯核集被加入到所有待測芯核的集合中,各芯核間經過重新組合,劃分為新的掃描鏈進行綁定中測試,此時不同的測試會話間仍可以進行并行測試,即層間并行測試,如圖中Session 1與Session 3可以并行執行測試。但是在實際測試過程中,由于測試數據寄存器(Test Data Register,TDR)數量有限,以及各晶片綁定中硬件結構等限制,導致部分會話間往往無法并行測試,這就要求提出的方案必須滿足系統的測試并行性約束。

圖1 三層3D SoC并行測試結構

2.2 傳統的并行測試過程

在3D芯片多核并行測試過程中,用于傳輸測試向量的TAM資源有限,因此需要對各芯核測試調度過程進行優化,以便最大限度地利用TAM帶寬。傳統方法將測試調度過程看作裝箱問題,使各芯核按序進入測試調度,但是并未考慮到系統當前狀態下可能存在的少量TAM資源余量,這部分空閑的TAM資源將造成測試過程中存在諸如圖2所示的空閑時間塊Idle。

圖2 傳統方法的測試調度過程

圖2展示了傳統方法下的測試調度過程。初始狀態進行并行測試的芯核分別為Core 1、Core 2、Core 3,此時等待隊列中即將進入調度的是Core 4;當t1時刻Core 3測試完成并釋放資源后,系統剩余的空閑TAM資源仍無法滿足Core 4所需帶寬,此時Core 4仍將處于等待調度狀態;經過若干時鐘周期到達t2時刻,Core 2完成測試并釋放資源,系統空閑TAM寬度滿足Core 4測試要求,Core 4進入測試,此時系統中又出現了新的空閑塊,大量閑置的TAM造成了系統資源浪費。本文提出了一種新型的測試外殼結構,利用空閑的TAM對等待隊列中的芯核進行提前測試,最大限度地利用了系統資源,同時該方法將在功耗及測試并行性共同限制下,尋找合適的測試調度順序,從而減小總測試時間。

2.3 功耗來源及約束

目前集成電路產業快速發展,CMOS電路因其低功耗特性得以大規模應用,并且隨著制造工藝的提升,單只CMOS管平均功耗也在不斷下降,但是由于片上系統晶體管數目的增加,特別是對于更高集成度的3D芯片來說,單只CMOS管功耗的降低幅度很難趕上電路中CMOS管數量的增加幅度,導致3D芯片面臨著更嚴峻的功耗挑戰。同傳統的2D芯片一樣,3D芯片功耗也分為動態功耗和靜態功耗兩部分,如式(1)所示,Ps表示靜態功耗,Pd表示動態功耗。其中靜態功耗主要由輸入保護二極管和寄生二極管的反向漏電流組成,動態功耗由Pc與Pt構成,分別表示節點電壓跳變時電容充放電功耗,以及輸出跳變時驅動管與下級負載管瞬間導通功耗,如式(2)。

由于測試過程中電路中寄存器頻繁跳變,測試功耗將遠大于正常工作情況下產生的功耗,因此測試過程需要對功耗加以限制。尤其在3D SoC并行測試中,電路集成度高,并行測試的芯核數量多,每一時刻的測試總功耗是由同時執行測試的各芯核所產生的功耗疊加而成,因此并行測試相較于非并行測試功耗更高,將測試功耗作為約束條件成為不可忽略的環節。本文選取平均功耗與最大峰值功耗兩種指標作為功耗約束的度量。平均功耗是指在一段時間內系統產生測試總功耗的平均值,用于衡量測試過程在總體上的功耗大小狀況。峰值功耗是指系統在某一時刻可以產生的功耗最大值,用于衡量瞬時電路開關活動對系統的影響。

3 本文方案

3.1 問題描述

本文所解決的問題是在功耗以及芯核測試并行性的限制下,最大限度地合理分配TAM資源,降低總的測試時間。被測SoC的形式化描述如下:假設該3D SoC總層數為m,總芯核個數為n,最底層至最高層依次編號為l1,l2,…,lm,各芯核完成測試的時間分別為t1,t2,…,tn,最大峰值功耗約束為Pmax,測試平均功耗約束為Pavg,每層晶片的測試功耗分別設為p1,p2,…,pm,集合C為不能并行測試會話的集合,各晶片綁定次序為由底層向頂層按序層層綁定。

對于單個芯核而言,設Nin為目標芯核輸入端口數,即該芯核通常情況下所需TAM的條數,設M為芯核內部掃描鏈條數,設Nvalid為TAM資源不夠時臨時分配給該芯核的TAM條數,它將通過測試訪問端口(Test Access Port,TAP)中的控制模塊以二進制編碼形式發送給目標芯核。

3.2 優化的測試外殼設計

本文針對測試調度階段提出一種更靈活的TAM分配方式,設計出一種新的測試外殼結構,僅使用了較小的硬件開銷,便可以使3D SoC最大限度地利用TAM資源。該測試策略在功耗及測試并行性的共同約束下實現,有效縮短了測試時間,尤其是針對綁定中測試階段堆疊層數較多的情況,效果更加顯著。對于TAM寬度一定的3D SoC而言,芯核測試調度過程被抽象為裝箱問題,等同于圖2坐標系中的矩形,每個矩形的長和寬分別代表一個芯核測試所耗時間和所占TAM寬度。傳統方法下矩形無法被分割,導致裝箱問題的解可能會在坐標系中產生Idle區域。為了突破傳統方法,需要對電路結構進行改良,減少或消除Idle時間塊。隨著Idle區域的減少,TAM資源使用率得到提升,測試便可以提前完成。

本文芯核測試結構如圖3所示。

圖3 芯核測試結構設計

為了實現上述目標,本文在測試訪問端口與每個芯核測試外殼之間增加一條單向數據通路,目的是使TAP通知即將進入調度的芯核當前系統所剩TAM資源數量Nvalid。如果系統當前剩余TAM數量達到目標芯核輸入端口數要求,即Nvalid≥Nin,則測試激勵不進入向量調整模塊,芯核正常進行測試;如果系統當前剩余TAM數量小于目標芯核輸入端口數且存在至少一條空閑TAM,即0<Nvalid<Nin,則首先由TAP通知待測芯核可用于測試的TAM的數量Nvalid,測試激勵由Nvalid條TAM輸入至向量調整模塊,重新對可用TAM數量Nvalid和芯核內部掃描鏈條數M制定數據分配策略。具體的測試模式選擇流程如圖4所示。

圖4 芯核測試模式選擇流程

對于系統TAM資源不足的情況,測試激勵被重新按序分配至Nvalid條TAM上,隨即進入待測芯核掃描外殼中的向量調整模塊,至此產生一個多條TAM對應多條內部掃描鏈的數據分配問題。向量調整模塊首先將Nvalid條可用TAM上的數據整合成一條串行數據流,使多條TAM上的數據依次存入數據緩沖區,此過程解決了測試輸入過程中N∶1的問題;當數據緩沖區處于非空狀態時,向量調整模塊中的譯碼器根據TAP傳入的選擇信號選通相應掃描鏈,緩沖區中的測試激勵按序分配至各條掃描鏈,此過程解決了測試數據流進入芯核內部掃描鏈的1∶M的問題?,F假設圖5為圖3芯核正常狀態下(Nin=6,M=3)的數據分配策略:①、②兩條TAM數據輸入對應芯核內部第一條掃描鏈SC1,依次為SC1提供測試激勵;同理③、④兩條TAM數據輸入對應芯核內部第二條掃描鏈SC2,依次為SC2提供測試激勵。圖6為圖3芯核接收TAM數量為Nvalid(Nvalid=2<Nin=6,M=3)時的數據分配策略:首先由自動測試儀對原測試集傳輸方式進行調整,使測試向量沿兩條可用TAM傳輸至待測芯核,測試外殼中的向量調整模塊將兩條TAM上的測試數據整合成一組串行測試數據,測試向量一旦進入緩沖區,外殼中的掃描鏈選擇譯碼器將依次選通三條芯核內部掃描鏈,使測試數據按位進入各條掃描鏈,待系統中有其他TAM資源被釋放,TAP會再次通過數據通路通知芯核,并按照系統當前剩余的TAM資源數重新選擇數據分配策略。向量調整模塊電路結構如圖7所示。

圖5 數據分配傳統方法舉例

圖7 輸入向量調整模塊電路結構

3.3 測試順序調整

在改進的測試外殼結構基礎上,需要尋找合理的芯核調度順序,由于改進的測試外殼結構使系統TAM資源最大限度地得以利用,芯核并行測試不再受裝箱問題空閑區域的影響,各芯核的調度順序只需考慮功耗及測試并行性約束。本文的調度方法首先將待測芯核按序排列作為等待隊列,根據3.2節提出的新結構,待測芯核依次進入測試,并盡可能將系統TAM資源分配給芯核,此時的芯核調度順序稱作測試預排序,在此基礎上需要對并行測試過程進行最大峰值功耗、平均功耗、測試并行性約束判定,從而調整測試順序。

最大峰值功耗需滿足在tn時間內測試過程最大功耗小于等于Pmax,約束公式可以寫成式(3)的形式;平均功耗約束如下,設在任意tn-1到tn的時間段內,參與并行測試的芯核編號為i~j,則該時間段平均功耗應滿足式(4);測試并行性約束需滿足任意時刻被分配為并行測試的芯核之間必須在硬件結構上是可并行的。

圖6 系統TAM不足時的數據分配

如果預排序方案在三個約束下出現無法滿足條件的芯核,則該芯核和下一個待測芯核調換測試順序,直到所有芯核測試順序滿足約束條件。圖8以圖2的案例為例,假設Core 3和Core 4分布于不同的測試會話中,而此時這兩個測試會話共用同一組TDR,從而導致這兩個芯核無法并行執行測試,則Core 4和Core 5調整測試順序,此時系統滿足所有約束條件,可以進入測試階段。

4 實驗結果與分析

為驗證本文提出的3D SoC并行測試調度策略的有效性,選取ITC’02測試基準電路作為驗證載體[15],選取d695、u226、p22810、p34392、p93791作為實驗對象,通過C++語言編程模擬實現了本文的策略。為了便于對比,設參數α為本文方法相對文獻[11,16-17]方法關于測試應用時間(Test Application Time,TAT)的優化比例,定義TA為利用本文方法產生的TAT,TB為對比文獻方法產生的TAT,則α的定義如式(5)所示。

為保證實驗對象與對比文獻一致,實驗首先選取p22810、p34392、p93791三種測試電路在系統TAM數量為32,最大功耗閾值為80 mW的條件下進行層內并行測試。文獻[16]方法選取種群規模N=2 000,允許誤差err=0.005,最大迭代次數T=100進行測試,產生的測試時間、最大功耗、平均功耗及優化比例如表1所示。

從表1中可以看出,本文提出的TAM調度策略適用于綁定中測試過程中各層層內芯核并行測試的情況,在三種不同測試電路上的實驗結果顯示該方法測試時間較其他文獻方法均有所減少,但測試功耗會有少量提升。原因是本文方法提高了系統TAM利用率,減少了空閑時間塊,系統TAM在功耗閾值限制范圍內被高效率利用,盡管在功耗閾值設定較小的情況下,本文方法完成測試所需功耗偏高,但如圖9所示在相同的功耗閾值限制下,本文方法所需測試時間比其他文獻降低了至少3.339%。因此可以得出,在同樣功耗限制條件下,本文策略可以取得更少的測試時間,進而降低測試成本。比較發現p22810、p34392、p93791的Module數量分別為29、20、33,由表1可知,本文方法在p93791上相比其他文獻方法優化比例最高,因此本文方法更適合于芯核數量較多的芯片。

表2展示了d695、u226、p22810、p34392、p93791分別作為3D SoC的底層至頂層晶片,在自底向上綁定過程中不同堆疊產生的測試結果,表中文獻[11,16-17]數據的最后一行記錄了本文方法在當前堆疊狀態測試產生的TAT相比該文獻提出方法的優化比例。橫向對比本文方法產生的測試時間可以看出,堆疊層數越多,TAM使用率越高。因為隨著堆疊層次的增加,可供調度的芯核增多,原先由于功耗和測試并行性約束被阻塞的TAM資源經過測試順序調整被合理調度并重新利用??v向比較本文方法與其他文獻方法的測試時間,優化比例最少達到2.118%,最高達到24.189%,并且隨著堆疊層數的增加,優化比例也不斷提高,說明本文策略對于堆疊層數多的3D SoC效率較高。

五層3D SoC堆疊在不同的功耗閾值約束下的測試結果如圖9所示,在給定功耗閾值的條件下,文獻[11,16]方法的芯核調度順序也將被重新調整。實驗表明,本文的測試方法在不同功耗閾值限制下得到的測試時間較其他方法均有所減少,功耗閾值越大,本文方法測試效果提升越顯著。

圖8 優化的測試調度策略

表1 各層測試時間及功耗結果比較

表2 不同堆疊的測試時間及功耗結果對比

圖9 功耗閾值與測試時間的關系

5 結論

本文提出了一種3D SoC并行測試調度策略,設計了相應的測試外殼結構,最大限度地利用了系統TAM資源,有效地降低了測試時間;同時考慮到在功耗和測試并行性的共同約束下,合理地對芯核測試順序進行調整,更接近實際生產與測試中的情況。在ITC’02 SoC標準測試集上的實驗結果表明,本文方法相比文獻[11,16-17]方法的測試時間減少,且具有較小的硬件開銷,對于實際測試過程有重要的啟發意義。

猜你喜歡
外殼功耗調度
基于任務映射的暗硅芯片功耗預算方法
外殼層最近鄰交換相互作用對Blume-Capel模型相變行為的影響
《調度集中系統(CTC)/列車調度指揮系統(TDCS)維護手冊》正式出版
U盾外殼組件注塑模具設計
基于強化學習的時間觸發通信調度方法
一種基于負載均衡的Kubernetes調度改進算法
塑料外殼注射模設計
虛擬機實時遷移調度算法
揭開GPU功耗的面紗
隔爆外殼水壓試驗工藝探討
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合