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

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

在同一封裝上整合多個裸晶(die)和記憶體的 AI 晶片測試要求

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

2022年 3月8日於《Semiconductor Engineering》刊登

為什麼要為 AI SoC 選用基於2.5D/3D chiplet的設計?

目前,許多半導體公司都針對大規模 SoC 和 AI/ML 加速器選用基於小晶片(chiplet) 的設計技術。這種技術可以將來自不同製程節點的異質裸晶(die),也就是chiplet,以 2.5D/3D 的方式整合到單一封裝中,以滿足功率效能和設計開發方面的要求。此外,這種設計方式能夠以數個較小chiplet所整合而成的裸晶,取代單一大型裸晶,擁有實現更高良率的潛力。AI 加速器選用 2.5D/3D chiplet 基礎設計的主要原因之一,是因為它們需要進行平行存取和處理大量資料,而這需要高頻寬的記憶體轉換和極高的運算能力。2.5D chiplet AI SoC 可以將高頻寬記憶體 (HBM) 堆疊與處理器的 chiplet 並排整合於中介層(interposer)上,如圖 1 所示。HBM 技術利用記憶體晶片的 3D 堆疊來實現記憶體的高頻寬傳輸,而多重處理器 chiplet 可以有效取代大型單 CPU 裸晶來滿足運算和良率方面的要求。其中,某些設計還採用了將多個主動式裸晶(active dies)彼此堆疊的 3D 設計 (圖 2)。矽穿孔 (TSV) 則能促進 3D 設計中晶片堆疊之間的通訊。

圖 1 (上):2.5D Chiplet 設計

圖 2 (右):3D 設計

DFT 的挑戰和要求

由於 2.5D/3D 裝置的測試要求從裸晶層級延伸到了封裝層級,因此它們產生了全新的可測試性設計 (DFT) 挑戰。傳統上,系統層級測試 (SLT) 可用於測試裸晶和記憶體元件,但如果將這些元件整合在單一封裝上,則該系統的測試將會從 SLT 轉移至製造測試。除了這些裝置的 DFT 解決方案外,單一裸晶的測試品質也非常重要。這是因為最終產品的良率主要取決於元件裸晶的良率,多晶片封裝中只要有一個裸晶有缺陷,就會造成整個封裝的缺陷。全新的 2.5D/3D chiplet 設計需要先進的測試工具,例如 Synopsys TestMAX,來提供完整且高品質、從晶片到封裝層級的測試解決方案。這些設計的 DFT 策略制定,大致上是為了解決兩種挑戰:

  • 裸晶可存取性和測試資料傳輸架構
  • 多晶片(multi-chiplet)封裝的測試

裸晶可存取性和測試資料傳輸架構

大型單裸晶中的引腳(pin)非常容易存取,以取得掃描和測試組態資料 (測試設定、記憶體 BIST、邏輯 BIST 等)。由於在相同封裝上整合了多個 chiplet 和 HBM 堆疊,許多引腳只用於裸晶/堆疊間通訊,且無法於封裝層級上存取,因而降低了裸晶可存取性和能夠用於測試的引腳數量。基於這種限制,我們需要利用高效率的測試資料傳輸機制,透過具有更高可存取性引腳的主要裸晶來存取和測試特定裸晶。

圖 3 為 2.5D 封裝 (包含中介層和封裝基板) 的測試資料傳輸結構範例。IEEE Std. 1838 定義了一種機制,利用由封裝 TAP 引腳驅動的主要和次要測試存取埠 (test-access-port, TAP) 介面,將測試組態資料傳送至堆疊的裸晶 (以藍色表示)。同樣的,從彈性平行埠 (flexible parallel port, FPP) 到裸晶內掃描網路的掃描資料傳輸路徑則以黑色表示。FPP 是 IEEE Std. 1838 所定義的埠,用以將掃描資料傳輸到堆疊中的裸晶。在圖 3 中,FPP 可設定成將掃描資料發送到裸晶 1 或裸晶 2。針對 3D 設計,會透過將 PTAP-STAP 結構延伸到堆疊的方式,將測試組態資料傳至所有裸晶。在掃描測試中,會在整個堆疊內利用 FPP 來測試或略過(bypass)裸晶,如圖 4 所示。

