STRAIT是一個針對AI加速器的完整自測試、自診斷和自修復系統。本項目實現了基於脈動陣列(Systolic Array)的AI加速器,具備故障檢測、定位和恢復功能。
┌─────────────────────────────────────────────────────────────┐
│ STRAIT │
├─────────────────┬─────────────────┬─────────────────────────┤
│ Self-Test │ Self-Diagnosis │ Self-Recovery │
│ (hybrid_bist) │ (DLC) │ (BISR) │
└─────────────────┴─────────────────┴─────────────────────────┘
- 功能: 系統頂層模組,整合所有子系統
- 主要特性:
- 協調測試、診斷和修復流程
- 管理各模組間的資料流
- 提供外部介面
- 功能: 脈動陣列主體,包含8x8 PE陣列
- 主要特性:
- 支援權重預載入模式
- 45度資料流設計
- 可配置的PE禁用功能
- 功能: 處理元件(Processing Element)實現
- 主要特性:
- MAC運算單元
- 掃描鏈支援
- 故障旁路功能
- 功能: 混合式內建自測試控制器
- 支援測試類型:
- MBIST: 記憶體測試(March算法)
- LBIST: 邏輯測試(SA/TD故障)
修改後流程:
Pattern 0: SA_SHIFT(8 cycles, 無比較) → SA_CAPTURE(1 cycle)
Pattern 1: SA_SHIFT(8 cycles, P0 shift out + 比較) → SA_CAPTURE(1 cycle)
Pattern 2: SA_SHIFT(8 cycles, P1 shift out + 比較) → SA_CAPTURE(1 cycle)
...
Pattern 11: SA_SHIFT(8 cycles, P10 shift out + 比較) → SA_CAPTURE(1 cycle)
最後階段: SA_FINAL_SHIFT(8 cycles, P11 shift out + 比較) → TD_SHIFT
- 主要特性:
- 多階段測試流程
- 動態測試向量產生
- 即時結果比較
- 功能: 測試結果比較器
- 主要特性:
- 並行比較8個PE輸出
- XOR基礎故障檢測
- 即時錯誤標記
- 功能: MBIST測試資料產生器
- 主要特性:
- March C-算法模式
- 8種測試模式支援
- 可配置測試深度
- 功能: 診斷迴路鏈,即時故障定位
- 故障類型檢測:
- 單PE故障: MAC單元故障
- 行故障: 激活暫存器故障
- 列故障: 權重/部分和暫存器故障
- 主要特性:
- 移位暫存器鏈架構
- 並行故障檢測
- 零額外測試時間
- 功能: 內建自修復權重分配控制器
- 修復策略:
- 零權重檢測: 識別可用於替換的位置
- 權重交換: 故障PE與零權重PE交換
- 權重分配: 重新映射權重到健康PE
- 行旁路: 嚴重故障時整行停用
- 功能: 故障PE儲存器(CAM架構)
- 主要特性:
- TCAM支援don't care值
- 樹狀並行匹配
- O(log N)時間複雜度
- 優先編碼選擇
- 功能: 地址映射表
- 主要特性:
- 動態地址重映射
- 故障隔離
- CAM快速查詢
- 功能: 嵌入式非揮發性記憶體
- 儲存內容:
- SA測試向量(12組)
- TD測試向量(18組)
- 故障映射資訊
- 診斷結果
- 功能: 累加器系統
- 主要特性:
- 8個並行累加器
- 45度輸入模式
- 測試模式支援
- 功能: 激活值記憶體
- 主要特性:
- 按行儲存激活值
- 支援BISR地址重映射
- 功能: 行權重儲存器
- 主要特性:
- 按行組織權重資料
- 支援動態重分配
- 功能: 激活值緩衝器
- 主要特性:
- 45度移位暫存器陣列
- 測試/正常模式切換
- 動態資料對齊
- 功能: 權重和部分和緩衝器
- 主要特性:
- 多源輸入選擇
- PE禁用控制
- 測試資料注入
LBIST_SA_test_pattern.dat
: SA故障測試向量(12組)LBIST_TD_test_pattern.dat
: TD故障測試向量(18組)MBIST_test_pattern.dat
: 記憶體測試向量(8組)
weight.dat
: 權重資料(8x8矩陣)activation.dat
: 激活值資料(8x8矩陣)
- SA故障: 100%覆蓋率
- TD故障: 100%覆蓋率
- 記憶體故障: March C-算法完整覆蓋
- 零準確度損失: 基於權重稀疏性的智能分配
- 高修復率: 稀疏度>30%時達100%修復率
- 故障容忍: 支援最高1%的PE故障率
- 測試開銷: <0.1% (相對於陣列面積)
- 診斷開銷: 2.5% (相對於256×256陣列)
- 修復開銷: <0.1% (CAM/TCAM架構)
- 初始化: 載入測試向量到eNVM
- MBIST: 測試內部記憶體
- LBIST: 測試脈動陣列邏輯
- 診斷: 即時故障定位和分類
- 修復: 自動權重重分配和PE旁路
test_mode
: 測試/正常模式切換BIST_mode
: MBIST(0)/LBIST(1)選擇START
: 測試開始信號scan_en
: 掃描鏈使能
test_done
: 測試完成TD_error_flag
: TD錯誤標記MBIST_FAIL
: MBIST失敗標記recovery_success
: 修復成功標記
基於論文實驗數據:
- 測試向量: SA僅需12組,TD僅需18組
- 功耗降低: 掃描移位功耗降至<5%
- PE利用率: 優於傳統方法2-3倍
- 修復成功率: 在30%稀疏度下達100%
- 統一架構: 首個支援測試+診斷+修復的完整方案
- 零時間診斷: 與測試同步進行的即時故障定位
- 智能修復: 基於權重稀疏性的零損失修復策略
- 硬體共享: 測試和修復電路的高效復用
此實現基於IEEE論文:"STRAIT: Self-Test and Self-Recovery for AI Accelerator" (IEEE TCAD 2023)
請參考相關學術授權條款