實現大型 SoC 與 AI 架構可測試性設計(DFT)的實用方法 (一)

英文原文:A Practical Approach To DFT For Large SoCs And AI Architectures, Part I

2022年1月11日於《Semiconductor Engineering》刊登

AI設計的新技術為可測試性設計(design-for-test)流程帶來重大挑戰

傳統處理器是為了通用應用而設計,卻很難滿足人工智慧(AI)或機器學習(ML)應用的運算需求和功率預算(power budget)。目前有數個半導體設計公司正在開發專門的AI/ML加速器,這些加速器經過優化以適應特定工作負載,使其在較低功率下得以提供更高的處理能力,也就是提升其效能功耗比 (performance per watt)。這些加速器設計通常規模龐大,含有數十億個閘道、具備數千個複製處理單元(processing-unit, PU)的高度平行架構,以及透過高度優化網路連接的大量分散式晶載(on-chip)記憶體,以實現高處理量(throughput)。而這些處理單元還可以包含多個核心和緊密整合的本地記憶體。一家領先的AI晶片公司所推出的加速器,可能具有如圖1所示的功能。為了實現設計可擴展性和更快的開發週期,AI SoC設計人員正在採用鄰接設計方法(abutted design method),意即透過標準化介面運用物理佈局,以連接多個相同的區塊(處理單元或核心),而無需進行任何頂層繞線。

圖1:具有處理單元(PU)和本地記憶體(LM)的AI晶片架構。

這些處理單元(PU)內的本地記憶體,可對本地資料進行高能效、低延遲的操作。然而,傳統的DRAM技術無法提供平行存取和處理大量外部資料所需的頻寬和容量。因此,許多AI SoC正在部署新的記憶體技術,例如基於先進的2.5D或3D封裝的高頻寬記憶體(HBM)或混合記憶體立方體(hybrid memory cube, HBC),以提供更高的資料處理量和容量。這些AI加速器最終被整合到以分散式方式處理大型工作負載的AI系統中,而加速器則使用晶片上的高頻寬介面(例如PCIe)進行通訊。近來,設計者開始利用這些介面進行高頻寬測試。像汽車這樣的AI加速器應用,被要求在晶片生命周期的各個階段都具有高度可靠性、安全性和功能安全性。晶片生命週期管理(SLM)技術透過在矽晶中添加功能,在設計、製造、測試到現場部署的所有階段收集和監控SoC資料,以因應這些挑戰。

前述AI設計的規模、複雜性以及新技術的導入,對其可測試性設計(DFT)流程帶來重大挑戰。一般來說,這個挑戰可藉由專注在兩個主要功能來解決:採用有效的測試方法及定義高效的DFT架構。DFT架構根據測試方法來定義,以實現測試目標,包括快速DFT簽核、最小化測試時間、高測試覆蓋率和有效診斷。以下部分將討論這兩個功能的細節和需考慮的因素。

DFT架構

由於AI設計具有龐大的設計規模和複製架構,因此分層測試(hierarchical test)方法非常適用於此。與平面測試方法相比,層階測試有兩個主要優勢。首先,它採用分治法(divide-and-conquer),將設計分成較小的層級分區,以便快速進行DFT簽核,包括DFT插入、測試模式設定、測試向量(pattern)生成和驗證。對於大型AI設計而言,在頂層採用展平式(flat test methodology)測試方法是不切實際的。其次,由於AI設計是由複製的區塊組成,DFT簽核僅需在某一層級的區塊上執行一次即可,並於其他實例(instance)中重複使用。將簽核完成的區塊與其父層(parent-level)的DFT簽核進行複製和整合,完成在父層的DFT實作。如果AI設計包含多個層級,可遵循相同的層級區塊簽核方法,以完成晶片等級的DFT,如圖2所示。

圖2:分層測試方法可以執行分層DFT簽核和複製,以加速該設計的DFT簽核。

測試方法

分層測試可加速DFT簽核並最大化其重複利用率;然而,設計人員仍需要確定設計的DFT架構,而這也將成為DFT邏輯實作的細節。由於設計要求十分多元,不同AI晶片對DFT有不同的需求和限制。基本上,一個AI晶片的DFT架構可以透過確定以下組成部分來廣泛制定:

  • 確定分層簽核區塊和邏輯測試及記憶體測試實作的DFT,同時滿足設計和DFT限制。
  • 掃描測試匯流排/壓縮及測試設定機制架構,以實現最佳的測試時間、測試功率、更簡單的物理設計、鄰接設計支援、早期規劃、可擴展性和靈活性。

DFT架構:簽核區塊與DFT實作