圖 3:2.5D 設計,其中顯示裸晶間透過中介層的測試組態 (藍色) 和掃描資料 (黑色) 連結。裸晶 1 用於存取裸晶 2 中的測試網路。

圖 4:3D 設計,其中顯示裸晶間的測試組態 (藍色) 和掃描資料 (黑色) 連結。裸晶 1 可用來存取其上方的所有裸晶。

在 2.5D/3D 封裝中整合多個 chiplet,會減少測試可使用的引腳數量並拉長測試時間。由於串流結構(streaming fabric)等測試結構的運行速度,比掃描移位(scan shift)更快, 而且只需少量測試引腳就能將測試資料傳送到更廣大的平行掃描網路,因此會是這個問題的理想解決方案。由於串流結構本身就有 FPP 的功能,因此可以消弭對FPP的可配置性需求。新思科技的嶄新技術SiliconMAX High-Speed Access and Test (HSAT),可運用 PCIe 或 USB 等高速功能 I/O (HSIO) 來驅動掃描網路,與串流式結構結合,將能提供更高的測試頻寬。借助 HSAT技術,數個以遠高於 GPIO 速度執行的功能性 I/O,即可驅動規模更大的串流結構,進而驅動更廣大的掃描網路。同樣的 HSIO 也可用來驅動 TAP 網路,為設計提供測試組態資料。適用於 2.5D 和 3D 設計的串流結構和 HSAT 的實作方式如圖 5 和圖 6 所示。

圖 5:2.5D設計,其中顯示無需FPP即可傳輸掃描資料的HSAT邏輯驅動測試結構。HSAT邏輯會利用高速功能性I/O (PCIe或USB),將掃描和測試組態資料傳送至裸晶。

圖 6:包含HSAT邏輯驅動測試結構的3D設計。

HSAT 邏輯可設定為使用 HSIO 來提供測試資料,也可以略過它來使用一般 GPIO 和 TAP 引腳。由於 HSAT 使用功能性 HSIO 進行測試資料傳輸,因此它可以重複使用製造測試向量(manufacturing test pattern)來進行現場(in-field)和系統級(system level)測試。

多裸晶封裝的測試

本節會以 2.5D 設計的角度,探討多裸晶封裝所需的測試;相同的概念會再套用到 3D 設計。大型單裸晶所需的測試是眾所周知的,然而,由於多晶片封裝具有更多擴展性設計功能 (例如裸晶之間的互連、不同的介面協議、封裝上的記憶體堆疊等),因此需要額外的測試。以下是利用 HBM 實現之 chiplet 式 AI 設計所需的關鍵測試類型:

  • 裸晶級(die-level)測試
  • 封裝級(package-level)裸晶測試
  • 裸晶對裸晶(D2D)測試
  • HBM測試

裸晶級測試

如前所述,多晶粒產品的良率主要取決於元件裸晶的良率,因此各裸晶在整合在一起之前必須先通過測試。裸晶級測試使用層階(hierarchical) DFT 和 ATPG技術來處理具有重複處理單元的大型 AI 設計。層階簽核區塊(hierarchical sign-off block)經辨識後,掃描和測試組態圖型(configuration pattern)會由區塊層級傳送到裸晶層級。本文也討論了具有循序邏輯壓縮(sequential compression)功能的先進測試結構,與過去掃描資料傳遞和測試組態機制架構技術相比的優勢。

封裝級裸晶測試

