゠ヺカツキタメと形式的検証の協調 による超ヅァヘ …...2013/03/16 ·...
TRANSCRIPT
アーキテクチャと形式的検証の協調による超ディペンダブルVLSI
東京大学 大学院情報理工学系研究科 坂井 修一 (代表者)
五島 正裕
東京大学 大規模集積システム設計教育研究センター(VDEC) 藤田 昌宏
東京工業大学 大学院情報理工学研究科 吉瀬 謙二
日本電気(株) 若林 一敏
戦略的創造研究推進事業「ディペンダブルVLSIシステムの基盤技術」
2013/3/16 DVLSI-CREST
全体マップ: ディペンダビリティ階層
それぞれの階層で技術開発+ 全体を通した最適化+ 最新アーキテクチャの検証
Best Effort Design
Run Time Recovery
(1) 形式的検証手法
� 等価性検証ソフトウェア
� ハード・ソフト協調による検証高速化・エミュレータへの応用
� ボトムアップ・トップダウン協調検証
� 算術回路合成・検証・高速化
� 設計解析技術・デバッグ支援
(2) テスト技術・テスト段階修復技術
� テスト容易化・検証容易化を実現する設計手法
� プログラマブル素子自動挿入
(3) 回路技術
� タイミング制約緩和回路
(4) アーキテクチャ技術
� 故障検出・回復機構の提案・実現
� 耐永久故障FPGA
� 耐故障高機能ルータ
� 超ディペンダブルプロセッサ、超ディペンダブルメニコア
(5) 新アーキテクチャ形式的検証
� ディペンダブルアーキテクチャ技術自体を形式的に検証
� 既存のアーキテクチャ、最新のアーキテクチャを形式的に検証
(7) 各設計階層間のディペンダビリティ役割分担を
最適化
software
design
verification
architecturecircuittest
user interface
2013/3/16DVLSI-CREST
VLSI設計に対する形式的検証とデバッグ支援設計に対する形式的検証とデバッグ支援設計に対する形式的検証とデバッグ支援設計に対する形式的検証とデバッグ支援
• 設計変更・抽象化に対する等価性検証
– 形式検証ツールの開発(FLEC)
– NECとの協調による産業用設計例題を用いた評価
• ポストシリコン検証・デバッグ支援
– 企業とパッチ可能ハードウェアとその設計環境の開発
3
2013/3/16 DVLSI-CREST
NEC
Cyber Work Bench (CWB)
高位合成・設計環境(ポストシリコン
デバッグ支援機構)
設計ライブラリ(算術演算回路支援)
Cベース設計記述 1 Cベース設計
記述 2
Cベース設計記述 n
・・・
RTL設計 + ポストシリコンデバッグ支援
等価
性検
証(チ
ップ
、コ
ア、
ブロ
ック
)
CWBの例題
チップの意図通りの正しい動作の保証(向上):・ 仕様(元のC記述)通りの動作・ 誤設計のチップ製造後のデバッグと修正
(元のC設計上のバグをチップ製造後に修正)
パッチ可能ハードウェアと設計開発環境パッチ可能ハードウェアと設計開発環境パッチ可能ハードウェアと設計開発環境パッチ可能ハードウェアと設計開発環境(ポストシリコン検証・デバッグ支援ポストシリコン検証・デバッグ支援ポストシリコン検証・デバッグ支援ポストシリコン検証・デバッグ支援)
• 冗長性・プログラム可能性を設計段階で回路に導入
• 製造後に生じた不具合の修正が可能
– 企業と共同で、設計手法/フローのツール化が完了(デモ)
論理合成配置配線
設計
高位設計記述
高位ECO(Post-Silicon)
高位検証(Pre-Silicon)
形式検証/シミュレーション
バグ修正
バグ特定
パッチ可能SoC
冗⻑性を考慮した高位合成
(パッチ可能HW)
バグ修正
バグ特定
パッチ生成
NoRespin
Needed!
エラー検出
4
2013/3/16 DVLSI-CREST
部分的プログラム可能回路による自動修正技術部分的プログラム可能回路による自動修正技術部分的プログラム可能回路による自動修正技術部分的プログラム可能回路による自動修正技術5
2013/3/16 DVLSI-CREST
• 与えられた仕様を満たすプログラム可能回路(LUTや任意関数)の定義(真理値表、関数定義)を効率的に求める新規手法– (10万ゲート規模の組合せ回路+LUT100個)を1時間程度で解析
(従来手法では3千ゲート以下の規模でもtimeout)
• 企業の大規模ネットワークチップ設計の実バグ事例で評価– (企業)設計とバグ事例を提供(設計の最終段階のバグ)
– (大学)回路にLUTを挿入し、実際のバグが修正できるかどうかを評価
– LUT挿入方法の工夫し、数分~数十分でいくつかのバグを自動修正(協調評価は継続し、手法を定式化。企業とツール化準備中)
FLECの実用化シナリオC言語ベース設計環境において
より有用性の高いFLEC活用シナリオを検討
既存IP(検証済み)の設計変更前後のC対C等価性検証
Design
for
ASIC
Design
for
FPGA
verifiedASICs
FPGAs
FLECはシミュレーションでは達成困難な100%の機能等価性検証を可能とするがFLECをもってしても大規模回路の検証には時間がかかる
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
0 10 20 30 40 50 60
Verification TIme
Number of branch statements in design
Floating Point
Arithmetic
DES
大規模な実用回路ではFLECでの検証時間が増大
Verify
with
FLEC
6
2013/3/16 DVLSI-CREST
試行錯誤を伴う人手の設計変更
差分抽出比較法
int str_to_i(char str[10]) {
int val = 0;
for(int i=0;i<9;i++) {
val += char_to_i(str[i]);
val = val * 10 ;
}
val += str[9];
return val ;
}
int str_to_i(char str[10]) {
int val = 0;
for(int i=0;i<9;i++) {
val += char_to_i(str[i]);
int t = (val << 3);
int u = (val << 1);
val = t + u;
}
val += str[9];
return val ;
}
?
==
Before After
int str_to_i(char str[10]) {
int val = 0;
for(int i=0;i<9;i++) {
val += char_to_i(str[i]);
val = uif(val) ;
}
val += str[9];
return val ;
}
int str_to_i(char str[10]) {
int val = 0;
for(int i=0;i<9;i++) {
val += char_to_i(str[i]);
val = uif(val) ;
}
val += str[9];
return val ;
}
==
Before After
int uif(int u) {
int val ;
val = val * 10 ;
return val ;
}
int uif(int u) {
int val ;
int t =(val << 3);
int u = (val << 1);
val = t + u;
return val ;
}
差分抽出
Equiv.
FLECFLEC
設計全体の比較は規模の問題で検証不可(数日でも検証終了せず)
変更箇所のみの比較で規模の増大を抑制(FLECによる検証が数秒で成功)
設計変更が限定的であることを利用し、変更箇所のみ比較することにより検証時間を短縮
設計変更が限定的であることを利用し、変更箇所のみ比較することにより検証時間を短縮
7
2013/3/16 DVLSI-CREST
比較==
回路・アーキテクチャ技術: 耐過渡・耐永久故障 FPGA
� 基本的なアイディア:
� Triple Modular Redundancy (TMR) による故障マスク & 検出
� Dynamic Partial Reconfiguration (DPR) による回復
� 目標 : 「高信頼用途にも使える通常用途用 FPGA」
� 通常用途におけるオーバヘッドを極小化
� ハードワイアート・ボータ(多数決回路)
� ユーザ・ロジック回復コントローラ
� ボータ・ネットワークの省略(三つ組を構成する BLE を固定)
� ノンストップ再構成手法
� FF の値のスペアへのコピー
� スペアの FF をランダムにセット/リセットし,
別のスペア・モジュール内のボータを用いて一致を確認
� VTR (Verilog-to-Router) を改造して,評価中
2013/3/16 DVLSI-CREST
FF
FF
FF
Vote
r
LUT
LUT
LUT
FF
FF
FF
Vote
r
LUT
LUT
LUT
置き換え
スペア・モジュール
回路・アーキテクチャ技術: 耐タイミング故障技術
� LSI のランダムばらつき
� 動的タイミング故障 検出 & 回復 でワースト・ケースから脱却
� 動的タイム・ボローイングを可能にするクロッキング方式
� 二相ラッチ + タイミング故障検出
� ワースト遅延 → (入力ばらつきも含めた)ティピカル遅延 での動作
� 最大動作周波数は 2倍 ⇒ 電圧低下にも
� 耐タイミング故障プロセッサ
� コミット方式の詳細な検討
� Out-of-Order スーパスカラ・プロセッサにも適用可能 (ARM Cortex-A9,A15,etc.)
� パイプライン初期化による回復方式の検討
� 故障発生率 1回/1000サイクルで,IPC 低下率 2% 未満
2013/3/16 DVLSI-CREST
FPGA ボード
回路・アーキテクチャ技術: 出口戦略
� 耐過渡・耐永久故障 FPGA
� 日立研との共同研究(今年度から)
� ターゲットは,車載制御
• FPGA による ASIC の置き換えを狙う
� 某大手 FPGA ベンダ(複数)との協業
• この夏に,本社訪問の予定
• その前に,特許を取得し,交渉を有利に
� 車載のため,更なる低コスト化の工夫
� 耐タイミング故障 クロッキング & プロセッサ
� LSI 試作等により,信頼性を高める
� LSI ベンダとの具体的な協議: 研究開発と並行して継続的に
� Intel,AMD,ARM,国内メーカ
2013/3/16 DVLSI-CREST
超ディペンダビリティ支援高機能ルータグループ
� 高信頼・高効率メニーコア
� 高機能ルータを核として送受信パケットのレベルで多重実行を実現するSmartCoreシステム
� SmartCoreシステムのために設計した高機能ルータは,パケットの複製,パケットの送信先変更,パケットレベルの比較とエラー検出という独自の3つの機能を実現
� 180FPGAによるメニーコアの大規模テストベッド
� 現実的な制約のもと、SWと比較して,129倍の速度で メニーコアの動作をエミュレーション
� メニーノードシステムのためのタスク配置手法(RMAP, MOPT),耐故障機構の開発・実証
� 成果移転と展開(2012年10月から米田チームにて実施中)
� マルチコアコア/メニーコアのディペンダビリティ向上方式として確立
� マルチコア研究を支援する実用的な基盤環境の改良と普及
– 開発している最新の版を2013年5月に公開予定
� FPGAプロトタイプシステムの販売開始(2012年11月),普及のための支援活動
� 実用化に向けて自動車メーカーとのミーティングを開催,協議中
180FPGA プロトタイプシステム
normal task mapping RMAP
タスク配置手法RMAP高機能ルータアーキテクチャ
11
2013/3/16DVLSI-CREST