在使用多層級設計的層階方法時,將最低層級區塊或更高層級區塊簡單地指定為首個層階簽核區塊,這種做法並不理想。設計人員需要權衡DFT對設計(面積、功率、時序等)和測試的要求,以確定簽核區塊層。觀察圖2中的AI設計範例,如果在最低層階(也就是處理單元)進行DFT簽核,可能會導致過度的區域額外開銷(overhead)、佈線壅塞,或者是非必要的測試模式,增加測試時間卻沒有帶來明顯的好處。另一方面,若指定晶片層級進行DFT簽核,會導致更長的測試向量生成時間、更長的測試時間、更大的記憶體需求、佈線壅塞及功率等問題。因此,我們必須找到一個平衡點,既能將DFT的影響最小化,又得以實現測試目標。在圖2中,父層區塊可能是首個分層簽核區塊,而非處理單元。在簽核區塊內,設計人員需要考量多種因素(如測試時間、功率、物理設計等)來決定邏輯測試和記憶體測試的DFT設定。圖3顯示了依據設計而定的父層區塊DFT設定範例(編解碼器(codec)是掃描測試壓縮,SMS是記憶體BIST測試控制器)。

圖3:分層簽核區塊DFT設定範例。 (i) 在整個區塊中搭載一個編解碼器和一個SMS。 (ii) 每個處理單元都搭載一個編解碼器,但只有一個SMS用於測試該區塊內所有記憶體。 (iii) 每個PU都搭載一個編解碼器,區塊記憶體搭載一個SMS,另一個SMS則用於測試所有處理單元內的記憶體。

對於較簡單的設計來說,測試要求較不嚴格,DFT邏輯對設計的影響也很小。隨著設計日趨複雜(如AI設計),維持測試品質和成本所需的DFT邏輯變得更加重要,足以影響測試時間、測試功率、物理設計、DFT規劃時間和可擴展性等因素;連帶需要設計人員開發創新的解決方案來實現設計和測試目標。在此背景下,本文將繼續探討基於IEEE 1687和IEEE 1500的測試壓縮、測試資料傳輸和測試設定機制的要求和進展。

DFT架構:掃描測試匯流排和壓縮

談到掃描式測試資料傳輸時,靜態引腳(pin)分配是傳統的預設方法,如圖4所示。它涉及將區塊的編解碼器輸入和輸出引腳連接至頂層掃描引腳。由於AI設計包括複製的簽核區塊,因此相同的測試資料輸入可以藉由輸送,並根據功率限制同時地測試多個區塊。這節省所需的測試引腳和測試時間。在晶片層級掃描引腳有限的情況下,也可針對編解碼器輸出實作頂層多工處理。然而,這種架構缺乏靈活性且存在幾個重要缺點如下:

  • 繁瑣的編解碼器引腳和晶片層級引腳分配規劃
  • 由於測試頻寬分配不均,分配給編解碼器的固定引腳在測試時間上表現不佳
  • 隨著設計規模擴大,頂層的編解碼器輸入/輸出訊號的匯總和長路徑衍生出物理設計挑戰
  • 固定測試組合導致測試功率違規
  • 針對鄰接設計實作無法擴展的DFT

為了緩解這些問題,人們開發出以測試匯流排為基礎的資料傳輸機制。一些過去基於測試匯流排的解決方案,使用現有的編解碼器並將它們連接到新的測試匯流排以將資料傳輸至處理單元。位於編解碼器和測試匯流排之間的本地控制器介面,負責管理匯流排和編解碼器之間的資料。不同於複雜的編解碼器輸入/輸出訊號路由,相同的測試匯流排會穿越每個區塊,在其邊界提供一個標準化的介面。透過避免基於區塊數量的自定義管線(pipelining)和訊號路由,此解決方案大幅簡化晶片的物理設計,並為鄰接設計提供了一個可擴展、易於實施的測試資料傳輸。本地控制器透過測試向量生成或略過(bypass)區塊的靈活性,避免了頂層多工處理的需求,以維持測試時間和測試功率。

雖然這種方法解決了先前提到的大部分問題,但仍需要確定編解碼器的正確輸入和輸出引腳以減少測試量;另一方面,也無法充分利用測試匯流排功能來降低另一層級的測試時間。這主要是因為編解碼器和測試匯流排是相互獨立開發的。新一代基於測試匯流排的解決方案包括循序邏輯壓縮(sequential compression) 編解碼器、測試結構和結構端點(socket),它們通過共同優化開發,提供更低的測試資料量和更少的測試時間。透過更高程度的區塊測試重疊(block test overlap)來實現有效的測試頻寛分配。圖4顯示了掃描式測試資料傳送機制的演變。