元件裸晶一旦整合到單一產品中,其運作條件就會發生變化而導致暫態缺陷(transient defect),因此需要在封裝層級上單獨測試封裝中的裸晶。針對掃描網路,封裝級測試結構會連接到裸晶級測試結構,而後者會進一步連接到核心級測試結構;TAP網路也是如此。這種網路整合方式會將裸晶級測試圖型從裸晶層級移動到封裝層級,然後重複使用這些測試圖型來進行封裝級裸晶測試。此流程類似於晶片層級的層階測試,其中核心圖型會移轉到裸晶層級。

裸晶對裸晶 (D2D) 測試

Chiplet 式產品主要會使用三種不同類型的 D2D 互連:(a) 基於PHY之高頻寬互連、(b) 非 PHY 式互連和 (c) 與測試相關的互連。基於PHY 之互連 (如圖 7 所示) 可作為適用於chiplet 間高速訊號的高頻寬介面 (HBI)。HBI 的邏輯中通常具有測試用的內建自測試 (BIST) 機制,可以運用 IEEE 1500 或 IEEE 1687 進行控制。所有適用於裸晶間功能性路徑的非 PHY 式互連,都需要裸晶封套暫存器 (Die Wrapper Register, DWR),以便在內部測試模式下隔離其他裸晶,並且在外部測試模式下啟用裸晶對裸晶互連測試。在核心層級中相對應的流程,則是在層階測試實作隔離封套。DWR 由 IEEE 1500 控制,如圖 7 所示。針對裸晶上連接封裝級引腳的功能性 I/O,可以利用 IEEE 1149.1,透過 PTAP 驅動的邊界掃描暫存器 (boundary-scan registers, BSR) 來進行測試。裸晶間與測試相關的互連 (例如封裝層級的 PTAP-STAP、測試結構或測試 I/O) 不會進行明確的測試。

HBM 測試

HBM 由高密度 DRAM 記憶體模組的 3D 堆疊和選擇性的基本邏輯裸晶組成。HBM 中的記憶體模組會連接到基本邏輯裸晶中的 PHY,該 PHY 則會與處理裸晶上的 PHY (圖 7 中的裸晶 1) 通訊。若要測試 HBM 堆疊,則必須使用由 IEEE 1500 控制的 HBM 測試控制器 (HTC) 來攔截該路徑。

圖 7:控制和啟用裸晶對裸晶 (D2D) 和 HBM 測試的網路範例。

針對互連的測試存取通常會使用不同的串列介面 (例如 IEEE 1687、IEEE 1149.1 和 IEEE 1500),因為不同的互連可能基於不同標準或使用第三方 IP,因此很難在封裝層級上用單一介面來控制這些測試。 能夠有效解決此問題的方法之一,是使用本地控制器作為封裝介面和互連測試存取之間的橋樑。這個方法不會通過 IEEE 1149.1 來驅動由 PTAP 驅動的 STAP,而是透過 IEEE 1687 讓 PTAP 與本地控制器連接,然後使用 IEEE 1149.1 來驅動 STAP。這個本地控制器也可以透過 1149.1 封裝介面啟用適切的測試設定,以通過 IEEE 1500 啟用 HBI 和 HBM 測試。裸晶中任何符合 IEEE 1687 標準的 IP 都可以透過這個本地控制器來操作。

目前,許多半導體公司都為其 AI SoC 選用 2.5D/3D chiplet 設計,以實現更高的運算和記憶體存取效能。除了大型單裸晶所需的測試外,這些設計因為整合了多種裝置而產生新的測試要求,也需要新的測試結構以進行測試。IEEE Std.1838 定義了一種標準化且可擴充的測試存取架構來傳輸測試資料,並支援在多晶粒和堆疊晶粒組態中進行測試。然而,要使用不同的測試邏輯,可能需要處理不同的串列介面。2.5D/3D 設計需要先進 DFT 工具來提供完整的解決方案,包括自動化測試邏輯實作、串列介面控制和測試圖型生成。欲瞭解更多關於 AI 架構 DFT 的資訊,歡迎至SNUG Taiwan研討會平台或SNUG SV論文集探索相關主題議程。