圖4:掃描式測試資料傳輸機制從靜態引腳分配演進到優化的測試結構(test-fabric)與序列壓縮技術。 SEQ代表序列壓縮編解碼器,FS代表結構端點(fabric-socket)。

循序壓縮測試結構的兩大優勢:

1. Simplified DFT planning and implementation 簡化可測試性設計(DFT)的規劃與實施

  1. 標準介面允許提前佈局規劃
  2. 可擴展的架構方便繞線和快速時間收歛
  3. 適用於鄰接與非鄰接(non-abutted)設計
  4. 針對功率預算的可編程核心群組
  5. 測試時間不受編解碼器針腳分配的影響

2. Test time reduction 減少測試時間

  1. 透過對測試結構和序列壓縮編解碼器的最佳化,實現高效的測試頻寬分配
  2. 透過測試資料交錯(interleaving),優化SoC中所有核心設定的測試時間
  3. 高度序列壓縮以降低測試量
  4. 將資料發送到相同的核心,以及編解碼器中的晶載(on-chip)比較功能
  5. 支持功能性高速I/O測試

DFT架構:測試設定機制架構

確定分層簽核區塊以及相應的邏輯測試和記憶體測試實作細節後,DFT架構中另一個重要組件是制定測試設定(test configuration)或測試設置(test-setup)機制策略。該機制通常是基於IEEE 1687和IEEE 1500標準的串列網絡,用於設定測試邏輯,包括應用於編解碼器的編程測試資料暫存器(register)、時序控制器、記憶體測試控制器、系統內測試控制器等。如同邏輯測試與記憶體測試,測試設置架構也需要應對前面提及的挑戰;然而,關鍵的需求在於一個高效架構,以減少測試時間、簡化物理設計並支援鄰接設計。與邏輯測試和記憶體測試不同的是,在這種情況下,測試功率通常不是問題,因為此一過程中僅有少數設計正反器會進行切換(toggle)。基於這些網路固有的串列特性,測試設置操作相較於掃描測試要慢得多,除了顯著增加測試時間外,也很容易成為大型設計的瓶頸。AI設計需要為數百個複製區塊部署相同設定,使用串列方法將相同的資料發送到所有區塊並非理想選擇。在此情況下,將資料發送至相同核心可以大幅減少測試設置時間。然而,如果AI晶片使用鄰接設計方法,訊號的傳送會導致邏輯實作和物理設計問題。串列匯流排可以在無需頂層繞線的情況下,在區塊之間傳送。雖然IEEE 1687和IEEE 1500都支援串列和傳送網路,但IEEE 1687更易於執行串列實作,而IEEE 1500網路則更適合資料傳播。

圖5是一個AI晶片的範例。假設該晶片採用鄰接設計且包含一個具有測試存取埠(test-access-port, TAP)的中央區塊,其測試設置資料被分配給多個複製的相同處理單元。這樣的設計可以受益於利用1500和1687的優勢,同時減少測試設置時間並支援鄰接設計。主控制器將測試設置資料傳送到1500網路上的五個處理單元管柱(PU column),但由於鄰接處理單元的菊鏈(daisy chaining)串接,該資料將會透過1687環狀網路(ring network),在每個管柱內進行串列移位(shift serially)。控制訊號直接由子控制器(sub-controller)在每個處理單元內部生成,而不是從主控制器(main-controller)發送,對於鄰接處理單元來說是好事。在此範例中,測試設置時間可能會節省4倍。許多工業設計在鄰接區塊中還會再加入另一層鄰接區塊,而設計人員可以分層地遵循類似的方法來進行設計。

圖5:透過1500網路向處理單元管柱(PU-column)傳送測試設置,並透過1687網路對序列中的處理單元進行菊鏈串接,以支援鄰接處理單元串連。

人工智慧晶片體積龐大且複雜,因此,如何制定一個既能在最快周轉時間內達到預期測試目標,又能將影響降至最低的DFT及測試策略,是一項艱鉅的任務。此類設計必須採用分層式測試方法,若使用傳統DFT方法會導致AI晶片測試結果不佳。設計人員必須細心規劃整個DFT架構,包括邏輯測試、記憶體測試以及測試設置,同時需要通盤考量測試時間、測試功率、物理設計影響、鄰接設計方法及可擴展性等多種因素。目前以測試匯流排為基礎的機制正在取代靜態多工,以實現高效的資料傳輸,在大型設計中尤是如此。然而,此種機制在測試匯流排和壓縮編碼器之間的相互利用的程度有所限制。新一代架構包括共同優化的序列壓縮編解碼器、測試結構和結構端口,已證明能夠有效減少測試量和測試時間。